]> xenbits.xensource.com Git - people/aperard/emesinae.git/commitdiff
Move test configuration under configs/examples
authorIan Campbell <ian.campbell@citrix.com>
Thu, 23 May 2013 08:23:42 +0000 (09:23 +0100)
committerIan Campbell <ian.campbell@citrix.com>
Thu, 23 May 2013 10:47:01 +0000 (11:47 +0100)
1466 files changed:
config/examples/test/README [new file with mode: 0644]
config/examples/test/control.1.test [new file with mode: 0644]
config/examples/test/control.2.test [new file with mode: 0644]
config/examples/test/control.3.test [new file with mode: 0644]
config/examples/test/control.4.test [new file with mode: 0644]
config/examples/test/control.5.test [new file with mode: 0644]
config/examples/test/control.6.test [new file with mode: 0644]
config/examples/test/control.7.test [new file with mode: 0644]
config/examples/test/control.8.test [new file with mode: 0644]
config/examples/test/corpus/<001301cd5fc1$818953c0$849bfb40$@core.kaist.ac.kr> [new file with mode: 0644]
config/examples/test/corpus/<002301cd590c$49aee250$dd0ca6f0$@brice-amiard.Fr> [new file with mode: 0644]
config/examples/test/corpus/<003501cd6010$224d58d0$66e80a70$@core.kaist.ac.kr> [new file with mode: 0644]
config/examples/test/corpus/<008601cd5f45$6eff7530$4cfe5f90$@core.kaist.ac.kr> [new file with mode: 0644]
config/examples/test/corpus/<05f8b1f47b42aaf2430490453a2b783eabbe9bfb.1345552068.git.julien.grall@citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<0616f810ead8fa9d2beb8dc3b7306724a0e39ca1.1345552068.git.julien.grall@citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<0c0e65af87b2e86b62d82565c2e363ddfb8acfc6.1345552068.git.julien.grall@citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<0daed9ef86102101bbc23a26ac887d751aa8f8ae.1345552068.git.julien.grall@citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<1144695277.20120904184345@eikelenboom.it> [new file with mode: 0644]
config/examples/test/corpus/<1336753602.23818.133.camel@zakaz.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<1338287956-24691-1-git-send-email-stefano.stabellini@eu.citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<1338287956-24691-10-git-send-email-stefano.stabellini@eu.citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<1338287956-24691-11-git-send-email-stefano.stabellini@eu.citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<1338287956-24691-2-git-send-email-stefano.stabellini@eu.citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<1338287956-24691-3-git-send-email-stefano.stabellini@eu.citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<1338287956-24691-4-git-send-email-stefano.stabellini@eu.citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<1338287956-24691-5-git-send-email-stefano.stabellini@eu.citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<1338287956-24691-6-git-send-email-stefano.stabellini@eu.citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<1338287956-24691-7-git-send-email-stefano.stabellini@eu.citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<1338287956-24691-8-git-send-email-stefano.stabellini@eu.citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<1338287956-24691-9-git-send-email-stefano.stabellini@eu.citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<1338300632.14158.115.camel@zakaz.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<1338303814.14158.125.camel@zakaz.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<1338305560.31698.2.camel@zakaz.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<1338305856.31698.5.camel@zakaz.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<1338565113.17466.141.camel@zakaz.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<1338565207-2888-1-git-send-email-ian.campbell@citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<1338565207-2888-10-git-send-email-ian.campbell@citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<1338565207-2888-11-git-send-email-ian.campbell@citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<1338565207-2888-12-git-send-email-ian.campbell@citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<1338565207-2888-13-git-send-email-ian.campbell@citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<1338565207-2888-14-git-send-email-ian.campbell@citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<1338565207-2888-15-git-send-email-ian.campbell@citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<1338565207-2888-16-git-send-email-ian.campbell@citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<1338565207-2888-17-git-send-email-ian.campbell@citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<1338565207-2888-18-git-send-email-ian.campbell@citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<1338565207-2888-19-git-send-email-ian.campbell@citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<1338565207-2888-2-git-send-email-ian.campbell@citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<1338565207-2888-20-git-send-email-ian.campbell@citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<1338565207-2888-21-git-send-email-ian.campbell@citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<1338565207-2888-22-git-send-email-ian.campbell@citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<1338565207-2888-23-git-send-email-ian.campbell@citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<1338565207-2888-24-git-send-email-ian.campbell@citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<1338565207-2888-25-git-send-email-ian.campbell@citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<1338565207-2888-26-git-send-email-ian.campbell@citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<1338565207-2888-27-git-send-email-ian.campbell@citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<1338565207-2888-28-git-send-email-ian.campbell@citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<1338565207-2888-29-git-send-email-ian.campbell@citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<1338565207-2888-3-git-send-email-ian.campbell@citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<1338565207-2888-30-git-send-email-ian.campbell@citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<1338565207-2888-31-git-send-email-ian.campbell@citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<1338565207-2888-32-git-send-email-ian.campbell@citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<1338565207-2888-33-git-send-email-ian.campbell@citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<1338565207-2888-34-git-send-email-ian.campbell@citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<1338565207-2888-35-git-send-email-ian.campbell@citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<1338565207-2888-36-git-send-email-ian.campbell@citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<1338565207-2888-37-git-send-email-ian.campbell@citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<1338565207-2888-38-git-send-email-ian.campbell@citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<1338565207-2888-4-git-send-email-ian.campbell@citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<1338565207-2888-5-git-send-email-ian.campbell@citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<1338565207-2888-6-git-send-email-ian.campbell@citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<1338565207-2888-7-git-send-email-ian.campbell@citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<1338565207-2888-8-git-send-email-ian.campbell@citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<1338565207-2888-9-git-send-email-ian.campbell@citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<1338569170.1077.36.camel@zakaz.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<1338577461.14877.61.camel@dagon.hellion.org.uk> [new file with mode: 0644]
config/examples/test/corpus/<1338990925.32319.103.camel@zakaz.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<1338993031.32319.107.camel@zakaz.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<1338995969.32319.139.camel@zakaz.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<1338996592.32319.141.camel@zakaz.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<1339061691.15265.49.camel@zakaz.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<1339062030.15265.53.camel@zakaz.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<1339068947.18523.10.camel@zakaz.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<1339070260.18523.14.camel@zakaz.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<1339070809.18523.15.camel@zakaz.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<1339072005.18523.18.camel@zakaz.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<1339077263.18523.19.camel@zakaz.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<1339086867.18523.36.camel@zakaz.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<1339087181.22331.2.camel@zakaz.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<1339088221.22331.6.camel@zakaz.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<1339088579.22331.8.camel@zakaz.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<1339594843.24104.218.camel@zakaz.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<1339600416.24104.228.camel@zakaz.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<1339600735.24104.230.camel@zakaz.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<1339601583.24104.237.camel@zakaz.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<1340098989.16742.2.camel@zakaz.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<1340199444.4906.54.camel@zakaz.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<1340200126.4906.56.camel@zakaz.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<1340200398.4906.60.camel@zakaz.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<1340200564.4906.61.camel@zakaz.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<1340206729.4906.74.camel@zakaz.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<1340266524.21872.2.camel@zakaz.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<1340270809.21872.35.camel@zakaz.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<1340701380.3832.36.camel@zakaz.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<1340702747.3832.37.camel@zakaz.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<1340703036.3832.38.camel@zakaz.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<1340703351.3832.42.camel@zakaz.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<1340705906.3832.49.camel@zakaz.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<1340713538.3832.72.camel@zakaz.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<1340718320.3832.116.camel@zakaz.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<1340957235.10942.72.camel@zakaz.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<1340957369.10942.74.camel@zakaz.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<1341007454.5953.18.camel@dagon.hellion.org.uk> [new file with mode: 0644]
config/examples/test/corpus/<1341221345.4625.8.camel@zakaz.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<1343051870.5797.36.camel@zakaz.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<1343052688.5797.38.camel@zakaz.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<1343054850.5797.40.camel@zakaz.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<1343316846-25860-1-git-send-email-stefano.stabellini@eu.citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<1343316846-25860-10-git-send-email-stefano.stabellini@eu.citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<1343316846-25860-11-git-send-email-stefano.stabellini@eu.citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<1343316846-25860-12-git-send-email-stefano.stabellini@eu.citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<1343316846-25860-13-git-send-email-stefano.stabellini@eu.citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<1343316846-25860-14-git-send-email-stefano.stabellini@eu.citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<1343316846-25860-15-git-send-email-stefano.stabellini@eu.citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<1343316846-25860-16-git-send-email-stefano.stabellini@eu.citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<1343316846-25860-17-git-send-email-stefano.stabellini@eu.citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<1343316846-25860-18-git-send-email-stefano.stabellini@eu.citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<1343316846-25860-19-git-send-email-stefano.stabellini@eu.citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<1343316846-25860-2-git-send-email-stefano.stabellini@eu.citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<1343316846-25860-20-git-send-email-stefano.stabellini@eu.citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<1343316846-25860-21-git-send-email-stefano.stabellini@eu.citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<1343316846-25860-22-git-send-email-stefano.stabellini@eu.citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<1343316846-25860-23-git-send-email-stefano.stabellini@eu.citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<1343316846-25860-24-git-send-email-stefano.stabellini@eu.citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<1343316846-25860-3-git-send-email-stefano.stabellini@eu.citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<1343316846-25860-4-git-send-email-stefano.stabellini@eu.citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<1343316846-25860-5-git-send-email-stefano.stabellini@eu.citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<1343316846-25860-6-git-send-email-stefano.stabellini@eu.citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<1343316846-25860-7-git-send-email-stefano.stabellini@eu.citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<1343316846-25860-8-git-send-email-stefano.stabellini@eu.citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<1343316846-25860-9-git-send-email-stefano.stabellini@eu.citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<1343379653.6812.92.camel@zakaz.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<1343380659.6812.106.camel@zakaz.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<1343380764.6812.108.camel@zakaz.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<1343381305.6812.116.camel@zakaz.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<1343381813.6812.120.camel@zakaz.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<1343382151.6812.124.camel@zakaz.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<1343382276.6812.126.camel@zakaz.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<1343382495.6812.127.camel@zakaz.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<1343395134.6812.162.camel@zakaz.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<1343399630.25096.4.camel@zakaz.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<1343399971.25096.8.camel@zakaz.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<1343400685.25096.15.camel@zakaz.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<1343405479.25096.25.camel@zakaz.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<1343892951.7571.50.camel@dagon.hellion.org.uk> [new file with mode: 0644]
config/examples/test/corpus/<1344935141.5926.6.camel@zakaz.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<1344947062-4796-1-git-send-email-attilio.rao@citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<1344947062-4796-2-git-send-email-attilio.rao@citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<1344947062-4796-3-git-send-email-attilio.rao@citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<1344949075.5926.29.camel@zakaz.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<1344949140.5926.30.camel@zakaz.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<1345056190.12434.34.camel@dagon.hellion.org.uk> [new file with mode: 0644]
config/examples/test/corpus/<1345104759.27489.7.camel@zakaz.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<1345128612-10323-1-git-send-email-stefano.stabellini@eu.citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<1345128612-10323-2-git-send-email-stefano.stabellini@eu.citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<1345128612-10323-3-git-send-email-stefano.stabellini@eu.citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<1345128612-10323-4-git-send-email-stefano.stabellini@eu.citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<1345128612-10323-5-git-send-email-stefano.stabellini@eu.citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<1345128612-10323-6-git-send-email-stefano.stabellini@eu.citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<1345133009-21941-1-git-send-email-konrad.wilk@oracle.com> [new file with mode: 0644]
config/examples/test/corpus/<1345133009-21941-10-git-send-email-konrad.wilk@oracle.com> [new file with mode: 0644]
config/examples/test/corpus/<1345133009-21941-11-git-send-email-konrad.wilk@oracle.com> [new file with mode: 0644]
config/examples/test/corpus/<1345133009-21941-12-git-send-email-konrad.wilk@oracle.com> [new file with mode: 0644]
config/examples/test/corpus/<1345133009-21941-2-git-send-email-konrad.wilk@oracle.com> [new file with mode: 0644]
config/examples/test/corpus/<1345133009-21941-3-git-send-email-konrad.wilk@oracle.com> [new file with mode: 0644]
config/examples/test/corpus/<1345133009-21941-4-git-send-email-konrad.wilk@oracle.com> [new file with mode: 0644]
config/examples/test/corpus/<1345133009-21941-5-git-send-email-konrad.wilk@oracle.com> [new file with mode: 0644]
config/examples/test/corpus/<1345133009-21941-6-git-send-email-konrad.wilk@oracle.com> [new file with mode: 0644]
config/examples/test/corpus/<1345133009-21941-7-git-send-email-konrad.wilk@oracle.com> [new file with mode: 0644]
config/examples/test/corpus/<1345133009-21941-8-git-send-email-konrad.wilk@oracle.com> [new file with mode: 0644]
config/examples/test/corpus/<1345133009-21941-9-git-send-email-konrad.wilk@oracle.com> [new file with mode: 0644]
config/examples/test/corpus/<1345190532.30865.67.camel@zakaz.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<1345211486.10161.31.camel@zakaz.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<1345215020.10161.64.camel@zakaz.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<1345215992.10161.77.camel@zakaz.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<1345463624.28762.67.camel@zakaz.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<1345633688-31684-1-git-send-email-stefano.stabellini@eu.citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<1345633688-31684-2-git-send-email-stefano.stabellini@eu.citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<1345633688-31684-3-git-send-email-stefano.stabellini@eu.citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<1345633688-31684-4-git-send-email-stefano.stabellini@eu.citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<1345633688-31684-5-git-send-email-stefano.stabellini@eu.citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<1345633688-31684-6-git-send-email-stefano.stabellini@eu.citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<1345727912.12501.83.camel@zakaz.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<1345728118.12501.86.camel@zakaz.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<1345728471.12501.90.camel@zakaz.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<1345728617.12501.92.camel@zakaz.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<1345728948.12501.98.camel@zakaz.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<1345730172.12501.113.camel@zakaz.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<1345751525.23624.58.camel@dagon.hellion.org.uk> [new file with mode: 0644]
config/examples/test/corpus/<1345804516.12501.182.camel@zakaz.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<1345813421.19419.11.camel@zakaz.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<1345817370.19419.22.camel@zakaz.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<1345819507.19419.29.camel@zakaz.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<1346246116-29999-1-git-send-email-david.vrabel@citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<1346246116-29999-2-git-send-email-david.vrabel@citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<1346246116-29999-3-git-send-email-david.vrabel@citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<1346257402.20019.9.camel@zakaz.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<1346263520.6655.4.camel@dagon.hellion.org.uk> [new file with mode: 0644]
config/examples/test/corpus/<1346421542.27277.218.camel@zakaz.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<1346425278.27277.224.camel@zakaz.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<1346426619.27277.237.camel@zakaz.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<1346428292.27277.243.camel@zakaz.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<1346428909.27277.246.camel@zakaz.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<1346434547.5820.10.camel@dagon.hellion.org.uk> [new file with mode: 0644]
config/examples/test/corpus/<1346663727.27277.255.camel@zakaz.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<1346663746.27277.256.camel@zakaz.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<1346665586.25864.5.camel@zakaz.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<1346667053.25864.21.camel@zakaz.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<1346834000.17325.4.camel@zakaz.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<1347272111.5305.52.camel@zakaz.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<1347627587.24226.192.camel@zakaz.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<1347628660.24226.197.camel@zakaz.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<1347630442.24226.211.camel@zakaz.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<1347630971.24226.214.camel@zakaz.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<1347637953.14977.10.camel@zakaz.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<1348059789.14977.119.camel@zakaz.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<1348060180.14977.123.camel@zakaz.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<1348062615.14977.127.camel@zakaz.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<1348062913.14977.132.camel@zakaz.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<1348659840.19176.31.camel@zakaz.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<1349265914.650.136.camel@zakaz.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<1349271323.650.148.camel@zakaz.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<1349272182.650.150.camel@zakaz.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<1349272482.650.151.camel@zakaz.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<1349276431.650.156.camel@zakaz.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<1349279862.650.171.camel@zakaz.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<1349280814.650.178.camel@zakaz.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<1349282492.650.185.camel@zakaz.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<1349339920.650.220.camel@zakaz.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<1349363496.866.49.camel@zakaz.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<1349363515-26190-1-git-send-email-ian.campbell@citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<1349363515-26190-10-git-send-email-ian.campbell@citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<1349363515-26190-11-git-send-email-ian.campbell@citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<1349363515-26190-12-git-send-email-ian.campbell@citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<1349363515-26190-13-git-send-email-ian.campbell@citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<1349363515-26190-14-git-send-email-ian.campbell@citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<1349363515-26190-2-git-send-email-ian.campbell@citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<1349363515-26190-3-git-send-email-ian.campbell@citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<1349363515-26190-4-git-send-email-ian.campbell@citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<1349363515-26190-5-git-send-email-ian.campbell@citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<1349363515-26190-6-git-send-email-ian.campbell@citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<1349363515-26190-7-git-send-email-ian.campbell@citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<1349363515-26190-8-git-send-email-ian.campbell@citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<1349363515-26190-9-git-send-email-ian.campbell@citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<1349365718.866.63.camel@zakaz.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<1349428386.20946.15.camel@zakaz.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<1349429005.20946.20.camel@zakaz.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<1349437645.20946.74.camel@zakaz.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<1349440338.20946.83.camel@zakaz.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<1349443792.20946.97.camel@zakaz.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<1349443982.20946.100.camel@zakaz.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<1349444369.20946.101.camel@zakaz.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<1349444550.20946.102.camel@zakaz.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<1349445097.20946.108.camel@zakaz.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<1349447625.20946.130.camel@zakaz.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<1349447704.20946.131.camel@zakaz.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<1349453467.20946.142.camel@zakaz.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<1349453876.20946.143.camel@zakaz.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<1350046634-2462-1-git-send-email-david.vrabel@citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<1350046634-2462-2-git-send-email-david.vrabel@citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<1350046634-2462-3-git-send-email-david.vrabel@citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<1350046634-2462-4-git-send-email-david.vrabel@citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<1350046970-2591-1-git-send-email-david.vrabel@citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<1350046970-2591-2-git-send-email-david.vrabel@citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<1350046970-2591-3-git-send-email-david.vrabel@citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<1350293121.18058.10.camel@zakaz.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<1350293217.18058.11.camel@zakaz.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<1350293719.18058.13.camel@zakaz.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<1350304068.18058.41.camel@zakaz.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<1350383800.18058.114.camel@zakaz.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<1350479456-4007-1-git-send-email-stefan.bader@canonical.com> [new file with mode: 0644]
config/examples/test/corpus/<1350482118.2460.74.camel@zakaz.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<1350546483.28188.25.camel@dagon.hellion.org.uk> [new file with mode: 0644]
config/examples/test/corpus/<1377403931.20120901011625@eikelenboom.it> [new file with mode: 0644]
config/examples/test/corpus/<1576173912.20120904085238@eikelenboom.it> [new file with mode: 0644]
config/examples/test/corpus/<1894818567.20120904102024@eikelenboom.it> [new file with mode: 0644]
config/examples/test/corpus/<1925247026.20120903103325@eikelenboom.it> [new file with mode: 0644]
config/examples/test/corpus/<1E8F546AD8E64BF1B2D68D24F3BD4050@LarryE6400> [new file with mode: 0644]
config/examples/test/corpus/<20120601170514.GD77921@ocelot.phlegethon.org> [new file with mode: 0644]
config/examples/test/corpus/<20120606181852.GB38649@ocelot.phlegethon.org> [new file with mode: 0644]
config/examples/test/corpus/<20120607084517.GA70339@ocelot.phlegethon.org> [new file with mode: 0644]
config/examples/test/corpus/<20120607084917.GB70339@ocelot.phlegethon.org> [new file with mode: 0644]
config/examples/test/corpus/<20120607090334.GC70339@ocelot.phlegethon.org> [new file with mode: 0644]
config/examples/test/corpus/<20120607090808.GD70339@ocelot.phlegethon.org> [new file with mode: 0644]
config/examples/test/corpus/<20120607092951.GE70339@ocelot.phlegethon.org> [new file with mode: 0644]
config/examples/test/corpus/<20120607093258.GF70339@ocelot.phlegethon.org> [new file with mode: 0644]
config/examples/test/corpus/<20120607094152.GG70339@ocelot.phlegethon.org> [new file with mode: 0644]
config/examples/test/corpus/<20120607094805.GH70339@ocelot.phlegethon.org> [new file with mode: 0644]
config/examples/test/corpus/<20120607095128.GI70339@ocelot.phlegethon.org> [new file with mode: 0644]
config/examples/test/corpus/<20120607101826.GJ70339@ocelot.phlegethon.org> [new file with mode: 0644]
config/examples/test/corpus/<20120607102014.GK70339@ocelot.phlegethon.org> [new file with mode: 0644]
config/examples/test/corpus/<20120607102054.GL70339@ocelot.phlegethon.org> [new file with mode: 0644]
config/examples/test/corpus/<20120607102151.GM70339@ocelot.phlegethon.org> [new file with mode: 0644]
config/examples/test/corpus/<20120607102222.GN70339@ocelot.phlegethon.org> [new file with mode: 0644]
config/examples/test/corpus/<20120607102315.GO70339@ocelot.phlegethon.org> [new file with mode: 0644]
config/examples/test/corpus/<20120607114240.GQ70339@ocelot.phlegethon.org> [new file with mode: 0644]
config/examples/test/corpus/<20120607123922.GR70339@ocelot.phlegethon.org> [new file with mode: 0644]
config/examples/test/corpus/<20120607124033.GS70339@ocelot.phlegethon.org> [new file with mode: 0644]
config/examples/test/corpus/<20120607135930.GW70339@ocelot.phlegethon.org> [new file with mode: 0644]
config/examples/test/corpus/<20120607191035.GA76463@ocelot.phlegethon.org> [new file with mode: 0644]
config/examples/test/corpus/<20120614084732.GA82539@ocelot.phlegethon.org> [new file with mode: 0644]
config/examples/test/corpus/<20120628180007.06bb3fd3@mantra.us.oracle.com> [new file with mode: 0644]
config/examples/test/corpus/<20120628182602.6cc9b432@mantra.us.oracle.com> [new file with mode: 0644]
config/examples/test/corpus/<20120629010903.GC4902@phenom.dumpdata.com> [new file with mode: 0644]
config/examples/test/corpus/<20120629111546.50e36f52@mantra.us.oracle.com> [new file with mode: 0644]
config/examples/test/corpus/<20120629120738.425781e5@mantra.us.oracle.com> [new file with mode: 0644]
config/examples/test/corpus/<20120629141812.6ca72375@mantra.us.oracle.com> [new file with mode: 0644]
config/examples/test/corpus/<20120629155000.5152d544@mantra.us.oracle.com> [new file with mode: 0644]
config/examples/test/corpus/<20120702111818.73babf9b@mantra.us.oracle.com> [new file with mode: 0644]
config/examples/test/corpus/<20120725184429.GC16360@phenom.dumpdata.com> [new file with mode: 0644]
config/examples/test/corpus/<20120726163020.GB9222@phenom.dumpdata.com> [new file with mode: 0644]
config/examples/test/corpus/<20120726163352.GC9222@phenom.dumpdata.com> [new file with mode: 0644]
config/examples/test/corpus/<20120726163655.GD9222@phenom.dumpdata.com> [new file with mode: 0644]
config/examples/test/corpus/<20120726163759.GE9222@phenom.dumpdata.com> [new file with mode: 0644]
config/examples/test/corpus/<20120727142101.GA6802@n2100.arm.linux.org.uk> [new file with mode: 0644]
config/examples/test/corpus/<20120727145900.GC6802@n2100.arm.linux.org.uk> [new file with mode: 0644]
config/examples/test/corpus/<20120801104237.GB7227@phenom.dumpdata.com> [new file with mode: 0644]
config/examples/test/corpus/<20120801111937.4c9b3702@mantra.us.oracle.com> [new file with mode: 0644]
config/examples/test/corpus/<20120801141624.GD7227@phenom.dumpdata.com> [new file with mode: 0644]
config/examples/test/corpus/<20120801141959.GE7227@phenom.dumpdata.com> [new file with mode: 0644]
config/examples/test/corpus/<20120801142249.GF7227@phenom.dumpdata.com> [new file with mode: 0644]
config/examples/test/corpus/<20120801142840.GG7227@phenom.dumpdata.com> [new file with mode: 0644]
config/examples/test/corpus/<20120801143459.GH7227@phenom.dumpdata.com> [new file with mode: 0644]
config/examples/test/corpus/<20120801143551.GI7227@phenom.dumpdata.com> [new file with mode: 0644]
config/examples/test/corpus/<20120801143822.GJ7227@phenom.dumpdata.com> [new file with mode: 0644]
config/examples/test/corpus/<20120801143946.GK7227@phenom.dumpdata.com> [new file with mode: 0644]
config/examples/test/corpus/<20120801144059.GL7227@phenom.dumpdata.com> [new file with mode: 0644]
config/examples/test/corpus/<20120801144418.GM7227@phenom.dumpdata.com> [new file with mode: 0644]
config/examples/test/corpus/<20120801144751.GN7227@phenom.dumpdata.com> [new file with mode: 0644]
config/examples/test/corpus/<20120801144818.GO7227@phenom.dumpdata.com> [new file with mode: 0644]
config/examples/test/corpus/<20120801145215.GP7227@phenom.dumpdata.com> [new file with mode: 0644]
config/examples/test/corpus/<20120801145257.GQ7227@phenom.dumpdata.com> [new file with mode: 0644]
config/examples/test/corpus/<20120801145413.GR7227@phenom.dumpdata.com> [new file with mode: 0644]
config/examples/test/corpus/<20120801145610.GS7227@phenom.dumpdata.com> [new file with mode: 0644]
config/examples/test/corpus/<20120802141341.GE16749@phenom.dumpdata.com> [new file with mode: 0644]
config/examples/test/corpus/<201208070018394210381@gmail.com> [new file with mode: 0644]
config/examples/test/corpus/<2012081023124696835343@gmail.com> [new file with mode: 0644]
config/examples/test/corpus/<20120814100704.GA19704@bloms.de> [new file with mode: 0644]
config/examples/test/corpus/<20120814101822.GX19851@reaktio.net> [new file with mode: 0644]
config/examples/test/corpus/<20120814102039.GY19851@reaktio.net> [new file with mode: 0644]
config/examples/test/corpus/<2012081522045495397713@gmail.com> [new file with mode: 0644]
config/examples/test/corpus/<2012081522121039050717@gmail.com> [new file with mode: 0644]
config/examples/test/corpus/<20120816131547.GE20601@ocelot.phlegethon.org> [new file with mode: 0644]
config/examples/test/corpus/<201208162143289686654@gmail.com> [new file with mode: 0644]
config/examples/test/corpus/<2012081622270760996017@gmail.com> [new file with mode: 0644]
config/examples/test/corpus/<20120817173911.GB11688@phenom.dumpdata.com> [new file with mode: 0644]
config/examples/test/corpus/<20120817174549.GA14257@phenom.dumpdata.com> [new file with mode: 0644]
config/examples/test/corpus/<20120817180557.GA18579@phenom.dumpdata.com> [new file with mode: 0644]
config/examples/test/corpus/<20120820120649.GI13755@localhost.localdomain> [new file with mode: 0644]
config/examples/test/corpus/<20120820141305.GA2713@phenom.dumpdata.com> [new file with mode: 0644]
config/examples/test/corpus/<20120821145713.GG20289@phenom.dumpdata.com> [new file with mode: 0644]
config/examples/test/corpus/<20120821172732.GA23715@phenom.dumpdata.com> [new file with mode: 0644]
config/examples/test/corpus/<20120821190317.GA13035@phenom.dumpdata.com> [new file with mode: 0644]
config/examples/test/corpus/<20120822140039.GB30964@phenom.dumpdata.com> [new file with mode: 0644]
config/examples/test/corpus/<20120822145730.GI30964@phenom.dumpdata.com> [new file with mode: 0644]
config/examples/test/corpus/<20120822162119.GB24203@phenom.dumpdata.com> [new file with mode: 0644]
config/examples/test/corpus/<20120822185519.GA29609@phenom.dumpdata.com> [new file with mode: 0644]
config/examples/test/corpus/<20120823154012.GA18845@phenom.dumpdata.com> [new file with mode: 0644]
config/examples/test/corpus/<20120831193746.GA13009@bloms.de> [new file with mode: 0644]
config/examples/test/corpus/<20120902053549.GF8912@reaktio.net> [new file with mode: 0644]
config/examples/test/corpus/<20120904191229.GH8912@reaktio.net> [new file with mode: 0644]
config/examples/test/corpus/<20120905195403.GO8912@reaktio.net> [new file with mode: 0644]
config/examples/test/corpus/<20120905200858.GP8912@reaktio.net> [new file with mode: 0644]
config/examples/test/corpus/<20120905202927.GD27814@phenom.dumpdata.com> [new file with mode: 0644]
config/examples/test/corpus/<20120906105822.GB3668@phenom.dumpdata.com> [new file with mode: 0644]
config/examples/test/corpus/<20120912171921.GT8912@reaktio.net> [new file with mode: 0644]
config/examples/test/corpus/<20120914160727.1ff41de2@mantra.us.oracle.com> [new file with mode: 0644]
config/examples/test/corpus/<20120914160918.7e61d1d0@mantra.us.oracle.com> [new file with mode: 0644]
config/examples/test/corpus/<20120916122704.4ea05b45@pyramind.ukuu.org.uk> [new file with mode: 0644]
config/examples/test/corpus/<20120916170737.3c8f7e9e@pyramind.ukuu.org.uk> [new file with mode: 0644]
config/examples/test/corpus/<20120917181858.GA17720@phenom.dumpdata.com> [new file with mode: 0644]
config/examples/test/corpus/<20120921121659.5a723de9@mantra.us.oracle.com> [new file with mode: 0644]
config/examples/test/corpus/<20120924154335.097d3fb9@mantra.us.oracle.com> [new file with mode: 0644]
config/examples/test/corpus/<20120925180416.0137d61a@mantra.us.oracle.com> [new file with mode: 0644]
config/examples/test/corpus/<20121002183619.70734b7a@mantra.us.oracle.com> [new file with mode: 0644]
config/examples/test/corpus/<20121002190323.2e16f6ff@mantra.us.oracle.com> [new file with mode: 0644]
config/examples/test/corpus/<20121002200837.GB668@phenom.dumpdata.com> [new file with mode: 0644]
config/examples/test/corpus/<20121002200907.GC668@phenom.dumpdata.com> [new file with mode: 0644]
config/examples/test/corpus/<20121002205456.GA15862@u002268147cd4502c336d.ant.amazon.com> [new file with mode: 0644]
config/examples/test/corpus/<20121003134323.GA31270@phenom.dumpdata.com> [new file with mode: 0644]
config/examples/test/corpus/<20121003141116.GA10633@phenom.dumpdata.com> [new file with mode: 0644]
config/examples/test/corpus/<20121003153714.4656b7e9@mantra.us.oracle.com> [new file with mode: 0644]
config/examples/test/corpus/<20121004151535.GB11426@phenom.dumpdata.com> [new file with mode: 0644]
config/examples/test/corpus/<20121004152459.GC11426@phenom.dumpdata.com> [new file with mode: 0644]
config/examples/test/corpus/<20121004152731.GD11426@phenom.dumpdata.com> [new file with mode: 0644]
config/examples/test/corpus/<20121004155400.GA12128@phenom.dumpdata.com> [new file with mode: 0644]
config/examples/test/corpus/<20121004182518.76e9624a@mantra.us.oracle.com> [new file with mode: 0644]
config/examples/test/corpus/<20121004183528.060416a0@mantra.us.oracle.com> [new file with mode: 0644]
config/examples/test/corpus/<20121005114006.55115cca@mantra.us.oracle.com> [new file with mode: 0644]
config/examples/test/corpus/<20121005121024.17c22c7d@mantra.us.oracle.com> [new file with mode: 0644]
config/examples/test/corpus/<20121008124101.GB29650@localhost.localdomain> [new file with mode: 0644]
config/examples/test/corpus/<20121008175925.105e78de@mantra.us.oracle.com> [new file with mode: 0644]
config/examples/test/corpus/<20121008180728.07893577@mantra.us.oracle.com> [new file with mode: 0644]
config/examples/test/corpus/<20121012134147.GA11778@phenom.dumpdata.com> [new file with mode: 0644]
config/examples/test/corpus/<20121012145716.GA20842@phenom.dumpdata.com> [new file with mode: 0644]
config/examples/test/corpus/<20121012150251.GB20842@phenom.dumpdata.com> [new file with mode: 0644]
config/examples/test/corpus/<20121012161610.GA7880@phenom.dumpdata.com> [new file with mode: 0644]
config/examples/test/corpus/<20397.14624.57140.518016@mariner.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<20420.59905.191002.80850@mariner.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<20420.59991.541173.849526@mariner.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<20432.62078.265596.607954@mariner.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<20544.54424.775548.66532@mariner.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<20544.57061.422450.821411@mariner.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<217459398.20120902171441@eikelenboom.it> [new file with mode: 0644]
config/examples/test/corpus/<348297741.20120905122542@eikelenboom.it> [new file with mode: 0644]
config/examples/test/corpus/<388095299.20120928160836@eikelenboom.it> [new file with mode: 0644]
config/examples/test/corpus/<3921d4d38a5c20943af1ceb64f5f0691d7bfd702.1345552068.git.julien.grall@citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<40501859.20120902104331@eikelenboom.it> [new file with mode: 0644]
config/examples/test/corpus/<4610648186.20120904090841@eikelenboom.it> [new file with mode: 0644]
config/examples/test/corpus/<4710608674.20120904101330@eikelenboom.it> [new file with mode: 0644]
config/examples/test/corpus/<4FC8EBD9.4@cantab.net> [new file with mode: 0644]
config/examples/test/corpus/<4FD0EB53.2040603@citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<4FED7BD7020000780008CBFB@nat28.tlf.novell.com> [new file with mode: 0644]
config/examples/test/corpus/<4FED8052020000780008CC32@nat28.tlf.novell.com> [new file with mode: 0644]
config/examples/test/corpus/<4FF177A3020000780008D091@nat28.tlf.novell.com> [new file with mode: 0644]
config/examples/test/corpus/<4FF3009F020000780008D522@nat28.tlf.novell.com> [new file with mode: 0644]
config/examples/test/corpus/<4FFD4C06.7090403@citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<4FFE93DE.5020608@citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<4cb9d7f220dd459c1554c6b5d9e2ed73@abpni.co.uk> [new file with mode: 0644]
config/examples/test/corpus/<500D61BF.4080508@cantab.net> [new file with mode: 0644]
config/examples/test/corpus/<501176AF.3000607@cantab.net> [new file with mode: 0644]
config/examples/test/corpus/<50119856.2020206@codeaurora.org> [new file with mode: 0644]
config/examples/test/corpus/<501257F30200007800090D9E@nat28.tlf.novell.com> [new file with mode: 0644]
config/examples/test/corpus/<501258FB0200007800090DB6@nat28.tlf.novell.com> [new file with mode: 0644]
config/examples/test/corpus/<5012598C0200007800090DB9@nat28.tlf.novell.com> [new file with mode: 0644]
config/examples/test/corpus/<50128FE6.5070109@codeaurora.org> [new file with mode: 0644]
config/examples/test/corpus/<50197527.3070007@gmail.com> [new file with mode: 0644]
config/examples/test/corpus/<50224B7402000078000937DA@nat28.tlf.novell.com> [new file with mode: 0644]
config/examples/test/corpus/<5028B603.9010306@core.kaist.ac.kr> [new file with mode: 0644]
config/examples/test/corpus/<50293785020000780009484C@nat28.tlf.novell.com> [new file with mode: 0644]
config/examples/test/corpus/<502A0BE50200007800094A4E@nat28.tlf.novell.com> [new file with mode: 0644]
config/examples/test/corpus/<502A0E610200007800094A58@nat28.tlf.novell.com> [new file with mode: 0644]
config/examples/test/corpus/<502A3BBC0200007800094B68@nat28.tlf.novell.com> [new file with mode: 0644]
config/examples/test/corpus/<502A3BFD0200007800094B6B@nat28.tlf.novell.com> [new file with mode: 0644]
config/examples/test/corpus/<502A5964.2080509@citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<502A5CD0.8000201@citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<502B85D1.8000606@citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<502BD5C302000078000952AD@nat28.tlf.novell.com> [new file with mode: 0644]
config/examples/test/corpus/<502BD943.8030701@citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<502BEEAD.7030906@citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<502BEF5E.1080105@citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<502BF563.8010902@citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<502CC9D702000078000955B9@nat28.tlf.novell.com> [new file with mode: 0644]
config/examples/test/corpus/<502D04AA.8030107@citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<502D1C8A0200007800095851@nat28.tlf.novell.com> [new file with mode: 0644]
config/examples/test/corpus/<502D33B8020000780009596B@nat28.tlf.novell.com> [new file with mode: 0644]
config/examples/test/corpus/<502D37D702000078000959F7@nat28.tlf.novell.com> [new file with mode: 0644]
config/examples/test/corpus/<502E285A0200007800095D04@nat28.tlf.novell.com> [new file with mode: 0644]
config/examples/test/corpus/<502E2F090200007800095D62@nat28.tlf.novell.com> [new file with mode: 0644]
config/examples/test/corpus/<502E6A200200007800095E9A@nat28.tlf.novell.com> [new file with mode: 0644]
config/examples/test/corpus/<502E6BBA0200007800095EBB@nat28.tlf.novell.com> [new file with mode: 0644]
config/examples/test/corpus/<502E78010200007800095F56@nat28.tlf.novell.com> [new file with mode: 0644]
config/examples/test/corpus/<502E788B0200007800095F59@nat28.tlf.novell.com> [new file with mode: 0644]
config/examples/test/corpus/<503504FE0200007800096F08@nat28.tlf.novell.com> [new file with mode: 0644]
config/examples/test/corpus/<50351DEF020000780009702A@nat28.tlf.novell.com> [new file with mode: 0644]
config/examples/test/corpus/<5035DA7E020000780008A5E6@nat28.tlf.novell.com> [new file with mode: 0644]
config/examples/test/corpus/<5035E7D3020000780008A60D@nat28.tlf.novell.com> [new file with mode: 0644]
config/examples/test/corpus/<5035E986020000780008A617@nat28.tlf.novell.com> [new file with mode: 0644]
config/examples/test/corpus/<50360B81.2070402@citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<503680C5.6070509@citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<50375721.7080503@citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<5037586C.5000902@citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<503779F5.80508@citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<50377DAD.6000405@citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<50378054.9080506@citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<503786CF.40006@citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<50379193.3020600@citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<5037AE20020000780008A7A8@nat28.tlf.novell.com> [new file with mode: 0644]
config/examples/test/corpus/<503E451A.20107@citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<503E49BE.7080704@citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<503F3BC9.6020100@citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<50409CE002000076000B3B44@novprvoes0310.provo.novell.com> [new file with mode: 0644]
config/examples/test/corpus/<5040A73502000076000B3B82@novprvoes0310.provo.novell.com> [new file with mode: 0644]
config/examples/test/corpus/<5040F7140200007800097E91@nat28.tlf.novell.com> [new file with mode: 0644]
config/examples/test/corpus/<5040FB490200007800097ED2@nat28.tlf.novell.com> [new file with mode: 0644]
config/examples/test/corpus/<50447D7802000078000982B4@nat28.tlf.novell.com> [new file with mode: 0644]
config/examples/test/corpus/<504482FD02000078000982E3@nat28.tlf.novell.com> [new file with mode: 0644]
config/examples/test/corpus/<5044849002000078000982EA@nat28.tlf.novell.com> [new file with mode: 0644]
config/examples/test/corpus/<50448EE80200007800098342@nat28.tlf.novell.com> [new file with mode: 0644]
config/examples/test/corpus/<5044CAD7.8030800@amd.com> [new file with mode: 0644]
config/examples/test/corpus/<5045BD5C02000078000985A7@nat28.tlf.novell.com> [new file with mode: 0644]
config/examples/test/corpus/<5045CDF302000078000985FB@nat28.tlf.novell.com> [new file with mode: 0644]
config/examples/test/corpus/<5045D0190200007800098608@nat28.tlf.novell.com> [new file with mode: 0644]
config/examples/test/corpus/<5045DA360200007800098688@nat28.tlf.novell.com> [new file with mode: 0644]
config/examples/test/corpus/<5045E55A02000078000986E4@nat28.tlf.novell.com> [new file with mode: 0644]
config/examples/test/corpus/<5045E8B802000078000986F7@nat28.tlf.novell.com> [new file with mode: 0644]
config/examples/test/corpus/<5046021F.7020105@citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<504720CB.8060906@citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<50473E170200007800098B7F@nat28.tlf.novell.com> [new file with mode: 0644]
config/examples/test/corpus/<5047420A0200007800098BB1@nat28.tlf.novell.com> [new file with mode: 0644]
config/examples/test/corpus/<504745F4.5060906@amd.com> [new file with mode: 0644]
config/examples/test/corpus/<5047483F0200007800098C18@nat28.tlf.novell.com> [new file with mode: 0644]
config/examples/test/corpus/<50474A11.6050601@amd.com> [new file with mode: 0644]
config/examples/test/corpus/<504756850200007800098D1A@nat28.tlf.novell.com> [new file with mode: 0644]
config/examples/test/corpus/<50475E8D.2090709@amd.com> [new file with mode: 0644]
config/examples/test/corpus/<504786530200007800098F6E@nat28.tlf.novell.com> [new file with mode: 0644]
config/examples/test/corpus/<504DE4EF.5070004@citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<504DECBF.2000306@citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<504E0600020000780009A37F@nat28.tlf.novell.com> [new file with mode: 0644]
config/examples/test/corpus/<504E0968020000780009A397@nat28.tlf.novell.com> [new file with mode: 0644]
config/examples/test/corpus/<50535AFA020000780009B7C4@nat28.tlf.novell.com> [new file with mode: 0644]
config/examples/test/corpus/<505AEB2D020000780009C81F@nat28.tlf.novell.com> [new file with mode: 0644]
config/examples/test/corpus/<50661622.5030302@goop.org> [new file with mode: 0644]
config/examples/test/corpus/<506C47BD020000780008D01A@nat28.tlf.novell.com> [new file with mode: 0644]
config/examples/test/corpus/<506D5A53020000780009F8B7@nat28.tlf.novell.com> [new file with mode: 0644]
config/examples/test/corpus/<507822ED.2090900@citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<5078304D.1050807@citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<507841A4.8090108@citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<507841D8.6090205@citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<50784462.3060203@citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<5078458B.7090901@citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<507BFFD0.2010707@citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<507C0046.5050700@citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<507C00A6.3020001@citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<507EB27D.8050308@citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<507EB694.8070105@canonical.com> [new file with mode: 0644]
config/examples/test/corpus/<507ECAF8.7050709@citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<507ECD06.2050407@canonical.com> [new file with mode: 0644]
config/examples/test/corpus/<507ED038.8000806@citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<507EDC71.4040400@canonical.com> [new file with mode: 0644]
config/examples/test/corpus/<507EE22602000078000A20DB@nat28.tlf.novell.com> [new file with mode: 0644]
config/examples/test/corpus/<507EEEDE.7040904@citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<507FAECA.3070506@canonical.com> [new file with mode: 0644]
config/examples/test/corpus/<507FB1E1.8080700@canonical.com> [new file with mode: 0644]
config/examples/test/corpus/<507FC51102000078000A235E@nat28.tlf.novell.com> [new file with mode: 0644]
config/examples/test/corpus/<507FC71502000078000A236C@nat28.tlf.novell.com> [new file with mode: 0644]
config/examples/test/corpus/<507FD7DE.2010209@canonical.com> [new file with mode: 0644]
config/examples/test/corpus/<507FF964.9090009@canonical.com> [new file with mode: 0644]
config/examples/test/corpus/<507FFA5102000078000A250D@nat28.tlf.novell.com> [new file with mode: 0644]
config/examples/test/corpus/<50806C0B.1060504@canonical.com> [new file with mode: 0644]
config/examples/test/corpus/<5080FCE6.906@canonical.com> [new file with mode: 0644]
config/examples/test/corpus/<51efcbff92f713286b5839884769ef34ab0c39f7.1345552068.git.julien.grall@citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<557fe87e4a6c0defdc6549e23e8e5e7b2ebb7a9f.1345552068.git.julien.grall@citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<5CDD8D0357624EC096B9FE6F96850269@LarryE6400> [new file with mode: 0644]
config/examples/test/corpus/<6035A0D088A63A46850C3988ED045A4B299B8A95@BITCOM1.int.sbss.com.au> [new file with mode: 0644]
config/examples/test/corpus/<6035A0D088A63A46850C3988ED045A4B299B8F9D@BITCOM1.int.sbss.com.au> [new file with mode: 0644]
config/examples/test/corpus/<6035A0D088A63A46850C3988ED045A4B299F74F8@BITCOM1.int.sbss.com.au> [new file with mode: 0644]
config/examples/test/corpus/<6035A0D088A63A46850C3988ED045A4B29B5D23E@BITCOM1.int.sbss.com.au> [new file with mode: 0644]
config/examples/test/corpus/<6035A0D088A63A46850C3988ED045A4B29B96FA1@BITCOM1.int.sbss.com.au> [new file with mode: 0644]
config/examples/test/corpus/<6035A0D088A63A46850C3988ED045A4B29B9806B@BITCOM1.int.sbss.com.au> [new file with mode: 0644]
config/examples/test/corpus/<6035A0D088A63A46850C3988ED045A4B29B980EB@BITCOM1.int.sbss.com.au> [new file with mode: 0644]
config/examples/test/corpus/<647712821.20120831234512@eikelenboom.it> [new file with mode: 0644]
config/examples/test/corpus/<723041396.20120901004249@eikelenboom.it> [new file with mode: 0644]
config/examples/test/corpus/<7392D0E0-02A4-48D7-8B16-4F93EA01F3AF@gridcentric.ca> [new file with mode: 0644]
config/examples/test/corpus/<768327829.20120904102146@eikelenboom.it> [new file with mode: 0644]
config/examples/test/corpus/<7914B38A4445B34AA16EB9F1352942F1012F0F6F4AE2@SJCPMAILBOX01.citrite.net> [new file with mode: 0644]
config/examples/test/corpus/<7914B38A4445B34AA16EB9F1352942F1012F0F6F4B01@SJCPMAILBOX01.citrite.net> [new file with mode: 0644]
config/examples/test/corpus/<7914B38A4445B34AA16EB9F1352942F1012F0F6F4B3C@SJCPMAILBOX01.citrite.net> [new file with mode: 0644]
config/examples/test/corpus/<7914B38A4445B34AA16EB9F1352942F1012F0F6F4B5B@SJCPMAILBOX01.citrite.net> [new file with mode: 0644]
config/examples/test/corpus/<7914B38A4445B34AA16EB9F1352942F1012F0F6F4B98@SJCPMAILBOX01.citrite.net> [new file with mode: 0644]
config/examples/test/corpus/<7914B38A4445B34AA16EB9F1352942F1012F0F6F4BA7@SJCPMAILBOX01.citrite.net> [new file with mode: 0644]
config/examples/test/corpus/<814436011.20120905141155@eikelenboom.it> [new file with mode: 0644]
config/examples/test/corpus/<85F40D8D-2FBE-4F5A-A895-E299DA20C445@gridcentric.ca> [new file with mode: 0644]
config/examples/test/corpus/<8747cb48d50a10784df56904db29ca8b6e8c5d80.1345552068.git.julien.grall@citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<88861335.20120905124810@eikelenboom.it> [new file with mode: 0644]
config/examples/test/corpus/<89b7274240cda4511d4e7e11fc9c21a53ba23887.1345552068.git.julien.grall@citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<9522ee398a1fd3cdce48cfe883b307336ae6674f.1345552068.git.julien.grall@citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<96d6442c911f6ed7f6cb24670901b151fa1570d6.1345552068.git.julien.grall@citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<A8575D3216834DFCAA86F5B2B3546613@LarryE6400> [new file with mode: 0644]
config/examples/test/corpus/<C96058547A5A42DDB1A89B2F8880BCE2@LarryE6400> [new file with mode: 0644]
config/examples/test/corpus/<CACJDEmr3V71cSdV3+i-n7=wfOnDBza04Lk+6+B6Fyx7LhQrdEg@mail.gmail.com> [new file with mode: 0644]
config/examples/test/corpus/<CAFLBxZYx4HdsR6-AbgybpTyEjZyN5n=QuuT_rmMbhpfRHHOEzg@mail.gmail.com> [new file with mode: 0644]
config/examples/test/corpus/<CAFLBxZbP2d=0gj7DqAc9nXga3H8Rv+RZPPSHHNbrbUv_=wzORA@mail.gmail.com> [new file with mode: 0644]
config/examples/test/corpus/<CAJ75kXYG3uPmMhUwB9ivHt0w5gm14aqAynSWQwooWg65xLTzPw@mail.gmail.com> [new file with mode: 0644]
config/examples/test/corpus/<CAOzFzEhh7pfpcq+0X-g7BXGAyNqgb8dZT4=Ys=Pmu1dFqH+46A@mail.gmail.com> [new file with mode: 0644]
config/examples/test/corpus/<CAOzFzEiZopdFQuZkUcSWWre9b=NeZpJM9n2VtEoZcRo=ejYQPA@mail.gmail.com> [new file with mode: 0644]
config/examples/test/corpus/<CC501EBB.48C47%keir@xen.org> [new file with mode: 0644]
config/examples/test/corpus/<CC5BEE01.3CBD1%keir.xen@gmail.com> [new file with mode: 0644]
config/examples/test/corpus/<CC672AF9.3D8E2%keir.xen@gmail.com> [new file with mode: 0644]
config/examples/test/corpus/<CC681CDD.3D966%keir.xen@gmail.com> [new file with mode: 0644]
config/examples/test/corpus/<CC68C5A1.3D97A%keir.xen@gmail.com> [new file with mode: 0644]
config/examples/test/corpus/<CC68C71C.3D981%keir.xen@gmail.com> [new file with mode: 0644]
config/examples/test/corpus/<CC68CC67.3D984%keir.xen@gmail.com> [new file with mode: 0644]
config/examples/test/corpus/<CC6932C2.3D99D%keir.xen@gmail.com> [new file with mode: 0644]
config/examples/test/corpus/<CC6B6568.3DAAD%keir.xen@gmail.com> [new file with mode: 0644]
config/examples/test/corpus/<CC6B65F2.3DAAF%keir.xen@gmail.com> [new file with mode: 0644]
config/examples/test/corpus/<CC6B74A7.3DAC1%keir.xen@gmail.com> [new file with mode: 0644]
config/examples/test/corpus/<CC6B764E.3DACF%keir.xen@gmail.com> [new file with mode: 0644]
config/examples/test/corpus/<CC6B803A.4A8E0%keir@xen.org> [new file with mode: 0644]
config/examples/test/corpus/<CC7B4CE4.3EE74%keir.xen@gmail.com> [new file with mode: 0644]
config/examples/test/corpus/<CC7B740A.3EE89%keir.xen@gmail.com> [new file with mode: 0644]
config/examples/test/corpus/<D42A53061A72429CA5138077DF2BDC0C@LarryE6400> [new file with mode: 0644]
config/examples/test/corpus/<E1T9C4K-0003Su-2p@mariner.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<alpine.DEB.2.00.1205281439080.26786@kaball-desktop> [new file with mode: 0644]
config/examples/test/corpus/<alpine.DEB.2.00.1205291511560.26786@kaball-desktop> [new file with mode: 0644]
config/examples/test/corpus/<alpine.DEB.2.00.1205291540590.26786@kaball-desktop> [new file with mode: 0644]
config/examples/test/corpus/<alpine.DEB.2.00.1205291608430.26786@kaball-desktop> [new file with mode: 0644]
config/examples/test/corpus/<alpine.DEB.2.02.1206051810270.6030@kaball.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<alpine.DEB.2.02.1206061345230.6030@kaball.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<alpine.DEB.2.02.1206061403450.6030@kaball.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<alpine.DEB.2.02.1206061438000.6030@kaball.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<alpine.DEB.2.02.1206061438560.6030@kaball.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<alpine.DEB.2.02.1206061443300.6030@kaball.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<alpine.DEB.2.02.1206061446590.6030@kaball.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<alpine.DEB.2.02.1206061447180.6030@kaball.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<alpine.DEB.2.02.1206061452530.6030@kaball.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<alpine.DEB.2.02.1206061613210.6030@kaball.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<alpine.DEB.2.02.1206061615110.6030@kaball.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<alpine.DEB.2.02.1206061620040.6030@kaball.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<alpine.DEB.2.02.1206061623240.6030@kaball.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<alpine.DEB.2.02.1206061627380.6030@kaball.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<alpine.DEB.2.02.1206061713410.6030@kaball.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<alpine.DEB.2.02.1206061725020.6030@kaball.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<alpine.DEB.2.02.1206061739130.6030@kaball.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<alpine.DEB.2.02.1206061825480.2415@kaball.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<alpine.DEB.2.02.1206061833290.2415@kaball.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<alpine.DEB.2.02.1206061839560.2415@kaball.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<alpine.DEB.2.02.1206061846260.2415@kaball.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<alpine.DEB.2.02.1206071126490.2415@kaball.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<alpine.DEB.2.02.1206071131370.2415@kaball.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<alpine.DEB.2.02.1206071138250.2415@kaball.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<alpine.DEB.2.02.1206071140160.2415@kaball.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<alpine.DEB.2.02.1206071146180.2415@kaball.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<alpine.DEB.2.02.1206071154420.2415@kaball.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<alpine.DEB.2.02.1206071159120.2415@kaball.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<alpine.DEB.2.02.1206071214020.2415@kaball.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<alpine.DEB.2.02.1206071239250.2415@kaball.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<alpine.DEB.2.02.1206071759000.2415@kaball.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<alpine.DEB.2.02.1206081100050.14957@kaball.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<alpine.DEB.2.02.1206261238560.27860@kaball.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<alpine.DEB.2.02.1207261813080.26163@kaball.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<alpine.DEB.2.02.1207271246080.26163@kaball.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<alpine.DEB.2.02.1207271350370.26163@kaball.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<alpine.DEB.2.02.1207271431320.26163@kaball.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<alpine.DEB.2.02.1207271442380.26163@kaball.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<alpine.DEB.2.02.1207271454470.26163@kaball.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<alpine.DEB.2.02.1207271502480.26163@kaball.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<alpine.DEB.2.02.1207271514140.26163@kaball.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<alpine.DEB.2.02.1207271526420.26163@kaball.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<alpine.DEB.2.02.1207271545440.26163@kaball.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<alpine.DEB.2.02.1207271613200.26163@kaball.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<alpine.DEB.2.02.1207271618310.26163@kaball.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<alpine.DEB.2.02.1207271739550.26163@kaball.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<alpine.DEB.2.02.1207271749420.26163@kaball.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<alpine.DEB.2.02.1208011641110.4645@kaball.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<alpine.DEB.2.02.1208011641410.4645@kaball.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<alpine.DEB.2.02.1208011646560.4645@kaball.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<alpine.DEB.2.02.1208011704000.4645@kaball.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<alpine.DEB.2.02.1208011705100.4645@kaball.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<alpine.DEB.2.02.1208011707280.4645@kaball.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<alpine.DEB.2.02.1208011716040.4645@kaball.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<alpine.DEB.2.02.1208011719050.4645@kaball.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<alpine.DEB.2.02.1208011719570.4645@kaball.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<alpine.DEB.2.02.1208011752020.4645@kaball.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<alpine.DEB.2.02.1208061127440.4645@kaball.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<alpine.DEB.2.02.1208061142070.4645@kaball.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<alpine.DEB.2.02.1208061146480.4645@kaball.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<alpine.DEB.2.02.1208061200130.4645@kaball.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<alpine.DEB.2.02.1208151418380.2278@kaball.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<alpine.DEB.2.02.1208151824250.2278@kaball.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<alpine.DEB.2.02.1208151833110.2278@kaball.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<alpine.DEB.2.02.1208151844230.2278@kaball.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<alpine.DEB.2.02.1208151846410.2278@kaball.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<alpine.DEB.2.02.1208161053350.2278@kaball.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<alpine.DEB.2.02.1208161200200.2278@kaball.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<alpine.DEB.2.02.1208161523420.4850@kaball.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<alpine.DEB.2.02.1208161756140.15568@kaball.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<alpine.DEB.2.02.1208161801210.15568@kaball.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<alpine.DEB.2.02.1208171443580.15568@kaball.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<alpine.DEB.2.02.1208171450420.15568@kaball.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<alpine.DEB.2.02.1208171453060.15568@kaball.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<alpine.DEB.2.02.1208171540350.15568@kaball.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<alpine.DEB.2.02.1208171553060.15568@kaball.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<alpine.DEB.2.02.1208171829230.15568@kaball.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<alpine.DEB.2.02.1208171835010.15568@kaball.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<alpine.DEB.2.02.1208171839590.15568@kaball.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<alpine.DEB.2.02.1208171902320.15568@kaball.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<alpine.DEB.2.02.1208201243180.15568@kaball.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<alpine.DEB.2.02.1208201257420.15568@kaball.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<alpine.DEB.2.02.1208201318240.15568@kaball.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<alpine.DEB.2.02.1208211514130.15568@kaball.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<alpine.DEB.2.02.1208211626470.15568@kaball.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<alpine.DEB.2.02.1208221146230.15568@kaball.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<alpine.DEB.2.02.1208221159560.15568@kaball.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<alpine.DEB.2.02.1208221540570.15568@kaball.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<alpine.DEB.2.02.1208231656160.15568@kaball.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<alpine.DEB.2.02.1209141631200.29232@kaball.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<alpine.DEB.2.02.1209141652440.29232@kaball.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<alpine.DEB.2.02.1209171153350.29232@kaball.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<alpine.DEB.2.02.1209191408460.29232@kaball.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<alpine.DEB.2.02.1209191420290.29232@kaball.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<alpine.DEB.2.02.1209241257440.29232@kaball.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<alpine.DEB.2.02.1209251054140.29232@kaball.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<alpine.DEB.2.02.1209261225340.29232@kaball.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<alpine.DEB.2.02.1210031242180.29232@kaball.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<alpine.DEB.2.02.1210031336210.29232@kaball.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<alpine.DEB.2.02.1210031431080.29232@kaball.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<alpine.DEB.2.02.1210031450220.29232@kaball.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<alpine.DEB.2.02.1210031641050.29232@kaball.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<alpine.DEB.2.02.1210031648330.29232@kaball.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<alpine.DEB.2.02.1210031658120.29232@kaball.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<alpine.DEB.2.02.1210031758310.29232@kaball.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<alpine.DEB.2.02.1210031807340.29232@kaball.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<alpine.DEB.2.02.1210041106560.29232@kaball.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<alpine.DEB.2.02.1210051239100.29232@kaball.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<alpine.DEB.2.02.1210051243480.29232@kaball.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<alpine.DEB.2.02.1210051253140.29232@kaball.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<alpine.DEB.2.02.1210051302160.29232@kaball.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<alpine.DEB.2.02.1210051417110.29232@kaball.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<alpine.DEB.2.02.1210051419030.29232@kaball.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<alpine.DEB.2.02.1210051420260.29232@kaball.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<alpine.DEB.2.02.1210051421530.29232@kaball.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<alpine.DEB.2.02.1210051430200.29232@kaball.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<alpine.DEB.2.02.1210051432010.29232@kaball.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<alpine.DEB.2.02.1210051437110.29232@kaball.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<alpine.DEB.2.02.1210051438340.29232@kaball.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<alpine.DEB.2.02.1210051503160.29232@kaball.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<alpine.DEB.2.02.1210051505380.29232@kaball.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<alpine.DEB.2.02.1210051553430.29539@kaball.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<alpine.DEB.2.02.1210091330560.29539@kaball.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<alpine.DEB.2.02.1210091506030.29539@kaball.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<alpine.DEB.2.02.1210171749000.2689@kaball.uk.xensource.com> [new file with mode: 0644]
config/examples/test/corpus/<c378b04ee29071c1d6d68bd3ef48fedadb493b10.1345552068.git.julien.grall@citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<cc44fbd3e6bc6d252367bc7ee77151de5ac8d2d5.1345552068.git.julien.grall@citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<ceab22f2150107af78fd8134b4dee9020a1aaf41.1345552068.git.julien.grall@citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<cover.1345552068.git.julien.grall@citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<d481c7657e727bbd67f762244fc3b1383a0ee037.1345552068.git.julien.grall@citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<dd493399678c6eee3b5b0a08eb790b73fba1a678.1345552068.git.julien.grall@citrix.com> [new file with mode: 0644]
config/examples/test/corpus/<fcf046ea782dda6cacb3bf11813bf1d16e531e6b.1345552068.git.julien.grall@citrix.com> [new file with mode: 0644]
config/examples/test/emesinae.conf [new file with mode: 0644]
config/examples/test/fakereceive.sh [new file with mode: 0755]
config/examples/test/insertcorpus.sh [new file with mode: 0755]
config/examples/test/test.sh [new file with mode: 0755]
test/README [deleted file]
test/control.1.test [deleted file]
test/control.2.test [deleted file]
test/control.3.test [deleted file]
test/control.4.test [deleted file]
test/control.5.test [deleted file]
test/control.6.test [deleted file]
test/control.7.test [deleted file]
test/control.8.test [deleted file]
test/corpus/<001301cd5fc1$818953c0$849bfb40$@core.kaist.ac.kr> [deleted file]
test/corpus/<002301cd590c$49aee250$dd0ca6f0$@brice-amiard.Fr> [deleted file]
test/corpus/<003501cd6010$224d58d0$66e80a70$@core.kaist.ac.kr> [deleted file]
test/corpus/<008601cd5f45$6eff7530$4cfe5f90$@core.kaist.ac.kr> [deleted file]
test/corpus/<05f8b1f47b42aaf2430490453a2b783eabbe9bfb.1345552068.git.julien.grall@citrix.com> [deleted file]
test/corpus/<0616f810ead8fa9d2beb8dc3b7306724a0e39ca1.1345552068.git.julien.grall@citrix.com> [deleted file]
test/corpus/<0c0e65af87b2e86b62d82565c2e363ddfb8acfc6.1345552068.git.julien.grall@citrix.com> [deleted file]
test/corpus/<0daed9ef86102101bbc23a26ac887d751aa8f8ae.1345552068.git.julien.grall@citrix.com> [deleted file]
test/corpus/<1144695277.20120904184345@eikelenboom.it> [deleted file]
test/corpus/<1336753602.23818.133.camel@zakaz.uk.xensource.com> [deleted file]
test/corpus/<1338287956-24691-1-git-send-email-stefano.stabellini@eu.citrix.com> [deleted file]
test/corpus/<1338287956-24691-10-git-send-email-stefano.stabellini@eu.citrix.com> [deleted file]
test/corpus/<1338287956-24691-11-git-send-email-stefano.stabellini@eu.citrix.com> [deleted file]
test/corpus/<1338287956-24691-2-git-send-email-stefano.stabellini@eu.citrix.com> [deleted file]
test/corpus/<1338287956-24691-3-git-send-email-stefano.stabellini@eu.citrix.com> [deleted file]
test/corpus/<1338287956-24691-4-git-send-email-stefano.stabellini@eu.citrix.com> [deleted file]
test/corpus/<1338287956-24691-5-git-send-email-stefano.stabellini@eu.citrix.com> [deleted file]
test/corpus/<1338287956-24691-6-git-send-email-stefano.stabellini@eu.citrix.com> [deleted file]
test/corpus/<1338287956-24691-7-git-send-email-stefano.stabellini@eu.citrix.com> [deleted file]
test/corpus/<1338287956-24691-8-git-send-email-stefano.stabellini@eu.citrix.com> [deleted file]
test/corpus/<1338287956-24691-9-git-send-email-stefano.stabellini@eu.citrix.com> [deleted file]
test/corpus/<1338300632.14158.115.camel@zakaz.uk.xensource.com> [deleted file]
test/corpus/<1338303814.14158.125.camel@zakaz.uk.xensource.com> [deleted file]
test/corpus/<1338305560.31698.2.camel@zakaz.uk.xensource.com> [deleted file]
test/corpus/<1338305856.31698.5.camel@zakaz.uk.xensource.com> [deleted file]
test/corpus/<1338565113.17466.141.camel@zakaz.uk.xensource.com> [deleted file]
test/corpus/<1338565207-2888-1-git-send-email-ian.campbell@citrix.com> [deleted file]
test/corpus/<1338565207-2888-10-git-send-email-ian.campbell@citrix.com> [deleted file]
test/corpus/<1338565207-2888-11-git-send-email-ian.campbell@citrix.com> [deleted file]
test/corpus/<1338565207-2888-12-git-send-email-ian.campbell@citrix.com> [deleted file]
test/corpus/<1338565207-2888-13-git-send-email-ian.campbell@citrix.com> [deleted file]
test/corpus/<1338565207-2888-14-git-send-email-ian.campbell@citrix.com> [deleted file]
test/corpus/<1338565207-2888-15-git-send-email-ian.campbell@citrix.com> [deleted file]
test/corpus/<1338565207-2888-16-git-send-email-ian.campbell@citrix.com> [deleted file]
test/corpus/<1338565207-2888-17-git-send-email-ian.campbell@citrix.com> [deleted file]
test/corpus/<1338565207-2888-18-git-send-email-ian.campbell@citrix.com> [deleted file]
test/corpus/<1338565207-2888-19-git-send-email-ian.campbell@citrix.com> [deleted file]
test/corpus/<1338565207-2888-2-git-send-email-ian.campbell@citrix.com> [deleted file]
test/corpus/<1338565207-2888-20-git-send-email-ian.campbell@citrix.com> [deleted file]
test/corpus/<1338565207-2888-21-git-send-email-ian.campbell@citrix.com> [deleted file]
test/corpus/<1338565207-2888-22-git-send-email-ian.campbell@citrix.com> [deleted file]
test/corpus/<1338565207-2888-23-git-send-email-ian.campbell@citrix.com> [deleted file]
test/corpus/<1338565207-2888-24-git-send-email-ian.campbell@citrix.com> [deleted file]
test/corpus/<1338565207-2888-25-git-send-email-ian.campbell@citrix.com> [deleted file]
test/corpus/<1338565207-2888-26-git-send-email-ian.campbell@citrix.com> [deleted file]
test/corpus/<1338565207-2888-27-git-send-email-ian.campbell@citrix.com> [deleted file]
test/corpus/<1338565207-2888-28-git-send-email-ian.campbell@citrix.com> [deleted file]
test/corpus/<1338565207-2888-29-git-send-email-ian.campbell@citrix.com> [deleted file]
test/corpus/<1338565207-2888-3-git-send-email-ian.campbell@citrix.com> [deleted file]
test/corpus/<1338565207-2888-30-git-send-email-ian.campbell@citrix.com> [deleted file]
test/corpus/<1338565207-2888-31-git-send-email-ian.campbell@citrix.com> [deleted file]
test/corpus/<1338565207-2888-32-git-send-email-ian.campbell@citrix.com> [deleted file]
test/corpus/<1338565207-2888-33-git-send-email-ian.campbell@citrix.com> [deleted file]
test/corpus/<1338565207-2888-34-git-send-email-ian.campbell@citrix.com> [deleted file]
test/corpus/<1338565207-2888-35-git-send-email-ian.campbell@citrix.com> [deleted file]
test/corpus/<1338565207-2888-36-git-send-email-ian.campbell@citrix.com> [deleted file]
test/corpus/<1338565207-2888-37-git-send-email-ian.campbell@citrix.com> [deleted file]
test/corpus/<1338565207-2888-38-git-send-email-ian.campbell@citrix.com> [deleted file]
test/corpus/<1338565207-2888-4-git-send-email-ian.campbell@citrix.com> [deleted file]
test/corpus/<1338565207-2888-5-git-send-email-ian.campbell@citrix.com> [deleted file]
test/corpus/<1338565207-2888-6-git-send-email-ian.campbell@citrix.com> [deleted file]
test/corpus/<1338565207-2888-7-git-send-email-ian.campbell@citrix.com> [deleted file]
test/corpus/<1338565207-2888-8-git-send-email-ian.campbell@citrix.com> [deleted file]
test/corpus/<1338565207-2888-9-git-send-email-ian.campbell@citrix.com> [deleted file]
test/corpus/<1338569170.1077.36.camel@zakaz.uk.xensource.com> [deleted file]
test/corpus/<1338577461.14877.61.camel@dagon.hellion.org.uk> [deleted file]
test/corpus/<1338990925.32319.103.camel@zakaz.uk.xensource.com> [deleted file]
test/corpus/<1338993031.32319.107.camel@zakaz.uk.xensource.com> [deleted file]
test/corpus/<1338995969.32319.139.camel@zakaz.uk.xensource.com> [deleted file]
test/corpus/<1338996592.32319.141.camel@zakaz.uk.xensource.com> [deleted file]
test/corpus/<1339061691.15265.49.camel@zakaz.uk.xensource.com> [deleted file]
test/corpus/<1339062030.15265.53.camel@zakaz.uk.xensource.com> [deleted file]
test/corpus/<1339068947.18523.10.camel@zakaz.uk.xensource.com> [deleted file]
test/corpus/<1339070260.18523.14.camel@zakaz.uk.xensource.com> [deleted file]
test/corpus/<1339070809.18523.15.camel@zakaz.uk.xensource.com> [deleted file]
test/corpus/<1339072005.18523.18.camel@zakaz.uk.xensource.com> [deleted file]
test/corpus/<1339077263.18523.19.camel@zakaz.uk.xensource.com> [deleted file]
test/corpus/<1339086867.18523.36.camel@zakaz.uk.xensource.com> [deleted file]
test/corpus/<1339087181.22331.2.camel@zakaz.uk.xensource.com> [deleted file]
test/corpus/<1339088221.22331.6.camel@zakaz.uk.xensource.com> [deleted file]
test/corpus/<1339088579.22331.8.camel@zakaz.uk.xensource.com> [deleted file]
test/corpus/<1339594843.24104.218.camel@zakaz.uk.xensource.com> [deleted file]
test/corpus/<1339600416.24104.228.camel@zakaz.uk.xensource.com> [deleted file]
test/corpus/<1339600735.24104.230.camel@zakaz.uk.xensource.com> [deleted file]
test/corpus/<1339601583.24104.237.camel@zakaz.uk.xensource.com> [deleted file]
test/corpus/<1340098989.16742.2.camel@zakaz.uk.xensource.com> [deleted file]
test/corpus/<1340199444.4906.54.camel@zakaz.uk.xensource.com> [deleted file]
test/corpus/<1340200126.4906.56.camel@zakaz.uk.xensource.com> [deleted file]
test/corpus/<1340200398.4906.60.camel@zakaz.uk.xensource.com> [deleted file]
test/corpus/<1340200564.4906.61.camel@zakaz.uk.xensource.com> [deleted file]
test/corpus/<1340206729.4906.74.camel@zakaz.uk.xensource.com> [deleted file]
test/corpus/<1340266524.21872.2.camel@zakaz.uk.xensource.com> [deleted file]
test/corpus/<1340270809.21872.35.camel@zakaz.uk.xensource.com> [deleted file]
test/corpus/<1340701380.3832.36.camel@zakaz.uk.xensource.com> [deleted file]
test/corpus/<1340702747.3832.37.camel@zakaz.uk.xensource.com> [deleted file]
test/corpus/<1340703036.3832.38.camel@zakaz.uk.xensource.com> [deleted file]
test/corpus/<1340703351.3832.42.camel@zakaz.uk.xensource.com> [deleted file]
test/corpus/<1340705906.3832.49.camel@zakaz.uk.xensource.com> [deleted file]
test/corpus/<1340713538.3832.72.camel@zakaz.uk.xensource.com> [deleted file]
test/corpus/<1340718320.3832.116.camel@zakaz.uk.xensource.com> [deleted file]
test/corpus/<1340957235.10942.72.camel@zakaz.uk.xensource.com> [deleted file]
test/corpus/<1340957369.10942.74.camel@zakaz.uk.xensource.com> [deleted file]
test/corpus/<1341007454.5953.18.camel@dagon.hellion.org.uk> [deleted file]
test/corpus/<1341221345.4625.8.camel@zakaz.uk.xensource.com> [deleted file]
test/corpus/<1343051870.5797.36.camel@zakaz.uk.xensource.com> [deleted file]
test/corpus/<1343052688.5797.38.camel@zakaz.uk.xensource.com> [deleted file]
test/corpus/<1343054850.5797.40.camel@zakaz.uk.xensource.com> [deleted file]
test/corpus/<1343316846-25860-1-git-send-email-stefano.stabellini@eu.citrix.com> [deleted file]
test/corpus/<1343316846-25860-10-git-send-email-stefano.stabellini@eu.citrix.com> [deleted file]
test/corpus/<1343316846-25860-11-git-send-email-stefano.stabellini@eu.citrix.com> [deleted file]
test/corpus/<1343316846-25860-12-git-send-email-stefano.stabellini@eu.citrix.com> [deleted file]
test/corpus/<1343316846-25860-13-git-send-email-stefano.stabellini@eu.citrix.com> [deleted file]
test/corpus/<1343316846-25860-14-git-send-email-stefano.stabellini@eu.citrix.com> [deleted file]
test/corpus/<1343316846-25860-15-git-send-email-stefano.stabellini@eu.citrix.com> [deleted file]
test/corpus/<1343316846-25860-16-git-send-email-stefano.stabellini@eu.citrix.com> [deleted file]
test/corpus/<1343316846-25860-17-git-send-email-stefano.stabellini@eu.citrix.com> [deleted file]
test/corpus/<1343316846-25860-18-git-send-email-stefano.stabellini@eu.citrix.com> [deleted file]
test/corpus/<1343316846-25860-19-git-send-email-stefano.stabellini@eu.citrix.com> [deleted file]
test/corpus/<1343316846-25860-2-git-send-email-stefano.stabellini@eu.citrix.com> [deleted file]
test/corpus/<1343316846-25860-20-git-send-email-stefano.stabellini@eu.citrix.com> [deleted file]
test/corpus/<1343316846-25860-21-git-send-email-stefano.stabellini@eu.citrix.com> [deleted file]
test/corpus/<1343316846-25860-22-git-send-email-stefano.stabellini@eu.citrix.com> [deleted file]
test/corpus/<1343316846-25860-23-git-send-email-stefano.stabellini@eu.citrix.com> [deleted file]
test/corpus/<1343316846-25860-24-git-send-email-stefano.stabellini@eu.citrix.com> [deleted file]
test/corpus/<1343316846-25860-3-git-send-email-stefano.stabellini@eu.citrix.com> [deleted file]
test/corpus/<1343316846-25860-4-git-send-email-stefano.stabellini@eu.citrix.com> [deleted file]
test/corpus/<1343316846-25860-5-git-send-email-stefano.stabellini@eu.citrix.com> [deleted file]
test/corpus/<1343316846-25860-6-git-send-email-stefano.stabellini@eu.citrix.com> [deleted file]
test/corpus/<1343316846-25860-7-git-send-email-stefano.stabellini@eu.citrix.com> [deleted file]
test/corpus/<1343316846-25860-8-git-send-email-stefano.stabellini@eu.citrix.com> [deleted file]
test/corpus/<1343316846-25860-9-git-send-email-stefano.stabellini@eu.citrix.com> [deleted file]
test/corpus/<1343379653.6812.92.camel@zakaz.uk.xensource.com> [deleted file]
test/corpus/<1343380659.6812.106.camel@zakaz.uk.xensource.com> [deleted file]
test/corpus/<1343380764.6812.108.camel@zakaz.uk.xensource.com> [deleted file]
test/corpus/<1343381305.6812.116.camel@zakaz.uk.xensource.com> [deleted file]
test/corpus/<1343381813.6812.120.camel@zakaz.uk.xensource.com> [deleted file]
test/corpus/<1343382151.6812.124.camel@zakaz.uk.xensource.com> [deleted file]
test/corpus/<1343382276.6812.126.camel@zakaz.uk.xensource.com> [deleted file]
test/corpus/<1343382495.6812.127.camel@zakaz.uk.xensource.com> [deleted file]
test/corpus/<1343395134.6812.162.camel@zakaz.uk.xensource.com> [deleted file]
test/corpus/<1343399630.25096.4.camel@zakaz.uk.xensource.com> [deleted file]
test/corpus/<1343399971.25096.8.camel@zakaz.uk.xensource.com> [deleted file]
test/corpus/<1343400685.25096.15.camel@zakaz.uk.xensource.com> [deleted file]
test/corpus/<1343405479.25096.25.camel@zakaz.uk.xensource.com> [deleted file]
test/corpus/<1343892951.7571.50.camel@dagon.hellion.org.uk> [deleted file]
test/corpus/<1344935141.5926.6.camel@zakaz.uk.xensource.com> [deleted file]
test/corpus/<1344947062-4796-1-git-send-email-attilio.rao@citrix.com> [deleted file]
test/corpus/<1344947062-4796-2-git-send-email-attilio.rao@citrix.com> [deleted file]
test/corpus/<1344947062-4796-3-git-send-email-attilio.rao@citrix.com> [deleted file]
test/corpus/<1344949075.5926.29.camel@zakaz.uk.xensource.com> [deleted file]
test/corpus/<1344949140.5926.30.camel@zakaz.uk.xensource.com> [deleted file]
test/corpus/<1345056190.12434.34.camel@dagon.hellion.org.uk> [deleted file]
test/corpus/<1345104759.27489.7.camel@zakaz.uk.xensource.com> [deleted file]
test/corpus/<1345128612-10323-1-git-send-email-stefano.stabellini@eu.citrix.com> [deleted file]
test/corpus/<1345128612-10323-2-git-send-email-stefano.stabellini@eu.citrix.com> [deleted file]
test/corpus/<1345128612-10323-3-git-send-email-stefano.stabellini@eu.citrix.com> [deleted file]
test/corpus/<1345128612-10323-4-git-send-email-stefano.stabellini@eu.citrix.com> [deleted file]
test/corpus/<1345128612-10323-5-git-send-email-stefano.stabellini@eu.citrix.com> [deleted file]
test/corpus/<1345128612-10323-6-git-send-email-stefano.stabellini@eu.citrix.com> [deleted file]
test/corpus/<1345133009-21941-1-git-send-email-konrad.wilk@oracle.com> [deleted file]
test/corpus/<1345133009-21941-10-git-send-email-konrad.wilk@oracle.com> [deleted file]
test/corpus/<1345133009-21941-11-git-send-email-konrad.wilk@oracle.com> [deleted file]
test/corpus/<1345133009-21941-12-git-send-email-konrad.wilk@oracle.com> [deleted file]
test/corpus/<1345133009-21941-2-git-send-email-konrad.wilk@oracle.com> [deleted file]
test/corpus/<1345133009-21941-3-git-send-email-konrad.wilk@oracle.com> [deleted file]
test/corpus/<1345133009-21941-4-git-send-email-konrad.wilk@oracle.com> [deleted file]
test/corpus/<1345133009-21941-5-git-send-email-konrad.wilk@oracle.com> [deleted file]
test/corpus/<1345133009-21941-6-git-send-email-konrad.wilk@oracle.com> [deleted file]
test/corpus/<1345133009-21941-7-git-send-email-konrad.wilk@oracle.com> [deleted file]
test/corpus/<1345133009-21941-8-git-send-email-konrad.wilk@oracle.com> [deleted file]
test/corpus/<1345133009-21941-9-git-send-email-konrad.wilk@oracle.com> [deleted file]
test/corpus/<1345190532.30865.67.camel@zakaz.uk.xensource.com> [deleted file]
test/corpus/<1345211486.10161.31.camel@zakaz.uk.xensource.com> [deleted file]
test/corpus/<1345215020.10161.64.camel@zakaz.uk.xensource.com> [deleted file]
test/corpus/<1345215992.10161.77.camel@zakaz.uk.xensource.com> [deleted file]
test/corpus/<1345463624.28762.67.camel@zakaz.uk.xensource.com> [deleted file]
test/corpus/<1345633688-31684-1-git-send-email-stefano.stabellini@eu.citrix.com> [deleted file]
test/corpus/<1345633688-31684-2-git-send-email-stefano.stabellini@eu.citrix.com> [deleted file]
test/corpus/<1345633688-31684-3-git-send-email-stefano.stabellini@eu.citrix.com> [deleted file]
test/corpus/<1345633688-31684-4-git-send-email-stefano.stabellini@eu.citrix.com> [deleted file]
test/corpus/<1345633688-31684-5-git-send-email-stefano.stabellini@eu.citrix.com> [deleted file]
test/corpus/<1345633688-31684-6-git-send-email-stefano.stabellini@eu.citrix.com> [deleted file]
test/corpus/<1345727912.12501.83.camel@zakaz.uk.xensource.com> [deleted file]
test/corpus/<1345728118.12501.86.camel@zakaz.uk.xensource.com> [deleted file]
test/corpus/<1345728471.12501.90.camel@zakaz.uk.xensource.com> [deleted file]
test/corpus/<1345728617.12501.92.camel@zakaz.uk.xensource.com> [deleted file]
test/corpus/<1345728948.12501.98.camel@zakaz.uk.xensource.com> [deleted file]
test/corpus/<1345730172.12501.113.camel@zakaz.uk.xensource.com> [deleted file]
test/corpus/<1345751525.23624.58.camel@dagon.hellion.org.uk> [deleted file]
test/corpus/<1345804516.12501.182.camel@zakaz.uk.xensource.com> [deleted file]
test/corpus/<1345813421.19419.11.camel@zakaz.uk.xensource.com> [deleted file]
test/corpus/<1345817370.19419.22.camel@zakaz.uk.xensource.com> [deleted file]
test/corpus/<1345819507.19419.29.camel@zakaz.uk.xensource.com> [deleted file]
test/corpus/<1346246116-29999-1-git-send-email-david.vrabel@citrix.com> [deleted file]
test/corpus/<1346246116-29999-2-git-send-email-david.vrabel@citrix.com> [deleted file]
test/corpus/<1346246116-29999-3-git-send-email-david.vrabel@citrix.com> [deleted file]
test/corpus/<1346257402.20019.9.camel@zakaz.uk.xensource.com> [deleted file]
test/corpus/<1346263520.6655.4.camel@dagon.hellion.org.uk> [deleted file]
test/corpus/<1346421542.27277.218.camel@zakaz.uk.xensource.com> [deleted file]
test/corpus/<1346425278.27277.224.camel@zakaz.uk.xensource.com> [deleted file]
test/corpus/<1346426619.27277.237.camel@zakaz.uk.xensource.com> [deleted file]
test/corpus/<1346428292.27277.243.camel@zakaz.uk.xensource.com> [deleted file]
test/corpus/<1346428909.27277.246.camel@zakaz.uk.xensource.com> [deleted file]
test/corpus/<1346434547.5820.10.camel@dagon.hellion.org.uk> [deleted file]
test/corpus/<1346663727.27277.255.camel@zakaz.uk.xensource.com> [deleted file]
test/corpus/<1346663746.27277.256.camel@zakaz.uk.xensource.com> [deleted file]
test/corpus/<1346665586.25864.5.camel@zakaz.uk.xensource.com> [deleted file]
test/corpus/<1346667053.25864.21.camel@zakaz.uk.xensource.com> [deleted file]
test/corpus/<1346834000.17325.4.camel@zakaz.uk.xensource.com> [deleted file]
test/corpus/<1347272111.5305.52.camel@zakaz.uk.xensource.com> [deleted file]
test/corpus/<1347627587.24226.192.camel@zakaz.uk.xensource.com> [deleted file]
test/corpus/<1347628660.24226.197.camel@zakaz.uk.xensource.com> [deleted file]
test/corpus/<1347630442.24226.211.camel@zakaz.uk.xensource.com> [deleted file]
test/corpus/<1347630971.24226.214.camel@zakaz.uk.xensource.com> [deleted file]
test/corpus/<1347637953.14977.10.camel@zakaz.uk.xensource.com> [deleted file]
test/corpus/<1348059789.14977.119.camel@zakaz.uk.xensource.com> [deleted file]
test/corpus/<1348060180.14977.123.camel@zakaz.uk.xensource.com> [deleted file]
test/corpus/<1348062615.14977.127.camel@zakaz.uk.xensource.com> [deleted file]
test/corpus/<1348062913.14977.132.camel@zakaz.uk.xensource.com> [deleted file]
test/corpus/<1348659840.19176.31.camel@zakaz.uk.xensource.com> [deleted file]
test/corpus/<1349265914.650.136.camel@zakaz.uk.xensource.com> [deleted file]
test/corpus/<1349271323.650.148.camel@zakaz.uk.xensource.com> [deleted file]
test/corpus/<1349272182.650.150.camel@zakaz.uk.xensource.com> [deleted file]
test/corpus/<1349272482.650.151.camel@zakaz.uk.xensource.com> [deleted file]
test/corpus/<1349276431.650.156.camel@zakaz.uk.xensource.com> [deleted file]
test/corpus/<1349279862.650.171.camel@zakaz.uk.xensource.com> [deleted file]
test/corpus/<1349280814.650.178.camel@zakaz.uk.xensource.com> [deleted file]
test/corpus/<1349282492.650.185.camel@zakaz.uk.xensource.com> [deleted file]
test/corpus/<1349339920.650.220.camel@zakaz.uk.xensource.com> [deleted file]
test/corpus/<1349363496.866.49.camel@zakaz.uk.xensource.com> [deleted file]
test/corpus/<1349363515-26190-1-git-send-email-ian.campbell@citrix.com> [deleted file]
test/corpus/<1349363515-26190-10-git-send-email-ian.campbell@citrix.com> [deleted file]
test/corpus/<1349363515-26190-11-git-send-email-ian.campbell@citrix.com> [deleted file]
test/corpus/<1349363515-26190-12-git-send-email-ian.campbell@citrix.com> [deleted file]
test/corpus/<1349363515-26190-13-git-send-email-ian.campbell@citrix.com> [deleted file]
test/corpus/<1349363515-26190-14-git-send-email-ian.campbell@citrix.com> [deleted file]
test/corpus/<1349363515-26190-2-git-send-email-ian.campbell@citrix.com> [deleted file]
test/corpus/<1349363515-26190-3-git-send-email-ian.campbell@citrix.com> [deleted file]
test/corpus/<1349363515-26190-4-git-send-email-ian.campbell@citrix.com> [deleted file]
test/corpus/<1349363515-26190-5-git-send-email-ian.campbell@citrix.com> [deleted file]
test/corpus/<1349363515-26190-6-git-send-email-ian.campbell@citrix.com> [deleted file]
test/corpus/<1349363515-26190-7-git-send-email-ian.campbell@citrix.com> [deleted file]
test/corpus/<1349363515-26190-8-git-send-email-ian.campbell@citrix.com> [deleted file]
test/corpus/<1349363515-26190-9-git-send-email-ian.campbell@citrix.com> [deleted file]
test/corpus/<1349365718.866.63.camel@zakaz.uk.xensource.com> [deleted file]
test/corpus/<1349428386.20946.15.camel@zakaz.uk.xensource.com> [deleted file]
test/corpus/<1349429005.20946.20.camel@zakaz.uk.xensource.com> [deleted file]
test/corpus/<1349437645.20946.74.camel@zakaz.uk.xensource.com> [deleted file]
test/corpus/<1349440338.20946.83.camel@zakaz.uk.xensource.com> [deleted file]
test/corpus/<1349443792.20946.97.camel@zakaz.uk.xensource.com> [deleted file]
test/corpus/<1349443982.20946.100.camel@zakaz.uk.xensource.com> [deleted file]
test/corpus/<1349444369.20946.101.camel@zakaz.uk.xensource.com> [deleted file]
test/corpus/<1349444550.20946.102.camel@zakaz.uk.xensource.com> [deleted file]
test/corpus/<1349445097.20946.108.camel@zakaz.uk.xensource.com> [deleted file]
test/corpus/<1349447625.20946.130.camel@zakaz.uk.xensource.com> [deleted file]
test/corpus/<1349447704.20946.131.camel@zakaz.uk.xensource.com> [deleted file]
test/corpus/<1349453467.20946.142.camel@zakaz.uk.xensource.com> [deleted file]
test/corpus/<1349453876.20946.143.camel@zakaz.uk.xensource.com> [deleted file]
test/corpus/<1350046634-2462-1-git-send-email-david.vrabel@citrix.com> [deleted file]
test/corpus/<1350046634-2462-2-git-send-email-david.vrabel@citrix.com> [deleted file]
test/corpus/<1350046634-2462-3-git-send-email-david.vrabel@citrix.com> [deleted file]
test/corpus/<1350046634-2462-4-git-send-email-david.vrabel@citrix.com> [deleted file]
test/corpus/<1350046970-2591-1-git-send-email-david.vrabel@citrix.com> [deleted file]
test/corpus/<1350046970-2591-2-git-send-email-david.vrabel@citrix.com> [deleted file]
test/corpus/<1350046970-2591-3-git-send-email-david.vrabel@citrix.com> [deleted file]
test/corpus/<1350293121.18058.10.camel@zakaz.uk.xensource.com> [deleted file]
test/corpus/<1350293217.18058.11.camel@zakaz.uk.xensource.com> [deleted file]
test/corpus/<1350293719.18058.13.camel@zakaz.uk.xensource.com> [deleted file]
test/corpus/<1350304068.18058.41.camel@zakaz.uk.xensource.com> [deleted file]
test/corpus/<1350383800.18058.114.camel@zakaz.uk.xensource.com> [deleted file]
test/corpus/<1350479456-4007-1-git-send-email-stefan.bader@canonical.com> [deleted file]
test/corpus/<1350482118.2460.74.camel@zakaz.uk.xensource.com> [deleted file]
test/corpus/<1350546483.28188.25.camel@dagon.hellion.org.uk> [deleted file]
test/corpus/<1377403931.20120901011625@eikelenboom.it> [deleted file]
test/corpus/<1576173912.20120904085238@eikelenboom.it> [deleted file]
test/corpus/<1894818567.20120904102024@eikelenboom.it> [deleted file]
test/corpus/<1925247026.20120903103325@eikelenboom.it> [deleted file]
test/corpus/<1E8F546AD8E64BF1B2D68D24F3BD4050@LarryE6400> [deleted file]
test/corpus/<20120601170514.GD77921@ocelot.phlegethon.org> [deleted file]
test/corpus/<20120606181852.GB38649@ocelot.phlegethon.org> [deleted file]
test/corpus/<20120607084517.GA70339@ocelot.phlegethon.org> [deleted file]
test/corpus/<20120607084917.GB70339@ocelot.phlegethon.org> [deleted file]
test/corpus/<20120607090334.GC70339@ocelot.phlegethon.org> [deleted file]
test/corpus/<20120607090808.GD70339@ocelot.phlegethon.org> [deleted file]
test/corpus/<20120607092951.GE70339@ocelot.phlegethon.org> [deleted file]
test/corpus/<20120607093258.GF70339@ocelot.phlegethon.org> [deleted file]
test/corpus/<20120607094152.GG70339@ocelot.phlegethon.org> [deleted file]
test/corpus/<20120607094805.GH70339@ocelot.phlegethon.org> [deleted file]
test/corpus/<20120607095128.GI70339@ocelot.phlegethon.org> [deleted file]
test/corpus/<20120607101826.GJ70339@ocelot.phlegethon.org> [deleted file]
test/corpus/<20120607102014.GK70339@ocelot.phlegethon.org> [deleted file]
test/corpus/<20120607102054.GL70339@ocelot.phlegethon.org> [deleted file]
test/corpus/<20120607102151.GM70339@ocelot.phlegethon.org> [deleted file]
test/corpus/<20120607102222.GN70339@ocelot.phlegethon.org> [deleted file]
test/corpus/<20120607102315.GO70339@ocelot.phlegethon.org> [deleted file]
test/corpus/<20120607114240.GQ70339@ocelot.phlegethon.org> [deleted file]
test/corpus/<20120607123922.GR70339@ocelot.phlegethon.org> [deleted file]
test/corpus/<20120607124033.GS70339@ocelot.phlegethon.org> [deleted file]
test/corpus/<20120607135930.GW70339@ocelot.phlegethon.org> [deleted file]
test/corpus/<20120607191035.GA76463@ocelot.phlegethon.org> [deleted file]
test/corpus/<20120614084732.GA82539@ocelot.phlegethon.org> [deleted file]
test/corpus/<20120628180007.06bb3fd3@mantra.us.oracle.com> [deleted file]
test/corpus/<20120628182602.6cc9b432@mantra.us.oracle.com> [deleted file]
test/corpus/<20120629010903.GC4902@phenom.dumpdata.com> [deleted file]
test/corpus/<20120629111546.50e36f52@mantra.us.oracle.com> [deleted file]
test/corpus/<20120629120738.425781e5@mantra.us.oracle.com> [deleted file]
test/corpus/<20120629141812.6ca72375@mantra.us.oracle.com> [deleted file]
test/corpus/<20120629155000.5152d544@mantra.us.oracle.com> [deleted file]
test/corpus/<20120702111818.73babf9b@mantra.us.oracle.com> [deleted file]
test/corpus/<20120725184429.GC16360@phenom.dumpdata.com> [deleted file]
test/corpus/<20120726163020.GB9222@phenom.dumpdata.com> [deleted file]
test/corpus/<20120726163352.GC9222@phenom.dumpdata.com> [deleted file]
test/corpus/<20120726163655.GD9222@phenom.dumpdata.com> [deleted file]
test/corpus/<20120726163759.GE9222@phenom.dumpdata.com> [deleted file]
test/corpus/<20120727142101.GA6802@n2100.arm.linux.org.uk> [deleted file]
test/corpus/<20120727145900.GC6802@n2100.arm.linux.org.uk> [deleted file]
test/corpus/<20120801104237.GB7227@phenom.dumpdata.com> [deleted file]
test/corpus/<20120801111937.4c9b3702@mantra.us.oracle.com> [deleted file]
test/corpus/<20120801141624.GD7227@phenom.dumpdata.com> [deleted file]
test/corpus/<20120801141959.GE7227@phenom.dumpdata.com> [deleted file]
test/corpus/<20120801142249.GF7227@phenom.dumpdata.com> [deleted file]
test/corpus/<20120801142840.GG7227@phenom.dumpdata.com> [deleted file]
test/corpus/<20120801143459.GH7227@phenom.dumpdata.com> [deleted file]
test/corpus/<20120801143551.GI7227@phenom.dumpdata.com> [deleted file]
test/corpus/<20120801143822.GJ7227@phenom.dumpdata.com> [deleted file]
test/corpus/<20120801143946.GK7227@phenom.dumpdata.com> [deleted file]
test/corpus/<20120801144059.GL7227@phenom.dumpdata.com> [deleted file]
test/corpus/<20120801144418.GM7227@phenom.dumpdata.com> [deleted file]
test/corpus/<20120801144751.GN7227@phenom.dumpdata.com> [deleted file]
test/corpus/<20120801144818.GO7227@phenom.dumpdata.com> [deleted file]
test/corpus/<20120801145215.GP7227@phenom.dumpdata.com> [deleted file]
test/corpus/<20120801145257.GQ7227@phenom.dumpdata.com> [deleted file]
test/corpus/<20120801145413.GR7227@phenom.dumpdata.com> [deleted file]
test/corpus/<20120801145610.GS7227@phenom.dumpdata.com> [deleted file]
test/corpus/<20120802141341.GE16749@phenom.dumpdata.com> [deleted file]
test/corpus/<201208070018394210381@gmail.com> [deleted file]
test/corpus/<2012081023124696835343@gmail.com> [deleted file]
test/corpus/<20120814100704.GA19704@bloms.de> [deleted file]
test/corpus/<20120814101822.GX19851@reaktio.net> [deleted file]
test/corpus/<20120814102039.GY19851@reaktio.net> [deleted file]
test/corpus/<2012081522045495397713@gmail.com> [deleted file]
test/corpus/<2012081522121039050717@gmail.com> [deleted file]
test/corpus/<20120816131547.GE20601@ocelot.phlegethon.org> [deleted file]
test/corpus/<201208162143289686654@gmail.com> [deleted file]
test/corpus/<2012081622270760996017@gmail.com> [deleted file]
test/corpus/<20120817173911.GB11688@phenom.dumpdata.com> [deleted file]
test/corpus/<20120817174549.GA14257@phenom.dumpdata.com> [deleted file]
test/corpus/<20120817180557.GA18579@phenom.dumpdata.com> [deleted file]
test/corpus/<20120820120649.GI13755@localhost.localdomain> [deleted file]
test/corpus/<20120820141305.GA2713@phenom.dumpdata.com> [deleted file]
test/corpus/<20120821145713.GG20289@phenom.dumpdata.com> [deleted file]
test/corpus/<20120821172732.GA23715@phenom.dumpdata.com> [deleted file]
test/corpus/<20120821190317.GA13035@phenom.dumpdata.com> [deleted file]
test/corpus/<20120822140039.GB30964@phenom.dumpdata.com> [deleted file]
test/corpus/<20120822145730.GI30964@phenom.dumpdata.com> [deleted file]
test/corpus/<20120822162119.GB24203@phenom.dumpdata.com> [deleted file]
test/corpus/<20120822185519.GA29609@phenom.dumpdata.com> [deleted file]
test/corpus/<20120823154012.GA18845@phenom.dumpdata.com> [deleted file]
test/corpus/<20120831193746.GA13009@bloms.de> [deleted file]
test/corpus/<20120902053549.GF8912@reaktio.net> [deleted file]
test/corpus/<20120904191229.GH8912@reaktio.net> [deleted file]
test/corpus/<20120905195403.GO8912@reaktio.net> [deleted file]
test/corpus/<20120905200858.GP8912@reaktio.net> [deleted file]
test/corpus/<20120905202927.GD27814@phenom.dumpdata.com> [deleted file]
test/corpus/<20120906105822.GB3668@phenom.dumpdata.com> [deleted file]
test/corpus/<20120912171921.GT8912@reaktio.net> [deleted file]
test/corpus/<20120914160727.1ff41de2@mantra.us.oracle.com> [deleted file]
test/corpus/<20120914160918.7e61d1d0@mantra.us.oracle.com> [deleted file]
test/corpus/<20120916122704.4ea05b45@pyramind.ukuu.org.uk> [deleted file]
test/corpus/<20120916170737.3c8f7e9e@pyramind.ukuu.org.uk> [deleted file]
test/corpus/<20120917181858.GA17720@phenom.dumpdata.com> [deleted file]
test/corpus/<20120921121659.5a723de9@mantra.us.oracle.com> [deleted file]
test/corpus/<20120924154335.097d3fb9@mantra.us.oracle.com> [deleted file]
test/corpus/<20120925180416.0137d61a@mantra.us.oracle.com> [deleted file]
test/corpus/<20121002183619.70734b7a@mantra.us.oracle.com> [deleted file]
test/corpus/<20121002190323.2e16f6ff@mantra.us.oracle.com> [deleted file]
test/corpus/<20121002200837.GB668@phenom.dumpdata.com> [deleted file]
test/corpus/<20121002200907.GC668@phenom.dumpdata.com> [deleted file]
test/corpus/<20121002205456.GA15862@u002268147cd4502c336d.ant.amazon.com> [deleted file]
test/corpus/<20121003134323.GA31270@phenom.dumpdata.com> [deleted file]
test/corpus/<20121003141116.GA10633@phenom.dumpdata.com> [deleted file]
test/corpus/<20121003153714.4656b7e9@mantra.us.oracle.com> [deleted file]
test/corpus/<20121004151535.GB11426@phenom.dumpdata.com> [deleted file]
test/corpus/<20121004152459.GC11426@phenom.dumpdata.com> [deleted file]
test/corpus/<20121004152731.GD11426@phenom.dumpdata.com> [deleted file]
test/corpus/<20121004155400.GA12128@phenom.dumpdata.com> [deleted file]
test/corpus/<20121004182518.76e9624a@mantra.us.oracle.com> [deleted file]
test/corpus/<20121004183528.060416a0@mantra.us.oracle.com> [deleted file]
test/corpus/<20121005114006.55115cca@mantra.us.oracle.com> [deleted file]
test/corpus/<20121005121024.17c22c7d@mantra.us.oracle.com> [deleted file]
test/corpus/<20121008124101.GB29650@localhost.localdomain> [deleted file]
test/corpus/<20121008175925.105e78de@mantra.us.oracle.com> [deleted file]
test/corpus/<20121008180728.07893577@mantra.us.oracle.com> [deleted file]
test/corpus/<20121012134147.GA11778@phenom.dumpdata.com> [deleted file]
test/corpus/<20121012145716.GA20842@phenom.dumpdata.com> [deleted file]
test/corpus/<20121012150251.GB20842@phenom.dumpdata.com> [deleted file]
test/corpus/<20121012161610.GA7880@phenom.dumpdata.com> [deleted file]
test/corpus/<20397.14624.57140.518016@mariner.uk.xensource.com> [deleted file]
test/corpus/<20420.59905.191002.80850@mariner.uk.xensource.com> [deleted file]
test/corpus/<20420.59991.541173.849526@mariner.uk.xensource.com> [deleted file]
test/corpus/<20432.62078.265596.607954@mariner.uk.xensource.com> [deleted file]
test/corpus/<20544.54424.775548.66532@mariner.uk.xensource.com> [deleted file]
test/corpus/<20544.57061.422450.821411@mariner.uk.xensource.com> [deleted file]
test/corpus/<217459398.20120902171441@eikelenboom.it> [deleted file]
test/corpus/<348297741.20120905122542@eikelenboom.it> [deleted file]
test/corpus/<388095299.20120928160836@eikelenboom.it> [deleted file]
test/corpus/<3921d4d38a5c20943af1ceb64f5f0691d7bfd702.1345552068.git.julien.grall@citrix.com> [deleted file]
test/corpus/<40501859.20120902104331@eikelenboom.it> [deleted file]
test/corpus/<4610648186.20120904090841@eikelenboom.it> [deleted file]
test/corpus/<4710608674.20120904101330@eikelenboom.it> [deleted file]
test/corpus/<4FC8EBD9.4@cantab.net> [deleted file]
test/corpus/<4FD0EB53.2040603@citrix.com> [deleted file]
test/corpus/<4FED7BD7020000780008CBFB@nat28.tlf.novell.com> [deleted file]
test/corpus/<4FED8052020000780008CC32@nat28.tlf.novell.com> [deleted file]
test/corpus/<4FF177A3020000780008D091@nat28.tlf.novell.com> [deleted file]
test/corpus/<4FF3009F020000780008D522@nat28.tlf.novell.com> [deleted file]
test/corpus/<4FFD4C06.7090403@citrix.com> [deleted file]
test/corpus/<4FFE93DE.5020608@citrix.com> [deleted file]
test/corpus/<4cb9d7f220dd459c1554c6b5d9e2ed73@abpni.co.uk> [deleted file]
test/corpus/<500D61BF.4080508@cantab.net> [deleted file]
test/corpus/<501176AF.3000607@cantab.net> [deleted file]
test/corpus/<50119856.2020206@codeaurora.org> [deleted file]
test/corpus/<501257F30200007800090D9E@nat28.tlf.novell.com> [deleted file]
test/corpus/<501258FB0200007800090DB6@nat28.tlf.novell.com> [deleted file]
test/corpus/<5012598C0200007800090DB9@nat28.tlf.novell.com> [deleted file]
test/corpus/<50128FE6.5070109@codeaurora.org> [deleted file]
test/corpus/<50197527.3070007@gmail.com> [deleted file]
test/corpus/<50224B7402000078000937DA@nat28.tlf.novell.com> [deleted file]
test/corpus/<5028B603.9010306@core.kaist.ac.kr> [deleted file]
test/corpus/<50293785020000780009484C@nat28.tlf.novell.com> [deleted file]
test/corpus/<502A0BE50200007800094A4E@nat28.tlf.novell.com> [deleted file]
test/corpus/<502A0E610200007800094A58@nat28.tlf.novell.com> [deleted file]
test/corpus/<502A3BBC0200007800094B68@nat28.tlf.novell.com> [deleted file]
test/corpus/<502A3BFD0200007800094B6B@nat28.tlf.novell.com> [deleted file]
test/corpus/<502A5964.2080509@citrix.com> [deleted file]
test/corpus/<502A5CD0.8000201@citrix.com> [deleted file]
test/corpus/<502B85D1.8000606@citrix.com> [deleted file]
test/corpus/<502BD5C302000078000952AD@nat28.tlf.novell.com> [deleted file]
test/corpus/<502BD943.8030701@citrix.com> [deleted file]
test/corpus/<502BEEAD.7030906@citrix.com> [deleted file]
test/corpus/<502BEF5E.1080105@citrix.com> [deleted file]
test/corpus/<502BF563.8010902@citrix.com> [deleted file]
test/corpus/<502CC9D702000078000955B9@nat28.tlf.novell.com> [deleted file]
test/corpus/<502D04AA.8030107@citrix.com> [deleted file]
test/corpus/<502D1C8A0200007800095851@nat28.tlf.novell.com> [deleted file]
test/corpus/<502D33B8020000780009596B@nat28.tlf.novell.com> [deleted file]
test/corpus/<502D37D702000078000959F7@nat28.tlf.novell.com> [deleted file]
test/corpus/<502E285A0200007800095D04@nat28.tlf.novell.com> [deleted file]
test/corpus/<502E2F090200007800095D62@nat28.tlf.novell.com> [deleted file]
test/corpus/<502E6A200200007800095E9A@nat28.tlf.novell.com> [deleted file]
test/corpus/<502E6BBA0200007800095EBB@nat28.tlf.novell.com> [deleted file]
test/corpus/<502E78010200007800095F56@nat28.tlf.novell.com> [deleted file]
test/corpus/<502E788B0200007800095F59@nat28.tlf.novell.com> [deleted file]
test/corpus/<503504FE0200007800096F08@nat28.tlf.novell.com> [deleted file]
test/corpus/<50351DEF020000780009702A@nat28.tlf.novell.com> [deleted file]
test/corpus/<5035DA7E020000780008A5E6@nat28.tlf.novell.com> [deleted file]
test/corpus/<5035E7D3020000780008A60D@nat28.tlf.novell.com> [deleted file]
test/corpus/<5035E986020000780008A617@nat28.tlf.novell.com> [deleted file]
test/corpus/<50360B81.2070402@citrix.com> [deleted file]
test/corpus/<503680C5.6070509@citrix.com> [deleted file]
test/corpus/<50375721.7080503@citrix.com> [deleted file]
test/corpus/<5037586C.5000902@citrix.com> [deleted file]
test/corpus/<503779F5.80508@citrix.com> [deleted file]
test/corpus/<50377DAD.6000405@citrix.com> [deleted file]
test/corpus/<50378054.9080506@citrix.com> [deleted file]
test/corpus/<503786CF.40006@citrix.com> [deleted file]
test/corpus/<50379193.3020600@citrix.com> [deleted file]
test/corpus/<5037AE20020000780008A7A8@nat28.tlf.novell.com> [deleted file]
test/corpus/<503E451A.20107@citrix.com> [deleted file]
test/corpus/<503E49BE.7080704@citrix.com> [deleted file]
test/corpus/<503F3BC9.6020100@citrix.com> [deleted file]
test/corpus/<50409CE002000076000B3B44@novprvoes0310.provo.novell.com> [deleted file]
test/corpus/<5040A73502000076000B3B82@novprvoes0310.provo.novell.com> [deleted file]
test/corpus/<5040F7140200007800097E91@nat28.tlf.novell.com> [deleted file]
test/corpus/<5040FB490200007800097ED2@nat28.tlf.novell.com> [deleted file]
test/corpus/<50447D7802000078000982B4@nat28.tlf.novell.com> [deleted file]
test/corpus/<504482FD02000078000982E3@nat28.tlf.novell.com> [deleted file]
test/corpus/<5044849002000078000982EA@nat28.tlf.novell.com> [deleted file]
test/corpus/<50448EE80200007800098342@nat28.tlf.novell.com> [deleted file]
test/corpus/<5044CAD7.8030800@amd.com> [deleted file]
test/corpus/<5045BD5C02000078000985A7@nat28.tlf.novell.com> [deleted file]
test/corpus/<5045CDF302000078000985FB@nat28.tlf.novell.com> [deleted file]
test/corpus/<5045D0190200007800098608@nat28.tlf.novell.com> [deleted file]
test/corpus/<5045DA360200007800098688@nat28.tlf.novell.com> [deleted file]
test/corpus/<5045E55A02000078000986E4@nat28.tlf.novell.com> [deleted file]
test/corpus/<5045E8B802000078000986F7@nat28.tlf.novell.com> [deleted file]
test/corpus/<5046021F.7020105@citrix.com> [deleted file]
test/corpus/<504720CB.8060906@citrix.com> [deleted file]
test/corpus/<50473E170200007800098B7F@nat28.tlf.novell.com> [deleted file]
test/corpus/<5047420A0200007800098BB1@nat28.tlf.novell.com> [deleted file]
test/corpus/<504745F4.5060906@amd.com> [deleted file]
test/corpus/<5047483F0200007800098C18@nat28.tlf.novell.com> [deleted file]
test/corpus/<50474A11.6050601@amd.com> [deleted file]
test/corpus/<504756850200007800098D1A@nat28.tlf.novell.com> [deleted file]
test/corpus/<50475E8D.2090709@amd.com> [deleted file]
test/corpus/<504786530200007800098F6E@nat28.tlf.novell.com> [deleted file]
test/corpus/<504DE4EF.5070004@citrix.com> [deleted file]
test/corpus/<504DECBF.2000306@citrix.com> [deleted file]
test/corpus/<504E0600020000780009A37F@nat28.tlf.novell.com> [deleted file]
test/corpus/<504E0968020000780009A397@nat28.tlf.novell.com> [deleted file]
test/corpus/<50535AFA020000780009B7C4@nat28.tlf.novell.com> [deleted file]
test/corpus/<505AEB2D020000780009C81F@nat28.tlf.novell.com> [deleted file]
test/corpus/<50661622.5030302@goop.org> [deleted file]
test/corpus/<506C47BD020000780008D01A@nat28.tlf.novell.com> [deleted file]
test/corpus/<506D5A53020000780009F8B7@nat28.tlf.novell.com> [deleted file]
test/corpus/<507822ED.2090900@citrix.com> [deleted file]
test/corpus/<5078304D.1050807@citrix.com> [deleted file]
test/corpus/<507841A4.8090108@citrix.com> [deleted file]
test/corpus/<507841D8.6090205@citrix.com> [deleted file]
test/corpus/<50784462.3060203@citrix.com> [deleted file]
test/corpus/<5078458B.7090901@citrix.com> [deleted file]
test/corpus/<507BFFD0.2010707@citrix.com> [deleted file]
test/corpus/<507C0046.5050700@citrix.com> [deleted file]
test/corpus/<507C00A6.3020001@citrix.com> [deleted file]
test/corpus/<507EB27D.8050308@citrix.com> [deleted file]
test/corpus/<507EB694.8070105@canonical.com> [deleted file]
test/corpus/<507ECAF8.7050709@citrix.com> [deleted file]
test/corpus/<507ECD06.2050407@canonical.com> [deleted file]
test/corpus/<507ED038.8000806@citrix.com> [deleted file]
test/corpus/<507EDC71.4040400@canonical.com> [deleted file]
test/corpus/<507EE22602000078000A20DB@nat28.tlf.novell.com> [deleted file]
test/corpus/<507EEEDE.7040904@citrix.com> [deleted file]
test/corpus/<507FAECA.3070506@canonical.com> [deleted file]
test/corpus/<507FB1E1.8080700@canonical.com> [deleted file]
test/corpus/<507FC51102000078000A235E@nat28.tlf.novell.com> [deleted file]
test/corpus/<507FC71502000078000A236C@nat28.tlf.novell.com> [deleted file]
test/corpus/<507FD7DE.2010209@canonical.com> [deleted file]
test/corpus/<507FF964.9090009@canonical.com> [deleted file]
test/corpus/<507FFA5102000078000A250D@nat28.tlf.novell.com> [deleted file]
test/corpus/<50806C0B.1060504@canonical.com> [deleted file]
test/corpus/<5080FCE6.906@canonical.com> [deleted file]
test/corpus/<51efcbff92f713286b5839884769ef34ab0c39f7.1345552068.git.julien.grall@citrix.com> [deleted file]
test/corpus/<557fe87e4a6c0defdc6549e23e8e5e7b2ebb7a9f.1345552068.git.julien.grall@citrix.com> [deleted file]
test/corpus/<5CDD8D0357624EC096B9FE6F96850269@LarryE6400> [deleted file]
test/corpus/<6035A0D088A63A46850C3988ED045A4B299B8A95@BITCOM1.int.sbss.com.au> [deleted file]
test/corpus/<6035A0D088A63A46850C3988ED045A4B299B8F9D@BITCOM1.int.sbss.com.au> [deleted file]
test/corpus/<6035A0D088A63A46850C3988ED045A4B299F74F8@BITCOM1.int.sbss.com.au> [deleted file]
test/corpus/<6035A0D088A63A46850C3988ED045A4B29B5D23E@BITCOM1.int.sbss.com.au> [deleted file]
test/corpus/<6035A0D088A63A46850C3988ED045A4B29B96FA1@BITCOM1.int.sbss.com.au> [deleted file]
test/corpus/<6035A0D088A63A46850C3988ED045A4B29B9806B@BITCOM1.int.sbss.com.au> [deleted file]
test/corpus/<6035A0D088A63A46850C3988ED045A4B29B980EB@BITCOM1.int.sbss.com.au> [deleted file]
test/corpus/<647712821.20120831234512@eikelenboom.it> [deleted file]
test/corpus/<723041396.20120901004249@eikelenboom.it> [deleted file]
test/corpus/<7392D0E0-02A4-48D7-8B16-4F93EA01F3AF@gridcentric.ca> [deleted file]
test/corpus/<768327829.20120904102146@eikelenboom.it> [deleted file]
test/corpus/<7914B38A4445B34AA16EB9F1352942F1012F0F6F4AE2@SJCPMAILBOX01.citrite.net> [deleted file]
test/corpus/<7914B38A4445B34AA16EB9F1352942F1012F0F6F4B01@SJCPMAILBOX01.citrite.net> [deleted file]
test/corpus/<7914B38A4445B34AA16EB9F1352942F1012F0F6F4B3C@SJCPMAILBOX01.citrite.net> [deleted file]
test/corpus/<7914B38A4445B34AA16EB9F1352942F1012F0F6F4B5B@SJCPMAILBOX01.citrite.net> [deleted file]
test/corpus/<7914B38A4445B34AA16EB9F1352942F1012F0F6F4B98@SJCPMAILBOX01.citrite.net> [deleted file]
test/corpus/<7914B38A4445B34AA16EB9F1352942F1012F0F6F4BA7@SJCPMAILBOX01.citrite.net> [deleted file]
test/corpus/<814436011.20120905141155@eikelenboom.it> [deleted file]
test/corpus/<85F40D8D-2FBE-4F5A-A895-E299DA20C445@gridcentric.ca> [deleted file]
test/corpus/<8747cb48d50a10784df56904db29ca8b6e8c5d80.1345552068.git.julien.grall@citrix.com> [deleted file]
test/corpus/<88861335.20120905124810@eikelenboom.it> [deleted file]
test/corpus/<89b7274240cda4511d4e7e11fc9c21a53ba23887.1345552068.git.julien.grall@citrix.com> [deleted file]
test/corpus/<9522ee398a1fd3cdce48cfe883b307336ae6674f.1345552068.git.julien.grall@citrix.com> [deleted file]
test/corpus/<96d6442c911f6ed7f6cb24670901b151fa1570d6.1345552068.git.julien.grall@citrix.com> [deleted file]
test/corpus/<A8575D3216834DFCAA86F5B2B3546613@LarryE6400> [deleted file]
test/corpus/<C96058547A5A42DDB1A89B2F8880BCE2@LarryE6400> [deleted file]
test/corpus/<CACJDEmr3V71cSdV3+i-n7=wfOnDBza04Lk+6+B6Fyx7LhQrdEg@mail.gmail.com> [deleted file]
test/corpus/<CAFLBxZYx4HdsR6-AbgybpTyEjZyN5n=QuuT_rmMbhpfRHHOEzg@mail.gmail.com> [deleted file]
test/corpus/<CAFLBxZbP2d=0gj7DqAc9nXga3H8Rv+RZPPSHHNbrbUv_=wzORA@mail.gmail.com> [deleted file]
test/corpus/<CAJ75kXYG3uPmMhUwB9ivHt0w5gm14aqAynSWQwooWg65xLTzPw@mail.gmail.com> [deleted file]
test/corpus/<CAOzFzEhh7pfpcq+0X-g7BXGAyNqgb8dZT4=Ys=Pmu1dFqH+46A@mail.gmail.com> [deleted file]
test/corpus/<CAOzFzEiZopdFQuZkUcSWWre9b=NeZpJM9n2VtEoZcRo=ejYQPA@mail.gmail.com> [deleted file]
test/corpus/<CC501EBB.48C47%keir@xen.org> [deleted file]
test/corpus/<CC5BEE01.3CBD1%keir.xen@gmail.com> [deleted file]
test/corpus/<CC672AF9.3D8E2%keir.xen@gmail.com> [deleted file]
test/corpus/<CC681CDD.3D966%keir.xen@gmail.com> [deleted file]
test/corpus/<CC68C5A1.3D97A%keir.xen@gmail.com> [deleted file]
test/corpus/<CC68C71C.3D981%keir.xen@gmail.com> [deleted file]
test/corpus/<CC68CC67.3D984%keir.xen@gmail.com> [deleted file]
test/corpus/<CC6932C2.3D99D%keir.xen@gmail.com> [deleted file]
test/corpus/<CC6B6568.3DAAD%keir.xen@gmail.com> [deleted file]
test/corpus/<CC6B65F2.3DAAF%keir.xen@gmail.com> [deleted file]
test/corpus/<CC6B74A7.3DAC1%keir.xen@gmail.com> [deleted file]
test/corpus/<CC6B764E.3DACF%keir.xen@gmail.com> [deleted file]
test/corpus/<CC6B803A.4A8E0%keir@xen.org> [deleted file]
test/corpus/<CC7B4CE4.3EE74%keir.xen@gmail.com> [deleted file]
test/corpus/<CC7B740A.3EE89%keir.xen@gmail.com> [deleted file]
test/corpus/<D42A53061A72429CA5138077DF2BDC0C@LarryE6400> [deleted file]
test/corpus/<E1T9C4K-0003Su-2p@mariner.uk.xensource.com> [deleted file]
test/corpus/<alpine.DEB.2.00.1205281439080.26786@kaball-desktop> [deleted file]
test/corpus/<alpine.DEB.2.00.1205291511560.26786@kaball-desktop> [deleted file]
test/corpus/<alpine.DEB.2.00.1205291540590.26786@kaball-desktop> [deleted file]
test/corpus/<alpine.DEB.2.00.1205291608430.26786@kaball-desktop> [deleted file]
test/corpus/<alpine.DEB.2.02.1206051810270.6030@kaball.uk.xensource.com> [deleted file]
test/corpus/<alpine.DEB.2.02.1206061345230.6030@kaball.uk.xensource.com> [deleted file]
test/corpus/<alpine.DEB.2.02.1206061403450.6030@kaball.uk.xensource.com> [deleted file]
test/corpus/<alpine.DEB.2.02.1206061438000.6030@kaball.uk.xensource.com> [deleted file]
test/corpus/<alpine.DEB.2.02.1206061438560.6030@kaball.uk.xensource.com> [deleted file]
test/corpus/<alpine.DEB.2.02.1206061443300.6030@kaball.uk.xensource.com> [deleted file]
test/corpus/<alpine.DEB.2.02.1206061446590.6030@kaball.uk.xensource.com> [deleted file]
test/corpus/<alpine.DEB.2.02.1206061447180.6030@kaball.uk.xensource.com> [deleted file]
test/corpus/<alpine.DEB.2.02.1206061452530.6030@kaball.uk.xensource.com> [deleted file]
test/corpus/<alpine.DEB.2.02.1206061613210.6030@kaball.uk.xensource.com> [deleted file]
test/corpus/<alpine.DEB.2.02.1206061615110.6030@kaball.uk.xensource.com> [deleted file]
test/corpus/<alpine.DEB.2.02.1206061620040.6030@kaball.uk.xensource.com> [deleted file]
test/corpus/<alpine.DEB.2.02.1206061623240.6030@kaball.uk.xensource.com> [deleted file]
test/corpus/<alpine.DEB.2.02.1206061627380.6030@kaball.uk.xensource.com> [deleted file]
test/corpus/<alpine.DEB.2.02.1206061713410.6030@kaball.uk.xensource.com> [deleted file]
test/corpus/<alpine.DEB.2.02.1206061725020.6030@kaball.uk.xensource.com> [deleted file]
test/corpus/<alpine.DEB.2.02.1206061739130.6030@kaball.uk.xensource.com> [deleted file]
test/corpus/<alpine.DEB.2.02.1206061825480.2415@kaball.uk.xensource.com> [deleted file]
test/corpus/<alpine.DEB.2.02.1206061833290.2415@kaball.uk.xensource.com> [deleted file]
test/corpus/<alpine.DEB.2.02.1206061839560.2415@kaball.uk.xensource.com> [deleted file]
test/corpus/<alpine.DEB.2.02.1206061846260.2415@kaball.uk.xensource.com> [deleted file]
test/corpus/<alpine.DEB.2.02.1206071126490.2415@kaball.uk.xensource.com> [deleted file]
test/corpus/<alpine.DEB.2.02.1206071131370.2415@kaball.uk.xensource.com> [deleted file]
test/corpus/<alpine.DEB.2.02.1206071138250.2415@kaball.uk.xensource.com> [deleted file]
test/corpus/<alpine.DEB.2.02.1206071140160.2415@kaball.uk.xensource.com> [deleted file]
test/corpus/<alpine.DEB.2.02.1206071146180.2415@kaball.uk.xensource.com> [deleted file]
test/corpus/<alpine.DEB.2.02.1206071154420.2415@kaball.uk.xensource.com> [deleted file]
test/corpus/<alpine.DEB.2.02.1206071159120.2415@kaball.uk.xensource.com> [deleted file]
test/corpus/<alpine.DEB.2.02.1206071214020.2415@kaball.uk.xensource.com> [deleted file]
test/corpus/<alpine.DEB.2.02.1206071239250.2415@kaball.uk.xensource.com> [deleted file]
test/corpus/<alpine.DEB.2.02.1206071759000.2415@kaball.uk.xensource.com> [deleted file]
test/corpus/<alpine.DEB.2.02.1206081100050.14957@kaball.uk.xensource.com> [deleted file]
test/corpus/<alpine.DEB.2.02.1206261238560.27860@kaball.uk.xensource.com> [deleted file]
test/corpus/<alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com> [deleted file]
test/corpus/<alpine.DEB.2.02.1207261813080.26163@kaball.uk.xensource.com> [deleted file]
test/corpus/<alpine.DEB.2.02.1207271246080.26163@kaball.uk.xensource.com> [deleted file]
test/corpus/<alpine.DEB.2.02.1207271350370.26163@kaball.uk.xensource.com> [deleted file]
test/corpus/<alpine.DEB.2.02.1207271431320.26163@kaball.uk.xensource.com> [deleted file]
test/corpus/<alpine.DEB.2.02.1207271442380.26163@kaball.uk.xensource.com> [deleted file]
test/corpus/<alpine.DEB.2.02.1207271454470.26163@kaball.uk.xensource.com> [deleted file]
test/corpus/<alpine.DEB.2.02.1207271502480.26163@kaball.uk.xensource.com> [deleted file]
test/corpus/<alpine.DEB.2.02.1207271514140.26163@kaball.uk.xensource.com> [deleted file]
test/corpus/<alpine.DEB.2.02.1207271526420.26163@kaball.uk.xensource.com> [deleted file]
test/corpus/<alpine.DEB.2.02.1207271545440.26163@kaball.uk.xensource.com> [deleted file]
test/corpus/<alpine.DEB.2.02.1207271613200.26163@kaball.uk.xensource.com> [deleted file]
test/corpus/<alpine.DEB.2.02.1207271618310.26163@kaball.uk.xensource.com> [deleted file]
test/corpus/<alpine.DEB.2.02.1207271739550.26163@kaball.uk.xensource.com> [deleted file]
test/corpus/<alpine.DEB.2.02.1207271749420.26163@kaball.uk.xensource.com> [deleted file]
test/corpus/<alpine.DEB.2.02.1208011641110.4645@kaball.uk.xensource.com> [deleted file]
test/corpus/<alpine.DEB.2.02.1208011641410.4645@kaball.uk.xensource.com> [deleted file]
test/corpus/<alpine.DEB.2.02.1208011646560.4645@kaball.uk.xensource.com> [deleted file]
test/corpus/<alpine.DEB.2.02.1208011704000.4645@kaball.uk.xensource.com> [deleted file]
test/corpus/<alpine.DEB.2.02.1208011705100.4645@kaball.uk.xensource.com> [deleted file]
test/corpus/<alpine.DEB.2.02.1208011707280.4645@kaball.uk.xensource.com> [deleted file]
test/corpus/<alpine.DEB.2.02.1208011716040.4645@kaball.uk.xensource.com> [deleted file]
test/corpus/<alpine.DEB.2.02.1208011719050.4645@kaball.uk.xensource.com> [deleted file]
test/corpus/<alpine.DEB.2.02.1208011719570.4645@kaball.uk.xensource.com> [deleted file]
test/corpus/<alpine.DEB.2.02.1208011752020.4645@kaball.uk.xensource.com> [deleted file]
test/corpus/<alpine.DEB.2.02.1208061127440.4645@kaball.uk.xensource.com> [deleted file]
test/corpus/<alpine.DEB.2.02.1208061142070.4645@kaball.uk.xensource.com> [deleted file]
test/corpus/<alpine.DEB.2.02.1208061146480.4645@kaball.uk.xensource.com> [deleted file]
test/corpus/<alpine.DEB.2.02.1208061200130.4645@kaball.uk.xensource.com> [deleted file]
test/corpus/<alpine.DEB.2.02.1208151418380.2278@kaball.uk.xensource.com> [deleted file]
test/corpus/<alpine.DEB.2.02.1208151824250.2278@kaball.uk.xensource.com> [deleted file]
test/corpus/<alpine.DEB.2.02.1208151833110.2278@kaball.uk.xensource.com> [deleted file]
test/corpus/<alpine.DEB.2.02.1208151844230.2278@kaball.uk.xensource.com> [deleted file]
test/corpus/<alpine.DEB.2.02.1208151846410.2278@kaball.uk.xensource.com> [deleted file]
test/corpus/<alpine.DEB.2.02.1208161053350.2278@kaball.uk.xensource.com> [deleted file]
test/corpus/<alpine.DEB.2.02.1208161200200.2278@kaball.uk.xensource.com> [deleted file]
test/corpus/<alpine.DEB.2.02.1208161523420.4850@kaball.uk.xensource.com> [deleted file]
test/corpus/<alpine.DEB.2.02.1208161756140.15568@kaball.uk.xensource.com> [deleted file]
test/corpus/<alpine.DEB.2.02.1208161801210.15568@kaball.uk.xensource.com> [deleted file]
test/corpus/<alpine.DEB.2.02.1208171443580.15568@kaball.uk.xensource.com> [deleted file]
test/corpus/<alpine.DEB.2.02.1208171450420.15568@kaball.uk.xensource.com> [deleted file]
test/corpus/<alpine.DEB.2.02.1208171453060.15568@kaball.uk.xensource.com> [deleted file]
test/corpus/<alpine.DEB.2.02.1208171540350.15568@kaball.uk.xensource.com> [deleted file]
test/corpus/<alpine.DEB.2.02.1208171553060.15568@kaball.uk.xensource.com> [deleted file]
test/corpus/<alpine.DEB.2.02.1208171829230.15568@kaball.uk.xensource.com> [deleted file]
test/corpus/<alpine.DEB.2.02.1208171835010.15568@kaball.uk.xensource.com> [deleted file]
test/corpus/<alpine.DEB.2.02.1208171839590.15568@kaball.uk.xensource.com> [deleted file]
test/corpus/<alpine.DEB.2.02.1208171902320.15568@kaball.uk.xensource.com> [deleted file]
test/corpus/<alpine.DEB.2.02.1208201243180.15568@kaball.uk.xensource.com> [deleted file]
test/corpus/<alpine.DEB.2.02.1208201257420.15568@kaball.uk.xensource.com> [deleted file]
test/corpus/<alpine.DEB.2.02.1208201318240.15568@kaball.uk.xensource.com> [deleted file]
test/corpus/<alpine.DEB.2.02.1208211514130.15568@kaball.uk.xensource.com> [deleted file]
test/corpus/<alpine.DEB.2.02.1208211626470.15568@kaball.uk.xensource.com> [deleted file]
test/corpus/<alpine.DEB.2.02.1208221146230.15568@kaball.uk.xensource.com> [deleted file]
test/corpus/<alpine.DEB.2.02.1208221159560.15568@kaball.uk.xensource.com> [deleted file]
test/corpus/<alpine.DEB.2.02.1208221540570.15568@kaball.uk.xensource.com> [deleted file]
test/corpus/<alpine.DEB.2.02.1208231656160.15568@kaball.uk.xensource.com> [deleted file]
test/corpus/<alpine.DEB.2.02.1209141631200.29232@kaball.uk.xensource.com> [deleted file]
test/corpus/<alpine.DEB.2.02.1209141652440.29232@kaball.uk.xensource.com> [deleted file]
test/corpus/<alpine.DEB.2.02.1209171153350.29232@kaball.uk.xensource.com> [deleted file]
test/corpus/<alpine.DEB.2.02.1209191408460.29232@kaball.uk.xensource.com> [deleted file]
test/corpus/<alpine.DEB.2.02.1209191420290.29232@kaball.uk.xensource.com> [deleted file]
test/corpus/<alpine.DEB.2.02.1209241257440.29232@kaball.uk.xensource.com> [deleted file]
test/corpus/<alpine.DEB.2.02.1209251054140.29232@kaball.uk.xensource.com> [deleted file]
test/corpus/<alpine.DEB.2.02.1209261225340.29232@kaball.uk.xensource.com> [deleted file]
test/corpus/<alpine.DEB.2.02.1210031242180.29232@kaball.uk.xensource.com> [deleted file]
test/corpus/<alpine.DEB.2.02.1210031336210.29232@kaball.uk.xensource.com> [deleted file]
test/corpus/<alpine.DEB.2.02.1210031431080.29232@kaball.uk.xensource.com> [deleted file]
test/corpus/<alpine.DEB.2.02.1210031450220.29232@kaball.uk.xensource.com> [deleted file]
test/corpus/<alpine.DEB.2.02.1210031641050.29232@kaball.uk.xensource.com> [deleted file]
test/corpus/<alpine.DEB.2.02.1210031648330.29232@kaball.uk.xensource.com> [deleted file]
test/corpus/<alpine.DEB.2.02.1210031658120.29232@kaball.uk.xensource.com> [deleted file]
test/corpus/<alpine.DEB.2.02.1210031758310.29232@kaball.uk.xensource.com> [deleted file]
test/corpus/<alpine.DEB.2.02.1210031807340.29232@kaball.uk.xensource.com> [deleted file]
test/corpus/<alpine.DEB.2.02.1210041106560.29232@kaball.uk.xensource.com> [deleted file]
test/corpus/<alpine.DEB.2.02.1210051239100.29232@kaball.uk.xensource.com> [deleted file]
test/corpus/<alpine.DEB.2.02.1210051243480.29232@kaball.uk.xensource.com> [deleted file]
test/corpus/<alpine.DEB.2.02.1210051253140.29232@kaball.uk.xensource.com> [deleted file]
test/corpus/<alpine.DEB.2.02.1210051302160.29232@kaball.uk.xensource.com> [deleted file]
test/corpus/<alpine.DEB.2.02.1210051417110.29232@kaball.uk.xensource.com> [deleted file]
test/corpus/<alpine.DEB.2.02.1210051419030.29232@kaball.uk.xensource.com> [deleted file]
test/corpus/<alpine.DEB.2.02.1210051420260.29232@kaball.uk.xensource.com> [deleted file]
test/corpus/<alpine.DEB.2.02.1210051421530.29232@kaball.uk.xensource.com> [deleted file]
test/corpus/<alpine.DEB.2.02.1210051430200.29232@kaball.uk.xensource.com> [deleted file]
test/corpus/<alpine.DEB.2.02.1210051432010.29232@kaball.uk.xensource.com> [deleted file]
test/corpus/<alpine.DEB.2.02.1210051437110.29232@kaball.uk.xensource.com> [deleted file]
test/corpus/<alpine.DEB.2.02.1210051438340.29232@kaball.uk.xensource.com> [deleted file]
test/corpus/<alpine.DEB.2.02.1210051503160.29232@kaball.uk.xensource.com> [deleted file]
test/corpus/<alpine.DEB.2.02.1210051505380.29232@kaball.uk.xensource.com> [deleted file]
test/corpus/<alpine.DEB.2.02.1210051553430.29539@kaball.uk.xensource.com> [deleted file]
test/corpus/<alpine.DEB.2.02.1210091330560.29539@kaball.uk.xensource.com> [deleted file]
test/corpus/<alpine.DEB.2.02.1210091506030.29539@kaball.uk.xensource.com> [deleted file]
test/corpus/<alpine.DEB.2.02.1210171749000.2689@kaball.uk.xensource.com> [deleted file]
test/corpus/<c378b04ee29071c1d6d68bd3ef48fedadb493b10.1345552068.git.julien.grall@citrix.com> [deleted file]
test/corpus/<cc44fbd3e6bc6d252367bc7ee77151de5ac8d2d5.1345552068.git.julien.grall@citrix.com> [deleted file]
test/corpus/<ceab22f2150107af78fd8134b4dee9020a1aaf41.1345552068.git.julien.grall@citrix.com> [deleted file]
test/corpus/<cover.1345552068.git.julien.grall@citrix.com> [deleted file]
test/corpus/<d481c7657e727bbd67f762244fc3b1383a0ee037.1345552068.git.julien.grall@citrix.com> [deleted file]
test/corpus/<dd493399678c6eee3b5b0a08eb790b73fba1a678.1345552068.git.julien.grall@citrix.com> [deleted file]
test/corpus/<fcf046ea782dda6cacb3bf11813bf1d16e531e6b.1345552068.git.julien.grall@citrix.com> [deleted file]
test/emesinae.conf [deleted file]
test/fakereceive.sh [deleted file]
test/insertcorpus.sh [deleted file]
test/test.sh [deleted file]

diff --git a/config/examples/test/README b/config/examples/test/README
new file mode 100644 (file)
index 0000000..2ac16d1
--- /dev/null
@@ -0,0 +1,5 @@
+Test corpus taken from xen-devel@lists.xen.org
+
+test.sh inserts the corpus and runs all control tests.
+
+emesinae.conf is setup for my local environment.
diff --git a/config/examples/test/control.1.test b/config/examples/test/control.1.test
new file mode 100644 (file)
index 0000000..a7243ce
--- /dev/null
@@ -0,0 +1,17 @@
+From: Ian Campbell <ijc@hellion.org.uk>
+Subject: Re: [Xen-devel] bug when using 4K
+       sectors?
+Message-id: <control.1.test@emesinae.example.com>
+In-Reply-To: <6035A0D088A63A46850C3988ED045A4B299F74F8@BITCOM1.int.sbss.com.au>
+To: emesinae-test@list.example.com
+Cc: ijc@hellion.org.uk, control@bugs.example.com
+
+create ^
+title -1 Linux does something weird with sector size
+# Trim an interesting but unrelated subthread...
+prune -1 <20120916122704.4ea05b45@pyramind.ukuu.org.uk>
+thanks
+
+On xx blah blah wrote:
+> xx xxx xx 
+> xx xx 
diff --git a/config/examples/test/control.2.test b/config/examples/test/control.2.test
new file mode 100644 (file)
index 0000000..ff18950
--- /dev/null
@@ -0,0 +1,17 @@
+From: Ian Campbell <ijc@hellion.org.uk>
+Subject: Creating Pretend bug, multiple bugs
+Message-id: <control.2.test@emesinae.example.com>
+To: emesinae-test@list.example.com
+Cc: ijc@hellion.org.uk, control@bugs.example.com
+
+create !
+title -1 A bug with a mail which does not exist
+graft -1 <This.Is.Not.Real@example.com>
+owner -1 M A Dup <foo@example.com>
+severity -1 wishlist
+
+create <CC6B764E.3DACF%keir.xen@gmail.com>
+title -2 A bug which is reopened
+close -2
+reopen -2
+thanks
diff --git a/config/examples/test/control.3.test b/config/examples/test/control.3.test
new file mode 100644 (file)
index 0000000..adce544
--- /dev/null
@@ -0,0 +1,9 @@
+From: Ian Campbell <ijc@hellion.org.uk>
+Subject: Message with no To line
+Message-id: <control.3.test@emesinae.example.com>
+To: emesinae-test@list.example.com
+Cc: ijc@hellion.org.uk, control@bugs.example.com
+
+create <20120629120738.425781e5@mantra.us.oracle.com>
+title -3 Message with no To line
+thanks
diff --git a/config/examples/test/control.4.test b/config/examples/test/control.4.test
new file mode 100644 (file)
index 0000000..69d5bac
--- /dev/null
@@ -0,0 +1,12 @@
+From: Ian Campbell <ijc@hellion.org.uk>
+Subject: Change owner
+Message-id: <control.4.test@emesinae.example.com>
+To: emesinae-test@list.example.com
+Cc: ijc@hellion.org.uk, control@bugs.example.com
+
+create <20120629120738.425781e5@mantra.us.oracle.com>
+title -1 Owner changed
+owner -1 nobody@example.com
+owner -1 !
+
+thanks
diff --git a/config/examples/test/control.5.test b/config/examples/test/control.5.test
new file mode 100644 (file)
index 0000000..c5d43fd
--- /dev/null
@@ -0,0 +1,32 @@
+From: Ian Campbell <ijc@hellion.org.uk>
+Subject: Bugs with odd content parts
+Message-id: <control.5.test@emesinae.example.com>
+In-Reply-To: <20397.14624.57140.518016@mariner.uk.xensource.com>
+References: <1334928211-29856-1-git-send-email-roger.pau@citrix.com>
+        <1334928211-29856-4-git-send-email-roger.pau@citrix.com>
+        <20373.34767.584624.953798@mariner.uk.xensource.com>
+        <4F982F18.2080902@citrix.com>   <4F99360E.2010201@citrix.com>
+        <20377.18296.235567.918003@mariner.uk.xensource.com>
+        <1335445762.28015.141.camel@zakaz.uk.xensource.com>
+        <20397.14624.57140.518016@mariner.uk.xensource.com>
+To: emesinae-test@list.example.com
+Cc: control@bugs.example.com
+
+create <002301cd590c$49aee250$dd0ca6f0$@brice-amiard.Fr>
+title -1 "With text/html part"
+create <1346834000.17325.4.camel@zakaz.uk.xensource.com>
+title -2 "With base64 stuff"
+create <50806C0B.1060504@canonical.com>
+title -3 "With PGP signature as attachment"
+create <E1T9C4K-0003Su-2p@mariner.uk.xensource.com>
+title -4 "With inline PGP signature"
+create <002301cd590c$49aee250$dd0ca6f0$@brice-amiard.Fr>
+title -5 "Attachments"
+thanks
+
+For authenticity the In-Reply-To and References are taken from
+<1336753602.23818.133.camel@zakaz.uk.xensource.com>.
+
+On xx blah blah wrote:
+> xx xxx xx 
+> xx xx 
diff --git a/config/examples/test/control.6.test b/config/examples/test/control.6.test
new file mode 100644 (file)
index 0000000..a9e490e
--- /dev/null
@@ -0,0 +1,10 @@
+From: Ian Campbell <ijc@hellion.org.uk>
+Subject: Control with no message id
+To: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+Cc: control@bugs.example.com
+
+thanks
+
+On xx blah blah wrote:
+> xx xxx xx 
+> xx xx 
diff --git a/config/examples/test/control.7.test b/config/examples/test/control.7.test
new file mode 100644 (file)
index 0000000..36aba5b
--- /dev/null
@@ -0,0 +1,12 @@
+Subject: Control with no from
+To: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+In-Reply-To: <20120629120738.425781e5@mantra.us.oracle.com>
+Message-Id: <control.7.test@fake.hellion.org.uk>
+
+# Should be disallowed
+create <alpine.DEB.2.00.1205281439080.26786@kaball-desktop>
+thanks
+
+On xx blah blah wrote:
+> xx xxx xx 
+> xx xx 
diff --git a/config/examples/test/control.8.test b/config/examples/test/control.8.test
new file mode 100644 (file)
index 0000000..df4cbce
--- /dev/null
@@ -0,0 +1,12 @@
+From: ijc@hellion.org.uk
+Message-ID: 1359410450@hellion.org.uk
+Subject: control to just me and control, not list
+To: ijc@hellion.org.uk, control@bugs.example.com
+Message-Id: <control.test.6@fake.hellion.org.uk>
+
+create <1338287956-24691-6-git-send-email-stefano.stabellini@eu.citrix.com>
+thanks
+
+On xx blah blah wrote:
+> xx xxx xx 
+> xx xx 
diff --git a/config/examples/test/corpus/<001301cd5fc1$818953c0$849bfb40$@core.kaist.ac.kr> b/config/examples/test/corpus/<001301cd5fc1$818953c0$849bfb40$@core.kaist.ac.kr>
new file mode 100644 (file)
index 0000000..5bc2079
--- /dev/null
@@ -0,0 +1,142 @@
+From xen-devel-bounces@lists.xen.org Thu Jul 12 01:07:14 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 12 Jul 2012 01:07:14 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1Sp6w3-0006cw-Pp
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 12 Jul 2012 01:07:14 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1Sp6r8-000661-HG; Thu, 12 Jul 2012 00:02:06 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <cmkim@core.kaist.ac.kr>) id 1Sp6r6-00065u-L6
+       for xen-devel@lists.xen.org; Thu, 12 Jul 2012 00:02:04 +0000
+Received: from [85.158.143.35:35213] by server-2.bemta-4.messagelabs.com id
+       5D/95-17938-BF31EFF4; Thu, 12 Jul 2012 00:02:03 +0000
+X-Env-Sender: cmkim@core.kaist.ac.kr
+X-Msg-Ref: server-9.tower-21.messagelabs.com!1342051319!5741973!1
+X-Originating-IP: [143.248.147.118]
+X-SpamReason: No, hits=0.0 required=7.0 tests=
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.2; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 10395 invoked from network); 12 Jul 2012 00:02:02 -0000
+Received: from core.kaist.ac.kr (HELO core.kaist.ac.kr) (143.248.147.118)
+       by server-9.tower-21.messagelabs.com with DHE-RSA-AES256-SHA encrypted
+       SMTP; 12 Jul 2012 00:02:02 -0000
+Received: from CHULMINKIMPC (az.kaist.ac.kr [143.248.165.115])
+       by core.kaist.ac.kr (8.14.4/8.14.4) with ESMTP id q6C00rLI017464;
+       Thu, 12 Jul 2012 09:00:53 +0900
+From: "Chulmin Kim" <cmkim@core.kaist.ac.kr>
+To: "'Andrew Cooper'" <andrew.cooper3@citrix.com>
+References: <008601cd5f45$6eff7530$4cfe5f90$@core.kaist.ac.kr>
+       <4FFD4C06.7090403@citrix.com>
+In-Reply-To: <4FFD4C06.7090403@citrix.com>
+Date: Thu, 12 Jul 2012 09:01:36 +0900
+Message-ID: <001301cd5fc1$818953c0$849bfb40$@core.kaist.ac.kr>
+MIME-Version: 1.0
+X-Mailer: Microsoft Outlook 14.0
+Thread-Index: AQHi8tnKuE7rNn5GUJad1LRMsZtYjQI/riFrlueelNA=
+Content-Language: ko
+Cc: xen-devel@lists.xen.org
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] maximum memory size allocated by _xmalloc
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+> On 11/07/12 10:13, Chulmin Kim wrote:
+> > Hi all,
+> >
+> > I'm currently inserting my own code to adjust the several existing
+> > memory ballooning works.
+> >
+> > To accomplish it, I manage some kind of statistics in Xen memory area.
+> >
+> > Using _xmalloc, I've allocated certain size of memory chunk for the
+> > data structure. ( I varied it from 10kb to 24 MB.)
+> >
+> > When the size is equal to 24 MB, xen won't boot anymore.  (stuck
+> > during the xmalloc, according to my debugging. _xmalloc returns NULL.)
+> > There was no problem when the size is below 12MB.
+> >
+> > Is there any limitation such as max memory size for _xmalloc?
+> >
+> > I suspected xen heap size, but, it is no longer adjustable. Right?
+> >
+> > I hope somebody can give me a clue.  Thanks.
+> 
+> _xmalloc will first try to use the size pools for allocation, and failing
+that, try to
+> allocate full pages.
+> 
+> As it is returning NULL, this probably means you no longer have 24MB of
+free
+> contiguous RAM to allocate.
+> 
+> ~Andrew
+> 
+
+Thanks for the reply, Andrew.
+
+I have to check the contiguity. 
+
+If it is the cause of the problem, then, how can I detour this problem? 
+
+Other xen part calling xmalloc_array does not handle this problem as far as
+I know. (only consider it as an error)
+
+Should I split the data structure into two or more chunks? 
+
+
+
+> >
+> >
+> >
+> > _______________________________________________
+> > Xen-devel mailing list
+> > Xen-devel@lists.xen.org
+> > http://lists.xen.org/xen-devel
+> 
+> --
+> Andrew Cooper - Dom0 Kernel Engineer, Citrix XenServer
+> T: +44 (0)1223 225 900, http://www.citrix.com
+> 
+> 
+> 
+> 
+> _______________________________________________
+> Xen-devel mailing list
+> Xen-devel@lists.xen.org
+> http://lists.xen.org/xen-devel
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<002301cd590c$49aee250$dd0ca6f0$@brice-amiard.Fr> b/config/examples/test/corpus/<002301cd590c$49aee250$dd0ca6f0$@brice-amiard.Fr>
new file mode 100644 (file)
index 0000000..21f923a
--- /dev/null
@@ -0,0 +1,1409 @@
+From xen-devel-bounces@lists.xen.org Tue Jul 03 12:16:02 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Tue, 03 Jul 2012 12:16:02 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1Sm153-0003lN-W4
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 03 Jul 2012 12:16:02 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1Sm0yg-0002rT-HY; Tue, 03 Jul 2012 11:09:06 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <perso@brice-amiard.fr>) id 1Sm0ye-0002rO-Ho
+       for xen-devel@lists.xen.org; Tue, 03 Jul 2012 11:09:05 +0000
+Received: from [85.158.138.51:11323] by server-12.bemta-3.messagelabs.com id
+       BE/D2-30206-FC2D2FF4; Tue, 03 Jul 2012 11:09:03 +0000
+X-Env-Sender: perso@brice-amiard.fr
+X-Msg-Ref: server-9.tower-174.messagelabs.com!1341313741!30827923!1
+X-Originating-IP: [178.33.110.239]
+X-SpamReason: No, hits=0.5 required=7.0 tests=BODY_RANDOM_LONG, HTML_MESSAGE
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 19645 invoked from network); 3 Jul 2012 11:09:01 -0000
+Received: from 8.mo1.mail-out.ovh.net (HELO mo1.mail-out.ovh.net)
+       (178.33.110.239) by server-9.tower-174.messagelabs.com with SMTP;
+       3 Jul 2012 11:09:01 -0000
+Received: from mail625.ha.ovh.net (b7.ovh.net [213.186.33.57])
+       by mo1.mail-out.ovh.net (Postfix) with SMTP id 0DE1F1010400
+       for <xen-devel@lists.xen.org>; Tue,  3 Jul 2012 13:13:49 +0200 (CEST)
+Received: from b0.ovh.net (HELO queueout) (213.186.33.50)
+       by b0.ovh.net with SMTP; 3 Jul 2012 13:09:00 +0200
+Received: from unknown (HELO bricelaptop) (perso%brice-amiard.fr@92.90.21.1)
+       by ns0.ovh.net with SMTP; 3 Jul 2012 13:08:57 +0200
+From: "amiard brice" <perso@brice-amiard.Fr>
+To: <xen-devel@lists.xen.org>
+References: 
+In-Reply-To: 
+X-Ovh-Mailout: 178.32.228.1 (mo1.mail-out.ovh.net)
+Date: Tue, 3 Jul 2012 13:09:15 +0200
+Message-ID: <002301cd590c$49aee250$dd0ca6f0$@brice-amiard.Fr>
+MIME-Version: 1.0
+Content-Type: multipart/mixed;
+       boundary="----=_NextPart_000_0024_01CD591D.0D3DCCD0"
+X-Mailer: Microsoft Outlook 14.0
+Thread-Index: Ac1YQ6ip6DjfhtQhSiKyn9pet1/2EgAyJX1w
+Content-Language: fr
+X-Ovh-Tracer-Id: 15188671219066179367
+X-Ovh-Remote: 92.90.21.1 ()
+X-Ovh-Local: 213.186.33.20 (ns0.ovh.net)
+X-OVH-SPAMSTATE: OK
+X-OVH-SPAMSCORE: 0
+X-OVH-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrfeegkedriedvucetufdoteggodetrfdofgetucfrrhhofhhilhgvmecuqfggjfenuceurghilhhouhhtmecufedttdenucenucfhrhhomhepfdgrmhhirghrugcusghrihgtvgdfuceophgvrhhsohessghrihgtvgdqrghmihgrrhgurdfhrheqnecujfgurhephffvfhgjufffkfggtgfothesmhdtreepvddtvd
+X-VR-SPAMSTATE: OK
+X-VR-SPAMSCORE: 0
+X-VR-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrfeegkedriedvucetufdoteggodetrfdofgetucfrrhhofhhilhgvmecuqfggjfenuceurghilhhouhhtmecufedttdenucenucfhrhhomhepfdgrmhhirghrugcusghrihgtvgdfuceophgvrhhsohessghrihgtvgdqrghmihgrrhgurdfhrheqnecujfgurhephffvfhgjufffkfggtgfothesmhdtreepvddtvd
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,HTML_MESSAGE,
+       RCVD_IN_BL_SPAMCOP_NET,RCVD_IN_DNSWL_MED,RCVD_IN_SORBS_WEB,T_RP_MATCHES_RCVD,
+       UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: [Xen-devel] VT-D CPU ressources
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+This is a multipart message in MIME format.
+
+------=_NextPart_000_0024_01CD591D.0D3DCCD0
+Content-Type: multipart/alternative;
+       boundary="----=_NextPart_001_0025_01CD591D.0D3DCCD0"
+
+
+------=_NextPart_001_0025_01CD591D.0D3DCCD0
+Content-Type: text/plain;
+       charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+
+Hi
+
+
+I've post a message on  <mailto:xen-users@list.xen.org>
+xen-users@list.xen.org , according to a member of this list, I've decide to
+post it on xen-devel.
+
+
+See mailing-list copy above : 
+
+
+This sounds like a question it would be useful to ask on xen-devel.
+
+(Unfortuantely I'm not familiar enough with PCIe-to-PCI bridges to give you
+a good answer.)
+
+
+-George
+
+
+
+> In my opinion it could be due to the EPT table. In my "xm dmesg" I 
+
+> could see "EPT not enable" and "CPU capabilities :  EPT table 2Mo", 
+
+> but I can't active it (I've try different options in default/grub 
+
+> without succes)
+
+> 
+
+> (if devices behind the same pci bridges could not be allocated to 
+
+> different VMs, it' simply because VT-d use specific interruption 
+
+> command call MSI-X in aim to identify a domU, and those interruptions 
+
+> commands  could be possible only with PCIe, you can have more information
+in the pdf intel VT-d).
+
+> 
+
+> thank you for your help in advance
+
+> Amiard Brice
+
+
+
+>> 2012/6/22 amiard brice <perso@brice-amiard.fr>:
+
+
+>> I want create four domU with 2 PCI device per dom.
+
+> 
+
+>> I've bought a backplane ("motherboard extension") with 4 bridges PCIe 1x
+to PCI 
+
+>> directly connected to the PCH (Q67).
+
+>>And I have one domU for each "PCI-e to PCI 
+
+>> bridge", so according to the intel_VT-d pdf, it could be possible in 
+
+>> my case to have 4 domU (one for each PCIe to PCI bridges).
+
+
+>> 
+
+>> (Moreover PCI card (ethernet card) are composed with a PCI bridge)
+
+>> 
+
+>> 
+
+>> 
+
+>> I've succefuly created 4 domU with bakend devices, with option 
+
+>> "pci-backend-strict-check" disable.
+
+>> 
+
+>> I've try with it but even if all PCI ports behind "PCIe to PCI bridge "
+
+>> appears in  pci-list-assignable-devices, domU won't start, with an 
+
+>> error message "device XX:XX.X need to be co-assigned with XX:XX.X, 
+
+>> but it's not owned by pci-backend
+
+>> 
+
+>> 
+
+>> 
+
+>> The probleme is :  even if my domU are configuer with 1 VCPUs for 
+
+>> each of them, when domU acces to I/O devices, VCPUs aren't separated 
+
+>> (I've notice this using virt-manager charts). During a basic CPU 
+
+>> benchmark on a domU, VCPUs are isolated.
+
+>> 
+
+>> 
+
+>> 
+
+>> I Have attached "lspci-v", "xm dmesg", "xm 
+
+>> pci-list-assignable-devices", "default-grub", "xm info" and a "domU 
+
+>> cfg file"
+
+
+>> For example when I transfer some file between
+
+>> a other PC and a domU through the Ethernet card
+
+>> connected using VT-d, VCPU's charts are identical between each
+
+>> domU (it's like if I/O instruction aren't separated between CPU cores,
+
+>> I think XEN can't determine CPU cores assignation for d'I/O, 
+
+>>so it execute instruction on each CPU, 
+
+>>and after DMA remapping transfer data to the correct domU).
+
+
+>> 
+
+>> 
+
+>> 
+
+>> A share core is very problematic my RT application
+
+>> 
+
+>> 
+
+>> 
+
+>> thank you for your help in advance
+
+
+
+
+------=_NextPart_001_0025_01CD591D.0D3DCCD0
+Content-Type: text/html;
+       charset="us-ascii"
+Content-Transfer-Encoding: quoted-printable
+
+<html xmlns:v=3D"urn:schemas-microsoft-com:vml" =
+xmlns:o=3D"urn:schemas-microsoft-com:office:office" =
+xmlns:w=3D"urn:schemas-microsoft-com:office:word" =
+xmlns:m=3D"http://schemas.microsoft.com/office/2004/12/omml" =
+xmlns=3D"http://www.w3.org/TR/REC-html40"><head><META =
+HTTP-EQUIV=3D"Content-Type" CONTENT=3D"text/html; =
+charset=3Dus-ascii"><meta name=3DGenerator content=3D"Microsoft Word 14 =
+(filtered medium)"><style><!--
+/* Font Definitions */
+@font-face
+       {font-family:Calibri;
+       panose-1:2 15 5 2 2 2 4 3 2 4;}
+/* Style Definitions */
+p.MsoNormal, li.MsoNormal, div.MsoNormal
+       {margin:0cm;
+       margin-bottom:.0001pt;
+       font-size:11.0pt;
+       font-family:"Calibri","sans-serif";
+       mso-fareast-language:EN-US;}
+a:link, span.MsoHyperlink
+       {mso-style-priority:99;
+       color:blue;
+       text-decoration:underline;}
+a:visited, span.MsoHyperlinkFollowed
+       {mso-style-priority:99;
+       color:purple;
+       text-decoration:underline;}
+p.MsoPlainText, li.MsoPlainText, div.MsoPlainText
+       {mso-style-priority:99;
+       mso-style-link:"Texte brut Car";
+       margin:0cm;
+       margin-bottom:.0001pt;
+       font-size:11.0pt;
+       font-family:"Calibri","sans-serif";
+       mso-fareast-language:EN-US;}
+span.TextebrutCar
+       {mso-style-name:"Texte brut Car";
+       mso-style-priority:99;
+       mso-style-link:"Texte brut";
+       font-family:"Calibri","sans-serif";}
+span.EmailStyle19
+       {mso-style-type:personal;
+       font-family:"Calibri","sans-serif";
+       color:windowtext;}
+span.EmailStyle20
+       {mso-style-type:personal-reply;
+       font-family:"Calibri","sans-serif";
+       color:#1F497D;}
+.MsoChpDefault
+       {mso-style-type:export-only;
+       font-size:10.0pt;}
+@page WordSection1
+       {size:612.0pt 792.0pt;
+       margin:70.85pt 70.85pt 70.85pt 70.85pt;}
+div.WordSection1
+       {page:WordSection1;}
+--></style><!--[if gte mso 9]><xml>
+<o:shapedefaults v:ext=3D"edit" spidmax=3D"1026" />
+</xml><![endif]--><!--[if gte mso 9]><xml>
+<o:shapelayout v:ext=3D"edit">
+<o:idmap v:ext=3D"edit" data=3D"1" />
+</o:shapelayout></xml><![endif]--></head><body lang=3DFR link=3Dblue =
+vlink=3Dpurple><div class=3DWordSection1><p =
+class=3DMsoNormal>Hi<o:p></o:p></p><p =
+class=3DMsoNormal><o:p>&nbsp;</o:p></p><p class=3DMsoNormal><span =
+lang=3DEN-US>I&#8217;ve post a message on </span><a =
+href=3D"mailto:xen-users@list.xen.org"><span =
+lang=3DEN-US>xen-users@list.xen.org</span></a><span lang=3DEN-US> , =
+according to a member of this list, I&#8217;ve decide to post it on =
+xen-devel.<o:p></o:p></span></p><p class=3DMsoNormal><span =
+lang=3DEN-US><o:p>&nbsp;</o:p></span></p><p class=3DMsoNormal><span =
+lang=3DEN-US>See mailing-list copy above : <o:p></o:p></span></p><p =
+class=3DMsoNormal><span lang=3DEN-US><o:p>&nbsp;</o:p></span></p><p =
+class=3DMsoPlainText><span lang=3DEN-US>This sounds like a question it =
+would be useful to ask on xen-devel.<o:p></o:p></span></p><p =
+class=3DMsoPlainText><span lang=3DEN-US>(Unfortuantely I'm not familiar =
+enough with PCIe-to-PCI bridges to give you a good =
+answer.)<o:p></o:p></span></p><p class=3DMsoPlainText><span =
+lang=3DEN-US><o:p>&nbsp;</o:p></span></p><p =
+class=3DMsoPlainText>-George<o:p></o:p></p><p class=3DMsoNormal><span =
+lang=3DEN-US><o:p>&nbsp;</o:p></span></p><p class=3DMsoNormal><span =
+lang=3DEN-US><o:p>&nbsp;</o:p></span></p><p class=3DMsoPlainText><span =
+lang=3DEN-US>&gt; In my opinion it could be due to the EPT table. In my =
+&quot;xm dmesg&quot; I <o:p></o:p></span></p><p =
+class=3DMsoPlainText><span lang=3DEN-US>&gt; could see &quot;EPT not =
+enable&quot; and &quot;CPU capabilities : &nbsp;EPT table 2Mo&quot;, =
+<o:p></o:p></span></p><p class=3DMsoPlainText><span lang=3DEN-US>&gt; =
+but I can't active it (I've try different options in default/grub =
+<o:p></o:p></span></p><p class=3DMsoPlainText><span lang=3DEN-US>&gt; =
+without succes)<o:p></o:p></span></p><p class=3DMsoPlainText><span =
+lang=3DEN-US>&gt;<o:p>&nbsp;</o:p></span></p><p =
+class=3DMsoPlainText><span lang=3DEN-US>&gt; (if devices behind the same =
+pci bridges could not be allocated to <o:p></o:p></span></p><p =
+class=3DMsoPlainText><span lang=3DEN-US>&gt; different VMs, it' simply =
+because VT-d use specific interruption <o:p></o:p></span></p><p =
+class=3DMsoPlainText><span lang=3DEN-US>&gt; command call MSI-X in aim =
+to identify a domU, and those interruptions <o:p></o:p></span></p><p =
+class=3DMsoPlainText><span lang=3DEN-US>&gt; commands &nbsp;could be =
+possible only with PCIe, you can have more information in the pdf intel =
+VT-d).<o:p></o:p></span></p><p class=3DMsoPlainText><span =
+lang=3DEN-US>&gt;<o:p>&nbsp;</o:p></span></p><p =
+class=3DMsoPlainText><span lang=3DEN-US>&gt; thank you for your help in =
+advance<o:p></o:p></span></p><p class=3DMsoNormal><span =
+lang=3DEN-US>&gt; Amiard Brice<o:p></o:p></span></p><p =
+class=3DMsoNormal><span lang=3DEN-US><o:p>&nbsp;</o:p></span></p><p =
+class=3DMsoPlainText><span lang=3DEN-US><o:p>&nbsp;</o:p></span></p><p =
+class=3DMsoPlainText>&gt;&gt; 2012/6/22 amiard brice &lt;<a =
+href=3D"mailto:perso@brice-amiard.fr">perso@brice-amiard.fr</a>&gt;:<o:p>=
+</o:p></p><p class=3DMsoPlainText><span =
+lang=3DEN-US><o:p>&nbsp;</o:p></span></p><p class=3DMsoPlainText><span =
+lang=3DEN-US>&gt;&gt; I want create four domU with 2 PCI device per =
+dom.<o:p></o:p></span></p><p class=3DMsoPlainText><span =
+lang=3DEN-US>&gt;<o:p>&nbsp;</o:p></span></p><p =
+class=3DMsoPlainText><span lang=3DEN-US>&gt;&gt; I've bought a backplane =
+(&quot;motherboard extension&quot;) with 4 bridges PCIe 1x to PCI =
+<o:p></o:p></span></p><p class=3DMsoPlainText><span =
+lang=3DEN-US>&gt;&gt; directly connected to the PCH =
+(Q67).<o:p></o:p></span></p><p class=3DMsoPlainText><span =
+lang=3DEN-US>&gt;&gt;And I have one domU for each &quot;PCI-e to PCI =
+<o:p></o:p></span></p><p class=3DMsoPlainText><span =
+lang=3DEN-US>&gt;&gt; bridge&quot;, so according to the intel_VT-d pdf, =
+it could be possible in <o:p></o:p></span></p><p =
+class=3DMsoPlainText><span lang=3DEN-US>&gt;&gt; my case to have 4 domU =
+(one for each PCIe to PCI bridges).<o:p></o:p></span></p><p =
+class=3DMsoPlainText><span lang=3DEN-US><o:p>&nbsp;</o:p></span></p><p =
+class=3DMsoPlainText><span =
+lang=3DEN-US>&gt;&gt;<o:p>&nbsp;</o:p></span></p><p =
+class=3DMsoPlainText><span lang=3DEN-US>&gt;&gt; (Moreover PCI card =
+(ethernet card) are composed with a PCI bridge)<o:p></o:p></span></p><p =
+class=3DMsoPlainText><span =
+lang=3DEN-US>&gt;&gt;<o:p>&nbsp;</o:p></span></p><p =
+class=3DMsoPlainText><span =
+lang=3DEN-US>&gt;&gt;<o:p>&nbsp;</o:p></span></p><p =
+class=3DMsoPlainText><span =
+lang=3DEN-US>&gt;&gt;<o:p>&nbsp;</o:p></span></p><p =
+class=3DMsoPlainText><span lang=3DEN-US>&gt;&gt; I've succefuly created =
+4 domU with bakend devices, with option <o:p></o:p></span></p><p =
+class=3DMsoPlainText><span lang=3DEN-US>&gt;&gt; =
+&quot;pci-backend-strict-check&quot; disable.<o:p></o:p></span></p><p =
+class=3DMsoPlainText><span =
+lang=3DEN-US>&gt;&gt;<o:p>&nbsp;</o:p></span></p><p =
+class=3DMsoPlainText><span lang=3DEN-US>&gt;&gt; I&#8217;ve try with it =
+but even if all PCI ports behind &#8220;PCIe to PCI bridge =
+&#8220;<o:p></o:p></span></p><p class=3DMsoPlainText><span =
+lang=3DEN-US>&gt;&gt; appears in&nbsp; pci-list-assignable-devices, domU =
+won&#8217;t start, with an <o:p></o:p></span></p><p =
+class=3DMsoPlainText><span lang=3DEN-US>&gt;&gt; error message =
+&quot;device XX:XX.X need to be co-assigned with XX:XX.X, =
+<o:p></o:p></span></p><p class=3DMsoPlainText><span =
+lang=3DEN-US>&gt;&gt; but it's not owned by =
+pci-backend<o:p></o:p></span></p><p class=3DMsoPlainText><span =
+lang=3DEN-US>&gt;&gt;<o:p>&nbsp;</o:p></span></p><p =
+class=3DMsoPlainText><span =
+lang=3DEN-US>&gt;&gt;<o:p>&nbsp;</o:p></span></p><p =
+class=3DMsoPlainText><span =
+lang=3DEN-US>&gt;&gt;<o:p>&nbsp;</o:p></span></p><p =
+class=3DMsoPlainText><span lang=3DEN-US>&gt;&gt; The probleme is :&nbsp; =
+even if my domU are configuer with 1 VCPUs for <o:p></o:p></span></p><p =
+class=3DMsoPlainText><span lang=3DEN-US>&gt;&gt; each of them, when domU =
+acces to I/O devices, VCPUs aren't separated <o:p></o:p></span></p><p =
+class=3DMsoPlainText><span lang=3DEN-US>&gt;&gt; (I've notice this using =
+virt-manager charts). During a basic CPU <o:p></o:p></span></p><p =
+class=3DMsoPlainText><span lang=3DEN-US>&gt;&gt; benchmark on a domU, =
+VCPUs are isolated.<o:p></o:p></span></p><p class=3DMsoPlainText><span =
+lang=3DEN-US>&gt;&gt;<o:p>&nbsp;</o:p></span></p><p =
+class=3DMsoPlainText><span =
+lang=3DEN-US>&gt;&gt;<o:p>&nbsp;</o:p></span></p><p =
+class=3DMsoPlainText><span =
+lang=3DEN-US>&gt;&gt;<o:p>&nbsp;</o:p></span></p><p =
+class=3DMsoPlainText><span lang=3DEN-US>&gt;&gt; I Have attached =
+&quot;lspci-v&quot;, &quot;xm dmesg&quot;, &quot;xm =
+<o:p></o:p></span></p><p class=3DMsoPlainText><span =
+lang=3DEN-US>&gt;&gt; pci-list-assignable-devices&quot;, =
+&quot;default-grub&quot;, &quot;xm info&quot; and a &#8220;domU =
+<o:p></o:p></span></p><p class=3DMsoPlainText><span =
+lang=3DEN-US>&gt;&gt; cfg file&#8221;<o:p></o:p></span></p><p =
+class=3DMsoPlainText><span lang=3DEN-US><o:p>&nbsp;</o:p></span></p><p =
+class=3DMsoPlainText><span lang=3DEN-US>&gt;&gt; For example when I =
+transfer some file between<o:p></o:p></span></p><p =
+class=3DMsoPlainText><span lang=3DEN-US>&gt;&gt; a other PC and a domU =
+through the Ethernet card<o:p></o:p></span></p><p =
+class=3DMsoPlainText><span lang=3DEN-US>&gt;&gt; connected using VT-d, =
+VCPU's charts are identical between each<o:p></o:p></span></p><p =
+class=3DMsoPlainText><span lang=3DEN-US>&gt;&gt; domU (it's like if I/O =
+instruction aren't separated between CPU cores,<o:p></o:p></span></p><p =
+class=3DMsoPlainText><span lang=3DEN-US>&gt;&gt; I think XEN can't =
+determine CPU cores assignation for d'I/O, <o:p></o:p></span></p><p =
+class=3DMsoPlainText><span lang=3DEN-US>&gt;&gt;so it execute =
+instruction on each CPU, <o:p></o:p></span></p><p =
+class=3DMsoPlainText><span lang=3DEN-US>&gt;&gt;and after DMA remapping =
+transfer data to the correct domU).<o:p></o:p></span></p><p =
+class=3DMsoPlainText><span lang=3DEN-US><o:p>&nbsp;</o:p></span></p><p =
+class=3DMsoPlainText><span =
+lang=3DEN-US>&gt;&gt;<o:p>&nbsp;</o:p></span></p><p =
+class=3DMsoPlainText><span =
+lang=3DEN-US>&gt;&gt;<o:p>&nbsp;</o:p></span></p><p =
+class=3DMsoPlainText><span =
+lang=3DEN-US>&gt;&gt;<o:p>&nbsp;</o:p></span></p><p =
+class=3DMsoPlainText><span lang=3DEN-US>&gt;&gt; A share core is very =
+problematic my RT application<o:p></o:p></span></p><p =
+class=3DMsoPlainText><span =
+lang=3DEN-US>&gt;&gt;<o:p>&nbsp;</o:p></span></p><p =
+class=3DMsoPlainText><span =
+lang=3DEN-US>&gt;&gt;<o:p>&nbsp;</o:p></span></p><p =
+class=3DMsoPlainText><span =
+lang=3DEN-US>&gt;&gt;<o:p>&nbsp;</o:p></span></p><p =
+class=3DMsoPlainText><span lang=3DEN-US>&gt;&gt; thank you for your help =
+in advance<o:p></o:p></span></p><p class=3DMsoNormal><span =
+lang=3DEN-US><o:p>&nbsp;</o:p></span></p><p class=3DMsoNormal><span =
+lang=3DEN-US><o:p>&nbsp;</o:p></span></p></div></body></html>
+------=_NextPart_001_0025_01CD591D.0D3DCCD0--
+
+------=_NextPart_000_0024_01CD591D.0D3DCCD0
+Content-Type: text/plain;
+       name="default_grub.txt"
+Content-Transfer-Encoding: quoted-printable
+Content-Disposition: attachment;
+       filename="default_grub.txt"
+
+# If you change this file, run 'update-grub' afterwards to update=0A=
+# /boot/grub/grub.cfg.=0A=
+# For full documentation of the options in this file, see:=0A=
+#   info -f grub -n 'Simple configuration'=0A=
+=0A=
+GRUB_DEFAULT=3D"2"=0A=
+#GRUB_HIDDEN_TIMEOUT=3D"0"=0A=
+GRUB_HIDDEN_TIMEOUT_QUIET=3D"true"=0A=
+GRUB_TIMEOUT=3D"4"=0A=
+GRUB_DISTRIBUTOR=3D"`lsb_release -i -s 2> /dev/null || echo Debian`"=0A=
+#GRUB_CMDLINE_LINUX_DEFAULT=3D"quiet"=0A=
+=0A=
+GRUB_CMDLINE_LINUX=3D"xen-pciback.permissive =
+xen-pciback.hide=3D(0c:0f.0)(02:02.0)(03:0c.0)(03:0d.0)(03:0e.0)(03:0f.0)=
+(05:01.0)(06:0c.0)(06:0d.0)(06:0e.0)(06:0f.0)(08:00.0)(09:0c.0)(09:0d.0)(=
+09:0e.0)(09:0f.0)(0c:0c.0)(0d:0c.0)(0d:0d.0)(0d:0e.0)(0d:0f.0) =
+'pci=3Dresource_alignment=3D0c:0f.0;02:02.0;03:0c.0;03:0d.0;03:0e.0;03:0f=
+.0;05:01.0;06:0c.0;06:0d.0;06:0e.0;06:0f.0;08:00.0;09:0c.0;09:0d.0;09:0e.=
+0;09:0f.0;0c:0c.0;0d:0c.0;0d:0d.0;0d:0e.0;0d:0f.0'"=0A=
+=0A=
+# Uncomment to enable BadRAM filtering, modify to suit your needs=0A=
+# This works with Linux (no patch required) and with any kernel that =
+obtains=0A=
+# the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...)=0A=
+#GRUB_BADRAM=3D"0x01234567,0xfefefefe,0x89abcdef,0xefefefef"=0A=
+=0A=
+# Uncomment to disable graphical terminal (grub-pc only)=0A=
+#GRUB_TERMINAL=3D"console"=0A=
+=0A=
+# The resolution used on graphical terminal=0A=
+# note that you can use only modes which your graphic card supports via =
+VBE=0A=
+# you can see them in real GRUB with the command `vbeinfo'=0A=
+#GRUB_GFXMODE=3D"640x480"=0A=
+=0A=
+# Uncomment if you don't want GRUB to pass "root=3DUUID=3Dxxx" parameter =
+to Linux=0A=
+#GRUB_DISABLE_LINUX_UUID=3D"true"=0A=
+=0A=
+# Uncomment to disable generation of recovery mode menu entries=0A=
+#GRUB_DISABLE_RECOVERY=3D"true"=0A=
+=0A=
+# Uncomment to get a beep at grub start=0A=
+#GRUB_INIT_TUNE=3D"480 440 1"=0A=
+=0A=
+#configuration de vt_d pour les devices=0A=
+=0A=
+GRUB_CMDLINE_XEN=3D"dom0_mem=3D2G,max:2G dom0_max_vcpus=3D4 =
+dom0_vcpus_pin=3Dtrue loglevel=3Dall guest_lvl=3Dall =
+iommu=3Dpass-through"=0A=
+=0A=
+GRUB_SAVEDEFAULT=3D"false"=0A=
+
+------=_NextPart_000_0024_01CD591D.0D3DCCD0
+Content-Type: text/plain;
+       name="lspci_v.txt"
+Content-Transfer-Encoding: quoted-printable
+Content-Disposition: attachment;
+       filename="lspci_v.txt"
+
+00:00.0 Host bridge: Intel Corporation 2nd Generation Core Processor =
+Family DRAM Controller (rev 09)=0A=
+       Subsystem: Intel Corporation 2nd Generation Core Processor Family DRAM =
+Controller=0A=
+       Flags: bus master, fast devsel, latency 0=0A=
+       Capabilities: [e0] Vendor Specific Information: Len=3D0c <?>=0A=
+       Kernel driver in use: agpgart-intel=0A=
+=0A=
+00:02.0 VGA compatible controller: Intel Corporation 2nd Generation Core =
+Processor Family Integrated Graphics Controller (rev 09) (prog-if 00 =
+[VGA controller])=0A=
+       Subsystem: Intel Corporation 2nd Generation Core Processor Family =
+Integrated Graphics Controller=0A=
+       Flags: bus master, fast devsel, latency 0, IRQ 303=0A=
+       Memory at f9c00000 (64-bit, non-prefetchable) [size=3D4M]=0A=
+       Memory at d0000000 (64-bit, prefetchable) [size=3D256M]=0A=
+       I/O ports at f000 [size=3D64]=0A=
+       Expansion ROM at <unassigned> [disabled]=0A=
+       Capabilities: [90] MSI: Enable+ Count=3D1/1 Maskable- 64bit-=0A=
+       Capabilities: [d0] Power Management version 2=0A=
+       Capabilities: [a4] PCI Advanced Features=0A=
+       Kernel driver in use: i915=0A=
+       Kernel modules: i915=0A=
+=0A=
+00:16.0 Communication controller: Intel Corporation 6 Series/C200 Series =
+Chipset Family MEI Controller #1 (rev 04)=0A=
+       Subsystem: Intel Corporation 6 Series/C200 Series Chipset Family MEI =
+Controller #1=0A=
+       Flags: bus master, fast devsel, latency 0, IRQ 302=0A=
+       Memory at fbc29000 (64-bit, non-prefetchable) [size=3D16]=0A=
+       Capabilities: [50] Power Management version 3=0A=
+       Capabilities: [8c] MSI: Enable+ Count=3D1/1 Maskable- 64bit+=0A=
+       Kernel driver in use: mei=0A=
+       Kernel modules: mei=0A=
+=0A=
+00:16.2 IDE interface: Intel Corporation 6 Series/C200 Series Chipset =
+Family IDE-r Controller (rev 04) (prog-if 85 [Master SecO PriO])=0A=
+       Subsystem: Intel Corporation 6 Series/C200 Series Chipset Family IDE-r =
+Controller=0A=
+       Flags: bus master, 66MHz, fast devsel, latency 0, IRQ 18=0A=
+       I/O ports at f190 [size=3D8]=0A=
+       I/O ports at f180 [size=3D4]=0A=
+       I/O ports at f170 [size=3D8]=0A=
+       I/O ports at f160 [size=3D4]=0A=
+       I/O ports at f150 [size=3D16]=0A=
+       Capabilities: [c8] Power Management version 3=0A=
+       Capabilities: [d0] MSI: Enable- Count=3D1/1 Maskable- 64bit+=0A=
+       Kernel driver in use: ata_generic=0A=
+=0A=
+00:16.3 Serial controller: Intel Corporation 6 Series/C200 Series =
+Chipset Family KT Controller (rev 04) (prog-if 02 [16550])=0A=
+       Subsystem: Intel Corporation 6 Series/C200 Series Chipset Family KT =
+Controller=0A=
+       Flags: bus master, 66MHz, fast devsel, latency 0, IRQ 17=0A=
+       I/O ports at f140 [size=3D8]=0A=
+       Memory at fbc28000 (32-bit, non-prefetchable) [size=3D4K]=0A=
+       Capabilities: [c8] Power Management version 3=0A=
+       Capabilities: [d0] MSI: Enable- Count=3D1/1 Maskable- 64bit+=0A=
+       Kernel driver in use: serial=0A=
+=0A=
+00:19.0 Ethernet controller: Intel Corporation 82579LM Gigabit Network =
+Connection (rev 05)=0A=
+       Subsystem: Intel Corporation Device 0000=0A=
+       Flags: bus master, fast devsel, latency 0, IRQ 301=0A=
+       Memory at fbc00000 (32-bit, non-prefetchable) [size=3D128K]=0A=
+       Memory at fbc27000 (32-bit, non-prefetchable) [size=3D4K]=0A=
+       I/O ports at f060 [size=3D32]=0A=
+       Capabilities: [c8] Power Management version 2=0A=
+       Capabilities: [d0] MSI: Enable+ Count=3D1/1 Maskable- 64bit+=0A=
+       Capabilities: [e0] PCI Advanced Features=0A=
+       Kernel driver in use: e1000e=0A=
+       Kernel modules: e1000e=0A=
+=0A=
+00:1a.0 USB Controller: Intel Corporation 6 Series/C200 Series Chipset =
+Family USB Enhanced Host Controller #2 (rev 05) (prog-if 20 [EHCI])=0A=
+       Subsystem: Intel Corporation 6 Series/C200 Series Chipset Family USB =
+Enhanced Host Controller #2=0A=
+       Flags: bus master, medium devsel, latency 0, IRQ 16=0A=
+       Memory at fbc26000 (32-bit, non-prefetchable) [size=3D1K]=0A=
+       Capabilities: [50] Power Management version 2=0A=
+       Capabilities: [58] Debug port: BAR=3D1 offset=3D00a0=0A=
+       Capabilities: [98] PCI Advanced Features=0A=
+       Kernel driver in use: ehci_hcd=0A=
+=0A=
+00:1b.0 Audio device: Intel Corporation 6 Series/C200 Series Chipset =
+Family High Definition Audio Controller (rev 05)=0A=
+       Subsystem: Intel Corporation 6 Series/C200 Series Chipset Family High =
+Definition Audio Controller=0A=
+       Flags: fast devsel, IRQ 22=0A=
+       Memory at fbc20000 (64-bit, non-prefetchable) [size=3D16K]=0A=
+       Capabilities: [50] Power Management version 2=0A=
+       Capabilities: [60] MSI: Enable- Count=3D1/1 Maskable- 64bit+=0A=
+       Capabilities: [70] Express Root Complex Integrated Endpoint, MSI 00=0A=
+       Capabilities: [100] Virtual Channel=0A=
+       Capabilities: [130] Root Complex Link=0A=
+       Kernel modules: snd-hda-intel=0A=
+=0A=
+00:1c.0 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset =
+Family PCI Express Root Port 1 (rev b5) (prog-if 00 [Normal decode])=0A=
+       Flags: bus master, fast devsel, latency 0=0A=
+       Bus: primary=3D00, secondary=3D01, subordinate=3D03, sec-latency=3D0=0A=
+       I/O behind bridge: 0000e000-0000efff=0A=
+       Memory behind bridge: fb500000-fbbfffff=0A=
+       Prefetchable memory behind bridge: 00000000cfa00000-00000000cfafffff=0A=
+       Capabilities: [40] Express Root Port (Slot+), MSI 00=0A=
+       Capabilities: [80] MSI: Enable+ Count=3D1/1 Maskable- 64bit-=0A=
+       Capabilities: [90] Subsystem: Intel Corporation 6 Series/C200 Series =
+Chipset Family PCI Express Root Port 1=0A=
+       Capabilities: [a0] Power Management version 2=0A=
+       Kernel driver in use: pcieport=0A=
+       Kernel modules: shpchp=0A=
+=0A=
+00:1c.1 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset =
+Family PCI Express Root Port 2 (rev b5) (prog-if 00 [Normal decode])=0A=
+       Flags: bus master, fast devsel, latency 0=0A=
+       Bus: primary=3D00, secondary=3D04, subordinate=3D06, sec-latency=3D0=0A=
+       I/O behind bridge: 0000d000-0000dfff=0A=
+       Memory behind bridge: fae00000-fb4fffff=0A=
+       Prefetchable memory behind bridge: 00000000cfb00000-00000000cfbfffff=0A=
+       Capabilities: [40] Express Root Port (Slot+), MSI 00=0A=
+       Capabilities: [80] MSI: Enable+ Count=3D1/1 Maskable- 64bit-=0A=
+       Capabilities: [90] Subsystem: Intel Corporation 6 Series/C200 Series =
+Chipset Family PCI Express Root Port 2=0A=
+       Capabilities: [a0] Power Management version 2=0A=
+       Kernel driver in use: pcieport=0A=
+       Kernel modules: shpchp=0A=
+=0A=
+00:1c.2 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset =
+Family PCI Express Root Port 3 (rev b5) (prog-if 00 [Normal decode])=0A=
+       Flags: bus master, fast devsel, latency 0=0A=
+       Bus: primary=3D00, secondary=3D07, subordinate=3D09, sec-latency=3D0=0A=
+       I/O behind bridge: 0000c000-0000cfff=0A=
+       Memory behind bridge: fa700000-fadfffff=0A=
+       Prefetchable memory behind bridge: 00000000cfc00000-00000000cfcfffff=0A=
+       Capabilities: [40] Express Root Port (Slot+), MSI 00=0A=
+       Capabilities: [80] MSI: Enable+ Count=3D1/1 Maskable- 64bit-=0A=
+       Capabilities: [90] Subsystem: Intel Corporation 6 Series/C200 Series =
+Chipset Family PCI Express Root Port 3=0A=
+       Capabilities: [a0] Power Management version 2=0A=
+       Kernel driver in use: pcieport=0A=
+       Kernel modules: shpchp=0A=
+=0A=
+00:1d.0 USB Controller: Intel Corporation 6 Series/C200 Series Chipset =
+Family USB Enhanced Host Controller #1 (rev 05) (prog-if 20 [EHCI])=0A=
+       Subsystem: Intel Corporation 6 Series/C200 Series Chipset Family USB =
+Enhanced Host Controller #1=0A=
+       Flags: bus master, medium devsel, latency 0, IRQ 23=0A=
+       Memory at fbc25000 (32-bit, non-prefetchable) [size=3D1K]=0A=
+       Capabilities: [50] Power Management version 2=0A=
+       Capabilities: [58] Debug port: BAR=3D1 offset=3D00a0=0A=
+       Capabilities: [98] PCI Advanced Features=0A=
+       Kernel driver in use: ehci_hcd=0A=
+=0A=
+00:1e.0 PCI bridge: Intel Corporation 82801 PCI Bridge (rev a5) (prog-if =
+01 [Subtractive decode])=0A=
+       Flags: bus master, fast devsel, latency 0=0A=
+       Bus: primary=3D00, secondary=3D0a, subordinate=3D0b, sec-latency=3D32=0A=
+       I/O behind bridge: 0000b000-0000bfff=0A=
+       Memory behind bridge: fa000000-fa6fffff=0A=
+       Capabilities: [50] Subsystem: Intel Corporation 82801 PCI Bridge=0A=
+=0A=
+00:1f.0 ISA bridge: Intel Corporation Q67 Express Chipset Family LPC =
+Controller (rev 05)=0A=
+       Subsystem: Intel Corporation Q67 Express Chipset Family LPC Controller=0A=
+       Flags: bus master, medium devsel, latency 0=0A=
+       Capabilities: [e0] Vendor Specific Information: Len=3D0c <?>=0A=
+       Kernel modules: iTCO_wdt=0A=
+=0A=
+00:1f.2 IDE interface: Intel Corporation 6 Series/C200 Series Chipset =
+Family 4 port SATA IDE Controller (rev 05) (prog-if 8a [Master SecP =
+PriP])=0A=
+       Subsystem: Intel Corporation 6 Series/C200 Series Chipset Family 4 port =
+SATA IDE Controller=0A=
+       Flags: bus master, 66MHz, medium devsel, latency 0, IRQ 19=0A=
+       I/O ports at 01f0 [size=3D8]=0A=
+       I/O ports at 03f4 [size=3D1]=0A=
+       I/O ports at 0170 [size=3D8]=0A=
+       I/O ports at 0374 [size=3D1]=0A=
+       I/O ports at f0f0 [size=3D16]=0A=
+       I/O ports at f0e0 [size=3D16]=0A=
+       Capabilities: [70] Power Management version 3=0A=
+       Capabilities: [b0] PCI Advanced Features=0A=
+       Kernel driver in use: ata_piix=0A=
+=0A=
+00:1f.3 SMBus: Intel Corporation 6 Series/C200 Series Chipset Family =
+SMBus Controller (rev 05)=0A=
+       Subsystem: Intel Corporation 6 Series/C200 Series Chipset Family SMBus =
+Controller=0A=
+       Flags: medium devsel, IRQ 10=0A=
+       Memory at fbc24000 (64-bit, non-prefetchable) [size=3D256]=0A=
+       I/O ports at f040 [size=3D32]=0A=
+       Kernel modules: i2c-i801=0A=
+=0A=
+00:1f.5 IDE interface: Intel Corporation 6 Series/C200 Series Chipset =
+Family 2 port SATA IDE Controller (rev 05) (prog-if 85 [Master SecO =
+PriO])=0A=
+       Subsystem: Intel Corporation 6 Series/C200 Series Chipset Family 2 port =
+SATA IDE Controller=0A=
+       Flags: bus master, 66MHz, medium devsel, latency 0, IRQ 19=0A=
+       I/O ports at f0d0 [size=3D8]=0A=
+       I/O ports at f0c0 [size=3D4]=0A=
+       I/O ports at f0b0 [size=3D8]=0A=
+       I/O ports at f0a0 [size=3D4]=0A=
+       I/O ports at f090 [size=3D16]=0A=
+       I/O ports at f080 [size=3D16]=0A=
+       Capabilities: [70] Power Management version 3=0A=
+       Capabilities: [b0] PCI Advanced Features=0A=
+       Kernel driver in use: ata_piix=0A=
+=0A=
+01:00.0 PCI bridge: PLX Technology, Inc. PEX 8111 PCI Express-to-PCI =
+Bridge (rev 21) (prog-if 00 [Normal decode])=0A=
+       Flags: bus master, fast devsel, latency 0=0A=
+       Bus: primary=3D01, secondary=3D02, subordinate=3D03, sec-latency=3D32=0A=
+       I/O behind bridge: 0000e000-0000efff=0A=
+       Memory behind bridge: fb500000-fbbfffff=0A=
+       Prefetchable memory behind bridge: cfa00000-cfafffff=0A=
+       Capabilities: [50] MSI: Enable- Count=3D1/1 Maskable- 64bit+=0A=
+       Capabilities: [60] Express PCI/PCI-X Bridge, MSI 00=0A=
+       Capabilities: [100] Power Budgeting <?>=0A=
+       Kernel modules: shpchp=0A=
+=0A=
+02:02.0 Unassigned class [ff00]: National Instruments PCI-DIO-96=0A=
+       Flags: bus master, medium devsel, latency 32, IRQ 18=0A=
+       Memory at fbb00000 (32-bit, non-prefetchable) [size=3D4K]=0A=
+       Memory at fbb01000 (32-bit, non-prefetchable) [size=3D4K]=0A=
+       Kernel driver in use: pciback=0A=
+       Kernel modules: ni_pcidio=0A=
+=0A=
+02:03.0 PCI bridge: Intel Corporation 21154 PCI-to-PCI Bridge (prog-if =
+00 [Normal decode])=0A=
+       Flags: bus master, medium devsel, latency 32=0A=
+       Bus: primary=3D02, secondary=3D03, subordinate=3D03, sec-latency=3D32=0A=
+       I/O behind bridge: 0000e000-0000efff=0A=
+       Memory behind bridge: fb500000-fbafffff=0A=
+       Prefetchable memory behind bridge: 00000000cfa00000-00000000cfafffff=0A=
+       Capabilities: [dc] Power Management version 1=0A=
+       Kernel modules: shpchp=0A=
+=0A=
+03:0c.0 Ethernet controller: Intel Corporation 82557/8/9/0/1 Ethernet =
+Pro 100 (rev 08)=0A=
+       Subsystem: Intel Corporation EtherExpress PRO/100B (TX)=0A=
+       Flags: bus master, medium devsel, latency 32, IRQ 19=0A=
+       Memory at fb900000 (32-bit, non-prefetchable) [size=3D4K]=0A=
+       I/O ports at e0c0 [size=3D64]=0A=
+       Memory at fb500000 (32-bit, non-prefetchable) [size=3D1M]=0A=
+       Expansion ROM at cfa00000 [disabled] [size=3D1M]=0A=
+       Capabilities: [dc] Power Management version 2=0A=
+       Kernel driver in use: pciback=0A=
+       Kernel modules: e100=0A=
+=0A=
+03:0d.0 Ethernet controller: Intel Corporation 82557/8/9/0/1 Ethernet =
+Pro 100 (rev 08)=0A=
+       Subsystem: Intel Corporation EtherExpress PRO/100B (TX)=0A=
+       Flags: bus master, medium devsel, latency 32, IRQ 16=0A=
+       Memory at fb901000 (32-bit, non-prefetchable) [size=3D4K]=0A=
+       I/O ports at e080 [size=3D64]=0A=
+       Memory at fb600000 (32-bit, non-prefetchable) [size=3D1M]=0A=
+       Capabilities: [dc] Power Management version 2=0A=
+       Kernel driver in use: pciback=0A=
+       Kernel modules: e100=0A=
+=0A=
+03:0e.0 Ethernet controller: Intel Corporation 82557/8/9/0/1 Ethernet =
+Pro 100 (rev 08)=0A=
+       Subsystem: Intel Corporation EtherExpress PRO/100B (TX)=0A=
+       Flags: bus master, medium devsel, latency 32, IRQ 17=0A=
+       Memory at fb902000 (32-bit, non-prefetchable) [size=3D4K]=0A=
+       I/O ports at e040 [size=3D64]=0A=
+       Memory at fb700000 (32-bit, non-prefetchable) [size=3D1M]=0A=
+       Capabilities: [dc] Power Management version 2=0A=
+       Kernel driver in use: pciback=0A=
+       Kernel modules: e100=0A=
+=0A=
+03:0f.0 Ethernet controller: Intel Corporation 82557/8/9/0/1 Ethernet =
+Pro 100 (rev 08)=0A=
+       Subsystem: Intel Corporation EtherExpress PRO/100B (TX)=0A=
+       Flags: bus master, medium devsel, latency 32, IRQ 18=0A=
+       Memory at fb903000 (32-bit, non-prefetchable) [size=3D4K]=0A=
+       I/O ports at e000 [size=3D64]=0A=
+       Memory at fb800000 (32-bit, non-prefetchable) [size=3D1M]=0A=
+       Capabilities: [dc] Power Management version 2=0A=
+       Kernel driver in use: pciback=0A=
+       Kernel modules: e100=0A=
+=0A=
+04:00.0 PCI bridge: PLX Technology, Inc. PEX 8111 PCI Express-to-PCI =
+Bridge (rev 21) (prog-if 00 [Normal decode])=0A=
+       Flags: bus master, fast devsel, latency 0=0A=
+       Bus: primary=3D04, secondary=3D05, subordinate=3D06, sec-latency=3D32=0A=
+       I/O behind bridge: 0000d000-0000dfff=0A=
+       Memory behind bridge: fae00000-fb4fffff=0A=
+       Prefetchable memory behind bridge: cfb00000-cfbfffff=0A=
+       Capabilities: [50] MSI: Enable- Count=3D1/1 Maskable- 64bit+=0A=
+       Capabilities: [60] Express PCI/PCI-X Bridge, MSI 00=0A=
+       Capabilities: [100] Power Budgeting <?>=0A=
+       Kernel modules: shpchp=0A=
+=0A=
+05:01.0 Unassigned class [ff00]: National Instruments PCI-DIO-96=0A=
+       Flags: bus master, medium devsel, latency 32, IRQ 18=0A=
+       Memory at fb400000 (32-bit, non-prefetchable) [size=3D4K]=0A=
+       Memory at fb401000 (32-bit, non-prefetchable) [size=3D4K]=0A=
+       Kernel driver in use: pciback=0A=
+       Kernel modules: ni_pcidio=0A=
+=0A=
+05:02.0 PCI bridge: Intel Corporation 21154 PCI-to-PCI Bridge (prog-if =
+00 [Normal decode])=0A=
+       Flags: bus master, medium devsel, latency 32=0A=
+       Bus: primary=3D05, secondary=3D06, subordinate=3D06, sec-latency=3D32=0A=
+       I/O behind bridge: 0000d000-0000dfff=0A=
+       Memory behind bridge: fae00000-fb3fffff=0A=
+       Prefetchable memory behind bridge: 00000000cfb00000-00000000cfbfffff=0A=
+       Capabilities: [dc] Power Management version 1=0A=
+       Kernel modules: shpchp=0A=
+=0A=
+06:0c.0 Ethernet controller: Intel Corporation 82557/8/9/0/1 Ethernet =
+Pro 100 (rev 08)=0A=
+       Subsystem: Intel Corporation EtherExpress PRO/100B (TX)=0A=
+       Flags: bus master, medium devsel, latency 32, IRQ 19=0A=
+       Memory at fb200000 (32-bit, non-prefetchable) [size=3D4K]=0A=
+       I/O ports at d0c0 [size=3D64]=0A=
+       Memory at fae00000 (32-bit, non-prefetchable) [size=3D1M]=0A=
+       Expansion ROM at cfb00000 [disabled] [size=3D1M]=0A=
+       Capabilities: [dc] Power Management version 2=0A=
+       Kernel driver in use: pciback=0A=
+       Kernel modules: e100=0A=
+=0A=
+06:0d.0 Ethernet controller: Intel Corporation 82557/8/9/0/1 Ethernet =
+Pro 100 (rev 08)=0A=
+       Subsystem: Intel Corporation EtherExpress PRO/100B (TX)=0A=
+       Flags: bus master, medium devsel, latency 32, IRQ 16=0A=
+       Memory at fb201000 (32-bit, non-prefetchable) [size=3D4K]=0A=
+       I/O ports at d080 [size=3D64]=0A=
+       Memory at faf00000 (32-bit, non-prefetchable) [size=3D1M]=0A=
+       Capabilities: [dc] Power Management version 2=0A=
+       Kernel driver in use: pciback=0A=
+       Kernel modules: e100=0A=
+=0A=
+06:0e.0 Ethernet controller: Intel Corporation 82557/8/9/0/1 Ethernet =
+Pro 100 (rev 08)=0A=
+       Subsystem: Intel Corporation EtherExpress PRO/100B (TX)=0A=
+       Flags: bus master, medium devsel, latency 32, IRQ 17=0A=
+       Memory at fb202000 (32-bit, non-prefetchable) [size=3D4K]=0A=
+       I/O ports at d040 [size=3D64]=0A=
+       Memory at fb000000 (32-bit, non-prefetchable) [size=3D1M]=0A=
+       Capabilities: [dc] Power Management version 2=0A=
+       Kernel driver in use: pciback=0A=
+       Kernel modules: e100=0A=
+=0A=
+06:0f.0 Ethernet controller: Intel Corporation 82557/8/9/0/1 Ethernet =
+Pro 100 (rev 08)=0A=
+       Subsystem: Intel Corporation EtherExpress PRO/100B (TX)=0A=
+       Flags: bus master, medium devsel, latency 32, IRQ 18=0A=
+       Memory at fb203000 (32-bit, non-prefetchable) [size=3D4K]=0A=
+       I/O ports at d000 [size=3D64]=0A=
+       Memory at fb100000 (32-bit, non-prefetchable) [size=3D1M]=0A=
+       Capabilities: [dc] Power Management version 2=0A=
+       Kernel driver in use: pciback=0A=
+       Kernel modules: e100=0A=
+=0A=
+07:00.0 PCI bridge: PLX Technology, Inc. PEX 8111 PCI Express-to-PCI =
+Bridge (rev 21) (prog-if 00 [Normal decode])=0A=
+       Flags: bus master, fast devsel, latency 0=0A=
+       Bus: primary=3D07, secondary=3D08, subordinate=3D09, sec-latency=3D32=0A=
+       I/O behind bridge: 0000c000-0000cfff=0A=
+       Memory behind bridge: fa700000-fadfffff=0A=
+       Prefetchable memory behind bridge: cfc00000-cfcfffff=0A=
+       Capabilities: [50] MSI: Enable- Count=3D1/1 Maskable- 64bit+=0A=
+       Capabilities: [60] Express PCI/PCI-X Bridge, MSI 00=0A=
+       Capabilities: [100] Power Budgeting <?>=0A=
+       Kernel modules: shpchp=0A=
+=0A=
+08:00.0 Unassigned class [ff00]: National Instruments PCI-DIO-96=0A=
+       Flags: medium devsel, IRQ 18=0A=
+       Memory at fad00000 (32-bit, non-prefetchable) [disabled] [size=3D4K]=0A=
+       Memory at fad01000 (32-bit, non-prefetchable) [disabled] [size=3D4K]=0A=
+       Kernel driver in use: pciback=0A=
+       Kernel modules: ni_pcidio=0A=
+=0A=
+08:02.0 PCI bridge: Intel Corporation 21154 PCI-to-PCI Bridge (prog-if =
+00 [Normal decode])=0A=
+       Flags: bus master, medium devsel, latency 32=0A=
+       Bus: primary=3D08, secondary=3D09, subordinate=3D09, sec-latency=3D32=0A=
+       I/O behind bridge: 0000c000-0000cfff=0A=
+       Memory behind bridge: fa700000-facfffff=0A=
+       Prefetchable memory behind bridge: 00000000cfc00000-00000000cfcfffff=0A=
+       Capabilities: [dc] Power Management version 1=0A=
+       Kernel modules: shpchp=0A=
+=0A=
+09:0c.0 Ethernet controller: Intel Corporation 82557/8/9/0/1 Ethernet =
+Pro 100 (rev 08)=0A=
+       Subsystem: Intel Corporation EtherExpress PRO/100B (TX)=0A=
+       Flags: medium devsel, IRQ 16=0A=
+       Memory at fab00000 (32-bit, non-prefetchable) [disabled] [size=3D4K]=0A=
+       I/O ports at c0c0 [disabled] [size=3D64]=0A=
+       Memory at fa700000 (32-bit, non-prefetchable) [disabled] [size=3D1M]=0A=
+       Expansion ROM at cfc00000 [disabled] [size=3D1M]=0A=
+       Capabilities: [dc] Power Management version 2=0A=
+       Kernel driver in use: pciback=0A=
+       Kernel modules: e100=0A=
+=0A=
+09:0d.0 Ethernet controller: Intel Corporation 82557/8/9/0/1 Ethernet =
+Pro 100 (rev 08)=0A=
+       Subsystem: Intel Corporation EtherExpress PRO/100B (TX)=0A=
+       Flags: medium devsel, IRQ 17=0A=
+       Memory at fab01000 (32-bit, non-prefetchable) [disabled] [size=3D4K]=0A=
+       I/O ports at c080 [disabled] [size=3D64]=0A=
+       Memory at fa800000 (32-bit, non-prefetchable) [disabled] [size=3D1M]=0A=
+       Capabilities: [dc] Power Management version 2=0A=
+       Kernel driver in use: pciback=0A=
+       Kernel modules: e100=0A=
+=0A=
+09:0e.0 Ethernet controller: Intel Corporation 82557/8/9/0/1 Ethernet =
+Pro 100 (rev 08)=0A=
+       Subsystem: Intel Corporation EtherExpress PRO/100B (TX)=0A=
+       Flags: medium devsel, IRQ 18=0A=
+       Memory at fab02000 (32-bit, non-prefetchable) [disabled] [size=3D4K]=0A=
+       I/O ports at c040 [disabled] [size=3D64]=0A=
+       Memory at fa900000 (32-bit, non-prefetchable) [disabled] [size=3D1M]=0A=
+       Capabilities: [dc] Power Management version 2=0A=
+       Kernel driver in use: pciback=0A=
+       Kernel modules: e100=0A=
+=0A=
+09:0f.0 Ethernet controller: Intel Corporation 82557/8/9/0/1 Ethernet =
+Pro 100 (rev 08)=0A=
+       Subsystem: Intel Corporation EtherExpress PRO/100B (TX)=0A=
+       Flags: medium devsel, IRQ 19=0A=
+       Memory at fab03000 (32-bit, non-prefetchable) [disabled] [size=3D4K]=0A=
+       I/O ports at c000 [disabled] [size=3D64]=0A=
+       Memory at faa00000 (32-bit, non-prefetchable) [disabled] [size=3D1M]=0A=
+       Capabilities: [dc] Power Management version 2=0A=
+       Kernel driver in use: pciback=0A=
+       Kernel modules: e100=0A=
+=0A=
+0a:0c.0 Unassigned class [ff00]: National Instruments PCI-DIO-96=0A=
+       Flags: bus master, medium devsel, latency 32, IRQ 20=0A=
+       Memory at fa601000 (32-bit, non-prefetchable) [size=3D4K]=0A=
+       Memory at fa600000 (32-bit, non-prefetchable) [size=3D4K]=0A=
+       Kernel driver in use: ni_pcidio=0A=
+       Kernel modules: ni_pcidio=0A=
+=0A=
+0a:0f.0 PCI bridge: Intel Corporation 21154 PCI-to-PCI Bridge (prog-if =
+00 [Normal decode])=0A=
+       Flags: bus master, medium devsel, latency 32=0A=
+       Bus: primary=3D0a, secondary=3D0b, subordinate=3D0b, sec-latency=3D32=0A=
+       I/O behind bridge: 0000b000-0000bfff=0A=
+       Memory behind bridge: fa000000-fa5fffff=0A=
+       Capabilities: [dc] Power Management version 1=0A=
+       Kernel modules: shpchp=0A=
+=0A=
+0b:0c.0 Ethernet controller: Intel Corporation 82557/8/9/0/1 Ethernet =
+Pro 100 (rev 08)=0A=
+       Subsystem: Intel Corporation EtherExpress PRO/100B (TX)=0A=
+       Flags: medium devsel, IRQ 21=0A=
+       Memory at fa503000 (32-bit, non-prefetchable) [size=3D4K]=0A=
+       I/O ports at b0c0 [size=3D64]=0A=
+       Memory at fa400000 (32-bit, non-prefetchable) [size=3D1M]=0A=
+       Expansion ROM at fa300000 [disabled] [size=3D1M]=0A=
+       Capabilities: [dc] Power Management version 2=0A=
+       Kernel modules: e100=0A=
+=0A=
+0b:0d.0 Ethernet controller: Intel Corporation 82557/8/9/0/1 Ethernet =
+Pro 100 (rev 08)=0A=
+       Subsystem: Intel Corporation EtherExpress PRO/100B (TX)=0A=
+       Flags: medium devsel, IRQ 22=0A=
+       Memory at fa502000 (32-bit, non-prefetchable) [size=3D4K]=0A=
+       I/O ports at b080 [size=3D64]=0A=
+       Memory at fa200000 (32-bit, non-prefetchable) [size=3D1M]=0A=
+       Capabilities: [dc] Power Management version 2=0A=
+       Kernel modules: e100=0A=
+=0A=
+0b:0e.0 Ethernet controller: Intel Corporation 82557/8/9/0/1 Ethernet =
+Pro 100 (rev 08)=0A=
+       Subsystem: Intel Corporation EtherExpress PRO/100B (TX)=0A=
+       Flags: bus master, medium devsel, latency 32, IRQ 23=0A=
+       Memory at fa501000 (32-bit, non-prefetchable) [size=3D4K]=0A=
+       I/O ports at b040 [size=3D64]=0A=
+       Memory at fa100000 (32-bit, non-prefetchable) [size=3D1M]=0A=
+       Capabilities: [dc] Power Management version 2=0A=
+       Kernel driver in use: e100=0A=
+       Kernel modules: e100=0A=
+=0A=
+0b:0f.0 Ethernet controller: Intel Corporation 82557/8/9/0/1 Ethernet =
+Pro 100 (rev 08)=0A=
+       Subsystem: Intel Corporation EtherExpress PRO/100B (TX)=0A=
+       Flags: bus master, medium devsel, latency 32, IRQ 20=0A=
+       Memory at fa500000 (32-bit, non-prefetchable) [size=3D4K]=0A=
+       I/O ports at b000 [size=3D64]=0A=
+       Memory at fa000000 (32-bit, non-prefetchable) [size=3D1M]=0A=
+       Capabilities: [dc] Power Management version 2=0A=
+       Kernel driver in use: e100=0A=
+       Kernel modules: e100=0A=
+=0A=
+
+------=_NextPart_000_0024_01CD591D.0D3DCCD0
+Content-Type: application/octet-stream;
+       name="qnx_1.config"
+Content-Transfer-Encoding: quoted-printable
+Content-Disposition: attachment;
+       filename="qnx_1.config"
+
+name         =3D 'QNX_1'=0A=
+builder      =3D 'hvm'=0A=
+kernel       =3D '/usr/lib/xen-default/boot/hvmloader'=0A=
+boot=3D"c" =0A=
+memory =3D 1024 =0A=
+vcpus        =3D '1'=0A=
+cpus         =3D '4'=0A=
+=0A=
+on_poweroff =3D 'destroy' =0A=
+on_reboot =3D 'restart' =0A=
+on_crash =3D 'restart'=0A=
+=0A=
+pae=3D1 =0A=
+acpi=3D1 =0A=
+apic=3D1  =0A=
+device_model =3D '/usr/lib64/xen/bin/qemu-dm' =0A=
+disk =3D ['file:/mnt/img_gum/QNX_1.img,hda,w']=0A=
+usbdevice=3D'mouse' =0A=
+serial=3D'pty'=0A=
+vnc=3D1 =0A=
+vncpasswd=3D''=0A=
+pci =3D ['0c:0c.0','0d:0c.0','0d:0d.0','0d:0e.0','0d:0f.0']=0A=
+=0A=
+=0A=
+=0A=
+=0A=
+
+------=_NextPart_000_0024_01CD591D.0D3DCCD0
+Content-Type: text/plain;
+       name="xm_dmesg.txt"
+Content-Transfer-Encoding: quoted-printable
+Content-Disposition: attachment;
+       filename="xm_dmesg.txt"
+
+(XEN) Xen version 4.1.1 (Ubuntu 4.1.1-2ubuntu4.1) (zulcss@ubuntu.com) =
+(gcc version 4.6.1 (Ubuntu/Linaro 4.6.1-9ubuntu3) ) Tue Oct 11 07:31:13 =
+UTC 2011=0A=
+(XEN) Bootloader: GRUB 1.99-12ubuntu5-1linuxmint1=0A=
+(XEN) Command line: placeholder dom0_mem=3D2G,max:2G dom0_max_vcpus=3D4 =
+dom0_vcpus_pin=3Dtrue loglevel=3Dall guest_lvl=3Dall iommu=3Dverbose=0A=
+(XEN) Video information:=0A=
+(XEN)  VGA is text mode 80x25, font 8x16=0A=
+(XEN)  VBE/DDC methods: V2; EDID transfer time: 1 seconds=0A=
+(XEN) Disc information:=0A=
+(XEN)  Found 4 MBR signatures=0A=
+(XEN)  Found 4 EDD information structures=0A=
+(XEN) Xen-e820 RAM map:=0A=
+(XEN)  0000000000000000 - 000000000009ec00 (usable)=0A=
+(XEN)  000000000009ec00 - 00000000000a0000 (reserved)=0A=
+(XEN)  00000000000e0000 - 0000000000100000 (reserved)=0A=
+(XEN)  0000000000100000 - 0000000020000000 (usable)=0A=
+(XEN)  0000000020000000 - 0000000020200000 (reserved)=0A=
+(XEN)  0000000020200000 - 0000000040000000 (usable)=0A=
+(XEN)  0000000040000000 - 0000000040200000 (reserved)=0A=
+(XEN)  0000000040200000 - 00000000cad18000 (usable)=0A=
+(XEN)  00000000cad18000 - 00000000cad21000 (ACPI data)=0A=
+(XEN)  00000000cad21000 - 00000000cad6e000 (ACPI NVS)=0A=
+(XEN)  00000000cad6e000 - 00000000cad76000 (usable)=0A=
+(XEN)  00000000cad76000 - 00000000cad89000 (reserved)=0A=
+(XEN)  00000000cad89000 - 00000000cad8a000 (ACPI NVS)=0A=
+(XEN)  00000000cad8a000 - 00000000cad9b000 (reserved)=0A=
+(XEN)  00000000cad9b000 - 00000000cad9e000 (ACPI NVS)=0A=
+(XEN)  00000000cad9e000 - 00000000cadc8000 (reserved)=0A=
+(XEN)  00000000cadc8000 - 00000000cadca000 (usable)=0A=
+(XEN)  00000000cadca000 - 00000000cae06000 (reserved)=0A=
+(XEN)  00000000cae06000 - 00000000cae14000 (ACPI NVS)=0A=
+(XEN)  00000000cae14000 - 00000000cae39000 (reserved)=0A=
+(XEN)  00000000cae39000 - 00000000cae7c000 (ACPI NVS)=0A=
+(XEN)  00000000cae7c000 - 00000000cb000000 (usable)=0A=
+(XEN)  00000000cb800000 - 00000000cfa00000 (reserved)=0A=
+(XEN)  00000000fed1c000 - 00000000fed40000 (reserved)=0A=
+(XEN)  00000000ff000000 - 0000000100000000 (reserved)=0A=
+(XEN)  0000000100000000 - 000000022e600000 (usable)=0A=
+(XEN) ACPI: RSDP 000F0450, 0024 (r2 ALASKA)=0A=
+(XEN) ACPI: XSDT CAD18080, 007C (r1 ALASKA    A M I  1072009 AMI     =
+10013)=0A=
+(XEN) ACPI: FACP CAD1F9F8, 00F4 (r4 ALASKA    A M I  1072009 AMI     =
+10013)=0A=
+(XEN) ACPI: DSDT CAD18188, 786D (r2 ALASKA    A M I       16 INTL =
+20051117)=0A=
+(XEN) ACPI: FACS CAE0BF80, 0040=0A=
+(XEN) ACPI: APIC CAD1FAF0, 0092 (r3 ALASKA    A M I  1072009 AMI     =
+10013)=0A=
+(XEN) ACPI: SSDT CAD1FB88, 01D6 (r1 AMICPU     PROC        1 MSFT  =
+3000001)=0A=
+(XEN) ACPI: MCFG CAD1FD60, 003C (r1 ALASKA    A M I  1072009 MSFT       =
+97)=0A=
+(XEN) ACPI: HPET CAD1FDA0, 0038 (r1 ALASKA    A M I  1072009 AMI.        =
+4)=0A=
+(XEN) ACPI: ASF! CAD1FDD8, 00A0 (r32 INTEL       HCG        1 TFSM    =
+F4240)=0A=
+(XEN) ACPI: DMAR CAD1FE78, 00E8 (r1 ALASKA    A M I        1 INTL        =
+1)=0A=
+(XEN) ACPI: EINJ CAD1FF60, 0130 (r1    AMI AMI EINJ        0             =
+0)=0A=
+(XEN) ACPI: ERST CAD20090, 0210 (r1  AMIER AMI ERST        0             =
+0)=0A=
+(XEN) ACPI: HEST CAD202A0, 00A8 (r1    AMI AMI HEST        0             =
+0)=0A=
+(XEN) ACPI: BERT CAD20348, 0030 (r1    AMI AMI BERT        0             =
+0)=0A=
+(XEN) System RAM: 8080MB (8274192kB)=0A=
+(XEN) Domain heap initialised=0A=
+(XEN) ACPI: 32/64X FACS address mismatch in FADT - =
+cae0bf80/0000000000000000, using 32=0A=
+(XEN) Processor #0 6:10 APIC version 21=0A=
+(XEN) Processor #2 6:10 APIC version 21=0A=
+(XEN) Processor #4 6:10 APIC version 21=0A=
+(XEN) Processor #6 6:10 APIC version 21=0A=
+(XEN) Processor #1 6:10 APIC version 21=0A=
+(XEN) Processor #3 6:10 APIC version 21=0A=
+(XEN) Processor #5 6:10 APIC version 21=0A=
+(XEN) Processor #7 6:10 APIC version 21=0A=
+(XEN) IOAPIC[0]: apic_id 0, version 32, address 0xfec00000, GSI 0-23=0A=
+(XEN) Enabling APIC mode:  Flat.  Using 1 I/O APICs=0A=
+(XEN) [VT-D]dmar.c:702: Host address width 36=0A=
+(XEN) [VT-D]dmar.c:717: found ACPI_DMAR_DRHD:=0A=
+(XEN) [VT-D]dmar.c:413:   dmaru->address =3D fed90000=0A=
+(XEN) [VT-D]iommu.c:1114: drhd->address =3D fed90000 iommu->reg =3D =
+ffff82c3fff57000=0A=
+(XEN) [VT-D]iommu.c:1116: cap =3D c0000020e60262 ecap =3D f0101a=0A=
+(XEN) [VT-D]dmar.c:341:   endpoint: 0:2.0=0A=
+(XEN) [VT-D]dmar.c:717: found ACPI_DMAR_DRHD:=0A=
+(XEN) [VT-D]dmar.c:413:   dmaru->address =3D fed91000=0A=
+(XEN) [VT-D]iommu.c:1114: drhd->address =3D fed91000 iommu->reg =3D =
+ffff82c3fff56000=0A=
+(XEN) [VT-D]iommu.c:1116: cap =3D c9008020660262 ecap =3D f0105a=0A=
+(XEN) [VT-D]dmar.c:356:   IOAPIC: f0:1f.0=0A=
+(XEN) [VT-D]dmar.c:335:   MSI HPET: f0:f.0=0A=
+(XEN) [VT-D]dmar.c:335:   MSI HPET: f0:f.1=0A=
+(XEN) [VT-D]dmar.c:335:   MSI HPET: f0:f.2=0A=
+(XEN) [VT-D]dmar.c:335:   MSI HPET: f0:f.3=0A=
+(XEN) [VT-D]dmar.c:335:   MSI HPET: f0:f.4=0A=
+(XEN) [VT-D]dmar.c:335:   MSI HPET: f0:f.5=0A=
+(XEN) [VT-D]dmar.c:335:   MSI HPET: f0:f.6=0A=
+(XEN) [VT-D]dmar.c:335:   MSI HPET: f0:f.7=0A=
+(XEN) [VT-D]dmar.c:427:   flags: INCLUDE_ALL=0A=
+(XEN) [VT-D]dmar.c:722: found ACPI_DMAR_RMRR:=0A=
+(XEN) [VT-D]dmar.c:341:   endpoint: 0:1d.0=0A=
+(XEN) [VT-D]dmar.c:341:   endpoint: 0:1a.0=0A=
+(XEN) [VT-D]dmar.c:594:   RMRR region: base_addr cada0000 end_address =
+cadbefff=0A=
+(XEN) [VT-D]dmar.c:722: found ACPI_DMAR_RMRR:=0A=
+(XEN) [VT-D]dmar.c:341:   endpoint: 0:2.0=0A=
+(XEN) [VT-D]dmar.c:594:   RMRR region: base_addr cb800000 end_address =
+cf9fffff=0A=
+(XEN) ERST table is invalid=0A=
+(XEN) Switched to APIC driver x2apic_cluster.=0A=
+(XEN) Using scheduler: SMP Credit Scheduler (credit)=0A=
+(XEN) Detected 3392.357 MHz processor.=0A=
+(XEN) Initing memory sharing.=0A=
+(XEN) Intel VT-d Snoop Control not enabled.=0A=
+(XEN) Intel VT-d Dom0 DMA Passthrough not enabled.=0A=
+(XEN) Intel VT-d Queued Invalidation enabled.=0A=
+(XEN) Intel VT-d Interrupt Remapping enabled.=0A=
+(XEN) Intel VT-d Shared EPT tables not enabled.=0A=
+(XEN) I/O virtualisation enabled=0A=
+(XEN)  - Dom0 mode: Relaxed=0A=
+(XEN) Enabled directed EOI with ioapic_ack_old on!=0A=
+(XEN) ENABLING IO-APIC IRQs=0A=
+(XEN)  -> Using old ACK method=0A=
+(XEN) Platform timer is 14.318MHz HPET=0A=
+(XEN) Allocated console ring of 16 KiB.=0A=
+(XEN) VMX: Supported advanced features:=0A=
+(XEN)  - APIC MMIO access virtualisation=0A=
+(XEN)  - APIC TPR shadow=0A=
+(XEN)  - Extended Page Tables (EPT)=0A=
+(XEN)  - Virtual-Processor Identifiers (VPID)=0A=
+(XEN)  - Virtual NMI=0A=
+(XEN)  - MSR direct-access bitmap=0A=
+(XEN)  - Unrestricted Guest=0A=
+(XEN) EPT supports 2MB super page.=0A=
+(XEN) HVM: ASIDs enabled.=0A=
+(XEN) HVM: VMX enabled=0A=
+(XEN) HVM: Hardware Assisted Paging detected.=0A=
+(XEN) Brought up 8 CPUs=0A=
+(XEN) *** LOADING DOMAIN 0 ***=0A=
+(XEN)  Xen  kernel: 64-bit, lsb, compat32=0A=
+(XEN)  Dom0 kernel: 64-bit, PAE, lsb, paddr 0x1000000 -> 0x204e000=0A=
+(XEN) PHYSICAL MEMORY ARRANGEMENT:=0A=
+(XEN)  Dom0 alloc.:   0000000220000000->0000000224000000 (498822 pages =
+to be allocated)=0A=
+(XEN)  Init. ramdisk: 000000022c286000->000000022e5ff800=0A=
+(XEN) VIRTUAL MEMORY ARRANGEMENT:=0A=
+(XEN)  Loaded kernel: ffffffff81000000->ffffffff8204e000=0A=
+(XEN)  Init. ramdisk: ffffffff8204e000->ffffffff843c7800=0A=
+(XEN)  Phys-Mach map: ffffffff843c8000->ffffffff847c8000=0A=
+(XEN)  Start info:    ffffffff847c8000->ffffffff847c84b4=0A=
+(XEN)  Page tables:   ffffffff847c9000->ffffffff847f2000=0A=
+(XEN)  Boot stack:    ffffffff847f2000->ffffffff847f3000=0A=
+(XEN)  TOTAL:         ffffffff80000000->ffffffff84c00000=0A=
+(XEN)  ENTRY ADDRESS: ffffffff81cde200=0A=
+(XEN) Dom0 has maximum 4 VCPUs=0A=
+(XEN) [VT-D]iommu.c:1376: d0:PCI: map bdf =3D 0:0.0=0A=
+(XEN) [VT-D]iommu.c:1376: d0:PCI: map bdf =3D 0:2.0=0A=
+(XEN) [VT-D]iommu.c:1376: d0:PCI: map bdf =3D 0:16.0=0A=
+(XEN) [VT-D]iommu.c:1376: d0:PCI: map bdf =3D 0:16.2=0A=
+(XEN) [VT-D]iommu.c:1376: d0:PCI: map bdf =3D 0:16.3=0A=
+(XEN) [VT-D]iommu.c:1376: d0:PCI: map bdf =3D 0:19.0=0A=
+(XEN) [VT-D]iommu.c:1376: d0:PCI: map bdf =3D 0:1a.0=0A=
+(XEN) [VT-D]iommu.c:1366: d0:PCIe: map bdf =3D 0:1b.0=0A=
+(XEN) [VT-D]iommu.c:1376: d0:PCI: map bdf =3D 0:1d.0=0A=
+(XEN) [VT-D]iommu.c:1376: d0:PCI: map bdf =3D 0:1f.0=0A=
+(XEN) [VT-D]iommu.c:1376: d0:PCI: map bdf =3D 0:1f.2=0A=
+(XEN) [VT-D]iommu.c:1376: d0:PCI: map bdf =3D 0:1f.3=0A=
+(XEN) [VT-D]iommu.c:1376: d0:PCI: map bdf =3D 0:1f.5=0A=
+(XEN) [VT-D]iommu.c:1376: d0:PCI: map bdf =3D 2:2.0=0A=
+(XEN) [VT-D]iommu.c:1376: d0:PCI: map bdf =3D 3:c.0=0A=
+(XEN) [VT-D]iommu.c:1376: d0:PCI: map bdf =3D 3:d.0=0A=
+(XEN) [VT-D]iommu.c:1376: d0:PCI: map bdf =3D 3:e.0=0A=
+(XEN) [VT-D]iommu.c:1376: d0:PCI: map bdf =3D 3:f.0=0A=
+(XEN) [VT-D]iommu.c:1376: d0:PCI: map bdf =3D 5:1.0=0A=
+(XEN) [VT-D]iommu.c:1376: d0:PCI: map bdf =3D 6:c.0=0A=
+(XEN) [VT-D]iommu.c:1376: d0:PCI: map bdf =3D 6:d.0=0A=
+(XEN) [VT-D]iommu.c:1376: d0:PCI: map bdf =3D 6:e.0=0A=
+(XEN) [VT-D]iommu.c:1376: d0:PCI: map bdf =3D 6:f.0=0A=
+(XEN) [VT-D]iommu.c:1376: d0:PCI: map bdf =3D 8:0.0=0A=
+(XEN) [VT-D]iommu.c:1376: d0:PCI: map bdf =3D 9:c.0=0A=
+(XEN) [VT-D]iommu.c:1376: d0:PCI: map bdf =3D 9:d.0=0A=
+(XEN) [VT-D]iommu.c:1376: d0:PCI: map bdf =3D 9:e.0=0A=
+(XEN) [VT-D]iommu.c:1376: d0:PCI: map bdf =3D 9:f.0=0A=
+(XEN) [VT-D]iommu.c:1376: d0:PCI: map bdf =3D a:c.0=0A=
+(XEN) [VT-D]iommu.c:1376: d0:PCI: map bdf =3D b:c.0=0A=
+(XEN) [VT-D]iommu.c:1376: d0:PCI: map bdf =3D b:d.0=0A=
+(XEN) [VT-D]iommu.c:1376: d0:PCI: map bdf =3D b:e.0=0A=
+(XEN) [VT-D]iommu.c:1376: d0:PCI: map bdf =3D b:f.0=0A=
+(XEN) [VT-D]iommu.c:721: iommu_enable_translation: iommu->reg =3D =
+ffff82c3fff57000=0A=
+(XEN) [VT-D]iommu.c:721: iommu_enable_translation: iommu->reg =3D =
+ffff82c3fff56000=0A=
+(XEN) Scrubbing Free RAM: =
+...........................................................done.=0A=
+(XEN) Xen trace buffers: disabled=0A=
+(XEN) Std. Loglevel: Errors and warnings=0A=
+(XEN) Guest Loglevel: Nothing (Rate-limited: Errors and warnings)=0A=
+(XEN) Xen is relinquishing VGA console.=0A=
+(XEN) *** Serial input -> DOM0 (type 'CTRL-a' three times to switch =
+input to Xen)=0A=
+(XEN) Freed 224kB init memory.=0A=
+(XEN) physdev.c:155: dom0: wrong map_pirq type 3=0A=
+(XEN) [VT-D]iommu.c:1503: d0:PCI: unmap bdf =3D 2:2.0=0A=
+(XEN) [VT-D]iommu.c:1376: d10:PCI: map bdf =3D 2:2.0=0A=
+(XEN) [VT-D]io.c:303: d10: bind: m_gsi=3D16 g_gsi=3D32 device=3D4 =
+intx=3D0=0A=
+(XEN) [VT-D]iommu.c:1503: d0:PCI: unmap bdf =3D 3:c.0=0A=
+(XEN) [VT-D]iommu.c:1376: d10:PCI: map bdf =3D 3:c.0=0A=
+(XEN) [VT-D]io.c:303: d10: bind: m_gsi=3D17 g_gsi=3D36 device=3D5 =
+intx=3D0=0A=
+(XEN) [VT-D]iommu.c:1503: d0:PCI: unmap bdf =3D 3:d.0=0A=
+(XEN) [VT-D]iommu.c:1376: d10:PCI: map bdf =3D 3:d.0=0A=
+(XEN) [VT-D]io.c:303: d10: bind: m_gsi=3D18 g_gsi=3D40 device=3D6 =
+intx=3D0=0A=
+(XEN) [VT-D]iommu.c:1503: d0:PCI: unmap bdf =3D 3:e.0=0A=
+(XEN) [VT-D]iommu.c:1376: d10:PCI: map bdf =3D 3:e.0=0A=
+(XEN) [VT-D]io.c:303: d10: bind: m_gsi=3D19 g_gsi=3D44 device=3D7 =
+intx=3D0=0A=
+(XEN) [VT-D]iommu.c:1503: d0:PCI: unmap bdf =3D 3:f.0=0A=
+(XEN) [VT-D]iommu.c:1376: d10:PCI: map bdf =3D 3:f.0=0A=
+(XEN) physdev.c:170: dom10: 18:-1 already mapped to 16=0A=
+(XEN) [VT-D]io.c:303: d10: bind: m_gsi=3D16 g_gsi=3D17 device=3D8 =
+intx=3D0=0A=
+(XEN) [VT-D]iommu.c:1503: d0:PCI: unmap bdf =3D 5:1.0=0A=
+(XEN) [VT-D]iommu.c:1376: d11:PCI: map bdf =3D 5:1.0=0A=
+(XEN) [VT-D]io.c:303: d11: bind: m_gsi=3D16 g_gsi=3D32 device=3D4 =
+intx=3D0=0A=
+(XEN) [VT-D]iommu.c:1503: d0:PCI: unmap bdf =3D 6:c.0=0A=
+(XEN) [VT-D]iommu.c:1376: d11:PCI: map bdf =3D 6:c.0=0A=
+(XEN) [VT-D]io.c:303: d11: bind: m_gsi=3D17 g_gsi=3D36 device=3D5 =
+intx=3D0=0A=
+(XEN) [VT-D]iommu.c:1503: d0:PCI: unmap bdf =3D 6:d.0=0A=
+(XEN) [VT-D]iommu.c:1376: d11:PCI: map bdf =3D 6:d.0=0A=
+(XEN) [VT-D]io.c:303: d11: bind: m_gsi=3D18 g_gsi=3D40 device=3D6 =
+intx=3D0=0A=
+(XEN) [VT-D]iommu.c:1503: d0:PCI: unmap bdf =3D 6:e.0=0A=
+(XEN) [VT-D]iommu.c:1376: d11:PCI: map bdf =3D 6:e.0=0A=
+(XEN) [VT-D]io.c:303: d11: bind: m_gsi=3D19 g_gsi=3D44 device=3D7 =
+intx=3D0=0A=
+(XEN) [VT-D]iommu.c:1503: d0:PCI: unmap bdf =3D 6:f.0=0A=
+(XEN) [VT-D]iommu.c:1376: d11:PCI: map bdf =3D 6:f.0=0A=
+(XEN) physdev.c:170: dom11: 18:-1 already mapped to 16=0A=
+(XEN) [VT-D]io.c:303: d11: bind: m_gsi=3D16 g_gsi=3D17 device=3D8 =
+intx=3D0=0A=
+
+------=_NextPart_000_0024_01CD591D.0D3DCCD0
+Content-Type: text/plain;
+       name="xm_info.txt"
+Content-Transfer-Encoding: quoted-printable
+Content-Disposition: attachment;
+       filename="xm_info.txt"
+
+host                   : perso=0A=
+release                : 3.2.16-perso=0A=
+version                : #1 SMP Wed Apr 25 15:58:53 CEST 2012=0A=
+machine                : x86_64=0A=
+nr_cpus                : 8=0A=
+nr_nodes               : 1=0A=
+cores_per_socket       : 4=0A=
+threads_per_core       : 2=0A=
+cpu_mhz                : 3392=0A=
+hw_caps                : =
+bfebfbff:28100800:00000000:00003f40:13bae3ff:00000000:00000001:00000000=0A=
+virt_caps              : hvm hvm_directio=0A=
+total_memory           : 8079=0A=
+free_memory            : 5920=0A=
+free_cpus              : 0=0A=
+xen_major              : 4=0A=
+xen_minor              : 1=0A=
+xen_extra              : .1=0A=
+xen_caps               : xen-3.0-x86_64 xen-3.0-x86_32p hvm-3.0-x86_32 =
+hvm-3.0-x86_32p hvm-3.0-x86_64 =0A=
+xen_scheduler          : credit=0A=
+xen_pagesize           : 4096=0A=
+platform_params        : virt_start=3D0xffff800000000000=0A=
+xen_changeset          : unavailable=0A=
+xen_commandline        : placeholder dom0_mem=3D2G,max:2G =
+dom0_max_vcpus=3D4 dom0_vcpus_pin=3Dtrue=0A=
+cc_compiler            : gcc version 4.6.1 (Ubuntu/Linaro =
+4.6.1-9ubuntu3) =0A=
+cc_compile_by          : zulcss=0A=
+cc_compile_domain      : ubuntu.com=0A=
+cc_compile_date        : Tue Oct 11 07:31:13 UTC 2011=0A=
+xend_config_format     : 4=0A=
+
+------=_NextPart_000_0024_01CD591D.0D3DCCD0
+Content-Type: text/plain;
+       name="xm_pci_list_assi.txt"
+Content-Transfer-Encoding: quoted-printable
+Content-Disposition: attachment;
+       filename="xm_pci_list_assi.txt"
+
+0000:0c:0c.0=0A=
+0000:0d:0c.0=0A=
+0000:0d:0d.0=0A=
+0000:0d:0e.0=0A=
+0000:0d:0f.0=0A=
+0000:08:00.0=0A=
+0000:09:0c.0=0A=
+0000:09:0d.0=0A=
+0000:09:0e.0=0A=
+0000:09:0f.0=0A=
+0000:05:01.0=0A=
+0000:06:0c.0=0A=
+0000:06:0d.0=0A=
+0000:06:0e.0=0A=
+0000:06:0f.0=0A=
+0000:02:02.0=0A=
+0000:03:0c.0=0A=
+0000:03:0d.0=0A=
+0000:03:0e.0=0A=
+0000:03:0f.0=0A=
+
+------=_NextPart_000_0024_01CD591D.0D3DCCD0
+Content-Type: text/plain; charset="us-ascii"
+MIME-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Content-Disposition: inline
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
+------=_NextPart_000_0024_01CD591D.0D3DCCD0--
+
+
+
diff --git a/config/examples/test/corpus/<003501cd6010$224d58d0$66e80a70$@core.kaist.ac.kr> b/config/examples/test/corpus/<003501cd6010$224d58d0$66e80a70$@core.kaist.ac.kr>
new file mode 100644 (file)
index 0000000..5081749
--- /dev/null
@@ -0,0 +1,150 @@
+From xen-devel-bounces@lists.xen.org Thu Jul 12 10:29:44 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 12 Jul 2012 10:29:44 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SpFiM-0004Dc-RS
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 12 Jul 2012 10:29:44 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SpFdj-0006zB-9o; Thu, 12 Jul 2012 09:24:51 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <cmkim@core.kaist.ac.kr>) id 1SpFdg-0006z6-PV
+       for xen-devel@lists.xen.org; Thu, 12 Jul 2012 09:24:48 +0000
+Received: from [85.158.143.99:64740] by server-1.bemta-4.messagelabs.com id
+       01/8E-24392-0E79EFF4; Thu, 12 Jul 2012 09:24:48 +0000
+X-Env-Sender: cmkim@core.kaist.ac.kr
+X-Msg-Ref: server-9.tower-216.messagelabs.com!1342085083!28456064!1
+X-Originating-IP: [143.248.147.118]
+X-SpamReason: No, hits=0.0 required=7.0 tests=
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.2; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 8603 invoked from network); 12 Jul 2012 09:24:47 -0000
+Received: from core.kaist.ac.kr (HELO core.kaist.ac.kr) (143.248.147.118)
+       by server-9.tower-216.messagelabs.com with DHE-RSA-AES256-SHA encrypted
+       SMTP; 12 Jul 2012 09:24:47 -0000
+Received: from CHULMINKIMPC (az.kaist.ac.kr [143.248.165.115])
+       by core.kaist.ac.kr (8.14.4/8.14.4) with ESMTP id q6C9NfOB023758
+       for <xen-devel@lists.xen.org>; Thu, 12 Jul 2012 18:23:41 +0900
+From: "Chulmin Kim" <cmkim@core.kaist.ac.kr>
+To: <xen-devel@lists.xen.org>
+References: <008601cd5f45$6eff7530$4cfe5f90$@core.kaist.ac.kr>
+       <4FFD4C06.7090403@citrix.com>
+       <001301cd5fc1$818953c0$849bfb40$@core.kaist.ac.kr>
+       <4FFE93DE.5020608@citrix.com> 
+In-Reply-To: 
+Date: Thu, 12 Jul 2012 18:24:26 +0900
+Message-ID: <003501cd6010$224d58d0$66e80a70$@core.kaist.ac.kr>
+MIME-Version: 1.0
+X-Mailer: Microsoft Outlook 14.0
+Thread-Index: AQHi8tnKuE7rNn5GUJad1LRMsZtYjQI/riFrAgtScjICNUoge5bGNoyggAABlnA=
+Content-Language: ko
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: [Xen-devel] FW:  maximum memory size allocated by _xmalloc
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+> On 12/07/12 01:01, Chulmin Kim wrote:
+> >> On 11/07/12 10:13, Chulmin Kim wrote:
+> >>> Hi all,
+> >>>
+> >>> I'm currently inserting my own code to adjust the several existing 
+> >>> memory ballooning works.
+> >>>
+> >>> To accomplish it, I manage some kind of statistics in Xen memory area.
+> >>>
+> >>> Using _xmalloc, I've allocated certain size of memory chunk for 
+> >>> the data structure. ( I varied it from 10kb to 24 MB.)
+> >>>
+> >>> When the size is equal to 24 MB, xen won't boot anymore.  (stuck 
+> >>> during the xmalloc, according to my debugging. _xmalloc returns
+> >>> NULL.) There was no problem when the size is below 12MB.
+> >>>
+> >>> Is there any limitation such as max memory size for _xmalloc?
+> >>>
+> >>> I suspected xen heap size, but, it is no longer adjustable. Right?
+> >>>
+> >>> I hope somebody can give me a clue.  Thanks.
+> >> _xmalloc will first try to use the size pools for allocation, and 
+> >> failing
+> > that, try to
+> >> allocate full pages.
+> >>
+> >> As it is returning NULL, this probably means you no longer have 
+> >> 24MB of
+> > free
+> >> contiguous RAM to allocate.
+> >>
+> >> ~Andrew
+> >>
+> > Thanks for the reply, Andrew.
+> >
+> > I have to check the contiguity.
+> >
+> > If it is the cause of the problem, then, how can I detour this problem?
+> >
+> > Other xen part calling xmalloc_array does not handle this problem as 
+> > far as I know. (only consider it as an error)
+> >
+> > Should I split the data structure into two or more chunks?
+> 
+> Personally, I would think that 24M is a stupidly large amount to be 
+> trying to allocate with xmalloc and friends.
+> 
+> If you are using that much memory, it might be worth using
+> alloc_xenheap_pages() and working with full pages instead.
+> 
+> Why do you need so much space for memory statistics?
+> 
+> ~Andrew
+
+OK. I will try alloc_xenheap_pages(). 
+
+I am following up a research work (Dynamic Memory Balncing ~~), and it
+maintains  a table which has an entry per page in the machine. 
+
+My machine has large memory (different from that in the research work), so
+it needs that amount of memory. 
+
+Thanks!
+
+
+
+> 
+> --
+> Andrew Cooper - Dom0 Kernel Engineer, Citrix XenServer
+> T: +44 (0)1223 225 900, http://www.citrix.com
+
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<008601cd5f45$6eff7530$4cfe5f90$@core.kaist.ac.kr> b/config/examples/test/corpus/<008601cd5f45$6eff7530$4cfe5f90$@core.kaist.ac.kr>
new file mode 100644 (file)
index 0000000..96e8a7d
--- /dev/null
@@ -0,0 +1,94 @@
+From xen-devel-bounces@lists.xen.org Wed Jul 11 10:19:07 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 11 Jul 2012 10:19:07 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1Sot4b-0003tF-Ci
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 11 Jul 2012 10:19:07 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SoszS-0001bo-H2; Wed, 11 Jul 2012 09:13:46 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <cmkim@core.kaist.ac.kr>) id 1SoszQ-0001bh-N4
+       for xen-devel@lists.xen.org; Wed, 11 Jul 2012 09:13:44 +0000
+Received: from [85.158.143.99:31491] by server-2.bemta-4.messagelabs.com id
+       C1/7F-17938-7C34DFF4; Wed, 11 Jul 2012 09:13:43 +0000
+X-Env-Sender: cmkim@core.kaist.ac.kr
+X-Msg-Ref: server-3.tower-216.messagelabs.com!1341998020!27658661!1
+X-Originating-IP: [143.248.147.118]
+X-SpamReason: No, hits=0.0 required=7.0 tests=
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.2; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 15685 invoked from network); 11 Jul 2012 09:13:42 -0000
+Received: from core.kaist.ac.kr (HELO core.kaist.ac.kr) (143.248.147.118)
+       by server-3.tower-216.messagelabs.com with DHE-RSA-AES256-SHA encrypted
+       SMTP; 11 Jul 2012 09:13:42 -0000
+Received: from CHULMINKIMPC (az.kaist.ac.kr [143.248.165.115])
+       by core.kaist.ac.kr (8.14.4/8.14.4) with ESMTP id q6B9CkXR014193
+       for <xen-devel@lists.xen.org>; Wed, 11 Jul 2012 18:12:47 +0900
+From: "Chulmin Kim" <cmkim@core.kaist.ac.kr>
+To: <xen-devel@lists.xen.org>
+Date: Wed, 11 Jul 2012 18:13:27 +0900
+Message-ID: <008601cd5f45$6eff7530$4cfe5f90$@core.kaist.ac.kr>
+MIME-Version: 1.0
+X-Mailer: Microsoft Outlook 14.0
+Thread-Index: Ac1fRAsR9B4iQYF2TZWWP5+GEQsXJw==
+Content-Language: ko
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: [Xen-devel] maximum memory size allocated by _xmalloc
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+Hi all, 
+
+I'm currently inserting my own code to adjust the several existing memory
+ballooning works. 
+
+To accomplish it, I manage some kind of statistics in Xen memory area. 
+
+Using _xmalloc, I've allocated certain size of memory chunk for the data
+structure. ( I varied it from 10kb to 24 MB.)
+
+When the size is equal to 24 MB, xen won't boot anymore.  (stuck during the
+xmalloc, according to my debugging. _xmalloc returns NULL.)
+There was no problem when the size is below 12MB.
+
+Is there any limitation such as max memory size for _xmalloc? 
+
+I suspected xen heap size, but, it is no longer adjustable. Right? 
+
+I hope somebody can give me a clue.  Thanks.
+
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<05f8b1f47b42aaf2430490453a2b783eabbe9bfb.1345552068.git.julien.grall@citrix.com> b/config/examples/test/corpus/<05f8b1f47b42aaf2430490453a2b783eabbe9bfb.1345552068.git.julien.grall@citrix.com>
new file mode 100644 (file)
index 0000000..8669842
--- /dev/null
@@ -0,0 +1,266 @@
+From xen-devel-bounces@lists.xen.org Wed Aug 22 19:58:55 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 22 Aug 2012 19:58:55 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T4G8g-0002o1-RT
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 22 Aug 2012 19:58:55 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T4G5R-0006zb-51; Wed, 22 Aug 2012 18:55:29 +0000
+Received: from mail27.messagelabs.com ([193.109.254.147])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <julien.grall@citrix.com>) id 1T4G5N-0006lR-Gx
+       for xen-devel@lists.xen.org; Wed, 22 Aug 2012 18:55:25 +0000
+X-Env-Sender: julien.grall@citrix.com
+X-Msg-Ref: server-12.tower-27.messagelabs.com!1345661712!9781420!5
+X-Originating-IP: [66.165.176.89]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNjU4OTQ=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 7437 invoked from network); 22 Aug 2012 18:55:18 -0000
+Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
+       by server-12.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
+       22 Aug 2012 18:55:18 -0000
+X-IronPort-AV: E=Sophos;i="4.80,809,1344225600"; d="scan'208";a="35484803"
+Received: from ftlpmailmx01.citrite.net ([10.13.107.65])
+       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       22 Aug 2012 14:55:18 -0400
+Received: from meteora.cam.xci-test.com (10.80.248.22) by smtprelay.citrix.com
+       (10.13.107.65) with Microsoft SMTP Server id 8.3.213.0;
+       Wed, 22 Aug 2012 14:55:17 -0400
+From: Julien Grall <julien.grall@citrix.com>
+To: qemu-devel@nongnu.org
+Date: Wed, 22 Aug 2012 13:31:56 +0100
+Message-ID: <05f8b1f47b42aaf2430490453a2b783eabbe9bfb.1345552068.git.julien.grall@citrix.com>
+X-Mailer: git-send-email 1.7.2.5
+In-Reply-To: <cover.1345552068.git.julien.grall@citrix.com>
+References: <cover.1345552068.git.julien.grall@citrix.com>
+MIME-Version: 1.0
+Cc: Julien Grall <julien.grall@citrix.com>, christian.limpach@gmail.com,
+       Stefano.Stabellini@eu.citrix.com, xen-devel@lists.xen.org
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DATE_IN_PAST_06_12,
+       RCVD_IN_DNSWL_MED,RP_MATCHES_RCVD autolearn=unavailable version=3.3.1
+Subject: [Xen-devel] [XEN][RFC PATCH V2 10/17] xc: Add argument to allocate
+       more special pages
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+This patch permits to allocate more special pages. Indeed, for multiple
+ioreq server, we need to have 2 shared pages by server.
+
+Signed-off-by: Julien Grall <julien.grall@citrix.com>
+---
+ tools/libxc/xc_hvm_build_x86.c    |   59 +++++++++++++++++++-----------------
+ tools/libxc/xenguest.h            |    4 ++-
+ tools/python/xen/lowlevel/xc/xc.c |    3 +-
+ 3 files changed, 36 insertions(+), 30 deletions(-)
+
+diff --git a/tools/libxc/xc_hvm_build_x86.c b/tools/libxc/xc_hvm_build_x86.c
+index cf5d7fb..b98536b 100644
+--- a/tools/libxc/xc_hvm_build_x86.c
++++ b/tools/libxc/xc_hvm_build_x86.c
+@@ -41,16 +41,15 @@
+ #define SPECIALPAGE_PAGING   0
+ #define SPECIALPAGE_ACCESS   1
+ #define SPECIALPAGE_SHARING  2
+-#define SPECIALPAGE_BUFIOREQ 3
+-#define SPECIALPAGE_XENSTORE 4
+-#define SPECIALPAGE_IOREQ    5
+-#define SPECIALPAGE_IDENT_PT 6
+-#define SPECIALPAGE_CONSOLE  7
+-#define NR_SPECIAL_PAGES     8
+-#define special_pfn(x) (0xff000u - NR_SPECIAL_PAGES + (x))
++#define SPECIALPAGE_XENSTORE 3
++#define SPECIALPAGE_IDENT_PT 4
++#define SPECIALPAGE_CONSOLE  5
++#define NR_SPECIAL_PAGES     6
++#define special_pfn(x, add) (0xff000u - (NR_SPECIAL_PAGES + (add)) + (x))
+ static void build_hvm_info(void *hvm_info_page, uint64_t mem_size,
+-                           uint64_t mmio_start, uint64_t mmio_size)
++                           uint64_t mmio_start, uint64_t mmio_size,
++                           uint32_t nr_special_pages)
+ {
+     struct hvm_info_table *hvm_info = (struct hvm_info_table *)
+         (((unsigned char *)hvm_info_page) + HVM_INFO_OFFSET);
+@@ -78,7 +77,7 @@ static void build_hvm_info(void *hvm_info_page, uint64_t mem_size,
+     /* Memory parameters. */
+     hvm_info->low_mem_pgend = lowmem_end >> PAGE_SHIFT;
+     hvm_info->high_mem_pgend = highmem_end >> PAGE_SHIFT;
+-    hvm_info->reserved_mem_pgstart = special_pfn(0);
++    hvm_info->reserved_mem_pgstart = special_pfn(0, nr_special_pages);
+     /* Finish with the checksum. */
+     for ( i = 0, sum = 0; i < hvm_info->length; i++ )
+@@ -148,6 +147,7 @@ static int setup_guest(xc_interface *xch,
+     unsigned long target_pages = args->mem_target >> PAGE_SHIFT;
+     uint64_t mmio_start = (1ull << 32) - args->mmio_size;
+     uint64_t mmio_size = args->mmio_size;
++    uint32_t nr_special_pages = args->nr_special_pages;
+     unsigned long entry_eip, cur_pages, cur_pfn;
+     void *hvm_info_page;
+     uint32_t *ident_pt;
+@@ -341,37 +341,38 @@ static int setup_guest(xc_interface *xch,
+               xch, dom, PAGE_SIZE, PROT_READ | PROT_WRITE,
+               HVM_INFO_PFN)) == NULL )
+         goto error_out;
+-    build_hvm_info(hvm_info_page, v_end, mmio_start, mmio_size);
++    build_hvm_info(hvm_info_page, v_end, mmio_start, mmio_size, nr_special_pages);
+     munmap(hvm_info_page, PAGE_SIZE);
+     /* Allocate and clear special pages. */
+-    for ( i = 0; i < NR_SPECIAL_PAGES; i++ )
++    for ( i = 0; i < (NR_SPECIAL_PAGES + nr_special_pages); i++ )
+     {
+-        xen_pfn_t pfn = special_pfn(i);
++        xen_pfn_t pfn = special_pfn(i, nr_special_pages);
+         rc = xc_domain_populate_physmap_exact(xch, dom, 1, 0, 0, &pfn);
+         if ( rc != 0 )
+         {
+             PERROR("Could not allocate %d'th special page.", i);
+             goto error_out;
+         }
+-        if ( xc_clear_domain_page(xch, dom, special_pfn(i)) )
++        if ( xc_clear_domain_page(xch, dom, special_pfn(i, nr_special_pages)) )
+             goto error_out;
+     }
+     xc_set_hvm_param(xch, dom, HVM_PARAM_STORE_PFN,
+-                     special_pfn(SPECIALPAGE_XENSTORE));
+-    xc_set_hvm_param(xch, dom, HVM_PARAM_BUFIOREQ_PFN,
+-                     special_pfn(SPECIALPAGE_BUFIOREQ));
+-    xc_set_hvm_param(xch, dom, HVM_PARAM_IOREQ_PFN,
+-                     special_pfn(SPECIALPAGE_IOREQ));
++                     special_pfn(SPECIALPAGE_XENSTORE, nr_special_pages));
+     xc_set_hvm_param(xch, dom, HVM_PARAM_CONSOLE_PFN,
+-                     special_pfn(SPECIALPAGE_CONSOLE));
++                     special_pfn(SPECIALPAGE_CONSOLE, nr_special_pages));
+     xc_set_hvm_param(xch, dom, HVM_PARAM_PAGING_RING_PFN,
+-                     special_pfn(SPECIALPAGE_PAGING));
++                     special_pfn(SPECIALPAGE_PAGING, nr_special_pages));
+     xc_set_hvm_param(xch, dom, HVM_PARAM_ACCESS_RING_PFN,
+-                     special_pfn(SPECIALPAGE_ACCESS));
++                     special_pfn(SPECIALPAGE_ACCESS, nr_special_pages));
+     xc_set_hvm_param(xch, dom, HVM_PARAM_SHARING_RING_PFN,
+-                     special_pfn(SPECIALPAGE_SHARING));
++                     special_pfn(SPECIALPAGE_SHARING, nr_special_pages));
++    xc_set_hvm_param(xch, dom, HVM_PARAM_IO_PFN_FIRST,
++                     special_pfn(NR_SPECIAL_PAGES, nr_special_pages));
++    xc_set_hvm_param(xch, dom, HVM_PARAM_IO_PFN_LAST,
++                     special_pfn(NR_SPECIAL_PAGES + nr_special_pages - 1,
++                                 nr_special_pages));
+     /*
+      * Identity-map page table is required for running with CR0.PG=0 when
+@@ -379,14 +380,14 @@ static int setup_guest(xc_interface *xch,
+      */
+     if ( (ident_pt = xc_map_foreign_range(
+               xch, dom, PAGE_SIZE, PROT_READ | PROT_WRITE,
+-              special_pfn(SPECIALPAGE_IDENT_PT))) == NULL )
++              special_pfn(SPECIALPAGE_IDENT_PT, nr_special_pages))) == NULL )
+         goto error_out;
+     for ( i = 0; i < PAGE_SIZE / sizeof(*ident_pt); i++ )
+         ident_pt[i] = ((i << 22) | _PAGE_PRESENT | _PAGE_RW | _PAGE_USER |
+                        _PAGE_ACCESSED | _PAGE_DIRTY | _PAGE_PSE);
+     munmap(ident_pt, PAGE_SIZE);
+     xc_set_hvm_param(xch, dom, HVM_PARAM_IDENT_PT,
+-                     special_pfn(SPECIALPAGE_IDENT_PT) << PAGE_SHIFT);
++                     special_pfn(SPECIALPAGE_IDENT_PT, nr_special_pages) << PAGE_SHIFT);
+     /* Insert JMP <rel32> instruction at address 0x0 to reach entry point. */
+     entry_eip = elf_uval(&elf, elf.ehdr, e_entry);
+@@ -454,16 +455,18 @@ int xc_hvm_build(xc_interface *xch, uint32_t domid,
+  * If target == memsize, pages are populated normally.
+  */
+ int xc_hvm_build_target_mem(xc_interface *xch,
+-                           uint32_t domid,
+-                           int memsize,
+-                           int target,
+-                           const char *image_name)
++                            uint32_t domid,
++                            int memsize,
++                            int target,
++                            const char *image_name,
++                            uint32_t nr_special_pages)
+ {
+     struct xc_hvm_build_args args = {};
+     args.mem_size = (uint64_t)memsize << 20;
+     args.mem_target = (uint64_t)target << 20;
+     args.image_file_name = image_name;
++    args.nr_special_pages = nr_special_pages;
+     return xc_hvm_build(xch, domid, &args);
+ }
+diff --git a/tools/libxc/xenguest.h b/tools/libxc/xenguest.h
+index 707e31c..9a0d38f 100644
+--- a/tools/libxc/xenguest.h
++++ b/tools/libxc/xenguest.h
+@@ -216,6 +216,7 @@ struct xc_hvm_build_args {
+     uint64_t mem_target;         /* Memory target in bytes. */
+     uint64_t mmio_size;          /* Size of the MMIO hole in bytes. */
+     const char *image_file_name; /* File name of the image to load. */
++    uint32_t nr_special_pages;   /* Additional special pages for io daemon */
+ };
+ /**
+@@ -234,7 +235,8 @@ int xc_hvm_build_target_mem(xc_interface *xch,
+                             uint32_t domid,
+                             int memsize,
+                             int target,
+-                            const char *image_name);
++                            const char *image_name,
++                            uint32_t nr_special_pages);
+ int xc_suspend_evtchn_release(xc_interface *xch, xc_evtchn *xce, int domid, int suspend_evtchn);
+diff --git a/tools/python/xen/lowlevel/xc/xc.c b/tools/python/xen/lowlevel/xc/xc.c
+index 7c89756..eb004b6 100644
+--- a/tools/python/xen/lowlevel/xc/xc.c
++++ b/tools/python/xen/lowlevel/xc/xc.c
+@@ -984,8 +984,9 @@ static PyObject *pyxc_hvm_build(XcObject *self,
+     if ( target == -1 )
+         target = memsize;
++    // Ugly fix : we must retrieve the number of servers
+     if ( xc_hvm_build_target_mem(self->xc_handle, dom, memsize,
+-                                 target, image) != 0 )
++                                 target, image, 0) != 0 )
+         return pyxc_error_to_exception(self->xc_handle);
+ #if !defined(__ia64__)
+-- 
+Julien Grall
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<0616f810ead8fa9d2beb8dc3b7306724a0e39ca1.1345552068.git.julien.grall@citrix.com> b/config/examples/test/corpus/<0616f810ead8fa9d2beb8dc3b7306724a0e39ca1.1345552068.git.julien.grall@citrix.com>
new file mode 100644 (file)
index 0000000..9602281
--- /dev/null
@@ -0,0 +1,194 @@
+From xen-devel-bounces@lists.xen.org Wed Aug 22 19:58:56 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 22 Aug 2012 19:58:56 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T4G8a-0002mb-Ni
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 22 Aug 2012 19:58:56 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T4G5L-0006qL-QG; Wed, 22 Aug 2012 18:55:23 +0000
+Received: from mail27.messagelabs.com ([193.109.254.147])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <julien.grall@citrix.com>) id 1T4G5J-0006gz-4w
+       for xen-devel@lists.xen.org; Wed, 22 Aug 2012 18:55:21 +0000
+X-Env-Sender: julien.grall@citrix.com
+X-Msg-Ref: server-12.tower-27.messagelabs.com!1345661712!9781420!3
+X-Originating-IP: [66.165.176.89]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNjU4OTQ=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 7343 invoked from network); 22 Aug 2012 18:55:15 -0000
+Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
+       by server-12.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
+       22 Aug 2012 18:55:15 -0000
+X-IronPort-AV: E=Sophos;i="4.80,809,1344225600"; d="scan'208";a="35484792"
+Received: from ftlpmailmx01.citrite.net ([10.13.107.65])
+       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       22 Aug 2012 14:55:14 -0400
+Received: from meteora.cam.xci-test.com (10.80.248.22) by smtprelay.citrix.com
+       (10.13.107.65) with Microsoft SMTP Server id 8.3.213.0;
+       Wed, 22 Aug 2012 14:55:14 -0400
+From: Julien Grall <julien.grall@citrix.com>
+To: qemu-devel@nongnu.org
+Date: Wed, 22 Aug 2012 13:31:53 +0100
+Message-ID: <0616f810ead8fa9d2beb8dc3b7306724a0e39ca1.1345552068.git.julien.grall@citrix.com>
+X-Mailer: git-send-email 1.7.2.5
+In-Reply-To: <cover.1345552068.git.julien.grall@citrix.com>
+References: <cover.1345552068.git.julien.grall@citrix.com>
+MIME-Version: 1.0
+Cc: Julien Grall <julien.grall@citrix.com>, christian.limpach@gmail.com,
+       Stefano.Stabellini@eu.citrix.com, xen-devel@lists.xen.org
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DATE_IN_PAST_06_12,
+       RCVD_IN_DNSWL_MED,RP_MATCHES_RCVD autolearn=ham version=3.3.1
+Subject: [Xen-devel] [XEN][RFC PATCH V2 07/17] hvm-io: send invalidate map
+       cache to each registered servers
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+When an invalidate mapcache cache occurs, Xen need to send and
+IOREQ_TYPE_INVALIDATE to each server and wait that all IO is completed.
+We introduce a new function hvm_wait_on_io to wait until an IO is completed.
+
+Signed-off-by: Julien Grall <julien.grall@citrix.com>
+---
+ xen/arch/x86/hvm/hvm.c |   41 ++++++++++++++++++++++++++++++++---------
+ xen/arch/x86/hvm/io.c  |   15 +++++++++++++--
+ 2 files changed, 45 insertions(+), 11 deletions(-)
+
+diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
+index 33ef0f2..fdb2515 100644
+--- a/xen/arch/x86/hvm/hvm.c
++++ b/xen/arch/x86/hvm/hvm.c
+@@ -316,16 +316,9 @@ void hvm_migrate_pirqs(struct vcpu *v)
+     spin_unlock(&d->event_lock);
+ }
+-void hvm_do_resume(struct vcpu *v)
++static void hvm_wait_on_io(struct vcpu *v, ioreq_t *p)
+ {
+-    ioreq_t *p;
+-
+-    pt_restore_timer(v);
+-
+-    check_wakeup_from_wait();
+-
+     /* NB. Optimised for common case (p->state == STATE_IOREQ_NONE). */
+-    p = get_ioreq(v);
+     while ( p->state != STATE_IOREQ_NONE )
+     {
+         switch ( p->state )
+@@ -335,7 +328,7 @@ void hvm_do_resume(struct vcpu *v)
+             break;
+         case STATE_IOREQ_READY:  /* IOREQ_{READY,INPROCESS} -> IORESP_READY */
+         case STATE_IOREQ_INPROCESS:
+-            wait_on_xen_event_channel(v->arch.hvm_vcpu.xen_port,
++            wait_on_xen_event_channel(p->vp_eport,
+                                       (p->state != STATE_IOREQ_READY) &&
+                                       (p->state != STATE_IOREQ_INPROCESS));
+             break;
+@@ -345,6 +338,36 @@ void hvm_do_resume(struct vcpu *v)
+             return; /* bail */
+         }
+     }
++}
++
++void hvm_do_resume(struct vcpu *v)
++{
++    ioreq_t *p;
++    struct hvm_ioreq_server *s;
++    shared_iopage_t *page;
++
++    pt_restore_timer(v);
++
++    check_wakeup_from_wait();
++
++    p = get_ioreq(v);
++
++    if ( p->type == IOREQ_TYPE_INVALIDATE )
++    {
++        spin_lock(&v->domain->arch.hvm_domain.ioreq_server_lock);
++        /* Wait all servers */
++        for ( s = v->domain->arch.hvm_domain.ioreq_server_list; s; s = s->next )
++        {
++            page = s->ioreq.va;
++            ASSERT((v == current) || spin_is_locked(&s->ioreq.lock));
++            ASSERT(s->ioreq.va != NULL);
++            v->arch.hvm_vcpu.ioreq = &s->ioreq;
++            hvm_wait_on_io(v, &page->vcpu_ioreq[v->vcpu_id]);
++        }
++        spin_unlock(&v->domain->arch.hvm_domain.ioreq_server_lock);
++    }
++    else
++        hvm_wait_on_io(v, p);
+     /* Inject pending hw/sw trap */
+     if ( v->arch.hvm_vcpu.inject_trap.vector != -1 ) 
+diff --git a/xen/arch/x86/hvm/io.c b/xen/arch/x86/hvm/io.c
+index c20f4e8..b73a462 100644
+--- a/xen/arch/x86/hvm/io.c
++++ b/xen/arch/x86/hvm/io.c
+@@ -150,7 +150,8 @@ void send_timeoffset_req(unsigned long timeoff)
+ void send_invalidate_req(void)
+ {
+     struct vcpu *v = current;
+-    ioreq_t *p = get_ioreq(v);
++    ioreq_t p[1];
++    struct hvm_ioreq_server *s;
+     if ( p->state != STATE_IOREQ_NONE )
+     {
+@@ -164,8 +165,18 @@ void send_invalidate_req(void)
+     p->size = 4;
+     p->dir = IOREQ_WRITE;
+     p->data = ~0UL; /* flush all */
++    p->count = 0;
++    p->addr = 0;
++
++    spin_lock(&v->domain->arch.hvm_domain.ioreq_server_lock);
++    for ( s = v->domain->arch.hvm_domain.ioreq_server_list; s; s = s->next )
++    {
++        set_ioreq(v, &s->ioreq, p);
++        (void)hvm_send_assist_req(v);
++    }
++    spin_unlock(&v->domain->arch.hvm_domain.ioreq_server_lock);
+-    (void)hvm_send_assist_req(v);
++    set_ioreq(v, &v->domain->arch.hvm_domain.ioreq, p);
+ }
+ int handle_mmio(void)
+-- 
+Julien Grall
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<0c0e65af87b2e86b62d82565c2e363ddfb8acfc6.1345552068.git.julien.grall@citrix.com> b/config/examples/test/corpus/<0c0e65af87b2e86b62d82565c2e363ddfb8acfc6.1345552068.git.julien.grall@citrix.com>
new file mode 100644 (file)
index 0000000..107bc8d
--- /dev/null
@@ -0,0 +1,172 @@
+From xen-devel-bounces@lists.xen.org Wed Aug 22 19:58:52 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 22 Aug 2012 19:58:52 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T4G8a-0002mJ-ET
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 22 Aug 2012 19:58:52 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T4G5S-00073Q-SZ; Wed, 22 Aug 2012 18:55:30 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <julien.grall@citrix.com>) id 1T4G5Q-0006zL-Mt
+       for xen-devel@lists.xen.org; Wed, 22 Aug 2012 18:55:28 +0000
+Received: from [85.158.138.51:40259] by server-5.bemta-3.messagelabs.com id
+       82/A8-08865-F1B25305; Wed, 22 Aug 2012 18:55:27 +0000
+X-Env-Sender: julien.grall@citrix.com
+X-Msg-Ref: server-5.tower-174.messagelabs.com!1345661707!27566656!8
+X-Originating-IP: [66.165.176.63]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyNzMzNjM=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 10561 invoked from network); 22 Aug 2012 18:55:27 -0000
+Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
+       by server-5.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
+       22 Aug 2012 18:55:27 -0000
+X-IronPort-AV: E=Sophos;i="4.80,809,1344225600"; d="scan'208";a="205943141"
+Received: from ftlpmailmx01.citrite.net ([10.13.107.65])
+       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       22 Aug 2012 14:55:25 -0400
+Received: from meteora.cam.xci-test.com (10.80.248.22) by smtprelay.citrix.com
+       (10.13.107.65) with Microsoft SMTP Server id 8.3.213.0;
+       Wed, 22 Aug 2012 14:55:25 -0400
+From: Julien Grall <julien.grall@citrix.com>
+To: qemu-devel@nongnu.org
+Date: Wed, 22 Aug 2012 13:32:02 +0100
+Message-ID: <0c0e65af87b2e86b62d82565c2e363ddfb8acfc6.1345552068.git.julien.grall@citrix.com>
+X-Mailer: git-send-email 1.7.2.5
+In-Reply-To: <cover.1345552068.git.julien.grall@citrix.com>
+References: <cover.1345552068.git.julien.grall@citrix.com>
+MIME-Version: 1.0
+Cc: Julien Grall <julien.grall@citrix.com>, christian.limpach@gmail.com,
+       Stefano.Stabellini@eu.citrix.com, xen-devel@lists.xen.org
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DATE_IN_PAST_06_12,
+       RCVD_IN_DNSWL_MED,RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham
+       version=3.3.1
+Subject: [Xen-devel] [XEN][RFC PATCH V2 16/17] xl: Fix PCI library
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+Quickly fix for PCI library. For the moment each hotplug PCI are add to
+QEMU 0. We need to find a best way to specify which qemu handle the PCI.
+
+Signed-off-by: Julien Grall <julien.grall@citrix.com>
+---
+ tools/libxl/libxl_pci.c |   19 +++++++++++--------
+ 1 files changed, 11 insertions(+), 8 deletions(-)
+
+diff --git a/tools/libxl/libxl_pci.c b/tools/libxl/libxl_pci.c
+index 48986f3..fe02ccd 100644
+--- a/tools/libxl/libxl_pci.c
++++ b/tools/libxl/libxl_pci.c
+@@ -834,13 +834,12 @@ static int qemu_pci_add_xenstore(libxl__gc *gc, uint32_t domid,
+     }
+     libxl__qemu_traditional_cmd(gc, domid, "pci-ins");
+-    rc = libxl__wait_for_device_model(gc, domid, NULL, NULL,
++    rc = libxl__wait_for_device_model(gc, domid, 0, NULL, NULL,
+                                       pci_ins_check, state);
+     path = libxl__sprintf(gc, "/local/domain/0/device-model/%d/parameter",
+                           domid);
+     vdevfn = libxl__xs_read(gc, XBT_NULL, path);
+-    path = libxl__sprintf(gc, "/local/domain/0/device-model/%d/state",
+-                          domid);
++    path = libxl__sprintf(gc, "/local/domain/0/dms/%d/state", domid);
+     if ( rc < 0 )
+         LIBXL__LOG(ctx, LIBXL__LOG_ERROR,
+                    "qemu refused to add device: %s", vdevfn);
+@@ -858,11 +857,13 @@ static int do_pci_add(libxl__gc *gc, uint32_t domid, libxl_device_pci *pcidev, i
+ {
+     libxl_ctx *ctx = libxl__gc_owner(gc);
+     int rc, hvm = 0;
++    /* FIXME: handle multiple device model */
++    libxl_dmid dmid = 0;
+     switch (libxl__domain_type(gc, domid)) {
+     case LIBXL_DOMAIN_TYPE_HVM:
+         hvm = 1;
+-        if (libxl__wait_for_device_model(gc, domid, "running",
++        if (libxl__wait_for_device_model(gc, domid, dmid, "running",
+                                          NULL, NULL, NULL) < 0) {
+             return ERROR_FAIL;
+         }
+@@ -871,7 +872,7 @@ static int do_pci_add(libxl__gc *gc, uint32_t domid, libxl_device_pci *pcidev, i
+                 rc = qemu_pci_add_xenstore(gc, domid, pcidev);
+                 break;
+             case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN:
+-                rc = libxl__qmp_pci_add(gc, domid, pcidev);
++                rc = libxl__qmp_pci_add(gc, domid, dmid, pcidev);
+                 break;
+             default:
+                 return ERROR_INVAL;
+@@ -1136,7 +1137,7 @@ static int qemu_pci_remove_xenstore(libxl__gc *gc, uint32_t domid,
+      * device-model for function 0 */
+     if ( !force && (pcidev->vdevfn & 0x7) == 0 ) {
+         libxl__qemu_traditional_cmd(gc, domid, "pci-rem");
+-        if (libxl__wait_for_device_model(gc, domid, "pci-removed",
++        if (libxl__wait_for_device_model(gc, domid, 0, "pci-removed",
+                                          NULL, NULL, NULL) < 0) {
+             LIBXL__LOG(ctx, LIBXL__LOG_ERROR, "Device Model didn't respond in time");
+             /* This depends on guest operating system acknowledging the
+@@ -1162,6 +1163,8 @@ static int do_pci_remove(libxl__gc *gc, uint32_t domid,
+     libxl_device_pci *assigned;
+     int hvm = 0, rc, num;
+     int stubdomid = 0;
++    /* FIXME: Handle multiple device model */
++    libxl_dmid dmid = 0;
+     assigned = libxl_device_pci_list(ctx, domid, &num);
+     if ( assigned == NULL )
+@@ -1178,7 +1181,7 @@ static int do_pci_remove(libxl__gc *gc, uint32_t domid,
+     switch (libxl__domain_type(gc, domid)) {
+     case LIBXL_DOMAIN_TYPE_HVM:
+         hvm = 1;
+-        if (libxl__wait_for_device_model(gc, domid, "running",
++        if (libxl__wait_for_device_model(gc, domid, dmid, "running",
+                                          NULL, NULL, NULL) < 0)
+             goto out_fail;
+@@ -1187,7 +1190,7 @@ static int do_pci_remove(libxl__gc *gc, uint32_t domid,
+             rc = qemu_pci_remove_xenstore(gc, domid, pcidev, force);
+             break;
+         case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN:
+-            rc = libxl__qmp_pci_del(gc, domid, pcidev);
++            rc = libxl__qmp_pci_del(gc, domid, dmid, pcidev);
+             break;
+         default:
+             rc = ERROR_INVAL;
+-- 
+Julien Grall
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<0daed9ef86102101bbc23a26ac887d751aa8f8ae.1345552068.git.julien.grall@citrix.com> b/config/examples/test/corpus/<0daed9ef86102101bbc23a26ac887d751aa8f8ae.1345552068.git.julien.grall@citrix.com>
new file mode 100644 (file)
index 0000000..f37dd81
--- /dev/null
@@ -0,0 +1,471 @@
+From xen-devel-bounces@lists.xen.org Wed Aug 22 19:59:04 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 22 Aug 2012 19:59:04 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T4G8l-0002pS-D6
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 22 Aug 2012 19:59:04 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T4G5Y-0007Fy-LQ; Wed, 22 Aug 2012 18:55:36 +0000
+Received: from mail27.messagelabs.com ([193.109.254.147])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <julien.grall@citrix.com>) id 1T4G5W-00070k-C3
+       for xen-devel@lists.xen.org; Wed, 22 Aug 2012 18:55:34 +0000
+X-Env-Sender: julien.grall@citrix.com
+X-Msg-Ref: server-12.tower-27.messagelabs.com!1345661712!9781420!8
+X-Originating-IP: [66.165.176.89]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNjU4OTQ=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 8053 invoked from network); 22 Aug 2012 18:55:27 -0000
+Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
+       by server-12.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
+       22 Aug 2012 18:55:27 -0000
+X-IronPort-AV: E=Sophos;i="4.80,809,1344225600"; d="scan'208";a="35484818"
+Received: from ftlpmailmx01.citrite.net ([10.13.107.65])
+       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       22 Aug 2012 14:55:27 -0400
+Received: from meteora.cam.xci-test.com (10.80.248.22) by smtprelay.citrix.com
+       (10.13.107.65) with Microsoft SMTP Server id 8.3.213.0;
+       Wed, 22 Aug 2012 14:55:26 -0400
+From: Julien Grall <julien.grall@citrix.com>
+To: qemu-devel@nongnu.org
+Date: Wed, 22 Aug 2012 13:32:03 +0100
+Message-ID: <0daed9ef86102101bbc23a26ac887d751aa8f8ae.1345552068.git.julien.grall@citrix.com>
+X-Mailer: git-send-email 1.7.2.5
+In-Reply-To: <cover.1345552068.git.julien.grall@citrix.com>
+References: <cover.1345552068.git.julien.grall@citrix.com>
+MIME-Version: 1.0
+Cc: Julien Grall <julien.grall@citrix.com>, christian.limpach@gmail.com,
+       Stefano.Stabellini@eu.citrix.com, xen-devel@lists.xen.org
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DATE_IN_PAST_06_12,
+       RCVD_IN_DNSWL_MED,RP_MATCHES_RCVD autolearn=ham version=3.3.1
+Subject: [Xen-devel] [XEN][RFC PATCH V2 17/17] xl: implement save/restore
+       for multiple device models
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+Each device model will be save/restore one by one.
+
+Signed-off-by: Julien Grall <julien.grall@citrix.com>
+---
+ tools/libxl/libxl.c          |    5 +-
+ tools/libxl/libxl_dom.c      |  143 ++++++++++++++++++++++++++++++++++--------
+ tools/libxl/libxl_internal.h |   16 +++--
+ 3 files changed, 130 insertions(+), 34 deletions(-)
+
+diff --git a/tools/libxl/libxl.c b/tools/libxl/libxl.c
+index 60718b6..e9d14e8 100644
+--- a/tools/libxl/libxl.c
++++ b/tools/libxl/libxl.c
+@@ -416,7 +416,7 @@ int libxl_domain_resume(libxl_ctx *ctx, uint32_t domid, int suspend_cancel)
+     }
+     if (type == LIBXL_DOMAIN_TYPE_HVM) {
+-        rc = libxl__domain_resume_device_model(gc, domid);
++        rc = libxl__domain_resume_device_models(gc, domid);
+         if (rc) {
+             LIBXL__LOG(ctx, LIBXL__LOG_ERROR,
+                        "failed to resume device model for domain %u:%d",
+@@ -852,8 +852,9 @@ int libxl_domain_unpause(libxl_ctx *ctx, uint32_t domid)
+         path = libxl__sprintf(gc, "/local/domain/0/device-model/%d/state", domid);
+         state = libxl__xs_read(gc, XBT_NULL, path);
+         if (state != NULL && !strcmp(state, "paused")) {
++            /* FIXME: handle multiple qemu */
+             libxl__qemu_traditional_cmd(gc, domid, "continue");
+-            libxl__wait_for_device_model(gc, domid, "running",
++            libxl__wait_for_device_model(gc, domid, 0, "running",
+                                          NULL, NULL, NULL);
+         }
+     }
+diff --git a/tools/libxl/libxl_dom.c b/tools/libxl/libxl_dom.c
+index 475fea8..cd07140 100644
+--- a/tools/libxl/libxl_dom.c
++++ b/tools/libxl/libxl_dom.c
+@@ -582,6 +582,7 @@ int libxl__qemu_traditional_cmd(libxl__gc *gc, uint32_t domid,
+ }
+ struct libxl__physmap_info {
++    libxl_dmid device_model;
+     uint64_t phys_offset;
+     uint64_t start_addr;
+     uint64_t size;
+@@ -640,6 +641,10 @@ int libxl__toolstack_restore(uint32_t domid, const uint8_t *buf,
+         pi = (struct libxl__physmap_info*) ptr;
+         ptr += sizeof(struct libxl__physmap_info) + pi->namelen;
++        xs_path = restore_helper(gc, domid, pi->phys_offset, "device_model");
++        ret = libxl__xs_write(gc, 0, xs_path, "%u", pi->device_model);
++        if (ret)
++            return -1;
+         xs_path = restore_helper(gc, domid, pi->phys_offset, "start_addr");
+         ret = libxl__xs_write(gc, 0, xs_path, "%"PRIx64, pi->start_addr);
+         if (ret)
+@@ -839,27 +844,28 @@ static void switch_logdirty_done(libxl__egc *egc,
+ /*----- callbacks, called by xc_domain_save -----*/
+-int libxl__domain_suspend_device_model(libxl__gc *gc,
+-                                       libxl__domain_suspend_state *dss)
++static int libxl__domain_suspend_device_model(libxl__gc *gc,
++                                              libxl_dmid dmid,
++                                              libxl__domain_suspend_state *dss)
+ {
+     libxl_ctx *ctx = libxl__gc_owner(gc);
+     int ret = 0;
+     uint32_t const domid = dss->domid;
+-    const char *const filename = dss->dm_savefile;
++    const char *const filename = libxl__device_model_savefile(gc, domid, dmid);
+     switch (libxl__device_model_version_running(gc, domid)) {
+     case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN_TRADITIONAL: {
+         LIBXL__LOG(ctx, LIBXL__LOG_DEBUG,
+                    "Saving device model state to %s", filename);
+         libxl__qemu_traditional_cmd(gc, domid, "save");
+-        libxl__wait_for_device_model(gc, domid, "paused", NULL, NULL, NULL);
++        libxl__wait_for_device_model(gc, domid, 0, "paused", NULL, NULL, NULL);
+         break;
+     }
+     case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN:
+-        if (libxl__qmp_stop(gc, domid))
++        if (libxl__qmp_stop(gc, domid, dmid))
+             return ERROR_FAIL;
+         /* Save DM state into filename */
+-        ret = libxl__qmp_save(gc, domid, filename);
++        ret = libxl__qmp_save(gc, domid, dmid, filename);
+         if (ret)
+             unlink(filename);
+         break;
+@@ -870,21 +876,67 @@ int libxl__domain_suspend_device_model(libxl__gc *gc,
+     return ret;
+ }
+-int libxl__domain_resume_device_model(libxl__gc *gc, uint32_t domid)
++int libxl__domain_suspend_device_models(libxl__gc *gc,
++                                        libxl__domain_suspend_state *dss)
+ {
++    libxl_dmid *dms = NULL;
++    unsigned int num_dms = 0;
++    unsigned int i;
++    int ret;
++
++    dms = libxl__list_device_models(gc, dss->domid, &num_dms);
++
++    if (!dms)
++        return ERROR_FAIL;
++
++    for (i = 0; i < num_dms; i++)
++    {
++        ret = libxl__domain_suspend_device_model(gc, dms[i], dss);
++        if (ret)
++            return ret;
++    }
++
++    return 0;
++}
++static int libxl__domain_resume_device_model(libxl__gc *gc, libxl_domid domid,
++                                             libxl_dmid dmid)
++{
+     switch (libxl__device_model_version_running(gc, domid)) {
+     case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN_TRADITIONAL: {
+         libxl__qemu_traditional_cmd(gc, domid, "continue");
+-        libxl__wait_for_device_model(gc, domid, "running", NULL, NULL, NULL);
++        libxl__wait_for_device_model(gc, domid, dmid, "running", NULL, NULL,
++                                     NULL);
+         break;
+     }
+     case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN:
+-        if (libxl__qmp_resume(gc, domid))
++        if (libxl__qmp_resume(gc, domid, dmid))
+             return ERROR_FAIL;
+     default:
+         return ERROR_INVAL;
+     }
++    return 0;
++}
++
++int libxl__domain_resume_device_models(libxl__gc *gc,
++                                       libxl_domid domid)
++{
++    libxl_dmid *dms = NULL;
++    unsigned int num_dms = 0;
++    unsigned int i = 0;
++    int ret = 0;
++
++    dms = libxl__list_device_models(gc, domid, &num_dms);
++
++    if (!dms)
++        return ERROR_FAIL;
++
++    for (i = 0; i < num_dms; i++)
++    {
++        ret = libxl__domain_resume_device_model(gc, domid, dms[i]);
++        if (ret)
++            return ret;
++    }
+     return 0;
+ }
+@@ -1014,9 +1066,10 @@ int libxl__domain_suspend_common_callback(void *user)
+  guest_suspended:
+     if (dss->hvm) {
+-        ret = libxl__domain_suspend_device_model(gc, dss);
++        ret = libxl__domain_suspend_device_models(gc, dss);
+         if (ret) {
+-            LOG(ERROR, "libxl__domain_suspend_device_model failed ret=%d", ret);
++            LOG(ERROR, "libxl__domain_suspend_device_models failed ret=%d",
++                ret);
+             return 0;
+         }
+     }
+@@ -1038,6 +1091,7 @@ int libxl__toolstack_save(uint32_t domid, uint8_t **buf,
+     STATE_AO_GC(dss->ao);
+     int i = 0;
+     char *start_addr = NULL, *size = NULL, *phys_offset = NULL, *name = NULL;
++    char *device_model = NULL;
+     unsigned int num = 0;
+     uint32_t count = 0, version = TOOLSTACK_SAVE_VERSION, namelen = 0;
+     uint8_t *ptr = NULL;
+@@ -1068,6 +1122,13 @@ int libxl__toolstack_save(uint32_t domid, uint8_t **buf,
+             return -1;
+         }
++        xs_path = physmap_path(gc, domid, phys_offset, "device_model");
++        device_model = libxl__xs_read(gc, 0, xs_path);
++        if (device_model == NULL) {
++            LOG(ERROR, "%s is NULL", xs_path);
++            return -1;
++        }
++
+         xs_path = physmap_path(gc, domid, phys_offset, "start_addr");
+         start_addr = libxl__xs_read(gc, 0, xs_path);
+         if (start_addr == NULL) {
+@@ -1095,6 +1156,7 @@ int libxl__toolstack_save(uint32_t domid, uint8_t **buf,
+             return -1;
+         ptr = (*buf) + offset;
+         pi = (struct libxl__physmap_info *) ptr;
++        pi->device_model = strtol(device_model, NULL, 10);
+         pi->phys_offset = strtoll(phys_offset, NULL, 16);
+         pi->start_addr = strtoll(start_addr, NULL, 16);
+         pi->size = strtoll(size, NULL, 16);
+@@ -1144,7 +1206,7 @@ static void libxl__remus_domain_checkpoint_callback(void *data)
+     /* This would go into tailbuf. */
+     if (dss->hvm) {
+-        libxl__domain_save_device_model(egc, dss, remus_checkpoint_dm_saved);
++        libxl__domain_save_device_models(egc, dss, remus_checkpoint_dm_saved);
+     } else {
+         remus_checkpoint_dm_saved(egc, dss, 0);
+     }
+@@ -1207,7 +1269,6 @@ void libxl__domain_suspend(libxl__egc *egc, libxl__domain_suspend_state *dss)
+     dss->suspend_eventchn = -1;
+     dss->guest_responded = 0;
+-    dss->dm_savefile = libxl__device_model_savefile(gc, domid);
+     if (r_info != NULL) {
+         dss->interval = r_info->interval;
+@@ -1274,10 +1335,10 @@ void libxl__xc_domain_save_done(libxl__egc *egc, void *dss_void,
+     }
+     if (type == LIBXL_DOMAIN_TYPE_HVM) {
+-        rc = libxl__domain_suspend_device_model(gc, dss);
++        rc = libxl__domain_suspend_device_models(gc, dss);
+         if (rc) goto out;
+         
+-        libxl__domain_save_device_model(egc, dss, domain_suspend_done);
++        libxl__domain_save_device_models(egc, dss, domain_suspend_done);
+         return;
+     }
+@@ -1290,29 +1351,30 @@ out:
+ static void save_device_model_datacopier_done(libxl__egc *egc,
+      libxl__datacopier_state *dc, int onwrite, int errnoval);
+-void libxl__domain_save_device_model(libxl__egc *egc,
+-                                     libxl__domain_suspend_state *dss,
+-                                     libxl__save_device_model_cb *callback)
++static void libxl__domain_save_device_model(libxl__egc *egc,
++                                            libxl__domain_suspend_state *dss)
+ {
+     STATE_AO_GC(dss->ao);
+     struct stat st;
+     uint32_t qemu_state_len;
++    uint32_t num_dms = dss->num_dms;
+     int rc;
+-
+-    dss->save_dm_callback = callback;
++    libxl_dmid dmid = dss->dms[dss->current_dm];
+     /* Convenience aliases */
+-    const char *const filename = dss->dm_savefile;
++    const char *const filename = libxl__device_model_savefile(gc, dss->domid,
++                                                              dmid);
+     const int fd = dss->fd;
+     libxl__datacopier_state *dc = &dss->save_dm_datacopier;
+     memset(dc, 0, sizeof(*dc));
+-    dc->readwhat = GCSPRINTF("qemu save file %s", filename);
++    dc->readwhat = GCSPRINTF("qemu %u save file %s", dmid, filename);
+     dc->ao = ao;
+     dc->readfd = -1;
+     dc->writefd = fd;
+     dc->maxsz = INT_MAX;
+-    dc->copywhat = GCSPRINTF("qemu save file for domain %"PRIu32, dss->domid);
++    dc->copywhat = GCSPRINTF("qemu %u save file for domain %"PRIu32,
++                             dmid, dss->domid);
+     dc->writewhat = "save/migration stream";
+     dc->callback = save_device_model_datacopier_done;
+@@ -1339,8 +1401,16 @@ void libxl__domain_save_device_model(libxl__egc *egc,
+     rc = libxl__datacopier_start(dc);
+     if (rc) goto out;
++    /* FIXME: Ugly fix to add DMS_SIGNATURE */
++    if (dss->current_dm == 0) {
++        libxl__datacopier_prefixdata(egc, dc,
++                                     DMS_SIGNATURE, strlen(DMS_SIGNATURE));
++        libxl__datacopier_prefixdata(egc, dc,
++                                     &num_dms, sizeof (num_dms));
++    }
++
+     libxl__datacopier_prefixdata(egc, dc,
+-                                 QEMU_SIGNATURE, strlen(QEMU_SIGNATURE));
++                                 DM_SIGNATURE, strlen(DM_SIGNATURE));
+     libxl__datacopier_prefixdata(egc, dc,
+                                  &qemu_state_len, sizeof(qemu_state_len));
+@@ -1350,6 +1420,20 @@ void libxl__domain_save_device_model(libxl__egc *egc,
+     save_device_model_datacopier_done(egc, dc, -1, 0);
+ }
++void libxl__domain_save_device_models(libxl__egc *egc,
++                                libxl__domain_suspend_state *dss,
++                                libxl__save_device_model_cb *callback)
++{
++    STATE_AO_GC(dss->ao);
++
++    dss->save_dm_callback = callback;
++    dss->num_dms = 0;
++    dss->current_dm = 0;
++    dss->dms = libxl__list_device_models(gc, dss->domid, &dss->num_dms);
++
++    libxl__domain_save_device_model(egc, dss);
++}
++
+ static void save_device_model_datacopier_done(libxl__egc *egc,
+      libxl__datacopier_state *dc, int onwrite, int errnoval)
+ {
+@@ -1358,7 +1442,9 @@ static void save_device_model_datacopier_done(libxl__egc *egc,
+     STATE_AO_GC(dss->ao);
+     /* Convenience aliases */
+-    const char *const filename = dss->dm_savefile;
++    libxl_dmid dmid = dss->dms[dss->current_dm];
++    const char *const filename = libxl__device_model_savefile(gc, dss->domid,
++                                                              dmid);
+     int our_rc = 0;
+     int rc;
+@@ -1375,7 +1461,12 @@ static void save_device_model_datacopier_done(libxl__egc *egc,
+     rc = libxl__remove_file(gc, filename);
+     if (!our_rc) our_rc = rc;
+-    dss->save_dm_callback(egc, dss, our_rc);
++    dss->current_dm++;
++
++    if (!our_rc && dss->num_dms != dss->current_dm)
++        libxl__domain_save_device_model(egc, dss);
++    else
++        dss->save_dm_callback(egc, dss, our_rc);
+ }
+ static void domain_suspend_done(libxl__egc *egc,
+diff --git a/tools/libxl/libxl_internal.h b/tools/libxl/libxl_internal.h
+index 2e6eedc..9de1465 100644
+--- a/tools/libxl/libxl_internal.h
++++ b/tools/libxl/libxl_internal.h
+@@ -93,7 +93,8 @@
+ #define LIBXL_MIN_DOM0_MEM (128*1024)
+ /* use 0 as the domid of the toolstack domain for now */
+ #define LIBXL_TOOLSTACK_DOMID 0
+-#define QEMU_SIGNATURE "DeviceModelRecord0002"
++#define DMS_SIGNATURE "DeviceModelRecords001"
++#define DM_SIGNATURE "DeviceModelRecord0002"
+ #define STUBDOM_CONSOLE_LOGGING 0
+ #define STUBDOM_CONSOLE_SAVE 1
+ #define STUBDOM_CONSOLE_RESTORE 2
+@@ -896,7 +897,8 @@ _hidden int libxl__domain_rename(libxl__gc *gc, uint32_t domid,
+ _hidden int libxl__toolstack_restore(uint32_t domid, const uint8_t *buf,
+                                      uint32_t size, void *data);
+-_hidden int libxl__domain_resume_device_model(libxl__gc *gc, uint32_t domid);
++_hidden int libxl__domain_resume_device_models(libxl__gc *gc,
++                                               libxl_domid domid);
+ _hidden void libxl__userdata_destroyall(libxl__gc *gc, uint32_t domid);
+@@ -2230,10 +2232,12 @@ struct libxl__domain_suspend_state {
+     int hvm;
+     int xcflags;
+     int guest_responded;
+-    const char *dm_savefile;
+     int interval; /* checkpoint interval (for Remus) */
+     libxl__save_helper_state shs;
+     libxl__logdirty_switch logdirty;
++    unsigned int num_dms;
++    unsigned int current_dm;
++    libxl_dmid *dms;
+     /* private for libxl__domain_save_device_model */
+     libxl__save_device_model_cb *save_dm_callback;
+     libxl__datacopier_state save_dm_datacopier;
+@@ -2535,9 +2539,9 @@ _hidden void libxl__xc_domain_restore_done(libxl__egc *egc, void *dcs_void,
+                                            int rc, int retval, int errnoval);
+ /* Each time the dm needs to be saved, we must call suspend and then save */
+-_hidden int libxl__domain_suspend_device_model(libxl__gc *gc,
+-                                           libxl__domain_suspend_state *dss);
+-_hidden void libxl__domain_save_device_model(libxl__egc *egc,
++_hidden int libxl__domain_suspend_device_models(libxl__gc *gc,
++                                            libxl__domain_suspend_state *dss);
++_hidden void libxl__domain_save_device_models(libxl__egc *egc,
+                                      libxl__domain_suspend_state *dss,
+                                      libxl__save_device_model_cb *callback);
+-- 
+Julien Grall
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1144695277.20120904184345@eikelenboom.it> b/config/examples/test/corpus/<1144695277.20120904184345@eikelenboom.it>
new file mode 100644 (file)
index 0000000..ecae113
--- /dev/null
@@ -0,0 +1,1123 @@
+From xen-devel-bounces@lists.xen.org Tue Sep 04 17:50:09 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Tue, 04 Sep 2012 17:50:09 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T8wK8-00031c-9m
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 04 Sep 2012 17:50:09 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T8wEo-0005NJ-7n; Tue, 04 Sep 2012 16:44:30 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <linux@eikelenboom.it>) id 1T8wEm-0005N6-3A
+       for xen-devel@lists.xen.org; Tue, 04 Sep 2012 16:44:28 +0000
+Received: from [85.158.143.35:52476] by server-2.bemta-4.messagelabs.com id
+       19/FB-21239-BEF26405; Tue, 04 Sep 2012 16:44:27 +0000
+X-Env-Sender: linux@eikelenboom.it
+X-Msg-Ref: server-2.tower-21.messagelabs.com!1346777054!5703510!1
+X-Originating-IP: [188.40.164.121]
+X-SpamReason: No, hits=0.5 required=7.0 tests=BODY_RANDOM_LONG
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 20215 invoked from network); 4 Sep 2012 16:44:16 -0000
+Received: from static.121.164.40.188.clients.your-server.de (HELO
+       smtp.eikelenboom.it) (188.40.164.121)
+       by server-2.tower-21.messagelabs.com with AES256-SHA encrypted SMTP;
+       4 Sep 2012 16:44:16 -0000
+Received: from 128-64-ftth.onsneteindhoven.nl ([88.159.64.128]:55637
+       helo=[172.16.1.20])
+       by smtp.eikelenboom.it with esmtpsa (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72) (envelope-from <linux@eikelenboom.it>)
+       id 1T8wB5-0004jo-8A; Tue, 04 Sep 2012 18:40:39 +0200
+Date: Tue, 4 Sep 2012 18:43:45 +0200
+From: Sander Eikelenboom <linux@eikelenboom.it>
+Organization: Eikelenboom IT services
+X-Priority: 3 (Normal)
+Message-ID: <1144695277.20120904184345@eikelenboom.it>
+To: Wei Wang <wei.wang2@amd.com>
+In-Reply-To: <5044CAD7.8030800@amd.com>
+References: <40501859.20120902104331@eikelenboom.it>
+       <CC6932C2.3D99D%keir.xen@gmail.com>
+       <217459398.20120902171441@eikelenboom.it>
+       <5044CAD7.8030800@amd.com>
+MIME-Version: 1.0
+Content-Type: multipart/mixed;
+ boundary="----------0C30E31DB2590EB56"
+Cc: Keir Fraser <keir.xen@gmail.com>, Jan Beulich <JBeulich@suse.com>,
+       Santosh Jodh <Santosh.Jodh@citrix.com>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] Using debug-key 'o:  Dump IOMMU p2m table,
+       locks up machine
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+------------0C30E31DB2590EB56
+Content-Type: text/plain; charset=us-ascii
+Content-Transfer-Encoding: 7bit
+
+Hello Wei,
+
+Monday, September 3, 2012, 5:20:55 PM, you wrote:
+
+> On 09/02/2012 05:14 PM, Sander Eikelenboom wrote:
+>> Sunday, September 2, 2012, 4:58:58 PM, you wrote:
+>>
+>>> On 02/09/2012 09:43, "Sander Eikelenboom"<linux@eikelenboom.it>  wrote:
+>>
+>>>>> Quite simply, there likely needs to be more tracing on the IOMMU fault path.
+>>>>> That's a separate concern from your keyhandler of course, but just saying
+>>>>> I'd be looking for the former rather than the latter, for diagnosing
+>>>>> Sander's bug.
+>>>>
+>>>> Are there any printk's I could add to get more relevant info about the AMD-Vi:
+>>>> IO_PAGE_FAULT ?
+>>
+>>> No really straightforward one. I think we need a per-IOMMU-type handler to
+>>> walk the IOMMU page table for a given virtual address, and dump every
+>>> page-table-entry on the path. Like an IOMMU version of show_page_walk().
+>>> Personally I would suspect this is more useful than the dump-everything
+>>> handlers: just give a *full* *detailed* walk for the actually interesting
+>>> virtual address (the one faulted on).
+>>
+>>>> I have attached new output from xl dmesg, this time with iommu=debug on (the
+>>>> option changed from 4.1 to 4.2).
+>>
+>>> Not easy to glean any more from that, without extra tracing such as
+>>> described above, and/or digging into the guest to find what driver-side
+>>> actions are causing the faults.
+>>
+>> OK, too bad!
+>> With xen 4.1 i haven't experienced those page faults, but a diff between /xen/drivers/passthrough/amd in both trees show quite some changes :(
+
+> Did you also update xen tools accordingly? Sometime I also saw a few 
+> IO_PAGE_FAULTs came from nic if my tools version and HV version did not 
+> match. But using recent 4.2 and corresponding xl, my tests went well.
+> BTW: You could also try iommu=no-sharept to see if it helps.
+
+Tried it and it doesn't help.
+I now even got a "xl dmesg" which shows a IO_PAGE_FAULT occuring very early, before any toolstack or guest can be involved:
+
+(XEN) [2012-09-04 15:51:17] AMD-Vi: Setup I/O page table: device id = 0x0a05, root table = 0x24d84b000, domain = 0, paging mode = 3
+(XEN) [2012-09-04 15:51:17] AMD-Vi: Setup I/O page table: device id = 0x0a06, root table = 0x24d84b000, domain = 0, paging mode = 3
+(XEN) [2012-09-04 15:51:17] AMD-Vi: Setup I/O page table: device id = 0x0a07, root table = 0x24d84b000, domain = 0, paging mode = 3
+(XEN) [2012-09-04 15:51:17] AMD-Vi: Setup I/O page table: device id = 0x0b00, root table = 0x24d84b000, domain = 0, paging mode = 3
+(XEN) [2012-09-04 15:51:17] Scrubbing Free RAM: ...........................<0>AMD-Vi: IO_PAGE_FAULT: domain = 0, device id = 0x0a06, fault address = 0xc2c2c2c0
+(XEN) [2012-09-04 15:51:18] ............................................done.
+(XEN) [2012-09-04 15:51:19] Initial low memory virq threshold set at 0x4000 pages.
+(XEN) [2012-09-04 15:51:19] Std. Loglevel: All
+(XEN) [2012-09-04 15:51:19] Guest Loglevel: All
+(XEN) [2012-09-04 15:51:19] Xen is relinquishing VGA console.
+
+
+Complete dmesg attached.
+
+> Thanks,
+> Wei
+
+>>>   -- Keir
+>>
+>>>>
+>>>>
+>>>>>   -- Keir
+>>>>
+>>
+>>
+>>
+>>
+>>
+>>
+
+
+
+
+
+
+-- 
+Best regards,
+ Sander                            mailto:linux@eikelenboom.it
+------------0C30E31DB2590EB56
+Content-Type: text/plain;
+ name="xl-dmesg.txt"
+Content-transfer-encoding: base64
+Content-Disposition: attachment;
+ filename="xl-dmesg.txt"
+
+IF9fICBfXyAgICAgICAgICAgIF8gIF8gICAgX19fXyAgICBfX18gICAgICAgICAgICAgIF8g
+IF8gICAgICAgICAgICAgICAgICAgICANCiBcIFwvIC9fX18gXyBfXyAgIHwgfHwgfCAgfF9f
+XyBcICAvIF8gXCAgICBfIF9fIF9fX3wgfHwgfCAgICAgXyBfXyAgXyBfXyBfX18gDQogIFwg
+IC8vIF8gXCAnXyBcICB8IHx8IHxfICAgX18pIHx8IHwgfCB8X198ICdfXy8gX198IHx8IHxf
+IF9ffCAnXyBcfCAnX18vIF8gXA0KICAvICBcICBfXy8gfCB8IHwgfF9fICAgX3wgLyBfXy8g
+fCB8X3wgfF9ffCB8IHwgKF9ffF9fICAgX3xfX3wgfF8pIHwgfCB8ICBfXy8NCiAvXy9cX1xf
+X198X3wgfF98ICAgIHxffChfKV9fX19fKF8pX19fLyAgIHxffCAgXF9fX3wgIHxffCAgICB8
+IC5fXy98X3wgIFxfX198DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
+ICAgICAgICAgICAgICAgICAgICAgICAgfF98ICAgICAgICAgICAgIA0KKFhFTikgWGVuIHZl
+cnNpb24gNC4yLjAtcmM0LXByZSAocm9vdEBkeW5kbnMub3JnKSAoZ2NjIChEZWJpYW4gNC40
+LjUtOCkgNC40LjUpIE1vbiBTZXAgIDMgMjI6MzY6MzAgQ0VTVCAyMDEyDQooWEVOKSBMYXRl
+c3QgQ2hhbmdlU2V0OiBUdWUgQXVnIDI4IDIyOjQwOjQ1IDIwMTIgKzAxMDAgMjU3ODY6YTBi
+NWY4MTAyYTAwDQooWEVOKSBCb290bG9hZGVyOiBHUlVCIDEuOTgrMjAxMDA4MDQtMTQrc3F1
+ZWV6ZTENCihYRU4pIENvbW1hbmQgbGluZTogZG9tMF9tZW09MTAyNE0sbWF4OjEwMjRNIGxv
+Z2x2bD1hbGwgbG9nbHZsX2d1ZXN0PWFsbCBjb25zb2xlX3RpbWVzdGFtcHMgdmdhPWdmeC0x
+MjgweDEwMjR4MzIgY3B1aWRsZSBjcHVmcmVxPXhlbiBub3JlYm9vdCBkZWJ1ZyBsYXBpYz1k
+ZWJ1ZyBhcGljX3ZlcmJvc2l0eT1kZWJ1ZyBhcGljPWRlYnVnIGlvbW11PW9uLHZlcmJvc2Us
+ZGVidWcsbm8tc2hhcmVwdCBjb20xPTM4NDAwLDhuMSBjb25zb2xlPXZnYSxjb20xDQooWEVO
+KSBWaWRlbyBpbmZvcm1hdGlvbjoNCihYRU4pICBWR0EgaXMgZ3JhcGhpY3MgbW9kZSAxMjgw
+eDEwMjQsIDMyIGJwcA0KKFhFTikgIFZCRS9EREMgbWV0aG9kczogVjI7IEVESUQgdHJhbnNm
+ZXIgdGltZTogMSBzZWNvbmRzDQooWEVOKSBEaXNjIGluZm9ybWF0aW9uOg0KKFhFTikgIEZv
+dW5kIDIgTUJSIHNpZ25hdHVyZXMNCihYRU4pICBGb3VuZCAyIEVERCBpbmZvcm1hdGlvbiBz
+dHJ1Y3R1cmVzDQooWEVOKSBYZW4tZTgyMCBSQU0gbWFwOg0KKFhFTikgIDAwMDAwMDAwMDAw
+MDAwMDAgLSAwMDAwMDAwMDAwMDliMDAwICh1c2FibGUpDQooWEVOKSAgMDAwMDAwMDAwMDA5
+YjAwMCAtIDAwMDAwMDAwMDAwYTAwMDAgKHJlc2VydmVkKQ0KKFhFTikgIDAwMDAwMDAwMDAw
+ZTQwMDAgLSAwMDAwMDAwMDAwMTAwMDAwIChyZXNlcnZlZCkNCihYRU4pICAwMDAwMDAwMDAw
+MTAwMDAwIC0gMDAwMDAwMDBhZmU5MDAwMCAodXNhYmxlKQ0KKFhFTikgIDAwMDAwMDAwYWZl
+OTAwMDAgLSAwMDAwMDAwMGFmZTllMDAwIChBQ1BJIGRhdGEpDQooWEVOKSAgMDAwMDAwMDBh
+ZmU5ZTAwMCAtIDAwMDAwMDAwYWZlZTAwMDAgKEFDUEkgTlZTKQ0KKFhFTikgIDAwMDAwMDAw
+YWZlZTAwMDAgLSAwMDAwMDAwMGFmZjAwMDAwIChyZXNlcnZlZCkNCihYRU4pICAwMDAwMDAw
+MGZmZTAwMDAwIC0gMDAwMDAwMDEwMDAwMDAwMCAocmVzZXJ2ZWQpDQooWEVOKSAgMDAwMDAw
+MDEwMDAwMDAwMCAtIDAwMDAwMDAyNTAwMDAwMDAgKHVzYWJsZSkNCihYRU4pIEFDUEk6IFJT
+RFAgMDAwRkIxMjAsIDAwMTQgKHIwIEFDUElBTSkNCihYRU4pIEFDUEk6IFJTRFQgQUZFOTAw
+MDAsIDAwNDggKHIxIE1TSSAgICBPRU1TTElDICAyMDEwMDYyMiBNU0ZUICAgICAgIDk3KQ0K
+KFhFTikgQUNQSTogRkFDUCBBRkU5MDIwMCwgMDA4NCAocjEgNzY0ME1TIEE3NjQwMTAwIDIw
+MTAwNjIyIE1TRlQgICAgICAgOTcpDQooWEVOKSBBQ1BJOiBEU0RUIEFGRTkwNUUwLCA5NDQ5
+IChyMSAgQTc2NDAgQTc2NDAxMDAgICAgICAxMDAgSU5UTCAyMDA1MTExNykNCihYRU4pIEFD
+UEk6IEZBQ1MgQUZFOUUwMDAsIDAwNDANCihYRU4pIEFDUEk6IEFQSUMgQUZFOTAzOTAsIDAw
+ODggKHIxIDc2NDBNUyBBNzY0MDEwMCAyMDEwMDYyMiBNU0ZUICAgICAgIDk3KQ0KKFhFTikg
+QUNQSTogTUNGRyBBRkU5MDQyMCwgMDAzQyAocjEgNzY0ME1TIE9FTU1DRkcgIDIwMTAwNjIy
+IE1TRlQgICAgICAgOTcpDQooWEVOKSBBQ1BJOiBTTElDIEFGRTkwNDYwLCAwMTc2IChyMSBN
+U0kgICAgT0VNU0xJQyAgMjAxMDA2MjIgTVNGVCAgICAgICA5NykNCihYRU4pIEFDUEk6IE9F
+TUIgQUZFOUUwNDAsIDAwNzIgKHIxIDc2NDBNUyBBNzY0MDEwMCAyMDEwMDYyMiBNU0ZUICAg
+ICAgIDk3KQ0KKFhFTikgQUNQSTogU1JBVCBBRkU5QTVFMCwgMDEwOCAocjMgQU1EICAgIEZB
+TV9GXzEwICAgICAgICAyIEFNRCAgICAgICAgIDEpDQooWEVOKSBBQ1BJOiBIUEVUIEFGRTlB
+NkYwLCAwMDM4IChyMSA3NjQwTVMgT0VNSFBFVCAgMjAxMDA2MjIgTVNGVCAgICAgICA5NykN
+CihYRU4pIEFDUEk6IElWUlMgQUZFOUE3MzAsIDAwRjggKHIxICBBTUQgICAgIFJEODkwUyAg
+IDIwMjAzMSBBTUQgICAgICAgICAwKQ0KKFhFTikgQUNQSTogU1NEVCBBRkU5QTgzMCwgMERB
+NCAocjEgQSBNIEkgIFBPV0VSTk9XICAgICAgICAxIEFNRCAgICAgICAgIDEpDQooWEVOKSBT
+eXN0ZW0gUkFNOiA4MTkwTUIgKDgzODY3MzJrQikNCihYRU4pIFNSQVQ6IFBYTSAwIC0+IEFQ
+SUMgMCAtPiBOb2RlIDANCihYRU4pIFNSQVQ6IFBYTSAwIC0+IEFQSUMgMSAtPiBOb2RlIDAN
+CihYRU4pIFNSQVQ6IFBYTSAwIC0+IEFQSUMgMiAtPiBOb2RlIDANCihYRU4pIFNSQVQ6IFBY
+TSAwIC0+IEFQSUMgMyAtPiBOb2RlIDANCihYRU4pIFNSQVQ6IFBYTSAwIC0+IEFQSUMgNCAt
+PiBOb2RlIDANCihYRU4pIFNSQVQ6IFBYTSAwIC0+IEFQSUMgNSAtPiBOb2RlIDANCihYRU4p
+IFNSQVQ6IE5vZGUgMCBQWE0gMCAwLWEwMDAwDQooWEVOKSBTUkFUOiBOb2RlIDAgUFhNIDAg
+MTAwMDAwLWIwMDAwMDAwDQooWEVOKSBTUkFUOiBOb2RlIDAgUFhNIDAgMTAwMDAwMDAwLTI1
+MDAwMDAwMA0KKFhFTikgTlVNQTogQWxsb2NhdGVkIG1lbW5vZGVtYXAgZnJvbSAyNGQ5YTQw
+MDAgLSAyNGQ5YTcwMDANCihYRU4pIE5VTUE6IFVzaW5nIDggZm9yIHRoZSBoYXNoIHNoaWZ0
+Lg0KKFhFTikgRG9tYWluIGhlYXAgaW5pdGlhbGlzZWQNCihYRU4pIHZlc2FmYjogZnJhbWVi
+dWZmZXIgYXQgMHhmYjAwMDAwMCwgbWFwcGVkIHRvIDB4ZmZmZjgyYzAwMDAwMDAwMCwgdXNp
+bmcgNjE0NGssIHRvdGFsIDE0MzM2aw0KKFhFTikgdmVzYWZiOiBtb2RlIGlzIDEyODB4MTAy
+NHgzMiwgbGluZWxlbmd0aD01MTIwLCBmb250IDh4MTYNCihYRU4pIHZlc2FmYjogVHJ1ZWNv
+bG9yOiBzaXplPTg6ODo4OjgsIHNoaWZ0PTI0OjE2Ojg6MA0KKFhFTikgZm91bmQgU01QIE1Q
+LXRhYmxlIGF0IDAwMGZmNzgwDQooWEVOKSBETUkgcHJlc2VudC4NCihYRU4pIEFQSUMgYm9v
+dCBzdGF0ZSBpcyAneGFwaWMnDQooWEVOKSBVc2luZyBBUElDIGRyaXZlciBkZWZhdWx0DQoo
+WEVOKSBBQ1BJOiBQTS1UaW1lciBJTyBQb3J0OiAweDgwOA0KKFhFTikgQUNQSTogQUNQSSBT
+TEVFUCBJTkZPOiBwbTF4X2NudFs4MDQsMF0sIHBtMXhfZXZ0WzgwMCwwXQ0KKFhFTikgQUNQ
+STogICAgICAgICAgICAgICAgICB3YWtldXBfdmVjW2FmZTllMDBjXSwgdmVjX3NpemVbMjBd
+DQooWEVOKSBBQ1BJOiBMb2NhbCBBUElDIGFkZHJlc3MgMHhmZWUwMDAwMA0KKFhFTikgQUNQ
+STogTEFQSUMgKGFjcGlfaWRbMHgwMV0gbGFwaWNfaWRbMHgwMF0gZW5hYmxlZCkNCihYRU4p
+IFByb2Nlc3NvciAjMCAwOjEwIEFQSUMgdmVyc2lvbiAxNg0KKFhFTikgQUNQSTogTEFQSUMg
+KGFjcGlfaWRbMHgwMl0gbGFwaWNfaWRbMHgwMV0gZW5hYmxlZCkNCihYRU4pIFByb2Nlc3Nv
+ciAjMSAwOjEwIEFQSUMgdmVyc2lvbiAxNg0KKFhFTikgQUNQSTogTEFQSUMgKGFjcGlfaWRb
+MHgwM10gbGFwaWNfaWRbMHgwMl0gZW5hYmxlZCkNCihYRU4pIFByb2Nlc3NvciAjMiAwOjEw
+IEFQSUMgdmVyc2lvbiAxNg0KKFhFTikgQUNQSTogTEFQSUMgKGFjcGlfaWRbMHgwNF0gbGFw
+aWNfaWRbMHgwM10gZW5hYmxlZCkNCihYRU4pIFByb2Nlc3NvciAjMyAwOjEwIEFQSUMgdmVy
+c2lvbiAxNg0KKFhFTikgQUNQSTogTEFQSUMgKGFjcGlfaWRbMHgwNV0gbGFwaWNfaWRbMHgw
+NF0gZW5hYmxlZCkNCihYRU4pIFByb2Nlc3NvciAjNCAwOjEwIEFQSUMgdmVyc2lvbiAxNg0K
+KFhFTikgQUNQSTogTEFQSUMgKGFjcGlfaWRbMHgwNl0gbGFwaWNfaWRbMHgwNV0gZW5hYmxl
+ZCkNCihYRU4pIFByb2Nlc3NvciAjNSAwOjEwIEFQSUMgdmVyc2lvbiAxNg0KKFhFTikgQUNQ
+STogSU9BUElDIChpZFsweDA2XSBhZGRyZXNzWzB4ZmVjMDAwMDBdIGdzaV9iYXNlWzBdKQ0K
+KFhFTikgSU9BUElDWzBdOiBhcGljX2lkIDYsIHZlcnNpb24gMzMsIGFkZHJlc3MgMHhmZWMw
+MDAwMCwgR1NJIDAtMjMNCihYRU4pIEFDUEk6IElPQVBJQyAoaWRbMHgwN10gYWRkcmVzc1sw
+eGZlYzIwMDAwXSBnc2lfYmFzZVsyNF0pDQooWEVOKSBJT0FQSUNbMV06IGFwaWNfaWQgNywg
+dmVyc2lvbiAzMywgYWRkcmVzcyAweGZlYzIwMDAwLCBHU0kgMjQtNTUNCihYRU4pIEFDUEk6
+IElOVF9TUkNfT1ZSIChidXMgMCBidXNfaXJxIDAgZ2xvYmFsX2lycSAyIGRmbCBkZmwpDQoo
+WEVOKSBBQ1BJOiBJTlRfU1JDX09WUiAoYnVzIDAgYnVzX2lycSA5IGdsb2JhbF9pcnEgOSBs
+b3cgbGV2ZWwpDQooWEVOKSBBQ1BJOiBJUlEwIHVzZWQgYnkgb3ZlcnJpZGUuDQooWEVOKSBB
+Q1BJOiBJUlEyIHVzZWQgYnkgb3ZlcnJpZGUuDQooWEVOKSBBQ1BJOiBJUlE5IHVzZWQgYnkg
+b3ZlcnJpZGUuDQooWEVOKSBFbmFibGluZyBBUElDIG1vZGU6ICBGbGF0LiAgVXNpbmcgMiBJ
+L08gQVBJQ3MNCihYRU4pIEFDUEk6IEhQRVQgaWQ6IDB4ODMwMCBiYXNlOiAweGZlZDAwMDAw
+DQooWEVOKSBUYWJsZSBpcyBub3QgZm91bmQhDQooWEVOKSBVc2luZyBBQ1BJIChNQURUKSBm
+b3IgU01QIGNvbmZpZ3VyYXRpb24gaW5mb3JtYXRpb24NCihYRU4pIFNNUDogQWxsb3dpbmcg
+NiBDUFVzICgwIGhvdHBsdWcgQ1BVcykNCihYRU4pIG1hcHBlZCBBUElDIHRvIGZmZmY4MmMz
+ZmZkZmUwMDAgKGZlZTAwMDAwKQ0KKFhFTikgbWFwcGVkIElPQVBJQyB0byBmZmZmODJjM2Zm
+ZGZkMDAwIChmZWMwMDAwMCkNCihYRU4pIG1hcHBlZCBJT0FQSUMgdG8gZmZmZjgyYzNmZmRm
+YzAwMCAoZmVjMjAwMDApDQooWEVOKSBJUlEgbGltaXRzOiA1NiBHU0ksIDExMTIgTVNJL01T
+SS1YDQooWEVOKSBVc2luZyBzY2hlZHVsZXI6IFNNUCBDcmVkaXQgU2NoZWR1bGVyIChjcmVk
+aXQpDQooWEVOKSBEZXRlY3RlZCAzMjAwLjE0OCBNSHogcHJvY2Vzc29yLg0KKFhFTikgSW5p
+dGluZyBtZW1vcnkgc2hhcmluZy4NCihYRU4pIEFNRCBGYW0xMGggbWFjaGluZSBjaGVjayBy
+ZXBvcnRpbmcgZW5hYmxlZA0KKFhFTikgUENJOiBNQ0ZHIGNvbmZpZ3VyYXRpb24gMDogYmFz
+ZSBlMDAwMDAwMCBzZWdtZW50IDAwMDAgYnVzZXMgMDAgLSBmZg0KKFhFTikgUENJOiBOb3Qg
+dXNpbmcgTUNGRyBmb3Igc2VnbWVudCAwMDAwIGJ1cyAwMC1mZg0KKFhFTikgQU1ELVZpOiBG
+b3VuZCBNU0kgY2FwYWJpbGl0eSBibG9jayBhdCAweDU0DQooWEVOKSBBTUQtVmk6IEFDUEkg
+VGFibGU6DQooWEVOKSBBTUQtVmk6ICBTaWduYXR1cmUgSVZSUw0KKFhFTikgQU1ELVZpOiAg
+TGVuZ3RoIDB4ZjgNCihYRU4pIEFNRC1WaTogIFJldmlzaW9uIDB4MQ0KKFhFTikgQU1ELVZp
+OiAgQ2hlY2tTdW0gMHg2ZQ0KKFhFTikgQU1ELVZpOiAgT0VNX0lkIEFNRCAgDQooWEVOKSBB
+TUQtVmk6ICBPRU1fVGFibGVfSWQgUkQ4OTBTDQooWEVOKSBBTUQtVmk6ICBPRU1fUmV2aXNp
+b24gMHgyMDIwMzENCihYRU4pIEFNRC1WaTogIENyZWF0b3JfSWQgQU1EIA0KKFhFTikgQU1E
+LVZpOiAgQ3JlYXRvcl9SZXZpc2lvbiAweDANCihYRU4pIEFNRC1WaTogSVZSUyBCbG9jazoN
+CihYRU4pIEFNRC1WaTogIFR5cGUgMHgxMA0KKFhFTikgQU1ELVZpOiAgRmxhZ3MgMHgzZQ0K
+KFhFTikgQU1ELVZpOiAgTGVuZ3RoIDB4YzgNCihYRU4pIEFNRC1WaTogIERldl9JZCAweDIN
+CihYRU4pIEFNRC1WaTogSVZIRCBEZXZpY2UgRW50cnk6DQooWEVOKSBBTUQtVmk6ICBUeXBl
+IDB4Mw0KKFhFTikgQU1ELVZpOiAgRGV2X0lkIDB4MA0KKFhFTikgQU1ELVZpOiAgRmxhZ3Mg
+MHgwDQooWEVOKSBBTUQtVmk6ICBEZXZfSWQgUmFuZ2U6IDB4MCAtPiAweDINCihYRU4pIEFN
+RC1WaTogSVZIRCBEZXZpY2UgRW50cnk6DQooWEVOKSBBTUQtVmk6ICBUeXBlIDB4Mg0KKFhF
+TikgQU1ELVZpOiAgRGV2X0lkIDB4MTANCihYRU4pIEFNRC1WaTogIEZsYWdzIDB4MA0KKFhF
+TikgQU1ELVZpOiBJVkhEIERldmljZSBFbnRyeToNCihYRU4pIEFNRC1WaTogIFR5cGUgMHgy
+DQooWEVOKSBBTUQtVmk6ICBEZXZfSWQgMHhiMDANCihYRU4pIEFNRC1WaTogIEZsYWdzIDB4
+MA0KKFhFTikgQU1ELVZpOiBJVkhEIERldmljZSBFbnRyeToNCihYRU4pIEFNRC1WaTogIFR5
+cGUgMHgyDQooWEVOKSBBTUQtVmk6ICBEZXZfSWQgMHgxOA0KKFhFTikgQU1ELVZpOiAgRmxh
+Z3MgMHgwDQooWEVOKSBBTUQtVmk6IElWSEQgRGV2aWNlIEVudHJ5Og0KKFhFTikgQU1ELVZp
+OiAgVHlwZSAweDMNCihYRU4pIEFNRC1WaTogIERldl9JZCAweGEwMA0KKFhFTikgQU1ELVZp
+OiAgRmxhZ3MgMHgwDQooWEVOKSBBTUQtVmk6ICBEZXZfSWQgUmFuZ2U6IDB4YTAwIC0+IDB4
+YTA3DQooWEVOKSBBTUQtVmk6IElWSEQgRGV2aWNlIEVudHJ5Og0KKFhFTikgQU1ELVZpOiAg
+VHlwZSAweDINCihYRU4pIEFNRC1WaTogIERldl9JZCAweDI4DQooWEVOKSBBTUQtVmk6ICBG
+bGFncyAweDANCihYRU4pIEFNRC1WaTogSVZIRCBEZXZpY2UgRW50cnk6DQooWEVOKSBBTUQt
+Vmk6ICBUeXBlIDB4Mg0KKFhFTikgQU1ELVZpOiAgRGV2X0lkIDB4OTAwDQooWEVOKSBBTUQt
+Vmk6ICBGbGFncyAweDANCihYRU4pIEFNRC1WaTogSVZIRCBEZXZpY2UgRW50cnk6DQooWEVO
+KSBBTUQtVmk6ICBUeXBlIDB4Mg0KKFhFTikgQU1ELVZpOiAgRGV2X0lkIDB4MzANCihYRU4p
+IEFNRC1WaTogIEZsYWdzIDB4MA0KKFhFTikgQU1ELVZpOiBJVkhEIERldmljZSBFbnRyeToN
+CihYRU4pIEFNRC1WaTogIFR5cGUgMHgyDQooWEVOKSBBTUQtVmk6ICBEZXZfSWQgMHg4MDAN
+CihYRU4pIEFNRC1WaTogIEZsYWdzIDB4MA0KKFhFTikgQU1ELVZpOiBJVkhEIERldmljZSBF
+bnRyeToNCihYRU4pIEFNRC1WaTogIFR5cGUgMHgyDQooWEVOKSBBTUQtVmk6ICBEZXZfSWQg
+MHg1MA0KKFhFTikgQU1ELVZpOiAgRmxhZ3MgMHgwDQooWEVOKSBBTUQtVmk6IElWSEQgRGV2
+aWNlIEVudHJ5Og0KKFhFTikgQU1ELVZpOiAgVHlwZSAweDINCihYRU4pIEFNRC1WaTogIERl
+dl9JZCAweDcwMA0KKFhFTikgQU1ELVZpOiAgRmxhZ3MgMHgwDQooWEVOKSBBTUQtVmk6IElW
+SEQgRGV2aWNlIEVudHJ5Og0KKFhFTikgQU1ELVZpOiAgVHlwZSAweDINCihYRU4pIEFNRC1W
+aTogIERldl9JZCAweDU4DQooWEVOKSBBTUQtVmk6ICBGbGFncyAweDANCihYRU4pIEFNRC1W
+aTogSVZIRCBEZXZpY2UgRW50cnk6DQooWEVOKSBBTUQtVmk6ICBUeXBlIDB4Mw0KKFhFTikg
+QU1ELVZpOiAgRGV2X0lkIDB4NjAwDQooWEVOKSBBTUQtVmk6ICBGbGFncyAweDANCihYRU4p
+IEFNRC1WaTogIERldl9JZCBSYW5nZTogMHg2MDAgLT4gMHg2MDENCihYRU4pIEFNRC1WaTog
+SVZIRCBEZXZpY2UgRW50cnk6DQooWEVOKSBBTUQtVmk6ICBUeXBlIDB4Mg0KKFhFTikgQU1E
+LVZpOiAgRGV2X0lkIDB4NjANCihYRU4pIEFNRC1WaTogIEZsYWdzIDB4MA0KKFhFTikgQU1E
+LVZpOiBJVkhEIERldmljZSBFbnRyeToNCihYRU4pIEFNRC1WaTogIFR5cGUgMHgyDQooWEVO
+KSBBTUQtVmk6ICBEZXZfSWQgMHg1MDANCihYRU4pIEFNRC1WaTogIEZsYWdzIDB4MA0KKFhF
+TikgQU1ELVZpOiBJVkhEIERldmljZSBFbnRyeToNCihYRU4pIEFNRC1WaTogIFR5cGUgMHgy
+DQooWEVOKSBBTUQtVmk6ICBEZXZfSWQgMHg2OA0KKFhFTikgQU1ELVZpOiAgRmxhZ3MgMHgw
+DQooWEVOKSBBTUQtVmk6IElWSEQgRGV2aWNlIEVudHJ5Og0KKFhFTikgQU1ELVZpOiAgVHlw
+ZSAweDMNCihYRU4pIEFNRC1WaTogIERldl9JZCAweDQwMA0KKFhFTikgQU1ELVZpOiAgRmxh
+Z3MgMHgwDQooWEVOKSBBTUQtVmk6ICBEZXZfSWQgUmFuZ2U6IDB4NDAwIC0+IDB4NDA3DQoo
+WEVOKSBBTUQtVmk6IElWSEQgRGV2aWNlIEVudHJ5Og0KKFhFTikgQU1ELVZpOiAgVHlwZSAw
+eDINCihYRU4pIEFNRC1WaTogIERldl9JZCAweDg4DQooWEVOKSBBTUQtVmk6ICBGbGFncyAw
+eDANCihYRU4pIEFNRC1WaTogSVZIRCBEZXZpY2UgRW50cnk6DQooWEVOKSBBTUQtVmk6ICBU
+eXBlIDB4Mw0KKFhFTikgQU1ELVZpOiAgRGV2X0lkIDB4OTANCihYRU4pIEFNRC1WaTogIEZs
+YWdzIDB4MA0KKFhFTikgQU1ELVZpOiAgRGV2X0lkIFJhbmdlOiAweDkwIC0+IDB4OTINCihY
+RU4pIEFNRC1WaTogSVZIRCBEZXZpY2UgRW50cnk6DQooWEVOKSBBTUQtVmk6ICBUeXBlIDB4
+Mw0KKFhFTikgQU1ELVZpOiAgRGV2X0lkIDB4OTgNCihYRU4pIEFNRC1WaTogIEZsYWdzIDB4
+MA0KKFhFTikgQU1ELVZpOiAgRGV2X0lkIFJhbmdlOiAweDk4IC0+IDB4OWENCihYRU4pIEFN
+RC1WaTogSVZIRCBEZXZpY2UgRW50cnk6DQooWEVOKSBBTUQtVmk6ICBUeXBlIDB4Mg0KKFhF
+TikgQU1ELVZpOiAgRGV2X0lkIDB4YTANCihYRU4pIEFNRC1WaTogIEZsYWdzIDB4ZDcNCihY
+RU4pIEFNRC1WaTogSVZIRCBEZXZpY2UgRW50cnk6DQooWEVOKSBBTUQtVmk6ICBUeXBlIDB4
+Mg0KKFhFTikgQU1ELVZpOiAgRGV2X0lkIDB4YTMNCihYRU4pIEFNRC1WaTogIEZsYWdzIDB4
+MA0KKFhFTikgQU1ELVZpOiBJVkhEIERldmljZSBFbnRyeToNCihYRU4pIEFNRC1WaTogIFR5
+cGUgMHgyDQooWEVOKSBBTUQtVmk6ICBEZXZfSWQgMHhhNA0KKFhFTikgQU1ELVZpOiAgRmxh
+Z3MgMHgwDQooWEVOKSBBTUQtVmk6IElWSEQgRGV2aWNlIEVudHJ5Og0KKFhFTikgQU1ELVZp
+OiAgVHlwZSAweDANCihYRU4pIEFNRC1WaTogIERldl9JZCAweDANCihYRU4pIEFNRC1WaTog
+IEZsYWdzIDB4MA0KKFhFTikgQU1ELVZpOiBJVkhEIERldmljZSBFbnRyeToNCihYRU4pIEFN
+RC1WaTogIFR5cGUgMHg0Mw0KKFhFTikgQU1ELVZpOiAgRGV2X0lkIDB4MzAwDQooWEVOKSBB
+TUQtVmk6ICBGbGFncyAweDANCihYRU4pIEFNRC1WaTogIERldl9JZCBSYW5nZTogMHgzMDAg
+LT4gMHgzZmYNCihYRU4pIEFNRC1WaTogIERldl9JZCBBbGlhczogMHhhNA0KKFhFTikgQU1E
+LVZpOiBJVkhEIERldmljZSBFbnRyeToNCihYRU4pIEFNRC1WaTogIFR5cGUgMHgyDQooWEVO
+KSBBTUQtVmk6ICBEZXZfSWQgMHhhNQ0KKFhFTikgQU1ELVZpOiAgRmxhZ3MgMHgwDQooWEVO
+KSBBTUQtVmk6IElWSEQgRGV2aWNlIEVudHJ5Og0KKFhFTikgQU1ELVZpOiAgVHlwZSAweDIN
+CihYRU4pIEFNRC1WaTogIERldl9JZCAweGE4DQooWEVOKSBBTUQtVmk6ICBGbGFncyAweDAN
+CihYRU4pIEFNRC1WaTogSVZIRCBEZXZpY2UgRW50cnk6DQooWEVOKSBBTUQtVmk6ICBUeXBl
+IDB4Mg0KKFhFTikgQU1ELVZpOiAgRGV2X0lkIDB4YTkNCihYRU4pIEFNRC1WaTogIEZsYWdz
+IDB4MA0KKFhFTikgQU1ELVZpOiBJVkhEIERldmljZSBFbnRyeToNCihYRU4pIEFNRC1WaTog
+IFR5cGUgMHgyDQooWEVOKSBBTUQtVmk6ICBEZXZfSWQgMHgxMDANCihYRU4pIEFNRC1WaTog
+IEZsYWdzIDB4MA0KKFhFTikgQU1ELVZpOiBJVkhEIERldmljZSBFbnRyeToNCihYRU4pIEFN
+RC1WaTogIFR5cGUgMHgzDQooWEVOKSBBTUQtVmk6ICBEZXZfSWQgMHhiMA0KKFhFTikgQU1E
+LVZpOiAgRmxhZ3MgMHgwDQooWEVOKSBBTUQtVmk6ICBEZXZfSWQgUmFuZ2U6IDB4YjAgLT4g
+MHhiMg0KKFhFTikgQU1ELVZpOiBJVkhEIERldmljZSBFbnRyeToNCihYRU4pIEFNRC1WaTog
+IFR5cGUgMHgwDQooWEVOKSBBTUQtVmk6ICBEZXZfSWQgMHgwDQooWEVOKSBBTUQtVmk6ICBG
+bGFncyAweDANCihYRU4pIEFNRC1WaTogSVZIRCBEZXZpY2UgRW50cnk6DQooWEVOKSBBTUQt
+Vmk6ICBUeXBlIDB4NDgNCihYRU4pIEFNRC1WaTogIERldl9JZCAweDANCihYRU4pIEFNRC1W
+aTogIEZsYWdzIDB4ZDcNCihYRU4pIEFNRC1WaTogSVZIRCBEZXZpY2UgRW50cnk6DQooWEVO
+KSBBTUQtVmk6ICBUeXBlIDB4NDgNCihYRU4pIEFNRC1WaTogIERldl9JZCAweDANCihYRU4p
+IEFNRC1WaTogIEZsYWdzIDB4MA0KKFhFTikgQU1ELVZpOiBJT01NVSAwIEVuYWJsZWQuDQoo
+WEVOKSBBTUQtVmk6IEVuYWJsaW5nIGdsb2JhbCB2ZWN0b3IgbWFwDQooWEVOKSBJL08gdmly
+dHVhbGlzYXRpb24gZW5hYmxlZA0KKFhFTikgIC0gRG9tMCBtb2RlOiBSZWxheGVkDQooWEVO
+KSBHZXR0aW5nIFZFUlNJT046IDgwMDUwMDEwDQooWEVOKSBHZXR0aW5nIFZFUlNJT046IDgw
+MDUwMDEwDQooWEVOKSBHZXR0aW5nIElEOiAwDQooWEVOKSBHZXR0aW5nIExWVDA6IDcwMA0K
+KFhFTikgR2V0dGluZyBMVlQxOiA0MDANCihYRU4pIGVuYWJsZWQgRXh0SU5UIG9uIENQVSMw
+DQooWEVOKSBFU1IgdmFsdWUgYmVmb3JlIGVuYWJsaW5nIHZlY3RvcjogMHgwMDAwMDAwNCAg
+YWZ0ZXI6IDB4MDAwMDAwMDANCihYRU4pIEVOQUJMSU5HIElPLUFQSUMgSVJRcw0KKFhFTikg
+IC0+IFVzaW5nIG5ldyBBQ0sgbWV0aG9kDQooWEVOKSBpbml0IElPX0FQSUMgSVJRcw0KKFhF
+TikgIElPLUFQSUMgKGFwaWNpZC1waW4pIDYtMCwgNi0xNiwgNi0xNywgNi0xOCwgNi0xOSwg
+Ni0yMCwgNi0yMSwgNi0yMiwgNi0yMywgNy0wLCA3LTEsIDctMiwgNy0zLCA3LTQsIDctNSwg
+Ny02LCA3LTcsIDctOCwgNy05LCA3LTEwLCA3LTExLCA3LTEyLCA3LTEzLCA3LTE0LCA3LTE1
+LCA3LTE2LCA3LTE3LCA3LTE4LCA3LTE5LCA3LTIwLCA3LTIxLCA3LTIyLCA3LTIzLCA3LTI0
+LCA3LTI1LCA3LTI2LCA3LTI3LCA3LTI4LCA3LTI5LCA3LTMwLCA3LTMxIG5vdCBjb25uZWN0
+ZWQuDQooWEVOKSAuLlRJTUVSOiB2ZWN0b3I9MHhGMCBhcGljMT0wIHBpbjE9MiBhcGljMj0t
+MSBwaW4yPS0xDQooWEVOKSBudW1iZXIgb2YgTVAgSVJRIHNvdXJjZXM6IDE1Lg0KKFhFTikg
+bnVtYmVyIG9mIElPLUFQSUMgIzYgcmVnaXN0ZXJzOiAyNC4NCihYRU4pIG51bWJlciBvZiBJ
+Ty1BUElDICM3IHJlZ2lzdGVyczogMzIuDQooWEVOKSB0ZXN0aW5nIHRoZSBJTyBBUElDLi4u
+Li4uLi4uLi4uLi4uLi4uLi4uLi4NCihYRU4pIElPIEFQSUMgIzYuLi4uLi4NCihYRU4pIC4u
+Li4gcmVnaXN0ZXIgIzAwOiAwNjAwMDAwMA0KKFhFTikgLi4uLi4uLiAgICA6IHBoeXNpY2Fs
+IEFQSUMgaWQ6IDA2DQooWEVOKSAuLi4uLi4uICAgIDogRGVsaXZlcnkgVHlwZTogMA0KKFhF
+TikgLi4uLi4uLiAgICA6IExUUyAgICAgICAgICA6IDANCihYRU4pIC4uLi4gcmVnaXN0ZXIg
+IzAxOiAwMDE3ODAyMQ0KKFhFTikgLi4uLi4uLiAgICAgOiBtYXggcmVkaXJlY3Rpb24gZW50
+cmllczogMDAxNw0KKFhFTikgLi4uLi4uLiAgICAgOiBQUlEgaW1wbGVtZW50ZWQ6IDENCihY
+RU4pIC4uLi4uLi4gICAgIDogSU8gQVBJQyB2ZXJzaW9uOiAwMDIxDQooWEVOKSAuLi4uIHJl
+Z2lzdGVyICMwMjogMDYwMDAwMDANCihYRU4pIC4uLi4uLi4gICAgIDogYXJiaXRyYXRpb246
+IDA2DQooWEVOKSAuLi4uIHJlZ2lzdGVyICMwMzogMDcwMDAwMDANCihYRU4pIC4uLi4uLi4g
+ICAgIDogQm9vdCBEVCAgICA6IDANCihYRU4pIC4uLi4gSVJRIHJlZGlyZWN0aW9uIHRhYmxl
+Og0KKFhFTikgIE5SIExvZyBQaHkgTWFzayBUcmlnIElSUiBQb2wgU3RhdCBEZXN0IERlbGkg
+VmVjdDogICANCihYRU4pICAwMCAwMDAgMDAgIDEgICAgMCAgICAwICAgMCAgIDAgICAgMCAg
+ICAwICAgIDAwDQooWEVOKSAgMDEgMDAxIDAxICAwICAgIDAgICAgMCAgIDAgICAwICAgIDEg
+ICAgMSAgICAzMA0KKFhFTikgIDAyIDAwMSAwMSAgMCAgICAwICAgIDAgICAwICAgMCAgICAx
+ICAgIDEgICAgRjANCihYRU4pICAwMyAwMDEgMDEgIDAgICAgMCAgICAwICAgMCAgIDAgICAg
+MSAgICAxICAgIDM4DQooWEVOKSAgMDQgMDAxIDAxICAwICAgIDAgICAgMCAgIDAgICAwICAg
+IDEgICAgMSAgICBGMQ0KKFhFTikgIDA1IDAwMSAwMSAgMCAgICAwICAgIDAgICAwICAgMCAg
+ICAxICAgIDEgICAgNDANCihYRU4pICAwNiAwMDEgMDEgIDAgICAgMCAgICAwICAgMCAgIDAg
+ICAgMSAgICAxICAgIDQ4DQooWEVOKSAgMDcgMDAxIDAxICAwICAgIDAgICAgMCAgIDAgICAw
+ICAgIDEgICAgMSAgICA1MA0KKFhFTikgIDA4IDAwMSAwMSAgMCAgICAwICAgIDAgICAwICAg
+MCAgICAxICAgIDEgICAgNTgNCihYRU4pICAwOSAwMDEgMDEgIDEgICAgMSAgICAwICAgMSAg
+IDAgICAgMSAgICAxICAgIDYwDQooWEVOKSAgMGEgMDAxIDAxICAwICAgIDAgICAgMCAgIDAg
+ICAwICAgIDEgICAgMSAgICA2OA0KKFhFTikgIDBiIDAwMSAwMSAgMCAgICAwICAgIDAgICAw
+ICAgMCAgICAxICAgIDEgICAgNzANCihYRU4pICAwYyAwMDEgMDEgIDAgICAgMCAgICAwICAg
+MCAgIDAgICAgMSAgICAxICAgIDc4DQooWEVOKSAgMGQgMDAxIDAxICAwICAgIDAgICAgMCAg
+IDAgICAwICAgIDEgICAgMSAgICA4OA0KKFhFTikgIDBlIDAwMSAwMSAgMCAgICAwICAgIDAg
+ICAwICAgMCAgICAxICAgIDEgICAgOTANCihYRU4pICAwZiAwMDEgMDEgIDAgICAgMCAgICAw
+ICAgMCAgIDAgICAgMSAgICAxICAgIDk4DQooWEVOKSAgMTAgMDAwIDAwICAxICAgIDAgICAg
+MCAgIDAgICAwICAgIDAgICAgMCAgICAwMA0KKFhFTikgIDExIDAwMCAwMCAgMSAgICAwICAg
+IDAgICAwICAgMCAgICAwICAgIDAgICAgMDANCihYRU4pICAxMiAwMDAgMDAgIDEgICAgMCAg
+ICAwICAgMCAgIDAgICAgMCAgICAwICAgIDAwDQooWEVOKSAgMTMgMDAwIDAwICAxICAgIDAg
+ICAgMCAgIDAgICAwICAgIDAgICAgMCAgICAwMA0KKFhFTikgIDE0IDAwMCAwMCAgMSAgICAw
+ICAgIDAgICAwICAgMCAgICAwICAgIDAgICAgMDANCihYRU4pICAxNSAwMDAgMDAgIDEgICAg
+MCAgICAwICAgMCAgIDAgICAgMCAgICAwICAgIDAwDQooWEVOKSAgMTYgMDAwIDAwICAxICAg
+IDAgICAgMCAgIDAgICAwICAgIDAgICAgMCAgICAwMA0KKFhFTikgIDE3IDAwMCAwMCAgMSAg
+ICAwICAgIDAgICAwICAgMCAgICAwICAgIDAgICAgMDANCihYRU4pIElPIEFQSUMgIzcuLi4u
+Li4NCihYRU4pIC4uLi4gcmVnaXN0ZXIgIzAwOiAwNzAwMDAwMA0KKFhFTikgLi4uLi4uLiAg
+ICA6IHBoeXNpY2FsIEFQSUMgaWQ6IDA3DQooWEVOKSAuLi4uLi4uICAgIDogRGVsaXZlcnkg
+VHlwZTogMA0KKFhFTikgLi4uLi4uLiAgICA6IExUUyAgICAgICAgICA6IDANCihYRU4pIC4u
+Li4gcmVnaXN0ZXIgIzAxOiAwMDFGODAyMQ0KKFhFTikgLi4uLi4uLiAgICAgOiBtYXggcmVk
+aXJlY3Rpb24gZW50cmllczogMDAxRg0KKFhFTikgLi4uLi4uLiAgICAgOiBQUlEgaW1wbGVt
+ZW50ZWQ6IDENCihYRU4pIC4uLi4uLi4gICAgIDogSU8gQVBJQyB2ZXJzaW9uOiAwMDIxDQoo
+WEVOKSAuLi4uIHJlZ2lzdGVyICMwMjogMDAwMDAwMDANCihYRU4pIC4uLi4uLi4gICAgIDog
+YXJiaXRyYXRpb246IDAwDQooWEVOKSAuLi4uIElSUSByZWRpcmVjdGlvbiB0YWJsZToNCihY
+RU4pICBOUiBMb2cgUGh5IE1hc2sgVHJpZyBJUlIgUG9sIFN0YXQgRGVzdCBEZWxpIFZlY3Q6
+ICAgDQooWEVOKSAgMDAgMDAwIDAwICAxICAgIDAgICAgMCAgIDAgICAwICAgIDAgICAgMCAg
+ICAwMA0KKFhFTikgIDAxIDAwMCAwMCAgMSAgICAwICAgIDAgICAwICAgMCAgICAwICAgIDAg
+ICAgMDANCihYRU4pICAwMiAwMDAgMDAgIDEgICAgMCAgICAwICAgMCAgIDAgICAgMCAgICAw
+ICAgIDAwDQooWEVOKSAgMDMgMDAwIDAwICAxICAgIDAgICAgMCAgIDAgICAwICAgIDAgICAg
+MCAgICAwMA0KKFhFTikgIDA0IDAwMCAwMCAgMSAgICAwICAgIDAgICAwICAgMCAgICAwICAg
+IDAgICAgMDANCihYRU4pICAwNSAwMDAgMDAgIDEgICAgMCAgICAwICAgMCAgIDAgICAgMCAg
+ICAwICAgIDAwDQooWEVOKSAgMDYgMDAwIDAwICAxICAgIDAgICAgMCAgIDAgICAwICAgIDAg
+ICAgMCAgICAwMA0KKFhFTikgIDA3IDAwMCAwMCAgMSAgICAwICAgIDAgICAwICAgMCAgICAw
+ICAgIDAgICAgMDANCihYRU4pICAwOCAwMDAgMDAgIDEgICAgMCAgICAwICAgMCAgIDAgICAg
+MCAgICAwICAgIDAwDQooWEVOKSAgMDkgMDAwIDAwICAxICAgIDAgICAgMCAgIDAgICAwICAg
+IDAgICAgMCAgICAwMA0KKFhFTikgIDBhIDAwMCAwMCAgMSAgICAwICAgIDAgICAwICAgMCAg
+ICAwICAgIDAgICAgMDANCihYRU4pICAwYiAwMDAgMDAgIDEgICAgMCAgICAwICAgMCAgIDAg
+ICAgMCAgICAwICAgIDAwDQooWEVOKSAgMGMgMDAwIDAwICAxICAgIDAgICAgMCAgIDAgICAw
+ICAgIDAgICAgMCAgICAwMA0KKFhFTikgIDBkIDAwMCAwMCAgMSAgICAwICAgIDAgICAwICAg
+MCAgICAwICAgIDAgICAgMDANCihYRU4pICAwZSAwMDAgMDAgIDEgICAgMCAgICAwICAgMCAg
+IDAgICAgMCAgICAwICAgIDAwDQooWEVOKSAgMGYgMDAwIDAwICAxICAgIDAgICAgMCAgIDAg
+ICAwICAgIDAgICAgMCAgICAwMA0KKFhFTikgIDEwIDAwMCAwMCAgMSAgICAwICAgIDAgICAw
+ICAgMCAgICAwICAgIDAgICAgMDANCihYRU4pICAxMSAwMDAgMDAgIDEgICAgMCAgICAwICAg
+MCAgIDAgICAgMCAgICAwICAgIDAwDQooWEVOKSAgMTIgMDAwIDAwICAxICAgIDAgICAgMCAg
+IDAgICAwICAgIDAgICAgMCAgICAwMA0KKFhFTikgIDEzIDAwMCAwMCAgMSAgICAwICAgIDAg
+ICAwICAgMCAgICAwICAgIDAgICAgMDANCihYRU4pICAxNCAwMDAgMDAgIDEgICAgMCAgICAw
+ICAgMCAgIDAgICAgMCAgICAwICAgIDAwDQooWEVOKSAgMTUgMDAwIDAwICAxICAgIDAgICAg
+MCAgIDAgICAwICAgIDAgICAgMCAgICAwMA0KKFhFTikgIDE2IDAwMCAwMCAgMSAgICAwICAg
+IDAgICAwICAgMCAgICAwICAgIDAgICAgMDANCihYRU4pICAxNyAwMDAgMDAgIDEgICAgMCAg
+ICAwICAgMCAgIDAgICAgMCAgICAwICAgIDAwDQooWEVOKSAgMTggMDAwIDAwICAxICAgIDAg
+ICAgMCAgIDAgICAwICAgIDAgICAgMCAgICAwMA0KKFhFTikgIDE5IDAwMCAwMCAgMSAgICAw
+ICAgIDAgICAwICAgMCAgICAwICAgIDAgICAgMDANCihYRU4pICAxYSAwMDAgMDAgIDEgICAg
+MCAgICAwICAgMCAgIDAgICAgMCAgICAwICAgIDAwDQooWEVOKSAgMWIgMDAwIDAwICAxICAg
+IDAgICAgMCAgIDAgICAwICAgIDAgICAgMCAgICAwMA0KKFhFTikgIDFjIDAwMCAwMCAgMSAg
+ICAwICAgIDAgICAwICAgMCAgICAwICAgIDAgICAgMDANCihYRU4pICAxZCAwMDAgMDAgIDEg
+ICAgMCAgICAwICAgMCAgIDAgICAgMCAgICAwICAgIDAwDQooWEVOKSAgMWUgMDAwIDAwICAx
+ICAgIDAgICAgMCAgIDAgICAwICAgIDAgICAgMCAgICAwMA0KKFhFTikgIDFmIDAwMCAwMCAg
+MSAgICAwICAgIDAgICAwICAgMCAgICAwICAgIDAgICAgMDANCihYRU4pIFVzaW5nIHZlY3Rv
+ci1iYXNlZCBpbmRleGluZw0KKFhFTikgSVJRIHRvIHBpbiBtYXBwaW5nczoNCihYRU4pIElS
+UTI0MCAtPiAwOjINCihYRU4pIElSUTQ4IC0+IDA6MQ0KKFhFTikgSVJRNTYgLT4gMDozDQoo
+WEVOKSBJUlEyNDEgLT4gMDo0DQooWEVOKSBJUlE2NCAtPiAwOjUNCihYRU4pIElSUTcyIC0+
+IDA6Ng0KKFhFTikgSVJRODAgLT4gMDo3DQooWEVOKSBJUlE4OCAtPiAwOjgNCihYRU4pIElS
+UTk2IC0+IDA6OQ0KKFhFTikgSVJRMTA0IC0+IDA6MTANCihYRU4pIElSUTExMiAtPiAwOjEx
+DQooWEVOKSBJUlExMjAgLT4gMDoxMg0KKFhFTikgSVJRMTM2IC0+IDA6MTMNCihYRU4pIElS
+UTE0NCAtPiAwOjE0DQooWEVOKSBJUlExNTIgLT4gMDoxNQ0KKFhFTikgLi4uLi4uLi4uLi4u
+Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uIGRvbmUuDQooWEVOKSBVc2luZyBsb2NhbCBBUElD
+IHRpbWVyIGludGVycnVwdHMuDQooWEVOKSBjYWxpYnJhdGluZyBBUElDIHRpbWVyIC4uLg0K
+KFhFTikgLi4uLi4gQ1BVIGNsb2NrIHNwZWVkIGlzIDMyMDAuMTM1NyBNSHouDQooWEVOKSAu
+Li4uLiBob3N0IGJ1cyBjbG9jayBzcGVlZCBpcyAyMDAuMDA4MyBNSHouDQooWEVOKSAuLi4u
+LiBidXNfc2NhbGUgPSAweDAwMDBDQ0Q3DQooWEVOKSBbMjAxMi0wOS0wNCAxNTo1MToxNV0g
+UGxhdGZvcm0gdGltZXIgaXMgMTQuMzE4TUh6IEhQRVQNCihYRU4pIFsyMDEyLTA5LTA0IDE1
+OjUxOjE1XSBBbGxvY2F0ZWQgY29uc29sZSByaW5nIG9mIDY0IEtpQi4NCihYRU4pIFsyMDEy
+LTA5LTA0IDE1OjUxOjE1XSBIVk06IEFTSURzIGVuYWJsZWQuDQooWEVOKSBbMjAxMi0wOS0w
+NCAxNTo1MToxNV0gU1ZNOiBTdXBwb3J0ZWQgYWR2YW5jZWQgZmVhdHVyZXM6DQooWEVOKSBb
+MjAxMi0wOS0wNCAxNTo1MToxNV0gIC0gTmVzdGVkIFBhZ2UgVGFibGVzIChOUFQpDQooWEVO
+KSBbMjAxMi0wOS0wNCAxNTo1MToxNV0gIC0gTGFzdCBCcmFuY2ggUmVjb3JkIChMQlIpIFZp
+cnR1YWxpc2F0aW9uDQooWEVOKSBbMjAxMi0wOS0wNCAxNTo1MToxNV0gIC0gTmV4dC1SSVAg
+U2F2ZWQgb24gI1ZNRVhJVA0KKFhFTikgWzIwMTItMDktMDQgMTU6NTE6MTVdICAtIFBhdXNl
+LUludGVyY2VwdCBGaWx0ZXINCihYRU4pIFsyMDEyLTA5LTA0IDE1OjUxOjE1XSBIVk06IFNW
+TSBlbmFibGVkDQooWEVOKSBbMjAxMi0wOS0wNCAxNTo1MToxNV0gSFZNOiBIYXJkd2FyZSBB
+c3Npc3RlZCBQYWdpbmcgKEhBUCkgZGV0ZWN0ZWQNCihYRU4pIFsyMDEyLTA5LTA0IDE1OjUx
+OjE1XSBIVk06IEhBUCBwYWdlIHNpemVzOiA0a0IsIDJNQiwgMUdCDQooWEVOKSBbMjAxMi0w
+OS0wNCAxNTo1MToxNF0gbWFza2VkIEV4dElOVCBvbiBDUFUjMQ0KKFhFTikgWzIwMTItMDkt
+MDQgMTU6NTE6MTVdIG1pY3JvY29kZTogY29sbGVjdF9jcHVfaW5mbzogcGF0Y2hfaWQ9MHgx
+MDAwMGJmDQooWEVOKSBbMjAxMi0wOS0wNCAxNTo1MToxNF0gbWFza2VkIEV4dElOVCBvbiBD
+UFUjMg0KKFhFTikgWzIwMTItMDktMDQgMTU6NTE6MTVdIG1pY3JvY29kZTogY29sbGVjdF9j
+cHVfaW5mbzogcGF0Y2hfaWQ9MHgxMDAwMGJmDQooWEVOKSBbMjAxMi0wOS0wNCAxNTo1MTox
+NF0gbWFza2VkIEV4dElOVCBvbiBDUFUjMw0KKFhFTikgWzIwMTItMDktMDQgMTU6NTE6MTVd
+IG1pY3JvY29kZTogY29sbGVjdF9jcHVfaW5mbzogcGF0Y2hfaWQ9MHgxMDAwMGJmDQooWEVO
+KSBbMjAxMi0wOS0wNCAxNTo1MToxNF0gbWFza2VkIEV4dElOVCBvbiBDUFUjNA0KKFhFTikg
+WzIwMTItMDktMDQgMTU6NTE6MTVdIG1pY3JvY29kZTogY29sbGVjdF9jcHVfaW5mbzogcGF0
+Y2hfaWQ9MHgxMDAwMGJmDQooWEVOKSBbMjAxMi0wOS0wNCAxNTo1MToxNF0gbWFza2VkIEV4
+dElOVCBvbiBDUFUjNQ0KKFhFTikgWzIwMTItMDktMDQgMTU6NTE6MTVdIEJyb3VnaHQgdXAg
+NiBDUFVzDQooWEVOKSBbMjAxMi0wOS0wNCAxNTo1MToxNV0gbWljcm9jb2RlOiBjb2xsZWN0
+X2NwdV9pbmZvOiBwYXRjaF9pZD0weDEwMDAwYmYNCihYRU4pIFsyMDEyLTA5LTA0IDE1OjUx
+OjE1XSBIUEVUJ3MgTVNJIG1vZGUgaGFzbid0IGJlZW4gc3VwcG9ydGVkIHdoZW4gSW50ZXJy
+dXB0IFJlbWFwcGluZyBpcyBlbmFibGVkLg0KKFhFTikgWzIwMTItMDktMDQgMTU6NTE6MTVd
+IEFDUEkgc2xlZXAgbW9kZXM6IFMzDQooWEVOKSBbMjAxMi0wOS0wNCAxNTo1MToxNV0gTUNB
+OiBVc2UgaHcgdGhyZXNob2xkaW5nIHRvIGFkanVzdCBwb2xsaW5nIGZyZXF1ZW5jeQ0KKFhF
+TikgWzIwMTItMDktMDQgMTU6NTE6MTVdIG1jaGVja19wb2xsOiBNYWNoaW5lIGNoZWNrIHBv
+bGxpbmcgdGltZXIgc3RhcnRlZC4NCihYRU4pIFsyMDEyLTA5LTA0IDE1OjUxOjE1XSBYZW5v
+cHJvZmlsZTogRmFpbGVkIHRvIHNldHVwIElCUyBMVlQgb2Zmc2V0LCBJQlNDVEwgPSAweGZm
+ZmZmZmZmDQooWEVOKSBbMjAxMi0wOS0wNCAxNTo1MToxNV0gKioqIExPQURJTkcgRE9NQUlO
+IDAgKioqDQooWEVOKSBbMjAxMi0wOS0wNCAxNTo1MToxNl0gZWxmX3BhcnNlX2JpbmFyeTog
+cGhkcjogcGFkZHI9MHgxMDAwMDAwIG1lbXN6PTB4ZDZhMDAwDQooWEVOKSBbMjAxMi0wOS0w
+NCAxNTo1MToxNl0gZWxmX3BhcnNlX2JpbmFyeTogcGhkcjogcGFkZHI9MHgxZTAwMDAwIG1l
+bXN6PTB4ZGIwZTgNCihYRU4pIFsyMDEyLTA5LTA0IDE1OjUxOjE2XSBlbGZfcGFyc2VfYmlu
+YXJ5OiBwaGRyOiBwYWRkcj0weDFlZGMwMDAgbWVtc3o9MHgxM2MwMA0KKFhFTikgWzIwMTIt
+MDktMDQgMTU6NTE6MTZdIGVsZl9wYXJzZV9iaW5hcnk6IHBoZHI6IHBhZGRyPTB4MWVmMDAw
+MCBtZW1zej0weGRlNTAwMA0KKFhFTikgWzIwMTItMDktMDQgMTU6NTE6MTZdIGVsZl9wYXJz
+ZV9iaW5hcnk6IG1lbW9yeTogMHgxMDAwMDAwIC0+IDB4MmNkNTAwMA0KKFhFTikgWzIwMTIt
+MDktMDQgMTU6NTE6MTZdIGVsZl94ZW5fcGFyc2Vfbm90ZTogR1VFU1RfT1MgPSAibGludXgi
+DQooWEVOKSBbMjAxMi0wOS0wNCAxNTo1MToxNl0gZWxmX3hlbl9wYXJzZV9ub3RlOiBHVUVT
+VF9WRVJTSU9OID0gIjIuNiINCihYRU4pIFsyMDEyLTA5LTA0IDE1OjUxOjE2XSBlbGZfeGVu
+X3BhcnNlX25vdGU6IFhFTl9WRVJTSU9OID0gInhlbi0zLjAiDQooWEVOKSBbMjAxMi0wOS0w
+NCAxNTo1MToxNl0gZWxmX3hlbl9wYXJzZV9ub3RlOiBWSVJUX0JBU0UgPSAweGZmZmZmZmZm
+ODAwMDAwMDANCihYRU4pIFsyMDEyLTA5LTA0IDE1OjUxOjE2XSBlbGZfeGVuX3BhcnNlX25v
+dGU6IEVOVFJZID0gMHhmZmZmZmZmZjgxZWYwMjEwDQooWEVOKSBbMjAxMi0wOS0wNCAxNTo1
+MToxNl0gZWxmX3hlbl9wYXJzZV9ub3RlOiBIWVBFUkNBTExfUEFHRSA9IDB4ZmZmZmZmZmY4
+MTAwMTAwMA0KKFhFTikgWzIwMTItMDktMDQgMTU6NTE6MTZdIGVsZl94ZW5fcGFyc2Vfbm90
+ZTogRkVBVFVSRVMgPSAiIXdyaXRhYmxlX3BhZ2VfdGFibGVzfHBhZV9wZ2Rpcl9hYm92ZV80
+Z2IiDQooWEVOKSBbMjAxMi0wOS0wNCAxNTo1MToxNl0gZWxmX3hlbl9wYXJzZV9ub3RlOiBQ
+QUVfTU9ERSA9ICJ5ZXMiDQooWEVOKSBbMjAxMi0wOS0wNCAxNTo1MToxNl0gZWxmX3hlbl9w
+YXJzZV9ub3RlOiBMT0FERVIgPSAiZ2VuZXJpYyINCihYRU4pIFsyMDEyLTA5LTA0IDE1OjUx
+OjE2XSBlbGZfeGVuX3BhcnNlX25vdGU6IHVua25vd24geGVuIGVsZiBub3RlICgweGQpDQoo
+WEVOKSBbMjAxMi0wOS0wNCAxNTo1MToxNl0gZWxmX3hlbl9wYXJzZV9ub3RlOiBTVVNQRU5E
+X0NBTkNFTCA9IDB4MQ0KKFhFTikgWzIwMTItMDktMDQgMTU6NTE6MTZdIGVsZl94ZW5fcGFy
+c2Vfbm90ZTogSFZfU1RBUlRfTE9XID0gMHhmZmZmODAwMDAwMDAwMDAwDQooWEVOKSBbMjAx
+Mi0wOS0wNCAxNTo1MToxNl0gZWxmX3hlbl9wYXJzZV9ub3RlOiBQQUREUl9PRkZTRVQgPSAw
+eDANCihYRU4pIFsyMDEyLTA5LTA0IDE1OjUxOjE2XSBlbGZfeGVuX2FkZHJfY2FsY19jaGVj
+azogYWRkcmVzc2VzOg0KKFhFTikgWzIwMTItMDktMDQgMTU6NTE6MTZdICAgICB2aXJ0X2Jh
+c2UgICAgICAgID0gMHhmZmZmZmZmZjgwMDAwMDAwDQooWEVOKSBbMjAxMi0wOS0wNCAxNTo1
+MToxNl0gICAgIGVsZl9wYWRkcl9vZmZzZXQgPSAweDANCihYRU4pIFsyMDEyLTA5LTA0IDE1
+OjUxOjE2XSAgICAgdmlydF9vZmZzZXQgICAgICA9IDB4ZmZmZmZmZmY4MDAwMDAwMA0KKFhF
+TikgWzIwMTItMDktMDQgMTU6NTE6MTZdICAgICB2aXJ0X2tzdGFydCAgICAgID0gMHhmZmZm
+ZmZmZjgxMDAwMDAwDQooWEVOKSBbMjAxMi0wOS0wNCAxNTo1MToxNl0gICAgIHZpcnRfa2Vu
+ZCAgICAgICAgPSAweGZmZmZmZmZmODJjZDUwMDANCihYRU4pIFsyMDEyLTA5LTA0IDE1OjUx
+OjE2XSAgICAgdmlydF9lbnRyeSAgICAgICA9IDB4ZmZmZmZmZmY4MWVmMDIxMA0KKFhFTikg
+WzIwMTItMDktMDQgMTU6NTE6MTZdICAgICBwMm1fYmFzZSAgICAgICAgID0gMHhmZmZmZmZm
+ZmZmZmZmZmZmDQooWEVOKSBbMjAxMi0wOS0wNCAxNTo1MToxNl0gIFhlbiAga2VybmVsOiA2
+NC1iaXQsIGxzYiwgY29tcGF0MzINCihYRU4pIFsyMDEyLTA5LTA0IDE1OjUxOjE2XSAgRG9t
+MCBrZXJuZWw6IDY0LWJpdCwgUEFFLCBsc2IsIHBhZGRyIDB4MTAwMDAwMCAtPiAweDJjZDUw
+MDANCihYRU4pIFsyMDEyLTA5LTA0IDE1OjUxOjE2XSBQSFlTSUNBTCBNRU1PUlkgQVJSQU5H
+RU1FTlQ6DQooWEVOKSBbMjAxMi0wOS0wNCAxNTo1MToxNl0gIERvbTAgYWxsb2MuOiAgIDAw
+MDAwMDAyNDAwMDAwMDAtPjAwMDAwMDAyNDQwMDAwMDAgKDI0MjQyOCBwYWdlcyB0byBiZSBh
+bGxvY2F0ZWQpDQooWEVOKSBbMjAxMi0wOS0wNCAxNTo1MToxNl0gIEluaXQuIHJhbWRpc2s6
+IDAwMDAwMDAyNGYyZmMwMDAtPjAwMDAwMDAyNGZmZmY4MDANCihYRU4pIFsyMDEyLTA5LTA0
+IDE1OjUxOjE2XSBWSVJUVUFMIE1FTU9SWSBBUlJBTkdFTUVOVDoNCihYRU4pIFsyMDEyLTA5
+LTA0IDE1OjUxOjE2XSAgTG9hZGVkIGtlcm5lbDogZmZmZmZmZmY4MTAwMDAwMC0+ZmZmZmZm
+ZmY4MmNkNTAwMA0KKFhFTikgWzIwMTItMDktMDQgMTU6NTE6MTZdICBJbml0LiByYW1kaXNr
+OiBmZmZmZmZmZjgyY2Q1MDAwLT5mZmZmZmZmZjgzOWQ4ODAwDQooWEVOKSBbMjAxMi0wOS0w
+NCAxNTo1MToxNl0gIFBoeXMtTWFjaCBtYXA6IGZmZmZmZmZmODM5ZDkwMDAtPmZmZmZmZmZm
+ODNiZDkwMDANCihYRU4pIFsyMDEyLTA5LTA0IDE1OjUxOjE2XSAgU3RhcnQgaW5mbzogICAg
+ZmZmZmZmZmY4M2JkOTAwMC0+ZmZmZmZmZmY4M2JkOTRiNA0KKFhFTikgWzIwMTItMDktMDQg
+MTU6NTE6MTZdICBQYWdlIHRhYmxlczogICBmZmZmZmZmZjgzYmRhMDAwLT5mZmZmZmZmZjgz
+YmZkMDAwDQooWEVOKSBbMjAxMi0wOS0wNCAxNTo1MToxNl0gIEJvb3Qgc3RhY2s6ICAgIGZm
+ZmZmZmZmODNiZmQwMDAtPmZmZmZmZmZmODNiZmUwMDANCihYRU4pIFsyMDEyLTA5LTA0IDE1
+OjUxOjE2XSAgVE9UQUw6ICAgICAgICAgZmZmZmZmZmY4MDAwMDAwMC0+ZmZmZmZmZmY4NDAw
+MDAwMA0KKFhFTikgWzIwMTItMDktMDQgMTU6NTE6MTZdICBFTlRSWSBBRERSRVNTOiBmZmZm
+ZmZmZjgxZWYwMjEwDQooWEVOKSBbMjAxMi0wOS0wNCAxNTo1MToxNl0gRG9tMCBoYXMgbWF4
+aW11bSA2IFZDUFVzDQooWEVOKSBbMjAxMi0wOS0wNCAxNTo1MToxNl0gZWxmX2xvYWRfYmlu
+YXJ5OiBwaGRyIDAgYXQgMHhmZmZmZmZmZjgxMDAwMDAwIC0+IDB4ZmZmZmZmZmY4MWQ2YTAw
+MA0KKFhFTikgWzIwMTItMDktMDQgMTU6NTE6MTZdIGVsZl9sb2FkX2JpbmFyeTogcGhkciAx
+IGF0IDB4ZmZmZmZmZmY4MWUwMDAwMCAtPiAweGZmZmZmZmZmODFlZGIwZTgNCihYRU4pIFsy
+MDEyLTA5LTA0IDE1OjUxOjE2XSBlbGZfbG9hZF9iaW5hcnk6IHBoZHIgMiBhdCAweGZmZmZm
+ZmZmODFlZGMwMDAgLT4gMHhmZmZmZmZmZjgxZWVmYzAwDQooWEVOKSBbMjAxMi0wOS0wNCAx
+NTo1MToxNl0gZWxmX2xvYWRfYmluYXJ5OiBwaGRyIDMgYXQgMHhmZmZmZmZmZjgxZWYwMDAw
+IC0+IDB4ZmZmZmZmZmY4MWY4OTAwMA0KKFhFTikgWzIwMTItMDktMDQgMTU6NTE6MTZdIEFN
+RC1WaTogTUUgSEVSRSAhPDI+QU1ELVZpOiBTZXR1cCBJL08gcGFnZSB0YWJsZTogZGV2aWNl
+IGlkID0gMHgwMDAwLCByb290IHRhYmxlID0gMHgyNGQ4NGIwMDAsIGRvbWFpbiA9IDAsIHBh
+Z2luZyBtb2RlID0gMw0KKFhFTikgWzIwMTItMDktMDQgMTU6NTE6MTZdIEFNRC1WaTogU2V0
+dXAgSS9PIHBhZ2UgdGFibGU6IGRldmljZSBpZCA9IDB4MDAwMiwgcm9vdCB0YWJsZSA9IDB4
+MjRkODRiMDAwLCBkb21haW4gPSAwLCBwYWdpbmcgbW9kZSA9IDMNCihYRU4pIFsyMDEyLTA5
+LTA0IDE1OjUxOjE2XSBBTUQtVmk6IFNldHVwIEkvTyBwYWdlIHRhYmxlOiBkZXZpY2UgaWQg
+PSAweDAwMTAsIHJvb3QgdGFibGUgPSAweDI0ZDg0YjAwMCwgZG9tYWluID0gMCwgcGFnaW5n
+IG1vZGUgPSAzDQooWEVOKSBbMjAxMi0wOS0wNCAxNTo1MToxNl0gQU1ELVZpOiBTZXR1cCBJ
+L08gcGFnZSB0YWJsZTogZGV2aWNlIGlkID0gMHgwMDE4LCByb290IHRhYmxlID0gMHgyNGQ4
+NGIwMDAsIGRvbWFpbiA9IDAsIHBhZ2luZyBtb2RlID0gMw0KKFhFTikgWzIwMTItMDktMDQg
+MTU6NTE6MTZdIEFNRC1WaTogU2V0dXAgSS9PIHBhZ2UgdGFibGU6IGRldmljZSBpZCA9IDB4
+MDAyOCwgcm9vdCB0YWJsZSA9IDB4MjRkODRiMDAwLCBkb21haW4gPSAwLCBwYWdpbmcgbW9k
+ZSA9IDMNCihYRU4pIFsyMDEyLTA5LTA0IDE1OjUxOjE2XSBBTUQtVmk6IFNldHVwIEkvTyBw
+YWdlIHRhYmxlOiBkZXZpY2UgaWQgPSAweDAwMzAsIHJvb3QgdGFibGUgPSAweDI0ZDg0YjAw
+MCwgZG9tYWluID0gMCwgcGFnaW5nIG1vZGUgPSAzDQooWEVOKSBbMjAxMi0wOS0wNCAxNTo1
+MToxNl0gQU1ELVZpOiBTZXR1cCBJL08gcGFnZSB0YWJsZTogZGV2aWNlIGlkID0gMHgwMDUw
+LCByb290IHRhYmxlID0gMHgyNGQ4NGIwMDAsIGRvbWFpbiA9IDAsIHBhZ2luZyBtb2RlID0g
+Mw0KKFhFTikgWzIwMTItMDktMDQgMTU6NTE6MTZdIEFNRC1WaTogU2V0dXAgSS9PIHBhZ2Ug
+dGFibGU6IGRldmljZSBpZCA9IDB4MDA1OCwgcm9vdCB0YWJsZSA9IDB4MjRkODRiMDAwLCBk
+b21haW4gPSAwLCBwYWdpbmcgbW9kZSA9IDMNCihYRU4pIFsyMDEyLTA5LTA0IDE1OjUxOjE2
+XSBBTUQtVmk6IFNldHVwIEkvTyBwYWdlIHRhYmxlOiBkZXZpY2UgaWQgPSAweDAwNjAsIHJv
+b3QgdGFibGUgPSAweDI0ZDg0YjAwMCwgZG9tYWluID0gMCwgcGFnaW5nIG1vZGUgPSAzDQoo
+WEVOKSBbMjAxMi0wOS0wNCAxNTo1MToxNl0gQU1ELVZpOiBTZXR1cCBJL08gcGFnZSB0YWJs
+ZTogZGV2aWNlIGlkID0gMHgwMDY4LCByb290IHRhYmxlID0gMHgyNGQ4NGIwMDAsIGRvbWFp
+biA9IDAsIHBhZ2luZyBtb2RlID0gMw0KKFhFTikgWzIwMTItMDktMDQgMTU6NTE6MTZdIEFN
+RC1WaTogU2V0dXAgSS9PIHBhZ2UgdGFibGU6IGRldmljZSBpZCA9IDB4MDA4OCwgcm9vdCB0
+YWJsZSA9IDB4MjRkODRiMDAwLCBkb21haW4gPSAwLCBwYWdpbmcgbW9kZSA9IDMNCihYRU4p
+IFsyMDEyLTA5LTA0IDE1OjUxOjE2XSBBTUQtVmk6IFNldHVwIEkvTyBwYWdlIHRhYmxlOiBk
+ZXZpY2UgaWQgPSAweDAwOTAsIHJvb3QgdGFibGUgPSAweDI0ZDg0YjAwMCwgZG9tYWluID0g
+MCwgcGFnaW5nIG1vZGUgPSAzDQooWEVOKSBbMjAxMi0wOS0wNCAxNTo1MToxNl0gQU1ELVZp
+OiBTZXR1cCBJL08gcGFnZSB0YWJsZTogZGV2aWNlIGlkID0gMHgwMDkyLCByb290IHRhYmxl
+ID0gMHgyNGQ4NGIwMDAsIGRvbWFpbiA9IDAsIHBhZ2luZyBtb2RlID0gMw0KKFhFTikgWzIw
+MTItMDktMDQgMTU6NTE6MTZdIEFNRC1WaTogU2V0dXAgSS9PIHBhZ2UgdGFibGU6IGRldmlj
+ZSBpZCA9IDB4MDA5OCwgcm9vdCB0YWJsZSA9IDB4MjRkODRiMDAwLCBkb21haW4gPSAwLCBw
+YWdpbmcgbW9kZSA9IDMNCihYRU4pIFsyMDEyLTA5LTA0IDE1OjUxOjE2XSBBTUQtVmk6IFNl
+dHVwIEkvTyBwYWdlIHRhYmxlOiBkZXZpY2UgaWQgPSAweDAwOWEsIHJvb3QgdGFibGUgPSAw
+eDI0ZDg0YjAwMCwgZG9tYWluID0gMCwgcGFnaW5nIG1vZGUgPSAzDQooWEVOKSBbMjAxMi0w
+OS0wNCAxNTo1MToxNl0gQU1ELVZpOiBTZXR1cCBJL08gcGFnZSB0YWJsZTogZGV2aWNlIGlk
+ID0gMHgwMGEwLCByb290IHRhYmxlID0gMHgyNGQ4NGIwMDAsIGRvbWFpbiA9IDAsIHBhZ2lu
+ZyBtb2RlID0gMw0KKFhFTikgWzIwMTItMDktMDQgMTU6NTE6MTZdIEFNRC1WaTogU2V0dXAg
+SS9PIHBhZ2UgdGFibGU6IGRldmljZSBpZCA9IDB4MDBhMywgcm9vdCB0YWJsZSA9IDB4MjRk
+ODRiMDAwLCBkb21haW4gPSAwLCBwYWdpbmcgbW9kZSA9IDMNCihYRU4pIFsyMDEyLTA5LTA0
+IDE1OjUxOjE2XSBBTUQtVmk6IFNldHVwIEkvTyBwYWdlIHRhYmxlOiBkZXZpY2UgaWQgPSAw
+eDAwYTQsIHJvb3QgdGFibGUgPSAweDI0ZDg0YjAwMCwgZG9tYWluID0gMCwgcGFnaW5nIG1v
+ZGUgPSAzDQooWEVOKSBbMjAxMi0wOS0wNCAxNTo1MToxNl0gQU1ELVZpOiBTZXR1cCBJL08g
+cGFnZSB0YWJsZTogZGV2aWNlIGlkID0gMHgwMGE1LCByb290IHRhYmxlID0gMHgyNGQ4NGIw
+MDAsIGRvbWFpbiA9IDAsIHBhZ2luZyBtb2RlID0gMw0KKFhFTikgWzIwMTItMDktMDQgMTU6
+NTE6MTZdIEFNRC1WaTogU2V0dXAgSS9PIHBhZ2UgdGFibGU6IGRldmljZSBpZCA9IDB4MDBh
+OCwgcm9vdCB0YWJsZSA9IDB4MjRkODRiMDAwLCBkb21haW4gPSAwLCBwYWdpbmcgbW9kZSA9
+IDMNCihYRU4pIFsyMDEyLTA5LTA0IDE1OjUxOjE2XSBBTUQtVmk6IFNldHVwIEkvTyBwYWdl
+IHRhYmxlOiBkZXZpY2UgaWQgPSAweDAwYjAsIHJvb3QgdGFibGUgPSAweDI0ZDg0YjAwMCwg
+ZG9tYWluID0gMCwgcGFnaW5nIG1vZGUgPSAzDQooWEVOKSBbMjAxMi0wOS0wNCAxNTo1MTox
+Nl0gQU1ELVZpOiBTZXR1cCBJL08gcGFnZSB0YWJsZTogZGV2aWNlIGlkID0gMHgwMGIyLCBy
+b290IHRhYmxlID0gMHgyNGQ4NGIwMDAsIGRvbWFpbiA9IDAsIHBhZ2luZyBtb2RlID0gMw0K
+KFhFTikgWzIwMTItMDktMDQgMTU6NTE6MTZdIEFNRC1WaTogTm8gaW9tbXUgZm9yIGRldmlj
+ZSAwMDAwOjAwOjE4LjANCihYRU4pIFsyMDEyLTA5LTA0IDE1OjUxOjE2XSBBTUQtVmk6IE5v
+IGlvbW11IGZvciBkZXZpY2UgMDAwMDowMDoxOC4xDQooWEVOKSBbMjAxMi0wOS0wNCAxNTo1
+MToxNl0gQU1ELVZpOiBObyBpb21tdSBmb3IgZGV2aWNlIDAwMDA6MDA6MTguMg0KKFhFTikg
+WzIwMTItMDktMDQgMTU6NTE6MTZdIEFNRC1WaTogTm8gaW9tbXUgZm9yIGRldmljZSAwMDAw
+OjAwOjE4LjMNCihYRU4pIFsyMDEyLTA5LTA0IDE1OjUxOjE2XSBBTUQtVmk6IE5vIGlvbW11
+IGZvciBkZXZpY2UgMDAwMDowMDoxOC40DQooWEVOKSBbMjAxMi0wOS0wNCAxNTo1MToxNl0g
+QU1ELVZpOiBTZXR1cCBJL08gcGFnZSB0YWJsZTogZGV2aWNlIGlkID0gMHgwNDAwLCByb290
+IHRhYmxlID0gMHgyNGQ4NGIwMDAsIGRvbWFpbiA9IDAsIHBhZ2luZyBtb2RlID0gMw0KKFhF
+TikgWzIwMTItMDktMDQgMTU6NTE6MTddIEFNRC1WaTogU2V0dXAgSS9PIHBhZ2UgdGFibGU6
+IGRldmljZSBpZCA9IDB4MDQwMSwgcm9vdCB0YWJsZSA9IDB4MjRkODRiMDAwLCBkb21haW4g
+PSAwLCBwYWdpbmcgbW9kZSA9IDMNCihYRU4pIFsyMDEyLTA5LTA0IDE1OjUxOjE3XSBBTUQt
+Vmk6IFNldHVwIEkvTyBwYWdlIHRhYmxlOiBkZXZpY2UgaWQgPSAweDA0MDIsIHJvb3QgdGFi
+bGUgPSAweDI0ZDg0YjAwMCwgZG9tYWluID0gMCwgcGFnaW5nIG1vZGUgPSAzDQooWEVOKSBb
+MjAxMi0wOS0wNCAxNTo1MToxN10gQU1ELVZpOiBTZXR1cCBJL08gcGFnZSB0YWJsZTogZGV2
+aWNlIGlkID0gMHgwNDAzLCByb290IHRhYmxlID0gMHgyNGQ4NGIwMDAsIGRvbWFpbiA9IDAs
+IHBhZ2luZyBtb2RlID0gMw0KKFhFTikgWzIwMTItMDktMDQgMTU6NTE6MTddIEFNRC1WaTog
+U2V0dXAgSS9PIHBhZ2UgdGFibGU6IGRldmljZSBpZCA9IDB4MDQwNCwgcm9vdCB0YWJsZSA9
+IDB4MjRkODRiMDAwLCBkb21haW4gPSAwLCBwYWdpbmcgbW9kZSA9IDMNCihYRU4pIFsyMDEy
+LTA5LTA0IDE1OjUxOjE3XSBBTUQtVmk6IFNldHVwIEkvTyBwYWdlIHRhYmxlOiBkZXZpY2Ug
+aWQgPSAweDA0MDUsIHJvb3QgdGFibGUgPSAweDI0ZDg0YjAwMCwgZG9tYWluID0gMCwgcGFn
+aW5nIG1vZGUgPSAzDQooWEVOKSBbMjAxMi0wOS0wNCAxNTo1MToxN10gQU1ELVZpOiBTZXR1
+cCBJL08gcGFnZSB0YWJsZTogZGV2aWNlIGlkID0gMHgwNDA2LCByb290IHRhYmxlID0gMHgy
+NGQ4NGIwMDAsIGRvbWFpbiA9IDAsIHBhZ2luZyBtb2RlID0gMw0KKFhFTikgWzIwMTItMDkt
+MDQgMTU6NTE6MTddIEFNRC1WaTogU2V0dXAgSS9PIHBhZ2UgdGFibGU6IGRldmljZSBpZCA9
+IDB4MDQwNywgcm9vdCB0YWJsZSA9IDB4MjRkODRiMDAwLCBkb21haW4gPSAwLCBwYWdpbmcg
+bW9kZSA9IDMNCihYRU4pIFsyMDEyLTA5LTA0IDE1OjUxOjE3XSBBTUQtVmk6IFNldHVwIEkv
+TyBwYWdlIHRhYmxlOiBkZXZpY2UgaWQgPSAweDA1MDAsIHJvb3QgdGFibGUgPSAweDI0ZDg0
+YjAwMCwgZG9tYWluID0gMCwgcGFnaW5nIG1vZGUgPSAzDQooWEVOKSBbMjAxMi0wOS0wNCAx
+NTo1MToxN10gQU1ELVZpOiBTZXR1cCBJL08gcGFnZSB0YWJsZTogZGV2aWNlIGlkID0gMHgw
+NjAwLCByb290IHRhYmxlID0gMHgyNGQ4NGIwMDAsIGRvbWFpbiA9IDAsIHBhZ2luZyBtb2Rl
+ID0gMw0KKFhFTikgWzIwMTItMDktMDQgMTU6NTE6MTddIEFNRC1WaTogU2V0dXAgSS9PIHBh
+Z2UgdGFibGU6IGRldmljZSBpZCA9IDB4MDYwMSwgcm9vdCB0YWJsZSA9IDB4MjRkODRiMDAw
+LCBkb21haW4gPSAwLCBwYWdpbmcgbW9kZSA9IDMNCihYRU4pIFsyMDEyLTA5LTA0IDE1OjUx
+OjE3XSBBTUQtVmk6IFNldHVwIEkvTyBwYWdlIHRhYmxlOiBkZXZpY2UgaWQgPSAweDA3MDAs
+IHJvb3QgdGFibGUgPSAweDI0ZDg0YjAwMCwgZG9tYWluID0gMCwgcGFnaW5nIG1vZGUgPSAz
+DQooWEVOKSBbMjAxMi0wOS0wNCAxNTo1MToxN10gQU1ELVZpOiBTZXR1cCBJL08gcGFnZSB0
+YWJsZTogZGV2aWNlIGlkID0gMHgwODAwLCByb290IHRhYmxlID0gMHgyNGQ4NGIwMDAsIGRv
+bWFpbiA9IDAsIHBhZ2luZyBtb2RlID0gMw0KKFhFTikgWzIwMTItMDktMDQgMTU6NTE6MTdd
+IEFNRC1WaTogU2V0dXAgSS9PIHBhZ2UgdGFibGU6IGRldmljZSBpZCA9IDB4MDkwMCwgcm9v
+dCB0YWJsZSA9IDB4MjRkODRiMDAwLCBkb21haW4gPSAwLCBwYWdpbmcgbW9kZSA9IDMNCihY
+RU4pIFsyMDEyLTA5LTA0IDE1OjUxOjE3XSBBTUQtVmk6IFNldHVwIEkvTyBwYWdlIHRhYmxl
+OiBkZXZpY2UgaWQgPSAweDBhMDAsIHJvb3QgdGFibGUgPSAweDI0ZDg0YjAwMCwgZG9tYWlu
+ID0gMCwgcGFnaW5nIG1vZGUgPSAzDQooWEVOKSBbMjAxMi0wOS0wNCAxNTo1MToxN10gQU1E
+LVZpOiBTZXR1cCBJL08gcGFnZSB0YWJsZTogZGV2aWNlIGlkID0gMHgwYTAxLCByb290IHRh
+YmxlID0gMHgyNGQ4NGIwMDAsIGRvbWFpbiA9IDAsIHBhZ2luZyBtb2RlID0gMw0KKFhFTikg
+WzIwMTItMDktMDQgMTU6NTE6MTddIEFNRC1WaTogU2V0dXAgSS9PIHBhZ2UgdGFibGU6IGRl
+dmljZSBpZCA9IDB4MGEwMiwgcm9vdCB0YWJsZSA9IDB4MjRkODRiMDAwLCBkb21haW4gPSAw
+LCBwYWdpbmcgbW9kZSA9IDMNCihYRU4pIFsyMDEyLTA5LTA0IDE1OjUxOjE3XSBBTUQtVmk6
+IFNldHVwIEkvTyBwYWdlIHRhYmxlOiBkZXZpY2UgaWQgPSAweDBhMDMsIHJvb3QgdGFibGUg
+PSAweDI0ZDg0YjAwMCwgZG9tYWluID0gMCwgcGFnaW5nIG1vZGUgPSAzDQooWEVOKSBbMjAx
+Mi0wOS0wNCAxNTo1MToxN10gQU1ELVZpOiBTZXR1cCBJL08gcGFnZSB0YWJsZTogZGV2aWNl
+IGlkID0gMHgwYTA0LCByb290IHRhYmxlID0gMHgyNGQ4NGIwMDAsIGRvbWFpbiA9IDAsIHBh
+Z2luZyBtb2RlID0gMw0KKFhFTikgWzIwMTItMDktMDQgMTU6NTE6MTddIEFNRC1WaTogU2V0
+dXAgSS9PIHBhZ2UgdGFibGU6IGRldmljZSBpZCA9IDB4MGEwNSwgcm9vdCB0YWJsZSA9IDB4
+MjRkODRiMDAwLCBkb21haW4gPSAwLCBwYWdpbmcgbW9kZSA9IDMNCihYRU4pIFsyMDEyLTA5
+LTA0IDE1OjUxOjE3XSBBTUQtVmk6IFNldHVwIEkvTyBwYWdlIHRhYmxlOiBkZXZpY2UgaWQg
+PSAweDBhMDYsIHJvb3QgdGFibGUgPSAweDI0ZDg0YjAwMCwgZG9tYWluID0gMCwgcGFnaW5n
+IG1vZGUgPSAzDQooWEVOKSBbMjAxMi0wOS0wNCAxNTo1MToxN10gQU1ELVZpOiBTZXR1cCBJ
+L08gcGFnZSB0YWJsZTogZGV2aWNlIGlkID0gMHgwYTA3LCByb290IHRhYmxlID0gMHgyNGQ4
+NGIwMDAsIGRvbWFpbiA9IDAsIHBhZ2luZyBtb2RlID0gMw0KKFhFTikgWzIwMTItMDktMDQg
+MTU6NTE6MTddIEFNRC1WaTogU2V0dXAgSS9PIHBhZ2UgdGFibGU6IGRldmljZSBpZCA9IDB4
+MGIwMCwgcm9vdCB0YWJsZSA9IDB4MjRkODRiMDAwLCBkb21haW4gPSAwLCBwYWdpbmcgbW9k
+ZSA9IDMNCihYRU4pIFsyMDEyLTA5LTA0IDE1OjUxOjE3XSBTY3J1YmJpbmcgRnJlZSBSQU06
+IC4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLjwwPkFNRC1WaTogSU9fUEFHRV9GQVVMVDog
+ZG9tYWluID0gMCwgZGV2aWNlIGlkID0gMHgwYTA2LCBmYXVsdCBhZGRyZXNzID0gMHhjMmMy
+YzJjMA0KKFhFTikgWzIwMTItMDktMDQgMTU6NTE6MThdIC4uLi4uLi4uLi4uLi4uLi4uLi4u
+Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uZG9uZS4NCihYRU4pIFsyMDEyLTA5LTA0IDE1OjUx
+OjE5XSBJbml0aWFsIGxvdyBtZW1vcnkgdmlycSB0aHJlc2hvbGQgc2V0IGF0IDB4NDAwMCBw
+YWdlcy4NCihYRU4pIFsyMDEyLTA5LTA0IDE1OjUxOjE5XSBTdGQuIExvZ2xldmVsOiBBbGwN
+CihYRU4pIFsyMDEyLTA5LTA0IDE1OjUxOjE5XSBHdWVzdCBMb2dsZXZlbDogQWxsDQooWEVO
+KSBbMjAxMi0wOS0wNCAxNTo1MToxOV0gWGVuIGlzIHJlbGlucXVpc2hpbmcgVkdBIGNvbnNv
+bGUuDQooWEVOKSBbMjAxMi0wOS0wNCAxNTo1MToxOV0gKioqIFNlcmlhbCBpbnB1dCAtPiBE
+T00wICh0eXBlICdDVFJMLWEnIHRocmVlIHRpbWVzIHRvIHN3aXRjaCBpbnB1dCB0byBYZW4p
+DQooWEVOKSBbMjAxMi0wOS0wNCAxNTo1MToxOV0gRnJlZWQgMjU2a0IgaW5pdCBtZW1vcnku
+DQooWEVOKSBbMjAxMi0wOS0wNCAxNTo1MToxOV0gSU9BUElDWzBdOiBTZXQgUENJIHJvdXRp
+bmcgZW50cnkgKDYtOSAtPiAweDYwIC0+IElSUSA5IE1vZGU6MSBBY3RpdmU6MSkNCihYRU4p
+IFsyMDEyLTA5LTA0IDE1OjUxOjE5XSB0cmFwcy5jOjI1ODQ6ZDAgRG9tYWluIGF0dGVtcHRl
+ZCBXUk1TUiAwMDAwMDAwMGMwMDAwNDA4IGZyb20gMHhjMDAwMDAwMDAxMDAwMDAwIHRvIDB4
+YzAwODAwMDAwMTAwMDAwMC4NCihYRU4pIFsyMDEyLTA5LTA0IDE1OjUxOjE5XSB0cmFwcy5j
+OjI1ODQ6ZDAgRG9tYWluIGF0dGVtcHRlZCBXUk1TUiAwMDAwMDAwMGMwMDAwNDA5IGZyb20g
+MHhjMDAwMDAwMDAxMDAwMDAwIHRvIDB4YzAwODAwMDAwMTAwMDAwMC4NCihYRU4pIFsyMDEy
+LTA5LTA0IDE1OjUxOjE5XSB0cmFwcy5jOjI1ODQ6ZDAgRG9tYWluIGF0dGVtcHRlZCBXUk1T
+UiAwMDAwMDAwMGMwMDEwMDA0IGZyb20gMHgwMDAwZWZmMGJkZmIxZmNlIHRvIDB4MDAwMDAw
+MDAwMDAwYWJjZC4NCihYRU4pIFsyMDEyLTA5LTA0IDE1OjUxOjE5XSB0cmFwcy5jOjI1ODQ6
+ZDAgRG9tYWluIGF0dGVtcHRlZCBXUk1TUiAwMDAwMDAwMGMwMDAwNDA4IGZyb20gMHhjMDAw
+MDAwMDAxMDAwMDAwIHRvIDB4YzAwODAwMDAwMTAwMDAwMC4NCihYRU4pIFsyMDEyLTA5LTA0
+IDE1OjUxOjE5XSB0cmFwcy5jOjI1ODQ6ZDAgRG9tYWluIGF0dGVtcHRlZCBXUk1TUiAwMDAw
+MDAwMGMwMDAwNDA5IGZyb20gMHhjMDAwMDAwMDAxMDAwMDAwIHRvIDB4YzAwODAwMDAwMTAw
+MDAwMC4NCihYRU4pIFsyMDEyLTA5LTA0IDE1OjUxOjE5XSB0cmFwcy5jOjI1ODQ6ZDAgRG9t
+YWluIGF0dGVtcHRlZCBXUk1TUiAwMDAwMDAwMGMwMDAwNDA4IGZyb20gMHhjMDAwMDAwMDAx
+MDAwMDAwIHRvIDB4YzAwODAwMDAwMTAwMDAwMC4NCihYRU4pIFsyMDEyLTA5LTA0IDE1OjUx
+OjE5XSB0cmFwcy5jOjI1ODQ6ZDAgRG9tYWluIGF0dGVtcHRlZCBXUk1TUiAwMDAwMDAwMGMw
+MDAwNDA5IGZyb20gMHhjMDAwMDAwMDAxMDAwMDAwIHRvIDB4YzAwODAwMDAwMTAwMDAwMC4N
+CihYRU4pIFsyMDEyLTA5LTA0IDE1OjUxOjE5XSB0cmFwcy5jOjI1ODQ6ZDAgRG9tYWluIGF0
+dGVtcHRlZCBXUk1TUiAwMDAwMDAwMGMwMDAwNDA4IGZyb20gMHhjMDAwMDAwMDAxMDAwMDAw
+IHRvIDB4YzAwODAwMDAwMTAwMDAwMC4NCihYRU4pIFsyMDEyLTA5LTA0IDE1OjUxOjE5XSB0
+cmFwcy5jOjI1ODQ6ZDAgRG9tYWluIGF0dGVtcHRlZCBXUk1TUiAwMDAwMDAwMGMwMDAwNDA5
+IGZyb20gMHhjMDAwMDAwMDAxMDAwMDAwIHRvIDB4YzAwODAwMDAwMTAwMDAwMC4NCihYRU4p
+IFsyMDEyLTA5LTA0IDE1OjUxOjE5XSB0cmFwcy5jOjI1ODQ6ZDAgRG9tYWluIGF0dGVtcHRl
+ZCBXUk1TUiAwMDAwMDAwMGMwMDAwNDA4IGZyb20gMHhjMDAwMDAwMDAxMDAwMDAwIHRvIDB4
+YzAwODAwMDAwMTAwMDAwMC4NCihYRU4pIFsyMDEyLTA5LTA0IDE1OjUxOjE5XSB0cmFwcy5j
+OjI1ODQ6ZDAgRG9tYWluIGF0dGVtcHRlZCBXUk1TUiAwMDAwMDAwMGMwMDAwNDA5IGZyb20g
+MHhjMDAwMDAwMDAxMDAwMDAwIHRvIDB4YzAwODAwMDAwMTAwMDAwMC4NCihYRU4pIFsyMDEy
+LTA5LTA0IDE1OjUxOjE5XSB0cmFwcy5jOjI1ODQ6ZDAgRG9tYWluIGF0dGVtcHRlZCBXUk1T
+UiAwMDAwMDAwMGMwMDAwNDA4IGZyb20gMHhjMDAwMDAwMDAxMDAwMDAwIHRvIDB4YzAwODAw
+MDAwMTAwMDAwMC4NCihYRU4pIFsyMDEyLTA5LTA0IDE1OjUxOjE5XSB0cmFwcy5jOjI1ODQ6
+ZDAgRG9tYWluIGF0dGVtcHRlZCBXUk1TUiAwMDAwMDAwMGMwMDAwNDA5IGZyb20gMHhjMDAw
+MDAwMDAxMDAwMDAwIHRvIDB4YzAwODAwMDAwMTAwMDAwMC4NCihYRU4pIFsyMDEyLTA5LTA0
+IDE1OjUxOjE5XSBQQ0kgYWRkIGRldmljZSAwMDAwOjAwOjAwLjANCihYRU4pIFsyMDEyLTA5
+LTA0IDE1OjUxOjE5XSBQQ0kgYWRkIGRldmljZSAwMDAwOjAwOjAwLjINCihYRU4pIFsyMDEy
+LTA5LTA0IDE1OjUxOjE5XSBQQ0kgYWRkIGRldmljZSAwMDAwOjAwOjAyLjANCihYRU4pIFsy
+MDEyLTA5LTA0IDE1OjUxOjE5XSBQQ0kgYWRkIGRldmljZSAwMDAwOjAwOjAzLjANCihYRU4p
+IFsyMDEyLTA5LTA0IDE1OjUxOjE5XSBQQ0kgYWRkIGRldmljZSAwMDAwOjAwOjA1LjANCihY
+RU4pIFsyMDEyLTA5LTA0IDE1OjUxOjE5XSBQQ0kgYWRkIGRldmljZSAwMDAwOjAwOjA2LjAN
+CihYRU4pIFsyMDEyLTA5LTA0IDE1OjUxOjE5XSBQQ0kgYWRkIGRldmljZSAwMDAwOjAwOjBh
+LjANCihYRU4pIFsyMDEyLTA5LTA0IDE1OjUxOjE5XSBQQ0kgYWRkIGRldmljZSAwMDAwOjAw
+OjBiLjANCihYRU4pIFsyMDEyLTA5LTA0IDE1OjUxOjE5XSBQQ0kgYWRkIGRldmljZSAwMDAw
+OjAwOjBjLjANCihYRU4pIFsyMDEyLTA5LTA0IDE1OjUxOjE5XSBQQ0kgYWRkIGRldmljZSAw
+MDAwOjAwOjBkLjANCihYRU4pIFsyMDEyLTA5LTA0IDE1OjUxOjE5XSBQQ0kgYWRkIGRldmlj
+ZSAwMDAwOjAwOjExLjANCihYRU4pIFsyMDEyLTA5LTA0IDE1OjUxOjE5XSBQQ0kgYWRkIGRl
+dmljZSAwMDAwOjAwOjEyLjANCihYRU4pIFsyMDEyLTA5LTA0IDE1OjUxOjE5XSBQQ0kgYWRk
+IGRldmljZSAwMDAwOjAwOjEyLjINCihYRU4pIFsyMDEyLTA5LTA0IDE1OjUxOjE5XSBQQ0kg
+YWRkIGRldmljZSAwMDAwOjAwOjEzLjANCihYRU4pIFsyMDEyLTA5LTA0IDE1OjUxOjE5XSBQ
+Q0kgYWRkIGRldmljZSAwMDAwOjAwOjEzLjINCihYRU4pIFsyMDEyLTA5LTA0IDE1OjUxOjE5
+XSBQQ0kgYWRkIGRldmljZSAwMDAwOjAwOjE0LjANCihYRU4pIFsyMDEyLTA5LTA0IDE1OjUx
+OjE5XSBQQ0kgYWRkIGRldmljZSAwMDAwOjAwOjE0LjMNCihYRU4pIFsyMDEyLTA5LTA0IDE1
+OjUxOjE5XSBQQ0kgYWRkIGRldmljZSAwMDAwOjAwOjE0LjQNCihYRU4pIFsyMDEyLTA5LTA0
+IDE1OjUxOjE5XSBQQ0kgYWRkIGRldmljZSAwMDAwOjAwOjE0LjUNCihYRU4pIFsyMDEyLTA5
+LTA0IDE1OjUxOjE5XSBQQ0kgYWRkIGRldmljZSAwMDAwOjAwOjE1LjANCihYRU4pIFsyMDEy
+LTA5LTA0IDE1OjUxOjE5XSBQQ0kgYWRkIGRldmljZSAwMDAwOjAwOjE2LjANCihYRU4pIFsy
+MDEyLTA5LTA0IDE1OjUxOjE5XSBQQ0kgYWRkIGRldmljZSAwMDAwOjAwOjE2LjINCihYRU4p
+IFsyMDEyLTA5LTA0IDE1OjUxOjE5XSBQQ0kgYWRkIGRldmljZSAwMDAwOjAwOjE4LjANCihY
+RU4pIFsyMDEyLTA5LTA0IDE1OjUxOjE5XSBQQ0kgYWRkIGRldmljZSAwMDAwOjAwOjE4LjEN
+CihYRU4pIFsyMDEyLTA5LTA0IDE1OjUxOjE5XSBQQ0kgYWRkIGRldmljZSAwMDAwOjAwOjE4
+LjINCihYRU4pIFsyMDEyLTA5LTA0IDE1OjUxOjE5XSBQQ0kgYWRkIGRldmljZSAwMDAwOjAw
+OjE4LjMNCihYRU4pIFsyMDEyLTA5LTA0IDE1OjUxOjE5XSBQQ0kgYWRkIGRldmljZSAwMDAw
+OjAwOjE4LjQNCihYRU4pIFsyMDEyLTA5LTA0IDE1OjUxOjE5XSBQQ0kgYWRkIGRldmljZSAw
+MDAwOjBiOjAwLjANCihYRU4pIFsyMDEyLTA5LTA0IDE1OjUxOjE5XSBQQ0kgYWRkIGRldmlj
+ZSAwMDAwOjBhOjAwLjANCihYRU4pIFsyMDEyLTA5LTA0IDE1OjUxOjE5XSBQQ0kgYWRkIGRl
+dmljZSAwMDAwOjBhOjAwLjENCihYRU4pIFsyMDEyLTA5LTA0IDE1OjUxOjE5XSBQQ0kgYWRk
+IGRldmljZSAwMDAwOjBhOjAwLjINCihYRU4pIFsyMDEyLTA5LTA0IDE1OjUxOjE5XSBQQ0kg
+YWRkIGRldmljZSAwMDAwOjBhOjAwLjMNCihYRU4pIFsyMDEyLTA5LTA0IDE1OjUxOjE5XSBQ
+Q0kgYWRkIGRldmljZSAwMDAwOjBhOjAwLjQNCihYRU4pIFsyMDEyLTA5LTA0IDE1OjUxOjE5
+XSBQQ0kgYWRkIGRldmljZSAwMDAwOjBhOjAwLjUNCihYRU4pIFsyMDEyLTA5LTA0IDE1OjUx
+OjE5XSBQQ0kgYWRkIGRldmljZSAwMDAwOjBhOjAwLjYNCihYRU4pIFsyMDEyLTA5LTA0IDE1
+OjUxOjE5XSBQQ0kgYWRkIGRldmljZSAwMDAwOjBhOjAwLjcNCihYRU4pIFsyMDEyLTA5LTA0
+IDE1OjUxOjE5XSBQQ0kgYWRkIGRldmljZSAwMDAwOjA5OjAwLjANCihYRU4pIFsyMDEyLTA5
+LTA0IDE1OjUxOjE5XSBQQ0kgYWRkIGRldmljZSAwMDAwOjA4OjAwLjANCihYRU4pIFsyMDEy
+LTA5LTA0IDE1OjUxOjE5XSBQQ0kgYWRkIGRldmljZSAwMDAwOjA3OjAwLjANCihYRU4pIFsy
+MDEyLTA5LTA0IDE1OjUxOjE5XSBQQ0kgYWRkIGRldmljZSAwMDAwOjA2OjAwLjANCihYRU4p
+IFsyMDEyLTA5LTA0IDE1OjUxOjE5XSBQQ0kgYWRkIGRldmljZSAwMDAwOjA2OjAwLjENCihY
+RU4pIFsyMDEyLTA5LTA0IDE1OjUxOjE5XSBQQ0kgYWRkIGRldmljZSAwMDAwOjA1OjAwLjAN
+CihYRU4pIFsyMDEyLTA5LTA0IDE1OjUxOjE5XSBQQ0kgYWRkIGRldmljZSAwMDAwOjA0OjAw
+LjANCihYRU4pIFsyMDEyLTA5LTA0IDE1OjUxOjE5XSBQQ0kgYWRkIGRldmljZSAwMDAwOjA0
+OjAwLjENCihYRU4pIFsyMDEyLTA5LTA0IDE1OjUxOjE5XSBQQ0kgYWRkIGRldmljZSAwMDAw
+OjA0OjAwLjINCihYRU4pIFsyMDEyLTA5LTA0IDE1OjUxOjE5XSBQQ0kgYWRkIGRldmljZSAw
+MDAwOjA0OjAwLjMNCihYRU4pIFsyMDEyLTA5LTA0IDE1OjUxOjE5XSBQQ0kgYWRkIGRldmlj
+ZSAwMDAwOjA0OjAwLjQNCihYRU4pIFsyMDEyLTA5LTA0IDE1OjUxOjE5XSBQQ0kgYWRkIGRl
+dmljZSAwMDAwOjA0OjAwLjUNCihYRU4pIFsyMDEyLTA5LTA0IDE1OjUxOjE5XSBQQ0kgYWRk
+IGRldmljZSAwMDAwOjA0OjAwLjYNCihYRU4pIFsyMDEyLTA5LTA0IDE1OjUxOjE5XSBQQ0kg
+YWRkIGRldmljZSAwMDAwOjA0OjAwLjcNCihYRU4pIFsyMDEyLTA5LTA0IDE1OjUxOjE5XSBQ
+Q0kgYWRkIGRldmljZSAwMDAwOjAzOjA2LjANCihYRU4pIFsyMDEyLTA5LTA0IDE1OjUxOjE5
+XSBJT0FQSUNbMF06IFNldCBQQ0kgcm91dGluZyBlbnRyeSAoNi04IC0+IDB4NTggLT4gSVJR
+IDggTW9kZTowIEFjdGl2ZTowKQ0KKFhFTikgWzIwMTItMDktMDQgMTU6NTE6MTldIElPQVBJ
+Q1swXTogU2V0IFBDSSByb3V0aW5nIGVudHJ5ICg2LTEzIC0+IDB4ODggLT4gSVJRIDEzIE1v
+ZGU6MCBBY3RpdmU6MCkNCihYRU4pIFsyMDEyLTA5LTA0IDE1OjUxOjE5XSBJT0FQSUNbMV06
+IFNldCBQQ0kgcm91dGluZyBlbnRyeSAoNy0yOCAtPiAweGEwIC0+IElSUSA1MiBNb2RlOjEg
+QWN0aXZlOjEpDQooWEVOKSBbMjAxMi0wOS0wNCAxNTo1MToxOV0gSU9BUElDWzFdOiBTZXQg
+UENJIHJvdXRpbmcgZW50cnkgKDctMjkgLT4gMHhhOCAtPiBJUlEgNTMgTW9kZToxIEFjdGl2
+ZToxKQ0KKFhFTikgWzIwMTItMDktMDQgMTU6NTE6MTldIElPQVBJQ1sxXTogU2V0IFBDSSBy
+b3V0aW5nIGVudHJ5ICg3LTMwIC0+IDB4YjAgLT4gSVJRIDU0IE1vZGU6MSBBY3RpdmU6MSkN
+CihYRU4pIFsyMDEyLTA5LTA0IDE1OjUxOjE5XSBJT0FQSUNbMF06IFNldCBQQ0kgcm91dGlu
+ZyBlbnRyeSAoNi0xNiAtPiAweGI4IC0+IElSUSAxNiBNb2RlOjEgQWN0aXZlOjEpDQooWEVO
+KSBbMjAxMi0wOS0wNCAxNTo1MToxOV0gSU9BUElDWzBdOiBTZXQgUENJIHJvdXRpbmcgZW50
+cnkgKDYtMTggLT4gMHhjMCAtPiBJUlEgMTggTW9kZToxIEFjdGl2ZToxKQ0KKFhFTikgWzIw
+MTItMDktMDQgMTU6NTE6MTldIElPQVBJQ1swXTogU2V0IFBDSSByb3V0aW5nIGVudHJ5ICg2
+LTE3IC0+IDB4YzggLT4gSVJRIDE3IE1vZGU6MSBBY3RpdmU6MSkNCihYRU4pIFsyMDEyLTA5
+LTA0IDE1OjUxOjIwXSBJT0FQSUNbMV06IFNldCBQQ0kgcm91dGluZyBlbnRyeSAoNy00IC0+
+IDB4ZDAgLT4gSVJRIDI4IE1vZGU6MSBBY3RpdmU6MSkNCihYRU4pIFsyMDEyLTA5LTA0IDE1
+OjUxOjIwXSBJT0FQSUNbMV06IFNldCBQQ0kgcm91dGluZyBlbnRyeSAoNy01IC0+IDB4ZDgg
+LT4gSVJRIDI5IE1vZGU6MSBBY3RpdmU6MSkNCihYRU4pIFsyMDEyLTA5LTA0IDE1OjUxOjIw
+XSBJT0FQSUNbMV06IFNldCBQQ0kgcm91dGluZyBlbnRyeSAoNy02IC0+IDB4MjEgLT4gSVJR
+IDMwIE1vZGU6MSBBY3RpdmU6MSkNCihYRU4pIFsyMDEyLTA5LTA0IDE1OjUxOjIwXSBJT0FQ
+SUNbMV06IFNldCBQQ0kgcm91dGluZyBlbnRyeSAoNy03IC0+IDB4MjkgLT4gSVJRIDMxIE1v
+ZGU6MSBBY3RpdmU6MSkNCihYRU4pIFsyMDEyLTA5LTA0IDE1OjUxOjIwXSBJT0FQSUNbMV06
+IFNldCBQQ0kgcm91dGluZyBlbnRyeSAoNy0xNiAtPiAweDMxIC0+IElSUSA0MCBNb2RlOjEg
+QWN0aXZlOjEpDQooWEVOKSBbMjAxMi0wOS0wNCAxNTo1MToyMF0gSU9BUElDWzFdOiBTZXQg
+UENJIHJvdXRpbmcgZW50cnkgKDctMTcgLT4gMHgzOSAtPiBJUlEgNDEgTW9kZToxIEFjdGl2
+ZToxKQ0KKFhFTikgWzIwMTItMDktMDQgMTU6NTE6MjBdIElPQVBJQ1sxXTogU2V0IFBDSSBy
+b3V0aW5nIGVudHJ5ICg3LTE4IC0+IDB4NDEgLT4gSVJRIDQyIE1vZGU6MSBBY3RpdmU6MSkN
+CihYRU4pIFsyMDEyLTA5LTA0IDE1OjUxOjIwXSBJT0FQSUNbMV06IFNldCBQQ0kgcm91dGlu
+ZyBlbnRyeSAoNy0xOSAtPiAweDQ5IC0+IElSUSA0MyBNb2RlOjEgQWN0aXZlOjEpDQooWEVO
+KSBbMjAxMi0wOS0wNCAxNTo1MToyMF0gSU9BUElDWzBdOiBTZXQgUENJIHJvdXRpbmcgZW50
+cnkgKDYtMjIgLT4gMHg5OSAtPiBJUlEgMjIgTW9kZToxIEFjdGl2ZToxKQ0KKFhFTikgWzIw
+MTItMDktMDQgMTU6NTE6MjBdIElPQVBJQ1sxXTogU2V0IFBDSSByb3V0aW5nIGVudHJ5ICg3
+LTEyIC0+IDB4YTEgLT4gSVJRIDM2IE1vZGU6MSBBY3RpdmU6MSkNCihYRU4pIFsyMDEyLTA5
+LTA0IDE1OjUxOjIwXSBJT0FQSUNbMV06IFNldCBQQ0kgcm91dGluZyBlbnRyeSAoNy0yMyAt
+PiAweGE5IC0+IElSUSA0NyBNb2RlOjEgQWN0aXZlOjEpDQooWEVOKSBbMjAxMi0wOS0wNCAx
+NTo1MToyMV0gSU9BUElDWzBdOiBTZXQgUENJIHJvdXRpbmcgZW50cnkgKDYtMTkgLT4gMHhi
+MSAtPiBJUlEgMTkgTW9kZToxIEFjdGl2ZToxKQ0KKFhFTikgWzIwMTItMDktMDQgMTU6NTE6
+MjFdIElPQVBJQ1sxXTogU2V0IFBDSSByb3V0aW5nIGVudHJ5ICg3LTIyIC0+IDB4YzEgLT4g
+SVJRIDQ2IE1vZGU6MSBBY3RpdmU6MSkNCihYRU4pIFsyMDEyLTA5LTA0IDE1OjUxOjIxXSBJ
+T0FQSUNbMV06IFNldCBQQ0kgcm91dGluZyBlbnRyeSAoNy0yNyAtPiAweGQxIC0+IElSUSA1
+MSBNb2RlOjEgQWN0aXZlOjEpDQooWEVOKSBbMjAxMi0wOS0wNCAxNTo1MToyM10gSU9BUElD
+WzFdOiBTZXQgUENJIHJvdXRpbmcgZW50cnkgKDctOSAtPiAweDIyIC0+IElSUSAzMyBNb2Rl
+OjEgQWN0aXZlOjEpDQooWEVOKSBbMjAxMi0wOS0wNCAxNTo1MjoyMl0gdHJhcHMuYzoyNTg0
+OmQxIERvbWFpbiBhdHRlbXB0ZWQgV1JNU1IgMDAwMDAwMDBjMDAxMDAwNCBmcm9tIDB4MDAw
+MDg2NzljMDJiNDE2NSB0byAweDAwMDAwMDAwMDAwMGFiY2QuDQooWEVOKSBbMjAxMi0wOS0w
+NCAxNTo1MjoyOF0gdHJhcHMuYzoyNTg0OmQyIERvbWFpbiBhdHRlbXB0ZWQgV1JNU1IgMDAw
+MDAwMDBjMDAxMDAwNCBmcm9tIDB4MDAwMDQyMzQ1YTBkYTU0NSB0byAweDAwMDAwMDAwMDAw
+MGFiY2QuDQooWEVOKSBbMjAxMi0wOS0wNCAxNTo1MjozNF0gdHJhcHMuYzoyNTg0OmQzIERv
+bWFpbiBhdHRlbXB0ZWQgV1JNU1IgMDAwMDAwMDBjMDAxMDAwNCBmcm9tIDB4MDAwMDg2Nzlj
+MDJiNDE2NSB0byAweDAwMDAwMDAwMDAwMGFiY2QuDQooWEVOKSBbMjAxMi0wOS0wNCAxNTo1
+Mjo0MV0gdHJhcHMuYzoyNTg0OmQ0IERvbWFpbiBhdHRlbXB0ZWQgV1JNU1IgMDAwMDAwMDBj
+MDAxMDAwNCBmcm9tIDB4MDAwMDZmYjAzOWRlNzkwMCB0byAweDAwMDAwMDAwMDAwMGFiY2Qu
+DQooWEVOKSBbMjAxMi0wOS0wNCAxNTo1Mjo0N10gdHJhcHMuYzoyNTg0OmQ1IERvbWFpbiBh
+dHRlbXB0ZWQgV1JNU1IgMDAwMDAwMDBjMDAxMDAwNCBmcm9tIDB4MDAwMDZmYjAzOWRlNzkw
+MCB0byAweDAwMDAwMDAwMDAwMGFiY2QuDQooWEVOKSBbMjAxMi0wOS0wNCAxNTo1Mjo1M10g
+dHJhcHMuYzoyNTg0OmQ2IERvbWFpbiBhdHRlbXB0ZWQgV1JNU1IgMDAwMDAwMDBjMDAxMDAw
+NCBmcm9tIDB4MDAwMGExOTVjNDBmNjE4ZiB0byAweDAwMDAwMDAwMDAwMGFiY2QuDQooWEVO
+KSBbMjAxMi0wOS0wNCAxNTo1Mjo1OV0gdHJhcHMuYzoyNTg0OmQ3IERvbWFpbiBhdHRlbXB0
+ZWQgV1JNU1IgMDAwMDAwMDBjMDAxMDAwNCBmcm9tIDB4MDAwMGExOTVjNDBmNjE4ZiB0byAw
+eDAwMDAwMDAwMDAwMGFiY2QuDQooWEVOKSBbMjAxMi0wOS0wNCAxNTo1MzowOF0gdHJhcHMu
+YzoyNTg0OmQ4IERvbWFpbiBhdHRlbXB0ZWQgV1JNU1IgMDAwMDAwMDBjMDAxMDAwNCBmcm9t
+IDB4MDAwMDg2NzljMDJiNDE2NSB0byAweDAwMDAwMDAwMDAwMGFiY2QuDQooWEVOKSBbMjAx
+Mi0wOS0wNCAxNTo1MzoxNF0gdHJhcHMuYzoyNTg0OmQ5IERvbWFpbiBhdHRlbXB0ZWQgV1JN
+U1IgMDAwMDAwMDBjMDAxMDAwNCBmcm9tIDB4MDAwMGExOTVjNDBmNjE4ZiB0byAweDAwMDAw
+MDAwMDAwMGFiY2QuDQooWEVOKSBbMjAxMi0wOS0wNCAxNTo1MzoyMF0gdHJhcHMuYzoyNTg0
+OmQxMCBEb21haW4gYXR0ZW1wdGVkIFdSTVNSIDAwMDAwMDAwYzAwMTAwMDQgZnJvbSAweDAw
+MDBhMTk1YzQwZjYxOGYgdG8gMHgwMDAwMDAwMDAwMDBhYmNkLg0KKFhFTikgWzIwMTItMDkt
+MDQgMTU6NTM6MjddIEFNRC1WaTogRGlzYWJsZTogZGV2aWNlIGlkID0gMHgwMGE0LCBkb21h
+aW4gPSAwLCBwYWdpbmcgbW9kZSA9IDMNCihYRU4pIFsyMDEyLTA5LTA0IDE1OjUzOjI3XSBB
+TUQtVmk6IFNldHVwIEkvTyBwYWdlIHRhYmxlOiBkZXZpY2UgaWQgPSAweDAwYTQsIHJvb3Qg
+dGFibGUgPSAweDE4ZTBhMTAwMCwgZG9tYWluID0gMTEsIHBhZ2luZyBtb2RlID0gMw0KKFhF
+TikgWzIwMTItMDktMDQgMTU6NTM6MjddIEFNRC1WaTogUmUtYXNzaWduIDAwMDA6MDM6MDYu
+MCBmcm9tIGRvbTAgdG8gZG9tMTENCihYRU4pIFsyMDEyLTA5LTA0IDE1OjUzOjI3XSB0cmFw
+cy5jOjI1ODQ6ZDExIERvbWFpbiBhdHRlbXB0ZWQgV1JNU1IgMDAwMDAwMDBjMDAxMDAwNCBm
+cm9tIDB4MDAwMGExOTVjNDBmNjE4ZiB0byAweDAwMDAwMDAwMDAwMGFiY2QuDQooWEVOKSBb
+MjAxMi0wOS0wNCAxNTo1MzozOF0gdHJhcHMuYzoyNTg0OmQxMiBEb21haW4gYXR0ZW1wdGVk
+IFdSTVNSIDAwMDAwMDAwYzAwMTAwMDQgZnJvbSAweDAwMDA0MjM0NWEwZGE1NDUgdG8gMHgw
+MDAwMDAwMDAwMDBhYmNkLg0KKFhFTikgWzIwMTItMDktMDQgMTU6NTM6NDRdIHRyYXBzLmM6
+MjU4NDpkMTMgRG9tYWluIGF0dGVtcHRlZCBXUk1TUiAwMDAwMDAwMGMwMDEwMDA0IGZyb20g
+MHgwMDAwODY3OWMwMmI0MTY1IHRvIDB4MDAwMDAwMDAwMDAwYWJjZC4NCihYRU4pIFsyMDEy
+LTA5LTA0IDE1OjUzOjUxXSBBTUQtVmk6IERpc2FibGU6IGRldmljZSBpZCA9IDB4MGEwMCwg
+ZG9tYWluID0gMCwgcGFnaW5nIG1vZGUgPSAzDQooWEVOKSBbMjAxMi0wOS0wNCAxNTo1Mzo1
+MV0gQU1ELVZpOiBTZXR1cCBJL08gcGFnZSB0YWJsZTogZGV2aWNlIGlkID0gMHgwYTAwLCBy
+b290IHRhYmxlID0gMHgxZTFmYzAwMDAsIGRvbWFpbiA9IDE0LCBwYWdpbmcgbW9kZSA9IDMN
+CihYRU4pIFsyMDEyLTA5LTA0IDE1OjUzOjUxXSBBTUQtVmk6IFJlLWFzc2lnbiAwMDAwOjBh
+OjAwLjAgZnJvbSBkb20wIHRvIGRvbTE0DQooWEVOKSBbMjAxMi0wOS0wNCAxNTo1Mzo1MV0g
+QU1ELVZpOiBEaXNhYmxlOiBkZXZpY2UgaWQgPSAweDBhMDEsIGRvbWFpbiA9IDAsIHBhZ2lu
+ZyBtb2RlID0gMw0KKFhFTikgWzIwMTItMDktMDQgMTU6NTM6NTFdIEFNRC1WaTogU2V0dXAg
+SS9PIHBhZ2UgdGFibGU6IGRldmljZSBpZCA9IDB4MGEwMSwgcm9vdCB0YWJsZSA9IDB4MWUx
+ZmMwMDAwLCBkb21haW4gPSAxNCwgcGFnaW5nIG1vZGUgPSAzDQooWEVOKSBbMjAxMi0wOS0w
+NCAxNTo1Mzo1MV0gQU1ELVZpOiBSZS1hc3NpZ24gMDAwMDowYTowMC4xIGZyb20gZG9tMCB0
+byBkb20xNA0KKFhFTikgWzIwMTItMDktMDQgMTU6NTM6NTFdIEFNRC1WaTogRGlzYWJsZTog
+ZGV2aWNlIGlkID0gMHgwYTAyLCBkb21haW4gPSAwLCBwYWdpbmcgbW9kZSA9IDMNCihYRU4p
+IFsyMDEyLTA5LTA0IDE1OjUzOjUxXSBBTUQtVmk6IFNldHVwIEkvTyBwYWdlIHRhYmxlOiBk
+ZXZpY2UgaWQgPSAweDBhMDIsIHJvb3QgdGFibGUgPSAweDFlMWZjMDAwMCwgZG9tYWluID0g
+MTQsIHBhZ2luZyBtb2RlID0gMw0KKFhFTikgWzIwMTItMDktMDQgMTU6NTM6NTFdIEFNRC1W
+aTogUmUtYXNzaWduIDAwMDA6MGE6MDAuMiBmcm9tIGRvbTAgdG8gZG9tMTQNCihYRU4pIFsy
+MDEyLTA5LTA0IDE1OjUzOjUxXSBBTUQtVmk6IERpc2FibGU6IGRldmljZSBpZCA9IDB4MGEw
+MywgZG9tYWluID0gMCwgcGFnaW5nIG1vZGUgPSAzDQooWEVOKSBbMjAxMi0wOS0wNCAxNTo1
+Mzo1MV0gQU1ELVZpOiBTZXR1cCBJL08gcGFnZSB0YWJsZTogZGV2aWNlIGlkID0gMHgwYTAz
+LCByb290IHRhYmxlID0gMHgxZTFmYzAwMDAsIGRvbWFpbiA9IDE0LCBwYWdpbmcgbW9kZSA9
+IDMNCihYRU4pIFsyMDEyLTA5LTA0IDE1OjUzOjUxXSBBTUQtVmk6IFJlLWFzc2lnbiAwMDAw
+OjBhOjAwLjMgZnJvbSBkb20wIHRvIGRvbTE0DQooWEVOKSBbMjAxMi0wOS0wNCAxNTo1Mzo1
+MV0gQU1ELVZpOiBEaXNhYmxlOiBkZXZpY2UgaWQgPSAweDBhMDQsIGRvbWFpbiA9IDAsIHBh
+Z2luZyBtb2RlID0gMw0KKFhFTikgWzIwMTItMDktMDQgMTU6NTM6NTFdIEFNRC1WaTogU2V0
+dXAgSS9PIHBhZ2UgdGFibGU6IGRldmljZSBpZCA9IDB4MGEwNCwgcm9vdCB0YWJsZSA9IDB4
+MWUxZmMwMDAwLCBkb21haW4gPSAxNCwgcGFnaW5nIG1vZGUgPSAzDQooWEVOKSBbMjAxMi0w
+OS0wNCAxNTo1Mzo1MV0gQU1ELVZpOiBSZS1hc3NpZ24gMDAwMDowYTowMC40IGZyb20gZG9t
+MCB0byBkb20xNA0KKFhFTikgWzIwMTItMDktMDQgMTU6NTM6NTFdIEFNRC1WaTogRGlzYWJs
+ZTogZGV2aWNlIGlkID0gMHgwYTA1LCBkb21haW4gPSAwLCBwYWdpbmcgbW9kZSA9IDMNCihY
+RU4pIFsyMDEyLTA5LTA0IDE1OjUzOjUxXSBBTUQtVmk6IFNldHVwIEkvTyBwYWdlIHRhYmxl
+OiBkZXZpY2UgaWQgPSAweDBhMDUsIHJvb3QgdGFibGUgPSAweDFlMWZjMDAwMCwgZG9tYWlu
+ID0gMTQsIHBhZ2luZyBtb2RlID0gMw0KKFhFTikgWzIwMTItMDktMDQgMTU6NTM6NTFdIEFN
+RC1WaTogUmUtYXNzaWduIDAwMDA6MGE6MDAuNSBmcm9tIGRvbTAgdG8gZG9tMTQNCihYRU4p
+IFsyMDEyLTA5LTA0IDE1OjUzOjUxXSBBTUQtVmk6IERpc2FibGU6IGRldmljZSBpZCA9IDB4
+MGEwNiwgZG9tYWluID0gMCwgcGFnaW5nIG1vZGUgPSAzDQooWEVOKSBbMjAxMi0wOS0wNCAx
+NTo1Mzo1MV0gQU1ELVZpOiBTZXR1cCBJL08gcGFnZSB0YWJsZTogZGV2aWNlIGlkID0gMHgw
+YTA2LCByb290IHRhYmxlID0gMHgxZTFmYzAwMDAsIGRvbWFpbiA9IDE0LCBwYWdpbmcgbW9k
+ZSA9IDMNCihYRU4pIFsyMDEyLTA5LTA0IDE1OjUzOjUxXSBBTUQtVmk6IFJlLWFzc2lnbiAw
+MDAwOjBhOjAwLjYgZnJvbSBkb20wIHRvIGRvbTE0DQooWEVOKSBbMjAxMi0wOS0wNCAxNTo1
+Mzo1MV0gQU1ELVZpOiBEaXNhYmxlOiBkZXZpY2UgaWQgPSAweDBhMDcsIGRvbWFpbiA9IDAs
+IHBhZ2luZyBtb2RlID0gMw0KKFhFTikgWzIwMTItMDktMDQgMTU6NTM6NTFdIEFNRC1WaTog
+U2V0dXAgSS9PIHBhZ2UgdGFibGU6IGRldmljZSBpZCA9IDB4MGEwNywgcm9vdCB0YWJsZSA9
+IDB4MWUxZmMwMDAwLCBkb21haW4gPSAxNCwgcGFnaW5nIG1vZGUgPSAzDQooWEVOKSBbMjAx
+Mi0wOS0wNCAxNTo1Mzo1MV0gQU1ELVZpOiBSZS1hc3NpZ24gMDAwMDowYTowMC43IGZyb20g
+ZG9tMCB0byBkb20xNA0KKFhFTikgWzIwMTItMDktMDQgMTU6NTM6NTFdIEFNRC1WaTogRGlz
+YWJsZTogZGV2aWNlIGlkID0gMHgwNzAwLCBkb21haW4gPSAwLCBwYWdpbmcgbW9kZSA9IDMN
+CihYRU4pIFsyMDEyLTA5LTA0IDE1OjUzOjUxXSBBTUQtVmk6IFNldHVwIEkvTyBwYWdlIHRh
+YmxlOiBkZXZpY2UgaWQgPSAweDA3MDAsIHJvb3QgdGFibGUgPSAweDFlMWZjMDAwMCwgZG9t
+YWluID0gMTQsIHBhZ2luZyBtb2RlID0gMw0KKFhFTikgWzIwMTItMDktMDQgMTU6NTM6NTFd
+IEFNRC1WaTogUmUtYXNzaWduIDAwMDA6MDc6MDAuMCBmcm9tIGRvbTAgdG8gZG9tMTQNCihY
+RU4pIFsyMDEyLTA5LTA0IDE1OjUzOjUxXSB0cmFwcy5jOjI1ODQ6ZDE0IERvbWFpbiBhdHRl
+bXB0ZWQgV1JNU1IgMDAwMDAwMDBjMDAxMDAwNCBmcm9tIDB4MDAwMDQyMzQ1YTBkYTU0NSB0
+byAweDAwMDAwMDAwMDAwMGFiY2QuDQooWEVOKSBbMjAxMi0wOS0wNCAxNTo1NDowMF0gSFZN
+MTU6IEhWTSBMb2FkZXINCihYRU4pIFsyMDEyLTA5LTA0IDE1OjU0OjAwXSBIVk0xNTogRGV0
+ZWN0ZWQgWGVuIHY0LjIuMC1yYzQtcHJlDQooWEVOKSBbMjAxMi0wOS0wNCAxNTo1NDowMF0g
+SFZNMTU6IFhlbmJ1cyByaW5ncyBAMHhmZWZmYzAwMCwgZXZlbnQgY2hhbm5lbCA0DQooWEVO
+KSBbMjAxMi0wOS0wNCAxNTo1NDowMF0gSFZNMTU6IFN5c3RlbSByZXF1ZXN0ZWQgUk9NQklP
+Uw0KKFhFTikgWzIwMTItMDktMDQgMTU6NTQ6MDBdIEhWTTE1OiBDUFUgc3BlZWQgaXMgMzIw
+MCBNSHoNCihYRU4pIFsyMDEyLTA5LTA0IDE1OjU0OjAwXSBpcnEuYzoyNzA6IERvbTE1IFBD
+SSBsaW5rIDAgY2hhbmdlZCAwIC0+IDUNCihYRU4pIFsyMDEyLTA5LTA0IDE1OjU0OjAwXSBI
+Vk0xNTogUENJLUlTQSBsaW5rIDAgcm91dGVkIHRvIElSUTUNCihYRU4pIFsyMDEyLTA5LTA0
+IDE1OjU0OjAwXSBpcnEuYzoyNzA6IERvbTE1IFBDSSBsaW5rIDEgY2hhbmdlZCAwIC0+IDEw
+DQooWEVOKSBbMjAxMi0wOS0wNCAxNTo1NDowMF0gSFZNMTU6IFBDSS1JU0EgbGluayAxIHJv
+dXRlZCB0byBJUlExMA0KKFhFTikgWzIwMTItMDktMDQgMTU6NTQ6MDBdIGlycS5jOjI3MDog
+RG9tMTUgUENJIGxpbmsgMiBjaGFuZ2VkIDAgLT4gMTENCihYRU4pIFsyMDEyLTA5LTA0IDE1
+OjU0OjAwXSBIVk0xNTogUENJLUlTQSBsaW5rIDIgcm91dGVkIHRvIElSUTExDQooWEVOKSBb
+MjAxMi0wOS0wNCAxNTo1NDowMF0gaXJxLmM6MjcwOiBEb20xNSBQQ0kgbGluayAzIGNoYW5n
+ZWQgMCAtPiA1DQooWEVOKSBbMjAxMi0wOS0wNCAxNTo1NDowMF0gSFZNMTU6IFBDSS1JU0Eg
+bGluayAzIHJvdXRlZCB0byBJUlE1DQooWEVOKSBbMjAxMi0wOS0wNCAxNTo1NDowMF0gSFZN
+MTU6IHBjaSBkZXYgMDE6MiBJTlRELT5JUlE1DQooWEVOKSBbMjAxMi0wOS0wNCAxNTo1NDow
+MF0gSFZNMTU6IHBjaSBkZXYgMDE6MyBJTlRBLT5JUlExMA0KKFhFTikgWzIwMTItMDktMDQg
+MTU6NTQ6MDBdIEhWTTE1OiBwY2kgZGV2IDAzOjAgSU5UQS0+SVJRNQ0KKFhFTikgWzIwMTIt
+MDktMDQgMTU6NTQ6MDBdIEhWTTE1OiBwY2kgZGV2IDA0OjAgSU5UQS0+SVJRNQ0KKFhFTikg
+WzIwMTItMDktMDQgMTU6NTQ6MDFdIEhWTTE1OiBwY2kgZGV2IDAyOjAgYmFyIDEwIHNpemUg
+MDIwMDAwMDA6IGYwMDAwMDA4DQooWEVOKSBbMjAxMi0wOS0wNCAxNTo1NDowMV0gSFZNMTU6
+IHBjaSBkZXYgMDM6MCBiYXIgMTQgc2l6ZSAwMTAwMDAwMDogZjIwMDAwMDgNCihYRU4pIFsy
+MDEyLTA5LTA0IDE1OjU0OjAxXSBIVk0xNTogcGNpIGRldiAwNDowIGJhciAxMCBzaXplIDAw
+MDIwMDAwOiBmMzAwMDAwMA0KKFhFTikgWzIwMTItMDktMDQgMTU6NTQ6MDFdIEhWTTE1OiBw
+Y2kgZGV2IDAyOjAgYmFyIDE0IHNpemUgMDAwMDEwMDA6IGYzMDIwMDAwDQooWEVOKSBbMjAx
+Mi0wOS0wNCAxNTo1NDowMV0gSFZNMTU6IHBjaSBkZXYgMDM6MCBiYXIgMTAgc2l6ZSAwMDAw
+MDEwMDogMDAwMGMwMDENCihYRU4pIFsyMDEyLTA5LTA0IDE1OjU0OjAxXSBIVk0xNTogcGNp
+IGRldiAwNDowIGJhciAxNCBzaXplIDAwMDAwMDQwOiAwMDAwYzEwMQ0KKFhFTikgWzIwMTIt
+MDktMDQgMTU6NTQ6MDFdIEhWTTE1OiBwY2kgZGV2IDAxOjIgYmFyIDIwIHNpemUgMDAwMDAw
+MjA6IDAwMDBjMTQxDQooWEVOKSBbMjAxMi0wOS0wNCAxNTo1NDowMV0gSFZNMTU6IHBjaSBk
+ZXYgMDE6MSBiYXIgMjAgc2l6ZSAwMDAwMDAxMDogMDAwMGMxNjENCihYRU4pIFsyMDEyLTA5
+LTA0IDE1OjU0OjAxXSBIVk0xNTogTXVsdGlwcm9jZXNzb3IgaW5pdGlhbGlzYXRpb246DQoo
+WEVOKSBbMjAxMi0wOS0wNCAxNTo1NDowMV0gSFZNMTU6ICAtIENQVTAgLi4uIDQ4LWJpdCBw
+aHlzIC4uLiBmaXhlZCBNVFJScyAuLi4gdmFyIE1UUlJzIFsyLzhdIC4uLiBkb25lLg0KKFhF
+TikgWzIwMTItMDktMDQgMTU6NTQ6MDFdIEhWTTE1OiAgLSBDUFUxIC4uLiA0OC1iaXQgcGh5
+cyAuLi4gZml4ZWQgTVRSUnMgLi4uIHZhciBNVFJScyBbMi84XSAuLi4gZG9uZS4NCihYRU4p
+IFsyMDEyLTA5LTA0IDE1OjU0OjAxXSBIVk0xNTogVGVzdGluZyBIVk0gZW52aXJvbm1lbnQ6
+DQooWEVOKSBbMjAxMi0wOS0wNCAxNTo1NDowMV0gSFZNMTU6ICAtIFJFUCBJTlNCIGFjcm9z
+cyBwYWdlIGJvdW5kYXJpZXMgLi4uIHBhc3NlZA0KKFhFTikgWzIwMTItMDktMDQgMTU6NTQ6
+MDFdIEhWTTE1OiAgLSBHUyBiYXNlIE1TUnMgYW5kIFNXQVBHUyAuLi4gcGFzc2VkDQooWEVO
+KSBbMjAxMi0wOS0wNCAxNTo1NDowMV0gSFZNMTU6IFBhc3NlZCAyIG9mIDIgdGVzdHMNCihY
+RU4pIFsyMDEyLTA5LTA0IDE1OjU0OjAxXSBIVk0xNTogV3JpdGluZyBTTUJJT1MgdGFibGVz
+IC4uLg0KKFhFTikgWzIwMTItMDktMDQgMTU6NTQ6MDFdIEhWTTE1OiBMb2FkaW5nIFJPTUJJ
+T1MgLi4uDQooWEVOKSBbMjAxMi0wOS0wNCAxNTo1NDowMV0gSFZNMTU6IDk2NjAgYnl0ZXMg
+b2YgUk9NQklPUyBoaWdoLW1lbW9yeSBleHRlbnNpb25zOg0KKFhFTikgWzIwMTItMDktMDQg
+MTU6NTQ6MDFdIEhWTTE1OiAgIFJlbG9jYXRpbmcgdG8gMHhmYzAwMTAwMC0weGZjMDAzNWJj
+IC4uLiBkb25lDQooWEVOKSBbMjAxMi0wOS0wNCAxNTo1NDowMV0gSFZNMTU6IENyZWF0aW5n
+IE1QIHRhYmxlcyAuLi4NCihYRU4pIFsyMDEyLTA5LTA0IDE1OjU0OjAxXSBIVk0xNTogTG9h
+ZGluZyBDaXJydXMgVkdBQklPUyAuLi4NCihYRU4pIFsyMDEyLTA5LTA0IDE1OjU0OjAxXSBI
+Vk0xNTogTG9hZGluZyBQQ0kgT3B0aW9uIFJPTSAuLi4NCihYRU4pIFsyMDEyLTA5LTA0IDE1
+OjU0OjAxXSBIVk0xNTogIC0gTWFudWZhY3R1cmVyOiBodHRwOi8vaXB4ZS5vcmcNCihYRU4p
+IFsyMDEyLTA5LTA0IDE1OjU0OjAxXSBIVk0xNTogIC0gUHJvZHVjdCBuYW1lOiBpUFhFDQoo
+WEVOKSBbMjAxMi0wOS0wNCAxNTo1NDowMV0gSFZNMTU6IE9wdGlvbiBST01zOg0KKFhFTikg
+WzIwMTItMDktMDQgMTU6NTQ6MDFdIEhWTTE1OiAgYzAwMDAtYzhmZmY6IFZHQSBCSU9TDQoo
+WEVOKSBbMjAxMi0wOS0wNCAxNTo1NDowMV0gSFZNMTU6ICBjOTAwMC1kOWZmZjogRXRoZXJi
+b290IFJPTQ0KKFhFTikgWzIwMTItMDktMDQgMTU6NTQ6MDFdIEhWTTE1OiBMb2FkaW5nIEFD
+UEkgLi4uDQooWEVOKSBbMjAxMi0wOS0wNCAxNTo1NDowMV0gSFZNMTU6IHZtODYgVFNTIGF0
+IGZjMDBmNjgwDQooWEVOKSBbMjAxMi0wOS0wNCAxNTo1NDowMV0gSFZNMTU6IEJJT1MgbWFw
+Og0KKFhFTikgWzIwMTItMDktMDQgMTU6NTQ6MDFdIEhWTTE1OiAgZjAwMDAtZmZmZmY6IE1h
+aW4gQklPUw0KKFhFTikgWzIwMTItMDktMDQgMTU6NTQ6MDFdIEhWTTE1OiBFODIwIHRhYmxl
+Og0KKFhFTikgWzIwMTItMDktMDQgMTU6NTQ6MDFdIEhWTTE1OiAgWzAwXTogMDAwMDAwMDA6
+MDAwMDAwMDAgLSAwMDAwMDAwMDowMDA5ZTAwMDogUkFNDQooWEVOKSBbMjAxMi0wOS0wNCAx
+NTo1NDowMV0gSFZNMTU6ICBbMDFdOiAwMDAwMDAwMDowMDA5ZTAwMCAtIDAwMDAwMDAwOjAw
+MGEwMDAwOiBSRVNFUlZFRA0KKFhFTikgWzIwMTItMDktMDQgMTU6NTQ6MDFdIEhWTTE1OiAg
+SE9MRTogMDAwMDAwMDA6MDAwYTAwMDAgLSAwMDAwMDAwMDowMDBlMDAwMA0KKFhFTikgWzIw
+MTItMDktMDQgMTU6NTQ6MDFdIEhWTTE1OiAgWzAyXTogMDAwMDAwMDA6MDAwZTAwMDAgLSAw
+MDAwMDAwMDowMDEwMDAwMDogUkVTRVJWRUQNCihYRU4pIFsyMDEyLTA5LTA0IDE1OjU0OjAx
+XSBIVk0xNTogIFswM106IDAwMDAwMDAwOjAwMTAwMDAwIC0gMDAwMDAwMDA6MWY4MDAwMDA6
+IFJBTQ0KKFhFTikgWzIwMTItMDktMDQgMTU6NTQ6MDFdIEhWTTE1OiAgSE9MRTogMDAwMDAw
+MDA6MWY4MDAwMDAgLSAwMDAwMDAwMDpmYzAwMDAwMA0KKFhFTikgWzIwMTItMDktMDQgMTU6
+NTQ6MDFdIEhWTTE1OiAgWzA0XTogMDAwMDAwMDA6ZmMwMDAwMDAgLSAwMDAwMDAwMTowMDAw
+MDAwMDogUkVTRVJWRUQNCihYRU4pIFsyMDEyLTA5LTA0IDE1OjU0OjAxXSBIVk0xNTogSW52
+b2tpbmcgUk9NQklPUyAuLi4NCihYRU4pIFsyMDEyLTA5LTA0IDE1OjU0OjAxXSBIVk0xNTog
+JFJldmlzaW9uOiAxLjIyMSAkICREYXRlOiAyMDA4LzEyLzA3IDE3OjMyOjI5ICQNCihYRU4p
+IFsyMDEyLTA5LTA0IDE1OjU0OjAxXSBzdGR2Z2EuYzoxNDc6ZDE1IGVudGVyaW5nIHN0ZHZn
+YSBhbmQgY2FjaGluZyBtb2Rlcw0KKFhFTikgWzIwMTItMDktMDQgMTU6NTQ6MDFdIEhWTTE1
+OiBWR0FCaW9zICRJZDogdmdhYmlvcy5jLHYgMS42NyAyMDA4LzAxLzI3IDA5OjQ0OjEyIHZy
+dXBwZXJ0IEV4cCAkDQooWEVOKSBbMjAxMi0wOS0wNCAxNTo1NDowMV0gSFZNMTU6IEJvY2hz
+IEJJT1MgLSBidWlsZDogMDYvMjMvOTkNCihYRU4pIFsyMDEyLTA5LTA0IDE1OjU0OjAxXSBI
+Vk0xNTogJFJldmlzaW9uOiAxLjIyMSAkICREYXRlOiAyMDA4LzEyLzA3IDE3OjMyOjI5ICQN
+CihYRU4pIFsyMDEyLTA5LTA0IDE1OjU0OjAxXSBIVk0xNTogT3B0aW9uczogYXBtYmlvcyBw
+Y2liaW9zIGVsdG9yaXRvIFBNTSANCihYRU4pIFsyMDEyLTA5LTA0IDE1OjU0OjAxXSBIVk0x
+NTogDQooWEVOKSBbMjAxMi0wOS0wNCAxNTo1NDowMV0gSFZNMTU6IGF0YTAtMDogUENIUz0x
+NjM4My8xNi82MyB0cmFuc2xhdGlvbj1sYmEgTENIUz0xMDI0LzI1NS82Mw0KKFhFTikgWzIw
+MTItMDktMDQgMTU6NTQ6MDFdIEhWTTE1OiBhdGEwIG1hc3RlcjogUUVNVSBIQVJERElTSyBB
+VEEtNyBIYXJkLURpc2sgKDU3MjQ0IE1CeXRlcykNCihYRU4pIFsyMDEyLTA5LTA0IDE1OjU0
+OjAyXSBIVk0xNTogSURFIHRpbWUgb3V0DQooWEVOKSBbMjAxMi0wOS0wNCAxNTo1NDowMl0g
+SFZNMTU6IGF0YTEgbWFzdGVyOiBRRU1VIERWRC1ST00gQVRBUEktNCBDRC1Sb20vRFZELVJv
+bQ0KKFhFTikgWzIwMTItMDktMDQgMTU6NTQ6MDRdIEhWTTE1OiBJREUgdGltZSBvdXQNCihY
+RU4pIFsyMDEyLTA5LTA0IDE1OjU0OjA0XSBIVk0xNTogDQooWEVOKSBbMjAxMi0wOS0wNCAx
+NTo1NDowNF0gSFZNMTU6IA0KKFhFTikgWzIwMTItMDktMDQgMTU6NTQ6MDRdIEhWTTE1OiAN
+CihYRU4pIFsyMDEyLTA5LTA0IDE1OjU0OjA0XSBIVk0xNTogUHJlc3MgRjEyIGZvciBib290
+IG1lbnUuDQooWEVOKSBbMjAxMi0wOS0wNCAxNTo1NDowNF0gSFZNMTU6IA0KKFhFTikgWzIw
+MTItMDktMDQgMTU6NTQ6MDRdIEhWTTE1OiBCb290aW5nIGZyb20gSGFyZCBEaXNrLi4uDQoo
+WEVOKSBbMjAxMi0wOS0wNCAxNTo1NDowNF0gSFZNMTU6IEJvb3RpbmcgZnJvbSAwMDAwOjdj
+MDANCihYRU4pIFsyMDEyLTA5LTA0IDE1OjU0OjMyXSBpcnEuYzoyNzA6IERvbTE1IFBDSSBs
+aW5rIDAgY2hhbmdlZCA1IC0+IDANCihYRU4pIFsyMDEyLTA5LTA0IDE1OjU0OjMyXSBpcnEu
+YzoyNzA6IERvbTE1IFBDSSBsaW5rIDEgY2hhbmdlZCAxMCAtPiAwDQooWEVOKSBbMjAxMi0w
+OS0wNCAxNTo1NDozMl0gaXJxLmM6MjcwOiBEb20xNSBQQ0kgbGluayAyIGNoYW5nZWQgMTEg
+LT4gMA0KKFhFTikgWzIwMTItMDktMDQgMTU6NTQ6MzJdIGlycS5jOjI3MDogRG9tMTUgUENJ
+IGxpbmsgMyBjaGFuZ2VkIDUgLT4gMA0KKFhFTikgWzIwMTItMDktMDQgMTU6NTQ6MzNdIGh2
+bS5jOjI0MzU6ZDE1IGd1ZXN0IGF0dGVtcHRlZCB3cml0ZSB0byByZWFkLW9ubHkgbWVtb3J5
+IHBhZ2UuIGdmbj0weGRjLCBtZm49MHhhNGEwYQ0KKFhFTikgWzIwMTItMDktMDQgMTU6NTQ6
+MzNdIGh2bS5jOjI0MzU6ZDE1IGd1ZXN0IGF0dGVtcHRlZCB3cml0ZSB0byByZWFkLW9ubHkg
+bWVtb3J5IHBhZ2UuIGdmbj0weGRkLCBtZm49MHhhNGEwOQ0KKFhFTikgWzIwMTItMDktMDQg
+MTU6NTQ6MzNdIGh2bS5jOjI0MzU6ZDE1IGd1ZXN0IGF0dGVtcHRlZCB3cml0ZSB0byByZWFk
+LW9ubHkgbWVtb3J5IHBhZ2UuIGdmbj0weGRlLCBtZm49MHhhNGEwOA0KKFhFTikgWzIwMTIt
+MDktMDQgMTU6NTQ6MzNdIGh2bS5jOjI0MzU6ZDE1IGd1ZXN0IGF0dGVtcHRlZCB3cml0ZSB0
+byByZWFkLW9ubHkgbWVtb3J5IHBhZ2UuIGdmbj0weGRkLCBtZm49MHhhNGEwOQ0KKFhFTikg
+WzIwMTItMDktMDQgMTU6NTQ6MzNdIGh2bS5jOjI0MzU6ZDE1IGd1ZXN0IGF0dGVtcHRlZCB3
+cml0ZSB0byByZWFkLW9ubHkgbWVtb3J5IHBhZ2UuIGdmbj0weGRjLCBtZm49MHhhNGEwYQ0K
+KFhFTikgWzIwMTItMDktMDQgMTU6NTQ6MzNdIGh2bS5jOjI0MzU6ZDE1IGd1ZXN0IGF0dGVt
+cHRlZCB3cml0ZSB0byByZWFkLW9ubHkgbWVtb3J5IHBhZ2UuIGdmbj0weGRlLCBtZm49MHhh
+NGEwOA0KKFhFTikgWzIwMTItMDktMDQgMTU6NTQ6MzNdIGh2bS5jOjI0MzU6ZDE1IGd1ZXN0
+IGF0dGVtcHRlZCB3cml0ZSB0byByZWFkLW9ubHkgbWVtb3J5IHBhZ2UuIGdmbj0weGRkLCBt
+Zm49MHhhNGEwOQ0KKFhFTikgWzIwMTItMDktMDQgMTU6NTQ6MzNdIGh2bS5jOjI0MzU6ZDE1
+IGd1ZXN0IGF0dGVtcHRlZCB3cml0ZSB0byByZWFkLW9ubHkgbWVtb3J5IHBhZ2UuIGdmbj0w
+eGRlLCBtZm49MHhhNGEwOA0KKFhFTikgWzIwMTItMDktMDQgMTU6NTQ6MzNdIGh2bS5jOjI0
+MzU6ZDE1IGd1ZXN0IGF0dGVtcHRlZCB3cml0ZSB0byByZWFkLW9ubHkgbWVtb3J5IHBhZ2Uu
+IGdmbj0weGRjLCBtZm49MHhhNGEwYQ0KKFhFTikgWzIwMTItMDktMDQgMTU6NTQ6MzNdIGh2
+bS5jOjI0MzU6ZDE1IGd1ZXN0IGF0dGVtcHRlZCB3cml0ZSB0byByZWFkLW9ubHkgbWVtb3J5
+IHBhZ2UuIGdmbj0weGRkLCBtZm49MHhhNGEwOQ0KKFhFTikgWzIwMTItMDktMDQgMTU6NTQ6
+MzNdIGh2bS5jOjI0MzU6ZDE1IGd1ZXN0IGF0dGVtcHRlZCB3cml0ZSB0byByZWFkLW9ubHkg
+bWVtb3J5IHBhZ2UuIGdmbj0weGRjLCBtZm49MHhhNGEwYQ0KKFhFTikgWzIwMTItMDktMDQg
+MTU6NTQ6MzNdIGh2bS5jOjI0MzU6ZDE1IGd1ZXN0IGF0dGVtcHRlZCB3cml0ZSB0byByZWFk
+LW9ubHkgbWVtb3J5IHBhZ2UuIGdmbj0weGRkLCBtZm49MHhhNGEwOQ0KKFhFTikgWzIwMTIt
+MDktMDQgMTU6NTQ6MzNdIGh2bS5jOjI0MzU6ZDE1IGd1ZXN0IGF0dGVtcHRlZCB3cml0ZSB0
+byByZWFkLW9ubHkgbWVtb3J5IHBhZ2UuIGdmbj0weGRlLCBtZm49MHhhNGEwOA0KKFhFTikg
+WzIwMTItMDktMDQgMTU6NTQ6MzNdIGh2bS5jOjI0MzU6ZDE1IGd1ZXN0IGF0dGVtcHRlZCB3
+cml0ZSB0byByZWFkLW9ubHkgbWVtb3J5IHBhZ2UuIGdmbj0weGRkLCBtZm49MHhhNGEwOQ0K
+KFhFTikgWzIwMTItMDktMDQgMTU6NTQ6MzNdIGh2bS5jOjI0MzU6ZDE1IGd1ZXN0IGF0dGVt
+cHRlZCB3cml0ZSB0byByZWFkLW9ubHkgbWVtb3J5IHBhZ2UuIGdmbj0weGRjLCBtZm49MHhh
+NGEwYQ0KKFhFTikgWzIwMTItMDktMDQgMTU6NTQ6MzNdIGh2bS5jOjI0MzU6ZDE1IGd1ZXN0
+IGF0dGVtcHRlZCB3cml0ZSB0byByZWFkLW9ubHkgbWVtb3J5IHBhZ2UuIGdmbj0weGRkLCBt
+Zm49MHhhNGEwOQ0KKFhFTikgWzIwMTItMDktMDQgMTU6NTQ6MzNdIGh2bS5jOjI0MzU6ZDE1
+IGd1ZXN0IGF0dGVtcHRlZCB3cml0ZSB0byByZWFkLW9ubHkgbWVtb3J5IHBhZ2UuIGdmbj0w
+eGRjLCBtZm49MHhhNGEwYQ0KKFhFTikgWzIwMTItMDktMDQgMTU6NTQ6MzNdIGh2bS5jOjI0
+MzU6ZDE1IGd1ZXN0IGF0dGVtcHRlZCB3cml0ZSB0byByZWFkLW9ubHkgbWVtb3J5IHBhZ2Uu
+IGdmbj0weGRkLCBtZm49MHhhNGEwOQ0KKFhFTikgWzIwMTItMDktMDQgMTU6NTQ6MzVdIGh2
+bS5jOjI0MzU6ZDE1IGd1ZXN0IGF0dGVtcHRlZCB3cml0ZSB0byByZWFkLW9ubHkgbWVtb3J5
+IHBhZ2UuIGdmbj0weGM5LCBtZm49MHhhNGExZA0KKFhFTikgWzIwMTItMDktMDQgMTU6NTQ6
+MzVdIGh2bS5jOjI0MzU6ZDE1IGd1ZXN0IGF0dGVtcHRlZCB3cml0ZSB0byByZWFkLW9ubHkg
+bWVtb3J5IHBhZ2UuIGdmbj0weGNiLCBtZm49MHhhNGExYg0KKFhFTikgWzIwMTItMDktMDQg
+MTU6NTQ6MzVdIGh2bS5jOjI0MzU6ZDE1IGd1ZXN0IGF0dGVtcHRlZCB3cml0ZSB0byByZWFk
+LW9ubHkgbWVtb3J5IHBhZ2UuIGdmbj0weGNkLCBtZm49MHhhNGExOQ0KKFhFTikgWzIwMTIt
+MDktMDQgMTU6NTQ6MzVdIGh2bS5jOjI0MzU6ZDE1IGd1ZXN0IGF0dGVtcHRlZCB3cml0ZSB0
+byByZWFkLW9ubHkgbWVtb3J5IHBhZ2UuIGdmbj0weGNmLCBtZm49MHhhNGExNw0KKFhFTikg
+WzIwMTItMDktMDQgMTU6NTQ6MzVdIGh2bS5jOjI0MzU6ZDE1IGd1ZXN0IGF0dGVtcHRlZCB3
+cml0ZSB0byByZWFkLW9ubHkgbWVtb3J5IHBhZ2UuIGdmbj0weGQxLCBtZm49MHhhNGExNQ0K
+KFhFTikgWzIwMTItMDktMDQgMTU6NTQ6MzVdIGh2bS5jOjI0MzU6ZDE1IGd1ZXN0IGF0dGVt
+cHRlZCB3cml0ZSB0byByZWFkLW9ubHkgbWVtb3J5IHBhZ2UuIGdmbj0weGQzLCBtZm49MHhh
+NGExMw0KKFhFTikgWzIwMTItMDktMDQgMTU6NTQ6MzVdIGh2bS5jOjI0MzU6ZDE1IGd1ZXN0
+IGF0dGVtcHRlZCB3cml0ZSB0byByZWFkLW9ubHkgbWVtb3J5IHBhZ2UuIGdmbj0weGQ1LCBt
+Zm49MHhhNGExMQ0KKFhFTikgWzIwMTItMDktMDQgMTU6NTQ6MzVdIGh2bS5jOjI0MzU6ZDE1
+IGd1ZXN0IGF0dGVtcHRlZCB3cml0ZSB0byByZWFkLW9ubHkgbWVtb3J5IHBhZ2UuIGdmbj0w
+eGQ3LCBtZm49MHhhNGEwZg0KKFhFTikgWzIwMTItMDktMDQgMTU6NTQ6MzVdIGh2bS5jOjI0
+MzU6ZDE1IGd1ZXN0IGF0dGVtcHRlZCB3cml0ZSB0byByZWFkLW9ubHkgbWVtb3J5IHBhZ2Uu
+IGdmbj0weGQ5LCBtZm49MHhhNGEwZA0KKFhFTikgWzIwMTItMDktMDQgMTU6NTQ6MzVdIGh2
+bS5jOjI0MzU6ZDE1IGd1ZXN0IGF0dGVtcHRlZCB3cml0ZSB0byByZWFkLW9ubHkgbWVtb3J5
+IHBhZ2UuIGdmbj0weGRiLCBtZm49MHhhNGEwYg0KKFhFTikgWzIwMTItMDktMDQgMTU6NTQ6
+MzVdIGh2bS5jOjI0MzU6ZDE1IGd1ZXN0IGF0dGVtcHRlZCB3cml0ZSB0byByZWFkLW9ubHkg
+bWVtb3J5IHBhZ2UuIGdmbj0weGRkLCBtZm49MHhhNGEwOQ0KKFhFTikgWzIwMTItMDktMDQg
+MTU6NTQ6MzVdIGh2bS5jOjI0MzU6ZDE1IGd1ZXN0IGF0dGVtcHRlZCB3cml0ZSB0byByZWFk
+LW9ubHkgbWVtb3J5IHBhZ2UuIGdmbj0weGRmLCBtZm49MHhhNGEwNw0KKFhFTikgWzIwMTIt
+MDktMDQgMTU6NTQ6MzVdIGh2bS5jOjI0MzU6ZDE1IGd1ZXN0IGF0dGVtcHRlZCB3cml0ZSB0
+byByZWFkLW9ubHkgbWVtb3J5IHBhZ2UuIGdmbj0weGUxLCBtZm49MHhhNGEwNQ0KKFhFTikg
+WzIwMTItMDktMDQgMTU6NTQ6MzVdIGh2bS5jOjI0MzU6ZDE1IGd1ZXN0IGF0dGVtcHRlZCB3
+cml0ZSB0byByZWFkLW9ubHkgbWVtb3J5IHBhZ2UuIGdmbj0weGUzLCBtZm49MHhhNGEwMw0K
+KFhFTikgWzIwMTItMDktMDQgMTU6NTQ6MzVdIGh2bS5jOjI0MzU6ZDE1IGd1ZXN0IGF0dGVt
+cHRlZCB3cml0ZSB0byByZWFkLW9ubHkgbWVtb3J5IHBhZ2UuIGdmbj0weGU1LCBtZm49MHhh
+NGEwMQ0KKFhFTikgWzIwMTItMDktMDQgMTU6NTQ6MzVdIGh2bS5jOjI0MzU6ZDE1IGd1ZXN0
+IGF0dGVtcHRlZCB3cml0ZSB0byByZWFkLW9ubHkgbWVtb3J5IHBhZ2UuIGdmbj0weGU3LCBt
+Zm49MHhhNDYzZg0KKFhFTikgWzIwMTItMDktMDQgMTU6NTQ6MzVdIGh2bS5jOjI0MzU6ZDE1
+IGd1ZXN0IGF0dGVtcHRlZCB3cml0ZSB0byByZWFkLW9ubHkgbWVtb3J5IHBhZ2UuIGdmbj0w
+eGU5LCBtZm49MHhhNDYzZA0KKFhFTikgWzIwMTItMDktMDQgMTU6NTQ6MzVdIGh2bS5jOjI0
+MzU6ZDE1IGd1ZXN0IGF0dGVtcHRlZCB3cml0ZSB0byByZWFkLW9ubHkgbWVtb3J5IHBhZ2Uu
+IGdmbj0weGViLCBtZm49MHhhNDYzYg0KKFhFTikgWzIwMTItMDktMDQgMTU6NTQ6MzVdIGh2
+bS5jOjI0MzU6ZDE1IGd1ZXN0IGF0dGVtcHRlZCB3cml0ZSB0byByZWFkLW9ubHkgbWVtb3J5
+IHBhZ2UuIGdmbj0weGVkLCBtZm49MHhhNDYzOQ0KKFhFTikgWzIwMTItMDktMDQgMTU6NTQ6
+MzVdIGh2bS5jOjI0MzU6ZDE1IGd1ZXN0IGF0dGVtcHRlZCB3cml0ZSB0byByZWFkLW9ubHkg
+bWVtb3J5IHBhZ2UuIGdmbj0weGVmLCBtZm49MHhhNDYzNw0KKFhFTikgWzIwMTItMDktMDQg
+MTY6MTM6NTZdIEFNRC1WaTogSU9fUEFHRV9GQVVMVDogZG9tYWluID0gMCwgZGV2aWNlIGlk
+ID0gMHgwYTA2LCBmYXVsdCBhZGRyZXNzID0gMHhjMmMyYzJjMA0KKFhFTikgWzIwMTItMDkt
+MDQgMTY6MTM6NTZdIEFNRC1WaTogSU9fUEFHRV9GQVVMVDogZG9tYWluID0gMTQsIGRldmlj
+ZSBpZCA9IDB4MDcwMCwgZmF1bHQgYWRkcmVzcyA9IDB4YTkwZjgzMDANCihYRU4pIFsyMDEy
+LTA5LTA0IDE2OjEzOjU2XSBBTUQtVmk6IElPX1BBR0VfRkFVTFQ6IGRvbWFpbiA9IDE0LCBk
+ZXZpY2UgaWQgPSAweDA3MDAsIGZhdWx0IGFkZHJlc3MgPSAweGE5MGY4MzQwDQooWEVOKSBb
+MjAxMi0wOS0wNCAxNjoxMzo1Nl0gQU1ELVZpOiBJT19QQUdFX0ZBVUxUOiBkb21haW4gPSAx
+NCwgZGV2aWNlIGlkID0gMHgwNzAwLCBmYXVsdCBhZGRyZXNzID0gMHhhOTBmODM4MA0KKFhF
+TikgWzIwMTItMDktMDQgMTY6MTM6NTZdIEFNRC1WaTogSU9fUEFHRV9GQVVMVDogZG9tYWlu
+ID0gMTQsIGRldmljZSBpZCA9IDB4MDcwMCwgZmF1bHQgYWRkcmVzcyA9IDB4YTkwZjgzYzAN
+Cg==
+------------0C30E31DB2590EB56
+Content-Type: text/plain; charset="us-ascii"
+MIME-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Content-Disposition: inline
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
+------------0C30E31DB2590EB56--
+
+
+
diff --git a/config/examples/test/corpus/<1336753602.23818.133.camel@zakaz.uk.xensource.com> b/config/examples/test/corpus/<1336753602.23818.133.camel@zakaz.uk.xensource.com>
new file mode 100644 (file)
index 0000000..bac9689
--- /dev/null
@@ -0,0 +1,127 @@
+From xen-devel-bounces@lists.xen.org Fri May 11 17:31:13 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 11 May 2012 17:31:13 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SSskF-0006J8-LX
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 11 May 2012 17:31:13 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SSsg4-0000di-7x; Fri, 11 May 2012 16:26:48 +0000
+Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1SSsg1-0000dE-Rd
+       for xen-devel@lists.xen.org; Fri, 11 May 2012 16:26:46 +0000
+Received: from [193.109.254.147:59489] by server-10.bemta-14.messagelabs.com
+       id A6/D7-05847-5CD3DAF4; Fri, 11 May 2012 16:26:45 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-2.tower-27.messagelabs.com!1336753604!8791247!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiA5ODU1MQ==\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 17209 invoked from network); 11 May 2012 16:26:44 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-2.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
+       11 May 2012 16:26:44 -0000
+X-IronPort-AV: E=Sophos;i="4.75,572,1330905600"; d="scan'208";a="12434396"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       11 May 2012 16:26:44 +0000
+Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0;
+       Fri, 11 May 2012 17:26:43 +0100
+Message-ID: <1336753602.23818.133.camel@zakaz.uk.xensource.com>
+From: Ian Campbell <Ian.Campbell@citrix.com>
+To: Ian Jackson <Ian.Jackson@eu.citrix.com>
+Date: Fri, 11 May 2012 17:26:42 +0100
+In-Reply-To: <20397.14624.57140.518016@mariner.uk.xensource.com>
+References: <1334928211-29856-1-git-send-email-roger.pau@citrix.com>
+       <1334928211-29856-4-git-send-email-roger.pau@citrix.com>
+       <20373.34767.584624.953798@mariner.uk.xensource.com>
+       <4F982F18.2080902@citrix.com>   <4F99360E.2010201@citrix.com>
+       <20377.18296.235567.918003@mariner.uk.xensource.com>
+       <1335445762.28015.141.camel@zakaz.uk.xensource.com>
+       <20397.14624.57140.518016@mariner.uk.xensource.com>
+Organization: Citrix Systems, Inc.
+X-Mailer: Evolution 3.2.2-1 
+MIME-Version: 1.0
+Cc: Roger Pau Monne <roger.pau@citrix.com>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] Fwd: Re: [PATCH v3 3/5] libxl: call hotplug scripts
+ from libxl for vbd
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Fri, 2012-05-11 at 17:06 +0100, Ian Jackson wrote:
+> Ian Campbell writes ("Re: [Xen-devel] Fwd: Re: [PATCH v3 3/5] libxl: call hotplug scripts from libxl for vbd"):
+> > On Thu, 2012-04-26 at 14:02 +0100, Ian Jackson wrote:
+> > > I think we need to think about these timeouts.  At the very least
+> > > they're policy which should probably not be hardcoded in libxl; and
+> > > arguably people might want to be able to specify infinite ("I trust my
+> > > guest or driver domain and never want to pull the rug out from under
+> > > its feet") or zero ("this guest or driver domain has gone wrong and I
+> > > want it killed, now").
+> > 
+> > Unless the same is going to be true of the eventual solution (which I
+> > suppose it may well be?) we should be wary of over engineering the
+> > interim solution for 4.2.
+> 
+> I guess.  Also xend's poor behaviour in this area (failing hotplug
+> timeouts) provides something of an excuse...
+> 
+> > > Perhaps it would be better to do things the other way around, and have
+> > > an env var for the case where we're _not_ calling the script from
+> > > udev ?  After all, udev config is configuration (at least on my
+> > > distros) which the user may not update when the software is updated.
+> > 
+> > It was my suggestion to do it this way so that we don't end up with a
+> > vestigial env var which must always be set for no real reason after
+> > we've removed the udev path altogether.
+> 
+> When we have "removed the udev path altogether" we will still need to
+> have something to prevent trouble if the udev rules remain for some
+> reason.
+> 
+> > I don't really mind though, we could live with that vestigial thing, or
+> > have another, easier, transition a few releases down the line.
+> 
+> The vestigial thing can indeed eventually go away.
+
+I'm happy for Roger and you to agree whichever sense you think best for
+the flag.
+
+Ian.
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1338287956-24691-1-git-send-email-stefano.stabellini@eu.citrix.com> b/config/examples/test/corpus/<1338287956-24691-1-git-send-email-stefano.stabellini@eu.citrix.com>
new file mode 100644 (file)
index 0000000..371736e
--- /dev/null
@@ -0,0 +1,205 @@
+From xen-devel-bounces@lists.xen.org Tue May 29 11:42:58 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Tue, 29 May 2012 11:42:58 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SZJt6-00034O-BB
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 29 May 2012 11:42:58 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SZJpq-0005aZ-AY; Tue, 29 May 2012 10:39:30 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1SZJpn-0005ZK-NF
+       for xen-devel@lists.xensource.com; Tue, 29 May 2012 10:39:28 +0000
+Received: from [85.158.139.83:45474] by server-4.bemta-5.messagelabs.com id
+       C4/8E-16506-F57A4CF4; Tue, 29 May 2012 10:39:27 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-5.tower-182.messagelabs.com!1338287963!30934701!3
+X-Originating-IP: [66.165.176.63]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyNTU4MTE=\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 17643 invoked from network); 29 May 2012 10:39:26 -0000
+Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
+       by server-5.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
+       29 May 2012 10:39:26 -0000
+X-IronPort-AV: E=Sophos;i="4.75,677,1330923600"; d="scan'208";a="196722667"
+Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
+       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       29 May 2012 06:39:23 -0400
+Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
+       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
+       Tue, 29 May 2012 06:39:23 -0400
+Received: from kaball.uk.xensource.com ([10.80.2.59]
+       helo=localhost.localdomain)     by ukmail1.uk.xensource.com with esmtp
+       (Exim 4.69)     (envelope-from <stefano.stabellini@eu.citrix.com>)      id
+       1SZJpd-0003cq-Gi; Tue, 29 May 2012 11:39:17 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+To: xen-devel@lists.xensource.com
+Date: Tue, 29 May 2012 11:39:06 +0100
+Message-ID: <1338287956-24691-1-git-send-email-stefano.stabellini@eu.citrix.com>
+X-Mailer: git-send-email 1.7.0.4
+In-Reply-To: <alpine.DEB.2.00.1205281439080.26786@kaball-desktop>
+References: <alpine.DEB.2.00.1205281439080.26786@kaball-desktop>
+MIME-Version: 1.0
+Cc: Ian.Jackson@eu.citrix.com, Ian.Campbell@citrix.com,
+       Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: [Xen-devel] [PATCH v8 01/11] libxl: make
+       libxl_device_disk_local_attach/detach internal functions
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+Changes in v8:
+- keep libxl__device_disk_local_attach/detach in libxl.c.
+
+Changes in v5:
+
+- remove _hidden from the implementation.
+
+Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+Acked-by: Ian Campbell <ian.campbell@citrix.com>
+Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
+---
+ tools/libxl/libxl.c            |   11 +++--------
+ tools/libxl/libxl.h            |    7 -------
+ tools/libxl/libxl_bootloader.c |    4 ++--
+ tools/libxl/libxl_internal.h   |    9 +++++++++
+ 4 files changed, 14 insertions(+), 17 deletions(-)
+
+diff --git a/tools/libxl/libxl.c b/tools/libxl/libxl.c
+index e3d05c2..cd870c4 100644
+--- a/tools/libxl/libxl.c
++++ b/tools/libxl/libxl.c
+@@ -1735,9 +1735,9 @@ out:
+     return ret;
+ }
+-char * libxl_device_disk_local_attach(libxl_ctx *ctx, libxl_device_disk *disk)
++char * libxl__device_disk_local_attach(libxl__gc *gc, libxl_device_disk *disk)
+ {
+-    GC_INIT(ctx);
++    libxl_ctx *ctx = gc->owner;
+     char *dev = NULL;
+     char *ret = NULL;
+     int rc;
+@@ -1792,11 +1792,10 @@ char * libxl_device_disk_local_attach(libxl_ctx *ctx, libxl_device_disk *disk)
+  out:
+     if (dev != NULL)
+         ret = strdup(dev);
+-    GC_FREE;
+     return ret;
+ }
+-int libxl_device_disk_local_detach(libxl_ctx *ctx, libxl_device_disk *disk)
++int libxl__device_disk_local_detach(libxl__gc *gc, libxl_device_disk *disk)
+ {
+     /* Nothing to do for PHYSTYPE_PHY. */
+@@ -1804,10 +1803,6 @@ int libxl_device_disk_local_detach(libxl_ctx *ctx, libxl_device_disk *disk)
+      * For other device types assume that the blktap2 process is
+      * needed by the soon to be started domain and do nothing.
+      */
+-    /*
+-     * FIXME
+-     * This appears to leak the disk in failure paths
+-     */
+     return 0;
+ }
+diff --git a/tools/libxl/libxl.h b/tools/libxl/libxl.h
+index 316d290..21e6510 100644
+--- a/tools/libxl/libxl.h
++++ b/tools/libxl/libxl.h
+@@ -686,13 +686,6 @@ int libxl_device_disk_getinfo(libxl_ctx *ctx, uint32_t domid,
+  */
+ int libxl_cdrom_insert(libxl_ctx *ctx, uint32_t domid, libxl_device_disk *disk);
+-/*
+- * Make a disk available in this (the control) domain. Returns path to
+- * a device.
+- */
+-char * libxl_device_disk_local_attach(libxl_ctx *ctx, libxl_device_disk *disk);
+-int libxl_device_disk_local_detach(libxl_ctx *ctx, libxl_device_disk *disk);
+-
+ /* Network Interfaces */
+ int libxl_device_nic_add(libxl_ctx *ctx, uint32_t domid, libxl_device_nic *nic);
+ int libxl_device_nic_remove(libxl_ctx *ctx, uint32_t domid,
+diff --git a/tools/libxl/libxl_bootloader.c b/tools/libxl/libxl_bootloader.c
+index f3a590b..e8950b1 100644
+--- a/tools/libxl/libxl_bootloader.c
++++ b/tools/libxl/libxl_bootloader.c
+@@ -228,7 +228,7 @@ static void bootloader_cleanup(libxl__egc *egc, libxl__bootloader_state *bl)
+     if (bl->outputdir) libxl__remove_directory(gc, bl->outputdir);
+     if (bl->diskpath) {
+-        libxl_device_disk_local_detach(CTX, bl->disk);
++        libxl__device_disk_local_detach(gc, bl->disk);
+         free(bl->diskpath);
+         bl->diskpath = 0;
+     }
+@@ -330,7 +330,7 @@ void libxl__bootloader_run(libxl__egc *egc, libxl__bootloader_state *bl)
+         goto out;
+     }
+-    bl->diskpath = libxl_device_disk_local_attach(CTX, bl->disk);
++    bl->diskpath = libxl__device_disk_local_attach(gc, bl->disk);
+     if (!bl->diskpath) {
+         rc = ERROR_FAIL;
+         goto out;
+diff --git a/tools/libxl/libxl_internal.h b/tools/libxl/libxl_internal.h
+index 52f5435..d34e561 100644
+--- a/tools/libxl/libxl_internal.h
++++ b/tools/libxl/libxl_internal.h
+@@ -1260,6 +1260,15 @@ _hidden char *libxl__blktap_devpath(libxl__gc *gc,
+  */
+ _hidden void libxl__device_destroy_tapdisk(libxl__gc *gc, char *be_path);
++/*
++ * Make a disk available in this (the control) domain. Returns path to
++ * a device.
++ */
++_hidden char * libxl__device_disk_local_attach(libxl__gc *gc,
++        libxl_device_disk *disk);
++_hidden int libxl__device_disk_local_detach(libxl__gc *gc,
++        libxl_device_disk *disk);
++
+ _hidden char *libxl__uuid2string(libxl__gc *gc, const libxl_uuid uuid);
+ struct libxl__xen_console_reader {
+-- 
+1.7.2.5
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1338287956-24691-10-git-send-email-stefano.stabellini@eu.citrix.com> b/config/examples/test/corpus/<1338287956-24691-10-git-send-email-stefano.stabellini@eu.citrix.com>
new file mode 100644 (file)
index 0000000..3e63183
--- /dev/null
@@ -0,0 +1,106 @@
+From xen-devel-bounces@lists.xen.org Tue May 29 11:42:55 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Tue, 29 May 2012 11:42:55 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SZJt4-000342-3A
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 29 May 2012 11:42:55 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SZJpu-0005d4-6T; Tue, 29 May 2012 10:39:34 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1SZJpr-0005bG-Ry
+       for xen-devel@lists.xensource.com; Tue, 29 May 2012 10:39:31 +0000
+Received: from [85.158.138.51:49549] by server-1.bemta-3.messagelabs.com id
+       9E/48-18759-367A4CF4; Tue, 29 May 2012 10:39:31 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-10.tower-174.messagelabs.com!1338287969!25615647!1
+X-Originating-IP: [66.165.176.89]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNDY2MDQ=\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 3876 invoked from network); 29 May 2012 10:39:30 -0000
+Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
+       by server-10.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
+       29 May 2012 10:39:30 -0000
+X-IronPort-AV: E=Sophos;i="4.75,677,1330923600"; d="scan'208";a="26032814"
+Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
+       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       29 May 2012 06:39:28 -0400
+Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
+       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
+       Tue, 29 May 2012 06:39:28 -0400
+Received: from kaball.uk.xensource.com ([10.80.2.59]
+       helo=localhost.localdomain)     by ukmail1.uk.xensource.com with esmtp
+       (Exim 4.69)     (envelope-from <stefano.stabellini@eu.citrix.com>)      id
+       1SZJpd-0003cq-QF; Tue, 29 May 2012 11:39:17 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+To: xen-devel@lists.xensource.com
+Date: Tue, 29 May 2012 11:39:15 +0100
+Message-ID: <1338287956-24691-10-git-send-email-stefano.stabellini@eu.citrix.com>
+X-Mailer: git-send-email 1.7.0.4
+In-Reply-To: <alpine.DEB.2.00.1205281439080.26786@kaball-desktop>
+References: <alpine.DEB.2.00.1205281439080.26786@kaball-desktop>
+MIME-Version: 1.0
+Cc: Ian.Jackson@eu.citrix.com, Ian.Campbell@citrix.com,
+       Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: [Xen-devel] [PATCH v8 10/11] libxl_string_to_backend: add qdisk
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
+---
+ tools/libxl/libxl_utils.c |    2 ++
+ 1 files changed, 2 insertions(+), 0 deletions(-)
+
+diff --git a/tools/libxl/libxl_utils.c b/tools/libxl/libxl_utils.c
+index 73b00b3..4cf403d 100644
+--- a/tools/libxl/libxl_utils.c
++++ b/tools/libxl/libxl_utils.c
+@@ -240,6 +240,8 @@ int libxl_string_to_backend(libxl_ctx *ctx, char *s, libxl_disk_backend *backend
+         *backend = LIBXL_DISK_BACKEND_PHY;
+     } else if (!strcmp(s, "file")) {
+         *backend = LIBXL_DISK_BACKEND_TAP;
++    } else if (!strcmp(s, "qdisk")) {
++        *backend = LIBXL_DISK_BACKEND_QDISK;
+     } else if (!strcmp(s, "tap")) {
+         p = strchr(s, ':');
+         if (!p) {
+-- 
+1.7.2.5
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1338287956-24691-11-git-send-email-stefano.stabellini@eu.citrix.com> b/config/examples/test/corpus/<1338287956-24691-11-git-send-email-stefano.stabellini@eu.citrix.com>
new file mode 100644 (file)
index 0000000..6f09a88
--- /dev/null
@@ -0,0 +1,111 @@
+From xen-devel-bounces@lists.xen.org Tue May 29 11:49:30 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Tue, 29 May 2012 11:49:30 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SZJzQ-00037b-Iv
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 29 May 2012 11:49:30 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SZJw4-0007Bb-KG; Tue, 29 May 2012 10:45:56 +0000
+Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1SZJw3-0007BW-8i
+       for xen-devel@lists.xensource.com; Tue, 29 May 2012 10:45:55 +0000
+Received: from [193.109.254.147:20752] by server-10.bemta-14.messagelabs.com
+       id 3D/82-12925-2E8A4CF4; Tue, 29 May 2012 10:45:54 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-6.tower-27.messagelabs.com!1338288352!3820323!1
+X-Originating-IP: [66.165.176.63]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyNTU4MTE=\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 15312 invoked from network); 29 May 2012 10:45:53 -0000
+Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
+       by server-6.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
+       29 May 2012 10:45:53 -0000
+X-IronPort-AV: E=Sophos;i="4.75,677,1330923600"; d="scan'208";a="196723254"
+Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
+       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       29 May 2012 06:45:52 -0400
+Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
+       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
+       Tue, 29 May 2012 06:45:52 -0400
+Received: from kaball.uk.xensource.com ([10.80.2.59]
+       helo=localhost.localdomain)     by ukmail1.uk.xensource.com with esmtp
+       (Exim 4.69)     (envelope-from <stefano.stabellini@eu.citrix.com>)      id
+       1SZJpd-0003cq-S2; Tue, 29 May 2012 11:39:17 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+To: xen-devel@lists.xensource.com
+Date: Tue, 29 May 2012 11:39:16 +0100
+Message-ID: <1338287956-24691-11-git-send-email-stefano.stabellini@eu.citrix.com>
+X-Mailer: git-send-email 1.7.0.4
+In-Reply-To: <alpine.DEB.2.00.1205281439080.26786@kaball-desktop>
+References: <alpine.DEB.2.00.1205281439080.26786@kaball-desktop>
+MIME-Version: 1.0
+Cc: Ian.Jackson@eu.citrix.com, Ian.Campbell@citrix.com,
+       Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: [Xen-devel] [PATCH v8 11/11] main_blockdetach: destroy the disk on
+       successful removal
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+main_blockdetach needs to call libxl_device_disk_destroy so that all the
+disk related entries are properly removed from xenstore.
+
+Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
+---
+ tools/libxl/xl_cmdimpl.c |    3 ++-
+ 1 files changed, 2 insertions(+), 1 deletions(-)
+
+diff --git a/tools/libxl/xl_cmdimpl.c b/tools/libxl/xl_cmdimpl.c
+index ce9237b..1167ed0 100644
+--- a/tools/libxl/xl_cmdimpl.c
++++ b/tools/libxl/xl_cmdimpl.c
+@@ -5396,7 +5396,8 @@ int main_blockdetach(int argc, char **argv)
+     }
+     if (libxl_device_disk_remove(ctx, domid, &disk, 0)) {
+         fprintf(stderr, "libxl_device_disk_remove failed.\n");
+-    }
++    } else
++        libxl_device_disk_destroy(ctx, domid, &disk);
+     return 0;
+ }
+-- 
+1.7.2.5
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1338287956-24691-2-git-send-email-stefano.stabellini@eu.citrix.com> b/config/examples/test/corpus/<1338287956-24691-2-git-send-email-stefano.stabellini@eu.citrix.com>
new file mode 100644 (file)
index 0000000..60a669d
--- /dev/null
@@ -0,0 +1,221 @@
+From xen-devel-bounces@lists.xen.org Tue May 29 11:43:03 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Tue, 29 May 2012 11:43:03 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SZJt7-00034S-KO
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 29 May 2012 11:43:03 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SZJpo-0005Zh-Oj; Tue, 29 May 2012 10:39:28 +0000
+Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1SZJpm-0005Z1-Ga
+       for xen-devel@lists.xensource.com; Tue, 29 May 2012 10:39:26 +0000
+Received: from [193.109.254.147:8370] by server-7.bemta-14.messagelabs.com id
+       6D/A1-20336-D57A4CF4; Tue, 29 May 2012 10:39:25 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-16.tower-27.messagelabs.com!1338287963!11570865!1
+X-Originating-IP: [66.165.176.89]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNDY2MDQ=\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 11790 invoked from network); 29 May 2012 10:39:25 -0000
+Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
+       by server-16.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
+       29 May 2012 10:39:25 -0000
+X-IronPort-AV: E=Sophos;i="4.75,677,1330923600"; d="scan'208";a="26032803"
+Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
+       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       29 May 2012 06:39:23 -0400
+Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
+       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
+       Tue, 29 May 2012 06:39:23 -0400
+Received: from kaball.uk.xensource.com ([10.80.2.59]
+       helo=localhost.localdomain)     by ukmail1.uk.xensource.com with esmtp
+       (Exim 4.69)     (envelope-from <stefano.stabellini@eu.citrix.com>)      id
+       1SZJpd-0003cq-HH; Tue, 29 May 2012 11:39:17 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+To: xen-devel@lists.xensource.com
+Date: Tue, 29 May 2012 11:39:07 +0100
+Message-ID: <1338287956-24691-2-git-send-email-stefano.stabellini@eu.citrix.com>
+X-Mailer: git-send-email 1.7.0.4
+In-Reply-To: <alpine.DEB.2.00.1205281439080.26786@kaball-desktop>
+References: <alpine.DEB.2.00.1205281439080.26786@kaball-desktop>
+MIME-Version: 1.0
+Cc: Ian.Jackson@eu.citrix.com, Ian.Campbell@citrix.com,
+       Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: [Xen-devel] [PATCH v8 02/11] libxl: libxl__device_disk_local_attach
+       return a new libxl_device_disk
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+Introduce a new libxl_device_disk* parameter to
+libxl__device_disk_local_attach, the parameter is allocated by the
+caller. libxl__device_disk_local_attach is going to fill the new disk
+with informations about the new locally attached disk.  The new
+libxl_device_disk should be passed to libxl_device_disk_local_detach
+afterwards.
+
+Changes in v8:
+- free pdev_path and script in local_detach;
+- use libxl__strdup instead of strdup.
+
+Changes in v7:
+- rename tmpdisk to localdisk;
+- add a comment in libxl__bootloader_state about localdisk.
+
+Changes in v6:
+- return error in case pdev_path is NULL;
+- libxl__device_disk_local_attach update the new disk, the caller
+allocates it;
+- remove \n from logs.
+
+Changes in v5:
+- rename disk to in_disk;
+- rename tmpdisk to disk;
+- copy disk to new_disk only on success;
+- remove check on libxl__zalloc success.
+
+Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+---
+ tools/libxl/libxl.c            |   18 +++++++++++++++---
+ tools/libxl/libxl_bootloader.c |    4 ++--
+ tools/libxl/libxl_internal.h   |   10 +++++++++-
+ 3 files changed, 26 insertions(+), 6 deletions(-)
+
+diff --git a/tools/libxl/libxl.c b/tools/libxl/libxl.c
+index cd870c4..762e72a 100644
+--- a/tools/libxl/libxl.c
++++ b/tools/libxl/libxl.c
+@@ -1735,13 +1735,24 @@ out:
+     return ret;
+ }
+-char * libxl__device_disk_local_attach(libxl__gc *gc, libxl_device_disk *disk)
++char * libxl__device_disk_local_attach(libxl__gc *gc,
++        const libxl_device_disk *in_disk,
++        libxl_device_disk *disk)
+ {
+     libxl_ctx *ctx = gc->owner;
+     char *dev = NULL;
+     char *ret = NULL;
+     int rc;
++    if (in_disk->pdev_path == NULL)
++        return NULL;
++
++    memcpy(disk, in_disk, sizeof(libxl_device_disk));
++    disk->pdev_path = libxl__strdup(NULL, in_disk->pdev_path);
++    if (in_disk->script != NULL)
++        disk->script = libxl__strdup(NULL, in_disk->script);
++    disk->vdev = NULL;
++
+     rc = libxl__device_disk_setdefault(gc, disk);
+     if (rc) goto out;
+@@ -1779,8 +1790,7 @@ char * libxl__device_disk_local_attach(libxl__gc *gc, libxl_device_disk *disk)
+                            " attach a qdisk image if the format is not raw");
+                 break;
+             }
+-            LIBXL__LOG(ctx, LIBXL__LOG_DEBUG, "locally attaching qdisk %s\n",
+-                       disk->pdev_path);
++            LOG(DEBUG, "locally attaching qdisk %s", in_disk->pdev_path);
+             dev = disk->pdev_path;
+             break;
+         default:
+@@ -1804,6 +1814,8 @@ int libxl__device_disk_local_detach(libxl__gc *gc, libxl_device_disk *disk)
+      * needed by the soon to be started domain and do nothing.
+      */
++    free(disk->pdev_path);
++    free(disk->script);
+     return 0;
+ }
+diff --git a/tools/libxl/libxl_bootloader.c b/tools/libxl/libxl_bootloader.c
+index e8950b1..82371f1 100644
+--- a/tools/libxl/libxl_bootloader.c
++++ b/tools/libxl/libxl_bootloader.c
+@@ -228,7 +228,7 @@ static void bootloader_cleanup(libxl__egc *egc, libxl__bootloader_state *bl)
+     if (bl->outputdir) libxl__remove_directory(gc, bl->outputdir);
+     if (bl->diskpath) {
+-        libxl__device_disk_local_detach(gc, bl->disk);
++        libxl__device_disk_local_detach(gc, &bl->localdisk);
+         free(bl->diskpath);
+         bl->diskpath = 0;
+     }
+@@ -330,7 +330,7 @@ void libxl__bootloader_run(libxl__egc *egc, libxl__bootloader_state *bl)
+         goto out;
+     }
+-    bl->diskpath = libxl__device_disk_local_attach(gc, bl->disk);
++    bl->diskpath = libxl__device_disk_local_attach(gc, bl->disk, &bl->localdisk);
+     if (!bl->diskpath) {
+         rc = ERROR_FAIL;
+         goto out;
+diff --git a/tools/libxl/libxl_internal.h b/tools/libxl/libxl_internal.h
+index d34e561..21b8b54 100644
+--- a/tools/libxl/libxl_internal.h
++++ b/tools/libxl/libxl_internal.h
+@@ -1265,7 +1265,8 @@ _hidden void libxl__device_destroy_tapdisk(libxl__gc *gc, char *be_path);
+  * a device.
+  */
+ _hidden char * libxl__device_disk_local_attach(libxl__gc *gc,
+-        libxl_device_disk *disk);
++        const libxl_device_disk *in_disk,
++        libxl_device_disk *new_disk);
+ _hidden int libxl__device_disk_local_detach(libxl__gc *gc,
+         libxl_device_disk *disk);
+@@ -1803,6 +1804,13 @@ struct libxl__bootloader_state {
+     libxl__bootloader_console_callback *console_available;
+     libxl_domain_build_info *info; /* u.pv.{kernel,ramdisk,cmdline} updated */
+     libxl_device_disk *disk;
++    /* Should be zeroed by caller on entry.  Will be filled in by
++     * bootloader machinery; represents the local attachment of the
++     * disk for the benefit of the bootloader.  Must be detached by
++     * the caller using libxl__device_disk_local_detach, but only
++     * after the domain's kernel and initramfs have been loaded into
++     * memory and the file references disposed of. */
++    libxl_device_disk localdisk;
+     uint32_t domid;
+     /* private to libxl__run_bootloader */
+     char *outputpath, *outputdir, *logfile;
+-- 
+1.7.2.5
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1338287956-24691-3-git-send-email-stefano.stabellini@eu.citrix.com> b/config/examples/test/corpus/<1338287956-24691-3-git-send-email-stefano.stabellini@eu.citrix.com>
new file mode 100644 (file)
index 0000000..fb0bdc3
--- /dev/null
@@ -0,0 +1,240 @@
+From xen-devel-bounces@lists.xen.org Tue May 29 11:43:04 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Tue, 29 May 2012 11:43:04 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SZJt6-00034P-Nr
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 29 May 2012 11:43:04 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SZJps-0005bk-Bs; Tue, 29 May 2012 10:39:32 +0000
+Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1SZJpo-0005ZU-6j
+       for xen-devel@lists.xensource.com; Tue, 29 May 2012 10:39:28 +0000
+Received: from [193.109.254.147:26569] by server-8.bemta-14.messagelabs.com id
+       8C/59-17829-F57A4CF4; Tue, 29 May 2012 10:39:27 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-16.tower-27.messagelabs.com!1338287963!11570865!3
+X-Originating-IP: [66.165.176.89]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNDY2MDQ=\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 11876 invoked from network); 29 May 2012 10:39:26 -0000
+Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
+       by server-16.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
+       29 May 2012 10:39:26 -0000
+X-IronPort-AV: E=Sophos;i="4.75,677,1330923600"; d="scan'208";a="26032805"
+Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
+       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       29 May 2012 06:39:23 -0400
+Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
+       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
+       Tue, 29 May 2012 06:39:23 -0400
+Received: from kaball.uk.xensource.com ([10.80.2.59]
+       helo=localhost.localdomain)     by ukmail1.uk.xensource.com with esmtp
+       (Exim 4.69)     (envelope-from <stefano.stabellini@eu.citrix.com>)      id
+       1SZJpd-0003cq-Hn; Tue, 29 May 2012 11:39:17 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+To: xen-devel@lists.xensource.com
+Date: Tue, 29 May 2012 11:39:08 +0100
+Message-ID: <1338287956-24691-3-git-send-email-stefano.stabellini@eu.citrix.com>
+X-Mailer: git-send-email 1.7.0.4
+In-Reply-To: <alpine.DEB.2.00.1205281439080.26786@kaball-desktop>
+References: <alpine.DEB.2.00.1205281439080.26786@kaball-desktop>
+MIME-Version: 1.0
+Cc: Ian.Jackson@eu.citrix.com, Ian.Campbell@citrix.com,
+       Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: [Xen-devel] [PATCH v8 03/11] libxl: add a transaction parameter to
+       libxl__device_generic_add
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+Add a xs_transaction_t parameter to libxl__device_generic_add, if it is
+XBT_NULL, allocate a proper one.
+
+Update all the callers.
+
+This patch contains a large number of unchecked xenstore operations, we
+might want to fix this in the future.
+
+Changes in v4:
+- libxl__device_generic_add: do not end the transaction is the caller
+provided it;
+- libxl__device_generic_add: fix success exit path.
+
+Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
+Acked-by: Ian Campbell <ian.campbell@citrix.com>
+---
+ tools/libxl/libxl.c          |   10 +++++-----
+ tools/libxl/libxl_device.c   |   17 +++++++++++------
+ tools/libxl/libxl_internal.h |    4 ++--
+ tools/libxl/libxl_pci.c      |    2 +-
+ 4 files changed, 19 insertions(+), 14 deletions(-)
+
+diff --git a/tools/libxl/libxl.c b/tools/libxl/libxl.c
+index 762e72a..987086d 100644
+--- a/tools/libxl/libxl.c
++++ b/tools/libxl/libxl.c
+@@ -1472,7 +1472,7 @@ int libxl_device_disk_add(libxl_ctx *ctx, uint32_t domid, libxl_device_disk *dis
+     flexarray_append(front, "device-type");
+     flexarray_append(front, disk->is_cdrom ? "cdrom" : "disk");
+-    libxl__device_generic_add(gc, &device,
++    libxl__device_generic_add(gc, XBT_NULL, &device,
+                              libxl__xs_kvs_of_flexarray(gc, back, back->count),
+                              libxl__xs_kvs_of_flexarray(gc, front, front->count));
+@@ -1957,7 +1957,7 @@ int libxl_device_nic_add(libxl_ctx *ctx, uint32_t domid, libxl_device_nic *nic)
+     flexarray_append(front, "mac");
+     flexarray_append(front, libxl__sprintf(gc,
+                                     LIBXL_MAC_FMT, LIBXL_MAC_BYTES(nic->mac)));
+-    libxl__device_generic_add(gc, &device,
++    libxl__device_generic_add(gc, XBT_NULL, &device,
+                              libxl__xs_kvs_of_flexarray(gc, back, back->count),
+                              libxl__xs_kvs_of_flexarray(gc, front, front->count));
+@@ -2250,7 +2250,7 @@ int libxl__device_console_add(libxl__gc *gc, uint32_t domid,
+         flexarray_append(front, LIBXL_XENCONSOLE_PROTOCOL);
+     }
+-    libxl__device_generic_add(gc, &device,
++    libxl__device_generic_add(gc, XBT_NULL, &device,
+                              libxl__xs_kvs_of_flexarray(gc, back, back->count),
+                              libxl__xs_kvs_of_flexarray(gc, front, front->count));
+     rc = 0;
+@@ -2321,7 +2321,7 @@ int libxl_device_vkb_add(libxl_ctx *ctx, uint32_t domid, libxl_device_vkb *vkb)
+     flexarray_append(front, "state");
+     flexarray_append(front, libxl__sprintf(gc, "%d", 1));
+-    libxl__device_generic_add(gc, &device,
++    libxl__device_generic_add(gc, XBT_NULL, &device,
+                              libxl__xs_kvs_of_flexarray(gc, back, back->count),
+                              libxl__xs_kvs_of_flexarray(gc, front, front->count));
+     rc = 0;
+@@ -2454,7 +2454,7 @@ int libxl_device_vfb_add(libxl_ctx *ctx, uint32_t domid, libxl_device_vfb *vfb)
+                           libxl__sprintf(gc, "%d", vfb->backend_domid));
+     flexarray_append_pair(front, "state", libxl__sprintf(gc, "%d", 1));
+-    libxl__device_generic_add(gc, &device,
++    libxl__device_generic_add(gc, XBT_NULL, &device,
+                              libxl__xs_kvs_of_flexarray(gc, back, back->count),
+                              libxl__xs_kvs_of_flexarray(gc, front, front->count));
+     rc = 0;
+diff --git a/tools/libxl/libxl_device.c b/tools/libxl/libxl_device.c
+index 2006406..3da60e1 100644
+--- a/tools/libxl/libxl_device.c
++++ b/tools/libxl/libxl_device.c
+@@ -58,14 +58,14 @@ int libxl__parse_backend_path(libxl__gc *gc,
+     return libxl__device_kind_from_string(strkind, &dev->backend_kind);
+ }
+-int libxl__device_generic_add(libxl__gc *gc, libxl__device *device,
+-                             char **bents, char **fents)
++int libxl__device_generic_add(libxl__gc *gc, xs_transaction_t t,
++        libxl__device *device, char **bents, char **fents)
+ {
+     libxl_ctx *ctx = libxl__gc_owner(gc);
+     char *frontend_path, *backend_path;
+-    xs_transaction_t t;
+     struct xs_permissions frontend_perms[2];
+     struct xs_permissions backend_perms[2];
++    int create_transaction = t == XBT_NULL;
+     frontend_path = libxl__device_frontend_path(gc, device);
+     backend_path = libxl__device_backend_path(gc, device);
+@@ -81,7 +81,8 @@ int libxl__device_generic_add(libxl__gc *gc, libxl__device *device,
+     backend_perms[1].perms = XS_PERM_READ;
+ retry_transaction:
+-    t = xs_transaction_start(ctx->xsh);
++    if (create_transaction)
++        t = xs_transaction_start(ctx->xsh);
+     /* FIXME: read frontend_path and check state before removing stuff */
+     if (fents) {
+@@ -100,13 +101,17 @@ retry_transaction:
+         libxl__xs_writev(gc, t, backend_path, bents);
+     }
++    if (!create_transaction)
++        return 0;
++
+     if (!xs_transaction_end(ctx->xsh, t, 0)) {
+         if (errno == EAGAIN)
+             goto retry_transaction;
+-        else
++        else {
+             LIBXL__LOG_ERRNO(ctx, LIBXL__LOG_ERROR, "xs transaction failed");
++            return ERROR_FAIL;
++        }
+     }
+-
+     return 0;
+ }
+diff --git a/tools/libxl/libxl_internal.h b/tools/libxl/libxl_internal.h
+index 21b8b54..03fba22 100644
+--- a/tools/libxl/libxl_internal.h
++++ b/tools/libxl/libxl_internal.h
+@@ -792,8 +792,8 @@ _hidden int libxl__device_console_add(libxl__gc *gc, uint32_t domid,
+                                       libxl__device_console *console,
+                                       libxl__domain_build_state *state);
+-_hidden int libxl__device_generic_add(libxl__gc *gc, libxl__device *device,
+-                             char **bents, char **fents);
++_hidden int libxl__device_generic_add(libxl__gc *gc, xs_transaction_t t,
++        libxl__device *device, char **bents, char **fents);
+ _hidden char *libxl__device_backend_path(libxl__gc *gc, libxl__device *device);
+ _hidden char *libxl__device_frontend_path(libxl__gc *gc, libxl__device *device);
+ _hidden int libxl__parse_backend_path(libxl__gc *gc, const char *path,
+diff --git a/tools/libxl/libxl_pci.c b/tools/libxl/libxl_pci.c
+index e980995..92764fc 100644
+--- a/tools/libxl/libxl_pci.c
++++ b/tools/libxl/libxl_pci.c
+@@ -103,7 +103,7 @@ int libxl__create_pci_backend(libxl__gc *gc, uint32_t domid,
+     flexarray_append_pair(front, "backend-id", libxl__sprintf(gc, "%d", 0));
+     flexarray_append_pair(front, "state", libxl__sprintf(gc, "%d", 1));
+-    libxl__device_generic_add(gc, &device,
++    libxl__device_generic_add(gc, XBT_NULL, &device,
+                               libxl__xs_kvs_of_flexarray(gc, back, back->count),
+                               libxl__xs_kvs_of_flexarray(gc, front, front->count));
+-- 
+1.7.2.5
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1338287956-24691-4-git-send-email-stefano.stabellini@eu.citrix.com> b/config/examples/test/corpus/<1338287956-24691-4-git-send-email-stefano.stabellini@eu.citrix.com>
new file mode 100644 (file)
index 0000000..42a7baf
--- /dev/null
@@ -0,0 +1,122 @@
+From xen-devel-bounces@lists.xen.org Tue May 29 11:42:56 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Tue, 29 May 2012 11:42:56 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SZJt4-000343-BR
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 29 May 2012 11:42:56 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SZJpp-0005a0-3i; Tue, 29 May 2012 10:39:29 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1SZJpm-0005Yy-H2
+       for xen-devel@lists.xensource.com; Tue, 29 May 2012 10:39:26 +0000
+Received: from [85.158.139.83:23165] by server-7.bemta-5.messagelabs.com id
+       3F/AB-15932-D57A4CF4; Tue, 29 May 2012 10:39:25 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-5.tower-182.messagelabs.com!1338287963!30934701!1
+X-Originating-IP: [66.165.176.63]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyNTU4MTE=\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 17582 invoked from network); 29 May 2012 10:39:25 -0000
+Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
+       by server-5.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
+       29 May 2012 10:39:25 -0000
+X-IronPort-AV: E=Sophos;i="4.75,677,1330923600"; d="scan'208";a="196722665"
+Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
+       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       29 May 2012 06:39:23 -0400
+Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
+       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
+       Tue, 29 May 2012 06:39:23 -0400
+Received: from kaball.uk.xensource.com ([10.80.2.59]
+       helo=localhost.localdomain)     by ukmail1.uk.xensource.com with esmtp
+       (Exim 4.69)     (envelope-from <stefano.stabellini@eu.citrix.com>)      id
+       1SZJpd-0003cq-IJ; Tue, 29 May 2012 11:39:17 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+To: xen-devel@lists.xensource.com
+Date: Tue, 29 May 2012 11:39:09 +0100
+Message-ID: <1338287956-24691-4-git-send-email-stefano.stabellini@eu.citrix.com>
+X-Mailer: git-send-email 1.7.0.4
+In-Reply-To: <alpine.DEB.2.00.1205281439080.26786@kaball-desktop>
+References: <alpine.DEB.2.00.1205281439080.26786@kaball-desktop>
+MIME-Version: 1.0
+Cc: Ian.Jackson@eu.citrix.com, Ian.Campbell@citrix.com,
+       Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: [Xen-devel] [PATCH v8 04/11] libxl: export libxl__device_from_disk
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
+---
+ tools/libxl/libxl.c          |    2 +-
+ tools/libxl/libxl_internal.h |    4 ++++
+ 2 files changed, 5 insertions(+), 1 deletions(-)
+
+diff --git a/tools/libxl/libxl.c b/tools/libxl/libxl.c
+index 987086d..eb1ad4f 100644
+--- a/tools/libxl/libxl.c
++++ b/tools/libxl/libxl.c
+@@ -1327,7 +1327,7 @@ int libxl__device_disk_setdefault(libxl__gc *gc, libxl_device_disk *disk)
+     return rc;
+ }
+-static int libxl__device_from_disk(libxl__gc *gc, uint32_t domid,
++int libxl__device_from_disk(libxl__gc *gc, uint32_t domid,
+                                    libxl_device_disk *disk,
+                                    libxl__device *device)
+ {
+diff --git a/tools/libxl/libxl_internal.h b/tools/libxl/libxl_internal.h
+index 03fba22..32eb09c 100644
+--- a/tools/libxl/libxl_internal.h
++++ b/tools/libxl/libxl_internal.h
+@@ -1260,6 +1260,10 @@ _hidden char *libxl__blktap_devpath(libxl__gc *gc,
+  */
+ _hidden void libxl__device_destroy_tapdisk(libxl__gc *gc, char *be_path);
++_hidden int libxl__device_from_disk(libxl__gc *gc, uint32_t domid,
++                                   libxl_device_disk *disk,
++                                   libxl__device *device);
++
+ /*
+  * Make a disk available in this (the control) domain. Returns path to
+  * a device.
+-- 
+1.7.2.5
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1338287956-24691-5-git-send-email-stefano.stabellini@eu.citrix.com> b/config/examples/test/corpus/<1338287956-24691-5-git-send-email-stefano.stabellini@eu.citrix.com>
new file mode 100644 (file)
index 0000000..c43efeb
--- /dev/null
@@ -0,0 +1,162 @@
+From xen-devel-bounces@lists.xen.org Tue May 29 11:42:48 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Tue, 29 May 2012 11:42:48 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SZJsz-00033Q-Mt
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 29 May 2012 11:42:48 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SZJpp-0005aC-Gp; Tue, 29 May 2012 10:39:29 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1SZJpn-0005Z6-2f
+       for xen-devel@lists.xensource.com; Tue, 29 May 2012 10:39:27 +0000
+Received: from [85.158.139.83:45429] by server-2.bemta-5.messagelabs.com id
+       24/9F-09957-E57A4CF4; Tue, 29 May 2012 10:39:26 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-5.tower-182.messagelabs.com!1338287963!30934701!2
+X-Originating-IP: [66.165.176.63]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyNTU4MTE=\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 17602 invoked from network); 29 May 2012 10:39:25 -0000
+Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
+       by server-5.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
+       29 May 2012 10:39:25 -0000
+X-IronPort-AV: E=Sophos;i="4.75,677,1330923600"; d="scan'208";a="196722666"
+Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
+       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       29 May 2012 06:39:23 -0400
+Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
+       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
+       Tue, 29 May 2012 06:39:23 -0400
+Received: from kaball.uk.xensource.com ([10.80.2.59]
+       helo=localhost.localdomain)     by ukmail1.uk.xensource.com with esmtp
+       (Exim 4.69)     (envelope-from <stefano.stabellini@eu.citrix.com>)      id
+       1SZJpd-0003cq-Iw; Tue, 29 May 2012 11:39:17 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+To: xen-devel@lists.xensource.com
+Date: Tue, 29 May 2012 11:39:10 +0100
+Message-ID: <1338287956-24691-5-git-send-email-stefano.stabellini@eu.citrix.com>
+X-Mailer: git-send-email 1.7.0.4
+In-Reply-To: <alpine.DEB.2.00.1205281439080.26786@kaball-desktop>
+References: <alpine.DEB.2.00.1205281439080.26786@kaball-desktop>
+MIME-Version: 1.0
+Cc: Ian.Jackson@eu.citrix.com, Ian.Campbell@citrix.com,
+       Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: [Xen-devel] [PATCH v8 05/11] libxl: introduce libxl__device_disk_add
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+Introduce libxl__device_disk_add that takes an additional
+xs_transaction_t paramter.
+Implement libxl_device_disk_add using libxl__device_disk_add.
+
+
+Changes in v7:
+
+- implement libxl__device_disk_add in libxl.c.
+
+
+Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
+---
+ tools/libxl/libxl.c          |   14 +++++++++++---
+ tools/libxl/libxl_internal.h |    2 ++
+ 2 files changed, 13 insertions(+), 3 deletions(-)
+
+diff --git a/tools/libxl/libxl.c b/tools/libxl/libxl.c
+index eb1ad4f..8d128a6 100644
+--- a/tools/libxl/libxl.c
++++ b/tools/libxl/libxl.c
+@@ -1367,14 +1367,15 @@ int libxl__device_from_disk(libxl__gc *gc, uint32_t domid,
+     return 0;
+ }
+-int libxl_device_disk_add(libxl_ctx *ctx, uint32_t domid, libxl_device_disk *disk)
++int libxl__device_disk_add(libxl__gc *gc, uint32_t domid,
++        xs_transaction_t t, libxl_device_disk *disk)
+ {
+-    GC_INIT(ctx);
+     flexarray_t *front;
+     flexarray_t *back;
+     char *dev;
+     libxl__device device;
+     int major, minor, rc;
++    libxl_ctx *ctx = gc->owner;
+     rc = libxl__device_disk_setdefault(gc, disk);
+     if (rc) goto out;
+@@ -1472,7 +1473,7 @@ int libxl_device_disk_add(libxl_ctx *ctx, uint32_t domid, libxl_device_disk *dis
+     flexarray_append(front, "device-type");
+     flexarray_append(front, disk->is_cdrom ? "cdrom" : "disk");
+-    libxl__device_generic_add(gc, XBT_NULL, &device,
++    libxl__device_generic_add(gc, t, &device,
+                              libxl__xs_kvs_of_flexarray(gc, back, back->count),
+                              libxl__xs_kvs_of_flexarray(gc, front, front->count));
+@@ -1482,6 +1483,13 @@ out_free:
+     flexarray_free(back);
+     flexarray_free(front);
+ out:
++    return rc;
++}
++
++int libxl_device_disk_add(libxl_ctx *ctx, uint32_t domid, libxl_device_disk *disk)
++{
++    GC_INIT(ctx);
++    int rc = libxl__device_disk_add(gc, domid, XBT_NULL, disk);
+     GC_FREE;
+     return rc;
+ }
+diff --git a/tools/libxl/libxl_internal.h b/tools/libxl/libxl_internal.h
+index 32eb09c..b917553 100644
+--- a/tools/libxl/libxl_internal.h
++++ b/tools/libxl/libxl_internal.h
+@@ -1263,6 +1263,8 @@ _hidden void libxl__device_destroy_tapdisk(libxl__gc *gc, char *be_path);
+ _hidden int libxl__device_from_disk(libxl__gc *gc, uint32_t domid,
+                                    libxl_device_disk *disk,
+                                    libxl__device *device);
++_hidden int libxl__device_disk_add(libxl__gc *gc, uint32_t domid,
++        xs_transaction_t t, libxl_device_disk *disk);
+ /*
+  * Make a disk available in this (the control) domain. Returns path to
+-- 
+1.7.2.5
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1338287956-24691-6-git-send-email-stefano.stabellini@eu.citrix.com> b/config/examples/test/corpus/<1338287956-24691-6-git-send-email-stefano.stabellini@eu.citrix.com>
new file mode 100644 (file)
index 0000000..2124eb0
--- /dev/null
@@ -0,0 +1,265 @@
+From xen-devel-bounces@lists.xen.org Tue May 29 11:43:05 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Tue, 29 May 2012 11:43:05 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SZJtB-00034n-3o
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 29 May 2012 11:43:04 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SZJpp-0005aM-UX; Tue, 29 May 2012 10:39:29 +0000
+Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1SZJpn-0005ZE-9H
+       for xen-devel@lists.xensource.com; Tue, 29 May 2012 10:39:27 +0000
+Received: from [193.109.254.147:53176] by server-2.bemta-14.messagelabs.com id
+       CC/E7-12884-E57A4CF4; Tue, 29 May 2012 10:39:26 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-16.tower-27.messagelabs.com!1338287963!11570865!2
+X-Originating-IP: [66.165.176.89]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNDY2MDQ=\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 11824 invoked from network); 29 May 2012 10:39:25 -0000
+Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
+       by server-16.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
+       29 May 2012 10:39:25 -0000
+X-IronPort-AV: E=Sophos;i="4.75,677,1330923600"; d="scan'208";a="26032804"
+Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
+       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       29 May 2012 06:39:23 -0400
+Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
+       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
+       Tue, 29 May 2012 06:39:23 -0400
+Received: from kaball.uk.xensource.com ([10.80.2.59]
+       helo=localhost.localdomain)     by ukmail1.uk.xensource.com with esmtp
+       (Exim 4.69)     (envelope-from <stefano.stabellini@eu.citrix.com>)      id
+       1SZJpd-0003cq-Kb; Tue, 29 May 2012 11:39:17 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+To: xen-devel@lists.xensource.com
+Date: Tue, 29 May 2012 11:39:11 +0100
+Message-ID: <1338287956-24691-6-git-send-email-stefano.stabellini@eu.citrix.com>
+X-Mailer: git-send-email 1.7.0.4
+In-Reply-To: <alpine.DEB.2.00.1205281439080.26786@kaball-desktop>
+References: <alpine.DEB.2.00.1205281439080.26786@kaball-desktop>
+MIME-Version: 1.0
+Cc: Ian.Jackson@eu.citrix.com, Ian.Campbell@citrix.com,
+       Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: [Xen-devel] [PATCH v8 06/11] xl/libxl: add a blkdev_start parameter
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+Introduce a blkdev_start in xl.conf and a corresponding string in
+libxl_domain_build_info.
+
+Add a blkdev_start parameter to libxl__device_disk_local_attach: it is
+going to be used in a following patch.
+
+blkdev_start specifies the first block device to be used for temporary
+block device allocations by the toolstack.
+
+Changes in v6:
+- document blkdev_start;
+- use libxl__strdup to allocate blkdev_start.
+
+Changes in v5:
+- change the type of the blkdev_start parameter to
+libxl__device_disk_local_attach to const char *.
+
+Changes in v4:
+- pass blkdev_start in libxl_domain_build_info.
+
+Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
+Acked-by: Ian Campbell <ian.campbell@citrix.com>
+---
+ docs/man/xl.conf.pod.5         |    6 ++++++
+ tools/examples/xl.conf         |    3 +++
+ tools/libxl/libxl.c            |    3 ++-
+ tools/libxl/libxl_bootloader.c |    3 ++-
+ tools/libxl/libxl_create.c     |    3 +++
+ tools/libxl/libxl_internal.h   |    3 ++-
+ tools/libxl/libxl_types.idl    |    1 +
+ tools/libxl/xl.c               |    3 +++
+ tools/libxl/xl.h               |    1 +
+ tools/libxl/xl_cmdimpl.c       |    2 ++
+ 10 files changed, 25 insertions(+), 3 deletions(-)
+
+diff --git a/docs/man/xl.conf.pod.5 b/docs/man/xl.conf.pod.5
+index 8bd45ea..149430c 100644
+--- a/docs/man/xl.conf.pod.5
++++ b/docs/man/xl.conf.pod.5
+@@ -84,6 +84,12 @@ previous C<xm> toolstack this can be configured to use the old C<SXP>
+ Default: C<json>
++=item B<blkdev_start="NAME">
++
++Configures the name of the first block device to be used for temporary
++block device allocations by the toolstack.
++The default choice is "xvda".
++
+ =back
+ =head1 SEE ALSO
+diff --git a/tools/examples/xl.conf b/tools/examples/xl.conf
+index 56d3b3b..ebf057c 100644
+--- a/tools/examples/xl.conf
++++ b/tools/examples/xl.conf
+@@ -12,3 +12,6 @@
+ # default output format used by "xl list -l"
+ #output_format="json"
++
++# first block device to be used for temporary VM disk mounts
++#blkdev_start="xvda"
+diff --git a/tools/libxl/libxl.c b/tools/libxl/libxl.c
+index 8d128a6..1a01b24 100644
+--- a/tools/libxl/libxl.c
++++ b/tools/libxl/libxl.c
+@@ -1745,7 +1745,8 @@ out:
+ char * libxl__device_disk_local_attach(libxl__gc *gc,
+         const libxl_device_disk *in_disk,
+-        libxl_device_disk *disk)
++        libxl_device_disk *disk,
++        const char *blkdev_start)
+ {
+     libxl_ctx *ctx = gc->owner;
+     char *dev = NULL;
+diff --git a/tools/libxl/libxl_bootloader.c b/tools/libxl/libxl_bootloader.c
+index 82371f1..4e1100d 100644
+--- a/tools/libxl/libxl_bootloader.c
++++ b/tools/libxl/libxl_bootloader.c
+@@ -330,7 +330,8 @@ void libxl__bootloader_run(libxl__egc *egc, libxl__bootloader_state *bl)
+         goto out;
+     }
+-    bl->diskpath = libxl__device_disk_local_attach(gc, bl->disk, &bl->localdisk);
++    bl->diskpath = libxl__device_disk_local_attach(gc, bl->disk, &bl->localdisk,
++            info->blkdev_start);
+     if (!bl->diskpath) {
+         rc = ERROR_FAIL;
+         goto out;
+diff --git a/tools/libxl/libxl_create.c b/tools/libxl/libxl_create.c
+index 14721eb..9fb4b81 100644
+--- a/tools/libxl/libxl_create.c
++++ b/tools/libxl/libxl_create.c
+@@ -107,6 +107,9 @@ int libxl__domain_build_info_setdefault(libxl__gc *gc,
+         }
+     }
++    if (b_info->blkdev_start == NULL)
++        b_info->blkdev_start = libxl__strdup(0, "xvda");
++
+     if (b_info->type == LIBXL_DOMAIN_TYPE_HVM) {
+         if (!b_info->u.hvm.bios)
+             switch (b_info->device_model_version) {
+diff --git a/tools/libxl/libxl_internal.h b/tools/libxl/libxl_internal.h
+index b917553..4be99ca 100644
+--- a/tools/libxl/libxl_internal.h
++++ b/tools/libxl/libxl_internal.h
+@@ -1272,7 +1272,8 @@ _hidden int libxl__device_disk_add(libxl__gc *gc, uint32_t domid,
+  */
+ _hidden char * libxl__device_disk_local_attach(libxl__gc *gc,
+         const libxl_device_disk *in_disk,
+-        libxl_device_disk *new_disk);
++        libxl_device_disk *new_disk,
++        const char *blkdev_start);
+ _hidden int libxl__device_disk_local_detach(libxl__gc *gc,
+         libxl_device_disk *disk);
+diff --git a/tools/libxl/libxl_types.idl b/tools/libxl/libxl_types.idl
+index a21bd85..2dc2b68 100644
+--- a/tools/libxl/libxl_types.idl
++++ b/tools/libxl/libxl_types.idl
+@@ -253,6 +253,7 @@ libxl_domain_build_info = Struct("domain_build_info",[
+     ("localtime",       libxl_defbool),
+     ("disable_migrate", libxl_defbool),
+     ("cpuid",           libxl_cpuid_policy_list),
++    ("blkdev_start",    string),
+     
+     ("device_model_version", libxl_device_model_version),
+     ("device_model_stubdomain", libxl_defbool),
+diff --git a/tools/libxl/xl.c b/tools/libxl/xl.c
+index 750a61c..827f3f8 100644
+--- a/tools/libxl/xl.c
++++ b/tools/libxl/xl.c
+@@ -38,6 +38,7 @@ xentoollog_logger_stdiostream *logger;
+ int dryrun_only;
+ int force_execution;
+ int autoballoon = 1;
++char *blkdev_start;
+ char *lockfile;
+ char *default_vifscript = NULL;
+ char *default_bridge = NULL;
+@@ -94,6 +95,8 @@ static void parse_global_config(const char *configfile,
+             fprintf(stderr, "invalid default output format \"%s\"\n", buf);
+         }
+     }
++    if (!xlu_cfg_get_string (config, "blkdev_start", &buf, 0))
++        blkdev_start = strdup(buf);
+     xlu_cfg_destroy(config);
+ }
+diff --git a/tools/libxl/xl.h b/tools/libxl/xl.h
+index b7eacaa..74a8a1a 100644
+--- a/tools/libxl/xl.h
++++ b/tools/libxl/xl.h
+@@ -117,6 +117,7 @@ extern int dryrun_only;
+ extern char *lockfile;
+ extern char *default_vifscript;
+ extern char *default_bridge;
++extern char *blkdev_start;
+ enum output_format {
+     OUTPUT_FORMAT_JSON,
+diff --git a/tools/libxl/xl_cmdimpl.c b/tools/libxl/xl_cmdimpl.c
+index 3c55a69..ce9237b 100644
+--- a/tools/libxl/xl_cmdimpl.c
++++ b/tools/libxl/xl_cmdimpl.c
+@@ -626,6 +626,8 @@ static void parse_config_data(const char *config_source,
+     }
+     libxl_domain_build_info_init_type(b_info, c_info->type);
++    if (blkdev_start)
++        b_info->blkdev_start = strdup(blkdev_start);
+     /* the following is the actual config parsing with overriding values in the structures */
+     if (!xlu_cfg_get_long (config, "cpu_weight", &l, 0))
+-- 
+1.7.2.5
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1338287956-24691-7-git-send-email-stefano.stabellini@eu.citrix.com> b/config/examples/test/corpus/<1338287956-24691-7-git-send-email-stefano.stabellini@eu.citrix.com>
new file mode 100644 (file)
index 0000000..21b5c80
--- /dev/null
@@ -0,0 +1,256 @@
+From xen-devel-bounces@lists.xen.org Tue May 29 11:43:10 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Tue, 29 May 2012 11:43:10 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SZJtH-00035S-P3
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 29 May 2012 11:43:10 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SZJpr-0005bP-Ug; Tue, 29 May 2012 10:39:31 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1SZJpo-0005ZV-9S
+       for xen-devel@lists.xensource.com; Tue, 29 May 2012 10:39:28 +0000
+Received: from [85.158.139.83:45535] by server-11.bemta-5.messagelabs.com id
+       8A/7A-12711-F57A4CF4; Tue, 29 May 2012 10:39:27 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-14.tower-182.messagelabs.com!1338287965!26634251!1
+X-Originating-IP: [66.165.176.63]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyNTU4MTE=\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 27976 invoked from network); 29 May 2012 10:39:26 -0000
+Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
+       by server-14.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
+       29 May 2012 10:39:26 -0000
+X-IronPort-AV: E=Sophos;i="4.75,677,1330923600"; d="scan'208";a="196722668"
+Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
+       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       29 May 2012 06:39:23 -0400
+Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
+       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
+       Tue, 29 May 2012 06:39:23 -0400
+Received: from kaball.uk.xensource.com ([10.80.2.59]
+       helo=localhost.localdomain)     by ukmail1.uk.xensource.com with esmtp
+       (Exim 4.69)     (envelope-from <stefano.stabellini@eu.citrix.com>)      id
+       1SZJpd-0003cq-MO; Tue, 29 May 2012 11:39:17 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+To: xen-devel@lists.xensource.com
+Date: Tue, 29 May 2012 11:39:12 +0100
+Message-ID: <1338287956-24691-7-git-send-email-stefano.stabellini@eu.citrix.com>
+X-Mailer: git-send-email 1.7.0.4
+In-Reply-To: <alpine.DEB.2.00.1205281439080.26786@kaball-desktop>
+References: <alpine.DEB.2.00.1205281439080.26786@kaball-desktop>
+MIME-Version: 1.0
+Cc: Ian.Jackson@eu.citrix.com, Ian.Campbell@citrix.com,
+       Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: [Xen-devel] [PATCH v8 07/11] libxl: introduce libxl__alloc_vdev
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+Introduce libxl__alloc_vdev: find a spare virtual block device in the
+domain passed as argument.
+
+
+Changes in v7:
+- remove the upper bound and document why.
+
+Changes in v6:
+- more comments in libxl__devid_to_localdev;
+- inline GCSPRINTF.
+
+Changes in v5:
+- remove domid paramter to libxl__alloc_vdev (assume
+  LIBXL_TOOLSTACK_DOMID);
+- remove scaling limit from libxl__alloc_vdev.
+
+Changes in v4:
+- rename libxl__devid_to_vdev to libxl__devid_to_localdev;
+- introduce upper bound for encode_disk_name;
+- better error handling;
+
+Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
+---
+ tools/libxl/libxl.c          |   32 +++++++++++++++++++++++++
+ tools/libxl/libxl_internal.h |    4 +++
+ tools/libxl/libxl_linux.c    |   52 ++++++++++++++++++++++++++++++++++++++++++
+ tools/libxl/libxl_netbsd.c   |    6 +++++
+ 4 files changed, 94 insertions(+), 0 deletions(-)
+
+diff --git a/tools/libxl/libxl.c b/tools/libxl/libxl.c
+index 1a01b24..3cf0d53 100644
+--- a/tools/libxl/libxl.c
++++ b/tools/libxl/libxl.c
+@@ -1743,6 +1743,38 @@ out:
+     return ret;
+ }
++/* libxl__alloc_vdev only works on the local domain, that is the domain
++ * where the toolstack is running */
++static char * libxl__alloc_vdev(libxl__gc *gc, const char *blkdev_start,
++        xs_transaction_t t)
++{
++    int devid = 0, disk = 0, part = 0;
++    char *dompath = libxl__xs_get_dompath(gc, LIBXL_TOOLSTACK_DOMID);
++
++    libxl__device_disk_dev_number(blkdev_start, &disk, &part);
++    if (part != 0) {
++        LOG(ERROR, "blkdev_start is invalid");
++        return NULL;
++    }
++
++    do {
++        devid = libxl__device_disk_dev_number(GCSPRINTF("d%dp0", disk),
++                NULL, NULL);
++        if (devid < 0)
++            return NULL;
++        if (libxl__xs_read(gc, t,
++                    libxl__sprintf(gc, "%s/device/vbd/%d/backend",
++                        dompath, devid)) == NULL) {
++            if (errno == ENOENT)
++                return libxl__devid_to_localdev(gc, devid);
++            else
++                return NULL;
++        }
++        disk++;
++    } while (1);
++    return NULL;
++}
++
+ char * libxl__device_disk_local_attach(libxl__gc *gc,
+         const libxl_device_disk *in_disk,
+         libxl_device_disk *disk,
+diff --git a/tools/libxl/libxl_internal.h b/tools/libxl/libxl_internal.h
+index 4be99ca..337ce28 100644
+--- a/tools/libxl/libxl_internal.h
++++ b/tools/libxl/libxl_internal.h
+@@ -78,6 +78,8 @@
+ #define LIBXL_PV_EXTRA_MEMORY 1024
+ #define LIBXL_HVM_EXTRA_MEMORY 2048
+ #define LIBXL_MIN_DOM0_MEM (128*1024)
++/* use 0 as the domid of the toolstack domain for now */
++#define LIBXL_TOOLSTACK_DOMID 0
+ #define QEMU_SIGNATURE "DeviceModelRecord0002"
+ #define STUBDOM_CONSOLE_LOGGING 0
+ #define STUBDOM_CONSOLE_SAVE 1
+@@ -915,6 +917,8 @@ static inline void libxl__domaindeathcheck_stop(libxl__gc *gc,
+ _hidden int libxl__try_phy_backend(mode_t st_mode);
++_hidden char *libxl__devid_to_localdev(libxl__gc *gc, int devid);
++
+ /* from libxl_pci */
+ _hidden int libxl__device_pci_add(libxl__gc *gc, uint32_t domid, libxl_device_pci *pcidev, int starting);
+diff --git a/tools/libxl/libxl_linux.c b/tools/libxl/libxl_linux.c
+index 925248b..0169b2f 100644
+--- a/tools/libxl/libxl_linux.c
++++ b/tools/libxl/libxl_linux.c
+@@ -25,3 +25,55 @@ int libxl__try_phy_backend(mode_t st_mode)
+     return 1;
+ }
++
++#define EXT_SHIFT 28
++#define EXTENDED (1<<EXT_SHIFT)
++#define VDEV_IS_EXTENDED(dev) ((dev)&(EXTENDED))
++#define BLKIF_MINOR_EXT(dev) ((dev)&(~EXTENDED))
++/* the size of the buffer to store the device name is 32 bytes to match the
++ * equivalent buffer in the Linux kernel code */
++#define BUFFER_SIZE 32
++
++/* Same as in Linux.
++ * encode_disk_name might end up using up to 29 bytes (BUFFER_SIZE - 3)
++ * including the trailing \0.
++ *
++ * The code is safe because 26 raised to the power of 28 (that is the
++ * maximum offset that can be stored in the allocated buffer as a
++ * string) is far greater than UINT_MAX on 64 bits so offset cannot be
++ * big enough to exhaust the available bytes in ret. */
++static char *encode_disk_name(char *ptr, unsigned int n)
++{
++    if (n >= 26)
++        ptr = encode_disk_name(ptr, n / 26 - 1);
++    *ptr = 'a' + n % 26;
++    return ptr + 1;
++}
++
++char *libxl__devid_to_localdev(libxl__gc *gc, int devid)
++{
++    unsigned int minor;
++    int offset;
++    int nr_parts;
++    char *ptr = NULL;
++    char *ret = libxl__zalloc(gc, BUFFER_SIZE);
++
++    if (!VDEV_IS_EXTENDED(devid)) {
++        minor = devid & 0xff;
++        nr_parts = 16;
++    } else {
++        minor = BLKIF_MINOR_EXT(devid);
++        nr_parts = 256;
++    }
++    offset = minor / nr_parts;
++
++    strcpy(ret, "xvd");
++    ptr = encode_disk_name(ret + 3, offset);
++    if (minor % nr_parts == 0)
++        *ptr = 0;
++    else
++        /* overflow cannot happen, thanks to the upper bound */
++        snprintf(ptr, ret + 32 - ptr,
++                "%d", minor & (nr_parts - 1));
++    return ret;
++}
+diff --git a/tools/libxl/libxl_netbsd.c b/tools/libxl/libxl_netbsd.c
+index 9e0ed6d..dbf5f71 100644
+--- a/tools/libxl/libxl_netbsd.c
++++ b/tools/libxl/libxl_netbsd.c
+@@ -24,3 +24,9 @@ int libxl__try_phy_backend(mode_t st_mode)
+     return 0;
+ }
++
++char *libxl__devid_to_localdev(libxl__gc *gc, int devid)
++{
++    /* TODO */
++    return NULL;
++}
+-- 
+1.7.2.5
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1338287956-24691-8-git-send-email-stefano.stabellini@eu.citrix.com> b/config/examples/test/corpus/<1338287956-24691-8-git-send-email-stefano.stabellini@eu.citrix.com>
new file mode 100644 (file)
index 0000000..16e64c7
--- /dev/null
@@ -0,0 +1,238 @@
+From xen-devel-bounces@lists.xen.org Tue May 29 11:43:05 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Tue, 29 May 2012 11:43:05 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SZJtB-000355-VN
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 29 May 2012 11:43:05 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SZJpu-0005dP-IP; Tue, 29 May 2012 10:39:34 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1SZJps-0005bG-Af
+       for xen-devel@lists.xensource.com; Tue, 29 May 2012 10:39:32 +0000
+Received: from [85.158.138.51:8949] by server-1.bemta-3.messagelabs.com id
+       56/58-18759-467A4CF4; Tue, 29 May 2012 10:39:32 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-10.tower-174.messagelabs.com!1338287969!25615647!2
+X-Originating-IP: [66.165.176.89]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNDY2MDQ=\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 3933 invoked from network); 29 May 2012 10:39:31 -0000
+Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
+       by server-10.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
+       29 May 2012 10:39:31 -0000
+X-IronPort-AV: E=Sophos;i="4.75,677,1330923600"; d="scan'208";a="26032815"
+Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
+       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       29 May 2012 06:39:28 -0400
+Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
+       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
+       Tue, 29 May 2012 06:39:28 -0400
+Received: from kaball.uk.xensource.com ([10.80.2.59]
+       helo=localhost.localdomain)     by ukmail1.uk.xensource.com with esmtp
+       (Exim 4.69)     (envelope-from <stefano.stabellini@eu.citrix.com>)      id
+       1SZJpd-0003cq-O7; Tue, 29 May 2012 11:39:17 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+To: xen-devel@lists.xensource.com
+Date: Tue, 29 May 2012 11:39:13 +0100
+Message-ID: <1338287956-24691-8-git-send-email-stefano.stabellini@eu.citrix.com>
+X-Mailer: git-send-email 1.7.0.4
+In-Reply-To: <alpine.DEB.2.00.1205281439080.26786@kaball-desktop>
+References: <alpine.DEB.2.00.1205281439080.26786@kaball-desktop>
+MIME-Version: 1.0
+Cc: Ian.Jackson@eu.citrix.com, Ian.Campbell@citrix.com,
+       Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: [Xen-devel] [PATCH v8 08/11] xl/libxl: implement QDISK
+       libxl_device_disk_local_attach
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+- Spawn a QEMU instance at boot time to handle disk local attach
+requests.
+
+- Implement libxl_device_disk_local_attach for QDISKs in terms of a
+regular disk attach with the frontend and backend running in the same
+domain.
+
+Changes in v6:
+- introduce xs_ret for xs_* error codes.
+
+Changes in v5:
+- replace LIBXL__LOG with LOG.
+
+Changes on v4:
+- improve error handling and exit paths in libxl__device_disk_local_attach.
+
+Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+Acked-by:Ian Campbell <ian.campbell@citrix.com>
+Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
+---
+ tools/hotplug/Linux/init.d/sysconfig.xencommons |    3 +
+ tools/hotplug/Linux/init.d/xencommons           |    3 +
+ tools/libxl/libxl.c                             |   63 ++++++++++++++++++----
+ 3 files changed, 57 insertions(+), 12 deletions(-)
+
+diff --git a/tools/hotplug/Linux/init.d/sysconfig.xencommons b/tools/hotplug/Linux/init.d/sysconfig.xencommons
+index 6543204..38ea85a 100644
+--- a/tools/hotplug/Linux/init.d/sysconfig.xencommons
++++ b/tools/hotplug/Linux/init.d/sysconfig.xencommons
+@@ -12,3 +12,6 @@
+ # Running xenbackendd in debug mode
+ #XENBACKENDD_DEBUG=[yes|on|1]
++
++# qemu path
++#QEMU_XEN=/usr/lib/xen/bin/qemu-system-i386
+diff --git a/tools/hotplug/Linux/init.d/xencommons b/tools/hotplug/Linux/init.d/xencommons
+index 2f81ea2..9dda6e2 100644
+--- a/tools/hotplug/Linux/init.d/xencommons
++++ b/tools/hotplug/Linux/init.d/xencommons
+@@ -104,6 +104,9 @@ do_start () {
+       xenconsoled --pid-file=$XENCONSOLED_PIDFILE $XENCONSOLED_ARGS
+       test -z "$XENBACKENDD_DEBUG" || XENBACKENDD_ARGS="-d"
+       test "`uname`" != "NetBSD" || xenbackendd $XENBACKENDD_ARGS
++      echo Starting QEMU as disk backend for dom0
++      test -z "$QEMU_XEN" && QEMU_XEN=/usr/lib/xen/bin/qemu-system-i386
++      $QEMU_XEN -xen-domid 0 -xen-attach -name dom0 -nographic -M xenpv -daemonize -monitor /dev/null
+ }
+ do_stop () {
+         echo Stopping xenconsoled
+diff --git a/tools/libxl/libxl.c b/tools/libxl/libxl.c
+index 3cf0d53..223ae40 100644
+--- a/tools/libxl/libxl.c
++++ b/tools/libxl/libxl.c
+@@ -1783,7 +1783,8 @@ char * libxl__device_disk_local_attach(libxl__gc *gc,
+     libxl_ctx *ctx = gc->owner;
+     char *dev = NULL;
+     char *ret = NULL;
+-    int rc;
++    int rc, xs_ret;
++    xs_transaction_t t = XBT_NULL;
+     if (in_disk->pdev_path == NULL)
+         return NULL;
+@@ -1827,12 +1828,34 @@ char * libxl__device_disk_local_attach(libxl__gc *gc,
+             break;
+         case LIBXL_DISK_BACKEND_QDISK:
+             if (disk->format != LIBXL_DISK_FORMAT_RAW) {
+-                LIBXL__LOG(ctx, LIBXL__LOG_ERROR, "cannot locally"
+-                           " attach a qdisk image if the format is not raw");
+-                break;
++                do {
++                    t = xs_transaction_start(ctx->xsh);
++                    if (t == XBT_NULL) {
++                        LOG(ERROR, "failed to start a xenstore transaction");
++                        goto out;
++                    }
++                    disk->vdev = libxl__alloc_vdev(gc, blkdev_start, t);
++                    if (disk->vdev == NULL) {
++                        LOG(ERROR, "libxl__alloc_vdev failed");
++                        goto out;
++                    }
++                    if (libxl__device_disk_add(gc, LIBXL_TOOLSTACK_DOMID,
++                                t, disk)) {
++                        LOG(ERROR, "libxl_device_disk_add failed");
++                        goto out;
++                    }
++                    xs_ret = xs_transaction_end(ctx->xsh, t, 0);
++                } while (xs_ret == 0 && errno == EAGAIN);
++                t = XBT_NULL;
++                if (xs_ret == 0) {
++                    LOGE(ERROR, "xenstore transaction failed");
++                    goto out;
++                }
++                dev = GCSPRINTF("/dev/%s", disk->vdev);
++            } else {
++                dev = disk->pdev_path;
+             }
+-            LOG(DEBUG, "locally attaching qdisk %s", in_disk->pdev_path);
+-            dev = disk->pdev_path;
++            LOG(DEBUG, "locally attaching qdisk %s", dev);
+             break;
+         default:
+             LIBXL__LOG(ctx, LIBXL__LOG_ERROR, "unrecognized disk backend "
+@@ -1841,6 +1864,8 @@ char * libxl__device_disk_local_attach(libxl__gc *gc,
+     }
+  out:
++    if (t != XBT_NULL)
++        xs_transaction_end(ctx->xsh, t, 1);
+     if (dev != NULL)
+         ret = strdup(dev);
+     return ret;
+@@ -1848,16 +1873,30 @@ char * libxl__device_disk_local_attach(libxl__gc *gc,
+ int libxl__device_disk_local_detach(libxl__gc *gc, libxl_device_disk *disk)
+ {
+-    /* Nothing to do for PHYSTYPE_PHY. */
++    int rc = 0;
+-    /*
+-     * For other device types assume that the blktap2 process is
+-     * needed by the soon to be started domain and do nothing.
+-     */
++    switch (disk->backend) {
++        case LIBXL_DISK_BACKEND_QDISK:
++            if (disk->vdev != NULL) {
++                libxl_device_disk_remove(gc->owner, LIBXL_TOOLSTACK_DOMID,
++                        disk, 0);
++                rc = libxl_device_disk_destroy(gc->owner,
++                        LIBXL_TOOLSTACK_DOMID, disk);
++            }
++            break;
++        default:
++            /*
++             * Nothing to do for PHYSTYPE_PHY.
++             * For other device types assume that the blktap2 process is
++             * needed by the soon to be started domain and do nothing.
++             */
++            break;
++    }
+     free(disk->pdev_path);
+     free(disk->script);
+-    return 0;
++
++    return rc;
+ }
+ /******************************************************************************/
+-- 
+1.7.2.5
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1338287956-24691-9-git-send-email-stefano.stabellini@eu.citrix.com> b/config/examples/test/corpus/<1338287956-24691-9-git-send-email-stefano.stabellini@eu.citrix.com>
new file mode 100644 (file)
index 0000000..4c62082
--- /dev/null
@@ -0,0 +1,150 @@
+From xen-devel-bounces@lists.xen.org Tue May 29 11:43:03 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Tue, 29 May 2012 11:43:03 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SZJtA-00034V-GG
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 29 May 2012 11:43:03 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SZJps-0005c3-PO; Tue, 29 May 2012 10:39:32 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1SZJpr-0005ay-6S
+       for xen-devel@lists.xensource.com; Tue, 29 May 2012 10:39:31 +0000
+Received: from [85.158.143.35:57232] by server-1.bemta-4.messagelabs.com id
+       94/05-00342-267A4CF4; Tue, 29 May 2012 10:39:30 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-6.tower-21.messagelabs.com!1338287968!17731697!1
+X-Originating-IP: [66.165.176.63]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyNTU4MTE=\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 10953 invoked from network); 29 May 2012 10:39:29 -0000
+Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
+       by server-6.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
+       29 May 2012 10:39:29 -0000
+X-IronPort-AV: E=Sophos;i="4.75,677,1330923600"; d="scan'208";a="196722675"
+Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
+       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       29 May 2012 06:39:28 -0400
+Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
+       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
+       Tue, 29 May 2012 06:39:28 -0400
+Received: from kaball.uk.xensource.com ([10.80.2.59]
+       helo=localhost.localdomain)     by ukmail1.uk.xensource.com with esmtp
+       (Exim 4.69)     (envelope-from <stefano.stabellini@eu.citrix.com>)      id
+       1SZJpd-0003cq-Pm; Tue, 29 May 2012 11:39:17 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+To: xen-devel@lists.xensource.com
+Date: Tue, 29 May 2012 11:39:14 +0100
+Message-ID: <1338287956-24691-9-git-send-email-stefano.stabellini@eu.citrix.com>
+X-Mailer: git-send-email 1.7.0.4
+In-Reply-To: <alpine.DEB.2.00.1205281439080.26786@kaball-desktop>
+References: <alpine.DEB.2.00.1205281439080.26786@kaball-desktop>
+MIME-Version: 1.0
+Cc: Ian.Jackson@eu.citrix.com, Ian.Campbell@citrix.com,
+       Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: [Xen-devel] [PATCH v8 09/11] libxl__device_disk_local_attach: wait
+       for state "connected"
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+In order to make sure that the block device is available and ready to be
+used, wait for state "connected" in the backend before returning.
+
+Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+
+Changes in v5:
+- unify error paths.
+
+Changes in v4:
+- improve exit paths.
+
+Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
+---
+ tools/libxl/libxl.c |   22 ++++++++++++++++++----
+ 1 files changed, 18 insertions(+), 4 deletions(-)
+
+diff --git a/tools/libxl/libxl.c b/tools/libxl/libxl.c
+index 223ae40..626abde 100644
+--- a/tools/libxl/libxl.c
++++ b/tools/libxl/libxl.c
+@@ -1781,9 +1781,10 @@ char * libxl__device_disk_local_attach(libxl__gc *gc,
+         const char *blkdev_start)
+ {
+     libxl_ctx *ctx = gc->owner;
+-    char *dev = NULL;
++    char *dev = NULL, *be_path = NULL;
+     char *ret = NULL;
+     int rc, xs_ret;
++    libxl__device device;
+     xs_transaction_t t = XBT_NULL;
+     if (in_disk->pdev_path == NULL)
+@@ -1863,12 +1864,25 @@ char * libxl__device_disk_local_attach(libxl__gc *gc,
+             break;
+     }
+- out:
+-    if (t != XBT_NULL)
+-        xs_transaction_end(ctx->xsh, t, 1);
++    if (disk->vdev != NULL) {
++        rc = libxl__device_from_disk(gc, LIBXL_TOOLSTACK_DOMID, disk, &device);
++        if (rc < 0)
++            goto out;
++        be_path = libxl__device_backend_path(gc, &device);
++        rc = libxl__wait_for_backend(gc, be_path, "4");
++        if (rc < 0)
++            goto out;
++    }
+     if (dev != NULL)
+         ret = strdup(dev);
+     return ret;
++
++ out:
++    if (t != XBT_NULL)
++        xs_transaction_end(ctx->xsh, t, 1);
++    else
++        libxl__device_disk_local_detach(gc, disk);
++    return NULL;
+ }
+ int libxl__device_disk_local_detach(libxl__gc *gc, libxl_device_disk *disk)
+-- 
+1.7.2.5
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1338300632.14158.115.camel@zakaz.uk.xensource.com> b/config/examples/test/corpus/<1338300632.14158.115.camel@zakaz.uk.xensource.com>
new file mode 100644 (file)
index 0000000..04ce423
--- /dev/null
@@ -0,0 +1,225 @@
+From xen-devel-bounces@lists.xen.org Tue May 29 15:16:00 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Tue, 29 May 2012 15:16:00 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SZNDJ-0003iT-Pv
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 29 May 2012 15:16:00 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SZN8h-00046U-7Q; Tue, 29 May 2012 14:11:11 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1SZN8g-00046P-5Z
+       for xen-devel@lists.xensource.com; Tue, 29 May 2012 14:11:10 +0000
+Received: from [85.158.138.51:7863] by server-3.bemta-3.messagelabs.com id
+       AE/25-08380-DF8D4CF4; Tue, 29 May 2012 14:11:09 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-9.tower-174.messagelabs.com!1338300667!29759793!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiA5OTk2Nw==\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 16723 invoked from network); 29 May 2012 14:11:08 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-9.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
+       29 May 2012 14:11:08 -0000
+X-IronPort-AV: E=Sophos;i="4.75,677,1330905600"; d="scan'208";a="12716996"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       29 May 2012 14:10:33 +0000
+Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0;
+       Tue, 29 May 2012 15:10:33 +0100
+Message-ID: <1338300632.14158.115.camel@zakaz.uk.xensource.com>
+From: Ian Campbell <Ian.Campbell@citrix.com>
+To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+Date: Tue, 29 May 2012 15:10:32 +0100
+In-Reply-To: <1338287956-24691-2-git-send-email-stefano.stabellini@eu.citrix.com>
+References: <alpine.DEB.2.00.1205281439080.26786@kaball-desktop>
+       <1338287956-24691-2-git-send-email-stefano.stabellini@eu.citrix.com>
+Organization: Citrix Systems, Inc.
+X-Mailer: Evolution 3.2.2-1 
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>, Ian
+       Jackson <Ian.Jackson@eu.citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH v8 02/11] libxl:
+ libxl__device_disk_local_attach return a new libxl_device_disk
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Tue, 2012-05-29 at 11:39 +0100, Stefano Stabellini wrote:
+> Introduce a new libxl_device_disk* parameter to
+> libxl__device_disk_local_attach, the parameter is allocated by the
+> caller. libxl__device_disk_local_attach is going to fill the new disk
+> with informations about the new locally attached disk.  The new
+> libxl_device_disk should be passed to libxl_device_disk_local_detach
+> afterwards.
+> 
+> Changes in v8:
+> - free pdev_path and script in local_detach;
+> - use libxl__strdup instead of strdup.
+> 
+> Changes in v7:
+> - rename tmpdisk to localdisk;
+> - add a comment in libxl__bootloader_state about localdisk.
+> 
+> Changes in v6:
+> - return error in case pdev_path is NULL;
+> - libxl__device_disk_local_attach update the new disk, the caller
+> allocates it;
+> - remove \n from logs.
+> 
+> Changes in v5:
+> - rename disk to in_disk;
+> - rename tmpdisk to disk;
+> - copy disk to new_disk only on success;
+> - remove check on libxl__zalloc success.
+> 
+> Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+> ---
+>  tools/libxl/libxl.c            |   18 +++++++++++++++---
+>  tools/libxl/libxl_bootloader.c |    4 ++--
+>  tools/libxl/libxl_internal.h   |   10 +++++++++-
+>  3 files changed, 26 insertions(+), 6 deletions(-)
+> 
+> diff --git a/tools/libxl/libxl.c b/tools/libxl/libxl.c
+> index cd870c4..762e72a 100644
+> --- a/tools/libxl/libxl.c
+> +++ b/tools/libxl/libxl.c
+> @@ -1735,13 +1735,24 @@ out:
+>      return ret;
+>  }
+>  
+> -char * libxl__device_disk_local_attach(libxl__gc *gc, libxl_device_disk *disk)
+> +char * libxl__device_disk_local_attach(libxl__gc *gc,
+> +        const libxl_device_disk *in_disk,
+> +        libxl_device_disk *disk)
+
+Why the weird indent?
+
+>  {
+>      libxl_ctx *ctx = gc->owner;
+>      char *dev = NULL;
+>      char *ret = NULL;
+>      int rc;
+>  
+> +    if (in_disk->pdev_path == NULL)
+> +        return NULL;
+> +
+> +    memcpy(disk, in_disk, sizeof(libxl_device_disk));
+> +    disk->pdev_path = libxl__strdup(NULL, in_disk->pdev_path);
+> +    if (in_disk->script != NULL)
+> +        disk->script = libxl__strdup(NULL, in_disk->script);
+> +    disk->vdev = NULL;
+> +
+>      rc = libxl__device_disk_setdefault(gc, disk);
+>      if (rc) goto out;
+>  
+> @@ -1779,8 +1790,7 @@ char * libxl__device_disk_local_attach(libxl__gc *gc, libxl_device_disk *disk)
+>                             " attach a qdisk image if the format is not raw");
+>                  break;
+>              }
+> -            LIBXL__LOG(ctx, LIBXL__LOG_DEBUG, "locally attaching qdisk %s\n",
+> -                       disk->pdev_path);
+> +            LOG(DEBUG, "locally attaching qdisk %s", in_disk->pdev_path);
+>              dev = disk->pdev_path;
+>              break;
+>          default:
+> @@ -1804,6 +1814,8 @@ int libxl__device_disk_local_detach(libxl__gc *gc, libxl_device_disk *disk)
+>       * needed by the soon to be started domain and do nothing.
+>       */
+>  
+> +    free(disk->pdev_path);
+> +    free(disk->script);
+
+This is open coding libxl_device_disk_dispose(disk) but missed the vdev
+member, is that deliberate?
+
+>      return 0;
+>  }
+>  
+> diff --git a/tools/libxl/libxl_bootloader.c b/tools/libxl/libxl_bootloader.c
+> index e8950b1..82371f1 100644
+> --- a/tools/libxl/libxl_bootloader.c
+> +++ b/tools/libxl/libxl_bootloader.c
+> @@ -228,7 +228,7 @@ static void bootloader_cleanup(libxl__egc *egc, libxl__bootloader_state *bl)
+>      if (bl->outputdir) libxl__remove_directory(gc, bl->outputdir);
+>  
+>      if (bl->diskpath) {
+> -        libxl__device_disk_local_detach(gc, bl->disk);
+> +        libxl__device_disk_local_detach(gc, &bl->localdisk);
+>          free(bl->diskpath);
+>          bl->diskpath = 0;
+>      }
+> @@ -330,7 +330,7 @@ void libxl__bootloader_run(libxl__egc *egc, libxl__bootloader_state *bl)
+>          goto out;
+>      }
+>  
+> -    bl->diskpath = libxl__device_disk_local_attach(gc, bl->disk);
+> +    bl->diskpath = libxl__device_disk_local_attach(gc, bl->disk, &bl->localdisk);
+>      if (!bl->diskpath) {
+>          rc = ERROR_FAIL;
+>          goto out;
+> diff --git a/tools/libxl/libxl_internal.h b/tools/libxl/libxl_internal.h
+> index d34e561..21b8b54 100644
+> --- a/tools/libxl/libxl_internal.h
+> +++ b/tools/libxl/libxl_internal.h
+> @@ -1265,7 +1265,8 @@ _hidden void libxl__device_destroy_tapdisk(libxl__gc *gc, char *be_path);
+>   * a device.
+>   */
+>  _hidden char * libxl__device_disk_local_attach(libxl__gc *gc,
+> -        libxl_device_disk *disk);
+> +        const libxl_device_disk *in_disk,
+> +        libxl_device_disk *new_disk);
+>  _hidden int libxl__device_disk_local_detach(libxl__gc *gc,
+>          libxl_device_disk *disk);
+>  
+> @@ -1803,6 +1804,13 @@ struct libxl__bootloader_state {
+>      libxl__bootloader_console_callback *console_available;
+>      libxl_domain_build_info *info; /* u.pv.{kernel,ramdisk,cmdline} updated */
+>      libxl_device_disk *disk;
+> +    /* Should be zeroed by caller on entry.  Will be filled in by
+> +     * bootloader machinery; represents the local attachment of the
+> +     * disk for the benefit of the bootloader.  Must be detached by
+> +     * the caller using libxl__device_disk_local_detach, but only
+> +     * after the domain's kernel and initramfs have been loaded into
+> +     * memory and the file references disposed of. */
+> +    libxl_device_disk localdisk;
+>      uint32_t domid;
+>      /* private to libxl__run_bootloader */
+>      char *outputpath, *outputdir, *logfile;
+
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1338303814.14158.125.camel@zakaz.uk.xensource.com> b/config/examples/test/corpus/<1338303814.14158.125.camel@zakaz.uk.xensource.com>
new file mode 100644 (file)
index 0000000..776a72e
--- /dev/null
@@ -0,0 +1,249 @@
+From xen-devel-bounces@lists.xen.org Tue May 29 16:07:48 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Tue, 29 May 2012 16:07:48 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SZO1R-0003ud-KL
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 29 May 2012 16:07:48 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SZNxT-0006zY-Ns; Tue, 29 May 2012 15:03:39 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1SZNxR-0006z8-QJ
+       for xen-devel@lists.xensource.com; Tue, 29 May 2012 15:03:38 +0000
+Received: from [85.158.143.35:56464] by server-2.bemta-4.messagelabs.com id
+       AB/00-12211-945E4CF4; Tue, 29 May 2012 15:03:37 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-3.tower-21.messagelabs.com!1338303815!14638888!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiA5OTk2Nw==\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 26298 invoked from network); 29 May 2012 15:03:36 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-3.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
+       29 May 2012 15:03:36 -0000
+X-IronPort-AV: E=Sophos;i="4.75,677,1330905600"; d="scan'208";a="12718643"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       29 May 2012 15:03:35 +0000
+Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0;
+       Tue, 29 May 2012 16:03:35 +0100
+Message-ID: <1338303814.14158.125.camel@zakaz.uk.xensource.com>
+From: Ian Campbell <Ian.Campbell@citrix.com>
+To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+Date: Tue, 29 May 2012 16:03:34 +0100
+In-Reply-To: <alpine.DEB.2.00.1205291540590.26786@kaball-desktop>
+References: <alpine.DEB.2.00.1205281439080.26786@kaball-desktop>
+       <1338287956-24691-2-git-send-email-stefano.stabellini@eu.citrix.com>
+       <1338300632.14158.115.camel@zakaz.uk.xensource.com>
+       <alpine.DEB.2.00.1205291511560.26786@kaball-desktop>
+       <alpine.DEB.2.00.1205291540590.26786@kaball-desktop>
+Organization: Citrix Systems, Inc.
+X-Mailer: Evolution 3.2.2-1 
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>, Ian
+       Jackson <Ian.Jackson@eu.citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH v8 02/11] libxl:
+ libxl__device_disk_local_attach return a new libxl_device_disk
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Tue, 2012-05-29 at 15:48 +0100, Stefano Stabellini wrote:
+> On Tue, 29 May 2012, Stefano Stabellini wrote:
+> > On Tue, 29 May 2012, Ian Campbell wrote:
+> > > On Tue, 2012-05-29 at 11:39 +0100, Stefano Stabellini wrote:
+> > > > @@ -1804,6 +1814,8 @@ int libxl__device_disk_local_detach(libxl__gc *gc, libxl_device_disk *disk)
+> > > >       * needed by the soon to be started domain and do nothing.
+> > > >       */
+> > > >  
+> > > > +    free(disk->pdev_path);
+> > > > +    free(disk->script);
+> > > 
+> > > This is open coding libxl_device_disk_dispose(disk) but missed the vdev
+> > > member, is that deliberate?
+> > 
+> > I think it is a mistake: all these strings used to be allocated on the
+> > gc, on previous versions of the series. However meanwhile the event
+> > series went in, changing completely libxl__bootloader_run (that is the
+> > caller of libxl__device_disk_local_attach).
+> > Allocating stuff on the gc is not correct anymore, so now they need to
+> > be explicitly freed. I think I should call libxl_device_disk_dispose
+> > here and strdup in libxl__device_disk_local_attach to make sure vdev is
+> > not on the gc.
+> 
+> The appended patch switches back the behavior to what we had in v5 and
+> before: pdev_path, script, and vdev are all allocated on the gc,
+> therefore freed automatically.
+
+Thanks, this looks good to me.
+
+If I slot this in in the place of the original will the rest of the
+series apply or shall I wait for a resend/retest?
+
+Ian.
+
+> 
+> 
+> ---
+> 
+> libxl: libxl__device_disk_local_attach return a new libxl_device_disk
+> 
+> Introduce a new libxl_device_disk* parameter to
+> libxl__device_disk_local_attach, the parameter is allocated by the
+> caller. libxl__device_disk_local_attach is going to fill the new disk
+> with informations about the new locally attached disk.  The new
+> libxl_device_disk should be passed to libxl_device_disk_local_detach
+> afterwards.
+> 
+> Changes in v9:
+> - allocate pdev_path, script, and vdev on the gc.
+> 
+> Changes in v8:
+> - free pdev_path and script in local_detach;
+> - use libxl__strdup instead of strdup.
+> 
+> Changes in v7:
+> - rename tmpdisk to localdisk;
+> - add a comment in libxl__bootloader_state about localdisk.
+> 
+> Changes in v6:
+> - return error in case pdev_path is NULL;
+> - libxl__device_disk_local_attach update the new disk, the caller
+> allocates it;
+> - remove \n from logs.
+> 
+> Changes in v5:
+> - rename disk to in_disk;
+> - rename tmpdisk to disk;
+> - copy disk to new_disk only on success;
+> - remove check on libxl__zalloc success.
+> 
+> Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+> 
+> diff --git a/tools/libxl/libxl.c b/tools/libxl/libxl.c
+> index cd870c4..be1c900 100644
+> --- a/tools/libxl/libxl.c
+> +++ b/tools/libxl/libxl.c
+> @@ -1735,13 +1735,24 @@ out:
+>      return ret;
+>  }
+>  
+> -char * libxl__device_disk_local_attach(libxl__gc *gc, libxl_device_disk *disk)
+> +char * libxl__device_disk_local_attach(libxl__gc *gc,
+> +        const libxl_device_disk *in_disk,
+> +        libxl_device_disk *disk)
+>  {
+>      libxl_ctx *ctx = gc->owner;
+>      char *dev = NULL;
+>      char *ret = NULL;
+>      int rc;
+>  
+> +    if (in_disk->pdev_path == NULL)
+> +        return NULL;
+> +
+> +    memcpy(disk, in_disk, sizeof(libxl_device_disk));
+> +    disk->pdev_path = libxl__strdup(gc, in_disk->pdev_path);
+> +    if (in_disk->script != NULL)
+> +        disk->script = libxl__strdup(gc, in_disk->script);
+> +    disk->vdev = NULL;
+> +
+>      rc = libxl__device_disk_setdefault(gc, disk);
+>      if (rc) goto out;
+>  
+> @@ -1779,8 +1790,7 @@ char * libxl__device_disk_local_attach(libxl__gc *gc, libxl_device_disk *disk)
+>                             " attach a qdisk image if the format is not raw");
+>                  break;
+>              }
+> -            LIBXL__LOG(ctx, LIBXL__LOG_DEBUG, "locally attaching qdisk %s\n",
+> -                       disk->pdev_path);
+> +            LOG(DEBUG, "locally attaching qdisk %s", in_disk->pdev_path);
+>              dev = disk->pdev_path;
+>              break;
+>          default:
+> diff --git a/tools/libxl/libxl_bootloader.c b/tools/libxl/libxl_bootloader.c
+> index e8950b1..82371f1 100644
+> --- a/tools/libxl/libxl_bootloader.c
+> +++ b/tools/libxl/libxl_bootloader.c
+> @@ -228,7 +228,7 @@ static void bootloader_cleanup(libxl__egc *egc, libxl__bootloader_state *bl)
+>      if (bl->outputdir) libxl__remove_directory(gc, bl->outputdir);
+>  
+>      if (bl->diskpath) {
+> -        libxl__device_disk_local_detach(gc, bl->disk);
+> +        libxl__device_disk_local_detach(gc, &bl->localdisk);
+>          free(bl->diskpath);
+>          bl->diskpath = 0;
+>      }
+> @@ -330,7 +330,7 @@ void libxl__bootloader_run(libxl__egc *egc, libxl__bootloader_state *bl)
+>          goto out;
+>      }
+>  
+> -    bl->diskpath = libxl__device_disk_local_attach(gc, bl->disk);
+> +    bl->diskpath = libxl__device_disk_local_attach(gc, bl->disk, &bl->localdisk);
+>      if (!bl->diskpath) {
+>          rc = ERROR_FAIL;
+>          goto out;
+> diff --git a/tools/libxl/libxl_internal.h b/tools/libxl/libxl_internal.h
+> index d34e561..21b8b54 100644
+> --- a/tools/libxl/libxl_internal.h
+> +++ b/tools/libxl/libxl_internal.h
+> @@ -1265,7 +1265,8 @@ _hidden void libxl__device_destroy_tapdisk(libxl__gc *gc, char *be_path);
+>   * a device.
+>   */
+>  _hidden char * libxl__device_disk_local_attach(libxl__gc *gc,
+> -        libxl_device_disk *disk);
+> +        const libxl_device_disk *in_disk,
+> +        libxl_device_disk *new_disk);
+>  _hidden int libxl__device_disk_local_detach(libxl__gc *gc,
+>          libxl_device_disk *disk);
+>  
+> @@ -1803,6 +1804,13 @@ struct libxl__bootloader_state {
+>      libxl__bootloader_console_callback *console_available;
+>      libxl_domain_build_info *info; /* u.pv.{kernel,ramdisk,cmdline} updated */
+>      libxl_device_disk *disk;
+> +    /* Should be zeroed by caller on entry.  Will be filled in by
+> +     * bootloader machinery; represents the local attachment of the
+> +     * disk for the benefit of the bootloader.  Must be detached by
+> +     * the caller using libxl__device_disk_local_detach, but only
+> +     * after the domain's kernel and initramfs have been loaded into
+> +     * memory and the file references disposed of. */
+> +    libxl_device_disk localdisk;
+>      uint32_t domid;
+>      /* private to libxl__run_bootloader */
+>      char *outputpath, *outputdir, *logfile;
+
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1338305560.31698.2.camel@zakaz.uk.xensource.com> b/config/examples/test/corpus/<1338305560.31698.2.camel@zakaz.uk.xensource.com>
new file mode 100644 (file)
index 0000000..8269289
--- /dev/null
@@ -0,0 +1,98 @@
+From xen-devel-bounces@lists.xen.org Tue May 29 16:37:03 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Tue, 29 May 2012 16:37:03 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SZOTl-000426-4l
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 29 May 2012 16:37:03 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SZOPc-000055-K9; Tue, 29 May 2012 15:32:44 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1SZOPb-00004z-3k
+       for xen-devel@lists.xensource.com; Tue, 29 May 2012 15:32:43 +0000
+Received: from [85.158.138.51:24292] by server-3.bemta-3.messagelabs.com id
+       A4/43-08380-A1CE4CF4; Tue, 29 May 2012 15:32:42 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-4.tower-174.messagelabs.com!1338305561!29689740!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiA5OTk2Nw==\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 28945 invoked from network); 29 May 2012 15:32:42 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-4.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
+       29 May 2012 15:32:42 -0000
+X-IronPort-AV: E=Sophos;i="4.75,677,1330905600"; d="scan'208";a="12719446"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       29 May 2012 15:32:41 +0000
+Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0;
+       Tue, 29 May 2012 16:32:41 +0100
+Message-ID: <1338305560.31698.2.camel@zakaz.uk.xensource.com>
+From: Ian Campbell <Ian.Campbell@citrix.com>
+To: Ian Jackson <Ian.Jackson@eu.citrix.com>
+Date: Tue, 29 May 2012 16:32:40 +0100
+In-Reply-To: <20420.59991.541173.849526@mariner.uk.xensource.com>
+References: <alpine.DEB.2.00.1205281439080.26786@kaball-desktop>
+       <1338287956-24691-2-git-send-email-stefano.stabellini@eu.citrix.com>
+       <1338300632.14158.115.camel@zakaz.uk.xensource.com>
+       <alpine.DEB.2.00.1205291511560.26786@kaball-desktop>
+       <alpine.DEB.2.00.1205291540590.26786@kaball-desktop>
+       <20420.59991.541173.849526@mariner.uk.xensource.com>
+Organization: Citrix Systems, Inc.
+X-Mailer: Evolution 3.2.2-1 
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH v8 02/11] libxl:
+ libxl__device_disk_local_attach return a new libxl_device_disk
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Tue, 2012-05-29 at 16:25 +0100, Ian Jackson wrote:
+> Stefano Stabellini writes ("Re: [PATCH v8 02/11] libxl: libxl__device_disk_local_attach return a new libxl_device_disk"):
+> ...
+> > The appended patch switches back the behavior to what we had in v5 and
+> > before: pdev_path, script, and vdev are all allocated on the gc,
+> > therefore freed automatically.
+> 
+> With the revised version of 02/11, I have now acked all 11 of these.
+
+Thanks, I'm about to apply...
+
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1338305856.31698.5.camel@zakaz.uk.xensource.com> b/config/examples/test/corpus/<1338305856.31698.5.camel@zakaz.uk.xensource.com>
new file mode 100644 (file)
index 0000000..ccaa3a7
--- /dev/null
@@ -0,0 +1,90 @@
+From xen-devel-bounces@lists.xen.org Tue May 29 16:42:10 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Tue, 29 May 2012 16:42:10 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SZOYi-000436-H1
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 29 May 2012 16:42:10 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SZOUP-0000N8-12; Tue, 29 May 2012 15:37:41 +0000
+Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1SZOUM-0000N1-Vv
+       for xen-devel@lists.xensource.com; Tue, 29 May 2012 15:37:39 +0000
+Received: from [193.109.254.147:22020] by server-8.bemta-14.messagelabs.com id
+       05/0F-17829-24DE4CF4; Tue, 29 May 2012 15:37:38 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-7.tower-27.messagelabs.com!1338305857!4139497!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiA5OTk2Nw==\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 30863 invoked from network); 29 May 2012 15:37:37 -0000
+Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-7.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
+       29 May 2012 15:37:37 -0000
+X-IronPort-AV: E=Sophos;i="4.75,677,1330905600"; d="scan'208";a="12719547"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       29 May 2012 15:37:37 +0000
+Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0;
+       Tue, 29 May 2012 16:37:37 +0100
+Message-ID: <1338305856.31698.5.camel@zakaz.uk.xensource.com>
+From: Ian Campbell <Ian.Campbell@citrix.com>
+To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+Date: Tue, 29 May 2012 16:37:36 +0100
+In-Reply-To: <alpine.DEB.2.00.1205281439080.26786@kaball-desktop>
+References: <alpine.DEB.2.00.1205281439080.26786@kaball-desktop>
+Organization: Citrix Systems, Inc.
+X-Mailer: Evolution 3.2.2-1 
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>, Ian
+       Jackson <Ian.Jackson@eu.citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH v8 0/11] qdisk local attach
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Tue, 2012-05-29 at 11:38 +0100, Stefano Stabellini wrote:
+> this patch implements local_attach support for QDISK: 
+
+Applied, thanks!
+
+I reworked some of the later commit summaries to be "libxl:..." or
+"xl:...." in line with our normal convention, hope that's ok.
+
+Ian.
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1338565113.17466.141.camel@zakaz.uk.xensource.com> b/config/examples/test/corpus/<1338565113.17466.141.camel@zakaz.uk.xensource.com>
new file mode 100644 (file)
index 0000000..b5557c3
--- /dev/null
@@ -0,0 +1,239 @@
+From xen-devel-bounces@lists.xen.org Fri Jun 01 16:43:25 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 01 Jun 2012 16:43:25 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SaU0Y-0004t9-1e
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 01 Jun 2012 16:43:25 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SaTwH-0006af-PU; Fri, 01 Jun 2012 15:38:57 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1SaTwF-0006aa-UN
+       for xen-devel@lists.xen.org; Fri, 01 Jun 2012 15:38:56 +0000
+Received: from [85.158.139.83:40366] by server-11.bemta-5.messagelabs.com id
+       27/4E-12711-F02E8CF4; Fri, 01 Jun 2012 15:38:55 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-2.tower-182.messagelabs.com!1338565134!27633678!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDA3ODg=\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 26833 invoked from network); 1 Jun 2012 15:38:54 -0000
+Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-2.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
+       1 Jun 2012 15:38:54 -0000
+X-IronPort-AV: E=Sophos;i="4.75,698,1330905600"; d="scan'208";a="12791291"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       01 Jun 2012 15:38:34 +0000
+Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0; Fri, 1 Jun 2012
+       16:38:34 +0100
+Message-ID: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
+From: Ian Campbell <Ian.Campbell@citrix.com>
+To: xen-devel <xen-devel@lists.xen.org>
+Date: Fri, 1 Jun 2012 16:38:33 +0100
+Organization: Citrix Systems, Inc.
+X-Mailer: Evolution 3.2.2-1 
+MIME-Version: 1.0
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: [Xen-devel] [PATCH 0/38] arm: boot a dom1 to "Calibrating delay
+       loop" then hang
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+Sorry for the enormous dump, I seem to have accumulated a boat load of
+stuff in my tree...
+
+There's actually a bunch of random guff in here, but the main bit is
+xc_dom code in libxc to build a dom1 from a ARM zImage and enough
+hypervisor support to run it to:
+        [    0.000000] Linux version 3.2.0-rc5-arm-native+ (ianc@drall) (gcc version 4.6.0 (GCC) ) #174 Thu May 24 15:44:30 BST 2012
+        [    0.000000] CPU: ARMv7 Processor [410fc0f0] revision 0 (ARMv7), cr=10c53c7d
+        [    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
+        [    0.000000] Machine: ARM Versatile Express, model: V2P-AEMv7A
+        [    0.000000] bootconsole [xenboot0] enabled
+        [    0.000000] Memory policy: ECC disabled, Data cache writeback
+        [    0.000000] Architected local timer running at 100.00MHz.
+        [    0.000000] sched_clock: 32 bits at 100MHz, resolution 10ns, wraps every 42949ms
+        [    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 32512
+        [    0.000000] Kernel command line: earlyprintk=xen console=hvc0
+        [    0.000000] PID hash table entries: 512 (order: -1, 2048 bytes)
+        [    0.000000] Dentry cache hash table entries: 16384 (order: 4, 65536 bytes)
+        [    0.000000] Inode-cache hash table entries: 8192 (order: 3, 32768 bytes)
+        [    0.000000] Memory: 128MB = 128MB total
+        [    0.000000] Memory: 126256k/126256k available, 4816k reserved, 0K highmem
+        [    0.000000] Virtual kernel memory layout:
+        [    0.000000]     vector  : 0xffff0000 - 0xffff1000   (   4 kB)
+        [    0.000000]     fixmap  : 0xfff00000 - 0xfffe0000   ( 896 kB)
+        [    0.000000]     vmalloc : 0xc8800000 - 0xf8000000   ( 760 MB)
+        [    0.000000]     lowmem  : 0xc0000000 - 0xc8000000   ( 128 MB)
+        [    0.000000]     pkmap   : 0xbfe00000 - 0xc0000000   (   2 MB)
+        [    0.000000]     modules : 0xbf000000 - 0xbfe00000   (  14 MB)
+        [    0.000000]       .text : 0xc0008000 - 0xc032cce0   (3220 kB)
+        [    0.000000]       .init : 0xc032d000 - 0xc034e000   ( 132 kB)
+        [    0.000000]       .data : 0xc034e000 - 0xc036f400   ( 133 kB)
+        [    0.000000]        .bss : 0xc036f424 - 0xc038e0ec   ( 124 kB)
+        [    0.000000] NR_IRQS:256
+        [    0.000000] Console: colour dummy device 80x30
+        [    0.191514] Calibrating delay loop... 
+
+(Stefano is looking at virtual timers and interrupt injection as we
+speak...)
+
+There is some non-ARM impact, specifically teaching xc_dom_* about the
+idea that RAM might not start at 0x000 (on the ARM platform we are
+similar too RAM starts at 0x80000000), I think that makes at least the
+libxc parts non-4.2 material at this stage.
+
+There are also three (more than usually) hacky patches needed to get to
+this point:
+        HACK: arm: initial XENMAPSPACE_gmfn_foreign
+        HACK: add simple xcbuild
+        HACK: arm: disable hypercall continuations.
+which I'm not proposing but I'm including because it doesn't work
+without them ;-).
+
+The rest I think is fair game for acking and cherry-picking the
+acceptable bits for commit.
+
+I still need to cleanup the Linux side of this, that probably won't
+happen today and these patches probably don't work without those
+changes... FWIW the XENMAPSPACE_gmfn_foreign thing is an even bigger
+hack there. Ultimately we should do the same thing as hybrid x86
+
+Ian.
+
+The following changes since commit 5fcec8e92ea02240c2737c4fa982027cef053401:
+
+  libxl: fix typos in libxl_cpuid_parse_config (2012-06-01 12:06:22 +0100)
+
+are available in the git repository at:
+
+  git://xenbits.xen.org/people/ianc/xen-unstable.git devel/arm
+
+for you to fetch changes up to 5177d39f17feb3d5ccdedb976074cb0eee62ee69:
+
+  HACK: arm: disable hypercall continuations. (2012-06-01 15:14:28 +0000)
+
+----------------------------------------------------------------
+Ian Campbell (38):
+      arm: allocate top level p2m page for all non-idle domains
+      arm: handy function to print a walk of the hypervisor page tables
+      arm: handy function to print a walk of a domain's p2m.
+      arm: correct and expand TLB flush CP15 registers
+      arm: restore stack on return from trap.
+      arm: enable interrupts while handling traps
+      arm: hook up domctl and memory_op
+      arm: allocate and setup a guest vcpu.
+      arm: print domid as part of debug trap
+      arm: remove unnecessarily verbose print from p2m_load_VTTBR
+      arm: implement p2m lookup
+      arm: remove hard tabs from init_idle_domain
+      arm: stub out sync_vcpu_execstate
+      arm: do not set max_vcpus = 8 in arch_domain_create.
+      arm: implement stub version of flush_tlb_mask.
+      arm: Add simple cpu_{sibling,core}_mask
+      arm: allow p2m to be created with specific MATTR.
+      arm: implement vpl011 (UART) emulator.
+      arm: context switch a bunch of guest state.
+      arm: dump a page table walk when va_to_par fails.
+      arm: dump guest s1 walk on data abort which is not a stage 2 issue.
+      arm: implement vcpu_show_execution_state
+      arm: use correct attributes for mappings in copy_from_paddr()
+      arm: map fixmaps non-executable.
+      arm: remove old identity map of boot paddr when we are done with it.
+      arm: fix locking in create_p2m_entries
+      arm: split pending SPIs (global) out from pending PPIs and SGIs (per CPU)
+      arm: map GICV in all domains, not just dom0.
+      arm: delay enabling data-cache until paging enabled.
+      arm: Upgrade guest barriers to Outer-Shareable. Enable Protected Table Walk.
+      arm: gic.lock can be taken in interrupt context, so lock appropriately.
+      arm: context switch virtual timer registers
+      arm: the hyp timer seems to work now,  default to using it.
+      HACK: arm: initial XENMAPSPACE_gmfn_foreign
+      arm: move PSR flag definitions into interface, for tools use.
+      libxc: add ARM support to xc_dom (PV domain building)
+      HACK: add simple xcbuild
+      HACK: arm: disable hypercall continuations.
+
+ tools/libxc/Makefile                 |    1 +
+ tools/libxc/xc_dom.h                 |    5 +-
+ tools/libxc/xc_dom_arm.c             |  135 +++++++++++++++++++-
+ tools/libxc/xc_dom_armzimageloader.c |  167 ++++++++++++++++++++++++
+ tools/libxc/xc_dom_core.c            |   12 ++-
+ tools/libxc/xg_private.h             |    4 +
+ tools/xcutils/Makefile               |    6 +-
+ tools/xcutils/xcbuild.c              |  100 +++++++++++++++
+ xen/arch/arm/Makefile                |    1 +
+ xen/arch/arm/domain.c                |  232 +++++++++++++++++++++++++++++++---
+ xen/arch/arm/domain_build.c          |    7 +-
+ xen/arch/arm/dummy.S                 |    8 --
+ xen/arch/arm/entry.S                 |   23 +++-
+ xen/arch/arm/gic.c                   |   56 ++++++---
+ xen/arch/arm/gic.h                   |   11 ++-
+ xen/arch/arm/head.S                  |    9 +-
+ xen/arch/arm/io.c                    |    1 +
+ xen/arch/arm/io.h                    |    1 +
+ xen/arch/arm/kernel.c                |    8 +-
+ xen/arch/arm/mm.c                    |   94 +++++++++++++--
+ xen/arch/arm/p2m.c                   |  123 ++++++++++++++++--
+ xen/arch/arm/setup.c                 |   15 ++-
+ xen/arch/arm/smp.c                   |    9 ++
+ xen/arch/arm/smpboot.c               |    5 +
+ xen/arch/arm/time.c                  |    8 +-
+ xen/arch/arm/traps.c                 |  145 +++++++++++++++++++---
+ xen/arch/arm/vgic.c                  |   17 ++-
+ xen/arch/arm/vpl011.c                |  155 +++++++++++++++++++++++
+ xen/arch/arm/vpl011.h                |   34 +++++
+ xen/arch/x86/mm.c                    |    2 +
+ xen/include/asm-arm/cpregs.h         |   43 ++++++-
+ xen/include/asm-arm/domain.h         |   56 ++++++++-
+ xen/include/asm-arm/p2m.h            |    3 +
+ xen/include/asm-arm/page.h           |   17 ++-
+ xen/include/asm-arm/processor.h      |   26 +---
+ xen/include/asm-arm/setup.h          |    2 +-
+ xen/include/asm-arm/system.h         |    2 +-
+ xen/include/public/arch-arm.h        |   36 ++++--
+ xen/include/public/memory.h          |   12 +-
+ xen/include/xen/sched.h              |    4 +
+ 40 files changed, 1426 insertions(+), 169 deletions(-)
+ create mode 100644 tools/libxc/xc_dom_armzimageloader.c
+ create mode 100644 tools/xcutils/xcbuild.c
+ create mode 100644 xen/arch/arm/vpl011.c
+ create mode 100644 xen/arch/arm/vpl011.h
+
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1338565207-2888-1-git-send-email-ian.campbell@citrix.com> b/config/examples/test/corpus/<1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
new file mode 100644 (file)
index 0000000..521171e
--- /dev/null
@@ -0,0 +1,122 @@
+From xen-devel-bounces@lists.xen.org Fri Jun 01 16:43:49 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 01 Jun 2012 16:43:49 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SaU0p-0004tc-5s
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 01 Jun 2012 16:43:49 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SaTxV-0006e4-Df; Fri, 01 Jun 2012 15:40:13 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1SaTxT-0006dq-Jg
+       for xen-devel@lists.xen.org; Fri, 01 Jun 2012 15:40:11 +0000
+Received: from [85.158.139.83:48892] by server-9.bemta-5.messagelabs.com id
+       C5/D2-27779-A52E8CF4; Fri, 01 Jun 2012 15:40:10 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-8.tower-182.messagelabs.com!1338565208!17780788!1
+X-Originating-IP: [66.165.176.63]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyNTY3NTA=\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 1441 invoked from network); 1 Jun 2012 15:40:09 -0000
+Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
+       by server-8.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
+       1 Jun 2012 15:40:09 -0000
+X-IronPort-AV: E=Sophos;i="4.75,698,1330923600"; d="scan'208";a="197206650"
+Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
+       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       01 Jun 2012 11:40:08 -0400
+Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
+       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
+       Fri, 1 Jun 2012 11:40:08 -0400
+Received: from [10.80.246.74] (helo=army.uk.xensource.com)     by
+       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
+       <ian.campbell@citrix.com>)      id 1SaTxP-0006I5-Kc;
+       Fri, 01 Jun 2012 16:40:07 +0100
+From: Ian Campbell <ian.campbell@citrix.com>
+To: xen-devel@lists.xen.org
+Date: Fri, 1 Jun 2012 15:39:30 +0000
+Message-ID: <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+X-Mailer: git-send-email 1.7.9.1
+In-Reply-To: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
+References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
+MIME-Version: 1.0
+Cc: Ian Campbell <ian.campbell@citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: [Xen-devel] [PATCH 01/38] arm: allocate top level p2m page for all
+       non-idle domains
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+Not just dom0.
+
+Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+Acked-by: Tim Deegan <tim@xen.org>
+---
+ xen/arch/arm/domain.c |    3 +++
+ xen/arch/arm/p2m.c    |    2 +-
+ 2 files changed, 4 insertions(+), 1 deletions(-)
+
+diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
+index 5702399..4b38790 100644
+--- a/xen/arch/arm/domain.c
++++ b/xen/arch/arm/domain.c
+@@ -201,6 +201,9 @@ int arch_domain_create(struct domain *d, unsigned int domcr_flags)
+         clear_page(d->shared_info);
+         share_xen_page_with_guest(
+                 virt_to_page(d->shared_info), d, XENSHARE_writable);
++
++        if ( (rc = p2m_alloc_table(d)) != 0 )
++            goto fail;
+     }
+     d->max_vcpus = 8;
+diff --git a/xen/arch/arm/p2m.c b/xen/arch/arm/p2m.c
+index 051a0e8..4f624d8 100644
+--- a/xen/arch/arm/p2m.c
++++ b/xen/arch/arm/p2m.c
+@@ -203,7 +203,7 @@ int p2m_alloc_table(struct domain *d)
+     void *p;
+     /* First level P2M is 2 consecutive pages */
+-    page = alloc_domheap_pages(d, 1, 0);
++    page = alloc_domheap_pages(NULL, 1, 0);
+     if ( page == NULL )
+         return -ENOMEM;
+-- 
+1.7.9.1
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1338565207-2888-10-git-send-email-ian.campbell@citrix.com> b/config/examples/test/corpus/<1338565207-2888-10-git-send-email-ian.campbell@citrix.com>
new file mode 100644 (file)
index 0000000..0660b88
--- /dev/null
@@ -0,0 +1,105 @@
+From xen-devel-bounces@lists.xen.org Fri Jun 01 16:43:48 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 01 Jun 2012 16:43:48 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SaU0m-0004tU-0o
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 01 Jun 2012 16:43:47 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SaTxa-0006fx-8T; Fri, 01 Jun 2012 15:40:18 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1SaTxX-0006eW-3e
+       for xen-devel@lists.xen.org; Fri, 01 Jun 2012 15:40:15 +0000
+Received: from [85.158.138.51:38264] by server-7.bemta-3.messagelabs.com id
+       36/B4-22601-E52E8CF4; Fri, 01 Jun 2012 15:40:14 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-16.tower-174.messagelabs.com!1338565210!27520903!2
+X-Originating-IP: [66.165.176.89]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNDc3NzE=\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 7172 invoked from network); 1 Jun 2012 15:40:13 -0000
+Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
+       by server-16.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
+       1 Jun 2012 15:40:13 -0000
+X-IronPort-AV: E=Sophos;i="4.75,698,1330923600"; d="scan'208";a="26547684"
+Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
+       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       01 Jun 2012 11:40:08 -0400
+Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
+       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
+       Fri, 1 Jun 2012 11:40:08 -0400
+Received: from [10.80.246.74] (helo=army.uk.xensource.com)     by
+       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
+       <ian.campbell@citrix.com>)      id 1SaTxQ-0006I5-6S;
+       Fri, 01 Jun 2012 16:40:08 +0100
+From: Ian Campbell <ian.campbell@citrix.com>
+To: xen-devel@lists.xen.org
+Date: Fri, 1 Jun 2012 15:39:39 +0000
+Message-ID: <1338565207-2888-10-git-send-email-ian.campbell@citrix.com>
+X-Mailer: git-send-email 1.7.9.1
+In-Reply-To: <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
+       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+MIME-Version: 1.0
+Cc: Ian Campbell <ian.campbell@citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: [Xen-devel] [PATCH 10/38] arm: remove unnecessarily verbose print
+       from p2m_load_VTTBR
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+---
+ xen/arch/arm/p2m.c |    2 --
+ 1 files changed, 0 insertions(+), 2 deletions(-)
+
+diff --git a/xen/arch/arm/p2m.c b/xen/arch/arm/p2m.c
+index fdbecbc..095e608 100644
+--- a/xen/arch/arm/p2m.c
++++ b/xen/arch/arm/p2m.c
+@@ -47,8 +47,6 @@ void p2m_load_VTTBR(struct domain *d)
+     vttbr |= ((uint64_t)p2m->vmid&0xff)<<48;
+-    printk("VTTBR dom%d = %"PRIx64"\n", d->domain_id, vttbr);
+-
+     WRITE_CP64(vttbr, VTTBR);
+     isb(); /* Ensure update is visible */
+ }
+-- 
+1.7.9.1
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1338565207-2888-11-git-send-email-ian.campbell@citrix.com> b/config/examples/test/corpus/<1338565207-2888-11-git-send-email-ian.campbell@citrix.com>
new file mode 100644 (file)
index 0000000..c579aec
--- /dev/null
@@ -0,0 +1,211 @@
+From xen-devel-bounces@lists.xen.org Fri Jun 01 16:49:40 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 01 Jun 2012 16:49:40 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SaU6T-00051u-7S
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 01 Jun 2012 16:49:40 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SaU3C-0008Ki-IK; Fri, 01 Jun 2012 15:46:06 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1SaU39-0008DC-3l
+       for xen-devel@lists.xen.org; Fri, 01 Jun 2012 15:46:03 +0000
+Received: from [85.158.138.51:33644] by server-9.bemta-3.messagelabs.com id
+       11/72-21565-AB3E8CF4; Fri, 01 Jun 2012 15:46:02 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-13.tower-174.messagelabs.com!1338565560!11696972!1
+X-Originating-IP: [66.165.176.89]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNDc3NzE=\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 19553 invoked from network); 1 Jun 2012 15:46:01 -0000
+Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
+       by server-13.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
+       1 Jun 2012 15:46:01 -0000
+X-IronPort-AV: E=Sophos;i="4.75,698,1330923600"; d="scan'208";a="26548518"
+Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
+       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       01 Jun 2012 11:45:59 -0400
+Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
+       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
+       Fri, 1 Jun 2012 11:45:59 -0400
+Received: from [10.80.246.74] (helo=army.uk.xensource.com)     by
+       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
+       <ian.campbell@citrix.com>)      id 1SaTxQ-0006I5-95;
+       Fri, 01 Jun 2012 16:40:08 +0100
+From: Ian Campbell <ian.campbell@citrix.com>
+To: xen-devel@lists.xen.org
+Date: Fri, 1 Jun 2012 15:39:40 +0000
+Message-ID: <1338565207-2888-11-git-send-email-ian.campbell@citrix.com>
+X-Mailer: git-send-email 1.7.9.1
+In-Reply-To: <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
+       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+MIME-Version: 1.0
+Cc: Ian Campbell <ian.campbell@citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: [Xen-devel] [PATCH 11/38] arm: implement p2m lookup
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+---
+ xen/arch/arm/p2m.c        |   71 ++++++++++++++++++++++++++++++++++++++++++--
+ xen/include/asm-arm/p2m.h |    3 ++
+ 2 files changed, 70 insertions(+), 4 deletions(-)
+
+diff --git a/xen/arch/arm/p2m.c b/xen/arch/arm/p2m.c
+index 095e608..9b40e93 100644
+--- a/xen/arch/arm/p2m.c
++++ b/xen/arch/arm/p2m.c
+@@ -10,10 +10,20 @@ void dump_p2m_lookup(struct domain *d, paddr_t addr)
+     struct p2m_domain *p2m = &d->arch.p2m;
+     lpae_t *first = NULL, *second = NULL, *third = NULL;
+-    printk("dom%d IPA %#016llx\n", d->domain_id, addr);
++    printk("dom%d IPA %#"PRIpaddr"\n", d->domain_id, addr);
++
++    printk("P2M @ %p mfn:%#lx (%#03llx,%#03llx,%#03llx)\n",
++           p2m->first_level,
++           page_to_mfn(p2m->first_level),
++           first_table_offset(addr),
++           second_table_offset(addr),
++           third_table_offset(addr));
++
++    if ( first_table_offset(addr) >= LPAE_ENTRIES )
++        goto done;
+     first = __map_domain_page(p2m->first_level);
+-    printk("1ST[%#03llx] = %#016llx\n",
++    printk("1ST[%#03llx] = %#"PRIpaddr"\n",
+            first_table_offset(addr),
+            first[first_table_offset(addr)].bits);
+     if ( !first[first_table_offset(addr)].p2m.valid ||
+@@ -21,7 +31,7 @@ void dump_p2m_lookup(struct domain *d, paddr_t addr)
+         goto done;
+     second = map_domain_page(first[first_table_offset(addr)].p2m.base);
+-    printk("2ND[%#03llx] = %#016llx\n",
++    printk("2ND[%#03llx] = %#"PRIpaddr"\n",
+            second_table_offset(addr),
+            second[second_table_offset(addr)].bits);
+     if ( !second[second_table_offset(addr)].p2m.valid ||
+@@ -29,7 +39,7 @@ void dump_p2m_lookup(struct domain *d, paddr_t addr)
+         goto done;
+     third = map_domain_page(second[second_table_offset(addr)].p2m.base);
+-    printk("3RD[%#03llx] = %#016llx\n",
++    printk("3RD[%#03llx] = %#"PRIpaddr"\n",
+            third_table_offset(addr),
+            third[third_table_offset(addr)].bits);
+@@ -51,6 +61,59 @@ void p2m_load_VTTBR(struct domain *d)
+     isb(); /* Ensure update is visible */
+ }
++/*
++ * Lookup the MFN corresponding to a domain's PFN.
++ *
++ * There are no processor functions to do a stage 2 only lookup therefore we
++ * do a a software walk.
++ */
++paddr_t p2m_lookup(struct domain *d, paddr_t paddr)
++{
++    struct p2m_domain *p2m = &d->arch.p2m;
++    lpae_t pte, *first = NULL, *second = NULL, *third = NULL;
++    paddr_t maddr = INVALID_PADDR;
++
++    spin_lock(&p2m->lock);
++
++    first = __map_domain_page(p2m->first_level);
++    if ( !first[first_table_offset(paddr)].p2m.valid )
++        goto done_err;
++    if ( !first[first_table_offset(paddr)].p2m.table )
++    {
++        pte = first[first_table_offset(paddr)];
++        goto done;
++    }
++
++    second = map_domain_page(first[first_table_offset(paddr)].p2m.base);
++    if ( !second[second_table_offset(paddr)].p2m.valid )
++        goto done_err;
++    if ( !second[second_table_offset(paddr)].p2m.table )
++    {
++        pte = second[second_table_offset(paddr)];
++        goto done;
++    }
++
++    third = map_domain_page(second[second_table_offset(paddr)].p2m.base);
++    if ( !third[third_table_offset(paddr)].p2m.valid )
++        goto done_err;
++    if ( !third[third_table_offset(paddr)].p2m.table )
++        goto done_err;
++
++    pte = third[third_table_offset(paddr)];
++
++done:
++
++    maddr = (pte.bits & PADDR_MASK & PAGE_MASK) | (paddr & ~PAGE_MASK);
++done_err:
++    if (third) unmap_domain_page(third);
++    if (second) unmap_domain_page(second);
++    if (first) unmap_domain_page(first);
++
++    spin_unlock(&p2m->lock);
++
++    return maddr;
++}
++
+ int guest_physmap_mark_populate_on_demand(struct domain *d,
+                                           unsigned long gfn,
+                                           unsigned int order)
+diff --git a/xen/include/asm-arm/p2m.h b/xen/include/asm-arm/p2m.h
+index 349923a..1afd5cb 100644
+--- a/xen/include/asm-arm/p2m.h
++++ b/xen/include/asm-arm/p2m.h
+@@ -32,6 +32,9 @@ int p2m_alloc_table(struct domain *d);
+ /* */
+ void p2m_load_VTTBR(struct domain *d);
++/* */
++paddr_t p2m_lookup(struct domain *d, paddr_t gpfn);
++
+ /* Setup p2m RAM mapping for domain d from start-end. */
+ int p2m_populate_ram(struct domain *d, paddr_t start, paddr_t end);
+ /* Map MMIO regions in the p2m: start_gaddr and end_gaddr is the range
+-- 
+1.7.9.1
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1338565207-2888-12-git-send-email-ian.campbell@citrix.com> b/config/examples/test/corpus/<1338565207-2888-12-git-send-email-ian.campbell@citrix.com>
new file mode 100644 (file)
index 0000000..fbce8a1
--- /dev/null
@@ -0,0 +1,109 @@
+From xen-devel-bounces@lists.xen.org Fri Jun 01 16:49:15 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 01 Jun 2012 16:49:15 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SaU68-0004ww-8e
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 01 Jun 2012 16:49:15 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SaU36-0008Ad-FV; Fri, 01 Jun 2012 15:46:00 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1SaU34-00088P-MW
+       for xen-devel@lists.xen.org; Fri, 01 Jun 2012 15:45:58 +0000
+Received: from [85.158.138.51:34758] by server-10.bemta-3.messagelabs.com id
+       F3/5B-12071-6B3E8CF4; Fri, 01 Jun 2012 15:45:58 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-4.tower-174.messagelabs.com!1338565552!30346150!4
+X-Originating-IP: [66.165.176.89]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNDc3NzE=\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 25618 invoked from network); 1 Jun 2012 15:45:57 -0000
+Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
+       by server-4.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
+       1 Jun 2012 15:45:57 -0000
+X-IronPort-AV: E=Sophos;i="4.75,698,1330923600"; d="scan'208";a="26548509"
+Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
+       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       01 Jun 2012 11:45:56 -0400
+Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
+       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
+       Fri, 1 Jun 2012 11:45:56 -0400
+Received: from [10.80.246.74] (helo=army.uk.xensource.com)     by
+       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
+       <ian.campbell@citrix.com>)      id 1SaTxQ-0006I5-AY;
+       Fri, 01 Jun 2012 16:40:08 +0100
+From: Ian Campbell <ian.campbell@citrix.com>
+To: xen-devel@lists.xen.org
+Date: Fri, 1 Jun 2012 15:39:41 +0000
+Message-ID: <1338565207-2888-12-git-send-email-ian.campbell@citrix.com>
+X-Mailer: git-send-email 1.7.9.1
+In-Reply-To: <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
+       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+MIME-Version: 1.0
+Cc: Ian Campbell <ian.campbell@citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: [Xen-devel] [PATCH 12/38] arm: remove hard tabs from
+       init_idle_domain
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+---
+ xen/arch/arm/setup.c |    6 +++---
+ 1 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/xen/arch/arm/setup.c b/xen/arch/arm/setup.c
+index 0df3c1a..81ababb 100644
+--- a/xen/arch/arm/setup.c
++++ b/xen/arch/arm/setup.c
+@@ -47,9 +47,9 @@ static __attribute_used__ void init_done(void)
+ static void __init init_idle_domain(void)
+ {
+-        scheduler_init();
+-        set_current(idle_vcpu[0]);
+-        /* TODO: setup_idle_pagetable(); */
++    scheduler_init();
++    set_current(idle_vcpu[0]);
++    /* TODO: setup_idle_pagetable(); */
+ }
+ static void __init processor_id(void)
+-- 
+1.7.9.1
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1338565207-2888-13-git-send-email-ian.campbell@citrix.com> b/config/examples/test/corpus/<1338565207-2888-13-git-send-email-ian.campbell@citrix.com>
new file mode 100644 (file)
index 0000000..efba698
--- /dev/null
@@ -0,0 +1,122 @@
+From xen-devel-bounces@lists.xen.org Fri Jun 01 16:49:23 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 01 Jun 2012 16:49:23 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SaU6E-0004xh-JS
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 01 Jun 2012 16:49:23 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SaU3C-0008Jf-5C; Fri, 01 Jun 2012 15:46:06 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1SaU38-0008D3-Pw
+       for xen-devel@lists.xen.org; Fri, 01 Jun 2012 15:46:02 +0000
+Received: from [85.158.143.99:65385] by server-1.bemta-4.messagelabs.com id
+       C9/F9-27869-AB3E8CF4; Fri, 01 Jun 2012 15:46:02 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-5.tower-216.messagelabs.com!1338565558!30625361!2
+X-Originating-IP: [66.165.176.63]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyNTY3NTA=\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 9152 invoked from network); 1 Jun 2012 15:46:00 -0000
+Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
+       by server-5.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
+       1 Jun 2012 15:46:00 -0000
+X-IronPort-AV: E=Sophos;i="4.75,698,1330923600"; d="scan'208";a="197207453"
+Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
+       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       01 Jun 2012 11:45:57 -0400
+Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
+       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
+       Fri, 1 Jun 2012 11:45:57 -0400
+Received: from [10.80.246.74] (helo=army.uk.xensource.com)     by
+       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
+       <ian.campbell@citrix.com>)      id 1SaTxQ-0006I5-DN;
+       Fri, 01 Jun 2012 16:40:08 +0100
+From: Ian Campbell <ian.campbell@citrix.com>
+To: xen-devel@lists.xen.org
+Date: Fri, 1 Jun 2012 15:39:42 +0000
+Message-ID: <1338565207-2888-13-git-send-email-ian.campbell@citrix.com>
+X-Mailer: git-send-email 1.7.9.1
+In-Reply-To: <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
+       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+MIME-Version: 1.0
+Cc: Ian Campbell <ian.campbell@citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: [Xen-devel] [PATCH 13/38] arm: stub out sync_vcpu_execstate
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+We don't do lazy exec state switching so there isn't actually anything to do.
+
+Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+---
+ xen/arch/arm/domain.c |    5 +++++
+ xen/arch/arm/dummy.S  |    1 -
+ 2 files changed, 5 insertions(+), 1 deletions(-)
+
+diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
+index 62a2f3a..bd900f9 100644
+--- a/xen/arch/arm/domain.c
++++ b/xen/arch/arm/domain.c
+@@ -96,6 +96,11 @@ void sync_local_execstate(void)
+     /* Nothing to do -- no lazy switching */
+ }
++void sync_vcpu_execstate(struct vcpu *v)
++{
++    /* Nothing to do -- no lazy switching */
++}
++
+ void startup_cpu_idle_loop(void)
+ {
+     struct vcpu *v = current;
+diff --git a/xen/arch/arm/dummy.S b/xen/arch/arm/dummy.S
+index 3b48917..8eddd15 100644
+--- a/xen/arch/arm/dummy.S
++++ b/xen/arch/arm/dummy.S
+@@ -22,7 +22,6 @@ DUMMY(pirq_set_affinity);
+ /* VCPU */
+ DUMMY(arch_get_info_guest);
+ DUMMY(arch_vcpu_reset);
+-DUMMY(sync_vcpu_execstate);
+ NOP(update_vcpu_system_time);
+ DUMMY(vcpu_show_execution_state);
+-- 
+1.7.9.1
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1338565207-2888-14-git-send-email-ian.campbell@citrix.com> b/config/examples/test/corpus/<1338565207-2888-14-git-send-email-ian.campbell@citrix.com>
new file mode 100644 (file)
index 0000000..405747d
--- /dev/null
@@ -0,0 +1,132 @@
+From xen-devel-bounces@lists.xen.org Fri Jun 01 16:49:12 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 01 Jun 2012 16:49:12 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SaU66-0004wt-7W
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 01 Jun 2012 16:49:12 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SaU34-00088N-0v; Fri, 01 Jun 2012 15:45:58 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1SaU30-000869-W2
+       for xen-devel@lists.xen.org; Fri, 01 Jun 2012 15:45:55 +0000
+Received: from [85.158.143.99:64894] by server-1.bemta-4.messagelabs.com id
+       F6/C9-27869-2B3E8CF4; Fri, 01 Jun 2012 15:45:54 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-11.tower-216.messagelabs.com!1338565550!23414785!2
+X-Originating-IP: [66.165.176.89]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNDc3NzE=\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 18514 invoked from network); 1 Jun 2012 15:45:52 -0000
+Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
+       by server-11.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
+       1 Jun 2012 15:45:52 -0000
+X-IronPort-AV: E=Sophos;i="4.75,698,1330923600"; d="scan'208";a="26548428"
+Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
+       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       01 Jun 2012 11:45:51 -0400
+Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
+       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
+       Fri, 1 Jun 2012 11:45:51 -0400
+Received: from [10.80.246.74] (helo=army.uk.xensource.com)     by
+       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
+       <ian.campbell@citrix.com>)      id 1SaTxQ-0006I5-Eh;
+       Fri, 01 Jun 2012 16:40:08 +0100
+From: Ian Campbell <ian.campbell@citrix.com>
+To: xen-devel@lists.xen.org
+Date: Fri, 1 Jun 2012 15:39:43 +0000
+Message-ID: <1338565207-2888-14-git-send-email-ian.campbell@citrix.com>
+X-Mailer: git-send-email 1.7.9.1
+In-Reply-To: <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
+       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+MIME-Version: 1.0
+Cc: Ian Campbell <ian.campbell@citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: [Xen-devel] [PATCH 14/38] arm: do not set max_vcpus = 8 in
+       arch_domain_create.
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+XEN_DOMCTL_max_vcpus cannot reduce max_vcpus and therefore we can't create a
+smaller guest.
+
+The limit of 8 (due to GIC limits) should be expressed elsewhere, likely in
+MAX_VIRT_CPUS -- but making that change caused:
+    (XEN) Unexpected Trap: Data Abort
+    (XEN) ----[ Xen-4.2-unstable  x86_64  debug=y  Not tainted ]----
+    (XEN) CPU:    0
+    (XEN) PC:     00222e48 _spin_lock+0x28/0x6c
+    (XEN) CPSR:   600001da MODE:HYP
+    (XEN)      R0: 002c4389 R1: 800001da R2: 00000001 R3: 0000ffff
+    (XEN)      R4: 002c4381 R5: 00000080 R6: 002c4380 R7: 002c4000
+    (XEN)      R8: 002c4380 R9: 4000015a R10:00000080 R11:40017d6c R12:00000000
+    (XEN)      SP: 40017d5c LR: 00222e34
+    (XEN)
+    [...]
+    (XEN) Xen call trace:
+    (XEN)    [<00222e48>] _spin_lock+0x28/0x6c
+    (XEN)    [<0022623c>] init_timer+0xbc/0x160
+    (XEN)    [<0021fbdc>] sched_init_vcpu+0x94/0x200
+    (XEN)    [<002061a4>] alloc_vcpu+0x124/0x210
+    (XEN)    [<00204890>] do_domctl+0xaa4/0x14e4
+    (XEN)    [<00241ab8>] do_trap_hypervisor+0x588/0x8cc
+    (XEN)    [<0023bbb0>] return_from_trap+0x0/0x4
+
+so punt on that for now.
+
+Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+---
+ xen/arch/arm/domain.c |    2 --
+ 1 files changed, 0 insertions(+), 2 deletions(-)
+
+diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
+index bd900f9..e867cb2 100644
+--- a/xen/arch/arm/domain.c
++++ b/xen/arch/arm/domain.c
+@@ -215,8 +215,6 @@ int arch_domain_create(struct domain *d, unsigned int domcr_flags)
+             goto fail;
+     }
+-    d->max_vcpus = 8;
+-
+     if ( (rc = domain_vgic_init(d)) != 0 )
+         goto fail;
+-- 
+1.7.9.1
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1338565207-2888-15-git-send-email-ian.campbell@citrix.com> b/config/examples/test/corpus/<1338565207-2888-15-git-send-email-ian.campbell@citrix.com>
new file mode 100644 (file)
index 0000000..7e46066
--- /dev/null
@@ -0,0 +1,124 @@
+From xen-devel-bounces@lists.xen.org Fri Jun 01 16:49:30 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 01 Jun 2012 16:49:30 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SaU6K-0004z0-CT
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 01 Jun 2012 16:49:30 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SaU3J-00006V-89; Fri, 01 Jun 2012 15:46:13 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1SaU3D-0008E8-60
+       for xen-devel@lists.xen.org; Fri, 01 Jun 2012 15:46:07 +0000
+Received: from [85.158.138.51:37887] by server-8.bemta-3.messagelabs.com id
+       07/A0-01456-EB3E8CF4; Fri, 01 Jun 2012 15:46:06 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-13.tower-174.messagelabs.com!1338565560!11696972!4
+X-Originating-IP: [66.165.176.89]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNDc3NzE=\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 19870 invoked from network); 1 Jun 2012 15:46:06 -0000
+Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
+       by server-13.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
+       1 Jun 2012 15:46:06 -0000
+X-IronPort-AV: E=Sophos;i="4.75,698,1330923600"; d="scan'208";a="26548563"
+Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
+       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       01 Jun 2012 11:46:05 -0400
+Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
+       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
+       Fri, 1 Jun 2012 11:46:05 -0400
+Received: from [10.80.246.74] (helo=army.uk.xensource.com)     by
+       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
+       <ian.campbell@citrix.com>)      id 1SaTxQ-0006I5-G0;
+       Fri, 01 Jun 2012 16:40:08 +0100
+From: Ian Campbell <ian.campbell@citrix.com>
+To: xen-devel@lists.xen.org
+Date: Fri, 1 Jun 2012 15:39:44 +0000
+Message-ID: <1338565207-2888-15-git-send-email-ian.campbell@citrix.com>
+X-Mailer: git-send-email 1.7.9.1
+In-Reply-To: <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
+       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+MIME-Version: 1.0
+Cc: Ian Campbell <ian.campbell@citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: [Xen-devel] [PATCH 15/38] arm: implement stub version of
+       flush_tlb_mask.
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+---
+ xen/arch/arm/dummy.S |    1 -
+ xen/arch/arm/smp.c   |    9 +++++++++
+ 2 files changed, 9 insertions(+), 1 deletions(-)
+
+diff --git a/xen/arch/arm/dummy.S b/xen/arch/arm/dummy.S
+index 8eddd15..c001e8d 100644
+--- a/xen/arch/arm/dummy.S
++++ b/xen/arch/arm/dummy.S
+@@ -48,7 +48,6 @@ DUMMY(domain_get_maximum_gpfn);
+ DUMMY(domain_relinquish_resources);
+ DUMMY(domain_set_time_offset);
+ DUMMY(dom_cow);
+-DUMMY(flush_tlb_mask);
+ DUMMY(gmfn_to_mfn);
+ DUMMY(hypercall_create_continuation);
+ DUMMY(send_timer_event);
+diff --git a/xen/arch/arm/smp.c b/xen/arch/arm/smp.c
+index cad84f5..824c8c8 100644
+--- a/xen/arch/arm/smp.c
++++ b/xen/arch/arm/smp.c
+@@ -1,5 +1,14 @@
+ #include <xen/config.h>
++#include <asm/system.h>
+ #include <asm/smp.h>
++#include <asm/cpregs.h>
++#include <asm/page.h>
++
++void flush_tlb_mask(const cpumask_t *mask)
++{
++    /* XXX IPI other processors */
++    flush_xen_data_tlb();
++}
+ void smp_call_function(
+     void (*func) (void *info),
+-- 
+1.7.9.1
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1338565207-2888-16-git-send-email-ian.campbell@citrix.com> b/config/examples/test/corpus/<1338565207-2888-16-git-send-email-ian.campbell@citrix.com>
new file mode 100644 (file)
index 0000000..f4cc469
--- /dev/null
@@ -0,0 +1,140 @@
+From xen-devel-bounces@lists.xen.org Fri Jun 01 16:49:31 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 01 Jun 2012 16:49:31 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SaU6M-0004zq-OT
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 01 Jun 2012 16:49:31 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SaU3F-0008Pn-Jh; Fri, 01 Jun 2012 15:46:09 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1SaU3B-0008D3-7W
+       for xen-devel@lists.xen.org; Fri, 01 Jun 2012 15:46:05 +0000
+Received: from [85.158.143.99:5997] by server-1.bemta-4.messagelabs.com id
+       C7/0A-27869-CB3E8CF4; Fri, 01 Jun 2012 15:46:04 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-5.tower-216.messagelabs.com!1338565558!30625361!6
+X-Originating-IP: [66.165.176.63]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyNTY3NTA=\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 9354 invoked from network); 1 Jun 2012 15:46:03 -0000
+Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
+       by server-5.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
+       1 Jun 2012 15:46:03 -0000
+X-IronPort-AV: E=Sophos;i="4.75,698,1330923600"; d="scan'208";a="197207475"
+Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
+       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       01 Jun 2012 11:46:02 -0400
+Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
+       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
+       Fri, 1 Jun 2012 11:46:02 -0400
+Received: from [10.80.246.74] (helo=army.uk.xensource.com)     by
+       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
+       <ian.campbell@citrix.com>)      id 1SaTxQ-0006I5-HM;
+       Fri, 01 Jun 2012 16:40:08 +0100
+From: Ian Campbell <ian.campbell@citrix.com>
+To: xen-devel@lists.xen.org
+Date: Fri, 1 Jun 2012 15:39:45 +0000
+Message-ID: <1338565207-2888-16-git-send-email-ian.campbell@citrix.com>
+X-Mailer: git-send-email 1.7.9.1
+In-Reply-To: <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
+       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+MIME-Version: 1.0
+Cc: Ian Campbell <ian.campbell@citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: [Xen-devel] [PATCH 16/38] arm: Add simple cpu_{sibling,core}_mask
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+---
+ xen/arch/arm/dummy.S   |    2 --
+ xen/arch/arm/setup.c   |    7 +++++++
+ xen/arch/arm/smpboot.c |    5 +++++
+ 3 files changed, 12 insertions(+), 2 deletions(-)
+
+diff --git a/xen/arch/arm/dummy.S b/xen/arch/arm/dummy.S
+index c001e8d..03f7489 100644
+--- a/xen/arch/arm/dummy.S
++++ b/xen/arch/arm/dummy.S
+@@ -7,8 +7,6 @@ x:     .word 0xe7f000f0 /* Undefined instruction */
+ x:    mov pc, lr
+       
+ /* SMP support */
+-DUMMY(per_cpu__cpu_core_mask);
+-DUMMY(per_cpu__cpu_sibling_mask);
+ DUMMY(node_online_map);
+ DUMMY(smp_send_state_dump);
+diff --git a/xen/arch/arm/setup.c b/xen/arch/arm/setup.c
+index 81ababb..b0cfacc 100644
+--- a/xen/arch/arm/setup.c
++++ b/xen/arch/arm/setup.c
+@@ -230,6 +230,13 @@ void __init start_xen(unsigned long boot_phys_offset,
+         }
+     }
++    if ( !zalloc_cpumask_var(&per_cpu(cpu_sibling_mask, 0)) ||
++         !zalloc_cpumask_var(&per_cpu(cpu_core_mask, 0)) )
++        BUG();
++
++    cpumask_clear(per_cpu(cpu_sibling_mask, 0));
++    cpumask_clear(per_cpu(cpu_core_mask, 0));
++
+     printk("Brought up %ld CPUs\n", (long)num_online_cpus());
+     /* TODO: smp_cpus_done(); */
+diff --git a/xen/arch/arm/smpboot.c b/xen/arch/arm/smpboot.c
+index ea05afc..8517d86 100644
+--- a/xen/arch/arm/smpboot.c
++++ b/xen/arch/arm/smpboot.c
+@@ -52,6 +52,11 @@ unsigned long __initdata ready_cpus = 0;
+ /* ID of the PCPU we're running on */
+ DEFINE_PER_CPU(unsigned int, cpu_id);
++/* XXX these seem awefully x86ish... */
++/* representing HT siblings of each logical CPU */
++DEFINE_PER_CPU_READ_MOSTLY(cpumask_var_t, cpu_sibling_mask);
++/* representing HT and core siblings of each logical CPU */
++DEFINE_PER_CPU_READ_MOSTLY(cpumask_var_t, cpu_core_mask);
+ void __init
+ smp_prepare_cpus (unsigned int max_cpus)
+-- 
+1.7.9.1
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1338565207-2888-17-git-send-email-ian.campbell@citrix.com> b/config/examples/test/corpus/<1338565207-2888-17-git-send-email-ian.campbell@citrix.com>
new file mode 100644 (file)
index 0000000..70ea055
--- /dev/null
@@ -0,0 +1,188 @@
+From xen-devel-bounces@lists.xen.org Fri Jun 01 16:49:20 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 01 Jun 2012 16:49:20 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SaU6B-0004x2-Tl
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 01 Jun 2012 16:49:20 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SaU3C-0008LF-Vm; Fri, 01 Jun 2012 15:46:06 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1SaU39-0008F2-T9
+       for xen-devel@lists.xen.org; Fri, 01 Jun 2012 15:46:04 +0000
+Received: from [85.158.143.99:51500] by server-2.bemta-4.messagelabs.com id
+       51/59-11595-BB3E8CF4; Fri, 01 Jun 2012 15:46:03 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-5.tower-216.messagelabs.com!1338565558!30625361!3
+X-Originating-IP: [66.165.176.63]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyNTY3NTA=\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 9201 invoked from network); 1 Jun 2012 15:46:01 -0000
+Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
+       by server-5.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
+       1 Jun 2012 15:46:01 -0000
+X-IronPort-AV: E=Sophos;i="4.75,698,1330923600"; d="scan'208";a="197207456"
+Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
+       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       01 Jun 2012 11:45:58 -0400
+Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
+       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
+       Fri, 1 Jun 2012 11:45:58 -0400
+Received: from [10.80.246.74] (helo=army.uk.xensource.com)     by
+       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
+       <ian.campbell@citrix.com>)      id 1SaTxQ-0006I5-Ig;
+       Fri, 01 Jun 2012 16:40:08 +0100
+From: Ian Campbell <ian.campbell@citrix.com>
+To: xen-devel@lists.xen.org
+Date: Fri, 1 Jun 2012 15:39:46 +0000
+Message-ID: <1338565207-2888-17-git-send-email-ian.campbell@citrix.com>
+X-Mailer: git-send-email 1.7.9.1
+In-Reply-To: <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
+       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+MIME-Version: 1.0
+Cc: Ian Campbell <ian.campbell@citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: [Xen-devel] [PATCH 17/38] arm: allow p2m to be created with
+       specific MATTR.
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+---
+ xen/arch/arm/p2m.c         |   15 ++++++++-------
+ xen/include/asm-arm/page.h |    6 ++++--
+ 2 files changed, 12 insertions(+), 9 deletions(-)
+
+diff --git a/xen/arch/arm/p2m.c b/xen/arch/arm/p2m.c
+index 9b40e93..46c6f17 100644
+--- a/xen/arch/arm/p2m.c
++++ b/xen/arch/arm/p2m.c
+@@ -148,7 +148,7 @@ static int p2m_create_entry(struct domain *d,
+     clear_page(p);
+     unmap_domain_page(p);
+-    pte = mfn_to_p2m_entry(page_to_mfn(page));
++    pte = mfn_to_p2m_entry(page_to_mfn(page), MATTR_MEM);
+     write_pte(entry, pte);
+@@ -159,7 +159,8 @@ static int create_p2m_entries(struct domain *d,
+                      int alloc,
+                      paddr_t start_gpaddr,
+                      paddr_t end_gpaddr,
+-                     paddr_t maddr)
++                     paddr_t maddr,
++                     int mattr)
+ {
+     int rc;
+     struct p2m_domain *p2m = &d->arch.p2m;
+@@ -235,11 +236,11 @@ static int create_p2m_entries(struct domain *d,
+                 goto out;
+             }
+-            pte = mfn_to_p2m_entry(page_to_mfn(page));
++            pte = mfn_to_p2m_entry(page_to_mfn(page), mattr);
+             write_pte(&third[third_table_offset(addr)], pte);
+         } else {
+-            lpae_t pte = mfn_to_p2m_entry(maddr >> PAGE_SHIFT);
++            lpae_t pte = mfn_to_p2m_entry(maddr >> PAGE_SHIFT, mattr);
+             write_pte(&third[third_table_offset(addr)], pte);
+             maddr += PAGE_SIZE;
+         }
+@@ -263,7 +264,7 @@ int p2m_populate_ram(struct domain *d,
+                      paddr_t start,
+                      paddr_t end)
+ {
+-    return create_p2m_entries(d, 1, start, end, 0);
++    return create_p2m_entries(d, 1, start, end, 0, MATTR_MEM);
+ }
+ int map_mmio_regions(struct domain *d,
+@@ -271,7 +272,7 @@ int map_mmio_regions(struct domain *d,
+                      paddr_t end_gaddr,
+                      paddr_t maddr)
+ {
+-    return create_p2m_entries(d, 0, start_gaddr, end_gaddr, maddr);
++    return create_p2m_entries(d, 0, start_gaddr, end_gaddr, maddr, MATTR_DEV);
+ }
+ int guest_physmap_add_page(struct domain *d,
+@@ -281,7 +282,7 @@ int guest_physmap_add_page(struct domain *d,
+ {
+     return create_p2m_entries(d, 0, gpfn << PAGE_SHIFT,
+                               (gpfn + (1<<page_order)) << PAGE_SHIFT,
+-                              mfn << PAGE_SHIFT);
++                              mfn << PAGE_SHIFT, MATTR_MEM);
+ }
+ void guest_physmap_remove_page(struct domain *d,
+diff --git a/xen/include/asm-arm/page.h b/xen/include/asm-arm/page.h
+index c7b6530..bb1729a 100644
+--- a/xen/include/asm-arm/page.h
++++ b/xen/include/asm-arm/page.h
+@@ -46,6 +46,8 @@
+ #define DEV_WC        BUFFERABLE
+ #define DEV_CACHED    WRITEBACK
++#define MATTR_DEV     0x1
++#define MATTR_MEM     0xf
+ #ifndef __ASSEMBLY__
+@@ -169,7 +171,7 @@ static inline lpae_t mfn_to_xen_entry(unsigned long mfn)
+     return e;
+ }
+-static inline lpae_t mfn_to_p2m_entry(unsigned long mfn)
++static inline lpae_t mfn_to_p2m_entry(unsigned long mfn, unsigned int mattr)
+ {
+     paddr_t pa = ((paddr_t) mfn) << PAGE_SHIFT;
+     lpae_t e = (lpae_t) {
+@@ -178,7 +180,7 @@ static inline lpae_t mfn_to_p2m_entry(unsigned long mfn)
+         .p2m.sh = LPAE_SH_OUTER,
+         .p2m.write = 1,
+         .p2m.read = 1,
+-        .p2m.mattr = 0xf,
++        .p2m.mattr = mattr,
+         .p2m.table = 1,
+         .p2m.valid = 1,
+     };
+-- 
+1.7.9.1
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1338565207-2888-18-git-send-email-ian.campbell@citrix.com> b/config/examples/test/corpus/<1338565207-2888-18-git-send-email-ian.campbell@citrix.com>
new file mode 100644 (file)
index 0000000..cef8da4
--- /dev/null
@@ -0,0 +1,381 @@
+From xen-devel-bounces@lists.xen.org Fri Jun 01 16:49:27 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 01 Jun 2012 16:49:27 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SaU6J-0004yz-VM
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 01 Jun 2012 16:49:27 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SaU3I-0008VM-8d; Fri, 01 Jun 2012 15:46:12 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1SaU3C-0008Kf-SB
+       for xen-devel@lists.xen.org; Fri, 01 Jun 2012 15:46:07 +0000
+Received: from [85.158.138.51:35296] by server-2.bemta-3.messagelabs.com id
+       88/E3-17140-DB3E8CF4; Fri, 01 Jun 2012 15:46:05 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-13.tower-174.messagelabs.com!1338565560!11696972!3
+X-Originating-IP: [66.165.176.89]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNDc3NzE=\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 19803 invoked from network); 1 Jun 2012 15:46:05 -0000
+Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
+       by server-13.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
+       1 Jun 2012 15:46:05 -0000
+X-IronPort-AV: E=Sophos;i="4.75,698,1330923600"; d="scan'208";a="26548559"
+Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
+       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       01 Jun 2012 11:46:04 -0400
+Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
+       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
+       Fri, 1 Jun 2012 11:46:04 -0400
+Received: from [10.80.246.74] (helo=army.uk.xensource.com)     by
+       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
+       <ian.campbell@citrix.com>)      id 1SaTxQ-0006I5-LL;
+       Fri, 01 Jun 2012 16:40:08 +0100
+From: Ian Campbell <ian.campbell@citrix.com>
+To: xen-devel@lists.xen.org
+Date: Fri, 1 Jun 2012 15:39:47 +0000
+Message-ID: <1338565207-2888-18-git-send-email-ian.campbell@citrix.com>
+X-Mailer: git-send-email 1.7.9.1
+In-Reply-To: <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
+       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+MIME-Version: 1.0
+Cc: Ian Campbell <ian.campbell@citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: [Xen-devel] [PATCH 18/38] arm: implement vpl011 (UART) emulator.
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+This is not interended to provide a full emulation, but rather just enough to
+satisfy the use made by Linux' boot time decompressor code (which is too early
+for DT etc)
+
+Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+---
+ xen/arch/arm/Makefile        |    1 +
+ xen/arch/arm/domain.c        |    4 +
+ xen/arch/arm/io.c            |    1 +
+ xen/arch/arm/io.h            |    1 +
+ xen/arch/arm/vpl011.c        |  155 ++++++++++++++++++++++++++++++++++++++++++
+ xen/arch/arm/vpl011.h        |   34 +++++++++
+ xen/include/asm-arm/domain.h |    8 ++
+ 7 files changed, 204 insertions(+), 0 deletions(-)
+ create mode 100644 xen/arch/arm/vpl011.c
+ create mode 100644 xen/arch/arm/vpl011.h
+
+diff --git a/xen/arch/arm/Makefile b/xen/arch/arm/Makefile
+index 9440a21..5a87ba6 100644
+--- a/xen/arch/arm/Makefile
++++ b/xen/arch/arm/Makefile
+@@ -25,6 +25,7 @@ obj-y += shutdown.o
+ obj-y += traps.o
+ obj-y += vgic.o
+ obj-y += vtimer.o
++obj-y += vpl011.o
+ #obj-bin-y += ....o
+diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
+index e867cb2..d830980 100644
+--- a/xen/arch/arm/domain.c
++++ b/xen/arch/arm/domain.c
+@@ -13,6 +13,7 @@
+ #include "gic.h"
+ #include "vtimer.h"
++#include "vpl011.h"
+ DEFINE_PER_CPU(struct vcpu *, curr_vcpu);
+@@ -201,6 +202,9 @@ int arch_domain_create(struct domain *d, unsigned int domcr_flags)
+     if ( (rc = domain_vgic_init(d)) != 0 )
+         goto fail;
++    if ( (rc = domain_uart0_init(d)) != 0 )
++        goto fail;
++
+     if ( !is_idle_domain(d) )
+     {
+         rc = -ENOMEM;
+diff --git a/xen/arch/arm/io.c b/xen/arch/arm/io.c
+index 4461225..18f6164 100644
+--- a/xen/arch/arm/io.c
++++ b/xen/arch/arm/io.c
+@@ -25,6 +25,7 @@
+ static const struct mmio_handler *const mmio_handlers[] =
+ {
+     &vgic_distr_mmio_handler,
++    &uart0_mmio_handler,
+ };
+ #define MMIO_HANDLER_NR ARRAY_SIZE(mmio_handlers)
+diff --git a/xen/arch/arm/io.h b/xen/arch/arm/io.h
+index 8cc5ca7..9a507f5 100644
+--- a/xen/arch/arm/io.h
++++ b/xen/arch/arm/io.h
+@@ -40,6 +40,7 @@ struct mmio_handler {
+ };
+ extern const struct mmio_handler vgic_distr_mmio_handler;
++extern const struct mmio_handler uart0_mmio_handler;
+ extern int handle_mmio(mmio_info_t *info);
+diff --git a/xen/arch/arm/vpl011.c b/xen/arch/arm/vpl011.c
+new file mode 100644
+index 0000000..1491dcc
+--- /dev/null
++++ b/xen/arch/arm/vpl011.c
+@@ -0,0 +1,155 @@
++/*
++ * xen/arch/arm/vpl011.c
++ *
++ * ARM PL011 UART Emulator (DEBUG)
++ *
++ * Ian Campbell <ian.campbell@citrix.com>
++ * Copyright (c) 2012 Citrix Systems.
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++ * GNU General Public License for more details.
++ */
++
++/*
++ * This is not intended to be a full emulation of a PL011
++ * device. Rather it is intended to provide a sufficient veneer of one
++ * that early code (such as Linux's boot time decompressor) which
++ * hardcodes output directly to such a device are able to make progress.
++ *
++ * This device is not intended to be enumerable or exposed to the OS
++ * (e.g. via Device Tree).
++ */
++
++#include <xen/config.h>
++#include <xen/lib.h>
++#include <xen/sched.h>
++#include <xen/errno.h>
++#include <xen/ctype.h>
++
++#include "io.h"
++
++#define UART0_BASE_ADDRESS 0x1c090000
++
++#define UARTDR 0x000
++#define UARTFR 0x018
++
++int domain_uart0_init(struct domain *d)
++{
++    int rc;
++    if ( d->domain_id == 0 )
++        return 0;
++
++    spin_lock_init(&d->arch.uart0.lock);
++    d->arch.uart0.idx = 0;
++
++    rc = -ENOMEM;
++    d->arch.uart0.buf = xzalloc_array(char, VPL011_BUF_SIZE);
++    if ( !d->arch.uart0.buf )
++        goto out;
++
++    rc = 0;
++out:
++    return rc;
++}
++
++static void uart0_print_char(char c)
++{
++    struct vpl011 *uart = &current->domain->arch.uart0;
++
++    /* Accept only printable characters, newline, and horizontal tab. */
++    if ( !isprint(c) && (c != '\n') && (c != '\t') )
++        return ;
++
++    spin_lock(&uart->lock);
++    uart->buf[uart->idx++] = c;
++    if ( (uart->idx == (VPL011_BUF_SIZE - 2)) || (c == '\n') )
++    {
++        if ( c != '\n' )
++            uart->buf[uart->idx++] = '\n';
++        uart->buf[uart->idx] = '\0';
++        printk(XENLOG_G_DEBUG "DOM%u: %s",
++               current->domain->domain_id, uart->buf);
++        uart->idx = 0;
++    }
++    spin_unlock(&uart->lock);
++}
++
++static int uart0_mmio_check(struct vcpu *v, paddr_t addr)
++{
++    return v->domain->domain_id && addr >= UART0_BASE_ADDRESS && addr < (UART0_BASE_ADDRESS+65536);
++}
++
++static int uart0_mmio_read(struct vcpu *v, mmio_info_t *info)
++{
++    struct hsr_dabt dabt = info->dabt;
++    struct cpu_user_regs *regs = guest_cpu_user_regs();
++    uint32_t *r = &regs->r0 + dabt.reg;
++    int offset = (int)(info->gpa - UART0_BASE_ADDRESS);
++
++    switch ( offset )
++    {
++    case UARTDR:
++        *r = 0;
++        return 1;
++    case UARTFR:
++        *r = 0x87; /* All holding registers empty, ready to send etc */
++        return 1;
++    default:
++        printk("VPL011: unhandled read r%d offset %#08x\n",
++               dabt.reg, offset);
++        domain_crash_synchronous();
++    }
++}
++
++static int uart0_mmio_write(struct vcpu *v, mmio_info_t *info)
++{
++    struct hsr_dabt dabt = info->dabt;
++    struct cpu_user_regs *regs = guest_cpu_user_regs();
++    uint32_t *r = &regs->r0 + dabt.reg;
++    int offset = (int)(info->gpa - UART0_BASE_ADDRESS);
++    int val = (int)((*r) & 0xFF);
++
++    if ( dabt.size != 0 )
++    {
++        printk("VPL011: Invalid %d-byte write to offset %#x\n",
++               1<<dabt.size, offset);
++        domain_crash_synchronous();
++    }
++
++    switch ( offset )
++    {
++    case UARTDR:
++        uart0_print_char(val);
++        return 1;
++    case UARTFR:
++        /* Silently ignore */
++        return 1;
++    default:
++        printk("VPL011: unhandled write r%d=%"PRIx32" offset %#08x\n",
++               dabt.reg, *r, offset);
++        domain_crash_synchronous();
++    }
++}
++
++const struct mmio_handler uart0_mmio_handler = {
++    .check_handler = uart0_mmio_check,
++    .read_handler  = uart0_mmio_read,
++    .write_handler = uart0_mmio_write,
++};
++
++/*
++ * Local variables:
++ * mode: C
++ * c-set-style: "BSD"
++ * c-basic-offset: 4
++ * indent-tabs-mode: nil
++ * End:
++ */
++
+diff --git a/xen/arch/arm/vpl011.h b/xen/arch/arm/vpl011.h
+new file mode 100644
+index 0000000..952d812
+--- /dev/null
++++ b/xen/arch/arm/vpl011.h
+@@ -0,0 +1,34 @@
++/*
++ * xen/arch/arm/vpl011.h
++ *
++ * ARM PL011 Emulation Support
++ *
++ * Ian Campbell <ian.campbell@citrix.com>
++ * Copyright (c) 2012 Citrix Systems.
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++ * GNU General Public License for more details.
++ */
++
++#ifndef __ARCH_ARM_VPL011_H__
++#define __ARCH_ARM_VPL011_H__
++
++extern int domain_uart0_init(struct domain *d);
++
++#endif
++
++/*
++ * Local variables:
++ * mode: C
++ * c-set-style: "BSD"
++ * c-basic-offset: 4
++ * indent-tabs-mode: nil
++ * End:
++ */
+diff --git a/xen/include/asm-arm/domain.h b/xen/include/asm-arm/domain.h
+index 10ed540..f295a82 100644
+--- a/xen/include/asm-arm/domain.h
++++ b/xen/include/asm-arm/domain.h
+@@ -48,6 +48,14 @@ struct arch_domain
+         struct vgic_irq_rank *shared_irqs;
+         struct pending_irq *pending_irqs;
+     } vgic;
++
++    struct vpl011 {
++#define VPL011_BUF_SIZE 128
++        char                  *buf;
++        int                    idx;
++        spinlock_t             lock;
++    } uart0;
++
+ }  __cacheline_aligned;
+ struct arch_vcpu
+-- 
+1.7.9.1
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1338565207-2888-19-git-send-email-ian.campbell@citrix.com> b/config/examples/test/corpus/<1338565207-2888-19-git-send-email-ian.campbell@citrix.com>
new file mode 100644 (file)
index 0000000..eda8165
--- /dev/null
@@ -0,0 +1,466 @@
+From xen-devel-bounces@lists.xen.org Fri Jun 01 16:49:43 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 01 Jun 2012 16:49:43 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SaU6W-00052l-6J
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 01 Jun 2012 16:49:43 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SaU32-00087T-Nj; Fri, 01 Jun 2012 15:45:56 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1SaU2z-000869-WD
+       for xen-devel@lists.xen.org; Fri, 01 Jun 2012 15:45:54 +0000
+Received: from [85.158.143.35:58684] by server-1.bemta-4.messagelabs.com id
+       83/C9-27869-1B3E8CF4; Fri, 01 Jun 2012 15:45:53 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-8.tower-21.messagelabs.com!1338565548!13156336!3
+X-Originating-IP: [66.165.176.63]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyNTY3NTA=\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 23433 invoked from network); 1 Jun 2012 15:45:51 -0000
+Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
+       by server-8.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
+       1 Jun 2012 15:45:51 -0000
+X-IronPort-AV: E=Sophos;i="4.75,698,1330923600"; d="scan'208";a="197207432"
+Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
+       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       01 Jun 2012 11:45:51 -0400
+Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
+       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
+       Fri, 1 Jun 2012 11:45:51 -0400
+Received: from [10.80.246.74] (helo=army.uk.xensource.com)     by
+       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
+       <ian.campbell@citrix.com>)      id 1SaTxQ-0006I5-O2;
+       Fri, 01 Jun 2012 16:40:08 +0100
+From: Ian Campbell <ian.campbell@citrix.com>
+To: xen-devel@lists.xen.org
+Date: Fri, 1 Jun 2012 15:39:48 +0000
+Message-ID: <1338565207-2888-19-git-send-email-ian.campbell@citrix.com>
+X-Mailer: git-send-email 1.7.9.1
+In-Reply-To: <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
+       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+MIME-Version: 1.0
+Cc: Ian Campbell <ian.campbell@citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: [Xen-devel] [PATCH 19/38] arm: context switch a bunch of guest
+       state.
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+I haven't investigated what if any of this could be done lazily.
+
+Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+---
+ xen/arch/arm/domain.c         |  122 ++++++++++++++++++++++++++++++++++++++++-
+ xen/arch/arm/gic.c            |   25 ++++++++-
+ xen/arch/arm/gic.h            |    9 ++-
+ xen/include/asm-arm/cpregs.h  |   29 +++++++++-
+ xen/include/asm-arm/domain.h  |   33 ++++++++++-
+ xen/include/public/arch-arm.h |    3 +
+ 6 files changed, 210 insertions(+), 11 deletions(-)
+
+diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
+index d830980..a7fb227 100644
+--- a/xen/arch/arm/domain.c
++++ b/xen/arch/arm/domain.c
+@@ -36,12 +36,124 @@ void idle_loop(void)
+ static void ctxt_switch_from(struct vcpu *p)
+ {
++    /* CP 15 */
++    p->arch.csselr = READ_CP32(CSSELR);
++
++    /* Control Registers */
++    p->arch.actlr = READ_CP32(ACTLR);
++    p->arch.sctlr = READ_CP32(SCTLR);
++    p->arch.cpacr = READ_CP32(CPACR);
++
++    p->arch.contextidr = READ_CP32(CONTEXTIDR);
++    p->arch.tpidrurw = READ_CP32(TPIDRURW);
++    p->arch.tpidruro = READ_CP32(TPIDRURO);
++    p->arch.tpidrprw = READ_CP32(TPIDRPRW);
++
++    /* XXX only save these if ThumbEE e.g. ID_PFR0.THUMB_EE_SUPPORT */
++    p->arch.teecr = READ_CP32(TEECR);
++    p->arch.teehbr = READ_CP32(TEEHBR);
++
++    p->arch.joscr = READ_CP32(JOSCR);
++    p->arch.jmcr = READ_CP32(JMCR);
++
++    isb();
++
++    /* MMU */
++    p->arch.vbar = READ_CP32(VBAR);
++    p->arch.ttbcr = READ_CP32(TTBCR);
++    /* XXX save 64 bit TTBR if guest is LPAE */
++    p->arch.ttbr0 = READ_CP32(TTBR0);
++    p->arch.ttbr1 = READ_CP32(TTBR1);
++
++    p->arch.dacr = READ_CP32(DACR);
++    p->arch.par = READ_CP64(PAR);
++    p->arch.mair0 = READ_CP32(MAIR0);
++    p->arch.mair1 = READ_CP32(MAIR1);
++
++    /* Fault Status */
++    p->arch.dfar = READ_CP32(DFAR);
++    p->arch.ifar = READ_CP32(IFAR);
++    p->arch.dfsr = READ_CP32(DFSR);
++    p->arch.ifsr = READ_CP32(IFSR);
++    p->arch.adfsr = READ_CP32(ADFSR);
++    p->arch.aifsr = READ_CP32(AIFSR);
++
++    /* XXX MPU */
++
++    /* XXX VFP */
++
++    /* XXX VGIC */
++    gic_save_state(p);
++
++    isb();
+     context_saved(p);
+ }
+ static void ctxt_switch_to(struct vcpu *n)
+ {
++    uint32_t hcr;
++
++    hcr = READ_CP32(HCR);
++    WRITE_CP32(hcr & ~HCR_VM, HCR);
++    isb();
++
+     p2m_load_VTTBR(n->domain);
++    isb();
++
++    /* XXX VGIC */
++    gic_restore_state(n);
++
++    /* XXX VFP */
++
++    /* XXX MPU */
++
++    /* Fault Status */
++    WRITE_CP32(n->arch.dfar, DFAR);
++    WRITE_CP32(n->arch.ifar, IFAR);
++    WRITE_CP32(n->arch.dfsr, DFSR);
++    WRITE_CP32(n->arch.ifsr, IFSR);
++    WRITE_CP32(n->arch.adfsr, ADFSR);
++    WRITE_CP32(n->arch.aifsr, AIFSR);
++
++    /* MMU */
++    WRITE_CP32(n->arch.vbar, VBAR);
++    WRITE_CP32(n->arch.ttbcr, TTBCR);
++    /* XXX restore 64 bit TTBR if guest is LPAE */
++    WRITE_CP32(n->arch.ttbr0, TTBR0);
++    WRITE_CP32(n->arch.ttbr1, TTBR1);
++
++    WRITE_CP32(n->arch.dacr, DACR);
++    WRITE_CP64(n->arch.par, PAR);
++    WRITE_CP32(n->arch.mair0, MAIR0);
++    WRITE_CP32(n->arch.mair1, MAIR1);
++    isb();
++
++    /* Control Registers */
++    WRITE_CP32(n->arch.actlr, ACTLR);
++    WRITE_CP32(n->arch.sctlr, SCTLR);
++    WRITE_CP32(n->arch.cpacr, CPACR);
++
++    WRITE_CP32(n->arch.contextidr, CONTEXTIDR);
++    WRITE_CP32(n->arch.tpidrurw, TPIDRURW);
++    WRITE_CP32(n->arch.tpidruro, TPIDRURO);
++    WRITE_CP32(n->arch.tpidrprw, TPIDRPRW);
++
++    /* XXX only restore these if ThumbEE e.g. ID_PFR0.THUMB_EE_SUPPORT */
++    WRITE_CP32(n->arch.teecr, TEECR);
++    WRITE_CP32(n->arch.teehbr, TEEHBR);
++
++    WRITE_CP32(n->arch.joscr, JOSCR);
++    WRITE_CP32(n->arch.jmcr, JMCR);
++
++    isb();
++
++    /* CP 15 */
++    WRITE_CP32(n->arch.csselr, CSSELR);
++
++    isb();
++
++    WRITE_CP32(hcr, HCR);
++    isb();
+ }
+ static void schedule_tail(struct vcpu *prev)
+@@ -255,6 +367,7 @@ static int is_guest_psr(uint32_t psr)
+ int arch_set_info_guest(
+     struct vcpu *v, vcpu_guest_context_u c)
+ {
++    struct vcpu_guest_context *ctxt = c.nat;
+     struct cpu_user_regs *regs = &c.nat->user_regs;
+     if ( !is_guest_psr(regs->cpsr) )
+@@ -273,10 +386,13 @@ int arch_set_info_guest(
+     v->arch.cpu_info->guest_cpu_user_regs = *regs;
++    v->arch.sctlr = ctxt->sctlr;
++    v->arch.ttbr0 = ctxt->ttbr0;
++    v->arch.ttbr1 = ctxt->ttbr1;
++    v->arch.ttbcr = ctxt->ttbcr;
++
+     /* XXX other state:
+-     * - SCTLR
+-     * - TTBR0/1
+-     * - TTBCR
++     * -
+      */
+     //if ( flags & VGCF_online )
+diff --git a/xen/arch/arm/gic.c b/xen/arch/arm/gic.c
+index 1a2b95f..339c327 100644
+--- a/xen/arch/arm/gic.c
++++ b/xen/arch/arm/gic.c
+@@ -61,6 +61,30 @@ static struct {
+ irq_desc_t irq_desc[NR_IRQS];
+ unsigned nr_lrs;
++void gic_save_state(struct vcpu *v)
++{
++    int i;
++
++    for ( i=0; i<nr_lrs; i++)
++        v->arch.gic_lr[i] = GICH[GICH_LR + i];
++    /* Disable until next VCPU scheduled */
++    GICH[GICH_HCR] = 0;
++    isb();
++}
++
++void gic_restore_state(struct vcpu *v)
++{
++    int i;
++
++    if ( is_idle_vcpu(v) )
++        return;
++
++    for ( i=0; i<nr_lrs; i++)
++        GICH[GICH_LR + i] = v->arch.gic_lr[i];
++    GICH[GICH_HCR] = GICH_HCR_EN;
++    isb();
++}
++
+ static unsigned int gic_irq_startup(struct irq_desc *desc)
+ {
+     uint32_t enabler;
+@@ -263,7 +287,6 @@ static void __cpuinit gic_hyp_init(void)
+     vtr = GICH[GICH_VTR];
+     nr_lrs  = (vtr & GICH_VTR_NRLRGS) + 1;
+-    GICH[GICH_HCR] = GICH_HCR_EN;
+     GICH[GICH_MISR] = GICH_MISR_EOI;
+ }
+diff --git a/xen/arch/arm/gic.h b/xen/arch/arm/gic.h
+index ff8d0a2..ac9cf3a 100644
+--- a/xen/arch/arm/gic.h
++++ b/xen/arch/arm/gic.h
+@@ -70,8 +70,8 @@
+ #define GICH_MISR       (0x10/4)
+ #define GICH_EISR0      (0x20/4)
+ #define GICH_EISR1      (0x24/4)
+-#define GICH_ELRSR0     (0x30/4)
+-#define GICH_ELRSR1     (0x34/4)
++#define GICH_ELSR0      (0x30/4)
++#define GICH_ELSR1      (0x34/4)
+ #define GICH_APR        (0xF0/4)
+ #define GICH_LR         (0x100/4)
+@@ -149,6 +149,11 @@ extern void gic_init_secondary_cpu(void);
+ extern void gic_disable_cpu(void);
+ /* setup the gic virtual interface for a guest */
+ extern void gicv_setup(struct domain *d);
++
++/* Context switch */
++extern void gic_save_state(struct vcpu *v);
++extern void gic_restore_state(struct vcpu *v);
++
+ #endif
+ /*
+diff --git a/xen/include/asm-arm/cpregs.h b/xen/include/asm-arm/cpregs.h
+index 7a0b49a..bd46942 100644
+--- a/xen/include/asm-arm/cpregs.h
++++ b/xen/include/asm-arm/cpregs.h
+@@ -88,6 +88,19 @@
+  * arguments, which are cp,opc1,crn,crm,opc2.
+  */
++/* Coprocessor 14 */
++
++/* CP14 CR0: */
++#define TEECR           p14,6,c0,c0,0   /* ThumbEE Configuration Register */
++
++/* CP14 CR1: */
++#define TEEHBR          p14,6,c1,c0,0   /* ThumbEE Handler Base Register */
++#define JOSCR           p14,7,c1,c0,0   /* Jazelle OS Control Register */
++
++/* CP14 CR2: */
++#define JMCR            p14,7,c2,c0,0   /* Jazelle Main Configuration Register */
++
++
+ /* Coprocessor 15 */
+ /* CP15 CR0: CPUID and Cache Type Registers */
+@@ -112,6 +125,8 @@
+ /* CP15 CR1: System Control Registers */
+ #define SCTLR           p15,0,c1,c0,0   /* System Control Register */
++#define ACTLR           p15,0,c1,c0,1   /* Auxiliary Control Register */
++#define CPACR           p15,0,c1,c0,2   /* Coprocessor Access Control Register */
+ #define SCR             p15,0,c1,c1,0   /* Secure Configuration Register */
+ #define NSACR           p15,0,c1,c1,2   /* Non-Secure Access Control Register */
+ #define HSCTLR          p15,4,c1,c0,0   /* Hyp. System Control Register */
+@@ -127,12 +142,15 @@
+ #define VTTBR           p15,6,c2        /* Virtualization Translation Table Base Register */
+ /* CP15 CR3: Domain Access Control Register */
++#define DACR            p15,0,c3,c0,0   /* Domain Access Control Register */
+ /* CP15 CR4: */
+ /* CP15 CR5: Fault Status Registers */
+ #define DFSR            p15,0,c5,c0,0   /* Data Fault Status Register */
+ #define IFSR            p15,0,c5,c0,1   /* Instruction Fault Status Register */
++#define ADFSR           p15,0,c5,c1,0   /* Auxiliary Data Fault Status Register */
++#define AIFSR           p15,0,c5,c1,1   /* Auxiliary Instruction Fault Status Register */
+ #define HSR             p15,4,c5,c2,0   /* Hyp. Syndrome Register */
+ /* CP15 CR6: Fault Address Registers */
+@@ -144,6 +162,7 @@
+ /* CP15 CR7: Cache and address translation operations */
+ #define PAR             p15,0,c7        /* Physical Address Register */
++
+ #define ICIALLUIS       p15,0,c7,c1,0   /* Invalidate all instruction caches to PoU inner shareable */
+ #define BPIALLIS        p15,0,c7,c1,6   /* Invalidate entire branch predictor array inner shareable */
+ #define ICIALLU         p15,0,c7,c5,0   /* Invalidate all instruction caches to PoU */
+@@ -192,20 +211,24 @@
+ /* CP15 CR9: */
+ /* CP15 CR10: */
+-#define MAIR0           p15,0,c10,c2,0  /* Memory Attribute Indirection Register 0 */
+-#define MAIR1           p15,0,c10,c2,1  /* Memory Attribute Indirection Register 1 */
++#define MAIR0           p15,0,c10,c2,0  /* Memory Attribute Indirection Register 0 AKA PRRR */
++#define MAIR1           p15,0,c10,c2,1  /* Memory Attribute Indirection Register 1 AKA NMRR */
+ #define HMAIR0          p15,4,c10,c2,0  /* Hyp. Memory Attribute Indirection Register 0 */
+ #define HMAIR1          p15,4,c10,c2,1  /* Hyp. Memory Attribute Indirection Register 1 */
+ /* CP15 CR11: DMA Operations for TCM Access */
+ /* CP15 CR12:  */
++#define VBAR            p15,0,c12,c0,0  /* Vector Base Address Register */
+ #define HVBAR           p15,4,c12,c0,0  /* Hyp. Vector Base Address Register */
+ /* CP15 CR13:  */
+ #define FCSEIDR         p15,0,c13,c0,0  /* FCSE Process ID Register */
+ #define CONTEXTIDR      p15,0,c13,c0,1  /* Context ID Register */
+-#define HTPIDR          p15,4,c13,c0,2  /* Hyp. Software Thread ID Register */
++#define TPIDRURW        p15,0,c13,c0,2  /* Software Thread ID, User, R/W */
++#define TPIDRURO        p15,0,c13,c0,3  /* Software Thread ID, User, R/O */
++#define TPIDRPRW        p15,0,c13,c0,4  /* Software Thread ID, Priveleged */
++#define HTPIDR          p15,4,c13,c0,2  /* HYp Software Thread Id Register */
+ /* CP15 CR14:  */
+ #define CNTPCT          p15,0,c14       /* Time counter value */
+diff --git a/xen/include/asm-arm/domain.h b/xen/include/asm-arm/domain.h
+index f295a82..620b26e 100644
+--- a/xen/include/asm-arm/domain.h
++++ b/xen/include/asm-arm/domain.h
+@@ -81,8 +81,37 @@ struct arch_vcpu
+      */
+     struct cpu_info *cpu_info;
+-    uint32_t sctlr;
+-    uint32_t ttbr0, ttbr1, ttbcr;
++    /* Fault Status */
++    uint32_t dfar, ifar;
++    uint32_t dfsr, ifsr;
++    uint32_t adfsr, aifsr;
++
++    /* MMU */
++    uint32_t vbar;
++    uint32_t ttbcr;
++    uint32_t ttbr0, ttbr1;
++
++    uint32_t dacr;
++    uint64_t par;
++    uint32_t mair0, mair1;
++
++    /* Control Registers */
++    uint32_t actlr, sctlr;
++    uint32_t cpacr;
++
++    uint32_t contextidr;
++    uint32_t tpidrurw;
++    uint32_t tpidruro;
++    uint32_t tpidrprw;
++
++    uint32_t teecr, teehbr;
++    uint32_t joscr, jmcr;
++
++    /* CP 15 */
++    uint32_t csselr;
++
++    uint32_t gic_hcr, gic_vmcr, gic_apr;
++    uint32_t gic_lr[64];
+     struct {
+         struct vgic_irq_rank private_irqs;
+diff --git a/xen/include/public/arch-arm.h b/xen/include/public/arch-arm.h
+index e439727..e915cbf 100644
+--- a/xen/include/public/arch-arm.h
++++ b/xen/include/public/arch-arm.h
+@@ -124,6 +124,9 @@ typedef uint32_t xen_ulong_t;
+ struct vcpu_guest_context {
+     struct cpu_user_regs user_regs;         /* User-level CPU registers     */
++
++    uint32_t sctlr;
++    uint32_t ttbr0, ttbr1, ttbcr;
+ };
+ typedef struct vcpu_guest_context vcpu_guest_context_t;
+ DEFINE_XEN_GUEST_HANDLE(vcpu_guest_context_t);
+-- 
+1.7.9.1
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1338565207-2888-2-git-send-email-ian.campbell@citrix.com> b/config/examples/test/corpus/<1338565207-2888-2-git-send-email-ian.campbell@citrix.com>
new file mode 100644 (file)
index 0000000..9ab299f
--- /dev/null
@@ -0,0 +1,186 @@
+From xen-devel-bounces@lists.xen.org Fri Jun 01 16:43:49 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 01 Jun 2012 16:43:49 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SaU0r-0004te-GC
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 01 Jun 2012 16:43:49 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SaTxV-0006eC-QI; Fri, 01 Jun 2012 15:40:13 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1SaTxU-0006dq-5x
+       for xen-devel@lists.xen.org; Fri, 01 Jun 2012 15:40:12 +0000
+Received: from [85.158.139.83:45040] by server-9.bemta-5.messagelabs.com id
+       EC/D2-27779-B52E8CF4; Fri, 01 Jun 2012 15:40:11 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-8.tower-182.messagelabs.com!1338565208!17780788!2
+X-Originating-IP: [66.165.176.63]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyNTY3NTA=\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 1508 invoked from network); 1 Jun 2012 15:40:10 -0000
+Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
+       by server-8.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
+       1 Jun 2012 15:40:10 -0000
+X-IronPort-AV: E=Sophos;i="4.75,698,1330923600"; d="scan'208";a="197206651"
+Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
+       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       01 Jun 2012 11:40:08 -0400
+Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
+       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
+       Fri, 1 Jun 2012 11:40:08 -0400
+Received: from [10.80.246.74] (helo=army.uk.xensource.com)     by
+       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
+       <ian.campbell@citrix.com>)      id 1SaTxP-0006I5-MA;
+       Fri, 01 Jun 2012 16:40:07 +0100
+From: Ian Campbell <ian.campbell@citrix.com>
+To: xen-devel@lists.xen.org
+Date: Fri, 1 Jun 2012 15:39:31 +0000
+Message-ID: <1338565207-2888-2-git-send-email-ian.campbell@citrix.com>
+X-Mailer: git-send-email 1.7.9.1
+In-Reply-To: <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
+       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+MIME-Version: 1.0
+Cc: Ian Campbell <ian.campbell@citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: [Xen-devel] [PATCH 02/38] arm: handy function to print a walk of
+       the hypervisor page tables
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+Useful for debug but not actually used in this patch.
+
+Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+---
+ xen/arch/arm/mm.c          |   53 ++++++++++++++++++++++++++++++++++++++++++-
+ xen/include/asm-arm/page.h |    2 +
+ 2 files changed, 53 insertions(+), 2 deletions(-)
+
+diff --git a/xen/arch/arm/mm.c b/xen/arch/arm/mm.c
+index 10ff883..c332e4c 100644
+--- a/xen/arch/arm/mm.c
++++ b/xen/arch/arm/mm.c
+@@ -42,6 +42,8 @@ static lpae_t xen_xenmap[LPAE_ENTRIES] __attribute__((__aligned__(4096)));
+ /* Non-boot CPUs use this to find the correct pagetables. */
+ uint64_t boot_httbr;
++static paddr_t xen_phys_offset;
++
+ /* Limits of the Xen heap */
+ unsigned long xenheap_mfn_start, xenheap_mfn_end;
+ unsigned long xenheap_virt_end;
+@@ -53,6 +55,53 @@ unsigned long max_page;
+ extern char __init_begin[], __init_end[];
++void dump_pt_walk(uint32_t addr)
++{
++    paddr_t second_ma, third_ma;
++    lpae_t *first = NULL, *second = NULL, *third = NULL;
++    uint64_t httbr = READ_CP64(HTTBR);
++
++    printk("Walking Hypervisor VA %#"PRIx32" via HTTBR %#"PRIx64"\n",
++           addr, httbr);
++
++    BUG_ON( (lpae_t *)(unsigned long)(httbr - xen_phys_offset) != xen_pgtable );
++    first = xen_pgtable;
++    printk("1ST[%#03"PRIx32"] = %p[%#03"PRIx32"] = %#llx = %#016llx\n",
++           first_table_offset(addr),
++           first, first_table_offset(addr),
++           virt_to_maddr(&first[first_table_offset(addr)]),
++           first[first_table_offset(addr)].bits);
++
++    if ( !first[first_table_offset(addr)].pt.valid ||
++         !first[first_table_offset(addr)].pt.table )
++        goto done;
++
++    second_ma = (paddr_t)first[first_table_offset(addr)].pt.base << PAGE_SHIFT;
++    second = (lpae_t *)(unsigned long)(second_ma - xen_phys_offset);
++    printk("2ND[%#03"PRIx32"] = %p[%#03"PRIx32"] = %#llx = %#016llx\n",
++           second_table_offset(addr),
++           second, second_table_offset(addr),
++           virt_to_maddr(&second[second_table_offset(addr)]),
++           second[second_table_offset(addr)].bits);
++    if ( !second[second_table_offset(addr)].pt.valid ||
++         !second[second_table_offset(addr)].pt.table )
++        goto done;
++
++    third_ma = (paddr_t)second[second_table_offset(addr)].pt.base << PAGE_SHIFT;
++    third = (lpae_t *)(unsigned long)(third_ma - xen_phys_offset);
++    printk("3RD[%#03"PRIx32"] = %p[%#03"PRIx32"] = %#llx = %#016llx\n",
++           third_table_offset(addr),
++           third, third_table_offset(addr),
++           virt_to_maddr(&third[third_table_offset(addr)]),
++           third[third_table_offset(addr)].bits);
++    if ( !third[third_table_offset(addr)].pt.valid ||
++         !third[third_table_offset(addr)].pt.table )
++        goto done;
++
++done:
++    return;
++}
++
+ /* Map a 4k page in a fixmap entry */
+ void set_fixmap(unsigned map, unsigned long mfn, unsigned attributes)
+ {
+@@ -173,8 +222,8 @@ void __init setup_pagetables(unsigned long boot_phys_offset)
+     flush_xen_data_tlb_va(dest_va);
+     /* Calculate virt-to-phys offset for the new location */
+-    phys_offset = xen_paddr - (unsigned long) _start;
+-
++    xen_phys_offset = phys_offset = xen_paddr - (unsigned long) _start;
++    
+     /* Copy */
+     memcpy((void *) dest_va, _start, _end - _start);
+diff --git a/xen/include/asm-arm/page.h b/xen/include/asm-arm/page.h
+index b6df64e..22c56b5 100644
+--- a/xen/include/asm-arm/page.h
++++ b/xen/include/asm-arm/page.h
+@@ -312,6 +312,8 @@ static inline uint64_t gva_to_ipa(uint32_t va)
+ /* Bits in the PAR returned by va_to_par */
+ #define PAR_FAULT 0x1
++extern void dump_pt_walk(uint32_t addr);
++
+ #endif /* __ASSEMBLY__ */
+ /* These numbers add up to a 39-bit input address space.  The  ARMv7-A
+-- 
+1.7.9.1
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1338565207-2888-20-git-send-email-ian.campbell@citrix.com> b/config/examples/test/corpus/<1338565207-2888-20-git-send-email-ian.campbell@citrix.com>
new file mode 100644 (file)
index 0000000..a95c94d
--- /dev/null
@@ -0,0 +1,129 @@
+From xen-devel-bounces@lists.xen.org Fri Jun 01 16:49:35 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 01 Jun 2012 16:49:35 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SaU6O-00050R-DN
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 01 Jun 2012 16:49:35 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SaU3D-0008M4-C0; Fri, 01 Jun 2012 15:46:07 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1SaU39-0008D3-Jb
+       for xen-devel@lists.xen.org; Fri, 01 Jun 2012 15:46:03 +0000
+Received: from [85.158.143.99:51510] by server-1.bemta-4.messagelabs.com id
+       7F/F9-27869-BB3E8CF4; Fri, 01 Jun 2012 15:46:03 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-5.tower-216.messagelabs.com!1338565558!30625361!4
+X-Originating-IP: [66.165.176.63]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyNTY3NTA=\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 9266 invoked from network); 1 Jun 2012 15:46:01 -0000
+Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
+       by server-5.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
+       1 Jun 2012 15:46:01 -0000
+X-IronPort-AV: E=Sophos;i="4.75,698,1330923600"; d="scan'208";a="197207466"
+Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
+       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       01 Jun 2012 11:46:00 -0400
+Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
+       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
+       Fri, 1 Jun 2012 11:46:00 -0400
+Received: from [10.80.246.74] (helo=army.uk.xensource.com)     by
+       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
+       <ian.campbell@citrix.com>)      id 1SaTxQ-0006I5-PT;
+       Fri, 01 Jun 2012 16:40:08 +0100
+From: Ian Campbell <ian.campbell@citrix.com>
+To: xen-devel@lists.xen.org
+Date: Fri, 1 Jun 2012 15:39:49 +0000
+Message-ID: <1338565207-2888-20-git-send-email-ian.campbell@citrix.com>
+X-Mailer: git-send-email 1.7.9.1
+In-Reply-To: <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
+       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+MIME-Version: 1.0
+Cc: Ian Campbell <ian.campbell@citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: [Xen-devel] [PATCH 20/38] arm: dump a page table walk when
+       va_to_par fails.
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+---
+ xen/include/asm-arm/page.h |   12 ++++++++----
+ 1 files changed, 8 insertions(+), 4 deletions(-)
+
+diff --git a/xen/include/asm-arm/page.h b/xen/include/asm-arm/page.h
+index bb1729a..f36bf6f 100644
+--- a/xen/include/asm-arm/page.h
++++ b/xen/include/asm-arm/page.h
+@@ -254,6 +254,9 @@ static inline void flush_guest_tlb(void)
+     WRITE_CP32(r0 /* dummy */, TLBIALLNSNH);
+ }
++extern void dump_pt_walk(uint32_t addr);
++extern void dump_p2m_lookup(struct domain *d, paddr_t addr);
++
+ /* Ask the MMU to translate a VA for us */
+ static inline uint64_t __va_to_par(uint32_t va)
+ {
+@@ -270,7 +273,11 @@ static inline uint64_t va_to_par(uint32_t va)
+ {
+     uint64_t par = __va_to_par(va);
+     /* It is not OK to call this with an invalid VA */
+-    if ( par & PAR_F ) panic_PAR(par, "Hypervisor");
++    if ( par & PAR_F )
++    {
++        dump_pt_walk(va);
++        panic_PAR(par, "Hypervisor");
++    }
+     return par;
+ }
+@@ -314,9 +321,6 @@ static inline uint64_t gva_to_ipa(uint32_t va)
+ /* Bits in the PAR returned by va_to_par */
+ #define PAR_FAULT 0x1
+-extern void dump_pt_walk(uint32_t addr);
+-extern void dump_p2m_lookup(struct domain *d, paddr_t addr);
+-
+ #endif /* __ASSEMBLY__ */
+ /* These numbers add up to a 39-bit input address space.  The  ARMv7-A
+-- 
+1.7.9.1
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1338565207-2888-21-git-send-email-ian.campbell@citrix.com> b/config/examples/test/corpus/<1338565207-2888-21-git-send-email-ian.campbell@citrix.com>
new file mode 100644 (file)
index 0000000..c76ba3d
--- /dev/null
@@ -0,0 +1,223 @@
+From xen-devel-bounces@lists.xen.org Fri Jun 01 16:49:34 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 01 Jun 2012 16:49:34 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SaU6O-000509-5X
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 01 Jun 2012 16:49:34 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SaU35-00089Z-I4; Fri, 01 Jun 2012 15:45:59 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1SaU32-00087S-S6
+       for xen-devel@lists.xen.org; Fri, 01 Jun 2012 15:45:57 +0000
+Received: from [85.158.138.51:33247] by server-12.bemta-3.messagelabs.com id
+       0E/1D-29860-4B3E8CF4; Fri, 01 Jun 2012 15:45:56 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-4.tower-174.messagelabs.com!1338565552!30346150!2
+X-Originating-IP: [66.165.176.89]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNDc3NzE=\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 25470 invoked from network); 1 Jun 2012 15:45:55 -0000
+Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
+       by server-4.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
+       1 Jun 2012 15:45:55 -0000
+X-IronPort-AV: E=Sophos;i="4.75,698,1330923600"; d="scan'208";a="26548473"
+Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
+       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       01 Jun 2012 11:45:54 -0400
+Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
+       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
+       Fri, 1 Jun 2012 11:45:54 -0400
+Received: from [10.80.246.74] (helo=army.uk.xensource.com)     by
+       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
+       <ian.campbell@citrix.com>)      id 1SaTxQ-0006I5-Qj;
+       Fri, 01 Jun 2012 16:40:08 +0100
+From: Ian Campbell <ian.campbell@citrix.com>
+To: xen-devel@lists.xen.org
+Date: Fri, 1 Jun 2012 15:39:50 +0000
+Message-ID: <1338565207-2888-21-git-send-email-ian.campbell@citrix.com>
+X-Mailer: git-send-email 1.7.9.1
+In-Reply-To: <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
+       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+MIME-Version: 1.0
+Cc: Ian Campbell <ian.campbell@citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: [Xen-devel] [PATCH 21/38] arm: dump guest s1 walk on data abort
+       which is not a stage 2 issue.
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+---
+ xen/arch/arm/traps.c            |   75 +++++++++++++++++++++++++++++++++++---
+ xen/include/asm-arm/processor.h |    1 +
+ 2 files changed, 70 insertions(+), 6 deletions(-)
+
+diff --git a/xen/arch/arm/traps.c b/xen/arch/arm/traps.c
+index 40bb375..35907ee 100644
+--- a/xen/arch/arm/traps.c
++++ b/xen/arch/arm/traps.c
+@@ -28,6 +28,7 @@
+ #include <xen/errno.h>
+ #include <xen/hypercall.h>
+ #include <xen/softirq.h>
++#include <xen/domain_page.h>
+ #include <public/xen.h>
+ #include <asm/regs.h>
+ #include <asm/cpregs.h>
+@@ -528,6 +529,62 @@ static void do_cp15_64(struct cpu_user_regs *regs,
+ }
++void dump_guest_s1_walk(struct domain *d, uint32_t addr)
++{
++    uint32_t ttbcr = READ_CP32(TTBCR);
++    uint32_t ttbr0 = READ_CP32(TTBR0);
++    paddr_t paddr;
++    uint32_t offset;
++    uint32_t *first = NULL, *second = NULL;
++
++    printk("dom%d VA %#010"PRIx32"\n", d->domain_id, addr);
++    printk("    TTBCR: %#010"PRIx32"\n", ttbcr);
++    printk("    TTBR0: %#010"PRIx32" = %#"PRIpaddr"\n",
++           ttbr0, p2m_lookup(d, ttbr0 & PAGE_MASK));
++
++    if ( ttbcr & TTBCR_EAE )
++    {
++        printk("Cannot handle LPAE guest PT walk\n");
++        return;
++    }
++    if ( (ttbcr & TTBCR_N_MASK) != 0 )
++    {
++        printk("Cannot handle TTBR1 guest walks\n");
++        return;
++    }
++
++    paddr = p2m_lookup(d, ttbr0 & PAGE_MASK);
++    if ( paddr == INVALID_PADDR )
++    {
++        printk("Failed TTBR0 maddr lookup\n");
++        goto done;
++    }
++    first = map_domain_page(paddr>>PAGE_SHIFT);
++
++    offset = addr >> (12+10);
++    printk("1ST[%#03"PRIx32"] (%#"PRIpaddr") = %#010"PRIx32"\n",
++           offset, paddr, first[offset]);
++    if ( !(first[offset] & 0x1) ||
++         !(first[offset] & 0x2) )
++        goto done;
++
++    paddr = p2m_lookup(d, first[offset] & PAGE_MASK);
++
++    if ( paddr == INVALID_PADDR )
++    {
++        printk("Failed L1 entry maddr lookup\n");
++        goto done;
++    }
++    second = map_domain_page(paddr>>PAGE_SHIFT);
++    offset = (addr >> 12) & 0x3FF;
++    printk("2ND[%#03"PRIx32"] (%#"PRIpaddr") = %#010"PRIx32"\n",
++           offset, paddr, second[offset]);
++
++done:
++    if (second) unmap_domain_page(second);
++    if (first) unmap_domain_page(first);
++}
++
+ static void do_trap_data_abort_guest(struct cpu_user_regs *regs,
+                                      struct hsr_dabt dabt)
+ {
+@@ -535,11 +592,12 @@ static void do_trap_data_abort_guest(struct cpu_user_regs *regs,
+     int level = -1;
+     mmio_info_t info;
++    info.dabt = dabt;
++    info.gva = READ_CP32(HDFAR);
++
+     if (dabt.s1ptw)
+         goto bad_data_abort;
+-    info.dabt = dabt;
+-    info.gva = READ_CP32(HDFAR);
+     info.gpa = gva_to_ipa(info.gva);
+     if (handle_mmio(&info))
+@@ -553,18 +611,23 @@ bad_data_abort:
+     msg = decode_fsc( dabt.dfsc, &level);
+     printk("Guest data abort: %s%s%s\n"
+-           "    gva=%"PRIx32" gpa=%"PRIpaddr"\n",
++           "    gva=%"PRIx32"\n",
+            msg, dabt.s1ptw ? " S2 during S1" : "",
+            fsc_level_str(level),
+-           info.gva, info.gpa);
+-    if (dabt.valid)
++           info.gva);
++    if ( !dabt.s1ptw )
++        printk("    gpa=%"PRIpaddr"\n", info.gpa);
++    if ( dabt.valid )
+         printk("    size=%d sign=%d write=%d reg=%d\n",
+                dabt.size, dabt.sign, dabt.write, dabt.reg);
+     else
+         printk("    instruction syndrome invalid\n");
+     printk("    eat=%d cm=%d s1ptw=%d dfsc=%d\n",
+            dabt.eat, dabt.cache, dabt.s1ptw, dabt.dfsc);
+-
++    if ( !dabt.s1ptw )
++        dump_p2m_lookup(current->domain, info.gpa);
++    else
++        dump_guest_s1_walk(current->domain, info.gva);
+     show_execution_state(regs);
+     panic("Unhandled guest data abort\n");
+ }
+diff --git a/xen/include/asm-arm/processor.h b/xen/include/asm-arm/processor.h
+index ec6fb48..81924a4 100644
+--- a/xen/include/asm-arm/processor.h
++++ b/xen/include/asm-arm/processor.h
+@@ -25,6 +25,7 @@
+ #define PSR_JAZELLE     (1<<24)       /* Jazelle Mode */
+ /* TTBCR Translation Table Base Control Register */
++#define TTBCR_EAE    0x80000000
+ #define TTBCR_N_MASK 0x07
+ #define TTBCR_N_16KB 0x00
+ #define TTBCR_N_8KB  0x01
+-- 
+1.7.9.1
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1338565207-2888-22-git-send-email-ian.campbell@citrix.com> b/config/examples/test/corpus/<1338565207-2888-22-git-send-email-ian.campbell@citrix.com>
new file mode 100644 (file)
index 0000000..3320a82
--- /dev/null
@@ -0,0 +1,206 @@
+From xen-devel-bounces@lists.xen.org Fri Jun 01 16:49:21 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 01 Jun 2012 16:49:21 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SaU6D-0004xQ-R4
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 01 Jun 2012 16:49:21 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SaU3G-0008Rb-GB; Fri, 01 Jun 2012 15:46:10 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1SaU3C-0008D3-44
+       for xen-devel@lists.xen.org; Fri, 01 Jun 2012 15:46:06 +0000
+Received: from [85.158.143.99:6058] by server-1.bemta-4.messagelabs.com id
+       9C/0A-27869-DB3E8CF4; Fri, 01 Jun 2012 15:46:05 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-5.tower-216.messagelabs.com!1338565558!30625361!8
+X-Originating-IP: [66.165.176.63]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyNTY3NTA=\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 9430 invoked from network); 1 Jun 2012 15:46:04 -0000
+Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
+       by server-5.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
+       1 Jun 2012 15:46:04 -0000
+X-IronPort-AV: E=Sophos;i="4.75,698,1330923600"; d="scan'208";a="197207485"
+Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
+       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       01 Jun 2012 11:46:03 -0400
+Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
+       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
+       Fri, 1 Jun 2012 11:46:03 -0400
+Received: from [10.80.246.74] (helo=army.uk.xensource.com)     by
+       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
+       <ian.campbell@citrix.com>)      id 1SaTxQ-0006I5-S2;
+       Fri, 01 Jun 2012 16:40:08 +0100
+From: Ian Campbell <ian.campbell@citrix.com>
+To: xen-devel@lists.xen.org
+Date: Fri, 1 Jun 2012 15:39:51 +0000
+Message-ID: <1338565207-2888-22-git-send-email-ian.campbell@citrix.com>
+X-Mailer: git-send-email 1.7.9.1
+In-Reply-To: <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
+       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+MIME-Version: 1.0
+Cc: Ian Campbell <ian.campbell@citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: [Xen-devel] [PATCH 22/38] arm: implement vcpu_show_execution_state
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+---
+ xen/arch/arm/dummy.S |    1 -
+ xen/arch/arm/traps.c |   56 +++++++++++++++++++++++++++++++++++++++++++++----
+ 2 files changed, 51 insertions(+), 6 deletions(-)
+
+diff --git a/xen/arch/arm/dummy.S b/xen/arch/arm/dummy.S
+index 03f7489..cab9522 100644
+--- a/xen/arch/arm/dummy.S
++++ b/xen/arch/arm/dummy.S
+@@ -21,7 +21,6 @@ DUMMY(pirq_set_affinity);
+ DUMMY(arch_get_info_guest);
+ DUMMY(arch_vcpu_reset);
+ NOP(update_vcpu_system_time);
+-DUMMY(vcpu_show_execution_state);
+ /* Page Reference & Type Maintenance */
+ DUMMY(get_page);
+diff --git a/xen/arch/arm/traps.c b/xen/arch/arm/traps.c
+index 35907ee..ec74298 100644
+--- a/xen/arch/arm/traps.c
++++ b/xen/arch/arm/traps.c
+@@ -170,7 +170,13 @@ void panic_PAR(uint64_t par, const char *when)
+     panic("Error during %s-to-physical address translation\n", when);
+ }
+-void show_registers(struct cpu_user_regs *regs)
++struct reg_ctxt {
++    uint32_t sctlr;
++    uint32_t ttbr0, ttbr1, ttbcr;
++};
++static void _show_registers(struct cpu_user_regs *regs,
++                            struct reg_ctxt *ctxt,
++                            int guest_mode)
+ {
+     static const char *mode_strings[] = {
+        [PSR_MODE_USR] = "USR",
+@@ -187,7 +193,7 @@ void show_registers(struct cpu_user_regs *regs)
+     print_xen_info();
+     printk("CPU:    %d\n", smp_processor_id());
+     printk("PC:     %08"PRIx32, regs->pc);
+-    if ( !guest_mode(regs) )
++    if ( !guest_mode )
+             print_symbol(" %s", regs->pc);
+     printk("\n");
+     printk("CPSR:   %08"PRIx32" MODE:%s\n", regs->cpsr,
+@@ -199,7 +205,7 @@ void show_registers(struct cpu_user_regs *regs)
+     printk("     R8: %08"PRIx32" R9: %08"PRIx32" R10:%08"PRIx32" R11:%08"PRIx32" R12:%08"PRIx32"\n",
+            regs->r8, regs->r9, regs->r10, regs->r11, regs->r12);
+-    if ( guest_mode(regs) )
++    if ( guest_mode )
+     {
+         printk("USR: SP: %08"PRIx32" LR: %08"PRIx32" CPSR:%08"PRIx32"\n",
+                regs->sp_usr, regs->lr_usr, regs->cpsr);
+@@ -217,8 +223,8 @@ void show_registers(struct cpu_user_regs *regs)
+                regs->r8_fiq, regs->r9_fiq, regs->r10_fiq, regs->r11_fiq, regs->r11_fiq);
+         printk("\n");
+         printk("TTBR0 %08"PRIx32" TTBR1 %08"PRIx32" TTBCR %08"PRIx32"\n",
+-               READ_CP32(TTBR0), READ_CP32(TTBR1), READ_CP32(TTBCR));
+-        printk("SCTLR %08"PRIx32"\n", READ_CP32(SCTLR));
++               ctxt->ttbr0, ctxt->ttbr1, ctxt->ttbcr);
++        printk("SCTLR %08"PRIx32"\n", ctxt->sctlr);
+         printk("VTTBR %010"PRIx64"\n", READ_CP64(VTTBR));
+         printk("\n");
+     }
+@@ -241,6 +247,26 @@ void show_registers(struct cpu_user_regs *regs)
+     printk("\n");
+ }
++void show_registers(struct cpu_user_regs *regs)
++{
++    struct reg_ctxt ctxt;
++    ctxt.sctlr = READ_CP32(SCTLR);
++    ctxt.ttbcr = READ_CP32(TTBCR);
++    ctxt.ttbr0 = READ_CP32(TTBR0);
++    ctxt.ttbr1 = READ_CP32(TTBR1);
++    _show_registers(regs, &ctxt, guest_mode(regs));
++}
++
++void vcpu_show_registers(const struct vcpu *v)
++{
++    struct reg_ctxt ctxt;
++    ctxt.sctlr = v->arch.sctlr;
++    ctxt.ttbcr = v->arch.ttbcr;
++    ctxt.ttbr0 = v->arch.ttbr0;
++    ctxt.ttbr1 = v->arch.ttbr1;
++    _show_registers(&v->arch.cpu_info->guest_cpu_user_regs, &ctxt, 1);
++}
++
+ static void show_guest_stack(struct cpu_user_regs *regs)
+ {
+     printk("GUEST STACK GOES HERE\n");
+@@ -334,6 +360,26 @@ void show_execution_state(struct cpu_user_regs *regs)
+     show_stack(regs);
+ }
++void vcpu_show_execution_state(struct vcpu *v)
++{
++    printk("*** Dumping Dom%d vcpu#%d state: ***\n",
++           v->domain->domain_id, v->vcpu_id);
++
++    if ( v == current )
++    {
++        show_execution_state(guest_cpu_user_regs());
++        return;
++    }
++
++    vcpu_pause(v); /* acceptably dangerous */
++
++    vcpu_show_registers(v);
++    if ( !usr_mode(&v->arch.cpu_info->guest_cpu_user_regs) )
++        show_guest_stack(&v->arch.cpu_info->guest_cpu_user_regs);
++
++    vcpu_unpause(v);
++}
++
+ static void do_unexpected_trap(const char *msg, struct cpu_user_regs *regs)
+ {
+     printk("Unexpected Trap: %s\n", msg);
+-- 
+1.7.9.1
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1338565207-2888-23-git-send-email-ian.campbell@citrix.com> b/config/examples/test/corpus/<1338565207-2888-23-git-send-email-ian.campbell@citrix.com>
new file mode 100644 (file)
index 0000000..0efe844
--- /dev/null
@@ -0,0 +1,163 @@
+From xen-devel-bounces@lists.xen.org Fri Jun 01 16:49:36 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 01 Jun 2012 16:49:36 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SaU6R-00051M-Ca
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 01 Jun 2012 16:49:36 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SaU3H-0008TG-6s; Fri, 01 Jun 2012 15:46:11 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1SaU3C-0008D3-JX
+       for xen-devel@lists.xen.org; Fri, 01 Jun 2012 15:46:06 +0000
+Received: from [85.158.143.99:55669] by server-1.bemta-4.messagelabs.com id
+       2E/0A-27869-EB3E8CF4; Fri, 01 Jun 2012 15:46:06 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-5.tower-216.messagelabs.com!1338565558!30625361!7
+X-Originating-IP: [66.165.176.63]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyNTY3NTA=\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 9405 invoked from network); 1 Jun 2012 15:46:03 -0000
+Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
+       by server-5.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
+       1 Jun 2012 15:46:03 -0000
+X-IronPort-AV: E=Sophos;i="4.75,698,1330923600"; d="scan'208";a="197207477"
+Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
+       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       01 Jun 2012 11:46:02 -0400
+Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
+       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
+       Fri, 1 Jun 2012 11:46:02 -0400
+Received: from [10.80.246.74] (helo=army.uk.xensource.com)     by
+       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
+       <ian.campbell@citrix.com>)      id 1SaTxQ-0006I5-TN;
+       Fri, 01 Jun 2012 16:40:08 +0100
+From: Ian Campbell <ian.campbell@citrix.com>
+To: xen-devel@lists.xen.org
+Date: Fri, 1 Jun 2012 15:39:52 +0000
+Message-ID: <1338565207-2888-23-git-send-email-ian.campbell@citrix.com>
+X-Mailer: git-send-email 1.7.9.1
+In-Reply-To: <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
+       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+MIME-Version: 1.0
+Cc: Ian Campbell <ian.campbell@citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: [Xen-devel] [PATCH 23/38] arm: use correct attributes for mappings
+       in copy_from_paddr()
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+The DTB is in RAM (hence bufferable), kernel is in flash and therefor requires
+a device type mapping (hence dev shared).
+
+Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+---
+ xen/arch/arm/kernel.c       |    8 ++++----
+ xen/arch/arm/setup.c        |    2 +-
+ xen/include/asm-arm/setup.h |    2 +-
+ 3 files changed, 6 insertions(+), 6 deletions(-)
+
+diff --git a/xen/arch/arm/kernel.c b/xen/arch/arm/kernel.c
+index 130d488..1a705c9 100644
+--- a/xen/arch/arm/kernel.c
++++ b/xen/arch/arm/kernel.c
+@@ -39,7 +39,7 @@ struct minimal_dtb_header {
+  * @paddr: source physical address
+  * @len: length to copy
+  */
+-void copy_from_paddr(void *dst, paddr_t paddr, unsigned long len)
++void copy_from_paddr(void *dst, paddr_t paddr, unsigned long len, int mattr)
+ {
+     void *src = (void *)FIXMAP_ADDR(FIXMAP_MISC);
+@@ -51,7 +51,7 @@ void copy_from_paddr(void *dst, paddr_t paddr, unsigned long len)
+         s = paddr & (PAGE_SIZE-1);
+         l = min(PAGE_SIZE - s, len);
+-        set_fixmap(FIXMAP_MISC, p, DEV_SHARED);
++        set_fixmap(FIXMAP_MISC, p, mattr);
+         memcpy(dst, src + s, l);
+         paddr += l;
+@@ -111,7 +111,7 @@ static int kernel_try_zimage_prepare(struct kernel_info *info)
+     /*
+      * Check for an appended DTB.
+      */
+-    copy_from_paddr(&dtb_hdr, KERNEL_FLASH_ADDRESS + end - start, sizeof(dtb_hdr));
++    copy_from_paddr(&dtb_hdr, KERNEL_FLASH_ADDRESS + end - start, sizeof(dtb_hdr), DEV_SHARED);
+     if (be32_to_cpu(dtb_hdr.magic) == DTB_MAGIC) {
+         end += be32_to_cpu(dtb_hdr.total_size);
+     }
+@@ -151,7 +151,7 @@ static int kernel_try_elf_prepare(struct kernel_info *info)
+     if ( info->kernel_img == NULL )
+         panic("Cannot allocate temporary buffer for kernel.\n");
+-    copy_from_paddr(info->kernel_img, KERNEL_FLASH_ADDRESS, KERNEL_FLASH_SIZE);
++    copy_from_paddr(info->kernel_img, KERNEL_FLASH_ADDRESS, KERNEL_FLASH_SIZE, DEV_SHARED);
+     if ( (rc = elf_init(&info->elf.elf, info->kernel_img, KERNEL_FLASH_SIZE )) != 0 )
+         return rc;
+diff --git a/xen/arch/arm/setup.c b/xen/arch/arm/setup.c
+index b0cfacc..f5473cd 100644
+--- a/xen/arch/arm/setup.c
++++ b/xen/arch/arm/setup.c
+@@ -122,7 +122,7 @@ static void __init setup_mm(unsigned long dtb_paddr, size_t dtb_size)
+      * TODO: handle other payloads too.
+      */
+     device_tree_flattened = mfn_to_virt(alloc_boot_pages(dtb_pages, 1));
+-    copy_from_paddr(device_tree_flattened, dtb_paddr, dtb_size);
++    copy_from_paddr(device_tree_flattened, dtb_paddr, dtb_size, BUFFERABLE);
+     /* Add non-xenheap memory */
+     init_boot_pages(pfn_to_paddr(xenheap_mfn_start + xenheap_pages),
+diff --git a/xen/include/asm-arm/setup.h b/xen/include/asm-arm/setup.h
+index 05ff89e..faadccc 100644
+--- a/xen/include/asm-arm/setup.h
++++ b/xen/include/asm-arm/setup.h
+@@ -3,7 +3,7 @@
+ #include <public/version.h>
+-void copy_from_paddr(void *dst, paddr_t paddr, unsigned long len);
++void copy_from_paddr(void *dst, paddr_t paddr, unsigned long len, int mattr);
+ void arch_get_xen_caps(xen_capabilities_info_t *info);
+-- 
+1.7.9.1
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1338565207-2888-24-git-send-email-ian.campbell@citrix.com> b/config/examples/test/corpus/<1338565207-2888-24-git-send-email-ian.campbell@citrix.com>
new file mode 100644 (file)
index 0000000..8a15b9f
--- /dev/null
@@ -0,0 +1,103 @@
+From xen-devel-bounces@lists.xen.org Fri Jun 01 16:49:19 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 01 Jun 2012 16:49:19 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SaU69-0004wx-DA
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 01 Jun 2012 16:49:19 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SaU32-00087C-Ah; Fri, 01 Jun 2012 15:45:56 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1SaU2z-00086C-V5
+       for xen-devel@lists.xen.org; Fri, 01 Jun 2012 15:45:54 +0000
+Received: from [85.158.139.83:42171] by server-10.bemta-5.messagelabs.com id
+       E7/2A-22179-1B3E8CF4; Fri, 01 Jun 2012 15:45:53 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-15.tower-182.messagelabs.com!1338565550!31523018!1
+X-Originating-IP: [66.165.176.89]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNDc3NzE=\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 30124 invoked from network); 1 Jun 2012 15:45:52 -0000
+Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
+       by server-15.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
+       1 Jun 2012 15:45:52 -0000
+X-IronPort-AV: E=Sophos;i="4.75,698,1330923600"; d="scan'208";a="26548418"
+Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
+       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       01 Jun 2012 11:45:50 -0400
+Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
+       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
+       Fri, 1 Jun 2012 11:45:50 -0400
+Received: from [10.80.246.74] (helo=army.uk.xensource.com)     by
+       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
+       <ian.campbell@citrix.com>)      id 1SaTxQ-0006I5-Vx;
+       Fri, 01 Jun 2012 16:40:09 +0100
+From: Ian Campbell <ian.campbell@citrix.com>
+To: xen-devel@lists.xen.org
+Date: Fri, 1 Jun 2012 15:39:53 +0000
+Message-ID: <1338565207-2888-24-git-send-email-ian.campbell@citrix.com>
+X-Mailer: git-send-email 1.7.9.1
+In-Reply-To: <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
+       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+MIME-Version: 1.0
+Cc: Ian Campbell <ian.campbell@citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: [Xen-devel] [PATCH 24/38] arm: map fixmaps non-executable.
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+---
+ xen/arch/arm/mm.c |    1 +
+ 1 files changed, 1 insertions(+), 0 deletions(-)
+
+diff --git a/xen/arch/arm/mm.c b/xen/arch/arm/mm.c
+index c332e4c..160a4e9 100644
+--- a/xen/arch/arm/mm.c
++++ b/xen/arch/arm/mm.c
+@@ -108,6 +108,7 @@ void set_fixmap(unsigned map, unsigned long mfn, unsigned attributes)
+     lpae_t pte = mfn_to_xen_entry(mfn);
+     pte.pt.table = 1; /* 4k mappings always have this bit set */
+     pte.pt.ai = attributes;
++    pte.pt.xn = 1;
+     write_pte(xen_fixmap + third_table_offset(FIXMAP_ADDR(map)), pte);
+     flush_xen_data_tlb_va(FIXMAP_ADDR(map));
+ }
+-- 
+1.7.9.1
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1338565207-2888-25-git-send-email-ian.campbell@citrix.com> b/config/examples/test/corpus/<1338565207-2888-25-git-send-email-ian.campbell@citrix.com>
new file mode 100644 (file)
index 0000000..9dbcd72
--- /dev/null
@@ -0,0 +1,111 @@
+From xen-devel-bounces@lists.xen.org Fri Jun 01 16:49:26 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 01 Jun 2012 16:49:26 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SaU6J-0004yy-VU
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 01 Jun 2012 16:49:26 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SaU31-00086n-IR; Fri, 01 Jun 2012 15:45:55 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1SaU2z-000864-JV
+       for xen-devel@lists.xen.org; Fri, 01 Jun 2012 15:45:53 +0000
+Received: from [85.158.143.99:64862] by server-2.bemta-4.messagelabs.com id
+       10/19-11595-1B3E8CF4; Fri, 01 Jun 2012 15:45:53 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-11.tower-216.messagelabs.com!1338565550!23414785!1
+X-Originating-IP: [66.165.176.89]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNDc3NzE=\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 18486 invoked from network); 1 Jun 2012 15:45:51 -0000
+Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
+       by server-11.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
+       1 Jun 2012 15:45:51 -0000
+X-IronPort-AV: E=Sophos;i="4.75,698,1330923600"; d="scan'208";a="26548413"
+Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
+       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       01 Jun 2012 11:45:49 -0400
+Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
+       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
+       Fri, 1 Jun 2012 11:45:49 -0400
+Received: from [10.80.246.74] (helo=army.uk.xensource.com)     by
+       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
+       <ian.campbell@citrix.com>)      id 1SaTxR-0006I5-2K;
+       Fri, 01 Jun 2012 16:40:09 +0100
+From: Ian Campbell <ian.campbell@citrix.com>
+To: xen-devel@lists.xen.org
+Date: Fri, 1 Jun 2012 15:39:54 +0000
+Message-ID: <1338565207-2888-25-git-send-email-ian.campbell@citrix.com>
+X-Mailer: git-send-email 1.7.9.1
+In-Reply-To: <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
+       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+MIME-Version: 1.0
+Cc: Ian Campbell <ian.campbell@citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: [Xen-devel] [PATCH 25/38] arm: remove old identity map of boot
+       paddr when we are done with it.
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+---
+ xen/arch/arm/mm.c |    8 ++++++++
+ 1 files changed, 8 insertions(+), 0 deletions(-)
+
+diff --git a/xen/arch/arm/mm.c b/xen/arch/arm/mm.c
+index 160a4e9..ab52171 100644
+--- a/xen/arch/arm/mm.c
++++ b/xen/arch/arm/mm.c
+@@ -214,6 +214,14 @@ void __init setup_pagetables(unsigned long boot_phys_offset)
+     lpae_t pte, *p;
+     int i;
++    if ( boot_phys_offset != 0 )
++    {
++        /* Remove the old identity mapping of the boot paddr */
++        pte.bits = 0;
++        dest_va = (unsigned long)_start + boot_phys_offset;
++        write_pte(xen_second + second_linear_offset(dest_va), pte);
++    }
++
+     xen_paddr = device_tree_get_xen_paddr();
+     /* Map the destination in the boot misc area. */
+-- 
+1.7.9.1
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1338565207-2888-26-git-send-email-ian.campbell@citrix.com> b/config/examples/test/corpus/<1338565207-2888-26-git-send-email-ian.campbell@citrix.com>
new file mode 100644 (file)
index 0000000..31026c9
--- /dev/null
@@ -0,0 +1,119 @@
+From xen-devel-bounces@lists.xen.org Fri Jun 01 16:49:17 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 01 Jun 2012 16:49:17 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SaU6B-0004x0-1O
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 01 Jun 2012 16:49:17 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SaU36-0008B1-Qr; Fri, 01 Jun 2012 15:46:00 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1SaU35-00086h-JW
+       for xen-devel@lists.xen.org; Fri, 01 Jun 2012 15:45:59 +0000
+Received: from [85.158.138.51:34833] by server-4.bemta-3.messagelabs.com id
+       38/54-32504-7B3E8CF4; Fri, 01 Jun 2012 15:45:59 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-4.tower-174.messagelabs.com!1338565552!30346150!5
+X-Originating-IP: [66.165.176.89]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNDc3NzE=\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 25671 invoked from network); 1 Jun 2012 15:45:58 -0000
+Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
+       by server-4.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
+       1 Jun 2012 15:45:58 -0000
+X-IronPort-AV: E=Sophos;i="4.75,698,1330923600"; d="scan'208";a="26548513"
+Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
+       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       01 Jun 2012 11:45:58 -0400
+Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
+       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
+       Fri, 1 Jun 2012 11:45:58 -0400
+Received: from [10.80.246.74] (helo=army.uk.xensource.com)     by
+       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
+       <ian.campbell@citrix.com>)      id 1SaTxR-0006I5-55;
+       Fri, 01 Jun 2012 16:40:09 +0100
+From: Ian Campbell <ian.campbell@citrix.com>
+To: xen-devel@lists.xen.org
+Date: Fri, 1 Jun 2012 15:39:55 +0000
+Message-ID: <1338565207-2888-26-git-send-email-ian.campbell@citrix.com>
+X-Mailer: git-send-email 1.7.9.1
+In-Reply-To: <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
+       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+MIME-Version: 1.0
+Cc: Ian Campbell <ian.campbell@citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: [Xen-devel] [PATCH 26/38] arm: fix locking in create_p2m_entries
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+For some reason we were holding the lock over only the unmaps at the end of
+the function, rather than for the whole walk.
+
+We might want to be more clever in the future, but for now lets just lock for
+the whole walk+create process.
+
+Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+---
+ xen/arch/arm/p2m.c |    4 ++--
+ 1 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/xen/arch/arm/p2m.c b/xen/arch/arm/p2m.c
+index 46c6f17..c4daf83 100644
+--- a/xen/arch/arm/p2m.c
++++ b/xen/arch/arm/p2m.c
+@@ -168,6 +168,8 @@ static int create_p2m_entries(struct domain *d,
+     paddr_t addr;
+     unsigned long cur_first_offset = ~0, cur_second_offset = ~0;
++    spin_lock(&p2m->lock);
++
+     /* XXX Don't actually handle 40 bit guest physical addresses */
+     BUG_ON(start_gpaddr & 0x8000000000ULL);
+     BUG_ON(end_gpaddr   & 0x8000000000ULL);
+@@ -249,8 +251,6 @@ static int create_p2m_entries(struct domain *d,
+     rc = 0;
+ out:
+-    spin_lock(&p2m->lock);
+-
+     if (third) unmap_domain_page(third);
+     if (second) unmap_domain_page(second);
+     if (first) unmap_domain_page(first);
+-- 
+1.7.9.1
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1338565207-2888-27-git-send-email-ian.campbell@citrix.com> b/config/examples/test/corpus/<1338565207-2888-27-git-send-email-ian.campbell@citrix.com>
new file mode 100644 (file)
index 0000000..cc686a1
--- /dev/null
@@ -0,0 +1,188 @@
+From xen-devel-bounces@lists.xen.org Fri Jun 01 16:49:24 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 01 Jun 2012 16:49:24 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SaU6H-0004yM-VN
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 01 Jun 2012 16:49:24 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SaU3E-0008Ny-NR; Fri, 01 Jun 2012 15:46:08 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1SaU39-0008E8-MN
+       for xen-devel@lists.xen.org; Fri, 01 Jun 2012 15:46:03 +0000
+Received: from [85.158.138.51:35122] by server-8.bemta-3.messagelabs.com id
+       0F/80-01456-AB3E8CF4; Fri, 01 Jun 2012 15:46:02 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-13.tower-174.messagelabs.com!1338565560!11696972!2
+X-Originating-IP: [66.165.176.89]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNDc3NzE=\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 19594 invoked from network); 1 Jun 2012 15:46:02 -0000
+Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
+       by server-13.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
+       1 Jun 2012 15:46:02 -0000
+X-IronPort-AV: E=Sophos;i="4.75,698,1330923600"; d="scan'208";a="26548526"
+Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
+       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       01 Jun 2012 11:46:01 -0400
+Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
+       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
+       Fri, 1 Jun 2012 11:46:01 -0400
+Received: from [10.80.246.74] (helo=army.uk.xensource.com)     by
+       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
+       <ian.campbell@citrix.com>)      id 1SaTxR-0006I5-6S;
+       Fri, 01 Jun 2012 16:40:09 +0100
+From: Ian Campbell <ian.campbell@citrix.com>
+To: xen-devel@lists.xen.org
+Date: Fri, 1 Jun 2012 15:39:56 +0000
+Message-ID: <1338565207-2888-27-git-send-email-ian.campbell@citrix.com>
+X-Mailer: git-send-email 1.7.9.1
+In-Reply-To: <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
+       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+MIME-Version: 1.0
+Cc: Ian Campbell <ian.campbell@citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: [Xen-devel] [PATCH 27/38] arm: split pending SPIs (global) out from
+       pending PPIs and SGIs (per CPU)
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+This tracks SPIs in struct arch_domain and PPIs+SGIs in struct arch_vcpu which
+seems more logical.
+
+Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+---
+ xen/arch/arm/vgic.c          |   17 ++++++++++-------
+ xen/include/asm-arm/domain.h |   10 ++++++++++
+ 2 files changed, 20 insertions(+), 7 deletions(-)
+
+diff --git a/xen/arch/arm/vgic.c b/xen/arch/arm/vgic.c
+index 629a0da..91d6166 100644
+--- a/xen/arch/arm/vgic.c
++++ b/xen/arch/arm/vgic.c
+@@ -82,9 +82,8 @@ int domain_vgic_init(struct domain *d)
+     d->arch.vgic.shared_irqs =
+         xmalloc_array(struct vgic_irq_rank, DOMAIN_NR_RANKS(d));
+     d->arch.vgic.pending_irqs =
+-        xmalloc_array(struct pending_irq,
+-                d->arch.vgic.nr_lines + (32 * d->max_vcpus));
+-    for (i=0; i<d->arch.vgic.nr_lines + (32 * d->max_vcpus); i++)
++        xzalloc_array(struct pending_irq, d->arch.vgic.nr_lines);
++    for (i=0; i<d->arch.vgic.nr_lines; i++)
+         INIT_LIST_HEAD(&d->arch.vgic.pending_irqs[i].inflight);
+     for (i=0; i<DOMAIN_NR_RANKS(d); i++)
+         spin_lock_init(&d->arch.vgic.shared_irqs[i].lock);
+@@ -98,6 +97,10 @@ int vcpu_vgic_init(struct vcpu *v)
+     spin_lock_init(&v->arch.vgic.private_irqs.lock);
++    memset(&v->arch.vgic.pending_irqs, 0, sizeof(v->arch.vgic.pending_irqs));
++    for (i = 0; i < 32; i++)
++        INIT_LIST_HEAD(&v->arch.vgic.pending_irqs[i].inflight);
++
+     /* For SGI and PPI the target is always this CPU */
+     for ( i = 0 ; i < 8 ; i++ )
+         v->arch.vgic.private_irqs.itargets[i] =
+@@ -535,8 +538,7 @@ struct pending_irq *irq_to_pending(struct vcpu *v, unsigned int irq)
+     /* Pending irqs allocation strategy: the first vgic.nr_lines irqs
+      * are used for SPIs; the rests are used for per cpu irqs */
+     if ( irq < 32 )
+-        n = &v->domain->arch.vgic.pending_irqs[irq + (v->vcpu_id * 32)
+-            + v->domain->arch.vgic.nr_lines];
++        n = &v->arch.vgic.pending_irqs[irq];
+     else
+         n = &v->domain->arch.vgic.pending_irqs[irq - 32];
+     return n;
+@@ -548,6 +550,7 @@ void vgic_vcpu_inject_irq(struct vcpu *v, unsigned int irq, int virtual)
+     uint8_t priority;
+     struct vgic_irq_rank *rank = vgic_irq_rank(v, 8, idx);
+     struct pending_irq *iter, *n = irq_to_pending(v, irq);
++    unsigned long flags;
+     /* irq still pending */
+     if (!list_empty(&n->inflight))
+@@ -564,7 +567,7 @@ void vgic_vcpu_inject_irq(struct vcpu *v, unsigned int irq, int virtual)
+     gic_set_guest_irq(irq, GICH_LR_PENDING, priority);
+-    spin_lock(&v->arch.vgic.lock);
++    spin_lock_irqsave(&v->arch.vgic.lock, flags);
+     list_for_each_entry ( iter, &v->arch.vgic.inflight_irqs, inflight )
+     {
+         if ( iter->priority > priority )
+@@ -575,7 +578,7 @@ void vgic_vcpu_inject_irq(struct vcpu *v, unsigned int irq, int virtual)
+         }
+     }
+     list_add_tail(&n->inflight, &v->arch.vgic.inflight_irqs);
+-    spin_unlock(&v->arch.vgic.lock);
++    spin_unlock_irqrestore(&v->arch.vgic.lock, flags);
+     /* we have a new higher priority irq, inject it into the guest */
+ }
+diff --git a/xen/include/asm-arm/domain.h b/xen/include/asm-arm/domain.h
+index 620b26e..32deb52 100644
+--- a/xen/include/asm-arm/domain.h
++++ b/xen/include/asm-arm/domain.h
+@@ -46,6 +46,10 @@ struct arch_domain
+         int ctlr;
+         int nr_lines;
+         struct vgic_irq_rank *shared_irqs;
++        /*
++         * SPIs are domain global, SGIs and PPIs are per-VCPU and stored in
++         * struct arch_vcpu.
++         */
+         struct pending_irq *pending_irqs;
+     } vgic;
+@@ -114,7 +118,13 @@ struct arch_vcpu
+     uint32_t gic_lr[64];
+     struct {
++        /*
++         * SGIs and PPIs are per-VCPU, SPIs are domain global and in
++         * struct arch_domain.
++         */
++        struct pending_irq pending_irqs[32];
+         struct vgic_irq_rank private_irqs;
++
+         /* This list is ordered by IRQ priority and it is used to keep
+          * track of the IRQs that the VGIC injected into the guest.
+          * Depending on the availability of LR registers, the IRQs might
+-- 
+1.7.9.1
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1338565207-2888-28-git-send-email-ian.campbell@citrix.com> b/config/examples/test/corpus/<1338565207-2888-28-git-send-email-ian.campbell@citrix.com>
new file mode 100644 (file)
index 0000000..09a2b6b
--- /dev/null
@@ -0,0 +1,209 @@
+From xen-devel-bounces@lists.xen.org Fri Jun 01 16:49:29 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 01 Jun 2012 16:49:29 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SaU6N-0004zr-07
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 01 Jun 2012 16:49:29 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SaU30-00086L-6N; Fri, 01 Jun 2012 15:45:54 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1SaU2y-000864-F8
+       for xen-devel@lists.xen.org; Fri, 01 Jun 2012 15:45:52 +0000
+Received: from [85.158.143.35:58587] by server-2.bemta-4.messagelabs.com id
+       F5/09-11595-FA3E8CF4; Fri, 01 Jun 2012 15:45:51 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-8.tower-21.messagelabs.com!1338565548!13156336!1
+X-Originating-IP: [66.165.176.63]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyNTY3NTA=\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 23310 invoked from network); 1 Jun 2012 15:45:50 -0000
+Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
+       by server-8.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
+       1 Jun 2012 15:45:50 -0000
+X-IronPort-AV: E=Sophos;i="4.75,698,1330923600"; d="scan'208";a="197207417"
+Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
+       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       01 Jun 2012 11:45:47 -0400
+Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
+       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
+       Fri, 1 Jun 2012 11:45:47 -0400
+Received: from [10.80.246.74] (helo=army.uk.xensource.com)     by
+       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
+       <ian.campbell@citrix.com>)      id 1SaTxR-0006I5-7o;
+       Fri, 01 Jun 2012 16:40:09 +0100
+From: Ian Campbell <ian.campbell@citrix.com>
+To: xen-devel@lists.xen.org
+Date: Fri, 1 Jun 2012 15:39:57 +0000
+Message-ID: <1338565207-2888-28-git-send-email-ian.campbell@citrix.com>
+X-Mailer: git-send-email 1.7.9.1
+In-Reply-To: <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
+       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+MIME-Version: 1.0
+Cc: Ian Campbell <ian.campbell@citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: [Xen-devel] [PATCH 28/38] arm: map GICV in all domains,
+       not just dom0.
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+This requires that we allocate all p2m pages from domheap without a particular
+dom because max pages is not setup yet so there is no allocation available to
+us.
+
+At some point we should create a separate p2m allocation (similar to x86's shadow allocation) and use that.
+
+Also we seem to have been calling p2m_alloc_table twice for dom0.
+
+Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+---
+ xen/arch/arm/domain.c       |   10 +++++++---
+ xen/arch/arm/domain_build.c |    5 -----
+ xen/arch/arm/gic.c          |    9 ++++-----
+ xen/arch/arm/gic.h          |    2 +-
+ xen/arch/arm/p2m.c          |    3 ++-
+ 5 files changed, 14 insertions(+), 15 deletions(-)
+
+diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
+index a7fb227..e15c1e8 100644
+--- a/xen/arch/arm/domain.c
++++ b/xen/arch/arm/domain.c
+@@ -329,13 +329,17 @@ int arch_domain_create(struct domain *d, unsigned int domcr_flags)
+         if ( (rc = p2m_alloc_table(d)) != 0 )
+             goto fail;
+-    }
+-    if ( (rc = domain_vgic_init(d)) != 0 )
+-        goto fail;
++        if ( (rc = gicv_setup(d)) != 0 )
++            goto fail;
++
++        if ( (rc = domain_vgic_init(d)) != 0 )
++            goto fail;
++    }
+     rc = 0;
+ fail:
++    /*XXX unwind allocations etc */
+     return rc;
+ }
+diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
+index 72e775c..1b19e54 100644
+--- a/xen/arch/arm/domain_build.c
++++ b/xen/arch/arm/domain_build.c
+@@ -270,9 +270,6 @@ int construct_dom0(struct domain *d)
+     d->max_pages = ~0U;
+-    if ( (rc = p2m_alloc_table(d)) != 0 )
+-        return rc;
+-
+     rc = prepare_dtb(d, &kinfo);
+     if ( rc < 0 )
+         return rc;
+@@ -288,8 +285,6 @@ int construct_dom0(struct domain *d)
+     printk("Map VGIC MMIO regions 1:1 in the P2M %#llx->%#llx\n", 0x2C008000ULL, 0x2DFFFFFFULL);
+     map_mmio_regions(d, 0x2C008000, 0x2DFFFFFF, 0x2C008000);
+-    gicv_setup(d);
+-
+     printk("Routing peripheral interrupts to guest\n");
+     /* TODO Get from device tree */
+     gic_route_irq_to_guest(d, 34, "timer0");
+diff --git a/xen/arch/arm/gic.c b/xen/arch/arm/gic.c
+index 339c327..a398f92 100644
+--- a/xen/arch/arm/gic.c
++++ b/xen/arch/arm/gic.c
+@@ -541,14 +541,13 @@ void gic_interrupt(struct cpu_user_regs *regs, int is_fiq)
+     do_IRQ(regs, irq, is_fiq);
+ }
+-void gicv_setup(struct domain *d)
++int gicv_setup(struct domain *d)
+ {
++    printk("GICV setup for DOM%d\n", d->domain_id);
++
+     /* map the gic virtual cpu interface in the gic cpu interface region of
+      * the guest */
+-    printk("mapping GICC at %#"PRIx32" to %#"PRIx32"\n",
+-           GIC_BASE_ADDRESS + GIC_CR_OFFSET,
+-           GIC_BASE_ADDRESS + GIC_VR_OFFSET);
+-    map_mmio_regions(d, GIC_BASE_ADDRESS + GIC_CR_OFFSET,
++    return map_mmio_regions(d, GIC_BASE_ADDRESS + GIC_CR_OFFSET,
+                         GIC_BASE_ADDRESS + GIC_CR_OFFSET + (2 * PAGE_SIZE) - 1,
+                         GIC_BASE_ADDRESS + GIC_VR_OFFSET);
+ }
+diff --git a/xen/arch/arm/gic.h b/xen/arch/arm/gic.h
+index ac9cf3a..018d820 100644
+--- a/xen/arch/arm/gic.h
++++ b/xen/arch/arm/gic.h
+@@ -148,7 +148,7 @@ extern void gic_init_secondary_cpu(void);
+ /* Take down a CPU's per-CPU GIC interface */
+ extern void gic_disable_cpu(void);
+ /* setup the gic virtual interface for a guest */
+-extern void gicv_setup(struct domain *d);
++extern int gicv_setup(struct domain *d);
+ /* Context switch */
+ extern void gic_save_state(struct vcpu *v);
+diff --git a/xen/arch/arm/p2m.c b/xen/arch/arm/p2m.c
+index c4daf83..0665445 100644
+--- a/xen/arch/arm/p2m.c
++++ b/xen/arch/arm/p2m.c
+@@ -4,6 +4,7 @@
+ #include <xen/errno.h>
+ #include <xen/domain_page.h>
+ #include <asm/flushtlb.h>
++#include "gic.h"
+ void dump_p2m_lookup(struct domain *d, paddr_t addr)
+ {
+@@ -138,7 +139,7 @@ static int p2m_create_entry(struct domain *d,
+     BUG_ON(entry->p2m.valid);
+-    page = alloc_domheap_page(d, 0);
++    page = alloc_domheap_page(NULL, 0);
+     if ( page == NULL )
+         return -ENOMEM;
+-- 
+1.7.9.1
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1338565207-2888-29-git-send-email-ian.campbell@citrix.com> b/config/examples/test/corpus/<1338565207-2888-29-git-send-email-ian.campbell@citrix.com>
new file mode 100644 (file)
index 0000000..8fc6aff
--- /dev/null
@@ -0,0 +1,126 @@
+From xen-devel-bounces@lists.xen.org Fri Jun 01 16:49:28 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 01 Jun 2012 16:49:28 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SaU6I-0004yO-5x
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 01 Jun 2012 16:49:28 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SaU34-00088d-Cf; Fri, 01 Jun 2012 15:45:58 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1SaU31-00086h-Mb
+       for xen-devel@lists.xen.org; Fri, 01 Jun 2012 15:45:55 +0000
+Received: from [85.158.138.51:33173] by server-4.bemta-3.messagelabs.com id
+       2F/24-32504-2B3E8CF4; Fri, 01 Jun 2012 15:45:54 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-4.tower-174.messagelabs.com!1338565552!30346150!1
+X-Originating-IP: [66.165.176.89]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNDc3NzE=\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 25444 invoked from network); 1 Jun 2012 15:45:54 -0000
+Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
+       by server-4.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
+       1 Jun 2012 15:45:54 -0000
+X-IronPort-AV: E=Sophos;i="4.75,698,1330923600"; d="scan'208";a="26548450"
+Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
+       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       01 Jun 2012 11:45:53 -0400
+Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
+       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
+       Fri, 1 Jun 2012 11:45:53 -0400
+Received: from [10.80.246.74] (helo=army.uk.xensource.com)     by
+       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
+       <ian.campbell@citrix.com>)      id 1SaTxR-0006I5-9A;
+       Fri, 01 Jun 2012 16:40:09 +0100
+From: Ian Campbell <ian.campbell@citrix.com>
+To: xen-devel@lists.xen.org
+Date: Fri, 1 Jun 2012 15:39:58 +0000
+Message-ID: <1338565207-2888-29-git-send-email-ian.campbell@citrix.com>
+X-Mailer: git-send-email 1.7.9.1
+In-Reply-To: <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
+       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+MIME-Version: 1.0
+Cc: Ian Campbell <ian.campbell@citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: [Xen-devel] [PATCH 29/38] arm: delay enabling data-cache until
+       paging enabled.
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+With enough warnings enabled the model seemed to be complaining that pages
+cached before paging was enabled had been mapped with to inconsistent sets of
+attributes. I'm not convinced that isn't a model issue, nor am I convinced
+this has really fixed anything, but it seems sensible enough.
+
+Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+---
+ xen/arch/arm/head.S |    9 +++++++--
+ 1 files changed, 7 insertions(+), 2 deletions(-)
+
+diff --git a/xen/arch/arm/head.S b/xen/arch/arm/head.S
+index 9a7714a..71197af 100644
+--- a/xen/arch/arm/head.S
++++ b/xen/arch/arm/head.S
+@@ -148,10 +148,11 @@ hyp:
+        * Exceptions in LE ARM,
+        * Low-latency IRQs disabled,
+        * Write-implies-XN disabled (for now),
+-       * I-cache and d-cache enabled,
++       * D-cache diabled (for now),
++       * I-cache enabled,
+        * Alignment checking enabled,
+        * MMU translation disabled (for now). */
+-      ldr   r0, =(HSCTLR_BASE|SCTLR_A|SCTLR_C)
++      ldr   r0, =(HSCTLR_BASE|SCTLR_A)
+       mcr   CP32(r0, HSCTLR)
+       /* Write Xen's PT's paddr into the HTTBR */
+@@ -217,6 +218,10 @@ pt_ready:
+       mov   pc, r1                 /* Get a proper vaddr into PC */
+ paging:
++      mrc   CP32(r0, HSCTLR)       /* Now enable data cache */
++      orr   r0, r0, #(SCTLR_C)
++      mcr   CP32(r0, HSCTLR)
++
+ #ifdef EARLY_UART_ADDRESS
+       /* Recover the UART address in the new address space. */
+       lsl   r11, #11
+-- 
+1.7.9.1
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1338565207-2888-3-git-send-email-ian.campbell@citrix.com> b/config/examples/test/corpus/<1338565207-2888-3-git-send-email-ian.campbell@citrix.com>
new file mode 100644 (file)
index 0000000..4b0fc30
--- /dev/null
@@ -0,0 +1,152 @@
+From xen-devel-bounces@lists.xen.org Fri Jun 01 16:43:48 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 01 Jun 2012 16:43:48 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SaU0s-0004tf-Ut
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 01 Jun 2012 16:43:48 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SaTxZ-0006fh-PR; Fri, 01 Jun 2012 15:40:17 +0000
+Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1SaTxW-0006eV-Ma
+       for xen-devel@lists.xen.org; Fri, 01 Jun 2012 15:40:14 +0000
+Received: from [193.109.254.147:18269] by server-4.bemta-14.messagelabs.com id
+       DA/00-03148-E52E8CF4; Fri, 01 Jun 2012 15:40:14 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-2.tower-27.messagelabs.com!1338565208!12347274!1
+X-Originating-IP: [66.165.176.89]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNDc3NzE=\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 19021 invoked from network); 1 Jun 2012 15:40:10 -0000
+Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
+       by server-2.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
+       1 Jun 2012 15:40:10 -0000
+X-IronPort-AV: E=Sophos;i="4.75,698,1330923600"; d="scan'208";a="26547679"
+Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
+       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       01 Jun 2012 11:40:08 -0400
+Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
+       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
+       Fri, 1 Jun 2012 11:40:08 -0400
+Received: from [10.80.246.74] (helo=army.uk.xensource.com)     by
+       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
+       <ian.campbell@citrix.com>)      id 1SaTxP-0006I5-Nb;
+       Fri, 01 Jun 2012 16:40:07 +0100
+From: Ian Campbell <ian.campbell@citrix.com>
+To: xen-devel@lists.xen.org
+Date: Fri, 1 Jun 2012 15:39:32 +0000
+Message-ID: <1338565207-2888-3-git-send-email-ian.campbell@citrix.com>
+X-Mailer: git-send-email 1.7.9.1
+In-Reply-To: <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
+       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+MIME-Version: 1.0
+Cc: Ian Campbell <ian.campbell@citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: [Xen-devel] [PATCH 03/38] arm: handy function to print a walk of a
+       domain's p2m.
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+Useful for debug but not actually used in this patch.
+
+Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+---
+ xen/arch/arm/p2m.c         |   34 ++++++++++++++++++++++++++++++++++
+ xen/include/asm-arm/page.h |    1 +
+ 2 files changed, 35 insertions(+), 0 deletions(-)
+
+diff --git a/xen/arch/arm/p2m.c b/xen/arch/arm/p2m.c
+index 4f624d8..fdbecbc 100644
+--- a/xen/arch/arm/p2m.c
++++ b/xen/arch/arm/p2m.c
+@@ -5,6 +5,40 @@
+ #include <xen/domain_page.h>
+ #include <asm/flushtlb.h>
++void dump_p2m_lookup(struct domain *d, paddr_t addr)
++{
++    struct p2m_domain *p2m = &d->arch.p2m;
++    lpae_t *first = NULL, *second = NULL, *third = NULL;
++
++    printk("dom%d IPA %#016llx\n", d->domain_id, addr);
++
++    first = __map_domain_page(p2m->first_level);
++    printk("1ST[%#03llx] = %#016llx\n",
++           first_table_offset(addr),
++           first[first_table_offset(addr)].bits);
++    if ( !first[first_table_offset(addr)].p2m.valid ||
++         !first[first_table_offset(addr)].p2m.table )
++        goto done;
++
++    second = map_domain_page(first[first_table_offset(addr)].p2m.base);
++    printk("2ND[%#03llx] = %#016llx\n",
++           second_table_offset(addr),
++           second[second_table_offset(addr)].bits);
++    if ( !second[second_table_offset(addr)].p2m.valid ||
++         !second[second_table_offset(addr)].p2m.table )
++        goto done;
++
++    third = map_domain_page(second[second_table_offset(addr)].p2m.base);
++    printk("3RD[%#03llx] = %#016llx\n",
++           third_table_offset(addr),
++           third[third_table_offset(addr)].bits);
++
++done:
++    if (third) unmap_domain_page(third);
++    if (second) unmap_domain_page(second);
++    if (first) unmap_domain_page(first);
++}
++
+ void p2m_load_VTTBR(struct domain *d)
+ {
+     struct p2m_domain *p2m = &d->arch.p2m;
+diff --git a/xen/include/asm-arm/page.h b/xen/include/asm-arm/page.h
+index 22c56b5..c7b6530 100644
+--- a/xen/include/asm-arm/page.h
++++ b/xen/include/asm-arm/page.h
+@@ -313,6 +313,7 @@ static inline uint64_t gva_to_ipa(uint32_t va)
+ #define PAR_FAULT 0x1
+ extern void dump_pt_walk(uint32_t addr);
++extern void dump_p2m_lookup(struct domain *d, paddr_t addr);
+ #endif /* __ASSEMBLY__ */
+-- 
+1.7.9.1
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1338565207-2888-30-git-send-email-ian.campbell@citrix.com> b/config/examples/test/corpus/<1338565207-2888-30-git-send-email-ian.campbell@citrix.com>
new file mode 100644 (file)
index 0000000..32bf4cc
--- /dev/null
@@ -0,0 +1,128 @@
+From xen-devel-bounces@lists.xen.org Fri Jun 01 16:49:33 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 01 Jun 2012 16:49:33 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SaU6Q-000514-2w
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 01 Jun 2012 16:49:33 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SaU3L-0000CS-4H; Fri, 01 Jun 2012 15:46:15 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1SaU3E-0008NS-Bg
+       for xen-devel@lists.xen.org; Fri, 01 Jun 2012 15:46:08 +0000
+Received: from [85.158.138.51:35420] by server-4.bemta-3.messagelabs.com id
+       21/94-32504-FB3E8CF4; Fri, 01 Jun 2012 15:46:07 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-13.tower-174.messagelabs.com!1338565560!11696972!5
+X-Originating-IP: [66.165.176.89]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNDc3NzE=\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 19911 invoked from network); 1 Jun 2012 15:46:06 -0000
+Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
+       by server-13.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
+       1 Jun 2012 15:46:06 -0000
+X-IronPort-AV: E=Sophos;i="4.75,698,1330923600"; d="scan'208";a="26548565"
+Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
+       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       01 Jun 2012 11:46:06 -0400
+Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
+       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
+       Fri, 1 Jun 2012 11:46:06 -0400
+Received: from [10.80.246.74] (helo=army.uk.xensource.com)     by
+       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
+       <ian.campbell@citrix.com>)      id 1SaTxR-0006I5-AU;
+       Fri, 01 Jun 2012 16:40:09 +0100
+From: Ian Campbell <ian.campbell@citrix.com>
+To: xen-devel@lists.xen.org
+Date: Fri, 1 Jun 2012 15:39:59 +0000
+Message-ID: <1338565207-2888-30-git-send-email-ian.campbell@citrix.com>
+X-Mailer: git-send-email 1.7.9.1
+In-Reply-To: <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
+       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+MIME-Version: 1.0
+Cc: Ian Campbell <ian.campbell@citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: [Xen-devel] [PATCH 30/38] arm: Upgrade guest barriers to
+       Outer-Shareable. Enable Protected Table Walk.
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+Upgrading barriers is conservative and may not be necessary.
+
+Protected Table Walk traps stage 1 page tables which refer to device memory
+(per stage 2) using a non-device mapping. This generally indicates a guest
+error but trapping it as a fault for now helps us know if something odd is
+going on.
+
+Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+---
+ xen/arch/arm/domain_build.c     |    2 +-
+ xen/include/asm-arm/processor.h |    4 ++++
+ 2 files changed, 5 insertions(+), 1 deletions(-)
+
+diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
+index 1b19e54..a9e7f43 100644
+--- a/xen/arch/arm/domain_build.c
++++ b/xen/arch/arm/domain_build.c
+@@ -333,7 +333,7 @@ int construct_dom0(struct domain *d)
+     WRITE_CP32(SCTLR_BASE, SCTLR);
+-    WRITE_CP32(HCR_AMO|HCR_IMO|HCR_VM, HCR);
++    WRITE_CP32(HCR_PTW|HCR_BSU_OUTER|HCR_AMO|HCR_IMO|HCR_VM, HCR);
+     isb();
+     local_abort_enable();
+diff --git a/xen/include/asm-arm/processor.h b/xen/include/asm-arm/processor.h
+index 81924a4..9b3c9dd 100644
+--- a/xen/include/asm-arm/processor.h
++++ b/xen/include/asm-arm/processor.h
+@@ -76,6 +76,10 @@
+ #define HCR_TWI         (1<<13)
+ #define HCR_DC          (1<<12)
+ #define HCR_BSU_MASK    (3<<10)
++#define HCR_BSU_NONE     (0<<10)
++#define HCR_BSU_INNER    (1<<10)
++#define HCR_BSU_OUTER    (2<<10)
++#define HCR_BSU_FULL     (3<<10)
+ #define HCR_FB          (1<<9)
+ #define HCR_VA          (1<<8)
+ #define HCR_VI          (1<<7)
+-- 
+1.7.9.1
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1338565207-2888-31-git-send-email-ian.campbell@citrix.com> b/config/examples/test/corpus/<1338565207-2888-31-git-send-email-ian.campbell@citrix.com>
new file mode 100644 (file)
index 0000000..0cb9170
--- /dev/null
@@ -0,0 +1,177 @@
+From xen-devel-bounces@lists.xen.org Fri Jun 01 16:49:25 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 01 Jun 2012 16:49:25 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SaU6F-0004xl-Gj
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 01 Jun 2012 16:49:25 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SaU33-00087f-5b; Fri, 01 Jun 2012 15:45:57 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1SaU30-000869-Go
+       for xen-devel@lists.xen.org; Fri, 01 Jun 2012 15:45:54 +0000
+Received: from [85.158.143.99:51051] by server-1.bemta-4.messagelabs.com id
+       05/C9-27869-1B3E8CF4; Fri, 01 Jun 2012 15:45:53 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-15.tower-216.messagelabs.com!1338565550!30932364!1
+X-Originating-IP: [66.165.176.63]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyNTY3NTA=\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 673 invoked from network); 1 Jun 2012 15:45:52 -0000
+Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
+       by server-15.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
+       1 Jun 2012 15:45:52 -0000
+X-IronPort-AV: E=Sophos;i="4.75,698,1330923600"; d="scan'208";a="197207422"
+Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
+       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       01 Jun 2012 11:45:49 -0400
+Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
+       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
+       Fri, 1 Jun 2012 11:45:49 -0400
+Received: from [10.80.246.74] (helo=army.uk.xensource.com)     by
+       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
+       <ian.campbell@citrix.com>)      id 1SaTxR-0006I5-Bm;
+       Fri, 01 Jun 2012 16:40:09 +0100
+From: Ian Campbell <ian.campbell@citrix.com>
+To: xen-devel@lists.xen.org
+Date: Fri, 1 Jun 2012 15:40:00 +0000
+Message-ID: <1338565207-2888-31-git-send-email-ian.campbell@citrix.com>
+X-Mailer: git-send-email 1.7.9.1
+In-Reply-To: <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
+       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+MIME-Version: 1.0
+Cc: Ian Campbell <ian.campbell@citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: [Xen-devel] [PATCH 31/38] arm: gic.lock can be taken in interrupt
+       context, so lock appropriately.
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+In particular it is taken by gic_set_guest_irq which is called by
+vgic_vcpu_inject_irq
+
+Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+---
+ xen/arch/arm/gic.c |   20 ++++++++++----------
+ 1 files changed, 10 insertions(+), 10 deletions(-)
+
+diff --git a/xen/arch/arm/gic.c b/xen/arch/arm/gic.c
+index a398f92..ededa99 100644
+--- a/xen/arch/arm/gic.c
++++ b/xen/arch/arm/gic.c
+@@ -329,19 +329,19 @@ int __init gic_init(void)
+ /* Set up the per-CPU parts of the GIC for a secondary CPU */
+ void __cpuinit gic_init_secondary_cpu(void)
+ {
+-    spin_lock(&gic.lock);
++    spin_lock_irq(&gic.lock);
+     gic_cpu_init();
+     gic_hyp_init();
+-    spin_unlock(&gic.lock);
++    spin_unlock_irq(&gic.lock);
+ }
+ /* Shut down the per-CPU GIC interface */
+ void gic_disable_cpu(void)
+ {
+-    spin_lock(&gic.lock);
++    spin_lock_irq(&gic.lock);
+     gic_cpu_disable();
+     gic_hyp_disable();
+-    spin_unlock(&gic.lock);
++    spin_unlock_irq(&gic.lock);
+ }
+ void gic_route_irqs(void)
+@@ -439,7 +439,7 @@ void gic_set_guest_irq(unsigned int virtual_irq,
+     events_maintenance(current);
+-    spin_lock(&gic.lock);
++    spin_lock_irq(&gic.lock);
+     if ( list_empty(&gic.lr_pending) )
+     {
+@@ -465,7 +465,7 @@ void gic_set_guest_irq(unsigned int virtual_irq,
+     list_add_tail(&n->lr_queue, &gic.lr_pending);
+ out:
+-    spin_unlock(&gic.lock);
++    spin_unlock_irq(&gic.lock);
+     return;
+ }
+@@ -559,7 +559,7 @@ static void events_maintenance(struct vcpu *v)
+             (unsigned long *)&vcpu_info(v, evtchn_upcall_pending));
+     if (!already_pending && gic.event_mask != 0) {
+-        spin_lock(&gic.lock);
++        spin_lock_irq(&gic.lock);
+         while ((i = find_next_bit((const long unsigned int *) &gic.event_mask,
+                         sizeof(uint64_t), i)) < sizeof(uint64_t)) {
+@@ -569,7 +569,7 @@ static void events_maintenance(struct vcpu *v)
+             i++;
+         }
+-        spin_unlock(&gic.lock);
++        spin_unlock_irq(&gic.lock);
+     }
+ }
+@@ -585,7 +585,7 @@ static void maintenance_interrupt(int irq, void *dev_id, struct cpu_user_regs *r
+                               sizeof(eisr), i)) < sizeof(eisr)) {
+         struct pending_irq *p;
+-        spin_lock(&gic.lock);
++        spin_lock_irq(&gic.lock);
+         lr = GICH[GICH_LR + i];
+         virq = lr & GICH_LR_VIRTUAL_MASK;
+         GICH[GICH_LR + i] = 0;
+@@ -601,7 +601,7 @@ static void maintenance_interrupt(int irq, void *dev_id, struct cpu_user_regs *r
+         } else {
+             gic_inject_irq_stop();
+         }
+-        spin_unlock(&gic.lock);
++        spin_unlock_irq(&gic.lock);
+         spin_lock(&current->arch.vgic.lock);
+         p = irq_to_pending(current, virq);
+-- 
+1.7.9.1
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1338565207-2888-32-git-send-email-ian.campbell@citrix.com> b/config/examples/test/corpus/<1338565207-2888-32-git-send-email-ian.campbell@citrix.com>
new file mode 100644 (file)
index 0000000..ee5a3d5
--- /dev/null
@@ -0,0 +1,156 @@
+From xen-devel-bounces@lists.xen.org Fri Jun 01 16:49:33 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 01 Jun 2012 16:49:33 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SaU6O-00050A-5Z
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 01 Jun 2012 16:49:33 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SaU34-00088y-Pc; Fri, 01 Jun 2012 15:45:58 +0000
+Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1SaU31-00086o-Od
+       for xen-devel@lists.xen.org; Fri, 01 Jun 2012 15:45:55 +0000
+Received: from [193.109.254.147:34525] by server-11.bemta-14.messagelabs.com
+       id BF/9D-01965-3B3E8CF4; Fri, 01 Jun 2012 15:45:55 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-11.tower-27.messagelabs.com!1338565553!5577259!1
+X-Originating-IP: [66.165.176.63]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyNTY3NTA=\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 3435 invoked from network); 1 Jun 2012 15:45:54 -0000
+Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
+       by server-11.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
+       1 Jun 2012 15:45:54 -0000
+X-IronPort-AV: E=Sophos;i="4.75,698,1330923600"; d="scan'208";a="197207437"
+Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
+       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       01 Jun 2012 11:45:52 -0400
+Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
+       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
+       Fri, 1 Jun 2012 11:45:52 -0400
+Received: from [10.80.246.74] (helo=army.uk.xensource.com)     by
+       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
+       <ian.campbell@citrix.com>)      id 1SaTxR-0006I5-EO;
+       Fri, 01 Jun 2012 16:40:09 +0100
+From: Ian Campbell <ian.campbell@citrix.com>
+To: xen-devel@lists.xen.org
+Date: Fri, 1 Jun 2012 15:40:01 +0000
+Message-ID: <1338565207-2888-32-git-send-email-ian.campbell@citrix.com>
+X-Mailer: git-send-email 1.7.9.1
+In-Reply-To: <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
+       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+MIME-Version: 1.0
+Cc: Ian Campbell <ian.campbell@citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: [Xen-devel] [PATCH 32/38] arm: context switch virtual timer
+       registers
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+---
+ xen/arch/arm/domain.c        |   10 ++++++++++
+ xen/include/asm-arm/cpregs.h |    3 +++
+ xen/include/asm-arm/domain.h |    5 +++++
+ 3 files changed, 18 insertions(+), 0 deletions(-)
+
+diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
+index e15c1e8..893a169 100644
+--- a/xen/arch/arm/domain.c
++++ b/xen/arch/arm/domain.c
+@@ -49,6 +49,11 @@ static void ctxt_switch_from(struct vcpu *p)
+     p->arch.tpidruro = READ_CP32(TPIDRURO);
+     p->arch.tpidrprw = READ_CP32(TPIDRPRW);
++    /* Arch timer */
++    p->arch.cntvoff = READ_CP64(CNTVOFF);
++    p->arch.cntv_cval = READ_CP64(CNTV_CVAL);
++    p->arch.cntv_ctl = READ_CP32(CNTV_CTL);
++
+     /* XXX only save these if ThumbEE e.g. ID_PFR0.THUMB_EE_SUPPORT */
+     p->arch.teecr = READ_CP32(TEECR);
+     p->arch.teehbr = READ_CP32(TEEHBR);
+@@ -128,6 +133,11 @@ static void ctxt_switch_to(struct vcpu *n)
+     WRITE_CP32(n->arch.mair1, MAIR1);
+     isb();
++    /* Arch timer */
++    WRITE_CP64(n->arch.cntvoff, CNTVOFF);
++    WRITE_CP64(n->arch.cntv_cval, CNTV_CVAL);
++    WRITE_CP32(n->arch.cntv_ctl, CNTV_CTL);
++
+     /* Control Registers */
+     WRITE_CP32(n->arch.actlr, ACTLR);
+     WRITE_CP32(n->arch.sctlr, SCTLR);
+diff --git a/xen/include/asm-arm/cpregs.h b/xen/include/asm-arm/cpregs.h
+index bd46942..34a9e93 100644
+--- a/xen/include/asm-arm/cpregs.h
++++ b/xen/include/asm-arm/cpregs.h
+@@ -238,10 +238,13 @@
+ #define CNTP_CTL        p15,0,c14,c2,1  /* Physical Timer control register */
+ #define CNTVCT          p15,1,c14       /* Time counter value + offset */
+ #define CNTP_CVAL       p15,2,c14       /* Physical Timer comparator */
++#define CNTV_CVAL       p15,3,c14       /* Virt. Timer comparator */
+ #define CNTVOFF         p15,4,c14       /* Time counter offset */
+ #define CNTHCTL         p15,4,c14,c1,0  /* Time counter hyp. control */
+ #define CNTHP_TVAL      p15,4,c14,c2,0  /* Hyp. Timer value */
+ #define CNTHP_CTL       p15,4,c14,c2,1  /* Hyp. Timer control register */
++#define CNTV_TVAL       p15,0,c14,c3,0  /* Virt. Timer value */
++#define CNTV_CTL        p15,0,c14,c3,1  /* Virt. TImer control register */
+ #define CNTHP_CVAL      p15,6,c14       /* Hyp. Timer comparator */
+ /* CP15 CR15: Implementation Defined Registers */
+diff --git a/xen/include/asm-arm/domain.h b/xen/include/asm-arm/domain.h
+index 32deb52..230ea8c 100644
+--- a/xen/include/asm-arm/domain.h
++++ b/xen/include/asm-arm/domain.h
+@@ -111,6 +111,11 @@ struct arch_vcpu
+     uint32_t teecr, teehbr;
+     uint32_t joscr, jmcr;
++    /* Arch timers */
++    uint64_t cntvoff;
++    uint64_t cntv_cval;
++    uint32_t cntv_ctl;
++
+     /* CP 15 */
+     uint32_t csselr;
+-- 
+1.7.9.1
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1338565207-2888-33-git-send-email-ian.campbell@citrix.com> b/config/examples/test/corpus/<1338565207-2888-33-git-send-email-ian.campbell@citrix.com>
new file mode 100644 (file)
index 0000000..fe25667
--- /dev/null
@@ -0,0 +1,111 @@
+From xen-devel-bounces@lists.xen.org Fri Jun 01 16:49:11 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 01 Jun 2012 16:49:11 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SaU66-0004ws-7g
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 01 Jun 2012 16:49:11 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SaU36-0008AB-2R; Fri, 01 Jun 2012 15:46:00 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1SaU34-00088P-8V
+       for xen-devel@lists.xen.org; Fri, 01 Jun 2012 15:45:58 +0000
+Received: from [85.158.138.51:33366] by server-10.bemta-3.messagelabs.com id
+       AC/4B-12071-5B3E8CF4; Fri, 01 Jun 2012 15:45:57 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-4.tower-174.messagelabs.com!1338565552!30346150!3
+X-Originating-IP: [66.165.176.89]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNDc3NzE=\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 25575 invoked from network); 1 Jun 2012 15:45:56 -0000
+Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
+       by server-4.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
+       1 Jun 2012 15:45:56 -0000
+X-IronPort-AV: E=Sophos;i="4.75,698,1330923600"; d="scan'208";a="26548500"
+Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
+       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       01 Jun 2012 11:45:56 -0400
+Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
+       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
+       Fri, 1 Jun 2012 11:45:56 -0400
+Received: from [10.80.246.74] (helo=army.uk.xensource.com)     by
+       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
+       <ian.campbell@citrix.com>)      id 1SaTxR-0006I5-Gx;
+       Fri, 01 Jun 2012 16:40:09 +0100
+From: Ian Campbell <ian.campbell@citrix.com>
+To: xen-devel@lists.xen.org
+Date: Fri, 1 Jun 2012 15:40:02 +0000
+Message-ID: <1338565207-2888-33-git-send-email-ian.campbell@citrix.com>
+X-Mailer: git-send-email 1.7.9.1
+In-Reply-To: <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
+       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+MIME-Version: 1.0
+Cc: Ian Campbell <ian.campbell@citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: [Xen-devel] [PATCH 33/38] arm: the hyp timer seems to work now,
+       default to using it.
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+---
+ xen/arch/arm/time.c |    8 ++++++--
+ 1 files changed, 6 insertions(+), 2 deletions(-)
+
+diff --git a/xen/arch/arm/time.c b/xen/arch/arm/time.c
+index 437dc71..1587fa2 100644
+--- a/xen/arch/arm/time.c
++++ b/xen/arch/arm/time.c
+@@ -27,8 +27,12 @@
+ #include <xen/time.h>
+ #include <asm/system.h>
+-/* Unfortunately the hypervisor timer interrupt appears to be buggy */
+-#define USE_HYP_TIMER 0
++/*
++ * Unfortunately the hypervisor timer interrupt appears to be buggy in
++ * some versions of the model. Disable this to use the physical timer
++ * instead.
++ */
++#define USE_HYP_TIMER 1
+ /* For fine-grained timekeeping, we use the ARM "Generic Timer", a
+  * register-mapped time source in the SoC. */
+-- 
+1.7.9.1
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1338565207-2888-34-git-send-email-ian.campbell@citrix.com> b/config/examples/test/corpus/<1338565207-2888-34-git-send-email-ian.campbell@citrix.com>
new file mode 100644 (file)
index 0000000..33e622a
--- /dev/null
@@ -0,0 +1,186 @@
+From xen-devel-bounces@lists.xen.org Fri Jun 01 16:49:16 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 01 Jun 2012 16:49:16 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SaU6B-0004x1-P4
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 01 Jun 2012 16:49:16 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SaU35-00089H-5t; Fri, 01 Jun 2012 15:45:59 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1SaU32-000872-7f
+       for xen-devel@lists.xen.org; Fri, 01 Jun 2012 15:45:56 +0000
+Received: from [85.158.138.51:33209] by server-2.bemta-3.messagelabs.com id
+       1E/93-17140-3B3E8CF4; Fri, 01 Jun 2012 15:45:55 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-13.tower-174.messagelabs.com!1338565553!11696954!1
+X-Originating-IP: [66.165.176.63]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyNTY3NTA=\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 18903 invoked from network); 1 Jun 2012 15:45:54 -0000
+Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
+       by server-13.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
+       1 Jun 2012 15:45:54 -0000
+X-IronPort-AV: E=Sophos;i="4.75,698,1330923600"; d="scan'208";a="197207441"
+Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
+       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       01 Jun 2012 11:45:53 -0400
+Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
+       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
+       Fri, 1 Jun 2012 11:45:53 -0400
+Received: from [10.80.246.74] (helo=army.uk.xensource.com)     by
+       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
+       <ian.campbell@citrix.com>)      id 1SaTxR-0006I5-JW;
+       Fri, 01 Jun 2012 16:40:09 +0100
+From: Ian Campbell <ian.campbell@citrix.com>
+To: xen-devel@lists.xen.org
+Date: Fri, 1 Jun 2012 15:40:03 +0000
+Message-ID: <1338565207-2888-34-git-send-email-ian.campbell@citrix.com>
+X-Mailer: git-send-email 1.7.9.1
+In-Reply-To: <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
+       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+MIME-Version: 1.0
+Cc: Ian Campbell <ian.campbell@citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: [Xen-devel] [PATCH 34/38] HACK: arm: initial
+       XENMAPSPACE_gmfn_foreign
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+Should use same interface as hybrid x86.
+---
+ xen/arch/arm/mm.c             |   32 ++++++++++++++++++++++++++------
+ xen/arch/x86/mm.c             |    2 ++
+ xen/include/public/arch-arm.h |    1 +
+ xen/include/public/memory.h   |   12 +++++++-----
+ 4 files changed, 36 insertions(+), 11 deletions(-)
+
+diff --git a/xen/arch/arm/mm.c b/xen/arch/arm/mm.c
+index ab52171..1832e7f 100644
+--- a/xen/arch/arm/mm.c
++++ b/xen/arch/arm/mm.c
+@@ -480,12 +480,32 @@ static int xenmem_add_to_physmap_once(
+     switch ( xatp->space )
+     {
+-        case XENMAPSPACE_shared_info:
+-            if ( xatp->idx == 0 )
+-                mfn = virt_to_mfn(d->shared_info);
+-            break;
+-        default:
+-            return -ENOSYS;
++    case XENMAPSPACE_shared_info:
++        if ( xatp->idx == 0 )
++            mfn = virt_to_mfn(d->shared_info);
++        break;
++    case XENMAPSPACE_gmfn_foreign:
++    {
++        paddr_t maddr;
++        struct domain *od;
++
++        rc = rcu_lock_target_domain_by_id(xatp->foreign_domid, &od);
++        if ( rc < 0 )
++            return rc;
++        maddr = p2m_lookup(od, xatp->idx << PAGE_SHIFT);
++        if ( maddr == INVALID_PADDR )
++        {
++            printk("bad p2m lookup\n");
++            dump_p2m_lookup(od, xatp->idx << PAGE_SHIFT);
++            rcu_unlock_domain(od);
++            return -EINVAL;
++        }
++        mfn = maddr >> PAGE_SHIFT;
++        rcu_unlock_domain(od);
++        break;
++    }
++    default:
++        return -ENOSYS;
+     }
+     domain_lock(d);
+diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c
+index 876e1ef..d6c90f9 100644
+--- a/xen/arch/x86/mm.c
++++ b/xen/arch/x86/mm.c
+@@ -4572,6 +4572,8 @@ static int xenmem_add_to_physmap_once(
+             mfn = idx;
+             page = mfn_to_page(mfn);
+             break;
++        case XENMAPSPACE_gmfn_foreign:
++            return -ENOSYS;
+         }
+         default:
+             break;
+diff --git a/xen/include/public/arch-arm.h b/xen/include/public/arch-arm.h
+index e915cbf..b52bfc7 100644
+--- a/xen/include/public/arch-arm.h
++++ b/xen/include/public/arch-arm.h
+@@ -121,6 +121,7 @@ typedef uint64_t xen_pfn_t;
+ #define XEN_LEGACY_MAX_VCPUS 1
+ typedef uint32_t xen_ulong_t;
++#define PRI_xen_ulong PRIx32
+ struct vcpu_guest_context {
+     struct cpu_user_regs user_regs;         /* User-level CPU registers     */
+diff --git a/xen/include/public/memory.h b/xen/include/public/memory.h
+index 86d02c8..b2adfbe 100644
+--- a/xen/include/public/memory.h
++++ b/xen/include/public/memory.h
+@@ -212,11 +212,13 @@ struct xen_add_to_physmap {
+     uint16_t    size;
+     /* Source mapping space. */
+-#define XENMAPSPACE_shared_info 0 /* shared info page */
+-#define XENMAPSPACE_grant_table 1 /* grant table page */
+-#define XENMAPSPACE_gmfn        2 /* GMFN */
+-#define XENMAPSPACE_gmfn_range  3 /* GMFN range */
+-    unsigned int space;
++#define XENMAPSPACE_shared_info  0 /* shared info page */
++#define XENMAPSPACE_grant_table  1 /* grant table page */
++#define XENMAPSPACE_gmfn         2 /* GMFN */
++#define XENMAPSPACE_gmfn_range   3 /* GMFN range */
++#define XENMAPSPACE_gmfn_foreign 4 /* GMFN from another guest */
++    uint16_t space;
++    domid_t foreign_domid; /* IFF gmfn_foreign */
+ #define XENMAPIDX_grant_table_status 0x80000000
+-- 
+1.7.9.1
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1338565207-2888-35-git-send-email-ian.campbell@citrix.com> b/config/examples/test/corpus/<1338565207-2888-35-git-send-email-ian.campbell@citrix.com>
new file mode 100644 (file)
index 0000000..f23adac
--- /dev/null
@@ -0,0 +1,199 @@
+From xen-devel-bounces@lists.xen.org Fri Jun 01 16:49:18 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 01 Jun 2012 16:49:18 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SaU6D-0004xP-NJ
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 01 Jun 2012 16:49:18 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SaU3B-0008H3-A1; Fri, 01 Jun 2012 15:46:05 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1SaU38-0008Cl-Gm
+       for xen-devel@lists.xen.org; Fri, 01 Jun 2012 15:46:02 +0000
+Received: from [85.158.143.99:65367] by server-3.bemta-4.messagelabs.com id
+       A1/31-04252-9B3E8CF4; Fri, 01 Jun 2012 15:46:01 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-5.tower-216.messagelabs.com!1338565558!30625361!1
+X-Originating-IP: [66.165.176.63]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyNTY3NTA=\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 9127 invoked from network); 1 Jun 2012 15:46:00 -0000
+Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
+       by server-5.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
+       1 Jun 2012 15:46:00 -0000
+X-IronPort-AV: E=Sophos;i="4.75,698,1330923600"; d="scan'208";a="197207444"
+Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
+       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       01 Jun 2012 11:45:55 -0400
+Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
+       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
+       Fri, 1 Jun 2012 11:45:55 -0400
+Received: from [10.80.246.74] (helo=army.uk.xensource.com)     by
+       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
+       <ian.campbell@citrix.com>)      id 1SaTxR-0006I5-Mb;
+       Fri, 01 Jun 2012 16:40:09 +0100
+From: Ian Campbell <ian.campbell@citrix.com>
+To: xen-devel@lists.xen.org
+Date: Fri, 1 Jun 2012 15:40:04 +0000
+Message-ID: <1338565207-2888-35-git-send-email-ian.campbell@citrix.com>
+X-Mailer: git-send-email 1.7.9.1
+In-Reply-To: <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
+       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+MIME-Version: 1.0
+Cc: Ian Campbell <ian.campbell@citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: [Xen-devel] [PATCH 35/38] arm: move PSR flag definitions into
+       interface, for tools use.
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+---
+ xen/arch/arm/entry.S            |    1 +
+ xen/include/asm-arm/page.h      |    2 ++
+ xen/include/asm-arm/processor.h |   21 ---------------------
+ xen/include/asm-arm/system.h    |    2 +-
+ xen/include/public/arch-arm.h   |   23 ++++++++++++++++++++++-
+ 5 files changed, 26 insertions(+), 23 deletions(-)
+
+diff --git a/xen/arch/arm/entry.S b/xen/arch/arm/entry.S
+index 5bc3906..2ff32a1 100644
+--- a/xen/arch/arm/entry.S
++++ b/xen/arch/arm/entry.S
+@@ -1,5 +1,6 @@
+ #include <xen/config.h>
+ #include <asm/asm_defns.h>
++#include <public/xen.h>
+ #define SAVE_ONE_BANKED(reg)  mrs r11, reg; str r11, [sp, #UREGS_##reg]
+ #define RESTORE_ONE_BANKED(reg)       ldr r11, [sp, #UREGS_##reg]; msr reg, r11
+diff --git a/xen/include/asm-arm/page.h b/xen/include/asm-arm/page.h
+index f36bf6f..12ab2e8 100644
+--- a/xen/include/asm-arm/page.h
++++ b/xen/include/asm-arm/page.h
+@@ -2,6 +2,8 @@
+ #define __ARM_PAGE_H__
+ #include <xen/config.h>
++#include <public/xen.h>
++#include <asm/processor.h>
+ #define PADDR_BITS              40
+ #define PADDR_MASK              ((1ULL << PADDR_BITS)-1)
+diff --git a/xen/include/asm-arm/processor.h b/xen/include/asm-arm/processor.h
+index 9b3c9dd..3849b23 100644
+--- a/xen/include/asm-arm/processor.h
++++ b/xen/include/asm-arm/processor.h
+@@ -3,27 +3,6 @@
+ #include <asm/cpregs.h>
+-/* PSR bits (CPSR, SPSR)*/
+-
+-/* 0-4: Mode */
+-#define PSR_MODE_MASK 0x1f
+-#define PSR_MODE_USR 0x10
+-#define PSR_MODE_FIQ 0x11
+-#define PSR_MODE_IRQ 0x12
+-#define PSR_MODE_SVC 0x13
+-#define PSR_MODE_MON 0x16
+-#define PSR_MODE_ABT 0x17
+-#define PSR_MODE_HYP 0x1a
+-#define PSR_MODE_UND 0x1b
+-#define PSR_MODE_SYS 0x1f
+-
+-#define PSR_THUMB       (1<<5)        /* Thumb Mode enable */
+-#define PSR_FIQ_MASK    (1<<6)        /* Fast Interrupt mask */
+-#define PSR_IRQ_MASK    (1<<7)        /* Interrupt mask */
+-#define PSR_ABT_MASK    (1<<8)        /* Asynchronous Abort mask */
+-#define PSR_BIG_ENDIAN  (1<<9)        /* Big Endian Mode */
+-#define PSR_JAZELLE     (1<<24)       /* Jazelle Mode */
+-
+ /* TTBCR Translation Table Base Control Register */
+ #define TTBCR_EAE    0x80000000
+ #define TTBCR_N_MASK 0x07
+diff --git a/xen/include/asm-arm/system.h b/xen/include/asm-arm/system.h
+index 7963ea5..216ef1f 100644
+--- a/xen/include/asm-arm/system.h
++++ b/xen/include/asm-arm/system.h
+@@ -3,7 +3,7 @@
+ #define __ASM_SYSTEM_H
+ #include <xen/lib.h>
+-#include <asm/processor.h>
++#include <public/arch-arm.h>
+ #define nop() \
+     asm volatile ( "nop" )
+diff --git a/xen/include/public/arch-arm.h b/xen/include/public/arch-arm.h
+index b52bfc7..7ebe966 100644
+--- a/xen/include/public/arch-arm.h
++++ b/xen/include/public/arch-arm.h
+@@ -139,7 +139,28 @@ struct arch_shared_info { };
+ typedef struct arch_shared_info arch_shared_info_t;
+ typedef uint64_t xen_callback_t;
+-#endif
++#endif /* ifndef __ASSEMBLY __ */
++
++/* PSR bits (CPSR, SPSR)*/
++
++/* 0-4: Mode */
++#define PSR_MODE_MASK 0x1f
++#define PSR_MODE_USR 0x10
++#define PSR_MODE_FIQ 0x11
++#define PSR_MODE_IRQ 0x12
++#define PSR_MODE_SVC 0x13
++#define PSR_MODE_MON 0x16
++#define PSR_MODE_ABT 0x17
++#define PSR_MODE_HYP 0x1a
++#define PSR_MODE_UND 0x1b
++#define PSR_MODE_SYS 0x1f
++
++#define PSR_THUMB       (1<<5)        /* Thumb Mode enable */
++#define PSR_FIQ_MASK    (1<<6)        /* Fast Interrupt mask */
++#define PSR_IRQ_MASK    (1<<7)        /* Interrupt mask */
++#define PSR_ABT_MASK    (1<<8)        /* Asynchronous Abort mask */
++#define PSR_BIG_ENDIAN  (1<<9)        /* Big Endian Mode */
++#define PSR_JAZELLE     (1<<24)       /* Jazelle Mode */
+ #endif /*  __XEN_PUBLIC_ARCH_ARM_H__ */
+-- 
+1.7.9.1
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1338565207-2888-36-git-send-email-ian.campbell@citrix.com> b/config/examples/test/corpus/<1338565207-2888-36-git-send-email-ian.campbell@citrix.com>
new file mode 100644 (file)
index 0000000..afcdae8
--- /dev/null
@@ -0,0 +1,526 @@
+From xen-devel-bounces@lists.xen.org Fri Jun 01 16:49:44 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 01 Jun 2012 16:49:44 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SaU6W-000530-P9
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 01 Jun 2012 16:49:44 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SaU31-00086y-U7; Fri, 01 Jun 2012 15:45:55 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1SaU2z-000869-D0
+       for xen-devel@lists.xen.org; Fri, 01 Jun 2012 15:45:53 +0000
+Received: from [85.158.143.35:58647] by server-1.bemta-4.messagelabs.com id
+       80/C9-27869-0B3E8CF4; Fri, 01 Jun 2012 15:45:52 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-8.tower-21.messagelabs.com!1338565548!13156336!2
+X-Originating-IP: [66.165.176.63]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyNTY3NTA=\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 23382 invoked from network); 1 Jun 2012 15:45:51 -0000
+Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
+       by server-8.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
+       1 Jun 2012 15:45:50 -0000
+X-IronPort-AV: E=Sophos;i="4.75,698,1330923600"; d="scan'208";a="197207418"
+Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
+       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       01 Jun 2012 11:45:48 -0400
+Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
+       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
+       Fri, 1 Jun 2012 11:45:48 -0400
+Received: from [10.80.246.74] (helo=army.uk.xensource.com)     by
+       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
+       <ian.campbell@citrix.com>)      id 1SaTxR-0006I5-OE;
+       Fri, 01 Jun 2012 16:40:09 +0100
+From: Ian Campbell <ian.campbell@citrix.com>
+To: xen-devel@lists.xen.org
+Date: Fri, 1 Jun 2012 15:40:05 +0000
+Message-ID: <1338565207-2888-36-git-send-email-ian.campbell@citrix.com>
+X-Mailer: git-send-email 1.7.9.1
+In-Reply-To: <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
+       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+MIME-Version: 1.0
+Cc: Ian Campbell <ian.campbell@citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: [Xen-devel] [PATCH 36/38] libxc: add ARM support to xc_dom (PV
+       domain building)
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+Includes ARM zImage support.
+
+Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+---
+ tools/libxc/Makefile                 |    1 +
+ tools/libxc/xc_dom.h                 |    5 +-
+ tools/libxc/xc_dom_arm.c             |  135 +++++++++++++++++++++++++++-
+ tools/libxc/xc_dom_armzimageloader.c |  167 ++++++++++++++++++++++++++++++++++
+ tools/libxc/xc_dom_core.c            |   12 ++-
+ tools/libxc/xg_private.h             |    4 +
+ 6 files changed, 315 insertions(+), 9 deletions(-)
+ create mode 100644 tools/libxc/xc_dom_armzimageloader.c
+
+diff --git a/tools/libxc/Makefile b/tools/libxc/Makefile
+index ca38cbd..a01d457 100644
+--- a/tools/libxc/Makefile
++++ b/tools/libxc/Makefile
+@@ -59,6 +59,7 @@ GUEST_SRCS-y += libelf-dominfo.c libelf-relocate.c
+ GUEST_SRCS-y                 += xc_dom_core.c xc_dom_boot.c
+ GUEST_SRCS-y                 += xc_dom_elfloader.c
+ GUEST_SRCS-$(CONFIG_X86)     += xc_dom_bzimageloader.c
++GUEST_SRCS-$(CONFIG_ARM)     += xc_dom_armzimageloader.c
+ GUEST_SRCS-y                 += xc_dom_binloader.c
+ GUEST_SRCS-y                 += xc_dom_compat_linux.c
+diff --git a/tools/libxc/xc_dom.h b/tools/libxc/xc_dom.h
+index 2aef64a..4db8fad 100644
+--- a/tools/libxc/xc_dom.h
++++ b/tools/libxc/xc_dom.h
+@@ -93,6 +93,7 @@ struct xc_dom_image {
+     void *p2m_guest;
+     /* physical memory */
++    xen_pfn_t rambase_pfn;
+     xen_pfn_t total_pages;
+     struct xc_dom_phys *phys_pages;
+     int realmodearea_log;
+@@ -286,7 +287,7 @@ static inline xen_pfn_t xc_dom_p2m_host(struct xc_dom_image *dom, xen_pfn_t pfn)
+ {
+     if (dom->shadow_enabled)
+         return pfn;
+-    return dom->p2m_host[pfn];
++    return dom->p2m_host[pfn - dom->rambase_pfn];
+ }
+ static inline xen_pfn_t xc_dom_p2m_guest(struct xc_dom_image *dom,
+@@ -294,7 +295,7 @@ static inline xen_pfn_t xc_dom_p2m_guest(struct xc_dom_image *dom,
+ {
+     if (xc_dom_feature_translated(dom))
+         return pfn;
+-    return dom->p2m_host[pfn];
++    return dom->p2m_host[pfn - dom->rambase_pfn];
+ }
+ /* --- arch bits --------------------------------------------------- */
+diff --git a/tools/libxc/xc_dom_arm.c b/tools/libxc/xc_dom_arm.c
+index 122d0e8..9099cad 100644
+--- a/tools/libxc/xc_dom_arm.c
++++ b/tools/libxc/xc_dom_arm.c
+@@ -18,14 +18,138 @@
+  * Copyright (c) 2011, Citrix Systems
+  */
+ #include <inttypes.h>
++
+ #include <xen/xen.h>
++#include <xen/io/protocols.h>
++
+ #include "xg_private.h"
+ #include "xc_dom.h"
++/* ------------------------------------------------------------------------ */
++/*
++ * arm guests are hybrid and start off with paging disabled, therefore no
++ * pagetables and nothing to do here.
++ */
++static int count_pgtables_arm(struct xc_dom_image *dom)
++{
++    DOMPRINTF_CALLED(dom->xch);
++    return 0;
++}
++
++static int setup_pgtables_arm(struct xc_dom_image *dom)
++{
++    DOMPRINTF_CALLED(dom->xch);
++    return 0;
++}
++
++/* ------------------------------------------------------------------------ */
++
++static int alloc_magic_pages(struct xc_dom_image *dom)
++{
++    DOMPRINTF_CALLED(dom->xch);
++    /* XXX
++     *   dom->p2m_guest
++     *   dom->start_info_pfn
++     *   dom->xenstore_pfn
++     *   dom->console_pfn
++     */
++    return 0;
++}
++
++/* ------------------------------------------------------------------------ */
++
++static int start_info_arm(struct xc_dom_image *dom)
++{
++    DOMPRINTF_CALLED(dom->xch);
++    /* XXX */
++    return 0;
++}
++
++static int shared_info_arm(struct xc_dom_image *dom, void *ptr)
++{
++    DOMPRINTF_CALLED(dom->xch);
++    /* XXX */
++    return 0;
++}
++
++/* ------------------------------------------------------------------------ */
++
++static int vcpu_arm(struct xc_dom_image *dom, void *ptr)
++{
++    vcpu_guest_context_t *ctxt = ptr;
++
++    DOMPRINTF_CALLED(dom->xch);
++
++    /* clear everything */
++    memset(ctxt, 0, sizeof(*ctxt));
++
++    ctxt->user_regs.pc = dom->parms.virt_entry;
++    ctxt->user_regs.r0 = 0; /* SBZ */
++    ctxt->user_regs.r1 = 2272; /* Machine NR: Versatile Express */
++
++    ctxt->user_regs.r2 = 0xffffffff; //devicetree_seg //dtb_paddr; //atags or dtb /* XXX using APPEND right now */
++    ctxt->user_regs.r3 = 0xdeadbeef;
++    ctxt->sctlr = /* #define SCTLR_BASE */0x00c50078;
++    ctxt->ttbr0 = 0;
++    ctxt->ttbr1 = 0;
++    ctxt->ttbcr = 0; /* Defined Reset Value */
++
++    ctxt->user_regs.cpsr = PSR_ABT_MASK|PSR_FIQ_MASK|PSR_IRQ_MASK|PSR_MODE_SVC;
++
++    DOMPRINTF("Initial state CPSR %#"PRIx32" PC %#"PRIx32,
++           ctxt->user_regs.cpsr, ctxt->user_regs.pc);
++
++    return 0;
++}
++
++/* ------------------------------------------------------------------------ */
++
++static struct xc_dom_arch xc_dom_32 = {
++    .guest_type = "xen-3.0-armv7l",
++    .native_protocol = XEN_IO_PROTO_ABI_ARM,
++    .page_shift = PAGE_SHIFT_ARM,
++    .sizeof_pfn = 8,
++    .alloc_magic_pages = alloc_magic_pages,
++    .count_pgtables = count_pgtables_arm,
++    .setup_pgtables = setup_pgtables_arm,
++    .start_info = start_info_arm,
++    .shared_info = shared_info_arm,
++    .vcpu = vcpu_arm,
++};
++
++static void __init register_arch_hooks(void)
++{
++    xc_dom_register_arch_hooks(&xc_dom_32);
++}
++
+ int arch_setup_meminit(struct xc_dom_image *dom)
+ {
+-    errno = ENOSYS;
+-    return -1;
++    int rc;
++    xen_pfn_t pfn, allocsz, i;
++
++    dom->shadow_enabled = 1;
++
++    dom->p2m_host = xc_dom_malloc(dom, sizeof(xen_pfn_t) * dom->total_pages);
++
++    /* setup initial p2m */
++    for ( pfn = 0; pfn < dom->total_pages; pfn++ )
++        dom->p2m_host[pfn] = pfn + dom->rambase_pfn;
++
++    /* allocate guest memory */
++    for ( i = rc = allocsz = 0;
++          (i < dom->total_pages) && !rc;
++          i += allocsz )
++    {
++        allocsz = dom->total_pages - i;
++        if ( allocsz > 1024*1024 )
++            allocsz = 1024*1024;
++
++        rc = xc_domain_populate_physmap_exact(
++            dom->xch, dom->guest_domid, allocsz,
++            0, 0, &dom->p2m_host[i]);
++    }
++
++    return 0;
+ }
+ int arch_setup_bootearly(struct xc_dom_image *dom)
+@@ -36,9 +160,14 @@ int arch_setup_bootearly(struct xc_dom_image *dom)
+ int arch_setup_bootlate(struct xc_dom_image *dom)
+ {
+-    DOMPRINTF("%s: doing nothing", __FUNCTION__);
++    /* XXX
++     *   map shared info
++     *   map grant tables
++     *   setup shared info
++     */
+     return 0;
+ }
++
+ /*
+  * Local variables:
+  * mode: C
+diff --git a/tools/libxc/xc_dom_armzimageloader.c b/tools/libxc/xc_dom_armzimageloader.c
+new file mode 100644
+index 0000000..220176d
+--- /dev/null
++++ b/tools/libxc/xc_dom_armzimageloader.c
+@@ -0,0 +1,167 @@
++/*
++ * Xen domain builder -- ARM zImage bits
++ *
++ * Parse and load ARM zImage kernel images.
++ *
++ * Copyright (C) 2012, Citrix Systems.
++ *
++ * This library is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU Lesser General Public
++ * License as published by the Free Software Foundation;
++ * version 2.1 of the License.
++ *
++ * This library is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
++ * Lesser General Public License for more details.
++ *
++ * You should have received a copy of the GNU Lesser General Public
++ * License along with this library; if not, write to the Free Software
++ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
++ *
++ */
++
++#include <stdio.h>
++#include <stdlib.h>
++#include <inttypes.h>
++
++#include "xg_private.h"
++#include "xc_dom.h"
++
++#include <arpa/inet.h> /* XXX ntohl is not the right function... */
++
++#define ZIMAGE_MAGIC_OFFSET 0x24
++#define ZIMAGE_START_OFFSET 0x28
++#define ZIMAGE_END_OFFSET   0x2c
++
++#define ZIMAGE_MAGIC 0x016f2818
++
++struct minimal_dtb_header {
++    uint32_t magic;
++    uint32_t total_size;
++    /* There are other fields but we don't use them yet. */
++};
++
++#define DTB_MAGIC 0xd00dfeed
++
++static int xc_dom_probe_zimage_kernel(struct xc_dom_image *dom)
++{
++    uint32_t *zimage;
++    uint32_t end;
++
++    if ( dom->kernel_blob == NULL )
++    {
++        xc_dom_panic(dom->xch, XC_INTERNAL_ERROR,
++                     "%s: no kernel image loaded", __FUNCTION__);
++        return -EINVAL;
++    }
++
++    if ( dom->kernel_size < 0x30 /*sizeof(struct setup_header)*/ )
++    {
++        xc_dom_printf(dom->xch, "%s: kernel image too small", __FUNCTION__);
++        return -EINVAL;
++    }
++
++    zimage = (uint32_t *)dom->kernel_blob;
++    if ( zimage[ZIMAGE_MAGIC_OFFSET/4] != ZIMAGE_MAGIC )
++    {
++        xc_dom_printf(dom->xch, "%s: kernel is not a bzImage", __FUNCTION__);
++        return -EINVAL;
++    }
++
++    end = zimage[ZIMAGE_END_OFFSET/4];
++
++    /*
++     * Check for an appended DTB.
++     */
++    if ( end + sizeof(struct minimal_dtb_header) < dom->kernel_size ) {
++        struct minimal_dtb_header *dtb_hdr;
++        dtb_hdr = (struct minimal_dtb_header *)(dom->kernel_blob + end);
++        if (ntohl/*be32_to_cpu*/(dtb_hdr->magic) == DTB_MAGIC) {
++            xc_dom_printf(dom->xch, "%s: found an appended DTB", __FUNCTION__);
++            end += ntohl/*be32_to_cpu*/(dtb_hdr->total_size);
++        }
++    }
++
++    dom->kernel_size = end;
++
++    return 0;
++}
++
++static int xc_dom_parse_zimage_kernel(struct xc_dom_image *dom)
++{
++    uint32_t *zimage;
++    uint32_t start, entry_addr;
++    uint64_t v_start, v_end;
++    uint64_t rambase = 0x80000000; /* XXX */
++
++    DOMPRINTF_CALLED(dom->xch);
++
++    zimage = (uint32_t *)dom->kernel_blob;
++
++    dom->rambase_pfn = rambase >> XC_PAGE_SHIFT;
++
++    v_start = rambase + 0x8000; /* XXX */
++    v_end = v_start + dom->kernel_size;
++
++    start = zimage[ZIMAGE_START_OFFSET/4];
++
++    if (start == 0)
++        entry_addr = v_start;
++    else
++        entry_addr = start;
++
++    /* find kernel segment */
++    dom->kernel_seg.vstart = v_start;
++    dom->kernel_seg.vend   = v_end;
++
++    dom->parms.virt_entry = entry_addr;
++
++    dom->guest_type = "xen-3.0-armv7l";
++    DOMPRINTF("%s: %s: RAM starts at %"PRI_xen_pfn,
++              __FUNCTION__, dom->guest_type, dom->rambase_pfn);
++    DOMPRINTF("%s: %s: 0x%" PRIx64 " -> 0x%" PRIx64 "",
++              __FUNCTION__, dom->guest_type,
++              dom->kernel_seg.vstart, dom->kernel_seg.vend);
++    return 0;
++}
++
++static int xc_dom_load_zimage_kernel(struct xc_dom_image *dom)
++{
++    void *dst;
++
++    DOMPRINTF_CALLED(dom->xch);
++
++    dst = xc_dom_seg_to_ptr(dom, &dom->kernel_seg);
++
++    DOMPRINTF("%s: kernel sed %#"PRIx64"-%#"PRIx64,
++              __func__, dom->kernel_seg.vstart, dom->kernel_seg.vend);
++    DOMPRINTF("%s: copy %zd bytes from blob %p to dst %p",
++              __func__, dom->kernel_size, dom->kernel_blob, dst);
++
++    memcpy(dst, dom->kernel_blob, dom->kernel_size);
++
++    return 0;
++}
++
++static struct xc_dom_loader zimage_loader = {
++    .name = "Linux zImage (ARM)",
++    .probe = xc_dom_probe_zimage_kernel,
++    .parser = xc_dom_parse_zimage_kernel,
++    .loader = xc_dom_load_zimage_kernel,
++};
++
++static void __init register_loader(void)
++{
++    xc_dom_register_loader(&zimage_loader);
++}
++
++/*
++ * Local variables:
++ * mode: C
++ * c-set-style: "BSD"
++ * c-basic-offset: 4
++ * tab-width: 4
++ * indent-tabs-mode: nil
++ * End:
++ */
+diff --git a/tools/libxc/xc_dom_core.c b/tools/libxc/xc_dom_core.c
+index fea9de5..b0d48d5 100644
+--- a/tools/libxc/xc_dom_core.c
++++ b/tools/libxc/xc_dom_core.c
+@@ -307,15 +307,17 @@ void *xc_dom_pfn_to_ptr(struct xc_dom_image *dom, xen_pfn_t pfn,
+                         xen_pfn_t count)
+ {
+     struct xc_dom_phys *phys;
++    xen_pfn_t offset;
+     unsigned int page_shift = XC_DOM_PAGE_SHIFT(dom);
+     char *mode = "unset";
+-    if ( pfn > dom->total_pages ||    /* multiple checks to avoid overflows */
++    offset = pfn-dom->rambase_pfn;
++    if ( offset > dom->total_pages ||    /* multiple checks to avoid overflows */
+          count > dom->total_pages ||
+-         pfn > dom->total_pages - count )
++         offset > dom->total_pages - count )
+     {
+-        DOMPRINTF("%s: pfn out of range (0x%" PRIpfn " > 0x%" PRIpfn ")",
+-                  __FUNCTION__, pfn, dom->total_pages);
++        DOMPRINTF("%s: pfn %"PRI_xen_pfn" out of range (0x%" PRIpfn " > 0x%" PRIpfn ")",
++                  __FUNCTION__, pfn, offset, dom->total_pages);
+         return NULL;
+     }
+@@ -599,6 +601,8 @@ struct xc_dom_image *xc_dom_allocate(xc_interface *xch,
+     dom->parms.virt_hv_start_low = UNSET_ADDR;
+     dom->parms.elf_paddr_offset = UNSET_ADDR;
++    dom->rambase_pfn = 0;
++
+     dom->alloc_malloc += sizeof(*dom);
+     return dom;
+diff --git a/tools/libxc/xg_private.h b/tools/libxc/xg_private.h
+index a29fa26..a271942 100644
+--- a/tools/libxc/xg_private.h
++++ b/tools/libxc/xg_private.h
+@@ -148,6 +148,10 @@ typedef l4_pgentry_64_t l4_pgentry_t;
+ #define l4_table_offset(_a) l4_table_offset_x86_64(_a)
+ #endif
++#define PAGE_SHIFT_ARM          12
++#define PAGE_SIZE_ARM           (1UL << PAGE_SHIFT_ARM)
++#define PAGE_MASK_ARM           (~(PAGE_SIZE_ARM-1))
++
+ #define PAGE_SHIFT_X86          12
+ #define PAGE_SIZE_X86           (1UL << PAGE_SHIFT_X86)
+ #define PAGE_MASK_X86           (~(PAGE_SIZE_X86-1))
+-- 
+1.7.9.1
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1338565207-2888-37-git-send-email-ian.campbell@citrix.com> b/config/examples/test/corpus/<1338565207-2888-37-git-send-email-ian.campbell@citrix.com>
new file mode 100644 (file)
index 0000000..e948a12
--- /dev/null
@@ -0,0 +1,232 @@
+From xen-devel-bounces@lists.xen.org Fri Jun 01 16:49:36 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 01 Jun 2012 16:49:36 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SaU6O-00050j-Qs
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 01 Jun 2012 16:49:36 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SaU3K-00009K-88; Fri, 01 Jun 2012 15:46:14 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1SaU3D-0008Cl-8I
+       for xen-devel@lists.xen.org; Fri, 01 Jun 2012 15:46:07 +0000
+Received: from [85.158.143.99:6147] by server-3.bemta-4.messagelabs.com id
+       C5/51-04252-FB3E8CF4; Fri, 01 Jun 2012 15:46:07 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-5.tower-216.messagelabs.com!1338565558!30625361!9
+X-Originating-IP: [66.165.176.63]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyNTY3NTA=\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 9508 invoked from network); 1 Jun 2012 15:46:05 -0000
+Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
+       by server-5.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
+       1 Jun 2012 15:46:05 -0000
+X-IronPort-AV: E=Sophos;i="4.75,698,1330923600"; d="scan'208";a="197207494"
+Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
+       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       01 Jun 2012 11:46:05 -0400
+Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
+       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
+       Fri, 1 Jun 2012 11:46:05 -0400
+Received: from [10.80.246.74] (helo=army.uk.xensource.com)     by
+       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
+       <ian.campbell@citrix.com>)      id 1SaTxR-0006I5-Q4;
+       Fri, 01 Jun 2012 16:40:09 +0100
+From: Ian Campbell <ian.campbell@citrix.com>
+To: xen-devel@lists.xen.org
+Date: Fri, 1 Jun 2012 15:40:06 +0000
+Message-ID: <1338565207-2888-37-git-send-email-ian.campbell@citrix.com>
+X-Mailer: git-send-email 1.7.9.1
+In-Reply-To: <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
+       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+MIME-Version: 1.0
+Cc: Ian Campbell <ian.campbell@citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: [Xen-devel] [PATCH 37/38] HACK: add simple xcbuild
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+Based on init-xenstore-domain.c.
+
+Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+---
+ tools/xcutils/Makefile  |    6 ++-
+ tools/xcutils/xcbuild.c |  100 +++++++++++++++++++++++++++++++++++++++++++++++
+ 2 files changed, 105 insertions(+), 1 deletions(-)
+ create mode 100644 tools/xcutils/xcbuild.c
+
+diff --git a/tools/xcutils/Makefile b/tools/xcutils/Makefile
+index 6c502f1..dcd2c84 100644
+--- a/tools/xcutils/Makefile
++++ b/tools/xcutils/Makefile
+@@ -11,7 +11,7 @@
+ XEN_ROOT      = $(CURDIR)/../..
+ include $(XEN_ROOT)/tools/Rules.mk
+-PROGRAMS = xc_restore xc_save readnotes lsevtchn
++PROGRAMS = xc_restore xc_save readnotes lsevtchn xcbuild
+ CFLAGS += -Werror
+@@ -19,6 +19,7 @@ CFLAGS_xc_restore.o := $(CFLAGS_libxenctrl) $(CFLAGS_libxenguest)
+ CFLAGS_xc_save.o    := $(CFLAGS_libxenctrl) $(CFLAGS_libxenguest) $(CFLAGS_libxenstore)
+ CFLAGS_readnotes.o  := $(CFLAGS_libxenctrl) $(CFLAGS_libxenguest)
+ CFLAGS_lsevtchn.o   := $(CFLAGS_libxenctrl)
++CFLAGS_xcbuild.o    := $(CFLAGS_libxenctrl) $(CFLAGS_libxenguest)
+ .PHONY: all
+ all: build
+@@ -32,6 +33,9 @@ xc_restore: xc_restore.o
+ xc_save: xc_save.o
+       $(CC) $(LDFLAGS) $^ -o $@ $(LDLIBS_libxenctrl) $(LDLIBS_libxenguest) $(LDLIBS_libxenstore) $(APPEND_LDFLAGS)
++xcbuild: xcbuild.o
++      $(CC) $(LDFLAGS) $^ -o $@ $(LDLIBS_libxenctrl) $(LDLIBS_libxenguest) $(APPEND_LDFLAGS)
++
+ readnotes: readnotes.o
+       $(CC) $(LDFLAGS) $^ -o $@ $(LDLIBS_libxenctrl) $(LDLIBS_libxenguest) $(APPEND_LDFLAGS)
+diff --git a/tools/xcutils/xcbuild.c b/tools/xcutils/xcbuild.c
+new file mode 100644
+index 0000000..8f8660e
+--- /dev/null
++++ b/tools/xcutils/xcbuild.c
+@@ -0,0 +1,100 @@
++#include <unistd.h>
++#include <stdio.h>
++#include <stdlib.h>
++
++#include <errno.h>
++
++#include <xenctrl.h>
++#include <xentoollog.h>
++#include <xc_dom.h>
++
++int main(int argc, char **argv)
++{
++      xentoollog_logger *logger;
++      xc_interface *xch;
++      int rv;
++      const char *image;
++      uint32_t domid;
++      xen_domain_handle_t handle;
++      int maxmem = 128; /* MB */ //atoi(argv[2]);
++      int memory_kb = 2*(maxmem + 1)*1024; /* bit of slack... */
++      struct xc_dom_image *dom;
++
++      image = (argc < 2) ? "guest.img" : argv[1];
++      printf("Image: %s\n", image);
++      printf("Memory: %dKB\n", memory_kb);
++
++      logger = (xentoollog_logger*)
++              xtl_createlogger_stdiostream(stderr, XTL_DEBUG, 0);
++      if ( logger == NULL )
++      {
++              perror("xtl_createlogger_stdiostream");
++              exit(1);
++      }
++
++      xch = xc_interface_open(logger, logger, 0);
++      if ( xch == NULL )
++      {
++              perror("xc_interface_open");
++              exit(1);
++      }
++
++      rv = xc_dom_loginit(xch);
++      if (rv) return rv;
++
++      //rv = xc_flask_context_to_sid(xch, argv[3], strlen(argv[3]), &ssid);
++      //if (rv) return rv;
++
++      rv = xc_domain_create(xch, 0 /* ssid */, handle, 0 /* flags */, &domid);
++      printf("xc_domain_create: %d (%d)\n", rv, errno);
++      if ( rv < 0 )
++      {
++              perror("xc_domain_create");
++              exit(1);
++      }
++
++      printf("building dom%d\n", domid);
++
++      rv = xc_domain_max_vcpus(xch, domid, 1);
++      if ( rv < 0)
++      {
++              perror("xc_domain_max_vcpus");
++              exit(1);
++      }
++
++      rv = xc_domain_setmaxmem(xch, domid, memory_kb);
++      if ( rv < 0)
++      {
++              perror("xc_domain_setmaxmem");
++              exit(1);
++      }
++
++      dom = xc_dom_allocate(xch, "", NULL);
++      rv = xc_dom_kernel_file(dom, image);
++      if (rv) return rv;
++      rv = xc_dom_boot_xen_init(dom, xch, domid);
++      if (rv) return rv;
++      rv = xc_dom_parse_image(dom);
++      if (rv) return rv;
++      rv = xc_dom_mem_init(dom, 2*maxmem);/* XXX */
++      if (rv) return rv;
++      rv = xc_dom_boot_mem_init(dom);
++      if (rv) return rv;
++      rv = xc_dom_build_image(dom);
++      if (rv) return rv;
++      rv = xc_dom_boot_image(dom);
++      if (rv) return rv;
++
++      xc_dom_release(dom);
++
++      rv = xc_domain_unpause(xch, domid);
++      if ( rv )
++      {
++              perror("xc_domain_unpause");
++              exit(1);
++      }
++
++      xc_interface_close(xch);
++
++      return 0;
++}
+-- 
+1.7.9.1
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1338565207-2888-38-git-send-email-ian.campbell@citrix.com> b/config/examples/test/corpus/<1338565207-2888-38-git-send-email-ian.campbell@citrix.com>
new file mode 100644 (file)
index 0000000..0e0d246
--- /dev/null
@@ -0,0 +1,111 @@
+From xen-devel-bounces@lists.xen.org Fri Jun 01 16:49:22 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 01 Jun 2012 16:49:22 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SaU6H-0004y5-8P
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 01 Jun 2012 16:49:22 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SaU3D-0008Mi-VP; Fri, 01 Jun 2012 15:46:07 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1SaU3A-0008D3-BT
+       for xen-devel@lists.xen.org; Fri, 01 Jun 2012 15:46:04 +0000
+Received: from [85.158.143.99:65476] by server-1.bemta-4.messagelabs.com id
+       F3/0A-27869-CB3E8CF4; Fri, 01 Jun 2012 15:46:04 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-5.tower-216.messagelabs.com!1338565558!30625361!5
+X-Originating-IP: [66.165.176.63]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyNTY3NTA=\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 9288 invoked from network); 1 Jun 2012 15:46:02 -0000
+Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
+       by server-5.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
+       1 Jun 2012 15:46:02 -0000
+X-IronPort-AV: E=Sophos;i="4.75,698,1330923600"; d="scan'208";a="197207473"
+Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
+       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       01 Jun 2012 11:46:01 -0400
+Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
+       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
+       Fri, 1 Jun 2012 11:46:01 -0400
+Received: from [10.80.246.74] (helo=army.uk.xensource.com)     by
+       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
+       <ian.campbell@citrix.com>)      id 1SaTxR-0006I5-RY;
+       Fri, 01 Jun 2012 16:40:09 +0100
+From: Ian Campbell <ian.campbell@citrix.com>
+To: xen-devel@lists.xen.org
+Date: Fri, 1 Jun 2012 15:40:07 +0000
+Message-ID: <1338565207-2888-38-git-send-email-ian.campbell@citrix.com>
+X-Mailer: git-send-email 1.7.9.1
+In-Reply-To: <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
+       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+MIME-Version: 1.0
+Cc: Ian Campbell <ian.campbell@citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: [Xen-devel] [PATCH 38/38] HACK: arm: disable hypercall
+       continuations.
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+---
+ xen/include/xen/sched.h |    4 ++++
+ 1 files changed, 4 insertions(+), 0 deletions(-)
+
+diff --git a/xen/include/xen/sched.h b/xen/include/xen/sched.h
+index 53804c8..15fa6b4 100644
+--- a/xen/include/xen/sched.h
++++ b/xen/include/xen/sched.h
+@@ -577,10 +577,14 @@ unsigned long hypercall_create_continuation(
+     unsigned int op, const char *format, ...);
+ void hypercall_cancel_continuation(void);
++#ifdef CONFIG_ARM
++#define hypercall_preempt_check() (0)
++#else
+ #define hypercall_preempt_check() (unlikely(    \
+         softirq_pending(smp_processor_id()) |   \
+         local_events_need_delivery()            \
+     ))
++#endif
+ extern struct domain *domain_list;
+-- 
+1.7.9.1
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1338565207-2888-4-git-send-email-ian.campbell@citrix.com> b/config/examples/test/corpus/<1338565207-2888-4-git-send-email-ian.campbell@citrix.com>
new file mode 100644 (file)
index 0000000..435c6f5
--- /dev/null
@@ -0,0 +1,122 @@
+From xen-devel-bounces@lists.xen.org Fri Jun 01 16:43:54 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 01 Jun 2012 16:43:54 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SaU0v-0004uH-3W
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 01 Jun 2012 16:43:54 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SaTxq-0006pw-Qo; Fri, 01 Jun 2012 15:40:34 +0000
+Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1SaTxo-0006ok-QJ
+       for xen-devel@lists.xen.org; Fri, 01 Jun 2012 15:40:33 +0000
+Received: from [193.109.254.147:5396] by server-3.bemta-14.messagelabs.com id
+       24/02-15022-072E8CF4; Fri, 01 Jun 2012 15:40:32 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-2.tower-27.messagelabs.com!1338565208!12347274!2
+X-Originating-IP: [66.165.176.89]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNDc3NzE=\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 19095 invoked from network); 1 Jun 2012 15:40:10 -0000
+Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
+       by server-2.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
+       1 Jun 2012 15:40:10 -0000
+X-IronPort-AV: E=Sophos;i="4.75,698,1330923600"; d="scan'208";a="26547680"
+Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
+       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       01 Jun 2012 11:40:08 -0400
+Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
+       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
+       Fri, 1 Jun 2012 11:40:08 -0400
+Received: from [10.80.246.74] (helo=army.uk.xensource.com)     by
+       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
+       <ian.campbell@citrix.com>)      id 1SaTxP-0006I5-QL;
+       Fri, 01 Jun 2012 16:40:07 +0100
+From: Ian Campbell <ian.campbell@citrix.com>
+To: xen-devel@lists.xen.org
+Date: Fri, 1 Jun 2012 15:39:33 +0000
+Message-ID: <1338565207-2888-4-git-send-email-ian.campbell@citrix.com>
+X-Mailer: git-send-email 1.7.9.1
+In-Reply-To: <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
+       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+MIME-Version: 1.0
+Cc: Ian Campbell <ian.campbell@citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: [Xen-devel] [PATCH 04/38] arm: correct and expand TLB flush CP15
+       registers
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+Correct spelling of TLBIALLHIS and correct definition of TLBIALLNSNHIS.
+
+Add a few more.
+
+Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+---
+ xen/include/asm-arm/cpregs.h |   11 +++++++++--
+ 1 files changed, 9 insertions(+), 2 deletions(-)
+
+diff --git a/xen/include/asm-arm/cpregs.h b/xen/include/asm-arm/cpregs.h
+index ee8a287..7a0b49a 100644
+--- a/xen/include/asm-arm/cpregs.h
++++ b/xen/include/asm-arm/cpregs.h
+@@ -172,12 +172,19 @@
+ #define TLBIMVAIS       p15,0,c8,c3,1   /* Invalidate unified TLB entry by MVA inner shareable */
+ #define TLBIASIDIS      p15,0,c8,c3,2   /* Invalidate unified TLB by ASID match inner shareable */
+ #define TLBIMVAAIS      p15,0,c8,c3,3   /* Invalidate unified TLB entry by MVA all ASID inner shareable */
++#define ITLBIALL        p15,0,c8,c5,0   /* Invalidate instruction TLB */
++#define ITLBIMVA        p15,0,c8,c5,1   /* Invalidate instruction TLB entry by MVA */
++#define ITLBIASID       p15,0,c8,c5,2   /* Invalidate instruction TLB by ASID match */
+ #define DTLBIALL        p15,0,c8,c6,0   /* Invalidate data TLB */
+ #define DTLBIMVA        p15,0,c8,c6,1   /* Invalidate data TLB entry by MVA */
+ #define DTLBIASID       p15,0,c8,c6,2   /* Invalidate data TLB by ASID match */
+-#define TLBILLHIS       p15,4,c8,c3,0   /* Invalidate Entire Hyp. Unified TLB inner shareable */
++#define TLBIALL         p15,0,c8,c7,0   /* invalidate unified TLB */
++#define TLBIMVA         p15,0,c8,c7,1   /* invalidate unified TLB entry by MVA */
++#define TLBIASID        p15,0,c8,c7,2   /* invalid unified TLB by ASID match */
++#define TLBIMVAA        p15,0,c8,c7,3   /* invalidate unified TLB entries by MVA all ASID */
++#define TLBIALLHIS      p15,4,c8,c3,0   /* Invalidate Entire Hyp. Unified TLB inner shareable */
+ #define TLBIMVAHIS      p15,4,c8,c3,1   /* Invalidate Unified Hyp. TLB by MVA inner shareable */
+-#define TLBIALLNSNHIS   p15,4,c8,c7,4   /* Invalidate Entire Non-Secure Non-Hyp. Unified TLB inner shareable */
++#define TLBIALLNSNHIS   p15,4,c8,c3,4   /* Invalidate Entire Non-Secure Non-Hyp. Unified TLB inner shareable */
+ #define TLBIALLH        p15,4,c8,c7,0   /* Invalidate Entire Hyp. Unified TLB */
+ #define TLBIMVAH        p15,4,c8,c7,1   /* Invalidate Unified Hyp. TLB by MVA */
+ #define TLBIALLNSNH     p15,4,c8,c7,4   /* Invalidate Entire Non-Secure Non-Hyp. Unified TLB */
+-- 
+1.7.9.1
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1338565207-2888-5-git-send-email-ian.campbell@citrix.com> b/config/examples/test/corpus/<1338565207-2888-5-git-send-email-ian.campbell@citrix.com>
new file mode 100644 (file)
index 0000000..830f31a
--- /dev/null
@@ -0,0 +1,155 @@
+From xen-devel-bounces@lists.xen.org Fri Jun 01 16:43:54 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 01 Jun 2012 16:43:54 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SaU0w-0004uI-59
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 01 Jun 2012 16:43:54 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SaTxX-0006em-6g; Fri, 01 Jun 2012 15:40:15 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1SaTxV-0006e2-9e
+       for xen-devel@lists.xen.org; Fri, 01 Jun 2012 15:40:13 +0000
+Received: from [85.158.139.83:45100] by server-10.bemta-5.messagelabs.com id
+       4A/FA-22179-C52E8CF4; Fri, 01 Jun 2012 15:40:12 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-8.tower-182.messagelabs.com!1338565208!17780788!3
+X-Originating-IP: [66.165.176.63]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyNTY3NTA=\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 1820 invoked from network); 1 Jun 2012 15:40:11 -0000
+Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
+       by server-8.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
+       1 Jun 2012 15:40:11 -0000
+X-IronPort-AV: E=Sophos;i="4.75,698,1330923600"; d="scan'208";a="197206652"
+Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
+       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       01 Jun 2012 11:40:08 -0400
+Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
+       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
+       Fri, 1 Jun 2012 11:40:08 -0400
+Received: from [10.80.246.74] (helo=army.uk.xensource.com)     by
+       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
+       <ian.campbell@citrix.com>)      id 1SaTxP-0006I5-T0;
+       Fri, 01 Jun 2012 16:40:07 +0100
+From: Ian Campbell <ian.campbell@citrix.com>
+To: xen-devel@lists.xen.org
+Date: Fri, 1 Jun 2012 15:39:34 +0000
+Message-ID: <1338565207-2888-5-git-send-email-ian.campbell@citrix.com>
+X-Mailer: git-send-email 1.7.9.1
+In-Reply-To: <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
+       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+MIME-Version: 1.0
+Cc: Ian Campbell <ian.campbell@citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: [Xen-devel] [PATCH 05/38] arm: restore stack on return from trap.
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+We align the stack before calling into C code but we weren't undoing this on
+return.
+
+Collapse continue_(non)idle_domain into continue_new_vcpu.
+
+Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+---
+ xen/arch/arm/domain.c |   16 +++-------------
+ xen/arch/arm/entry.S  |    5 ++++-
+ 2 files changed, 7 insertions(+), 14 deletions(-)
+
+diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
+index 4b38790..9339a11 100644
+--- a/xen/arch/arm/domain.c
++++ b/xen/arch/arm/domain.c
+@@ -16,17 +16,6 @@
+ DEFINE_PER_CPU(struct vcpu *, curr_vcpu);
+-static void continue_idle_domain(struct vcpu *v)
+-{
+-    reset_stack_and_jump(idle_loop);
+-}
+-
+-static void continue_nonidle_domain(struct vcpu *v)
+-{
+-    /* check_wakeup_from_wait(); */
+-    reset_stack_and_jump(return_from_trap);
+-}
+-
+ void idle_loop(void)
+ {
+     for ( ; ; )
+@@ -72,9 +61,10 @@ static void continue_new_vcpu(struct vcpu *prev)
+     schedule_tail(prev);
+     if ( is_idle_vcpu(current) )
+-        continue_idle_domain(current);
++        reset_stack_and_jump(idle_loop);
+     else
+-        continue_nonidle_domain(current);
++        /* check_wakeup_from_wait(); */
++        reset_stack_and_jump(return_to_new_vcpu);
+ }
+ void context_switch(struct vcpu *prev, struct vcpu *next)
+diff --git a/xen/arch/arm/entry.S b/xen/arch/arm/entry.S
+index f261a9f..7a22e2d 100644
+--- a/xen/arch/arm/entry.S
++++ b/xen/arch/arm/entry.S
+@@ -72,7 +72,9 @@ DEFINE_TRAP_ENTRY(hypervisor)
+ DEFINE_TRAP_ENTRY(irq)
+ DEFINE_TRAP_ENTRY(fiq)
+-ENTRY(return_from_trap)
++return_from_trap:
++      mov sp, r11
++ENTRY(return_to_new_vcpu)
+       ldr r11, [sp, #UREGS_cpsr]
+       and r11, #PSR_MODE_MASK
+       cmp r11, #PSR_MODE_HYP
+@@ -82,6 +84,7 @@ ENTRY(return_to_guest)
+       mov r11, sp
+       bic sp, #7 /* Align the stack pointer */
+       bl leave_hypervisor_tail
++      mov sp, r11
+       RESTORE_ONE_BANKED(SP_usr)
+       /* LR_usr is the same physical register as lr and is restored below */
+       RESTORE_BANKED(svc)
+-- 
+1.7.9.1
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1338565207-2888-6-git-send-email-ian.campbell@citrix.com> b/config/examples/test/corpus/<1338565207-2888-6-git-send-email-ian.campbell@citrix.com>
new file mode 100644 (file)
index 0000000..0f27fe6
--- /dev/null
@@ -0,0 +1,164 @@
+From xen-devel-bounces@lists.xen.org Fri Jun 01 16:43:42 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 01 Jun 2012 16:43:42 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SaU0l-0004tS-Ns
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 01 Jun 2012 16:43:41 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SaTxY-0006fJ-Vn; Fri, 01 Jun 2012 15:40:16 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1SaTxW-0006eR-F4
+       for xen-devel@lists.xen.org; Fri, 01 Jun 2012 15:40:14 +0000
+Received: from [85.158.139.83:45173] by server-5.bemta-5.messagelabs.com id
+       CD/54-16141-D52E8CF4; Fri, 01 Jun 2012 15:40:13 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-8.tower-182.messagelabs.com!1338565208!17780788!4
+X-Originating-IP: [66.165.176.63]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyNTY3NTA=\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 1862 invoked from network); 1 Jun 2012 15:40:12 -0000
+Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
+       by server-8.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
+       1 Jun 2012 15:40:12 -0000
+X-IronPort-AV: E=Sophos;i="4.75,698,1330923600"; d="scan'208";a="197206654"
+Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
+       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       01 Jun 2012 11:40:08 -0400
+Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
+       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
+       Fri, 1 Jun 2012 11:40:08 -0400
+Received: from [10.80.246.74] (helo=army.uk.xensource.com)     by
+       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
+       <ian.campbell@citrix.com>)      id 1SaTxP-0006I5-UR;
+       Fri, 01 Jun 2012 16:40:07 +0100
+From: Ian Campbell <ian.campbell@citrix.com>
+To: xen-devel@lists.xen.org
+Date: Fri, 1 Jun 2012 15:39:35 +0000
+Message-ID: <1338565207-2888-6-git-send-email-ian.campbell@citrix.com>
+X-Mailer: git-send-email 1.7.9.1
+In-Reply-To: <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
+       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+MIME-Version: 1.0
+Cc: Ian Campbell <ian.campbell@citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: [Xen-devel] [PATCH 06/38] arm: enable interrupts while handling
+       traps
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+For most traps we can do this as soon as we have saved the necessary state.
+For IRQs and FIQs we must wait until we have acked the interrupt with the GIC.
+
+Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+---
+ xen/arch/arm/entry.S |   17 ++++++++++++++---
+ xen/arch/arm/gic.c   |    2 ++
+ xen/arch/arm/traps.c |    1 -
+ 3 files changed, 16 insertions(+), 4 deletions(-)
+
+diff --git a/xen/arch/arm/entry.S b/xen/arch/arm/entry.S
+index 7a22e2d..5bc3906 100644
+--- a/xen/arch/arm/entry.S
++++ b/xen/arch/arm/entry.S
+@@ -46,6 +46,17 @@ save_guest_regs:
+       ALIGN;                                                                                          \
+ trap_##trap:                                                                                          \
+       SAVE_ALL;                                                                                       \
++      cpsie i;        /* local_irq_enable */                                                          \
++      adr lr, return_from_trap;                                                                       \
++      mov r0, sp;                                                                                     \
++      mov r11, sp;                                                                                    \
++      bic sp, #7; /* Align the stack pointer (noop on guest trap) */                                  \
++      b do_trap_##trap
++
++#define DEFINE_TRAP_ENTRY_NOIRQ(trap)                                                                 \
++      ALIGN;                                                                                          \
++trap_##trap:                                                                                          \
++      SAVE_ALL;                                                                                       \
+       adr lr, return_from_trap;                                                                       \
+       mov r0, sp;                                                                                     \
+       mov r11, sp;                                                                                    \
+@@ -69,8 +80,8 @@ DEFINE_TRAP_ENTRY(supervisor_call)
+ DEFINE_TRAP_ENTRY(prefetch_abort)
+ DEFINE_TRAP_ENTRY(data_abort)
+ DEFINE_TRAP_ENTRY(hypervisor)
+-DEFINE_TRAP_ENTRY(irq)
+-DEFINE_TRAP_ENTRY(fiq)
++DEFINE_TRAP_ENTRY_NOIRQ(irq)
++DEFINE_TRAP_ENTRY_NOIRQ(fiq)
+ return_from_trap:
+       mov sp, r11
+@@ -83,7 +94,7 @@ ENTRY(return_to_new_vcpu)
+ ENTRY(return_to_guest)
+       mov r11, sp
+       bic sp, #7 /* Align the stack pointer */
+-      bl leave_hypervisor_tail
++      bl leave_hypervisor_tail /* Disables interrupts on return */
+       mov sp, r11
+       RESTORE_ONE_BANKED(SP_usr)
+       /* LR_usr is the same physical register as lr and is restored below */
+diff --git a/xen/arch/arm/gic.c b/xen/arch/arm/gic.c
+index cc9d37b..1a2b95f 100644
+--- a/xen/arch/arm/gic.c
++++ b/xen/arch/arm/gic.c
+@@ -509,6 +509,8 @@ void gic_interrupt(struct cpu_user_regs *regs, int is_fiq)
+     uint32_t intack = GICC[GICC_IAR];
+     unsigned int irq = intack & GICC_IA_IRQ;
++    local_irq_enable();
++
+     if ( irq == 1023 )
+         /* Spurious interrupt */
+         return;
+diff --git a/xen/arch/arm/traps.c b/xen/arch/arm/traps.c
+index abc26a3..5ed754f 100644
+--- a/xen/arch/arm/traps.c
++++ b/xen/arch/arm/traps.c
+@@ -412,7 +412,6 @@ static void do_debug_trap(struct cpu_user_regs *regs, unsigned int code)
+ static void do_trap_hypercall(struct cpu_user_regs *regs, unsigned long iss)
+ {
+     arm_hypercall_t *call = NULL;
+-    local_irq_enable();
+     if ( iss != XEN_HYPERCALL_TAG )
+     {
+-- 
+1.7.9.1
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1338565207-2888-7-git-send-email-ian.campbell@citrix.com> b/config/examples/test/corpus/<1338565207-2888-7-git-send-email-ian.campbell@citrix.com>
new file mode 100644 (file)
index 0000000..b28e826
--- /dev/null
@@ -0,0 +1,104 @@
+From xen-devel-bounces@lists.xen.org Fri Jun 01 16:43:50 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 01 Jun 2012 16:43:50 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SaU0m-0004tV-AS
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 01 Jun 2012 16:43:50 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SaTxZ-0006fX-CH; Fri, 01 Jun 2012 15:40:17 +0000
+Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1SaTxW-0006eU-Lf
+       for xen-devel@lists.xen.org; Fri, 01 Jun 2012 15:40:14 +0000
+Received: from [193.109.254.147:18261] by server-12.bemta-14.messagelabs.com
+       id A9/82-12643-D52E8CF4; Fri, 01 Jun 2012 15:40:13 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-10.tower-27.messagelabs.com!1338565210!7252174!1
+X-Originating-IP: [66.165.176.63]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyNTY3NTA=\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 16146 invoked from network); 1 Jun 2012 15:40:12 -0000
+Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
+       by server-10.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
+       1 Jun 2012 15:40:12 -0000
+X-IronPort-AV: E=Sophos;i="4.75,698,1330923600"; d="scan'208";a="197206653"
+Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
+       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       01 Jun 2012 11:40:08 -0400
+Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
+       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
+       Fri, 1 Jun 2012 11:40:08 -0400
+Received: from [10.80.246.74] (helo=army.uk.xensource.com)     by
+       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
+       <ian.campbell@citrix.com>)      id 1SaTxQ-0006I5-0n;
+       Fri, 01 Jun 2012 16:40:08 +0100
+From: Ian Campbell <ian.campbell@citrix.com>
+To: xen-devel@lists.xen.org
+Date: Fri, 1 Jun 2012 15:39:36 +0000
+Message-ID: <1338565207-2888-7-git-send-email-ian.campbell@citrix.com>
+X-Mailer: git-send-email 1.7.9.1
+In-Reply-To: <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
+       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+MIME-Version: 1.0
+Cc: Ian Campbell <ian.campbell@citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: [Xen-devel] [PATCH 07/38] arm: hook up domctl and memory_op
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+---
+ xen/arch/arm/traps.c |    2 ++
+ 1 files changed, 2 insertions(+), 0 deletions(-)
+
+diff --git a/xen/arch/arm/traps.c b/xen/arch/arm/traps.c
+index 5ed754f..5d8b7f9 100644
+--- a/xen/arch/arm/traps.c
++++ b/xen/arch/arm/traps.c
+@@ -373,6 +373,8 @@ typedef unsigned long arm_hypercall_t(
+     [ __HYPERVISOR_ ## x ] = (arm_hypercall_t *) do_ ## x
+ static arm_hypercall_t *arm_hypercall_table[] = {
++    HYPERCALL(memory_op),
++    HYPERCALL(domctl),
+     HYPERCALL(arch_0),
+     HYPERCALL(sched_op),
+     HYPERCALL(console_io),
+-- 
+1.7.9.1
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1338565207-2888-8-git-send-email-ian.campbell@citrix.com> b/config/examples/test/corpus/<1338565207-2888-8-git-send-email-ian.campbell@citrix.com>
new file mode 100644 (file)
index 0000000..e33ca3a
--- /dev/null
@@ -0,0 +1,222 @@
+From xen-devel-bounces@lists.xen.org Fri Jun 01 16:43:43 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 01 Jun 2012 16:43:43 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SaU0l-0004tT-QV
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 01 Jun 2012 16:43:43 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SaTxr-0006qJ-8l; Fri, 01 Jun 2012 15:40:35 +0000
+Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1SaTxp-0006ok-9Z
+       for xen-devel@lists.xen.org; Fri, 01 Jun 2012 15:40:33 +0000
+Received: from [193.109.254.147:5428] by server-3.bemta-14.messagelabs.com id
+       A4/02-15022-072E8CF4; Fri, 01 Jun 2012 15:40:32 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-2.tower-27.messagelabs.com!1338565208!12347274!3
+X-Originating-IP: [66.165.176.89]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNDc3NzE=\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 19171 invoked from network); 1 Jun 2012 15:40:12 -0000
+Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
+       by server-2.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
+       1 Jun 2012 15:40:12 -0000
+X-IronPort-AV: E=Sophos;i="4.75,698,1330923600"; d="scan'208";a="26547681"
+Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
+       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       01 Jun 2012 11:40:08 -0400
+Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
+       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
+       Fri, 1 Jun 2012 11:40:08 -0400
+Received: from [10.80.246.74] (helo=army.uk.xensource.com)     by
+       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
+       <ian.campbell@citrix.com>)      id 1SaTxQ-0006I5-3V;
+       Fri, 01 Jun 2012 16:40:08 +0100
+From: Ian Campbell <ian.campbell@citrix.com>
+To: xen-devel@lists.xen.org
+Date: Fri, 1 Jun 2012 15:39:37 +0000
+Message-ID: <1338565207-2888-8-git-send-email-ian.campbell@citrix.com>
+X-Mailer: git-send-email 1.7.9.1
+In-Reply-To: <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
+       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+MIME-Version: 1.0
+Cc: Ian Campbell <ian.campbell@citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: [Xen-devel] [PATCH 08/38] arm: allocate and setup a guest vcpu.
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+---
+ xen/arch/arm/domain.c         |   68 +++++++++++++++++++++++++++++++++++++++++
+ xen/arch/arm/dummy.S          |    3 --
+ xen/include/public/arch-arm.h |    9 -----
+ 3 files changed, 68 insertions(+), 12 deletions(-)
+
+diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
+index 9339a11..62a2f3a 100644
+--- a/xen/arch/arm/domain.c
++++ b/xen/arch/arm/domain.c
+@@ -144,6 +144,17 @@ void free_vcpu_struct(struct vcpu *v)
+     free_xenheap_page(v);
+ }
++struct vcpu_guest_context *alloc_vcpu_guest_context(void)
++{
++    return xmalloc(struct vcpu_guest_context);
++
++}
++
++void free_vcpu_guest_context(struct vcpu_guest_context *vgc)
++{
++    xfree(vgc);
++}
++
+ int vcpu_initialise(struct vcpu *v)
+ {
+     int rc = 0;
+@@ -182,6 +193,9 @@ int arch_domain_create(struct domain *d, unsigned int domcr_flags)
+     if ( (rc = p2m_init(d)) != 0 )
+         goto fail;
++    if ( (rc = domain_vgic_init(d)) != 0 )
++        goto fail;
++
+     if ( !is_idle_domain(d) )
+     {
+         rc = -ENOMEM;
+@@ -212,6 +226,60 @@ void arch_domain_destroy(struct domain *d)
+     /* domain_vgic_destroy */
+ }
++static int is_guest_psr(uint32_t psr)
++{
++    switch (psr & PSR_MODE_MASK)
++    {
++    case PSR_MODE_USR:
++    case PSR_MODE_FIQ:
++    case PSR_MODE_IRQ:
++    case PSR_MODE_SVC:
++    case PSR_MODE_ABT:
++    case PSR_MODE_UND:
++    case PSR_MODE_SYS:
++        return 1;
++    case PSR_MODE_MON:
++    case PSR_MODE_HYP:
++    default:
++        return 0;
++    }
++}
++
++int arch_set_info_guest(
++    struct vcpu *v, vcpu_guest_context_u c)
++{
++    struct cpu_user_regs *regs = &c.nat->user_regs;
++
++    if ( !is_guest_psr(regs->cpsr) )
++        return -EINVAL;
++
++    if ( regs->spsr_svc && !is_guest_psr(regs->spsr_svc) )
++        return -EINVAL;
++    if ( regs->spsr_abt && !is_guest_psr(regs->spsr_abt) )
++        return -EINVAL;
++    if ( regs->spsr_und && !is_guest_psr(regs->spsr_und) )
++        return -EINVAL;
++    if ( regs->spsr_irq && !is_guest_psr(regs->spsr_irq) )
++        return -EINVAL;
++    if ( regs->spsr_fiq && !is_guest_psr(regs->spsr_fiq) )
++        return -EINVAL;
++
++    v->arch.cpu_info->guest_cpu_user_regs = *regs;
++
++    /* XXX other state:
++     * - SCTLR
++     * - TTBR0/1
++     * - TTBCR
++     */
++
++    //if ( flags & VGCF_online )
++        clear_bit(_VPF_down, &v->pause_flags);
++    //else
++    //    set_bit(_VPF_down, &v->pause_flags);
++
++    return 0;
++}
++
+ void arch_dump_domain_info(struct domain *d)
+ {
+ }
+diff --git a/xen/arch/arm/dummy.S b/xen/arch/arm/dummy.S
+index 016340c..3b48917 100644
+--- a/xen/arch/arm/dummy.S
++++ b/xen/arch/arm/dummy.S
+@@ -20,11 +20,8 @@ DUMMY(pirq_guest_unbind);
+ DUMMY(pirq_set_affinity);
+ /* VCPU */
+-DUMMY(alloc_vcpu_guest_context);
+ DUMMY(arch_get_info_guest);
+-DUMMY(arch_set_info_guest);
+ DUMMY(arch_vcpu_reset);
+-DUMMY(free_vcpu_guest_context);
+ DUMMY(sync_vcpu_execstate);
+ NOP(update_vcpu_system_time);
+ DUMMY(vcpu_show_execution_state);
+diff --git a/xen/include/public/arch-arm.h b/xen/include/public/arch-arm.h
+index 1b1bcf3..e439727 100644
+--- a/xen/include/public/arch-arm.h
++++ b/xen/include/public/arch-arm.h
+@@ -124,15 +124,6 @@ typedef uint32_t xen_ulong_t;
+ struct vcpu_guest_context {
+     struct cpu_user_regs user_regs;         /* User-level CPU registers     */
+-    union {
+-        uint32_t reg[16];
+-        struct {
+-            uint32_t __pad[12];
+-            uint32_t sp; /* r13 */
+-            uint32_t lr; /* r14 */
+-            uint32_t pc; /* r15 */
+-        };
+-    };
+ };
+ typedef struct vcpu_guest_context vcpu_guest_context_t;
+ DEFINE_XEN_GUEST_HANDLE(vcpu_guest_context_t);
+-- 
+1.7.9.1
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1338565207-2888-9-git-send-email-ian.campbell@citrix.com> b/config/examples/test/corpus/<1338565207-2888-9-git-send-email-ian.campbell@citrix.com>
new file mode 100644 (file)
index 0000000..75f760e
--- /dev/null
@@ -0,0 +1,127 @@
+From xen-devel-bounces@lists.xen.org Fri Jun 01 16:43:45 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 01 Jun 2012 16:43:45 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SaU0n-0004ta-UE
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 01 Jun 2012 16:43:45 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SaTxY-0006f9-J5; Fri, 01 Jun 2012 15:40:16 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1SaTxW-0006eL-CF
+       for xen-devel@lists.xen.org; Fri, 01 Jun 2012 15:40:14 +0000
+Received: from [85.158.138.51:57883] by server-12.bemta-3.messagelabs.com id
+       AF/90-29860-D52E8CF4; Fri, 01 Jun 2012 15:40:13 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-16.tower-174.messagelabs.com!1338565210!27520903!1
+X-Originating-IP: [66.165.176.89]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNDc3NzE=\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 7146 invoked from network); 1 Jun 2012 15:40:12 -0000
+Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
+       by server-16.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
+       1 Jun 2012 15:40:12 -0000
+X-IronPort-AV: E=Sophos;i="4.75,698,1330923600"; d="scan'208";a="26547683"
+Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
+       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       01 Jun 2012 11:40:08 -0400
+Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
+       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
+       Fri, 1 Jun 2012 11:40:08 -0400
+Received: from [10.80.246.74] (helo=army.uk.xensource.com)     by
+       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
+       <ian.campbell@citrix.com>)      id 1SaTxQ-0006I5-55;
+       Fri, 01 Jun 2012 16:40:08 +0100
+From: Ian Campbell <ian.campbell@citrix.com>
+To: xen-devel@lists.xen.org
+Date: Fri, 1 Jun 2012 15:39:38 +0000
+Message-ID: <1338565207-2888-9-git-send-email-ian.campbell@citrix.com>
+X-Mailer: git-send-email 1.7.9.1
+In-Reply-To: <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
+       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+MIME-Version: 1.0
+Cc: Ian Campbell <ian.campbell@citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: [Xen-devel] [PATCH 09/38] arm: print domid as part of debug trap
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+---
+ xen/arch/arm/traps.c |   11 ++++++-----
+ 1 files changed, 6 insertions(+), 5 deletions(-)
+
+diff --git a/xen/arch/arm/traps.c b/xen/arch/arm/traps.c
+index 5d8b7f9..40bb375 100644
+--- a/xen/arch/arm/traps.c
++++ b/xen/arch/arm/traps.c
+@@ -388,25 +388,26 @@ static arm_hypercall_t *arm_hypercall_table[] = {
+ static void do_debug_trap(struct cpu_user_regs *regs, unsigned int code)
+ {
+     uint32_t reg, *r;
+-
++    uint32_t domid = current->domain->domain_id;
+     switch ( code ) {
+     case 0xe0 ... 0xef:
+         reg = code - 0xe0;
+         r = &regs->r0 + reg;
+-        printk("R%d = %#010"PRIx32" at %#010"PRIx32"\n", reg, *r, regs->pc);
++        printk("DOM%d: R%d = %#010"PRIx32" at %#010"PRIx32"\n",
++               domid, reg, *r, regs->pc);
+         break;
+     case 0xfd:
+-        printk("Reached %08"PRIx32"\n", regs->pc);
++        printk("DOM%d: Reached %#010"PRIx32"\n", domid, regs->pc);
+         break;
+     case 0xfe:
+         printk("%c", (char)(regs->r0 & 0xff));
+         break;
+     case 0xff:
+-        printk("DEBUG\n");
++        printk("DOM%d: DEBUG\n", domid);
+         show_execution_state(regs);
+         break;
+     default:
+-        panic("Unhandled debug trap %#x\n", code);
++        panic("DOM%d: Unhandled debug trap %#x\n", domid, code);
+         break;
+     }
+ }
+-- 
+1.7.9.1
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1338569170.1077.36.camel@zakaz.uk.xensource.com> b/config/examples/test/corpus/<1338569170.1077.36.camel@zakaz.uk.xensource.com>
new file mode 100644 (file)
index 0000000..4561135
--- /dev/null
@@ -0,0 +1,105 @@
+From xen-devel-bounces@lists.xen.org Fri Jun 01 17:50:23 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 01 Jun 2012 17:50:23 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SaV3M-0005GI-Gm
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 01 Jun 2012 17:50:23 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SaUzV-0006Ib-6K; Fri, 01 Jun 2012 16:46:21 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1SaUzT-0006IV-DV
+       for xen-devel@lists.xen.org; Fri, 01 Jun 2012 16:46:19 +0000
+Received: from [85.158.143.99:13192] by server-3.bemta-4.messagelabs.com id
+       68/A2-04252-AD1F8CF4; Fri, 01 Jun 2012 16:46:18 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-7.tower-216.messagelabs.com!1338569175!27586796!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDA3ODg=\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 12704 invoked from network); 1 Jun 2012 16:46:15 -0000
+Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-7.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
+       1 Jun 2012 16:46:15 -0000
+X-IronPort-AV: E=Sophos;i="4.75,698,1330905600"; d="scan'208";a="12792530"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       01 Jun 2012 16:46:12 +0000
+Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0; Fri, 1 Jun 2012
+       17:46:12 +0100
+Message-ID: <1338569170.1077.36.camel@zakaz.uk.xensource.com>
+From: Ian Campbell <Ian.Campbell@citrix.com>
+To: xen-devel <xen-devel@lists.xen.org>
+Date: Fri, 1 Jun 2012 17:46:10 +0100
+In-Reply-To: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
+References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
+Organization: Citrix Systems, Inc.
+X-Mailer: Evolution 3.2.2-1 
+MIME-Version: 1.0
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 0/38] arm: boot a dom1 to "Calibrating delay
+ loop" then hang
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Fri, 2012-06-01 at 16:38 +0100, Ian Campbell wrote:
+> I still need to cleanup the Linux side of this, that probably won't
+> happen today and these patches probably don't work without those
+> changes... 
+
+I've pushed my dev tree, which contains several hacks and lots of stuff
+to cleanup, to:
+        git://xenbits.xen.org/people/ianc/linux-2.6.git devel/arm-hacks
+
+It's based of David's[0] vexpress-dt branch + Stefanos's[1]
+vexpress-dt-privcmd branch.
+
+It contains a backport of some old version of Mark Zynger's arch_timers
+stuff, a very hacky XENMAPSPACE_gmfn_foreign, loads of mess around UARTs
+and device tree stuff which make no sense etc etc.
+
+At the moment you need CONFIG_ARM_ARCH_TIMER=y for domU and =n for
+dom0... 
+
+Nobody look too closely ;-)
+
+Ian.
+
+[0] git://xenbits.xen.org/people/dvrabel/linux.git
+[1] git://xenbits.xen.org/people/sstabellini/linux-pvhvm.git
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1338577461.14877.61.camel@dagon.hellion.org.uk> b/config/examples/test/corpus/<1338577461.14877.61.camel@dagon.hellion.org.uk>
new file mode 100644 (file)
index 0000000..311751d
--- /dev/null
@@ -0,0 +1,158 @@
+From xen-devel-bounces@lists.xen.org Fri Jun 01 20:09:31 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 01 Jun 2012 20:09:31 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SaXE0-0005eP-BA
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 01 Jun 2012 20:09:31 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SaX9O-0002CN-0n; Fri, 01 Jun 2012 19:04:42 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1SaX9M-0002CI-3u
+       for xen-devel@lists.xen.org; Fri, 01 Jun 2012 19:04:40 +0000
+Received: from [85.158.139.83:63656] by server-12.bemta-5.messagelabs.com id
+       4C/D2-18374-74219CF4; Fri, 01 Jun 2012 19:04:39 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-13.tower-182.messagelabs.com!1338577478!31094563!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDA3ODg=\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 24540 invoked from network); 1 Jun 2012 19:04:38 -0000
+Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-13.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
+       1 Jun 2012 19:04:38 -0000
+X-IronPort-AV: E=Sophos;i="4.75,698,1330905600"; d="scan'208";a="12793966"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       01 Jun 2012 19:04:22 +0000
+Received: from [127.0.0.1] (10.80.16.67) by smtprelay.citrix.com
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0; Fri, 1 Jun 2012
+       20:04:22 +0100
+Message-ID: <1338577461.14877.61.camel@dagon.hellion.org.uk>
+From: Ian Campbell <Ian.Campbell@citrix.com>
+To: Tim Deegan <tim@xen.org>
+Date: Fri, 1 Jun 2012 20:04:21 +0100
+In-Reply-To: <20120601170514.GD77921@ocelot.phlegethon.org>
+References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
+       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+       <1338565207-2888-29-git-send-email-ian.campbell@citrix.com>
+       <20120601170514.GD77921@ocelot.phlegethon.org>
+Organization: Citrix Systems, Inc.
+X-Mailer: Evolution 3.2.2-1 
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 29/38] arm: delay enabling data-cache until
+ paging enabled.
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Fri, 2012-06-01 at 18:05 +0100, Tim Deegan wrote:
+> At 15:39 +0000 on 01 Jun (1338565198), Ian Campbell wrote:
+> > With enough warnings enabled the model seemed to be complaining that pages
+> > cached before paging was enabled had been mapped with to inconsistent sets of
+> > attributes. I'm not convinced that isn't a model issue, nor am I convinced
+> > this has really fixed anything, but it seems sensible enough.
+> 
+> This might be what breaks secondary CPU bringup: pagetables built by CPU
+> 0 may not have been flushed all the way to RAM when CPU 1 comes up, and
+> CPU 1 isn't participating in cache coherence protocols when it
+> starts to need them.
+
+The issue here is the lack of the necessary flush, rather than this
+change particularly, right?
+
+> OTOH, if that's the case, it's surprising that CPU 1 passes the boot
+> gate.  I'll look into it next week, x86/mm workload permitting. 
+
+Sounds good!
+
+I tried to test SMP yesterday but ut turned out all the models I thought
+were SMP enabled were actual UP Only, not sure how/when that happened!
+
+Cheers,
+Ian.
+
+> 
+> Cheers,
+> 
+> Tim.
+> 
+> > Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+> > ---
+> >  xen/arch/arm/head.S |    9 +++++++--
+> >  1 files changed, 7 insertions(+), 2 deletions(-)
+> > 
+> > diff --git a/xen/arch/arm/head.S b/xen/arch/arm/head.S
+> > index 9a7714a..71197af 100644
+> > --- a/xen/arch/arm/head.S
+> > +++ b/xen/arch/arm/head.S
+> > @@ -148,10 +148,11 @@ hyp:
+> >     * Exceptions in LE ARM,
+> >     * Low-latency IRQs disabled,
+> >     * Write-implies-XN disabled (for now),
+> > -   * I-cache and d-cache enabled,
+> > +   * D-cache diabled (for now),
+> > +   * I-cache enabled,
+> >     * Alignment checking enabled,
+> >     * MMU translation disabled (for now). */
+> > -  ldr   r0, =(HSCTLR_BASE|SCTLR_A|SCTLR_C)
+> > +  ldr   r0, =(HSCTLR_BASE|SCTLR_A)
+> >    mcr   CP32(r0, HSCTLR)
+> >  
+> >    /* Write Xen's PT's paddr into the HTTBR */
+> > @@ -217,6 +218,10 @@ pt_ready:
+> >    mov   pc, r1                 /* Get a proper vaddr into PC */
+> >  paging:
+> >  
+> > +  mrc   CP32(r0, HSCTLR)       /* Now enable data cache */
+> > +  orr   r0, r0, #(SCTLR_C)
+> > +  mcr   CP32(r0, HSCTLR)
+> > +
+> >  #ifdef EARLY_UART_ADDRESS
+> >    /* Recover the UART address in the new address space. */
+> >    lsl   r11, #11
+> > -- 
+> > 1.7.9.1
+> > 
+> > 
+> > _______________________________________________
+> > Xen-devel mailing list
+> > Xen-devel@lists.xen.org
+> > http://lists.xen.org/xen-devel
+
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1338990925.32319.103.camel@zakaz.uk.xensource.com> b/config/examples/test/corpus/<1338990925.32319.103.camel@zakaz.uk.xensource.com>
new file mode 100644 (file)
index 0000000..766891e
--- /dev/null
@@ -0,0 +1,176 @@
+From xen-devel-bounces@lists.xen.org Wed Jun 06 14:59:37 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 06 Jun 2012 14:59:37 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1ScGln-00034e-GB
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 06 Jun 2012 14:59:37 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1ScGhv-0001UN-0w; Wed, 06 Jun 2012 13:55:31 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1ScGht-0001UI-AD
+       for xen-devel@lists.xen.org; Wed, 06 Jun 2012 13:55:29 +0000
+Received: from [85.158.143.99:10417] by server-1.bemta-4.messagelabs.com id
+       0F/7E-10042-0516FCF4; Wed, 06 Jun 2012 13:55:28 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-12.tower-216.messagelabs.com!1338990927!26305160!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDExMjA=\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 5681 invoked from network); 6 Jun 2012 13:55:27 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-12.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
+       6 Jun 2012 13:55:27 -0000
+X-IronPort-AV: E=Sophos;i="4.75,724,1330905600"; d="scan'208";a="12860458"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       06 Jun 2012 13:55:26 +0000
+Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0; Wed, 6 Jun 2012
+       14:55:26 +0100
+Message-ID: <1338990925.32319.103.camel@zakaz.uk.xensource.com>
+From: Ian Campbell <Ian.Campbell@citrix.com>
+To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+Date: Wed, 6 Jun 2012 14:55:25 +0100
+In-Reply-To: <alpine.DEB.2.02.1206061443300.6030@kaball.uk.xensource.com>
+References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
+       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+       <1338565207-2888-8-git-send-email-ian.campbell@citrix.com>
+       <alpine.DEB.2.02.1206061443300.6030@kaball.uk.xensource.com>
+Organization: Citrix Systems, Inc.
+X-Mailer: Evolution 3.2.2-1 
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 08/38] arm: allocate and setup a guest vcpu.
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Wed, 2012-06-06 at 14:46 +0100, Stefano Stabellini wrote:
+> On Fri, 1 Jun 2012, Ian Campbell wrote:
+> > Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+> > ---
+> >  xen/arch/arm/domain.c         |   68 +++++++++++++++++++++++++++++++++++++++++
+> >  xen/arch/arm/dummy.S          |    3 --
+> >  xen/include/public/arch-arm.h |    9 -----
+> >  3 files changed, 68 insertions(+), 12 deletions(-)
+> > 
+> > diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
+> > index 9339a11..62a2f3a 100644
+> > --- a/xen/arch/arm/domain.c
+> > +++ b/xen/arch/arm/domain.c
+> > @@ -144,6 +144,17 @@ void free_vcpu_struct(struct vcpu *v)
+> >      free_xenheap_page(v);
+> >  }
+> >  
+> > +struct vcpu_guest_context *alloc_vcpu_guest_context(void)
+> > +{
+> > +    return xmalloc(struct vcpu_guest_context);
+> > +
+> > +}
+> > +
+> > +void free_vcpu_guest_context(struct vcpu_guest_context *vgc)
+> > +{
+> > +    xfree(vgc);
+> > +}
+> > +
+> >  int vcpu_initialise(struct vcpu *v)
+> >  {
+> >      int rc = 0;
+> > @@ -182,6 +193,9 @@ int arch_domain_create(struct domain *d, unsigned int domcr_flags)
+> >      if ( (rc = p2m_init(d)) != 0 )
+> >          goto fail;
+> >  
+> > +    if ( (rc = domain_vgic_init(d)) != 0 )
+> > +        goto fail;
+> > +
+> 
+> there is a call to domain_vgic_init already in arch_domain_create
+
+So there is!
+
+I notice while checking that a bunch of stuff can/should be pushed under
+the !idle_domain conditional, or better the idle domain case should bail
+early.
+
+> > +int arch_set_info_guest(
+> > +    struct vcpu *v, vcpu_guest_context_u c)
+> > +{
+> > +    struct cpu_user_regs *regs = &c.nat->user_regs;
+> > +
+> > +    if ( !is_guest_psr(regs->cpsr) )
+> > +        return -EINVAL;
+> > +
+> > +    if ( regs->spsr_svc && !is_guest_psr(regs->spsr_svc) )
+> > +        return -EINVAL;
+> > +    if ( regs->spsr_abt && !is_guest_psr(regs->spsr_abt) )
+> > +        return -EINVAL;
+> > +    if ( regs->spsr_und && !is_guest_psr(regs->spsr_und) )
+> > +        return -EINVAL;
+> > +    if ( regs->spsr_irq && !is_guest_psr(regs->spsr_irq) )
+> > +        return -EINVAL;
+> > +    if ( regs->spsr_fiq && !is_guest_psr(regs->spsr_fiq) )
+> > +        return -EINVAL;
+> > +
+> > +    v->arch.cpu_info->guest_cpu_user_regs = *regs;
+> > +
+> > +    /* XXX other state:
+> > +     * - SCTLR
+> > +     * - TTBR0/1
+> > +     * - TTBCR
+> > +     */
+> > +
+> > +    //if ( flags & VGCF_online )
+> > +        clear_bit(_VPF_down, &v->pause_flags);
+> > +    //else
+> > +    //    set_bit(_VPF_down, &v->pause_flags);
+> > +
+> > +    return 0;
+> > +}
+> 
+> Do we really need to add commented out code like this?
+
+Yeah, you're right, I copied from x86 which has this but we haven't
+implemented it for ARM yet. I suppose an XXX would be better. Or maybe I
+should just implement the flags...
+
+> Also arch_set_info_guest could benefit by a couple of lines of comments
+> to explain what it is supposed to do.
+
+I'll add something.
+
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1338993031.32319.107.camel@zakaz.uk.xensource.com> b/config/examples/test/corpus/<1338993031.32319.107.camel@zakaz.uk.xensource.com>
new file mode 100644 (file)
index 0000000..e38d1d6
--- /dev/null
@@ -0,0 +1,230 @@
+From xen-devel-bounces@lists.xen.org Wed Jun 06 15:34:52 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 06 Jun 2012 15:34:52 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1ScHJu-0003FP-Ho
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 06 Jun 2012 15:34:52 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1ScHG2-00036Y-Hx; Wed, 06 Jun 2012 14:30:46 +0000
+Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1ScHG0-00036N-EX
+       for xen-devel@lists.xen.org; Wed, 06 Jun 2012 14:30:44 +0000
+Received: from [193.109.254.147:33953] by server-1.bemta-14.messagelabs.com id
+       01/52-08067-3996FCF4; Wed, 06 Jun 2012 14:30:43 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-6.tower-27.messagelabs.com!1338993033!5144151!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDExMjA=\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 18844 invoked from network); 6 Jun 2012 14:30:33 -0000
+Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-6.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
+       6 Jun 2012 14:30:33 -0000
+X-IronPort-AV: E=Sophos;i="4.75,724,1330905600"; d="scan'208";a="12861353"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       06 Jun 2012 14:30:33 +0000
+Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0; Wed, 6 Jun 2012
+       15:30:33 +0100
+Message-ID: <1338993031.32319.107.camel@zakaz.uk.xensource.com>
+From: Ian Campbell <Ian.Campbell@citrix.com>
+To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+Date: Wed, 6 Jun 2012 15:30:31 +0100
+In-Reply-To: <alpine.DEB.2.02.1206061452530.6030@kaball.uk.xensource.com>
+References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
+       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+       <1338565207-2888-11-git-send-email-ian.campbell@citrix.com>
+       <alpine.DEB.2.02.1206061452530.6030@kaball.uk.xensource.com>
+Organization: Citrix Systems, Inc.
+X-Mailer: Evolution 3.2.2-1 
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 11/38] arm: implement p2m lookup
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Wed, 2012-06-06 at 15:01 +0100, Stefano Stabellini wrote:
+> On Fri, 1 Jun 2012, Ian Campbell wrote:
+> > Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+> > ---
+> >  xen/arch/arm/p2m.c        |   71 ++++++++++++++++++++++++++++++++++++++++++--
+> >  xen/include/asm-arm/p2m.h |    3 ++
+> >  2 files changed, 70 insertions(+), 4 deletions(-)
+> > 
+> > diff --git a/xen/arch/arm/p2m.c b/xen/arch/arm/p2m.c
+> > index 095e608..9b40e93 100644
+> > --- a/xen/arch/arm/p2m.c
+> > +++ b/xen/arch/arm/p2m.c
+> > @@ -10,10 +10,20 @@ void dump_p2m_lookup(struct domain *d, paddr_t addr)
+> >      struct p2m_domain *p2m = &d->arch.p2m;
+> >      lpae_t *first = NULL, *second = NULL, *third = NULL;
+> >  
+> > -    printk("dom%d IPA %#016llx\n", d->domain_id, addr);
+> > +    printk("dom%d IPA %#"PRIpaddr"\n", d->domain_id, addr);
+> > +
+> > +    printk("P2M @ %p mfn:%#lx (%#03llx,%#03llx,%#03llx)\n",
+> > +           p2m->first_level,
+> > +           page_to_mfn(p2m->first_level),
+> > +           first_table_offset(addr),
+> > +           second_table_offset(addr),
+> > +           third_table_offset(addr));
+> > +
+> > +    if ( first_table_offset(addr) >= LPAE_ENTRIES )
+> > +        goto done;
+> >  
+> >      first = __map_domain_page(p2m->first_level);
+> > -    printk("1ST[%#03llx] = %#016llx\n",
+> > +    printk("1ST[%#03llx] = %#"PRIpaddr"\n",
+> >             first_table_offset(addr),
+> >             first[first_table_offset(addr)].bits);
+> >      if ( !first[first_table_offset(addr)].p2m.valid ||
+> > @@ -21,7 +31,7 @@ void dump_p2m_lookup(struct domain *d, paddr_t addr)
+> >          goto done;
+> >  
+> >      second = map_domain_page(first[first_table_offset(addr)].p2m.base);
+> > -    printk("2ND[%#03llx] = %#016llx\n",
+> > +    printk("2ND[%#03llx] = %#"PRIpaddr"\n",
+> >             second_table_offset(addr),
+> >             second[second_table_offset(addr)].bits);
+> >      if ( !second[second_table_offset(addr)].p2m.valid ||
+> > @@ -29,7 +39,7 @@ void dump_p2m_lookup(struct domain *d, paddr_t addr)
+> >          goto done;
+> >  
+> >      third = map_domain_page(second[second_table_offset(addr)].p2m.base);
+> > -    printk("3RD[%#03llx] = %#016llx\n",
+> > +    printk("3RD[%#03llx] = %#"PRIpaddr"\n",
+> >             third_table_offset(addr),
+> >             third[third_table_offset(addr)].bits);
+> >  
+> > @@ -51,6 +61,59 @@ void p2m_load_VTTBR(struct domain *d)
+> >      isb(); /* Ensure update is visible */
+> >  }
+> 
+> there is no need to introduce p2m_lookup in the same patch you do these
+> unrelated printk adjustments, correct?
+> 
+
+Right, I think I've just put them in the wrong patch by mistake, I'll
+figure out what I meant to do ...
+> 
+> > +/*
+> > + * Lookup the MFN corresponding to a domain's PFN.
+> > + *
+> > + * There are no processor functions to do a stage 2 only lookup therefore we
+> > + * do a a software walk.
+> > + */
+> > +paddr_t p2m_lookup(struct domain *d, paddr_t paddr)
+> > +{
+> > +    struct p2m_domain *p2m = &d->arch.p2m;
+> > +    lpae_t pte, *first = NULL, *second = NULL, *third = NULL;
+> > +    paddr_t maddr = INVALID_PADDR;
+> > +
+> > +    spin_lock(&p2m->lock);
+> > +
+> > +    first = __map_domain_page(p2m->first_level);
+> > +    if ( !first[first_table_offset(paddr)].p2m.valid )
+> > +        goto done_err;
+> > +    if ( !first[first_table_offset(paddr)].p2m.table )
+> > +    {
+> > +        pte = first[first_table_offset(paddr)];
+> > +        goto done;
+> > +    }
+> > +
+> > +    second = map_domain_page(first[first_table_offset(paddr)].p2m.base);
+> > +    if ( !second[second_table_offset(paddr)].p2m.valid )
+> > +        goto done_err;
+> > +    if ( !second[second_table_offset(paddr)].p2m.table )
+> > +    {
+> > +        pte = second[second_table_offset(paddr)];
+> > +        goto done;
+> > +    }
+> > +
+> > +    third = map_domain_page(second[second_table_offset(paddr)].p2m.base);
+> > +    if ( !third[third_table_offset(paddr)].p2m.valid )
+> > +        goto done_err;
+> > +    if ( !third[third_table_offset(paddr)].p2m.table )
+> > +        goto done_err;
+> > +
+> > +    pte = third[third_table_offset(paddr)];
+> > +
+> > +done:
+> > +
+> > +    maddr = (pte.bits & PADDR_MASK & PAGE_MASK) | (paddr & ~PAGE_MASK);
+> > +done_err:
+> > +    if (third) unmap_domain_page(third);
+> > +    if (second) unmap_domain_page(second);
+> > +    if (first) unmap_domain_page(first);
+> > +
+> > +    spin_unlock(&p2m->lock);
+> > +
+> > +    return maddr;
+> > +}
+> > +
+> 
+> this function looks correct though
+> 
+> >  int guest_physmap_mark_populate_on_demand(struct domain *d,
+> >                                            unsigned long gfn,
+> >                                            unsigned int order)
+> > diff --git a/xen/include/asm-arm/p2m.h b/xen/include/asm-arm/p2m.h
+> > index 349923a..1afd5cb 100644
+> > --- a/xen/include/asm-arm/p2m.h
+> > +++ b/xen/include/asm-arm/p2m.h
+> > @@ -32,6 +32,9 @@ int p2m_alloc_table(struct domain *d);
+> >  /* */
+> >  void p2m_load_VTTBR(struct domain *d);
+> >  
+> > +/* */
+> > +paddr_t p2m_lookup(struct domain *d, paddr_t gpfn);
+> > +
+> >  /* Setup p2m RAM mapping for domain d from start-end. */
+> >  int p2m_populate_ram(struct domain *d, paddr_t start, paddr_t end);
+> >  /* Map MMIO regions in the p2m: start_gaddr and end_gaddr is the range
+> > -- 
+> > 1.7.9.1
+> > 
+> > 
+> > _______________________________________________
+> > Xen-devel mailing list
+> > Xen-devel@lists.xen.org
+> > http://lists.xen.org/xen-devel
+> > 
+
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1338995969.32319.139.camel@zakaz.uk.xensource.com> b/config/examples/test/corpus/<1338995969.32319.139.camel@zakaz.uk.xensource.com>
new file mode 100644 (file)
index 0000000..21a1d05
--- /dev/null
@@ -0,0 +1,127 @@
+From xen-devel-bounces@lists.xen.org Wed Jun 06 16:23:20 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 06 Jun 2012 16:23:20 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1ScI4o-0003U2-Lc
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 06 Jun 2012 16:23:20 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1ScI1G-0005tt-IP; Wed, 06 Jun 2012 15:19:34 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1ScI1E-0005tk-CM
+       for xen-devel@lists.xen.org; Wed, 06 Jun 2012 15:19:32 +0000
+Received: from [85.158.143.35:49353] by server-2.bemta-4.messagelabs.com id
+       06/82-17938-3057FCF4; Wed, 06 Jun 2012 15:19:31 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-15.tower-21.messagelabs.com!1338995971!14315070!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDExMjA=\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 2511 invoked from network); 6 Jun 2012 15:19:31 -0000
+Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-15.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
+       6 Jun 2012 15:19:31 -0000
+X-IronPort-AV: E=Sophos;i="4.75,724,1330905600"; d="scan'208";a="12862703"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       06 Jun 2012 15:19:31 +0000
+Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0; Wed, 6 Jun 2012
+       16:19:31 +0100
+Message-ID: <1338995969.32319.139.camel@zakaz.uk.xensource.com>
+From: Ian Campbell <Ian.Campbell@citrix.com>
+To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+Date: Wed, 6 Jun 2012 16:19:29 +0100
+In-Reply-To: <alpine.DEB.2.02.1206051810270.6030@kaball.uk.xensource.com>
+References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
+       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+       <1338565207-2888-19-git-send-email-ian.campbell@citrix.com>
+       <alpine.DEB.2.02.1206051810270.6030@kaball.uk.xensource.com>
+Organization: Citrix Systems, Inc.
+X-Mailer: Evolution 3.2.2-1 
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 19/38] arm: context switch a bunch of guest
+ state.
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Tue, 2012-06-05 at 18:11 +0100, Stefano Stabellini wrote:
+> On Fri, 1 Jun 2012, Ian Campbell wrote:
+> > diff --git a/xen/arch/arm/gic.c b/xen/arch/arm/gic.c
+> > index 1a2b95f..339c327 100644
+> > --- a/xen/arch/arm/gic.c
+> > +++ b/xen/arch/arm/gic.c
+> > @@ -61,6 +61,30 @@ static struct {
+> >  irq_desc_t irq_desc[NR_IRQS];
+> >  unsigned nr_lrs;
+> > 
+> > +void gic_save_state(struct vcpu *v)
+> > +{
+> > +    int i;
+> > +
+> > +    for ( i=0; i<nr_lrs; i++)
+> > +        v->arch.gic_lr[i] = GICH[GICH_LR + i];
+> > +    /* Disable until next VCPU scheduled */
+> > +    GICH[GICH_HCR] = 0;
+> > +    isb();
+> > +}
+> > +
+> > +void gic_restore_state(struct vcpu *v)
+> > +{
+> > +    int i;
+> > +
+> > +    if ( is_idle_vcpu(v) )
+> > +        return;
+> > +
+> > +    for ( i=0; i<nr_lrs; i++)
+> > +        GICH[GICH_LR + i] = v->arch.gic_lr[i];
+> > +    GICH[GICH_HCR] = GICH_HCR_EN;
+> > +    isb();
+> > +}
+> > +
+> 
+> it is still missing a bunch of stuff from the gic state but it is a step
+> in the right direction, so I'll send out patches to complete the gic
+> context switch separately, based on this one.
+
+Can I take this as an Ack for this patch for what it does?
+
+Ian.
+
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1338996592.32319.141.camel@zakaz.uk.xensource.com> b/config/examples/test/corpus/<1338996592.32319.141.camel@zakaz.uk.xensource.com>
new file mode 100644 (file)
index 0000000..80d037a
--- /dev/null
@@ -0,0 +1,160 @@
+From xen-devel-bounces@lists.xen.org Wed Jun 06 16:33:28 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 06 Jun 2012 16:33:28 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1ScIEc-0003Wo-6l
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 06 Jun 2012 16:33:27 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1ScIBI-0006Mr-Ot; Wed, 06 Jun 2012 15:29:56 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1ScIBH-0006Me-6E
+       for xen-devel@lists.xen.org; Wed, 06 Jun 2012 15:29:55 +0000
+Received: from [85.158.143.35:48372] by server-1.bemta-4.messagelabs.com id
+       0F/9B-10042-2777FCF4; Wed, 06 Jun 2012 15:29:54 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-2.tower-21.messagelabs.com!1338996593!8150357!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDExMjA=\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 507 invoked from network); 6 Jun 2012 15:29:54 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-2.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
+       6 Jun 2012 15:29:54 -0000
+X-IronPort-AV: E=Sophos;i="4.75,724,1330905600"; d="scan'208";a="12862905"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       06 Jun 2012 15:29:53 +0000
+Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0; Wed, 6 Jun 2012
+       16:29:53 +0100
+Message-ID: <1338996592.32319.141.camel@zakaz.uk.xensource.com>
+From: Ian Campbell <Ian.Campbell@citrix.com>
+To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+Date: Wed, 6 Jun 2012 16:29:52 +0100
+In-Reply-To: <alpine.DEB.2.02.1206061623240.6030@kaball.uk.xensource.com>
+References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
+       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+       <1338565207-2888-14-git-send-email-ian.campbell@citrix.com>
+       <alpine.DEB.2.02.1206061623240.6030@kaball.uk.xensource.com>
+Organization: Citrix Systems, Inc.
+X-Mailer: Evolution 3.2.2-1 
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 14/38] arm: do not set max_vcpus = 8 in
+ arch_domain_create.
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Wed, 2012-06-06 at 16:26 +0100, Stefano Stabellini wrote:
+> On Fri, 1 Jun 2012, Ian Campbell wrote:
+> > XEN_DOMCTL_max_vcpus cannot reduce max_vcpus and therefore we can't create a
+> > smaller guest.
+> > 
+> > The limit of 8 (due to GIC limits) should be expressed elsewhere, likely in
+> > MAX_VIRT_CPUS -- but making that change caused:
+> 
+> Are you sure?
+
+Reasonably.
+
+>  I made that change and I didn't see the error.
+
+Let me try it again.
+
+> I think this patch should set MAX_VIRT_CPUS to 8 as well as removing
+> max_vcpus = 8.
+
+Yes, that would be ideal, but in the interim just removing the max_vcpus
+= 8 is an improvement in its own right if changing MAX_VIRT_CPUS causes
+grief.
+
+Ian.
+> 
+> 
+> >     (XEN) Unexpected Trap: Data Abort
+> >     (XEN) ----[ Xen-4.2-unstable  x86_64  debug=y  Not tainted ]----
+> >     (XEN) CPU:    0
+> >     (XEN) PC:     00222e48 _spin_lock+0x28/0x6c
+> >     (XEN) CPSR:   600001da MODE:HYP
+> >     (XEN)      R0: 002c4389 R1: 800001da R2: 00000001 R3: 0000ffff
+> >     (XEN)      R4: 002c4381 R5: 00000080 R6: 002c4380 R7: 002c4000
+> >     (XEN)      R8: 002c4380 R9: 4000015a R10:00000080 R11:40017d6c R12:00000000
+> >     (XEN)      SP: 40017d5c LR: 00222e34
+> >     (XEN)
+> >     [...]
+> >     (XEN) Xen call trace:
+> >     (XEN)    [<00222e48>] _spin_lock+0x28/0x6c
+> >     (XEN)    [<0022623c>] init_timer+0xbc/0x160
+> >     (XEN)    [<0021fbdc>] sched_init_vcpu+0x94/0x200
+> >     (XEN)    [<002061a4>] alloc_vcpu+0x124/0x210
+> >     (XEN)    [<00204890>] do_domctl+0xaa4/0x14e4
+> >     (XEN)    [<00241ab8>] do_trap_hypervisor+0x588/0x8cc
+> >     (XEN)    [<0023bbb0>] return_from_trap+0x0/0x4
+> > 
+> > so punt on that for now.
+> > 
+> > Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+> > ---
+> >  xen/arch/arm/domain.c |    2 --
+> >  1 files changed, 0 insertions(+), 2 deletions(-)
+> > 
+> > diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
+> > index bd900f9..e867cb2 100644
+> > --- a/xen/arch/arm/domain.c
+> > +++ b/xen/arch/arm/domain.c
+> > @@ -215,8 +215,6 @@ int arch_domain_create(struct domain *d, unsigned int domcr_flags)
+> >              goto fail;
+> >      }
+> >  
+> > -    d->max_vcpus = 8;
+> > -
+> >      if ( (rc = domain_vgic_init(d)) != 0 )
+> >          goto fail;
+> >  
+> > -- 
+> > 1.7.9.1
+> > 
+> > 
+> > _______________________________________________
+> > Xen-devel mailing list
+> > Xen-devel@lists.xen.org
+> > http://lists.xen.org/xen-devel
+> > 
+
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1339061691.15265.49.camel@zakaz.uk.xensource.com> b/config/examples/test/corpus/<1339061691.15265.49.camel@zakaz.uk.xensource.com>
new file mode 100644 (file)
index 0000000..05af6a5
--- /dev/null
@@ -0,0 +1,141 @@
+From xen-devel-bounces@lists.xen.org Thu Jun 07 10:38:20 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 07 Jun 2012 10:38:20 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1ScZAU-0003jL-OK
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 07 Jun 2012 10:38:20 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1ScZ7H-0006tf-Sb; Thu, 07 Jun 2012 09:34:55 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1ScZ7G-0006tQ-DU
+       for xen-devel@lists.xen.org; Thu, 07 Jun 2012 09:34:54 +0000
+Received: from [85.158.143.99:12529] by server-3.bemta-4.messagelabs.com id
+       17/3B-29237-DB570DF4; Thu, 07 Jun 2012 09:34:53 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-11.tower-216.messagelabs.com!1339061692!24175677!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDE0Nzk=\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 5212 invoked from network); 7 Jun 2012 09:34:53 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-11.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
+       7 Jun 2012 09:34:53 -0000
+X-IronPort-AV: E=Sophos;i="4.75,730,1330905600"; d="scan'208";a="12876396"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       07 Jun 2012 09:34:52 +0000
+Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0; Thu, 7 Jun 2012
+       10:34:52 +0100
+Message-ID: <1339061691.15265.49.camel@zakaz.uk.xensource.com>
+From: Ian Campbell <Ian.Campbell@citrix.com>
+To: Tim Deegan <tim@xen.org>
+Date: Thu, 7 Jun 2012 10:34:51 +0100
+In-Reply-To: <20120607092951.GE70339@ocelot.phlegethon.org>
+References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
+       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+       <1338565207-2888-18-git-send-email-ian.campbell@citrix.com>
+       <20120607092951.GE70339@ocelot.phlegethon.org>
+Organization: Citrix Systems, Inc.
+X-Mailer: Evolution 3.2.2-1 
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 18/38] arm: implement vpl011 (UART) emulator.
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Thu, 2012-06-07 at 10:29 +0100, Tim Deegan wrote:
+> > +int domain_uart0_init(struct domain *d)
+> > +{
+> > +    int rc;
+> > +    if ( d->domain_id == 0 )
+> > +        return 0;
+> 
+> Why?  There's no equivalent gate on the MMIO handlers.
+
+dom0 has the actual uart mapped at this address, not the emulated one.
+Maybe that should be written at the caller instead?
+
+> 
+> > +    spin_lock_init(&d->arch.uart0.lock);
+> > +    d->arch.uart0.idx = 0;
+> > +
+> > +    rc = -ENOMEM;
+> > +    d->arch.uart0.buf = xzalloc_array(char, VPL011_BUF_SIZE);
+> > +    if ( !d->arch.uart0.buf )
+> > +        goto out;
+> 
+> Just return ENOMEM here - the 'rc=foo; goto out' is overkill.
+
+ok.
+
+> > +
+> > +    rc = 0;
+> > +out:
+> > +    return rc;
+> > +}
+> 
+> > +static int uart0_mmio_check(struct vcpu *v, paddr_t addr)
+> > +{
+> > +    return v->domain->domain_id && addr >= UART0_BASE_ADDRESS && addr < (UART0_BASE_ADDRESS+65536);
+> > +}
+> 
+> linewrap?
+
+yes, Stefano also suggests a better #define than 65536...
+
+> 
+> > +
+> > +static int uart0_mmio_read(struct vcpu *v, mmio_info_t *info)
+> > +{
+> > +    struct hsr_dabt dabt = info->dabt;
+> > +    struct cpu_user_regs *regs = guest_cpu_user_regs();
+> > +    uint32_t *r = &regs->r0 + dabt.reg;
+> > +    int offset = (int)(info->gpa - UART0_BASE_ADDRESS);
+> > +
+> 
+> Need to check dabt.size != 0 here too?
+
+IIRC I was seeing reads of different sizes. To be honest I mostly
+tailored this for the specific behaviour of the Linux decompression
+code, it didn't really want to write a full & correct UART emulation...
+
+Ian.
+
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1339062030.15265.53.camel@zakaz.uk.xensource.com> b/config/examples/test/corpus/<1339062030.15265.53.camel@zakaz.uk.xensource.com>
new file mode 100644 (file)
index 0000000..8a44e1a
--- /dev/null
@@ -0,0 +1,172 @@
+From xen-devel-bounces@lists.xen.org Thu Jun 07 10:44:00 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 07 Jun 2012 10:44:00 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1ScZFy-0003ki-6b
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 07 Jun 2012 10:44:00 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1ScZCm-0007r2-Jb; Thu, 07 Jun 2012 09:40:36 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1ScZCl-0007qk-2Q
+       for xen-devel@lists.xen.org; Thu, 07 Jun 2012 09:40:35 +0000
+Received: from [85.158.143.99:14529] by server-1.bemta-4.messagelabs.com id
+       74/1B-10042-21770DF4; Thu, 07 Jun 2012 09:40:34 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-15.tower-216.messagelabs.com!1339062032!31695791!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDE0Nzk=\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 10698 invoked from network); 7 Jun 2012 09:40:33 -0000
+Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-15.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
+       7 Jun 2012 09:40:33 -0000
+X-IronPort-AV: E=Sophos;i="4.75,730,1330905600"; d="scan'208";a="12876548"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       07 Jun 2012 09:40:32 +0000
+Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0; Thu, 7 Jun 2012
+       10:40:32 +0100
+Message-ID: <1339062030.15265.53.camel@zakaz.uk.xensource.com>
+From: Ian Campbell <Ian.Campbell@citrix.com>
+To: Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+Date: Thu, 7 Jun 2012 10:40:30 +0100
+In-Reply-To: <1338990925.32319.103.camel@zakaz.uk.xensource.com>
+References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
+       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+       <1338565207-2888-8-git-send-email-ian.campbell@citrix.com>
+       <alpine.DEB.2.02.1206061443300.6030@kaball.uk.xensource.com>
+       <1338990925.32319.103.camel@zakaz.uk.xensource.com>
+Organization: Citrix Systems, Inc.
+X-Mailer: Evolution 3.2.2-1 
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 08/38] arm: allocate and setup a guest vcpu.
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Wed, 2012-06-06 at 14:55 +0100, Ian Campbell wrote:
+> On Wed, 2012-06-06 at 14:46 +0100, Stefano Stabellini wrote:
+> > On Fri, 1 Jun 2012, Ian Campbell wrote:
+> > > Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+> > > ---
+> > >  xen/arch/arm/domain.c         |   68 +++++++++++++++++++++++++++++++++++++++++
+> > >  xen/arch/arm/dummy.S          |    3 --
+> > >  xen/include/public/arch-arm.h |    9 -----
+> > >  3 files changed, 68 insertions(+), 12 deletions(-)
+> > > 
+> > > diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
+> > > index 9339a11..62a2f3a 100644
+> > > --- a/xen/arch/arm/domain.c
+> > > +++ b/xen/arch/arm/domain.c
+> > > @@ -144,6 +144,17 @@ void free_vcpu_struct(struct vcpu *v)
+> > >      free_xenheap_page(v);
+> > >  }
+> > >  
+> > > +struct vcpu_guest_context *alloc_vcpu_guest_context(void)
+> > > +{
+> > > +    return xmalloc(struct vcpu_guest_context);
+> > > +
+> > > +}
+> > > +
+> > > +void free_vcpu_guest_context(struct vcpu_guest_context *vgc)
+> > > +{
+> > > +    xfree(vgc);
+> > > +}
+> > > +
+> > >  int vcpu_initialise(struct vcpu *v)
+> > >  {
+> > >      int rc = 0;
+> > > @@ -182,6 +193,9 @@ int arch_domain_create(struct domain *d, unsigned int domcr_flags)
+> > >      if ( (rc = p2m_init(d)) != 0 )
+> > >          goto fail;
+> > >  
+> > > +    if ( (rc = domain_vgic_init(d)) != 0 )
+> > > +        goto fail;
+> > > +
+> > 
+> > there is a call to domain_vgic_init already in arch_domain_create
+> 
+> So there is!
+
+Rather inexplicably removing either one of those two domain_vgic_init
+calls causes:
+        (XEN) Unexpected Trap: Data Abort
+        (XEN) ----[ Xen-4.2-unstable  x86_64  debug=y  Not tainted ]----
+        (XEN) CPU:    0
+        (XEN) PC:     00222e7c _spin_lock+0x28/0x6c
+        (XEN) CPSR:   600001da MODE:HYP
+        (XEN)      R0: 002c4389 R1: 800001da R2: 00000001 R3: 0000ffff
+        (XEN)      R4: 002c4381 R5: 00000080 R6: 002c4380 R7: 002c4000
+        (XEN)      R8: 002c4380 R9: 4000015a R10:00000080 R11:40017d6c R12:00000000
+        (XEN)      SP: 40017d5c LR: 00222e68
+        (XEN) 
+        (XEN) HTTBR ffec1000
+        (XEN) HDFAR 2c4381
+        (XEN) HIFAR 0
+        (XEN) HPFAR 0
+        (XEN) HCR 00000835
+        (XEN) HSR   94000021
+        (XEN) 
+        (XEN) DFSR 817 DFAR 134bc
+        (XEN) IFSR 7 IFAR 4024c224
+        (XEN) 
+        (XEN) Xen stack trace from sp=40017d5c:
+        [...]
+        (XEN) Xen call trace:
+        (XEN)    [<00222e7c>] _spin_lock+0x28/0x6c
+        (XEN)    [<00226270>] init_timer+0xbc/0x160
+        (XEN)    [<0021fc14>] sched_init_vcpu+0x94/0x200
+        (XEN)    [<002061a4>] alloc_vcpu+0x124/0x210
+        (XEN)    [<00204890>] do_domctl+0xaa4/0x14e4
+        (XEN)    [<00241aec>] do_trap_hypervisor+0x588/0x8cc
+        (XEN)    [<0023bbf0>] return_from_trap+0x0/0x4
+
+I'm totally at a loss to explain that. domain_vgic_init allocates two
+arrays so it is possible we have some sort of overrun error, although I
+can't for the life of me see it in there (it could be elsewhere though).
+
+As an experiment I tried doubling the size of both allocations in that
+function (and calling it once) but that didn't help so no hints from
+that...
+
+More head scratching required I think!
+
+Ian.
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1339068947.18523.10.camel@zakaz.uk.xensource.com> b/config/examples/test/corpus/<1339068947.18523.10.camel@zakaz.uk.xensource.com>
new file mode 100644 (file)
index 0000000..9db5085
--- /dev/null
@@ -0,0 +1,235 @@
+From xen-devel-bounces@lists.xen.org Thu Jun 07 12:39:45 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 07 Jun 2012 12:39:45 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1Scb3z-0004GP-Ht
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 07 Jun 2012 12:39:45 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1Scb0K-0006R5-Kw; Thu, 07 Jun 2012 11:35:52 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1Scb0I-0006Qq-Uw
+       for xen-devel@lists.xen.org; Thu, 07 Jun 2012 11:35:51 +0000
+Received: from [85.158.143.99:55928] by server-1.bemta-4.messagelabs.com id
+       CA/57-10042-61290DF4; Thu, 07 Jun 2012 11:35:50 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-11.tower-216.messagelabs.com!1339068948!24200794!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDE0Nzk=\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 27336 invoked from network); 7 Jun 2012 11:35:49 -0000
+Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-11.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
+       7 Jun 2012 11:35:49 -0000
+X-IronPort-AV: E=Sophos;i="4.75,730,1330905600"; d="scan'208";a="12879343"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       07 Jun 2012 11:35:48 +0000
+Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0; Thu, 7 Jun 2012
+       12:35:48 +0100
+Message-ID: <1339068947.18523.10.camel@zakaz.uk.xensource.com>
+From: Ian Campbell <Ian.Campbell@citrix.com>
+To: Tim Deegan <tim@xen.org>, Keir Fraser <keir@xen.org>
+Date: Thu, 7 Jun 2012 12:35:47 +0100
+In-Reply-To: <20120607090808.GD70339@ocelot.phlegethon.org>
+References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
+       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+       <1338565207-2888-16-git-send-email-ian.campbell@citrix.com>
+       <20120607090808.GD70339@ocelot.phlegethon.org>
+Organization: Citrix Systems, Inc.
+X-Mailer: Evolution 3.2.2-1 
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 16/38] arm: Add simple cpu_{sibling,
+ core}_mask
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+(Keir, this slightly touches common code...)
+
+On Thu, 2012-06-07 at 10:08 +0100, Tim Deegan wrote:
+> At 15:39 +0000 on 01 Jun (1338565185), Ian Campbell wrote:
+> > @@ -230,6 +230,13 @@ void __init start_xen(unsigned long boot_phys_offset,
+> >          }
+> >      }
+> >  
+> > +    if ( !zalloc_cpumask_var(&per_cpu(cpu_sibling_mask, 0)) ||
+> > +         !zalloc_cpumask_var(&per_cpu(cpu_core_mask, 0)) )
+> > +        BUG();
+> > +
+> > +    cpumask_clear(per_cpu(cpu_sibling_mask, 0));
+> > +    cpumask_clear(per_cpu(cpu_core_mask, 0));
+> 
+> Aren't these clear()s noops?  
+
+Yes, they were also incorrect since a CPU is it's own sibling and shares
+a core with itself. Otherwise all manner of weirdness ensues (see commit
+message). These also need to be setup on all CPUs.
+
+I replaced this patch with the following.
+
+Ian.
+
+8<------------------------------------------------------
+
+>From e980ca1ec9bf92b2f1255ac5222b1da1292f9f72 Mon Sep 17 00:00:00 2001
+From: Ian Campbell <ian.campbell@citrix.com>
+Date: Mon, 14 May 2012 12:25:31 +0100
+Subject: [PATCH] arm: Add simple cpu_{sibling,core}_mask
+
+This needs to be done for all cpus. The allocations require smp_prepare_cpus
+to be called a bit later on.
+
+In a previous version of this patch these maps were being zeroed (instead of
+setting the CPU itself in them). This in turn causes cpumask_first to return
+NR_CPUS, which in turn was causing default_vcpu0_location to misbehave and
+read off the end of its cnt array. Add a couple of asserts to catch this in
+the future.
+
+Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+---
+ xen/arch/arm/dummy.S   |    2 --
+ xen/arch/arm/setup.c   |    4 ++--
+ xen/arch/arm/smpboot.c |   21 +++++++++++++++++++++
+ xen/common/domctl.c    |    2 ++
+ 4 files changed, 25 insertions(+), 4 deletions(-)
+
+diff --git a/xen/arch/arm/dummy.S b/xen/arch/arm/dummy.S
+index c001e8d..03f7489 100644
+--- a/xen/arch/arm/dummy.S
++++ b/xen/arch/arm/dummy.S
+@@ -7,8 +7,6 @@ x:     .word 0xe7f000f0 /* Undefined instruction */
+ x:    mov pc, lr
+       
+ /* SMP support */
+-DUMMY(per_cpu__cpu_core_mask);
+-DUMMY(per_cpu__cpu_sibling_mask);
+ DUMMY(node_online_map);
+ DUMMY(smp_send_state_dump);
+diff --git a/xen/arch/arm/setup.c b/xen/arch/arm/setup.c
+index 81ababb..d6c0178 100644
+--- a/xen/arch/arm/setup.c
++++ b/xen/arch/arm/setup.c
+@@ -173,8 +173,6 @@ void __init start_xen(unsigned long boot_phys_offset,
+     set_current((struct vcpu *)0xfffff000); /* debug sanity */
+     idle_vcpu[0] = current;
+-    smp_prepare_cpus(cpus);
+-
+     init_xen_time();
+     setup_mm(atag_paddr, fdt_size);
+@@ -214,6 +212,8 @@ void __init start_xen(unsigned long boot_phys_offset,
+     local_irq_enable();
++    smp_prepare_cpus(cpus);
++
+     initialize_keytable();
+     console_init_postirq();
+diff --git a/xen/arch/arm/smpboot.c b/xen/arch/arm/smpboot.c
+index ea05afc..6463a8d 100644
+--- a/xen/arch/arm/smpboot.c
++++ b/xen/arch/arm/smpboot.c
+@@ -52,6 +52,23 @@ unsigned long __initdata ready_cpus = 0;
+ /* ID of the PCPU we're running on */
+ DEFINE_PER_CPU(unsigned int, cpu_id);
++/* XXX these seem awfully x86ish... */
++/* representing HT siblings of each logical CPU */
++DEFINE_PER_CPU_READ_MOSTLY(cpumask_var_t, cpu_sibling_mask);
++/* representing HT and core siblings of each logical CPU */
++DEFINE_PER_CPU_READ_MOSTLY(cpumask_var_t, cpu_core_mask);
++
++static void setup_cpu_sibling_map(int cpu)
++{
++    if ( !zalloc_cpumask_var(&per_cpu(cpu_sibling_mask, cpu)) ||
++         !zalloc_cpumask_var(&per_cpu(cpu_core_mask, cpu)) )
++        panic("No memory for CPU sibling/core maps\n");
++
++    /* A CPU is a sibling with itself and is always on its own core. */
++    cpumask_set_cpu(cpu, per_cpu(cpu_sibling_mask, cpu));
++    cpumask_set_cpu(cpu, per_cpu(cpu_core_mask, cpu));
++}
++
+ void __init
+ smp_prepare_cpus (unsigned int max_cpus)
+@@ -65,6 +82,8 @@ smp_prepare_cpus (unsigned int max_cpus)
+     for ( i = 0; i < max_cpus; i++ )
+         cpumask_set_cpu(i, &cpu_possible_map);
+     cpumask_copy(&cpu_present_map, &cpu_possible_map);
++
++    setup_cpu_sibling_map(0);
+ }
+ void __init
+@@ -115,6 +134,8 @@ void __cpuinit start_secondary(unsigned long boot_phys_offset,
+     set_current(idle_vcpu[cpuid]);
++    setup_cpu_sibling_map(cpuid);
++
+     /* Run local notifiers */
+     notify_cpu_starting(cpuid);
+     wmb();
+diff --git a/xen/common/domctl.c b/xen/common/domctl.c
+index 9f1a9ad..c1acd1d 100644
+--- a/xen/common/domctl.c
++++ b/xen/common/domctl.c
+@@ -190,10 +190,12 @@ static unsigned int default_vcpu0_location(cpumask_t *online)
+      */
+     cpumask_copy(&cpu_exclude_map, per_cpu(cpu_sibling_mask, 0));
+     cpu = cpumask_first(&cpu_exclude_map);
++    ASSERT(cpu < nr_cpus);
+     if ( cpumask_weight(&cpu_exclude_map) > 1 )
+         cpu = cpumask_next(cpu, &cpu_exclude_map);
+     for_each_cpu(i, online)
+     {
++        ASSERT(i < nr_cpus);
+         if ( cpumask_test_cpu(i, &cpu_exclude_map) )
+             continue;
+         if ( (i == cpumask_first(per_cpu(cpu_sibling_mask, i))) &&
+-- 
+1.7.9.1
+
+
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1339070260.18523.14.camel@zakaz.uk.xensource.com> b/config/examples/test/corpus/<1339070260.18523.14.camel@zakaz.uk.xensource.com>
new file mode 100644 (file)
index 0000000..ef72433
--- /dev/null
@@ -0,0 +1,184 @@
+From xen-devel-bounces@lists.xen.org Thu Jun 07 13:02:07 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 07 Jun 2012 13:02:07 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1ScbPd-0004LP-9s
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 07 Jun 2012 13:02:07 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1ScbLW-0007an-8o; Thu, 07 Jun 2012 11:57:46 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1ScbLU-0007ai-8J
+       for xen-devel@lists.xen.org; Thu, 07 Jun 2012 11:57:44 +0000
+Received: from [85.158.143.35:24306] by server-2.bemta-4.messagelabs.com id
+       25/4A-17938-73790DF4; Thu, 07 Jun 2012 11:57:43 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-14.tower-21.messagelabs.com!1339070262!19281735!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDE0Nzk=\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 14503 invoked from network); 7 Jun 2012 11:57:43 -0000
+Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-14.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
+       7 Jun 2012 11:57:43 -0000
+X-IronPort-AV: E=Sophos;i="4.75,730,1330905600"; d="scan'208";a="12879769"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       07 Jun 2012 11:57:42 +0000
+Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0; Thu, 7 Jun 2012
+       12:57:41 +0100
+Message-ID: <1339070260.18523.14.camel@zakaz.uk.xensource.com>
+From: Ian Campbell <Ian.Campbell@citrix.com>
+To: Tim Deegan <tim@xen.org>
+Date: Thu, 7 Jun 2012 12:57:40 +0100
+In-Reply-To: <20120607084517.GA70339@ocelot.phlegethon.org>
+References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
+       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+       <1338565207-2888-2-git-send-email-ian.campbell@citrix.com>
+       <20120607084517.GA70339@ocelot.phlegethon.org>
+Organization: Citrix Systems, Inc.
+X-Mailer: Evolution 3.2.2-1 
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 02/38] arm: handy function to print a walk
+ of the hypervisor page tables
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Thu, 2012-06-07 at 09:45 +0100, Tim Deegan wrote:
+> Hi,
+> 
+> At 15:39 +0000 on 01 Jun (1338565171), Ian Campbell wrote:
+> > +void dump_pt_walk(uint32_t addr)
+> > +{
+> > +    paddr_t second_ma, third_ma;
+> > +    lpae_t *first = NULL, *second = NULL, *third = NULL;
+> > +    uint64_t httbr = READ_CP64(HTTBR);
+> > +
+> > +    printk("Walking Hypervisor VA %#"PRIx32" via HTTBR %#"PRIx64"\n",
+> > +           addr, httbr);
+> > +
+> > +    BUG_ON( (lpae_t *)(unsigned long)(httbr - xen_phys_offset) != xen_pgtable );
+> > +    first = xen_pgtable;
+> > +    printk("1ST[%#03"PRIx32"] = %p[%#03"PRIx32"] = %#llx = %#016llx\n",
+> > +           first_table_offset(addr),
+> > +           first, first_table_offset(addr),
+> > +           virt_to_maddr(&first[first_table_offset(addr)]),
+> > +           first[first_table_offset(addr)].bits);
+> > +
+> > +    if ( !first[first_table_offset(addr)].pt.valid ||
+> > +         !first[first_table_offset(addr)].pt.table )
+> > +        goto done;
+> 
+> This could probably be a for loop rather than open-coding three
+> almost-identical printks.
+
+The *_table_offsets macro names are different at each stage, I suppose I
+could open code the equivalent shifts, but I'd rather keep using the
+access macros.
+
+> > +
+> > +    second_ma = (paddr_t)first[first_table_offset(addr)].pt.base << PAGE_SHIFT;
+> > +    second = (lpae_t *)(unsigned long)(second_ma - xen_phys_offset);
+> > +    printk("2ND[%#03"PRIx32"] = %p[%#03"PRIx32"] = %#llx = %#016llx\n",
+> > +           second_table_offset(addr),
+> > +           second, second_table_offset(addr),
+> > +           virt_to_maddr(&second[second_table_offset(addr)]),
+> > +           second[second_table_offset(addr)].bits);
+> > +    if ( !second[second_table_offset(addr)].pt.valid ||
+> > +         !second[second_table_offset(addr)].pt.table )
+> > +        goto done;
+> > +
+> > +    third_ma = (paddr_t)second[second_table_offset(addr)].pt.base << PAGE_SHIFT;
+> > +    third = (lpae_t *)(unsigned long)(third_ma - xen_phys_offset);
+> > +    printk("3RD[%#03"PRIx32"] = %p[%#03"PRIx32"] = %#llx = %#016llx\n",
+> > +           third_table_offset(addr),
+> > +           third, third_table_offset(addr),
+> > +           virt_to_maddr(&third[third_table_offset(addr)]),
+> > +           third[third_table_offset(addr)].bits);
+> > +    if ( !third[third_table_offset(addr)].pt.valid ||
+> > +         !third[third_table_offset(addr)].pt.table )
+> > +        goto done;
+> > +
+> > +done:
+> > +    return;
+> 
+> Maybe use return above instead of goto?
+
+Yes, good idea.
+
+> 
+> > +}
+> > +
+> >  /* Map a 4k page in a fixmap entry */
+> >  void set_fixmap(unsigned map, unsigned long mfn, unsigned attributes)
+> >  {
+> > @@ -173,8 +222,8 @@ void __init setup_pagetables(unsigned long boot_phys_offset)
+> >      flush_xen_data_tlb_va(dest_va);
+> >  
+> >      /* Calculate virt-to-phys offset for the new location */
+> > -    phys_offset = xen_paddr - (unsigned long) _start;
+> > -
+> > +    xen_phys_offset = phys_offset = xen_paddr - (unsigned long) _start;
+> > +    
+> 
+> Just make phys_offset file-scope static; no need to add a new variable
+> for this.
+
+Will do.
+
+> 
+> >      /* Copy */
+> >      memcpy((void *) dest_va, _start, _end - _start);
+> >  
+> > diff --git a/xen/include/asm-arm/page.h b/xen/include/asm-arm/page.h
+> > index b6df64e..22c56b5 100644
+> > --- a/xen/include/asm-arm/page.h
+> > +++ b/xen/include/asm-arm/page.h
+> > @@ -312,6 +312,8 @@ static inline uint64_t gva_to_ipa(uint32_t va)
+> >  /* Bits in the PAR returned by va_to_par */
+> >  #define PAR_FAULT 0x1
+> >  
+> > +extern void dump_pt_walk(uint32_t addr);
+> > +
+> 
+> Maybe a comment?
+
+Yes, good idea.
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1339070809.18523.15.camel@zakaz.uk.xensource.com> b/config/examples/test/corpus/<1339070809.18523.15.camel@zakaz.uk.xensource.com>
new file mode 100644 (file)
index 0000000..7dfd4c6
--- /dev/null
@@ -0,0 +1,94 @@
+From xen-devel-bounces@lists.xen.org Thu Jun 07 13:11:39 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 07 Jun 2012 13:11:39 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1ScbYr-0004MJ-GB
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 07 Jun 2012 13:11:39 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1ScbUk-00085x-0k; Thu, 07 Jun 2012 12:07:18 +0000
+Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1ScbUi-00085s-MA
+       for xen-devel@lists.xen.org; Thu, 07 Jun 2012 12:07:16 +0000
+Received: from [193.109.254.147:37036] by server-7.bemta-14.messagelabs.com id
+       C4/3F-29165-37990DF4; Thu, 07 Jun 2012 12:07:15 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-4.tower-27.messagelabs.com!1339070820!8545175!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDE0Nzk=\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 24374 invoked from network); 7 Jun 2012 12:07:00 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-4.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
+       7 Jun 2012 12:07:00 -0000
+X-IronPort-AV: E=Sophos;i="4.75,731,1330905600"; d="scan'208";a="12879989"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       07 Jun 2012 12:06:50 +0000
+Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0; Thu, 7 Jun 2012
+       13:06:50 +0100
+Message-ID: <1339070809.18523.15.camel@zakaz.uk.xensource.com>
+From: Ian Campbell <Ian.Campbell@citrix.com>
+To: Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+Date: Thu, 7 Jun 2012 13:06:49 +0100
+In-Reply-To: <alpine.DEB.2.02.1206071239250.2415@kaball.uk.xensource.com>
+References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
+       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+       <1338565207-2888-37-git-send-email-ian.campbell@citrix.com>
+       <alpine.DEB.2.02.1206071239250.2415@kaball.uk.xensource.com>
+Organization: Citrix Systems, Inc.
+X-Mailer: Evolution 3.2.2-1 
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 37/38] HACK: add simple xcbuild
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Thu, 2012-06-07 at 12:42 +0100, Stefano Stabellini wrote:
+> It is OK but I would remove the commented out code and add a very basic
+> arguments check.
+
+Thanks, but this one was just for testing etc rather than commit
+
+In general the things with HACK in them were just for illustration and
+or to allow you to exercise the non-HACK patches.
+
+Ian.
+
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1339072005.18523.18.camel@zakaz.uk.xensource.com> b/config/examples/test/corpus/<1339072005.18523.18.camel@zakaz.uk.xensource.com>
new file mode 100644 (file)
index 0000000..8315893
--- /dev/null
@@ -0,0 +1,145 @@
+From xen-devel-bounces@lists.xen.org Thu Jun 07 13:31:40 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 07 Jun 2012 13:31:40 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1ScbsH-0004Pe-OA
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 07 Jun 2012 13:31:40 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1Scbo0-0008GQ-TP; Thu, 07 Jun 2012 12:27:12 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1Scbny-0008GL-PZ
+       for xen-devel@lists.xen.org; Thu, 07 Jun 2012 12:27:11 +0000
+Received: from [85.158.138.51:49065] by server-6.bemta-3.messagelabs.com id
+       E0/A0-05063-E1E90DF4; Thu, 07 Jun 2012 12:27:10 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-2.tower-174.messagelabs.com!1339072029!31289214!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDE0Nzk=\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 28679 invoked from network); 7 Jun 2012 12:27:09 -0000
+Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-2.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
+       7 Jun 2012 12:27:09 -0000
+X-IronPort-AV: E=Sophos;i="4.75,731,1330905600"; d="scan'208";a="12880511"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       07 Jun 2012 12:26:46 +0000
+Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0; Thu, 7 Jun 2012
+       13:26:46 +0100
+Message-ID: <1339072005.18523.18.camel@zakaz.uk.xensource.com>
+From: Ian Campbell <Ian.Campbell@citrix.com>
+To: Tim Deegan <tim@xen.org>
+Date: Thu, 7 Jun 2012 13:26:45 +0100
+In-Reply-To: <20120607084917.GB70339@ocelot.phlegethon.org>
+References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
+       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+       <1338565207-2888-3-git-send-email-ian.campbell@citrix.com>
+       <20120607084917.GB70339@ocelot.phlegethon.org>
+Organization: Citrix Systems, Inc.
+X-Mailer: Evolution 3.2.2-1 
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 03/38] arm: handy function to print a walk
+ of a domain's p2m.
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Thu, 2012-06-07 at 09:49 +0100, Tim Deegan wrote:
+> At 15:39 +0000 on 01 Jun (1338565172), Ian Campbell wrote:
+> > Useful for debug but not actually used in this patch.
+> > 
+> > Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+> > ---
+> >  xen/arch/arm/p2m.c         |   34 ++++++++++++++++++++++++++++++++++
+> >  xen/include/asm-arm/page.h |    1 +
+> >  2 files changed, 35 insertions(+), 0 deletions(-)
+> > 
+> > diff --git a/xen/arch/arm/p2m.c b/xen/arch/arm/p2m.c
+> > index 4f624d8..fdbecbc 100644
+> > --- a/xen/arch/arm/p2m.c
+> > +++ b/xen/arch/arm/p2m.c
+> > @@ -5,6 +5,40 @@
+> >  #include <xen/domain_page.h>
+> >  #include <asm/flushtlb.h>
+> >  
+> > +void dump_p2m_lookup(struct domain *d, paddr_t addr)
+> > +{
+> > +    struct p2m_domain *p2m = &d->arch.p2m;
+> > +    lpae_t *first = NULL, *second = NULL, *third = NULL;
+> > +
+> > +    printk("dom%d IPA %#016llx\n", d->domain_id, addr);
+> > +
+> > +    first = __map_domain_page(p2m->first_level);
+> > +    printk("1ST[%#03llx] = %#016llx\n",
+> > +           first_table_offset(addr),
+> > +           first[first_table_offset(addr)].bits);
+> > +    if ( !first[first_table_offset(addr)].p2m.valid ||
+> > +         !first[first_table_offset(addr)].p2m.table )
+> > +        goto done;
+> > +
+> > +    second = map_domain_page(first[first_table_offset(addr)].p2m.base);
+> > +    printk("2ND[%#03llx] = %#016llx\n",
+> > +           second_table_offset(addr),
+> > +           second[second_table_offset(addr)].bits);
+> > +    if ( !second[second_table_offset(addr)].p2m.valid ||
+> > +         !second[second_table_offset(addr)].p2m.table )
+> > +        goto done;
+> > +
+> > +    third = map_domain_page(second[second_table_offset(addr)].p2m.base);
+> > +    printk("3RD[%#03llx] = %#016llx\n",
+> > +           third_table_offset(addr),
+> > +           third[third_table_offset(addr)].bits);
+> > +
+> > +done:
+> > +    if (third) unmap_domain_page(third);
+> > +    if (second) unmap_domain_page(second);
+> > +    if (first) unmap_domain_page(first);
+> > +}
+> 
+> Can this be unified with dump_pt_walk?
+
+Not all that easily, mainly because dump_pt_walk walks xenheap pages
+(which don't need mapping) while dump_p2m_walk dumps domheap pages
+(which need mapping as we go). I probably could write something generic
+enough but I fear that it would be a mass of if's.
+
+Ian.
+
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1339077263.18523.19.camel@zakaz.uk.xensource.com> b/config/examples/test/corpus/<1339077263.18523.19.camel@zakaz.uk.xensource.com>
new file mode 100644 (file)
index 0000000..dc9d1fc
--- /dev/null
@@ -0,0 +1,155 @@
+From xen-devel-bounces@lists.xen.org Thu Jun 07 14:57:54 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 07 Jun 2012 14:57:54 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1ScdDk-0004oF-9L
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 07 Jun 2012 14:57:54 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1ScdAR-00038W-ML; Thu, 07 Jun 2012 13:54:27 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1ScdAQ-00038N-9z
+       for xen-devel@lists.xen.org; Thu, 07 Jun 2012 13:54:26 +0000
+Received: from [85.158.143.35:22376] by server-2.bemta-4.messagelabs.com id
+       C0/1B-17938-192B0DF4; Thu, 07 Jun 2012 13:54:25 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-5.tower-21.messagelabs.com!1339077264!7520987!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDE0Nzk=\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 10958 invoked from network); 7 Jun 2012 13:54:25 -0000
+Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-5.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
+       7 Jun 2012 13:54:25 -0000
+X-IronPort-AV: E=Sophos;i="4.75,731,1330905600"; d="scan'208";a="12885370"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       07 Jun 2012 13:54:24 +0000
+Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0; Thu, 7 Jun 2012
+       14:54:24 +0100
+Message-ID: <1339077263.18523.19.camel@zakaz.uk.xensource.com>
+From: Ian Campbell <Ian.Campbell@citrix.com>
+To: Tim Deegan <tim@xen.org>
+Date: Thu, 7 Jun 2012 14:54:23 +0100
+In-Reply-To: <20120607124033.GS70339@ocelot.phlegethon.org>
+References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
+       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+       <1338565207-2888-3-git-send-email-ian.campbell@citrix.com>
+       <20120607084917.GB70339@ocelot.phlegethon.org>
+       <1339072005.18523.18.camel@zakaz.uk.xensource.com>
+       <20120607124033.GS70339@ocelot.phlegethon.org>
+Organization: Citrix Systems, Inc.
+X-Mailer: Evolution 3.2.2-1 
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 03/38] arm: handy function to print a walk
+ of a domain's p2m.
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Thu, 2012-06-07 at 13:40 +0100, Tim Deegan wrote:
+> At 13:26 +0100 on 07 Jun (1339075605), Ian Campbell wrote:
+> > On Thu, 2012-06-07 at 09:49 +0100, Tim Deegan wrote:
+> > > At 15:39 +0000 on 01 Jun (1338565172), Ian Campbell wrote:
+> > > > Useful for debug but not actually used in this patch.
+> > > > 
+> > > > Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+> > > > ---
+> > > >  xen/arch/arm/p2m.c         |   34 ++++++++++++++++++++++++++++++++++
+> > > >  xen/include/asm-arm/page.h |    1 +
+> > > >  2 files changed, 35 insertions(+), 0 deletions(-)
+> > > > 
+> > > > diff --git a/xen/arch/arm/p2m.c b/xen/arch/arm/p2m.c
+> > > > index 4f624d8..fdbecbc 100644
+> > > > --- a/xen/arch/arm/p2m.c
+> > > > +++ b/xen/arch/arm/p2m.c
+> > > > @@ -5,6 +5,40 @@
+> > > >  #include <xen/domain_page.h>
+> > > >  #include <asm/flushtlb.h>
+> > > >  
+> > > > +void dump_p2m_lookup(struct domain *d, paddr_t addr)
+> > > > +{
+> > > > +    struct p2m_domain *p2m = &d->arch.p2m;
+> > > > +    lpae_t *first = NULL, *second = NULL, *third = NULL;
+> > > > +
+> > > > +    printk("dom%d IPA %#016llx\n", d->domain_id, addr);
+> > > > +
+> > > > +    first = __map_domain_page(p2m->first_level);
+> > > > +    printk("1ST[%#03llx] = %#016llx\n",
+> > > > +           first_table_offset(addr),
+> > > > +           first[first_table_offset(addr)].bits);
+> > > > +    if ( !first[first_table_offset(addr)].p2m.valid ||
+> > > > +         !first[first_table_offset(addr)].p2m.table )
+> > > > +        goto done;
+> > > > +
+> > > > +    second = map_domain_page(first[first_table_offset(addr)].p2m.base);
+> > > > +    printk("2ND[%#03llx] = %#016llx\n",
+> > > > +           second_table_offset(addr),
+> > > > +           second[second_table_offset(addr)].bits);
+> > > > +    if ( !second[second_table_offset(addr)].p2m.valid ||
+> > > > +         !second[second_table_offset(addr)].p2m.table )
+> > > > +        goto done;
+> > > > +
+> > > > +    third = map_domain_page(second[second_table_offset(addr)].p2m.base);
+> > > > +    printk("3RD[%#03llx] = %#016llx\n",
+> > > > +           third_table_offset(addr),
+> > > > +           third[third_table_offset(addr)].bits);
+> > > > +
+> > > > +done:
+> > > > +    if (third) unmap_domain_page(third);
+> > > > +    if (second) unmap_domain_page(second);
+> > > > +    if (first) unmap_domain_page(first);
+> > > > +}
+> > > 
+> > > Can this be unified with dump_pt_walk?
+> > 
+> > Not all that easily, mainly because dump_pt_walk walks xenheap pages
+> > (which don't need mapping) while dump_p2m_walk dumps domheap pages
+> > (which need mapping as we go). I probably could write something generic
+> > enough but I fear that it would be a mass of if's.
+> 
+> Is there any harm in mapping xenheap pages?  Since this is only invoked
+> on error paths, we don't particularly need it to be fast. 
+
+For some reason I thought it just didn't work -- I'll give it a go
+though.
+
+Ian.
+
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1339086867.18523.36.camel@zakaz.uk.xensource.com> b/config/examples/test/corpus/<1339086867.18523.36.camel@zakaz.uk.xensource.com>
new file mode 100644 (file)
index 0000000..2cda569
--- /dev/null
@@ -0,0 +1,294 @@
+From xen-devel-bounces@lists.xen.org Thu Jun 07 17:38:24 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 07 Jun 2012 17:38:24 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1Scfj0-0005KM-B2
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 07 Jun 2012 17:38:24 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1ScffM-0001hI-P6; Thu, 07 Jun 2012 16:34:32 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1ScffK-0001hB-PC
+       for xen-devel@lists.xen.org; Thu, 07 Jun 2012 16:34:31 +0000
+Received: from [85.158.139.83:16932] by server-5.bemta-5.messagelabs.com id
+       4C/0D-04481-518D0DF4; Thu, 07 Jun 2012 16:34:29 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-8.tower-182.messagelabs.com!1339086869!18660235!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDE0Nzk=\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 12332 invoked from network); 7 Jun 2012 16:34:29 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-8.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
+       7 Jun 2012 16:34:29 -0000
+X-IronPort-AV: E=Sophos;i="4.75,732,1330905600"; d="scan'208";a="12892000"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       07 Jun 2012 16:34:29 +0000
+Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0; Thu, 7 Jun 2012
+       17:34:29 +0100
+Message-ID: <1339086867.18523.36.camel@zakaz.uk.xensource.com>
+From: Ian Campbell <Ian.Campbell@citrix.com>
+To: "Tim (Xen.org)" <tim@xen.org>
+Date: Thu, 7 Jun 2012 17:34:27 +0100
+In-Reply-To: <1339077263.18523.19.camel@zakaz.uk.xensource.com>
+References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
+       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+       <1338565207-2888-3-git-send-email-ian.campbell@citrix.com>
+       <20120607084917.GB70339@ocelot.phlegethon.org>
+       <1339072005.18523.18.camel@zakaz.uk.xensource.com>
+       <20120607124033.GS70339@ocelot.phlegethon.org>
+       <1339077263.18523.19.camel@zakaz.uk.xensource.com>
+Organization: Citrix Systems, Inc.
+X-Mailer: Evolution 3.2.2-1 
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 03/38] arm: handy function to print a walk
+ of a domain's p2m.
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+> > > > > diff --git a/xen/arch/arm/p2m.c b/xen/arch/arm/p2m.c
+> > > > > index 4f624d8..fdbecbc 100644
+> > > > > --- a/xen/arch/arm/p2m.c
+> > > > > +++ b/xen/arch/arm/p2m.c
+> > > > > @@ -5,6 +5,40 @@
+> > > > >  #include <xen/domain_page.h>
+> > > > >  #include <asm/flushtlb.h>
+> > > > >  
+> > > > > +void dump_p2m_lookup(struct domain *d, paddr_t addr)
+> > > > > +{
+[...]
+> > > > > +}
+> > > > 
+> > > > Can this be unified with dump_pt_walk?
+> > > 
+> > > Not all that easily, mainly because dump_pt_walk walks xenheap pages
+> > > (which don't need mapping) while dump_p2m_walk dumps domheap pages
+> > > (which need mapping as we go). I probably could write something generic
+> > > enough but I fear that it would be a mass of if's.
+> > 
+> > Is there any harm in mapping xenheap pages?  Since this is only invoked
+> > on error paths, we don't particularly need it to be fast. 
+> 
+> For some reason I thought it just didn't work -- I'll give it a go
+> though.
+
+Well it works, this means that this patch and the previous patch then
+collapse down into a single patch:
+
+8<-------------------------------------------------------
+
+>From 055fe5f4a3a77f292d5a2a6b9f56a4d14dad3519 Mon Sep 17 00:00:00 2001
+From: Ian Campbell <ian.campbell@citrix.com>
+Date: Fri, 2 Mar 2012 12:02:42 +0000
+Subject: [PATCH] arm: handy function to print a walk of a page table
+
+Include helpers for dumping hypervisor walks and guest p2m walks.
+
+Useful for debug but not actually used in this patch.
+
+Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+---
+ xen/arch/arm/mm.c          |   49 +++++++++++++++++++++++++++++++++++++++++++-
+ xen/arch/arm/p2m.c         |   15 +++++++++++++
+ xen/include/asm-arm/page.h |   26 +++++++++++++++++++++++
+ 3 files changed, 89 insertions(+), 1 deletions(-)
+
+diff --git a/xen/arch/arm/mm.c b/xen/arch/arm/mm.c
+index 10ff883..715a98a 100644
+--- a/xen/arch/arm/mm.c
++++ b/xen/arch/arm/mm.c
+@@ -26,6 +26,7 @@
+ #include <xen/preempt.h>
+ #include <xen/errno.h>
+ #include <xen/guest_access.h>
++#include <xen/domain_page.h>
+ #include <asm/page.h>
+ #include <asm/current.h>
+ #include <public/memory.h>
+@@ -42,6 +43,8 @@ static lpae_t xen_xenmap[LPAE_ENTRIES] __attribute__((__aligned__(4096)));
+ /* Non-boot CPUs use this to find the correct pagetables. */
+ uint64_t boot_httbr;
++static paddr_t phys_offset;
++
+ /* Limits of the Xen heap */
+ unsigned long xenheap_mfn_start, xenheap_mfn_end;
+ unsigned long xenheap_virt_end;
+@@ -53,6 +56,50 @@ unsigned long max_page;
+ extern char __init_begin[], __init_end[];
++void dump_pt_walk(lpae_t *first, paddr_t addr)
++{
++    lpae_t *second = NULL, *third = NULL;
++
++    if ( first_table_offset(addr) >= LPAE_ENTRIES )
++        return;
++
++    printk("1ST[0x%llx] = 0x%"PRIpaddr"\n",
++           first_table_offset(addr),
++           first[first_table_offset(addr)].bits);
++    if ( !first[first_table_offset(addr)].walk.valid ||
++         !first[first_table_offset(addr)].walk.table )
++        goto done;
++
++    second = map_domain_page(first[first_table_offset(addr)].walk.base);
++    printk("2ND[0x%llx] = 0x%"PRIpaddr"\n",
++           second_table_offset(addr),
++           second[second_table_offset(addr)].bits);
++    if ( !second[second_table_offset(addr)].walk.valid ||
++         !second[second_table_offset(addr)].walk.table )
++        goto done;
++
++    third = map_domain_page(second[second_table_offset(addr)].walk.base);
++    printk("3RD[0x%llx] = 0x%"PRIpaddr"\n",
++           third_table_offset(addr),
++           third[third_table_offset(addr)].bits);
++
++done:
++    if (third) unmap_domain_page(third);
++    if (second) unmap_domain_page(second);
++
++}
++
++void dump_hyp_walk(uint32_t addr)
++{
++    uint64_t httbr = READ_CP64(HTTBR);
++
++    printk("Walking Hypervisor VA 0x%08"PRIx32" via HTTBR 0x%016"PRIx64"\n",
++           addr, httbr);
++
++    BUG_ON( (lpae_t *)(unsigned long)(httbr - phys_offset) != xen_pgtable );
++    dump_pt_walk(xen_pgtable, addr);
++}
++
+ /* Map a 4k page in a fixmap entry */
+ void set_fixmap(unsigned map, unsigned long mfn, unsigned attributes)
+ {
+@@ -159,7 +206,7 @@ void unmap_domain_page(const void *va)
+  * Changes here may need matching changes in head.S */
+ void __init setup_pagetables(unsigned long boot_phys_offset)
+ {
+-    paddr_t xen_paddr, phys_offset;
++    paddr_t xen_paddr;
+     unsigned long dest_va;
+     lpae_t pte, *p;
+     int i;
+diff --git a/xen/arch/arm/p2m.c b/xen/arch/arm/p2m.c
+index 4f624d8..ea385a6 100644
+--- a/xen/arch/arm/p2m.c
++++ b/xen/arch/arm/p2m.c
+@@ -5,6 +5,21 @@
+ #include <xen/domain_page.h>
+ #include <asm/flushtlb.h>
++void dump_p2m_lookup(struct domain *d, paddr_t addr)
++{
++    struct p2m_domain *p2m = &d->arch.p2m;
++    lpae_t *first;
++
++    printk("dom%d IPA 0x%"PRIpaddr"\n", d->domain_id, addr);
++
++    printk("P2M @ %p mfn:0x%lx\n",
++           p2m->first_level, page_to_mfn(p2m->first_level));
++
++    first = __map_domain_page(p2m->first_level);
++    dump_pt_walk(first, addr);
++    unmap_domain_page(first);
++}
++
+ void p2m_load_VTTBR(struct domain *d)
+ {
+     struct p2m_domain *p2m = &d->arch.p2m;
+diff --git a/xen/include/asm-arm/page.h b/xen/include/asm-arm/page.h
+index b6df64e..183ba5f 100644
+--- a/xen/include/asm-arm/page.h
++++ b/xen/include/asm-arm/page.h
+@@ -132,10 +132,28 @@ typedef struct {
+     unsigned long sbz1:5;
+ } __attribute__((__packed__)) lpae_p2m_t;
++/*
++ * Walk is the common bits of p2m and pt entries which are needed to
++ * simply walk the table (e.g. for debug).
++ */
++typedef struct {
++    /* These are used in all kinds of entry. */
++    unsigned long valid:1;      /* Valid mapping */
++    unsigned long table:1;      /* == 1 in 4k map entries too */
++
++    unsigned long pad2:10;
++
++    /* The base address must be appropriately aligned for Block entries */
++    unsigned long base:28;      /* Base address of block or next table */
++
++    unsigned long pad1:24;
++} __attribute__((__packed__)) lpae_walk_t;
++
+ typedef union {
+     uint64_t bits;
+     lpae_pt_t pt;
+     lpae_p2m_t p2m;
++    lpae_walk_t walk;
+ } lpae_t;
+ /* Standard entry type that we'll use to build Xen's own pagetables.
+@@ -252,6 +270,14 @@ static inline void flush_guest_tlb(void)
+     WRITE_CP32(r0 /* dummy */, TLBIALLNSNH);
+ }
++/* Print a walk of an arbitrary page table */
++void dump_pt_walk(lpae_t *table, paddr_t addr);
++
++/* Print a walk of the hypervisor's page tables for a virtual addr. */
++extern void dump_hyp_walk(uint32_t addr);
++/* Print a walk of the p2m for a domain for a physical address. */
++extern void dump_p2m_lookup(struct domain *d, paddr_t addr);
++
+ /* Ask the MMU to translate a VA for us */
+ static inline uint64_t __va_to_par(uint32_t va)
+ {
+-- 
+1.7.9.1
+
+
+
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1339087181.22331.2.camel@zakaz.uk.xensource.com> b/config/examples/test/corpus/<1339087181.22331.2.camel@zakaz.uk.xensource.com>
new file mode 100644 (file)
index 0000000..74fa7f9
--- /dev/null
@@ -0,0 +1,143 @@
+From xen-devel-bounces@lists.xen.org Thu Jun 07 17:43:47 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 07 Jun 2012 17:43:47 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1ScfoG-0005LI-Sv
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 07 Jun 2012 17:43:47 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1ScfkP-0001uC-Gu; Thu, 07 Jun 2012 16:39:45 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1ScfkO-0001u5-6d
+       for xen-devel@lists.xen.org; Thu, 07 Jun 2012 16:39:44 +0000
+Received: from [85.158.143.35:64067] by server-2.bemta-4.messagelabs.com id
+       9F/C8-17938-F49D0DF4; Thu, 07 Jun 2012 16:39:43 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-6.tower-21.messagelabs.com!1339087182!19254639!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDE0Nzk=\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 1812 invoked from network); 7 Jun 2012 16:39:43 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-6.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
+       7 Jun 2012 16:39:43 -0000
+X-IronPort-AV: E=Sophos;i="4.75,732,1330905600"; d="scan'208";a="12892079"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       07 Jun 2012 16:39:42 +0000
+Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0; Thu, 7 Jun 2012
+       17:39:42 +0100
+Message-ID: <1339087181.22331.2.camel@zakaz.uk.xensource.com>
+From: Ian Campbell <Ian.Campbell@citrix.com>
+To: "Tim (Xen.org)" <tim@xen.org>
+Date: Thu, 7 Jun 2012 17:39:41 +0100
+In-Reply-To: <1339086867.18523.36.camel@zakaz.uk.xensource.com>
+References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
+       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+       <1338565207-2888-3-git-send-email-ian.campbell@citrix.com>
+       <20120607084917.GB70339@ocelot.phlegethon.org>
+       <1339072005.18523.18.camel@zakaz.uk.xensource.com>
+       <20120607124033.GS70339@ocelot.phlegethon.org>
+       <1339077263.18523.19.camel@zakaz.uk.xensource.com>
+       <1339086867.18523.36.camel@zakaz.uk.xensource.com>
+Organization: Citrix Systems, Inc.
+X-Mailer: Evolution 3.2.2-1 
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 03/38] arm: handy function to print a walk
+ of a domain's p2m.
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Thu, 2012-06-07 at 17:34 +0100, Ian Campbell wrote:
+
+> +    /* The base address must be appropriately aligned for Block entries */
+
+I fixed upo a typo in this in my mail client, but when I went to fix it
+in my tree I noticed I'd just cut-n-pasted it from some other places, so
+I actually just added to my series:
+
+8<----------------------
+
+>From 7a04d5c045df2afee7a9302c26b007e6f1901e01 Mon Sep 17 00:00:00 2001
+From: Ian Campbell <ian.campbell@citrix.com>
+Date: Thu, 7 Jun 2012 16:35:12 +0000
+Subject: [PATCH] arm: fix typo s/approprately/appropriately/g
+
+Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+---
+ xen/include/asm-arm/page.h |    6 +++---
+ 1 files changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/xen/include/asm-arm/page.h b/xen/include/asm-arm/page.h
+index 20de411..3c59923 100644
+--- a/xen/include/asm-arm/page.h
++++ b/xen/include/asm-arm/page.h
+@@ -87,7 +87,7 @@ typedef struct {
+     unsigned long af:1;         /* Access Flag */
+     unsigned long ng:1;         /* Not-Global */
+-    /* The base address must be approprately aligned for Block entries */
++    /* The base address must be appropriately aligned for Block entries */
+     unsigned long base:28;      /* Base address of block or next table */
+     unsigned long sbz:12;       /* Must be zero */
+@@ -122,7 +122,7 @@ typedef struct {
+     unsigned long af:1;         /* Access Flag */
+     unsigned long sbz4:1;
+-    /* The base address must be approprately aligned for Block entries */
++    /* The base address must be appropriately aligned for Block entries */
+     unsigned long base:28;      /* Base address of block or next table */
+     unsigned long sbz3:12;
+@@ -147,7 +147,7 @@ typedef struct {
+     unsigned long pad2:10;
+-    /* The base address must be approprately aligned for Block entries */
++    /* The base address must be appropriately aligned for Block entries */
+     unsigned long base:28;      /* Base address of block or next table */
+     unsigned long pad1:24;
+-- 
+1.7.9.1
+
+
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1339088221.22331.6.camel@zakaz.uk.xensource.com> b/config/examples/test/corpus/<1339088221.22331.6.camel@zakaz.uk.xensource.com>
new file mode 100644 (file)
index 0000000..ec0ad45
--- /dev/null
@@ -0,0 +1,148 @@
+From xen-devel-bounces@lists.xen.org Thu Jun 07 18:00:59 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 07 Jun 2012 18:00:59 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1Scg4s-0005Pc-HV
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 07 Jun 2012 18:00:59 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1Scg1C-0002s9-7w; Thu, 07 Jun 2012 16:57:06 +0000
+Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1Scg1B-0002s4-Ds
+       for xen-devel@lists.xen.org; Thu, 07 Jun 2012 16:57:05 +0000
+Received: from [193.109.254.147:18381] by server-11.bemta-14.messagelabs.com
+       id A1/C8-02727-06DD0DF4; Thu, 07 Jun 2012 16:57:04 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-10.tower-27.messagelabs.com!1339088223!3477100!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDE0Nzk=\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 1528 invoked from network); 7 Jun 2012 16:57:04 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-10.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
+       7 Jun 2012 16:57:04 -0000
+X-IronPort-AV: E=Sophos;i="4.75,732,1330905600"; d="scan'208";a="12892674"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       07 Jun 2012 16:57:03 +0000
+Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0; Thu, 7 Jun 2012
+       17:57:03 +0100
+Message-ID: <1339088221.22331.6.camel@zakaz.uk.xensource.com>
+From: Ian Campbell <Ian.Campbell@citrix.com>
+To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+Date: Thu, 7 Jun 2012 17:57:01 +0100
+In-Reply-To: <alpine.DEB.2.02.1206061623240.6030@kaball.uk.xensource.com>
+References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
+       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+       <1338565207-2888-14-git-send-email-ian.campbell@citrix.com>
+       <alpine.DEB.2.02.1206061623240.6030@kaball.uk.xensource.com>
+Organization: Citrix Systems, Inc.
+X-Mailer: Evolution 3.2.2-1 
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 14/38] arm: do not set max_vcpus = 8 in
+ arch_domain_create.
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Wed, 2012-06-06 at 16:26 +0100, Stefano Stabellini wrote:
+> On Fri, 1 Jun 2012, Ian Campbell wrote:
+> > XEN_DOMCTL_max_vcpus cannot reduce max_vcpus and therefore we can't create a
+> > smaller guest.
+> > 
+> > The limit of 8 (due to GIC limits) should be expressed elsewhere, likely in
+> > MAX_VIRT_CPUS -- but making that change caused:
+> 
+> Are you sure? I made that change and I didn't see the error.
+> I think this patch should set MAX_VIRT_CPUS to 8 as well as removing
+> max_vcpus = 8.
+
+This was the same heap corruption again as seen in "[PATCH 16/38] arm:
+Add simple cpu_{sibling,core}_mask"  and having fixed that I don't see
+the crash with MAX_VIRT_CPUS == 8 any more...
+
+The patch becomes:
+
+>From b68c4abe1dec44f3ed87a0d7ae98f4269043cce3 Mon Sep 17 00:00:00 2001
+From: Ian Campbell <ian.campbell@citrix.com>
+Date: Thu, 7 Jun 2012 16:52:46 +0000
+Subject: [PATCH] arm: do not set max_vcpus = 8 in arch_domain_create.
+
+XEN_DOMCTL_max_vcpus cannot reduce max_vcpus and therefore we can't create a
+smaller guest.
+
+The limit of 8 (due to GIC limits) should be expressed in MAX_VIRT_CPUS.
+
+Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+---
+ xen/arch/arm/domain.c        |    2 --
+ xen/include/asm-arm/config.h |    2 +-
+ 2 files changed, 1 insertions(+), 3 deletions(-)
+
+diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
+index 1336dc4..040a2ce 100644
+--- a/xen/arch/arm/domain.c
++++ b/xen/arch/arm/domain.c
+@@ -338,8 +338,6 @@ int arch_domain_create(struct domain *d, unsigned int domcr_flags)
+             goto fail;
+     }
+-    d->max_vcpus = 8;
+-
+     if ( (rc = domain_vgic_init(d)) != 0 )
+         goto fail;
+diff --git a/xen/include/asm-arm/config.h b/xen/include/asm-arm/config.h
+index 91e87e1..7d02cc7 100644
+--- a/xen/include/asm-arm/config.h
++++ b/xen/include/asm-arm/config.h
+@@ -27,7 +27,7 @@
+ #define NR_CPUS 128
+ #endif
+-#define MAX_VIRT_CPUS 128 /* XXX */
++#define MAX_VIRT_CPUS 8
+ #define MAX_HVM_VCPUS MAX_VIRT_CPUS
+ #define asmlinkage /* Nothing needed */
+-- 
+1.7.9.1
+
+
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1339088579.22331.8.camel@zakaz.uk.xensource.com> b/config/examples/test/corpus/<1339088579.22331.8.camel@zakaz.uk.xensource.com>
new file mode 100644 (file)
index 0000000..194cd5c
--- /dev/null
@@ -0,0 +1,233 @@
+From xen-devel-bounces@lists.xen.org Thu Jun 07 18:06:55 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 07 Jun 2012 18:06:55 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1ScgAe-0005RJ-UY
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 07 Jun 2012 18:06:55 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1Scg7J-0003KZ-RC; Thu, 07 Jun 2012 17:03:25 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1Scg7H-0003KQ-7h
+       for xen-devel@lists.xen.org; Thu, 07 Jun 2012 17:03:23 +0000
+Received: from [85.158.143.35:47092] by server-3.bemta-4.messagelabs.com id
+       42/B1-29237-ADED0DF4; Thu, 07 Jun 2012 17:03:22 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-5.tower-21.messagelabs.com!1339088601!7552666!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDE0Nzk=\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 8445 invoked from network); 7 Jun 2012 17:03:22 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-5.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
+       7 Jun 2012 17:03:22 -0000
+X-IronPort-AV: E=Sophos;i="4.75,732,1330905600"; d="scan'208";a="12892747"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       07 Jun 2012 17:03:00 +0000
+Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0; Thu, 7 Jun 2012
+       18:03:00 +0100
+Message-ID: <1339088579.22331.8.camel@zakaz.uk.xensource.com>
+From: Ian Campbell <Ian.Campbell@citrix.com>
+To: Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+Date: Thu, 7 Jun 2012 18:02:59 +0100
+In-Reply-To: <1339062030.15265.53.camel@zakaz.uk.xensource.com>
+References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
+       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+       <1338565207-2888-8-git-send-email-ian.campbell@citrix.com>
+       <alpine.DEB.2.02.1206061443300.6030@kaball.uk.xensource.com>
+       <1338990925.32319.103.camel@zakaz.uk.xensource.com>
+       <1339062030.15265.53.camel@zakaz.uk.xensource.com>
+Organization: Citrix Systems, Inc.
+X-Mailer: Evolution 3.2.2-1 
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 08/38] arm: allocate and setup a guest vcpu.
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Thu, 2012-06-07 at 10:40 +0100, Ian Campbell wrote:
+> More head scratching required I think!
+
+This turned out to be the problem with not initialising cpu_sibling_mask
+properly, see the thread against "[PATCH 16/38] arm: Add simple
+cpu_{sibling,core}_mask".
+
+Having fixed that I updated based on your comments to:
+
+8<-----------------------------------------------------------
+
+>From 75cff29f4645dd19d07175109b5891fd44de9d60 Mon Sep 17 00:00:00 2001
+From: Ian Campbell <ian.campbell@citrix.com>
+Date: Fri, 13 Apr 2012 16:07:21 +0100
+Subject: [PATCH] arm: allocate and setup a guest vcpu.
+
+Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+---
+ xen/arch/arm/domain.c         |   67 +++++++++++++++++++++++++++++++++++++++++
+ xen/arch/arm/dummy.S          |    3 --
+ xen/include/public/arch-arm.h |    9 -----
+ 3 files changed, 67 insertions(+), 12 deletions(-)
+
+diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
+index 9339a11..b099d91 100644
+--- a/xen/arch/arm/domain.c
++++ b/xen/arch/arm/domain.c
+@@ -144,6 +144,17 @@ void free_vcpu_struct(struct vcpu *v)
+     free_xenheap_page(v);
+ }
++struct vcpu_guest_context *alloc_vcpu_guest_context(void)
++{
++    return xmalloc(struct vcpu_guest_context);
++
++}
++
++void free_vcpu_guest_context(struct vcpu_guest_context *vgc)
++{
++    xfree(vgc);
++}
++
+ int vcpu_initialise(struct vcpu *v)
+ {
+     int rc = 0;
+@@ -212,6 +223,62 @@ void arch_domain_destroy(struct domain *d)
+     /* domain_vgic_destroy */
+ }
++static int is_guest_psr(uint32_t psr)
++{
++    switch (psr & PSR_MODE_MASK)
++    {
++    case PSR_MODE_USR:
++    case PSR_MODE_FIQ:
++    case PSR_MODE_IRQ:
++    case PSR_MODE_SVC:
++    case PSR_MODE_ABT:
++    case PSR_MODE_UND:
++    case PSR_MODE_SYS:
++        return 1;
++    case PSR_MODE_MON:
++    case PSR_MODE_HYP:
++    default:
++        return 0;
++    }
++}
++
++/*
++ * Initialise VCPU state. The context can be supplied by either the
++ * toolstack (XEN_DOMCTL_setvcpucontext) or the guest
++ * (VCPUOP_initialise) and therefore must be properly validated.
++ */
++int arch_set_info_guest(
++    struct vcpu *v, vcpu_guest_context_u c)
++{
++    struct cpu_user_regs *regs = &c.nat->user_regs;
++
++    if ( !is_guest_psr(regs->cpsr) )
++        return -EINVAL;
++
++    if ( regs->spsr_svc && !is_guest_psr(regs->spsr_svc) )
++        return -EINVAL;
++    if ( regs->spsr_abt && !is_guest_psr(regs->spsr_abt) )
++        return -EINVAL;
++    if ( regs->spsr_und && !is_guest_psr(regs->spsr_und) )
++        return -EINVAL;
++    if ( regs->spsr_irq && !is_guest_psr(regs->spsr_irq) )
++        return -EINVAL;
++    if ( regs->spsr_fiq && !is_guest_psr(regs->spsr_fiq) )
++        return -EINVAL;
++
++    v->arch.cpu_info->guest_cpu_user_regs = *regs;
++
++    /* XXX other state:
++     * - SCTLR
++     * - TTBR0/1
++     * - TTBCR
++     */
++
++    clear_bit(_VPF_down, &v->pause_flags);
++
++    return 0;
++}
++
+ void arch_dump_domain_info(struct domain *d)
+ {
+ }
+diff --git a/xen/arch/arm/dummy.S b/xen/arch/arm/dummy.S
+index 016340c..3b48917 100644
+--- a/xen/arch/arm/dummy.S
++++ b/xen/arch/arm/dummy.S
+@@ -20,11 +20,8 @@ DUMMY(pirq_guest_unbind);
+ DUMMY(pirq_set_affinity);
+ /* VCPU */
+-DUMMY(alloc_vcpu_guest_context);
+ DUMMY(arch_get_info_guest);
+-DUMMY(arch_set_info_guest);
+ DUMMY(arch_vcpu_reset);
+-DUMMY(free_vcpu_guest_context);
+ DUMMY(sync_vcpu_execstate);
+ NOP(update_vcpu_system_time);
+ DUMMY(vcpu_show_execution_state);
+diff --git a/xen/include/public/arch-arm.h b/xen/include/public/arch-arm.h
+index 1b1bcf3..e439727 100644
+--- a/xen/include/public/arch-arm.h
++++ b/xen/include/public/arch-arm.h
+@@ -124,15 +124,6 @@ typedef uint32_t xen_ulong_t;
+ struct vcpu_guest_context {
+     struct cpu_user_regs user_regs;         /* User-level CPU registers     */
+-    union {
+-        uint32_t reg[16];
+-        struct {
+-            uint32_t __pad[12];
+-            uint32_t sp; /* r13 */
+-            uint32_t lr; /* r14 */
+-            uint32_t pc; /* r15 */
+-        };
+-    };
+ };
+ typedef struct vcpu_guest_context vcpu_guest_context_t;
+ DEFINE_XEN_GUEST_HANDLE(vcpu_guest_context_t);
+-- 
+1.7.9.1
+
+
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1339594843.24104.218.camel@zakaz.uk.xensource.com> b/config/examples/test/corpus/<1339594843.24104.218.camel@zakaz.uk.xensource.com>
new file mode 100644 (file)
index 0000000..007b61f
--- /dev/null
@@ -0,0 +1,96 @@
+From xen-devel-bounces@lists.xen.org Wed Jun 13 14:45:06 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 13 Jun 2012 14:45:06 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1Sense-0008TL-DA
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 13 Jun 2012 14:45:06 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SenoW-0000Vf-1i; Wed, 13 Jun 2012 13:40:48 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1SenoU-0000Va-Op
+       for xen-devel@lists.xen.org; Wed, 13 Jun 2012 13:40:46 +0000
+Received: from [85.158.139.83:10573] by server-4.bemta-5.messagelabs.com id
+       BB/DA-27831-D5898DF4; Wed, 13 Jun 2012 13:40:45 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-12.tower-182.messagelabs.com!1339594844!27485865!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDI0NzA=\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 19376 invoked from network); 13 Jun 2012 13:40:45 -0000
+Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-12.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
+       13 Jun 2012 13:40:45 -0000
+X-IronPort-AV: E=Sophos;i="4.75,763,1330905600"; d="scan'208";a="12997692"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       13 Jun 2012 13:40:44 +0000
+Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0;
+       Wed, 13 Jun 2012 14:40:44 +0100
+Message-ID: <1339594843.24104.218.camel@zakaz.uk.xensource.com>
+From: Ian Campbell <Ian.Campbell@citrix.com>
+To: Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+Date: Wed, 13 Jun 2012 14:40:43 +0100
+In-Reply-To: <1338993031.32319.107.camel@zakaz.uk.xensource.com>
+References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
+       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+       <1338565207-2888-11-git-send-email-ian.campbell@citrix.com>
+       <alpine.DEB.2.02.1206061452530.6030@kaball.uk.xensource.com>
+       <1338993031.32319.107.camel@zakaz.uk.xensource.com>
+Organization: Citrix Systems, Inc.
+X-Mailer: Evolution 3.2.2-1 
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 11/38] arm: implement p2m lookup
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Wed, 2012-06-06 at 15:30 +0100, Ian Campbell wrote:
+> > there is no need to introduce p2m_lookup in the same patch you do these
+> > unrelated printk adjustments, correct?
+> > 
+> 
+> Right, I think I've just put them in the wrong patch by mistake, I'll
+> figure out what I meant to do ...
+
+These ended up in my combined replacement for patches #2 and #3 which
+was posted in <1339086867.18523.36.camel@zakaz.uk.xensource.com>.
+
+Ian.
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1339600416.24104.228.camel@zakaz.uk.xensource.com> b/config/examples/test/corpus/<1339600416.24104.228.camel@zakaz.uk.xensource.com>
new file mode 100644 (file)
index 0000000..05d5460
--- /dev/null
@@ -0,0 +1,213 @@
+From xen-devel-bounces@lists.xen.org Wed Jun 13 16:18:36 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 13 Jun 2012 16:18:36 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SepL4-0000M1-L6
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 13 Jun 2012 16:18:36 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SepGR-0003m2-MI; Wed, 13 Jun 2012 15:13:43 +0000
+Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1SepGP-0003lx-Vy
+       for xen-devel@lists.xen.org; Wed, 13 Jun 2012 15:13:42 +0000
+Received: from [193.109.254.147:22299] by server-3.bemta-14.messagelabs.com id
+       10/0D-05653-42EA8DF4; Wed, 13 Jun 2012 15:13:40 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-14.tower-27.messagelabs.com!1339600419!2701575!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDI0NzA=\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 13865 invoked from network); 13 Jun 2012 15:13:40 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-14.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
+       13 Jun 2012 15:13:40 -0000
+X-IronPort-AV: E=Sophos;i="4.75,763,1330905600"; d="scan'208";a="13000875"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       13 Jun 2012 15:13:38 +0000
+Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0;
+       Wed, 13 Jun 2012 16:13:38 +0100
+Message-ID: <1339600416.24104.228.camel@zakaz.uk.xensource.com>
+From: Ian Campbell <Ian.Campbell@citrix.com>
+To: Tim Deegan <tim@xen.org>
+Date: Wed, 13 Jun 2012 16:13:36 +0100
+In-Reply-To: <20120607090334.GC70339@ocelot.phlegethon.org>
+References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
+       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+       <1338565207-2888-11-git-send-email-ian.campbell@citrix.com>
+       <20120607090334.GC70339@ocelot.phlegethon.org>
+Organization: Citrix Systems, Inc.
+X-Mailer: Evolution 3.2.2-1 
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 11/38] arm: implement p2m lookup
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Thu, 2012-06-07 at 10:03 +0100, Tim Deegan wrote:
+> At 15:39 +0000 on 01 Jun (1338565180), Ian Campbell wrote:
+> > +/*
+> > + * Lookup the MFN corresponding to a domain's PFN.
+> > + *
+> > + * There are no processor functions to do a stage 2 only lookup therefore we
+> > + * do a a software walk.
+> > + */
+> > +paddr_t p2m_lookup(struct domain *d, paddr_t paddr)
+> > +{
+> > +    struct p2m_domain *p2m = &d->arch.p2m;
+> > +    lpae_t pte, *first = NULL, *second = NULL, *third = NULL;
+> > +    paddr_t maddr = INVALID_PADDR;
+> > +
+> > +    spin_lock(&p2m->lock);
+> > +
+> > +    first = __map_domain_page(p2m->first_level);
+> > +    if ( !first[first_table_offset(paddr)].p2m.valid )
+> > +        goto done_err;
+> > +    if ( !first[first_table_offset(paddr)].p2m.table )
+> > +    {
+> > +        pte = first[first_table_offset(paddr)];
+> > +        goto done;
+> > +    }
+> 
+> This would be neater as: 
+>        pte = first[first_table_offset(paddr)];
+>        if ( !pte.p2m.valid || !pte.p2m.table )
+>            goto done;
+> 
+> and test for pte.valid at 'done'.
+
+Yes, that looks nice, although you still need a bit of a quirk for the
+third level table bit. Patch below.
+
+> It would be nice to do the three levels in a loop as well, but the weird
+> way the table bit behaves in third-level entries might make that more
+> confusing than the straight-line version.
+
+This also has the same issue as with *_table_offset as the other similar
+functions discussed earlier.
+
+8<-----------------------------------------------------------
+
+>From 347855d863303720cbf5ceb0f1e067660108d3f1 Mon Sep 17 00:00:00 2001
+From: Ian Campbell <ian.campbell@citrix.com>
+Date: Fri, 13 Apr 2012 16:24:58 +0100
+Subject: [PATCH] arm: implement p2m lookup
+
+Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+---
+ xen/arch/arm/p2m.c        |   45 +++++++++++++++++++++++++++++++++++++++++++++
+ xen/include/asm-arm/p2m.h |    3 +++
+ 2 files changed, 48 insertions(+), 0 deletions(-)
+
+diff --git a/xen/arch/arm/p2m.c b/xen/arch/arm/p2m.c
+index 6df5b62..145d9fe 100644
+--- a/xen/arch/arm/p2m.c
++++ b/xen/arch/arm/p2m.c
+@@ -32,6 +32,51 @@ void p2m_load_VTTBR(struct domain *d)
+     isb(); /* Ensure update is visible */
+ }
++/*
++ * Lookup the MFN corresponding to a domain's PFN.
++ *
++ * There are no processor functions to do a stage 2 only lookup therefore we
++ * do a a software walk.
++ */
++paddr_t p2m_lookup(struct domain *d, paddr_t paddr)
++{
++    struct p2m_domain *p2m = &d->arch.p2m;
++    lpae_t pte, *first = NULL, *second = NULL, *third = NULL;
++    paddr_t maddr = INVALID_PADDR;
++
++    spin_lock(&p2m->lock);
++
++    first = __map_domain_page(p2m->first_level);
++
++    pte = first[first_table_offset(paddr)];
++    if ( !pte.p2m.valid || !pte.p2m.table )
++        goto done;
++
++    second = map_domain_page(first[first_table_offset(paddr)].p2m.base);
++    pte = second[second_table_offset(paddr)];
++    if ( !pte.p2m.valid || !pte.p2m.table )
++        goto done;
++
++    third = map_domain_page(second[second_table_offset(paddr)].p2m.base);
++    pte = third[third_table_offset(paddr)];
++
++    /* This bit must be one in the level 3 entry */
++    if ( !pte.p2m.table )
++        pte.bits = 0;
++
++done:
++    if ( pte.p2m.valid )
++        maddr = (pte.bits & PADDR_MASK & PAGE_MASK) | (paddr & ~PAGE_MASK);
++
++    if (third) unmap_domain_page(third);
++    if (second) unmap_domain_page(second);
++    if (first) unmap_domain_page(first);
++
++    spin_unlock(&p2m->lock);
++
++    return maddr;
++}
++
+ int guest_physmap_mark_populate_on_demand(struct domain *d,
+                                           unsigned long gfn,
+                                           unsigned int order)
+diff --git a/xen/include/asm-arm/p2m.h b/xen/include/asm-arm/p2m.h
+index 349923a..1afd5cb 100644
+--- a/xen/include/asm-arm/p2m.h
++++ b/xen/include/asm-arm/p2m.h
+@@ -32,6 +32,9 @@ int p2m_alloc_table(struct domain *d);
+ /* */
+ void p2m_load_VTTBR(struct domain *d);
++/* */
++paddr_t p2m_lookup(struct domain *d, paddr_t gpfn);
++
+ /* Setup p2m RAM mapping for domain d from start-end. */
+ int p2m_populate_ram(struct domain *d, paddr_t start, paddr_t end);
+ /* Map MMIO regions in the p2m: start_gaddr and end_gaddr is the range
+-- 
+1.7.9.1
+
+
+
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1339600735.24104.230.camel@zakaz.uk.xensource.com> b/config/examples/test/corpus/<1339600735.24104.230.camel@zakaz.uk.xensource.com>
new file mode 100644 (file)
index 0000000..a0cd089
--- /dev/null
@@ -0,0 +1,130 @@
+From xen-devel-bounces@lists.xen.org Wed Jun 13 16:23:31 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 13 Jun 2012 16:23:31 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SepPp-0000NK-QQ
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 13 Jun 2012 16:23:31 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SepLY-00040e-2K; Wed, 13 Jun 2012 15:19:00 +0000
+Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1SepLW-00040S-4D
+       for xen-devel@lists.xen.org; Wed, 13 Jun 2012 15:18:58 +0000
+Received: from [193.109.254.147:30084] by server-7.bemta-14.messagelabs.com id
+       B5/36-29165-16FA8DF4; Wed, 13 Jun 2012 15:18:57 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-12.tower-27.messagelabs.com!1339600736!9582585!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDI0NzA=\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 11186 invoked from network); 13 Jun 2012 15:18:57 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-12.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
+       13 Jun 2012 15:18:57 -0000
+X-IronPort-AV: E=Sophos;i="4.75,763,1330905600"; d="scan'208";a="13001146"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       13 Jun 2012 15:18:56 +0000
+Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0;
+       Wed, 13 Jun 2012 16:18:56 +0100
+Message-ID: <1339600735.24104.230.camel@zakaz.uk.xensource.com>
+From: Ian Campbell <Ian.Campbell@citrix.com>
+To: "Tim (Xen.org)" <tim@xen.org>
+Date: Wed, 13 Jun 2012 16:18:55 +0100
+In-Reply-To: <1339068947.18523.10.camel@zakaz.uk.xensource.com>
+References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
+       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+       <1338565207-2888-16-git-send-email-ian.campbell@citrix.com>
+       <20120607090808.GD70339@ocelot.phlegethon.org>
+       <1339068947.18523.10.camel@zakaz.uk.xensource.com>
+Organization: Citrix Systems, Inc.
+X-Mailer: Evolution 3.2.2-1 
+MIME-Version: 1.0
+Cc: "Keir \(Xen.org\)" <keir@xen.org>, Jan Beulich <JBeulich@suse.com>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 16/38] arm: Add simple cpu_{sibling,
+ core}_mask
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+Keir, Jan: Any objection/ack for the generic part of this commit?
+
+> 8<------------------------------------------------------
+> 
+> From e980ca1ec9bf92b2f1255ac5222b1da1292f9f72 Mon Sep 17 00:00:00 2001
+> From: Ian Campbell <ian.campbell@citrix.com>
+> Date: Mon, 14 May 2012 12:25:31 +0100
+> Subject: [PATCH] arm: Add simple cpu_{sibling,core}_mask
+> 
+> This needs to be done for all cpus. The allocations require smp_prepare_cpus
+> to be called a bit later on.
+> 
+> In a previous version of this patch these maps were being zeroed (instead of
+> setting the CPU itself in them). This in turn causes cpumask_first to return
+> NR_CPUS, which in turn was causing default_vcpu0_location to misbehave and
+> read off the end of its cnt array. Add a couple of asserts to catch this in
+> the future.
+> 
+> Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+> ---
+>  xen/arch/arm/dummy.S   |    2 --
+>  xen/arch/arm/setup.c   |    4 ++--
+>  xen/arch/arm/smpboot.c |   21 +++++++++++++++++++++
+>  xen/common/domctl.c    |    2 ++
+>  4 files changed, 25 insertions(+), 4 deletions(-)
+[...]
+> diff --git a/xen/common/domctl.c b/xen/common/domctl.c
+> index 9f1a9ad..c1acd1d 100644
+> --- a/xen/common/domctl.c
+> +++ b/xen/common/domctl.c
+> @@ -190,10 +190,12 @@ static unsigned int default_vcpu0_location(cpumask_t *online)
+>       */
+>      cpumask_copy(&cpu_exclude_map, per_cpu(cpu_sibling_mask, 0));
+>      cpu = cpumask_first(&cpu_exclude_map);
+> +    ASSERT(cpu < nr_cpus);
+>      if ( cpumask_weight(&cpu_exclude_map) > 1 )
+>          cpu = cpumask_next(cpu, &cpu_exclude_map);
+>      for_each_cpu(i, online)
+>      {
+> +        ASSERT(i < nr_cpus);
+>          if ( cpumask_test_cpu(i, &cpu_exclude_map) )
+>              continue;
+>          if ( (i == cpumask_first(per_cpu(cpu_sibling_mask, i))) &&
+
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1339601583.24104.237.camel@zakaz.uk.xensource.com> b/config/examples/test/corpus/<1339601583.24104.237.camel@zakaz.uk.xensource.com>
new file mode 100644 (file)
index 0000000..e928175
--- /dev/null
@@ -0,0 +1,257 @@
+From xen-devel-bounces@lists.xen.org Wed Jun 13 16:38:02 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 13 Jun 2012 16:38:02 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1Sepds-0000Si-T0
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 13 Jun 2012 16:38:02 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SepZj-0004hZ-AW; Wed, 13 Jun 2012 15:33:39 +0000
+Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1SepZh-0004hS-H2
+       for xen-devel@lists.xen.org; Wed, 13 Jun 2012 15:33:37 +0000
+Received: from [193.109.254.147:33195] by server-12.bemta-14.messagelabs.com
+       id 9E/A2-12998-0D2B8DF4; Wed, 13 Jun 2012 15:33:36 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-6.tower-27.messagelabs.com!1339601615!3919496!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDI0NzA=\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 25227 invoked from network); 13 Jun 2012 15:33:36 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-6.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
+       13 Jun 2012 15:33:36 -0000
+X-IronPort-AV: E=Sophos;i="4.75,765,1330905600"; d="scan'208";a="13001555"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       13 Jun 2012 15:33:04 +0000
+Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0;
+       Wed, 13 Jun 2012 16:33:05 +0100
+Message-ID: <1339601583.24104.237.camel@zakaz.uk.xensource.com>
+From: Ian Campbell <Ian.Campbell@citrix.com>
+To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+Date: Wed, 13 Jun 2012 16:33:03 +0100
+In-Reply-To: <alpine.DEB.2.02.1206061725020.6030@kaball.uk.xensource.com>
+References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
+       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+       <1338565207-2888-17-git-send-email-ian.campbell@citrix.com>
+       <alpine.DEB.2.02.1206061725020.6030@kaball.uk.xensource.com>
+Organization: Citrix Systems, Inc.
+X-Mailer: Evolution 3.2.2-1 
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 17/38] arm: allow p2m to be created with
+ specific MATTR.
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Wed, 2012-06-06 at 17:27 +0100, Stefano Stabellini wrote:
+> On Fri, 1 Jun 2012, Ian Campbell wrote:
+> > Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+> > ---
+> >  xen/arch/arm/p2m.c         |   15 ++++++++-------
+> >  xen/include/asm-arm/page.h |    6 ++++--
+> >  2 files changed, 12 insertions(+), 9 deletions(-)
+> > 
+> > diff --git a/xen/arch/arm/p2m.c b/xen/arch/arm/p2m.c
+> > index 9b40e93..46c6f17 100644
+> > --- a/xen/arch/arm/p2m.c
+> > +++ b/xen/arch/arm/p2m.c
+> > @@ -148,7 +148,7 @@ static int p2m_create_entry(struct domain *d,
+> >      clear_page(p);
+> >      unmap_domain_page(p);
+> >  
+> > -    pte = mfn_to_p2m_entry(page_to_mfn(page));
+> > +    pte = mfn_to_p2m_entry(page_to_mfn(page), MATTR_MEM);
+> >  
+> >      write_pte(entry, pte);
+> >  
+> 
+> This works because p2m_create_entry is always called to create first or
+> second level entries only.
+> Maybe we should rename p2m_create_entry to p2m_create_table_entry for
+> clarity? Or add a comment?
+
+I think p2m_create_table would be a fine name for this function. I've
+also added a comment.
+
+8<------------------------------
+
+>From 33d7d69b95ed016542631e2daca55d5cd9969627 Mon Sep 17 00:00:00 2001
+From: Ian Campbell <ian.campbell@citrix.com>
+Date: Mon, 14 May 2012 12:30:04 +0100
+Subject: [PATCH] arm: allow p2m to be created with specific MATTR.
+
+Rename p2m_create_entry to p2m_create_table since it can now only be used to
+insert non-leaf entries into the page table.
+
+Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+---
+ xen/arch/arm/p2m.c         |   22 ++++++++++++----------
+ xen/include/asm-arm/page.h |    6 ++++--
+ 2 files changed, 16 insertions(+), 12 deletions(-)
+
+diff --git a/xen/arch/arm/p2m.c b/xen/arch/arm/p2m.c
+index 145d9fe..b411fe7 100644
+--- a/xen/arch/arm/p2m.c
++++ b/xen/arch/arm/p2m.c
+@@ -91,7 +91,8 @@ int p2m_pod_decrease_reservation(struct domain *d,
+     return -ENOSYS;
+ }
+-static int p2m_create_entry(struct domain *d,
++/* Allocate a new page table page and hook it in via the given entry */
++static int p2m_create_table(struct domain *d,
+                             lpae_t *entry)
+ {
+     struct p2m_domain *p2m = &d->arch.p2m;
+@@ -111,7 +112,7 @@ static int p2m_create_entry(struct domain *d,
+     clear_page(p);
+     unmap_domain_page(p);
+-    pte = mfn_to_p2m_entry(page_to_mfn(page));
++    pte = mfn_to_p2m_entry(page_to_mfn(page), MATTR_MEM);
+     write_pte(entry, pte);
+@@ -122,7 +123,8 @@ static int create_p2m_entries(struct domain *d,
+                      int alloc,
+                      paddr_t start_gpaddr,
+                      paddr_t end_gpaddr,
+-                     paddr_t maddr)
++                     paddr_t maddr,
++                     int mattr)
+ {
+     int rc;
+     struct p2m_domain *p2m = &d->arch.p2m;
+@@ -140,7 +142,7 @@ static int create_p2m_entries(struct domain *d,
+     {
+         if ( !first[first_table_offset(addr)].p2m.valid )
+         {
+-            rc = p2m_create_entry(d, &first[first_table_offset(addr)]);
++            rc = p2m_create_table(d, &first[first_table_offset(addr)]);
+             if ( rc < 0 ) {
+                 printk("p2m_populate_ram: L1 failed\n");
+                 goto out;
+@@ -159,7 +161,7 @@ static int create_p2m_entries(struct domain *d,
+         if ( !second[second_table_offset(addr)].p2m.valid )
+         {
+-            rc = p2m_create_entry(d, &second[second_table_offset(addr)]);
++            rc = p2m_create_table(d, &second[second_table_offset(addr)]);
+             if ( rc < 0 ) {
+                 printk("p2m_populate_ram: L2 failed\n");
+                 goto out;
+@@ -198,11 +200,11 @@ static int create_p2m_entries(struct domain *d,
+                 goto out;
+             }
+-            pte = mfn_to_p2m_entry(page_to_mfn(page));
++            pte = mfn_to_p2m_entry(page_to_mfn(page), mattr);
+             write_pte(&third[third_table_offset(addr)], pte);
+         } else {
+-            lpae_t pte = mfn_to_p2m_entry(maddr >> PAGE_SHIFT);
++            lpae_t pte = mfn_to_p2m_entry(maddr >> PAGE_SHIFT, mattr);
+             write_pte(&third[third_table_offset(addr)], pte);
+             maddr += PAGE_SIZE;
+         }
+@@ -226,7 +228,7 @@ int p2m_populate_ram(struct domain *d,
+                      paddr_t start,
+                      paddr_t end)
+ {
+-    return create_p2m_entries(d, 1, start, end, 0);
++    return create_p2m_entries(d, 1, start, end, 0, MATTR_MEM);
+ }
+ int map_mmio_regions(struct domain *d,
+@@ -234,7 +236,7 @@ int map_mmio_regions(struct domain *d,
+                      paddr_t end_gaddr,
+                      paddr_t maddr)
+ {
+-    return create_p2m_entries(d, 0, start_gaddr, end_gaddr, maddr);
++    return create_p2m_entries(d, 0, start_gaddr, end_gaddr, maddr, MATTR_DEV);
+ }
+ int guest_physmap_add_page(struct domain *d,
+@@ -244,7 +246,7 @@ int guest_physmap_add_page(struct domain *d,
+ {
+     return create_p2m_entries(d, 0, gpfn << PAGE_SHIFT,
+                               (gpfn + (1<<page_order)) << PAGE_SHIFT,
+-                              mfn << PAGE_SHIFT);
++                              mfn << PAGE_SHIFT, MATTR_MEM);
+ }
+ void guest_physmap_remove_page(struct domain *d,
+diff --git a/xen/include/asm-arm/page.h b/xen/include/asm-arm/page.h
+index 183ba5f..2783c30 100644
+--- a/xen/include/asm-arm/page.h
++++ b/xen/include/asm-arm/page.h
+@@ -46,6 +46,8 @@
+ #define DEV_WC        BUFFERABLE
+ #define DEV_CACHED    WRITEBACK
++#define MATTR_DEV     0x1
++#define MATTR_MEM     0xf
+ #ifndef __ASSEMBLY__
+@@ -187,7 +189,7 @@ static inline lpae_t mfn_to_xen_entry(unsigned long mfn)
+     return e;
+ }
+-static inline lpae_t mfn_to_p2m_entry(unsigned long mfn)
++static inline lpae_t mfn_to_p2m_entry(unsigned long mfn, unsigned int mattr)
+ {
+     paddr_t pa = ((paddr_t) mfn) << PAGE_SHIFT;
+     lpae_t e = (lpae_t) {
+@@ -196,7 +198,7 @@ static inline lpae_t mfn_to_p2m_entry(unsigned long mfn)
+         .p2m.sh = LPAE_SH_OUTER,
+         .p2m.write = 1,
+         .p2m.read = 1,
+-        .p2m.mattr = 0xf,
++        .p2m.mattr = mattr,
+         .p2m.table = 1,
+         .p2m.valid = 1,
+     };
+-- 
+1.7.9.1
+
+
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1340098989.16742.2.camel@zakaz.uk.xensource.com> b/config/examples/test/corpus/<1340098989.16742.2.camel@zakaz.uk.xensource.com>
new file mode 100644 (file)
index 0000000..4ff048e
--- /dev/null
@@ -0,0 +1,96 @@
+From xen-devel-bounces@lists.xen.org Tue Jun 19 10:48:23 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Tue, 19 Jun 2012 10:48:23 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1Sgv2n-0006DB-Rt
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 19 Jun 2012 10:48:23 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1Sguxu-0004w1-Kq; Tue, 19 Jun 2012 09:43:14 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1Sguxs-0004vr-Un
+       for xen-devel@lists.xen.org; Tue, 19 Jun 2012 09:43:13 +0000
+Received: from [85.158.143.35:20569] by server-2.bemta-4.messagelabs.com id
+       64/01-17938-0B940EF4; Tue, 19 Jun 2012 09:43:12 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-16.tower-21.messagelabs.com!1340098991!14464280!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDEyOTQ=\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 24623 invoked from network); 19 Jun 2012 09:43:11 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-16.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
+       19 Jun 2012 09:43:11 -0000
+X-IronPort-AV: E=Sophos;i="4.75,797,1330905600"; d="scan'208";a="13096083"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       19 Jun 2012 09:43:11 +0000
+Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0;
+       Tue, 19 Jun 2012 10:43:11 +0100
+Message-ID: <1340098989.16742.2.camel@zakaz.uk.xensource.com>
+From: Ian Campbell <Ian.Campbell@citrix.com>
+To: Tim Deegan <tim@xen.org>
+Date: Tue, 19 Jun 2012 10:43:09 +0100
+In-Reply-To: <20120614084732.GA82539@ocelot.phlegethon.org>
+References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
+       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+       <1338565207-2888-11-git-send-email-ian.campbell@citrix.com>
+       <20120607090334.GC70339@ocelot.phlegethon.org>
+       <1339600416.24104.228.camel@zakaz.uk.xensource.com>
+       <20120614084732.GA82539@ocelot.phlegethon.org>
+Organization: Citrix Systems, Inc.
+X-Mailer: Evolution 3.2.2-1 
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 11/38] arm: implement p2m lookup
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Thu, 2012-06-14 at 09:47 +0100, Tim Deegan wrote:
+> At 16:13 +0100 on 13 Jun (1339604016), Ian Campbell wrote:
+> > Yes, that looks nice, although you still need a bit of a quirk for the
+> > third level table bit. Patch below.
+> 
+> Much nicer.   One more round of nits below if you feel keen; in any case,
+> Acked-by: Tim Deegan <tim@xen.org>
+
+Thanks. Your nits were sensible so I have folded them in.
+
+
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1340199444.4906.54.camel@zakaz.uk.xensource.com> b/config/examples/test/corpus/<1340199444.4906.54.camel@zakaz.uk.xensource.com>
new file mode 100644 (file)
index 0000000..35156e4
--- /dev/null
@@ -0,0 +1,410 @@
+From xen-devel-bounces@lists.xen.org Wed Jun 20 14:41:55 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 20 Jun 2012 14:41:55 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1ShLAK-00088Y-El
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 20 Jun 2012 14:41:55 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1ShL6H-0004CG-MM; Wed, 20 Jun 2012 13:37:37 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1ShL6F-0004CB-Iw
+       for xen-devel@lists.xen.org; Wed, 20 Jun 2012 13:37:35 +0000
+Received: from [85.158.143.99:16206] by server-2.bemta-4.messagelabs.com id
+       9C/0A-17938-E12D1EF4; Wed, 20 Jun 2012 13:37:34 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-8.tower-216.messagelabs.com!1340199452!18495804!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDE1ODM=\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 5728 invoked from network); 20 Jun 2012 13:37:32 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-8.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
+       20 Jun 2012 13:37:32 -0000
+X-IronPort-AV: E=Sophos;i="4.77,444,1336348800"; d="scan'208";a="13125368"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       20 Jun 2012 13:37:26 +0000
+Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0;
+       Wed, 20 Jun 2012 14:37:26 +0100
+Message-ID: <1340199444.4906.54.camel@zakaz.uk.xensource.com>
+From: Ian Campbell <Ian.Campbell@citrix.com>
+To: Tim Deegan <tim@xen.org>
+Date: Wed, 20 Jun 2012 14:37:24 +0100
+In-Reply-To: <20120607101826.GJ70339@ocelot.phlegethon.org>
+References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
+       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+       <1338565207-2888-18-git-send-email-ian.campbell@citrix.com>
+       <20120607092951.GE70339@ocelot.phlegethon.org>
+       <1339061691.15265.49.camel@zakaz.uk.xensource.com>
+       <20120607101826.GJ70339@ocelot.phlegethon.org>
+Organization: Citrix Systems, Inc.
+X-Mailer: Evolution 3.2.2-1 
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 18/38] arm: implement vpl011 (UART) emulator.
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Thu, 2012-06-07 at 11:18 +0100, Tim Deegan wrote:
+> At 10:34 +0100 on 07 Jun (1339065291), Ian Campbell wrote:
+> > On Thu, 2012-06-07 at 10:29 +0100, Tim Deegan wrote:
+> > > > +int domain_uart0_init(struct domain *d)
+> > > > +{
+> > > > +    int rc;
+> > > > +    if ( d->domain_id == 0 )
+> > > > +        return 0;
+> > > 
+> > > Why?  There's no equivalent gate on the MMIO handlers.
+> > 
+> > dom0 has the actual uart mapped at this address, not the emulated one.
+> > Maybe that should be written at the caller instead?
+> 
+> Yes - ideally in the same place that puts the MMIO hooks in that will
+> call the other functions in this file. 
+
+Turns out that there isn't actually such a place, these are part of a
+global list of mmio handlers which is traversed for any guest dabt.
+
+This might be something we want to improve (using bits in not-present
+p2m entries to identify specific handlers or whatever) but not right now
+I think.
+
+I've pulled the dom0 check out into the caller of the init function, but
+left an ASSERT behind. I also shortened that long line by using a
+#define for the end and removing the dom0 check from there too.
+
+8<------------------------------------------------------------
+
+>From 401e861ff99860d07e758c8d6e3260b8fb847fc5 Mon Sep 17 00:00:00 2001
+From: Ian Campbell <ian.campbell@citrix.com>
+Date: Mon, 14 May 2012 12:55:31 +0100
+Subject: [PATCH] arm: implement vpl011 (UART) emulator.
+
+This is not interended to provide a full emulation, but rather just enough to
+satisfy the use made by Linux' boot time decompressor code (which is too early
+for DT etc)
+
+Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+---
+ xen/arch/arm/Makefile        |    1 +
+ xen/arch/arm/domain.c        |    5 ++
+ xen/arch/arm/io.c            |    1 +
+ xen/arch/arm/io.h            |    1 +
+ xen/arch/arm/vpl011.c        |  145 ++++++++++++++++++++++++++++++++++++++++++
+ xen/arch/arm/vpl011.h        |   34 ++++++++++
+ xen/include/asm-arm/domain.h |    8 ++
+ 7 files changed, 195 insertions(+), 0 deletions(-)
+ create mode 100644 xen/arch/arm/vpl011.c
+ create mode 100644 xen/arch/arm/vpl011.h
+
+diff --git a/xen/arch/arm/Makefile b/xen/arch/arm/Makefile
+index 9440a21..5a87ba6 100644
+--- a/xen/arch/arm/Makefile
++++ b/xen/arch/arm/Makefile
+@@ -25,6 +25,7 @@ obj-y += shutdown.o
+ obj-y += traps.o
+ obj-y += vgic.o
+ obj-y += vtimer.o
++obj-y += vpl011.o
+ #obj-bin-y += ....o
+diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
+index 63bad07..931261b 100644
+--- a/xen/arch/arm/domain.c
++++ b/xen/arch/arm/domain.c
+@@ -13,6 +13,7 @@
+ #include "gic.h"
+ #include "vtimer.h"
++#include "vpl011.h"
+ DEFINE_PER_CPU(struct vcpu *, curr_vcpu);
+@@ -215,6 +216,10 @@ int arch_domain_create(struct domain *d, unsigned int domcr_flags)
+     if ( (rc = domain_vgic_init(d)) != 0 )
+         goto fail;
++    /* Domain 0 gets a real UART not an emulated one */
++    if ( d->domain_id && (rc = domain_uart0_init(d)) != 0 )
++        goto fail;
++
+     rc = 0;
+ fail:
+     return rc;
+diff --git a/xen/arch/arm/io.c b/xen/arch/arm/io.c
+index 4461225..18f6164 100644
+--- a/xen/arch/arm/io.c
++++ b/xen/arch/arm/io.c
+@@ -25,6 +25,7 @@
+ static const struct mmio_handler *const mmio_handlers[] =
+ {
+     &vgic_distr_mmio_handler,
++    &uart0_mmio_handler,
+ };
+ #define MMIO_HANDLER_NR ARRAY_SIZE(mmio_handlers)
+diff --git a/xen/arch/arm/io.h b/xen/arch/arm/io.h
+index 8cc5ca7..9a507f5 100644
+--- a/xen/arch/arm/io.h
++++ b/xen/arch/arm/io.h
+@@ -40,6 +40,7 @@ struct mmio_handler {
+ };
+ extern const struct mmio_handler vgic_distr_mmio_handler;
++extern const struct mmio_handler uart0_mmio_handler;
+ extern int handle_mmio(mmio_info_t *info);
+diff --git a/xen/arch/arm/vpl011.c b/xen/arch/arm/vpl011.c
+new file mode 100644
+index 0000000..5dc8b28
+--- /dev/null
++++ b/xen/arch/arm/vpl011.c
+@@ -0,0 +1,145 @@
++/*
++ * xen/arch/arm/vpl011.c
++ *
++ * ARM PL011 UART Emulator (DEBUG)
++ *
++ * Ian Campbell <ian.campbell@citrix.com>
++ * Copyright (c) 2012 Citrix Systems.
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++ * GNU General Public License for more details.
++ */
++
++/*
++ * This is not intended to be a full emulation of a PL011
++ * device. Rather it is intended to provide a sufficient veneer of one
++ * that early code (such as Linux's boot time decompressor) which
++ * hardcodes output directly to such a device are able to make progress.
++ *
++ * This device is not intended to be enumerable or exposed to the OS
++ * (e.g. via Device Tree).
++ */
++
++#include <xen/config.h>
++#include <xen/lib.h>
++#include <xen/sched.h>
++#include <xen/errno.h>
++#include <xen/ctype.h>
++
++#include "io.h"
++
++#define UART0_START 0x1c090000
++#define UART0_END   (UART0_START+65536)
++
++#define UARTDR 0x000
++#define UARTFR 0x018
++
++int domain_uart0_init(struct domain *d)
++{
++    ASSERT( d->domain_id );
++
++    spin_lock_init(&d->arch.uart0.lock);
++    d->arch.uart0.idx = 0;
++
++    d->arch.uart0.buf = xzalloc_array(char, VPL011_BUF_SIZE);
++    if ( !d->arch.uart0.buf )
++        return -ENOMEM;
++
++    return 0;
++
++}
++
++static void uart0_print_char(char c)
++{
++    struct vpl011 *uart = &current->domain->arch.uart0;
++
++    /* Accept only printable characters, newline, and horizontal tab. */
++    if ( !isprint(c) && (c != '\n') && (c != '\t') )
++        return ;
++
++    spin_lock(&uart->lock);
++    uart->buf[uart->idx++] = c;
++    if ( (uart->idx == (VPL011_BUF_SIZE - 2)) || (c == '\n') )
++    {
++        if ( c != '\n' )
++            uart->buf[uart->idx++] = '\n';
++        uart->buf[uart->idx] = '\0';
++        printk(XENLOG_G_DEBUG "DOM%u: %s",
++               current->domain->domain_id, uart->buf);
++        uart->idx = 0;
++    }
++    spin_unlock(&uart->lock);
++}
++
++static int uart0_mmio_check(struct vcpu *v, paddr_t addr)
++{
++    return addr >= UART0_START && addr < UART0_END;
++}
++
++static int uart0_mmio_read(struct vcpu *v, mmio_info_t *info)
++{
++    struct hsr_dabt dabt = info->dabt;
++    struct cpu_user_regs *regs = guest_cpu_user_regs();
++    uint32_t *r = &regs->r0 + dabt.reg;
++    int offset = (int)(info->gpa - UART0_START);
++
++    switch ( offset )
++    {
++    case UARTDR:
++        *r = 0;
++        return 1;
++    case UARTFR:
++        *r = 0x87; /* All holding registers empty, ready to send etc */
++        return 1;
++    default:
++        printk("VPL011: unhandled read r%d offset %#08x\n",
++               dabt.reg, offset);
++        domain_crash_synchronous();
++    }
++}
++
++static int uart0_mmio_write(struct vcpu *v, mmio_info_t *info)
++{
++    struct hsr_dabt dabt = info->dabt;
++    struct cpu_user_regs *regs = guest_cpu_user_regs();
++    uint32_t *r = &regs->r0 + dabt.reg;
++    int offset = (int)(info->gpa - UART0_START);
++
++    switch ( offset )
++    {
++    case UARTDR:
++        /* ignore any status bits */
++        uart0_print_char((int)((*r) & 0xFF));
++        return 1;
++    case UARTFR:
++        /* Silently ignore */
++        return 1;
++    default:
++        printk("VPL011: unhandled write r%d=%"PRIx32" offset %#08x\n",
++               dabt.reg, *r, offset);
++        domain_crash_synchronous();
++    }
++}
++
++const struct mmio_handler uart0_mmio_handler = {
++    .check_handler = uart0_mmio_check,
++    .read_handler  = uart0_mmio_read,
++    .write_handler = uart0_mmio_write,
++};
++
++/*
++ * Local variables:
++ * mode: C
++ * c-set-style: "BSD"
++ * c-basic-offset: 4
++ * indent-tabs-mode: nil
++ * End:
++ */
++
+diff --git a/xen/arch/arm/vpl011.h b/xen/arch/arm/vpl011.h
+new file mode 100644
+index 0000000..952d812
+--- /dev/null
++++ b/xen/arch/arm/vpl011.h
+@@ -0,0 +1,34 @@
++/*
++ * xen/arch/arm/vpl011.h
++ *
++ * ARM PL011 Emulation Support
++ *
++ * Ian Campbell <ian.campbell@citrix.com>
++ * Copyright (c) 2012 Citrix Systems.
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ *
++ * This program is distributed in the hope that it will be useful,
++ * but WITHOUT ANY WARRANTY; without even the implied warranty of
++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
++ * GNU General Public License for more details.
++ */
++
++#ifndef __ARCH_ARM_VPL011_H__
++#define __ARCH_ARM_VPL011_H__
++
++extern int domain_uart0_init(struct domain *d);
++
++#endif
++
++/*
++ * Local variables:
++ * mode: C
++ * c-set-style: "BSD"
++ * c-basic-offset: 4
++ * indent-tabs-mode: nil
++ * End:
++ */
+diff --git a/xen/include/asm-arm/domain.h b/xen/include/asm-arm/domain.h
+index 10ed540..f295a82 100644
+--- a/xen/include/asm-arm/domain.h
++++ b/xen/include/asm-arm/domain.h
+@@ -48,6 +48,14 @@ struct arch_domain
+         struct vgic_irq_rank *shared_irqs;
+         struct pending_irq *pending_irqs;
+     } vgic;
++
++    struct vpl011 {
++#define VPL011_BUF_SIZE 128
++        char                  *buf;
++        int                    idx;
++        spinlock_t             lock;
++    } uart0;
++
+ }  __cacheline_aligned;
+ struct arch_vcpu
+-- 
+1.7.9.1
+
+
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1340200126.4906.56.camel@zakaz.uk.xensource.com> b/config/examples/test/corpus/<1340200126.4906.56.camel@zakaz.uk.xensource.com>
new file mode 100644 (file)
index 0000000..5bf1449
--- /dev/null
@@ -0,0 +1,247 @@
+From xen-devel-bounces@lists.xen.org Wed Jun 20 14:52:42 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 20 Jun 2012 14:52:42 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1ShLKm-0008Au-2c
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 20 Jun 2012 14:52:42 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1ShLHA-0004ig-0O; Wed, 20 Jun 2012 13:48:52 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1ShLH7-0004iY-Ue
+       for xen-devel@lists.xen.org; Wed, 20 Jun 2012 13:48:50 +0000
+Received: from [85.158.139.83:61001] by server-2.bemta-5.messagelabs.com id
+       98/E0-04598-1C4D1EF4; Wed, 20 Jun 2012 13:48:49 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-7.tower-182.messagelabs.com!1340200128!24686627!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDE1ODM=\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 21231 invoked from network); 20 Jun 2012 13:48:48 -0000
+Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-7.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
+       20 Jun 2012 13:48:48 -0000
+X-IronPort-AV: E=Sophos;i="4.77,444,1336348800"; d="scan'208";a="13125664"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       20 Jun 2012 13:48:48 +0000
+Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0;
+       Wed, 20 Jun 2012 14:48:47 +0100
+Message-ID: <1340200126.4906.56.camel@zakaz.uk.xensource.com>
+From: Ian Campbell <Ian.Campbell@citrix.com>
+To: Tim Deegan <tim@xen.org>
+Date: Wed, 20 Jun 2012 14:48:46 +0100
+In-Reply-To: <20120607094152.GG70339@ocelot.phlegethon.org>
+References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
+       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+       <1338565207-2888-21-git-send-email-ian.campbell@citrix.com>
+       <20120607094152.GG70339@ocelot.phlegethon.org>
+Organization: Citrix Systems, Inc.
+X-Mailer: Evolution 3.2.2-1 
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 21/38] arm: dump guest s1 walk on data abort
+ which is not a stage 2 issue.
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Thu, 2012-06-07 at 10:41 +0100, Tim Deegan wrote:
+> At 15:39 +0000 on 01 Jun (1338565190), Ian Campbell wrote:
+> > +    offset = addr >> (12+10);
+> > +    printk("1ST[%#03"PRIx32"] (%#"PRIpaddr") = %#010"PRIx32"\n",
+> 
+> Nit: 0x%08 prints '0' as '0x00000000', which is nicer I think.
+
+Agreed, I wasn't aware of this nit of the printf formatting strings
+until you told me.
+
+> Otherwise: ack.
+
+Thanks, update patch is below.
+
+8<---------------------------------------------------------------
+
+>From e045b07e1509482e66333a9300668b4d24c33d13 Mon Sep 17 00:00:00 2001
+From: Ian Campbell <ian.campbell@citrix.com>
+Date: Mon, 14 May 2012 14:19:41 +0100
+Subject: [PATCH] arm: dump guest s1 walk on data abort which is not a stage 2
+ issue.
+
+Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+Acked-by: Tim Deegan <tim@xen.org>
+---
+ xen/arch/arm/traps.c            |   75 +++++++++++++++++++++++++++++++++++---
+ xen/include/asm-arm/processor.h |    1 +
+ 2 files changed, 70 insertions(+), 6 deletions(-)
+
+diff --git a/xen/arch/arm/traps.c b/xen/arch/arm/traps.c
+index 40bb375..d8eb5a9 100644
+--- a/xen/arch/arm/traps.c
++++ b/xen/arch/arm/traps.c
+@@ -28,6 +28,7 @@
+ #include <xen/errno.h>
+ #include <xen/hypercall.h>
+ #include <xen/softirq.h>
++#include <xen/domain_page.h>
+ #include <public/xen.h>
+ #include <asm/regs.h>
+ #include <asm/cpregs.h>
+@@ -528,6 +529,62 @@ static void do_cp15_64(struct cpu_user_regs *regs,
+ }
++void dump_guest_s1_walk(struct domain *d, uint32_t addr)
++{
++    uint32_t ttbcr = READ_CP32(TTBCR);
++    uint32_t ttbr0 = READ_CP32(TTBR0);
++    paddr_t paddr;
++    uint32_t offset;
++    uint32_t *first = NULL, *second = NULL;
++
++    printk("dom%d VA 0x%08"PRIx32"\n", d->domain_id, addr);
++    printk("    TTBCR: 0x%08"PRIx32"\n", ttbcr);
++    printk("    TTBR0: 0x%08"PRIx32" = 0x%"PRIpaddr"\n",
++           ttbr0, p2m_lookup(d, ttbr0 & PAGE_MASK));
++
++    if ( ttbcr & TTBCR_EAE )
++    {
++        printk("Cannot handle LPAE guest PT walk\n");
++        return;
++    }
++    if ( (ttbcr & TTBCR_N_MASK) != 0 )
++    {
++        printk("Cannot handle TTBR1 guest walks\n");
++        return;
++    }
++
++    paddr = p2m_lookup(d, ttbr0 & PAGE_MASK);
++    if ( paddr == INVALID_PADDR )
++    {
++        printk("Failed TTBR0 maddr lookup\n");
++        goto done;
++    }
++    first = map_domain_page(paddr>>PAGE_SHIFT);
++
++    offset = addr >> (12+10);
++    printk("1ST[0x%"PRIx32"] (0x%"PRIpaddr") = 0x%08"PRIx32"\n",
++           offset, paddr, first[offset]);
++    if ( !(first[offset] & 0x1) ||
++         !(first[offset] & 0x2) )
++        goto done;
++
++    paddr = p2m_lookup(d, first[offset] & PAGE_MASK);
++
++    if ( paddr == INVALID_PADDR )
++    {
++        printk("Failed L1 entry maddr lookup\n");
++        goto done;
++    }
++    second = map_domain_page(paddr>>PAGE_SHIFT);
++    offset = (addr >> 12) & 0x3FF;
++    printk("2ND[0x%"PRIx32"] (0x%"PRIpaddr") = 0x%08"PRIx32"\n",
++           offset, paddr, second[offset]);
++
++done:
++    if (second) unmap_domain_page(second);
++    if (first) unmap_domain_page(first);
++}
++
+ static void do_trap_data_abort_guest(struct cpu_user_regs *regs,
+                                      struct hsr_dabt dabt)
+ {
+@@ -535,11 +592,12 @@ static void do_trap_data_abort_guest(struct cpu_user_regs *regs,
+     int level = -1;
+     mmio_info_t info;
++    info.dabt = dabt;
++    info.gva = READ_CP32(HDFAR);
++
+     if (dabt.s1ptw)
+         goto bad_data_abort;
+-    info.dabt = dabt;
+-    info.gva = READ_CP32(HDFAR);
+     info.gpa = gva_to_ipa(info.gva);
+     if (handle_mmio(&info))
+@@ -553,18 +611,23 @@ bad_data_abort:
+     msg = decode_fsc( dabt.dfsc, &level);
+     printk("Guest data abort: %s%s%s\n"
+-           "    gva=%"PRIx32" gpa=%"PRIpaddr"\n",
++           "    gva=%"PRIx32"\n",
+            msg, dabt.s1ptw ? " S2 during S1" : "",
+            fsc_level_str(level),
+-           info.gva, info.gpa);
+-    if (dabt.valid)
++           info.gva);
++    if ( !dabt.s1ptw )
++        printk("    gpa=%"PRIpaddr"\n", info.gpa);
++    if ( dabt.valid )
+         printk("    size=%d sign=%d write=%d reg=%d\n",
+                dabt.size, dabt.sign, dabt.write, dabt.reg);
+     else
+         printk("    instruction syndrome invalid\n");
+     printk("    eat=%d cm=%d s1ptw=%d dfsc=%d\n",
+            dabt.eat, dabt.cache, dabt.s1ptw, dabt.dfsc);
+-
++    if ( !dabt.s1ptw )
++        dump_p2m_lookup(current->domain, info.gpa);
++    else
++        dump_guest_s1_walk(current->domain, info.gva);
+     show_execution_state(regs);
+     panic("Unhandled guest data abort\n");
+ }
+diff --git a/xen/include/asm-arm/processor.h b/xen/include/asm-arm/processor.h
+index ec6fb48..81924a4 100644
+--- a/xen/include/asm-arm/processor.h
++++ b/xen/include/asm-arm/processor.h
+@@ -25,6 +25,7 @@
+ #define PSR_JAZELLE     (1<<24)       /* Jazelle Mode */
+ /* TTBCR Translation Table Base Control Register */
++#define TTBCR_EAE    0x80000000
+ #define TTBCR_N_MASK 0x07
+ #define TTBCR_N_16KB 0x00
+ #define TTBCR_N_8KB  0x01
+-- 
+1.7.9.1
+
+
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1340200398.4906.60.camel@zakaz.uk.xensource.com> b/config/examples/test/corpus/<1340200398.4906.60.camel@zakaz.uk.xensource.com>
new file mode 100644 (file)
index 0000000..c4d94d6
--- /dev/null
@@ -0,0 +1,131 @@
+From xen-devel-bounces@lists.xen.org Wed Jun 20 14:56:52 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 20 Jun 2012 14:56:52 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1ShLOo-0008Bw-Iu
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 20 Jun 2012 14:56:52 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1ShLLd-0004vO-7n; Wed, 20 Jun 2012 13:53:29 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1ShLLb-0004vI-Uj
+       for xen-devel@lists.xen.org; Wed, 20 Jun 2012 13:53:28 +0000
+Received: from [85.158.138.51:37041] by server-8.bemta-3.messagelabs.com id
+       AD/44-06157-2D5D1EF4; Wed, 20 Jun 2012 13:53:22 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-5.tower-174.messagelabs.com!1340200400!28736181!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDE1ODM=\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 10533 invoked from network); 20 Jun 2012 13:53:20 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-5.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
+       20 Jun 2012 13:53:20 -0000
+X-IronPort-AV: E=Sophos;i="4.77,444,1336348800"; d="scan'208";a="13125778"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       20 Jun 2012 13:53:20 +0000
+Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0;
+       Wed, 20 Jun 2012 14:53:19 +0100
+Message-ID: <1340200398.4906.60.camel@zakaz.uk.xensource.com>
+From: Ian Campbell <Ian.Campbell@citrix.com>
+To: Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+Date: Wed, 20 Jun 2012 14:53:18 +0100
+In-Reply-To: <alpine.DEB.2.02.1206061825480.2415@kaball.uk.xensource.com>
+References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
+       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+       <1338565207-2888-22-git-send-email-ian.campbell@citrix.com>
+       <alpine.DEB.2.02.1206061825480.2415@kaball.uk.xensource.com>
+Organization: Citrix Systems, Inc.
+X-Mailer: Evolution 3.2.2-1 
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 22/38] arm: implement
+ vcpu_show_execution_state
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Wed, 2012-06-06 at 18:26 +0100, Stefano Stabellini wrote:
+> > @@ -334,6 +360,26 @@ void show_execution_state(struct cpu_user_regs *regs)
+> >      show_stack(regs);
+> >  }
+> >  
+> > +void vcpu_show_execution_state(struct vcpu *v)
+> > +{
+> > +    printk("*** Dumping Dom%d vcpu#%d state: ***\n",
+> > +           v->domain->domain_id, v->vcpu_id);
+> > +
+> > +    if ( v == current )
+> > +    {
+> > +        show_execution_state(guest_cpu_user_regs());
+> > +        return;
+> > +    }
+> > +
+> > +    vcpu_pause(v); /* acceptably dangerous */
+> > +
+> > +    vcpu_show_registers(v);
+> > +    if ( !usr_mode(&v->arch.cpu_info->guest_cpu_user_regs) )
+> > +        show_guest_stack(&v->arch.cpu_info->guest_cpu_user_regs);
+> 
+> isn't the if condition inverted?
+
+I think what I'm trying to do here is only dump the stack if the guest
+was in one of the privileged modes (i.e. not user mode). 
+
+I don't really recall why -- I guess I figured the usermode stack was
+not likely to be all that useful. Unless there's some reason (which I've
+forgotten) why we can't walk guest userspace stacks, but given that the
+entirety of the implementation of show_guest_stack() is:
+        static void show_guest_stack(struct cpu_user_regs *regs)
+        {
+            printk("GUEST STACK GOES HERE\n");
+        }
+I guess it doesn't really matter ;-)
+
+Ian.
+> 
+> > +    vcpu_unpause(v);
+> > +}
+> > +
+> >  static void do_unexpected_trap(const char *msg, struct cpu_user_regs *regs)
+> >  {
+> >      printk("Unexpected Trap: %s\n", msg);
+> 
+
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1340200564.4906.61.camel@zakaz.uk.xensource.com> b/config/examples/test/corpus/<1340200564.4906.61.camel@zakaz.uk.xensource.com>
new file mode 100644 (file)
index 0000000..8c34952
--- /dev/null
@@ -0,0 +1,122 @@
+From xen-devel-bounces@lists.xen.org Wed Jun 20 15:00:36 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 20 Jun 2012 15:00:36 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1ShLST-0008Cy-Fr
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 20 Jun 2012 15:00:35 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1ShLOp-00055w-R3; Wed, 20 Jun 2012 13:56:47 +0000
+Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1ShLOn-00055m-RZ
+       for xen-devel@lists.xen.org; Wed, 20 Jun 2012 13:56:46 +0000
+Received: from [193.109.254.147:22216] by server-1.bemta-14.messagelabs.com id
+       18/23-24612-D96D1EF4; Wed, 20 Jun 2012 13:56:45 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-16.tower-27.messagelabs.com!1340200566!8567576!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDE1ODM=\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 30156 invoked from network); 20 Jun 2012 13:56:06 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-16.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
+       20 Jun 2012 13:56:06 -0000
+X-IronPort-AV: E=Sophos;i="4.77,444,1336348800"; d="scan'208";a="13125858"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       20 Jun 2012 13:56:06 +0000
+Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0;
+       Wed, 20 Jun 2012 14:56:05 +0100
+Message-ID: <1340200564.4906.61.camel@zakaz.uk.xensource.com>
+From: Ian Campbell <Ian.Campbell@citrix.com>
+To: Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+Date: Wed, 20 Jun 2012 14:56:04 +0100
+In-Reply-To: <1340200398.4906.60.camel@zakaz.uk.xensource.com>
+References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
+       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+       <1338565207-2888-22-git-send-email-ian.campbell@citrix.com>
+       <alpine.DEB.2.02.1206061825480.2415@kaball.uk.xensource.com>
+       <1340200398.4906.60.camel@zakaz.uk.xensource.com>
+Organization: Citrix Systems, Inc.
+X-Mailer: Evolution 3.2.2-1 
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 22/38] arm: implement
+ vcpu_show_execution_state
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Wed, 2012-06-20 at 14:53 +0100, Ian Campbell wrote:
+> On Wed, 2012-06-06 at 18:26 +0100, Stefano Stabellini wrote:
+> > > @@ -334,6 +360,26 @@ void show_execution_state(struct cpu_user_regs *regs)
+> > >      show_stack(regs);
+> > >  }
+> > >  
+> > > +void vcpu_show_execution_state(struct vcpu *v)
+> > > +{
+> > > +    printk("*** Dumping Dom%d vcpu#%d state: ***\n",
+> > > +           v->domain->domain_id, v->vcpu_id);
+> > > +
+> > > +    if ( v == current )
+> > > +    {
+> > > +        show_execution_state(guest_cpu_user_regs());
+> > > +        return;
+> > > +    }
+> > > +
+> > > +    vcpu_pause(v); /* acceptably dangerous */
+> > > +
+> > > +    vcpu_show_registers(v);
+> > > +    if ( !usr_mode(&v->arch.cpu_info->guest_cpu_user_regs) )
+> > > +        show_guest_stack(&v->arch.cpu_info->guest_cpu_user_regs);
+> > 
+> > isn't the if condition inverted?
+> 
+> I think what I'm trying to do here is only dump the stack if the guest
+> was in one of the privileged modes (i.e. not user mode). 
+> 
+> I don't really recall why -- I guess I figured the usermode stack was
+> not likely to be all that useful.
+
+It looks like I just copied the behaviour of x86, which has:
+   if ( guest_kernel_mode(v, &v->arch.user_regs) )
+        show_guest_stack(v, &v->arch.user_regs);
+
+Ian.
+
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1340206729.4906.74.camel@zakaz.uk.xensource.com> b/config/examples/test/corpus/<1340206729.4906.74.camel@zakaz.uk.xensource.com>
new file mode 100644 (file)
index 0000000..8c7e087
--- /dev/null
@@ -0,0 +1,298 @@
+From xen-devel-bounces@lists.xen.org Wed Jun 20 16:42:51 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 20 Jun 2012 16:42:51 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1ShN3M-0000Ad-PB
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 20 Jun 2012 16:42:51 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1ShMze-0007En-3H; Wed, 20 Jun 2012 15:38:54 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1ShMzc-0007Eg-4v
+       for xen-devel@lists.xen.org; Wed, 20 Jun 2012 15:38:52 +0000
+Received: from [85.158.143.35:52475] by server-2.bemta-4.messagelabs.com id
+       41/EC-17938-B8EE1EF4; Wed, 20 Jun 2012 15:38:51 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-12.tower-21.messagelabs.com!1340206730!12541139!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDE1ODM=\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 18635 invoked from network); 20 Jun 2012 15:38:51 -0000
+Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-12.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
+       20 Jun 2012 15:38:51 -0000
+X-IronPort-AV: E=Sophos;i="4.77,444,1336348800"; d="scan'208";a="13129081"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       20 Jun 2012 15:38:50 +0000
+Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0;
+       Wed, 20 Jun 2012 16:38:50 +0100
+Message-ID: <1340206729.4906.74.camel@zakaz.uk.xensource.com>
+From: Ian Campbell <Ian.Campbell@citrix.com>
+To: Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+Date: Wed, 20 Jun 2012 16:38:49 +0100
+In-Reply-To: <alpine.DEB.2.02.1206061833290.2415@kaball.uk.xensource.com>
+References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
+       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+       <1338565207-2888-23-git-send-email-ian.campbell@citrix.com>
+       <alpine.DEB.2.02.1206061833290.2415@kaball.uk.xensource.com>
+Organization: Citrix Systems, Inc.
+X-Mailer: Evolution 3.2.2-1 
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 23/38] arm: use correct attributes for
+ mappings in copy_from_paddr()
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Wed, 2012-06-06 at 18:38 +0100, Stefano Stabellini wrote:
+> On Fri, 1 Jun 2012, Ian Campbell wrote:
+> > The DTB is in RAM (hence bufferable), kernel is in flash and therefor requires
+> > a device type mapping (hence dev shared).
+> > 
+> > Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+> > ---
+> >  xen/arch/arm/kernel.c       |    8 ++++----
+> >  xen/arch/arm/setup.c        |    2 +-
+> >  xen/include/asm-arm/setup.h |    2 +-
+> >  3 files changed, 6 insertions(+), 6 deletions(-)
+> > 
+> > diff --git a/xen/arch/arm/kernel.c b/xen/arch/arm/kernel.c
+> > index 130d488..1a705c9 100644
+> > --- a/xen/arch/arm/kernel.c
+> > +++ b/xen/arch/arm/kernel.c
+> > @@ -39,7 +39,7 @@ struct minimal_dtb_header {
+> >   * @paddr: source physical address
+> >   * @len: length to copy
+> >   */
+> > -void copy_from_paddr(void *dst, paddr_t paddr, unsigned long len)
+> > +void copy_from_paddr(void *dst, paddr_t paddr, unsigned long len, int mattr)
+> >  {
+> >      void *src = (void *)FIXMAP_ADDR(FIXMAP_MISC);
+> >  
+> > @@ -51,7 +51,7 @@ void copy_from_paddr(void *dst, paddr_t paddr, unsigned long len)
+> >          s = paddr & (PAGE_SIZE-1);
+> >          l = min(PAGE_SIZE - s, len);
+> >  
+> > -        set_fixmap(FIXMAP_MISC, p, DEV_SHARED);
+> > +        set_fixmap(FIXMAP_MISC, p, mattr);
+> >          memcpy(dst, src + s, l);
+> >  
+> >          paddr += l;
+> > @@ -111,7 +111,7 @@ static int kernel_try_zimage_prepare(struct kernel_info *info)
+> >      /*
+> >       * Check for an appended DTB.
+> >       */
+> > -    copy_from_paddr(&dtb_hdr, KERNEL_FLASH_ADDRESS + end - start, sizeof(dtb_hdr));
+> > +    copy_from_paddr(&dtb_hdr, KERNEL_FLASH_ADDRESS + end - start, sizeof(dtb_hdr), DEV_SHARED);
+> >      if (be32_to_cpu(dtb_hdr.magic) == DTB_MAGIC) {
+> >          end += be32_to_cpu(dtb_hdr.total_size);
+> >      }
+> > @@ -151,7 +151,7 @@ static int kernel_try_elf_prepare(struct kernel_info *info)
+> >      if ( info->kernel_img == NULL )
+> >          panic("Cannot allocate temporary buffer for kernel.\n");
+> >  
+> > -    copy_from_paddr(info->kernel_img, KERNEL_FLASH_ADDRESS, KERNEL_FLASH_SIZE);
+> > +    copy_from_paddr(info->kernel_img, KERNEL_FLASH_ADDRESS, KERNEL_FLASH_SIZE, DEV_SHARED);
+> >  
+> >      if ( (rc = elf_init(&info->elf.elf, info->kernel_img, KERNEL_FLASH_SIZE )) != 0 )
+> >          return rc;
+> > diff --git a/xen/arch/arm/setup.c b/xen/arch/arm/setup.c
+> > index b0cfacc..f5473cd 100644
+> > --- a/xen/arch/arm/setup.c
+> > +++ b/xen/arch/arm/setup.c
+> > @@ -122,7 +122,7 @@ static void __init setup_mm(unsigned long dtb_paddr, size_t dtb_size)
+> >       * TODO: handle other payloads too.
+> >       */
+> >      device_tree_flattened = mfn_to_virt(alloc_boot_pages(dtb_pages, 1));
+> > -    copy_from_paddr(device_tree_flattened, dtb_paddr, dtb_size);
+> > +    copy_from_paddr(device_tree_flattened, dtb_paddr, dtb_size, BUFFERABLE);
+> >  
+> >      /* Add non-xenheap memory */
+> >      init_boot_pages(pfn_to_paddr(xenheap_mfn_start + xenheap_pages),
+> > diff --git a/xen/include/asm-arm/setup.h b/xen/include/asm-arm/setup.h
+> > index 05ff89e..faadccc 100644
+> > --- a/xen/include/asm-arm/setup.h
+> > +++ b/xen/include/asm-arm/setup.h
+> > @@ -3,7 +3,7 @@
+> >  
+> >  #include <public/version.h>
+> >  
+> > -void copy_from_paddr(void *dst, paddr_t paddr, unsigned long len);
+> > +void copy_from_paddr(void *dst, paddr_t paddr, unsigned long len, int mattr);
+> >  
+> >  void arch_get_xen_caps(xen_capabilities_info_t *info);
+> >  
+> 
+> The patch is correct, but it shouldn't call the new parameter mattr
+> because it can easily be confused with the memattr bits (see
+> http://marc.info/?l=xen-devel&m=133856578918985).
+> I would call it "int attrindx" instead.
+
+Yes, this is a good point and attrindx is a good name, I'll make that
+change.
+
+I also added a comment to the two sets of #defines explaining which they
+are. Updated patch is:
+
+8<------------------------------------------------
+
+>From 08f78c5b7e31ed0f6533ff6a378c586c0db58276 Mon Sep 17 00:00:00 2001
+From: Ian Campbell <ian.campbell@citrix.com>
+Date: Mon, 14 May 2012 14:02:26 +0100
+Subject: [PATCH] arm: use correct attributes for mappings in
+ copy_from_paddr()
+
+The DTB is in RAM (hence bufferable), kernel is in flash and therefor requires
+a device type mapping (hence dev shared).
+
+Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+Acked-by: David Vrabel <david.vrabel@citrix.com>
+---
+ xen/arch/arm/kernel.c       |    8 ++++----
+ xen/arch/arm/setup.c        |    2 +-
+ xen/include/asm-arm/page.h  |   15 +++++++++++++++
+ xen/include/asm-arm/setup.h |    2 +-
+ 4 files changed, 21 insertions(+), 6 deletions(-)
+
+diff --git a/xen/arch/arm/kernel.c b/xen/arch/arm/kernel.c
+index 130d488..2d56130 100644
+--- a/xen/arch/arm/kernel.c
++++ b/xen/arch/arm/kernel.c
+@@ -39,7 +39,7 @@ struct minimal_dtb_header {
+  * @paddr: source physical address
+  * @len: length to copy
+  */
+-void copy_from_paddr(void *dst, paddr_t paddr, unsigned long len)
++void copy_from_paddr(void *dst, paddr_t paddr, unsigned long len, int attrindx)
+ {
+     void *src = (void *)FIXMAP_ADDR(FIXMAP_MISC);
+@@ -51,7 +51,7 @@ void copy_from_paddr(void *dst, paddr_t paddr, unsigned long len)
+         s = paddr & (PAGE_SIZE-1);
+         l = min(PAGE_SIZE - s, len);
+-        set_fixmap(FIXMAP_MISC, p, DEV_SHARED);
++        set_fixmap(FIXMAP_MISC, p, attrindx);
+         memcpy(dst, src + s, l);
+         paddr += l;
+@@ -111,7 +111,7 @@ static int kernel_try_zimage_prepare(struct kernel_info *info)
+     /*
+      * Check for an appended DTB.
+      */
+-    copy_from_paddr(&dtb_hdr, KERNEL_FLASH_ADDRESS + end - start, sizeof(dtb_hdr));
++    copy_from_paddr(&dtb_hdr, KERNEL_FLASH_ADDRESS + end - start, sizeof(dtb_hdr), DEV_SHARED);
+     if (be32_to_cpu(dtb_hdr.magic) == DTB_MAGIC) {
+         end += be32_to_cpu(dtb_hdr.total_size);
+     }
+@@ -151,7 +151,7 @@ static int kernel_try_elf_prepare(struct kernel_info *info)
+     if ( info->kernel_img == NULL )
+         panic("Cannot allocate temporary buffer for kernel.\n");
+-    copy_from_paddr(info->kernel_img, KERNEL_FLASH_ADDRESS, KERNEL_FLASH_SIZE);
++    copy_from_paddr(info->kernel_img, KERNEL_FLASH_ADDRESS, KERNEL_FLASH_SIZE, DEV_SHARED);
+     if ( (rc = elf_init(&info->elf.elf, info->kernel_img, KERNEL_FLASH_SIZE )) != 0 )
+         return rc;
+diff --git a/xen/arch/arm/setup.c b/xen/arch/arm/setup.c
+index d6c0178..fd70553 100644
+--- a/xen/arch/arm/setup.c
++++ b/xen/arch/arm/setup.c
+@@ -122,7 +122,7 @@ static void __init setup_mm(unsigned long dtb_paddr, size_t dtb_size)
+      * TODO: handle other payloads too.
+      */
+     device_tree_flattened = mfn_to_virt(alloc_boot_pages(dtb_pages, 1));
+-    copy_from_paddr(device_tree_flattened, dtb_paddr, dtb_size);
++    copy_from_paddr(device_tree_flattened, dtb_paddr, dtb_size, BUFFERABLE);
+     /* Add non-xenheap memory */
+     init_boot_pages(pfn_to_paddr(xenheap_mfn_start + xenheap_pages),
+diff --git a/xen/include/asm-arm/page.h b/xen/include/asm-arm/page.h
+index 6efe23c..2b6c1780 100644
+--- a/xen/include/asm-arm/page.h
++++ b/xen/include/asm-arm/page.h
+@@ -36,6 +36,14 @@
+ #define MAIR0VAL 0xeeaa4400
+ #define MAIR1VAL 0xff000004
++/*
++ * Attribute Indexes.
++ *
++ * These are valid in the AttrIndx[2:0] field of an LPAE stage 1 page
++ * table entry. They are indexes into the bytes of the MAIR*
++ * registers, as defined above.
++ *
++ */
+ #define UNCACHED      0x0
+ #define BUFFERABLE    0x1
+ #define WRITETHROUGH  0x2
+@@ -46,6 +54,13 @@
+ #define DEV_WC        BUFFERABLE
+ #define DEV_CACHED    WRITEBACK
++/*
++ * Stage 2 Memory Type.
++ *
++ * These are valid in the MemAttr[3:0] field of an LPAE stage 2 page
++ * table entry.
++ *
++ */
+ #define MATTR_DEV     0x1
+ #define MATTR_MEM     0xf
+diff --git a/xen/include/asm-arm/setup.h b/xen/include/asm-arm/setup.h
+index 05ff89e..6433b4e 100644
+--- a/xen/include/asm-arm/setup.h
++++ b/xen/include/asm-arm/setup.h
+@@ -3,7 +3,7 @@
+ #include <public/version.h>
+-void copy_from_paddr(void *dst, paddr_t paddr, unsigned long len);
++void copy_from_paddr(void *dst, paddr_t paddr, unsigned long len, int attrindx);
+ void arch_get_xen_caps(xen_capabilities_info_t *info);
+-- 
+1.7.9.1
+
+
+
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1340266524.21872.2.camel@zakaz.uk.xensource.com> b/config/examples/test/corpus/<1340266524.21872.2.camel@zakaz.uk.xensource.com>
new file mode 100644 (file)
index 0000000..bbcb399
--- /dev/null
@@ -0,0 +1,132 @@
+From xen-devel-bounces@lists.xen.org Thu Jun 21 09:25:58 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 21 Jun 2012 09:25:58 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1Shci8-0008Ry-DJ
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 21 Jun 2012 09:25:58 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1Shccj-0008CK-O9; Thu, 21 Jun 2012 08:20:17 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1Shcch-0008CF-Bv
+       for xen-devel@lists.xen.org; Thu, 21 Jun 2012 08:20:15 +0000
+Received: from [85.158.143.35:10686] by server-3.bemta-4.messagelabs.com id
+       92/92-05808-E39D2EF4; Thu, 21 Jun 2012 08:20:14 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-4.tower-21.messagelabs.com!1340266810!5633649!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDE3MDQ=\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 2770 invoked from network); 21 Jun 2012 08:20:11 -0000
+Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-4.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
+       21 Jun 2012 08:20:11 -0000
+X-IronPort-AV: E=Sophos;i="4.77,449,1336348800"; d="scan'208";a="13139440"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       21 Jun 2012 08:20:10 +0000
+Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0;
+       Thu, 21 Jun 2012 09:20:10 +0100
+Message-ID: <1340266524.21872.2.camel@zakaz.uk.xensource.com>
+From: Ian Campbell <Ian.Campbell@citrix.com>
+To: Tim Deegan <tim@xen.org>
+In-Reply-To: <20120606181852.GB38649@ocelot.phlegethon.org>
+References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
+       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+       <1338565207-2888-25-git-send-email-ian.campbell@citrix.com>
+       <alpine.DEB.2.02.1206061846260.2415@kaball.uk.xensource.com>
+       <20120606181852.GB38649@ocelot.phlegethon.org>
+Organization: Citrix Systems, Inc.
+Date: Thu, 21 Jun 2012 09:15:24 +0100
+MIME-Version: 1.0
+X-Mailer: Evolution 3.2.2-1 
+Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 25/38] arm: remove old identity map of boot
+ paddr when we are done with it.
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Wed, 2012-06-06 at 19:18 +0100, Tim Deegan wrote:
+> At 19:04 +0100 on 06 Jun (1339009473), Stefano Stabellini wrote:
+> > On Fri, 1 Jun 2012, Ian Campbell wrote:
+> > > Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+> > > ---
+> > >  xen/arch/arm/mm.c |    8 ++++++++
+> > >  1 files changed, 8 insertions(+), 0 deletions(-)
+> > > 
+> > > diff --git a/xen/arch/arm/mm.c b/xen/arch/arm/mm.c
+> > > index 160a4e9..ab52171 100644
+> > > --- a/xen/arch/arm/mm.c
+> > > +++ b/xen/arch/arm/mm.c
+> > > @@ -214,6 +214,14 @@ void __init setup_pagetables(unsigned long boot_phys_offset)
+> > >      lpae_t pte, *p;
+> > >      int i;
+> > >  
+> > > +    if ( boot_phys_offset != 0 )
+> > > +    {
+> > > +        /* Remove the old identity mapping of the boot paddr */
+> > > +        pte.bits = 0;
+> > > +        dest_va = (unsigned long)_start + boot_phys_offset;
+> > > +        write_pte(xen_second + second_linear_offset(dest_va), pte);
+> > > +    }
+> > 
+> > It looks like we are already doing this few lines below.
+> 
+> We used to do this here and now we do it futher down, after the copy.
+> That way the secondary CPUs can come up on the pre-copy tables where
+> the identity map still exists.
+
+I think I wrote this patch before your SMP series went in, but since
+there was no textual conflict I didn't notice that I should nuke it.
+
+Hrm... I was about to do the nuking but without it I see:
+
+        At 0x00000000, Error: Pagetable properties were remapped while
+        MMU was enabled, may be stale translations
+
+from the model. I use 
+        cluster.messages.ignore_warning_level=0x1
+in my cfg which I think is a bit more verbose than the default.
+
+I need to re-figure out what lead me to this change...
+
+Ian.
+
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1340270809.21872.35.camel@zakaz.uk.xensource.com> b/config/examples/test/corpus/<1340270809.21872.35.camel@zakaz.uk.xensource.com>
new file mode 100644 (file)
index 0000000..8efb129
--- /dev/null
@@ -0,0 +1,133 @@
+From xen-devel-bounces@lists.xen.org Thu Jun 21 10:31:39 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 21 Jun 2012 10:31:39 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1Shdjh-0000Hb-AG
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 21 Jun 2012 10:31:39 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1ShdfR-0002Fb-MN; Thu, 21 Jun 2012 09:27:09 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1ShdfP-0002FV-KJ
+       for xen-devel@lists.xen.org; Thu, 21 Jun 2012 09:27:07 +0000
+Received: from [85.158.143.99:19200] by server-1.bemta-4.messagelabs.com id
+       8D/01-24392-AE8E2EF4; Thu, 21 Jun 2012 09:27:06 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-11.tower-216.messagelabs.com!1340270826!20712748!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDE4MTk=\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 5509 invoked from network); 21 Jun 2012 09:27:06 -0000
+Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-11.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
+       21 Jun 2012 09:27:06 -0000
+X-IronPort-AV: E=Sophos;i="4.77,450,1336348800"; d="scan'208";a="13141308"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       21 Jun 2012 09:26:50 +0000
+Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0;
+       Thu, 21 Jun 2012 10:26:50 +0100
+Message-ID: <1340270809.21872.35.camel@zakaz.uk.xensource.com>
+From: Ian Campbell <Ian.Campbell@citrix.com>
+To: "Tim (Xen.org)" <tim@xen.org>
+Date: Thu, 21 Jun 2012 10:26:49 +0100
+In-Reply-To: <1340266524.21872.2.camel@zakaz.uk.xensource.com>
+References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
+       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+       <1338565207-2888-25-git-send-email-ian.campbell@citrix.com>
+       <alpine.DEB.2.02.1206061846260.2415@kaball.uk.xensource.com>
+       <20120606181852.GB38649@ocelot.phlegethon.org>
+       <1340266524.21872.2.camel@zakaz.uk.xensource.com>
+Organization: Citrix Systems, Inc.
+X-Mailer: Evolution 3.2.2-1 
+MIME-Version: 1.0
+Cc: Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 25/38] arm: remove old identity map of boot
+ paddr when we are done with it.
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Thu, 2012-06-21 at 09:15 +0100, Ian Campbell wrote:
+> On Wed, 2012-06-06 at 19:18 +0100, Tim Deegan wrote:
+> > At 19:04 +0100 on 06 Jun (1339009473), Stefano Stabellini wrote:
+> > > On Fri, 1 Jun 2012, Ian Campbell wrote:
+> > > > Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+> > > > ---
+> > > >  xen/arch/arm/mm.c |    8 ++++++++
+> > > >  1 files changed, 8 insertions(+), 0 deletions(-)
+> > > > 
+> > > > diff --git a/xen/arch/arm/mm.c b/xen/arch/arm/mm.c
+> > > > index 160a4e9..ab52171 100644
+> > > > --- a/xen/arch/arm/mm.c
+> > > > +++ b/xen/arch/arm/mm.c
+> > > > @@ -214,6 +214,14 @@ void __init setup_pagetables(unsigned long boot_phys_offset)
+> > > >      lpae_t pte, *p;
+> > > >      int i;
+> > > >  
+> > > > +    if ( boot_phys_offset != 0 )
+> > > > +    {
+> > > > +        /* Remove the old identity mapping of the boot paddr */
+> > > > +        pte.bits = 0;
+> > > > +        dest_va = (unsigned long)_start + boot_phys_offset;
+> > > > +        write_pte(xen_second + second_linear_offset(dest_va), pte);
+> > > > +    }
+> > > 
+> > > It looks like we are already doing this few lines below.
+> > 
+> > We used to do this here and now we do it futher down, after the copy.
+> > That way the secondary CPUs can come up on the pre-copy tables where
+> > the identity map still exists.
+> 
+> I think I wrote this patch before your SMP series went in, but since
+> there was no textual conflict I didn't notice that I should nuke it.
+> 
+> Hrm... I was about to do the nuking but without it I see:
+> 
+>         At 0x00000000, Error: Pagetable properties were remapped while
+>         MMU was enabled, may be stale translations
+
+I must've been running a stale hypervisor image because now I don't see
+this even with the patch removed.
+
+So I've now nuked the patch from my queue.
+
+Ian.
+
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1340701380.3832.36.camel@zakaz.uk.xensource.com> b/config/examples/test/corpus/<1340701380.3832.36.camel@zakaz.uk.xensource.com>
new file mode 100644 (file)
index 0000000..47648a3
--- /dev/null
@@ -0,0 +1,216 @@
+From xen-devel-bounces@lists.xen.org Tue Jun 26 10:08:10 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Tue, 26 Jun 2012 10:08:10 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SjRkl-0005LY-Qc
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 26 Jun 2012 10:08:10 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SjRgc-0002Yu-Ie; Tue, 26 Jun 2012 09:03:50 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1SjRgb-0002Yo-JV
+       for xen-devel@lists.xen.org; Tue, 26 Jun 2012 09:03:49 +0000
+Received: from [85.158.139.83:25895] by server-12.bemta-5.messagelabs.com id
+       0E/BC-25233-4FA79EF4; Tue, 26 Jun 2012 09:03:48 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-6.tower-182.messagelabs.com!1340701427!24379471!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDI0NTE=\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 28966 invoked from network); 26 Jun 2012 09:03:48 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-6.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
+       26 Jun 2012 09:03:48 -0000
+X-IronPort-AV: E=Sophos;i="4.77,476,1336348800"; d="scan'208";a="13216814"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       26 Jun 2012 09:03:02 +0000
+Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0;
+       Tue, 26 Jun 2012 10:03:01 +0100
+Message-ID: <1340701380.3832.36.camel@zakaz.uk.xensource.com>
+From: Ian Campbell <Ian.Campbell@citrix.com>
+To: Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+Date: Tue, 26 Jun 2012 10:03:00 +0100
+In-Reply-To: <alpine.DEB.2.02.1206071131370.2415@kaball.uk.xensource.com>
+References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
+       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+       <1338565207-2888-27-git-send-email-ian.campbell@citrix.com>
+       <alpine.DEB.2.02.1206071131370.2415@kaball.uk.xensource.com>
+Organization: Citrix Systems, Inc.
+X-Mailer: Evolution 3.2.2-1 
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 27/38] arm: split pending SPIs (global) out
+ from pending PPIs and SGIs (per CPU)
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Thu, 2012-06-07 at 11:35 +0100, Stefano Stabellini wrote:
+> On Fri, 1 Jun 2012, Ian Campbell wrote:
+> > This tracks SPIs in struct arch_domain and PPIs+SGIs in struct arch_vcpu which
+> > seems more logical.
+> > 
+> > Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+> > ---
+> >  xen/arch/arm/vgic.c          |   17 ++++++++++-------
+> >  xen/include/asm-arm/domain.h |   10 ++++++++++
+> >  2 files changed, 20 insertions(+), 7 deletions(-)
+> > 
+> > diff --git a/xen/arch/arm/vgic.c b/xen/arch/arm/vgic.c
+> > index 629a0da..91d6166 100644
+> > --- a/xen/arch/arm/vgic.c
+> > +++ b/xen/arch/arm/vgic.c
+> > @@ -82,9 +82,8 @@ int domain_vgic_init(struct domain *d)
+> >      d->arch.vgic.shared_irqs =
+> >          xmalloc_array(struct vgic_irq_rank, DOMAIN_NR_RANKS(d));
+> >      d->arch.vgic.pending_irqs =
+> > -        xmalloc_array(struct pending_irq,
+> > -                d->arch.vgic.nr_lines + (32 * d->max_vcpus));
+> > -    for (i=0; i<d->arch.vgic.nr_lines + (32 * d->max_vcpus); i++)
+> > +        xzalloc_array(struct pending_irq, d->arch.vgic.nr_lines);
+> > +    for (i=0; i<d->arch.vgic.nr_lines; i++)
+> >          INIT_LIST_HEAD(&d->arch.vgic.pending_irqs[i].inflight);
+> >      for (i=0; i<DOMAIN_NR_RANKS(d); i++)
+> >          spin_lock_init(&d->arch.vgic.shared_irqs[i].lock);
+> > @@ -98,6 +97,10 @@ int vcpu_vgic_init(struct vcpu *v)
+> >  
+> >      spin_lock_init(&v->arch.vgic.private_irqs.lock);
+> >  
+> > +    memset(&v->arch.vgic.pending_irqs, 0, sizeof(v->arch.vgic.pending_irqs));
+> > +    for (i = 0; i < 32; i++)
+> > +        INIT_LIST_HEAD(&v->arch.vgic.pending_irqs[i].inflight);
+> > +
+> >      /* For SGI and PPI the target is always this CPU */
+> >      for ( i = 0 ; i < 8 ; i++ )
+> >          v->arch.vgic.private_irqs.itargets[i] =
+> > @@ -535,8 +538,7 @@ struct pending_irq *irq_to_pending(struct vcpu *v, unsigned int irq)
+> >      /* Pending irqs allocation strategy: the first vgic.nr_lines irqs
+> >       * are used for SPIs; the rests are used for per cpu irqs */
+> >      if ( irq < 32 )
+> > -        n = &v->domain->arch.vgic.pending_irqs[irq + (v->vcpu_id * 32)
+> > -            + v->domain->arch.vgic.nr_lines];
+> > +        n = &v->arch.vgic.pending_irqs[irq];
+> >      else
+> >          n = &v->domain->arch.vgic.pending_irqs[irq - 32];
+> >      return n;
+> > @@ -548,6 +550,7 @@ void vgic_vcpu_inject_irq(struct vcpu *v, unsigned int irq, int virtual)
+> >      uint8_t priority;
+> >      struct vgic_irq_rank *rank = vgic_irq_rank(v, 8, idx);
+> >      struct pending_irq *iter, *n = irq_to_pending(v, irq);
+> > +    unsigned long flags;
+> >  
+> >      /* irq still pending */
+> >      if (!list_empty(&n->inflight))
+> > @@ -564,7 +567,7 @@ void vgic_vcpu_inject_irq(struct vcpu *v, unsigned int irq, int virtual)
+> >  
+> >      gic_set_guest_irq(irq, GICH_LR_PENDING, priority);
+> >  
+> > -    spin_lock(&v->arch.vgic.lock);
+> > +    spin_lock_irqsave(&v->arch.vgic.lock, flags);
+> >      list_for_each_entry ( iter, &v->arch.vgic.inflight_irqs, inflight )
+> >      {
+> >          if ( iter->priority > priority )
+> > @@ -575,7 +578,7 @@ void vgic_vcpu_inject_irq(struct vcpu *v, unsigned int irq, int virtual)
+> >          }
+> >      }
+> >      list_add_tail(&n->inflight, &v->arch.vgic.inflight_irqs);
+> > -    spin_unlock(&v->arch.vgic.lock);
+> > +    spin_unlock_irqrestore(&v->arch.vgic.lock, flags);
+> >      /* we have a new higher priority irq, inject it into the guest */
+> >  }
+> 
+> Besides moving PPIs and SGIs to struct vcpu, this patch also turns
+> spin_lock into spin_lock_irqsave in vgic_vcpu_inject_irq: I think it is
+> correct because it can be called in IRQ context,
+
+good point.
+
+> but it needs to be explicitly stated in the commit message.
+
+I've split it into its own patch instead:
+
+8<----------------------------------------
+
+>From 6d4f199127488480f9a9cc2a94bb73734a75ff88 Mon Sep 17 00:00:00 2001
+From: Ian Campbell <ian.campbell@citrix.com>
+Date: Tue, 26 Jun 2012 09:00:55 +0000
+Subject: [PATCH] arm: use interrupt safe spin locks in vgic_vcpu_inject_irq
+
+This function can be called in both interrupt and regular context.
+
+Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+---
+ xen/arch/arm/vgic.c |    5 +++--
+ 1 files changed, 3 insertions(+), 2 deletions(-)
+
+diff --git a/xen/arch/arm/vgic.c b/xen/arch/arm/vgic.c
+index af3523f..91d6166 100644
+--- a/xen/arch/arm/vgic.c
++++ b/xen/arch/arm/vgic.c
+@@ -550,6 +550,7 @@ void vgic_vcpu_inject_irq(struct vcpu *v, unsigned int irq, int virtual)
+     uint8_t priority;
+     struct vgic_irq_rank *rank = vgic_irq_rank(v, 8, idx);
+     struct pending_irq *iter, *n = irq_to_pending(v, irq);
++    unsigned long flags;
+     /* irq still pending */
+     if (!list_empty(&n->inflight))
+@@ -566,7 +567,7 @@ void vgic_vcpu_inject_irq(struct vcpu *v, unsigned int irq, int virtual)
+     gic_set_guest_irq(irq, GICH_LR_PENDING, priority);
+-    spin_lock(&v->arch.vgic.lock);
++    spin_lock_irqsave(&v->arch.vgic.lock, flags);
+     list_for_each_entry ( iter, &v->arch.vgic.inflight_irqs, inflight )
+     {
+         if ( iter->priority > priority )
+@@ -577,7 +578,7 @@ void vgic_vcpu_inject_irq(struct vcpu *v, unsigned int irq, int virtual)
+         }
+     }
+     list_add_tail(&n->inflight, &v->arch.vgic.inflight_irqs);
+-    spin_unlock(&v->arch.vgic.lock);
++    spin_unlock_irqrestore(&v->arch.vgic.lock, flags);
+     /* we have a new higher priority irq, inject it into the guest */
+ }
+-- 
+1.7.9.1
+
+
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1340702747.3832.37.camel@zakaz.uk.xensource.com> b/config/examples/test/corpus/<1340702747.3832.37.camel@zakaz.uk.xensource.com>
new file mode 100644 (file)
index 0000000..a2efccd
--- /dev/null
@@ -0,0 +1,308 @@
+From xen-devel-bounces@lists.xen.org Tue Jun 26 10:30:58 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Tue, 26 Jun 2012 10:30:58 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SjS6m-0005SQ-00
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 26 Jun 2012 10:30:58 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SjS1w-0002pq-Ol; Tue, 26 Jun 2012 09:25:52 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1SjS1v-0002pl-6v
+       for xen-devel@lists.xen.org; Tue, 26 Jun 2012 09:25:51 +0000
+Received: from [85.158.139.83:35995] by server-11.bemta-5.messagelabs.com id
+       23/DB-20400-E1089EF4; Tue, 26 Jun 2012 09:25:50 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-3.tower-182.messagelabs.com!1340702749!29532568!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDI1OTk=\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 6316 invoked from network); 26 Jun 2012 09:25:50 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-3.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
+       26 Jun 2012 09:25:50 -0000
+X-IronPort-AV: E=Sophos;i="4.77,476,1336348800"; d="scan'208";a="13217586"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       26 Jun 2012 09:25:49 +0000
+Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0;
+       Tue, 26 Jun 2012 10:25:49 +0100
+Message-ID: <1340702747.3832.37.camel@zakaz.uk.xensource.com>
+From: Ian Campbell <Ian.Campbell@citrix.com>
+To: Tim Deegan <tim@xen.org>
+Date: Tue, 26 Jun 2012 10:25:47 +0100
+In-Reply-To: <20120607095128.GI70339@ocelot.phlegethon.org>
+References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
+       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+       <1338565207-2888-28-git-send-email-ian.campbell@citrix.com>
+       <20120607095128.GI70339@ocelot.phlegethon.org>
+Organization: Citrix Systems, Inc.
+X-Mailer: Evolution 3.2.2-1 
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 28/38] arm: map GICV in all domains,
+ not just dom0.
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Thu, 2012-06-07 at 10:51 +0100, Tim Deegan wrote:
+> At 15:39 +0000 on 01 Jun (1338565197), Ian Campbell wrote:
+> > diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
+> > index a7fb227..e15c1e8 100644
+> > --- a/xen/arch/arm/domain.c
+> > +++ b/xen/arch/arm/domain.c
+> > @@ -329,13 +329,17 @@ int arch_domain_create(struct domain *d, unsigned int domcr_flags)
+> >  
+> >          if ( (rc = p2m_alloc_table(d)) != 0 )
+> >              goto fail;
+> > -    }
+> >  
+> > -    if ( (rc = domain_vgic_init(d)) != 0 )
+> > -        goto fail;
+> > +        if ( (rc = gicv_setup(d)) != 0 )
+> > +            goto fail;
+> > +
+> > +        if ( (rc = domain_vgic_init(d)) != 0 )
+> > +            goto fail;
+> > +    }
+> >  
+> >      rc = 0;
+> >  fail:
+> > +    /*XXX unwind allocations etc */
+> 
+> Ahem. :)
+
+Indeed ;-)
+
+I've added the following to the end of the series:
+
+8<------------------------------------------------
+
+>From 9b12490d654683b1c3c65eb41ab35e20cd7682db Mon Sep 17 00:00:00 2001
+From: Ian Campbell <ian.campbell@citrix.com>
+Date: Thu, 7 Jun 2012 16:59:57 +0000
+Subject: [PATCH] arm: unwind allocations etc on arch_domain_create_failure
+
+This involves adding the necessary teardown/free functions for some modules.
+
+Don't initialise full arch domain state for the idle domain, it's not needed.
+
+Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+---
+ xen/arch/arm/domain.c     |   42 +++++++++++++++++++++++++-----------------
+ xen/arch/arm/gic.h        |    3 +++
+ xen/arch/arm/p2m.c        |   15 +++++++++++++++
+ xen/arch/arm/vgic.c       |    6 ++++++
+ xen/arch/arm/vpl011.c     |    5 +++++
+ xen/arch/arm/vpl011.h     |    1 +
+ xen/include/asm-arm/p2m.h |    3 +++
+ 7 files changed, 58 insertions(+), 17 deletions(-)
+
+diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
+index c16fa02..f61568b 100644
+--- a/xen/arch/arm/domain.c
++++ b/xen/arch/arm/domain.c
+@@ -317,37 +317,45 @@ int arch_domain_create(struct domain *d, unsigned int domcr_flags)
+ {
+     int rc;
++    /* Idle domains do not need this setup */
++    if ( is_idle_domain(d) )
++        return 0;
++
+     rc = -ENOMEM;
+     if ( (rc = p2m_init(d)) != 0 )
+         goto fail;
+-    if ( !is_idle_domain(d) )
+-    {
+-        rc = -ENOMEM;
+-        if ( (d->shared_info = alloc_xenheap_pages(0, 0)) == NULL )
+-            goto fail;
++    if ( (d->shared_info = alloc_xenheap_pages(0, 0)) == NULL )
++        goto fail;
+-        clear_page(d->shared_info);
+-        share_xen_page_with_guest(
+-                virt_to_page(d->shared_info), d, XENSHARE_writable);
++    clear_page(d->shared_info);
++    share_xen_page_with_guest(
++        virt_to_page(d->shared_info), d, XENSHARE_writable);
+-        if ( (rc = p2m_alloc_table(d)) != 0 )
+-            goto fail;
++    if ( (rc = p2m_alloc_table(d)) != 0 )
++        goto fail;
+-        if ( (rc = gicv_setup(d)) != 0 )
+-            goto fail;
++    if ( (rc = gicv_setup(d)) != 0 )
++        goto fail;
+-        if ( (rc = domain_vgic_init(d)) != 0 )
+-            goto fail;
+-    }
++    if ( (rc = domain_vgic_init(d)) != 0 )
++        goto fail;
+     /* Domain 0 gets a real UART not an emulated one */
+     if ( d->domain_id && (rc = domain_uart0_init(d)) != 0 )
+         goto fail;
+-    rc = 0;
++    return 0;
++
+ fail:
+-    /*XXX unwind allocations etc */
++    d->is_dying = DOMDYING_dead;
++    free_xenheap_page(d->shared_info);
++
++    p2m_teardown(d);
++
++    domain_vgic_free(d);
++    domain_uart0_free(d);
++
+     return rc;
+ }
+diff --git a/xen/arch/arm/gic.h b/xen/arch/arm/gic.h
+index 018d820..e36d6ad 100644
+--- a/xen/arch/arm/gic.h
++++ b/xen/arch/arm/gic.h
+@@ -125,7 +125,10 @@
+ #define VGIC_IRQ_EVTCHN_CALLBACK 31
+ extern int domain_vgic_init(struct domain *d);
++extern void domain_vgic_free(struct domain *d);
++
+ extern int vcpu_vgic_init(struct vcpu *v);
++
+ extern void vgic_vcpu_inject_irq(struct vcpu *v, unsigned int irq,int virtual);
+ extern struct pending_irq *irq_to_pending(struct vcpu *v, unsigned int irq);
+diff --git a/xen/arch/arm/p2m.c b/xen/arch/arm/p2m.c
+index 67bfeba..073216b 100644
+--- a/xen/arch/arm/p2m.c
++++ b/xen/arch/arm/p2m.c
+@@ -288,6 +288,21 @@ int p2m_alloc_table(struct domain *d)
+     return 0;
+ }
++void p2m_teardown(struct domain *d)
++{
++    struct p2m_domain *p2m = &d->arch.p2m;
++    struct page_info *pg;
++
++    spin_lock(&p2m->lock);
++
++    while ( (pg = page_list_remove_head(&p2m->pages)) )
++        free_domheap_page(pg);
++
++    p2m->first_level = NULL;
++
++    spin_unlock(&p2m->lock);
++}
++
+ int p2m_init(struct domain *d)
+ {
+     struct p2m_domain *p2m = &d->arch.p2m;
+diff --git a/xen/arch/arm/vgic.c b/xen/arch/arm/vgic.c
+index 91d6166..06bbd0c 100644
+--- a/xen/arch/arm/vgic.c
++++ b/xen/arch/arm/vgic.c
+@@ -90,6 +90,12 @@ int domain_vgic_init(struct domain *d)
+     return 0;
+ }
++void domain_vgic_free(struct domain *d)
++{
++    xfree(d->arch.vgic.shared_irqs);
++    xfree(d->arch.vgic.pending_irqs);
++}
++
+ int vcpu_vgic_init(struct vcpu *v)
+ {
+     int i;
+diff --git a/xen/arch/arm/vpl011.c b/xen/arch/arm/vpl011.c
+index 5dc8b28..1522667 100644
+--- a/xen/arch/arm/vpl011.c
++++ b/xen/arch/arm/vpl011.c
+@@ -56,6 +56,11 @@ int domain_uart0_init(struct domain *d)
+ }
++void domain_uart0_free(struct domain *d)
++{
++    xfree(d->arch.uart0.buf);
++}
++
+ static void uart0_print_char(char c)
+ {
+     struct vpl011 *uart = &current->domain->arch.uart0;
+diff --git a/xen/arch/arm/vpl011.h b/xen/arch/arm/vpl011.h
+index 952d812..eabd99d 100644
+--- a/xen/arch/arm/vpl011.h
++++ b/xen/arch/arm/vpl011.h
+@@ -21,6 +21,7 @@
+ #define __ARCH_ARM_VPL011_H__
+ extern int domain_uart0_init(struct domain *d);
++extern void domain_uart0_free(struct domain *d);
+ #endif
+diff --git a/xen/include/asm-arm/p2m.h b/xen/include/asm-arm/p2m.h
+index 666bb88..14e71bf 100644
+--- a/xen/include/asm-arm/p2m.h
++++ b/xen/include/asm-arm/p2m.h
+@@ -23,6 +23,9 @@ struct p2m_domain {
+ /* Init the datastructures for later use by the p2m code */
+ int p2m_init(struct domain *d);
++/* Return all the p2m resources to Xen. */
++void p2m_teardown(struct domain *d);
++
+ /* Allocate a new p2m table for a domain.
+  *
+  * Returns 0 for success or -errno.
+-- 
+1.7.9.1
+
+
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1340703036.3832.38.camel@zakaz.uk.xensource.com> b/config/examples/test/corpus/<1340703036.3832.38.camel@zakaz.uk.xensource.com>
new file mode 100644 (file)
index 0000000..87d7b75
--- /dev/null
@@ -0,0 +1,157 @@
+From xen-devel-bounces@lists.xen.org Tue Jun 26 10:34:46 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Tue, 26 Jun 2012 10:34:46 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SjSAT-0005Sy-1V
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 26 Jun 2012 10:34:46 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SjS6f-0002xa-FA; Tue, 26 Jun 2012 09:30:45 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1SjS6d-0002xT-Nr
+       for xen-devel@lists.xen.org; Tue, 26 Jun 2012 09:30:43 +0000
+Received: from [85.158.143.35:62774] by server-2.bemta-4.messagelabs.com id
+       8E/87-17938-34189EF4; Tue, 26 Jun 2012 09:30:43 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-12.tower-21.messagelabs.com!1340703038!13416038!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDI1OTk=\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 6817 invoked from network); 26 Jun 2012 09:30:39 -0000
+Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-12.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
+       26 Jun 2012 09:30:39 -0000
+X-IronPort-AV: E=Sophos;i="4.77,476,1336348800"; d="scan'208";a="13217708"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       26 Jun 2012 09:30:38 +0000
+Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0;
+       Tue, 26 Jun 2012 10:30:37 +0100
+Message-ID: <1340703036.3832.38.camel@zakaz.uk.xensource.com>
+From: Ian Campbell <Ian.Campbell@citrix.com>
+To: Tim Deegan <tim@xen.org>
+Date: Tue, 26 Jun 2012 10:30:36 +0100
+In-Reply-To: <20120607135930.GW70339@ocelot.phlegethon.org>
+References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
+       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+       <1338565207-2888-29-git-send-email-ian.campbell@citrix.com>
+       <20120601170514.GD77921@ocelot.phlegethon.org>
+       <1338577461.14877.61.camel@dagon.hellion.org.uk>
+       <20120607135930.GW70339@ocelot.phlegethon.org>
+Organization: Citrix Systems, Inc.
+X-Mailer: Evolution 3.2.2-1 
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 29/38] arm: delay enabling data-cache until
+ paging enabled.
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Thu, 2012-06-07 at 14:59 +0100, Tim Deegan wrote:
+> At 20:04 +0100 on 01 Jun (1338581061), Ian Campbell wrote:
+> > On Fri, 2012-06-01 at 18:05 +0100, Tim Deegan wrote:
+> > > At 15:39 +0000 on 01 Jun (1338565198), Ian Campbell wrote:
+> > > > With enough warnings enabled the model seemed to be complaining that pages
+> > > > cached before paging was enabled had been mapped with to inconsistent sets of
+> > > > attributes. I'm not convinced that isn't a model issue, nor am I convinced
+> > > > this has really fixed anything, but it seems sensible enough.
+> > > 
+> > > This might be what breaks secondary CPU bringup: pagetables built by CPU
+> > > 0 may not have been flushed all the way to RAM when CPU 1 comes up, and
+> > > CPU 1 isn't participating in cache coherence protocols when it
+> > > starts to need them.
+> > 
+> > The issue here is the lack of the necessary flush, rather than this
+> > change particularly, right?
+> 
+> It turns out to be much more prosaic - the patch to delete the identity
+> mapping from the boot pagetables was scuppering non-boot CPUs.
+> 
+> So this is OK, but can I suggest this to tidy it up?
+
+Seems sensible. With this and Stefano's spelling fix it becomes:
+
+>From fe5304fb1d1e6e607b125ccfbdc59b25e1d84b34 Mon Sep 17 00:00:00 2001
+From: Ian Campbell <ian.campbell@citrix.com>
+Date: Mon, 14 May 2012 15:49:27 +0100
+Subject: [PATCH] arm: enable data-cache at the same time as enabling the MMU,
+ not before
+
+With enough warnings enabled the model seemed to be complaining that pages
+cached before paging was enabled had been mapped with to inconsistent sets of
+attributes. I'm not convinced that isn't a model issue, nor am I convinced
+this has really fixed anything, but it seems sensible enough.
+
+Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+---
+ xen/arch/arm/head.S |    7 ++++---
+ 1 files changed, 4 insertions(+), 3 deletions(-)
+
+diff --git a/xen/arch/arm/head.S b/xen/arch/arm/head.S
+index 9a7714a..cdbe011 100644
+--- a/xen/arch/arm/head.S
++++ b/xen/arch/arm/head.S
+@@ -148,10 +148,11 @@ hyp:
+        * Exceptions in LE ARM,
+        * Low-latency IRQs disabled,
+        * Write-implies-XN disabled (for now),
+-       * I-cache and d-cache enabled,
++       * D-cache disabled (for now),
++       * I-cache enabled,
+        * Alignment checking enabled,
+        * MMU translation disabled (for now). */
+-      ldr   r0, =(HSCTLR_BASE|SCTLR_A|SCTLR_C)
++      ldr   r0, =(HSCTLR_BASE|SCTLR_A)
+       mcr   CP32(r0, HSCTLR)
+       /* Write Xen's PT's paddr into the HTTBR */
+@@ -210,7 +211,7 @@ pt_ready:
+       ldr   r1, =paging            /* Explicit vaddr, not RIP-relative */
+       mrc   CP32(r0, HSCTLR)
+-      orr   r0, r0, #0x1           /* Add in the MMU enable bit */
++      orr   r0, r0, #(SCTLR_M|SCTLR_C) /* Enable MMU and D-cache */
+       dsb                          /* Flush PTE writes and finish reads */
+       mcr   CP32(r0, HSCTLR)       /* now paging is enabled */
+       isb                          /* Now, flush the icache */
+-- 
+1.7.9.1
+
+
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1340703351.3832.42.camel@zakaz.uk.xensource.com> b/config/examples/test/corpus/<1340703351.3832.42.camel@zakaz.uk.xensource.com>
new file mode 100644 (file)
index 0000000..af3ce8f
--- /dev/null
@@ -0,0 +1,188 @@
+From xen-devel-bounces@lists.xen.org Tue Jun 26 10:40:33 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Tue, 26 Jun 2012 10:40:33 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SjSG3-0005UO-Ax
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 26 Jun 2012 10:40:33 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SjSBh-0003B8-6Q; Tue, 26 Jun 2012 09:35:57 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1SjSBf-0003B2-NE
+       for xen-devel@lists.xen.org; Tue, 26 Jun 2012 09:35:55 +0000
+Received: from [85.158.143.99:30698] by server-1.bemta-4.messagelabs.com id
+       DD/C9-24392-B7289EF4; Tue, 26 Jun 2012 09:35:55 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-7.tower-216.messagelabs.com!1340703353!25784853!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDI1OTk=\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 6342 invoked from network); 26 Jun 2012 09:35:53 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-7.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
+       26 Jun 2012 09:35:53 -0000
+X-IronPort-AV: E=Sophos;i="4.77,476,1336348800"; d="scan'208";a="13217877"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       26 Jun 2012 09:35:53 +0000
+Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0;
+       Tue, 26 Jun 2012 10:35:52 +0100
+Message-ID: <1340703351.3832.42.camel@zakaz.uk.xensource.com>
+From: Ian Campbell <Ian.Campbell@citrix.com>
+To: Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+Date: Tue, 26 Jun 2012 10:35:51 +0100
+In-Reply-To: <alpine.DEB.2.02.1206071146180.2415@kaball.uk.xensource.com>
+References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
+       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+       <1338565207-2888-31-git-send-email-ian.campbell@citrix.com>
+       <alpine.DEB.2.02.1206071146180.2415@kaball.uk.xensource.com>
+Organization: Citrix Systems, Inc.
+X-Mailer: Evolution 3.2.2-1 
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 31/38] arm: gic.lock can be taken in
+ interrupt context, so lock appropriately.
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Thu, 2012-06-07 at 11:49 +0100, Stefano Stabellini wrote:
+> On Fri, 1 Jun 2012, Ian Campbell wrote:
+> > In particular it is taken by gic_set_guest_irq which is called by
+> > vgic_vcpu_inject_irq
+> > 
+> > Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+> > ---
+> >  xen/arch/arm/gic.c |   20 ++++++++++----------
+> >  1 files changed, 10 insertions(+), 10 deletions(-)
+> > 
+> > diff --git a/xen/arch/arm/gic.c b/xen/arch/arm/gic.c
+> > index a398f92..ededa99 100644
+> > --- a/xen/arch/arm/gic.c
+> > +++ b/xen/arch/arm/gic.c
+> > @@ -329,19 +329,19 @@ int __init gic_init(void)
+> >  /* Set up the per-CPU parts of the GIC for a secondary CPU */
+> >  void __cpuinit gic_init_secondary_cpu(void)
+> >  {
+> > -    spin_lock(&gic.lock);
+> > +    spin_lock_irq(&gic.lock);
+> >      gic_cpu_init();
+> >      gic_hyp_init();
+> > -    spin_unlock(&gic.lock);
+> > +    spin_unlock_irq(&gic.lock);
+> >  }
+> >  
+> >  /* Shut down the per-CPU GIC interface */
+> >  void gic_disable_cpu(void)
+> >  {
+> > -    spin_lock(&gic.lock);
+> > +    spin_lock_irq(&gic.lock);
+> >      gic_cpu_disable();
+> >      gic_hyp_disable();
+> > -    spin_unlock(&gic.lock);
+> > +    spin_unlock_irq(&gic.lock);
+> >  }
+> >  
+> >  void gic_route_irqs(void)
+> > @@ -439,7 +439,7 @@ void gic_set_guest_irq(unsigned int virtual_irq,
+> >  
+> >      events_maintenance(current);
+> >  
+> > -    spin_lock(&gic.lock);
+> > +    spin_lock_irq(&gic.lock);
+> >  
+> >      if ( list_empty(&gic.lr_pending) )
+> >      {
+> > @@ -465,7 +465,7 @@ void gic_set_guest_irq(unsigned int virtual_irq,
+> >      list_add_tail(&n->lr_queue, &gic.lr_pending);
+> >  
+> >  out:
+> > -    spin_unlock(&gic.lock);
+> > +    spin_unlock_irq(&gic.lock);
+> >      return;
+> >  }
+> >  
+> > @@ -559,7 +559,7 @@ static void events_maintenance(struct vcpu *v)
+> >              (unsigned long *)&vcpu_info(v, evtchn_upcall_pending));
+> >  
+> >      if (!already_pending && gic.event_mask != 0) {
+> > -        spin_lock(&gic.lock);
+> > +        spin_lock_irq(&gic.lock);
+> >          while ((i = find_next_bit((const long unsigned int *) &gic.event_mask,
+> >                          sizeof(uint64_t), i)) < sizeof(uint64_t)) {
+> >  
+> > @@ -569,7 +569,7 @@ static void events_maintenance(struct vcpu *v)
+> >  
+> >              i++;
+> >          }
+> > -        spin_unlock(&gic.lock);
+> > +        spin_unlock_irq(&gic.lock);
+> >      }
+> >  }
+> >  
+> > @@ -585,7 +585,7 @@ static void maintenance_interrupt(int irq, void *dev_id, struct cpu_user_regs *r
+> >                                sizeof(eisr), i)) < sizeof(eisr)) {
+> >          struct pending_irq *p;
+> >  
+> > -        spin_lock(&gic.lock);
+> > +        spin_lock_irq(&gic.lock);
+> >          lr = GICH[GICH_LR + i];
+> >          virq = lr & GICH_LR_VIRTUAL_MASK;
+> >          GICH[GICH_LR + i] = 0;
+> > @@ -601,7 +601,7 @@ static void maintenance_interrupt(int irq, void *dev_id, struct cpu_user_regs *r
+> >          } else {
+> >              gic_inject_irq_stop();
+> >          }
+> > -        spin_unlock(&gic.lock);
+> > +        spin_unlock_irq(&gic.lock);
+> >  
+> >          spin_lock(&current->arch.vgic.lock);
+>                ^
+> shouldn't you change this into spin_lock_irq too?
+
+
+If so then that should be in "arm: use interrupt safe spin locks in
+vgic_vcpu_inject_irq" rather than here?
+
+I think you've reworked this stuff a bit in one of your follow up series
+-- is it worth me changing this here or do you handle it / make it
+irrelevant?
+
+Ian.
+
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1340705906.3832.49.camel@zakaz.uk.xensource.com> b/config/examples/test/corpus/<1340705906.3832.49.camel@zakaz.uk.xensource.com>
new file mode 100644 (file)
index 0000000..a733b63
--- /dev/null
@@ -0,0 +1,101 @@
+From xen-devel-bounces@lists.xen.org Tue Jun 26 11:22:58 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Tue, 26 Jun 2012 11:22:58 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SjSv6-0005as-H6
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 26 Jun 2012 11:22:58 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SjSrI-0003lw-OC; Tue, 26 Jun 2012 10:18:56 +0000
+Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1SjSrH-0003lq-MP
+       for xen-devel@lists.xen.org; Tue, 26 Jun 2012 10:18:55 +0000
+Received: from [193.109.254.147:55395] by server-3.bemta-14.messagelabs.com id
+       97/80-08687-E8C89EF4; Tue, 26 Jun 2012 10:18:54 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-10.tower-27.messagelabs.com!1340705934!3418837!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDI1OTk=\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 4678 invoked from network); 26 Jun 2012 10:18:54 -0000
+Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-10.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
+       26 Jun 2012 10:18:54 -0000
+X-IronPort-AV: E=Sophos;i="4.77,476,1336348800"; d="scan'208";a="13219160"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       26 Jun 2012 10:18:27 +0000
+Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0;
+       Tue, 26 Jun 2012 11:18:27 +0100
+Message-ID: <1340705906.3832.49.camel@zakaz.uk.xensource.com>
+From: Ian Campbell <Ian.Campbell@citrix.com>
+To: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+Date: Tue, 26 Jun 2012 11:18:26 +0100
+In-Reply-To: <1338565207-2888-28-git-send-email-ian.campbell@citrix.com>
+References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
+       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+       <1338565207-2888-28-git-send-email-ian.campbell@citrix.com>
+Organization: Citrix Systems, Inc.
+X-Mailer: Evolution 3.2.2-1 
+MIME-Version: 1.0
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 28/38] arm: map GICV in all domains,
+       not just dom0.
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Fri, 2012-06-01 at 16:39 +0100, Ian Campbell wrote:
+> diff --git a/xen/arch/arm/gic.c b/xen/arch/arm/gic.c
+> index 339c327..a398f92 100644
+> --- a/xen/arch/arm/gic.c
+> +++ b/xen/arch/arm/gic.c
+> @@ -541,14 +541,13 @@ void gic_interrupt(struct cpu_user_regs *regs,
+> int is_fiq)
+>      do_IRQ(regs, irq, is_fiq);
+>  }
+>  
+> -void gicv_setup(struct domain *d)
+> +int gicv_setup(struct domain *d)
+>  {
+> +    printk("GICV setup for DOM%d\n", d->domain_id);
+
+This print was a bit verbose/pointless -- I've removed it.
+
+Ian.
+
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1340713538.3832.72.camel@zakaz.uk.xensource.com> b/config/examples/test/corpus/<1340713538.3832.72.camel@zakaz.uk.xensource.com>
new file mode 100644 (file)
index 0000000..ea6cfe3
--- /dev/null
@@ -0,0 +1,115 @@
+From xen-devel-bounces@lists.xen.org Tue Jun 26 13:31:04 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Tue, 26 Jun 2012 13:31:04 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SjUv7-00069Y-Vy
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 26 Jun 2012 13:31:04 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SjUq0-0006py-Vb; Tue, 26 Jun 2012 12:25:44 +0000
+Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1SjUpy-0006pt-VI
+       for xen-devel@lists.xen.org; Tue, 26 Jun 2012 12:25:43 +0000
+Received: from [193.109.254.147:53212] by server-11.bemta-14.messagelabs.com
+       id D8/DB-24843-64AA9EF4; Tue, 26 Jun 2012 12:25:42 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-16.tower-27.messagelabs.com!1340713540!8454529!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDI1OTk=\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 30253 invoked from network); 26 Jun 2012 12:25:40 -0000
+Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-16.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
+       26 Jun 2012 12:25:40 -0000
+X-IronPort-AV: E=Sophos;i="4.77,477,1336348800"; d="scan'208";a="13222914"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       26 Jun 2012 12:25:39 +0000
+Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0;
+       Tue, 26 Jun 2012 13:25:39 +0100
+Message-ID: <1340713538.3832.72.camel@zakaz.uk.xensource.com>
+From: Ian Campbell <Ian.Campbell@citrix.com>
+To: Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+Date: Tue, 26 Jun 2012 13:25:38 +0100
+In-Reply-To: <alpine.DEB.2.02.1206261238560.27860@kaball.uk.xensource.com>
+References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
+       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+       <1338565207-2888-31-git-send-email-ian.campbell@citrix.com>
+       <alpine.DEB.2.02.1206071146180.2415@kaball.uk.xensource.com>
+       <1340703351.3832.42.camel@zakaz.uk.xensource.com>
+       <alpine.DEB.2.02.1206261238560.27860@kaball.uk.xensource.com>
+Organization: Citrix Systems, Inc.
+X-Mailer: Evolution 3.2.2-1 
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 31/38] arm: gic.lock can be taken in
+ interrupt context, so lock appropriately.
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Tue, 2012-06-26 at 12:41 +0100, Stefano Stabellini wrote:
+> On Tue, 26 Jun 2012, Ian Campbell wrote:
+> > > > @@ -601,7 +601,7 @@ static void maintenance_interrupt(int irq, void *dev_id, struct cpu_user_regs *r
+> > > >          } else {
+> > > >              gic_inject_irq_stop();
+> > > >          }
+> > > > -        spin_unlock(&gic.lock);
+> > > > +        spin_unlock_irq(&gic.lock);
+> > > >  
+> > > >          spin_lock(&current->arch.vgic.lock);
+> > >                ^
+> > > shouldn't you change this into spin_lock_irq too?
+> > 
+> > 
+> > If so then that should be in "arm: use interrupt safe spin locks in
+> > vgic_vcpu_inject_irq" rather than here?
+> > 
+> > I think you've reworked this stuff a bit in one of your follow up series
+> > -- is it worth me changing this here or do you handle it / make it
+> > irrelevant?
+>  
+> No, I am not, I am only removing everything related to
+> events_maintenance. I think it is worth fixing it in one of your patches
+> or in a follow up patch.
+
+OK, I'll do it in another patch.
+
+Ian.
+
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1340718320.3832.116.camel@zakaz.uk.xensource.com> b/config/examples/test/corpus/<1340718320.3832.116.camel@zakaz.uk.xensource.com>
new file mode 100644 (file)
index 0000000..3b1a5c1
--- /dev/null
@@ -0,0 +1,209 @@
+From xen-devel-bounces@lists.xen.org Tue Jun 26 14:49:52 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Tue, 26 Jun 2012 14:49:52 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SjW9N-0006M6-7b
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 26 Jun 2012 14:49:51 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SjW59-0000Fw-ML; Tue, 26 Jun 2012 13:45:27 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1SjW57-0000Fk-78
+       for xen-devel@lists.xen.org; Tue, 26 Jun 2012 13:45:25 +0000
+Received: from [85.158.143.35:48989] by server-1.bemta-4.messagelabs.com id
+       82/9C-24392-4FCB9EF4; Tue, 26 Jun 2012 13:45:24 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-10.tower-21.messagelabs.com!1340718321!11059332!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDI1OTk=\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 19611 invoked from network); 26 Jun 2012 13:45:22 -0000
+Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-10.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
+       26 Jun 2012 13:45:22 -0000
+X-IronPort-AV: E=Sophos;i="4.77,477,1336348800"; d="scan'208";a="13225411"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       26 Jun 2012 13:45:21 +0000
+Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0;
+       Tue, 26 Jun 2012 14:45:21 +0100
+Message-ID: <1340718320.3832.116.camel@zakaz.uk.xensource.com>
+From: Ian Campbell <Ian.Campbell@citrix.com>
+To: Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+Date: Tue, 26 Jun 2012 14:45:20 +0100
+In-Reply-To: <1340713538.3832.72.camel@zakaz.uk.xensource.com>
+References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
+       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+       <1338565207-2888-31-git-send-email-ian.campbell@citrix.com>
+       <alpine.DEB.2.02.1206071146180.2415@kaball.uk.xensource.com>
+       <1340703351.3832.42.camel@zakaz.uk.xensource.com>
+       <alpine.DEB.2.02.1206261238560.27860@kaball.uk.xensource.com>
+       <1340713538.3832.72.camel@zakaz.uk.xensource.com>
+Organization: Citrix Systems, Inc.
+X-Mailer: Evolution 3.2.2-1 
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 31/38] arm: gic.lock can be taken in
+ interrupt context, so lock appropriately.
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Tue, 2012-06-26 at 13:25 +0100, Ian Campbell wrote:
+> On Tue, 2012-06-26 at 12:41 +0100, Stefano Stabellini wrote:
+> > On Tue, 26 Jun 2012, Ian Campbell wrote:
+> > > > > @@ -601,7 +601,7 @@ static void maintenance_interrupt(int irq, void *dev_id, struct cpu_user_regs *r
+> > > > >          } else {
+> > > > >              gic_inject_irq_stop();
+> > > > >          }
+> > > > > -        spin_unlock(&gic.lock);
+> > > > > +        spin_unlock_irq(&gic.lock);
+> > > > >  
+> > > > >          spin_lock(&current->arch.vgic.lock);
+> > > >                ^
+> > > > shouldn't you change this into spin_lock_irq too?
+> > > 
+> > > 
+> > > If so then that should be in "arm: use interrupt safe spin locks in
+> > > vgic_vcpu_inject_irq" rather than here?
+> > > 
+> > > I think you've reworked this stuff a bit in one of your follow up series
+> > > -- is it worth me changing this here or do you handle it / make it
+> > > irrelevant?
+> >  
+> > No, I am not, I am only removing everything related to
+> > events_maintenance. I think it is worth fixing it in one of your patches
+> > or in a follow up patch.
+> 
+> OK, I'll do it in another patch.
+
+Actually, this should have been in "arm: use interrupt safe spin locks
+in vgic_vcpu_inject_irq" after all. I also noticed a bug in that patch
+(using spin_unlock_irq not irqrestore in one exit path from
+vgic_vcpu_inject_irq).
+
+The new combined patch is (this is against my v2 series and replaces
+"arm: use interrupt safe spin locks in vgic_vcpu_inject_irq" there):
+
+8<--------------------------------------------------------------
+
+>From 33832172c77d72cd87505f4926f380ee800ff0c7 Mon Sep 17 00:00:00 2001
+From: Ian Campbell <ian.campbell@citrix.com>
+Date: Tue, 26 Jun 2012 09:00:55 +0000
+Subject: [PATCH] arm: make vgic lock safe for use in interrupt context.
+
+In particular vgic_vcpu_inject_irq can be called in both interupt and regular
+context.
+
+Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+---
+ xen/arch/arm/gic.c  |    4 ++--
+ xen/arch/arm/vgic.c |   11 ++++++-----
+ 2 files changed, 8 insertions(+), 7 deletions(-)
+
+diff --git a/xen/arch/arm/gic.c b/xen/arch/arm/gic.c
+index 339c327..1e60d3b 100644
+--- a/xen/arch/arm/gic.c
++++ b/xen/arch/arm/gic.c
+@@ -604,14 +604,14 @@ static void maintenance_interrupt(int irq, void *dev_id, struct cpu_user_regs *r
+         }
+         spin_unlock(&gic.lock);
+-        spin_lock(&current->arch.vgic.lock);
++        spin_lock_irq(&current->arch.vgic.lock);
+         p = irq_to_pending(current, virq);
+         if ( p->desc != NULL ) {
+             p->desc->status &= ~IRQ_INPROGRESS;
+             GICC[GICC_DIR] = virq;
+         }
+         list_del_init(&p->inflight);
+-        spin_unlock(&current->arch.vgic.lock);
++        spin_unlock_irq(&current->arch.vgic.lock);
+         i++;
+     }
+diff --git a/xen/arch/arm/vgic.c b/xen/arch/arm/vgic.c
+index af3523f..a217151 100644
+--- a/xen/arch/arm/vgic.c
++++ b/xen/arch/arm/vgic.c
+@@ -114,8 +114,8 @@ int vcpu_vgic_init(struct vcpu *v)
+     return 0;
+ }
+-#define vgic_lock(v)   spin_lock(&(v)->domain->arch.vgic.lock)
+-#define vgic_unlock(v) spin_unlock(&(v)->domain->arch.vgic.lock)
++#define vgic_lock(v)   spin_lock_irq(&(v)->domain->arch.vgic.lock)
++#define vgic_unlock(v) spin_unlock_irq(&(v)->domain->arch.vgic.lock)
+ #define vgic_lock_rank(v, r) spin_lock(&(r)->lock)
+ #define vgic_unlock_rank(v, r) spin_unlock(&(r)->lock)
+@@ -550,6 +550,7 @@ void vgic_vcpu_inject_irq(struct vcpu *v, unsigned int irq, int virtual)
+     uint8_t priority;
+     struct vgic_irq_rank *rank = vgic_irq_rank(v, 8, idx);
+     struct pending_irq *iter, *n = irq_to_pending(v, irq);
++    unsigned long flags;
+     /* irq still pending */
+     if (!list_empty(&n->inflight))
+@@ -566,18 +567,18 @@ void vgic_vcpu_inject_irq(struct vcpu *v, unsigned int irq, int virtual)
+     gic_set_guest_irq(irq, GICH_LR_PENDING, priority);
+-    spin_lock(&v->arch.vgic.lock);
++    spin_lock_irqsave(&v->arch.vgic.lock, flags);
+     list_for_each_entry ( iter, &v->arch.vgic.inflight_irqs, inflight )
+     {
+         if ( iter->priority > priority )
+         {
+             list_add_tail(&n->inflight, &iter->inflight);
+-            spin_unlock(&v->arch.vgic.lock);
++            spin_unlock_irqrestore(&v->arch.vgic.lock, flags);
+             return;
+         }
+     }
+     list_add_tail(&n->inflight, &v->arch.vgic.inflight_irqs);
+-    spin_unlock(&v->arch.vgic.lock);
++    spin_unlock_irqrestore(&v->arch.vgic.lock, flags);
+     /* we have a new higher priority irq, inject it into the guest */
+ }
+-- 
+1.7.9.1
+
+
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1340957235.10942.72.camel@zakaz.uk.xensource.com> b/config/examples/test/corpus/<1340957235.10942.72.camel@zakaz.uk.xensource.com>
new file mode 100644 (file)
index 0000000..0e483f4
--- /dev/null
@@ -0,0 +1,99 @@
+From xen-devel-bounces@lists.xen.org Fri Jun 29 09:11:32 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 29 Jun 2012 09:11:32 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SkWIZ-0000qT-HZ
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 29 Jun 2012 09:11:32 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SkWEa-0005y8-7p; Fri, 29 Jun 2012 08:07:20 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1SkWEY-0005xy-RK
+       for Xen-devel@lists.xensource.com; Fri, 29 Jun 2012 08:07:18 +0000
+Received: from [85.158.139.83:38764] by server-11.bemta-5.messagelabs.com id
+       D9/E3-20400-5326DEF4; Fri, 29 Jun 2012 08:07:17 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-6.tower-182.messagelabs.com!1340957237!24964402!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDM1Nzk=\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 15147 invoked from network); 29 Jun 2012 08:07:17 -0000
+Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-6.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
+       29 Jun 2012 08:07:17 -0000
+X-IronPort-AV: E=Sophos;i="4.77,497,1336348800"; d="scan'208";a="13283398"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       29 Jun 2012 08:07:17 +0000
+Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0;
+       Fri, 29 Jun 2012 09:07:17 +0100
+Message-ID: <1340957235.10942.72.camel@zakaz.uk.xensource.com>
+From: Ian Campbell <Ian.Campbell@citrix.com>
+To: Jan Beulich <JBeulich@suse.com>
+Date: Fri, 29 Jun 2012 09:07:15 +0100
+In-Reply-To: <4FED7BD7020000780008CBFB@nat28.tlf.novell.com>
+References: <20120628180007.06bb3fd3@mantra.us.oracle.com>
+       <4FED7BD7020000780008CBFB@nat28.tlf.novell.com>
+Organization: Citrix Systems, Inc.
+X-Mailer: Evolution 3.2.2-1 
+MIME-Version: 1.0
+Cc: "Xen-devel@lists.xensource.com" <Xen-devel@lists.xensource.com>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [HYBRID]: XEN_EMULATE_PREFIX in user process
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Fri, 2012-06-29 at 08:56 +0100, Jan Beulich wrote:
+> >>> On 29.06.12 at 03:00, Mukesh Rathor <mukesh.rathor@oracle.com> wrote:
+> > BTW, for cpuid vmexit, if kernel mode I call pv_cpuid, if user mode, I
+> > just return cpuid values, as that's what would happen without the HVM
+> > container.
+> 
+> Which means you're not leveraging one of the things you could
+> gain from hybrid (after all, returning the native value to user
+> mode is one of the weaknesses of PV).
+
+cpuid masking could happen in the HVM layer too, couldn't it?
+
+Probably "XEN_EMULATE_PREFIX cpuid" and raw "cpuid" ought to return the
+same set of PV values in hybrid?
+
+Ian.
+
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1340957369.10942.74.camel@zakaz.uk.xensource.com> b/config/examples/test/corpus/<1340957369.10942.74.camel@zakaz.uk.xensource.com>
new file mode 100644 (file)
index 0000000..a322bf8
--- /dev/null
@@ -0,0 +1,160 @@
+From xen-devel-bounces@lists.xen.org Fri Jun 29 09:13:08 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 29 Jun 2012 09:13:08 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SkWKA-0000r4-1m
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 29 Jun 2012 09:13:08 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SkWGj-0006Ar-Or; Fri, 29 Jun 2012 08:09:33 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1SkWGi-0006Al-9p
+       for Xen-devel@lists.xensource.com; Fri, 29 Jun 2012 08:09:32 +0000
+Received: from [85.158.143.99:11811] by server-3.bemta-4.messagelabs.com id
+       19/B1-05808-BB26DEF4; Fri, 29 Jun 2012 08:09:31 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-14.tower-216.messagelabs.com!1340957370!20091207!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDM1Nzk=\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 4113 invoked from network); 29 Jun 2012 08:09:31 -0000
+Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-14.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
+       29 Jun 2012 08:09:31 -0000
+X-IronPort-AV: E=Sophos;i="4.77,497,1336348800"; d="scan'208";a="13283450"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       29 Jun 2012 08:09:30 +0000
+Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0;
+       Fri, 29 Jun 2012 09:09:30 +0100
+Message-ID: <1340957369.10942.74.camel@zakaz.uk.xensource.com>
+From: Ian Campbell <Ian.Campbell@citrix.com>
+To: Mukesh Rathor <mukesh.rathor@oracle.com>
+Date: Fri, 29 Jun 2012 09:09:29 +0100
+In-Reply-To: <20120628182602.6cc9b432@mantra.us.oracle.com>
+References: <20120628180007.06bb3fd3@mantra.us.oracle.com>
+       <20120629010903.GC4902@phenom.dumpdata.com>
+       <20120628182602.6cc9b432@mantra.us.oracle.com>
+Organization: Citrix Systems, Inc.
+X-Mailer: Evolution 3.2.2-1 
+MIME-Version: 1.0
+Cc: "Xen-devel@lists.xensource.com" <Xen-devel@lists.xensource.com>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>,
+       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [HYBRID]: XEN_EMULATE_PREFIX in user process
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Fri, 2012-06-29 at 02:26 +0100, Mukesh Rathor wrote:
+> On Thu, 28 Jun 2012 21:09:03 -0400
+> Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> wrote:
+> 
+> > On Thu, Jun 28, 2012 at 06:00:07PM -0700, Mukesh Rathor wrote:
+> > > Hi,
+> > > 
+> > > Booting latest upstream pv linux as dom0, I noticed dm_mapper, user
+> > > level process, is running with XEN_EMULATE_PREFIX cpuid. I am
+> > > wondering if the prefix is statically put there, or how its put
+> > > there?
+> > 
+> > That is impressive. It should be only be in the kernel via the pvops
+> > cpuid call which does this:
+> > 
+> >  252         asm(XEN_EMULATE_PREFIX "cpuid"
+> >  253                 : "=a" (*ax),
+> >  254                   "=b" (*bx),
+> >  255                   "=c" (*cx),
+> >  256                   "=d" (*dx)
+> >  257                 : "0" (*ax), "2" (*cx));
+> >  258 
+> > 
+> > 
+> > > 
+> > > For hybrid, the hvm container traps cpuid, so we don't need to
+> > > prefix cpuid. Less code if I don't have to worry about trapping the
+> > > invalid op. There seems places where the cpuid is run without the
+> > > xen prefix in user mode.
+> > 
+> > Right, you can make the .cpuid pvops call point to the native.
+> 
+> Yup. In the kernel I do that already.
+> 
+> > > 
+> > > BTW, for cpuid vmexit, if kernel mode I call pv_cpuid, if user
+> > > mode, I just return cpuid values, as that's what would happen
+> > > without the HVM container.
+> > 
+> > You mean in PV mode in user-space you would get the unfiltered cpuid
+> > value? Yes, that is true. Which is why I am surprised that dm_mapper
+> > (are you sure it is not a kernel thread?) is doing that.
+> 
+> User mode:
+> 
+> RIP: 0x0000000000400692 CS: 0x0033
+
+CS 0x033 could still be kernel mode on regular PV 64 bit, but I suppose
+not on hybrid?
+
+It's unlikely but not impossible for a userspace developer to have done
+some "Xen magic" and used the prefix in userspace.
+
+What version of dm_mapper do you have? I checked the version in Debian
+Sid and it doesn't do this (at least not directly).
+
+Are you able to run the dm_mapper process under gdb and inspect it to
+find the prefix?
+
+Ian.
+
+> 
+> [0]xkdb> dd 0x0000000000400680 32 0
+> 0000000000400680:  89f88953e5894855 db8500000000b9d3
+> 0000000000400690:  0f6e65780b0f0574 4e89045e890689a2
+> 
+> thanks,
+> Mukesh
+> 
+> 
+> 
+> _______________________________________________
+> Xen-devel mailing list
+> Xen-devel@lists.xen.org
+> http://lists.xen.org/xen-devel
+
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1341007454.5953.18.camel@dagon.hellion.org.uk> b/config/examples/test/corpus/<1341007454.5953.18.camel@dagon.hellion.org.uk>
new file mode 100644 (file)
index 0000000..2e26d39
--- /dev/null
@@ -0,0 +1,115 @@
+From xen-devel-bounces@lists.xen.org Fri Jun 29 23:10:05 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 29 Jun 2012 23:10:05 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SkjO7-0003hF-1T
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 29 Jun 2012 23:10:05 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SkjIq-0000BZ-1y; Fri, 29 Jun 2012 22:04:36 +0000
+Received: from mail27.messagelabs.com ([193.109.254.147])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1SkjIo-0000BT-Rh
+       for Xen-devel@lists.xensource.com; Fri, 29 Jun 2012 22:04:35 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-12.tower-27.messagelabs.com!1341007468!9329632!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDM4NDg=\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 29174 invoked from network); 29 Jun 2012 22:04:29 -0000
+Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-12.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
+       29 Jun 2012 22:04:29 -0000
+X-IronPort-AV: E=Sophos;i="4.77,500,1336348800"; d="scan'208";a="13300620"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       29 Jun 2012 22:04:14 +0000
+Received: from [127.0.0.1] (10.80.16.67) by smtprelay.citrix.com
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0;
+       Fri, 29 Jun 2012 23:04:14 +0100
+Message-ID: <1341007454.5953.18.camel@dagon.hellion.org.uk>
+From: Ian Campbell <Ian.Campbell@citrix.com>
+To: Mukesh Rathor <mukesh.rathor@oracle.com>
+Date: Fri, 29 Jun 2012 23:04:14 +0100
+In-Reply-To: <20120629120738.425781e5@mantra.us.oracle.com>
+References: <20120628180007.06bb3fd3@mantra.us.oracle.com>
+       <20120629010903.GC4902@phenom.dumpdata.com>
+       <20120628182602.6cc9b432@mantra.us.oracle.com>
+       <1340957369.10942.74.camel@zakaz.uk.xensource.com>
+       <20120629111546.50e36f52@mantra.us.oracle.com>
+       <20120629120738.425781e5@mantra.us.oracle.com>
+Organization: Citrix Systems, Inc.
+X-Mailer: Evolution 3.2.2-1+b1 
+MIME-Version: 1.0
+Cc: "Xen-devel@lists.xensource.com" <Xen-devel@lists.xensource.com>,
+       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [HYBRID]: XEN_EMULATE_PREFIX in user process
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Fri, 2012-06-29 at 20:07 +0100, Mukesh Rathor wrote:
+> On Fri, 29 Jun 2012 11:15:46 -0700
+> Mukesh Rathor <mukesh.rathor@oracle.com> wrote:
+> > > It's unlikely but not impossible for a userspace developer to have
+> > > done some "Xen magic" and used the prefix in userspace.
+> > > 
+> > > What version of dm_mapper do you have? I checked the version in
+> > > Debian Sid and it doesn't do this (at least not directly).
+> > > 
+> > > Are you able to run the dm_mapper process under gdb and inspect it
+> > > to find the prefix?
+> > 
+> > Well, let me take that back. dm_mapper is the last printk, but it
+> > could be anything after that or that. 
+> > 
+> > Unfortunately, it's dom0 and during boot, so can't run gdb on it. I am
+> > hacking the kernel now to print every user process name in schedule.
+> 
+> Ah, it's "xen-detect" coming in right after dm_mapper. I see the
+> xen prefix in it. Hmm... let me see if I can add some run time check
+> for hybrid dom0, then won't have to worry about invalid_op trap. Less
+> code that way. That's the end goal anyways...
+
+I don't think reducing code should come at the expense of adding special
+cases for hybrid to userspace programs...
+
+I think you'll have to handle the invalid op, it can't be that much
+code, can it?
+
+Ian
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1341221345.4625.8.camel@zakaz.uk.xensource.com> b/config/examples/test/corpus/<1341221345.4625.8.camel@zakaz.uk.xensource.com>
new file mode 100644 (file)
index 0000000..9c6c994
--- /dev/null
@@ -0,0 +1,113 @@
+From xen-devel-bounces@lists.xen.org Mon Jul 02 10:34:08 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Mon, 02 Jul 2012 10:34:08 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1Sld18-0003IV-0h
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Mon, 02 Jul 2012 10:34:08 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SlcwQ-0003WQ-7k; Mon, 02 Jul 2012 09:29:10 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1SlcwO-0003WG-D6
+       for Xen-devel@lists.xensource.com; Mon, 02 Jul 2012 09:29:08 +0000
+Received: from [85.158.143.35:63694] by server-1.bemta-4.messagelabs.com id
+       E9/B0-24392-3E961FF4; Mon, 02 Jul 2012 09:29:07 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-15.tower-21.messagelabs.com!1341221346!13852451!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDQxMzk=\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 2616 invoked from network); 2 Jul 2012 09:29:07 -0000
+Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-15.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
+       2 Jul 2012 09:29:07 -0000
+X-IronPort-AV: E=Sophos;i="4.77,509,1336348800"; d="scan'208";a="13316741"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       02 Jul 2012 09:29:06 +0000
+Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0; Mon, 2 Jul 2012
+       10:29:06 +0100
+Message-ID: <1341221345.4625.8.camel@zakaz.uk.xensource.com>
+From: Ian Campbell <Ian.Campbell@citrix.com>
+To: Jan Beulich <JBeulich@suse.com>
+Date: Mon, 2 Jul 2012 10:29:05 +0100
+In-Reply-To: <4FF177A3020000780008D091@nat28.tlf.novell.com>
+References: <20120628180007.06bb3fd3@mantra.us.oracle.com>
+       <20120629010903.GC4902@phenom.dumpdata.com>
+       <20120628182602.6cc9b432@mantra.us.oracle.com>
+       <1340957369.10942.74.camel@zakaz.uk.xensource.com>
+       <20120629111546.50e36f52@mantra.us.oracle.com>
+       <20120629120738.425781e5@mantra.us.oracle.com>
+       <1341007454.5953.18.camel@dagon.hellion.org.uk>
+       <20120629155000.5152d544@mantra.us.oracle.com>
+       <4FF177A3020000780008D091@nat28.tlf.novell.com>
+Organization: Citrix Systems, Inc.
+X-Mailer: Evolution 3.2.2-1 
+MIME-Version: 1.0
+Cc: "Xen-devel@lists.xensource.com" <Xen-devel@lists.xensource.com>,
+       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [HYBRID]: XEN_EMULATE_PREFIX in user process
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Mon, 2012-07-02 at 09:27 +0100, Jan Beulich wrote:
+> >>> On 30.06.12 at 00:50, Mukesh Rathor <mukesh.rathor@oracle.com> wrote:
+> > On Fri, 29 Jun 2012 15:04:14 -0700 (PDT)
+> > Ian Campbell <Ian.Campbell@citrix.com> wrote:
+> > 
+> >> On Fri, 2012-06-29 at 20:07 +0100, Mukesh Rathor wrote:
+> >> 
+> >> I don't think reducing code should come at the expense of adding
+> >> special cases for hybrid to userspace programs...
+> >> 
+> >> I think you'll have to handle the invalid op, it can't be that much
+> >> code, can it?
+> > 
+> > Not a whole lot of code, but other than xen-detect, just curious,
+> > what is the possibility of any user level using XEN_EMULATE_PREFIX cpuid?
+> 
+> Obviously any code cloned from xen-detect could, i.e. anything
+> that tries to be Xen-PV-aware.
+
+Which shouldn't be all that much code but we can't really just declare
+it to be wrong...
+
+Ian.
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1343051870.5797.36.camel@zakaz.uk.xensource.com> b/config/examples/test/corpus/<1343051870.5797.36.camel@zakaz.uk.xensource.com>
new file mode 100644 (file)
index 0000000..e4382e2
--- /dev/null
@@ -0,0 +1,197 @@
+From xen-devel-bounces@lists.xen.org Mon Jul 23 15:03:44 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Mon, 23 Jul 2012 15:03:44 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1StJEY-00007n-GV
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Mon, 23 Jul 2012 15:03:44 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1StJ9i-0007Vj-7B; Mon, 23 Jul 2012 13:58:38 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1StJ9g-0007Vd-Fi
+       for xen-devel@lists.xen.org; Mon, 23 Jul 2012 13:58:36 +0000
+Received: from [85.158.143.35:7524] by server-3.bemta-4.messagelabs.com id
+       4A/D7-01511-B885D005; Mon, 23 Jul 2012 13:58:35 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-16.tower-21.messagelabs.com!1343051914!14090064!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDY0MDM=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.2; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 13964 invoked from network); 23 Jul 2012 13:58:34 -0000
+Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-16.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
+       23 Jul 2012 13:58:34 -0000
+X-IronPort-AV: E=Sophos;i="4.77,639,1336348800"; d="scan'208";a="13655797"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       23 Jul 2012 13:57:52 +0000
+Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0;
+       Mon, 23 Jul 2012 14:57:52 +0100
+Message-ID: <1343051870.5797.36.camel@zakaz.uk.xensource.com>
+From: Ian Campbell <Ian.Campbell@citrix.com>
+To: Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+Date: Mon, 23 Jul 2012 14:57:50 +0100
+In-Reply-To: <alpine.DEB.2.02.1206071214020.2415@kaball.uk.xensource.com>
+References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
+       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+       <1338565207-2888-36-git-send-email-ian.campbell@citrix.com>
+       <alpine.DEB.2.02.1206071214020.2415@kaball.uk.xensource.com>
+Organization: Citrix Systems, Inc.
+X-Mailer: Evolution 3.4.3-1 
+MIME-Version: 1.0
+Cc: Tim Deegan <tim@xen.org>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 36/38] libxc: add ARM support to xc_dom (PV
+ domain building)
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Thu, 2012-06-07 at 12:38 +0100, Stefano Stabellini wrote:
+> > @@ -294,7 +295,7 @@ static inline xen_pfn_t xc_dom_p2m_guest(struct xc_dom_image *dom,
+> >  {
+> >      if (xc_dom_feature_translated(dom))
+> >          return pfn;
+> > -    return dom->p2m_host[pfn];
+> > +    return dom->p2m_host[pfn - dom->rambase_pfn];
+> >  }
+> 
+> I take that rambase_pfn is the offset in the guest physical address
+> space where the ram is located. It would be nice to write it down.
+
+I've added this comment to the struct where rambase_pfn is defined:
+     * A PV guest has a single contiguous block of physical RAM,
+     * consisting of total_pages starting at rambase_pfn.
+
+[...]
+
+> > +    /* setup initial p2m */
+> > +    for ( pfn = 0; pfn < dom->total_pages; pfn++ )
+> > +        dom->p2m_host[pfn] = pfn + dom->rambase_pfn;
+> 
+> uhm.. so maybe rambase_pfn is the offset in the machine address space where
+> the guest ram has been allocated?
+
+ARM guests are hybrid so there isn't really a distinction between MFN
+and PFN space as seen by the tools. We always deal in guest PFNs in the
+tools (only the hypervisor can see the MFNs).
+
+This is a bit confusing for a hybrid guest because the generic xc_dom_*
+stuff expects to have a p2m, so we setup this weird 1:1 thing (actually
+1:rambase_pfn+1 just to add to the confusion).
+
+I've added a comment next to the definition of p2m_host:
+    /*
+     * p2m_host maps guest physical addresses an offset from
+     * rambase_pfn (see below) into gfns.
+     *
+     * For a pure PV guest this means that it maps GPFNs into MFNs for
+     * a hybrid guest this means that it maps GPFNs to GPFNS.
+     *
+     * Note that the input is offset by rambase.
+     */
+
+I'm not sure this doesn't just add to the confusion.
+
+Also I fully expect Tim to complain that I've got my *FN terminology all
+wrong :-P.
+
+> > diff --git a/tools/libxc/xc_dom_armzimageloader.c b/tools/libxc/xc_dom_armzimageloader.c
+> > new file mode 100644
+> > index 0000000..220176d
+> > --- /dev/null
+> > +++ b/tools/libxc/xc_dom_armzimageloader.c
+[...]
+> > +#include "xg_private.h"
+> > +#include "xc_dom.h"
+> > +
+> > +#include <arpa/inet.h> /* XXX ntohl is not the right function... */
+> 
+> Yes, you are right, we should write a be32_to_cpu (the ones in Xen, QEMU
+> and Linux are GPLv2 rather than LGLPv2).
+
+I wonder if we can/should just declare that we handle only native endian
+zImages.
+
+> > diff --git a/tools/libxc/xc_dom_core.c b/tools/libxc/xc_dom_core.c
+> > index fea9de5..b0d48d5 100644
+> > --- a/tools/libxc/xc_dom_core.c
+> > +++ b/tools/libxc/xc_dom_core.c
+> > @@ -307,15 +307,17 @@ void *xc_dom_pfn_to_ptr(struct xc_dom_image *dom, xen_pfn_t pfn,
+> >                          xen_pfn_t count)
+> >  {
+> >      struct xc_dom_phys *phys;
+> > +    xen_pfn_t offset;
+> >      unsigned int page_shift = XC_DOM_PAGE_SHIFT(dom);
+> >      char *mode = "unset";
+> >
+> > -    if ( pfn > dom->total_pages ||    /* multiple checks to avoid overflows */
+> > +    offset = pfn-dom->rambase_pfn;
+> 
+> spaces around the '-' please
+
+Done.
+
+> > +    if ( offset > dom->total_pages ||    /* multiple checks to avoid overflows */
+> >           count > dom->total_pages ||
+> > -         pfn > dom->total_pages - count )
+> > +         offset > dom->total_pages - count )
+> >      {
+> > -        DOMPRINTF("%s: pfn out of range (0x%" PRIpfn " > 0x%" PRIpfn ")",
+> > -                  __FUNCTION__, pfn, dom->total_pages);
+> > +        DOMPRINTF("%s: pfn %"PRI_xen_pfn" out of range (0x%" PRIpfn " > 0x%" PRIpfn ")",
+> > +                  __FUNCTION__, pfn, offset, dom->total_pages);
+> >          return NULL;
+> >      }
+> >
+> > @@ -599,6 +601,8 @@ struct xc_dom_image *xc_dom_allocate(xc_interface *xch,
+> >      dom->parms.virt_hv_start_low = UNSET_ADDR;
+> >      dom->parms.elf_paddr_offset = UNSET_ADDR;
+> >
+> > +    dom->rambase_pfn = 0;
+> > +
+> >      dom->alloc_malloc += sizeof(*dom);
+> >      return dom;
+> 
+> There is no need to explicitly set rambase_pfn to 0, because the whole
+> dom struct is memset to 0 few lines above.
+
+Removed.
+
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1343052688.5797.38.camel@zakaz.uk.xensource.com> b/config/examples/test/corpus/<1343052688.5797.38.camel@zakaz.uk.xensource.com>
new file mode 100644 (file)
index 0000000..e5f025a
--- /dev/null
@@ -0,0 +1,114 @@
+From xen-devel-bounces@lists.xen.org Mon Jul 23 15:16:30 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Mon, 23 Jul 2012 15:16:30 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1StJQy-0000BP-0K
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Mon, 23 Jul 2012 15:16:30 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1StJMD-0007qS-MG; Mon, 23 Jul 2012 14:11:33 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1StJMC-0007qN-CR
+       for xen-devel@lists.xen.org; Mon, 23 Jul 2012 14:11:32 +0000
+Received: from [85.158.139.83:33653] by server-7.bemta-5.messagelabs.com id
+       C0/BC-28276-39B5D005; Mon, 23 Jul 2012 14:11:31 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-3.tower-182.messagelabs.com!1343052690!28188844!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDY0MDM=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.2; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 1886 invoked from network); 23 Jul 2012 14:11:30 -0000
+Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-3.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
+       23 Jul 2012 14:11:30 -0000
+X-IronPort-AV: E=Sophos;i="4.77,639,1336348800"; d="scan'208";a="13656090"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       23 Jul 2012 14:11:30 +0000
+Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0;
+       Mon, 23 Jul 2012 15:11:30 +0100
+Message-ID: <1343052688.5797.38.camel@zakaz.uk.xensource.com>
+From: Ian Campbell <Ian.Campbell@citrix.com>
+To: Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+Date: Mon, 23 Jul 2012 15:11:28 +0100
+In-Reply-To: <1343051870.5797.36.camel@zakaz.uk.xensource.com>
+References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
+       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+       <1338565207-2888-36-git-send-email-ian.campbell@citrix.com>
+       <alpine.DEB.2.02.1206071214020.2415@kaball.uk.xensource.com>
+       <1343051870.5797.36.camel@zakaz.uk.xensource.com>
+Organization: Citrix Systems, Inc.
+X-Mailer: Evolution 3.4.3-1 
+MIME-Version: 1.0
+Cc: "Tim \(Xen.org\)" <tim@xen.org>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 36/38] libxc: add ARM support to xc_dom (PV
+ domain building)
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+
+> > > diff --git a/tools/libxc/xc_dom_armzimageloader.c b/tools/libxc/xc_dom_armzimageloader.c
+> > > new file mode 100644
+> > > index 0000000..220176d
+> > > --- /dev/null
+> > > +++ b/tools/libxc/xc_dom_armzimageloader.c
+> [...]
+> > > +#include "xg_private.h"
+> > > +#include "xc_dom.h"
+> > > +
+> > > +#include <arpa/inet.h> /* XXX ntohl is not the right function... */
+> > 
+> > Yes, you are right, we should write a be32_to_cpu (the ones in Xen, QEMU
+> > and Linux are GPLv2 rather than LGLPv2).
+> 
+> I wonder if we can/should just declare that we handle only native endian
+> zImages.
+
+Except this is used with the DTB and that is what it is. :-(
+
+We have ./tools/blktap2/drivers/bswap.h already which maybe we can make
+more generic?
+
+TBH, given this is internal to this one loader I'm very tempted to just
+keep using ntohl and friends.
+
+Ian
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1343054850.5797.40.camel@zakaz.uk.xensource.com> b/config/examples/test/corpus/<1343054850.5797.40.camel@zakaz.uk.xensource.com>
new file mode 100644 (file)
index 0000000..1b463e7
--- /dev/null
@@ -0,0 +1,99 @@
+From xen-devel-bounces@lists.xen.org Mon Jul 23 15:51:44 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Mon, 23 Jul 2012 15:51:44 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1StJz1-0000IS-Dx
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Mon, 23 Jul 2012 15:51:44 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1StJv4-0000qY-4W; Mon, 23 Jul 2012 14:47:34 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1StJv2-0000qO-Po
+       for xen-devel@lists.xen.org; Mon, 23 Jul 2012 14:47:32 +0000
+Received: from [85.158.143.35:54903] by server-1.bemta-4.messagelabs.com id
+       24/1A-24392-4046D005; Mon, 23 Jul 2012 14:47:32 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-9.tower-21.messagelabs.com!1343054851!5585059!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDY0MDM=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.2; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 8777 invoked from network); 23 Jul 2012 14:47:31 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-9.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
+       23 Jul 2012 14:47:31 -0000
+X-IronPort-AV: E=Sophos;i="4.77,639,1336348800"; d="scan'208";a="13657092"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       23 Jul 2012 14:47:31 +0000
+Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0;
+       Mon, 23 Jul 2012 15:47:31 +0100
+Message-ID: <1343054850.5797.40.camel@zakaz.uk.xensource.com>
+From: Ian Campbell <Ian.Campbell@citrix.com>
+To: David Vrabel <dvrabel@cantab.net>
+Date: Mon, 23 Jul 2012 15:47:30 +0100
+In-Reply-To: <500D61BF.4080508@cantab.net>
+References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
+       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+       <1338565207-2888-36-git-send-email-ian.campbell@citrix.com>
+       <alpine.DEB.2.02.1206071214020.2415@kaball.uk.xensource.com>
+       <1343051870.5797.36.camel@zakaz.uk.xensource.com>
+       <1343052688.5797.38.camel@zakaz.uk.xensource.com>
+       <500D61BF.4080508@cantab.net>
+Organization: Citrix Systems, Inc.
+X-Mailer: Evolution 3.4.3-1 
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
+       "Tim \(Xen.org\)" <tim@xen.org>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 36/38] libxc: add ARM support to xc_dom (PV
+ domain building)
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Mon, 2012-07-23 at 15:37 +0100, David Vrabel wrote:
+> You will likely need to link to libfdt in the future and you will need
+> to provide cpu_to_fdt32() and fdt32_to_cpu() etc. implementations (like
+> include/xen/libfdt/libfdt_env.h for Xen itself).
+
+Good point.
+
+I'm now more tempted to defer this until then ;-)
+
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1343316846-25860-1-git-send-email-stefano.stabellini@eu.citrix.com> b/config/examples/test/corpus/<1343316846-25860-1-git-send-email-stefano.stabellini@eu.citrix.com>
new file mode 100644 (file)
index 0000000..c8d92c5
--- /dev/null
@@ -0,0 +1,294 @@
+From xen-devel-bounces@lists.xen.org Thu Jul 26 16:38:19 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 26 Jul 2012 16:38:19 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SuQ8m-0001T1-Il
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 26 Jul 2012 16:38:19 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SuQ5a-0004aA-MS; Thu, 26 Jul 2012 15:34:58 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1SuQ5Y-0004YZ-2Z
+       for xen-devel@lists.xensource.com; Thu, 26 Jul 2012 15:34:56 +0000
+Received: from [85.158.143.35:10664] by server-3.bemta-4.messagelabs.com id
+       7F/A9-01511-F9361105; Thu, 26 Jul 2012 15:34:55 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-3.tower-21.messagelabs.com!1343316891!14677221!3
+X-Originating-IP: [66.165.176.89]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNTk5NzY=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.2; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 14438 invoked from network); 26 Jul 2012 15:34:55 -0000
+Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
+       by server-3.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
+       26 Jul 2012 15:34:55 -0000
+X-IronPort-AV: E=Sophos;i="4.77,659,1336363200"; d="scan'208";a="32688370"
+Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
+       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       26 Jul 2012 11:34:50 -0400
+Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
+       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
+       Thu, 26 Jul 2012 11:34:50 -0400
+Received: from kaball.uk.xensource.com ([10.80.2.59])  by
+       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
+       <stefano.stabellini@eu.citrix.com>)     id 1SuQ5M-0006qa-K1;
+       Thu, 26 Jul 2012 16:34:44 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+To: <linux-kernel@vger.kernel.org>
+Date: Thu, 26 Jul 2012 16:33:43 +0100
+Message-ID: <1343316846-25860-1-git-send-email-stefano.stabellini@eu.citrix.com>
+X-Mailer: git-send-email 1.7.9.5
+In-Reply-To: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
+References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
+MIME-Version: 1.0
+Cc: xen-devel@lists.xensource.com, linaro-dev@lists.linaro.org,
+       Ian.Campbell@citrix.com, arnd@arndb.de, konrad.wilk@oracle.com,
+       catalin.marinas@arm.com,
+       Stefano Stabellini <stefano.stabellini@eu.citrix.com>,
+       tim@xen.org, linux-arm-kernel@lists.infradead.org
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
+Subject: [Xen-devel] [PATCH 01/24] arm: initial Xen support
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+- Basic hypervisor.h and interface.h definitions.
+- Skelethon enlighten.c, set xen_start_info to an empty struct.
+- Do not limit xen_initial_domain to PV guests.
+
+The new code only compiles when CONFIG_XEN is set, that is going to be
+added to arch/arm/Kconfig in a later patch.
+
+Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+---
+ arch/arm/Makefile                     |    1 +
+ arch/arm/include/asm/hypervisor.h     |    6 +++
+ arch/arm/include/asm/xen/hypervisor.h |   19 ++++++++++
+ arch/arm/include/asm/xen/interface.h  |   64 +++++++++++++++++++++++++++++++++
+ arch/arm/xen/Makefile                 |    1 +
+ arch/arm/xen/enlighten.c              |   35 ++++++++++++++++++
+ include/xen/xen.h                     |    2 +-
+ 7 files changed, 127 insertions(+), 1 deletions(-)
+ create mode 100644 arch/arm/include/asm/hypervisor.h
+ create mode 100644 arch/arm/include/asm/xen/hypervisor.h
+ create mode 100644 arch/arm/include/asm/xen/interface.h
+ create mode 100644 arch/arm/xen/Makefile
+ create mode 100644 arch/arm/xen/enlighten.c
+
+diff --git a/arch/arm/Makefile b/arch/arm/Makefile
+index 0298b00..70aaa82 100644
+--- a/arch/arm/Makefile
++++ b/arch/arm/Makefile
+@@ -246,6 +246,7 @@ endif
+ core-$(CONFIG_FPE_NWFPE)      += arch/arm/nwfpe/
+ core-$(CONFIG_FPE_FASTFPE)    += $(FASTFPE_OBJ)
+ core-$(CONFIG_VFP)            += arch/arm/vfp/
++core-$(CONFIG_XEN)            += arch/arm/xen/
+ # If we have a machine-specific directory, then include it in the build.
+ core-y                                += arch/arm/kernel/ arch/arm/mm/ arch/arm/common/
+diff --git a/arch/arm/include/asm/hypervisor.h b/arch/arm/include/asm/hypervisor.h
+new file mode 100644
+index 0000000..b90d9e5
+--- /dev/null
++++ b/arch/arm/include/asm/hypervisor.h
+@@ -0,0 +1,6 @@
++#ifndef _ASM_ARM_HYPERVISOR_H
++#define _ASM_ARM_HYPERVISOR_H
++
++#include <asm/xen/hypervisor.h>
++
++#endif
+diff --git a/arch/arm/include/asm/xen/hypervisor.h b/arch/arm/include/asm/xen/hypervisor.h
+new file mode 100644
+index 0000000..d7ab99a
+--- /dev/null
++++ b/arch/arm/include/asm/xen/hypervisor.h
+@@ -0,0 +1,19 @@
++#ifndef _ASM_ARM_XEN_HYPERVISOR_H
++#define _ASM_ARM_XEN_HYPERVISOR_H
++
++extern struct shared_info *HYPERVISOR_shared_info;
++extern struct start_info *xen_start_info;
++
++/* Lazy mode for batching updates / context switch */
++enum paravirt_lazy_mode {
++      PARAVIRT_LAZY_NONE,
++      PARAVIRT_LAZY_MMU,
++      PARAVIRT_LAZY_CPU,
++};
++
++static inline enum paravirt_lazy_mode paravirt_get_lazy_mode(void)
++{
++      return PARAVIRT_LAZY_NONE;
++}
++
++#endif /* _ASM_ARM_XEN_HYPERVISOR_H */
+diff --git a/arch/arm/include/asm/xen/interface.h b/arch/arm/include/asm/xen/interface.h
+new file mode 100644
+index 0000000..6c3ab59
+--- /dev/null
++++ b/arch/arm/include/asm/xen/interface.h
+@@ -0,0 +1,64 @@
++/******************************************************************************
++ * Guest OS interface to ARM Xen.
++ *
++ * Stefano Stabellini <stefano.stabellini@eu.citrix.com>, Citrix, 2011
++ */
++
++#ifndef _ASM_ARM_XEN_INTERFACE_H
++#define _ASM_ARM_XEN_INTERFACE_H
++
++#include <linux/types.h>
++
++#define __DEFINE_GUEST_HANDLE(name, type) \
++      typedef type * __guest_handle_ ## name
++
++#define DEFINE_GUEST_HANDLE_STRUCT(name) \
++      __DEFINE_GUEST_HANDLE(name, struct name)
++#define DEFINE_GUEST_HANDLE(name) __DEFINE_GUEST_HANDLE(name, name)
++#define GUEST_HANDLE(name)        __guest_handle_ ## name
++
++#define set_xen_guest_handle(hnd, val)                        \
++      do {                                            \
++              if (sizeof(hnd) == 8)                   \
++                      *(uint64_t *)&(hnd) = 0;        \
++              (hnd) = val;                            \
++      } while (0)
++
++#ifndef __ASSEMBLY__
++/* Guest handles for primitive C types. */
++__DEFINE_GUEST_HANDLE(uchar, unsigned char);
++__DEFINE_GUEST_HANDLE(uint,  unsigned int);
++__DEFINE_GUEST_HANDLE(ulong, unsigned long);
++DEFINE_GUEST_HANDLE(char);
++DEFINE_GUEST_HANDLE(int);
++DEFINE_GUEST_HANDLE(long);
++DEFINE_GUEST_HANDLE(void);
++DEFINE_GUEST_HANDLE(uint64_t);
++DEFINE_GUEST_HANDLE(uint32_t);
++
++/* Maximum number of virtual CPUs in multi-processor guests. */
++#define MAX_VIRT_CPUS 1
++
++struct arch_vcpu_info { };
++struct arch_shared_info { };
++
++/* XXX: Move pvclock definitions some place arch independent */
++struct pvclock_vcpu_time_info {
++      u32   version;
++      u32   pad0;
++      u64   tsc_timestamp;
++      u64   system_time;
++      u32   tsc_to_system_mul;
++      s8    tsc_shift;
++      u8    flags;
++      u8    pad[2];
++} __attribute__((__packed__)); /* 32 bytes */
++
++struct pvclock_wall_clock {
++      u32   version;
++      u32   sec;
++      u32   nsec;
++} __attribute__((__packed__));
++#endif
++
++#endif /* _ASM_ARM_XEN_INTERFACE_H */
+diff --git a/arch/arm/xen/Makefile b/arch/arm/xen/Makefile
+new file mode 100644
+index 0000000..0bad594
+--- /dev/null
++++ b/arch/arm/xen/Makefile
+@@ -0,0 +1 @@
++obj-y         := enlighten.o
+diff --git a/arch/arm/xen/enlighten.c b/arch/arm/xen/enlighten.c
+new file mode 100644
+index 0000000..d27c2a6
+--- /dev/null
++++ b/arch/arm/xen/enlighten.c
+@@ -0,0 +1,35 @@
++#include <xen/xen.h>
++#include <xen/interface/xen.h>
++#include <xen/interface/memory.h>
++#include <xen/platform_pci.h>
++#include <asm/xen/hypervisor.h>
++#include <asm/xen/hypercall.h>
++#include <linux/module.h>
++
++struct start_info _xen_start_info;
++struct start_info *xen_start_info = &_xen_start_info;
++EXPORT_SYMBOL_GPL(xen_start_info);
++
++enum xen_domain_type xen_domain_type = XEN_NATIVE;
++EXPORT_SYMBOL_GPL(xen_domain_type);
++
++struct shared_info xen_dummy_shared_info;
++struct shared_info *HYPERVISOR_shared_info = (void *)&xen_dummy_shared_info;
++
++DEFINE_PER_CPU(struct vcpu_info *, xen_vcpu);
++
++/* XXX: to be removed */
++__read_mostly int xen_have_vector_callback;
++EXPORT_SYMBOL_GPL(xen_have_vector_callback);
++
++int xen_platform_pci_unplug = XEN_UNPLUG_ALL;
++EXPORT_SYMBOL_GPL(xen_platform_pci_unplug);
++
++int xen_remap_domain_mfn_range(struct vm_area_struct *vma,
++                             unsigned long addr,
++                             unsigned long mfn, int nr,
++                             pgprot_t prot, unsigned domid)
++{
++      return -ENOSYS;
++}
++EXPORT_SYMBOL_GPL(xen_remap_domain_mfn_range);
+diff --git a/include/xen/xen.h b/include/xen/xen.h
+index a164024..2c0d3a5 100644
+--- a/include/xen/xen.h
++++ b/include/xen/xen.h
+@@ -23,7 +23,7 @@ extern enum xen_domain_type xen_domain_type;
+ #include <xen/interface/xen.h>
+ #include <asm/xen/hypervisor.h>
+-#define xen_initial_domain()  (xen_pv_domain() && \
++#define xen_initial_domain()  (xen_domain() && \
+                                xen_start_info->flags & SIF_INITDOMAIN)
+ #else  /* !CONFIG_XEN_DOM0 */
+ #define xen_initial_domain()  (0)
+-- 
+1.7.2.5
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1343316846-25860-10-git-send-email-stefano.stabellini@eu.citrix.com> b/config/examples/test/corpus/<1343316846-25860-10-git-send-email-stefano.stabellini@eu.citrix.com>
new file mode 100644 (file)
index 0000000..44cd1c4
--- /dev/null
@@ -0,0 +1,127 @@
+From xen-devel-bounces@lists.xen.org Thu Jul 26 16:39:07 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 26 Jul 2012 16:39:07 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SuQ9W-0001V3-1d
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 26 Jul 2012 16:39:07 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SuQ5f-0004fH-Pa; Thu, 26 Jul 2012 15:35:03 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1SuQ5c-0004bw-W6
+       for xen-devel@lists.xensource.com; Thu, 26 Jul 2012 15:35:01 +0000
+Received: from [85.158.139.83:17907] by server-12.bemta-5.messagelabs.com id
+       A6/A4-25233-4A361105; Thu, 26 Jul 2012 15:35:00 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-8.tower-182.messagelabs.com!1343316896!17525940!2
+X-Originating-IP: [66.165.176.63]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyNjczNDY=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.2; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 26664 invoked from network); 26 Jul 2012 15:34:59 -0000
+Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
+       by server-8.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
+       26 Jul 2012 15:34:59 -0000
+X-IronPort-AV: E=Sophos;i="4.77,659,1336363200"; d="scan'208";a="203308474"
+Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
+       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       26 Jul 2012 11:34:55 -0400
+Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
+       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
+       Thu, 26 Jul 2012 11:34:56 -0400
+Received: from kaball.uk.xensource.com ([10.80.2.59])  by
+       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
+       <stefano.stabellini@eu.citrix.com>)     id 1SuQ5N-0006qa-1j;
+       Thu, 26 Jul 2012 16:34:45 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+To: <linux-kernel@vger.kernel.org>
+Date: Thu, 26 Jul 2012 16:33:52 +0100
+Message-ID: <1343316846-25860-10-git-send-email-stefano.stabellini@eu.citrix.com>
+X-Mailer: git-send-email 1.7.9.5
+In-Reply-To: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
+References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
+MIME-Version: 1.0
+Cc: xen-devel@lists.xensource.com, linaro-dev@lists.linaro.org,
+       Ian.Campbell@citrix.com, arnd@arndb.de, konrad.wilk@oracle.com,
+       catalin.marinas@arm.com,
+       Stefano Stabellini <stefano.stabellini@eu.citrix.com>,
+       tim@xen.org, linux-arm-kernel@lists.infradead.org
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: [Xen-devel] [PATCH 10/24] xen: do not compile manage, balloon, pci,
+       acpi and cpu_hotplug on ARM
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+---
+ drivers/xen/Makefile |    9 ++++++---
+ 1 files changed, 6 insertions(+), 3 deletions(-)
+
+diff --git a/drivers/xen/Makefile b/drivers/xen/Makefile
+index fc34886..0cfa6c47 100644
+--- a/drivers/xen/Makefile
++++ b/drivers/xen/Makefile
+@@ -1,11 +1,15 @@
+-obj-y += grant-table.o features.o events.o manage.o balloon.o
++ifneq ($(CONFIG_ARM),y)
++obj-y += manage.o balloon.o
++obj-$(CONFIG_XEN_DOM0)                        += pci.o acpi.o
++obj-$(CONFIG_HOTPLUG_CPU)             += cpu_hotplug.o
++endif
++obj-y += grant-table.o features.o events.o
+ obj-y += xenbus/
+ nostackp := $(call cc-option, -fno-stack-protector)
+ CFLAGS_features.o                     := $(nostackp)
+ obj-$(CONFIG_BLOCK)                   += biomerge.o
+-obj-$(CONFIG_HOTPLUG_CPU)             += cpu_hotplug.o
+ obj-$(CONFIG_XEN_XENCOMM)             += xencomm.o
+ obj-$(CONFIG_XEN_BALLOON)             += xen-balloon.o
+ obj-$(CONFIG_XEN_SELFBALLOONING)      += xen-selfballoon.o
+@@ -17,7 +21,6 @@ obj-$(CONFIG_XEN_SYS_HYPERVISOR)     += sys-hypervisor.o
+ obj-$(CONFIG_XEN_PVHVM)                       += platform-pci.o
+ obj-$(CONFIG_XEN_TMEM)                        += tmem.o
+ obj-$(CONFIG_SWIOTLB_XEN)             += swiotlb-xen.o
+-obj-$(CONFIG_XEN_DOM0)                        += pci.o acpi.o
+ obj-$(CONFIG_XEN_PCIDEV_BACKEND)      += xen-pciback/
+ obj-$(CONFIG_XEN_PRIVCMD)             += xen-privcmd.o
+ obj-$(CONFIG_XEN_ACPI_PROCESSOR)      += xen-acpi-processor.o
+-- 
+1.7.2.5
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1343316846-25860-11-git-send-email-stefano.stabellini@eu.citrix.com> b/config/examples/test/corpus/<1343316846-25860-11-git-send-email-stefano.stabellini@eu.citrix.com>
new file mode 100644 (file)
index 0000000..f185b31
--- /dev/null
@@ -0,0 +1,117 @@
+From xen-devel-bounces@lists.xen.org Thu Jul 26 17:00:22 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 26 Jul 2012 17:00:22 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SuQTz-0001g1-Dq
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 26 Jul 2012 17:00:22 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SuQR1-0007wd-2z; Thu, 26 Jul 2012 15:57:07 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1SuQQy-0007vO-Tf
+       for xen-devel@lists.xensource.com; Thu, 26 Jul 2012 15:57:05 +0000
+Received: from [85.158.139.83:53029] by server-10.bemta-5.messagelabs.com id
+       07/E8-02190-0D861105; Thu, 26 Jul 2012 15:57:04 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-5.tower-182.messagelabs.com!1343318222!28861239!1
+X-Originating-IP: [66.165.176.89]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNTk5NzY=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.2; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 16681 invoked from network); 26 Jul 2012 15:57:03 -0000
+Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
+       by server-5.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
+       26 Jul 2012 15:57:03 -0000
+X-IronPort-AV: E=Sophos;i="4.77,659,1336363200"; d="scan'208";a="32691208"
+Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
+       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       26 Jul 2012 11:57:01 -0400
+Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
+       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
+       Thu, 26 Jul 2012 11:57:01 -0400
+Received: from kaball.uk.xensource.com ([10.80.2.59])  by
+       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
+       <stefano.stabellini@eu.citrix.com>)     id 1SuQ5N-0006qa-2M;
+       Thu, 26 Jul 2012 16:34:45 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+To: <linux-kernel@vger.kernel.org>
+Date: Thu, 26 Jul 2012 16:33:53 +0100
+Message-ID: <1343316846-25860-11-git-send-email-stefano.stabellini@eu.citrix.com>
+X-Mailer: git-send-email 1.7.9.5
+In-Reply-To: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
+References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
+MIME-Version: 1.0
+Cc: xen-devel@lists.xensource.com, linaro-dev@lists.linaro.org,
+       Ian.Campbell@citrix.com, arnd@arndb.de, konrad.wilk@oracle.com,
+       catalin.marinas@arm.com,
+       Stefano Stabellini <stefano.stabellini@eu.citrix.com>,
+       tim@xen.org, linux-arm-kernel@lists.infradead.org
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: [Xen-devel] [PATCH 11/24] xen/arm: introduce CONFIG_XEN on ARM
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+---
+ arch/arm/Kconfig |   10 ++++++++++
+ 1 files changed, 10 insertions(+), 0 deletions(-)
+
+diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
+index a91009c..9c54cb4 100644
+--- a/arch/arm/Kconfig
++++ b/arch/arm/Kconfig
+@@ -2228,6 +2228,16 @@ config NEON
+         Say Y to include support code for NEON, the ARMv7 Advanced SIMD
+         Extension.
++config XEN_DOM0
++      def_bool y
++
++config XEN
++      bool "Xen guest support on ARM"
++      depends on ARM && OF
++      select XEN_DOM0
++      help
++        Say Y if you want to run Linux in a Virtual Machine on Xen on ARM.
++
+ endmenu
+ menu "Userspace binary formats"
+-- 
+1.7.2.5
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1343316846-25860-12-git-send-email-stefano.stabellini@eu.citrix.com> b/config/examples/test/corpus/<1343316846-25860-12-git-send-email-stefano.stabellini@eu.citrix.com>
new file mode 100644 (file)
index 0000000..ebb5aec
--- /dev/null
@@ -0,0 +1,197 @@
+From xen-devel-bounces@lists.xen.org Thu Jul 26 17:00:15 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 26 Jul 2012 17:00:15 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SuQTx-0001fx-QA
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 26 Jul 2012 17:00:15 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SuQR3-0007yC-Vw; Thu, 26 Jul 2012 15:57:09 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1SuQR1-0007wZ-68
+       for xen-devel@lists.xensource.com; Thu, 26 Jul 2012 15:57:07 +0000
+Received: from [85.158.138.51:35910] by server-5.bemta-3.messagelabs.com id
+       FB/05-28237-2D861105; Thu, 26 Jul 2012 15:57:06 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-5.tower-174.messagelabs.com!1343318221!29038721!2
+X-Originating-IP: [66.165.176.63]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyNjczNDY=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.2; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 24327 invoked from network); 26 Jul 2012 15:57:05 -0000
+Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
+       by server-5.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
+       26 Jul 2012 15:57:05 -0000
+X-IronPort-AV: E=Sophos;i="4.77,659,1336363200"; d="scan'208";a="203311712"
+Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
+       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       26 Jul 2012 11:56:55 -0400
+Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
+       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
+       Thu, 26 Jul 2012 11:56:55 -0400
+Received: from kaball.uk.xensource.com ([10.80.2.59])  by
+       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
+       <stefano.stabellini@eu.citrix.com>)     id 1SuQ5N-0006qa-34;
+       Thu, 26 Jul 2012 16:34:45 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+To: <linux-kernel@vger.kernel.org>
+Date: Thu, 26 Jul 2012 16:33:54 +0100
+Message-ID: <1343316846-25860-12-git-send-email-stefano.stabellini@eu.citrix.com>
+X-Mailer: git-send-email 1.7.9.5
+In-Reply-To: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
+References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
+MIME-Version: 1.0
+Cc: xen-devel@lists.xensource.com, linaro-dev@lists.linaro.org,
+       Ian.Campbell@citrix.com, arnd@arndb.de, konrad.wilk@oracle.com,
+       catalin.marinas@arm.com,
+       Stefano Stabellini <stefano.stabellini@eu.citrix.com>,
+       tim@xen.org, linux-arm-kernel@lists.infradead.org
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
+Subject: [Xen-devel] [PATCH 12/24] xen/arm: Introduce xen_guest_init
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+We used to rely on a core_initcall to initialize Xen on ARM, however
+core_initcalls are actually called after early consoles are initialized.
+That means that hvc_xen.c is going to be initialized before Xen.
+
+Given the lack of a better alternative, just call a new Xen
+initialization function (xen_guest_init) from xen_cons_init.
+
+xen_guest_init has to be arch independent, so write both an ARM and an
+x86 implementation. The x86 implementation is currently empty because we
+can be sure that xen_hvm_guest_init is called early enough.
+
+Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+---
+ arch/arm/xen/enlighten.c  |    7 ++++++-
+ arch/x86/xen/enlighten.c  |    8 ++++++++
+ drivers/tty/hvc/hvc_xen.c |    7 ++++++-
+ include/xen/xen.h         |    2 ++
+ 4 files changed, 22 insertions(+), 2 deletions(-)
+
+diff --git a/arch/arm/xen/enlighten.c b/arch/arm/xen/enlighten.c
+index 8c923af..dc68074 100644
+--- a/arch/arm/xen/enlighten.c
++++ b/arch/arm/xen/enlighten.c
+@@ -44,7 +44,7 @@ EXPORT_SYMBOL_GPL(xen_remap_domain_mfn_range);
+  * - one interrupt for Xen event notifications;
+  * - one memory region to map the grant_table.
+  */
+-static int __init xen_guest_init(void)
++int __init xen_guest_init(void)
+ {
+       int cpu;
+       struct xen_add_to_physmap xatp;
+@@ -58,6 +58,10 @@ static int __init xen_guest_init(void)
+       }
+       xen_domain_type = XEN_HVM_DOMAIN;
++      /* already setup */
++      if (shared_info_page != 0 && HYPERVISOR_shared_info == shared_info_page)
++              return 0;
++
+       if (!shared_info_page)
+               shared_info_page = (struct shared_info *)
+                       get_zeroed_page(GFP_KERNEL);
+@@ -88,4 +92,5 @@ static int __init xen_guest_init(void)
+       }
+       return 0;
+ }
++EXPORT_SYMBOL_GPL(xen_guest_init);
+ core_initcall(xen_guest_init);
+diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c
+index ff962d4..6131d43 100644
+--- a/arch/x86/xen/enlighten.c
++++ b/arch/x86/xen/enlighten.c
+@@ -1567,4 +1567,12 @@ const struct hypervisor_x86 x86_hyper_xen_hvm __refconst = {
+       .init_platform          = xen_hvm_guest_init,
+ };
+ EXPORT_SYMBOL(x86_hyper_xen_hvm);
++
++int __init xen_guest_init(void)
++{
++      /* do nothing: rely on x86_hyper_xen_hvm for the initialization */
++      return 0;
++      
++}
++EXPORT_SYMBOL_GPL(xen_guest_init);
+ #endif
+diff --git a/drivers/tty/hvc/hvc_xen.c b/drivers/tty/hvc/hvc_xen.c
+index dc07f56..3c04fb8 100644
+--- a/drivers/tty/hvc/hvc_xen.c
++++ b/drivers/tty/hvc/hvc_xen.c
+@@ -577,6 +577,12 @@ static void __exit xen_hvc_fini(void)
+ static int xen_cons_init(void)
+ {
+       const struct hv_ops *ops;
++      int r;
++
++      /* retrieve xen infos  */
++      r = xen_guest_init();
++      if (r < 0)
++              return r;
+       if (!xen_domain())
+               return 0;
+@@ -584,7 +590,6 @@ static int xen_cons_init(void)
+       if (xen_initial_domain())
+               ops = &dom0_hvc_ops;
+       else {
+-              int r;
+               ops = &domU_hvc_ops;
+               if (xen_hvm_domain())
+diff --git a/include/xen/xen.h b/include/xen/xen.h
+index 2c0d3a5..792a4d2 100644
+--- a/include/xen/xen.h
++++ b/include/xen/xen.h
+@@ -9,8 +9,10 @@ enum xen_domain_type {
+ #ifdef CONFIG_XEN
+ extern enum xen_domain_type xen_domain_type;
++int xen_guest_init(void);
+ #else
+ #define xen_domain_type               XEN_NATIVE
++static inline int xen_guest_init(void) { return 0; }
+ #endif
+ #define xen_domain()          (xen_domain_type != XEN_NATIVE)
+-- 
+1.7.2.5
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1343316846-25860-13-git-send-email-stefano.stabellini@eu.citrix.com> b/config/examples/test/corpus/<1343316846-25860-13-git-send-email-stefano.stabellini@eu.citrix.com>
new file mode 100644 (file)
index 0000000..9342710
--- /dev/null
@@ -0,0 +1,140 @@
+From xen-devel-bounces@lists.xen.org Thu Jul 26 17:00:23 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 26 Jul 2012 17:00:23 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SuQU0-0001g2-73
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 26 Jul 2012 17:00:23 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SuQR1-0007x2-J8; Thu, 26 Jul 2012 15:57:07 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1SuQQz-0007vs-EX
+       for xen-devel@lists.xensource.com; Thu, 26 Jul 2012 15:57:05 +0000
+Received: from [85.158.143.35:21488] by server-1.bemta-4.messagelabs.com id
+       B2/0E-24392-0D861105; Thu, 26 Jul 2012 15:57:04 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-2.tower-21.messagelabs.com!1343318198!6257028!1
+X-Originating-IP: [66.165.176.89]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNTk5NzY=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.2; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 3215 invoked from network); 26 Jul 2012 15:56:39 -0000
+Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
+       by server-2.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
+       26 Jul 2012 15:56:39 -0000
+X-IronPort-AV: E=Sophos;i="4.77,659,1336363200"; d="scan'208";a="32691171"
+Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
+       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       26 Jul 2012 11:56:37 -0400
+Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
+       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
+       Thu, 26 Jul 2012 11:56:37 -0400
+Received: from kaball.uk.xensource.com ([10.80.2.59])  by
+       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
+       <stefano.stabellini@eu.citrix.com>)     id 1SuQ5N-0006qa-51;
+       Thu, 26 Jul 2012 16:34:45 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+To: <linux-kernel@vger.kernel.org>
+Date: Thu, 26 Jul 2012 16:33:55 +0100
+Message-ID: <1343316846-25860-13-git-send-email-stefano.stabellini@eu.citrix.com>
+X-Mailer: git-send-email 1.7.9.5
+In-Reply-To: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
+References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
+MIME-Version: 1.0
+Cc: xen-devel@lists.xensource.com, linaro-dev@lists.linaro.org,
+       Ian.Campbell@citrix.com, arnd@arndb.de, konrad.wilk@oracle.com,
+       catalin.marinas@arm.com,
+       Stefano Stabellini <stefano.stabellini@eu.citrix.com>,
+       tim@xen.org, linux-arm-kernel@lists.infradead.org
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: [Xen-devel] [PATCH 13/24] xen/arm: get privilege status
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+Use Xen features to figure out if we are privileged.
+
+XENFEAT_dom0 was introduced by 23735 in xen-unstable.hg.
+
+Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+---
+ arch/arm/xen/enlighten.c         |    7 +++++++
+ include/xen/interface/features.h |    3 +++
+ 2 files changed, 10 insertions(+), 0 deletions(-)
+
+diff --git a/arch/arm/xen/enlighten.c b/arch/arm/xen/enlighten.c
+index dc68074..2e013cf 100644
+--- a/arch/arm/xen/enlighten.c
++++ b/arch/arm/xen/enlighten.c
+@@ -2,6 +2,7 @@
+ #include <xen/interface/xen.h>
+ #include <xen/interface/memory.h>
+ #include <xen/platform_pci.h>
++#include <xen/features.h>
+ #include <asm/xen/hypervisor.h>
+ #include <asm/xen/hypercall.h>
+ #include <linux/module.h>
+@@ -58,6 +59,12 @@ int __init xen_guest_init(void)
+       }
+       xen_domain_type = XEN_HVM_DOMAIN;
++      xen_setup_features();
++      if (xen_feature(XENFEAT_dom0))
++              xen_start_info->flags |= SIF_INITDOMAIN|SIF_PRIVILEGED;
++      else
++              xen_start_info->flags &= ~(SIF_INITDOMAIN|SIF_PRIVILEGED);
++
+       /* already setup */
+       if (shared_info_page != 0 && HYPERVISOR_shared_info == shared_info_page)
+               return 0;
+diff --git a/include/xen/interface/features.h b/include/xen/interface/features.h
+index b6ca39a..131a6cc 100644
+--- a/include/xen/interface/features.h
++++ b/include/xen/interface/features.h
+@@ -50,6 +50,9 @@
+ /* x86: pirq can be used by HVM guests */
+ #define XENFEAT_hvm_pirqs           10
++/* operation as Dom0 is supported */
++#define XENFEAT_dom0                      11
++
+ #define XENFEAT_NR_SUBMAPS 1
+ #endif /* __XEN_PUBLIC_FEATURES_H__ */
+-- 
+1.7.2.5
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1343316846-25860-14-git-send-email-stefano.stabellini@eu.citrix.com> b/config/examples/test/corpus/<1343316846-25860-14-git-send-email-stefano.stabellini@eu.citrix.com>
new file mode 100644 (file)
index 0000000..cfcabc0
--- /dev/null
@@ -0,0 +1,160 @@
+From xen-devel-bounces@lists.xen.org Thu Jul 26 17:00:16 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 26 Jul 2012 17:00:16 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SuQTy-0001fy-0z
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 26 Jul 2012 17:00:16 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SuQR5-0007zZ-Cw; Thu, 26 Jul 2012 15:57:11 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1SuQR3-0007xr-MY
+       for xen-devel@lists.xensource.com; Thu, 26 Jul 2012 15:57:09 +0000
+Received: from [85.158.139.83:56528] by server-2.bemta-5.messagelabs.com id
+       88/AD-04598-4D861105; Thu, 26 Jul 2012 15:57:08 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-5.tower-182.messagelabs.com!1343318222!28861239!2
+X-Originating-IP: [66.165.176.89]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNTk5NzY=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.2; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 17148 invoked from network); 26 Jul 2012 15:57:08 -0000
+Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
+       by server-5.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
+       26 Jul 2012 15:57:08 -0000
+X-IronPort-AV: E=Sophos;i="4.77,659,1336363200"; d="scan'208";a="32691226"
+Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
+       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       26 Jul 2012 11:57:07 -0400
+Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
+       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
+       Thu, 26 Jul 2012 11:57:07 -0400
+Received: from kaball.uk.xensource.com ([10.80.2.59])  by
+       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
+       <stefano.stabellini@eu.citrix.com>)     id 1SuQ5N-0006qa-5d;
+       Thu, 26 Jul 2012 16:34:45 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+To: <linux-kernel@vger.kernel.org>
+Date: Thu, 26 Jul 2012 16:33:56 +0100
+Message-ID: <1343316846-25860-14-git-send-email-stefano.stabellini@eu.citrix.com>
+X-Mailer: git-send-email 1.7.9.5
+In-Reply-To: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
+References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
+MIME-Version: 1.0
+Cc: xen-devel@lists.xensource.com, linaro-dev@lists.linaro.org,
+       Ian.Campbell@citrix.com, arnd@arndb.de, konrad.wilk@oracle.com,
+       catalin.marinas@arm.com,
+       Stefano Stabellini <stefano.stabellini@eu.citrix.com>,
+       tim@xen.org, linux-arm-kernel@lists.infradead.org
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
+Subject: [Xen-devel] [PATCH 14/24] xen/arm: initialize grant_table on ARM
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+Initialize the grant table mapping at the address specified at index 0
+in the DT under the /xen node.
+After the grant table is initialized, call xenbus_probe (if not dom0).
+
+Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+---
+ arch/arm/xen/enlighten.c  |   13 +++++++++++++
+ drivers/xen/grant-table.c |    2 +-
+ 2 files changed, 14 insertions(+), 1 deletions(-)
+
+diff --git a/arch/arm/xen/enlighten.c b/arch/arm/xen/enlighten.c
+index 2e013cf..854af1e 100644
+--- a/arch/arm/xen/enlighten.c
++++ b/arch/arm/xen/enlighten.c
+@@ -1,8 +1,12 @@
+ #include <xen/xen.h>
+ #include <xen/interface/xen.h>
+ #include <xen/interface/memory.h>
++#include <xen/interface/hvm/params.h>
+ #include <xen/platform_pci.h>
+ #include <xen/features.h>
++#include <xen/grant_table.h>
++#include <xen/hvm.h>
++#include <xen/xenbus.h>
+ #include <asm/xen/hypervisor.h>
+ #include <asm/xen/hypercall.h>
+ #include <linux/module.h>
+@@ -51,12 +55,16 @@ int __init xen_guest_init(void)
+       struct xen_add_to_physmap xatp;
+       static struct shared_info *shared_info_page = 0;
+       struct device_node *node;
++      struct resource res;
+       node = of_find_compatible_node(NULL, NULL, "arm,xen");
+       if (!node) {
+               pr_info("No Xen support\n");
+               return 0;
+       }
++      if (of_address_to_resource(node, 0, &res))
++              return -EINVAL;
++      xen_hvm_resume_frames = res.start >> PAGE_SHIFT;
+       xen_domain_type = XEN_HVM_DOMAIN;
+       xen_setup_features();
+@@ -97,6 +105,11 @@ int __init xen_guest_init(void)
+               per_cpu(xen_vcpu, cpu) =
+                       &HYPERVISOR_shared_info->vcpu_info[cpu];
+       }
++
++      gnttab_init();
++      if (!xen_initial_domain())
++              xenbus_probe(NULL);
++
+       return 0;
+ }
+ EXPORT_SYMBOL_GPL(xen_guest_init);
+diff --git a/drivers/xen/grant-table.c b/drivers/xen/grant-table.c
+index 1d0d95e..fd2137a 100644
+--- a/drivers/xen/grant-table.c
++++ b/drivers/xen/grant-table.c
+@@ -62,7 +62,7 @@
+ static grant_ref_t **gnttab_list;
+ static unsigned int nr_grant_frames;
+-static unsigned int boot_max_nr_grant_frames;
++static unsigned int boot_max_nr_grant_frames = 1;
+ static int gnttab_free_count;
+ static grant_ref_t gnttab_free_head;
+ static DEFINE_SPINLOCK(gnttab_list_lock);
+-- 
+1.7.2.5
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1343316846-25860-15-git-send-email-stefano.stabellini@eu.citrix.com> b/config/examples/test/corpus/<1343316846-25860-15-git-send-email-stefano.stabellini@eu.citrix.com>
new file mode 100644 (file)
index 0000000..c8b6c09
--- /dev/null
@@ -0,0 +1,309 @@
+From xen-devel-bounces@lists.xen.org Thu Jul 26 17:00:24 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 26 Jul 2012 17:00:24 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SuQU6-0001gj-D0
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 26 Jul 2012 17:00:24 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SuQQt-0007tV-7o; Thu, 26 Jul 2012 15:56:59 +0000
+Received: from mail27.messagelabs.com ([193.109.254.147])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1SuQQr-0007rI-M4
+       for xen-devel@lists.xensource.com; Thu, 26 Jul 2012 15:56:57 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-13.tower-27.messagelabs.com!1343318210!10840632!1
+X-Originating-IP: [66.165.176.89]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNTk5NzY=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.2; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 30607 invoked from network); 26 Jul 2012 15:56:51 -0000
+Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
+       by server-13.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
+       26 Jul 2012 15:56:51 -0000
+X-IronPort-AV: E=Sophos;i="4.77,659,1336363200"; d="scan'208";a="32691187"
+Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
+       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       26 Jul 2012 11:56:49 -0400
+Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
+       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
+       Thu, 26 Jul 2012 11:56:49 -0400
+Received: from kaball.uk.xensource.com ([10.80.2.59])  by
+       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
+       <stefano.stabellini@eu.citrix.com>)     id 1SuQ5N-0006qa-7a;
+       Thu, 26 Jul 2012 16:34:45 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+To: <linux-kernel@vger.kernel.org>
+Date: Thu, 26 Jul 2012 16:33:57 +0100
+Message-ID: <1343316846-25860-15-git-send-email-stefano.stabellini@eu.citrix.com>
+X-Mailer: git-send-email 1.7.9.5
+In-Reply-To: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
+References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
+MIME-Version: 1.0
+Cc: xen-devel@lists.xensource.com, linaro-dev@lists.linaro.org,
+       Ian.Campbell@citrix.com, arnd@arndb.de, konrad.wilk@oracle.com,
+       catalin.marinas@arm.com,
+       Stefano Stabellini <stefano.stabellini@eu.citrix.com>,
+       tim@xen.org, linux-arm-kernel@lists.infradead.org
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD autolearn=unavailable version=3.3.1
+Subject: [Xen-devel] [PATCH 15/24] xen/arm: receive Xen events on ARM
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+Compile events.c on ARM.
+Parse, map and enable the IRQ to get event notifications from the device
+tree (node "/xen").
+
+On ARM Linux irqs are not enabled by default:
+
+- call enable_percpu_irq for xen_events_irq (drivers are supposed
+to call enable_irq after request_irq);
+
+- reset the IRQ_NOAUTOEN and IRQ_NOREQUEST flags that are enabled by
+default on ARM. If IRQ_NOAUTOEN is set, __setup_irq doesn't call
+irq_startup, that is responsible for calling irq_unmask at startup time.
+As a result event channels remain masked.
+
+Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+---
+ arch/arm/xen/enlighten.c |   33 +++++++++++++++++++++++++++++++++
+ arch/x86/xen/enlighten.c |    1 +
+ arch/x86/xen/irq.c       |    1 +
+ arch/x86/xen/xen-ops.h   |    1 -
+ drivers/xen/events.c     |   18 +++++++++++++++---
+ include/xen/events.h     |    2 ++
+ 6 files changed, 52 insertions(+), 4 deletions(-)
+
+diff --git a/arch/arm/xen/enlighten.c b/arch/arm/xen/enlighten.c
+index 854af1e..60d6d36 100644
+--- a/arch/arm/xen/enlighten.c
++++ b/arch/arm/xen/enlighten.c
+@@ -7,8 +7,11 @@
+ #include <xen/grant_table.h>
+ #include <xen/hvm.h>
+ #include <xen/xenbus.h>
++#include <xen/events.h>
+ #include <asm/xen/hypervisor.h>
+ #include <asm/xen/hypercall.h>
++#include <linux/interrupt.h>
++#include <linux/irqreturn.h>
+ #include <linux/module.h>
+ #include <linux/of.h>
+ #include <linux/of_irq.h>
+@@ -33,6 +36,8 @@ EXPORT_SYMBOL_GPL(xen_have_vector_callback);
+ int xen_platform_pci_unplug = XEN_UNPLUG_ALL;
+ EXPORT_SYMBOL_GPL(xen_platform_pci_unplug);
++static __read_mostly int xen_events_irq = -1;
++
+ int xen_remap_domain_mfn_range(struct vm_area_struct *vma,
+                              unsigned long addr,
+                              unsigned long mfn, int nr,
+@@ -65,6 +70,9 @@ int __init xen_guest_init(void)
+       if (of_address_to_resource(node, 0, &res))
+               return -EINVAL;
+       xen_hvm_resume_frames = res.start >> PAGE_SHIFT;
++      xen_events_irq = irq_of_parse_and_map(node, 0);
++      pr_info("Xen support found, events_irq=%d gnttab_frame_pfn=%lx\n",
++                      xen_events_irq, xen_hvm_resume_frames);
+       xen_domain_type = XEN_HVM_DOMAIN;
+       xen_setup_features();
+@@ -114,3 +122,28 @@ int __init xen_guest_init(void)
+ }
+ EXPORT_SYMBOL_GPL(xen_guest_init);
+ core_initcall(xen_guest_init);
++
++static irqreturn_t xen_arm_callback(int irq, void *arg)
++{
++      xen_hvm_evtchn_do_upcall();
++      return 0;
++}
++
++static int __init xen_init_events(void)
++{
++      if (!xen_domain() || xen_events_irq < 0)
++              return -ENODEV;
++
++      xen_init_IRQ();
++
++      if (request_percpu_irq(xen_events_irq, xen_arm_callback,
++                      "events", xen_vcpu)) {
++              pr_err("Error requesting IRQ %d\n", xen_events_irq);
++              return -EINVAL;
++      }
++
++      enable_percpu_irq(xen_events_irq, 0);
++
++      return 0;
++}
++postcore_initcall(xen_init_events);
+diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c
+index 6131d43..5a30502 100644
+--- a/arch/x86/xen/enlighten.c
++++ b/arch/x86/xen/enlighten.c
+@@ -33,6 +33,7 @@
+ #include <linux/memblock.h>
+ #include <xen/xen.h>
++#include <xen/events.h>
+ #include <xen/interface/xen.h>
+ #include <xen/interface/version.h>
+ #include <xen/interface/physdev.h>
+diff --git a/arch/x86/xen/irq.c b/arch/x86/xen/irq.c
+index 1573376..01a4dc0 100644
+--- a/arch/x86/xen/irq.c
++++ b/arch/x86/xen/irq.c
+@@ -5,6 +5,7 @@
+ #include <xen/interface/xen.h>
+ #include <xen/interface/sched.h>
+ #include <xen/interface/vcpu.h>
++#include <xen/events.h>
+ #include <asm/xen/hypercall.h>
+ #include <asm/xen/hypervisor.h>
+diff --git a/arch/x86/xen/xen-ops.h b/arch/x86/xen/xen-ops.h
+index 202d4c1..2368295 100644
+--- a/arch/x86/xen/xen-ops.h
++++ b/arch/x86/xen/xen-ops.h
+@@ -35,7 +35,6 @@ void xen_set_pat(u64);
+ char * __init xen_memory_setup(void);
+ void __init xen_arch_setup(void);
+-void __init xen_init_IRQ(void);
+ void xen_enable_sysenter(void);
+ void xen_enable_syscall(void);
+ void xen_vcpu_restore(void);
+diff --git a/drivers/xen/events.c b/drivers/xen/events.c
+index 7da65d3..9b506b2 100644
+--- a/drivers/xen/events.c
++++ b/drivers/xen/events.c
+@@ -31,14 +31,16 @@
+ #include <linux/irqnr.h>
+ #include <linux/pci.h>
++#ifdef CONFIG_X86
+ #include <asm/desc.h>
+ #include <asm/ptrace.h>
+ #include <asm/irq.h>
+ #include <asm/idle.h>
+ #include <asm/io_apic.h>
+-#include <asm/sync_bitops.h>
+ #include <asm/xen/page.h>
+ #include <asm/xen/pci.h>
++#endif
++#include <asm/sync_bitops.h>
+ #include <asm/xen/hypercall.h>
+ #include <asm/xen/hypervisor.h>
+@@ -50,6 +52,9 @@
+ #include <xen/interface/event_channel.h>
+ #include <xen/interface/hvm/hvm_op.h>
+ #include <xen/interface/hvm/params.h>
++#include <xen/interface/physdev.h>
++#include <xen/interface/sched.h>
++#include <asm/hw_irq.h>
+ /*
+  * This lock protects updates to the following mapping and reference-count
+@@ -834,6 +839,7 @@ int bind_evtchn_to_irq(unsigned int evtchn)
+               struct irq_info *info = info_for_irq(irq);
+               WARN_ON(info == NULL || info->type != IRQT_EVTCHN);
+       }
++      irq_clear_status_flags(irq, IRQ_NOREQUEST|IRQ_NOAUTOEN);
+ out:
+       mutex_unlock(&irq_mapping_update_lock);
+@@ -1377,7 +1383,9 @@ void xen_evtchn_do_upcall(struct pt_regs *regs)
+ {
+       struct pt_regs *old_regs = set_irq_regs(regs);
++#ifdef CONFIG_X86
+       exit_idle();
++#endif
+       irq_enter();
+       __xen_evtchn_do_upcall();
+@@ -1786,9 +1794,9 @@ void xen_callback_vector(void)
+ void xen_callback_vector(void) {}
+ #endif
+-void __init xen_init_IRQ(void)
++void xen_init_IRQ(void)
+ {
+-      int i, rc;
++      int i;
+       evtchn_to_irq = kcalloc(NR_EVENT_CHANNELS, sizeof(*evtchn_to_irq),
+                                   GFP_KERNEL);
+@@ -1804,6 +1812,7 @@ void __init xen_init_IRQ(void)
+       pirq_needs_eoi = pirq_needs_eoi_flag;
++#ifdef CONFIG_X86
+       if (xen_hvm_domain()) {
+               xen_callback_vector();
+               native_init_IRQ();
+@@ -1811,6 +1820,7 @@ void __init xen_init_IRQ(void)
+                * __acpi_register_gsi can point at the right function */
+               pci_xen_hvm_init();
+       } else {
++              int rc;
+               struct physdev_pirq_eoi_gmfn eoi_gmfn;
+               irq_ctx_init(smp_processor_id());
+@@ -1826,4 +1836,6 @@ void __init xen_init_IRQ(void)
+               } else
+                       pirq_needs_eoi = pirq_check_eoi_map;
+       }
++#endif
+ }
++EXPORT_SYMBOL_GPL(xen_init_IRQ);
+diff --git a/include/xen/events.h b/include/xen/events.h
+index 04399b2..c6bfe01 100644
+--- a/include/xen/events.h
++++ b/include/xen/events.h
+@@ -109,4 +109,6 @@ int xen_irq_from_gsi(unsigned gsi);
+ /* Determine whether to ignore this IRQ if it is passed to a guest. */
+ int xen_test_irq_shared(int irq);
++/* initialize Xen IRQ subsystem */
++void xen_init_IRQ(void);
+ #endif        /* _XEN_EVENTS_H */
+-- 
+1.7.2.5
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1343316846-25860-16-git-send-email-stefano.stabellini@eu.citrix.com> b/config/examples/test/corpus/<1343316846-25860-16-git-send-email-stefano.stabellini@eu.citrix.com>
new file mode 100644 (file)
index 0000000..d3677aa
--- /dev/null
@@ -0,0 +1,128 @@
+From xen-devel-bounces@lists.xen.org Thu Jul 26 17:00:25 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 26 Jul 2012 17:00:25 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SuQU9-0001gm-Mg
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 26 Jul 2012 17:00:25 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SuQRd-0008NC-AD; Thu, 26 Jul 2012 15:57:45 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1SuQRa-0008Ls-Vf
+       for xen-devel@lists.xensource.com; Thu, 26 Jul 2012 15:57:43 +0000
+Received: from [85.158.143.35:11150] by server-1.bemta-4.messagelabs.com id
+       CC/FE-24392-6F861105; Thu, 26 Jul 2012 15:57:42 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-12.tower-21.messagelabs.com!1343318212!13917081!1
+X-Originating-IP: [66.165.176.63]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyNjczNDY=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.2; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 27537 invoked from network); 26 Jul 2012 15:56:53 -0000
+Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
+       by server-12.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
+       26 Jul 2012 15:56:53 -0000
+X-IronPort-AV: E=Sophos;i="4.77,659,1336363200"; d="scan'208";a="203311682"
+Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
+       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       26 Jul 2012 11:56:31 -0400
+Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
+       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
+       Thu, 26 Jul 2012 11:56:31 -0400
+Received: from kaball.uk.xensource.com ([10.80.2.59])  by
+       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
+       <stefano.stabellini@eu.citrix.com>)     id 1SuQ5N-0006qa-8F;
+       Thu, 26 Jul 2012 16:34:45 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+To: <linux-kernel@vger.kernel.org>
+Date: Thu, 26 Jul 2012 16:33:58 +0100
+Message-ID: <1343316846-25860-16-git-send-email-stefano.stabellini@eu.citrix.com>
+X-Mailer: git-send-email 1.7.9.5
+In-Reply-To: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
+References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
+MIME-Version: 1.0
+Cc: xen-devel@lists.xensource.com, linaro-dev@lists.linaro.org,
+       Ian.Campbell@citrix.com, arnd@arndb.de, konrad.wilk@oracle.com,
+       catalin.marinas@arm.com,
+       Stefano Stabellini <stefano.stabellini@eu.citrix.com>,
+       tim@xen.org, linux-arm-kernel@lists.infradead.org
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: [Xen-devel] [PATCH 16/24] xen/arm: implement
+       alloc/free_xenballooned_pages with alloc_pages/kfree
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+Only until we get the balloon driver to work.
+
+Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+---
+ arch/arm/xen/enlighten.c |   18 ++++++++++++++++++
+ 1 files changed, 18 insertions(+), 0 deletions(-)
+
+diff --git a/arch/arm/xen/enlighten.c b/arch/arm/xen/enlighten.c
+index 60d6d36..1476b0b 100644
+--- a/arch/arm/xen/enlighten.c
++++ b/arch/arm/xen/enlighten.c
+@@ -121,6 +121,24 @@ int __init xen_guest_init(void)
+       return 0;
+ }
+ EXPORT_SYMBOL_GPL(xen_guest_init);
++
++/* XXX: only until balloon is properly working */
++int alloc_xenballooned_pages(int nr_pages, struct page **pages, bool highmem)
++{
++      *pages = alloc_pages(highmem ? GFP_HIGHUSER : GFP_KERNEL,
++                      get_order(nr_pages));
++      if (*pages == NULL)
++              return -ENOMEM;
++      return 0;
++}
++EXPORT_SYMBOL_GPL(alloc_xenballooned_pages);
++
++void free_xenballooned_pages(int nr_pages, struct page **pages)
++{
++      kfree(*pages);
++      *pages = NULL;
++}
++EXPORT_SYMBOL_GPL(free_xenballooned_pages);
+ core_initcall(xen_guest_init);
+ static irqreturn_t xen_arm_callback(int irq, void *arg)
+-- 
+1.7.2.5
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1343316846-25860-17-git-send-email-stefano.stabellini@eu.citrix.com> b/config/examples/test/corpus/<1343316846-25860-17-git-send-email-stefano.stabellini@eu.citrix.com>
new file mode 100644 (file)
index 0000000..f8c9849
--- /dev/null
@@ -0,0 +1,115 @@
+From xen-devel-bounces@lists.xen.org Thu Jul 26 16:59:59 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 26 Jul 2012 16:59:59 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SuQTj-0001e5-C3
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 26 Jul 2012 16:59:59 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SuQQE-0007dR-Dt; Thu, 26 Jul 2012 15:56:18 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1SuQQD-0007d4-AY
+       for xen-devel@lists.xensource.com; Thu, 26 Jul 2012 15:56:17 +0000
+Received: from [85.158.138.51:30222] by server-8.bemta-3.messagelabs.com id
+       1C/08-30925-0A861105; Thu, 26 Jul 2012 15:56:16 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-14.tower-174.messagelabs.com!1343318174!22605118!1
+X-Originating-IP: [66.165.176.89]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNTk5NzY=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.2; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 874 invoked from network); 26 Jul 2012 15:56:15 -0000
+Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
+       by server-14.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
+       26 Jul 2012 15:56:15 -0000
+X-IronPort-AV: E=Sophos;i="4.77,659,1336363200"; d="scan'208";a="32691132"
+Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
+       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       26 Jul 2012 11:56:14 -0400
+Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
+       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
+       Thu, 26 Jul 2012 11:56:14 -0400
+Received: from kaball.uk.xensource.com ([10.80.2.59])  by
+       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
+       <stefano.stabellini@eu.citrix.com>)     id 1SuQ5N-0006qa-8u;
+       Thu, 26 Jul 2012 16:34:45 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+To: <linux-kernel@vger.kernel.org>
+Date: Thu, 26 Jul 2012 16:33:59 +0100
+Message-ID: <1343316846-25860-17-git-send-email-stefano.stabellini@eu.citrix.com>
+X-Mailer: git-send-email 1.7.9.5
+In-Reply-To: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
+References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
+MIME-Version: 1.0
+Cc: xen-devel@lists.xensource.com, linaro-dev@lists.linaro.org,
+       Ian.Campbell@citrix.com, arnd@arndb.de, konrad.wilk@oracle.com,
+       catalin.marinas@arm.com,
+       Stefano Stabellini <stefano.stabellini@eu.citrix.com>,
+       tim@xen.org, linux-arm-kernel@lists.infradead.org
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: [Xen-devel] [PATCH 17/24] xen: allow privcmd for HVM guests
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+In order for privcmd mmap to work correctly, xen_remap_domain_mfn_range
+needs to be implemented for HVM guests.
+If it is not, mmap is going to fail later on.
+
+Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+---
+ drivers/xen/privcmd.c |    4 ----
+ 1 files changed, 0 insertions(+), 4 deletions(-)
+
+diff --git a/drivers/xen/privcmd.c b/drivers/xen/privcmd.c
+index ccee0f1..85226cb 100644
+--- a/drivers/xen/privcmd.c
++++ b/drivers/xen/privcmd.c
+@@ -380,10 +380,6 @@ static struct vm_operations_struct privcmd_vm_ops = {
+ static int privcmd_mmap(struct file *file, struct vm_area_struct *vma)
+ {
+-      /* Unsupported for auto-translate guests. */
+-      if (xen_feature(XENFEAT_auto_translated_physmap))
+-              return -ENOSYS;
+-
+       /* DONTCOPY is essential for Xen because copy_page_range doesn't know
+        * how to recreate these mappings */
+       vma->vm_flags |= VM_RESERVED | VM_IO | VM_DONTCOPY | VM_PFNMAP;
+-- 
+1.7.2.5
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1343316846-25860-18-git-send-email-stefano.stabellini@eu.citrix.com> b/config/examples/test/corpus/<1343316846-25860-18-git-send-email-stefano.stabellini@eu.citrix.com>
new file mode 100644 (file)
index 0000000..433400c
--- /dev/null
@@ -0,0 +1,130 @@
+From xen-devel-bounces@lists.xen.org Thu Jul 26 17:00:07 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 26 Jul 2012 17:00:07 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SuQTq-0001fH-7a
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 26 Jul 2012 17:00:07 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SuQQK-0007g6-Qa; Thu, 26 Jul 2012 15:56:24 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1SuQQJ-0007f7-Dq
+       for xen-devel@lists.xensource.com; Thu, 26 Jul 2012 15:56:23 +0000
+Received: from [85.158.139.83:48279] by server-9.bemta-5.messagelabs.com id
+       DC/9C-01069-6A861105; Thu, 26 Jul 2012 15:56:22 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-9.tower-182.messagelabs.com!1343318180!28126673!1
+X-Originating-IP: [66.165.176.63]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyNjczNDY=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.2; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 3292 invoked from network); 26 Jul 2012 15:56:21 -0000
+Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
+       by server-9.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
+       26 Jul 2012 15:56:21 -0000
+X-IronPort-AV: E=Sophos;i="4.77,659,1336363200"; d="scan'208";a="203311662"
+Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
+       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       26 Jul 2012 11:56:20 -0400
+Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
+       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
+       Thu, 26 Jul 2012 11:56:20 -0400
+Received: from kaball.uk.xensource.com ([10.80.2.59])  by
+       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
+       <stefano.stabellini@eu.citrix.com>)     id 1SuQ5N-0006qa-9Y;
+       Thu, 26 Jul 2012 16:34:45 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+To: <linux-kernel@vger.kernel.org>
+Date: Thu, 26 Jul 2012 16:34:00 +0100
+Message-ID: <1343316846-25860-18-git-send-email-stefano.stabellini@eu.citrix.com>
+X-Mailer: git-send-email 1.7.9.5
+In-Reply-To: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
+References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
+MIME-Version: 1.0
+Cc: xen-devel@lists.xensource.com, linaro-dev@lists.linaro.org,
+       Ian.Campbell@citrix.com, arnd@arndb.de, konrad.wilk@oracle.com,
+       catalin.marinas@arm.com,
+       Stefano Stabellini <stefano.stabellini@eu.citrix.com>,
+       tim@xen.org, linux-arm-kernel@lists.infradead.org
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: [Xen-devel] [PATCH 18/24] xen/arm: compile blkfront and blkback
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+---
+ drivers/block/xen-blkback/blkback.c  |    1 +
+ include/xen/interface/io/protocols.h |    3 +++
+ 2 files changed, 4 insertions(+), 0 deletions(-)
+
+diff --git a/drivers/block/xen-blkback/blkback.c b/drivers/block/xen-blkback/blkback.c
+index 73f196c..63dd5b9 100644
+--- a/drivers/block/xen-blkback/blkback.c
++++ b/drivers/block/xen-blkback/blkback.c
+@@ -42,6 +42,7 @@
+ #include <xen/events.h>
+ #include <xen/page.h>
++#include <xen/xen.h>
+ #include <asm/xen/hypervisor.h>
+ #include <asm/xen/hypercall.h>
+ #include "common.h"
+diff --git a/include/xen/interface/io/protocols.h b/include/xen/interface/io/protocols.h
+index 01fc8ae..0eafaf2 100644
+--- a/include/xen/interface/io/protocols.h
++++ b/include/xen/interface/io/protocols.h
+@@ -5,6 +5,7 @@
+ #define XEN_IO_PROTO_ABI_X86_64     "x86_64-abi"
+ #define XEN_IO_PROTO_ABI_IA64       "ia64-abi"
+ #define XEN_IO_PROTO_ABI_POWERPC64  "powerpc64-abi"
++#define XEN_IO_PROTO_ABI_ARM        "arm-abi"
+ #if defined(__i386__)
+ # define XEN_IO_PROTO_ABI_NATIVE XEN_IO_PROTO_ABI_X86_32
+@@ -14,6 +15,8 @@
+ # define XEN_IO_PROTO_ABI_NATIVE XEN_IO_PROTO_ABI_IA64
+ #elif defined(__powerpc64__)
+ # define XEN_IO_PROTO_ABI_NATIVE XEN_IO_PROTO_ABI_POWERPC64
++#elif defined(__arm__)
++# define XEN_IO_PROTO_ABI_NATIVE XEN_IO_PROTO_ABI_ARM
+ #else
+ # error arch fixup needed here
+ #endif
+-- 
+1.7.2.5
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1343316846-25860-19-git-send-email-stefano.stabellini@eu.citrix.com> b/config/examples/test/corpus/<1343316846-25860-19-git-send-email-stefano.stabellini@eu.citrix.com>
new file mode 100644 (file)
index 0000000..90f4518
--- /dev/null
@@ -0,0 +1,148 @@
+From xen-devel-bounces@lists.xen.org Thu Jul 26 17:00:23 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 26 Jul 2012 17:00:23 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SuQU1-0001g6-Nc
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 26 Jul 2012 17:00:23 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SuQR8-00082r-R5; Thu, 26 Jul 2012 15:57:14 +0000
+Received: from mail27.messagelabs.com ([193.109.254.147])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1SuQR7-0007xQ-BD
+       for xen-devel@lists.xensource.com; Thu, 26 Jul 2012 15:57:13 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-2.tower-27.messagelabs.com!1343318213!10859250!1
+X-Originating-IP: [66.165.176.63]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyNjczNDY=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.2; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 29206 invoked from network); 26 Jul 2012 15:56:54 -0000
+Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
+       by server-2.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
+       26 Jul 2012 15:56:54 -0000
+X-IronPort-AV: E=Sophos;i="4.77,659,1336363200"; d="scan'208";a="203311668"
+Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
+       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       26 Jul 2012 11:56:25 -0400
+Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
+       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
+       Thu, 26 Jul 2012 11:56:26 -0400
+Received: from kaball.uk.xensource.com ([10.80.2.59])  by
+       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
+       <stefano.stabellini@eu.citrix.com>)     id 1SuQ5N-0006qa-AB;
+       Thu, 26 Jul 2012 16:34:45 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+To: <linux-kernel@vger.kernel.org>
+Date: Thu, 26 Jul 2012 16:34:01 +0100
+Message-ID: <1343316846-25860-19-git-send-email-stefano.stabellini@eu.citrix.com>
+X-Mailer: git-send-email 1.7.9.5
+In-Reply-To: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
+References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
+MIME-Version: 1.0
+Cc: xen-devel@lists.xensource.com, linaro-dev@lists.linaro.org,
+       Ian.Campbell@citrix.com, arnd@arndb.de, konrad.wilk@oracle.com,
+       catalin.marinas@arm.com,
+       Stefano Stabellini <stefano.stabellini@eu.citrix.com>,
+       tim@xen.org, linux-arm-kernel@lists.infradead.org
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD autolearn=ham version=3.3.1
+Subject: [Xen-devel] [PATCH 19/24] xen/arm: compile netback
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+---
+ arch/arm/include/asm/xen/hypercall.h |   19 +++++++++++++++++++
+ drivers/net/xen-netback/netback.c    |    1 +
+ drivers/net/xen-netfront.c           |    1 +
+ 3 files changed, 21 insertions(+), 0 deletions(-)
+
+diff --git a/arch/arm/include/asm/xen/hypercall.h b/arch/arm/include/asm/xen/hypercall.h
+index 4ac0624..8a82325 100644
+--- a/arch/arm/include/asm/xen/hypercall.h
++++ b/arch/arm/include/asm/xen/hypercall.h
+@@ -47,4 +47,23 @@ unsigned long HYPERVISOR_hvm_op(int op, void *arg);
+ int HYPERVISOR_memory_op(unsigned int cmd, void *arg);
+ int HYPERVISOR_physdev_op(int cmd, void *arg);
++static inline void
++MULTI_update_va_mapping(struct multicall_entry *mcl, unsigned long va,
++                      unsigned int new_val, unsigned long flags)
++{
++      BUG();
++}
++
++static inline void
++MULTI_mmu_update(struct multicall_entry *mcl, struct mmu_update *req,
++               int count, int *success_count, domid_t domid)
++{
++      BUG();
++}
++
++static inline int
++HYPERVISOR_multicall(void *call_list, int nr_calls)
++{
++      BUG();
++}
+ #endif /* _ASM_ARM_XEN_HYPERCALL_H */
+diff --git a/drivers/net/xen-netback/netback.c b/drivers/net/xen-netback/netback.c
+index f4a6fca..ab4f81c 100644
+--- a/drivers/net/xen-netback/netback.c
++++ b/drivers/net/xen-netback/netback.c
+@@ -40,6 +40,7 @@
+ #include <net/tcp.h>
++#include <xen/xen.h>
+ #include <xen/events.h>
+ #include <xen/interface/memory.h>
+diff --git a/drivers/net/xen-netfront.c b/drivers/net/xen-netfront.c
+index 3089990..bf4ba2b 100644
+--- a/drivers/net/xen-netfront.c
++++ b/drivers/net/xen-netfront.c
+@@ -43,6 +43,7 @@
+ #include <linux/slab.h>
+ #include <net/ip.h>
++#include <asm/xen/page.h>
+ #include <xen/xen.h>
+ #include <xen/xenbus.h>
+ #include <xen/events.h>
+-- 
+1.7.2.5
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1343316846-25860-2-git-send-email-stefano.stabellini@eu.citrix.com> b/config/examples/test/corpus/<1343316846-25860-2-git-send-email-stefano.stabellini@eu.citrix.com>
new file mode 100644 (file)
index 0000000..fee793b
--- /dev/null
@@ -0,0 +1,244 @@
+From xen-devel-bounces@lists.xen.org Thu Jul 26 16:39:05 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 26 Jul 2012 16:39:05 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SuQ9W-0001V4-GN
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 26 Jul 2012 16:39:05 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SuQ5b-0004aT-54; Thu, 26 Jul 2012 15:34:59 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1SuQ5Y-0004Yo-TV
+       for xen-devel@lists.xensource.com; Thu, 26 Jul 2012 15:34:57 +0000
+Received: from [85.158.143.35:10724] by server-1.bemta-4.messagelabs.com id
+       41/D7-24392-0A361105; Thu, 26 Jul 2012 15:34:56 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-3.tower-21.messagelabs.com!1343316891!14677221!4
+X-Originating-IP: [66.165.176.89]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNTk5NzY=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.2; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 14492 invoked from network); 26 Jul 2012 15:34:55 -0000
+Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
+       by server-3.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
+       26 Jul 2012 15:34:55 -0000
+X-IronPort-AV: E=Sophos;i="4.77,659,1336363200"; d="scan'208";a="32688371"
+Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
+       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       26 Jul 2012 11:34:50 -0400
+Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
+       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
+       Thu, 26 Jul 2012 11:34:50 -0400
+Received: from kaball.uk.xensource.com ([10.80.2.59])  by
+       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
+       <stefano.stabellini@eu.citrix.com>)     id 1SuQ5M-0006qa-Kt;
+       Thu, 26 Jul 2012 16:34:44 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+To: <linux-kernel@vger.kernel.org>
+Date: Thu, 26 Jul 2012 16:33:44 +0100
+Message-ID: <1343316846-25860-2-git-send-email-stefano.stabellini@eu.citrix.com>
+X-Mailer: git-send-email 1.7.9.5
+In-Reply-To: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
+References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
+MIME-Version: 1.0
+Cc: xen-devel@lists.xensource.com, linaro-dev@lists.linaro.org,
+       Ian.Campbell@citrix.com, arnd@arndb.de, konrad.wilk@oracle.com,
+       catalin.marinas@arm.com,
+       Stefano Stabellini <stefano.stabellini@eu.citrix.com>,
+       tim@xen.org, linux-arm-kernel@lists.infradead.org
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
+Subject: [Xen-devel] [PATCH 02/24] xen/arm: hypercalls
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+Use r12 to pass the hypercall number to the hypervisor.
+
+We need a register to pass the hypercall number because we might not
+know it at compile time and HVC only takes an immediate argument.
+
+Among the available registers r12 seems to be the best choice because it
+is defined as "intra-procedure call scratch register".
+
+Use the ISS to pass an hypervisor specific tag.
+
+Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+---
+ arch/arm/include/asm/xen/hypercall.h |   50 ++++++++++++++++++++++++++
+ arch/arm/xen/Makefile                |    2 +-
+ arch/arm/xen/hypercall.S             |   65 ++++++++++++++++++++++++++++++++++
+ 3 files changed, 116 insertions(+), 1 deletions(-)
+ create mode 100644 arch/arm/include/asm/xen/hypercall.h
+ create mode 100644 arch/arm/xen/hypercall.S
+
+diff --git a/arch/arm/include/asm/xen/hypercall.h b/arch/arm/include/asm/xen/hypercall.h
+new file mode 100644
+index 0000000..4ac0624
+--- /dev/null
++++ b/arch/arm/include/asm/xen/hypercall.h
+@@ -0,0 +1,50 @@
++/******************************************************************************
++ * hypercall.h
++ *
++ * Linux-specific hypervisor handling.
++ *
++ * Stefano Stabellini <stefano.stabellini@eu.citrix.com>, Citrix, 2012
++ *
++ * This program is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU General Public License version 2
++ * as published by the Free Software Foundation; or, when distributed
++ * separately from the Linux kernel or incorporated into other
++ * software packages, subject to the following license:
++ *
++ * Permission is hereby granted, free of charge, to any person obtaining a copy
++ * of this source file (the "Software"), to deal in the Software without
++ * restriction, including without limitation the rights to use, copy, modify,
++ * merge, publish, distribute, sublicense, and/or sell copies of the Software,
++ * and to permit persons to whom the Software is furnished to do so, subject to
++ * the following conditions:
++ *
++ * The above copyright notice and this permission notice shall be included in
++ * all copies or substantial portions of the Software.
++ *
++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
++ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
++ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
++ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
++ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
++ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
++ * IN THE SOFTWARE.
++ */
++
++#ifndef _ASM_ARM_XEN_HYPERCALL_H
++#define _ASM_ARM_XEN_HYPERCALL_H
++
++#include <xen/interface/xen.h>
++
++long privcmd_call(unsigned call, unsigned long a1,
++              unsigned long a2, unsigned long a3,
++              unsigned long a4, unsigned long a5);
++int HYPERVISOR_xen_version(int cmd, void *arg);
++int HYPERVISOR_console_io(int cmd, int count, char *str);
++int HYPERVISOR_grant_table_op(unsigned int cmd, void *uop, unsigned int count);
++int HYPERVISOR_sched_op(int cmd, void *arg);
++int HYPERVISOR_event_channel_op(int cmd, void *arg);
++unsigned long HYPERVISOR_hvm_op(int op, void *arg);
++int HYPERVISOR_memory_op(unsigned int cmd, void *arg);
++int HYPERVISOR_physdev_op(int cmd, void *arg);
++
++#endif /* _ASM_ARM_XEN_HYPERCALL_H */
+diff --git a/arch/arm/xen/Makefile b/arch/arm/xen/Makefile
+index 0bad594..b9d6acc 100644
+--- a/arch/arm/xen/Makefile
++++ b/arch/arm/xen/Makefile
+@@ -1 +1 @@
+-obj-y         := enlighten.o
++obj-y         := enlighten.o hypercall.o
+diff --git a/arch/arm/xen/hypercall.S b/arch/arm/xen/hypercall.S
+new file mode 100644
+index 0000000..038cc5b
+--- /dev/null
++++ b/arch/arm/xen/hypercall.S
+@@ -0,0 +1,65 @@
++/******************************************************************************
++ * hypercall.S
++ *
++ * Xen hypercall wrappers
++ *
++ * The Xen hypercall calling convention is very similar to the ARM
++ * procedure calling convention: the first paramter is passed in r0, the
++ * second in r1, the third in r2 and the third in r3. Considering that
++ * Xen hypercalls have 5 arguments at most, the fifth paramter is passed
++ * in r4, differently from the procedure calling convention of using the
++ * stack for that case.
++ *
++ * The hypercall number is passed in r12.
++ *
++ * The return value is in r0.
++ *
++ * The hvc ISS is required to be 0xEA1, that is the Xen specific ARM
++ * hypercall tag.
++ *
++ * Stefano Stabellini <stefano.stabellini@eu.citrix.com>, Citrix, 2012
++ */
++
++#include <linux/linkage.h>
++#include <asm/assembler.h>
++#include <xen/interface/xen.h>
++
++
++/* HVC 0xEA1 */
++#ifdef CONFIG_THUMB2_KERNEL
++#define xen_hvc .word 0xf7e08ea1
++#else
++#define xen_hvc .word 0xe140ea71
++#endif
++
++/* We need to save and restore r4, because Xen clobbers it. */
++#define HYPERCALL(hypercall)                  \
++ENTRY(HYPERVISOR_##hypercall)                 \
++      mov r12, #__HYPERVISOR_##hypercall;     \
++      xen_hvc;                                                        \
++      mov pc, lr;                                                     \
++ENDPROC(HYPERVISOR_##hypercall)
++
++                .text
++
++HYPERCALL(xen_version);
++HYPERCALL(console_io);
++HYPERCALL(grant_table_op);
++HYPERCALL(sched_op);
++HYPERCALL(event_channel_op);
++HYPERCALL(hvm_op);
++HYPERCALL(memory_op);
++HYPERCALL(physdev_op);
++
++ENTRY(privcmd_call)
++      stmdb   sp!, {r4}
++      mov r12, r0
++      mov r0, r1
++      mov r1, r2
++      mov r2, r3
++      ldr r3, [sp, #8]
++      ldr r4, [sp, #4]
++      xen_hvc
++      pop {r4}
++      mov pc, lr
++ENDPROC(privcmd_call);
+-- 
+1.7.2.5
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1343316846-25860-20-git-send-email-stefano.stabellini@eu.citrix.com> b/config/examples/test/corpus/<1343316846-25860-20-git-send-email-stefano.stabellini@eu.citrix.com>
new file mode 100644 (file)
index 0000000..3734bb7
--- /dev/null
@@ -0,0 +1,129 @@
+From xen-devel-bounces@lists.xen.org Thu Jul 26 17:00:00 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 26 Jul 2012 17:00:00 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SuQTl-0001e9-2I
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 26 Jul 2012 17:00:00 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SuQPt-0007Yc-Ji; Thu, 26 Jul 2012 15:55:57 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1SuQPr-0007YW-Lp
+       for xen-devel@lists.xensource.com; Thu, 26 Jul 2012 15:55:55 +0000
+Received: from [85.158.143.35:9703] by server-2.bemta-4.messagelabs.com id
+       E9/03-17938-B8861105; Thu, 26 Jul 2012 15:55:55 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-12.tower-21.messagelabs.com!1343318146!13916888!1
+X-Originating-IP: [66.165.176.63]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyNjczNDY=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.2; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 24422 invoked from network); 26 Jul 2012 15:55:48 -0000
+Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
+       by server-12.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
+       26 Jul 2012 15:55:48 -0000
+X-IronPort-AV: E=Sophos;i="4.77,659,1336363200"; d="scan'208";a="203311594"
+Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
+       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       26 Jul 2012 11:55:45 -0400
+Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
+       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
+       Thu, 26 Jul 2012 11:55:45 -0400
+Received: from kaball.uk.xensource.com ([10.80.2.59])  by
+       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
+       <stefano.stabellini@eu.citrix.com>)     id 1SuQ5N-0006qa-Aq;
+       Thu, 26 Jul 2012 16:34:45 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+To: <linux-kernel@vger.kernel.org>
+Date: Thu, 26 Jul 2012 16:34:02 +0100
+Message-ID: <1343316846-25860-20-git-send-email-stefano.stabellini@eu.citrix.com>
+X-Mailer: git-send-email 1.7.9.5
+In-Reply-To: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
+References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
+MIME-Version: 1.0
+Cc: xen-devel@lists.xensource.com, linaro-dev@lists.linaro.org,
+       Ian.Campbell@citrix.com, arnd@arndb.de, konrad.wilk@oracle.com,
+       catalin.marinas@arm.com,
+       Stefano Stabellini <stefano.stabellini@eu.citrix.com>,
+       tim@xen.org, linux-arm-kernel@lists.infradead.org
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: [Xen-devel] [PATCH 20/24] xen: update xen_add_to_physmap interface
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+Update struct xen_add_to_physmap to be in sync with Xen's version of the
+structure.
+The size field was introduced by:
+
+changeset:   24164:707d27fe03e7
+user:        Jean Guyader <jean.guyader@eu.citrix.com>
+date:        Fri Nov 18 13:42:08 2011 +0000
+summary:     mm: New XENMEM space, XENMAPSPACE_gmfn_range
+
+According to the comment:
+
+"This new field .size is located in the 16 bits padding between .domid
+and .space in struct xen_add_to_physmap to stay compatible with older
+versions."
+
+This is not true on ARM where there is not padding, but it is valid on
+X86, so introducing size is safe on X86 and it is going to fix the
+interace for ARM.
+
+Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+---
+ include/xen/interface/memory.h |    3 +++
+ 1 files changed, 3 insertions(+), 0 deletions(-)
+
+diff --git a/include/xen/interface/memory.h b/include/xen/interface/memory.h
+index abbbff0..d8e33a9 100644
+--- a/include/xen/interface/memory.h
++++ b/include/xen/interface/memory.h
+@@ -163,6 +163,9 @@ struct xen_add_to_physmap {
+     /* Which domain to change the mapping for. */
+     domid_t domid;
++    /* Number of pages to go through for gmfn_range */
++    uint16_t    size;
++
+     /* Source mapping space. */
+ #define XENMAPSPACE_shared_info 0 /* shared info page */
+ #define XENMAPSPACE_grant_table 1 /* grant table page */
+-- 
+1.7.2.5
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1343316846-25860-21-git-send-email-stefano.stabellini@eu.citrix.com> b/config/examples/test/corpus/<1343316846-25860-21-git-send-email-stefano.stabellini@eu.citrix.com>
new file mode 100644 (file)
index 0000000..16c559d
--- /dev/null
@@ -0,0 +1,124 @@
+From xen-devel-bounces@lists.xen.org Thu Jul 26 16:59:58 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 26 Jul 2012 16:59:58 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SuQTg-0001e2-0z
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 26 Jul 2012 16:59:58 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SuQPx-0007Z8-Cp; Thu, 26 Jul 2012 15:56:01 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1SuQPw-0007Z0-6F
+       for xen-devel@lists.xensource.com; Thu, 26 Jul 2012 15:56:00 +0000
+Received: from [85.158.138.51:28814] by server-5.bemta-3.messagelabs.com id
+       D0/F2-28237-F8861105; Thu, 26 Jul 2012 15:55:59 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-5.tower-174.messagelabs.com!1343318152!29038537!2
+X-Originating-IP: [66.165.176.89]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNTk5NzY=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.2; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 17028 invoked from network); 26 Jul 2012 15:55:58 -0000
+Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
+       by server-5.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
+       26 Jul 2012 15:55:58 -0000
+X-IronPort-AV: E=Sophos;i="4.77,659,1336363200"; d="scan'208";a="32691104"
+Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
+       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       26 Jul 2012 11:55:57 -0400
+Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
+       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
+       Thu, 26 Jul 2012 11:55:57 -0400
+Received: from kaball.uk.xensource.com ([10.80.2.59])  by
+       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
+       <stefano.stabellini@eu.citrix.com>)     id 1SuQ5N-0006qa-BV;
+       Thu, 26 Jul 2012 16:34:45 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+To: <linux-kernel@vger.kernel.org>
+Date: Thu, 26 Jul 2012 16:34:03 +0100
+Message-ID: <1343316846-25860-21-git-send-email-stefano.stabellini@eu.citrix.com>
+X-Mailer: git-send-email 1.7.9.5
+In-Reply-To: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
+References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
+MIME-Version: 1.0
+Cc: xen-devel@lists.xensource.com, linaro-dev@lists.linaro.org,
+       Ian.Campbell@citrix.com, arnd@arndb.de, konrad.wilk@oracle.com,
+       catalin.marinas@arm.com,
+       Stefano Stabellini <stefano.stabellini@eu.citrix.com>,
+       tim@xen.org, linux-arm-kernel@lists.infradead.org
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: [Xen-devel] [PATCH 21/24] arm/v2m: initialize arch_timers even if
+       v2m_timer is not present
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+---
+ arch/arm/mach-vexpress/v2m.c |   11 ++++++-----
+ 1 files changed, 6 insertions(+), 5 deletions(-)
+
+diff --git a/arch/arm/mach-vexpress/v2m.c b/arch/arm/mach-vexpress/v2m.c
+index fde26ad..dee1451 100644
+--- a/arch/arm/mach-vexpress/v2m.c
++++ b/arch/arm/mach-vexpress/v2m.c
+@@ -637,16 +637,17 @@ static void __init v2m_dt_timer_init(void)
+       node = of_find_compatible_node(NULL, NULL, "arm,sp810");
+       v2m_sysctl_init(of_iomap(node, 0));
+-      err = of_property_read_string(of_aliases, "arm,v2m_timer", &path);
+-      if (WARN_ON(err))
+-              return;
+-      node = of_find_node_by_path(path);
+-      v2m_sp804_init(of_iomap(node, 0), irq_of_parse_and_map(node, 0));
+       if (arch_timer_of_register() != 0)
+               twd_local_timer_of_register();
+       if (arch_timer_sched_clock_init() != 0)
+               versatile_sched_clock_init(v2m_sysreg_base + V2M_SYS_24MHZ, 24000000);
++
++      err = of_property_read_string(of_aliases, "arm,v2m_timer", &path);
++      if (WARN_ON(err))
++              return;
++      node = of_find_node_by_path(path);
++      v2m_sp804_init(of_iomap(node, 0), irq_of_parse_and_map(node, 0));
+ }
+ static struct sys_timer v2m_dt_timer = {
+-- 
+1.7.2.5
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1343316846-25860-22-git-send-email-stefano.stabellini@eu.citrix.com> b/config/examples/test/corpus/<1343316846-25860-22-git-send-email-stefano.stabellini@eu.citrix.com>
new file mode 100644 (file)
index 0000000..041dc29
--- /dev/null
@@ -0,0 +1,133 @@
+From xen-devel-bounces@lists.xen.org Thu Jul 26 17:00:03 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 26 Jul 2012 17:00:03 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SuQTj-0001e6-LG
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 26 Jul 2012 17:00:03 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SuQQ9-0007cM-Vy; Thu, 26 Jul 2012 15:56:13 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1SuQQ7-0007bs-MY
+       for xen-devel@lists.xensource.com; Thu, 26 Jul 2012 15:56:11 +0000
+Received: from [85.158.143.99:53851] by server-3.bemta-4.messagelabs.com id
+       2A/40-01511-B9861105; Thu, 26 Jul 2012 15:56:11 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-2.tower-216.messagelabs.com!1343318168!23540123!1
+X-Originating-IP: [66.165.176.63]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyNjczNDY=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.2; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 21769 invoked from network); 26 Jul 2012 15:56:09 -0000
+Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
+       by server-2.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
+       26 Jul 2012 15:56:09 -0000
+X-IronPort-AV: E=Sophos;i="4.77,659,1336363200"; d="scan'208";a="203311643"
+Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
+       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       26 Jul 2012 11:56:08 -0400
+Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
+       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
+       Thu, 26 Jul 2012 11:56:08 -0400
+Received: from kaball.uk.xensource.com ([10.80.2.59])  by
+       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
+       <stefano.stabellini@eu.citrix.com>)     id 1SuQ5N-0006qa-CB;
+       Thu, 26 Jul 2012 16:34:45 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+To: <linux-kernel@vger.kernel.org>
+Date: Thu, 26 Jul 2012 16:34:04 +0100
+Message-ID: <1343316846-25860-22-git-send-email-stefano.stabellini@eu.citrix.com>
+X-Mailer: git-send-email 1.7.9.5
+In-Reply-To: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
+References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
+MIME-Version: 1.0
+Cc: xen-devel@lists.xensource.com, linaro-dev@lists.linaro.org,
+       Ian Campbell <ian.campbell@citrix.com>, arnd@arndb.de,
+       konrad.wilk@oracle.com, catalin.marinas@arm.com,
+       Stefano Stabellini <stefano.stabellini@eu.citrix.com>,
+       tim@xen.org, linux-arm-kernel@lists.infradead.org
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: [Xen-devel] [PATCH 22/24] ARM: enable earlyprintk=xen
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+From: Ian Campbell <ian.campbell@citrix.com>
+
+Currently ARM setup_early_printk does not support alternative early
+consoles and it always registers early_console only.
+
+This patch adds support for xenboot_console.
+
+Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+---
+ arch/arm/kernel/early_printk.c |   11 ++++++++++-
+ 1 files changed, 10 insertions(+), 1 deletions(-)
+
+diff --git a/arch/arm/kernel/early_printk.c b/arch/arm/kernel/early_printk.c
+index 85aa2b2..eecfa21 100644
+--- a/arch/arm/kernel/early_printk.c
++++ b/arch/arm/kernel/early_printk.c
+@@ -11,6 +11,8 @@
+ #include <linux/kernel.h>
+ #include <linux/console.h>
+ #include <linux/init.h>
++#include <linux/string.h>
++#include <xen/hvc-console.h>
+ extern void printch(int);
+@@ -50,7 +52,14 @@ asmlinkage void early_printk(const char *fmt, ...)
+ static int __init setup_early_printk(char *buf)
+ {
+-      register_console(&early_console);
++      if (!buf || !strncmp(buf, "serial", 6))
++              register_console(&early_console);
++
++#ifdef CONFIG_HVC_XEN
++      if (!strncmp(buf, "xen", 3))
++              register_console(&xenboot_console);
++#endif
++
+       return 0;
+ }
+-- 
+1.7.2.5
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1343316846-25860-23-git-send-email-stefano.stabellini@eu.citrix.com> b/config/examples/test/corpus/<1343316846-25860-23-git-send-email-stefano.stabellini@eu.citrix.com>
new file mode 100644 (file)
index 0000000..4ec242f
--- /dev/null
@@ -0,0 +1,118 @@
+From xen-devel-bounces@lists.xen.org Thu Jul 26 16:59:57 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 26 Jul 2012 16:59:57 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SuQTf-0001e1-QZ
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 26 Jul 2012 16:59:57 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SuQPu-0007Yn-Vs; Thu, 26 Jul 2012 15:55:58 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1SuQPt-0007Yb-QJ
+       for xen-devel@lists.xensource.com; Thu, 26 Jul 2012 15:55:58 +0000
+Received: from [85.158.138.51:4757] by server-7.bemta-3.messagelabs.com id
+       5D/82-21158-C8861105; Thu, 26 Jul 2012 15:55:56 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-5.tower-174.messagelabs.com!1343318152!29038537!1
+X-Originating-IP: [66.165.176.89]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNTk5NzY=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.2; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 16597 invoked from network); 26 Jul 2012 15:55:53 -0000
+Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
+       by server-5.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
+       26 Jul 2012 15:55:53 -0000
+X-IronPort-AV: E=Sophos;i="4.77,659,1336363200"; d="scan'208";a="32691093"
+Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
+       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       26 Jul 2012 11:55:51 -0400
+Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
+       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
+       Thu, 26 Jul 2012 11:55:51 -0400
+Received: from kaball.uk.xensource.com ([10.80.2.59])  by
+       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
+       <stefano.stabellini@eu.citrix.com>)     id 1SuQ5N-0006qa-Cq;
+       Thu, 26 Jul 2012 16:34:45 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+To: <linux-kernel@vger.kernel.org>
+Date: Thu, 26 Jul 2012 16:34:05 +0100
+Message-ID: <1343316846-25860-23-git-send-email-stefano.stabellini@eu.citrix.com>
+X-Mailer: git-send-email 1.7.9.5
+In-Reply-To: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
+References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
+MIME-Version: 1.0
+Cc: xen-devel@lists.xensource.com, linaro-dev@lists.linaro.org,
+       Ian.Campbell@citrix.com, arnd@arndb.de, konrad.wilk@oracle.com,
+       catalin.marinas@arm.com,
+       Stefano Stabellini <stefano.stabellini@eu.citrix.com>,
+       tim@xen.org, linux-arm-kernel@lists.infradead.org
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: [Xen-devel] [PATCH 23/24] hvc_xen: allow dom0_write_console for HVM
+       guests
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On ARM all guests are HVM guests, including Dom0.
+Allow dom0_write_console to be called by an HVM domain.
+
+Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+---
+ drivers/tty/hvc/hvc_xen.c |    5 +----
+ 1 files changed, 1 insertions(+), 4 deletions(-)
+
+diff --git a/drivers/tty/hvc/hvc_xen.c b/drivers/tty/hvc/hvc_xen.c
+index 3c04fb8..949edc2 100644
+--- a/drivers/tty/hvc/hvc_xen.c
++++ b/drivers/tty/hvc/hvc_xen.c
+@@ -616,12 +616,9 @@ static void xenboot_write_console(struct console *console, const char *string,
+       unsigned int linelen, off = 0;
+       const char *pos;
+-      if (!xen_pv_domain())
+-              return;
+-
+       dom0_write_console(0, string, len);
+-      if (xen_initial_domain())
++      if (!xen_pv_domain())
+               return;
+       domU_write_console(0, "(early) ", 8);
+-- 
+1.7.2.5
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1343316846-25860-24-git-send-email-stefano.stabellini@eu.citrix.com> b/config/examples/test/corpus/<1343316846-25860-24-git-send-email-stefano.stabellini@eu.citrix.com>
new file mode 100644 (file)
index 0000000..1f955b6
--- /dev/null
@@ -0,0 +1,320 @@
+From xen-devel-bounces@lists.xen.org Thu Jul 26 17:00:23 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 26 Jul 2012 17:00:23 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SuQU1-0001g4-6V
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 26 Jul 2012 17:00:23 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SuQR0-0007wN-Lr; Thu, 26 Jul 2012 15:57:06 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1SuQQy-0007vJ-F2
+       for xen-devel@lists.xensource.com; Thu, 26 Jul 2012 15:57:04 +0000
+Received: from [85.158.138.51:35741] by server-8.bemta-3.messagelabs.com id
+       7B/49-30925-FC861105; Thu, 26 Jul 2012 15:57:03 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-5.tower-174.messagelabs.com!1343318221!29038721!1
+X-Originating-IP: [66.165.176.63]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyNjczNDY=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.2; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 24124 invoked from network); 26 Jul 2012 15:57:02 -0000
+Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
+       by server-5.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
+       26 Jul 2012 15:57:02 -0000
+X-IronPort-AV: E=Sophos;i="4.77,659,1336363200"; d="scan'208";a="203311698"
+Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
+       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       26 Jul 2012 11:56:43 -0400
+Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
+       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
+       Thu, 26 Jul 2012 11:56:43 -0400
+Received: from kaball.uk.xensource.com ([10.80.2.59])  by
+       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
+       <stefano.stabellini@eu.citrix.com>)     id 1SuQ5N-0006qa-DT;
+       Thu, 26 Jul 2012 16:34:45 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+To: <linux-kernel@vger.kernel.org>
+Date: Thu, 26 Jul 2012 16:34:06 +0100
+Message-ID: <1343316846-25860-24-git-send-email-stefano.stabellini@eu.citrix.com>
+X-Mailer: git-send-email 1.7.9.5
+In-Reply-To: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
+References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
+MIME-Version: 1.0
+Cc: xen-devel@lists.xensource.com, linaro-dev@lists.linaro.org,
+       Ian.Campbell@citrix.com, arnd@arndb.de, konrad.wilk@oracle.com,
+       catalin.marinas@arm.com,
+       Stefano Stabellini <stefano.stabellini@eu.citrix.com>,
+       tim@xen.org, linux-arm-kernel@lists.infradead.org
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
+Subject: [Xen-devel] [PATCH 24/24] [HACK] xen/arm: implement
+       xen_remap_domain_mfn_range
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+From: Ian Campbell <Ian.Campbell@citrix.com>
+
+Do not apply!
+
+This is a simple, hacky implementation of xen_remap_domain_mfn_range,
+using XENMAPSPACE_gmfn_foreign.
+
+It should use same interface as hybrid x86.
+
+Signed-off-by: Ian Campbell <Ian.Campbell@citrix.com>
+Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+---
+ arch/arm/xen/enlighten.c       |   79 +++++++++++++++++++++++++++++++++++++++-
+ drivers/xen/privcmd.c          |   16 +++++----
+ drivers/xen/xenfs/super.c      |    7 ++++
+ include/xen/interface/memory.h |   10 ++++--
+ 4 files changed, 101 insertions(+), 11 deletions(-)
+
+diff --git a/arch/arm/xen/enlighten.c b/arch/arm/xen/enlighten.c
+index 1476b0b..7092015 100644
+--- a/arch/arm/xen/enlighten.c
++++ b/arch/arm/xen/enlighten.c
+@@ -16,6 +16,10 @@
+ #include <linux/of.h>
+ #include <linux/of_irq.h>
+ #include <linux/of_address.h>
++#include <linux/mm.h>
++#include <linux/ioport.h>
++
++#include <asm/pgtable.h>
+ struct start_info _xen_start_info;
+ struct start_info *xen_start_info = &_xen_start_info;
+@@ -38,12 +42,85 @@ EXPORT_SYMBOL_GPL(xen_platform_pci_unplug);
+ static __read_mostly int xen_events_irq = -1;
++#define FOREIGN_MAP_BUFFER 0x90000000UL
++#define FOREIGN_MAP_BUFFER_SIZE 0x10000000UL
++struct resource foreign_map_resource = {
++      .start = FOREIGN_MAP_BUFFER,
++      .end = FOREIGN_MAP_BUFFER + FOREIGN_MAP_BUFFER_SIZE,
++      .name = "Xen foreign map buffer",
++      .flags = 0,
++};
++
++static unsigned long foreign_map_buffer_pfn = FOREIGN_MAP_BUFFER >> PAGE_SHIFT;
++
++struct remap_data {
++      struct mm_struct *mm;
++      unsigned long mfn;
++      pgprot_t prot;
++};
++
++static int remap_area_mfn_pte_fn(pte_t *ptep, pgtable_t token,
++                               unsigned long addr, void *data)
++{
++      struct remap_data *rmd = data;
++      pte_t pte = pfn_pte(rmd->mfn, rmd->prot);
++
++      if (rmd->mfn < 0x90010)
++              pr_crit("%s: ptep %p addr %#lx => %#x / %#lx\n",
++                     __func__, ptep, addr, pte_val(pte), rmd->mfn);
++
++      set_pte_at(rmd->mm, addr, ptep, pte);
++
++      rmd->mfn++;
++      return 0;
++}
++
+ int xen_remap_domain_mfn_range(struct vm_area_struct *vma,
+                              unsigned long addr,
+                              unsigned long mfn, int nr,
+                              pgprot_t prot, unsigned domid)
+ {
+-      return -ENOSYS;
++      int i, rc = 0;
++      struct remap_data rmd = {
++              .mm = vma->vm_mm,
++              .prot = prot,
++      };
++      struct xen_add_to_physmap xatp = {
++              .domid = DOMID_SELF,
++              .space = XENMAPSPACE_gmfn_foreign,
++
++              .foreign_domid = domid,
++      };
++
++      if (foreign_map_buffer_pfn + nr > ((FOREIGN_MAP_BUFFER +
++                                      FOREIGN_MAP_BUFFER_SIZE)>>PAGE_SHIFT)) {
++              pr_crit("RAM out of foreign map buffers...\n");
++              return -EBUSY;
++      }
++
++      for (i = 0; i < nr; i++) {
++              xatp.idx = mfn + i;
++              xatp.gpfn = foreign_map_buffer_pfn + i;
++              rc = HYPERVISOR_memory_op(XENMEM_add_to_physmap, &xatp);
++              if (rc != 0) {
++                      pr_crit("foreign map add_to_physmap failed, err=%d\n", rc);
++                      goto out;
++              }
++      }
++
++      rmd.mfn = foreign_map_buffer_pfn;
++      rc = apply_to_page_range(vma->vm_mm,
++                               addr,
++                               (unsigned long)nr << PAGE_SHIFT,
++                               remap_area_mfn_pte_fn, &rmd);
++      if (rc != 0) {
++              pr_crit("apply_to_page_range failed rc=%d\n", rc);
++              goto out;
++      }
++
++      foreign_map_buffer_pfn += nr;
++out:
++      return rc;
+ }
+ EXPORT_SYMBOL_GPL(xen_remap_domain_mfn_range);
+diff --git a/drivers/xen/privcmd.c b/drivers/xen/privcmd.c
+index 85226cb..3e15c22 100644
+--- a/drivers/xen/privcmd.c
++++ b/drivers/xen/privcmd.c
+@@ -20,6 +20,8 @@
+ #include <linux/pagemap.h>
+ #include <linux/seq_file.h>
+ #include <linux/miscdevice.h>
++#include <linux/resource.h>
++#include <linux/ioport.h>
+ #include <asm/pgalloc.h>
+ #include <asm/pgtable.h>
+@@ -196,9 +198,6 @@ static long privcmd_ioctl_mmap(void __user *udata)
+       LIST_HEAD(pagelist);
+       struct mmap_mfn_state state;
+-      if (!xen_initial_domain())
+-              return -EPERM;
+-
+       if (copy_from_user(&mmapcmd, udata, sizeof(mmapcmd)))
+               return -EFAULT;
+@@ -286,9 +285,6 @@ static long privcmd_ioctl_mmap_batch(void __user *udata)
+       LIST_HEAD(pagelist);
+       struct mmap_batch_state state;
+-      if (!xen_initial_domain())
+-              return -EPERM;
+-
+       if (copy_from_user(&m, udata, sizeof(m)))
+               return -EFAULT;
+@@ -365,6 +361,11 @@ static long privcmd_ioctl(struct file *file,
+       return ret;
+ }
++static void privcmd_close(struct vm_area_struct *vma)
++{
++      /* TODO: unmap VMA */
++}
++
+ static int privcmd_fault(struct vm_area_struct *vma, struct vm_fault *vmf)
+ {
+       printk(KERN_DEBUG "privcmd_fault: vma=%p %lx-%lx, pgoff=%lx, uv=%p\n",
+@@ -375,7 +376,8 @@ static int privcmd_fault(struct vm_area_struct *vma, struct vm_fault *vmf)
+ }
+ static struct vm_operations_struct privcmd_vm_ops = {
+-      .fault = privcmd_fault
++      .fault = privcmd_fault,
++      .close = privcmd_close,
+ };
+ static int privcmd_mmap(struct file *file, struct vm_area_struct *vma)
+diff --git a/drivers/xen/xenfs/super.c b/drivers/xen/xenfs/super.c
+index a84b53c..edbe22f 100644
+--- a/drivers/xen/xenfs/super.c
++++ b/drivers/xen/xenfs/super.c
+@@ -12,6 +12,7 @@
+ #include <linux/module.h>
+ #include <linux/fs.h>
+ #include <linux/magic.h>
++#include <linux/ioport.h>
+ #include <xen/xen.h>
+@@ -80,6 +81,8 @@ static const struct file_operations capabilities_file_ops = {
+       .llseek = default_llseek,
+ };
++extern struct resource foreign_map_resource;
++
+ static int xenfs_fill_super(struct super_block *sb, void *data, int silent)
+ {
+       static struct tree_descr xenfs_files[] = {
+@@ -100,6 +103,10 @@ static int xenfs_fill_super(struct super_block *sb, void *data, int silent)
+                                 &xsd_kva_file_ops, NULL, S_IRUSR|S_IWUSR);
+               xenfs_create_file(sb, sb->s_root, "xsd_port",
+                                 &xsd_port_file_ops, NULL, S_IRUSR|S_IWUSR);
++              rc = request_resource(&iomem_resource, &foreign_map_resource);
++              if (rc < 0)
++                      pr_crit("failed to register foreign map resource\n");
++              rc = 0; /* ignore */
+       }
+       return rc;
+diff --git a/include/xen/interface/memory.h b/include/xen/interface/memory.h
+index d8e33a9..ec68945 100644
+--- a/include/xen/interface/memory.h
++++ b/include/xen/interface/memory.h
+@@ -167,9 +167,13 @@ struct xen_add_to_physmap {
+     uint16_t    size;
+     /* Source mapping space. */
+-#define XENMAPSPACE_shared_info 0 /* shared info page */
+-#define XENMAPSPACE_grant_table 1 /* grant table page */
+-    unsigned int space;
++#define XENMAPSPACE_shared_info  0 /* shared info page */
++#define XENMAPSPACE_grant_table  1 /* grant table page */
++#define XENMAPSPACE_gmfn         2 /* GMFN */
++#define XENMAPSPACE_gmfn_range   3 /* GMFN range */
++#define XENMAPSPACE_gmfn_foreign 4 /* GMFN from another guest */
++    uint16_t space;
++    domid_t foreign_domid; /* IFF gmfn_foreign */
+     /* Index into source mapping space. */
+     unsigned long idx;
+-- 
+1.7.2.5
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1343316846-25860-3-git-send-email-stefano.stabellini@eu.citrix.com> b/config/examples/test/corpus/<1343316846-25860-3-git-send-email-stefano.stabellini@eu.citrix.com>
new file mode 100644 (file)
index 0000000..02de19b
--- /dev/null
@@ -0,0 +1,183 @@
+From xen-devel-bounces@lists.xen.org Thu Jul 26 16:39:17 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 26 Jul 2012 16:39:17 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SuQ9f-0001Vd-SP
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 26 Jul 2012 16:39:17 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SuQ5a-0004Zr-AA; Thu, 26 Jul 2012 15:34:58 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1SuQ5X-0004Yo-S3
+       for xen-devel@lists.xensource.com; Thu, 26 Jul 2012 15:34:56 +0000
+Received: from [85.158.143.35:10620] by server-1.bemta-4.messagelabs.com id
+       77/C7-24392-F9361105; Thu, 26 Jul 2012 15:34:55 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-3.tower-21.messagelabs.com!1343316891!14677221!2
+X-Originating-IP: [66.165.176.89]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNTk5NzY=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.2; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 14409 invoked from network); 26 Jul 2012 15:34:54 -0000
+Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
+       by server-3.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
+       26 Jul 2012 15:34:54 -0000
+X-IronPort-AV: E=Sophos;i="4.77,659,1336363200"; d="scan'208";a="32688369"
+Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
+       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       26 Jul 2012 11:34:50 -0400
+Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
+       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
+       Thu, 26 Jul 2012 11:34:50 -0400
+Received: from kaball.uk.xensource.com ([10.80.2.59])  by
+       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
+       <stefano.stabellini@eu.citrix.com>)     id 1SuQ5M-0006qa-Mo;
+       Thu, 26 Jul 2012 16:34:44 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+To: <linux-kernel@vger.kernel.org>
+Date: Thu, 26 Jul 2012 16:33:45 +0100
+Message-ID: <1343316846-25860-3-git-send-email-stefano.stabellini@eu.citrix.com>
+X-Mailer: git-send-email 1.7.9.5
+In-Reply-To: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
+References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
+MIME-Version: 1.0
+Cc: xen-devel@lists.xensource.com, linaro-dev@lists.linaro.org,
+       Ian.Campbell@citrix.com, arnd@arndb.de, konrad.wilk@oracle.com,
+       catalin.marinas@arm.com,
+       Stefano Stabellini <stefano.stabellini@eu.citrix.com>,
+       tim@xen.org, linux-arm-kernel@lists.infradead.org
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
+Subject: [Xen-devel] [PATCH 03/24] xen/arm: page.h definitions
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+ARM Xen guests always use paging in hardware, like PV on HVM guests in
+the X86 world.
+
+Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+---
+ arch/arm/include/asm/xen/page.h |   77 +++++++++++++++++++++++++++++++++++++++
+ 1 files changed, 77 insertions(+), 0 deletions(-)
+ create mode 100644 arch/arm/include/asm/xen/page.h
+
+diff --git a/arch/arm/include/asm/xen/page.h b/arch/arm/include/asm/xen/page.h
+new file mode 100644
+index 0000000..6cfe9a1
+--- /dev/null
++++ b/arch/arm/include/asm/xen/page.h
+@@ -0,0 +1,77 @@
++#ifndef _ASM_ARM_XEN_PAGE_H
++#define _ASM_ARM_XEN_PAGE_H
++
++#include <asm/page.h>
++#include <linux/pfn.h>
++#include <linux/types.h>
++#include <asm/pgtable.h>
++#include <xen/interface/grant_table.h>
++
++#define pfn_to_mfn(pfn)                       (pfn)
++#define phys_to_machine_mapping_valid (1)
++#define mfn_to_pfn(mfn)                       (mfn)
++#define mfn_to_virt(m)                        (__va(mfn_to_pfn(m) << PAGE_SHIFT))
++
++#define pte_mfn           pte_pfn
++#define mfn_pte           pfn_pte
++
++/* Xen machine address */
++typedef struct xmaddr {
++      phys_addr_t maddr;
++} xmaddr_t;
++
++/* Xen pseudo-physical address */
++typedef struct xpaddr {
++      phys_addr_t paddr;
++} xpaddr_t;
++
++#define XMADDR(x)     ((xmaddr_t) { .maddr = (x) })
++#define XPADDR(x)     ((xpaddr_t) { .paddr = (x) })
++
++static inline xmaddr_t phys_to_machine(xpaddr_t phys)
++{
++      unsigned offset = phys.paddr & ~PAGE_MASK;
++      return XMADDR(PFN_PHYS(pfn_to_mfn(PFN_DOWN(phys.paddr))) | offset);
++}
++
++static inline xpaddr_t machine_to_phys(xmaddr_t machine)
++{
++      unsigned offset = machine.maddr & ~PAGE_MASK;
++      return XPADDR(PFN_PHYS(mfn_to_pfn(PFN_DOWN(machine.maddr))) | offset);
++}
++/* VIRT <-> MACHINE conversion */
++#define virt_to_machine(v)    (phys_to_machine(XPADDR(__pa(v))))
++#define virt_to_pfn(v)          (PFN_DOWN(__pa(v)))
++#define virt_to_mfn(v)                (pfn_to_mfn(virt_to_pfn(v)))
++#define mfn_to_virt(m)                (__va(mfn_to_pfn(m) << PAGE_SHIFT))
++
++static inline xmaddr_t arbitrary_virt_to_machine(void *vaddr)
++{
++      /* XXX: assuming it is mapped in the kernel 1:1 */
++      return virt_to_machine(vaddr);
++}
++
++/* XXX: this shouldn't be here */
++static inline pte_t *lookup_address(unsigned long address, unsigned int *level)
++{
++      BUG();
++      return NULL;
++}
++
++static inline int m2p_add_override(unsigned long mfn, struct page *page,
++              struct gnttab_map_grant_ref *kmap_op)
++{
++      return 0;
++}
++
++static inline int m2p_remove_override(struct page *page, bool clear_pte)
++{
++      return 0;
++}
++
++static inline bool set_phys_to_machine(unsigned long pfn, unsigned long mfn)
++{
++      BUG();
++      return false;
++}
++#endif /* _ASM_ARM_XEN_PAGE_H */
+-- 
+1.7.2.5
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1343316846-25860-4-git-send-email-stefano.stabellini@eu.citrix.com> b/config/examples/test/corpus/<1343316846-25860-4-git-send-email-stefano.stabellini@eu.citrix.com>
new file mode 100644 (file)
index 0000000..4f38b83
--- /dev/null
@@ -0,0 +1,123 @@
+From xen-devel-bounces@lists.xen.org Thu Jul 26 16:38:26 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 26 Jul 2012 16:38:26 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SuQ8t-0001TJ-O0
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 26 Jul 2012 16:38:26 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SuQ5Y-0004ZJ-T7; Thu, 26 Jul 2012 15:34:56 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1SuQ5X-0004YZ-5P
+       for xen-devel@lists.xensource.com; Thu, 26 Jul 2012 15:34:55 +0000
+Received: from [85.158.143.35:9474] by server-3.bemta-4.messagelabs.com id
+       C4/A9-01511-E9361105; Thu, 26 Jul 2012 15:34:54 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-3.tower-21.messagelabs.com!1343316891!14677221!1
+X-Originating-IP: [66.165.176.89]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNTk5NzY=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.2; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 14370 invoked from network); 26 Jul 2012 15:34:53 -0000
+Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
+       by server-3.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
+       26 Jul 2012 15:34:53 -0000
+X-IronPort-AV: E=Sophos;i="4.77,659,1336363200"; d="scan'208";a="32688368"
+Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
+       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       26 Jul 2012 11:34:50 -0400
+Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
+       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
+       Thu, 26 Jul 2012 11:34:50 -0400
+Received: from kaball.uk.xensource.com ([10.80.2.59])  by
+       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
+       <stefano.stabellini@eu.citrix.com>)     id 1SuQ5M-0006qa-Oj;
+       Thu, 26 Jul 2012 16:34:44 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+To: <linux-kernel@vger.kernel.org>
+Date: Thu, 26 Jul 2012 16:33:46 +0100
+Message-ID: <1343316846-25860-4-git-send-email-stefano.stabellini@eu.citrix.com>
+X-Mailer: git-send-email 1.7.9.5
+In-Reply-To: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
+References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
+MIME-Version: 1.0
+Cc: xen-devel@lists.xensource.com, linaro-dev@lists.linaro.org,
+       Ian.Campbell@citrix.com, arnd@arndb.de, konrad.wilk@oracle.com,
+       catalin.marinas@arm.com,
+       Stefano Stabellini <stefano.stabellini@eu.citrix.com>,
+       tim@xen.org, linux-arm-kernel@lists.infradead.org
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: [Xen-devel] [PATCH 04/24] xen/arm: sync_bitops
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+sync_bitops functions are equivalent to the SMP implementation of the
+original functions, independently from CONFIG_SMP being defined.
+
+Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+---
+ arch/arm/include/asm/sync_bitops.h |   17 +++++++++++++++++
+ 1 files changed, 17 insertions(+), 0 deletions(-)
+ create mode 100644 arch/arm/include/asm/sync_bitops.h
+
+diff --git a/arch/arm/include/asm/sync_bitops.h b/arch/arm/include/asm/sync_bitops.h
+new file mode 100644
+index 0000000..d975092903
+--- /dev/null
++++ b/arch/arm/include/asm/sync_bitops.h
+@@ -0,0 +1,17 @@
++#ifndef __ASM_SYNC_BITOPS_H__
++#define __ASM_SYNC_BITOPS_H__
++
++#include <asm/bitops.h>
++#include <asm/system.h>
++
++#define sync_set_bit(nr, p)           _set_bit(nr, p)
++#define sync_clear_bit(nr, p)         _clear_bit(nr, p)
++#define sync_change_bit(nr, p)                _change_bit(nr, p)
++#define sync_test_and_set_bit(nr, p)  _test_and_set_bit(nr, p)
++#define sync_test_and_clear_bit(nr, p)        _test_and_clear_bit(nr, p)
++#define sync_test_and_change_bit(nr, p)       _test_and_change_bit(nr, p)
++#define sync_test_bit(nr, addr)               test_bit(nr, addr)
++#define sync_cmpxchg                  cmpxchg
++
++
++#endif
+-- 
+1.7.2.5
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1343316846-25860-5-git-send-email-stefano.stabellini@eu.citrix.com> b/config/examples/test/corpus/<1343316846-25860-5-git-send-email-stefano.stabellini@eu.citrix.com>
new file mode 100644 (file)
index 0000000..50da20a
--- /dev/null
@@ -0,0 +1,165 @@
+From xen-devel-bounces@lists.xen.org Thu Jul 26 16:38:59 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 26 Jul 2012 16:38:59 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SuQ9N-0001Ul-BH
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 26 Jul 2012 16:38:58 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SuQ5b-0004as-J2; Thu, 26 Jul 2012 15:34:59 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1SuQ5Z-0004Zf-UI
+       for xen-devel@lists.xensource.com; Thu, 26 Jul 2012 15:34:58 +0000
+Received: from [85.158.143.35:10779] by server-2.bemta-4.messagelabs.com id
+       49/CE-17938-1A361105; Thu, 26 Jul 2012 15:34:57 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-16.tower-21.messagelabs.com!1343316894!14686643!1
+X-Originating-IP: [66.165.176.89]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNTk5NzY=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.2; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 19040 invoked from network); 26 Jul 2012 15:34:55 -0000
+Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
+       by server-16.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
+       26 Jul 2012 15:34:55 -0000
+X-IronPort-AV: E=Sophos;i="4.77,659,1336363200"; d="scan'208";a="32688372"
+Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
+       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       26 Jul 2012 11:34:50 -0400
+Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
+       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
+       Thu, 26 Jul 2012 11:34:50 -0400
+Received: from kaball.uk.xensource.com ([10.80.2.59])  by
+       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
+       <stefano.stabellini@eu.citrix.com>)     id 1SuQ5M-0006qa-PY;
+       Thu, 26 Jul 2012 16:34:44 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+To: <linux-kernel@vger.kernel.org>
+Date: Thu, 26 Jul 2012 16:33:47 +0100
+Message-ID: <1343316846-25860-5-git-send-email-stefano.stabellini@eu.citrix.com>
+X-Mailer: git-send-email 1.7.9.5
+In-Reply-To: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
+References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
+MIME-Version: 1.0
+Cc: xen-devel@lists.xensource.com, linaro-dev@lists.linaro.org,
+       Ian.Campbell@citrix.com, arnd@arndb.de, konrad.wilk@oracle.com,
+       catalin.marinas@arm.com,
+       Stefano Stabellini <stefano.stabellini@eu.citrix.com>,
+       tim@xen.org, linux-arm-kernel@lists.infradead.org
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
+Subject: [Xen-devel] [PATCH 05/24] xen/arm: empty implementation of
+       grant_table arch specific functions
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+---
+ arch/arm/xen/Makefile      |    2 +-
+ arch/arm/xen/grant-table.c |   53 ++++++++++++++++++++++++++++++++++++++++++++
+ 2 files changed, 54 insertions(+), 1 deletions(-)
+ create mode 100644 arch/arm/xen/grant-table.c
+
+diff --git a/arch/arm/xen/Makefile b/arch/arm/xen/Makefile
+index b9d6acc..4384103 100644
+--- a/arch/arm/xen/Makefile
++++ b/arch/arm/xen/Makefile
+@@ -1 +1 @@
+-obj-y         := enlighten.o hypercall.o
++obj-y         := enlighten.o hypercall.o grant-table.o
+diff --git a/arch/arm/xen/grant-table.c b/arch/arm/xen/grant-table.c
+new file mode 100644
+index 0000000..0a4ee80
+--- /dev/null
++++ b/arch/arm/xen/grant-table.c
+@@ -0,0 +1,53 @@
++/******************************************************************************
++ * grant_table.c
++ * ARM specific part
++ *
++ * Granting foreign access to our memory reservation.
++ *
++ * This program is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU General Public License version 2
++ * as published by the Free Software Foundation; or, when distributed
++ * separately from the Linux kernel or incorporated into other
++ * software packages, subject to the following license:
++ *
++ * Permission is hereby granted, free of charge, to any person obtaining a copy
++ * of this source file (the "Software"), to deal in the Software without
++ * restriction, including without limitation the rights to use, copy, modify,
++ * merge, publish, distribute, sublicense, and/or sell copies of the Software,
++ * and to permit persons to whom the Software is furnished to do so, subject to
++ * the following conditions:
++ *
++ * The above copyright notice and this permission notice shall be included in
++ * all copies or substantial portions of the Software.
++ *
++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
++ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
++ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
++ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
++ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
++ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
++ * IN THE SOFTWARE.
++ */
++
++#include <xen/interface/xen.h>
++#include <xen/page.h>
++#include <xen/grant_table.h>
++
++int arch_gnttab_map_shared(unsigned long *frames, unsigned long nr_gframes,
++                         unsigned long max_nr_gframes,
++                         void **__shared)
++{
++      return -1;
++}
++
++void arch_gnttab_unmap(void *shared, unsigned long nr_gframes)
++{
++      return;
++}
++
++int arch_gnttab_map_status(uint64_t *frames, unsigned long nr_gframes,
++                         unsigned long max_nr_gframes,
++                         grant_status_t **__shared)
++{
++      return -1;
++}
+-- 
+1.7.2.5
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1343316846-25860-6-git-send-email-stefano.stabellini@eu.citrix.com> b/config/examples/test/corpus/<1343316846-25860-6-git-send-email-stefano.stabellini@eu.citrix.com>
new file mode 100644 (file)
index 0000000..3cc0ab4
--- /dev/null
@@ -0,0 +1,171 @@
+From xen-devel-bounces@lists.xen.org Thu Jul 26 16:40:16 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 26 Jul 2012 16:40:16 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SuQAc-0001WF-Lo
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 26 Jul 2012 16:40:16 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SuQ5c-0004bP-4i; Thu, 26 Jul 2012 15:35:00 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1SuQ5a-0004Zf-FT
+       for xen-devel@lists.xensource.com; Thu, 26 Jul 2012 15:34:58 +0000
+Received: from [85.158.143.35:9653] by server-2.bemta-4.messagelabs.com id
+       59/CE-17938-1A361105; Thu, 26 Jul 2012 15:34:57 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-16.tower-21.messagelabs.com!1343316894!14686643!2
+X-Originating-IP: [66.165.176.89]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNTk5NzY=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.2; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 19101 invoked from network); 26 Jul 2012 15:34:56 -0000
+Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
+       by server-16.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
+       26 Jul 2012 15:34:56 -0000
+X-IronPort-AV: E=Sophos;i="4.77,659,1336363200"; d="scan'208";a="32688376"
+Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
+       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       26 Jul 2012 11:34:55 -0400
+Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
+       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
+       Thu, 26 Jul 2012 11:34:55 -0400
+Received: from kaball.uk.xensource.com ([10.80.2.59])  by
+       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
+       <stefano.stabellini@eu.citrix.com>)     id 1SuQ5M-0006qa-RT;
+       Thu, 26 Jul 2012 16:34:44 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+To: <linux-kernel@vger.kernel.org>
+Date: Thu, 26 Jul 2012 16:33:48 +0100
+Message-ID: <1343316846-25860-6-git-send-email-stefano.stabellini@eu.citrix.com>
+X-Mailer: git-send-email 1.7.9.5
+In-Reply-To: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
+References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
+MIME-Version: 1.0
+Cc: xen-devel@lists.xensource.com, linaro-dev@lists.linaro.org,
+       Ian.Campbell@citrix.com, arnd@arndb.de, konrad.wilk@oracle.com,
+       catalin.marinas@arm.com,
+       Stefano Stabellini <stefano.stabellini@eu.citrix.com>,
+       tim@xen.org, linux-arm-kernel@lists.infradead.org
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
+Subject: [Xen-devel] [PATCH 06/24] xen: missing includes
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+---
+ drivers/tty/hvc/hvc_xen.c                  |    2 ++
+ drivers/xen/grant-table.c                  |    1 +
+ drivers/xen/xenbus/xenbus_probe_frontend.c |    1 +
+ include/xen/interface/xen.h                |    3 +++
+ include/xen/privcmd.h                      |    1 +
+ 5 files changed, 8 insertions(+), 0 deletions(-)
+
+diff --git a/drivers/tty/hvc/hvc_xen.c b/drivers/tty/hvc/hvc_xen.c
+index 944eaeb..dc07f56 100644
+--- a/drivers/tty/hvc/hvc_xen.c
++++ b/drivers/tty/hvc/hvc_xen.c
+@@ -21,6 +21,7 @@
+ #include <linux/console.h>
+ #include <linux/delay.h>
+ #include <linux/err.h>
++#include <linux/irq.h>
+ #include <linux/init.h>
+ #include <linux/types.h>
+ #include <linux/list.h>
+@@ -35,6 +36,7 @@
+ #include <xen/page.h>
+ #include <xen/events.h>
+ #include <xen/interface/io/console.h>
++#include <xen/interface/sched.h>
+ #include <xen/hvc-console.h>
+ #include <xen/xenbus.h>
+diff --git a/drivers/xen/grant-table.c b/drivers/xen/grant-table.c
+index 0bfc1ef..1d0d95e 100644
+--- a/drivers/xen/grant-table.c
++++ b/drivers/xen/grant-table.c
+@@ -47,6 +47,7 @@
+ #include <xen/interface/memory.h>
+ #include <xen/hvc-console.h>
+ #include <asm/xen/hypercall.h>
++#include <asm/xen/interface.h>
+ #include <asm/pgtable.h>
+ #include <asm/sync_bitops.h>
+diff --git a/drivers/xen/xenbus/xenbus_probe_frontend.c b/drivers/xen/xenbus/xenbus_probe_frontend.c
+index a31b54d..3159a37 100644
+--- a/drivers/xen/xenbus/xenbus_probe_frontend.c
++++ b/drivers/xen/xenbus/xenbus_probe_frontend.c
+@@ -21,6 +21,7 @@
+ #include <xen/xenbus.h>
+ #include <xen/events.h>
+ #include <xen/page.h>
++#include <xen/xen.h>
+ #include <xen/platform_pci.h>
+diff --git a/include/xen/interface/xen.h b/include/xen/interface/xen.h
+index a890804..4f29f33 100644
+--- a/include/xen/interface/xen.h
++++ b/include/xen/interface/xen.h
+@@ -10,7 +10,10 @@
+ #define __XEN_PUBLIC_XEN_H__
+ #include <asm/xen/interface.h>
++#include <linux/types.h>
++#ifdef CONFIG_X86
+ #include <asm/pvclock-abi.h>
++#endif
+ /*
+  * XEN "SYSTEM CALLS" (a.k.a. HYPERCALLS).
+diff --git a/include/xen/privcmd.h b/include/xen/privcmd.h
+index 17857fb..4d58881 100644
+--- a/include/xen/privcmd.h
++++ b/include/xen/privcmd.h
+@@ -35,6 +35,7 @@
+ #include <linux/types.h>
+ #include <linux/compiler.h>
++#include <xen/interface/xen.h>
+ typedef unsigned long xen_pfn_t;
+-- 
+1.7.2.5
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1343316846-25860-7-git-send-email-stefano.stabellini@eu.citrix.com> b/config/examples/test/corpus/<1343316846-25860-7-git-send-email-stefano.stabellini@eu.citrix.com>
new file mode 100644 (file)
index 0000000..1cd91d5
--- /dev/null
@@ -0,0 +1,174 @@
+From xen-devel-bounces@lists.xen.org Thu Jul 26 16:38:36 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 26 Jul 2012 16:38:36 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SuQ90-0001Tb-Ld
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 26 Jul 2012 16:38:36 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SuQ5d-0004cR-L6; Thu, 26 Jul 2012 15:35:01 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1SuQ5b-0004Yo-LC
+       for xen-devel@lists.xensource.com; Thu, 26 Jul 2012 15:34:59 +0000
+Received: from [85.158.143.35:10897] by server-1.bemta-4.messagelabs.com id
+       F7/E7-24392-3A361105; Thu, 26 Jul 2012 15:34:59 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-3.tower-21.messagelabs.com!1343316891!14677221!5
+X-Originating-IP: [66.165.176.89]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNTk5NzY=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.2; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 14515 invoked from network); 26 Jul 2012 15:34:56 -0000
+Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
+       by server-3.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
+       26 Jul 2012 15:34:56 -0000
+X-IronPort-AV: E=Sophos;i="4.77,659,1336363200"; d="scan'208";a="32688377"
+Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
+       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       26 Jul 2012 11:34:55 -0400
+Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
+       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
+       Thu, 26 Jul 2012 11:34:55 -0400
+Received: from kaball.uk.xensource.com ([10.80.2.59])  by
+       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
+       <stefano.stabellini@eu.citrix.com>)     id 1SuQ5M-0006qa-TM;
+       Thu, 26 Jul 2012 16:34:44 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+To: <linux-kernel@vger.kernel.org>
+Date: Thu, 26 Jul 2012 16:33:49 +0100
+Message-ID: <1343316846-25860-7-git-send-email-stefano.stabellini@eu.citrix.com>
+X-Mailer: git-send-email 1.7.9.5
+In-Reply-To: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
+References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
+MIME-Version: 1.0
+Cc: xen-devel@lists.xensource.com, linaro-dev@lists.linaro.org,
+       Ian.Campbell@citrix.com, arnd@arndb.de, konrad.wilk@oracle.com,
+       catalin.marinas@arm.com,
+       Stefano Stabellini <stefano.stabellini@eu.citrix.com>,
+       tim@xen.org, linux-arm-kernel@lists.infradead.org
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
+Subject: [Xen-devel] [PATCH 07/24] xen/arm: Xen detection and shared_info
+       page mapping
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+Check for a "/xen" node in the device tree, if it is present set
+xen_domain_type to XEN_HVM_DOMAIN and continue initialization.
+
+Map the real shared info page using XENMEM_add_to_physmap with
+XENMAPSPACE_shared_info.
+
+Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+---
+ arch/arm/xen/enlighten.c |   56 ++++++++++++++++++++++++++++++++++++++++++++++
+ 1 files changed, 56 insertions(+), 0 deletions(-)
+
+diff --git a/arch/arm/xen/enlighten.c b/arch/arm/xen/enlighten.c
+index d27c2a6..8c923af 100644
+--- a/arch/arm/xen/enlighten.c
++++ b/arch/arm/xen/enlighten.c
+@@ -5,6 +5,9 @@
+ #include <asm/xen/hypervisor.h>
+ #include <asm/xen/hypercall.h>
+ #include <linux/module.h>
++#include <linux/of.h>
++#include <linux/of_irq.h>
++#include <linux/of_address.h>
+ struct start_info _xen_start_info;
+ struct start_info *xen_start_info = &_xen_start_info;
+@@ -33,3 +36,56 @@ int xen_remap_domain_mfn_range(struct vm_area_struct *vma,
+       return -ENOSYS;
+ }
+ EXPORT_SYMBOL_GPL(xen_remap_domain_mfn_range);
++
++/*
++ * == Xen Device Tree format ==
++ * - /xen node;
++ * - compatible "arm,xen";
++ * - one interrupt for Xen event notifications;
++ * - one memory region to map the grant_table.
++ */
++static int __init xen_guest_init(void)
++{
++      int cpu;
++      struct xen_add_to_physmap xatp;
++      static struct shared_info *shared_info_page = 0;
++      struct device_node *node;
++
++      node = of_find_compatible_node(NULL, NULL, "arm,xen");
++      if (!node) {
++              pr_info("No Xen support\n");
++              return 0;
++      }
++      xen_domain_type = XEN_HVM_DOMAIN;
++
++      if (!shared_info_page)
++              shared_info_page = (struct shared_info *)
++                      get_zeroed_page(GFP_KERNEL);
++      if (!shared_info_page) {
++              pr_err("not enough memory");
++              return -ENOMEM;
++      }
++      xatp.domid = DOMID_SELF;
++      xatp.idx = 0;
++      xatp.space = XENMAPSPACE_shared_info;
++      xatp.gpfn = __pa(shared_info_page) >> PAGE_SHIFT;
++      if (HYPERVISOR_memory_op(XENMEM_add_to_physmap, &xatp))
++              BUG();
++
++      HYPERVISOR_shared_info = (struct shared_info *)shared_info_page;
++
++      /* xen_vcpu is a pointer to the vcpu_info struct in the shared_info
++       * page, we use it in the event channel upcall and in some pvclock
++       * related functions. We don't need the vcpu_info placement
++       * optimizations because we don't use any pv_mmu or pv_irq op on
++       * HVM.
++       * When xen_hvm_init_shared_info is run at boot time only vcpu 0 is
++       * online but xen_hvm_init_shared_info is run at resume time too and
++       * in that case multiple vcpus might be online. */
++      for_each_online_cpu(cpu) {
++              per_cpu(xen_vcpu, cpu) =
++                      &HYPERVISOR_shared_info->vcpu_info[cpu];
++      }
++      return 0;
++}
++core_initcall(xen_guest_init);
+-- 
+1.7.2.5
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1343316846-25860-8-git-send-email-stefano.stabellini@eu.citrix.com> b/config/examples/test/corpus/<1343316846-25860-8-git-send-email-stefano.stabellini@eu.citrix.com>
new file mode 100644 (file)
index 0000000..b13d26b
--- /dev/null
@@ -0,0 +1,285 @@
+From xen-devel-bounces@lists.xen.org Thu Jul 26 16:38:40 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 26 Jul 2012 16:38:40 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SuQ95-0001Tv-54
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 26 Jul 2012 16:38:40 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SuQ5h-0004gj-5q; Thu, 26 Jul 2012 15:35:05 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1SuQ5e-0004cz-3T
+       for xen-devel@lists.xensource.com; Thu, 26 Jul 2012 15:35:02 +0000
+Received: from [85.158.139.83:17969] by server-6.bemta-5.messagelabs.com id
+       C0/88-11348-5A361105; Thu, 26 Jul 2012 15:35:01 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-8.tower-182.messagelabs.com!1343316896!17525940!3
+X-Originating-IP: [66.165.176.63]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyNjczNDY=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.2; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 26717 invoked from network); 26 Jul 2012 15:35:00 -0000
+Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
+       by server-8.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
+       26 Jul 2012 15:35:00 -0000
+X-IronPort-AV: E=Sophos;i="4.77,659,1336363200"; d="scan'208";a="203308475"
+Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
+       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       26 Jul 2012 11:34:55 -0400
+Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
+       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
+       Thu, 26 Jul 2012 11:34:55 -0400
+Received: from kaball.uk.xensource.com ([10.80.2.59])  by
+       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
+       <stefano.stabellini@eu.citrix.com>)     id 1SuQ5M-0006qa-VI;
+       Thu, 26 Jul 2012 16:34:44 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+To: <linux-kernel@vger.kernel.org>
+Date: Thu, 26 Jul 2012 16:33:50 +0100
+Message-ID: <1343316846-25860-8-git-send-email-stefano.stabellini@eu.citrix.com>
+X-Mailer: git-send-email 1.7.9.5
+In-Reply-To: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
+References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
+MIME-Version: 1.0
+Cc: xen-devel@lists.xensource.com, linaro-dev@lists.linaro.org,
+       Ian.Campbell@citrix.com, arnd@arndb.de, konrad.wilk@oracle.com,
+       catalin.marinas@arm.com,
+       Stefano Stabellini <stefano.stabellini@eu.citrix.com>,
+       tim@xen.org, linux-arm-kernel@lists.infradead.org
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
+Subject: [Xen-devel] [PATCH 08/24] xen/arm: Introduce xen_pfn_t for pfn and
+       mfn types
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+All the original Xen headers have xen_pfn_t as mfn and pfn type, however
+when they have been imported in Linux, xen_pfn_t has been replaced with
+unsigned long. That might work for x86 and ia64 but it does not for arm.
+Bring back xen_pfn_t and let each architecture define xen_pfn_t as they
+see fit.
+
+Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+---
+ arch/arm/include/asm/xen/interface.h  |    2 ++
+ arch/ia64/include/asm/xen/interface.h |    2 +-
+ arch/x86/include/asm/xen/interface.h  |    2 ++
+ include/xen/interface/grant_table.h   |    4 ++--
+ include/xen/interface/memory.h        |    6 +++---
+ include/xen/interface/platform.h      |    4 ++--
+ include/xen/interface/xen.h           |    6 +++---
+ include/xen/privcmd.h                 |    2 --
+ 8 files changed, 15 insertions(+), 13 deletions(-)
+
+diff --git a/arch/arm/include/asm/xen/interface.h b/arch/arm/include/asm/xen/interface.h
+index 6c3ab59..76b1ebe 100644
+--- a/arch/arm/include/asm/xen/interface.h
++++ b/arch/arm/include/asm/xen/interface.h
+@@ -25,6 +25,7 @@
+       } while (0)
+ #ifndef __ASSEMBLY__
++typedef uint64_t xen_pfn_t;
+ /* Guest handles for primitive C types. */
+ __DEFINE_GUEST_HANDLE(uchar, unsigned char);
+ __DEFINE_GUEST_HANDLE(uint,  unsigned int);
+@@ -35,6 +36,7 @@ DEFINE_GUEST_HANDLE(long);
+ DEFINE_GUEST_HANDLE(void);
+ DEFINE_GUEST_HANDLE(uint64_t);
+ DEFINE_GUEST_HANDLE(uint32_t);
++DEFINE_GUEST_HANDLE(xen_pfn_t);
+ /* Maximum number of virtual CPUs in multi-processor guests. */
+ #define MAX_VIRT_CPUS 1
+diff --git a/arch/ia64/include/asm/xen/interface.h b/arch/ia64/include/asm/xen/interface.h
+index 09d5f7f..9efa068 100644
+--- a/arch/ia64/include/asm/xen/interface.h
++++ b/arch/ia64/include/asm/xen/interface.h
+@@ -67,6 +67,7 @@
+ #define set_xen_guest_handle(hnd, val)        do { (hnd).p = val; } while (0)
+ #ifndef __ASSEMBLY__
++typedef unsigned long xen_pfn_t;
+ /* Guest handles for primitive C types. */
+ __DEFINE_GUEST_HANDLE(uchar, unsigned char);
+ __DEFINE_GUEST_HANDLE(uint, unsigned int);
+@@ -79,7 +80,6 @@ DEFINE_GUEST_HANDLE(void);
+ DEFINE_GUEST_HANDLE(uint64_t);
+ DEFINE_GUEST_HANDLE(uint32_t);
+-typedef unsigned long xen_pfn_t;
+ DEFINE_GUEST_HANDLE(xen_pfn_t);
+ #define PRI_xen_pfn   "lx"
+ #endif
+diff --git a/arch/x86/include/asm/xen/interface.h b/arch/x86/include/asm/xen/interface.h
+index cbf0c9d..24c1b07 100644
+--- a/arch/x86/include/asm/xen/interface.h
++++ b/arch/x86/include/asm/xen/interface.h
+@@ -47,6 +47,7 @@
+ #endif
+ #ifndef __ASSEMBLY__
++typedef unsigned long xen_pfn_t;
+ /* Guest handles for primitive C types. */
+ __DEFINE_GUEST_HANDLE(uchar, unsigned char);
+ __DEFINE_GUEST_HANDLE(uint,  unsigned int);
+@@ -57,6 +58,7 @@ DEFINE_GUEST_HANDLE(long);
+ DEFINE_GUEST_HANDLE(void);
+ DEFINE_GUEST_HANDLE(uint64_t);
+ DEFINE_GUEST_HANDLE(uint32_t);
++DEFINE_GUEST_HANDLE(xen_pfn_t);
+ #endif
+ #ifndef HYPERVISOR_VIRT_START
+diff --git a/include/xen/interface/grant_table.h b/include/xen/interface/grant_table.h
+index a17d844..7da811b 100644
+--- a/include/xen/interface/grant_table.h
++++ b/include/xen/interface/grant_table.h
+@@ -338,7 +338,7 @@ DEFINE_GUEST_HANDLE_STRUCT(gnttab_dump_table);
+ #define GNTTABOP_transfer                4
+ struct gnttab_transfer {
+     /* IN parameters. */
+-    unsigned long mfn;
++    xen_pfn_t mfn;
+     domid_t       domid;
+     grant_ref_t   ref;
+     /* OUT parameters. */
+@@ -375,7 +375,7 @@ struct gnttab_copy {
+       struct {
+               union {
+                       grant_ref_t ref;
+-                      unsigned long   gmfn;
++                      xen_pfn_t   gmfn;
+               } u;
+               domid_t  domid;
+               uint16_t offset;
+diff --git a/include/xen/interface/memory.h b/include/xen/interface/memory.h
+index eac3ce1..abbbff0 100644
+--- a/include/xen/interface/memory.h
++++ b/include/xen/interface/memory.h
+@@ -31,7 +31,7 @@ struct xen_memory_reservation {
+      *   OUT: GMFN bases of extents that were allocated
+      *   (NB. This command also updates the mach_to_phys translation table)
+      */
+-    GUEST_HANDLE(ulong) extent_start;
++    GUEST_HANDLE(xen_pfn_t) extent_start;
+     /* Number of extents, and size/alignment of each (2^extent_order pages). */
+     unsigned long  nr_extents;
+@@ -130,7 +130,7 @@ struct xen_machphys_mfn_list {
+      * any large discontiguities in the machine address space, 2MB gaps in
+      * the machphys table will be represented by an MFN base of zero.
+      */
+-    GUEST_HANDLE(ulong) extent_start;
++    GUEST_HANDLE(xen_pfn_t) extent_start;
+     /*
+      * Number of extents written to the above array. This will be smaller
+@@ -172,7 +172,7 @@ struct xen_add_to_physmap {
+     unsigned long idx;
+     /* GPFN where the source mapping page should appear. */
+-    unsigned long gpfn;
++    xen_pfn_t gpfn;
+ };
+ DEFINE_GUEST_HANDLE_STRUCT(xen_add_to_physmap);
+diff --git a/include/xen/interface/platform.h b/include/xen/interface/platform.h
+index 486653f..0bea470 100644
+--- a/include/xen/interface/platform.h
++++ b/include/xen/interface/platform.h
+@@ -54,7 +54,7 @@ DEFINE_GUEST_HANDLE_STRUCT(xenpf_settime_t);
+ #define XENPF_add_memtype         31
+ struct xenpf_add_memtype {
+       /* IN variables. */
+-      unsigned long mfn;
++      xen_pfn_t mfn;
+       uint64_t nr_mfns;
+       uint32_t type;
+       /* OUT variables. */
+@@ -84,7 +84,7 @@ struct xenpf_read_memtype {
+       /* IN variables. */
+       uint32_t reg;
+       /* OUT variables. */
+-      unsigned long mfn;
++      xen_pfn_t mfn;
+       uint64_t nr_mfns;
+       uint32_t type;
+ };
+diff --git a/include/xen/interface/xen.h b/include/xen/interface/xen.h
+index 4f29f33..d59a991 100644
+--- a/include/xen/interface/xen.h
++++ b/include/xen/interface/xen.h
+@@ -192,7 +192,7 @@ struct mmuext_op {
+       unsigned int cmd;
+       union {
+               /* [UN]PIN_TABLE, NEW_BASEPTR, NEW_USER_BASEPTR */
+-              unsigned long mfn;
++              xen_pfn_t mfn;
+               /* INVLPG_LOCAL, INVLPG_ALL, SET_LDT */
+               unsigned long linear_addr;
+       } arg1;
+@@ -432,11 +432,11 @@ struct start_info {
+       unsigned long nr_pages;     /* Total pages allocated to this domain.  */
+       unsigned long shared_info;  /* MACHINE address of shared info struct. */
+       uint32_t flags;             /* SIF_xxx flags.                         */
+-      unsigned long store_mfn;    /* MACHINE page number of shared page.    */
++      xen_pfn_t store_mfn;        /* MACHINE page number of shared page.    */
+       uint32_t store_evtchn;      /* Event channel for store communication. */
+       union {
+               struct {
+-                      unsigned long mfn;  /* MACHINE page number of console page.   */
++                      xen_pfn_t mfn;      /* MACHINE page number of console page.   */
+                       uint32_t  evtchn;   /* Event channel for console page.        */
+               } domU;
+               struct {
+diff --git a/include/xen/privcmd.h b/include/xen/privcmd.h
+index 4d58881..45c1aa1 100644
+--- a/include/xen/privcmd.h
++++ b/include/xen/privcmd.h
+@@ -37,8 +37,6 @@
+ #include <linux/compiler.h>
+ #include <xen/interface/xen.h>
+-typedef unsigned long xen_pfn_t;
+-
+ struct privcmd_hypercall {
+       __u64 op;
+       __u64 arg[5];
+-- 
+1.7.2.5
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1343316846-25860-9-git-send-email-stefano.stabellini@eu.citrix.com> b/config/examples/test/corpus/<1343316846-25860-9-git-send-email-stefano.stabellini@eu.citrix.com>
new file mode 100644 (file)
index 0000000..0d7966d
--- /dev/null
@@ -0,0 +1,167 @@
+From xen-devel-bounces@lists.xen.org Thu Jul 26 16:38:33 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 26 Jul 2012 16:38:33 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SuQ90-0001Tc-Nd
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 26 Jul 2012 16:38:33 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SuQ5f-0004eX-5t; Thu, 26 Jul 2012 15:35:03 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1SuQ5c-0004bM-FB
+       for xen-devel@lists.xensource.com; Thu, 26 Jul 2012 15:35:00 +0000
+Received: from [85.158.139.83:17842] by server-1.bemta-5.messagelabs.com id
+       AD/2F-29759-3A361105; Thu, 26 Jul 2012 15:34:59 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-8.tower-182.messagelabs.com!1343316896!17525940!1
+X-Originating-IP: [66.165.176.63]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyNjczNDY=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.2; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 26624 invoked from network); 26 Jul 2012 15:34:58 -0000
+Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
+       by server-8.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
+       26 Jul 2012 15:34:58 -0000
+X-IronPort-AV: E=Sophos;i="4.77,659,1336363200"; d="scan'208";a="203308473"
+Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
+       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       26 Jul 2012 11:34:55 -0400
+Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
+       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
+       Thu, 26 Jul 2012 11:34:56 -0400
+Received: from kaball.uk.xensource.com ([10.80.2.59])  by
+       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
+       <stefano.stabellini@eu.citrix.com>)     id 1SuQ5M-0006qa-W0;
+       Thu, 26 Jul 2012 16:34:45 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+To: <linux-kernel@vger.kernel.org>
+Date: Thu, 26 Jul 2012 16:33:51 +0100
+Message-ID: <1343316846-25860-9-git-send-email-stefano.stabellini@eu.citrix.com>
+X-Mailer: git-send-email 1.7.9.5
+In-Reply-To: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
+References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
+MIME-Version: 1.0
+Cc: xen-devel@lists.xensource.com, linaro-dev@lists.linaro.org,
+       Ian.Campbell@citrix.com, arnd@arndb.de, konrad.wilk@oracle.com,
+       catalin.marinas@arm.com,
+       Stefano Stabellini <stefano.stabellini@eu.citrix.com>,
+       tim@xen.org, linux-arm-kernel@lists.infradead.org
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
+Subject: [Xen-devel] [PATCH 09/24] xen/arm: compile and run xenbus
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+bind_evtchn_to_irqhandler can legitimately return 0 (irq 0): it is not
+an error.
+
+If Linux is running as an HVM domain and is running as Dom0, use
+xenstored_local_init to initialize the xenstore page and event channel.
+
+Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+---
+ drivers/xen/xenbus/xenbus_comms.c |    2 +-
+ drivers/xen/xenbus/xenbus_probe.c |   27 +++++++++++++++++----------
+ drivers/xen/xenbus/xenbus_xs.c    |    1 +
+ 3 files changed, 19 insertions(+), 11 deletions(-)
+
+diff --git a/drivers/xen/xenbus/xenbus_comms.c b/drivers/xen/xenbus/xenbus_comms.c
+index 52fe7ad..c5aa55c 100644
+--- a/drivers/xen/xenbus/xenbus_comms.c
++++ b/drivers/xen/xenbus/xenbus_comms.c
+@@ -224,7 +224,7 @@ int xb_init_comms(void)
+               int err;
+               err = bind_evtchn_to_irqhandler(xen_store_evtchn, wake_waiting,
+                                               0, "xenbus", &xb_waitq);
+-              if (err <= 0) {
++              if (err < 0) {
+                       printk(KERN_ERR "XENBUS request irq failed %i\n", err);
+                       return err;
+               }
+diff --git a/drivers/xen/xenbus/xenbus_probe.c b/drivers/xen/xenbus/xenbus_probe.c
+index b793723..3ae47c2 100644
+--- a/drivers/xen/xenbus/xenbus_probe.c
++++ b/drivers/xen/xenbus/xenbus_probe.c
+@@ -729,16 +729,23 @@ static int __init xenbus_init(void)
+       xenbus_ring_ops_init();
+       if (xen_hvm_domain()) {
+-              uint64_t v = 0;
+-              err = hvm_get_parameter(HVM_PARAM_STORE_EVTCHN, &v);
+-              if (err)
+-                      goto out_error;
+-              xen_store_evtchn = (int)v;
+-              err = hvm_get_parameter(HVM_PARAM_STORE_PFN, &v);
+-              if (err)
+-                      goto out_error;
+-              xen_store_mfn = (unsigned long)v;
+-              xen_store_interface = ioremap(xen_store_mfn << PAGE_SHIFT, PAGE_SIZE);
++              if (xen_initial_domain()) {
++                      err = xenstored_local_init();
++                      xen_store_interface =
++                              phys_to_virt(xen_store_mfn << PAGE_SHIFT);
++              } else {
++                      uint64_t v = 0;
++                      err = hvm_get_parameter(HVM_PARAM_STORE_EVTCHN, &v);
++                      if (err)
++                              goto out_error;
++                      xen_store_evtchn = (int)v;
++                      err = hvm_get_parameter(HVM_PARAM_STORE_PFN, &v);
++                      if (err)
++                              goto out_error;
++                      xen_store_mfn = (unsigned long)v;
++                      xen_store_interface =
++                              ioremap(xen_store_mfn << PAGE_SHIFT, PAGE_SIZE);
++              }
+       } else {
+               xen_store_evtchn = xen_start_info->store_evtchn;
+               xen_store_mfn = xen_start_info->store_mfn;
+diff --git a/drivers/xen/xenbus/xenbus_xs.c b/drivers/xen/xenbus/xenbus_xs.c
+index d1c217b..f7feb3d 100644
+--- a/drivers/xen/xenbus/xenbus_xs.c
++++ b/drivers/xen/xenbus/xenbus_xs.c
+@@ -44,6 +44,7 @@
+ #include <linux/rwsem.h>
+ #include <linux/module.h>
+ #include <linux/mutex.h>
++#include <asm/xen/hypervisor.h>
+ #include <xen/xenbus.h>
+ #include <xen/xen.h>
+ #include "xenbus_comms.h"
+-- 
+1.7.2.5
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1343379653.6812.92.camel@zakaz.uk.xensource.com> b/config/examples/test/corpus/<1343379653.6812.92.camel@zakaz.uk.xensource.com>
new file mode 100644 (file)
index 0000000..ca7c2bf
--- /dev/null
@@ -0,0 +1,111 @@
+From xen-devel-bounces@lists.xen.org Fri Jul 27 10:05:15 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 27 Jul 2012 10:05:15 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SugTu-0000es-5P
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 27 Jul 2012 10:05:15 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SugPs-0004ZD-K1; Fri, 27 Jul 2012 09:01:00 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1SugPq-0004Z6-Us
+       for xen-devel@lists.xensource.com; Fri, 27 Jul 2012 09:00:59 +0000
+Received: from [85.158.143.99:51189] by server-3.bemta-4.messagelabs.com id
+       B6/EF-01511-AC852105; Fri, 27 Jul 2012 09:00:58 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-7.tower-216.messagelabs.com!1343379657!25619756!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDcwNjg=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.2; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 16110 invoked from network); 27 Jul 2012 09:00:57 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-7.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
+       27 Jul 2012 09:00:57 -0000
+X-IronPort-AV: E=Sophos;i="4.77,666,1336348800"; d="scan'208";a="13729848"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       27 Jul 2012 09:00:56 +0000
+Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0;
+       Fri, 27 Jul 2012 10:00:56 +0100
+Message-ID: <1343379653.6812.92.camel@zakaz.uk.xensource.com>
+From: Ian Campbell <Ian.Campbell@citrix.com>
+To: David Vrabel <dvrabel@cantab.net>
+Date: Fri, 27 Jul 2012 10:00:53 +0100
+In-Reply-To: <501176AF.3000607@cantab.net>
+References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
+       <1343316846-25860-2-git-send-email-stefano.stabellini@eu.citrix.com>
+       <501176AF.3000607@cantab.net>
+Organization: Citrix Systems, Inc.
+X-Mailer: Evolution 3.4.3-1 
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
+       "linaro-dev@lists.linaro.org" <linaro-dev@lists.linaro.org>,
+       "arnd@arndb.de" <arnd@arndb.de>,
+       "konrad.wilk@oracle.com" <konrad.wilk@oracle.com>,
+       "catalin.marinas@arm.com" <catalin.marinas@arm.com>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>,
+       "Tim \(Xen.org\)" <tim@xen.org>,
+       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
+       "linux-arm-kernel@lists.infradead.org"
+       <linux-arm-kernel@lists.infradead.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 02/24] xen/arm: hypercalls
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Thu, 2012-07-26 at 17:56 +0100, David Vrabel wrote:
+> On 26/07/12 16:33, Stefano Stabellini wrote:
+> > 
+> > + * The hvc ISS is required to be 0xEA1, that is the Xen specific ARM
+> > + * hypercall tag.
+> 
+> Is this number, 0xea1, assigned to Xen by some external body?
+
+The value and semantics of the hvc instructions immediate operand is
+entirely up to the hypervisor authors. We could have chosen 0 or some
+random number, we went for the latter because it increases the chances,
+by some tiny amount, that we won't clash with some other hypervisors ABI
+which makes supporting "foreign" guests that bit easier should it even
+come to it.
+
+IOW it's arbitrary in the same way that a Linux system calls used to use
+int 0x80.
+
+Ian.
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1343380659.6812.106.camel@zakaz.uk.xensource.com> b/config/examples/test/corpus/<1343380659.6812.106.camel@zakaz.uk.xensource.com>
new file mode 100644 (file)
index 0000000..2993633
--- /dev/null
@@ -0,0 +1,306 @@
+From xen-devel-bounces@lists.xen.org Fri Jul 27 10:25:22 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 27 Jul 2012 10:25:22 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SugnM-0000il-G8
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 27 Jul 2012 10:25:22 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SuggI-0005QG-VC; Fri, 27 Jul 2012 09:17:58 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1SuggH-0005QA-VX
+       for xen-devel@lists.xensource.com; Fri, 27 Jul 2012 09:17:58 +0000
+Received: from [85.158.143.35:63312] by server-3.bemta-4.messagelabs.com id
+       57/6E-01511-5CC52105; Fri, 27 Jul 2012 09:17:57 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-3.tower-21.messagelabs.com!1343380675!14818925!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDcxMzQ=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.2; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 21255 invoked from network); 27 Jul 2012 09:17:55 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-3.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
+       27 Jul 2012 09:17:55 -0000
+X-IronPort-AV: E=Sophos;i="4.77,666,1336348800"; d="scan'208";a="13730245"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       27 Jul 2012 09:17:40 +0000
+Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0;
+       Fri, 27 Jul 2012 10:17:40 +0100
+Message-ID: <1343380659.6812.106.camel@zakaz.uk.xensource.com>
+From: Ian Campbell <Ian.Campbell@citrix.com>
+To: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+Date: Fri, 27 Jul 2012 10:17:39 +0100
+In-Reply-To: <20120726163352.GC9222@phenom.dumpdata.com>
+References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
+       <1343316846-25860-2-git-send-email-stefano.stabellini@eu.citrix.com>
+       <20120726163352.GC9222@phenom.dumpdata.com>
+Organization: Citrix Systems, Inc.
+X-Mailer: Evolution 3.4.3-1 
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
+       "linaro-dev@lists.linaro.org" <linaro-dev@lists.linaro.org>,
+       "arnd@arndb.de" <arnd@arndb.de>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>,
+       "catalin.marinas@arm.com" <catalin.marinas@arm.com>, "Tim
+       \(Xen.org\)" <tim@xen.org>,
+       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
+       "linux-arm-kernel@lists.infradead.org"
+       <linux-arm-kernel@lists.infradead.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 02/24] xen/arm: hypercalls
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Thu, 2012-07-26 at 17:33 +0100, Konrad Rzeszutek Wilk wrote:
+> On Thu, Jul 26, 2012 at 04:33:44PM +0100, Stefano Stabellini wrote:
+> > Use r12 to pass the hypercall number to the hypervisor.
+> > 
+> > We need a register to pass the hypercall number because we might not
+> > know it at compile time and HVC only takes an immediate argument.
+> > 
+> > Among the available registers r12 seems to be the best choice because it
+> > is defined as "intra-procedure call scratch register".
+> > 
+> > Use the ISS to pass an hypervisor specific tag.
+> > 
+> > Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+> > ---
+> >  arch/arm/include/asm/xen/hypercall.h |   50 ++++++++++++++++++++++++++
+> >  arch/arm/xen/Makefile                |    2 +-
+> >  arch/arm/xen/hypercall.S             |   65 ++++++++++++++++++++++++++++++++++
+> >  3 files changed, 116 insertions(+), 1 deletions(-)
+> >  create mode 100644 arch/arm/include/asm/xen/hypercall.h
+> >  create mode 100644 arch/arm/xen/hypercall.S
+> > 
+> > diff --git a/arch/arm/include/asm/xen/hypercall.h b/arch/arm/include/asm/xen/hypercall.h
+> > new file mode 100644
+> > index 0000000..4ac0624
+> > --- /dev/null
+> > +++ b/arch/arm/include/asm/xen/hypercall.h
+> > @@ -0,0 +1,50 @@
+> > +/******************************************************************************
+> > + * hypercall.h
+> > + *
+> > + * Linux-specific hypervisor handling.
+> > + *
+> > + * Stefano Stabellini <stefano.stabellini@eu.citrix.com>, Citrix, 2012
+> > + *
+> > + * This program is free software; you can redistribute it and/or
+> > + * modify it under the terms of the GNU General Public License version 2
+> > + * as published by the Free Software Foundation; or, when distributed
+> > + * separately from the Linux kernel or incorporated into other
+> > + * software packages, subject to the following license:
+> > + *
+> > + * Permission is hereby granted, free of charge, to any person obtaining a copy
+> > + * of this source file (the "Software"), to deal in the Software without
+> > + * restriction, including without limitation the rights to use, copy, modify,
+> > + * merge, publish, distribute, sublicense, and/or sell copies of the Software,
+> > + * and to permit persons to whom the Software is furnished to do so, subject to
+> > + * the following conditions:
+> > + *
+> > + * The above copyright notice and this permission notice shall be included in
+> > + * all copies or substantial portions of the Software.
+> > + *
+> > + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+> > + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+> > + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+> > + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+> > + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+> > + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+> > + * IN THE SOFTWARE.
+> > + */
+> > +
+> > +#ifndef _ASM_ARM_XEN_HYPERCALL_H
+> > +#define _ASM_ARM_XEN_HYPERCALL_H
+> > +
+> > +#include <xen/interface/xen.h>
+> > +
+> > +long privcmd_call(unsigned call, unsigned long a1,
+> > +          unsigned long a2, unsigned long a3,
+> > +          unsigned long a4, unsigned long a5);
+> > +int HYPERVISOR_xen_version(int cmd, void *arg);
+> > +int HYPERVISOR_console_io(int cmd, int count, char *str);
+> > +int HYPERVISOR_grant_table_op(unsigned int cmd, void *uop, unsigned int count);
+> > +int HYPERVISOR_sched_op(int cmd, void *arg);
+> > +int HYPERVISOR_event_channel_op(int cmd, void *arg);
+> > +unsigned long HYPERVISOR_hvm_op(int op, void *arg);
+> > +int HYPERVISOR_memory_op(unsigned int cmd, void *arg);
+> > +int HYPERVISOR_physdev_op(int cmd, void *arg);
+> > +
+> > +#endif /* _ASM_ARM_XEN_HYPERCALL_H */
+> > diff --git a/arch/arm/xen/Makefile b/arch/arm/xen/Makefile
+> > index 0bad594..b9d6acc 100644
+> > --- a/arch/arm/xen/Makefile
+> > +++ b/arch/arm/xen/Makefile
+> > @@ -1 +1 @@
+> > -obj-y             := enlighten.o
+> > +obj-y             := enlighten.o hypercall.o
+> > diff --git a/arch/arm/xen/hypercall.S b/arch/arm/xen/hypercall.S
+> > new file mode 100644
+> > index 0000000..038cc5b
+> > --- /dev/null
+> > +++ b/arch/arm/xen/hypercall.S
+> > @@ -0,0 +1,65 @@
+> > +/******************************************************************************
+> > + * hypercall.S
+> > + *
+> > + * Xen hypercall wrappers
+> > + *
+> > + * The Xen hypercall calling convention is very similar to the ARM
+> > + * procedure calling convention: the first paramter is passed in r0, the
+> > + * second in r1, the third in r2 and the third in r3. Considering that
+> 
+> I think you meant 'and the fourth in r3'.
+> 
+> So where does the similarity end?  Just in that we use r12?
+
+The standard ARM function calling convention is arguments 1-4 on r0-r3
+and arguments 5+ on the stack. r12 is a scratch register which can be
+clobbered by the *linker* on subroutine call (r12 is also called "ip"
+the intra-procedure call scratch register).
+
+The hypervisor doesn't want to be accessing hypercall arguments off the
+guest stack, for obvious reasons, so we use r4 for the fifth argument
+(and if we even implemented 6 argument hypercalls we'd use r5, etc).
+There is no equivalent to the hypercall number in the procedure calling
+convention so we picked r12 because it is up and out of the way and is
+otherwise a scratch register. Obviously that you must not make a
+procedure call between setting the hypercall number in r12 and calling
+the hvc instruction.
+
+> 
+> > + * Xen hypercalls have 5 arguments at most, the fifth paramter is passed
+> > + * in r4, differently from the procedure calling convention of using the
+> 
+> > + * stack for that case.
+> > + *
+> > + * The hypercall number is passed in r12.
+> > + *
+> > + * The return value is in r0.
+> > + *
+> > + * The hvc ISS is required to be 0xEA1, that is the Xen specific ARM
+> > + * hypercall tag.
+> > + *
+> > + * Stefano Stabellini <stefano.stabellini@eu.citrix.com>, Citrix, 2012
+> > + */
+> > +
+> > +#include <linux/linkage.h>
+> > +#include <asm/assembler.h>
+> > +#include <xen/interface/xen.h>
+> > +
+> > +
+> > +/* HVC 0xEA1 */
+> > +#ifdef CONFIG_THUMB2_KERNEL
+> > +#define xen_hvc .word 0xf7e08ea1
+> > +#else
+> > +#define xen_hvc .word 0xe140ea71
+> > +#endif
+> > +
+> > +/* We need to save and restore r4, because Xen clobbers it. */
+> 
+> Hmm, the comment says r4, but right below I see r12?
+
+The ARM procedure calling convention allows a subroutine to clobber
+r1..r3 (r0 is the return value) but not r4 which must be preserved. But
+the hypervisor ABI clobbers all argument registers so the caller has to
+specially preserve r4 in this context whenever there is a 5 argument
+hypercall.
+
+I presume that none of the hypercalls defined below have 5 arguments and
+therefore we don't need to preserve r4 except in the generic
+privcmd_call function. 
+
+To be honest I prefer the style which we use on x86 which is to define
+hypercall{0,1,2,3,4,5} macros and to wrap those with the specific names
+using inline functions.
+
+I find the x86 way more self documenting, and being in C prevents errors
+around the number of arguments. It also allows for better in-lining and
+exposes to gcc the actual clobbers, which might allow it to avoid saving
+r4 on the stack at all etc.
+
+> Should this comment be by 'privcmd_call'?
+
+When we add a 5 argument hypercall I suppose we'll see the required
+push/pop of r4 added to this macro too.
+
+> > +#define HYPERCALL(hypercall)                      \
+> > +ENTRY(HYPERVISOR_##hypercall)                     \
+> > +  mov r12, #__HYPERVISOR_##hypercall;     \
+> > +  xen_hvc;                                                        \
+> > +  mov pc, lr;                                                     \
+> > +ENDPROC(HYPERVISOR_##hypercall)
+> > +
+> > +                .text
+> > +
+> > +HYPERCALL(xen_version);
+> > +HYPERCALL(console_io);
+> > +HYPERCALL(grant_table_op);
+> > +HYPERCALL(sched_op);
+> > +HYPERCALL(event_channel_op);
+> > +HYPERCALL(hvm_op);
+> > +HYPERCALL(memory_op);
+> > +HYPERCALL(physdev_op);
+> > +
+> > +ENTRY(privcmd_call)
+> > +  stmdb   sp!, {r4}
+> > +  mov r12, r0
+> > +  mov r0, r1
+> > +  mov r1, r2
+> > +  mov r2, r3
+> > +  ldr r3, [sp, #8]
+> > +  ldr r4, [sp, #4]
+> > +  xen_hvc
+> > +  pop {r4}
+
+Why not ldmdb for symmetry?
+
+> > +  mov pc, lr
+> > +ENDPROC(privcmd_call);
+> > -- 
+> > 1.7.2.5
+> > 
+> > 
+> > _______________________________________________
+> > Xen-devel mailing list
+> > Xen-devel@lists.xen.org
+> > http://lists.xen.org/xen-devel
+
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1343380764.6812.108.camel@zakaz.uk.xensource.com> b/config/examples/test/corpus/<1343380764.6812.108.camel@zakaz.uk.xensource.com>
new file mode 100644 (file)
index 0000000..97e3919
--- /dev/null
@@ -0,0 +1,124 @@
+From xen-devel-bounces@lists.xen.org Fri Jul 27 10:26:02 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 27 Jul 2012 10:26:02 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1Sugo1-0000jG-33
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 27 Jul 2012 10:26:02 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SugiH-0005Wv-FS; Fri, 27 Jul 2012 09:20:01 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1SugiF-0005Wj-Bq
+       for xen-devel@lists.xensource.com; Fri, 27 Jul 2012 09:19:59 +0000
+Received: from [85.158.143.35:7099] by server-2.bemta-4.messagelabs.com id
+       A7/C3-17938-E3D52105; Fri, 27 Jul 2012 09:19:58 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-8.tower-21.messagelabs.com!1343380797!14172214!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDcxMzQ=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.2; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 9343 invoked from network); 27 Jul 2012 09:19:57 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-8.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
+       27 Jul 2012 09:19:57 -0000
+X-IronPort-AV: E=Sophos;i="4.77,666,1336348800"; d="scan'208";a="13730295"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       27 Jul 2012 09:19:25 +0000
+Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0;
+       Fri, 27 Jul 2012 10:19:25 +0100
+Message-ID: <1343380764.6812.108.camel@zakaz.uk.xensource.com>
+From: Ian Campbell <Ian.Campbell@citrix.com>
+To: Christopher Covington <cov@codeaurora.org>
+Date: Fri, 27 Jul 2012 10:19:24 +0100
+In-Reply-To: <50119856.2020206@codeaurora.org>
+References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
+       <1343316846-25860-2-git-send-email-stefano.stabellini@eu.citrix.com>
+       <50119856.2020206@codeaurora.org>
+Organization: Citrix Systems, Inc.
+X-Mailer: Evolution 3.4.3-1 
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
+       "linaro-dev@lists.linaro.org" <linaro-dev@lists.linaro.org>,
+       "arnd@arndb.de" <arnd@arndb.de>,
+       "konrad.wilk@oracle.com" <konrad.wilk@oracle.com>,
+       "catalin.marinas@arm.com" <catalin.marinas@arm.com>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>,
+       "Tim \(Xen.org\)" <tim@xen.org>,
+       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
+       "linux-arm-kernel@lists.infradead.org"
+       <linux-arm-kernel@lists.infradead.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 02/24] xen/arm: hypercalls
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Thu, 2012-07-26 at 20:19 +0100, Christopher Covington wrote:
+> Hi Stefano,
+> 
+> On 07/26/2012 11:33 AM, Stefano Stabellini wrote:
+> > Use r12 to pass the hypercall number to the hypervisor.
+> > 
+> > We need a register to pass the hypercall number because we might not
+> > know it at compile time and HVC only takes an immediate argument.
+> 
+> You're not going to JIT assemble the appropriate HVC instruction? Darn.
+
+;-)
+
+> How many call numbers are there, though? 8?
+
+The maximum currently defined hypercall number is 55, although there are
+some small gaps so there's actually more like 45 in total.
+
+>  It seems like it'd be
+> reasonable to take the approach that seems to be favored for MRC/MCR
+> instructions, using a function containing switch statement that chooses
+> between several inline assembly instructions based off an enum passed to
+> the function. See for example arch_timer_reg_read in
+> arch/arm/kernel/arch_timer.c.
+
+I don't think it is feasible with this number of hypercalls, even
+accepting that in many cases the number will be a constant so gcc can
+likely optimise almost all of it away.
+
+Is there something wrong with the r12 based approach?
+
+Ian.
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1343381305.6812.116.camel@zakaz.uk.xensource.com> b/config/examples/test/corpus/<1343381305.6812.116.camel@zakaz.uk.xensource.com>
new file mode 100644 (file)
index 0000000..3216d96
--- /dev/null
@@ -0,0 +1,149 @@
+From xen-devel-bounces@lists.xen.org Fri Jul 27 10:32:56 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 27 Jul 2012 10:32:56 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1Suguj-0000kg-Ut
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 27 Jul 2012 10:32:56 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SugqU-0005rM-Rn; Fri, 27 Jul 2012 09:28:30 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1SugqT-0005rH-3G
+       for xen-devel@lists.xensource.com; Fri, 27 Jul 2012 09:28:29 +0000
+Received: from [85.158.139.83:46627] by server-1.bemta-5.messagelabs.com id
+       FF/11-29759-C3F52105; Fri, 27 Jul 2012 09:28:28 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-11.tower-182.messagelabs.com!1343381307!21729373!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDcxMzQ=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.2; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 18540 invoked from network); 27 Jul 2012 09:28:27 -0000
+Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-11.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
+       27 Jul 2012 09:28:27 -0000
+X-IronPort-AV: E=Sophos;i="4.77,666,1336348800"; d="scan'208";a="13730505"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       27 Jul 2012 09:28:27 +0000
+Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0;
+       Fri, 27 Jul 2012 10:28:27 +0100
+Message-ID: <1343381305.6812.116.camel@zakaz.uk.xensource.com>
+From: Ian Campbell <Ian.Campbell@citrix.com>
+To: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+Date: Fri, 27 Jul 2012 10:28:25 +0100
+In-Reply-To: <20120726163759.GE9222@phenom.dumpdata.com>
+References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
+       <1343316846-25860-4-git-send-email-stefano.stabellini@eu.citrix.com>
+       <20120726163759.GE9222@phenom.dumpdata.com>
+Organization: Citrix Systems, Inc.
+X-Mailer: Evolution 3.4.3-1 
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
+       "linaro-dev@lists.linaro.org" <linaro-dev@lists.linaro.org>,
+       "arnd@arndb.de" <arnd@arndb.de>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>,
+       "catalin.marinas@arm.com" <catalin.marinas@arm.com>, "Tim
+       \(Xen.org\)" <tim@xen.org>,
+       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
+       "linux-arm-kernel@lists.infradead.org"
+       <linux-arm-kernel@lists.infradead.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 04/24] xen/arm: sync_bitops
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Thu, 2012-07-26 at 17:37 +0100, Konrad Rzeszutek Wilk wrote:
+> On Thu, Jul 26, 2012 at 04:33:46PM +0100, Stefano Stabellini wrote:
+> > sync_bitops functions are equivalent to the SMP implementation of the
+> > original functions, independently from CONFIG_SMP being defined.
+> 
+> So why can't the code be changed to use that? Is it that
+> the _set_bit, _clear_bit, etc are not available with !CONFIG_SMP?
+
+_set_bit etc are not SMP safe if !CONFIG_SMP. But under Xen you might be
+communicating with a completely external entity who might be on another
+CPU (e.g. two uniprocessor guests communicating via event channels and
+grant tables). So we need a variant of the bit ops which are SMP safe
+even on a UP kernel.
+
+The users are common code and the sync_foo vs foo distinction matters on
+some platforms (e.g. x86 where a UP kernel would omit the LOCK prefix
+for the normal ones).
+
+> 
+> > 
+> > Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+> > ---
+> >  arch/arm/include/asm/sync_bitops.h |   17 +++++++++++++++++
+> >  1 files changed, 17 insertions(+), 0 deletions(-)
+> >  create mode 100644 arch/arm/include/asm/sync_bitops.h
+> > 
+> > diff --git a/arch/arm/include/asm/sync_bitops.h b/arch/arm/include/asm/sync_bitops.h
+> > new file mode 100644
+> > index 0000000..d975092903
+> > --- /dev/null
+> > +++ b/arch/arm/include/asm/sync_bitops.h
+> > @@ -0,0 +1,17 @@
+> > +#ifndef __ASM_SYNC_BITOPS_H__
+> > +#define __ASM_SYNC_BITOPS_H__
+> > +
+> > +#include <asm/bitops.h>
+> > +#include <asm/system.h>
+> > +
+> > +#define sync_set_bit(nr, p)               _set_bit(nr, p)
+> > +#define sync_clear_bit(nr, p)             _clear_bit(nr, p)
+> > +#define sync_change_bit(nr, p)            _change_bit(nr, p)
+> > +#define sync_test_and_set_bit(nr, p)      _test_and_set_bit(nr, p)
+> > +#define sync_test_and_clear_bit(nr, p)    _test_and_clear_bit(nr, p)
+> > +#define sync_test_and_change_bit(nr, p)   _test_and_change_bit(nr, p)
+> > +#define sync_test_bit(nr, addr)           test_bit(nr, addr)
+> > +#define sync_cmpxchg                      cmpxchg
+> > +
+> > +
+> > +#endif
+> > -- 
+> > 1.7.2.5
+> > 
+> > 
+> > _______________________________________________
+> > Xen-devel mailing list
+> > Xen-devel@lists.xen.org
+> > http://lists.xen.org/xen-devel
+
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1343381813.6812.120.camel@zakaz.uk.xensource.com> b/config/examples/test/corpus/<1343381813.6812.120.camel@zakaz.uk.xensource.com>
new file mode 100644 (file)
index 0000000..0391b47
--- /dev/null
@@ -0,0 +1,183 @@
+From xen-devel-bounces@lists.xen.org Fri Jul 27 10:41:51 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 27 Jul 2012 10:41:51 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1Suh3K-0000mG-4R
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 27 Jul 2012 10:41:51 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1Sugyt-00067K-V8; Fri, 27 Jul 2012 09:37:11 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1Sugyr-00067F-TV
+       for xen-devel@lists.xensource.com; Fri, 27 Jul 2012 09:37:10 +0000
+Received: from [85.158.139.83:58381] by server-4.bemta-5.messagelabs.com id
+       A8/7D-27831-54162105; Fri, 27 Jul 2012 09:37:09 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-9.tower-182.messagelabs.com!1343381828!28266841!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDcxMzQ=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.2; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 17680 invoked from network); 27 Jul 2012 09:37:08 -0000
+Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-9.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
+       27 Jul 2012 09:37:08 -0000
+X-IronPort-AV: E=Sophos;i="4.77,666,1336348800"; d="scan'208";a="13730707"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       27 Jul 2012 09:36:54 +0000
+Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0;
+       Fri, 27 Jul 2012 10:36:54 +0100
+Message-ID: <1343381813.6812.120.camel@zakaz.uk.xensource.com>
+From: Ian Campbell <Ian.Campbell@citrix.com>
+To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+Date: Fri, 27 Jul 2012 10:36:53 +0100
+In-Reply-To: <1343316846-25860-7-git-send-email-stefano.stabellini@eu.citrix.com>
+References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
+       <1343316846-25860-7-git-send-email-stefano.stabellini@eu.citrix.com>
+Organization: Citrix Systems, Inc.
+X-Mailer: Evolution 3.4.3-1 
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
+       "linaro-dev@lists.linaro.org" <linaro-dev@lists.linaro.org>,
+       "arnd@arndb.de" <arnd@arndb.de>,
+       "konrad.wilk@oracle.com" <konrad.wilk@oracle.com>,
+       "catalin.marinas@arm.com" <catalin.marinas@arm.com>,
+       "Tim \(Xen.org\)" <tim@xen.org>,
+       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
+       "linux-arm-kernel@lists.infradead.org"
+       <linux-arm-kernel@lists.infradead.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 07/24] xen/arm: Xen detection and
+ shared_info page mapping
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Thu, 2012-07-26 at 16:33 +0100, Stefano Stabellini wrote:
+> Check for a "/xen" node in the device tree, if it is present set
+> xen_domain_type to XEN_HVM_DOMAIN and continue initialization.
+> 
+> Map the real shared info page using XENMEM_add_to_physmap with
+> XENMAPSPACE_shared_info.
+> 
+> Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+> ---
+>  arch/arm/xen/enlighten.c |   56 ++++++++++++++++++++++++++++++++++++++++++++++
+>  1 files changed, 56 insertions(+), 0 deletions(-)
+> 
+> diff --git a/arch/arm/xen/enlighten.c b/arch/arm/xen/enlighten.c
+> index d27c2a6..8c923af 100644
+> --- a/arch/arm/xen/enlighten.c
+> +++ b/arch/arm/xen/enlighten.c
+> @@ -5,6 +5,9 @@
+>  #include <asm/xen/hypervisor.h>
+>  #include <asm/xen/hypercall.h>
+>  #include <linux/module.h>
+> +#include <linux/of.h>
+> +#include <linux/of_irq.h>
+> +#include <linux/of_address.h>
+>  
+>  struct start_info _xen_start_info;
+>  struct start_info *xen_start_info = &_xen_start_info;
+> @@ -33,3 +36,56 @@ int xen_remap_domain_mfn_range(struct vm_area_struct *vma,
+>      return -ENOSYS;
+>  }
+>  EXPORT_SYMBOL_GPL(xen_remap_domain_mfn_range);
+> +
+> +/*
+> + * == Xen Device Tree format ==
+> + * - /xen node;
+> + * - compatible "arm,xen";
+> + * - one interrupt for Xen event notifications;
+> + * - one memory region to map the grant_table.
+> + */
+> +static int __init xen_guest_init(void)
+> +{
+> +    int cpu;
+> +    struct xen_add_to_physmap xatp;
+> +    static struct shared_info *shared_info_page = 0;
+> +    struct device_node *node;
+> +
+> +    node = of_find_compatible_node(NULL, NULL, "arm,xen");
+> +    if (!node) {
+> +            pr_info("No Xen support\n");
+> +            return 0;
+> +    }
+
+This should either only print in the success case (to avoid spamming
+everyone) or we need a little bit of infrastructure like on x86 so that
+we print exactly one of:
+       "Booting natively on bearmetal"
+       "Booting paravirtualised on %s", hypervisor->name
+
+> +    xen_domain_type = XEN_HVM_DOMAIN;
+> +
+> +    if (!shared_info_page)
+> +            shared_info_page = (struct shared_info *)
+> +                    get_zeroed_page(GFP_KERNEL);
+> +    if (!shared_info_page) {
+> +            pr_err("not enough memory");
+> +            return -ENOMEM;
+> +    }
+> +    xatp.domid = DOMID_SELF;
+> +    xatp.idx = 0;
+> +    xatp.space = XENMAPSPACE_shared_info;
+> +    xatp.gpfn = __pa(shared_info_page) >> PAGE_SHIFT;
+> +    if (HYPERVISOR_memory_op(XENMEM_add_to_physmap, &xatp))
+> +            BUG();
+> +
+> +    HYPERVISOR_shared_info = (struct shared_info *)shared_info_page;
+> +
+> +    /* xen_vcpu is a pointer to the vcpu_info struct in the shared_info
+> +     * page, we use it in the event channel upcall and in some pvclock
+> +     * related functions. We don't need the vcpu_info placement
+> +     * optimizations because we don't use any pv_mmu or pv_irq op on
+> +     * HVM.
+> +     * When xen_hvm_init_shared_info is run at boot time only vcpu 0 is
+> +     * online but xen_hvm_init_shared_info is run at resume time too and
+> +     * in that case multiple vcpus might be online. */
+> +    for_each_online_cpu(cpu) {
+> +            per_cpu(xen_vcpu, cpu) =
+> +                    &HYPERVISOR_shared_info->vcpu_info[cpu];
+
+On ARM the shared info contains exactly 1 CPU (the boot CPU). The guest
+is required to use VCPUOP_register_vcpu_info to place vcpu info for
+secondary CPUs as they are brought up.
+
+Ian.
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1343382151.6812.124.camel@zakaz.uk.xensource.com> b/config/examples/test/corpus/<1343382151.6812.124.camel@zakaz.uk.xensource.com>
new file mode 100644 (file)
index 0000000..834e500
--- /dev/null
@@ -0,0 +1,208 @@
+From xen-devel-bounces@lists.xen.org Fri Jul 27 10:48:12 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 27 Jul 2012 10:48:12 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1Suh9W-0000nS-Bc
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 27 Jul 2012 10:48:12 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1Suh4F-0006Ps-SE; Fri, 27 Jul 2012 09:42:43 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1Suh4D-0006Pn-Ur
+       for xen-devel@lists.xensource.com; Fri, 27 Jul 2012 09:42:42 +0000
+Received: from [85.158.143.35:4629] by server-2.bemta-4.messagelabs.com id
+       91/24-17938-19262105; Fri, 27 Jul 2012 09:42:41 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-14.tower-21.messagelabs.com!1343382152!17448163!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDcxMzQ=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.2; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 22022 invoked from network); 27 Jul 2012 09:42:33 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-14.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
+       27 Jul 2012 09:42:33 -0000
+X-IronPort-AV: E=Sophos;i="4.77,666,1336348800"; d="scan'208";a="13730846"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       27 Jul 2012 09:42:32 +0000
+Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0;
+       Fri, 27 Jul 2012 10:42:32 +0100
+Message-ID: <1343382151.6812.124.camel@zakaz.uk.xensource.com>
+From: Ian Campbell <Ian.Campbell@citrix.com>
+To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+Date: Fri, 27 Jul 2012 10:42:31 +0100
+In-Reply-To: <1343316846-25860-12-git-send-email-stefano.stabellini@eu.citrix.com>
+References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
+       <1343316846-25860-12-git-send-email-stefano.stabellini@eu.citrix.com>
+Organization: Citrix Systems, Inc.
+X-Mailer: Evolution 3.4.3-1 
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
+       "linaro-dev@lists.linaro.org" <linaro-dev@lists.linaro.org>,
+       "arnd@arndb.de" <arnd@arndb.de>,
+       "konrad.wilk@oracle.com" <konrad.wilk@oracle.com>,
+       "catalin.marinas@arm.com" <catalin.marinas@arm.com>,
+       "Tim \(Xen.org\)" <tim@xen.org>,
+       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
+       "linux-arm-kernel@lists.infradead.org"
+       <linux-arm-kernel@lists.infradead.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 12/24] xen/arm: Introduce xen_guest_init
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Thu, 2012-07-26 at 16:33 +0100, Stefano Stabellini wrote:
+> We used to rely on a core_initcall to initialize Xen on ARM, however
+> core_initcalls are actually called after early consoles are initialized.
+> That means that hvc_xen.c is going to be initialized before Xen.
+> 
+> Given the lack of a better alternative, just call a new Xen
+> initialization function (xen_guest_init) from xen_cons_init.
+
+Can't we just arrange for this to be called super early on from
+setup_arch? That's got to be better than calling it from some random
+function which happens to get called early enough.
+
+I presume that KVM is going to want some similarly early init hooks etc
+and therefore ARM could benefit from the same sort of infrastructure as
+is in arch/x86/include/asm/hypervisor.h?
+
+
+> 
+> xen_guest_init has to be arch independent, so write both an ARM and an
+> x86 implementation. The x86 implementation is currently empty because we
+> can be sure that xen_hvm_guest_init is called early enough.
+> 
+> Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+> ---
+>  arch/arm/xen/enlighten.c  |    7 ++++++-
+>  arch/x86/xen/enlighten.c  |    8 ++++++++
+>  drivers/tty/hvc/hvc_xen.c |    7 ++++++-
+>  include/xen/xen.h         |    2 ++
+>  4 files changed, 22 insertions(+), 2 deletions(-)
+> 
+> diff --git a/arch/arm/xen/enlighten.c b/arch/arm/xen/enlighten.c
+> index 8c923af..dc68074 100644
+> --- a/arch/arm/xen/enlighten.c
+> +++ b/arch/arm/xen/enlighten.c
+> @@ -44,7 +44,7 @@ EXPORT_SYMBOL_GPL(xen_remap_domain_mfn_range);
+>   * - one interrupt for Xen event notifications;
+>   * - one memory region to map the grant_table.
+>   */
+> -static int __init xen_guest_init(void)
+> +int __init xen_guest_init(void)
+>  {
+>      int cpu;
+>      struct xen_add_to_physmap xatp;
+> @@ -58,6 +58,10 @@ static int __init xen_guest_init(void)
+>      }
+>      xen_domain_type = XEN_HVM_DOMAIN;
+>  
+> +    /* already setup */
+> +    if (shared_info_page != 0 && HYPERVISOR_shared_info == shared_info_page)
+> +            return 0;
+> +
+>      if (!shared_info_page)
+>              shared_info_page = (struct shared_info *)
+>                      get_zeroed_page(GFP_KERNEL);
+> @@ -88,4 +92,5 @@ static int __init xen_guest_init(void)
+>      }
+>      return 0;
+>  }
+> +EXPORT_SYMBOL_GPL(xen_guest_init);
+>  core_initcall(xen_guest_init);
+> diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c
+> index ff962d4..6131d43 100644
+> --- a/arch/x86/xen/enlighten.c
+> +++ b/arch/x86/xen/enlighten.c
+> @@ -1567,4 +1567,12 @@ const struct hypervisor_x86 x86_hyper_xen_hvm __refconst = {
+>      .init_platform          = xen_hvm_guest_init,
+>  };
+>  EXPORT_SYMBOL(x86_hyper_xen_hvm);
+> +
+> +int __init xen_guest_init(void)
+> +{
+> +    /* do nothing: rely on x86_hyper_xen_hvm for the initialization */
+> +    return 0;
+> +    
+> +}
+> +EXPORT_SYMBOL_GPL(xen_guest_init);
+>  #endif
+> diff --git a/drivers/tty/hvc/hvc_xen.c b/drivers/tty/hvc/hvc_xen.c
+> index dc07f56..3c04fb8 100644
+> --- a/drivers/tty/hvc/hvc_xen.c
+> +++ b/drivers/tty/hvc/hvc_xen.c
+> @@ -577,6 +577,12 @@ static void __exit xen_hvc_fini(void)
+>  static int xen_cons_init(void)
+>  {
+>      const struct hv_ops *ops;
+> +    int r;
+> +
+> +    /* retrieve xen infos  */
+> +    r = xen_guest_init();
+> +    if (r < 0)
+> +            return r;
+>  
+>      if (!xen_domain())
+>              return 0;
+> @@ -584,7 +590,6 @@ static int xen_cons_init(void)
+>      if (xen_initial_domain())
+>              ops = &dom0_hvc_ops;
+>      else {
+> -            int r;
+>              ops = &domU_hvc_ops;
+>  
+>              if (xen_hvm_domain())
+> diff --git a/include/xen/xen.h b/include/xen/xen.h
+> index 2c0d3a5..792a4d2 100644
+> --- a/include/xen/xen.h
+> +++ b/include/xen/xen.h
+> @@ -9,8 +9,10 @@ enum xen_domain_type {
+>  
+>  #ifdef CONFIG_XEN
+>  extern enum xen_domain_type xen_domain_type;
+> +int xen_guest_init(void);
+>  #else
+>  #define xen_domain_type             XEN_NATIVE
+> +static inline int xen_guest_init(void) { return 0; }
+>  #endif
+>  
+>  #define xen_domain()                (xen_domain_type != XEN_NATIVE)
+
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1343382276.6812.126.camel@zakaz.uk.xensource.com> b/config/examples/test/corpus/<1343382276.6812.126.camel@zakaz.uk.xensource.com>
new file mode 100644 (file)
index 0000000..a256b25
--- /dev/null
@@ -0,0 +1,142 @@
+From xen-devel-bounces@lists.xen.org Fri Jul 27 10:49:19 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 27 Jul 2012 10:49:19 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SuhAX-0000o3-MJ
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 27 Jul 2012 10:49:18 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1Suh76-0006YQ-G6; Fri, 27 Jul 2012 09:45:40 +0000
+Received: from mail27.messagelabs.com ([193.109.254.147])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1Suh75-0006XQ-AJ
+       for xen-devel@lists.xensource.com; Fri, 27 Jul 2012 09:45:39 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-7.tower-27.messagelabs.com!1343382330!2511402!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDcxMzQ=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.2; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 11911 invoked from network); 27 Jul 2012 09:45:30 -0000
+Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-7.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
+       27 Jul 2012 09:45:30 -0000
+X-IronPort-AV: E=Sophos;i="4.77,666,1336348800"; d="scan'208";a="13730930"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       27 Jul 2012 09:44:38 +0000
+Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0;
+       Fri, 27 Jul 2012 10:44:37 +0100
+Message-ID: <1343382276.6812.126.camel@zakaz.uk.xensource.com>
+From: Ian Campbell <Ian.Campbell@citrix.com>
+To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+Date: Fri, 27 Jul 2012 10:44:36 +0100
+In-Reply-To: <1343316846-25860-13-git-send-email-stefano.stabellini@eu.citrix.com>
+References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
+       <1343316846-25860-13-git-send-email-stefano.stabellini@eu.citrix.com>
+Organization: Citrix Systems, Inc.
+X-Mailer: Evolution 3.4.3-1 
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
+       "linaro-dev@lists.linaro.org" <linaro-dev@lists.linaro.org>,
+       "arnd@arndb.de" <arnd@arndb.de>,
+       "konrad.wilk@oracle.com" <konrad.wilk@oracle.com>,
+       "catalin.marinas@arm.com" <catalin.marinas@arm.com>,
+       "Tim \(Xen.org\)" <tim@xen.org>,
+       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
+       "linux-arm-kernel@lists.infradead.org"
+       <linux-arm-kernel@lists.infradead.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 13/24] xen/arm: get privilege status
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Thu, 2012-07-26 at 16:33 +0100, Stefano Stabellini wrote:
+> Use Xen features to figure out if we are privileged.
+> 
+> XENFEAT_dom0 was introduced by 23735 in xen-unstable.hg.
+> 
+> Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+> ---
+>  arch/arm/xen/enlighten.c         |    7 +++++++
+>  include/xen/interface/features.h |    3 +++
+>  2 files changed, 10 insertions(+), 0 deletions(-)
+> 
+> diff --git a/arch/arm/xen/enlighten.c b/arch/arm/xen/enlighten.c
+> index dc68074..2e013cf 100644
+> --- a/arch/arm/xen/enlighten.c
+> +++ b/arch/arm/xen/enlighten.c
+> @@ -2,6 +2,7 @@
+>  #include <xen/interface/xen.h>
+>  #include <xen/interface/memory.h>
+>  #include <xen/platform_pci.h>
+> +#include <xen/features.h>
+>  #include <asm/xen/hypervisor.h>
+>  #include <asm/xen/hypercall.h>
+>  #include <linux/module.h>
+> @@ -58,6 +59,12 @@ int __init xen_guest_init(void)
+>      }
+>      xen_domain_type = XEN_HVM_DOMAIN;
+>  
+> +    xen_setup_features();
+> +    if (xen_feature(XENFEAT_dom0))
+> +            xen_start_info->flags |= SIF_INITDOMAIN|SIF_PRIVILEGED;
+> +    else
+> +            xen_start_info->flags &= ~(SIF_INITDOMAIN|SIF_PRIVILEGED);
+
+What happens here on platforms prior to hypervisor changeset 23735?
+
+> +
+>      /* already setup */
+>      if (shared_info_page != 0 && HYPERVISOR_shared_info == shared_info_page)
+>              return 0;
+> diff --git a/include/xen/interface/features.h b/include/xen/interface/features.h
+> index b6ca39a..131a6cc 100644
+> --- a/include/xen/interface/features.h
+> +++ b/include/xen/interface/features.h
+> @@ -50,6 +50,9 @@
+>  /* x86: pirq can be used by HVM guests */
+>  #define XENFEAT_hvm_pirqs           10
+>  
+> +/* operation as Dom0 is supported */
+> +#define XENFEAT_dom0                      11
+> +
+>  #define XENFEAT_NR_SUBMAPS 1
+>  
+>  #endif /* __XEN_PUBLIC_FEATURES_H__ */
+
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1343382495.6812.127.camel@zakaz.uk.xensource.com> b/config/examples/test/corpus/<1343382495.6812.127.camel@zakaz.uk.xensource.com>
new file mode 100644 (file)
index 0000000..dfc8119
--- /dev/null
@@ -0,0 +1,100 @@
+From xen-devel-bounces@lists.xen.org Fri Jul 27 10:51:48 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 27 Jul 2012 10:51:48 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SuhCw-0000pk-An
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 27 Jul 2012 10:51:48 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1Suh9g-0006rN-22; Fri, 27 Jul 2012 09:48:20 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1Suh9e-0006qK-ND
+       for xen-devel@lists.xensource.com; Fri, 27 Jul 2012 09:48:18 +0000
+Received: from [85.158.139.83:42413] by server-6.bemta-5.messagelabs.com id
+       20/C0-11348-1E362105; Fri, 27 Jul 2012 09:48:17 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-11.tower-182.messagelabs.com!1343382497!21733848!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDcxMzQ=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.2; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 5793 invoked from network); 27 Jul 2012 09:48:17 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-11.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
+       27 Jul 2012 09:48:17 -0000
+X-IronPort-AV: E=Sophos;i="4.77,666,1336348800"; d="scan'208";a="13731015"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       27 Jul 2012 09:48:16 +0000
+Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0;
+       Fri, 27 Jul 2012 10:48:16 +0100
+Message-ID: <1343382495.6812.127.camel@zakaz.uk.xensource.com>
+From: Ian Campbell <Ian.Campbell@citrix.com>
+To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+Date: Fri, 27 Jul 2012 10:48:15 +0100
+In-Reply-To: <1343316846-25860-18-git-send-email-stefano.stabellini@eu.citrix.com>
+References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
+       <1343316846-25860-18-git-send-email-stefano.stabellini@eu.citrix.com>
+Organization: Citrix Systems, Inc.
+X-Mailer: Evolution 3.4.3-1 
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
+       "linaro-dev@lists.linaro.org" <linaro-dev@lists.linaro.org>,
+       "arnd@arndb.de" <arnd@arndb.de>,
+       "konrad.wilk@oracle.com" <konrad.wilk@oracle.com>,
+       "catalin.marinas@arm.com" <catalin.marinas@arm.com>,
+       "Tim \(Xen.org\)" <tim@xen.org>,
+       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
+       "linux-arm-kernel@lists.infradead.org"
+       <linux-arm-kernel@lists.infradead.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 18/24] xen/arm: compile blkfront and blkback
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Thu, 2012-07-26 at 16:34 +0100, Stefano Stabellini wrote:
+> 
+> +#define XEN_IO_PROTO_ABI_ARM        "arm-abi" 
+
+I wonder if we ought to call this arm-aarch32-abi or something?
+
+I wonder if we can also take the opportunity to fix the ABI cockup for
+disks on ARM and make the structs the same for both 32 and 64 bit?
+
+Ian.
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1343395134.6812.162.camel@zakaz.uk.xensource.com> b/config/examples/test/corpus/<1343395134.6812.162.camel@zakaz.uk.xensource.com>
new file mode 100644 (file)
index 0000000..e57a52a
--- /dev/null
@@ -0,0 +1,331 @@
+From xen-devel-bounces@lists.xen.org Fri Jul 27 14:24:04 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 27 Jul 2012 14:24:04 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SukWL-0001dy-OJ
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 27 Jul 2012 14:24:04 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SukRY-0008Eq-7M; Fri, 27 Jul 2012 13:19:00 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1SukRW-0008El-MZ
+       for xen-devel@lists.xensource.com; Fri, 27 Jul 2012 13:18:59 +0000
+Received: from [85.158.143.35:32679] by server-3.bemta-4.messagelabs.com id
+       A5/89-01511-14592105; Fri, 27 Jul 2012 13:18:57 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-6.tower-21.messagelabs.com!1343395136!17399026!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDcxMzQ=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.2; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 8135 invoked from network); 27 Jul 2012 13:18:56 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-6.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
+       27 Jul 2012 13:18:56 -0000
+X-IronPort-AV: E=Sophos;i="4.77,667,1336348800"; d="scan'208";a="13735386"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       27 Jul 2012 13:18:56 +0000
+Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0;
+       Fri, 27 Jul 2012 14:18:56 +0100
+Message-ID: <1343395134.6812.162.camel@zakaz.uk.xensource.com>
+From: Ian Campbell <Ian.Campbell@citrix.com>
+To: Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+Date: Fri, 27 Jul 2012 14:18:54 +0100
+In-Reply-To: <alpine.DEB.2.02.1207271350370.26163@kaball.uk.xensource.com>
+References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
+       <1343316846-25860-2-git-send-email-stefano.stabellini@eu.citrix.com>
+       <20120726163352.GC9222@phenom.dumpdata.com>
+       <1343380659.6812.106.camel@zakaz.uk.xensource.com>
+       <alpine.DEB.2.02.1207271350370.26163@kaball.uk.xensource.com>
+Organization: Citrix Systems, Inc.
+X-Mailer: Evolution 3.4.3-1 
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
+       "linaro-dev@lists.linaro.org" <linaro-dev@lists.linaro.org>,
+       "arnd@arndb.de" <arnd@arndb.de>,
+       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
+       "catalin.marinas@arm.com" <catalin.marinas@arm.com>, "Tim
+       \(Xen.org\)" <tim@xen.org>,
+       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
+       "linux-arm-kernel@lists.infradead.org"
+       <linux-arm-kernel@lists.infradead.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 02/24] xen/arm: hypercalls
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Fri, 2012-07-27 at 14:02 +0100, Stefano Stabellini wrote:
+> On Fri, 27 Jul 2012, Ian Campbell wrote:
+> > On Thu, 2012-07-26 at 17:33 +0100, Konrad Rzeszutek Wilk wrote:
+> > > On Thu, Jul 26, 2012 at 04:33:44PM +0100, Stefano Stabellini wrote:
+> > > > Use r12 to pass the hypercall number to the hypervisor.
+> > > > 
+> > > > We need a register to pass the hypercall number because we might not
+> > > > know it at compile time and HVC only takes an immediate argument.
+> > > > 
+> > > > Among the available registers r12 seems to be the best choice because it
+> > > > is defined as "intra-procedure call scratch register".
+> > > > 
+> > > > Use the ISS to pass an hypervisor specific tag.
+> > > > 
+> > > > Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+> > > > ---
+> > > >  arch/arm/include/asm/xen/hypercall.h |   50 ++++++++++++++++++++++++++
+> > > >  arch/arm/xen/Makefile                |    2 +-
+> > > >  arch/arm/xen/hypercall.S             |   65 ++++++++++++++++++++++++++++++++++
+> > > >  3 files changed, 116 insertions(+), 1 deletions(-)
+> > > >  create mode 100644 arch/arm/include/asm/xen/hypercall.h
+> > > >  create mode 100644 arch/arm/xen/hypercall.S
+> > > > 
+> > > > diff --git a/arch/arm/include/asm/xen/hypercall.h b/arch/arm/include/asm/xen/hypercall.h
+> > > > new file mode 100644
+> > > > index 0000000..4ac0624
+> > > > --- /dev/null
+> > > > +++ b/arch/arm/include/asm/xen/hypercall.h
+> > > > @@ -0,0 +1,50 @@
+> > > > +/******************************************************************************
+> > > > + * hypercall.h
+> > > > + *
+> > > > + * Linux-specific hypervisor handling.
+> > > > + *
+> > > > + * Stefano Stabellini <stefano.stabellini@eu.citrix.com>, Citrix, 2012
+> > > > + *
+> > > > + * This program is free software; you can redistribute it and/or
+> > > > + * modify it under the terms of the GNU General Public License version 2
+> > > > + * as published by the Free Software Foundation; or, when distributed
+> > > > + * separately from the Linux kernel or incorporated into other
+> > > > + * software packages, subject to the following license:
+> > > > + *
+> > > > + * Permission is hereby granted, free of charge, to any person obtaining a copy
+> > > > + * of this source file (the "Software"), to deal in the Software without
+> > > > + * restriction, including without limitation the rights to use, copy, modify,
+> > > > + * merge, publish, distribute, sublicense, and/or sell copies of the Software,
+> > > > + * and to permit persons to whom the Software is furnished to do so, subject to
+> > > > + * the following conditions:
+> > > > + *
+> > > > + * The above copyright notice and this permission notice shall be included in
+> > > > + * all copies or substantial portions of the Software.
+> > > > + *
+> > > > + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+> > > > + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+> > > > + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+> > > > + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+> > > > + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+> > > > + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+> > > > + * IN THE SOFTWARE.
+> > > > + */
+> > > > +
+> > > > +#ifndef _ASM_ARM_XEN_HYPERCALL_H
+> > > > +#define _ASM_ARM_XEN_HYPERCALL_H
+> > > > +
+> > > > +#include <xen/interface/xen.h>
+> > > > +
+> > > > +long privcmd_call(unsigned call, unsigned long a1,
+> > > > +              unsigned long a2, unsigned long a3,
+> > > > +              unsigned long a4, unsigned long a5);
+> > > > +int HYPERVISOR_xen_version(int cmd, void *arg);
+> > > > +int HYPERVISOR_console_io(int cmd, int count, char *str);
+> > > > +int HYPERVISOR_grant_table_op(unsigned int cmd, void *uop, unsigned int count);
+> > > > +int HYPERVISOR_sched_op(int cmd, void *arg);
+> > > > +int HYPERVISOR_event_channel_op(int cmd, void *arg);
+> > > > +unsigned long HYPERVISOR_hvm_op(int op, void *arg);
+> > > > +int HYPERVISOR_memory_op(unsigned int cmd, void *arg);
+> > > > +int HYPERVISOR_physdev_op(int cmd, void *arg);
+> > > > +
+> > > > +#endif /* _ASM_ARM_XEN_HYPERCALL_H */
+> > > > diff --git a/arch/arm/xen/Makefile b/arch/arm/xen/Makefile
+> > > > index 0bad594..b9d6acc 100644
+> > > > --- a/arch/arm/xen/Makefile
+> > > > +++ b/arch/arm/xen/Makefile
+> > > > @@ -1 +1 @@
+> > > > -obj-y         := enlighten.o
+> > > > +obj-y         := enlighten.o hypercall.o
+> > > > diff --git a/arch/arm/xen/hypercall.S b/arch/arm/xen/hypercall.S
+> > > > new file mode 100644
+> > > > index 0000000..038cc5b
+> > > > --- /dev/null
+> > > > +++ b/arch/arm/xen/hypercall.S
+> > > > @@ -0,0 +1,65 @@
+> > > > +/******************************************************************************
+> > > > + * hypercall.S
+> > > > + *
+> > > > + * Xen hypercall wrappers
+> > > > + *
+> > > > + * The Xen hypercall calling convention is very similar to the ARM
+> > > > + * procedure calling convention: the first paramter is passed in r0, the
+> > > > + * second in r1, the third in r2 and the third in r3. Considering that
+> > > 
+> > > I think you meant 'and the fourth in r3'.
+> > > 
+> > > So where does the similarity end?  Just in that we use r12?
+> > 
+> > The standard ARM function calling convention is arguments 1-4 on r0-r3
+> > and arguments 5+ on the stack. r12 is a scratch register which can be
+> > clobbered by the *linker* on subroutine call (r12 is also called "ip"
+> > the intra-procedure call scratch register).
+> > 
+> > The hypervisor doesn't want to be accessing hypercall arguments off the
+> > guest stack, for obvious reasons, so we use r4 for the fifth argument
+> > (and if we even implemented 6 argument hypercalls we'd use r5, etc).
+> > There is no equivalent to the hypercall number in the procedure calling
+> > convention so we picked r12 because it is up and out of the way and is
+> > otherwise a scratch register. Obviously that you must not make a
+> > procedure call between setting the hypercall number in r12 and calling
+> > the hvc instruction.
+> > 
+> > > 
+> > > > + * Xen hypercalls have 5 arguments at most, the fifth paramter is passed
+> > > > + * in r4, differently from the procedure calling convention of using the
+> > > 
+> > > > + * stack for that case.
+> > > > + *
+> > > > + * The hypercall number is passed in r12.
+> > > > + *
+> > > > + * The return value is in r0.
+> > > > + *
+> > > > + * The hvc ISS is required to be 0xEA1, that is the Xen specific ARM
+> > > > + * hypercall tag.
+> > > > + *
+> > > > + * Stefano Stabellini <stefano.stabellini@eu.citrix.com>, Citrix, 2012
+> > > > + */
+> > > > +
+> > > > +#include <linux/linkage.h>
+> > > > +#include <asm/assembler.h>
+> > > > +#include <xen/interface/xen.h>
+> > > > +
+> > > > +
+> > > > +/* HVC 0xEA1 */
+> > > > +#ifdef CONFIG_THUMB2_KERNEL
+> > > > +#define xen_hvc .word 0xf7e08ea1
+> > > > +#else
+> > > > +#define xen_hvc .word 0xe140ea71
+> > > > +#endif
+> > > > +
+> > > > +/* We need to save and restore r4, because Xen clobbers it. */
+> > > 
+> > > Hmm, the comment says r4, but right below I see r12?
+> > 
+> > The ARM procedure calling convention allows a subroutine to clobber
+> > r1..r3 (r0 is the return value) but not r4 which must be preserved. But
+> > the hypervisor ABI clobbers all argument registers so the caller has to
+> > specially preserve r4 in this context whenever there is a 5 argument
+> > hypercall.
+> > 
+> > I presume that none of the hypercalls defined below have 5 arguments and
+> > therefore we don't need to preserve r4 except in the generic
+> > privcmd_call function. 
+> > 
+> > To be honest I prefer the style which we use on x86 which is to define
+> > hypercall{0,1,2,3,4,5} macros and to wrap those with the specific names
+> > using inline functions.
+> > 
+> > I find the x86 way more self documenting, and being in C prevents errors
+> > around the number of arguments. It also allows for better in-lining and
+> > exposes to gcc the actual clobbers, which might allow it to avoid saving
+> > r4 on the stack at all etc.
+> 
+> Considering that we cannot do the same thing that we do on x86 (see this
+> thread http://marc.info/?l=linux-kernel&m=133052035426427&w=2),
+
+I'd forgotten all about this arm-gcc braindamage.
+
+>  I
+> decided to go for the assembly implementation because it is much shorter
+> and easier to understand (for me at least, being just 3 lines of code in
+> the generic case and just one macro) and this way we can exploit the
+> code generated by gcc to put the arguments in the right registers.
+> 
+> Also I like the fact that it is the same strategy used by libc to issue
+> syscalls.
+
+Fair enough.
+
+> As you can see it results in 3 lines of code for all the hypercalls
+> except the ones that might take more than 4 arguments, that right now is
+> just privcmd.
+> 
+> 
+> 
+> > > Should this comment be by 'privcmd_call'?
+> > 
+> > When we add a 5 argument hypercall I suppose we'll see the required
+> > push/pop of r4 added to this macro too.
+> 
+> For performance and simplicity I would add a second macro that push/pop
+> r4, only required for hypercalls with more than 4 arguments.
+
+For clarity / documentation purposes it might actually be worthwhile to
+define all of HYPERCALL{0,1,2,3,4} even if the {0,1,2,3} cases are all
+just:
+        #define HYPERCALL0(x) HYPERCALL_SIMPLE(x)
+
+> > > > +#define HYPERCALL(hypercall)                  \
+> > > > +ENTRY(HYPERVISOR_##hypercall)                 \
+> > > > +      mov r12, #__HYPERVISOR_##hypercall;     \
+> > > > +      xen_hvc;                                                        \
+> > > > +      mov pc, lr;                                                     \
+> > > > +ENDPROC(HYPERVISOR_##hypercall)
+> > > > +
+> > > > +                .text
+> > > > +
+> > > > +HYPERCALL(xen_version);
+> > > > +HYPERCALL(console_io);
+> > > > +HYPERCALL(grant_table_op);
+> > > > +HYPERCALL(sched_op);
+> > > > +HYPERCALL(event_channel_op);
+> > > > +HYPERCALL(hvm_op);
+> > > > +HYPERCALL(memory_op);
+> > > > +HYPERCALL(physdev_op);
+> > > > +
+> > > > +ENTRY(privcmd_call)
+> > > > +      stmdb   sp!, {r4}
+> > > > +      mov r12, r0
+> > > > +      mov r0, r1
+> > > > +      mov r1, r2
+> > > > +      mov r2, r3
+> > > > +      ldr r3, [sp, #8]
+> > > > +      ldr r4, [sp, #4]
+> > > > +      xen_hvc
+> > > > +      pop {r4}
+> > 
+> > Why not ldmdb for symmetry?
+> 
+> Yep, I can do that.
+
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1343399630.25096.4.camel@zakaz.uk.xensource.com> b/config/examples/test/corpus/<1343399630.25096.4.camel@zakaz.uk.xensource.com>
new file mode 100644 (file)
index 0000000..c10ebbd
--- /dev/null
@@ -0,0 +1,140 @@
+From xen-devel-bounces@lists.xen.org Fri Jul 27 15:38:40 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 27 Jul 2012 15:38:40 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SulgY-0001yQ-LW
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 27 Jul 2012 15:38:40 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SulcS-0002zN-DR; Fri, 27 Jul 2012 14:34:20 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1SulcR-0002zG-5x
+       for xen-devel@lists.xensource.com; Fri, 27 Jul 2012 14:34:19 +0000
+Received: from [85.158.143.35:8400] by server-2.bemta-4.messagelabs.com id
+       78/01-17938-AE6A2105; Fri, 27 Jul 2012 14:34:18 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-3.tower-21.messagelabs.com!1343399632!14886860!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDcxMzQ=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.2; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 19537 invoked from network); 27 Jul 2012 14:33:52 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-3.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
+       27 Jul 2012 14:33:52 -0000
+X-IronPort-AV: E=Sophos;i="4.77,667,1336348800"; d="scan'208";a="13737256"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       27 Jul 2012 14:33:52 +0000
+Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0;
+       Fri, 27 Jul 2012 15:33:51 +0100
+Message-ID: <1343399630.25096.4.camel@zakaz.uk.xensource.com>
+From: Ian Campbell <Ian.Campbell@citrix.com>
+To: Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+Date: Fri, 27 Jul 2012 15:33:50 +0100
+In-Reply-To: <alpine.DEB.2.02.1207271514140.26163@kaball.uk.xensource.com>
+References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
+       <1343316846-25860-13-git-send-email-stefano.stabellini@eu.citrix.com>
+       <1343382276.6812.126.camel@zakaz.uk.xensource.com>
+       <alpine.DEB.2.02.1207271514140.26163@kaball.uk.xensource.com>
+Organization: Citrix Systems, Inc.
+X-Mailer: Evolution 3.4.3-1 
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
+       "linaro-dev@lists.linaro.org" <linaro-dev@lists.linaro.org>,
+       "arnd@arndb.de" <arnd@arndb.de>,
+       "konrad.wilk@oracle.com" <konrad.wilk@oracle.com>,
+       "catalin.marinas@arm.com" <catalin.marinas@arm.com>,
+       "Tim \(Xen.org\)" <tim@xen.org>,
+       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
+       "linux-arm-kernel@lists.infradead.org"
+       <linux-arm-kernel@lists.infradead.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 13/24] xen/arm: get privilege status
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Fri, 2012-07-27 at 15:25 +0100, Stefano Stabellini wrote:
+> On Fri, 27 Jul 2012, Ian Campbell wrote:
+> > On Thu, 2012-07-26 at 16:33 +0100, Stefano Stabellini wrote:
+> > > Use Xen features to figure out if we are privileged.
+> > > 
+> > > XENFEAT_dom0 was introduced by 23735 in xen-unstable.hg.
+> > > 
+> > > Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+> > > ---
+> > >  arch/arm/xen/enlighten.c         |    7 +++++++
+> > >  include/xen/interface/features.h |    3 +++
+> > >  2 files changed, 10 insertions(+), 0 deletions(-)
+> > > 
+> > > diff --git a/arch/arm/xen/enlighten.c b/arch/arm/xen/enlighten.c
+> > > index dc68074..2e013cf 100644
+> > > --- a/arch/arm/xen/enlighten.c
+> > > +++ b/arch/arm/xen/enlighten.c
+> > > @@ -2,6 +2,7 @@
+> > >  #include <xen/interface/xen.h>
+> > >  #include <xen/interface/memory.h>
+> > >  #include <xen/platform_pci.h>
+> > > +#include <xen/features.h>
+> > >  #include <asm/xen/hypervisor.h>
+> > >  #include <asm/xen/hypercall.h>
+> > >  #include <linux/module.h>
+> > > @@ -58,6 +59,12 @@ int __init xen_guest_init(void)
+> > >          }
+> > >          xen_domain_type = XEN_HVM_DOMAIN;
+> > >  
+> > > +        xen_setup_features();
+> > > +        if (xen_feature(XENFEAT_dom0))
+> > > +                xen_start_info->flags |= SIF_INITDOMAIN|SIF_PRIVILEGED;
+> > > +        else
+> > > +                xen_start_info->flags &= ~(SIF_INITDOMAIN|SIF_PRIVILEGED);
+> > 
+> > What happens here on platforms prior to hypervisor changeset 23735?
+> 
+> It wouldn't work.
+> Considering that we are certainly not going to backport ARM support to
+> Xen 4.1, and that both ARM and XENFEAT_dom0 will be present in Xen 4.2,
+> do we really need to support the Xen unstable changesets between ARM was
+> introduced and XENFEAT_dom0 appeared?
+
+Sorry, I missed the "arm" in the path.
+
+Ian.
+
+
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1343399971.25096.8.camel@zakaz.uk.xensource.com> b/config/examples/test/corpus/<1343399971.25096.8.camel@zakaz.uk.xensource.com>
new file mode 100644 (file)
index 0000000..470c8bc
--- /dev/null
@@ -0,0 +1,132 @@
+From xen-devel-bounces@lists.xen.org Fri Jul 27 15:43:35 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 27 Jul 2012 15:43:35 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SullJ-00020B-NL
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 27 Jul 2012 15:43:35 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SulhY-0003So-OI; Fri, 27 Jul 2012 14:39:36 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1SulhX-0003SB-7T
+       for xen-devel@lists.xensource.com; Fri, 27 Jul 2012 14:39:35 +0000
+Received: from [85.158.139.83:65059] by server-1.bemta-5.messagelabs.com id
+       58/5D-29759-628A2105; Fri, 27 Jul 2012 14:39:34 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-6.tower-182.messagelabs.com!1343399973!25147290!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDcxMzQ=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.2; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 11827 invoked from network); 27 Jul 2012 14:39:33 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-6.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
+       27 Jul 2012 14:39:33 -0000
+X-IronPort-AV: E=Sophos;i="4.77,667,1336348800"; d="scan'208";a="13737399"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       27 Jul 2012 14:39:33 +0000
+Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0;
+       Fri, 27 Jul 2012 15:39:33 +0100
+Message-ID: <1343399971.25096.8.camel@zakaz.uk.xensource.com>
+From: Ian Campbell <Ian.Campbell@citrix.com>
+To: Russell King - ARM Linux <linux@arm.linux.org.uk>
+Date: Fri, 27 Jul 2012 15:39:31 +0100
+In-Reply-To: <20120727142101.GA6802@n2100.arm.linux.org.uk>
+References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
+       <1343316846-25860-2-git-send-email-stefano.stabellini@eu.citrix.com>
+       <20120726163352.GC9222@phenom.dumpdata.com>
+       <1343380659.6812.106.camel@zakaz.uk.xensource.com>
+       <alpine.DEB.2.02.1207271350370.26163@kaball.uk.xensource.com>
+       <20120727142101.GA6802@n2100.arm.linux.org.uk>
+Organization: Citrix Systems, Inc.
+X-Mailer: Evolution 3.4.3-1 
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
+       "linaro-dev@lists.linaro.org" <linaro-dev@lists.linaro.org>,
+       "arnd@arndb.de" <arnd@arndb.de>,
+       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
+       "catalin.marinas@arm.com" <catalin.marinas@arm.com>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>,
+       "Tim \(Xen.org\)" <tim@xen.org>,
+       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
+       "linux-arm-kernel@lists.infradead.org"
+       <linux-arm-kernel@lists.infradead.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 02/24] xen/arm: hypercalls
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Fri, 2012-07-27 at 15:21 +0100, Russell King - ARM Linux wrote:
+> On Fri, Jul 27, 2012 at 02:02:18PM +0100, Stefano Stabellini wrote:
+> > > > > +/******************************************************************************
+> > > > > + * hypercall.h
+> > > > > + *
+> > > > > + * Linux-specific hypervisor handling.
+> > > > > + *
+> > > > > + * Stefano Stabellini <stefano.stabellini@eu.citrix.com>, Citrix, 2012
+> > > > > + *
+> > > > > + * This program is free software; you can redistribute it and/or
+> > > > > + * modify it under the terms of the GNU General Public License version 2
+> > > > > + * as published by the Free Software Foundation; or, when distributed
+> > > > > + * separately from the Linux kernel or incorporated into other
+> > > > > + * software packages, subject to the following license:
+> > > > > + *
+> > > > > + * Permission is hereby granted, free of charge, to any person obtaining a copy
+> > > > > + * of this source file (the "Software"), to deal in the Software without
+> 
+> Erm, is that an additional restriction on the GPL which prevents me from
+> shipping this code on a CD and charging for the act of creating the CD
+> and shipping it?  That would technically make the above statement
+> incompatible with the GPL.
+
+There's an "or" in there.
+
+The non-GPL alternative license is the standard one applied by upstream
+Xen to the interface headers:
+        http://xenbits.xen.org/hg/xen-unstable.hg/file/tip/xen/include/public/COPYING
+
+It's the X11/MIT license IIRC, which the FSF say is GPL compatible.
+http://www.gnu.org/licenses/license-list.html#X11License
+
+The same license is used a few other places in the kernel, e.g. the DRM
+code.
+
+Ian.
+
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1343400685.25096.15.camel@zakaz.uk.xensource.com> b/config/examples/test/corpus/<1343400685.25096.15.camel@zakaz.uk.xensource.com>
new file mode 100644 (file)
index 0000000..1f3674f
--- /dev/null
@@ -0,0 +1,159 @@
+From xen-devel-bounces@lists.xen.org Fri Jul 27 15:55:28 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 27 Jul 2012 15:55:28 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1Sulws-00023D-Ks
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 27 Jul 2012 15:55:28 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1Sult3-0004Nm-71; Fri, 27 Jul 2012 14:51:29 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1Sult2-0004Ng-5F
+       for xen-devel@lists.xensource.com; Fri, 27 Jul 2012 14:51:28 +0000
+Received: from [85.158.143.99:29340] by server-3.bemta-4.messagelabs.com id
+       E5/54-01511-FEAA2105; Fri, 27 Jul 2012 14:51:27 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-8.tower-216.messagelabs.com!1343400686!19285975!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDcxMzQ=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.2; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 23198 invoked from network); 27 Jul 2012 14:51:26 -0000
+Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-8.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
+       27 Jul 2012 14:51:26 -0000
+X-IronPort-AV: E=Sophos;i="4.77,667,1336348800"; d="scan'208";a="13737659"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       27 Jul 2012 14:51:26 +0000
+Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0;
+       Fri, 27 Jul 2012 15:51:26 +0100
+Message-ID: <1343400685.25096.15.camel@zakaz.uk.xensource.com>
+From: Ian Campbell <Ian.Campbell@citrix.com>
+To: Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+Date: Fri, 27 Jul 2012 15:51:25 +0100
+In-Reply-To: <alpine.DEB.2.02.1207271545440.26163@kaball.uk.xensource.com>
+References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
+       <1343316846-25860-7-git-send-email-stefano.stabellini@eu.citrix.com>
+       <1343381813.6812.120.camel@zakaz.uk.xensource.com>
+       <alpine.DEB.2.02.1207271545440.26163@kaball.uk.xensource.com>
+Organization: Citrix Systems, Inc.
+X-Mailer: Evolution 3.4.3-1 
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
+       "linaro-dev@lists.linaro.org" <linaro-dev@lists.linaro.org>,
+       "arnd@arndb.de" <arnd@arndb.de>,
+       "konrad.wilk@oracle.com" <konrad.wilk@oracle.com>,
+       "catalin.marinas@arm.com" <catalin.marinas@arm.com>,
+       "Tim \(Xen.org\)" <tim@xen.org>,
+       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
+       "linux-arm-kernel@lists.infradead.org"
+       <linux-arm-kernel@lists.infradead.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 07/24] xen/arm: Xen detection and
+ shared_info page mapping
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Fri, 2012-07-27 at 15:48 +0100, Stefano Stabellini wrote:
+> On Fri, 27 Jul 2012, Ian Campbell wrote:
+> > On Thu, 2012-07-26 at 16:33 +0100, Stefano Stabellini wrote:
+> > > Check for a "/xen" node in the device tree, if it is present set
+> > > xen_domain_type to XEN_HVM_DOMAIN and continue initialization.
+> > > 
+> > > Map the real shared info page using XENMEM_add_to_physmap with
+> > > XENMAPSPACE_shared_info.
+> > > 
+> > > Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+> > > ---
+> > >  arch/arm/xen/enlighten.c |   56 ++++++++++++++++++++++++++++++++++++++++++++++
+> > >  1 files changed, 56 insertions(+), 0 deletions(-)
+> > > 
+> > > diff --git a/arch/arm/xen/enlighten.c b/arch/arm/xen/enlighten.c
+> > > index d27c2a6..8c923af 100644
+> > > --- a/arch/arm/xen/enlighten.c
+> > > +++ b/arch/arm/xen/enlighten.c
+> > > @@ -5,6 +5,9 @@
+> > >  #include <asm/xen/hypervisor.h>
+> > >  #include <asm/xen/hypercall.h>
+> > >  #include <linux/module.h>
+> > > +#include <linux/of.h>
+> > > +#include <linux/of_irq.h>
+> > > +#include <linux/of_address.h>
+> > >  
+> > >  struct start_info _xen_start_info;
+> > >  struct start_info *xen_start_info = &_xen_start_info;
+> > > @@ -33,3 +36,56 @@ int xen_remap_domain_mfn_range(struct vm_area_struct *vma,
+> > >          return -ENOSYS;
+> > >  }
+> > >  EXPORT_SYMBOL_GPL(xen_remap_domain_mfn_range);
+> > > +
+> > > +/*
+> > > + * == Xen Device Tree format ==
+> > > + * - /xen node;
+> > > + * - compatible "arm,xen";
+> > > + * - one interrupt for Xen event notifications;
+> > > + * - one memory region to map the grant_table.
+> > > + */
+> > > +static int __init xen_guest_init(void)
+> > > +{
+> > > +        int cpu;
+> > > +        struct xen_add_to_physmap xatp;
+> > > +        static struct shared_info *shared_info_page = 0;
+> > > +        struct device_node *node;
+> > > +
+> > > +        node = of_find_compatible_node(NULL, NULL, "arm,xen");
+> > > +        if (!node) {
+> > > +                pr_info("No Xen support\n");
+> > > +                return 0;
+> > > +        }
+> > 
+> > This should either only print in the success case (to avoid spamming
+> > everyone) or we need a little bit of infrastructure like on x86 so that
+> > we print exactly one of:
+> >    "Booting natively on bearmetal"
+> >    "Booting paravirtualised on %s", hypervisor->name
+> 
+> This function is only going to be called once (actually it might be
+> called twice with the change introduced by "xen/arm: Introduce
+> xen_guest_init").
+
+Once (or twice), per boot, per ARM system running Linux in the world...
+
+Ian.
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1343405479.25096.25.camel@zakaz.uk.xensource.com> b/config/examples/test/corpus/<1343405479.25096.25.camel@zakaz.uk.xensource.com>
new file mode 100644 (file)
index 0000000..322061c
--- /dev/null
@@ -0,0 +1,129 @@
+From xen-devel-bounces@lists.xen.org Fri Jul 27 17:15:40 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 27 Jul 2012 17:15:40 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SunCU-0002NQ-4z
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 27 Jul 2012 17:15:40 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1Sun93-0008FE-3z; Fri, 27 Jul 2012 16:12:05 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1Sun91-0008F5-Jb
+       for xen-devel@lists.xensource.com; Fri, 27 Jul 2012 16:12:03 +0000
+Received: from [85.158.138.51:33902] by server-12.bemta-3.messagelabs.com id
+       B5/DB-15259-2DDB2105; Fri, 27 Jul 2012 16:12:02 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-11.tower-174.messagelabs.com!1343405522!29171549!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDcxMzQ=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.2; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 22809 invoked from network); 27 Jul 2012 16:12:02 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-11.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
+       27 Jul 2012 16:12:02 -0000
+X-IronPort-AV: E=Sophos;i="4.77,667,1336348800"; d="scan'208";a="13739072"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       27 Jul 2012 16:11:21 +0000
+Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0;
+       Fri, 27 Jul 2012 17:11:21 +0100
+Message-ID: <1343405479.25096.25.camel@zakaz.uk.xensource.com>
+From: Ian Campbell <Ian.Campbell@citrix.com>
+To: Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+Date: Fri, 27 Jul 2012 17:11:19 +0100
+In-Reply-To: <alpine.DEB.2.02.1207271613200.26163@kaball.uk.xensource.com>
+References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
+       <1343316846-25860-12-git-send-email-stefano.stabellini@eu.citrix.com>
+       <1343382151.6812.124.camel@zakaz.uk.xensource.com>
+       <alpine.DEB.2.02.1207271613200.26163@kaball.uk.xensource.com>
+Organization: Citrix Systems, Inc.
+X-Mailer: Evolution 3.4.3-1 
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
+       "linaro-dev@lists.linaro.org" <linaro-dev@lists.linaro.org>,
+       "arnd@arndb.de" <arnd@arndb.de>,
+       "konrad.wilk@oracle.com" <konrad.wilk@oracle.com>,
+       "catalin.marinas@arm.com" <catalin.marinas@arm.com>,
+       "Tim \(Xen.org\)" <tim@xen.org>,
+       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
+       "linux-arm-kernel@lists.infradead.org"
+       <linux-arm-kernel@lists.infradead.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 12/24] xen/arm: Introduce xen_guest_init
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Fri, 2012-07-27 at 16:54 +0100, Stefano Stabellini wrote:
+> On Fri, 27 Jul 2012, Ian Campbell wrote:
+> > On Thu, 2012-07-26 at 16:33 +0100, Stefano Stabellini wrote:
+> > > We used to rely on a core_initcall to initialize Xen on ARM, however
+> > > core_initcalls are actually called after early consoles are initialized.
+> > > That means that hvc_xen.c is going to be initialized before Xen.
+> > > 
+> > > Given the lack of a better alternative, just call a new Xen
+> > > initialization function (xen_guest_init) from xen_cons_init.
+> > 
+> > Can't we just arrange for this to be called super early on from
+> > setup_arch? That's got to be better than calling it from some random
+> > function which happens to get called early enough.
+> 
+> While I agree with you that an explicit call to xen_guest_init from
+> generic code might be better, xen_cons_init is not just a random
+> function: it is a console_initcall and therefore we know for sure that
+> it is going be the first one to be called.
+
+Initialising something != console in a console_initcall just because it
+happens to be called early enough meets my definition of calling it from
+a random place.
+
+> In fact if we didn't want the PV console to work so early we could just
+> rely on a core_initcall to initialize everything and we wouldn't have
+> any issues.
+> 
+> 
+> In any case if the ARM maintainers agree I could add a generic
+> hypervisor initialization call the end of setup_arch.
+> 
+> 
+> 
+> > I presume that KVM is going to want some similarly early init hooks etc
+> > and therefore ARM could benefit from the same sort of infrastructure as
+> > is in arch/x86/include/asm/hypervisor.h?
+
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1343892951.7571.50.camel@dagon.hellion.org.uk> b/config/examples/test/corpus/<1343892951.7571.50.camel@dagon.hellion.org.uk>
new file mode 100644 (file)
index 0000000..fc52b1d
--- /dev/null
@@ -0,0 +1,118 @@
+From xen-devel-bounces@lists.xen.org Thu Aug 02 08:40:50 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 02 Aug 2012 08:40:50 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1Swq1U-0005aM-Fk
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 02 Aug 2012 08:40:50 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1Swpwr-0003zn-6S; Thu, 02 Aug 2012 07:35:57 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1Swpwo-0003zi-E6
+       for xen-devel@lists.xensource.com; Thu, 02 Aug 2012 07:35:54 +0000
+Received: from [85.158.138.51:16454] by server-11.bemta-3.messagelabs.com id
+       2A/C5-00679-9DD2A105; Thu, 02 Aug 2012 07:35:53 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-6.tower-174.messagelabs.com!1343892953!21979936!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDc3ODA=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.2; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 17349 invoked from network); 2 Aug 2012 07:35:53 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-6.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
+       2 Aug 2012 07:35:53 -0000
+X-IronPort-AV: E=Sophos;i="4.77,699,1336348800"; d="scan'208";a="13815371"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       02 Aug 2012 07:35:52 +0000
+Received: from [127.0.0.1] (10.80.16.67) by smtprelay.citrix.com
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0; Thu, 2 Aug 2012
+       08:35:52 +0100
+Message-ID: <1343892951.7571.50.camel@dagon.hellion.org.uk>
+From: Ian Campbell <Ian.Campbell@citrix.com>
+To: Rob Herring <robherring2@gmail.com>
+Date: Thu, 2 Aug 2012 08:35:51 +0100
+In-Reply-To: <50197527.3070007@gmail.com>
+References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
+       <1343316846-25860-1-git-send-email-stefano.stabellini@eu.citrix.com>
+       <50197527.3070007@gmail.com>
+Organization: Citrix Systems, Inc.
+X-Mailer: Evolution 3.4.3-1 
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
+       "linaro-dev@lists.linaro.org" <linaro-dev@lists.linaro.org>,
+       "arnd@arndb.de" <arnd@arndb.de>,
+       "konrad.wilk@oracle.com" <konrad.wilk@oracle.com>,
+       "catalin.marinas@arm.com" <catalin.marinas@arm.com>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>,
+       "Tim \(Xen.org\)" <tim@xen.org>,
+       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
+       "linux-arm-kernel@lists.infradead.org"
+       <linux-arm-kernel@lists.infradead.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 01/24] arm: initial Xen support
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Wed, 2012-08-01 at 19:27 +0100, Rob Herring wrote:
+> On 07/26/2012 10:33 AM, Stefano Stabellini wrote:
+> > - Basic hypervisor.h and interface.h definitions.
+> > - Skelethon enlighten.c, set xen_start_info to an empty struct.
+> > - Do not limit xen_initial_domain to PV guests.
+> > 
+> > The new code only compiles when CONFIG_XEN is set, that is going to be
+> > added to arch/arm/Kconfig in a later patch.
+> > 
+> > Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+> > ---
+> >  arch/arm/Makefile                     |    1 +
+> >  arch/arm/include/asm/hypervisor.h     |    6 +++
+> >  arch/arm/include/asm/xen/hypervisor.h |   19 ++++++++++
+> >  arch/arm/include/asm/xen/interface.h  |   64 +++++++++++++++++++++++++++++++++
+> 
+> These headers don't seem particularly ARM specific. Could they be moved
+> to asm-generic or include/linux?
+
+Or perhaps include/xen.
+
+A bunch of it also looks like x86 specific stuff which has crept in.
+e.g. PARAVIRT_LAZY_FOO and paravirt_get_lazy_mode() are arch/x86
+specific and shouldn't be called from common code (and aren't, AFAICT).
+
+
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1344935141.5926.6.camel@zakaz.uk.xensource.com> b/config/examples/test/corpus/<1344935141.5926.6.camel@zakaz.uk.xensource.com>
new file mode 100644 (file)
index 0000000..ea6e8f7
--- /dev/null
@@ -0,0 +1,148 @@
+From xen-devel-bounces@lists.xen.org Tue Aug 14 10:14:24 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Tue, 14 Aug 2012 10:14:24 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T1DCe-0004bR-3w
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 14 Aug 2012 10:14:24 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T1D7B-0007YU-U4; Tue, 14 Aug 2012 09:08:41 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1T1D7A-0007Wi-1e
+       for xen-devel@lists.xen.org; Tue, 14 Aug 2012 09:08:40 +0000
+Received: from [85.158.143.35:37976] by server-1.bemta-4.messagelabs.com id
+       5D/28-07754-7951A205; Tue, 14 Aug 2012 09:08:39 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-15.tower-21.messagelabs.com!1344935143!14669374!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDkwNzc=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 17534 invoked from network); 14 Aug 2012 09:05:43 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-15.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
+       14 Aug 2012 09:05:43 -0000
+X-IronPort-AV: E=Sophos;i="4.77,765,1336348800"; d="scan'208";a="13997185"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       14 Aug 2012 09:05:42 +0000
+Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0;
+       Tue, 14 Aug 2012 10:05:43 +0100
+Message-ID: <1344935141.5926.6.camel@zakaz.uk.xensource.com>
+From: Ian Campbell <Ian.Campbell@citrix.com>
+To: xen-devel <xen-devel@lists.xen.org>, xen-users <xen-users@lists.xen.org>
+Date: Tue, 14 Aug 2012 10:05:41 +0100
+Organization: Citrix Systems, Inc.
+X-Mailer: Evolution 3.4.3-1 
+MIME-Version: 1.0
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="utf-8"
+Content-Transfer-Encoding: base64
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: [Xen-devel] Xen 4.2 TODO / Release Plan
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+SW5jbHVkaW5nIHhlbi11c2Vyc0AgYXMgd2VsbCBhcyB4ZW4tZGV2ZWxAIG5vdyB0aGF0IHdlIGFy
+ZSBpbnRvIHRoZSByYwpwaGFzZXMuIEFsc28gc2VlIGJlbG93IGZvciBhIHJlbWluZGVyIGFib3V0
+IHRoZSBYZW4gVGVzdCBEYXkgd2hpY2ggaXMKaGFwcGVuaW5nIHJpZ2h0IG5vdy4KClBsYW4gZm9y
+IGEgNC4yIHJlbGVhc2U6Cmh0dHA6Ly9saXN0cy54ZW4ub3JnL2FyY2hpdmVzL2h0bWwveGVuLWRl
+dmVsLzIwMTItMDMvbXNnMDA3OTMuaHRtbAoKVGhlIHRpbWUgbGluZSBpcyBhcyBmb2xsb3dzOgoK
+MTkgTWFyY2ggICAgICAgIC0tIFRPRE8gbGlzdCBsb2NrZWQgZG93bgoyIEFwcmlsICAgICAgICAg
+LS0gRmVhdHVyZSBGcmVlemUKMzAgSnVseSAgICAgICAgIC0tIEZpcnN0IHJlbGVhc2UgY2FuZGlk
+YXRlCldlZWtseSAgICAgICAgICAtLSBSQ04rMSB1bnRpbCByZWxlYXNlICAgICAgICAgIDw8IFdF
+IEFSRSBIRVJFCgpXZSByZWxlYXNlZCBSQzIgbGFzdCB3ZWVrICh0YWcgIjQuMi4wLXJjMiIgaW4g
+eGVuLXVuc3RhYmxlLmhnKS4gVGhlCmZpcnN0IFhlbiB0ZXN0IGRheSBpcyBoYXBwZW5pbmcgcmln
+aHQgbm93IG9uIHRoZSAjeGVudGVzdCBjaGFubmVsIG9uCkZyZWVub2RlLiBUaGUgYWltIG9mIHRo
+aXMgZmlyc3QgdGVzdCBkYXkgaXMgdG8gdGVzdCB0aGUgeGwKdG9vbHN0YWNrLiBTZWUgZm9yIG1v
+cmUgZGV0YWlscyBodHRwOi8vd2lraS54ZW4ub3JnL3dpa2kvWGVuX1Rlc3RfRGF5cwoKVGhlIHVw
+ZGF0ZWQgVE9ETyBsaXN0IGZvbGxvd3MuCgpoeXBlcnZpc29yLCBibG9ja2VyczoKCiAgICAqIE5v
+bmUKCnRvb2xzLCBibG9ja2VyczoKCiAgICAqIGxpYnhsIHN0YWJsZSBBUEkgLS0gd2Ugd291bGQg
+bGlrZSA0LjIgdG8gZGVmaW5lIGEgc3RhYmxlIEFQSQogICAgICB3aGljaCBkb3duc3RyZWFtJ3Mg
+Y2FuIHN0YXJ0IHRvIHJlbHkgb24gbm90IGNoYW5naW5nLiBBc3BlY3RzIG9mCiAgICAgIHRoaXMg
+YXJlOgoKICAgICAgICAqIE5vbmUga25vd24KCiAgICAqIHhsIGNvbXBhdGliaWxpdHkgd2l0aCB4
+bToKCiAgICAgICAgKiBObyBrbm93biBpc3N1ZXMKCiAgICAqIFtDSEVDS10gTW9yZSBmb3JtYWxs
+eSBkZXByZWNhdGUgeG0veGVuZC4gTWFucGFnZSBwYXRjaGVzIGFscmVhZHkKICAgICAgaW4gdHJl
+ZS4gTmVlZHMgcmVsZWFzZSBub3RpbmcgYW5kIGNvbW11bmljYXRpb24gYXJvdW5kIC1yYzEgdG8K
+ICAgICAgcmVtaW5kIHBlb3BsZSB0byB0ZXN0IHhsLgoKICAgICogW0NIRUNLXSBDb25maXJtIHRo
+YXQgbWlncmF0aW9uIGZyb20gWGVuIDQuMSAtPiA0LjIgd29ya3MuCgogICAgKiBCdW1wIGxpYnJh
+cnkgU09OQU1FUyBhcyBuZWNlc3NhcnkuCiAgICAgIDwyMDUwMi4zOTQ0MC45Njk2MTkuODI0OTc2
+QG1hcmluZXIudWsueGVuc291cmNlLmNvbT4KCmh5cGVydmlzb3IsIG5pY2UgdG8gaGF2ZToKCiAg
+ICAqIHZNQ0Ugc2F2ZS9yZXN0b3JlIGNoYW5nZXMsIHRvIHNpbXBsaWZ5IG1pZ3JhdGlvbiA0LjIt
+PjQuMyB3aXRoCiAgICAgIG5ldyB2TUNFIGluIDQuMy4gKEppbnNvbmcgTGl1LCBKYW4gQmV1bGlj
+aCwgRE9ORSBmb3IgNC4yKQoKICAgICogW0JVRyg/KV0gVW5kZXIgY2VydGFpbiBjb25kaXRpb25z
+LCB0aGUgcDJtX3BvZF9zd2VlcCBjb2RlIHdpbGwKICAgICAgc3RvcCBoYWxmd2F5IHRocm91Z2gg
+c2VhcmNoaW5nLCBjYXVzaW5nIGEgZ3Vlc3QgdG8gY3Jhc2ggZXZlbiBpZgogICAgICB0aGVyZSB3
+YXMgemVyb2VkIG1lbW9yeSBhdmFpbGFibGUuICBUaGlzIGlzIE5PVCBhIHJlZ3Jlc3Npb24KICAg
+ICAgZnJvbSA0LjEsIGFuZCBpcyBhIHZlcnkgcmFyZSBjYXNlLCBzbyBwcm9iYWJseSBzaG91bGRu
+J3QgYmUgYQogICAgICBibG9ja2VyLiAgKEluIGZhY3QsIEknZCBiZSBvcGVuIHRvIHRoZSBpZGVh
+IHRoYXQgaXQgc2hvdWxkIHdhaXQKICAgICAgdW50aWwgYWZ0ZXIgdGhlIHJlbGVhc2UgdG8gZ2V0
+IG1vcmUgdGVzdGluZy4pCiAgICAgIAkgICAgKEdlb3JnZSBEdW5sYXApCgogICAgKiBTMyByZWdy
+ZXNzaW9uKHM/KSByZXBvcnRlZCBieSBCZW4gR3V0aHJvIChCZW4gJiBKYW4gQmV1bGljaCkKCiAg
+ICAqIGFkZHJlc3MgUG9EIHByb2JsZW1zIHdpdGggZWFybHkgaG9zdCBzaWRlIGFjY2Vzc2VzIHRv
+IGd1ZXN0CiAgICAgIGFkZHJlc3Mgc3BhY2UgKGRyYWZ0IHBhdGNoIGZvciA0LjAueCBleGlzdHMs
+IG5lZWRzIHRvIGJlIHBvcnRlZAogICAgICBvdmVyIHRvIC11bnN0YWJsZSwgd2hpY2ggSSdsbCBl
+eHBlY3QgdG8gZ2V0IHRvIHRvZGF5LCBKYW4KICAgICAgQmV1bGljaCkKCiAgICAqIGZpeCBoaWdo
+IGNoYW5nZSByYXRlIHRvIENNT1MgUlRDIHBlcmlvZGljIGludGVycnVwdCBjYXVzaW5nCiAgICAg
+IGd1ZXN0IHdhbGwgY2xvY2sgdGltZSB0byBsYWcgKHBvc3NpYmxlIGZpeCBvdXRsaW5lZCwgbmVl
+ZHMgdG8gYmUKICAgICAgcHV0IGluIHBhdGNoIGZvcm0gYW5kIHRob3JvdWdobHkgcmV2aWV3ZWQv
+dGVzdGVkIGZvciB1bndhbnRlZAogICAgICBzaWRlIGVmZmVjdHMsIEphbiBCZXVsaWNoKQoKdG9v
+bHMsIG5pY2UgdG8gaGF2ZToKCiAgICAqIHhsIGNvbXBhdGliaWxpdHkgd2l0aCB4bToKCiAgICAg
+ICAgKiBOb25lCgogICAgKiB4bC5jZmcoNSkgZG9jdW1lbnRhdGlvbiBwYXRjaCBmb3IgcWVtdS11
+cHN0cmVhbQogICAgICB2aWRlb3JhbS92aWRlb21lbSBzdXBwb3J0OgogICAgICBodHRwOi8vbGlz
+dHMueGVuLm9yZy9hcmNoaXZlcy9odG1sL3hlbi1kZXZlbC8yMDEyLTA1L21zZzAwMjUwLmh0bWwK
+ICAgICAgcWVtdS11cHN0cmVhbSBkb2Vzbid0IHN1cHBvcnQgc3BlY2lmeWluZyB2aWRlb21lbSBz
+aXplIGZvciB0aGUKICAgICAgSFZNIGd1ZXN0IGNpcnJ1cy9zdGR2Z2EuICAoYnV0IHRoaXMgd29y
+a3Mgd2l0aAogICAgICBxZW11LXhlbi10cmFkaXRpb25hbCkuIChQYXNpIEvDpHJra8OkaW5lbikK
+CiAgICAqIFtCVUddIGxvbmcgc3RvcCBkdXJpbmcgdGhlIGd1ZXN0IGJvb3QgcHJvY2VzcyB3aXRo
+IHFjb3cgaW1hZ2UsCiAgICAgIHJlcG9ydGVkIGJ5IEludGVsOiBodHRwOi8vYnVnemlsbGEueGVu
+Lm9yZy9idWd6aWxsYS9zaG93X2J1Zy5jZ2k/aWQ9MTgyMQoKICAgICogW0JVR10gdmNwdS1zZXQg
+ZG9lc24ndCB0YWtlIGVmZmVjdCBvbiBndWVzdCwgcmVwb3J0ZWQgYnkgSW50ZWw6CiAgICAgIGh0
+dHA6Ly9idWd6aWxsYS54ZW4ub3JnL2J1Z3ppbGxhL3Nob3dfYnVnLmNnaT9pZD0xODIyCgogICAg
+KiBMb2FkIGJsa3RhcCBkcml2ZXIgZnJvbSB4ZW5jb21tb25zIGluaXRzY3JpcHQgaWYgYXZhaWxh
+YmxlLCB0aHJlYWQgYXQ6CiAgICAgIDxkYjYxNGU5MmZhZjc0M2UyMGIzZi4xMzM3MDk2OTc3QGtv
+ZG8yPi4gVG8gYmUgZml4ZWQgbW9yZQogICAgICBwcm9wZXJseSBpbiA0LjMuIChQYXRjaCBwb3N0
+ZWQsIGRpc2N1c3Npb24sIHBsYW4gdG8gdGFrZSBzaW1wbGUKICAgICAgeGVuY29tbW9ucyBwYXRj
+aCBmb3IgNC4yIGFuZCByZXZpc3QgZm9yIDQuMy4gUGluZyBzZW50KQoKICAgICogW0JVR10geGwg
+YWxsb3dzIHNhbWUgUENJIGRldmljZSB0byBiZSBhc3NpZ25lZCB0byBtdWx0aXBsZQogICAgICBn
+dWVzdHMuIGh0dHA6Ly9idWd6aWxsYS54ZW4ub3JnL2J1Z3ppbGxhL3Nob3dfYnVnLmNnaT9pZD0x
+ODI2CiAgICAgICg8RTQ1NThDMEM5NjY4ODc0ODgzN0VCMUIwNUJFRUQ3NUEwRkQ1NTc0QUBTSFNN
+U1gxMDIuY2NyLmNvcnAuaW50ZWwuY29tPikKCiAgICAqIFtCVUcoPyldIElmIGRvbWFpbiAwIGF0
+dGVtcHRzIHRvIGFjY2VzcyBhIGd1ZXN0cycgbWVtb3J5IGJlZm9yZQogICAgICBpdCBpcyBmaW5p
+c2hlZCBiZWluZyBidWlsdCwgYW5kIGl0IGlzIGJlaW5nIGJ1aWx0IGluIFBvRCBtb2RlLAogICAg
+ICB0aGlzIG1heSBjYXVzZSB0aGUgZ3Vlc3QgdG8gY3Jhc2guICBBZ2FpbiwgdGhpcyBpcyBOT1Qg
+YQogICAgICByZWdyZXNzaW9uIGZyb20gNC4xLiAgRnVydGhlcm1vcmUsIGl0J3Mgb25seSBiZWVu
+IHJlcG9ydGVkCiAgICAgIChBSVVJKSBieSBhIGN1c3RvbWVyIG9mIFN1U0U7IHNvIGl0IHNob3Vk
+bid0IGJlIGEgYmxvY2tlci4KICAgICAgKEFnYWluLCBJJ2QgYmUgb3BlbiB0byB0aGUgaWRlYSB0
+aGF0IGl0IHNob3VsZCB3YWl0IHVudGlsIGFmdGVyCiAgICAgIHRoZSByZWxlYXNlIHRvIGdldCBt
+b3JlIHRlc3RpbmcuKQogICAgICAJICAoR2VvcmdlIER1bmxhcCAvIEphbiBCZXVsaWNoKQoKCgpf
+X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwg
+bWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHA6Ly9saXN0cy54ZW4ub3Jn
+L3hlbi1kZXZlbAo=
+
diff --git a/config/examples/test/corpus/<1344947062-4796-1-git-send-email-attilio.rao@citrix.com> b/config/examples/test/corpus/<1344947062-4796-1-git-send-email-attilio.rao@citrix.com>
new file mode 100644 (file)
index 0000000..c33af87
--- /dev/null
@@ -0,0 +1,104 @@
+From xen-devel-bounces@lists.xen.org Tue Aug 14 13:41:05 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Tue, 14 Aug 2012 13:41:05 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T1GQf-0005Jj-Ua
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 14 Aug 2012 13:41:05 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T1GMg-0007zt-8T; Tue, 14 Aug 2012 12:36:54 +0000
+Received: from mail27.messagelabs.com ([193.109.254.147])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <attilio.rao@citrix.com>) id 1T1GMe-0007zW-6U
+       for xen-devel@lists.xen.org; Tue, 14 Aug 2012 12:36:52 +0000
+X-Env-Sender: attilio.rao@citrix.com
+X-Msg-Ref: server-15.tower-27.messagelabs.com!1344947803!1813066!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDkwNzc=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 13977 invoked from network); 14 Aug 2012 12:36:44 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-15.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
+       14 Aug 2012 12:36:44 -0000
+X-IronPort-AV: E=Sophos;i="4.77,766,1336348800"; d="scan'208";a="14002294"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       14 Aug 2012 12:36:43 +0000
+Received: from dhcp-3-145.uk.xensource.com (10.80.3.221) by
+       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
+       8.3.213.0; Tue, 14 Aug 2012 13:36:42 +0100
+From: Attilio Rao <attilio.rao@citrix.com>
+To: <xen-devel@lists.xen.org>, Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>, 
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+Date: Tue, 14 Aug 2012 13:24:20 +0100
+Message-ID: <1344947062-4796-1-git-send-email-attilio.rao@citrix.com>
+X-Mailer: git-send-email 1.7.2.5
+MIME-Version: 1.0
+Cc: Attilio Rao <attilio.rao@citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD autolearn=ham version=3.3.1
+Subject: [Xen-devel] [PATCH v2 0/2] XEN/X86: Document pagetable_reserve
+       PVOPS and enforce a better semantic
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+When looking for documenting the pagetable_reserve PVOPS, I realized that it
+assumes start == pgt_buf_start. I think this is not semantically right
+(even if with the current code this should not be a problem in practice) and
+what we really want is to extend the logic in order to do the RO -> RW
+convertion also for the range [pgt_buf_start, start).
+This patch then implements this missing conversion, adding some smaller
+cleanups and finally provides documentation for the PVOPS.
+Please look at 2/2 for more details on how the comment is structured.
+If we get this right we will have a reference to be used later on for others
+PVOPS.
+
+The difference with v1 is that sh_start local variable in
+xen_mapping_pagetable_reserve() is renamed as begin. Also, the commit messages
+have been tweaked.
+
+Attilio Rao (2):
+  XEN, X86: Improve semantic support for pagetable_reserve PVOPS
+  Xen: Document the semantic of the pagetable_reserve PVOPS
+
+ arch/x86/include/asm/x86_init.h |   19 +++++++++++++++++--
+ arch/x86/mm/init.c              |    4 ++++
+ arch/x86/xen/mmu.c              |   22 ++++++++++++++++++++--
+ 3 files changed, 41 insertions(+), 4 deletions(-)
+
+-- 
+1.7.2.5
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1344947062-4796-2-git-send-email-attilio.rao@citrix.com> b/config/examples/test/corpus/<1344947062-4796-2-git-send-email-attilio.rao@citrix.com>
new file mode 100644 (file)
index 0000000..44a751c
--- /dev/null
@@ -0,0 +1,150 @@
+From xen-devel-bounces@lists.xen.org Tue Aug 14 13:41:09 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Tue, 14 Aug 2012 13:41:09 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T1GQk-0005Jm-0R
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 14 Aug 2012 13:41:09 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T1GMe-0007zi-S9; Tue, 14 Aug 2012 12:36:52 +0000
+Received: from mail27.messagelabs.com ([193.109.254.147])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <attilio.rao@citrix.com>) id 1T1GMd-0007zV-4F
+       for xen-devel@lists.xen.org; Tue, 14 Aug 2012 12:36:51 +0000
+X-Env-Sender: attilio.rao@citrix.com
+X-Msg-Ref: server-15.tower-27.messagelabs.com!1344947803!1813066!2
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDkwNzc=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 14045 invoked from network); 14 Aug 2012 12:36:44 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-15.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
+       14 Aug 2012 12:36:44 -0000
+X-IronPort-AV: E=Sophos;i="4.77,766,1336348800"; d="scan'208";a="14002295"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       14 Aug 2012 12:36:44 +0000
+Received: from dhcp-3-145.uk.xensource.com (10.80.3.221) by
+       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
+       8.3.213.0; Tue, 14 Aug 2012 13:36:44 +0100
+From: Attilio Rao <attilio.rao@citrix.com>
+To: <xen-devel@lists.xen.org>, Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>, 
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+Date: Tue, 14 Aug 2012 13:24:21 +0100
+Message-ID: <1344947062-4796-2-git-send-email-attilio.rao@citrix.com>
+X-Mailer: git-send-email 1.7.2.5
+In-Reply-To: <1344947062-4796-1-git-send-email-attilio.rao@citrix.com>
+References: <1344947062-4796-1-git-send-email-attilio.rao@citrix.com>
+MIME-Version: 1.0
+Cc: Attilio Rao <attilio.rao@citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD autolearn=ham version=3.3.1
+Subject: [Xen-devel] [PATCH v2 1/2] XEN,
+       X86: Improve semantic support for pagetable_reserve PVOPS
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+- Allow xen_mapping_pagetable_reserve() to handle a start different from
+  pgt_buf_start, but still bigger than it.
+- Add checks to xen_mapping_pagetable_reserve() and native_pagetable_reserve()
+  for verifying start and end are contained in the range
+  [pgt_buf_start, pgt_buf_top].
+- In xen_mapping_pagetable_reserve(), change printk into pr_debug.
+- In xen_mapping_pagetable_reserve(), print out diagnostic only if there is
+  an actual need to do that (or, in other words, if there are actually some
+  pages going to switch from RO to RW).
+
+Signed-off-by: Attilio Rao <attilio.rao@citrix.com>
+---
+ arch/x86/mm/init.c |    4 ++++
+ arch/x86/xen/mmu.c |   22 ++++++++++++++++++++--
+ 2 files changed, 24 insertions(+), 2 deletions(-)
+
+diff --git a/arch/x86/mm/init.c b/arch/x86/mm/init.c
+index e0e6990..c5849b6 100644
+--- a/arch/x86/mm/init.c
++++ b/arch/x86/mm/init.c
+@@ -92,6 +92,10 @@ static void __init find_early_table_space(struct map_range *mr, unsigned long en
+ void __init native_pagetable_reserve(u64 start, u64 end)
+ {
++      if (start < PFN_PHYS(pgt_buf_start) || end > PFN_PHYS(pgt_buf_top))
++              panic("Invalid address range: [%llu - %llu] should be a subset of [%llu - %llu]\n"
++                      start, end, PFN_PHYS(pgt_buf_start),
++                      PFN_PHYS(pgt_buf_top));
+       memblock_reserve(start, end - start);
+ }
+diff --git a/arch/x86/xen/mmu.c b/arch/x86/xen/mmu.c
+index b65a761..66d73a2 100644
+--- a/arch/x86/xen/mmu.c
++++ b/arch/x86/xen/mmu.c
+@@ -1180,12 +1180,30 @@ static void __init xen_pagetable_setup_start(pgd_t *base)
+ static __init void xen_mapping_pagetable_reserve(u64 start, u64 end)
+ {
++      u64 begin;
++
++      begin = PFN_PHYS(pgt_buf_start);
++
++      if (start < begin || end > PFN_PHYS(pgt_buf_top))
++              panic("Invalid address range: [%llu - %llu] should be a subset of [%llu - %llu]\n"
++                      start, end, begin, PFN_PHYS(pgt_buf_top));
++
++      /* set RW the initial range */
++      if  (start != begin)
++              pr_debug("xen: setting RW the range %llx - %llx\n",
++                      begin, start);
++      while (begin < start) {
++              make_lowmem_page_readwrite(__va(begin));
++              begin += PAGE_SIZE;
++      }
++
+       /* reserve the range used */
+       native_pagetable_reserve(start, end);
+       /* set as RW the rest */
+-      printk(KERN_DEBUG "xen: setting RW the range %llx - %llx\n", end,
+-                      PFN_PHYS(pgt_buf_top));
++      if (end != PFN_PHYS(pgt_buf_top))
++              pr_debug("xen: setting RW the range %llx - %llx\n",
++                      end, PFN_PHYS(pgt_buf_top));
+       while (end < PFN_PHYS(pgt_buf_top)) {
+               make_lowmem_page_readwrite(__va(end));
+               end += PAGE_SIZE;
+-- 
+1.7.2.5
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1344947062-4796-3-git-send-email-attilio.rao@citrix.com> b/config/examples/test/corpus/<1344947062-4796-3-git-send-email-attilio.rao@citrix.com>
new file mode 100644 (file)
index 0000000..1b9f2c4
--- /dev/null
@@ -0,0 +1,123 @@
+From xen-devel-bounces@lists.xen.org Tue Aug 14 13:41:07 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Tue, 14 Aug 2012 13:41:07 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T1GQj-0005Jl-GD
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 14 Aug 2012 13:41:07 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T1GMg-000800-KZ; Tue, 14 Aug 2012 12:36:54 +0000
+Received: from mail27.messagelabs.com ([193.109.254.147])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <attilio.rao@citrix.com>) id 1T1GMe-0007zX-Ep
+       for xen-devel@lists.xen.org; Tue, 14 Aug 2012 12:36:52 +0000
+X-Env-Sender: attilio.rao@citrix.com
+X-Msg-Ref: server-15.tower-27.messagelabs.com!1344947803!1813066!3
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDkwNzc=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 14233 invoked from network); 14 Aug 2012 12:36:46 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-15.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
+       14 Aug 2012 12:36:46 -0000
+X-IronPort-AV: E=Sophos;i="4.77,766,1336348800"; d="scan'208";a="14002296"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       14 Aug 2012 12:36:46 +0000
+Received: from dhcp-3-145.uk.xensource.com (10.80.3.221) by
+       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
+       8.3.213.0; Tue, 14 Aug 2012 13:36:45 +0100
+From: Attilio Rao <attilio.rao@citrix.com>
+To: <xen-devel@lists.xen.org>, Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>, 
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+Date: Tue, 14 Aug 2012 13:24:22 +0100
+Message-ID: <1344947062-4796-3-git-send-email-attilio.rao@citrix.com>
+X-Mailer: git-send-email 1.7.2.5
+In-Reply-To: <1344947062-4796-1-git-send-email-attilio.rao@citrix.com>
+References: <1344947062-4796-1-git-send-email-attilio.rao@citrix.com>
+MIME-Version: 1.0
+Cc: Attilio Rao <attilio.rao@citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD autolearn=ham version=3.3.1
+Subject: [Xen-devel] [PATCH v2 2/2] Xen: Document the semantic of the
+       pagetable_reserve PVOPS
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+The informations added on the hook are:
+- Native behaviour
+- Xen specific behaviour
+- Logic behind the Xen specific behaviour
+- PVOPS semantic
+
+Signed-off-by: Attilio Rao <attilio.rao@citrix.com>
+---
+ arch/x86/include/asm/x86_init.h |   19 +++++++++++++++++--
+ 1 files changed, 17 insertions(+), 2 deletions(-)
+
+diff --git a/arch/x86/include/asm/x86_init.h b/arch/x86/include/asm/x86_init.h
+index 38155f6..b22093c 100644
+--- a/arch/x86/include/asm/x86_init.h
++++ b/arch/x86/include/asm/x86_init.h
+@@ -72,8 +72,23 @@ struct x86_init_oem {
+  * struct x86_init_mapping - platform specific initial kernel pagetable setup
+  * @pagetable_reserve:        reserve a range of addresses for kernel pagetable usage
+  *
+- * For more details on the purpose of this hook, look in
+- * init_memory_mapping and the commit that added it.
++ * It does reserve a range of pages, to be used as pagetable pages.
++ * The start and end parameters are expected to be contained in the
++ * [pgt_buf_start, pgt_buf_top] range.
++ * The native implementation reserves the pages via the memblock_reserve()
++ * interface.
++ * The Xen implementation, besides reserving the range via memblock_reserve(),
++ * also sets RW the remaining pages contained in the ranges
++ * [pgt_buf_start, start) and [end, pgt_buf_top).
++ * This is needed because the range [pgt_buf_start, pgt_buf_top] was
++ * previously mapped read-only by xen_set_pte_init: when running
++ * on Xen all the pagetable pages need to be mapped read-only in order to
++ * avoid protection faults from the hypervisor. However, once the correct
++ * amount of pages is reserved for the pagetables, all the others contained
++ * in the range must be set to RW so that they can be correctly recycled by
++ * the VM subsystem.
++ * This operation is meant to be performed only during init_memory_mapping(),
++ * just after space for the kernel direct mapping tables is found.
+  */
+ struct x86_init_mapping {
+       void (*pagetable_reserve)(u64 start, u64 end);
+-- 
+1.7.2.5
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1344949075.5926.29.camel@zakaz.uk.xensource.com> b/config/examples/test/corpus/<1344949075.5926.29.camel@zakaz.uk.xensource.com>
new file mode 100644 (file)
index 0000000..5b97a08
--- /dev/null
@@ -0,0 +1,106 @@
+From xen-devel-bounces@lists.xen.org Tue Aug 14 14:02:24 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Tue, 14 Aug 2012 14:02:24 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T1GlF-0005Pr-PS
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 14 Aug 2012 14:02:24 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T1Ghg-00007K-VR; Tue, 14 Aug 2012 12:58:36 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1T1Ghf-000077-Dt
+       for xen-devel@lists.xen.org; Tue, 14 Aug 2012 12:58:35 +0000
+Received: from [85.158.143.99:26465] by server-1.bemta-4.messagelabs.com id
+       40/DF-07754-A7B4A205; Tue, 14 Aug 2012 12:58:34 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-16.tower-216.messagelabs.com!1344949112!16916815!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDkwNzc=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 18784 invoked from network); 14 Aug 2012 12:58:32 -0000
+Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-16.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
+       14 Aug 2012 12:58:32 -0000
+X-IronPort-AV: E=Sophos;i="4.77,766,1336348800"; d="scan'208";a="14002763"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       14 Aug 2012 12:57:57 +0000
+Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0;
+       Tue, 14 Aug 2012 13:57:57 +0100
+Message-ID: <1344949075.5926.29.camel@zakaz.uk.xensource.com>
+From: Ian Campbell <Ian.Campbell@citrix.com>
+To: Dieter Bloms <xensource.com@bloms.de>
+Date: Tue, 14 Aug 2012 13:57:55 +0100
+In-Reply-To: <20120814100704.GA19704@bloms.de>
+References: <1344935141.5926.6.camel@zakaz.uk.xensource.com>
+       <20120814100704.GA19704@bloms.de>
+Organization: Citrix Systems, Inc.
+X-Mailer: Evolution 3.4.3-1 
+MIME-Version: 1.0
+Cc: "xen-users@lists.xen.org" <xen-users@lists.xen.org>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [Xen-users] Xen 4.2 TODO (io and irq parameter are
+ not evaluated by xl)
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Tue, 2012-08-14 at 11:07 +0100, Dieter Bloms wrote:
+> Hi,
+> 
+> On Tue, Aug 14, Ian Campbell wrote:
+> 
+> > tools, blockers:
+> > 
+> >     * xl compatibility with xm:
+> > 
+> >         * No known issues
+> 
+> the parameter io and irq in domU config files are not evaluated by xl.
+> So it is not possible to passthrough a parallel port for my printer to
+> domU when I start the domU with xl command.
+> With xm I have no issue.
+
+Thanks, I have added this as a nice to have issue. I'll try and look at
+it soon unless someone else gets there first.
+
+Ian.
+
+
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1344949140.5926.30.camel@zakaz.uk.xensource.com> b/config/examples/test/corpus/<1344949140.5926.30.camel@zakaz.uk.xensource.com>
new file mode 100644 (file)
index 0000000..e169be1
--- /dev/null
@@ -0,0 +1,95 @@
+From xen-devel-bounces@lists.xen.org Tue Aug 14 14:02:42 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Tue, 14 Aug 2012 14:02:42 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T1GlX-0005QF-U8
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 14 Aug 2012 14:02:42 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T1GiB-0000AW-0W; Tue, 14 Aug 2012 12:59:07 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1T1Gi9-0000AE-93
+       for xen-devel@lists.xen.org; Tue, 14 Aug 2012 12:59:05 +0000
+Received: from [85.158.139.83:4816] by server-2.bemta-5.messagelabs.com id
+       CC/10-10142-89B4A205; Tue, 14 Aug 2012 12:59:04 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-8.tower-182.messagelabs.com!1344949142!16797666!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDkwNzc=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 17262 invoked from network); 14 Aug 2012 12:59:02 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-8.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
+       14 Aug 2012 12:59:02 -0000
+X-IronPort-AV: E=Sophos;i="4.77,766,1336348800"; d="scan'208";a="14002807"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       14 Aug 2012 12:59:02 +0000
+Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0;
+       Tue, 14 Aug 2012 13:59:02 +0100
+Message-ID: <1344949140.5926.30.camel@zakaz.uk.xensource.com>
+From: Ian Campbell <Ian.Campbell@citrix.com>
+To: Pasi =?ISO-8859-1?Q?K=E4rkk=E4inen?= <pasik@iki.fi>
+Date: Tue, 14 Aug 2012 13:59:00 +0100
+In-Reply-To: <20120814102039.GY19851@reaktio.net>
+References: <1344935141.5926.6.camel@zakaz.uk.xensource.com>
+       <20120814101822.GX19851@reaktio.net>
+       <20120814102039.GY19851@reaktio.net>
+Organization: Citrix Systems, Inc.
+X-Mailer: Evolution 3.4.3-1 
+MIME-Version: 1.0
+Cc: Keir Fraser <keir@xen.org>, xen-devel <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="utf-8"
+Content-Transfer-Encoding: base64
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] Xen 4.2 TODO / Release Plan / ipxe gcc 4.7
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+KGFkZGluZyBLZWlyIGFuZCBkcm9wcGluZyB4bmUtdXNlcnNAKQoKT24gVHVlLCAyMDEyLTA4LTE0
+IGF0IDExOjIwICswMTAwLCBQYXNpIEvDpHJra8OkaW5lbiB3cm90ZToKPiBPbiBUdWUsIEF1ZyAx
+NCwgMjAxMiBhdCAwMToxODoyMlBNICswMzAwLCBQYXNpIEvDpHJra8OkaW5lbiB3cm90ZToKPiA+
+IE9uIFR1ZSwgQXVnIDE0LCAyMDEyIGF0IDEwOjA1OjQxQU0gKzAxMDAsIElhbiBDYW1wYmVsbCB3
+cm90ZToKPiA+ID4gCj4gPiA+IHRvb2xzLCBuaWNlIHRvIGhhdmU6Cj4gPiA+IAo+ID4gCj4gPiAq
+IGZpeCBpcHhlIGJ1aWxkIHByb2JsZW1zIHdpdGggZ2NjIDQuNyAoZmVkb3JhIDE3KS4KPiA+ICAg
+VGhlIGZvbGxvd2luZyBmaWxlcyBmYWlsIHRvIGJ1aWxkOgo+ID4gCS0gaXB4ZS9zcmMvZHJpdmVy
+cy9idXMvaXNhLmMKPiA+IAktIGlweGUvc3JjL2RyaXZlcnMvbmV0L215cmkxMGdlLmMKPiA+IAkt
+IGlweGUvc3JjL2RyaXZlcnMvaW5maW5pYmFuZC9xaWI3MzIyLmMKPiA+ICAgUGF0Y2hlcyBoYXZl
+IGJlZW4gcG9zdGVkIHRvIGlweGUtZGV2ZWwgbWFpbGluZ2xpc3QsCj4gPiAgIHNvIHdlIG5lZWQg
+dG8gdXBkYXRlIG91ciBpcHhlIHZlcnNpb24gb3IgZ3JhYiB0aGUgcGF0Y2hlcy4KPiA+IAo+IAo+
+IEFuZCB0aGUgbmVlZGVkIHBhdGNoZXMgYXJlIGxpc3RlZCBoZXJlOiBodHRwOi8vbGlzdHMueGVu
+Lm9yZy9hcmNoaXZlcy9odG1sL3hlbi1kZXZlbC8yMDEyLTA4L21zZzAxMDQ4Lmh0bWwKCkkgdGhp
+bmsgdGFraW5nIHRoZSBpbmRpdmlkdWFsIHBhdGNoZXMgd291bGQgYmUgbW9yZSBzZW5zaWJsZSB0
+aGFuIGEKd2hvbGVzYWxlIHJlZnJlc2ggYXQgdGhpcyBzdGFnZSwgS2Vpcj8KCk5COiBJIGRpZG4n
+dCBhY3R1YWxseSBsb29rIGF0IHRoZSBwYXRjaGVzLi4uCgpJYW4uCgoKX19fX19fX19fX19fX19f
+X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApY
+ZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK
+
diff --git a/config/examples/test/corpus/<1345056190.12434.34.camel@dagon.hellion.org.uk> b/config/examples/test/corpus/<1345056190.12434.34.camel@dagon.hellion.org.uk>
new file mode 100644 (file)
index 0000000..fd464dd
--- /dev/null
@@ -0,0 +1,141 @@
+From xen-devel-bounces@lists.xen.org Wed Aug 15 19:48:56 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 15 Aug 2012 19:48:56 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T1ieE-0007dW-Bb
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 15 Aug 2012 19:48:56 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T1iYy-0005ur-2m; Wed, 15 Aug 2012 18:43:28 +0000
+Received: from mail27.messagelabs.com ([193.109.254.147])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1T1iYw-0005um-3T
+       for xen-devel@lists.xen.org; Wed, 15 Aug 2012 18:43:26 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-12.tower-27.messagelabs.com!1345056192!8573061!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDkxOTE=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 20498 invoked from network); 15 Aug 2012 18:43:12 -0000
+Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-12.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
+       15 Aug 2012 18:43:12 -0000
+X-IronPort-AV: E=Sophos;i="4.77,774,1336348800"; d="scan'208";a="14025676"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       15 Aug 2012 18:43:11 +0000
+Received: from [127.0.0.1] (10.80.16.67) by smtprelay.citrix.com
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0;
+       Wed, 15 Aug 2012 19:43:11 +0100
+Message-ID: <1345056190.12434.34.camel@dagon.hellion.org.uk>
+From: Ian Campbell <Ian.Campbell@citrix.com>
+To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+Date: Wed, 15 Aug 2012 19:43:10 +0100
+In-Reply-To: <alpine.DEB.2.02.1208151844230.2278@kaball.uk.xensource.com>
+References: <1344947062-4796-1-git-send-email-attilio.rao@citrix.com>
+       <1344947062-4796-2-git-send-email-attilio.rao@citrix.com>
+       <alpine.DEB.2.02.1208151824250.2278@kaball.uk.xensource.com>
+       <502BD943.8030701@citrix.com>
+       <alpine.DEB.2.02.1208151844230.2278@kaball.uk.xensource.com>
+Organization: Citrix Systems, Inc.
+X-Mailer: Evolution 3.4.3-1 
+MIME-Version: 1.0
+Cc: Attilio Rao <attilio.rao@citrix.com>,
+       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH v2 1/2] XEN,
+ X86: Improve semantic support for pagetable_reserve PVOPS
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Wed, 2012-08-15 at 18:46 +0100, Stefano Stabellini wrote:
+> On Wed, 15 Aug 2012, Attilio Rao wrote:
+> > On 15/08/12 18:25, Stefano Stabellini wrote:
+> > > On Tue, 14 Aug 2012, Attilio Rao wrote:
+> > >    
+> > >> - Allow xen_mapping_pagetable_reserve() to handle a start different from
+> > >>    pgt_buf_start, but still bigger than it.
+> > >> - Add checks to xen_mapping_pagetable_reserve() and native_pagetable_reserve()
+> > >>    for verifying start and end are contained in the range
+> > >>    [pgt_buf_start, pgt_buf_top].
+> > >> - In xen_mapping_pagetable_reserve(), change printk into pr_debug.
+> > >> - In xen_mapping_pagetable_reserve(), print out diagnostic only if there is
+> > >>    an actual need to do that (or, in other words, if there are actually some
+> > >>    pages going to switch from RO to RW).
+> > >>
+> > >> Signed-off-by: Attilio Rao<attilio.rao@citrix.com>
+> > >> ---
+> > >>   arch/x86/mm/init.c |    4 ++++
+> > >>   arch/x86/xen/mmu.c |   22 ++++++++++++++++++++--
+> > >>   2 files changed, 24 insertions(+), 2 deletions(-)
+> > >>
+> > >> diff --git a/arch/x86/mm/init.c b/arch/x86/mm/init.c
+> > >> index e0e6990..c5849b6 100644
+> > >> --- a/arch/x86/mm/init.c
+> > >> +++ b/arch/x86/mm/init.c
+> > >> @@ -92,6 +92,10 @@ static void __init find_early_table_space(struct map_range *mr, unsigned long en
+> > >>
+> > >>   void __init native_pagetable_reserve(u64 start, u64 end)
+> > >>   {
+> > >> +       if (start<  PFN_PHYS(pgt_buf_start) || end>  PFN_PHYS(pgt_buf_top))
+> > >> +               panic("Invalid address range: [%llu - %llu] should be a subset of [%llu - %llu]\n"
+> > >>      
+> > > code style (you can check whether your patch breaks the code style with
+> > > scripts/checkpatch.pl)
+> > >    
+> > 
+> > I actually did before to submit, it reported 0 errors/warning.
+> 
+> strange, that really looks like a line over 80 chars
+
+Also there should be one space either side of the "<" and ">" in the
+conditional.
+
+> 
+> 
+> > Do you have an handy link on where I can find a style guide for Linux 
+> > kernel? I tried to follow what other parts of the code do.
+> 
+> Documentation/CodingStyle
+> 
+> _______________________________________________
+> Xen-devel mailing list
+> Xen-devel@lists.xen.org
+> http://lists.xen.org/xen-devel
+
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1345104759.27489.7.camel@zakaz.uk.xensource.com> b/config/examples/test/corpus/<1345104759.27489.7.camel@zakaz.uk.xensource.com>
new file mode 100644 (file)
index 0000000..ce5bec7
--- /dev/null
@@ -0,0 +1,153 @@
+From xen-devel-bounces@lists.xen.org Thu Aug 16 09:16:54 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 16 Aug 2012 09:16:54 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T1vG4-00061q-5Z
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 16 Aug 2012 09:16:53 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T1vCC-0002Uh-E0; Thu, 16 Aug 2012 08:12:48 +0000
+Received: from mail27.messagelabs.com ([193.109.254.147])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1T1vCA-0002UF-UC
+       for xen-devel@lists.xen.org; Thu, 16 Aug 2012 08:12:47 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-8.tower-27.messagelabs.com!1345104760!9587939!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDkxOTE=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 26412 invoked from network); 16 Aug 2012 08:12:41 -0000
+Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-8.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
+       16 Aug 2012 08:12:41 -0000
+X-IronPort-AV: E=Sophos;i="4.77,778,1336348800"; d="scan'208";a="14033193"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       16 Aug 2012 08:12:40 +0000
+Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0;
+       Thu, 16 Aug 2012 09:12:40 +0100
+Message-ID: <1345104759.27489.7.camel@zakaz.uk.xensource.com>
+From: Ian Campbell <Ian.Campbell@citrix.com>
+To: Attilio Rao <attilio.rao@citrix.com>
+Date: Thu, 16 Aug 2012 09:12:39 +0100
+In-Reply-To: <502BEEAD.7030906@citrix.com>
+References: <1344947062-4796-1-git-send-email-attilio.rao@citrix.com>
+       <1344947062-4796-2-git-send-email-attilio.rao@citrix.com>
+       <alpine.DEB.2.02.1208151824250.2278@kaball.uk.xensource.com>
+       <502BD943.8030701@citrix.com>
+       <alpine.DEB.2.02.1208151844230.2278@kaball.uk.xensource.com>
+       <502BEEAD.7030906@citrix.com>
+Organization: Citrix Systems, Inc.
+X-Mailer: Evolution 3.4.3-1 
+MIME-Version: 1.0
+Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH v2 1/2] XEN,
+ X86: Improve semantic support for pagetable_reserve PVOPS
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Wed, 2012-08-15 at 19:47 +0100, Attilio Rao wrote:
+> On 15/08/12 18:46, Stefano Stabellini wrote:
+> > On Wed, 15 Aug 2012, Attilio Rao wrote:
+> >    
+> >> On 15/08/12 18:25, Stefano Stabellini wrote:
+> >>      
+> >>> On Tue, 14 Aug 2012, Attilio Rao wrote:
+> >>>
+> >>>        
+> >>>> - Allow xen_mapping_pagetable_reserve() to handle a start different from
+> >>>>     pgt_buf_start, but still bigger than it.
+> >>>> - Add checks to xen_mapping_pagetable_reserve() and native_pagetable_reserve()
+> >>>>     for verifying start and end are contained in the range
+> >>>>     [pgt_buf_start, pgt_buf_top].
+> >>>> - In xen_mapping_pagetable_reserve(), change printk into pr_debug.
+> >>>> - In xen_mapping_pagetable_reserve(), print out diagnostic only if there is
+> >>>>     an actual need to do that (or, in other words, if there are actually some
+> >>>>     pages going to switch from RO to RW).
+> >>>>
+> >>>> Signed-off-by: Attilio Rao<attilio.rao@citrix.com>
+> >>>> ---
+> >>>>    arch/x86/mm/init.c |    4 ++++
+> >>>>    arch/x86/xen/mmu.c |   22 ++++++++++++++++++++--
+> >>>>    2 files changed, 24 insertions(+), 2 deletions(-)
+> >>>>
+> >>>> diff --git a/arch/x86/mm/init.c b/arch/x86/mm/init.c
+> >>>> index e0e6990..c5849b6 100644
+> >>>> --- a/arch/x86/mm/init.c
+> >>>> +++ b/arch/x86/mm/init.c
+> >>>> @@ -92,6 +92,10 @@ static void __init find_early_table_space(struct map_range *mr, unsigned long en
+> >>>>
+> >>>>    void __init native_pagetable_reserve(u64 start, u64 end)
+> >>>>    {
+> >>>> +       if (start<   PFN_PHYS(pgt_buf_start) || end>   PFN_PHYS(pgt_buf_top))
+> >>>> +               panic("Invalid address range: [%llu - %llu] should be a subset of [%llu - %llu]\n"
+> >>>>
+> >>>>          
+> >>> code style (you can check whether your patch breaks the code style with
+> >>> scripts/checkpatch.pl)
+> >>>
+> >>>        
+> >> I actually did before to submit, it reported 0 errors/warning.
+> >>      
+> > strange, that really looks like a line over 80 chars
+> >
+> >    
+> 
+> Actually code style explicitely says to not break strings because they 
+> want to retain the ability to grep. In FreeBSD this is the same and I 
+> think this is why checkpatch doesn't whine. I don't think there is a bug 
+> here.
+
+Right, CodingStyle changed a little while ago from a strict 80 column
+limit to just strongly preferred 80 columns with an explicit exception
+for user visible strings.
+
+> 
+> Can I submit the patch as it is, then?
+> 
+> Attilio
+> 
+> _______________________________________________
+> Xen-devel mailing list
+> Xen-devel@lists.xen.org
+> http://lists.xen.org/xen-devel
+
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1345128612-10323-1-git-send-email-stefano.stabellini@eu.citrix.com> b/config/examples/test/corpus/<1345128612-10323-1-git-send-email-stefano.stabellini@eu.citrix.com>
new file mode 100644 (file)
index 0000000..810b709
--- /dev/null
@@ -0,0 +1,220 @@
+From xen-devel-bounces@lists.xen.org Thu Aug 16 15:54:00 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 16 Aug 2012 15:54:00 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T21SM-0007Zk-68
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 16 Aug 2012 15:53:59 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T21P3-000613-MZ; Thu, 16 Aug 2012 14:50:29 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1T21P1-00060Z-OS
+       for xen-devel@lists.xensource.com; Thu, 16 Aug 2012 14:50:27 +0000
+Received: from [85.158.139.83:45260] by server-2.bemta-5.messagelabs.com id
+       36/88-10142-2B80D205; Thu, 16 Aug 2012 14:50:26 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-7.tower-182.messagelabs.com!1345128622!24543670!3
+X-Originating-IP: [66.165.176.63]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyNzE3OTY=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 25383 invoked from network); 16 Aug 2012 14:50:25 -0000
+Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
+       by server-7.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
+       16 Aug 2012 14:50:25 -0000
+X-IronPort-AV: E=Sophos;i="4.77,778,1336363200"; d="scan'208";a="205378343"
+Received: from ftlpmailmx01.citrite.net ([10.13.107.65])
+       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       16 Aug 2012 10:50:21 -0400
+Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
+       (10.13.107.65) with Microsoft SMTP Server id 8.3.213.0;
+       Thu, 16 Aug 2012 10:50:21 -0400
+Received: from kaball.uk.xensource.com ([10.80.2.59])  by
+       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
+       <stefano.stabellini@eu.citrix.com>)     id 1T21Op-0006Vh-Pk;
+       Thu, 16 Aug 2012 15:50:15 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+To: <xen-devel@lists.xensource.com>
+Date: Thu, 16 Aug 2012 15:50:07 +0100
+Message-ID: <1345128612-10323-1-git-send-email-stefano.stabellini@eu.citrix.com>
+X-Mailer: git-send-email 1.7.9.5
+In-Reply-To: <alpine.DEB.2.02.1208161523420.4850@kaball.uk.xensource.com>
+References: <alpine.DEB.2.02.1208161523420.4850@kaball.uk.xensource.com>
+MIME-Version: 1.0
+Cc: tim@xen.org, Ian.Campbell@citrix.com,
+       Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: [Xen-devel] [PATCH v3 1/6] xen: improve changes to
+       xen_add_to_physmap
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+This is an incremental patch on top of
+c0bc926083b5987a3e9944eec2c12ad0580100e2: in order to retain binary
+compatibility, it is better to introduce foreign_domid as part of a
+union containing both size and foreign_domid.
+
+Changes in v2:
+
+- do not use an anonymous union.
+
+Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+---
+ tools/firmware/hvmloader/pci.c  |    2 +-
+ xen/arch/arm/mm.c               |    2 +-
+ xen/arch/x86/mm.c               |   10 +++++-----
+ xen/arch/x86/x86_64/compat/mm.c |    6 ++++++
+ xen/include/public/memory.h     |   11 +++++++----
+ 5 files changed, 20 insertions(+), 11 deletions(-)
+
+diff --git a/tools/firmware/hvmloader/pci.c b/tools/firmware/hvmloader/pci.c
+index fd56e50..6375989 100644
+--- a/tools/firmware/hvmloader/pci.c
++++ b/tools/firmware/hvmloader/pci.c
+@@ -212,7 +212,7 @@ void pci_setup(void)
+         xatp.space = XENMAPSPACE_gmfn_range;
+         xatp.idx   = hvm_info->low_mem_pgend;
+         xatp.gpfn  = hvm_info->high_mem_pgend;
+-        xatp.size  = nr_pages;
++        xatp.u.size  = nr_pages;
+         if ( hypercall_memory_op(XENMEM_add_to_physmap, &xatp) != 0 )
+             BUG();
+         hvm_info->high_mem_pgend += nr_pages;
+diff --git a/xen/arch/arm/mm.c b/xen/arch/arm/mm.c
+index 08bc55b..2400e1c 100644
+--- a/xen/arch/arm/mm.c
++++ b/xen/arch/arm/mm.c
+@@ -506,7 +506,7 @@ static int xenmem_add_to_physmap_once(
+         paddr_t maddr;
+         struct domain *od;
+-        rc = rcu_lock_target_domain_by_id(xatp->foreign_domid, &od);
++        rc = rcu_lock_target_domain_by_id(xatp->u.foreign_domid, &od);
+         if ( rc < 0 )
+             return rc;
+         maddr = p2m_lookup(od, xatp->idx << PAGE_SHIFT);
+diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c
+index 9f63974..f5c704e 100644
+--- a/xen/arch/x86/mm.c
++++ b/xen/arch/x86/mm.c
+@@ -4630,7 +4630,7 @@ static int xenmem_add_to_physmap(struct domain *d,
+             this_cpu(iommu_dont_flush_iotlb) = 1;
+         start_xatp = *xatp;
+-        while ( xatp->size > 0 )
++        while ( xatp->u.size > 0 )
+         {
+             rc = xenmem_add_to_physmap_once(d, xatp);
+             if ( rc < 0 )
+@@ -4638,10 +4638,10 @@ static int xenmem_add_to_physmap(struct domain *d,
+             xatp->idx++;
+             xatp->gpfn++;
+-            xatp->size--;
++            xatp->u.size--;
+             /* Check for continuation if it's not the last interation */
+-            if ( xatp->size > 0 && hypercall_preempt_check() )
++            if ( xatp->u.size > 0 && hypercall_preempt_check() )
+             {
+                 rc = -EAGAIN;
+                 break;
+@@ -4651,8 +4651,8 @@ static int xenmem_add_to_physmap(struct domain *d,
+         if ( need_iommu(d) )
+         {
+             this_cpu(iommu_dont_flush_iotlb) = 0;
+-            iommu_iotlb_flush(d, start_xatp.idx, start_xatp.size - xatp->size);
+-            iommu_iotlb_flush(d, start_xatp.gpfn, start_xatp.size - xatp->size);
++            iommu_iotlb_flush(d, start_xatp.idx, start_xatp.u.size - xatp->u.size);
++            iommu_iotlb_flush(d, start_xatp.gpfn, start_xatp.u.size - xatp->u.size);
+         }
+         return rc;
+diff --git a/xen/arch/x86/x86_64/compat/mm.c b/xen/arch/x86/x86_64/compat/mm.c
+index f497503..5bcd2fd 100644
+--- a/xen/arch/x86/x86_64/compat/mm.c
++++ b/xen/arch/x86/x86_64/compat/mm.c
+@@ -59,10 +59,16 @@ int compat_arch_memory_op(int op, XEN_GUEST_HANDLE(void) arg)
+     {
+         struct compat_add_to_physmap cmp;
+         struct xen_add_to_physmap *nat = COMPAT_ARG_XLAT_VIRT_BASE;
++        enum XLAT_add_to_physmap_u u;
+         if ( copy_from_guest(&cmp, arg, 1) )
+             return -EFAULT;
++        if ( cmp.space == XENMAPSPACE_gmfn_range )
++            u = XLAT_add_to_physmap_u_size;
++        if ( cmp.space == XENMAPSPACE_gmfn_foreign )
++            u = XLAT_add_to_physmap_u_foreign_domid;
++
+         XLAT_add_to_physmap(nat, &cmp);
+         rc = arch_memory_op(op, guest_handle_from_ptr(nat, void));
+diff --git a/xen/include/public/memory.h b/xen/include/public/memory.h
+index b2adfbe..7d4ee26 100644
+--- a/xen/include/public/memory.h
++++ b/xen/include/public/memory.h
+@@ -208,8 +208,12 @@ struct xen_add_to_physmap {
+     /* Which domain to change the mapping for. */
+     domid_t domid;
+-    /* Number of pages to go through for gmfn_range */
+-    uint16_t    size;
++    union {
++        /* Number of pages to go through for gmfn_range */
++        uint16_t    size;
++        /* IFF gmfn_foreign */
++        domid_t foreign_domid;
++    } u;
+     /* Source mapping space. */
+ #define XENMAPSPACE_shared_info  0 /* shared info page */
+@@ -217,8 +221,7 @@ struct xen_add_to_physmap {
+ #define XENMAPSPACE_gmfn         2 /* GMFN */
+ #define XENMAPSPACE_gmfn_range   3 /* GMFN range */
+ #define XENMAPSPACE_gmfn_foreign 4 /* GMFN from another guest */
+-    uint16_t space;
+-    domid_t foreign_domid; /* IFF gmfn_foreign */
++    unsigned int space;
+ #define XENMAPIDX_grant_table_status 0x80000000
+-- 
+1.7.2.5
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1345128612-10323-2-git-send-email-stefano.stabellini@eu.citrix.com> b/config/examples/test/corpus/<1345128612-10323-2-git-send-email-stefano.stabellini@eu.citrix.com>
new file mode 100644 (file)
index 0000000..294ff96
--- /dev/null
@@ -0,0 +1,157 @@
+From xen-devel-bounces@lists.xen.org Thu Aug 16 15:53:51 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 16 Aug 2012 15:53:51 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T21SD-0007Z6-RH
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 16 Aug 2012 15:53:51 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T21P3-00060o-Aa; Thu, 16 Aug 2012 14:50:29 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1T21P0-00060T-OT
+       for xen-devel@lists.xensource.com; Thu, 16 Aug 2012 14:50:26 +0000
+Received: from [85.158.139.83:45173] by server-5.bemta-5.messagelabs.com id
+       77/1A-31019-1B80D205; Thu, 16 Aug 2012 14:50:25 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-7.tower-182.messagelabs.com!1345128622!24543670!2
+X-Originating-IP: [66.165.176.63]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyNzE3OTY=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 25296 invoked from network); 16 Aug 2012 14:50:25 -0000
+Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
+       by server-7.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
+       16 Aug 2012 14:50:25 -0000
+X-IronPort-AV: E=Sophos;i="4.77,778,1336363200"; d="scan'208";a="205378342"
+Received: from ftlpmailmx01.citrite.net ([10.13.107.65])
+       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       16 Aug 2012 10:50:21 -0400
+Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
+       (10.13.107.65) with Microsoft SMTP Server id 8.3.213.0;
+       Thu, 16 Aug 2012 10:50:21 -0400
+Received: from kaball.uk.xensource.com ([10.80.2.59])  by
+       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
+       <stefano.stabellini@eu.citrix.com>)     id 1T21Op-0006Vh-QL;
+       Thu, 16 Aug 2012 15:50:15 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+To: <xen-devel@lists.xensource.com>
+Date: Thu, 16 Aug 2012 15:50:08 +0100
+Message-ID: <1345128612-10323-2-git-send-email-stefano.stabellini@eu.citrix.com>
+X-Mailer: git-send-email 1.7.9.5
+In-Reply-To: <alpine.DEB.2.02.1208161523420.4850@kaball.uk.xensource.com>
+References: <alpine.DEB.2.02.1208161523420.4850@kaball.uk.xensource.com>
+MIME-Version: 1.0
+Cc: tim@xen.org, Ian.Campbell@citrix.com,
+       Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: [Xen-devel] [PATCH v3 2/6] xen: xen_ulong_t substitution
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+There is still an unwanted unsigned long in the xen public interface:
+replace it with xen_ulong_t.
+
+Also typedef xen_ulong_t to uint64_t on ARM.
+
+Changes in v2:
+
+- do not replace the unsigned long in x86 specific calls;
+- do not replace the unsigned long in multicall_entry;
+- add missing include "xen.h" in version.h;
+- use proper printf flag for xen_ulong_t.
+
+Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+---
+ tools/python/xen/lowlevel/xc/xc.c |    2 +-
+ xen/include/public/arch-arm.h     |    4 ++--
+ xen/include/public/version.h      |    4 +++-
+ 3 files changed, 6 insertions(+), 4 deletions(-)
+
+diff --git a/tools/python/xen/lowlevel/xc/xc.c b/tools/python/xen/lowlevel/xc/xc.c
+index 7c89756..e220f68 100644
+--- a/tools/python/xen/lowlevel/xc/xc.c
++++ b/tools/python/xen/lowlevel/xc/xc.c
+@@ -1439,7 +1439,7 @@ static PyObject *pyxc_xeninfo(XcObject *self)
+     if ( xc_version(self->xc_handle, XENVER_commandline, &xen_commandline) != 0 )
+         return pyxc_error_to_exception(self->xc_handle);
+-    snprintf(str, sizeof(str), "virt_start=0x%lx", p_parms.virt_start);
++    snprintf(str, sizeof(str), "virt_start=0x%"PRI_xen_ulong, p_parms.virt_start);
+     xen_pagesize = xc_version(self->xc_handle, XENVER_pagesize, NULL);
+     if (xen_pagesize < 0 )
+diff --git a/xen/include/public/arch-arm.h b/xen/include/public/arch-arm.h
+index 14ad0ab..2ae6548 100644
+--- a/xen/include/public/arch-arm.h
++++ b/xen/include/public/arch-arm.h
+@@ -122,8 +122,8 @@ typedef uint64_t xen_pfn_t;
+ /* Only one. All other VCPUS must use VCPUOP_register_vcpu_info */
+ #define XEN_LEGACY_MAX_VCPUS 1
+-typedef uint32_t xen_ulong_t;
+-#define PRI_xen_ulong PRIx32
++typedef uint64_t xen_ulong_t;
++#define PRI_xen_ulong PRIx64
+ struct vcpu_guest_context {
+ #define _VGCF_online                   0
+diff --git a/xen/include/public/version.h b/xen/include/public/version.h
+index 8742c2b..c7e6f8c 100644
+--- a/xen/include/public/version.h
++++ b/xen/include/public/version.h
+@@ -28,6 +28,8 @@
+ #ifndef __XEN_PUBLIC_VERSION_H__
+ #define __XEN_PUBLIC_VERSION_H__
++#include "xen.h"
++
+ /* NB. All ops return zero on success, except XENVER_{version,pagesize} */
+ /* arg == NULL; returns major:minor (16:16). */
+@@ -58,7 +60,7 @@ typedef char xen_changeset_info_t[64];
+ #define XENVER_platform_parameters 5
+ struct xen_platform_parameters {
+-    unsigned long virt_start;
++    xen_ulong_t virt_start;
+ };
+ typedef struct xen_platform_parameters xen_platform_parameters_t;
+-- 
+1.7.2.5
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1345128612-10323-3-git-send-email-stefano.stabellini@eu.citrix.com> b/config/examples/test/corpus/<1345128612-10323-3-git-send-email-stefano.stabellini@eu.citrix.com>
new file mode 100644 (file)
index 0000000..614bb6e
--- /dev/null
@@ -0,0 +1,112 @@
+From xen-devel-bounces@lists.xen.org Thu Aug 16 15:53:49 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 16 Aug 2012 15:53:49 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T21SF-0007ZC-Kc
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 16 Aug 2012 15:53:49 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T21P1-00060a-T5; Thu, 16 Aug 2012 14:50:27 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1T21Oz-00060O-IY
+       for xen-devel@lists.xensource.com; Thu, 16 Aug 2012 14:50:25 +0000
+Received: from [85.158.139.83:16419] by server-3.bemta-5.messagelabs.com id
+       CA/ED-27237-0B80D205; Thu, 16 Aug 2012 14:50:24 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-7.tower-182.messagelabs.com!1345128622!24543670!1
+X-Originating-IP: [66.165.176.63]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyNzE3OTY=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 25213 invoked from network); 16 Aug 2012 14:50:24 -0000
+Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
+       by server-7.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
+       16 Aug 2012 14:50:24 -0000
+X-IronPort-AV: E=Sophos;i="4.77,778,1336363200"; d="scan'208";a="205378341"
+Received: from ftlpmailmx01.citrite.net ([10.13.107.65])
+       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       16 Aug 2012 10:50:21 -0400
+Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
+       (10.13.107.65) with Microsoft SMTP Server id 8.3.213.0;
+       Thu, 16 Aug 2012 10:50:21 -0400
+Received: from kaball.uk.xensource.com ([10.80.2.59])  by
+       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
+       <stefano.stabellini@eu.citrix.com>)     id 1T21Op-0006Vh-S3;
+       Thu, 16 Aug 2012 15:50:15 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+To: <xen-devel@lists.xensource.com>
+Date: Thu, 16 Aug 2012 15:50:09 +0100
+Message-ID: <1345128612-10323-3-git-send-email-stefano.stabellini@eu.citrix.com>
+X-Mailer: git-send-email 1.7.9.5
+In-Reply-To: <alpine.DEB.2.02.1208161523420.4850@kaball.uk.xensource.com>
+References: <alpine.DEB.2.02.1208161523420.4850@kaball.uk.xensource.com>
+MIME-Version: 1.0
+Cc: tim@xen.org, Ian.Campbell@citrix.com,
+       Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: [Xen-devel] [PATCH v3 3/6] xen: change the limit of nr_extents to
+       UINT_MAX >> MEMOP_EXTENT_SHIFT
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+Currently do_memory_op has a different maximum limit for nr_extents on
+32 bit and 64 bit.
+Change the limit to UINT_MAX >> MEMOP_EXTENT_SHIFT, so that it is the
+same in both cases.
+
+Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+---
+ xen/common/memory.c |    2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/xen/common/memory.c b/xen/common/memory.c
+index 5d64cb6..7e58cc4 100644
+--- a/xen/common/memory.c
++++ b/xen/common/memory.c
+@@ -553,7 +553,7 @@ long do_memory_op(unsigned long cmd, XEN_GUEST_HANDLE(void) arg)
+             return start_extent;
+         /* Is size too large for us to encode a continuation? */
+-        if ( reservation.nr_extents > (ULONG_MAX >> MEMOP_EXTENT_SHIFT) )
++        if ( reservation.nr_extents > (UINT_MAX >> MEMOP_EXTENT_SHIFT) )
+             return start_extent;
+         if ( unlikely(start_extent >= reservation.nr_extents) )
+-- 
+1.7.2.5
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1345128612-10323-4-git-send-email-stefano.stabellini@eu.citrix.com> b/config/examples/test/corpus/<1345128612-10323-4-git-send-email-stefano.stabellini@eu.citrix.com>
new file mode 100644 (file)
index 0000000..8bd8a10
--- /dev/null
@@ -0,0 +1,282 @@
+From xen-devel-bounces@lists.xen.org Thu Aug 16 15:54:11 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 16 Aug 2012 15:54:11 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T21SZ-0007a2-Uy
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 16 Aug 2012 15:54:11 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T21P5-00061u-L1; Thu, 16 Aug 2012 14:50:31 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1T21P2-00060m-Qv
+       for xen-devel@lists.xensource.com; Thu, 16 Aug 2012 14:50:29 +0000
+Received: from [85.158.139.83:16798] by server-8.bemta-5.messagelabs.com id
+       24/44-02481-4B80D205; Thu, 16 Aug 2012 14:50:28 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-7.tower-182.messagelabs.com!1345128622!24543670!4
+X-Originating-IP: [66.165.176.63]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyNzE3OTY=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 25439 invoked from network); 16 Aug 2012 14:50:26 -0000
+Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
+       by server-7.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
+       16 Aug 2012 14:50:26 -0000
+X-IronPort-AV: E=Sophos;i="4.77,778,1336363200"; d="scan'208";a="205378345"
+Received: from ftlpmailmx01.citrite.net ([10.13.107.65])
+       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       16 Aug 2012 10:50:21 -0400
+Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
+       (10.13.107.65) with Microsoft SMTP Server id 8.3.213.0;
+       Thu, 16 Aug 2012 10:50:21 -0400
+Received: from kaball.uk.xensource.com ([10.80.2.59])  by
+       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
+       <stefano.stabellini@eu.citrix.com>)     id 1T21Op-0006Vh-SY;
+       Thu, 16 Aug 2012 15:50:15 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+To: <xen-devel@lists.xensource.com>
+Date: Thu, 16 Aug 2012 15:50:10 +0100
+Message-ID: <1345128612-10323-4-git-send-email-stefano.stabellini@eu.citrix.com>
+X-Mailer: git-send-email 1.7.9.5
+In-Reply-To: <alpine.DEB.2.02.1208161523420.4850@kaball.uk.xensource.com>
+References: <alpine.DEB.2.02.1208161523420.4850@kaball.uk.xensource.com>
+MIME-Version: 1.0
+Cc: tim@xen.org, Ian.Campbell@citrix.com,
+       Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: [Xen-devel] [PATCH v3 4/6] xen: introduce XEN_GUEST_HANDLE_PARAM
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+XEN_GUEST_HANDLE_PARAM is going to be used to distinguish guest pointers
+stored in memory from guest pointers as hypercall parameters.
+
+guest_handle_* macros default to XEN_GUEST_HANDLE_PARAM as return type.
+Two new guest_handle_to_param and guest_handle_from_param macros are
+introduced to do conversions.
+
+Changes in v2:
+
+- add 2 missing #define _XEN_GUEST_HANDLE_PARAM for the compilation of
+the compat code.
+
+Changes in v3:
+
+- move the guest_handle_cast change into this patch;
+- add a clear comment on top of guest_handle_cast;
+- also s/XEN_GUEST_HANDLE/XEN_GUEST_HANDLE_PARAM in
+  guest_handle_from_ptr and const_guest_handle_from_ptr;
+- introduce guest_handle_from_param and guest_handle_to_param.
+
+Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+---
+ xen/include/asm-arm/guest_access.h |   19 ++++++++++++++++---
+ xen/include/asm-x86/guest_access.h |   19 ++++++++++++++++---
+ xen/include/public/arch-arm.h      |   24 ++++++++++++++++++++----
+ xen/include/public/arch-ia64.h     |    9 +++++++++
+ xen/include/public/arch-x86/xen.h  |    9 +++++++++
+ 5 files changed, 70 insertions(+), 10 deletions(-)
+
+diff --git a/xen/include/asm-arm/guest_access.h b/xen/include/asm-arm/guest_access.h
+index 0fceae6..28a4b3f 100644
+--- a/xen/include/asm-arm/guest_access.h
++++ b/xen/include/asm-arm/guest_access.h
+@@ -27,16 +27,29 @@ unsigned long raw_clear_guest(void *to, unsigned len);
+ #define guest_handle_add_offset(hnd, nr) ((hnd).p += (nr))
+ #define guest_handle_subtract_offset(hnd, nr) ((hnd).p -= (nr))
+-/* Cast a guest handle to the specified type of handle. */
++/* Cast a guest handle (either XEN_GUEST_HANDLE or XEN_GUEST_HANDLE_PARAM)
++ * to the specified type of XEN_GUEST_HANDLE_PARAM. */
+ #define guest_handle_cast(hnd, type) ({         \
+     type *_x = (hnd).p;                         \
++    (XEN_GUEST_HANDLE_PARAM(type)) { _x };            \
++})
++
++/* Cast a XEN_GUEST_HANDLE to XEN_GUEST_HANDLE_PARAM */
++#define guest_handle_to_param(hnd, type) ({                  \
++    typeof((hnd).p) _x = (hnd).p;                         \
++    (XEN_GUEST_HANDLE_PARAM(type)) { _x };            \
++})
++
++/* Cast a XEN_GUEST_HANDLE_PARAM to XEN_GUEST_HANDLE */
++#define guest_handle_from_param(hnd, type) ({                  \
++    typeof((hnd).p) _x = (hnd).p;                         \
+     (XEN_GUEST_HANDLE(type)) { _x };            \
+ })
+ #define guest_handle_from_ptr(ptr, type)        \
+-    ((XEN_GUEST_HANDLE(type)) { (type *)ptr })
++    ((XEN_GUEST_HANDLE_PARAM(type)) { (type *)ptr })
+ #define const_guest_handle_from_ptr(ptr, type)  \
+-    ((XEN_GUEST_HANDLE(const_##type)) { (const type *)ptr })
++    ((XEN_GUEST_HANDLE_PARAM(const_##type)) { (const type *)ptr })
+ /*
+  * Copy an array of objects to guest context via a guest handle,
+diff --git a/xen/include/asm-x86/guest_access.h b/xen/include/asm-x86/guest_access.h
+index 2b429c2..6d35104 100644
+--- a/xen/include/asm-x86/guest_access.h
++++ b/xen/include/asm-x86/guest_access.h
+@@ -45,16 +45,29 @@
+ #define guest_handle_add_offset(hnd, nr) ((hnd).p += (nr))
+ #define guest_handle_subtract_offset(hnd, nr) ((hnd).p -= (nr))
+-/* Cast a guest handle to the specified type of handle. */
++/* Cast a guest handle (either XEN_GUEST_HANDLE or XEN_GUEST_HANDLE_PARAM)
++ * to the specified type of XEN_GUEST_HANDLE_PARAM. */
+ #define guest_handle_cast(hnd, type) ({         \
+     type *_x = (hnd).p;                         \
++    (XEN_GUEST_HANDLE_PARAM(type)) { _x };            \
++})
++
++/* Cast a XEN_GUEST_HANDLE to XEN_GUEST_HANDLE_PARAM */
++#define guest_handle_to_param(hnd, type) ({                  \
++    typeof((hnd).p) _x = (hnd).p;                         \
++    (XEN_GUEST_HANDLE_PARAM(type)) { _x };            \
++})
++
++/* Cast a XEN_GUEST_HANDLE_PARAM to XEN_GUEST_HANDLE */
++#define guest_handle_from_param(hnd, type) ({                  \
++    typeof((hnd).p) _x = (hnd).p;                         \
+     (XEN_GUEST_HANDLE(type)) { _x };            \
+ })
+ #define guest_handle_from_ptr(ptr, type)        \
+-    ((XEN_GUEST_HANDLE(type)) { (type *)ptr })
++    ((XEN_GUEST_HANDLE_PARAM(type)) { (type *)ptr })
+ #define const_guest_handle_from_ptr(ptr, type)  \
+-    ((XEN_GUEST_HANDLE(const_##type)) { (const type *)ptr })
++    ((XEN_GUEST_HANDLE_PARAM(const_##type)) { (const type *)ptr })
+ /*
+  * Copy an array of objects to guest context via a guest handle,
+diff --git a/xen/include/public/arch-arm.h b/xen/include/public/arch-arm.h
+index 2ae6548..9db3c81 100644
+--- a/xen/include/public/arch-arm.h
++++ b/xen/include/public/arch-arm.h
+@@ -51,18 +51,34 @@
+ #define XEN_HYPERCALL_TAG   0XEA1
++#define uint64_aligned_t uint64_t __attribute__((aligned(8)))
+ #ifndef __ASSEMBLY__
+-#define ___DEFINE_XEN_GUEST_HANDLE(name, type) \
+-    typedef struct { type *p; } __guest_handle_ ## name
++#define ___DEFINE_XEN_GUEST_HANDLE(name, type)                  \
++    typedef struct { type *p; }                                 \
++        __guest_handle_ ## name;                                \
++    typedef struct { union { type *p; uint64_aligned_t q; }; }  \
++        __guest_handle_64_ ## name;
++/*
++ * XEN_GUEST_HANDLE represents a guest pointer, when passed as a field
++ * in a struct in memory. On ARM is always 8 bytes sizes and 8 bytes
++ * aligned.
++ * XEN_GUEST_HANDLE_PARAM represent a guest pointer, when passed as an
++ * hypercall argument. It is 4 bytes on aarch and 8 bytes on aarch64.
++ */
+ #define __DEFINE_XEN_GUEST_HANDLE(name, type) \
+     ___DEFINE_XEN_GUEST_HANDLE(name, type);   \
+     ___DEFINE_XEN_GUEST_HANDLE(const_##name, const type)
+ #define DEFINE_XEN_GUEST_HANDLE(name)   __DEFINE_XEN_GUEST_HANDLE(name, name)
+-#define __XEN_GUEST_HANDLE(name)        __guest_handle_ ## name
++#define __XEN_GUEST_HANDLE(name)        __guest_handle_64_ ## name
+ #define XEN_GUEST_HANDLE(name)          __XEN_GUEST_HANDLE(name)
+-#define set_xen_guest_handle_raw(hnd, val)  do { (hnd).p = val; } while (0)
++/* this is going to be changes on 64 bit */
++#define XEN_GUEST_HANDLE_PARAM(name)    __guest_handle_ ## name
++#define set_xen_guest_handle_raw(hnd, val)                  \
++    do { if ( sizeof(hnd) == 8 ) *(uint64_t *)&(hnd) = 0;   \
++         (hnd).p = val;                                     \
++    } while ( 0 )
+ #ifdef __XEN_TOOLS__
+ #define get_xen_guest_handle(val, hnd)  do { val = (hnd).p; } while (0)
+ #endif
+diff --git a/xen/include/public/arch-ia64.h b/xen/include/public/arch-ia64.h
+index c9da5d4..e4e9688 100644
+--- a/xen/include/public/arch-ia64.h
++++ b/xen/include/public/arch-ia64.h
+@@ -45,8 +45,17 @@
+     ___DEFINE_XEN_GUEST_HANDLE(name, type);   \
+     ___DEFINE_XEN_GUEST_HANDLE(const_##name, const type)
++/*
++ * XEN_GUEST_HANDLE represents a guest pointer, when passed as a field
++ * in a struct in memory.
++ * XEN_GUEST_HANDLE_PARAM represent a guest pointer, when passed as an
++ * hypercall argument.
++ * XEN_GUEST_HANDLE_PARAM and XEN_GUEST_HANDLE are the same on ia64 but
++ * they might not be on other architectures.
++ */
+ #define DEFINE_XEN_GUEST_HANDLE(name)   __DEFINE_XEN_GUEST_HANDLE(name, name)
+ #define XEN_GUEST_HANDLE(name)          __guest_handle_ ## name
++#define XEN_GUEST_HANDLE_PARAM(name)    XEN_GUEST_HANDLE(name)
+ #define XEN_GUEST_HANDLE_64(name)       XEN_GUEST_HANDLE(name)
+ #define uint64_aligned_t                uint64_t
+ #define set_xen_guest_handle_raw(hnd, val)  do { (hnd).p = val; } while (0)
+diff --git a/xen/include/public/arch-x86/xen.h b/xen/include/public/arch-x86/xen.h
+index 1c186d7..0e10260 100644
+--- a/xen/include/public/arch-x86/xen.h
++++ b/xen/include/public/arch-x86/xen.h
+@@ -38,12 +38,21 @@
+     typedef type * __guest_handle_ ## name
+ #endif
++/*
++ * XEN_GUEST_HANDLE represents a guest pointer, when passed as a field
++ * in a struct in memory.
++ * XEN_GUEST_HANDLE_PARAM represent a guest pointer, when passed as an
++ * hypercall argument.
++ * XEN_GUEST_HANDLE_PARAM and XEN_GUEST_HANDLE are the same on X86 but
++ * they might not be on other architectures.
++ */
+ #define __DEFINE_XEN_GUEST_HANDLE(name, type) \
+     ___DEFINE_XEN_GUEST_HANDLE(name, type);   \
+     ___DEFINE_XEN_GUEST_HANDLE(const_##name, const type)
+ #define DEFINE_XEN_GUEST_HANDLE(name)   __DEFINE_XEN_GUEST_HANDLE(name, name)
+ #define __XEN_GUEST_HANDLE(name)        __guest_handle_ ## name
+ #define XEN_GUEST_HANDLE(name)          __XEN_GUEST_HANDLE(name)
++#define XEN_GUEST_HANDLE_PARAM(name)    XEN_GUEST_HANDLE(name)
+ #define set_xen_guest_handle_raw(hnd, val)  do { (hnd).p = val; } while (0)
+ #ifdef __XEN_TOOLS__
+ #define get_xen_guest_handle(val, hnd)  do { val = (hnd).p; } while (0)
+-- 
+1.7.2.5
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1345128612-10323-5-git-send-email-stefano.stabellini@eu.citrix.com> b/config/examples/test/corpus/<1345128612-10323-5-git-send-email-stefano.stabellini@eu.citrix.com>
new file mode 100644 (file)
index 0000000..2f563e7
--- /dev/null
@@ -0,0 +1,1771 @@
+From xen-devel-bounces@lists.xen.org Thu Aug 16 15:54:49 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 16 Aug 2012 15:54:49 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T21T4-0007ai-TO
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 16 Aug 2012 15:54:49 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T21P6-00062A-29; Thu, 16 Aug 2012 14:50:32 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1T21P4-000617-28
+       for xen-devel@lists.xensource.com; Thu, 16 Aug 2012 14:50:30 +0000
+Received: from [85.158.138.51:40672] by server-2.bemta-3.messagelabs.com id
+       E2/E7-17748-5B80D205; Thu, 16 Aug 2012 14:50:29 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-3.tower-174.messagelabs.com!1345128623!20556109!1
+X-Originating-IP: [66.165.176.89]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNjQyODA=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 12559 invoked from network); 16 Aug 2012 14:50:24 -0000
+Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
+       by server-3.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
+       16 Aug 2012 14:50:24 -0000
+X-IronPort-AV: E=Sophos;i="4.77,778,1336363200"; d="scan'208";a="34861514"
+Received: from ftlpmailmx01.citrite.net ([10.13.107.65])
+       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       16 Aug 2012 10:50:22 -0400
+Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
+       (10.13.107.65) with Microsoft SMTP Server id 8.3.213.0;
+       Thu, 16 Aug 2012 10:50:21 -0400
+Received: from kaball.uk.xensource.com ([10.80.2.59])  by
+       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
+       <stefano.stabellini@eu.citrix.com>)     id 1T21Op-0006Vh-UH;
+       Thu, 16 Aug 2012 15:50:15 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+To: <xen-devel@lists.xensource.com>
+Date: Thu, 16 Aug 2012 15:50:11 +0100
+Message-ID: <1345128612-10323-5-git-send-email-stefano.stabellini@eu.citrix.com>
+X-Mailer: git-send-email 1.7.9.5
+In-Reply-To: <alpine.DEB.2.02.1208161523420.4850@kaball.uk.xensource.com>
+References: <alpine.DEB.2.02.1208161523420.4850@kaball.uk.xensource.com>
+MIME-Version: 1.0
+Cc: tim@xen.org, Ian.Campbell@citrix.com,
+       Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: [Xen-devel] [PATCH v3 5/6] xen: replace XEN_GUEST_HANDLE with
+       XEN_GUEST_HANDLE_PARAM when appropriate
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+Note: these changes don't make any difference on x86 and ia64.
+
+
+Replace XEN_GUEST_HANDLE with XEN_GUEST_HANDLE_PARAM when it is used as
+an hypercall argument.
+
+Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+---
+ xen/arch/arm/domain.c             |    2 +-
+ xen/arch/arm/domctl.c             |    2 +-
+ xen/arch/arm/hvm.c                |    2 +-
+ xen/arch/arm/mm.c                 |    2 +-
+ xen/arch/arm/physdev.c            |    2 +-
+ xen/arch/arm/sysctl.c             |    2 +-
+ xen/arch/x86/compat.c             |    2 +-
+ xen/arch/x86/cpu/mcheck/mce.c     |    2 +-
+ xen/arch/x86/domain.c             |    2 +-
+ xen/arch/x86/domctl.c             |    2 +-
+ xen/arch/x86/efi/runtime.c        |    2 +-
+ xen/arch/x86/hvm/hvm.c            |   26 +++++++++---------
+ xen/arch/x86/microcode.c          |    2 +-
+ xen/arch/x86/mm.c                 |   14 +++++-----
+ xen/arch/x86/mm/hap/hap.c         |    2 +-
+ xen/arch/x86/mm/mem_event.c       |    2 +-
+ xen/arch/x86/mm/paging.c          |    2 +-
+ xen/arch/x86/mm/shadow/common.c   |    2 +-
+ xen/arch/x86/oprofile/xenoprof.c  |    6 ++--
+ xen/arch/x86/physdev.c            |    2 +-
+ xen/arch/x86/platform_hypercall.c |    2 +-
+ xen/arch/x86/sysctl.c             |    2 +-
+ xen/arch/x86/traps.c              |    2 +-
+ xen/arch/x86/x86_32/mm.c          |    2 +-
+ xen/arch/x86/x86_32/traps.c       |    2 +-
+ xen/arch/x86/x86_64/compat/mm.c   |   10 +++---
+ xen/arch/x86/x86_64/domain.c      |    2 +-
+ xen/arch/x86/x86_64/mm.c          |    2 +-
+ xen/arch/x86/x86_64/traps.c       |    2 +-
+ xen/common/compat/domain.c        |    2 +-
+ xen/common/compat/grant_table.c   |    8 +++---
+ xen/common/compat/memory.c        |    4 +-
+ xen/common/domain.c               |    2 +-
+ xen/common/domctl.c               |    2 +-
+ xen/common/event_channel.c        |    2 +-
+ xen/common/grant_table.c          |   36 +++++++++++++-------------
+ xen/common/kernel.c               |    4 +-
+ xen/common/kexec.c                |   16 +++++-----
+ xen/common/memory.c               |    4 +-
+ xen/common/multicall.c            |    2 +-
+ xen/common/schedule.c             |    2 +-
+ xen/common/sysctl.c               |    2 +-
+ xen/common/xenoprof.c             |    8 +++---
+ xen/drivers/acpi/pmstat.c         |    2 +-
+ xen/drivers/char/console.c        |    6 ++--
+ xen/drivers/passthrough/iommu.c   |    2 +-
+ xen/include/asm-arm/hypercall.h   |    2 +-
+ xen/include/asm-arm/mm.h          |    2 +-
+ xen/include/asm-x86/hap.h         |    2 +-
+ xen/include/asm-x86/hypercall.h   |   24 ++++++++--------
+ xen/include/asm-x86/mem_event.h   |    2 +-
+ xen/include/asm-x86/mm.h          |    8 +++---
+ xen/include/asm-x86/paging.h      |    2 +-
+ xen/include/asm-x86/processor.h   |    2 +-
+ xen/include/asm-x86/shadow.h      |    2 +-
+ xen/include/asm-x86/xenoprof.h    |    6 ++--
+ xen/include/xen/acpi.h            |    4 +-
+ xen/include/xen/hypercall.h       |   52 ++++++++++++++++++------------------
+ xen/include/xen/iommu.h           |    2 +-
+ xen/include/xen/tmem_xen.h        |    2 +-
+ xen/include/xsm/xsm.h             |    4 +-
+ xen/xsm/dummy.c                   |    2 +-
+ xen/xsm/flask/flask_op.c          |    4 +-
+ xen/xsm/flask/hooks.c             |    2 +-
+ xen/xsm/xsm_core.c                |    2 +-
+ 65 files changed, 168 insertions(+), 168 deletions(-)
+
+diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
+index ee58d68..07b50e2 100644
+--- a/xen/arch/arm/domain.c
++++ b/xen/arch/arm/domain.c
+@@ -515,7 +515,7 @@ void arch_dump_domain_info(struct domain *d)
+ {
+ }
+-long arch_do_vcpu_op(int cmd, struct vcpu *v, XEN_GUEST_HANDLE(void) arg)
++long arch_do_vcpu_op(int cmd, struct vcpu *v, XEN_GUEST_HANDLE_PARAM(void) arg)
+ {
+     return -ENOSYS;
+ }
+diff --git a/xen/arch/arm/domctl.c b/xen/arch/arm/domctl.c
+index 1a5f79f..cf16791 100644
+--- a/xen/arch/arm/domctl.c
++++ b/xen/arch/arm/domctl.c
+@@ -11,7 +11,7 @@
+ #include <public/domctl.h>
+ long arch_do_domctl(struct xen_domctl *domctl,
+-                    XEN_GUEST_HANDLE(xen_domctl_t) u_domctl)
++                    XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl)
+ {
+     return -ENOSYS;
+ }
+diff --git a/xen/arch/arm/hvm.c b/xen/arch/arm/hvm.c
+index c11378d..40f519e 100644
+--- a/xen/arch/arm/hvm.c
++++ b/xen/arch/arm/hvm.c
+@@ -11,7 +11,7 @@
+ #include <asm/hypercall.h>
+-long do_hvm_op(unsigned long op, XEN_GUEST_HANDLE(void) arg)
++long do_hvm_op(unsigned long op, XEN_GUEST_HANDLE_PARAM(void) arg)
+ {
+     long rc = 0;
+diff --git a/xen/arch/arm/mm.c b/xen/arch/arm/mm.c
+index 2400e1c..3e8b6cc 100644
+--- a/xen/arch/arm/mm.c
++++ b/xen/arch/arm/mm.c
+@@ -541,7 +541,7 @@ static int xenmem_add_to_physmap(struct domain *d,
+     return xenmem_add_to_physmap_once(d, xatp);
+ }
+-long arch_memory_op(int op, XEN_GUEST_HANDLE(void) arg)
++long arch_memory_op(int op, XEN_GUEST_HANDLE_PARAM(void) arg)
+ {
+     int rc;
+diff --git a/xen/arch/arm/physdev.c b/xen/arch/arm/physdev.c
+index bcf4337..0801e8c 100644
+--- a/xen/arch/arm/physdev.c
++++ b/xen/arch/arm/physdev.c
+@@ -11,7 +11,7 @@
+ #include <asm/hypercall.h>
+-int do_physdev_op(int cmd, XEN_GUEST_HANDLE(void) arg)
++int do_physdev_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
+ {
+     printk("%s %d cmd=%d: not implemented yet\n", __func__, __LINE__, cmd);
+     return -ENOSYS;
+diff --git a/xen/arch/arm/sysctl.c b/xen/arch/arm/sysctl.c
+index e8e1c0d..a286abe 100644
+--- a/xen/arch/arm/sysctl.c
++++ b/xen/arch/arm/sysctl.c
+@@ -13,7 +13,7 @@
+ #include <public/sysctl.h>
+ long arch_do_sysctl(struct xen_sysctl *sysctl,
+-                    XEN_GUEST_HANDLE(xen_sysctl_t) u_sysctl)
++                    XEN_GUEST_HANDLE_PARAM(xen_sysctl_t) u_sysctl)
+ {
+     return -ENOSYS;
+ }
+diff --git a/xen/arch/x86/compat.c b/xen/arch/x86/compat.c
+index a4fda06..2d05867 100644
+--- a/xen/arch/x86/compat.c
++++ b/xen/arch/x86/compat.c
+@@ -27,7 +27,7 @@ ret_t do_physdev_op_compat(XEN_GUEST_HANDLE(physdev_op_t) uop)
+ #ifndef COMPAT
+ /* Legacy hypercall (as of 0x00030202). */
+-long do_event_channel_op_compat(XEN_GUEST_HANDLE(evtchn_op_t) uop)
++long do_event_channel_op_compat(XEN_GUEST_HANDLE_PARAM(evtchn_op_t) uop)
+ {
+     struct evtchn_op op;
+diff --git a/xen/arch/x86/cpu/mcheck/mce.c b/xen/arch/x86/cpu/mcheck/mce.c
+index a89df6d..0f122b3 100644
+--- a/xen/arch/x86/cpu/mcheck/mce.c
++++ b/xen/arch/x86/cpu/mcheck/mce.c
+@@ -1357,7 +1357,7 @@ CHECK_mcinfo_recovery;
+ #endif
+ /* Machine Check Architecture Hypercall */
+-long do_mca(XEN_GUEST_HANDLE(xen_mc_t) u_xen_mc)
++long do_mca(XEN_GUEST_HANDLE_PARAM(xen_mc_t) u_xen_mc)
+ {
+     long ret = 0;
+     struct xen_mc curop, *op = &curop;
+diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
+index 5bba4b9..13ff776 100644
+--- a/xen/arch/x86/domain.c
++++ b/xen/arch/x86/domain.c
+@@ -1138,7 +1138,7 @@ map_vcpu_info(struct vcpu *v, unsigned long gfn, unsigned offset)
+ long
+ arch_do_vcpu_op(
+-    int cmd, struct vcpu *v, XEN_GUEST_HANDLE(void) arg)
++    int cmd, struct vcpu *v, XEN_GUEST_HANDLE_PARAM(void) arg)
+ {
+     long rc = 0;
+diff --git a/xen/arch/x86/domctl.c b/xen/arch/x86/domctl.c
+index 135ea6e..663bfe4 100644
+--- a/xen/arch/x86/domctl.c
++++ b/xen/arch/x86/domctl.c
+@@ -48,7 +48,7 @@ static int gdbsx_guest_mem_io(
+ long arch_do_domctl(
+     struct xen_domctl *domctl,
+-    XEN_GUEST_HANDLE(xen_domctl_t) u_domctl)
++    XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl)
+ {
+     long ret = 0;
+diff --git a/xen/arch/x86/efi/runtime.c b/xen/arch/x86/efi/runtime.c
+index 1dbe2db..b2ff495 100644
+--- a/xen/arch/x86/efi/runtime.c
++++ b/xen/arch/x86/efi/runtime.c
+@@ -184,7 +184,7 @@ int efi_get_info(uint32_t idx, union xenpf_efi_info *info)
+     return 0;
+ }
+-static long gwstrlen(XEN_GUEST_HANDLE(CHAR16) str)
++static long gwstrlen(XEN_GUEST_HANDLE_PARAM(CHAR16) str)
+ {
+     unsigned long len;
+diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
+index 7f8a025c..e2bf831 100644
+--- a/xen/arch/x86/hvm/hvm.c
++++ b/xen/arch/x86/hvm/hvm.c
+@@ -3047,14 +3047,14 @@ static int grant_table_op_is_allowed(unsigned int cmd)
+ }
+ static long hvm_grant_table_op(
+-    unsigned int cmd, XEN_GUEST_HANDLE(void) uop, unsigned int count)
++    unsigned int cmd, XEN_GUEST_HANDLE_PARAM(void) uop, unsigned int count)
+ {
+     if ( !grant_table_op_is_allowed(cmd) )
+         return -ENOSYS; /* all other commands need auditing */
+     return do_grant_table_op(cmd, uop, count);
+ }
+-static long hvm_memory_op(int cmd, XEN_GUEST_HANDLE(void) arg)
++static long hvm_memory_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
+ {
+     long rc;
+@@ -3072,7 +3072,7 @@ static long hvm_memory_op(int cmd, XEN_GUEST_HANDLE(void) arg)
+     return do_memory_op(cmd, arg);
+ }
+-static long hvm_physdev_op(int cmd, XEN_GUEST_HANDLE(void) arg)
++static long hvm_physdev_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
+ {
+     switch ( cmd )
+     {
+@@ -3088,7 +3088,7 @@ static long hvm_physdev_op(int cmd, XEN_GUEST_HANDLE(void) arg)
+ }
+ static long hvm_vcpu_op(
+-    int cmd, int vcpuid, XEN_GUEST_HANDLE(void) arg)
++    int cmd, int vcpuid, XEN_GUEST_HANDLE_PARAM(void) arg)
+ {
+     long rc;
+@@ -3137,7 +3137,7 @@ static hvm_hypercall_t *hvm_hypercall32_table[NR_hypercalls] = {
+ #else /* defined(__x86_64__) */
+ static long hvm_grant_table_op_compat32(unsigned int cmd,
+-                                        XEN_GUEST_HANDLE(void) uop,
++                                        XEN_GUEST_HANDLE_PARAM(void) uop,
+                                         unsigned int count)
+ {
+     if ( !grant_table_op_is_allowed(cmd) )
+@@ -3145,7 +3145,7 @@ static long hvm_grant_table_op_compat32(unsigned int cmd,
+     return compat_grant_table_op(cmd, uop, count);
+ }
+-static long hvm_memory_op_compat32(int cmd, XEN_GUEST_HANDLE(void) arg)
++static long hvm_memory_op_compat32(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
+ {
+     int rc;
+@@ -3164,7 +3164,7 @@ static long hvm_memory_op_compat32(int cmd, XEN_GUEST_HANDLE(void) arg)
+ }
+ static long hvm_vcpu_op_compat32(
+-    int cmd, int vcpuid, XEN_GUEST_HANDLE(void) arg)
++    int cmd, int vcpuid, XEN_GUEST_HANDLE_PARAM(void) arg)
+ {
+     long rc;
+@@ -3188,7 +3188,7 @@ static long hvm_vcpu_op_compat32(
+ }
+ static long hvm_physdev_op_compat32(
+-    int cmd, XEN_GUEST_HANDLE(void) arg)
++    int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
+ {
+     switch ( cmd )
+     {
+@@ -3360,7 +3360,7 @@ void hvm_hypercall_page_initialise(struct domain *d,
+ }
+ static int hvmop_set_pci_intx_level(
+-    XEN_GUEST_HANDLE(xen_hvm_set_pci_intx_level_t) uop)
++    XEN_GUEST_HANDLE_PARAM(xen_hvm_set_pci_intx_level_t) uop)
+ {
+     struct xen_hvm_set_pci_intx_level op;
+     struct domain *d;
+@@ -3525,7 +3525,7 @@ static void hvm_s3_resume(struct domain *d)
+ }
+ static int hvmop_set_isa_irq_level(
+-    XEN_GUEST_HANDLE(xen_hvm_set_isa_irq_level_t) uop)
++    XEN_GUEST_HANDLE_PARAM(xen_hvm_set_isa_irq_level_t) uop)
+ {
+     struct xen_hvm_set_isa_irq_level op;
+     struct domain *d;
+@@ -3569,7 +3569,7 @@ static int hvmop_set_isa_irq_level(
+ }
+ static int hvmop_set_pci_link_route(
+-    XEN_GUEST_HANDLE(xen_hvm_set_pci_link_route_t) uop)
++    XEN_GUEST_HANDLE_PARAM(xen_hvm_set_pci_link_route_t) uop)
+ {
+     struct xen_hvm_set_pci_link_route op;
+     struct domain *d;
+@@ -3602,7 +3602,7 @@ static int hvmop_set_pci_link_route(
+ }
+ static int hvmop_inject_msi(
+-    XEN_GUEST_HANDLE(xen_hvm_inject_msi_t) uop)
++    XEN_GUEST_HANDLE_PARAM(xen_hvm_inject_msi_t) uop)
+ {
+     struct xen_hvm_inject_msi op;
+     struct domain *d;
+@@ -3686,7 +3686,7 @@ static int hvm_replace_event_channel(struct vcpu *v, domid_t remote_domid,
+     return 0;
+ }
+-long do_hvm_op(unsigned long op, XEN_GUEST_HANDLE(void) arg)
++long do_hvm_op(unsigned long op, XEN_GUEST_HANDLE_PARAM(void) arg)
+ {
+     struct domain *curr_d = current->domain;
+diff --git a/xen/arch/x86/microcode.c b/xen/arch/x86/microcode.c
+index bdda3f5..1477481 100644
+--- a/xen/arch/x86/microcode.c
++++ b/xen/arch/x86/microcode.c
+@@ -192,7 +192,7 @@ static long do_microcode_update(void *_info)
+     return error;
+ }
+-int microcode_update(XEN_GUEST_HANDLE(const_void) buf, unsigned long len)
++int microcode_update(XEN_GUEST_HANDLE_PARAM(const_void) buf, unsigned long len)
+ {
+     int ret;
+     struct microcode_info *info;
+diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c
+index f5c704e..4d72700 100644
+--- a/xen/arch/x86/mm.c
++++ b/xen/arch/x86/mm.c
+@@ -2914,7 +2914,7 @@ static void put_pg_owner(struct domain *pg_owner)
+ }
+ static inline int vcpumask_to_pcpumask(
+-    struct domain *d, XEN_GUEST_HANDLE(const_void) bmap, cpumask_t *pmask)
++    struct domain *d, XEN_GUEST_HANDLE_PARAM(const_void) bmap, cpumask_t *pmask)
+ {
+     unsigned int vcpu_id, vcpu_bias, offs;
+     unsigned long vmask;
+@@ -2974,9 +2974,9 @@ static inline void fixunmap_domain_page(const void *ptr)
+ #endif
+ int do_mmuext_op(
+-    XEN_GUEST_HANDLE(mmuext_op_t) uops,
++    XEN_GUEST_HANDLE_PARAM(mmuext_op_t) uops,
+     unsigned int count,
+-    XEN_GUEST_HANDLE(uint) pdone,
++    XEN_GUEST_HANDLE_PARAM(uint) pdone,
+     unsigned int foreigndom)
+ {
+     struct mmuext_op op;
+@@ -3438,9 +3438,9 @@ int do_mmuext_op(
+ }
+ int do_mmu_update(
+-    XEN_GUEST_HANDLE(mmu_update_t) ureqs,
++    XEN_GUEST_HANDLE_PARAM(mmu_update_t) ureqs,
+     unsigned int count,
+-    XEN_GUEST_HANDLE(uint) pdone,
++    XEN_GUEST_HANDLE_PARAM(uint) pdone,
+     unsigned int foreigndom)
+ {
+     struct mmu_update req;
+@@ -4387,7 +4387,7 @@ long set_gdt(struct vcpu *v,
+ }
+-long do_set_gdt(XEN_GUEST_HANDLE(ulong) frame_list, unsigned int entries)
++long do_set_gdt(XEN_GUEST_HANDLE_PARAM(ulong) frame_list, unsigned int entries)
+ {
+     int nr_pages = (entries + 511) / 512;
+     unsigned long frames[16];
+@@ -4661,7 +4661,7 @@ static int xenmem_add_to_physmap(struct domain *d,
+     return xenmem_add_to_physmap_once(d, xatp);
+ }
+-long arch_memory_op(int op, XEN_GUEST_HANDLE(void) arg)
++long arch_memory_op(int op, XEN_GUEST_HANDLE_PARAM(void) arg)
+ {
+     int rc;
+diff --git a/xen/arch/x86/mm/hap/hap.c b/xen/arch/x86/mm/hap/hap.c
+index 13b4be2..67e48a3 100644
+--- a/xen/arch/x86/mm/hap/hap.c
++++ b/xen/arch/x86/mm/hap/hap.c
+@@ -690,7 +690,7 @@ void hap_teardown(struct domain *d)
+ }
+ int hap_domctl(struct domain *d, xen_domctl_shadow_op_t *sc,
+-               XEN_GUEST_HANDLE(void) u_domctl)
++               XEN_GUEST_HANDLE_PARAM(void) u_domctl)
+ {
+     int rc, preempted = 0;
+diff --git a/xen/arch/x86/mm/mem_event.c b/xen/arch/x86/mm/mem_event.c
+index d728889..d3dac14 100644
+--- a/xen/arch/x86/mm/mem_event.c
++++ b/xen/arch/x86/mm/mem_event.c
+@@ -512,7 +512,7 @@ void mem_event_cleanup(struct domain *d)
+ }
+ int mem_event_domctl(struct domain *d, xen_domctl_mem_event_op_t *mec,
+-                     XEN_GUEST_HANDLE(void) u_domctl)
++                     XEN_GUEST_HANDLE_PARAM(void) u_domctl)
+ {
+     int rc;
+diff --git a/xen/arch/x86/mm/paging.c b/xen/arch/x86/mm/paging.c
+index ca879f9..ea44e39 100644
+--- a/xen/arch/x86/mm/paging.c
++++ b/xen/arch/x86/mm/paging.c
+@@ -654,7 +654,7 @@ void paging_vcpu_init(struct vcpu *v)
+ int paging_domctl(struct domain *d, xen_domctl_shadow_op_t *sc,
+-                  XEN_GUEST_HANDLE(void) u_domctl)
++                  XEN_GUEST_HANDLE_PARAM(void) u_domctl)
+ {
+     int rc;
+diff --git a/xen/arch/x86/mm/shadow/common.c b/xen/arch/x86/mm/shadow/common.c
+index dc245be..bd47f03 100644
+--- a/xen/arch/x86/mm/shadow/common.c
++++ b/xen/arch/x86/mm/shadow/common.c
+@@ -3786,7 +3786,7 @@ out:
+ int shadow_domctl(struct domain *d, 
+                   xen_domctl_shadow_op_t *sc,
+-                  XEN_GUEST_HANDLE(void) u_domctl)
++                  XEN_GUEST_HANDLE_PARAM(void) u_domctl)
+ {
+     int rc, preempted = 0;
+diff --git a/xen/arch/x86/oprofile/xenoprof.c b/xen/arch/x86/oprofile/xenoprof.c
+index 71f00ef..5d286a2 100644
+--- a/xen/arch/x86/oprofile/xenoprof.c
++++ b/xen/arch/x86/oprofile/xenoprof.c
+@@ -19,7 +19,7 @@
+ #include "op_counter.h"
+-int xenoprof_arch_counter(XEN_GUEST_HANDLE(void) arg)
++int xenoprof_arch_counter(XEN_GUEST_HANDLE_PARAM(void) arg)
+ {
+     struct xenoprof_counter counter;
+@@ -39,7 +39,7 @@ int xenoprof_arch_counter(XEN_GUEST_HANDLE(void) arg)
+     return 0;
+ }
+-int xenoprof_arch_ibs_counter(XEN_GUEST_HANDLE(void) arg)
++int xenoprof_arch_ibs_counter(XEN_GUEST_HANDLE_PARAM(void) arg)
+ {
+     struct xenoprof_ibs_counter ibs_counter;
+@@ -57,7 +57,7 @@ int xenoprof_arch_ibs_counter(XEN_GUEST_HANDLE(void) arg)
+ }
+ #ifdef CONFIG_COMPAT
+-int compat_oprof_arch_counter(XEN_GUEST_HANDLE(void) arg)
++int compat_oprof_arch_counter(XEN_GUEST_HANDLE_PARAM(void) arg)
+ {
+     struct compat_oprof_counter counter;
+diff --git a/xen/arch/x86/physdev.c b/xen/arch/x86/physdev.c
+index b0458fd..b6474ef 100644
+--- a/xen/arch/x86/physdev.c
++++ b/xen/arch/x86/physdev.c
+@@ -255,7 +255,7 @@ int physdev_unmap_pirq(domid_t domid, int pirq)
+ }
+ #endif /* COMPAT */
+-ret_t do_physdev_op(int cmd, XEN_GUEST_HANDLE(void) arg)
++ret_t do_physdev_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
+ {
+     int irq;
+     ret_t ret;
+diff --git a/xen/arch/x86/platform_hypercall.c b/xen/arch/x86/platform_hypercall.c
+index 88880b0..a32e0a2 100644
+--- a/xen/arch/x86/platform_hypercall.c
++++ b/xen/arch/x86/platform_hypercall.c
+@@ -60,7 +60,7 @@ long cpu_down_helper(void *data);
+ long core_parking_helper(void *data);
+ uint32_t get_cur_idle_nums(void);
+-ret_t do_platform_op(XEN_GUEST_HANDLE(xen_platform_op_t) u_xenpf_op)
++ret_t do_platform_op(XEN_GUEST_HANDLE_PARAM(xen_platform_op_t) u_xenpf_op)
+ {
+     ret_t ret = 0;
+     struct xen_platform_op curop, *op = &curop;
+diff --git a/xen/arch/x86/sysctl.c b/xen/arch/x86/sysctl.c
+index 379f071..b84dd34 100644
+--- a/xen/arch/x86/sysctl.c
++++ b/xen/arch/x86/sysctl.c
+@@ -58,7 +58,7 @@ long cpu_down_helper(void *data)
+ }
+ long arch_do_sysctl(
+-    struct xen_sysctl *sysctl, XEN_GUEST_HANDLE(xen_sysctl_t) u_sysctl)
++    struct xen_sysctl *sysctl, XEN_GUEST_HANDLE_PARAM(xen_sysctl_t) u_sysctl)
+ {
+     long ret = 0;
+diff --git a/xen/arch/x86/traps.c b/xen/arch/x86/traps.c
+index 767be86..281d9e7 100644
+--- a/xen/arch/x86/traps.c
++++ b/xen/arch/x86/traps.c
+@@ -3700,7 +3700,7 @@ int send_guest_trap(struct domain *d, uint16_t vcpuid, unsigned int trap_nr)
+ }
+-long do_set_trap_table(XEN_GUEST_HANDLE(const_trap_info_t) traps)
++long do_set_trap_table(XEN_GUEST_HANDLE_PARAM(const_trap_info_t) traps)
+ {
+     struct trap_info cur;
+     struct vcpu *curr = current;
+diff --git a/xen/arch/x86/x86_32/mm.c b/xen/arch/x86/x86_32/mm.c
+index 37efa3c..f6448fb 100644
+--- a/xen/arch/x86/x86_32/mm.c
++++ b/xen/arch/x86/x86_32/mm.c
+@@ -203,7 +203,7 @@ void __init subarch_init_memory(void)
+     }
+ }
+-long subarch_memory_op(int op, XEN_GUEST_HANDLE(void) arg)
++long subarch_memory_op(int op, XEN_GUEST_HANDLE_PARAM(void) arg)
+ {
+     struct xen_machphys_mfn_list xmml;
+     unsigned long mfn, last_mfn;
+diff --git a/xen/arch/x86/x86_32/traps.c b/xen/arch/x86/x86_32/traps.c
+index 8f68808..0c7c860 100644
+--- a/xen/arch/x86/x86_32/traps.c
++++ b/xen/arch/x86/x86_32/traps.c
+@@ -492,7 +492,7 @@ static long unregister_guest_callback(struct callback_unregister *unreg)
+ }
+-long do_callback_op(int cmd, XEN_GUEST_HANDLE(const_void) arg)
++long do_callback_op(int cmd, XEN_GUEST_HANDLE_PARAM(const_void) arg)
+ {
+     long ret;
+diff --git a/xen/arch/x86/x86_64/compat/mm.c b/xen/arch/x86/x86_64/compat/mm.c
+index 5bcd2fd..1de93b7 100644
+--- a/xen/arch/x86/x86_64/compat/mm.c
++++ b/xen/arch/x86/x86_64/compat/mm.c
+@@ -5,7 +5,7 @@
+ #include <asm/mem_event.h>
+ #include <asm/mem_sharing.h>
+-int compat_set_gdt(XEN_GUEST_HANDLE(uint) frame_list, unsigned int entries)
++int compat_set_gdt(XEN_GUEST_HANDLE_PARAM(uint) frame_list, unsigned int entries)
+ {
+     unsigned int i, nr_pages = (entries + 511) / 512;
+     unsigned long frames[16];
+@@ -44,7 +44,7 @@ int compat_update_descriptor(u32 pa_lo, u32 pa_hi, u32 desc_lo, u32 desc_hi)
+                                 desc_lo | ((u64)desc_hi << 32));
+ }
+-int compat_arch_memory_op(int op, XEN_GUEST_HANDLE(void) arg)
++int compat_arch_memory_op(int op, XEN_GUEST_HANDLE_PARAM(void) arg)
+ {
+     struct compat_machphys_mfn_list xmml;
+     l2_pgentry_t l2e;
+@@ -266,14 +266,14 @@ int compat_update_va_mapping_otherdomain(unsigned long va, u32 lo, u32 hi,
+ DEFINE_XEN_GUEST_HANDLE(mmuext_op_compat_t);
+-int compat_mmuext_op(XEN_GUEST_HANDLE(mmuext_op_compat_t) cmp_uops,
++int compat_mmuext_op(XEN_GUEST_HANDLE_PARAM(mmuext_op_compat_t) cmp_uops,
+                      unsigned int count,
+-                     XEN_GUEST_HANDLE(uint) pdone,
++                     XEN_GUEST_HANDLE_PARAM(uint) pdone,
+                      unsigned int foreigndom)
+ {
+     unsigned int i, preempt_mask;
+     int rc = 0;
+-    XEN_GUEST_HANDLE(mmuext_op_t) nat_ops;
++    XEN_GUEST_HANDLE_PARAM(mmuext_op_t) nat_ops;
+     preempt_mask = count & MMU_UPDATE_PREEMPTED;
+     count ^= preempt_mask;
+diff --git a/xen/arch/x86/x86_64/domain.c b/xen/arch/x86/x86_64/domain.c
+index e746c89..144ca2d 100644
+--- a/xen/arch/x86/x86_64/domain.c
++++ b/xen/arch/x86/x86_64/domain.c
+@@ -23,7 +23,7 @@ CHECK_vcpu_get_physid;
+ int
+ arch_compat_vcpu_op(
+-    int cmd, struct vcpu *v, XEN_GUEST_HANDLE(void) arg)
++    int cmd, struct vcpu *v, XEN_GUEST_HANDLE_PARAM(void) arg)
+ {
+     int rc = -ENOSYS;
+diff --git a/xen/arch/x86/x86_64/mm.c b/xen/arch/x86/x86_64/mm.c
+index 635a499..17c46a1 100644
+--- a/xen/arch/x86/x86_64/mm.c
++++ b/xen/arch/x86/x86_64/mm.c
+@@ -1043,7 +1043,7 @@ void __init subarch_init_memory(void)
+     }
+ }
+-long subarch_memory_op(int op, XEN_GUEST_HANDLE(void) arg)
++long subarch_memory_op(int op, XEN_GUEST_HANDLE_PARAM(void) arg)
+ {
+     struct xen_machphys_mfn_list xmml;
+     l3_pgentry_t l3e;
+diff --git a/xen/arch/x86/x86_64/traps.c b/xen/arch/x86/x86_64/traps.c
+index 806cf2e..6ead813 100644
+--- a/xen/arch/x86/x86_64/traps.c
++++ b/xen/arch/x86/x86_64/traps.c
+@@ -518,7 +518,7 @@ static long unregister_guest_callback(struct callback_unregister *unreg)
+ }
+-long do_callback_op(int cmd, XEN_GUEST_HANDLE(const_void) arg)
++long do_callback_op(int cmd, XEN_GUEST_HANDLE_PARAM(const_void) arg)
+ {
+     long ret;
+diff --git a/xen/common/compat/domain.c b/xen/common/compat/domain.c
+index 40a0287..e4c8ceb 100644
+--- a/xen/common/compat/domain.c
++++ b/xen/common/compat/domain.c
+@@ -15,7 +15,7 @@
+ CHECK_vcpu_set_periodic_timer;
+ #undef xen_vcpu_set_periodic_timer
+-int compat_vcpu_op(int cmd, int vcpuid, XEN_GUEST_HANDLE(void) arg)
++int compat_vcpu_op(int cmd, int vcpuid, XEN_GUEST_HANDLE_PARAM(void) arg)
+ {
+     struct domain *d = current->domain;
+     struct vcpu *v;
+diff --git a/xen/common/compat/grant_table.c b/xen/common/compat/grant_table.c
+index edd20c6..b524955 100644
+--- a/xen/common/compat/grant_table.c
++++ b/xen/common/compat/grant_table.c
+@@ -52,12 +52,12 @@ CHECK_gnttab_swap_grant_ref;
+ #undef xen_gnttab_swap_grant_ref
+ int compat_grant_table_op(unsigned int cmd,
+-                          XEN_GUEST_HANDLE(void) cmp_uop,
++                          XEN_GUEST_HANDLE_PARAM(void) cmp_uop,
+                           unsigned int count)
+ {
+     int rc = 0;
+     unsigned int i;
+-    XEN_GUEST_HANDLE(void) cnt_uop;
++    XEN_GUEST_HANDLE_PARAM(void) cnt_uop;
+     set_xen_guest_handle(cnt_uop, NULL);
+     switch ( cmd )
+@@ -206,7 +206,7 @@ int compat_grant_table_op(unsigned int cmd,
+             }
+             if ( rc >= 0 )
+             {
+-                XEN_GUEST_HANDLE(gnttab_transfer_compat_t) xfer;
++                XEN_GUEST_HANDLE_PARAM(gnttab_transfer_compat_t) xfer;
+                 xfer = guest_handle_cast(cmp_uop, gnttab_transfer_compat_t);
+                 guest_handle_add_offset(xfer, i);
+@@ -251,7 +251,7 @@ int compat_grant_table_op(unsigned int cmd,
+             }
+             if ( rc >= 0 )
+             {
+-                XEN_GUEST_HANDLE(gnttab_copy_compat_t) copy;
++                XEN_GUEST_HANDLE_PARAM(gnttab_copy_compat_t) copy;
+                 copy = guest_handle_cast(cmp_uop, gnttab_copy_compat_t);
+                 guest_handle_add_offset(copy, i);
+diff --git a/xen/common/compat/memory.c b/xen/common/compat/memory.c
+index e7257cc..996151c 100644
+--- a/xen/common/compat/memory.c
++++ b/xen/common/compat/memory.c
+@@ -13,7 +13,7 @@ CHECK_TYPE(domid);
+ #undef compat_domid_t
+ #undef xen_domid_t
+-int compat_memory_op(unsigned int cmd, XEN_GUEST_HANDLE(void) compat)
++int compat_memory_op(unsigned int cmd, XEN_GUEST_HANDLE_PARAM(void) compat)
+ {
+     int rc, split, op = cmd & MEMOP_CMD_MASK;
+     unsigned int start_extent = cmd >> MEMOP_EXTENT_SHIFT;
+@@ -22,7 +22,7 @@ int compat_memory_op(unsigned int cmd, XEN_GUEST_HANDLE(void) compat)
+     {
+         unsigned int i, end_extent = 0;
+         union {
+-            XEN_GUEST_HANDLE(void) hnd;
++            XEN_GUEST_HANDLE_PARAM(void) hnd;
+             struct xen_memory_reservation *rsrv;
+             struct xen_memory_exchange *xchg;
+             struct xen_remove_from_physmap *xrfp;
+diff --git a/xen/common/domain.c b/xen/common/domain.c
+index 4c5d241..d7cd135 100644
+--- a/xen/common/domain.c
++++ b/xen/common/domain.c
+@@ -804,7 +804,7 @@ void vcpu_reset(struct vcpu *v)
+ }
+-long do_vcpu_op(int cmd, int vcpuid, XEN_GUEST_HANDLE(void) arg)
++long do_vcpu_op(int cmd, int vcpuid, XEN_GUEST_HANDLE_PARAM(void) arg)
+ {
+     struct domain *d = current->domain;
+     struct vcpu *v;
+diff --git a/xen/common/domctl.c b/xen/common/domctl.c
+index 7ca6b08..527c5ad 100644
+--- a/xen/common/domctl.c
++++ b/xen/common/domctl.c
+@@ -238,7 +238,7 @@ void domctl_lock_release(void)
+     spin_unlock(&current->domain->hypercall_deadlock_mutex);
+ }
+-long do_domctl(XEN_GUEST_HANDLE(xen_domctl_t) u_domctl)
++long do_domctl(XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl)
+ {
+     long ret = 0;
+     struct xen_domctl curop, *op = &curop;
+diff --git a/xen/common/event_channel.c b/xen/common/event_channel.c
+index 53777f8..a80a0d1 100644
+--- a/xen/common/event_channel.c
++++ b/xen/common/event_channel.c
+@@ -970,7 +970,7 @@ out:
+ }
+-long do_event_channel_op(int cmd, XEN_GUEST_HANDLE(void) arg)
++long do_event_channel_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
+ {
+     long rc;
+diff --git a/xen/common/grant_table.c b/xen/common/grant_table.c
+index 9961e83..d780dc6 100644
+--- a/xen/common/grant_table.c
++++ b/xen/common/grant_table.c
+@@ -771,7 +771,7 @@ __gnttab_map_grant_ref(
+ static long
+ gnttab_map_grant_ref(
+-    XEN_GUEST_HANDLE(gnttab_map_grant_ref_t) uop, unsigned int count)
++    XEN_GUEST_HANDLE_PARAM(gnttab_map_grant_ref_t) uop, unsigned int count)
+ {
+     int i;
+     struct gnttab_map_grant_ref op;
+@@ -1040,7 +1040,7 @@ __gnttab_unmap_grant_ref(
+ static long
+ gnttab_unmap_grant_ref(
+-    XEN_GUEST_HANDLE(gnttab_unmap_grant_ref_t) uop, unsigned int count)
++    XEN_GUEST_HANDLE_PARAM(gnttab_unmap_grant_ref_t) uop, unsigned int count)
+ {
+     int i, c, partial_done, done = 0;
+     struct gnttab_unmap_grant_ref op;
+@@ -1102,7 +1102,7 @@ __gnttab_unmap_and_replace(
+ static long
+ gnttab_unmap_and_replace(
+-    XEN_GUEST_HANDLE(gnttab_unmap_and_replace_t) uop, unsigned int count)
++    XEN_GUEST_HANDLE_PARAM(gnttab_unmap_and_replace_t) uop, unsigned int count)
+ {
+     int i, c, partial_done, done = 0;
+     struct gnttab_unmap_and_replace op;
+@@ -1254,7 +1254,7 @@ active_alloc_failed:
+ static long 
+ gnttab_setup_table(
+-    XEN_GUEST_HANDLE(gnttab_setup_table_t) uop, unsigned int count)
++    XEN_GUEST_HANDLE_PARAM(gnttab_setup_table_t) uop, unsigned int count)
+ {
+     struct gnttab_setup_table op;
+     struct domain *d;
+@@ -1348,7 +1348,7 @@ gnttab_setup_table(
+ static long 
+ gnttab_query_size(
+-    XEN_GUEST_HANDLE(gnttab_query_size_t) uop, unsigned int count)
++    XEN_GUEST_HANDLE_PARAM(gnttab_query_size_t) uop, unsigned int count)
+ {
+     struct gnttab_query_size op;
+     struct domain *d;
+@@ -1485,7 +1485,7 @@ gnttab_prepare_for_transfer(
+ static long
+ gnttab_transfer(
+-    XEN_GUEST_HANDLE(gnttab_transfer_t) uop, unsigned int count)
++    XEN_GUEST_HANDLE_PARAM(gnttab_transfer_t) uop, unsigned int count)
+ {
+     struct domain *d = current->domain;
+     struct domain *e;
+@@ -2082,7 +2082,7 @@ __gnttab_copy(
+ static long
+ gnttab_copy(
+-    XEN_GUEST_HANDLE(gnttab_copy_t) uop, unsigned int count)
++    XEN_GUEST_HANDLE_PARAM(gnttab_copy_t) uop, unsigned int count)
+ {
+     int i;
+     struct gnttab_copy op;
+@@ -2101,7 +2101,7 @@ gnttab_copy(
+ }
+ static long
+-gnttab_set_version(XEN_GUEST_HANDLE(gnttab_set_version_t uop))
++gnttab_set_version(XEN_GUEST_HANDLE_PARAM(gnttab_set_version_t uop))
+ {
+     gnttab_set_version_t op;
+     struct domain *d = current->domain;
+@@ -2220,7 +2220,7 @@ out:
+ }
+ static long
+-gnttab_get_status_frames(XEN_GUEST_HANDLE(gnttab_get_status_frames_t) uop,
++gnttab_get_status_frames(XEN_GUEST_HANDLE_PARAM(gnttab_get_status_frames_t) uop,
+                          int count)
+ {
+     gnttab_get_status_frames_t op;
+@@ -2289,7 +2289,7 @@ out1:
+ }
+ static long
+-gnttab_get_version(XEN_GUEST_HANDLE(gnttab_get_version_t uop))
++gnttab_get_version(XEN_GUEST_HANDLE_PARAM(gnttab_get_version_t uop))
+ {
+     gnttab_get_version_t op;
+     struct domain *d;
+@@ -2368,7 +2368,7 @@ out:
+ }
+ static long
+-gnttab_swap_grant_ref(XEN_GUEST_HANDLE(gnttab_swap_grant_ref_t uop),
++gnttab_swap_grant_ref(XEN_GUEST_HANDLE_PARAM(gnttab_swap_grant_ref_t uop),
+                       unsigned int count)
+ {
+     int i;
+@@ -2389,7 +2389,7 @@ gnttab_swap_grant_ref(XEN_GUEST_HANDLE(gnttab_swap_grant_ref_t uop),
+ long
+ do_grant_table_op(
+-    unsigned int cmd, XEN_GUEST_HANDLE(void) uop, unsigned int count)
++    unsigned int cmd, XEN_GUEST_HANDLE_PARAM(void) uop, unsigned int count)
+ {
+     long rc;
+     
+@@ -2401,7 +2401,7 @@ do_grant_table_op(
+     {
+     case GNTTABOP_map_grant_ref:
+     {
+-        XEN_GUEST_HANDLE(gnttab_map_grant_ref_t) map =
++        XEN_GUEST_HANDLE_PARAM(gnttab_map_grant_ref_t) map =
+             guest_handle_cast(uop, gnttab_map_grant_ref_t);
+         if ( unlikely(!guest_handle_okay(map, count)) )
+             goto out;
+@@ -2415,7 +2415,7 @@ do_grant_table_op(
+     }
+     case GNTTABOP_unmap_grant_ref:
+     {
+-        XEN_GUEST_HANDLE(gnttab_unmap_grant_ref_t) unmap =
++        XEN_GUEST_HANDLE_PARAM(gnttab_unmap_grant_ref_t) unmap =
+             guest_handle_cast(uop, gnttab_unmap_grant_ref_t);
+         if ( unlikely(!guest_handle_okay(unmap, count)) )
+             goto out;
+@@ -2429,7 +2429,7 @@ do_grant_table_op(
+     }
+     case GNTTABOP_unmap_and_replace:
+     {
+-        XEN_GUEST_HANDLE(gnttab_unmap_and_replace_t) unmap =
++        XEN_GUEST_HANDLE_PARAM(gnttab_unmap_and_replace_t) unmap =
+             guest_handle_cast(uop, gnttab_unmap_and_replace_t);
+         if ( unlikely(!guest_handle_okay(unmap, count)) )
+             goto out;
+@@ -2453,7 +2453,7 @@ do_grant_table_op(
+     }
+     case GNTTABOP_transfer:
+     {
+-        XEN_GUEST_HANDLE(gnttab_transfer_t) transfer =
++        XEN_GUEST_HANDLE_PARAM(gnttab_transfer_t) transfer =
+             guest_handle_cast(uop, gnttab_transfer_t);
+         if ( unlikely(!guest_handle_okay(transfer, count)) )
+             goto out;
+@@ -2467,7 +2467,7 @@ do_grant_table_op(
+     }
+     case GNTTABOP_copy:
+     {
+-        XEN_GUEST_HANDLE(gnttab_copy_t) copy =
++        XEN_GUEST_HANDLE_PARAM(gnttab_copy_t) copy =
+             guest_handle_cast(uop, gnttab_copy_t);
+         if ( unlikely(!guest_handle_okay(copy, count)) )
+             goto out;
+@@ -2504,7 +2504,7 @@ do_grant_table_op(
+     }
+     case GNTTABOP_swap_grant_ref:
+     {
+-        XEN_GUEST_HANDLE(gnttab_swap_grant_ref_t) swap =
++        XEN_GUEST_HANDLE_PARAM(gnttab_swap_grant_ref_t) swap =
+             guest_handle_cast(uop, gnttab_swap_grant_ref_t);
+         if ( unlikely(!guest_handle_okay(swap, count)) )
+             goto out;
+diff --git a/xen/common/kernel.c b/xen/common/kernel.c
+index c915bbc..55caff6 100644
+--- a/xen/common/kernel.c
++++ b/xen/common/kernel.c
+@@ -204,7 +204,7 @@ void __init do_initcalls(void)
+  * Simple hypercalls.
+  */
+-DO(xen_version)(int cmd, XEN_GUEST_HANDLE(void) arg)
++DO(xen_version)(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
+ {
+     switch ( cmd )
+     {
+@@ -332,7 +332,7 @@ DO(xen_version)(int cmd, XEN_GUEST_HANDLE(void) arg)
+     return -ENOSYS;
+ }
+-DO(nmi_op)(unsigned int cmd, XEN_GUEST_HANDLE(void) arg)
++DO(nmi_op)(unsigned int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
+ {
+     struct xennmi_callback cb;
+     long rc = 0;
+diff --git a/xen/common/kexec.c b/xen/common/kexec.c
+index 09a5624..03389eb 100644
+--- a/xen/common/kexec.c
++++ b/xen/common/kexec.c
+@@ -613,7 +613,7 @@ static int kexec_get_range_internal(xen_kexec_range_t *range)
+     return ret;
+ }
+-static int kexec_get_range(XEN_GUEST_HANDLE(void) uarg)
++static int kexec_get_range(XEN_GUEST_HANDLE_PARAM(void) uarg)
+ {
+     xen_kexec_range_t range;
+     int ret = -EINVAL;
+@@ -629,7 +629,7 @@ static int kexec_get_range(XEN_GUEST_HANDLE(void) uarg)
+     return ret;
+ }
+-static int kexec_get_range_compat(XEN_GUEST_HANDLE(void) uarg)
++static int kexec_get_range_compat(XEN_GUEST_HANDLE_PARAM(void) uarg)
+ {
+ #ifdef CONFIG_COMPAT
+     xen_kexec_range_t range;
+@@ -777,7 +777,7 @@ static int kexec_load_unload_internal(unsigned long op, xen_kexec_load_t *load)
+     return ret;
+ }
+-static int kexec_load_unload(unsigned long op, XEN_GUEST_HANDLE(void) uarg)
++static int kexec_load_unload(unsigned long op, XEN_GUEST_HANDLE_PARAM(void) uarg)
+ {
+     xen_kexec_load_t load;
+@@ -788,7 +788,7 @@ static int kexec_load_unload(unsigned long op, XEN_GUEST_HANDLE(void) uarg)
+ }
+ static int kexec_load_unload_compat(unsigned long op,
+-                                    XEN_GUEST_HANDLE(void) uarg)
++                                    XEN_GUEST_HANDLE_PARAM(void) uarg)
+ {
+ #ifdef CONFIG_COMPAT
+     compat_kexec_load_t compat_load;
+@@ -813,7 +813,7 @@ static int kexec_load_unload_compat(unsigned long op,
+ #endif /* CONFIG_COMPAT */
+ }
+-static int kexec_exec(XEN_GUEST_HANDLE(void) uarg)
++static int kexec_exec(XEN_GUEST_HANDLE_PARAM(void) uarg)
+ {
+     xen_kexec_exec_t exec;
+     xen_kexec_image_t *image;
+@@ -845,7 +845,7 @@ static int kexec_exec(XEN_GUEST_HANDLE(void) uarg)
+     return -EINVAL; /* never reached */
+ }
+-int do_kexec_op_internal(unsigned long op, XEN_GUEST_HANDLE(void) uarg,
++int do_kexec_op_internal(unsigned long op, XEN_GUEST_HANDLE_PARAM(void) uarg,
+                            int compat)
+ {
+     unsigned long flags;
+@@ -886,13 +886,13 @@ int do_kexec_op_internal(unsigned long op, XEN_GUEST_HANDLE(void) uarg,
+     return ret;
+ }
+-long do_kexec_op(unsigned long op, XEN_GUEST_HANDLE(void) uarg)
++long do_kexec_op(unsigned long op, XEN_GUEST_HANDLE_PARAM(void) uarg)
+ {
+     return do_kexec_op_internal(op, uarg, 0);
+ }
+ #ifdef CONFIG_COMPAT
+-int compat_kexec_op(unsigned long op, XEN_GUEST_HANDLE(void) uarg)
++int compat_kexec_op(unsigned long op, XEN_GUEST_HANDLE_PARAM(void) uarg)
+ {
+     return do_kexec_op_internal(op, uarg, 1);
+ }
+diff --git a/xen/common/memory.c b/xen/common/memory.c
+index 7e58cc4..a683954 100644
+--- a/xen/common/memory.c
++++ b/xen/common/memory.c
+@@ -277,7 +277,7 @@ static void decrease_reservation(struct memop_args *a)
+     a->nr_done = i;
+ }
+-static long memory_exchange(XEN_GUEST_HANDLE(xen_memory_exchange_t) arg)
++static long memory_exchange(XEN_GUEST_HANDLE_PARAM(xen_memory_exchange_t) arg)
+ {
+     struct xen_memory_exchange exch;
+     PAGE_LIST_HEAD(in_chunk_list);
+@@ -530,7 +530,7 @@ static long memory_exchange(XEN_GUEST_HANDLE(xen_memory_exchange_t) arg)
+     return rc;
+ }
+-long do_memory_op(unsigned long cmd, XEN_GUEST_HANDLE(void) arg)
++long do_memory_op(unsigned long cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
+ {
+     struct domain *d;
+     int rc, op;
+diff --git a/xen/common/multicall.c b/xen/common/multicall.c
+index 6c1a9d7..5de5f8d 100644
+--- a/xen/common/multicall.c
++++ b/xen/common/multicall.c
+@@ -21,7 +21,7 @@ typedef long ret_t;
+ ret_t
+ do_multicall(
+-    XEN_GUEST_HANDLE(multicall_entry_t) call_list, unsigned int nr_calls)
++    XEN_GUEST_HANDLE_PARAM(multicall_entry_t) call_list, unsigned int nr_calls)
+ {
+     struct mc_state *mcs = &current->mc_state;
+     unsigned int     i;
+diff --git a/xen/common/schedule.c b/xen/common/schedule.c
+index 0854f55..c26eac4 100644
+--- a/xen/common/schedule.c
++++ b/xen/common/schedule.c
+@@ -836,7 +836,7 @@ typedef long ret_t;
+ #endif /* !COMPAT */
+-ret_t do_sched_op(int cmd, XEN_GUEST_HANDLE(void) arg)
++ret_t do_sched_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
+ {
+     ret_t ret = 0;
+diff --git a/xen/common/sysctl.c b/xen/common/sysctl.c
+index ea68278..47142f4 100644
+--- a/xen/common/sysctl.c
++++ b/xen/common/sysctl.c
+@@ -27,7 +27,7 @@
+ #include <xsm/xsm.h>
+ #include <xen/pmstat.h>
+-long do_sysctl(XEN_GUEST_HANDLE(xen_sysctl_t) u_sysctl)
++long do_sysctl(XEN_GUEST_HANDLE_PARAM(xen_sysctl_t) u_sysctl)
+ {
+     long ret = 0;
+     struct xen_sysctl curop, *op = &curop;
+diff --git a/xen/common/xenoprof.c b/xen/common/xenoprof.c
+index e571fea..c001b38 100644
+--- a/xen/common/xenoprof.c
++++ b/xen/common/xenoprof.c
+@@ -404,7 +404,7 @@ static int add_active_list(domid_t domid)
+     return 0;
+ }
+-static int add_passive_list(XEN_GUEST_HANDLE(void) arg)
++static int add_passive_list(XEN_GUEST_HANDLE_PARAM(void) arg)
+ {
+     struct xenoprof_passive passive;
+     struct domain *d;
+@@ -585,7 +585,7 @@ void xenoprof_log_event(struct vcpu *vcpu, const struct cpu_user_regs *regs,
+-static int xenoprof_op_init(XEN_GUEST_HANDLE(void) arg)
++static int xenoprof_op_init(XEN_GUEST_HANDLE_PARAM(void) arg)
+ {
+     struct domain *d = current->domain;
+     struct xenoprof_init xenoprof_init;
+@@ -609,7 +609,7 @@ static int xenoprof_op_init(XEN_GUEST_HANDLE(void) arg)
+ #endif /* !COMPAT */
+-static int xenoprof_op_get_buffer(XEN_GUEST_HANDLE(void) arg)
++static int xenoprof_op_get_buffer(XEN_GUEST_HANDLE_PARAM(void) arg)
+ {
+     struct xenoprof_get_buffer xenoprof_get_buffer;
+     struct domain *d = current->domain;
+@@ -660,7 +660,7 @@ static int xenoprof_op_get_buffer(XEN_GUEST_HANDLE(void) arg)
+                       || (op == XENOPROF_disable_virq)  \
+                       || (op == XENOPROF_get_buffer))
+  
+-int do_xenoprof_op(int op, XEN_GUEST_HANDLE(void) arg)
++int do_xenoprof_op(int op, XEN_GUEST_HANDLE_PARAM(void) arg)
+ {
+     int ret = 0;
+     
+diff --git a/xen/drivers/acpi/pmstat.c b/xen/drivers/acpi/pmstat.c
+index 698711e..f8d62f2 100644
+--- a/xen/drivers/acpi/pmstat.c
++++ b/xen/drivers/acpi/pmstat.c
+@@ -515,7 +515,7 @@ int do_pm_op(struct xen_sysctl_pm_op *op)
+     return ret;
+ }
+-int acpi_set_pdc_bits(u32 acpi_id, XEN_GUEST_HANDLE(uint32) pdc)
++int acpi_set_pdc_bits(u32 acpi_id, XEN_GUEST_HANDLE_PARAM(uint32) pdc)
+ {
+     u32 bits[3];
+     int ret;
+diff --git a/xen/drivers/char/console.c b/xen/drivers/char/console.c
+index e10bed5..b0f2334 100644
+--- a/xen/drivers/char/console.c
++++ b/xen/drivers/char/console.c
+@@ -182,7 +182,7 @@ static void putchar_console_ring(int c)
+ long read_console_ring(struct xen_sysctl_readconsole *op)
+ {
+-    XEN_GUEST_HANDLE(char) str;
++    XEN_GUEST_HANDLE_PARAM(char) str;
+     uint32_t idx, len, max, sofar, c;
+     str   = guest_handle_cast(op->buffer, char),
+@@ -320,7 +320,7 @@ static void notify_dom0_con_ring(unsigned long unused)
+ static DECLARE_SOFTIRQ_TASKLET(notify_dom0_con_ring_tasklet,
+                                notify_dom0_con_ring, 0);
+-static long guest_console_write(XEN_GUEST_HANDLE(char) buffer, int count)
++static long guest_console_write(XEN_GUEST_HANDLE_PARAM(char) buffer, int count)
+ {
+     char kbuf[128], *kptr;
+     int kcount;
+@@ -358,7 +358,7 @@ static long guest_console_write(XEN_GUEST_HANDLE(char) buffer, int count)
+     return 0;
+ }
+-long do_console_io(int cmd, int count, XEN_GUEST_HANDLE(char) buffer)
++long do_console_io(int cmd, int count, XEN_GUEST_HANDLE_PARAM(char) buffer)
+ {
+     long rc;
+     unsigned int idx, len;
+diff --git a/xen/drivers/passthrough/iommu.c b/xen/drivers/passthrough/iommu.c
+index 64f5fd1..396461f 100644
+--- a/xen/drivers/passthrough/iommu.c
++++ b/xen/drivers/passthrough/iommu.c
+@@ -518,7 +518,7 @@ void iommu_crash_shutdown(void)
+ int iommu_do_domctl(
+     struct xen_domctl *domctl,
+-    XEN_GUEST_HANDLE(xen_domctl_t) u_domctl)
++    XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl)
+ {
+     struct domain *d;
+     u16 seg;
+diff --git a/xen/include/asm-arm/hypercall.h b/xen/include/asm-arm/hypercall.h
+index 454f02e..090e620 100644
+--- a/xen/include/asm-arm/hypercall.h
++++ b/xen/include/asm-arm/hypercall.h
+@@ -2,7 +2,7 @@
+ #define __ASM_ARM_HYPERCALL_H__
+ #include <public/domctl.h> /* for arch_do_domctl */
+-int do_physdev_op(int cmd, XEN_GUEST_HANDLE(void) arg);
++int do_physdev_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg);
+ #endif /* __ASM_ARM_HYPERCALL_H__ */
+ /*
+diff --git a/xen/include/asm-arm/mm.h b/xen/include/asm-arm/mm.h
+index b37bd35..8bf45ba 100644
+--- a/xen/include/asm-arm/mm.h
++++ b/xen/include/asm-arm/mm.h
+@@ -267,7 +267,7 @@ static inline int relinquish_shared_pages(struct domain *d)
+ /* Arch-specific portion of memory_op hypercall. */
+-long arch_memory_op(int op, XEN_GUEST_HANDLE(void) arg);
++long arch_memory_op(int op, XEN_GUEST_HANDLE_PARAM(void) arg);
+ int steal_page(
+     struct domain *d, struct page_info *page, unsigned int memflags);
+diff --git a/xen/include/asm-x86/hap.h b/xen/include/asm-x86/hap.h
+index a2532a4..916a35b 100644
+--- a/xen/include/asm-x86/hap.h
++++ b/xen/include/asm-x86/hap.h
+@@ -51,7 +51,7 @@ hap_unmap_domain_page(void *p)
+ /************************************************/
+ void  hap_domain_init(struct domain *d);
+ int   hap_domctl(struct domain *d, xen_domctl_shadow_op_t *sc,
+-                 XEN_GUEST_HANDLE(void) u_domctl);
++                 XEN_GUEST_HANDLE_PARAM(void) u_domctl);
+ int   hap_enable(struct domain *d, u32 mode);
+ void  hap_final_teardown(struct domain *d);
+ void  hap_teardown(struct domain *d);
+diff --git a/xen/include/asm-x86/hypercall.h b/xen/include/asm-x86/hypercall.h
+index 9e136c3..55b5ca2 100644
+--- a/xen/include/asm-x86/hypercall.h
++++ b/xen/include/asm-x86/hypercall.h
+@@ -18,22 +18,22 @@
+ extern long
+ do_event_channel_op_compat(
+-    XEN_GUEST_HANDLE(evtchn_op_t) uop);
++    XEN_GUEST_HANDLE_PARAM(evtchn_op_t) uop);
+ extern long
+ do_set_trap_table(
+-    XEN_GUEST_HANDLE(const_trap_info_t) traps);
++    XEN_GUEST_HANDLE_PARAM(const_trap_info_t) traps);
+ extern int
+ do_mmu_update(
+-    XEN_GUEST_HANDLE(mmu_update_t) ureqs,
++    XEN_GUEST_HANDLE_PARAM(mmu_update_t) ureqs,
+     unsigned int count,
+-    XEN_GUEST_HANDLE(uint) pdone,
++    XEN_GUEST_HANDLE_PARAM(uint) pdone,
+     unsigned int foreigndom);
+ extern long
+ do_set_gdt(
+-    XEN_GUEST_HANDLE(ulong) frame_list,
++    XEN_GUEST_HANDLE_PARAM(ulong) frame_list,
+     unsigned int entries);
+ extern long
+@@ -60,7 +60,7 @@ do_update_descriptor(
+     u64 desc);
+ extern long
+-do_mca(XEN_GUEST_HANDLE(xen_mc_t) u_xen_mc);
++do_mca(XEN_GUEST_HANDLE_PARAM(xen_mc_t) u_xen_mc);
+ extern int
+ do_update_va_mapping(
+@@ -70,7 +70,7 @@ do_update_va_mapping(
+ extern long
+ do_physdev_op(
+-    int cmd, XEN_GUEST_HANDLE(void) arg);
++    int cmd, XEN_GUEST_HANDLE_PARAM(void) arg);
+ extern int
+ do_update_va_mapping_otherdomain(
+@@ -81,9 +81,9 @@ do_update_va_mapping_otherdomain(
+ extern int
+ do_mmuext_op(
+-    XEN_GUEST_HANDLE(mmuext_op_t) uops,
++    XEN_GUEST_HANDLE_PARAM(mmuext_op_t) uops,
+     unsigned int count,
+-    XEN_GUEST_HANDLE(uint) pdone,
++    XEN_GUEST_HANDLE_PARAM(uint) pdone,
+     unsigned int foreigndom);
+ extern unsigned long
+@@ -92,7 +92,7 @@ do_iret(
+ extern int
+ do_kexec(
+-    unsigned long op, unsigned arg1, XEN_GUEST_HANDLE(void) uarg);
++    unsigned long op, unsigned arg1, XEN_GUEST_HANDLE_PARAM(void) uarg);
+ #ifdef __x86_64__
+@@ -110,11 +110,11 @@ do_set_segment_base(
+ extern int
+ compat_physdev_op(
+     int cmd,
+-    XEN_GUEST_HANDLE(void) arg);
++    XEN_GUEST_HANDLE_PARAM(void) arg);
+ extern int
+ arch_compat_vcpu_op(
+-    int cmd, struct vcpu *v, XEN_GUEST_HANDLE(void) arg);
++    int cmd, struct vcpu *v, XEN_GUEST_HANDLE_PARAM(void) arg);
+ #else
+diff --git a/xen/include/asm-x86/mem_event.h b/xen/include/asm-x86/mem_event.h
+index 23d71c1..e17f36b 100644
+--- a/xen/include/asm-x86/mem_event.h
++++ b/xen/include/asm-x86/mem_event.h
+@@ -65,7 +65,7 @@ int mem_event_get_response(struct domain *d, struct mem_event_domain *med,
+ struct domain *get_mem_event_op_target(uint32_t domain, int *rc);
+ int do_mem_event_op(int op, uint32_t domain, void *arg);
+ int mem_event_domctl(struct domain *d, xen_domctl_mem_event_op_t *mec,
+-                     XEN_GUEST_HANDLE(void) u_domctl);
++                     XEN_GUEST_HANDLE_PARAM(void) u_domctl);
+ #endif /* __MEM_EVENT_H__ */
+diff --git a/xen/include/asm-x86/mm.h b/xen/include/asm-x86/mm.h
+index 4cba276..6373b3b 100644
+--- a/xen/include/asm-x86/mm.h
++++ b/xen/include/asm-x86/mm.h
+@@ -604,10 +604,10 @@ void *do_page_walk(struct vcpu *v, unsigned long addr);
+ int __sync_local_execstate(void);
+ /* Arch-specific portion of memory_op hypercall. */
+-long arch_memory_op(int op, XEN_GUEST_HANDLE(void) arg);
+-long subarch_memory_op(int op, XEN_GUEST_HANDLE(void) arg);
+-int compat_arch_memory_op(int op, XEN_GUEST_HANDLE(void));
+-int compat_subarch_memory_op(int op, XEN_GUEST_HANDLE(void));
++long arch_memory_op(int op, XEN_GUEST_HANDLE_PARAM(void) arg);
++long subarch_memory_op(int op, XEN_GUEST_HANDLE_PARAM(void) arg);
++int compat_arch_memory_op(int op, XEN_GUEST_HANDLE_PARAM(void));
++int compat_subarch_memory_op(int op, XEN_GUEST_HANDLE_PARAM(void));
+ int steal_page(
+     struct domain *d, struct page_info *page, unsigned int memflags);
+diff --git a/xen/include/asm-x86/paging.h b/xen/include/asm-x86/paging.h
+index c432a97..1cd0e3f 100644
+--- a/xen/include/asm-x86/paging.h
++++ b/xen/include/asm-x86/paging.h
+@@ -215,7 +215,7 @@ int paging_domain_init(struct domain *d, unsigned int domcr_flags);
+  * and disable ephemeral shadow modes (test mode and log-dirty mode) and
+  * manipulate the log-dirty bitmap. */
+ int paging_domctl(struct domain *d, xen_domctl_shadow_op_t *sc,
+-                  XEN_GUEST_HANDLE(void) u_domctl);
++                  XEN_GUEST_HANDLE_PARAM(void) u_domctl);
+ /* Call when destroying a domain */
+ void paging_teardown(struct domain *d);
+diff --git a/xen/include/asm-x86/processor.h b/xen/include/asm-x86/processor.h
+index 7164a50..efdbddd 100644
+--- a/xen/include/asm-x86/processor.h
++++ b/xen/include/asm-x86/processor.h
+@@ -598,7 +598,7 @@ int rdmsr_hypervisor_regs(uint32_t idx, uint64_t *val);
+ int wrmsr_hypervisor_regs(uint32_t idx, uint64_t val);
+ void microcode_set_module(unsigned int);
+-int microcode_update(XEN_GUEST_HANDLE(const_void), unsigned long len);
++int microcode_update(XEN_GUEST_HANDLE_PARAM(const_void), unsigned long len);
+ int microcode_resume_cpu(int cpu);
+ unsigned long *get_x86_gpr(struct cpu_user_regs *regs, unsigned int modrm_reg);
+diff --git a/xen/include/asm-x86/shadow.h b/xen/include/asm-x86/shadow.h
+index 88a8cd2..2eb6efc 100644
+--- a/xen/include/asm-x86/shadow.h
++++ b/xen/include/asm-x86/shadow.h
+@@ -73,7 +73,7 @@ int shadow_track_dirty_vram(struct domain *d,
+  * manipulate the log-dirty bitmap. */
+ int shadow_domctl(struct domain *d, 
+                   xen_domctl_shadow_op_t *sc,
+-                  XEN_GUEST_HANDLE(void) u_domctl);
++                  XEN_GUEST_HANDLE_PARAM(void) u_domctl);
+ /* Call when destroying a domain */
+ void shadow_teardown(struct domain *d);
+diff --git a/xen/include/asm-x86/xenoprof.h b/xen/include/asm-x86/xenoprof.h
+index c03f8c8..3f5ea15 100644
+--- a/xen/include/asm-x86/xenoprof.h
++++ b/xen/include/asm-x86/xenoprof.h
+@@ -40,9 +40,9 @@ int xenoprof_arch_init(int *num_events, char *cpu_type);
+ #define xenoprof_arch_disable_virq()            nmi_disable_virq()
+ #define xenoprof_arch_release_counters()        nmi_release_counters()
+-int xenoprof_arch_counter(XEN_GUEST_HANDLE(void) arg);
+-int compat_oprof_arch_counter(XEN_GUEST_HANDLE(void) arg);
+-int xenoprof_arch_ibs_counter(XEN_GUEST_HANDLE(void) arg);
++int xenoprof_arch_counter(XEN_GUEST_HANDLE_PARAM(void) arg);
++int compat_oprof_arch_counter(XEN_GUEST_HANDLE_PARAM(void) arg);
++int xenoprof_arch_ibs_counter(XEN_GUEST_HANDLE_PARAM(void) arg);
+ struct vcpu;
+ struct cpu_user_regs;
+diff --git a/xen/include/xen/acpi.h b/xen/include/xen/acpi.h
+index d7e2f94..8f3cdca 100644
+--- a/xen/include/xen/acpi.h
++++ b/xen/include/xen/acpi.h
+@@ -145,8 +145,8 @@ static inline unsigned int acpi_get_cstate_limit(void) { return 0; }
+ static inline void acpi_set_cstate_limit(unsigned int new_limit) { return; }
+ #endif
+-#ifdef XEN_GUEST_HANDLE
+-int acpi_set_pdc_bits(u32 acpi_id, XEN_GUEST_HANDLE(uint32));
++#ifdef XEN_GUEST_HANDLE_PARAM
++int acpi_set_pdc_bits(u32 acpi_id, XEN_GUEST_HANDLE_PARAM(uint32));
+ #endif
+ int arch_acpi_set_pdc_bits(u32 acpi_id, u32 *, u32 mask);
+diff --git a/xen/include/xen/hypercall.h b/xen/include/xen/hypercall.h
+index 73b1598..e335037 100644
+--- a/xen/include/xen/hypercall.h
++++ b/xen/include/xen/hypercall.h
+@@ -29,29 +29,29 @@ do_sched_op_compat(
+ extern long
+ do_sched_op(
+     int cmd,
+-    XEN_GUEST_HANDLE(void) arg);
++    XEN_GUEST_HANDLE_PARAM(void) arg);
+ extern long
+ do_domctl(
+-    XEN_GUEST_HANDLE(xen_domctl_t) u_domctl);
++    XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl);
+ extern long
+ arch_do_domctl(
+     struct xen_domctl *domctl,
+-    XEN_GUEST_HANDLE(xen_domctl_t) u_domctl);
++    XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl);
+ extern long
+ do_sysctl(
+-    XEN_GUEST_HANDLE(xen_sysctl_t) u_sysctl);
++    XEN_GUEST_HANDLE_PARAM(xen_sysctl_t) u_sysctl);
+ extern long
+ arch_do_sysctl(
+     struct xen_sysctl *sysctl,
+-    XEN_GUEST_HANDLE(xen_sysctl_t) u_sysctl);
++    XEN_GUEST_HANDLE_PARAM(xen_sysctl_t) u_sysctl);
+ extern long
+ do_platform_op(
+-    XEN_GUEST_HANDLE(xen_platform_op_t) u_xenpf_op);
++    XEN_GUEST_HANDLE_PARAM(xen_platform_op_t) u_xenpf_op);
+ /*
+  * To allow safe resume of do_memory_op() after preemption, we need to know
+@@ -64,11 +64,11 @@ do_platform_op(
+ extern long
+ do_memory_op(
+     unsigned long cmd,
+-    XEN_GUEST_HANDLE(void) arg);
++    XEN_GUEST_HANDLE_PARAM(void) arg);
+ extern long
+ do_multicall(
+-    XEN_GUEST_HANDLE(multicall_entry_t) call_list,
++    XEN_GUEST_HANDLE_PARAM(multicall_entry_t) call_list,
+     unsigned int nr_calls);
+ extern long
+@@ -77,23 +77,23 @@ do_set_timer_op(
+ extern long
+ do_event_channel_op(
+-    int cmd, XEN_GUEST_HANDLE(void) arg);
++    int cmd, XEN_GUEST_HANDLE_PARAM(void) arg);
+ extern long
+ do_xen_version(
+     int cmd,
+-    XEN_GUEST_HANDLE(void) arg);
++    XEN_GUEST_HANDLE_PARAM(void) arg);
+ extern long
+ do_console_io(
+     int cmd,
+     int count,
+-    XEN_GUEST_HANDLE(char) buffer);
++    XEN_GUEST_HANDLE_PARAM(char) buffer);
+ extern long
+ do_grant_table_op(
+     unsigned int cmd,
+-    XEN_GUEST_HANDLE(void) uop,
++    XEN_GUEST_HANDLE_PARAM(void) uop,
+     unsigned int count);
+ extern long
+@@ -105,72 +105,72 @@ extern long
+ do_vcpu_op(
+     int cmd,
+     int vcpuid,
+-    XEN_GUEST_HANDLE(void) arg);
++    XEN_GUEST_HANDLE_PARAM(void) arg);
+ struct vcpu;
+ extern long
+ arch_do_vcpu_op(int cmd,
+     struct vcpu *v,
+-    XEN_GUEST_HANDLE(void) arg);
++    XEN_GUEST_HANDLE_PARAM(void) arg);
+ extern long
+ do_nmi_op(
+     unsigned int cmd,
+-    XEN_GUEST_HANDLE(void) arg);
++    XEN_GUEST_HANDLE_PARAM(void) arg);
+ extern long
+ do_hvm_op(
+     unsigned long op,
+-    XEN_GUEST_HANDLE(void) arg);
++    XEN_GUEST_HANDLE_PARAM(void) arg);
+ extern long
+ do_kexec_op(
+     unsigned long op,
+     int arg1,
+-    XEN_GUEST_HANDLE(void) arg);
++    XEN_GUEST_HANDLE_PARAM(void) arg);
+ extern long
+ do_xsm_op(
+-    XEN_GUEST_HANDLE(xsm_op_t) u_xsm_op);
++    XEN_GUEST_HANDLE_PARAM(xsm_op_t) u_xsm_op);
+ extern long
+ do_tmem_op(
+-    XEN_GUEST_HANDLE(tmem_op_t) uops);
++    XEN_GUEST_HANDLE_PARAM(tmem_op_t) uops);
+ extern int
+-do_xenoprof_op(int op, XEN_GUEST_HANDLE(void) arg);
++do_xenoprof_op(int op, XEN_GUEST_HANDLE_PARAM(void) arg);
+ #ifdef CONFIG_COMPAT
+ extern int
+ compat_memory_op(
+     unsigned int cmd,
+-    XEN_GUEST_HANDLE(void) arg);
++    XEN_GUEST_HANDLE_PARAM(void) arg);
+ extern int
+ compat_grant_table_op(
+     unsigned int cmd,
+-    XEN_GUEST_HANDLE(void) uop,
++    XEN_GUEST_HANDLE_PARAM(void) uop,
+     unsigned int count);
+ extern int
+ compat_vcpu_op(
+     int cmd,
+     int vcpuid,
+-    XEN_GUEST_HANDLE(void) arg);
++    XEN_GUEST_HANDLE_PARAM(void) arg);
+ extern int
+-compat_xenoprof_op(int op, XEN_GUEST_HANDLE(void) arg);
++compat_xenoprof_op(int op, XEN_GUEST_HANDLE_PARAM(void) arg);
+ extern int
+ compat_xen_version(
+     int cmd,
+-    XEN_GUEST_HANDLE(void) arg);
++    XEN_GUEST_HANDLE_PARAM(void) arg);
+ extern int
+ compat_sched_op(
+     int cmd,
+-    XEN_GUEST_HANDLE(void) arg);
++    XEN_GUEST_HANDLE_PARAM(void) arg);
+ extern int
+ compat_set_timer_op(
+diff --git a/xen/include/xen/iommu.h b/xen/include/xen/iommu.h
+index 6f7fbf7..bd19e23 100644
+--- a/xen/include/xen/iommu.h
++++ b/xen/include/xen/iommu.h
+@@ -155,7 +155,7 @@ void iommu_crash_shutdown(void);
+ void iommu_set_dom0_mapping(struct domain *d);
+ void iommu_share_p2m_table(struct domain *d);
+-int iommu_do_domctl(struct xen_domctl *, XEN_GUEST_HANDLE(xen_domctl_t));
++int iommu_do_domctl(struct xen_domctl *, XEN_GUEST_HANDLE_PARAM(xen_domctl_t));
+ void iommu_iotlb_flush(struct domain *d, unsigned long gfn, unsigned int page_count);
+ void iommu_iotlb_flush_all(struct domain *d);
+diff --git a/xen/include/xen/tmem_xen.h b/xen/include/xen/tmem_xen.h
+index 4a35760..2e7199a 100644
+--- a/xen/include/xen/tmem_xen.h
++++ b/xen/include/xen/tmem_xen.h
+@@ -448,7 +448,7 @@ static inline void tmh_tze_copy_from_pfp(void *tva, pfp_t *pfp, pagesize_t len)
+ typedef XEN_GUEST_HANDLE(void) cli_mfn_t;
+ typedef XEN_GUEST_HANDLE(char) cli_va_t;
+ */
+-typedef XEN_GUEST_HANDLE(tmem_op_t) tmem_cli_op_t;
++typedef XEN_GUEST_HANDLE_PARAM(tmem_op_t) tmem_cli_op_t;
+ static inline int tmh_get_tmemop_from_client(tmem_op_t *op, tmem_cli_op_t uops)
+ {
+diff --git a/xen/include/xsm/xsm.h b/xen/include/xsm/xsm.h
+index bef79df..3e4a47f 100644
+--- a/xen/include/xsm/xsm.h
++++ b/xen/include/xsm/xsm.h
+@@ -139,7 +139,7 @@ struct xsm_operations {
+     int (*cpupool_op)(void);
+     int (*sched_op)(void);
+-    long (*__do_xsm_op) (XEN_GUEST_HANDLE(xsm_op_t) op);
++    long (*__do_xsm_op) (XEN_GUEST_HANDLE_PARAM(xsm_op_t) op);
+ #ifdef CONFIG_X86
+     int (*shadow_control) (struct domain *d, uint32_t op);
+@@ -585,7 +585,7 @@ static inline int xsm_sched_op(void)
+     return xsm_call(sched_op());
+ }
+-static inline long __do_xsm_op (XEN_GUEST_HANDLE(xsm_op_t) op)
++static inline long __do_xsm_op (XEN_GUEST_HANDLE_PARAM(xsm_op_t) op)
+ {
+ #ifdef XSM_ENABLE
+     return xsm_ops->__do_xsm_op(op);
+diff --git a/xen/xsm/dummy.c b/xen/xsm/dummy.c
+index 7027ee7..5ef6529 100644
+--- a/xen/xsm/dummy.c
++++ b/xen/xsm/dummy.c
+@@ -365,7 +365,7 @@ static int dummy_sched_op (void)
+     return 0;
+ }
+-static long dummy___do_xsm_op(XEN_GUEST_HANDLE(xsm_op_t) op)
++static long dummy___do_xsm_op(XEN_GUEST_HANDLE_PARAM(xsm_op_t) op)
+ {
+     return -ENOSYS;
+ }
+diff --git a/xen/xsm/flask/flask_op.c b/xen/xsm/flask/flask_op.c
+index bd4db37..23e7d34 100644
+--- a/xen/xsm/flask/flask_op.c
++++ b/xen/xsm/flask/flask_op.c
+@@ -71,7 +71,7 @@ static int domain_has_security(struct domain *d, u32 perms)
+                         perms, NULL);
+ }
+-static int flask_copyin_string(XEN_GUEST_HANDLE(char) u_buf, char **buf, uint32_t size)
++static int flask_copyin_string(XEN_GUEST_HANDLE_PARAM(char) u_buf, char **buf, uint32_t size)
+ {
+     char *tmp = xmalloc_bytes(size + 1);
+     if ( !tmp )
+@@ -573,7 +573,7 @@ static int flask_get_peer_sid(struct xen_flask_peersid *arg)
+     return rv;
+ }
+-long do_flask_op(XEN_GUEST_HANDLE(xsm_op_t) u_flask_op)
++long do_flask_op(XEN_GUEST_HANDLE_PARAM(xsm_op_t) u_flask_op)
+ {
+     xen_flask_op_t op;
+     int rv;
+diff --git a/xen/xsm/flask/hooks.c b/xen/xsm/flask/hooks.c
+index 23b84f3..0fc299c 100644
+--- a/xen/xsm/flask/hooks.c
++++ b/xen/xsm/flask/hooks.c
+@@ -1553,7 +1553,7 @@ static int flask_vcpuextstate (struct domain *d, uint32_t cmd)
+ }
+ #endif
+-long do_flask_op(XEN_GUEST_HANDLE(xsm_op_t) u_flask_op);
++long do_flask_op(XEN_GUEST_HANDLE_PARAM(xsm_op_t) u_flask_op);
+ static struct xsm_operations flask_ops = {
+     .security_domaininfo = flask_security_domaininfo,
+diff --git a/xen/xsm/xsm_core.c b/xen/xsm/xsm_core.c
+index 96c8669..46287cb 100644
+--- a/xen/xsm/xsm_core.c
++++ b/xen/xsm/xsm_core.c
+@@ -111,7 +111,7 @@ int unregister_xsm(struct xsm_operations *ops)
+ #endif
+-long do_xsm_op (XEN_GUEST_HANDLE(xsm_op_t) op)
++long do_xsm_op (XEN_GUEST_HANDLE_PARAM(xsm_op_t) op)
+ {
+     return __do_xsm_op(op);
+ }
+-- 
+1.7.2.5
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1345128612-10323-6-git-send-email-stefano.stabellini@eu.citrix.com> b/config/examples/test/corpus/<1345128612-10323-6-git-send-email-stefano.stabellini@eu.citrix.com>
new file mode 100644 (file)
index 0000000..6e56484
--- /dev/null
@@ -0,0 +1,255 @@
+From xen-devel-bounces@lists.xen.org Thu Aug 16 15:54:13 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 16 Aug 2012 15:54:13 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T21Sa-0007a3-8O
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 16 Aug 2012 15:54:13 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T21P5-00061i-7y; Thu, 16 Aug 2012 14:50:31 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1T21P2-00060n-UF
+       for xen-devel@lists.xensource.com; Thu, 16 Aug 2012 14:50:29 +0000
+Received: from [85.158.143.35:13502] by server-1.bemta-4.messagelabs.com id
+       58/BA-07754-4B80D205; Thu, 16 Aug 2012 14:50:28 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-10.tower-21.messagelabs.com!1345128624!10863913!1
+X-Originating-IP: [66.165.176.63]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyNzE3OTY=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 7314 invoked from network); 16 Aug 2012 14:50:26 -0000
+Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
+       by server-10.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
+       16 Aug 2012 14:50:26 -0000
+X-IronPort-AV: E=Sophos;i="4.77,778,1336363200"; d="scan'208";a="205378344"
+Received: from ftlpmailmx01.citrite.net ([10.13.107.65])
+       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       16 Aug 2012 10:50:21 -0400
+Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
+       (10.13.107.65) with Microsoft SMTP Server id 8.3.213.0;
+       Thu, 16 Aug 2012 10:50:21 -0400
+Received: from kaball.uk.xensource.com ([10.80.2.59])  by
+       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
+       <stefano.stabellini@eu.citrix.com>)     id 1T21Op-0006Vh-Uw;
+       Thu, 16 Aug 2012 15:50:15 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+To: <xen-devel@lists.xensource.com>
+Date: Thu, 16 Aug 2012 15:50:12 +0100
+Message-ID: <1345128612-10323-6-git-send-email-stefano.stabellini@eu.citrix.com>
+X-Mailer: git-send-email 1.7.9.5
+In-Reply-To: <alpine.DEB.2.02.1208161523420.4850@kaball.uk.xensource.com>
+References: <alpine.DEB.2.02.1208161523420.4850@kaball.uk.xensource.com>
+MIME-Version: 1.0
+Cc: tim@xen.org, Ian.Campbell@citrix.com,
+       Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: [Xen-devel] [PATCH v3 6/6] xen: more substitutions
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+More substitutions in this patch, not as obvious as the ones in the
+previous patch.
+
+Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+---
+ xen/arch/x86/mm.c                        |   12 +++++++++---
+ xen/arch/x86/oprofile/backtrace.c        |    4 +++-
+ xen/arch/x86/platform_hypercall.c        |    8 ++++++--
+ xen/arch/x86/x86_64/cpu_idle.c           |    4 +++-
+ xen/arch/x86/x86_64/cpufreq.c            |    4 +++-
+ xen/arch/x86/x86_64/platform_hypercall.c |    1 +
+ xen/common/compat/multicall.c            |    1 +
+ 7 files changed, 26 insertions(+), 8 deletions(-)
+
+diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c
+index 4d72700..088db11 100644
+--- a/xen/arch/x86/mm.c
++++ b/xen/arch/x86/mm.c
+@@ -3198,7 +3198,9 @@ int do_mmuext_op(
+         {
+             cpumask_t pmask;
+-            if ( unlikely(vcpumask_to_pcpumask(d, op.arg2.vcpumask, &pmask)) )
++            if ( unlikely(vcpumask_to_pcpumask(d,
++                            guest_handle_to_param(op.arg2.vcpumask, const_void),
++                            &pmask)) )
+             {
+                 okay = 0;
+                 break;
+@@ -4484,6 +4486,7 @@ static int handle_iomem_range(unsigned long s, unsigned long e, void *p)
+     if ( s > ctxt->s )
+     {
+         e820entry_t ent;
++        XEN_GUEST_HANDLE_PARAM(e820entry_t) buffer_t;
+         XEN_GUEST_HANDLE(e820entry_t) buffer;
+         if ( ctxt->n + 1 >= ctxt->map.nr_entries )
+@@ -4491,7 +4494,8 @@ static int handle_iomem_range(unsigned long s, unsigned long e, void *p)
+         ent.addr = (uint64_t)ctxt->s << PAGE_SHIFT;
+         ent.size = (uint64_t)(s - ctxt->s) << PAGE_SHIFT;
+         ent.type = E820_RESERVED;
+-        buffer = guest_handle_cast(ctxt->map.buffer, e820entry_t);
++        buffer_t = guest_handle_cast(ctxt->map.buffer, e820entry_t);
++        buffer = guest_handle_from_param(buffer_t, e820entry_t);
+         if ( __copy_to_guest_offset(buffer, ctxt->n, &ent, 1) )
+             return -EFAULT;
+         ctxt->n++;
+@@ -4790,6 +4794,7 @@ long arch_memory_op(int op, XEN_GUEST_HANDLE_PARAM(void) arg)
+     {
+         struct memory_map_context ctxt;
+         XEN_GUEST_HANDLE(e820entry_t) buffer;
++        XEN_GUEST_HANDLE_PARAM(e820entry_t) buffer_t;
+         unsigned int i;
+         if ( !IS_PRIV(current->domain) )
+@@ -4804,7 +4809,8 @@ long arch_memory_op(int op, XEN_GUEST_HANDLE_PARAM(void) arg)
+         if ( ctxt.map.nr_entries < e820.nr_map + 1 )
+             return -EINVAL;
+-        buffer = guest_handle_cast(ctxt.map.buffer, e820entry_t);
++        buffer_t = guest_handle_cast(ctxt.map.buffer, e820entry_t);
++        buffer = guest_handle_from_param(buffer_t, e820entry_t);
+         if ( !guest_handle_okay(buffer, ctxt.map.nr_entries) )
+             return -EFAULT;
+diff --git a/xen/arch/x86/oprofile/backtrace.c b/xen/arch/x86/oprofile/backtrace.c
+index 33fd142..699cd28 100644
+--- a/xen/arch/x86/oprofile/backtrace.c
++++ b/xen/arch/x86/oprofile/backtrace.c
+@@ -80,8 +80,10 @@ dump_guest_backtrace(struct vcpu *vcpu, const struct frame_head *head,
+     else
+ #endif
+     {
+-        XEN_GUEST_HANDLE(const_frame_head_t) guest_head =
++        XEN_GUEST_HANDLE(const_frame_head_t) guest_head;
++        XEN_GUEST_HANDLE_PARAM(const_frame_head_t) guest_head_t =
+             const_guest_handle_from_ptr(head, frame_head_t);
++        guest_head = guest_handle_from_param(guest_head_t, const_frame_head_t);
+         /* Also check accessibility of one struct frame_head beyond */
+         if (!guest_handle_okay(guest_head, 2))
+diff --git a/xen/arch/x86/platform_hypercall.c b/xen/arch/x86/platform_hypercall.c
+index a32e0a2..2994b12 100644
+--- a/xen/arch/x86/platform_hypercall.c
++++ b/xen/arch/x86/platform_hypercall.c
+@@ -185,7 +185,9 @@ ret_t do_platform_op(XEN_GUEST_HANDLE_PARAM(xen_platform_op_t) u_xenpf_op)
+             }
+         }
+-        ret = microcode_update(data, op->u.microcode.length);
++        ret = microcode_update(
++                guest_handle_to_param(data, const_void),
++                op->u.microcode.length);
+         spin_unlock(&vcpu_alloc_lock);
+     }
+     break;
+@@ -448,7 +450,9 @@ ret_t do_platform_op(XEN_GUEST_HANDLE_PARAM(xen_platform_op_t) u_xenpf_op)
+             XEN_GUEST_HANDLE(uint32) pdc;
+             guest_from_compat_handle(pdc, op->u.set_pminfo.u.pdc);
+-            ret = acpi_set_pdc_bits(op->u.set_pminfo.id, pdc);
++            ret = acpi_set_pdc_bits(
++                    op->u.set_pminfo.id,
++                    guest_handle_to_param(pdc, uint32));
+         }
+         break;
+diff --git a/xen/arch/x86/x86_64/cpu_idle.c b/xen/arch/x86/x86_64/cpu_idle.c
+index 3e7422f..1cdaf96 100644
+--- a/xen/arch/x86/x86_64/cpu_idle.c
++++ b/xen/arch/x86/x86_64/cpu_idle.c
+@@ -57,10 +57,12 @@ static int copy_from_compat_state(xen_processor_cx_t *xen_state,
+ {
+ #define XLAT_processor_cx_HNDL_dp(_d_, _s_) do { \
+     XEN_GUEST_HANDLE(compat_processor_csd_t) dps; \
++    XEN_GUEST_HANDLE_PARAM(xen_processor_csd_t) dps_t; \
+     if ( unlikely(!compat_handle_okay((_s_)->dp, (_s_)->dpcnt)) ) \
+             return -EFAULT; \
+     guest_from_compat_handle(dps, (_s_)->dp); \
+-    (_d_)->dp = guest_handle_cast(dps, xen_processor_csd_t); \
++    dps_t = guest_handle_cast(dps, xen_processor_csd_t); \
++    (_d_)->dp = guest_handle_from_param(dps_t, xen_processor_csd_t); \
+ } while (0)
+     XLAT_processor_cx(xen_state, state);
+ #undef XLAT_processor_cx_HNDL_dp
+diff --git a/xen/arch/x86/x86_64/cpufreq.c b/xen/arch/x86/x86_64/cpufreq.c
+index ce9864e..1956777 100644
+--- a/xen/arch/x86/x86_64/cpufreq.c
++++ b/xen/arch/x86/x86_64/cpufreq.c
+@@ -45,10 +45,12 @@ compat_set_px_pminfo(uint32_t cpu, struct compat_processor_performance *perf)
+ #define XLAT_processor_performance_HNDL_states(_d_, _s_) do { \
+     XEN_GUEST_HANDLE(compat_processor_px_t) states; \
++    XEN_GUEST_HANDLE_PARAM(xen_processor_px_t) states_t; \
+     if ( unlikely(!compat_handle_okay((_s_)->states, (_s_)->state_count)) ) \
+         return -EFAULT; \
+     guest_from_compat_handle(states, (_s_)->states); \
+-    (_d_)->states = guest_handle_cast(states, xen_processor_px_t); \
++    states_t = guest_handle_cast(states, xen_processor_px_t); \
++    (_d_)->states = guest_handle_from_param(states_t, xen_processor_px_t); \
+ } while (0)
+     XLAT_processor_performance(xen_perf, perf);
+diff --git a/xen/arch/x86/x86_64/platform_hypercall.c b/xen/arch/x86/x86_64/platform_hypercall.c
+index 188aa37..f577761 100644
+--- a/xen/arch/x86/x86_64/platform_hypercall.c
++++ b/xen/arch/x86/x86_64/platform_hypercall.c
+@@ -38,6 +38,7 @@ CHECK_pf_pcpu_version;
+ #define COMPAT
+ #define _XEN_GUEST_HANDLE(t) XEN_GUEST_HANDLE(t)
++#define _XEN_GUEST_HANDLE_PARAM(t) XEN_GUEST_HANDLE(t)
+ typedef int ret_t;
+ #include "../platform_hypercall.c"
+diff --git a/xen/common/compat/multicall.c b/xen/common/compat/multicall.c
+index 0eb1212..72db213 100644
+--- a/xen/common/compat/multicall.c
++++ b/xen/common/compat/multicall.c
+@@ -24,6 +24,7 @@ DEFINE_XEN_GUEST_HANDLE(multicall_entry_compat_t);
+ #define call                 compat_call
+ #define do_multicall(l, n)   compat_multicall(_##l, n)
+ #define _XEN_GUEST_HANDLE(t) XEN_GUEST_HANDLE(t)
++#define _XEN_GUEST_HANDLE_PARAM(t) XEN_GUEST_HANDLE(t)
+ #include "../multicall.c"
+-- 
+1.7.2.5
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1345133009-21941-1-git-send-email-konrad.wilk@oracle.com> b/config/examples/test/corpus/<1345133009-21941-1-git-send-email-konrad.wilk@oracle.com>
new file mode 100644 (file)
index 0000000..d8ca0b5
--- /dev/null
@@ -0,0 +1,254 @@
+From xen-devel-bounces@lists.xen.org Thu Aug 16 17:16:32 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 16 Aug 2012 17:16:32 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T22kE-0008Em-Ta
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 16 Aug 2012 17:16:32 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T22hM-0006CB-O9; Thu, 16 Aug 2012 16:13:28 +0000
+Received: from mail27.messagelabs.com ([193.109.254.147])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <konrad.wilk@oracle.com>) id 1T22hK-00067K-KX
+       for xen-devel@lists.xensource.com; Thu, 16 Aug 2012 16:13:26 +0000
+X-Env-Sender: konrad.wilk@oracle.com
+X-Msg-Ref: server-13.tower-27.messagelabs.com!1345133599!9587518!1
+X-Originating-IP: [148.87.113.117]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogMTQ4Ljg3LjExMy4xMTcgPT4gNjk0MzAx\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 30710 invoked from network); 16 Aug 2012 16:13:20 -0000
+Received: from rcsinet15.oracle.com (HELO rcsinet15.oracle.com)
+       (148.87.113.117)
+       by server-13.tower-27.messagelabs.com with DHE-RSA-AES256-SHA encrypted
+       SMTP; 16 Aug 2012 16:13:20 -0000
+Received: from acsinet21.oracle.com (acsinet21.oracle.com [141.146.126.237])
+       by rcsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
+       ESMTP id q7GGDHGt007925
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
+       Thu, 16 Aug 2012 16:13:18 GMT
+Received: from acsmt356.oracle.com (acsmt356.oracle.com [141.146.40.156])
+       by acsinet21.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
+       q7GGDHlf014616
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
+       Thu, 16 Aug 2012 16:13:17 GMT
+Received: from abhmt105.oracle.com (abhmt105.oracle.com [141.146.116.57])
+       by acsmt356.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
+       q7GGDHd7027781; Thu, 16 Aug 2012 11:13:17 -0500
+Received: from phenom.dumpdata.com (/209.6.85.33)
+       by default (Oracle Beehive Gateway v4.0)
+       with ESMTP ; Thu, 16 Aug 2012 09:13:17 -0700
+Received: by phenom.dumpdata.com (Postfix, from userid 1000)
+       id CD1E8402E8; Thu, 16 Aug 2012 12:03:30 -0400 (EDT)
+From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+To: linux-kernel@vger.kernel.org, xen-devel@lists.xensource.com
+Date: Thu, 16 Aug 2012 12:03:18 -0400
+Message-Id: <1345133009-21941-1-git-send-email-konrad.wilk@oracle.com>
+X-Mailer: git-send-email 1.7.7.6
+X-Source-IP: acsinet21.oracle.com [141.146.126.237]
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+MIME-Version: 1.0
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
+Subject: [Xen-devel] [PATCH] Boot PV guests with more than 128GB (v3) for
+       v3.7.
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+Since (v2): http://lists.xen.org/archives/html/xen-devel/2012-07/msg01864.html
+ - fixed a bug if guest booted with non-PMD aligned size (say, 899MB).
+ - fixed smack warnings
+ - moved a memset(xen_start_info->mfn_list, 0xff,.. ) from one patch to another.
+Since v1: [http://lists.xen.org/archives/html/xen-devel/2012-07/msg01561.html]
+ - added more comments, and #ifdefs
+ - squashed The L4 and L4, L3, and L2 recycle patches together
+ - Added Acked-by's
+
+These patches are quite baked by now. If you already looked at this before
+I would just skip over it and just look at the last patch.
+
+The explanation of these patches is exactly what v1 had:
+
+The details of this problem are nicely explained in:
+
+ [PATCH 4/6] xen/p2m: Add logic to revector a P2M tree to use __va
+ [PATCH 5/6] xen/mmu: Copy and revector the P2M tree.
+ [PATCH 6/6] xen/mmu: Remove from __ka space PMD entries for
+
+and the supporting patches are just nice optimizations. Pasting in
+what those patches mentioned:
+
+
+During bootup Xen supplies us with a P2M array. It sticks
+it right after the ramdisk, as can be seen with a 128GB PV guest:
+
+(certain parts removed for clarity):
+xc_dom_build_image: called
+xc_dom_alloc_segment:   kernel       : 0xffffffff81000000 -> 0xffffffff81e43000 
+ (pfn 0x1000 + 0xe43 pages)
+xc_dom_pfn_to_ptr: domU mapping: pfn 0x1000+0xe43 at 0x7f097d8bf000
+xc_dom_alloc_segment:   ramdisk      : 0xffffffff81e43000 -> 0xffffffff925c7000 
+ (pfn 0x1e43 + 0x10784 pages)
+xc_dom_pfn_to_ptr: domU mapping: pfn 0x1e43+0x10784 at 0x7f0952dd2000
+xc_dom_alloc_segment:   phys2mach    : 0xffffffff925c7000 -> 0xffffffffa25c7000 
+ (pfn 0x125c7 + 0x10000 pages)
+xc_dom_pfn_to_ptr: domU mapping: pfn 0x125c7+0x10000 at 0x7f0942dd2000
+xc_dom_alloc_page   :   start info   : 0xffffffffa25c7000 (pfn 0x225c7)
+xc_dom_alloc_page   :   xenstore     : 0xffffffffa25c8000 (pfn 0x225c8)
+xc_dom_alloc_page   :   console      : 0xffffffffa25c9000 (pfn 0x225c9)
+nr_page_tables: 0x0000ffffffffffff/48: 0xffff000000000000 -> 
+0xffffffffffffffff, 1 table(s)
+nr_page_tables: 0x0000007fffffffff/39: 0xffffff8000000000 -> 
+0xffffffffffffffff, 1 table(s)
+nr_page_tables: 0x000000003fffffff/30: 0xffffffff80000000 -> 
+0xffffffffbfffffff, 1 table(s)
+nr_page_tables: 0x00000000001fffff/21: 0xffffffff80000000 -> 
+0xffffffffa27fffff, 276 table(s)
+xc_dom_alloc_segment:   page tables  : 0xffffffffa25ca000 -> 0xffffffffa26e1000 
+ (pfn 0x225ca + 0x117 pages)
+xc_dom_pfn_to_ptr: domU mapping: pfn 0x225ca+0x117 at 0x7f097d7a8000
+xc_dom_alloc_page   :   boot stack   : 0xffffffffa26e1000 (pfn 0x226e1)
+xc_dom_build_image  : virt_alloc_end : 0xffffffffa26e2000
+xc_dom_build_image  : virt_pgtab_end : 0xffffffffa2800000
+
+So the physical memory and virtual (using __START_KERNEL_map addresses)
+layout looks as so:
+
+  phys                             __ka
+/------------\                   /-------------------\
+| 0          | empty             | 0xffffffff80000000|
+| ..         |                   | ..                |
+| 16MB       | <= kernel starts  | 0xffffffff81000000|
+| ..         |                   |                   |
+| 30MB       | <= kernel ends => | 0xffffffff81e43000|
+| ..         |  & ramdisk starts | ..                |
+| 293MB      | <= ramdisk ends=> | 0xffffffff925c7000|
+| ..         |  & P2M starts     | ..                |
+| ..         |                   | ..                |
+| 549MB      | <= P2M ends    => | 0xffffffffa25c7000|
+| ..         | start_info        | 0xffffffffa25c7000|
+| ..         | xenstore          | 0xffffffffa25c8000|
+| ..         | cosole            | 0xffffffffa25c9000|
+| 549MB      | <= page tables => | 0xffffffffa25ca000|
+| ..         |                   |                   |
+| 550MB      | <= PGT end     => | 0xffffffffa26e1000|
+| ..         | boot stack        |                   |
+\------------/                   \-------------------/
+
+As can be seen, the ramdisk, P2M and pagetables are taking
+a bit of __ka addresses space. Which is a problem since the
+MODULES_VADDR starts at 0xffffffffa0000000 - and P2M sits
+right in there! This results during bootup with the inability to
+load modules, with this error:
+
+------------[ cut here ]------------
+WARNING: at /home/konrad/ssd/linux/mm/vmalloc.c:106 
+vmap_page_range_noflush+0x2d9/0x370()
+Call Trace:
+ [<ffffffff810719fa>] warn_slowpath_common+0x7a/0xb0
+ [<ffffffff81030279>] ? __raw_callee_save_xen_pmd_val+0x11/0x1e
+ [<ffffffff81071a45>] warn_slowpath_null+0x15/0x20
+ [<ffffffff81130b89>] vmap_page_range_noflush+0x2d9/0x370
+ [<ffffffff81130c4d>] map_vm_area+0x2d/0x50
+ [<ffffffff811326d0>] __vmalloc_node_range+0x160/0x250
+ [<ffffffff810c5369>] ? module_alloc_update_bounds+0x19/0x80
+ [<ffffffff810c6186>] ? load_module+0x66/0x19c0
+ [<ffffffff8105cadc>] module_alloc+0x5c/0x60
+ [<ffffffff810c5369>] ? module_alloc_update_bounds+0x19/0x80
+ [<ffffffff810c5369>] module_alloc_update_bounds+0x19/0x80
+ [<ffffffff810c70c3>] load_module+0xfa3/0x19c0
+ [<ffffffff812491f6>] ? security_file_permission+0x86/0x90
+ [<ffffffff810c7b3a>] sys_init_module+0x5a/0x220
+ [<ffffffff815ce339>] system_call_fastpath+0x16/0x1b
+---[ end trace fd8f7704fdea0291 ]---
+vmalloc: allocation failure, allocated 16384 of 20480 bytes
+modprobe: page allocation failure: order:0, mode:0xd2
+
+Since the __va and __ka are 1:1 up to MODULES_VADDR and
+cleanup_highmap rids __ka of the ramdisk mapping, what
+we want to do is similar - get rid of the P2M in the __ka
+address space. There are two ways of fixing this:
+
+ 1) All P2M lookups instead of using the __ka address would
+    use the __va address. This means we can safely erase from
+    __ka space the PMD pointers that point to the PFNs for
+    P2M array and be OK.
+ 2). Allocate a new array, copy the existing P2M into it,
+    revector the P2M tree to use that, and return the old
+    P2M to the memory allocate. This has the advantage that
+    it sets the stage for using XEN_ELF_NOTE_INIT_P2M
+    feature. That feature allows us to set the exact virtual
+    address space we want for the P2M - and allows us to
+    boot as initial domain on large machines.
+
+So we pick option 2).
+
+This patch only lays the groundwork in the P2M code. The patch
+that modifies the MMU is called "xen/mmu: Copy and revector the P2M tree."
+
+-- xen/mmu: Copy and revector the P2M tree:
+
+The 'xen_revector_p2m_tree()' function allocates a new P2M tree
+copies the contents of the old one in it, and returns the new one.
+
+At this stage, the __ka address space (which is what the old
+P2M tree was using) is partially disassembled. The cleanup_highmap
+has removed the PMD entries from 0-16MB and anything past _brk_end
+up to the max_pfn_mapped (which is the end of the ramdisk).
+
+We have revectored the P2M tree (and the one for save/restore as well)
+to use new shiny __va address to new MFNs. The xen_start_info
+has been taken care of already in 'xen_setup_kernel_pagetable()' and
+xen_start_info->shared_info in 'xen_setup_shared_info()', so
+we are free to roam and delete PMD entries - which is exactly what
+we are going to do. We rip out the __ka for the old P2M array.
+
+-- xen/mmu:   Remove from __ka space PMD entries for
+
+At this stage, the __ka address space (which is what the old
+P2M tree was using) is partially disassembled. The cleanup_highmap
+has removed the PMD entries from 0-16MB and anything past _brk_end
+up to the max_pfn_mapped (which is the end of the ramdisk).
+
+The xen_remove_p2m_tree and code around has ripped out the __ka for
+the old P2M array.
+
+Here we continue on doing it to where the Xen page-tables were.
+It is safe to do it, as the page-tables are addressed using __va.
+For good measure we delete anything that is within MODULES_VADDR
+and up to the end of the PMD.
+
+At this point the __ka only contains PMD entries for the start
+of the kernel up to __brk.
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1345133009-21941-10-git-send-email-konrad.wilk@oracle.com> b/config/examples/test/corpus/<1345133009-21941-10-git-send-email-konrad.wilk@oracle.com>
new file mode 100644 (file)
index 0000000..12629fe
--- /dev/null
@@ -0,0 +1,198 @@
+From xen-devel-bounces@lists.xen.org Thu Aug 16 17:16:46 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 16 Aug 2012 17:16:46 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T22kU-0008GE-Vq
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 16 Aug 2012 17:16:46 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T22hL-0006Am-4N; Thu, 16 Aug 2012 16:13:27 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <konrad.wilk@oracle.com>) id 1T22hH-00067M-N2
+       for xen-devel@lists.xensource.com; Thu, 16 Aug 2012 16:13:23 +0000
+Received: from [85.158.143.99:16134] by server-1.bemta-4.messagelabs.com id
+       49/6A-07754-32C1D205; Thu, 16 Aug 2012 16:13:23 +0000
+X-Env-Sender: konrad.wilk@oracle.com
+X-Msg-Ref: server-14.tower-216.messagelabs.com!1345133601!18920475!1
+X-Originating-IP: [141.146.126.227]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogMTQxLjE0Ni4xMjYuMjI3ID0+IDcwMTY5NA==\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 26957 invoked from network); 16 Aug 2012 16:13:22 -0000
+Received: from acsinet15.oracle.com (HELO acsinet15.oracle.com)
+       (141.146.126.227)
+       by server-14.tower-216.messagelabs.com with DHE-RSA-AES256-SHA
+       encrypted SMTP; 16 Aug 2012 16:13:22 -0000
+Received: from ucsinet21.oracle.com (ucsinet21.oracle.com [156.151.31.93])
+       by acsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
+       ESMTP id q7GGDJuh027567
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
+       Thu, 16 Aug 2012 16:13:20 GMT
+Received: from acsmt358.oracle.com (acsmt358.oracle.com [141.146.40.158])
+       by ucsinet21.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
+       q7GGDIfU007975
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
+       Thu, 16 Aug 2012 16:13:18 GMT
+Received: from abhmt115.oracle.com (abhmt115.oracle.com [141.146.116.67])
+       by acsmt358.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
+       q7GGDH1g006365; Thu, 16 Aug 2012 11:13:17 -0500
+Received: from phenom.dumpdata.com (/209.6.85.33)
+       by default (Oracle Beehive Gateway v4.0)
+       with ESMTP ; Thu, 16 Aug 2012 09:13:17 -0700
+Received: by phenom.dumpdata.com (Postfix, from userid 1000)
+       id 29D9F4035B; Thu, 16 Aug 2012 12:03:31 -0400 (EDT)
+From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+To: linux-kernel@vger.kernel.org, xen-devel@lists.xensource.com
+Date: Thu, 16 Aug 2012 12:03:27 -0400
+Message-Id: <1345133009-21941-10-git-send-email-konrad.wilk@oracle.com>
+X-Mailer: git-send-email 1.7.7.6
+In-Reply-To: <1345133009-21941-1-git-send-email-konrad.wilk@oracle.com>
+References: <1345133009-21941-1-git-send-email-konrad.wilk@oracle.com>
+X-Source-IP: ucsinet21.oracle.com [156.151.31.93]
+Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+MIME-Version: 1.0
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
+Subject: [Xen-devel] [PATCH 09/11] xen/mmu: Copy and revector the P2M tree.
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+Please first read the description in "xen/p2m: Add logic to revector a
+P2M tree to use __va leafs" patch.
+
+The 'xen_revector_p2m_tree()' function allocates a new P2M tree
+copies the contents of the old one in it, and returns the new one.
+
+At this stage, the __ka address space (which is what the old
+P2M tree was using) is partially disassembled. The cleanup_highmap
+has removed the PMD entries from 0-16MB and anything past _brk_end
+up to the max_pfn_mapped (which is the end of the ramdisk).
+
+We have revectored the P2M tree (and the one for save/restore as well)
+to use new shiny __va address to new MFNs. The xen_start_info
+has been taken care of already in 'xen_setup_kernel_pagetable()' and
+xen_start_info->shared_info in 'xen_setup_shared_info()', so
+we are free to roam and delete PMD entries - which is exactly what
+we are going to do. We rip out the __ka for the old P2M array.
+
+[v1: Fix smatch warnings]
+[v2: memset was doing 0 instead of 0xff]
+Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+---
+ arch/x86/xen/mmu.c |   57 ++++++++++++++++++++++++++++++++++++++++++++++++++++
+ 1 files changed, 57 insertions(+), 0 deletions(-)
+
+diff --git a/arch/x86/xen/mmu.c b/arch/x86/xen/mmu.c
+index bd92c82..e0919c5 100644
+--- a/arch/x86/xen/mmu.c
++++ b/arch/x86/xen/mmu.c
+@@ -1183,9 +1183,64 @@ static __init void xen_mapping_pagetable_reserve(u64 start, u64 end)
+ static void xen_post_allocator_init(void);
++#ifdef CONFIG_X86_64
++static void __init xen_cleanhighmap(unsigned long vaddr,
++                                  unsigned long vaddr_end)
++{
++      unsigned long kernel_end = roundup((unsigned long)_brk_end, PMD_SIZE) - 1;
++      pmd_t *pmd = level2_kernel_pgt + pmd_index(vaddr);
++
++      /* NOTE: The loop is more greedy than the cleanup_highmap variant.
++       * We include the PMD passed in on _both_ boundaries. */
++      for (; vaddr <= vaddr_end && (pmd < (level2_kernel_pgt + PAGE_SIZE));
++                      pmd++, vaddr += PMD_SIZE) {
++              if (pmd_none(*pmd))
++                      continue;
++              if (vaddr < (unsigned long) _text || vaddr > kernel_end)
++                      set_pmd(pmd, __pmd(0));
++      }
++      /* In case we did something silly, we should crash in this function
++       * instead of somewhere later and be confusing. */
++      xen_mc_flush();
++}
++#endif
+ static void __init xen_pagetable_setup_done(pgd_t *base)
+ {
++#ifdef CONFIG_X86_64
++      unsigned long size;
++      unsigned long addr;
++#endif
++
+       xen_setup_shared_info();
++#ifdef CONFIG_X86_64
++      if (!xen_feature(XENFEAT_auto_translated_physmap)) {
++              unsigned long new_mfn_list;
++
++              size = PAGE_ALIGN(xen_start_info->nr_pages * sizeof(unsigned long));
++
++              /* On 32-bit, we get zero so this never gets executed. */
++              new_mfn_list = xen_revector_p2m_tree();
++              if (new_mfn_list && new_mfn_list != xen_start_info->mfn_list) {
++                      /* using __ka address and sticking INVALID_P2M_ENTRY! */
++                      memset((void *)xen_start_info->mfn_list, 0xff, size);
++
++                      /* We should be in __ka space. */
++                      BUG_ON(xen_start_info->mfn_list < __START_KERNEL_map);
++                      addr = xen_start_info->mfn_list;
++                      size = PAGE_ALIGN(xen_start_info->nr_pages * sizeof(unsigned long));
++                      /* We roundup to the PMD, which means that if anybody at this stage is
++                       * using the __ka address of xen_start_info or xen_start_info->shared_info
++                       * they are in going to crash. Fortunatly we have already revectored
++                       * in xen_setup_kernel_pagetable and in xen_setup_shared_info. */
++                      size = roundup(size, PMD_SIZE);
++                      xen_cleanhighmap(addr, addr + size);
++
++                      memblock_free(__pa(xen_start_info->mfn_list), size);
++                      /* And revector! Bye bye old array */
++                      xen_start_info->mfn_list = new_mfn_list;
++              }
++      }
++#endif
+       xen_post_allocator_init();
+ }
+@@ -1822,6 +1877,8 @@ void __init xen_setup_kernel_pagetable(pgd_t *pgd, unsigned long max_pfn)
+       /* Our (by three pages) smaller Xen pagetable that we are using */
+       memblock_reserve(PFN_PHYS(pt_base), (pt_end - pt_base) * PAGE_SIZE);
++      /* Revector the xen_start_info */
++      xen_start_info = (struct start_info *)__va(__pa(xen_start_info));
+ }
+ #else /* !CONFIG_X86_64 */
+ static RESERVE_BRK_ARRAY(pmd_t, initial_kernel_pmd, PTRS_PER_PMD);
+-- 
+1.7.7.6
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1345133009-21941-11-git-send-email-konrad.wilk@oracle.com> b/config/examples/test/corpus/<1345133009-21941-11-git-send-email-konrad.wilk@oracle.com>
new file mode 100644 (file)
index 0000000..6746214
--- /dev/null
@@ -0,0 +1,151 @@
+From xen-devel-bounces@lists.xen.org Thu Aug 16 17:16:50 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 16 Aug 2012 17:16:50 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T22kZ-0008Gc-8P
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 16 Aug 2012 17:16:50 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T22hJ-00069i-Uq; Thu, 16 Aug 2012 16:13:25 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <konrad.wilk@oracle.com>) id 1T22hH-00067M-77
+       for xen-devel@lists.xensource.com; Thu, 16 Aug 2012 16:13:23 +0000
+Received: from [85.158.143.35:42214] by server-1.bemta-4.messagelabs.com id
+       F7/6A-07754-22C1D205; Thu, 16 Aug 2012 16:13:22 +0000
+X-Env-Sender: konrad.wilk@oracle.com
+X-Msg-Ref: server-4.tower-21.messagelabs.com!1345133600!5924381!1
+X-Originating-IP: [141.146.126.227]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogMTQxLjE0Ni4xMjYuMjI3ID0+IDcwMTY5NA==\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 18595 invoked from network); 16 Aug 2012 16:13:22 -0000
+Received: from acsinet15.oracle.com (HELO acsinet15.oracle.com)
+       (141.146.126.227)
+       by server-4.tower-21.messagelabs.com with DHE-RSA-AES256-SHA encrypted
+       SMTP; 16 Aug 2012 16:13:22 -0000
+Received: from acsinet22.oracle.com (acsinet22.oracle.com [141.146.126.238])
+       by acsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
+       ESMTP id q7GGDIiO027563
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
+       Thu, 16 Aug 2012 16:13:19 GMT
+Received: from acsmt357.oracle.com (acsmt357.oracle.com [141.146.40.157])
+       by acsinet22.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
+       q7GGDISJ007174
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
+       Thu, 16 Aug 2012 16:13:18 GMT
+Received: from abhmt102.oracle.com (abhmt102.oracle.com [141.146.116.54])
+       by acsmt357.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
+       q7GGDIpH011316; Thu, 16 Aug 2012 11:13:18 -0500
+Received: from phenom.dumpdata.com (/209.6.85.33)
+       by default (Oracle Beehive Gateway v4.0)
+       with ESMTP ; Thu, 16 Aug 2012 09:13:17 -0700
+Received: by phenom.dumpdata.com (Postfix, from userid 1000)
+       id 3448D4035E; Thu, 16 Aug 2012 12:03:31 -0400 (EDT)
+From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+To: linux-kernel@vger.kernel.org, xen-devel@lists.xensource.com
+Date: Thu, 16 Aug 2012 12:03:28 -0400
+Message-Id: <1345133009-21941-11-git-send-email-konrad.wilk@oracle.com>
+X-Mailer: git-send-email 1.7.7.6
+In-Reply-To: <1345133009-21941-1-git-send-email-konrad.wilk@oracle.com>
+References: <1345133009-21941-1-git-send-email-konrad.wilk@oracle.com>
+X-Source-IP: acsinet22.oracle.com [141.146.126.238]
+Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+MIME-Version: 1.0
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
+Subject: [Xen-devel] [PATCH 10/11] xen/mmu: Remove from __ka space PMD
+       entries for pagetables.
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+Please first read the description in "xen/mmu: Copy and revector the
+P2M tree."
+
+At this stage, the __ka address space (which is what the old
+P2M tree was using) is partially disassembled. The cleanup_highmap
+has removed the PMD entries from 0-16MB and anything past _brk_end
+up to the max_pfn_mapped (which is the end of the ramdisk).
+
+The xen_remove_p2m_tree and code around has ripped out the __ka for
+the old P2M array.
+
+Here we continue on doing it to where the Xen page-tables were.
+It is safe to do it, as the page-tables are addressed using __va.
+For good measure we delete anything that is within MODULES_VADDR
+and up to the end of the PMD.
+
+At this point the __ka only contains PMD entries for the start
+of the kernel up to __brk.
+
+[v1: Per Stefano's suggestion wrapped the MODULES_VADDR in debug]
+Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+---
+ arch/x86/xen/mmu.c |   19 +++++++++++++++++++
+ 1 files changed, 19 insertions(+), 0 deletions(-)
+
+diff --git a/arch/x86/xen/mmu.c b/arch/x86/xen/mmu.c
+index e0919c5..5a880b8 100644
+--- a/arch/x86/xen/mmu.c
++++ b/arch/x86/xen/mmu.c
+@@ -1240,6 +1240,25 @@ static void __init xen_pagetable_setup_done(pgd_t *base)
+                       xen_start_info->mfn_list = new_mfn_list;
+               }
+       }
++      /* At this stage, cleanup_highmap has already cleaned __ka space
++       * from _brk_limit way up to the max_pfn_mapped (which is the end of
++       * the ramdisk). We continue on, erasing PMD entries that point to page
++       * tables - do note that they are accessible at this stage via __va.
++       * For good measure we also round up to the PMD - which means that if
++       * anybody is using __ka address to the initial boot-stack - and try
++       * to use it - they are going to crash. The xen_start_info has been
++       * taken care of already in xen_setup_kernel_pagetable. */
++      addr = xen_start_info->pt_base;
++      size = roundup(xen_start_info->nr_pt_frames * PAGE_SIZE, PMD_SIZE);
++
++      xen_cleanhighmap(addr, addr + size);
++      xen_start_info->pt_base = (unsigned long)__va(__pa(xen_start_info->pt_base));
++#ifdef DEBUG
++      /* This is superflous and is not neccessary, but you know what
++       * lets do it. The MODULES_VADDR -> MODULES_END should be clear of
++       * anything at this stage. */
++      xen_cleanhighmap(MODULES_VADDR, roundup(MODULES_VADDR, PUD_SIZE) - 1);
++#endif
+ #endif
+       xen_post_allocator_init();
+ }
+-- 
+1.7.7.6
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1345133009-21941-12-git-send-email-konrad.wilk@oracle.com> b/config/examples/test/corpus/<1345133009-21941-12-git-send-email-konrad.wilk@oracle.com>
new file mode 100644 (file)
index 0000000..1c01de1
--- /dev/null
@@ -0,0 +1,138 @@
+From xen-devel-bounces@lists.xen.org Thu Aug 16 17:16:29 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 16 Aug 2012 17:16:29 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T22kE-0008El-R5
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 16 Aug 2012 17:16:29 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T22hJ-00069M-IC; Thu, 16 Aug 2012 16:13:25 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <konrad.wilk@oracle.com>) id 1T22hG-00067V-US
+       for xen-devel@lists.xensource.com; Thu, 16 Aug 2012 16:13:23 +0000
+Received: from [85.158.138.51:15893] by server-9.bemta-3.messagelabs.com id
+       54/77-23952-22C1D205; Thu, 16 Aug 2012 16:13:22 +0000
+X-Env-Sender: konrad.wilk@oracle.com
+X-Msg-Ref: server-12.tower-174.messagelabs.com!1345133599!20717328!1
+X-Originating-IP: [148.87.113.117]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogMTQ4Ljg3LjExMy4xMTcgPT4gNjk0MzAx\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 7359 invoked from network); 16 Aug 2012 16:13:21 -0000
+Received: from rcsinet15.oracle.com (HELO rcsinet15.oracle.com)
+       (148.87.113.117)
+       by server-12.tower-174.messagelabs.com with DHE-RSA-AES256-SHA
+       encrypted SMTP; 16 Aug 2012 16:13:21 -0000
+Received: from acsinet22.oracle.com (acsinet22.oracle.com [141.146.126.238])
+       by rcsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
+       ESMTP id q7GGDIjk007938
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
+       Thu, 16 Aug 2012 16:13:19 GMT
+Received: from acsmt356.oracle.com (acsmt356.oracle.com [141.146.40.156])
+       by acsinet22.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
+       q7GGDIjH007173
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
+       Thu, 16 Aug 2012 16:13:18 GMT
+Received: from abhmt118.oracle.com (abhmt118.oracle.com [141.146.116.70])
+       by acsmt356.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
+       q7GGDIq7027803; Thu, 16 Aug 2012 11:13:18 -0500
+Received: from phenom.dumpdata.com (/209.6.85.33)
+       by default (Oracle Beehive Gateway v4.0)
+       with ESMTP ; Thu, 16 Aug 2012 09:13:17 -0700
+Received: by phenom.dumpdata.com (Postfix, from userid 1000)
+       id 421BB40364; Thu, 16 Aug 2012 12:03:31 -0400 (EDT)
+From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+To: linux-kernel@vger.kernel.org, xen-devel@lists.xensource.com
+Date: Thu, 16 Aug 2012 12:03:29 -0400
+Message-Id: <1345133009-21941-12-git-send-email-konrad.wilk@oracle.com>
+X-Mailer: git-send-email 1.7.7.6
+In-Reply-To: <1345133009-21941-1-git-send-email-konrad.wilk@oracle.com>
+References: <1345133009-21941-1-git-send-email-konrad.wilk@oracle.com>
+X-Source-IP: acsinet22.oracle.com [141.146.126.238]
+Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+MIME-Version: 1.0
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
+Subject: [Xen-devel] [PATCH 11/11] xen/mmu: Release just the MFN list,
+       not MFN list and part of pagetables.
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+We call memblock_reserve for [start of mfn list] -> [PMD aligned end
+of mfn list] instead of <start of mfn list> -> <page aligned end of mfn list].
+
+This has the disastrous effect that if at bootup the end of mfn_list is
+not PMD aligned we end up returning to memblock parts of the region
+past the mfn_list array. And those parts are the PTE tables with
+the disastrous effect of seeing this at bootup:
+
+Write protecting the kernel read-only data: 10240k
+Freeing unused kernel memory: 1860k freed
+Freeing unused kernel memory: 200k freed
+(XEN) mm.c:2429:d0 Bad type (saw 1400000000000002 != exp 7000000000000000) for mfn 116a80 (pfn 14e26)
+...
+(XEN) mm.c:908:d0 Error getting mfn 116a83 (pfn 14e2a) from L1 entry 8000000116a83067 for l1e_owner=0, pg_owner=0
+(XEN) mm.c:908:d0 Error getting mfn 4040 (pfn 5555555555555555) from L1 entry 0000000004040601 for l1e_owner=0, pg_owner=0
+.. and so on.
+
+Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+---
+ arch/x86/xen/mmu.c |    2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/arch/x86/xen/mmu.c b/arch/x86/xen/mmu.c
+index 5a880b8..6019c22 100644
+--- a/arch/x86/xen/mmu.c
++++ b/arch/x86/xen/mmu.c
+@@ -1227,7 +1227,6 @@ static void __init xen_pagetable_setup_done(pgd_t *base)
+                       /* We should be in __ka space. */
+                       BUG_ON(xen_start_info->mfn_list < __START_KERNEL_map);
+                       addr = xen_start_info->mfn_list;
+-                      size = PAGE_ALIGN(xen_start_info->nr_pages * sizeof(unsigned long));
+                       /* We roundup to the PMD, which means that if anybody at this stage is
+                        * using the __ka address of xen_start_info or xen_start_info->shared_info
+                        * they are in going to crash. Fortunatly we have already revectored
+@@ -1235,6 +1234,7 @@ static void __init xen_pagetable_setup_done(pgd_t *base)
+                       size = roundup(size, PMD_SIZE);
+                       xen_cleanhighmap(addr, addr + size);
++                      size = PAGE_ALIGN(xen_start_info->nr_pages * sizeof(unsigned long));
+                       memblock_free(__pa(xen_start_info->mfn_list), size);
+                       /* And revector! Bye bye old array */
+                       xen_start_info->mfn_list = new_mfn_list;
+-- 
+1.7.7.6
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1345133009-21941-2-git-send-email-konrad.wilk@oracle.com> b/config/examples/test/corpus/<1345133009-21941-2-git-send-email-konrad.wilk@oracle.com>
new file mode 100644 (file)
index 0000000..ee952d7
--- /dev/null
@@ -0,0 +1,143 @@
+From xen-devel-bounces@lists.xen.org Thu Aug 16 17:16:50 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 16 Aug 2012 17:16:50 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T22kZ-0008Gd-8V
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 16 Aug 2012 17:16:49 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T22hK-00069y-B2; Thu, 16 Aug 2012 16:13:26 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <konrad.wilk@oracle.com>) id 1T22hH-00067j-Dz
+       for xen-devel@lists.xensource.com; Thu, 16 Aug 2012 16:13:23 +0000
+Received: from [85.158.138.51:25201] by server-7.bemta-3.messagelabs.com id
+       3D/0B-01906-22C1D205; Thu, 16 Aug 2012 16:13:22 +0000
+X-Env-Sender: konrad.wilk@oracle.com
+X-Msg-Ref: server-13.tower-174.messagelabs.com!1345133599!9971322!1
+X-Originating-IP: [148.87.113.117]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogMTQ4Ljg3LjExMy4xMTcgPT4gNjk0MzAx\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 22901 invoked from network); 16 Aug 2012 16:13:20 -0000
+Received: from rcsinet15.oracle.com (HELO rcsinet15.oracle.com)
+       (148.87.113.117)
+       by server-13.tower-174.messagelabs.com with DHE-RSA-AES256-SHA
+       encrypted SMTP; 16 Aug 2012 16:13:20 -0000
+Received: from acsinet21.oracle.com (acsinet21.oracle.com [141.146.126.237])
+       by rcsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
+       ESMTP id q7GGDH7v007924
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
+       Thu, 16 Aug 2012 16:13:18 GMT
+Received: from acsmt357.oracle.com (acsmt357.oracle.com [141.146.40.157])
+       by acsinet21.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
+       q7GGDHhd014619
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
+       Thu, 16 Aug 2012 16:13:17 GMT
+Received: from abhmt104.oracle.com (abhmt104.oracle.com [141.146.116.56])
+       by acsmt357.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
+       q7GGDHd6011297; Thu, 16 Aug 2012 11:13:17 -0500
+Received: from phenom.dumpdata.com (/209.6.85.33)
+       by default (Oracle Beehive Gateway v4.0)
+       with ESMTP ; Thu, 16 Aug 2012 09:13:17 -0700
+Received: by phenom.dumpdata.com (Postfix, from userid 1000)
+       id D3678402C0; Thu, 16 Aug 2012 12:03:30 -0400 (EDT)
+From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+To: linux-kernel@vger.kernel.org, xen-devel@lists.xensource.com
+Date: Thu, 16 Aug 2012 12:03:19 -0400
+Message-Id: <1345133009-21941-2-git-send-email-konrad.wilk@oracle.com>
+X-Mailer: git-send-email 1.7.7.6
+In-Reply-To: <1345133009-21941-1-git-send-email-konrad.wilk@oracle.com>
+References: <1345133009-21941-1-git-send-email-konrad.wilk@oracle.com>
+X-Source-IP: acsinet21.oracle.com [141.146.126.237]
+Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+MIME-Version: 1.0
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: [Xen-devel] [PATCH 01/11] xen/p2m: Fix the comment describing the
+       P2M tree.
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+It mixed up the p2m_mid_missing with p2m_missing. Also
+remove some extra spaces.
+
+Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+---
+ arch/x86/xen/p2m.c |   14 +++++++-------
+ 1 files changed, 7 insertions(+), 7 deletions(-)
+
+diff --git a/arch/x86/xen/p2m.c b/arch/x86/xen/p2m.c
+index 64effdc..e4adbfb 100644
+--- a/arch/x86/xen/p2m.c
++++ b/arch/x86/xen/p2m.c
+@@ -22,7 +22,7 @@
+  *
+  * P2M_PER_PAGE depends on the architecture, as a mfn is always
+  * unsigned long (8 bytes on 64-bit, 4 bytes on 32), leading to
+- * 512 and 1024 entries respectively. 
++ * 512 and 1024 entries respectively.
+  *
+  * In short, these structures contain the Machine Frame Number (MFN) of the PFN.
+  *
+@@ -139,11 +139,11 @@
+  *      /    | ~0, ~0, ....  |
+  *     |     \---------------/
+  *     |
+- *     p2m_missing             p2m_missing
+- * /------------------\     /------------\
+- * | [p2m_mid_missing]+---->| ~0, ~0, ~0 |
+- * | [p2m_mid_missing]+---->| ..., ~0    |
+- * \------------------/     \------------/
++ *   p2m_mid_missing           p2m_missing
++ * /-----------------\     /------------\
++ * | [p2m_missing]   +---->| ~0, ~0, ~0 |
++ * | [p2m_missing]   +---->| ..., ~0    |
++ * \-----------------/     \------------/
+  *
+  * where ~0 is INVALID_P2M_ENTRY. IDENTITY is (PFN | IDENTITY_BIT)
+  */
+@@ -423,7 +423,7 @@ static void free_p2m_page(void *p)
+       free_page((unsigned long)p);
+ }
+-/* 
++/*
+  * Fully allocate the p2m structure for a given pfn.  We need to check
+  * that both the top and mid levels are allocated, and make sure the
+  * parallel mfn tree is kept in sync.  We may race with other cpus, so
+-- 
+1.7.7.6
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1345133009-21941-3-git-send-email-konrad.wilk@oracle.com> b/config/examples/test/corpus/<1345133009-21941-3-git-send-email-konrad.wilk@oracle.com>
new file mode 100644 (file)
index 0000000..a23a022
--- /dev/null
@@ -0,0 +1,212 @@
+From xen-devel-bounces@lists.xen.org Thu Aug 16 17:16:36 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 16 Aug 2012 17:16:36 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T22kM-0008Ft-3G
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 16 Aug 2012 17:16:36 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T22hJ-00069A-5O; Thu, 16 Aug 2012 16:13:25 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <konrad.wilk@oracle.com>) id 1T22hG-00067T-Oy
+       for xen-devel@lists.xensource.com; Thu, 16 Aug 2012 16:13:22 +0000
+Received: from [85.158.139.83:3199] by server-12.bemta-5.messagelabs.com id
+       15/5E-22359-22C1D205; Thu, 16 Aug 2012 16:13:22 +0000
+X-Env-Sender: konrad.wilk@oracle.com
+X-Msg-Ref: server-12.tower-182.messagelabs.com!1345133599!28501761!1
+X-Originating-IP: [141.146.126.227]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogMTQxLjE0Ni4xMjYuMjI3ID0+IDcwMTY5NA==\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 18157 invoked from network); 16 Aug 2012 16:13:20 -0000
+Received: from acsinet15.oracle.com (HELO acsinet15.oracle.com)
+       (141.146.126.227)
+       by server-12.tower-182.messagelabs.com with DHE-RSA-AES256-SHA
+       encrypted SMTP; 16 Aug 2012 16:13:20 -0000
+Received: from ucsinet22.oracle.com (ucsinet22.oracle.com [156.151.31.94])
+       by acsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
+       ESMTP id q7GGDIKu027552
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
+       Thu, 16 Aug 2012 16:13:19 GMT
+Received: from acsmt356.oracle.com (acsmt356.oracle.com [141.146.40.156])
+       by ucsinet22.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
+       q7GGDHDC000527
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
+       Thu, 16 Aug 2012 16:13:18 GMT
+Received: from abhmt116.oracle.com (abhmt116.oracle.com [141.146.116.68])
+       by acsmt356.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
+       q7GGDH4H027782; Thu, 16 Aug 2012 11:13:17 -0500
+Received: from phenom.dumpdata.com (/209.6.85.33)
+       by default (Oracle Beehive Gateway v4.0)
+       with ESMTP ; Thu, 16 Aug 2012 09:13:17 -0700
+Received: by phenom.dumpdata.com (Postfix, from userid 1000)
+       id DA338402EF; Thu, 16 Aug 2012 12:03:30 -0400 (EDT)
+From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+To: linux-kernel@vger.kernel.org, xen-devel@lists.xensource.com
+Date: Thu, 16 Aug 2012 12:03:20 -0400
+Message-Id: <1345133009-21941-3-git-send-email-konrad.wilk@oracle.com>
+X-Mailer: git-send-email 1.7.7.6
+In-Reply-To: <1345133009-21941-1-git-send-email-konrad.wilk@oracle.com>
+References: <1345133009-21941-1-git-send-email-konrad.wilk@oracle.com>
+X-Source-IP: ucsinet22.oracle.com [156.151.31.94]
+Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+MIME-Version: 1.0
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
+Subject: [Xen-devel] [PATCH 02/11] xen/x86: Use memblock_reserve for
+       sensitive areas.
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+instead of a big memblock_reserve. This way we can be more
+selective in freeing regions (and it also makes it easier
+to understand where is what).
+
+[v1: Move the auto_translate_physmap to proper line]
+[v2: Per Stefano suggestion add more comments]
+Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+---
+ arch/x86/xen/enlighten.c |   48 ++++++++++++++++++++++++++++++++++++++++++++++
+ arch/x86/xen/p2m.c       |    5 ++++
+ arch/x86/xen/setup.c     |    9 --------
+ 3 files changed, 53 insertions(+), 9 deletions(-)
+
+diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c
+index ff962d4..e532eb5 100644
+--- a/arch/x86/xen/enlighten.c
++++ b/arch/x86/xen/enlighten.c
+@@ -998,7 +998,54 @@ static int xen_write_msr_safe(unsigned int msr, unsigned low, unsigned high)
+       return ret;
+ }
++/*
++ * If the MFN is not in the m2p (provided to us by the hypervisor) this
++ * function won't do anything. In practice this means that the XenBus
++ * MFN won't be available for the initial domain. */
++static void __init xen_reserve_mfn(unsigned long mfn)
++{
++      unsigned long pfn;
++
++      if (!mfn)
++              return;
++      pfn = mfn_to_pfn(mfn);
++      if (phys_to_machine_mapping_valid(pfn))
++              memblock_reserve(PFN_PHYS(pfn), PAGE_SIZE);
++}
++static void __init xen_reserve_internals(void)
++{
++      unsigned long size;
++
++      if (!xen_pv_domain())
++              return;
++
++      /* xen_start_info does not exist in the M2P, hence can't use
++       * xen_reserve_mfn. */
++      memblock_reserve(__pa(xen_start_info), PAGE_SIZE);
++
++      xen_reserve_mfn(PFN_DOWN(xen_start_info->shared_info));
++      xen_reserve_mfn(xen_start_info->store_mfn);
++      if (!xen_initial_domain())
++              xen_reserve_mfn(xen_start_info->console.domU.mfn);
++
++      if (xen_feature(XENFEAT_auto_translated_physmap))
++              return;
++
++      /*
++       * ALIGN up to compensate for the p2m_page pointing to an array that
++       * can partially filled (look in xen_build_dynamic_phys_to_machine).
++       */
++
++      size = PAGE_ALIGN(xen_start_info->nr_pages * sizeof(unsigned long));
++
++      /* We could use xen_reserve_mfn here, but would end up looping quite
++       * a lot (and call memblock_reserve for each PAGE), so lets just use
++       * the easy way and reserve it wholesale. */
++      memblock_reserve(__pa(xen_start_info->mfn_list), size);
++
++      /* The pagetables are reserved in mmu.c */
++}
+ void xen_setup_shared_info(void)
+ {
+       if (!xen_feature(XENFEAT_auto_translated_physmap)) {
+@@ -1362,6 +1409,7 @@ asmlinkage void __init xen_start_kernel(void)
+       xen_raw_console_write("mapping kernel into physical memory\n");
+       pgd = xen_setup_kernel_pagetable(pgd, xen_start_info->nr_pages);
++      xen_reserve_internals();
+       /* Allocate and initialize top and mid mfn levels for p2m structure */
+       xen_build_mfn_list_list();
+diff --git a/arch/x86/xen/p2m.c b/arch/x86/xen/p2m.c
+index e4adbfb..6a2bfa4 100644
+--- a/arch/x86/xen/p2m.c
++++ b/arch/x86/xen/p2m.c
+@@ -388,6 +388,11 @@ void __init xen_build_dynamic_phys_to_machine(void)
+       }
+       m2p_override_init();
++
++      /* NOTE: We cannot call memblock_reserve here for the mfn_list as there
++       * isn't enough pieces to make it work (for one - we are still using the
++       * Xen provided pagetable). Do it later in xen_reserve_internals.
++       */
+ }
+ unsigned long get_phys_to_machine(unsigned long pfn)
+diff --git a/arch/x86/xen/setup.c b/arch/x86/xen/setup.c
+index a4790bf..9efca75 100644
+--- a/arch/x86/xen/setup.c
++++ b/arch/x86/xen/setup.c
+@@ -424,15 +424,6 @@ char * __init xen_memory_setup(void)
+       e820_add_region(ISA_START_ADDRESS, ISA_END_ADDRESS - ISA_START_ADDRESS,
+                       E820_RESERVED);
+-      /*
+-       * Reserve Xen bits:
+-       *  - mfn_list
+-       *  - xen_start_info
+-       * See comment above "struct start_info" in <xen/interface/xen.h>
+-       */
+-      memblock_reserve(__pa(xen_start_info->mfn_list),
+-                       xen_start_info->pt_base - xen_start_info->mfn_list);
+-
+       sanitize_e820_map(e820.map, ARRAY_SIZE(e820.map), &e820.nr_map);
+       return "Xen";
+-- 
+1.7.7.6
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1345133009-21941-4-git-send-email-konrad.wilk@oracle.com> b/config/examples/test/corpus/<1345133009-21941-4-git-send-email-konrad.wilk@oracle.com>
new file mode 100644 (file)
index 0000000..ec1242f
--- /dev/null
@@ -0,0 +1,191 @@
+From xen-devel-bounces@lists.xen.org Thu Aug 16 17:17:06 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 16 Aug 2012 17:17:06 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T22kq-0008I8-AI
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 16 Aug 2012 17:17:06 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T22hI-00068J-53; Thu, 16 Aug 2012 16:13:24 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <konrad.wilk@oracle.com>) id 1T22hG-00067L-BC
+       for xen-devel@lists.xensource.com; Thu, 16 Aug 2012 16:13:22 +0000
+Received: from [85.158.143.35:42129] by server-2.bemta-4.messagelabs.com id
+       0B/1E-31966-12C1D205; Thu, 16 Aug 2012 16:13:21 +0000
+X-Env-Sender: konrad.wilk@oracle.com
+X-Msg-Ref: server-12.tower-21.messagelabs.com!1345133599!13695819!1
+X-Originating-IP: [141.146.126.227]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogMTQxLjE0Ni4xMjYuMjI3ID0+IDcwMTY5NA==\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 27523 invoked from network); 16 Aug 2012 16:13:20 -0000
+Received: from acsinet15.oracle.com (HELO acsinet15.oracle.com)
+       (141.146.126.227)
+       by server-12.tower-21.messagelabs.com with DHE-RSA-AES256-SHA encrypted
+       SMTP; 16 Aug 2012 16:13:20 -0000
+Received: from ucsinet21.oracle.com (ucsinet21.oracle.com [156.151.31.93])
+       by acsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
+       ESMTP id q7GGDIxT027551
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
+       Thu, 16 Aug 2012 16:13:19 GMT
+Received: from acsmt357.oracle.com (acsmt357.oracle.com [141.146.40.157])
+       by ucsinet21.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
+       q7GGDHhg007940
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
+       Thu, 16 Aug 2012 16:13:18 GMT
+Received: from abhmt116.oracle.com (abhmt116.oracle.com [141.146.116.68])
+       by acsmt357.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
+       q7GGDH8O011298; Thu, 16 Aug 2012 11:13:17 -0500
+Received: from phenom.dumpdata.com (/209.6.85.33)
+       by default (Oracle Beehive Gateway v4.0)
+       with ESMTP ; Thu, 16 Aug 2012 09:13:17 -0700
+Received: by phenom.dumpdata.com (Postfix, from userid 1000)
+       id E5069402F0; Thu, 16 Aug 2012 12:03:30 -0400 (EDT)
+From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+To: linux-kernel@vger.kernel.org, xen-devel@lists.xensource.com
+Date: Thu, 16 Aug 2012 12:03:21 -0400
+Message-Id: <1345133009-21941-4-git-send-email-konrad.wilk@oracle.com>
+X-Mailer: git-send-email 1.7.7.6
+In-Reply-To: <1345133009-21941-1-git-send-email-konrad.wilk@oracle.com>
+References: <1345133009-21941-1-git-send-email-konrad.wilk@oracle.com>
+X-Source-IP: ucsinet21.oracle.com [156.151.31.93]
+Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+MIME-Version: 1.0
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
+Subject: [Xen-devel] [PATCH 03/11] xen/mmu: The xen_setup_kernel_pagetable
+       doesn't need to return anything.
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+We don't need to return the new PGD - as we do not use it.
+
+Acked-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+---
+ arch/x86/xen/enlighten.c |    5 +----
+ arch/x86/xen/mmu.c       |   10 ++--------
+ arch/x86/xen/xen-ops.h   |    2 +-
+ 3 files changed, 4 insertions(+), 13 deletions(-)
+
+diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c
+index e532eb5..993e2a5 100644
+--- a/arch/x86/xen/enlighten.c
++++ b/arch/x86/xen/enlighten.c
+@@ -1305,7 +1305,6 @@ asmlinkage void __init xen_start_kernel(void)
+ {
+       struct physdev_set_iopl set_iopl;
+       int rc;
+-      pgd_t *pgd;
+       if (!xen_start_info)
+               return;
+@@ -1397,8 +1396,6 @@ asmlinkage void __init xen_start_kernel(void)
+       acpi_numa = -1;
+ #endif
+-      pgd = (pgd_t *)xen_start_info->pt_base;
+-
+       /* Don't do the full vcpu_info placement stuff until we have a
+          possible map and a non-dummy shared_info. */
+       per_cpu(xen_vcpu, 0) = &HYPERVISOR_shared_info->vcpu_info[0];
+@@ -1407,7 +1404,7 @@ asmlinkage void __init xen_start_kernel(void)
+       early_boot_irqs_disabled = true;
+       xen_raw_console_write("mapping kernel into physical memory\n");
+-      pgd = xen_setup_kernel_pagetable(pgd, xen_start_info->nr_pages);
++      xen_setup_kernel_pagetable((pgd_t *)xen_start_info->pt_base, xen_start_info->nr_pages);
+       xen_reserve_internals();
+       /* Allocate and initialize top and mid mfn levels for p2m structure */
+diff --git a/arch/x86/xen/mmu.c b/arch/x86/xen/mmu.c
+index 3a73785..4ac21a4 100644
+--- a/arch/x86/xen/mmu.c
++++ b/arch/x86/xen/mmu.c
+@@ -1719,8 +1719,7 @@ static void convert_pfn_mfn(void *v)
+  * of the physical mapping once some sort of allocator has been set
+  * up.
+  */
+-pgd_t * __init xen_setup_kernel_pagetable(pgd_t *pgd,
+-                                       unsigned long max_pfn)
++void __init xen_setup_kernel_pagetable(pgd_t *pgd, unsigned long max_pfn)
+ {
+       pud_t *l3;
+       pmd_t *l2;
+@@ -1781,8 +1780,6 @@ pgd_t * __init xen_setup_kernel_pagetable(pgd_t *pgd,
+       memblock_reserve(__pa(xen_start_info->pt_base),
+                        xen_start_info->nr_pt_frames * PAGE_SIZE);
+-
+-      return pgd;
+ }
+ #else /* !CONFIG_X86_64 */
+ static RESERVE_BRK_ARRAY(pmd_t, initial_kernel_pmd, PTRS_PER_PMD);
+@@ -1825,8 +1822,7 @@ static void __init xen_write_cr3_init(unsigned long cr3)
+       pv_mmu_ops.write_cr3 = &xen_write_cr3;
+ }
+-pgd_t * __init xen_setup_kernel_pagetable(pgd_t *pgd,
+-                                       unsigned long max_pfn)
++void __init xen_setup_kernel_pagetable(pgd_t *pgd, unsigned long max_pfn)
+ {
+       pmd_t *kernel_pmd;
+@@ -1858,8 +1854,6 @@ pgd_t * __init xen_setup_kernel_pagetable(pgd_t *pgd,
+       memblock_reserve(__pa(xen_start_info->pt_base),
+                        xen_start_info->nr_pt_frames * PAGE_SIZE);
+-
+-      return initial_page_table;
+ }
+ #endif        /* CONFIG_X86_64 */
+diff --git a/arch/x86/xen/xen-ops.h b/arch/x86/xen/xen-ops.h
+index 202d4c1..2230f57 100644
+--- a/arch/x86/xen/xen-ops.h
++++ b/arch/x86/xen/xen-ops.h
+@@ -27,7 +27,7 @@ void xen_setup_mfn_list_list(void);
+ void xen_setup_shared_info(void);
+ void xen_build_mfn_list_list(void);
+ void xen_setup_machphys_mapping(void);
+-pgd_t *xen_setup_kernel_pagetable(pgd_t *pgd, unsigned long max_pfn);
++void xen_setup_kernel_pagetable(pgd_t *pgd, unsigned long max_pfn);
+ void xen_reserve_top(void);
+ extern unsigned long xen_max_p2m_pfn;
+-- 
+1.7.7.6
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1345133009-21941-5-git-send-email-konrad.wilk@oracle.com> b/config/examples/test/corpus/<1345133009-21941-5-git-send-email-konrad.wilk@oracle.com>
new file mode 100644 (file)
index 0000000..c77f990
--- /dev/null
@@ -0,0 +1,147 @@
+From xen-devel-bounces@lists.xen.org Thu Aug 16 17:17:12 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 16 Aug 2012 17:17:12 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T22kw-0008IQ-Gu
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 16 Aug 2012 17:17:12 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T22hH-00067k-9k; Thu, 16 Aug 2012 16:13:23 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <konrad.wilk@oracle.com>) id 1T22hF-00067L-S4
+       for xen-devel@lists.xensource.com; Thu, 16 Aug 2012 16:13:22 +0000
+Received: from [85.158.143.35:42112] by server-2.bemta-4.messagelabs.com id
+       57/1E-31966-12C1D205; Thu, 16 Aug 2012 16:13:21 +0000
+X-Env-Sender: konrad.wilk@oracle.com
+X-Msg-Ref: server-16.tower-21.messagelabs.com!1345133599!14478509!1
+X-Originating-IP: [148.87.113.117]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogMTQ4Ljg3LjExMy4xMTcgPT4gNjk0MzAx\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 23684 invoked from network); 16 Aug 2012 16:13:20 -0000
+Received: from rcsinet15.oracle.com (HELO rcsinet15.oracle.com)
+       (148.87.113.117)
+       by server-16.tower-21.messagelabs.com with DHE-RSA-AES256-SHA encrypted
+       SMTP; 16 Aug 2012 16:13:20 -0000
+Received: from ucsinet22.oracle.com (ucsinet22.oracle.com [156.151.31.94])
+       by rcsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
+       ESMTP id q7GGDIhG007928
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
+       Thu, 16 Aug 2012 16:13:18 GMT
+Received: from acsmt358.oracle.com (acsmt358.oracle.com [141.146.40.158])
+       by ucsinet22.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
+       q7GGDHro000530
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
+       Thu, 16 Aug 2012 16:13:18 GMT
+Received: from abhmt110.oracle.com (abhmt110.oracle.com [141.146.116.62])
+       by acsmt358.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
+       q7GGDH06006355; Thu, 16 Aug 2012 11:13:17 -0500
+Received: from phenom.dumpdata.com (/209.6.85.33)
+       by default (Oracle Beehive Gateway v4.0)
+       with ESMTP ; Thu, 16 Aug 2012 09:13:17 -0700
+Received: by phenom.dumpdata.com (Postfix, from userid 1000)
+       id ED6994031E; Thu, 16 Aug 2012 12:03:30 -0400 (EDT)
+From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+To: linux-kernel@vger.kernel.org, xen-devel@lists.xensource.com
+Date: Thu, 16 Aug 2012 12:03:22 -0400
+Message-Id: <1345133009-21941-5-git-send-email-konrad.wilk@oracle.com>
+X-Mailer: git-send-email 1.7.7.6
+In-Reply-To: <1345133009-21941-1-git-send-email-konrad.wilk@oracle.com>
+References: <1345133009-21941-1-git-send-email-konrad.wilk@oracle.com>
+X-Source-IP: ucsinet22.oracle.com [156.151.31.94]
+Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+MIME-Version: 1.0
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
+Subject: [Xen-devel] [PATCH 04/11] xen/mmu: Provide comments describing the
+       _ka and _va aliasing issue
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+Which is that the level2_kernel_pgt (__ka virtual addresses)
+and level2_ident_pgt (__va virtual address) contain the same
+PMD entries. So if you modify a PTE in __ka, it will be reflected
+in __va (and vice-versa).
+
+Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+---
+ arch/x86/xen/mmu.c |   17 +++++++++++++++++
+ 1 files changed, 17 insertions(+), 0 deletions(-)
+
+diff --git a/arch/x86/xen/mmu.c b/arch/x86/xen/mmu.c
+index 4ac21a4..6ba6100 100644
+--- a/arch/x86/xen/mmu.c
++++ b/arch/x86/xen/mmu.c
+@@ -1734,19 +1734,36 @@ void __init xen_setup_kernel_pagetable(pgd_t *pgd, unsigned long max_pfn)
+       init_level4_pgt[0] = __pgd(0);
+       /* Pre-constructed entries are in pfn, so convert to mfn */
++      /* L4[272] -> level3_ident_pgt
++       * L4[511] -> level3_kernel_pgt */
+       convert_pfn_mfn(init_level4_pgt);
++
++      /* L3_i[0] -> level2_ident_pgt */
+       convert_pfn_mfn(level3_ident_pgt);
++      /* L3_k[510] -> level2_kernel_pgt
++       * L3_i[511] -> level2_fixmap_pgt */
+       convert_pfn_mfn(level3_kernel_pgt);
++      /* We get [511][511] and have Xen's version of level2_kernel_pgt */
+       l3 = m2v(pgd[pgd_index(__START_KERNEL_map)].pgd);
+       l2 = m2v(l3[pud_index(__START_KERNEL_map)].pud);
++      /* Graft it onto L4[272][0]. Note that we creating an aliasing problem:
++       * Both L4[272][0] and L4[511][511] have entries that point to the same
++       * L2 (PMD) tables. Meaning that if you modify it in __va space
++       * it will be also modified in the __ka space! (But if you just
++       * modify the PMD table to point to other PTE's or none, then you
++       * are OK - which is what cleanup_highmap does) */
+       memcpy(level2_ident_pgt, l2, sizeof(pmd_t) * PTRS_PER_PMD);
++      /* Graft it onto L4[511][511] */
+       memcpy(level2_kernel_pgt, l2, sizeof(pmd_t) * PTRS_PER_PMD);
++      /* Get [511][510] and graft that in level2_fixmap_pgt */
+       l3 = m2v(pgd[pgd_index(__START_KERNEL_map + PMD_SIZE)].pgd);
+       l2 = m2v(l3[pud_index(__START_KERNEL_map + PMD_SIZE)].pud);
+       memcpy(level2_fixmap_pgt, l2, sizeof(pmd_t) * PTRS_PER_PMD);
++      /* Note that we don't do anything with level1_fixmap_pgt which
++       * we don't need. */
+       /* Set up identity map */
+       xen_map_identity_early(level2_ident_pgt, max_pfn);
+-- 
+1.7.7.6
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1345133009-21941-6-git-send-email-konrad.wilk@oracle.com> b/config/examples/test/corpus/<1345133009-21941-6-git-send-email-konrad.wilk@oracle.com>
new file mode 100644 (file)
index 0000000..bd88928
--- /dev/null
@@ -0,0 +1,149 @@
+From xen-devel-bounces@lists.xen.org Thu Aug 16 17:16:26 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 16 Aug 2012 17:16:26 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T22k8-0008Ee-Q7
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 16 Aug 2012 17:16:25 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T22hK-0006AK-Nx; Thu, 16 Aug 2012 16:13:26 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <konrad.wilk@oracle.com>) id 1T22hH-00067V-JP
+       for xen-devel@lists.xensource.com; Thu, 16 Aug 2012 16:13:23 +0000
+Received: from [85.158.138.51:25253] by server-9.bemta-3.messagelabs.com id
+       4A/77-23952-32C1D205; Thu, 16 Aug 2012 16:13:23 +0000
+X-Env-Sender: konrad.wilk@oracle.com
+X-Msg-Ref: server-12.tower-174.messagelabs.com!1345133601!20717333!1
+X-Originating-IP: [141.146.126.227]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogMTQxLjE0Ni4xMjYuMjI3ID0+IDcwMTY5NA==\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 7428 invoked from network); 16 Aug 2012 16:13:22 -0000
+Received: from acsinet15.oracle.com (HELO acsinet15.oracle.com)
+       (141.146.126.227)
+       by server-12.tower-174.messagelabs.com with DHE-RSA-AES256-SHA
+       encrypted SMTP; 16 Aug 2012 16:13:22 -0000
+Received: from ucsinet22.oracle.com (ucsinet22.oracle.com [156.151.31.94])
+       by acsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
+       ESMTP id q7GGDJdE027566
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
+       Thu, 16 Aug 2012 16:13:19 GMT
+Received: from acsmt356.oracle.com (acsmt356.oracle.com [141.146.40.156])
+       by ucsinet22.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
+       q7GGDIsx000550
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
+       Thu, 16 Aug 2012 16:13:18 GMT
+Received: from abhmt114.oracle.com (abhmt114.oracle.com [141.146.116.66])
+       by acsmt356.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
+       q7GGDHqD027797; Thu, 16 Aug 2012 11:13:17 -0500
+Received: from phenom.dumpdata.com (/209.6.85.33)
+       by default (Oracle Beehive Gateway v4.0)
+       with ESMTP ; Thu, 16 Aug 2012 09:13:17 -0700
+Received: by phenom.dumpdata.com (Postfix, from userid 1000)
+       id 01AA24032C; Thu, 16 Aug 2012 12:03:30 -0400 (EDT)
+From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+To: linux-kernel@vger.kernel.org, xen-devel@lists.xensource.com
+Date: Thu, 16 Aug 2012 12:03:23 -0400
+Message-Id: <1345133009-21941-6-git-send-email-konrad.wilk@oracle.com>
+X-Mailer: git-send-email 1.7.7.6
+In-Reply-To: <1345133009-21941-1-git-send-email-konrad.wilk@oracle.com>
+References: <1345133009-21941-1-git-send-email-konrad.wilk@oracle.com>
+X-Source-IP: ucsinet22.oracle.com [156.151.31.94]
+Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+MIME-Version: 1.0
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
+Subject: [Xen-devel] [PATCH 05/11] xen/mmu: use copy_page instead of memcpy.
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+After all, this is what it is there for.
+
+Acked-by: Jan Beulich <jbeulich@suse.com>
+Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+---
+ arch/x86/xen/mmu.c |   13 ++++++-------
+ 1 files changed, 6 insertions(+), 7 deletions(-)
+
+diff --git a/arch/x86/xen/mmu.c b/arch/x86/xen/mmu.c
+index 6ba6100..7247e5a 100644
+--- a/arch/x86/xen/mmu.c
++++ b/arch/x86/xen/mmu.c
+@@ -1754,14 +1754,14 @@ void __init xen_setup_kernel_pagetable(pgd_t *pgd, unsigned long max_pfn)
+        * it will be also modified in the __ka space! (But if you just
+        * modify the PMD table to point to other PTE's or none, then you
+        * are OK - which is what cleanup_highmap does) */
+-      memcpy(level2_ident_pgt, l2, sizeof(pmd_t) * PTRS_PER_PMD);
++      copy_page(level2_ident_pgt, l2);
+       /* Graft it onto L4[511][511] */
+-      memcpy(level2_kernel_pgt, l2, sizeof(pmd_t) * PTRS_PER_PMD);
++      copy_page(level2_kernel_pgt, l2);
+       /* Get [511][510] and graft that in level2_fixmap_pgt */
+       l3 = m2v(pgd[pgd_index(__START_KERNEL_map + PMD_SIZE)].pgd);
+       l2 = m2v(l3[pud_index(__START_KERNEL_map + PMD_SIZE)].pud);
+-      memcpy(level2_fixmap_pgt, l2, sizeof(pmd_t) * PTRS_PER_PMD);
++      copy_page(level2_fixmap_pgt, l2);
+       /* Note that we don't do anything with level1_fixmap_pgt which
+        * we don't need. */
+@@ -1821,8 +1821,7 @@ static void __init xen_write_cr3_init(unsigned long cr3)
+        */
+       swapper_kernel_pmd =
+               extend_brk(sizeof(pmd_t) * PTRS_PER_PMD, PAGE_SIZE);
+-      memcpy(swapper_kernel_pmd, initial_kernel_pmd,
+-             sizeof(pmd_t) * PTRS_PER_PMD);
++      copy_page(swapper_kernel_pmd, initial_kernel_pmd);
+       swapper_pg_dir[KERNEL_PGD_BOUNDARY] =
+               __pgd(__pa(swapper_kernel_pmd) | _PAGE_PRESENT);
+       set_page_prot(swapper_kernel_pmd, PAGE_KERNEL_RO);
+@@ -1851,11 +1850,11 @@ void __init xen_setup_kernel_pagetable(pgd_t *pgd, unsigned long max_pfn)
+                                 512*1024);
+       kernel_pmd = m2v(pgd[KERNEL_PGD_BOUNDARY].pgd);
+-      memcpy(initial_kernel_pmd, kernel_pmd, sizeof(pmd_t) * PTRS_PER_PMD);
++      copy_page(initial_kernel_pmd, kernel_pmd);
+       xen_map_identity_early(initial_kernel_pmd, max_pfn);
+-      memcpy(initial_page_table, pgd, sizeof(pgd_t) * PTRS_PER_PGD);
++      copy_page(initial_page_table, pgd);
+       initial_page_table[KERNEL_PGD_BOUNDARY] =
+               __pgd(__pa(initial_kernel_pmd) | _PAGE_PRESENT);
+-- 
+1.7.7.6
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1345133009-21941-7-git-send-email-konrad.wilk@oracle.com> b/config/examples/test/corpus/<1345133009-21941-7-git-send-email-konrad.wilk@oracle.com>
new file mode 100644 (file)
index 0000000..2f47650
--- /dev/null
@@ -0,0 +1,159 @@
+From xen-devel-bounces@lists.xen.org Thu Aug 16 17:16:44 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 16 Aug 2012 17:16:44 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T22kT-0008GB-QB
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 16 Aug 2012 17:16:44 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T22hI-00068q-Po; Thu, 16 Aug 2012 16:13:24 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <konrad.wilk@oracle.com>) id 1T22hG-00067O-IH
+       for xen-devel@lists.xensource.com; Thu, 16 Aug 2012 16:13:22 +0000
+Received: from [85.158.139.83:40635] by server-10.bemta-5.messagelabs.com id
+       86/C6-13125-12C1D205; Thu, 16 Aug 2012 16:13:21 +0000
+X-Env-Sender: konrad.wilk@oracle.com
+X-Msg-Ref: server-4.tower-182.messagelabs.com!1345133600!25790051!1
+X-Originating-IP: [148.87.113.117]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogMTQ4Ljg3LjExMy4xMTcgPT4gNjk0MzAx\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 3748 invoked from network); 16 Aug 2012 16:13:21 -0000
+Received: from rcsinet15.oracle.com (HELO rcsinet15.oracle.com)
+       (148.87.113.117)
+       by server-4.tower-182.messagelabs.com with DHE-RSA-AES256-SHA encrypted
+       SMTP; 16 Aug 2012 16:13:21 -0000
+Received: from ucsinet22.oracle.com (ucsinet22.oracle.com [156.151.31.94])
+       by rcsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
+       ESMTP id q7GGDIQu007944
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
+       Thu, 16 Aug 2012 16:13:19 GMT
+Received: from acsmt357.oracle.com (acsmt357.oracle.com [141.146.40.157])
+       by ucsinet22.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
+       q7GGDIrM000545
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
+       Thu, 16 Aug 2012 16:13:18 GMT
+Received: from abhmt107.oracle.com (abhmt107.oracle.com [141.146.116.59])
+       by acsmt357.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
+       q7GGDI0Z011310; Thu, 16 Aug 2012 11:13:18 -0500
+Received: from phenom.dumpdata.com (/209.6.85.33)
+       by default (Oracle Beehive Gateway v4.0)
+       with ESMTP ; Thu, 16 Aug 2012 09:13:17 -0700
+Received: by phenom.dumpdata.com (Postfix, from userid 1000)
+       id 0BE714032D; Thu, 16 Aug 2012 12:03:31 -0400 (EDT)
+From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+To: linux-kernel@vger.kernel.org, xen-devel@lists.xensource.com
+Date: Thu, 16 Aug 2012 12:03:24 -0400
+Message-Id: <1345133009-21941-7-git-send-email-konrad.wilk@oracle.com>
+X-Mailer: git-send-email 1.7.7.6
+In-Reply-To: <1345133009-21941-1-git-send-email-konrad.wilk@oracle.com>
+References: <1345133009-21941-1-git-send-email-konrad.wilk@oracle.com>
+X-Source-IP: ucsinet22.oracle.com [156.151.31.94]
+Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+MIME-Version: 1.0
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
+Subject: [Xen-devel] [PATCH 06/11] xen/mmu: For 64-bit do not call
+       xen_map_identity_early
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+B/c we do not need it. During the startup the Xen provides
+us with all the memory mapped that we need to function.
+
+Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+---
+ arch/x86/xen/mmu.c |   11 +++++------
+ 1 files changed, 5 insertions(+), 6 deletions(-)
+
+diff --git a/arch/x86/xen/mmu.c b/arch/x86/xen/mmu.c
+index 7247e5a..a59070b 100644
+--- a/arch/x86/xen/mmu.c
++++ b/arch/x86/xen/mmu.c
+@@ -84,6 +84,7 @@
+  */
+ DEFINE_SPINLOCK(xen_reservation_lock);
++#ifdef CONFIG_X86_32
+ /*
+  * Identity map, in addition to plain kernel map.  This needs to be
+  * large enough to allocate page table pages to allocate the rest.
+@@ -91,7 +92,7 @@ DEFINE_SPINLOCK(xen_reservation_lock);
+  */
+ #define LEVEL1_IDENT_ENTRIES  (PTRS_PER_PTE * 4)
+ static RESERVE_BRK_ARRAY(pte_t, level1_ident_pgt, LEVEL1_IDENT_ENTRIES);
+-
++#endif
+ #ifdef CONFIG_X86_64
+ /* l3 pud for userspace vsyscall mapping */
+ static pud_t level3_user_vsyscall[PTRS_PER_PUD] __page_aligned_bss;
+@@ -1628,7 +1629,7 @@ static void set_page_prot(void *addr, pgprot_t prot)
+       if (HYPERVISOR_update_va_mapping((unsigned long)addr, pte, 0))
+               BUG();
+ }
+-
++#ifdef CONFIG_X86_32
+ static void __init xen_map_identity_early(pmd_t *pmd, unsigned long max_pfn)
+ {
+       unsigned pmdidx, pteidx;
+@@ -1679,7 +1680,7 @@ static void __init xen_map_identity_early(pmd_t *pmd, unsigned long max_pfn)
+       set_page_prot(pmd, PAGE_KERNEL_RO);
+ }
+-
++#endif
+ void __init xen_setup_machphys_mapping(void)
+ {
+       struct xen_machphys_mapping mapping;
+@@ -1765,14 +1766,12 @@ void __init xen_setup_kernel_pagetable(pgd_t *pgd, unsigned long max_pfn)
+       /* Note that we don't do anything with level1_fixmap_pgt which
+        * we don't need. */
+-      /* Set up identity map */
+-      xen_map_identity_early(level2_ident_pgt, max_pfn);
+-
+       /* Make pagetable pieces RO */
+       set_page_prot(init_level4_pgt, PAGE_KERNEL_RO);
+       set_page_prot(level3_ident_pgt, PAGE_KERNEL_RO);
+       set_page_prot(level3_kernel_pgt, PAGE_KERNEL_RO);
+       set_page_prot(level3_user_vsyscall, PAGE_KERNEL_RO);
++      set_page_prot(level2_ident_pgt, PAGE_KERNEL_RO);
+       set_page_prot(level2_kernel_pgt, PAGE_KERNEL_RO);
+       set_page_prot(level2_fixmap_pgt, PAGE_KERNEL_RO);
+-- 
+1.7.7.6
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1345133009-21941-8-git-send-email-konrad.wilk@oracle.com> b/config/examples/test/corpus/<1345133009-21941-8-git-send-email-konrad.wilk@oracle.com>
new file mode 100644 (file)
index 0000000..ab5a602
--- /dev/null
@@ -0,0 +1,194 @@
+From xen-devel-bounces@lists.xen.org Thu Aug 16 17:16:54 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 16 Aug 2012 17:16:54 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T22kd-0008HS-T7
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 16 Aug 2012 17:16:54 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T22hH-000680-Na; Thu, 16 Aug 2012 16:13:23 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <konrad.wilk@oracle.com>) id 1T22hG-00067M-8B
+       for xen-devel@lists.xensource.com; Thu, 16 Aug 2012 16:13:22 +0000
+Received: from [85.158.143.99:16046] by server-1.bemta-4.messagelabs.com id
+       5E/5A-07754-12C1D205; Thu, 16 Aug 2012 16:13:21 +0000
+X-Env-Sender: konrad.wilk@oracle.com
+X-Msg-Ref: server-6.tower-216.messagelabs.com!1345133599!21510805!1
+X-Originating-IP: [148.87.113.117]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogMTQ4Ljg3LjExMy4xMTcgPT4gNjk0MzAx\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 12320 invoked from network); 16 Aug 2012 16:13:21 -0000
+Received: from rcsinet15.oracle.com (HELO rcsinet15.oracle.com)
+       (148.87.113.117)
+       by server-6.tower-216.messagelabs.com with DHE-RSA-AES256-SHA encrypted
+       SMTP; 16 Aug 2012 16:13:21 -0000
+Received: from acsinet22.oracle.com (acsinet22.oracle.com [141.146.126.238])
+       by rcsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
+       ESMTP id q7GGDI7h007939
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
+       Thu, 16 Aug 2012 16:13:19 GMT
+Received: from acsmt357.oracle.com (acsmt357.oracle.com [141.146.40.157])
+       by acsinet22.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
+       q7GGDI2C007167
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
+       Thu, 16 Aug 2012 16:13:18 GMT
+Received: from abhmt120.oracle.com (abhmt120.oracle.com [141.146.116.72])
+       by acsmt357.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
+       q7GGDIcL011311; Thu, 16 Aug 2012 11:13:18 -0500
+Received: from phenom.dumpdata.com (/209.6.85.33)
+       by default (Oracle Beehive Gateway v4.0)
+       with ESMTP ; Thu, 16 Aug 2012 09:13:17 -0700
+Received: by phenom.dumpdata.com (Postfix, from userid 1000)
+       id 1628640357; Thu, 16 Aug 2012 12:03:31 -0400 (EDT)
+From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+To: linux-kernel@vger.kernel.org, xen-devel@lists.xensource.com
+Date: Thu, 16 Aug 2012 12:03:25 -0400
+Message-Id: <1345133009-21941-8-git-send-email-konrad.wilk@oracle.com>
+X-Mailer: git-send-email 1.7.7.6
+In-Reply-To: <1345133009-21941-1-git-send-email-konrad.wilk@oracle.com>
+References: <1345133009-21941-1-git-send-email-konrad.wilk@oracle.com>
+X-Source-IP: acsinet22.oracle.com [141.146.126.238]
+Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+MIME-Version: 1.0
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
+Subject: [Xen-devel] [PATCH 07/11] xen/mmu: Recycle the Xen provided L4, L3,
+       and L2 pages
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+As we are not using them. We end up only using the L1 pagetables
+and grafting those to our page-tables.
+
+[v1: Per Stefano's suggestion squashed two commits]
+[v2: Per Stefano's suggestion simplified loop]
+[v3: Fix smatch warnings]
+Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+---
+ arch/x86/xen/mmu.c |   40 +++++++++++++++++++++++++++++++++-------
+ 1 files changed, 33 insertions(+), 7 deletions(-)
+
+diff --git a/arch/x86/xen/mmu.c b/arch/x86/xen/mmu.c
+index a59070b..bd92c82 100644
+--- a/arch/x86/xen/mmu.c
++++ b/arch/x86/xen/mmu.c
+@@ -1708,7 +1708,20 @@ static void convert_pfn_mfn(void *v)
+       for (i = 0; i < PTRS_PER_PTE; i++)
+               pte[i] = xen_make_pte(pte[i].pte);
+ }
+-
++static void __init check_pt_base(unsigned long *pt_base, unsigned long *pt_end,
++                               unsigned long addr)
++{
++      if (*pt_base == PFN_DOWN(__pa(addr))) {
++              set_page_prot((void *)addr, PAGE_KERNEL);
++              clear_page((void *)addr);
++              (*pt_base)++;
++      }
++      if (*pt_end == PFN_DOWN(__pa(addr))) {
++              set_page_prot((void *)addr, PAGE_KERNEL);
++              clear_page((void *)addr);
++              (*pt_end)--;
++      }
++}
+ /*
+  * Set up the initial kernel pagetable.
+  *
+@@ -1724,6 +1737,9 @@ void __init xen_setup_kernel_pagetable(pgd_t *pgd, unsigned long max_pfn)
+ {
+       pud_t *l3;
+       pmd_t *l2;
++      unsigned long addr[3];
++      unsigned long pt_base, pt_end;
++      unsigned i;
+       /* max_pfn_mapped is the last pfn mapped in the initial memory
+        * mappings. Considering that on Xen after the kernel mappings we
+@@ -1731,6 +1747,9 @@ void __init xen_setup_kernel_pagetable(pgd_t *pgd, unsigned long max_pfn)
+        * set max_pfn_mapped to the last real pfn mapped. */
+       max_pfn_mapped = PFN_DOWN(__pa(xen_start_info->mfn_list));
++      pt_base = PFN_DOWN(__pa(xen_start_info->pt_base));
++      pt_end = PFN_DOWN(__pa(xen_start_info->pt_base + (xen_start_info->nr_pt_frames * PAGE_SIZE)));
++
+       /* Zap identity mapping */
+       init_level4_pgt[0] = __pgd(0);
+@@ -1749,6 +1768,9 @@ void __init xen_setup_kernel_pagetable(pgd_t *pgd, unsigned long max_pfn)
+       l3 = m2v(pgd[pgd_index(__START_KERNEL_map)].pgd);
+       l2 = m2v(l3[pud_index(__START_KERNEL_map)].pud);
++      addr[0] = (unsigned long)pgd;
++      addr[1] = (unsigned long)l3;
++      addr[2] = (unsigned long)l2;
+       /* Graft it onto L4[272][0]. Note that we creating an aliasing problem:
+        * Both L4[272][0] and L4[511][511] have entries that point to the same
+        * L2 (PMD) tables. Meaning that if you modify it in __va space
+@@ -1782,20 +1804,24 @@ void __init xen_setup_kernel_pagetable(pgd_t *pgd, unsigned long max_pfn)
+       /* Unpin Xen-provided one */
+       pin_pagetable_pfn(MMUEXT_UNPIN_TABLE, PFN_DOWN(__pa(pgd)));
+-      /* Switch over */
+-      pgd = init_level4_pgt;
+-
+       /*
+        * At this stage there can be no user pgd, and no page
+        * structure to attach it to, so make sure we just set kernel
+        * pgd.
+        */
+       xen_mc_batch();
+-      __xen_write_cr3(true, __pa(pgd));
++      __xen_write_cr3(true, __pa(init_level4_pgt));
+       xen_mc_issue(PARAVIRT_LAZY_CPU);
+-      memblock_reserve(__pa(xen_start_info->pt_base),
+-                       xen_start_info->nr_pt_frames * PAGE_SIZE);
++      /* We can't that easily rip out L3 and L2, as the Xen pagetables are
++       * set out this way: [L4], [L1], [L2], [L3], [L1], [L1] ...  for
++       * the initial domain. For guests using the toolstack, they are in:
++       * [L4], [L3], [L2], [L1], [L1], order .. */
++      for (i = 0; i < ARRAY_SIZE(addr); i++)
++              check_pt_base(&pt_base, &pt_end, addr[i]);
++
++      /* Our (by three pages) smaller Xen pagetable that we are using */
++      memblock_reserve(PFN_PHYS(pt_base), (pt_end - pt_base) * PAGE_SIZE);
+ }
+ #else /* !CONFIG_X86_64 */
+ static RESERVE_BRK_ARRAY(pmd_t, initial_kernel_pmd, PTRS_PER_PMD);
+-- 
+1.7.7.6
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1345133009-21941-9-git-send-email-konrad.wilk@oracle.com> b/config/examples/test/corpus/<1345133009-21941-9-git-send-email-konrad.wilk@oracle.com>
new file mode 100644 (file)
index 0000000..0142b96
--- /dev/null
@@ -0,0 +1,292 @@
+From xen-devel-bounces@lists.xen.org Thu Aug 16 17:16:30 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 16 Aug 2012 17:16:30 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T22kE-0008Ek-Ll
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 16 Aug 2012 17:16:29 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T22hO-0006Fb-NU; Thu, 16 Aug 2012 16:13:30 +0000
+Received: from mail27.messagelabs.com ([193.109.254.147])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <konrad.wilk@oracle.com>) id 1T22hM-00067f-4e
+       for xen-devel@lists.xensource.com; Thu, 16 Aug 2012 16:13:28 +0000
+X-Env-Sender: konrad.wilk@oracle.com
+X-Msg-Ref: server-16.tower-27.messagelabs.com!1345133600!9447666!1
+X-Originating-IP: [141.146.126.227]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogMTQxLjE0Ni4xMjYuMjI3ID0+IDcwMTY5NA==\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 27243 invoked from network); 16 Aug 2012 16:13:21 -0000
+Received: from acsinet15.oracle.com (HELO acsinet15.oracle.com)
+       (141.146.126.227)
+       by server-16.tower-27.messagelabs.com with DHE-RSA-AES256-SHA encrypted
+       SMTP; 16 Aug 2012 16:13:21 -0000
+Received: from acsinet21.oracle.com (acsinet21.oracle.com [141.146.126.237])
+       by acsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
+       ESMTP id q7GGDI4o027562
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
+       Thu, 16 Aug 2012 16:13:19 GMT
+Received: from acsmt357.oracle.com (acsmt357.oracle.com [141.146.40.157])
+       by acsinet21.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
+       q7GGDIY1014645
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
+       Thu, 16 Aug 2012 16:13:18 GMT
+Received: from abhmt105.oracle.com (abhmt105.oracle.com [141.146.116.57])
+       by acsmt357.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
+       q7GGDICj011317; Thu, 16 Aug 2012 11:13:18 -0500
+Received: from phenom.dumpdata.com (/209.6.85.33)
+       by default (Oracle Beehive Gateway v4.0)
+       with ESMTP ; Thu, 16 Aug 2012 09:13:17 -0700
+Received: by phenom.dumpdata.com (Postfix, from userid 1000)
+       id 1F84D4035A; Thu, 16 Aug 2012 12:03:31 -0400 (EDT)
+From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+To: linux-kernel@vger.kernel.org, xen-devel@lists.xensource.com
+Date: Thu, 16 Aug 2012 12:03:26 -0400
+Message-Id: <1345133009-21941-9-git-send-email-konrad.wilk@oracle.com>
+X-Mailer: git-send-email 1.7.7.6
+In-Reply-To: <1345133009-21941-1-git-send-email-konrad.wilk@oracle.com>
+References: <1345133009-21941-1-git-send-email-konrad.wilk@oracle.com>
+X-Source-IP: acsinet21.oracle.com [141.146.126.237]
+Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+MIME-Version: 1.0
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
+Subject: [Xen-devel] [PATCH 08/11] xen/p2m: Add logic to revector a P2M tree
+       to use __va leafs.
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+During bootup Xen supplies us with a P2M array. It sticks
+it right after the ramdisk, as can be seen with a 128GB PV guest:
+
+(certain parts removed for clarity):
+xc_dom_build_image: called
+xc_dom_alloc_segment:   kernel       : 0xffffffff81000000 -> 0xffffffff81e43000  (pfn 0x1000 + 0xe43 pages)
+xc_dom_pfn_to_ptr: domU mapping: pfn 0x1000+0xe43 at 0x7f097d8bf000
+xc_dom_alloc_segment:   ramdisk      : 0xffffffff81e43000 -> 0xffffffff925c7000  (pfn 0x1e43 + 0x10784 pages)
+xc_dom_pfn_to_ptr: domU mapping: pfn 0x1e43+0x10784 at 0x7f0952dd2000
+xc_dom_alloc_segment:   phys2mach    : 0xffffffff925c7000 -> 0xffffffffa25c7000  (pfn 0x125c7 + 0x10000 pages)
+xc_dom_pfn_to_ptr: domU mapping: pfn 0x125c7+0x10000 at 0x7f0942dd2000
+xc_dom_alloc_page   :   start info   : 0xffffffffa25c7000 (pfn 0x225c7)
+xc_dom_alloc_page   :   xenstore     : 0xffffffffa25c8000 (pfn 0x225c8)
+xc_dom_alloc_page   :   console      : 0xffffffffa25c9000 (pfn 0x225c9)
+nr_page_tables: 0x0000ffffffffffff/48: 0xffff000000000000 -> 0xffffffffffffffff, 1 table(s)
+nr_page_tables: 0x0000007fffffffff/39: 0xffffff8000000000 -> 0xffffffffffffffff, 1 table(s)
+nr_page_tables: 0x000000003fffffff/30: 0xffffffff80000000 -> 0xffffffffbfffffff, 1 table(s)
+nr_page_tables: 0x00000000001fffff/21: 0xffffffff80000000 -> 0xffffffffa27fffff, 276 table(s)
+xc_dom_alloc_segment:   page tables  : 0xffffffffa25ca000 -> 0xffffffffa26e1000  (pfn 0x225ca + 0x117 pages)
+xc_dom_pfn_to_ptr: domU mapping: pfn 0x225ca+0x117 at 0x7f097d7a8000
+xc_dom_alloc_page   :   boot stack   : 0xffffffffa26e1000 (pfn 0x226e1)
+xc_dom_build_image  : virt_alloc_end : 0xffffffffa26e2000
+xc_dom_build_image  : virt_pgtab_end : 0xffffffffa2800000
+
+So the physical memory and virtual (using __START_KERNEL_map addresses)
+layout looks as so:
+
+  phys                             __ka
+/------------\                   /-------------------\
+| 0          | empty             | 0xffffffff80000000|
+| ..         |                   | ..                |
+| 16MB       | <= kernel starts  | 0xffffffff81000000|
+| ..         |                   |                   |
+| 30MB       | <= kernel ends => | 0xffffffff81e43000|
+| ..         |  & ramdisk starts | ..                |
+| 293MB      | <= ramdisk ends=> | 0xffffffff925c7000|
+| ..         |  & P2M starts     | ..                |
+| ..         |                   | ..                |
+| 549MB      | <= P2M ends    => | 0xffffffffa25c7000|
+| ..         | start_info        | 0xffffffffa25c7000|
+| ..         | xenstore          | 0xffffffffa25c8000|
+| ..         | cosole            | 0xffffffffa25c9000|
+| 549MB      | <= page tables => | 0xffffffffa25ca000|
+| ..         |                   |                   |
+| 550MB      | <= PGT end     => | 0xffffffffa26e1000|
+| ..         | boot stack        |                   |
+\------------/                   \-------------------/
+
+As can be seen, the ramdisk, P2M and pagetables are taking
+a bit of __ka addresses space. Which is a problem since the
+MODULES_VADDR starts at 0xffffffffa0000000 - and P2M sits
+right in there! This results during bootup with the inability to
+load modules, with this error:
+
+------------[ cut here ]------------
+WARNING: at /home/konrad/ssd/linux/mm/vmalloc.c:106 vmap_page_range_noflush+0x2d9/0x370()
+Call Trace:
+ [<ffffffff810719fa>] warn_slowpath_common+0x7a/0xb0
+ [<ffffffff81030279>] ? __raw_callee_save_xen_pmd_val+0x11/0x1e
+ [<ffffffff81071a45>] warn_slowpath_null+0x15/0x20
+ [<ffffffff81130b89>] vmap_page_range_noflush+0x2d9/0x370
+ [<ffffffff81130c4d>] map_vm_area+0x2d/0x50
+ [<ffffffff811326d0>] __vmalloc_node_range+0x160/0x250
+ [<ffffffff810c5369>] ? module_alloc_update_bounds+0x19/0x80
+ [<ffffffff810c6186>] ? load_module+0x66/0x19c0
+ [<ffffffff8105cadc>] module_alloc+0x5c/0x60
+ [<ffffffff810c5369>] ? module_alloc_update_bounds+0x19/0x80
+ [<ffffffff810c5369>] module_alloc_update_bounds+0x19/0x80
+ [<ffffffff810c70c3>] load_module+0xfa3/0x19c0
+ [<ffffffff812491f6>] ? security_file_permission+0x86/0x90
+ [<ffffffff810c7b3a>] sys_init_module+0x5a/0x220
+ [<ffffffff815ce339>] system_call_fastpath+0x16/0x1b
+---[ end trace fd8f7704fdea0291 ]---
+vmalloc: allocation failure, allocated 16384 of 20480 bytes
+modprobe: page allocation failure: order:0, mode:0xd2
+
+Since the __va and __ka are 1:1 up to MODULES_VADDR and
+cleanup_highmap rids __ka of the ramdisk mapping, what
+we want to do is similar - get rid of the P2M in the __ka
+address space. There are two ways of fixing this:
+
+ 1) All P2M lookups instead of using the __ka address would
+    use the __va address. This means we can safely erase from
+    __ka space the PMD pointers that point to the PFNs for
+    P2M array and be OK.
+ 2). Allocate a new array, copy the existing P2M into it,
+    revector the P2M tree to use that, and return the old
+    P2M to the memory allocate. This has the advantage that
+    it sets the stage for using XEN_ELF_NOTE_INIT_P2M
+    feature. That feature allows us to set the exact virtual
+    address space we want for the P2M - and allows us to
+    boot as initial domain on large machines.
+
+So we pick option 2).
+
+This patch only lays the groundwork in the P2M code. The patch
+that modifies the MMU is called "xen/mmu: Copy and revector the P2M tree."
+
+Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+---
+ arch/x86/xen/p2m.c     |   70 ++++++++++++++++++++++++++++++++++++++++++++++++
+ arch/x86/xen/xen-ops.h |    1 +
+ 2 files changed, 71 insertions(+), 0 deletions(-)
+
+diff --git a/arch/x86/xen/p2m.c b/arch/x86/xen/p2m.c
+index 6a2bfa4..bbfd085 100644
+--- a/arch/x86/xen/p2m.c
++++ b/arch/x86/xen/p2m.c
+@@ -394,7 +394,77 @@ void __init xen_build_dynamic_phys_to_machine(void)
+        * Xen provided pagetable). Do it later in xen_reserve_internals.
+        */
+ }
++#ifdef CONFIG_X86_64
++#include <linux/bootmem.h>
++unsigned long __init xen_revector_p2m_tree(void)
++{
++      unsigned long va_start;
++      unsigned long va_end;
++      unsigned long pfn;
++      unsigned long *mfn_list = NULL;
++      unsigned long size;
++
++      va_start = xen_start_info->mfn_list;
++      /*We copy in increments of P2M_PER_PAGE * sizeof(unsigned long),
++       * so make sure it is rounded up to that */
++      size = PAGE_ALIGN(xen_start_info->nr_pages * sizeof(unsigned long));
++      va_end = va_start + size;
++
++      /* If we were revectored already, don't do it again. */
++      if (va_start <= __START_KERNEL_map && va_start >= __PAGE_OFFSET)
++              return 0;
++
++      mfn_list = alloc_bootmem_align(size, PAGE_SIZE);
++      if (!mfn_list) {
++              pr_warn("Could not allocate space for a new P2M tree!\n");
++              return xen_start_info->mfn_list;
++      }
++      /* Fill it out with INVALID_P2M_ENTRY value */
++      memset(mfn_list, 0xFF, size);
++
++      for (pfn = 0; pfn < ALIGN(MAX_DOMAIN_PAGES, P2M_PER_PAGE); pfn += P2M_PER_PAGE) {
++              unsigned topidx = p2m_top_index(pfn);
++              unsigned mididx;
++              unsigned long *mid_p;
++
++              if (!p2m_top[topidx])
++                      continue;
++
++              if (p2m_top[topidx] == p2m_mid_missing)
++                      continue;
++
++              mididx = p2m_mid_index(pfn);
++              mid_p = p2m_top[topidx][mididx];
++              if (!mid_p)
++                      continue;
++              if ((mid_p == p2m_missing) || (mid_p == p2m_identity))
++                      continue;
++
++              if ((unsigned long)mid_p == INVALID_P2M_ENTRY)
++                      continue;
++
++              /* The old va. Rebase it on mfn_list */
++              if (mid_p >= (unsigned long *)va_start && mid_p <= (unsigned long *)va_end) {
++                      unsigned long *new;
++
++                      new = &mfn_list[pfn];
++
++                      copy_page(new, mid_p);
++                      p2m_top[topidx][mididx] = &mfn_list[pfn];
++                      p2m_top_mfn_p[topidx][mididx] = virt_to_mfn(&mfn_list[pfn]);
++              }
++              /* This should be the leafs allocated for identity from _brk. */
++      }
++      return (unsigned long)mfn_list;
++
++}
++#else
++unsigned long __init xen_revector_p2m_tree(void)
++{
++      return 0;
++}
++#endif
+ unsigned long get_phys_to_machine(unsigned long pfn)
+ {
+       unsigned topidx, mididx, idx;
+diff --git a/arch/x86/xen/xen-ops.h b/arch/x86/xen/xen-ops.h
+index 2230f57..bb5a810 100644
+--- a/arch/x86/xen/xen-ops.h
++++ b/arch/x86/xen/xen-ops.h
+@@ -45,6 +45,7 @@ void xen_hvm_init_shared_info(void);
+ void xen_unplug_emulated_devices(void);
+ void __init xen_build_dynamic_phys_to_machine(void);
++unsigned long __init xen_revector_p2m_tree(void);
+ void xen_init_irq_ops(void);
+ void xen_setup_timer(int cpu);
+-- 
+1.7.7.6
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1345190532.30865.67.camel@zakaz.uk.xensource.com> b/config/examples/test/corpus/<1345190532.30865.67.camel@zakaz.uk.xensource.com>
new file mode 100644 (file)
index 0000000..f0853a1
--- /dev/null
@@ -0,0 +1,119 @@
+From xen-devel-bounces@lists.xen.org Fri Aug 17 09:07:13 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 17 Aug 2012 09:07:13 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T2HaH-0006r7-C1
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 17 Aug 2012 09:07:13 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T2HVZ-0008TD-3U; Fri, 17 Aug 2012 08:02:17 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1T2HVX-0008T8-68
+       for xen-devel@lists.xen.org; Fri, 17 Aug 2012 08:02:15 +0000
+Received: from [85.158.138.51:51763] by server-11.bemta-3.messagelabs.com id
+       CB/BF-23152-68AFD205; Fri, 17 Aug 2012 08:02:14 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-11.tower-174.messagelabs.com!1345190533!28754520!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDk0Mzk=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 24530 invoked from network); 17 Aug 2012 08:02:14 -0000
+Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-11.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
+       17 Aug 2012 08:02:14 -0000
+X-IronPort-AV: E=Sophos;i="4.77,783,1336348800"; d="scan'208";a="14053966"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       17 Aug 2012 08:02:13 +0000
+Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0;
+       Fri, 17 Aug 2012 09:02:13 +0100
+Message-ID: <1345190532.30865.67.camel@zakaz.uk.xensource.com>
+From: Ian Campbell <Ian.Campbell@citrix.com>
+To: Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+Date: Fri, 17 Aug 2012 09:02:12 +0100
+In-Reply-To: <alpine.DEB.2.02.1208161801210.15568@kaball.uk.xensource.com>
+References: <alpine.DEB.2.02.1208161523420.4850@kaball.uk.xensource.com>
+       <1345128612-10323-4-git-send-email-stefano.stabellini@eu.citrix.com>
+       <502D33B8020000780009596B@nat28.tlf.novell.com>
+       <502D37D702000078000959F7@nat28.tlf.novell.com>
+       <alpine.DEB.2.02.1208161801210.15568@kaball.uk.xensource.com>
+Organization: Citrix Systems, Inc.
+X-Mailer: Evolution 3.4.3-1 
+MIME-Version: 1.0
+Cc: "Tim \(Xen.org\)" <tim@xen.org>, Jan Beulich <JBeulich@suse.com>,
+       xen-devel <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH v3 4/6] xen: introduce XEN_GUEST_HANDLE_PARAM
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Thu, 2012-08-16 at 18:10 +0100, Stefano Stabellini wrote:
+> On Thu, 16 Aug 2012, Jan Beulich wrote:
+> > >>> On 16.08.12 at 17:54, "Jan Beulich" <JBeulich@suse.com> wrote:
+> > > Seeing the patch I btw realized that there's no easy way to
+> > > avoid having the type as a second argument in the conversion
+> > > macros. Nevertheless I still don't like the explicitly specified type
+> > > there.
+> > 
+> > Btw - on the architecture(s) where the two handles are identical
+> > I would prefer you to make the conversion functions trivial (and
+> > thus avoid making use of the "type" parameter), thus allowing
+> > the type checking to occur that you currently circumvent.
+> 
+> OK, I can do that.
+
+Will this result in the type parameter potentially becoming stale?
+
+Adding a redundant pointer compare is a good way to get the compiler to
+catch this. Smth like;
+
+        /* Cast a XEN_GUEST_HANDLE_PARAM to XEN_GUEST_HANDLE */
+        #define guest_handle_from_param(hnd, type) ({
+            typeof((hnd).p) _x = (hnd).p;
+            XEN_GUEST_HANDLE(type) _y;
+            &_y == &_x;
+            hnd;
+         })
+
+I'm not sure which two pointers of members of the various structs need
+to be compared, maybe it's actually &_y.p and &hnd.p, but you get the
+idea...
+
+Ian.
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1345211486.10161.31.camel@zakaz.uk.xensource.com> b/config/examples/test/corpus/<1345211486.10161.31.camel@zakaz.uk.xensource.com>
new file mode 100644 (file)
index 0000000..20a9c9e
--- /dev/null
@@ -0,0 +1,149 @@
+From xen-devel-bounces@lists.xen.org Fri Aug 17 14:54:58 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 17 Aug 2012 14:54:58 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T2N0p-00084G-LI
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 17 Aug 2012 14:54:58 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T2MxX-0000DX-FF; Fri, 17 Aug 2012 13:51:31 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1T2MxV-0000Cs-8f
+       for xen-devel@lists.xen.org; Fri, 17 Aug 2012 13:51:29 +0000
+Received: from [85.158.143.99:64352] by server-1.bemta-4.messagelabs.com id
+       A1/AE-07754-06C4E205; Fri, 17 Aug 2012 13:51:28 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-5.tower-216.messagelabs.com!1345211488!28373286!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDk0MzU=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 17748 invoked from network); 17 Aug 2012 13:51:28 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-5.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
+       17 Aug 2012 13:51:28 -0000
+X-IronPort-AV: E=Sophos;i="4.77,785,1336348800"; d="scan'208";a="14061163"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       17 Aug 2012 13:51:27 +0000
+Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0;
+       Fri, 17 Aug 2012 14:51:27 +0100
+Message-ID: <1345211486.10161.31.camel@zakaz.uk.xensource.com>
+From: Ian Campbell <Ian.Campbell@citrix.com>
+To: Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+Date: Fri, 17 Aug 2012 14:51:26 +0100
+In-Reply-To: <alpine.DEB.2.02.1208171443580.15568@kaball.uk.xensource.com>
+References: <alpine.DEB.2.02.1208161523420.4850@kaball.uk.xensource.com>
+       <1345128612-10323-4-git-send-email-stefano.stabellini@eu.citrix.com>
+       <502D33B8020000780009596B@nat28.tlf.novell.com>
+       <502D37D702000078000959F7@nat28.tlf.novell.com>
+       <alpine.DEB.2.02.1208161801210.15568@kaball.uk.xensource.com>
+       <1345190532.30865.67.camel@zakaz.uk.xensource.com>
+       <502E2F090200007800095D62@nat28.tlf.novell.com>
+       <alpine.DEB.2.02.1208171443580.15568@kaball.uk.xensource.com>
+Organization: Citrix Systems, Inc.
+X-Mailer: Evolution 3.4.3-1 
+MIME-Version: 1.0
+Cc: "Tim \(Xen.org\)" <tim@xen.org>, Jan Beulich <JBeulich@suse.com>,
+       xen-devel <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH v3 4/6] xen: introduce XEN_GUEST_HANDLE_PARAM
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Fri, 2012-08-17 at 14:47 +0100, Stefano Stabellini wrote:
+> On Fri, 17 Aug 2012, Jan Beulich wrote:
+> > >>> On 17.08.12 at 10:02, Ian Campbell <Ian.Campbell@citrix.com> wrote:
+> > > On Thu, 2012-08-16 at 18:10 +0100, Stefano Stabellini wrote:
+> > >> On Thu, 16 Aug 2012, Jan Beulich wrote:
+> > >> > >>> On 16.08.12 at 17:54, "Jan Beulich" <JBeulich@suse.com> wrote:
+> > >> > > Seeing the patch I btw realized that there's no easy way to
+> > >> > > avoid having the type as a second argument in the conversion
+> > >> > > macros. Nevertheless I still don't like the explicitly specified type
+> > >> > > there.
+> > >> > 
+> > >> > Btw - on the architecture(s) where the two handles are identical
+> > >> > I would prefer you to make the conversion functions trivial (and
+> > >> > thus avoid making use of the "type" parameter), thus allowing
+> > >> > the type checking to occur that you currently circumvent.
+> > >> 
+> > >> OK, I can do that.
+> > > 
+> > > Will this result in the type parameter potentially becoming stale?
+> > > 
+> > > Adding a redundant pointer compare is a good way to get the compiler to
+> > > catch this. Smth like;
+> > > 
+> > >         /* Cast a XEN_GUEST_HANDLE_PARAM to XEN_GUEST_HANDLE */
+> > >         #define guest_handle_from_param(hnd, type) ({
+> > >             typeof((hnd).p) _x = (hnd).p;
+> > >             XEN_GUEST_HANDLE(type) _y;
+> > >             &_y == &_x;
+> > >             hnd;
+> > >          })
+> > 
+> > Ah yes, that's a good suggestion.
+> > 
+> > > I'm not sure which two pointers of members of the various structs need
+> > > to be compared, maybe it's actually &_y.p and &hnd.p, but you get the
+> > > idea...
+> > 
+> > Right, comparing (hnd).p with _y.p would be the right thing; no
+> > need for _x, but some other (mechanical) adjustments would be
+> > necessary.
+> 
+> The _x variable is still useful to avoid multiple evaluations of hnd,
+> even though I know that this is not a public header.
+> 
+> What about the following:
+> 
+> /* Cast a XEN_GUEST_HANDLE to XEN_GUEST_HANDLE_PARAM */
+> #define guest_handle_to_param(hnd, type) ({                \
+>     typeof((hnd).p) _x = (hnd).p;                          \
+>     XEN_GUEST_HANDLE_PARAM(type) _y = { _x };              \
+>     if (&_x != &_y.p) BUG();                               \
+
+&_x and &_y.p will always be different => this will always BUG().
+
+You just need "(&_x == &_y.p)" if the types of _x and _y.p are different
+then the compiler will error out due to the comparison of differently
+typed pointers.
+
+Ian.
+
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1345215020.10161.64.camel@zakaz.uk.xensource.com> b/config/examples/test/corpus/<1345215020.10161.64.camel@zakaz.uk.xensource.com>
new file mode 100644 (file)
index 0000000..3053734
--- /dev/null
@@ -0,0 +1,168 @@
+From xen-devel-bounces@lists.xen.org Fri Aug 17 15:54:42 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 17 Aug 2012 15:54:42 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T2Nwd-0008Lf-I5
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 17 Aug 2012 15:54:41 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T2Nsd-0003WZ-EK; Fri, 17 Aug 2012 14:50:31 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1T2Nsb-0003WU-Lo
+       for xen-devel@lists.xen.org; Fri, 17 Aug 2012 14:50:29 +0000
+Received: from [85.158.143.35:61361] by server-3.bemta-4.messagelabs.com id
+       18/80-09529-53A5E205; Fri, 17 Aug 2012 14:50:29 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-13.tower-21.messagelabs.com!1345215026!15938799!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDk0MzU=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 28877 invoked from network); 17 Aug 2012 14:50:27 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-13.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
+       17 Aug 2012 14:50:27 -0000
+X-IronPort-AV: E=Sophos;i="4.77,785,1336348800"; d="scan'208";a="14062470"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       17 Aug 2012 14:50:21 +0000
+Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0;
+       Fri, 17 Aug 2012 15:50:21 +0100
+Message-ID: <1345215020.10161.64.camel@zakaz.uk.xensource.com>
+From: Ian Campbell <Ian.Campbell@citrix.com>
+To: Jan Beulich <JBeulich@suse.com>
+Date: Fri, 17 Aug 2012 15:50:20 +0100
+In-Reply-To: <502E6A200200007800095E9A@nat28.tlf.novell.com>
+References: <alpine.DEB.2.02.1208161523420.4850@kaball.uk.xensource.com>
+       <1345128612-10323-4-git-send-email-stefano.stabellini@eu.citrix.com>
+       <502D33B8020000780009596B@nat28.tlf.novell.com>
+       <502D37D702000078000959F7@nat28.tlf.novell.com>
+       <alpine.DEB.2.02.1208161801210.15568@kaball.uk.xensource.com>
+       <1345190532.30865.67.camel@zakaz.uk.xensource.com>
+       <502E2F090200007800095D62@nat28.tlf.novell.com>
+       <alpine.DEB.2.02.1208171443580.15568@kaball.uk.xensource.com>
+       <502E6A200200007800095E9A@nat28.tlf.novell.com>
+Organization: Citrix Systems, Inc.
+X-Mailer: Evolution 3.4.3-1 
+MIME-Version: 1.0
+Cc: xen-devel <xen-devel@lists.xen.org>, "Tim \(Xen.org\)" <tim@xen.org>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH v3 4/6] xen: introduce XEN_GUEST_HANDLE_PARAM
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Fri, 2012-08-17 at 14:58 +0100, Jan Beulich wrote:
+> >>> On 17.08.12 at 15:47, Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+> wrote:
+> > On Fri, 17 Aug 2012, Jan Beulich wrote:
+> >> >>> On 17.08.12 at 10:02, Ian Campbell <Ian.Campbell@citrix.com> wrote:
+> >> > On Thu, 2012-08-16 at 18:10 +0100, Stefano Stabellini wrote:
+> >> >> On Thu, 16 Aug 2012, Jan Beulich wrote:
+> >> >> > >>> On 16.08.12 at 17:54, "Jan Beulich" <JBeulich@suse.com> wrote:
+> >> >> > > Seeing the patch I btw realized that there's no easy way to
+> >> >> > > avoid having the type as a second argument in the conversion
+> >> >> > > macros. Nevertheless I still don't like the explicitly specified type
+> >> >> > > there.
+> >> >> > 
+> >> >> > Btw - on the architecture(s) where the two handles are identical
+> >> >> > I would prefer you to make the conversion functions trivial (and
+> >> >> > thus avoid making use of the "type" parameter), thus allowing
+> >> >> > the type checking to occur that you currently circumvent.
+> >> >> 
+> >> >> OK, I can do that.
+> >> > 
+> >> > Will this result in the type parameter potentially becoming stale?
+> >> > 
+> >> > Adding a redundant pointer compare is a good way to get the compiler to
+> >> > catch this. Smth like;
+> >> > 
+> >> >         /* Cast a XEN_GUEST_HANDLE_PARAM to XEN_GUEST_HANDLE */
+> >> >         #define guest_handle_from_param(hnd, type) ({
+> >> >             typeof((hnd).p) _x = (hnd).p;
+> >> >             XEN_GUEST_HANDLE(type) _y;
+> >> >             &_y == &_x;
+> >> >             hnd;
+> >> >          })
+> >> 
+> >> Ah yes, that's a good suggestion.
+> >> 
+> >> > I'm not sure which two pointers of members of the various structs need
+> >> > to be compared, maybe it's actually &_y.p and &hnd.p, but you get the
+> >> > idea...
+> >> 
+> >> Right, comparing (hnd).p with _y.p would be the right thing; no
+> >> need for _x, but some other (mechanical) adjustments would be
+> >> necessary.
+> > 
+> > The _x variable is still useful to avoid multiple evaluations of hnd,
+> > even though I know that this is not a public header.
+> 
+> But we had settled on returning hnd unmodified when both
+> handle types are the same.
+> 
+> > What about the following:
+> > 
+> > /* Cast a XEN_GUEST_HANDLE to XEN_GUEST_HANDLE_PARAM */
+> > #define guest_handle_to_param(hnd, type) ({                \
+> >     typeof((hnd).p) _x = (hnd).p;                          \
+> >     XEN_GUEST_HANDLE_PARAM(type) _y = { _x };              \
+> >     if (&_x != &_y.p) BUG();                               \
+> >     _y;                                                    \
+> > })
+> 
+> Since this is not a public header, something like this (untested,
+> so may not compile as is)
+> 
+> #define guest_handle_to_param(hnd, type) ({                \
+>     (void)(typeof((hnd).p)0 == (XEN_GUEST_HANDLE_PARAM(type){}).p); \
+>     (hnd);                                                    \
+> })
+> 
+> is what I was thinking of.
+
+This evaluates hnd twice, or do we only care about that in public
+headers for some reason? (personally I think principal of least surprise
+suggests avoiding it wherever possible)
+
+
+> 
+> Jan
+> 
+
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1345215992.10161.77.camel@zakaz.uk.xensource.com> b/config/examples/test/corpus/<1345215992.10161.77.camel@zakaz.uk.xensource.com>
new file mode 100644 (file)
index 0000000..8e22da7
--- /dev/null
@@ -0,0 +1,174 @@
+From xen-devel-bounces@lists.xen.org Fri Aug 17 16:11:11 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 17 Aug 2012 16:11:11 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T2OCa-0008Qm-Sf
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 17 Aug 2012 16:11:11 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T2O9G-0004f1-Ts; Fri, 17 Aug 2012 15:07:42 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1T2O9F-0004es-7z
+       for xen-devel@lists.xen.org; Fri, 17 Aug 2012 15:07:41 +0000
+Received: from [85.158.143.35:35502] by server-3.bemta-4.messagelabs.com id
+       09/BA-09529-C3E5E205; Fri, 17 Aug 2012 15:07:40 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-13.tower-21.messagelabs.com!1345216023!15942248!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDk0MzU=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 9219 invoked from network); 17 Aug 2012 15:07:04 -0000
+Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-13.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
+       17 Aug 2012 15:07:04 -0000
+X-IronPort-AV: E=Sophos;i="4.77,785,1336348800"; d="scan'208";a="14062858"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       17 Aug 2012 15:06:33 +0000
+Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0;
+       Fri, 17 Aug 2012 16:06:33 +0100
+Message-ID: <1345215992.10161.77.camel@zakaz.uk.xensource.com>
+From: Ian Campbell <Ian.Campbell@citrix.com>
+To: Jan Beulich <JBeulich@suse.com>
+Date: Fri, 17 Aug 2012 16:06:32 +0100
+In-Reply-To: <502E78010200007800095F56@nat28.tlf.novell.com>
+References: <alpine.DEB.2.02.1208161523420.4850@kaball.uk.xensource.com>
+       <1345128612-10323-4-git-send-email-stefano.stabellini@eu.citrix.com>
+       <502D33B8020000780009596B@nat28.tlf.novell.com>
+       <502D37D702000078000959F7@nat28.tlf.novell.com>
+       <alpine.DEB.2.02.1208161801210.15568@kaball.uk.xensource.com>
+       <1345190532.30865.67.camel@zakaz.uk.xensource.com>
+       <502E2F090200007800095D62@nat28.tlf.novell.com>
+       <alpine.DEB.2.02.1208171443580.15568@kaball.uk.xensource.com>
+       <502E6A200200007800095E9A@nat28.tlf.novell.com>
+       <1345215020.10161.64.camel@zakaz.uk.xensource.com>
+       <502E78010200007800095F56@nat28.tlf.novell.com>
+Organization: Citrix Systems, Inc.
+X-Mailer: Evolution 3.4.3-1 
+MIME-Version: 1.0
+Cc: xen-devel <xen-devel@lists.xen.org>, "Tim \(Xen.org\)" <tim@xen.org>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH v3 4/6] xen: introduce XEN_GUEST_HANDLE_PARAM
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Fri, 2012-08-17 at 15:57 +0100, Jan Beulich wrote:
+> >>> On 17.08.12 at 16:50, Ian Campbell <Ian.Campbell@citrix.com> wrote:
+> > On Fri, 2012-08-17 at 14:58 +0100, Jan Beulich wrote:
+> >> >>> On 17.08.12 at 15:47, Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+> >> wrote:
+> >> > On Fri, 17 Aug 2012, Jan Beulich wrote:
+> >> >> >>> On 17.08.12 at 10:02, Ian Campbell <Ian.Campbell@citrix.com> wrote:
+> >> >> > On Thu, 2012-08-16 at 18:10 +0100, Stefano Stabellini wrote:
+> >> >> >> On Thu, 16 Aug 2012, Jan Beulich wrote:
+> >> >> >> > >>> On 16.08.12 at 17:54, "Jan Beulich" <JBeulich@suse.com> wrote:
+> >> >> >> > > Seeing the patch I btw realized that there's no easy way to
+> >> >> >> > > avoid having the type as a second argument in the conversion
+> >> >> >> > > macros. Nevertheless I still don't like the explicitly specified type
+> >> >> >> > > there.
+> >> >> >> > 
+> >> >> >> > Btw - on the architecture(s) where the two handles are identical
+> >> >> >> > I would prefer you to make the conversion functions trivial (and
+> >> >> >> > thus avoid making use of the "type" parameter), thus allowing
+> >> >> >> > the type checking to occur that you currently circumvent.
+> >> >> >> 
+> >> >> >> OK, I can do that.
+> >> >> > 
+> >> >> > Will this result in the type parameter potentially becoming stale?
+> >> >> > 
+> >> >> > Adding a redundant pointer compare is a good way to get the compiler to
+> >> >> > catch this. Smth like;
+> >> >> > 
+> >> >> >         /* Cast a XEN_GUEST_HANDLE_PARAM to XEN_GUEST_HANDLE */
+> >> >> >         #define guest_handle_from_param(hnd, type) ({
+> >> >> >             typeof((hnd).p) _x = (hnd).p;
+> >> >> >             XEN_GUEST_HANDLE(type) _y;
+> >> >> >             &_y == &_x;
+> >> >> >             hnd;
+> >> >> >          })
+> >> >> 
+> >> >> Ah yes, that's a good suggestion.
+> >> >> 
+> >> >> > I'm not sure which two pointers of members of the various structs need
+> >> >> > to be compared, maybe it's actually &_y.p and &hnd.p, but you get the
+> >> >> > idea...
+> >> >> 
+> >> >> Right, comparing (hnd).p with _y.p would be the right thing; no
+> >> >> need for _x, but some other (mechanical) adjustments would be
+> >> >> necessary.
+> >> > 
+> >> > The _x variable is still useful to avoid multiple evaluations of hnd,
+> >> > even though I know that this is not a public header.
+> >> 
+> >> But we had settled on returning hnd unmodified when both
+> >> handle types are the same.
+> >> 
+> >> > What about the following:
+> >> > 
+> >> > /* Cast a XEN_GUEST_HANDLE to XEN_GUEST_HANDLE_PARAM */
+> >> > #define guest_handle_to_param(hnd, type) ({                \
+> >> >     typeof((hnd).p) _x = (hnd).p;                          \
+> >> >     XEN_GUEST_HANDLE_PARAM(type) _y = { _x };              \
+> >> >     if (&_x != &_y.p) BUG();                               \
+> >> >     _y;                                                    \
+> >> > })
+> >> 
+> >> Since this is not a public header, something like this (untested,
+> >> so may not compile as is)
+> >> 
+> >> #define guest_handle_to_param(hnd, type) ({                \
+> >>     (void)(typeof((hnd).p)0 == (XEN_GUEST_HANDLE_PARAM(type){}).p); \
+> >>     (hnd);                                                    \
+> >> })
+> >> 
+> >> is what I was thinking of.
+> > 
+> > This evaluates hnd twice, or do we only care about that in public
+> > headers for some reason? (personally I think principal of least surprise
+> > suggests avoiding it wherever possible)
+> 
+> No, it doesn't - like sizeof(), typeof() doesn't evaluate its
+> argument.
+
+Right, of course, silly me.
+
+Ian.
+
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1345463624.28762.67.camel@zakaz.uk.xensource.com> b/config/examples/test/corpus/<1345463624.28762.67.camel@zakaz.uk.xensource.com>
new file mode 100644 (file)
index 0000000..fa030f6
--- /dev/null
@@ -0,0 +1,123 @@
+From xen-devel-bounces@lists.xen.org Mon Aug 20 12:58:04 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Mon, 20 Aug 2012 12:58:04 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T3QcM-0000EX-I6
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Mon, 20 Aug 2012 12:58:04 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T3QYR-0001BA-EC; Mon, 20 Aug 2012 11:53:59 +0000
+Received: from mail27.messagelabs.com ([193.109.254.147])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1T3QYP-0001Ay-Nl
+       for xen-devel@lists.xensource.com; Mon, 20 Aug 2012 11:53:57 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-3.tower-27.messagelabs.com!1345463626!9781860!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDk2MTE=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 22630 invoked from network); 20 Aug 2012 11:53:46 -0000
+Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-3.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
+       20 Aug 2012 11:53:46 -0000
+X-IronPort-AV: E=Sophos;i="4.77,796,1336348800"; d="scan'208";a="14083254"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       20 Aug 2012 11:53:46 +0000
+Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0;
+       Mon, 20 Aug 2012 12:53:45 +0100
+Message-ID: <1345463624.28762.67.camel@zakaz.uk.xensource.com>
+From: Ian Campbell <Ian.Campbell@citrix.com>
+To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+Date: Mon, 20 Aug 2012 12:53:44 +0100
+In-Reply-To: <alpine.DEB.2.02.1208201243180.15568@kaball.uk.xensource.com>
+References: <1345133009-21941-1-git-send-email-konrad.wilk@oracle.com>
+       <1345133009-21941-7-git-send-email-konrad.wilk@oracle.com>
+       <alpine.DEB.2.02.1208171839590.15568@kaball.uk.xensource.com>
+       <20120817174549.GA14257@phenom.dumpdata.com>
+       <alpine.DEB.2.02.1208201243180.15568@kaball.uk.xensource.com>
+Organization: Citrix Systems, Inc.
+X-Mailer: Evolution 3.4.3-1 
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
+       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
+       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 06/11] xen/mmu: For 64-bit do not call
+ xen_map_identity_early
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Mon, 2012-08-20 at 12:45 +0100, Stefano Stabellini wrote:
+> On Fri, 17 Aug 2012, Konrad Rzeszutek Wilk wrote:
+> > On Fri, Aug 17, 2012 at 06:41:23PM +0100, Stefano Stabellini wrote:
+> > > On Thu, 16 Aug 2012, Konrad Rzeszutek Wilk wrote:
+> > > > B/c we do not need it. During the startup the Xen provides
+> > > > us with all the memory mapped that we need to function.
+> > > 
+> > > Shouldn't we check to make sure that is actually true (I am thinking at
+> > > nr_pt_frames)?
+> > 
+> > I was looking at the source code (hypervisor) to figure it out and
+> > that is certainly true.
+> > 
+> > 
+> > > Or is it actually stated somewhere in the Xen headers?
+> > 
+> > Couldn't find it, but after looking so long at the source code
+> > I didn't even bother looking for it.
+> > 
+> > Thought to be honest - I only looked at how the 64-bit pagetables
+> > were set up, so I didn't dare to touch the 32-bit. Hence the #ifdef
+> 
+> I think that we need to involve some Xen maintainers and get this
+> written down somewhere in the public headers, otherwise we have no
+> guarantees that it is going to stay as it is in the next Xen versions.
+> 
+> Maybe we just need to add a couple of lines of comment to
+> xen/include/public/xen.h.
+
+The start of day memory layout for PV guests is written down in the
+comment just before struct start_info at
+http://xenbits.xen.org/docs/unstable/hypercall/include,public,xen.h.html#Struct_start_info
+
+(I haven't read this thread to determine if what is documented matches
+what you guys are talking about relying on)
+
+Ian.
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1345633688-31684-1-git-send-email-stefano.stabellini@eu.citrix.com> b/config/examples/test/corpus/<1345633688-31684-1-git-send-email-stefano.stabellini@eu.citrix.com>
new file mode 100644 (file)
index 0000000..ea6c322
--- /dev/null
@@ -0,0 +1,220 @@
+From xen-devel-bounces@lists.xen.org Wed Aug 22 12:12:58 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 22 Aug 2012 12:12:58 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T48rk-0000wi-Js
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 22 Aug 2012 12:12:58 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T48nt-0001Hr-IR; Wed, 22 Aug 2012 11:08:53 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1T48nr-0001HC-Ii
+       for xen-devel@lists.xensource.com; Wed, 22 Aug 2012 11:08:51 +0000
+Received: from [85.158.138.51:63288] by server-9.bemta-3.messagelabs.com id
+       26/54-23952-2CDB4305; Wed, 22 Aug 2012 11:08:50 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-15.tower-174.messagelabs.com!1345633727!25641644!2
+X-Originating-IP: [66.165.176.63]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyNzMzNjM=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 27424 invoked from network); 22 Aug 2012 11:08:50 -0000
+Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
+       by server-15.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
+       22 Aug 2012 11:08:50 -0000
+X-IronPort-AV: E=Sophos;i="4.77,808,1336363200"; d="scan'208";a="205885719"
+Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
+       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       22 Aug 2012 07:08:21 -0400
+Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
+       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
+       Wed, 22 Aug 2012 07:08:21 -0400
+Received: from kaball.uk.xensource.com ([10.80.2.59])  by
+       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
+       <stefano.stabellini@eu.citrix.com>)     id 1T48nH-0003lL-Lx;
+       Wed, 22 Aug 2012 12:08:15 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+To: <xen-devel@lists.xensource.com>
+Date: Wed, 22 Aug 2012 12:08:03 +0100
+Message-ID: <1345633688-31684-1-git-send-email-stefano.stabellini@eu.citrix.com>
+X-Mailer: git-send-email 1.7.9.5
+In-Reply-To: <alpine.DEB.2.02.1208221159560.15568@kaball.uk.xensource.com>
+References: <alpine.DEB.2.02.1208221159560.15568@kaball.uk.xensource.com>
+MIME-Version: 1.0
+Cc: tim@xen.org, Ian.Campbell@citrix.com,
+       Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: [Xen-devel] [PATCH v4 1/6] xen: improve changes to
+       xen_add_to_physmap
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+This is an incremental patch on top of
+c0bc926083b5987a3e9944eec2c12ad0580100e2: in order to retain binary
+compatibility, it is better to introduce foreign_domid as part of a
+union containing both size and foreign_domid.
+
+Changes in v2:
+
+- do not use an anonymous union.
+
+Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+---
+ tools/firmware/hvmloader/pci.c  |    2 +-
+ xen/arch/arm/mm.c               |    2 +-
+ xen/arch/x86/mm.c               |   10 +++++-----
+ xen/arch/x86/x86_64/compat/mm.c |    6 ++++++
+ xen/include/public/memory.h     |   11 +++++++----
+ 5 files changed, 20 insertions(+), 11 deletions(-)
+
+diff --git a/tools/firmware/hvmloader/pci.c b/tools/firmware/hvmloader/pci.c
+index fd56e50..6375989 100644
+--- a/tools/firmware/hvmloader/pci.c
++++ b/tools/firmware/hvmloader/pci.c
+@@ -212,7 +212,7 @@ void pci_setup(void)
+         xatp.space = XENMAPSPACE_gmfn_range;
+         xatp.idx   = hvm_info->low_mem_pgend;
+         xatp.gpfn  = hvm_info->high_mem_pgend;
+-        xatp.size  = nr_pages;
++        xatp.u.size  = nr_pages;
+         if ( hypercall_memory_op(XENMEM_add_to_physmap, &xatp) != 0 )
+             BUG();
+         hvm_info->high_mem_pgend += nr_pages;
+diff --git a/xen/arch/arm/mm.c b/xen/arch/arm/mm.c
+index 08bc55b..2400e1c 100644
+--- a/xen/arch/arm/mm.c
++++ b/xen/arch/arm/mm.c
+@@ -506,7 +506,7 @@ static int xenmem_add_to_physmap_once(
+         paddr_t maddr;
+         struct domain *od;
+-        rc = rcu_lock_target_domain_by_id(xatp->foreign_domid, &od);
++        rc = rcu_lock_target_domain_by_id(xatp->u.foreign_domid, &od);
+         if ( rc < 0 )
+             return rc;
+         maddr = p2m_lookup(od, xatp->idx << PAGE_SHIFT);
+diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c
+index 9f63974..f5c704e 100644
+--- a/xen/arch/x86/mm.c
++++ b/xen/arch/x86/mm.c
+@@ -4630,7 +4630,7 @@ static int xenmem_add_to_physmap(struct domain *d,
+             this_cpu(iommu_dont_flush_iotlb) = 1;
+         start_xatp = *xatp;
+-        while ( xatp->size > 0 )
++        while ( xatp->u.size > 0 )
+         {
+             rc = xenmem_add_to_physmap_once(d, xatp);
+             if ( rc < 0 )
+@@ -4638,10 +4638,10 @@ static int xenmem_add_to_physmap(struct domain *d,
+             xatp->idx++;
+             xatp->gpfn++;
+-            xatp->size--;
++            xatp->u.size--;
+             /* Check for continuation if it's not the last interation */
+-            if ( xatp->size > 0 && hypercall_preempt_check() )
++            if ( xatp->u.size > 0 && hypercall_preempt_check() )
+             {
+                 rc = -EAGAIN;
+                 break;
+@@ -4651,8 +4651,8 @@ static int xenmem_add_to_physmap(struct domain *d,
+         if ( need_iommu(d) )
+         {
+             this_cpu(iommu_dont_flush_iotlb) = 0;
+-            iommu_iotlb_flush(d, start_xatp.idx, start_xatp.size - xatp->size);
+-            iommu_iotlb_flush(d, start_xatp.gpfn, start_xatp.size - xatp->size);
++            iommu_iotlb_flush(d, start_xatp.idx, start_xatp.u.size - xatp->u.size);
++            iommu_iotlb_flush(d, start_xatp.gpfn, start_xatp.u.size - xatp->u.size);
+         }
+         return rc;
+diff --git a/xen/arch/x86/x86_64/compat/mm.c b/xen/arch/x86/x86_64/compat/mm.c
+index f497503..5bcd2fd 100644
+--- a/xen/arch/x86/x86_64/compat/mm.c
++++ b/xen/arch/x86/x86_64/compat/mm.c
+@@ -59,10 +59,16 @@ int compat_arch_memory_op(int op, XEN_GUEST_HANDLE(void) arg)
+     {
+         struct compat_add_to_physmap cmp;
+         struct xen_add_to_physmap *nat = COMPAT_ARG_XLAT_VIRT_BASE;
++        enum XLAT_add_to_physmap_u u;
+         if ( copy_from_guest(&cmp, arg, 1) )
+             return -EFAULT;
++        if ( cmp.space == XENMAPSPACE_gmfn_range )
++            u = XLAT_add_to_physmap_u_size;
++        if ( cmp.space == XENMAPSPACE_gmfn_foreign )
++            u = XLAT_add_to_physmap_u_foreign_domid;
++
+         XLAT_add_to_physmap(nat, &cmp);
+         rc = arch_memory_op(op, guest_handle_from_ptr(nat, void));
+diff --git a/xen/include/public/memory.h b/xen/include/public/memory.h
+index b2adfbe..7d4ee26 100644
+--- a/xen/include/public/memory.h
++++ b/xen/include/public/memory.h
+@@ -208,8 +208,12 @@ struct xen_add_to_physmap {
+     /* Which domain to change the mapping for. */
+     domid_t domid;
+-    /* Number of pages to go through for gmfn_range */
+-    uint16_t    size;
++    union {
++        /* Number of pages to go through for gmfn_range */
++        uint16_t    size;
++        /* IFF gmfn_foreign */
++        domid_t foreign_domid;
++    } u;
+     /* Source mapping space. */
+ #define XENMAPSPACE_shared_info  0 /* shared info page */
+@@ -217,8 +221,7 @@ struct xen_add_to_physmap {
+ #define XENMAPSPACE_gmfn         2 /* GMFN */
+ #define XENMAPSPACE_gmfn_range   3 /* GMFN range */
+ #define XENMAPSPACE_gmfn_foreign 4 /* GMFN from another guest */
+-    uint16_t space;
+-    domid_t foreign_domid; /* IFF gmfn_foreign */
++    unsigned int space;
+ #define XENMAPIDX_grant_table_status 0x80000000
+-- 
+1.7.2.5
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1345633688-31684-2-git-send-email-stefano.stabellini@eu.citrix.com> b/config/examples/test/corpus/<1345633688-31684-2-git-send-email-stefano.stabellini@eu.citrix.com>
new file mode 100644 (file)
index 0000000..5defa76
--- /dev/null
@@ -0,0 +1,157 @@
+From xen-devel-bounces@lists.xen.org Wed Aug 22 12:13:06 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 22 Aug 2012 12:13:06 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T48rs-0000xJ-OB
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 22 Aug 2012 12:13:06 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T48nv-0001IQ-0S; Wed, 22 Aug 2012 11:08:55 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1T48ns-0001HH-J1
+       for xen-devel@lists.xensource.com; Wed, 22 Aug 2012 11:08:52 +0000
+Received: from [85.158.138.51:16091] by server-5.bemta-3.messagelabs.com id
+       4C/42-08865-3CDB4305; Wed, 22 Aug 2012 11:08:51 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-15.tower-174.messagelabs.com!1345633727!25641644!3
+X-Originating-IP: [66.165.176.63]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyNzMzNjM=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 27504 invoked from network); 22 Aug 2012 11:08:50 -0000
+Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
+       by server-15.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
+       22 Aug 2012 11:08:50 -0000
+X-IronPort-AV: E=Sophos;i="4.77,808,1336363200"; d="scan'208";a="205885718"
+Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
+       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       22 Aug 2012 07:08:21 -0400
+Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
+       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
+       Wed, 22 Aug 2012 07:08:21 -0400
+Received: from kaball.uk.xensource.com ([10.80.2.59])  by
+       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
+       <stefano.stabellini@eu.citrix.com>)     id 1T48nH-0003lL-MW;
+       Wed, 22 Aug 2012 12:08:15 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+To: <xen-devel@lists.xensource.com>
+Date: Wed, 22 Aug 2012 12:08:04 +0100
+Message-ID: <1345633688-31684-2-git-send-email-stefano.stabellini@eu.citrix.com>
+X-Mailer: git-send-email 1.7.9.5
+In-Reply-To: <alpine.DEB.2.02.1208221159560.15568@kaball.uk.xensource.com>
+References: <alpine.DEB.2.02.1208221159560.15568@kaball.uk.xensource.com>
+MIME-Version: 1.0
+Cc: tim@xen.org, Ian.Campbell@citrix.com,
+       Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: [Xen-devel] [PATCH v4 2/6] xen: xen_ulong_t substitution
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+There is still an unwanted unsigned long in the xen public interface:
+replace it with xen_ulong_t.
+
+Also typedef xen_ulong_t to uint64_t on ARM.
+
+Changes in v2:
+
+- do not replace the unsigned long in x86 specific calls;
+- do not replace the unsigned long in multicall_entry;
+- add missing include "xen.h" in version.h;
+- use proper printf flag for xen_ulong_t.
+
+Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+---
+ tools/python/xen/lowlevel/xc/xc.c |    2 +-
+ xen/include/public/arch-arm.h     |    4 ++--
+ xen/include/public/version.h      |    4 +++-
+ 3 files changed, 6 insertions(+), 4 deletions(-)
+
+diff --git a/tools/python/xen/lowlevel/xc/xc.c b/tools/python/xen/lowlevel/xc/xc.c
+index 7c89756..e220f68 100644
+--- a/tools/python/xen/lowlevel/xc/xc.c
++++ b/tools/python/xen/lowlevel/xc/xc.c
+@@ -1439,7 +1439,7 @@ static PyObject *pyxc_xeninfo(XcObject *self)
+     if ( xc_version(self->xc_handle, XENVER_commandline, &xen_commandline) != 0 )
+         return pyxc_error_to_exception(self->xc_handle);
+-    snprintf(str, sizeof(str), "virt_start=0x%lx", p_parms.virt_start);
++    snprintf(str, sizeof(str), "virt_start=0x%"PRI_xen_ulong, p_parms.virt_start);
+     xen_pagesize = xc_version(self->xc_handle, XENVER_pagesize, NULL);
+     if (xen_pagesize < 0 )
+diff --git a/xen/include/public/arch-arm.h b/xen/include/public/arch-arm.h
+index 14ad0ab..2ae6548 100644
+--- a/xen/include/public/arch-arm.h
++++ b/xen/include/public/arch-arm.h
+@@ -122,8 +122,8 @@ typedef uint64_t xen_pfn_t;
+ /* Only one. All other VCPUS must use VCPUOP_register_vcpu_info */
+ #define XEN_LEGACY_MAX_VCPUS 1
+-typedef uint32_t xen_ulong_t;
+-#define PRI_xen_ulong PRIx32
++typedef uint64_t xen_ulong_t;
++#define PRI_xen_ulong PRIx64
+ struct vcpu_guest_context {
+ #define _VGCF_online                   0
+diff --git a/xen/include/public/version.h b/xen/include/public/version.h
+index 8742c2b..c7e6f8c 100644
+--- a/xen/include/public/version.h
++++ b/xen/include/public/version.h
+@@ -28,6 +28,8 @@
+ #ifndef __XEN_PUBLIC_VERSION_H__
+ #define __XEN_PUBLIC_VERSION_H__
++#include "xen.h"
++
+ /* NB. All ops return zero on success, except XENVER_{version,pagesize} */
+ /* arg == NULL; returns major:minor (16:16). */
+@@ -58,7 +60,7 @@ typedef char xen_changeset_info_t[64];
+ #define XENVER_platform_parameters 5
+ struct xen_platform_parameters {
+-    unsigned long virt_start;
++    xen_ulong_t virt_start;
+ };
+ typedef struct xen_platform_parameters xen_platform_parameters_t;
+-- 
+1.7.2.5
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1345633688-31684-3-git-send-email-stefano.stabellini@eu.citrix.com> b/config/examples/test/corpus/<1345633688-31684-3-git-send-email-stefano.stabellini@eu.citrix.com>
new file mode 100644 (file)
index 0000000..680195f
--- /dev/null
@@ -0,0 +1,112 @@
+From xen-devel-bounces@lists.xen.org Wed Aug 22 12:12:44 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 22 Aug 2012 12:12:44 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T48rX-0000w6-0b
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 22 Aug 2012 12:12:44 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T48ns-0001HP-5r; Wed, 22 Aug 2012 11:08:52 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1T48nq-0001Gy-N9
+       for xen-devel@lists.xensource.com; Wed, 22 Aug 2012 11:08:50 +0000
+Received: from [85.158.138.51:13918] by server-2.bemta-3.messagelabs.com id
+       A6/3E-09157-1CDB4305; Wed, 22 Aug 2012 11:08:49 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-15.tower-174.messagelabs.com!1345633727!25641644!1
+X-Originating-IP: [66.165.176.63]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyNzMzNjM=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 27313 invoked from network); 22 Aug 2012 11:08:49 -0000
+Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
+       by server-15.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
+       22 Aug 2012 11:08:49 -0000
+X-IronPort-AV: E=Sophos;i="4.77,808,1336363200"; d="scan'208";a="205885717"
+Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
+       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       22 Aug 2012 07:08:21 -0400
+Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
+       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
+       Wed, 22 Aug 2012 07:08:21 -0400
+Received: from kaball.uk.xensource.com ([10.80.2.59])  by
+       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
+       <stefano.stabellini@eu.citrix.com>)     id 1T48nH-0003lL-OK;
+       Wed, 22 Aug 2012 12:08:15 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+To: <xen-devel@lists.xensource.com>
+Date: Wed, 22 Aug 2012 12:08:05 +0100
+Message-ID: <1345633688-31684-3-git-send-email-stefano.stabellini@eu.citrix.com>
+X-Mailer: git-send-email 1.7.9.5
+In-Reply-To: <alpine.DEB.2.02.1208221159560.15568@kaball.uk.xensource.com>
+References: <alpine.DEB.2.02.1208221159560.15568@kaball.uk.xensource.com>
+MIME-Version: 1.0
+Cc: tim@xen.org, Ian.Campbell@citrix.com,
+       Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: [Xen-devel] [PATCH v4 3/6] xen: change the limit of nr_extents to
+       UINT_MAX >> MEMOP_EXTENT_SHIFT
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+Currently do_memory_op has a different maximum limit for nr_extents on
+32 bit and 64 bit.
+Change the limit to UINT_MAX >> MEMOP_EXTENT_SHIFT, so that it is the
+same in both cases.
+
+Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+---
+ xen/common/memory.c |    2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/xen/common/memory.c b/xen/common/memory.c
+index 5d64cb6..7e58cc4 100644
+--- a/xen/common/memory.c
++++ b/xen/common/memory.c
+@@ -553,7 +553,7 @@ long do_memory_op(unsigned long cmd, XEN_GUEST_HANDLE(void) arg)
+             return start_extent;
+         /* Is size too large for us to encode a continuation? */
+-        if ( reservation.nr_extents > (ULONG_MAX >> MEMOP_EXTENT_SHIFT) )
++        if ( reservation.nr_extents > (UINT_MAX >> MEMOP_EXTENT_SHIFT) )
+             return start_extent;
+         if ( unlikely(start_extent >= reservation.nr_extents) )
+-- 
+1.7.2.5
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1345633688-31684-4-git-send-email-stefano.stabellini@eu.citrix.com> b/config/examples/test/corpus/<1345633688-31684-4-git-send-email-stefano.stabellini@eu.citrix.com>
new file mode 100644 (file)
index 0000000..8631018
--- /dev/null
@@ -0,0 +1,350 @@
+From xen-devel-bounces@lists.xen.org Wed Aug 22 12:12:57 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 22 Aug 2012 12:12:57 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T48ri-0000wg-BF
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 22 Aug 2012 12:12:56 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T48nZ-0001Dr-PG; Wed, 22 Aug 2012 11:08:33 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1T48nX-0001DK-Sl
+       for xen-devel@lists.xensource.com; Wed, 22 Aug 2012 11:08:32 +0000
+Received: from [85.158.143.99:48686] by server-1.bemta-4.messagelabs.com id
+       64/28-07754-FADB4305; Wed, 22 Aug 2012 11:08:31 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-15.tower-216.messagelabs.com!1345633707!27328660!2
+X-Originating-IP: [66.165.176.89]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNjU4OTQ=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 6278 invoked from network); 22 Aug 2012 11:08:30 -0000
+Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
+       by server-15.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
+       22 Aug 2012 11:08:30 -0000
+X-IronPort-AV: E=Sophos;i="4.77,808,1336363200"; d="scan'208";a="35423309"
+Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
+       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       22 Aug 2012 07:08:21 -0400
+Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
+       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
+       Wed, 22 Aug 2012 07:08:21 -0400
+Received: from kaball.uk.xensource.com ([10.80.2.59])  by
+       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
+       <stefano.stabellini@eu.citrix.com>)     id 1T48nH-0003lL-Ou;
+       Wed, 22 Aug 2012 12:08:15 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+To: <xen-devel@lists.xensource.com>
+Date: Wed, 22 Aug 2012 12:08:06 +0100
+Message-ID: <1345633688-31684-4-git-send-email-stefano.stabellini@eu.citrix.com>
+X-Mailer: git-send-email 1.7.9.5
+In-Reply-To: <alpine.DEB.2.02.1208221159560.15568@kaball.uk.xensource.com>
+References: <alpine.DEB.2.02.1208221159560.15568@kaball.uk.xensource.com>
+MIME-Version: 1.0
+Cc: tim@xen.org, Ian.Campbell@citrix.com,
+       Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: [Xen-devel] [PATCH v4 4/6] xen: introduce XEN_GUEST_HANDLE_PARAM
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+XEN_GUEST_HANDLE_PARAM is going to be used to distinguish guest pointers
+stored in memory from guest pointers as hypercall parameters.
+
+guest_handle_* macros default to XEN_GUEST_HANDLE_PARAM as return type.
+Two new guest_handle_to_param and guest_handle_from_param macros are
+introduced to do conversions.
+
+Changes in v2:
+
+- add 2 missing #define _XEN_GUEST_HANDLE_PARAM for the compilation of
+the compat code.
+
+Changes in v3:
+
+- move the guest_handle_cast change into this patch;
+- add a clear comment on top of guest_handle_cast;
+- also s/XEN_GUEST_HANDLE/XEN_GUEST_HANDLE_PARAM in
+  guest_handle_from_ptr and const_guest_handle_from_ptr;
+- introduce guest_handle_from_param and guest_handle_to_param.
+
+Changes in v4:
+
+- make both XEN_GUEST_HANDLE and XEN_GUEST_HANDLE_PARAM unions on ARM;
+- simplify set_xen_guest_handle_raw on ARM;
+- add type checking in guest_handle_to_param and guest_handle_from_param
+trivial.
+
+Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+---
+ xen/include/asm-arm/guest_access.h |   32 ++++++++++++++++++++++++++++----
+ xen/include/asm-x86/guest_access.h |   29 +++++++++++++++++++++++++----
+ xen/include/public/arch-arm.h      |   26 ++++++++++++++++++++++----
+ xen/include/public/arch-ia64.h     |    9 +++++++++
+ xen/include/public/arch-x86/xen.h  |    9 +++++++++
+ xen/include/xen/xencomm.h          |   22 +++++++++++++++++++++-
+ 6 files changed, 114 insertions(+), 13 deletions(-)
+
+diff --git a/xen/include/asm-arm/guest_access.h b/xen/include/asm-arm/guest_access.h
+index 0fceae6..5686217 100644
+--- a/xen/include/asm-arm/guest_access.h
++++ b/xen/include/asm-arm/guest_access.h
+@@ -27,16 +27,40 @@ unsigned long raw_clear_guest(void *to, unsigned len);
+ #define guest_handle_add_offset(hnd, nr) ((hnd).p += (nr))
+ #define guest_handle_subtract_offset(hnd, nr) ((hnd).p -= (nr))
+-/* Cast a guest handle to the specified type of handle. */
++/* Cast a guest handle (either XEN_GUEST_HANDLE or XEN_GUEST_HANDLE_PARAM)
++ * to the specified type of XEN_GUEST_HANDLE_PARAM. */
+ #define guest_handle_cast(hnd, type) ({         \
+     type *_x = (hnd).p;                         \
+-    (XEN_GUEST_HANDLE(type)) { _x };            \
++    (XEN_GUEST_HANDLE_PARAM(type)) { _x };            \
++})
++
++/* Cast a XEN_GUEST_HANDLE to XEN_GUEST_HANDLE_PARAM */
++#define guest_handle_to_param(hnd, type) ({                  \
++    typeof((hnd).p) _x = (hnd).p;                            \
++    XEN_GUEST_HANDLE_PARAM(type) _y = { _x };                \
++    /* type checking: make sure that the pointers inside     \
++     * XEN_GUEST_HANDLE and XEN_GUEST_HANDLE_PARAM are of    \
++     * the same type, then return hnd */                     \
++    (void)(&_x == &_y.p);                                    \
++    _y;                                                      \
++})
++
++
++/* Cast a XEN_GUEST_HANDLE_PARAM to XEN_GUEST_HANDLE */
++#define guest_handle_from_param(hnd, type) ({               \
++    typeof((hnd).p) _x = (hnd).p;                           \
++    XEN_GUEST_HANDLE(type) _y = { _x };                     \
++    /* type checking: make sure that the pointers inside    \
++     * XEN_GUEST_HANDLE and XEN_GUEST_HANDLE_PARAM are of   \
++     * the same type, then return hnd */                    \
++    (void)(&_x == &_y.p);                                   \
++    _y;                                                     \
+ })
+ #define guest_handle_from_ptr(ptr, type)        \
+-    ((XEN_GUEST_HANDLE(type)) { (type *)ptr })
++    ((XEN_GUEST_HANDLE_PARAM(type)) { (type *)ptr })
+ #define const_guest_handle_from_ptr(ptr, type)  \
+-    ((XEN_GUEST_HANDLE(const_##type)) { (const type *)ptr })
++    ((XEN_GUEST_HANDLE_PARAM(const_##type)) { (const type *)ptr })
+ /*
+  * Copy an array of objects to guest context via a guest handle,
+diff --git a/xen/include/asm-x86/guest_access.h b/xen/include/asm-x86/guest_access.h
+index 2b429c2..e67ed82 100644
+--- a/xen/include/asm-x86/guest_access.h
++++ b/xen/include/asm-x86/guest_access.h
+@@ -45,16 +45,37 @@
+ #define guest_handle_add_offset(hnd, nr) ((hnd).p += (nr))
+ #define guest_handle_subtract_offset(hnd, nr) ((hnd).p -= (nr))
+-/* Cast a guest handle to the specified type of handle. */
++/* Cast a guest handle (either XEN_GUEST_HANDLE or XEN_GUEST_HANDLE_PARAM)
++ * to the specified type of XEN_GUEST_HANDLE_PARAM. */
+ #define guest_handle_cast(hnd, type) ({         \
+     type *_x = (hnd).p;                         \
+-    (XEN_GUEST_HANDLE(type)) { _x };            \
++    (XEN_GUEST_HANDLE_PARAM(type)) { _x };            \
++})
++
++/* Cast a XEN_GUEST_HANDLE to XEN_GUEST_HANDLE_PARAM */
++#define guest_handle_to_param(hnd, type) ({                  \
++    /* type checking: make sure that the pointers inside     \
++     * XEN_GUEST_HANDLE and XEN_GUEST_HANDLE_PARAM are of    \
++     * the same type, then return hnd */                     \
++    (void)((typeof(&(hnd).p)) 0 ==                           \
++        (typeof(&((XEN_GUEST_HANDLE_PARAM(type)) {}).p)) 0); \
++    (hnd);                                                   \
++})
++
++/* Cast a XEN_GUEST_HANDLE_PARAM to XEN_GUEST_HANDLE */
++#define guest_handle_from_param(hnd, type) ({                \
++    /* type checking: make sure that the pointers inside     \
++     * XEN_GUEST_HANDLE and XEN_GUEST_HANDLE_PARAM are of    \
++     * the same type, then return hnd */                     \
++    (void)((typeof(&(hnd).p)) 0 ==                           \
++        (typeof(&((XEN_GUEST_HANDLE_PARAM(type)) {}).p)) 0); \
++    (hnd);                                                   \
+ })
+ #define guest_handle_from_ptr(ptr, type)        \
+-    ((XEN_GUEST_HANDLE(type)) { (type *)ptr })
++    ((XEN_GUEST_HANDLE_PARAM(type)) { (type *)ptr })
+ #define const_guest_handle_from_ptr(ptr, type)  \
+-    ((XEN_GUEST_HANDLE(const_##type)) { (const type *)ptr })
++    ((XEN_GUEST_HANDLE_PARAM(const_##type)) { (const type *)ptr })
+ /*
+  * Copy an array of objects to guest context via a guest handle,
+diff --git a/xen/include/public/arch-arm.h b/xen/include/public/arch-arm.h
+index 2ae6548..4c6d607 100644
+--- a/xen/include/public/arch-arm.h
++++ b/xen/include/public/arch-arm.h
+@@ -51,18 +51,36 @@
+ #define XEN_HYPERCALL_TAG   0XEA1
++#define uint64_aligned_t uint64_t __attribute__((aligned(8)))
+ #ifndef __ASSEMBLY__
+-#define ___DEFINE_XEN_GUEST_HANDLE(name, type) \
+-    typedef struct { type *p; } __guest_handle_ ## name
++#define ___DEFINE_XEN_GUEST_HANDLE(name, type)                  \
++    typedef union { type *p; unsigned long q; }                 \
++        __guest_handle_ ## name;                                \
++    typedef union { type *p; uint64_aligned_t q; }              \
++        __guest_handle_64_ ## name;
++/*
++ * XEN_GUEST_HANDLE represents a guest pointer, when passed as a field
++ * in a struct in memory. On ARM is always 8 bytes sizes and 8 bytes
++ * aligned.
++ * XEN_GUEST_HANDLE_PARAM represent a guest pointer, when passed as an
++ * hypercall argument. It is 4 bytes on aarch and 8 bytes on aarch64.
++ */
+ #define __DEFINE_XEN_GUEST_HANDLE(name, type) \
+     ___DEFINE_XEN_GUEST_HANDLE(name, type);   \
+     ___DEFINE_XEN_GUEST_HANDLE(const_##name, const type)
+ #define DEFINE_XEN_GUEST_HANDLE(name)   __DEFINE_XEN_GUEST_HANDLE(name, name)
+-#define __XEN_GUEST_HANDLE(name)        __guest_handle_ ## name
++#define __XEN_GUEST_HANDLE(name)        __guest_handle_64_ ## name
+ #define XEN_GUEST_HANDLE(name)          __XEN_GUEST_HANDLE(name)
+-#define set_xen_guest_handle_raw(hnd, val)  do { (hnd).p = val; } while (0)
++/* this is going to be changes on 64 bit */
++#define XEN_GUEST_HANDLE_PARAM(name)    __guest_handle_ ## name
++#define set_xen_guest_handle_raw(hnd, val)                  \
++    do {                                                    \
++        typeof(&(hnd)) t = &(hnd);                          \
++        _t->q = 0;                                          \
++        _t->p = val;                                        \
++    } while ( 0 )
+ #ifdef __XEN_TOOLS__
+ #define get_xen_guest_handle(val, hnd)  do { val = (hnd).p; } while (0)
+ #endif
+diff --git a/xen/include/public/arch-ia64.h b/xen/include/public/arch-ia64.h
+index c9da5d4..e4e9688 100644
+--- a/xen/include/public/arch-ia64.h
++++ b/xen/include/public/arch-ia64.h
+@@ -45,8 +45,17 @@
+     ___DEFINE_XEN_GUEST_HANDLE(name, type);   \
+     ___DEFINE_XEN_GUEST_HANDLE(const_##name, const type)
++/*
++ * XEN_GUEST_HANDLE represents a guest pointer, when passed as a field
++ * in a struct in memory.
++ * XEN_GUEST_HANDLE_PARAM represent a guest pointer, when passed as an
++ * hypercall argument.
++ * XEN_GUEST_HANDLE_PARAM and XEN_GUEST_HANDLE are the same on ia64 but
++ * they might not be on other architectures.
++ */
+ #define DEFINE_XEN_GUEST_HANDLE(name)   __DEFINE_XEN_GUEST_HANDLE(name, name)
+ #define XEN_GUEST_HANDLE(name)          __guest_handle_ ## name
++#define XEN_GUEST_HANDLE_PARAM(name)    XEN_GUEST_HANDLE(name)
+ #define XEN_GUEST_HANDLE_64(name)       XEN_GUEST_HANDLE(name)
+ #define uint64_aligned_t                uint64_t
+ #define set_xen_guest_handle_raw(hnd, val)  do { (hnd).p = val; } while (0)
+diff --git a/xen/include/public/arch-x86/xen.h b/xen/include/public/arch-x86/xen.h
+index 1c186d7..0e10260 100644
+--- a/xen/include/public/arch-x86/xen.h
++++ b/xen/include/public/arch-x86/xen.h
+@@ -38,12 +38,21 @@
+     typedef type * __guest_handle_ ## name
+ #endif
++/*
++ * XEN_GUEST_HANDLE represents a guest pointer, when passed as a field
++ * in a struct in memory.
++ * XEN_GUEST_HANDLE_PARAM represent a guest pointer, when passed as an
++ * hypercall argument.
++ * XEN_GUEST_HANDLE_PARAM and XEN_GUEST_HANDLE are the same on X86 but
++ * they might not be on other architectures.
++ */
+ #define __DEFINE_XEN_GUEST_HANDLE(name, type) \
+     ___DEFINE_XEN_GUEST_HANDLE(name, type);   \
+     ___DEFINE_XEN_GUEST_HANDLE(const_##name, const type)
+ #define DEFINE_XEN_GUEST_HANDLE(name)   __DEFINE_XEN_GUEST_HANDLE(name, name)
+ #define __XEN_GUEST_HANDLE(name)        __guest_handle_ ## name
+ #define XEN_GUEST_HANDLE(name)          __XEN_GUEST_HANDLE(name)
++#define XEN_GUEST_HANDLE_PARAM(name)    XEN_GUEST_HANDLE(name)
+ #define set_xen_guest_handle_raw(hnd, val)  do { (hnd).p = val; } while (0)
+ #ifdef __XEN_TOOLS__
+ #define get_xen_guest_handle(val, hnd)  do { val = (hnd).p; } while (0)
+diff --git a/xen/include/xen/xencomm.h b/xen/include/xen/xencomm.h
+index 730da7c..3426b8a 100644
+--- a/xen/include/xen/xencomm.h
++++ b/xen/include/xen/xencomm.h
+@@ -66,11 +66,31 @@ static inline unsigned long xencomm_inline_addr(const void *handle)
+ /* Cast a guest handle to the specified type of handle. */
+ #define guest_handle_cast(hnd, type) ({         \
+     type *_x = (hnd).p;                         \
+-    XEN_GUEST_HANDLE(type) _y;                  \
++    XEN_GUEST_HANDLE_PARAM(type) _y;            \
+     set_xen_guest_handle(_y, _x);               \
+     _y;                                         \
+ })
++/* Cast a XEN_GUEST_HANDLE to XEN_GUEST_HANDLE_PARAM */
++#define guest_handle_to_param(hnd, type) ({                  \
++    /* type checking: make sure that the pointers inside     \
++     * XEN_GUEST_HANDLE and XEN_GUEST_HANDLE_PARAM are of    \
++     * the same type, then return hnd */                     \
++    (void)((typeof(&(hnd).p)) 0 ==                           \
++        (typeof(&((XEN_GUEST_HANDLE_PARAM(type)) {}).p)) 0); \
++    (hnd);                                                   \
++})
++
++/* Cast a XEN_GUEST_HANDLE_PARAM to XEN_GUEST_HANDLE */
++#define guest_handle_from_param(hnd, type) ({                \
++    /* type checking: make sure that the pointers inside     \
++     * XEN_GUEST_HANDLE and XEN_GUEST_HANDLE_PARAM are of    \
++     * the same type, then return hnd */                     \
++    (void)((typeof(&(hnd).p)) 0 ==                           \
++        (typeof(&((XEN_GUEST_HANDLE_PARAM(type)) {}).p)) 0); \
++    (hnd);                                                   \
++})
++
+ /* Since we run in real mode, we can safely access all addresses. That also
+  * means our __routines are identical to our "normal" routines. */
+ #define guest_handle_okay(hnd, nr) 1
+-- 
+1.7.2.5
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1345633688-31684-5-git-send-email-stefano.stabellini@eu.citrix.com> b/config/examples/test/corpus/<1345633688-31684-5-git-send-email-stefano.stabellini@eu.citrix.com>
new file mode 100644 (file)
index 0000000..60a1eb4
--- /dev/null
@@ -0,0 +1,1771 @@
+From xen-devel-bounces@lists.xen.org Wed Aug 22 12:13:44 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 22 Aug 2012 12:13:44 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T48sP-0000xr-Cq
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 22 Aug 2012 12:13:44 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T48nv-0001Iz-JZ; Wed, 22 Aug 2012 11:08:55 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1T48nt-0001Hq-Qq
+       for xen-devel@lists.xensource.com; Wed, 22 Aug 2012 11:08:54 +0000
+Received: from [85.158.139.83:49007] by server-4.bemta-5.messagelabs.com id
+       B4/45-12386-4CDB4305; Wed, 22 Aug 2012 11:08:52 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-5.tower-182.messagelabs.com!1345633729!29499859!1
+X-Originating-IP: [66.165.176.63]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyNzMzNjM=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 32216 invoked from network); 22 Aug 2012 11:08:51 -0000
+Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
+       by server-5.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
+       22 Aug 2012 11:08:51 -0000
+X-IronPort-AV: E=Sophos;i="4.77,808,1336363200"; d="scan'208";a="205885720"
+Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
+       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       22 Aug 2012 07:08:22 -0400
+Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
+       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
+       Wed, 22 Aug 2012 07:08:21 -0400
+Received: from kaball.uk.xensource.com ([10.80.2.59])  by
+       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
+       <stefano.stabellini@eu.citrix.com>)     id 1T48nH-0003lL-Qe;
+       Wed, 22 Aug 2012 12:08:15 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+To: <xen-devel@lists.xensource.com>
+Date: Wed, 22 Aug 2012 12:08:07 +0100
+Message-ID: <1345633688-31684-5-git-send-email-stefano.stabellini@eu.citrix.com>
+X-Mailer: git-send-email 1.7.9.5
+In-Reply-To: <alpine.DEB.2.02.1208221159560.15568@kaball.uk.xensource.com>
+References: <alpine.DEB.2.02.1208221159560.15568@kaball.uk.xensource.com>
+MIME-Version: 1.0
+Cc: tim@xen.org, Ian.Campbell@citrix.com,
+       Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: [Xen-devel] [PATCH v4 5/6] xen: replace XEN_GUEST_HANDLE with
+       XEN_GUEST_HANDLE_PARAM when appropriate
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+Note: these changes don't make any difference on x86 and ia64.
+
+
+Replace XEN_GUEST_HANDLE with XEN_GUEST_HANDLE_PARAM when it is used as
+an hypercall argument.
+
+Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+---
+ xen/arch/arm/domain.c             |    2 +-
+ xen/arch/arm/domctl.c             |    2 +-
+ xen/arch/arm/hvm.c                |    2 +-
+ xen/arch/arm/mm.c                 |    2 +-
+ xen/arch/arm/physdev.c            |    2 +-
+ xen/arch/arm/sysctl.c             |    2 +-
+ xen/arch/x86/compat.c             |    2 +-
+ xen/arch/x86/cpu/mcheck/mce.c     |    2 +-
+ xen/arch/x86/domain.c             |    2 +-
+ xen/arch/x86/domctl.c             |    2 +-
+ xen/arch/x86/efi/runtime.c        |    2 +-
+ xen/arch/x86/hvm/hvm.c            |   26 +++++++++---------
+ xen/arch/x86/microcode.c          |    2 +-
+ xen/arch/x86/mm.c                 |   14 +++++-----
+ xen/arch/x86/mm/hap/hap.c         |    2 +-
+ xen/arch/x86/mm/mem_event.c       |    2 +-
+ xen/arch/x86/mm/paging.c          |    2 +-
+ xen/arch/x86/mm/shadow/common.c   |    2 +-
+ xen/arch/x86/oprofile/xenoprof.c  |    6 ++--
+ xen/arch/x86/physdev.c            |    2 +-
+ xen/arch/x86/platform_hypercall.c |    2 +-
+ xen/arch/x86/sysctl.c             |    2 +-
+ xen/arch/x86/traps.c              |    2 +-
+ xen/arch/x86/x86_32/mm.c          |    2 +-
+ xen/arch/x86/x86_32/traps.c       |    2 +-
+ xen/arch/x86/x86_64/compat/mm.c   |   10 +++---
+ xen/arch/x86/x86_64/domain.c      |    2 +-
+ xen/arch/x86/x86_64/mm.c          |    2 +-
+ xen/arch/x86/x86_64/traps.c       |    2 +-
+ xen/common/compat/domain.c        |    2 +-
+ xen/common/compat/grant_table.c   |    8 +++---
+ xen/common/compat/memory.c        |    4 +-
+ xen/common/domain.c               |    2 +-
+ xen/common/domctl.c               |    2 +-
+ xen/common/event_channel.c        |    2 +-
+ xen/common/grant_table.c          |   36 +++++++++++++-------------
+ xen/common/kernel.c               |    4 +-
+ xen/common/kexec.c                |   16 +++++-----
+ xen/common/memory.c               |    4 +-
+ xen/common/multicall.c            |    2 +-
+ xen/common/schedule.c             |    2 +-
+ xen/common/sysctl.c               |    2 +-
+ xen/common/xenoprof.c             |    8 +++---
+ xen/drivers/acpi/pmstat.c         |    2 +-
+ xen/drivers/char/console.c        |    6 ++--
+ xen/drivers/passthrough/iommu.c   |    2 +-
+ xen/include/asm-arm/hypercall.h   |    2 +-
+ xen/include/asm-arm/mm.h          |    2 +-
+ xen/include/asm-x86/hap.h         |    2 +-
+ xen/include/asm-x86/hypercall.h   |   24 ++++++++--------
+ xen/include/asm-x86/mem_event.h   |    2 +-
+ xen/include/asm-x86/mm.h          |    8 +++---
+ xen/include/asm-x86/paging.h      |    2 +-
+ xen/include/asm-x86/processor.h   |    2 +-
+ xen/include/asm-x86/shadow.h      |    2 +-
+ xen/include/asm-x86/xenoprof.h    |    6 ++--
+ xen/include/xen/acpi.h            |    4 +-
+ xen/include/xen/hypercall.h       |   52 ++++++++++++++++++------------------
+ xen/include/xen/iommu.h           |    2 +-
+ xen/include/xen/tmem_xen.h        |    2 +-
+ xen/include/xsm/xsm.h             |    4 +-
+ xen/xsm/dummy.c                   |    2 +-
+ xen/xsm/flask/flask_op.c          |    4 +-
+ xen/xsm/flask/hooks.c             |    2 +-
+ xen/xsm/xsm_core.c                |    2 +-
+ 65 files changed, 168 insertions(+), 168 deletions(-)
+
+diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
+index ee58d68..07b50e2 100644
+--- a/xen/arch/arm/domain.c
++++ b/xen/arch/arm/domain.c
+@@ -515,7 +515,7 @@ void arch_dump_domain_info(struct domain *d)
+ {
+ }
+-long arch_do_vcpu_op(int cmd, struct vcpu *v, XEN_GUEST_HANDLE(void) arg)
++long arch_do_vcpu_op(int cmd, struct vcpu *v, XEN_GUEST_HANDLE_PARAM(void) arg)
+ {
+     return -ENOSYS;
+ }
+diff --git a/xen/arch/arm/domctl.c b/xen/arch/arm/domctl.c
+index 1a5f79f..cf16791 100644
+--- a/xen/arch/arm/domctl.c
++++ b/xen/arch/arm/domctl.c
+@@ -11,7 +11,7 @@
+ #include <public/domctl.h>
+ long arch_do_domctl(struct xen_domctl *domctl,
+-                    XEN_GUEST_HANDLE(xen_domctl_t) u_domctl)
++                    XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl)
+ {
+     return -ENOSYS;
+ }
+diff --git a/xen/arch/arm/hvm.c b/xen/arch/arm/hvm.c
+index c11378d..40f519e 100644
+--- a/xen/arch/arm/hvm.c
++++ b/xen/arch/arm/hvm.c
+@@ -11,7 +11,7 @@
+ #include <asm/hypercall.h>
+-long do_hvm_op(unsigned long op, XEN_GUEST_HANDLE(void) arg)
++long do_hvm_op(unsigned long op, XEN_GUEST_HANDLE_PARAM(void) arg)
+ {
+     long rc = 0;
+diff --git a/xen/arch/arm/mm.c b/xen/arch/arm/mm.c
+index 2400e1c..3e8b6cc 100644
+--- a/xen/arch/arm/mm.c
++++ b/xen/arch/arm/mm.c
+@@ -541,7 +541,7 @@ static int xenmem_add_to_physmap(struct domain *d,
+     return xenmem_add_to_physmap_once(d, xatp);
+ }
+-long arch_memory_op(int op, XEN_GUEST_HANDLE(void) arg)
++long arch_memory_op(int op, XEN_GUEST_HANDLE_PARAM(void) arg)
+ {
+     int rc;
+diff --git a/xen/arch/arm/physdev.c b/xen/arch/arm/physdev.c
+index bcf4337..0801e8c 100644
+--- a/xen/arch/arm/physdev.c
++++ b/xen/arch/arm/physdev.c
+@@ -11,7 +11,7 @@
+ #include <asm/hypercall.h>
+-int do_physdev_op(int cmd, XEN_GUEST_HANDLE(void) arg)
++int do_physdev_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
+ {
+     printk("%s %d cmd=%d: not implemented yet\n", __func__, __LINE__, cmd);
+     return -ENOSYS;
+diff --git a/xen/arch/arm/sysctl.c b/xen/arch/arm/sysctl.c
+index e8e1c0d..a286abe 100644
+--- a/xen/arch/arm/sysctl.c
++++ b/xen/arch/arm/sysctl.c
+@@ -13,7 +13,7 @@
+ #include <public/sysctl.h>
+ long arch_do_sysctl(struct xen_sysctl *sysctl,
+-                    XEN_GUEST_HANDLE(xen_sysctl_t) u_sysctl)
++                    XEN_GUEST_HANDLE_PARAM(xen_sysctl_t) u_sysctl)
+ {
+     return -ENOSYS;
+ }
+diff --git a/xen/arch/x86/compat.c b/xen/arch/x86/compat.c
+index a4fda06..2d05867 100644
+--- a/xen/arch/x86/compat.c
++++ b/xen/arch/x86/compat.c
+@@ -27,7 +27,7 @@ ret_t do_physdev_op_compat(XEN_GUEST_HANDLE(physdev_op_t) uop)
+ #ifndef COMPAT
+ /* Legacy hypercall (as of 0x00030202). */
+-long do_event_channel_op_compat(XEN_GUEST_HANDLE(evtchn_op_t) uop)
++long do_event_channel_op_compat(XEN_GUEST_HANDLE_PARAM(evtchn_op_t) uop)
+ {
+     struct evtchn_op op;
+diff --git a/xen/arch/x86/cpu/mcheck/mce.c b/xen/arch/x86/cpu/mcheck/mce.c
+index a89df6d..0f122b3 100644
+--- a/xen/arch/x86/cpu/mcheck/mce.c
++++ b/xen/arch/x86/cpu/mcheck/mce.c
+@@ -1357,7 +1357,7 @@ CHECK_mcinfo_recovery;
+ #endif
+ /* Machine Check Architecture Hypercall */
+-long do_mca(XEN_GUEST_HANDLE(xen_mc_t) u_xen_mc)
++long do_mca(XEN_GUEST_HANDLE_PARAM(xen_mc_t) u_xen_mc)
+ {
+     long ret = 0;
+     struct xen_mc curop, *op = &curop;
+diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
+index 5bba4b9..13ff776 100644
+--- a/xen/arch/x86/domain.c
++++ b/xen/arch/x86/domain.c
+@@ -1138,7 +1138,7 @@ map_vcpu_info(struct vcpu *v, unsigned long gfn, unsigned offset)
+ long
+ arch_do_vcpu_op(
+-    int cmd, struct vcpu *v, XEN_GUEST_HANDLE(void) arg)
++    int cmd, struct vcpu *v, XEN_GUEST_HANDLE_PARAM(void) arg)
+ {
+     long rc = 0;
+diff --git a/xen/arch/x86/domctl.c b/xen/arch/x86/domctl.c
+index 135ea6e..663bfe4 100644
+--- a/xen/arch/x86/domctl.c
++++ b/xen/arch/x86/domctl.c
+@@ -48,7 +48,7 @@ static int gdbsx_guest_mem_io(
+ long arch_do_domctl(
+     struct xen_domctl *domctl,
+-    XEN_GUEST_HANDLE(xen_domctl_t) u_domctl)
++    XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl)
+ {
+     long ret = 0;
+diff --git a/xen/arch/x86/efi/runtime.c b/xen/arch/x86/efi/runtime.c
+index 1dbe2db..b2ff495 100644
+--- a/xen/arch/x86/efi/runtime.c
++++ b/xen/arch/x86/efi/runtime.c
+@@ -184,7 +184,7 @@ int efi_get_info(uint32_t idx, union xenpf_efi_info *info)
+     return 0;
+ }
+-static long gwstrlen(XEN_GUEST_HANDLE(CHAR16) str)
++static long gwstrlen(XEN_GUEST_HANDLE_PARAM(CHAR16) str)
+ {
+     unsigned long len;
+diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
+index 7f8a025c..e2bf831 100644
+--- a/xen/arch/x86/hvm/hvm.c
++++ b/xen/arch/x86/hvm/hvm.c
+@@ -3047,14 +3047,14 @@ static int grant_table_op_is_allowed(unsigned int cmd)
+ }
+ static long hvm_grant_table_op(
+-    unsigned int cmd, XEN_GUEST_HANDLE(void) uop, unsigned int count)
++    unsigned int cmd, XEN_GUEST_HANDLE_PARAM(void) uop, unsigned int count)
+ {
+     if ( !grant_table_op_is_allowed(cmd) )
+         return -ENOSYS; /* all other commands need auditing */
+     return do_grant_table_op(cmd, uop, count);
+ }
+-static long hvm_memory_op(int cmd, XEN_GUEST_HANDLE(void) arg)
++static long hvm_memory_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
+ {
+     long rc;
+@@ -3072,7 +3072,7 @@ static long hvm_memory_op(int cmd, XEN_GUEST_HANDLE(void) arg)
+     return do_memory_op(cmd, arg);
+ }
+-static long hvm_physdev_op(int cmd, XEN_GUEST_HANDLE(void) arg)
++static long hvm_physdev_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
+ {
+     switch ( cmd )
+     {
+@@ -3088,7 +3088,7 @@ static long hvm_physdev_op(int cmd, XEN_GUEST_HANDLE(void) arg)
+ }
+ static long hvm_vcpu_op(
+-    int cmd, int vcpuid, XEN_GUEST_HANDLE(void) arg)
++    int cmd, int vcpuid, XEN_GUEST_HANDLE_PARAM(void) arg)
+ {
+     long rc;
+@@ -3137,7 +3137,7 @@ static hvm_hypercall_t *hvm_hypercall32_table[NR_hypercalls] = {
+ #else /* defined(__x86_64__) */
+ static long hvm_grant_table_op_compat32(unsigned int cmd,
+-                                        XEN_GUEST_HANDLE(void) uop,
++                                        XEN_GUEST_HANDLE_PARAM(void) uop,
+                                         unsigned int count)
+ {
+     if ( !grant_table_op_is_allowed(cmd) )
+@@ -3145,7 +3145,7 @@ static long hvm_grant_table_op_compat32(unsigned int cmd,
+     return compat_grant_table_op(cmd, uop, count);
+ }
+-static long hvm_memory_op_compat32(int cmd, XEN_GUEST_HANDLE(void) arg)
++static long hvm_memory_op_compat32(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
+ {
+     int rc;
+@@ -3164,7 +3164,7 @@ static long hvm_memory_op_compat32(int cmd, XEN_GUEST_HANDLE(void) arg)
+ }
+ static long hvm_vcpu_op_compat32(
+-    int cmd, int vcpuid, XEN_GUEST_HANDLE(void) arg)
++    int cmd, int vcpuid, XEN_GUEST_HANDLE_PARAM(void) arg)
+ {
+     long rc;
+@@ -3188,7 +3188,7 @@ static long hvm_vcpu_op_compat32(
+ }
+ static long hvm_physdev_op_compat32(
+-    int cmd, XEN_GUEST_HANDLE(void) arg)
++    int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
+ {
+     switch ( cmd )
+     {
+@@ -3360,7 +3360,7 @@ void hvm_hypercall_page_initialise(struct domain *d,
+ }
+ static int hvmop_set_pci_intx_level(
+-    XEN_GUEST_HANDLE(xen_hvm_set_pci_intx_level_t) uop)
++    XEN_GUEST_HANDLE_PARAM(xen_hvm_set_pci_intx_level_t) uop)
+ {
+     struct xen_hvm_set_pci_intx_level op;
+     struct domain *d;
+@@ -3525,7 +3525,7 @@ static void hvm_s3_resume(struct domain *d)
+ }
+ static int hvmop_set_isa_irq_level(
+-    XEN_GUEST_HANDLE(xen_hvm_set_isa_irq_level_t) uop)
++    XEN_GUEST_HANDLE_PARAM(xen_hvm_set_isa_irq_level_t) uop)
+ {
+     struct xen_hvm_set_isa_irq_level op;
+     struct domain *d;
+@@ -3569,7 +3569,7 @@ static int hvmop_set_isa_irq_level(
+ }
+ static int hvmop_set_pci_link_route(
+-    XEN_GUEST_HANDLE(xen_hvm_set_pci_link_route_t) uop)
++    XEN_GUEST_HANDLE_PARAM(xen_hvm_set_pci_link_route_t) uop)
+ {
+     struct xen_hvm_set_pci_link_route op;
+     struct domain *d;
+@@ -3602,7 +3602,7 @@ static int hvmop_set_pci_link_route(
+ }
+ static int hvmop_inject_msi(
+-    XEN_GUEST_HANDLE(xen_hvm_inject_msi_t) uop)
++    XEN_GUEST_HANDLE_PARAM(xen_hvm_inject_msi_t) uop)
+ {
+     struct xen_hvm_inject_msi op;
+     struct domain *d;
+@@ -3686,7 +3686,7 @@ static int hvm_replace_event_channel(struct vcpu *v, domid_t remote_domid,
+     return 0;
+ }
+-long do_hvm_op(unsigned long op, XEN_GUEST_HANDLE(void) arg)
++long do_hvm_op(unsigned long op, XEN_GUEST_HANDLE_PARAM(void) arg)
+ {
+     struct domain *curr_d = current->domain;
+diff --git a/xen/arch/x86/microcode.c b/xen/arch/x86/microcode.c
+index bdda3f5..1477481 100644
+--- a/xen/arch/x86/microcode.c
++++ b/xen/arch/x86/microcode.c
+@@ -192,7 +192,7 @@ static long do_microcode_update(void *_info)
+     return error;
+ }
+-int microcode_update(XEN_GUEST_HANDLE(const_void) buf, unsigned long len)
++int microcode_update(XEN_GUEST_HANDLE_PARAM(const_void) buf, unsigned long len)
+ {
+     int ret;
+     struct microcode_info *info;
+diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c
+index f5c704e..4d72700 100644
+--- a/xen/arch/x86/mm.c
++++ b/xen/arch/x86/mm.c
+@@ -2914,7 +2914,7 @@ static void put_pg_owner(struct domain *pg_owner)
+ }
+ static inline int vcpumask_to_pcpumask(
+-    struct domain *d, XEN_GUEST_HANDLE(const_void) bmap, cpumask_t *pmask)
++    struct domain *d, XEN_GUEST_HANDLE_PARAM(const_void) bmap, cpumask_t *pmask)
+ {
+     unsigned int vcpu_id, vcpu_bias, offs;
+     unsigned long vmask;
+@@ -2974,9 +2974,9 @@ static inline void fixunmap_domain_page(const void *ptr)
+ #endif
+ int do_mmuext_op(
+-    XEN_GUEST_HANDLE(mmuext_op_t) uops,
++    XEN_GUEST_HANDLE_PARAM(mmuext_op_t) uops,
+     unsigned int count,
+-    XEN_GUEST_HANDLE(uint) pdone,
++    XEN_GUEST_HANDLE_PARAM(uint) pdone,
+     unsigned int foreigndom)
+ {
+     struct mmuext_op op;
+@@ -3438,9 +3438,9 @@ int do_mmuext_op(
+ }
+ int do_mmu_update(
+-    XEN_GUEST_HANDLE(mmu_update_t) ureqs,
++    XEN_GUEST_HANDLE_PARAM(mmu_update_t) ureqs,
+     unsigned int count,
+-    XEN_GUEST_HANDLE(uint) pdone,
++    XEN_GUEST_HANDLE_PARAM(uint) pdone,
+     unsigned int foreigndom)
+ {
+     struct mmu_update req;
+@@ -4387,7 +4387,7 @@ long set_gdt(struct vcpu *v,
+ }
+-long do_set_gdt(XEN_GUEST_HANDLE(ulong) frame_list, unsigned int entries)
++long do_set_gdt(XEN_GUEST_HANDLE_PARAM(ulong) frame_list, unsigned int entries)
+ {
+     int nr_pages = (entries + 511) / 512;
+     unsigned long frames[16];
+@@ -4661,7 +4661,7 @@ static int xenmem_add_to_physmap(struct domain *d,
+     return xenmem_add_to_physmap_once(d, xatp);
+ }
+-long arch_memory_op(int op, XEN_GUEST_HANDLE(void) arg)
++long arch_memory_op(int op, XEN_GUEST_HANDLE_PARAM(void) arg)
+ {
+     int rc;
+diff --git a/xen/arch/x86/mm/hap/hap.c b/xen/arch/x86/mm/hap/hap.c
+index 13b4be2..67e48a3 100644
+--- a/xen/arch/x86/mm/hap/hap.c
++++ b/xen/arch/x86/mm/hap/hap.c
+@@ -690,7 +690,7 @@ void hap_teardown(struct domain *d)
+ }
+ int hap_domctl(struct domain *d, xen_domctl_shadow_op_t *sc,
+-               XEN_GUEST_HANDLE(void) u_domctl)
++               XEN_GUEST_HANDLE_PARAM(void) u_domctl)
+ {
+     int rc, preempted = 0;
+diff --git a/xen/arch/x86/mm/mem_event.c b/xen/arch/x86/mm/mem_event.c
+index d728889..d3dac14 100644
+--- a/xen/arch/x86/mm/mem_event.c
++++ b/xen/arch/x86/mm/mem_event.c
+@@ -512,7 +512,7 @@ void mem_event_cleanup(struct domain *d)
+ }
+ int mem_event_domctl(struct domain *d, xen_domctl_mem_event_op_t *mec,
+-                     XEN_GUEST_HANDLE(void) u_domctl)
++                     XEN_GUEST_HANDLE_PARAM(void) u_domctl)
+ {
+     int rc;
+diff --git a/xen/arch/x86/mm/paging.c b/xen/arch/x86/mm/paging.c
+index ca879f9..ea44e39 100644
+--- a/xen/arch/x86/mm/paging.c
++++ b/xen/arch/x86/mm/paging.c
+@@ -654,7 +654,7 @@ void paging_vcpu_init(struct vcpu *v)
+ int paging_domctl(struct domain *d, xen_domctl_shadow_op_t *sc,
+-                  XEN_GUEST_HANDLE(void) u_domctl)
++                  XEN_GUEST_HANDLE_PARAM(void) u_domctl)
+ {
+     int rc;
+diff --git a/xen/arch/x86/mm/shadow/common.c b/xen/arch/x86/mm/shadow/common.c
+index dc245be..bd47f03 100644
+--- a/xen/arch/x86/mm/shadow/common.c
++++ b/xen/arch/x86/mm/shadow/common.c
+@@ -3786,7 +3786,7 @@ out:
+ int shadow_domctl(struct domain *d, 
+                   xen_domctl_shadow_op_t *sc,
+-                  XEN_GUEST_HANDLE(void) u_domctl)
++                  XEN_GUEST_HANDLE_PARAM(void) u_domctl)
+ {
+     int rc, preempted = 0;
+diff --git a/xen/arch/x86/oprofile/xenoprof.c b/xen/arch/x86/oprofile/xenoprof.c
+index 71f00ef..5d286a2 100644
+--- a/xen/arch/x86/oprofile/xenoprof.c
++++ b/xen/arch/x86/oprofile/xenoprof.c
+@@ -19,7 +19,7 @@
+ #include "op_counter.h"
+-int xenoprof_arch_counter(XEN_GUEST_HANDLE(void) arg)
++int xenoprof_arch_counter(XEN_GUEST_HANDLE_PARAM(void) arg)
+ {
+     struct xenoprof_counter counter;
+@@ -39,7 +39,7 @@ int xenoprof_arch_counter(XEN_GUEST_HANDLE(void) arg)
+     return 0;
+ }
+-int xenoprof_arch_ibs_counter(XEN_GUEST_HANDLE(void) arg)
++int xenoprof_arch_ibs_counter(XEN_GUEST_HANDLE_PARAM(void) arg)
+ {
+     struct xenoprof_ibs_counter ibs_counter;
+@@ -57,7 +57,7 @@ int xenoprof_arch_ibs_counter(XEN_GUEST_HANDLE(void) arg)
+ }
+ #ifdef CONFIG_COMPAT
+-int compat_oprof_arch_counter(XEN_GUEST_HANDLE(void) arg)
++int compat_oprof_arch_counter(XEN_GUEST_HANDLE_PARAM(void) arg)
+ {
+     struct compat_oprof_counter counter;
+diff --git a/xen/arch/x86/physdev.c b/xen/arch/x86/physdev.c
+index b0458fd..b6474ef 100644
+--- a/xen/arch/x86/physdev.c
++++ b/xen/arch/x86/physdev.c
+@@ -255,7 +255,7 @@ int physdev_unmap_pirq(domid_t domid, int pirq)
+ }
+ #endif /* COMPAT */
+-ret_t do_physdev_op(int cmd, XEN_GUEST_HANDLE(void) arg)
++ret_t do_physdev_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
+ {
+     int irq;
+     ret_t ret;
+diff --git a/xen/arch/x86/platform_hypercall.c b/xen/arch/x86/platform_hypercall.c
+index 88880b0..a32e0a2 100644
+--- a/xen/arch/x86/platform_hypercall.c
++++ b/xen/arch/x86/platform_hypercall.c
+@@ -60,7 +60,7 @@ long cpu_down_helper(void *data);
+ long core_parking_helper(void *data);
+ uint32_t get_cur_idle_nums(void);
+-ret_t do_platform_op(XEN_GUEST_HANDLE(xen_platform_op_t) u_xenpf_op)
++ret_t do_platform_op(XEN_GUEST_HANDLE_PARAM(xen_platform_op_t) u_xenpf_op)
+ {
+     ret_t ret = 0;
+     struct xen_platform_op curop, *op = &curop;
+diff --git a/xen/arch/x86/sysctl.c b/xen/arch/x86/sysctl.c
+index 379f071..b84dd34 100644
+--- a/xen/arch/x86/sysctl.c
++++ b/xen/arch/x86/sysctl.c
+@@ -58,7 +58,7 @@ long cpu_down_helper(void *data)
+ }
+ long arch_do_sysctl(
+-    struct xen_sysctl *sysctl, XEN_GUEST_HANDLE(xen_sysctl_t) u_sysctl)
++    struct xen_sysctl *sysctl, XEN_GUEST_HANDLE_PARAM(xen_sysctl_t) u_sysctl)
+ {
+     long ret = 0;
+diff --git a/xen/arch/x86/traps.c b/xen/arch/x86/traps.c
+index 767be86..281d9e7 100644
+--- a/xen/arch/x86/traps.c
++++ b/xen/arch/x86/traps.c
+@@ -3700,7 +3700,7 @@ int send_guest_trap(struct domain *d, uint16_t vcpuid, unsigned int trap_nr)
+ }
+-long do_set_trap_table(XEN_GUEST_HANDLE(const_trap_info_t) traps)
++long do_set_trap_table(XEN_GUEST_HANDLE_PARAM(const_trap_info_t) traps)
+ {
+     struct trap_info cur;
+     struct vcpu *curr = current;
+diff --git a/xen/arch/x86/x86_32/mm.c b/xen/arch/x86/x86_32/mm.c
+index 37efa3c..f6448fb 100644
+--- a/xen/arch/x86/x86_32/mm.c
++++ b/xen/arch/x86/x86_32/mm.c
+@@ -203,7 +203,7 @@ void __init subarch_init_memory(void)
+     }
+ }
+-long subarch_memory_op(int op, XEN_GUEST_HANDLE(void) arg)
++long subarch_memory_op(int op, XEN_GUEST_HANDLE_PARAM(void) arg)
+ {
+     struct xen_machphys_mfn_list xmml;
+     unsigned long mfn, last_mfn;
+diff --git a/xen/arch/x86/x86_32/traps.c b/xen/arch/x86/x86_32/traps.c
+index 8f68808..0c7c860 100644
+--- a/xen/arch/x86/x86_32/traps.c
++++ b/xen/arch/x86/x86_32/traps.c
+@@ -492,7 +492,7 @@ static long unregister_guest_callback(struct callback_unregister *unreg)
+ }
+-long do_callback_op(int cmd, XEN_GUEST_HANDLE(const_void) arg)
++long do_callback_op(int cmd, XEN_GUEST_HANDLE_PARAM(const_void) arg)
+ {
+     long ret;
+diff --git a/xen/arch/x86/x86_64/compat/mm.c b/xen/arch/x86/x86_64/compat/mm.c
+index 5bcd2fd..1de93b7 100644
+--- a/xen/arch/x86/x86_64/compat/mm.c
++++ b/xen/arch/x86/x86_64/compat/mm.c
+@@ -5,7 +5,7 @@
+ #include <asm/mem_event.h>
+ #include <asm/mem_sharing.h>
+-int compat_set_gdt(XEN_GUEST_HANDLE(uint) frame_list, unsigned int entries)
++int compat_set_gdt(XEN_GUEST_HANDLE_PARAM(uint) frame_list, unsigned int entries)
+ {
+     unsigned int i, nr_pages = (entries + 511) / 512;
+     unsigned long frames[16];
+@@ -44,7 +44,7 @@ int compat_update_descriptor(u32 pa_lo, u32 pa_hi, u32 desc_lo, u32 desc_hi)
+                                 desc_lo | ((u64)desc_hi << 32));
+ }
+-int compat_arch_memory_op(int op, XEN_GUEST_HANDLE(void) arg)
++int compat_arch_memory_op(int op, XEN_GUEST_HANDLE_PARAM(void) arg)
+ {
+     struct compat_machphys_mfn_list xmml;
+     l2_pgentry_t l2e;
+@@ -266,14 +266,14 @@ int compat_update_va_mapping_otherdomain(unsigned long va, u32 lo, u32 hi,
+ DEFINE_XEN_GUEST_HANDLE(mmuext_op_compat_t);
+-int compat_mmuext_op(XEN_GUEST_HANDLE(mmuext_op_compat_t) cmp_uops,
++int compat_mmuext_op(XEN_GUEST_HANDLE_PARAM(mmuext_op_compat_t) cmp_uops,
+                      unsigned int count,
+-                     XEN_GUEST_HANDLE(uint) pdone,
++                     XEN_GUEST_HANDLE_PARAM(uint) pdone,
+                      unsigned int foreigndom)
+ {
+     unsigned int i, preempt_mask;
+     int rc = 0;
+-    XEN_GUEST_HANDLE(mmuext_op_t) nat_ops;
++    XEN_GUEST_HANDLE_PARAM(mmuext_op_t) nat_ops;
+     preempt_mask = count & MMU_UPDATE_PREEMPTED;
+     count ^= preempt_mask;
+diff --git a/xen/arch/x86/x86_64/domain.c b/xen/arch/x86/x86_64/domain.c
+index e746c89..144ca2d 100644
+--- a/xen/arch/x86/x86_64/domain.c
++++ b/xen/arch/x86/x86_64/domain.c
+@@ -23,7 +23,7 @@ CHECK_vcpu_get_physid;
+ int
+ arch_compat_vcpu_op(
+-    int cmd, struct vcpu *v, XEN_GUEST_HANDLE(void) arg)
++    int cmd, struct vcpu *v, XEN_GUEST_HANDLE_PARAM(void) arg)
+ {
+     int rc = -ENOSYS;
+diff --git a/xen/arch/x86/x86_64/mm.c b/xen/arch/x86/x86_64/mm.c
+index 635a499..17c46a1 100644
+--- a/xen/arch/x86/x86_64/mm.c
++++ b/xen/arch/x86/x86_64/mm.c
+@@ -1043,7 +1043,7 @@ void __init subarch_init_memory(void)
+     }
+ }
+-long subarch_memory_op(int op, XEN_GUEST_HANDLE(void) arg)
++long subarch_memory_op(int op, XEN_GUEST_HANDLE_PARAM(void) arg)
+ {
+     struct xen_machphys_mfn_list xmml;
+     l3_pgentry_t l3e;
+diff --git a/xen/arch/x86/x86_64/traps.c b/xen/arch/x86/x86_64/traps.c
+index 806cf2e..6ead813 100644
+--- a/xen/arch/x86/x86_64/traps.c
++++ b/xen/arch/x86/x86_64/traps.c
+@@ -518,7 +518,7 @@ static long unregister_guest_callback(struct callback_unregister *unreg)
+ }
+-long do_callback_op(int cmd, XEN_GUEST_HANDLE(const_void) arg)
++long do_callback_op(int cmd, XEN_GUEST_HANDLE_PARAM(const_void) arg)
+ {
+     long ret;
+diff --git a/xen/common/compat/domain.c b/xen/common/compat/domain.c
+index 40a0287..e4c8ceb 100644
+--- a/xen/common/compat/domain.c
++++ b/xen/common/compat/domain.c
+@@ -15,7 +15,7 @@
+ CHECK_vcpu_set_periodic_timer;
+ #undef xen_vcpu_set_periodic_timer
+-int compat_vcpu_op(int cmd, int vcpuid, XEN_GUEST_HANDLE(void) arg)
++int compat_vcpu_op(int cmd, int vcpuid, XEN_GUEST_HANDLE_PARAM(void) arg)
+ {
+     struct domain *d = current->domain;
+     struct vcpu *v;
+diff --git a/xen/common/compat/grant_table.c b/xen/common/compat/grant_table.c
+index edd20c6..b524955 100644
+--- a/xen/common/compat/grant_table.c
++++ b/xen/common/compat/grant_table.c
+@@ -52,12 +52,12 @@ CHECK_gnttab_swap_grant_ref;
+ #undef xen_gnttab_swap_grant_ref
+ int compat_grant_table_op(unsigned int cmd,
+-                          XEN_GUEST_HANDLE(void) cmp_uop,
++                          XEN_GUEST_HANDLE_PARAM(void) cmp_uop,
+                           unsigned int count)
+ {
+     int rc = 0;
+     unsigned int i;
+-    XEN_GUEST_HANDLE(void) cnt_uop;
++    XEN_GUEST_HANDLE_PARAM(void) cnt_uop;
+     set_xen_guest_handle(cnt_uop, NULL);
+     switch ( cmd )
+@@ -206,7 +206,7 @@ int compat_grant_table_op(unsigned int cmd,
+             }
+             if ( rc >= 0 )
+             {
+-                XEN_GUEST_HANDLE(gnttab_transfer_compat_t) xfer;
++                XEN_GUEST_HANDLE_PARAM(gnttab_transfer_compat_t) xfer;
+                 xfer = guest_handle_cast(cmp_uop, gnttab_transfer_compat_t);
+                 guest_handle_add_offset(xfer, i);
+@@ -251,7 +251,7 @@ int compat_grant_table_op(unsigned int cmd,
+             }
+             if ( rc >= 0 )
+             {
+-                XEN_GUEST_HANDLE(gnttab_copy_compat_t) copy;
++                XEN_GUEST_HANDLE_PARAM(gnttab_copy_compat_t) copy;
+                 copy = guest_handle_cast(cmp_uop, gnttab_copy_compat_t);
+                 guest_handle_add_offset(copy, i);
+diff --git a/xen/common/compat/memory.c b/xen/common/compat/memory.c
+index e7257cc..996151c 100644
+--- a/xen/common/compat/memory.c
++++ b/xen/common/compat/memory.c
+@@ -13,7 +13,7 @@ CHECK_TYPE(domid);
+ #undef compat_domid_t
+ #undef xen_domid_t
+-int compat_memory_op(unsigned int cmd, XEN_GUEST_HANDLE(void) compat)
++int compat_memory_op(unsigned int cmd, XEN_GUEST_HANDLE_PARAM(void) compat)
+ {
+     int rc, split, op = cmd & MEMOP_CMD_MASK;
+     unsigned int start_extent = cmd >> MEMOP_EXTENT_SHIFT;
+@@ -22,7 +22,7 @@ int compat_memory_op(unsigned int cmd, XEN_GUEST_HANDLE(void) compat)
+     {
+         unsigned int i, end_extent = 0;
+         union {
+-            XEN_GUEST_HANDLE(void) hnd;
++            XEN_GUEST_HANDLE_PARAM(void) hnd;
+             struct xen_memory_reservation *rsrv;
+             struct xen_memory_exchange *xchg;
+             struct xen_remove_from_physmap *xrfp;
+diff --git a/xen/common/domain.c b/xen/common/domain.c
+index 4c5d241..d7cd135 100644
+--- a/xen/common/domain.c
++++ b/xen/common/domain.c
+@@ -804,7 +804,7 @@ void vcpu_reset(struct vcpu *v)
+ }
+-long do_vcpu_op(int cmd, int vcpuid, XEN_GUEST_HANDLE(void) arg)
++long do_vcpu_op(int cmd, int vcpuid, XEN_GUEST_HANDLE_PARAM(void) arg)
+ {
+     struct domain *d = current->domain;
+     struct vcpu *v;
+diff --git a/xen/common/domctl.c b/xen/common/domctl.c
+index 7ca6b08..527c5ad 100644
+--- a/xen/common/domctl.c
++++ b/xen/common/domctl.c
+@@ -238,7 +238,7 @@ void domctl_lock_release(void)
+     spin_unlock(&current->domain->hypercall_deadlock_mutex);
+ }
+-long do_domctl(XEN_GUEST_HANDLE(xen_domctl_t) u_domctl)
++long do_domctl(XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl)
+ {
+     long ret = 0;
+     struct xen_domctl curop, *op = &curop;
+diff --git a/xen/common/event_channel.c b/xen/common/event_channel.c
+index 53777f8..a80a0d1 100644
+--- a/xen/common/event_channel.c
++++ b/xen/common/event_channel.c
+@@ -970,7 +970,7 @@ out:
+ }
+-long do_event_channel_op(int cmd, XEN_GUEST_HANDLE(void) arg)
++long do_event_channel_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
+ {
+     long rc;
+diff --git a/xen/common/grant_table.c b/xen/common/grant_table.c
+index 9961e83..d780dc6 100644
+--- a/xen/common/grant_table.c
++++ b/xen/common/grant_table.c
+@@ -771,7 +771,7 @@ __gnttab_map_grant_ref(
+ static long
+ gnttab_map_grant_ref(
+-    XEN_GUEST_HANDLE(gnttab_map_grant_ref_t) uop, unsigned int count)
++    XEN_GUEST_HANDLE_PARAM(gnttab_map_grant_ref_t) uop, unsigned int count)
+ {
+     int i;
+     struct gnttab_map_grant_ref op;
+@@ -1040,7 +1040,7 @@ __gnttab_unmap_grant_ref(
+ static long
+ gnttab_unmap_grant_ref(
+-    XEN_GUEST_HANDLE(gnttab_unmap_grant_ref_t) uop, unsigned int count)
++    XEN_GUEST_HANDLE_PARAM(gnttab_unmap_grant_ref_t) uop, unsigned int count)
+ {
+     int i, c, partial_done, done = 0;
+     struct gnttab_unmap_grant_ref op;
+@@ -1102,7 +1102,7 @@ __gnttab_unmap_and_replace(
+ static long
+ gnttab_unmap_and_replace(
+-    XEN_GUEST_HANDLE(gnttab_unmap_and_replace_t) uop, unsigned int count)
++    XEN_GUEST_HANDLE_PARAM(gnttab_unmap_and_replace_t) uop, unsigned int count)
+ {
+     int i, c, partial_done, done = 0;
+     struct gnttab_unmap_and_replace op;
+@@ -1254,7 +1254,7 @@ active_alloc_failed:
+ static long 
+ gnttab_setup_table(
+-    XEN_GUEST_HANDLE(gnttab_setup_table_t) uop, unsigned int count)
++    XEN_GUEST_HANDLE_PARAM(gnttab_setup_table_t) uop, unsigned int count)
+ {
+     struct gnttab_setup_table op;
+     struct domain *d;
+@@ -1348,7 +1348,7 @@ gnttab_setup_table(
+ static long 
+ gnttab_query_size(
+-    XEN_GUEST_HANDLE(gnttab_query_size_t) uop, unsigned int count)
++    XEN_GUEST_HANDLE_PARAM(gnttab_query_size_t) uop, unsigned int count)
+ {
+     struct gnttab_query_size op;
+     struct domain *d;
+@@ -1485,7 +1485,7 @@ gnttab_prepare_for_transfer(
+ static long
+ gnttab_transfer(
+-    XEN_GUEST_HANDLE(gnttab_transfer_t) uop, unsigned int count)
++    XEN_GUEST_HANDLE_PARAM(gnttab_transfer_t) uop, unsigned int count)
+ {
+     struct domain *d = current->domain;
+     struct domain *e;
+@@ -2082,7 +2082,7 @@ __gnttab_copy(
+ static long
+ gnttab_copy(
+-    XEN_GUEST_HANDLE(gnttab_copy_t) uop, unsigned int count)
++    XEN_GUEST_HANDLE_PARAM(gnttab_copy_t) uop, unsigned int count)
+ {
+     int i;
+     struct gnttab_copy op;
+@@ -2101,7 +2101,7 @@ gnttab_copy(
+ }
+ static long
+-gnttab_set_version(XEN_GUEST_HANDLE(gnttab_set_version_t uop))
++gnttab_set_version(XEN_GUEST_HANDLE_PARAM(gnttab_set_version_t uop))
+ {
+     gnttab_set_version_t op;
+     struct domain *d = current->domain;
+@@ -2220,7 +2220,7 @@ out:
+ }
+ static long
+-gnttab_get_status_frames(XEN_GUEST_HANDLE(gnttab_get_status_frames_t) uop,
++gnttab_get_status_frames(XEN_GUEST_HANDLE_PARAM(gnttab_get_status_frames_t) uop,
+                          int count)
+ {
+     gnttab_get_status_frames_t op;
+@@ -2289,7 +2289,7 @@ out1:
+ }
+ static long
+-gnttab_get_version(XEN_GUEST_HANDLE(gnttab_get_version_t uop))
++gnttab_get_version(XEN_GUEST_HANDLE_PARAM(gnttab_get_version_t uop))
+ {
+     gnttab_get_version_t op;
+     struct domain *d;
+@@ -2368,7 +2368,7 @@ out:
+ }
+ static long
+-gnttab_swap_grant_ref(XEN_GUEST_HANDLE(gnttab_swap_grant_ref_t uop),
++gnttab_swap_grant_ref(XEN_GUEST_HANDLE_PARAM(gnttab_swap_grant_ref_t uop),
+                       unsigned int count)
+ {
+     int i;
+@@ -2389,7 +2389,7 @@ gnttab_swap_grant_ref(XEN_GUEST_HANDLE(gnttab_swap_grant_ref_t uop),
+ long
+ do_grant_table_op(
+-    unsigned int cmd, XEN_GUEST_HANDLE(void) uop, unsigned int count)
++    unsigned int cmd, XEN_GUEST_HANDLE_PARAM(void) uop, unsigned int count)
+ {
+     long rc;
+     
+@@ -2401,7 +2401,7 @@ do_grant_table_op(
+     {
+     case GNTTABOP_map_grant_ref:
+     {
+-        XEN_GUEST_HANDLE(gnttab_map_grant_ref_t) map =
++        XEN_GUEST_HANDLE_PARAM(gnttab_map_grant_ref_t) map =
+             guest_handle_cast(uop, gnttab_map_grant_ref_t);
+         if ( unlikely(!guest_handle_okay(map, count)) )
+             goto out;
+@@ -2415,7 +2415,7 @@ do_grant_table_op(
+     }
+     case GNTTABOP_unmap_grant_ref:
+     {
+-        XEN_GUEST_HANDLE(gnttab_unmap_grant_ref_t) unmap =
++        XEN_GUEST_HANDLE_PARAM(gnttab_unmap_grant_ref_t) unmap =
+             guest_handle_cast(uop, gnttab_unmap_grant_ref_t);
+         if ( unlikely(!guest_handle_okay(unmap, count)) )
+             goto out;
+@@ -2429,7 +2429,7 @@ do_grant_table_op(
+     }
+     case GNTTABOP_unmap_and_replace:
+     {
+-        XEN_GUEST_HANDLE(gnttab_unmap_and_replace_t) unmap =
++        XEN_GUEST_HANDLE_PARAM(gnttab_unmap_and_replace_t) unmap =
+             guest_handle_cast(uop, gnttab_unmap_and_replace_t);
+         if ( unlikely(!guest_handle_okay(unmap, count)) )
+             goto out;
+@@ -2453,7 +2453,7 @@ do_grant_table_op(
+     }
+     case GNTTABOP_transfer:
+     {
+-        XEN_GUEST_HANDLE(gnttab_transfer_t) transfer =
++        XEN_GUEST_HANDLE_PARAM(gnttab_transfer_t) transfer =
+             guest_handle_cast(uop, gnttab_transfer_t);
+         if ( unlikely(!guest_handle_okay(transfer, count)) )
+             goto out;
+@@ -2467,7 +2467,7 @@ do_grant_table_op(
+     }
+     case GNTTABOP_copy:
+     {
+-        XEN_GUEST_HANDLE(gnttab_copy_t) copy =
++        XEN_GUEST_HANDLE_PARAM(gnttab_copy_t) copy =
+             guest_handle_cast(uop, gnttab_copy_t);
+         if ( unlikely(!guest_handle_okay(copy, count)) )
+             goto out;
+@@ -2504,7 +2504,7 @@ do_grant_table_op(
+     }
+     case GNTTABOP_swap_grant_ref:
+     {
+-        XEN_GUEST_HANDLE(gnttab_swap_grant_ref_t) swap =
++        XEN_GUEST_HANDLE_PARAM(gnttab_swap_grant_ref_t) swap =
+             guest_handle_cast(uop, gnttab_swap_grant_ref_t);
+         if ( unlikely(!guest_handle_okay(swap, count)) )
+             goto out;
+diff --git a/xen/common/kernel.c b/xen/common/kernel.c
+index c915bbc..55caff6 100644
+--- a/xen/common/kernel.c
++++ b/xen/common/kernel.c
+@@ -204,7 +204,7 @@ void __init do_initcalls(void)
+  * Simple hypercalls.
+  */
+-DO(xen_version)(int cmd, XEN_GUEST_HANDLE(void) arg)
++DO(xen_version)(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
+ {
+     switch ( cmd )
+     {
+@@ -332,7 +332,7 @@ DO(xen_version)(int cmd, XEN_GUEST_HANDLE(void) arg)
+     return -ENOSYS;
+ }
+-DO(nmi_op)(unsigned int cmd, XEN_GUEST_HANDLE(void) arg)
++DO(nmi_op)(unsigned int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
+ {
+     struct xennmi_callback cb;
+     long rc = 0;
+diff --git a/xen/common/kexec.c b/xen/common/kexec.c
+index 09a5624..03389eb 100644
+--- a/xen/common/kexec.c
++++ b/xen/common/kexec.c
+@@ -613,7 +613,7 @@ static int kexec_get_range_internal(xen_kexec_range_t *range)
+     return ret;
+ }
+-static int kexec_get_range(XEN_GUEST_HANDLE(void) uarg)
++static int kexec_get_range(XEN_GUEST_HANDLE_PARAM(void) uarg)
+ {
+     xen_kexec_range_t range;
+     int ret = -EINVAL;
+@@ -629,7 +629,7 @@ static int kexec_get_range(XEN_GUEST_HANDLE(void) uarg)
+     return ret;
+ }
+-static int kexec_get_range_compat(XEN_GUEST_HANDLE(void) uarg)
++static int kexec_get_range_compat(XEN_GUEST_HANDLE_PARAM(void) uarg)
+ {
+ #ifdef CONFIG_COMPAT
+     xen_kexec_range_t range;
+@@ -777,7 +777,7 @@ static int kexec_load_unload_internal(unsigned long op, xen_kexec_load_t *load)
+     return ret;
+ }
+-static int kexec_load_unload(unsigned long op, XEN_GUEST_HANDLE(void) uarg)
++static int kexec_load_unload(unsigned long op, XEN_GUEST_HANDLE_PARAM(void) uarg)
+ {
+     xen_kexec_load_t load;
+@@ -788,7 +788,7 @@ static int kexec_load_unload(unsigned long op, XEN_GUEST_HANDLE(void) uarg)
+ }
+ static int kexec_load_unload_compat(unsigned long op,
+-                                    XEN_GUEST_HANDLE(void) uarg)
++                                    XEN_GUEST_HANDLE_PARAM(void) uarg)
+ {
+ #ifdef CONFIG_COMPAT
+     compat_kexec_load_t compat_load;
+@@ -813,7 +813,7 @@ static int kexec_load_unload_compat(unsigned long op,
+ #endif /* CONFIG_COMPAT */
+ }
+-static int kexec_exec(XEN_GUEST_HANDLE(void) uarg)
++static int kexec_exec(XEN_GUEST_HANDLE_PARAM(void) uarg)
+ {
+     xen_kexec_exec_t exec;
+     xen_kexec_image_t *image;
+@@ -845,7 +845,7 @@ static int kexec_exec(XEN_GUEST_HANDLE(void) uarg)
+     return -EINVAL; /* never reached */
+ }
+-int do_kexec_op_internal(unsigned long op, XEN_GUEST_HANDLE(void) uarg,
++int do_kexec_op_internal(unsigned long op, XEN_GUEST_HANDLE_PARAM(void) uarg,
+                            int compat)
+ {
+     unsigned long flags;
+@@ -886,13 +886,13 @@ int do_kexec_op_internal(unsigned long op, XEN_GUEST_HANDLE(void) uarg,
+     return ret;
+ }
+-long do_kexec_op(unsigned long op, XEN_GUEST_HANDLE(void) uarg)
++long do_kexec_op(unsigned long op, XEN_GUEST_HANDLE_PARAM(void) uarg)
+ {
+     return do_kexec_op_internal(op, uarg, 0);
+ }
+ #ifdef CONFIG_COMPAT
+-int compat_kexec_op(unsigned long op, XEN_GUEST_HANDLE(void) uarg)
++int compat_kexec_op(unsigned long op, XEN_GUEST_HANDLE_PARAM(void) uarg)
+ {
+     return do_kexec_op_internal(op, uarg, 1);
+ }
+diff --git a/xen/common/memory.c b/xen/common/memory.c
+index 7e58cc4..a683954 100644
+--- a/xen/common/memory.c
++++ b/xen/common/memory.c
+@@ -277,7 +277,7 @@ static void decrease_reservation(struct memop_args *a)
+     a->nr_done = i;
+ }
+-static long memory_exchange(XEN_GUEST_HANDLE(xen_memory_exchange_t) arg)
++static long memory_exchange(XEN_GUEST_HANDLE_PARAM(xen_memory_exchange_t) arg)
+ {
+     struct xen_memory_exchange exch;
+     PAGE_LIST_HEAD(in_chunk_list);
+@@ -530,7 +530,7 @@ static long memory_exchange(XEN_GUEST_HANDLE(xen_memory_exchange_t) arg)
+     return rc;
+ }
+-long do_memory_op(unsigned long cmd, XEN_GUEST_HANDLE(void) arg)
++long do_memory_op(unsigned long cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
+ {
+     struct domain *d;
+     int rc, op;
+diff --git a/xen/common/multicall.c b/xen/common/multicall.c
+index 6c1a9d7..5de5f8d 100644
+--- a/xen/common/multicall.c
++++ b/xen/common/multicall.c
+@@ -21,7 +21,7 @@ typedef long ret_t;
+ ret_t
+ do_multicall(
+-    XEN_GUEST_HANDLE(multicall_entry_t) call_list, unsigned int nr_calls)
++    XEN_GUEST_HANDLE_PARAM(multicall_entry_t) call_list, unsigned int nr_calls)
+ {
+     struct mc_state *mcs = &current->mc_state;
+     unsigned int     i;
+diff --git a/xen/common/schedule.c b/xen/common/schedule.c
+index 0854f55..c26eac4 100644
+--- a/xen/common/schedule.c
++++ b/xen/common/schedule.c
+@@ -836,7 +836,7 @@ typedef long ret_t;
+ #endif /* !COMPAT */
+-ret_t do_sched_op(int cmd, XEN_GUEST_HANDLE(void) arg)
++ret_t do_sched_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
+ {
+     ret_t ret = 0;
+diff --git a/xen/common/sysctl.c b/xen/common/sysctl.c
+index ea68278..47142f4 100644
+--- a/xen/common/sysctl.c
++++ b/xen/common/sysctl.c
+@@ -27,7 +27,7 @@
+ #include <xsm/xsm.h>
+ #include <xen/pmstat.h>
+-long do_sysctl(XEN_GUEST_HANDLE(xen_sysctl_t) u_sysctl)
++long do_sysctl(XEN_GUEST_HANDLE_PARAM(xen_sysctl_t) u_sysctl)
+ {
+     long ret = 0;
+     struct xen_sysctl curop, *op = &curop;
+diff --git a/xen/common/xenoprof.c b/xen/common/xenoprof.c
+index e571fea..c001b38 100644
+--- a/xen/common/xenoprof.c
++++ b/xen/common/xenoprof.c
+@@ -404,7 +404,7 @@ static int add_active_list(domid_t domid)
+     return 0;
+ }
+-static int add_passive_list(XEN_GUEST_HANDLE(void) arg)
++static int add_passive_list(XEN_GUEST_HANDLE_PARAM(void) arg)
+ {
+     struct xenoprof_passive passive;
+     struct domain *d;
+@@ -585,7 +585,7 @@ void xenoprof_log_event(struct vcpu *vcpu, const struct cpu_user_regs *regs,
+-static int xenoprof_op_init(XEN_GUEST_HANDLE(void) arg)
++static int xenoprof_op_init(XEN_GUEST_HANDLE_PARAM(void) arg)
+ {
+     struct domain *d = current->domain;
+     struct xenoprof_init xenoprof_init;
+@@ -609,7 +609,7 @@ static int xenoprof_op_init(XEN_GUEST_HANDLE(void) arg)
+ #endif /* !COMPAT */
+-static int xenoprof_op_get_buffer(XEN_GUEST_HANDLE(void) arg)
++static int xenoprof_op_get_buffer(XEN_GUEST_HANDLE_PARAM(void) arg)
+ {
+     struct xenoprof_get_buffer xenoprof_get_buffer;
+     struct domain *d = current->domain;
+@@ -660,7 +660,7 @@ static int xenoprof_op_get_buffer(XEN_GUEST_HANDLE(void) arg)
+                       || (op == XENOPROF_disable_virq)  \
+                       || (op == XENOPROF_get_buffer))
+  
+-int do_xenoprof_op(int op, XEN_GUEST_HANDLE(void) arg)
++int do_xenoprof_op(int op, XEN_GUEST_HANDLE_PARAM(void) arg)
+ {
+     int ret = 0;
+     
+diff --git a/xen/drivers/acpi/pmstat.c b/xen/drivers/acpi/pmstat.c
+index 698711e..f8d62f2 100644
+--- a/xen/drivers/acpi/pmstat.c
++++ b/xen/drivers/acpi/pmstat.c
+@@ -515,7 +515,7 @@ int do_pm_op(struct xen_sysctl_pm_op *op)
+     return ret;
+ }
+-int acpi_set_pdc_bits(u32 acpi_id, XEN_GUEST_HANDLE(uint32) pdc)
++int acpi_set_pdc_bits(u32 acpi_id, XEN_GUEST_HANDLE_PARAM(uint32) pdc)
+ {
+     u32 bits[3];
+     int ret;
+diff --git a/xen/drivers/char/console.c b/xen/drivers/char/console.c
+index e10bed5..b0f2334 100644
+--- a/xen/drivers/char/console.c
++++ b/xen/drivers/char/console.c
+@@ -182,7 +182,7 @@ static void putchar_console_ring(int c)
+ long read_console_ring(struct xen_sysctl_readconsole *op)
+ {
+-    XEN_GUEST_HANDLE(char) str;
++    XEN_GUEST_HANDLE_PARAM(char) str;
+     uint32_t idx, len, max, sofar, c;
+     str   = guest_handle_cast(op->buffer, char),
+@@ -320,7 +320,7 @@ static void notify_dom0_con_ring(unsigned long unused)
+ static DECLARE_SOFTIRQ_TASKLET(notify_dom0_con_ring_tasklet,
+                                notify_dom0_con_ring, 0);
+-static long guest_console_write(XEN_GUEST_HANDLE(char) buffer, int count)
++static long guest_console_write(XEN_GUEST_HANDLE_PARAM(char) buffer, int count)
+ {
+     char kbuf[128], *kptr;
+     int kcount;
+@@ -358,7 +358,7 @@ static long guest_console_write(XEN_GUEST_HANDLE(char) buffer, int count)
+     return 0;
+ }
+-long do_console_io(int cmd, int count, XEN_GUEST_HANDLE(char) buffer)
++long do_console_io(int cmd, int count, XEN_GUEST_HANDLE_PARAM(char) buffer)
+ {
+     long rc;
+     unsigned int idx, len;
+diff --git a/xen/drivers/passthrough/iommu.c b/xen/drivers/passthrough/iommu.c
+index 64f5fd1..396461f 100644
+--- a/xen/drivers/passthrough/iommu.c
++++ b/xen/drivers/passthrough/iommu.c
+@@ -518,7 +518,7 @@ void iommu_crash_shutdown(void)
+ int iommu_do_domctl(
+     struct xen_domctl *domctl,
+-    XEN_GUEST_HANDLE(xen_domctl_t) u_domctl)
++    XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl)
+ {
+     struct domain *d;
+     u16 seg;
+diff --git a/xen/include/asm-arm/hypercall.h b/xen/include/asm-arm/hypercall.h
+index 454f02e..090e620 100644
+--- a/xen/include/asm-arm/hypercall.h
++++ b/xen/include/asm-arm/hypercall.h
+@@ -2,7 +2,7 @@
+ #define __ASM_ARM_HYPERCALL_H__
+ #include <public/domctl.h> /* for arch_do_domctl */
+-int do_physdev_op(int cmd, XEN_GUEST_HANDLE(void) arg);
++int do_physdev_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg);
+ #endif /* __ASM_ARM_HYPERCALL_H__ */
+ /*
+diff --git a/xen/include/asm-arm/mm.h b/xen/include/asm-arm/mm.h
+index b37bd35..8bf45ba 100644
+--- a/xen/include/asm-arm/mm.h
++++ b/xen/include/asm-arm/mm.h
+@@ -267,7 +267,7 @@ static inline int relinquish_shared_pages(struct domain *d)
+ /* Arch-specific portion of memory_op hypercall. */
+-long arch_memory_op(int op, XEN_GUEST_HANDLE(void) arg);
++long arch_memory_op(int op, XEN_GUEST_HANDLE_PARAM(void) arg);
+ int steal_page(
+     struct domain *d, struct page_info *page, unsigned int memflags);
+diff --git a/xen/include/asm-x86/hap.h b/xen/include/asm-x86/hap.h
+index a2532a4..916a35b 100644
+--- a/xen/include/asm-x86/hap.h
++++ b/xen/include/asm-x86/hap.h
+@@ -51,7 +51,7 @@ hap_unmap_domain_page(void *p)
+ /************************************************/
+ void  hap_domain_init(struct domain *d);
+ int   hap_domctl(struct domain *d, xen_domctl_shadow_op_t *sc,
+-                 XEN_GUEST_HANDLE(void) u_domctl);
++                 XEN_GUEST_HANDLE_PARAM(void) u_domctl);
+ int   hap_enable(struct domain *d, u32 mode);
+ void  hap_final_teardown(struct domain *d);
+ void  hap_teardown(struct domain *d);
+diff --git a/xen/include/asm-x86/hypercall.h b/xen/include/asm-x86/hypercall.h
+index 9e136c3..55b5ca2 100644
+--- a/xen/include/asm-x86/hypercall.h
++++ b/xen/include/asm-x86/hypercall.h
+@@ -18,22 +18,22 @@
+ extern long
+ do_event_channel_op_compat(
+-    XEN_GUEST_HANDLE(evtchn_op_t) uop);
++    XEN_GUEST_HANDLE_PARAM(evtchn_op_t) uop);
+ extern long
+ do_set_trap_table(
+-    XEN_GUEST_HANDLE(const_trap_info_t) traps);
++    XEN_GUEST_HANDLE_PARAM(const_trap_info_t) traps);
+ extern int
+ do_mmu_update(
+-    XEN_GUEST_HANDLE(mmu_update_t) ureqs,
++    XEN_GUEST_HANDLE_PARAM(mmu_update_t) ureqs,
+     unsigned int count,
+-    XEN_GUEST_HANDLE(uint) pdone,
++    XEN_GUEST_HANDLE_PARAM(uint) pdone,
+     unsigned int foreigndom);
+ extern long
+ do_set_gdt(
+-    XEN_GUEST_HANDLE(ulong) frame_list,
++    XEN_GUEST_HANDLE_PARAM(ulong) frame_list,
+     unsigned int entries);
+ extern long
+@@ -60,7 +60,7 @@ do_update_descriptor(
+     u64 desc);
+ extern long
+-do_mca(XEN_GUEST_HANDLE(xen_mc_t) u_xen_mc);
++do_mca(XEN_GUEST_HANDLE_PARAM(xen_mc_t) u_xen_mc);
+ extern int
+ do_update_va_mapping(
+@@ -70,7 +70,7 @@ do_update_va_mapping(
+ extern long
+ do_physdev_op(
+-    int cmd, XEN_GUEST_HANDLE(void) arg);
++    int cmd, XEN_GUEST_HANDLE_PARAM(void) arg);
+ extern int
+ do_update_va_mapping_otherdomain(
+@@ -81,9 +81,9 @@ do_update_va_mapping_otherdomain(
+ extern int
+ do_mmuext_op(
+-    XEN_GUEST_HANDLE(mmuext_op_t) uops,
++    XEN_GUEST_HANDLE_PARAM(mmuext_op_t) uops,
+     unsigned int count,
+-    XEN_GUEST_HANDLE(uint) pdone,
++    XEN_GUEST_HANDLE_PARAM(uint) pdone,
+     unsigned int foreigndom);
+ extern unsigned long
+@@ -92,7 +92,7 @@ do_iret(
+ extern int
+ do_kexec(
+-    unsigned long op, unsigned arg1, XEN_GUEST_HANDLE(void) uarg);
++    unsigned long op, unsigned arg1, XEN_GUEST_HANDLE_PARAM(void) uarg);
+ #ifdef __x86_64__
+@@ -110,11 +110,11 @@ do_set_segment_base(
+ extern int
+ compat_physdev_op(
+     int cmd,
+-    XEN_GUEST_HANDLE(void) arg);
++    XEN_GUEST_HANDLE_PARAM(void) arg);
+ extern int
+ arch_compat_vcpu_op(
+-    int cmd, struct vcpu *v, XEN_GUEST_HANDLE(void) arg);
++    int cmd, struct vcpu *v, XEN_GUEST_HANDLE_PARAM(void) arg);
+ #else
+diff --git a/xen/include/asm-x86/mem_event.h b/xen/include/asm-x86/mem_event.h
+index 23d71c1..e17f36b 100644
+--- a/xen/include/asm-x86/mem_event.h
++++ b/xen/include/asm-x86/mem_event.h
+@@ -65,7 +65,7 @@ int mem_event_get_response(struct domain *d, struct mem_event_domain *med,
+ struct domain *get_mem_event_op_target(uint32_t domain, int *rc);
+ int do_mem_event_op(int op, uint32_t domain, void *arg);
+ int mem_event_domctl(struct domain *d, xen_domctl_mem_event_op_t *mec,
+-                     XEN_GUEST_HANDLE(void) u_domctl);
++                     XEN_GUEST_HANDLE_PARAM(void) u_domctl);
+ #endif /* __MEM_EVENT_H__ */
+diff --git a/xen/include/asm-x86/mm.h b/xen/include/asm-x86/mm.h
+index 4cba276..6373b3b 100644
+--- a/xen/include/asm-x86/mm.h
++++ b/xen/include/asm-x86/mm.h
+@@ -604,10 +604,10 @@ void *do_page_walk(struct vcpu *v, unsigned long addr);
+ int __sync_local_execstate(void);
+ /* Arch-specific portion of memory_op hypercall. */
+-long arch_memory_op(int op, XEN_GUEST_HANDLE(void) arg);
+-long subarch_memory_op(int op, XEN_GUEST_HANDLE(void) arg);
+-int compat_arch_memory_op(int op, XEN_GUEST_HANDLE(void));
+-int compat_subarch_memory_op(int op, XEN_GUEST_HANDLE(void));
++long arch_memory_op(int op, XEN_GUEST_HANDLE_PARAM(void) arg);
++long subarch_memory_op(int op, XEN_GUEST_HANDLE_PARAM(void) arg);
++int compat_arch_memory_op(int op, XEN_GUEST_HANDLE_PARAM(void));
++int compat_subarch_memory_op(int op, XEN_GUEST_HANDLE_PARAM(void));
+ int steal_page(
+     struct domain *d, struct page_info *page, unsigned int memflags);
+diff --git a/xen/include/asm-x86/paging.h b/xen/include/asm-x86/paging.h
+index c432a97..1cd0e3f 100644
+--- a/xen/include/asm-x86/paging.h
++++ b/xen/include/asm-x86/paging.h
+@@ -215,7 +215,7 @@ int paging_domain_init(struct domain *d, unsigned int domcr_flags);
+  * and disable ephemeral shadow modes (test mode and log-dirty mode) and
+  * manipulate the log-dirty bitmap. */
+ int paging_domctl(struct domain *d, xen_domctl_shadow_op_t *sc,
+-                  XEN_GUEST_HANDLE(void) u_domctl);
++                  XEN_GUEST_HANDLE_PARAM(void) u_domctl);
+ /* Call when destroying a domain */
+ void paging_teardown(struct domain *d);
+diff --git a/xen/include/asm-x86/processor.h b/xen/include/asm-x86/processor.h
+index 7164a50..efdbddd 100644
+--- a/xen/include/asm-x86/processor.h
++++ b/xen/include/asm-x86/processor.h
+@@ -598,7 +598,7 @@ int rdmsr_hypervisor_regs(uint32_t idx, uint64_t *val);
+ int wrmsr_hypervisor_regs(uint32_t idx, uint64_t val);
+ void microcode_set_module(unsigned int);
+-int microcode_update(XEN_GUEST_HANDLE(const_void), unsigned long len);
++int microcode_update(XEN_GUEST_HANDLE_PARAM(const_void), unsigned long len);
+ int microcode_resume_cpu(int cpu);
+ unsigned long *get_x86_gpr(struct cpu_user_regs *regs, unsigned int modrm_reg);
+diff --git a/xen/include/asm-x86/shadow.h b/xen/include/asm-x86/shadow.h
+index 88a8cd2..2eb6efc 100644
+--- a/xen/include/asm-x86/shadow.h
++++ b/xen/include/asm-x86/shadow.h
+@@ -73,7 +73,7 @@ int shadow_track_dirty_vram(struct domain *d,
+  * manipulate the log-dirty bitmap. */
+ int shadow_domctl(struct domain *d, 
+                   xen_domctl_shadow_op_t *sc,
+-                  XEN_GUEST_HANDLE(void) u_domctl);
++                  XEN_GUEST_HANDLE_PARAM(void) u_domctl);
+ /* Call when destroying a domain */
+ void shadow_teardown(struct domain *d);
+diff --git a/xen/include/asm-x86/xenoprof.h b/xen/include/asm-x86/xenoprof.h
+index c03f8c8..3f5ea15 100644
+--- a/xen/include/asm-x86/xenoprof.h
++++ b/xen/include/asm-x86/xenoprof.h
+@@ -40,9 +40,9 @@ int xenoprof_arch_init(int *num_events, char *cpu_type);
+ #define xenoprof_arch_disable_virq()            nmi_disable_virq()
+ #define xenoprof_arch_release_counters()        nmi_release_counters()
+-int xenoprof_arch_counter(XEN_GUEST_HANDLE(void) arg);
+-int compat_oprof_arch_counter(XEN_GUEST_HANDLE(void) arg);
+-int xenoprof_arch_ibs_counter(XEN_GUEST_HANDLE(void) arg);
++int xenoprof_arch_counter(XEN_GUEST_HANDLE_PARAM(void) arg);
++int compat_oprof_arch_counter(XEN_GUEST_HANDLE_PARAM(void) arg);
++int xenoprof_arch_ibs_counter(XEN_GUEST_HANDLE_PARAM(void) arg);
+ struct vcpu;
+ struct cpu_user_regs;
+diff --git a/xen/include/xen/acpi.h b/xen/include/xen/acpi.h
+index d7e2f94..8f3cdca 100644
+--- a/xen/include/xen/acpi.h
++++ b/xen/include/xen/acpi.h
+@@ -145,8 +145,8 @@ static inline unsigned int acpi_get_cstate_limit(void) { return 0; }
+ static inline void acpi_set_cstate_limit(unsigned int new_limit) { return; }
+ #endif
+-#ifdef XEN_GUEST_HANDLE
+-int acpi_set_pdc_bits(u32 acpi_id, XEN_GUEST_HANDLE(uint32));
++#ifdef XEN_GUEST_HANDLE_PARAM
++int acpi_set_pdc_bits(u32 acpi_id, XEN_GUEST_HANDLE_PARAM(uint32));
+ #endif
+ int arch_acpi_set_pdc_bits(u32 acpi_id, u32 *, u32 mask);
+diff --git a/xen/include/xen/hypercall.h b/xen/include/xen/hypercall.h
+index 73b1598..e335037 100644
+--- a/xen/include/xen/hypercall.h
++++ b/xen/include/xen/hypercall.h
+@@ -29,29 +29,29 @@ do_sched_op_compat(
+ extern long
+ do_sched_op(
+     int cmd,
+-    XEN_GUEST_HANDLE(void) arg);
++    XEN_GUEST_HANDLE_PARAM(void) arg);
+ extern long
+ do_domctl(
+-    XEN_GUEST_HANDLE(xen_domctl_t) u_domctl);
++    XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl);
+ extern long
+ arch_do_domctl(
+     struct xen_domctl *domctl,
+-    XEN_GUEST_HANDLE(xen_domctl_t) u_domctl);
++    XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl);
+ extern long
+ do_sysctl(
+-    XEN_GUEST_HANDLE(xen_sysctl_t) u_sysctl);
++    XEN_GUEST_HANDLE_PARAM(xen_sysctl_t) u_sysctl);
+ extern long
+ arch_do_sysctl(
+     struct xen_sysctl *sysctl,
+-    XEN_GUEST_HANDLE(xen_sysctl_t) u_sysctl);
++    XEN_GUEST_HANDLE_PARAM(xen_sysctl_t) u_sysctl);
+ extern long
+ do_platform_op(
+-    XEN_GUEST_HANDLE(xen_platform_op_t) u_xenpf_op);
++    XEN_GUEST_HANDLE_PARAM(xen_platform_op_t) u_xenpf_op);
+ /*
+  * To allow safe resume of do_memory_op() after preemption, we need to know
+@@ -64,11 +64,11 @@ do_platform_op(
+ extern long
+ do_memory_op(
+     unsigned long cmd,
+-    XEN_GUEST_HANDLE(void) arg);
++    XEN_GUEST_HANDLE_PARAM(void) arg);
+ extern long
+ do_multicall(
+-    XEN_GUEST_HANDLE(multicall_entry_t) call_list,
++    XEN_GUEST_HANDLE_PARAM(multicall_entry_t) call_list,
+     unsigned int nr_calls);
+ extern long
+@@ -77,23 +77,23 @@ do_set_timer_op(
+ extern long
+ do_event_channel_op(
+-    int cmd, XEN_GUEST_HANDLE(void) arg);
++    int cmd, XEN_GUEST_HANDLE_PARAM(void) arg);
+ extern long
+ do_xen_version(
+     int cmd,
+-    XEN_GUEST_HANDLE(void) arg);
++    XEN_GUEST_HANDLE_PARAM(void) arg);
+ extern long
+ do_console_io(
+     int cmd,
+     int count,
+-    XEN_GUEST_HANDLE(char) buffer);
++    XEN_GUEST_HANDLE_PARAM(char) buffer);
+ extern long
+ do_grant_table_op(
+     unsigned int cmd,
+-    XEN_GUEST_HANDLE(void) uop,
++    XEN_GUEST_HANDLE_PARAM(void) uop,
+     unsigned int count);
+ extern long
+@@ -105,72 +105,72 @@ extern long
+ do_vcpu_op(
+     int cmd,
+     int vcpuid,
+-    XEN_GUEST_HANDLE(void) arg);
++    XEN_GUEST_HANDLE_PARAM(void) arg);
+ struct vcpu;
+ extern long
+ arch_do_vcpu_op(int cmd,
+     struct vcpu *v,
+-    XEN_GUEST_HANDLE(void) arg);
++    XEN_GUEST_HANDLE_PARAM(void) arg);
+ extern long
+ do_nmi_op(
+     unsigned int cmd,
+-    XEN_GUEST_HANDLE(void) arg);
++    XEN_GUEST_HANDLE_PARAM(void) arg);
+ extern long
+ do_hvm_op(
+     unsigned long op,
+-    XEN_GUEST_HANDLE(void) arg);
++    XEN_GUEST_HANDLE_PARAM(void) arg);
+ extern long
+ do_kexec_op(
+     unsigned long op,
+     int arg1,
+-    XEN_GUEST_HANDLE(void) arg);
++    XEN_GUEST_HANDLE_PARAM(void) arg);
+ extern long
+ do_xsm_op(
+-    XEN_GUEST_HANDLE(xsm_op_t) u_xsm_op);
++    XEN_GUEST_HANDLE_PARAM(xsm_op_t) u_xsm_op);
+ extern long
+ do_tmem_op(
+-    XEN_GUEST_HANDLE(tmem_op_t) uops);
++    XEN_GUEST_HANDLE_PARAM(tmem_op_t) uops);
+ extern int
+-do_xenoprof_op(int op, XEN_GUEST_HANDLE(void) arg);
++do_xenoprof_op(int op, XEN_GUEST_HANDLE_PARAM(void) arg);
+ #ifdef CONFIG_COMPAT
+ extern int
+ compat_memory_op(
+     unsigned int cmd,
+-    XEN_GUEST_HANDLE(void) arg);
++    XEN_GUEST_HANDLE_PARAM(void) arg);
+ extern int
+ compat_grant_table_op(
+     unsigned int cmd,
+-    XEN_GUEST_HANDLE(void) uop,
++    XEN_GUEST_HANDLE_PARAM(void) uop,
+     unsigned int count);
+ extern int
+ compat_vcpu_op(
+     int cmd,
+     int vcpuid,
+-    XEN_GUEST_HANDLE(void) arg);
++    XEN_GUEST_HANDLE_PARAM(void) arg);
+ extern int
+-compat_xenoprof_op(int op, XEN_GUEST_HANDLE(void) arg);
++compat_xenoprof_op(int op, XEN_GUEST_HANDLE_PARAM(void) arg);
+ extern int
+ compat_xen_version(
+     int cmd,
+-    XEN_GUEST_HANDLE(void) arg);
++    XEN_GUEST_HANDLE_PARAM(void) arg);
+ extern int
+ compat_sched_op(
+     int cmd,
+-    XEN_GUEST_HANDLE(void) arg);
++    XEN_GUEST_HANDLE_PARAM(void) arg);
+ extern int
+ compat_set_timer_op(
+diff --git a/xen/include/xen/iommu.h b/xen/include/xen/iommu.h
+index 6f7fbf7..bd19e23 100644
+--- a/xen/include/xen/iommu.h
++++ b/xen/include/xen/iommu.h
+@@ -155,7 +155,7 @@ void iommu_crash_shutdown(void);
+ void iommu_set_dom0_mapping(struct domain *d);
+ void iommu_share_p2m_table(struct domain *d);
+-int iommu_do_domctl(struct xen_domctl *, XEN_GUEST_HANDLE(xen_domctl_t));
++int iommu_do_domctl(struct xen_domctl *, XEN_GUEST_HANDLE_PARAM(xen_domctl_t));
+ void iommu_iotlb_flush(struct domain *d, unsigned long gfn, unsigned int page_count);
+ void iommu_iotlb_flush_all(struct domain *d);
+diff --git a/xen/include/xen/tmem_xen.h b/xen/include/xen/tmem_xen.h
+index 4a35760..2e7199a 100644
+--- a/xen/include/xen/tmem_xen.h
++++ b/xen/include/xen/tmem_xen.h
+@@ -448,7 +448,7 @@ static inline void tmh_tze_copy_from_pfp(void *tva, pfp_t *pfp, pagesize_t len)
+ typedef XEN_GUEST_HANDLE(void) cli_mfn_t;
+ typedef XEN_GUEST_HANDLE(char) cli_va_t;
+ */
+-typedef XEN_GUEST_HANDLE(tmem_op_t) tmem_cli_op_t;
++typedef XEN_GUEST_HANDLE_PARAM(tmem_op_t) tmem_cli_op_t;
+ static inline int tmh_get_tmemop_from_client(tmem_op_t *op, tmem_cli_op_t uops)
+ {
+diff --git a/xen/include/xsm/xsm.h b/xen/include/xsm/xsm.h
+index bef79df..3e4a47f 100644
+--- a/xen/include/xsm/xsm.h
++++ b/xen/include/xsm/xsm.h
+@@ -139,7 +139,7 @@ struct xsm_operations {
+     int (*cpupool_op)(void);
+     int (*sched_op)(void);
+-    long (*__do_xsm_op) (XEN_GUEST_HANDLE(xsm_op_t) op);
++    long (*__do_xsm_op) (XEN_GUEST_HANDLE_PARAM(xsm_op_t) op);
+ #ifdef CONFIG_X86
+     int (*shadow_control) (struct domain *d, uint32_t op);
+@@ -585,7 +585,7 @@ static inline int xsm_sched_op(void)
+     return xsm_call(sched_op());
+ }
+-static inline long __do_xsm_op (XEN_GUEST_HANDLE(xsm_op_t) op)
++static inline long __do_xsm_op (XEN_GUEST_HANDLE_PARAM(xsm_op_t) op)
+ {
+ #ifdef XSM_ENABLE
+     return xsm_ops->__do_xsm_op(op);
+diff --git a/xen/xsm/dummy.c b/xen/xsm/dummy.c
+index 7027ee7..5ef6529 100644
+--- a/xen/xsm/dummy.c
++++ b/xen/xsm/dummy.c
+@@ -365,7 +365,7 @@ static int dummy_sched_op (void)
+     return 0;
+ }
+-static long dummy___do_xsm_op(XEN_GUEST_HANDLE(xsm_op_t) op)
++static long dummy___do_xsm_op(XEN_GUEST_HANDLE_PARAM(xsm_op_t) op)
+ {
+     return -ENOSYS;
+ }
+diff --git a/xen/xsm/flask/flask_op.c b/xen/xsm/flask/flask_op.c
+index bd4db37..23e7d34 100644
+--- a/xen/xsm/flask/flask_op.c
++++ b/xen/xsm/flask/flask_op.c
+@@ -71,7 +71,7 @@ static int domain_has_security(struct domain *d, u32 perms)
+                         perms, NULL);
+ }
+-static int flask_copyin_string(XEN_GUEST_HANDLE(char) u_buf, char **buf, uint32_t size)
++static int flask_copyin_string(XEN_GUEST_HANDLE_PARAM(char) u_buf, char **buf, uint32_t size)
+ {
+     char *tmp = xmalloc_bytes(size + 1);
+     if ( !tmp )
+@@ -573,7 +573,7 @@ static int flask_get_peer_sid(struct xen_flask_peersid *arg)
+     return rv;
+ }
+-long do_flask_op(XEN_GUEST_HANDLE(xsm_op_t) u_flask_op)
++long do_flask_op(XEN_GUEST_HANDLE_PARAM(xsm_op_t) u_flask_op)
+ {
+     xen_flask_op_t op;
+     int rv;
+diff --git a/xen/xsm/flask/hooks.c b/xen/xsm/flask/hooks.c
+index 23b84f3..0fc299c 100644
+--- a/xen/xsm/flask/hooks.c
++++ b/xen/xsm/flask/hooks.c
+@@ -1553,7 +1553,7 @@ static int flask_vcpuextstate (struct domain *d, uint32_t cmd)
+ }
+ #endif
+-long do_flask_op(XEN_GUEST_HANDLE(xsm_op_t) u_flask_op);
++long do_flask_op(XEN_GUEST_HANDLE_PARAM(xsm_op_t) u_flask_op);
+ static struct xsm_operations flask_ops = {
+     .security_domaininfo = flask_security_domaininfo,
+diff --git a/xen/xsm/xsm_core.c b/xen/xsm/xsm_core.c
+index 96c8669..46287cb 100644
+--- a/xen/xsm/xsm_core.c
++++ b/xen/xsm/xsm_core.c
+@@ -111,7 +111,7 @@ int unregister_xsm(struct xsm_operations *ops)
+ #endif
+-long do_xsm_op (XEN_GUEST_HANDLE(xsm_op_t) op)
++long do_xsm_op (XEN_GUEST_HANDLE_PARAM(xsm_op_t) op)
+ {
+     return __do_xsm_op(op);
+ }
+-- 
+1.7.2.5
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1345633688-31684-6-git-send-email-stefano.stabellini@eu.citrix.com> b/config/examples/test/corpus/<1345633688-31684-6-git-send-email-stefano.stabellini@eu.citrix.com>
new file mode 100644 (file)
index 0000000..f0c94c6
--- /dev/null
@@ -0,0 +1,255 @@
+From xen-devel-bounces@lists.xen.org Wed Aug 22 12:13:03 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 22 Aug 2012 12:13:03 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T48rn-0000wk-WF
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 22 Aug 2012 12:13:03 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T48nY-0001DN-7l; Wed, 22 Aug 2012 11:08:32 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1T48nW-0001DE-Lh
+       for xen-devel@lists.xensource.com; Wed, 22 Aug 2012 11:08:30 +0000
+Received: from [85.158.143.99:27349] by server-2.bemta-4.messagelabs.com id
+       EF/53-21239-EADB4305; Wed, 22 Aug 2012 11:08:30 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-15.tower-216.messagelabs.com!1345633707!27328660!1
+X-Originating-IP: [66.165.176.89]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNjU4OTQ=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 6188 invoked from network); 22 Aug 2012 11:08:29 -0000
+Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
+       by server-15.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
+       22 Aug 2012 11:08:29 -0000
+X-IronPort-AV: E=Sophos;i="4.77,808,1336363200"; d="scan'208";a="35423308"
+Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
+       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       22 Aug 2012 07:08:21 -0400
+Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
+       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
+       Wed, 22 Aug 2012 07:08:21 -0400
+Received: from kaball.uk.xensource.com ([10.80.2.59])  by
+       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
+       <stefano.stabellini@eu.citrix.com>)     id 1T48nH-0003lL-RK;
+       Wed, 22 Aug 2012 12:08:15 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+To: <xen-devel@lists.xensource.com>
+Date: Wed, 22 Aug 2012 12:08:08 +0100
+Message-ID: <1345633688-31684-6-git-send-email-stefano.stabellini@eu.citrix.com>
+X-Mailer: git-send-email 1.7.9.5
+In-Reply-To: <alpine.DEB.2.02.1208221159560.15568@kaball.uk.xensource.com>
+References: <alpine.DEB.2.02.1208221159560.15568@kaball.uk.xensource.com>
+MIME-Version: 1.0
+Cc: tim@xen.org, Ian.Campbell@citrix.com,
+       Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: [Xen-devel] [PATCH v4 6/6] xen: more substitutions
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+More substitutions in this patch, not as obvious as the ones in the
+previous patch.
+
+Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+---
+ xen/arch/x86/mm.c                        |   12 +++++++++---
+ xen/arch/x86/oprofile/backtrace.c        |    4 +++-
+ xen/arch/x86/platform_hypercall.c        |    8 ++++++--
+ xen/arch/x86/x86_64/cpu_idle.c           |    4 +++-
+ xen/arch/x86/x86_64/cpufreq.c            |    4 +++-
+ xen/arch/x86/x86_64/platform_hypercall.c |    1 +
+ xen/common/compat/multicall.c            |    1 +
+ 7 files changed, 26 insertions(+), 8 deletions(-)
+
+diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c
+index 4d72700..088db11 100644
+--- a/xen/arch/x86/mm.c
++++ b/xen/arch/x86/mm.c
+@@ -3198,7 +3198,9 @@ int do_mmuext_op(
+         {
+             cpumask_t pmask;
+-            if ( unlikely(vcpumask_to_pcpumask(d, op.arg2.vcpumask, &pmask)) )
++            if ( unlikely(vcpumask_to_pcpumask(d,
++                            guest_handle_to_param(op.arg2.vcpumask, const_void),
++                            &pmask)) )
+             {
+                 okay = 0;
+                 break;
+@@ -4484,6 +4486,7 @@ static int handle_iomem_range(unsigned long s, unsigned long e, void *p)
+     if ( s > ctxt->s )
+     {
+         e820entry_t ent;
++        XEN_GUEST_HANDLE_PARAM(e820entry_t) buffer_t;
+         XEN_GUEST_HANDLE(e820entry_t) buffer;
+         if ( ctxt->n + 1 >= ctxt->map.nr_entries )
+@@ -4491,7 +4494,8 @@ static int handle_iomem_range(unsigned long s, unsigned long e, void *p)
+         ent.addr = (uint64_t)ctxt->s << PAGE_SHIFT;
+         ent.size = (uint64_t)(s - ctxt->s) << PAGE_SHIFT;
+         ent.type = E820_RESERVED;
+-        buffer = guest_handle_cast(ctxt->map.buffer, e820entry_t);
++        buffer_t = guest_handle_cast(ctxt->map.buffer, e820entry_t);
++        buffer = guest_handle_from_param(buffer_t, e820entry_t);
+         if ( __copy_to_guest_offset(buffer, ctxt->n, &ent, 1) )
+             return -EFAULT;
+         ctxt->n++;
+@@ -4790,6 +4794,7 @@ long arch_memory_op(int op, XEN_GUEST_HANDLE_PARAM(void) arg)
+     {
+         struct memory_map_context ctxt;
+         XEN_GUEST_HANDLE(e820entry_t) buffer;
++        XEN_GUEST_HANDLE_PARAM(e820entry_t) buffer_t;
+         unsigned int i;
+         if ( !IS_PRIV(current->domain) )
+@@ -4804,7 +4809,8 @@ long arch_memory_op(int op, XEN_GUEST_HANDLE_PARAM(void) arg)
+         if ( ctxt.map.nr_entries < e820.nr_map + 1 )
+             return -EINVAL;
+-        buffer = guest_handle_cast(ctxt.map.buffer, e820entry_t);
++        buffer_t = guest_handle_cast(ctxt.map.buffer, e820entry_t);
++        buffer = guest_handle_from_param(buffer_t, e820entry_t);
+         if ( !guest_handle_okay(buffer, ctxt.map.nr_entries) )
+             return -EFAULT;
+diff --git a/xen/arch/x86/oprofile/backtrace.c b/xen/arch/x86/oprofile/backtrace.c
+index 33fd142..699cd28 100644
+--- a/xen/arch/x86/oprofile/backtrace.c
++++ b/xen/arch/x86/oprofile/backtrace.c
+@@ -80,8 +80,10 @@ dump_guest_backtrace(struct vcpu *vcpu, const struct frame_head *head,
+     else
+ #endif
+     {
+-        XEN_GUEST_HANDLE(const_frame_head_t) guest_head =
++        XEN_GUEST_HANDLE(const_frame_head_t) guest_head;
++        XEN_GUEST_HANDLE_PARAM(const_frame_head_t) guest_head_t =
+             const_guest_handle_from_ptr(head, frame_head_t);
++        guest_head = guest_handle_from_param(guest_head_t, const_frame_head_t);
+         /* Also check accessibility of one struct frame_head beyond */
+         if (!guest_handle_okay(guest_head, 2))
+diff --git a/xen/arch/x86/platform_hypercall.c b/xen/arch/x86/platform_hypercall.c
+index a32e0a2..2994b12 100644
+--- a/xen/arch/x86/platform_hypercall.c
++++ b/xen/arch/x86/platform_hypercall.c
+@@ -185,7 +185,9 @@ ret_t do_platform_op(XEN_GUEST_HANDLE_PARAM(xen_platform_op_t) u_xenpf_op)
+             }
+         }
+-        ret = microcode_update(data, op->u.microcode.length);
++        ret = microcode_update(
++                guest_handle_to_param(data, const_void),
++                op->u.microcode.length);
+         spin_unlock(&vcpu_alloc_lock);
+     }
+     break;
+@@ -448,7 +450,9 @@ ret_t do_platform_op(XEN_GUEST_HANDLE_PARAM(xen_platform_op_t) u_xenpf_op)
+             XEN_GUEST_HANDLE(uint32) pdc;
+             guest_from_compat_handle(pdc, op->u.set_pminfo.u.pdc);
+-            ret = acpi_set_pdc_bits(op->u.set_pminfo.id, pdc);
++            ret = acpi_set_pdc_bits(
++                    op->u.set_pminfo.id,
++                    guest_handle_to_param(pdc, uint32));
+         }
+         break;
+diff --git a/xen/arch/x86/x86_64/cpu_idle.c b/xen/arch/x86/x86_64/cpu_idle.c
+index 3e7422f..1cdaf96 100644
+--- a/xen/arch/x86/x86_64/cpu_idle.c
++++ b/xen/arch/x86/x86_64/cpu_idle.c
+@@ -57,10 +57,12 @@ static int copy_from_compat_state(xen_processor_cx_t *xen_state,
+ {
+ #define XLAT_processor_cx_HNDL_dp(_d_, _s_) do { \
+     XEN_GUEST_HANDLE(compat_processor_csd_t) dps; \
++    XEN_GUEST_HANDLE_PARAM(xen_processor_csd_t) dps_t; \
+     if ( unlikely(!compat_handle_okay((_s_)->dp, (_s_)->dpcnt)) ) \
+             return -EFAULT; \
+     guest_from_compat_handle(dps, (_s_)->dp); \
+-    (_d_)->dp = guest_handle_cast(dps, xen_processor_csd_t); \
++    dps_t = guest_handle_cast(dps, xen_processor_csd_t); \
++    (_d_)->dp = guest_handle_from_param(dps_t, xen_processor_csd_t); \
+ } while (0)
+     XLAT_processor_cx(xen_state, state);
+ #undef XLAT_processor_cx_HNDL_dp
+diff --git a/xen/arch/x86/x86_64/cpufreq.c b/xen/arch/x86/x86_64/cpufreq.c
+index ce9864e..1956777 100644
+--- a/xen/arch/x86/x86_64/cpufreq.c
++++ b/xen/arch/x86/x86_64/cpufreq.c
+@@ -45,10 +45,12 @@ compat_set_px_pminfo(uint32_t cpu, struct compat_processor_performance *perf)
+ #define XLAT_processor_performance_HNDL_states(_d_, _s_) do { \
+     XEN_GUEST_HANDLE(compat_processor_px_t) states; \
++    XEN_GUEST_HANDLE_PARAM(xen_processor_px_t) states_t; \
+     if ( unlikely(!compat_handle_okay((_s_)->states, (_s_)->state_count)) ) \
+         return -EFAULT; \
+     guest_from_compat_handle(states, (_s_)->states); \
+-    (_d_)->states = guest_handle_cast(states, xen_processor_px_t); \
++    states_t = guest_handle_cast(states, xen_processor_px_t); \
++    (_d_)->states = guest_handle_from_param(states_t, xen_processor_px_t); \
+ } while (0)
+     XLAT_processor_performance(xen_perf, perf);
+diff --git a/xen/arch/x86/x86_64/platform_hypercall.c b/xen/arch/x86/x86_64/platform_hypercall.c
+index 188aa37..f577761 100644
+--- a/xen/arch/x86/x86_64/platform_hypercall.c
++++ b/xen/arch/x86/x86_64/platform_hypercall.c
+@@ -38,6 +38,7 @@ CHECK_pf_pcpu_version;
+ #define COMPAT
+ #define _XEN_GUEST_HANDLE(t) XEN_GUEST_HANDLE(t)
++#define _XEN_GUEST_HANDLE_PARAM(t) XEN_GUEST_HANDLE(t)
+ typedef int ret_t;
+ #include "../platform_hypercall.c"
+diff --git a/xen/common/compat/multicall.c b/xen/common/compat/multicall.c
+index 0eb1212..72db213 100644
+--- a/xen/common/compat/multicall.c
++++ b/xen/common/compat/multicall.c
+@@ -24,6 +24,7 @@ DEFINE_XEN_GUEST_HANDLE(multicall_entry_compat_t);
+ #define call                 compat_call
+ #define do_multicall(l, n)   compat_multicall(_##l, n)
+ #define _XEN_GUEST_HANDLE(t) XEN_GUEST_HANDLE(t)
++#define _XEN_GUEST_HANDLE_PARAM(t) XEN_GUEST_HANDLE(t)
+ #include "../multicall.c"
+-- 
+1.7.2.5
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1345727912.12501.83.camel@zakaz.uk.xensource.com> b/config/examples/test/corpus/<1345727912.12501.83.camel@zakaz.uk.xensource.com>
new file mode 100644 (file)
index 0000000..b0a7812
--- /dev/null
@@ -0,0 +1,119 @@
+From xen-devel-bounces@lists.xen.org Thu Aug 23 14:24:52 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 23 Aug 2012 14:24:52 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T4XOw-0002Ip-BZ
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 23 Aug 2012 14:24:51 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T4XJx-0006k6-5x; Thu, 23 Aug 2012 13:19:37 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1T4XJv-0006k1-A7
+       for xen-devel@lists.xen.org; Thu, 23 Aug 2012 13:19:35 +0000
+Received: from [85.158.138.51:27111] by server-9.bemta-3.messagelabs.com id
+       95/36-23952-6ED26305; Thu, 23 Aug 2012 13:19:34 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-6.tower-174.messagelabs.com!1345727974!19608791!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTA0MjY=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 12782 invoked from network); 23 Aug 2012 13:19:34 -0000
+Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-6.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
+       23 Aug 2012 13:19:34 -0000
+X-IronPort-AV: E=Sophos;i="4.80,300,1344211200"; d="scan'208";a="14147478"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       23 Aug 2012 13:18:33 +0000
+Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0;
+       Thu, 23 Aug 2012 14:18:33 +0100
+Message-ID: <1345727912.12501.83.camel@zakaz.uk.xensource.com>
+From: Ian Campbell <Ian.Campbell@citrix.com>
+To: Julien Grall <julien.grall@citrix.com>
+Date: Thu, 23 Aug 2012 14:18:32 +0100
+In-Reply-To: <96d6442c911f6ed7f6cb24670901b151fa1570d6.1345552068.git.julien.grall@citrix.com>
+References: <cover.1345552068.git.julien.grall@citrix.com>
+       <96d6442c911f6ed7f6cb24670901b151fa1570d6.1345552068.git.julien.grall@citrix.com>
+Organization: Citrix Systems, Inc.
+X-Mailer: Evolution 3.4.3-1 
+MIME-Version: 1.0
+Cc: "christian.limpach@gmail.com" <christian.limpach@gmail.com>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
+       "qemu-devel@nongnu.org" <qemu-devel@nongnu.org>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [XEN][RFC PATCH V2 01/17] hvm: Modify interface to
+ support multiple ioreq server
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+> diff --git a/xen/include/asm-x86/hvm/domain.h b/xen/include/asm-x86/hvm/domain.h
+> index 27b3de5..49d1ca0 100644
+> --- a/xen/include/asm-x86/hvm/domain.h
+> +++ b/xen/include/asm-x86/hvm/domain.h
+[...]
+>  struct hvm_domain {
+> +    /* Use for the IO handles by Xen */
+>      struct hvm_ioreq_page  ioreq;
+> -    struct hvm_ioreq_page  buf_ioreq;
+> +    struct hvm_ioreq_server *ioreq_server_list;
+> +    uint32_t                     nr_ioreq_server;
+> +    spinlock_t               ioreq_server_lock;
+
+There's some whitespace weirdness here plus some in
+xen/include/asm-x86/hvm/vcpu.h and xen/include/public/hvm/hvm_op.h.
+
+> diff --git a/xen/include/public/hvm/ioreq.h b/xen/include/public/hvm/ioreq.h
+> index 4022a1d..87aacd3 100644
+> --- a/xen/include/public/hvm/ioreq.h
+> +++ b/xen/include/public/hvm/ioreq.h
+> @@ -34,6 +34,7 @@
+>  
+>  #define IOREQ_TYPE_PIO          0 /* pio */
+>  #define IOREQ_TYPE_COPY         1 /* mmio ops */
+> +#define IOREQ_TYPE_PCI_CONFIG   2 /* pci config space ops */
+>  #define IOREQ_TYPE_TIMEOFFSET   7
+>  #define IOREQ_TYPE_INVALIDATE   8 /* mapcache */
+
+I wonder why we skip 2-6 now -- perhaps they used to be something else
+and we are avoiding them to avoid strange errors? In which case adding
+the new on as 9 might be a good idea.
+
+Ian.
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1345728118.12501.86.camel@zakaz.uk.xensource.com> b/config/examples/test/corpus/<1345728118.12501.86.camel@zakaz.uk.xensource.com>
new file mode 100644 (file)
index 0000000..99db6ef
--- /dev/null
@@ -0,0 +1,96 @@
+From xen-devel-bounces@lists.xen.org Thu Aug 23 14:25:47 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 23 Aug 2012 14:25:47 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T4XPt-0002Jb-3W
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 23 Aug 2012 14:25:47 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T4XMJ-0006t7-2v; Thu, 23 Aug 2012 13:22:03 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1T4XMH-0006ss-O3
+       for xen-devel@lists.xen.org; Thu, 23 Aug 2012 13:22:01 +0000
+Received: from [85.158.138.51:45956] by server-4.bemta-3.messagelabs.com id
+       A0/FB-04276-87E26305; Thu, 23 Aug 2012 13:22:00 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-5.tower-174.messagelabs.com!1345728119!27722148!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTA0MjY=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 30977 invoked from network); 23 Aug 2012 13:22:00 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-5.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
+       23 Aug 2012 13:22:00 -0000
+X-IronPort-AV: E=Sophos;i="4.80,300,1344211200"; d="scan'208";a="14147553"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       23 Aug 2012 13:21:59 +0000
+Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0;
+       Thu, 23 Aug 2012 14:21:59 +0100
+Message-ID: <1345728118.12501.86.camel@zakaz.uk.xensource.com>
+From: Ian Campbell <Ian.Campbell@citrix.com>
+To: Julien Grall <julien.grall@citrix.com>
+Date: Thu, 23 Aug 2012 14:21:58 +0100
+In-Reply-To: <8747cb48d50a10784df56904db29ca8b6e8c5d80.1345552068.git.julien.grall@citrix.com>
+References: <cover.1345552068.git.julien.grall@citrix.com>
+       <8747cb48d50a10784df56904db29ca8b6e8c5d80.1345552068.git.julien.grall@citrix.com>
+Organization: Citrix Systems, Inc.
+X-Mailer: Evolution 3.4.3-1 
+MIME-Version: 1.0
+Cc: "christian.limpach@gmail.com" <christian.limpach@gmail.com>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
+       "qemu-devel@nongnu.org" <qemu-devel@nongnu.org>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [XEN][RFC PATCH V2 09/17] xc: Add the hypercall for
+ multiple servers
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Wed, 2012-08-22 at 13:31 +0100, Julien Grall wrote:
+> This patch add 5 hypercalls to register server, io range and PCI.
+> 
+> Signed-off-by: Julien Grall <julien.grall@citrix.com>
+
+Looks correct to me at least so far as the use of the hypercall buffers
+goes, thanks.
+
+Acked-by: Ian Campbell <ian.campbelL@citrix.com>
+
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1345728471.12501.90.camel@zakaz.uk.xensource.com> b/config/examples/test/corpus/<1345728471.12501.90.camel@zakaz.uk.xensource.com>
new file mode 100644 (file)
index 0000000..67765a4
--- /dev/null
@@ -0,0 +1,128 @@
+From xen-devel-bounces@lists.xen.org Thu Aug 23 14:31:59 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 23 Aug 2012 14:31:59 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T4XVq-0002Lh-1t
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 23 Aug 2012 14:31:59 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T4XS1-0007El-6V; Thu, 23 Aug 2012 13:27:57 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1T4XS0-0007Ef-1O
+       for xen-devel@lists.xen.org; Thu, 23 Aug 2012 13:27:56 +0000
+Received: from [85.158.138.51:49060] by server-11.bemta-3.messagelabs.com id
+       72/93-23152-BDF26305; Thu, 23 Aug 2012 13:27:55 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-13.tower-174.messagelabs.com!1345728472!8726516!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTA0MjY=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 28635 invoked from network); 23 Aug 2012 13:27:53 -0000
+Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-13.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
+       23 Aug 2012 13:27:53 -0000
+X-IronPort-AV: E=Sophos;i="4.80,300,1344211200"; d="scan'208";a="14147697"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       23 Aug 2012 13:27:52 +0000
+Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0;
+       Thu, 23 Aug 2012 14:27:52 +0100
+Message-ID: <1345728471.12501.90.camel@zakaz.uk.xensource.com>
+From: Ian Campbell <Ian.Campbell@citrix.com>
+To: Julien Grall <julien.grall@citrix.com>
+Date: Thu, 23 Aug 2012 14:27:51 +0100
+In-Reply-To: <fcf046ea782dda6cacb3bf11813bf1d16e531e6b.1345552068.git.julien.grall@citrix.com>
+References: <cover.1345552068.git.julien.grall@citrix.com>
+       <fcf046ea782dda6cacb3bf11813bf1d16e531e6b.1345552068.git.julien.grall@citrix.com>
+Organization: Citrix Systems, Inc.
+X-Mailer: Evolution 3.4.3-1 
+MIME-Version: 1.0
+Cc: "christian.limpach@gmail.com" <christian.limpach@gmail.com>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
+       "qemu-devel@nongnu.org" <qemu-devel@nongnu.org>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [XEN][RFC PATCH V2 11/17] xc: modify save/restore
+ to support multiple device models
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Wed, 2012-08-22 at 13:31 +0100, Julien Grall wrote:
+> - add save/restore new special pages and remove unused
+>     - modify save file structure to allow multiple qemu states
+> 
+> Signed-off-by: Julien Grall <julien.grall@citrix.com>
+> ---
+>  tools/libxc/xc_domain_restore.c |  150 +++++++++++++++++++++++++++++----------
+>  tools/libxc/xc_domain_save.c    |    6 +-
+
+As you've changed the protocol olease can you update the docs in
+xg_save_restore.h.
+
+> @@ -103,6 +103,9 @@ static ssize_t rdexact(xc_interface *xch, struct restore_ctx *ctx,
+>  #else
+>  #define RDEXACT read_exact
+>  #endif
+> +
+> +#define QEMUSIG_SIZE 21
+> +
+>  /*
+>  ** In the state file (or during transfer), all page-table pages are
+>  ** converted into a 'canonical' form where references to actual mfns
+> @@ -467,7 +522,7 @@ static int buffer_tail_hvm(xc_interface *xch, struct restore_ctx *ctx,
+>                             int vcpuextstate, uint32_t vcpuextstate_size)
+>  {
+>      uint8_t *tmp;
+> -    unsigned char qemusig[21];
+> +    unsigned char qemusig[QEMUSIG_SIZE + 1];
+
+An extra + 1 here?
+
+[...]
+> -    qemusig[20] = '\0';
+> +    qemusig[QEMUSIG_SIZE] = '\0';
+
+This is one bigger than it used to be now.
+
+Perhaps this is an unrelated bug fix (I haven't check the real length of
+the sig), in which case please can you split it out and submit
+separately?
+
+Ian.
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1345728617.12501.92.camel@zakaz.uk.xensource.com> b/config/examples/test/corpus/<1345728617.12501.92.camel@zakaz.uk.xensource.com>
new file mode 100644 (file)
index 0000000..d6f511d
--- /dev/null
@@ -0,0 +1,183 @@
+From xen-devel-bounces@lists.xen.org Thu Aug 23 14:34:32 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 23 Aug 2012 14:34:32 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T4XYI-0002Mz-OJ
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 23 Aug 2012 14:34:32 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T4XUQ-0007NQ-Of; Thu, 23 Aug 2012 13:30:26 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1T4XUP-0007NH-94
+       for xen-devel@lists.xen.org; Thu, 23 Aug 2012 13:30:25 +0000
+Received: from [85.158.139.83:6487] by server-8.bemta-5.messagelabs.com id
+       9B/F4-02481-07036305; Thu, 23 Aug 2012 13:30:24 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-11.tower-182.messagelabs.com!1345728623!20268439!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTA0MjY=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 14275 invoked from network); 23 Aug 2012 13:30:24 -0000
+Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-11.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
+       23 Aug 2012 13:30:24 -0000
+X-IronPort-AV: E=Sophos;i="4.80,300,1344211200"; d="scan'208";a="14147767"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       23 Aug 2012 13:30:18 +0000
+Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0;
+       Thu, 23 Aug 2012 14:30:18 +0100
+Message-ID: <1345728617.12501.92.camel@zakaz.uk.xensource.com>
+From: Ian Campbell <Ian.Campbell@citrix.com>
+To: Julien Grall <julien.grall@citrix.com>
+Date: Thu, 23 Aug 2012 14:30:17 +0100
+In-Reply-To: <51efcbff92f713286b5839884769ef34ab0c39f7.1345552068.git.julien.grall@citrix.com>
+References: <cover.1345552068.git.julien.grall@citrix.com>
+       <51efcbff92f713286b5839884769ef34ab0c39f7.1345552068.git.julien.grall@citrix.com>
+Organization: Citrix Systems, Inc.
+X-Mailer: Evolution 3.4.3-1 
+MIME-Version: 1.0
+Cc: "christian.limpach@gmail.com" <christian.limpach@gmail.com>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
+       "qemu-devel@nongnu.org" <qemu-devel@nongnu.org>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
+Subject: Re: [Xen-devel] [XEN][RFC PATCH V2 12/17] xl: Add interface to
+ handle qemu disaggregation
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Wed, 2012-08-22 at 13:31 +0100, Julien Grall wrote:
+> This patch modifies libxl interface for qemu disaggregation.
+
+I'd rather see the interfaces changes in the same patch as the
+implementation of the new interfaces.
+
+> For the moment, due to some dependencies between devices, we
+> can't let the user choose which QEMU emulate a device.
+> 
+> Moreoever this patch adds an "id" field to nic interface.
+> It will be used in config file to specify which QEMU handle
+> the network card.
+
+Is domid+devid not sufficient to identify which nic?
+
+> A possible disaggregation is:
+>     - UI: Emulate graphic card, USB, keyboard, mouse, default devices
+>     (PIIX4, root bridge, ...)
+>     - IDE: Emulate disk
+>     - Serial: Emulate serial port
+>     - Audio: Emulate audio card
+>     - Net: Emulate one or more network cards, multiple QEMU can emulate
+>     different card. The emulated card is specified with its nic ID.
+> 
+> Signed-off-by: Julien Grall <julien.grall@citrix.com>
+> ---
+>  tools/libxl/libxl.h         |    3 +++
+>  tools/libxl/libxl_types.idl |   15 +++++++++++++++
+>  2 files changed, 18 insertions(+), 0 deletions(-)
+> 
+> diff --git a/tools/libxl/libxl.h b/tools/libxl/libxl.h
+> index c614d6f..71d4808 100644
+> --- a/tools/libxl/libxl.h
+> +++ b/tools/libxl/libxl.h
+> @@ -307,6 +307,7 @@ void libxl_cpuid_dispose(libxl_cpuid_policy_list *cpuid_list);
+>  #define LIBXL_PCI_FUNC_ALL (~0U)
+>  
+>  typedef uint32_t libxl_domid;
+> +typedef uint32_t libxl_dmid;
+>  
+>  /*
+>   * Formatting Enumerations.
+> @@ -478,12 +479,14 @@ typedef struct {
+>      libxl_domain_build_info b_info;
+>  
+>      int num_disks, num_nics, num_pcidevs, num_vfbs, num_vkbs;
+> +    int num_dms;
+>  
+>      libxl_device_disk *disks;
+>      libxl_device_nic *nics;
+>      libxl_device_pci *pcidevs;
+>      libxl_device_vfb *vfbs;
+>      libxl_device_vkb *vkbs;
+> +    libxl_dm *dms;
+>  
+>      libxl_action_on_shutdown on_poweroff;
+>      libxl_action_on_shutdown on_reboot;
+> diff --git a/tools/libxl/libxl_types.idl b/tools/libxl/libxl_types.idl
+> index daa8c79..36c802a 100644
+> --- a/tools/libxl/libxl_types.idl
+> +++ b/tools/libxl/libxl_types.idl
+> @@ -246,6 +246,20 @@ libxl_domain_sched_params = Struct("domain_sched_params",[
+>      ("extratime",    integer, {'init_val': 'LIBXL_DOMAIN_SCHED_PARAM_EXTRATIME_DEFAULT'}),
+>      ])
+>  
+> +libxl_dm_cap = Enumeration("dm_cap", [
+> +    (1, "UI"), # Emulate all UI + default device
+
+What does "default device" equate too?
+
+> +    (2, "IDE"), # Emulate IDE
+> +    (4, "SERIAL"), # Emulate Serial
+> +    (8, "AUDIO"), # Emulate audio
+> +    ])
+> +
+> +libxl_dm = Struct("dm", [
+> +    ("name",         string),
+> +    ("path",         string),
+> +    ("capabilities",   uint64),
+
+uint64 and not libxl_dm_cap?
+
+> +    ("vifs",         libxl_string_list),
+> +    ])
+> +
+>  libxl_domain_build_info = Struct("domain_build_info",[
+>      ("max_vcpus",       integer),
+>      ("avail_vcpus",     libxl_bitmap),
+> @@ -367,6 +381,7 @@ libxl_device_nic = Struct("device_nic", [
+>      ("nictype", libxl_nic_type),
+>      ("rate_bytes_per_interval", uint64),
+>      ("rate_interval_usecs", uint32),
+> +    ("id", string),
+>      ])
+>  
+>  libxl_device_pci = Struct("device_pci", [
+
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1345728948.12501.98.camel@zakaz.uk.xensource.com> b/config/examples/test/corpus/<1345728948.12501.98.camel@zakaz.uk.xensource.com>
new file mode 100644 (file)
index 0000000..6ad4ecd
--- /dev/null
@@ -0,0 +1,270 @@
+From xen-devel-bounces@lists.xen.org Thu Aug 23 14:40:48 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 23 Aug 2012 14:40:48 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T4XeN-0002O6-4L
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 23 Aug 2012 14:40:48 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T4XaK-0007eR-Ms; Thu, 23 Aug 2012 13:36:32 +0000
+Received: from mail27.messagelabs.com ([193.109.254.147])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1T4XaI-0007eM-Rv
+       for xen-devel@lists.xen.org; Thu, 23 Aug 2012 13:36:31 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-14.tower-27.messagelabs.com!1345728950!1678341!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTA0MjY=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 19572 invoked from network); 23 Aug 2012 13:35:50 -0000
+Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-14.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
+       23 Aug 2012 13:35:50 -0000
+X-IronPort-AV: E=Sophos;i="4.80,300,1344211200"; d="scan'208";a="14147920"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       23 Aug 2012 13:35:50 +0000
+Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0;
+       Thu, 23 Aug 2012 14:35:50 +0100
+Message-ID: <1345728948.12501.98.camel@zakaz.uk.xensource.com>
+From: Ian Campbell <Ian.Campbell@citrix.com>
+To: Julien Grall <julien.grall@citrix.com>
+Date: Thu, 23 Aug 2012 14:35:48 +0100
+In-Reply-To: <557fe87e4a6c0defdc6549e23e8e5e7b2ebb7a9f.1345552068.git.julien.grall@citrix.com>
+References: <cover.1345552068.git.julien.grall@citrix.com>
+       <557fe87e4a6c0defdc6549e23e8e5e7b2ebb7a9f.1345552068.git.julien.grall@citrix.com>
+Organization: Citrix Systems, Inc.
+X-Mailer: Evolution 3.4.3-1 
+MIME-Version: 1.0
+Cc: "christian.limpach@gmail.com" <christian.limpach@gmail.com>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
+       "qemu-devel@nongnu.org" <qemu-devel@nongnu.org>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD autolearn=unavailable version=3.3.1
+Subject: Re: [Xen-devel] [XEN][RFC PATCH V2 14/17] xl-parsing: Parse new
+ device_models option
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Wed, 2012-08-22 at 13:32 +0100, Julien Grall wrote:
+> Add new option "device_models". The user can specify the capability of the
+> QEMU (ui, vifs, ...). This option only works with QEMU upstream (qemu-xen).
+> 
+> For instance:
+> device_models= [ 'name=all,vifs=nic1', 'name=qvga,ui', 'name=qide,ide' ]
+
+Please can you patch docs/man/xl.cfg.pod.5 with a description of this
+syntax. Possibly just a stub referencing
+docs/man/xl-device-models.markdown in the same manner as
+xl-disk-configuration.txt, xl-numa-placement.markdown,
+xl-network-configuration.markdown etc.
+
+iirc you can give multiple vifs -- what does that syntax look like?
+
+I didn't ask before -- what does naming the dm give you? Is it just used
+for ui things like logging or can you cross reference this in some way?
+
+> Each device model can also take a path argument which override the default one.
+> It's usefull for debugging.
+
+      useful
+> 
+> Signed-off-by: Julien Grall <julien.grall@citrix.com>
+> ---
+>  tools/libxl/Makefile     |    2 +-
+>  tools/libxl/libxlu_dm.c  |   96 ++++++++++++++++++++++++++++++++++++++++++++++
+>  tools/libxl/libxlutil.h  |    5 ++
+>  tools/libxl/xl_cmdimpl.c |   29 +++++++++++++-
+>  4 files changed, 130 insertions(+), 2 deletions(-)
+>  create mode 100644 tools/libxl/libxlu_dm.c
+> 
+> diff --git a/tools/libxl/Makefile b/tools/libxl/Makefile
+> index 47fb110..2b58721 100644
+> --- a/tools/libxl/Makefile
+> +++ b/tools/libxl/Makefile
+> @@ -79,7 +79,7 @@ AUTOINCS= libxlu_cfg_y.h libxlu_cfg_l.h _libxl_list.h _paths.h \
+>  AUTOSRCS= libxlu_cfg_y.c libxlu_cfg_l.c
+>  AUTOSRCS += _libxl_save_msgs_callout.c _libxl_save_msgs_helper.c
+>  LIBXLU_OBJS = libxlu_cfg_y.o libxlu_cfg_l.o libxlu_cfg.o \
+> -    libxlu_disk_l.o libxlu_disk.o libxlu_vif.o libxlu_pci.o
+> +    libxlu_disk_l.o libxlu_disk.o libxlu_vif.o libxlu_pci.o libxlu_dm.o
+>  $(LIBXLU_OBJS): CFLAGS += $(CFLAGS_libxenctrl) # For xentoollog.h
+>  
+>  CLIENTS = xl testidl libxl-save-helper
+> diff --git a/tools/libxl/libxlu_dm.c b/tools/libxl/libxlu_dm.c
+> new file mode 100644
+> index 0000000..9f0a347
+> --- /dev/null
+> +++ b/tools/libxl/libxlu_dm.c
+> @@ -0,0 +1,96 @@
+> +#include "libxl_osdeps.h" /* must come before any other headers */
+> +#include <stdlib.h>
+> +#include "libxlu_internal.h"
+> +#include "libxlu_cfg_i.h"
+> +
+> +static void split_string_into_string_list(const char *str,
+> +                                          const char *delim,
+> +                                          libxl_string_list *psl)
+
+Is this a cut-n-paste of the one in xl_cmdimpl.c or did it change?
+
+Probably better to add this as a common utility function somewhere.
+
+> +{
+> [...]
+> +}
+> +
+> +int xlu_dm_parse(XLU_Config *cfg, const char *spec,
+> +                 libxl_dm *dm)
+> +{
+> +    char *buf = strdup(spec);
+> +    char *p, *p2;
+> +    int rc = 0;
+> +
+> +    p = strtok(buf, ",");
+> +    if (!p)
+> +        goto skip_dm;
+> +    do {
+> +        while (*p == ' ')
+> +            p++;
+> +        if ((p2 = strchr(p, '=')) == NULL) {
+> +            if (!strcmp(p, "ui"))
+
+libxl provides a libxl_BLAH_from_string for enums in the idl, which
+might be helpful here?
+
+> +                dm->capabilities |= LIBXL_DM_CAP_UI;
+> +            else if (!strcmp(p, "ide"))
+> +                dm->capabilities |= LIBXL_DM_CAP_IDE;
+> +            else if (!strcmp(p, "serial"))
+> +                dm->capabilities |= LIBXL_DM_CAP_SERIAL;
+> +            else if (!strcmp(p, "audio"))
+> +                dm->capabilities |= LIBXL_DM_CAP_AUDIO;
+> +        } else {
+> +            *p2 = '\0';
+> +            if (!strcmp(p, "name"))
+> +                dm->name = strdup(p2 + 1);
+> +            else if (!strcmp(p, "path"))
+> +                dm->path = strdup(p2 + 1);
+> +            else if (!strcmp(p, "vifs"))
+> +                split_string_into_string_list(p2 + 1, ";", &dm->vifs);
+> +       }
+> +    } while ((p = strtok(NULL, ",")) != NULL);
+> +
+> +    if (!dm->name && dm->path)
+> +    {
+> +        fprintf(stderr, "xl: Unable to parse device_deamon\n");
+> +        exit(-ERROR_FAIL);
+> +    }
+> +skip_dm:
+> +    free(buf);
+> +
+> +    return rc;
+> +}
+> diff --git a/tools/libxl/libxlutil.h b/tools/libxl/libxlutil.h
+> index 0333e55..db22715 100644
+> --- a/tools/libxl/libxlutil.h
+> +++ b/tools/libxl/libxlutil.h
+> @@ -93,6 +93,11 @@ int xlu_disk_parse(XLU_Config *cfg, int nspecs, const char *const *specs,
+>   */
+>  int xlu_pci_parse_bdf(XLU_Config *cfg, libxl_device_pci *pcidev, const char *str);
+>  
+> +/*
+> + * Daemon specification parsing.
+> + */
+> +int xlu_dm_parse(XLU_Config *cfg, const char *spec,
+> +                 libxl_dm *dm);
+>  
+>  /*
+>   * Vif rate parsing.
+> diff --git a/tools/libxl/xl_cmdimpl.c b/tools/libxl/xl_cmdimpl.c
+> index 138cd72..2a26fa4 100644
+> --- a/tools/libxl/xl_cmdimpl.c
+> +++ b/tools/libxl/xl_cmdimpl.c
+> @@ -561,7 +561,7 @@ static void parse_config_data(const char *config_source,
+>      const char *buf;
+>      long l;
+>      XLU_Config *config;
+> -    XLU_ConfigList *cpus, *vbds, *nics, *pcis, *cvfbs, *cpuids;
+> +    XLU_ConfigList *cpus, *vbds, *nics, *pcis, *cvfbs, *cpuids, *dms;
+>      int pci_power_mgmt = 0;
+>      int pci_msitranslate = 0;
+>      int pci_permissive = 0;
+> @@ -995,6 +995,9 @@ static void parse_config_data(const char *config_source,
+>                  } else if (!strcmp(p, "vifname")) {
+>                      free(nic->ifname);
+>                      nic->ifname = strdup(p2 + 1);
+> +                } else if (!strcmp(p, "id")) {
+> +                    free(nic->id);
+> +                    nic->id = strdup(p2 + 1);
+>                  } else if (!strcmp(p, "backend")) {
+>                      if(libxl_name_to_domid(ctx, (p2 + 1), &(nic->backend_domid))) {
+>                          fprintf(stderr, "Specified backend domain does not exist, defaulting to Dom0\n");
+> @@ -1249,6 +1252,30 @@ skip_vfb:
+>              }
+>          }
+>      }
+> +
+> +    d_config->num_dms = 0;
+> +    d_config->dms = NULL;
+> +
+> +    if (b_info->device_model_version == LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN
+> +        && !xlu_cfg_get_list (config, "device_models", &dms, 0, 0)) {
+> +        while ((buf = xlu_cfg_get_listitem (dms, d_config->num_dms)) != NULL) {
+> +            libxl_dm *dm;
+> +            size_t size = sizeof (libxl_dm) * (d_config->num_dms + 1);
+> +
+> +            d_config->dms = (libxl_dm *)realloc (d_config->dms, size);
+> +            if (!d_config->dms) {
+> +                fprintf(stderr, "Can't realloc d_config->dms\n");
+> +                exit (1);
+> +            }
+> +            dm = d_config->dms + d_config->num_dms;
+> +            libxl_dm_init (dm);
+> +            if (xlu_dm_parse(config, buf, dm)) {
+> +                exit (-ERROR_FAIL);
+> +            }
+> +            d_config->num_dms++;
+> +        }
+> +    }
+> +
+>  #define parse_extra_args(type)                                            \
+>      e = xlu_cfg_get_list_as_string_list(config, "device_model_args"#type, \
+>                                      &b_info->extra##type, 0);            \
+
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1345730172.12501.113.camel@zakaz.uk.xensource.com> b/config/examples/test/corpus/<1345730172.12501.113.camel@zakaz.uk.xensource.com>
new file mode 100644 (file)
index 0000000..2763c68
--- /dev/null
@@ -0,0 +1,308 @@
+From xen-devel-bounces@lists.xen.org Thu Aug 23 15:25:32 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 23 Aug 2012 15:25:32 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T4YLh-0002Z6-Ak
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 23 Aug 2012 15:25:32 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T4YIB-000239-KA; Thu, 23 Aug 2012 14:21:51 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1T4YI9-00022u-0L
+       for xen-devel@lists.xen.org; Thu, 23 Aug 2012 14:21:49 +0000
+Received: from [85.158.143.35:40308] by server-2.bemta-4.messagelabs.com id
+       4A/29-21239-C7C36305; Thu, 23 Aug 2012 14:21:48 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-12.tower-21.messagelabs.com!1345730174!12528634!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTA0MjY=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 4908 invoked from network); 23 Aug 2012 13:56:14 -0000
+Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-12.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
+       23 Aug 2012 13:56:14 -0000
+X-IronPort-AV: E=Sophos;i="4.80,300,1344211200"; d="scan'208";a="14148404"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       23 Aug 2012 13:56:13 +0000
+Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0;
+       Thu, 23 Aug 2012 14:56:13 +0100
+Message-ID: <1345730172.12501.113.camel@zakaz.uk.xensource.com>
+From: Ian Campbell <Ian.Campbell@citrix.com>
+To: Julien Grall <julien.grall@citrix.com>
+Date: Thu, 23 Aug 2012 14:56:12 +0100
+In-Reply-To: <9522ee398a1fd3cdce48cfe883b307336ae6674f.1345552068.git.julien.grall@citrix.com>
+References: <cover.1345552068.git.julien.grall@citrix.com>
+       <9522ee398a1fd3cdce48cfe883b307336ae6674f.1345552068.git.julien.grall@citrix.com>
+Organization: Citrix Systems, Inc.
+X-Mailer: Evolution 3.4.3-1 
+MIME-Version: 1.0
+Cc: "christian.limpach@gmail.com" <christian.limpach@gmail.com>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
+       "qemu-devel@nongnu.org" <qemu-devel@nongnu.org>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
+Subject: Re: [Xen-devel] [XEN][RFC PATCH V2 15/17] xl: support spawn/destroy
+ on multiple device model
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Wed, 2012-08-22 at 13:32 +0100, Julien Grall wrote:
+> Old configuration file is still working with qemu disaggregation.
+> Before to spawn any QEMU, the toolstack will fill correctly, if needed,
+> configuration structure.
+> 
+> For the moment, the toolstack spawns device models one by one.
+> 
+> Signed-off-by: Julien Grall <julien.grall@citrix.com>
+> ---
+>  tools/libxl/libxl.c          |   16 ++-
+>  tools/libxl/libxl_create.c   |  150 +++++++++++++-----
+>  tools/libxl/libxl_device.c   |    7 +-
+>  tools/libxl/libxl_dm.c       |  369 ++++++++++++++++++++++++++++++------------
+>  tools/libxl/libxl_dom.c      |    4 +-
+>  tools/libxl/libxl_internal.h |   36 +++--
+>  6 files changed, 421 insertions(+), 161 deletions(-)
+> 
+> diff --git a/tools/libxl/libxl.c b/tools/libxl/libxl.c
+> index 8ea3478..60718b6 100644
+> --- a/tools/libxl/libxl.c
+> +++ b/tools/libxl/libxl.c
+> @@ -1330,7 +1330,8 @@ static void stubdom_destroy_callback(libxl__egc *egc,
+>      }
+> 
+>      dds->stubdom_finished = 1;
+> -    savefile = libxl__device_model_savefile(gc, dis->domid);
+> +    /* FIXME: get dmid */
+> +    savefile = libxl__device_model_savefile(gc, dis->domid, 0);
+>      rc = libxl__remove_file(gc, savefile);
+>      /*
+>       * On suspend libxl__domain_save_device_model will have already
+> @@ -1423,10 +1424,8 @@ void libxl__destroy_domid(libxl__egc *egc, libxl__destroy_domid_state *dis)
+>          LIBXL__LOG_ERRNOVAL(ctx, LIBXL__LOG_ERROR, rc, "xc_domain_pause failed for %d", domid);
+>      }
+>      if (dm_present) {
+> -        if (libxl__destroy_device_model(gc, domid) < 0)
+> -            LIBXL__LOG(ctx, LIBXL__LOG_ERROR, "libxl__destroy_device_model failed for %d", domid);
+> -
+> -        libxl__qmp_cleanup(gc, domid);
+> +        if (libxl__destroy_device_models(gc, domid) < 0)
+> +            LIBXL__LOG(ctx, LIBXL__LOG_ERROR, "libxl__destroy_device_models failed for %d", domid);
+>      }
+>      dis->drs.ao = ao;
+>      dis->drs.domid = domid;
+> @@ -1725,6 +1724,13 @@ out:
+> 
+>  /******************************************************************************/
+> 
+> +int libxl__dm_setdefault(libxl__gc *gc, libxl_dm *dm)
+> +{
+> +    return 0;
+> +}
+> +
+> +/******************************************************************************/
+> +
+>  int libxl__device_disk_setdefault(libxl__gc *gc, libxl_device_disk *disk)
+>  {
+>      int rc;
+> diff --git a/tools/libxl/libxl_create.c b/tools/libxl/libxl_create.c
+> index 5f0d26f..7160c78 100644
+> --- a/tools/libxl/libxl_create.c
+> +++ b/tools/libxl/libxl_create.c
+> @@ -35,6 +35,10 @@ void libxl_domain_config_dispose(libxl_domain_config *d_config)
+>  {
+>      int i;
+> 
+> +    for (i=0; i<d_config->num_dms; i++)
+> +        libxl_dm_dispose(&d_config->dms[i]);
+> +    free(d_config->dms);
+
+We are adding libxl_FOO_list_free functions for new ones of these as we
+introduce new ones), can you do that for the dm type please.
+
+> +
+>      for (i=0; i<d_config->num_disks; i++)
+>          libxl_device_disk_dispose(&d_config->disks[i]);
+>      free(d_config->disks);
+> @@ -59,6 +63,50 @@ void libxl_domain_config_dispose(libxl_domain_config *d_config)
+>      libxl_domain_build_info_dispose(&d_config->b_info);
+>  }
+> 
+> +static int libxl__domain_config_setdefault(libxl__gc *gc,
+> +                                           libxl_domain_config *d_config)
+> +{
+> +    libxl_domain_build_info *b_info = &d_config->b_info;
+> +    uint64_t cap = 0;
+> +    int i = 0;
+> +    int ret = 0;
+> +    libxl_dm *default_dm = NULL;
+> +
+> +    if (b_info->device_model_version == LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN_TRADITIONAL
+> +        && (d_config->num_dms > 1))
+> +        return ERROR_INVAL;
+> +
+> +    if (!d_config->num_dms) {
+> +        d_config->dms = malloc(sizeof (*d_config->dms));
+
+You should use libxl__zalloc or libxl__calloc or something here with the
+NO_GC argument to get the expected error handling.
+> @@ -991,12 +1057,11 @@ static void domcreate_launch_dm(libxl__egc *egc, libxl__multidev *multidev,
+>          libxl__device_console_dispose(&console);
+> 
+>          if (need_qemu) {
+> -            dcs->dmss.dm.guest_domid = domid;
+> -            libxl__spawn_local_dm(egc, &dcs->dmss.dm);
+> +            assert(dcs->dmss);
+> +            domcreate_spawn_devmodel(egc, dcs, dcs->current_dmid);
+>              return;
+>          } else {
+> -            assert(!dcs->dmss.dm.guest_domid);
+> -            domcreate_devmodel_started(egc, &dcs->dmss.dm, 0);
+> +            assert(!dcs->dmss);
+
+Doesn't this stop progress in this case meaning we'll never get to the
+end of the async op?
+
+>              return;
+>          }
+>      }
+[..]
+> @@ -1044,7 +1044,8 @@ int libxl__wait_for_device_model(libxl__gc *gc,
+>                                   void *check_callback_userdata)
+>  {
+>      char *path;
+> -    path = libxl__sprintf(gc, "/local/domain/0/device-model/%d/state", domid);
+> +    path = libxl__sprintf(gc, "/local/domain/0/dms/%u/%u/state",
+> +                          domid, dmid);
+
+Isn't this control path shared with qemu? I'm not sure we can just
+change it like that? We need to at least retain compatibility with
+pre-disag qemus.
+
+>      return libxl__wait_for_offspring(gc, domid,
+>                                       LIBXL_DEVICE_MODEL_START_TIMEOUT,
+>                                       "Device Model", path, state, spawning,
+
+>  const char *libxl__domain_device_model(libxl__gc *gc,
+> -                                       const libxl_domain_build_info *info)
+> +                                       uint32_t dmid,
+> +                                       const libxl_domain_build_info *b_info)
+>  {
+>      libxl_ctx *ctx = libxl__gc_owner(gc);
+>      const char *dm;
+> +    libxl_domain_config *guest_config = CONTAINER_OF(b_info, *guest_config,
+> +                                                     b_info);
+> 
+> -    if (libxl_defbool_val(info->device_model_stubdomain))
+> +    if (libxl_defbool_val(guest_config->b_info.device_model_stubdomain))
+
+You just extracted guest_config from b_info but you still have the
+b_info point to hand. Why not use it? Likewise a few more times below.
+>  {
+> +    /**
+
+The ** implies some sort of automagic comments->doc parsing process
+which we don't have here.
+
+> +     * PCI device number. Before 3, we have IDE, ISA, SouthBridge and
+> +     * XEN PCI. Theses devices will be emulate in each QEMU, but only
+> +     * one QEMU (the one which emulates default device) will register
+> +     * these devices through Xen PCI hypercall.
+> +     */
+> +    static unsigned int bdf = 3;
+
+Do you mean const rather than static?
+
+Isn't this baking in some implementation detail from the current qemu
+version? What happens if it changes?
+
+> +
+>      libxl_ctx *ctx = libxl__gc_owner(gc);
+>      const libxl_domain_create_info *c_info = &guest_config->c_info;
+>      const libxl_domain_build_info *b_info = &guest_config->b_info;
+> +    const libxl_dm *dm_config = &guest_config->dms[dmid];
+>      const libxl_device_disk *disks = guest_config->disks;
+>      const libxl_device_nic *nics = guest_config->nics;
+>      const int num_disks = guest_config->num_disks;
+>      const int num_nics = guest_config->num_nics;
+> -    const libxl_vnc_info *vnc = libxl__dm_vnc(guest_config);
+> +    const libxl_vnc_info *vnc = libxl__dm_vnc(dmid, guest_config);
+>      const libxl_sdl_info *sdl = dm_sdl(guest_config);
+>      const char *keymap = dm_keymap(guest_config);
+>      flexarray_t *dm_args;
+>      int i;
+>      uint64_t ram_size;
+> +    uint32_t cap_ui = dm_config->capabilities & LIBXL_DM_CAP_UI;
+> +    uint32_t cap_ide = dm_config->capabilities & LIBXL_DM_CAP_IDE;
+> +    uint32_t cap_serial = dm_config->capabilities & LIBXL_DM_CAP_SERIAL;
+> +    uint32_t cap_audio = dm_config->capabilities & LIBXL_DM_CAP_AUDIO;
+
+->capabilities is defined as 64 bits, but you use 32 here, which happens
+to work if you know what the actual values of the enum are but whoever
+adds the 33rd capability will probably get it wrong.
+
+     bool cap_foo = !! (dm_....capabiltieis & LIBXL_DM_CAP_FOO)
+
+would probably work?
+
+> 
+>      dm_args = flexarray_make(16, 1);
+>      if (!dm_args)
+> @@ -348,11 +389,12 @@ static char ** libxl__build_device_model_args_new(libxl__gc *gc,
+>                        "-xen-domid",
+>                        libxl__sprintf(gc, "%d", guest_domid), NULL);
+> 
+> +    flexarray_append(dm_args, "-nodefaults");
+
+Does this not cause a change in behaviour other than what you've
+accounted for here?
+
+> @@ -528,65 +583,69 @@ static char ** libxl__build_device_model_args_new(libxl__gc *gc,
+>          abort();
+>      }
+> 
+> -    ram_size = libxl__sizekb_to_mb(b_info->max_memkb - b_info->video_memkb);
+> +    // Allocate ram space of 32Mo per previous device model to store rom
+
+What is this about?
+
+(also that Mo looks a bit odd in among all these mb's)
+
+Ian.
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1345751525.23624.58.camel@dagon.hellion.org.uk> b/config/examples/test/corpus/<1345751525.23624.58.camel@dagon.hellion.org.uk>
new file mode 100644 (file)
index 0000000..a34fae9
--- /dev/null
@@ -0,0 +1,136 @@
+From xen-devel-bounces@lists.xen.org Thu Aug 23 20:55:31 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 23 Aug 2012 20:55:31 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T4dV2-0003n6-0h
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 23 Aug 2012 20:55:31 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T4dRo-0005OH-Q8; Thu, 23 Aug 2012 19:52:08 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1T4dRn-0005OA-Is
+       for xen-devel@lists.xen.org; Thu, 23 Aug 2012 19:52:07 +0000
+Received: from [85.158.143.99:59772] by server-1.bemta-4.messagelabs.com id
+       AD/03-12504-6E986305; Thu, 23 Aug 2012 19:52:06 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-13.tower-216.messagelabs.com!1345751526!26647759!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTA0MjY=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 10437 invoked from network); 23 Aug 2012 19:52:06 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-13.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
+       23 Aug 2012 19:52:06 -0000
+X-IronPort-AV: E=Sophos;i="4.80,301,1344211200"; d="scan'208";a="14155361"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       23 Aug 2012 19:52:06 +0000
+Received: from [127.0.0.1] (10.80.16.67) by smtprelay.citrix.com
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0;
+       Thu, 23 Aug 2012 20:52:06 +0100
+Message-ID: <1345751525.23624.58.camel@dagon.hellion.org.uk>
+From: Ian Campbell <Ian.Campbell@citrix.com>
+To: Julien Grall <julien.grall@citrix.com>
+Date: Thu, 23 Aug 2012 20:52:05 +0100
+In-Reply-To: <503680C5.6070509@citrix.com>
+References: <cover.1345552068.git.julien.grall@citrix.com>
+       <fcf046ea782dda6cacb3bf11813bf1d16e531e6b.1345552068.git.julien.grall@citrix.com>
+       <1345728471.12501.90.camel@zakaz.uk.xensource.com>
+       <503680C5.6070509@citrix.com>
+Organization: Citrix Systems, Inc.
+X-Mailer: Evolution 3.4.3-1 
+MIME-Version: 1.0
+Cc: "christian.limpach@gmail.com" <christian.limpach@gmail.com>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
+       "qemu-devel@nongnu.org" <qemu-devel@nongnu.org>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [XEN][RFC PATCH V2 11/17] xc: modify save/restore
+ to support multiple device models
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Thu, 2012-08-23 at 20:13 +0100, Julien Grall wrote:
+> On 08/23/2012 02:27 PM, Ian Campbell wrote:
+> >
+> >> @@ -103,6 +103,9 @@ static ssize_t rdexact(xc_interface *xch, struct restore_ctx *ctx,
+> >>   #else
+> >>   #define RDEXACT read_exact
+> >>   #endif
+> >> +
+> >> +#define QEMUSIG_SIZE 21
+> >> +
+> >>   /*
+> >>   ** In the state file (or during transfer), all page-table pages are
+> >>   ** converted into a 'canonical' form where references to actual mfns
+> >> @@ -467,7 +522,7 @@ static int buffer_tail_hvm(xc_interface *xch, struct restore_ctx *ctx,
+> >>                              int vcpuextstate, uint32_t vcpuextstate_size)
+> >>   {
+> >>       uint8_t *tmp;
+> >> -    unsigned char qemusig[21];
+> >> +    unsigned char qemusig[QEMUSIG_SIZE + 1];
+> >>      
+> > An extra + 1 here?
+> >    
+> QEMUSIG_SIZE doesn't take into account the '\0'. So we need to add 1.
+> If an error occurred, without +1, the output log lost the last character.
+
+So this is just a bug fix for a pre-existing issue?
+
+> > [...]
+> >    
+> >> -    qemusig[20] = '\0';
+> >> +    qemusig[QEMUSIG_SIZE] = '\0';
+> >>      
+> > This is one bigger than it used to be now.
+> >
+> > Perhaps this is an unrelated bug fix (I haven't check the real length of
+> > the sig), in which case please can you split it out and submit
+> > separately?
+> >    
+> 
+> #define QEMU_SIGNATURE "DeviceModelRecord0002"
+> Just checked, the length seems to be 21. I will send a patch with
+> this change.
+
+Perhaps use either sizeof(QEMU_SIGNATURE) or strlen(QEMU_SIGNATURE)
+(depending on which semantics you want)?
+
+Ian.
+
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1345804516.12501.182.camel@zakaz.uk.xensource.com> b/config/examples/test/corpus/<1345804516.12501.182.camel@zakaz.uk.xensource.com>
new file mode 100644 (file)
index 0000000..462c646
--- /dev/null
@@ -0,0 +1,166 @@
+From xen-devel-bounces@lists.xen.org Fri Aug 24 11:40:30 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 24 Aug 2012 11:40:30 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T4rJT-00020K-Px
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 24 Aug 2012 11:40:30 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T4rFf-0002ME-Th; Fri, 24 Aug 2012 10:36:31 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1T4rFe-0002M7-Jy
+       for xen-devel@lists.xen.org; Fri, 24 Aug 2012 10:36:30 +0000
+Received: from [85.158.143.99:51126] by server-1.bemta-4.messagelabs.com id
+       29/5C-12504-D2957305; Fri, 24 Aug 2012 10:36:29 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-3.tower-216.messagelabs.com!1345804518!27163221!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTA2NTk=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 25622 invoked from network); 24 Aug 2012 10:35:19 -0000
+Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-3.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
+       24 Aug 2012 10:35:19 -0000
+X-IronPort-AV: E=Sophos;i="4.80,302,1344211200"; d="scan'208";a="14165881"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       24 Aug 2012 10:35:18 +0000
+Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0;
+       Fri, 24 Aug 2012 11:35:18 +0100
+Message-ID: <1345804516.12501.182.camel@zakaz.uk.xensource.com>
+From: Ian Campbell <Ian.Campbell@citrix.com>
+To: Julien Grall <julien.grall@citrix.com>
+Date: Fri, 24 Aug 2012 11:35:16 +0100
+In-Reply-To: <50375721.7080503@citrix.com>
+References: <cover.1345552068.git.julien.grall@citrix.com>
+       <fcf046ea782dda6cacb3bf11813bf1d16e531e6b.1345552068.git.julien.grall@citrix.com>
+       <1345728471.12501.90.camel@zakaz.uk.xensource.com>
+       <503680C5.6070509@citrix.com>
+       <1345751525.23624.58.camel@dagon.hellion.org.uk>
+       <50375721.7080503@citrix.com>
+Organization: Citrix Systems, Inc.
+X-Mailer: Evolution 3.4.3-1 
+MIME-Version: 1.0
+Cc: "christian.limpach@gmail.com" <christian.limpach@gmail.com>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
+       "qemu-devel@nongnu.org" <qemu-devel@nongnu.org>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
+Subject: Re: [Xen-devel] [XEN][RFC PATCH V2 11/17] xc: modify save/restore
+ to support multiple device models
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Fri, 2012-08-24 at 11:27 +0100, Julien Grall wrote:
+> On 08/23/2012 08:52 PM, Ian Campbell wrote:
+> > On Thu, 2012-08-23 at 20:13 +0100, Julien Grall wrote:
+> >    
+> >> On 08/23/2012 02:27 PM, Ian Campbell wrote:
+> >>      
+> >>>        
+> >>>> @@ -103,6 +103,9 @@ static ssize_t rdexact(xc_interface *xch, struct restore_ctx *ctx,
+> >>>>    #else
+> >>>>    #define RDEXACT read_exact
+> >>>>    #endif
+> >>>> +
+> >>>> +#define QEMUSIG_SIZE 21
+> >>>> +
+> >>>>    /*
+> >>>>    ** In the state file (or during transfer), all page-table pages are
+> >>>>    ** converted into a 'canonical' form where references to actual mfns
+> >>>> @@ -467,7 +522,7 @@ static int buffer_tail_hvm(xc_interface *xch, struct restore_ctx *ctx,
+> >>>>                               int vcpuextstate, uint32_t vcpuextstate_size)
+> >>>>    {
+> >>>>        uint8_t *tmp;
+> >>>> -    unsigned char qemusig[21];
+> >>>> +    unsigned char qemusig[QEMUSIG_SIZE + 1];
+> >>>>
+> >>>>          
+> >>> An extra + 1 here?
+> >>>
+> >>>        
+> >> QEMUSIG_SIZE doesn't take into account the '\0'. So we need to add 1.
+> >> If an error occurred, without +1, the output log lost the last character.
+> >>      
+> > So this is just a bug fix for a pre-existing issue?
+> >    
+> Yes.
+
+Can we get it as a separate change?
+
+> 
+> >>> [...]
+> >>>
+> >>>        
+> >>>> -    qemusig[20] = '\0';
+> >>>> +    qemusig[QEMUSIG_SIZE] = '\0';
+> >>>>
+> >>>>          
+> >>> This is one bigger than it used to be now.
+> >>>
+> >>> Perhaps this is an unrelated bug fix (I haven't check the real length of
+> >>> the sig), in which case please can you split it out and submit
+> >>> separately?
+> >>>
+> >>>        
+> >> #define QEMU_SIGNATURE "DeviceModelRecord0002"
+> >> Just checked, the length seems to be 21. I will send a patch with
+> >> this change.
+> >>      
+> > Perhaps use either sizeof(QEMU_SIGNATURE) or strlen(QEMU_SIGNATURE)
+> > (depending on which semantics you want)?
+> >    
+> Here, QEMU_SIZE needs to be define as strlen (QEMU_SIGNATURE),
+> but QEMU_SIGNATURE is not defined in libxc. It's defined
+> in libxl/libxl_internal.h.
+
+Oh, right, this again :-/
+
+> By the way, I'm wondering why QEMU save (libxl__domain_save_device_model)
+> is made in libxl and restore (dump_qemu) in libxc ?
+
+Mostly historical accident, we'd really like to sort this out one way or
+the other but untangling the protocol and the callbacks etc is a pretty
+big job.
+
+In the meantime perhaps libxc could provide a suitable "typedef char
+device_model_signature_t[21]"?
+
+Ian.
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1345813421.19419.11.camel@zakaz.uk.xensource.com> b/config/examples/test/corpus/<1345813421.19419.11.camel@zakaz.uk.xensource.com>
new file mode 100644 (file)
index 0000000..0d7dd16
--- /dev/null
@@ -0,0 +1,142 @@
+From xen-devel-bounces@lists.xen.org Fri Aug 24 14:07:51 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 24 Aug 2012 14:07:51 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T4tc4-0002ST-Ru
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 24 Aug 2012 14:07:51 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T4tYF-0007PG-AK; Fri, 24 Aug 2012 13:03:51 +0000
+Received: from mail27.messagelabs.com ([193.109.254.147])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1T4tYD-0007Ov-Iv
+       for xen-devel@lists.xen.org; Fri, 24 Aug 2012 13:03:49 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-3.tower-27.messagelabs.com!1345813423!8786838!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTA2NTk=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 24557 invoked from network); 24 Aug 2012 13:03:43 -0000
+Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-3.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
+       24 Aug 2012 13:03:43 -0000
+X-IronPort-AV: E=Sophos;i="4.80,304,1344211200"; d="scan'208";a="14168898"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       24 Aug 2012 13:03:43 +0000
+Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0;
+       Fri, 24 Aug 2012 14:03:43 +0100
+Message-ID: <1345813421.19419.11.camel@zakaz.uk.xensource.com>
+From: Ian Campbell <Ian.Campbell@citrix.com>
+To: Julien Grall <julien.grall@citrix.com>
+Date: Fri, 24 Aug 2012 14:03:41 +0100
+In-Reply-To: <503779F5.80508@citrix.com>
+References: <cover.1345552068.git.julien.grall@citrix.com>
+       <51efcbff92f713286b5839884769ef34ab0c39f7.1345552068.git.julien.grall@citrix.com>
+       <1345728617.12501.92.camel@zakaz.uk.xensource.com>
+       <503779F5.80508@citrix.com>
+Organization: Citrix Systems, Inc.
+X-Mailer: Evolution 3.4.3-1 
+MIME-Version: 1.0
+Cc: "christian.limpach@gmail.com" <christian.limpach@gmail.com>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
+       "qemu-devel@nongnu.org" <qemu-devel@nongnu.org>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [XEN][RFC PATCH V2 12/17] xl: Add interface to
+ handle qemu disaggregation
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Fri, 2012-08-24 at 13:56 +0100, Julien Grall wrote:
+> On 08/23/2012 02:30 PM, Ian Campbell wrote:
+> > On Wed, 2012-08-22 at 13:31 +0100, Julien Grall wrote:
+> >    
+> >> This patch modifies libxl interface for qemu disaggregation.
+> >>      
+> > I'd rather see the interfaces changes in the same patch as the
+> > implementation of the new interfaces.
+> >
+> >    
+> >> For the moment, due to some dependencies between devices, we
+> >> can't let the user choose which QEMU emulate a device.
+> >>
+> >> Moreoever this patch adds an "id" field to nic interface.
+> >> It will be used in config file to specify which QEMU handle
+> >> the network card.
+> >>      
+> > Is domid+devid not sufficient to identify which nic?
+> >    
+> Is the user can specify or find devid easily ?
+> I added "id" because, I would like that the user
+> can identify without any problem a network
+> interface.
+
+At the libxl level the libxl_device_nic struct has a devid in it.
+
+That's not to say that xl can't add a layer of naming and indirection on
+top.
+
+> >> @@ -246,6 +246,20 @@ libxl_domain_sched_params = Struct("domain_sched_params",[
+> >>       ("extratime",    integer, {'init_val': 'LIBXL_DOMAIN_SCHED_PARAM_EXTRATIME_DEFAULT'}),
+> >>       ])
+> >>
+> >> +libxl_dm_cap = Enumeration("dm_cap", [
+> >> +    (1, "UI"), # Emulate all UI + default device
+> >>      
+> > What does "default device" equate too?
+> >    
+> The following devices:
+>     - i440fx
+>     - piix3
+>     - piix4
+>     - dma
+>     - xen apic
+>     - xen platform
+
+So this is more like "CORE" than "UI"?
+
+Is there a reason why UI (which I guess means the VGA, spice and VFB
+devices?) are required to be in the same emulator as these?
+
+> >> +    (2, "IDE"), # Emulate IDE
+> >> +    (4, "SERIAL"), # Emulate Serial
+> >> +    (8, "AUDIO"), # Emulate audio
+> >> +    ])
+> >> +
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1345817370.19419.22.camel@zakaz.uk.xensource.com> b/config/examples/test/corpus/<1345817370.19419.22.camel@zakaz.uk.xensource.com>
new file mode 100644 (file)
index 0000000..d2292ff
--- /dev/null
@@ -0,0 +1,203 @@
+From xen-devel-bounces@lists.xen.org Fri Aug 24 19:09:31 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 24 Aug 2012 19:09:31 +0100
+Received: from offsite2.bytemark.co.uk ([85.17.170.78])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T4xsC-0000iY-Ot
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 24 Aug 2012 18:40:47 +0100
+Received: from [50.57.142.19] (helo=lists.xen.org)
+       by offsite2.bytemark.co.uk with esmtp (Exim 4.69)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T4ufx-0004rE-GP
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 24 Aug 2012 14:15:54 +0000
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T4uZr-0000eM-0U; Fri, 24 Aug 2012 14:09:35 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1T4uZp-0000eH-5p
+       for xen-devel@lists.xen.org; Fri, 24 Aug 2012 14:09:33 +0000
+Received: from [85.158.143.35:35150] by server-3.bemta-4.messagelabs.com id
+       5A/8B-08232-C1B87305; Fri, 24 Aug 2012 14:09:32 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-2.tower-21.messagelabs.com!1345817372!5055942!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTA2NTk=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 23222 invoked from network); 24 Aug 2012 14:09:32 -0000
+Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-2.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
+       24 Aug 2012 14:09:32 -0000
+X-IronPort-AV: E=Sophos;i="4.80,304,1344211200"; d="scan'208";a="14170460"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       24 Aug 2012 14:09:31 +0000
+Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0;
+       Fri, 24 Aug 2012 15:09:32 +0100
+Message-ID: <1345817370.19419.22.camel@zakaz.uk.xensource.com>
+From: Ian Campbell <Ian.Campbell@citrix.com>
+To: Julien Grall <julien.grall@citrix.com>
+Date: Fri, 24 Aug 2012 15:09:30 +0100
+In-Reply-To: <503786CF.40006@citrix.com>
+References: <cover.1345552068.git.julien.grall@citrix.com>
+       <9522ee398a1fd3cdce48cfe883b307336ae6674f.1345552068.git.julien.grall@citrix.com>
+       <1345730172.12501.113.camel@zakaz.uk.xensource.com>
+       <503786CF.40006@citrix.com>
+Organization: Citrix Systems, Inc.
+X-Mailer: Evolution 3.4.3-1 
+MIME-Version: 1.0
+Cc: "christian.limpach@gmail.com" <christian.limpach@gmail.com>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
+       "qemu-devel@nongnu.org" <qemu-devel@nongnu.org>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 85.17.170.78
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,UNPARSEABLE_RELAY
+       autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [XEN][RFC PATCH V2 15/17] xl: support spawn/destroy
+ on multiple device model
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Fri, 2012-08-24 at 14:51 +0100, Julien Grall wrote:
+> >> @@ -1044,7 +1044,8 @@ int libxl__wait_for_device_model(libxl__gc *gc,
+> >>                                    void *check_callback_userdata)
+> >>   {
+> >>       char *path;
+> >> -    path = libxl__sprintf(gc, "/local/domain/0/device-model/%d/state", domid);
+> >> +    path = libxl__sprintf(gc, "/local/domain/0/dms/%u/%u/state",
+> >> +                          domid, dmid);
+> >>      
+> > Isn't this control path shared with qemu? I'm not sure we can just
+> > change it like that? We need to at least retain compatibility with
+> > pre-disag qemus.
+> >
+> >    
+> Indeed, as we have multiple QEMUs for a same domain, we need
+> to have one control path by QEMU.
+> 
+> Pre-disag QEMUs cannot work with my changes inside the Xen.
+> Xen will not forward by default ioreq if there is no ioreq server.
+
+We might need to consider making disagg an opt in feature, with the
+default being to have as we do today.
+
+> >> +     * PCI device number. Before 3, we have IDE, ISA, SouthBridge and
+> >> +     * XEN PCI. Theses devices will be emulate in each QEMU, but only
+> >> +     * one QEMU (the one which emulates default device) will register
+> >> +     * these devices through Xen PCI hypercall.
+> >> +     */
+> >> +    static unsigned int bdf = 3;
+> >>      
+> > Do you mean const rather than static?
+> >
+> >    
+> No static. With QEMU disaggregation, the toolstack allocate
+> BDF incrementaly. QEMU is unable to know if a BDF is already
+> allocated in another QEMU.
+
+This is broken if the toolstack is building multiple domains, since the
+bdf will be preserved across each of them.
+
+You need to put this in some sort of data structure specific to this
+particular iteration of the builder code. We must surely have something
+suitable close to hand in this function. libxl__domain_build_state
+perhaps?
+
+A static variable in a library is almost always a mistake.
+
+> > Isn't this baking in some implementation detail from the current qemu
+> > version? What happens if it changes?
+> >    
+> 
+> I don't have another way for the moment. I would be happy,
+> if someone have a good solution.
+
+Could we at least make the assignments of the 3 prior BDFs explicit on
+the command line too?
+
+> >>       dm_args = flexarray_make(16, 1);
+> >>       if (!dm_args)
+> >> @@ -348,11 +389,12 @@ static char ** libxl__build_device_model_args_new(libxl__gc *gc,
+> >>                         "-xen-domid",
+> >>                         libxl__sprintf(gc, "%d", guest_domid), NULL);
+> >>
+> >> +    flexarray_append(dm_args, "-nodefaults");
+> >>      
+> > Does this not cause a change in behaviour other than what you've
+> > accounted for here?
+> >    
+>   By default QEMU emulates VGA card, and a network card. This options,
+> disabled it  and avoid to add "-net none".
+> I added it after a discussion on my first patch series.
+> https://lists.gnu.org/archive/html/qemu-devel/2012-03/msg04767.html
+
+OK. 
+
+> >> @@ -528,65 +583,69 @@ static char ** libxl__build_device_model_args_new(libxl__gc *gc,
+> >>           abort();
+> >>       }
+> >>
+> >> -    ram_size = libxl__sizekb_to_mb(b_info->max_memkb - b_info->video_memkb);
+> >> +    // Allocate ram space of 32Mo per previous device model to store rom
+> >>      
+> > What is this about?
+> >
+> > (also that Mo looks a bit odd in among all these mb's)
+> >
+> >    
+> It's space for ROM allocation, like vga, rtl8139 roms ...
+> Each QEMU can load ROM and memory, but the memory
+> allocator consider that it's alone. It starts to allocate
+> ROM space from the end of memory RAM.
+> 
+> It's a solution suggest by Stefano, it's avoid modification
+> in QEMU. As we don't know the number of ROM and their
+> size per QEMU, we chose a space of 32 Mo to be sure, but in
+> fine most of time memory is not allocated.
+
+"32Mo per previous device model" is the bit which struck me as odd. That
+means the first device model uses 32Mo, the second 64Mo, the third 96Mo
+etc?
+
+Aren't we already modifying qemu quite substantially to implement this
+functionality anyway? so why are we trying to avoid it in this one
+corner? Especially at the cost of doing something which on the face of
+it looks quite strange!
+
+Isn't space for the ROMs allocated by SeaBIOS as part of enumerating the
+PCI bus anyway? Or is this a different per-ROM allocation?
+
+Ian.
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1345819507.19419.29.camel@zakaz.uk.xensource.com> b/config/examples/test/corpus/<1345819507.19419.29.camel@zakaz.uk.xensource.com>
new file mode 100644 (file)
index 0000000..f09c9ac
--- /dev/null
@@ -0,0 +1,196 @@
+From xen-devel-bounces@lists.xen.org Fri Aug 24 18:39:33 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 24 Aug 2012 18:39:33 +0100
+Received: from offsite2.bytemark.co.uk ([85.17.170.78])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T4xp4-0000lk-Jv
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 24 Aug 2012 18:37:33 +0100
+Received: from [50.57.142.19] (helo=lists.xen.org)
+       by offsite2.bytemark.co.uk with esmtp (Exim 4.69)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T4vDi-0003UE-VF
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 24 Aug 2012 14:50:47 +0000
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T4v8L-00013q-HP; Fri, 24 Aug 2012 14:45:13 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1T4v8K-00013l-Hu
+       for xen-devel@lists.xen.org; Fri, 24 Aug 2012 14:45:12 +0000
+Received: from [85.158.138.51:50188] by server-11.bemta-3.messagelabs.com id
+       55/A0-23152-77397305; Fri, 24 Aug 2012 14:45:11 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-2.tower-174.messagelabs.com!1345819509!27839772!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTA2NTk=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 9483 invoked from network); 24 Aug 2012 14:45:09 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-2.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
+       24 Aug 2012 14:45:09 -0000
+X-IronPort-AV: E=Sophos;i="4.80,304,1344211200"; d="scan'208";a="14171200"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       24 Aug 2012 14:45:08 +0000
+Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0;
+       Fri, 24 Aug 2012 15:45:09 +0100
+Message-ID: <1345819507.19419.29.camel@zakaz.uk.xensource.com>
+From: Ian Campbell <Ian.Campbell@citrix.com>
+To: Julien Grall <julien.grall@citrix.com>
+Date: Fri, 24 Aug 2012 15:45:07 +0100
+In-Reply-To: <50379193.3020600@citrix.com>
+References: <cover.1345552068.git.julien.grall@citrix.com>
+       <9522ee398a1fd3cdce48cfe883b307336ae6674f.1345552068.git.julien.grall@citrix.com>
+       <1345730172.12501.113.camel@zakaz.uk.xensource.com>
+       <503786CF.40006@citrix.com>
+       <1345817370.19419.22.camel@zakaz.uk.xensource.com>
+       <50379193.3020600@citrix.com>
+Organization: Citrix Systems, Inc.
+X-Mailer: Evolution 3.4.3-1 
+MIME-Version: 1.0
+Cc: "christian.limpach@gmail.com" <christian.limpach@gmail.com>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
+       "qemu-devel@nongnu.org" <qemu-devel@nongnu.org>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 85.17.170.78
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,UNPARSEABLE_RELAY
+       autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [XEN][RFC PATCH V2 15/17] xl: support spawn/destroy
+ on multiple device model
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Fri, 2012-08-24 at 15:37 +0100, Julien Grall wrote:
+> In case of Xen, it's hard to have a compatibility. We can
+> still spawn only one QEMU, but ioreq handling will not
+> send an io request if no device models registered it.
+> There is no more default QEMU.
+
+This means we've broken existing qemu on a new hypervisor, which now
+that we have Xen support in upstream qemu is something we need to think
+about and decide if we are happy with that or not.
+
+Perhaps it is sufficient for this to be a compile time thing, i.e.
+detect if we are building against a disagg capable hypervisor or not.
+
+Or maybe it has to be a runtime thing with Xen only turning off the
+default QEMU when the first io req region is registered, or something
+like that.
+
+> >>> Isn't this baking in some implementation detail from the current qemu
+> >>> version? What happens if it changes?
+> >>>
+> >>>        
+> >> I don't have another way for the moment. I would be happy,
+> >> if someone have a good solution.
+> >>      
+> > Could we at least make the assignments of the 3 prior BDFs explicit on
+> > the command line too?
+> >    
+> I don't understand your question. Theses 3 priors BDFs can't
+> be modify via QEMU command line (or I don't know how).
+
+Could qemu be modified to allow this?
+
+> >>>> @@ -528,65 +583,69 @@ static char ** libxl__build_device_model_args_new(libxl__gc *gc,
+> >>>>            abort();
+> >>>>        }
+> >>>>
+> >>>> -    ram_size = libxl__sizekb_to_mb(b_info->max_memkb - b_info->video_memkb);
+> >>>> +    // Allocate ram space of 32Mo per previous device model to store rom
+> >>>>
+> >>>>          
+> >>> What is this about?
+> >>>
+> >>> (also that Mo looks a bit odd in among all these mb's)
+> >>>
+> >>>
+> >>>        
+> >> It's space for ROM allocation, like vga, rtl8139 roms ...
+> >> Each QEMU can load ROM and memory, but the memory
+> >> allocator consider that it's alone. It starts to allocate
+> >> ROM space from the end of memory RAM.
+> >>
+> >> It's a solution suggest by Stefano, it's avoid modification
+> >> in QEMU. As we don't know the number of ROM and their
+> >> size per QEMU, we chose a space of 32 Mo to be sure, but in
+> >> fine most of time memory is not allocated.
+> >>      
+> > "32Mo per previous device model" is the bit which struck me as odd. That
+> > means the first device model uses 32Mo, the second 64Mo, the third 96Mo
+> > etc?
+> >    
+> That means:
+>      - first QEMU can allocate ROM after ram_size + 0
+>      - second after ram_size + 32 mo
+>      - ...
+> 
+> It's a hack to avoid modification in QEMU memory allocator
+> (find_ram_offset exec.c in QEMU).
+
+Why don't we enhance the memory allocator instead of adding hacks?
+
+> > Aren't we already modifying qemu quite substantially to implement this
+> > functionality anyway? so why are we trying to avoid it in this one
+> > corner? Especially at the cost of doing something which on the face of
+> > it looks quite strange!
+> >
+> >    
+> It's not possible to made it in QEMU, otherwise QEMU need to
+> be spawn one by one. Indeed, the next QEMU need to know
+> what is the last 'address' used by the previous QEMU.
+
+Or each one needs to be told explicitly where to put its ROMs. Encoding
+a magic 32Mo*N in the interface is just too hacky.
+
+> I made a modification in this way, but it was abandoned. Indeed,
+> it required XenStore.
+> 
+> > Isn't space for the ROMs allocated by SeaBIOS as part of enumerating the
+> > PCI bus anyway? Or is this a different per-ROM allocation?
+> >    
+> It's the rom allocated via pci_add_option_rom in QEMU.
+> QEMU seems to store ROM in memory and then SeaBIOS
+> will copy it, in the right place.
+
+So the ROM binary (the content of the ROM_BAR) is stored in "guest"
+memory? That seems a bit odd to me, I'd have thought it would be stored
+in the host and provided on demand when the ROM BAR was accessed.
+
+Is there any scope for changing this behaviour?
+
+Ian.
+
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1346246116-29999-1-git-send-email-david.vrabel@citrix.com> b/config/examples/test/corpus/<1346246116-29999-1-git-send-email-david.vrabel@citrix.com>
new file mode 100644 (file)
index 0000000..50b9f7d
--- /dev/null
@@ -0,0 +1,102 @@
+From xen-devel-bounces@lists.xen.org Wed Aug 29 14:21:11 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 29 Aug 2012 14:21:11 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T6iCf-0007l7-FH
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 29 Aug 2012 14:21:11 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T6i7y-00069S-4Y; Wed, 29 Aug 2012 13:16:14 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <david.vrabel@citrix.com>) id 1T6i7x-00069N-6n
+       for xen-devel@lists.xensource.com; Wed, 29 Aug 2012 13:16:13 +0000
+Received: from [85.158.143.35:28458] by server-1.bemta-4.messagelabs.com id
+       07/2D-12504-C161E305; Wed, 29 Aug 2012 13:16:12 +0000
+X-Env-Sender: david.vrabel@citrix.com
+X-Msg-Ref: server-9.tower-21.messagelabs.com!1346246164!4696063!1
+X-Originating-IP: [66.165.176.63]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyNzQ5MjE=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 12336 invoked from network); 29 Aug 2012 13:16:09 -0000
+Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
+       by server-9.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
+       29 Aug 2012 13:16:09 -0000
+X-IronPort-AV: E=Sophos;i="4.80,334,1344211200"; d="scan'208";a="206535744"
+Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
+       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       29 Aug 2012 13:15:57 +0000
+Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
+       (10.13.107.66) with Microsoft SMTP Server id 8.3.279.1;
+       Wed, 29 Aug 2012 09:15:57 -0400
+Received: from qabil.uk.xensource.com ([10.80.2.76])   by
+       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
+       <david.vrabel@citrix.com>)      id 1T6i7g-0005ii-Da;
+       Wed, 29 Aug 2012 14:15:56 +0100
+From: David Vrabel <david.vrabel@citrix.com>
+To: xen-devel@lists.xensource.com
+Date: Wed, 29 Aug 2012 14:15:14 +0100
+Message-ID: <1346246116-29999-1-git-send-email-david.vrabel@citrix.com>
+X-Mailer: git-send-email 1.7.2.5
+MIME-Version: 1.0
+Cc: Andres Lagar-Cavilla <andres@gridcentric.ca>,
+       David Vrabel <david.vrabel@citrix.com>,
+       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: [Xen-devel] [PATCHv2 0/2] xen/privcmd: support for paged-out frames
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+This series is a straight forward-port of some functionality from
+classic kernels to support Xen hosts that do paging of guests.
+
+This isn't functionality the XenServer makes use of so I've not tested
+these with paging in use.
+
+Changes since v1:
+
+- Don't change PRIVCMD_MMAPBATCH (except to #define a constant for the
+  error).  It's broken and not really fixable sensibly and libxc will
+  use V2 if it is available.
+- Return -ENOENT if all failures were -ENOENT.
+- Clear arg->err on success (libxc expected this).
+
+I think this should probably get a "Tested-by" Andres or someone else
+who uses paging before being applied.
+
+David
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1346246116-29999-2-git-send-email-david.vrabel@citrix.com> b/config/examples/test/corpus/<1346246116-29999-2-git-send-email-david.vrabel@citrix.com>
new file mode 100644 (file)
index 0000000..c669ea5
--- /dev/null
@@ -0,0 +1,119 @@
+From xen-devel-bounces@lists.xen.org Wed Aug 29 14:21:14 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 29 Aug 2012 14:21:14 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T6iCi-0007l9-2G
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 29 Aug 2012 14:21:13 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T6i81-00069h-Gr; Wed, 29 Aug 2012 13:16:17 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <david.vrabel@citrix.com>) id 1T6i7z-00069Z-C4
+       for xen-devel@lists.xensource.com; Wed, 29 Aug 2012 13:16:15 +0000
+Received: from [85.158.143.35:28586] by server-3.bemta-4.messagelabs.com id
+       EA/43-08232-E161E305; Wed, 29 Aug 2012 13:16:14 +0000
+X-Env-Sender: david.vrabel@citrix.com
+X-Msg-Ref: server-9.tower-21.messagelabs.com!1346246164!4696063!2
+X-Originating-IP: [66.165.176.63]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyNzQ5MjE=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 12441 invoked from network); 29 Aug 2012 13:16:10 -0000
+Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
+       by server-9.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
+       29 Aug 2012 13:16:10 -0000
+X-IronPort-AV: E=Sophos;i="4.80,334,1344211200"; d="scan'208";a="206535745"
+Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
+       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       29 Aug 2012 13:15:57 +0000
+Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
+       (10.13.107.66) with Microsoft SMTP Server id 8.3.279.1;
+       Wed, 29 Aug 2012 09:15:57 -0400
+Received: from qabil.uk.xensource.com ([10.80.2.76])   by
+       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
+       <david.vrabel@citrix.com>)      id 1T6i7g-0005ii-FK;
+       Wed, 29 Aug 2012 14:15:56 +0100
+From: David Vrabel <david.vrabel@citrix.com>
+To: xen-devel@lists.xensource.com
+Date: Wed, 29 Aug 2012 14:15:15 +0100
+Message-ID: <1346246116-29999-2-git-send-email-david.vrabel@citrix.com>
+X-Mailer: git-send-email 1.7.2.5
+In-Reply-To: <1346246116-29999-1-git-send-email-david.vrabel@citrix.com>
+References: <1346246116-29999-1-git-send-email-david.vrabel@citrix.com>
+MIME-Version: 1.0
+Cc: Andres Lagar-Cavilla <andres@gridcentric.ca>,
+       David Vrabel <david.vrabel@citrix.com>,
+       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: [Xen-devel] [PATCH 1/2] xen/mm: return more precise error from
+       xen_remap_domain_range()
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+From: David Vrabel <david.vrabel@citrix.com>
+
+Callers of xen_remap_domain_range() need to know if the remap failed
+because frame is currently paged out.  So they can retry the remap
+later on.  Return -ENOENT in this case.
+
+This assumes that the error codes returned by Xen are a subset of
+those used by the kernel.  It is unclear if this is defined as part of
+the hypercall ABI.
+
+Signed-off-by: David Vrabel <david.vrabel@citrix.com>
+---
+ arch/x86/xen/mmu.c |    4 ++--
+ 1 files changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/arch/x86/xen/mmu.c b/arch/x86/xen/mmu.c
+index b65a761..fb187ea 100644
+--- a/arch/x86/xen/mmu.c
++++ b/arch/x86/xen/mmu.c
+@@ -2355,8 +2355,8 @@ int xen_remap_domain_mfn_range(struct vm_area_struct *vma,
+               if (err)
+                       goto out;
+-              err = -EFAULT;
+-              if (HYPERVISOR_mmu_update(mmu_update, batch, NULL, domid) < 0)
++              err = HYPERVISOR_mmu_update(mmu_update, batch, NULL, domid);
++              if (err < 0)
+                       goto out;
+               nr -= batch;
+-- 
+1.7.2.5
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1346246116-29999-3-git-send-email-david.vrabel@citrix.com> b/config/examples/test/corpus/<1346246116-29999-3-git-send-email-david.vrabel@citrix.com>
new file mode 100644 (file)
index 0000000..a5f5ec7
--- /dev/null
@@ -0,0 +1,283 @@
+From xen-devel-bounces@lists.xen.org Wed Aug 29 14:21:17 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 29 Aug 2012 14:21:17 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T6iCl-0007lB-Iw
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 29 Aug 2012 14:21:17 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T6i8B-0006AY-TO; Wed, 29 Aug 2012 13:16:27 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <david.vrabel@citrix.com>) id 1T6i89-0006AR-QT
+       for xen-devel@lists.xensource.com; Wed, 29 Aug 2012 13:16:26 +0000
+Received: from [85.158.143.35:29224] by server-1.bemta-4.messagelabs.com id
+       E0/9D-12504-9261E305; Wed, 29 Aug 2012 13:16:25 +0000
+X-Env-Sender: david.vrabel@citrix.com
+X-Msg-Ref: server-15.tower-21.messagelabs.com!1346246169!13924046!1
+X-Originating-IP: [66.165.176.63]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyNzQ5MjE=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 7930 invoked from network); 29 Aug 2012 13:16:11 -0000
+Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
+       by server-15.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
+       29 Aug 2012 13:16:11 -0000
+X-IronPort-AV: E=Sophos;i="4.80,334,1344211200"; d="scan'208";a="206535746"
+Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
+       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       29 Aug 2012 13:15:57 +0000
+Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
+       (10.13.107.66) with Microsoft SMTP Server id 8.3.279.1;
+       Wed, 29 Aug 2012 09:15:57 -0400
+Received: from qabil.uk.xensource.com ([10.80.2.76])   by
+       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
+       <david.vrabel@citrix.com>)      id 1T6i7g-0005ii-Ft;
+       Wed, 29 Aug 2012 14:15:56 +0100
+From: David Vrabel <david.vrabel@citrix.com>
+To: xen-devel@lists.xensource.com
+Date: Wed, 29 Aug 2012 14:15:16 +0100
+Message-ID: <1346246116-29999-3-git-send-email-david.vrabel@citrix.com>
+X-Mailer: git-send-email 1.7.2.5
+In-Reply-To: <1346246116-29999-1-git-send-email-david.vrabel@citrix.com>
+References: <1346246116-29999-1-git-send-email-david.vrabel@citrix.com>
+MIME-Version: 1.0
+Cc: Andres Lagar-Cavilla <andres@gridcentric.ca>,
+       David Vrabel <david.vrabel@citrix.com>,
+       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: [Xen-devel] [PATCH 2/2] xen/privcmd: add PRIVCMD_MMAPBATCH_V2 ioctl
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+From: David Vrabel <david.vrabel@citrix.com>
+
+PRIVCMD_MMAPBATCH_V2 extends PRIVCMD_MMAPBATCH with an additional
+field for reporting the error code for every frame that could not be
+mapped.  libxc prefers PRIVCMD_MMAPBATCH_V2 over PRIVCMD_MMAPBATCH.
+
+Signed-off-by: David Vrabel <david.vrabel@citrix.com>
+---
+ drivers/xen/privcmd.c |   78 +++++++++++++++++++++++++++++++++++++-----------
+ include/xen/privcmd.h |   21 ++++++++++++-
+ 2 files changed, 80 insertions(+), 19 deletions(-)
+
+diff --git a/drivers/xen/privcmd.c b/drivers/xen/privcmd.c
+index ccee0f1..ddd32cf 100644
+--- a/drivers/xen/privcmd.c
++++ b/drivers/xen/privcmd.c
+@@ -248,18 +248,23 @@ struct mmap_batch_state {
+       struct vm_area_struct *vma;
+       int err;
+-      xen_pfn_t __user *user;
++      xen_pfn_t __user *user_mfn;
++      int __user *user_err;
+ };
+ static int mmap_batch_fn(void *data, void *state)
+ {
+       xen_pfn_t *mfnp = data;
++      int *err = data;
+       struct mmap_batch_state *st = state;
++      int ret;
+-      if (xen_remap_domain_mfn_range(st->vma, st->va & PAGE_MASK, *mfnp, 1,
+-                                     st->vma->vm_page_prot, st->domain) < 0) {
+-              *mfnp |= 0xf0000000U;
+-              st->err++;
++      ret = xen_remap_domain_mfn_range(st->vma, st->va & PAGE_MASK, *mfnp, 1,
++                                       st->vma->vm_page_prot, st->domain);
++      if (ret < 0) {
++              *err = ret;
++              if (st->err == 0 || st->err == -ENOENT)
++                      st->err = ret;
+       }
+       st->va += PAGE_SIZE;
+@@ -268,18 +273,30 @@ static int mmap_batch_fn(void *data, void *state)
+ static int mmap_return_errors(void *data, void *state)
+ {
+-      xen_pfn_t *mfnp = data;
++      int *err = data;
+       struct mmap_batch_state *st = state;
++      int ret;
++
++      if (st->user_err)
++              return __put_user(*err, st->user_err++);
++      else {
++              xen_pfn_t mfn;
+-      return put_user(*mfnp, st->user++);
++              ret = __get_user(mfn, st->user_mfn);
++              if (ret < 0)
++                      return ret;
++
++              mfn |= PRIVCMD_MMAPBATCH_MFN_ERROR;
++              return __put_user(mfn, st->user_mfn++);
++      }
+ }
+ static struct vm_operations_struct privcmd_vm_ops;
+-static long privcmd_ioctl_mmap_batch(void __user *udata)
++static long privcmd_ioctl_mmap_batch(void __user *udata, int version)
+ {
+       int ret;
+-      struct privcmd_mmapbatch m;
++      struct privcmd_mmapbatch_v2 m;
+       struct mm_struct *mm = current->mm;
+       struct vm_area_struct *vma;
+       unsigned long nr_pages;
+@@ -289,15 +306,32 @@ static long privcmd_ioctl_mmap_batch(void __user *udata)
+       if (!xen_initial_domain())
+               return -EPERM;
+-      if (copy_from_user(&m, udata, sizeof(m)))
+-              return -EFAULT;
++      switch (version) {
++      case 1:
++              if (copy_from_user(&m, udata, sizeof(struct privcmd_mmapbatch)))
++                      return -EFAULT;
++              /* Returns per-frame error in m.arr. */
++              m.err = NULL;
++              if (!access_ok(VERIFY_WRITE, m.arr, m.num * sizeof(*m.arr)))
++                      return -EFAULT;
++              break;
++      case 2:
++              if (copy_from_user(&m, udata, sizeof(struct privcmd_mmapbatch_v2)))
++                      return -EFAULT;
++              /* Returns per-frame error code in m.err. */
++              if (!access_ok(VERIFY_WRITE, m.err, m.num * (sizeof(*m.err))))
++                      return -EFAULT;
++              break;
++      default:
++              return -EINVAL;
++      }
+       nr_pages = m.num;
+       if ((m.num <= 0) || (nr_pages > (LONG_MAX >> PAGE_SHIFT)))
+               return -EINVAL;
+       ret = gather_array(&pagelist, m.num, sizeof(xen_pfn_t),
+-                         m.arr);
++                         (xen_pfn_t *)m.arr);
+       if (ret || list_empty(&pagelist))
+               goto out;
+@@ -325,12 +359,16 @@ static long privcmd_ioctl_mmap_batch(void __user *udata)
+       up_write(&mm->mmap_sem);
+-      if (state.err > 0) {
+-              state.user = m.arr;
++      if (state.err) {
++              state.user_mfn = (xen_pfn_t *)m.arr;
++              state.user_err = m.err;
+               ret = traverse_pages(m.num, sizeof(xen_pfn_t),
+-                             &pagelist,
+-                             mmap_return_errors, &state);
+-      }
++                                   &pagelist,
++                                   mmap_return_errors, &state);
++              if (!ret)
++                      ret = state.err;
++      } else if (m.err)
++              __clear_user(m.err, m.num * sizeof(*m.err));
+ out:
+       free_page_list(&pagelist);
+@@ -354,7 +392,11 @@ static long privcmd_ioctl(struct file *file,
+               break;
+       case IOCTL_PRIVCMD_MMAPBATCH:
+-              ret = privcmd_ioctl_mmap_batch(udata);
++              ret = privcmd_ioctl_mmap_batch(udata, 1);
++              break;
++
++      case IOCTL_PRIVCMD_MMAPBATCH_V2:
++              ret = privcmd_ioctl_mmap_batch(udata, 2);
+               break;
+       default:
+diff --git a/include/xen/privcmd.h b/include/xen/privcmd.h
+index 17857fb..37e5255 100644
+--- a/include/xen/privcmd.h
++++ b/include/xen/privcmd.h
+@@ -59,13 +59,30 @@ struct privcmd_mmapbatch {
+       int num;     /* number of pages to populate */
+       domid_t dom; /* target domain */
+       __u64 addr;  /* virtual address */
+-      xen_pfn_t __user *arr; /* array of mfns - top nibble set on err */
++      xen_pfn_t __user *arr; /* array of mfns - or'd with
++                                PRIVCMD_MMAPBATCH_MFN_ERROR on err */
++};
++
++#define PRIVCMD_MMAPBATCH_MFN_ERROR 0xf0000000U
++
++struct privcmd_mmapbatch_v2 {
++      unsigned int num; /* number of pages to populate */
++      domid_t dom;      /* target domain */
++      __u64 addr;       /* virtual address */
++      const xen_pfn_t __user *arr; /* array of mfns */
++      int __user *err;  /* array of error codes */
+ };
+ /*
+  * @cmd: IOCTL_PRIVCMD_HYPERCALL
+  * @arg: &privcmd_hypercall_t
+  * Return: Value returned from execution of the specified hypercall.
++ *
++ * @cmd: IOCTL_PRIVCMD_MMAPBATCH_V2
++ * @arg: &struct privcmd_mmapbatch_v2
++ * Return: 0 if all pages were mapped successfully. -ENOENT if all
++ * failed mappings returned -ENOENT, otherwise the error code of the
++ * first failed mapping.
+  */
+ #define IOCTL_PRIVCMD_HYPERCALL                                       \
+       _IOC(_IOC_NONE, 'P', 0, sizeof(struct privcmd_hypercall))
+@@ -73,5 +90,7 @@ struct privcmd_mmapbatch {
+       _IOC(_IOC_NONE, 'P', 2, sizeof(struct privcmd_mmap))
+ #define IOCTL_PRIVCMD_MMAPBATCH                                       \
+       _IOC(_IOC_NONE, 'P', 3, sizeof(struct privcmd_mmapbatch))
++#define IOCTL_PRIVCMD_MMAPBATCH_V2                            \
++      _IOC(_IOC_NONE, 'P', 4, sizeof(struct privcmd_mmapbatch_v2))
+ #endif /* __LINUX_PUBLIC_PRIVCMD_H__ */
+-- 
+1.7.2.5
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1346257402.20019.9.camel@zakaz.uk.xensource.com> b/config/examples/test/corpus/<1346257402.20019.9.camel@zakaz.uk.xensource.com>
new file mode 100644 (file)
index 0000000..a7855ac
--- /dev/null
@@ -0,0 +1,121 @@
+From xen-devel-bounces@lists.xen.org Wed Aug 29 17:28:17 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 29 Aug 2012 17:28:17 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T6l7n-0008FS-0h
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 29 Aug 2012 17:28:17 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T6l3A-0000DE-Nf; Wed, 29 Aug 2012 16:23:28 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1T6l39-0000D8-9T
+       for xen-devel@lists.xensource.com; Wed, 29 Aug 2012 16:23:27 +0000
+Received: from [85.158.143.99:52708] by server-3.bemta-4.messagelabs.com id
+       47/CA-08232-EF14E305; Wed, 29 Aug 2012 16:23:26 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-2.tower-216.messagelabs.com!1346257404!22130028!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTA3MTY=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 30011 invoked from network); 29 Aug 2012 16:23:24 -0000
+Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-2.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
+       29 Aug 2012 16:23:24 -0000
+X-IronPort-AV: E=Sophos;i="4.80,335,1344211200"; d="scan'208";a="14254795"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       29 Aug 2012 16:23:23 +0000
+Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.279.1;
+       Wed, 29 Aug 2012 17:23:23 +0100
+Message-ID: <1346257402.20019.9.camel@zakaz.uk.xensource.com>
+From: Ian Campbell <Ian.Campbell@citrix.com>
+To: David Vrabel <david.vrabel@citrix.com>
+Date: Wed, 29 Aug 2012 17:23:22 +0100
+In-Reply-To: <1346246116-29999-1-git-send-email-david.vrabel@citrix.com>
+References: <1346246116-29999-1-git-send-email-david.vrabel@citrix.com>
+Organization: Citrix Systems, Inc.
+X-Mailer: Evolution 3.4.3-1 
+MIME-Version: 1.0
+Cc: Andres Lagar-Cavilla <andres@gridcentric.ca>,
+       "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
+       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCHv2 0/2] xen/privcmd: support for paged-out
+ frames
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Wed, 2012-08-29 at 14:15 +0100, David Vrabel wrote:
+> This series is a straight forward-port of some functionality from
+> classic kernels to support Xen hosts that do paging of guests.
+> 
+> This isn't functionality the XenServer makes use of so I've not tested
+> these with paging in use.
+> 
+> Changes since v1:
+> 
+> - Don't change PRIVCMD_MMAPBATCH (except to #define a constant for the
+>   error).  It's broken and not really fixable sensibly and libxc will
+>   use V2 if it is available.
+> - Return -ENOENT if all failures were -ENOENT.
+
+Is this behaviour a requirement from something?
+
+Usually hypercalls of this type return a global error only if something
+went wrong with the general mechanics of the hypercall (e.g. faults
+reading arguments etc) and leave reporting of the individual failures of
+subops to the op specific field, even if all the subops fail in the same
+way.
+
+Ian.
+
+> - Clear arg->err on success (libxc expected this).
+> 
+> I think this should probably get a "Tested-by" Andres or someone else
+> who uses paging before being applied.
+> 
+> David
+> 
+> 
+> _______________________________________________
+> Xen-devel mailing list
+> Xen-devel@lists.xen.org
+> http://lists.xen.org/xen-devel
+
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1346263520.6655.4.camel@dagon.hellion.org.uk> b/config/examples/test/corpus/<1346263520.6655.4.camel@dagon.hellion.org.uk>
new file mode 100644 (file)
index 0000000..57f7480
--- /dev/null
@@ -0,0 +1,130 @@
+From xen-devel-bounces@lists.xen.org Wed Aug 29 19:10:03 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 29 Aug 2012 19:10:03 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T6miG-00005j-7I
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 29 Aug 2012 19:10:03 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T6mdp-0001CR-G7; Wed, 29 Aug 2012 18:05:25 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1T6mdn-0001CH-Fy
+       for xen-devel@lists.xensource.com; Wed, 29 Aug 2012 18:05:23 +0000
+Received: from [85.158.143.35:14064] by server-1.bemta-4.messagelabs.com id
+       DB/1F-12504-2E95E305; Wed, 29 Aug 2012 18:05:22 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-3.tower-21.messagelabs.com!1346263521!13206934!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTA3MTY=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 12368 invoked from network); 29 Aug 2012 18:05:22 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-3.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
+       29 Aug 2012 18:05:22 -0000
+X-IronPort-AV: E=Sophos;i="4.80,335,1344211200"; d="scan'208";a="14256174"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       29 Aug 2012 18:05:21 +0000
+Received: from [127.0.0.1] (10.80.16.67) by smtprelay.citrix.com
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.279.1;
+       Wed, 29 Aug 2012 19:05:21 +0100
+Message-ID: <1346263520.6655.4.camel@dagon.hellion.org.uk>
+From: Ian Campbell <Ian.Campbell@citrix.com>
+To: David Vrabel <david.vrabel@citrix.com>
+Date: Wed, 29 Aug 2012 19:05:20 +0100
+In-Reply-To: <503E49BE.7080704@citrix.com>
+References: <1346246116-29999-1-git-send-email-david.vrabel@citrix.com>
+       <1346257402.20019.9.camel@zakaz.uk.xensource.com>
+       <503E49BE.7080704@citrix.com>
+Organization: Citrix Systems, Inc.
+X-Mailer: Evolution 3.4.3-1 
+MIME-Version: 1.0
+Cc: Andres Lagar-Cavilla <andres@gridcentric.ca>,
+       "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
+       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCHv2 0/2] xen/privcmd: support for paged-out
+ frames
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Wed, 2012-08-29 at 17:56 +0100, David Vrabel wrote:
+> On 29/08/12 17:23, Ian Campbell wrote:
+> > On Wed, 2012-08-29 at 14:15 +0100, David Vrabel wrote:
+> >> This series is a straight forward-port of some functionality from
+> >> classic kernels to support Xen hosts that do paging of guests.
+> >>
+> >> This isn't functionality the XenServer makes use of so I've not tested
+> >> these with paging in use.
+> >>
+> >> Changes since v1:
+> >>
+> >> - Don't change PRIVCMD_MMAPBATCH (except to #define a constant for the
+> >>   error).  It's broken and not really fixable sensibly and libxc will
+> >>   use V2 if it is available.
+> >> - Return -ENOENT if all failures were -ENOENT.
+> > 
+> > Is this behaviour a requirement from something?
+> 
+> It's the behaviour libxc is expecting.  It doesn't retry unless errno ==
+> ENOENT.
+
+Surely if that is the case you must return -ENOENT if *any* failure was
+-ENOENT? That seems to be what the linux-2.6.18-xen.hg implementation
+does.
+
+> > Usually hypercalls of this type return a global error only if something
+> > went wrong with the general mechanics of the hypercall (e.g. faults
+> > reading arguments etc) and leave reporting of the individual failures of
+> > subops to the op specific field, even if all the subops fail in the same
+> > way.
+> 
+> I didn't design this interface...
+
+The interface you described doesn't make any sense so I was trying to
+suggest a way in which you may have misunderstood the interface you were
+trying to implement by pointing out the common pattern. It turns out
+this interface doesn't follow that common pattern, but it's still
+different to what you described AFAICT.
+
+> Feel free to propose (and implement) an alternate MMAPBATCH_V3 interface.
+
+No thanks ;-)
+
+Ian.
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1346421542.27277.218.camel@zakaz.uk.xensource.com> b/config/examples/test/corpus/<1346421542.27277.218.camel@zakaz.uk.xensource.com>
new file mode 100644 (file)
index 0000000..aa00228
--- /dev/null
@@ -0,0 +1,112 @@
+From xen-devel-bounces@lists.xen.org Fri Aug 31 15:04:15 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 31 Aug 2012 15:04:15 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T7RpR-0006s9-8Z
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 31 Aug 2012 15:04:14 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T7Rka-0000ri-Au; Fri, 31 Aug 2012 13:59:08 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1T7RkY-0000rZ-GD
+       for xen-devel@lists.xen.org; Fri, 31 Aug 2012 13:59:06 +0000
+Received: from [85.158.143.35:31777] by server-3.bemta-4.messagelabs.com id
+       B3/AA-08232-923C0405; Fri, 31 Aug 2012 13:59:05 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-15.tower-21.messagelabs.com!1346421544!14289139!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTEyMzY=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 2135 invoked from network); 31 Aug 2012 13:59:05 -0000
+Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-15.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
+       31 Aug 2012 13:59:05 -0000
+X-IronPort-AV: E=Sophos;i="4.80,347,1344211200"; d="scan'208";a="14290535"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       31 Aug 2012 13:59:04 +0000
+Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.279.1;
+       Fri, 31 Aug 2012 14:59:04 +0100
+Message-ID: <1346421542.27277.218.camel@zakaz.uk.xensource.com>
+From: Ian Campbell <Ian.Campbell@citrix.com>
+To: Dieter Bloms <xensource.com@bloms.de>
+Date: Fri, 31 Aug 2012 14:59:02 +0100
+In-Reply-To: <20120814100704.GA19704@bloms.de>
+References: <1344935141.5926.6.camel@zakaz.uk.xensource.com>
+       <20120814100704.GA19704@bloms.de>
+Organization: Citrix Systems, Inc.
+X-Mailer: Evolution 3.4.3-1 
+MIME-Version: 1.0
+Cc: "xen-users@lists.xen.org" <xen-users@lists.xen.org>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [Xen-users] Xen 4.2 TODO (io and irq parameter are
+ not evaluated by xl)
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Tue, 2012-08-14 at 11:07 +0100, Dieter Bloms wrote:
+> Hi,
+> 
+> On Tue, Aug 14, Ian Campbell wrote:
+> 
+> > tools, blockers:
+> > 
+> >     * xl compatibility with xm:
+> > 
+> >         * No known issues
+> 
+> the parameter io and irq in domU config files are not evaluated by xl.
+> So it is not possible to passthrough a parallel port for my printer to
+> domU when I start the domU with xl command.
+> With xm I have no issue.
+
+Do you have a reference to the actual syntax you are using?
+
+As usual with xend this syntax appears to be mostly undocumented...
+
+http://wiki.xen.org/wiki/Xen_Configuration_File_Options seems to suggest
+that you can give the ioports multiple times, rather than the more usual
+approach of using an array. Whereas
+http://cmrg.fifthhorseman.net/wiki/xen seems to suggest that an array is
+how it is done. Perhaps the xen.org wiki is just badly worded and it is
+array based.
+
+Ian.
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1346425278.27277.224.camel@zakaz.uk.xensource.com> b/config/examples/test/corpus/<1346425278.27277.224.camel@zakaz.uk.xensource.com>
new file mode 100644 (file)
index 0000000..e958b68
--- /dev/null
@@ -0,0 +1,317 @@
+From xen-devel-bounces@lists.xen.org Fri Aug 31 16:05:04 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 31 Aug 2012 16:05:04 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T7SmI-00078E-2m
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 31 Aug 2012 16:05:04 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T7Siw-0003Rn-NM; Fri, 31 Aug 2012 15:01:30 +0000
+Received: from mail27.messagelabs.com ([193.109.254.147])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>)
+       id 1T7Siu-0003Qq-MD; Fri, 31 Aug 2012 15:01:28 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-8.tower-27.messagelabs.com!1346425280!8986924!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTEyMzY=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 11982 invoked from network); 31 Aug 2012 15:01:21 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-8.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
+       31 Aug 2012 15:01:21 -0000
+X-IronPort-AV: E=Sophos;i="4.80,347,1344211200"; d="scan'208";a="14292262"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       31 Aug 2012 15:01:19 +0000
+Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.279.1;
+       Fri, 31 Aug 2012 16:01:19 +0100
+Message-ID: <1346425278.27277.224.camel@zakaz.uk.xensource.com>
+From: Ian Campbell <Ian.Campbell@citrix.com>
+To: Dieter Bloms <xensource.com@bloms.de>
+Date: Fri, 31 Aug 2012 16:01:18 +0100
+In-Reply-To: <1346421542.27277.218.camel@zakaz.uk.xensource.com>
+References: <1344935141.5926.6.camel@zakaz.uk.xensource.com>
+       <20120814100704.GA19704@bloms.de>
+       <1346421542.27277.218.camel@zakaz.uk.xensource.com>
+Organization: Citrix Systems, Inc.
+X-Mailer: Evolution 3.4.3-1 
+MIME-Version: 1.0
+Cc: Ian Jackson <Ian.Jackson@eu.citrix.com>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [Xen-users] Xen 4.2 TODO (io and irq parameter are
+ not evaluated by xl)
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+User list to BCC now that we are talking patches etc.
+
+On Fri, 2012-08-31 at 14:59 +0100, Ian Campbell wrote:
+> On Tue, 2012-08-14 at 11:07 +0100, Dieter Bloms wrote:
+> > Hi,
+> > 
+> > On Tue, Aug 14, Ian Campbell wrote:
+> > 
+> > > tools, blockers:
+> > > 
+> > >     * xl compatibility with xm:
+> > > 
+> > >         * No known issues
+> > 
+> > the parameter io and irq in domU config files are not evaluated by xl.
+> > So it is not possible to passthrough a parallel port for my printer to
+> > domU when I start the domU with xl command.
+> > With xm I have no issue.
+> 
+> Do you have a reference to the actual syntax you are using?
+
+Nevermind, I went with the fifthhorseman described syntax, the other one
+isn't useful in python (since only the last would take effect) so it
+won't be what xm is parsing.
+
+Does this work for you? I only tested by observing the sets of
+ports/irqs which are allowed for the domain.
+
+I don't think this can break anything other than the new options
+themselves so I think this patch could be a candidate for 4.2.0.
+
+8<---------------------------------------
+
+# HG changeset patch
+# User Ian Campbell <ian.campbell@citrix.com>
+# Date 1346424882 -3600
+# Node ID d6b418e9e52579a004797781c343734afc244389
+# Parent  ccbee5bcb31b72706497725381f4e6836b9df657
+libxl/xl: implement support for guest iooprt and irq permissions.
+
+This is useful for passing legacy ISA devices (e.g. com ports,
+parallel ports) to guests.
+
+Supported syntax is as described in
+http://cmrg.fifthhorseman.net/wiki/xen#grantingaccesstoserialhardwaretoadomU
+
+I tested this using Xen's 'q' key handler which prints out the I/O
+port and IRQ ranges allowed for each domain. e.g.:
+
+(XEN) Rangesets belonging to domain 31:
+(XEN)     I/O Ports  { 2e8-2ef, 2f8-2ff }
+(XEN)     Interrupts { 3, 5-6 }
+
+Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+
+diff -r ccbee5bcb31b -r d6b418e9e525 docs/man/xl.cfg.pod.5
+--- a/docs/man/xl.cfg.pod.5    Fri Aug 31 12:03:55 2012 +0100
++++ b/docs/man/xl.cfg.pod.5    Fri Aug 31 15:54:42 2012 +0100
+@@ -402,6 +402,30 @@ for more information on the "permissive"
+ =back
++=item B<ioports=[ "IOPORT_RANGE", "IOPORT_RANGE", ... ]>
++
++=over 4
++
++Allow guest to access specific legacy I/O ports. Each B<IOPORT_RANGE>
++is given in hexadecimal and may either a span e.g. C<2f8-2ff>
++(inclusive) or a single I/O port C<2f8>.
++
++It is recommended to use this option only for trusted VMs under
++administrator control.
++
++=back
++
++=item B<irqs=[ NUMBER, NUMBER, ... ]>
++
++=over 4
++
++Allow a guest to access specific physical IRQs.
++
++It is recommended to use this option only for trusted VMs under
++administrator control.
++
++=back
++
+ =head2 Paravirtualised (PV) Guest Specific Options
+ The following options apply only to Paravirtual guests.
+diff -r ccbee5bcb31b -r d6b418e9e525 tools/libxl/libxl_create.c
+--- a/tools/libxl/libxl_create.c       Fri Aug 31 12:03:55 2012 +0100
++++ b/tools/libxl/libxl_create.c       Fri Aug 31 15:54:42 2012 +0100
+@@ -933,6 +933,36 @@ static void domcreate_launch_dm(libxl__e
+         LOG(ERROR, "unable to add disk devices");
+         goto error_out;
+     }
++
++    for (i = 0; i < d_config->b_info.num_ioports; i++) {
++        libxl_ioport_range *io = &d_config->b_info.ioports[i];
++
++        LOG(DEBUG, "dom%d ioports %"PRIx32"-%"PRIx32,
++            domid, io->first, io->first + io->number - 1);
++
++        ret = xc_domain_ioport_permission(CTX->xch, domid,
++                                          io->first, io->number, 1);
++        if ( ret<0 ){
++            LOGE(ERROR,
++                 "failed give dom%d access to ioports %"PRIx32"-%"PRIx32,
++                 domid, io->first, io->first + io->number - 1);
++            ret = ERROR_FAIL;
++        }
++    }
++
++    for (i = 0; i < d_config->b_info.num_irqs; i++) {
++        uint32_t irq = d_config->b_info.irqs[i];
++
++        LOG(DEBUG, "dom%d irq %"PRIx32, domid, irq);
++
++        ret = xc_domain_irq_permission(CTX->xch, domid, irq, 1);
++        if ( ret<0 ){
++            LOGE(ERROR,
++                 "failed give dom%d access to irq %"PRId32, domid, irq);
++            ret = ERROR_FAIL;
++        }
++    }
++
+     for (i = 0; i < d_config->num_nics; i++) {
+         /* We have to init the nic here, because we still haven't
+          * called libxl_device_nic_add at this point, but qemu needs
+diff -r ccbee5bcb31b -r d6b418e9e525 tools/libxl/libxl_types.idl
+--- a/tools/libxl/libxl_types.idl      Fri Aug 31 12:03:55 2012 +0100
++++ b/tools/libxl/libxl_types.idl      Fri Aug 31 15:54:42 2012 +0100
+@@ -135,6 +135,11 @@ libxl_vga_interface_type = Enumeration("
+ # Complex libxl types
+ #
++libxl_ioport_range = Struct("ioport_range", [
++    ("first", uint32),
++    ("number", uint32),
++    ])
++
+ libxl_vga_interface_info = Struct("vga_interface_info", [
+     ("kind",    libxl_vga_interface_type),
+     ])
+@@ -277,6 +282,9 @@ libxl_domain_build_info = Struct("domain
+     #  parameters for all type of scheduler
+     ("sched_params",     libxl_domain_sched_params),
++    ("ioports",          Array(libxl_ioport_range, "num_ioports")),
++    ("irqs",             Array(uint32, "num_irqs")),
++    
+     ("u", KeyedUnion(None, libxl_domain_type, "type",
+                 [("hvm", Struct(None, [("firmware",         string),
+                                        ("bios",             libxl_bios_type),
+diff -r ccbee5bcb31b -r d6b418e9e525 tools/libxl/xl_cmdimpl.c
+--- a/tools/libxl/xl_cmdimpl.c Fri Aug 31 12:03:55 2012 +0100
++++ b/tools/libxl/xl_cmdimpl.c Fri Aug 31 15:54:42 2012 +0100
+@@ -573,10 +573,12 @@ static void parse_config_data(const char
+     long l;
+     XLU_Config *config;
+     XLU_ConfigList *cpus, *vbds, *nics, *pcis, *cvfbs, *cpuids;
++    XLU_ConfigList *ioports, *irqs;
++    int num_ioports, num_irqs;
+     int pci_power_mgmt = 0;
+     int pci_msitranslate = 0;
+     int pci_permissive = 0;
+-    int e;
++    int i, e;
+     libxl_domain_create_info *c_info = &d_config->c_info;
+     libxl_domain_build_info *b_info = &d_config->b_info;
+@@ -919,6 +921,61 @@ static void parse_config_data(const char
+         abort();
+     }
++    if (!xlu_cfg_get_list(config, "ioports", &ioports, &num_ioports, 0)) {
++        b_info->num_ioports = num_ioports;
++        b_info->ioports = calloc(num_ioports, sizeof(*b_info->ioports));
++        for (i = 0; i < num_ioports; i++) {
++            const char *buf2;
++            char *ep;
++            uint32_t s, e;
++            buf = xlu_cfg_get_listitem (ioports, i);
++            if (!buf) {
++                fprintf(stderr,
++                        "xl: Unable to get element #%d in ioport list\n", i);
++                exit(1);
++            }
++            s = e = strtoul(buf, &ep, 16);
++            if (ep == buf) {
++                fprintf(stderr, "xl: Invalid argument parsing ioport: %s\n",
++                        buf);
++                exit(1);
++            }
++            if (*ep == '-') {
++                buf2 = ep + 1;
++                e = strtoul(buf2, &ep, 16);
++                if (ep == buf2 || s > e) {
++                    fprintf(stderr,
++                            "xl: Invalid argument parsion ioport: %s\n", buf);
++                    exit(1);
++                }
++            }
++            b_info->ioports[i].first = s;
++            b_info->ioports[i].number = e - s + 1;
++        }
++    }
++
++    if (!xlu_cfg_get_list(config, "irqs", &irqs, &num_irqs, 0)) {
++        b_info->num_irqs = num_irqs;
++        b_info->irqs = calloc(num_irqs, sizeof(*b_info->irqs));
++        for (i = 0; i < num_irqs; i++) {
++            char *ep;
++            uint32_t irq;
++            buf = xlu_cfg_get_listitem (irqs, i);
++            if (!buf) {
++                fprintf(stderr,
++                        "xl: Unable to get element %d in irq list\n", i);
++                exit(1);
++            }
++            irq = strtoul(buf, &ep, 10);
++            if (ep == buf) {
++                fprintf(stderr,
++                        "xl: Invalid argument parsing irq: %s\n", buf);
++                exit(1);
++            }
++            b_info->irqs[i] = irq;
++        }
++    }
++
+     if (!xlu_cfg_get_list (config, "disk", &vbds, 0, 0)) {
+         d_config->num_disks = 0;
+         d_config->disks = NULL;
+
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1346426619.27277.237.camel@zakaz.uk.xensource.com> b/config/examples/test/corpus/<1346426619.27277.237.camel@zakaz.uk.xensource.com>
new file mode 100644 (file)
index 0000000..8186a73
--- /dev/null
@@ -0,0 +1,135 @@
+From xen-devel-bounces@lists.xen.org Fri Aug 31 16:27:46 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 31 Aug 2012 16:27:46 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T7T8K-0007E6-8E
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 31 Aug 2012 16:27:46 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T7T4f-0004uc-Pt; Fri, 31 Aug 2012 15:23:57 +0000
+Received: from mail27.messagelabs.com ([193.109.254.147])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1T7T4e-0004uO-0I
+       for xen-devel@lists.xen.org; Fri, 31 Aug 2012 15:23:56 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-4.tower-27.messagelabs.com!1346426630!8553205!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTEyMzY=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 5706 invoked from network); 31 Aug 2012 15:23:50 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-4.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
+       31 Aug 2012 15:23:50 -0000
+X-IronPort-AV: E=Sophos;i="4.80,347,1344211200"; d="scan'208";a="14292879"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       31 Aug 2012 15:23:41 +0000
+Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.279.1;
+       Fri, 31 Aug 2012 16:23:41 +0100
+Message-ID: <1346426619.27277.237.camel@zakaz.uk.xensource.com>
+From: Ian Campbell <Ian.Campbell@citrix.com>
+To: Ian Jackson <Ian.Jackson@eu.citrix.com>
+Date: Fri, 31 Aug 2012 16:23:39 +0100
+In-Reply-To: <20544.54424.775548.66532@mariner.uk.xensource.com>
+References: <1344935141.5926.6.camel@zakaz.uk.xensource.com>
+       <20120814100704.GA19704@bloms.de>
+       <1346421542.27277.218.camel@zakaz.uk.xensource.com>
+       <1346425278.27277.224.camel@zakaz.uk.xensource.com>
+       <20544.54424.775548.66532@mariner.uk.xensource.com>
+Organization: Citrix Systems, Inc.
+X-Mailer: Evolution 3.4.3-1 
+MIME-Version: 1.0
+Cc: Dieter Bloms <xensource.com@bloms.de>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [Xen-users] Xen 4.2 TODO (io and irq parameter are
+ not evaluated by xl)
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Fri, 2012-08-31 at 16:13 +0100, Ian Jackson wrote:
+> Ian Campbell writes ("Re: [Xen-users] Xen 4.2 TODO (io and irq parameter are not evaluated by xl)"):
+> > libxl/xl: implement support for guest iooprt and irq permissions.
+> 
+> Most of this looks good, but:
+> 
+> ...                                       ("bios",             libxl_bios_type),
+> > +            buf = xlu_cfg_get_listitem (ioports, i);
+> > +            if (!buf) {
+> > +                fprintf(stderr,
+> > +                        "xl: Unable to get element #%d in ioport list\n", i);
+> > +                exit(1);
+> > +            }
+> > +            s = e = strtoul(buf, &ep, 16);
+> > +            if (ep == buf) {
+> > +                fprintf(stderr, "xl: Invalid argument parsing ioport: %s\n",
+> > +                        buf);
+> > +                exit(1);
+> > +            }
+> > +            if (*ep == '-') {
+> 
+> This code fails to properly handle (reject)
+>    - (*ep!=0 && *ep!='-')
+
+Oops, will fix.
+
+>    - value > LONG_MAX
+>    - INT_MAX < value <= LONG_MAX
+
+These all get checked inside the (eventual) hypercall. Or were you
+thinking of something else?
+
+BTW the types should be unsigned all the way down, unless I've screwed
+something up.
+
+>    - *ep2!=0
+
+Will fix.
+
+> 
+> > +            irq = strtoul(buf, &ep, 10);
+> 
+> Likewise.
+> 
+> I take it we're not worrying about missing malloc failure checks in
+> xl.
+
+Seems like we do elsewhere, so I might as well fix this.
+
+Ian.
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1346428292.27277.243.camel@zakaz.uk.xensource.com> b/config/examples/test/corpus/<1346428292.27277.243.camel@zakaz.uk.xensource.com>
new file mode 100644 (file)
index 0000000..2682283
--- /dev/null
@@ -0,0 +1,150 @@
+From xen-devel-bounces@lists.xen.org Fri Aug 31 16:55:26 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 31 Aug 2012 16:55:26 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T7TZ2-0007K8-5v
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 31 Aug 2012 16:55:26 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T7TVV-0005yj-I7; Fri, 31 Aug 2012 15:51:41 +0000
+Received: from mail27.messagelabs.com ([193.109.254.147])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1T7TVU-0005yJ-GT
+       for xen-devel@lists.xen.org; Fri, 31 Aug 2012 15:51:40 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-4.tower-27.messagelabs.com!1346428294!8557067!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTEyMzY=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 31224 invoked from network); 31 Aug 2012 15:51:34 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-4.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
+       31 Aug 2012 15:51:34 -0000
+X-IronPort-AV: E=Sophos;i="4.80,347,1344211200"; d="scan'208";a="14293650"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       31 Aug 2012 15:51:34 +0000
+Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.279.1;
+       Fri, 31 Aug 2012 16:51:34 +0100
+Message-ID: <1346428292.27277.243.camel@zakaz.uk.xensource.com>
+From: Ian Campbell <Ian.Campbell@citrix.com>
+To: Jan Beulich <JBeulich@suse.com>
+Date: Fri, 31 Aug 2012 16:51:32 +0100
+In-Reply-To: <5040F7140200007800097E91@nat28.tlf.novell.com>
+References: <1344935141.5926.6.camel@zakaz.uk.xensource.com>
+       <20120814100704.GA19704@bloms.de>
+       <1346421542.27277.218.camel@zakaz.uk.xensource.com>
+       <1346425278.27277.224.camel@zakaz.uk.xensource.com>
+       <5040F7140200007800097E91@nat28.tlf.novell.com>
+Organization: Citrix Systems, Inc.
+X-Mailer: Evolution 3.4.3-1 
+MIME-Version: 1.0
+Cc: Dieter Bloms <xensource.com@bloms.de>,
+       Ian Jackson <Ian.Jackson@eu.citrix.com>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [Xen-users] Xen 4.2 TODO (io and irq parameter are
+ not evaluated by xl)
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Fri, 2012-08-31 at 16:40 +0100, Jan Beulich wrote:
+> >>> On 31.08.12 at 17:01, Ian Campbell <Ian.Campbell@citrix.com> wrote:
+> > --- a/docs/man/xl.cfg.pod.5        Fri Aug 31 12:03:55 2012 +0100
+> > +++ b/docs/man/xl.cfg.pod.5        Fri Aug 31 15:54:42 2012 +0100
+> > @@ -402,6 +402,30 @@ for more information on the "permissive"
+> >  
+> >  =back
+> >  
+> > +=item B<ioports=[ "IOPORT_RANGE", "IOPORT_RANGE", ... ]>
+> 
+> Is this really with quotes, and requiring an array?
+
+I was mostly just following
+http://cmrg.fifthhorseman.net/wiki/xen#grantingaccesstoserialhardwaretoadomU
+which suggested that this is the xm syntax too.
+
+> > +
+> > +=over 4
+> > +
+> > +Allow guest to access specific legacy I/O ports. Each B<IOPORT_RANGE>
+> > +is given in hexadecimal and may either a span e.g. C<2f8-2ff>
+> > +(inclusive) or a single I/O port C<2f8>.
+> > +
+> > +It is recommended to use this option only for trusted VMs under
+> > +administrator control.
+> > +
+> > +=back
+> > +
+> > +=item B<irqs=[ NUMBER, NUMBER, ... ]>
+> 
+> Similarly here - is this really requiring an array? I ask because
+> I had to look at this just last week for a colleague, and what
+> we got out of inspection of examples/code was that a simple
+> number (and a simple range without quotes above) are
+> permitted too.
+
+I had a look in create.py and opts.py and didn't see that, I suppose I
+missed it.
+
+I could implement support for either an array or a simple string/number
+but it would complicate the code quite a bit. Is it really worth it?
+
+Ian.
+
+
+> 
+> Jan
+> 
+> > +
+> > +=over 4
+> > +
+> > +Allow a guest to access specific physical IRQs.
+> > +
+> > +It is recommended to use this option only for trusted VMs under
+> > +administrator control.
+> > +
+> > +=back
+> > +
+> >  =head2 Paravirtualised (PV) Guest Specific Options
+> >  
+> >  The following options apply only to Paravirtual guests.
+> 
+> 
+
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1346428909.27277.246.camel@zakaz.uk.xensource.com> b/config/examples/test/corpus/<1346428909.27277.246.camel@zakaz.uk.xensource.com>
new file mode 100644 (file)
index 0000000..f1cc259
--- /dev/null
@@ -0,0 +1,119 @@
+From xen-devel-bounces@lists.xen.org Fri Aug 31 17:05:25 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 31 Aug 2012 17:05:25 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T7Tih-0007Ne-Fr
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 31 Aug 2012 17:05:25 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T7TfP-0007I5-6W; Fri, 31 Aug 2012 16:01:55 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1T7TfM-0007HN-Vy
+       for xen-devel@lists.xen.org; Fri, 31 Aug 2012 16:01:53 +0000
+Received: from [85.158.138.51:44511] by server-5.bemta-3.messagelabs.com id
+       EC/AD-13133-0FFD0405; Fri, 31 Aug 2012 16:01:52 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-8.tower-174.messagelabs.com!1346428911!27910889!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTEyMzY=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 17907 invoked from network); 31 Aug 2012 16:01:51 -0000
+Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-8.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
+       31 Aug 2012 16:01:51 -0000
+X-IronPort-AV: E=Sophos;i="4.80,347,1344211200"; d="scan'208";a="14293913"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       31 Aug 2012 16:01:51 +0000
+Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.279.1;
+       Fri, 31 Aug 2012 17:01:51 +0100
+Message-ID: <1346428909.27277.246.camel@zakaz.uk.xensource.com>
+From: Ian Campbell <Ian.Campbell@citrix.com>
+To: Ian Jackson <Ian.Jackson@eu.citrix.com>
+Date: Fri, 31 Aug 2012 17:01:49 +0100
+In-Reply-To: <20544.57061.422450.821411@mariner.uk.xensource.com>
+References: <1344935141.5926.6.camel@zakaz.uk.xensource.com>
+       <20120814100704.GA19704@bloms.de>
+       <1346421542.27277.218.camel@zakaz.uk.xensource.com>
+       <1346425278.27277.224.camel@zakaz.uk.xensource.com>
+       <20544.54424.775548.66532@mariner.uk.xensource.com>
+       <1346426619.27277.237.camel@zakaz.uk.xensource.com>
+       <20544.57061.422450.821411@mariner.uk.xensource.com>
+Organization: Citrix Systems, Inc.
+X-Mailer: Evolution 3.4.3-1 
+MIME-Version: 1.0
+Cc: Dieter Bloms <xensource.com@bloms.de>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [Xen-users] Xen 4.2 TODO (io and irq parameter are
+ not evaluated by xl)
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Fri, 2012-08-31 at 16:57 +0100, Ian Jackson wrote:
+> Ian Campbell writes ("Re: [Xen-users] Xen 4.2 TODO (io and irq parameter are not evaluated by xl)"):
+> > On Fri, 2012-08-31 at 16:13 +0100, Ian Jackson wrote:
+> > > This code fails to properly handle (reject)
+> > >    - (*ep!=0 && *ep!='-')
+> > 
+> > Oops, will fix.
+> > 
+> > >    - value > LONG_MAX
+> > >    - INT_MAX < value <= LONG_MAX
+> > 
+> > These all get checked inside the (eventual) hypercall. Or were you
+> > thinking of something else?
+> 
+> Suppose buf contains "1100000055\0".
+> 
+> If a long is 32-bit, strtoul will return ULONG_MAX (0xffffffffUL)
+> setting errno to ERANGE.  Converting that to a 32-bit signed int will
+> do something implementation-defined (C99 6.3.1.3(3)) - in reality,
+> give -1.  Relying on this being rejected later seems poor practice.
+
+The target variable here is an unsigned 32-bit int though.
+
+> If a long is 64-bit and an int 32-bit, strtoul will return
+> 0x1100000055UL.  Converting that to a 32-bit int will again do
+> something implementation-defined - in reality, give 0x55.
+
+I've added checks for this and posted as V2.
+
+Ian.
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1346434547.5820.10.camel@dagon.hellion.org.uk> b/config/examples/test/corpus/<1346434547.5820.10.camel@dagon.hellion.org.uk>
new file mode 100644 (file)
index 0000000..3c75c99
--- /dev/null
@@ -0,0 +1,116 @@
+From xen-devel-bounces@lists.xen.org Fri Aug 31 18:39:36 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 31 Aug 2012 18:39:36 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T7VBs-0007hX-I8
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 31 Aug 2012 18:39:36 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T7V8J-00023C-CL; Fri, 31 Aug 2012 17:35:51 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1T7V8H-000234-NK
+       for xen-devel@lists.xen.org; Fri, 31 Aug 2012 17:35:49 +0000
+Received: from [85.158.139.83:12512] by server-4.bemta-5.messagelabs.com id
+       F8/1B-23042-5F5F0405; Fri, 31 Aug 2012 17:35:49 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-15.tower-182.messagelabs.com!1346434548!27880477!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTEyMzY=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 11562 invoked from network); 31 Aug 2012 17:35:48 -0000
+Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-15.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
+       31 Aug 2012 17:35:48 -0000
+X-IronPort-AV: E=Sophos;i="4.80,348,1344211200"; d="scan'208";a="14295337"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       31 Aug 2012 17:35:47 +0000
+Received: from [127.0.0.1] (10.80.16.67) by smtprelay.citrix.com
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.279.1;
+       Fri, 31 Aug 2012 18:35:47 +0100
+Message-ID: <1346434547.5820.10.camel@dagon.hellion.org.uk>
+From: Ian Campbell <Ian.Campbell@citrix.com>
+To: Kirk Allan <kallan@suse.com>
+Date: Fri, 31 Aug 2012 18:35:47 +0100
+In-Reply-To: <50409CE002000076000B3B44@novprvoes0310.provo.novell.com>
+References: <1344935141.5926.6.camel@zakaz.uk.xensource.com>
+       <20120814100704.GA19704@bloms.de>
+       <1346421542.27277.218.camel@zakaz.uk.xensource.com>
+       <1346425278.27277.224.camel@zakaz.uk.xensource.com>
+       <5040F7140200007800097E91@nat28.tlf.novell.com>
+       <1346428292.27277.243.camel@zakaz.uk.xensource.com>
+       <5040FB490200007800097ED2@nat28.tlf.novell.com>
+       <50409CE002000076000B3B44@novprvoes0310.provo.novell.com>
+Organization: Citrix Systems, Inc.
+X-Mailer: Evolution 3.4.3-1 
+MIME-Version: 1.0
+Cc: Charles Arnold <CARNOLD@suse.com>, Dieter Bloms <xensource.com@bloms.de>,
+       Ian Jackson <Ian.Jackson@eu.citrix.com>, Jan Beulich <JBeulich@suse.com>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [Xen-users] Xen 4.2 TODO (io and irq parameter are
+ not evaluated by xl)
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Fri, 2012-08-31 at 18:15 +0100, Kirk Allan wrote:
+
+> > Charles, Kirk, could you comment here?
+> 
+> In one of my Window's vm config files, I was able to get the vm to
+> boot using ioports=['3f8-3ff'].  My goal was to do serial debugging of
+> the Windows vm.  I also added irq=[4] to the config file.  However, I
+> was not able to actually get a debug session to work.  The physical
+> machine running windbg received a string from the vm which gave me
+> hope that it was working, but then it never received further data so
+> the vm eventually booted without being attached to the debugger.
+
+Thanks, the question was whether it would be useful to implement the
+       ioports = '3f8-3ff'
+       irq = 4
+syntax as well as the
+       ioports = ['3f8-3ff']
+       irq = [4]
+but it looks like you are actually using the array version anyway?
+
+I think I'd rather avoid implementing both options unless there is a
+strong reason to do so.
+
+Ian.
+
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1346663727.27277.255.camel@zakaz.uk.xensource.com> b/config/examples/test/corpus/<1346663727.27277.255.camel@zakaz.uk.xensource.com>
new file mode 100644 (file)
index 0000000..b4335c4
--- /dev/null
@@ -0,0 +1,126 @@
+From xen-devel-bounces@lists.xen.org Mon Sep 03 10:19:19 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Mon, 03 Sep 2012 10:19:19 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T8SoO-00008Z-OD
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Mon, 03 Sep 2012 10:19:19 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T8Skp-0005tq-7I; Mon, 03 Sep 2012 09:15:35 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1T8Skn-0005th-8t
+       for xen-devel@lists.xen.org; Mon, 03 Sep 2012 09:15:33 +0000
+Received: from [85.158.143.99:26841] by server-3.bemta-4.messagelabs.com id
+       04/F3-08232-43574405; Mon, 03 Sep 2012 09:15:32 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-15.tower-216.messagelabs.com!1346663730!28170160!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTEzODI=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 24515 invoked from network); 3 Sep 2012 09:15:31 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-15.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
+       3 Sep 2012 09:15:31 -0000
+X-IronPort-AV: E=Sophos;i="4.80,359,1344211200"; d="scan'208";a="14312168"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       03 Sep 2012 09:15:30 +0000
+Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.279.1; Mon, 3 Sep 2012
+       10:15:30 +0100
+Message-ID: <1346663727.27277.255.camel@zakaz.uk.xensource.com>
+From: Ian Campbell <Ian.Campbell@citrix.com>
+To: Jan Beulich <JBeulich@suse.com>
+Date: Mon, 3 Sep 2012 10:15:27 +0100
+In-Reply-To: <50447D7802000078000982B4@nat28.tlf.novell.com>
+References: <1344935141.5926.6.camel@zakaz.uk.xensource.com>
+       <20120814100704.GA19704@bloms.de>
+       <1346421542.27277.218.camel@zakaz.uk.xensource.com>
+       <1346425278.27277.224.camel@zakaz.uk.xensource.com>
+       <5040F7140200007800097E91@nat28.tlf.novell.com>
+       <1346428292.27277.243.camel@zakaz.uk.xensource.com>
+       <5040FB490200007800097ED2@nat28.tlf.novell.com>
+       <50409CE002000076000B3B44@novprvoes0310.provo.novell.com>
+       <1346434547.5820.10.camel@dagon.hellion.org.uk>
+       <50447D7802000078000982B4@nat28.tlf.novell.com>
+Organization: Citrix Systems, Inc.
+X-Mailer: Evolution 3.4.3-1 
+MIME-Version: 1.0
+Cc: Charles Arnold <CARNOLD@suse.com>, Kirk Allan <KALLAN@suse.com>,
+       DieterBloms <xensource.com@bloms.de>,
+       Ian Jackson <Ian.Jackson@eu.citrix.com>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [Xen-users] Xen 4.2 TODO (io and irq parameter are
+ not evaluated by xl)
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Mon, 2012-09-03 at 08:50 +0100, Jan Beulich wrote:
+> >>> On 31.08.12 at 19:59, Kirk Allan wrote:
+> >>> In one of my Window's vm config files, I was able to get the vm to
+> >>> boot using ioports=['3f8-3ff'].  My goal was to do serial debugging of
+> >>> the Windows vm.  I also added irq=[4] to the config file.  However, I
+> >>> was not able to actually get a debug session to work.  The physical
+> >>> machine running windbg received a string from the vm which gave me
+> >>> hope that it was working, but then it never received further data so
+> >>> the vm eventually booted without being attached to the debugger.
+> >> 
+> >> Thanks, the question was whether it would be useful to implement the
+> >>   ioports = '3f8-3ff'
+> >>   irq = 4
+> >> syntax as well as the
+> >>   ioports = ['3f8-3ff']
+> >>   irq = [4]
+> >> but it looks like you are actually using the array version anyway?
+> > 
+> > I first looked at this last week.  I found reference to both formats so I 
+> > tried both.  I was only able to get the ioports = ['3f8-3ff'] and irq = [4] 
+> > syntax to allow a vm to boot.
+> 
+> So Ian, I guess I got mislead by there being references to the
+> non-array format - no need to alter your patch then in any way.
+> 
+> Sorry for the noise, Jan
+
+No problem, it's a common problem when trying to figure out what xend
+does or doesn't do...
+
+Ian.
+
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1346663746.27277.256.camel@zakaz.uk.xensource.com> b/config/examples/test/corpus/<1346663746.27277.256.camel@zakaz.uk.xensource.com>
new file mode 100644 (file)
index 0000000..3b86d7f
--- /dev/null
@@ -0,0 +1,133 @@
+From xen-devel-bounces@lists.xen.org Mon Sep 03 10:19:58 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Mon, 03 Sep 2012 10:19:58 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T8Soy-000091-Ci
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Mon, 03 Sep 2012 10:19:58 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T8Sm3-0005yv-MO; Mon, 03 Sep 2012 09:16:51 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1T8Sm1-0005yj-JF
+       for xen-devel@lists.xen.org; Mon, 03 Sep 2012 09:16:49 +0000
+Received: from [85.158.143.99:49868] by server-3.bemta-4.messagelabs.com id
+       D0/27-08232-08574405; Mon, 03 Sep 2012 09:16:48 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-10.tower-216.messagelabs.com!1346663807!21799151!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTEzODI=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 27088 invoked from network); 3 Sep 2012 09:16:48 -0000
+Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-10.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
+       3 Sep 2012 09:16:48 -0000
+X-IronPort-AV: E=Sophos;i="4.80,359,1344211200"; d="scan'208";a="14312183"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       03 Sep 2012 09:15:47 +0000
+Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.279.1; Mon, 3 Sep 2012
+       10:15:47 +0100
+Message-ID: <1346663746.27277.256.camel@zakaz.uk.xensource.com>
+From: Ian Campbell <Ian.Campbell@citrix.com>
+To: Dieter Bloms <dieter@bloms.de>
+Date: Mon, 3 Sep 2012 10:15:46 +0100
+In-Reply-To: <20120831193746.GA13009@bloms.de>
+References: <1344935141.5926.6.camel@zakaz.uk.xensource.com>
+       <20120814100704.GA19704@bloms.de>
+       <1346421542.27277.218.camel@zakaz.uk.xensource.com>
+       <1346425278.27277.224.camel@zakaz.uk.xensource.com>
+       <5040F7140200007800097E91@nat28.tlf.novell.com>
+       <1346428292.27277.243.camel@zakaz.uk.xensource.com>
+       <5040FB490200007800097ED2@nat28.tlf.novell.com>
+       <50409CE002000076000B3B44@novprvoes0310.provo.novell.com>
+       <1346434547.5820.10.camel@dagon.hellion.org.uk>
+       <20120831193746.GA13009@bloms.de>
+Organization: Citrix Systems, Inc.
+X-Mailer: Evolution 3.4.3-1 
+MIME-Version: 1.0
+Cc: Charles Arnold <CARNOLD@suse.com>, Kirk Allan <kallan@suse.com>,
+       Dieter Bloms <xensource.com@bloms.de>, Ian
+       Jackson <Ian.Jackson@eu.citrix.com>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>, Jan
+       Beulich <JBeulich@suse.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [Xen-users] Xen 4.2 TODO (io and irq parameter are
+ not evaluated by xl)
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Fri, 2012-08-31 at 20:37 +0100, Dieter Bloms wrote:
+> Hi,
+> 
+> Ian, thank you for implementing this io and irq support.
+> 
+> On Fri, Aug 31, Ian Campbell wrote:
+> 
+> > On Fri, 2012-08-31 at 18:15 +0100, Kirk Allan wrote:
+> > 
+> > > > Charles, Kirk, could you comment here?
+> > > 
+> > > In one of my Window's vm config files, I was able to get the vm to
+> > > boot using ioports=['3f8-3ff'].  My goal was to do serial debugging of
+> > > the Windows vm.  I also added irq=[4] to the config file.  However, I
+> > > was not able to actually get a debug session to work.  The physical
+> > > machine running windbg received a string from the vm which gave me
+> > > hope that it was working, but then it never received further data so
+> > > the vm eventually booted without being attached to the debugger.
+> > 
+> > Thanks, the question was whether it would be useful to implement the
+> >    ioports = '3f8-3ff'
+> >    irq = 4
+> > syntax as well as the
+> >    ioports = ['3f8-3ff']
+> >    irq = [4]
+> > but it looks like you are actually using the array version anyway?
+> 
+> I use this syntax with xm:
+> 
+> ioports=['0378-037a']
+> irq=[5]
+> 
+> and it works good.
+
+Great, thanks for confirming.
+
+Ian.
+
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1346665586.25864.5.camel@zakaz.uk.xensource.com> b/config/examples/test/corpus/<1346665586.25864.5.camel@zakaz.uk.xensource.com>
new file mode 100644 (file)
index 0000000..f944bfd
--- /dev/null
@@ -0,0 +1,131 @@
+From xen-devel-bounces@lists.xen.org Mon Sep 03 10:49:51 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Mon, 03 Sep 2012 10:49:51 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T8THx-0000HF-3s
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Mon, 03 Sep 2012 10:49:51 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T8TEk-0007N7-MF; Mon, 03 Sep 2012 09:46:30 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1T8TEj-0007Mt-9E
+       for xen-devel@lists.xen.org; Mon, 03 Sep 2012 09:46:29 +0000
+Received: from [85.158.143.99:22461] by server-2.bemta-4.messagelabs.com id
+       77/AA-21239-47C74405; Mon, 03 Sep 2012 09:46:28 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-11.tower-216.messagelabs.com!1346665587!20661815!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTEzODI=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 21544 invoked from network); 3 Sep 2012 09:46:28 -0000
+Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-11.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
+       3 Sep 2012 09:46:28 -0000
+X-IronPort-AV: E=Sophos;i="4.80,359,1344211200"; d="scan'208";a="14312946"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       03 Sep 2012 09:46:27 +0000
+Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.279.1; Mon, 3 Sep 2012
+       10:46:27 +0100
+Message-ID: <1346665586.25864.5.camel@zakaz.uk.xensource.com>
+From: Ian Campbell <Ian.Campbell@citrix.com>
+To: Kirk Allan <kallan@suse.com>
+Date: Mon, 3 Sep 2012 10:46:26 +0100
+In-Reply-To: <5040A73502000076000B3B82@novprvoes0310.provo.novell.com>
+References: <1344935141.5926.6.camel@zakaz.uk.xensource.com>
+       <20120814100704.GA19704@bloms.de>
+       <1346421542.27277.218.camel@zakaz.uk.xensource.com>
+       <1346425278.27277.224.camel@zakaz.uk.xensource.com>
+       <5040F7140200007800097E91@nat28.tlf.novell.com>
+       <1346428292.27277.243.camel@zakaz.uk.xensource.com>
+       <5040FB490200007800097ED2@nat28.tlf.novell.com>
+       <50409CE002000076000B3B44@novprvoes0310.provo.novell.com>
+       <1346434547.5820.10.camel@dagon.hellion.org.uk>
+       <5040A73502000076000B3B82@novprvoes0310.provo.novell.com>
+Organization: Citrix Systems, Inc.
+X-Mailer: Evolution 3.4.3-1 
+MIME-Version: 1.0
+Cc: Charles Arnold <CARNOLD@suse.com>, DieterBloms <xensource.com@bloms.de>,
+       Ian Jackson <Ian.Jackson@eu.citrix.com>, Jan Beulich <JBeulich@suse.com>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [Xen-users] Xen 4.2 TODO (io and irq parameter are
+ not evaluated by xl)
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Fri, 2012-08-31 at 18:59 +0100, Kirk Allan wrote:
+> 
+> >>> On 8/31/2012 at 11:35 AM, in message
+> <1346434547.5820.10.camel@dagon.hellion.org.uk>, Ian Campbell
+> <Ian.Campbell@citrix.com> wrote: 
+> > On Fri, 2012-08-31 at 18:15 +0100, Kirk Allan wrote:
+> > 
+> >> > Charles, Kirk, could you comment here?
+> >> 
+> >> In one of my Window's vm config files, I was able to get the vm to
+> >> boot using ioports=['3f8-3ff'].  My goal was to do serial debugging of
+> >> the Windows vm.  I also added irq=[4] to the config file.  However, I
+> >> was not able to actually get a debug session to work.  The physical
+> >> machine running windbg received a string from the vm which gave me
+> >> hope that it was working, but then it never received further data so
+> >> the vm eventually booted without being attached to the debugger.
+> > 
+> > Thanks, the question was whether it would be useful to implement the
+> >    ioports = '3f8-3ff'
+> >    irq = 4
+> > syntax as well as the
+> >    ioports = ['3f8-3ff']
+> >    irq = [4]
+> > but it looks like you are actually using the array version anyway?
+> 
+> I first looked at this last week.  I found reference to both formats
+> so I tried both.  I was only able to get the ioports = ['3f8-3ff'] and
+> irq = [4] syntax to allow a vm to boot.
+
+Thanks for confirming.
+
+> > I think I'd rather avoid implementing both options unless there is a
+> > strong reason to do so.
+> 
+> For me, I don't have a strong reason to implement support for both ways.  
+
+I'll happily not bother then ;-)
+
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1346667053.25864.21.camel@zakaz.uk.xensource.com> b/config/examples/test/corpus/<1346667053.25864.21.camel@zakaz.uk.xensource.com>
new file mode 100644 (file)
index 0000000..baf1c43
--- /dev/null
@@ -0,0 +1,136 @@
+From xen-devel-bounces@lists.xen.org Mon Sep 03 11:15:52 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Mon, 03 Sep 2012 11:15:52 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T8Th4-0000N9-Gr
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Mon, 03 Sep 2012 11:15:52 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T8Tca-0007rV-S5; Mon, 03 Sep 2012 10:11:08 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1T8TcY-0007rQ-WC
+       for xen-devel@lists.xen.org; Mon, 03 Sep 2012 10:11:07 +0000
+Received: from [85.158.143.35:49467] by server-2.bemta-4.messagelabs.com id
+       93/3D-21239-A3284405; Mon, 03 Sep 2012 10:11:06 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-3.tower-21.messagelabs.com!1346667054!13822691!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTEzODI=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 31862 invoked from network); 3 Sep 2012 10:10:55 -0000
+Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-3.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
+       3 Sep 2012 10:10:55 -0000
+X-IronPort-AV: E=Sophos;i="4.80,359,1344211200"; d="scan'208";a="14313652"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       03 Sep 2012 10:10:54 +0000
+Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.279.1; Mon, 3 Sep 2012
+       11:10:54 +0100
+Message-ID: <1346667053.25864.21.camel@zakaz.uk.xensource.com>
+From: Ian Campbell <Ian.Campbell@citrix.com>
+To: Pasi =?ISO-8859-1?Q?K=E4rkk=E4inen?= <pasik@iki.fi>
+Date: Mon, 3 Sep 2012 11:10:53 +0100
+In-Reply-To: <20120902053549.GF8912@reaktio.net>
+References: <20120902053549.GF8912@reaktio.net>
+Organization: Citrix Systems, Inc.
+X-Mailer: Evolution 3.4.3-1 
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="utf-8"
+Content-Transfer-Encoding: base64
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH] xl.cfg: gfx_passthru documentation
+ improvements
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+T24gU3VuLCAyMDEyLTA5LTAyIGF0IDA2OjM1ICswMTAwLCBQYXNpIEvDpHJra8OkaW5lbiB3cm90
+ZToKPiBIZWxsbywKPiAKPiB4bC5jZmcucG9kLjUgZG9jdW1lbnRhdGlvbiBpbXByb3ZlbWVudHM6
+Cj4gCj4gLSBnZnhfcGFzc3RocnU6IERvY3VtZW50IGdmeF9wYXNzdGhydSBtYWtlcyB0aGUgR1BV
+IGJlY29tZSBwcmltYXJ5IGluIHRoZSBndWVzdAo+ICAgYW5kIG90aGVyIGdlbmVyaWMgaW5mbyBh
+Ym91dCBnZnhfcGFzc3RocnUuCj4gCj4gCj4gU2lnbmVkLW9mZi1ieTogUGFzaSBLw6Rya2vDpGlu
+ZW4gPHBhc2lrQGlraS5maT4KPiAtLS0gZG9jcy9tYW4veGwuY2ZnLnBvZC41Lm9yaWcxIDIwMTIt
+MDktMDIgMDc6MTY6MzkuMzE2NzgyMTU4ICswMzAwCj4gKysrIGRvY3MvbWFuL3hsLmNmZy5wb2Qu
+NSAgICAgICAyMDEyLTA5LTAyIDA4OjI2OjQwLjA4MTYzOTA4NyArMDMwMAo+IEBAIC05NjgsNyAr
+OTY4LDQzIEBACj4gIAo+ICA9aXRlbSBCPGdmeF9wYXNzdGhydT1CT09MRUFOPgo+ICAKPiAtRW5h
+YmxlIGdyYXBoaWNzIGRldmljZSBQQ0kgcGFzc3Rocm91Z2guIFhYWCB3aGljaCBkZXZpY2UgaXMg
+cGFzc2VkIHRocm91Z2ggPwo+ICtFbmFibGUgZ3JhcGhpY3MgZGV2aWNlIFBDSSBwYXNzdGhyb3Vn
+aC4gVGhpcyBvcHRpb24gbWFrZXMgdGhlIHBhc3N0aHJ1Cj4gK2dyYXBoaWNzIGNhcmQgYmVjb21l
+IHByaW1hcnkgZ3JhcGhpY3MgY2FyZCBpbiB0aGUgVk0sCgpUaGUgb3B0aW9uIGlzIHNsaWdodGx5
+IG1pc25hbWVkIHRoZW4gSSBndWVzcywgYSBiZXR0ZXIgbmFtZSB3b3VsZCBoYXZlCmJlZW4gZ2Z4
+X3Bhc3N0aHJ1X3ByaW1hcnk/IG9oIHdlbGwsIHdlIGFyZSBzdHVjayB3aXRoIGl0IG5vdy4KCihB
+bSBJIGFsb25lIGluIHRoaW5raW5nIHRoYXQgInRocnUiIGlzIGEgaG9ycmlibGUgYWx0ZXJuYXRp
+dmUgdG8KdGhyb3VnaD8pCgo+ICBzbyB0aGUgUWVtdSBlbXVsYXRlZCAKPiArZ3JhcGhpY3MgYWRh
+cHRlciBpcyBkaXNhYmxlZCwgYW5kIHRoZSBWTkMgY29uc29sZSBmb3IgdGhlIFZNIHdvbid0IGhh
+dmUKPiArYW55IGdyYXBoaWNzIG91dHB1dC4gQWxsIGdyYXBoaWNzIG91dHB1dCwgaW5jbHVkaW5n
+IGJvb3QgdGltZSBRZW11IEJJT1MKPiArbWVzc2FnZXMgZnJvbSB0aGUgVk0sIHdpbGwgZ28gdG8g
+dGhlIHBoeXNpY2FsIG91dHB1dHMgb2YgdGhlIHBhc3NlZCB0aHJ1Cj4gK3BoeXNpY2FsIGdyYXBo
+aWNzIGNhcmQuCj4gKwo+ICtHcmFwaGljcyBjYXJkIFBDSSBkZXZpY2UgdG8gcGFzc3RocnUgaXMg
+Y2hvc2VuIHdpdGggQjxwY2k+IG9wdGlvbiwgCj4gK2V4YWN0bHkgaW4gdGhlIHNhbWUgd2F5IGFz
+IG5vcm1hbCBYZW4gUENJIGRldmljZSBwYXNzdGhydS9hc3NpZ25tZW50IGlzIGRvbmUuIAo+ICtO
+b3RlIHRoYXQgZ2Z4X3Bhc3N0aHJ1IGRvZXNuJ3QgZG8gYW55IGtpbmQgb2Ygc2hhcmluZwo+ICtv
+ZiB0aGUgR1BVLCBzbyB5b3UgY2FuIG9ubHkgYXNzaWduIHRoZSBHUFUgdG8gb25lIHNpbmdsZSBW
+TSBhdCBhIHRpbWUuCj4gKwo+ICtnZnhfcGFzc3RocnUgYWxzbyBlbmFibGVzIHZhcmlvdXMgbGVn
+YWN5IFZHQSBtZW1vcnkgcmFuZ2VzLCBCQVJzLCBNTUlPcywgCj4gK2FuZCBpb3BvcnRzIHRvIGJl
+IHBhc3NlZCB0aHJ1IHRvIHRoZSBWTSwgc2luY2UgdGhvc2UgYXJlIHJlcXVpcmVkCj4gK2ZvciBj
+b3JyZWN0IG9wZXJhdGlvbiBvZiB0aGluZ3MgbGlrZSBWR0EgQklPUywgdGV4dCBtb2RlLCBWQkUs
+IGV0Yy4KPiArCj4gK0VuYWJsaW5nIGdmeF9wYXNzdGhydSBvcHRpb24gYWxzbyBjb3BpZXMgdGhl
+IHBoeXNpY2FsIGdyYXBoaWNzIGNhcmQgCj4gK3ZpZGVvIGJpb3MgdG8gdGhlIGd1ZXN0IG1lbW9y
+eSwgYW5kIGV4ZWN1dGVzIHRoZSB2YmlvcyBpbiB0aGUgZ3Vlc3QgCgoiQklPUyIgYW5kIChJIGV4
+cGVjdCkgIlZCSU9TIj8KCj4gK3RvIGdldCB0aGUgZ3JhcGhpY3MgY2FyZCBpbml0aWFsaXplZC4K
+PiArCj4gK01vc3QgZ3JhcGhpY3MgYWRhcHRlcnMgcmVxdWlyZSB2ZW5kb3Igc3BlY2lmaWMgdHdl
+YWtzIGZvciBwcm9wZXJseQo+ICt3b3JraW5nIGdyYXBoaWNzIHBhc3N0aHJ1LiBYZW4gY3VycmVu
+dGx5IGluY2x1ZGVzIG5lY2Vzc2FyeSB0d2Vha3MKPiArZm9yIEludGVsIElHRCAoSW50ZWdyYXRl
+ZCBHcmFwaGljcyBEZXZpY2UpIEdQVXMuICAKPiArCj4gK1N1cHBvcnQgZm9yIEFNRC9OdmlkaWEg
+Z2Z4X3Bhc3N0aHJ1IGlzIG5vdCB5ZXQgbWVyZ2VkIHRvIFhlbiwKPiArYnV0IHRoZXJlIGFyZSBv
+dXQtb2YtdHJlZSBwYXRjaGVzIGF2YWlsYWJsZS4KCklmIHRoZXJlIGlzIGEgY29tcHJlaGVuc2l2
+ZSBsaXN0IG9mIHN1cHBvcnRlZC9ub3Qtc3VwcG9ydGVkIGRldmljZXMgb24KdGhlIHdpa2kgdGhl
+biBJIHRoaW5rIGEgcmVmZXJlbmNlIGhlcmUgd291bGQgYmUgbW9yZSB1c2VmdWwgdGhhbiB0aGVz
+ZQp0d28gYnJpZWYgcGFyYWdyYXBocy4KCkluIHBhcnRpY3VsYXIgdGhlIHNlY29uZCBpc24ndCB2
+ZXJ5IHVzZWZ1bCB3aXRob3V0IGxpbmtzIGFuZCB0aG9zZSB0ZW5kCnRvIGJlY29tZSBvdXQgb2Yg
+ZGF0ZSBpbiBkb2NzIElNRSwgSSB3b3VsZCB0ZW5kIHRvIG9taXQgdGhpcyBmcm9tIGhlcmUKYW5k
+IGluc3RlYWQgaW5jbHVkZSB0aGVtIGluIHRoZSB3aWtpIHdoZXJlIHRoZXkgY2FuIGJlIGtlcHQg
+dXAgdG8gZGF0ZQoob3IgYmV0dGVyIHlldCBzb21lYm9keSBjb3VsZCBmaW5hbGx5IHN1Ym1pdCB0
+aGUgcGF0Y2hlcyBmb3IgaW5jbHVzaW9uKS4KCj4gK2dmeF9wYXNzdGhydSBpcyBjdXJyZW50bHkg
+b25seSBzdXBwb3J0ZWQgd2l0aCB0aGUgcWVtdS14ZW4tdHJhZGl0aW9uYWwKPiArZGV2aWNlLW1v
+ZGVsLiBVcHN0cmVhbSBxZW11LXhlbiBkZXZpY2UtbW9kZWwgY3VycmVudGx5IGRvZXNuJ3QgaGF2
+ZQo+ICtzdXBwb3J0IGZvciBnZnhfcGFzc3RocnUuCj4gKwo+ICtOb3RlIHRoYXQgc29tZSBncmFw
+aGljcyBhZGFwdGVycyAoQU1EL0FUSSBjYXJkcywgZm9yIGV4YW1wbGUpIGRvbid0Cj4gK25lY2Vz
+c2FyaWx5IHJlcXVpcmUgZ2Z4X3Bhc3N0aHJ1IG9wdGlvbiwgc28geW91IGNhbiB1c2UgdGhlIG5v
+cm1hbAo+ICtYZW4gUENJIHBhc3N0aHJ1IHRvIGFzc2lnbiB0aGUgZ3JhcGhpY3MgY2FyZCBhcyBh
+IHNlY29uZGFyeSBncmFwaGljcyBjYXJkCj4gK3RvIHRoZSBWTS4gUWVtdSBlbXVsYXRlZCBncmFw
+aGljcyBjYXJkIHN0YXlzIGFzIHRoZSBwcmltYXJ5IGdyYXBoaWNzIGNhcmQsIAo+ICthbmQgeW91
+IGdldCBWTkMgb3V0cHV0IGZyb20gdGhlIFFlbXUtZW11bGF0ZWQgcHJpbWFyeSBhZGFwdGVyLgo+
+ICsKPiAgCj4gID1pdGVtIEI8bm9taWdyYXRlPUJPT0xFQU4+Cj4gCgoKCl9fX19fX19fX19fX19f
+X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QK
+WGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cDovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==
+
diff --git a/config/examples/test/corpus/<1346834000.17325.4.camel@zakaz.uk.xensource.com> b/config/examples/test/corpus/<1346834000.17325.4.camel@zakaz.uk.xensource.com>
new file mode 100644 (file)
index 0000000..86e8419
--- /dev/null
@@ -0,0 +1,144 @@
+From xen-devel-bounces@lists.xen.org Wed Sep 05 09:39:23 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 05 Sep 2012 09:39:23 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T9B8l-0001jQ-06
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 05 Sep 2012 09:39:23 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T9B3A-0004ex-R5; Wed, 05 Sep 2012 08:33:28 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1T9B39-0004es-80
+       for xen-devel@lists.xen.org; Wed, 05 Sep 2012 08:33:27 +0000
+Received: from [85.158.138.51:11803] by server-9.bemta-3.messagelabs.com id
+       1E/41-15390-65E07405; Wed, 05 Sep 2012 08:33:26 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-7.tower-174.messagelabs.com!1346834002!19820524!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTE4NjM=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 21121 invoked from network); 5 Sep 2012 08:33:23 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-7.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
+       5 Sep 2012 08:33:23 -0000
+X-IronPort-AV: E=Sophos;i="4.80,372,1344211200"; d="scan'208";a="14350946"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       05 Sep 2012 08:33:22 +0000
+Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.279.1; Wed, 5 Sep 2012
+       09:33:22 +0100
+Message-ID: <1346834000.17325.4.camel@zakaz.uk.xensource.com>
+From: Ian Campbell <Ian.Campbell@citrix.com>
+To: Pasi =?ISO-8859-1?Q?K=E4rkk=E4inen?= <pasik@iki.fi>
+Date: Wed, 5 Sep 2012 09:33:20 +0100
+In-Reply-To: <20120904191229.GH8912@reaktio.net>
+References: <20120902053549.GF8912@reaktio.net>
+       <1346667053.25864.21.camel@zakaz.uk.xensource.com>
+       <20120904191229.GH8912@reaktio.net>
+Organization: Citrix Systems, Inc.
+X-Mailer: Evolution 3.4.3-1 
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="utf-8"
+Content-Transfer-Encoding: base64
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH] xl.cfg: gfx_passthru documentation
+ improvements
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+T24gVHVlLCAyMDEyLTA5LTA0IGF0IDIwOjEyICswMTAwLCBQYXNpIEvDpHJra8OkaW5lbiB3cm90
+ZToKPiBPbiBNb24sIFNlcCAwMywgMjAxMiBhdCAxMToxMDo1M0FNICswMTAwLCBJYW4gQ2FtcGJl
+bGwgd3JvdGU6Cj4gPiBPbiBTdW4sIDIwMTItMDktMDIgYXQgMDY6MzUgKzAxMDAsIFBhc2kgS8Ok
+cmtrw6RpbmVuIHdyb3RlOgo+ID4gPiBIZWxsbywKPiA+ID4gCj4gPiA+IHhsLmNmZy5wb2QuNSBk
+b2N1bWVudGF0aW9uIGltcHJvdmVtZW50czoKPiA+ID4gCj4gPiA+IC0gZ2Z4X3Bhc3N0aHJ1OiBE
+b2N1bWVudCBnZnhfcGFzc3RocnUgbWFrZXMgdGhlIEdQVSBiZWNvbWUgcHJpbWFyeSBpbiB0aGUg
+Z3Vlc3QKPiA+ID4gICBhbmQgb3RoZXIgZ2VuZXJpYyBpbmZvIGFib3V0IGdmeF9wYXNzdGhydS4K
+PiA+ID4gCj4gPiA+IAo+ID4gPiBTaWduZWQtb2ZmLWJ5OiBQYXNpIEvDpHJra8OkaW5lbiA8cGFz
+aWtAaWtpLmZpPgo+ID4gPiAtLS0gZG9jcy9tYW4veGwuY2ZnLnBvZC41Lm9yaWcxIDIwMTItMDkt
+MDIgMDc6MTY6MzkuMzE2NzgyMTU4ICswMzAwCj4gPiA+ICsrKyBkb2NzL21hbi94bC5jZmcucG9k
+LjUgICAgICAgMjAxMi0wOS0wMiAwODoyNjo0MC4wODE2MzkwODcgKzAzMDAKPiA+ID4gQEAgLTk2
+OCw3ICs5NjgsNDMgQEAKPiA+ID4gIAo+ID4gPiAgPWl0ZW0gQjxnZnhfcGFzc3RocnU9Qk9PTEVB
+Tj4KPiA+ID4gIAo+ID4gPiAtRW5hYmxlIGdyYXBoaWNzIGRldmljZSBQQ0kgcGFzc3Rocm91Z2gu
+IFhYWCB3aGljaCBkZXZpY2UgaXMgcGFzc2VkIHRocm91Z2ggPwo+ID4gPiArRW5hYmxlIGdyYXBo
+aWNzIGRldmljZSBQQ0kgcGFzc3Rocm91Z2guIFRoaXMgb3B0aW9uIG1ha2VzIHRoZSBwYXNzdGhy
+dQo+ID4gPiArZ3JhcGhpY3MgY2FyZCBiZWNvbWUgcHJpbWFyeSBncmFwaGljcyBjYXJkIGluIHRo
+ZSBWTSwKPiA+IAo+ID4gVGhlIG9wdGlvbiBpcyBzbGlnaHRseSBtaXNuYW1lZCB0aGVuIEkgZ3Vl
+c3MsIGEgYmV0dGVyIG5hbWUgd291bGQgaGF2ZQo+ID4gYmVlbiBnZnhfcGFzc3RocnVfcHJpbWFy
+eT8gb2ggd2VsbCwgd2UgYXJlIHN0dWNrIHdpdGggaXQgbm93Lgo+ID4gCj4gCj4gWWVhaC4uIEkg
+dGhpbmsgZWFybGllciBnZnhfcGFzc3RocnUgd2Fzbid0IGEgYm9vbGVhbiwgYnV0IGFuIGludGVn
+ZXIsIHRvIGNob29zZSB0aGUgbW9kZS4KCk9oLCBkbyB5b3UgaGFwcGVuIHRvIGtub3cgd2hhdCB0
+aGUgbWVhbmluZ3Mgd2VyZT8KCj4gPiA+ICBzbyB0aGUgUWVtdSBlbXVsYXRlZCAKPiA+ID4gK2dy
+YXBoaWNzIGFkYXB0ZXIgaXMgZGlzYWJsZWQsIGFuZCB0aGUgVk5DIGNvbnNvbGUgZm9yIHRoZSBW
+TSB3b24ndCBoYXZlCj4gPiA+ICthbnkgZ3JhcGhpY3Mgb3V0cHV0LiBBbGwgZ3JhcGhpY3Mgb3V0
+cHV0LCBpbmNsdWRpbmcgYm9vdCB0aW1lIFFlbXUgQklPUwo+ID4gPiArbWVzc2FnZXMgZnJvbSB0
+aGUgVk0sIHdpbGwgZ28gdG8gdGhlIHBoeXNpY2FsIG91dHB1dHMgb2YgdGhlIHBhc3NlZCB0aHJ1
+Cj4gPiA+ICtwaHlzaWNhbCBncmFwaGljcyBjYXJkLgo+ID4gPiArCj4gPiA+ICtHcmFwaGljcyBj
+YXJkIFBDSSBkZXZpY2UgdG8gcGFzc3RocnUgaXMgY2hvc2VuIHdpdGggQjxwY2k+IG9wdGlvbiwg
+Cj4gPiA+ICtleGFjdGx5IGluIHRoZSBzYW1lIHdheSBhcyBub3JtYWwgWGVuIFBDSSBkZXZpY2Ug
+cGFzc3RocnUvYXNzaWdubWVudCBpcyBkb25lLiAKPiA+ID4gK05vdGUgdGhhdCBnZnhfcGFzc3Ro
+cnUgZG9lc24ndCBkbyBhbnkga2luZCBvZiBzaGFyaW5nCj4gPiA+ICtvZiB0aGUgR1BVLCBzbyB5
+b3UgY2FuIG9ubHkgYXNzaWduIHRoZSBHUFUgdG8gb25lIHNpbmdsZSBWTSBhdCBhIHRpbWUuCj4g
+PiA+ICsKPiA+ID4gK2dmeF9wYXNzdGhydSBhbHNvIGVuYWJsZXMgdmFyaW91cyBsZWdhY3kgVkdB
+IG1lbW9yeSByYW5nZXMsIEJBUnMsIE1NSU9zLCAKPiA+ID4gK2FuZCBpb3BvcnRzIHRvIGJlIHBh
+c3NlZCB0aHJ1IHRvIHRoZSBWTSwgc2luY2UgdGhvc2UgYXJlIHJlcXVpcmVkCj4gPiA+ICtmb3Ig
+Y29ycmVjdCBvcGVyYXRpb24gb2YgdGhpbmdzIGxpa2UgVkdBIEJJT1MsIHRleHQgbW9kZSwgVkJF
+LCBldGMuCj4gPiA+ICsKPiA+ID4gK0VuYWJsaW5nIGdmeF9wYXNzdGhydSBvcHRpb24gYWxzbyBj
+b3BpZXMgdGhlIHBoeXNpY2FsIGdyYXBoaWNzIGNhcmQgCj4gPiA+ICt2aWRlbyBiaW9zIHRvIHRo
+ZSBndWVzdCBtZW1vcnksIGFuZCBleGVjdXRlcyB0aGUgdmJpb3MgaW4gdGhlIGd1ZXN0IAo+ID4g
+Cj4gPiAiQklPUyIgYW5kIChJIGV4cGVjdCkgIlZCSU9TIj8KPiA+IAo+IAo+IHZpZGVvIGJpb3Mg
+PT0gdmJpb3MsIG9yIGRpZCB5b3UgYXNrIHNvbWV0aGluZyBlbHNlPyAKCkkgd2FzIGp1c3QgY29t
+bWVudGluZyBvbiB0aGUgY2FwaXRhbGlzYXRpb24gZGlmZmVyaW5nIGZyb20gb3RoZXIKbWVudGlv
+bnMgb2YgdGhlIEJJT1MuCgo+ID4gPiArdG8gZ2V0IHRoZSBncmFwaGljcyBjYXJkIGluaXRpYWxp
+emVkLgo+ID4gPiArCj4gPiA+ICtNb3N0IGdyYXBoaWNzIGFkYXB0ZXJzIHJlcXVpcmUgdmVuZG9y
+IHNwZWNpZmljIHR3ZWFrcyBmb3IgcHJvcGVybHkKPiA+ID4gK3dvcmtpbmcgZ3JhcGhpY3MgcGFz
+c3RocnUuIFhlbiBjdXJyZW50bHkgaW5jbHVkZXMgbmVjZXNzYXJ5IHR3ZWFrcwo+ID4gPiArZm9y
+IEludGVsIElHRCAoSW50ZWdyYXRlZCBHcmFwaGljcyBEZXZpY2UpIEdQVXMuICAKPiA+ID4gKwo+
+ID4gPiArU3VwcG9ydCBmb3IgQU1EL052aWRpYSBnZnhfcGFzc3RocnUgaXMgbm90IHlldCBtZXJn
+ZWQgdG8gWGVuLAo+ID4gPiArYnV0IHRoZXJlIGFyZSBvdXQtb2YtdHJlZSBwYXRjaGVzIGF2YWls
+YWJsZS4KPiA+IAo+ID4gSWYgdGhlcmUgaXMgYSBjb21wcmVoZW5zaXZlIGxpc3Qgb2Ygc3VwcG9y
+dGVkL25vdC1zdXBwb3J0ZWQgZGV2aWNlcyBvbgo+ID4gdGhlIHdpa2kgdGhlbiBJIHRoaW5rIGEg
+cmVmZXJlbmNlIGhlcmUgd291bGQgYmUgbW9yZSB1c2VmdWwgdGhhbiB0aGVzZQo+ID4gdHdvIGJy
+aWVmIHBhcmFncmFwaHMuCj4gPiAKPiAKPiBXZSBoYXZlIGEgbGlzdCwgYnV0IGl0J3Mgbm90IHVw
+LXRvLWRhdGUgdW5mb3J0dW5hdGVseToKPiBodHRwOi8vd2lraS54ZW4ub3JnL3dpa2kvWGVuVkdB
+UGFzc3Rocm91Z2hUZXN0ZWRBZGFwdGVycwoKSSB0aGluayBpdCBpcyB3b3J0aCByZWZlcmVuY2lu
+ZyBpdCwgYW5kIHBlcmhhcHMgYWRkaW5nIGEgbm90ZSB0byB0aGUKcGFnZSBpdHNlbGYgcmVnYXJk
+aW5nIGl0cyBmcmVzaG5lc3MgKGFuZCB0aGVuIHdvcmtpbmcgdG8gaW1wcm92ZSBpdCwgb2YKY291
+cnNlIDstKSkKCj4gPiBJbiBwYXJ0aWN1bGFyIHRoZSBzZWNvbmQgaXNuJ3QgdmVyeSB1c2VmdWwg
+d2l0aG91dCBsaW5rcyBhbmQgdGhvc2UgdGVuZAo+ID4gdG8gYmVjb21lIG91dCBvZiBkYXRlIGlu
+IGRvY3MgSU1FLCBJIHdvdWxkIHRlbmQgdG8gb21pdCB0aGlzIGZyb20gaGVyZQo+ID4gYW5kIGlu
+c3RlYWQgaW5jbHVkZSB0aGVtIGluIHRoZSB3aWtpIHdoZXJlIHRoZXkgY2FuIGJlIGtlcHQgdXAg
+dG8gZGF0ZQo+ID4KPiAKPiBPay4gSSdsbCBmaXggdGhhdCwgYW5kIGFkZCBhIGxpbmsgdG86Cj4g
+aHR0cDovL3dpa2kueGVuLm9yZy93aWtpL1hlblZHQVBhc3N0aHJvdWdoCgpUaGFua3MuCgpJYW4u
+CgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRl
+dmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwOi8vbGlzdHMueGVu
+Lm9yZy94ZW4tZGV2ZWwK
+
diff --git a/config/examples/test/corpus/<1347272111.5305.52.camel@zakaz.uk.xensource.com> b/config/examples/test/corpus/<1347272111.5305.52.camel@zakaz.uk.xensource.com>
new file mode 100644 (file)
index 0000000..caca3b4
--- /dev/null
@@ -0,0 +1,135 @@
+From xen-devel-bounces@lists.xen.org Mon Sep 10 11:20:10 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Mon, 10 Sep 2012 11:20:10 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TB166-0007Gt-O6
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Mon, 10 Sep 2012 11:20:09 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TB11b-0007zS-H1; Mon, 10 Sep 2012 10:15:27 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1TB11a-0007zE-I5
+       for xen-devel@lists.xen.org; Mon, 10 Sep 2012 10:15:26 +0000
+Received: from [85.158.143.99:32545] by server-1.bemta-4.messagelabs.com id
+       70/EA-12504-DBDBD405; Mon, 10 Sep 2012 10:15:25 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-6.tower-216.messagelabs.com!1347272112!22469026!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTIyODk=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 21720 invoked from network); 10 Sep 2012 10:15:16 -0000
+Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-6.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
+       10 Sep 2012 10:15:16 -0000
+X-IronPort-AV: E=Sophos;i="4.80,396,1344211200"; d="scan'208";a="14438283"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       10 Sep 2012 10:15:12 +0000
+Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.279.1;
+       Mon, 10 Sep 2012 11:15:12 +0100
+Message-ID: <1347272111.5305.52.camel@zakaz.uk.xensource.com>
+From: Ian Campbell <Ian.Campbell@citrix.com>
+To: Pasi =?ISO-8859-1?Q?K=E4rkk=E4inen?= <pasik@iki.fi>
+Date: Mon, 10 Sep 2012 11:15:11 +0100
+In-Reply-To: <20120905200858.GP8912@reaktio.net>
+References: <20120902053549.GF8912@reaktio.net>
+       <1346667053.25864.21.camel@zakaz.uk.xensource.com>
+       <20120904191229.GH8912@reaktio.net>
+       <1346834000.17325.4.camel@zakaz.uk.xensource.com>
+       <20120905200858.GP8912@reaktio.net>
+Organization: Citrix Systems, Inc.
+X-Mailer: Evolution 3.4.3-1 
+MIME-Version: 1.0
+Cc: Jan Beulich <JBeulich@suse.com>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="utf-8"
+Content-Transfer-Encoding: base64
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.6 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH v2] xl.cfg: gfx_passthru documentation
+       improvements
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+T24gV2VkLCAyMDEyLTA5LTA1IGF0IDIxOjA4ICswMTAwLCBQYXNpIEvDpHJra8OkaW5lbiB3cm90
+ZToKPiBIZWxsbywKPiAKPiB2MjogYWRkcmVzcyByZXZpZXcgY29tbWVudHMuCj4gCj4geGwuY2Zn
+LnBvZC41IGRvY3VtZW50YXRpb24gaW1wcm92ZW1lbnRzOgo+IAo+IC0gZ2Z4X3Bhc3N0aHJ1OiBE
+b2N1bWVudCBnZnhfcGFzc3RocnUgbWFrZXMgdGhlIEdQVSBiZWNvbWUgcHJpbWFyeSBpbiB0aGUg
+Z3Vlc3QKPiAgIGFuZCBvdGhlciBnZW5lcmljIGluZm8gYWJvdXQgZ2Z4X3Bhc3N0aHJ1Lgo+IAo+
+IFNpZ25lZC1vZmYtYnk6IFBhc2kgS8Okcmtrw6RpbmVuIDxwYXNpa0Bpa2kuZmk+CgpBY2tlZCAr
+IGFwcGxpZWQsIHRoYW5rcy4KCkphbiwgSSB0aGluayB0aGlzIGRvY3Mgb25seSBjaGFuZ2UgY2Fu
+IGJlIGEgY2FuZGlkYXRlIGZvciA0LjIuMCwgYnV0IGlmCm5vdCB0aGVuIDQuMi4xIHdvdWxkIGJl
+IGdvb2QuIAoKSWFuLgoKPiAKPiAKPiAtLS0geGVuLXVuc3RhYmxlLmhnL2RvY3MvbWFuL3hsLmNm
+Zy5wb2QuNS5vcmlnICAyMDEyLTA5LTA1IDIyOjUxOjM5Ljc0NTEzNzA3NiArMDMwMAo+ICsrKyB4
+ZW4tdW5zdGFibGUuaGcvZG9jcy9tYW4veGwuY2ZnLnBvZC41ICAgICAgIDIwMTItMDktMDUgMjM6
+MDI6MjkuNzQ2MjAzMzY0ICswMzAwCj4gQEAgLTk5Miw3ICs5OTIsNDQgQEAKPiAKPiAgPWl0ZW0g
+QjxnZnhfcGFzc3RocnU9Qk9PTEVBTj4KPiAKPiAtRW5hYmxlIGdyYXBoaWNzIGRldmljZSBQQ0kg
+cGFzc3Rocm91Z2guIFhYWCB3aGljaCBkZXZpY2UgaXMgcGFzc2VkIHRocm91Z2ggPwo+ICtFbmFi
+bGUgZ3JhcGhpY3MgZGV2aWNlIFBDSSBwYXNzdGhyb3VnaC4gVGhpcyBvcHRpb24gbWFrZXMgdGhl
+IHBhc3N0aHJ1Cj4gK2dyYXBoaWNzIGNhcmQgYmVjb21lIHByaW1hcnkgZ3JhcGhpY3MgY2FyZCBp
+biB0aGUgVk0sIHNvIHRoZSBRZW11IGVtdWxhdGVkCj4gK2dyYXBoaWNzIGFkYXB0ZXIgaXMgZGlz
+YWJsZWQsIGFuZCB0aGUgVk5DIGNvbnNvbGUgZm9yIHRoZSBWTSB3b24ndCBoYXZlCj4gK2FueSBn
+cmFwaGljcyBvdXRwdXQuIEFsbCBncmFwaGljcyBvdXRwdXQsIGluY2x1ZGluZyBib290IHRpbWUg
+UWVtdSBCSU9TCj4gK21lc3NhZ2VzIGZyb20gdGhlIFZNLCB3aWxsIGdvIHRvIHRoZSBwaHlzaWNh
+bCBvdXRwdXRzIG9mIHRoZSBwYXNzZWQgdGhydQo+ICtwaHlzaWNhbCBncmFwaGljcyBjYXJkLgo+
+ICsKPiArR3JhcGhpY3MgY2FyZCBQQ0kgZGV2aWNlIHRvIHBhc3N0aHJ1IGlzIGNob3NlbiB3aXRo
+IEI8cGNpPiBvcHRpb24sCj4gK2V4YWN0bHkgaW4gdGhlIHNhbWUgd2F5IGFzIG5vcm1hbCBYZW4g
+UENJIGRldmljZSBwYXNzdGhydS9hc3NpZ25tZW50IGlzIGRvbmUuCj4gK05vdGUgdGhhdCBnZnhf
+cGFzc3RocnUgZG9lc24ndCBkbyBhbnkga2luZCBvZiBzaGFyaW5nCj4gK29mIHRoZSBHUFUsIHNv
+IHlvdSBjYW4gb25seSBhc3NpZ24gdGhlIEdQVSB0byBvbmUgc2luZ2xlIFZNIGF0IGEgdGltZS4K
+PiArCj4gK2dmeF9wYXNzdGhydSBhbHNvIGVuYWJsZXMgdmFyaW91cyBsZWdhY3kgVkdBIG1lbW9y
+eSByYW5nZXMsIEJBUnMsIE1NSU9zLAo+ICthbmQgaW9wb3J0cyB0byBiZSBwYXNzZWQgdGhydSB0
+byB0aGUgVk0sIHNpbmNlIHRob3NlIGFyZSByZXF1aXJlZAo+ICtmb3IgY29ycmVjdCBvcGVyYXRp
+b24gb2YgdGhpbmdzIGxpa2UgVkdBIEJJT1MsIHRleHQgbW9kZSwgVkJFLCBldGMuCj4gKwo+ICtF
+bmFibGluZyBnZnhfcGFzc3RocnUgb3B0aW9uIGFsc28gY29waWVzIHRoZSBwaHlzaWNhbCBncmFw
+aGljcyBjYXJkCj4gK3ZpZGVvIEJJT1MgdG8gdGhlIGd1ZXN0IG1lbW9yeSwgYW5kIGV4ZWN1dGVz
+IHRoZSBWQklPUyBpbiB0aGUgZ3Vlc3QKPiArdG8gZ2V0IHRoZSBncmFwaGljcyBjYXJkIGluaXRp
+YWxpemVkLgo+ICsKPiArTW9zdCBncmFwaGljcyBhZGFwdGVycyByZXF1aXJlIHZlbmRvciBzcGVj
+aWZpYyB0d2Vha3MgZm9yIHByb3Blcmx5Cj4gK3dvcmtpbmcgZ3JhcGhpY3MgcGFzc3RocnUuIFNl
+ZSB0aGUgWGVuVkdBUGFzc3Rocm91Z2hUZXN0ZWRBZGFwdGVycwo+ICtMPGh0dHA6Ly93aWtpLnhl
+bi5vcmcvd2lraS9YZW5WR0FQYXNzdGhyb3VnaFRlc3RlZEFkYXB0ZXJzPgo+ICt3aWtpIHBhZ2Ug
+Zm9yIGN1cnJlbnRseSBzdXBwb3J0ZWQgZ3JhcGhpY3MgY2FyZHMgZm9yIGdmeF9wYXNzdGhydS4K
+PiArCj4gK2dmeF9wYXNzdGhydSBpcyBjdXJyZW50bHkgb25seSBzdXBwb3J0ZWQgd2l0aCB0aGUg
+cWVtdS14ZW4tdHJhZGl0aW9uYWwKPiArZGV2aWNlLW1vZGVsLiBVcHN0cmVhbSBxZW11LXhlbiBk
+ZXZpY2UtbW9kZWwgY3VycmVudGx5IGRvZXNuJ3QgaGF2ZQo+ICtzdXBwb3J0IGZvciBnZnhfcGFz
+c3RocnUuCj4gKwo+ICtOb3RlIHRoYXQgc29tZSBncmFwaGljcyBhZGFwdGVycyAoQU1EL0FUSSBj
+YXJkcywgZm9yIGV4YW1wbGUpIGRvbid0Cj4gK25lY2Vzc2FyaWx5IHJlcXVpcmUgZ2Z4X3Bhc3N0
+aHJ1IG9wdGlvbiwgc28geW91IGNhbiB1c2UgdGhlIG5vcm1hbAo+ICtYZW4gUENJIHBhc3N0aHJ1
+IHRvIGFzc2lnbiB0aGUgZ3JhcGhpY3MgY2FyZCBhcyBhIHNlY29uZGFyeSBncmFwaGljcyBjYXJk
+Cj4gK3RvIHRoZSBWTS4gUWVtdSBlbXVsYXRlZCBncmFwaGljcyBjYXJkIHN0YXlzIGFzIHRoZSBw
+cmltYXJ5IGdyYXBoaWNzIGNhcmQsCj4gK2FuZCB5b3UgZ2V0IFZOQyBvdXRwdXQgZnJvbSB0aGUg
+UWVtdS1lbXVsYXRlZCBwcmltYXJ5IGFkYXB0ZXIuCj4gKwo+ICtNb3JlIGluZm9ybWF0aW9uIGFi
+b3V0IFhlbiBnZnhfcGFzc3RocnUgZmVhdHVyZSBpcyBhdmFpbGFibGUKPiArb24gdGhlIFhlblZH
+QVBhc3N0aHJvdWdoIEw8aHR0cDovL3dpa2kueGVuLm9yZy93aWtpL1hlblZHQVBhc3N0aHJvdWdo
+Pgo+ICt3aWtpIHBhZ2UuCj4gCj4gID1pdGVtIEI8bm9taWdyYXRlPUJPT0xFQU4+Cj4gCgoKCl9f
+X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBt
+YWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cDovL2xpc3RzLnhlbi5vcmcv
+eGVuLWRldmVsCg==
+
diff --git a/config/examples/test/corpus/<1347627587.24226.192.camel@zakaz.uk.xensource.com> b/config/examples/test/corpus/<1347627587.24226.192.camel@zakaz.uk.xensource.com>
new file mode 100644 (file)
index 0000000..79ce4bd
--- /dev/null
@@ -0,0 +1,148 @@
+From xen-devel-bounces@lists.xen.org Fri Sep 14 14:04:56 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 14 Sep 2012 14:04:56 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TCVZj-00055d-AG
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 14 Sep 2012 14:04:56 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TCVVY-0002sR-7q; Fri, 14 Sep 2012 13:00:32 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1TCVVW-0002sM-CS
+       for xen-devel@lists.xensource.com; Fri, 14 Sep 2012 13:00:30 +0000
+Received: from [85.158.143.99:4986] by server-1.bemta-4.messagelabs.com id
+       69/92-12504-D6A23505; Fri, 14 Sep 2012 13:00:29 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-5.tower-216.messagelabs.com!1347627619!30030163!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDkyOTU=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 19038 invoked from network); 14 Sep 2012 13:00:29 -0000
+Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-5.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
+       14 Sep 2012 13:00:29 -0000
+X-IronPort-AV: E=Sophos;i="4.80,422,1344211200"; d="scan'208";a="14546460"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       14 Sep 2012 12:59:48 +0000
+Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.279.1;
+       Fri, 14 Sep 2012 13:59:48 +0100
+Message-ID: <1347627587.24226.192.camel@zakaz.uk.xensource.com>
+From: Ian Campbell <Ian.Campbell@citrix.com>
+To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+Date: Fri, 14 Sep 2012 13:59:47 +0100
+In-Reply-To: <1345633688-31684-1-git-send-email-stefano.stabellini@eu.citrix.com>
+References: <alpine.DEB.2.02.1208221159560.15568@kaball.uk.xensource.com>
+       <1345633688-31684-1-git-send-email-stefano.stabellini@eu.citrix.com>
+Organization: Citrix Systems, Inc.
+X-Mailer: Evolution 3.4.3-1 
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
+       "Tim \(Xen.org\)" <tim@xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.7 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH v4 1/6] xen: improve changes to
+       xen_add_to_physmap
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+
+On Wed, 2012-08-22 at 12:08 +0100, Stefano Stabellini wrote:
+> This is an incremental patch on top of
+> c0bc926083b5987a3e9944eec2c12ad0580100e2: in order to retain binary
+> compatibility, it is better to introduce foreign_domid as part of a
+> union containing both size and foreign_domid.
+[...]
+> diff --git a/xen/include/public/memory.h b/xen/include/public/memory.h
+> index b2adfbe..7d4ee26 100644
+> --- a/xen/include/public/memory.h
+> +++ b/xen/include/public/memory.h
+> @@ -208,8 +208,12 @@ struct xen_add_to_physmap {
+>      /* Which domain to change the mapping for. */
+>      domid_t domid;
+>  
+> -    /* Number of pages to go through for gmfn_range */
+> -    uint16_t    size;
+> +    union {
+> +        /* Number of pages to go through for gmfn_range */
+> +        uint16_t    size;
+> +        /* IFF gmfn_foreign */
+> +        domid_t foreign_domid;
+> +    } u;
+>  
+>      /* Source mapping space. */
+>  #define XENMAPSPACE_shared_info  0 /* shared info page */
+> @@ -217,8 +221,7 @@ struct xen_add_to_physmap {
+>  #define XENMAPSPACE_gmfn         2 /* GMFN */
+>  #define XENMAPSPACE_gmfn_range   3 /* GMFN range */
+>  #define XENMAPSPACE_gmfn_foreign 4 /* GMFN from another guest */
+> -    uint16_t space;
+> -    domid_t foreign_domid; /* IFF gmfn_foreign */
+> +    unsigned int space;
+>  
+>  #define XENMAPIDX_grant_table_status 0x80000000
+
+Was this the final consensus on what this interface ought to look like?
+
+Does it work for PVH too (Mukesh CCd)?
+
+Might we prefer to have a batched version of this call? I don't think we
+can shoehorn the necessary fields into xen_add_to_physmap_t though.
+
+Do we think libxc will ever want to call a batch version of
+XENMAPSPACE_gmfn_foreign ? If not then we can probably get away using
+multicall batching. If yes then perhaps not -- libxc doesn'tdo
+multicalls.
+
+XENMAPSPACE_gmfn_range was added to avoid an issue with tonnes of
+(iommu?) flushes when remapping large numbers of pages with
+XENMAPSPACE_gmfn. It seems like XENMAPSPACE_gmfn_foreign  could suffer
+the same issue, in which case multicalls won't cut it.
+
+I guess XENMAPSPACE_gmfn_range works only on contiguous ranges in both P
+and M space? That style probably doesn't work for foreign anyway (where
+at least the M isn't going to be contiguous)
+
+Sorry for not thinking about this until after all the faff with unions
+was done...
+
+Ian.
+
+
+
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1347628660.24226.197.camel@zakaz.uk.xensource.com> b/config/examples/test/corpus/<1347628660.24226.197.camel@zakaz.uk.xensource.com>
new file mode 100644 (file)
index 0000000..f56a3ce
--- /dev/null
@@ -0,0 +1,101 @@
+From xen-devel-bounces@lists.xen.org Fri Sep 14 14:21:23 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 14 Sep 2012 14:21:23 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TCVpd-0005DA-Na
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 14 Sep 2012 14:21:23 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TCVmD-0004BU-Cy; Fri, 14 Sep 2012 13:17:45 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1TCVmB-0004BE-F0
+       for xen-devel@lists.xensource.com; Fri, 14 Sep 2012 13:17:43 +0000
+Received: from [85.158.139.211:60992] by server-11.bemta-5.messagelabs.com id
+       C9/DB-24658-67E23505; Fri, 14 Sep 2012 13:17:42 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-11.tower-206.messagelabs.com!1347628662!18583037!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDkyOTU=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 11808 invoked from network); 14 Sep 2012 13:17:42 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-11.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
+       14 Sep 2012 13:17:42 -0000
+X-IronPort-AV: E=Sophos;i="4.80,422,1344211200"; d="scan'208";a="14546991"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       14 Sep 2012 13:17:42 +0000
+Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.279.1;
+       Fri, 14 Sep 2012 14:17:41 +0100
+Message-ID: <1347628660.24226.197.camel@zakaz.uk.xensource.com>
+From: Ian Campbell <Ian.Campbell@citrix.com>
+To: Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+Date: Fri, 14 Sep 2012 14:17:40 +0100
+In-Reply-To: <1347627587.24226.192.camel@zakaz.uk.xensource.com>
+References: <alpine.DEB.2.02.1208221159560.15568@kaball.uk.xensource.com>
+       <1345633688-31684-1-git-send-email-stefano.stabellini@eu.citrix.com>
+       <1347627587.24226.192.camel@zakaz.uk.xensource.com>
+Organization: Citrix Systems, Inc.
+X-Mailer: Evolution 3.4.3-1 
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>, "Tim
+       \(Xen.org\)" <tim@xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.7 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH v4 1/6] xen: improve changes to
+ xen_add_to_physmap
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+(forgot to CC Mukesh on y last mail like I said it would, I've done it
+now and will bounce the last one to you Mukesh)
+
+On Fri, 2012-09-14 at 13:59 +0100, Ian Campbell wrote:
+> 
+> Might we prefer to have a batched version of this call? I don't think
+> we can shoehorn the necessary fields into xen_add_to_physmap_t though.
+
+Actually, talking about this we Stefano we think we can. Since both idx
+and gpfn are unsigned longs they can become unions with a GUEST_HANDLE
+without changing the ABI on x86_32 or x86_64.
+
+If we do this then we should do away with the singleton
+XENMAPSPACE_gmfn_foreign and just make it a batched interface.
+
+Ian.
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1347630442.24226.211.camel@zakaz.uk.xensource.com> b/config/examples/test/corpus/<1347630442.24226.211.camel@zakaz.uk.xensource.com>
new file mode 100644 (file)
index 0000000..e8c907a
--- /dev/null
@@ -0,0 +1,99 @@
+From xen-devel-bounces@lists.xen.org Fri Sep 14 14:51:30 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 14 Sep 2012 14:51:30 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TCWIm-0005Oj-FE
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 14 Sep 2012 14:51:30 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TCWEw-0006Fg-BU; Fri, 14 Sep 2012 13:47:26 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1TCWEv-0006FX-5n
+       for xen-devel@lists.xensource.com; Fri, 14 Sep 2012 13:47:25 +0000
+Received: from [85.158.143.35:14983] by server-2.bemta-4.messagelabs.com id
+       E4/33-21239-C6533505; Fri, 14 Sep 2012 13:47:24 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-9.tower-21.messagelabs.com!1347630444!7236282!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDkyOTU=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 30382 invoked from network); 14 Sep 2012 13:47:24 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-9.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
+       14 Sep 2012 13:47:24 -0000
+X-IronPort-AV: E=Sophos;i="4.80,423,1344211200"; d="scan'208";a="14547917"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       14 Sep 2012 13:47:23 +0000
+Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.279.1;
+       Fri, 14 Sep 2012 14:47:23 +0100
+Message-ID: <1347630442.24226.211.camel@zakaz.uk.xensource.com>
+From: Ian Campbell <Ian.Campbell@citrix.com>
+To: Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+Date: Fri, 14 Sep 2012 14:47:22 +0100
+In-Reply-To: <1347628660.24226.197.camel@zakaz.uk.xensource.com>
+References: <alpine.DEB.2.02.1208221159560.15568@kaball.uk.xensource.com>
+       <1345633688-31684-1-git-send-email-stefano.stabellini@eu.citrix.com>
+       <1347627587.24226.192.camel@zakaz.uk.xensource.com>
+       <1347628660.24226.197.camel@zakaz.uk.xensource.com>
+Organization: Citrix Systems, Inc.
+X-Mailer: Evolution 3.4.3-1 
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>, "Tim
+       \(Xen.org\)" <tim@xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="utf-8"
+Content-Transfer-Encoding: base64
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.7 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH v4 1/6] xen: improve changes to
+ xen_add_to_physmap
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+T24gRnJpLCAyMDEyLTA5LTE0IGF0IDE0OjE3ICswMTAwLCBJYW4gQ2FtcGJlbGwgd3JvdGU6Cj4g
+KGZvcmdvdCB0byBDQyBNdWtlc2ggb24geSBsYXN0IG1haWwgbGlrZSBJIHNhaWQgaXQgd291bGQs
+IEkndmUgZG9uZSBpdAo+IG5vdyBhbmQgd2lsbCBib3VuY2UgdGhlIGxhc3Qgb25lIHRvIHlvdSBN
+dWtlc2gpCgomJSTCoyUgSSd2ZSBkb25lIGl0IGFnYWluLiBBY3R1YWxseSBDQ2luZyBNdWtlc2gg
+dGhpcyB0aW1lIQoKPiAKPiBPbiBGcmksIDIwMTItMDktMTQgYXQgMTM6NTkgKzAxMDAsIElhbiBD
+YW1wYmVsbCB3cm90ZToKPiA+IAo+ID4gTWlnaHQgd2UgcHJlZmVyIHRvIGhhdmUgYSBiYXRjaGVk
+IHZlcnNpb24gb2YgdGhpcyBjYWxsPyBJIGRvbid0IHRoaW5rCj4gPiB3ZSBjYW4gc2hvZWhvcm4g
+dGhlIG5lY2Vzc2FyeSBmaWVsZHMgaW50byB4ZW5fYWRkX3RvX3BoeXNtYXBfdCB0aG91Z2guCj4g
+Cj4gQWN0dWFsbHksIHRhbGtpbmcgYWJvdXQgdGhpcyB3ZSBTdGVmYW5vIHdlIHRoaW5rIHdlIGNh
+bi4gU2luY2UgYm90aCBpZHgKPiBhbmQgZ3BmbiBhcmUgdW5zaWduZWQgbG9uZ3MgdGhleSBjYW4g
+YmVjb21lIHVuaW9ucyB3aXRoIGEgR1VFU1RfSEFORExFCj4gd2l0aG91dCBjaGFuZ2luZyB0aGUg
+QUJJIG9uIHg4Nl8zMiBvciB4ODZfNjQuCj4gCj4gSWYgd2UgZG8gdGhpcyB0aGVuIHdlIHNob3Vs
+ZCBkbyBhd2F5IHdpdGggdGhlIHNpbmdsZXRvbgo+IFhFTk1BUFNQQUNFX2dtZm5fZm9yZWlnbiBh
+bmQganVzdCBtYWtlIGl0IGEgYmF0Y2hlZCBpbnRlcmZhY2UuCj4gCj4gSWFuLgo+IAo+IAo+IF9f
+X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gWGVuLWRldmVs
+IG1haWxpbmcgbGlzdAo+IFhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCj4gaHR0cDovL2xpc3RzLnhl
+bi5vcmcveGVuLWRldmVsCgoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
+X19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcK
+aHR0cDovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==
+
diff --git a/config/examples/test/corpus/<1347630971.24226.214.camel@zakaz.uk.xensource.com> b/config/examples/test/corpus/<1347630971.24226.214.camel@zakaz.uk.xensource.com>
new file mode 100644 (file)
index 0000000..22e8bf2
--- /dev/null
@@ -0,0 +1,109 @@
+From xen-devel-bounces@lists.xen.org Fri Sep 14 15:01:02 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 14 Sep 2012 15:01:02 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TCWS0-0005RS-O7
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 14 Sep 2012 15:01:02 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TCWNl-0006UL-FD; Fri, 14 Sep 2012 13:56:33 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1TCWNj-0006UG-Nd
+       for xen-devel@lists.xensource.com; Fri, 14 Sep 2012 13:56:31 +0000
+Received: from [85.158.137.99:13759] by server-7.bemta-3.messagelabs.com id
+       5A/2F-32000-E8733505; Fri, 14 Sep 2012 13:56:30 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-8.tower-217.messagelabs.com!1347630989!12333626!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDkyOTU=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 16483 invoked from network); 14 Sep 2012 13:56:29 -0000
+Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-8.tower-217.messagelabs.com with RC4-SHA encrypted SMTP;
+       14 Sep 2012 13:56:29 -0000
+X-IronPort-AV: E=Sophos;i="4.80,423,1344211200"; d="scan'208";a="14548138"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       14 Sep 2012 13:56:13 +0000
+Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.279.1;
+       Fri, 14 Sep 2012 14:56:12 +0100
+Message-ID: <1347630971.24226.214.camel@zakaz.uk.xensource.com>
+From: Ian Campbell <Ian.Campbell@citrix.com>
+To: Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+Date: Fri, 14 Sep 2012 14:56:11 +0100
+In-Reply-To: <1347630442.24226.211.camel@zakaz.uk.xensource.com>
+References: <alpine.DEB.2.02.1208221159560.15568@kaball.uk.xensource.com>
+       <1345633688-31684-1-git-send-email-stefano.stabellini@eu.citrix.com>
+       <1347627587.24226.192.camel@zakaz.uk.xensource.com>
+       <1347628660.24226.197.camel@zakaz.uk.xensource.com>
+       <1347630442.24226.211.camel@zakaz.uk.xensource.com>
+Organization: Citrix Systems, Inc.
+X-Mailer: Evolution 3.4.3-1 
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>, "Tim
+       \(Xen.org\)" <tim@xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="utf-8"
+Content-Transfer-Encoding: base64
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.7 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH v4 1/6] xen: improve changes to
+ xen_add_to_physmap
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+T24gRnJpLCAyMDEyLTA5LTE0IGF0IDE0OjQ3ICswMTAwLCBJYW4gQ2FtcGJlbGwgd3JvdGU6Cj4g
+T24gRnJpLCAyMDEyLTA5LTE0IGF0IDE0OjE3ICswMTAwLCBJYW4gQ2FtcGJlbGwgd3JvdGU6Cj4g
+PiAoZm9yZ290IHRvIENDIE11a2VzaCBvbiB5IGxhc3QgbWFpbCBsaWtlIEkgc2FpZCBpdCB3b3Vs
+ZCwgSSd2ZSBkb25lIGl0Cj4gPiBub3cgYW5kIHdpbGwgYm91bmNlIHRoZSBsYXN0IG9uZSB0byB5
+b3UgTXVrZXNoKQo+IAo+ICYlJMKjJSBJJ3ZlIGRvbmUgaXQgYWdhaW4uIEFjdHVhbGx5IENDaW5n
+IE11a2VzaCB0aGlzIHRpbWUhCgpPSywgaXQncyBkZWZpbml0ZWx5IG5vdCBtZSwgSSdtIGNlcnRh
+aW4gSSBDQ2QgaGltIHRoaXMgdGltZS4gV2hlcmUgb24KZWFydGggYXJlIHRoZXkgZ29pbmchCgo+
+IAo+ID4gCj4gPiBPbiBGcmksIDIwMTItMDktMTQgYXQgMTM6NTkgKzAxMDAsIElhbiBDYW1wYmVs
+bCB3cm90ZToKPiA+ID4gCj4gPiA+IE1pZ2h0IHdlIHByZWZlciB0byBoYXZlIGEgYmF0Y2hlZCB2
+ZXJzaW9uIG9mIHRoaXMgY2FsbD8gSSBkb24ndCB0aGluawo+ID4gPiB3ZSBjYW4gc2hvZWhvcm4g
+dGhlIG5lY2Vzc2FyeSBmaWVsZHMgaW50byB4ZW5fYWRkX3RvX3BoeXNtYXBfdCB0aG91Z2guCj4g
+PiAKPiA+IEFjdHVhbGx5LCB0YWxraW5nIGFib3V0IHRoaXMgd2UgU3RlZmFubyB3ZSB0aGluayB3
+ZSBjYW4uIFNpbmNlIGJvdGggaWR4Cj4gPiBhbmQgZ3BmbiBhcmUgdW5zaWduZWQgbG9uZ3MgdGhl
+eSBjYW4gYmVjb21lIHVuaW9ucyB3aXRoIGEgR1VFU1RfSEFORExFCj4gPiB3aXRob3V0IGNoYW5n
+aW5nIHRoZSBBQkkgb24geDg2XzMyIG9yIHg4Nl82NC4KCkV4Y2VwdCB3ZSBuZWVkIGJvdGggZm9y
+ZWlnbl9kb21pZCBhbmQgc2l6ZSwgd2hpY2ggY3VycmVudGx5IG92ZXJsYXAsIGFuZAp0aGVyZSdz
+IG5vIG90aGVyIHNwYXJlIGJpdHMuIERhbW4uCgpMb29rcyBsaWtlIFhFTk1FTV9hZGRfdG9fcGh5
+c21hcF9yYW5nZSBpcyB0aGUgb25seSBvcHRpb24gOi0oCgpJYW4uCgo+ID4gCj4gPiBJZiB3ZSBk
+byB0aGlzIHRoZW4gd2Ugc2hvdWxkIGRvIGF3YXkgd2l0aCB0aGUgc2luZ2xldG9uCj4gPiBYRU5N
+QVBTUEFDRV9nbWZuX2ZvcmVpZ24gYW5kIGp1c3QgbWFrZSBpdCBhIGJhdGNoZWQgaW50ZXJmYWNl
+Lgo+ID4gCj4gPiBJYW4uCj4gPiAKPiA+IAo+ID4gX19fX19fX19fX19fX19fX19fX19fX19fX19f
+X19fX19fX19fX19fX19fX19fX18KPiA+IFhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKPiA+IFhlbi1k
+ZXZlbEBsaXN0cy54ZW4ub3JnCj4gPiBodHRwOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwKPiAK
+PiAKPiAKPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+
+IFhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKPiBYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwo+IGh0dHA6
+Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAoKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19f
+X19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0
+cy54ZW4ub3JnCmh0dHA6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=
+
diff --git a/config/examples/test/corpus/<1347637953.14977.10.camel@zakaz.uk.xensource.com> b/config/examples/test/corpus/<1347637953.14977.10.camel@zakaz.uk.xensource.com>
new file mode 100644 (file)
index 0000000..8d2fbd8
--- /dev/null
@@ -0,0 +1,124 @@
+From xen-devel-bounces@lists.xen.org Fri Sep 14 16:56:26 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 14 Sep 2012 16:56:26 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TCYFh-000616-6k
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 14 Sep 2012 16:56:26 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TCYC8-0004bF-UD; Fri, 14 Sep 2012 15:52:40 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1TCYC6-0004az-HW
+       for xen-devel@lists.xensource.com; Fri, 14 Sep 2012 15:52:38 +0000
+Received: from [85.158.139.211:49230] by server-3.bemta-5.messagelabs.com id
+       7A/D2-21836-5C253505; Fri, 14 Sep 2012 15:52:37 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-12.tower-206.messagelabs.com!1347637956!18550826!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDkyOTU=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 24323 invoked from network); 14 Sep 2012 15:52:36 -0000
+Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-12.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
+       14 Sep 2012 15:52:36 -0000
+X-IronPort-AV: E=Sophos;i="4.80,423,1344211200"; d="scan'208";a="14551196"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       14 Sep 2012 15:52:35 +0000
+Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.279.1;
+       Fri, 14 Sep 2012 16:52:35 +0100
+Message-ID: <1347637953.14977.10.camel@zakaz.uk.xensource.com>
+From: Ian Campbell <Ian.Campbell@citrix.com>
+To: Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+Date: Fri, 14 Sep 2012 16:52:33 +0100
+In-Reply-To: <alpine.DEB.2.02.1209141631200.29232@kaball.uk.xensource.com>
+References: <alpine.DEB.2.02.1208221159560.15568@kaball.uk.xensource.com>
+       <1345633688-31684-1-git-send-email-stefano.stabellini@eu.citrix.com>
+       <1347627587.24226.192.camel@zakaz.uk.xensource.com>
+       <1347628660.24226.197.camel@zakaz.uk.xensource.com>
+       <1347630442.24226.211.camel@zakaz.uk.xensource.com>
+       <1347630971.24226.214.camel@zakaz.uk.xensource.com>
+       <50535AFA020000780009B7C4@nat28.tlf.novell.com>
+       <alpine.DEB.2.02.1209141631200.29232@kaball.uk.xensource.com>
+Organization: Citrix Systems, Inc.
+X-Mailer: Evolution 3.4.3-1 
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>, Keir
+       Fraser <keir@xen.org>, "Tim \(Xen.org\)" <tim@xen.org>,
+       ijackson@chiark.greenend.org.uk, Jan Beulich <JBeulich@suse.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.7 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH v4 1/6] xen: improve changes to
+ xen_add_to_physmap
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Fri, 2012-09-14 at 16:44 +0100, Stefano Stabellini wrote:
+> On Fri, 14 Sep 2012, Jan Beulich wrote:
+> > >>> On 14.09.12 at 15:56, Ian Campbell <Ian.Campbell@citrix.com> wrote:
+> > >> > > Might we prefer to have a batched version of this call? I don't think
+> > >> > > we can shoehorn the necessary fields into xen_add_to_physmap_t though.
+> > >> > 
+> > >> > Actually, talking about this we Stefano we think we can. Since both idx
+> > >> > and gpfn are unsigned longs they can become unions with a GUEST_HANDLE
+> > >> > without changing the ABI on x86_32 or x86_64.
+> > > 
+> > > Except we need both foreign_domid and size, which currently overlap, and
+> > > there's no other spare bits. Damn.
+> > > 
+> > > Looks like XENMEM_add_to_physmap_range is the only option :-(
+> > 
+> > You could use the first entry in each array to specify the counts,
+> > which would at once allow mixed granularity on each list (should
+> > that ever turn out useful); initially you would certainly want both
+> > counts to match.
+> 
+> I think it would be better from the interface point of view to have idx
+> become the number of frames, and gpfn a pointer (a GUEST_HANDLE) to a
+> struct that contains both arrays.
+
+We'd need to slip in enough info to allow continuations too. Perhaps
+that can be done by manipulating the size and the handle to keep track
+of progress. Or maybe we can get away with just just frobbing the size
+if we process the array backwards.
+
+Which is all sounding pretty gross. I'm very temped to add
+add_to_physmap2...
+
+Ian.
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1348059789.14977.119.camel@zakaz.uk.xensource.com> b/config/examples/test/corpus/<1348059789.14977.119.camel@zakaz.uk.xensource.com>
new file mode 100644 (file)
index 0000000..48c9b99
--- /dev/null
@@ -0,0 +1,393 @@
+From xen-devel-bounces@lists.xen.org Wed Sep 19 14:07:27 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 19 Sep 2012 14:07:27 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TEJzs-0001Tn-L7
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 19 Sep 2012 14:07:26 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TEJvv-0004OX-9q; Wed, 19 Sep 2012 13:03:15 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1TEJvt-0004Nz-08
+       for xen-devel@lists.xensource.com; Wed, 19 Sep 2012 13:03:13 +0000
+Received: from [85.158.138.51:32651] by server-10.bemta-3.messagelabs.com id
+       9D/ED-10411-092C9505; Wed, 19 Sep 2012 13:03:12 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-4.tower-174.messagelabs.com!1348059791!30676673!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTAxNzU=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 5141 invoked from network); 19 Sep 2012 13:03:11 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-4.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
+       19 Sep 2012 13:03:11 -0000
+X-IronPort-AV: E=Sophos;i="4.80,447,1344211200"; d="scan'208";a="14631227"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       19 Sep 2012 13:03:11 +0000
+Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.279.1;
+       Wed, 19 Sep 2012 14:03:10 +0100
+Message-ID: <1348059789.14977.119.camel@zakaz.uk.xensource.com>
+From: Ian Campbell <Ian.Campbell@citrix.com>
+To: Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+Date: Wed, 19 Sep 2012 14:03:09 +0100
+In-Reply-To: <alpine.DEB.2.02.1209171153350.29232@kaball.uk.xensource.com>
+References: <alpine.DEB.2.02.1208221159560.15568@kaball.uk.xensource.com>
+       <1345633688-31684-1-git-send-email-stefano.stabellini@eu.citrix.com>
+       <1347627587.24226.192.camel@zakaz.uk.xensource.com>
+       <20120914160727.1ff41de2@mantra.us.oracle.com>
+       <alpine.DEB.2.02.1209171153350.29232@kaball.uk.xensource.com>
+Organization: Citrix Systems, Inc.
+X-Mailer: Evolution 3.4.3-1 
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
+       "Tim \(Xen.org\)" <tim@xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.8 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH v4 1/6] xen: improve changes to
+       xen_add_to_physmap
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Mon, 2012-09-17 at 11:54 +0100, Stefano Stabellini wrote:
+> On Sat, 15 Sep 2012, Mukesh Rathor wrote:
+> > On Fri, 14 Sep 2012 13:59:47 +0100
+> > Ian Campbell <Ian.Campbell@citrix.com> wrote:
+> > 
+> > > 
+> > > On Wed, 2012-08-22 at 12:08 +0100, Stefano Stabellini wrote:
+> > > > This is an incremental patch on top of
+> > > > c0bc926083b5987a3e9944eec2c12ad0580100e2: in order to retain binary
+> > > > compatibility, it is better to introduce foreign_domid as part of a
+> > > > union containing both size and foreign_domid.
+> > > [...]
+> > > > -    domid_t foreign_domid; /* IFF gmfn_foreign */
+> > > > +    unsigned int space;
+> > > >  
+> > > >  #define XENMAPIDX_grant_table_status 0x80000000
+> > > 
+> > > Was this the final consensus on what this interface ought to look
+> > > like?
+> > > 
+> > > Does it work for PVH too (Mukesh CCd)?
+> > 
+> > Yes it does. Please lmk if the final version asap so I can put in
+> > my patch, and also test it.
+> 
+> It the final version. I think it should go in, unless we want to drop it
+> entirely in favor of xen_add_to_physmap_range.
+
+Here is what I came up with on the ARM side. I'd image the X86 version
+would not be that different.
+
+Processing the batch in reverse order allows for continuations without
+needing an explicit pdone type thing. Still seems a bit wrong somehow.
+
+diff --git a/xen/arch/arm/mm.c b/xen/arch/arm/mm.c
+index aec57e5..7d6101c 100644
+--- a/xen/arch/arm/mm.c
++++ b/xen/arch/arm/mm.c
+@@ -26,6 +26,8 @@
+ #include <xen/preempt.h>
+ #include <xen/errno.h>
+ #include <xen/grant_table.h>
++#include <xen/softirq.h>
++#include <xen/event.h>
+ #include <xen/guest_access.h>
+ #include <xen/domain_page.h>
+ #include <asm/page.h>
+@@ -462,14 +464,17 @@ void share_xen_page_with_guest(struct page_info *page,
+     spin_unlock(&d->page_alloc_lock);
+ }
+-static int xenmem_add_to_physmap_once(
++static int xenmem_add_to_physmap_one(
+     struct domain *d,
+-    const struct xen_add_to_physmap *xatp)
++    uint16_t space,
++    domid_t foreign_domid,
++    unsigned long idx,
++    xen_pfn_t gpfn)
+ {
+-    unsigned long mfn = 0, idx = 0;
++    unsigned long mfn = 0;
+     int rc;
+-    switch ( xatp->space )
++    switch ( space )
+     {
+     case XENMAPSPACE_grant_table:
+         spin_lock(&d->grant_table->lock);
+@@ -477,9 +482,8 @@ static int xenmem_add_to_physmap_once(
+         if ( d->grant_table->gt_version == 0 )
+             d->grant_table->gt_version = 1;
+-        idx = xatp->idx;
+         if ( d->grant_table->gt_version == 2 &&
+-                (xatp->idx & XENMAPIDX_grant_table_status) )
++                (idx & XENMAPIDX_grant_table_status) )
+         {
+             idx &= ~XENMAPIDX_grant_table_status;
+             if ( idx < nr_status_frames(d->grant_table) )
+@@ -498,33 +502,31 @@ static int xenmem_add_to_physmap_once(
+         spin_unlock(&d->grant_table->lock);
+         break;
+     case XENMAPSPACE_shared_info:
+-        if ( xatp->idx == 0 )
++        if ( idx == 0 )
+             mfn = virt_to_mfn(d->shared_info);
+         break;
+     case XENMAPSPACE_gmfn_foreign:
+     {
+         paddr_t maddr;
+         struct domain *od;
+-        static int x = 0;
+-        rc = rcu_lock_target_domain_by_id(xatp->foreign_domid, &od);
++        rc = rcu_lock_target_domain_by_id(foreign_domid, &od);
+         if ( rc < 0 )
+             return rc;
+-        maddr = p2m_lookup(od, xatp->idx << PAGE_SHIFT);
++
++        maddr = p2m_lookup(od, idx << PAGE_SHIFT);
+         if ( maddr == INVALID_PADDR )
+         {
+-            printk("bad p2m lookup\n");
+-            dump_p2m_lookup(od, xatp->idx << PAGE_SHIFT);
++            dump_p2m_lookup(od, idx << PAGE_SHIFT);
+             rcu_unlock_domain(od);
+             return -EINVAL;
+         }
++
+         mfn = maddr >> PAGE_SHIFT;
+-      if (x && x--) {
+-            printk("Mapping dom%d mfn 0x%lx to dom%d mfn 0x%"PRIpaddr"\n",
+-                   od->domain_id, mfn, d->domain_id, xatp->gpfn);
+-        }
++
+         rcu_unlock_domain(od);
+         break;
+     }
++
+     default:
+         return -ENOSYS;
+     }
+@@ -532,19 +534,51 @@ static int xenmem_add_to_physmap_once(
+     domain_lock(d);
+     /* Map at new location. */
+-    rc = guest_physmap_add_page(d, xatp->gpfn, mfn, 0);
+-    if ( 0 && xatp->space == XENMAPSPACE_gmfn_foreign )
+-        dump_p2m_lookup(d, xatp->gpfn << PAGE_SHIFT);
++    rc = guest_physmap_add_page(d, gpfn, mfn, 0);
+     domain_unlock(d);
+     return rc;
+ }
+-static int xenmem_add_to_physmap(struct domain *d,
+-                                 struct xen_add_to_physmap *xatp)
++static int xenmem_add_to_physmap_range(struct domain *d,
++                                       struct xen_add_to_physmap_range *xatpr)
+ {
+-    return xenmem_add_to_physmap_once(d, xatp);
++    int rc;
++
++    /* Process entries in reverse order to allow continuations */
++    while ( xatpr->size > 0 )
++    {
++        xen_ulong_t idx;
++        xen_pfn_t gpfn;
++
++        rc = copy_from_guest_offset(&idx, xatpr->idxs, xatpr->size-1, 1);
++        if ( rc < 0 )
++            goto out;
++
++        rc = copy_from_guest_offset(&gpfn, xatpr->gpfns, xatpr->size-1, 1);
++        if ( rc < 0 )
++            goto out;
++
++        rc = xenmem_add_to_physmap_one(d, xatpr->space,
++                                       xatpr->foreign_domid,
++                                       idx, gpfn);
++
++        xatpr->size--;
++
++        /* Check for continuation if it's not the last interation */
++        if ( xatpr->size > 0 && hypercall_preempt_check() )
++        {
++            rc = -EAGAIN;
++            goto out;
++        }
++    }
++
++    rc = 0;
++
++out:
++    return rc;
++
+ }
+ long arch_memory_op(int op, XEN_GUEST_HANDLE(void) arg)
+@@ -565,13 +599,41 @@ long arch_memory_op(int op, XEN_GUEST_HANDLE(void) arg)
+         if ( rc != 0 )
+             return rc;
+-        rc = xenmem_add_to_physmap(d, &xatp);
++        rc = xenmem_add_to_physmap_one(d, xatp.space,
++                                       xatp.foreign_domid,
++                                       xatp.idx, xatp.gpfn);
+         rcu_unlock_domain(d);
+         return rc;
+     }
++    case XENMEM_add_to_physmap_range:
++    {
++        struct xen_add_to_physmap_range xatpr;
++        struct domain *d;
++
++        if ( copy_from_guest(&xatpr, arg, 1) )
++            return -EFAULT;
++
++        rc = rcu_lock_target_domain_by_id(xatpr.domid, &d);
++        if ( rc != 0 )
++            return rc;
++
++        rc = xenmem_add_to_physmap_range(d, &xatpr);
++
++        rcu_unlock_domain(d);
++
++        if ( rc && copy_to_guest(arg, &xatpr, 1) )
++            rc = -EFAULT;
++
++        if ( rc == -EAGAIN )
++            rc = hypercall_create_continuation(
++                __HYPERVISOR_memory_op, "ih", op, arg);
++
++        return rc;
++    }
++
+     default:
+         return -ENOSYS;
+     }
+diff --git a/xen/include/public/memory.h b/xen/include/public/memory.h
+index b2adfbe..1cc7a80 100644
+--- a/xen/include/public/memory.h
++++ b/xen/include/public/memory.h
+@@ -198,6 +198,15 @@ struct xen_machphys_mapping {
+ typedef struct xen_machphys_mapping xen_machphys_mapping_t;
+ DEFINE_XEN_GUEST_HANDLE(xen_machphys_mapping_t);
++/* Source mapping space. */
++/* ` enum phys_map_space { */
++#define XENMAPSPACE_shared_info  0 /* shared info page */
++#define XENMAPSPACE_grant_table  1 /* grant table page */
++#define XENMAPSPACE_gmfn         2 /* GMFN */
++#define XENMAPSPACE_gmfn_range   3 /* GMFN range */
++#define XENMAPSPACE_gmfn_foreign 4 /* GMFN from another dom */
++/* ` } */
++
+ /*
+  * Sets the GPFN at which a particular page appears in the specified guest's
+  * pseudophysical address space.
+@@ -211,26 +220,40 @@ struct xen_add_to_physmap {
+     /* Number of pages to go through for gmfn_range */
+     uint16_t    size;
+-    /* Source mapping space. */
+-#define XENMAPSPACE_shared_info  0 /* shared info page */
+-#define XENMAPSPACE_grant_table  1 /* grant table page */
+-#define XENMAPSPACE_gmfn         2 /* GMFN */
+-#define XENMAPSPACE_gmfn_range   3 /* GMFN range */
+-#define XENMAPSPACE_gmfn_foreign 4 /* GMFN from another guest */
+-    uint16_t space;
++    uint16_t space; /* => enum phys_map_space */
+     domid_t foreign_domid; /* IFF gmfn_foreign */
+ #define XENMAPIDX_grant_table_status 0x80000000
+-    /* Index into source mapping space. */
++    /* Index into space being mapped. */
+     xen_ulong_t idx;
+-    /* GPFN where the source mapping page should appear. */
++    /* GPFN in domid where the source mapping page should appear. */
+     xen_pfn_t     gpfn;
+ };
+ typedef struct xen_add_to_physmap xen_add_to_physmap_t;
+ DEFINE_XEN_GUEST_HANDLE(xen_add_to_physmap_t);
++/* A batched version of add_to_physmap. */
++#define XENMEM_add_to_physmap_range 23
++struct xen_add_to_physmap_range {
++    /* Which domain to change the mapping for. */
++    domid_t domid;
++    uint16_t space; /* => enum phys_map_space */
++
++    /* Number of pages to go through */
++    uint16_t size;
++    domid_t foreign_domid; /* IFF gmfn_foreign */
++
++    /* Indexes into space being mapped. */
++    XEN_GUEST_HANDLE(xen_ulong_t) idxs;
++
++    /* GPFN in domdwhere the source mapping page should appear. */
++    XEN_GUEST_HANDLE(xen_pfn_t) gpfns;
++};
++typedef struct xen_add_to_physmap_range xen_add_to_physmap_range_t;
++DEFINE_XEN_GUEST_HANDLE(xen_add_to_physmap_range_t);
++
+ /*
+  * Unmaps the page appearing at a particular GPFN from the specified guest's
+  * pseudophysical address space.
+diff --git a/xen/include/public/xen.h b/xen/include/public/xen.h
+index b2f6c50..9425520 100644
+--- a/xen/include/public/xen.h
++++ b/xen/include/public/xen.h
+@@ -51,6 +51,7 @@ DEFINE_XEN_GUEST_HANDLE(void);
+ DEFINE_XEN_GUEST_HANDLE(uint64_t);
+ DEFINE_XEN_GUEST_HANDLE(xen_pfn_t);
++DEFINE_XEN_GUEST_HANDLE(xen_ulong_t);
+ #endif
+ /*
+
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1348060180.14977.123.camel@zakaz.uk.xensource.com> b/config/examples/test/corpus/<1348060180.14977.123.camel@zakaz.uk.xensource.com>
new file mode 100644 (file)
index 0000000..7a953d7
--- /dev/null
@@ -0,0 +1,164 @@
+From xen-devel-bounces@lists.xen.org Wed Sep 19 14:13:36 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 19 Sep 2012 14:13:36 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TEK5q-0001Vb-4Z
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 19 Sep 2012 14:13:36 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TEK2F-0005Ea-Os; Wed, 19 Sep 2012 13:09:47 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1TEK2D-0005E8-Pm
+       for xen-devel@lists.xensource.com; Wed, 19 Sep 2012 13:09:46 +0000
+Received: from [85.158.138.51:42016] by server-10.bemta-3.messagelabs.com id
+       46/60-10411-914C9505; Wed, 19 Sep 2012 13:09:45 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-7.tower-174.messagelabs.com!1348060183!22303494!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTAxNzU=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 8751 invoked from network); 19 Sep 2012 13:09:44 -0000
+Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-7.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
+       19 Sep 2012 13:09:44 -0000
+X-IronPort-AV: E=Sophos;i="4.80,447,1344211200"; d="scan'208";a="14631447"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       19 Sep 2012 13:09:42 +0000
+Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.279.1;
+       Wed, 19 Sep 2012 14:09:42 +0100
+Message-ID: <1348060180.14977.123.camel@zakaz.uk.xensource.com>
+From: Ian Campbell <Ian.Campbell@citrix.com>
+To: Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+Date: Wed, 19 Sep 2012 14:09:40 +0100
+In-Reply-To: <1348059789.14977.119.camel@zakaz.uk.xensource.com>
+References: <alpine.DEB.2.02.1208221159560.15568@kaball.uk.xensource.com>
+       <1345633688-31684-1-git-send-email-stefano.stabellini@eu.citrix.com>
+       <1347627587.24226.192.camel@zakaz.uk.xensource.com>
+       <20120914160727.1ff41de2@mantra.us.oracle.com>
+       <alpine.DEB.2.02.1209171153350.29232@kaball.uk.xensource.com>
+       <1348059789.14977.119.camel@zakaz.uk.xensource.com>
+Organization: Citrix Systems, Inc.
+X-Mailer: Evolution 3.4.3-1 
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>, "Tim
+       \(Xen.org\)" <tim@xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.8 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH v4 1/6] xen: improve changes to
+ xen_add_to_physmap
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Wed, 2012-09-19 at 14:03 +0100, Ian Campbell wrote:
+
+> > It the final version. I think it should go in, unless we want to drop it
+> > entirely in favor of xen_add_to_physmap_range.
+> 
+> Here is what I came up with on the ARM side. I'd image the X86 version
+> would not be that different.
+
+Here the (obvious) Linux side, for reference. No actual use of batching
+just yet. It's based on top of a somewhat bastardized version of
+Mukesh's PVH patches for privcmd.
+
+Ian.
+
+diff --git a/arch/arm/xen/enlighten.c b/arch/arm/xen/enlighten.c
+index 43277f8..f01120a 100644
+--- a/arch/arm/xen/enlighten.c
++++ b/arch/arm/xen/enlighten.c
+@@ -88,13 +88,20 @@ static int pvh_add_to_xen_p2m(unsigned long lpfn, unsigned long fgmfn,
+                             unsigned int domid)
+ {
+       int rc;
+-      struct xen_add_to_physmap pmb = {.foreign_domid = domid};
+-
+-      pmb.gpfn = lpfn;
+-      pmb.idx = fgmfn;
+-      pmb.space = XENMAPSPACE_gmfn_foreign;
+-
+-      rc = HYPERVISOR_memory_op(XENMEM_add_to_physmap, &pmb);
++      struct xen_add_to_physmap_range xatp = {
++              .domid = DOMID_SELF,
++              .foreign_domid = domid,
++              .size = 1,
++              .space = XENMAPSPACE_gmfn_foreign,
++      };
++      unsigned long idx = fgmfn;
++      xen_pfn_t gpfn = lpfn;
++
++      set_xen_guest_handle(xatp.idxs, &idx);
++      set_xen_guest_handle(xatp.gpfns, &gpfn);
++                     domid, fgmfn, lpfn);
++
++      rc = HYPERVISOR_memory_op(XENMEM_add_to_physmap_range, &xatp);
+       if (rc) {
+               pr_warn("Failed to map pfn to mfn rc:%d pfn:%lx mfn:%lx\n",
+                       rc, lpfn, fgmfn);
+diff --git a/include/xen/interface/memory.h b/include/xen/interface/memory.h
+index 8728330..64cabbb 100644
+--- a/include/xen/interface/memory.h
++++ b/include/xen/interface/memory.h
+@@ -183,6 +183,24 @@ struct xen_add_to_physmap {
+ };
+ DEFINE_GUEST_HANDLE_STRUCT(xen_add_to_physmap);
++#define XENMEM_add_to_physmap_range 23
++struct xen_add_to_physmap_range {
++    /* Which domain to change the mapping for. */
++    domid_t domid;
++    uint16_t space; /* => enum phys_map_space */
++
++    /* Number of pages to go through */
++    uint16_t size;
++    domid_t foreign_domid; /* IFF gmfn_foreign */
++
++    /* Indexes into space being mapped. */
++    GUEST_HANDLE(ulong) idxs;
++
++    /* GPFN in domdwhere the source mapping page should appear. */
++    GUEST_HANDLE(xen_pfn_t) gpfns;
++};
++DEFINE_GUEST_HANDLE_STRUCT(xen_add_to_physmap_range);
++
+ /*
+  * Translates a list of domain-specific GPFNs into MFNs. Returns a -ve error
+  * code on failure. This call only works for auto-translated guests.
+
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1348062615.14977.127.camel@zakaz.uk.xensource.com> b/config/examples/test/corpus/<1348062615.14977.127.camel@zakaz.uk.xensource.com>
new file mode 100644 (file)
index 0000000..ff6c656
--- /dev/null
@@ -0,0 +1,180 @@
+From xen-devel-bounces@lists.xen.org Wed Sep 19 14:56:06 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 19 Sep 2012 14:56:06 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TEKky-0001h2-Cw
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 19 Sep 2012 14:56:06 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TEKgK-0006vk-J7; Wed, 19 Sep 2012 13:51:12 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1TEKgI-0006vf-H4
+       for xen-devel@lists.xensource.com; Wed, 19 Sep 2012 13:51:10 +0000
+Received: from [85.158.139.83:15600] by server-12.bemta-5.messagelabs.com id
+       C3/20-22167-DCDC9505; Wed, 19 Sep 2012 13:51:09 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-5.tower-182.messagelabs.com!1348062669!30884954!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTAxNzU=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 14628 invoked from network); 19 Sep 2012 13:51:09 -0000
+Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-5.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
+       19 Sep 2012 13:51:09 -0000
+X-IronPort-AV: E=Sophos;i="4.80,447,1344211200"; d="scan'208";a="14632527"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       19 Sep 2012 13:50:17 +0000
+Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.279.1;
+       Wed, 19 Sep 2012 14:50:17 +0100
+Message-ID: <1348062615.14977.127.camel@zakaz.uk.xensource.com>
+From: Ian Campbell <Ian.Campbell@citrix.com>
+To: Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+Date: Wed, 19 Sep 2012 14:50:15 +0100
+In-Reply-To: <alpine.DEB.2.02.1209191420290.29232@kaball.uk.xensource.com>
+References: <alpine.DEB.2.02.1208221159560.15568@kaball.uk.xensource.com>
+       <1345633688-31684-1-git-send-email-stefano.stabellini@eu.citrix.com>
+       <1347627587.24226.192.camel@zakaz.uk.xensource.com>
+       <20120914160727.1ff41de2@mantra.us.oracle.com>
+       <alpine.DEB.2.02.1209171153350.29232@kaball.uk.xensource.com>
+       <1348059789.14977.119.camel@zakaz.uk.xensource.com>
+       <1348060180.14977.123.camel@zakaz.uk.xensource.com>
+       <alpine.DEB.2.02.1209191420290.29232@kaball.uk.xensource.com>
+Organization: Citrix Systems, Inc.
+X-Mailer: Evolution 3.4.3-1 
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>, "Tim
+       \(Xen.org\)" <tim@xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.8 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH v4 1/6] xen: improve changes to
+ xen_add_to_physmap
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Wed, 2012-09-19 at 14:20 +0100, Stefano Stabellini wrote:
+> On Wed, 19 Sep 2012, Ian Campbell wrote:
+> > On Wed, 2012-09-19 at 14:03 +0100, Ian Campbell wrote:
+> > 
+> > > > It the final version. I think it should go in, unless we want to drop it
+> > > > entirely in favor of xen_add_to_physmap_range.
+> > > 
+> > > Here is what I came up with on the ARM side. I'd image the X86 version
+> > > would not be that different.
+> > 
+> > Here the (obvious) Linux side, for reference. No actual use of batching
+> > just yet. It's based on top of a somewhat bastardized version of
+> > Mukesh's PVH patches for privcmd.
+> > 
+> 
+> we also need the xen_remap_domain_mfn_range arm implementation
+
+I have that, it calls this pvh_add_to_xen_p2m. I just didn't include it
+here since I was just illustrating the change of the API.
+
+I have a set of patches to reimplement the hacky foreign mapping stuff
+on top of Mukesh's PVH privmd stuff, I'm just waiting for him to repost
+so I can rebase and post.
+
+> > 
+> > diff --git a/arch/arm/xen/enlighten.c b/arch/arm/xen/enlighten.c
+> > index 43277f8..f01120a 100644
+> > --- a/arch/arm/xen/enlighten.c
+> > +++ b/arch/arm/xen/enlighten.c
+> > @@ -88,13 +88,20 @@ static int pvh_add_to_xen_p2m(unsigned long lpfn, unsigned long fgmfn,
+> >                          unsigned int domid)
+> >  {
+> >    int rc;
+> > -  struct xen_add_to_physmap pmb = {.foreign_domid = domid};
+> > -
+> > -  pmb.gpfn = lpfn;
+> > -  pmb.idx = fgmfn;
+> > -  pmb.space = XENMAPSPACE_gmfn_foreign;
+> > -
+> > -  rc = HYPERVISOR_memory_op(XENMEM_add_to_physmap, &pmb);
+> > +  struct xen_add_to_physmap_range xatp = {
+> > +          .domid = DOMID_SELF,
+> > +          .foreign_domid = domid,
+> > +          .size = 1,
+> > +          .space = XENMAPSPACE_gmfn_foreign,
+> > +  };
+> > +  unsigned long idx = fgmfn;
+> > +  xen_pfn_t gpfn = lpfn;
+> > +
+> > +  set_xen_guest_handle(xatp.idxs, &idx);
+> > +  set_xen_guest_handle(xatp.gpfns, &gpfn);
+> > +                 domid, fgmfn, lpfn);
+> > +
+> > +  rc = HYPERVISOR_memory_op(XENMEM_add_to_physmap_range, &xatp);
+> >    if (rc) {
+> >            pr_warn("Failed to map pfn to mfn rc:%d pfn:%lx mfn:%lx\n",
+> >                    rc, lpfn, fgmfn);
+> > diff --git a/include/xen/interface/memory.h b/include/xen/interface/memory.h
+> > index 8728330..64cabbb 100644
+> > --- a/include/xen/interface/memory.h
+> > +++ b/include/xen/interface/memory.h
+> > @@ -183,6 +183,24 @@ struct xen_add_to_physmap {
+> >  };
+> >  DEFINE_GUEST_HANDLE_STRUCT(xen_add_to_physmap);
+> >  
+> > +#define XENMEM_add_to_physmap_range 23
+> > +struct xen_add_to_physmap_range {
+> > +    /* Which domain to change the mapping for. */
+> > +    domid_t domid;
+> > +    uint16_t space; /* => enum phys_map_space */
+> > +
+> > +    /* Number of pages to go through */
+> > +    uint16_t size;
+> > +    domid_t foreign_domid; /* IFF gmfn_foreign */
+> > +
+> > +    /* Indexes into space being mapped. */
+> > +    GUEST_HANDLE(ulong) idxs;
+> > +
+> > +    /* GPFN in domdwhere the source mapping page should appear. */
+> > +    GUEST_HANDLE(xen_pfn_t) gpfns;
+> > +};
+> > +DEFINE_GUEST_HANDLE_STRUCT(xen_add_to_physmap_range);
+> > +
+> >  /*
+> >   * Translates a list of domain-specific GPFNs into MFNs. Returns a -ve error
+> >   * code on failure. This call only works for auto-translated guests.
+> > 
+> > 
+> > 
+
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1348062913.14977.132.camel@zakaz.uk.xensource.com> b/config/examples/test/corpus/<1348062913.14977.132.camel@zakaz.uk.xensource.com>
new file mode 100644 (file)
index 0000000..c597a7d
--- /dev/null
@@ -0,0 +1,202 @@
+From xen-devel-bounces@lists.xen.org Wed Sep 19 15:02:30 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 19 Sep 2012 15:02:30 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TEKrA-0001ix-M0
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 19 Sep 2012 15:02:30 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TEKmW-0007Nq-I4; Wed, 19 Sep 2012 13:57:36 +0000
+Received: from mail27.messagelabs.com ([193.109.254.147])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1TEKmV-0007Nb-6T
+       for xen-devel@lists.xensource.com; Wed, 19 Sep 2012 13:57:35 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-4.tower-27.messagelabs.com!1348062966!11037943!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTAxNzU=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 18774 invoked from network); 19 Sep 2012 13:56:07 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-4.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
+       19 Sep 2012 13:56:07 -0000
+X-IronPort-AV: E=Sophos;i="4.80,447,1344211200"; d="scan'208";a="14632682"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       19 Sep 2012 13:55:15 +0000
+Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.279.1;
+       Wed, 19 Sep 2012 14:55:14 +0100
+Message-ID: <1348062913.14977.132.camel@zakaz.uk.xensource.com>
+From: Ian Campbell <Ian.Campbell@citrix.com>
+To: Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+Date: Wed, 19 Sep 2012 14:55:13 +0100
+In-Reply-To: <alpine.DEB.2.02.1209191408460.29232@kaball.uk.xensource.com>
+References: <alpine.DEB.2.02.1208221159560.15568@kaball.uk.xensource.com>
+       <1345633688-31684-1-git-send-email-stefano.stabellini@eu.citrix.com>
+       <1347627587.24226.192.camel@zakaz.uk.xensource.com>
+       <20120914160727.1ff41de2@mantra.us.oracle.com>
+       <alpine.DEB.2.02.1209171153350.29232@kaball.uk.xensource.com>
+       <1348059789.14977.119.camel@zakaz.uk.xensource.com>
+       <alpine.DEB.2.02.1209191408460.29232@kaball.uk.xensource.com>
+Organization: Citrix Systems, Inc.
+X-Mailer: Evolution 3.4.3-1 
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
+       "Tim \(Xen.org\)" <tim@xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.8 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH v4 1/6] xen: improve changes to
+       xen_add_to_physmap
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+> >          mfn = maddr >> PAGE_SHIFT;
+> > -  if (x && x--) {
+> > -            printk("Mapping dom%d mfn 0x%lx to dom%d mfn 0x%"PRIpaddr"\n",
+> > -                   od->domain_id, mfn, d->domain_id, xatp->gpfn);
+> > -        }
+> 
+> why remove the printk here?
+
+It's debug junk which crept in from somewhere else, I'll clean it up in
+the original patch which added it before posting this stuff properly.
+
+> > diff --git a/xen/include/public/memory.h b/xen/include/public/memory.h
+> > index b2adfbe..1cc7a80 100644
+> > --- a/xen/include/public/memory.h
+> > +++ b/xen/include/public/memory.h
+> > @@ -198,6 +198,15 @@ struct xen_machphys_mapping {
+> >  typedef struct xen_machphys_mapping xen_machphys_mapping_t;
+> >  DEFINE_XEN_GUEST_HANDLE(xen_machphys_mapping_t);
+> >  
+> > +/* Source mapping space. */
+> > +/* ` enum phys_map_space { */
+> > +#define XENMAPSPACE_shared_info  0 /* shared info page */
+> > +#define XENMAPSPACE_grant_table  1 /* grant table page */
+> > +#define XENMAPSPACE_gmfn         2 /* GMFN */
+> > +#define XENMAPSPACE_gmfn_range   3 /* GMFN range */
+> > +#define XENMAPSPACE_gmfn_foreign 4 /* GMFN from another dom */
+> > +/* ` } */
+> >  /*
+> >   * Sets the GPFN at which a particular page appears in the specified guest's
+> >   * pseudophysical address space.
+> > @@ -211,26 +220,40 @@ struct xen_add_to_physmap {
+> >      /* Number of pages to go through for gmfn_range */
+> >      uint16_t    size;
+> >  
+> > -    /* Source mapping space. */
+> > -#define XENMAPSPACE_shared_info  0 /* shared info page */
+> > -#define XENMAPSPACE_grant_table  1 /* grant table page */
+> > -#define XENMAPSPACE_gmfn         2 /* GMFN */
+> > -#define XENMAPSPACE_gmfn_range   3 /* GMFN range */
+> > -#define XENMAPSPACE_gmfn_foreign 4 /* GMFN from another guest */
+> > -    uint16_t space;
+> > +    uint16_t space; /* => enum phys_map_space */
+> >      domid_t foreign_domid; /* IFF gmfn_foreign */
+> 
+> I don't like very much that you have a uint16_t in the struct that
+> actually represents a union
+
+Actually, the foreign_domid can go from here, since it is entirely
+replaced with the xatp_range stuff. IOW XENMAPSPACE_gmfn_foreign will
+only be valid with the add_to_physmap_range version of this interface.
+
+This is just a left over (and it's convenient during the transition
+period).
+
+> 
+> 
+> >  #define XENMAPIDX_grant_table_status 0x80000000
+> >  
+> > -    /* Index into source mapping space. */
+> > +    /* Index into space being mapped. */
+> >      xen_ulong_t idx;
+> >  
+> > -    /* GPFN where the source mapping page should appear. */
+> > +    /* GPFN in domid where the source mapping page should appear. */
+> >      xen_pfn_t     gpfn;
+> >  };
+> >  typedef struct xen_add_to_physmap xen_add_to_physmap_t;
+> >  DEFINE_XEN_GUEST_HANDLE(xen_add_to_physmap_t);
+> >  
+> > +/* A batched version of add_to_physmap. */
+> > +#define XENMEM_add_to_physmap_range 23
+> > +struct xen_add_to_physmap_range {
+> > +    /* Which domain to change the mapping for. */
+> > +    domid_t domid;
+> > +    uint16_t space; /* => enum phys_map_space */
+> > +
+> > +    /* Number of pages to go through */
+> > +    uint16_t size;
+> > +    domid_t foreign_domid; /* IFF gmfn_foreign */
+> > +
+> > +    /* Indexes into space being mapped. */
+> > +    XEN_GUEST_HANDLE(xen_ulong_t) idxs;
+> > +
+> > +    /* GPFN in domdwhere the source mapping page should appear. */
+>                      ^ domid where
+
+Thanks.
+
+> 
+> > +    XEN_GUEST_HANDLE(xen_pfn_t) gpfns;
+> > +};
+> > +typedef struct xen_add_to_physmap_range xen_add_to_physmap_range_t;
+> > +DEFINE_XEN_GUEST_HANDLE(xen_add_to_physmap_range_t);
+> > +
+> >  /*
+> >   * Unmaps the page appearing at a particular GPFN from the specified guest's
+> >   * pseudophysical address space.
+> > diff --git a/xen/include/public/xen.h b/xen/include/public/xen.h
+> > index b2f6c50..9425520 100644
+> > --- a/xen/include/public/xen.h
+> > +++ b/xen/include/public/xen.h
+> > @@ -51,6 +51,7 @@ DEFINE_XEN_GUEST_HANDLE(void);
+> >  
+> >  DEFINE_XEN_GUEST_HANDLE(uint64_t);
+> >  DEFINE_XEN_GUEST_HANDLE(xen_pfn_t);
+> > +DEFINE_XEN_GUEST_HANDLE(xen_ulong_t);
+> >  #endif
+> 
+> You shouldn't need that: xen_ulong_t is already defined in arch-arm.h
+> (and arch-x86/xen.h)
+
+The type is, but the guest handle is not.
+
+Ian.
+
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1348659840.19176.31.camel@zakaz.uk.xensource.com> b/config/examples/test/corpus/<1348659840.19176.31.camel@zakaz.uk.xensource.com>
new file mode 100644 (file)
index 0000000..f9f3bf3
--- /dev/null
@@ -0,0 +1,169 @@
+From xen-devel-bounces@lists.xen.org Wed Sep 26 12:49:06 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 26 Sep 2012 12:49:06 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TGq6y-00037p-C5
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 26 Sep 2012 12:49:06 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TGq2B-0001aj-PA; Wed, 26 Sep 2012 11:44:07 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1TGq29-0001ae-AF
+       for Xen-devel@lists.xensource.com; Wed, 26 Sep 2012 11:44:05 +0000
+Received: from [85.158.139.83:14682] by server-7.bemta-5.messagelabs.com id
+       71/64-00431-48AE2605; Wed, 26 Sep 2012 11:44:04 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-10.tower-182.messagelabs.com!1348659843!32481095!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTE1NzQ=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 646 invoked from network); 26 Sep 2012 11:44:03 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-10.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
+       26 Sep 2012 11:44:03 -0000
+X-IronPort-AV: E=Sophos;i="4.80,490,1344211200"; d="scan'208";a="14774803"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       26 Sep 2012 11:44:03 +0000
+Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.279.1;
+       Wed, 26 Sep 2012 12:44:03 +0100
+Message-ID: <1348659840.19176.31.camel@zakaz.uk.xensource.com>
+From: Ian Campbell <Ian.Campbell@citrix.com>
+To: Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+Date: Wed, 26 Sep 2012 12:44:00 +0100
+In-Reply-To: <alpine.DEB.2.02.1209261225340.29232@kaball.uk.xensource.com>
+References: <20120921121659.5a723de9@mantra.us.oracle.com>
+       <alpine.DEB.2.02.1209241257440.29232@kaball.uk.xensource.com>
+       <20120924154335.097d3fb9@mantra.us.oracle.com>
+       <alpine.DEB.2.02.1209251054140.29232@kaball.uk.xensource.com>
+       <20120925180416.0137d61a@mantra.us.oracle.com>
+       <alpine.DEB.2.02.1209261225340.29232@kaball.uk.xensource.com>
+Organization: Citrix Systems, Inc.
+X-Mailer: Evolution 3.4.3-1 
+MIME-Version: 1.0
+Cc: "Xen-devel@lists.xensource.com" <Xen-devel@lists.xensource.com>,
+       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-5.0 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH v1 3/8]: PVH startup changes (enlighten.c)
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Wed, 2012-09-26 at 12:33 +0100, Stefano Stabellini wrote:
+> On Wed, 26 Sep 2012, Mukesh Rathor wrote:
+> > On Tue, 25 Sep 2012 11:03:13 +0100
+> > Stefano Stabellini <stefano.stabellini@eu.citrix.com> wrote:
+> > 
+> > > On Mon, 24 Sep 2012, Mukesh Rathor wrote:
+> > > > On Mon, 24 Sep 2012 13:07:19 +0100
+> > > > Stefano Stabellini <stefano.stabellini@eu.citrix.com> wrote:
+> > > > 
+> > > > > On Fri, 21 Sep 2012, Mukesh Rathor wrote:
+> > > > > > +          return;
+> > > > > > +
+> > > > > >    if (!xen_feature(XENFEAT_auto_translated_physmap)) {
+> > > > > >            set_fixmap(FIX_PARAVIRT_BOOTMAP,
+> > > > > >                       xen_start_info->shared_info);
+> > > > > >
+> > > > > > @@ -1044,6 +1058,10 @@ void xen_setup_shared_info(void)
+> > > > > >            HYPERVISOR_shared_info =
+> > > > > >                    (struct shared_info
+> > > > > > *)__va(xen_start_info->shared_info); 
+> > > > > > +  /* PVH TBD/FIXME: vcpu info placement in phase 2 */
+> > > > > > +  if (xen_pvh_domain())
+> > > > > > +          return;
+> > > > > 
+> > > > > It seems that if xen_initial_domain we always skip the
+> > > > > initialization while if !xen_initial_domain we only initialize
+> > > > > HYPERVISOR_shared_info. I don't understand why we have this
+> > > > > difference.
+> > > > 
+> > > > The comment in xen_pvh_guest_init() explains it. For domU the
+> > > > library maps the pfn at shared_info, ie, shared_info is pfn. For
+> > > > dom0, it's the mfn. Dom0 then allocates a pfn via extend_brk, and
+> > > > maps the mfn to it. This happens in the commond hvm code,
+> > > > xen_hvm_init_shared_info().
+> > > 
+> > > This difference is really subtle, it would be nice to get rid of it.
+> > > Could Xen allocate a pfn for dom0?
+> > 
+> > Not easily.
+> > 
+> > > Otherwise could we have the tools allocate an mfn instead of a pfn?
+> > > In fact looking at xc_dom_x86.c, alloc_magic_pages is explicitly
+> > > having a different behavior for xc_dom_feature_translated guests and
+> > > allocates pfn instead of an mfn. Maybe we could get rid of that
+> > > special case: less code in libxc, a common way of allocating the
+> > > shared_info page for domU and dom0 => win.
+> > 
+> > Wish it was simple. But for PV and PVH, domU, it's already setup the 
+> > shared page. All we need to do is __va(shared_info). But for HVM domUs 
+> > and PVH dom0, we need to hcall with pfn to get it remapped.
+> 
+> For PVH domU is already setup as a pfn only because in
+> tools/libxc/xc_dom_x86.c:alloc_magic_pages we have this code:
+> 
+>     if ( xc_dom_feature_translated(dom) )
+>         dom->shared_info_pfn = xc_dom_alloc_page(dom, "shared info");
+> 
+> and in tools/libxc/xc_dom_x86.c:start_info_x86_64 we have:
+> 
+>     xen_pfn_t shinfo =
+>         xc_dom_feature_translated(dom) ? dom->shared_info_pfn : dom->
+>         shared_info_mfn;
+> 
+> if we simply get rid of the two "if xc_dom_feature_translated(dom)"
+> wouldn't we get an mfn for PVH domU too? AFAICT all the other cases would
+> remain unmodified, but PVH domU would start getting an mfn for shared_info.
+
+The other option would be to have the hypervisor side builder for a PVH
+dom0 add an entry to the P2M for the shared info as well. Arguably that
+would be more PV like and therefore the correct thing for a PVH guest
+since it makes the shared info immediately available to the dom0.
+
+> > Changing the
+> > tool to map pfn, would result in unnecessary hcall for all PV and PVH
+> > domUs. It's only two lines of code, so lets just leave it. I'll make the
+> > comment better.
+> 
+> Yes, there would be one more unnecessary hypercall but we would get rid
+> of 4 "if". I think is a good trade off.
+
+Certainly minimising the numbers of hypercalls is not the most important
+thing in a code path which is run once at start of day.
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1349265914.650.136.camel@zakaz.uk.xensource.com> b/config/examples/test/corpus/<1349265914.650.136.camel@zakaz.uk.xensource.com>
new file mode 100644 (file)
index 0000000..61ded81
--- /dev/null
@@ -0,0 +1,107 @@
+From xen-devel-bounces@lists.xen.org Wed Oct 03 13:09:30 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 03 Oct 2012 13:09:30 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TJNlV-0005jY-6z
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 03 Oct 2012 13:09:30 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TJNhX-0001GC-0m; Wed, 03 Oct 2012 12:05:19 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1TJNhV-0001Fy-0V
+       for Xen-devel@lists.xensource.com; Wed, 03 Oct 2012 12:05:17 +0000
+Received: from [85.158.138.51:13262] by server-13.bemta-3.messagelabs.com id
+       96/83-11249-CF92C605; Wed, 03 Oct 2012 12:05:16 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-12.tower-174.messagelabs.com!1349265915!25010227!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTMxMDE=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 4412 invoked from network); 3 Oct 2012 12:05:15 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-12.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
+       3 Oct 2012 12:05:15 -0000
+X-IronPort-AV: E=Sophos;i="4.80,527,1344211200"; d="scan'208";a="14913720"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       03 Oct 2012 12:05:15 +0000
+Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.279.1; Wed, 3 Oct 2012
+       13:05:15 +0100
+Message-ID: <1349265914.650.136.camel@zakaz.uk.xensource.com>
+From: Ian Campbell <Ian.Campbell@citrix.com>
+To: Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+Date: Wed, 3 Oct 2012 13:05:14 +0100
+In-Reply-To: <alpine.DEB.2.02.1210031242180.29232@kaball.uk.xensource.com>
+References: <20120921121659.5a723de9@mantra.us.oracle.com>
+       <alpine.DEB.2.02.1209241257440.29232@kaball.uk.xensource.com>
+       <20120924154335.097d3fb9@mantra.us.oracle.com>
+       <alpine.DEB.2.02.1209251054140.29232@kaball.uk.xensource.com>
+       <20120925180416.0137d61a@mantra.us.oracle.com>
+       <alpine.DEB.2.02.1209261225340.29232@kaball.uk.xensource.com>
+       <20121002183619.70734b7a@mantra.us.oracle.com>
+       <20121002190323.2e16f6ff@mantra.us.oracle.com>
+       <alpine.DEB.2.02.1210031242180.29232@kaball.uk.xensource.com>
+Organization: Citrix Systems, Inc.
+X-Mailer: Evolution 3.4.3-1 
+MIME-Version: 1.0
+Cc: "Xen-devel@lists.xensource.com" <Xen-devel@lists.xensource.com>,
+       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH v1 3/8]: PVH startup changes (enlighten.c)
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Wed, 2012-10-03 at 12:58 +0100, Stefano Stabellini wrote:
+> > So for now, how about, lets go
+> > with what I've got. I'll make a note, and when I do xen patch, I'll
+> > figure it out, and would be a very small linux patch. I want to get
+> > linux patch in soon before the window closes.
+> 
+> We can leave page special as it is for now with very little
+> consequences, because it is not part of the interface with Xen. However
+> this is part of the interface, so whatever we choose here is going to be
+> hard to change later on.
+
+I suggested that until we have seen and reviewed the hypervisor side
+patches this guest side functionality all needs to be under an option
+which has CONFIG_EXPERIMENTAL as a dependency and a comment explaining
+that the ABI is not fixed yet, similar to what we did for the ARM port.
+
+Ian.
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1349271323.650.148.camel@zakaz.uk.xensource.com> b/config/examples/test/corpus/<1349271323.650.148.camel@zakaz.uk.xensource.com>
new file mode 100644 (file)
index 0000000..7c91011
--- /dev/null
@@ -0,0 +1,97 @@
+From xen-devel-bounces@lists.xen.org Wed Oct 03 14:38:42 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 03 Oct 2012 14:38:42 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TJP9s-00065U-5F
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 03 Oct 2012 14:38:42 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TJP6m-00059n-PV; Wed, 03 Oct 2012 13:35:28 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1TJP6l-00059P-Jv
+       for xen-devel@lists.xensource.com; Wed, 03 Oct 2012 13:35:27 +0000
+Received: from [85.158.143.99:32730] by server-1.bemta-4.messagelabs.com id
+       43/C7-05684-E1F3C605; Wed, 03 Oct 2012 13:35:26 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-11.tower-216.messagelabs.com!1349271325!25185286!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTMxMDE=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 6862 invoked from network); 3 Oct 2012 13:35:25 -0000
+Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-11.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
+       3 Oct 2012 13:35:25 -0000
+X-IronPort-AV: E=Sophos;i="4.80,528,1344211200"; d="scan'208";a="14916454"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       03 Oct 2012 13:35:25 +0000
+Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.279.1; Wed, 3 Oct 2012
+       14:35:25 +0100
+Message-ID: <1349271323.650.148.camel@zakaz.uk.xensource.com>
+From: Ian Campbell <Ian.Campbell@citrix.com>
+To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+Date: Wed, 3 Oct 2012 14:35:23 +0100
+In-Reply-To: <1345633688-31684-4-git-send-email-stefano.stabellini@eu.citrix.com>
+References: <alpine.DEB.2.02.1208221159560.15568@kaball.uk.xensource.com>
+       <1345633688-31684-4-git-send-email-stefano.stabellini@eu.citrix.com>
+Organization: Citrix Systems, Inc.
+X-Mailer: Evolution 3.4.3-1 
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
+       "Tim \(Xen.org\)" <tim@xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH v4 4/6] xen: introduce XEN_GUEST_HANDLE_PARAM
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Wed, 2012-08-22 at 12:08 +0100, Stefano Stabellini wrote:
+> +#define set_xen_guest_handle_raw(hnd, val)                  \
+> +    do {                                                    \
+> +        typeof(&(hnd)) t = &(hnd);                          \
+> +        _t->q = 0;                                          \
+> +        _t->p = val;                                        \
+
+You have a mix of t and _t here...
+
+Since this macro is used in the tools it would be useful to avoid any
+potentially clashing names (e.g. so -Wshadow doesn't moan).
+
+_sxghr_tmp?
+
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1349272182.650.150.camel@zakaz.uk.xensource.com> b/config/examples/test/corpus/<1349272182.650.150.camel@zakaz.uk.xensource.com>
new file mode 100644 (file)
index 0000000..3248851
--- /dev/null
@@ -0,0 +1,131 @@
+From xen-devel-bounces@lists.xen.org Wed Oct 03 14:53:28 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 03 Oct 2012 14:53:28 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TJPO6-00069K-IV
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 03 Oct 2012 14:53:28 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TJPKe-0006Ab-EV; Wed, 03 Oct 2012 13:49:48 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1TJPKc-0006AR-Us
+       for xen-devel@lists.xensource.com; Wed, 03 Oct 2012 13:49:47 +0000
+Received: from [85.158.138.51:52635] by server-6.bemta-3.messagelabs.com id
+       BD/F8-11085-A724C605; Wed, 03 Oct 2012 13:49:46 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-6.tower-174.messagelabs.com!1349272185!24920221!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTMxMDE=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 939 invoked from network); 3 Oct 2012 13:49:45 -0000
+Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-6.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
+       3 Oct 2012 13:49:45 -0000
+X-IronPort-AV: E=Sophos;i="4.80,528,1344211200"; d="scan'208";a="14916789"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       03 Oct 2012 13:49:44 +0000
+Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.279.1; Wed, 3 Oct 2012
+       14:49:44 +0100
+Message-ID: <1349272182.650.150.camel@zakaz.uk.xensource.com>
+From: Ian Campbell <Ian.Campbell@citrix.com>
+To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+Date: Wed, 3 Oct 2012 14:49:42 +0100
+In-Reply-To: <alpine.DEB.2.02.1210031431080.29232@kaball.uk.xensource.com>
+References: <alpine.DEB.2.02.1210031431080.29232@kaball.uk.xensource.com>
+Organization: Citrix Systems, Inc.
+X-Mailer: Evolution 3.4.3-1 
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
+       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
+       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH] xen: point xen_start_info to a dummy struct
+ for PV on HVM guests
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Wed, 2012-10-03 at 14:37 +0100, Stefano Stabellini wrote:
+> PV on HVM guests don't have a start_info page mapped by Xen, so
+> xen_start_info is just NULL for them.
+> That is problem because other parts of the code expect xen_start_info to
+> point to something valid, for example xen_initial_domain() is defined as
+> follow:
+> 
+> #define xen_initial_domain()    (xen_domain() && \
+>                  xen_start_info->flags & SIF_INITDOMAIN)
+
+But anyone who calls this before xen_start_info is setup is going to get
+a bogus result, specifically in this case they will think they are domU
+when in reality they are dom0 -- wouldn't it be better to fix those
+callsites?
+
+Perhaps turn this into a static inline with a BUG_ON(!xen_start_info) to
+make catching these cases easier?
+
+> 
+> 
+> Allocate a dummy start_info struct and point xen_start_info to it, as we
+> do on ARM.
+> This is not going to change things for PV guests because
+> xen_start_info is set by arch/x86/xen/xen-head.S:startup_xen.
+> 
+> Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+> 
+> diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c
+> index bf788d3..5f242cb 100644
+> --- a/arch/x86/xen/enlighten.c
+> +++ b/arch/x86/xen/enlighten.c
+> @@ -96,7 +96,8 @@ EXPORT_SYMBOL(machine_to_phys_mapping);
+>  unsigned long  machine_to_phys_nr;
+>  EXPORT_SYMBOL(machine_to_phys_nr);
+>  
+> -struct start_info *xen_start_info;
+> +static struct start_info _xen_start_info;
+> +struct start_info *xen_start_info = &_xen_start_info;
+>  EXPORT_SYMBOL_GPL(xen_start_info);
+>  
+>  struct shared_info xen_dummy_shared_info;
+> 
+> _______________________________________________
+> Xen-devel mailing list
+> Xen-devel@lists.xen.org
+> http://lists.xen.org/xen-devel
+
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1349272482.650.151.camel@zakaz.uk.xensource.com> b/config/examples/test/corpus/<1349272482.650.151.camel@zakaz.uk.xensource.com>
new file mode 100644 (file)
index 0000000..e8964c8
--- /dev/null
@@ -0,0 +1,117 @@
+From xen-devel-bounces@lists.xen.org Wed Oct 03 14:58:42 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 03 Oct 2012 14:58:42 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TJPTB-0006B1-8N
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 03 Oct 2012 14:58:42 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TJPPS-0006TZ-HR; Wed, 03 Oct 2012 13:54:46 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1TJPPQ-0006TQ-Uj
+       for xen-devel@lists.xensource.com; Wed, 03 Oct 2012 13:54:45 +0000
+Received: from [85.158.143.35:48003] by server-3.bemta-4.messagelabs.com id
+       52/5C-10986-4A34C605; Wed, 03 Oct 2012 13:54:44 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-12.tower-21.messagelabs.com!1349272483!12886826!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTMxMDE=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 21244 invoked from network); 3 Oct 2012 13:54:43 -0000
+Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-12.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
+       3 Oct 2012 13:54:43 -0000
+X-IronPort-AV: E=Sophos;i="4.80,528,1344211200"; d="scan'208";a="14916920"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       03 Oct 2012 13:54:43 +0000
+Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.279.1; Wed, 3 Oct 2012
+       14:54:43 +0100
+Message-ID: <1349272482.650.151.camel@zakaz.uk.xensource.com>
+From: Ian Campbell <Ian.Campbell@citrix.com>
+To: Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+Date: Wed, 3 Oct 2012 14:54:42 +0100
+In-Reply-To: <alpine.DEB.2.02.1210031450220.29232@kaball.uk.xensource.com>
+References: <alpine.DEB.2.02.1210031431080.29232@kaball.uk.xensource.com>
+       <1349272182.650.150.camel@zakaz.uk.xensource.com>
+       <alpine.DEB.2.02.1210031450220.29232@kaball.uk.xensource.com>
+Organization: Citrix Systems, Inc.
+X-Mailer: Evolution 3.4.3-1 
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
+       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
+       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH] xen: point xen_start_info to a dummy struct
+ for PV on HVM guests
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Wed, 2012-10-03 at 14:51 +0100, Stefano Stabellini wrote:
+> On Wed, 3 Oct 2012, Ian Campbell wrote:
+> > On Wed, 2012-10-03 at 14:37 +0100, Stefano Stabellini wrote:
+> > > PV on HVM guests don't have a start_info page mapped by Xen, so
+> > > xen_start_info is just NULL for them.
+> > > That is problem because other parts of the code expect xen_start_info to
+> > > point to something valid, for example xen_initial_domain() is defined as
+> > > follow:
+> > > 
+> > > #define xen_initial_domain()    (xen_domain() && \
+> > >                  xen_start_info->flags & SIF_INITDOMAIN)
+> > 
+> > But anyone who calls this before xen_start_info is setup is going to get
+> > a bogus result, specifically in this case they will think they are domU
+> > when in reality they are dom0 -- wouldn't it be better to fix those
+> > callsites?
+> 
+> That cannot be the case because setting up xen_start_info is the very
+> first thing that is done, before even calling to C.
+
+On PV, yes, but you are trying to fix PVHVM here, no?
+
+Otherwise if this is always set before calling into C then what is the
+purpose of this patch?
+
+> 
+> 
+> > Perhaps turn this into a static inline with a BUG_ON(!xen_start_info) to
+> > make catching these cases easier?
+> 
+
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1349276431.650.156.camel@zakaz.uk.xensource.com> b/config/examples/test/corpus/<1349276431.650.156.camel@zakaz.uk.xensource.com>
new file mode 100644 (file)
index 0000000..8c7fd3c
--- /dev/null
@@ -0,0 +1,267 @@
+From xen-devel-bounces@lists.xen.org Wed Oct 03 16:06:04 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 03 Oct 2012 16:06:04 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TJQWM-0006TO-4V
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 03 Oct 2012 16:06:04 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TJQRD-0000Vv-PE; Wed, 03 Oct 2012 15:00:39 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1TJQRB-0000Vq-6D
+       for xen-devel@lists.xensource.com; Wed, 03 Oct 2012 15:00:37 +0000
+Received: from [85.158.143.99:59816] by server-2.bemta-4.messagelabs.com id
+       17/24-06610-4135C605; Wed, 03 Oct 2012 15:00:36 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-7.tower-216.messagelabs.com!1349276433!26607899!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTMxMDE=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 18114 invoked from network); 3 Oct 2012 15:00:34 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-7.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
+       3 Oct 2012 15:00:34 -0000
+X-IronPort-AV: E=Sophos;i="4.80,528,1344211200"; d="scan'208";a="14918687"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       03 Oct 2012 15:00:33 +0000
+Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.279.1; Wed, 3 Oct 2012
+       16:00:33 +0100
+Message-ID: <1349276431.650.156.camel@zakaz.uk.xensource.com>
+From: Ian Campbell <Ian.Campbell@citrix.com>
+To: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+Date: Wed, 3 Oct 2012 16:00:31 +0100
+In-Reply-To: <20121003141116.GA10633@phenom.dumpdata.com>
+References: <alpine.DEB.2.02.1210031431080.29232@kaball.uk.xensource.com>
+       <1349272182.650.150.camel@zakaz.uk.xensource.com>
+       <alpine.DEB.2.02.1210031450220.29232@kaball.uk.xensource.com>
+       <1349272482.650.151.camel@zakaz.uk.xensource.com>
+       <20121003141116.GA10633@phenom.dumpdata.com>
+Organization: Citrix Systems, Inc.
+X-Mailer: Evolution 3.4.3-1 
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
+       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
+Subject: Re: [Xen-devel] [PATCH] xen: point xen_start_info to a dummy struct
+ for PV on HVM guests
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Wed, 2012-10-03 at 15:11 +0100, Konrad Rzeszutek Wilk wrote:
+> On Wed, Oct 03, 2012 at 02:54:42PM +0100, Ian Campbell wrote:
+> > On Wed, 2012-10-03 at 14:51 +0100, Stefano Stabellini wrote:
+> > > On Wed, 3 Oct 2012, Ian Campbell wrote:
+> > > > On Wed, 2012-10-03 at 14:37 +0100, Stefano Stabellini wrote:
+> > > > > PV on HVM guests don't have a start_info page mapped by Xen, so
+> > > > > xen_start_info is just NULL for them.
+> > > > > That is problem because other parts of the code expect xen_start_info to
+> > > > > point to something valid, for example xen_initial_domain() is defined as
+> > > > > follow:
+> > > > > 
+> > > > > #define xen_initial_domain()    (xen_domain() && \
+> > > > >                  xen_start_info->flags & SIF_INITDOMAIN)
+> > > > 
+> > > > But anyone who calls this before xen_start_info is setup is going to get
+> > > > a bogus result, specifically in this case they will think they are domU
+> > > > when in reality they are dom0 -- wouldn't it be better to fix those
+> > > > callsites?
+> > > 
+> > > That cannot be the case because setting up xen_start_info is the very
+> > > first thing that is done, before even calling to C.
+> > 
+> > On PV, yes, but you are trying to fix PVHVM here, no?
+> > 
+> > Otherwise if this is always set before calling into C then what is the
+> > purpose of this patch?
+> 
+> to fix this - as PVHVM has it set to NULL and we end up de-referencing
+> the xen_start_info and crashing. As so::
+> 
+
+Right, so returning to my original point: The caller here is calling
+xen_initial_domain() *before* start info is setup. This is bogus and is
+your actual bug, all this patch does is hide that real issue.
+
+With this "fix" the caller of xen_initial_domain shown in this trace now
+gets a rubbish result based on the content of a dummy shared info
+instead of the real answer from that actual shared info.
+
+The right fix is to fix the caller to not call xen_initial_domain()
+until after the shared info has been setup. Maybe that means moving
+shinfo setup earlier, or maybe it means deferring this call until later
+in the PVHVM case.
+
+> 
+> Decompressing Linux... Parsing ELF... done.
+> Booting the kernel.
+> [    0.000000] Initializing cgroup subsys cpuset
+> [    0.000000] Initializing cgroup subsys cpu
+> [    0.000000] Linux version 3.6.0upstream-04121-g0313983 (konrad@build.dumpdata.com) (gcc version 4.4.4 20100503 (Red Hat 4.4.4-2) (GCC) ) #1 SMP Tue Oct 2 16:31:21 EDT 2012
+> [    0.000000] Command line: initrd=initramf.gz  console=ttyS0,115200 test=net nofb earlyprintk=serial,ttyS0,115200 BOOT_IMAGE=vmlinuz 
+> [    0.000000] e820: BIOS-provided physical RAM map:
+> [    0.000000] BIOS-e820: [mem 0x0000000000000000-0x000000000009dfff] usable
+> [    0.000000] BIOS-e820: [mem 0x000000000009e000-0x000000000009ffff] reserved
+> [    0.000000] BIOS-e820: [mem 0x00000000000e0000-0x00000000000fffff] reserved
+> [    0.000000] BIOS-e820: [mem 0x0000000000100000-0x000000007fffffff] usable
+> [    0.000000] BIOS-e820: [mem 0x00000000fc000000-0x00000000ffffffff] reserved
+> [    0.000000] bootconsole [earlyser0] enabled
+> [    0.000000] NX (Execute Disable) protection: active
+> [    0.000000] DMI 2.4 present.
+> [    0.000000] Hypervisor detected: Xen HVM
+> [    0.000000] Xen version 4.1.
+> [    0.000000] Netfront and the Xen platform PCI driver have been compiled for this kernel: unplug emulated NICs.
+> [    0.000000] Blkfront and the Xen platform PCI driver have been compiled for this kernel: unplug emulated disks.
+> [    0.000000] You might have to change the root device
+> [    0.000000] from /dev/hd[a-d] to /dev/xvd[a-d]
+> [    0.000000] in your root= kernel command line option
+> [    0.000000] No AGP bridge found
+> [    0.000000] e820: last_pfn = 0x80000 max_arch_pfn = 0x400000000
+> [    0.000000] x86 PAT enabled: cpu 0, old 0x7040600070406, new 0x7010600070106
+> [    0.000000] found SMP MP-table at [mem 0x000fbc90-0x000fbc9f] mapped at [ffff8800000fbc90]
+> [    0.000000] init_memory_mapping: [mem 0x00000000-0x7fffffff]
+> [    0.000000] RAMDISK: [mem 0x7abeb000-0x7ffdefff]
+> [    0.000000] ACPI: RSDP 00000000000ea020 00024 (v02    Xen)
+> [    0.000000] ACPI: XSDT 00000000fc00f2b0 00034 (v01    Xen      HVM 00000000 HVML 00000000)
+> [    0.000000] ACPI: FACP 00000000fc00f0d0 000F4 (v04    Xen      HVM 00000000 HVML 00000000)
+> [    0.000000] ACPI: DSDT 00000000fc003440 0BC09 (v02    Xen      HVM 00000000 INTL 20100528)
+> [    0.000000] ACPI: FACS 00000000fc003400 00040
+> [    0.000000] ACPI: APIC 00000000fc00f1d0 000D8 (v02    Xen      HVM 00000000 HVML 00000000)
+> [    0.000000] No NUMA configuration found
+> [    0.000000] Faking a node at [mem 0x0000000000000000-0x000000007fffffff]
+> [    0.000000] Initmem setup node 0 [mem 0x00000000-0x7fffffff]
+> [    0.000000]   NODE_DATA [mem 0x7fffc000-0x7fffffff]
+> [    0.000000] Zone ranges:
+> [    0.000000]   DMA      [mem 0x00010000-0x00ffffff]
+> [    0.000000]   DMA32    [mem 0x01000000-0xffffffff]
+> [    0.000000]   Normal   empty
+> [    0.000000] Movable zone start for each node
+> [    0.000000] Early memory node ranges
+> [    0.000000]   node   0: [mem 0x00010000-0x0009dfff]
+> [    0.000000]   node   0: [mem 0x00100000-0x7fffffff]
+> [    0.000000] ACPI: PM-Timer IO Port: 0xb008
+> [    0.000000] ACPI: LAPIC (acpi_id[0x00] lapic_id[0x00] enabled)
+> [    0.000000] ACPI: LAPIC (acpi_id[0x01] lapic_id[0x02] enabled)
+> [    0.000000] ACPI: LAPIC (acpi_id[0x02] lapic_id[0x04] disabled)
+> [    0.000000] ACPI: LAPIC (acpi_id[0x03] lapic_id[0x06] disabled)
+> [    0.000000] ACPI: LAPIC (acpi_id[0x04] lapic_id[0x08] disabled)
+> [    0.000000] ACPI: LAPIC (acpi_id[0x05] lapic_id[0x0a] disabled)
+> [    0.000000] ACPI: LAPIC (acpi_id[0x06] lapic_id[0x0c] disabled)
+> [    0.000000] ACPI: LAPIC (acpi_id[0x07] lapic_id[0x0e] disabled)
+> [    0.000000] ACPI: LAPIC (acpi_id[0x08] lapic_id[0x10] disabled)
+> [    0.000000] ACPI: LAPIC (acpi_id[0x09] lapic_id[0x12] disabled)
+> [    0.000000] ACPI: LAPIC (acpi_id[0x0a] lapic_id[0x14] disabled)
+> [    0.000000] ACPI: LAPIC (acpi_id[0x0b] lapic_id[0x16] disabled)
+> [    0.000000] ACPI: LAPIC (acpi_id[0x0c] lapic_id[0x18] disabled)
+> [    0.000000] ACPI: LAPIC (acpi_id[0x0d] lapic_id[0x1a] disabled)
+> [    0.000000] ACPI: LAPIC (acpi_id[0x0e] lapic_id[0x1c] disabled)
+> [    0.000000] ACPI: IOAPIC (id[0x01] address[0xfec00000] gsi_base[0])
+> [    0.000000] IOAPIC[0]: apic_id 1, version 17, address 0xfec00000, GSI 0-47
+> [    0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl dfl)
+> [    0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 5 global_irq 5 low level)
+> [    0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 10 global_irq 10 low level)
+> [    0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 11 global_irq 11 low level)
+> [    0.000000] Using ACPI (MADT) for SMP configuration information
+> [    0.000000] smpboot: Allowing 15 CPUs, 13 hotplug CPUs
+> [    0.000000] PM: Registered nosave memory: 000000000009e000 - 00000000000a0000
+> [    0.000000] PM: Registered nosave memory: 00000000000a0000 - 00000000000e0000
+> [    0.000000] PM: Registered nosave memory: 00000000000e0000 - 0000000000100000
+> [    0.000000] e820: [mem 0x80000000-0xfbffffff] available for PCI devices
+> [    0.000000] Booting paravirtualized kernel on Xen HVM
+> [    0.000000] setup_percpu: NR_CPUS:512 nr_cpumask_bits:512 nr_cpu_ids:15 nr_node_ids:1
+> [    0.000000] PERCPU: Embedded 28 pages/cpu @ffff88007a800000 s84352 r8192 d22144 u131072
+> [    0.000000] Built 1 zonelists in Node order, mobility grouping on.  Total pages: 517000
+> [    0.000000] Policy zone: DMA32
+> [    0.000000] Kernel command line: initrd=initramf.gz  console=ttyS0,115200 test=net nofb earlyprintk=serial,ttyS0,115200 BOOT_IMAGE=vmlinuz 
+> [    0.000000] PID hash table entries: 4096 (order: 3, 32768 bytes)
+> [    0.000000] __ex_table already sorted, skipping sort
+> [    0.000000] Checking aperture...
+> [    0.000000] No AGP bridge found
+> [    0.000000] Memory: 1967336k/2097152k available (6368k kernel code, 456k absent, 129360k reserved, 4525k data, 752k init)
+> [    0.000000] Hierarchical RCU implementation.
+> [    0.000000]       RCU restricting CPUs from NR_CPUS=512 to nr_cpu_ids=15.
+> [    0.000000] NR_IRQS:33024 nr_irqs:1208 16
+> [    0.000000] Xen HVM callback vector for event delivery is enabled
+> [    0.000000] Console: colour VGA+ 80x25
+> [    0.000000] BUG: unable to handle kernel NULL pointer dereference at 0000000000000030
+> [    0.000000] IP: [<ffffffff813ab3be>] xen_cons_init+0x1e/0x60
+> [    0.000000] PGD 0 
+> [    0.000000] Oops: 0000 [#1] SMP 
+> [    0.000000] Modules linked in:
+> [    0.000000] CPU 0 
+> [    0.000000] Pid: 0, comm: swapper/0 Not tainted 3.6.0upstream-04121-g0313983 #1 Xen HVM domU
+> [    0.000000] RIP: 0010:[<ffffffff813ab3be>]  [<ffffffff813ab3be>] xen_cons_init+0x1e/0x60
+> [    0.000000] RSP: 0000:ffffffff81a01ef8  EFLAGS: 00010202
+> [    0.000000] RAX: 0000000000000000 RBX: ffffffff81b3be60 RCX: 0000000000000002
+> [    0.000000] RDX: ffffffff81a59c40 RSI: ffffffff81a59b01 RDI: ffffffff81ba7e81
+> [    0.000000] RBP: ffffffff81a01ef8 R08: 00000000000003fd R09: 0000000000000020
+> [    0.000000] R10: 0000000000000000 R11: 000000000000000d R12: ffffffff81b008e0
+> [    0.000000] R13: ffffffff81b092e0 R14: 0000000000000000 R15: 0000000000026bf0
+> [    0.000000] FS:  0000000000000000(0000) GS:ffff88007a800000(0000) knlGS:0000000000000000
+> [    0.000000] CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b
+> [    0.000000] CR2: 0000000000000030 CR3: 0000000001a0b000 CR4: 00000000000006b0
+> [    0.000000] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
+> [    0.000000] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
+> [    0.000000] Process swapper/0 (pid: 0, threadinfo ffffffff81a00000, task ffffffff81a13420)
+> [    0.000000] Stack:
+> [    0.000000]  ffffffff81a01f18 ffffffff81aeb9fb ffffffff81b008e0 ffffffffffffffff
+> [    0.000000]  ffffffff81a01f68 ffffffff81abac39 ffffffff81aba80d 0000000000026bf0
+> [    0.000000]  ffffffff81a01f58 ffffffff81b092e0 0000000001000000 0000000001c72000
+> [    0.000000] Call Trace:
+> [    0.000000]  [<ffffffff81aeb9fb>] console_init+0x19/0x2a
+> [    0.000000]  [<ffffffff81abac39>] start_kernel+0x24a/0x3a3
+> [    0.000000]  [<ffffffff81aba80d>] ? kernel_init+0x1e8/0x1e8
+> [    0.000000]  [<ffffffff81aba356>] x86_64_start_reservations+0x131/0x136
+> [    0.000000]  [<ffffffff81aba45e>] x86_64_start_kernel+0x103/0x112
+> [    0.000000] Code: 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 8b 0d 5a 2e 7c 00 55 31 c0 48 89 e5 85 c9 74 37 48 8b 05 51 2e 7c 00 48 c7 c2 40 9c a5 81 <f6> 40 30 02 75 15 83 f9 02 74 27 e8 52 fc ff ff 85 c0 78 15 48 
+> [    0.000000] RIP  [<ffffffff813ab3be>] xen_cons_init+0x1e/0x60
+> [    0.000000]  RSP <ffffffff81a01ef8>
+> [    0.000000] CR2: 0000000000000030
+> [    0.000000] ---[ end trace 5cb378039a20e088 ]---
+> [    0.000000] Kernel panic - not syncing: Attempted to kill the idle task!
+> > 
+> > > 
+> > > 
+> > > > Perhaps turn this into a static inline with a BUG_ON(!xen_start_info) to
+> > > > make catching these cases easier?
+> > > 
+> > 
+
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1349279862.650.171.camel@zakaz.uk.xensource.com> b/config/examples/test/corpus/<1349279862.650.171.camel@zakaz.uk.xensource.com>
new file mode 100644 (file)
index 0000000..dfb0bc1
--- /dev/null
@@ -0,0 +1,173 @@
+From xen-devel-bounces@lists.xen.org Wed Oct 03 17:01:25 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 03 Oct 2012 17:01:25 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TJRNw-0006kG-DU
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 03 Oct 2012 17:01:25 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TJRKU-0002Dz-G4; Wed, 03 Oct 2012 15:57:46 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1TJRKT-0002Dt-OB
+       for xen-devel@lists.xensource.com; Wed, 03 Oct 2012 15:57:45 +0000
+Received: from [85.158.143.99:9023] by server-2.bemta-4.messagelabs.com id
+       35/1C-06610-9706C605; Wed, 03 Oct 2012 15:57:45 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-13.tower-216.messagelabs.com!1349279864!26482067!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTMxMDE=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 24545 invoked from network); 3 Oct 2012 15:57:44 -0000
+Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-13.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
+       3 Oct 2012 15:57:44 -0000
+X-IronPort-AV: E=Sophos;i="4.80,528,1344211200"; d="scan'208";a="14920233"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       03 Oct 2012 15:57:44 +0000
+Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.279.1; Wed, 3 Oct 2012
+       16:57:44 +0100
+Message-ID: <1349279862.650.171.camel@zakaz.uk.xensource.com>
+From: Ian Campbell <Ian.Campbell@citrix.com>
+To: Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+Date: Wed, 3 Oct 2012 16:57:42 +0100
+In-Reply-To: <alpine.DEB.2.02.1210031641050.29232@kaball.uk.xensource.com>
+References: <alpine.DEB.2.02.1210031431080.29232@kaball.uk.xensource.com>
+       <1349272182.650.150.camel@zakaz.uk.xensource.com>
+       <alpine.DEB.2.02.1210031450220.29232@kaball.uk.xensource.com>
+       <1349272482.650.151.camel@zakaz.uk.xensource.com>
+       <20121003141116.GA10633@phenom.dumpdata.com>
+       <1349276431.650.156.camel@zakaz.uk.xensource.com>
+       <alpine.DEB.2.02.1210031641050.29232@kaball.uk.xensource.com>
+Organization: Citrix Systems, Inc.
+X-Mailer: Evolution 3.4.3-1 
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
+       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
+       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
+Subject: Re: [Xen-devel] [PATCH] xen: point xen_start_info to a dummy struct
+ for PV on HVM guests
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Wed, 2012-10-03 at 16:48 +0100, Stefano Stabellini wrote:
+> On Wed, 3 Oct 2012, Ian Campbell wrote:
+> > On Wed, 2012-10-03 at 15:11 +0100, Konrad Rzeszutek Wilk wrote:
+> > > On Wed, Oct 03, 2012 at 02:54:42PM +0100, Ian Campbell wrote:
+> > > > On Wed, 2012-10-03 at 14:51 +0100, Stefano Stabellini wrote:
+> > > > > On Wed, 3 Oct 2012, Ian Campbell wrote:
+> > > > > > On Wed, 2012-10-03 at 14:37 +0100, Stefano Stabellini wrote:
+> > > > > > > PV on HVM guests don't have a start_info page mapped by Xen, so
+> > > > > > > xen_start_info is just NULL for them.
+> > > > > > > That is problem because other parts of the code expect xen_start_info to
+> > > > > > > point to something valid, for example xen_initial_domain() is defined as
+> > > > > > > follow:
+> > > > > > > 
+> > > > > > > #define xen_initial_domain()    (xen_domain() && \
+> > > > > > >                  xen_start_info->flags & SIF_INITDOMAIN)
+> > > > > > 
+> > > > > > But anyone who calls this before xen_start_info is setup is going to get
+> > > > > > a bogus result, specifically in this case they will think they are domU
+> > > > > > when in reality they are dom0 -- wouldn't it be better to fix those
+> > > > > > callsites?
+> > > > > 
+> > > > > That cannot be the case because setting up xen_start_info is the very
+> > > > > first thing that is done, before even calling to C.
+> > > > 
+> > > > On PV, yes, but you are trying to fix PVHVM here, no?
+> > > > 
+> > > > Otherwise if this is always set before calling into C then what is the
+> > > > purpose of this patch?
+> > > 
+> > > to fix this - as PVHVM has it set to NULL and we end up de-referencing
+> > > the xen_start_info and crashing. As so::
+> > > 
+> > 
+> > Right, so returning to my original point: The caller here is calling
+> > xen_initial_domain() *before* start info is setup. This is bogus and is
+> > your actual bug, all this patch does is hide that real issue.
+> 
+> That is because xen_start_info wasn't setup at all for PV on HVM guests.
+> 
+> The real reason is that PV on HVM guests don't have one, but that is
+> another matter. Until we get rid of all the references to xen_start_info
+> outside of PV specific code, we should just assume that there is one,
+> and that is already setup.
+> 
+> One day not too far from now, we might refactor the code to never
+> reference xen_start_info directly, but I don't think that now is the
+> time for that. Also consider that this is the same thing we do on ARM.
+
+We actual fill in the dummy start info with valid information on ARM
+though, we don't just leave it full of zeroes.
+
+If we do start out with start_info pointing to an uninitialised
+start_info on ARM too then I would argue that this is also a mistake. We
+should leave the NULL pointer in place until we setup the content of the
+dummy start info -- exactly because the resulting crash indicates to us
+that someone has accessed the si before we've initialised it.
+
+> > With this "fix" the caller of xen_initial_domain shown in this trace now
+> > gets a rubbish result based on the content of a dummy shared info
+> > instead of the real answer from that actual shared info.
+> 
+> That is not true. The caller gets a zero result, that is completely
+> appropriate in this case, given that a PV on HVM guest doesn't have a
+> start_info.
+
+It's just a side effect of Linux zeroing its bss though and zero
+happening to be the right answer for a PVHVM guest in this case.
+
+Is it true that zero is an appropriate result for all uses of fields in
+start_info on PVHVM?
+
+> > The right fix is to fix the caller to not call xen_initial_domain()
+> > until after the shared info has been setup. Maybe that means moving
+> > shinfo setup earlier, or maybe it means deferring this call until later
+> > in the PVHVM case.
+> 
+> I don't think so, we should be able to call xen_initial_domain() at any
+> point in the code.
+> 
+> The best course of action is taking this fix now (making PVHVM x86
+> guests behave the same way as ARM guests) and refactor all the callers to
+> xen_start_info later.
+
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1349280814.650.178.camel@zakaz.uk.xensource.com> b/config/examples/test/corpus/<1349280814.650.178.camel@zakaz.uk.xensource.com>
new file mode 100644 (file)
index 0000000..a3167b8
--- /dev/null
@@ -0,0 +1,186 @@
+From xen-devel-bounces@lists.xen.org Wed Oct 03 17:20:07 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 03 Oct 2012 17:20:07 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TJRg0-0006pY-TD
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 03 Oct 2012 17:20:07 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TJRc4-0003eW-EZ; Wed, 03 Oct 2012 16:15:56 +0000
+Received: from mail27.messagelabs.com ([193.109.254.147])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1TJRc1-0003eJ-Rb
+       for xen-devel@lists.xensource.com; Wed, 03 Oct 2012 16:15:54 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-11.tower-27.messagelabs.com!1349280942!4037133!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTMxMDE=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 1156 invoked from network); 3 Oct 2012 16:15:42 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-11.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
+       3 Oct 2012 16:15:42 -0000
+X-IronPort-AV: E=Sophos;i="4.80,528,1344211200"; d="scan'208";a="14920864"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       03 Oct 2012 16:13:35 +0000
+Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.279.1; Wed, 3 Oct 2012
+       17:13:35 +0100
+Message-ID: <1349280814.650.178.camel@zakaz.uk.xensource.com>
+From: Ian Campbell <Ian.Campbell@citrix.com>
+To: Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+Date: Wed, 3 Oct 2012 17:13:34 +0100
+In-Reply-To: <alpine.DEB.2.02.1210031658120.29232@kaball.uk.xensource.com>
+References: <alpine.DEB.2.02.1210031431080.29232@kaball.uk.xensource.com>
+       <1349272182.650.150.camel@zakaz.uk.xensource.com>
+       <alpine.DEB.2.02.1210031450220.29232@kaball.uk.xensource.com>
+       <1349272482.650.151.camel@zakaz.uk.xensource.com>
+       <20121003141116.GA10633@phenom.dumpdata.com>
+       <1349276431.650.156.camel@zakaz.uk.xensource.com>
+       <alpine.DEB.2.02.1210031641050.29232@kaball.uk.xensource.com>
+       <1349279862.650.171.camel@zakaz.uk.xensource.com>
+       <alpine.DEB.2.02.1210031658120.29232@kaball.uk.xensource.com>
+Organization: Citrix Systems, Inc.
+X-Mailer: Evolution 3.4.3-1 
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
+       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
+       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD autolearn=unavailable version=3.3.1
+Subject: Re: [Xen-devel] [PATCH] xen: point xen_start_info to a dummy struct
+ for PV on HVM guests
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Wed, 2012-10-03 at 17:05 +0100, Stefano Stabellini wrote:
+> On Wed, 3 Oct 2012, Ian Campbell wrote:
+> > On Wed, 2012-10-03 at 16:48 +0100, Stefano Stabellini wrote:
+> > > On Wed, 3 Oct 2012, Ian Campbell wrote:
+> > > > On Wed, 2012-10-03 at 15:11 +0100, Konrad Rzeszutek Wilk wrote:
+> > > > > On Wed, Oct 03, 2012 at 02:54:42PM +0100, Ian Campbell wrote:
+> > > > > > On Wed, 2012-10-03 at 14:51 +0100, Stefano Stabellini wrote:
+> > > > > > > On Wed, 3 Oct 2012, Ian Campbell wrote:
+> > > > > > > > On Wed, 2012-10-03 at 14:37 +0100, Stefano Stabellini wrote:
+> > > > > > > > > PV on HVM guests don't have a start_info page mapped by Xen, so
+> > > > > > > > > xen_start_info is just NULL for them.
+> > > > > > > > > That is problem because other parts of the code expect xen_start_info to
+> > > > > > > > > point to something valid, for example xen_initial_domain() is defined as
+> > > > > > > > > follow:
+> > > > > > > > > 
+> > > > > > > > > #define xen_initial_domain()    (xen_domain() && \
+> > > > > > > > >                  xen_start_info->flags & SIF_INITDOMAIN)
+> > > > > > > > 
+> > > > > > > > But anyone who calls this before xen_start_info is setup is going to get
+> > > > > > > > a bogus result, specifically in this case they will think they are domU
+> > > > > > > > when in reality they are dom0 -- wouldn't it be better to fix those
+> > > > > > > > callsites?
+> > > > > > > 
+> > > > > > > That cannot be the case because setting up xen_start_info is the very
+> > > > > > > first thing that is done, before even calling to C.
+> > > > > > 
+> > > > > > On PV, yes, but you are trying to fix PVHVM here, no?
+> > > > > > 
+> > > > > > Otherwise if this is always set before calling into C then what is the
+> > > > > > purpose of this patch?
+> > > > > 
+> > > > > to fix this - as PVHVM has it set to NULL and we end up de-referencing
+> > > > > the xen_start_info and crashing. As so::
+> > > > > 
+> > > > 
+> > > > Right, so returning to my original point: The caller here is calling
+> > > > xen_initial_domain() *before* start info is setup. This is bogus and is
+> > > > your actual bug, all this patch does is hide that real issue.
+> > > 
+> > > That is because xen_start_info wasn't setup at all for PV on HVM guests.
+> > > 
+> > > The real reason is that PV on HVM guests don't have one, but that is
+> > > another matter. Until we get rid of all the references to xen_start_info
+> > > outside of PV specific code, we should just assume that there is one,
+> > > and that is already setup.
+> > > 
+> > > One day not too far from now, we might refactor the code to never
+> > > reference xen_start_info directly, but I don't think that now is the
+> > > time for that. Also consider that this is the same thing we do on ARM.
+> > 
+> > We actual fill in the dummy start info with valid information on ARM
+> > though, we don't just leave it full of zeroes.
+> > 
+> > If we do start out with start_info pointing to an uninitialised
+> > start_info on ARM too then I would argue that this is also a mistake.
+> 
+> Yes, we do point xen_start_info to an uninitialised start_info on ARM
+> too (I don't think is a mistake). Then when and if we have more
+> information we write them to start_info.
+
+So callers of xen_initial_domain in dom0 before xen_guest_init is called
+get the wrong result?
+
+That sounds like a mistake to me.
+
+> > We
+> > should leave the NULL pointer in place until we setup the content of the
+> > dummy start info -- exactly because the resulting crash indicates to us
+> > that someone has accessed the si before we've initialised it.
+> 
+> I don't think so. It is initialized to zero, that is the right thing to
+> do.
+
+Except it isn't in the dom0 case...
+
+> > > > With this "fix" the caller of xen_initial_domain shown in this trace now
+> > > > gets a rubbish result based on the content of a dummy shared info
+> > > > instead of the real answer from that actual shared info.
+> > > 
+> > > That is not true. The caller gets a zero result, that is completely
+> > > appropriate in this case, given that a PV on HVM guest doesn't have a
+> > > start_info.
+> > 
+> > It's just a side effect of Linux zeroing its bss though and zero
+> > happening to be the right answer for a PVHVM guest in this case.
+> 
+> well, I would call that "by design" ;-)
+
+Well, in that case it should be documented not just implicit!
+
+> > Is it true that zero is an appropriate result for all uses of fields in
+> > start_info on PVHVM?
+> 
+> I think so. In fact, if we wanted to, we could have the dummy struct
+> initialized to something different, but I don't think that we should.
+
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1349282492.650.185.camel@zakaz.uk.xensource.com> b/config/examples/test/corpus/<1349282492.650.185.camel@zakaz.uk.xensource.com>
new file mode 100644 (file)
index 0000000..68cdc9f
--- /dev/null
@@ -0,0 +1,181 @@
+From xen-devel-bounces@lists.xen.org Wed Oct 03 17:46:01 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 03 Oct 2012 17:46:01 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TJS55-0006uX-Gd
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 03 Oct 2012 17:46:01 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TJS0u-0004Li-IZ; Wed, 03 Oct 2012 16:41:36 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1TJS0t-0004Lc-M6
+       for xen-devel@lists.xensource.com; Wed, 03 Oct 2012 16:41:35 +0000
+Received: from [85.158.137.99:54798] by server-1.bemta-3.messagelabs.com id
+       F0/09-16425-EBA6C605; Wed, 03 Oct 2012 16:41:34 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-12.tower-217.messagelabs.com!1349282493!17025320!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTMxMDE=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 11601 invoked from network); 3 Oct 2012 16:41:34 -0000
+Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-12.tower-217.messagelabs.com with RC4-SHA encrypted SMTP;
+       3 Oct 2012 16:41:34 -0000
+X-IronPort-AV: E=Sophos;i="4.80,528,1344211200"; d="scan'208";a="14921334"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       03 Oct 2012 16:41:33 +0000
+Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.279.1; Wed, 3 Oct 2012
+       17:41:33 +0100
+Message-ID: <1349282492.650.185.camel@zakaz.uk.xensource.com>
+From: Ian Campbell <Ian.Campbell@citrix.com>
+To: Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+Date: Wed, 3 Oct 2012 17:41:32 +0100
+In-Reply-To: <1349280814.650.178.camel@zakaz.uk.xensource.com>
+References: <alpine.DEB.2.02.1210031431080.29232@kaball.uk.xensource.com>
+       <1349272182.650.150.camel@zakaz.uk.xensource.com>
+       <alpine.DEB.2.02.1210031450220.29232@kaball.uk.xensource.com>
+       <1349272482.650.151.camel@zakaz.uk.xensource.com>
+       <20121003141116.GA10633@phenom.dumpdata.com>
+       <1349276431.650.156.camel@zakaz.uk.xensource.com>
+       <alpine.DEB.2.02.1210031641050.29232@kaball.uk.xensource.com>
+       <1349279862.650.171.camel@zakaz.uk.xensource.com>
+       <alpine.DEB.2.02.1210031658120.29232@kaball.uk.xensource.com>
+       <1349280814.650.178.camel@zakaz.uk.xensource.com>
+Organization: Citrix Systems, Inc.
+X-Mailer: Evolution 3.4.3-1 
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
+       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>, Konrad
+       Rzeszutek Wilk <konrad.wilk@oracle.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
+Subject: Re: [Xen-devel] [PATCH] xen: point xen_start_info to a dummy struct
+ for PV on HVM guests
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Wed, 2012-10-03 at 17:13 +0100, Ian Campbell wrote:
+> On Wed, 2012-10-03 at 17:05 +0100, Stefano Stabellini wrote:
+> > On Wed, 3 Oct 2012, Ian Campbell wrote:
+> > > On Wed, 2012-10-03 at 16:48 +0100, Stefano Stabellini wrote:
+> > > > On Wed, 3 Oct 2012, Ian Campbell wrote:
+> > > > > On Wed, 2012-10-03 at 15:11 +0100, Konrad Rzeszutek Wilk wrote:
+> > > > > > On Wed, Oct 03, 2012 at 02:54:42PM +0100, Ian Campbell wrote:
+> > > > > > > On Wed, 2012-10-03 at 14:51 +0100, Stefano Stabellini wrote:
+> > > > > > > > On Wed, 3 Oct 2012, Ian Campbell wrote:
+> > > > > > > > > On Wed, 2012-10-03 at 14:37 +0100, Stefano Stabellini wrote:
+> > > > > > > > > > PV on HVM guests don't have a start_info page mapped by Xen, so
+> > > > > > > > > > xen_start_info is just NULL for them.
+> > > > > > > > > > That is problem because other parts of the code expect xen_start_info to
+> > > > > > > > > > point to something valid, for example xen_initial_domain() is defined as
+> > > > > > > > > > follow:
+> > > > > > > > > > 
+> > > > > > > > > > #define xen_initial_domain()    (xen_domain() && \
+> > > > > > > > > >                  xen_start_info->flags & SIF_INITDOMAIN)
+> > > > > > > > > 
+> > > > > > > > > But anyone who calls this before xen_start_info is setup is going to get
+> > > > > > > > > a bogus result, specifically in this case they will think they are domU
+> > > > > > > > > when in reality they are dom0 -- wouldn't it be better to fix those
+> > > > > > > > > callsites?
+> > > > > > > > 
+> > > > > > > > That cannot be the case because setting up xen_start_info is the very
+> > > > > > > > first thing that is done, before even calling to C.
+> > > > > > > 
+> > > > > > > On PV, yes, but you are trying to fix PVHVM here, no?
+> > > > > > > 
+> > > > > > > Otherwise if this is always set before calling into C then what is the
+> > > > > > > purpose of this patch?
+> > > > > > 
+> > > > > > to fix this - as PVHVM has it set to NULL and we end up de-referencing
+> > > > > > the xen_start_info and crashing. As so::
+> > > > > > 
+> > > > > 
+> > > > > Right, so returning to my original point: The caller here is calling
+> > > > > xen_initial_domain() *before* start info is setup. This is bogus and is
+> > > > > your actual bug, all this patch does is hide that real issue.
+> > > > 
+> > > > That is because xen_start_info wasn't setup at all for PV on HVM guests.
+> > > > 
+> > > > The real reason is that PV on HVM guests don't have one, but that is
+> > > > another matter. Until we get rid of all the references to xen_start_info
+> > > > outside of PV specific code, we should just assume that there is one,
+> > > > and that is already setup.
+> > > > 
+> > > > One day not too far from now, we might refactor the code to never
+> > > > reference xen_start_info directly, but I don't think that now is the
+> > > > time for that. Also consider that this is the same thing we do on ARM.
+> > > 
+> > > We actual fill in the dummy start info with valid information on ARM
+> > > though, we don't just leave it full of zeroes.
+> > > 
+> > > If we do start out with start_info pointing to an uninitialised
+> > > start_info on ARM too then I would argue that this is also a mistake.
+> > 
+> > Yes, we do point xen_start_info to an uninitialised start_info on ARM
+> > too (I don't think is a mistake). Then when and if we have more
+> > information we write them to start_info.
+> 
+> So callers of xen_initial_domain in dom0 before xen_guest_init is called
+> get the wrong result?
+> 
+> That sounds like a mistake to me.
+
+How about (modulo my not having looked up the actual names of the
+constants etc):
+
+       #define xen_initial_domain() (xen_domain() && arch_is_initial_domain())
+
+on x86:
+       int arch_is_initial_domain(void)
+       {
+               /* The initial domain is always PV and
+                * therefore start_info is always set for it.
+                */
+               return start_info && start_info->flags & SIF_INITDOMAIN;
+       }
+on ARM:
+       int arch_is_initial_domain(void)
+       {
+               static is_initial = -1;
+               if (is_initial == -1)
+                       is_initial = HVM_param_get(HVMPARAM_DOM0)
+               return is_initial;
+       }
+
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1349339920.650.220.camel@zakaz.uk.xensource.com> b/config/examples/test/corpus/<1349339920.650.220.camel@zakaz.uk.xensource.com>
new file mode 100644 (file)
index 0000000..3239d28
--- /dev/null
@@ -0,0 +1,146 @@
+From xen-devel-bounces@lists.xen.org Thu Oct 04 09:42:29 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 04 Oct 2012 09:42:29 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TJh0g-0005nD-Ll
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 04 Oct 2012 09:42:28 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TJgxB-0004gX-Aa; Thu, 04 Oct 2012 08:38:45 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1TJgx9-0004gB-BK
+       for Xen-devel@lists.xensource.com; Thu, 04 Oct 2012 08:38:43 +0000
+Received: from [85.158.143.99:23012] by server-2.bemta-4.messagelabs.com id
+       A6/64-06610-21B4D605; Thu, 04 Oct 2012 08:38:42 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-3.tower-216.messagelabs.com!1349339921!32207196!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTMwMTc=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 2473 invoked from network); 4 Oct 2012 08:38:42 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-3.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
+       4 Oct 2012 08:38:42 -0000
+X-IronPort-AV: E=Sophos;i="4.80,533,1344211200"; d="scan'208";a="14933105"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       04 Oct 2012 08:38:41 +0000
+Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.279.1; Thu, 4 Oct 2012
+       09:38:41 +0100
+Message-ID: <1349339920.650.220.camel@zakaz.uk.xensource.com>
+From: Ian Campbell <Ian.Campbell@citrix.com>
+To: Mukesh Rathor <mukesh.rathor@oracle.com>
+Date: Thu, 4 Oct 2012 09:38:40 +0100
+In-Reply-To: <20121003153714.4656b7e9@mantra.us.oracle.com>
+References: <20120921121659.5a723de9@mantra.us.oracle.com>
+       <alpine.DEB.2.02.1209241257440.29232@kaball.uk.xensource.com>
+       <20120924154335.097d3fb9@mantra.us.oracle.com>
+       <alpine.DEB.2.02.1209251054140.29232@kaball.uk.xensource.com>
+       <20120925180416.0137d61a@mantra.us.oracle.com>
+       <alpine.DEB.2.02.1209261225340.29232@kaball.uk.xensource.com>
+       <20121002183619.70734b7a@mantra.us.oracle.com>
+       <20121002190323.2e16f6ff@mantra.us.oracle.com>
+       <alpine.DEB.2.02.1210031242180.29232@kaball.uk.xensource.com>
+       <20121003153714.4656b7e9@mantra.us.oracle.com>
+Organization: Citrix Systems, Inc.
+X-Mailer: Evolution 3.4.3-1 
+MIME-Version: 1.0
+Cc: "Xen-devel@lists.xensource.com" <Xen-devel@lists.xensource.com>, Konrad
+       Rzeszutek Wilk <konrad.wilk@oracle.com>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH v1 3/8]: PVH startup changes (enlighten.c)
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Wed, 2012-10-03 at 23:37 +0100, Mukesh Rathor wrote:
+> On Wed, 3 Oct 2012 12:58:22 +0100
+> Stefano Stabellini <stefano.stabellini@eu.citrix.com> wrote:
+> 
+> > On Wed, 3 Oct 2012, Mukesh Rathor wrote:
+> > > On Tue, 2 Oct 2012 18:36:19 -0700
+> > > Mukesh Rathor <mukesh.rathor@oracle.com> wrote:
+> > > 
+> > > > On Wed, 26 Sep 2012 12:33:39 +0100
+> > 
+> > 
+> > > So for now, how about, lets go
+> > > with what I've got. I'll make a note, and when I do xen patch, I'll
+> > > figure it out, and would be a very small linux patch. I want to get
+> > > linux patch in soon before the window closes.
+> > 
+> > We can leave page special as it is for now with very little
+> > consequences, because it is not part of the interface with Xen.
+> > However this is part of the interface, so whatever we choose here is
+> > going to be hard to change later on.
+> > 
+> > I think it would be good if we could either make dom0 use a pfn or
+> > domU use mfn, whatever is easier for you.
+> 
+> Ok, finally, focussing on this, the issue with pfn in dom0 is that
+> I need pfn allocated in construct_dom0() and be mapped so that the
+> guest can just do :
+> 
+> HYPERVISOR_shared_info=(struct shared_info *)__va(xen_start_info->shared_info);
+> 
+> How about following I am experimenting with right now:
+> 
+> in construct_dom0():
+> 
+>     vstartinfo_end   = (vstartinfo_start +
+>                         sizeof(struct start_info) +
+>                         sizeof(struct dom0_vga_console_info));
+> 
+>     if ( is_hybrid_domain(d) ) {
+>         start_info_pfn_addr = round_pgup(vstartinfo_end) - v_start;
+>         vstartinfo_end   += PAGE_SIZE;
+>     }
+> 
+> I can then put (PFN: start_info_pfn_addr)->(MFN: virt_to_maddr(d->shared_info))
+> in the p2m, and dom0 just has to do __va(), like domU does now.  I wont' need
+> to special case dom0 then.
+> 
+> Do you foresee any problems with this approach?
+
+Hard to say without all the surrounding context but it seems plausible
+to me.
+
+Ian.
+
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1349363496.866.49.camel@zakaz.uk.xensource.com> b/config/examples/test/corpus/<1349363496.866.49.camel@zakaz.uk.xensource.com>
new file mode 100644 (file)
index 0000000..e93e372
--- /dev/null
@@ -0,0 +1,101 @@
+From xen-devel-bounces@lists.xen.org Thu Oct 04 16:16:07 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 04 Oct 2012 16:16:07 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TJn9d-00077v-8x
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 04 Oct 2012 16:16:07 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TJn5R-0007ut-HX; Thu, 04 Oct 2012 15:11:41 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1TJn5P-0007um-Iz
+       for xen-devel@lists.xen.org; Thu, 04 Oct 2012 15:11:39 +0000
+Received: from [85.158.143.99:30628] by server-3.bemta-4.messagelabs.com id
+       E0/76-10986-A27AD605; Thu, 04 Oct 2012 15:11:38 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-4.tower-216.messagelabs.com!1349363498!27589072!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTMxNjA=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 24308 invoked from network); 4 Oct 2012 15:11:38 -0000
+Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-4.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
+       4 Oct 2012 15:11:38 -0000
+X-IronPort-AV: E=Sophos;i="4.80,535,1344211200"; d="scan'208";a="14945005"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       04 Oct 2012 15:11:37 +0000
+Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.279.1; Thu, 4 Oct 2012
+       16:11:37 +0100
+Message-ID: <1349363496.866.49.camel@zakaz.uk.xensource.com>
+From: Ian Campbell <Ian.Campbell@citrix.com>
+To: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>, Mukesh Rathor
+       <mukesh.rathor@oracle.com>, Stefano Stabellini
+       <stefano.stabellini@citrix.com>
+Date: Thu, 4 Oct 2012 16:11:36 +0100
+Organization: Citrix Systems, Inc.
+X-Mailer: Evolution 3.4.3-1 
+MIME-Version: 1.0
+Cc: xen-devel <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: [Xen-devel] [RFC 00/14] arm: implement ballooning and privcmd
+ foreign mappings based on x86 PVH
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+This series implements ballooning for Xen on ARM and builds and Mukesh's
+PVH privcmd stuff to implement foreign page mapping on ARM, replacing
+the old "HACK: initial (very hacky) XENMAPSPACE_gmfn_foreign" patch.
+
+The baseline is a bit complex, it is basically Stefano's xenarm-forlinus
+branch (commit bbd6eb29214e) merged with Konrad's linux-next-pvh branch
+(commit 7e6e6f589de8). I suspect I might need to rebase it shortly. I
+know there's a bunch of stuff in here which Mukesh has also changed, but
+which I haven't seen yet, I'll deal with that when I rebase (RFC mainly
+for that reason only).
+
+This lets me start a guest without any of those nasty patches with
+"HACK" in the title ;-0
+
+Ian.
+
+
+
+
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1349363515-26190-1-git-send-email-ian.campbell@citrix.com> b/config/examples/test/corpus/<1349363515-26190-1-git-send-email-ian.campbell@citrix.com>
new file mode 100644 (file)
index 0000000..49c1e96
--- /dev/null
@@ -0,0 +1,130 @@
+From xen-devel-bounces@lists.xen.org Thu Oct 04 16:16:13 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 04 Oct 2012 16:16:13 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TJn9j-00078g-Oh
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 04 Oct 2012 16:16:13 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TJn5s-0007ys-FL; Thu, 04 Oct 2012 15:12:08 +0000
+Received: from mail27.messagelabs.com ([193.109.254.147])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1TJn5q-0007wI-3d
+       for xen-devel@lists.xen.org; Thu, 04 Oct 2012 15:12:06 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-9.tower-27.messagelabs.com!1349363516!9745618!2
+X-Originating-IP: [66.165.176.63]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyODAxODI=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 32709 invoked from network); 4 Oct 2012 15:11:59 -0000
+Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
+       by server-9.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
+       4 Oct 2012 15:11:59 -0000
+X-IronPort-AV: E=Sophos;i="4.80,535,1344211200"; d="scan'208";a="210303836"
+Received: from ftlpmailmx01.citrite.net ([10.13.107.65])
+       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       04 Oct 2012 15:11:56 +0000
+Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
+       (10.13.107.65) with Microsoft SMTP Server id 8.3.279.1;
+       Thu, 4 Oct 2012 11:11:55 -0400
+Received: from drall.uk.xensource.com ([10.80.227.107])        by
+       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
+       <ian.campbell@citrix.com>)      id 1TJn5f-0002L6-EU;
+       Thu, 04 Oct 2012 16:11:55 +0100
+From: Ian Campbell <ian.campbell@citrix.com>
+To: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
+       Stefano Stabellini <stefano.stabellini@citrix.com>,
+       Mukesh Rathor <mukesh.rathor@oracle.com>
+Date: Thu, 4 Oct 2012 16:11:42 +0100
+Message-ID: <1349363515-26190-1-git-send-email-ian.campbell@citrix.com>
+X-Mailer: git-send-email 1.7.2.5
+In-Reply-To: <1349363496.866.49.camel@zakaz.uk.xensource.com>
+References: <1349363496.866.49.camel@zakaz.uk.xensource.com>
+MIME-Version: 1.0
+Cc: Ian Campbell <ian.campbell@citrix.com>, xen-devel@lists.xen.org
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD autolearn=ham version=3.3.1
+Subject: [Xen-devel] [PATCH 01/14] Build fixes which I beleive others have
+       already fixed properly elsewhere
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+Do not apply, you have better versions of all these somewhere else!
+---
+ drivers/xen/Makefile           |    2 +-
+ include/xen/interface/memory.h |    4 +---
+ 2 files changed, 2 insertions(+), 4 deletions(-)
+
+diff --git a/drivers/xen/Makefile b/drivers/xen/Makefile
+index cd28aae..275abfc 100644
+--- a/drivers/xen/Makefile
++++ b/drivers/xen/Makefile
+@@ -8,10 +8,10 @@ obj-y        += xenbus/
+ nostackp := $(call cc-option, -fno-stack-protector)
+ CFLAGS_features.o                     := $(nostackp)
+-obj-$(CONFIG_XEN_DOM0)                        += $(dom0-y)
+ dom0-$(CONFIG_PCI) += pci.o
+ dom0-$(CONFIG_ACPI) += acpi.o
+ dom0-$(CONFIG_X86) += pcpu.o
++obj-$(CONFIG_XEN_DOM0)                        += $(dom0-y)
+ obj-$(CONFIG_BLOCK)                   += biomerge.o
+ obj-$(CONFIG_XEN_XENCOMM)             += xencomm.o
+ obj-$(CONFIG_XEN_BALLOON)             += xen-balloon.o
+diff --git a/include/xen/interface/memory.h b/include/xen/interface/memory.h
+index 9953914..6d74c47 100644
+--- a/include/xen/interface/memory.h
++++ b/include/xen/interface/memory.h
+@@ -163,15 +163,13 @@ struct xen_add_to_physmap {
+     /* Which domain to change the mapping for. */
+     domid_t domid;
+-    /* Number of pages to go through for gmfn_range */
+-    uint16_t    size;
+-
+     union {
+         /* Number of pages to go through for gmfn_range */
+         uint16_t    size;
+       /* IFF XENMAPSPACE_gmfn_foreign */
+         domid_t foreign_domid;
+     } u;
++
+     /* Source mapping space. */
+ #define XENMAPSPACE_shared_info 0 /* shared info page */
+ #define XENMAPSPACE_grant_table 1 /* grant table page */
+-- 
+1.7.2.5
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1349363515-26190-10-git-send-email-ian.campbell@citrix.com> b/config/examples/test/corpus/<1349363515-26190-10-git-send-email-ian.campbell@citrix.com>
new file mode 100644 (file)
index 0000000..61cbc5d
--- /dev/null
@@ -0,0 +1,276 @@
+From xen-devel-bounces@lists.xen.org Thu Oct 04 16:16:14 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 04 Oct 2012 16:16:14 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TJn9k-00078x-As
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 04 Oct 2012 16:16:14 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TJn5q-0007xy-Ml; Thu, 04 Oct 2012 15:12:06 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1TJn5o-0007wU-59
+       for xen-devel@lists.xen.org; Thu, 04 Oct 2012 15:12:04 +0000
+Received: from [85.158.139.211:4864] by server-12.bemta-5.messagelabs.com id
+       66/D9-03829-347AD605; Thu, 04 Oct 2012 15:12:03 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-8.tower-206.messagelabs.com!1349363519!21075191!3
+X-Originating-IP: [66.165.176.63]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyODAxODI=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 25454 invoked from network); 4 Oct 2012 15:12:02 -0000
+Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
+       by server-8.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
+       4 Oct 2012 15:12:02 -0000
+X-IronPort-AV: E=Sophos;i="4.80,535,1344211200"; d="scan'208";a="210303842"
+Received: from ftlpmailmx01.citrite.net ([10.13.107.65])
+       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       04 Oct 2012 15:11:56 +0000
+Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
+       (10.13.107.65) with Microsoft SMTP Server id 8.3.279.1;
+       Thu, 4 Oct 2012 11:11:56 -0400
+Received: from drall.uk.xensource.com ([10.80.227.107])        by
+       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
+       <ian.campbell@citrix.com>)      id 1TJn5f-0002L6-OE;
+       Thu, 04 Oct 2012 16:11:55 +0100
+From: Ian Campbell <ian.campbell@citrix.com>
+To: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
+       Stefano Stabellini <stefano.stabellini@citrix.com>,
+       Mukesh Rathor <mukesh.rathor@oracle.com>
+Date: Thu, 4 Oct 2012 16:11:51 +0100
+Message-ID: <1349363515-26190-10-git-send-email-ian.campbell@citrix.com>
+X-Mailer: git-send-email 1.7.2.5
+In-Reply-To: <1349363496.866.49.camel@zakaz.uk.xensource.com>
+References: <1349363496.866.49.camel@zakaz.uk.xensource.com>
+MIME-Version: 1.0
+Cc: Ian Campbell <ian.campbell@citrix.com>, xen-devel@lists.xen.org
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: [Xen-devel] [PATCH 10/14] privcmd: refer to autotranslate not PVH
+       in arch interfaces / comments.
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+PVH is X86 specific while this functionality is also used on ARM.
+
+Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+---
+ arch/x86/xen/mmu.c    |   10 +++++-----
+ drivers/xen/privcmd.c |   46 ++++++++++++++++++++++------------------------
+ include/xen/xen-ops.h |    8 ++++----
+ 3 files changed, 31 insertions(+), 33 deletions(-)
+
+diff --git a/arch/x86/xen/mmu.c b/arch/x86/xen/mmu.c
+index 26097cb..3e781f9 100644
+--- a/arch/x86/xen/mmu.c
++++ b/arch/x86/xen/mmu.c
+@@ -2506,7 +2506,7 @@ struct pvh_remap_data {
+       unsigned long fgmfn;            /* foreign domain's gmfn */
+       pgprot_t prot;
+       domid_t  domid;
+-      struct xen_pvh_pfn_info *pvhinfop;
++      struct xen_remap_mfn_info *pvhinfop;
+ };
+ static int pvh_map_pte_fn(pte_t *ptep, pgtable_t token, unsigned long addr, 
+@@ -2514,7 +2514,7 @@ static int pvh_map_pte_fn(pte_t *ptep, pgtable_t token, unsigned long addr,
+ {
+       int rc;
+       struct pvh_remap_data *remapp = data;
+-      struct xen_pvh_pfn_info *pvhp = remapp->pvhinfop;
++      struct xen_remap_mfn_info *pvhp = remapp->pvhinfop;
+       unsigned long pfn = page_to_pfn(pvhp->pi_paga[pvhp->pi_next_todo++]);
+       pte_t pteval = pte_mkspecial(pfn_pte(pfn, remapp->prot));
+@@ -2531,7 +2531,7 @@ static int pvh_map_pte_fn(pte_t *ptep, pgtable_t token, unsigned long addr,
+ static int pvh_remap_gmfn_range(struct vm_area_struct *vma,
+                               unsigned long addr, unsigned long mfn, int nr,
+                               pgprot_t prot, unsigned domid,
+-                              struct xen_pvh_pfn_info *pvhp)
++                              struct xen_remap_mfn_info *pvhp)
+ {
+       int err;
+       struct pvh_remap_data pvhdata;
+@@ -2574,7 +2574,7 @@ int xen_remap_domain_mfn_range(struct vm_area_struct *vma,
+                              unsigned long addr,
+                              unsigned long mfn, int nr,
+                              pgprot_t prot, unsigned domid,
+-                             struct xen_pvh_pfn_info *pvhp)
++                             struct xen_remap_mfn_info *pvhp)
+ {
+       struct remap_data rmd;
+@@ -2629,7 +2629,7 @@ EXPORT_SYMBOL_GPL(xen_remap_domain_mfn_range);
+ /* Returns: Number of pages unmapped */
+ int xen_unmap_domain_mfn_range(struct vm_area_struct *vma,
+-                             struct xen_pvh_pfn_info *pvhp)
++                             struct xen_remap_mfn_info *pvhp)
+ {
+       int count = 0;
+diff --git a/drivers/xen/privcmd.c b/drivers/xen/privcmd.c
+index bf4d62a..ebf3c8d 100644
+--- a/drivers/xen/privcmd.c
++++ b/drivers/xen/privcmd.c
+@@ -265,18 +265,16 @@ struct mmap_batch_state {
+       xen_pfn_t __user *user_mfn;
+ };
+-/* PVH dom0 fyi: if domU being created is PV, then mfn is mfn(addr on bus). If
+- * it's PVH then mfn is pfn (input to HAP). */
+ static int mmap_batch_fn(void *data, void *state)
+ {
+       xen_pfn_t *mfnp = data;
+       struct mmap_batch_state *st = state;
+       struct vm_area_struct *vma = st->vma;
+-      struct xen_pvh_pfn_info *pvhp = vma ? vma->vm_private_data : NULL;
++      struct xen_remap_mfn_info *info = vma ? vma->vm_private_data : NULL;
+       int ret;
+       ret = xen_remap_domain_mfn_range(st->vma, st->va & PAGE_MASK, *mfnp, 1,
+-                                       st->vma->vm_page_prot, st->domain, pvhp);
++                                       st->vma->vm_page_prot, st->domain, info);
+       /* Store error code for second pass. */
+       *(st->err++) = ret;
+@@ -315,33 +313,33 @@ static int mmap_return_errors_v1(void *data, void *state)
+ /* Allocate pfns that are then mapped with gmfns from foreign domid. Update
+  * the vma with the page info to use later.
+  * Returns: 0 if success, otherwise -errno
+- */ 
+-static int pvh_privcmd_resv_pfns(struct vm_area_struct *vma, int numpgs)
++ */
++static int alloc_empty_pages(struct vm_area_struct *vma, int numpgs)
+ {
+       int rc;
+-      struct xen_pvh_pfn_info *pvhp;
++      struct xen_remap_mfn_info *info;
+-      pvhp = kzalloc(sizeof(struct xen_pvh_pfn_info), GFP_KERNEL);
+-      if (pvhp == NULL)
++      info = kzalloc(sizeof(struct xen_remap_mfn_info), GFP_KERNEL);
++      if (info == NULL)
+               return -ENOMEM;
+-      pvhp->pi_paga = kcalloc(numpgs, sizeof(pvhp->pi_paga[0]), GFP_KERNEL);
+-      if (pvhp->pi_paga == NULL) {
+-              kfree(pvhp);
++      info->pi_paga = kcalloc(numpgs, sizeof(info->pi_paga[0]), GFP_KERNEL);
++      if (info->pi_paga == NULL) {
++              kfree(info);
+               return -ENOMEM;
+       }
+-      rc = alloc_xenballooned_pages(numpgs, pvhp->pi_paga, 0);
++      rc = alloc_xenballooned_pages(numpgs, info->pi_paga, 0);
+       if (rc != 0) {
+               pr_warn("%s Could not alloc %d pfns rc:%d\n", __FUNCTION__, 
+                       numpgs, rc);
+-              kfree(pvhp->pi_paga);
+-              kfree(pvhp);
++              kfree(info->pi_paga);
++              kfree(info);
+               return -ENOMEM;
+       }
+-      pvhp->pi_num_pgs = numpgs;
++      info->pi_num_pgs = numpgs;
+       BUG_ON(vma->vm_private_data != (void *)1);
+-      vma->vm_private_data = pvhp;
++      vma->vm_private_data = info;
+       return 0;
+ }
+@@ -414,7 +412,7 @@ static long privcmd_ioctl_mmap_batch(void __user *udata, int version)
+               goto out;
+       }
+       if (xen_feature(XENFEAT_auto_translated_physmap)) {
+-              if ((ret = pvh_privcmd_resv_pfns(vma, m.num))) {
++              if ((ret = alloc_empty_pages(vma, m.num))) {
+                       up_write(&mm->mmap_sem);
+                       goto out;
+               }
+@@ -490,16 +488,16 @@ static long privcmd_ioctl(struct file *file,
+ static void privcmd_close(struct vm_area_struct *vma)
+ {
+       int count;
+-      struct xen_pvh_pfn_info *pvhp = vma ? vma->vm_private_data : NULL;
++      struct xen_remap_mfn_info *info = vma ? vma->vm_private_data : NULL;
+-      if (!pvhp || !xen_feature(XENFEAT_auto_translated_physmap))
++      if (!info || !xen_feature(XENFEAT_auto_translated_physmap))
+               return;
+-      count = xen_unmap_domain_mfn_range(vma, pvhp);
++      count = xen_unmap_domain_mfn_range(vma, info);
+       while (count--)
+-              free_xenballooned_pages(1, &pvhp->pi_paga[count]);
+-      kfree(pvhp->pi_paga);
+-      kfree(pvhp);
++              free_xenballooned_pages(1, &info->pi_paga[count]);
++      kfree(info->pi_paga);
++      kfree(info);
+ }
+ static int privcmd_fault(struct vm_area_struct *vma, struct vm_fault *vmf)
+diff --git a/include/xen/xen-ops.h b/include/xen/xen-ops.h
+index 6c5ad83..2f3cb06 100644
+--- a/include/xen/xen-ops.h
++++ b/include/xen/xen-ops.h
+@@ -24,16 +24,16 @@ int xen_create_contiguous_region(unsigned long vstart, unsigned int order,
+ void xen_destroy_contiguous_region(unsigned long vstart, unsigned int order);
+ struct vm_area_struct;
+-struct xen_pvh_pfn_info;
++struct xen_remap_mfn_info;
+ int xen_remap_domain_mfn_range(struct vm_area_struct *vma,
+                              unsigned long addr,
+                              unsigned long mfn, int nr,
+                              pgprot_t prot, unsigned domid,
+-                             struct xen_pvh_pfn_info *pvhp);
++                             struct xen_remap_mfn_info *pvhp);
+ int xen_unmap_domain_mfn_range(struct vm_area_struct *vma,
+-                             struct xen_pvh_pfn_info *pvhp);
++                             struct xen_remap_mfn_info *pvhp);
+-struct xen_pvh_pfn_info {
++struct xen_remap_mfn_info {
+       struct page **pi_paga;          /* pfn info page array */
+       int           pi_num_pgs;
+       int           pi_next_todo;
+-- 
+1.7.2.5
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1349363515-26190-11-git-send-email-ian.campbell@citrix.com> b/config/examples/test/corpus/<1349363515-26190-11-git-send-email-ian.campbell@citrix.com>
new file mode 100644 (file)
index 0000000..1be5b71
--- /dev/null
@@ -0,0 +1,220 @@
+From xen-devel-bounces@lists.xen.org Thu Oct 04 16:26:17 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 04 Oct 2012 16:26:17 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TJnJV-0007F8-DU
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 04 Oct 2012 16:26:17 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TJnFn-0001Dy-Pr; Thu, 04 Oct 2012 15:22:23 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1TJnFl-0001DK-SG
+       for xen-devel@lists.xen.org; Thu, 04 Oct 2012 15:22:22 +0000
+Received: from [85.158.137.99:19745] by server-10.bemta-3.messagelabs.com id
+       E8/89-02525-DA9AD605; Thu, 04 Oct 2012 15:22:21 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-6.tower-217.messagelabs.com!1349364138!15160393!2
+X-Originating-IP: [66.165.176.63]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyODAxODI=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 13481 invoked from network); 4 Oct 2012 15:22:20 -0000
+Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
+       by server-6.tower-217.messagelabs.com with RC4-SHA encrypted SMTP;
+       4 Oct 2012 15:22:20 -0000
+X-IronPort-AV: E=Sophos;i="4.80,535,1344211200"; d="scan'208";a="210306092"
+Received: from ftlpmailmx01.citrite.net ([10.13.107.65])
+       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       04 Oct 2012 15:22:14 +0000
+Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
+       (10.13.107.65) with Microsoft SMTP Server id 8.3.279.1;
+       Thu, 4 Oct 2012 11:22:14 -0400
+Received: from drall.uk.xensource.com ([10.80.227.107])        by
+       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
+       <ian.campbell@citrix.com>)      id 1TJn5f-0002L6-Oi;
+       Thu, 04 Oct 2012 16:11:55 +0100
+From: Ian Campbell <ian.campbell@citrix.com>
+To: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
+       Stefano Stabellini <stefano.stabellini@citrix.com>,
+       Mukesh Rathor <mukesh.rathor@oracle.com>
+Date: Thu, 4 Oct 2012 16:11:52 +0100
+Message-ID: <1349363515-26190-11-git-send-email-ian.campbell@citrix.com>
+X-Mailer: git-send-email 1.7.2.5
+In-Reply-To: <1349363496.866.49.camel@zakaz.uk.xensource.com>
+References: <1349363496.866.49.camel@zakaz.uk.xensource.com>
+MIME-Version: 1.0
+Cc: Ian Campbell <ian.campbell@citrix.com>, xen-devel@lists.xen.org
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: [Xen-devel] [PATCH 11/14] arm: implement remap interfaces needed
+       for privcmd mappings.
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+---
+ arch/arm/xen/enlighten.c |   94 +++++++++++++++++++++++++++++++++++++++++++++-
+ 1 files changed, 92 insertions(+), 2 deletions(-)
+
+diff --git a/arch/arm/xen/enlighten.c b/arch/arm/xen/enlighten.c
+index ba5cc13..9956af5 100644
+--- a/arch/arm/xen/enlighten.c
++++ b/arch/arm/xen/enlighten.c
+@@ -9,6 +9,7 @@
+ #include <xen/platform_pci.h>
+ #include <xen/xenbus.h>
+ #include <xen/page.h>
++#include <xen/xen-ops.h>
+ #include <asm/xen/hypervisor.h>
+ #include <asm/xen/hypercall.h>
+ #include <linux/interrupt.h>
+@@ -18,6 +19,8 @@
+ #include <linux/of_irq.h>
+ #include <linux/of_address.h>
++#include <linux/mm.h>
++
+ struct start_info _xen_start_info;
+ struct start_info *xen_start_info = &_xen_start_info;
+ EXPORT_SYMBOL_GPL(xen_start_info);
+@@ -43,15 +46,102 @@ EXPORT_SYMBOL_GPL(xen_platform_pci_unplug);
+ static __read_mostly int xen_events_irq = -1;
++/* map fgmfn of domid to lpfn in the current domain */
++static int map_foreign_page(unsigned long lpfn, unsigned long fgmfn,
++                          unsigned int domid)
++{
++      int rc;
++      struct xen_add_to_physmap xatp = {
++              .domid = DOMID_SELF,
++              .u.foreign_domid = domid,
++              .space = XENMAPSPACE_gmfn_foreign,
++              .idx = fgmfn,
++              .gpfn = lpfn,
++      };
++
++      rc = HYPERVISOR_memory_op(XENMEM_add_to_physmap, &xatp);
++      if (rc) {
++              pr_warn("Failed to map pfn to mfn rc:%d pfn:%lx mfn:%lx\n",
++                      rc, lpfn, fgmfn);
++              return 1;
++      }
++      return 0;
++}
++
++struct remap_data {
++      unsigned long fgmfn; /* foreign domain's gmfn */
++      pgprot_t prot;
++      domid_t  domid;
++      struct vm_area_struct *vma;
++      struct xen_remap_mfn_info *info;
++};
++
++static int remap_pte_fn(pte_t *ptep, pgtable_t token, unsigned long addr,
++                      void *data)
++{
++      struct remap_data *info = data;
++      struct xen_remap_mfn_info *savp = info->info;
++      struct page *page = savp->pi_paga[savp->pi_next_todo++];
++      unsigned long pfn = page_to_pfn(page);
++      pte_t pte = pfn_pte(pfn, info->prot);
++
++      if (map_foreign_page(pfn, info->fgmfn, info->domid))
++              return -EFAULT;
++      set_pte_at(info->vma->vm_mm, addr, ptep, pte);
++
++      return 0;
++}
++
+ int xen_remap_domain_mfn_range(struct vm_area_struct *vma,
+                              unsigned long addr,
+                              unsigned long mfn, int nr,
+-                             pgprot_t prot, unsigned domid)
++                             pgprot_t prot, unsigned domid,
++                             struct xen_remap_mfn_info *info)
+ {
+-      return -ENOSYS;
++      int err;
++      struct remap_data data;
++
++      /* TBD: Batching, current sole caller only does page at a time */
++      if (nr > 1)
++              return -EINVAL;
++
++      data.fgmfn = mfn;
++      data.prot = prot;
++      data.domid = domid;
++      data.vma = vma;
++      data.info = info;
++      err = apply_to_page_range(vma->vm_mm, addr, nr << PAGE_SHIFT,
++                                remap_pte_fn, &data);
++      return err;
+ }
+ EXPORT_SYMBOL_GPL(xen_remap_domain_mfn_range);
++/* Returns: Number of pages unmapped */
++int xen_unmap_domain_mfn_range(struct vm_area_struct *vma,
++                             struct xen_remap_mfn_info *info)
++{
++      int count = 0;
++
++      while (info->pi_next_todo--) {
++              struct xen_remove_from_physmap xrp;
++              unsigned long rc, pfn;
++
++              pfn = page_to_pfn(info->pi_paga[info->pi_next_todo]);
++
++              xrp.domid = DOMID_SELF;
++              xrp.gpfn = pfn;
++              rc = HYPERVISOR_memory_op(XENMEM_remove_from_physmap, &xrp);
++              if (rc) {
++                      pr_warn("Failed to unmap pfn:%lx rc:%ld\n",
++                              pfn, rc);
++                      return count;
++              }
++              count++;
++      }
++      return count;
++}
++EXPORT_SYMBOL_GPL(xen_unmap_domain_mfn_range);
++
+ /*
+  * see Documentation/devicetree/bindings/arm/xen.txt for the
+  * documentation of the Xen Device Tree format.
+-- 
+1.7.2.5
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1349363515-26190-12-git-send-email-ian.campbell@citrix.com> b/config/examples/test/corpus/<1349363515-26190-12-git-send-email-ian.campbell@citrix.com>
new file mode 100644 (file)
index 0000000..4f1a84c
--- /dev/null
@@ -0,0 +1,113 @@
+From xen-devel-bounces@lists.xen.org Thu Oct 04 16:26:18 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 04 Oct 2012 16:26:18 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TJnJU-0007F5-Hy
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 04 Oct 2012 16:26:18 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TJnFm-0001Dg-V6; Thu, 04 Oct 2012 15:22:22 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1TJnFl-0001DC-69
+       for xen-devel@lists.xen.org; Thu, 04 Oct 2012 15:22:21 +0000
+Received: from [85.158.143.35:60580] by server-1.bemta-4.messagelabs.com id
+       F4/47-05684-CA9AD605; Thu, 04 Oct 2012 15:22:20 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-14.tower-21.messagelabs.com!1349364134!17487056!1
+X-Originating-IP: [66.165.176.89]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNzQyMDg=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 32130 invoked from network); 4 Oct 2012 15:22:16 -0000
+Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
+       by server-14.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
+       4 Oct 2012 15:22:16 -0000
+X-IronPort-AV: E=Sophos;i="4.80,535,1344211200"; d="scan'208";a="40154748"
+Received: from ftlpmailmx01.citrite.net ([10.13.107.65])
+       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       04 Oct 2012 15:22:13 +0000
+Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
+       (10.13.107.65) with Microsoft SMTP Server id 8.3.279.1;
+       Thu, 4 Oct 2012 11:22:13 -0400
+Received: from drall.uk.xensource.com ([10.80.227.107])        by
+       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
+       <ian.campbell@citrix.com>)      id 1TJn5f-0002L6-PB;
+       Thu, 04 Oct 2012 16:11:55 +0100
+From: Ian Campbell <ian.campbell@citrix.com>
+To: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
+       Stefano Stabellini <stefano.stabellini@citrix.com>,
+       Mukesh Rathor <mukesh.rathor@oracle.com>
+Date: Thu, 4 Oct 2012 16:11:53 +0100
+Message-ID: <1349363515-26190-12-git-send-email-ian.campbell@citrix.com>
+X-Mailer: git-send-email 1.7.2.5
+In-Reply-To: <1349363496.866.49.camel@zakaz.uk.xensource.com>
+References: <1349363496.866.49.camel@zakaz.uk.xensource.com>
+MIME-Version: 1.0
+Cc: Ian Campbell <ian.campbell@citrix.com>, xen-devel@lists.xen.org
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: [Xen-devel] [PATCH 12/14] arm: xen: explain the EXPERIMENTAL
+       dependency in the Kconfig help
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+---
+ arch/arm/Kconfig |    8 ++++++++
+ 1 files changed, 8 insertions(+), 0 deletions(-)
+
+diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
+index 3361466..b171c46 100644
+--- a/arch/arm/Kconfig
++++ b/arch/arm/Kconfig
+@@ -1907,6 +1907,14 @@ config XEN
+       help
+         Say Y if you want to run Linux in a Virtual Machine on Xen on ARM.
++
++        This option is EXPERIMETNAL because the hypervisor
++        interfaces which it uses are not yet considered stable
++        therefore backwards and forwards compatibility is not yet
++        guaranteed.
++
++        If unsure, say N.
++
+ endmenu
+ menu "Boot options"
+-- 
+1.7.2.5
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1349363515-26190-13-git-send-email-ian.campbell@citrix.com> b/config/examples/test/corpus/<1349363515-26190-13-git-send-email-ian.campbell@citrix.com>
new file mode 100644 (file)
index 0000000..9e4e805
--- /dev/null
@@ -0,0 +1,110 @@
+From xen-devel-bounces@lists.xen.org Thu Oct 04 16:26:10 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 04 Oct 2012 16:26:10 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TJnJQ-0007En-Jj
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 04 Oct 2012 16:26:10 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TJnFn-0001Dp-Bx; Thu, 04 Oct 2012 15:22:23 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1TJnFl-0001DB-8R
+       for xen-devel@lists.xen.org; Thu, 04 Oct 2012 15:22:21 +0000
+Received: from [85.158.137.99:65410] by server-1.bemta-3.messagelabs.com id
+       9A/40-16425-CA9AD605; Thu, 04 Oct 2012 15:22:20 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-6.tower-217.messagelabs.com!1349364138!15160393!1
+X-Originating-IP: [66.165.176.63]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyODAxODI=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 13410 invoked from network); 4 Oct 2012 15:22:19 -0000
+Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
+       by server-6.tower-217.messagelabs.com with RC4-SHA encrypted SMTP;
+       4 Oct 2012 15:22:19 -0000
+X-IronPort-AV: E=Sophos;i="4.80,535,1344211200"; d="scan'208";a="210306086"
+Received: from ftlpmailmx01.citrite.net ([10.13.107.65])
+       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       04 Oct 2012 15:22:12 +0000
+Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
+       (10.13.107.65) with Microsoft SMTP Server id 8.3.279.1;
+       Thu, 4 Oct 2012 11:22:12 -0400
+Received: from drall.uk.xensource.com ([10.80.227.107])        by
+       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
+       <ian.campbell@citrix.com>)      id 1TJn5f-0002L6-Qp;
+       Thu, 04 Oct 2012 16:11:55 +0100
+From: Ian Campbell <ian.campbell@citrix.com>
+To: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
+       Stefano Stabellini <stefano.stabellini@citrix.com>,
+       Mukesh Rathor <mukesh.rathor@oracle.com>
+Date: Thu, 4 Oct 2012 16:11:54 +0100
+Message-ID: <1349363515-26190-13-git-send-email-ian.campbell@citrix.com>
+X-Mailer: git-send-email 1.7.2.5
+In-Reply-To: <1349363496.866.49.camel@zakaz.uk.xensource.com>
+References: <1349363496.866.49.camel@zakaz.uk.xensource.com>
+MIME-Version: 1.0
+Cc: Ian Campbell <ian.campbell@citrix.com>, xen-devel@lists.xen.org
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: [Xen-devel] [PATCH 13/14] xen: use xen_pft_t in struct
+       xen_remove_from_physmap
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+4a6c2b4 "PVH basic and hader file changes" and bd3f79b "xen: Introduce
+xen_pfn_t for pfn and mfn types" passed like ships in the night.
+
+Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+---
+ include/xen/interface/memory.h |    2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/include/xen/interface/memory.h b/include/xen/interface/memory.h
+index 6d74c47..d38bdc1 100644
+--- a/include/xen/interface/memory.h
++++ b/include/xen/interface/memory.h
+@@ -258,7 +258,7 @@ struct xen_remove_from_physmap {
+     domid_t domid;
+     /* GPFN of the current mapping of the page. */
+-    unsigned long     gpfn;
++    xen_pfn_t gpfn;
+ };
+ DEFINE_GUEST_HANDLE_STRUCT(xen_remove_from_physmap);
+-- 
+1.7.2.5
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1349363515-26190-14-git-send-email-ian.campbell@citrix.com> b/config/examples/test/corpus/<1349363515-26190-14-git-send-email-ian.campbell@citrix.com>
new file mode 100644 (file)
index 0000000..7d898f2
--- /dev/null
@@ -0,0 +1,155 @@
+From xen-devel-bounces@lists.xen.org Thu Oct 04 16:26:20 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 04 Oct 2012 16:26:20 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TJnJV-0007F7-9n
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 04 Oct 2012 16:26:20 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TJnFk-0001D4-HF; Thu, 04 Oct 2012 15:22:20 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1TJnFi-0001Cz-Nl
+       for xen-devel@lists.xen.org; Thu, 04 Oct 2012 15:22:18 +0000
+Received: from [85.158.137.99:22088] by server-12.bemta-3.messagelabs.com id
+       5B/8D-23730-9A9AD605; Thu, 04 Oct 2012 15:22:17 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-8.tower-217.messagelabs.com!1349364135!14937173!1
+X-Originating-IP: [66.165.176.89]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNzQyMDg=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 4578 invoked from network); 4 Oct 2012 15:22:16 -0000
+Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
+       by server-8.tower-217.messagelabs.com with RC4-SHA encrypted SMTP;
+       4 Oct 2012 15:22:16 -0000
+X-IronPort-AV: E=Sophos;i="4.80,535,1344211200"; d="scan'208";a="40154757"
+Received: from ftlpmailmx01.citrite.net ([10.13.107.65])
+       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       04 Oct 2012 15:22:15 +0000
+Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
+       (10.13.107.65) with Microsoft SMTP Server id 8.3.279.1;
+       Thu, 4 Oct 2012 11:22:14 -0400
+Received: from drall.uk.xensource.com ([10.80.227.107])        by
+       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
+       <ian.campbell@citrix.com>)      id 1TJn5f-0002L6-SV;
+       Thu, 04 Oct 2012 16:11:55 +0100
+From: Ian Campbell <ian.campbell@citrix.com>
+To: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
+       Stefano Stabellini <stefano.stabellini@citrix.com>,
+       Mukesh Rathor <mukesh.rathor@oracle.com>
+Date: Thu, 4 Oct 2012 16:11:55 +0100
+Message-ID: <1349363515-26190-14-git-send-email-ian.campbell@citrix.com>
+X-Mailer: git-send-email 1.7.2.5
+In-Reply-To: <1349363496.866.49.camel@zakaz.uk.xensource.com>
+References: <1349363496.866.49.camel@zakaz.uk.xensource.com>
+MIME-Version: 1.0
+Cc: Ian Campbell <ian.campbell@citrix.com>, xen-devel@lists.xen.org
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: [Xen-devel] [PATCH 14/14] arm: implement foreign mapping using
+       XENMEM_add_to_physmap_range
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+This interface is prefered for foreign mappings.
+
+Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+---
+ arch/arm/xen/enlighten.c       |   14 +++++++++-----
+ include/xen/interface/memory.h |   18 ++++++++++++++++++
+ 2 files changed, 27 insertions(+), 5 deletions(-)
+
+diff --git a/arch/arm/xen/enlighten.c b/arch/arm/xen/enlighten.c
+index 9956af5..a9946aa 100644
+--- a/arch/arm/xen/enlighten.c
++++ b/arch/arm/xen/enlighten.c
+@@ -51,15 +51,19 @@ static int map_foreign_page(unsigned long lpfn, unsigned long fgmfn,
+                           unsigned int domid)
+ {
+       int rc;
+-      struct xen_add_to_physmap xatp = {
++      struct xen_add_to_physmap_range xatp = {
+               .domid = DOMID_SELF,
+-              .u.foreign_domid = domid,
++              .foreign_domid = domid,
++              .size = 1,
+               .space = XENMAPSPACE_gmfn_foreign,
+-              .idx = fgmfn,
+-              .gpfn = lpfn,
+       };
++      unsigned long idx = fgmfn;
++      xen_pfn_t gpfn = lpfn;
+-      rc = HYPERVISOR_memory_op(XENMEM_add_to_physmap, &xatp);
++      set_xen_guest_handle(xatp.idxs, &idx);
++      set_xen_guest_handle(xatp.gpfns, &gpfn);
++
++      rc = HYPERVISOR_memory_op(XENMEM_add_to_physmap_range, &xatp);
+       if (rc) {
+               pr_warn("Failed to map pfn to mfn rc:%d pfn:%lx mfn:%lx\n",
+                       rc, lpfn, fgmfn);
+diff --git a/include/xen/interface/memory.h b/include/xen/interface/memory.h
+index d38bdc1..e5675bc 100644
+--- a/include/xen/interface/memory.h
++++ b/include/xen/interface/memory.h
+@@ -188,6 +188,24 @@ struct xen_add_to_physmap {
+ };
+ DEFINE_GUEST_HANDLE_STRUCT(xen_add_to_physmap);
++#define XENMEM_add_to_physmap_range 23
++struct xen_add_to_physmap_range {
++    /* Which domain to change the mapping for. */
++    domid_t domid;
++    uint16_t space; /* => enum phys_map_space */
++
++    /* Number of pages to go through */
++    uint16_t size;
++    domid_t foreign_domid; /* IFF gmfn_foreign */
++
++    /* Indexes into space being mapped. */
++    GUEST_HANDLE(ulong) idxs;
++
++    /* GPFN in domid where the source mapping page should appear. */
++    GUEST_HANDLE(xen_pfn_t) gpfns;
++};
++DEFINE_GUEST_HANDLE_STRUCT(xen_add_to_physmap_range);
++
+ /*
+  * Translates a list of domain-specific GPFNs into MFNs. Returns a -ve error
+  * code on failure. This call only works for auto-translated guests.
+-- 
+1.7.2.5
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1349363515-26190-2-git-send-email-ian.campbell@citrix.com> b/config/examples/test/corpus/<1349363515-26190-2-git-send-email-ian.campbell@citrix.com>
new file mode 100644 (file)
index 0000000..e8055d5
--- /dev/null
@@ -0,0 +1,110 @@
+From xen-devel-bounces@lists.xen.org Thu Oct 04 16:16:06 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 04 Oct 2012 16:16:06 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TJn9Z-00077b-VG
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 04 Oct 2012 16:16:06 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TJn5r-0007yI-2W; Thu, 04 Oct 2012 15:12:07 +0000
+Received: from mail27.messagelabs.com ([193.109.254.147])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1TJn5p-0007vz-D4
+       for xen-devel@lists.xen.org; Thu, 04 Oct 2012 15:12:05 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-9.tower-27.messagelabs.com!1349363516!9745618!1
+X-Originating-IP: [66.165.176.63]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyODAxODI=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 32375 invoked from network); 4 Oct 2012 15:11:58 -0000
+Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
+       by server-9.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
+       4 Oct 2012 15:11:58 -0000
+X-IronPort-AV: E=Sophos;i="4.80,535,1344211200"; d="scan'208";a="210303835"
+Received: from ftlpmailmx01.citrite.net ([10.13.107.65])
+       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       04 Oct 2012 15:11:56 +0000
+Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
+       (10.13.107.65) with Microsoft SMTP Server id 8.3.279.1;
+       Thu, 4 Oct 2012 11:11:55 -0400
+Received: from drall.uk.xensource.com ([10.80.227.107])        by
+       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
+       <ian.campbell@citrix.com>)      id 1TJn5f-0002L6-F3;
+       Thu, 04 Oct 2012 16:11:55 +0100
+From: Ian Campbell <ian.campbell@citrix.com>
+To: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
+       Stefano Stabellini <stefano.stabellini@citrix.com>,
+       Mukesh Rathor <mukesh.rathor@oracle.com>
+Date: Thu, 4 Oct 2012 16:11:43 +0100
+Message-ID: <1349363515-26190-2-git-send-email-ian.campbell@citrix.com>
+X-Mailer: git-send-email 1.7.2.5
+In-Reply-To: <1349363496.866.49.camel@zakaz.uk.xensource.com>
+References: <1349363496.866.49.camel@zakaz.uk.xensource.com>
+MIME-Version: 1.0
+Cc: Ian Campbell <ian.campbell@citrix.com>, xen-devel@lists.xen.org
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD autolearn=ham version=3.3.1
+Subject: [Xen-devel] [PATCH 02/14] xenbus: include features header.
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+Fixes:
+drivers/xen/xenbus/xenbus_probe.c: In function 'xenbus_init':
+drivers/xen/xenbus/xenbus_probe.c:760:3: error: implicit declaration of function 'xen_feature' [-Werror=implicit-function-declaration]
+drivers/xen/xenbus/xenbus_probe.c:760:19: error: 'XENFEAT_auto_translated_physmap' undeclared (first use in this function)
+drivers/xen/xenbus/xenbus_probe.c:760:19: note: each undeclared identifier is reported only once for each function it appears in
+cc1: some warnings being treated as errors
+
+Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+---
+ drivers/xen/xenbus/xenbus_probe.c |    1 +
+ 1 files changed, 1 insertions(+), 0 deletions(-)
+
+diff --git a/drivers/xen/xenbus/xenbus_probe.c b/drivers/xen/xenbus/xenbus_probe.c
+index b92c024..974bea0 100644
+--- a/drivers/xen/xenbus/xenbus_probe.c
++++ b/drivers/xen/xenbus/xenbus_probe.c
+@@ -56,6 +56,7 @@
+ #include <xen/xenbus.h>
+ #include <xen/events.h>
+ #include <xen/page.h>
++#include <xen/features.h>
+ #include <xen/hvm.h>
+-- 
+1.7.2.5
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1349363515-26190-3-git-send-email-ian.campbell@citrix.com> b/config/examples/test/corpus/<1349363515-26190-3-git-send-email-ian.campbell@citrix.com>
new file mode 100644 (file)
index 0000000..3948986
--- /dev/null
@@ -0,0 +1,118 @@
+From xen-devel-bounces@lists.xen.org Thu Oct 04 16:16:09 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 04 Oct 2012 16:16:09 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TJn9g-00078H-6t
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 04 Oct 2012 16:16:09 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TJn5p-0007xJ-Nw; Thu, 04 Oct 2012 15:12:05 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1TJn5m-0007wU-Rx
+       for xen-devel@lists.xen.org; Thu, 04 Oct 2012 15:12:03 +0000
+Received: from [85.158.139.211:56918] by server-12.bemta-5.messagelabs.com id
+       CF/B9-03829-247AD605; Thu, 04 Oct 2012 15:12:02 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-8.tower-206.messagelabs.com!1349363519!21075191!1
+X-Originating-IP: [66.165.176.63]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyODAxODI=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 25304 invoked from network); 4 Oct 2012 15:12:01 -0000
+Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
+       by server-8.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
+       4 Oct 2012 15:12:01 -0000
+X-IronPort-AV: E=Sophos;i="4.80,535,1344211200"; d="scan'208";a="210303838"
+Received: from ftlpmailmx01.citrite.net ([10.13.107.65])
+       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       04 Oct 2012 15:11:56 +0000
+Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
+       (10.13.107.65) with Microsoft SMTP Server id 8.3.279.1;
+       Thu, 4 Oct 2012 11:11:55 -0400
+Received: from drall.uk.xensource.com ([10.80.227.107])        by
+       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
+       <ian.campbell@citrix.com>)      id 1TJn5f-0002L6-FW;
+       Thu, 04 Oct 2012 16:11:55 +0100
+From: Ian Campbell <ian.campbell@citrix.com>
+To: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
+       Stefano Stabellini <stefano.stabellini@citrix.com>,
+       Mukesh Rathor <mukesh.rathor@oracle.com>
+Date: Thu, 4 Oct 2012 16:11:44 +0100
+Message-ID: <1349363515-26190-3-git-send-email-ian.campbell@citrix.com>
+X-Mailer: git-send-email 1.7.2.5
+In-Reply-To: <1349363496.866.49.camel@zakaz.uk.xensource.com>
+References: <1349363496.866.49.camel@zakaz.uk.xensource.com>
+MIME-Version: 1.0
+Cc: Ian Campbell <ian.campbell@citrix.com>, xen-devel@lists.xen.org
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: [Xen-devel] [PATCH 03/14] xen events: xen_callback_vector is x86
+       specific
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+---
+Should instead move somewhere arch specific?
+---
+ drivers/xen/events.c |    4 ++++
+ 1 files changed, 4 insertions(+), 0 deletions(-)
+
+diff --git a/drivers/xen/events.c b/drivers/xen/events.c
+index 6f55ef2..2508981 100644
+--- a/drivers/xen/events.c
++++ b/drivers/xen/events.c
+@@ -1775,6 +1775,7 @@ int xen_set_callback_via(uint64_t via)
+ EXPORT_SYMBOL_GPL(xen_set_callback_via);
++#ifdef CONFIG_X86
+ /* Vector callbacks are better than PCI interrupts to receive event
+  * channel notifications because we can receive vector callbacks on any
+  * vcpu and we don't need PCI support or APIC interactions. */
+@@ -1798,6 +1799,9 @@ void xen_callback_vector(void)
+                       alloc_intr_gate(XEN_HVM_EVTCHN_CALLBACK, xen_hvm_callback_vector);
+       }
+ }
++#else
++void xen_callback_vector(void) {}
++#endif
+ void xen_init_IRQ(void)
+ {
+-- 
+1.7.2.5
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1349363515-26190-4-git-send-email-ian.campbell@citrix.com> b/config/examples/test/corpus/<1349363515-26190-4-git-send-email-ian.campbell@citrix.com>
new file mode 100644 (file)
index 0000000..6ba0ba3
--- /dev/null
@@ -0,0 +1,105 @@
+From xen-devel-bounces@lists.xen.org Thu Oct 04 16:15:54 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 04 Oct 2012 16:15:54 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TJn9Q-00076w-Bc
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 04 Oct 2012 16:15:54 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TJn5s-0007zC-SY; Thu, 04 Oct 2012 15:12:08 +0000
+Received: from mail27.messagelabs.com ([193.109.254.147])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1TJn5r-0007wM-9I
+       for xen-devel@lists.xen.org; Thu, 04 Oct 2012 15:12:07 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-9.tower-27.messagelabs.com!1349363516!9745618!3
+X-Originating-IP: [66.165.176.63]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyODAxODI=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 32764 invoked from network); 4 Oct 2012 15:12:00 -0000
+Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
+       by server-9.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
+       4 Oct 2012 15:12:00 -0000
+X-IronPort-AV: E=Sophos;i="4.80,535,1344211200"; d="scan'208";a="210303837"
+Received: from ftlpmailmx01.citrite.net ([10.13.107.65])
+       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       04 Oct 2012 15:11:56 +0000
+Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
+       (10.13.107.65) with Microsoft SMTP Server id 8.3.279.1;
+       Thu, 4 Oct 2012 11:11:55 -0400
+Received: from drall.uk.xensource.com ([10.80.227.107])        by
+       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
+       <ian.campbell@citrix.com>)      id 1TJn5f-0002L6-G5;
+       Thu, 04 Oct 2012 16:11:55 +0100
+From: Ian Campbell <ian.campbell@citrix.com>
+To: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
+       Stefano Stabellini <stefano.stabellini@citrix.com>,
+       Mukesh Rathor <mukesh.rathor@oracle.com>
+Date: Thu, 4 Oct 2012 16:11:45 +0100
+Message-ID: <1349363515-26190-4-git-send-email-ian.campbell@citrix.com>
+X-Mailer: git-send-email 1.7.2.5
+In-Reply-To: <1349363496.866.49.camel@zakaz.uk.xensource.com>
+References: <1349363496.866.49.camel@zakaz.uk.xensource.com>
+MIME-Version: 1.0
+Cc: Ian Campbell <ian.campbell@citrix.com>, xen-devel@lists.xen.org
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD autolearn=ham version=3.3.1
+Subject: [Xen-devel] [PATCH 04/14] xen: balloon: don't include e820.h
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+This breaks on !X86 and AFAICT is not required on X86 either.
+
+Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+---
+ drivers/xen/balloon.c |    1 -
+ 1 files changed, 0 insertions(+), 1 deletions(-)
+
+diff --git a/drivers/xen/balloon.c b/drivers/xen/balloon.c
+index 85a6917..85ef7e7 100644
+--- a/drivers/xen/balloon.c
++++ b/drivers/xen/balloon.c
+@@ -55,7 +55,6 @@
+ #include <asm/pgalloc.h>
+ #include <asm/pgtable.h>
+ #include <asm/tlb.h>
+-#include <asm/e820.h>
+ #include <asm/xen/hypervisor.h>
+ #include <asm/xen/hypercall.h>
+-- 
+1.7.2.5
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1349363515-26190-5-git-send-email-ian.campbell@citrix.com> b/config/examples/test/corpus/<1349363515-26190-5-git-send-email-ian.campbell@citrix.com>
new file mode 100644 (file)
index 0000000..6456f01
--- /dev/null
@@ -0,0 +1,107 @@
+From xen-devel-bounces@lists.xen.org Thu Oct 04 16:15:53 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 04 Oct 2012 16:15:53 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TJn9P-00076v-Rq
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 04 Oct 2012 16:15:53 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TJn5u-00080H-LF; Thu, 04 Oct 2012 15:12:10 +0000
+Received: from mail27.messagelabs.com ([193.109.254.147])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1TJn5t-0007wo-0E
+       for xen-devel@lists.xen.org; Thu, 04 Oct 2012 15:12:09 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-9.tower-27.messagelabs.com!1349363516!9745618!5
+X-Originating-IP: [66.165.176.63]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyODAxODI=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 469 invoked from network); 4 Oct 2012 15:12:02 -0000
+Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
+       by server-9.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
+       4 Oct 2012 15:12:02 -0000
+X-IronPort-AV: E=Sophos;i="4.80,535,1344211200"; d="scan'208";a="210303841"
+Received: from ftlpmailmx01.citrite.net ([10.13.107.65])
+       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       04 Oct 2012 15:11:56 +0000
+Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
+       (10.13.107.65) with Microsoft SMTP Server id 8.3.279.1;
+       Thu, 4 Oct 2012 11:11:55 -0400
+Received: from drall.uk.xensource.com ([10.80.227.107])        by
+       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
+       <ian.campbell@citrix.com>)      id 1TJn5f-0002L6-Ht;
+       Thu, 04 Oct 2012 16:11:55 +0100
+From: Ian Campbell <ian.campbell@citrix.com>
+To: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
+       Stefano Stabellini <stefano.stabellini@citrix.com>,
+       Mukesh Rathor <mukesh.rathor@oracle.com>
+Date: Thu, 4 Oct 2012 16:11:46 +0100
+Message-ID: <1349363515-26190-5-git-send-email-ian.campbell@citrix.com>
+X-Mailer: git-send-email 1.7.2.5
+In-Reply-To: <1349363496.866.49.camel@zakaz.uk.xensource.com>
+References: <1349363496.866.49.camel@zakaz.uk.xensource.com>
+MIME-Version: 1.0
+Cc: Ian Campbell <ian.campbell@citrix.com>, xen-devel@lists.xen.org
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD autolearn=ham version=3.3.1
+Subject: [Xen-devel] [PATCH 05/14] xen: balloon: use correct type for
+       frame_list
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+This is now a xen_pfn_t.
+
+Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+---
+ drivers/xen/balloon.c |    2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/drivers/xen/balloon.c b/drivers/xen/balloon.c
+index 85ef7e7..4625560 100644
+--- a/drivers/xen/balloon.c
++++ b/drivers/xen/balloon.c
+@@ -87,7 +87,7 @@ struct balloon_stats balloon_stats;
+ EXPORT_SYMBOL_GPL(balloon_stats);
+ /* We increase/decrease in batches which fit in a page */
+-static unsigned long frame_list[PAGE_SIZE / sizeof(unsigned long)];
++static xen_pfn_t frame_list[PAGE_SIZE / sizeof(unsigned long)];
+ #ifdef CONFIG_HIGHMEM
+ #define inc_totalhigh_pages() (totalhigh_pages++)
+-- 
+1.7.2.5
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1349363515-26190-6-git-send-email-ian.campbell@citrix.com> b/config/examples/test/corpus/<1349363515-26190-6-git-send-email-ian.campbell@citrix.com>
new file mode 100644 (file)
index 0000000..6d3c4cc
--- /dev/null
@@ -0,0 +1,158 @@
+From xen-devel-bounces@lists.xen.org Thu Oct 04 16:16:07 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 04 Oct 2012 16:16:07 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TJn9d-00077w-Fv
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 04 Oct 2012 16:16:07 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TJn5q-0007xm-9D; Thu, 04 Oct 2012 15:12:06 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1TJn5n-0007wi-Mb
+       for xen-devel@lists.xen.org; Thu, 04 Oct 2012 15:12:03 +0000
+Received: from [85.158.139.211:34357] by server-7.bemta-5.messagelabs.com id
+       61/DF-00431-247AD605; Thu, 04 Oct 2012 15:12:02 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-8.tower-206.messagelabs.com!1349363519!21075191!2
+X-Originating-IP: [66.165.176.63]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyODAxODI=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 25395 invoked from network); 4 Oct 2012 15:12:02 -0000
+Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
+       by server-8.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
+       4 Oct 2012 15:12:02 -0000
+X-IronPort-AV: E=Sophos;i="4.80,535,1344211200"; d="scan'208";a="210303840"
+Received: from ftlpmailmx01.citrite.net ([10.13.107.65])
+       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       04 Oct 2012 15:11:56 +0000
+Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
+       (10.13.107.65) with Microsoft SMTP Server id 8.3.279.1;
+       Thu, 4 Oct 2012 11:11:55 -0400
+Received: from drall.uk.xensource.com ([10.80.227.107])        by
+       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
+       <ian.campbell@citrix.com>)      id 1TJn5f-0002L6-Je;
+       Thu, 04 Oct 2012 16:11:55 +0100
+From: Ian Campbell <ian.campbell@citrix.com>
+To: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
+       Stefano Stabellini <stefano.stabellini@citrix.com>,
+       Mukesh Rathor <mukesh.rathor@oracle.com>
+Date: Thu, 4 Oct 2012 16:11:47 +0100
+Message-ID: <1349363515-26190-6-git-send-email-ian.campbell@citrix.com>
+X-Mailer: git-send-email 1.7.2.5
+In-Reply-To: <1349363496.866.49.camel@zakaz.uk.xensource.com>
+References: <1349363496.866.49.camel@zakaz.uk.xensource.com>
+MIME-Version: 1.0
+Cc: Ian Campbell <ian.campbell@citrix.com>, xen-devel@lists.xen.org
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: [Xen-devel] [PATCH 06/14] arm: make p2m operations NOPs
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+This makes common code less ifdef-y and is consistent with PVHVM on
+x86.
+
+Also note that phys_to_machine_mapping_valid should take a pfn
+argument and make it do so.
+
+Add __set_phys_to_machine, make set_phys_to_machine a simple wrapper
+(on systems with non-nop implementations the outer one can allocate
+new p2m pages).
+
+Make __set_phys_to_machine check for identity mapping or invalid only.
+
+Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+---
+ arch/arm/include/asm/xen/page.h |   13 ++++++++++---
+ drivers/xen/balloon.c           |    2 +-
+ 2 files changed, 11 insertions(+), 4 deletions(-)
+
+diff --git a/arch/arm/include/asm/xen/page.h b/arch/arm/include/asm/xen/page.h
+index 1742023..c6b9096 100644
+--- a/arch/arm/include/asm/xen/page.h
++++ b/arch/arm/include/asm/xen/page.h
+@@ -10,7 +10,7 @@
+ #include <xen/interface/grant_table.h>
+ #define pfn_to_mfn(pfn)                       (pfn)
+-#define phys_to_machine_mapping_valid (1)
++#define phys_to_machine_mapping_valid(pfn) (1)
+ #define mfn_to_pfn(mfn)                       (mfn)
+ #define mfn_to_virt(m)                        (__va(mfn_to_pfn(m) << PAGE_SHIFT))
+@@ -30,6 +30,8 @@ typedef struct xpaddr {
+ #define XMADDR(x)     ((xmaddr_t) { .maddr = (x) })
+ #define XPADDR(x)     ((xpaddr_t) { .paddr = (x) })
++#define INVALID_P2M_ENTRY      (~0UL)
++
+ static inline xmaddr_t phys_to_machine(xpaddr_t phys)
+ {
+       unsigned offset = phys.paddr & ~PAGE_MASK;
+@@ -74,9 +76,14 @@ static inline int m2p_remove_override(struct page *page, bool clear_pte)
+       return 0;
+ }
++static inline bool __set_phys_to_machine(unsigned long pfn, unsigned long mfn)
++{
++      BUG_ON(pfn != mfn && mfn != INVALID_P2M_ENTRY);
++      return true;
++}
++
+ static inline bool set_phys_to_machine(unsigned long pfn, unsigned long mfn)
+ {
+-      BUG();
+-      return false;
++      return __set_phys_to_machine(pfn, mfn);
+ }
+ #endif /* _ASM_ARM_XEN_PAGE_H */
+diff --git a/drivers/xen/balloon.c b/drivers/xen/balloon.c
+index 4625560..7885a19 100644
+--- a/drivers/xen/balloon.c
++++ b/drivers/xen/balloon.c
+@@ -452,7 +452,7 @@ static enum bp_state decrease_reservation(unsigned long nr_pages, gfp_t gfp)
+       /* No more mappings: invalidate P2M and add to balloon. */
+       for (i = 0; i < nr_pages; i++) {
+               pfn = mfn_to_pfn(frame_list[i]);
+-              /* PVH note: following will noop for auto translated */
++              /* The following is a noop for auto translated */
+               __set_phys_to_machine(pfn, INVALID_P2M_ENTRY);
+               balloon_append(pfn_to_page(pfn));
+       }
+-- 
+1.7.2.5
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1349363515-26190-7-git-send-email-ian.campbell@citrix.com> b/config/examples/test/corpus/<1349363515-26190-7-git-send-email-ian.campbell@citrix.com>
new file mode 100644 (file)
index 0000000..21b5658
--- /dev/null
@@ -0,0 +1,143 @@
+From xen-devel-bounces@lists.xen.org Thu Oct 04 16:16:08 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 04 Oct 2012 16:16:08 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TJn9e-00078D-5C
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 04 Oct 2012 16:16:08 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TJn5u-0007zw-9e; Thu, 04 Oct 2012 15:12:10 +0000
+Received: from mail27.messagelabs.com ([193.109.254.147])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1TJn5s-0007we-64
+       for xen-devel@lists.xen.org; Thu, 04 Oct 2012 15:12:08 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-9.tower-27.messagelabs.com!1349363516!9745618!4
+X-Originating-IP: [66.165.176.63]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyODAxODI=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 363 invoked from network); 4 Oct 2012 15:12:01 -0000
+Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
+       by server-9.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
+       4 Oct 2012 15:12:01 -0000
+X-IronPort-AV: E=Sophos;i="4.80,535,1344211200"; d="scan'208";a="210303839"
+Received: from ftlpmailmx01.citrite.net ([10.13.107.65])
+       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       04 Oct 2012 15:11:56 +0000
+Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
+       (10.13.107.65) with Microsoft SMTP Server id 8.3.279.1;
+       Thu, 4 Oct 2012 11:11:55 -0400
+Received: from drall.uk.xensource.com ([10.80.227.107])        by
+       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
+       <ian.campbell@citrix.com>)      id 1TJn5f-0002L6-LO;
+       Thu, 04 Oct 2012 16:11:55 +0100
+From: Ian Campbell <ian.campbell@citrix.com>
+To: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
+       Stefano Stabellini <stefano.stabellini@citrix.com>,
+       Mukesh Rathor <mukesh.rathor@oracle.com>
+Date: Thu, 4 Oct 2012 16:11:48 +0100
+Message-ID: <1349363515-26190-7-git-send-email-ian.campbell@citrix.com>
+X-Mailer: git-send-email 1.7.2.5
+In-Reply-To: <1349363496.866.49.camel@zakaz.uk.xensource.com>
+References: <1349363496.866.49.camel@zakaz.uk.xensource.com>
+MIME-Version: 1.0
+Cc: Ian Campbell <ian.campbell@citrix.com>, xen-devel@lists.xen.org
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD autolearn=ham version=3.3.1
+Subject: [Xen-devel] [PATCH 07/14] xen: balloon: do not update stage 1
+       pagetable for autotranslated guests
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+This is unnecessary (since the page will be removed from the p2m) and
+can be tricky if the page is in the middle of a superpage, as it is on
+ARM.
+
+Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+---
+Also effects PVH but in a benign way I think.
+---
+ drivers/xen/balloon.c |   23 +++--------------------
+ 1 files changed, 3 insertions(+), 20 deletions(-)
+
+diff --git a/drivers/xen/balloon.c b/drivers/xen/balloon.c
+index 7885a19..1b56ae0 100644
+--- a/drivers/xen/balloon.c
++++ b/drivers/xen/balloon.c
+@@ -357,15 +357,7 @@ static enum bp_state increase_reservation(unsigned long nr_pages)
+               BUG_ON(!xen_feature(XENFEAT_auto_translated_physmap) &&
+                      phys_to_machine_mapping_valid(pfn));
+-              if (xen_pv_domain() && 
+-                  xen_feature(XENFEAT_auto_translated_physmap)) {
+-                      /* PVH: we just need to update native page table */
+-                      pte_t *ptep;
+-                      unsigned int level;
+-                      void *addr = __va(pfn << PAGE_SHIFT);
+-                      ptep = lookup_address((unsigned long)addr, &level);
+-                      set_pte(ptep, pfn_pte(pfn, PAGE_KERNEL));
+-              } else
++              if (!xen_feature(XENFEAT_auto_translated_physmap))
+                       set_phys_to_machine(pfn, frame_list[i]);
+               /* Link back into the page tables if not highmem. */
+@@ -427,21 +419,12 @@ static enum bp_state decrease_reservation(unsigned long nr_pages, gfp_t gfp)
+               scrub_page(page);
+-              if (xen_pv_domain() && !PageHighMem(page)) {
+-                      if (xen_feature(XENFEAT_auto_translated_physmap)) {
+-                              unsigned int level;
+-                              pte_t *ptep;
+-                              void *addr = __va(pfn << PAGE_SHIFT);
+-                              ptep = lookup_address((unsigned long)addr, 
+-                                                      &level);
+-                              set_pte(ptep, __pte(0));
+-
+-                      } else {
++              if (xen_pv_domain() && !PageHighMem(page) &&
++                  !xen_feature(XENFEAT_auto_translated_physmap)) {
+                               ret = HYPERVISOR_update_va_mapping(
+                                       (unsigned long)__va(pfn << PAGE_SHIFT),
+                                       __pte_ma(0), 0);
+                               BUG_ON(ret);
+-                      }
+               }
+       }
+-- 
+1.7.2.5
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1349363515-26190-8-git-send-email-ian.campbell@citrix.com> b/config/examples/test/corpus/<1349363515-26190-8-git-send-email-ian.campbell@citrix.com>
new file mode 100644 (file)
index 0000000..6f1206b
--- /dev/null
@@ -0,0 +1,160 @@
+From xen-devel-bounces@lists.xen.org Thu Oct 04 16:16:00 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 04 Oct 2012 16:16:00 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TJn9X-00077H-4c
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 04 Oct 2012 16:16:00 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TJn5o-0007x2-Um; Thu, 04 Oct 2012 15:12:04 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1TJn5m-0007wR-CV
+       for xen-devel@lists.xen.org; Thu, 04 Oct 2012 15:12:02 +0000
+Received: from [85.158.137.99:61670] by server-15.bemta-3.messagelabs.com id
+       7F/9A-11584-147AD605; Thu, 04 Oct 2012 15:12:01 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-9.tower-217.messagelabs.com!1349363517!17137968!2
+X-Originating-IP: [66.165.176.89]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNzQyMDg=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 31930 invoked from network); 4 Oct 2012 15:12:00 -0000
+Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
+       by server-9.tower-217.messagelabs.com with RC4-SHA encrypted SMTP;
+       4 Oct 2012 15:12:00 -0000
+X-IronPort-AV: E=Sophos;i="4.80,535,1344211200"; d="scan'208";a="40152203"
+Received: from ftlpmailmx01.citrite.net ([10.13.107.65])
+       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       04 Oct 2012 15:11:56 +0000
+Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
+       (10.13.107.65) with Microsoft SMTP Server id 8.3.279.1;
+       Thu, 4 Oct 2012 11:11:56 -0400
+Received: from drall.uk.xensource.com ([10.80.227.107])        by
+       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
+       <ian.campbell@citrix.com>)      id 1TJn5f-0002L6-Ls;
+       Thu, 04 Oct 2012 16:11:55 +0100
+From: Ian Campbell <ian.campbell@citrix.com>
+To: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
+       Stefano Stabellini <stefano.stabellini@citrix.com>,
+       Mukesh Rathor <mukesh.rathor@oracle.com>
+Date: Thu, 4 Oct 2012 16:11:49 +0100
+Message-ID: <1349363515-26190-8-git-send-email-ian.campbell@citrix.com>
+X-Mailer: git-send-email 1.7.2.5
+In-Reply-To: <1349363496.866.49.camel@zakaz.uk.xensource.com>
+References: <1349363496.866.49.camel@zakaz.uk.xensource.com>
+MIME-Version: 1.0
+Cc: Ian Campbell <ian.campbell@citrix.com>, xen-devel@lists.xen.org
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: [Xen-devel] [PATCH 08/14] xen: balloon: allow PVMMU interfaces to
+       be compiled out
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+The ARM platform has no concept of PVMMU and therefor no
+HYPERVISOR_update_va_mapping et al. Allow this code to be compiled out
+when not required.
+
+Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+---
+ arch/x86/xen/Kconfig  |    1 +
+ drivers/xen/Kconfig   |    3 +++
+ drivers/xen/balloon.c |    4 ++++
+ 3 files changed, 8 insertions(+), 0 deletions(-)
+
+diff --git a/arch/x86/xen/Kconfig b/arch/x86/xen/Kconfig
+index fdce49c..c31ee77 100644
+--- a/arch/x86/xen/Kconfig
++++ b/arch/x86/xen/Kconfig
+@@ -6,6 +6,7 @@ config XEN
+       bool "Xen guest support"
+       select PARAVIRT
+       select PARAVIRT_CLOCK
++      select XEN_HAVE_PVMMU
+       depends on X86_64 || (X86_32 && X86_PAE && !X86_VISWS)
+       depends on X86_CMPXCHG && X86_TSC
+       help
+diff --git a/drivers/xen/Kconfig b/drivers/xen/Kconfig
+index d4dffcd..9c00652 100644
+--- a/drivers/xen/Kconfig
++++ b/drivers/xen/Kconfig
+@@ -204,4 +204,7 @@ config XEN_MCE_LOG
+         Allow kernel fetching MCE error from Xen platform and
+         converting it into Linux mcelog format for mcelog tools
++config XEN_HAVE_PVMMU
++       bool
++
+ endmenu
+diff --git a/drivers/xen/balloon.c b/drivers/xen/balloon.c
+index 1b56ae0..cfe47dae 100644
+--- a/drivers/xen/balloon.c
++++ b/drivers/xen/balloon.c
+@@ -360,6 +360,7 @@ static enum bp_state increase_reservation(unsigned long nr_pages)
+               if (!xen_feature(XENFEAT_auto_translated_physmap))
+                       set_phys_to_machine(pfn, frame_list[i]);
++#ifdef CONFIG_XEN_HAVE_PVMMU
+               /* Link back into the page tables if not highmem. */
+               if (xen_pv_domain() && !PageHighMem(page) && 
+                   !xen_feature(XENFEAT_auto_translated_physmap)) {
+@@ -371,6 +372,7 @@ static enum bp_state increase_reservation(unsigned long nr_pages)
+                               0);
+                       BUG_ON(ret);
+               }
++#endif
+               /* Relinquish the page back to the allocator. */
+               ClearPageReserved(page);
+@@ -419,6 +421,7 @@ static enum bp_state decrease_reservation(unsigned long nr_pages, gfp_t gfp)
+               scrub_page(page);
++#ifdef CONFIG_XEN_HAVE_PVMMU
+               if (xen_pv_domain() && !PageHighMem(page) &&
+                   !xen_feature(XENFEAT_auto_translated_physmap)) {
+                               ret = HYPERVISOR_update_va_mapping(
+@@ -426,6 +429,7 @@ static enum bp_state decrease_reservation(unsigned long nr_pages, gfp_t gfp)
+                                       __pte_ma(0), 0);
+                               BUG_ON(ret);
+               }
++#endif
+       }
+       /* Ensure that ballooned highmem pages don't have kmaps. */
+-- 
+1.7.2.5
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1349363515-26190-9-git-send-email-ian.campbell@citrix.com> b/config/examples/test/corpus/<1349363515-26190-9-git-send-email-ian.campbell@citrix.com>
new file mode 100644 (file)
index 0000000..72c0908
--- /dev/null
@@ -0,0 +1,192 @@
+From xen-devel-bounces@lists.xen.org Thu Oct 04 16:15:59 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 04 Oct 2012 16:15:59 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TJn9W-00076z-2Q
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 04 Oct 2012 16:15:59 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TJn5p-0007xB-AJ; Thu, 04 Oct 2012 15:12:05 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1TJn5m-0007wP-CO
+       for xen-devel@lists.xen.org; Thu, 04 Oct 2012 15:12:02 +0000
+Received: from [85.158.137.99:42621] by server-6.bemta-3.messagelabs.com id
+       54/14-11085-047AD605; Thu, 04 Oct 2012 15:12:00 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-9.tower-217.messagelabs.com!1349363517!17137968!1
+X-Originating-IP: [66.165.176.89]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNzQyMDg=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 31796 invoked from network); 4 Oct 2012 15:11:59 -0000
+Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
+       by server-9.tower-217.messagelabs.com with RC4-SHA encrypted SMTP;
+       4 Oct 2012 15:11:59 -0000
+X-IronPort-AV: E=Sophos;i="4.80,535,1344211200"; d="scan'208";a="40152204"
+Received: from ftlpmailmx01.citrite.net ([10.13.107.65])
+       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       04 Oct 2012 15:11:56 +0000
+Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
+       (10.13.107.65) with Microsoft SMTP Server id 8.3.279.1;
+       Thu, 4 Oct 2012 11:11:56 -0400
+Received: from drall.uk.xensource.com ([10.80.227.107])        by
+       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
+       <ian.campbell@citrix.com>)      id 1TJn5f-0002L6-Ng;
+       Thu, 04 Oct 2012 16:11:55 +0100
+From: Ian Campbell <ian.campbell@citrix.com>
+To: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
+       Stefano Stabellini <stefano.stabellini@citrix.com>,
+       Mukesh Rathor <mukesh.rathor@oracle.com>
+Date: Thu, 4 Oct 2012 16:11:50 +0100
+Message-ID: <1349363515-26190-9-git-send-email-ian.campbell@citrix.com>
+X-Mailer: git-send-email 1.7.2.5
+In-Reply-To: <1349363496.866.49.camel@zakaz.uk.xensource.com>
+References: <1349363496.866.49.camel@zakaz.uk.xensource.com>
+MIME-Version: 1.0
+Cc: Ian Campbell <ian.campbell@citrix.com>, xen-devel@lists.xen.org
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: [Xen-devel] [PATCH 09/14] xen: arm: enable balloon driver
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+Drop the *_xenballloned_pages duplicates since these are now supplied
+by the balloon code.
+
+Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+---
+ arch/arm/xen/enlighten.c |   23 +++++------------------
+ drivers/xen/Makefile     |    4 ++--
+ drivers/xen/privcmd.c    |    9 ++++-----
+ 3 files changed, 11 insertions(+), 25 deletions(-)
+
+diff --git a/arch/arm/xen/enlighten.c b/arch/arm/xen/enlighten.c
+index 59bcb96..ba5cc13 100644
+--- a/arch/arm/xen/enlighten.c
++++ b/arch/arm/xen/enlighten.c
+@@ -8,6 +8,7 @@
+ #include <xen/features.h>
+ #include <xen/platform_pci.h>
+ #include <xen/xenbus.h>
++#include <xen/page.h>
+ #include <asm/xen/hypervisor.h>
+ #include <asm/xen/hypercall.h>
+ #include <linux/interrupt.h>
+@@ -29,6 +30,10 @@ struct shared_info *HYPERVISOR_shared_info = (void *)&xen_dummy_shared_info;
+ DEFINE_PER_CPU(struct vcpu_info *, xen_vcpu);
++/* These are unused until we support booting "pre-ballooned" */
++unsigned long xen_released_pages;
++struct xen_memory_region xen_extra_mem[XEN_EXTRA_MEM_MAX_REGIONS] __initdata;
++
+ /* TODO: to be removed */
+ __read_mostly int xen_have_vector_callback;
+ EXPORT_SYMBOL_GPL(xen_have_vector_callback);
+@@ -148,21 +153,3 @@ static int __init xen_init_events(void)
+       return 0;
+ }
+ postcore_initcall(xen_init_events);
+-
+-/* XXX: only until balloon is properly working */
+-int alloc_xenballooned_pages(int nr_pages, struct page **pages, bool highmem)
+-{
+-      *pages = alloc_pages(highmem ? GFP_HIGHUSER : GFP_KERNEL,
+-                      get_order(nr_pages));
+-      if (*pages == NULL)
+-              return -ENOMEM;
+-      return 0;
+-}
+-EXPORT_SYMBOL_GPL(alloc_xenballooned_pages);
+-
+-void free_xenballooned_pages(int nr_pages, struct page **pages)
+-{
+-      kfree(*pages);
+-      *pages = NULL;
+-}
+-EXPORT_SYMBOL_GPL(free_xenballooned_pages);
+diff --git a/drivers/xen/Makefile b/drivers/xen/Makefile
+index 275abfc..9a7896f 100644
+--- a/drivers/xen/Makefile
++++ b/drivers/xen/Makefile
+@@ -1,8 +1,8 @@
+ ifneq ($(CONFIG_ARM),y)
+-obj-y += manage.o balloon.o
++obj-y += manage.o
+ obj-$(CONFIG_HOTPLUG_CPU)             += cpu_hotplug.o
+ endif
+-obj-y += grant-table.o features.o events.o
++obj-y += grant-table.o features.o events.o balloon.o
+ obj-y += xenbus/
+ nostackp := $(call cc-option, -fno-stack-protector)
+diff --git a/drivers/xen/privcmd.c b/drivers/xen/privcmd.c
+index 1010bf7..bf4d62a 100644
+--- a/drivers/xen/privcmd.c
++++ b/drivers/xen/privcmd.c
+@@ -200,8 +200,8 @@ static long privcmd_ioctl_mmap(void __user *udata)
+       if (!xen_initial_domain())
+               return -EPERM;
+-      /* PVH: TBD/FIXME. For now we only support privcmd_ioctl_mmap_batch */
+-      if (xen_pv_domain() && xen_feature(XENFEAT_auto_translated_physmap))
++      /* We only support privcmd_ioctl_mmap_batch for auto translated. */
++      if (xen_feature(XENFEAT_auto_translated_physmap))
+               return -ENOSYS;
+       if (copy_from_user(&mmapcmd, udata, sizeof(mmapcmd)))
+@@ -413,7 +413,7 @@ static long privcmd_ioctl_mmap_batch(void __user *udata, int version)
+               up_write(&mm->mmap_sem);
+               goto out;
+       }
+-      if (xen_pv_domain() && xen_feature(XENFEAT_auto_translated_physmap)) {
++      if (xen_feature(XENFEAT_auto_translated_physmap)) {
+               if ((ret = pvh_privcmd_resv_pfns(vma, m.num))) {
+                       up_write(&mm->mmap_sem);
+                       goto out;
+@@ -492,8 +492,7 @@ static void privcmd_close(struct vm_area_struct *vma)
+       int count;
+       struct xen_pvh_pfn_info *pvhp = vma ? vma->vm_private_data : NULL;
+-      if (!xen_pv_domain()  || !pvhp ||
+-          !xen_feature(XENFEAT_auto_translated_physmap))
++      if (!pvhp || !xen_feature(XENFEAT_auto_translated_physmap))
+               return;
+       count = xen_unmap_domain_mfn_range(vma, pvhp);
+-- 
+1.7.2.5
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1349365718.866.63.camel@zakaz.uk.xensource.com> b/config/examples/test/corpus/<1349365718.866.63.camel@zakaz.uk.xensource.com>
new file mode 100644 (file)
index 0000000..dcaceca
--- /dev/null
@@ -0,0 +1,280 @@
+From xen-devel-bounces@lists.xen.org Thu Oct 04 16:53:43 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 04 Oct 2012 16:53:43 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TJnk0-0007LL-UH
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 04 Oct 2012 16:53:43 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TJnfp-0002WM-75; Thu, 04 Oct 2012 15:49:17 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1TJnfn-0002WH-IQ
+       for xen-devel@lists.xen.org; Thu, 04 Oct 2012 15:49:15 +0000
+Received: from [85.158.143.99:4496] by server-2.bemta-4.messagelabs.com id
+       F2/B3-06610-AFFAD605; Thu, 04 Oct 2012 15:49:14 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-6.tower-216.messagelabs.com!1349365754!25877864!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTMxNjA=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 4052 invoked from network); 4 Oct 2012 15:49:14 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-6.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
+       4 Oct 2012 15:49:14 -0000
+X-IronPort-AV: E=Sophos;i="4.80,535,1344211200"; d="scan'208";a="14945955"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       04 Oct 2012 15:48:39 +0000
+Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.279.1; Thu, 4 Oct 2012
+       16:48:39 +0100
+Message-ID: <1349365718.866.63.camel@zakaz.uk.xensource.com>
+From: Ian Campbell <Ian.Campbell@citrix.com>
+To: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+Date: Thu, 4 Oct 2012 16:48:38 +0100
+In-Reply-To: <20121004152459.GC11426@phenom.dumpdata.com>
+References: <1349363496.866.49.camel@zakaz.uk.xensource.com>
+       <1349363515-26190-11-git-send-email-ian.campbell@citrix.com>
+       <20121004152459.GC11426@phenom.dumpdata.com>
+Organization: Citrix Systems, Inc.
+X-Mailer: Evolution 3.4.3-1 
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 11/14] arm: implement remap interfaces
+ needed for privcmd mappings.
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Thu, 2012-10-04 at 16:24 +0100, Konrad Rzeszutek Wilk wrote:
+> On Thu, Oct 04, 2012 at 04:11:52PM +0100, Ian Campbell wrote:
+> > Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+> > ---
+> >  arch/arm/xen/enlighten.c |   94 +++++++++++++++++++++++++++++++++++++++++++++-
+> >  1 files changed, 92 insertions(+), 2 deletions(-)
+> > 
+> > diff --git a/arch/arm/xen/enlighten.c b/arch/arm/xen/enlighten.c
+> > index ba5cc13..9956af5 100644
+> > --- a/arch/arm/xen/enlighten.c
+> > +++ b/arch/arm/xen/enlighten.c
+> > @@ -9,6 +9,7 @@
+> >  #include <xen/platform_pci.h>
+> >  #include <xen/xenbus.h>
+> >  #include <xen/page.h>
+> > +#include <xen/xen-ops.h>
+> >  #include <asm/xen/hypervisor.h>
+> >  #include <asm/xen/hypercall.h>
+> >  #include <linux/interrupt.h>
+> > @@ -18,6 +19,8 @@
+> >  #include <linux/of_irq.h>
+> >  #include <linux/of_address.h>
+> >  
+> > +#include <linux/mm.h>
+> > +
+> >  struct start_info _xen_start_info;
+> >  struct start_info *xen_start_info = &_xen_start_info;
+> >  EXPORT_SYMBOL_GPL(xen_start_info);
+> > @@ -43,15 +46,102 @@ EXPORT_SYMBOL_GPL(xen_platform_pci_unplug);
+> >  
+> >  static __read_mostly int xen_events_irq = -1;
+> >  
+> > +/* map fgmfn of domid to lpfn in the current domain */
+> 
+> <laughs> Say that really fast a couple of times :-)
+> 
+> Any way we can explain it a bit more of what each acronym means?
+
+The names come from the x86 PVH version, which has the comment:
+/* Map foreign gmfn, fgmfn, to local pfn, lpfn. This for the user space 
+ * creating new guest on PVH dom0 and needs to map domU pages. 
+ */
+Is that preferable? (modulo removing the PVH bit)
+
+> 
+> > +static int map_foreign_page(unsigned long lpfn, unsigned long fgmfn,
+> > +                      unsigned int domid)
+> > +{
+> > +  int rc;
+> > +  struct xen_add_to_physmap xatp = {
+> > +          .domid = DOMID_SELF,
+> > +          .u.foreign_domid = domid,
+> > +          .space = XENMAPSPACE_gmfn_foreign,
+> > +          .idx = fgmfn,
+> > +          .gpfn = lpfn,
+> > +  };
+> > +
+> > +  rc = HYPERVISOR_memory_op(XENMEM_add_to_physmap, &xatp);
+> > +  if (rc) {
+> > +          pr_warn("Failed to map pfn to mfn rc:%d pfn:%lx mfn:%lx\n",
+> 
+> How about 'Failed to map pfn (0x%lx) to mfn (0x%lx), rc: %d\n" ?
+
+Sure, need to slip foreign domid in there somewhere now I look at it.
+
+x86 PVH has basically the same print BTW.
+
+> 
+> > +                  rc, lpfn, fgmfn);
+> > +          return 1;
+> > +  }
+> > +  return 0;
+> > +}
+> > +
+> > +struct remap_data {
+> > +  unsigned long fgmfn; /* foreign domain's gmfn */
+> 
+> Shouldn't this be called now 'xen_pfn_t' or something.
+
+xen_pfn_t is needed at the hypervisor interface layer, I'm not so sure
+about kernel internal use. I guess it can't hurt?
+
+> 
+> > +  pgprot_t prot;
+> > +  domid_t  domid;
+> > +  struct vm_area_struct *vma;
+> > +  struct xen_remap_mfn_info *info;
+> > +};
+> > +
+> > +static int remap_pte_fn(pte_t *ptep, pgtable_t token, unsigned long addr,
+> > +                  void *data)
+> > +{
+> > +  struct remap_data *info = data;
+> > +  struct xen_remap_mfn_info *savp = info->info;
+> > +  struct page *page = savp->pi_paga[savp->pi_next_todo++];
+> > +  unsigned long pfn = page_to_pfn(page);
+> > +  pte_t pte = pfn_pte(pfn, info->prot);
+> > +
+> > +  if (map_foreign_page(pfn, info->fgmfn, info->domid))
+> > +          return -EFAULT;
+> > +  set_pte_at(info->vma->vm_mm, addr, ptep, pte);
+> > +
+> > +  return 0;
+> > +}
+> > +
+> >  int xen_remap_domain_mfn_range(struct vm_area_struct *vma,
+> >                           unsigned long addr,
+> >                           unsigned long mfn, int nr,
+> > -                         pgprot_t prot, unsigned domid)
+> > +                         pgprot_t prot, unsigned domid,
+> > +                         struct xen_remap_mfn_info *info)
+> >  {
+> > -  return -ENOSYS;
+> > +  int err;
+> > +  struct remap_data data;
+> > +
+> > +  /* TBD: Batching, current sole caller only does page at a time */
+> > +  if (nr > 1)
+> 
+> Lets also wrap it with WARN_ON?
+
+ACK, needs doing on x86 PVH too then.
+
+> 
+> > +          return -EINVAL;
+> > +
+> > +  data.fgmfn = mfn;
+> > +  data.prot = prot;
+> > +  data.domid = domid;
+> > +  data.vma = vma;
+> > +  data.info = info;
+> > +  err = apply_to_page_range(vma->vm_mm, addr, nr << PAGE_SHIFT,
+> > +                            remap_pte_fn, &data);
+> > +  return err;
+> >  }
+> >  EXPORT_SYMBOL_GPL(xen_remap_domain_mfn_range);
+> >  
+> > +/* Returns: Number of pages unmapped */
+> > +int xen_unmap_domain_mfn_range(struct vm_area_struct *vma,
+> > +                         struct xen_remap_mfn_info *info)
+> > +{
+> > +  int count = 0;
+> > +
+> > +  while (info->pi_next_todo--) {
+> > +          struct xen_remove_from_physmap xrp;
+> > +          unsigned long rc, pfn;
+> > +
+> > +          pfn = page_to_pfn(info->pi_paga[info->pi_next_todo]);
+> 
+> Won't this miss the first pi_next_todo? You did the 'pi_next_todo--' so
+> will the compiler decrement it here in this operation or will it do
+> when it gets to the 'do' logic of the loop?
+
+It's a post decrement so if pi_next_todo == 1 then the expression in the
+while will see 1 (true) but inside the loop we see zero. So we end up
+processing elements N-1..0 of the array which is correct.
+
+This is the same as on x86 PVH, so if I'm wrong then that is too.
+
+I mentioned in the PVH thread this morning that I think this interface
+should drop pi_next_todo and have a simple for loop based on the number
+of pages between vm_start...vm_end here.
+
+> 
+> > +
+> > +          xrp.domid = DOMID_SELF;
+> > +          xrp.gpfn = pfn;
+> > +          rc = HYPERVISOR_memory_op(XENMEM_remove_from_physmap, &xrp);
+> 
+> 'rc' is 'unsigned long'. Is that right? You don't want it to be 'int'?
+
+Hypercalls return unsigned long these days, I think it was considered a
+mistake that some didn't. See <25744:47080c965937> in the hypervisor
+tree. 
+
+Oh, wait, we are both wrong -- it's a long. I'll fix that...
+
+> 
+> > +          if (rc) {
+> > +                  pr_warn("Failed to unmap pfn:%lx rc:%ld\n",
+> > +                          pfn, rc);
+> > +                  return count;
+> > +          }
+> > +          count++;
+> > +  }
+> > +  return count;
+> > +}
+> > +EXPORT_SYMBOL_GPL(xen_unmap_domain_mfn_range);
+> > +
+> >  /*
+> >   * see Documentation/devicetree/bindings/arm/xen.txt for the
+> >   * documentation of the Xen Device Tree format.
+> > -- 
+> > 1.7.2.5
+
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1349428386.20946.15.camel@zakaz.uk.xensource.com> b/config/examples/test/corpus/<1349428386.20946.15.camel@zakaz.uk.xensource.com>
new file mode 100644 (file)
index 0000000..24f5381
--- /dev/null
@@ -0,0 +1,118 @@
+From xen-devel-bounces@lists.xen.org Fri Oct 05 10:17:19 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 05 Oct 2012 10:17:19 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TK420-0006wc-Rt
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 05 Oct 2012 10:17:19 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TK3y3-00087C-PN; Fri, 05 Oct 2012 09:13:11 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1TK3y2-000877-Dr
+       for xen-devel@lists.xensource.com; Fri, 05 Oct 2012 09:13:10 +0000
+Received: from [85.158.143.35:33122] by server-3.bemta-4.messagelabs.com id
+       27/4C-10986-5A4AE605; Fri, 05 Oct 2012 09:13:09 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-14.tower-21.messagelabs.com!1349428388!17579550!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTMxNTE=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 23120 invoked from network); 5 Oct 2012 09:13:08 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-14.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
+       5 Oct 2012 09:13:08 -0000
+X-IronPort-AV: E=Sophos;i="4.80,541,1344211200"; d="scan'208";a="14957628"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       05 Oct 2012 09:13:08 +0000
+Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.279.1; Fri, 5 Oct 2012
+       10:13:08 +0100
+Message-ID: <1349428386.20946.15.camel@zakaz.uk.xensource.com>
+From: Ian Campbell <Ian.Campbell@citrix.com>
+To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+Date: Fri, 5 Oct 2012 10:13:06 +0100
+In-Reply-To: <1345633688-31684-4-git-send-email-stefano.stabellini@eu.citrix.com>
+References: <alpine.DEB.2.02.1208221159560.15568@kaball.uk.xensource.com>
+       <1345633688-31684-4-git-send-email-stefano.stabellini@eu.citrix.com>
+Organization: Citrix Systems, Inc.
+X-Mailer: Evolution 3.4.3-1 
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
+       "Tim \(Xen.org\)" <tim@xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="utf-8"
+Content-Transfer-Encoding: base64
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH v4 4/6] xen: introduce XEN_GUEST_HANDLE_PARAM
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+T24gV2VkLCAyMDEyLTA4LTIyIGF0IDEyOjA4ICswMTAwLCBTdGVmYW5vIFN0YWJlbGxpbmkgd3Jv
+dGU6Cj4gZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL2FzbS1hcm0vZ3Vlc3RfYWNjZXNzLmggYi94
+ZW4vaW5jbHVkZS9hc20tYXJtL2d1ZXN0X2FjY2Vzcy5oCj4gaW5kZXggMGZjZWFlNi4uNTY4NjIx
+NyAxMDA2NDQKPiAtLS0gYS94ZW4vaW5jbHVkZS9hc20tYXJtL2d1ZXN0X2FjY2Vzcy5oCj4gKysr
+IGIveGVuL2luY2x1ZGUvYXNtLWFybS9ndWVzdF9hY2Nlc3MuaAo+IEBAIC0yNywxNiArMjcsNDAg
+QEAgdW5zaWduZWQgbG9uZyByYXdfY2xlYXJfZ3Vlc3Qodm9pZCAqdG8sIHVuc2lnbmVkIGxlbik7
+Cj4gICNkZWZpbmUgZ3Vlc3RfaGFuZGxlX2FkZF9vZmZzZXQoaG5kLCBucikgKChobmQpLnAgKz0g
+KG5yKSkKPiAgI2RlZmluZSBndWVzdF9oYW5kbGVfc3VidHJhY3Rfb2Zmc2V0KGhuZCwgbnIpICgo
+aG5kKS5wIC09IChucikpCj4gIAo+IC0vKiBDYXN0IGEgZ3Vlc3QgaGFuZGxlIHRvIHRoZSBzcGVj
+aWZpZWQgdHlwZSBvZiBoYW5kbGUuICovCj4gKy8qIENhc3QgYSBndWVzdCBoYW5kbGUgKGVpdGhl
+ciBYRU5fR1VFU1RfSEFORExFIG9yIFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0pCj4gKyAqIHRvIHRo
+ZSBzcGVjaWZpZWQgdHlwZSBvZiBYRU5fR1VFU1RfSEFORExFX1BBUkFNLiAqLwo+ICAjZGVmaW5l
+IGd1ZXN0X2hhbmRsZV9jYXN0KGhuZCwgdHlwZSkgKHsgICAgICAgICBcCj4gICAgICB0eXBlICpf
+eCA9IChobmQpLnA7ICAgICAgICAgICAgICAgICAgICAgICAgIFwKPiAtICAgIChYRU5fR1VFU1Rf
+SEFORExFKHR5cGUpKSB7IF94IH07ICAgICAgICAgICAgXAo+ICsgICAgKFhFTl9HVUVTVF9IQU5E
+TEVfUEFSQU0odHlwZSkpIHsgX3ggfTsgICAgICAgICAgICBcClsuLi5dCj4gICNkZWZpbmUgZ3Vl
+c3RfaGFuZGxlX2Zyb21fcHRyKHB0ciwgdHlwZSkgICAgICAgIFwKPiAtICAgICgoWEVOX0dVRVNU
+X0hBTkRMRSh0eXBlKSkgeyAodHlwZSAqKXB0ciB9KQo+ICsgICAgKChYRU5fR1VFU1RfSEFORExF
+X1BBUkFNKHR5cGUpKSB7ICh0eXBlICopcHRyIH0pCj4gICNkZWZpbmUgY29uc3RfZ3Vlc3RfaGFu
+ZGxlX2Zyb21fcHRyKHB0ciwgdHlwZSkgIFwKPiAtICAgICgoWEVOX0dVRVNUX0hBTkRMRShjb25z
+dF8jI3R5cGUpKSB7IChjb25zdCB0eXBlICopcHRyIH0pCj4gKyAgICAoKFhFTl9HVUVTVF9IQU5E
+TEVfUEFSQU0oY29uc3RfIyN0eXBlKSkgeyAoY29uc3QgdHlwZSAqKXB0ciB9KQoKVGhlc2UgbGl0
+dGxlIGJpdHMgY2F1c2UgYnVpbGQgYnJlYWthZ2UgaWYgeW91IG9ubHkgYXBwbHkgdG8gdGhpcyBw
+b2ludAppbiB0aGUgc2VyaWVzIChpLmUuIGJyZWFrcyBiaXNlY3RhYmlsaXR5KToKICAgICAgICBn
+cmFudF90YWJsZS5jOiBJbiBmdW5jdGlvbiDigJhkb19ncmFudF90YWJsZV9vcOKAmToKICAgICAg
+ICBncmFudF90YWJsZS5jOjI0NDk6MTM6IGVycm9yOiBpbnZhbGlkIGluaXRpYWxpemVyCiAgICAg
+ICAgZ3JhbnRfdGFibGUuYzoyNDU2OjE3OiBlcnJvcjogaW5jb21wYXRpYmxlIHR5cGVzIHdoZW4g
+YXNzaWduaW5nIHRvIHR5cGUg4oCYX19ndWVzdF9oYW5kbGVfNjRfdm9pZOKAmSBmcm9tIHR5cGUg
+4oCYX19ndWVzdF9oYW5kbGVfdm9pZOKAmQogICAgICAgIFtsb3RzIG1vcmUgb2YgdGhlIHNhbWVd
+CgpJIHRoaW5rIHRoaXMgaXMgYmVjYXVzZSB5b3UgaGF2ZSBjaGFuZ2VkIGd1ZXN0X2hhbmRsZV9j
+YXN0IGJ1dCB5b3UKaGF2ZW4ndCB5ZXQgY2hhbmdlZCB0aGUgdHlwZSBvZiB0aGUgcGFyYW1ldGVy
+LgoKSSBoYXZlbid0IHRyaWVkIHg4NiBidXQgSSBjYW4ndCBzZWUgd2h5IHRoZSBzYW1lIHByb2Js
+ZW0gd291bGRuJ3QgZXhpc3QKdGhlcmUgYWxzby4KClRoZSBvYnZpb3VzIGFuc3dlciBpcyB0byBt
+b3ZlIHRoZXNlIGh1bmtzIGludG8gdGhlIG5leHQgcGF0Y2gsIGJ1dCBJCnRoaW5rIGJlY2F1c2Ug
+b2YgdGhlIHNwbGl0IGludG8gcGF0Y2hlcyA1LzYgYW5kIDYvNiB0aGlzIHdpbGwgc3RpbGwKY2F1
+c2UgcHJvYmxlbXMuIEknbGwgdHJ5IGl0IHRob3VnaCBidXQgSSBzdXNwZWN0IHdlIG1pZ2h0IGVu
+ZCB1cCBoYXZpbmcKdG8gc3F1YXNoIDUrNiB0b2dldGhlcj8KCkFsdGVybmF0aXZlbHkgSSd2ZSBi
+cm9rZW4gc29tZXRoaW5nIGR1cmluZyByZWJhc2luZyBhbmQgdGhpcyB1c2VkIHRvCndvcmsgZmlu
+ZSBhbmQgeW91IGtub3cgd2hhdCB0byBkbyA7LSkuLi4KCklhbi4KCgpfX19fX19fX19fX19fX19f
+X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhl
+bi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHA6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=
+
diff --git a/config/examples/test/corpus/<1349429005.20946.20.camel@zakaz.uk.xensource.com> b/config/examples/test/corpus/<1349429005.20946.20.camel@zakaz.uk.xensource.com>
new file mode 100644 (file)
index 0000000..da1348b
--- /dev/null
@@ -0,0 +1,129 @@
+From xen-devel-bounces@lists.xen.org Fri Oct 05 10:26:55 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 05 Oct 2012 10:26:55 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TK4BJ-0006xs-Fw
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 05 Oct 2012 10:26:55 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TK482-0008MP-CX; Fri, 05 Oct 2012 09:23:30 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1TK480-0008MH-7B
+       for Xen-devel@lists.xensource.com; Fri, 05 Oct 2012 09:23:28 +0000
+Received: from [85.158.138.51:17421] by server-16.bemta-3.messagelabs.com id
+       DE/D0-04167-F07AE605; Fri, 05 Oct 2012 09:23:27 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-9.tower-174.messagelabs.com!1349429006!31516419!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTMxNTE=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 6591 invoked from network); 5 Oct 2012 09:23:27 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-9.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
+       5 Oct 2012 09:23:27 -0000
+X-IronPort-AV: E=Sophos;i="4.80,541,1344211200"; d="scan'208";a="14957877"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       05 Oct 2012 09:23:26 +0000
+Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.279.1; Fri, 5 Oct 2012
+       10:23:26 +0100
+Message-ID: <1349429005.20946.20.camel@zakaz.uk.xensource.com>
+From: Ian Campbell <Ian.Campbell@citrix.com>
+To: Mukesh Rathor <mukesh.rathor@oracle.com>
+Date: Fri, 5 Oct 2012 10:23:25 +0100
+In-Reply-To: <20121004183528.060416a0@mantra.us.oracle.com>
+References: <20120921121659.5a723de9@mantra.us.oracle.com>
+       <alpine.DEB.2.02.1209241257440.29232@kaball.uk.xensource.com>
+       <20120924154335.097d3fb9@mantra.us.oracle.com>
+       <alpine.DEB.2.02.1209251054140.29232@kaball.uk.xensource.com>
+       <20120925180416.0137d61a@mantra.us.oracle.com>
+       <alpine.DEB.2.02.1209261225340.29232@kaball.uk.xensource.com>
+       <20121002183619.70734b7a@mantra.us.oracle.com>
+       <20121002190323.2e16f6ff@mantra.us.oracle.com>
+       <alpine.DEB.2.02.1210031242180.29232@kaball.uk.xensource.com>
+       <1349265914.650.136.camel@zakaz.uk.xensource.com>
+       <20121004183528.060416a0@mantra.us.oracle.com>
+Organization: Citrix Systems, Inc.
+X-Mailer: Evolution 3.4.3-1 
+MIME-Version: 1.0
+Cc: "Xen-devel@lists.xensource.com" <Xen-devel@lists.xensource.com>, Konrad
+       Rzeszutek Wilk <konrad.wilk@oracle.com>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH v1 3/8]: PVH startup changes (enlighten.c)
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Fri, 2012-10-05 at 02:35 +0100, Mukesh Rathor wrote:
+> On Wed, 3 Oct 2012 13:05:14 +0100
+> Ian Campbell <Ian.Campbell@citrix.com> wrote:
+> 
+> > On Wed, 2012-10-03 at 12:58 +0100, Stefano Stabellini wrote:
+> > > > So for now, how about, lets go
+> > > > with what I've got. I'll make a note, and when I do xen patch,
+> > > > I'll figure it out, and would be a very small linux patch. I want
+> > > > to get linux patch in soon before the window closes.
+> > > 
+> > > We can leave page special as it is for now with very little
+> > > consequences, because it is not part of the interface with Xen.
+> > > However this is part of the interface, so whatever we choose here
+> > > is going to be hard to change later on.
+> > 
+> > I suggested that until we have seen and reviewed the hypervisor side
+> > patches this guest side functionality all needs to be under an option
+> > which has CONFIG_EXPERIMENTAL as a dependency and a comment explaining
+> > that the ABI is not fixed yet, similar to what we did for the ARM
+> > port.
+> 
+> Konrad is going to keep the changes in his tree and not upstream for
+> couple months while we go thru the xen patches. This would be a big
+> help for me as I won't have to constantly refresh linux tree.
+
+Ah, ok, that sounds like a good plan.
+
+In the case where the ARM stuff I have built on this becomes ripe first
+would it be OK with you guys if I were to cherry pick the relevant bits
+of the PVH stuff into a series to go in sooner?
+
+> I hope we can get some baseline in linux and xen soon.
+
+Likewise!
+
+Ian.
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1349437645.20946.74.camel@zakaz.uk.xensource.com> b/config/examples/test/corpus/<1349437645.20946.74.camel@zakaz.uk.xensource.com>
new file mode 100644 (file)
index 0000000..475f727
--- /dev/null
@@ -0,0 +1,129 @@
+From xen-devel-bounces@lists.xen.org Fri Oct 05 12:51:32 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 05 Oct 2012 12:51:32 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TK6RC-0007Te-N8
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 05 Oct 2012 12:51:32 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TK6NN-0007uf-Eb; Fri, 05 Oct 2012 11:47:29 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1TK6NM-0007uT-0J
+       for xen-devel@lists.xen.org; Fri, 05 Oct 2012 11:47:28 +0000
+Received: from [85.158.137.99:57082] by server-2.bemta-3.messagelabs.com id
+       97/12-16514-FC8CE605; Fri, 05 Oct 2012 11:47:27 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-6.tower-217.messagelabs.com!1349437646!15269990!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTMxNTE=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 22802 invoked from network); 5 Oct 2012 11:47:26 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-6.tower-217.messagelabs.com with RC4-SHA encrypted SMTP;
+       5 Oct 2012 11:47:26 -0000
+X-IronPort-AV: E=Sophos;i="4.80,541,1344211200"; d="scan'208";a="14961383"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       05 Oct 2012 11:47:26 +0000
+Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.279.1; Fri, 5 Oct 2012
+       12:47:26 +0100
+Message-ID: <1349437645.20946.74.camel@zakaz.uk.xensource.com>
+From: Ian Campbell <Ian.Campbell@citrix.com>
+To: Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+Date: Fri, 5 Oct 2012 12:47:25 +0100
+In-Reply-To: <alpine.DEB.2.02.1210051239100.29232@kaball.uk.xensource.com>
+References: <1349363496.866.49.camel@zakaz.uk.xensource.com>
+       <1349363515-26190-3-git-send-email-ian.campbell@citrix.com>
+       <alpine.DEB.2.02.1210051239100.29232@kaball.uk.xensource.com>
+Organization: Citrix Systems, Inc.
+X-Mailer: Evolution 3.4.3-1 
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
+       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 03/14] xen events: xen_callback_vector is
+       x86 specific
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Fri, 2012-10-05 at 12:43 +0100, Stefano Stabellini wrote:
+> On Thu, 4 Oct 2012, Ian Campbell wrote:
+> > Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+> > ---
+> > Should instead move somewhere arch specific?
+> 
+> This shouldn't be needed: it should be already protected by
+> CONFIG_XEN_PVHVM (that is x86 specific).
+
+Mukesh removed that ifdef because PVH also wants this function.
+
+Ian.
+
+> 
+> 
+> >  drivers/xen/events.c |    4 ++++
+> >  1 files changed, 4 insertions(+), 0 deletions(-)
+> > 
+> > diff --git a/drivers/xen/events.c b/drivers/xen/events.c
+> > index 6f55ef2..2508981 100644
+> > --- a/drivers/xen/events.c
+> > +++ b/drivers/xen/events.c
+> > @@ -1775,6 +1775,7 @@ int xen_set_callback_via(uint64_t via)
+> >  EXPORT_SYMBOL_GPL(xen_set_callback_via);
+> >  
+> >  
+> > +#ifdef CONFIG_X86
+> >  /* Vector callbacks are better than PCI interrupts to receive event
+> >   * channel notifications because we can receive vector callbacks on any
+> >   * vcpu and we don't need PCI support or APIC interactions. */
+> > @@ -1798,6 +1799,9 @@ void xen_callback_vector(void)
+> >                    alloc_intr_gate(XEN_HVM_EVTCHN_CALLBACK, xen_hvm_callback_vector);
+> >    }
+> >  }
+> > +#else
+> > +void xen_callback_vector(void) {}
+> > +#endif
+> >  
+> >  void xen_init_IRQ(void)
+> >  {
+> > -- 
+> > 1.7.2.5
+> > 
+
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1349440338.20946.83.camel@zakaz.uk.xensource.com> b/config/examples/test/corpus/<1349440338.20946.83.camel@zakaz.uk.xensource.com>
new file mode 100644 (file)
index 0000000..be10d07
--- /dev/null
@@ -0,0 +1,133 @@
+From xen-devel-bounces@lists.xen.org Fri Oct 05 13:36:52 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 05 Oct 2012 13:36:52 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TK797-0007gX-Hy
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 05 Oct 2012 13:36:51 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TK75a-0002EC-85; Fri, 05 Oct 2012 12:33:10 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1TK75Y-0002Dv-9c
+       for xen-devel@lists.xen.org; Fri, 05 Oct 2012 12:33:08 +0000
+Received: from [85.158.143.35:53062] by server-3.bemta-4.messagelabs.com id
+       B6/77-10986-283DE605; Fri, 05 Oct 2012 12:33:06 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-15.tower-21.messagelabs.com!1349440353!13842036!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTMxNTE=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 31288 invoked from network); 5 Oct 2012 12:32:33 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-15.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
+       5 Oct 2012 12:32:33 -0000
+X-IronPort-AV: E=Sophos;i="4.80,541,1344211200"; d="scan'208";a="14962633"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       05 Oct 2012 12:32:19 +0000
+Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.279.1; Fri, 5 Oct 2012
+       13:32:19 +0100
+Message-ID: <1349440338.20946.83.camel@zakaz.uk.xensource.com>
+From: Ian Campbell <Ian.Campbell@citrix.com>
+To: Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+Date: Fri, 5 Oct 2012 13:32:18 +0100
+In-Reply-To: <alpine.DEB.2.02.1210051243480.29232@kaball.uk.xensource.com>
+References: <1349363496.866.49.camel@zakaz.uk.xensource.com>
+       <1349363515-26190-5-git-send-email-ian.campbell@citrix.com>
+       <alpine.DEB.2.02.1210051243480.29232@kaball.uk.xensource.com>
+Organization: Citrix Systems, Inc.
+X-Mailer: Evolution 3.4.3-1 
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
+       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 05/14] xen: balloon: use correct type for
+       frame_list
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Fri, 2012-10-05 at 12:48 +0100, Stefano Stabellini wrote:
+> On Thu, 4 Oct 2012, Ian Campbell wrote:
+> > This is now a xen_pfn_t.
+> > 
+> > Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+> > ---
+> >  drivers/xen/balloon.c |    2 +-
+> >  1 files changed, 1 insertions(+), 1 deletions(-)
+> > 
+> > diff --git a/drivers/xen/balloon.c b/drivers/xen/balloon.c
+> > index 85ef7e7..4625560 100644
+> > --- a/drivers/xen/balloon.c
+> > +++ b/drivers/xen/balloon.c
+> > @@ -87,7 +87,7 @@ struct balloon_stats balloon_stats;
+> >  EXPORT_SYMBOL_GPL(balloon_stats);
+> >  
+> >  /* We increase/decrease in batches which fit in a page */
+> > -static unsigned long frame_list[PAGE_SIZE / sizeof(unsigned long)];
+> > +static xen_pfn_t frame_list[PAGE_SIZE / sizeof(unsigned long)];
+> >  
+> >  #ifdef CONFIG_HIGHMEM
+> >  #define inc_totalhigh_pages() (totalhigh_pages++)
+>  
+> While I think is a good change, frame_list[i] is used as an argument to
+> set_phys_to_machine, that takes an unsigned long. Also unsigned long are
+> assigned to members of the array via page_to_pfn.
+> I think that we should take care of these cases, either introducing
+> explicit casts or changing the argument types.
+
+frame_list is used at the Xen interface, and so the pfn type has to be
+sized for the largest pfn the hypervisor will use (aka xen_pfn_t). Those
+unsigned longs are really "linux_pfn_t", that is they are the size of
+the largest pfn the guest is itself prepared to deal with.
+
+So long as sizeof(unsigned long) <= sizeof(xen_pfn_t) (which it is) then
+we are ok.
+
+If and when Linux wants to use pfn's which are not unsigned longs then
+the uses of unsigned long will need to be audited (globally, not just
+here) to become whatever type Linux then defines to contain a pfn. In
+the absence of that type being defined in the core Linux code I think it
+is correct for us to keep using unsigned long in those contexts.
+
+Konrad, now I think about it the same argument applies to the discussion
+of fgmfn in <20121004155400.GA12128@phenom.dumpdata.com>. So I'll leave
+that as unsigned long as well.
+
+Ian.
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1349443792.20946.97.camel@zakaz.uk.xensource.com> b/config/examples/test/corpus/<1349443792.20946.97.camel@zakaz.uk.xensource.com>
new file mode 100644 (file)
index 0000000..deb55b4
--- /dev/null
@@ -0,0 +1,119 @@
+From xen-devel-bounces@lists.xen.org Fri Oct 05 14:33:31 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 05 Oct 2012 14:33:31 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TK81t-0007xQ-Ua
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 05 Oct 2012 14:33:31 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TK7yX-0005HN-FU; Fri, 05 Oct 2012 13:29:57 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1TK7yV-0005HH-BI
+       for xen-devel@lists.xen.org; Fri, 05 Oct 2012 13:29:55 +0000
+Received: from [85.158.138.51:18312] by server-13.bemta-3.messagelabs.com id
+       A9/67-28885-2D0EE605; Fri, 05 Oct 2012 13:29:54 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-8.tower-174.messagelabs.com!1349443793!33195536!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTMxNTE=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 6117 invoked from network); 5 Oct 2012 13:29:54 -0000
+Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-8.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
+       5 Oct 2012 13:29:54 -0000
+X-IronPort-AV: E=Sophos;i="4.80,541,1344211200"; d="scan'208";a="14964430"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       05 Oct 2012 13:29:53 +0000
+Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.279.1; Fri, 5 Oct 2012
+       14:29:53 +0100
+Message-ID: <1349443792.20946.97.camel@zakaz.uk.xensource.com>
+From: Ian Campbell <Ian.Campbell@citrix.com>
+To: Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+Date: Fri, 5 Oct 2012 14:29:52 +0100
+In-Reply-To: <alpine.DEB.2.02.1210051420260.29232@kaball.uk.xensource.com>
+References: <1349363496.866.49.camel@zakaz.uk.xensource.com>
+       <1349363515-26190-12-git-send-email-ian.campbell@citrix.com>
+       <alpine.DEB.2.02.1210051420260.29232@kaball.uk.xensource.com>
+Organization: Citrix Systems, Inc.
+X-Mailer: Evolution 3.4.3-1 
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
+       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 12/14] arm: xen: explain the EXPERIMENTAL
+ dependency in the Kconfig help
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Fri, 2012-10-05 at 14:21 +0100, Stefano Stabellini wrote:
+> On Thu, 4 Oct 2012, Ian Campbell wrote:
+> > Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+> > ---
+> >  arch/arm/Kconfig |    8 ++++++++
+> >  1 files changed, 8 insertions(+), 0 deletions(-)
+> > 
+> > diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
+> > index 3361466..b171c46 100644
+> > --- a/arch/arm/Kconfig
+> > +++ b/arch/arm/Kconfig
+> > @@ -1907,6 +1907,14 @@ config XEN
+> >    help
+> >      Say Y if you want to run Linux in a Virtual Machine on Xen on ARM.
+> >  
+> > +
+> > +    This option is EXPERIMETNAL because the hypervisor
+>                          ^ EXPERIMENTAL
+
+Fixed, thanks.
+
+> > +    interfaces which it uses are not yet considered stable
+> > +    therefore backwards and forwards compatibility is not yet
+> > +    guaranteed.
+> > +
+> > +    If unsure, say N.
+> > +
+> >  endmenu
+> >  
+> >  menu "Boot options"
+> > -- 
+> > 1.7.2.5
+> > 
+
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1349443982.20946.100.camel@zakaz.uk.xensource.com> b/config/examples/test/corpus/<1349443982.20946.100.camel@zakaz.uk.xensource.com>
new file mode 100644 (file)
index 0000000..3b05f83
--- /dev/null
@@ -0,0 +1,172 @@
+From xen-devel-bounces@lists.xen.org Fri Oct 05 14:37:16 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 05 Oct 2012 14:37:16 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TK85W-0007yl-Mw
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 05 Oct 2012 14:37:16 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TK81c-0005Ty-2w; Fri, 05 Oct 2012 13:33:08 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1TK81Z-0005Tb-Re
+       for xen-devel@lists.xen.org; Fri, 05 Oct 2012 13:33:06 +0000
+Received: from [85.158.139.211:41222] by server-12.bemta-5.messagelabs.com id
+       9B/51-19095-091EE605; Fri, 05 Oct 2012 13:33:04 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-10.tower-206.messagelabs.com!1349443984!21185981!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTMxNTE=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 514 invoked from network); 5 Oct 2012 13:33:04 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-10.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
+       5 Oct 2012 13:33:04 -0000
+X-IronPort-AV: E=Sophos;i="4.80,541,1344211200"; d="scan'208";a="14964552"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       05 Oct 2012 13:33:04 +0000
+Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.279.1; Fri, 5 Oct 2012
+       14:33:04 +0100
+Message-ID: <1349443982.20946.100.camel@zakaz.uk.xensource.com>
+From: Ian Campbell <Ian.Campbell@citrix.com>
+To: Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+Date: Fri, 5 Oct 2012 14:33:02 +0100
+In-Reply-To: <alpine.DEB.2.02.1210051419030.29232@kaball.uk.xensource.com>
+References: <1349363496.866.49.camel@zakaz.uk.xensource.com>
+       <1349363515-26190-8-git-send-email-ian.campbell@citrix.com>
+       <alpine.DEB.2.02.1210051419030.29232@kaball.uk.xensource.com>
+Organization: Citrix Systems, Inc.
+X-Mailer: Evolution 3.4.3-1 
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
+       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 08/14] xen: balloon: allow PVMMU interfaces
+ to be compiled out
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Fri, 2012-10-05 at 14:19 +0100, Stefano Stabellini wrote:
+> On Thu, 4 Oct 2012, Ian Campbell wrote:
+> > The ARM platform has no concept of PVMMU and therefor no
+> > HYPERVISOR_update_va_mapping et al. Allow this code to be compiled out
+> > when not required.
+> > 
+> > Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+> 
+> I am unsure whether it is worth a new symbol and two ifdef's
+
+ARM doesn't compile without it, since HYPERVISOR_update_va_mapping
+doesn't exist. Do you have a preferable alternative?
+
+I'm not sure how much more of this sort of thing there will be as we
+enable more features on the ARM port.
+
+> 
+> 
+> >  arch/x86/xen/Kconfig  |    1 +
+> >  drivers/xen/Kconfig   |    3 +++
+> >  drivers/xen/balloon.c |    4 ++++
+> >  3 files changed, 8 insertions(+), 0 deletions(-)
+> > 
+> > diff --git a/arch/x86/xen/Kconfig b/arch/x86/xen/Kconfig
+> > index fdce49c..c31ee77 100644
+> > --- a/arch/x86/xen/Kconfig
+> > +++ b/arch/x86/xen/Kconfig
+> > @@ -6,6 +6,7 @@ config XEN
+> >    bool "Xen guest support"
+> >    select PARAVIRT
+> >    select PARAVIRT_CLOCK
+> > +  select XEN_HAVE_PVMMU
+> >    depends on X86_64 || (X86_32 && X86_PAE && !X86_VISWS)
+> >    depends on X86_CMPXCHG && X86_TSC
+> >    help
+> > diff --git a/drivers/xen/Kconfig b/drivers/xen/Kconfig
+> > index d4dffcd..9c00652 100644
+> > --- a/drivers/xen/Kconfig
+> > +++ b/drivers/xen/Kconfig
+> > @@ -204,4 +204,7 @@ config XEN_MCE_LOG
+> >      Allow kernel fetching MCE error from Xen platform and
+> >      converting it into Linux mcelog format for mcelog tools
+> >  
+> > +config XEN_HAVE_PVMMU
+> > +       bool
+> > +
+> >  endmenu
+> > diff --git a/drivers/xen/balloon.c b/drivers/xen/balloon.c
+> > index 1b56ae0..cfe47dae 100644
+> > --- a/drivers/xen/balloon.c
+> > +++ b/drivers/xen/balloon.c
+> > @@ -360,6 +360,7 @@ static enum bp_state increase_reservation(unsigned long nr_pages)
+> >            if (!xen_feature(XENFEAT_auto_translated_physmap))
+> >                    set_phys_to_machine(pfn, frame_list[i]);
+> >  
+> > +#ifdef CONFIG_XEN_HAVE_PVMMU
+> >            /* Link back into the page tables if not highmem. */
+> >            if (xen_pv_domain() && !PageHighMem(page) && 
+> >                !xen_feature(XENFEAT_auto_translated_physmap)) {
+> > @@ -371,6 +372,7 @@ static enum bp_state increase_reservation(unsigned long nr_pages)
+> >                            0);
+> >                    BUG_ON(ret);
+> >            }
+> > +#endif
+> >  
+> >            /* Relinquish the page back to the allocator. */
+> >            ClearPageReserved(page);
+> > @@ -419,6 +421,7 @@ static enum bp_state decrease_reservation(unsigned long nr_pages, gfp_t gfp)
+> >  
+> >            scrub_page(page);
+> >  
+> > +#ifdef CONFIG_XEN_HAVE_PVMMU
+> >            if (xen_pv_domain() && !PageHighMem(page) &&
+> >                !xen_feature(XENFEAT_auto_translated_physmap)) {
+> >                            ret = HYPERVISOR_update_va_mapping(
+> > @@ -426,6 +429,7 @@ static enum bp_state decrease_reservation(unsigned long nr_pages, gfp_t gfp)
+> >                                    __pte_ma(0), 0);
+> >                            BUG_ON(ret);
+> >            }
+> > +#endif
+> >    }
+> >  
+> >    /* Ensure that ballooned highmem pages don't have kmaps. */
+> > -- 
+> > 1.7.2.5
+> > 
+
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1349444369.20946.101.camel@zakaz.uk.xensource.com> b/config/examples/test/corpus/<1349444369.20946.101.camel@zakaz.uk.xensource.com>
new file mode 100644 (file)
index 0000000..c25850d
--- /dev/null
@@ -0,0 +1,93 @@
+From xen-devel-bounces@lists.xen.org Fri Oct 05 14:43:51 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 05 Oct 2012 14:43:51 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TK8Bw-00080N-VP
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 05 Oct 2012 14:43:51 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TK883-0005yk-84; Fri, 05 Oct 2012 13:39:47 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1TK881-0005yZ-Oq
+       for xen-devel@lists.xen.org; Fri, 05 Oct 2012 13:39:45 +0000
+Received: from [85.158.137.99:45648] by server-3.bemta-3.messagelabs.com id
+       05/4F-25962-023EE605; Fri, 05 Oct 2012 13:39:44 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-2.tower-217.messagelabs.com!1349444384!20306475!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTMxNTE=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 4483 invoked from network); 5 Oct 2012 13:39:44 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-2.tower-217.messagelabs.com with RC4-SHA encrypted SMTP;
+       5 Oct 2012 13:39:44 -0000
+X-IronPort-AV: E=Sophos;i="4.80,541,1344211200"; d="scan'208";a="14964738"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       05 Oct 2012 13:39:31 +0000
+Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.279.1; Fri, 5 Oct 2012
+       14:39:31 +0100
+Message-ID: <1349444369.20946.101.camel@zakaz.uk.xensource.com>
+From: Ian Campbell <Ian.Campbell@citrix.com>
+To: Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+Date: Fri, 5 Oct 2012 14:39:29 +0100
+In-Reply-To: <alpine.DEB.2.02.1210051437110.29232@kaball.uk.xensource.com>
+References: <1349363496.866.49.camel@zakaz.uk.xensource.com>
+       <1349363515-26190-10-git-send-email-ian.campbell@citrix.com>
+       <alpine.DEB.2.02.1210051437110.29232@kaball.uk.xensource.com>
+Organization: Citrix Systems, Inc.
+X-Mailer: Evolution 3.4.3-1 
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
+       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 10/14] privcmd: refer to autotranslate not
+ PVH in arch interfaces / comments.
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Fri, 2012-10-05 at 14:37 +0100, Stefano Stabellini wrote:
+> On Thu, 4 Oct 2012, Ian Campbell wrote:
+> > PVH is X86 specific while this functionality is also used on ARM.
+> 
+> I really think that this should be merged with the orignal PVH patch
+
+Agreed, I should have said as much.
+
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1349444550.20946.102.camel@zakaz.uk.xensource.com> b/config/examples/test/corpus/<1349444550.20946.102.camel@zakaz.uk.xensource.com>
new file mode 100644 (file)
index 0000000..2981ed5
--- /dev/null
@@ -0,0 +1,101 @@
+From xen-devel-bounces@lists.xen.org Fri Oct 05 14:46:09 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 05 Oct 2012 14:46:09 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TK8E7-00080u-Me
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 05 Oct 2012 14:46:09 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TK8Ap-0006Fv-VW; Fri, 05 Oct 2012 13:42:39 +0000
+Received: from mail27.messagelabs.com ([193.109.254.147])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1TK8Ao-0006FP-A9
+       for xen-devel@lists.xen.org; Fri, 05 Oct 2012 13:42:38 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-7.tower-27.messagelabs.com!1349444552!5908529!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTMxNTE=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 32588 invoked from network); 5 Oct 2012 13:42:32 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-7.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
+       5 Oct 2012 13:42:32 -0000
+X-IronPort-AV: E=Sophos;i="4.80,541,1344211200"; d="scan'208";a="14964826"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       05 Oct 2012 13:42:32 +0000
+Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.279.1; Fri, 5 Oct 2012
+       14:42:32 +0100
+Message-ID: <1349444550.20946.102.camel@zakaz.uk.xensource.com>
+From: Ian Campbell <Ian.Campbell@citrix.com>
+To: Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+Date: Fri, 5 Oct 2012 14:42:30 +0100
+In-Reply-To: <alpine.DEB.2.02.1210051432010.29232@kaball.uk.xensource.com>
+References: <1349363496.866.49.camel@zakaz.uk.xensource.com>
+       <1349363515-26190-11-git-send-email-ian.campbell@citrix.com>
+       <alpine.DEB.2.02.1210051432010.29232@kaball.uk.xensource.com>
+Organization: Citrix Systems, Inc.
+X-Mailer: Evolution 3.4.3-1 
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
+       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 11/14] arm: implement remap interfaces
+ needed for privcmd mappings.
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Fri, 2012-10-05 at 14:36 +0100, Stefano Stabellini wrote:
+[... snip dozens of pointless lines -- please trim your quotes...]
+
+> > -  return -ENOSYS;
+> > +  int err;
+> > +  struct remap_data data;
+> > +
+> > +  /* TBD: Batching, current sole caller only does page at a time */
+> > +  if (nr > 1)
+> > +          return -EINVAL;
+> 
+> It looks like that this implementation of xen_remap_domain_mfn_range is
+> capable of handling nr > 1, so why this return -EINVAL?
+
+Hrm, yes. I think I just blindly copied that from the pvh
+implementation.
+
+[...]
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1349445097.20946.108.camel@zakaz.uk.xensource.com> b/config/examples/test/corpus/<1349445097.20946.108.camel@zakaz.uk.xensource.com>
new file mode 100644 (file)
index 0000000..b237d1e
--- /dev/null
@@ -0,0 +1,174 @@
+From xen-devel-bounces@lists.xen.org Fri Oct 05 14:55:41 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 05 Oct 2012 14:55:41 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TK8NL-00083X-WD
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 05 Oct 2012 14:55:41 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TK8JZ-0006zw-Rj; Fri, 05 Oct 2012 13:51:41 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1TK8JX-0006zm-Vj
+       for xen-devel@lists.xen.org; Fri, 05 Oct 2012 13:51:40 +0000
+Received: from [85.158.143.99:17861] by server-2.bemta-4.messagelabs.com id
+       8D/1F-06610-BE5EE605; Fri, 05 Oct 2012 13:51:39 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-5.tower-216.messagelabs.com!1349445098!32670671!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTMxNTE=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 29717 invoked from network); 5 Oct 2012 13:51:38 -0000
+Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-5.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
+       5 Oct 2012 13:51:38 -0000
+X-IronPort-AV: E=Sophos;i="4.80,541,1344211200"; d="scan'208";a="14965096"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       05 Oct 2012 13:51:38 +0000
+Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.279.1; Fri, 5 Oct 2012
+       14:51:38 +0100
+Message-ID: <1349445097.20946.108.camel@zakaz.uk.xensource.com>
+From: Ian Campbell <Ian.Campbell@citrix.com>
+To: Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+Date: Fri, 5 Oct 2012 14:51:37 +0100
+In-Reply-To: <alpine.DEB.2.02.1210051430200.29232@kaball.uk.xensource.com>
+References: <1349363496.866.49.camel@zakaz.uk.xensource.com>
+       <1349363515-26190-14-git-send-email-ian.campbell@citrix.com>
+       <alpine.DEB.2.02.1210051430200.29232@kaball.uk.xensource.com>
+Organization: Citrix Systems, Inc.
+X-Mailer: Evolution 3.4.3-1 
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
+       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 14/14] arm: implement foreign mapping using
+ XENMEM_add_to_physmap_range
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Fri, 2012-10-05 at 14:36 +0100, Stefano Stabellini wrote:
+> On Thu, 4 Oct 2012, Ian Campbell wrote:
+> > This interface is prefered for foreign mappings.
+> 
+> So now we have XENMEM_add_to_physmap_range but we only have
+> XENMEM_remove_from_physmap. Would it be worth to introduce a
+> XENMEM_remove_from_physmap_range too?
+
+Worth considering but the need isn't so urgent since you wouldn't need
+to coexist with XENMAPSPACE_gmfn_range's size parameter and the
+foreign_domid one isn't needed either.
+
+I wonder if XENMEM_add_to_physmap_range ought to reject
+XENMAPSPACE_gmfn_range, just for the sake of sanity.
+
+> 
+> > Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+> > ---
+> >  arch/arm/xen/enlighten.c       |   14 +++++++++-----
+> >  include/xen/interface/memory.h |   18 ++++++++++++++++++
+> >  2 files changed, 27 insertions(+), 5 deletions(-)
+> > 
+> > diff --git a/arch/arm/xen/enlighten.c b/arch/arm/xen/enlighten.c
+> > index 9956af5..a9946aa 100644
+> > --- a/arch/arm/xen/enlighten.c
+> > +++ b/arch/arm/xen/enlighten.c
+> > @@ -51,15 +51,19 @@ static int map_foreign_page(unsigned long lpfn, unsigned long fgmfn,
+> >                        unsigned int domid)
+> >  {
+> >    int rc;
+> > -  struct xen_add_to_physmap xatp = {
+> > +  struct xen_add_to_physmap_range xatp = {
+> >            .domid = DOMID_SELF,
+> > -          .u.foreign_domid = domid,
+> > +          .foreign_domid = domid,
+> > +          .size = 1,
+> >            .space = XENMAPSPACE_gmfn_foreign,
+> > -          .idx = fgmfn,
+> > -          .gpfn = lpfn,
+> >    };
+> > +  unsigned long idx = fgmfn;
+> > +  xen_pfn_t gpfn = lpfn;
+> >  
+> > -  rc = HYPERVISOR_memory_op(XENMEM_add_to_physmap, &xatp);
+> > +  set_xen_guest_handle(xatp.idxs, &idx);
+> > +  set_xen_guest_handle(xatp.gpfns, &gpfn);
+> > +
+> > +  rc = HYPERVISOR_memory_op(XENMEM_add_to_physmap_range, &xatp);
+> >    if (rc) {
+> >            pr_warn("Failed to map pfn to mfn rc:%d pfn:%lx mfn:%lx\n",
+> >                    rc, lpfn, fgmfn);
+> 
+> Wouldn't it make sense to call XENMEM_add_to_physmap_range only once for
+> the whole range, rather than once per page?
+> 
+> 
+> > diff --git a/include/xen/interface/memory.h b/include/xen/interface/memory.h
+> > index d38bdc1..e5675bc 100644
+> > --- a/include/xen/interface/memory.h
+> > +++ b/include/xen/interface/memory.h
+> > @@ -188,6 +188,24 @@ struct xen_add_to_physmap {
+> >  };
+> >  DEFINE_GUEST_HANDLE_STRUCT(xen_add_to_physmap);
+> >  
+> > +#define XENMEM_add_to_physmap_range 23
+> > +struct xen_add_to_physmap_range {
+> > +    /* Which domain to change the mapping for. */
+> > +    domid_t domid;
+> > +    uint16_t space; /* => enum phys_map_space */
+> > +
+> > +    /* Number of pages to go through */
+> > +    uint16_t size;
+> > +    domid_t foreign_domid; /* IFF gmfn_foreign */
+> > +
+> > +    /* Indexes into space being mapped. */
+> > +    GUEST_HANDLE(ulong) idxs;
+> > +
+> > +    /* GPFN in domid where the source mapping page should appear. */
+> > +    GUEST_HANDLE(xen_pfn_t) gpfns;
+> > +};
+> > +DEFINE_GUEST_HANDLE_STRUCT(xen_add_to_physmap_range);
+> > +
+> >  /*
+> >   * Translates a list of domain-specific GPFNs into MFNs. Returns a -ve error
+> >   * code on failure. This call only works for auto-translated guests.
+> > -- 
+> > 1.7.2.5
+> > 
+
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1349447625.20946.130.camel@zakaz.uk.xensource.com> b/config/examples/test/corpus/<1349447625.20946.130.camel@zakaz.uk.xensource.com>
new file mode 100644 (file)
index 0000000..960e8a2
--- /dev/null
@@ -0,0 +1,175 @@
+From xen-devel-bounces@lists.xen.org Fri Oct 05 15:36:55 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 05 Oct 2012 15:36:55 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TK91F-0008Ju-Up
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 05 Oct 2012 15:36:55 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TK8yR-0003ew-7n; Fri, 05 Oct 2012 14:33:55 +0000
+Received: from mail27.messagelabs.com ([193.109.254.147])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1TK8yP-0003cX-Df
+       for xen-devel@lists.xen.org; Fri, 05 Oct 2012 14:33:53 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-15.tower-27.messagelabs.com!1349447626!6616545!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTMxNTE=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 18197 invoked from network); 5 Oct 2012 14:33:47 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-15.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
+       5 Oct 2012 14:33:47 -0000
+X-IronPort-AV: E=Sophos;i="4.80,541,1344211200"; d="scan'208";a="14966489"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       05 Oct 2012 14:33:46 +0000
+Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.279.1; Fri, 5 Oct 2012
+       15:33:46 +0100
+Message-ID: <1349447625.20946.130.camel@zakaz.uk.xensource.com>
+From: Ian Campbell <Ian.Campbell@citrix.com>
+To: Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+Date: Fri, 5 Oct 2012 15:33:45 +0100
+In-Reply-To: <alpine.DEB.2.02.1210051438340.29232@kaball.uk.xensource.com>
+References: <1349363496.866.49.camel@zakaz.uk.xensource.com>
+       <1349363515-26190-5-git-send-email-ian.campbell@citrix.com>
+       <alpine.DEB.2.02.1210051243480.29232@kaball.uk.xensource.com>
+       <1349440338.20946.83.camel@zakaz.uk.xensource.com>
+       <alpine.DEB.2.02.1210051438340.29232@kaball.uk.xensource.com>
+Organization: Citrix Systems, Inc.
+X-Mailer: Evolution 3.4.3-1 
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
+       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 05/14] xen: balloon: use correct type for
+       frame_list
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Fri, 2012-10-05 at 15:02 +0100, Stefano Stabellini wrote:
+> On Fri, 5 Oct 2012, Ian Campbell wrote:
+> > On Fri, 2012-10-05 at 12:48 +0100, Stefano Stabellini wrote:
+> > > On Thu, 4 Oct 2012, Ian Campbell wrote:
+> > > > This is now a xen_pfn_t.
+> > > > 
+> > > > Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+> > > > ---
+> > > >  drivers/xen/balloon.c |    2 +-
+> > > >  1 files changed, 1 insertions(+), 1 deletions(-)
+> > > > 
+> > > > diff --git a/drivers/xen/balloon.c b/drivers/xen/balloon.c
+> > > > index 85ef7e7..4625560 100644
+> > > > --- a/drivers/xen/balloon.c
+> > > > +++ b/drivers/xen/balloon.c
+> > > > @@ -87,7 +87,7 @@ struct balloon_stats balloon_stats;
+> > > >  EXPORT_SYMBOL_GPL(balloon_stats);
+> > > >  
+> > > >  /* We increase/decrease in batches which fit in a page */
+> > > > -static unsigned long frame_list[PAGE_SIZE / sizeof(unsigned long)];
+> > > > +static xen_pfn_t frame_list[PAGE_SIZE / sizeof(unsigned long)];
+> > > >  
+> > > >  #ifdef CONFIG_HIGHMEM
+> > > >  #define inc_totalhigh_pages() (totalhigh_pages++)
+> > >  
+> > > While I think is a good change, frame_list[i] is used as an argument to
+> > > set_phys_to_machine, that takes an unsigned long. Also unsigned long are
+> > > assigned to members of the array via page_to_pfn.
+> > > I think that we should take care of these cases, either introducing
+> > > explicit casts or changing the argument types.
+> > 
+> > frame_list is used at the Xen interface, and so the pfn type has to be
+> > sized for the largest pfn the hypervisor will use (aka xen_pfn_t). Those
+> > unsigned longs are really "linux_pfn_t", that is they are the size of
+> > the largest pfn the guest is itself prepared to deal with.
+> > 
+> > So long as sizeof(unsigned long) <= sizeof(xen_pfn_t) (which it is) then
+> > we are ok.
+> 
+> I think that we are playing with fire here.
+> 
+> Let's imaging a future where physical addresses are actually 64 bit.
+> Let's imaging that Xen is supporting them perfectly fine and returns to
+> this balloon driver a pfn > ULONG_MAX (already possible on ARM).
+
+It might give us an *mfn* larger than ULONG_MAX but the guest would
+never see that, because ARM guests (and x86 PVHVM, PVH ones etc) never
+see real mfns, they are hypervisor internal with HAP and the interfaces
+are all in terms of pfns.
+
+The issue you describe could only happen for a 32 bit HAP guest if the
+guests was given > 16GB (2^(32+PAGE_SHIFT) bytes) of RAM and it was
+explicitly trying to balloon memory over that limit, but in order for
+that to even be possible it would already need to have made its concept
+of a pfn larger than 32 bits.
+
+In theory there might be a problem for a PV guest, but in the only case
+which matters:
+        arch/x86/include/asm/xen/interface.h:typedef unsigned long xen_pfn_t;
+and furthermore 32 bit PV guests are limited to 160G of MFN space (which
+is less than 2^32) for other reasons already.
+
+> That is a perfectly valid value for Xen to give us and we should be able
+> to handle it. If we are not we should return an error.
+> With this change we would trimmer the pfn returned by Xen to 32 bit so we
+> would actually have an incorrect behaviour instead.
+> 
+> If we assume sizeof(unsigned long) <= sizeof(xen_pfn_t), we only need a
+> macro like this:
+> 
+> #define LINUX_PFN_MAX ULONG_MAX
+> #define linux_pfn_t unsigned long
+> #define xen_pfn_to_linux_pfn(pfn)    ({BUG_ON(pfn > LINUX_PFN_MAX); (linux_pfn_t)pfn;})
+> 
+> that is called in the right places.
+> 
+> 
+> > If and when Linux wants to use pfn's which are not unsigned longs then
+> > the uses of unsigned long will need to be audited (globally, not just
+> > here) to become whatever type Linux then defines to contain a pfn. In
+> > the absence of that type being defined in the core Linux code I think it
+> > is correct for us to keep using unsigned long in those contexts.
+> 
+> I think is OK using unsigned long for linux_pfn, the problem is the
+> conversion between what Xen gives us and linux_pfns.
+
+Xen never gives us PFNs, they are always the guest's choice.
+
+Ian.
+
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1349447704.20946.131.camel@zakaz.uk.xensource.com> b/config/examples/test/corpus/<1349447704.20946.131.camel@zakaz.uk.xensource.com>
new file mode 100644 (file)
index 0000000..5155a57
--- /dev/null
@@ -0,0 +1,112 @@
+From xen-devel-bounces@lists.xen.org Fri Oct 05 15:38:09 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 05 Oct 2012 15:38:09 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TK92S-0008Ka-1R
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 05 Oct 2012 15:38:09 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TK8ze-0003yW-Nd; Fri, 05 Oct 2012 14:35:10 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1TK8zd-0003y9-0Y
+       for xen-devel@lists.xen.org; Fri, 05 Oct 2012 14:35:09 +0000
+Received: from [85.158.137.99:43707] by server-2.bemta-3.messagelabs.com id
+       F1/D7-16514-C10FE605; Fri, 05 Oct 2012 14:35:08 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-5.tower-217.messagelabs.com!1349447706!15688383!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTMxNTE=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 27999 invoked from network); 5 Oct 2012 14:35:06 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-5.tower-217.messagelabs.com with RC4-SHA encrypted SMTP;
+       5 Oct 2012 14:35:06 -0000
+X-IronPort-AV: E=Sophos;i="4.80,541,1344211200"; d="scan'208";a="14966521"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       05 Oct 2012 14:35:05 +0000
+Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.279.1; Fri, 5 Oct 2012
+       15:35:05 +0100
+Message-ID: <1349447704.20946.131.camel@zakaz.uk.xensource.com>
+From: Ian Campbell <Ian.Campbell@citrix.com>
+To: Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+Date: Fri, 5 Oct 2012 15:35:04 +0100
+In-Reply-To: <alpine.DEB.2.02.1210051503160.29232@kaball.uk.xensource.com>
+References: <1349363496.866.49.camel@zakaz.uk.xensource.com>
+       <1349363515-26190-8-git-send-email-ian.campbell@citrix.com>
+       <alpine.DEB.2.02.1210051419030.29232@kaball.uk.xensource.com>
+       <1349443982.20946.100.camel@zakaz.uk.xensource.com>
+       <alpine.DEB.2.02.1210051503160.29232@kaball.uk.xensource.com>
+Organization: Citrix Systems, Inc.
+X-Mailer: Evolution 3.4.3-1 
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
+       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 08/14] xen: balloon: allow PVMMU interfaces
+ to be compiled out
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Fri, 2012-10-05 at 15:04 +0100, Stefano Stabellini wrote:
+> On Fri, 5 Oct 2012, Ian Campbell wrote:
+> > On Fri, 2012-10-05 at 14:19 +0100, Stefano Stabellini wrote:
+> > > On Thu, 4 Oct 2012, Ian Campbell wrote:
+> > > > The ARM platform has no concept of PVMMU and therefor no
+> > > > HYPERVISOR_update_va_mapping et al. Allow this code to be compiled out
+> > > > when not required.
+> > > > 
+> > > > Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+> > > 
+> > > I am unsure whether it is worth a new symbol and two ifdef's
+> > 
+> > ARM doesn't compile without it, since HYPERVISOR_update_va_mapping
+> > doesn't exist. Do you have a preferable alternative?
+> > 
+> > I'm not sure how much more of this sort of thing there will be as we
+> > enable more features on the ARM port.
+> 
+> #define HYPERVISOR_update_va_mapping(va, new_val, flags) (0)
+
+This would mean we need to start defining things like mfn_pte() and
+__pte_ma() too though, I think. How far do we want to take that?
+
+Ian.
+
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1349453467.20946.142.camel@zakaz.uk.xensource.com> b/config/examples/test/corpus/<1349453467.20946.142.camel@zakaz.uk.xensource.com>
new file mode 100644 (file)
index 0000000..1006f6d
--- /dev/null
@@ -0,0 +1,189 @@
+From xen-devel-bounces@lists.xen.org Fri Oct 05 17:15:14 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 05 Oct 2012 17:15:14 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TKAYO-0000Nx-6c
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 05 Oct 2012 17:15:14 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TKAUa-0007JK-Io; Fri, 05 Oct 2012 16:11:12 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1TKAUY-0007J9-O6
+       for xen-devel@lists.xen.org; Fri, 05 Oct 2012 16:11:10 +0000
+Received: from [85.158.139.211:42241] by server-8.bemta-5.messagelabs.com id
+       BD/56-20246-E960F605; Fri, 05 Oct 2012 16:11:10 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-5.tower-206.messagelabs.com!1349453469!21192497!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTMxNTE=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 20447 invoked from network); 5 Oct 2012 16:11:09 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-5.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
+       5 Oct 2012 16:11:09 -0000
+X-IronPort-AV: E=Sophos;i="4.80,541,1344211200"; d="scan'208";a="14968875"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       05 Oct 2012 16:11:09 +0000
+Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.279.1; Fri, 5 Oct 2012
+       17:11:09 +0100
+Message-ID: <1349453467.20946.142.camel@zakaz.uk.xensource.com>
+From: Ian Campbell <Ian.Campbell@citrix.com>
+To: Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+Date: Fri, 5 Oct 2012 17:11:07 +0100
+In-Reply-To: <1349447625.20946.130.camel@zakaz.uk.xensource.com>
+References: <1349363496.866.49.camel@zakaz.uk.xensource.com>
+       <1349363515-26190-5-git-send-email-ian.campbell@citrix.com>
+       <alpine.DEB.2.02.1210051243480.29232@kaball.uk.xensource.com>
+       <1349440338.20946.83.camel@zakaz.uk.xensource.com>
+       <alpine.DEB.2.02.1210051438340.29232@kaball.uk.xensource.com>
+       <1349447625.20946.130.camel@zakaz.uk.xensource.com>
+Organization: Citrix Systems, Inc.
+X-Mailer: Evolution 3.4.3-1 
+MIME-Version: 1.0
+Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 05/14] xen: balloon: use correct type for
+ frame_list
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Fri, 2012-10-05 at 15:33 +0100, Ian Campbell wrote:
+> The issue you describe could only happen for a 32 bit HAP guest if the
+> guests was given > 16GB (2^(32+PAGE_SHIFT) bytes) of RAM and it was
+> explicitly trying to balloon memory over that limit, but in order for
+> that to even be possible it would already need to have made its concept
+> of a pfn larger than 32 bits.
+
+The one place this might matter is in the privcmd
+IOCTL_PRIVCMD_MMAPBATCH interface for the *foreign* pfn (since a small
+dom0 needs to be able to build a big domU). Luckily that interface
+already uses xen_pfn_t, we just need to be a bit careful in the
+xen_remap_domain_mfn_range case, which Konrad tried to tell me already
+and he was right...
+
+On ARM that meant the following (built but not executed) patch, I
+suspect the PVH variant needs similar treatment.
+
+8<--------------------------
+
+diff --git a/arch/arm/include/asm/xen/interface.h b/arch/arm/include/asm/xen/interface.h
+index ae05e56..ad87917 100644
+--- a/arch/arm/include/asm/xen/interface.h
++++ b/arch/arm/include/asm/xen/interface.h
+@@ -43,6 +43,7 @@ DEFINE_GUEST_HANDLE(void);
+ DEFINE_GUEST_HANDLE(uint64_t);
+ DEFINE_GUEST_HANDLE(uint32_t);
+ DEFINE_GUEST_HANDLE(xen_pfn_t);
++DEFINE_GUEST_HANDLE(xen_ulong_t);
+ /* Maximum number of virtual CPUs in multi-processor guests. */
+ #define MAX_VIRT_CPUS 1
+diff --git a/arch/arm/xen/enlighten.c b/arch/arm/xen/enlighten.c
+index a9946aa..1d64c02 100644
+--- a/arch/arm/xen/enlighten.c
++++ b/arch/arm/xen/enlighten.c
+@@ -57,7 +57,7 @@ static int map_foreign_page(unsigned long lpfn, unsigned long fgmfn,
+               .size = 1,
+               .space = XENMAPSPACE_gmfn_foreign,
+       };
+-      unsigned long idx = fgmfn;
++      xen_ulong_t idx = fgmfn;
+       xen_pfn_t gpfn = lpfn;
+       set_xen_guest_handle(xatp.idxs, &idx);
+@@ -73,7 +73,7 @@ static int map_foreign_page(unsigned long lpfn, unsigned long fgmfn,
+ }
+ struct remap_data {
+-      unsigned long fgmfn; /* foreign domain's gmfn */
++      xen_pfn_t fgmfn; /* foreign domain's gmfn */
+       pgprot_t prot;
+       domid_t  domid;
+       struct vm_area_struct *vma;
+@@ -98,7 +98,7 @@ static int remap_pte_fn(pte_t *ptep, pgtable_t token, unsigned long addr,
+ int xen_remap_domain_mfn_range(struct vm_area_struct *vma,
+                              unsigned long addr,
+-                             unsigned long mfn, int nr,
++                             xen_pfn_t mfn, int nr,
+                              pgprot_t prot, unsigned domid,
+                              struct xen_remap_mfn_info *info)
+ {
+diff --git a/arch/x86/include/asm/xen/interface.h b/arch/x86/include/asm/xen/interface.h
+index 250c254..d67f3c6 100644
+--- a/arch/x86/include/asm/xen/interface.h
++++ b/arch/x86/include/asm/xen/interface.h
+@@ -63,6 +63,7 @@ DEFINE_GUEST_HANDLE(void);
+ DEFINE_GUEST_HANDLE(uint64_t);
+ DEFINE_GUEST_HANDLE(uint32_t);
+ DEFINE_GUEST_HANDLE(xen_pfn_t);
++DEFINE_GUEST_HANDLE(xen_ulong_t);
+ #endif
+ #ifndef HYPERVISOR_VIRT_START
+diff --git a/include/xen/interface/memory.h b/include/xen/interface/memory.h
+index e5675bc..24e5731 100644
+--- a/include/xen/interface/memory.h
++++ b/include/xen/interface/memory.h
+@@ -199,7 +199,7 @@ struct xen_add_to_physmap_range {
+     domid_t foreign_domid; /* IFF gmfn_foreign */
+     /* Indexes into space being mapped. */
+-    GUEST_HANDLE(ulong) idxs;
++    GUEST_HANDLE(xen_ulong_t) idxs;
+     /* GPFN in domid where the source mapping page should appear. */
+     GUEST_HANDLE(xen_pfn_t) gpfns;
+diff --git a/include/xen/xen-ops.h b/include/xen/xen-ops.h
+index 2f3cb06..59309f3 100644
+--- a/include/xen/xen-ops.h
++++ b/include/xen/xen-ops.h
+@@ -27,7 +27,7 @@ struct vm_area_struct;
+ struct xen_remap_mfn_info;
+ int xen_remap_domain_mfn_range(struct vm_area_struct *vma,
+                              unsigned long addr,
+-                             unsigned long mfn, int nr,
++                             xen_pfn_t mfn, int nr,
+                              pgprot_t prot, unsigned domid,
+                              struct xen_remap_mfn_info *pvhp);
+ int xen_unmap_domain_mfn_range(struct vm_area_struct *vma,
+
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1349453876.20946.143.camel@zakaz.uk.xensource.com> b/config/examples/test/corpus/<1349453876.20946.143.camel@zakaz.uk.xensource.com>
new file mode 100644 (file)
index 0000000..3680000
--- /dev/null
@@ -0,0 +1,202 @@
+From xen-devel-bounces@lists.xen.org Fri Oct 05 17:22:42 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 05 Oct 2012 17:22:42 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TKAff-0000QX-DY
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 05 Oct 2012 17:22:42 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TKAbB-0007Zi-T9; Fri, 05 Oct 2012 16:18:01 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1TKAb9-0007Zd-Ab
+       for xen-devel@lists.xen.org; Fri, 05 Oct 2012 16:17:59 +0000
+Received: from [85.158.139.83:18002] by server-14.bemta-5.messagelabs.com id
+       91/4E-31065-6380F605; Fri, 05 Oct 2012 16:17:58 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-3.tower-182.messagelabs.com!1349453878!33595569!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTMxNTE=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 9243 invoked from network); 5 Oct 2012 16:17:58 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-3.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
+       5 Oct 2012 16:17:58 -0000
+X-IronPort-AV: E=Sophos;i="4.80,541,1344211200"; d="scan'208";a="14969064"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       05 Oct 2012 16:17:58 +0000
+Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.279.1; Fri, 5 Oct 2012
+       17:17:58 +0100
+Message-ID: <1349453876.20946.143.camel@zakaz.uk.xensource.com>
+From: Ian Campbell <Ian.Campbell@citrix.com>
+To: Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+Date: Fri, 5 Oct 2012 17:17:56 +0100
+In-Reply-To: <1349453467.20946.142.camel@zakaz.uk.xensource.com>
+References: <1349363496.866.49.camel@zakaz.uk.xensource.com>
+       <1349363515-26190-5-git-send-email-ian.campbell@citrix.com>
+       <alpine.DEB.2.02.1210051243480.29232@kaball.uk.xensource.com>
+       <1349440338.20946.83.camel@zakaz.uk.xensource.com>
+       <alpine.DEB.2.02.1210051438340.29232@kaball.uk.xensource.com>
+       <1349447625.20946.130.camel@zakaz.uk.xensource.com>
+       <1349453467.20946.142.camel@zakaz.uk.xensource.com>
+Organization: Citrix Systems, Inc.
+X-Mailer: Evolution 3.4.3-1 
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
+       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 05/14] xen: balloon: use correct type for
+ frame_list
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Fri, 2012-10-05 at 17:11 +0100, Ian Campbell wrote:
+> On Fri, 2012-10-05 at 15:33 +0100, Ian Campbell wrote:
+> > The issue you describe could only happen for a 32 bit HAP guest if the
+> > guests was given > 16GB (2^(32+PAGE_SHIFT) bytes) of RAM and it was
+> > explicitly trying to balloon memory over that limit, but in order for
+> > that to even be possible it would already need to have made its concept
+> > of a pfn larger than 32 bits.
+> 
+> The one place this might matter is in the privcmd
+> IOCTL_PRIVCMD_MMAPBATCH interface for the *foreign* pfn (since a small
+> dom0 needs to be able to build a big domU). Luckily that interface
+> already uses xen_pfn_t, we just need to be a bit careful in the
+> xen_remap_domain_mfn_range case, which Konrad tried to tell me already
+> and he was right...
+> 
+> On ARM that meant the following (built but not executed) patch, I
+> suspect the PVH variant needs similar treatment.
+
+NB, this is mostly just a bug fix to "arm: implement foreign mapping
+using XENMEM_add_to_physmap_range" and/or "arm: implement remap
+interfaces needed for privcmd mappings."
+
+> 8<--------------------------
+> 
+> diff --git a/arch/arm/include/asm/xen/interface.h b/arch/arm/include/asm/xen/interface.h
+> index ae05e56..ad87917 100644
+> --- a/arch/arm/include/asm/xen/interface.h
+> +++ b/arch/arm/include/asm/xen/interface.h
+> @@ -43,6 +43,7 @@ DEFINE_GUEST_HANDLE(void);
+>  DEFINE_GUEST_HANDLE(uint64_t);
+>  DEFINE_GUEST_HANDLE(uint32_t);
+>  DEFINE_GUEST_HANDLE(xen_pfn_t);
+> +DEFINE_GUEST_HANDLE(xen_ulong_t);
+>  
+>  /* Maximum number of virtual CPUs in multi-processor guests. */
+>  #define MAX_VIRT_CPUS 1
+> diff --git a/arch/arm/xen/enlighten.c b/arch/arm/xen/enlighten.c
+> index a9946aa..1d64c02 100644
+> --- a/arch/arm/xen/enlighten.c
+> +++ b/arch/arm/xen/enlighten.c
+> @@ -57,7 +57,7 @@ static int map_foreign_page(unsigned long lpfn, unsigned long fgmfn,
+>              .size = 1,
+>              .space = XENMAPSPACE_gmfn_foreign,
+>      };
+> -    unsigned long idx = fgmfn;
+> +    xen_ulong_t idx = fgmfn;
+>      xen_pfn_t gpfn = lpfn;
+>  
+>      set_xen_guest_handle(xatp.idxs, &idx);
+> @@ -73,7 +73,7 @@ static int map_foreign_page(unsigned long lpfn, unsigned long fgmfn,
+>  }
+>  
+>  struct remap_data {
+> -    unsigned long fgmfn; /* foreign domain's gmfn */
+> +    xen_pfn_t fgmfn; /* foreign domain's gmfn */
+>      pgprot_t prot;
+>      domid_t  domid;
+>      struct vm_area_struct *vma;
+> @@ -98,7 +98,7 @@ static int remap_pte_fn(pte_t *ptep, pgtable_t token, unsigned long addr,
+>  
+>  int xen_remap_domain_mfn_range(struct vm_area_struct *vma,
+>                             unsigned long addr,
+> -                           unsigned long mfn, int nr,
+> +                           xen_pfn_t mfn, int nr,
+>                             pgprot_t prot, unsigned domid,
+>                             struct xen_remap_mfn_info *info)
+>  {
+> diff --git a/arch/x86/include/asm/xen/interface.h b/arch/x86/include/asm/xen/interface.h
+> index 250c254..d67f3c6 100644
+> --- a/arch/x86/include/asm/xen/interface.h
+> +++ b/arch/x86/include/asm/xen/interface.h
+> @@ -63,6 +63,7 @@ DEFINE_GUEST_HANDLE(void);
+>  DEFINE_GUEST_HANDLE(uint64_t);
+>  DEFINE_GUEST_HANDLE(uint32_t);
+>  DEFINE_GUEST_HANDLE(xen_pfn_t);
+> +DEFINE_GUEST_HANDLE(xen_ulong_t);
+>  #endif
+>  
+>  #ifndef HYPERVISOR_VIRT_START
+> diff --git a/include/xen/interface/memory.h b/include/xen/interface/memory.h
+> index e5675bc..24e5731 100644
+> --- a/include/xen/interface/memory.h
+> +++ b/include/xen/interface/memory.h
+> @@ -199,7 +199,7 @@ struct xen_add_to_physmap_range {
+>      domid_t foreign_domid; /* IFF gmfn_foreign */
+>  
+>      /* Indexes into space being mapped. */
+> -    GUEST_HANDLE(ulong) idxs;
+> +    GUEST_HANDLE(xen_ulong_t) idxs;
+>  
+>      /* GPFN in domid where the source mapping page should appear. */
+>      GUEST_HANDLE(xen_pfn_t) gpfns;
+> diff --git a/include/xen/xen-ops.h b/include/xen/xen-ops.h
+> index 2f3cb06..59309f3 100644
+> --- a/include/xen/xen-ops.h
+> +++ b/include/xen/xen-ops.h
+> @@ -27,7 +27,7 @@ struct vm_area_struct;
+>  struct xen_remap_mfn_info;
+>  int xen_remap_domain_mfn_range(struct vm_area_struct *vma,
+>                             unsigned long addr,
+> -                           unsigned long mfn, int nr,
+> +                           xen_pfn_t mfn, int nr,
+>                             pgprot_t prot, unsigned domid,
+>                             struct xen_remap_mfn_info *pvhp);
+>  int xen_unmap_domain_mfn_range(struct vm_area_struct *vma,
+> 
+> 
+> 
+> _______________________________________________
+> Xen-devel mailing list
+> Xen-devel@lists.xen.org
+> http://lists.xen.org/xen-devel
+
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1350046634-2462-1-git-send-email-david.vrabel@citrix.com> b/config/examples/test/corpus/<1350046634-2462-1-git-send-email-david.vrabel@citrix.com>
new file mode 100644 (file)
index 0000000..2af7e12
--- /dev/null
@@ -0,0 +1,97 @@
+From xen-devel-bounces@lists.xen.org Fri Oct 12 14:01:26 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 12 Oct 2012 14:01:26 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TMerj-0001uK-Uf
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 12 Oct 2012 14:01:26 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TMenr-0007vk-RH; Fri, 12 Oct 2012 12:57:23 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <david.vrabel@citrix.com>) id 1TMenr-0007ve-1e
+       for xen-devel@lists.xen.org; Fri, 12 Oct 2012 12:57:23 +0000
+Received: from [85.158.139.83:35054] by server-6.bemta-5.messagelabs.com id
+       EA/EA-08519-2B318705; Fri, 12 Oct 2012 12:57:22 +0000
+X-Env-Sender: david.vrabel@citrix.com
+X-Msg-Ref: server-5.tower-182.messagelabs.com!1350046640!28977894!1
+X-Originating-IP: [66.165.176.89]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNzYwMjI=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 30953 invoked from network); 12 Oct 2012 12:57:21 -0000
+Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
+       by server-5.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
+       12 Oct 2012 12:57:21 -0000
+X-IronPort-AV: E=Sophos;i="4.80,576,1344211200"; d="scan'208";a="41021554"
+Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
+       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       12 Oct 2012 12:57:19 +0000
+Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
+       (10.13.107.66) with Microsoft SMTP Server id 8.3.279.1;
+       Fri, 12 Oct 2012 08:57:19 -0400
+Received: from qabil.uk.xensource.com ([10.80.2.76])   by
+       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
+       <david.vrabel@citrix.com>)      id 1TMenn-0005yL-6n;
+       Fri, 12 Oct 2012 13:57:19 +0100
+From: David Vrabel <david.vrabel@citrix.com>
+To: xen-devel@lists.xen.org
+Date: Fri, 12 Oct 2012 13:57:11 +0100
+Message-ID: <1350046634-2462-1-git-send-email-david.vrabel@citrix.com>
+X-Mailer: git-send-email 1.7.2.5
+MIME-Version: 1.0
+Cc: David Vrabel <david.vrabel@citrix.com>,
+       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: [Xen-devel] [PATCH 0/3] xen: fix various wallclock problems
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+This series (with some toolstack updates) corrects a number of cases
+where a guest can see an incorrect wallclock time.
+
+1. Systems with NTP won't periodically synchronize the hardware RTC so
+the wallclock may be incorrect after a reboot.
+
+2. The wallclock is always ~500 ms behind the correct time.
+
+3. If the system time was stepped and NTP isn't synchronized yet, the
+wallclock will still have the incorrect time.  The fix for this
+requires the toolstack to synchronize the wallclock -- patch #3
+provides the mechanism for this.
+
+David
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1350046634-2462-2-git-send-email-david.vrabel@citrix.com> b/config/examples/test/corpus/<1350046634-2462-2-git-send-email-david.vrabel@citrix.com>
new file mode 100644 (file)
index 0000000..c6c63f7
--- /dev/null
@@ -0,0 +1,123 @@
+From xen-devel-bounces@lists.xen.org Fri Oct 12 14:01:36 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 12 Oct 2012 14:01:36 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TMerr-0001uw-Ao
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 12 Oct 2012 14:01:36 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TMenv-0007wb-69; Fri, 12 Oct 2012 12:57:27 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <david.vrabel@citrix.com>) id 1TMens-0007vw-Vf
+       for xen-devel@lists.xen.org; Fri, 12 Oct 2012 12:57:25 +0000
+Received: from [85.158.139.211:63414] by server-1.bemta-5.messagelabs.com id
+       05/04-18294-4B318705; Fri, 12 Oct 2012 12:57:24 +0000
+X-Env-Sender: david.vrabel@citrix.com
+X-Msg-Ref: server-15.tower-206.messagelabs.com!1350046642!22135305!1
+X-Originating-IP: [66.165.176.89]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNzYwMjI=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 25273 invoked from network); 12 Oct 2012 12:57:23 -0000
+Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
+       by server-15.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
+       12 Oct 2012 12:57:23 -0000
+X-IronPort-AV: E=Sophos;i="4.80,576,1344211200"; d="scan'208";a="41021557"
+Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
+       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       12 Oct 2012 12:57:19 +0000
+Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
+       (10.13.107.66) with Microsoft SMTP Server id 8.3.279.1;
+       Fri, 12 Oct 2012 08:57:19 -0400
+Received: from qabil.uk.xensource.com ([10.80.2.76])   by
+       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
+       <david.vrabel@citrix.com>)      id 1TMenn-0005yL-8b;
+       Fri, 12 Oct 2012 13:57:19 +0100
+From: David Vrabel <david.vrabel@citrix.com>
+To: xen-devel@lists.xen.org
+Date: Fri, 12 Oct 2012 13:57:12 +0100
+Message-ID: <1350046634-2462-2-git-send-email-david.vrabel@citrix.com>
+X-Mailer: git-send-email 1.7.2.5
+In-Reply-To: <1350046634-2462-1-git-send-email-david.vrabel@citrix.com>
+References: <1350046634-2462-1-git-send-email-david.vrabel@citrix.com>
+MIME-Version: 1.0
+Cc: David Vrabel <david.vrabel@citrix.com>,
+       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: [Xen-devel] [PATCH 1/3] xen: sync the CMOS RTC as well as the Xen
+       wallclock
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+From: David Vrabel <david.vrabel@citrix.com>
+
+If NTP is used in dom0 and it is synchronized to its clock source,
+then the kernel will periodically synchronize the Xen wallclock with
+the system time.  Updates to the Xen wallclock do not persist across
+reboots, so also synchronize the CMOS RTC (as on bare metal).
+
+Signed-off-by: David Vrabel <david.vrabel@citrix.com>
+---
+ arch/x86/xen/time.c |    5 +++++
+ 1 files changed, 5 insertions(+), 0 deletions(-)
+
+diff --git a/arch/x86/xen/time.c b/arch/x86/xen/time.c
+index 0296a95..5e7f536 100644
+--- a/arch/x86/xen/time.c
++++ b/arch/x86/xen/time.c
+@@ -14,6 +14,7 @@
+ #include <linux/kernel_stat.h>
+ #include <linux/math64.h>
+ #include <linux/gfp.h>
++#include <linux/mc146818rtc.h>
+ #include <asm/pvclock.h>
+ #include <asm/xen/hypervisor.h>
+@@ -208,6 +209,10 @@ static int xen_set_wallclock(unsigned long now)
+       if (!xen_initial_domain())
+               return -1;
++      /* Set the hardware RTC. */
++      mach_set_rtc_mmss(now);
++
++      /* Set the Xen wallclock. */
+       op.cmd = XENPF_settime;
+       op.u.settime.secs = now;
+       op.u.settime.nsecs = 0;
+-- 
+1.7.2.5
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1350046634-2462-3-git-send-email-david.vrabel@citrix.com> b/config/examples/test/corpus/<1350046634-2462-3-git-send-email-david.vrabel@citrix.com>
new file mode 100644 (file)
index 0000000..ba96d5d
--- /dev/null
@@ -0,0 +1,122 @@
+From xen-devel-bounces@lists.xen.org Fri Oct 12 14:01:28 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 12 Oct 2012 14:01:28 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TMerm-0001uM-4c
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 12 Oct 2012 14:01:28 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TMent-0007w3-8K; Fri, 12 Oct 2012 12:57:25 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <david.vrabel@citrix.com>) id 1TMenr-0007vf-Hj
+       for xen-devel@lists.xen.org; Fri, 12 Oct 2012 12:57:23 +0000
+Received: from [85.158.139.83:5247] by server-16.bemta-5.messagelabs.com id
+       E3/25-10155-2B318705; Fri, 12 Oct 2012 12:57:22 +0000
+X-Env-Sender: david.vrabel@citrix.com
+X-Msg-Ref: server-5.tower-182.messagelabs.com!1350046640!28977894!2
+X-Originating-IP: [66.165.176.89]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNzYwMjI=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 31007 invoked from network); 12 Oct 2012 12:57:22 -0000
+Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
+       by server-5.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
+       12 Oct 2012 12:57:22 -0000
+X-IronPort-AV: E=Sophos;i="4.80,576,1344211200"; d="scan'208";a="41021555"
+Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
+       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       12 Oct 2012 12:57:19 +0000
+Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
+       (10.13.107.66) with Microsoft SMTP Server id 8.3.279.1;
+       Fri, 12 Oct 2012 08:57:19 -0400
+Received: from qabil.uk.xensource.com ([10.80.2.76])   by
+       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
+       <david.vrabel@citrix.com>)      id 1TMenn-0005yL-98;
+       Fri, 12 Oct 2012 13:57:19 +0100
+From: David Vrabel <david.vrabel@citrix.com>
+To: xen-devel@lists.xen.org
+Date: Fri, 12 Oct 2012 13:57:13 +0100
+Message-ID: <1350046634-2462-3-git-send-email-david.vrabel@citrix.com>
+X-Mailer: git-send-email 1.7.2.5
+In-Reply-To: <1350046634-2462-1-git-send-email-david.vrabel@citrix.com>
+References: <1350046634-2462-1-git-send-email-david.vrabel@citrix.com>
+MIME-Version: 1.0
+Cc: David Vrabel <david.vrabel@citrix.com>,
+       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: [Xen-devel] [PATCH 2/3] xen: add correct 500 ms offset when setting
+       Xen wallclock
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+From: David Vrabel <david.vrabel@citrix.com>
+
+update_persistent_wallclock() (and hence xet_set_wallclock()) is
+called 500 ms after the second.  xen_set_wallclock() was not
+considering this so the Xen wallclock would end up ~500 ms behind the
+correct time.
+
+Signed-off-by: David Vrabel <david.vrabel@citrix.com>
+---
+ arch/x86/xen/time.c |    9 +++++++--
+ 1 files changed, 7 insertions(+), 2 deletions(-)
+
+diff --git a/arch/x86/xen/time.c b/arch/x86/xen/time.c
+index 5e7f536..11770d0 100644
+--- a/arch/x86/xen/time.c
++++ b/arch/x86/xen/time.c
+@@ -212,10 +212,15 @@ static int xen_set_wallclock(unsigned long now)
+       /* Set the hardware RTC. */
+       mach_set_rtc_mmss(now);
+-      /* Set the Xen wallclock. */
++      /*
++       * Set the Xen wallclock.
++       *
++       * update_persistent_wallclock() is called ~500 ms after 'now'
++       * so add an extra 500 ms.
++       */
+       op.cmd = XENPF_settime;
+       op.u.settime.secs = now;
+-      op.u.settime.nsecs = 0;
++      op.u.settime.nsecs = NSEC_PER_SEC / 2;
+       op.u.settime.system_time = xen_clocksource_read();
+       rc = HYPERVISOR_dom0_op(&op);
+-- 
+1.7.2.5
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1350046634-2462-4-git-send-email-david.vrabel@citrix.com> b/config/examples/test/corpus/<1350046634-2462-4-git-send-email-david.vrabel@citrix.com>
new file mode 100644 (file)
index 0000000..808dd1e
--- /dev/null
@@ -0,0 +1,228 @@
+From xen-devel-bounces@lists.xen.org Fri Oct 12 14:01:37 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 12 Oct 2012 14:01:37 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TMerq-0001uv-Lu
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 12 Oct 2012 14:01:37 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TMenu-0007wS-QL; Fri, 12 Oct 2012 12:57:26 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <david.vrabel@citrix.com>) id 1TMens-0007vv-G5
+       for xen-devel@lists.xen.org; Fri, 12 Oct 2012 12:57:24 +0000
+Received: from [85.158.139.83:35174] by server-9.bemta-5.messagelabs.com id
+       7C/50-31466-3B318705; Fri, 12 Oct 2012 12:57:23 +0000
+X-Env-Sender: david.vrabel@citrix.com
+X-Msg-Ref: server-5.tower-182.messagelabs.com!1350046640!28977894!3
+X-Originating-IP: [66.165.176.89]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNzYwMjI=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 31067 invoked from network); 12 Oct 2012 12:57:23 -0000
+Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
+       by server-5.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
+       12 Oct 2012 12:57:23 -0000
+X-IronPort-AV: E=Sophos;i="4.80,576,1344211200"; d="scan'208";a="41021556"
+Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
+       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       12 Oct 2012 12:57:19 +0000
+Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
+       (10.13.107.66) with Microsoft SMTP Server id 8.3.279.1;
+       Fri, 12 Oct 2012 08:57:19 -0400
+Received: from qabil.uk.xensource.com ([10.80.2.76])   by
+       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
+       <david.vrabel@citrix.com>)      id 1TMenn-0005yL-9c;
+       Fri, 12 Oct 2012 13:57:19 +0100
+From: David Vrabel <david.vrabel@citrix.com>
+To: xen-devel@lists.xen.org
+Date: Fri, 12 Oct 2012 13:57:14 +0100
+Message-ID: <1350046634-2462-4-git-send-email-david.vrabel@citrix.com>
+X-Mailer: git-send-email 1.7.2.5
+In-Reply-To: <1350046634-2462-1-git-send-email-david.vrabel@citrix.com>
+References: <1350046634-2462-1-git-send-email-david.vrabel@citrix.com>
+MIME-Version: 1.0
+Cc: David Vrabel <david.vrabel@citrix.com>,
+       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: [Xen-devel] [PATCH 3/3] xen/privcmd: add
+       IOCTL_PRIVCMD_SYNC_WALLCLOCK to sync Xen's wallclock
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+From: David Vrabel <david.vrabel@citrix.com>
+
+Add a new ioctl to synchronize Xen's wallclock with the current system
+time.
+
+This may be used by the tools to ensure that newly created domains see
+the correct wallclock time if NTP is not used in dom0 or if domains
+are started before NTP has synchronized.
+
+Signed-off-by: David Vrabel <david.vrabel@citrix.com>
+---
+ arch/x86/xen/time.c   |   25 ++++++++++++++++++-------
+ drivers/xen/privcmd.c |   12 ++++++++++++
+ include/xen/privcmd.h |    8 ++++++++
+ include/xen/xen-ops.h |    2 ++
+ 4 files changed, 40 insertions(+), 7 deletions(-)
+
+diff --git a/arch/x86/xen/time.c b/arch/x86/xen/time.c
+index 11770d0..d481ac9 100644
+--- a/arch/x86/xen/time.c
++++ b/arch/x86/xen/time.c
+@@ -8,6 +8,7 @@
+  * Jeremy Fitzhardinge <jeremy@xensource.com>, XenSource Inc, 2007
+  */
+ #include <linux/kernel.h>
++#include <linux/export.h>
+ #include <linux/interrupt.h>
+ #include <linux/clocksource.h>
+ #include <linux/clockchips.h>
+@@ -192,6 +193,19 @@ static void xen_read_wallclock(struct timespec *ts)
+       put_cpu_var(xen_vcpu);
+ }
++int xen_write_wallclock(const struct timespec *ts)
++{
++      struct xen_platform_op op;
++
++      op.cmd = XENPF_settime;
++      op.u.settime.secs = ts->tv_sec;
++      op.u.settime.nsecs = ts->tv_nsec;
++      op.u.settime.system_time = xen_clocksource_read();
++
++      return HYPERVISOR_dom0_op(&op);
++}
++EXPORT_SYMBOL_GPL(xen_write_wallclock);
++
+ static unsigned long xen_get_wallclock(void)
+ {
+       struct timespec ts;
+@@ -202,7 +216,7 @@ static unsigned long xen_get_wallclock(void)
+ static int xen_set_wallclock(unsigned long now)
+ {
+-      struct xen_platform_op op;
++      struct timespec ts;
+       int rc;
+       /* do nothing for domU */
+@@ -218,12 +232,9 @@ static int xen_set_wallclock(unsigned long now)
+        * update_persistent_wallclock() is called ~500 ms after 'now'
+        * so add an extra 500 ms.
+        */
+-      op.cmd = XENPF_settime;
+-      op.u.settime.secs = now;
+-      op.u.settime.nsecs = NSEC_PER_SEC / 2;
+-      op.u.settime.system_time = xen_clocksource_read();
+-
+-      rc = HYPERVISOR_dom0_op(&op);
++      ts.tv_sec = now;
++      ts.tv_nsec = NSEC_PER_SEC / 2;
++      rc = xen_write_wallclock(&ts);
+       WARN(rc != 0, "XENPF_settime failed: now=%ld\n", now);
+       return rc;
+diff --git a/drivers/xen/privcmd.c b/drivers/xen/privcmd.c
+index ccee0f1..ed2caf3 100644
+--- a/drivers/xen/privcmd.c
++++ b/drivers/xen/privcmd.c
+@@ -338,6 +338,14 @@ out:
+       return ret;
+ }
++static long privcmd_ioctl_sync_wallclock(void)
++{
++      struct timespec ts;
++
++      getnstimeofday(&ts);
++      return xen_write_wallclock(&ts);
++}
++
+ static long privcmd_ioctl(struct file *file,
+                         unsigned int cmd, unsigned long data)
+ {
+@@ -357,6 +365,10 @@ static long privcmd_ioctl(struct file *file,
+               ret = privcmd_ioctl_mmap_batch(udata);
+               break;
++      case IOCTL_PRIVCMD_SYNC_WALLCLOCK:
++              ret = privcmd_ioctl_sync_wallclock();
++              break;
++
+       default:
+               ret = -EINVAL;
+               break;
+diff --git a/include/xen/privcmd.h b/include/xen/privcmd.h
+index 17857fb..d17d087 100644
+--- a/include/xen/privcmd.h
++++ b/include/xen/privcmd.h
+@@ -66,6 +66,12 @@ struct privcmd_mmapbatch {
+  * @cmd: IOCTL_PRIVCMD_HYPERCALL
+  * @arg: &privcmd_hypercall_t
+  * Return: Value returned from execution of the specified hypercall.
++ *
++ * @cmd: IOCTL_PRIVCMD_SYNC_WALLCLOCK
++ * @arg: Unused.
++ * Synchronizes the Xen wallclock with the current system time.
++ * Return: 0 on success, or -1 on error with errno set to EPERM or
++ * EACCES.
+  */
+ #define IOCTL_PRIVCMD_HYPERCALL                                       \
+       _IOC(_IOC_NONE, 'P', 0, sizeof(struct privcmd_hypercall))
+@@ -73,5 +79,7 @@ struct privcmd_mmapbatch {
+       _IOC(_IOC_NONE, 'P', 2, sizeof(struct privcmd_mmap))
+ #define IOCTL_PRIVCMD_MMAPBATCH                                       \
+       _IOC(_IOC_NONE, 'P', 3, sizeof(struct privcmd_mmapbatch))
++#define IOCTL_PRIVCMD_SYNC_WALLCLOCK                          \
++      _IOC(_IOC_NONE, 'P', 5, 0)
+ #endif /* __LINUX_PUBLIC_PRIVCMD_H__ */
+diff --git a/include/xen/xen-ops.h b/include/xen/xen-ops.h
+index 6a198e4..eefed22 100644
+--- a/include/xen/xen-ops.h
++++ b/include/xen/xen-ops.h
+@@ -29,4 +29,6 @@ int xen_remap_domain_mfn_range(struct vm_area_struct *vma,
+                              unsigned long mfn, int nr,
+                              pgprot_t prot, unsigned domid);
++int xen_write_wallclock(const struct timespec *ts);
++
+ #endif /* INCLUDE_XEN_OPS_H */
+-- 
+1.7.2.5
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1350046970-2591-1-git-send-email-david.vrabel@citrix.com> b/config/examples/test/corpus/<1350046970-2591-1-git-send-email-david.vrabel@citrix.com>
new file mode 100644 (file)
index 0000000..96a8d92
--- /dev/null
@@ -0,0 +1,92 @@
+From xen-devel-bounces@lists.xen.org Fri Oct 12 14:06:55 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 12 Oct 2012 14:06:55 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TMex3-0001wA-OD
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 12 Oct 2012 14:06:55 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TMetI-000055-V9; Fri, 12 Oct 2012 13:03:00 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <david.vrabel@citrix.com>) id 1TMetH-00004q-20
+       for xen-devel@lists.xen.org; Fri, 12 Oct 2012 13:02:59 +0000
+Received: from [85.158.138.51:15971] by server-1.bemta-3.messagelabs.com id
+       47/F2-31728-20518705; Fri, 12 Oct 2012 13:02:58 +0000
+X-Env-Sender: david.vrabel@citrix.com
+X-Msg-Ref: server-8.tower-174.messagelabs.com!1350046976!34078915!1
+X-Originating-IP: [66.165.176.89]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNzYwMjI=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 26868 invoked from network); 12 Oct 2012 13:02:57 -0000
+Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
+       by server-8.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
+       12 Oct 2012 13:02:57 -0000
+X-IronPort-AV: E=Sophos;i="4.80,576,1344211200"; d="scan'208";a="41022230"
+Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
+       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       12 Oct 2012 13:02:55 +0000
+Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
+       (10.13.107.66) with Microsoft SMTP Server id 8.3.279.1;
+       Fri, 12 Oct 2012 09:02:55 -0400
+Received: from qabil.uk.xensource.com ([10.80.2.76])   by
+       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
+       <david.vrabel@citrix.com>)      id 1TMetD-00063o-2R;
+       Fri, 12 Oct 2012 14:02:55 +0100
+From: David Vrabel <david.vrabel@citrix.com>
+To: xen-devel@lists.xen.org
+Date: Fri, 12 Oct 2012 14:02:48 +0100
+Message-ID: <1350046970-2591-1-git-send-email-david.vrabel@citrix.com>
+X-Mailer: git-send-email 1.7.2.5
+MIME-Version: 1.0
+Cc: David Vrabel <david.vrabel@citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: [Xen-devel] [PATCH 0/2] tools: add wallclock synchronization
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+This is the toolstack side of the Linux wallclock fixes.  A new libxc
+call, xc_wallclock_sync() is provided and a new command line utility
+(xen-wallclock) makes use of this.
+
+I also considered making libxl call xc_wallclock_sync() during domain
+creation but wasn't sure if this was sensible or whether there needed
+to be an xl configuration option to enable/disable this behaviour.
+Any comments?
+
+David
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1350046970-2591-2-git-send-email-david.vrabel@citrix.com> b/config/examples/test/corpus/<1350046970-2591-2-git-send-email-david.vrabel@citrix.com>
new file mode 100644 (file)
index 0000000..0a20ba8
--- /dev/null
@@ -0,0 +1,222 @@
+From xen-devel-bounces@lists.xen.org Fri Oct 12 14:07:03 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 12 Oct 2012 14:07:03 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TMex7-0001wT-Mi
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 12 Oct 2012 14:07:03 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TMetJ-00005H-Ot; Fri, 12 Oct 2012 13:03:01 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <david.vrabel@citrix.com>) id 1TMetH-00004u-PZ
+       for xen-devel@lists.xen.org; Fri, 12 Oct 2012 13:03:00 +0000
+Received: from [85.158.138.51:4661] by server-3.bemta-3.messagelabs.com id
+       C3/44-09368-20518705; Fri, 12 Oct 2012 13:02:58 +0000
+X-Env-Sender: david.vrabel@citrix.com
+X-Msg-Ref: server-8.tower-174.messagelabs.com!1350046976!34078915!2
+X-Originating-IP: [66.165.176.89]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNzYwMjI=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 26883 invoked from network); 12 Oct 2012 13:02:58 -0000
+Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
+       by server-8.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
+       12 Oct 2012 13:02:58 -0000
+X-IronPort-AV: E=Sophos;i="4.80,576,1344211200"; d="scan'208";a="41022231"
+Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
+       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       12 Oct 2012 13:02:55 +0000
+Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
+       (10.13.107.66) with Microsoft SMTP Server id 8.3.279.1;
+       Fri, 12 Oct 2012 09:02:55 -0400
+Received: from qabil.uk.xensource.com ([10.80.2.76])   by
+       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
+       <david.vrabel@citrix.com>)      id 1TMetD-00063o-4B;
+       Fri, 12 Oct 2012 14:02:55 +0100
+From: David Vrabel <david.vrabel@citrix.com>
+To: xen-devel@lists.xen.org
+Date: Fri, 12 Oct 2012 14:02:49 +0100
+Message-ID: <1350046970-2591-2-git-send-email-david.vrabel@citrix.com>
+X-Mailer: git-send-email 1.7.2.5
+In-Reply-To: <1350046970-2591-1-git-send-email-david.vrabel@citrix.com>
+References: <1350046970-2591-1-git-send-email-david.vrabel@citrix.com>
+MIME-Version: 1.0
+Cc: David Vrabel <david.vrabel@citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: [Xen-devel] [PATCH 1/2] libxc: add xc_wallclock_sync()
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+From: David Vrabel <david.vrabel@citrix.com>
+
+xc_wallclock_sync() synchronizes the Xen wallclock to system time.
+
+This requires a Linux kernel with a privcmd device that provides the
+IOCTL_PRIVCMD_SYNC_WALLCLOCK ioctl.
+
+Signed-off-by: David Vrabel <david.vrabel@citrix.com>
+---
+ tools/include/xen-sys/Linux/privcmd.h |    8 ++++++++
+ tools/libxc/Makefile                  |    1 +
+ tools/libxc/xc_linux_osdep.c          |    7 +++++++
+ tools/libxc/xc_wallclock.c            |   23 +++++++++++++++++++++++
+ tools/libxc/xenctrl.h                 |    5 +++++
+ tools/libxc/xenctrlosdep.h            |    2 ++
+ 6 files changed, 46 insertions(+), 0 deletions(-)
+ create mode 100644 tools/libxc/xc_wallclock.c
+
+diff --git a/tools/include/xen-sys/Linux/privcmd.h b/tools/include/xen-sys/Linux/privcmd.h
+index d35aac9..55765d1 100644
+--- a/tools/include/xen-sys/Linux/privcmd.h
++++ b/tools/include/xen-sys/Linux/privcmd.h
+@@ -76,6 +76,12 @@ typedef struct privcmd_mmapbatch_v2 {
+  * @cmd: IOCTL_PRIVCMD_HYPERCALL
+  * @arg: &privcmd_hypercall_t
+  * Return: Value returned from execution of the specified hypercall.
++ *
++ * @cmd: IOCTL_PRIVCMD_SYNC_WALLCLOCK
++ * @arg: Unused.
++ * Synchronizes the Xen wallclock with the current system time.
++ * Return: 0 on success, or -1 on error with errno set to EPERM or
++ * EACCES.
+  */
+ #define IOCTL_PRIVCMD_HYPERCALL                                       \
+       _IOC(_IOC_NONE, 'P', 0, sizeof(privcmd_hypercall_t))
+@@ -85,5 +91,7 @@ typedef struct privcmd_mmapbatch_v2 {
+       _IOC(_IOC_NONE, 'P', 3, sizeof(privcmd_mmapbatch_t))
+ #define IOCTL_PRIVCMD_MMAPBATCH_V2                            \
+       _IOC(_IOC_NONE, 'P', 4, sizeof(privcmd_mmapbatch_v2_t))
++#define IOCTL_PRIVCMD_SYNC_WALLCLOCK                          \
++      _IOC(_IOC_NONE, 'P', 5, 0)
+ #endif /* __LINUX_PUBLIC_PRIVCMD_H__ */
+diff --git a/tools/libxc/Makefile b/tools/libxc/Makefile
+index d44abf9..601ea4b 100644
+--- a/tools/libxc/Makefile
++++ b/tools/libxc/Makefile
+@@ -31,6 +31,7 @@ CTRL_SRCS-y       += xc_mem_access.c
+ CTRL_SRCS-y       += xc_memshr.c
+ CTRL_SRCS-y       += xc_hcall_buf.c
+ CTRL_SRCS-y       += xc_foreign_memory.c
++CTRL_SRCS-y       += xc_wallclock.c
+ CTRL_SRCS-y       += xtl_core.c
+ CTRL_SRCS-y       += xtl_logger_stdio.c
+ CTRL_SRCS-$(CONFIG_X86) += xc_pagetab.c
+diff --git a/tools/libxc/xc_linux_osdep.c b/tools/libxc/xc_linux_osdep.c
+index 787e742..7c73b66 100644
+--- a/tools/libxc/xc_linux_osdep.c
++++ b/tools/libxc/xc_linux_osdep.c
+@@ -412,6 +412,11 @@ static void *linux_privcmd_map_foreign_ranges(xc_interface *xch, xc_osdep_handle
+     return ret;
+ }
++static int linux_wallclock_sync(xc_interface *xch, xc_osdep_handle h)
++{
++    return ioctl(h, IOCTL_PRIVCMD_SYNC_WALLCLOCK, NULL);
++}
++
+ static struct xc_osdep_ops linux_privcmd_ops = {
+     .open = &linux_privcmd_open,
+     .close = &linux_privcmd_close,
+@@ -426,6 +431,8 @@ static struct xc_osdep_ops linux_privcmd_ops = {
+         .map_foreign_bulk = &linux_privcmd_map_foreign_bulk,
+         .map_foreign_range = &linux_privcmd_map_foreign_range,
+         .map_foreign_ranges = &linux_privcmd_map_foreign_ranges,
++
++        .wallclock_sync = linux_wallclock_sync,
+     },
+ };
+diff --git a/tools/libxc/xc_wallclock.c b/tools/libxc/xc_wallclock.c
+new file mode 100644
+index 0000000..5119b2a
+--- /dev/null
++++ b/tools/libxc/xc_wallclock.c
+@@ -0,0 +1,23 @@
++/******************************************************************************
++ * xc_wallclock.c
++ *
++ * API for the wallclock.
++ *
++ * Copyright (C) 2012, Citrix Systems (UK) Ltd.
++ *
++ * This library is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU Lesser General Public
++ * License as published by the Free Software Foundation; either
++ * version 2.1 of the License, or (at your option) any later version.
++ */
++
++#include "xc_private.h"
++
++int xc_wallclock_sync(xc_interface *xch)
++{
++    if (xch->ops->u.privcmd.wallclock_sync == NULL) {
++        errno = ENOSYS;
++        return -1;
++    }
++    return xch->ops->u.privcmd.wallclock_sync(xch, xch->ops_handle);
++}
+diff --git a/tools/libxc/xenctrl.h b/tools/libxc/xenctrl.h
+index 7eb5743..f9bb21b 100644
+--- a/tools/libxc/xenctrl.h
++++ b/tools/libxc/xenctrl.h
+@@ -2224,4 +2224,9 @@ int xc_compression_uncompress_page(xc_interface *xch, char *compbuf,
+                                  unsigned long compbuf_size,
+                                  unsigned long *compbuf_pos, char *dest);
++/**
++ * Synchronize Xen's wallclock with the current system time.
++ */
++int xc_wallclock_sync(xc_interface *xch);
++
+ #endif /* XENCTRL_H */
+diff --git a/tools/libxc/xenctrlosdep.h b/tools/libxc/xenctrlosdep.h
+index a36c4aa..3aa3360 100644
+--- a/tools/libxc/xenctrlosdep.h
++++ b/tools/libxc/xenctrlosdep.h
+@@ -89,6 +89,8 @@ struct xc_osdep_ops
+             void *(*map_foreign_ranges)(xc_interface *xch, xc_osdep_handle h, uint32_t dom, size_t size, int prot,
+                                         size_t chunksize, privcmd_mmap_entry_t entries[],
+                                         int nentries);
++
++            int (*wallclock_sync)(xc_interface *xch, xc_osdep_handle h);
+         } privcmd;
+         struct {
+             int (*fd)(xc_evtchn *xce, xc_osdep_handle h);
+-- 
+1.7.2.5
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1350046970-2591-3-git-send-email-david.vrabel@citrix.com> b/config/examples/test/corpus/<1350046970-2591-3-git-send-email-david.vrabel@citrix.com>
new file mode 100644 (file)
index 0000000..0ec566a
--- /dev/null
@@ -0,0 +1,250 @@
+From xen-devel-bounces@lists.xen.org Fri Oct 12 14:07:03 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 12 Oct 2012 14:07:03 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TMex7-0001wS-B4
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 12 Oct 2012 14:07:03 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TMetK-00005S-6U; Fri, 12 Oct 2012 13:03:02 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <david.vrabel@citrix.com>) id 1TMetI-00004z-FD
+       for xen-devel@lists.xen.org; Fri, 12 Oct 2012 13:03:00 +0000
+Received: from [85.158.138.51:4696] by server-7.bemta-3.messagelabs.com id
+       16/D2-06991-30518705; Fri, 12 Oct 2012 13:02:59 +0000
+X-Env-Sender: david.vrabel@citrix.com
+X-Msg-Ref: server-8.tower-174.messagelabs.com!1350046976!34078915!3
+X-Originating-IP: [66.165.176.89]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNzYwMjI=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 26896 invoked from network); 12 Oct 2012 13:02:59 -0000
+Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
+       by server-8.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
+       12 Oct 2012 13:02:59 -0000
+X-IronPort-AV: E=Sophos;i="4.80,576,1344211200"; d="scan'208";a="41022232"
+Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
+       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       12 Oct 2012 13:02:55 +0000
+Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
+       (10.13.107.66) with Microsoft SMTP Server id 8.3.279.1;
+       Fri, 12 Oct 2012 09:02:55 -0400
+Received: from qabil.uk.xensource.com ([10.80.2.76])   by
+       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
+       <david.vrabel@citrix.com>)      id 1TMetD-00063o-4a;
+       Fri, 12 Oct 2012 14:02:55 +0100
+From: David Vrabel <david.vrabel@citrix.com>
+To: xen-devel@lists.xen.org
+Date: Fri, 12 Oct 2012 14:02:50 +0100
+Message-ID: <1350046970-2591-3-git-send-email-david.vrabel@citrix.com>
+X-Mailer: git-send-email 1.7.2.5
+In-Reply-To: <1350046970-2591-1-git-send-email-david.vrabel@citrix.com>
+References: <1350046970-2591-1-git-send-email-david.vrabel@citrix.com>
+MIME-Version: 1.0
+Cc: David Vrabel <david.vrabel@citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: [Xen-devel] [PATCH 2/2] tools/misc: add xen-wallclock command
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+From: David Vrabel <david.vrabel@citrix.com>
+
+Add the xen-wallclock command for synchronizing the Xen wallclock to
+system time.  The command is similar to the hwclock command for
+synchronizing the hardware RTC and takes a similar --systowc command
+line option.
+
+Signed-off-by: David Vrabel <david.vrabel@citrix.com>
+---
+ .gitignore                 |    1 +
+ .hgignore                  |    1 +
+ tools/misc/Makefile        |    8 +++-
+ tools/misc/xen-wallclock.c |   87 ++++++++++++++++++++++++++++++++++++++++++++
+ 4 files changed, 95 insertions(+), 2 deletions(-)
+ create mode 100644 tools/misc/xen-wallclock.c
+
+diff --git a/.gitignore b/.gitignore
+index f6edc43..a62abd2 100644
+--- a/.gitignore
++++ b/.gitignore
+@@ -196,6 +196,7 @@ tools/misc/xc_shadow
+ tools/misc/xen_cpuperf
+ tools/misc/xen-detect
+ tools/misc/xen-tmem-list-parse
++tools/misc/xen-wallclock
+ tools/misc/xenperf
+ tools/misc/xenpm
+ tools/misc/xen-hvmctx
+diff --git a/.hgignore b/.hgignore
+index 344792a..3b6f747 100644
+--- a/.hgignore
++++ b/.hgignore
+@@ -198,6 +198,7 @@
+ ^tools/misc/xen-hptool$
+ ^tools/misc/xen-hvmcrash$
+ ^tools/misc/xen-tmem-list-parse$
++^tools/misc/xen-wallclock$
+ ^tools/misc/xenperf$
+ ^tools/misc/xenpm$
+ ^tools/misc/xen-hvmctx$
+diff --git a/tools/misc/Makefile b/tools/misc/Makefile
+index 22e60fd..456d1ad 100644
+--- a/tools/misc/Makefile
++++ b/tools/misc/Makefile
+@@ -9,7 +9,8 @@ CFLAGS += $(CFLAGS_libxenstore)
+ HDRS     = $(wildcard *.h)
+-TARGETS-y := xenperf xenpm xen-tmem-list-parse gtraceview gtracestat xenlockprof xenwatchdogd
++TARGETS-y := xenperf xenpm xen-tmem-list-parse gtraceview gtracestat xenlockprof xenwatchdogd \
++      xen-wallclock
+ TARGETS-$(CONFIG_X86) += xen-detect xen-hvmctx xen-hvmcrash xen-lowmemd
+ TARGETS-$(CONFIG_MIGRATE) += xen-hptool
+ TARGETS := $(TARGETS-y)
+@@ -22,7 +23,7 @@ INSTALL_BIN-y := xencons
+ INSTALL_BIN-$(CONFIG_X86) += xen-detect
+ INSTALL_BIN := $(INSTALL_BIN-y)
+-INSTALL_SBIN-y := xm xen-bugtool xen-python-path xend xenperf xsview xenpm xen-tmem-list-parse gtraceview gtracestat xenlockprof xenwatchdogd xen-ringwatch
++INSTALL_SBIN-y := xm xen-bugtool xen-python-path xend xenperf xsview xenpm xen-tmem-list-parse gtraceview gtracestat xenlockprof xenwatchdogd xen-ringwatch xen-wallclock
+ INSTALL_SBIN-$(CONFIG_X86) += xen-hvmctx xen-hvmcrash xen-lowmemd
+ INSTALL_SBIN-$(CONFIG_MIGRATE) += xen-hptool
+ INSTALL_SBIN := $(INSTALL_SBIN-y)
+@@ -85,4 +86,7 @@ xen-lowmemd: xen-lowmemd.o
+ gtraceview: gtraceview.o
+       $(CC) $(LDFLAGS) -o $@ $< $(CURSES_LIBS) $(APPEND_LDFLAGS)
++xen-wallclock: xen-wallclock.o
++      $(CC) $(LDFLAGS) -o $@ $< $(LDLIBS_libxenctrl) $(APPEND_LDFLAGS)
++
+ -include $(DEPS)
+diff --git a/tools/misc/xen-wallclock.c b/tools/misc/xen-wallclock.c
+new file mode 100644
+index 0000000..e4af166
+--- /dev/null
++++ b/tools/misc/xen-wallclock.c
+@@ -0,0 +1,87 @@
++/*
++ * xen-wallclock.c: manage the Xen wallclock.
++ * Copyright (C) 2012, Citrix Systems (UK) Ltd.
++ *
++ * This program is free software; you can redistribute it and/or modify
++ * it under the terms of the GNU General Public License as published by
++ * the Free Software Foundation; either version 2 of the License, or
++ * (at your option) any later version.
++ */
++#include <stdlib.h>
++#include <stdio.h>
++#include <string.h>
++#include <errno.h>
++#include <unistd.h>
++#include <getopt.h>
++
++#include <xenctrl.h>
++
++static const char *exe_name;
++
++static void usage(FILE *f)
++{
++    fprintf(f, "Usage: %s --systowc\n", exe_name);
++}
++
++static void help(void)
++{
++    usage(stdout);
++    printf("Synchronize the Xen wallclock with system time.\n"
++           "\n"
++           "  -w, --systowc synchronize wallclock with system time\n"
++           "      --help    display this help and exit\n");
++    exit(0);
++}
++
++int main(int argc, char *argv[])
++{
++    const static char sopts[] = "w";
++    const static struct option lopts[] = {
++        { "help", 0, NULL, 0 },
++        { "systowc", 0, NULL, 'w' },
++        { 0, 0, NULL, 0 },
++    };
++    int opt, opt_idx;
++
++    int systowc = 0;
++    xc_interface *xch;
++
++    exe_name = argv[0];
++
++    while ( (opt = getopt_long(argc, argv, sopts, lopts, &opt_idx)) != -1 )
++    {
++        switch ( opt )
++        {
++        case 'w':
++            systowc = 1;
++            break;
++        case 0:
++            switch (opt_idx)
++            {
++            case 0:
++                help();
++            }
++            break;
++        default:
++            usage(stderr);
++            exit(1);
++        }
++    }
++
++    /* Valid combination of options? i.e., --systowc */
++    if (!systowc)
++    {
++        usage(stderr);
++        exit(1);
++    }
++
++    xch = xc_interface_open(NULL, NULL, 0);
++    if (xch == NULL)
++    {
++        exit(1);
++    }
++    xc_wallclock_sync(xch);
++    xc_interface_close(xch);
++
++    return 0;
++}
+-- 
+1.7.2.5
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1350293121.18058.10.camel@zakaz.uk.xensource.com> b/config/examples/test/corpus/<1350293121.18058.10.camel@zakaz.uk.xensource.com>
new file mode 100644 (file)
index 0000000..4700840
--- /dev/null
@@ -0,0 +1,129 @@
+From xen-devel-bounces@lists.xen.org Mon Oct 15 10:33:20 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Mon, 15 Oct 2012 10:33:20 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TNh2x-0001Pp-F0
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Mon, 15 Oct 2012 10:33:20 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TNgvN-00068U-EV; Mon, 15 Oct 2012 09:25:25 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1TNgvM-00068K-KS
+       for xen-devel@lists.xen.org; Mon, 15 Oct 2012 09:25:24 +0000
+Received: from [85.158.139.211:19233] by server-2.bemta-5.messagelabs.com id
+       45/D8-10520-386DB705; Mon, 15 Oct 2012 09:25:23 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-3.tower-206.messagelabs.com!1350293122!22320096!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTQxMzE=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 3262 invoked from network); 15 Oct 2012 09:25:23 -0000
+Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-3.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
+       15 Oct 2012 09:25:23 -0000
+X-IronPort-AV: E=Sophos;i="4.80,587,1344211200"; d="scan'208";a="15164066"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       15 Oct 2012 09:25:22 +0000
+Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.279.1;
+       Mon, 15 Oct 2012 10:25:22 +0100
+Message-ID: <1350293121.18058.10.camel@zakaz.uk.xensource.com>
+From: Ian Campbell <Ian.Campbell@citrix.com>
+To: David Vrabel <david.vrabel@citrix.com>
+Date: Mon, 15 Oct 2012 10:25:21 +0100
+In-Reply-To: <1350046634-2462-3-git-send-email-david.vrabel@citrix.com>
+References: <1350046634-2462-1-git-send-email-david.vrabel@citrix.com>
+       <1350046634-2462-3-git-send-email-david.vrabel@citrix.com>
+Organization: Citrix Systems, Inc.
+X-Mailer: Evolution 3.4.3-1 
+MIME-Version: 1.0
+Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.6 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 2/3] xen: add correct 500 ms offset when
+ setting Xen wallclock
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Fri, 2012-10-12 at 13:57 +0100, David Vrabel wrote:
+> From: David Vrabel <david.vrabel@citrix.com>
+> 
+> update_persistent_wallclock() (and hence xet_set_wallclock()) is
+> called 500 ms after the second.
+
+The comment in sync_cmos_clock says it is called 500ms before the next
+second.
+
+I only mention it to double check that the right semantics for
+set_wallclock are being implemented, i.e. that we are compensating in
+the right direction.
+
+>   xen_set_wallclock() was not
+> considering this so the Xen wallclock would end up ~500 ms behind the
+> correct time.
+> 
+> Signed-off-by: David Vrabel <david.vrabel@citrix.com>
+> ---
+>  arch/x86/xen/time.c |    9 +++++++--
+>  1 files changed, 7 insertions(+), 2 deletions(-)
+> 
+> diff --git a/arch/x86/xen/time.c b/arch/x86/xen/time.c
+> index 5e7f536..11770d0 100644
+> --- a/arch/x86/xen/time.c
+> +++ b/arch/x86/xen/time.c
+> @@ -212,10 +212,15 @@ static int xen_set_wallclock(unsigned long now)
+>      /* Set the hardware RTC. */
+>      mach_set_rtc_mmss(now);
+>  
+> -    /* Set the Xen wallclock. */
+> +    /*
+> +     * Set the Xen wallclock.
+> +     *
+> +     * update_persistent_wallclock() is called ~500 ms after 'now'
+> +     * so add an extra 500 ms.
+> +     */
+>      op.cmd = XENPF_settime;
+>      op.u.settime.secs = now;
+> -    op.u.settime.nsecs = 0;
+> +    op.u.settime.nsecs = NSEC_PER_SEC / 2;
+>      op.u.settime.system_time = xen_clocksource_read();
+>  
+>      rc = HYPERVISOR_dom0_op(&op);
+
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1350293217.18058.11.camel@zakaz.uk.xensource.com> b/config/examples/test/corpus/<1350293217.18058.11.camel@zakaz.uk.xensource.com>
new file mode 100644 (file)
index 0000000..bc5b75e
--- /dev/null
@@ -0,0 +1,116 @@
+From xen-devel-bounces@lists.xen.org Mon Oct 15 10:34:52 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Mon, 15 Oct 2012 10:34:52 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TNh4R-0001QP-7Z
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Mon, 15 Oct 2012 10:34:52 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TNgzy-0006Nn-NU; Mon, 15 Oct 2012 09:30:10 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1TNgzw-0006NV-DH
+       for xen-devel@lists.xen.org; Mon, 15 Oct 2012 09:30:08 +0000
+Received: from [85.158.143.35:24177] by server-2.bemta-4.messagelabs.com id
+       C8/F3-25171-F97DB705; Mon, 15 Oct 2012 09:30:07 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-5.tower-21.messagelabs.com!1350293261!5295227!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTQxMzE=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 18307 invoked from network); 15 Oct 2012 09:27:41 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-5.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
+       15 Oct 2012 09:27:41 -0000
+X-IronPort-AV: E=Sophos;i="4.80,587,1344211200"; d="scan'208";a="15164166"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       15 Oct 2012 09:26:59 +0000
+Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.279.1;
+       Mon, 15 Oct 2012 10:26:59 +0100
+Message-ID: <1350293217.18058.11.camel@zakaz.uk.xensource.com>
+From: Ian Campbell <Ian.Campbell@citrix.com>
+To: David Vrabel <david.vrabel@citrix.com>
+Date: Mon, 15 Oct 2012 10:26:57 +0100
+In-Reply-To: <50784462.3060203@citrix.com>
+References: <1350046634-2462-1-git-send-email-david.vrabel@citrix.com>
+       <50784462.3060203@citrix.com>
+Organization: Citrix Systems, Inc.
+X-Mailer: Evolution 3.4.3-1 
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
+       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.6 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 0/3] xen: fix various wallclock problems
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Fri, 2012-10-12 at 17:25 +0100, David Vrabel wrote:
+> On 12/10/12 13:57, David Vrabel wrote:
+> > This series (with some toolstack updates) corrects a number of cases
+> > where a guest can see an incorrect wallclock time.
+> > 
+> > 1. Systems with NTP won't periodically synchronize the hardware RTC so
+> > the wallclock may be incorrect after a reboot.
+> > 
+> > 2. The wallclock is always ~500 ms behind the correct time.
+> > 
+> > 3. If the system time was stepped and NTP isn't synchronized yet, the
+> > wallclock will still have the incorrect time.  The fix for this
+> > requires the toolstack to synchronize the wallclock -- patch #3
+> > provides the mechanism for this.
+> 
+> These tables should help.
+> 
+> Before:
+> 
+>               |                Updates
+> Process            | System Time?  Xen Wallclock?  Hardware Clock?
+> -------------------------------------------------------------
+> date -s       | X
+> hwclock -w    |                               X
+> ntpd          | X             X[*]
+> ntpdate       | X
+
+What does the equivalent table for native look like?
+
+Is the "updated hardware clock" column in that caseis union of xen
+wallclock and hardware clock columns here?
+
+Ian.
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1350293719.18058.13.camel@zakaz.uk.xensource.com> b/config/examples/test/corpus/<1350293719.18058.13.camel@zakaz.uk.xensource.com>
new file mode 100644 (file)
index 0000000..ca6168f
--- /dev/null
@@ -0,0 +1,143 @@
+From xen-devel-bounces@lists.xen.org Mon Oct 15 10:40:22 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Mon, 15 Oct 2012 10:40:22 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TNh9o-0001Ry-6E
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Mon, 15 Oct 2012 10:40:22 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TNh57-0006lk-IS; Mon, 15 Oct 2012 09:35:29 +0000
+Received: from mail27.messagelabs.com ([193.109.254.147])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1TNh55-0006kS-H9
+       for xen-devel@lists.xen.org; Mon, 15 Oct 2012 09:35:27 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-16.tower-27.messagelabs.com!1350293721!13263094!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTQxMzE=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 26177 invoked from network); 15 Oct 2012 09:35:21 -0000
+Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-16.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
+       15 Oct 2012 09:35:21 -0000
+X-IronPort-AV: E=Sophos;i="4.80,587,1344211200"; d="scan'208";a="15164492"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       15 Oct 2012 09:35:21 +0000
+Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.279.1;
+       Mon, 15 Oct 2012 10:35:21 +0100
+Message-ID: <1350293719.18058.13.camel@zakaz.uk.xensource.com>
+From: Ian Campbell <Ian.Campbell@citrix.com>
+To: David Vrabel <david.vrabel@citrix.com>
+Date: Mon, 15 Oct 2012 10:35:19 +0100
+In-Reply-To: <1350046970-2591-3-git-send-email-david.vrabel@citrix.com>
+References: <1350046970-2591-1-git-send-email-david.vrabel@citrix.com>
+       <1350046970-2591-3-git-send-email-david.vrabel@citrix.com>
+Organization: Citrix Systems, Inc.
+X-Mailer: Evolution 3.4.3-1 
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.6 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 2/2] tools/misc: add xen-wallclock command
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Fri, 2012-10-12 at 14:02 +0100, David Vrabel wrote:
+> +int main(int argc, char *argv[])
+> +{
+> +    const static char sopts[] = "w";
+> +    const static struct option lopts[] = {
+> +        { "help", 0, NULL, 0 },
+> +        { "systowc", 0, NULL, 'w' },
+> +        { 0, 0, NULL, 0 },
+> +    };
+> +    int opt, opt_idx;
+> +
+> +    int systowc = 0;
+> +    xc_interface *xch;
+> +
+> +    exe_name = argv[0];
+> +
+> +    while ( (opt = getopt_long(argc, argv, sopts, lopts, &opt_idx)) != -1 )
+> +    {
+> +        switch ( opt )
+> +        {
+> +        case 'w':
+> +            systowc = 1;
+> +            break;
+> +        case 0:
+> +            switch (opt_idx)
+> +            {
+> +            case 0:
+> +                help();
+> +            }
+> +            break;
+> +        default:
+> +            usage(stderr);
+> +            exit(1);
+> +        }
+> +    }
+> +
+> +    /* Valid combination of options? i.e., --systowc */
+> +    if (!systowc)
+> +    {
+> +        usage(stderr);
+> +        exit(1);
+> +    }
+> +
+> +    xch = xc_interface_open(NULL, NULL, 0);
+> +    if (xch == NULL)
+> +    {
+
+I forget: Does xc_interface_open log on error?
+
+> +        exit(1);
+> +    }
+> +    xc_wallclock_sync(xch);
+
+Worth logging if this fails?
+
+I suppose we want to hold off on this and the first patch until the
+Linux side is agreed and committed?
+
+> +    xc_interface_close(xch);
+> +
+> +    return 0;
+> +}
+
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1350304068.18058.41.camel@zakaz.uk.xensource.com> b/config/examples/test/corpus/<1350304068.18058.41.camel@zakaz.uk.xensource.com>
new file mode 100644 (file)
index 0000000..1245097
--- /dev/null
@@ -0,0 +1,112 @@
+From xen-devel-bounces@lists.xen.org Mon Oct 15 13:32:20 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Mon, 15 Oct 2012 13:32:20 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TNjqA-00023x-LH
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Mon, 15 Oct 2012 13:32:20 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TNjlw-0006U8-UM; Mon, 15 Oct 2012 12:27:52 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1TNjlv-0006Tt-6f
+       for xen-devel@lists.xen.org; Mon, 15 Oct 2012 12:27:51 +0000
+Received: from [85.158.139.211:7088] by server-9.bemta-5.messagelabs.com id
+       E5/4C-23053-6410C705; Mon, 15 Oct 2012 12:27:50 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-5.tower-206.messagelabs.com!1350304069!22316327!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTQxMzE=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 12018 invoked from network); 15 Oct 2012 12:27:50 -0000
+Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-5.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
+       15 Oct 2012 12:27:50 -0000
+X-IronPort-AV: E=Sophos;i="4.80,587,1344211200"; d="scan'208";a="15170071"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       15 Oct 2012 12:27:49 +0000
+Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.279.1;
+       Mon, 15 Oct 2012 13:27:49 +0100
+Message-ID: <1350304068.18058.41.camel@zakaz.uk.xensource.com>
+From: Ian Campbell <Ian.Campbell@citrix.com>
+To: David Vrabel <david.vrabel@citrix.com>
+Date: Mon, 15 Oct 2012 13:27:48 +0100
+In-Reply-To: <507BFFD0.2010707@citrix.com>
+References: <1350046634-2462-1-git-send-email-david.vrabel@citrix.com>
+       <1350046634-2462-3-git-send-email-david.vrabel@citrix.com>
+       <1350293121.18058.10.camel@zakaz.uk.xensource.com>
+       <507BFFD0.2010707@citrix.com>
+Organization: Citrix Systems, Inc.
+X-Mailer: Evolution 3.4.3-1 
+MIME-Version: 1.0
+Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.6 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 2/3] xen: add correct 500 ms offset when
+ setting Xen wallclock
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Mon, 2012-10-15 at 13:21 +0100, David Vrabel wrote:
+> On 15/10/12 10:25, Ian Campbell wrote:
+> > On Fri, 2012-10-12 at 13:57 +0100, David Vrabel wrote:
+> >> From: David Vrabel <david.vrabel@citrix.com>
+> >>
+> >> update_persistent_wallclock() (and hence xet_set_wallclock()) is
+> >> called 500 ms after the second.
+> > 
+> > The comment in sync_cmos_clock says it is called 500ms before the next
+> > second.
+> 
+> This is the same thing, right?
+
+It matters in the native case, where, If I'm reading it right, things
+are setup such thatthe time change happens on the next second tick over.
+I just wanted to check it did/didn't matter here as well.
+
+> 
+> > I only mention it to double check that the right semantics for
+> > set_wallclock are being implemented, i.e. that we are compensating in
+> > the right direction.
+> 
+> I'll add some debug code to make sure.
+> 
+> David
+
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1350383800.18058.114.camel@zakaz.uk.xensource.com> b/config/examples/test/corpus/<1350383800.18058.114.camel@zakaz.uk.xensource.com>
new file mode 100644 (file)
index 0000000..b0b0e62
--- /dev/null
@@ -0,0 +1,164 @@
+From xen-devel-bounces@lists.xen.org Tue Oct 16 11:43:12 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Tue, 16 Oct 2012 11:43:12 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TO4c9-0002E2-QU
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 16 Oct 2012 11:43:12 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TO4Vx-00013e-Ik; Tue, 16 Oct 2012 10:36:45 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1TO4Vw-00013Y-L0
+       for xen-devel@lists.xensource.com; Tue, 16 Oct 2012 10:36:44 +0000
+Received: from [85.158.139.83:14434] by server-3.bemta-5.messagelabs.com id
+       0D/54-28618-BB83D705; Tue, 16 Oct 2012 10:36:43 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-2.tower-182.messagelabs.com!1350383802!32220565!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTQzMzg=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 28966 invoked from network); 16 Oct 2012 10:36:43 -0000
+Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-2.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
+       16 Oct 2012 10:36:43 -0000
+X-IronPort-AV: E=Sophos;i="4.80,593,1344211200"; d="scan'208";a="15199297"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       16 Oct 2012 10:36:42 +0000
+Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.279.1;
+       Tue, 16 Oct 2012 11:36:42 +0100
+Message-ID: <1350383800.18058.114.camel@zakaz.uk.xensource.com>
+From: Ian Campbell <Ian.Campbell@citrix.com>
+To: Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+Date: Tue, 16 Oct 2012 11:36:40 +0100
+In-Reply-To: <alpine.DEB.2.02.1208161523420.4850@kaball.uk.xensource.com>
+References: <alpine.DEB.2.02.1208161523420.4850@kaball.uk.xensource.com>
+Organization: Citrix Systems, Inc.
+X-Mailer: Evolution 3.4.3-1 
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
+       Keir Fraser <keir@xen.org>, "Tim Deegan \(3P\)" <Tim.Deegan@citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.6 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH v3 0/6] ARM hypercall ABI: 64 bit ready
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Thu, 2012-08-16 at 15:48 +0100, Stefano Stabellini wrote:
+> In this version of the patch series I have introduced conversion macros
+> to convert a XEN_GUEST_HANDLE_PARAM into a XEN_GUEST_HANDLE a vice
+> versa. Most of the problematic cases come from xen/arch/x86 code, in
+> order to spot them I wrote a simple debug patch that change the
+> definition of XEN_GUEST_HANDLE_PARAM to be different from
+> XEN_GUEST_HANDLE on x86 too. I am attaching the debug patch to this
+> email. 
+
+This (quoted below) seems like a useful patch from the PoV of catching
+these sorts of things early on x86 before they break ARM.
+
+It doesn't seem like it should have any impact on the generated code,
+should we perhaps apply it?
+
+I needed the addition of the following to actually make it work though.
+
+diff --git a/xen/include/asm-x86/guest_access.h b/xen/include/asm-x86/guest_acce
+index ca700c9..33b4afd 100644
+--- a/xen/include/asm-x86/guest_access.h
++++ b/xen/include/asm-x86/guest_access.h
+@@ -54,22 +54,24 @@
+ /* Cast a XEN_GUEST_HANDLE to XEN_GUEST_HANDLE_PARAM */
+ #define guest_handle_to_param(hnd, type) ({                  \
++    typeof((hnd).p) _x = (hnd).p;                            \
++    XEN_GUEST_HANDLE_PARAM(type) _y = { _x };                \
+     /* type checking: make sure that the pointers inside     \
+      * XEN_GUEST_HANDLE and XEN_GUEST_HANDLE_PARAM are of    \
+      * the same type, then return hnd */                     \
+-    (void)((typeof(&(hnd).p)) 0 ==                           \
+-        (typeof(&((XEN_GUEST_HANDLE_PARAM(type)) {}).p)) 0); \
+-    (hnd);                                                   \
++    (void)(&_x == &_y.p);                                    \
++    _y;                                                      \
+ })
+ /* Cast a XEN_GUEST_HANDLE_PARAM to XEN_GUEST_HANDLE */
+-#define guest_handle_from_param(hnd, type) ({                \
+-    /* type checking: make sure that the pointers inside     \
+-     * XEN_GUEST_HANDLE and XEN_GUEST_HANDLE_PARAM are of    \
+-     * the same type, then return hnd */                     \
+-    (void)((typeof(&(hnd).p)) 0 ==                           \
+-        (typeof(&((XEN_GUEST_HANDLE_PARAM(type)) {}).p)) 0); \
+-    (hnd);                                                   \
++#define guest_handle_from_param(hnd, type) ({               \
++    typeof((hnd).p) _x = (hnd).p;                           \
++    XEN_GUEST_HANDLE(type) _y = { _x };                     \
++    /* type checking: make sure that the pointers inside    \
++     * XEN_GUEST_HANDLE and XEN_GUEST_HANDLE_PARAM are of   \
++     * the same type, then return hnd */                    \
++    (void)(&_x == &_y.p);                                   \
++    _y;                                                     \
+ })
+ #define guest_handle_for_field(hnd, type, fld)          \
+
+
+> diff --git a/xen/include/public/arch-x86/xen.h b/xen/include/public/arch-x86/xen.h
+> index 0e10260..08a788e 100644
+> --- a/xen/include/public/arch-x86/xen.h
+> +++ b/xen/include/public/arch-x86/xen.h
+> @@ -32,7 +32,8 @@
+>  /* Structural guest handles introduced in 0x00030201. */
+>  #if __XEN_INTERFACE_VERSION__ >= 0x00030201
+>  #define ___DEFINE_XEN_GUEST_HANDLE(name, type) \
+> -    typedef struct { type *p; } __guest_handle_ ## name
+> +    typedef struct { type *p; } __guest_handle_ ## name; \
+> +    typedef struct { type *p; } __guest_handle_param_ ## name
+>  #else
+>  #define ___DEFINE_XEN_GUEST_HANDLE(name, type) \
+>      typedef type * __guest_handle_ ## name
+> @@ -52,7 +53,7 @@
+>  #define DEFINE_XEN_GUEST_HANDLE(name)   __DEFINE_XEN_GUEST_HANDLE(name, name)
+>  #define __XEN_GUEST_HANDLE(name)        __guest_handle_ ## name
+>  #define XEN_GUEST_HANDLE(name)          __XEN_GUEST_HANDLE(name)
+> -#define XEN_GUEST_HANDLE_PARAM(name)    XEN_GUEST_HANDLE(name)
+> +#define XEN_GUEST_HANDLE_PARAM(name)    __guest_handle_param_ ## name
+>  #define set_xen_guest_handle_raw(hnd, val)  do { (hnd).p = val; } while (0)
+>  #ifdef __XEN_TOOLS__
+>  #define get_xen_guest_handle(val, hnd)  do { val = (hnd).p; } while (0)
+> 
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1350479456-4007-1-git-send-email-stefan.bader@canonical.com> b/config/examples/test/corpus/<1350479456-4007-1-git-send-email-stefan.bader@canonical.com>
new file mode 100644 (file)
index 0000000..d116ccb
--- /dev/null
@@ -0,0 +1,226 @@
+From xen-devel-bounces@lists.xen.org Wed Oct 17 14:15:12 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 17 Oct 2012 14:15:12 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TOTSk-00038L-A7
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 17 Oct 2012 14:15:12 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TOTOr-0002Jd-R9; Wed, 17 Oct 2012 13:11:05 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <stefan.bader@canonical.com>) id 1TOTOq-0002JX-3q
+       for xen-devel@lists.xen.org; Wed, 17 Oct 2012 13:11:04 +0000
+Received: from [85.158.139.83:21817] by server-1.bemta-5.messagelabs.com id
+       24/0A-21640-76EAE705; Wed, 17 Oct 2012 13:11:03 +0000
+X-Env-Sender: stefan.bader@canonical.com
+X-Msg-Ref: server-4.tower-182.messagelabs.com!1350479459!30743341!1
+X-Originating-IP: [91.189.89.112]
+X-SpamReason: No, hits=0.0 required=7.0 tests=
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 18321 invoked from network); 17 Oct 2012 13:10:59 -0000
+Received: from youngberry.canonical.com (HELO youngberry.canonical.com)
+       (91.189.89.112) by server-4.tower-182.messagelabs.com with SMTP;
+       17 Oct 2012 13:10:59 -0000
+Received: from p5b2e42c0.dip.t-dialin.net ([91.46.66.192] helo=canonical.com)
+       by youngberry.canonical.com with esmtpsa
+       (TLS1.0:DHE_RSA_AES_128_CBC_SHA1:16) (Exim 4.71)
+       (envelope-from <stefan.bader@canonical.com>)
+       id 1TOTOk-0007hW-3S; Wed, 17 Oct 2012 13:10:58 +0000
+From: Stefan Bader <stefan.bader@canonical.com>
+To: xen-devel@lists.xen.org
+Date: Wed, 17 Oct 2012 15:10:56 +0200
+Message-Id: <1350479456-4007-1-git-send-email-stefan.bader@canonical.com>
+X-Mailer: git-send-email 1.7.9.5
+Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+MIME-Version: 1.0
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.6 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: [Xen-devel] Xen PVM: Strange lockups when running PostgreSQL load
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+I am currently looking at a bug report[1] which is happening when
+a Xen PVM guest with multiple VCPUs is running a high IO database
+load (a test script is available in the bug report).
+
+In experimenting it seems that this happens (or is getting more
+likely) when the number of VCPUs is 8 or higher (though I have
+not tried 6, only 2 and 4), having autogroup enabled seems to
+make it more likely, too (at some point thought it would actually
+prevent it but we were wrong) and pv spinlocks enabled.
+It has happened with older (3.4.3) and newer (4.1.2) versions of
+Xen as a host and with 3.2 and 3.5 kernels as guests.
+
+The pv spinlock assumption I will try to get re-verified by asking
+to reproduce under a real load with a kernel that just disables
+that. However, the dumps I am looking at really do look odd there.
+
+The first dump I looked at had the spinlock of runqueue[0] being
+placed into the per-cpu lock_spinners variable for cpu#0 and
+cpu#7 (doing my tests with 8 VCPUs). So apparently both cpus were
+waiting on the slow path for it to become free. Though actually
+it was free! Now, here is one issue I have in understanding the
+dump: the back traces produced in crash are in the normal form
+not showing any cpu in the poll_irq HV call. Only when using
+the form that uses the last known stack location and displays
+all text symols found will get close for cpu#7. cpu#0 still does
+not seem to be anywhere close. This could be a problem with crash,
+or with the way PVM works, I am not sure.
+
+Anyway, from what I could take from that situation, it seemed that
+cpu#1 (that one had soft lockup warnings in the log) seemed to try
+to do a wake_up on the task that just seemed to have done an io
+schedule on cpu#7 (but the waitqueue_head spinlock is currently
+locked). cpu#7 tries to get the runqueue[0] spinlock to do an idle
+migration (though the lock currently is free). So I guessed that
+maybe cpu#0 was just woken for the free lock but has not grabbed
+it yet.
+
+>From there I wondered whether something that acquires a spinlock
+usually more than the quick path timeout (and this causes new
+lockers to go into the slow path), could cause a stall on a high
+numbered cpu when the lock is contented (as the search and
+signalling is only done for the first waiter starting from 0).
+That lead to below patch. The good thing about it, it does not
+break things immediately, the bad thing, it does not help with
+the problem. :/
+
+The interesting thing when looking at a second dump, taken with
+a testkernel using the patch below, was that again 2 cpus seemed
+to spin slow on a lock that was free in the dump. And again at
+least one did not seem to be doing anything spinlock related
+(anymore?).
+One other detail (but that could be just incidence as well) was
+that in unmodified kernel I usually would end up with soft
+lockup messages, with the patched kernel, that was a stall
+detected by rcu_bh (0 and 1 stalled, detected by 3).
+
+Now I am a bit confused and wonder about some basic things:
+1. When a cpu goes into the slow lock path and into the poll_irq,
+   shouldn't I expect this one to be in hypercall_page in the
+   dump?
+2. When does the whole handling for interrupted spinlock wait
+   apply? I assume only for a spinlock taken without irqs
+   disabled and then trying to acquire another one in an
+   interrupt handler. Is that correct?
+3. Not really related but I just stumbled over it:
+   In xen_spin_trylock: "asm("xchgb %b0,%1"...)
+   What does the "b" part of %b0 do? I thought xchgb already
+   would say it is a byte value...
+
+But putting aside those questions, the fact that two times
+there was two cpus waiting on the same lock which from the
+lock count (=0) was free seems a bit too much of a coincidence.
+Oh and the spinners count in the lock was 2 as one would
+expect.
+
+struct rq {
+  lock = {
+    raw_lock = {
+      {
+        head_tail = 512, 
+        tickets = {
+          head = 0 '\000', 
+          tail = 2 '\002'
+        }
+      }
+    }
+  }, 
+  nr_running = 1,
+  ...
+}
+
+I really don't know how this happens. Especially cpu#0 seems at
+least past the wakeup and should have removed itself from the
+spinners list...
+-Stefan
+
+[1] http://bugs.launchpad.net/bugs/1011792
+
+>From 635a4e101ccbc9a324c8000f7e264ed4e646592c Mon Sep 17 00:00:00 2001
+From: Stefan Bader <stefan.bader@canonical.com>
+Date: Tue, 16 Oct 2012 17:46:09 +0200
+Subject: [PATCH] xen/spinlocks: Make wakeup fairer
+
+Instead of sending the IPI signalling the free lock to the first
+online CPU found waiting for it, start the search from the CPU
+that had the lock last.
+
+Signed-off-by: Stefan Bader <stefan.bader@canonical.com>
+---
+ arch/x86/xen/spinlock.c |   22 ++++++++++++++--------
+ 1 file changed, 14 insertions(+), 8 deletions(-)
+
+diff --git a/arch/x86/xen/spinlock.c b/arch/x86/xen/spinlock.c
+index d69cc6c..8b86efb 100644
+--- a/arch/x86/xen/spinlock.c
++++ b/arch/x86/xen/spinlock.c
+@@ -320,17 +320,23 @@ static void xen_spin_lock_flags(struct arch_spinlock *lock, unsigned long flags)
+ static noinline void xen_spin_unlock_slow(struct xen_spinlock *xl)
+ {
+       int cpu;
++      int this_cpu = smp_processor_id();
+       ADD_STATS(released_slow, 1);
+-      for_each_online_cpu(cpu) {
+-              /* XXX should mix up next cpu selection */
+-              if (per_cpu(lock_spinners, cpu) == xl) {
+-                      ADD_STATS(released_slow_kicked, 1);
+-                      xen_send_IPI_one(cpu, XEN_SPIN_UNLOCK_VECTOR);
+-                      break;
+-              }
+-      }
++      cpu = cpumask_next(this_cpu, cpu_online_mask);
++      do {
++              if (cpu < nr_cpu_ids) {
++                      if (per_cpu(lock_spinners, cpu) == xl) {
++                              ADD_STATS(released_slow_kicked, 1);
++                              xen_send_IPI_one(cpu, XEN_SPIN_UNLOCK_VECTOR);
++                              break;
++                      }
++              } else
++                      cpu = -1;
++
++              cpu = cpumask_next(cpu, cpu_online_mask);
++      } while (cpu != this_cpu);
+ }
+ static void xen_spin_unlock(struct arch_spinlock *lock)
+-- 
+1.7.9.5
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1350482118.2460.74.camel@zakaz.uk.xensource.com> b/config/examples/test/corpus/<1350482118.2460.74.camel@zakaz.uk.xensource.com>
new file mode 100644 (file)
index 0000000..d11c3cb
--- /dev/null
@@ -0,0 +1,114 @@
+From xen-devel-bounces@lists.xen.org Wed Oct 17 14:59:08 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 17 Oct 2012 14:59:08 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TOU9G-0003KB-Vp
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 17 Oct 2012 14:59:08 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TOU5k-0003oK-Dt; Wed, 17 Oct 2012 13:55:24 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1TOU5i-0003nv-HC
+       for xen-devel@lists.xen.org; Wed, 17 Oct 2012 13:55:22 +0000
+Received: from [85.158.137.99:40070] by server-15.bemta-3.messagelabs.com id
+       19/76-10261-9C8BE705; Wed, 17 Oct 2012 13:55:21 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-11.tower-217.messagelabs.com!1350482120!20733118!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTQ2NDQ=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 18718 invoked from network); 17 Oct 2012 13:55:20 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-11.tower-217.messagelabs.com with RC4-SHA encrypted SMTP;
+       17 Oct 2012 13:55:20 -0000
+X-IronPort-AV: E=Sophos;i="4.80,600,1344211200"; d="scan'208";a="15227744"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       17 Oct 2012 13:55:20 +0000
+Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.279.1;
+       Wed, 17 Oct 2012 14:55:20 +0100
+Message-ID: <1350482118.2460.74.camel@zakaz.uk.xensource.com>
+From: Ian Campbell <Ian.Campbell@citrix.com>
+To: Andrew Cooper <andrew.cooper3@citrix.com>
+Date: Wed, 17 Oct 2012 14:55:18 +0100
+In-Reply-To: <507EB27D.8050308@citrix.com>
+References: <1350479456-4007-1-git-send-email-stefan.bader@canonical.com>
+       <507EB27D.8050308@citrix.com>
+Organization: Citrix Systems, Inc.
+X-Mailer: Evolution 3.4.3-1 
+MIME-Version: 1.0
+Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
+       "stefan.bader@canonical.com" <stefan.bader@canonical.com>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.6 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] Xen PVM: Strange lockups when running PostgreSQL
+ load
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Wed, 2012-10-17 at 14:28 +0100, Andrew Cooper wrote:
+> In our case, certain processes were locking up, and it turned out that
+> the kernel was issuing SCHOP_poll hypercalls (same the stack trace on
+> your launchpad ticket) on its own spinlock IPI event channel
+> (understandable, as its a spinlock), but with the event channel
+> masked, so it would never wake up from the poll. 
+
+I think (but you might want to check) that SCHEDOP_poll works (or is
+supposed to work!) regardless of whether the specific evtchn you ask for
+is masked or not.
+
+The Linux PV spinlock implementation takes advantage of this because it
+never wants to take a real interrupt from the spinlock poller evtchn.
+
+The IRQ handler for the spinlock evtchn in Linux is:
+        static irqreturn_t dummy_handler(int irq, void *dev_id)
+        {
+                BUG();
+                return IRQ_HANDLED;
+        }
+        
+and right after we register it:
+                disable_irq(irq); /* make sure it's never delivered */
+
+The is no enable -- ignoring bugs of which there have been couple of
+instances, but those trigger the BUG() so are pretty obvious.
+
+Ian.
+
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1350546483.28188.25.camel@dagon.hellion.org.uk> b/config/examples/test/corpus/<1350546483.28188.25.camel@dagon.hellion.org.uk>
new file mode 100644 (file)
index 0000000..e510f58
--- /dev/null
@@ -0,0 +1,130 @@
+From xen-devel-bounces@lists.xen.org Thu Oct 18 08:51:37 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 18 Oct 2012 08:51:37 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TOktD-0002jb-87
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 18 Oct 2012 08:51:37 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TOkpr-0002tX-RV; Thu, 18 Oct 2012 07:48:07 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Campbell@citrix.com>) id 1TOkpq-0002tP-4i
+       for xen-devel@lists.xen.org; Thu, 18 Oct 2012 07:48:06 +0000
+Received: from [85.158.137.99:42817] by server-16.bemta-3.messagelabs.com id
+       3C/A8-16565-534BF705; Thu, 18 Oct 2012 07:48:05 +0000
+X-Env-Sender: Ian.Campbell@citrix.com
+X-Msg-Ref: server-16.tower-217.messagelabs.com!1350546484!22036927!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTQ3NzU=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 6565 invoked from network); 18 Oct 2012 07:48:04 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-16.tower-217.messagelabs.com with RC4-SHA encrypted SMTP;
+       18 Oct 2012 07:48:04 -0000
+X-IronPort-AV: E=Sophos;i="4.80,606,1344211200"; d="scan'208";a="15245767"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       18 Oct 2012 07:48:04 +0000
+Received: from [127.0.0.1] (10.80.16.67) by smtprelay.citrix.com
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.279.1;
+       Thu, 18 Oct 2012 08:48:04 +0100
+Message-ID: <1350546483.28188.25.camel@dagon.hellion.org.uk>
+From: Ian Campbell <Ian.Campbell@citrix.com>
+To: Stefan Bader <stefan.bader@canonical.com>
+Date: Thu, 18 Oct 2012 08:48:03 +0100
+In-Reply-To: <507FB1E1.8080700@canonical.com>
+References: <1350479456-4007-1-git-send-email-stefan.bader@canonical.com>
+       <507EB27D.8050308@citrix.com>
+       <1350482118.2460.74.camel@zakaz.uk.xensource.com>
+       <507ECD06.2050407@canonical.com> <507ED038.8000806@citrix.com>
+       <507FC51102000078000A235E@nat28.tlf.novell.com>
+       <507FC71502000078000A236C@nat28.tlf.novell.com>
+       <507FB1E1.8080700@canonical.com>
+Organization: Citrix Systems, Inc.
+X-Mailer: Evolution 3.4.3-1 
+MIME-Version: 1.0
+Cc: Andrew Cooper <Andrew.Cooper3@citrix.com>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
+       Jan Beulich <JBeulich@suse.com>,
+       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.6 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] Xen PVM: Strange lockups when running PostgreSQL
+ load
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Thu, 2012-10-18 at 08:38 +0100, Stefan Bader wrote:
+> On 18.10.2012 09:08, Jan Beulich wrote:
+> >>>> On 18.10.12 at 09:00, "Jan Beulich" <JBeulich@suse.com> wrote:
+> >>>>> On 17.10.12 at 17:35, Andrew Cooper <andrew.cooper3@citrix.com> wrote:
+> >>> In each case, the event channels are masked (no surprise given the
+> >>> conversation so far on this thread), and have no pending events. 
+> >>> Therefore, I believe we are looking at the same bug.
+> >>
+> >> That seems very unlikely (albeit not impossible) to me, given that
+> >> the non-pvops kernel uses ticket locks while the pvops one doesn't.
+> > 
+> > And in fact we had a similar problem with our original ticket lock
+> > implementation, exposed by an open coded lock in the scheduler's
+> > run queue management. But that was really ticket lock specific,
+> > in that the fact that a CPU could passively become the owner of
+> > a lock while polling - that's impossible with pvops' byte locks afaict.
+> 
+> One of the trains of thought I had was whether it could happen that a cpu is in
+> polling and the task gets moved. But I don't think it can happen as the
+> hypercall unlikely is a place where any schedule happens (preempt is none). And
+> it would be much more common...
+> 
+> One detail which I hope someone can fill in is the whole "interrupted spinlock"
+> thing. Saving the last lock pointer stored on the per-cpu lock_spinners and so
+> on. Is that really only for spinlocks taken without interrupts disabled or do I
+> miss something there?
+
+spinning_lock() returns the old lock which the caller is expected to
+remember and replace via unspinning_lock() -- it effectively implements
+a stack of locks which are being waited on. xen_spin_lock_slow (the only
+caller0 appears to do this correctly from a brief inspection.
+
+Is there any chance this is just a simple AB-BA or similar type
+deadlock? Do we have data which suggests all vCPUs are waiting on the
+same lock or just that they are waiting on some lock? I suppose lockdep
+(which I think you mentioned before?) would have caught this, unless pv
+locks somehow confound it?
+
+Ian.
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1377403931.20120901011625@eikelenboom.it> b/config/examples/test/corpus/<1377403931.20120901011625@eikelenboom.it>
new file mode 100644 (file)
index 0000000..94f4f4d
--- /dev/null
@@ -0,0 +1,174 @@
+From xen-devel-bounces@lists.xen.org Sat Sep 01 00:21:09 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Sat, 01 Sep 2012 00:21:09 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T7aWP-0000AM-5e
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Sat, 01 Sep 2012 00:21:09 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T7aS6-00006D-W4; Fri, 31 Aug 2012 23:16:38 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <linux@eikelenboom.it>) id 1T7aS4-000068-Ci
+       for xen-devel@lists.xen.org; Fri, 31 Aug 2012 23:16:36 +0000
+Received: from [85.158.143.35:9958] by server-1.bemta-4.messagelabs.com id
+       CD/B2-12504-3D541405; Fri, 31 Aug 2012 23:16:35 +0000
+X-Env-Sender: linux@eikelenboom.it
+X-Msg-Ref: server-6.tower-21.messagelabs.com!1346454991!16131778!1
+X-Originating-IP: [188.40.164.121]
+X-SpamReason: No, hits=0.0 required=7.0 tests=
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 12937 invoked from network); 31 Aug 2012 23:16:31 -0000
+Received: from static.121.164.40.188.clients.your-server.de (HELO
+       smtp.eikelenboom.it) (188.40.164.121)
+       by server-6.tower-21.messagelabs.com with AES256-SHA encrypted SMTP;
+       31 Aug 2012 23:16:31 -0000
+Received: from 26-69-ftth.onsneteindhoven.nl ([88.159.69.26]:51342
+       helo=[172.16.1.20])
+       by smtp.eikelenboom.it with esmtpsa (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72) (envelope-from <linux@eikelenboom.it>)
+       id 1T7aOt-0000Rc-90; Sat, 01 Sep 2012 01:13:19 +0200
+Date: Sat, 1 Sep 2012 01:16:25 +0200
+From: Sander Eikelenboom <linux@eikelenboom.it>
+Organization: Eikelenboom IT services
+X-Priority: 3 (Normal)
+Message-ID: <1377403931.20120901011625@eikelenboom.it>
+To: Santosh Jodh <Santosh.Jodh@citrix.com>
+In-Reply-To: <7914B38A4445B34AA16EB9F1352942F1012F0F6F4B01@SJCPMAILBOX01.citrite.net>
+References: <647712821.20120831234512@eikelenboom.it>
+       <7914B38A4445B34AA16EB9F1352942F1012F0F6F4AE2@SJCPMAILBOX01.citrite.net>
+       <723041396.20120901004249@eikelenboom.it>
+       <7914B38A4445B34AA16EB9F1352942F1012F0F6F4B01@SJCPMAILBOX01.citrite.net>
+MIME-Version: 1.0
+Cc: "wei.wang2@amd.com" <wei.wang2@amd.com>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] Using debug-key 'o:  Dump IOMMU p2m table,
+       locks up machine
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+
+Saturday, September 1, 2012, 12:57:45 AM, you wrote:
+
+> The dump should complete - would be curious to see how long it takes on serial console. What baudrate is the console running at?
+
+I think for ages, this part seems only to cover a bit of the first of 3 pv guests which have devices passed through.
+38400
+
+And i wonder if the information is very valuable, gfn == mfn for every line ... at an increment of 1 ...
+Perhaps a uhmmm more compact way of getting the interesting data would be handy ?
+Or is this the intended output ?
+
+> The code does allow processing of pending softirqs quite frequently. I am not sure why you are still seeing SATA errors.
+
+The machine is completely unresponsive in every way.
+
+And using it with "xl debug-keys o" is never going to work i guess, since the information flood is far larger than "xl dmesg" keeps ?
+
+
+
+>> -----Original Message-----
+>> From: Sander Eikelenboom [mailto:linux@eikelenboom.it]
+>> Sent: Friday, August 31, 2012 3:43 PM
+>> To: Santosh Jodh
+>> Cc: wei.wang2@amd.com; xen-devel@lists.xen.org
+>> Subject: Re: Using debug-key 'o: Dump IOMMU p2m table, locks up machine
+>> 
+>> 
+>> Saturday, September 1, 2012, 12:24:32 AM, you wrote:
+>> 
+>> > Depending on how many VMs you have and the size of the IOMMU p2m
+>> table, it can take a while. It should not be infinite though.
+>> 
+>> > How many VMs do you have running?
+>> 
+>> 15
+>> 
+>> > Can you please send the serial output when you press 'o'?
+>> 
+>> Attached, to the end you will see the s-ata errors coming through while the
+>> dump still runs.
+>> This is not a complete dump, only a few minutes after which i did a hard
+>> reset.
+>> 
+>> > Santosh
+>> 
+>> >> -----Original Message-----
+>> >> From: Sander Eikelenboom [mailto:linux@eikelenboom.it]
+>> >> Sent: Friday, August 31, 2012 2:45 PM
+>> >> To: Santosh Jodh; wei.wang2@amd.com
+>> >> Cc: xen-devel@lists.xen.org
+>> >> Subject: Using debug-key 'o: Dump IOMMU p2m table, locks up machine
+>> >>
+>> >>
+>> >> I was trying to use the 'o' debug key to make a bug report about an "AMD-
+>> Vi:
+>> >> IO_PAGE_FAULT".
+>> >>
+>> >> The result:
+>> >> - When using "xl debug-keys o", the machine seems in a infinite loop,
+>> >> can hardly login, eventually resulting in a kernel RCU stall and complete
+>> lockup.
+>> >> - When using serial console: I get a infinite stream of "gfn:  mfn: "
+>> >> lines, mean while on the normal console, S-ATA devices are starting to
+>> give errors.
+>> >>
+>> >> So either option trashes the machine, other debug-keys work fine.
+>> >>
+>> >> Machine has a 890-fx chipset and AMD phenom x6 proc.
+>> >>
+>> >> xl dmesg with bootup and output from some other debug-keys is
+>> attached.
+>> >>
+>> >> --
+>> >>
+>> >> Sander
+>> 
+>> 
+>> 
+>> 
+>> --
+>> Best regards,
+>>  Sander                            mailto:linux@eikelenboom.it
+
+
+
+
+-- 
+Best regards,
+ Sander                            mailto:linux@eikelenboom.it
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1576173912.20120904085238@eikelenboom.it> b/config/examples/test/corpus/<1576173912.20120904085238@eikelenboom.it>
new file mode 100644 (file)
index 0000000..29f4ce3
--- /dev/null
@@ -0,0 +1,175 @@
+From xen-devel-bounces@lists.xen.org Tue Sep 04 07:57:44 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Tue, 04 Sep 2012 07:57:44 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T8n4s-0001DV-1T
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 04 Sep 2012 07:57:44 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T8n0A-0000qD-Le; Tue, 04 Sep 2012 06:52:46 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <linux@eikelenboom.it>) id 1T8n09-0000q8-2z
+       for xen-devel@lists.xen.org; Tue, 04 Sep 2012 06:52:45 +0000
+Received: from [85.158.138.51:42317] by server-3.bemta-3.messagelabs.com id
+       FC/D3-21322-C35A5405; Tue, 04 Sep 2012 06:52:44 +0000
+X-Env-Sender: linux@eikelenboom.it
+X-Msg-Ref: server-16.tower-174.messagelabs.com!1346741563!28359568!1
+X-Originating-IP: [188.40.164.121]
+X-SpamReason: No, hits=0.0 required=7.0 tests=
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 16490 invoked from network); 4 Sep 2012 06:52:43 -0000
+Received: from static.121.164.40.188.clients.your-server.de (HELO
+       smtp.eikelenboom.it) (188.40.164.121)
+       by server-16.tower-174.messagelabs.com with AES256-SHA encrypted SMTP;
+       4 Sep 2012 06:52:43 -0000
+Received: from 26-69-ftth.onsneteindhoven.nl ([88.159.69.26]:49204
+       helo=[172.16.1.20])
+       by smtp.eikelenboom.it with esmtpsa (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72) (envelope-from <linux@eikelenboom.it>)
+       id 1T8mx1-0001w7-PM; Tue, 04 Sep 2012 08:49:31 +0200
+Date: Tue, 4 Sep 2012 08:52:38 +0200
+From: Sander Eikelenboom <linux@eikelenboom.it>
+Organization: Eikelenboom IT services
+X-Priority: 3 (Normal)
+Message-ID: <1576173912.20120904085238@eikelenboom.it>
+To: "Jan Beulich" <JBeulich@suse.com>
+In-Reply-To: <5045BD5C02000078000985A7@nat28.tlf.novell.com>
+References: <647712821.20120831234512@eikelenboom.it>
+       <CC68CC67.3D984%keir.xen@gmail.com>
+       <5045BD5C02000078000985A7@nat28.tlf.novell.com>
+MIME-Version: 1.0
+Cc: George Dunlap <George.Dunlap@eu.citrix.com>, wei.wang2@amd.com,
+       Keir Fraser <keir.xen@gmail.com>, Santosh Jodh <santosh.jodh@citrix.com>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] Using debug-key 'o:  Dump IOMMU p2m table,
+       locks up machine
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+Hello Jan,
+
+Tuesday, September 4, 2012, 8:35:40 AM, you wrote:
+
+>>>> On 02.09.12 at 09:42, Keir Fraser <keir.xen@gmail.com> wrote:
+>> On 31/08/2012 22:45, "Sander Eikelenboom" <linux@eikelenboom.it> wrote:
+>>> - When using serial console: I get a infinite stream of "gfn:  mfn: " lines,
+>>> mean while on the normal console, S-ATA devices are starting to give errors.
+>> 
+>> In this case the handler must be running in tasklet context. Not sure why
+>> SATA interrupts would be affected as hardirq and softirq work will still be
+>> carried out during execution of the keyhandler (the handler voluntarily
+>> preempts itself for softirq work).
+>> 
+>> Would need more investigation. :)
+
+> Isn't that because tasklets (i.e. idle vCPU-s with tasklets active)
+> get preferred in the schedulers? Some compensation might be
+> needed for the penalized vCPU, at least if that one is pinned
+> (not sure whether load balancing would be able to steal the
+> head of the run queue from a remote CPU). Sander - are you
+> by chance pinning Dom0 vCPU-s? And how many of them does
+> your Dom0 have?
+
+
+Yes i do, could perhaps be the pinning of CPU0 ?
+
+serveerstertje:~# xl vcpu-list
+Name                                ID  VCPU   CPU State   Time(s) CPU Affinity
+Domain-0                             0     0    0   r--    7711.7  0
+Domain-0                             0     1    2   -b-    4048.1  2-5
+Domain-0                             0     2    3   -b-    1129.1  2-5
+Domain-0                             0     3    4   r--    1229.9  2-5
+Domain-0                             0     4    5   -b-     885.5  2-5
+Domain-0                             0     5    5   -b-    1192.5  2-5
+database                             1     0    2   -b-    1063.6  2-5
+database                             1     1    2   -b-     496.2  2-5
+mail                                 2     0    5   -b-      42.3  2-5
+samba                                3     0    4   -b-     178.4  2-5
+webproxy                             4     0    2   -b-      49.9  2-5
+www                                  5     0    4   -b-     104.1  2-5
+davical                              6     0    2   -b-     119.6  2-5
+backup                               7     0    5   -b-    1052.8  2-5
+git                                  8     0    4   -b-      55.8  2-5
+zabbix                               9     0    4   -b-     426.0  2-5
+gallery3                            10     0    4   -b-      47.6  2-5
+media                               11     0    2   -b-      40.9  2-5
+torrentflux                         12     0    4   -b-      56.0  2-5
+vpn                                 13     0    2   -b-     170.8  2-5
+security                            14     0    2   -b-    2246.0  1-5
+security                            14     1    4   -b-    1778.4  1-5
+security                            14     2    1   -b-    1659.7  1-5
+security                            14     3    5   -b-    1841.3  1-5
+security                            14     4    3   -b-     981.1  1-5
+creabox_hvm                         15     0    5   -b-     196.5  2-5
+creabox_hvm                         15     1    4   -b-     255.8  2-5
+creaexp                             16     0    2   -b-     297.8  2-5
+
+serveerstertje:~# xl sched-credit
+libxl: error: libxl.c:596:cpupool_info: failed to get info for cpupool1
+: No such file or directory
+Cpupool Pool-0: tslice=30ms ratelimit=1000us
+Name                                ID Weight  Cap
+Domain-0                             0   1024    0
+database                             1    256    0
+mail                                 2    256    0
+samba                                3    256    0
+webproxy                             4    256    0
+www                                  5    256    0
+davical                              6    256    0
+backup                               7    256    0
+git                                  8    256    0
+zabbix                               9    256    0
+gallery3                            10    256    0
+media                               11    256    0
+torrentflux                         12    256    0
+vpn                                 13    256    0
+security                            14    768    0
+creabox_hvm                         15    256    0
+creaexp                             16    256    0
+
+
+> Jan
+
+
+
+
+
+-- 
+Best regards,
+ Sander                            mailto:linux@eikelenboom.it
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1894818567.20120904102024@eikelenboom.it> b/config/examples/test/corpus/<1894818567.20120904102024@eikelenboom.it>
new file mode 100644 (file)
index 0000000..66e5503
--- /dev/null
@@ -0,0 +1,130 @@
+From xen-devel-bounces@lists.xen.org Tue Sep 04 09:24:42 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Tue, 04 Sep 2012 09:24:42 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T8oR1-0001UG-Hg
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 04 Sep 2012 09:24:41 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T8oNL-000538-8B; Tue, 04 Sep 2012 08:20:47 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <linux@eikelenboom.it>) id 1T8oNJ-00052y-Os
+       for xen-devel@lists.xen.org; Tue, 04 Sep 2012 08:20:45 +0000
+Received: from [85.158.138.51:63317] by server-11.bemta-3.messagelabs.com id
+       3E/4C-30250-CD9B5405; Tue, 04 Sep 2012 08:20:44 +0000
+X-Env-Sender: linux@eikelenboom.it
+X-Msg-Ref: server-8.tower-174.messagelabs.com!1346746826!28428572!1
+X-Originating-IP: [188.40.164.121]
+X-SpamReason: No, hits=0.0 required=7.0 tests=
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 30153 invoked from network); 4 Sep 2012 08:20:26 -0000
+Received: from static.121.164.40.188.clients.your-server.de (HELO
+       smtp.eikelenboom.it) (188.40.164.121)
+       by server-8.tower-174.messagelabs.com with AES256-SHA encrypted SMTP;
+       4 Sep 2012 08:20:26 -0000
+Received: from 26-69-ftth.onsneteindhoven.nl ([88.159.69.26]:49732
+       helo=[172.16.1.20])
+       by smtp.eikelenboom.it with esmtpsa (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72) (envelope-from <linux@eikelenboom.it>)
+       id 1T8oJw-0002S1-Vp; Tue, 04 Sep 2012 10:17:17 +0200
+Date: Tue, 4 Sep 2012 10:20:24 +0200
+From: Sander Eikelenboom <linux@eikelenboom.it>
+Organization: Eikelenboom IT services
+X-Priority: 3 (Normal)
+Message-ID: <1894818567.20120904102024@eikelenboom.it>
+To: Keir Fraser <keir.xen@gmail.com>
+In-Reply-To: <CC6B764E.3DACF%keir.xen@gmail.com>
+References: <CC6B74A7.3DAC1%keir.xen@gmail.com>
+       <CC6B764E.3DACF%keir.xen@gmail.com>
+MIME-Version: 1.0
+Cc: George Dunlap <George.Dunlap@eu.citrix.com>, wei.wang2@amd.com,
+       Santosh Jodh <santosh.jodh@citrix.com>, Jan Beulich <JBeulich@suse.com>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] Using debug-key 'o:  Dump IOMMU p2m table,
+       locks up machine
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+Hello Keir,
+
+Tuesday, September 4, 2012, 10:11:42 AM, you wrote:
+
+> On 04/09/2012 09:04, "Keir Fraser" <keir.xen@gmail.com> wrote:
+
+>> On 04/09/2012 08:55, "Jan Beulich" <JBeulich@suse.com> wrote:
+>> 
+>>>> Jan, Yes you could be right, if Sander is pinning CPUs. Anyway, I wasn't
+>>>> going to expend too much brain power on this situation. The case of spending
+>>>> a few minutes in one key handler is not one I think is particularly sane.
+>>> 
+>>> Which imo would call for reverting the patch. But then again, other
+>>> key handlers can easily take pretty long too (particularly on large
+>>> systems, albeit it is clear that the one here is particularly bad), and
+>>> declaring all of them pretty much useless probably isn't the best
+>>> choice (as then we could as well rip them all out).
+>>> 
+>>> Bottom line - _I_ think we should try to do something about this.
+>>> An apparent option would be to have low priority tasklets (for
+>>> just this purpose, as all others we certainly want to take priority),
+>>> if that can reasonably be integrated with the schedulers.
+>> 
+>> Do you expect to be able to use the log-running key handlers and still need
+>> a running system afterwards (rather than using them as a final
+>> dump-everything when the system has already gone bad)? Then I suppose you
+>> would need something like this, with voluntary preemption in the key
+>> handlers. You then need to be able to recommence the keyhandlers where they
+>> left off, retaking locks, finding their place in lists, trees, etc, even
+>> when state of the system has significantly changed between preemption and
+>> resumption. Well, I'm sure it can be done, but can anyone be bothered.
+
+> My pragmatic take would be that: (a) Really long-running handlers that want
+> to dump every page mapping of every domain are pretty bloody stupid, and yes
+> we should consider if they are worthwhile at all; (b) moderately
+> long-running but useful handlers which nonetheless take a long time to dump
+> to Xen's console, I would consider a sysctl to allow dom0 to request dump
+> into a supplied memory buffer.
+
+Is it necessary for this case to let it be a key-handler for which one can't specify parameters to limit the output ?
+
+In this case both hypervisor and kernel are running fine, so a interface via say "xl debug" should be perfectly fine and providing parameters should be possible ?
+
+>>  -- Keir
+>> 
+>> 
+
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1925247026.20120903103325@eikelenboom.it> b/config/examples/test/corpus/<1925247026.20120903103325@eikelenboom.it>
new file mode 100644 (file)
index 0000000..065c025
--- /dev/null
@@ -0,0 +1,112 @@
+From xen-devel-bounces@lists.xen.org Mon Sep 03 09:38:21 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Mon, 03 Sep 2012 09:38:21 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T8SAk-0008Pl-Vr
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Mon, 03 Sep 2012 09:38:21 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T8S6G-0003UE-0t; Mon, 03 Sep 2012 08:33:40 +0000
+Received: from mail27.messagelabs.com ([193.109.254.147])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <linux@eikelenboom.it>) id 1T8S6D-0003U9-V5
+       for xen-devel@lists.xen.org; Mon, 03 Sep 2012 08:33:38 +0000
+X-Env-Sender: linux@eikelenboom.it
+X-Msg-Ref: server-14.tower-27.messagelabs.com!1346661208!2397617!1
+X-Originating-IP: [188.40.164.121]
+X-SpamReason: No, hits=0.0 required=7.0 tests=
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 890 invoked from network); 3 Sep 2012 08:33:29 -0000
+Received: from static.121.164.40.188.clients.your-server.de (HELO
+       smtp.eikelenboom.it) (188.40.164.121)
+       by server-14.tower-27.messagelabs.com with AES256-SHA encrypted SMTP;
+       3 Sep 2012 08:33:29 -0000
+Received: from 26-69-ftth.onsneteindhoven.nl ([88.159.69.26]:53493
+       helo=[172.16.1.20])
+       by smtp.eikelenboom.it with esmtpsa (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72) (envelope-from <linux@eikelenboom.it>)
+       id 1T8S2z-0001Dn-Rj; Mon, 03 Sep 2012 10:30:17 +0200
+Date: Mon, 3 Sep 2012 10:33:25 +0200
+From: Sander Eikelenboom <linux@eikelenboom.it>
+Organization: Eikelenboom IT services
+X-Priority: 3 (Normal)
+Message-ID: <1925247026.20120903103325@eikelenboom.it>
+To: "Jan Beulich" <JBeulich@suse.com>
+In-Reply-To: <5044849002000078000982EA@nat28.tlf.novell.com>
+References: <7914B38A4445B34AA16EB9F1352942F1012F0F6F4B98@SJCPMAILBOX01.citrite.net>
+       <CC681CDD.3D966%keir.xen@gmail.com>
+       <40501859.20120902104331@eikelenboom.it>
+       <5044849002000078000982EA@nat28.tlf.novell.com>
+MIME-Version: 1.0
+Cc: "wei.wang2@amd.com" <wei.wang2@amd.com>, Keir Fraser <keir.xen@gmail.com>,
+       Santosh Jodh <Santosh.Jodh@citrix.com>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] Using debug-key 'o:  Dump IOMMU p2m table,
+       locks up machine
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+Hello Jan,
+
+Monday, September 3, 2012, 10:21:04 AM, you wrote:
+
+>>>> On 02.09.12 at 10:43, Sander Eikelenboom <linux@eikelenboom.it> wrote:
+>> I have attached new output from xl dmesg, this time with iommu=debug on (the 
+>> option changed from 4.1 to 4.2).
+
+> This one
+
+>>(XEN) [2012-09-02 00:55:02] traps.c:3156: GPF (0060): ffff82c48015c9ee -> ffff82c480224b13
+
+> also worries me. While Xen gracefully recovers from it, these
+> messages still generally indicate a problem somewhere. Could
+> you resolve the addresses to file:line tuples? And, assuming
+> this happens in the context of doing something on behalf of
+> the guest in the context of a guest vCPU, could you also
+> check what guest side action triggers this (e.g. by adding a
+> call to show_execution_state() alongside the printing of the
+> message)?
+
+If you could elaborate a bit abouw HOW :-)
+
+>From what i recall i also had these since some time on xen 4.1 too. Probably a kernel thing, in about 3.5 or 3.6 is my estimation, will see if i can find out some more today or tomorrow.
+
+
+> Jan
+
+
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<1E8F546AD8E64BF1B2D68D24F3BD4050@LarryE6400> b/config/examples/test/corpus/<1E8F546AD8E64BF1B2D68D24F3BD4050@LarryE6400>
new file mode 100644 (file)
index 0000000..f4dc8d5
--- /dev/null
@@ -0,0 +1,122 @@
+From xen-devel-bounces@lists.xen.org Sat Jul 21 03:02:53 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Sat, 21 Jul 2012 03:02:53 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SsP1v-0001kB-56
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Sat, 21 Jul 2012 03:02:53 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SsOxi-0002dT-VA; Sat, 21 Jul 2012 01:58:30 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <lmw@satx.rr.com>) id 1SsOxh-0002dO-3U
+       for xen-devel@lists.xen.org; Sat, 21 Jul 2012 01:58:29 +0000
+Received: from [85.158.143.35:57113] by server-3.bemta-4.messagelabs.com id
+       A9/E0-01511-4CC0A005; Sat, 21 Jul 2012 01:58:28 +0000
+X-Env-Sender: lmw@satx.rr.com
+X-Msg-Ref: server-12.tower-21.messagelabs.com!1342835906!12994475!1
+X-Originating-IP: [75.180.132.120]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       QmFkIElQOiA3NS4xODAuMTMyLjEyMCA9PiA4NjAxMg==\n,sa_preprocessor: 
+       QmFkIElQOiA3NS4xODAuMTMyLjEyMCA9PiA4NjAxMg==\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.2; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 4418 invoked from network); 21 Jul 2012 01:58:26 -0000
+Received: from cdptpa-omtalb.mail.rr.com (HELO cdptpa-omtalb.mail.rr.com)
+       (75.180.132.120) by server-12.tower-21.messagelabs.com with SMTP;
+       21 Jul 2012 01:58:26 -0000
+X-Authority-Analysis: v=2.0 cv=Dp/UCRD+ c=1 sm=0 a=r1aGfrPin9q3IVjnGKu9DA==:17
+       a=mkDZTsCubmwA:10 a=YIV_H7EphM0A:10 a=05ChyHeVI94A:10
+       a=kj9zAlcOel0A:10 a=ayC55rCoAAAA:8 a=aIfeI5IIAAAA:8
+       a=mLnsDVdbAAAA:8 a=RwdhQdrsmUvhpGOCnt0A:9 a=CjuIK1q_8ugA:10
+       a=r1aGfrPin9q3IVjnGKu9DA==:117
+X-Cloudmark-Score: 0
+X-Originating-IP: 66.69.0.49
+Received: from [66.69.0.49] ([66.69.0.49:49980] helo=LarryE6400)
+       by cdptpa-oedge02.mail.rr.com (envelope-from <lmw@satx.rr.com>)
+       (ecelerity 2.2.3.46 r()) with ESMTP
+       id B3/23-13948-2CC0A005; Sat, 21 Jul 2012 01:58:26 +0000
+From: "Larry White" <lmw@satx.rr.com>
+To: "'James Harper'" <james.harper@bendigoit.com.au>, <xen-devel@lists.xen.org>
+References: <A8575D3216834DFCAA86F5B2B3546613@LarryE6400>
+       <6035A0D088A63A46850C3988ED045A4B299B8A95@BITCOM1.int.sbss.com.au>
+In-Reply-To: <6035A0D088A63A46850C3988ED045A4B299B8A95@BITCOM1.int.sbss.com.au>
+Date: Fri, 20 Jul 2012 20:58:20 -0500
+Message-ID: <1E8F546AD8E64BF1B2D68D24F3BD4050@LarryE6400>
+MIME-Version: 1.0
+X-Mailer: Microsoft Office Outlook 11
+X-MimeOLE: Produced By Microsoft MimeOLE V6.1.7601.17609
+Thread-Index: Ac1m2/yuJJyO+ROQQxKMLV1mGoHskAABhbjAAABDEwA=
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] XenStore as a data transfer path?
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+-----Original Message-----
+From: James Harper [mailto:james.harper@bendigoit.com.au] 
+Sent: Friday, July 20, 2012 8:44 PM
+To: Larry White; xen-devel@lists.xen.org
+Subject: RE: [Xen-devel] XenStore as a data transfer path?
+
+> 
+> Can the XenStore database be accessed by domU's?
+> 
+
+>>Yes. That is how the frontend/backend devices set up their communication
+>>channels.
+
+Are you saying that the actual data going back and forth gets put into the
+XenStore?  I thought that the XenStore was mostly used for configuration
+keyword values and such that the underlying drivers needed.
+
+> 
+> If so, could it be used to pass small amounts of data back and forth
+between
+> dom0 and domU's using XenStore key entries?  If this is possible, it would
+> seem that this could eliminate the need to create a "device" driver for a
+> simple communication path.
+> 
+
+>>Yes, for certain values of "small". Can you say more about the sort of
+>>data you would be passing? In particular the throughput and latency
+>>requirements?
+
+I would say that the small amount of data here per transfer would be around
+32 bytes in length with a latency of around 500ms or so.
+
+Larry
+
+
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<20120601170514.GD77921@ocelot.phlegethon.org> b/config/examples/test/corpus/<20120601170514.GD77921@ocelot.phlegethon.org>
new file mode 100644 (file)
index 0000000..8cc65ef
--- /dev/null
@@ -0,0 +1,137 @@
+From xen-devel-bounces@lists.xen.org Fri Jun 01 18:09:08 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 01 Jun 2012 18:09:08 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SaVLV-0005L1-J9
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 01 Jun 2012 18:09:08 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SaVHr-0007Gm-K6; Fri, 01 Jun 2012 17:05:19 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72) (envelope-from <tim@xen.org>)
+       id 1SaVHq-0007Gd-2E
+       for xen-devel@lists.xen.org; Fri, 01 Jun 2012 17:05:18 +0000
+Received: from [85.158.143.99:35799] by server-1.bemta-4.messagelabs.com id
+       52/8B-27869-D46F8CF4; Fri, 01 Jun 2012 17:05:17 +0000
+X-Env-Sender: tim@xen.org
+X-Msg-Ref: server-15.tower-216.messagelabs.com!1338570315!30943445!1
+X-Originating-IP: [81.29.64.94]
+X-SpamReason: No, hits=0.0 required=7.0 tests=
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 5391 invoked from network); 1 Jun 2012 17:05:16 -0000
+Received: from ocelot.phlegethon.org (HELO mail.phlegethon.org) (81.29.64.94)
+       by server-15.tower-216.messagelabs.com with DHE-RSA-AES256-SHA
+       encrypted SMTP; 1 Jun 2012 17:05:16 -0000
+Received: from tjd by mail.phlegethon.org with local (Exim 4.67 (FreeBSD))
+       (envelope-from <tim@xen.org>)
+       id 1SaVHm-000Ltg-3l; Fri, 01 Jun 2012 17:05:14 +0000
+Date: Fri, 1 Jun 2012 18:05:14 +0100
+From: Tim Deegan <tim@xen.org>
+To: Ian Campbell <ian.campbell@citrix.com>
+Message-ID: <20120601170514.GD77921@ocelot.phlegethon.org>
+References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
+       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+       <1338565207-2888-29-git-send-email-ian.campbell@citrix.com>
+Mime-Version: 1.0
+Content-Disposition: inline
+In-Reply-To: <1338565207-2888-29-git-send-email-ian.campbell@citrix.com>
+User-Agent: Mutt/1.4.2.1i
+Cc: xen-devel@lists.xen.org
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 29/38] arm: delay enabling data-cache until
+       paging enabled.
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+At 15:39 +0000 on 01 Jun (1338565198), Ian Campbell wrote:
+> With enough warnings enabled the model seemed to be complaining that pages
+> cached before paging was enabled had been mapped with to inconsistent sets of
+> attributes. I'm not convinced that isn't a model issue, nor am I convinced
+> this has really fixed anything, but it seems sensible enough.
+
+This might be what breaks secondary CPU bringup: pagetables built by CPU
+0 may not have been flushed all the way to RAM when CPU 1 comes up, and
+CPU 1 isn't participating in cache coherence protocols when it
+starts to need them.
+
+OTOH, if that's the case, it's surprising that CPU 1 passes the boot
+gate.  I'll look into it next week, x86/mm workload permitting. 
+
+Cheers,
+
+Tim.
+
+> Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+> ---
+>  xen/arch/arm/head.S |    9 +++++++--
+>  1 files changed, 7 insertions(+), 2 deletions(-)
+> 
+> diff --git a/xen/arch/arm/head.S b/xen/arch/arm/head.S
+> index 9a7714a..71197af 100644
+> --- a/xen/arch/arm/head.S
+> +++ b/xen/arch/arm/head.S
+> @@ -148,10 +148,11 @@ hyp:
+>       * Exceptions in LE ARM,
+>       * Low-latency IRQs disabled,
+>       * Write-implies-XN disabled (for now),
+> -     * I-cache and d-cache enabled,
+> +     * D-cache diabled (for now),
+> +     * I-cache enabled,
+>       * Alignment checking enabled,
+>       * MMU translation disabled (for now). */
+> -    ldr   r0, =(HSCTLR_BASE|SCTLR_A|SCTLR_C)
+> +    ldr   r0, =(HSCTLR_BASE|SCTLR_A)
+>      mcr   CP32(r0, HSCTLR)
+>  
+>      /* Write Xen's PT's paddr into the HTTBR */
+> @@ -217,6 +218,10 @@ pt_ready:
+>      mov   pc, r1                 /* Get a proper vaddr into PC */
+>  paging:
+>  
+> +    mrc   CP32(r0, HSCTLR)       /* Now enable data cache */
+> +    orr   r0, r0, #(SCTLR_C)
+> +    mcr   CP32(r0, HSCTLR)
+> +
+>  #ifdef EARLY_UART_ADDRESS
+>      /* Recover the UART address in the new address space. */
+>      lsl   r11, #11
+> -- 
+> 1.7.9.1
+> 
+> 
+> _______________________________________________
+> Xen-devel mailing list
+> Xen-devel@lists.xen.org
+> http://lists.xen.org/xen-devel
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<20120606181852.GB38649@ocelot.phlegethon.org> b/config/examples/test/corpus/<20120606181852.GB38649@ocelot.phlegethon.org>
new file mode 100644 (file)
index 0000000..673595f
--- /dev/null
@@ -0,0 +1,118 @@
+From xen-devel-bounces@lists.xen.org Wed Jun 06 19:23:10 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 06 Jun 2012 19:23:10 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1ScKsq-0004Ip-RV
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 06 Jun 2012 19:23:10 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1ScKou-0003hm-60; Wed, 06 Jun 2012 18:19:00 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72) (envelope-from <tim@xen.org>)
+       id 1ScKor-0003he-MQ
+       for xen-devel@lists.xen.org; Wed, 06 Jun 2012 18:18:57 +0000
+Received: from [85.158.139.83:48224] by server-12.bemta-5.messagelabs.com id
+       83/D7-18374-01F9FCF4; Wed, 06 Jun 2012 18:18:56 +0000
+X-Env-Sender: tim@xen.org
+X-Msg-Ref: server-8.tower-182.messagelabs.com!1339006735!18476786!1
+X-Originating-IP: [81.29.64.94]
+X-SpamReason: No, hits=0.0 required=7.0 tests=
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 5375 invoked from network); 6 Jun 2012 18:18:56 -0000
+Received: from ocelot.phlegethon.org (HELO mail.phlegethon.org) (81.29.64.94)
+       by server-8.tower-182.messagelabs.com with DHE-RSA-AES256-SHA
+       encrypted SMTP; 6 Jun 2012 18:18:56 -0000
+Received: from tjd by mail.phlegethon.org with local (Exim 4.67 (FreeBSD))
+       (envelope-from <tim@xen.org>)
+       id 1ScKom-000Fcb-Jr; Wed, 06 Jun 2012 18:18:52 +0000
+Date: Wed, 6 Jun 2012 19:18:52 +0100
+From: Tim Deegan <tim@xen.org>
+To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+Message-ID: <20120606181852.GB38649@ocelot.phlegethon.org>
+References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
+       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+       <1338565207-2888-25-git-send-email-ian.campbell@citrix.com>
+       <alpine.DEB.2.02.1206061846260.2415@kaball.uk.xensource.com>
+Mime-Version: 1.0
+Content-Disposition: inline
+In-Reply-To: <alpine.DEB.2.02.1206061846260.2415@kaball.uk.xensource.com>
+User-Agent: Mutt/1.4.2.1i
+Cc: Ian Campbell <ian.campbell@citrix.com>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 25/38] arm: remove old identity map of boot
+       paddr when we are done with it.
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+At 19:04 +0100 on 06 Jun (1339009473), Stefano Stabellini wrote:
+> On Fri, 1 Jun 2012, Ian Campbell wrote:
+> > Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+> > ---
+> >  xen/arch/arm/mm.c |    8 ++++++++
+> >  1 files changed, 8 insertions(+), 0 deletions(-)
+> > 
+> > diff --git a/xen/arch/arm/mm.c b/xen/arch/arm/mm.c
+> > index 160a4e9..ab52171 100644
+> > --- a/xen/arch/arm/mm.c
+> > +++ b/xen/arch/arm/mm.c
+> > @@ -214,6 +214,14 @@ void __init setup_pagetables(unsigned long boot_phys_offset)
+> >      lpae_t pte, *p;
+> >      int i;
+> >  
+> > +    if ( boot_phys_offset != 0 )
+> > +    {
+> > +        /* Remove the old identity mapping of the boot paddr */
+> > +        pte.bits = 0;
+> > +        dest_va = (unsigned long)_start + boot_phys_offset;
+> > +        write_pte(xen_second + second_linear_offset(dest_va), pte);
+> > +    }
+> 
+> It looks like we are already doing this few lines below.
+
+We used to do this here and now we do it futher down, after the copy.
+That way the secondary CPUs can come up on the pre-copy tables where
+the identity map still exists.
+
+> Also now that I am thinking about it, considering that bits is a 64 bit
+> field, shouldn't this be:
+> 
+> pte.bits = 0ULL;
+
+It's OK; the 0 will be sign-extended by the compiler to 64 bits. 
+
+Cheers,
+
+Tim.
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<20120607084517.GA70339@ocelot.phlegethon.org> b/config/examples/test/corpus/<20120607084517.GA70339@ocelot.phlegethon.org>
new file mode 100644 (file)
index 0000000..870de3f
--- /dev/null
@@ -0,0 +1,168 @@
+From xen-devel-bounces@lists.xen.org Thu Jun 07 09:50:07 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 07 Jun 2012 09:50:07 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1ScYPp-0003Xs-50
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 07 Jun 2012 09:50:07 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1ScYLL-0004Zr-LK; Thu, 07 Jun 2012 08:45:23 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72) (envelope-from <tim@xen.org>)
+       id 1ScYLK-0004Zm-71
+       for xen-devel@lists.xen.org; Thu, 07 Jun 2012 08:45:22 +0000
+Received: from [85.158.143.35:29933] by server-1.bemta-4.messagelabs.com id
+       CC/81-10042-12A60DF4; Thu, 07 Jun 2012 08:45:21 +0000
+X-Env-Sender: tim@xen.org
+X-Msg-Ref: server-15.tower-21.messagelabs.com!1339058719!14418101!1
+X-Originating-IP: [81.29.64.94]
+X-SpamReason: No, hits=0.0 required=7.0 tests=
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 8069 invoked from network); 7 Jun 2012 08:45:19 -0000
+Received: from ocelot.phlegethon.org (HELO mail.phlegethon.org) (81.29.64.94)
+       by server-15.tower-21.messagelabs.com with DHE-RSA-AES256-SHA
+       encrypted SMTP; 7 Jun 2012 08:45:19 -0000
+Received: from tjd by mail.phlegethon.org with local (Exim 4.67 (FreeBSD))
+       (envelope-from <tim@xen.org>)
+       id 1ScYLF-000INm-Rt; Thu, 07 Jun 2012 08:45:17 +0000
+Date: Thu, 7 Jun 2012 09:45:17 +0100
+From: Tim Deegan <tim@xen.org>
+To: Ian Campbell <ian.campbell@citrix.com>
+Message-ID: <20120607084517.GA70339@ocelot.phlegethon.org>
+References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
+       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+       <1338565207-2888-2-git-send-email-ian.campbell@citrix.com>
+Mime-Version: 1.0
+Content-Disposition: inline
+In-Reply-To: <1338565207-2888-2-git-send-email-ian.campbell@citrix.com>
+User-Agent: Mutt/1.4.2.1i
+Cc: xen-devel@lists.xen.org
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 02/38] arm: handy function to print a walk
+       of the hypervisor page tables
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+Hi,
+
+At 15:39 +0000 on 01 Jun (1338565171), Ian Campbell wrote:
+> +void dump_pt_walk(uint32_t addr)
+> +{
+> +    paddr_t second_ma, third_ma;
+> +    lpae_t *first = NULL, *second = NULL, *third = NULL;
+> +    uint64_t httbr = READ_CP64(HTTBR);
+> +
+> +    printk("Walking Hypervisor VA %#"PRIx32" via HTTBR %#"PRIx64"\n",
+> +           addr, httbr);
+> +
+> +    BUG_ON( (lpae_t *)(unsigned long)(httbr - xen_phys_offset) != xen_pgtable );
+> +    first = xen_pgtable;
+> +    printk("1ST[%#03"PRIx32"] = %p[%#03"PRIx32"] = %#llx = %#016llx\n",
+> +           first_table_offset(addr),
+> +           first, first_table_offset(addr),
+> +           virt_to_maddr(&first[first_table_offset(addr)]),
+> +           first[first_table_offset(addr)].bits);
+> +
+> +    if ( !first[first_table_offset(addr)].pt.valid ||
+> +         !first[first_table_offset(addr)].pt.table )
+> +        goto done;
+
+This could probably be a for loop rather than open-coding three
+almost-identical printks.
+
+> +
+> +    second_ma = (paddr_t)first[first_table_offset(addr)].pt.base << PAGE_SHIFT;
+> +    second = (lpae_t *)(unsigned long)(second_ma - xen_phys_offset);
+> +    printk("2ND[%#03"PRIx32"] = %p[%#03"PRIx32"] = %#llx = %#016llx\n",
+> +           second_table_offset(addr),
+> +           second, second_table_offset(addr),
+> +           virt_to_maddr(&second[second_table_offset(addr)]),
+> +           second[second_table_offset(addr)].bits);
+> +    if ( !second[second_table_offset(addr)].pt.valid ||
+> +         !second[second_table_offset(addr)].pt.table )
+> +        goto done;
+> +
+> +    third_ma = (paddr_t)second[second_table_offset(addr)].pt.base << PAGE_SHIFT;
+> +    third = (lpae_t *)(unsigned long)(third_ma - xen_phys_offset);
+> +    printk("3RD[%#03"PRIx32"] = %p[%#03"PRIx32"] = %#llx = %#016llx\n",
+> +           third_table_offset(addr),
+> +           third, third_table_offset(addr),
+> +           virt_to_maddr(&third[third_table_offset(addr)]),
+> +           third[third_table_offset(addr)].bits);
+> +    if ( !third[third_table_offset(addr)].pt.valid ||
+> +         !third[third_table_offset(addr)].pt.table )
+> +        goto done;
+> +
+> +done:
+> +    return;
+
+Maybe use return above instead of goto?
+
+> +}
+> +
+>  /* Map a 4k page in a fixmap entry */
+>  void set_fixmap(unsigned map, unsigned long mfn, unsigned attributes)
+>  {
+> @@ -173,8 +222,8 @@ void __init setup_pagetables(unsigned long boot_phys_offset)
+>      flush_xen_data_tlb_va(dest_va);
+>  
+>      /* Calculate virt-to-phys offset for the new location */
+> -    phys_offset = xen_paddr - (unsigned long) _start;
+> -
+> +    xen_phys_offset = phys_offset = xen_paddr - (unsigned long) _start;
+> +    
+
+Just make phys_offset file-scope static; no need to add a new variable
+for this.
+
+>      /* Copy */
+>      memcpy((void *) dest_va, _start, _end - _start);
+>  
+> diff --git a/xen/include/asm-arm/page.h b/xen/include/asm-arm/page.h
+> index b6df64e..22c56b5 100644
+> --- a/xen/include/asm-arm/page.h
+> +++ b/xen/include/asm-arm/page.h
+> @@ -312,6 +312,8 @@ static inline uint64_t gva_to_ipa(uint32_t va)
+>  /* Bits in the PAR returned by va_to_par */
+>  #define PAR_FAULT 0x1
+>  
+> +extern void dump_pt_walk(uint32_t addr);
+> +
+
+Maybe a comment?
+
+Cheers,
+
+Tim.
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<20120607084917.GB70339@ocelot.phlegethon.org> b/config/examples/test/corpus/<20120607084917.GB70339@ocelot.phlegethon.org>
new file mode 100644 (file)
index 0000000..6fa43e1
--- /dev/null
@@ -0,0 +1,132 @@
+From xen-devel-bounces@lists.xen.org Thu Jun 07 09:53:32 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 07 Jun 2012 09:53:32 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1ScYT8-0003Yh-N7
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 07 Jun 2012 09:53:32 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1ScYPC-0004jZ-A3; Thu, 07 Jun 2012 08:49:22 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72) (envelope-from <tim@xen.org>)
+       id 1ScYPA-0004jT-U7
+       for xen-devel@lists.xen.org; Thu, 07 Jun 2012 08:49:21 +0000
+Received: from [85.158.138.51:64465] by server-3.bemta-3.messagelabs.com id
+       20/E2-25608-E0B60DF4; Thu, 07 Jun 2012 08:49:18 +0000
+X-Env-Sender: tim@xen.org
+X-Msg-Ref: server-14.tower-174.messagelabs.com!1339058957!24858852!1
+X-Originating-IP: [81.29.64.94]
+X-SpamReason: No, hits=0.0 required=7.0 tests=
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 3765 invoked from network); 7 Jun 2012 08:49:18 -0000
+Received: from ocelot.phlegethon.org (HELO mail.phlegethon.org) (81.29.64.94)
+       by server-14.tower-174.messagelabs.com with DHE-RSA-AES256-SHA
+       encrypted SMTP; 7 Jun 2012 08:49:18 -0000
+Received: from tjd by mail.phlegethon.org with local (Exim 4.67 (FreeBSD))
+       (envelope-from <tim@xen.org>)
+       id 1ScYP7-000IOJ-Gv; Thu, 07 Jun 2012 08:49:17 +0000
+Date: Thu, 7 Jun 2012 09:49:17 +0100
+From: Tim Deegan <tim@xen.org>
+To: Ian Campbell <ian.campbell@citrix.com>
+Message-ID: <20120607084917.GB70339@ocelot.phlegethon.org>
+References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
+       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+       <1338565207-2888-3-git-send-email-ian.campbell@citrix.com>
+Mime-Version: 1.0
+Content-Disposition: inline
+In-Reply-To: <1338565207-2888-3-git-send-email-ian.campbell@citrix.com>
+User-Agent: Mutt/1.4.2.1i
+Cc: xen-devel@lists.xen.org
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 03/38] arm: handy function to print a walk
+       of a domain's p2m.
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+At 15:39 +0000 on 01 Jun (1338565172), Ian Campbell wrote:
+> Useful for debug but not actually used in this patch.
+> 
+> Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+> ---
+>  xen/arch/arm/p2m.c         |   34 ++++++++++++++++++++++++++++++++++
+>  xen/include/asm-arm/page.h |    1 +
+>  2 files changed, 35 insertions(+), 0 deletions(-)
+> 
+> diff --git a/xen/arch/arm/p2m.c b/xen/arch/arm/p2m.c
+> index 4f624d8..fdbecbc 100644
+> --- a/xen/arch/arm/p2m.c
+> +++ b/xen/arch/arm/p2m.c
+> @@ -5,6 +5,40 @@
+>  #include <xen/domain_page.h>
+>  #include <asm/flushtlb.h>
+>  
+> +void dump_p2m_lookup(struct domain *d, paddr_t addr)
+> +{
+> +    struct p2m_domain *p2m = &d->arch.p2m;
+> +    lpae_t *first = NULL, *second = NULL, *third = NULL;
+> +
+> +    printk("dom%d IPA %#016llx\n", d->domain_id, addr);
+> +
+> +    first = __map_domain_page(p2m->first_level);
+> +    printk("1ST[%#03llx] = %#016llx\n",
+> +           first_table_offset(addr),
+> +           first[first_table_offset(addr)].bits);
+> +    if ( !first[first_table_offset(addr)].p2m.valid ||
+> +         !first[first_table_offset(addr)].p2m.table )
+> +        goto done;
+> +
+> +    second = map_domain_page(first[first_table_offset(addr)].p2m.base);
+> +    printk("2ND[%#03llx] = %#016llx\n",
+> +           second_table_offset(addr),
+> +           second[second_table_offset(addr)].bits);
+> +    if ( !second[second_table_offset(addr)].p2m.valid ||
+> +         !second[second_table_offset(addr)].p2m.table )
+> +        goto done;
+> +
+> +    third = map_domain_page(second[second_table_offset(addr)].p2m.base);
+> +    printk("3RD[%#03llx] = %#016llx\n",
+> +           third_table_offset(addr),
+> +           third[third_table_offset(addr)].bits);
+> +
+> +done:
+> +    if (third) unmap_domain_page(third);
+> +    if (second) unmap_domain_page(second);
+> +    if (first) unmap_domain_page(first);
+> +}
+
+Can this be unified with dump_pt_walk?  As it happens, the valid, table,
+and base fields are the same in pt and p2m entries.
+
+Tim.
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<20120607090334.GC70339@ocelot.phlegethon.org> b/config/examples/test/corpus/<20120607090334.GC70339@ocelot.phlegethon.org>
new file mode 100644 (file)
index 0000000..26da8d0
--- /dev/null
@@ -0,0 +1,112 @@
+From xen-devel-bounces@lists.xen.org Thu Jun 07 10:08:06 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 07 Jun 2012 10:08:06 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1ScYhF-0003bx-7M
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 07 Jun 2012 10:08:06 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1ScYd2-00053E-4U; Thu, 07 Jun 2012 09:03:40 +0000
+Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
+       by lists.xen.org with esmtp (Exim 4.72) (envelope-from <tim@xen.org>)
+       id 1ScYd0-00052W-5h
+       for xen-devel@lists.xen.org; Thu, 07 Jun 2012 09:03:38 +0000
+Received: from [193.109.254.147:27077] by server-2.bemta-14.messagelabs.com id
+       A2/EA-27740-96E60DF4; Thu, 07 Jun 2012 09:03:37 +0000
+X-Env-Sender: tim@xen.org
+X-Msg-Ref: server-14.tower-27.messagelabs.com!1339059816!1674246!1
+X-Originating-IP: [81.29.64.94]
+X-SpamReason: No, hits=0.0 required=7.0 tests=
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 32160 invoked from network); 7 Jun 2012 09:03:36 -0000
+Received: from ocelot.phlegethon.org (HELO mail.phlegethon.org) (81.29.64.94)
+       by server-14.tower-27.messagelabs.com with DHE-RSA-AES256-SHA
+       encrypted SMTP; 7 Jun 2012 09:03:36 -0000
+Received: from tjd by mail.phlegethon.org with local (Exim 4.67 (FreeBSD))
+       (envelope-from <tim@xen.org>)
+       id 1ScYcw-000IQe-LA; Thu, 07 Jun 2012 09:03:34 +0000
+Date: Thu, 7 Jun 2012 10:03:34 +0100
+From: Tim Deegan <tim@xen.org>
+To: Ian Campbell <ian.campbell@citrix.com>
+Message-ID: <20120607090334.GC70339@ocelot.phlegethon.org>
+References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
+       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+       <1338565207-2888-11-git-send-email-ian.campbell@citrix.com>
+Mime-Version: 1.0
+Content-Disposition: inline
+In-Reply-To: <1338565207-2888-11-git-send-email-ian.campbell@citrix.com>
+User-Agent: Mutt/1.4.2.1i
+Cc: xen-devel@lists.xen.org
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 11/38] arm: implement p2m lookup
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+At 15:39 +0000 on 01 Jun (1338565180), Ian Campbell wrote:
+> +/*
+> + * Lookup the MFN corresponding to a domain's PFN.
+> + *
+> + * There are no processor functions to do a stage 2 only lookup therefore we
+> + * do a a software walk.
+> + */
+> +paddr_t p2m_lookup(struct domain *d, paddr_t paddr)
+> +{
+> +    struct p2m_domain *p2m = &d->arch.p2m;
+> +    lpae_t pte, *first = NULL, *second = NULL, *third = NULL;
+> +    paddr_t maddr = INVALID_PADDR;
+> +
+> +    spin_lock(&p2m->lock);
+> +
+> +    first = __map_domain_page(p2m->first_level);
+> +    if ( !first[first_table_offset(paddr)].p2m.valid )
+> +        goto done_err;
+> +    if ( !first[first_table_offset(paddr)].p2m.table )
+> +    {
+> +        pte = first[first_table_offset(paddr)];
+> +        goto done;
+> +    }
+
+This would be neater as: 
+       pte = first[first_table_offset(paddr)];
+       if ( !pte.p2m.valid || !pte.p2m.table )
+           goto done;
+
+and test for pte.valid at 'done'.
+
+It would be nice to do the three levels in a loop as well, but the weird
+way the table bit behaves in third-level entries might make that more
+confusing than the straight-line version.
+
+Tim.
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<20120607090808.GD70339@ocelot.phlegethon.org> b/config/examples/test/corpus/<20120607090808.GD70339@ocelot.phlegethon.org>
new file mode 100644 (file)
index 0000000..561e6b5
--- /dev/null
@@ -0,0 +1,92 @@
+From xen-devel-bounces@lists.xen.org Thu Jun 07 10:12:26 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 07 Jun 2012 10:12:26 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1ScYlQ-0003cy-NL
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 07 Jun 2012 10:12:26 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1ScYhQ-0005E6-R1; Thu, 07 Jun 2012 09:08:12 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72) (envelope-from <tim@xen.org>)
+       id 1ScYhO-0005Dz-C4
+       for xen-devel@lists.xen.org; Thu, 07 Jun 2012 09:08:10 +0000
+Received: from [85.158.143.35:17586] by server-1.bemta-4.messagelabs.com id
+       D2/DB-10042-97F60DF4; Thu, 07 Jun 2012 09:08:09 +0000
+X-Env-Sender: tim@xen.org
+X-Msg-Ref: server-10.tower-21.messagelabs.com!1339060088!11245975!1
+X-Originating-IP: [81.29.64.94]
+X-SpamReason: No, hits=0.0 required=7.0 tests=
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 2335 invoked from network); 7 Jun 2012 09:08:08 -0000
+Received: from ocelot.phlegethon.org (HELO mail.phlegethon.org) (81.29.64.94)
+       by server-10.tower-21.messagelabs.com with DHE-RSA-AES256-SHA
+       encrypted SMTP; 7 Jun 2012 09:08:08 -0000
+Received: from tjd by mail.phlegethon.org with local (Exim 4.67 (FreeBSD))
+       (envelope-from <tim@xen.org>)
+       id 1ScYhM-000IRg-Bk; Thu, 07 Jun 2012 09:08:08 +0000
+Date: Thu, 7 Jun 2012 10:08:08 +0100
+From: Tim Deegan <tim@xen.org>
+To: Ian Campbell <ian.campbell@citrix.com>
+Message-ID: <20120607090808.GD70339@ocelot.phlegethon.org>
+References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
+       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+       <1338565207-2888-16-git-send-email-ian.campbell@citrix.com>
+Mime-Version: 1.0
+Content-Disposition: inline
+In-Reply-To: <1338565207-2888-16-git-send-email-ian.campbell@citrix.com>
+User-Agent: Mutt/1.4.2.1i
+Cc: xen-devel@lists.xen.org
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 16/38] arm: Add simple cpu_{sibling,
+       core}_mask
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+At 15:39 +0000 on 01 Jun (1338565185), Ian Campbell wrote:
+> @@ -230,6 +230,13 @@ void __init start_xen(unsigned long boot_phys_offset,
+>          }
+>      }
+>  
+> +    if ( !zalloc_cpumask_var(&per_cpu(cpu_sibling_mask, 0)) ||
+> +         !zalloc_cpumask_var(&per_cpu(cpu_core_mask, 0)) )
+> +        BUG();
+> +
+> +    cpumask_clear(per_cpu(cpu_sibling_mask, 0));
+> +    cpumask_clear(per_cpu(cpu_core_mask, 0));
+
+Aren't these clear()s noops?  
+
+Tim.
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<20120607092951.GE70339@ocelot.phlegethon.org> b/config/examples/test/corpus/<20120607092951.GE70339@ocelot.phlegethon.org>
new file mode 100644 (file)
index 0000000..8df491a
--- /dev/null
@@ -0,0 +1,119 @@
+From xen-devel-bounces@lists.xen.org Thu Jun 07 10:33:30 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 07 Jun 2012 10:33:30 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1ScZ5o-0003hu-Oq
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 07 Jun 2012 10:33:30 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1ScZ2S-0006Px-3i; Thu, 07 Jun 2012 09:29:56 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72) (envelope-from <tim@xen.org>)
+       id 1ScZ2Q-0006Pl-QB
+       for xen-devel@lists.xen.org; Thu, 07 Jun 2012 09:29:54 +0000
+Received: from [85.158.138.51:36241] by server-5.bemta-3.messagelabs.com id
+       F2/F6-03598-19470DF4; Thu, 07 Jun 2012 09:29:53 +0000
+X-Env-Sender: tim@xen.org
+X-Msg-Ref: server-11.tower-174.messagelabs.com!1339061392!31207764!1
+X-Originating-IP: [81.29.64.94]
+X-SpamReason: No, hits=0.0 required=7.0 tests=
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 23097 invoked from network); 7 Jun 2012 09:29:53 -0000
+Received: from ocelot.phlegethon.org (HELO mail.phlegethon.org) (81.29.64.94)
+       by server-11.tower-174.messagelabs.com with DHE-RSA-AES256-SHA
+       encrypted SMTP; 7 Jun 2012 09:29:53 -0000
+Received: from tjd by mail.phlegethon.org with local (Exim 4.67 (FreeBSD))
+       (envelope-from <tim@xen.org>)
+       id 1ScZ2N-000IWb-Kw; Thu, 07 Jun 2012 09:29:51 +0000
+Date: Thu, 7 Jun 2012 10:29:51 +0100
+From: Tim Deegan <tim@xen.org>
+To: Ian Campbell <ian.campbell@citrix.com>
+Message-ID: <20120607092951.GE70339@ocelot.phlegethon.org>
+References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
+       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+       <1338565207-2888-18-git-send-email-ian.campbell@citrix.com>
+Mime-Version: 1.0
+Content-Disposition: inline
+In-Reply-To: <1338565207-2888-18-git-send-email-ian.campbell@citrix.com>
+User-Agent: Mutt/1.4.2.1i
+Cc: xen-devel@lists.xen.org
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 18/38] arm: implement vpl011 (UART) emulator.
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+> +int domain_uart0_init(struct domain *d)
+> +{
+> +    int rc;
+> +    if ( d->domain_id == 0 )
+> +        return 0;
+
+Why?  There's no equivalent gate on the MMIO handlers.
+
+> +    spin_lock_init(&d->arch.uart0.lock);
+> +    d->arch.uart0.idx = 0;
+> +
+> +    rc = -ENOMEM;
+> +    d->arch.uart0.buf = xzalloc_array(char, VPL011_BUF_SIZE);
+> +    if ( !d->arch.uart0.buf )
+> +        goto out;
+
+Just return ENOMEM here - the 'rc=foo; goto out' is overkill.
+
+> +
+> +    rc = 0;
+> +out:
+> +    return rc;
+> +}
+
+> +static int uart0_mmio_check(struct vcpu *v, paddr_t addr)
+> +{
+> +    return v->domain->domain_id && addr >= UART0_BASE_ADDRESS && addr < (UART0_BASE_ADDRESS+65536);
+> +}
+
+linewrap?
+
+> +
+> +static int uart0_mmio_read(struct vcpu *v, mmio_info_t *info)
+> +{
+> +    struct hsr_dabt dabt = info->dabt;
+> +    struct cpu_user_regs *regs = guest_cpu_user_regs();
+> +    uint32_t *r = &regs->r0 + dabt.reg;
+> +    int offset = (int)(info->gpa - UART0_BASE_ADDRESS);
+> +
+
+Need to check dabt.size != 0 here too?
+
+Tim.
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<20120607093258.GF70339@ocelot.phlegethon.org> b/config/examples/test/corpus/<20120607093258.GF70339@ocelot.phlegethon.org>
new file mode 100644 (file)
index 0000000..4bb25bd
--- /dev/null
@@ -0,0 +1,131 @@
+From xen-devel-bounces@lists.xen.org Thu Jun 07 10:37:14 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 07 Jun 2012 10:37:14 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1ScZ9T-0003j3-SL
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 07 Jun 2012 10:37:14 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1ScZ5i-0006hU-NA; Thu, 07 Jun 2012 09:33:18 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72) (envelope-from <tim@xen.org>)
+       id 1ScZ5h-0006hH-FF
+       for xen-devel@lists.xen.org; Thu, 07 Jun 2012 09:33:17 +0000
+Received: from [85.158.138.51:11187] by server-9.bemta-3.messagelabs.com id
+       3E/84-15054-C5570DF4; Thu, 07 Jun 2012 09:33:16 +0000
+X-Env-Sender: tim@xen.org
+X-Msg-Ref: server-2.tower-174.messagelabs.com!1339061594!31249410!1
+X-Originating-IP: [81.29.64.94]
+X-SpamReason: No, hits=0.0 required=7.0 tests=
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 9868 invoked from network); 7 Jun 2012 09:33:14 -0000
+Received: from ocelot.phlegethon.org (HELO mail.phlegethon.org) (81.29.64.94)
+       by server-2.tower-174.messagelabs.com with DHE-RSA-AES256-SHA
+       encrypted SMTP; 7 Jun 2012 09:33:14 -0000
+Received: from tjd by mail.phlegethon.org with local (Exim 4.67 (FreeBSD))
+       (envelope-from <tim@xen.org>)
+       id 1ScZ5O-000IXJ-G6; Thu, 07 Jun 2012 09:32:58 +0000
+Date: Thu, 7 Jun 2012 10:32:58 +0100
+From: Tim Deegan <tim@xen.org>
+To: Ian Campbell <ian.campbell@citrix.com>
+Message-ID: <20120607093258.GF70339@ocelot.phlegethon.org>
+References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
+       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+       <1338565207-2888-20-git-send-email-ian.campbell@citrix.com>
+Mime-Version: 1.0
+Content-Disposition: inline
+In-Reply-To: <1338565207-2888-20-git-send-email-ian.campbell@citrix.com>
+User-Agent: Mutt/1.4.2.1i
+Cc: xen-devel@lists.xen.org
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 20/38] arm: dump a page table walk when
+       va_to_par fails.
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+At 15:39 +0000 on 01 Jun (1338565189), Ian Campbell wrote:
+> Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+
+Acked-by: Tim Deegan <tim@xen.org>
+
+> ---
+>  xen/include/asm-arm/page.h |   12 ++++++++----
+>  1 files changed, 8 insertions(+), 4 deletions(-)
+> 
+> diff --git a/xen/include/asm-arm/page.h b/xen/include/asm-arm/page.h
+> index bb1729a..f36bf6f 100644
+> --- a/xen/include/asm-arm/page.h
+> +++ b/xen/include/asm-arm/page.h
+> @@ -254,6 +254,9 @@ static inline void flush_guest_tlb(void)
+>      WRITE_CP32(r0 /* dummy */, TLBIALLNSNH);
+>  }
+>  
+> +extern void dump_pt_walk(uint32_t addr);
+> +extern void dump_p2m_lookup(struct domain *d, paddr_t addr);
+> +
+>  /* Ask the MMU to translate a VA for us */
+>  static inline uint64_t __va_to_par(uint32_t va)
+>  {
+> @@ -270,7 +273,11 @@ static inline uint64_t va_to_par(uint32_t va)
+>  {
+>      uint64_t par = __va_to_par(va);
+>      /* It is not OK to call this with an invalid VA */
+> -    if ( par & PAR_F ) panic_PAR(par, "Hypervisor");
+> +    if ( par & PAR_F )
+> +    {
+> +        dump_pt_walk(va);
+> +        panic_PAR(par, "Hypervisor");
+> +    }
+>      return par;
+>  }
+>  
+> @@ -314,9 +321,6 @@ static inline uint64_t gva_to_ipa(uint32_t va)
+>  /* Bits in the PAR returned by va_to_par */
+>  #define PAR_FAULT 0x1
+>  
+> -extern void dump_pt_walk(uint32_t addr);
+> -extern void dump_p2m_lookup(struct domain *d, paddr_t addr);
+> -
+>  #endif /* __ASSEMBLY__ */
+>  
+>  /* These numbers add up to a 39-bit input address space.  The  ARMv7-A
+> -- 
+> 1.7.9.1
+> 
+> 
+> _______________________________________________
+> Xen-devel mailing list
+> Xen-devel@lists.xen.org
+> http://lists.xen.org/xen-devel
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<20120607094152.GG70339@ocelot.phlegethon.org> b/config/examples/test/corpus/<20120607094152.GG70339@ocelot.phlegethon.org>
new file mode 100644 (file)
index 0000000..5628b11
--- /dev/null
@@ -0,0 +1,87 @@
+From xen-devel-bounces@lists.xen.org Thu Jun 07 10:45:03 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 07 Jun 2012 10:45:03 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1ScZGz-0003lM-VG
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 07 Jun 2012 10:45:03 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1ScZE4-0007yw-2a; Thu, 07 Jun 2012 09:41:56 +0000
+Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
+       by lists.xen.org with esmtp (Exim 4.72) (envelope-from <tim@xen.org>)
+       id 1ScZE2-0007yi-I2
+       for xen-devel@lists.xen.org; Thu, 07 Jun 2012 09:41:54 +0000
+Received: from [193.109.254.147:39698] by server-10.bemta-14.messagelabs.com
+       id BC/1A-25709-16770DF4; Thu, 07 Jun 2012 09:41:53 +0000
+X-Env-Sender: tim@xen.org
+X-Msg-Ref: server-6.tower-27.messagelabs.com!1339062112!2883616!1
+X-Originating-IP: [81.29.64.94]
+X-SpamReason: No, hits=0.0 required=7.0 tests=
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 12246 invoked from network); 7 Jun 2012 09:41:53 -0000
+Received: from ocelot.phlegethon.org (HELO mail.phlegethon.org) (81.29.64.94)
+       by server-6.tower-27.messagelabs.com with DHE-RSA-AES256-SHA
+       encrypted SMTP; 7 Jun 2012 09:41:53 -0000
+Received: from tjd by mail.phlegethon.org with local (Exim 4.67 (FreeBSD))
+       (envelope-from <tim@xen.org>)
+       id 1ScZE0-000IZy-AH; Thu, 07 Jun 2012 09:41:52 +0000
+Date: Thu, 7 Jun 2012 10:41:52 +0100
+From: Tim Deegan <tim@xen.org>
+To: Ian Campbell <ian.campbell@citrix.com>
+Message-ID: <20120607094152.GG70339@ocelot.phlegethon.org>
+References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
+       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+       <1338565207-2888-21-git-send-email-ian.campbell@citrix.com>
+Mime-Version: 1.0
+Content-Disposition: inline
+In-Reply-To: <1338565207-2888-21-git-send-email-ian.campbell@citrix.com>
+User-Agent: Mutt/1.4.2.1i
+Cc: xen-devel@lists.xen.org
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 21/38] arm: dump guest s1 walk on data abort
+       which is not a stage 2 issue.
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+At 15:39 +0000 on 01 Jun (1338565190), Ian Campbell wrote:
+> +    offset = addr >> (12+10);
+> +    printk("1ST[%#03"PRIx32"] (%#"PRIpaddr") = %#010"PRIx32"\n",
+
+Nit: 0x%08 prints '0' as '0x00000000', which is nicer I think.
+
+Otherwise: ack.
+
+Tim.
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<20120607094805.GH70339@ocelot.phlegethon.org> b/config/examples/test/corpus/<20120607094805.GH70339@ocelot.phlegethon.org>
new file mode 100644 (file)
index 0000000..4f4eec6
--- /dev/null
@@ -0,0 +1,86 @@
+From xen-devel-bounces@lists.xen.org Thu Jun 07 10:52:17 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 07 Jun 2012 10:52:17 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1ScZO0-0003md-6e
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 07 Jun 2012 10:52:17 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1ScZK6-0008NY-EW; Thu, 07 Jun 2012 09:48:10 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72) (envelope-from <tim@xen.org>)
+       id 1ScZK5-0008NL-33
+       for xen-devel@lists.xen.org; Thu, 07 Jun 2012 09:48:09 +0000
+Received: from [85.158.143.99:47982] by server-2.bemta-4.messagelabs.com id
+       5F/E9-17938-7D870DF4; Thu, 07 Jun 2012 09:48:07 +0000
+X-Env-Sender: tim@xen.org
+X-Msg-Ref: server-15.tower-216.messagelabs.com!1339062486!31697498!1
+X-Originating-IP: [81.29.64.94]
+X-SpamReason: No, hits=0.0 required=7.0 tests=
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 8274 invoked from network); 7 Jun 2012 09:48:06 -0000
+Received: from ocelot.phlegethon.org (HELO mail.phlegethon.org) (81.29.64.94)
+       by server-15.tower-216.messagelabs.com with DHE-RSA-AES256-SHA
+       encrypted SMTP; 7 Jun 2012 09:48:06 -0000
+Received: from tjd by mail.phlegethon.org with local (Exim 4.67 (FreeBSD))
+       (envelope-from <tim@xen.org>)
+       id 1ScZK1-000Ib5-EE; Thu, 07 Jun 2012 09:48:05 +0000
+Date: Thu, 7 Jun 2012 10:48:05 +0100
+From: Tim Deegan <tim@xen.org>
+To: Ian Campbell <ian.campbell@citrix.com>
+Message-ID: <20120607094805.GH70339@ocelot.phlegethon.org>
+References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
+       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+       <1338565207-2888-26-git-send-email-ian.campbell@citrix.com>
+Mime-Version: 1.0
+Content-Disposition: inline
+In-Reply-To: <1338565207-2888-26-git-send-email-ian.campbell@citrix.com>
+User-Agent: Mutt/1.4.2.1i
+Cc: xen-devel@lists.xen.org
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 26/38] arm: fix locking in create_p2m_entries
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+At 15:39 +0000 on 01 Jun (1338565195), Ian Campbell wrote:
+> For some reason we were holding the lock over only the unmaps at the end of
+> the function, rather than for the whole walk.
+> 
+> We might want to be more clever in the future, but for now lets just lock for
+> the whole walk+create process.
+> 
+> Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+
+Acked-by: Tim Deegan <tim@xen.org>
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<20120607095128.GI70339@ocelot.phlegethon.org> b/config/examples/test/corpus/<20120607095128.GI70339@ocelot.phlegethon.org>
new file mode 100644 (file)
index 0000000..61c3183
--- /dev/null
@@ -0,0 +1,105 @@
+From xen-devel-bounces@lists.xen.org Thu Jun 07 10:54:52 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 07 Jun 2012 10:54:52 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1ScZQY-0003n7-1E
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 07 Jun 2012 10:54:52 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1ScZNM-0000Gb-QX; Thu, 07 Jun 2012 09:51:32 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72) (envelope-from <tim@xen.org>)
+       id 1ScZNL-0000G0-5G
+       for xen-devel@lists.xen.org; Thu, 07 Jun 2012 09:51:31 +0000
+Received: from [85.158.143.99:12434] by server-1.bemta-4.messagelabs.com id
+       2F/CE-10042-2A970DF4; Thu, 07 Jun 2012 09:51:30 +0000
+X-Env-Sender: tim@xen.org
+X-Msg-Ref: server-11.tower-216.messagelabs.com!1339062689!24179133!1
+X-Originating-IP: [81.29.64.94]
+X-SpamReason: No, hits=0.0 required=7.0 tests=
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 15249 invoked from network); 7 Jun 2012 09:51:29 -0000
+Received: from ocelot.phlegethon.org (HELO mail.phlegethon.org) (81.29.64.94)
+       by server-11.tower-216.messagelabs.com with DHE-RSA-AES256-SHA
+       encrypted SMTP; 7 Jun 2012 09:51:29 -0000
+Received: from tjd by mail.phlegethon.org with local (Exim 4.67 (FreeBSD))
+       (envelope-from <tim@xen.org>)
+       id 1ScZNI-000Ibn-OK; Thu, 07 Jun 2012 09:51:28 +0000
+Date: Thu, 7 Jun 2012 10:51:28 +0100
+From: Tim Deegan <tim@xen.org>
+To: Ian Campbell <ian.campbell@citrix.com>
+Message-ID: <20120607095128.GI70339@ocelot.phlegethon.org>
+References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
+       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+       <1338565207-2888-28-git-send-email-ian.campbell@citrix.com>
+Mime-Version: 1.0
+Content-Disposition: inline
+In-Reply-To: <1338565207-2888-28-git-send-email-ian.campbell@citrix.com>
+User-Agent: Mutt/1.4.2.1i
+Cc: xen-devel@lists.xen.org
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 28/38] arm: map GICV in all domains,
+       not just dom0.
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+At 15:39 +0000 on 01 Jun (1338565197), Ian Campbell wrote:
+> diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
+> index a7fb227..e15c1e8 100644
+> --- a/xen/arch/arm/domain.c
+> +++ b/xen/arch/arm/domain.c
+> @@ -329,13 +329,17 @@ int arch_domain_create(struct domain *d, unsigned int domcr_flags)
+>  
+>          if ( (rc = p2m_alloc_table(d)) != 0 )
+>              goto fail;
+> -    }
+>  
+> -    if ( (rc = domain_vgic_init(d)) != 0 )
+> -        goto fail;
+> +        if ( (rc = gicv_setup(d)) != 0 )
+> +            goto fail;
+> +
+> +        if ( (rc = domain_vgic_init(d)) != 0 )
+> +            goto fail;
+> +    }
+>  
+>      rc = 0;
+>  fail:
+> +    /*XXX unwind allocations etc */
+
+Ahem. :)
+
+Tim.
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<20120607101826.GJ70339@ocelot.phlegethon.org> b/config/examples/test/corpus/<20120607101826.GJ70339@ocelot.phlegethon.org>
new file mode 100644 (file)
index 0000000..1605e99
--- /dev/null
@@ -0,0 +1,96 @@
+From xen-devel-bounces@lists.xen.org Thu Jun 07 11:21:44 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 07 Jun 2012 11:21:44 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1ScZqY-0003uc-0g
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 07 Jun 2012 11:21:44 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1ScZnT-0001qN-Ra; Thu, 07 Jun 2012 10:18:31 +0000
+Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
+       by lists.xen.org with esmtp (Exim 4.72) (envelope-from <tim@xen.org>)
+       id 1ScZnR-0001pu-Pc
+       for xen-devel@lists.xen.org; Thu, 07 Jun 2012 10:18:29 +0000
+Received: from [193.109.254.147:24815] by server-12.bemta-14.messagelabs.com
+       id 86/BF-12998-4FF70DF4; Thu, 07 Jun 2012 10:18:28 +0000
+X-Env-Sender: tim@xen.org
+X-Msg-Ref: server-16.tower-27.messagelabs.com!1339064307!8406826!1
+X-Originating-IP: [81.29.64.94]
+X-SpamReason: No, hits=0.0 required=7.0 tests=
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 16014 invoked from network); 7 Jun 2012 10:18:28 -0000
+Received: from ocelot.phlegethon.org (HELO mail.phlegethon.org) (81.29.64.94)
+       by server-16.tower-27.messagelabs.com with DHE-RSA-AES256-SHA
+       encrypted SMTP; 7 Jun 2012 10:18:28 -0000
+Received: from tjd by mail.phlegethon.org with local (Exim 4.67 (FreeBSD))
+       (envelope-from <tim@xen.org>)
+       id 1ScZnO-000Ig3-FS; Thu, 07 Jun 2012 10:18:26 +0000
+Date: Thu, 7 Jun 2012 11:18:26 +0100
+From: Tim Deegan <tim@xen.org>
+To: Ian Campbell <Ian.Campbell@citrix.com>
+Message-ID: <20120607101826.GJ70339@ocelot.phlegethon.org>
+References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
+       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+       <1338565207-2888-18-git-send-email-ian.campbell@citrix.com>
+       <20120607092951.GE70339@ocelot.phlegethon.org>
+       <1339061691.15265.49.camel@zakaz.uk.xensource.com>
+Mime-Version: 1.0
+Content-Disposition: inline
+In-Reply-To: <1339061691.15265.49.camel@zakaz.uk.xensource.com>
+User-Agent: Mutt/1.4.2.1i
+Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 18/38] arm: implement vpl011 (UART) emulator.
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+At 10:34 +0100 on 07 Jun (1339065291), Ian Campbell wrote:
+> On Thu, 2012-06-07 at 10:29 +0100, Tim Deegan wrote:
+> > > +int domain_uart0_init(struct domain *d)
+> > > +{
+> > > +    int rc;
+> > > +    if ( d->domain_id == 0 )
+> > > +        return 0;
+> > 
+> > Why?  There's no equivalent gate on the MMIO handlers.
+> 
+> dom0 has the actual uart mapped at this address, not the emulated one.
+> Maybe that should be written at the caller instead?
+
+Yes - ideally in the same place that puts the MMIO hooks in that will
+call the other functions in this file. 
+
+Tim.
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<20120607102014.GK70339@ocelot.phlegethon.org> b/config/examples/test/corpus/<20120607102014.GK70339@ocelot.phlegethon.org>
new file mode 100644 (file)
index 0000000..a56d468
--- /dev/null
@@ -0,0 +1,88 @@
+From xen-devel-bounces@lists.xen.org Thu Jun 07 11:23:24 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 07 Jun 2012 11:23:24 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1ScZs7-0003wE-66
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 07 Jun 2012 11:23:24 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1ScZpD-00027g-Bp; Thu, 07 Jun 2012 10:20:19 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72) (envelope-from <tim@xen.org>)
+       id 1ScZpA-00026d-Ra
+       for xen-devel@lists.xen.org; Thu, 07 Jun 2012 10:20:16 +0000
+Received: from [85.158.138.51:62082] by server-6.bemta-3.messagelabs.com id
+       11/54-05063-F5080DF4; Thu, 07 Jun 2012 10:20:15 +0000
+X-Env-Sender: tim@xen.org
+X-Msg-Ref: server-10.tower-174.messagelabs.com!1339064415!27186337!1
+X-Originating-IP: [81.29.64.94]
+X-SpamReason: No, hits=0.0 required=7.0 tests=
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 29660 invoked from network); 7 Jun 2012 10:20:15 -0000
+Received: from ocelot.phlegethon.org (HELO mail.phlegethon.org) (81.29.64.94)
+       by server-10.tower-174.messagelabs.com with DHE-RSA-AES256-SHA
+       encrypted SMTP; 7 Jun 2012 10:20:15 -0000
+Received: from tjd by mail.phlegethon.org with local (Exim 4.67 (FreeBSD))
+       (envelope-from <tim@xen.org>)
+       id 1ScZp8-000Igb-Kv; Thu, 07 Jun 2012 10:20:14 +0000
+Date: Thu, 7 Jun 2012 11:20:14 +0100
+From: Tim Deegan <tim@xen.org>
+To: Ian Campbell <ian.campbell@citrix.com>
+Message-ID: <20120607102014.GK70339@ocelot.phlegethon.org>
+References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
+       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+       <1338565207-2888-30-git-send-email-ian.campbell@citrix.com>
+Mime-Version: 1.0
+Content-Disposition: inline
+In-Reply-To: <1338565207-2888-30-git-send-email-ian.campbell@citrix.com>
+User-Agent: Mutt/1.4.2.1i
+Cc: xen-devel@lists.xen.org
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 30/38] arm: Upgrade guest barriers to
+       Outer-Shareable. Enable Protected Table Walk.
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+At 15:39 +0000 on 01 Jun (1338565199), Ian Campbell wrote:
+> Upgrading barriers is conservative and may not be necessary.
+> 
+> Protected Table Walk traps stage 1 page tables which refer to device memory
+> (per stage 2) using a non-device mapping. This generally indicates a guest
+> error but trapping it as a fault for now helps us know if something odd is
+> going on.
+> 
+> Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+
+Acked-by: Tim Deegan <tim@xen.org>
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<20120607102054.GL70339@ocelot.phlegethon.org> b/config/examples/test/corpus/<20120607102054.GL70339@ocelot.phlegethon.org>
new file mode 100644 (file)
index 0000000..d48f264
--- /dev/null
@@ -0,0 +1,84 @@
+From xen-devel-bounces@lists.xen.org Thu Jun 07 11:23:50 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 07 Jun 2012 11:23:50 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1ScZsX-0003wg-6w
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 07 Jun 2012 11:23:50 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1ScZpo-0002DS-Pu; Thu, 07 Jun 2012 10:20:56 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72) (envelope-from <tim@xen.org>)
+       id 1ScZpn-0002DD-Sk
+       for xen-devel@lists.xen.org; Thu, 07 Jun 2012 10:20:55 +0000
+Received: from [85.158.138.51:12709] by server-9.bemta-3.messagelabs.com id
+       18/EA-15054-78080DF4; Thu, 07 Jun 2012 10:20:55 +0000
+X-Env-Sender: tim@xen.org
+X-Msg-Ref: server-14.tower-174.messagelabs.com!1339064454!24881695!1
+X-Originating-IP: [81.29.64.94]
+X-SpamReason: No, hits=0.0 required=7.0 tests=
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 1987 invoked from network); 7 Jun 2012 10:20:54 -0000
+Received: from ocelot.phlegethon.org (HELO mail.phlegethon.org) (81.29.64.94)
+       by server-14.tower-174.messagelabs.com with DHE-RSA-AES256-SHA
+       encrypted SMTP; 7 Jun 2012 10:20:54 -0000
+Received: from tjd by mail.phlegethon.org with local (Exim 4.67 (FreeBSD))
+       (envelope-from <tim@xen.org>)
+       id 1ScZpm-000Ih7-2L; Thu, 07 Jun 2012 10:20:54 +0000
+Date: Thu, 7 Jun 2012 11:20:54 +0100
+From: Tim Deegan <tim@xen.org>
+To: Ian Campbell <ian.campbell@citrix.com>
+Message-ID: <20120607102054.GL70339@ocelot.phlegethon.org>
+References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
+       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+       <1338565207-2888-31-git-send-email-ian.campbell@citrix.com>
+Mime-Version: 1.0
+Content-Disposition: inline
+In-Reply-To: <1338565207-2888-31-git-send-email-ian.campbell@citrix.com>
+User-Agent: Mutt/1.4.2.1i
+Cc: xen-devel@lists.xen.org
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 31/38] arm: gic.lock can be taken in
+       interrupt context, so lock appropriately.
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+At 15:40 +0000 on 01 Jun (1338565200), Ian Campbell wrote:
+> In particular it is taken by gic_set_guest_irq which is called by
+> vgic_vcpu_inject_irq
+> 
+> Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+
+Acked-by: Tim Deegan <tim@xen.org>
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<20120607102151.GM70339@ocelot.phlegethon.org> b/config/examples/test/corpus/<20120607102151.GM70339@ocelot.phlegethon.org>
new file mode 100644 (file)
index 0000000..a05f263
--- /dev/null
@@ -0,0 +1,81 @@
+From xen-devel-bounces@lists.xen.org Thu Jun 07 11:25:02 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 07 Jun 2012 11:25:02 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1ScZtg-0003wy-PB
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 07 Jun 2012 11:25:01 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1ScZql-0002Ne-8C; Thu, 07 Jun 2012 10:21:55 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72) (envelope-from <tim@xen.org>)
+       id 1ScZqj-0002N7-Ku
+       for xen-devel@lists.xen.org; Thu, 07 Jun 2012 10:21:53 +0000
+Received: from [85.158.143.99:55241] by server-1.bemta-4.messagelabs.com id
+       45/16-10042-0C080DF4; Thu, 07 Jun 2012 10:21:52 +0000
+X-Env-Sender: tim@xen.org
+X-Msg-Ref: server-13.tower-216.messagelabs.com!1339064511!30824770!1
+X-Originating-IP: [81.29.64.94]
+X-SpamReason: No, hits=0.5 required=7.0 tests=BODY_RANDOM_LONG
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 31372 invoked from network); 7 Jun 2012 10:21:52 -0000
+Received: from ocelot.phlegethon.org (HELO mail.phlegethon.org) (81.29.64.94)
+       by server-13.tower-216.messagelabs.com with DHE-RSA-AES256-SHA
+       encrypted SMTP; 7 Jun 2012 10:21:52 -0000
+Received: from tjd by mail.phlegethon.org with local (Exim 4.67 (FreeBSD))
+       (envelope-from <tim@xen.org>)
+       id 1ScZqh-000IhW-Mm; Thu, 07 Jun 2012 10:21:51 +0000
+Date: Thu, 7 Jun 2012 11:21:51 +0100
+From: Tim Deegan <tim@xen.org>
+To: Ian Campbell <ian.campbell@citrix.com>
+Message-ID: <20120607102151.GM70339@ocelot.phlegethon.org>
+References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
+       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+       <1338565207-2888-32-git-send-email-ian.campbell@citrix.com>
+Mime-Version: 1.0
+Content-Disposition: inline
+In-Reply-To: <1338565207-2888-32-git-send-email-ian.campbell@citrix.com>
+User-Agent: Mutt/1.4.2.1i
+Cc: xen-devel@lists.xen.org
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 32/38] arm: context switch virtual timer
+       registers
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+At 15:40 +0000 on 01 Jun (1338565201), Ian Campbell wrote:
+> Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+
+Acked-by: Tim Deegan <tim@xen.org>
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<20120607102222.GN70339@ocelot.phlegethon.org> b/config/examples/test/corpus/<20120607102222.GN70339@ocelot.phlegethon.org>
new file mode 100644 (file)
index 0000000..418ae94
--- /dev/null
@@ -0,0 +1,81 @@
+From xen-devel-bounces@lists.xen.org Thu Jun 07 11:25:42 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 07 Jun 2012 11:25:42 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1ScZuN-0003xX-Tf
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 07 Jun 2012 11:25:41 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1ScZrG-0002Tv-Lw; Thu, 07 Jun 2012 10:22:26 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72) (envelope-from <tim@xen.org>)
+       id 1ScZrE-0002Ta-Nf
+       for xen-devel@lists.xen.org; Thu, 07 Jun 2012 10:22:24 +0000
+Received: from [85.158.143.99:59523] by server-1.bemta-4.messagelabs.com id
+       28/F6-10042-FD080DF4; Thu, 07 Jun 2012 10:22:23 +0000
+X-Env-Sender: tim@xen.org
+X-Msg-Ref: server-10.tower-216.messagelabs.com!1339064542!25169661!1
+X-Originating-IP: [81.29.64.94]
+X-SpamReason: No, hits=0.0 required=7.0 tests=
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 21794 invoked from network); 7 Jun 2012 10:22:23 -0000
+Received: from ocelot.phlegethon.org (HELO mail.phlegethon.org) (81.29.64.94)
+       by server-10.tower-216.messagelabs.com with DHE-RSA-AES256-SHA
+       encrypted SMTP; 7 Jun 2012 10:22:23 -0000
+Received: from tjd by mail.phlegethon.org with local (Exim 4.67 (FreeBSD))
+       (envelope-from <tim@xen.org>)
+       id 1ScZrC-000Ii1-LV; Thu, 07 Jun 2012 10:22:22 +0000
+Date: Thu, 7 Jun 2012 11:22:22 +0100
+From: Tim Deegan <tim@xen.org>
+To: Ian Campbell <ian.campbell@citrix.com>
+Message-ID: <20120607102222.GN70339@ocelot.phlegethon.org>
+References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
+       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+       <1338565207-2888-33-git-send-email-ian.campbell@citrix.com>
+Mime-Version: 1.0
+Content-Disposition: inline
+In-Reply-To: <1338565207-2888-33-git-send-email-ian.campbell@citrix.com>
+User-Agent: Mutt/1.4.2.1i
+Cc: xen-devel@lists.xen.org
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 33/38] arm: the hyp timer seems to work now,
+       default to using it.
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+At 15:40 +0000 on 01 Jun (1338565202), Ian Campbell wrote:
+> Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+
+Acked-by: Tim Deegan <tim@xen.org>
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<20120607102315.GO70339@ocelot.phlegethon.org> b/config/examples/test/corpus/<20120607102315.GO70339@ocelot.phlegethon.org>
new file mode 100644 (file)
index 0000000..d3c33a6
--- /dev/null
@@ -0,0 +1,81 @@
+From xen-devel-bounces@lists.xen.org Thu Jun 07 11:26:32 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 07 Jun 2012 11:26:32 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1ScZv8-0003xz-3T
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 07 Jun 2012 11:26:32 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1ScZs7-0002d7-3v; Thu, 07 Jun 2012 10:23:19 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72) (envelope-from <tim@xen.org>)
+       id 1ScZs5-0002cm-Ct
+       for xen-devel@lists.xen.org; Thu, 07 Jun 2012 10:23:17 +0000
+Received: from [85.158.139.83:42575] by server-11.bemta-5.messagelabs.com id
+       23/24-25194-41180DF4; Thu, 07 Jun 2012 10:23:16 +0000
+X-Env-Sender: tim@xen.org
+X-Msg-Ref: server-8.tower-182.messagelabs.com!1339064595!18583665!1
+X-Originating-IP: [81.29.64.94]
+X-SpamReason: No, hits=0.0 required=7.0 tests=
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 14005 invoked from network); 7 Jun 2012 10:23:15 -0000
+Received: from ocelot.phlegethon.org (HELO mail.phlegethon.org) (81.29.64.94)
+       by server-8.tower-182.messagelabs.com with DHE-RSA-AES256-SHA
+       encrypted SMTP; 7 Jun 2012 10:23:15 -0000
+Received: from tjd by mail.phlegethon.org with local (Exim 4.67 (FreeBSD))
+       (envelope-from <tim@xen.org>)
+       id 1ScZs3-000IiW-Dk; Thu, 07 Jun 2012 10:23:15 +0000
+Date: Thu, 7 Jun 2012 11:23:15 +0100
+From: Tim Deegan <tim@xen.org>
+To: Ian Campbell <ian.campbell@citrix.com>
+Message-ID: <20120607102315.GO70339@ocelot.phlegethon.org>
+References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
+       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+       <1338565207-2888-35-git-send-email-ian.campbell@citrix.com>
+Mime-Version: 1.0
+Content-Disposition: inline
+In-Reply-To: <1338565207-2888-35-git-send-email-ian.campbell@citrix.com>
+User-Agent: Mutt/1.4.2.1i
+Cc: xen-devel@lists.xen.org
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 35/38] arm: move PSR flag definitions into
+       interface, for tools use.
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+At 15:40 +0000 on 01 Jun (1338565204), Ian Campbell wrote:
+> Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+
+Acked-by: Tim Deegan <tim@xen.org>
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<20120607114240.GQ70339@ocelot.phlegethon.org> b/config/examples/test/corpus/<20120607114240.GQ70339@ocelot.phlegethon.org>
new file mode 100644 (file)
index 0000000..59c7e40
--- /dev/null
@@ -0,0 +1,98 @@
+From xen-devel-bounces@lists.xen.org Thu Jun 07 12:46:22 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 07 Jun 2012 12:46:22 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1ScbAP-0004JV-B1
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 07 Jun 2012 12:46:22 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1Scb6x-0007Dg-Ob; Thu, 07 Jun 2012 11:42:43 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72) (envelope-from <tim@xen.org>)
+       id 1Scb6w-0007DT-Gc
+       for xen-devel@lists.xen.org; Thu, 07 Jun 2012 11:42:42 +0000
+Received: from [85.158.139.83:24557] by server-9.bemta-5.messagelabs.com id
+       A6/3E-29678-1B390DF4; Thu, 07 Jun 2012 11:42:41 +0000
+X-Env-Sender: tim@xen.org
+X-Msg-Ref: server-4.tower-182.messagelabs.com!1339069360!29724498!1
+X-Originating-IP: [81.29.64.94]
+X-SpamReason: No, hits=0.0 required=7.0 tests=
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 1800 invoked from network); 7 Jun 2012 11:42:41 -0000
+Received: from ocelot.phlegethon.org (HELO mail.phlegethon.org) (81.29.64.94)
+       by server-4.tower-182.messagelabs.com with DHE-RSA-AES256-SHA
+       encrypted SMTP; 7 Jun 2012 11:42:41 -0000
+Received: from tjd by mail.phlegethon.org with local (Exim 4.67 (FreeBSD))
+       (envelope-from <tim@xen.org>)
+       id 1Scb6u-000Ivf-C3; Thu, 07 Jun 2012 11:42:40 +0000
+Date: Thu, 7 Jun 2012 12:42:40 +0100
+From: Tim Deegan <tim@xen.org>
+To: Ian Campbell <Ian.Campbell@citrix.com>
+Message-ID: <20120607114240.GQ70339@ocelot.phlegethon.org>
+References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
+       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+       <1338565207-2888-16-git-send-email-ian.campbell@citrix.com>
+       <20120607090808.GD70339@ocelot.phlegethon.org>
+       <1339068947.18523.10.camel@zakaz.uk.xensource.com>
+Mime-Version: 1.0
+Content-Disposition: inline
+In-Reply-To: <1339068947.18523.10.camel@zakaz.uk.xensource.com>
+User-Agent: Mutt/1.4.2.1i
+Cc: Keir Fraser <keir@xen.org>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 16/38] arm: Add simple cpu_{sibling,
+       core}_mask
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+At 12:35 +0100 on 07 Jun (1339072547), Ian Campbell wrote:
+> From e980ca1ec9bf92b2f1255ac5222b1da1292f9f72 Mon Sep 17 00:00:00 2001
+> From: Ian Campbell <ian.campbell@citrix.com>
+> Date: Mon, 14 May 2012 12:25:31 +0100
+> Subject: [PATCH] arm: Add simple cpu_{sibling,core}_mask
+> 
+> This needs to be done for all cpus. The allocations require smp_prepare_cpus
+> to be called a bit later on.
+> 
+> In a previous version of this patch these maps were being zeroed (instead of
+> setting the CPU itself in them). This in turn causes cpumask_first to return
+> NR_CPUS, which in turn was causing default_vcpu0_location to misbehave and
+> read off the end of its cnt array. Add a couple of asserts to catch this in
+> the future.
+> 
+> Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+
+(ARM stuff) Acked-by: Tim Deegan <tim@xen.org>
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<20120607123922.GR70339@ocelot.phlegethon.org> b/config/examples/test/corpus/<20120607123922.GR70339@ocelot.phlegethon.org>
new file mode 100644 (file)
index 0000000..f49c294
--- /dev/null
@@ -0,0 +1,116 @@
+From xen-devel-bounces@lists.xen.org Thu Jun 07 13:43:53 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 07 Jun 2012 13:43:53 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1Scc47-0004Rs-6D
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 07 Jun 2012 13:43:53 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1Scbzq-00008P-Kn; Thu, 07 Jun 2012 12:39:26 +0000
+Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
+       by lists.xen.org with esmtp (Exim 4.72) (envelope-from <tim@xen.org>)
+       id 1Scbzp-00008K-7U
+       for xen-devel@lists.xen.org; Thu, 07 Jun 2012 12:39:25 +0000
+Received: from [193.109.254.147:15795] by server-11.bemta-14.messagelabs.com
+       id EA/6E-02727-CF0A0DF4; Thu, 07 Jun 2012 12:39:24 +0000
+X-Env-Sender: tim@xen.org
+X-Msg-Ref: server-2.tower-27.messagelabs.com!1339072763!8553453!1
+X-Originating-IP: [81.29.64.94]
+X-SpamReason: No, hits=0.0 required=7.0 tests=
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 16795 invoked from network); 7 Jun 2012 12:39:23 -0000
+Received: from ocelot.phlegethon.org (HELO mail.phlegethon.org) (81.29.64.94)
+       by server-2.tower-27.messagelabs.com with DHE-RSA-AES256-SHA
+       encrypted SMTP; 7 Jun 2012 12:39:23 -0000
+Received: from tjd by mail.phlegethon.org with local (Exim 4.67 (FreeBSD))
+       (envelope-from <tim@xen.org>)
+       id 1Scbzm-000J4d-Jz; Thu, 07 Jun 2012 12:39:22 +0000
+Date: Thu, 7 Jun 2012 13:39:22 +0100
+From: Tim Deegan <tim@xen.org>
+To: Ian Campbell <Ian.Campbell@citrix.com>
+Message-ID: <20120607123922.GR70339@ocelot.phlegethon.org>
+References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
+       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+       <1338565207-2888-2-git-send-email-ian.campbell@citrix.com>
+       <20120607084517.GA70339@ocelot.phlegethon.org>
+       <1339070260.18523.14.camel@zakaz.uk.xensource.com>
+Mime-Version: 1.0
+Content-Disposition: inline
+In-Reply-To: <1339070260.18523.14.camel@zakaz.uk.xensource.com>
+User-Agent: Mutt/1.4.2.1i
+Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 02/38] arm: handy function to print a walk
+       of the hypervisor page tables
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+At 12:57 +0100 on 07 Jun (1339073860), Ian Campbell wrote:
+> On Thu, 2012-06-07 at 09:45 +0100, Tim Deegan wrote:
+> > Hi,
+> > 
+> > At 15:39 +0000 on 01 Jun (1338565171), Ian Campbell wrote:
+> > > +void dump_pt_walk(uint32_t addr)
+> > > +{
+> > > +    paddr_t second_ma, third_ma;
+> > > +    lpae_t *first = NULL, *second = NULL, *third = NULL;
+> > > +    uint64_t httbr = READ_CP64(HTTBR);
+> > > +
+> > > +    printk("Walking Hypervisor VA %#"PRIx32" via HTTBR %#"PRIx64"\n",
+> > > +           addr, httbr);
+> > > +
+> > > +    BUG_ON( (lpae_t *)(unsigned long)(httbr - xen_phys_offset) != xen_pgtable );
+> > > +    first = xen_pgtable;
+> > > +    printk("1ST[%#03"PRIx32"] = %p[%#03"PRIx32"] = %#llx = %#016llx\n",
+> > > +           first_table_offset(addr),
+> > > +           first, first_table_offset(addr),
+> > > +           virt_to_maddr(&first[first_table_offset(addr)]),
+> > > +           first[first_table_offset(addr)].bits);
+> > > +
+> > > +    if ( !first[first_table_offset(addr)].pt.valid ||
+> > > +         !first[first_table_offset(addr)].pt.table )
+> > > +        goto done;
+> > 
+> > This could probably be a for loop rather than open-coding three
+> > almost-identical printks.
+> 
+> The *_table_offsets macro names are different at each stage, I suppose I
+> could open code the equivalent shifts, but I'd rather keep using the
+> access macros.
+
+Ah, OK.  In that case, open-coded is fine. 
+
+Tim.
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<20120607124033.GS70339@ocelot.phlegethon.org> b/config/examples/test/corpus/<20120607124033.GS70339@ocelot.phlegethon.org>
new file mode 100644 (file)
index 0000000..d0dacce
--- /dev/null
@@ -0,0 +1,143 @@
+From xen-devel-bounces@lists.xen.org Thu Jun 07 13:44:23 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 07 Jun 2012 13:44:23 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1Scc4Y-0004SB-FB
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 07 Jun 2012 13:44:23 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1Scc10-0000Bd-3D; Thu, 07 Jun 2012 12:40:38 +0000
+Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
+       by lists.xen.org with esmtp (Exim 4.72) (envelope-from <tim@xen.org>)
+       id 1Scc0y-0000BX-8y
+       for xen-devel@lists.xen.org; Thu, 07 Jun 2012 12:40:36 +0000
+Received: from [193.109.254.147:30020] by server-11.bemta-14.messagelabs.com
+       id 7B/DF-02727-341A0DF4; Thu, 07 Jun 2012 12:40:35 +0000
+X-Env-Sender: tim@xen.org
+X-Msg-Ref: server-8.tower-27.messagelabs.com!1339072833!8613049!1
+X-Originating-IP: [81.29.64.94]
+X-SpamReason: No, hits=0.5 required=7.0 tests=BODY_RANDOM_LONG
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 19215 invoked from network); 7 Jun 2012 12:40:34 -0000
+Received: from ocelot.phlegethon.org (HELO mail.phlegethon.org) (81.29.64.94)
+       by server-8.tower-27.messagelabs.com with DHE-RSA-AES256-SHA
+       encrypted SMTP; 7 Jun 2012 12:40:34 -0000
+Received: from tjd by mail.phlegethon.org with local (Exim 4.67 (FreeBSD))
+       (envelope-from <tim@xen.org>)
+       id 1Scc0v-000J5H-NQ; Thu, 07 Jun 2012 12:40:33 +0000
+Date: Thu, 7 Jun 2012 13:40:33 +0100
+From: Tim Deegan <tim@xen.org>
+To: Ian Campbell <Ian.Campbell@citrix.com>
+Message-ID: <20120607124033.GS70339@ocelot.phlegethon.org>
+References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
+       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+       <1338565207-2888-3-git-send-email-ian.campbell@citrix.com>
+       <20120607084917.GB70339@ocelot.phlegethon.org>
+       <1339072005.18523.18.camel@zakaz.uk.xensource.com>
+Mime-Version: 1.0
+Content-Disposition: inline
+In-Reply-To: <1339072005.18523.18.camel@zakaz.uk.xensource.com>
+User-Agent: Mutt/1.4.2.1i
+Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 03/38] arm: handy function to print a walk
+       of a domain's p2m.
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+At 13:26 +0100 on 07 Jun (1339075605), Ian Campbell wrote:
+> On Thu, 2012-06-07 at 09:49 +0100, Tim Deegan wrote:
+> > At 15:39 +0000 on 01 Jun (1338565172), Ian Campbell wrote:
+> > > Useful for debug but not actually used in this patch.
+> > > 
+> > > Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+> > > ---
+> > >  xen/arch/arm/p2m.c         |   34 ++++++++++++++++++++++++++++++++++
+> > >  xen/include/asm-arm/page.h |    1 +
+> > >  2 files changed, 35 insertions(+), 0 deletions(-)
+> > > 
+> > > diff --git a/xen/arch/arm/p2m.c b/xen/arch/arm/p2m.c
+> > > index 4f624d8..fdbecbc 100644
+> > > --- a/xen/arch/arm/p2m.c
+> > > +++ b/xen/arch/arm/p2m.c
+> > > @@ -5,6 +5,40 @@
+> > >  #include <xen/domain_page.h>
+> > >  #include <asm/flushtlb.h>
+> > >  
+> > > +void dump_p2m_lookup(struct domain *d, paddr_t addr)
+> > > +{
+> > > +    struct p2m_domain *p2m = &d->arch.p2m;
+> > > +    lpae_t *first = NULL, *second = NULL, *third = NULL;
+> > > +
+> > > +    printk("dom%d IPA %#016llx\n", d->domain_id, addr);
+> > > +
+> > > +    first = __map_domain_page(p2m->first_level);
+> > > +    printk("1ST[%#03llx] = %#016llx\n",
+> > > +           first_table_offset(addr),
+> > > +           first[first_table_offset(addr)].bits);
+> > > +    if ( !first[first_table_offset(addr)].p2m.valid ||
+> > > +         !first[first_table_offset(addr)].p2m.table )
+> > > +        goto done;
+> > > +
+> > > +    second = map_domain_page(first[first_table_offset(addr)].p2m.base);
+> > > +    printk("2ND[%#03llx] = %#016llx\n",
+> > > +           second_table_offset(addr),
+> > > +           second[second_table_offset(addr)].bits);
+> > > +    if ( !second[second_table_offset(addr)].p2m.valid ||
+> > > +         !second[second_table_offset(addr)].p2m.table )
+> > > +        goto done;
+> > > +
+> > > +    third = map_domain_page(second[second_table_offset(addr)].p2m.base);
+> > > +    printk("3RD[%#03llx] = %#016llx\n",
+> > > +           third_table_offset(addr),
+> > > +           third[third_table_offset(addr)].bits);
+> > > +
+> > > +done:
+> > > +    if (third) unmap_domain_page(third);
+> > > +    if (second) unmap_domain_page(second);
+> > > +    if (first) unmap_domain_page(first);
+> > > +}
+> > 
+> > Can this be unified with dump_pt_walk?
+> 
+> Not all that easily, mainly because dump_pt_walk walks xenheap pages
+> (which don't need mapping) while dump_p2m_walk dumps domheap pages
+> (which need mapping as we go). I probably could write something generic
+> enough but I fear that it would be a mass of if's.
+
+Is there any harm in mapping xenheap pages?  Since this is only invoked
+on error paths, we don't particularly need it to be fast. 
+
+Tim.
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<20120607135930.GW70339@ocelot.phlegethon.org> b/config/examples/test/corpus/<20120607135930.GW70339@ocelot.phlegethon.org>
new file mode 100644 (file)
index 0000000..135071e
--- /dev/null
@@ -0,0 +1,123 @@
+From xen-devel-bounces@lists.xen.org Thu Jun 07 15:03:53 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 07 Jun 2012 15:03:53 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1ScdJT-0004oy-Sx
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 07 Jun 2012 15:03:53 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1ScdFO-0003R2-IM; Thu, 07 Jun 2012 13:59:34 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72) (envelope-from <tim@xen.org>)
+       id 1ScdFM-0003Qt-9C
+       for xen-devel@lists.xen.org; Thu, 07 Jun 2012 13:59:32 +0000
+Received: from [85.158.138.51:50105] by server-4.bemta-3.messagelabs.com id
+       54/C2-13598-3C3B0DF4; Thu, 07 Jun 2012 13:59:31 +0000
+X-Env-Sender: tim@xen.org
+X-Msg-Ref: server-9.tower-174.messagelabs.com!1339077570!31328359!1
+X-Originating-IP: [81.29.64.94]
+X-SpamReason: No, hits=0.0 required=7.0 tests=
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 21850 invoked from network); 7 Jun 2012 13:59:30 -0000
+Received: from ocelot.phlegethon.org (HELO mail.phlegethon.org) (81.29.64.94)
+       by server-9.tower-174.messagelabs.com with DHE-RSA-AES256-SHA
+       encrypted SMTP; 7 Jun 2012 13:59:30 -0000
+Received: from tjd by mail.phlegethon.org with local (Exim 4.67 (FreeBSD))
+       (envelope-from <tim@xen.org>)
+       id 1ScdFK-000JI8-5g; Thu, 07 Jun 2012 13:59:30 +0000
+Date: Thu, 7 Jun 2012 14:59:30 +0100
+From: Tim Deegan <tim@xen.org>
+To: Ian Campbell <Ian.Campbell@citrix.com>
+Message-ID: <20120607135930.GW70339@ocelot.phlegethon.org>
+References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
+       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+       <1338565207-2888-29-git-send-email-ian.campbell@citrix.com>
+       <20120601170514.GD77921@ocelot.phlegethon.org>
+       <1338577461.14877.61.camel@dagon.hellion.org.uk>
+Mime-Version: 1.0
+Content-Disposition: inline
+In-Reply-To: <1338577461.14877.61.camel@dagon.hellion.org.uk>
+User-Agent: Mutt/1.4.2.1i
+Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 29/38] arm: delay enabling data-cache until
+       paging enabled.
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+At 20:04 +0100 on 01 Jun (1338581061), Ian Campbell wrote:
+> On Fri, 2012-06-01 at 18:05 +0100, Tim Deegan wrote:
+> > At 15:39 +0000 on 01 Jun (1338565198), Ian Campbell wrote:
+> > > With enough warnings enabled the model seemed to be complaining that pages
+> > > cached before paging was enabled had been mapped with to inconsistent sets of
+> > > attributes. I'm not convinced that isn't a model issue, nor am I convinced
+> > > this has really fixed anything, but it seems sensible enough.
+> > 
+> > This might be what breaks secondary CPU bringup: pagetables built by CPU
+> > 0 may not have been flushed all the way to RAM when CPU 1 comes up, and
+> > CPU 1 isn't participating in cache coherence protocols when it
+> > starts to need them.
+> 
+> The issue here is the lack of the necessary flush, rather than this
+> change particularly, right?
+
+It turns out to be much more prosaic - the patch to delete the identity
+mapping from the boot pagetables was scuppering non-boot CPUs.
+
+So this is OK, but can I suggest this to tidy it up?
+
+diff --git a/xen/arch/arm/head.S b/xen/arch/arm/head.S
+index 71197af..0d8ce0f 100644
+--- a/xen/arch/arm/head.S
++++ b/xen/arch/arm/head.S
+@@ -211,17 +211,13 @@ pt_ready:
+       ldr   r1, =paging            /* Explicit vaddr, not RIP-relative */
+       mrc   CP32(r0, HSCTLR)
+-      orr   r0, r0, #0x1           /* Add in the MMU enable bit */
++      orr   r0, r0, #(SCTLR_M|SCTLR_C) /* Enable MMU and D-cache */
+       dsb                          /* Flush PTE writes and finish reads */
+       mcr   CP32(r0, HSCTLR)       /* now paging is enabled */
+       isb                          /* Now, flush the icache */
+       mov   pc, r1                 /* Get a proper vaddr into PC */
+ paging:
+-      mrc   CP32(r0, HSCTLR)       /* Now enable data cache */
+-      orr   r0, r0, #(SCTLR_C)
+-      mcr   CP32(r0, HSCTLR)
+-
+ #ifdef EARLY_UART_ADDRESS
+       /* Recover the UART address in the new address space. */
+       lsl   r11, #11
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<20120607191035.GA76463@ocelot.phlegethon.org> b/config/examples/test/corpus/<20120607191035.GA76463@ocelot.phlegethon.org>
new file mode 100644 (file)
index 0000000..2841c41
--- /dev/null
@@ -0,0 +1,102 @@
+From xen-devel-bounces@lists.xen.org Thu Jun 07 20:14:35 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 07 Jun 2012 20:14:35 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SciAC-0005r0-TN
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 07 Jun 2012 20:14:35 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1Sci6T-0000xo-AM; Thu, 07 Jun 2012 19:10:41 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72) (envelope-from <tim@xen.org>)
+       id 1Sci6Q-0000xj-T2
+       for xen-devel@lists.xen.org; Thu, 07 Jun 2012 19:10:39 +0000
+Received: from [85.158.138.51:31261] by server-2.bemta-3.messagelabs.com id
+       1B/C5-16299-EACF0DF4; Thu, 07 Jun 2012 19:10:38 +0000
+X-Env-Sender: tim@xen.org
+X-Msg-Ref: server-14.tower-174.messagelabs.com!1339096237!24979852!1
+X-Originating-IP: [81.29.64.94]
+X-SpamReason: No, hits=0.0 required=7.0 tests=
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 3480 invoked from network); 7 Jun 2012 19:10:37 -0000
+Received: from ocelot.phlegethon.org (HELO mail.phlegethon.org) (81.29.64.94)
+       by server-14.tower-174.messagelabs.com with DHE-RSA-AES256-SHA
+       encrypted SMTP; 7 Jun 2012 19:10:37 -0000
+Received: from tjd by mail.phlegethon.org with local (Exim 4.67 (FreeBSD))
+       (envelope-from <tim@xen.org>)
+       id 1Sci6N-000KA7-EE; Thu, 07 Jun 2012 19:10:35 +0000
+Date: Thu, 7 Jun 2012 20:10:35 +0100
+From: Tim Deegan <tim@xen.org>
+To: Ian Campbell <Ian.Campbell@citrix.com>
+Message-ID: <20120607191035.GA76463@ocelot.phlegethon.org>
+References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
+       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+       <1338565207-2888-3-git-send-email-ian.campbell@citrix.com>
+       <20120607084917.GB70339@ocelot.phlegethon.org>
+       <1339072005.18523.18.camel@zakaz.uk.xensource.com>
+       <20120607124033.GS70339@ocelot.phlegethon.org>
+       <1339077263.18523.19.camel@zakaz.uk.xensource.com>
+       <1339086867.18523.36.camel@zakaz.uk.xensource.com>
+Mime-Version: 1.0
+Content-Disposition: inline
+In-Reply-To: <1339086867.18523.36.camel@zakaz.uk.xensource.com>
+User-Agent: Mutt/1.4.2.1i
+Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 03/38] arm: handy function to print a walk
+       of a domain's p2m.
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+At 17:34 +0100 on 07 Jun (1339090467), Ian Campbell wrote:
+> Well it works, this means that this patch and the previous patch then
+> collapse down into a single patch:
+> 
+> 8<-------------------------------------------------------
+> 
+> From 055fe5f4a3a77f292d5a2a6b9f56a4d14dad3519 Mon Sep 17 00:00:00 2001
+> From: Ian Campbell <ian.campbell@citrix.com>
+> Date: Fri, 2 Mar 2012 12:02:42 +0000
+> Subject: [PATCH] arm: handy function to print a walk of a page table
+> 
+> Include helpers for dumping hypervisor walks and guest p2m walks.
+> 
+> Useful for debug but not actually used in this patch.
+> 
+> Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+
+Great!  For this and the follow-up typo fix:
+Acked-by: Tim Deegan <tim@xen.org>
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<20120614084732.GA82539@ocelot.phlegethon.org> b/config/examples/test/corpus/<20120614084732.GA82539@ocelot.phlegethon.org>
new file mode 100644 (file)
index 0000000..55de627
--- /dev/null
@@ -0,0 +1,156 @@
+From xen-devel-bounces@lists.xen.org Thu Jun 14 09:53:05 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 14 Jun 2012 09:53:05 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1Sf5nb-0007et-90
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 14 Jun 2012 09:53:05 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1Sf5iK-0006CB-Kx; Thu, 14 Jun 2012 08:47:36 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72) (envelope-from <tim@xen.org>)
+       id 1Sf5iJ-0006C3-8S
+       for xen-devel@lists.xen.org; Thu, 14 Jun 2012 08:47:35 +0000
+Received: from [85.158.143.99:7078] by server-2.bemta-4.messagelabs.com id
+       FF/28-17938-625A9DF4; Thu, 14 Jun 2012 08:47:34 +0000
+X-Env-Sender: tim@xen.org
+X-Msg-Ref: server-12.tower-216.messagelabs.com!1339663653!22068412!1
+X-Originating-IP: [81.29.64.94]
+X-SpamReason: No, hits=0.0 required=7.0 tests=
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 5699 invoked from network); 14 Jun 2012 08:47:33 -0000
+Received: from ocelot.phlegethon.org (HELO mail.phlegethon.org) (81.29.64.94)
+       by server-12.tower-216.messagelabs.com with DHE-RSA-AES256-SHA
+       encrypted SMTP; 14 Jun 2012 08:47:33 -0000
+Received: from tjd by mail.phlegethon.org with local (Exim 4.67 (FreeBSD))
+       (envelope-from <tim@xen.org>)
+       id 1Sf5iG-000Ldh-Su; Thu, 14 Jun 2012 08:47:32 +0000
+Date: Thu, 14 Jun 2012 09:47:32 +0100
+From: Tim Deegan <tim@xen.org>
+To: Ian Campbell <Ian.Campbell@citrix.com>
+Message-ID: <20120614084732.GA82539@ocelot.phlegethon.org>
+References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
+       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+       <1338565207-2888-11-git-send-email-ian.campbell@citrix.com>
+       <20120607090334.GC70339@ocelot.phlegethon.org>
+       <1339600416.24104.228.camel@zakaz.uk.xensource.com>
+Mime-Version: 1.0
+Content-Disposition: inline
+In-Reply-To: <1339600416.24104.228.camel@zakaz.uk.xensource.com>
+User-Agent: Mutt/1.4.2.1i
+Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 11/38] arm: implement p2m lookup
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+At 16:13 +0100 on 13 Jun (1339604016), Ian Campbell wrote:
+> Yes, that looks nice, although you still need a bit of a quirk for the
+> third level table bit. Patch below.
+
+Much nicer.   One more round of nits below if you feel keen; in any case,
+Acked-by: Tim Deegan <tim@xen.org>
+
+> +paddr_t p2m_lookup(struct domain *d, paddr_t paddr)
+> +{
+> +    struct p2m_domain *p2m = &d->arch.p2m;
+> +    lpae_t pte, *first = NULL, *second = NULL, *third = NULL;
+> +    paddr_t maddr = INVALID_PADDR;
+> +
+> +    spin_lock(&p2m->lock);
+> +
+> +    first = __map_domain_page(p2m->first_level);
+> +
+> +    pte = first[first_table_offset(paddr)];
+> +    if ( !pte.p2m.valid || !pte.p2m.table )
+> +        goto done;
+> +
+> +    second = map_domain_page(first[first_table_offset(paddr)].p2m.base);
+
+second = map_domain_page(pte.p2m.base); ?
+
+> +    pte = second[second_table_offset(paddr)];
+> +    if ( !pte.p2m.valid || !pte.p2m.table )
+> +        goto done;
+> +
+> +    third = map_domain_page(second[second_table_offset(paddr)].p2m.base);
+
+likewise, third = map_domain_page(pte.p2m.base); ?
+
+> +    pte = third[third_table_offset(paddr)];
+> +
+> +    /* This bit must be one in the level 3 entry */
+> +    if ( !pte.p2m.table )
+> +        pte.bits = 0;
+> +
+> +done:
+> +    if ( pte.p2m.valid )
+> +        maddr = (pte.bits & PADDR_MASK & PAGE_MASK) | (paddr & ~PAGE_MASK);
+> +
+> +    if (third) unmap_domain_page(third);
+> +    if (second) unmap_domain_page(second);
+> +    if (first) unmap_domain_page(first);
+> +
+> +    spin_unlock(&p2m->lock);
+> +
+> +    return maddr;
+> +}
+> +
+>  int guest_physmap_mark_populate_on_demand(struct domain *d,
+>                                            unsigned long gfn,
+>                                            unsigned int order)
+> diff --git a/xen/include/asm-arm/p2m.h b/xen/include/asm-arm/p2m.h
+> index 349923a..1afd5cb 100644
+> --- a/xen/include/asm-arm/p2m.h
+> +++ b/xen/include/asm-arm/p2m.h
+> @@ -32,6 +32,9 @@ int p2m_alloc_table(struct domain *d);
+>  /* */
+>  void p2m_load_VTTBR(struct domain *d);
+>  
+> +/* */
+
+ /* Look up the MFN corresponding to a domain's PFN. */
+
+> +paddr_t p2m_lookup(struct domain *d, paddr_t gpfn);
+> +
+>  /* Setup p2m RAM mapping for domain d from start-end. */
+>  int p2m_populate_ram(struct domain *d, paddr_t start, paddr_t end);
+>  /* Map MMIO regions in the p2m: start_gaddr and end_gaddr is the range
+> -- 
+> 1.7.9.1
+> 
+> 
+> 
+> 
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<20120628180007.06bb3fd3@mantra.us.oracle.com> b/config/examples/test/corpus/<20120628180007.06bb3fd3@mantra.us.oracle.com>
new file mode 100644 (file)
index 0000000..db0705a
--- /dev/null
@@ -0,0 +1,106 @@
+From xen-devel-bounces@lists.xen.org Fri Jun 29 02:05:25 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 29 Jun 2012 02:05:25 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SkPeE-0003ki-Qx
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 29 Jun 2012 02:05:25 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SkPZO-0004ey-Cf; Fri, 29 Jun 2012 01:00:22 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <mukesh.rathor@oracle.com>) id 1SkPZM-0004RE-OM
+       for Xen-devel@lists.xensource.com; Fri, 29 Jun 2012 01:00:20 +0000
+Received: from [85.158.143.35:23351] by server-2.bemta-4.messagelabs.com id
+       1B/20-17938-42EFCEF4; Fri, 29 Jun 2012 01:00:20 +0000
+X-Env-Sender: mukesh.rathor@oracle.com
+X-Msg-Ref: server-5.tower-21.messagelabs.com!1340931617!6819693!1
+X-Originating-IP: [148.87.113.117]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogMTQ4Ljg3LjExMy4xMTcgPT4gNjEwOTU5\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 25247 invoked from network); 29 Jun 2012 01:00:18 -0000
+Received: from rcsinet15.oracle.com (HELO rcsinet15.oracle.com)
+       (148.87.113.117)
+       by server-5.tower-21.messagelabs.com with DHE-RSA-AES256-SHA encrypted
+       SMTP; 29 Jun 2012 01:00:18 -0000
+Received: from acsinet21.oracle.com (acsinet21.oracle.com [141.146.126.237])
+       by rcsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
+       ESMTP id q5T10AON003045
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
+       Fri, 29 Jun 2012 01:00:11 GMT
+Received: from acsmt358.oracle.com (acsmt358.oracle.com [141.146.40.158])
+       by acsinet21.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
+       q5T109Vt022586
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
+       Fri, 29 Jun 2012 01:00:10 GMT
+Received: from abhmt117.oracle.com (abhmt117.oracle.com [141.146.116.69])
+       by acsmt358.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
+       q5T109N7025942; Thu, 28 Jun 2012 20:00:09 -0500
+Received: from mantra.us.oracle.com (/130.35.68.95)
+       by default (Oracle Beehive Gateway v4.0)
+       with ESMTP ; Thu, 28 Jun 2012 18:00:08 -0700
+Date: Thu, 28 Jun 2012 18:00:07 -0700
+From: Mukesh Rathor <mukesh.rathor@oracle.com>
+To: "Xen-devel@lists.xensource.com" <Xen-devel@lists.xensource.com>,
+       "stefano.stabellini@eu.citrix.com" <stefano.stabellini@eu.citrix.com>, Ian
+       Campbell <Ian.Campbell@citrix.com>
+Message-ID: <20120628180007.06bb3fd3@mantra.us.oracle.com>
+Organization: Oracle Corporation
+X-Mailer: Claws Mail 3.7.6 (GTK+ 2.18.9; x86_64-redhat-linux-gnu)
+Mime-Version: 1.0
+X-Source-IP: acsinet21.oracle.com [141.146.126.237]
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: [Xen-devel] [HYBRID]: XEN_EMULATE_PREFIX in user process
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+Hi,
+
+Booting latest upstream pv linux as dom0, I noticed dm_mapper, user
+level process, is running with XEN_EMULATE_PREFIX cpuid. I am
+wondering if the prefix is statically put there, or how its put there?
+
+For hybrid, the hvm container traps cpuid, so we don't need to prefix
+cpuid. Less code if I don't have to worry about trapping the invalid
+op. There seems places where the cpuid is run without the xen prefix in
+user mode.
+
+BTW, for cpuid vmexit, if kernel mode I call pv_cpuid, if user mode, I
+just return cpuid values, as that's what would happen without the HVM
+container.
+
+thanks,
+Mukesh
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<20120628182602.6cc9b432@mantra.us.oracle.com> b/config/examples/test/corpus/<20120628182602.6cc9b432@mantra.us.oracle.com>
new file mode 100644 (file)
index 0000000..2b45685
--- /dev/null
@@ -0,0 +1,147 @@
+From xen-devel-bounces@lists.xen.org Fri Jun 29 02:30:57 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 29 Jun 2012 02:30:57 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SkQ2x-0003qS-6r
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 29 Jun 2012 02:30:57 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SkPyT-0006On-14; Fri, 29 Jun 2012 01:26:17 +0000
+Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <mukesh.rathor@oracle.com>) id 1SkPyR-0006Oi-Bs
+       for Xen-devel@lists.xensource.com; Fri, 29 Jun 2012 01:26:15 +0000
+Received: from [193.109.254.147:44571] by server-8.bemta-14.messagelabs.com id
+       89/C5-30743-6340DEF4; Fri, 29 Jun 2012 01:26:14 +0000
+X-Env-Sender: mukesh.rathor@oracle.com
+X-Msg-Ref: server-14.tower-27.messagelabs.com!1340933171!2256441!1
+X-Originating-IP: [148.87.113.117]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogMTQ4Ljg3LjExMy4xMTcgPT4gNjEwOTU5\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 27923 invoked from network); 29 Jun 2012 01:26:12 -0000
+Received: from rcsinet15.oracle.com (HELO rcsinet15.oracle.com)
+       (148.87.113.117)
+       by server-14.tower-27.messagelabs.com with DHE-RSA-AES256-SHA encrypted
+       SMTP; 29 Jun 2012 01:26:12 -0000
+Received: from ucsinet21.oracle.com (ucsinet21.oracle.com [156.151.31.93])
+       by rcsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
+       ESMTP id q5T1Q6BF019511
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
+       Fri, 29 Jun 2012 01:26:07 GMT
+Received: from acsmt356.oracle.com (acsmt356.oracle.com [141.146.40.156])
+       by ucsinet21.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
+       q5T1Q6OL024616
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
+       Fri, 29 Jun 2012 01:26:06 GMT
+Received: from abhmt108.oracle.com (abhmt108.oracle.com [141.146.116.60])
+       by acsmt356.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
+       q5T1Q53p016189; Thu, 28 Jun 2012 20:26:05 -0500
+Received: from mantra.us.oracle.com (/130.35.68.95)
+       by default (Oracle Beehive Gateway v4.0)
+       with ESMTP ; Thu, 28 Jun 2012 18:26:05 -0700
+Date: Thu, 28 Jun 2012 18:26:02 -0700
+From: Mukesh Rathor <mukesh.rathor@oracle.com>
+To: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+Message-ID: <20120628182602.6cc9b432@mantra.us.oracle.com>
+In-Reply-To: <20120629010903.GC4902@phenom.dumpdata.com>
+References: <20120628180007.06bb3fd3@mantra.us.oracle.com>
+       <20120629010903.GC4902@phenom.dumpdata.com>
+Organization: Oracle Corporation
+X-Mailer: Claws Mail 3.7.6 (GTK+ 2.18.9; x86_64-redhat-linux-gnu)
+Mime-Version: 1.0
+X-Source-IP: ucsinet21.oracle.com [156.151.31.93]
+Cc: "Xen-devel@lists.xensource.com" <Xen-devel@lists.xensource.com>,
+       Ian Campbell <Ian.Campbell@citrix.com>,
+       "stefano.stabellini@eu.citrix.com" <stefano.stabellini@eu.citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [HYBRID]: XEN_EMULATE_PREFIX in user process
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Thu, 28 Jun 2012 21:09:03 -0400
+Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> wrote:
+
+> On Thu, Jun 28, 2012 at 06:00:07PM -0700, Mukesh Rathor wrote:
+> > Hi,
+> > 
+> > Booting latest upstream pv linux as dom0, I noticed dm_mapper, user
+> > level process, is running with XEN_EMULATE_PREFIX cpuid. I am
+> > wondering if the prefix is statically put there, or how its put
+> > there?
+> 
+> That is impressive. It should be only be in the kernel via the pvops
+> cpuid call which does this:
+> 
+>  252         asm(XEN_EMULATE_PREFIX "cpuid"
+>  253                 : "=a" (*ax),
+>  254                   "=b" (*bx),
+>  255                   "=c" (*cx),
+>  256                   "=d" (*dx)
+>  257                 : "0" (*ax), "2" (*cx));
+>  258 
+> 
+> 
+> > 
+> > For hybrid, the hvm container traps cpuid, so we don't need to
+> > prefix cpuid. Less code if I don't have to worry about trapping the
+> > invalid op. There seems places where the cpuid is run without the
+> > xen prefix in user mode.
+> 
+> Right, you can make the .cpuid pvops call point to the native.
+
+Yup. In the kernel I do that already.
+
+> > 
+> > BTW, for cpuid vmexit, if kernel mode I call pv_cpuid, if user
+> > mode, I just return cpuid values, as that's what would happen
+> > without the HVM container.
+> 
+> You mean in PV mode in user-space you would get the unfiltered cpuid
+> value? Yes, that is true. Which is why I am surprised that dm_mapper
+> (are you sure it is not a kernel thread?) is doing that.
+
+User mode:
+
+RIP: 0x0000000000400692 CS: 0x0033
+
+[0]xkdb> dd 0x0000000000400680 32 0
+0000000000400680:  89f88953e5894855 db8500000000b9d3
+0000000000400690:  0f6e65780b0f0574 4e89045e890689a2
+
+thanks,
+Mukesh
+
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<20120629010903.GC4902@phenom.dumpdata.com> b/config/examples/test/corpus/<20120629010903.GC4902@phenom.dumpdata.com>
new file mode 100644 (file)
index 0000000..fea6895
--- /dev/null
@@ -0,0 +1,138 @@
+From xen-devel-bounces@lists.xen.org Fri Jun 29 02:21:41 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 29 Jun 2012 02:21:41 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SkPty-0003p8-Nj
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 29 Jun 2012 02:21:41 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SkPpY-0006FU-Vb; Fri, 29 Jun 2012 01:17:04 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <konrad.wilk@oracle.com>) id 1SkPpX-0006FP-LC
+       for Xen-devel@lists.xensource.com; Fri, 29 Jun 2012 01:17:03 +0000
+Received: from [85.158.143.35:12891] by server-3.bemta-4.messagelabs.com id
+       3E/17-05808-E020DEF4; Fri, 29 Jun 2012 01:17:02 +0000
+X-Env-Sender: konrad.wilk@oracle.com
+X-Msg-Ref: server-5.tower-21.messagelabs.com!1340932621!6821418!1
+X-Originating-IP: [148.87.113.117]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogMTQ4Ljg3LjExMy4xMTcgPT4gNjEwOTU5\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 2673 invoked from network); 29 Jun 2012 01:17:02 -0000
+Received: from rcsinet15.oracle.com (HELO rcsinet15.oracle.com)
+       (148.87.113.117)
+       by server-5.tower-21.messagelabs.com with DHE-RSA-AES256-SHA encrypted
+       SMTP; 29 Jun 2012 01:17:02 -0000
+Received: from ucsinet22.oracle.com (ucsinet22.oracle.com [156.151.31.94])
+       by rcsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
+       ESMTP id q5T1GtT8014380
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
+       Fri, 29 Jun 2012 01:16:56 GMT
+Received: from acsmt358.oracle.com (acsmt358.oracle.com [141.146.40.158])
+       by ucsinet22.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
+       q5T1GsHb025044
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
+       Fri, 29 Jun 2012 01:16:55 GMT
+Received: from abhmt118.oracle.com (abhmt118.oracle.com [141.146.116.70])
+       by acsmt358.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
+       q5T1GsTg001763; Thu, 28 Jun 2012 20:16:54 -0500
+Received: from phenom.dumpdata.com (/209.6.85.33)
+       by default (Oracle Beehive Gateway v4.0)
+       with ESMTP ; Thu, 28 Jun 2012 18:16:54 -0700
+Received: by phenom.dumpdata.com (Postfix, from userid 1000)
+       id E65F74029A; Thu, 28 Jun 2012 21:09:03 -0400 (EDT)
+Date: Thu, 28 Jun 2012 21:09:03 -0400
+From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+To: Mukesh Rathor <mukesh.rathor@oracle.com>
+Message-ID: <20120629010903.GC4902@phenom.dumpdata.com>
+References: <20120628180007.06bb3fd3@mantra.us.oracle.com>
+MIME-Version: 1.0
+Content-Disposition: inline
+In-Reply-To: <20120628180007.06bb3fd3@mantra.us.oracle.com>
+User-Agent: Mutt/1.5.21 (2010-09-15)
+X-Source-IP: ucsinet22.oracle.com [156.151.31.94]
+Cc: "Xen-devel@lists.xensource.com" <Xen-devel@lists.xensource.com>,
+       Ian Campbell <Ian.Campbell@citrix.com>,
+       "stefano.stabellini@eu.citrix.com" <stefano.stabellini@eu.citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [HYBRID]: XEN_EMULATE_PREFIX in user process
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Thu, Jun 28, 2012 at 06:00:07PM -0700, Mukesh Rathor wrote:
+> Hi,
+> 
+> Booting latest upstream pv linux as dom0, I noticed dm_mapper, user
+> level process, is running with XEN_EMULATE_PREFIX cpuid. I am
+> wondering if the prefix is statically put there, or how its put there?
+
+That is impressive. It should be only be in the kernel via the pvops
+cpuid call which does this:
+
+ 252         asm(XEN_EMULATE_PREFIX "cpuid"
+ 253                 : "=a" (*ax),
+ 254                   "=b" (*bx),
+ 255                   "=c" (*cx),
+ 256                   "=d" (*dx)
+ 257                 : "0" (*ax), "2" (*cx));
+ 258 
+
+
+> 
+> For hybrid, the hvm container traps cpuid, so we don't need to prefix
+> cpuid. Less code if I don't have to worry about trapping the invalid
+> op. There seems places where the cpuid is run without the xen prefix in
+> user mode.
+
+Right, you can make the .cpuid pvops call point to the native.
+
+> 
+> BTW, for cpuid vmexit, if kernel mode I call pv_cpuid, if user mode, I
+> just return cpuid values, as that's what would happen without the HVM
+> container.
+
+You mean in PV mode in user-space you would get the unfiltered cpuid value?
+Yes, that is true. Which is why I am surprised that dm_mapper (are you sure
+it is not a kernel thread?) is doing that.
+
+> 
+> thanks,
+> Mukesh
+> 
+> _______________________________________________
+> Xen-devel mailing list
+> Xen-devel@lists.xen.org
+> http://lists.xen.org/xen-devel
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<20120629111546.50e36f52@mantra.us.oracle.com> b/config/examples/test/corpus/<20120629111546.50e36f52@mantra.us.oracle.com>
new file mode 100644 (file)
index 0000000..179129a
--- /dev/null
@@ -0,0 +1,126 @@
+From xen-devel-bounces@lists.xen.org Fri Jun 29 19:21:26 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 29 Jun 2012 19:21:26 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1Skfoq-00036h-Bt
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 29 Jun 2012 19:21:26 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1Skfjd-0003dY-SZ; Fri, 29 Jun 2012 18:16:01 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <mukesh.rathor@oracle.com>) id 1Skfjb-0003dT-TD
+       for Xen-devel@lists.xensource.com; Fri, 29 Jun 2012 18:16:00 +0000
+Received: from [85.158.138.51:16739] by server-6.bemta-3.messagelabs.com id
+       E3/08-11602-FD0FDEF4; Fri, 29 Jun 2012 18:15:59 +0000
+X-Env-Sender: mukesh.rathor@oracle.com
+X-Msg-Ref: server-12.tower-174.messagelabs.com!1340993757!22117406!1
+X-Originating-IP: [148.87.113.117]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogMTQ4Ljg3LjExMy4xMTcgPT4gNjEyMjI1\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 5078 invoked from network); 29 Jun 2012 18:15:58 -0000
+Received: from rcsinet15.oracle.com (HELO rcsinet15.oracle.com)
+       (148.87.113.117)
+       by server-12.tower-174.messagelabs.com with DHE-RSA-AES256-SHA
+       encrypted SMTP; 29 Jun 2012 18:15:58 -0000
+Received: from acsinet22.oracle.com (acsinet22.oracle.com [141.146.126.238])
+       by rcsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
+       ESMTP id q5TIFoJT021422
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
+       Fri, 29 Jun 2012 18:15:51 GMT
+Received: from acsmt356.oracle.com (acsmt356.oracle.com [141.146.40.156])
+       by acsinet22.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
+       q5TIFoNG029015
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
+       Fri, 29 Jun 2012 18:15:50 GMT
+Received: from abhmt110.oracle.com (abhmt110.oracle.com [141.146.116.62])
+       by acsmt356.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
+       q5TIFnga016102; Fri, 29 Jun 2012 13:15:49 -0500
+Received: from mantra.us.oracle.com (/130.35.68.95)
+       by default (Oracle Beehive Gateway v4.0)
+       with ESMTP ; Fri, 29 Jun 2012 11:15:49 -0700
+Date: Fri, 29 Jun 2012 11:15:46 -0700
+From: Mukesh Rathor <mukesh.rathor@oracle.com>
+To: Ian Campbell <Ian.Campbell@citrix.com>
+Message-ID: <20120629111546.50e36f52@mantra.us.oracle.com>
+In-Reply-To: <1340957369.10942.74.camel@zakaz.uk.xensource.com>
+References: <20120628180007.06bb3fd3@mantra.us.oracle.com>
+       <20120629010903.GC4902@phenom.dumpdata.com>
+       <20120628182602.6cc9b432@mantra.us.oracle.com>
+       <1340957369.10942.74.camel@zakaz.uk.xensource.com>
+Organization: Oracle Corporation
+X-Mailer: Claws Mail 3.7.6 (GTK+ 2.18.9; x86_64-redhat-linux-gnu)
+Mime-Version: 1.0
+X-Source-IP: acsinet22.oracle.com [141.146.126.238]
+Cc: "Xen-devel@lists.xensource.com" <Xen-devel@lists.xensource.com>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>,
+       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [HYBRID]: XEN_EMULATE_PREFIX in user process
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Fri, 29 Jun 2012 09:09:29 +0100
+Ian Campbell <Ian.Campbell@citrix.com> wrote:
+
+> On Fri, 2012-06-29 at 02:26 +0100, Mukesh Rathor wrote:
+> > On Thu, 28 Jun 2012 21:09:03 -0400
+> 
+> CS 0x033 could still be kernel mode on regular PV 64 bit, but I
+> suppose not on hybrid?
+
+correct, not on hybrid, unless some bug! But then the RIP also
+appears user mode.
+
+
+> It's unlikely but not impossible for a userspace developer to have
+> done some "Xen magic" and used the prefix in userspace.
+> 
+> What version of dm_mapper do you have? I checked the version in Debian
+> Sid and it doesn't do this (at least not directly).
+> 
+> Are you able to run the dm_mapper process under gdb and inspect it to
+> find the prefix?
+
+Well, let me take that back. dm_mapper is the last printk, but it could
+be anything after that or that. 
+
+Unfortunately, it's dom0 and during boot, so can't run gdb on it. I am
+hacking the kernel now to print every user process name in schedule.
+
+thanks,
+Mukesh
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<20120629120738.425781e5@mantra.us.oracle.com> b/config/examples/test/corpus/<20120629120738.425781e5@mantra.us.oracle.com>
new file mode 100644 (file)
index 0000000..32bebca
--- /dev/null
@@ -0,0 +1,122 @@
+From xen-devel-bounces@lists.xen.org Fri Jun 29 20:12:56 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 29 Jun 2012 20:12:56 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1Skgcf-0003Fh-FV
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 29 Jun 2012 20:12:55 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SkgXp-0004VY-GY; Fri, 29 Jun 2012 19:07:53 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <mukesh.rathor@oracle.com>) id 1SkgXn-0004VT-Nk
+       for Xen-devel@lists.xensource.com; Fri, 29 Jun 2012 19:07:51 +0000
+Received: from [85.158.143.35:52260] by server-2.bemta-4.messagelabs.com id
+       4C/92-17938-60DFDEF4; Fri, 29 Jun 2012 19:07:50 +0000
+X-Env-Sender: mukesh.rathor@oracle.com
+X-Msg-Ref: server-14.tower-21.messagelabs.com!1340996868!16402951!1
+X-Originating-IP: [148.87.113.117]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogMTQ4Ljg3LjExMy4xMTcgPT4gNjEyMjI1\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 19345 invoked from network); 29 Jun 2012 19:07:50 -0000
+Received: from rcsinet15.oracle.com (HELO rcsinet15.oracle.com)
+       (148.87.113.117)
+       by server-14.tower-21.messagelabs.com with DHE-RSA-AES256-SHA encrypted
+       SMTP; 29 Jun 2012 19:07:50 -0000
+Received: from ucsinet22.oracle.com (ucsinet22.oracle.com [156.151.31.94])
+       by rcsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
+       ESMTP id q5TJ7hOh001954
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
+       Fri, 29 Jun 2012 19:07:44 GMT
+Received: from acsmt357.oracle.com (acsmt357.oracle.com [141.146.40.157])
+       by ucsinet22.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
+       q5TJ7f7R008475
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
+       Fri, 29 Jun 2012 19:07:42 GMT
+Received: from abhmt101.oracle.com (abhmt101.oracle.com [141.146.116.53])
+       by acsmt357.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
+       q5TJ7f4n010736; Fri, 29 Jun 2012 14:07:41 -0500
+Received: from mantra.us.oracle.com (/130.35.68.95)
+       by default (Oracle Beehive Gateway v4.0)
+       with ESMTP ; Fri, 29 Jun 2012 12:07:41 -0700
+Date: Fri, 29 Jun 2012 12:07:38 -0700
+From: Mukesh Rathor <mukesh.rathor@oracle.com>
+Message-ID: <20120629120738.425781e5@mantra.us.oracle.com>
+In-Reply-To: <20120629111546.50e36f52@mantra.us.oracle.com>
+References: <20120628180007.06bb3fd3@mantra.us.oracle.com>
+       <20120629010903.GC4902@phenom.dumpdata.com>
+       <20120628182602.6cc9b432@mantra.us.oracle.com>
+       <1340957369.10942.74.camel@zakaz.uk.xensource.com>
+       <20120629111546.50e36f52@mantra.us.oracle.com>
+Organization: Oracle Corporation
+X-Mailer: Claws Mail 3.7.6 (GTK+ 2.18.9; x86_64-redhat-linux-gnu)
+Mime-Version: 1.0
+X-Source-IP: ucsinet22.oracle.com [156.151.31.94]
+Cc: "Xen-devel@lists.xensource.com" <Xen-devel@lists.xensource.com>,
+       Ian Campbell <Ian.Campbell@citrix.com>,
+       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-3.2 required=5.0 tests=BAYES_00,MISSING_HEADERS,
+       RCVD_IN_DNSWL_MED,T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham
+       version=3.3.1
+Subject: Re: [Xen-devel] [HYBRID]: XEN_EMULATE_PREFIX in user process
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Fri, 29 Jun 2012 11:15:46 -0700
+Mukesh Rathor <mukesh.rathor@oracle.com> wrote:
+> > It's unlikely but not impossible for a userspace developer to have
+> > done some "Xen magic" and used the prefix in userspace.
+> > 
+> > What version of dm_mapper do you have? I checked the version in
+> > Debian Sid and it doesn't do this (at least not directly).
+> > 
+> > Are you able to run the dm_mapper process under gdb and inspect it
+> > to find the prefix?
+> 
+> Well, let me take that back. dm_mapper is the last printk, but it
+> could be anything after that or that. 
+> 
+> Unfortunately, it's dom0 and during boot, so can't run gdb on it. I am
+> hacking the kernel now to print every user process name in schedule.
+
+Ah, it's "xen-detect" coming in right after dm_mapper. I see the
+xen prefix in it. Hmm... let me see if I can add some run time check
+for hybrid dom0, then won't have to worry about invalid_op trap. Less
+code that way. That's the end goal anyways...
+
+Thanks,
+Mukesh
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<20120629141812.6ca72375@mantra.us.oracle.com> b/config/examples/test/corpus/<20120629141812.6ca72375@mantra.us.oracle.com>
new file mode 100644 (file)
index 0000000..f6f7972
--- /dev/null
@@ -0,0 +1,110 @@
+From xen-devel-bounces@lists.xen.org Fri Jun 29 22:23:15 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 29 Jun 2012 22:23:15 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1Skien-0003bB-4h
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 29 Jun 2012 22:23:15 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SkiaB-0007pS-Ki; Fri, 29 Jun 2012 21:18:27 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <mukesh.rathor@oracle.com>) id 1Skia9-0007pN-W9
+       for Xen-devel@lists.xensource.com; Fri, 29 Jun 2012 21:18:26 +0000
+Received: from [85.158.139.83:45301] by server-7.bemta-5.messagelabs.com id
+       00/4F-28276-1AB1EEF4; Fri, 29 Jun 2012 21:18:25 +0000
+X-Env-Sender: mukesh.rathor@oracle.com
+X-Msg-Ref: server-11.tower-182.messagelabs.com!1341004702!23027325!1
+X-Originating-IP: [141.146.126.227]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogMTQxLjE0Ni4xMjYuMjI3ID0+IDYxNTk4MA==\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 9079 invoked from network); 29 Jun 2012 21:18:24 -0000
+Received: from acsinet15.oracle.com (HELO acsinet15.oracle.com)
+       (141.146.126.227)
+       by server-11.tower-182.messagelabs.com with DHE-RSA-AES256-SHA
+       encrypted SMTP; 29 Jun 2012 21:18:24 -0000
+Received: from ucsinet21.oracle.com (ucsinet21.oracle.com [156.151.31.93])
+       by acsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
+       ESMTP id q5TLIGb7025855
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
+       Fri, 29 Jun 2012 21:18:17 GMT
+Received: from acsmt357.oracle.com (acsmt357.oracle.com [141.146.40.157])
+       by ucsinet21.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
+       q5TLIFjC001421
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
+       Fri, 29 Jun 2012 21:18:16 GMT
+Received: from abhmt104.oracle.com (abhmt104.oracle.com [141.146.116.56])
+       by acsmt357.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
+       q5TLIFnM027939; Fri, 29 Jun 2012 16:18:15 -0500
+Received: from mantra.us.oracle.com (/130.35.68.95)
+       by default (Oracle Beehive Gateway v4.0)
+       with ESMTP ; Fri, 29 Jun 2012 14:18:14 -0700
+Date: Fri, 29 Jun 2012 14:18:12 -0700
+From: Mukesh Rathor <mukesh.rathor@oracle.com>
+To: "Jan Beulich" <JBeulich@suse.com>
+Message-ID: <20120629141812.6ca72375@mantra.us.oracle.com>
+In-Reply-To: <4FED7BD7020000780008CBFB@nat28.tlf.novell.com>
+References: <20120628180007.06bb3fd3@mantra.us.oracle.com>
+       <4FED7BD7020000780008CBFB@nat28.tlf.novell.com>
+Organization: Oracle Corporation
+X-Mailer: Claws Mail 3.7.6 (GTK+ 2.18.9; x86_64-redhat-linux-gnu)
+Mime-Version: 1.0
+X-Source-IP: ucsinet21.oracle.com [156.151.31.93]
+Cc: "Xen-devel@lists.xensource.com" <Xen-devel@lists.xensource.com>,
+       IanCampbell <Ian.Campbell@citrix.com>,
+       "stefano.stabellini@eu.citrix.com" <stefano.stabellini@eu.citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [HYBRID]: XEN_EMULATE_PREFIX in user process
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Fri, 29 Jun 2012 08:56:39 +0100
+"Jan Beulich" <JBeulich@suse.com> wrote:
+
+> >>> On 29.06.12 at 03:00, Mukesh Rathor <mukesh.rathor@oracle.com>
+> >>> wrote:
+> > BTW, for cpuid vmexit, if kernel mode I call pv_cpuid, if user
+> > mode, I just return cpuid values, as that's what would happen
+> > without the HVM container.
+> 
+> Which means you're not leveraging one of the things you could
+> gain from hybrid (after all, returning the native value to user
+> mode is one of the weaknesses of PV).
+> 
+> Jan
+> 
+
+Easy, fixed. So, now, for both kernel/user I return pv_cpuid.
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<20120629155000.5152d544@mantra.us.oracle.com> b/config/examples/test/corpus/<20120629155000.5152d544@mantra.us.oracle.com>
new file mode 100644 (file)
index 0000000..e0bced0
--- /dev/null
@@ -0,0 +1,117 @@
+From xen-devel-bounces@lists.xen.org Fri Jun 29 23:59:40 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 29 Jun 2012 23:59:40 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SkkA5-0003nm-RL
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 29 Jun 2012 23:59:40 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1Skk5F-0001I9-Lc; Fri, 29 Jun 2012 22:54:37 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <mukesh.rathor@oracle.com>) id 1Skk5E-0001I4-75
+       for xen-devel@lists.xensource.com; Fri, 29 Jun 2012 22:54:36 +0000
+Received: from [85.158.143.99:58622] by server-1.bemta-4.messagelabs.com id
+       36/D5-24392-B223EEF4; Fri, 29 Jun 2012 22:54:35 +0000
+X-Env-Sender: mukesh.rathor@oracle.com
+X-Msg-Ref: server-7.tower-216.messagelabs.com!1341010473!26497113!1
+X-Originating-IP: [141.146.126.227]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogMTQxLjE0Ni4xMjYuMjI3ID0+IDYxNDc1Mw==\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 10853 invoked from network); 29 Jun 2012 22:54:34 -0000
+Received: from acsinet15.oracle.com (HELO acsinet15.oracle.com)
+       (141.146.126.227)
+       by server-7.tower-216.messagelabs.com with DHE-RSA-AES256-SHA encrypted
+       SMTP; 29 Jun 2012 22:54:34 -0000
+Received: from ucsinet21.oracle.com (ucsinet21.oracle.com [156.151.31.93])
+       by acsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
+       ESMTP id q5TMsSGf025783
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
+       Fri, 29 Jun 2012 22:54:29 GMT
+Received: from acsmt358.oracle.com (acsmt358.oracle.com [141.146.40.158])
+       by ucsinet21.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
+       q5TMsRMt026120
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
+       Fri, 29 Jun 2012 22:54:28 GMT
+Received: from abhmt109.oracle.com (abhmt109.oracle.com [141.146.116.61])
+       by acsmt358.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
+       q5TMsR0o010542; Fri, 29 Jun 2012 17:54:27 -0500
+Received: from mantra.us.oracle.com (/130.35.68.95) by default (Oracle Beehive
+       Gateway v4.0) with ESMTP ; Fri, 29 Jun 2012 15:50:12 -0700
+ORGANIZATION: Oracle Corporation
+MIME-Version: 1.0
+Message-ID: <20120629155000.5152d544@mantra.us.oracle.com>
+Date: Fri, 29 Jun 2012 15:50:00 -0700 (PDT)
+From: Mukesh Rathor <mukesh.rathor@oracle.com>
+To: Ian Campbell <Ian.Campbell@citrix.com>
+References: <20120628180007.06bb3fd3@mantra.us.oracle.com>
+       <20120629010903.GC4902@phenom.dumpdata.com>
+       <20120628182602.6cc9b432@mantra.us.oracle.com>
+       <1340957369.10942.74.camel@zakaz.uk.xensource.com>
+       <20120629111546.50e36f52@mantra.us.oracle.com>
+       <20120629120738.425781e5@mantra.us.oracle.com>
+       <1341007454.5953.18.camel@dagon.hellion.org.uk>
+In-Reply-To: <1341007454.5953.18.camel@dagon.hellion.org.uk>
+X-Mailer: Claws Mail 3.7.6 (GTK+ 2.18.9; x86_64-redhat-linux-gnu)
+X-Source-IP: ucsinet21.oracle.com [156.151.31.93]
+Cc: "Xen-devel@lists.xensource.com" <Xen-devel@lists.xensource.com>,
+       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [HYBRID]: XEN_EMULATE_PREFIX in user process
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Fri, 29 Jun 2012 15:04:14 -0700 (PDT)
+Ian Campbell <Ian.Campbell@citrix.com> wrote:
+
+> On Fri, 2012-06-29 at 20:07 +0100, Mukesh Rathor wrote:
+> 
+> I don't think reducing code should come at the expense of adding
+> special cases for hybrid to userspace programs...
+> 
+> I think you'll have to handle the invalid op, it can't be that much
+> code, can it?
+
+Not a whole lot of code, but other than xen-detect, just curious,
+what is the possibility of any user level using XEN_EMULATE_PREFIX cpuid?
+The kernel won't, since it's only the hybrid running in hvm container,
+and it's modified to use native cpuid. The user level can just run
+cpuid and will be trapped in vmexit handler to call pv_cpuid().
+
+thanks,
+Mukesh
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<20120702111818.73babf9b@mantra.us.oracle.com> b/config/examples/test/corpus/<20120702111818.73babf9b@mantra.us.oracle.com>
new file mode 100644 (file)
index 0000000..46c859e
--- /dev/null
@@ -0,0 +1,130 @@
+From xen-devel-bounces@lists.xen.org Mon Jul 02 19:24:18 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Mon, 02 Jul 2012 19:24:18 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SllIF-000574-Km
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Mon, 02 Jul 2012 19:24:18 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SllCo-0000cd-7O; Mon, 02 Jul 2012 18:18:38 +0000
+Received: from mail27.messagelabs.com ([193.109.254.147])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <mukesh.rathor@oracle.com>) id 1SllCl-0000cY-Rq
+       for Xen-devel@lists.xensource.com; Mon, 02 Jul 2012 18:18:36 +0000
+X-Env-Sender: mukesh.rathor@oracle.com
+X-Msg-Ref: server-8.tower-27.messagelabs.com!1341253108!9707972!1
+X-Originating-IP: [141.146.126.227]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogMTQxLjE0Ni4xMjYuMjI3ID0+IDYxNzgwMg==\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 22774 invoked from network); 2 Jul 2012 18:18:29 -0000
+Received: from acsinet15.oracle.com (HELO acsinet15.oracle.com)
+       (141.146.126.227)
+       by server-8.tower-27.messagelabs.com with DHE-RSA-AES256-SHA encrypted
+       SMTP; 2 Jul 2012 18:18:29 -0000
+Received: from ucsinet22.oracle.com (ucsinet22.oracle.com [156.151.31.94])
+       by acsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
+       ESMTP id q62IILjn019693
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
+       Mon, 2 Jul 2012 18:18:22 GMT
+Received: from acsmt357.oracle.com (acsmt357.oracle.com [141.146.40.157])
+       by ucsinet22.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
+       q62IIKl3017782
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
+       Mon, 2 Jul 2012 18:18:20 GMT
+Received: from abhmt111.oracle.com (abhmt111.oracle.com [141.146.116.63])
+       by acsmt357.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
+       q62IIJUN022905; Mon, 2 Jul 2012 13:18:19 -0500
+Received: from mantra.us.oracle.com (/130.35.68.95)
+       by default (Oracle Beehive Gateway v4.0)
+       with ESMTP ; Mon, 02 Jul 2012 11:18:19 -0700
+Date: Mon, 2 Jul 2012 11:18:18 -0700
+From: Mukesh Rathor <mukesh.rathor@oracle.com>
+To: "Jan Beulich" <JBeulich@suse.com>
+Message-ID: <20120702111818.73babf9b@mantra.us.oracle.com>
+In-Reply-To: <4FF177A3020000780008D091@nat28.tlf.novell.com>
+References: <20120628180007.06bb3fd3@mantra.us.oracle.com>
+       <20120629010903.GC4902@phenom.dumpdata.com>
+       <20120628182602.6cc9b432@mantra.us.oracle.com>
+       <1340957369.10942.74.camel@zakaz.uk.xensource.com>
+       <20120629111546.50e36f52@mantra.us.oracle.com>
+       <20120629120738.425781e5@mantra.us.oracle.com>
+       <1341007454.5953.18.camel@dagon.hellion.org.uk>
+       <20120629155000.5152d544@mantra.us.oracle.com>
+       <4FF177A3020000780008D091@nat28.tlf.novell.com>
+Organization: Oracle Corporation
+X-Mailer: Claws Mail 3.7.6 (GTK+ 2.18.9; x86_64-redhat-linux-gnu)
+Mime-Version: 1.0
+X-Source-IP: ucsinet22.oracle.com [156.151.31.94]
+Cc: "Xen-devel@lists.xensource.com" <Xen-devel@lists.xensource.com>,
+       Ian Campbell <Ian.Campbell@citrix.com>,
+       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [HYBRID]: XEN_EMULATE_PREFIX in user process
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Mon, 02 Jul 2012 09:27:47 +0100
+"Jan Beulich" <JBeulich@suse.com> wrote:
+
+> >>> On 30.06.12 at 00:50, Mukesh Rathor <mukesh.rathor@oracle.com>
+> >>> wrote:
+> > On Fri, 29 Jun 2012 15:04:14 -0700 (PDT)
+> > Ian Campbell <Ian.Campbell@citrix.com> wrote:
+> > 
+> >> On Fri, 2012-06-29 at 20:07 +0100, Mukesh Rathor wrote:
+> >> 
+> >> I don't think reducing code should come at the expense of adding
+> >> special cases for hybrid to userspace programs...
+> >> 
+> >> I think you'll have to handle the invalid op, it can't be that much
+> >> code, can it?
+> > 
+> > Not a whole lot of code, but other than xen-detect, just curious,
+> > what is the possibility of any user level using XEN_EMULATE_PREFIX
+> > cpuid?
+> 
+> Obviously any code cloned from xen-detect could, i.e. anything
+> that tries to be Xen-PV-aware.
+> 
+> Jan
+> 
+
+Ok, so it is official to do that from user level. I will add support
+for it.
+
+thanks,
+Mukesh
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<20120725184429.GC16360@phenom.dumpdata.com> b/config/examples/test/corpus/<20120725184429.GC16360@phenom.dumpdata.com>
new file mode 100644 (file)
index 0000000..2f7bee8
--- /dev/null
@@ -0,0 +1,137 @@
+From xen-devel-bounces@lists.xen.org Wed Jul 25 19:58:13 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 25 Jul 2012 19:58:13 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1Su6mh-00024d-CG
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 25 Jul 2012 19:58:13 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1Su6i3-0005Ei-UL; Wed, 25 Jul 2012 18:53:23 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <konrad.wilk@oracle.com>) id 1Su6i1-0005EX-V6
+       for xen-devel@lists.xen.org; Wed, 25 Jul 2012 18:53:22 +0000
+Received: from [85.158.143.35:56395] by server-3.bemta-4.messagelabs.com id
+       55/30-01511-1A040105; Wed, 25 Jul 2012 18:53:21 +0000
+X-Env-Sender: konrad.wilk@oracle.com
+X-Msg-Ref: server-11.tower-21.messagelabs.com!1343242399!11679190!1
+X-Originating-IP: [141.146.126.227]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogMTQxLjE0Ni4xMjYuMjI3ID0+IDY1ODg5MQ==\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.2; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 11650 invoked from network); 25 Jul 2012 18:53:20 -0000
+Received: from acsinet15.oracle.com (HELO acsinet15.oracle.com)
+       (141.146.126.227)
+       by server-11.tower-21.messagelabs.com with DHE-RSA-AES256-SHA encrypted
+       SMTP; 25 Jul 2012 18:53:20 -0000
+Received: from ucsinet22.oracle.com (ucsinet22.oracle.com [156.151.31.94])
+       by acsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
+       ESMTP id q6PIrH6I009618
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
+       Wed, 25 Jul 2012 18:53:18 GMT
+Received: from acsmt358.oracle.com (acsmt358.oracle.com [141.146.40.158])
+       by ucsinet22.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
+       q6PIrGwL020499
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
+       Wed, 25 Jul 2012 18:53:17 GMT
+Received: from abhmt117.oracle.com (abhmt117.oracle.com [141.146.116.69])
+       by acsmt358.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
+       q6PIrGWr011766; Wed, 25 Jul 2012 13:53:16 -0500
+Received: from phenom.dumpdata.com (/209.6.85.33)
+       by default (Oracle Beehive Gateway v4.0)
+       with ESMTP ; Wed, 25 Jul 2012 11:53:16 -0700
+Received: by phenom.dumpdata.com (Postfix, from userid 1000)
+       id 9DB8B402B5; Wed, 25 Jul 2012 14:44:29 -0400 (EDT)
+Date: Wed, 25 Jul 2012 14:44:29 -0400
+From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+To: Larry White <lmw@satx.rr.com>
+Message-ID: <20120725184429.GC16360@phenom.dumpdata.com>
+References: <A8575D3216834DFCAA86F5B2B3546613@LarryE6400>
+       <6035A0D088A63A46850C3988ED045A4B299B8A95@BITCOM1.int.sbss.com.au>
+       <1E8F546AD8E64BF1B2D68D24F3BD4050@LarryE6400>
+       <6035A0D088A63A46850C3988ED045A4B299B8F9D@BITCOM1.int.sbss.com.au>
+       <C96058547A5A42DDB1A89B2F8880BCE2@LarryE6400>
+MIME-Version: 1.0
+Content-Disposition: inline
+In-Reply-To: <C96058547A5A42DDB1A89B2F8880BCE2@LarryE6400>
+User-Agent: Mutt/1.5.21 (2010-09-15)
+X-Source-IP: ucsinet22.oracle.com [156.151.31.94]
+Cc: xen-devel@lists.xen.org
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] XenStore as a data transfer path?
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Sat, Jul 21, 2012 at 12:59:31PM -0500, Larry White wrote:
+> Hi Konrad,
+> 
+> >On Tue, Jul 17, 2012 at 11:22:28PM -0500, LarryWhite wrote:
+> >I am new to Xen and want to provide simple communication between my DomU
+> >and
+> >Dom0 environments.  I just need to be able to pass a few bytes of
+> >information back and forth between DomU and Dom0 while using some form of
+> >event management to know when an update occurs so I can act on it.  At
+> >first, it appeared that using XenBus and XenStore might be the right
+> >solution for this.  However, after looking over the documentation, it seems
+> >that XenBus and XenStore should only be used in a PVM Xen configuration,
+> >not
+> >a HVM model like mine.  Is this true?  
+> 
+> >>It can be done in HVM.
+> 
+> >What would be the best way to accomplish this?  Is there any sample code
+> >which demonstrates this for a HVM Xen environment?
+> 
+> >>libvchan is your best bet.
+> 
+> Have been looking at libvchan as you suggested.  An additional bit of
+> information that I left out on my original post was that I would like to do
+> this in a "one to many" environment.  In other words, I want to support data
+> transfer from dom0 to a number of different domU's.  Would an approach such
+> as libvchan allow for this or would I need a separate process in dom0 for
+> each of the different domU channels?  I was really hoping to have a single
+> process running in dom0 to manage this. 
+
+You would need seperate rings for each domU. Whether you want to implement this
+in a single process or multi-thread the process - or just use one process and
+block on the event (signal) to receive an interrupt when data appears - that is up
+to you.
+
+> 
+> Thanks,
+> Larry
+> 
+> 
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<20120726163020.GB9222@phenom.dumpdata.com> b/config/examples/test/corpus/<20120726163020.GB9222@phenom.dumpdata.com>
new file mode 100644 (file)
index 0000000..2c6eb15
--- /dev/null
@@ -0,0 +1,330 @@
+From xen-devel-bounces@lists.xen.org Thu Jul 26 17:43:49 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 26 Jul 2012 17:43:49 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SuRAA-0001u8-4D
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 26 Jul 2012 17:43:49 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SuR6I-0004C6-0r; Thu, 26 Jul 2012 16:39:46 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <konrad.wilk@oracle.com>) id 1SuR6G-0004C0-64
+       for xen-devel@lists.xensource.com; Thu, 26 Jul 2012 16:39:44 +0000
+Received: from [85.158.139.83:36850] by server-9.bemta-5.messagelabs.com id
+       2B/51-01069-FC271105; Thu, 26 Jul 2012 16:39:43 +0000
+X-Env-Sender: konrad.wilk@oracle.com
+X-Msg-Ref: server-11.tower-182.messagelabs.com!1343320781!21599871!1
+X-Originating-IP: [148.87.113.117]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogMTQ4Ljg3LjExMy4xMTcgPT4gNjU4OTY3\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.2; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 31228 invoked from network); 26 Jul 2012 16:39:42 -0000
+Received: from rcsinet15.oracle.com (HELO rcsinet15.oracle.com)
+       (148.87.113.117)
+       by server-11.tower-182.messagelabs.com with DHE-RSA-AES256-SHA
+       encrypted SMTP; 26 Jul 2012 16:39:42 -0000
+Received: from ucsinet21.oracle.com (ucsinet21.oracle.com [156.151.31.93])
+       by rcsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
+       ESMTP id q6QGdC91011778
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
+       Thu, 26 Jul 2012 16:39:13 GMT
+Received: from acsmt356.oracle.com (acsmt356.oracle.com [141.146.40.156])
+       by ucsinet21.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
+       q6QGdB0h029637
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
+       Thu, 26 Jul 2012 16:39:11 GMT
+Received: from abhmt104.oracle.com (abhmt104.oracle.com [141.146.116.56])
+       by acsmt356.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
+       q6QGdAve019877; Thu, 26 Jul 2012 11:39:10 -0500
+Received: from phenom.dumpdata.com (/209.6.85.33)
+       by default (Oracle Beehive Gateway v4.0)
+       with ESMTP ; Thu, 26 Jul 2012 09:39:10 -0700
+Received: by phenom.dumpdata.com (Postfix, from userid 1000)
+       id E8736402B5; Thu, 26 Jul 2012 12:30:20 -0400 (EDT)
+Date: Thu, 26 Jul 2012 12:30:20 -0400
+From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+Message-ID: <20120726163020.GB9222@phenom.dumpdata.com>
+References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
+       <1343316846-25860-1-git-send-email-stefano.stabellini@eu.citrix.com>
+MIME-Version: 1.0
+Content-Disposition: inline
+In-Reply-To: <1343316846-25860-1-git-send-email-stefano.stabellini@eu.citrix.com>
+User-Agent: Mutt/1.5.21 (2010-09-15)
+X-Source-IP: ucsinet21.oracle.com [156.151.31.93]
+Cc: xen-devel@lists.xensource.com, linaro-dev@lists.linaro.org,
+       Ian.Campbell@citrix.com, arnd@arndb.de, catalin.marinas@arm.com,
+       tim@xen.org, linux-kernel@vger.kernel.org,
+       linux-arm-kernel@lists.infradead.org
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 01/24] arm: initial Xen support
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Thu, Jul 26, 2012 at 04:33:43PM +0100, Stefano Stabellini wrote:
+> - Basic hypervisor.h and interface.h definitions.
+> - Skelethon enlighten.c, set xen_start_info to an empty struct.
+
+Skeleton
+
+> - Do not limit xen_initial_domain to PV guests.
+
+Better wording: Make xen_initial_domain dependent on the SIF_PRIVILIGED_BIT.
+
+Which reminds me - what about PV guests that do PCI passthrough. Aren't
+they "more" priviligied than normal PV guests? Or not really?
+> 
+> The new code only compiles when CONFIG_XEN is set, that is going to be
+> added to arch/arm/Kconfig in a later patch.
+
+s/later patch/<name of patch>/
+
+> 
+> Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+> ---
+>  arch/arm/Makefile                     |    1 +
+>  arch/arm/include/asm/hypervisor.h     |    6 +++
+>  arch/arm/include/asm/xen/hypervisor.h |   19 ++++++++++
+>  arch/arm/include/asm/xen/interface.h  |   64 +++++++++++++++++++++++++++++++++
+>  arch/arm/xen/Makefile                 |    1 +
+>  arch/arm/xen/enlighten.c              |   35 ++++++++++++++++++
+>  include/xen/xen.h                     |    2 +-
+>  7 files changed, 127 insertions(+), 1 deletions(-)
+>  create mode 100644 arch/arm/include/asm/hypervisor.h
+>  create mode 100644 arch/arm/include/asm/xen/hypervisor.h
+>  create mode 100644 arch/arm/include/asm/xen/interface.h
+>  create mode 100644 arch/arm/xen/Makefile
+>  create mode 100644 arch/arm/xen/enlighten.c
+> 
+> diff --git a/arch/arm/Makefile b/arch/arm/Makefile
+> index 0298b00..70aaa82 100644
+> --- a/arch/arm/Makefile
+> +++ b/arch/arm/Makefile
+> @@ -246,6 +246,7 @@ endif
+>  core-$(CONFIG_FPE_NWFPE)    += arch/arm/nwfpe/
+>  core-$(CONFIG_FPE_FASTFPE)  += $(FASTFPE_OBJ)
+>  core-$(CONFIG_VFP)          += arch/arm/vfp/
+> +core-$(CONFIG_XEN)          += arch/arm/xen/
+>  
+>  # If we have a machine-specific directory, then include it in the build.
+>  core-y                              += arch/arm/kernel/ arch/arm/mm/ arch/arm/common/
+> diff --git a/arch/arm/include/asm/hypervisor.h b/arch/arm/include/asm/hypervisor.h
+> new file mode 100644
+> index 0000000..b90d9e5
+> --- /dev/null
+> +++ b/arch/arm/include/asm/hypervisor.h
+> @@ -0,0 +1,6 @@
+> +#ifndef _ASM_ARM_HYPERVISOR_H
+> +#define _ASM_ARM_HYPERVISOR_H
+> +
+> +#include <asm/xen/hypervisor.h>
+> +
+> +#endif
+> diff --git a/arch/arm/include/asm/xen/hypervisor.h b/arch/arm/include/asm/xen/hypervisor.h
+> new file mode 100644
+> index 0000000..d7ab99a
+> --- /dev/null
+> +++ b/arch/arm/include/asm/xen/hypervisor.h
+> @@ -0,0 +1,19 @@
+> +#ifndef _ASM_ARM_XEN_HYPERVISOR_H
+> +#define _ASM_ARM_XEN_HYPERVISOR_H
+> +
+> +extern struct shared_info *HYPERVISOR_shared_info;
+> +extern struct start_info *xen_start_info;
+> +
+> +/* Lazy mode for batching updates / context switch */
+> +enum paravirt_lazy_mode {
+> +    PARAVIRT_LAZY_NONE,
+> +    PARAVIRT_LAZY_MMU,
+> +    PARAVIRT_LAZY_CPU,
+> +};
+> +
+> +static inline enum paravirt_lazy_mode paravirt_get_lazy_mode(void)
+> +{
+> +    return PARAVIRT_LAZY_NONE;
+> +}
+> +
+> +#endif /* _ASM_ARM_XEN_HYPERVISOR_H */
+> diff --git a/arch/arm/include/asm/xen/interface.h b/arch/arm/include/asm/xen/interface.h
+> new file mode 100644
+> index 0000000..6c3ab59
+> --- /dev/null
+> +++ b/arch/arm/include/asm/xen/interface.h
+> @@ -0,0 +1,64 @@
+> +/******************************************************************************
+> + * Guest OS interface to ARM Xen.
+> + *
+> + * Stefano Stabellini <stefano.stabellini@eu.citrix.com>, Citrix, 2011
+
+2012
+
+> + */
+> +
+> +#ifndef _ASM_ARM_XEN_INTERFACE_H
+> +#define _ASM_ARM_XEN_INTERFACE_H
+> +
+> +#include <linux/types.h>
+> +
+> +#define __DEFINE_GUEST_HANDLE(name, type) \
+> +    typedef type * __guest_handle_ ## name
+> +
+> +#define DEFINE_GUEST_HANDLE_STRUCT(name) \
+> +    __DEFINE_GUEST_HANDLE(name, struct name)
+> +#define DEFINE_GUEST_HANDLE(name) __DEFINE_GUEST_HANDLE(name, name)
+> +#define GUEST_HANDLE(name)        __guest_handle_ ## name
+> +
+> +#define set_xen_guest_handle(hnd, val)                      \
+> +    do {                                            \
+> +            if (sizeof(hnd) == 8)                   \
+> +                    *(uint64_t *)&(hnd) = 0;        \
+> +            (hnd) = val;                            \
+> +    } while (0)
+> +
+> +#ifndef __ASSEMBLY__
+> +/* Guest handles for primitive C types. */
+> +__DEFINE_GUEST_HANDLE(uchar, unsigned char);
+> +__DEFINE_GUEST_HANDLE(uint,  unsigned int);
+> +__DEFINE_GUEST_HANDLE(ulong, unsigned long);
+> +DEFINE_GUEST_HANDLE(char);
+> +DEFINE_GUEST_HANDLE(int);
+> +DEFINE_GUEST_HANDLE(long);
+> +DEFINE_GUEST_HANDLE(void);
+> +DEFINE_GUEST_HANDLE(uint64_t);
+> +DEFINE_GUEST_HANDLE(uint32_t);
+> +
+> +/* Maximum number of virtual CPUs in multi-processor guests. */
+> +#define MAX_VIRT_CPUS 1
+> +
+> +struct arch_vcpu_info { };
+> +struct arch_shared_info { };
+> +
+> +/* XXX: Move pvclock definitions some place arch independent */
+> +struct pvclock_vcpu_time_info {
+> +    u32   version;
+> +    u32   pad0;
+> +    u64   tsc_timestamp;
+> +    u64   system_time;
+> +    u32   tsc_to_system_mul;
+> +    s8    tsc_shift;
+> +    u8    flags;
+> +    u8    pad[2];
+> +} __attribute__((__packed__)); /* 32 bytes */
+> +
+> +struct pvclock_wall_clock {
+> +    u32   version;
+> +    u32   sec;
+> +    u32   nsec;
+> +} __attribute__((__packed__));
+
+That is weird. It is 4+4+4 = 12 bytes? Don't you want it to be 16 bytes?
+
+> +#endif
+> +
+> +#endif /* _ASM_ARM_XEN_INTERFACE_H */
+> diff --git a/arch/arm/xen/Makefile b/arch/arm/xen/Makefile
+> new file mode 100644
+> index 0000000..0bad594
+> --- /dev/null
+> +++ b/arch/arm/xen/Makefile
+> @@ -0,0 +1 @@
+> +obj-y               := enlighten.o
+> diff --git a/arch/arm/xen/enlighten.c b/arch/arm/xen/enlighten.c
+> new file mode 100644
+> index 0000000..d27c2a6
+> --- /dev/null
+> +++ b/arch/arm/xen/enlighten.c
+> @@ -0,0 +1,35 @@
+> +#include <xen/xen.h>
+> +#include <xen/interface/xen.h>
+> +#include <xen/interface/memory.h>
+> +#include <xen/platform_pci.h>
+> +#include <asm/xen/hypervisor.h>
+> +#include <asm/xen/hypercall.h>
+> +#include <linux/module.h>
+> +
+> +struct start_info _xen_start_info;
+> +struct start_info *xen_start_info = &_xen_start_info;
+> +EXPORT_SYMBOL_GPL(xen_start_info);
+> +
+> +enum xen_domain_type xen_domain_type = XEN_NATIVE;
+> +EXPORT_SYMBOL_GPL(xen_domain_type);
+> +
+> +struct shared_info xen_dummy_shared_info;
+> +struct shared_info *HYPERVISOR_shared_info = (void *)&xen_dummy_shared_info;
+> +
+> +DEFINE_PER_CPU(struct vcpu_info *, xen_vcpu);
+> +
+> +/* XXX: to be removed */
+
+In this patch series later on? Or just when you try to collapse the x86 and arm variant
+together?
+
+> +__read_mostly int xen_have_vector_callback;
+> +EXPORT_SYMBOL_GPL(xen_have_vector_callback);
+> +
+> +int xen_platform_pci_unplug = XEN_UNPLUG_ALL;
+> +EXPORT_SYMBOL_GPL(xen_platform_pci_unplug);
+> +
+> +int xen_remap_domain_mfn_range(struct vm_area_struct *vma,
+> +                           unsigned long addr,
+> +                           unsigned long mfn, int nr,
+> +                           pgprot_t prot, unsigned domid)
+> +{
+> +    return -ENOSYS;
+> +}
+> +EXPORT_SYMBOL_GPL(xen_remap_domain_mfn_range);
+> diff --git a/include/xen/xen.h b/include/xen/xen.h
+> index a164024..2c0d3a5 100644
+> --- a/include/xen/xen.h
+> +++ b/include/xen/xen.h
+> @@ -23,7 +23,7 @@ extern enum xen_domain_type xen_domain_type;
+>  #include <xen/interface/xen.h>
+>  #include <asm/xen/hypervisor.h>
+>  
+> -#define xen_initial_domain()        (xen_pv_domain() && \
+> +#define xen_initial_domain()        (xen_domain() && \
+>                               xen_start_info->flags & SIF_INITDOMAIN)
+>  #else  /* !CONFIG_XEN_DOM0 */
+>  #define xen_initial_domain()        (0)
+> -- 
+> 1.7.2.5
+> 
+> 
+> _______________________________________________
+> Xen-devel mailing list
+> Xen-devel@lists.xen.org
+> http://lists.xen.org/xen-devel
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<20120726163352.GC9222@phenom.dumpdata.com> b/config/examples/test/corpus/<20120726163352.GC9222@phenom.dumpdata.com>
new file mode 100644 (file)
index 0000000..ff566fc
--- /dev/null
@@ -0,0 +1,269 @@
+From xen-devel-bounces@lists.xen.org Thu Jul 26 17:47:34 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 26 Jul 2012 17:47:34 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SuRDl-0001uv-0u
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 26 Jul 2012 17:47:34 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SuR9w-0004m0-CJ; Thu, 26 Jul 2012 16:43:32 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <konrad.wilk@oracle.com>) id 1SuR9t-0004lZ-Mu
+       for xen-devel@lists.xensource.com; Thu, 26 Jul 2012 16:43:30 +0000
+Received: from [85.158.139.83:64050] by server-11.bemta-5.messagelabs.com id
+       1C/70-20400-0B371105; Thu, 26 Jul 2012 16:43:28 +0000
+X-Env-Sender: konrad.wilk@oracle.com
+X-Msg-Ref: server-7.tower-182.messagelabs.com!1343321007!24876533!1
+X-Originating-IP: [141.146.126.227]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogMTQxLjE0Ni4xMjYuMjI3ID0+IDY2MTUwNA==\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.2; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 26155 invoked from network); 26 Jul 2012 16:43:28 -0000
+Received: from acsinet15.oracle.com (HELO acsinet15.oracle.com)
+       (141.146.126.227)
+       by server-7.tower-182.messagelabs.com with DHE-RSA-AES256-SHA encrypted
+       SMTP; 26 Jul 2012 16:43:28 -0000
+Received: from acsinet22.oracle.com (acsinet22.oracle.com [141.146.126.238])
+       by acsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
+       ESMTP id q6QGgg6G027457
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
+       Thu, 26 Jul 2012 16:42:43 GMT
+Received: from acsmt357.oracle.com (acsmt357.oracle.com [141.146.40.157])
+       by acsinet22.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
+       q6QGgfxn010178
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
+       Thu, 26 Jul 2012 16:42:42 GMT
+Received: from abhmt105.oracle.com (abhmt105.oracle.com [141.146.116.57])
+       by acsmt357.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
+       q6QGgfDM006684; Thu, 26 Jul 2012 11:42:41 -0500
+Received: from phenom.dumpdata.com (/209.6.85.33)
+       by default (Oracle Beehive Gateway v4.0)
+       with ESMTP ; Thu, 26 Jul 2012 09:42:41 -0700
+Received: by phenom.dumpdata.com (Postfix, from userid 1000)
+       id 1F023402B5; Thu, 26 Jul 2012 12:33:52 -0400 (EDT)
+Date: Thu, 26 Jul 2012 12:33:52 -0400
+From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+Message-ID: <20120726163352.GC9222@phenom.dumpdata.com>
+References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
+       <1343316846-25860-2-git-send-email-stefano.stabellini@eu.citrix.com>
+MIME-Version: 1.0
+Content-Disposition: inline
+In-Reply-To: <1343316846-25860-2-git-send-email-stefano.stabellini@eu.citrix.com>
+User-Agent: Mutt/1.5.21 (2010-09-15)
+X-Source-IP: acsinet22.oracle.com [141.146.126.238]
+Cc: xen-devel@lists.xensource.com, linaro-dev@lists.linaro.org,
+       Ian.Campbell@citrix.com, arnd@arndb.de, catalin.marinas@arm.com,
+       tim@xen.org, linux-kernel@vger.kernel.org,
+       linux-arm-kernel@lists.infradead.org
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 02/24] xen/arm: hypercalls
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Thu, Jul 26, 2012 at 04:33:44PM +0100, Stefano Stabellini wrote:
+> Use r12 to pass the hypercall number to the hypervisor.
+> 
+> We need a register to pass the hypercall number because we might not
+> know it at compile time and HVC only takes an immediate argument.
+> 
+> Among the available registers r12 seems to be the best choice because it
+> is defined as "intra-procedure call scratch register".
+> 
+> Use the ISS to pass an hypervisor specific tag.
+> 
+> Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+> ---
+>  arch/arm/include/asm/xen/hypercall.h |   50 ++++++++++++++++++++++++++
+>  arch/arm/xen/Makefile                |    2 +-
+>  arch/arm/xen/hypercall.S             |   65 ++++++++++++++++++++++++++++++++++
+>  3 files changed, 116 insertions(+), 1 deletions(-)
+>  create mode 100644 arch/arm/include/asm/xen/hypercall.h
+>  create mode 100644 arch/arm/xen/hypercall.S
+> 
+> diff --git a/arch/arm/include/asm/xen/hypercall.h b/arch/arm/include/asm/xen/hypercall.h
+> new file mode 100644
+> index 0000000..4ac0624
+> --- /dev/null
+> +++ b/arch/arm/include/asm/xen/hypercall.h
+> @@ -0,0 +1,50 @@
+> +/******************************************************************************
+> + * hypercall.h
+> + *
+> + * Linux-specific hypervisor handling.
+> + *
+> + * Stefano Stabellini <stefano.stabellini@eu.citrix.com>, Citrix, 2012
+> + *
+> + * This program is free software; you can redistribute it and/or
+> + * modify it under the terms of the GNU General Public License version 2
+> + * as published by the Free Software Foundation; or, when distributed
+> + * separately from the Linux kernel or incorporated into other
+> + * software packages, subject to the following license:
+> + *
+> + * Permission is hereby granted, free of charge, to any person obtaining a copy
+> + * of this source file (the "Software"), to deal in the Software without
+> + * restriction, including without limitation the rights to use, copy, modify,
+> + * merge, publish, distribute, sublicense, and/or sell copies of the Software,
+> + * and to permit persons to whom the Software is furnished to do so, subject to
+> + * the following conditions:
+> + *
+> + * The above copyright notice and this permission notice shall be included in
+> + * all copies or substantial portions of the Software.
+> + *
+> + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+> + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+> + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+> + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+> + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+> + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+> + * IN THE SOFTWARE.
+> + */
+> +
+> +#ifndef _ASM_ARM_XEN_HYPERCALL_H
+> +#define _ASM_ARM_XEN_HYPERCALL_H
+> +
+> +#include <xen/interface/xen.h>
+> +
+> +long privcmd_call(unsigned call, unsigned long a1,
+> +            unsigned long a2, unsigned long a3,
+> +            unsigned long a4, unsigned long a5);
+> +int HYPERVISOR_xen_version(int cmd, void *arg);
+> +int HYPERVISOR_console_io(int cmd, int count, char *str);
+> +int HYPERVISOR_grant_table_op(unsigned int cmd, void *uop, unsigned int count);
+> +int HYPERVISOR_sched_op(int cmd, void *arg);
+> +int HYPERVISOR_event_channel_op(int cmd, void *arg);
+> +unsigned long HYPERVISOR_hvm_op(int op, void *arg);
+> +int HYPERVISOR_memory_op(unsigned int cmd, void *arg);
+> +int HYPERVISOR_physdev_op(int cmd, void *arg);
+> +
+> +#endif /* _ASM_ARM_XEN_HYPERCALL_H */
+> diff --git a/arch/arm/xen/Makefile b/arch/arm/xen/Makefile
+> index 0bad594..b9d6acc 100644
+> --- a/arch/arm/xen/Makefile
+> +++ b/arch/arm/xen/Makefile
+> @@ -1 +1 @@
+> -obj-y               := enlighten.o
+> +obj-y               := enlighten.o hypercall.o
+> diff --git a/arch/arm/xen/hypercall.S b/arch/arm/xen/hypercall.S
+> new file mode 100644
+> index 0000000..038cc5b
+> --- /dev/null
+> +++ b/arch/arm/xen/hypercall.S
+> @@ -0,0 +1,65 @@
+> +/******************************************************************************
+> + * hypercall.S
+> + *
+> + * Xen hypercall wrappers
+> + *
+> + * The Xen hypercall calling convention is very similar to the ARM
+> + * procedure calling convention: the first paramter is passed in r0, the
+> + * second in r1, the third in r2 and the third in r3. Considering that
+
+I think you meant 'and the fourth in r3'.
+
+So where does the similarity end?  Just in that we use r12?
+
+> + * Xen hypercalls have 5 arguments at most, the fifth paramter is passed
+> + * in r4, differently from the procedure calling convention of using the
+
+> + * stack for that case.
+> + *
+> + * The hypercall number is passed in r12.
+> + *
+> + * The return value is in r0.
+> + *
+> + * The hvc ISS is required to be 0xEA1, that is the Xen specific ARM
+> + * hypercall tag.
+> + *
+> + * Stefano Stabellini <stefano.stabellini@eu.citrix.com>, Citrix, 2012
+> + */
+> +
+> +#include <linux/linkage.h>
+> +#include <asm/assembler.h>
+> +#include <xen/interface/xen.h>
+> +
+> +
+> +/* HVC 0xEA1 */
+> +#ifdef CONFIG_THUMB2_KERNEL
+> +#define xen_hvc .word 0xf7e08ea1
+> +#else
+> +#define xen_hvc .word 0xe140ea71
+> +#endif
+> +
+> +/* We need to save and restore r4, because Xen clobbers it. */
+
+Hmm, the comment says r4, but right below I see r12?
+Should this comment be by 'privcmd_call'?
+
+> +#define HYPERCALL(hypercall)                        \
+> +ENTRY(HYPERVISOR_##hypercall)                       \
+> +    mov r12, #__HYPERVISOR_##hypercall;     \
+> +    xen_hvc;                                                        \
+> +    mov pc, lr;                                                     \
+> +ENDPROC(HYPERVISOR_##hypercall)
+> +
+> +                .text
+> +
+> +HYPERCALL(xen_version);
+> +HYPERCALL(console_io);
+> +HYPERCALL(grant_table_op);
+> +HYPERCALL(sched_op);
+> +HYPERCALL(event_channel_op);
+> +HYPERCALL(hvm_op);
+> +HYPERCALL(memory_op);
+> +HYPERCALL(physdev_op);
+> +
+> +ENTRY(privcmd_call)
+> +    stmdb   sp!, {r4}
+> +    mov r12, r0
+> +    mov r0, r1
+> +    mov r1, r2
+> +    mov r2, r3
+> +    ldr r3, [sp, #8]
+> +    ldr r4, [sp, #4]
+> +    xen_hvc
+> +    pop {r4}
+> +    mov pc, lr
+> +ENDPROC(privcmd_call);
+> -- 
+> 1.7.2.5
+> 
+> 
+> _______________________________________________
+> Xen-devel mailing list
+> Xen-devel@lists.xen.org
+> http://lists.xen.org/xen-devel
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<20120726163655.GD9222@phenom.dumpdata.com> b/config/examples/test/corpus/<20120726163655.GD9222@phenom.dumpdata.com>
new file mode 100644 (file)
index 0000000..1090a4a
--- /dev/null
@@ -0,0 +1,209 @@
+From xen-devel-bounces@lists.xen.org Thu Jul 26 17:49:38 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 26 Jul 2012 17:49:38 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SuRFk-0001vJ-Hh
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 26 Jul 2012 17:49:38 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SuRCS-000536-V7; Thu, 26 Jul 2012 16:46:08 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <konrad.wilk@oracle.com>) id 1SuRCQ-00052j-9u
+       for xen-devel@lists.xensource.com; Thu, 26 Jul 2012 16:46:06 +0000
+Received: from [85.158.143.99:3490] by server-1.bemta-4.messagelabs.com id
+       D5/4C-24392-D4471105; Thu, 26 Jul 2012 16:46:05 +0000
+X-Env-Sender: konrad.wilk@oracle.com
+X-Msg-Ref: server-3.tower-216.messagelabs.com!1343321160!28288923!1
+X-Originating-IP: [148.87.113.117]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogMTQ4Ljg3LjExMy4xMTcgPT4gNjU4OTY3\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.2; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 13133 invoked from network); 26 Jul 2012 16:46:04 -0000
+Received: from rcsinet15.oracle.com (HELO rcsinet15.oracle.com)
+       (148.87.113.117)
+       by server-3.tower-216.messagelabs.com with DHE-RSA-AES256-SHA encrypted
+       SMTP; 26 Jul 2012 16:46:04 -0000
+Received: from acsinet22.oracle.com (acsinet22.oracle.com [141.146.126.238])
+       by rcsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
+       ESMTP id q6QGjkvf022513
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
+       Thu, 26 Jul 2012 16:45:47 GMT
+Received: from acsmt358.oracle.com (acsmt358.oracle.com [141.146.40.158])
+       by acsinet22.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
+       q6QGjj9Y016529
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
+       Thu, 26 Jul 2012 16:45:45 GMT
+Received: from abhmt116.oracle.com (abhmt116.oracle.com [141.146.116.68])
+       by acsmt358.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
+       q6QGjj0E031317; Thu, 26 Jul 2012 11:45:45 -0500
+Received: from phenom.dumpdata.com (/209.6.85.33)
+       by default (Oracle Beehive Gateway v4.0)
+       with ESMTP ; Thu, 26 Jul 2012 09:45:45 -0700
+Received: by phenom.dumpdata.com (Postfix, from userid 1000)
+       id DA50C402B5; Thu, 26 Jul 2012 12:36:55 -0400 (EDT)
+Date: Thu, 26 Jul 2012 12:36:55 -0400
+From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+Message-ID: <20120726163655.GD9222@phenom.dumpdata.com>
+References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
+       <1343316846-25860-3-git-send-email-stefano.stabellini@eu.citrix.com>
+MIME-Version: 1.0
+Content-Disposition: inline
+In-Reply-To: <1343316846-25860-3-git-send-email-stefano.stabellini@eu.citrix.com>
+User-Agent: Mutt/1.5.21 (2010-09-15)
+X-Source-IP: acsinet22.oracle.com [141.146.126.238]
+Cc: xen-devel@lists.xensource.com, linaro-dev@lists.linaro.org,
+       Ian.Campbell@citrix.com, arnd@arndb.de, catalin.marinas@arm.com,
+       tim@xen.org, linux-kernel@vger.kernel.org,
+       linux-arm-kernel@lists.infradead.org
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 03/24] xen/arm: page.h definitions
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Thu, Jul 26, 2012 at 04:33:45PM +0100, Stefano Stabellini wrote:
+> ARM Xen guests always use paging in hardware, like PV on HVM guests in
+> the X86 world.
+
+Nice, so no dealing with the P2M at all in the guest?
+
+> 
+> Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+> ---
+>  arch/arm/include/asm/xen/page.h |   77 +++++++++++++++++++++++++++++++++++++++
+>  1 files changed, 77 insertions(+), 0 deletions(-)
+>  create mode 100644 arch/arm/include/asm/xen/page.h
+> 
+> diff --git a/arch/arm/include/asm/xen/page.h b/arch/arm/include/asm/xen/page.h
+> new file mode 100644
+> index 0000000..6cfe9a1
+> --- /dev/null
+> +++ b/arch/arm/include/asm/xen/page.h
+> @@ -0,0 +1,77 @@
+> +#ifndef _ASM_ARM_XEN_PAGE_H
+> +#define _ASM_ARM_XEN_PAGE_H
+> +
+> +#include <asm/page.h>
+> +#include <linux/pfn.h>
+> +#include <linux/types.h>
+> +#include <asm/pgtable.h>
+> +#include <xen/interface/grant_table.h>
+
+I don't if it makes such a difference, but putting the headers in sorted
+order is sometimes nicer than just randomly.. But that might be just
+me liking an orderly world nowadays :-)
+
+> +
+> +#define pfn_to_mfn(pfn)                     (pfn)
+> +#define phys_to_machine_mapping_valid       (1)
+> +#define mfn_to_pfn(mfn)                     (mfn)
+> +#define mfn_to_virt(m)                      (__va(mfn_to_pfn(m) << PAGE_SHIFT))
+> +
+> +#define pte_mfn         pte_pfn
+> +#define mfn_pte         pfn_pte
+> +
+> +/* Xen machine address */
+> +typedef struct xmaddr {
+> +    phys_addr_t maddr;
+> +} xmaddr_t;
+> +
+> +/* Xen pseudo-physical address */
+> +typedef struct xpaddr {
+> +    phys_addr_t paddr;
+> +} xpaddr_t;
+> +
+> +#define XMADDR(x)   ((xmaddr_t) { .maddr = (x) })
+> +#define XPADDR(x)   ((xpaddr_t) { .paddr = (x) })
+> +
+> +static inline xmaddr_t phys_to_machine(xpaddr_t phys)
+> +{
+> +    unsigned offset = phys.paddr & ~PAGE_MASK;
+> +    return XMADDR(PFN_PHYS(pfn_to_mfn(PFN_DOWN(phys.paddr))) | offset);
+> +}
+> +
+> +static inline xpaddr_t machine_to_phys(xmaddr_t machine)
+> +{
+> +    unsigned offset = machine.maddr & ~PAGE_MASK;
+> +    return XPADDR(PFN_PHYS(mfn_to_pfn(PFN_DOWN(machine.maddr))) | offset);
+> +}
+> +/* VIRT <-> MACHINE conversion */
+> +#define virt_to_machine(v)  (phys_to_machine(XPADDR(__pa(v))))
+> +#define virt_to_pfn(v)          (PFN_DOWN(__pa(v)))
+> +#define virt_to_mfn(v)              (pfn_to_mfn(virt_to_pfn(v)))
+> +#define mfn_to_virt(m)              (__va(mfn_to_pfn(m) << PAGE_SHIFT))
+> +
+> +static inline xmaddr_t arbitrary_virt_to_machine(void *vaddr)
+> +{
+> +    /* XXX: assuming it is mapped in the kernel 1:1 */
+> +    return virt_to_machine(vaddr);
+> +}
+> +
+> +/* XXX: this shouldn't be here */
+
+So why is it here?
+
+> +static inline pte_t *lookup_address(unsigned long address, unsigned int *level)
+> +{
+> +    BUG();
+> +    return NULL;
+> +}
+> +
+> +static inline int m2p_add_override(unsigned long mfn, struct page *page,
+> +            struct gnttab_map_grant_ref *kmap_op)
+> +{
+> +    return 0;
+> +}
+> +
+> +static inline int m2p_remove_override(struct page *page, bool clear_pte)
+> +{
+> +    return 0;
+> +}
+> +
+> +static inline bool set_phys_to_machine(unsigned long pfn, unsigned long mfn)
+> +{
+> +    BUG();
+> +    return false;
+> +}
+> +#endif /* _ASM_ARM_XEN_PAGE_H */
+> -- 
+> 1.7.2.5
+> 
+> 
+> _______________________________________________
+> Xen-devel mailing list
+> Xen-devel@lists.xen.org
+> http://lists.xen.org/xen-devel
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<20120726163759.GE9222@phenom.dumpdata.com> b/config/examples/test/corpus/<20120726163759.GE9222@phenom.dumpdata.com>
new file mode 100644 (file)
index 0000000..855054e
--- /dev/null
@@ -0,0 +1,142 @@
+From xen-devel-bounces@lists.xen.org Thu Jul 26 17:51:21 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 26 Jul 2012 17:51:21 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SuRHP-0001vs-Nm
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 26 Jul 2012 17:51:21 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SuRE2-0005FS-JV; Thu, 26 Jul 2012 16:47:46 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <konrad.wilk@oracle.com>) id 1SuRE0-0005FB-MC
+       for xen-devel@lists.xensource.com; Thu, 26 Jul 2012 16:47:44 +0000
+Received: from [85.158.143.35:7940] by server-2.bemta-4.messagelabs.com id
+       94/37-17938-FA471105; Thu, 26 Jul 2012 16:47:43 +0000
+X-Env-Sender: konrad.wilk@oracle.com
+X-Msg-Ref: server-2.tower-21.messagelabs.com!1343321234!6264457!1
+X-Originating-IP: [141.146.126.227]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogMTQxLjE0Ni4xMjYuMjI3ID0+IDY2MTUwNA==\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.2; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 2539 invoked from network); 26 Jul 2012 16:47:21 -0000
+Received: from acsinet15.oracle.com (HELO acsinet15.oracle.com)
+       (141.146.126.227)
+       by server-2.tower-21.messagelabs.com with DHE-RSA-AES256-SHA encrypted
+       SMTP; 26 Jul 2012 16:47:21 -0000
+Received: from ucsinet22.oracle.com (ucsinet22.oracle.com [156.151.31.94])
+       by acsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
+       ESMTP id q6QGkobe002853
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
+       Thu, 26 Jul 2012 16:46:51 GMT
+Received: from acsmt356.oracle.com (acsmt356.oracle.com [141.146.40.156])
+       by ucsinet22.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
+       q6QGknkq018008
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
+       Thu, 26 Jul 2012 16:46:49 GMT
+Received: from abhmt102.oracle.com (abhmt102.oracle.com [141.146.116.54])
+       by acsmt356.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
+       q6QGkmfP025016; Thu, 26 Jul 2012 11:46:49 -0500
+Received: from phenom.dumpdata.com (/209.6.85.33)
+       by default (Oracle Beehive Gateway v4.0)
+       with ESMTP ; Thu, 26 Jul 2012 09:46:48 -0700
+Received: by phenom.dumpdata.com (Postfix, from userid 1000)
+       id 4AF75402B5; Thu, 26 Jul 2012 12:37:59 -0400 (EDT)
+Date: Thu, 26 Jul 2012 12:37:59 -0400
+From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+Message-ID: <20120726163759.GE9222@phenom.dumpdata.com>
+References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
+       <1343316846-25860-4-git-send-email-stefano.stabellini@eu.citrix.com>
+MIME-Version: 1.0
+Content-Disposition: inline
+In-Reply-To: <1343316846-25860-4-git-send-email-stefano.stabellini@eu.citrix.com>
+User-Agent: Mutt/1.5.21 (2010-09-15)
+X-Source-IP: ucsinet22.oracle.com [156.151.31.94]
+Cc: xen-devel@lists.xensource.com, linaro-dev@lists.linaro.org,
+       Ian.Campbell@citrix.com, arnd@arndb.de, catalin.marinas@arm.com,
+       tim@xen.org, linux-kernel@vger.kernel.org,
+       linux-arm-kernel@lists.infradead.org
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 04/24] xen/arm: sync_bitops
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Thu, Jul 26, 2012 at 04:33:46PM +0100, Stefano Stabellini wrote:
+> sync_bitops functions are equivalent to the SMP implementation of the
+> original functions, independently from CONFIG_SMP being defined.
+
+So why can't the code be changed to use that? Is it that
+the _set_bit, _clear_bit, etc are not available with !CONFIG_SMP?
+
+> 
+> Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+> ---
+>  arch/arm/include/asm/sync_bitops.h |   17 +++++++++++++++++
+>  1 files changed, 17 insertions(+), 0 deletions(-)
+>  create mode 100644 arch/arm/include/asm/sync_bitops.h
+> 
+> diff --git a/arch/arm/include/asm/sync_bitops.h b/arch/arm/include/asm/sync_bitops.h
+> new file mode 100644
+> index 0000000..d975092903
+> --- /dev/null
+> +++ b/arch/arm/include/asm/sync_bitops.h
+> @@ -0,0 +1,17 @@
+> +#ifndef __ASM_SYNC_BITOPS_H__
+> +#define __ASM_SYNC_BITOPS_H__
+> +
+> +#include <asm/bitops.h>
+> +#include <asm/system.h>
+> +
+> +#define sync_set_bit(nr, p)         _set_bit(nr, p)
+> +#define sync_clear_bit(nr, p)               _clear_bit(nr, p)
+> +#define sync_change_bit(nr, p)              _change_bit(nr, p)
+> +#define sync_test_and_set_bit(nr, p)        _test_and_set_bit(nr, p)
+> +#define sync_test_and_clear_bit(nr, p)      _test_and_clear_bit(nr, p)
+> +#define sync_test_and_change_bit(nr, p)     _test_and_change_bit(nr, p)
+> +#define sync_test_bit(nr, addr)             test_bit(nr, addr)
+> +#define sync_cmpxchg                        cmpxchg
+> +
+> +
+> +#endif
+> -- 
+> 1.7.2.5
+> 
+> 
+> _______________________________________________
+> Xen-devel mailing list
+> Xen-devel@lists.xen.org
+> http://lists.xen.org/xen-devel
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<20120727142101.GA6802@n2100.arm.linux.org.uk> b/config/examples/test/corpus/<20120727142101.GA6802@n2100.arm.linux.org.uk>
new file mode 100644 (file)
index 0000000..0533263
--- /dev/null
@@ -0,0 +1,120 @@
+From xen-devel-bounces@lists.xen.org Fri Jul 27 15:26:15 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 27 Jul 2012 15:26:15 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SulUX-0001u6-Fl
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 27 Jul 2012 15:26:15 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SulQ2-0001pq-HT; Fri, 27 Jul 2012 14:21:30 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <linux+xen-devel=lists.xensource.com@arm.linux.org.uk>)
+       id 1SulQ0-0001pl-5s
+       for xen-devel@lists.xensource.com; Fri, 27 Jul 2012 14:21:28 +0000
+Received: from [85.158.139.83:44715] by server-2.bemta-5.messagelabs.com id
+       1C/35-04598-7E3A2105; Fri, 27 Jul 2012 14:21:27 +0000
+X-Env-Sender: linux+xen-devel=lists.xensource.com@arm.linux.org.uk
+X-Msg-Ref: server-8.tower-182.messagelabs.com!1343398885!17729599!1
+X-Originating-IP: [78.32.30.218]
+X-SpamReason: No, hits=0.0 required=7.0 tests=
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.2; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 32030 invoked from network); 27 Jul 2012 14:21:26 -0000
+Received: from caramon.arm.linux.org.uk (HELO caramon.arm.linux.org.uk)
+       (78.32.30.218)
+       by server-8.tower-182.messagelabs.com with DHE-RSA-AES256-SHA encrypted
+       SMTP; 27 Jul 2012 14:21:26 -0000
+DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
+       d=arm.linux.org.uk; s=caramon; 
+       h=Sender:In-Reply-To:Content-Type:MIME-Version:References:Message-ID:Subject:Cc:To:From:Date;
+       bh=ARqWlvy4ftNv3lg0qj1mA2YJ8xfrc1D7CXFd4VgiJO8=; 
+       b=ZeYblTNE9BSVURQwJ3HX7XfAooGzQHibfySXxsqzhmj5rnMbOMlhOH3NEPW9JIHn5keVgaXbe3cJdsb+gAB48hrrRGqoYTzdm9p90/+LkBtOmii90jPErF8c5Rw0Eo/0HZnHDqd2NENSwDwCQlWuPyAQCRHoVn3Wt8aAZrGFXX8=;
+Received: from n2100.arm.linux.org.uk
+       ([2002:4e20:1eda:1:214:fdff:fe10:4f86]:47385)
+       by caramon.arm.linux.org.uk with esmtpsa (TLSv1:AES256-SHA:256)
+       (Exim 4.76) (envelope-from <linux@arm.linux.org.uk>)
+       id 1SulPa-00036W-MR; Fri, 27 Jul 2012 15:21:03 +0100
+Received: from linux by n2100.arm.linux.org.uk with local (Exim 4.76)
+       (envelope-from <linux@n2100.arm.linux.org.uk>)
+       id 1SulPZ-00021p-JD; Fri, 27 Jul 2012 15:21:01 +0100
+Date: Fri, 27 Jul 2012 15:21:01 +0100
+From: Russell King - ARM Linux <linux@arm.linux.org.uk>
+To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+Message-ID: <20120727142101.GA6802@n2100.arm.linux.org.uk>
+References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
+       <1343316846-25860-2-git-send-email-stefano.stabellini@eu.citrix.com>
+       <20120726163352.GC9222@phenom.dumpdata.com>
+       <1343380659.6812.106.camel@zakaz.uk.xensource.com>
+       <alpine.DEB.2.02.1207271350370.26163@kaball.uk.xensource.com>
+MIME-Version: 1.0
+Content-Disposition: inline
+In-Reply-To: <alpine.DEB.2.02.1207271350370.26163@kaball.uk.xensource.com>
+User-Agent: Mutt/1.5.19 (2009-01-05)
+Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
+       "linaro-dev@lists.linaro.org" <linaro-dev@lists.linaro.org>,
+       Ian Campbell <Ian.Campbell@citrix.com>, "arnd@arndb.de" <arnd@arndb.de>,
+       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
+       "catalin.marinas@arm.com" <catalin.marinas@arm.com>,
+       "Tim \(Xen.org\)" <tim@xen.org>,
+       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
+       "linux-arm-kernel@lists.infradead.org"
+       <linux-arm-kernel@lists.infradead.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_DKIM_INVALID,T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 02/24] xen/arm: hypercalls
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Fri, Jul 27, 2012 at 02:02:18PM +0100, Stefano Stabellini wrote:
+> > > > +/******************************************************************************
+> > > > + * hypercall.h
+> > > > + *
+> > > > + * Linux-specific hypervisor handling.
+> > > > + *
+> > > > + * Stefano Stabellini <stefano.stabellini@eu.citrix.com>, Citrix, 2012
+> > > > + *
+> > > > + * This program is free software; you can redistribute it and/or
+> > > > + * modify it under the terms of the GNU General Public License version 2
+> > > > + * as published by the Free Software Foundation; or, when distributed
+> > > > + * separately from the Linux kernel or incorporated into other
+> > > > + * software packages, subject to the following license:
+> > > > + *
+> > > > + * Permission is hereby granted, free of charge, to any person obtaining a copy
+> > > > + * of this source file (the "Software"), to deal in the Software without
+
+Erm, is that an additional restriction on the GPL which prevents me from
+shipping this code on a CD and charging for the act of creating the CD
+and shipping it?  That would technically make the above statement
+incompatible with the GPL.
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<20120727145900.GC6802@n2100.arm.linux.org.uk> b/config/examples/test/corpus/<20120727145900.GC6802@n2100.arm.linux.org.uk>
new file mode 100644 (file)
index 0000000..eacb4c0
--- /dev/null
@@ -0,0 +1,140 @@
+From xen-devel-bounces@lists.xen.org Fri Jul 27 16:04:03 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 27 Jul 2012 16:04:03 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1Sum5A-00024j-UD
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 27 Jul 2012 16:04:03 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1Sum0d-0004e3-55; Fri, 27 Jul 2012 14:59:19 +0000
+Received: from mail27.messagelabs.com ([193.109.254.147])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <linux+xen-devel=lists.xensource.com@arm.linux.org.uk>)
+       id 1Sum0b-0004dy-Jq
+       for xen-devel@lists.xensource.com; Fri, 27 Jul 2012 14:59:17 +0000
+X-Env-Sender: linux+xen-devel=lists.xensource.com@arm.linux.org.uk
+X-Msg-Ref: server-10.tower-27.messagelabs.com!1343401150!5952117!1
+X-Originating-IP: [78.32.30.218]
+X-SpamReason: No, hits=0.0 required=7.0 tests=
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.2; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 13228 invoked from network); 27 Jul 2012 14:59:11 -0000
+Received: from caramon.arm.linux.org.uk (HELO caramon.arm.linux.org.uk)
+       (78.32.30.218)
+       by server-10.tower-27.messagelabs.com with DHE-RSA-AES256-SHA encrypted
+       SMTP; 27 Jul 2012 14:59:11 -0000
+DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
+       d=arm.linux.org.uk; s=caramon; 
+       h=Sender:In-Reply-To:Content-Type:MIME-Version:References:Message-ID:Subject:Cc:To:From:Date;
+       bh=1p0ve0wPmNuNPqUFrxPsoF95yn++fRgspQFJbuSPIi8=; 
+       b=muxDZGvqF0PCWe5kCjLZHYDm+Cmyu15W1K8VD1ZgUOse6Ke/GW2AbBUyeyh+wU4i8IRNWOG9HVgKBq1td8XaMk6Y2GoWh1bMP+YedD+V1v34gybUmHfrRDpTRbb8aB/RRhNnGr65zsX3NhUxNvb48VGnnGQJMUSZVcGV9g/LCjI=;
+Received: from n2100.arm.linux.org.uk
+       ([2002:4e20:1eda:1:214:fdff:fe10:4f86]:46965)
+       by caramon.arm.linux.org.uk with esmtpsa (TLSv1:AES256-SHA:256)
+       (Exim 4.76) (envelope-from <linux@arm.linux.org.uk>)
+       id 1Sum0M-000389-37; Fri, 27 Jul 2012 15:59:02 +0100
+Received: from linux by n2100.arm.linux.org.uk with local (Exim 4.76)
+       (envelope-from <linux@n2100.arm.linux.org.uk>)
+       id 1Sum0K-0002FG-RN; Fri, 27 Jul 2012 15:59:00 +0100
+Date: Fri, 27 Jul 2012 15:59:00 +0100
+From: Russell King - ARM Linux <linux@arm.linux.org.uk>
+To: Ian Campbell <Ian.Campbell@citrix.com>
+Message-ID: <20120727145900.GC6802@n2100.arm.linux.org.uk>
+References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
+       <1343316846-25860-2-git-send-email-stefano.stabellini@eu.citrix.com>
+       <20120726163352.GC9222@phenom.dumpdata.com>
+       <1343380659.6812.106.camel@zakaz.uk.xensource.com>
+       <alpine.DEB.2.02.1207271350370.26163@kaball.uk.xensource.com>
+       <20120727142101.GA6802@n2100.arm.linux.org.uk>
+       <1343399971.25096.8.camel@zakaz.uk.xensource.com>
+MIME-Version: 1.0
+Content-Disposition: inline
+In-Reply-To: <1343399971.25096.8.camel@zakaz.uk.xensource.com>
+User-Agent: Mutt/1.5.19 (2009-01-05)
+Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
+       "linaro-dev@lists.linaro.org" <linaro-dev@lists.linaro.org>,
+       "arnd@arndb.de" <arnd@arndb.de>,
+       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
+       "catalin.marinas@arm.com" <catalin.marinas@arm.com>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>,
+       "Tim \(Xen.org\)" <tim@xen.org>,
+       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
+       "linux-arm-kernel@lists.infradead.org"
+       <linux-arm-kernel@lists.infradead.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_DKIM_INVALID,T_RP_MATCHES_RCVD autolearn=unavailable version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 02/24] xen/arm: hypercalls
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Fri, Jul 27, 2012 at 03:39:31PM +0100, Ian Campbell wrote:
+> On Fri, 2012-07-27 at 15:21 +0100, Russell King - ARM Linux wrote:
+> > On Fri, Jul 27, 2012 at 02:02:18PM +0100, Stefano Stabellini wrote:
+> > > > > > +/******************************************************************************
+> > > > > > + * hypercall.h
+> > > > > > + *
+> > > > > > + * Linux-specific hypervisor handling.
+> > > > > > + *
+> > > > > > + * Stefano Stabellini <stefano.stabellini@eu.citrix.com>, Citrix, 2012
+> > > > > > + *
+> > > > > > + * This program is free software; you can redistribute it and/or
+> > > > > > + * modify it under the terms of the GNU General Public License version 2
+> > > > > > + * as published by the Free Software Foundation; or, when distributed
+> > > > > > + * separately from the Linux kernel or incorporated into other
+> > > > > > + * software packages, subject to the following license:
+> > > > > > + *
+> > > > > > + * Permission is hereby granted, free of charge, to any person obtaining a copy
+> > > > > > + * of this source file (the "Software"), to deal in the Software without
+> > 
+> > Erm, is that an additional restriction on the GPL which prevents me from
+> > shipping this code on a CD and charging for the act of creating the CD
+> > and shipping it?  That would technically make the above statement
+> > incompatible with the GPL.
+> 
+> There's an "or" in there.
+> 
+> The non-GPL alternative license is the standard one applied by upstream
+> Xen to the interface headers:
+>         http://xenbits.xen.org/hg/xen-unstable.hg/file/tip/xen/include/public/COPYING
+> 
+> It's the X11/MIT license IIRC, which the FSF say is GPL compatible.
+> http://www.gnu.org/licenses/license-list.html#X11License
+> 
+> The same license is used a few other places in the kernel, e.g. the DRM
+> code.
+
+Ok, but be aware that you won't be able to take code from the Linux
+kernel and place it in a file marked with that license header (because
+the code authors haven't given permission for it to be placed under any
+other license other than GPLv2.)
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<20120801104237.GB7227@phenom.dumpdata.com> b/config/examples/test/corpus/<20120801104237.GB7227@phenom.dumpdata.com>
new file mode 100644 (file)
index 0000000..21baa9b
--- /dev/null
@@ -0,0 +1,120 @@
+From xen-devel-bounces@lists.xen.org Wed Aug 01 11:56:19 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 01 Aug 2012 11:56:19 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SwWbA-0005vQ-OZ
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 01 Aug 2012 11:56:19 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SwWX8-0003Lt-Dx; Wed, 01 Aug 2012 10:52:06 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <konrad.wilk@oracle.com>) id 1SwWX6-0003Lh-V1
+       for xen-devel@lists.xensource.com; Wed, 01 Aug 2012 10:52:05 +0000
+Received: from [85.158.143.35:28168] by server-3.bemta-4.messagelabs.com id
+       37/81-01511-45A09105; Wed, 01 Aug 2012 10:52:04 +0000
+X-Env-Sender: konrad.wilk@oracle.com
+X-Msg-Ref: server-10.tower-21.messagelabs.com!1343818318!10339443!1
+X-Originating-IP: [141.146.126.227]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogMTQxLjE0Ni4xMjYuMjI3ID0+IDY3MjQwNA==\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.2; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 3434 invoked from network); 1 Aug 2012 10:51:59 -0000
+Received: from acsinet15.oracle.com (HELO acsinet15.oracle.com)
+       (141.146.126.227)
+       by server-10.tower-21.messagelabs.com with DHE-RSA-AES256-SHA encrypted
+       SMTP; 1 Aug 2012 10:51:59 -0000
+Received: from ucsinet21.oracle.com (ucsinet21.oracle.com [156.151.31.93])
+       by acsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
+       ESMTP id q71Apesm023175
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
+       Wed, 1 Aug 2012 10:51:41 GMT
+Received: from acsmt357.oracle.com (acsmt357.oracle.com [141.146.40.157])
+       by ucsinet21.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
+       q71Apdxq023155
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
+       Wed, 1 Aug 2012 10:51:39 GMT
+Received: from abhmt109.oracle.com (abhmt109.oracle.com [141.146.116.61])
+       by acsmt357.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
+       q71Apctr008462; Wed, 1 Aug 2012 05:51:38 -0500
+Received: from phenom.dumpdata.com (/209.6.85.33)
+       by default (Oracle Beehive Gateway v4.0)
+       with ESMTP ; Wed, 01 Aug 2012 03:51:38 -0700
+Received: by phenom.dumpdata.com (Postfix, from userid 1000)
+       id 62F2F402B2; Wed,  1 Aug 2012 06:42:37 -0400 (EDT)
+Date: Wed, 1 Aug 2012 06:42:37 -0400
+From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+Message-ID: <20120801104237.GB7227@phenom.dumpdata.com>
+References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
+       <1343316846-25860-1-git-send-email-stefano.stabellini@eu.citrix.com>
+       <20120726163020.GB9222@phenom.dumpdata.com>
+       <alpine.DEB.2.02.1207271246080.26163@kaball.uk.xensource.com>
+MIME-Version: 1.0
+Content-Disposition: inline
+In-Reply-To: <alpine.DEB.2.02.1207271246080.26163@kaball.uk.xensource.com>
+User-Agent: Mutt/1.5.21 (2010-09-15)
+X-Source-IP: ucsinet21.oracle.com [156.151.31.93]
+Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
+       "linaro-dev@lists.linaro.org" <linaro-dev@lists.linaro.org>,
+       Ian Campbell <Ian.Campbell@citrix.com>, "arnd@arndb.de" <arnd@arndb.de>,
+       "catalin.marinas@arm.com" <catalin.marinas@arm.com>,
+       "Tim \(Xen.org\)" <tim@xen.org>,
+       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
+       "linux-arm-kernel@lists.infradead.org"
+       <linux-arm-kernel@lists.infradead.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 01/24] arm: initial Xen support
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+> > > +struct pvclock_wall_clock {
+> > > +        u32   version;
+> > > +        u32   sec;
+> > > +        u32   nsec;
+> > > +} __attribute__((__packed__));
+> > 
+> > That is weird. It is 4+4+4 = 12 bytes? Don't you want it to be 16 bytes?
+> 
+> I agree that 16 bytes would be a better choice, but it needs to match
+> the struct in Xen that is defined as follow:
+> 
+>     uint32_t wc_version;      /* Version counter: see vcpu_time_info_t. */
+>     uint32_t wc_sec;          /* Secs  00:00:00 UTC, Jan 1, 1970.  */
+>     uint32_t wc_nsec;         /* Nsecs 00:00:00 UTC, Jan 1, 1970.  */
+
+Would it make sense to add some paddigin then at least? In both
+cases? Or is it too late for this?
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<20120801111937.4c9b3702@mantra.us.oracle.com> b/config/examples/test/corpus/<20120801111937.4c9b3702@mantra.us.oracle.com>
new file mode 100644 (file)
index 0000000..53f11ea
--- /dev/null
@@ -0,0 +1,131 @@
+From xen-devel-bounces@lists.xen.org Wed Aug 01 19:25:04 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 01 Aug 2012 19:25:04 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SwdbS-0007kc-K9
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 01 Aug 2012 19:25:04 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SwdWq-0005xL-CI; Wed, 01 Aug 2012 18:20:16 +0000
+Received: from mail27.messagelabs.com ([193.109.254.147])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <mukesh.rathor@oracle.com>) id 1SwdWo-0005xD-KI
+       for xen-devel@lists.xensource.com; Wed, 01 Aug 2012 18:20:14 +0000
+X-Env-Sender: mukesh.rathor@oracle.com
+X-Msg-Ref: server-9.tower-27.messagelabs.com!1343845207!10808582!1
+X-Originating-IP: [148.87.113.117]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogMTQ4Ljg3LjExMy4xMTcgPT4gNjY5Nzc4\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.2; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 12476 invoked from network); 1 Aug 2012 18:20:08 -0000
+Received: from rcsinet15.oracle.com (HELO rcsinet15.oracle.com)
+       (148.87.113.117)
+       by server-9.tower-27.messagelabs.com with DHE-RSA-AES256-SHA encrypted
+       SMTP; 1 Aug 2012 18:20:08 -0000
+Received: from ucsinet22.oracle.com (ucsinet22.oracle.com [156.151.31.94])
+       by rcsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
+       ESMTP id q71IJhQC019868
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
+       Wed, 1 Aug 2012 18:19:44 GMT
+Received: from acsmt357.oracle.com (acsmt357.oracle.com [141.146.40.157])
+       by ucsinet22.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
+       q71IJfGT024842
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
+       Wed, 1 Aug 2012 18:19:42 GMT
+Received: from abhmt120.oracle.com (abhmt120.oracle.com [141.146.116.72])
+       by acsmt357.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
+       q71IJek5007626; Wed, 1 Aug 2012 13:19:41 -0500
+Received: from mantra.us.oracle.com (/130.35.68.95)
+       by default (Oracle Beehive Gateway v4.0)
+       with ESMTP ; Wed, 01 Aug 2012 11:19:40 -0700
+Date: Wed, 1 Aug 2012 11:19:37 -0700
+From: Mukesh Rathor <mukesh.rathor@oracle.com>
+To: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+Message-ID: <20120801111937.4c9b3702@mantra.us.oracle.com>
+In-Reply-To: <20120801145215.GP7227@phenom.dumpdata.com>
+References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
+       <1343316846-25860-20-git-send-email-stefano.stabellini@eu.citrix.com>
+       <20120801145215.GP7227@phenom.dumpdata.com>
+Organization: Oracle Corporation
+X-Mailer: Claws Mail 3.7.6 (GTK+ 2.18.9; x86_64-redhat-linux-gnu)
+Mime-Version: 1.0
+X-Source-IP: ucsinet22.oracle.com [156.151.31.94]
+Cc: xen-devel@lists.xensource.com, linaro-dev@lists.linaro.org,
+       Ian.Campbell@citrix.com, arnd@arndb.de,
+       Stefano Stabellini <stefano.stabellini@eu.citrix.com>,
+       catalin.marinas@arm.com, tim@xen.org, linux-kernel@vger.kernel.org,
+       linux-arm-kernel@lists.infradead.org
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 20/24] xen: update xen_add_to_physmap
+       interface
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Wed, 1 Aug 2012 10:52:15 -0400
+Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> wrote:
+
+> On Thu, Jul 26, 2012 at 04:34:02PM +0100, Stefano Stabellini wrote:
+> > Update struct xen_add_to_physmap to be in sync with Xen's version
+> > of the structure.
+> > The size field was introduced by:
+> > 
+> > changeset:   24164:707d27fe03e7
+> > user:        Jean Guyader <jean.guyader@eu.citrix.com>
+> > date:        Fri Nov 18 13:42:08 2011 +0000
+> > summary:     mm: New XENMEM space, XENMAPSPACE_gmfn_range
+> > 
+> > According to the comment:
+> > 
+> > "This new field .size is located in the 16 bits padding
+> > between .domid and .space in struct xen_add_to_physmap to stay
+> > compatible with older versions."
+> > 
+> > This is not true on ARM where there is not padding, but it is valid
+> > on X86, so introducing size is safe on X86 and it is going to fix
+> > the interace for ARM.
+> 
+> Has this been checked actually for backwards compatibility? It sounds
+> like it should work just fine with Xen 4.0 right?
+> 
+> I believe this also helps Mukesh's patches, so CC-ing him here for
+> his Ack.
+
+Yup, I already had that change in my tree.
+
+thanks,
+Mukesh
+
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<20120801141624.GD7227@phenom.dumpdata.com> b/config/examples/test/corpus/<20120801141624.GD7227@phenom.dumpdata.com>
new file mode 100644 (file)
index 0000000..2b1bfbf
--- /dev/null
@@ -0,0 +1,178 @@
+From xen-devel-bounces@lists.xen.org Wed Aug 01 15:30:33 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 01 Aug 2012 15:30:33 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SwZwV-0006e0-1D
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 01 Aug 2012 15:30:33 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SwZs1-0001Ss-H6; Wed, 01 Aug 2012 14:25:53 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <konrad.wilk@oracle.com>) id 1SwZs0-0001Sn-Ae
+       for xen-devel@lists.xensource.com; Wed, 01 Aug 2012 14:25:52 +0000
+Received: from [85.158.143.35:9176] by server-1.bemta-4.messagelabs.com id
+       33/E6-24392-F6C39105; Wed, 01 Aug 2012 14:25:51 +0000
+X-Env-Sender: konrad.wilk@oracle.com
+X-Msg-Ref: server-11.tower-21.messagelabs.com!1343831148!12812735!1
+X-Originating-IP: [141.146.126.227]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogMTQxLjE0Ni4xMjYuMjI3ID0+IDY3MjQwNA==\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.2; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 22000 invoked from network); 1 Aug 2012 14:25:50 -0000
+Received: from acsinet15.oracle.com (HELO acsinet15.oracle.com)
+       (141.146.126.227)
+       by server-11.tower-21.messagelabs.com with DHE-RSA-AES256-SHA encrypted
+       SMTP; 1 Aug 2012 14:25:50 -0000
+Received: from acsinet21.oracle.com (acsinet21.oracle.com [141.146.126.237])
+       by acsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
+       ESMTP id q71EPRHw008943
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
+       Wed, 1 Aug 2012 14:25:28 GMT
+Received: from acsmt357.oracle.com (acsmt357.oracle.com [141.146.40.157])
+       by acsinet21.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
+       q71EPQRG016287
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
+       Wed, 1 Aug 2012 14:25:26 GMT
+Received: from abhmt114.oracle.com (abhmt114.oracle.com [141.146.116.66])
+       by acsmt357.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
+       q71EPPOg024152; Wed, 1 Aug 2012 09:25:25 -0500
+Received: from phenom.dumpdata.com (/209.6.85.33)
+       by default (Oracle Beehive Gateway v4.0)
+       with ESMTP ; Wed, 01 Aug 2012 07:25:25 -0700
+Received: by phenom.dumpdata.com (Postfix, from userid 1000)
+       id 65E20402B2; Wed,  1 Aug 2012 10:16:24 -0400 (EDT)
+Date: Wed, 1 Aug 2012 10:16:24 -0400
+From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+Message-ID: <20120801141624.GD7227@phenom.dumpdata.com>
+References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
+       <1343316846-25860-5-git-send-email-stefano.stabellini@eu.citrix.com>
+MIME-Version: 1.0
+Content-Disposition: inline
+In-Reply-To: <1343316846-25860-5-git-send-email-stefano.stabellini@eu.citrix.com>
+User-Agent: Mutt/1.5.21 (2010-09-15)
+X-Source-IP: acsinet21.oracle.com [141.146.126.237]
+Cc: xen-devel@lists.xensource.com, linaro-dev@lists.linaro.org,
+       Ian.Campbell@citrix.com, arnd@arndb.de, catalin.marinas@arm.com,
+       tim@xen.org, linux-kernel@vger.kernel.org,
+       linux-arm-kernel@lists.infradead.org
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 05/24] xen/arm: empty implementation of
+ grant_table arch specific functions
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Thu, Jul 26, 2012 at 04:33:47PM +0100, Stefano Stabellini wrote:
+> Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+> ---
+>  arch/arm/xen/Makefile      |    2 +-
+>  arch/arm/xen/grant-table.c |   53 ++++++++++++++++++++++++++++++++++++++++++++
+>  2 files changed, 54 insertions(+), 1 deletions(-)
+>  create mode 100644 arch/arm/xen/grant-table.c
+> 
+> diff --git a/arch/arm/xen/Makefile b/arch/arm/xen/Makefile
+> index b9d6acc..4384103 100644
+> --- a/arch/arm/xen/Makefile
+> +++ b/arch/arm/xen/Makefile
+> @@ -1 +1 @@
+> -obj-y               := enlighten.o hypercall.o
+> +obj-y               := enlighten.o hypercall.o grant-table.o
+> diff --git a/arch/arm/xen/grant-table.c b/arch/arm/xen/grant-table.c
+> new file mode 100644
+> index 0000000..0a4ee80
+> --- /dev/null
+> +++ b/arch/arm/xen/grant-table.c
+> @@ -0,0 +1,53 @@
+> +/******************************************************************************
+> + * grant_table.c
+> + * ARM specific part
+> + *
+> + * Granting foreign access to our memory reservation.
+> + *
+> + * This program is free software; you can redistribute it and/or
+> + * modify it under the terms of the GNU General Public License version 2
+> + * as published by the Free Software Foundation; or, when distributed
+> + * separately from the Linux kernel or incorporated into other
+> + * software packages, subject to the following license:
+> + *
+> + * Permission is hereby granted, free of charge, to any person obtaining a copy
+> + * of this source file (the "Software"), to deal in the Software without
+> + * restriction, including without limitation the rights to use, copy, modify,
+> + * merge, publish, distribute, sublicense, and/or sell copies of the Software,
+> + * and to permit persons to whom the Software is furnished to do so, subject to
+> + * the following conditions:
+> + *
+> + * The above copyright notice and this permission notice shall be included in
+> + * all copies or substantial portions of the Software.
+> + *
+> + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+> + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+> + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+> + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+> + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+> + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+> + * IN THE SOFTWARE.
+> + */
+> +
+> +#include <xen/interface/xen.h>
+> +#include <xen/page.h>
+> +#include <xen/grant_table.h>
+> +
+> +int arch_gnttab_map_shared(unsigned long *frames, unsigned long nr_gframes,
+> +                       unsigned long max_nr_gframes,
+> +                       void **__shared)
+> +{
+> +    return -1;
+
+-ENOSYS
+> +}
+> +
+> +void arch_gnttab_unmap(void *shared, unsigned long nr_gframes)
+> +{
+> +    return;
+> +}
+> +
+> +int arch_gnttab_map_status(uint64_t *frames, unsigned long nr_gframes,
+> +                       unsigned long max_nr_gframes,
+> +                       grant_status_t **__shared)
+> +{
+> +    return -1;
+
+Same here -ENOSYS
+> +}
+> -- 
+> 1.7.2.5
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<20120801141959.GE7227@phenom.dumpdata.com> b/config/examples/test/corpus/<20120801141959.GE7227@phenom.dumpdata.com>
new file mode 100644 (file)
index 0000000..3171e27
--- /dev/null
@@ -0,0 +1,195 @@
+From xen-devel-bounces@lists.xen.org Wed Aug 01 15:33:42 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 01 Aug 2012 15:33:42 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SwZzV-0006fO-8D
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 01 Aug 2012 15:33:42 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SwZvV-0001ZJ-4p; Wed, 01 Aug 2012 14:29:29 +0000
+Received: from mail27.messagelabs.com ([193.109.254.147])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <konrad.wilk@oracle.com>) id 1SwZvT-0001Z3-C3
+       for xen-devel@lists.xensource.com; Wed, 01 Aug 2012 14:29:27 +0000
+X-Env-Sender: konrad.wilk@oracle.com
+X-Msg-Ref: server-11.tower-27.messagelabs.com!1343831359!1851647!1
+X-Originating-IP: [148.87.113.117]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogMTQ4Ljg3LjExMy4xMTcgPT4gNjY5Nzc4\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.2; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 25651 invoked from network); 1 Aug 2012 14:29:21 -0000
+Received: from rcsinet15.oracle.com (HELO rcsinet15.oracle.com)
+       (148.87.113.117)
+       by server-11.tower-27.messagelabs.com with DHE-RSA-AES256-SHA encrypted
+       SMTP; 1 Aug 2012 14:29:21 -0000
+Received: from acsinet22.oracle.com (acsinet22.oracle.com [141.146.126.238])
+       by rcsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
+       ESMTP id q71ET0e1011727
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
+       Wed, 1 Aug 2012 14:29:01 GMT
+Received: from acsmt357.oracle.com (acsmt357.oracle.com [141.146.40.157])
+       by acsinet22.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
+       q71ET0pX020827
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
+       Wed, 1 Aug 2012 14:29:00 GMT
+Received: from abhmt113.oracle.com (abhmt113.oracle.com [141.146.116.65])
+       by acsmt357.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
+       q71ESxbh026972; Wed, 1 Aug 2012 09:28:59 -0500
+Received: from phenom.dumpdata.com (/209.6.85.33)
+       by default (Oracle Beehive Gateway v4.0)
+       with ESMTP ; Wed, 01 Aug 2012 07:28:59 -0700
+Received: by phenom.dumpdata.com (Postfix, from userid 1000)
+       id 1E423402B2; Wed,  1 Aug 2012 10:19:59 -0400 (EDT)
+Date: Wed, 1 Aug 2012 10:19:59 -0400
+From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+Message-ID: <20120801141959.GE7227@phenom.dumpdata.com>
+References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
+       <1343316846-25860-7-git-send-email-stefano.stabellini@eu.citrix.com>
+MIME-Version: 1.0
+Content-Disposition: inline
+In-Reply-To: <1343316846-25860-7-git-send-email-stefano.stabellini@eu.citrix.com>
+User-Agent: Mutt/1.5.21 (2010-09-15)
+X-Source-IP: acsinet22.oracle.com [141.146.126.238]
+Cc: xen-devel@lists.xensource.com, linaro-dev@lists.linaro.org,
+       Ian.Campbell@citrix.com, arnd@arndb.de, catalin.marinas@arm.com,
+       tim@xen.org, linux-kernel@vger.kernel.org,
+       linux-arm-kernel@lists.infradead.org
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 07/24] xen/arm: Xen detection and
+       shared_info page mapping
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Thu, Jul 26, 2012 at 04:33:49PM +0100, Stefano Stabellini wrote:
+> Check for a "/xen" node in the device tree, if it is present set
+> xen_domain_type to XEN_HVM_DOMAIN and continue initialization.
+> 
+> Map the real shared info page using XENMEM_add_to_physmap with
+> XENMAPSPACE_shared_info.
+> 
+> Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+> ---
+>  arch/arm/xen/enlighten.c |   56 ++++++++++++++++++++++++++++++++++++++++++++++
+>  1 files changed, 56 insertions(+), 0 deletions(-)
+> 
+> diff --git a/arch/arm/xen/enlighten.c b/arch/arm/xen/enlighten.c
+> index d27c2a6..8c923af 100644
+> --- a/arch/arm/xen/enlighten.c
+> +++ b/arch/arm/xen/enlighten.c
+> @@ -5,6 +5,9 @@
+>  #include <asm/xen/hypervisor.h>
+>  #include <asm/xen/hypercall.h>
+>  #include <linux/module.h>
+> +#include <linux/of.h>
+> +#include <linux/of_irq.h>
+> +#include <linux/of_address.h>
+>  
+>  struct start_info _xen_start_info;
+>  struct start_info *xen_start_info = &_xen_start_info;
+> @@ -33,3 +36,56 @@ int xen_remap_domain_mfn_range(struct vm_area_struct *vma,
+>      return -ENOSYS;
+>  }
+>  EXPORT_SYMBOL_GPL(xen_remap_domain_mfn_range);
+> +
+> +/*
+> + * == Xen Device Tree format ==
+> + * - /xen node;
+> + * - compatible "arm,xen";
+> + * - one interrupt for Xen event notifications;
+> + * - one memory region to map the grant_table.
+> + */
+> +static int __init xen_guest_init(void)
+> +{
+> +    int cpu;
+> +    struct xen_add_to_physmap xatp;
+> +    static struct shared_info *shared_info_page = 0;
+> +    struct device_node *node;
+> +
+> +    node = of_find_compatible_node(NULL, NULL, "arm,xen");
+> +    if (!node) {
+> +            pr_info("No Xen support\n");
+
+I don't think the pr_info is appropiate here?
+> +            return 0;
+
+Should this be -ENODEV?
+
+> +    }
+> +    xen_domain_type = XEN_HVM_DOMAIN;
+> +
+> +    if (!shared_info_page)
+> +            shared_info_page = (struct shared_info *)
+> +                    get_zeroed_page(GFP_KERNEL);
+> +    if (!shared_info_page) {
+> +            pr_err("not enough memory");
+
+\n
+
+> +            return -ENOMEM;
+> +    }
+> +    xatp.domid = DOMID_SELF;
+> +    xatp.idx = 0;
+> +    xatp.space = XENMAPSPACE_shared_info;
+> +    xatp.gpfn = __pa(shared_info_page) >> PAGE_SHIFT;
+> +    if (HYPERVISOR_memory_op(XENMEM_add_to_physmap, &xatp))
+> +            BUG();
+> +
+> +    HYPERVISOR_shared_info = (struct shared_info *)shared_info_page;
+> +
+> +    /* xen_vcpu is a pointer to the vcpu_info struct in the shared_info
+> +     * page, we use it in the event channel upcall and in some pvclock
+> +     * related functions. We don't need the vcpu_info placement
+> +     * optimizations because we don't use any pv_mmu or pv_irq op on
+> +     * HVM.
+> +     * When xen_hvm_init_shared_info is run at boot time only vcpu 0 is
+> +     * online but xen_hvm_init_shared_info is run at resume time too and
+> +     * in that case multiple vcpus might be online. */
+> +    for_each_online_cpu(cpu) {
+> +            per_cpu(xen_vcpu, cpu) =
+> +                    &HYPERVISOR_shared_info->vcpu_info[cpu];
+> +    }
+> +    return 0;
+
+This above looks stringly similar to the x86 one. Could it be
+abstracted away to share the same code? Or is that something that
+ought to be done later on when there is more meat on the bone?
+
+
+> +}
+> +core_initcall(xen_guest_init);
+> -- 
+> 1.7.2.5
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<20120801142249.GF7227@phenom.dumpdata.com> b/config/examples/test/corpus/<20120801142249.GF7227@phenom.dumpdata.com>
new file mode 100644 (file)
index 0000000..2b1d651
--- /dev/null
@@ -0,0 +1,301 @@
+From xen-devel-bounces@lists.xen.org Wed Aug 01 15:36:59 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 01 Aug 2012 15:36:59 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1Swa2f-0006gL-Ju
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 01 Aug 2012 15:36:59 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SwZyF-0001hS-NG; Wed, 01 Aug 2012 14:32:19 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <konrad.wilk@oracle.com>) id 1SwZyD-0001hL-7R
+       for xen-devel@lists.xensource.com; Wed, 01 Aug 2012 14:32:17 +0000
+Received: from [85.158.138.51:46597] by server-7.bemta-3.messagelabs.com id
+       93/3F-21158-0FD39105; Wed, 01 Aug 2012 14:32:16 +0000
+X-Env-Sender: konrad.wilk@oracle.com
+X-Msg-Ref: server-4.tower-174.messagelabs.com!1343831533!29881756!1
+X-Originating-IP: [148.87.113.117]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogMTQ4Ljg3LjExMy4xMTcgPT4gNjY5Nzc4\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.2; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 14960 invoked from network); 1 Aug 2012 14:32:15 -0000
+Received: from rcsinet15.oracle.com (HELO rcsinet15.oracle.com)
+       (148.87.113.117)
+       by server-4.tower-174.messagelabs.com with DHE-RSA-AES256-SHA encrypted
+       SMTP; 1 Aug 2012 14:32:15 -0000
+Received: from ucsinet22.oracle.com (ucsinet22.oracle.com [156.151.31.94])
+       by rcsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
+       ESMTP id q71EVp72015431
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
+       Wed, 1 Aug 2012 14:31:52 GMT
+Received: from acsmt356.oracle.com (acsmt356.oracle.com [141.146.40.156])
+       by ucsinet22.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
+       q71EVous026386
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
+       Wed, 1 Aug 2012 14:31:51 GMT
+Received: from abhmt113.oracle.com (abhmt113.oracle.com [141.146.116.65])
+       by acsmt356.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
+       q71EVo8L007520; Wed, 1 Aug 2012 09:31:50 -0500
+Received: from phenom.dumpdata.com (/209.6.85.33)
+       by default (Oracle Beehive Gateway v4.0)
+       with ESMTP ; Wed, 01 Aug 2012 07:31:50 -0700
+Received: by phenom.dumpdata.com (Postfix, from userid 1000)
+       id 6BE6E402B2; Wed,  1 Aug 2012 10:22:49 -0400 (EDT)
+Date: Wed, 1 Aug 2012 10:22:49 -0400
+From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+Message-ID: <20120801142249.GF7227@phenom.dumpdata.com>
+References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
+       <1343316846-25860-8-git-send-email-stefano.stabellini@eu.citrix.com>
+MIME-Version: 1.0
+Content-Disposition: inline
+In-Reply-To: <1343316846-25860-8-git-send-email-stefano.stabellini@eu.citrix.com>
+User-Agent: Mutt/1.5.21 (2010-09-15)
+X-Source-IP: ucsinet22.oracle.com [156.151.31.94]
+Cc: xen-devel@lists.xensource.com, linaro-dev@lists.linaro.org,
+       Ian.Campbell@citrix.com, arnd@arndb.de, catalin.marinas@arm.com,
+       tim@xen.org, linux-kernel@vger.kernel.org,
+       linux-arm-kernel@lists.infradead.org
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 08/24] xen/arm: Introduce xen_pfn_t for pfn
+       and mfn types
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Thu, Jul 26, 2012 at 04:33:50PM +0100, Stefano Stabellini wrote:
+> All the original Xen headers have xen_pfn_t as mfn and pfn type, however
+> when they have been imported in Linux, xen_pfn_t has been replaced with
+> unsigned long. That might work for x86 and ia64 but it does not for arm.
+
+How come?
+> Bring back xen_pfn_t and let each architecture define xen_pfn_t as they
+> see fit.
+
+I am OK with this as long as your include a comment in both of the
+interface.h saying why this is needed. I am curious why 'unsinged long'
+won't work? Is it b/c on ARM you always want a 64-bit type?
+
+> 
+> Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+> ---
+>  arch/arm/include/asm/xen/interface.h  |    2 ++
+>  arch/ia64/include/asm/xen/interface.h |    2 +-
+>  arch/x86/include/asm/xen/interface.h  |    2 ++
+>  include/xen/interface/grant_table.h   |    4 ++--
+>  include/xen/interface/memory.h        |    6 +++---
+>  include/xen/interface/platform.h      |    4 ++--
+>  include/xen/interface/xen.h           |    6 +++---
+>  include/xen/privcmd.h                 |    2 --
+>  8 files changed, 15 insertions(+), 13 deletions(-)
+> 
+> diff --git a/arch/arm/include/asm/xen/interface.h b/arch/arm/include/asm/xen/interface.h
+> index 6c3ab59..76b1ebe 100644
+> --- a/arch/arm/include/asm/xen/interface.h
+> +++ b/arch/arm/include/asm/xen/interface.h
+> @@ -25,6 +25,7 @@
+>      } while (0)
+>  
+>  #ifndef __ASSEMBLY__
+> +typedef uint64_t xen_pfn_t;
+>  /* Guest handles for primitive C types. */
+>  __DEFINE_GUEST_HANDLE(uchar, unsigned char);
+>  __DEFINE_GUEST_HANDLE(uint,  unsigned int);
+> @@ -35,6 +36,7 @@ DEFINE_GUEST_HANDLE(long);
+>  DEFINE_GUEST_HANDLE(void);
+>  DEFINE_GUEST_HANDLE(uint64_t);
+>  DEFINE_GUEST_HANDLE(uint32_t);
+> +DEFINE_GUEST_HANDLE(xen_pfn_t);
+>  
+>  /* Maximum number of virtual CPUs in multi-processor guests. */
+>  #define MAX_VIRT_CPUS 1
+> diff --git a/arch/ia64/include/asm/xen/interface.h b/arch/ia64/include/asm/xen/interface.h
+> index 09d5f7f..9efa068 100644
+> --- a/arch/ia64/include/asm/xen/interface.h
+> +++ b/arch/ia64/include/asm/xen/interface.h
+> @@ -67,6 +67,7 @@
+>  #define set_xen_guest_handle(hnd, val)      do { (hnd).p = val; } while (0)
+>  
+>  #ifndef __ASSEMBLY__
+> +typedef unsigned long xen_pfn_t;
+>  /* Guest handles for primitive C types. */
+>  __DEFINE_GUEST_HANDLE(uchar, unsigned char);
+>  __DEFINE_GUEST_HANDLE(uint, unsigned int);
+> @@ -79,7 +80,6 @@ DEFINE_GUEST_HANDLE(void);
+>  DEFINE_GUEST_HANDLE(uint64_t);
+>  DEFINE_GUEST_HANDLE(uint32_t);
+>  
+> -typedef unsigned long xen_pfn_t;
+>  DEFINE_GUEST_HANDLE(xen_pfn_t);
+>  #define PRI_xen_pfn "lx"
+>  #endif
+> diff --git a/arch/x86/include/asm/xen/interface.h b/arch/x86/include/asm/xen/interface.h
+> index cbf0c9d..24c1b07 100644
+> --- a/arch/x86/include/asm/xen/interface.h
+> +++ b/arch/x86/include/asm/xen/interface.h
+> @@ -47,6 +47,7 @@
+>  #endif
+>  
+>  #ifndef __ASSEMBLY__
+> +typedef unsigned long xen_pfn_t;
+>  /* Guest handles for primitive C types. */
+>  __DEFINE_GUEST_HANDLE(uchar, unsigned char);
+>  __DEFINE_GUEST_HANDLE(uint,  unsigned int);
+> @@ -57,6 +58,7 @@ DEFINE_GUEST_HANDLE(long);
+>  DEFINE_GUEST_HANDLE(void);
+>  DEFINE_GUEST_HANDLE(uint64_t);
+>  DEFINE_GUEST_HANDLE(uint32_t);
+> +DEFINE_GUEST_HANDLE(xen_pfn_t);
+>  #endif
+>  
+>  #ifndef HYPERVISOR_VIRT_START
+> diff --git a/include/xen/interface/grant_table.h b/include/xen/interface/grant_table.h
+> index a17d844..7da811b 100644
+> --- a/include/xen/interface/grant_table.h
+> +++ b/include/xen/interface/grant_table.h
+> @@ -338,7 +338,7 @@ DEFINE_GUEST_HANDLE_STRUCT(gnttab_dump_table);
+>  #define GNTTABOP_transfer                4
+>  struct gnttab_transfer {
+>      /* IN parameters. */
+> -    unsigned long mfn;
+> +    xen_pfn_t mfn;
+>      domid_t       domid;
+>      grant_ref_t   ref;
+>      /* OUT parameters. */
+> @@ -375,7 +375,7 @@ struct gnttab_copy {
+>      struct {
+>              union {
+>                      grant_ref_t ref;
+> -                    unsigned long   gmfn;
+> +                    xen_pfn_t   gmfn;
+>              } u;
+>              domid_t  domid;
+>              uint16_t offset;
+> diff --git a/include/xen/interface/memory.h b/include/xen/interface/memory.h
+> index eac3ce1..abbbff0 100644
+> --- a/include/xen/interface/memory.h
+> +++ b/include/xen/interface/memory.h
+> @@ -31,7 +31,7 @@ struct xen_memory_reservation {
+>       *   OUT: GMFN bases of extents that were allocated
+>       *   (NB. This command also updates the mach_to_phys translation table)
+>       */
+> -    GUEST_HANDLE(ulong) extent_start;
+> +    GUEST_HANDLE(xen_pfn_t) extent_start;
+>  
+>      /* Number of extents, and size/alignment of each (2^extent_order pages). */
+>      unsigned long  nr_extents;
+> @@ -130,7 +130,7 @@ struct xen_machphys_mfn_list {
+>       * any large discontiguities in the machine address space, 2MB gaps in
+>       * the machphys table will be represented by an MFN base of zero.
+>       */
+> -    GUEST_HANDLE(ulong) extent_start;
+> +    GUEST_HANDLE(xen_pfn_t) extent_start;
+>  
+>      /*
+>       * Number of extents written to the above array. This will be smaller
+> @@ -172,7 +172,7 @@ struct xen_add_to_physmap {
+>      unsigned long idx;
+>  
+>      /* GPFN where the source mapping page should appear. */
+> -    unsigned long gpfn;
+> +    xen_pfn_t gpfn;
+>  };
+>  DEFINE_GUEST_HANDLE_STRUCT(xen_add_to_physmap);
+>  
+> diff --git a/include/xen/interface/platform.h b/include/xen/interface/platform.h
+> index 486653f..0bea470 100644
+> --- a/include/xen/interface/platform.h
+> +++ b/include/xen/interface/platform.h
+> @@ -54,7 +54,7 @@ DEFINE_GUEST_HANDLE_STRUCT(xenpf_settime_t);
+>  #define XENPF_add_memtype         31
+>  struct xenpf_add_memtype {
+>      /* IN variables. */
+> -    unsigned long mfn;
+> +    xen_pfn_t mfn;
+>      uint64_t nr_mfns;
+>      uint32_t type;
+>      /* OUT variables. */
+> @@ -84,7 +84,7 @@ struct xenpf_read_memtype {
+>      /* IN variables. */
+>      uint32_t reg;
+>      /* OUT variables. */
+> -    unsigned long mfn;
+> +    xen_pfn_t mfn;
+>      uint64_t nr_mfns;
+>      uint32_t type;
+>  };
+> diff --git a/include/xen/interface/xen.h b/include/xen/interface/xen.h
+> index 4f29f33..d59a991 100644
+> --- a/include/xen/interface/xen.h
+> +++ b/include/xen/interface/xen.h
+> @@ -192,7 +192,7 @@ struct mmuext_op {
+>      unsigned int cmd;
+>      union {
+>              /* [UN]PIN_TABLE, NEW_BASEPTR, NEW_USER_BASEPTR */
+> -            unsigned long mfn;
+> +            xen_pfn_t mfn;
+>              /* INVLPG_LOCAL, INVLPG_ALL, SET_LDT */
+>              unsigned long linear_addr;
+>      } arg1;
+> @@ -432,11 +432,11 @@ struct start_info {
+>      unsigned long nr_pages;     /* Total pages allocated to this domain.  */
+>      unsigned long shared_info;  /* MACHINE address of shared info struct. */
+>      uint32_t flags;             /* SIF_xxx flags.                         */
+> -    unsigned long store_mfn;    /* MACHINE page number of shared page.    */
+> +    xen_pfn_t store_mfn;        /* MACHINE page number of shared page.    */
+>      uint32_t store_evtchn;      /* Event channel for store communication. */
+>      union {
+>              struct {
+> -                    unsigned long mfn;  /* MACHINE page number of console page.   */
+> +                    xen_pfn_t mfn;      /* MACHINE page number of console page.   */
+>                      uint32_t  evtchn;   /* Event channel for console page.        */
+>              } domU;
+>              struct {
+> diff --git a/include/xen/privcmd.h b/include/xen/privcmd.h
+> index 4d58881..45c1aa1 100644
+> --- a/include/xen/privcmd.h
+> +++ b/include/xen/privcmd.h
+> @@ -37,8 +37,6 @@
+>  #include <linux/compiler.h>
+>  #include <xen/interface/xen.h>
+>  
+> -typedef unsigned long xen_pfn_t;
+> -
+>  struct privcmd_hypercall {
+>      __u64 op;
+>      __u64 arg[5];
+> -- 
+> 1.7.2.5
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<20120801142840.GG7227@phenom.dumpdata.com> b/config/examples/test/corpus/<20120801142840.GG7227@phenom.dumpdata.com>
new file mode 100644 (file)
index 0000000..88fba59
--- /dev/null
@@ -0,0 +1,208 @@
+From xen-devel-bounces@lists.xen.org Wed Aug 01 15:42:37 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 01 Aug 2012 15:42:37 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1Swa88-0006he-JQ
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 01 Aug 2012 15:42:37 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1Swa3m-0001vy-GR; Wed, 01 Aug 2012 14:38:02 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <konrad.wilk@oracle.com>) id 1Swa3j-0001vr-UR
+       for xen-devel@lists.xensource.com; Wed, 01 Aug 2012 14:38:00 +0000
+Received: from [85.158.139.83:36407] by server-3.bemta-5.messagelabs.com id
+       38/CB-03367-74F39105; Wed, 01 Aug 2012 14:37:59 +0000
+X-Env-Sender: konrad.wilk@oracle.com
+X-Msg-Ref: server-6.tower-182.messagelabs.com!1343831877!25893629!1
+X-Originating-IP: [148.87.113.117]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogMTQ4Ljg3LjExMy4xMTcgPT4gNjY5Nzc4\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.2; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 20430 invoked from network); 1 Aug 2012 14:37:58 -0000
+Received: from rcsinet15.oracle.com (HELO rcsinet15.oracle.com)
+       (148.87.113.117)
+       by server-6.tower-182.messagelabs.com with DHE-RSA-AES256-SHA encrypted
+       SMTP; 1 Aug 2012 14:37:58 -0000
+Received: from ucsinet21.oracle.com (ucsinet21.oracle.com [156.151.31.93])
+       by rcsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
+       ESMTP id q71EbhnX022791
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
+       Wed, 1 Aug 2012 14:37:43 GMT
+Received: from acsmt356.oracle.com (acsmt356.oracle.com [141.146.40.156])
+       by ucsinet21.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
+       q71Ebf7p021378
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
+       Wed, 1 Aug 2012 14:37:42 GMT
+Received: from abhmt114.oracle.com (abhmt114.oracle.com [141.146.116.66])
+       by acsmt356.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
+       q71Ebfe4012623; Wed, 1 Aug 2012 09:37:41 -0500
+Received: from phenom.dumpdata.com (/209.6.85.33)
+       by default (Oracle Beehive Gateway v4.0)
+       with ESMTP ; Wed, 01 Aug 2012 07:37:41 -0700
+Received: by phenom.dumpdata.com (Postfix, from userid 1000)
+       id 5D5AF402B2; Wed,  1 Aug 2012 10:28:40 -0400 (EDT)
+Date: Wed, 1 Aug 2012 10:28:40 -0400
+From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+Message-ID: <20120801142840.GG7227@phenom.dumpdata.com>
+References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
+       <1343316846-25860-9-git-send-email-stefano.stabellini@eu.citrix.com>
+MIME-Version: 1.0
+Content-Disposition: inline
+In-Reply-To: <1343316846-25860-9-git-send-email-stefano.stabellini@eu.citrix.com>
+User-Agent: Mutt/1.5.21 (2010-09-15)
+X-Source-IP: ucsinet21.oracle.com [156.151.31.93]
+Cc: xen-devel@lists.xensource.com, linaro-dev@lists.linaro.org,
+       Ian.Campbell@citrix.com, arnd@arndb.de, catalin.marinas@arm.com,
+       tim@xen.org, linux-kernel@vger.kernel.org,
+       linux-arm-kernel@lists.infradead.org
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 09/24] xen/arm: compile and run xenbus
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Thu, Jul 26, 2012 at 04:33:51PM +0100, Stefano Stabellini wrote:
+> bind_evtchn_to_irqhandler can legitimately return 0 (irq 0): it is not
+> an error.
+> 
+> If Linux is running as an HVM domain and is running as Dom0, use
+> xenstored_local_init to initialize the xenstore page and event channel.
+> 
+> Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+> ---
+>  drivers/xen/xenbus/xenbus_comms.c |    2 +-
+>  drivers/xen/xenbus/xenbus_probe.c |   27 +++++++++++++++++----------
+>  drivers/xen/xenbus/xenbus_xs.c    |    1 +
+>  3 files changed, 19 insertions(+), 11 deletions(-)
+> 
+> diff --git a/drivers/xen/xenbus/xenbus_comms.c b/drivers/xen/xenbus/xenbus_comms.c
+> index 52fe7ad..c5aa55c 100644
+> --- a/drivers/xen/xenbus/xenbus_comms.c
+> +++ b/drivers/xen/xenbus/xenbus_comms.c
+> @@ -224,7 +224,7 @@ int xb_init_comms(void)
+>              int err;
+>              err = bind_evtchn_to_irqhandler(xen_store_evtchn, wake_waiting,
+>                                              0, "xenbus", &xb_waitq);
+> -            if (err <= 0) {
+> +            if (err < 0) {
+>                      printk(KERN_ERR "XENBUS request irq failed %i\n", err);
+>                      return err;
+>              }
+> diff --git a/drivers/xen/xenbus/xenbus_probe.c b/drivers/xen/xenbus/xenbus_probe.c
+> index b793723..3ae47c2 100644
+> --- a/drivers/xen/xenbus/xenbus_probe.c
+> +++ b/drivers/xen/xenbus/xenbus_probe.c
+> @@ -729,16 +729,23 @@ static int __init xenbus_init(void)
+>      xenbus_ring_ops_init();
+>  
+>      if (xen_hvm_domain()) {
+> -            uint64_t v = 0;
+> -            err = hvm_get_parameter(HVM_PARAM_STORE_EVTCHN, &v);
+> -            if (err)
+> -                    goto out_error;
+> -            xen_store_evtchn = (int)v;
+> -            err = hvm_get_parameter(HVM_PARAM_STORE_PFN, &v);
+> -            if (err)
+> -                    goto out_error;
+> -            xen_store_mfn = (unsigned long)v;
+> -            xen_store_interface = ioremap(xen_store_mfn << PAGE_SHIFT, PAGE_SIZE);
+> +            if (xen_initial_domain()) {
+> +                    err = xenstored_local_init();
+> +                    xen_store_interface =
+> +                            phys_to_virt(xen_store_mfn << PAGE_SHIFT);
+> +            } else {
+> +                    uint64_t v = 0;
+> +                    err = hvm_get_parameter(HVM_PARAM_STORE_EVTCHN, &v);
+> +                    if (err)
+> +                            goto out_error;
+> +                    xen_store_evtchn = (int)v;
+> +                    err = hvm_get_parameter(HVM_PARAM_STORE_PFN, &v);
+> +                    if (err)
+> +                            goto out_error;
+> +                    xen_store_mfn = (unsigned long)v;
+> +                    xen_store_interface =
+> +                            ioremap(xen_store_mfn << PAGE_SHIFT, PAGE_SIZE);
+> +            }
+
+This, and along with the Hybrid PV dom0 (not yet posted, but it was doing
+similar manipulation here) is getting more and more like a rat-mess.
+
+
+Any chance we can just abstract the three different XenStore access
+ways and just have something like this:
+
+       enum {
+               USE_UNKNOWN
+               USE_HVM,
+               USE_PV,
+               USE_LOCAL
+               USE_ALREADY_INIT
+       };
+       int usage = USE_UNKNOWN;
+       if (xen_pv_domain())
+               usage = USE_PV;
+       if (xen_hvm_domain())
+               usage = USE_HVM;
+       if (xen_initial_domain())
+               usage = USE_LOCAL;
+
+       if (xen_start_info->store_evtchn)
+               usage = USE_ALREADY_INIT;
+       
+       .. other overwrites..
+
+       switch (usage) {
+               .. blah blah.
+       }
+
+
+>              xen_store_evtchn = xen_start_info->store_evtchn;
+>              xen_store_mfn = xen_start_info->store_mfn;
+> diff --git a/drivers/xen/xenbus/xenbus_xs.c b/drivers/xen/xenbus/xenbus_xs.c
+> index d1c217b..f7feb3d 100644
+> --- a/drivers/xen/xenbus/xenbus_xs.c
+> +++ b/drivers/xen/xenbus/xenbus_xs.c
+> @@ -44,6 +44,7 @@
+>  #include <linux/rwsem.h>
+>  #include <linux/module.h>
+>  #include <linux/mutex.h>
+> +#include <asm/xen/hypervisor.h>
+>  #include <xen/xenbus.h>
+>  #include <xen/xen.h>
+>  #include "xenbus_comms.h"
+> -- 
+> 1.7.2.5
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<20120801143459.GH7227@phenom.dumpdata.com> b/config/examples/test/corpus/<20120801143459.GH7227@phenom.dumpdata.com>
new file mode 100644 (file)
index 0000000..9474fee
--- /dev/null
@@ -0,0 +1,155 @@
+From xen-devel-bounces@lists.xen.org Wed Aug 01 15:48:54 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 01 Aug 2012 15:48:54 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SwaEC-0006jX-Fn
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 01 Aug 2012 15:48:54 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1Swa9u-00027A-FC; Wed, 01 Aug 2012 14:44:22 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <konrad.wilk@oracle.com>) id 1Swa9s-000275-N9
+       for xen-devel@lists.xensource.com; Wed, 01 Aug 2012 14:44:21 +0000
+Received: from [85.158.139.83:27976] by server-9.bemta-5.messagelabs.com id
+       5E/2D-01069-3C049105; Wed, 01 Aug 2012 14:44:19 +0000
+X-Env-Sender: konrad.wilk@oracle.com
+X-Msg-Ref: server-7.tower-182.messagelabs.com!1343832258!24076910!1
+X-Originating-IP: [141.146.126.227]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogMTQxLjE0Ni4xMjYuMjI3ID0+IDY3MjQwNA==\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.2; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 2944 invoked from network); 1 Aug 2012 14:44:19 -0000
+Received: from acsinet15.oracle.com (HELO acsinet15.oracle.com)
+       (141.146.126.227)
+       by server-7.tower-182.messagelabs.com with DHE-RSA-AES256-SHA encrypted
+       SMTP; 1 Aug 2012 14:44:19 -0000
+Received: from ucsinet22.oracle.com (ucsinet22.oracle.com [156.151.31.94])
+       by acsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
+       ESMTP id q71Ei3sp031394
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
+       Wed, 1 Aug 2012 14:44:04 GMT
+Received: from acsmt356.oracle.com (acsmt356.oracle.com [141.146.40.156])
+       by ucsinet22.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
+       q71Ei0K4024028
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
+       Wed, 1 Aug 2012 14:44:01 GMT
+Received: from abhmt101.oracle.com (abhmt101.oracle.com [141.146.116.53])
+       by acsmt356.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
+       q71EhxKh018218; Wed, 1 Aug 2012 09:44:00 -0500
+Received: from phenom.dumpdata.com (/209.6.85.33)
+       by default (Oracle Beehive Gateway v4.0)
+       with ESMTP ; Wed, 01 Aug 2012 07:43:59 -0700
+Received: by phenom.dumpdata.com (Postfix, from userid 1000)
+       id 1E802402B2; Wed,  1 Aug 2012 10:34:59 -0400 (EDT)
+Date: Wed, 1 Aug 2012 10:34:59 -0400
+From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+Message-ID: <20120801143459.GH7227@phenom.dumpdata.com>
+References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
+       <1343316846-25860-11-git-send-email-stefano.stabellini@eu.citrix.com>
+MIME-Version: 1.0
+Content-Disposition: inline
+In-Reply-To: <1343316846-25860-11-git-send-email-stefano.stabellini@eu.citrix.com>
+User-Agent: Mutt/1.5.21 (2010-09-15)
+X-Source-IP: ucsinet22.oracle.com [156.151.31.94]
+Cc: xen-devel@lists.xensource.com, linaro-dev@lists.linaro.org,
+       Ian.Campbell@citrix.com, arnd@arndb.de, catalin.marinas@arm.com,
+       tim@xen.org, linux-kernel@vger.kernel.org,
+       linux-arm-kernel@lists.infradead.org
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 11/24] xen/arm: introduce CONFIG_XEN on ARM
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Thu, Jul 26, 2012 at 04:33:53PM +0100, Stefano Stabellini wrote:
+> Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+> ---
+>  arch/arm/Kconfig |   10 ++++++++++
+>  1 files changed, 10 insertions(+), 0 deletions(-)
+> 
+> diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
+> index a91009c..9c54cb4 100644
+> --- a/arch/arm/Kconfig
+> +++ b/arch/arm/Kconfig
+> @@ -2228,6 +2228,16 @@ config NEON
+>        Say Y to include support code for NEON, the ARMv7 Advanced SIMD
+>        Extension.
+>  
+> +config XEN_DOM0
+> +    def_bool y
+
+What is the benefit of this ? I was hoping at some point to rip out all of those
+XEN_DOM0 and just have, mostly,
+       CONFIG_XEN_BACKEND_SUPPORT
+               (which would compile whatever is needed for HVM or PV guests to run
+               blkback/netback/grant/grantalloc/etc)
+       CONFIG_XEN_FRONTEND_SUPPORT
+               (the vice-versa)
+
+       CONFIG_XEN_PCI
+               which would have the PCI support, the ACPI routing (which is
+               predomaintaly most of the dom0 support), VGA text support, and
+               whatever else is in there.
+
+In that fashion you could compile a kernel with CONFIG_XEN_BACKEND_SUPPORT
+without any CONFIG_XEN_PCI and drop it in as an HVM device driver domain.
+Thought maybe that wouldn't really work as if you do PCI passthrough to such
+domain, you are going to need the PCI support and ACPI routing. The VGA text
+maybe not...
+
+OK, never mind - we should brainstorm it and figure out how to make this
+nicely work. In the meantime this is OK.
+
+> +
+> +config XEN
+> +    bool "Xen guest support on ARM"
+> +    depends on ARM && OF
+> +    select XEN_DOM0
+> +    help
+> +      Say Y if you want to run Linux in a Virtual Machine on Xen on ARM.
+> +
+>  endmenu
+>  
+>  menu "Userspace binary formats"
+> -- 
+> 1.7.2.5
+> 
+> 
+> _______________________________________________
+> Xen-devel mailing list
+> Xen-devel@lists.xen.org
+> http://lists.xen.org/xen-devel
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<20120801143551.GI7227@phenom.dumpdata.com> b/config/examples/test/corpus/<20120801143551.GI7227@phenom.dumpdata.com>
new file mode 100644 (file)
index 0000000..f94a616
--- /dev/null
@@ -0,0 +1,166 @@
+From xen-devel-bounces@lists.xen.org Wed Aug 01 15:48:57 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 01 Aug 2012 15:48:57 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SwaEJ-0006jv-F5
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 01 Aug 2012 15:48:57 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SwaAj-000296-TF; Wed, 01 Aug 2012 14:45:13 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <konrad.wilk@oracle.com>) id 1SwaAi-00028y-Gz
+       for xen-devel@lists.xensource.com; Wed, 01 Aug 2012 14:45:12 +0000
+Received: from [85.158.143.99:12704] by server-3.bemta-4.messagelabs.com id
+       03/D1-01511-7F049105; Wed, 01 Aug 2012 14:45:11 +0000
+X-Env-Sender: konrad.wilk@oracle.com
+X-Msg-Ref: server-11.tower-216.messagelabs.com!1343832308!22256103!1
+X-Originating-IP: [141.146.126.227]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogMTQxLjE0Ni4xMjYuMjI3ID0+IDY3MjQwNA==\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.2; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 10473 invoked from network); 1 Aug 2012 14:45:10 -0000
+Received: from acsinet15.oracle.com (HELO acsinet15.oracle.com)
+       (141.146.126.227)
+       by server-11.tower-216.messagelabs.com with DHE-RSA-AES256-SHA
+       encrypted SMTP; 1 Aug 2012 14:45:10 -0000
+Received: from acsinet21.oracle.com (acsinet21.oracle.com [141.146.126.237])
+       by acsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
+       ESMTP id q71Eirbs032142
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
+       Wed, 1 Aug 2012 14:44:54 GMT
+Received: from acsmt357.oracle.com (acsmt357.oracle.com [141.146.40.157])
+       by acsinet21.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
+       q71EiqOg023204
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
+       Wed, 1 Aug 2012 14:44:52 GMT
+Received: from abhmt117.oracle.com (abhmt117.oracle.com [141.146.116.69])
+       by acsmt357.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
+       q71EiqnZ008497; Wed, 1 Aug 2012 09:44:52 -0500
+Received: from phenom.dumpdata.com (/209.6.85.33)
+       by default (Oracle Beehive Gateway v4.0)
+       with ESMTP ; Wed, 01 Aug 2012 07:44:52 -0700
+Received: by phenom.dumpdata.com (Postfix, from userid 1000)
+       id B021B402B2; Wed,  1 Aug 2012 10:35:51 -0400 (EDT)
+Date: Wed, 1 Aug 2012 10:35:51 -0400
+From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+To: Ian Campbell <Ian.Campbell@citrix.com>
+Message-ID: <20120801143551.GI7227@phenom.dumpdata.com>
+References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
+       <1343316846-25860-4-git-send-email-stefano.stabellini@eu.citrix.com>
+       <20120726163759.GE9222@phenom.dumpdata.com>
+       <1343381305.6812.116.camel@zakaz.uk.xensource.com>
+MIME-Version: 1.0
+Content-Disposition: inline
+In-Reply-To: <1343381305.6812.116.camel@zakaz.uk.xensource.com>
+User-Agent: Mutt/1.5.21 (2010-09-15)
+X-Source-IP: acsinet21.oracle.com [141.146.126.237]
+Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
+       "linaro-dev@lists.linaro.org" <linaro-dev@lists.linaro.org>,
+       "arnd@arndb.de" <arnd@arndb.de>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>,
+       "catalin.marinas@arm.com" <catalin.marinas@arm.com>,
+       "Tim \(Xen.org\)" <tim@xen.org>,
+       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
+       "linux-arm-kernel@lists.infradead.org"
+       <linux-arm-kernel@lists.infradead.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 04/24] xen/arm: sync_bitops
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Fri, Jul 27, 2012 at 10:28:25AM +0100, Ian Campbell wrote:
+> On Thu, 2012-07-26 at 17:37 +0100, Konrad Rzeszutek Wilk wrote:
+> > On Thu, Jul 26, 2012 at 04:33:46PM +0100, Stefano Stabellini wrote:
+> > > sync_bitops functions are equivalent to the SMP implementation of the
+> > > original functions, independently from CONFIG_SMP being defined.
+> > 
+> > So why can't the code be changed to use that? Is it that
+> > the _set_bit, _clear_bit, etc are not available with !CONFIG_SMP?
+> 
+> _set_bit etc are not SMP safe if !CONFIG_SMP. But under Xen you might be
+> communicating with a completely external entity who might be on another
+> CPU (e.g. two uniprocessor guests communicating via event channels and
+> grant tables). So we need a variant of the bit ops which are SMP safe
+> even on a UP kernel.
+> 
+> The users are common code and the sync_foo vs foo distinction matters on
+> some platforms (e.g. x86 where a UP kernel would omit the LOCK prefix
+> for the normal ones).
+
+OK, that makes sense. Stefano can you include that comment in the git
+commit description and in the sync_bitops.h file please?
+> 
+> > 
+> > > 
+> > > Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+> > > ---
+> > >  arch/arm/include/asm/sync_bitops.h |   17 +++++++++++++++++
+> > >  1 files changed, 17 insertions(+), 0 deletions(-)
+> > >  create mode 100644 arch/arm/include/asm/sync_bitops.h
+> > > 
+> > > diff --git a/arch/arm/include/asm/sync_bitops.h b/arch/arm/include/asm/sync_bitops.h
+> > > new file mode 100644
+> > > index 0000000..d975092903
+> > > --- /dev/null
+> > > +++ b/arch/arm/include/asm/sync_bitops.h
+> > > @@ -0,0 +1,17 @@
+> > > +#ifndef __ASM_SYNC_BITOPS_H__
+> > > +#define __ASM_SYNC_BITOPS_H__
+> > > +
+> > > +#include <asm/bitops.h>
+> > > +#include <asm/system.h>
+> > > +
+> > > +#define sync_set_bit(nr, p)             _set_bit(nr, p)
+> > > +#define sync_clear_bit(nr, p)           _clear_bit(nr, p)
+> > > +#define sync_change_bit(nr, p)          _change_bit(nr, p)
+> > > +#define sync_test_and_set_bit(nr, p)    _test_and_set_bit(nr, p)
+> > > +#define sync_test_and_clear_bit(nr, p)  _test_and_clear_bit(nr, p)
+> > > +#define sync_test_and_change_bit(nr, p) _test_and_change_bit(nr, p)
+> > > +#define sync_test_bit(nr, addr)         test_bit(nr, addr)
+> > > +#define sync_cmpxchg                    cmpxchg
+> > > +
+> > > +
+> > > +#endif
+> > > -- 
+> > > 1.7.2.5
+> > > 
+> > > 
+> > > _______________________________________________
+> > > Xen-devel mailing list
+> > > Xen-devel@lists.xen.org
+> > > http://lists.xen.org/xen-devel
+> 
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<20120801143822.GJ7227@phenom.dumpdata.com> b/config/examples/test/corpus/<20120801143822.GJ7227@phenom.dumpdata.com>
new file mode 100644 (file)
index 0000000..9e6af88
--- /dev/null
@@ -0,0 +1,212 @@
+From xen-devel-bounces@lists.xen.org Wed Aug 01 15:51:55 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 01 Aug 2012 15:51:55 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SwaH7-0006lD-Jr
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 01 Aug 2012 15:51:55 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SwaD6-0002If-F4; Wed, 01 Aug 2012 14:47:40 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <konrad.wilk@oracle.com>) id 1SwaD4-0002IW-CE
+       for xen-devel@lists.xensource.com; Wed, 01 Aug 2012 14:47:38 +0000
+Received: from [85.158.139.83:26320] by server-3.bemta-5.messagelabs.com id
+       12/AE-03367-98149105; Wed, 01 Aug 2012 14:47:37 +0000
+X-Env-Sender: konrad.wilk@oracle.com
+X-Msg-Ref: server-16.tower-182.messagelabs.com!1343832455!22423431!1
+X-Originating-IP: [141.146.126.227]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogMTQxLjE0Ni4xMjYuMjI3ID0+IDY3MjQwNA==\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.2; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 23839 invoked from network); 1 Aug 2012 14:47:37 -0000
+Received: from acsinet15.oracle.com (HELO acsinet15.oracle.com)
+       (141.146.126.227)
+       by server-16.tower-182.messagelabs.com with DHE-RSA-AES256-SHA
+       encrypted SMTP; 1 Aug 2012 14:47:37 -0000
+Received: from acsinet21.oracle.com (acsinet21.oracle.com [141.146.126.237])
+       by acsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
+       ESMTP id q71ElOOL002536
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
+       Wed, 1 Aug 2012 14:47:24 GMT
+Received: from acsmt357.oracle.com (acsmt357.oracle.com [141.146.40.157])
+       by acsinet21.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
+       q71ElNAc027823
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
+       Wed, 1 Aug 2012 14:47:23 GMT
+Received: from abhmt103.oracle.com (abhmt103.oracle.com [141.146.116.55])
+       by acsmt357.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
+       q71ElNaf010419; Wed, 1 Aug 2012 09:47:23 -0500
+Received: from phenom.dumpdata.com (/209.6.85.33)
+       by default (Oracle Beehive Gateway v4.0)
+       with ESMTP ; Wed, 01 Aug 2012 07:47:23 -0700
+Received: by phenom.dumpdata.com (Postfix, from userid 1000)
+       id 78C1C402B2; Wed,  1 Aug 2012 10:38:22 -0400 (EDT)
+Date: Wed, 1 Aug 2012 10:38:22 -0400
+From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+Message-ID: <20120801143822.GJ7227@phenom.dumpdata.com>
+References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
+       <1343316846-25860-12-git-send-email-stefano.stabellini@eu.citrix.com>
+MIME-Version: 1.0
+Content-Disposition: inline
+In-Reply-To: <1343316846-25860-12-git-send-email-stefano.stabellini@eu.citrix.com>
+User-Agent: Mutt/1.5.21 (2010-09-15)
+X-Source-IP: acsinet21.oracle.com [141.146.126.237]
+Cc: xen-devel@lists.xensource.com, linaro-dev@lists.linaro.org,
+       Ian.Campbell@citrix.com, arnd@arndb.de, catalin.marinas@arm.com,
+       tim@xen.org, linux-kernel@vger.kernel.org,
+       linux-arm-kernel@lists.infradead.org
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 12/24] xen/arm: Introduce xen_guest_init
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Thu, Jul 26, 2012 at 04:33:54PM +0100, Stefano Stabellini wrote:
+> We used to rely on a core_initcall to initialize Xen on ARM, however
+> core_initcalls are actually called after early consoles are initialized.
+> That means that hvc_xen.c is going to be initialized before Xen.
+> 
+> Given the lack of a better alternative, just call a new Xen
+> initialization function (xen_guest_init) from xen_cons_init.
+> 
+> xen_guest_init has to be arch independent, so write both an ARM and an
+> x86 implementation. The x86 implementation is currently empty because we
+> can be sure that xen_hvm_guest_init is called early enough.
+
+Should the arm version then not be anymore on the core_initcall then?
+
+> 
+> Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+> ---
+>  arch/arm/xen/enlighten.c  |    7 ++++++-
+>  arch/x86/xen/enlighten.c  |    8 ++++++++
+>  drivers/tty/hvc/hvc_xen.c |    7 ++++++-
+>  include/xen/xen.h         |    2 ++
+>  4 files changed, 22 insertions(+), 2 deletions(-)
+> 
+> diff --git a/arch/arm/xen/enlighten.c b/arch/arm/xen/enlighten.c
+> index 8c923af..dc68074 100644
+> --- a/arch/arm/xen/enlighten.c
+> +++ b/arch/arm/xen/enlighten.c
+> @@ -44,7 +44,7 @@ EXPORT_SYMBOL_GPL(xen_remap_domain_mfn_range);
+>   * - one interrupt for Xen event notifications;
+>   * - one memory region to map the grant_table.
+>   */
+> -static int __init xen_guest_init(void)
+> +int __init xen_guest_init(void)
+>  {
+>      int cpu;
+>      struct xen_add_to_physmap xatp;
+> @@ -58,6 +58,10 @@ static int __init xen_guest_init(void)
+>      }
+>      xen_domain_type = XEN_HVM_DOMAIN;
+>  
+> +    /* already setup */
+> +    if (shared_info_page != 0 && HYPERVISOR_shared_info == shared_info_page)
+> +            return 0;
+> +
+>      if (!shared_info_page)
+>              shared_info_page = (struct shared_info *)
+>                      get_zeroed_page(GFP_KERNEL);
+> @@ -88,4 +92,5 @@ static int __init xen_guest_init(void)
+>      }
+>      return 0;
+>  }
+> +EXPORT_SYMBOL_GPL(xen_guest_init);
+
+Why the export symbols?
+
+>  core_initcall(xen_guest_init);
+> diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c
+> index ff962d4..6131d43 100644
+> --- a/arch/x86/xen/enlighten.c
+> +++ b/arch/x86/xen/enlighten.c
+> @@ -1567,4 +1567,12 @@ const struct hypervisor_x86 x86_hyper_xen_hvm __refconst = {
+>      .init_platform          = xen_hvm_guest_init,
+>  };
+>  EXPORT_SYMBOL(x86_hyper_xen_hvm);
+> +
+> +int __init xen_guest_init(void)
+> +{
+> +    /* do nothing: rely on x86_hyper_xen_hvm for the initialization */
+> +    return 0;
+> +    
+> +}
+> +EXPORT_SYMBOL_GPL(xen_guest_init);
+>  #endif
+> diff --git a/drivers/tty/hvc/hvc_xen.c b/drivers/tty/hvc/hvc_xen.c
+> index dc07f56..3c04fb8 100644
+> --- a/drivers/tty/hvc/hvc_xen.c
+> +++ b/drivers/tty/hvc/hvc_xen.c
+> @@ -577,6 +577,12 @@ static void __exit xen_hvc_fini(void)
+>  static int xen_cons_init(void)
+>  {
+>      const struct hv_ops *ops;
+> +    int r;
+> +
+> +    /* retrieve xen infos  */
+> +    r = xen_guest_init();
+> +    if (r < 0)
+> +            return r;
+>  
+>      if (!xen_domain())
+>              return 0;
+> @@ -584,7 +590,6 @@ static int xen_cons_init(void)
+>      if (xen_initial_domain())
+>              ops = &dom0_hvc_ops;
+>      else {
+> -            int r;
+>              ops = &domU_hvc_ops;
+>  
+>              if (xen_hvm_domain())
+> diff --git a/include/xen/xen.h b/include/xen/xen.h
+> index 2c0d3a5..792a4d2 100644
+> --- a/include/xen/xen.h
+> +++ b/include/xen/xen.h
+> @@ -9,8 +9,10 @@ enum xen_domain_type {
+>  
+>  #ifdef CONFIG_XEN
+>  extern enum xen_domain_type xen_domain_type;
+> +int xen_guest_init(void);
+>  #else
+>  #define xen_domain_type             XEN_NATIVE
+> +static inline int xen_guest_init(void) { return 0; }
+>  #endif
+>  
+>  #define xen_domain()                (xen_domain_type != XEN_NATIVE)
+> -- 
+> 1.7.2.5
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<20120801143946.GK7227@phenom.dumpdata.com> b/config/examples/test/corpus/<20120801143946.GK7227@phenom.dumpdata.com>
new file mode 100644 (file)
index 0000000..e7340f0
--- /dev/null
@@ -0,0 +1,157 @@
+From xen-devel-bounces@lists.xen.org Wed Aug 01 15:52:56 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 01 Aug 2012 15:52:56 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SwaI7-0006lb-2g
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 01 Aug 2012 15:52:56 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SwaEW-0002QT-V7; Wed, 01 Aug 2012 14:49:08 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <konrad.wilk@oracle.com>) id 1SwaEV-0002QH-F3
+       for xen-devel@lists.xensource.com; Wed, 01 Aug 2012 14:49:07 +0000
+Received: from [85.158.139.83:64765] by server-12.bemta-5.messagelabs.com id
+       5C/5E-25233-2E149105; Wed, 01 Aug 2012 14:49:06 +0000
+X-Env-Sender: konrad.wilk@oracle.com
+X-Msg-Ref: server-3.tower-182.messagelabs.com!1343832544!27833077!1
+X-Originating-IP: [141.146.126.227]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogMTQxLjE0Ni4xMjYuMjI3ID0+IDY3MjQwNA==\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.2; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 31883 invoked from network); 1 Aug 2012 14:49:05 -0000
+Received: from acsinet15.oracle.com (HELO acsinet15.oracle.com)
+       (141.146.126.227)
+       by server-3.tower-182.messagelabs.com with DHE-RSA-AES256-SHA encrypted
+       SMTP; 1 Aug 2012 14:49:05 -0000
+Received: from ucsinet22.oracle.com (ucsinet22.oracle.com [156.151.31.94])
+       by acsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
+       ESMTP id q71Emop5004154
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
+       Wed, 1 Aug 2012 14:48:51 GMT
+Received: from acsmt356.oracle.com (acsmt356.oracle.com [141.146.40.156])
+       by ucsinet22.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
+       q71EmlPE003027
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
+       Wed, 1 Aug 2012 14:48:48 GMT
+Received: from abhmt104.oracle.com (abhmt104.oracle.com [141.146.116.56])
+       by acsmt356.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
+       q71EmltO021922; Wed, 1 Aug 2012 09:48:47 -0500
+Received: from phenom.dumpdata.com (/209.6.85.33)
+       by default (Oracle Beehive Gateway v4.0)
+       with ESMTP ; Wed, 01 Aug 2012 07:48:47 -0700
+Received: by phenom.dumpdata.com (Postfix, from userid 1000)
+       id 8E3A8402B2; Wed,  1 Aug 2012 10:39:46 -0400 (EDT)
+Date: Wed, 1 Aug 2012 10:39:46 -0400
+From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+To: Ian Campbell <Ian.Campbell@citrix.com>
+Message-ID: <20120801143946.GK7227@phenom.dumpdata.com>
+References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
+       <1343316846-25860-13-git-send-email-stefano.stabellini@eu.citrix.com>
+       <1343382276.6812.126.camel@zakaz.uk.xensource.com>
+       <alpine.DEB.2.02.1207271514140.26163@kaball.uk.xensource.com>
+       <1343399630.25096.4.camel@zakaz.uk.xensource.com>
+MIME-Version: 1.0
+Content-Disposition: inline
+In-Reply-To: <1343399630.25096.4.camel@zakaz.uk.xensource.com>
+User-Agent: Mutt/1.5.21 (2010-09-15)
+X-Source-IP: ucsinet22.oracle.com [156.151.31.94]
+Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
+       "linaro-dev@lists.linaro.org" <linaro-dev@lists.linaro.org>,
+       "arnd@arndb.de" <arnd@arndb.de>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>,
+       "catalin.marinas@arm.com" <catalin.marinas@arm.com>,
+       "Tim \(Xen.org\)" <tim@xen.org>,
+       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
+       "linux-arm-kernel@lists.infradead.org"
+       <linux-arm-kernel@lists.infradead.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 13/24] xen/arm: get privilege status
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Fri, Jul 27, 2012 at 03:33:50PM +0100, Ian Campbell wrote:
+> On Fri, 2012-07-27 at 15:25 +0100, Stefano Stabellini wrote:
+> > On Fri, 27 Jul 2012, Ian Campbell wrote:
+> > > On Thu, 2012-07-26 at 16:33 +0100, Stefano Stabellini wrote:
+> > > > Use Xen features to figure out if we are privileged.
+> > > > 
+> > > > XENFEAT_dom0 was introduced by 23735 in xen-unstable.hg.
+> > > > 
+> > > > Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+> > > > ---
+> > > >  arch/arm/xen/enlighten.c         |    7 +++++++
+> > > >  include/xen/interface/features.h |    3 +++
+> > > >  2 files changed, 10 insertions(+), 0 deletions(-)
+> > > > 
+> > > > diff --git a/arch/arm/xen/enlighten.c b/arch/arm/xen/enlighten.c
+> > > > index dc68074..2e013cf 100644
+> > > > --- a/arch/arm/xen/enlighten.c
+> > > > +++ b/arch/arm/xen/enlighten.c
+> > > > @@ -2,6 +2,7 @@
+> > > >  #include <xen/interface/xen.h>
+> > > >  #include <xen/interface/memory.h>
+> > > >  #include <xen/platform_pci.h>
+> > > > +#include <xen/features.h>
+> > > >  #include <asm/xen/hypervisor.h>
+> > > >  #include <asm/xen/hypercall.h>
+> > > >  #include <linux/module.h>
+> > > > @@ -58,6 +59,12 @@ int __init xen_guest_init(void)
+> > > >        }
+> > > >        xen_domain_type = XEN_HVM_DOMAIN;
+> > > >  
+> > > > +      xen_setup_features();
+> > > > +      if (xen_feature(XENFEAT_dom0))
+> > > > +              xen_start_info->flags |= SIF_INITDOMAIN|SIF_PRIVILEGED;
+> > > > +      else
+> > > > +              xen_start_info->flags &= ~(SIF_INITDOMAIN|SIF_PRIVILEGED);
+> > > 
+> > > What happens here on platforms prior to hypervisor changeset 23735?
+> > 
+> > It wouldn't work.
+> > Considering that we are certainly not going to backport ARM support to
+> > Xen 4.1, and that both ARM and XENFEAT_dom0 will be present in Xen 4.2,
+> > do we really need to support the Xen unstable changesets between ARM was
+> > introduced and XENFEAT_dom0 appeared?
+
+So should it just panic and say "AAAAAAH"?
+
+> 
+> Sorry, I missed the "arm" in the path.
+> 
+> Ian.
+> 
+> 
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<20120801144059.GL7227@phenom.dumpdata.com> b/config/examples/test/corpus/<20120801144059.GL7227@phenom.dumpdata.com>
new file mode 100644 (file)
index 0000000..c91e8a1
--- /dev/null
@@ -0,0 +1,174 @@
+From xen-devel-bounces@lists.xen.org Wed Aug 01 15:54:27 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 01 Aug 2012 15:54:27 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SwaJc-0006mB-8m
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 01 Aug 2012 15:54:27 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SwaFj-0002XY-UR; Wed, 01 Aug 2012 14:50:23 +0000
+Received: from mail27.messagelabs.com ([193.109.254.147])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <konrad.wilk@oracle.com>) id 1SwaFi-0002Wl-2P
+       for xen-devel@lists.xensource.com; Wed, 01 Aug 2012 14:50:22 +0000
+X-Env-Sender: konrad.wilk@oracle.com
+X-Msg-Ref: server-5.tower-27.messagelabs.com!1343832614!9328866!1
+X-Originating-IP: [148.87.113.117]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogMTQ4Ljg3LjExMy4xMTcgPT4gNjY5Nzc4\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.2; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 28274 invoked from network); 1 Aug 2012 14:50:15 -0000
+Received: from rcsinet15.oracle.com (HELO rcsinet15.oracle.com)
+       (148.87.113.117)
+       by server-5.tower-27.messagelabs.com with DHE-RSA-AES256-SHA encrypted
+       SMTP; 1 Aug 2012 14:50:15 -0000
+Received: from acsinet22.oracle.com (acsinet22.oracle.com [141.146.126.238])
+       by rcsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
+       ESMTP id q71Eo1oN004204
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
+       Wed, 1 Aug 2012 14:50:02 GMT
+Received: from acsmt357.oracle.com (acsmt357.oracle.com [141.146.40.157])
+       by acsinet22.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
+       q71Eo07V029399
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
+       Wed, 1 Aug 2012 14:50:00 GMT
+Received: from abhmt116.oracle.com (abhmt116.oracle.com [141.146.116.68])
+       by acsmt357.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
+       q71Eo0be012745; Wed, 1 Aug 2012 09:50:00 -0500
+Received: from phenom.dumpdata.com (/209.6.85.33)
+       by default (Oracle Beehive Gateway v4.0)
+       with ESMTP ; Wed, 01 Aug 2012 07:50:00 -0700
+Received: by phenom.dumpdata.com (Postfix, from userid 1000)
+       id 9A9F5402B2; Wed,  1 Aug 2012 10:40:59 -0400 (EDT)
+Date: Wed, 1 Aug 2012 10:40:59 -0400
+From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+Message-ID: <20120801144059.GL7227@phenom.dumpdata.com>
+References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
+       <1343316846-25860-14-git-send-email-stefano.stabellini@eu.citrix.com>
+MIME-Version: 1.0
+Content-Disposition: inline
+In-Reply-To: <1343316846-25860-14-git-send-email-stefano.stabellini@eu.citrix.com>
+User-Agent: Mutt/1.5.21 (2010-09-15)
+X-Source-IP: acsinet22.oracle.com [141.146.126.238]
+Cc: xen-devel@lists.xensource.com, linaro-dev@lists.linaro.org,
+       Ian.Campbell@citrix.com, arnd@arndb.de, catalin.marinas@arm.com,
+       tim@xen.org, linux-kernel@vger.kernel.org,
+       linux-arm-kernel@lists.infradead.org
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 14/24] xen/arm: initialize grant_table on ARM
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Thu, Jul 26, 2012 at 04:33:56PM +0100, Stefano Stabellini wrote:
+> Initialize the grant table mapping at the address specified at index 0
+> in the DT under the /xen node.
+
+Is it always index 0? If so, should it have a #define for the
+other index values?
+
+> After the grant table is initialized, call xenbus_probe (if not dom0).
+> 
+> Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+> ---
+>  arch/arm/xen/enlighten.c  |   13 +++++++++++++
+>  drivers/xen/grant-table.c |    2 +-
+>  2 files changed, 14 insertions(+), 1 deletions(-)
+> 
+> diff --git a/arch/arm/xen/enlighten.c b/arch/arm/xen/enlighten.c
+> index 2e013cf..854af1e 100644
+> --- a/arch/arm/xen/enlighten.c
+> +++ b/arch/arm/xen/enlighten.c
+> @@ -1,8 +1,12 @@
+>  #include <xen/xen.h>
+>  #include <xen/interface/xen.h>
+>  #include <xen/interface/memory.h>
+> +#include <xen/interface/hvm/params.h>
+>  #include <xen/platform_pci.h>
+>  #include <xen/features.h>
+> +#include <xen/grant_table.h>
+> +#include <xen/hvm.h>
+> +#include <xen/xenbus.h>
+>  #include <asm/xen/hypervisor.h>
+>  #include <asm/xen/hypercall.h>
+>  #include <linux/module.h>
+> @@ -51,12 +55,16 @@ int __init xen_guest_init(void)
+>      struct xen_add_to_physmap xatp;
+>      static struct shared_info *shared_info_page = 0;
+>      struct device_node *node;
+> +    struct resource res;
+>  
+>      node = of_find_compatible_node(NULL, NULL, "arm,xen");
+>      if (!node) {
+>              pr_info("No Xen support\n");
+>              return 0;
+>      }
+> +    if (of_address_to_resource(node, 0, &res))
+> +            return -EINVAL;
+> +    xen_hvm_resume_frames = res.start >> PAGE_SHIFT;
+>      xen_domain_type = XEN_HVM_DOMAIN;
+>  
+>      xen_setup_features();
+> @@ -97,6 +105,11 @@ int __init xen_guest_init(void)
+>              per_cpu(xen_vcpu, cpu) =
+>                      &HYPERVISOR_shared_info->vcpu_info[cpu];
+>      }
+> +
+> +    gnttab_init();
+> +    if (!xen_initial_domain())
+> +            xenbus_probe(NULL);
+> +
+>      return 0;
+>  }
+>  EXPORT_SYMBOL_GPL(xen_guest_init);
+> diff --git a/drivers/xen/grant-table.c b/drivers/xen/grant-table.c
+> index 1d0d95e..fd2137a 100644
+> --- a/drivers/xen/grant-table.c
+> +++ b/drivers/xen/grant-table.c
+> @@ -62,7 +62,7 @@
+>  
+>  static grant_ref_t **gnttab_list;
+>  static unsigned int nr_grant_frames;
+> -static unsigned int boot_max_nr_grant_frames;
+> +static unsigned int boot_max_nr_grant_frames = 1;
+
+Is this going to impact x86 version?
+
+>  static int gnttab_free_count;
+>  static grant_ref_t gnttab_free_head;
+>  static DEFINE_SPINLOCK(gnttab_list_lock);
+> -- 
+> 1.7.2.5
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<20120801144418.GM7227@phenom.dumpdata.com> b/config/examples/test/corpus/<20120801144418.GM7227@phenom.dumpdata.com>
new file mode 100644 (file)
index 0000000..5332d97
--- /dev/null
@@ -0,0 +1,329 @@
+From xen-devel-bounces@lists.xen.org Wed Aug 01 15:57:42 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 01 Aug 2012 15:57:42 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SwaMi-0006nQ-Dr
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 01 Aug 2012 15:57:42 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SwaIz-0002u2-Mk; Wed, 01 Aug 2012 14:53:45 +0000
+Received: from mail27.messagelabs.com ([193.109.254.147])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <konrad.wilk@oracle.com>) id 1SwaIx-0002tJ-KP
+       for xen-devel@lists.xensource.com; Wed, 01 Aug 2012 14:53:43 +0000
+X-Env-Sender: konrad.wilk@oracle.com
+X-Msg-Ref: server-8.tower-27.messagelabs.com!1343832816!10283087!1
+X-Originating-IP: [148.87.113.117]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogMTQ4Ljg3LjExMy4xMTcgPT4gNjY5Nzc4\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.2; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 27456 invoked from network); 1 Aug 2012 14:53:37 -0000
+Received: from rcsinet15.oracle.com (HELO rcsinet15.oracle.com)
+       (148.87.113.117)
+       by server-8.tower-27.messagelabs.com with DHE-RSA-AES256-SHA encrypted
+       SMTP; 1 Aug 2012 14:53:37 -0000
+Received: from ucsinet22.oracle.com (ucsinet22.oracle.com [156.151.31.94])
+       by rcsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
+       ESMTP id q71ErKws008050
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
+       Wed, 1 Aug 2012 14:53:20 GMT
+Received: from acsmt356.oracle.com (acsmt356.oracle.com [141.146.40.156])
+       by ucsinet22.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
+       q71ErJAu010189
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
+       Wed, 1 Aug 2012 14:53:19 GMT
+Received: from abhmt111.oracle.com (abhmt111.oracle.com [141.146.116.63])
+       by acsmt356.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
+       q71ErIeZ025850; Wed, 1 Aug 2012 09:53:18 -0500
+Received: from phenom.dumpdata.com (/209.6.85.33)
+       by default (Oracle Beehive Gateway v4.0)
+       with ESMTP ; Wed, 01 Aug 2012 07:53:18 -0700
+Received: by phenom.dumpdata.com (Postfix, from userid 1000)
+       id 20DE7402B2; Wed,  1 Aug 2012 10:44:18 -0400 (EDT)
+Date: Wed, 1 Aug 2012 10:44:18 -0400
+From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+Message-ID: <20120801144418.GM7227@phenom.dumpdata.com>
+References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
+       <1343316846-25860-15-git-send-email-stefano.stabellini@eu.citrix.com>
+MIME-Version: 1.0
+Content-Disposition: inline
+In-Reply-To: <1343316846-25860-15-git-send-email-stefano.stabellini@eu.citrix.com>
+User-Agent: Mutt/1.5.21 (2010-09-15)
+X-Source-IP: ucsinet22.oracle.com [156.151.31.94]
+Cc: xen-devel@lists.xensource.com, linaro-dev@lists.linaro.org,
+       Ian.Campbell@citrix.com, arnd@arndb.de, catalin.marinas@arm.com,
+       tim@xen.org, linux-kernel@vger.kernel.org,
+       linux-arm-kernel@lists.infradead.org
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 15/24] xen/arm: receive Xen events on ARM
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Thu, Jul 26, 2012 at 04:33:57PM +0100, Stefano Stabellini wrote:
+> Compile events.c on ARM.
+> Parse, map and enable the IRQ to get event notifications from the device
+> tree (node "/xen").
+> 
+> On ARM Linux irqs are not enabled by default:
+> 
+> - call enable_percpu_irq for xen_events_irq (drivers are supposed
+> to call enable_irq after request_irq);
+> 
+> - reset the IRQ_NOAUTOEN and IRQ_NOREQUEST flags that are enabled by
+> default on ARM. If IRQ_NOAUTOEN is set, __setup_irq doesn't call
+> irq_startup, that is responsible for calling irq_unmask at startup time.
+> As a result event channels remain masked.
+> 
+> Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+> ---
+>  arch/arm/xen/enlighten.c |   33 +++++++++++++++++++++++++++++++++
+>  arch/x86/xen/enlighten.c |    1 +
+>  arch/x86/xen/irq.c       |    1 +
+>  arch/x86/xen/xen-ops.h   |    1 -
+>  drivers/xen/events.c     |   18 +++++++++++++++---
+>  include/xen/events.h     |    2 ++
+>  6 files changed, 52 insertions(+), 4 deletions(-)
+> 
+> diff --git a/arch/arm/xen/enlighten.c b/arch/arm/xen/enlighten.c
+> index 854af1e..60d6d36 100644
+> --- a/arch/arm/xen/enlighten.c
+> +++ b/arch/arm/xen/enlighten.c
+> @@ -7,8 +7,11 @@
+>  #include <xen/grant_table.h>
+>  #include <xen/hvm.h>
+>  #include <xen/xenbus.h>
+> +#include <xen/events.h>
+>  #include <asm/xen/hypervisor.h>
+>  #include <asm/xen/hypercall.h>
+> +#include <linux/interrupt.h>
+> +#include <linux/irqreturn.h>
+>  #include <linux/module.h>
+>  #include <linux/of.h>
+>  #include <linux/of_irq.h>
+> @@ -33,6 +36,8 @@ EXPORT_SYMBOL_GPL(xen_have_vector_callback);
+>  int xen_platform_pci_unplug = XEN_UNPLUG_ALL;
+>  EXPORT_SYMBOL_GPL(xen_platform_pci_unplug);
+>  
+> +static __read_mostly int xen_events_irq = -1;
+> +
+>  int xen_remap_domain_mfn_range(struct vm_area_struct *vma,
+>                             unsigned long addr,
+>                             unsigned long mfn, int nr,
+> @@ -65,6 +70,9 @@ int __init xen_guest_init(void)
+>      if (of_address_to_resource(node, 0, &res))
+>              return -EINVAL;
+>      xen_hvm_resume_frames = res.start >> PAGE_SHIFT;
+> +    xen_events_irq = irq_of_parse_and_map(node, 0);
+> +    pr_info("Xen support found, events_irq=%d gnttab_frame_pfn=%lx\n",
+> +                    xen_events_irq, xen_hvm_resume_frames);
+>      xen_domain_type = XEN_HVM_DOMAIN;
+>  
+>      xen_setup_features();
+> @@ -114,3 +122,28 @@ int __init xen_guest_init(void)
+>  }
+>  EXPORT_SYMBOL_GPL(xen_guest_init);
+>  core_initcall(xen_guest_init);
+> +
+> +static irqreturn_t xen_arm_callback(int irq, void *arg)
+> +{
+> +    xen_hvm_evtchn_do_upcall();
+> +    return 0;
+
+Um, IRQ_HANDLED?
+
+> +}
+> +
+> +static int __init xen_init_events(void)
+> +{
+> +    if (!xen_domain() || xen_events_irq < 0)
+> +            return -ENODEV;
+> +
+> +    xen_init_IRQ();
+> +
+> +    if (request_percpu_irq(xen_events_irq, xen_arm_callback,
+> +                    "events", xen_vcpu)) {
+> +            pr_err("Error requesting IRQ %d\n", xen_events_irq);
+> +            return -EINVAL;
+> +    }
+> +
+> +    enable_percpu_irq(xen_events_irq, 0);
+> +
+> +    return 0;
+> +}
+> +postcore_initcall(xen_init_events);
+> diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c
+> index 6131d43..5a30502 100644
+> --- a/arch/x86/xen/enlighten.c
+> +++ b/arch/x86/xen/enlighten.c
+> @@ -33,6 +33,7 @@
+>  #include <linux/memblock.h>
+>  
+>  #include <xen/xen.h>
+> +#include <xen/events.h>
+>  #include <xen/interface/xen.h>
+>  #include <xen/interface/version.h>
+>  #include <xen/interface/physdev.h>
+> diff --git a/arch/x86/xen/irq.c b/arch/x86/xen/irq.c
+> index 1573376..01a4dc0 100644
+> --- a/arch/x86/xen/irq.c
+> +++ b/arch/x86/xen/irq.c
+> @@ -5,6 +5,7 @@
+>  #include <xen/interface/xen.h>
+>  #include <xen/interface/sched.h>
+>  #include <xen/interface/vcpu.h>
+> +#include <xen/events.h>
+>  
+>  #include <asm/xen/hypercall.h>
+>  #include <asm/xen/hypervisor.h>
+> diff --git a/arch/x86/xen/xen-ops.h b/arch/x86/xen/xen-ops.h
+> index 202d4c1..2368295 100644
+> --- a/arch/x86/xen/xen-ops.h
+> +++ b/arch/x86/xen/xen-ops.h
+> @@ -35,7 +35,6 @@ void xen_set_pat(u64);
+>  
+>  char * __init xen_memory_setup(void);
+>  void __init xen_arch_setup(void);
+> -void __init xen_init_IRQ(void);
+>  void xen_enable_sysenter(void);
+>  void xen_enable_syscall(void);
+>  void xen_vcpu_restore(void);
+> diff --git a/drivers/xen/events.c b/drivers/xen/events.c
+> index 7da65d3..9b506b2 100644
+> --- a/drivers/xen/events.c
+> +++ b/drivers/xen/events.c
+> @@ -31,14 +31,16 @@
+>  #include <linux/irqnr.h>
+>  #include <linux/pci.h>
+>  
+> +#ifdef CONFIG_X86
+>  #include <asm/desc.h>
+>  #include <asm/ptrace.h>
+>  #include <asm/irq.h>
+>  #include <asm/idle.h>
+>  #include <asm/io_apic.h>
+> -#include <asm/sync_bitops.h>
+>  #include <asm/xen/page.h>
+>  #include <asm/xen/pci.h>
+> +#endif
+> +#include <asm/sync_bitops.h>
+>  #include <asm/xen/hypercall.h>
+>  #include <asm/xen/hypervisor.h>
+>  
+> @@ -50,6 +52,9 @@
+>  #include <xen/interface/event_channel.h>
+>  #include <xen/interface/hvm/hvm_op.h>
+>  #include <xen/interface/hvm/params.h>
+> +#include <xen/interface/physdev.h>
+> +#include <xen/interface/sched.h>
+> +#include <asm/hw_irq.h>
+>  
+>  /*
+>   * This lock protects updates to the following mapping and reference-count
+> @@ -834,6 +839,7 @@ int bind_evtchn_to_irq(unsigned int evtchn)
+>              struct irq_info *info = info_for_irq(irq);
+>              WARN_ON(info == NULL || info->type != IRQT_EVTCHN);
+>      }
+> +    irq_clear_status_flags(irq, IRQ_NOREQUEST|IRQ_NOAUTOEN);
+
+I feel that this should be its own commit by itself. I am not certain
+of the implication of this on x86 and I think it deserves some explanation.
+
+
+>  
+>  out:
+>      mutex_unlock(&irq_mapping_update_lock);
+> @@ -1377,7 +1383,9 @@ void xen_evtchn_do_upcall(struct pt_regs *regs)
+>  {
+>      struct pt_regs *old_regs = set_irq_regs(regs);
+>  
+> +#ifdef CONFIG_X86
+>      exit_idle();
+> +#endif
+
+Doesn't exist? Or is that it does not need it?
+
+>      irq_enter();
+>  
+>      __xen_evtchn_do_upcall();
+> @@ -1786,9 +1794,9 @@ void xen_callback_vector(void)
+>  void xen_callback_vector(void) {}
+>  #endif
+>  
+> -void __init xen_init_IRQ(void)
+> +void xen_init_IRQ(void)
+>  {
+> -    int i, rc;
+> +    int i;
+>  
+>      evtchn_to_irq = kcalloc(NR_EVENT_CHANNELS, sizeof(*evtchn_to_irq),
+>                                  GFP_KERNEL);
+> @@ -1804,6 +1812,7 @@ void __init xen_init_IRQ(void)
+>  
+>      pirq_needs_eoi = pirq_needs_eoi_flag;
+>  
+> +#ifdef CONFIG_X86
+>      if (xen_hvm_domain()) {
+>              xen_callback_vector();
+>              native_init_IRQ();
+> @@ -1811,6 +1820,7 @@ void __init xen_init_IRQ(void)
+>               * __acpi_register_gsi can point at the right function */
+>              pci_xen_hvm_init();
+>      } else {
+> +            int rc;
+>              struct physdev_pirq_eoi_gmfn eoi_gmfn;
+>  
+>              irq_ctx_init(smp_processor_id());
+> @@ -1826,4 +1836,6 @@ void __init xen_init_IRQ(void)
+>              } else
+>                      pirq_needs_eoi = pirq_check_eoi_map;
+>      }
+> +#endif
+>  }
+> +EXPORT_SYMBOL_GPL(xen_init_IRQ);
+> diff --git a/include/xen/events.h b/include/xen/events.h
+> index 04399b2..c6bfe01 100644
+> --- a/include/xen/events.h
+> +++ b/include/xen/events.h
+> @@ -109,4 +109,6 @@ int xen_irq_from_gsi(unsigned gsi);
+>  /* Determine whether to ignore this IRQ if it is passed to a guest. */
+>  int xen_test_irq_shared(int irq);
+>  
+> +/* initialize Xen IRQ subsystem */
+> +void xen_init_IRQ(void);
+>  #endif      /* _XEN_EVENTS_H */
+> -- 
+> 1.7.2.5
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<20120801144751.GN7227@phenom.dumpdata.com> b/config/examples/test/corpus/<20120801144751.GN7227@phenom.dumpdata.com>
new file mode 100644 (file)
index 0000000..c986df1
--- /dev/null
@@ -0,0 +1,186 @@
+From xen-devel-bounces@lists.xen.org Wed Aug 01 16:01:47 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 01 Aug 2012 16:01:47 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SwaQf-0006ob-EI
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 01 Aug 2012 16:01:47 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SwaMN-00035u-AS; Wed, 01 Aug 2012 14:57:15 +0000
+Received: from mail27.messagelabs.com ([193.109.254.147])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <konrad.wilk@oracle.com>) id 1SwaML-00035Z-Ge
+       for xen-devel@lists.xensource.com; Wed, 01 Aug 2012 14:57:13 +0000
+X-Env-Sender: konrad.wilk@oracle.com
+X-Msg-Ref: server-7.tower-27.messagelabs.com!1343833025!3307665!1
+X-Originating-IP: [141.146.126.227]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogMTQxLjE0Ni4xMjYuMjI3ID0+IDY3MjQwNA==\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.2; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 5268 invoked from network); 1 Aug 2012 14:57:07 -0000
+Received: from acsinet15.oracle.com (HELO acsinet15.oracle.com)
+       (141.146.126.227)
+       by server-7.tower-27.messagelabs.com with DHE-RSA-AES256-SHA encrypted
+       SMTP; 1 Aug 2012 14:57:07 -0000
+Received: from acsinet22.oracle.com (acsinet22.oracle.com [141.146.126.238])
+       by acsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
+       ESMTP id q71EurQA013503
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
+       Wed, 1 Aug 2012 14:56:54 GMT
+Received: from acsmt357.oracle.com (acsmt357.oracle.com [141.146.40.157])
+       by acsinet22.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
+       q71Eur3T011200
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
+       Wed, 1 Aug 2012 14:56:53 GMT
+Received: from abhmt110.oracle.com (abhmt110.oracle.com [141.146.116.62])
+       by acsmt357.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
+       q71EuqlA018549; Wed, 1 Aug 2012 09:56:52 -0500
+Received: from phenom.dumpdata.com (/209.6.85.33)
+       by default (Oracle Beehive Gateway v4.0)
+       with ESMTP ; Wed, 01 Aug 2012 07:56:52 -0700
+Received: by phenom.dumpdata.com (Postfix, from userid 1000)
+       id EDFE9402B2; Wed,  1 Aug 2012 10:47:51 -0400 (EDT)
+Date: Wed, 1 Aug 2012 10:47:51 -0400
+From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+Message-ID: <20120801144751.GN7227@phenom.dumpdata.com>
+References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
+       <1343316846-25860-17-git-send-email-stefano.stabellini@eu.citrix.com>
+       <5012598C0200007800090DB9@nat28.tlf.novell.com>
+       <alpine.DEB.2.02.1207271502480.26163@kaball.uk.xensource.com>
+MIME-Version: 1.0
+Content-Disposition: inline
+In-Reply-To: <alpine.DEB.2.02.1207271502480.26163@kaball.uk.xensource.com>
+User-Agent: Mutt/1.5.21 (2010-09-15)
+X-Source-IP: acsinet22.oracle.com [141.146.126.238]
+Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
+       "linaro-dev@lists.linaro.org" <linaro-dev@lists.linaro.org>,
+       Ian Campbell <Ian.Campbell@citrix.com>, "arnd@arndb.de" <arnd@arndb.de>,
+       "catalin.marinas@arm.com" <catalin.marinas@arm.com>,
+       "Tim \(Xen.org\)" <tim@xen.org>,
+       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
+       Jan Beulich <JBeulich@suse.com>, "linux-arm-kernel@lists.infradead.org"
+       <linux-arm-kernel@lists.infradead.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 17/24] xen: allow privcmd for HVM guests
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Fri, Jul 27, 2012 at 03:10:13PM +0100, Stefano Stabellini wrote:
+> On Fri, 27 Jul 2012, Jan Beulich wrote:
+> > >>> On 26.07.12 at 17:33, Stefano Stabellini <stefano.stabellini@eu.citrix.com> wrote:
+> > > In order for privcmd mmap to work correctly, xen_remap_domain_mfn_range
+> > > needs to be implemented for HVM guests.
+> > > If it is not, mmap is going to fail later on.
+> > 
+> > Somehow, for me at least, this description doesn't connect to the
+> > actual change.
+> 
+> We can remove the "return -ENOSYS" from privcmd_mmap but the actual mmap
+> is still not going to work unless xen_remap_domain_mfn_range is
+> implemented correctly.
+> The x86 implementation of xen_remap_domain_mfn_range is PV only so it is
+> not going to work for HVM or auto_translated_physmap guests.
+> As a result mmap_batch_fn is going to fail.
+
+So what you are saying is that this check is redundant and that earlier
+on in the call stack this check is made?
+
+I am not seeing it? I am seeing an:
+
+289         if (!xen_initial_domain())
+290                 return -EPERM;
+
+But that would still work.
+
+Perhaps adding an:
+
+       if (xen_hvm_domain())
+               return -ENOSYS
+
+is more appropiate in privcmd_ioctl_mmap_batch?
+
+Irrespective of HVM guests, I recall that it is possible to run PV guests
+with XENFEAT_auto_translated_physmap? How will this be impacted?
+
+> 
+> 
+> > > Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+> > > ---
+> > >  drivers/xen/privcmd.c |    4 ----
+> > >  1 files changed, 0 insertions(+), 4 deletions(-)
+> > > 
+> > > diff --git a/drivers/xen/privcmd.c b/drivers/xen/privcmd.c
+> > > index ccee0f1..85226cb 100644
+> > > --- a/drivers/xen/privcmd.c
+> > > +++ b/drivers/xen/privcmd.c
+> > > @@ -380,10 +380,6 @@ static struct vm_operations_struct privcmd_vm_ops = {
+> > >  
+> > >  static int privcmd_mmap(struct file *file, struct vm_area_struct *vma)
+> > >  {
+> > > -        /* Unsupported for auto-translate guests. */
+> > > -        if (xen_feature(XENFEAT_auto_translated_physmap))
+> > > -                return -ENOSYS;
+> > > -
+> > 
+> > Is this safe on x86?
+> > 
+> 
+> It is safe in the sense that is not going to crash dom0 or the
+> hypervisor, but it is not going to work.
+> 
+> Actually in order for it to be safe we need this additional change:
+> 
+> diff --git a/arch/x86/xen/mmu.c b/arch/x86/xen/mmu.c
+> index 3a73785..885a223 100644
+> --- a/arch/x86/xen/mmu.c
+> +++ b/arch/x86/xen/mmu.c
+> @@ -2310,6 +2310,9 @@ int xen_remap_domain_mfn_range(struct vm_area_struct *vma,
+>      unsigned long range;
+>      int err = 0;
+>  
+> +    if (xen_feature(XENFEAT_auto_translated_physmap))
+> +            return -EINVAL;
+> +
+>      prot = __pgprot(pgprot_val(prot) | _PAGE_IOMAP);
+>  
+>      BUG_ON(!((vma->vm_flags & (VM_PFNMAP | VM_RESERVED | VM_IO)) ==
+> 
+> 
+> _______________________________________________
+> Xen-devel mailing list
+> Xen-devel@lists.xen.org
+> http://lists.xen.org/xen-devel
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<20120801144818.GO7227@phenom.dumpdata.com> b/config/examples/test/corpus/<20120801144818.GO7227@phenom.dumpdata.com>
new file mode 100644 (file)
index 0000000..58d9e65
--- /dev/null
@@ -0,0 +1,142 @@
+From xen-devel-bounces@lists.xen.org Wed Aug 01 16:01:47 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 01 Aug 2012 16:01:47 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SwaQf-0006oa-9e
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 01 Aug 2012 16:01:47 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SwaMh-00037d-Na; Wed, 01 Aug 2012 14:57:35 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <konrad.wilk@oracle.com>) id 1SwaMg-00037J-1C
+       for xen-devel@lists.xensource.com; Wed, 01 Aug 2012 14:57:34 +0000
+Received: from [85.158.138.51:21575] by server-1.bemta-3.messagelabs.com id
+       F5/07-31934-DD349105; Wed, 01 Aug 2012 14:57:33 +0000
+X-Env-Sender: konrad.wilk@oracle.com
+X-Msg-Ref: server-14.tower-174.messagelabs.com!1343833051!23561129!1
+X-Originating-IP: [141.146.126.227]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogMTQxLjE0Ni4xMjYuMjI3ID0+IDY3MjQwNA==\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.2; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 20024 invoked from network); 1 Aug 2012 14:57:32 -0000
+Received: from acsinet15.oracle.com (HELO acsinet15.oracle.com)
+       (141.146.126.227)
+       by server-14.tower-174.messagelabs.com with DHE-RSA-AES256-SHA
+       encrypted SMTP; 1 Aug 2012 14:57:32 -0000
+Received: from ucsinet22.oracle.com (ucsinet22.oracle.com [156.151.31.94])
+       by acsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
+       ESMTP id q71EvK8L014108
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
+       Wed, 1 Aug 2012 14:57:21 GMT
+Received: from acsmt356.oracle.com (acsmt356.oracle.com [141.146.40.156])
+       by ucsinet22.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
+       q71EvJG6017143
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
+       Wed, 1 Aug 2012 14:57:19 GMT
+Received: from abhmt105.oracle.com (abhmt105.oracle.com [141.146.116.57])
+       by acsmt356.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
+       q71EvJj7029271; Wed, 1 Aug 2012 09:57:19 -0500
+Received: from phenom.dumpdata.com (/209.6.85.33)
+       by default (Oracle Beehive Gateway v4.0)
+       with ESMTP ; Wed, 01 Aug 2012 07:57:18 -0700
+Received: by phenom.dumpdata.com (Postfix, from userid 1000)
+       id 4F56A402B2; Wed,  1 Aug 2012 10:48:18 -0400 (EDT)
+Date: Wed, 1 Aug 2012 10:48:18 -0400
+From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+Message-ID: <20120801144818.GO7227@phenom.dumpdata.com>
+References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
+       <1343316846-25860-18-git-send-email-stefano.stabellini@eu.citrix.com>
+MIME-Version: 1.0
+Content-Disposition: inline
+In-Reply-To: <1343316846-25860-18-git-send-email-stefano.stabellini@eu.citrix.com>
+User-Agent: Mutt/1.5.21 (2010-09-15)
+X-Source-IP: ucsinet22.oracle.com [156.151.31.94]
+Cc: xen-devel@lists.xensource.com, linaro-dev@lists.linaro.org,
+       Ian.Campbell@citrix.com, arnd@arndb.de, catalin.marinas@arm.com,
+       tim@xen.org, linux-kernel@vger.kernel.org,
+       linux-arm-kernel@lists.infradead.org
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 18/24] xen/arm: compile blkfront and blkback
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Thu, Jul 26, 2012 at 04:34:00PM +0100, Stefano Stabellini wrote:
+> Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+> ---
+>  drivers/block/xen-blkback/blkback.c  |    1 +
+>  include/xen/interface/io/protocols.h |    3 +++
+>  2 files changed, 4 insertions(+), 0 deletions(-)
+> 
+> diff --git a/drivers/block/xen-blkback/blkback.c b/drivers/block/xen-blkback/blkback.c
+> index 73f196c..63dd5b9 100644
+> --- a/drivers/block/xen-blkback/blkback.c
+> +++ b/drivers/block/xen-blkback/blkback.c
+> @@ -42,6 +42,7 @@
+>  
+>  #include <xen/events.h>
+>  #include <xen/page.h>
+> +#include <xen/xen.h>
+>  #include <asm/xen/hypervisor.h>
+>  #include <asm/xen/hypercall.h>
+>  #include "common.h"
+> diff --git a/include/xen/interface/io/protocols.h b/include/xen/interface/io/protocols.h
+> index 01fc8ae..0eafaf2 100644
+> --- a/include/xen/interface/io/protocols.h
+> +++ b/include/xen/interface/io/protocols.h
+> @@ -5,6 +5,7 @@
+>  #define XEN_IO_PROTO_ABI_X86_64     "x86_64-abi"
+>  #define XEN_IO_PROTO_ABI_IA64       "ia64-abi"
+>  #define XEN_IO_PROTO_ABI_POWERPC64  "powerpc64-abi"
+> +#define XEN_IO_PROTO_ABI_ARM        "arm-abi"
+
+So one that has all of the 32/64 issues worked out? Nice.
+
+>  
+>  #if defined(__i386__)
+>  # define XEN_IO_PROTO_ABI_NATIVE XEN_IO_PROTO_ABI_X86_32
+> @@ -14,6 +15,8 @@
+>  # define XEN_IO_PROTO_ABI_NATIVE XEN_IO_PROTO_ABI_IA64
+>  #elif defined(__powerpc64__)
+>  # define XEN_IO_PROTO_ABI_NATIVE XEN_IO_PROTO_ABI_POWERPC64
+> +#elif defined(__arm__)
+> +# define XEN_IO_PROTO_ABI_NATIVE XEN_IO_PROTO_ABI_ARM
+>  #else
+>  # error arch fixup needed here
+>  #endif
+> -- 
+> 1.7.2.5
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<20120801145215.GP7227@phenom.dumpdata.com> b/config/examples/test/corpus/<20120801145215.GP7227@phenom.dumpdata.com>
new file mode 100644 (file)
index 0000000..00ec381
--- /dev/null
@@ -0,0 +1,147 @@
+From xen-devel-bounces@lists.xen.org Wed Aug 01 16:05:44 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 01 Aug 2012 16:05:44 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SwaUU-0006qK-W2
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 01 Aug 2012 16:05:44 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SwaQd-0003P7-DI; Wed, 01 Aug 2012 15:01:39 +0000
+Received: from mail27.messagelabs.com ([193.109.254.147])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <konrad.wilk@oracle.com>) id 1SwaQc-0003Op-D1
+       for xen-devel@lists.xensource.com; Wed, 01 Aug 2012 15:01:38 +0000
+X-Env-Sender: konrad.wilk@oracle.com
+X-Msg-Ref: server-10.tower-27.messagelabs.com!1343833289!3383439!1
+X-Originating-IP: [141.146.126.227]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogMTQxLjE0Ni4xMjYuMjI3ID0+IDY3MjQwNA==\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.2; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 26841 invoked from network); 1 Aug 2012 15:01:32 -0000
+Received: from acsinet15.oracle.com (HELO acsinet15.oracle.com)
+       (141.146.126.227)
+       by server-10.tower-27.messagelabs.com with DHE-RSA-AES256-SHA encrypted
+       SMTP; 1 Aug 2012 15:01:32 -0000
+Received: from acsinet21.oracle.com (acsinet21.oracle.com [141.146.126.237])
+       by acsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
+       ESMTP id q71F1HEa018867
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
+       Wed, 1 Aug 2012 15:01:17 GMT
+Received: from acsmt357.oracle.com (acsmt357.oracle.com [141.146.40.157])
+       by acsinet21.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
+       q71F1GE4022990
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
+       Wed, 1 Aug 2012 15:01:16 GMT
+Received: from abhmt107.oracle.com (abhmt107.oracle.com [141.146.116.59])
+       by acsmt357.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
+       q71F1G35022660; Wed, 1 Aug 2012 10:01:16 -0500
+Received: from phenom.dumpdata.com (/209.6.85.33)
+       by default (Oracle Beehive Gateway v4.0)
+       with ESMTP ; Wed, 01 Aug 2012 08:01:16 -0700
+Received: by phenom.dumpdata.com (Postfix, from userid 1000)
+       id 34172402B2; Wed,  1 Aug 2012 10:52:15 -0400 (EDT)
+Date: Wed, 1 Aug 2012 10:52:15 -0400
+From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>,
+       Mukesh Rathor <mukesh.rathor@oracle.com>
+Message-ID: <20120801145215.GP7227@phenom.dumpdata.com>
+References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
+       <1343316846-25860-20-git-send-email-stefano.stabellini@eu.citrix.com>
+MIME-Version: 1.0
+Content-Disposition: inline
+In-Reply-To: <1343316846-25860-20-git-send-email-stefano.stabellini@eu.citrix.com>
+User-Agent: Mutt/1.5.21 (2010-09-15)
+X-Source-IP: acsinet21.oracle.com [141.146.126.237]
+Cc: xen-devel@lists.xensource.com, linaro-dev@lists.linaro.org,
+       Ian.Campbell@citrix.com, arnd@arndb.de, catalin.marinas@arm.com,
+       tim@xen.org, linux-kernel@vger.kernel.org,
+       linux-arm-kernel@lists.infradead.org
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 20/24] xen: update xen_add_to_physmap
+       interface
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Thu, Jul 26, 2012 at 04:34:02PM +0100, Stefano Stabellini wrote:
+> Update struct xen_add_to_physmap to be in sync with Xen's version of the
+> structure.
+> The size field was introduced by:
+> 
+> changeset:   24164:707d27fe03e7
+> user:        Jean Guyader <jean.guyader@eu.citrix.com>
+> date:        Fri Nov 18 13:42:08 2011 +0000
+> summary:     mm: New XENMEM space, XENMAPSPACE_gmfn_range
+> 
+> According to the comment:
+> 
+> "This new field .size is located in the 16 bits padding between .domid
+> and .space in struct xen_add_to_physmap to stay compatible with older
+> versions."
+> 
+> This is not true on ARM where there is not padding, but it is valid on
+> X86, so introducing size is safe on X86 and it is going to fix the
+> interace for ARM.
+
+Has this been checked actually for backwards compatibility? It sounds
+like it should work just fine with Xen 4.0 right?
+
+I believe this also helps Mukesh's patches, so CC-ing him here for
+his Ack.
+
+I can put this in right now in tree if we are 100% sure its compatiblie with 4.0.
+
+> 
+> Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+> ---
+>  include/xen/interface/memory.h |    3 +++
+>  1 files changed, 3 insertions(+), 0 deletions(-)
+> 
+> diff --git a/include/xen/interface/memory.h b/include/xen/interface/memory.h
+> index abbbff0..d8e33a9 100644
+> --- a/include/xen/interface/memory.h
+> +++ b/include/xen/interface/memory.h
+> @@ -163,6 +163,9 @@ struct xen_add_to_physmap {
+>      /* Which domain to change the mapping for. */
+>      domid_t domid;
+>  
+> +    /* Number of pages to go through for gmfn_range */
+> +    uint16_t    size;
+> +
+>      /* Source mapping space. */
+>  #define XENMAPSPACE_shared_info 0 /* shared info page */
+>  #define XENMAPSPACE_grant_table 1 /* grant table page */
+> -- 
+> 1.7.2.5
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<20120801145257.GQ7227@phenom.dumpdata.com> b/config/examples/test/corpus/<20120801145257.GQ7227@phenom.dumpdata.com>
new file mode 100644 (file)
index 0000000..e02b438
--- /dev/null
@@ -0,0 +1,135 @@
+From xen-devel-bounces@lists.xen.org Wed Aug 01 16:06:09 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 01 Aug 2012 16:06:09 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SwaUx-0006qz-La
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 01 Aug 2012 16:06:09 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SwaRZ-0003Ty-RO; Wed, 01 Aug 2012 15:02:37 +0000
+Received: from mail27.messagelabs.com ([193.109.254.147])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <konrad.wilk@oracle.com>) id 1SwaRX-0003TR-Vx
+       for xen-devel@lists.xensource.com; Wed, 01 Aug 2012 15:02:36 +0000
+X-Env-Sender: konrad.wilk@oracle.com
+X-Msg-Ref: server-3.tower-27.messagelabs.com!1343833335!10351858!1
+X-Originating-IP: [141.146.126.227]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogMTQxLjE0Ni4xMjYuMjI3ID0+IDY3MjQwNA==\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.2; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 11565 invoked from network); 1 Aug 2012 15:02:19 -0000
+Received: from acsinet15.oracle.com (HELO acsinet15.oracle.com)
+       (141.146.126.227)
+       by server-3.tower-27.messagelabs.com with DHE-RSA-AES256-SHA encrypted
+       SMTP; 1 Aug 2012 15:02:19 -0000
+Received: from ucsinet21.oracle.com (ucsinet21.oracle.com [156.151.31.93])
+       by acsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
+       ESMTP id q71F20DW019707
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
+       Wed, 1 Aug 2012 15:02:00 GMT
+Received: from acsmt356.oracle.com (acsmt356.oracle.com [141.146.40.156])
+       by ucsinet21.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
+       q71F1xM9014144
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
+       Wed, 1 Aug 2012 15:01:59 GMT
+Received: from abhmt110.oracle.com (abhmt110.oracle.com [141.146.116.62])
+       by acsmt356.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
+       q71F1wF8001225; Wed, 1 Aug 2012 10:01:58 -0500
+Received: from phenom.dumpdata.com (/209.6.85.33)
+       by default (Oracle Beehive Gateway v4.0)
+       with ESMTP ; Wed, 01 Aug 2012 08:01:58 -0700
+Received: by phenom.dumpdata.com (Postfix, from userid 1000)
+       id 181F6402B2; Wed,  1 Aug 2012 10:52:58 -0400 (EDT)
+Date: Wed, 1 Aug 2012 10:52:58 -0400
+From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+Message-ID: <20120801145257.GQ7227@phenom.dumpdata.com>
+References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
+       <1343316846-25860-21-git-send-email-stefano.stabellini@eu.citrix.com>
+MIME-Version: 1.0
+Content-Disposition: inline
+In-Reply-To: <1343316846-25860-21-git-send-email-stefano.stabellini@eu.citrix.com>
+User-Agent: Mutt/1.5.21 (2010-09-15)
+X-Source-IP: ucsinet21.oracle.com [156.151.31.93]
+Cc: xen-devel@lists.xensource.com, linaro-dev@lists.linaro.org,
+       Ian.Campbell@citrix.com, arnd@arndb.de, catalin.marinas@arm.com,
+       tim@xen.org, linux-kernel@vger.kernel.org,
+       linux-arm-kernel@lists.infradead.org
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 21/24] arm/v2m: initialize arch_timers even
+ if v2m_timer is not present
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Thu, Jul 26, 2012 at 04:34:03PM +0100, Stefano Stabellini wrote:
+> Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+
+Should the maintainer of the v2m be CC-ed here?
+This looks like a bug-fix of itself?
+
+> ---
+>  arch/arm/mach-vexpress/v2m.c |   11 ++++++-----
+>  1 files changed, 6 insertions(+), 5 deletions(-)
+> 
+> diff --git a/arch/arm/mach-vexpress/v2m.c b/arch/arm/mach-vexpress/v2m.c
+> index fde26ad..dee1451 100644
+> --- a/arch/arm/mach-vexpress/v2m.c
+> +++ b/arch/arm/mach-vexpress/v2m.c
+> @@ -637,16 +637,17 @@ static void __init v2m_dt_timer_init(void)
+>      node = of_find_compatible_node(NULL, NULL, "arm,sp810");
+>      v2m_sysctl_init(of_iomap(node, 0));
+>  
+> -    err = of_property_read_string(of_aliases, "arm,v2m_timer", &path);
+> -    if (WARN_ON(err))
+> -            return;
+> -    node = of_find_node_by_path(path);
+> -    v2m_sp804_init(of_iomap(node, 0), irq_of_parse_and_map(node, 0));
+>      if (arch_timer_of_register() != 0)
+>              twd_local_timer_of_register();
+>  
+>      if (arch_timer_sched_clock_init() != 0)
+>              versatile_sched_clock_init(v2m_sysreg_base + V2M_SYS_24MHZ, 24000000);
+> +
+> +    err = of_property_read_string(of_aliases, "arm,v2m_timer", &path);
+> +    if (WARN_ON(err))
+> +            return;
+> +    node = of_find_node_by_path(path);
+> +    v2m_sp804_init(of_iomap(node, 0), irq_of_parse_and_map(node, 0));
+>  }
+>  
+>  static struct sys_timer v2m_dt_timer = {
+> -- 
+> 1.7.2.5
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<20120801145413.GR7227@phenom.dumpdata.com> b/config/examples/test/corpus/<20120801145413.GR7227@phenom.dumpdata.com>
new file mode 100644 (file)
index 0000000..3b22bb7
--- /dev/null
@@ -0,0 +1,131 @@
+From xen-devel-bounces@lists.xen.org Wed Aug 01 16:07:20 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 01 Aug 2012 16:07:20 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SwaW2-0006rN-R5
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 01 Aug 2012 16:07:20 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SwaSX-0003cI-FV; Wed, 01 Aug 2012 15:03:37 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <konrad.wilk@oracle.com>) id 1SwaSV-0003bH-8D
+       for xen-devel@lists.xensource.com; Wed, 01 Aug 2012 15:03:35 +0000
+Received: from [85.158.138.51:47686] by server-1.bemta-3.messagelabs.com id
+       9D/F1-31934-64549105; Wed, 01 Aug 2012 15:03:34 +0000
+X-Env-Sender: konrad.wilk@oracle.com
+X-Msg-Ref: server-12.tower-174.messagelabs.com!1343833412!20392170!1
+X-Originating-IP: [148.87.113.117]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogMTQ4Ljg3LjExMy4xMTcgPT4gNjY5Nzc4\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.2; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 23312 invoked from network); 1 Aug 2012 15:03:33 -0000
+Received: from rcsinet15.oracle.com (HELO rcsinet15.oracle.com)
+       (148.87.113.117)
+       by server-12.tower-174.messagelabs.com with DHE-RSA-AES256-SHA
+       encrypted SMTP; 1 Aug 2012 15:03:33 -0000
+Received: from acsinet22.oracle.com (acsinet22.oracle.com [141.146.126.238])
+       by rcsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
+       ESMTP id q71F3E9H020161
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
+       Wed, 1 Aug 2012 15:03:15 GMT
+Received: from acsmt358.oracle.com (acsmt358.oracle.com [141.146.40.158])
+       by acsinet22.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
+       q71F3EGY024998
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
+       Wed, 1 Aug 2012 15:03:14 GMT
+Received: from abhmt111.oracle.com (abhmt111.oracle.com [141.146.116.63])
+       by acsmt358.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
+       q71F3EM4002912; Wed, 1 Aug 2012 10:03:14 -0500
+Received: from phenom.dumpdata.com (/209.6.85.33)
+       by default (Oracle Beehive Gateway v4.0)
+       with ESMTP ; Wed, 01 Aug 2012 08:03:14 -0700
+Received: by phenom.dumpdata.com (Postfix, from userid 1000)
+       id 64908402B2; Wed,  1 Aug 2012 10:54:13 -0400 (EDT)
+Date: Wed, 1 Aug 2012 10:54:13 -0400
+From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+Message-ID: <20120801145413.GR7227@phenom.dumpdata.com>
+References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
+       <1343316846-25860-23-git-send-email-stefano.stabellini@eu.citrix.com>
+MIME-Version: 1.0
+Content-Disposition: inline
+In-Reply-To: <1343316846-25860-23-git-send-email-stefano.stabellini@eu.citrix.com>
+User-Agent: Mutt/1.5.21 (2010-09-15)
+X-Source-IP: acsinet22.oracle.com [141.146.126.238]
+Cc: xen-devel@lists.xensource.com, linaro-dev@lists.linaro.org,
+       Ian.Campbell@citrix.com, arnd@arndb.de, catalin.marinas@arm.com,
+       tim@xen.org, linux-kernel@vger.kernel.org,
+       linux-arm-kernel@lists.infradead.org
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 23/24] hvc_xen: allow dom0_write_console for
+       HVM guests
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Thu, Jul 26, 2012 at 04:34:05PM +0100, Stefano Stabellini wrote:
+> On ARM all guests are HVM guests, including Dom0.
+> Allow dom0_write_console to be called by an HVM domain.
+
+Um, but xen_hvm_domain() != xen_pv_domain() so won't this return without
+printing anything?
+
+> 
+> Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+> ---
+>  drivers/tty/hvc/hvc_xen.c |    5 +----
+>  1 files changed, 1 insertions(+), 4 deletions(-)
+> 
+> diff --git a/drivers/tty/hvc/hvc_xen.c b/drivers/tty/hvc/hvc_xen.c
+> index 3c04fb8..949edc2 100644
+> --- a/drivers/tty/hvc/hvc_xen.c
+> +++ b/drivers/tty/hvc/hvc_xen.c
+> @@ -616,12 +616,9 @@ static void xenboot_write_console(struct console *console, const char *string,
+>      unsigned int linelen, off = 0;
+>      const char *pos;
+>  
+> -    if (!xen_pv_domain())
+> -            return;
+> -
+>      dom0_write_console(0, string, len);
+>  
+> -    if (xen_initial_domain())
+> +    if (!xen_pv_domain())
+>              return;
+>  
+>      domU_write_console(0, "(early) ", 8);
+> -- 
+> 1.7.2.5
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<20120801145610.GS7227@phenom.dumpdata.com> b/config/examples/test/corpus/<20120801145610.GS7227@phenom.dumpdata.com>
new file mode 100644 (file)
index 0000000..1abe5b6
--- /dev/null
@@ -0,0 +1,337 @@
+From xen-devel-bounces@lists.xen.org Wed Aug 01 16:09:23 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 01 Aug 2012 16:09:23 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SwaY4-0006rr-C0
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 01 Aug 2012 16:09:23 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SwaUb-0003pw-0j; Wed, 01 Aug 2012 15:05:45 +0000
+Received: from mail27.messagelabs.com ([193.109.254.147])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <konrad.wilk@oracle.com>) id 1SwaUa-0003pU-0A
+       for xen-devel@lists.xensource.com; Wed, 01 Aug 2012 15:05:44 +0000
+X-Env-Sender: konrad.wilk@oracle.com
+X-Msg-Ref: server-12.tower-27.messagelabs.com!1343833525!11001244!1
+X-Originating-IP: [141.146.126.227]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogMTQxLjE0Ni4xMjYuMjI3ID0+IDY3MjQwNA==\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.2; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 1726 invoked from network); 1 Aug 2012 15:05:26 -0000
+Received: from acsinet15.oracle.com (HELO acsinet15.oracle.com)
+       (141.146.126.227)
+       by server-12.tower-27.messagelabs.com with DHE-RSA-AES256-SHA encrypted
+       SMTP; 1 Aug 2012 15:05:26 -0000
+Received: from ucsinet21.oracle.com (ucsinet21.oracle.com [156.151.31.93])
+       by acsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
+       ESMTP id q71F5CpQ023672
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
+       Wed, 1 Aug 2012 15:05:13 GMT
+Received: from acsmt356.oracle.com (acsmt356.oracle.com [141.146.40.156])
+       by ucsinet21.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
+       q71F5BuB021553
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
+       Wed, 1 Aug 2012 15:05:11 GMT
+Received: from abhmt102.oracle.com (abhmt102.oracle.com [141.146.116.54])
+       by acsmt356.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
+       q71F5BNo004419; Wed, 1 Aug 2012 10:05:11 -0500
+Received: from phenom.dumpdata.com (/209.6.85.33)
+       by default (Oracle Beehive Gateway v4.0)
+       with ESMTP ; Wed, 01 Aug 2012 08:05:10 -0700
+Received: by phenom.dumpdata.com (Postfix, from userid 1000)
+       id 1CA3C402B2; Wed,  1 Aug 2012 10:56:10 -0400 (EDT)
+Date: Wed, 1 Aug 2012 10:56:10 -0400
+From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>,
+       Mukesh Rathor <mukesh.rathor@oracle.com>
+Message-ID: <20120801145610.GS7227@phenom.dumpdata.com>
+References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
+       <1343316846-25860-24-git-send-email-stefano.stabellini@eu.citrix.com>
+MIME-Version: 1.0
+Content-Disposition: inline
+In-Reply-To: <1343316846-25860-24-git-send-email-stefano.stabellini@eu.citrix.com>
+User-Agent: Mutt/1.5.21 (2010-09-15)
+X-Source-IP: ucsinet21.oracle.com [156.151.31.93]
+Cc: xen-devel@lists.xensource.com, linaro-dev@lists.linaro.org,
+       Ian.Campbell@citrix.com, arnd@arndb.de, catalin.marinas@arm.com,
+       tim@xen.org, linux-kernel@vger.kernel.org,
+       linux-arm-kernel@lists.infradead.org
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 24/24] [HACK] xen/arm: implement
+ xen_remap_domain_mfn_range
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Thu, Jul 26, 2012 at 04:34:06PM +0100, Stefano Stabellini wrote:
+> From: Ian Campbell <Ian.Campbell@citrix.com>
+> 
+> Do not apply!
+
+Mukesh, I believe this is similar to what you had in mind.
+
+> 
+> This is a simple, hacky implementation of xen_remap_domain_mfn_range,
+> using XENMAPSPACE_gmfn_foreign.
+> 
+> It should use same interface as hybrid x86.
+
+Yeah.. We should get this done irrespective of this ARM patchset as
+it will certainly benefit the HVM domains.
+
+So  what is with the 0x9000 values?
+
+> 
+> Signed-off-by: Ian Campbell <Ian.Campbell@citrix.com>
+> Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+> ---
+>  arch/arm/xen/enlighten.c       |   79 +++++++++++++++++++++++++++++++++++++++-
+>  drivers/xen/privcmd.c          |   16 +++++----
+>  drivers/xen/xenfs/super.c      |    7 ++++
+>  include/xen/interface/memory.h |   10 ++++--
+>  4 files changed, 101 insertions(+), 11 deletions(-)
+> 
+> diff --git a/arch/arm/xen/enlighten.c b/arch/arm/xen/enlighten.c
+> index 1476b0b..7092015 100644
+> --- a/arch/arm/xen/enlighten.c
+> +++ b/arch/arm/xen/enlighten.c
+> @@ -16,6 +16,10 @@
+>  #include <linux/of.h>
+>  #include <linux/of_irq.h>
+>  #include <linux/of_address.h>
+> +#include <linux/mm.h>
+> +#include <linux/ioport.h>
+> +
+> +#include <asm/pgtable.h>
+>  
+>  struct start_info _xen_start_info;
+>  struct start_info *xen_start_info = &_xen_start_info;
+> @@ -38,12 +42,85 @@ EXPORT_SYMBOL_GPL(xen_platform_pci_unplug);
+>  
+>  static __read_mostly int xen_events_irq = -1;
+>  
+> +#define FOREIGN_MAP_BUFFER 0x90000000UL
+> +#define FOREIGN_MAP_BUFFER_SIZE 0x10000000UL
+> +struct resource foreign_map_resource = {
+> +    .start = FOREIGN_MAP_BUFFER,
+> +    .end = FOREIGN_MAP_BUFFER + FOREIGN_MAP_BUFFER_SIZE,
+> +    .name = "Xen foreign map buffer",
+> +    .flags = 0,
+> +};
+> +
+> +static unsigned long foreign_map_buffer_pfn = FOREIGN_MAP_BUFFER >> PAGE_SHIFT;
+> +
+> +struct remap_data {
+> +    struct mm_struct *mm;
+> +    unsigned long mfn;
+> +    pgprot_t prot;
+> +};
+> +
+> +static int remap_area_mfn_pte_fn(pte_t *ptep, pgtable_t token,
+> +                             unsigned long addr, void *data)
+> +{
+> +    struct remap_data *rmd = data;
+> +    pte_t pte = pfn_pte(rmd->mfn, rmd->prot);
+> +
+> +    if (rmd->mfn < 0x90010)
+> +            pr_crit("%s: ptep %p addr %#lx => %#x / %#lx\n",
+> +                   __func__, ptep, addr, pte_val(pte), rmd->mfn);
+> +
+> +    set_pte_at(rmd->mm, addr, ptep, pte);
+> +
+> +    rmd->mfn++;
+> +    return 0;
+> +}
+> +
+>  int xen_remap_domain_mfn_range(struct vm_area_struct *vma,
+>                             unsigned long addr,
+>                             unsigned long mfn, int nr,
+>                             pgprot_t prot, unsigned domid)
+>  {
+> -    return -ENOSYS;
+> +    int i, rc = 0;
+> +    struct remap_data rmd = {
+> +            .mm = vma->vm_mm,
+> +            .prot = prot,
+> +    };
+> +    struct xen_add_to_physmap xatp = {
+> +            .domid = DOMID_SELF,
+> +            .space = XENMAPSPACE_gmfn_foreign,
+> +
+> +            .foreign_domid = domid,
+> +    };
+> +
+> +    if (foreign_map_buffer_pfn + nr > ((FOREIGN_MAP_BUFFER +
+> +                                    FOREIGN_MAP_BUFFER_SIZE)>>PAGE_SHIFT)) {
+> +            pr_crit("RAM out of foreign map buffers...\n");
+> +            return -EBUSY;
+> +    }
+> +
+> +    for (i = 0; i < nr; i++) {
+> +            xatp.idx = mfn + i;
+> +            xatp.gpfn = foreign_map_buffer_pfn + i;
+> +            rc = HYPERVISOR_memory_op(XENMEM_add_to_physmap, &xatp);
+> +            if (rc != 0) {
+> +                    pr_crit("foreign map add_to_physmap failed, err=%d\n", rc);
+> +                    goto out;
+> +            }
+> +    }
+> +
+> +    rmd.mfn = foreign_map_buffer_pfn;
+> +    rc = apply_to_page_range(vma->vm_mm,
+> +                             addr,
+> +                             (unsigned long)nr << PAGE_SHIFT,
+> +                             remap_area_mfn_pte_fn, &rmd);
+> +    if (rc != 0) {
+> +            pr_crit("apply_to_page_range failed rc=%d\n", rc);
+> +            goto out;
+> +    }
+> +
+> +    foreign_map_buffer_pfn += nr;
+> +out:
+> +    return rc;
+>  }
+>  EXPORT_SYMBOL_GPL(xen_remap_domain_mfn_range);
+>  
+> diff --git a/drivers/xen/privcmd.c b/drivers/xen/privcmd.c
+> index 85226cb..3e15c22 100644
+> --- a/drivers/xen/privcmd.c
+> +++ b/drivers/xen/privcmd.c
+> @@ -20,6 +20,8 @@
+>  #include <linux/pagemap.h>
+>  #include <linux/seq_file.h>
+>  #include <linux/miscdevice.h>
+> +#include <linux/resource.h>
+> +#include <linux/ioport.h>
+>  
+>  #include <asm/pgalloc.h>
+>  #include <asm/pgtable.h>
+> @@ -196,9 +198,6 @@ static long privcmd_ioctl_mmap(void __user *udata)
+>      LIST_HEAD(pagelist);
+>      struct mmap_mfn_state state;
+>  
+> -    if (!xen_initial_domain())
+> -            return -EPERM;
+> -
+>      if (copy_from_user(&mmapcmd, udata, sizeof(mmapcmd)))
+>              return -EFAULT;
+>  
+> @@ -286,9 +285,6 @@ static long privcmd_ioctl_mmap_batch(void __user *udata)
+>      LIST_HEAD(pagelist);
+>      struct mmap_batch_state state;
+>  
+> -    if (!xen_initial_domain())
+> -            return -EPERM;
+> -
+>      if (copy_from_user(&m, udata, sizeof(m)))
+>              return -EFAULT;
+>  
+> @@ -365,6 +361,11 @@ static long privcmd_ioctl(struct file *file,
+>      return ret;
+>  }
+>  
+> +static void privcmd_close(struct vm_area_struct *vma)
+> +{
+> +    /* TODO: unmap VMA */
+> +}
+> +
+>  static int privcmd_fault(struct vm_area_struct *vma, struct vm_fault *vmf)
+>  {
+>      printk(KERN_DEBUG "privcmd_fault: vma=%p %lx-%lx, pgoff=%lx, uv=%p\n",
+> @@ -375,7 +376,8 @@ static int privcmd_fault(struct vm_area_struct *vma, struct vm_fault *vmf)
+>  }
+>  
+>  static struct vm_operations_struct privcmd_vm_ops = {
+> -    .fault = privcmd_fault
+> +    .fault = privcmd_fault,
+> +    .close = privcmd_close,
+>  };
+>  
+>  static int privcmd_mmap(struct file *file, struct vm_area_struct *vma)
+> diff --git a/drivers/xen/xenfs/super.c b/drivers/xen/xenfs/super.c
+> index a84b53c..edbe22f 100644
+> --- a/drivers/xen/xenfs/super.c
+> +++ b/drivers/xen/xenfs/super.c
+> @@ -12,6 +12,7 @@
+>  #include <linux/module.h>
+>  #include <linux/fs.h>
+>  #include <linux/magic.h>
+> +#include <linux/ioport.h>
+>  
+>  #include <xen/xen.h>
+>  
+> @@ -80,6 +81,8 @@ static const struct file_operations capabilities_file_ops = {
+>      .llseek = default_llseek,
+>  };
+>  
+> +extern struct resource foreign_map_resource;
+> +
+>  static int xenfs_fill_super(struct super_block *sb, void *data, int silent)
+>  {
+>      static struct tree_descr xenfs_files[] = {
+> @@ -100,6 +103,10 @@ static int xenfs_fill_super(struct super_block *sb, void *data, int silent)
+>                                &xsd_kva_file_ops, NULL, S_IRUSR|S_IWUSR);
+>              xenfs_create_file(sb, sb->s_root, "xsd_port",
+>                                &xsd_port_file_ops, NULL, S_IRUSR|S_IWUSR);
+> +            rc = request_resource(&iomem_resource, &foreign_map_resource);
+> +            if (rc < 0)
+> +                    pr_crit("failed to register foreign map resource\n");
+> +            rc = 0; /* ignore */
+>      }
+>  
+>      return rc;
+> diff --git a/include/xen/interface/memory.h b/include/xen/interface/memory.h
+> index d8e33a9..ec68945 100644
+> --- a/include/xen/interface/memory.h
+> +++ b/include/xen/interface/memory.h
+> @@ -167,9 +167,13 @@ struct xen_add_to_physmap {
+>      uint16_t    size;
+>  
+>      /* Source mapping space. */
+> -#define XENMAPSPACE_shared_info 0 /* shared info page */
+> -#define XENMAPSPACE_grant_table 1 /* grant table page */
+> -    unsigned int space;
+> +#define XENMAPSPACE_shared_info  0 /* shared info page */
+> +#define XENMAPSPACE_grant_table  1 /* grant table page */
+> +#define XENMAPSPACE_gmfn         2 /* GMFN */
+> +#define XENMAPSPACE_gmfn_range   3 /* GMFN range */
+> +#define XENMAPSPACE_gmfn_foreign 4 /* GMFN from another guest */
+> +    uint16_t space;
+> +    domid_t foreign_domid; /* IFF gmfn_foreign */
+>  
+>      /* Index into source mapping space. */
+>      unsigned long idx;
+> -- 
+> 1.7.2.5
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<20120802141341.GE16749@phenom.dumpdata.com> b/config/examples/test/corpus/<20120802141341.GE16749@phenom.dumpdata.com>
new file mode 100644 (file)
index 0000000..95bd668
--- /dev/null
@@ -0,0 +1,129 @@
+From xen-devel-bounces@lists.xen.org Thu Aug 02 15:27:10 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 02 Aug 2012 15:27:10 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SwwMl-0006xD-TR
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 02 Aug 2012 15:27:10 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SwwIt-0000oV-VF; Thu, 02 Aug 2012 14:23:07 +0000
+Received: from mail27.messagelabs.com ([193.109.254.147])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <konrad.wilk@oracle.com>) id 1SwwIt-0000o1-0m
+       for xen-devel@lists.xensource.com; Thu, 02 Aug 2012 14:23:07 +0000
+X-Env-Sender: konrad.wilk@oracle.com
+X-Msg-Ref: server-15.tower-27.messagelabs.com!1343917379!1860610!1
+X-Originating-IP: [141.146.126.227]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogMTQxLjE0Ni4xMjYuMjI3ID0+IDY3NDk3OQ==\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.2; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 29790 invoked from network); 2 Aug 2012 14:23:00 -0000
+Received: from acsinet15.oracle.com (HELO acsinet15.oracle.com)
+       (141.146.126.227)
+       by server-15.tower-27.messagelabs.com with DHE-RSA-AES256-SHA encrypted
+       SMTP; 2 Aug 2012 14:23:00 -0000
+Received: from acsinet22.oracle.com (acsinet22.oracle.com [141.146.126.238])
+       by acsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
+       ESMTP id q72EMijl015231
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
+       Thu, 2 Aug 2012 14:22:44 GMT
+Received: from acsmt356.oracle.com (acsmt356.oracle.com [141.146.40.156])
+       by acsinet22.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
+       q72EMhlK024889
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
+       Thu, 2 Aug 2012 14:22:43 GMT
+Received: from abhmt106.oracle.com (abhmt106.oracle.com [141.146.116.58])
+       by acsmt356.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
+       q72EMgBr027615; Thu, 2 Aug 2012 09:22:42 -0500
+Received: from phenom.dumpdata.com (/209.6.85.33)
+       by default (Oracle Beehive Gateway v4.0)
+       with ESMTP ; Thu, 02 Aug 2012 07:22:42 -0700
+Received: by phenom.dumpdata.com (Postfix, from userid 1000)
+       id 9F5584029A; Thu,  2 Aug 2012 10:13:41 -0400 (EDT)
+Date: Thu, 2 Aug 2012 10:13:41 -0400
+From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+To: Ian Campbell <Ian.Campbell@citrix.com>
+Message-ID: <20120802141341.GE16749@phenom.dumpdata.com>
+References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
+       <1343316846-25860-1-git-send-email-stefano.stabellini@eu.citrix.com>
+       <50197527.3070007@gmail.com>
+       <1343892951.7571.50.camel@dagon.hellion.org.uk>
+MIME-Version: 1.0
+Content-Disposition: inline
+In-Reply-To: <1343892951.7571.50.camel@dagon.hellion.org.uk>
+User-Agent: Mutt/1.5.21 (2010-09-15)
+X-Source-IP: acsinet22.oracle.com [141.146.126.238]
+Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
+       "linaro-dev@lists.linaro.org" <linaro-dev@lists.linaro.org>,
+       "arnd@arndb.de" <arnd@arndb.de>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>,
+       "catalin.marinas@arm.com" <catalin.marinas@arm.com>,
+       "Tim \(Xen.org\)" <tim@xen.org>,
+       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
+       Rob Herring <robherring2@gmail.com>, "linux-arm-kernel@lists.infradead.org"
+       <linux-arm-kernel@lists.infradead.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 01/24] arm: initial Xen support
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Thu, Aug 02, 2012 at 08:35:51AM +0100, Ian Campbell wrote:
+> On Wed, 2012-08-01 at 19:27 +0100, Rob Herring wrote:
+> > On 07/26/2012 10:33 AM, Stefano Stabellini wrote:
+> > > - Basic hypervisor.h and interface.h definitions.
+> > > - Skelethon enlighten.c, set xen_start_info to an empty struct.
+> > > - Do not limit xen_initial_domain to PV guests.
+> > > 
+> > > The new code only compiles when CONFIG_XEN is set, that is going to be
+> > > added to arch/arm/Kconfig in a later patch.
+> > > 
+> > > Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+> > > ---
+> > >  arch/arm/Makefile                     |    1 +
+> > >  arch/arm/include/asm/hypervisor.h     |    6 +++
+> > >  arch/arm/include/asm/xen/hypervisor.h |   19 ++++++++++
+> > >  arch/arm/include/asm/xen/interface.h  |   64 +++++++++++++++++++++++++++++++++
+> > 
+> > These headers don't seem particularly ARM specific. Could they be moved
+> > to asm-generic or include/linux?
+> 
+> Or perhaps include/xen.
+> 
+> A bunch of it also looks like x86 specific stuff which has crept in.
+> e.g. PARAVIRT_LAZY_FOO and paravirt_get_lazy_mode() are arch/x86
+> specific and shouldn't be called from common code (and aren't, AFAICT).
+
+The could be moved out..
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<201208070018394210381@gmail.com> b/config/examples/test/corpus/<201208070018394210381@gmail.com>
new file mode 100644 (file)
index 0000000..2b94843
--- /dev/null
@@ -0,0 +1,342 @@
+From xen-devel-bounces@lists.xen.org Tue Aug 07 16:49:11 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Tue, 07 Aug 2012 16:49:11 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1Sym1s-0001rj-Uc
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 07 Aug 2012 16:49:11 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1Sylxl-0005b2-RF; Tue, 07 Aug 2012 15:44:53 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <tupeng212@gmail.com>) id 1Sylxj-0005ax-TE
+       for xen-devel@lists.xen.org; Tue, 07 Aug 2012 15:44:52 +0000
+Received: from [85.158.138.51:11910] by server-2.bemta-3.messagelabs.com id
+       48/01-29239-3F731205; Tue, 07 Aug 2012 15:44:51 +0000
+X-Env-Sender: tupeng212@gmail.com
+X-Msg-Ref: server-11.tower-174.messagelabs.com!1344354283!30849711!1
+X-Originating-IP: [209.85.161.173]
+X-SpamReason: No, hits=1.1 required=7.0 tests=HTML_60_70,HTML_MESSAGE,
+       MIME_BASE64_TEXT, MIME_BOUND_NEXTPART, ML_RADAR_SPEW_LINKS_14,
+       RCVD_BY_IP, spamassassin: 
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.2; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 11853 invoked from network); 7 Aug 2012 15:44:44 -0000
+Received: from mail-gg0-f173.google.com (HELO mail-gg0-f173.google.com)
+       (209.85.161.173)
+       by server-11.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
+       7 Aug 2012 15:44:44 -0000
+Received: by ggna5 with SMTP id a5so547276ggn.32
+       for <xen-devel@lists.xen.org>; Tue, 07 Aug 2012 08:44:42 -0700 (PDT)
+DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
+       h=date:from:to:reply-to:subject:x-priority:x-guid:x-has-attach
+       :x-mailer:mime-version:message-id:content-type;
+       bh=TbNkOp/ovqNvhYuwW2h1SiKCYPyISirE8+k6nB0QhuE=;
+       b=z8qpDfR6L/AFjHRzdaemlicE6Wzi66GiYd4v5WE4TlpNijkBbKWrlUXXED6niByQI5
+       qEYIbH+vi/31AisD2R1I3rkeb1cBDvZ6zHEfXTZCudxdVyx0gioSCTgEbtbsmfQBf1zu
+       U68pH4vUZlX6aN9/PGdh3KvnskiRT1ETrh3J+l1oOVfTO+TRtO81cQ41//TISBj13Vzj
+       qGv2QjKEarIcCM5V3tDqXdqrqs8Ld1AjZhxN9NeDZq8xBHm09anrRzJ0qp6pLViwwkCR
+       zbWSsAdmOilFdVH8/JfqRUF4P77/WhH7g3UeA9wSNjWoQo7MUNKnMdiB4xhJX5+nrA7C
+       TniQ==
+Received: by 10.66.77.168 with SMTP id t8mr26942201paw.28.1344354282162;
+       Tue, 07 Aug 2012 08:44:42 -0700 (PDT)
+Received: from root ([115.204.231.222])
+       by mx.google.com with ESMTPS id hx9sm11385213pbc.68.2012.08.07.08.44.40
+       (version=SSLv3 cipher=OTHER); Tue, 07 Aug 2012 08:44:41 -0700 (PDT)
+Date: Tue, 7 Aug 2012 23:44:45 +0800
+From: tupeng212 <tupeng212@gmail.com>
+To: xen-devel <xen-devel@lists.xen.org>
+X-Priority: 3
+X-GUID: 4CCF6910-D5EA-4E57-987E-088212FED4CD
+X-Has-Attach: no
+X-Mailer: Foxmail 7.0.1.87[cn]
+Mime-Version: 1.0
+Message-ID: <201208070018394210381@gmail.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+Reply-To: tupeng212 <tupeng212@gmail.com>
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: multipart/mixed; boundary="===============1615201137309538416=="
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,FREEMAIL_FROM,
+       FSL_FREEMAIL_1,FSL_FREEMAIL_2,HTML_MESSAGE,RCVD_IN_DNSWL_MED,T_DKIM_INVALID,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: [Xen-devel] Big Bug:Time in VM running on xen goes slower
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+This is a multi-part message in MIME format.
+
+--===============1615201137309538416==
+Content-Type: multipart/alternative;
+       boundary="----=_001_NextPart421446275566_=----"
+
+This is a multi-part message in MIME format.
+
+------=_001_NextPart421446275566_=----
+Content-Type: text/plain;
+       charset="gb2312"
+Content-Transfer-Encoding: base64
+
+RGVhciBhbGw6DQpJIGhhdmUgZm91bmQgYSBiaWcgYnVnIG9uIHhlbiBjb25jZXJuaW5nIHRpbWUg
+dmlydHVhbGl6YXRpb24uIFBsZWFzZSBsZXQgbWUgc2hvdyB5b3UgdGhlIHdob2xlIHByb2Nlc3M6
+DQoNCjEgUGhlbm9tZW5vbg0Kd2hlbiBJIHJ1biBhIEpWTSBiYXNlZCBwcm9ncmFtIGluIElFIGJy
+b3dzZXIgaW4gbXkgVmlydHVhbCBNYWNoaW5lLCBJIGhhdmUgZm91bmQgY2xlYXJseSB0aGF0IHRp
+bWUgYXQgdGhlIHJpZ2h0IGJvdHRvbSBjb3JuZXIgaW4gbXkgVk0gZ2V0cyBtb3JlIHNsb3dlciBh
+bmQgc2xvd2VyLg0KSSBzdHVkaWVkIHRoZSBidWcgZGVlcGx5LCBhbmQgZm91bmQgc29tZXRoaW5n
+IGJlbG93Lg0KDQoyIFhlbg0Kdm14X3ZtZXhpdF9oYW5kbGVyICAtLT4gLi4uLi4uLi4uIC0tPiBo
+YW5kbGVfcnRjX2lvICAtLT4gcnRjX2lvcG9ydF93cml0ZSAgLS0+IHJ0Y190aW1lcl91cGRhdGUg
+LS0+IHNldCBSVEMncyBSRUdfQSB0byBhIGhpZ2ggcmF0ZS0tPiBjcmVhdGVfcGVyaW9kaWNfdGlt
+ZShkaXNhYmxlIHRoZSBmb3JtZXIgdGltZXIsIGFuZCBpbml0IGEgbmV3IG9uZSkNCldpbjcgaXMg
+aW5zdGFsbGVkIGluIHRoZSB2bS4gVGhpcyBjYWxsaW5nIHBhdGggaXMgZXhlY3V0ZWQgc28gZnJl
+cXVlbnQgdGhhdCBtYXkgY29tZSBkb3duIHRvIHNldCB0aGUgUlRDJ3MgUkVHX0EgaHVuZHJlZHMg
+b2YgdGltZXMgZXZlcnkgc2Vjb25kIGJ1dCB3aXRoIHRoZSBzYW1lIHJhdGUoOTc2LjU2MnVzKDEw
+MjRIWikpLCBpdCBpcyBzbyBhYm5vcm1hbCB0byBtZSB0byBzZWUgc3VjaCBiZWhhdmlvci4NCg0K
+MyBPUw0KSSBoYXZlIHRyaWVkIHRvIGZpbmQgd2h5IHRoZSB3aW43IHNldHRlZCBSVEMncyByZWdB
+IHNvIGZyZXF1ZW50bHkuIGZpbmFsbHkgZ290IHRoZSByZXN1bHQsIGFsbCB0aGF0IGNvbWVzIGZy
+b20gYSBmdW5jdGlvbjogTnRTZXRUaW1lclJlc29sdXRpb24gLS0+IDB4NzAsMHg3MQ0Kd2hlbiBJ
+IGF0dGFjaGVkIHdpbmRiZyBpbnRvIHRoZSBndWVzdCBPUywgSSBhbHNvIGZvdW5kIHRoZSBzb3Vy
+Y2UsIHRoZXkgYXJlIGFsbCBjYWxsZWQgZnJvbSBhIHVwcGVyIHN5c3RlbSBjYWxsIHRoYXQgY29t
+ZXMgZnJvbSBKVk0oSmF2YSBWaXJ0dWFsIE1hY2hpbmUpLg0KDQo0IEpWTQ0KSSBkb24ndCBrbm93
+IHdoeSBKVk0gY2FsbHMgTnRTZXRUaW1lclJlc29sdXRpb24gdG8gc2V0IHRoZSBzYW1lIFJUQydz
+IHJhdGUgZG93biAoOTc2LjU2MnVzKDEwMjRIWikpIHNvIGZyZXF1ZW50bHkuIA0KQnV0IGZvdW5k
+IHNvbWV0aGluZyB1c2VmdWwsIGluIHRoZSBqYXZhIHNvdXJjZSBjb2RlLCBJIGZvdW5kIG1hbnkg
+cGFsYWNlcyB3cml0dGVuIHdpdGggdGltZS5zY2hlZHVsZUF0Rml4ZWRSYXRlKCksIEluZm9ybWF0
+aW9ucyBmcm9tIEludGVybmV0IHRvbGQgbWUgdGhpcyBmdW5jdGlvbiBzY2hlZHVsZUF0Rml4ZWRS
+YXRlIGRlbWFuZHMgYSBoaWdoZXIgdGltZSByZXNvbHV0aW9uLiBzbyBJIGd1ZXNzIHRoZSB3aG9s
+ZSBwcm9jZXNzIG1heSBiZSB0aGlzOiANCmphdmEgd2FudHMgYSBoaWdoZXIgdGltZSByZXNvbHV0
+aW9uIHRpbWVyLCBzbyBpdCBjaGFuZ2VzIHRoZSBSVEMncyByYXRlIGZyb20gMTUuNjI1bXMoNjRI
+WikgdG8gOTc2LjU2MnVzKDEwMjRIWiksIGFmdGVyIHRoYXQsIGl0IHJlY29uZmlybXMgd2hldGhl
+ciB0aGUgdGltZSBpcyBhY2N1cmF0ZSBhcyBleHBlY3RlZCwgYnV0IGl0J3Mgc29ycnkgdG8gZ2V0
+IHNvbWUgbm90aWNlIGl0ICdzIG5vdCBhY2N1cmF0ZSBlaXRoZXIuIHNvIGl0IHNldHMgIHRoZSBS
+VEMncyByYXRlIGZyb20gMTUuNjI1bXMoNjRIWikgdG8gOTc2LjU2MnVzKDEwMjRIWikgYWdhaW4g
+YW5kIGFnYWluLi4uLCBhdCBsYXN0LCByZXN1bHRzIGluIGEgc2xvdyBzeXN0ZW0gdGltZXIgaW4g
+dm0uDQp0aGVyZSBpcyBhbHNvIGEgZnJlcXVlbnRseSBjYWxsZWQgZnVuY3Rpb24gZ29pbmcgaW50
+byBteSBleWVzOiBRdWVyeVBlcmZvcm1hbmNlQ291bnRlci4NCg0KDQp3aGF0IG15IHByb2JsZW1z
+IGFyZToNCjEgd2h5IHRoZSBKVk0gc2V0cyB0aGUgc2FtZSBSVEMncyByYXRlIDk3NjU2MiBkb3du
+IHRvIHRoZSBjb21zIGFnYWluIGFuZCBhZ2Fpbj8gd2hhdCBoZSBmb3VuZCAgaXMgYWJub3JtYWw/
+DQoyIGV2ZW4gYSBhYm5vcm1hbCB1c2VyIHByb2dyYW0gY2FsbHMgY3JlYXRlX3BlcmlvZGljX3Rp
+bWUgdG8gc2V0IHRoZSByYXRlIGFnYWluIGFuZCBhZ2FpbiwgaG93IGRvIHdlIGF2b2lkIHRoZSBp
+bmZsdWVuY2UgdXBvbiBvdXIgdGltZSBpbiB2bT8gaG93IGRvIHdlIGNvbXBlbnNhdGUgdGhlIGVs
+YXBzZWQgdGltZSBhdCB0aGUgc3dpdGNoaW5nIHBvaW50PyBlc3BlY2lhbGx5IHdoZW4gdGhlIHN3
+aXRjaCBpcyBzbyBmcmVxdWVudC4NCg0KY2FuIHNvbWUgYmlnIGZpZ3VyZXMgZ2l2ZSBtZSBzb21l
+IGFkdmljZXMgb24gdGhpcz8NCnRoYW5rcyENCg0KDQoNCnR1cGVuZzIxMg==
+
+------=_001_NextPart421446275566_=----
+Content-Type: text/html;
+       charset="gb2312"
+Content-Transfer-Encoding: quoted-printable
+
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<HTML><HEAD>
+<META http-equiv=3DContent-Type content=3D"text/html; charset=3Dgb2312">
+<STYLE>
+BLOCKQUOTE {
+       MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; MARGIN-LEFT: 2em
+}
+OL {
+       MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px
+}
+UL {
+       MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px
+}
+P {
+       MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px
+}
+BODY {
+       FONT-SIZE: 10.5pt; COLOR: #000000; LINE-HEIGHT: 1.5; FONT-FAMILY: =CB=CE=
+=CC=E5
+}
+</STYLE>
+
+<META content=3D"MSHTML 6.00.2900.5512" name=3DGENERATOR></HEAD>
+<BODY style=3D"MARGIN: 10px">
+<DIV>Dear all:</DIV>
+<DIV style=3D"TEXT-INDENT: 2em">I have found a big bug on xen concerning t=
+ime=20
+virtualization. Please let me show you the whole process:</DIV>
+<DIV style=3D"TEXT-INDENT: 2em">&nbsp;</DIV>
+<DIV>1 <SPAN class=3Dshort_text lang=3Den id=3Dresult_box closure_uid_bpq0=
+rs=3D"95"=20
+a=3D"undefined" f=3D"4"><SPAN class=3Dhps=20
+closure_uid_bpq0rs=3D"214">Phenomenon</SPAN></SPAN></DIV>
+<DIV><SPAN class=3Dshort_text lang=3Den closure_uid_bpq0rs=3D"95" a=3D"und=
+efined"=20
+f=3D"4"><SPAN class=3Dhps closure_uid_bpq0rs=3D"214">when I run a JVM base=
+d program in=20
+IE browser in my Virtual Machine, I have found clearly that time at the ri=
+ght=20
+bottom&nbsp;corner&nbsp;in my&nbsp;VM gets more slower and=20
+slower.</SPAN></SPAN></DIV>
+<DIV><SPAN class=3Dshort_text lang=3Den closure_uid_bpq0rs=3D"95" a=3D"und=
+efined"=20
+f=3D"4"><SPAN class=3Dhps closure_uid_bpq0rs=3D"214">I studied the bug dee=
+ply, and=20
+found something below.</SPAN></SPAN></DIV>
+<DIV><SPAN class=3Dshort_text lang=3Den closure_uid_bpq0rs=3D"95" a=3D"und=
+efined"=20
+f=3D"4"><SPAN class=3Dhps closure_uid_bpq0rs=3D"214"></SPAN></SPAN>&nbsp;<=
+/DIV>
+<DIV><SPAN class=3Dshort_text lang=3Den closure_uid_bpq0rs=3D"95" a=3D"und=
+efined"=20
+f=3D"4"><SPAN class=3Dhps closure_uid_bpq0rs=3D"214">2 Xen</SPAN></SPAN></=
+DIV>
+<DIV><SPAN class=3Dshort_text lang=3Den closure_uid_bpq0rs=3D"95" a=3D"und=
+efined"=20
+f=3D"4"><SPAN class=3Dhps closure_uid_bpq0rs=3D"214">vmx_vmexit_handler&nb=
+sp; --&gt;=20
+......... --&gt; handle_rtc_io&nbsp; --&gt; rtc_ioport_write&nbsp; --&gt;=20
+rtc_timer_update --&gt; set RTC's REG_A to a high rate--&gt;=20
+create_periodic_time(disable the former timer, and init a new=20
+one)</SPAN></SPAN></DIV>
+<DIV><SPAN class=3Dshort_text lang=3Den closure_uid_bpq0rs=3D"95" a=3D"und=
+efined"=20
+f=3D"4"><SPAN class=3Dhps closure_uid_bpq0rs=3D"214">Win7 is installed in =
+the vm. This=20
+calling path is executed so frequent that may come down to set the RTC's R=
+EG_A=20
+hundreds of times every second but with the same rate(<FONT=20
+size=3D2>976.562us(1024HZ)</FONT>), it is so abnormal to me to see such=20
+behavior.</SPAN></SPAN></DIV>
+<DIV><SPAN class=3Dshort_text lang=3Den closure_uid_bpq0rs=3D"95" a=3D"und=
+efined"=20
+f=3D"4"><SPAN class=3Dhps closure_uid_bpq0rs=3D"214"></SPAN></SPAN>&nbsp;<=
+/DIV>
+<DIV><SPAN class=3Dshort_text lang=3Den closure_uid_bpq0rs=3D"95" a=3D"und=
+efined"=20
+f=3D"4"><SPAN class=3Dhps closure_uid_bpq0rs=3D"214">3 OS</SPAN></SPAN></D=
+IV>
+<DIV><SPAN class=3Dshort_text lang=3Den closure_uid_bpq0rs=3D"95" a=3D"und=
+efined"=20
+f=3D"4"><SPAN class=3Dhps closure_uid_bpq0rs=3D"214">I have tried to find =
+why the win7=20
+setted RTC's regA so frequently. finally got the result, all that&nbsp;com=
+es=20
+from&nbsp;a function: <FONT size=3D2><FONT=20
+color=3D#cc0000>NtSetTimerResolution</FONT> --&gt;=20
+0x70,0x71</FONT></SPAN></SPAN></DIV>
+<DIV><SPAN class=3Dshort_text lang=3Den closure_uid_bpq0rs=3D"95" a=3D"und=
+efined"=20
+f=3D"4"><SPAN class=3Dhps closure_uid_bpq0rs=3D"214"><FONT size=3D2>when I=
+ attached=20
+windbg into the guest OS, I also found the source, they are all called fro=
+m a=20
+upper system call that comes from JVM(Java Virtual=20
+Machine).</FONT></SPAN></SPAN></DIV>
+<DIV><SPAN class=3Dshort_text lang=3Den closure_uid_bpq0rs=3D"95" a=3D"und=
+efined"=20
+f=3D"4"><SPAN class=3Dhps closure_uid_bpq0rs=3D"214"><FONT=20
+size=3D2></FONT></SPAN></SPAN><SPAN class=3Dshort_text lang=3Den=20
+closure_uid_bpq0rs=3D"95" a=3D"undefined" f=3D"4"><SPAN class=3Dhps=20
+closure_uid_bpq0rs=3D"214"><FONT size=3D2></FONT></SPAN></SPAN>&nbsp;</DIV=
+>
+<DIV><SPAN class=3Dshort_text lang=3Den closure_uid_bpq0rs=3D"95" a=3D"und=
+efined"=20
+f=3D"4"><SPAN class=3Dhps closure_uid_bpq0rs=3D"214"><FONT size=3D2>4=20
+JVM</FONT></SPAN></SPAN></DIV>
+<DIV><SPAN class=3Dshort_text lang=3Den closure_uid_bpq0rs=3D"95" a=3D"und=
+efined"=20
+f=3D"4"><SPAN class=3Dhps closure_uid_bpq0rs=3D"214"><FONT size=3D2>I don'=
+t know why JVM=20
+calls <FONT color=3D#cc0000>NtSetTimerResolution</FONT> to set the same RT=
+C's rate=20
+down (976.562us(1024HZ)) so frequently. </FONT></SPAN></SPAN></DIV>
+<DIV><SPAN class=3Dshort_text lang=3Den closure_uid_bpq0rs=3D"95" a=3D"und=
+efined"=20
+f=3D"4"><SPAN class=3Dhps closure_uid_bpq0rs=3D"214"><FONT size=3D2>But fo=
+und something=20
+useful, </FONT></SPAN></SPAN><SPAN class=3Dshort_text lang=3Den=20
+closure_uid_bpq0rs=3D"95" a=3D"undefined" f=3D"4"><SPAN class=3Dhps=20
+closure_uid_bpq0rs=3D"214"><FONT size=3D2>in the java source code, I found=
+ many=20
+palaces written with time.scheduleAtFixedRate(), Informations from Interne=
+t told=20
+me this function scheduleAtFixedRate demands a&nbsp;higher time resolution=
+.=20
+</FONT></SPAN></SPAN><SPAN class=3Dshort_text lang=3Den closure_uid_bpq0rs=
+=3D"95"=20
+a=3D"undefined" f=3D"4"><SPAN class=3Dhps closure_uid_bpq0rs=3D"214"><FONT=
+ size=3D2>so I=20
+guess the whole process may be this: </FONT></SPAN></SPAN></DIV>
+<DIV><SPAN class=3Dshort_text lang=3Den closure_uid_bpq0rs=3D"95" a=3D"und=
+efined"=20
+f=3D"4"><SPAN class=3Dhps closure_uid_bpq0rs=3D"214"><FONT size=3D2>java w=
+ants a higher=20
+time resolution timer, so it changes the RTC's rate from 15.625ms(64HZ) to=
+=20
+976.562us(1024HZ), after that, it reconfirms whether the time is accurate =
+as=20
+expected, but it's sorry to get some notice it 's not accurate either. so =
+it=20
+sets&nbsp; the RTC's rate from 15.625ms(64HZ) to 976.562us(1024HZ) again a=
+nd=20
+again..., at last, results in a slow system timer in=20
+vm.</FONT></SPAN></SPAN></DIV>
+<DIV><SPAN class=3Dshort_text lang=3Den closure_uid_bpq0rs=3D"95" a=3D"und=
+efined"=20
+f=3D"4"><SPAN class=3Dhps closure_uid_bpq0rs=3D"214"><FONT size=3D2>there =
+is also a=20
+frequently called function going into my eyes:=20
+QueryPerformanceCounter.</FONT></SPAN></SPAN></DIV>
+<DIV style=3D"TEXT-INDENT: 2em">&nbsp;</DIV>
+<DIV style=3D"TEXT-INDENT: 2em">&nbsp;</DIV>
+<DIV>what my problems are:</DIV>
+<DIV>1 why the JVM sets the same RTC's rate 976562 down to the coms again =
+and=20
+again? what he found&nbsp; is abnormal?</DIV>
+<DIV>2 even a abnormal user program calls create_periodic_time to set the =
+rate=20
+again and again, how do we avoid the influence upon our time in vm? how do=
+ we=20
+compensate the elapsed time at the switching point? especially when the sw=
+itch=20
+is so frequent.</DIV>
+<DIV>&nbsp;</DIV>
+<DIV>can some big figures give me some advices on this?</DIV>
+<DIV>thanks!</DIV>
+<HR style=3D"WIDTH: 210px; HEIGHT: 1px" align=3Dleft color=3D#b5c4df SIZE=
+=3D1>
+
+<DIV><SPAN>tupeng212</SPAN></DIV>
+<DIV><SPAN></SPAN>&nbsp;</DIV>
+<DIV><SPAN></SPAN>&nbsp;</DIV>
+<DIV><SPAN></SPAN>&nbsp;</DIV></BODY></HTML>
+
+------=_001_NextPart421446275566_=------
+
+
+
+--===============1615201137309538416==
+Content-Type: text/plain; charset="us-ascii"
+MIME-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Content-Disposition: inline
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
+--===============1615201137309538416==--
+
+
+
diff --git a/config/examples/test/corpus/<2012081023124696835343@gmail.com> b/config/examples/test/corpus/<2012081023124696835343@gmail.com>
new file mode 100644 (file)
index 0000000..cc1d24e
--- /dev/null
@@ -0,0 +1,836 @@
+From xen-devel-bounces@lists.xen.org Fri Aug 10 16:23:34 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 10 Aug 2012 16:23:34 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1Szr3i-0003pp-89
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 10 Aug 2012 16:23:34 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1Szqze-0003HD-4k; Fri, 10 Aug 2012 15:19:18 +0000
+Received: from mail27.messagelabs.com ([193.109.254.147])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <tupeng212@gmail.com>) id 1Szqzc-0003H0-9c
+       for xen-devel@lists.xen.org; Fri, 10 Aug 2012 15:19:16 +0000
+X-Env-Sender: tupeng212@gmail.com
+X-Msg-Ref: server-5.tower-27.messagelabs.com!1344611947!6179093!1
+X-Originating-IP: [209.85.160.45]
+X-SpamReason: No, hits=2.5 required=7.0 tests=BODY_RANDOM_LONG,
+       HTML_50_60,HTML_MESSAGE,MAILTO_TO_SPAM_ADDR,MANY_EXCLAMATIONS,
+       MIME_BASE64_TEXT, MIME_BOUND_NEXTPART, ML_RADAR_SPEW_LINKS_14,
+       RCVD_BY_IP, spamassassin: 
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 29009 invoked from network); 10 Aug 2012 15:19:08 -0000
+Received: from mail-pb0-f45.google.com (HELO mail-pb0-f45.google.com)
+       (209.85.160.45)
+       by server-5.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
+       10 Aug 2012 15:19:08 -0000
+Received: by pbbrp12 with SMTP id rp12so2892304pbb.32
+       for <xen-devel@lists.xen.org>; Fri, 10 Aug 2012 08:19:06 -0700 (PDT)
+DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
+       h=date:from:to:cc:reply-to:subject:references:x-priority:x-guid
+       :x-has-attach:x-mailer:mime-version:message-id:content-type;
+       bh=8zGlm2NVOf217ZK4JiOo4mB3iXyPrQMaEjqW76JIHGs=;
+       b=J6hK26y4mSk59Et9ljUC+oS2GY5YI5jqQtP3GIZeFpYP3p0cj06D+SsCVgOQJQa6j4
+       vZDZdKTzGcldyvIlf4nvK8Tyz2yXNRj6Gs0eFVzuPB3c0PvLdtxzGGrdqx1eJYLCuNXX
+       VwSgDsvSJTwzAAEdZFmbl97jhAguqVX0MHX0+ZEUfHJ1Tdlv4HbiOY0Up1ij0OIBhbIv
+       LeII3DJdWB9OetCd2qPygVeYoBTd6pGtAiOd0xldBS5B++K7z347eL5L7GBvY4GVlsr1
+       /68LJcX2/3e+ZnWNp6EVPmlM0r+DwOB6m2PwW81JxEJQHAqcfw9bE52Wiqtz/rDZOsNI
+       v6Hg==
+Received: by 10.68.235.236 with SMTP id up12mr13299570pbc.79.1344611946411;
+       Fri, 10 Aug 2012 08:19:06 -0700 (PDT)
+Received: from root ([115.199.255.118])
+       by mx.google.com with ESMTPS id rz10sm3519994pbc.32.2012.08.10.08.17.59
+       (version=SSLv3 cipher=OTHER); Fri, 10 Aug 2012 08:19:05 -0700 (PDT)
+Date: Fri, 10 Aug 2012 23:17:59 +0800
+From: tupeng212 <tupeng212@gmail.com>
+To: "Jan Beulich" <JBeulich@suse.com>
+References: <201208070018394210381@gmail.com>, 
+       <50224B7402000078000937DA@nat28.tlf.novell.com>
+X-Priority: 3
+X-GUID: EA6B0DE3-8EB2-44C6-BEFC-11C58EB28B8B
+X-Has-Attach: no
+X-Mailer: Foxmail 7.0.1.87[cn]
+Mime-Version: 1.0
+Message-ID: <2012081023124696835343@gmail.com>
+Cc: xen-devel <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+Reply-To: tupeng212 <tupeng212@gmail.com>
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: multipart/mixed; boundary="===============4979082272455034970=="
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-3.8 required=5.0 tests=BAYES_00,FREEMAIL_FROM,
+       FSL_FREEMAIL_1,FSL_FREEMAIL_2,HTML_MESSAGE,MIME_HTML_MOSTLY,RCVD_IN_DNSWL_MED,
+       T_DKIM_INVALID,T_RP_MATCHES_RCVD autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] Big Bug:Time in VM goes slower;
+       foud Solution but demand Judgement! A Interesting Story!
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+This is a multi-part message in MIME format.
+
+--===============4979082272455034970==
+Content-Type: multipart/alternative;
+       boundary="----=_001_NextPart462848748572_=----"
+
+This is a multi-part message in MIME format.
+
+------=_001_NextPart462848748572_=----
+Content-Type: text/plain;
+       charset="gb2312"
+Content-Transfer-Encoding: base64
+
+RGVhciBKYW4gQmV1bGljaDoNClRoYW5rcyBmb3IgcmVwbHkhIFlvdSBhcmUgYSB2ZXJ5IGNsZXZl
+ciBtYW4sIHlvdSBoYXZlIHNlbnNlZCBzb21lIHRoaW5nIGltbWVkaWF0ZWx5IGFzIEkgZm91bmQg
+bGF0ZWx5LiBQbGVhc2UgZm9yZ2l2ZSBteSBzbyBsYXRlbHkgcmVwbHkhDQoNCjEgd2h5IEpWTSBz
+ZXQgdGhlIHNhbWUgcmF0ZSBkb3duIHNvIGZyZXF1ZW50bHkgPw0KdGhlIGZpcnN0IGFjaGlldmVt
+ZW50IEkgd2lsbCBzaG93IGlzIEkgZm91bmQgdGhlIGFjdGlvbiBpbiBKVk0gYW5kIHRoZSByZWFz
+b24gYnkgZGVidWdnaW5nIGRpc2Fzc2VtYmx5IGNvZGUuDQppdCBzZWVtcyB0byBtZSBsaWtlIHRo
+aXMgaW4gSlZNOg0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAxIHdo
+YXQgaGFwcGVuZWQgaW4gSlZNID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0K
+d2hpbGUgKGxvb3ApLy9vciBhIGZyZXF1ZW50IGNhbGwNCnsNCnRpbWVCZWdpblBlcmlvZCgpIC0t
+PiBOdFNldFRpbWVyUmVzb2x1dGlvbigxKGVuYmxlKSkNCnJjID0gV2FpdEZvck11bHRpcGxlT2Jq
+ZWN0cyg1LCAweDIyMjIyMjIsIDAsIDEpOyAvL3RoZSBsYXN0IHBhcmFtZXRlciBkZW1hbmRzIDFt
+cyB0aW1lciByZXNvbHV0aW9uDQppZiAocmMgPSBUSU1FT1VUKXsNCmJyZWFrOw0KfQ0KZWxzZXsN
+CmNhbGwgMHg0NDQ0NDQ0NDsNCn0NCnRpbWVFbmRQZXJpb2QoKSAtLT4gTnRTZXRUaW1lclJlc29s
+dXRpb24oMChkaXNhYmxlKSkNCn0NCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
+PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
+PT09PT09PT0NCnNvIGl0cyBiZWhhdmlvciBpcyB0b3RhbGx5IGxlZ2FsLCBmb3IgaXQgZGVtYW5k
+cyBoaWdoZXIgdGltZXIgcmVzb2x1dGlvbiAoaGVyZSAxbXMpLCBzbyBpdCBjYWxscyBOdFNldFRp
+bWVyUmVzb2x1dGlvbiB0byBpbXByb3ZlIHRoZSByZXNvbHV0aW9uLiANCml0IGlzIG5vdCBhcyBJ
+IGd1ZXNzZWQgInVuYWNjdXJhdGUiDQoNCkkgYWxzbyB3cm90ZSBhIHRlc3RlciBiZWxvdywgd2hp
+Y2ggY29uZmlybXMgbXkgc3VwcG9zZS4gaWYgeW91IGFyZSBpbnRlcmVzdGVkIGluIGl0ICwgeW91
+IGNhbiBidWlsZCBpdCBieSBNUydzIGNvbXBpbGVyLCBhbmQgYWZ0ZXIgcnVubmluZyB0aGUgdGVz
+dGVyIGluIFZNIGFib3V0IDEgbWludXRlcywgVk0ncyB0aW1lIHdpbGwgc2xvdy4NCj09PT09PT09
+PT09PT09PT09PT09PT09PT09PSAyIGEgdGVzdCB3aGljaCB3aWxsIGxlYWQgdG8gdHJpZ2dlciBz
+bG93aW5nIFZNJ3MgaW5uZXIgdGltZT09PT09PT09DQojaW5jbHVkZSA8c3RkaW8uaD4NCiNpbmNs
+dWRlIDx3aW5kb3dzLmg+DQp0eXBlZGVmIGludCAoX19zdGRjYWxsICpOVFNFVFRJTUVSKShJTiBV
+TE9ORyBSZXF1ZXN0ZWRSZXNvbHV0aW9uLCBJTiBCT09MRUFOIFNldCwgT1VUIFBVTE9ORyBBY3R1
+YWxSZXNvbHV0aW9uICk7DQp0eXBlZGVmIGludCAoX19zdGRjYWxsICpOVFFVRVJZVElNRVIpKE9V
+VCBQVUxPTkcgICBNaW5pbXVtUmVzb2x1dGlvbiwgT1VUIFBVTE9ORyBNYXhpbXVtUmVzb2x1dGlv
+biwgT1VUIFBVTE9ORyBDdXJyZW50UmVzb2x1dGlvbiApOw0KaW50IG1haW4oKQ0Kew0KRFdPUkQg
+bWluX3JlcyA9IDAsIG1heF9yZXMgPSAwLCBjdXJfcmVzID0gMCwgcmV0ID0gMDsNCkhNT0RVTEUg
+IGhkbGwgPSBOVUxMOw0KaGRsbCA9IEdldE1vZHVsZUhhbmRsZSgibnRkbGwuZGxsIik7DQpOVFNF
+VFRJTUVSIEFkZHJOdFNldFRpbWVyID0gMDsNCk5UUVVFUllUSU1FUiBBZGRyTnRRdWV5VGltZXIg
+PSAwOw0KQWRkck50U2V0VGltZXIgPSAoTlRTRVRUSU1FUikgR2V0UHJvY0FkZHJlc3MoaGRsbCwg
+Ik50U2V0VGltZXJSZXNvbHV0aW9uIik7DQpBZGRyTnRRdWV5VGltZXIgPSAoTlRRVUVSWVRJTUVS
+KUdldFByb2NBZGRyZXNzKGhkbGwsICJOdFF1ZXJ5VGltZXJSZXNvbHV0aW9uIik7DQoNCndoaWxl
+ICgxKQ0Kew0KcmV0ID0gQWRkck50UXVleVRpbWVyKCZtaW5fcmVzLCAmbWF4X3JlcywgJmN1cl9y
+ZXMpOw0KcHJpbnRmKCJtaW5fcmVzID0gJWQsIG1heF9yZXMgPSAlZCwgY3VyX3JlcyA9ICVkXG4i
+LG1pbl9yZXMsIG1heF9yZXMsIGN1cl9yZXMpOw0KU2xlZXAoMTApOw0KcmV0ID0gQWRkck50U2V0
+VGltZXIoMTAwMDAsIDEsICZjdXJfcmVzKTsNClNsZWVwKDEwKTsNCnJldCA9IEFkZHJOdFNldFRp
+bWVyKDEwMDAwLCAwLCAmY3VyX3Jlcyk7DQpTbGVlcCgxMCk7DQp9DQpyZXR1cm4gMDsNCn0NCj09
+PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
+PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCg0KMiBCdWcgaW4geGVuDQpKVk0g
+aXMgT0ssIHNvIGxlZnQgdGhlIGJ1ZyB0byB4ZW4sIEkgaGF2ZSBmb3VuZCBib3RoIHRoZSByZWFz
+b24gYW5kIHNvbHV0aW9uLiBBcyBKYW4gbWVudGlvbmVkIGF2b2lkaW5nIGNhbGwgY3JlYXRlX3Bl
+cmlvZGljX3RpbWUsIGl0IGdvdCBtdWNoIGJldHRlci4gc28gSSBtb2RpZmllZCBpdCBsaWtlIHRo
+aXMsIGlmIHRoZSBwdCB0aW1lciBpcyBjcmVhdGVkIGJlZm9yZSwgc2V0dGluZyBSZWdBIGRvd24g
+aXMganVzdCBjaGFuZ2luZyB0aGUgcGVyaW9kIHZhbHVlLCBzbyBJIGRvIG5vdGhpbmcgZXhjZXB0
+IGp1c3Qgc2V0dGluZyBwZXJpb2QgdG8gcHQncyBmaWVsZC4gaXQgaXMgT0shDQoNCkkgdGhvdWdo
+dCBwdC0+c2NoZWR1bGVkIGlzIHJlc3BvbnNpYmxlIGZvciBBY2N1cmFjeSBvZiBwdF9wcm9jZXNz
+X21pc3NlZF90aWNrcywgc28gd2Ugc2hvdWxkIG5vdCBpbnRlcmZlcmUgaXQgYXQgYW55IG91dGVy
+IGludmFkaW5nIG9yIGludGVycnVwdGlvbiwgc28gSSBsZXQgY3JlYXRlX3BlcmlvZGljX3RpbWUg
+Y2hhbmdlZCBldmVyeXRoaW5nIGJ1dCByZXNlcnZlZCBvbmx5IG9uZSBmaWxlZCBwdC0+c2NoZWR1
+bGVkIGFzIHNldHRlZCBiZWZvcmUsIEkgYW0gdmVyeSBoYXBweSB0byBmaW5kIHRoZSBidWcgZGlz
+YXBwZWFyLiBBZnRlciBJIHJlY2hlY2tlZCB5b3VyIG1haWwgSSBmb3VuZCB5b3UgYXJlIHJlYWxs
+eSBhIHZlcnkgc21hcnQgbWFuLCB5b3UgaGF2ZSBwcmVkaWN0ZWQgc29tZXRoaW5nIQ0KDQpEaWQg
+eW91IGZ1cnRoZXIgY2hlY2sgd2hldGhlciB0aGUgYWRqdXN0bWVudHMgZG9uZSB0byB0aGUNCnNj
+aGVkdWxlZCB0aW1lIGluIGNyZWF0ZV9wZXJpb2RpY190aW1lKCkgYXJlIHJlc3BvbnNpYmxlIGZv
+ciB0aGlzDQpjb25jbHVzaW9uIG9mIHRoZSBKVk0gKGNvdWxkIGJlIGVmZmVjdGl2ZWx5IGRvdWJs
+aW5nIHRoZSBmaXJzdA0KaW50ZXJ2YWwgaWYgSFZNX1BBUkFNX1ZQVF9BTElHTiBpcyBzZXQsIGFu
+ZCB3aXRoIHRoZSBoaWdoIHJhdGUNCm9mIHJlLXNldHMgdGhpcyBjb3VsZCBjZXJ0YWlubHkgaGF2
+ZSBhIG1vcmUgdmlzaWJsZSBlZmZlY3QgdGhhbg0KaW50ZW5kZWQpPw0KDQpBZnRlciBJIHRyYWNr
+ZWQgcHQtPnNjaGVkdWxlZCwgbW9yZSBhbmQgbW9yZSB0cnV0aCBzdXJmYWNlZC4gSSB3aWxsIHNo
+b3cgeW91IHRoZSBSVEMncyBzcG90dGluZyBhcyBJIG9ic2VydmVkLg0Kbm9ybWFsIHNwb3QgaXMg
+bGlrZSB0aGlzOg0KMCAgICAgICAgICAgICAgIDEgICAgICAgICAgICAgICAyICAgICAgICAgICAg
+ICAgMyAgICAgICAgICAgICAgIDQgICAgICAgICAgICAgICA1DQouICAgICAgICAgICAgICAgLiAg
+ICAgICAgICAgICAgIC4gICAgICAgICAgICAgICAuICAgICAgICAgICAgICAgLiAgICAgICAgICAg
+ICAgIC4gICAgICAobm9ybWFsIHNwb3QpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
+IHwocHQtPnNjaGVkdWxlZCBhdCAyKQ0KDQp3aGVuIGNyZWF0ZV9wZXJpb2RpY190aW1lIGludGVy
+ZmVyZSBwdC0+c2NoZWR1bGUgYXQgTk9XDQowICAgICAgICAgICAgICAgMSAgICAgICAgICAgICAg
+IDIgICAgICAgICAgICAgICAzICAgICAgICAgICAgICAgNCAgICAgICAgICAgICAgIDUNCi4gICAg
+ICAgICAgICAgICAuICAgICAgICAgICAgICAgLiAgICAgICAgICAgICAgIC4gICAgICAgICAgICAg
+ICAuICAgICAgICAgICAgICAgLiAgICAgIA0KICAgICAgICAgICAgICAgICAgICB8KE5PVykgICAg
+ICAgICAgICAgICAgICAgICAgfCAobmV3IHB0LT5zY2hlZHVsZWQgaXMgbW92ZWQgdG8gMyBhZnRl
+ciBBTElHTikNCg0Kc28gaXQgcmVhbCBzcG90IGlzIGxpa2UgdGhpczoNCi4gICAgICAgICAgICAg
+ICAuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gICAgICAgICAgICAgICAuICAgICAg
+ICAgICAgICAgLiAgICAgICANCjAgICAgICAgICAgICAgICAxICAgICAgICAgICAgICAgMiAgICAg
+ICAgICAgICAgIDMgICAgICAgICAgICAgICA0ICAgICAgICAgICAgICAgNQ0KICAgICAgICAgICAg
+ICAgICAgICAgICAgICAgICAgICB8KGhlcmUgd2UgbWlzc2VkIG9uZSBzcG90IGF0IDIpDQoNCnRo
+ZSBvcmlnaW5hbCBwdC0+c2NoZWR1bGVkIGlzIGF0IDIgYmVmb3JlIGNyZWF0ZV9wZXJpb2RpY190
+aW1lIHdpbGwgYmUgZXhlY3V0ZWQsIGJ1dCBhZnRlciBpdCwgcHQtPnNjaGVkdWxlZCBpcyBtb3Zl
+ZCB0byAzLCBzbyBtaXNzZWQgb25lIHNwb3QgdG8gR3Vlc3RXaW4uDQoNCg0KMyB3aG8gaXMgd3Jv
+bmc/DQpJIGRvdWJ0IGFsaWduX3RpbWVyIHdvcnRoIHN1c3BlY3RlZDoNCnNfdGltZV90IGFsaWdu
+X3RpbWVyKHNfdGltZV90IGZpcnN0dGljaywgdWludDY0X3QgcGVyaW9kKQ0Kew0KICAgIGlmICgg
+IXBlcmlvZCApDQogICAgICAgIHJldHVybiBmaXJzdHRpY2s7DQoNCiAgICByZXR1cm4gZmlyc3R0
+aWNrICsgKHBlcmlvZCAtIDEpIC0gKChmaXJzdHRpY2sgLSAxKSAlIHBlcmlvZCk7IC8vaW4geGVu
+NC54DQogICAgcmV0dXJuIGZpcnN0dGljayAgLSAoKGZpcnN0dGljayAtIDEpICUgcGVyaW9kKTsv
+L2l0IHNob3VsZCBiZSBhbGlnbmVkIGxpa2UgdGhpcy4NCn0NCg0KSSBoYXZlIGFsc28gZm91bmQg
+YW5vdGhlciB1cGRhdGluZyBSVEMncyBSZWdBIGluIHRvb2xzXGlvZW11LXFlbXUteGVuXGh3XE1D
+YzE0NjgxOHJ0Yy5jOiANCg0KICAgIGlmIChwZXJpb2RfY29kZSAhPSAwICYmIChzLT5jbW9zX2Rh
+dGFbUlRDX1JFR19CXSAmIFJFR19CX1BJRSkpIHsNCiNlbmRpZg0KICAgICAgICBpZiAocGVyaW9k
+X2NvZGUgPD0gMikNCiAgICAgICAgICAgIHBlcmlvZF9jb2RlICs9IDc7DQogICAgICAgIC8qIHBl
+cmlvZCBpbiAzMiBLaHogY3ljbGVzICovDQogICAgICAgIHBlcmlvZCA9IDEgPDwgKHBlcmlvZF9j
+b2RlIC0gMSk7DQojaWZkZWYgSVJRX0NPQUxFU0NFX0hBQ0sNCiAgICAgICAgaWYocGVyaW9kICE9
+IHMtPnBlcmlvZCkNCiAgICAgICAgICAgIHMtPmlycV9jb2FsZXNjZWQgPSAocy0+aXJxX2NvYWxl
+c2NlZCAqIHMtPnBlcmlvZCkgLyBwZXJpb2Q7DQogICAgICAgIHMtPnBlcmlvZCA9IHBlcmlvZDsN
+CiNlbmRpZg0KICAgICAgICAvKiBjb21wdXRlIDMyIGtoeiBjbG9jayAqLw0KICAgICAgICBjdXJf
+Y2xvY2sgPSBtdWxkaXY2NChjdXJyZW50X3RpbWUsIDMyNzY4LCB0aWNrc19wZXJfc2VjKTsgLy9o
+ZXJlIEkgZG9uJ3QgbWFrZSBzZW5zZSBpdCAuLi4uLi4NCiAgICAgICAgbmV4dF9pcnFfY2xvY2sg
+PSAoY3VyX2Nsb2NrICYgfihwZXJpb2QgLSAxKSkgKyBwZXJpb2Q7DQogICAgICAgIHMtPm5leHRf
+cGVyaW9kaWNfdGltZSA9IG11bGRpdjY0KG5leHRfaXJxX2Nsb2NrLCB0aWNrc19wZXJfc2VjLCAz
+Mjc2OCkgKyAxOw0KICAgICAgICBxZW11X21vZF90aW1lcihzLT5wZXJpb2RpY190aW1lciwgcy0+
+bmV4dF9wZXJpb2RpY190aW1lKTsNCg0KDQoNCkkgZG9uJ3Qga25vdyB3aGF0IGhhcHBlbmVkIGlu
+IHJlYWwgUlRDLCB0aGUgbW9zdCBwb3B1bGFyIFJUQyBjaGlwIGlzIE1DMTQ2ODE4LCBJIGhhdmUg
+Y2hlY2tlZCBpdHMgZGF0YXNoZWV0IGJ1dCBmb3VuZCBub3RoaW5nIEkgd2FudC4gV2hhdCBJIHdh
+bnQgdG8ga25vdyBpcyBXaGVuIGEgcmVhbCBvdXRlciAweDcxIGNvbWUgZG93biB0byBzZXQgUlRD
+J3MgUmVnQSwgd2hvIGRvZXMgaXQgY2hhbmdlIG9yIHNwb3QgdGhlIG5leHQgcGVyaW9kaWMgaW50
+ZXJydXB0IHRpbWUgPyBJbiBteSBjYXNlLCB0aGUgcGVyaW9kIGRvZXNuJ3QgY2hhbmdlLCBpdCBt
+aXNzZXMgb25lIHNwb3QsIGV2ZW4gaWYgdGhlIHBlcmlvZCBjaGFuZ2VzIGhvdyB3aWxsIGl0IHNw
+b3QgdGhlIG5leHQgc2NoZWR1bGVkIHRpbWU/DQpJIG5lZWQgdGhlIG1hbiB3aG8ga25vd3MgdGhl
+IGRldGFpbHMgZGVlcGx5IGNvbmNlcm5pbmcgd2hlbiB1cGRhdGluZyBhIHJlYWwgUlRDJ3MgcmVn
+QSwgaG93IHdpbGwgaXQgdGFrZSBpdCBpbnRvIGVmZmVjdCwgYW5kIG1ha2UgdGhlIHRyYW5zaXRp
+b24gc21vb3RobHkgaW4gYSByZWFsIFJUQy4NCg0KSSBoYXZlIGJlZW4gdmVyeSBhbnhpb3VzIGlu
+IGFub3RoZXIgYXNwZWN0LCBpbiBvdXIgdmlydHVhbCBlbnZpcm9ubWVudCwgYXQgY3JlYXRlX3Bl
+cmlvZGljX3RpbWUsIE5PVygpIG1heSBiZSBmYXIgbW9yZSBsYXRlciB0aGFuIHB0LT5zY2hlZHVs
+ZWQgc2V0dGVkIGJlZm9yZSwgYXQgdGhpcyBwb2ludCwgdGhlIG5ldyBwdC0+c2NoZWR1bGVkIG1h
+eSBiZSBmYXIgbW9yZSBiZWhpbmQgdGhlIG9uZSBhZnRlciBleGVjdXRpbmcgY3JlYXRlX3Blcmlv
+ZGljX3RpbWUuIFNvIHRoZSBpbnRlcnZhbCBiZXR3ZWVuIGJvdGggd2hpY2ggc2hvdWxkIGJlIHRy
+ZWF0ZWQgYnkgcHRfcHJvY2Vzc19taXNzZWRfdGlja3MgdG8gdGhlIGZvcm1lciBwdC0+c2NoZWR1
+bGVkJ3MgcGVyaW9kIGlzIG5vdyBhbGwgdGhyb3duIGF3YXkgYXMgbm90aGluZyBtaXNzZWQuIFNv
+IEkgdGhpbmsgaG93IHRvIGhhbmRsZSB0aGUgaW50ZXJ2YWwgYmV0d2VlbiBib3RoIHB0LT5zY2hl
+ZHVsZWQgd29ydGggY29uc2lkZXJhdGlvbiBpbiBjcmVhdGVfcGVyaW9kaWNfdGltZS4NCg0KVGhh
+bmtzIQ0KDQoNCg0KDQp0dXBlbmcyMTINCg0KRnJvbTogSmFuIEJldWxpY2gNCkRhdGU6IDIwMTIt
+MDgtMDggMTc6MjANClRvOiB0dXBlbmcyMTINCkNDOiB4ZW4tZGV2ZWwNClN1YmplY3Q6IFJlOiBb
+WGVuLWRldmVsXSBCaWcgQnVnOlRpbWUgaW4gVk0gcnVubmluZyBvbiB4ZW4gZ29lcyBzbG93ZXIN
+Cj4+PiBPbiAwNy4wOC4xMiBhdCAxNzo0NCwgdHVwZW5nMjEyIDx0dXBlbmcyMTJAZ21haWwuY29t
+PiB3cm90ZToNCj4gMiBYZW4NCj4gdm14X3ZtZXhpdF9oYW5kbGVyICAtLT4gLi4uLi4uLi4uIC0t
+PiBoYW5kbGVfcnRjX2lvICAtLT4gcnRjX2lvcG9ydF93cml0ZSAgLS0+IA0KPiBydGNfdGltZXJf
+dXBkYXRlIC0tPiBzZXQgUlRDJ3MgUkVHX0EgdG8gYSBoaWdoIHJhdGUtLT4gY3JlYXRlX3Blcmlv
+ZGljX3RpbWUoZGlzYWJsZSANCj4gdGhlIGZvcm1lciB0aW1lciwgYW5kIGluaXQgYSBuZXcgb25l
+KQ0KPiBXaW43IGlzIGluc3RhbGxlZCBpbiB0aGUgdm0uIFRoaXMgY2FsbGluZyBwYXRoIGlzIGV4
+ZWN1dGVkIHNvIGZyZXF1ZW50IHRoYXQgDQo+IG1heSBjb21lIGRvd24gdG8gc2V0IHRoZSBSVEMn
+cyBSRUdfQSBodW5kcmVkcyBvZiB0aW1lcyBldmVyeSBzZWNvbmQgYnV0IHdpdGggDQo+IHRoZSBz
+YW1lIHJhdGUoOTc2LjU2MnVzKDEwMjRIWikpLCBpdCBpcyBzbyBhYm5vcm1hbCB0byBtZSB0byBz
+ZWUgc3VjaCANCj4gYmVoYXZpb3IuDQoNCl9JZl8gdGhlIHByb2JsZW0gaXMgbWVyZWx5IHdpdGgg
+dGhlIGhpZ2ggcmF0ZSBvZiBjYWxscyB0bw0KY3JlYXRlX3BlcmlvZGljX3RpbWUoKSwgSSB0aGlu
+ayB0aGlzIGNvdWxkIGJlIHRha2VuIGNhcmUgb2YgYnkNCmF2b2lkaW5nIHRoZSBjYWxsIChhbmQg
+cGVyaGFwcyB0aGUgY2FsbCB0byBydGNfdGltZXJfdXBkYXRlKCkgaW4NCnRoZSBmaXJzdCBwbGFj
+ZSkgYnkgY2hlY2tpbmcgd2hldGhlciBhbnl0aGluZyBhY3R1YWxseSBjaGFuZ2VzDQpkdWUgdG8g
+dGhlIGN1cnJlbnQgd3JpdGUuIEkgZG9uJ3QgdGhpbmssIGhvd2V2ZXIsIHRoYXQgdGhpcyB3b3Vs
+ZA0KaGVscCBtdWNoLCBhcyB0aGUgaGlnaCByYXRlIG9mIHBvcnQgYWNjZXNzZXMgKGFuZCBoZW5j
+ZSB0cmFwcw0KaW50byB0aGUgaHlwZXJ2aXNvcikgd291bGQgcmVtYWluLiBJdCBtaWdodCwgbmV2
+ZXJ0aGVsZXNzLCBnZXQNCnlvdXIgaW1tZWRpYXRlIHByb2JsZW0gb2YgdGhlIHRpbWUgc2xvd2lu
+ZyBkb3duIHRha2VuIGNhcmUgb2YNCmlmIHRoYXQgaXMgY2F1c2VkIGluc2lkZSBYZW4gKGJ1dCB0
+aGUgY2F1c2UgaGVyZSBtYXkgYXMgd2VsbCBiZSBpbg0KdGhlIFdpbmRvd3Mga2VybmVsKS4NCg0K
+PiAzIE9TDQo+IEkgaGF2ZSB0cmllZCB0byBmaW5kIHdoeSB0aGUgd2luNyBzZXR0ZWQgUlRDJ3Mg
+cmVnQSBzbyBmcmVxdWVudGx5LiBmaW5hbGx5IA0KPiBnb3QgdGhlIHJlc3VsdCwgYWxsIHRoYXQg
+Y29tZXMgZnJvbSBhIGZ1bmN0aW9uOiBOdFNldFRpbWVyUmVzb2x1dGlvbiAtLT4gDQo+IDB4NzAs
+MHg3MQ0KPiB3aGVuIEkgYXR0YWNoZWQgd2luZGJnIGludG8gdGhlIGd1ZXN0IE9TLCBJIGFsc28g
+Zm91bmQgdGhlIHNvdXJjZSwgdGhleSBhcmUgDQo+IGFsbCBjYWxsZWQgZnJvbSBhIHVwcGVyIHN5
+c3RlbSBjYWxsIHRoYXQgY29tZXMgZnJvbSBKVk0oSmF2YSBWaXJ0dWFsIA0KPiBNYWNoaW5lKS4N
+Cg0KR2V0dGluZyBXaW5kb3dzIHRvIGJlIGEgbGl0dGxlIHNtYXJ0ZXIgYW5kIGF2b2lkIHRoZSBw
+b3J0IEkvTyB3aGVuDQpkb2luZyByZWR1bmRhbnQgd3JpdGVzIHdvdWxkIG9mIGNvdXJzZSBiZSBl
+dmVuIGJldHRlciwgYnV0IGlzDQpjbGVhcmx5IGEgZGlmZmljdWx0IHRvIGFjaGlldmUgZ29hbC4N
+Cg0KPiA0IEpWTQ0KPiBJIGRvbid0IGtub3cgd2h5IEpWTSBjYWxscyBOdFNldFRpbWVyUmVzb2x1
+dGlvbiB0byBzZXQgdGhlIHNhbWUgUlRDJ3MgcmF0ZSANCj4gZG93biAoOTc2LjU2MnVzKDEwMjRI
+WikpIHNvIGZyZXF1ZW50bHkuIA0KPiBCdXQgZm91bmQgc29tZXRoaW5nIHVzZWZ1bCwgaW4gdGhl
+IGphdmEgc291cmNlIGNvZGUsIEkgZm91bmQgbWFueSBwYWxhY2VzIA0KPiB3cml0dGVuIHdpdGgg
+dGltZS5zY2hlZHVsZUF0Rml4ZWRSYXRlKCksIEluZm9ybWF0aW9ucyBmcm9tIEludGVybmV0IHRv
+bGQgbWUgDQo+IHRoaXMgZnVuY3Rpb24gc2NoZWR1bGVBdEZpeGVkUmF0ZSBkZW1hbmRzIGEgaGln
+aGVyIHRpbWUgcmVzb2x1dGlvbi4gc28gSSANCj4gZ3Vlc3MgdGhlIHdob2xlIHByb2Nlc3MgbWF5
+IGJlIHRoaXM6IA0KPiBqYXZhIHdhbnRzIGEgaGlnaGVyIHRpbWUgcmVzb2x1dGlvbiB0aW1lciwg
+c28gaXQgY2hhbmdlcyB0aGUgUlRDJ3MgcmF0ZSBmcm9tIA0KPiAxNS42MjVtcyg2NEhaKSB0byA5
+NzYuNTYydXMoMTAyNEhaKSwgYWZ0ZXIgdGhhdCwgaXQgcmVjb25maXJtcyB3aGV0aGVyIHRoZSAN
+Cj4gdGltZSBpcyBhY2N1cmF0ZSBhcyBleHBlY3RlZCwgYnV0IGl0J3Mgc29ycnkgdG8gZ2V0IHNv
+bWUgbm90aWNlIGl0ICdzIG5vdCANCj4gYWNjdXJhdGUgZWl0aGVyLiBzbyBpdCBzZXRzICB0aGUg
+UlRDJ3MgcmF0ZSBmcm9tIDE1LjYyNW1zKDY0SFopIHRvIA0KPiA5NzYuNTYydXMoMTAyNEhaKSBh
+Z2FpbiBhbmQgYWdhaW4uLi4sIGF0IGxhc3QsIHJlc3VsdHMgaW4gYSBzbG93IHN5c3RlbSB0aW1l
+ciANCj4gaW4gdm0uDQoNCk5vdyB0aGF0J3MgcmVhbGx5IHRoZSBmdW5kYW1lbnRhbCB0aGluZyB0
+byBmaW5kIG91dCAtIHdoYXQgbWFrZXMgaXQNCnRoaW5rIHRoZSBjbG9jayBpc24ndCBhY2N1cmF0
+ZT8gSXMgdGhpcyBhbiBhcnRpZmFjdCBvZiBzY2hlZHVsaW5nIChhcw0KdGhlIHNjaGVkdWxlciB0
+aWNrIGNlcnRhaW5seSBpcyBzZXZlcmFsIG1pbGxpc2Vjb25kcywgd2hlcmVhcw0KImFjY3VyYXRl
+IiBoZXJlIGFwcGVhcnMgdG8gcmVxdWlyZSBiZWxvdyAxbXMgZ3JhbnVsYXJpdHkpLCBwZXJoYXBz
+DQphcyBhIHJlc3VsdCBvZiB0aGUgYm94IGJlaW5nIG92ZXJsb2FkZWQgKGkuZS4gdGhlIFZNIG5v
+dCBiZWluZyBhYmxlDQp0byBnZXQgc2NoZWR1bGVkIHF1aWNrbHkgZW5vdWdoIHdoZW4gdGhlIHRp
+bWVyIGV4cGlyZXMpPyBGb3IgdGhhdCwNCmRpZCB5b3UgdHJ5IGxvd2VyaW5nIHRoZSBzY2hlZHVs
+ZXIgdGltZSBzbGljZSBhbmQvb3IgaXRzIHJhdGUgbGltaXQNCihwb3NzaWJsZSB2aWEgY29tbWFu
+ZCBsaW5lIG9wdGlvbik/IE9mIGNvdXJzZSBkb2luZyBzbyBtYXkgaGF2ZQ0Kb3RoZXIgdW5kZXNp
+cmFibGUgc2lkZSBlZmZlY3RzLCBidXQgaXQgd291bGQgYmUgd29ydGggYSB0cnkuDQoNCkRpZCB5
+b3UgZnVydGhlciBjaGVjayB3aGV0aGVyIHRoZSBhZGp1c3RtZW50cyBkb25lIHRvIHRoZQ0Kc2No
+ZWR1bGVkIHRpbWUgaW4gY3JlYXRlX3BlcmlvZGljX3RpbWUoKSBhcmUgcmVzcG9uc2libGUgZm9y
+IHRoaXMNCmNvbmNsdXNpb24gb2YgdGhlIEpWTSAoY291bGQgYmUgZWZmZWN0aXZlbHkgZG91Ymxp
+bmcgdGhlIGZpcnN0DQppbnRlcnZhbCBpZiBIVk1fUEFSQU1fVlBUX0FMSUdOIGlzIHNldCwgYW5k
+IHdpdGggdGhlIGhpZ2ggcmF0ZQ0Kb2YgcmUtc2V0cyB0aGlzIGNvdWxkIGNlcnRhaW5seSBoYXZl
+IGEgbW9yZSB2aXNpYmxlIGVmZmVjdCB0aGFuDQppbnRlbmRlZCk/DQoNCkphbg==
+
+------=_001_NextPart462848748572_=----
+Content-Type: text/html;
+       charset="gb2312"
+Content-Transfer-Encoding: quoted-printable
+
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<HTML><HEAD>
+<META http-equiv=3DContent-Type content=3D"text/html; charset=3Dgb2312">
+<STYLE>
+BLOCKQUOTE {
+       MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; MARGIN-LEFT: 2em
+}
+OL {
+       MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px
+}
+UL {
+       MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px
+}
+P {
+       MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px
+}
+BODY {
+       FONT-SIZE: 10.5pt; COLOR: #000080; LINE-HEIGHT: 1.5; FONT-FAMILY: =CB=CE=
+=CC=E5
+}
+</STYLE>
+
+<META content=3D"MSHTML 6.00.2900.5512" name=3DGENERATOR></HEAD>
+<BODY style=3D"MARGIN: 10px">
+<DIV>Dear Jan Beulich:</DIV>
+<DIV style=3D"TEXT-INDENT: 2em">Thanks for reply! You are a very clever ma=
+n, you=20
+have sensed some thing immediately&nbsp;as I found lately. Please forgive =
+my so=20
+lately reply!</DIV>
+<DIV>&nbsp;</DIV>
+<DIV>1 why JVM set the same rate down so frequently&nbsp;?</DIV>
+<DIV>the first achievement I will show is I found the action in JVM and th=
+e=20
+reason by debugging disassembly code.</DIV>
+<DIV>it seems to me like this in JVM:</DIV>
+<DIV>=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
+=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D 1 what happened in JVM=
+=20
+=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
+=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D</DIV>
+<DIV>
+<DIV>while&nbsp;(loop)//or a frequent call</DIV>
+<DIV>{</DIV>
+<BLOCKQUOTE dir=3Dltr style=3D"MARGIN-RIGHT: 0px">
+  <DIV>timeBeginPeriod()&nbsp;--&gt;&nbsp;NtSetTimerResolution(1(enble))</=
+DIV>
+  <DIV></DIV>
+  <DIV>rc&nbsp;=3D&nbsp;WaitForMultipleObjects(5,&nbsp;0x2222222,&nbsp;0,&=
+nbsp;1);&nbsp;//the&nbsp;last&nbsp;parameter&nbsp;demands&nbsp;1ms&nbsp;ti=
+mer&nbsp;resolution</DIV>
+  <DIV>if&nbsp;(rc&nbsp;=3D&nbsp;TIMEOUT){</DIV>
+  <BLOCKQUOTE dir=3Dltr style=3D"MARGIN-RIGHT: 0px">
+    <DIV>break;</DIV></BLOCKQUOTE>
+  <DIV>}</DIV>
+  <DIV>else{</DIV>
+  <BLOCKQUOTE dir=3Dltr style=3D"MARGIN-RIGHT: 0px">
+    <DIV>call&nbsp;0x44444444;</DIV></BLOCKQUOTE>
+  <DIV>}</DIV>
+  <DIV></DIV>
+  <DIV>timeEndPeriod()&nbsp;--&gt;&nbsp;NtSetTimerResolution(0(disable))</=
+DIV></BLOCKQUOTE>
+<DIV>}</DIV>
+<DIV>=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
+=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
+=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
+=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
+=3D=3D=3D=3D=3D</DIV></DIV>
+<DIV>so its behavior is totally legal, for it demands higher timer resolut=
+ion=20
+(here 1ms), so it calls NtSetTimerResolution to improve the=20
+resolution.&nbsp;</DIV>
+<DIV>it is not as I guessed "unaccurate"<BR></DIV>
+<DIV>I also wrote a tester below, which confirms my suppose. if you are=20
+interested in it , you can build it by MS's compiler, and after running th=
+e=20
+tester in VM about 1 minutes, VM's time will slow.</DIV>
+<DIV>=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
+=3D=3D=3D=3D 2 a test which will lead to trigger slowing=20
+VM's inner time=3D=3D=3D=3D=3D=3D=3D=3D</DIV>
+<DIV>
+<DIV>#include&nbsp;&lt;stdio.h&gt;</DIV>
+<DIV>#include&nbsp;&lt;windows.h&gt;</DIV>
+<DIV>typedef&nbsp;int&nbsp;(__stdcall&nbsp;*NTSETTIMER)(IN&nbsp;ULONG&nbsp=
+;RequestedResolution,&nbsp;IN&nbsp;BOOLEAN&nbsp;Set,&nbsp;OUT&nbsp;PULONG&=
+nbsp;ActualResolution&nbsp;);</DIV>
+<DIV>typedef&nbsp;int&nbsp;(__stdcall&nbsp;*NTQUERYTIMER)(OUT&nbsp;PULONG&=
+nbsp;&nbsp;&nbsp;MinimumResolution,&nbsp;OUT&nbsp;PULONG&nbsp;MaximumResol=
+ution,&nbsp;OUT&nbsp;PULONG&nbsp;CurrentResolution&nbsp;);</DIV>
+<DIV>int&nbsp;main()</DIV>
+<DIV>{</DIV>
+<BLOCKQUOTE dir=3Dltr style=3D"MARGIN-RIGHT: 0px">
+  <DIV>DWORD&nbsp;min_res&nbsp;=3D&nbsp;0,&nbsp;max_res&nbsp;=3D&nbsp;0,&n=
+bsp;cur_res&nbsp;=3D&nbsp;0,&nbsp;ret&nbsp;=3D&nbsp;0;</DIV>
+  <DIV>HMODULE&nbsp;&nbsp;hdll&nbsp;=3D&nbsp;NULL;</DIV>
+  <DIV>hdll&nbsp;=3D&nbsp;GetModuleHandle("ntdll.dll");</DIV>
+  <DIV>NTSETTIMER&nbsp;AddrNtSetTimer&nbsp;=3D&nbsp;0;</DIV>
+  <DIV>NTQUERYTIMER&nbsp;AddrNtQueyTimer&nbsp;=3D&nbsp;0;</DIV>
+  <DIV></DIV>
+  <DIV>AddrNtSetTimer&nbsp;=3D&nbsp;(NTSETTIMER)&nbsp;GetProcAddress(hdll,=
+&nbsp;"NtSetTimerResolution");</DIV>
+  <DIV>AddrNtQueyTimer&nbsp;=3D&nbsp;(NTQUERYTIMER)GetProcAddress(hdll,&nb=
+sp;"NtQueryTimerResolution");</DIV>
+  <DIV>&nbsp;</DIV>
+  <DIV>while&nbsp;(1)</DIV>
+  <DIV>{</DIV>
+  <BLOCKQUOTE dir=3Dltr style=3D"MARGIN-RIGHT: 0px">
+    <DIV>ret&nbsp;=3D&nbsp;AddrNtQueyTimer(&amp;min_res,&nbsp;&amp;max_res=
+,&nbsp;&amp;cur_res);</DIV>
+    <DIV>printf("min_res&nbsp;=3D&nbsp;%d,&nbsp;max_res&nbsp;=3D&nbsp;%d,&=
+nbsp;cur_res&nbsp;=3D&nbsp;%d\n",min_res,&nbsp;max_res,&nbsp;cur_res);</DI=
+V>
+    <DIV>Sleep(10);</DIV>
+    <DIV>ret&nbsp;=3D&nbsp;AddrNtSetTimer(10000,&nbsp;1,&nbsp;&amp;cur_res=
+);</DIV>
+    <DIV>Sleep(10);</DIV>
+    <DIV>ret&nbsp;=3D&nbsp;AddrNtSetTimer(10000,&nbsp;0,&nbsp;&amp;cur_res=
+);</DIV>
+    <DIV>Sleep(10);</DIV></BLOCKQUOTE>
+  <DIV>}</DIV>
+  <DIV>return&nbsp;0;</DIV></BLOCKQUOTE>
+<DIV>}</DIV></DIV>
+<DIV>=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
+=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
+=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
+=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D</DIV=
+>
+<DIV>&nbsp;</DIV>
+<DIV>2 Bug in xen</DIV>
+<DIV>JVM is OK, so left the bug to xen, I have found both the reason and=20
+solution. As Jan mentioned avoiding call create_periodic_time, it got much=
+=20
+better. so I modified it&nbsp;like this,&nbsp;if the pt timer is created b=
+efore,=20
+setting RegA down is just changing the period value, so I do nothing excep=
+t just=20
+setting period to pt's field. it is OK!<BR></DIV>
+<DIV>I thought pt-&gt;scheduled is responsible&nbsp;for <SPAN class=3Dshor=
+t_text=20
+lang=3Den id=3Dresult_box f=3D"4" a=3D"undefined" closure_uid_v1xnhe=3D"94=
+"><SPAN class=3D""=20
+closure_uid_v1xnhe=3D"322">Accuracy</SPAN></SPAN>&nbsp;of pt_process_misse=
+d_ticks,=20
+so we should not interfere it at any outer invading or interruption, so I =
+let=20
+create_periodic_time changed everything but reserved only one=20
+filed&nbsp;pt-&gt;scheduled as setted before, I am very happy to find the =
+bug=20
+disappear. After I rechecked your mail I found you are really a very smart=
+ man,=20
+you have predicted something!</DIV>
+<DIV>&nbsp;</DIV>
+<DIV>
+<DIV>Did&nbsp;you&nbsp;further&nbsp;check&nbsp;whether&nbsp;the&nbsp;adjus=
+tments&nbsp;done&nbsp;to&nbsp;the</DIV>
+<DIV>scheduled&nbsp;time&nbsp;in&nbsp;create_periodic_time()&nbsp;are&nbsp=
+;responsible&nbsp;for&nbsp;this</DIV>
+<DIV>conclusion&nbsp;of&nbsp;the&nbsp;JVM&nbsp;(could&nbsp;be&nbsp;effecti=
+vely&nbsp;doubling&nbsp;the&nbsp;first</DIV>
+<DIV>interval&nbsp;if&nbsp;HVM_PARAM_VPT_ALIGN&nbsp;is&nbsp;set,&nbsp;and&=
+nbsp;with&nbsp;the&nbsp;high&nbsp;rate</DIV>
+<DIV>of&nbsp;re-sets&nbsp;this&nbsp;could&nbsp;certainly&nbsp;have&nbsp;a&=
+nbsp;more&nbsp;visible&nbsp;effect&nbsp;than</DIV>
+<DIV>intended)?</DIV>
+<DIV>&nbsp;</DIV>
+<DIV>After I tracked pt-&gt;scheduled, more and more truth surfaced. I wil=
+l show=20
+you the RTC's spotting as I observed.</DIV>
+<DIV>normal spot is like this:</DIV>
+<DIV>0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
+bsp;&nbsp;&nbsp;=20
+1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
+nbsp;&nbsp;&nbsp;2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
+bsp;&nbsp;&nbsp;&nbsp;&nbsp;=20
+3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
+nbsp;=20
+&nbsp;4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
+nbsp;&nbsp;&nbsp;&nbsp;5</DIV>
+<DIV>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;=20
+&nbsp;&nbsp;&nbsp;.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
+&nbsp;=20
+&nbsp;&nbsp;&nbsp;.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;=
+&nbsp;=20
+&nbsp;&nbsp;&nbsp;.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=20
+&nbsp;&nbsp; &nbsp;&nbsp;.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
+&nbsp;=20
+&nbsp;&nbsp; &nbsp;&nbsp;.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(normal=20
+spot)</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
+sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
+;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=20
+|(pt-&gt;scheduled at 2)</DIV>
+<DIV>&nbsp;</DIV>
+<DIV>when create_periodic_time interfere pt-&gt;schedule at NOW</DIV>
+<DIV>0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
+bsp;&nbsp;&nbsp;=20
+1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
+nbsp;&nbsp;&nbsp;2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
+bsp;&nbsp;&nbsp;&nbsp;&nbsp;=20
+3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
+nbsp;=20
+&nbsp;4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
+nbsp;&nbsp;&nbsp;=20
+5</DIV>
+<DIV>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;=20
+&nbsp;&nbsp;&nbsp;.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=
+&nbsp;=20
+&nbsp;&nbsp;&nbsp;.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;=
+&nbsp;=20
+&nbsp;&nbsp;&nbsp;.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=20
+&nbsp;&nbsp;&nbsp;&nbsp;=20
+&nbsp;&nbsp;.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;=
+&nbsp;=20
+&nbsp;&nbsp;.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
+sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=20
+|(NOW)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
+bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=20
+&nbsp;| (new pt-&gt;scheduled is moved to 3 after ALIGN)</DIV>
+<DIV>&nbsp;</DIV>
+<DIV>so it real spot is like this:</DIV>
+<DIV>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;=20
+&nbsp;&nbsp;&nbsp;.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
+nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=20
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
+bsp;&nbsp;&nbsp;.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=20
+&nbsp;&nbsp;&nbsp;&nbsp;=20
+&nbsp;&nbsp;.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;=
+&nbsp;=20
+&nbsp;&nbsp;.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</DIV>
+<DIV>0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
+bsp;&nbsp;&nbsp;=20
+1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
+nbsp;&nbsp;&nbsp;2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
+bsp;&nbsp;&nbsp;&nbsp;&nbsp;=20
+3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
+nbsp;=20
+&nbsp;4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
+nbsp;&nbsp;&nbsp;=20
+5</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
+sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
+;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|(here=20
+we missed one spot at 2)</DIV></DIV>
+<DIV>&nbsp;</DIV>
+<DIV>the original pt-&gt;scheduled is at 2 before create_periodic_time wil=
+l be=20
+executed, but after it, pt-&gt;scheduled is moved to 3, so missed one spot=
+ to=20
+GuestWin.</DIV>
+<DIV>&nbsp;</DIV>
+<DIV>&nbsp;</DIV>
+<DIV>3 who is wrong?</DIV>
+<DIV>I doubt align_timer&nbsp;worth suspected:</DIV>
+<DIV>
+<DIV>s_time_t&nbsp;align_timer(s_time_t&nbsp;firsttick,&nbsp;uint64_t&nbsp=
+;period)</DIV>
+<DIV>{</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(&nbsp;!period&nbsp;)</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;firsttick=
+;</DIV>
+<DIV>&nbsp;</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;firsttick&nbsp;+&nbsp;(period&nbs=
+p;-&nbsp;1)&nbsp;-&nbsp;((firsttick&nbsp;-&nbsp;1)&nbsp;%&nbsp;period);=20
+//in xen4.x</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;=20
+return&nbsp;firsttick&nbsp;&nbsp;-&nbsp;((firsttick&nbsp;-&nbsp;1)&nbsp;%&=
+nbsp;period);//it=20
+should be aligned like this.</DIV>
+<DIV>}</DIV>
+<DIV>&nbsp;</DIV>
+<DIV>I have also found another updating RTC's RegA in=20
+tools\ioemu-qemu-xen\hw\MCc146818rtc.c: </DIV>
+<DIV>&nbsp;</DIV>
+<DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(period_code&nbsp;!=3D&nbsp;0&nbsp;&a=
+mp;&amp;&nbsp;(s-&gt;cmos_data[RTC_REG_B]&nbsp;&amp;&nbsp;REG_B_PIE))&nbsp=
+;{</DIV>
+<DIV>#endif</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(period_code&=
+nbsp;&lt;=3D&nbsp;2)</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
+sp;period_code&nbsp;+=3D&nbsp;7;</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;period&nbsp;i=
+n&nbsp;32&nbsp;Khz&nbsp;cycles&nbsp;*/</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;period&nbsp;=3D&nbsp;=
+1&nbsp;&lt;&lt;&nbsp;(period_code&nbsp;-&nbsp;1);</DIV>
+<DIV>#ifdef&nbsp;IRQ_COALESCE_HACK</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(period&nbsp;!=3D&n=
+bsp;s-&gt;period)</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
+sp;s-&gt;irq_coalesced&nbsp;=3D&nbsp;(s-&gt;irq_coalesced&nbsp;*&nbsp;s-&g=
+t;period)&nbsp;/&nbsp;period;</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s-&gt;period&nbsp;=3D=
+&nbsp;period;</DIV>
+<DIV>#endif</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;compute&nbsp;=
+32&nbsp;khz&nbsp;clock&nbsp;*/</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cur_clock&nbsp;=3D&nb=
+sp;muldiv64(current_time,&nbsp;32768,&nbsp;ticks_per_sec);=20
+//here I don't make sense it ......</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;next_irq_clock&nbsp;=
+=3D&nbsp;(cur_clock&nbsp;&amp;&nbsp;~(period&nbsp;-&nbsp;1))&nbsp;+&nbsp;p=
+eriod;</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s-&gt;next_periodic_t=
+ime&nbsp;=3D&nbsp;muldiv64(next_irq_clock,&nbsp;ticks_per_sec,&nbsp;32768)=
+&nbsp;+&nbsp;1;</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;qemu_mod_timer(s-&gt;=
+periodic_timer,&nbsp;s-&gt;next_periodic_time);</DIV></DIV>
+<DIV>&nbsp;</DIV>
+<DIV>&nbsp;</DIV>
+<DIV>&nbsp;</DIV></DIV>
+<DIV>I don't know what happened in real RTC, the most <SPAN=20
+style=3D"COLOR: #000080">popular RTC chip<SPAN style=3D"COLOR: #000000"><S=
+PAN=20
+style=3D"COLOR: #000080">&nbsp;is <FONT color=3D#cc0000 size=3D2><SPAN=20
+style=3D"COLOR: #000000"><SPAN style=3D"COLOR: #000080">MC146818, I have c=
+hecked its=20
+datasheet but found nothing I want. What I want to know is When a real out=
+er=20
+0x71 come down to set RTC's RegA, who does it change or spot the <SPAN=20
+style=3D"FONT-SIZE: 10pt">next <FONT style=3D"FONT-SIZE: 10pt"=20
+size=3D1>periodic&nbsp;interrupt time</FONT>&nbsp;</SPAN>? In my case, the=
+ period=20
+doesn't change, it misses one spot, even if the period changes how will it=
+ spot=20
+the next scheduled time?</SPAN></SPAN></FONT></SPAN></SPAN></SPAN></DIV>
+<DIV><SPAN style=3D"COLOR: #000080"><SPAN style=3D"COLOR: #000000"><SPAN=20
+style=3D"COLOR: #000080"><FONT color=3D#cc0000 size=3D2><SPAN=20
+style=3D"COLOR: #000000"><SPAN style=3D"FONT-SIZE: 10pt; COLOR: #000080">I=
+ need the=20
+man who knows the details deeply concerning when updating a real RTC's reg=
+A, how=20
+will&nbsp;it take it into&nbsp;effect, and make the transition smoothly in=
+ a=20
+real RTC.</SPAN></SPAN></FONT></SPAN></SPAN></SPAN></DIV>
+<DIV><SPAN style=3D"COLOR: #000080"><SPAN style=3D"COLOR: #000000"><SPAN=20
+style=3D"COLOR: #000080"><FONT color=3D#cc0000 size=3D2><SPAN=20
+style=3D"COLOR: #000000"><SPAN=20
+style=3D"FONT-SIZE: 10pt; COLOR: #000080"></SPAN></SPAN></FONT></SPAN></SP=
+AN></SPAN>&nbsp;</DIV>
+<DIV><SPAN style=3D"COLOR: #000080"><SPAN style=3D"COLOR: #000000"><SPAN=20
+style=3D"COLOR: #000080"><FONT color=3D#cc0000 size=3D3><SPAN=20
+style=3D"COLOR: #000000"><SPAN style=3D"FONT-SIZE: 10pt; COLOR: #000080">I=
+ have been=20
+very anxious in&nbsp;another aspect,&nbsp;in our virtual environment, at=20
+create_periodic_time, NOW() may be far more&nbsp;later than pt-&gt;schedul=
+ed=20
+setted before, at this point,&nbsp;the new pt-&gt;scheduled may be far mor=
+e=20
+behind the one after executing&nbsp;create_periodic_time. So the interval=20
+between both which should be treated&nbsp;by pt_process_missed_ticks to th=
+e=20
+former pt-&gt;scheduled's period&nbsp;is now all thrown away as nothing mi=
+ssed.=20
+So I think&nbsp;how to handle the interval between&nbsp;both pt-&gt;schedu=
+led=20
+worth consideration&nbsp;in=20
+create_periodic_time.</SPAN></SPAN></FONT></SPAN></SPAN></SPAN></DIV>
+<DIV><SPAN style=3D"COLOR: #000080"><SPAN style=3D"COLOR: #000000"><SPAN=20
+style=3D"COLOR: #000080"><FONT color=3D#cc0000 size=3D2><SPAN=20
+style=3D"COLOR: #000000"><SPAN=20
+style=3D"COLOR: #000080"></SPAN></SPAN></FONT></SPAN></SPAN></SPAN>&nbsp;<=
+/DIV>
+<DIV><SPAN style=3D"COLOR: #000080"><SPAN style=3D"COLOR: #000000"><SPAN=20
+style=3D"COLOR: #000080"><FONT color=3D#cc0000 size=3D2><SPAN=20
+style=3D"COLOR: #000000"><SPAN=20
+style=3D"COLOR: #000080">Thanks!</SPAN></SPAN></FONT></SPAN></SPAN></SPAN>=
+</DIV>
+<DIV><SPAN style=3D"COLOR: #000080"><SPAN style=3D"COLOR: #000000"><SPAN=20
+style=3D"COLOR: #000080"><FONT color=3D#cc0000 size=3D2><SPAN=20
+style=3D"COLOR: #000000"><SPAN=20
+style=3D"COLOR: #000080"></SPAN></SPAN></SPAN></SPAN></SPAN></FONT>&nbsp;<=
+/DIV>
+<HR style=3D"WIDTH: 210px; HEIGHT: 1px" align=3Dleft color=3D#b5c4df SIZE=
+=3D1>
+
+<DIV><SPAN>tupeng212</SPAN></DIV>
+<DIV>&nbsp;</DIV>
+<DIV=20
+style=3D"BORDER-RIGHT: medium none; PADDING-RIGHT: 0cm; BORDER-TOP: #b5c4d=
+f 1pt solid; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; BORDER-LEFT: medium n=
+one; PADDING-TOP: 3pt; BORDER-BOTTOM: medium none">
+<DIV=20
+style=3D"PADDING-RIGHT: 8px; PADDING-LEFT: 8px; FONT-SIZE: 12px; BACKGROUN=
+D: #efefef; PADDING-BOTTOM: 8px; COLOR: #000000; PADDING-TOP: 8px">
+<DIV><B>From:</B>&nbsp;<A href=3D"mailto:JBeulich@suse.com">Jan Beulich</A=
+></DIV>
+<DIV><B>Date:</B>&nbsp;2012-08-08&nbsp;17:20</DIV>
+<DIV><B>To:</B>&nbsp;<A href=3D"mailto:tupeng212@gmail.com">tupeng212</A><=
+/DIV>
+<DIV><B>CC:</B>&nbsp;<A=20
+href=3D"mailto:xen-devel@lists.xen.org">xen-devel</A></DIV>
+<DIV><B>Subject:</B>&nbsp;Re: [Xen-devel] Big Bug:Time in VM running on xe=
+n goes=20
+slower</DIV></DIV></DIV>
+<DIV>
+<DIV>&gt;&gt;&gt;&nbsp;On&nbsp;07.08.12&nbsp;at&nbsp;17:44,&nbsp;tupeng212=
+&nbsp;&lt;tupeng212@gmail.com&gt;&nbsp;wrote:</DIV>
+<DIV>&gt;&nbsp;2&nbsp;Xen</DIV>
+<DIV>&gt;&nbsp;vmx_vmexit_handler&nbsp;&nbsp;--&gt;&nbsp;.........&nbsp;--=
+&gt;&nbsp;handle_rtc_io&nbsp;&nbsp;--&gt;&nbsp;rtc_ioport_write&nbsp;&nbsp=
+;--&gt;&nbsp;</DIV>
+<DIV>&gt;&nbsp;rtc_timer_update&nbsp;--&gt;&nbsp;set&nbsp;RTC's&nbsp;REG_A=
+&nbsp;to&nbsp;a&nbsp;high&nbsp;rate--&gt;&nbsp;create_periodic_time(disabl=
+e&nbsp;</DIV>
+<DIV>&gt;&nbsp;the&nbsp;former&nbsp;timer,&nbsp;and&nbsp;init&nbsp;a&nbsp;=
+new&nbsp;one)</DIV>
+<DIV>&gt;&nbsp;Win7&nbsp;is&nbsp;installed&nbsp;in&nbsp;the&nbsp;vm.&nbsp;=
+This&nbsp;calling&nbsp;path&nbsp;is&nbsp;executed&nbsp;so&nbsp;frequent&nb=
+sp;that&nbsp;</DIV>
+<DIV>&gt;&nbsp;may&nbsp;come&nbsp;down&nbsp;to&nbsp;set&nbsp;the&nbsp;RTC'=
+s&nbsp;REG_A&nbsp;hundreds&nbsp;of&nbsp;times&nbsp;every&nbsp;second&nbsp;=
+but&nbsp;with&nbsp;</DIV>
+<DIV>&gt;&nbsp;the&nbsp;same&nbsp;rate(976.562us(1024HZ)),&nbsp;it&nbsp;is=
+&nbsp;so&nbsp;abnormal&nbsp;to&nbsp;me&nbsp;to&nbsp;see&nbsp;such&nbsp;</D=
+IV>
+<DIV>&gt;&nbsp;behavior.</DIV>
+<DIV>&nbsp;</DIV>
+<DIV>_If_&nbsp;the&nbsp;problem&nbsp;is&nbsp;merely&nbsp;with&nbsp;the&nbs=
+p;high&nbsp;rate&nbsp;of&nbsp;calls&nbsp;to</DIV>
+<DIV>create_periodic_time(),&nbsp;I&nbsp;think&nbsp;this&nbsp;could&nbsp;b=
+e&nbsp;taken&nbsp;care&nbsp;of&nbsp;by</DIV>
+<DIV>avoiding&nbsp;the&nbsp;call&nbsp;(and&nbsp;perhaps&nbsp;the&nbsp;call=
+&nbsp;to&nbsp;rtc_timer_update()&nbsp;in</DIV>
+<DIV>the&nbsp;first&nbsp;place)&nbsp;by&nbsp;checking&nbsp;whether&nbsp;an=
+ything&nbsp;actually&nbsp;changes</DIV>
+<DIV>due&nbsp;to&nbsp;the&nbsp;current&nbsp;write.&nbsp;I&nbsp;don't&nbsp;=
+think,&nbsp;however,&nbsp;that&nbsp;this&nbsp;would</DIV>
+<DIV>help&nbsp;much,&nbsp;as&nbsp;the&nbsp;high&nbsp;rate&nbsp;of&nbsp;por=
+t&nbsp;accesses&nbsp;(and&nbsp;hence&nbsp;traps</DIV>
+<DIV>into&nbsp;the&nbsp;hypervisor)&nbsp;would&nbsp;remain.&nbsp;It&nbsp;m=
+ight,&nbsp;nevertheless,&nbsp;get</DIV>
+<DIV>your&nbsp;immediate&nbsp;problem&nbsp;of&nbsp;the&nbsp;time&nbsp;slow=
+ing&nbsp;down&nbsp;taken&nbsp;care&nbsp;of</DIV>
+<DIV>if&nbsp;that&nbsp;is&nbsp;caused&nbsp;inside&nbsp;Xen&nbsp;(but&nbsp;=
+the&nbsp;cause&nbsp;here&nbsp;may&nbsp;as&nbsp;well&nbsp;be&nbsp;in</DIV>
+<DIV>the&nbsp;Windows&nbsp;kernel).</DIV>
+<DIV>&nbsp;</DIV>
+<DIV>&gt;&nbsp;3&nbsp;OS</DIV>
+<DIV>&gt;&nbsp;I&nbsp;have&nbsp;tried&nbsp;to&nbsp;find&nbsp;why&nbsp;the&=
+nbsp;win7&nbsp;setted&nbsp;RTC's&nbsp;regA&nbsp;so&nbsp;frequently.&nbsp;f=
+inally&nbsp;</DIV>
+<DIV>&gt;&nbsp;got&nbsp;the&nbsp;result,&nbsp;all&nbsp;that&nbsp;comes&nbs=
+p;from&nbsp;a&nbsp;function:&nbsp;NtSetTimerResolution&nbsp;--&gt;&nbsp;</=
+DIV>
+<DIV>&gt;&nbsp;0x70,0x71</DIV>
+<DIV>&gt;&nbsp;when&nbsp;I&nbsp;attached&nbsp;windbg&nbsp;into&nbsp;the&nb=
+sp;guest&nbsp;OS,&nbsp;I&nbsp;also&nbsp;found&nbsp;the&nbsp;source,&nbsp;t=
+hey&nbsp;are&nbsp;</DIV>
+<DIV>&gt;&nbsp;all&nbsp;called&nbsp;from&nbsp;a&nbsp;upper&nbsp;system&nbs=
+p;call&nbsp;that&nbsp;comes&nbsp;from&nbsp;JVM(Java&nbsp;Virtual&nbsp;</DI=
+V>
+<DIV>&gt;&nbsp;Machine).</DIV>
+<DIV>&nbsp;</DIV>
+<DIV>Getting&nbsp;Windows&nbsp;to&nbsp;be&nbsp;a&nbsp;little&nbsp;smarter&=
+nbsp;and&nbsp;avoid&nbsp;the&nbsp;port&nbsp;I/O&nbsp;when</DIV>
+<DIV>doing&nbsp;redundant&nbsp;writes&nbsp;would&nbsp;of&nbsp;course&nbsp;=
+be&nbsp;even&nbsp;better,&nbsp;but&nbsp;is</DIV>
+<DIV>clearly&nbsp;a&nbsp;difficult&nbsp;to&nbsp;achieve&nbsp;goal.</DIV>
+<DIV>&nbsp;</DIV>
+<DIV>&gt;&nbsp;4&nbsp;JVM</DIV>
+<DIV>&gt;&nbsp;I&nbsp;don't&nbsp;know&nbsp;why&nbsp;JVM&nbsp;calls&nbsp;Nt=
+SetTimerResolution&nbsp;to&nbsp;set&nbsp;the&nbsp;same&nbsp;RTC's&nbsp;rat=
+e&nbsp;</DIV>
+<DIV>&gt;&nbsp;down&nbsp;(976.562us(1024HZ))&nbsp;so&nbsp;frequently.&nbsp=
+;</DIV>
+<DIV>&gt;&nbsp;But&nbsp;found&nbsp;something&nbsp;useful,&nbsp;in&nbsp;the=
+&nbsp;java&nbsp;source&nbsp;code,&nbsp;I&nbsp;found&nbsp;many&nbsp;palaces=
+&nbsp;</DIV>
+<DIV>&gt;&nbsp;written&nbsp;with&nbsp;time.scheduleAtFixedRate(),&nbsp;Inf=
+ormations&nbsp;from&nbsp;Internet&nbsp;told&nbsp;me&nbsp;</DIV>
+<DIV>&gt;&nbsp;this&nbsp;function&nbsp;scheduleAtFixedRate&nbsp;demands&nb=
+sp;a&nbsp;higher&nbsp;time&nbsp;resolution.&nbsp;so&nbsp;I&nbsp;</DIV>
+<DIV>&gt;&nbsp;guess&nbsp;the&nbsp;whole&nbsp;process&nbsp;may&nbsp;be&nbs=
+p;this:&nbsp;</DIV>
+<DIV>&gt;&nbsp;java&nbsp;wants&nbsp;a&nbsp;higher&nbsp;time&nbsp;resolutio=
+n&nbsp;timer,&nbsp;so&nbsp;it&nbsp;changes&nbsp;the&nbsp;RTC's&nbsp;rate&n=
+bsp;from&nbsp;</DIV>
+<DIV>&gt;&nbsp;15.625ms(64HZ)&nbsp;to&nbsp;976.562us(1024HZ),&nbsp;after&n=
+bsp;that,&nbsp;it&nbsp;reconfirms&nbsp;whether&nbsp;the&nbsp;</DIV>
+<DIV>&gt;&nbsp;time&nbsp;is&nbsp;accurate&nbsp;as&nbsp;expected,&nbsp;but&=
+nbsp;it's&nbsp;sorry&nbsp;to&nbsp;get&nbsp;some&nbsp;notice&nbsp;it&nbsp;'=
+s&nbsp;not&nbsp;</DIV>
+<DIV>&gt;&nbsp;accurate&nbsp;either.&nbsp;so&nbsp;it&nbsp;sets&nbsp;&nbsp;=
+the&nbsp;RTC's&nbsp;rate&nbsp;from&nbsp;15.625ms(64HZ)&nbsp;to&nbsp;</DIV>
+<DIV>&gt;&nbsp;976.562us(1024HZ)&nbsp;again&nbsp;and&nbsp;again...,&nbsp;a=
+t&nbsp;last,&nbsp;results&nbsp;in&nbsp;a&nbsp;slow&nbsp;system&nbsp;timer&=
+nbsp;</DIV>
+<DIV>&gt;&nbsp;in&nbsp;vm.</DIV>
+<DIV>&nbsp;</DIV>
+<DIV>Now&nbsp;that's&nbsp;really&nbsp;the&nbsp;fundamental&nbsp;thing&nbsp=
+;to&nbsp;find&nbsp;out&nbsp;-&nbsp;what&nbsp;makes&nbsp;it</DIV>
+<DIV>think&nbsp;the&nbsp;clock&nbsp;isn't&nbsp;accurate?&nbsp;Is&nbsp;this=
+&nbsp;an&nbsp;artifact&nbsp;of&nbsp;scheduling&nbsp;(as</DIV>
+<DIV>the&nbsp;scheduler&nbsp;tick&nbsp;certainly&nbsp;is&nbsp;several&nbsp=
+;milliseconds,&nbsp;whereas</DIV>
+<DIV>"accurate"&nbsp;here&nbsp;appears&nbsp;to&nbsp;require&nbsp;below&nbs=
+p;1ms&nbsp;granularity),&nbsp;perhaps</DIV>
+<DIV>as&nbsp;a&nbsp;result&nbsp;of&nbsp;the&nbsp;box&nbsp;being&nbsp;overl=
+oaded&nbsp;(i.e.&nbsp;the&nbsp;VM&nbsp;not&nbsp;being&nbsp;able</DIV>
+<DIV>to&nbsp;get&nbsp;scheduled&nbsp;quickly&nbsp;enough&nbsp;when&nbsp;th=
+e&nbsp;timer&nbsp;expires)?&nbsp;For&nbsp;that,</DIV>
+<DIV>did&nbsp;you&nbsp;try&nbsp;lowering&nbsp;the&nbsp;scheduler&nbsp;time=
+&nbsp;slice&nbsp;and/or&nbsp;its&nbsp;rate&nbsp;limit</DIV>
+<DIV>(possible&nbsp;via&nbsp;command&nbsp;line&nbsp;option)?&nbsp;Of&nbsp;=
+course&nbsp;doing&nbsp;so&nbsp;may&nbsp;have</DIV>
+<DIV>other&nbsp;undesirable&nbsp;side&nbsp;effects,&nbsp;but&nbsp;it&nbsp;=
+would&nbsp;be&nbsp;worth&nbsp;a&nbsp;try.</DIV>
+<DIV>&nbsp;</DIV>
+<DIV>Did&nbsp;you&nbsp;further&nbsp;check&nbsp;whether&nbsp;the&nbsp;adjus=
+tments&nbsp;done&nbsp;to&nbsp;the</DIV>
+<DIV>scheduled&nbsp;time&nbsp;in&nbsp;create_periodic_time()&nbsp;are&nbsp=
+;responsible&nbsp;for&nbsp;this</DIV>
+<DIV>conclusion&nbsp;of&nbsp;the&nbsp;JVM&nbsp;(could&nbsp;be&nbsp;effecti=
+vely&nbsp;doubling&nbsp;the&nbsp;first</DIV>
+<DIV>interval&nbsp;if&nbsp;HVM_PARAM_VPT_ALIGN&nbsp;is&nbsp;set,&nbsp;and&=
+nbsp;with&nbsp;the&nbsp;high&nbsp;rate</DIV>
+<DIV>of&nbsp;re-sets&nbsp;this&nbsp;could&nbsp;certainly&nbsp;have&nbsp;a&=
+nbsp;more&nbsp;visible&nbsp;effect&nbsp;than</DIV>
+<DIV>intended)?</DIV>
+<DIV>&nbsp;</DIV>
+<DIV>Jan</DIV>
+<DIV>&nbsp;</DIV></DIV></BODY></HTML>
+
+------=_001_NextPart462848748572_=------
+
+
+
+--===============4979082272455034970==
+Content-Type: text/plain; charset="us-ascii"
+MIME-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Content-Disposition: inline
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
+--===============4979082272455034970==--
+
+
+
diff --git a/config/examples/test/corpus/<20120814100704.GA19704@bloms.de> b/config/examples/test/corpus/<20120814100704.GA19704@bloms.de>
new file mode 100644 (file)
index 0000000..0a92469
--- /dev/null
@@ -0,0 +1,117 @@
+From xen-devel-bounces@lists.xen.org Tue Aug 14 11:23:23 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Tue, 14 Aug 2012 11:23:23 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T1EHQ-0004qV-0V
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 14 Aug 2012 11:23:23 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T1ED9-0002Ip-Uz; Tue, 14 Aug 2012 10:18:55 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xensource.com@bloms.de>) id 1T1E1k-0001kD-85
+       for xen-devel@lists.xen.org; Tue, 14 Aug 2012 10:07:11 +0000
+Received: from [85.158.138.51:7332] by server-5.bemta-3.messagelabs.com id
+       98/50-08865-B432A205; Tue, 14 Aug 2012 10:07:07 +0000
+X-Env-Sender: xensource.com@bloms.de
+X-Msg-Ref: server-12.tower-174.messagelabs.com!1344938826!20234622!1
+X-Originating-IP: [84.200.248.35]
+X-SpamReason: No, hits=0.0 required=7.0 tests=
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 8442 invoked from network); 14 Aug 2012 10:07:06 -0000
+Received: from smtp.bloms.de (HELO smtp.bloms.de) (84.200.248.35)
+       by server-12.tower-174.messagelabs.com with DHE-RSA-AES256-SHA
+       encrypted SMTP; 14 Aug 2012 10:07:06 -0000
+Received: from smtp.bloms.de (localhost [127.0.0.1])
+       by smtp.bloms.de (Postfix) with ESMTP id 018EA1C140CF;
+       Tue, 14 Aug 2012 12:07:06 +0200 (CEST)
+DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=bloms.de; h=date:from:to
+       :subject:message-id:references:mime-version:content-type
+       :in-reply-to; s=selector1; bh=45BvRtlSS8f2g4kF6g6wcO9YuXA=; b=M4
+       qn0sFKHGxQy+gG+jpSfEgL7FS8EUZMO7UMQ3G86cowbEiZpI6spL9WPf7pQ1dWWi
+       x3rNnQ4YMo8JfAP0yQxSFobCpC+/qHllNtk8TowO2MAAczGrV34F7Se3SZzoJfof
+       cN/kUr4XB8b7MQkCQ3RmxVXndvXZB6j6eVdu9Fk1sNsPTuTQI3FKZiO0gOkd9qk+
+       TOpWn3isk+a8nJTRhHwM6cgGA6Rgkuek28bFkUQCQ2ywzjoDQ/2EnW3Lp/ecSfIJ
+       +xt3H7OQl6q1urlBrkHHtFU3+1WLKvw+SZLPSCEkg2bjO10yU1S8qLNijAFek/2c
+       5DCFr7SJgqUT9XvBdwGHx2Ewk00uI8wTX1n+8LasqoHEXKiUlHNvYFF8tYsVfsZZ
+       FL+9cK9ONO5VLtkUtWd0nlQXGVx7Mb/HTau1j1QSd2bNTXCbKU1GCyUtJmlQXTqN
+       czeJcS9spvN/27eiSiWJqoQMgbhD33ZKhmAlVEu5rL5jVT1LmWFUkA7cnJwVO6Kt
+       236yOnd+euEHtBtntny+nRT/fFdPCfkLIJRVdULyN0gVfLFojCecX0cJ4twKwl0b
+       4JEeDmEpaM7+bqrUoz+0PDanmPuClJlNRTSQ3oVMBU7xqmvZQA/UvnHPT9QvepkY
+       47/pLuNUzHPzNv6/iswSpxqN/BoQ5Hq4hvT56Y2z4=
+Received: by smtp.bloms.de (Postfix, from userid 1000)
+       id D1A731C140E9; Tue, 14 Aug 2012 12:07:05 +0200 (CEST)
+Date: Tue, 14 Aug 2012 12:07:05 +0200
+From: Dieter Bloms <xensource.com@bloms.de>
+To: xen-devel@lists.xen.org, xen-users@lists.xen.org
+Message-ID: <20120814100704.GA19704@bloms.de>
+References: <1344935141.5926.6.camel@zakaz.uk.xensource.com>
+MIME-Version: 1.0
+Content-Disposition: inline
+In-Reply-To: <1344935141.5926.6.camel@zakaz.uk.xensource.com>
+User-Agent: Mutt/1.5.20 (2009-06-14)
+X-Mailman-Approved-At: Tue, 14 Aug 2012 10:18:54 +0000
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_DKIM_INVALID,T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: [Xen-devel] Xen 4.2 TODO (io and irq parameter are not evaluated by
+       xl)
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+Hi,
+
+On Tue, Aug 14, Ian Campbell wrote:
+
+> tools, blockers:
+> 
+>     * xl compatibility with xm:
+> 
+>         * No known issues
+
+the parameter io and irq in domU config files are not evaluated by xl.
+So it is not possible to passthrough a parallel port for my printer to
+domU when I start the domU with xl command.
+With xm I have no issue.
+
+-- 
+Best regards
+
+  Dieter Bloms
+
+--
+I do not get viruses because I do not use MS software.
+If you use Outlook then please do not put my email address in your
+address-book so that WHEN you get a virus it won't use my address in the
+>From field.
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<20120814101822.GX19851@reaktio.net> b/config/examples/test/corpus/<20120814101822.GX19851@reaktio.net>
new file mode 100644 (file)
index 0000000..18f2d07
--- /dev/null
@@ -0,0 +1,93 @@
+From xen-devel-bounces@lists.xen.org Tue Aug 14 11:22:39 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Tue, 14 Aug 2012 11:22:39 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T1EGi-0004pu-CY
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 14 Aug 2012 11:22:39 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T1EDF-0002JY-F6; Tue, 14 Aug 2012 10:19:01 +0000
+Received: from mail27.messagelabs.com ([193.109.254.147])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <pasik@iki.fi>)
+       id 1T1EDD-0002Ij-Aq; Tue, 14 Aug 2012 10:18:59 +0000
+X-Env-Sender: pasik@iki.fi
+X-Msg-Ref: server-9.tower-27.messagelabs.com!1344939504!9150915!1
+X-Originating-IP: [192.89.123.25]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogMTkyLjg5LjEyMy4yNSA9PiA0Nzc1OTY=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 2734 invoked from network); 14 Aug 2012 10:18:25 -0000
+Received: from smtp.tele.fi (HELO smtp.tele.fi) (192.89.123.25)
+       by server-9.tower-27.messagelabs.com with DHE-RSA-AES256-SHA encrypted
+       SMTP; 14 Aug 2012 10:18:25 -0000
+X-Originating-Ip: [194.89.68.22]
+Received: from ydin.reaktio.net (reaktio.net [194.89.68.22])
+       by smtp.tele.fi (Postfix) with ESMTP id D03251C3B;
+       Tue, 14 Aug 2012 13:18:23 +0300 (EEST)
+Received: by ydin.reaktio.net (Postfix, from userid 1001)
+       id 300D42005D; Tue, 14 Aug 2012 13:18:23 +0300 (EEST)
+Date: Tue, 14 Aug 2012 13:18:22 +0300
+From: Pasi =?iso-8859-1?Q?K=E4rkk=E4inen?= <pasik@iki.fi>
+To: Ian Campbell <Ian.Campbell@citrix.com>
+Message-ID: <20120814101822.GX19851@reaktio.net>
+References: <1344935141.5926.6.camel@zakaz.uk.xensource.com>
+MIME-Version: 1.0
+Content-Disposition: inline
+In-Reply-To: <1344935141.5926.6.camel@zakaz.uk.xensource.com>
+User-Agent: Mutt/1.5.20 (2009-06-14)
+Cc: xen-users <xen-users@lists.xen.org>, xen-devel <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] Xen 4.2 TODO / Release Plan / ipxe gcc 4.7
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Tue, Aug 14, 2012 at 10:05:41AM +0100, Ian Campbell wrote:
+> 
+> tools, nice to have:
+> 
+
+* fix ipxe build problems with gcc 4.7 (fedora 17).
+  The following files fail to build:
+       - ipxe/src/drivers/bus/isa.c
+       - ipxe/src/drivers/net/myri10ge.c
+       - ipxe/src/drivers/infiniband/qib7322.c
+  Patches have been posted to ipxe-devel mailinglist,
+  so we need to update our ipxe version or grab the patches.
+
+
+-- Pasi
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<20120814102039.GY19851@reaktio.net> b/config/examples/test/corpus/<20120814102039.GY19851@reaktio.net>
new file mode 100644 (file)
index 0000000..5184309
--- /dev/null
@@ -0,0 +1,104 @@
+From xen-devel-bounces@lists.xen.org Tue Aug 14 11:24:09 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Tue, 14 Aug 2012 11:24:09 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T1EI9-0004qo-HN
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 14 Aug 2012 11:24:09 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T1EEu-0002gs-37; Tue, 14 Aug 2012 10:20:44 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <pasik@iki.fi>) id 1T1EEs-0002gS-Ix
+       for xen-devel@lists.xen.org; Tue, 14 Aug 2012 10:20:42 +0000
+Received: from [85.158.143.99:41357] by server-3.bemta-4.messagelabs.com id
+       63/59-09529-9762A205; Tue, 14 Aug 2012 10:20:41 +0000
+X-Env-Sender: pasik@iki.fi
+X-Msg-Ref: server-4.tower-216.messagelabs.com!1344939640!22807666!1
+X-Originating-IP: [192.89.123.25]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogMTkyLjg5LjEyMy4yNSA9PiA0Nzc1OTY=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 18700 invoked from network); 14 Aug 2012 10:20:41 -0000
+Received: from smtp.tele.fi (HELO smtp.tele.fi) (192.89.123.25)
+       by server-4.tower-216.messagelabs.com with DHE-RSA-AES256-SHA encrypted
+       SMTP; 14 Aug 2012 10:20:41 -0000
+X-Originating-Ip: [194.89.68.22]
+Received: from ydin.reaktio.net (reaktio.net [194.89.68.22])
+       by smtp.tele.fi (Postfix) with ESMTP id B4B8E2F8E;
+       Tue, 14 Aug 2012 13:20:39 +0300 (EEST)
+Received: by ydin.reaktio.net (Postfix, from userid 1001)
+       id 8FCD22005D; Tue, 14 Aug 2012 13:20:39 +0300 (EEST)
+Date: Tue, 14 Aug 2012 13:20:39 +0300
+From: Pasi =?iso-8859-1?Q?K=E4rkk=E4inen?= <pasik@iki.fi>
+To: Ian Campbell <Ian.Campbell@citrix.com>
+Message-ID: <20120814102039.GY19851@reaktio.net>
+References: <1344935141.5926.6.camel@zakaz.uk.xensource.com>
+       <20120814101822.GX19851@reaktio.net>
+MIME-Version: 1.0
+Content-Disposition: inline
+In-Reply-To: <20120814101822.GX19851@reaktio.net>
+User-Agent: Mutt/1.5.20 (2009-06-14)
+Cc: xen-users <xen-users@lists.xen.org>, xen-devel <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="iso-8859-1"
+Content-Transfer-Encoding: quoted-printable
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] Xen 4.2 TODO / Release Plan / ipxe gcc 4.7
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Tue, Aug 14, 2012 at 01:18:22PM +0300, Pasi K=E4rkk=E4inen wrote:
+> On Tue, Aug 14, 2012 at 10:05:41AM +0100, Ian Campbell wrote:
+> > =
+
+> > tools, nice to have:
+> > =
+
+> =
+
+> * fix ipxe build problems with gcc 4.7 (fedora 17).
+>   The following files fail to build:
+>      - ipxe/src/drivers/bus/isa.c
+>      - ipxe/src/drivers/net/myri10ge.c
+>      - ipxe/src/drivers/infiniband/qib7322.c
+>   Patches have been posted to ipxe-devel mailinglist,
+>   so we need to update our ipxe version or grab the patches.
+> =
+
+
+And the needed patches are listed here: http://lists.xen.org/archives/html/=
+xen-devel/2012-08/msg01048.html
+
+-- Pasi
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<2012081522045495397713@gmail.com> b/config/examples/test/corpus/<2012081522045495397713@gmail.com>
new file mode 100644 (file)
index 0000000..e61815c
--- /dev/null
@@ -0,0 +1,3875 @@
+From xen-devel-bounces@lists.xen.org Wed Aug 15 15:13:38 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 15 Aug 2012 15:13:38 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T1eLp-0006TJ-CJ
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 15 Aug 2012 15:13:38 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T1eGE-0006BN-Va; Wed, 15 Aug 2012 14:07:50 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <tupeng212@gmail.com>) id 1T1eGB-0006BE-RQ
+       for xen-devel@lists.xen.org; Wed, 15 Aug 2012 14:07:48 +0000
+Received: from [85.158.143.35:17312] by server-1.bemta-4.messagelabs.com id
+       7E/8E-07754-33DAB205; Wed, 15 Aug 2012 14:07:47 +0000
+X-Env-Sender: tupeng212@gmail.com
+X-Msg-Ref: server-16.tower-21.messagelabs.com!1345039650!14242832!1
+X-Originating-IP: [209.85.210.45]
+X-SpamReason: No, hits=1.4 required=7.0 tests=HTML_60_70,HTML_MESSAGE,
+       MAILTO_TO_SPAM_ADDR,MIME_BASE64_TEXT,MIME_BOUND_NEXTPART,
+       ML_RADAR_SPEW_LINKS_14,RCVD_BY_IP,spamassassin: 
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 8199 invoked from network); 15 Aug 2012 14:07:31 -0000
+Received: from mail-pz0-f45.google.com (HELO mail-pz0-f45.google.com)
+       (209.85.210.45)
+       by server-16.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
+       15 Aug 2012 14:07:31 -0000
+Received: by dadn15 with SMTP id n15so180673dad.32
+       for <xen-devel@lists.xen.org>; Wed, 15 Aug 2012 07:07:29 -0700 (PDT)
+DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
+       h=date:from:to:cc:reply-to:subject:references:x-priority:x-guid
+       :x-has-attach:x-mailer:mime-version:message-id:content-type;
+       bh=DPY/2h4FwX/0mUL+0IemDK0HkZtLqNn9iniJ/BYbQD0=;
+       b=o/T4A6hV/E6p9zAg28V8Rm+hdqRZp/NLrs3p9xOSjeXYK0e7a0C5scEeXosSMqfWSg
+       GwRwics5903Zk5+dbmpMfHNCmkgCns0VpTWGhregwaWIkC6nG+U1ytvUFN/+SVOZm5Cb
+       7Os4m9686MtFUsXwG3v7HdR74glUtHFrDqQkpMRZpDxivoxgq663x0bvV9Tqgcfo7gwC
+       /MN3rz+1QUIJJYi8R4fHuzNHNqDVJ8+kLgF/cnwhoYZOKzzAYIKTjTk8xm3ZmXeHclj4
+       +FLVfHejkSpEi09rWvyUKm7HahAzzBZIpDt0rpoVxtLaEbxNyJUl/cjutmuAn+jNbOi4
+       VdJQ==
+Received: by 10.66.83.234 with SMTP id t10mr32322200pay.39.1345039649634;
+       Wed, 15 Aug 2012 07:07:29 -0700 (PDT)
+Received: from root ([115.199.253.245])
+       by mx.google.com with ESMTPS id jz4sm616595pbc.17.2012.08.15.07.07.02
+       (version=SSLv3 cipher=OTHER); Wed, 15 Aug 2012 07:07:27 -0700 (PDT)
+Date: Wed, 15 Aug 2012 22:07:07 +0800
+From: tupeng212 <tupeng212@gmail.com>
+To: "Jan Beulich" <JBeulich@suse.com>, 
+       "Yang Z Zhang" <yang.z.zhang@intel.com>, "Keir Fraser" <keir@xen.org>, 
+       "Tim Deegan" <tim@xen.org>
+References: <502A3BBC0200007800094B68@nat28.tlf.novell.com>
+X-Priority: 3
+X-GUID: EC02886C-1CA8-4587-83B3-CEE6627B4FFE
+X-Has-Attach: yes
+X-Mailer: Foxmail 7.0.1.87[cn]
+Mime-Version: 1.0
+Message-ID: <2012081522045495397713@gmail.com>
+Content-Type: multipart/mixed; boundary="----=_001_NextPart215818845028_=----"
+Cc: xen-devel <xen-devel@lists.xen.org>
+Subject: Re: [Xen-devel] [PATCH,
+       RFC v2] x86/HVM: assorted RTC emulation adjustments (was Re: Big
+       Bug:Time in VM goes slower...)
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+Reply-To: tupeng212 <tupeng212@gmail.com>
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Scanned: No (on hopkins.hellion.org.uk); Message bigger than SAmaxbody (256000)
+
+This is a multi-part message in MIME format.
+
+------=_001_NextPart215818845028_=----
+Content-Type: multipart/alternative;
+       boundary="----=_002_NextPart316018485136_=----"
+
+
+------=_002_NextPart316018485136_=----
+Content-Type: text/plain;
+       charset="gb2312"
+Content-Transfer-Encoding: base64
+
+SGksIEphbjoNCkkgYW0gc29ycnkgSSByZWFsbHkgZG9uJ3QgaGF2ZSBtdWNoIHRpbWUgdG8gdHJ5
+IGEgdGVzdCBvZiB5b3VyIHBhdGNoLCBhbmQgaXQgaXMgbm90IGNvbnZlbmllbnQNCmZvciBtZSB0
+byBoYXZlIGEgdHJ5LiBGb3IgdGhlIHZlcnNpb24gSSBoYXZlIGJlZW4gdXNpbmcgaXMgeGVuNC4w
+LngsIGFuZCB5b3VyIHBhdGNoIGlzIGJhc2VkIG9uIA0KdGhlIGxhdGVzdCB2ZXJzaW9uIHhlbjQu
+Mi54LihJIGhhdmUgbmV2ZXIgY29tcGxpZWQgdGhlIHVuc3RhYmxlIG9uZSksIHNvIEkgbWVyZ2Vk
+IHlvdXIgcGF0Y2ggdG8gbXkgDQp4ZW40LjAueCwgc3RpbGwgY291bGRuJ3QgZmluZCB0aGUgdHdv
+IGZ1bmN0aW9ucyBiZWxvdzoNCiBzdGF0aWMgdm9pZCBydGNfdXBkYXRlX3RpbWVyMih2b2lkICpv
+cGFxdWUpIA0KIHN0YXRpYyB2b2lkIHJ0Y19hbGFybV9jYih2b2lkICpvcGFxdWUpIA0Kc28gSSBk
+aWRuJ3QgbWVyZ2UgdGhlIHR3byBmdW5jdGlvbnMgd2hpY2ggY29udGFpbnMgYSBydGNfdG9nZ2xl
+X2lycSgpIC4NCg0KVGhlIHJlc3VsdHMgZm9yIG1lIHdlcmUgdGhlc2U6DQoxIEluIG15IHJlYWwg
+YXBwbGljYXRpb24gZW52aXJvbm1lbnQsIGl0IHdvcmtlZCB2ZXJ5IHdlbGwgaW4gdGhlIGZvcm1l
+ciA1bWlucywgbXVjaCBiZXR0ZXIgdGhhbiBiZWZvcmUsDQogYnV0IGF0IGxhc3QgaXQgbGFnZ2Vk
+IGFnYWluLiBJIGRvbid0IGtub3cgd2hldGhlciBpdCBiZWxvbmdzIHRvIHRoZSB0d28gbWlzc2Vk
+IGZ1bmN0aW9ucy4gSSBsYWNrIHRoZSANCiBhYmlsaXR5IHRvIGZpZ3VyZSB0aGVtIG91dC4NCg0K
+MiBXaGVuIEkgdGVzdGVkIG15IHRlc3QgcHJvZ3JhbSB3aGljaCBJIHByb3ZpZGVkIGRheXMgYmVm
+b3JlLCBpdCB3b3JrZWQgdmVyeSB3ZWxsLCBtYXliZSB0aGUgcHJvZ3JhbSBkb2Vzbid0IA0KZW11
+bGF0ZSB0aGUgcmVhbCBlbnZpcm9ubWVudCBkdWUgdG8gdGhlIHNhbWUgc2V0dGluZyByYXRlLCBz
+byBJIG1vZGlmaWVkIHRoaXMgcHJvZ3JhbSBhcyB3aGljaCBpbiB0aGUgYXR0YWNobWVudC4NCmlm
+IHlvdSBhcmUgbW9yZSBjb252ZW5pZW50LCB5b3UgY2FuIGhlbHAgbWUgdG8gaGF2ZSBhIGxvb2sg
+b2YgaXQuDQpBbmQgSSBoYXZlIGEgb3BpbmlvbiwgYmVjYXVzZSBvdXIgcHJvZHVjdCBpcyBiYXNl
+ZCBvbiBWZXJzaW9uIFhlbjQuMC54LCBpZiB5b3UgaGF2ZSBlbm91Z2ggdGltZSwgY2FuIHlvdSB3
+cml0ZSANCmFub3RoZXIgcGF0Y2ggYmFzZWQgaHR0cDovL3hlbmJpdHMueGVuLm9yZy9oZy94ZW4t
+NC4wLXRlc3RpbmcuaGcvIGZvciBtZSwgdGhhbmsgeW91IHZlcnkgbXVjaCENCg0KMyBJIGFsc28g
+aGF2ZSBhIHRob3VnaHQgdGhhdCBjYW4gd2UgaGF2ZSBzb21lIGRldGVjdGluZyBtZXRob2RzIHRv
+IGZpbmQgdGhlIGxhZ2dpbmcgdGltZSBlYXJsaWVyIHRvIGFkanVzdCB0aW1lDQpiYWNrIHRvIG5v
+cm1hbCB2YWx1ZSBpbiB0aGUgY29kZT8NCg0KYmVzdCByZWdhcmRzLA0KDQoNCg0KDQp0dXBlbmcy
+MTINCg0KU2Vjb25kIGRyYWZ0IG9mIGEgcGF0Y2ggcG9zdGVkOyBubyB0ZXN0IHJlc3VsdHMgc28g
+ZmFyIGZvciBmaXJzdCBkcmFmdC4NCkphbg0KDQpGcm9tOiBKYW4gQmV1bGljaA0KRGF0ZTogMjAx
+Mi0wOC0xNCAxNzo1MQ0KVG86IFlhbmcgWiBaaGFuZzsgS2VpciBGcmFzZXI7IFRpbSBEZWVnYW4N
+CkNDOiB0dXBlbmcyMTI7IHhlbi1kZXZlbA0KU3ViamVjdDogW1hlbi1kZXZlbF0gW1BBVENILCBS
+RkMgdjJdIHg4Ni9IVk06IGFzc29ydGVkIFJUQyBlbXVsYXRpb24gYWRqdXN0bWVudHMgKHdhcyBS
+ZTogQmlnIEJ1ZzpUaW1lIGluIFZNIGdvZXMgc2xvd2VyLi4uKQ0KQmVsb3cvYXR0YWNoZWQgYSBz
+ZWNvbmQgZHJhZnQgb2YgYSBwYXRjaCB0byBmaXggbm90IG9ubHkgdGhpcw0KaXNzdWUsIGJ1dCBh
+IGZldyBtb3JlIHdpdGggdGhlIFJUQyBlbXVsYXRpb24uDQoNCktlaXIsIFRpbSwgWWFuZywgb3Ro
+ZXJzIC0gdGhlIGNoYW5nZSB0byB4ZW4vYXJjaC94ODYvaHZtL3ZwdC5jIHJlYWxseQ0KbG9va3Mg
+bW9yZSBsaWtlIGEgaGFjayB0aGFuIGEgc29sdXRpb24sIGJ1dCBJIGRvbid0IHNlZSBhbm90aGVy
+DQp3YXkgd2l0aG91dCBtdWNoIG1vcmUgaW50cnVzaXZlIGNoYW5nZXMuIFRoZSBwb2ludCBpcyB0
+aGF0IHdlDQp3YW50IHRoZSBSVEMgY29kZSB0byBkZWNpZGUgd2hldGhlciB0byBnZW5lcmF0ZSBh
+biBpbnRlcnJ1cHQNCihzbyB0aGF0IFJUQ19QRiBjYW4gYmVjb21lIHNldCBjb3JyZWN0bHkgZXZl
+biB3aXRob3V0IFJUQ19QSUUNCmdldHRpbmcgZW5hYmxlZCBieSB0aGUgZ3Vlc3QpLg0KDQpBZGRp
+dGlvbmFsbHkgSSB3b25kZXIgd2hldGhlciBhbGFybV90aW1lcl91cGRhdGUoKSBzaG91bGRuJ3QN
+CmJhaWwgb24gbm9uLWNvbmZvcm1pbmcgUlRDXypfQUxBUk0gdmFsdWVzIChhcyB0aG9zZSB3b3Vs
+ZA0KbmV2ZXIgbWF0Y2ggdGhlIHZhbHVlcyB0aGV5IGdldCBjb21wYXJlZCBhZ2FpbnN0LCB3aGVy
+ZWFzDQp3aXRoIHRoZSBjdXJyZW50IHdheSBvZiBoYW5kbGluZyB0aGlzIHRoZXkgd291bGQgYXBw
+ZWFyIHRvDQptYXRjaCAtIGkuZS4gc2V0IFJUQ19BRiBhbmQgcG9zc2libHkgZ2VuZXJhdGUgYW4g
+aW50ZXJydXB0IC0NCnNvbWUgb3RoZXIgcG9pbnQgaW4gdGltZSkuIEkgcmVhbGl6ZSB0aGUgYmVo
+YXZpb3IgaGVyZSBtYXkgbm90DQpiZSBwcmVjaXNlbHkgc3BlY2lmaWVkLCBidXQgdGhlIHNwZWNp
+ZmljYXRpb24gc2F5aW5nICJ0aGUgY3VycmVudA0KdGltZSBoYXMgbWF0Y2hlZCB0aGUgYWxhcm0g
+dGltZSIgbWVhbnMgdG8gbWUgYSB2YWx1ZSBieSB2YWx1ZQ0KY29tcGFyaXNvbiwgd2hpY2ggaW1w
+bGllcyB0aGF0IG5vbi1jb25mb3JtaW5nIHZhbHVlcyB3b3VsZA0KbmV2ZXIgbWF0Y2ggKHNpbmNl
+IG5vbi1jb25mb3JtaW5nIGN1cnJlbnQgdGltZSB2YWx1ZXMgY291bGQNCmdldCByZXBsYWNlZCBh
+dCBhbnkgdGltZSBieSB0aGUgaGFyZHdhcmUgZHVlIHRvIG92ZXJmbG93DQpkZXRlY3Rpb24pLg0K
+DQpKYW4NCg0KLSBkb24ndCBjYWxsIHJ0Y190aW1lcl91cGRhdGUoKSBvbiBSRUdfQSB3cml0ZXMg
+d2hlbiB0aGUgdmFsdWUgZGlkbid0DQogIGNoYW5nZSAoZG9pbmcgdGhlIGNhbGwgYWx3YXlzIHdh
+cyByZXBvcnRlZCB0byBjYXVzZSB3YWxsIGNsb2NrIHRpbWUNCiAgbGFnZ2luZyB3aXRoIHRoZSBK
+Vk0gcnVubmluZyBvbiBXaW5kb3dzKQ0KLSBkb24ndCBjYWxsIHJ0Y190aW1lcl91cGRhdGUoKSBv
+biBSRUdfQiB3cml0ZXMgYXQgYWxsDQotIG9ubHkgY2FsbCBhbGFybV90aW1lcl91cGRhdGUoKSBv
+biBSRUdfQiB3cml0ZXMgd2hlbiByZWxldmFudCBiaXRzDQogIGNoYW5nZQ0KLSBvbmx5IGNhbGwg
+Y2hlY2tfdXBkYXRlX3RpbWVyKCkgb24gUkVHX0Igd3JpdGVzIHdoZW4gU0VUIGNoYW5nZXMNCi0g
+aW5zdGVhZCBwcm9wZXJseSBoYW5kbGUgQUYgYW5kIFBGIHdoZW4gdGhlIGd1ZXN0IGlzIG5vdCBh
+bHNvIHNldHRpbmcNCiAgQUlFL1BJRSByZXNwZWN0aXZlbHkgKGZvciBVRiB0aGlzIHdhcyBhbHJl
+YWR5IHRoZSBjYXNlLCBvbmx5IGENCiAgY29tbWVudCB3YXMgc2xpZ2h0bHkgaW5hY2N1cmF0ZSkN
+Ci0gcmFpc2UgdGhlIFJUQyBJUlEgbm90IG9ubHkgd2hlbiBVSUUgZ2V0cyBzZXQgd2hpbGUgVUYg
+d2FzIGFscmVhZHkNCiAgc2V0LCBidXQgZ2VuZXJhbGl6ZSB0aGlzIHRvIGNvdmVyIEFJRSBhbmQg
+UElFIGFzIHdlbGwNCi0gcHJvcGVybHkgbWFzayBvZmYgYml0IDcgd2hlbiByZXRyaWV2aW5nIHRo
+ZSBob3VyIHZhbHVlcyBpbg0KICBhbGFybV90aW1lcl91cGRhdGUoKSwgYW5kIHByb3Blcmx5IHVz
+ZSBSVENfSE9VUlNfQUxBUk0ncyBiaXQgNyB3aGVuDQogIGNvbnZlcnRpbmcgZnJvbSAxMi0gdG8g
+MjQtaG91ciB2YWx1ZQ0KLSBhbHNvIGhhbmRsZSB0aGUgdHdvIG90aGVyIHBvc3NpYmxlIGNsb2Nr
+IGJhc2VzDQotIHVzZSBSVENfKiBuYW1lcyBpbiBhIGNvdXBsZSBvZiBwbGFjZXMgd2hlcmUgbGl0
+ZXJhbCBudW1iZXJzIHdlcmUgdXNlZA0KICBzbyBmYXINCg0KLS0tIGEveGVuL2FyY2gveDg2L2h2
+bS9ydGMuYw0KKysrIGIveGVuL2FyY2gveDg2L2h2bS9ydGMuYw0KQEAgLTUwLDExICs1MCwyNCBA
+QCBzdGF0aWMgdm9pZCBydGNfc2V0X3RpbWUoUlRDU3RhdGUgKnMpOw0KIHN0YXRpYyBpbmxpbmUg
+aW50IGZyb21fYmNkKFJUQ1N0YXRlICpzLCBpbnQgYSk7DQogc3RhdGljIGlubGluZSBpbnQgY29u
+dmVydF9ob3VyKFJUQ1N0YXRlICpzLCBpbnQgaG91cik7DQoNCi1zdGF0aWMgdm9pZCBydGNfcGVy
+aW9kaWNfY2Ioc3RydWN0IHZjcHUgKnYsIHZvaWQgKm9wYXF1ZSkNCitzdGF0aWMgdm9pZCBydGNf
+dG9nZ2xlX2lycShSVENTdGF0ZSAqcykNCit7DQorICAgIHN0cnVjdCBkb21haW4gKmQgPSB2cnRj
+X2RvbWFpbihzKTsNCisNCisgICAgQVNTRVJUKHNwaW5faXNfbG9ja2VkKCZzLT5sb2NrKSk7DQor
+ICAgIHMtPmh3LmNtb3NfZGF0YVtSVENfUkVHX0NdIHw9IFJUQ19JUlFGOw0KKyAgICBodm1faXNh
+X2lycV9kZWFzc2VydChkLCBSVENfSVJRKTsNCisgICAgaHZtX2lzYV9pcnFfYXNzZXJ0KGQsIFJU
+Q19JUlEpOw0KK30NCisNCit2b2lkIHJ0Y19wZXJpb2RpY19pbnRlcnJ1cHQodm9pZCAqb3BhcXVl
+KQ0KIHsNCiAgICAgUlRDU3RhdGUgKnMgPSBvcGFxdWU7DQorDQogICAgIHNwaW5fbG9jaygmcy0+
+bG9jayk7DQotICAgIHMtPmh3LmNtb3NfZGF0YVtSVENfUkVHX0NdIHw9IDB4YzA7DQorICAgIHMt
+Pmh3LmNtb3NfZGF0YVtSVENfUkVHX0NdIHw9IFJUQ19QRjsNCisgICAgaWYgKCBzLT5ody5jbW9z
+X2RhdGFbUlRDX1JFR19CXSAmIFJUQ19QSUUgKQ0KKyAgICAgICAgcnRjX3RvZ2dsZV9pcnEocyk7
+DQogICAgIHNwaW5fdW5sb2NrKCZzLT5sb2NrKTsNCiB9DQoNCkBAIC02OCwxOSArODEsMjUgQEAg
+c3RhdGljIHZvaWQgcnRjX3RpbWVyX3VwZGF0ZShSVENTdGF0ZSAqcw0KICAgICBBU1NFUlQoc3Bp
+bl9pc19sb2NrZWQoJnMtPmxvY2spKTsNCg0KICAgICBwZXJpb2RfY29kZSA9IHMtPmh3LmNtb3Nf
+ZGF0YVtSVENfUkVHX0FdICYgUlRDX1JBVEVfU0VMRUNUOw0KLSAgICBpZiAoIChwZXJpb2RfY29k
+ZSAhPSAwKSAmJiAocy0+aHcuY21vc19kYXRhW1JUQ19SRUdfQl0gJiBSVENfUElFKSApDQorICAg
+IHN3aXRjaCAoIHMtPmh3LmNtb3NfZGF0YVtSVENfUkVHX0FdICYgUlRDX0RJVl9DVEwgKQ0KICAg
+ICB7DQotICAgICAgICBpZiAoIHBlcmlvZF9jb2RlIDw9IDIgKQ0KKyAgICBjYXNlIFJUQ19SRUZf
+Q0xDS18zMktIWjoNCisgICAgICAgIGlmICggKHBlcmlvZF9jb2RlICE9IDApICYmIChwZXJpb2Rf
+Y29kZSA8PSAyKSApDQogICAgICAgICAgICAgcGVyaW9kX2NvZGUgKz0gNzsNCi0NCi0gICAgICAg
+IHBlcmlvZCA9IDEgPDwgKHBlcmlvZF9jb2RlIC0gMSk7IC8qIHBlcmlvZCBpbiAzMiBLaHogY3lj
+bGVzICovDQotICAgICAgICBwZXJpb2QgPSBESVZfUk9VTkQoKHBlcmlvZCAqIDEwMDAwMDAwMDBV
+TEwpLCAzMjc2OCk7IC8qIHBlcmlvZCBpbiBucyAqLw0KLSAgICAgICAgY3JlYXRlX3BlcmlvZGlj
+X3RpbWUodiwgJnMtPnB0LCBwZXJpb2QsIHBlcmlvZCwgUlRDX0lSUSwNCi0gICAgICAgICAgICAg
+ICAgICAgICAgICAgICAgIHJ0Y19wZXJpb2RpY19jYiwgcyk7DQotICAgIH0NCi0gICAgZWxzZQ0K
+LSAgICB7DQorICAgICAgICAvKiBmYWxsIHRocm91Z2ggKi8NCisgICAgY2FzZSBSVENfUkVGX0NM
+Q0tfMU1IWjoNCisgICAgY2FzZSBSVENfUkVGX0NMQ0tfNE1IWjoNCisgICAgICAgIGlmICggcGVy
+aW9kX2NvZGUgIT0gMCApDQorICAgICAgICB7DQorICAgICAgICAgICAgcGVyaW9kID0gMSA8PCAo
+cGVyaW9kX2NvZGUgLSAxKTsgLyogcGVyaW9kIGluIDMyIEtoeiBjeWNsZXMgKi8NCisgICAgICAg
+ICAgICBwZXJpb2QgPSBESVZfUk9VTkQocGVyaW9kICogMTAwMDAwMDAwMFVMTCwgMzI3NjgpOyAv
+KiBpbiBucyAqLw0KKyAgICAgICAgICAgIGNyZWF0ZV9wZXJpb2RpY190aW1lKHYsICZzLT5wdCwg
+cGVyaW9kLCBwZXJpb2QsIFJUQ19JUlEsIE5VTEwsIHMpOw0KKyAgICAgICAgICAgIGJyZWFrOw0K
+KyAgICAgICAgfQ0KKyAgICAgICAgLyogZmFsbCB0aHJvdWdoICovDQorICAgIGRlZmF1bHQ6DQog
+ICAgICAgICBkZXN0cm95X3BlcmlvZGljX3RpbWUoJnMtPnB0KTsNCisgICAgICAgIGJyZWFrOw0K
+ICAgICB9DQogfQ0KDQpAQCAtMTAyLDcgKzEyMSw3IEBAIHN0YXRpYyB2b2lkIGNoZWNrX3VwZGF0
+ZV90aW1lcihSVENTdGF0ZSANCiAgICAgICAgIGd1ZXN0X3VzZWMgPSBnZXRfbG9jYWx0aW1lX3Vz
+KGQpICUgVVNFQ19QRVJfU0VDOw0KICAgICAgICAgaWYgKGd1ZXN0X3VzZWMgPj0gKFVTRUNfUEVS
+X1NFQyAtIDI0NCkpDQogICAgICAgICB7DQotICAgICAgICAgICAgLyogUlRDIGlzIGluIHVwZGF0
+ZSBjeWNsZSB3aGVuIGVuYWJsaW5nIFVJRSAqLw0KKyAgICAgICAgICAgIC8qIFJUQyBpcyBpbiB1
+cGRhdGUgY3ljbGUgKi8NCiAgICAgICAgICAgICBzLT5ody5jbW9zX2RhdGFbUlRDX1JFR19BXSB8
+PSBSVENfVUlQOw0KICAgICAgICAgICAgIG5leHRfdXBkYXRlX3RpbWUgPSAoVVNFQ19QRVJfU0VD
+IC0gZ3Vlc3RfdXNlYykgKiBOU19QRVJfVVNFQzsNCiAgICAgICAgICAgICBleHBpcmVfdGltZSA9
+IE5PVygpICsgbmV4dF91cGRhdGVfdGltZTsNCkBAIC0xNDQsNyArMTYzLDYgQEAgc3RhdGljIHZv
+aWQgcnRjX3VwZGF0ZV90aW1lcih2b2lkICpvcGFxdQ0KIHN0YXRpYyB2b2lkIHJ0Y191cGRhdGVf
+dGltZXIyKHZvaWQgKm9wYXF1ZSkNCiB7DQogICAgIFJUQ1N0YXRlICpzID0gb3BhcXVlOw0KLSAg
+ICBzdHJ1Y3QgZG9tYWluICpkID0gdnJ0Y19kb21haW4ocyk7DQoNCiAgICAgc3Bpbl9sb2NrKCZz
+LT5sb2NrKTsNCiAgICAgaWYgKCEocy0+aHcuY21vc19kYXRhW1JUQ19SRUdfQl0gJiBSVENfU0VU
+KSkNCkBAIC0xNTIsMTEgKzE3MCw3IEBAIHN0YXRpYyB2b2lkIHJ0Y191cGRhdGVfdGltZXIyKHZv
+aWQgKm9wYXENCiAgICAgICAgIHMtPmh3LmNtb3NfZGF0YVtSVENfUkVHX0NdIHw9IFJUQ19VRjsN
+CiAgICAgICAgIHMtPmh3LmNtb3NfZGF0YVtSVENfUkVHX0FdICY9IH5SVENfVUlQOw0KICAgICAg
+ICAgaWYgKChzLT5ody5jbW9zX2RhdGFbUlRDX1JFR19CXSAmIFJUQ19VSUUpKQ0KLSAgICAgICAg
+ew0KLSAgICAgICAgICAgIHMtPmh3LmNtb3NfZGF0YVtSVENfUkVHX0NdIHw9IFJUQ19JUlFGOw0K
+LSAgICAgICAgICAgIGh2bV9pc2FfaXJxX2RlYXNzZXJ0KGQsIFJUQ19JUlEpOw0KLSAgICAgICAg
+ICAgIGh2bV9pc2FfaXJxX2Fzc2VydChkLCBSVENfSVJRKTsNCi0gICAgICAgIH0NCisgICAgICAg
+ICAgICBydGNfdG9nZ2xlX2lycShzKTsNCiAgICAgICAgIGNoZWNrX3VwZGF0ZV90aW1lcihzKTsN
+CiAgICAgfQ0KICAgICBzcGluX3VubG9jaygmcy0+bG9jayk7DQpAQCAtMTc1LDIxICsxODksMTgg
+QEAgc3RhdGljIHZvaWQgYWxhcm1fdGltZXJfdXBkYXRlKFJUQ1N0YXRlIA0KDQogICAgIHN0b3Bf
+dGltZXIoJnMtPmFsYXJtX3RpbWVyKTsNCg0KLSAgICBpZiAoKHMtPmh3LmNtb3NfZGF0YVtSVENf
+UkVHX0JdICYgUlRDX0FJRSkgJiYNCi0gICAgICAgICAgICAhKHMtPmh3LmNtb3NfZGF0YVtSVENf
+UkVHX0JdICYgUlRDX1NFVCkpDQorICAgIGlmICggIShzLT5ody5jbW9zX2RhdGFbUlRDX1JFR19C
+XSAmIFJUQ19TRVQpICkNCiAgICAgew0KICAgICAgICAgcy0+Y3VycmVudF90bSA9IGdtdGltZShn
+ZXRfbG9jYWx0aW1lKGQpKTsNCiAgICAgICAgIHJ0Y19jb3B5X2RhdGUocyk7DQoNCiAgICAgICAg
+IGFsYXJtX3NlYyA9IGZyb21fYmNkKHMsIHMtPmh3LmNtb3NfZGF0YVtSVENfU0VDT05EU19BTEFS
+TV0pOw0KICAgICAgICAgYWxhcm1fbWluID0gZnJvbV9iY2Qocywgcy0+aHcuY21vc19kYXRhW1JU
+Q19NSU5VVEVTX0FMQVJNXSk7DQotICAgICAgICBhbGFybV9ob3VyID0gZnJvbV9iY2Qocywgcy0+
+aHcuY21vc19kYXRhW1JUQ19IT1VSU19BTEFSTV0pOw0KLSAgICAgICAgYWxhcm1faG91ciA9IGNv
+bnZlcnRfaG91cihzLCBhbGFybV9ob3VyKTsNCisgICAgICAgIGFsYXJtX2hvdXIgPSBjb252ZXJ0
+X2hvdXIocywgcy0+aHcuY21vc19kYXRhW1JUQ19IT1VSU19BTEFSTV0pOw0KDQogICAgICAgICBj
+dXJfc2VjID0gZnJvbV9iY2Qocywgcy0+aHcuY21vc19kYXRhW1JUQ19TRUNPTkRTXSk7DQogICAg
+ICAgICBjdXJfbWluID0gZnJvbV9iY2Qocywgcy0+aHcuY21vc19kYXRhW1JUQ19NSU5VVEVTXSk7
+DQotICAgICAgICBjdXJfaG91ciA9IGZyb21fYmNkKHMsIHMtPmh3LmNtb3NfZGF0YVtSVENfSE9V
+UlNdKTsNCi0gICAgICAgIGN1cl9ob3VyID0gY29udmVydF9ob3VyKHMsIGN1cl9ob3VyKTsNCisg
+ICAgICAgIGN1cl9ob3VyID0gY29udmVydF9ob3VyKHMsIHMtPmh3LmNtb3NfZGF0YVtSVENfSE9V
+UlNdKTsNCg0KICAgICAgICAgbmV4dF91cGRhdGVfdGltZSA9IFVTRUNfUEVSX1NFQyAtIChnZXRf
+bG9jYWx0aW1lX3VzKGQpICUgVVNFQ19QRVJfU0VDKTsNCiAgICAgICAgIG5leHRfdXBkYXRlX3Rp
+bWUgPSBuZXh0X3VwZGF0ZV90aW1lICogTlNfUEVSX1VTRUMgKyBOT1coKTsNCkBAIC0zNDMsNyAr
+MzU0LDYgQEAgc3RhdGljIHZvaWQgYWxhcm1fdGltZXJfdXBkYXRlKFJUQ1N0YXRlIA0KIHN0YXRp
+YyB2b2lkIHJ0Y19hbGFybV9jYih2b2lkICpvcGFxdWUpDQogew0KICAgICBSVENTdGF0ZSAqcyA9
+IG9wYXF1ZTsNCi0gICAgc3RydWN0IGRvbWFpbiAqZCA9IHZydGNfZG9tYWluKHMpOw0KDQogICAg
+IHNwaW5fbG9jaygmcy0+bG9jayk7DQogICAgIGlmICghKHMtPmh3LmNtb3NfZGF0YVtSVENfUkVH
+X0JdICYgUlRDX1NFVCkpDQpAQCAtMzUxLDExICszNjEsNyBAQCBzdGF0aWMgdm9pZCBydGNfYWxh
+cm1fY2Iodm9pZCAqb3BhcXVlKQ0KICAgICAgICAgcy0+aHcuY21vc19kYXRhW1JUQ19SRUdfQ10g
+fD0gUlRDX0FGOw0KICAgICAgICAgLyogYWxhcm0gaW50ZXJydXB0ICovDQogICAgICAgICBpZiAo
+cy0+aHcuY21vc19kYXRhW1JUQ19SRUdfQl0gJiBSVENfQUlFKQ0KLSAgICAgICAgew0KLSAgICAg
+ICAgICAgIHMtPmh3LmNtb3NfZGF0YVtSVENfUkVHX0NdIHw9IFJUQ19JUlFGOw0KLSAgICAgICAg
+ICAgIGh2bV9pc2FfaXJxX2RlYXNzZXJ0KGQsIFJUQ19JUlEpOw0KLSAgICAgICAgICAgIGh2bV9p
+c2FfaXJxX2Fzc2VydChkLCBSVENfSVJRKTsNCi0gICAgICAgIH0NCisgICAgICAgICAgICBydGNf
+dG9nZ2xlX2lycShzKTsNCiAgICAgICAgIGFsYXJtX3RpbWVyX3VwZGF0ZShzKTsNCiAgICAgfQ0K
+ICAgICBzcGluX3VubG9jaygmcy0+bG9jayk7DQpAQCAtMzY1LDYgKzM3MSw3IEBAIHN0YXRpYyBp
+bnQgcnRjX2lvcG9ydF93cml0ZSh2b2lkICpvcGFxdWUNCiB7DQogICAgIFJUQ1N0YXRlICpzID0g
+b3BhcXVlOw0KICAgICBzdHJ1Y3QgZG9tYWluICpkID0gdnJ0Y19kb21haW4ocyk7DQorICAgIHVp
+bnQzMl90IG9yaWcsIG1hc2s7DQoNCiAgICAgc3Bpbl9sb2NrKCZzLT5sb2NrKTsNCg0KQEAgLTM4
+Miw2ICszODksNyBAQCBzdGF0aWMgaW50IHJ0Y19pb3BvcnRfd3JpdGUodm9pZCAqb3BhcXVlDQog
+ICAgICAgICByZXR1cm4gMDsNCiAgICAgfQ0KDQorICAgIG9yaWcgPSBzLT5ody5jbW9zX2RhdGFb
+cy0+aHcuY21vc19pbmRleF07DQogICAgIHN3aXRjaCAoIHMtPmh3LmNtb3NfaW5kZXggKQ0KICAg
+ICB7DQogICAgIGNhc2UgUlRDX1NFQ09ORFNfQUxBUk06DQpAQCAtNDA1LDkgKzQxMyw5IEBAIHN0
+YXRpYyBpbnQgcnRjX2lvcG9ydF93cml0ZSh2b2lkICpvcGFxdWUNCiAgICAgICAgIGJyZWFrOw0K
+ICAgICBjYXNlIFJUQ19SRUdfQToNCiAgICAgICAgIC8qIFVJUCBiaXQgaXMgcmVhZCBvbmx5ICov
+DQotICAgICAgICBzLT5ody5jbW9zX2RhdGFbUlRDX1JFR19BXSA9IChkYXRhICYgflJUQ19VSVAp
+IHwNCi0gICAgICAgICAgICAocy0+aHcuY21vc19kYXRhW1JUQ19SRUdfQV0gJiBSVENfVUlQKTsN
+Ci0gICAgICAgIHJ0Y190aW1lcl91cGRhdGUocyk7DQorICAgICAgICBzLT5ody5jbW9zX2RhdGFb
+UlRDX1JFR19BXSA9IChkYXRhICYgflJUQ19VSVApIHwgKG9yaWcgJiBSVENfVUlQKTsNCisgICAg
+ICAgIGlmICggKGRhdGEgXiBvcmlnKSAmIChSVENfUkFURV9TRUxFQ1QgfCBSVENfRElWX0NUTCkg
+KQ0KKyAgICAgICAgICAgIHJ0Y190aW1lcl91cGRhdGUocyk7DQogICAgICAgICBicmVhazsNCiAg
+ICAgY2FzZSBSVENfUkVHX0I6DQogICAgICAgICBpZiAoIGRhdGEgJiBSVENfU0VUICkNCkBAIC00
+MTUsNyArNDIzLDcgQEAgc3RhdGljIGludCBydGNfaW9wb3J0X3dyaXRlKHZvaWQgKm9wYXF1ZQ0K
+ICAgICAgICAgICAgIC8qIHNldCBtb2RlOiByZXNldCBVSVAgbW9kZSAqLw0KICAgICAgICAgICAg
+IHMtPmh3LmNtb3NfZGF0YVtSVENfUkVHX0FdICY9IH5SVENfVUlQOw0KICAgICAgICAgICAgIC8q
+IGFkanVzdCBjbW9zIGJlZm9yZSBzdG9wcGluZyAqLw0KLSAgICAgICAgICAgIGlmICghKHMtPmh3
+LmNtb3NfZGF0YVtSVENfUkVHX0JdICYgUlRDX1NFVCkpDQorICAgICAgICAgICAgaWYgKCEob3Jp
+ZyAmIFJUQ19TRVQpKQ0KICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgcy0+Y3VycmVu
+dF90bSA9IGdtdGltZShnZXRfbG9jYWx0aW1lKGQpKTsNCiAgICAgICAgICAgICAgICAgcnRjX2Nv
+cHlfZGF0ZShzKTsNCkBAIC00MjQsMjEgKzQzMiwyNiBAQCBzdGF0aWMgaW50IHJ0Y19pb3BvcnRf
+d3JpdGUodm9pZCAqb3BhcXVlDQogICAgICAgICBlbHNlDQogICAgICAgICB7DQogICAgICAgICAg
+ICAgLyogaWYgZGlzYWJsaW5nIHNldCBtb2RlLCB1cGRhdGUgdGhlIHRpbWUgKi8NCi0gICAgICAg
+ICAgICBpZiAoIHMtPmh3LmNtb3NfZGF0YVtSVENfUkVHX0JdICYgUlRDX1NFVCApDQorICAgICAg
+ICAgICAgaWYgKCBvcmlnICYgUlRDX1NFVCApDQogICAgICAgICAgICAgICAgIHJ0Y19zZXRfdGlt
+ZShzKTsNCiAgICAgICAgIH0NCi0gICAgICAgIC8qIGlmIHRoZSBpbnRlcnJ1cHQgaXMgYWxyZWFk
+eSBzZXQgd2hlbiB0aGUgaW50ZXJydXB0IGJlY29tZQ0KLSAgICAgICAgICogZW5hYmxlZCwgcmFp
+c2UgYW4gaW50ZXJydXB0IGltbWVkaWF0ZWx5Ki8NCi0gICAgICAgIGlmICgoZGF0YSAmIFJUQ19V
+SUUpICYmICEocy0+aHcuY21vc19kYXRhW1JUQ19SRUdfQl0gJiBSVENfVUlFKSkNCi0gICAgICAg
+ICAgICBpZiAocy0+aHcuY21vc19kYXRhW1JUQ19SRUdfQ10gJiBSVENfVUYpDQorICAgICAgICAv
+Kg0KKyAgICAgICAgICogSWYgdGhlIGludGVycnVwdCBpcyBhbHJlYWR5IHNldCB3aGVuIHRoZSBp
+bnRlcnJ1cHQgYmVjb21lcw0KKyAgICAgICAgICogZW5hYmxlZCwgcmFpc2UgYW4gaW50ZXJydXB0
+IGltbWVkaWF0ZWx5Lg0KKyAgICAgICAgICogTkI6IFJUQ197QSxQLFV9SUUgPT0gUlRDX3tBLFAs
+VX1GIHJlc3BlY3RpdmVseS4NCisgICAgICAgICAqLw0KKyAgICAgICAgZm9yICggbWFzayA9IFJU
+Q19VSUU7IG1hc2sgPD0gUlRDX1BJRTsgbWFzayA8PD0gMSApDQorICAgICAgICAgICAgaWYgKCAo
+ZGF0YSAmIG1hc2spICYmICEob3JpZyAmIG1hc2spICYmDQorICAgICAgICAgICAgICAgICAocy0+
+aHcuY21vc19kYXRhW1JUQ19SRUdfQ10gJiBtYXNrKSApDQogICAgICAgICAgICAgew0KLSAgICAg
+ICAgICAgICAgICBodm1faXNhX2lycV9kZWFzc2VydChkLCBSVENfSVJRKTsNCi0gICAgICAgICAg
+ICAgICAgaHZtX2lzYV9pcnFfYXNzZXJ0KGQsIFJUQ19JUlEpOw0KKyAgICAgICAgICAgICAgICBy
+dGNfdG9nZ2xlX2lycShzKTsNCisgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAg
+fQ0KICAgICAgICAgcy0+aHcuY21vc19kYXRhW1JUQ19SRUdfQl0gPSBkYXRhOw0KLSAgICAgICAg
+cnRjX3RpbWVyX3VwZGF0ZShzKTsNCi0gICAgICAgIGNoZWNrX3VwZGF0ZV90aW1lcihzKTsNCi0g
+ICAgICAgIGFsYXJtX3RpbWVyX3VwZGF0ZShzKTsNCisgICAgICAgIGlmICggKGRhdGEgXiBvcmln
+KSAmIFJUQ19TRVQgKQ0KKyAgICAgICAgICAgIGNoZWNrX3VwZGF0ZV90aW1lcihzKTsNCisgICAg
+ICAgIGlmICggKGRhdGEgXiBvcmlnKSAmIChSVENfMjRIIHwgUlRDX0RNX0JJTkFSWSB8IFJUQ19T
+RVQpICkNCisgICAgICAgICAgICBhbGFybV90aW1lcl91cGRhdGUocyk7DQogICAgICAgICBicmVh
+azsNCiAgICAgY2FzZSBSVENfUkVHX0M6DQogICAgIGNhc2UgUlRDX1JFR19EOg0KQEAgLTQ1Myw3
+ICs0NjYsNyBAQCBzdGF0aWMgaW50IHJ0Y19pb3BvcnRfd3JpdGUodm9pZCAqb3BhcXVlDQoNCiBz
+dGF0aWMgaW5saW5lIGludCB0b19iY2QoUlRDU3RhdGUgKnMsIGludCBhKQ0KIHsNCi0gICAgaWYg
+KCBzLT5ody5jbW9zX2RhdGFbUlRDX1JFR19CXSAmIDB4MDQgKQ0KKyAgICBpZiAoIHMtPmh3LmNt
+b3NfZGF0YVtSVENfUkVHX0JdICYgUlRDX0RNX0JJTkFSWSApDQogICAgICAgICByZXR1cm4gYTsN
+CiAgICAgZWxzZQ0KICAgICAgICAgcmV0dXJuICgoYSAvIDEwKSA8PCA0KSB8IChhICUgMTApOw0K
+QEAgLTQ2MSw3ICs0NzQsNyBAQCBzdGF0aWMgaW5saW5lIGludCB0b19iY2QoUlRDU3RhdGUgKnMs
+IGluDQoNCiBzdGF0aWMgaW5saW5lIGludCBmcm9tX2JjZChSVENTdGF0ZSAqcywgaW50IGEpDQog
+ew0KLSAgICBpZiAoIHMtPmh3LmNtb3NfZGF0YVtSVENfUkVHX0JdICYgMHgwNCApDQorICAgIGlm
+ICggcy0+aHcuY21vc19kYXRhW1JUQ19SRUdfQl0gJiBSVENfRE1fQklOQVJZICkNCiAgICAgICAg
+IHJldHVybiBhOw0KICAgICBlbHNlDQogICAgICAgICByZXR1cm4gKChhID4+IDQpICogMTApICsg
+KGEgJiAweDBmKTsNCkBAIC00NjksMTIgKzQ4MiwxNCBAQCBzdGF0aWMgaW5saW5lIGludCBmcm9t
+X2JjZChSVENTdGF0ZSAqcywgDQoNCiAvKiBIb3VycyBpbiAxMiBob3VyIG1vZGUgYXJlIGluIDEt
+MTIgcmFuZ2UsIG5vdCAwLTExLg0KICAqIFNvIHdlIG5lZWQgY29udmVydCBpdCBiZWZvcmUgdXNp
+bmcgaXQqLw0KLXN0YXRpYyBpbmxpbmUgaW50IGNvbnZlcnRfaG91cihSVENTdGF0ZSAqcywgaW50
+IGhvdXIpDQorc3RhdGljIGlubGluZSBpbnQgY29udmVydF9ob3VyKFJUQ1N0YXRlICpzLCBpbnQg
+cmF3KQ0KIHsNCisgICAgaW50IGhvdXIgPSBmcm9tX2JjZChzLCByYXcgJiAweDdmKTsNCisNCiAg
+ICAgaWYgKCEocy0+aHcuY21vc19kYXRhW1JUQ19SRUdfQl0gJiBSVENfMjRIKSkNCiAgICAgew0K
+ICAgICAgICAgaG91ciAlPSAxMjsNCi0gICAgICAgIGlmIChzLT5ody5jbW9zX2RhdGFbUlRDX0hP
+VVJTXSAmIDB4ODApDQorICAgICAgICBpZiAocmF3ICYgMHg4MCkNCiAgICAgICAgICAgICBob3Vy
+ICs9IDEyOw0KICAgICB9DQogICAgIHJldHVybiBob3VyOw0KQEAgLTQ5Myw4ICs1MDgsNyBAQCBz
+dGF0aWMgdm9pZCBydGNfc2V0X3RpbWUoUlRDU3RhdGUgKnMpDQogICAgIA0KICAgICB0bS0+dG1f
+c2VjID0gZnJvbV9iY2Qocywgcy0+aHcuY21vc19kYXRhW1JUQ19TRUNPTkRTXSk7DQogICAgIHRt
+LT50bV9taW4gPSBmcm9tX2JjZChzLCBzLT5ody5jbW9zX2RhdGFbUlRDX01JTlVURVNdKTsNCi0g
+ICAgdG0tPnRtX2hvdXIgPSBmcm9tX2JjZChzLCBzLT5ody5jbW9zX2RhdGFbUlRDX0hPVVJTXSAm
+IDB4N2YpOw0KLSAgICB0bS0+dG1faG91ciA9IGNvbnZlcnRfaG91cihzLCB0bS0+dG1faG91cik7
+DQorICAgIHRtLT50bV9ob3VyID0gY29udmVydF9ob3VyKHMsIHMtPmh3LmNtb3NfZGF0YVtSVENf
+SE9VUlNdKTsNCiAgICAgdG0tPnRtX3dkYXkgPSBmcm9tX2JjZChzLCBzLT5ody5jbW9zX2RhdGFb
+UlRDX0RBWV9PRl9XRUVLXSk7DQogICAgIHRtLT50bV9tZGF5ID0gZnJvbV9iY2Qocywgcy0+aHcu
+Y21vc19kYXRhW1JUQ19EQVlfT0ZfTU9OVEhdKTsNCiAgICAgdG0tPnRtX21vbiA9IGZyb21fYmNk
+KHMsIHMtPmh3LmNtb3NfZGF0YVtSVENfTU9OVEhdKSAtIDE7DQotLS0gYS94ZW4vYXJjaC94ODYv
+aHZtL3ZwdC5jDQorKysgYi94ZW4vYXJjaC94ODYvaHZtL3ZwdC5jDQpAQCAtMjIsNiArMjIsNyBA
+QA0KICNpbmNsdWRlIDxhc20vaHZtL3ZwdC5oPg0KICNpbmNsdWRlIDxhc20vZXZlbnQuaD4NCiAj
+aW5jbHVkZSA8YXNtL2FwaWMuaD4NCisjaW5jbHVkZSA8YXNtL21jMTQ2ODE4cnRjLmg+DQoNCiAj
+ZGVmaW5lIG1vZGVfaXMoZCwgbmFtZSkgXA0KICAgICAoKGQpLT5hcmNoLmh2bV9kb21haW4ucGFy
+YW1zW0hWTV9QQVJBTV9USU1FUl9NT0RFXSA9PSBIVk1QVE1fIyNuYW1lKQ0KQEAgLTIxOCw2ICsy
+MTksNyBAQCB2b2lkIHB0X3VwZGF0ZV9pcnEoc3RydWN0IHZjcHUgKnYpDQogICAgIHN0cnVjdCBw
+ZXJpb2RpY190aW1lICpwdCwgKnRlbXAsICplYXJsaWVzdF9wdCA9IE5VTEw7DQogICAgIHVpbnQ2
+NF90IG1heF9sYWcgPSAtMVVMTDsNCiAgICAgaW50IGlycSwgaXNfbGFwaWM7DQorICAgIHZvaWQg
+KnB0X3ByaXY7DQoNCiAgICAgc3Bpbl9sb2NrKCZ2LT5hcmNoLmh2bV92Y3B1LnRtX2xvY2spOw0K
+DQpAQCAtMjUxLDEzICsyNTMsMTQgQEAgdm9pZCBwdF91cGRhdGVfaXJxKHN0cnVjdCB2Y3B1ICp2
+KQ0KICAgICBlYXJsaWVzdF9wdC0+aXJxX2lzc3VlZCA9IDE7DQogICAgIGlycSA9IGVhcmxpZXN0
+X3B0LT5pcnE7DQogICAgIGlzX2xhcGljID0gKGVhcmxpZXN0X3B0LT5zb3VyY2UgPT0gUFRTUkNf
+bGFwaWMpOw0KKyAgICBwdF9wcml2ID0gZWFybGllc3RfcHQtPnByaXY7DQoNCiAgICAgc3Bpbl91
+bmxvY2soJnYtPmFyY2guaHZtX3ZjcHUudG1fbG9jayk7DQoNCiAgICAgaWYgKCBpc19sYXBpYyAp
+DQotICAgIHsNCiAgICAgICAgIHZsYXBpY19zZXRfaXJxKHZjcHVfdmxhcGljKHYpLCBpcnEsIDAp
+Ow0KLSAgICB9DQorICAgIGVsc2UgaWYgKCBpcnEgPT0gUlRDX0lSUSApDQorICAgICAgICBydGNf
+cGVyaW9kaWNfaW50ZXJydXB0KHB0X3ByaXYpOw0KICAgICBlbHNlDQogICAgIHsNCiAgICAgICAg
+IGh2bV9pc2FfaXJxX2RlYXNzZXJ0KHYtPmRvbWFpbiwgaXJxKTsNCi0tLSBhL3hlbi9pbmNsdWRl
+L2FzbS14ODYvaHZtL3ZwdC5oDQorKysgYi94ZW4vaW5jbHVkZS9hc20teDg2L2h2bS92cHQuaA0K
+QEAgLTE4MSw2ICsxODEsNyBAQCB2b2lkIHJ0Y19taWdyYXRlX3RpbWVycyhzdHJ1Y3QgdmNwdSAq
+dik7DQogdm9pZCBydGNfZGVpbml0KHN0cnVjdCBkb21haW4gKmQpOw0KIHZvaWQgcnRjX3Jlc2V0
+KHN0cnVjdCBkb21haW4gKmQpOw0KIHZvaWQgcnRjX3VwZGF0ZV9jbG9jayhzdHJ1Y3QgZG9tYWlu
+ICpkKTsNCit2b2lkIHJ0Y19wZXJpb2RpY19pbnRlcnJ1cHQodm9pZCAqKTsNCg0KIHZvaWQgcG10
+aW1lcl9pbml0KHN0cnVjdCB2Y3B1ICp2KTsNCiB2b2lkIHBtdGltZXJfZGVpbml0KHN0cnVjdCBk
+b21haW4gKmQpOw0KDQoNCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
+X19fX19fDQpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0DQpYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZw0K
+aHR0cDovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVs
+
+------=_002_NextPart316018485136_=----
+Content-Type: text/html;
+       charset="gb2312"
+Content-Transfer-Encoding: quoted-printable
+
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<HTML><HEAD>
+<META http-equiv=3DContent-Type content=3D"text/html; charset=3Dgb2312">
+<STYLE>
+BLOCKQUOTE {
+       MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; MARGIN-LEFT: 2em
+}
+OL {
+       MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px
+}
+UL {
+       MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px
+}
+P {
+       MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px
+}
+BODY {
+       FONT-SIZE: 10.5pt; COLOR: #000080; LINE-HEIGHT: 1.5; FONT-FAMILY: =CB=CE=
+=CC=E5
+}
+</STYLE>
+
+<META content=3D"MSHTML 6.00.2900.5512" name=3DGENERATOR></HEAD>
+<BODY style=3D"MARGIN: 10px">
+<DIV>Hi, Jan:</DIV>
+<DIV>I am sorry I really don't have much time to try a test of your patch,=
+ and=20
+it is not convenient</DIV>
+<DIV>for me to have a try. For the version I have been using is xen4.0.x, =
+and=20
+your patch is based on </DIV>
+<DIV>the latest version xen4.2.x.(I have never complied the unstable one),=
+ so I=20
+merged your patch to my </DIV>
+<DIV>xen4.0.x, still couldn't find the two functions below:</DIV>
+<DIV>&nbsp;static&nbsp;void&nbsp;rtc_update_timer2(void&nbsp;*opaque) </DI=
+V>
+<DIV>&nbsp;static&nbsp;void&nbsp;rtc_alarm_cb(void&nbsp;*opaque) </DIV>
+<DIV>so I didn't merge the two functions which contains a rtc_toggle_irq()=
+=20
+.</DIV>
+<DIV>&nbsp;</DIV>
+<DIV>The results for me were these:</DIV>
+<DIV>1 In my real application environment, it worked very well in the form=
+er=20
+5mins, much better than before,</DIV>
+<DIV>&nbsp;but at last it lagged again. I don't know whether it belongs to=
+ the=20
+two missed functions. I lack the </DIV>
+<DIV>&nbsp;ability to figure them out.</DIV>
+<DIV style=3D"TEXT-INDENT: 2em">&nbsp;</DIV>
+<DIV>2 When I tested my test program which I provided days before, it work=
+ed=20
+very well, maybe the program doesn't </DIV>
+<DIV>emulate the real environment due to&nbsp;the same setting rate,&nbsp;=
+so I=20
+modified this program as which in the attachment.</DIV>
+<DIV>if you are more convenient, you can help me to have a look of it.</DI=
+V>
+<DIV>And I have a opinion, because our product is based on Version Xen4.0.=
+x, if=20
+you have enough time, can you write </DIV>
+<DIV>another patch based <A=20
+href=3D"http://xenbits.xen.org/hg/xen-4.0-testing.hg/">http://xenbits.xen.=
+org/hg/xen-4.0-testing.hg/</A>&nbsp;for=20
+me, thank you very much!</DIV>
+<DIV>&nbsp;</DIV>
+<DIV>3 I also have a thought that can we have some detecting methods to fi=
+nd the=20
+lagging time earlier to adjust time</DIV>
+<DIV>back to normal value in the code?</DIV>
+<DIV>&nbsp;</DIV>
+<DIV>best regards,</DIV>
+<DIV style=3D"TEXT-INDENT: 2em">&nbsp;</DIV>
+<DIV style=3D"TEXT-INDENT: 2em">
+<HR style=3D"WIDTH: 210px; HEIGHT: 1px" align=3Dleft color=3D#b5c4df SIZE=
+=3D1>
+</DIV>
+<DIV><SPAN>tupeng212</SPAN></DIV>
+<DIV>
+<DIV>&nbsp;</DIV></DIV>
+<DIV=20
+style=3D"BORDER-RIGHT: medium none; PADDING-RIGHT: 0cm; BORDER-TOP: #b5c4d=
+f 1pt solid; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; BORDER-LEFT: medium n=
+one; PADDING-TOP: 3pt; BORDER-BOTTOM: medium none">
+<DIV=20
+style=3D"PADDING-RIGHT: 8px; PADDING-LEFT: 8px; FONT-SIZE: 12px; BACKGROUN=
+D: #efefef; PADDING-BOTTOM: 8px; COLOR: #000000; PADDING-TOP: 8px">
+<DIV>
+<DIV>Second&nbsp;draft&nbsp;of&nbsp;a&nbsp;patch&nbsp;posted;&nbsp;no&nbsp=
+;test&nbsp;results&nbsp;so&nbsp;far&nbsp;for&nbsp;first&nbsp;draft.</DIV>
+<DIV>Jan</DIV></DIV>
+<DIV><B></B>&nbsp;</DIV>
+<DIV><B>From:</B>&nbsp;<A href=3D"mailto:JBeulich@suse.com">Jan Beulich</A=
+></DIV>
+<DIV><B>Date:</B>&nbsp;2012-08-14&nbsp;17:51</DIV>
+<DIV><B>To:</B>&nbsp;<A href=3D"mailto:yang.z.zhang@intel.com">Yang Z Zhan=
+g</A>;=20
+<A href=3D"mailto:keir@xen.org">Keir Fraser</A>; <A href=3D"mailto:tim@xen=
+.org">Tim=20
+Deegan</A></DIV>
+<DIV><B>CC:</B>&nbsp;<A href=3D"mailto:tupeng212@gmail.com">tupeng212</A>;=
+ <A=20
+href=3D"mailto:xen-devel@lists.xen.org">xen-devel</A></DIV>
+<DIV><B>Subject:</B>&nbsp;[Xen-devel] [PATCH, RFC v2] x86/HVM: assorted RT=
+C=20
+emulation adjustments (was Re: Big Bug:Time in VM goes=20
+slower...)</DIV></DIV></DIV>
+<DIV>
+<DIV>Below/attached&nbsp;a&nbsp;second&nbsp;draft&nbsp;of&nbsp;a&nbsp;patc=
+h&nbsp;to&nbsp;fix&nbsp;not&nbsp;only&nbsp;this</DIV>
+<DIV>issue,&nbsp;but&nbsp;a&nbsp;few&nbsp;more&nbsp;with&nbsp;the&nbsp;RTC=
+&nbsp;emulation.</DIV>
+<DIV>&nbsp;</DIV>
+<DIV>Keir,&nbsp;Tim,&nbsp;Yang,&nbsp;others&nbsp;-&nbsp;the&nbsp;change&nb=
+sp;to&nbsp;xen/arch/x86/hvm/vpt.c&nbsp;really</DIV>
+<DIV>looks&nbsp;more&nbsp;like&nbsp;a&nbsp;hack&nbsp;than&nbsp;a&nbsp;solu=
+tion,&nbsp;but&nbsp;I&nbsp;don't&nbsp;see&nbsp;another</DIV>
+<DIV>way&nbsp;without&nbsp;much&nbsp;more&nbsp;intrusive&nbsp;changes.&nbs=
+p;The&nbsp;point&nbsp;is&nbsp;that&nbsp;we</DIV>
+<DIV>want&nbsp;the&nbsp;RTC&nbsp;code&nbsp;to&nbsp;decide&nbsp;whether&nbs=
+p;to&nbsp;generate&nbsp;an&nbsp;interrupt</DIV>
+<DIV>(so&nbsp;that&nbsp;RTC_PF&nbsp;can&nbsp;become&nbsp;set&nbsp;correctl=
+y&nbsp;even&nbsp;without&nbsp;RTC_PIE</DIV>
+<DIV>getting&nbsp;enabled&nbsp;by&nbsp;the&nbsp;guest).</DIV>
+<DIV>&nbsp;</DIV>
+<DIV>Additionally&nbsp;I&nbsp;wonder&nbsp;whether&nbsp;alarm_timer_update(=
+)&nbsp;shouldn't</DIV>
+<DIV>bail&nbsp;on&nbsp;non-conforming&nbsp;RTC_*_ALARM&nbsp;values&nbsp;(a=
+s&nbsp;those&nbsp;would</DIV>
+<DIV>never&nbsp;match&nbsp;the&nbsp;values&nbsp;they&nbsp;get&nbsp;compare=
+d&nbsp;against,&nbsp;whereas</DIV>
+<DIV>with&nbsp;the&nbsp;current&nbsp;way&nbsp;of&nbsp;handling&nbsp;this&n=
+bsp;they&nbsp;would&nbsp;appear&nbsp;to</DIV>
+<DIV>match&nbsp;-&nbsp;i.e.&nbsp;set&nbsp;RTC_AF&nbsp;and&nbsp;possibly&nb=
+sp;generate&nbsp;an&nbsp;interrupt&nbsp;-</DIV>
+<DIV>some&nbsp;other&nbsp;point&nbsp;in&nbsp;time).&nbsp;I&nbsp;realize&nb=
+sp;the&nbsp;behavior&nbsp;here&nbsp;may&nbsp;not</DIV>
+<DIV>be&nbsp;precisely&nbsp;specified,&nbsp;but&nbsp;the&nbsp;specificatio=
+n&nbsp;saying&nbsp;"the&nbsp;current</DIV>
+<DIV>time&nbsp;has&nbsp;matched&nbsp;the&nbsp;alarm&nbsp;time"&nbsp;means&=
+nbsp;to&nbsp;me&nbsp;a&nbsp;value&nbsp;by&nbsp;value</DIV>
+<DIV>comparison,&nbsp;which&nbsp;implies&nbsp;that&nbsp;non-conforming&nbs=
+p;values&nbsp;would</DIV>
+<DIV>never&nbsp;match&nbsp;(since&nbsp;non-conforming&nbsp;current&nbsp;ti=
+me&nbsp;values&nbsp;could</DIV>
+<DIV>get&nbsp;replaced&nbsp;at&nbsp;any&nbsp;time&nbsp;by&nbsp;the&nbsp;ha=
+rdware&nbsp;due&nbsp;to&nbsp;overflow</DIV>
+<DIV>detection).</DIV>
+<DIV>&nbsp;</DIV>
+<DIV>Jan</DIV>
+<DIV>&nbsp;</DIV>
+<DIV>-&nbsp;don't&nbsp;call&nbsp;rtc_timer_update()&nbsp;on&nbsp;REG_A&nbs=
+p;writes&nbsp;when&nbsp;the&nbsp;value&nbsp;didn't</DIV>
+<DIV>&nbsp;&nbsp;change&nbsp;(doing&nbsp;the&nbsp;call&nbsp;always&nbsp;wa=
+s&nbsp;reported&nbsp;to&nbsp;cause&nbsp;wall&nbsp;clock&nbsp;time</DIV>
+<DIV>&nbsp;&nbsp;lagging&nbsp;with&nbsp;the&nbsp;JVM&nbsp;running&nbsp;on&=
+nbsp;Windows)</DIV>
+<DIV>-&nbsp;don't&nbsp;call&nbsp;rtc_timer_update()&nbsp;on&nbsp;REG_B&nbs=
+p;writes&nbsp;at&nbsp;all</DIV>
+<DIV>-&nbsp;only&nbsp;call&nbsp;alarm_timer_update()&nbsp;on&nbsp;REG_B&nb=
+sp;writes&nbsp;when&nbsp;relevant&nbsp;bits</DIV>
+<DIV>&nbsp;&nbsp;change</DIV>
+<DIV>-&nbsp;only&nbsp;call&nbsp;check_update_timer()&nbsp;on&nbsp;REG_B&nb=
+sp;writes&nbsp;when&nbsp;SET&nbsp;changes</DIV>
+<DIV>-&nbsp;instead&nbsp;properly&nbsp;handle&nbsp;AF&nbsp;and&nbsp;PF&nbs=
+p;when&nbsp;the&nbsp;guest&nbsp;is&nbsp;not&nbsp;also&nbsp;setting</DIV>
+<DIV>&nbsp;&nbsp;AIE/PIE&nbsp;respectively&nbsp;(for&nbsp;UF&nbsp;this&nbs=
+p;was&nbsp;already&nbsp;the&nbsp;case,&nbsp;only&nbsp;a</DIV>
+<DIV>&nbsp;&nbsp;comment&nbsp;was&nbsp;slightly&nbsp;inaccurate)</DIV>
+<DIV>-&nbsp;raise&nbsp;the&nbsp;RTC&nbsp;IRQ&nbsp;not&nbsp;only&nbsp;when&=
+nbsp;UIE&nbsp;gets&nbsp;set&nbsp;while&nbsp;UF&nbsp;was&nbsp;already</DIV>
+<DIV>&nbsp;&nbsp;set,&nbsp;but&nbsp;generalize&nbsp;this&nbsp;to&nbsp;cove=
+r&nbsp;AIE&nbsp;and&nbsp;PIE&nbsp;as&nbsp;well</DIV>
+<DIV>-&nbsp;properly&nbsp;mask&nbsp;off&nbsp;bit&nbsp;7&nbsp;when&nbsp;ret=
+rieving&nbsp;the&nbsp;hour&nbsp;values&nbsp;in</DIV>
+<DIV>&nbsp;&nbsp;alarm_timer_update(),&nbsp;and&nbsp;properly&nbsp;use&nbs=
+p;RTC_HOURS_ALARM's&nbsp;bit&nbsp;7&nbsp;when</DIV>
+<DIV>&nbsp;&nbsp;converting&nbsp;from&nbsp;12-&nbsp;to&nbsp;24-hour&nbsp;v=
+alue</DIV>
+<DIV>-&nbsp;also&nbsp;handle&nbsp;the&nbsp;two&nbsp;other&nbsp;possible&nb=
+sp;clock&nbsp;bases</DIV>
+<DIV>-&nbsp;use&nbsp;RTC_*&nbsp;names&nbsp;in&nbsp;a&nbsp;couple&nbsp;of&n=
+bsp;places&nbsp;where&nbsp;literal&nbsp;numbers&nbsp;were&nbsp;used</DIV>
+<DIV>&nbsp;&nbsp;so&nbsp;far</DIV>
+<DIV>&nbsp;</DIV>
+<DIV>---&nbsp;a/xen/arch/x86/hvm/rtc.c</DIV>
+<DIV>+++&nbsp;b/xen/arch/x86/hvm/rtc.c</DIV>
+<DIV>@@&nbsp;-50,11&nbsp;+50,24&nbsp;@@&nbsp;static&nbsp;void&nbsp;rtc_set=
+_time(RTCState&nbsp;*s);</DIV>
+<DIV>&nbsp;static&nbsp;inline&nbsp;int&nbsp;from_bcd(RTCState&nbsp;*s,&nbs=
+p;int&nbsp;a);</DIV>
+<DIV>&nbsp;static&nbsp;inline&nbsp;int&nbsp;convert_hour(RTCState&nbsp;*s,=
+&nbsp;int&nbsp;hour);</DIV>
+<DIV>&nbsp;</DIV>
+<DIV>-static&nbsp;void&nbsp;rtc_periodic_cb(struct&nbsp;vcpu&nbsp;*v,&nbsp=
+;void&nbsp;*opaque)</DIV>
+<DIV>+static&nbsp;void&nbsp;rtc_toggle_irq(RTCState&nbsp;*s)</DIV>
+<DIV>+{</DIV>
+<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;struct&nbsp;domain&nbsp;*d&nbsp;=3D&nbsp;vrt=
+c_domain(s);</DIV>
+<DIV>+</DIV>
+<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;ASSERT(spin_is_locked(&amp;s-&gt;lock));</DI=
+V>
+<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;s-&gt;hw.cmos_data[RTC_REG_C]&nbsp;|=3D&nbsp=
+;RTC_IRQF;</DIV>
+<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;hvm_isa_irq_deassert(d,&nbsp;RTC_IRQ);</DIV>
+<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;hvm_isa_irq_assert(d,&nbsp;RTC_IRQ);</DIV>
+<DIV>+}</DIV>
+<DIV>+</DIV>
+<DIV>+void&nbsp;rtc_periodic_interrupt(void&nbsp;*opaque)</DIV>
+<DIV>&nbsp;{</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RTCState&nbsp;*s&nbsp;=3D&nbsp;opaque;<=
+/DIV>
+<DIV>+</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;spin_lock(&amp;s-&gt;lock);</DIV>
+<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;s-&gt;hw.cmos_data[RTC_REG_C]&nbsp;|=3D&nbsp=
+;0xc0;</DIV>
+<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;s-&gt;hw.cmos_data[RTC_REG_C]&nbsp;|=3D&nbsp=
+;RTC_PF;</DIV>
+<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(&nbsp;s-&gt;hw.cmos_data[RTC_REG_B]=
+&nbsp;&amp;&nbsp;RTC_PIE&nbsp;)</DIV>
+<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rtc_toggle_irq(s);</=
+DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;spin_unlock(&amp;s-&gt;lock);</DIV>
+<DIV>&nbsp;}</DIV>
+<DIV>&nbsp;</DIV>
+<DIV>@@&nbsp;-68,19&nbsp;+81,25&nbsp;@@&nbsp;static&nbsp;void&nbsp;rtc_tim=
+er_update(RTCState&nbsp;*s</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ASSERT(spin_is_locked(&amp;s-&gt;lock))=
+;</DIV>
+<DIV>&nbsp;</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;period_code&nbsp;=3D&nbsp;s-&gt;hw.cmos=
+_data[RTC_REG_A]&nbsp;&amp;&nbsp;RTC_RATE_SELECT;</DIV>
+<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(&nbsp;(period_code&nbsp;!=3D&nbsp;0=
+)&nbsp;&amp;&amp;&nbsp;(s-&gt;hw.cmos_data[RTC_REG_B]&nbsp;&amp;&nbsp;RTC_=
+PIE)&nbsp;)</DIV>
+<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;switch&nbsp;(&nbsp;s-&gt;hw.cmos_data[RTC_RE=
+G_A]&nbsp;&amp;&nbsp;RTC_DIV_CTL&nbsp;)</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{</DIV>
+<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(&nbsp;perio=
+d_code&nbsp;&lt;=3D&nbsp;2&nbsp;)</DIV>
+<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;RTC_REF_CLCK_32KHZ:</DIV>
+<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(&nbsp;(peri=
+od_code&nbsp;!=3D&nbsp;0)&nbsp;&amp;&amp;&nbsp;(period_code&nbsp;&lt;=3D&n=
+bsp;2)&nbsp;)</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
+sp;&nbsp;period_code&nbsp;+=3D&nbsp;7;</DIV>
+<DIV>-</DIV>
+<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;period&nbsp;=3D&nbsp=
+;1&nbsp;&lt;&lt;&nbsp;(period_code&nbsp;-&nbsp;1);&nbsp;/*&nbsp;period&nbs=
+p;in&nbsp;32&nbsp;Khz&nbsp;cycles&nbsp;*/</DIV>
+<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;period&nbsp;=3D&nbsp=
+;DIV_ROUND((period&nbsp;*&nbsp;1000000000ULL),&nbsp;32768);&nbsp;/*&nbsp;p=
+eriod&nbsp;in&nbsp;ns&nbsp;*/</DIV>
+<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;create_periodic_time=
+(v,&nbsp;&amp;s-&gt;pt,&nbsp;period,&nbsp;period,&nbsp;RTC_IRQ,</DIV>
+<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
+bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
+p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rtc_periodic_cb,&nbsp;s);</DIV>
+<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;}</DIV>
+<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;else</DIV>
+<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;{</DIV>
+<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;fall&nbsp;th=
+rough&nbsp;*/</DIV>
+<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;RTC_REF_CLCK_1MHZ:</DIV>
+<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;RTC_REF_CLCK_4MHZ:</DIV>
+<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(&nbsp;perio=
+d_code&nbsp;!=3D&nbsp;0&nbsp;)</DIV>
+<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{</DIV>
+<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
+bsp;period&nbsp;=3D&nbsp;1&nbsp;&lt;&lt;&nbsp;(period_code&nbsp;-&nbsp;1);=
+&nbsp;/*&nbsp;period&nbsp;in&nbsp;32&nbsp;Khz&nbsp;cycles&nbsp;*/</DIV>
+<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
+bsp;period&nbsp;=3D&nbsp;DIV_ROUND(period&nbsp;*&nbsp;1000000000ULL,&nbsp;=
+32768);&nbsp;/*&nbsp;in&nbsp;ns&nbsp;*/</DIV>
+<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
+bsp;create_periodic_time(v,&nbsp;&amp;s-&gt;pt,&nbsp;period,&nbsp;period,&=
+nbsp;RTC_IRQ,&nbsp;NULL,&nbsp;s);</DIV>
+<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
+bsp;break;</DIV>
+<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</DIV>
+<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;fall&nbsp;th=
+rough&nbsp;*/</DIV>
+<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;default:</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;destroy_periodi=
+c_time(&amp;s-&gt;pt);</DIV>
+<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</DIV>
+<DIV>&nbsp;}</DIV>
+<DIV>&nbsp;</DIV>
+<DIV>@@&nbsp;-102,7&nbsp;+121,7&nbsp;@@&nbsp;static&nbsp;void&nbsp;check_u=
+pdate_timer(RTCState&nbsp;</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;guest_usec&nbsp=
+;=3D&nbsp;get_localtime_us(d)&nbsp;%&nbsp;USEC_PER_SEC;</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(guest_=
+usec&nbsp;&gt;=3D&nbsp;(USEC_PER_SEC&nbsp;-&nbsp;244))</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{</DIV>
+<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
+bsp;/*&nbsp;RTC&nbsp;is&nbsp;in&nbsp;update&nbsp;cycle&nbsp;when&nbsp;enab=
+ling&nbsp;UIE&nbsp;*/</DIV>
+<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
+bsp;/*&nbsp;RTC&nbsp;is&nbsp;in&nbsp;update&nbsp;cycle&nbsp;*/</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
+sp;&nbsp;s-&gt;hw.cmos_data[RTC_REG_A]&nbsp;|=3D&nbsp;RTC_UIP;</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
+sp;&nbsp;next_update_time&nbsp;=3D&nbsp;(USEC_PER_SEC&nbsp;-&nbsp;guest_us=
+ec)&nbsp;*&nbsp;NS_PER_USEC;</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
+sp;&nbsp;expire_time&nbsp;=3D&nbsp;NOW()&nbsp;+&nbsp;next_update_time;</DI=
+V>
+<DIV>@@&nbsp;-144,7&nbsp;+163,6&nbsp;@@&nbsp;static&nbsp;void&nbsp;rtc_upd=
+ate_timer(void&nbsp;*opaqu</DIV>
+<DIV>&nbsp;static&nbsp;void&nbsp;rtc_update_timer2(void&nbsp;*opaque)</DIV=
+>
+<DIV>&nbsp;{</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RTCState&nbsp;*s&nbsp;=3D&nbsp;opaque;<=
+/DIV>
+<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;struct&nbsp;domain&nbsp;*d&nbsp;=3D&nbsp;vrt=
+c_domain(s);</DIV>
+<DIV>&nbsp;</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;spin_lock(&amp;s-&gt;lock);</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(!(s-&gt;hw.cmos_data[RTC_REG_B=
+]&nbsp;&amp;&nbsp;RTC_SET))</DIV>
+<DIV>@@&nbsp;-152,11&nbsp;+170,7&nbsp;@@&nbsp;static&nbsp;void&nbsp;rtc_up=
+date_timer2(void&nbsp;*opaq</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s-&gt;hw.cmos_d=
+ata[RTC_REG_C]&nbsp;|=3D&nbsp;RTC_UF;</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s-&gt;hw.cmos_d=
+ata[RTC_REG_A]&nbsp;&amp;=3D&nbsp;~RTC_UIP;</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;((s-&gt=
+;hw.cmos_data[RTC_REG_B]&nbsp;&amp;&nbsp;RTC_UIE))</DIV>
+<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{</DIV>
+<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
+bsp;s-&gt;hw.cmos_data[RTC_REG_C]&nbsp;|=3D&nbsp;RTC_IRQF;</DIV>
+<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
+bsp;hvm_isa_irq_deassert(d,&nbsp;RTC_IRQ);</DIV>
+<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
+bsp;hvm_isa_irq_assert(d,&nbsp;RTC_IRQ);</DIV>
+<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</DIV>
+<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
+bsp;rtc_toggle_irq(s);</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;check_update_ti=
+mer(s);</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;spin_unlock(&amp;s-&gt;lock);</DIV>
+<DIV>@@&nbsp;-175,21&nbsp;+189,18&nbsp;@@&nbsp;static&nbsp;void&nbsp;alarm=
+_timer_update(RTCState&nbsp;</DIV>
+<DIV>&nbsp;</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;stop_timer(&amp;s-&gt;alarm_timer);</DI=
+V>
+<DIV>&nbsp;</DIV>
+<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;((s-&gt;hw.cmos_data[RTC_REG_B]&nbsp=
+;&amp;&nbsp;RTC_AIE)&nbsp;&amp;&amp;</DIV>
+<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
+bsp;!(s-&gt;hw.cmos_data[RTC_REG_B]&nbsp;&amp;&nbsp;RTC_SET))</DIV>
+<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(&nbsp;!(s-&gt;hw.cmos_data[RTC_REG_=
+B]&nbsp;&amp;&nbsp;RTC_SET)&nbsp;)</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s-&gt;current_t=
+m&nbsp;=3D&nbsp;gmtime(get_localtime(d));</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rtc_copy_date(s=
+);</DIV>
+<DIV>&nbsp;</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alarm_sec&nbsp;=
+=3D&nbsp;from_bcd(s,&nbsp;s-&gt;hw.cmos_data[RTC_SECONDS_ALARM]);</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alarm_min&nbsp;=
+=3D&nbsp;from_bcd(s,&nbsp;s-&gt;hw.cmos_data[RTC_MINUTES_ALARM]);</DIV>
+<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alarm_hour&nbsp;=3D&=
+nbsp;from_bcd(s,&nbsp;s-&gt;hw.cmos_data[RTC_HOURS_ALARM]);</DIV>
+<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alarm_hour&nbsp;=3D&=
+nbsp;convert_hour(s,&nbsp;alarm_hour);</DIV>
+<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alarm_hour&nbsp;=3D&=
+nbsp;convert_hour(s,&nbsp;s-&gt;hw.cmos_data[RTC_HOURS_ALARM]);</DIV>
+<DIV>&nbsp;</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cur_sec&nbsp;=
+=3D&nbsp;from_bcd(s,&nbsp;s-&gt;hw.cmos_data[RTC_SECONDS]);</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cur_min&nbsp;=
+=3D&nbsp;from_bcd(s,&nbsp;s-&gt;hw.cmos_data[RTC_MINUTES]);</DIV>
+<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cur_hour&nbsp;=3D&nb=
+sp;from_bcd(s,&nbsp;s-&gt;hw.cmos_data[RTC_HOURS]);</DIV>
+<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cur_hour&nbsp;=3D&nb=
+sp;convert_hour(s,&nbsp;cur_hour);</DIV>
+<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cur_hour&nbsp;=3D&nb=
+sp;convert_hour(s,&nbsp;s-&gt;hw.cmos_data[RTC_HOURS]);</DIV>
+<DIV>&nbsp;</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;next_update_tim=
+e&nbsp;=3D&nbsp;USEC_PER_SEC&nbsp;-&nbsp;(get_localtime_us(d)&nbsp;%&nbsp;=
+USEC_PER_SEC);</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;next_update_tim=
+e&nbsp;=3D&nbsp;next_update_time&nbsp;*&nbsp;NS_PER_USEC&nbsp;+&nbsp;NOW()=
+;</DIV>
+<DIV>@@&nbsp;-343,7&nbsp;+354,6&nbsp;@@&nbsp;static&nbsp;void&nbsp;alarm_t=
+imer_update(RTCState&nbsp;</DIV>
+<DIV>&nbsp;static&nbsp;void&nbsp;rtc_alarm_cb(void&nbsp;*opaque)</DIV>
+<DIV>&nbsp;{</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RTCState&nbsp;*s&nbsp;=3D&nbsp;opaque;<=
+/DIV>
+<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;struct&nbsp;domain&nbsp;*d&nbsp;=3D&nbsp;vrt=
+c_domain(s);</DIV>
+<DIV>&nbsp;</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;spin_lock(&amp;s-&gt;lock);</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(!(s-&gt;hw.cmos_data[RTC_REG_B=
+]&nbsp;&amp;&nbsp;RTC_SET))</DIV>
+<DIV>@@&nbsp;-351,11&nbsp;+361,7&nbsp;@@&nbsp;static&nbsp;void&nbsp;rtc_al=
+arm_cb(void&nbsp;*opaque)</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s-&gt;hw.cmos_d=
+ata[RTC_REG_C]&nbsp;|=3D&nbsp;RTC_AF;</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;alarm&n=
+bsp;interrupt&nbsp;*/</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(s-&gt;=
+hw.cmos_data[RTC_REG_B]&nbsp;&amp;&nbsp;RTC_AIE)</DIV>
+<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{</DIV>
+<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
+bsp;s-&gt;hw.cmos_data[RTC_REG_C]&nbsp;|=3D&nbsp;RTC_IRQF;</DIV>
+<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
+bsp;hvm_isa_irq_deassert(d,&nbsp;RTC_IRQ);</DIV>
+<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
+bsp;hvm_isa_irq_assert(d,&nbsp;RTC_IRQ);</DIV>
+<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</DIV>
+<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
+bsp;rtc_toggle_irq(s);</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alarm_timer_upd=
+ate(s);</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;spin_unlock(&amp;s-&gt;lock);</DIV>
+<DIV>@@&nbsp;-365,6&nbsp;+371,7&nbsp;@@&nbsp;static&nbsp;int&nbsp;rtc_iopo=
+rt_write(void&nbsp;*opaque</DIV>
+<DIV>&nbsp;{</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RTCState&nbsp;*s&nbsp;=3D&nbsp;opaque;<=
+/DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;struct&nbsp;domain&nbsp;*d&nbsp;=3D&nbs=
+p;vrtc_domain(s);</DIV>
+<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;uint32_t&nbsp;orig,&nbsp;mask;</DIV>
+<DIV>&nbsp;</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;spin_lock(&amp;s-&gt;lock);</DIV>
+<DIV>&nbsp;</DIV>
+<DIV>@@&nbsp;-382,6&nbsp;+389,7&nbsp;@@&nbsp;static&nbsp;int&nbsp;rtc_iopo=
+rt_write(void&nbsp;*opaque</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;0;<=
+/DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</DIV>
+<DIV>&nbsp;</DIV>
+<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;orig&nbsp;=3D&nbsp;s-&gt;hw.cmos_data[s-&gt;=
+hw.cmos_index];</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;switch&nbsp;(&nbsp;s-&gt;hw.cmos_index&=
+nbsp;)</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;RTC_SECONDS_ALARM:</DIV>
+<DIV>@@&nbsp;-405,9&nbsp;+413,9&nbsp;@@&nbsp;static&nbsp;int&nbsp;rtc_iopo=
+rt_write(void&nbsp;*opaque</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;RTC_REG_A:</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;UIP&nbs=
+p;bit&nbsp;is&nbsp;read&nbsp;only&nbsp;*/</DIV>
+<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s-&gt;hw.cmos_data[R=
+TC_REG_A]&nbsp;=3D&nbsp;(data&nbsp;&amp;&nbsp;~RTC_UIP)&nbsp;|</DIV>
+<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
+bsp;(s-&gt;hw.cmos_data[RTC_REG_A]&nbsp;&amp;&nbsp;RTC_UIP);</DIV>
+<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rtc_timer_update(s);=
+</DIV>
+<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s-&gt;hw.cmos_data[R=
+TC_REG_A]&nbsp;=3D&nbsp;(data&nbsp;&amp;&nbsp;~RTC_UIP)&nbsp;|&nbsp;(orig&=
+nbsp;&amp;&nbsp;RTC_UIP);</DIV>
+<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(&nbsp;(data=
+&nbsp;^&nbsp;orig)&nbsp;&amp;&nbsp;(RTC_RATE_SELECT&nbsp;|&nbsp;RTC_DIV_CT=
+L)&nbsp;)</DIV>
+<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
+bsp;rtc_timer_update(s);</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;RTC_REG_B:</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(&nbsp;=
+data&nbsp;&amp;&nbsp;RTC_SET&nbsp;)</DIV>
+<DIV>@@&nbsp;-415,7&nbsp;+423,7&nbsp;@@&nbsp;static&nbsp;int&nbsp;rtc_iopo=
+rt_write(void&nbsp;*opaque</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
+sp;&nbsp;/*&nbsp;set&nbsp;mode:&nbsp;reset&nbsp;UIP&nbsp;mode&nbsp;*/</DIV=
+>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
+sp;&nbsp;s-&gt;hw.cmos_data[RTC_REG_A]&nbsp;&amp;=3D&nbsp;~RTC_UIP;</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
+sp;&nbsp;/*&nbsp;adjust&nbsp;cmos&nbsp;before&nbsp;stopping&nbsp;*/</DIV>
+<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
+bsp;if&nbsp;(!(s-&gt;hw.cmos_data[RTC_REG_B]&nbsp;&amp;&nbsp;RTC_SET))</DI=
+V>
+<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
+bsp;if&nbsp;(!(orig&nbsp;&amp;&nbsp;RTC_SET))</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
+sp;&nbsp;{</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
+sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s-&gt;current_tm&nbsp;=3D&nbsp;gmtime(get=
+_localtime(d));</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
+sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rtc_copy_date(s);</DIV>
+<DIV>@@&nbsp;-424,21&nbsp;+432,26&nbsp;@@&nbsp;static&nbsp;int&nbsp;rtc_io=
+port_write(void&nbsp;*opaque</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
+sp;&nbsp;/*&nbsp;if&nbsp;disabling&nbsp;set&nbsp;mode,&nbsp;update&nbsp;th=
+e&nbsp;time&nbsp;*/</DIV>
+<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
+bsp;if&nbsp;(&nbsp;s-&gt;hw.cmos_data[RTC_REG_B]&nbsp;&amp;&nbsp;RTC_SET&n=
+bsp;)</DIV>
+<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
+bsp;if&nbsp;(&nbsp;orig&nbsp;&amp;&nbsp;RTC_SET&nbsp;)</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
+sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rtc_set_time(s);</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</DIV>
+<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;if&nbsp;the&=
+nbsp;interrupt&nbsp;is&nbsp;already&nbsp;set&nbsp;when&nbsp;the&nbsp;inter=
+rupt&nbsp;become</DIV>
+<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;enabled=
+,&nbsp;raise&nbsp;an&nbsp;interrupt&nbsp;immediately*/</DIV>
+<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;((data&nbsp;=
+&amp;&nbsp;RTC_UIE)&nbsp;&amp;&amp;&nbsp;!(s-&gt;hw.cmos_data[RTC_REG_B]&n=
+bsp;&amp;&nbsp;RTC_UIE))</DIV>
+<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
+bsp;if&nbsp;(s-&gt;hw.cmos_data[RTC_REG_C]&nbsp;&amp;&nbsp;RTC_UF)</DIV>
+<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*</DIV>
+<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;If&nbsp=
+;the&nbsp;interrupt&nbsp;is&nbsp;already&nbsp;set&nbsp;when&nbsp;the&nbsp;=
+interrupt&nbsp;becomes</DIV>
+<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;enabled=
+,&nbsp;raise&nbsp;an&nbsp;interrupt&nbsp;immediately.</DIV>
+<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;NB:&nbs=
+p;RTC_{A,P,U}IE&nbsp;=3D=3D&nbsp;RTC_{A,P,U}F&nbsp;respectively.</DIV>
+<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/</DIV>
+<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(&nbsp;mask=
+&nbsp;=3D&nbsp;RTC_UIE;&nbsp;mask&nbsp;&lt;=3D&nbsp;RTC_PIE;&nbsp;mask&nbs=
+p;&lt;&lt;=3D&nbsp;1&nbsp;)</DIV>
+<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
+bsp;if&nbsp;(&nbsp;(data&nbsp;&amp;&nbsp;mask)&nbsp;&amp;&amp;&nbsp;!(orig=
+&nbsp;&amp;&nbsp;mask)&nbsp;&amp;&amp;</DIV>
+<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
+bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(s-&gt;hw.cmos_data[RTC_REG_C]&nbsp;&amp=
+;&nbsp;mask)&nbsp;)</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
+sp;&nbsp;{</DIV>
+<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
+bsp;&nbsp;&nbsp;&nbsp;&nbsp;hvm_isa_irq_deassert(d,&nbsp;RTC_IRQ);</DIV>
+<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
+bsp;&nbsp;&nbsp;&nbsp;&nbsp;hvm_isa_irq_assert(d,&nbsp;RTC_IRQ);</DIV>
+<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
+bsp;&nbsp;&nbsp;&nbsp;&nbsp;rtc_toggle_irq(s);</DIV>
+<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
+bsp;&nbsp;&nbsp;&nbsp;&nbsp;break;</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
+sp;&nbsp;}</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s-&gt;hw.cmos_d=
+ata[RTC_REG_B]&nbsp;=3D&nbsp;data;</DIV>
+<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rtc_timer_update(s);=
+</DIV>
+<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;check_update_timer(s=
+);</DIV>
+<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alarm_timer_update(s=
+);</DIV>
+<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(&nbsp;(data=
+&nbsp;^&nbsp;orig)&nbsp;&amp;&nbsp;RTC_SET&nbsp;)</DIV>
+<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
+bsp;check_update_timer(s);</DIV>
+<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(&nbsp;(data=
+&nbsp;^&nbsp;orig)&nbsp;&amp;&nbsp;(RTC_24H&nbsp;|&nbsp;RTC_DM_BINARY&nbsp=
+;|&nbsp;RTC_SET)&nbsp;)</DIV>
+<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
+bsp;alarm_timer_update(s);</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;RTC_REG_C:</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;RTC_REG_D:</DIV>
+<DIV>@@&nbsp;-453,7&nbsp;+466,7&nbsp;@@&nbsp;static&nbsp;int&nbsp;rtc_iopo=
+rt_write(void&nbsp;*opaque</DIV>
+<DIV>&nbsp;</DIV>
+<DIV>&nbsp;static&nbsp;inline&nbsp;int&nbsp;to_bcd(RTCState&nbsp;*s,&nbsp;=
+int&nbsp;a)</DIV>
+<DIV>&nbsp;{</DIV>
+<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(&nbsp;s-&gt;hw.cmos_data[RTC_REG_B]=
+&nbsp;&amp;&nbsp;0x04&nbsp;)</DIV>
+<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(&nbsp;s-&gt;hw.cmos_data[RTC_REG_B]=
+&nbsp;&amp;&nbsp;RTC_DM_BINARY&nbsp;)</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;a;<=
+/DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;((a=
+&nbsp;/&nbsp;10)&nbsp;&lt;&lt;&nbsp;4)&nbsp;|&nbsp;(a&nbsp;%&nbsp;10);</DI=
+V>
+<DIV>@@&nbsp;-461,7&nbsp;+474,7&nbsp;@@&nbsp;static&nbsp;inline&nbsp;int&n=
+bsp;to_bcd(RTCState&nbsp;*s,&nbsp;in</DIV>
+<DIV>&nbsp;</DIV>
+<DIV>&nbsp;static&nbsp;inline&nbsp;int&nbsp;from_bcd(RTCState&nbsp;*s,&nbs=
+p;int&nbsp;a)</DIV>
+<DIV>&nbsp;{</DIV>
+<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(&nbsp;s-&gt;hw.cmos_data[RTC_REG_B]=
+&nbsp;&amp;&nbsp;0x04&nbsp;)</DIV>
+<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(&nbsp;s-&gt;hw.cmos_data[RTC_REG_B]=
+&nbsp;&amp;&nbsp;RTC_DM_BINARY&nbsp;)</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;a;<=
+/DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;((a=
+&nbsp;&gt;&gt;&nbsp;4)&nbsp;*&nbsp;10)&nbsp;+&nbsp;(a&nbsp;&amp;&nbsp;0x0f=
+);</DIV>
+<DIV>@@&nbsp;-469,12&nbsp;+482,14&nbsp;@@&nbsp;static&nbsp;inline&nbsp;int=
+&nbsp;from_bcd(RTCState&nbsp;*s,&nbsp;</DIV>
+<DIV>&nbsp;</DIV>
+<DIV>&nbsp;/*&nbsp;Hours&nbsp;in&nbsp;12&nbsp;hour&nbsp;mode&nbsp;are&nbsp=
+;in&nbsp;1-12&nbsp;range,&nbsp;not&nbsp;0-11.</DIV>
+<DIV>&nbsp;&nbsp;*&nbsp;So&nbsp;we&nbsp;need&nbsp;convert&nbsp;it&nbsp;bef=
+ore&nbsp;using&nbsp;it*/</DIV>
+<DIV>-static&nbsp;inline&nbsp;int&nbsp;convert_hour(RTCState&nbsp;*s,&nbsp=
+;int&nbsp;hour)</DIV>
+<DIV>+static&nbsp;inline&nbsp;int&nbsp;convert_hour(RTCState&nbsp;*s,&nbsp=
+;int&nbsp;raw)</DIV>
+<DIV>&nbsp;{</DIV>
+<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;hour&nbsp;=3D&nbsp;from_bcd(s,&nbsp=
+;raw&nbsp;&amp;&nbsp;0x7f);</DIV>
+<DIV>+</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(!(s-&gt;hw.cmos_data[RTC_REG_B=
+]&nbsp;&amp;&nbsp;RTC_24H))</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hour&nbsp;%=3D&=
+nbsp;12;</DIV>
+<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(s-&gt;hw.cm=
+os_data[RTC_HOURS]&nbsp;&amp;&nbsp;0x80)</DIV>
+<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(raw&nbsp;&a=
+mp;&nbsp;0x80)</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
+sp;&nbsp;hour&nbsp;+=3D&nbsp;12;</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;hour;</DIV>
+<DIV>@@&nbsp;-493,8&nbsp;+508,7&nbsp;@@&nbsp;static&nbsp;void&nbsp;rtc_set=
+_time(RTCState&nbsp;*s)</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tm-&gt;tm_sec&nbsp;=3D&nbsp;from_bcd(s,=
+&nbsp;s-&gt;hw.cmos_data[RTC_SECONDS]);</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tm-&gt;tm_min&nbsp;=3D&nbsp;from_bcd(s,=
+&nbsp;s-&gt;hw.cmos_data[RTC_MINUTES]);</DIV>
+<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;tm-&gt;tm_hour&nbsp;=3D&nbsp;from_bcd(s,&nbs=
+p;s-&gt;hw.cmos_data[RTC_HOURS]&nbsp;&amp;&nbsp;0x7f);</DIV>
+<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;tm-&gt;tm_hour&nbsp;=3D&nbsp;convert_hour(s,=
+&nbsp;tm-&gt;tm_hour);</DIV>
+<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;tm-&gt;tm_hour&nbsp;=3D&nbsp;convert_hour(s,=
+&nbsp;s-&gt;hw.cmos_data[RTC_HOURS]);</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tm-&gt;tm_wday&nbsp;=3D&nbsp;from_bcd(s=
+,&nbsp;s-&gt;hw.cmos_data[RTC_DAY_OF_WEEK]);</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tm-&gt;tm_mday&nbsp;=3D&nbsp;from_bcd(s=
+,&nbsp;s-&gt;hw.cmos_data[RTC_DAY_OF_MONTH]);</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tm-&gt;tm_mon&nbsp;=3D&nbsp;from_bcd(s,=
+&nbsp;s-&gt;hw.cmos_data[RTC_MONTH])&nbsp;-&nbsp;1;</DIV>
+<DIV>---&nbsp;a/xen/arch/x86/hvm/vpt.c</DIV>
+<DIV>+++&nbsp;b/xen/arch/x86/hvm/vpt.c</DIV>
+<DIV>@@&nbsp;-22,6&nbsp;+22,7&nbsp;@@</DIV>
+<DIV>&nbsp;#include&nbsp;&lt;asm/hvm/vpt.h&gt;</DIV>
+<DIV>&nbsp;#include&nbsp;&lt;asm/event.h&gt;</DIV>
+<DIV>&nbsp;#include&nbsp;&lt;asm/apic.h&gt;</DIV>
+<DIV>+#include&nbsp;&lt;asm/mc146818rtc.h&gt;</DIV>
+<DIV>&nbsp;</DIV>
+<DIV>&nbsp;#define&nbsp;mode_is(d,&nbsp;name)&nbsp;\</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;((d)-&gt;arch.hvm_domain.params[HVM_PAR=
+AM_TIMER_MODE]&nbsp;=3D=3D&nbsp;HVMPTM_##name)</DIV>
+<DIV>@@&nbsp;-218,6&nbsp;+219,7&nbsp;@@&nbsp;void&nbsp;pt_update_irq(struc=
+t&nbsp;vcpu&nbsp;*v)</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;struct&nbsp;periodic_time&nbsp;*pt,&nbs=
+p;*temp,&nbsp;*earliest_pt&nbsp;=3D&nbsp;NULL;</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;uint64_t&nbsp;max_lag&nbsp;=3D&nbsp;-1U=
+LL;</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;irq,&nbsp;is_lapic;</DIV>
+<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;*pt_priv;</DIV>
+<DIV>&nbsp;</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;spin_lock(&amp;v-&gt;arch.hvm_vcpu.tm_l=
+ock);</DIV>
+<DIV>&nbsp;</DIV>
+<DIV>@@&nbsp;-251,13&nbsp;+253,14&nbsp;@@&nbsp;void&nbsp;pt_update_irq(str=
+uct&nbsp;vcpu&nbsp;*v)</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;earliest_pt-&gt;irq_issued&nbsp;=3D&nbs=
+p;1;</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;irq&nbsp;=3D&nbsp;earliest_pt-&gt;irq;<=
+/DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;is_lapic&nbsp;=3D&nbsp;(earliest_pt-&gt=
+;source&nbsp;=3D=3D&nbsp;PTSRC_lapic);</DIV>
+<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;pt_priv&nbsp;=3D&nbsp;earliest_pt-&gt;priv;<=
+/DIV>
+<DIV>&nbsp;</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;spin_unlock(&amp;v-&gt;arch.hvm_vcpu.tm=
+_lock);</DIV>
+<DIV>&nbsp;</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(&nbsp;is_lapic&nbsp;)</DIV>
+<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;{</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;vlapic_set_irq(=
+vcpu_vlapic(v),&nbsp;irq,&nbsp;0);</DIV>
+<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;}</DIV>
+<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;if&nbsp;(&nbsp;irq&nbsp;=3D=3D&nbs=
+p;RTC_IRQ&nbsp;)</DIV>
+<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rtc_periodic_interru=
+pt(pt_priv);</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hvm_isa_irq_dea=
+ssert(v-&gt;domain,&nbsp;irq);</DIV>
+<DIV>---&nbsp;a/xen/include/asm-x86/hvm/vpt.h</DIV>
+<DIV>+++&nbsp;b/xen/include/asm-x86/hvm/vpt.h</DIV>
+<DIV>@@&nbsp;-181,6&nbsp;+181,7&nbsp;@@&nbsp;void&nbsp;rtc_migrate_timers(=
+struct&nbsp;vcpu&nbsp;*v);</DIV>
+<DIV>&nbsp;void&nbsp;rtc_deinit(struct&nbsp;domain&nbsp;*d);</DIV>
+<DIV>&nbsp;void&nbsp;rtc_reset(struct&nbsp;domain&nbsp;*d);</DIV>
+<DIV>&nbsp;void&nbsp;rtc_update_clock(struct&nbsp;domain&nbsp;*d);</DIV>
+<DIV>+void&nbsp;rtc_periodic_interrupt(void&nbsp;*);</DIV>
+<DIV>&nbsp;</DIV>
+<DIV>&nbsp;void&nbsp;pmtimer_init(struct&nbsp;vcpu&nbsp;*v);</DIV>
+<DIV>&nbsp;void&nbsp;pmtimer_deinit(struct&nbsp;domain&nbsp;*d);</DIV>
+<DIV>&nbsp;</DIV>
+<DIV>&nbsp;</DIV>
+<DIV>_______________________________________________</DIV>
+<DIV>Xen-devel&nbsp;mailing&nbsp;list</DIV>
+<DIV>Xen-devel@lists.xen.org</DIV>
+<DIV>http://lists.xen.org/xen-devel</DIV></DIV></BODY></HTML>
+
+------=_002_NextPart316018485136_=------
+
+------=_001_NextPart215818845028_=----
+Content-Type: application/octet-stream;
+       name="test.exe.a"
+Content-Transfer-Encoding: base64
+Content-Disposition: attachment;
+       filename="test.exe.a"
+
+TVqQAAMAAAAEAAAA//8AALgAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAyAAAAA4fug4AtAnNIbgBTM0hVGhpcyBwcm9ncmFtIGNhbm5vdCBiZSBydW4gaW4gRE9TIG1v
+ZGUuDQ0KJAAAAAAAAAAYqJagXMn481zJ+PNcyfjz39X281fJ+PO01vLzasn48z7W6/NfyfjzXMn5
+827J+PO01vPzXsn481JpY2hcyfjzAAAAAAAAAABQRQAATAEFABupK1AAAAAAAAAAAOAADgELAQYA
+APABAABwAAAAAAAAcBMAAAAQAAAAEAAAAABAAAAQAAAAEAAABAAAAAAAAAAEAAAAAAAAAABwAgAA
+EAAAAAAAAAMAAAAAABAAABAAAAAAEAAAEAAAAAAAABAAAAAAAAAAAAAAAABQAgAoAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAGACAPwJAAAAAAIAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAABEUQIAHAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC50ZXh0AAAA
+UOMBAAAQAAAA8AEAABAAAAAAAAAAAAAAAAAAACAAAGAucmRhdGEAAPoTAAAAAAIAACAAAAAAAgAA
+AAAAAAAAAAAAAABAAABALmRhdGEAAABQLwAAACACAAAgAAAAIAIAAAAAAAAAAAAAAAAAQAAAwC5p
+ZGF0YQAALgcAAABQAgAAEAAAAEACAAAAAAAAAAAAAAAAAEAAAMAucmVsb2MAAIIMAAAAYAIAABAA
+AABQAgAAAAAAAAAAAAAAAABAAABCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMzMzMzM6QYA
+AADMzMzMzMxVi+yD7FxTVleNfaS5FwAAALjMzMzM86vHRfwAAAAAx0X4AAAAAMdF9AAAAADHRfAA
+AAAAx0XsAAAAAIv0aIgAQgD/FUxRQgA79OjRAgAAiUXsx0XoAAAAAMdF5AAAAACL9GhsAEIAi0Xs
+UP8VSFFCADv06KgCAACJReiL9GhQAEIAi03sUf8VSFFCADv06I0CAACJReS6AQAAAIXSD4RMAQAA
+i/SNRfRQjU34UY1V/FL/VeQ79OhlAgAAiUXwi0X0UItN+FGLVfxSaBwAQgDozAEAAIPEEIv0agX/
+FURRQgA79Og4AgAAi/SNRfRQagFoECcAAP9V6Dv06CECAACJRfCL9GoF/xVEUUIAO/ToDQIAAIv0
+jU30UWoAaBAnAAD/Veg79Oj2AQAAiUXwi/RqBf8VRFFCADv06OIBAACL9I1V9FJqAWhQwwAA/1Xo
+O/ToywEAAIlF8Iv0agX/FURRQgA79Oi3AQAAi/SNRfRQagBoUMMAAP9V6Dv06KABAACJRfCL9GoF
+/xVEUUIAO/TojAEAAIv0jU30UWoBaKCGAQD/Veg79Oh1AQAAiUXwi/RqBf8VRFFCADv06GEBAACL
+9I1V9FJqAGighgEA/1XoO/ToSgEAAIlF8Iv0agX/FURRQgA79Og2AQAA6af+//8zwF9eW4PEXDvs
+6CIBAACL5V3DzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMz/JURRQgD/JUhRQgD/JUxRQgDMzMzMzMzMzMzMzMxVi+yD
+7AxTVleNRQyJRfSDfQgAdR5ooABCAGoAajZolABCAGoC6EYVAACDxBSD+AF1AcwzyYXJddZoYCpC
+AOgNAgAAg8QEiUX8i1X0UotFCFBoYCpCAOgVBAAAg8QMiUX4aGAqQgCLTfxR6EEDAACDxAiLRfhf
+XluL5V3DzMzMzHUBw1WL7IPsAFBSU1ZXaMQAQgBowABCAGoqaLAAQgBqAejKFAAAg8QUg/gBdQHM
+X15bWliL5V3DzMzMzMzMzMxVi+xq/2igAUIAaHRAQABkoQAAAABQZIklAAAAAIPE8FNWV4ll6P8V
+VFFCAKPkNUIAoeQ1QgDB6Agl/wAAAKPwNUIAiw3kNUIAgeH/AAAAiQ3sNUIAixXsNUIAweIIAxXw
+NUIAiRXoNUIAoeQ1QgDB6BAl//8AAKPkNUIAagDonSoAAIPEBIXAdQpqHOjPAAAAg8QEx0X8AAAA
+AOgQJwAA/xVQUUIAo0RPQgDo4CQAAKO8NUIA6MYfAADocR4AAOiMGgAAiw0ANkIAiQ0ENkIAixUA
+NkIAUqH4NUIAUIsN9DVCAFHorPv//4PEDIlF5ItV5FLomBoAAItF7IsIixGJVeCLRexQi03gUegR
+HAAAg8QIw4tl6ItV4FLokRoAAItN8GSJDQAAAABfXluL5V3DVYvsgz3ENUIAAnQF6J8sAACLRQhQ
+6OYsAACDxARo/wAAAP8VMCpCAIPEBF3DzMzMVYvsgz3ENUIAAnQF6G8sAACLRQhQ6LYsAACDxARo
+/wAAAP8VWFFCAF3DzMzMzMzMVYvsg+wIU1ZXg30IAHUeaLgBQgBqAGpBaKwBQgBqAuj8EgAAg8QU
+g/gBdQHMM8CFwHXWi00IiU38i1X8i0IQUOj7TAAAg8QEhcB1BzPA6f0AAACBffxgKkIAdQnHRfgA
+AAAA6xmBffyAKkIAdQnHRfgBAAAA6wczwOnSAAAAiw3QNUIAg8EBiQ3QNUIAi1X8i0IMJQwBAACF
+wHQHM8DprQAAAItN+IM8jcg1QgAAdVpqXmisAUIAagJoABAAAOgNLgAAg8QQi1X4iQSVyDVCAItF
++IM8hcg1QgAAdS2LTfyDwRSLVfyJSgiLRfyLTfyLUQiJEItF/MdAGAIAAACLTfzHQQQCAAAA6y+L
+VfyLRfiLDIXINUIAiUoIi1X8i0X8i0gIiQqLVfzHQhgAEAAAi0X8x0AEABAAAItN/ItRDIHKAhEA
+AItF/IlQDLgBAAAAX15bi+Vdw8zMzMzMzMzMzFWL7FFTVleDfQgAdCeDfQgBdCFoxAFCAGoAaKEA
+AABorAFCAGoC6JURAACDxBSD+AF1AcwzwIXAdc2LTQyJTfyDfQgAdEmLVfyLQgwlABAAAIXAdDiL
+TfxR6BJMAACDxASLVfyLQgyA5O6LTfyJQQyLVfzHQhgAAAAAi0X8xwAAAAAAi038x0EIAAAAAOsb
+i1X8i0IMJQAQAACFwHQMi038UejJSwAAg8QEX15bi+Vdw8zMzMzMzMzMzMzMzMzMzFWL7IHsqAIA
+AFNWV8dF3AAAAADHhdT9//8AAAAAx0XoAAAAAItFDIoIiE3YD75V2ItFDIPAAYlFDIXSD4TWCwAA
+g73U/f//AA+MyQsAAA++TdiD+SB8Hw++VdiD+nh/Fg++RdgPvoi8AUIAg+EPiY1w/f//6wrHhXD9
+//8AAAAAi5Vw/f//iVX0i0X0i03oD76UwdwBQgDB+gSJVeiLReiJhWz9//+DvWz9//8HD4dfCwAA
+i41s/f///ySNRCNAAMdF5AAAAACLVdiB4v8AAAChYC5CADPJZosMUIHhAIAAAIXJdFiNldT9//9S
+i0UIUA++TdhR6DYMAACDxAyLVQyKAohF2ItNDIPBAYlNDA++VdiF0nUhaFwCQgBqAGiGAQAAaFAC
+QgBqAujSDwAAg8QUg/gBdQHMM8CFwHXRjY3U/f//UYtVCFIPvkXYUOjeCwAAg8QM6bgKAADHRfgA
+AAAAi034iY3E/f//i5XE/f//iZW8/f//i4W8/f//iUXwx0X8AAAAAMeFzP3////////HReQAAAAA
+6XYKAAAPvk3YiY1o/f//i5Vo/f//g+ogiZVo/f//g71o/f//EHdIi41o/f//M8CKgXwjQAD/JIVk
+I0AAi1X8g8oEiVX86yiLRfwMAYlF/Osei038g8kCiU386xOLVfyAyoCJVfzrCItF/AwIiUX86QcK
+AAAPvk3Yg/kqdTONVRBS6CMMAACDxASJhbz9//+Dvbz9//8AfRaLRfwMBIlF/IuNvP3///fZiY28
+/f//6xeLlbz9//9r0goPvkXYjUwC0ImNvP3//+mvCQAAx4XM/f//AAAAAOmgCQAAD75V2IP6KnUn
+jUUQUOi8CwAAg8QEiYXM/f//g73M/f//AH0Kx4XM/f///////+sXi43M/f//a8kKD75V2I1EEdCJ
+hcz9///pVAkAAA++TdiJjWT9//+LlWT9//+D6kmJlWT9//+DvWT9//8ud2yLjWT9//8zwIqBoSNA
+AP8khY0jQACLVfyDyhCJVfzrTItFDA++CIP5NnUgi1UMD75CAYP4NHUUi00Mg8ECiU0Mi1X8gM6A
+iVX86wzHRegAAAAA6Yn9///rE4tF/AwgiUX86wmLTfyAzQiJTfzpwQgAAA++VdiJlWD9//+LhWD9
+//+D6EOJhWD9//+DvWD9//81D4fABgAAi5Vg/f//M8mKigwkQAD/JI3QI0AAi0X8JTAIAACFwHUJ
+i038gM0IiU38i1X8geIQCAAAhdJ0OY1FEFDoyQoAAIPEBGaJRexmi03sUY2V2P3//1LoEUoAAIPE
+CIlF3IN93AB9CseFxP3//wEAAADrJo1FEFDoUAoAAIPEBGaJhbj9//+Kjbj9//+Ijdj9///HRdwB
+AAAAjZXY/f//iVXg6RwGAACNRRBQ6BwKAACDxASJhbT9//+DvbT9//8AdAyLjbT9//+DeQQAdRqL
+FTgqQgCJVeCLReBQ6AxJAACDxASJRdzrT4tN/IHhAAgAAIXJdCOLlbT9//+LQgSJReCLjbT9//8P
+vxHR6olV3MdF5AEAAADrH8dF5AAAAACLhbT9//+LSASJTeCLlbT9//8PvwKJRdzphwUAAItN/IHh
+MAgAAIXJdQmLVfyAzgiJVfyDvcz9////dQzHhVz9//////9/6wyLhcz9//+JhVz9//+LjVz9//+J
+jaj9//+NVRBS6EQJAACDxASJReCLRfwlEAgAAIXAdGiDfeAAdQmLDTwqQgCJTeDHReQBAAAAi1Xg
+iZWs/f//i4Wo/f//i42o/f//g+kBiY2o/f//hcB0IIuVrP3//zPAZosChcB0EYuNrP3//4PBAomN
+rP3//+vHi5Ws/f//K1Xg0fqJVdzrWoN94AB1CKE4KkIAiUXgi03giY2w/f//i5Wo/f//i4Wo/f//
+g+gBiYWo/f//hdJ0HouNsP3//w++EYXSdBGLhbD9//+DwAGJhbD9///ryYuNsP3//ytN4IlN3Oli
+BAAAjVUQUuhiCAAAg8QEiYWk/f//i0X8g+AghcB0EouNpP3//2aLldT9//9miRHrDouFpP3//4uN
+1P3//4kIx4XE/f//AQAAAOkXBAAAx0X4AQAAAIpV2IDCIIhV2ItF/AxAiUX8jY3Y/f//iU3gg73M
+/f//AH0Mx4XM/f//BgAAAOscg73M/f//AHUTD75V2IP6Z3UKx4XM/f//AQAAAItFEIPACIlFEItN
+EIPpCIsRi0EEiZWc/f//iYWg/f//i034UYuVzP3//1IPvkXYUItN4FGNlZz9//9S/xVELkIAg8QU
+i0X8JYAAAACFwHQWg73M/f//AHUNi03gUf8VUC5CAIPEBA++VdiD+md1GYtF/CWAAAAAhcB1DYtN
+4FH/FUguQgCDxASLVeAPvgKD+C11EotN/IDNAYlN/ItV4IPCAYlV4ItF4FDoQEYAAIPEBIlF3OkM
+AwAAi038g8lAiU38x4XI/f//CgAAAOmCAAAAx4XI/f//CgAAAOt2x4XM/f//CAAAAMeF0P3//wcA
+AADrCseF0P3//ycAAADHhcj9//8QAAAAi1X8geKAAAAAhdJ0HcaFwP3//zCLhdD9//+DwFGIhcH9
+///HRfACAAAA6yDHhcj9//8IAAAAi038geGAAAAAhcl0CYtV/IDOAolV/ItF/CUAgAAAhcB0HY1N
+EFHohgYAAIPEBImFiP3//4mVjP3//+mRAAAAi1X8g+IghdJ0SItF/IPgQIXAdB6NTRBR6DUGAACD
+xAQPv8CZiYWI/f//iZWM/f//6x6NVRBS6BcGAACDxAQl//8AAJmJhYj9//+JlYz9///rP4tF/IPg
+QIXAdBuNTRBR6O0FAACDxASZiYWI/f//iZWM/f//6xqNVRBS6NIFAACDxAQzyYmFiP3//4mNjP3/
+/4tV/IPiQIXSdD6DvYz9//8AfzV8CYO9iP3//wBzKouFiP3///fYi42M/f//g9EA99mJhZT9//+J
+jZj9//+LVfyAzgGJVfzrGIuFiP3//4mFlP3//4uNjP3//4mNmP3//4tV/IHiAIAAAIXSdRuLhZT9
+//+LjZj9//+D4QCJhZT9//+JjZj9//+Dvcz9//8AfQzHhcz9//8BAAAA6wmLVfyD4veJVfyLhZT9
+//8LhZj9//+FwHUHx0XwAAAAAI1N14lN4IuVzP3//4uFzP3//4PoAYmFzP3//4XSfxSLjZT9//8L
+jZj9//+FyQ+EgQAAAIuFyP3//5lSUIuVmP3//1KLhZT9//9Q6GVFAACDwDCJhZD9//+Lhcj9//+Z
+UlCLjZj9//9Ri5WU/f//UujQRAAAiYWU/f//iZWY/f//g72Q/f//OX4Si4WQ/f//A4XQ/f//iYWQ
+/f//i03gipWQ/f//iBGLReCD6AGJReDpUv///41N1ytN4IlN3ItV4IPCAYlV4ItF/CUAAgAAhcB0
+KYtN4A++EYP6MHUGg33cAHUYi0Xgg+gBiUXgi03gxgEwi1Xcg8IBiVXcg73E/f//AA+FzgEAAItF
+/IPgQIXAdE+LTfyB4QABAACFyXQQxoXA/f//LcdF8AEAAADrMotV/IPiAYXSdBDGhcD9//8rx0Xw
+AQAAAOsYi0X8g+AChcB0DsaFwP3//yDHRfABAAAAi428/f//K03cK03wiY2E/f//i1X8g+IMhdJ1
+HI2F1P3//1CLTQhRi5WE/f//Umog6N4CAACDxBCNhdT9//9Qi00IUYtV8FKNhcD9//9Q6AADAACD
+xBCLTfyD4QiFyXQmi1X8g+IEhdJ1HI2F1P3//1CLTQhRi5WE/f//Umow6JACAACDxBCDfeQAD4Sk
+AAAAg33cAA+OmgAAAItF4ImFgP3//4tN3ImNfP3//4uVfP3//4uFfP3//4PoAYmFfP3//4XSdG2L
+jYD9//9mixFmiZVa/f//ZouFWv3//1CNjXj9//9Ri5WA/f//g8ICiZWA/f//6EtCAACDxAiJhXT9
+//+DvXT9//8AfwLrJo2F1P3//1CLTQhRi5V0/f//Uo2FeP3//1DoKQIAAIPEEOl6////6xuNjdT9
+//9Ri1UIUotF3FCLTeBR6AcCAACDxBCLVfyD4gSF0nQcjYXU/f//UItNCFGLlYT9//9SaiDooQEA
+AIPEEOkN9P//i4XU/f//X15bi+Vdw+AXQAB6GEAAvBhAACsZQACDGUAAkhlAAN4ZQABxGkAACBlA
+ABMZQAD+GEAA8xhAAB4ZQAAmGUAAAAUFAQUFBQUFBQUCBQMFBQQgGkAAWRpAABUaQABjGkAAbBpA
+AAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBBAQEAgQEBAQEBAQEBAQDrBpAAEAdQADQ
+G0AAeR5AADsbQADBGkAASx5AAFAdQAD1HEAAxR5AAG8eQADmG0AAYx5AAIUeQABXIUAAAA4BDgEO
+Dg4ODg4ODg4ODgIODg4OAw4EDg4ODg4ODg4FBgcHBw4GDg4ODggJCg4OCw4MDg4NzMzMzMzMzMzM
+zMzMzMxVi+xRi0UMi0gEg+kBi1UMiUoEi0UMg3gEAHwmi00MixGKRQiIAg++TQiB4f8AAACJTfyL
+VQyLAoPAAYtNDIkB6xOLVQxSi0UIUOjxQQAAg8QIiUX8g338/3ULi00QxwH/////6w2LVRCLAoPA
+AYtNEIkBi+Vdw8zMzMzMzMzMzFWL7ItFDItNDIPpAYlNDIXAfiCLVRRSi0UQUItNCFHoXP///4PE
+DItVFIM6/3UC6wLr0F3DzMzMzMzMzMzMzMxVi+xRi0UMi00Mg+kBiU0MhcB+MotVFFKLRRBQi00I
+D74RiVX8i0X8UItNCIPBAYlNCOgJ////g8QMi1UUgzr/dQLrAuu+i+Vdw8zMzMzMzFWL7ItFCIsI
+g8EEi1UIiQqLRQiLCItB/F3DzMzMzMzMVYvsi0UIiwiDwQiLVQiJCotFCIsIg+kIiwGLUQRdw8xV
+i+yLRQiLCIPBBItVCIkKi0UIiwhmi0H8XcPMzMzMzFWL7FGDPUBPQgAAdQzHBUBPQgAAAgAA6xOD
+PUBPQgAUfQrHBUBPQgAUAAAAaIMAAABobAJCAGoCagShQE9CAFDoyyEAAIPEFKPsO0IAgz3sO0IA
+AHU/xwVAT0IAFAAAAGiGAAAAaGwCQgBqAmoEiw1AT0IAUeiWIQAAg8QUo+w7QgCDPew7QgAAdQpq
+GuhO7v//g8QEx0X8AAAAAOsJi1X8g8IBiVX8g338FH0Zi0X8weAFBUAqQgCLTfyLFew7QgCJBIrr
+2MdF/AAAAADrCYtF/IPAAYlF/IN9/AN9RItN/MH5BYtV/IPiH4sEjYA6QgCDPND/dBmLTfzB+QWL
+VfyD4h+LBI2AOkIAgzzQAHUQi038weEFx4FQKkIA/////+uti+Vdw8zMzMzMzMzMzMxVi+zomDwA
+AA++BRg2QgCFwHQF6AhCAABdw8zMzMzMzFWL7P8VXFFCAF3DzMzMzMxVi+xRg30IAHwGg30IA3wF
+g8j/6z6DfQz/dQyLRQiLBIXELEIA6yyLTQyD4fiFyXQFg8j/6x2LVQiLBJXELEIAiUX8i00Ii1UM
+iRSNxCxCAItF/IvlXcPMzMzMzMzMzMxVi+xRg30IAHwGg30IA3wHuP7////rY4N9DPp1DItFCIsE
+hdAsQgDrUYtNCIsUjdAsQgCJVfyDfQz8dRRq9f8VYFFCAItNCIkEjdAsQgDrJ4N9DPt1FGr0/xVg
+UUIAi1UIiQSV0CxCAOsNi0UIi00MiQyF0CxCAItF/IvlXcPMzFWL7FGh4DtCAIlF/ItNCIkN4DtC
+AItF/IvlXcPMzMzMVYvsuCwwAADoc0cAAFfGhfjP//8Auf8DAAAzwI29+c////OrZquqxoX43///
+ALn/AwAAM8CNvfnf///zq2arqsaFAPD//wC5/wMAADPAjb0B8P//86tmq6qNRRyJhfzv//+DfQgA
+fAaDfQgDfAiDyP/pFQMAAIN9CAIPhaAAAABowCxCAP8VdFFCAIXAD46NAAAAgz3UNUIAAHVCaEAD
+QgD/FXBRQgCJhfTP//+DvfTP//8AdCBoNANCAIuN9M///1H/FUhRQgCj1DVCAIM91DVCAAB1CIPI
+/+mtAgAAi1UQUotFDFBoAANCAI2N+N///1H/FdQ1QgCDxBCNlfjf//9S/xVsUUIAaMAsQgD/FWhR
+QgDo2P3//4PI/+lrAgAAg30YAHQ3i4X87///UItNGFFo7Q8AAI2VAPD//1LoPkUAAIPEEIXAfRRo
+1AJCAI2FAPD//1DoNkQAAIPECIN9CAJ1MoN9GAB0DMeF2M///8ACQgDrCseF2M///6wCQgCLjdjP
+//9RjZX4z///Uuj+QwAAg8QIjYUA8P//UI2N+M///1Ho+EMAAIPECIN9CAJ1OYtVCIsElcQsQgCD
+4AGFwHQUaKgCQgCNjfjP//9R6M1DAACDxAhopAJCAI2V+M///1LouUMAAIPECIN9DAB0Qo2F+M//
+/1CLTRBRi1UMUmiYAkIAaAAQAACNhfjf//9Q6HtCAACDxBiFwH0UaNQCQgCNjfjf//9R6GNDAACD
+xAjrFo2V+M///1KNhfjf//9Q6EtDAACDxAiDPeA7QgAAdDuNjfjv//9RjZX43///UotFCFD/FeA7
+QgCDxAyFwHQcg30IAnULaMAsQgD/FWhRQgCLhfjv///p/wAAAItNCIsUjcQsQgCD4gGF0nQ+i0UI
+gzyF0CxCAP90MWoAjY3wz///UY2V+N///1LooTkAAIPEBFCNhfjf//9Qi00IixSN0CxCAFL/FWRR
+QgCLRQiLDIXELEIAg+EChcl0DY2V+N///1L/FWxRQgCLRQiLDIXELEIAg+EEhcl0boN9EAB0HWoK
+jZXcz///UotFEFDofj4AAIPEDImF1M///+sKx4XUz///AAAAAI2NAPD//1GLVRRSi4XUz///UItN
+DFGLVQhS6DoAAACDxBSJhfjv//+DfQgCdQtowCxCAP8VaFFCAIuF+O///+sTg30IAnULaMAsQgD/
+FWhRQgAzwF+L5V3DVYvsuDgRAADo40MAAIN9GAB1JWiQBEIAagBo2gEAAGiEBEIAagLoRfz//4PE
+FIP4AXUF6Cj7//8zwIXAdc9oBAEAAI2N+P7//1FqAP8VeFFCAIXAdRRobARCAI2V+P7//1LomUEA
+AIPECI2F+P7//4lF/ItN/FHoVDgAAIPEBIP4QHYpi1X8UuhDOAAAg8QEi038jVQBwIlV/GoDaGgE
+QgCLRfxQ6GZIAACDxAyLTRSJjfDu//+DvfDu//8AdEmLlfDu//9S6AU4AACDxASD+EB2NYuF8O7/
+/1Do8TcAAIPEBIuN8O7//41UAcCJlfDu//9qA2hoBEIAi4Xw7v//UOgLSAAAg8QMg30IAnUMx4Xs
+7v//9ANCAOsKx4Xs7v//wABCAItNGA++EYXSdAuLRRiJheju///rCseF6O7//8AAQgCLTRgPvhGF
+0nQSg30IAnUMx4Xk7v//5ANCAOsKx4Xk7v//wABCAItFGA++CIXJdAzHheDu///gA0IA6wrHheDu
+///AAEIAg30QAHQLi1UQiZXc7v//6wrHhdzu///AAEIAg30QAHQMx4XY7v//2ANCAOsKx4XY7v//
+wABCAIN9DAB0C4tFDImF1O7//+sKx4XU7v//wABCAIN9DAB0DMeF0O7//9ADQgDrCseF0O7//8AA
+QgCDvfDu//8AdA6LjfDu//+Jjczu///rCseFzO7//8AAQgCDvfDu//8AdAzHhcju///EA0IA6wrH
+hcju///AAEIAi5Xs7v//UouF6O7//1CLjeTu//9Ri5Xg7v//UouF3O7//1CLjdju//9Ri5XU7v//
+UouF0O7//1CLjczu//9Ri5XI7v//UotF/FCLTQiLFI3cLEIAUmhwA0IAaAAQAACNhfTu//9Q6F4+
+AACDxDyFwH0UaNQCQgCNjfTu//9R6EY/AACDxAhoEiABAGhMA0IAjZX07v//Uuh9RQAAg8QMiYX0
+/v//g730/v//A3URahboREMAAIPEBGoD6HoAAACDvfT+//8EdQe4AQAAAOsCM8CL5V3DzMzMzFWL
+7IM93DtCAAB0Bv8V3DtCAGgYJEIAaAgiQgDofwEAAIPECGgEIUIAaAAgQgDobQEAAIPECF3DzMzM
+zMzMzMxVi+xqAGoAi0UIUOhwAAAAg8QMXcPMzMzMzMzMzMzMzFWL7GoAagGLRQhQ6FAAAACDxAxd
+w8zMzMzMzMzMzMzMVYvsagFqAGoA6DIAAACDxAxdw8zMzMzMzMzMzMzMzMxVi+xqAWoBagDoEgAA
+AIPEDF3DzMzMzMzMzMzMzMzMzFWL7FGDPSA2QgABdRGLRQhQ/xWAUUIAUP8VfFFCAMcFHDZCAAEA
+AACKTRCIDRg2QgCDfQwAdUeDPdg7QgAAdCyLFdQ7QgCJVfyLRfyD6ASJRfyLTfw7Ddg7QgByD4tV
+/IM6AHQFi0X8/xDr3WgkJ0IAaBwlQgDoZQAAAIPECGgsKUIAaCgoQgDoUwAAAIPECIM9JDZCAAB1
+IGr/6BAoAACDxASD4CCFwHQPxwUkNkIAAQAAAOi3MAAAg30QAHQC6xTHBSA2QgABAAAAi00IUf8V
+WFFCAIvlXcPMzMzMzMzMVYvsi0UIO0UMcxiLTQiDOQB0BYtVCP8Si0UIg8AEiUUI6+Bdw8zMzMzM
+zMzMzMzMVYvsg+wUi0UIUOihAQAAg8QEiUX0g330AHQJi030g3kIAHUPi1UMUv8VhFFCAOlyAQAA
+i0X0g3gIBXUUi030x0EIAAAAALgBAAAA6VUBAACLVfSDeggBdQiDyP/pRAEAAItF9ItICIlN/IsV
+KDZCAIlV7ItFDKMoNkIAi030g3kECA+F+gAAAIsVYC1CAIlV8OsJi0Xwg8ABiUXwiw1gLUIAAw1k
+LUIAOU3wfRKLVfBr0gzHgvAsQgAAAAAA69ShbC1CAIlF+ItN9IE5jgAAwHUPxwVsLUIAgwAAAOmI
+AAAAi1X0gTqQAADAdQzHBWwtQgCBAAAA63GLRfSBOJEAAMB1DMcFbC1CAIQAAADrWotN9IE5kwAA
+wHUMxwVsLUIAhQAAAOtDi1X0gTqNAADAdQzHBWwtQgCCAAAA6yyLRfSBOI8AAMB1DMcFbC1CAIYA
+AADrFYtN9IE5kgAAwHUKxwVsLUIAigAAAIsVbC1CAFJqCP9V/IPECItF+KNsLUIA6xeLTfTHQQgA
+AAAAi1X0i0IEUP9V/IPEBItN7IkNKDZCAIPI/4vlXcPMzMzMzMzMVYvsUcdF/OgsQgCLRfyLCDtN
+CHQdi1X8g8IMiVX8oWgtQgBrwAwF6CxCADlF/HMC69mLDWgtQgBryQyBwegsQgA5TfxzCotV/IsC
+O0UIdAQzwOsDi0X8i+Vdw8zMzMzMVYvsg+wQgz3QO0IAAHUF6JxKAADHRfgAAAAAobw1QgCJRfyL
+TfwPvhGF0nQsi0X8D74Ig/k9dAmLVfiDwgGJVfiLRfxQ6JYxAACDxASLTfyNVAEBiVX868pqbWio
+BEIAagKLRfiNDIUEAAAAUei+EAAAg8QQiUX0i1X0iRUANkIAgz0ANkIAAHUKagnob+H//4PEBKG8
+NUIAiUX86wmLTfwDTfCJTfyLVfwPvgKFwHRmi038UegmMQAAg8QEg8ABiUXwi1X8D74Cg/g9dEdq
+eWioBEIAagKLTfBR6FAQAACDxBCLVfSJAotF9IM4AHUKagnoCeH//4PEBItN/FGLVfSLAlDoBzoA
+AIPECItN9IPBBIlN9OuHagKLFbw1QgBS6EsaAACDxAjHBbw1QgAAAAAAi0X0xwAAAAAAxwXAO0IA
+AQAAAIvlXcPMzMzMzMzMVYvsg+wUgz3QO0IAAHUF6ExJAABoBAEAAGgsNkIAagD/FXhRQgDHBRA2
+QgAsNkIAoURPQgAPvgiFyXULixUQNkIAiVXs6wihRE9CAIlF7ItN7IlN8I1V/FKNRfRQagBqAItN
+8FHodgAAAIPEFGiAAAAAaLQEQgBqAotV9ItF/I0MkFHoWA8AAIPEEIlF+IN9+AB1CmoI6BXg//+D
+xASNVfxSjUX0UItN9ItV+I0EilCLTfhRi1XwUugjAAAAg8QUi0X0g+gBo/Q1QgCLTfiJDfg1QgCL
+5V3DzMzMzMzMzMxVi+yD7BSLRRjHAAAAAACLTRTHAQEAAACLVQiJVfyDfQwAdBGLRQyLTRCJCItV
+DIPCBIlVDItF/A++CIP5Ig+FyQAAAItV/IPCAYlV/ItF/A++CIP5InR6i1X8D74ChcB0cItN/DPS
+ihEzwIqCYTlCAIPgBIXAdC+LTRiLEYPCAYtFGIkQg30QAHQci00Qi1X8igKIAYtNEIPBAYlNEItV
+/IPCAYlV/ItFGIsIg8EBi1UYiQqDfRAAdBOLRRCLTfyKEYgQi0UQg8ABiUUQ6XL///+LTRiLEYPC
+AYtFGIkQg30QAHQPi00QxgEAi1UQg8IBiVUQi0X8D74Ig/kidQmLVfyDwgGJVfzpzwAAAItFGIsI
+g8EBi1UYiQqDfRAAdBOLRRCLTfyKEYgQi0UQg8ABiUUQi038ihGIVfSLRfyDwAGJRfyLTfSB4f8A
+AAAz0oqRYTlCAIPiBIXSdC+LRRiLCIPBAYtVGIkKg30QAHQTi0UQi038ihGIEItFEIPAAYlFEItN
+/IPBAYlN/ItV9IHi/wAAAIP6IHQei0X0Jf8AAACFwHQSi030geH/AAAAg/kJD4VW////i1X0geL/
+AAAAhdJ1C4tF/IPoAYlF/OsNg30QAHQHi00QxkH/AMdF7AAAAACLVfwPvgKFwHQhi038D74Rg/og
+dAuLRfwPvgiD+Ql1C4tV/IPCAYlV/Ovfi0X8D74Ihcl1BeneAQAAg30MAHQRi1UMi0UQiQKLTQyD
+wQSJTQyLVRSLAoPAAYtNFIkBx0X4AQAAAMdF8AAAAACLVfwPvgKD+Fx1FItN/IPBAYlN/ItV8IPC
+AYlV8Ovhi0X8D74Ig/kidVGLRfAz0rkCAAAA9/GF0nU5g33sAHQgi1X8D75CAYP4InULi038g8EB
+iU386wfHRfgAAAAA6wfHRfgAAAAAM9KDfewAD5TCiVXsi0Xw0eiJRfCLTfCLVfCD6gGJVfCFyXQk
+g30QAHQPi0UQxgBci00Qg8EBiU0Qi1UYiwKDwAGLTRiJAevMi1X8D74ChcB0HIN97AB1G4tN/A++
+EYP6IHQLi0X8D74Ig/kJdQXpqwAAAIN9+AAPhJMAAACDfRAAdFSLVfwzwIoCM8mKiGE5QgCD4QSF
+yXQpi1UQi0X8igiICotVEIPCAYlVEItF/IPAAYlF/ItNGIsRg8IBi0UYiRCLTRCLVfyKAogBi00Q
+g8EBiU0Q6yyLVfwzwIoCM8mKiGE5QgCD4QSFyXQWi1X8g8IBiVX8i0UYiwiDwQGLVRiJCotFGIsI
+g8EBi1UYiQqLRfyDwAGJRfzpbf7//4N9EAB0D4tNEMYBAItVEIPCAYlVEItFGIsIg8EBi1UYiQrp
+6P3//4N9DAB0EotFDMcAAAAAAItNDIPBBIlNDItVFIsCg8ABi00UiQGL5V3DzMzMzMzMzMzMzMzM
+VYvsg+wYx0XsAAAAAMdF6AAAAACDPTA3QgAAdT3/FZhRQgCJReyDfewAdAzHBTA3QgABAAAA6yL/
+FZRRQgCJReiDfegAdAzHBTA3QgACAAAA6wczwOm7AQAAgz0wN0IAAQ+F9wAAAIN97AB1Fv8VmFFC
+AIlF7IN97AB1BzPA6ZIBAACLReyJRfiLTfgz0maLEYXSdCCLRfiDwAKJRfiLTfgz0maLEYXSdQmL
+RfiDwAKJRfjr1ItN+CtN7NH5g8EBiU38agBqAGoAagCLVfxSi0XsUGoAagD/FZBRQgCJRfCDffAA
+dB5qZGjABEIAagKLTfBR6NgJAACDxBCJReiDfegAdRGLVexS/xWMUUIAM8DpAAEAAGoAagCLRfBQ
+i03oUYtV/FKLRexQagBqAP8VkFFCAIXAdRVqAotN6FHozhMAAIPECMdF6AAAAACLVexS/xWMUUIA
+i0Xo6bcAAACDPTA3QgACD4WoAAAAg33oAHUW/xWUUUIAiUXog33oAHUHM8DpjgAAAItF6IlF9ItN
+9A++EYXSdB6LRfSDwAGJRfSLTfQPvhGF0nUJi0X0g8ABiUX069iLTfQrTeiDwQGJTfBojwAAAGjA
+BEIAagKLVfBS6PoIAACDxBCJRfSDffQAdQ6LRehQ/xWIUUIAM8DrJYtN8FGLVehSi0X0UOh/QgAA
+g8QMi03oUf8ViFFCAItF9OsCM8CL5V3DzMzMzMzMzFWL7IPsbGiBAAAAaMgEQgBqAmgAAQAA6JQI
+AACDxBCJRbCDfbAAdQpqG+hR2f//g8QEi0Wwo4A6QgDHBbw7QgAgAAAA6wmLTbCDwQiJTbCLFYA6
+QgCBwgABAAA5VbBzGYtFsMZABACLTbDHAf////+LVbDGQgUK682NRbhQ/xWkUUIAi03qgeH//wAA
+hckPhHoBAACDfewAD4RwAQAAi1XsiwKJRZyLTeyDwQSJTfyLVfwDVZyJVaCBfZwACAAAfQiLRZyJ
+RZjrB8dFmAAIAACLTZiJTZzHRaQBAAAA6wmLVaSDwgGJVaShvDtCADtFnA+NhwAAAGi2AAAAaMgE
+QgBqAmgAAQAA6KQHAACDxBCJRbCDfbAAdQuLDbw7QgCJTZzrWotVpItFsIkElYA6QgCLDbw7QgCD
+wSCJDbw7QgDrCYtVsIPCCIlVsItFpIsMhYA6QgCBwQABAAA5TbBzGYtVsMZCBACLRbDHAP////+L
+TbDGQQUK68npYv///8dFqAAAAADrG4tVqIPCAYlVqItF/IPAAYlF/ItNoIPBBIlNoItVqDtVnH1l
+i0Wggzj/dFiLTfwPvhGD4gGF0nRLi0X8D74Ig+EIhcl1EItVoIsCUP8VoFFCAIXAdC6LTajB+QWL
+VaiD4h+LBI2AOkIAjQzQiU2wi1Wwi0WgiwiJCotVsItF/IoIiEoE6Xj////HRagAAAAA6wmLVaiD
+wgGJVaiDfagDD43RAAAAi0Woiw2AOkIAjRTBiVWwi0Wwgzj/D4WiAAAAi02wxkEEgYN9qAB1CcdF
+lPb////rEItVqIPqAffaG9KDwvWJVZSLRZRQ/xVgUUIAiUW0g320/3RYi020Uf8VoFFCAIlFrIN9
+rAB0RYtVsItFtIkCi02sgeH/AAAAg/kCdRCLVbCKQgQMQItNsIhBBOsdi1WsgeL/AAAAg/oDdQ+L
+RbCKSASAyQiLVbCISgTrD4tFsIpIBIDJQItVsIhKBOsPi0WwikgEgMmAi1WwiEoE6Rz///+hvDtC
+AFD/FZxRQgCL5V3DzMzMzMxVi+xRx0X8AAAAAOsJi0X8g8ABiUX8g338QH0yi038gzyNgDpCAAB0
+I2oCi1X8iwSVgDpCAFDopQ8AAIPECItN/McEjYA6QgAAAAAA67+L5V3DzMzMzMzMzMzMzMzMzMxV
+i+xqAGgAEAAAM8CDfQgAD5TAUP8VrFFCAKN0OkIAgz10OkIAAHUEM8DrH+gvQgAAhcB1EYsNdDpC
+AFH/FahRQgAzwOsFuAEAAABdw8zMzFWL7IPsCKHAN0IAiUX4x0X8AAAAAOsJi038g8EBiU38i1X8
+OxW8N0IAfUtoAEAAAGgAABAAi0X4i0gMUf8VtFFCAGgAgAAAagCLVfiLQgxQ/xW0UUIAi034i1EQ
+UmoAoXQ6QgBQ/xWwUUIAi034g8EUiU3466GLFcA3QgBSagChdDpCAFD/FbBRQgCLDXQ6QgBR/xWo
+UUIAi+Vdw1WL7FNWV1VqAGoAaJQ/QAD/dQjoenkAAF1fXluL5V3Di0wkBPdBBAYAAAC4AQAAAHQP
+i0QkCItUJBCJArgDAAAAw1NWV4tEJBBQav5onD9AAGT/NQAAAABkiSUAAAAAi0QkIItYCItwDIP+
+/3QuO3QkJHQojTR2iwyziUwkCIlIDIN8swQAdRJoAQEAAItEswjoQAAAAP9Uswjrw2SPBQAAAACD
+xAxfXlvDM8Bkiw0AAAAAgXkEnD9AAHUQi1EMi1IMOVEIdQW4AQAAAMNTUbt8LUIA6wpTUbt8LUIA
+i00IiUsIiUMEiWsMWVvCBADMzFZDMjBYQzAwVYvsg+wIU1ZXVfyLXQyLRQj3QAQGAAAAD4WCAAAA
+iUX4i0UQiUX8jUX4iUP8i3MMi3sIg/7/dGGNDHaDfI8EAHRFVlWNaxD/VI8EXV6LXQwLwHQzeDyL
+ewhT6Kn+//+DxASNaxBWU+je/v//g8QIjQx2agGLRI8I6GH///+LBI+JQwz/VI8Ii3sIjQx2izSP
+66G4AAAAAOscuAEAAADrFVWNaxBq/1Ponv7//4PECF24AQAAAF1fXluL5V3DVYtMJAiLKYtBHFCL
+QRhQ6Hn+//+DxAhdwgQAzMzMzFWL7IM9xDVCAAF0EoM9xDVCAAB1MoM9NCpCAAF1KWj8AAAA6CgA
+AACDxASDPTQ3QgAAdAb/FTQ3QgBo/wAAAOgMAAAAg8QEXcPMzMzMzMzMVYvsgeywAQAAU1ZXx0X4
+AAAAAOsJi0X4g8ABiUX4g334EnMTi034i1UIOxTNkC1CAHUC6wLr3otF+ItNCDsMxZAtQgAPhW4B
+AACBfQj8AAAAdCGLVfiLBNWULUIAUGoAagBqAGoB6BXm//+DxBSD+AF1AcyDPcQ1QgABdBKDPcQ1
+QgAAdUKDPTQqQgABdTlqAI1N/FGLVfiLBNWULUIAUOg7IgAAg8QEUItN+IsUzZQtQgBSavT/FWBR
+QgBQ/xVkUUIA6fAAAACBfQj8AAAAD4TjAAAAaAQBAACNhfD+//9QagD/FXhRQgCFwHUUaGwEQgCN
+jfD+//9R6BIrAACDxAiNlfD+//+JVfSLRfRQ6M0hAACDxASDwAGD+Dx2LI2N8P7//1HotiEAAIPE
+BItV9I1EAsWJRfRqA2hoBEIAi030UejZMQAAg8QMaIgHQgCNlVD+//9S6LUqAACDxAiLRfRQjY1Q
+/v//UeiyKgAAg8QIaOADQgCNlVD+//9S6J4qAACDxAiLRfiLDMWULUIAUY2VUP7//1LohCoAAIPE
+CGgQIAEAaGAHQgCNhVD+//9Q6KswAACDxAxfXluL5V3DzFWL7FHHRfwAAAAA6wmLRfyDwAGJRfyD
+ffwScxOLTfyLVQg7FM2QLUIAdQLrAuvei0X8i00IOwzFkC1CAHUMi1X8iwTVlC1CAOsCM8CL5V3D
+VYvsagBqAGoBoXA3QgBQi00IUehYAAAAg8QUXcPMzMxVi+yLRRRQi00QUYtVDFKhcDdCAFCLTQhR
+6DIAAACDxBRdw8zMzMzMzMzMzMzMzMxVi+xqAGoAagGLRQxQi00IUegKAAAAg8QUXcPMzMzMzFWL
+7FGLRRhQi00UUYtVEFKLRQhQ6FcAAACDxBCJRfyDffwAdQaDfQwAdQWLRfzrFotNCFHoN1kAAIPE
+BIXAdQQzwOsC676L5V3DzMzMzMzMVYvsagBqAGoBi0UIUOgOAAAAg8QQXcPMzMzMzMzMzMxVi+yD
+7BBTVlfHRfQAAAAAoSAuQgCD4ASFwHQw6B8QAACFwHUhaIwIQgBqAGhBAQAAaIAIQgBqAuhT4///
+g8QUg/gBdQHMM8mFyXXQixUkLkIAiVX4i0X4OwUoLkIAdQHMi00UUYtVEFKLRfhQi00MUYtVCFJq
+AGoB/xWAMUIAg8QchcB1XoN9EAB0K4tFFFCLTRBRaEgIQgBqAGoAagBqAOjq4v//g8Qcg/gBdQHM
+M9KF0nXX6yZoJAhCAGggCEIAagBqAGoAagDowuL//4PEGIP4AXUBzDPAhcB12jPA6SgCAACLTQyB
+4f//AACD+QJ0FIsVIC5CAIPiAYXSdQfHRfQBAAAAg30I4HcLi0UIg8Akg/jgdiyLTQhRaPwHQgBq
+AGoAagBqAehj4v//g8QYg/gBdQHMM9KF0nXbM8DpyQEAAItFDCX//wAAg/gEdECDfQwBdDqLTQyB
+4f//AACD+QJ0LIN9DAN0JmjIB0IAaCAIQgBqAGoAagBqAegP4v//g8QYg/gBdQHMM9KF0nXai0UI
+g8AkiUXwi03wUehuWAAAg8QEiUX8g338AHUHM8DpVwEAAIsVJC5CAIPCAYkVJC5CAIN99AB0SYtF
+/McAAAAAAItN/MdBBAAAAACLVfzHQggAAAAAi0X8x0AMvLrc/otN/ItVCIlREItF/MdAFAMAAACL
+TfzHQRgAAAAA6aAAAACLFTw3QgADVQiJFTw3QgChRDdCAANFCKNEN0IAiw1EN0IAOw1IN0IAdgyL
+FUQ3QgCJFUg3QgCDPUA3QgAAdA2hQDdCAItN/IlIBOsJi1X8iRU4N0IAi0X8iw1AN0IAiQiLVfzH
+QgQAAAAAi0X8i00QiUgIi1X8i0UUiUIMi038i1UIiVEQi0X8i00MiUgUi1X8i0X4iUIYi038iQ1A
+N0IAagQz0ooVLC5CAFKLRfyDwBxQ6GZWAACDxAxqBDPJig0sLkIAUYtVCItF/I1MECBR6EhWAACD
+xAyLVQhSM8CgLi5CAFCLTfyDwSBR6C1WAACDxAyLRfyDwCBfXluL5V3DzMzMzMzMzMzMzMzMzFWL
+7GoAagBqAYtFDFCLTQhR6AoAAACDxBRdw8zMzMzMVYvsg+wMi0UMD69FCIlFDItNGFGLVRRSi0UQ
+UItNDFHo2/v//4PEEIlF+IN9+AB0KItV+IlV9ItF9ANFDIlF/ItN9DtN/HMRi1X0xgIAi0X0g8AB
+iUX06+eLRfiL5V3DVYvsagBqAGoBi0UMUItNCFHoCgAAAIPEFF3DzMzMzMxVi+xRagGLRRhQi00U
+UYtVEFKLRQxQi00IUegRAAAAg8QYiUX8i0X8i+Vdw8zMzMxVi+yD7BRTVlfHRewAAAAAg30IAHUd
+i0UYUItNFFGLVRBSi0UMUOgl+///g8QQ6dcEAACDfRwAdB2DfQwAdReLTRBRi1UIUuhEBQAAg8QI
+M8DptAQAAKEgLkIAg+AEhcB0MOjpCwAAhcB1IWiMCEIAagBoOQIAAGiACEIAagLoHd///4PEFIP4
+AXUBzDPJhcl10IsVJC5CAIlV8ItF8DsFKC5CAHUBzItNGFGLVRRSi0XwUItNEFGLVQxSi0UIUGoC
+/xWAMUIAg8QchcB1XoN9FAB0K4tNGFGLVRRSaAgKQgBqAGoAagBqAOiy3v//g8Qcg/gBdQHMM8CF
+wHXX6yZo5AlCAGggCEIAagBqAGoAagDoit7//4PEGIP4AXUBzDPJhcl12jPA6d4DAACDfQzbdiyL
+VQxSaLQJQgBqAGoAagBqAehY3v//g8QYg/gBdQHMM8CFwHXbM8DprAMAAIN9EAF0QotNEIHh//8A
+AIP5BHQ0i1UQgeL//wAAg/oCdCZoyAdCAGggCEIAagBqAGoAagHoCd7//4PEGIP4AXUBzDPAhcB1
+2otNCFHo4Q4AAIPEBIXAdSFokAlCAGoAaGECAABogAhCAGoC6NLd//+DxBSD+AF1Acwz0oXSdcmL
+RQiD6CCJRfiLTfiDeRQDdQfHRewBAAAAg33sAHQ+i1X4gXoMvLrc/nUJi0X4g3gYAHQhaEgJQgBq
+AGhrAgAAaIAIQgBqAuh33f//g8QUg/gBdQHMM8mFyXXE62SLVfiLQhQl//8AAIP4AnUVi00QgeH/
+/wAAg/kBdQfHRRACAAAAi1X4i0IUJf//AACLTRCB4f//AAA7wXQhaAwJQgBqAGhyAgAAaIAIQgBq
+AugR3f//g8QUg/gBdQHMM9KF0nXBg30cAHQli0UMg8AkUItN+FHobFQAAIPECIlF9IN99AB1BzPA
+6UMCAADrI4tVDIPCJFKLRfhQ6LdTAACDxAiJRfSDffQAdQczwOkeAgAAiw0kLkIAg8EBiQ0kLkIA
+g33sAHVWi1X0oTw3QgArQhCjPDdCAIsNPDdCAANNDIkNPDdCAItV9KFEN0IAK0IQo0Q3QgCLDUQ3
+QgADTQyJDUQ3QgCLFUQ3QgA7FUg3QgB2CqFEN0IAo0g3QgCLTfSDwSCJTfyLVfSLRQw7QhB2JItN
+9ItVDCtREFIzwKAuLkIAUItN9ItV/ANREFLotFEAAIPEDGoEM8CgLC5CAFCLTfwDTQxR6JtRAACD
+xAyDfewAdRuLVfSLRRSJQgiLTfSLVRiJUQyLRfSLTfCJSBiLVfSLRQyJQhCDfRwAdS+DfRwAdQiL
+TfQ7Tfh0IWjYCEIAagBoqAIAAGiACEIAagLootv//4PEFIP4AXUBzDPShdJ1xYtF9DtF+HQGg33s
+AHQIi0X86ecAAACLTfSDOQB0EItV9IsCi030i1EEiVAE6zyhODdCADtF+HQhaLwIQgBqAGi3AgAA
+aIAIQgBqAuhD2///g8QUg/gBdQHMM8mFyXXPi1X0i0IEozg3QgCLTfSDeQQAdA+LVfSLQgSLTfSL
+EYkQ6zuhQDdCADtF+HQhaKAIQgBqAGjCAgAAaIAIQgBqAujv2v//g8QUg/gBdQHMM8mFyXXPi1X0
+iwKjQDdCAIM9QDdCAAB0DosNQDdCAItV9IlRBOsIi0X0ozg3QgCLTfSLFUA3QgCJEYtF9MdABAAA
+AACLTfSJDUA3QgCLRfxfXluL5V3DzMzMzMzMzMzMzMzMzMzMVYvsagBqAGoBi0UMUItNCFHoCgAA
+AIPEFF3DzMzMzMxVi+xRagCLRRhQi00UUYtVEFKLRQxQi00IUeih+v//g8QYiUX8i0X8i+Vdw8zM
+zMxVi+xqAYtFCFDoEgAAAIPECF3DzMzMzMzMzMzMzMzMzFWL7FFTVlehIC5CAIPgBIXAdDDoqAYA
+AIXAdSFojAhCAGoAaOEDAABogAhCAGoC6NzZ//+DxBSD+AF1AcwzyYXJddCDfQgAdQXplwMAAGoA
+agBqAItVDFJqAItFCFBqA/8VgDFCAIPEHIXAdStoUAtCAGggCEIAagBqAGoAagDojNn//4PEGIP4
+AXUBzDPJhcl12ulNAwAAi1UIUuhfCgAAg8QEhcB1IWiQCUIAagBo8wMAAGiACEIAagLoUNn//4PE
+FIP4AXUBzDPAhcB1yYtNCIPpIIlN/ItV/ItCFCX//wAAg/gEdEOLTfyDeRQBdDqLVfyLQhQl//8A
+AIP4AnQqi038g3kUA3QhaCgLQgBqAGj5AwAAaIAIQgBqAuju2P//g8QUg/gBdQHMM9KF0nWnoSAu
+QgCD4ASFwA+FxQAAAGoEig0sLkIAUYtV/IPCHFLo2gQAAIPEDIXAdUOLRfyDwCBQi038i1EYUotF
+/ItIFIHh//8AAIsUjTAuQgBSaPwKQgBqAGoAagBqAeh/2P//g8Qgg/gBdQHMM8CFwHW9agSKDSwu
+QgBRi1X8i0IQi038jVQBIFLodAQAAIPEDIXAdUOLRfyDwCBQi038i1EYUotF/ItIFIHh//8AAIsU
+jTAuQgBSaNAKQgBqAGoAagBqAegZ2P//g8Qgg/gBdQHMM8CFwHW9i038g3kUA3Vsi1X8gXoMvLrc
+/nUJi0X8g3gYAHQhaJAKQgBqAGgOBAAAaIAIQgBqAujU1///g8QUg/gBdQHMM8mFyXXEi1X8i0IQ
+g8AkUDPJig0tLkIAUYtV/FLoSU0AAIPEDItF/FDo7VAAAIPEBOlqAQAAi038g3kUAnUNg30MAXUH
+x0UMAgAAAItV/ItCFDtFDHQhaHAKQgBqAGgbBAAAaIAIQgBqAuhc1///g8QUg/gBdQHMM8mFyXXO
+i1X8oUQ3QgArQhCjRDdCAIsNIC5CAIPhAoXJD4XYAAAAi1X8gzoAdBCLRfyLCItV/ItCBIlBBOs+
+iw04N0IAO038dCFoWApCAGoAaCoEAABogAhCAGoC6PHW//+DxBSD+AF1Acwz0oXSdc6LRfyLSASJ
+DTg3QgCLVfyDegQAdA+LRfyLSASLVfyLAokB6z2LDUA3QgA7Tfx0IWhACkIAagBoNAQAAGiACEIA
+agLom9b//4PEFIP4AXUBzDPShdJ1zotF/IsIiQ1AN0IAi1X8i0IQg8AkUDPJig0tLkIAUYtV/FLo
+BUwAAIPEDItF/FDoqU8AAIPEBOspi038x0EUAAAAAItV/ItCEFAzyYoNLS5CAFGLVfyDwiBS6M5L
+AACDxAxfXluL5V3DzMzMzFWL7GoBi0UIUOgSAAAAg8QIXcPMzMzMzMzMzMzMzMzMVYvsg+wIU1ZX
+oSAuQgCD4ASFwHQw6JYCAACFwHUhaIwIQgBqAGh8BAAAaIAIQgBqAujK1f//g8QUg/gBdQHMM8mF
+yXXQi1UIUuiiBgAAg8QEhcB1IWiQCUIAagBohQQAAGiACEIAagLok9X//4PEFIP4AXUBzDPAhcB1
+yYtNCIPpIIlN+ItV+ItCFCX//wAAg/gEdEOLTfiDeRQBdDqLVfiLQhQl//8AAIP4AnQqi034g3kU
+A3QhaCgLQgBqAGiLBAAAaIAIQgBqAugx1f//g8QUg/gBdQHMM9KF0nWni0X4g3gUAnUNg30MAXUH
+x0UMAgAAAItN+IN5FAN0MotV+ItCFDtFDHQhaHAKQgBqAGiSBAAAaIAIQgBqAujg1P//g8QUg/gB
+dQHMM8mFyXXOi1X4i0IQiUX8i0X8X15bi+Vdw8zMzMzMzMzMzMzMzMzMVYvsUaEoLkIAiUX8i00I
+iQ0oLkIAi0X8i+Vdw8zMzMxVi+xRU1ZXi0UIUOhwBQAAg8QEhcB0a4tNCIPpIIlN/ItV/ItCFCX/
+/wAAg/gEdEOLTfyDeRQBdDqLVfyLQhQl//8AAIP4AnQqi038g3kUA3QhaCgLQgBqAGjTBAAAaIAI
+QgBqAugm1P//g8QUg/gBdQHMM9KF0nWni0X8i00MiUgUX15bi+Vdw8zMzMzMzMxVi+xRoYAxQgCJ
+RfyLTQiJDYAxQgCLRfyL5V3DzMzMzFWL7FFTVlfHRfwBAAAAi0UQi00Qg+kBiU0QhcB0YItVCDPA
+igKLTQyB4f8AAACLVQiDwgGJVQg7wXRBi0UMJf8AAABQi00IM9KKUf9Si0UIg+gBUGhsC0IAagBq
+AGoAagDoetP//4PEIIP4AXUBzDPJhcl1xsdF/AAAAADrkItF/F9eW4vlXcPMzMzMzMzMzFWL7IPs
+GFNWV8dF/AEAAAChIC5CAIPgAYXAdQq4AQAAAOkUAwAA6MVMAACJRfSDffT/D4T9AAAAg330/g+E
+8wAAAItN9IlN6ItV6IPCBolV6IN96AMPh60AAACLRej/JIURWEAAaMAMQgBoIAhCAGoAagBqAGoA
+6NTS//+DxBiD+AF1AcwzyYXJddrpngAAAGicDEIAaCAIQgBqAGoAagBqAOip0v//g8QYg/gBdQHM
+M9KF0nXa63ZoeAxCAGggCEIAagBqAGoAagDogdL//4PEGIP4AXUBzDPAhcB12utOaFQMQgBoIAhC
+AGoAagBqAGoA6FnS//+DxBiD+AF1AcwzyYXJddrrJmgoDEIAaCAIQgBqAGoAagBqAOgx0v//g8QY
+g/gBdQHMM9KF0nXaM8DpBQIAAKFAN0IAiUX46wiLTfiLEYlV+IN9+AAPhOYBAADHRfABAAAAi0X4
+i0gUgeH//wAAg/kEdCOLVfiDehQBdBqLRfiLSBSB4f//AACD+QJ0CYtV+IN6FAN1GItF+ItIFIHh
+//8AAIsUjTAuQgCJVezrB8dF7CAMQgBqBKAsLkIAUItN+IPBHFHosf3//4PEDIXAdTqLVfiDwiBS
+i0X4i0gYUYtV7FJo/ApCAGoAagBqAGoA6GbR//+DxCCD+AF1AcwzwIXAdc3HRfAAAAAAagSKDSwu
+QgBRi1X4i0IQi034jVQBIFLoVP3//4PEDIXAdTqLRfiDwCBQi034i1EYUotF7FBo0ApCAGoAagBq
+AGoA6AnR//+DxCCD+AF1AcwzyYXJdc3HRfAAAAAAi1X4g3oUAHVQi0X4i0gQUYoVLS5CAFKLRfiD
+wCBQ6PD8//+DxAyFwHUvi034g8EgUWj0C0IAagBqAGoAagDosND//4PEGIP4AXUBzDPShdJ12MdF
+8AAAAACDffAAdXaLRfiDeAgAdDOLTfiLUQxSi0X4i0gIUYtV7FJo1AtCAGoAagBqAGoA6GfQ//+D
+xCCD+AF1AcwzwIXAdc2LTfiLURBSi0X4g8AgUItN7FFoqAtCAGoAagBqAGoA6DTQ//+DxCCD+AF1
+Acwz0oXSdc3HRfwAAAAA6Qj+//+LRfxfXluL5V3DsFVAAIhVQABgVUAANVVAAMzMzMzMzMzMzMzM
+zMzMzFWL7FGhIC5CAIlF/IN9CP90CYtNCIkNIC5CAItF/IvlXcPMzMzMzMzMzMzMzMzMzFWL7FGh
+IC5CAIPgAYXAdQLrPYsNQDdCAIlN/OsIi1X8iwKJRfyDffwAdCSLTfyLURSB4v//AACD+gR1EYtF
+DFCLTfyDwSBR/1UIg8QI686L5V3DzMzMzMzMzMzMzMzMzFWL7FGDfQgAdDOLRQxQi00IUf8VwFFC
+AIXAdSGDfRAAdBKLVQxSi0UIUP8VvFFCAIXAdQnHRfwBAAAA6wfHRfwAAAAAi0X8i+Vdw8zMzMzM
+VYvsUYN9CAB1BDPA63RqAWogi0UIg+ggUOiS////g8QMhcB1BDPA61mLTQiD6SBR6AsoAACDxASJ
+RfyDffwAdBWLVQiD6iBSi0X8UOhPKAAAg8QI6yyLDeQ1QgCB4QCAAACFyXQHuAEAAADrFYtVCIPq
+IFJqAKF0OkIAUP8VxFFCAIvlXcPMzMzMzMzMzMzMVYvsUYtFCFDoY////4PEBIXAdQczwOmmAAAA
+i00Ig+kgiU38i1X8i0IUJf//AACD+AR0IotN/IN5FAF0GYtV/ItCFCX//wAAg/gCdAmLTfyDeRQD
+dWlqAYtVDFKLRQhQ6Lv+//+DxAyFwHRTi038i1EQO1UMdUiLRfyLSBg7DSQuQgB/OoN9EAB0C4tV
+EItF/ItIGIkKg30UAHQLi1UUi0X8i0gIiQqDfRgAdAuLVRiLRfyLSAyJCrgBAAAA6wIzwIvlXcPM
+zMzMzMzMzMzMzFWL7FGhaDpCAIlF/ItNCIkNaDpCAItF/IvlXcPMzMzMVYvsg+wIU1ZXg30IAHUr
+aAgNQgBoIAhCAGoAagBqAGoA6GrN//+DxBiD+AF1AcwzwIXAddrpFQEAAItNCIsVQDdCAIkRx0X8
+AAAAAOsJi0X8g8ABiUX8g338BX0ei038i1UIx0SKGAAAAACLRfyLTQjHRIEEAAAAAOvTixVAN0IA
+iVX46wiLRfiLCIlN+IN9+AAPhJ8AAACLVfiLQhQl//8AAIXAfGaLTfiLURSB4v//AACD+gV9VYtF
++ItIFIHh//8AAItVCItEigSDwAGLTfiLURSB4v//AACLTQiJRJEEi1X4i0IUJf//AACLTQiLVIEY
+i0X4A1AQi034i0EUJf//AACLTQiJVIEY6yWLVfhSaOQMQgBqAGoAagBqAOhtzP//g8QYg/gBdQHM
+M8CFwHXb6U////+LTQiLFUg3QgCJUSyLRQiLDTw3QgCJSDBfXluL5V3DzMzMzMzMzMzMzFWL7IPs
+CFNWV8dF+AAAAACDfQgAdAyDfQwAdAaDfRAAdS5oMA1CAGggCEIAagBqAGoAagDo98v//4PEGIP4
+AXUBzDPAhcB12otF+OnMAAAAx0X8AAAAAOsJi038g8EBiU38g338BQ+NgAAAAItV/ItFEItN/It1
+DItUkBgrVI4Yi0X8i00IiVSBGItV/ItFEItN/It1DItUkAQrVI4Ei0X8i00IiVSBBItV/ItFCIN8
+kBgAdQ2LTfyLVQiDfIoEAHQlg338AHQfg338AnUSg338AnUToSAuQgCD4BCFwHQHx0X4AQAAAOlt
+////i00Qi1UMi0EsK0Isi00IiUEsi1UQi0UMi0owK0gwi1UIiUowi0UIxwAAAAAAi0X4X15bi+Vd
+w8zMzMzMzMzMzMzMzMxVi+yD7AhTVlfHRfgAAAAAaCgOQgBoIAhCAGoAagBqAGoA6NnK//+DxBiD
++AF1AcwzwIXAddqDfQgAdAiLTQiLEYlV+KFAN0IAiUX86wiLTfyLEYlV/IN9/AAPhBgCAACLRfw7
+RfgPhAwCAACLTfyLURSB4v//AACD+gN0LYtF/ItIFIHh//8AAIXJdB2LVfyLQhQl//8AAIP4AnUS
+iw0gLkIAg+EQhcl1BenEAQAAi1X8g3oIAHRwagBqAYtF/ItICFHo2Pr//4PEDIXAdSqLVfyLQgxQ
+aBQOQgBqAGoAagBqAOgYyv//g8QYg/gBdQHMM8mFyXXY6y+LVfyLQgxQi038i1EIUmgIDkIAagBq
+AGoAagDo58n//4PEHIP4AXUBzDPAhcB10YtN/ItRGFJoAA5CAGoAagBqAGoA6L/J//+DxBiD+AF1
+AcwzwIXAddiLTfyLURSB4v//AACD+gR1cYtF/ItIEFGLVfyLQhTB+BAl//8AAFCLTfyDwSBRaMwN
+QgBqAGoAagBqAOhwyf//g8Qgg/gBdQHMM9KF0nXCgz1oOkIAAHQZi0X8i0gQUYtV/IPCIFL/FWg6
+QgCDxAjrDItF/FDo5gAAAIPEBOmhAAAAi038g3kUAXU9i1X8i0IQUItN/IPBIFFopA1CAGoAagBq
+AGoA6AXJ//+DxByD+AF1Acwz0oXSddGLRfxQ6J0AAACDxATrW4tN/ItRFIHi//8AAIP6AnVKi0X8
+i0gQUYtV/ItCFMH4ECX//wAAUItN/IPBIFFocA1CAGoAagBqAGoA6KjI//+DxCCD+AF1Acwz0oXS
+dcKLRfxQ6EAAAACDxATp1v3//2hYDUIAaCAIQgBqAGoAagBqAOhxyP//g8QYg/gBdQHMM8mFyXXa
+X15bi+Vdw8zMzMzMzMzMzMzMVYvsg+xcU1ZXx0W0AAAAAOsJi0W0g8ABiUW0i00Ig3kQEH0Li1UI
+i0IQiUWs6wfHRawQAAAAi020O02sD42aAAAAi1UIA1W0ikIgiEWwgz2EMUIAAX4caFcBAACLTbCB
+4f8AAABR6PVCAACDxAiJRajrHYtVsIHi/wAAAKFgLkIAM8lmiwxQgeFXAQAAiU2og32oAHQOi1Ww
+geL/AAAAiVWk6wfHRaQgAAAAi0W0ik2kiEwFuItVsIHi/wAAAFJoTA5CAItFtGvAA41MBcxR6IxB
+AACDxAzpNv///4tVtMZEFbgAjUXMUI1NuFFoPA5CAGoAagBqAGoA6FLH//+DxByD+AF1Acwz0oXS
+dddfXluL5V3DzMzMzMzMzMzMzMzMVYvsg+w0U1ZXjUXMUOiO+f//g8QEg33gAHUZg33UAHUTiw0g
+LkIAg+EQhcl0PYN92AB0N2hUDkIAaCAIQgBqAGoAagBqAOjlxv//g8QYg/gBdQHMM9KF0nXaagDo
+z/v//4PEBLgBAAAA6wIzwF9eW4vlXcPMzMzMzMzMzMzMzMxVi+xRU1ZXg30IAHUF6awAAADHRfwA
+AAAA6wmLRfyDwAGJRfyDffwFfUSLTfyLFI0wLkIAUotF/ItNCItUgQRSi0X8i00Ii1SBGFJosA5C
+AGoAagBqAGoA6FPG//+DxCCD+AF1AcwzwIXAdb7rrYtNCItRLFJojA5CAGoAagBqAGoA6CnG//+D
+xBiD+AF1AcwzwIXAddiLTQiLUTBSaGwOQgBqAGoAagBqAOgBxv//g8QYg/gBdQHMM8CFwHXYX15b
+i+Vdw8zMzMzMzMzMzMzMVYvsi0UIOwW8O0IAcgQzwOsbi00IwfkFi1UIg+IfiwSNgDpCAA++RNAE
+g+BAXcPMVYvsg30IAHUMagDoIAEAAIPEBOs8i0UIUOhCAAAAg8QEhcB0BYPI/+sni00Ii1EMgeIA
+QAAAhdJ0FYtFCItIEFHoOkEAAIPEBPfYG8DrAjPAXcPMzMzMzMzMzMzMzMzMVYvsg+wMx0X8AAAA
+AItFCIlF+ItN+ItRDIPiA4P6AnV6i0X4i0gMgeEIAQAAhcl0aotV+ItF+IsKK0gIiU30g330AH5W
+i1X0UotF+ItICFGLVfiLQhBQ6HRBAACDxAw7RfR1IYtN+ItRDIHigAAAAIXSdA+LRfiLSAyD4f2L
+VfiJSgzrFotF+ItIDIPJIItV+IlKDMdF/P////+LRfiLTfiLUQiJEItF+MdABAAAAACLRfyL5V3D
+zMzMzMzMzMzMVYvsagHoBgAAAIPEBF3DzFWL7IPsDMdF/AAAAADHRfgAAAAAx0X0AAAAAOsJi0X0
+g8ABiUX0i030Ow1AT0IAD42XAAAAi1X0oew7QgCDPJAAD4SAAAAAi030ixXsO0IAiwSKi0gMgeGD
+AAAAhcl0Z4N9CAF1JItV9KHsO0IAiwyQUehZ/v//g8QEg/j/dAmLVfyDwgGJVfzrPYN9CAB1N4tF
+9IsN7DtCAIsUgYtCDIPgAoXAdCGLTfSLFew7QgCLBIpQ6Bj+//+DxASD+P91B8dF+P/////pUf//
+/4N9CAF1BYtF/OsDi0X4i+Vdw8zMi0wkBPfBAwAAAHQUigFBhMB0QPfBAwAAAHXxBQAAAACLAbr/
+/v5+A9CD8P8zwoPBBKkAAQGBdOiLQfyEwHQyhOR0JKkAAP8AdBOpAAAA/3QC682NQf+LTCQEK8HD
+jUH+i0wkBCvBw41B/YtMJAQrwcONQfyLTCQEK8HDzMzMzMxVi+yD7AiDfQgAdQczwOmHAAAAgz2A
+N0IAAHUti0UMJf//AAA9/wAAAH4PxwXYNUIAKgAAAIPI/+tgi00IilUMiBG4AQAAAOtRx0X4AAAA
+AI1F+FBqAIsNhDFCAFGLVQhSagGNRQxQaCACAACLDZA3QgBR/xWQUUIAiUX8g338AHQGg334AHQP
+xwXYNUIAKgAAAIPI/+sDi0X8i+Vdw8zMU1aLRCQYC8B1GItMJBSLRCQQM9L38YvYi0QkDPfxi9Pr
+QYvIi1wkFItUJBCLRCQM0enR29Hq0dgLyXX09/OL8PdkJBiLyItEJBT35gPRcg47VCQQdwhyBztE
+JAx2AU4z0ovGXlvCEADMzMzMzMzMzFOLRCQUC8B1GItMJBCLRCQMM9L38YtEJAj38YvCM9LrUIvI
+i1wkEItUJAyLRCQI0enR29Hq0dgLyXX09/OLyPdkJBSR92QkEAPRcg47VCQMdwhyDjtEJAh2CCtE
+JBAbVCQUK0QkCBtUJAz32vfYg9oAW8IQAMzMzMzMzMzMzMzMVYvsg+wUU1ZXg30MAHUeaLgBQgBq
+AGppaBAPQgBqAuhswf//g8QUg/gBdQHMM8CFwHXWi00MiU34i1X4i0IQiUXwi034i1EMgeKCAAAA
+hdJ0DYtF+ItIDIPhQIXJdBaLVfiLQgwMIItN+IlBDIPI/+n2AQAAi1X4i0IMg+ABhcB0SotN+MdB
+BAAAAACLVfiLQgyD4BCFwHQci034i1X4i0IIiQGLTfiLUQyD4v6LRfiJUAzrF4tN+ItRDIPKIItF
++IlQDIPI/+mfAQAAi034i1EMg8oCi0X4iVAMi034i1EMg+Lvi0X4iVAMi034x0EEAAAAAMdF/AAA
+AACLVfyJVfSLRfiLSAyB4QwBAACFyXUugX34YCpCAHQJgX34gCpCAHUQi1XwUuiE+v//g8QEhcB1
+DItF+FDohEAAAIPEBItN+ItRDIHiCAEAAIXSD4TWAAAAi0X4i034ixArUQiF0n0haNAOQgBqAGig
+AAAAaBAPQgBqAugWwP//g8QUg/gBdQHMM8CFwHXKi034i1X4iwErQgiJRfyLTfiLUQiDwgGLRfiJ
+EItN+ItRGIPqAYtF+IlQBIN9/AB+HItN/FGLVfiLQghQi03wUehCPAAAg8QMiUX060aDffD/dBuL
+VfDB+gWLRfCD4B+LDJWAOkIAjRTBiVXs6wfHRexwLUIAi0XsD75IBIPhIIXJdBBqAmoAi1XwUui3
+PgAAg8QMi0X4i0gIilUIiBHrHsdF/AEAAACLRfxQjU0IUYtV8FLozzsAAIPEDIlF9ItF9DtF/HQU
+i034i1EMg8ogi0X4iVAMg8j/6wiLRQgl/wAAAF9eW4vlXcPMzMzMzMzMzMzMzMzMzFWL7IPsCMdF
+/AAAAADHRfgDAAAA6wmLRfiDwAGJRfiLTfg7DUBPQgB9e4tV+KHsO0IAgzyQAHRoi034ixXsO0IA
+iwSKi0gMgeGDAAAAhcl0IotV+KHsO0IAiwyQUeiuPwAAg8QEg/j/dAmLVfyDwgGJVfyDffgUfCdq
+AotF+IsN7DtCAIsUgVLoc+T//4PECItF+IsN7DtCAMcEgQAAAADpcf///4tF/IvlXcPMzMzMVYvs
+g30QCnUeg30IAH0YagGLRRBQi00MUYtVCFLoLgAAAIPEEOsWagCLRRBQi00MUYtVCFLoFgAAAIPE
+EItFDF3DzMzMzMzMzMzMzMzMzMxVi+yD7BCLRQyJRfyDfRQAdBeLTfzGAS2LVfyDwgGJVfyLRQj3
+2IlFCItN/IlN+ItFCDPS93UQiVX0i0UIM9L3dRCJRQiDffQJdhaLVfSDwleLRfyIEItN/IPBAYlN
+/OsUi1X0g8Iwi0X8iBCLTfyDwQGJTfyDfQgAd7SLVfzGAgCLRfyD6AGJRfyLTfyKEYhV8ItF/ItN
++IoRiBCLRfiKTfCICItV/IPqAYlV/ItF+IPAAYlF+ItN+DtN/HLMi+Vdw8zMzMzMzMzMzMzMzMzM
+VYvsUYN9EAp1D4N9CAB9CcdF/AEAAADrB8dF/AAAAACLRfxQi00QUYtVDFKLRQhQ6Pv+//+DxBCL
+RQyL5V3DzFWL7GoAi0UQUItNDFGLVQhS6Nr+//+DxBCLRQxdw8zMVYvsUYN9FAp1F4N9DAB/EXwG
+g30IAHMJx0X8AQAAAOsHx0X8AAAAAItF/FCLTRRRi1UQUotFDFCLTQhR6A8AAACLRRCL5V3DzMzM
+zMzMzMxVi+yD7BCLRRCJRfyDfRgAdCKLTfzGAS2LVfyDwgGJVfyLRQj32ItNDIPRAPfZiUUIiU0M
+i1X8iVX4i0UUM8lRUItVDFKLRQhQ6DL6//+JRfSLTRQz0lJRi0UMUItNCFHoq/n//4lFCIlVDIN9
+9Al2FotV9IPCV4tF/IgQi038g8EBiU386xSLVfSDwjCLRfyIEItN/IPBAYlN/IN9DAB3mXIGg30I
+AHeRi1X8xgIAi0X8g+gBiUX8i038ihGIVfCLRfyLTfiKEYgQi0X4ik3wiAiLVfyD6gGJVfyLRfiD
+wAGJRfiLTfg7TfxyzIvlXcIUAMzMzMzMzMzMzMzMzMzMVYvsagCLRRRQi00QUYtVDFKLRQhQ6Ob+
+//+LRRBdw8xVi+yD7DBTVleNReCJRdyNTRSJTdSDfQgAdR5oKA9CAGoAal1oHA9CAGoC6EC7//+D
+xBSD+AF1Acwz0oXSddaDfRAAdR5ooABCAGoAal5oHA9CAGoC6Ba7//+DxBSD+AF1AcwzwIXAddaL
+TdzHQQxCAAAAi1Xci0UIiUIIi03ci1UIiRGLRdyLTQyJSASLVdRSi0UQUItN3FHo0qn//4PEDIlF
+2ItV3ItCBIPoAYtN3IlBBItV3IN6BAB8IotF3IsIxgEAM9KB4v8AAACJVdCLRdyLCIPBAYtV3IkK
+6xGLRdxQagDo9/j//4PECIlF0ItF2F9eW4vlXcPMzMzMzMzMV4t8JAjrao2kJAAAAACL/4tMJARX
+98EDAAAAdA+KAUGEwHQ798EDAAAAdfGLAbr//v5+A9CD8P8zwoPBBKkAAQGBdOiLQfyEwHQjhOR0
+GqkAAP8AdA6pAAAA/3QC682Nef/rDY15/usIjXn96wONefyLTCQM98EDAAAAdBmKEUGE0nRkiBdH
+98EDAAAAde7rBYkXg8cEuv/+/n6LAQPQg/D/M8KLEYPBBKkAAQGBdOGE0nQ0hPZ0J/fCAAD/AHQS
+98IAAAD/dALrx4kXi0QkCF/DZokXi0QkCMZHAgBfw2aJF4tEJAhfw4gXi0QkCF/DVYvsg+wsU1ZX
+jUXgiUXcg30IAHUeaCgPQgBqAGpaaDgPQgBqAuhWuf//g8QUg/gBdQHMM8mFyXXWg30QAHUeaKAA
+QgBqAGpbaDgPQgBqAugsuf//g8QUg/gBdQHMM9KF0nXWi0Xcx0AMQgAAAItN3ItVCIlRCItF3ItN
+CIkIi1Xci0UMiUIEi00UUYtVEFKLRdxQ6Oin//+DxAyJRdiLTdyLUQSD6gGLRdyJUASLTdyDeQQA
+fCKLVdyLAsYAADPJgeH/AAAAiU3Ui1XciwKDwAGLTdyJAesRi1XcUmoA6A33//+DxAiJRdSLRdhf
+XluL5V3DzMzMzMzMzMzMzMzMzFE9ABAAAI1MJAhyFIHpABAAAC0AEAAAhQE9ABAAAHPsK8iLxIUB
+i+GLCItABFDDzFWL7IPsDIN9DAR0BoN9DAN1BelCAQAAg30IAnQWg30IFXQQg30IFnQKg30IDw+F
+uAAAAIN9CAJ0BoN9CBV1N4M9XDdCAAB1LmoBaHBxQAD/FcxRQgCD+AF1DMcFXDdCAAEAAADrEP8V
+yFFCAKPcNUIA6eMAAACLRQiJRfSLTfSD6QKJTfSDffQUd16LRfQz0oqQTnFAAP8klTpxQACLDUw3
+QgCJTfiLVQyJFUw3QgDrOKFQN0IAiUX4i00MiQ1QN0IA6yWLFVQ3QgCJVfiLRQyjVDdCAOsSiw1Y
+N0IAiU34i1UMiRVYN0IA62mDfQgIdA6DfQgEdAiDfQgLdALrWotFCFDoyAIAAIPEBIlF/IN9/AB1
+AutDi038i1EIiVX4i0X8i0gEO00IdSqLVfyLRQyJQgiLTfyDwQyJTfyLFWgtQgBr0gyBwugsQgA5
+VfxyAusC68uLRfjrDccF2DVCABYAAACDyP+L5V3DbXBAAKdwQACBcEAAlHBAALlwQAAABAQEBAQE
+BAQEBAQEAQQEBAQEAgPMzMzMzMzMzMzMzMzMVYvsg+wMg30IAHUYx0X4TDdCAItF+IsIiU30x0X8
+AgAAAOsWx0X4UDdCAItV+IsCiUX0x0X8FQAAAIN99AB1BDPA6x6DffQBdBOLTfjHAQAAAACLVfxS
+/1X0g8QEuAEAAACL5V3CBADMzMzMzMzMzFWL7IPsGItFCIlF6ItN6IPpAolN6IN96BR3cotF6DPS
+ipB8c0AA/ySVZHNAAMdF8Ew3QgCLTfCLEYlV7OtXx0XwUDdCAItF8IsIiU3s60bHRfBUN0IAi1Xw
+iwKJRezrNcdF8Fg3QgCLTfCLEYlV7Oski0UIUOhGAQAAg8QEg8AIiUXwi03wixGJVezrCIPI/+nr
+AAAAg33sAXUHM8Dp3gAAAIN97AB1B2oD6JG8//+DfQgIdAyDfQgLdAaDfQgEdSuhKDZCAIlF9McF
+KDZCAAAAAACDfQgIdROLDWwtQgCJTfzHBWwtQgCMAAAAg30ICHU5ixVgLUIAiVX46wmLRfiDwAGJ
+RfiLDWAtQgADDWQtQgA5Tfh9EotV+GvSDMeC8CxCAAAAAADr1OsJi0XwxwAAAAAAg30ICHURiw1s
+LUIAUWoI/1Xsg8QI6wqLVQhS/1Xsg8QEg30ICHQMg30IC3QGg30IBHUXi0X0oyg2QgCDfQgIdQmL
+TfyJDWwtQgAzwIvlXcMNckAAUXJAAEByQAAeckAAL3JAAG1yQAAABQEFBQUBBQUBBQUFAgUFBQUF
+AwTMzMzMzMzMzMzMzMzMzMxVi+xRx0X86CxCAItF/ItIBDtNCHQdi1X8g8IMiVX8oWgtQgBrwAwF
+6CxCADlF/HMC69iLDWgtQgBryQyBwegsQgA5TfxzEItV/ItCBDtFCHUFi0X86wIzwIvlXcPMzMxV
+i+yD7AjHRfwAAAAAgz1gN0IAAHVdaEADQgD/FXBRQgCJRfiDffgAdB1oaA9CAItF+FD/FUhRQgCj
+YDdCAIM9YDdCAAB1BDPA62xoWA9CAItN+FH/FUhRQgCjZDdCAGhED0IAi1X4Uv8VSFFCAKNoN0IA
+gz1kN0IAAHQJ/xVkN0IAiUX8g338AHQWgz1oN0IAAHQNi0X8UP8VaDdCAIlF/ItNEFGLVQxSi0UI
+UItN/FH/FWA3QgCL5V3DzMzMzMyLTCQMV4XJdHpWU4vZi3QkFPfGAwAAAIt8JBB1B8HpAnVv6yGK
+BkaIB0dJdCWEwHQp98YDAAAAdeuL2cHpAnVRg+MDdA2KBkaIB0eEwHQvS3Xzi0QkEFteX8P3xwMA
+AAB0EogHR0kPhIoAAAD3xwMAAAB17ovZwekCdWyIB0dLdfpbXotEJAhfw4kXg8cESXSvuv/+/n6L
+BgPQg/D/M8KLFoPGBKkAAQGBdN6E0nQshPZ0HvfCAAD/AHQM98IAAAD/dcaJF+sYgeL//wAAiRfr
+DoHi/wAAAIkX6wQz0okXg8cEM8BJdAozwIkHg8cESXX4g+MDdYWLRCQQW15fw8zMVYvsg+woi0UI
+UOjxAgAAg8QEiUUIi00IOw3EN0IAdQczwOnTAgAAg30IAHUR6K4DAADoKQQAADPA6bwCAADHRfwA
+AAAA6wmLVfyDwgGJVfyDffwFD4M9AQAAi0X8a8Awi4h4MEIAO00ID4UjAQAAx0XcAAAAAOsJi1Xc
+g8IBiVXcgX3cAQEAAHMMi0XcxoBgOUIAAOvix0X0AAAAAOsJi030g8EBiU30g330BHN7i1X8a9Iw
+i0X0jYzCiDBCAIlN+OsJi1X4g8ICiVX4i0X4M8mKCIXJdE2LVfgzwIpCAYXAdEGLTfgz0ooRiVXc
+6wmLRdyDwAGJRdyLTfgz0opRATlV3Hcdi0Xci030ipBhOUIACpFwMEIAi0XciJBhOUIA683rn+l2
+////i00IiQ3EN0IAxwVMOEIAAQAAAIsVxDdCAFLoGAIAAIPEBKNkOkIAx0X0AAAAAOsJi0X0g8AB
+iUX0g330BnMei038a8kwi1X0i0X0ZouMQXwwQgBmiQxVQDhCAOvT6NUCAAAzwOloAQAA6bD+//+N
+VeBSi0UIUP8V0FFCAIP4AQ+FMgEAAMdF3AAAAADrCYtN3IPBAYlN3IF93AEBAABzDItV3MaCYDlC
+AADr4otFCKPEN0IAxwVkOkIAAAAAAIN94AEPhrUAAACNTeaJTdjrCYtV2IPCAolV2ItF2DPJigiF
+yXRHi1XYM8CKQgGFwHQ7i03YM9KKEYlV3OsJi0Xcg8ABiUXci03YM9KKUQE5Vdx3F4tF3IqIYTlC
+AIDJBItV3IiKYTlCAOvT66XHRdwBAAAA6wmLRdyDwAGJRdyBfdz/AAAAcxeLTdyKkWE5QgCAygiL
+RdyIkGE5QgDr14sNxDdCAFHozgAAAIPEBKNkOkIAxwVMOEIAAQAAAOsKxwVMOEIAAAAAAMdF9AAA
+AADrCYtV9IPCAYlV9IN99AZzD4tF9GbHBEVAOEIAAADr4uiEAQAAM8DrGoM9bDdCAAB0DujyAAAA
+6G0BAAAzwOsDg8j/i+Vdw8zMVYvsxwVsN0IAAAAAAIN9CP51EscFbDdCAAEAAAD/FdhRQgDrMoN9
+CP11EscFbDdCAAEAAAD/FdRRQgDrGoN9CPx1EccFbDdCAAEAAAChkDdCAOsDi0UIXcPMzMzMzMzM
+VYvsUYtFCIlF/ItN/IHppAMAAIlN/IN9/BJ3LotF/DPSipCEeUAA/ySVcHlAALgRBAAA6xe4BAgA
+AOsQuBIEAADrCbgEBAAA6wIzwIvlXcNOeUAAVXlAAFx5QABjeUAAanlAAAAEBAQBBAQEBAQEBAQE
+BAQEAgPMzMzMzMzMzMxVi+xRx0X8AAAAAOsJi0X8g8ABiUX8gX38AQEAAH0Mi038xoFgOUIAAOvi
+xwXEN0IAAAAAAMcFTDhCAAAAAADHBWQ6QgAAAAAAx0X8AAAAAOsJi1X8g8IBiVX8g338Bn0Pi0X8
+ZscERUA4QgAAAOvii+Vdw8zMzMzMzMzMzMzMzFWL7IHsHAUAAI2F6Pz//1CLDcQ3QgBR/xXQUUIA
+g/gBD4UTAgAAx4Xk+v//AAAAAOsPi5Xk+v//g8IBiZXk+v//gb3k+v//AAEAAHMVi4Xk+v//io3k
++v//iIwF/Pz//+vQxoX8/P//II2V7vz//4lV/OsJi0X8g8ACiUX8i038M9KKEYXSdECLRfwzyYoI
+iY3k+v//6w+LleT6//+DwgGJleT6//+LRfwzyYpIATmN5Pr//3cQi5Xk+v//xoQV/Pz//yDr0eus
+agChZDpCAFCLDcQ3QgBRjZX8/f//UmgAAQAAjYX8/P//UGoB6E8yAACDxBxqAIsNxDdCAFFoAAEA
+AI2V6Pv//1JoAAEAAI2F/Pz//1BoAAEAAIsNZDpCAFHoui4AAIPEIGoAixXEN0IAUmgAAQAAjYXo
++v//UGgAAQAAjY38/P//UWgAAgAAixVkOkIAUuiFLgAAg8Qgx4Xk+v//AAAAAOsPi4Xk+v//g8AB
+iYXk+v//gb3k+v//AAEAAA+DqwAAAIuN5Pr//zPSZouUTfz9//+D4gGF0nQ2i4Xk+v//iohhOUIA
+gMkQi5Xk+v//iIphOUIAi4Xk+v//i43k+v//ipQN6Pv//4iQYDhCAOtZi4Xk+v//M8lmi4xF/P3/
+/4PhAoXJdDWLleT6//+KgmE5QgAMIIuN5Pr//4iBYTlCAIuV5Pr//4uF5Pr//4qMBej6//+IimA4
+QgDrDYuV5Pr//8aCYDhCAADpNv///+nFAAAAx4Xk+v//AAAAAOsPi4Xk+v//g8ABiYXk+v//gb3k
++v//AAEAAA+DmgAAAIO95Pr//0FyO4O95Pr//1p3MouN5Pr//4qRYTlCAIDKEIuF5Pr//4iQYTlC
+AIuN5Pr//4PBIIuV5Pr//4iKYDhCAOtRg73k+v//YXI7g73k+v//encyi4Xk+v//iohhOUIAgMkg
+i5Xk+v//iIphOUIAi4Xk+v//g+ggi43k+v//iIFgOEIA6w2LleT6///GgmA4QgAA6Uf///+L5V3D
+zMzMzMzMzMzMzMzMzMxVi+yDPUw4QgAAdAehxDdCAOsCM8Bdw8zMzMzMzMzMzFWL7IM90DtCAAB1
+FGr96F34//+DxATHBdA7QgABAAAAXcPMzMzMzMzMzMzMzMzMzFWL7FdWi3UMi00Qi30Ii8GL0QPG
+O/52CDv4D4J4AQAA98cDAAAAdRTB6QKD4gOD+QhyKfOl/ySVyH5AAIvHugMAAACD6QRyDIPgAwPI
+/ySF4H1AAP8kjdh+QACQ/ySNXH5AAJDwfUAAHH5AAEB+QAAj0YoGiAeKRgGIRwGKRgLB6QKIRwKD
+xgODxwOD+QhyzPOl/ySVyH5AAI1JACPRigaIB4pGAcHpAohHAYPGAoPHAoP5CHKm86X/JJXIfkAA
+kCPRigaIB0bB6QJHg/kIcozzpf8klch+QACNSQC/fkAArH5AAKR+QACcfkAAlH5AAIx+QACEfkAA
+fH5AAItEjuSJRI/ki0SO6IlEj+iLRI7siUSP7ItEjvCJRI/wi0SO9IlEj/SLRI74iUSP+ItEjvyJ
+RI/8jQSNAAAAAAPwA/j/JJXIfkAAi//YfkAA4H5AAOx+QAAAf0AAi0UIXl/Jw5CKBogHi0UIXl/J
+w5CKBogHikYBiEcBi0UIXl/Jw41JAIoGiAeKRgGIRwGKRgKIRwKLRQheX8nDkI10MfyNfDn898cD
+AAAAdSTB6QKD4gOD+QhyDf3zpfz/JJVggEAAi//32f8kjRCAQACNSQCLx7oDAAAAg/kEcgyD4AMr
+yP8khWh/QAD/JI1ggEAAkHh/QACYf0AAwH9AAIpGAyPRiEcDTsHpAk+D+Qhytv3zpfz/JJVggEAA
+jUkAikYDI9GIRwOKRgLB6QKIRwKD7gKD7wKD+QhyjP3zpfz/JJVggEAAkIpGAyPRiEcDikYCiEcC
+ikYBwekCiEcBg+4Dg+8Dg/kID4Ja/////fOl/P8klWCAQACNSQAUgEAAHIBAACSAQAAsgEAANIBA
+ADyAQABEgEAAV4BAAItEjhyJRI8ci0SOGIlEjxiLRI4UiUSPFItEjhCJRI8Qi0SODIlEjwyLRI4I
+iUSPCItEjgSJRI8EjQSNAAAAAAPwA/j/JJVggEAAi/9wgEAAeIBAAIiAQACcgEAAi0UIXl/Jw5CK
+RgOIRwOLRQheX8nDjUkAikYDiEcDikYCiEcCi0UIXl/Jw5CKRgOIRwOKRgKIRwKKRgGIRwGLRQhe
+X8nDzMzMzMzMzMzMzMxVi+yhcDFCAF3DzMzMzMzMVYvsgX0I+AMAAHYEM8DrDYtFCKNwMUIAuAEA
+AABdw8xVi+xoQAEAAGoAoXQ6QgBQ/xXcUUIAo8A3QgCDPcA3QgAAdQQzwOsviw3AN0IAiQ20N0IA
+xwW4N0IAAAAAAMcFvDdCAAAAAADHBaA3QgAQAAAAuAEAAABdw8zMzMzMzMxVi+yD7AyhvDdCAGvA
+FIsNwDdCAAPIiU30ixXAN0IAiVX4i0X4O0X0cyWLTfiLVQgrUQyJVfyBffwAABAAcwWLRfjrDYtF
++IPAFIlF+OvTM8CL5V3DzMzMzMzMzMzMzMxVi+yD7AyLRQiLTQwrSAyJTfiLVfjB6g+JVfy4AAAA
+gItN/NPoi00Ii1EII9CF0nUgi0X4g+APhcB1FotN+IHh/w8AAIXJdAnHRfQBAAAA6wfHRfQAAAAA
+i0X0i+Vdw8xVi+yD7DyLRQiLSBCJTcSLVQiLRQwrQgyJRfCLTfDB6Q+JTfyLVfxp0gQCAACLRcSN
+jBBEAQAAiU34i1UMg+oEiVXki0XkiwiD6QGJTdCLVeQDVdCJVciLRciLCIlN7ItV5ItC/IlF9ItN
+7IPhAYXJD4UiAQAAi1XswfoEg+oBiVXcg33cP3YHx0XcPwAAAItFyItNyItQBDtRCA+F0AAAAIN9
+3CBzX7gAAACAi03c0+j30ItN/ItVxItMikQjyItV/ItFxIlMkESLTcQDTdyKUQSA6gGLRcQDRdyI
+UASLTcQDTdwPvlEEhdJ1GLgAAACAi03c0+j30ItNCIsRI9CLRQiJEOtri03cg+kgugAAAIDT6vfS
+i0X8i03Ei4SBxAAAACPCi038i1XEiYSKxAAAAItFxANF3IpIBIDpAYtVxANV3IhKBItFxANF3A++
+SASFyXUdi03cg+kgugAAAIDT6vfSi0UIi0gEI8qLVQiJSgSLRciLSAiLVciLQgSJQQSLTciLUQSL
+RciLSAiJSgiLVdADVeyJVdCLRdDB+ASD6AGJRdiDfdg/dgfHRdg/AAAAi030g+EBhckPhVYBAACL
+VeQrVfSJVcyLRfTB+ASD6AGJRdSDfdQ/dgfHRdQ/AAAAi03QA030iU3Qi1XQwfoEg+oBiVXYg33Y
+P3YHx0XYPwAAAItF1DtF2A+EAAEAAItNzItVzItBBDtCCA+F0AAAAIN91CBzX7oAAACAi03U0+r3
+0otF/ItNxItEgUQjwotN/ItVxIlEikSLRcQDRdSKSASA6QGLVcQDVdSISgSLRcQDRdQPvkgEhcl1
+GLoAAACAi03U0+r30otFCIsII8qLVQiJCutri03Ug+kguAAAAIDT6PfQi038i1XEi4yKxAAAACPI
+i1X8i0XEiYyQxAAAAItNxANN1IpRBIDqAYtFxANF1IhQBItNxANN1A++UQSF0nUdi03Ug+kguAAA
+AIDT6PfQi00Ii1EEI9CLRQiJUASLTcyLUQiLRcyLSASJSgSLVcyLQgSLTcyLUQiJUAiLRcyJReSL
+TfSD4QGFyXUMi1XUO1XYD4QQAQAAi0XYi034jRTBiVXgi0Xki03gi1EEiVAEi0Xki03giUgIi1Xg
+i0XkiUIEi03ki1EEi0XkiUIIi03ki1Xki0EEO0IID4XIAAAAg33YIHNbi03EA03YD75RBItFxANF
+2IpIBIDBAYtFxANF2IhIBIXSdRa6AAAAgItN2NPqi0UIiwgLyotVCIkKuAAAAICLTdjT6ItN/ItV
+xItMikQLyItV/ItFxIlMkETrZ4tNxANN2A++UQSLRcQDRdiKSASAwQGLRcQDRdiISASF0nUbi03Y
+g+kgugAAAIDT6otFCItIBAvKi1UIiUoEi03Yg+kguAAAAIDT6ItN/ItVxIuMisQAAAALyItV/ItF
+xImMkMQAAACLTeSLVdCJEYtF5ANF0ItN0IlI/ItV+IsCg+gBi034iQGLVfiDOgAPhWEBAACDPbg3
+QgAAD4RDAQAAobA3QgDB4A+LDbg3QgCLUQwD0IlV6GgAQAAAaACAAACLRehQ/xW0UUIAugAAAICL
+DbA3QgDT6qG4N0IAi0gIC8qLFbg3QgCJSgihuDdCAItIEIsVsDdCAMeEkcQAAAAAAAAAobg3QgCL
+SBCKUUOA6gGhuDdCAItIEIhRQ4sVuDdCAItCEA++SEOFyXUUixW4N0IAi0IEJP6LDbg3QgCJQQSL
+Fbg3QgCDegj/D4WSAAAAaACAAABqAKG4N0IAi0gMUf8VtFFCAIsVuDdCAItCEFBqAIsNdDpCAFH/
+FbBRQgCLFbw3QgBr0hShwDdCAAPCiw24N0IAg8EUK8FQixW4N0IAg8IUUqG4N0IAUOiKJwAAg8QM
+iw28N0IAg+kBiQ28N0IAi1UIOxW4N0IAdgmLRQiD6BSJRQiLDcA3QgCJDbQ3QgCLVQiJFbg3QgCL
+RfyjsDdCAIvlXcPMzMxVi+yD7DhWobw3QgBrwBSLDcA3QgADyIlN1ItVCIPCF4Pi8IlV2ItF2MH4
+BIPoAYlF4IN94CB9FIPK/4tN4NPqiVXcx0XM/////+sVx0XcAAAAAItN4IPpIIPI/9PoiUXMiw20
+N0IAiU3oi1XoO1XUcySLReiLTdwjCItV6ItFzCNCBAvIhcl0AusLi03og8EUiU3o69SLVeg7VdQP
+hdsAAAChwDdCAIlF6ItN6DsNtDdCAHMki1Xoi0XcIwKLTeiLVcwjUQQLwoXAdALrC4tF6IPAFIlF
+6OvRi03oOw20N0IAD4WVAAAAi1XoO1XUcxaLReiDeAgAdALrC4tN6IPBFIlN6Ovii1XoO1XUdUmh
+wDdCAIlF6ItN6DsNtDdCAHMWi1Xog3oIAHQC6wuLReiDwBSJRejr34tN6DsNtDdCAHUV6PkDAACJ
+ReiDfegAdQczwOnaAwAAi1XoUujwBAAAg8QEi03oi1EQiQKLReiLSBCDOf91BzPA6bQDAACLVeiJ
+FbQ3QgCLReiLSBCJTciLVciLAolF0IN90P90I4tN0ItVyItF3CNEikSLTdCLVciLdcwjtIrEAAAA
+C8aFwHU1x0XQAAAAAItF0ItNyItV3CNUgUSLRdCLTciLdcwjtIHEAAAAC9aF0nULi1XQg8IBiVXQ
+69KLRdBpwAQCAACLTciNlAFEAQAAiVX8x0XgAAAAAItF0ItNyItV3CNUgUSJVeSDfeQAdRrHReAg
+AAAAi0XQi03Ii1XMI5SBxAAAAIlV5IN95AB8E4tF5NHgiUXki03gg8EBiU3g6+eLVeCLRfyLTNAE
+iU3wi1XwiwIrRdiJRfiLTfjB+QSD6QGJTeyDfew/fgfHRew/AAAAi1XsO1XgD4QYAgAAi0Xwi03w
+i1AEO1EID4XQAAAAg33gIH1fuAAAAICLTeDT6PfQi03Qi1XIi0yKRCPIi1XQi0XIiUyQRItNyANN
+4IpRBIDqAYtFyANF4IhQBItNyANN4A++UQSF0nUYuAAAAICLTeDT6PfQi03oixEj0ItF6IkQ62uL
+TeCD6SC6AAAAgNPq99KLRdCLTciLhIHEAAAAI8KLTdCLVciJhIrEAAAAi0XIA0XgikgEgOkBi1XI
+A1XgiEoEi0XIA0XgD75IBIXJdR2LTeCD6SC6AAAAgNPq99KLReiLSAQjyotV6IlKBItF8ItICItV
+8ItCBIlBBItN8ItRBItF8ItICIlKCIN9+AAPhA4BAACLVeyLRfyNDNCJTfSLVfCLRfSLSASJSgSL
+VfCLRfSJQgiLTfSLVfCJUQSLRfCLSASLVfCJUQiLRfCLTfCLUAQ7UQgPhcYAAACDfewgfVqLRcgD
+RewPvkgEi1XIA1XsikIEBAGLVcgDVeyIQgSFyXUWuAAAAICLTezT6ItN6IsRC9CLReiJELoAAACA
+i03s0+qLRdCLTciLRIFEC8KLTdCLVciJRIpE62aLRcgDRewPvkgEi1XIA1XsikIEBAGLVcgDVeyI
+QgSFyXUbi03sg+kguAAAAIDT6ItN6ItRBAvQi0XoiVAEi03sg+kgugAAAIDT6otF0ItNyIuEgcQA
+AAALwotN0ItVyImEisQAAACDffgAdBSLRfCLTfiJCItV8ANV+ItF+IlC/ItN8ANN+IlN8ItV2IPC
+AYtF8IkQi03Yg8EBi1XwA1XYiUr8i0X8iwiLVfyLAoPAAYtV/IkChcl1IItF6DsFuDdCAHUVi03Q
+Ow2wN0IAdQrHBbg3QgAAAAAAi1XIi0XQiQKLRfCDwARei+Vdw8zMzMzMzMzMzMxVi+xRobw3QgA7
+BaA3QgB1SosNoDdCAIPBEGvJFFGLFcA3QgBSagChdDpCAFD/FeRRQgCJRfyDffwAdQczwOnIAAAA
+i038iQ3AN0IAixWgN0IAg8IQiRWgN0IAobw3QgBrwBSLDcA3QgADyIlN/GjEQQAAagiLFXQ6QgBS
+/xXcUUIAi038iUEQi1X8g3oQAHUEM8DrdmoEaAAgAABoAAAQAGoA/xXgUUIAi038iUEMi1X8g3oM
+AHUai0X8i0gQUWoAixV0OkIAUv8VsFFCADPA6zmLRfzHAAAAAACLTfzHQQQAAAAAi1X8x0II////
+/6G8N0IAg8ABo7w3QgCLTfyLURDHAv////+LRfyL5V3DzFWL7IPsLItFCItIEIlN1ItVCItCCIlF
++MdF2AAAAACDffgAfBOLTfjR4YlN+ItV2IPCAYlV2Ovni0XYacAEAgAAi03UjZQBRAEAAIlV9MdF
+4AAAAADrCYtF4IPAAYlF4IN94D99IItN4ItV9I0EyolF6ItN6ItV6IlRCItF6ItN6IlIBOvRi1XY
+weIPi0UIi0gMA8qJTfBqBGgAEAAAaACAAACLVfBS/xXgUUIAhcB1CIPI/+kxAQAAi0XwBQBwAACJ
+ReSLTfCJTfzrDItV/IHCABAAAIlV/ItF/DtF5Hddi038x0EI/////4tV/MeC/A8AAP////+LRfyD
+wAyJReiLTejHAfAPAACLVeiBwgAQAACLReiJUASLTeiB6QAQAACLVeiJSgiLRegF7A8AAIlF3ItN
+3McB8A8AAOuPi1X0gcL4AQAAiVXsi0Xwg8AMi03siUEEi1Xsi0IEiUXoi03oi1XsiVEIi0Xkg8AM
+i03siUEIi1Xsi0IIiUXoi03oi1XsiVEEi0XYi03Ux0SBRAAAAACLVdiLRdTHhJDEAAAAAQAAAItN
+1A++UUOLRdSKSEOAwQGLRdSISEOF0nUPi00Ii1EEg8oBi0UIiVAEugAAAICLTdjT6vfSi0UIi0gI
+I8qLVQiJSgiLRdiL5V3DzMxVi+yD7DCLRRCDwBck8IlF5ItNCItREIlV0ItFCItNDCtIDIlN9ItV
+9MHqD4lV/ItF/GnABAIAAItN0I2UAUQBAACJVfiLRQyD6ASJReyLTeyLEYPqAYlV2ItF7ANF2IlF
+1ItN1IsRiVXwi0XkO0XYD46wAgAAi03wg+EBhcl1C4tV2ANV8DlV5H4HM8DpVQUAAItF8MH4BIPo
+AYlF4IN94D92B8dF4D8AAACLTdSLVdSLQQQ7QggPhdAAAACDfeAgc1+6AAAAgItN4NPq99KLRfyL
+TdCLRIFEI8KLTfyLVdCJRIpEi0XQA0XgikgEgOkBi1XQA1XgiEoEi0XQA0XgD75IBIXJdRi6AAAA
+gItN4NPq99KLRQiLCCPKi1UIiQrra4tN4IPpILgAAACA0+j30ItN/ItV0IuMisQAAAAjyItV/ItF
+0ImMkMQAAACLTdADTeCKUQSA6gGLRdADReCIUASLTdADTeAPvlEEhdJ1HYtN4IPpILgAAACA0+j3
+0ItNCItRBCPQi0UIiVAEi03Ui1EIi0XUi0gEiUoEi1XUi0IEi03Ui1EIiVAIi0XYA0XwK0XkiUXw
+g33wAA+ORgEAAItN7ANN5IlN1ItV8MH6BIPqAYlV4IN94D92B8dF4D8AAACLReCLTfiNFMGJVeiL
+RdSLTeiLUQSJUASLRdSLTeiJSAiLVeiLRdSJQgSLTdSLUQSLRdSJQgiLTdSLVdSLQQQ7QggPhcgA
+AACDfeAgc1uLTdADTeAPvlEEi0XQA0XgikgEgMEBi0XQA0XgiEgEhdJ1FroAAACAi03g0+qLRQiL
+CAvKi1UIiQq4AAAAgItN4NPoi038i1XQi0yKRAvIi1X8i0XQiUyQROtni03QA03gD75RBItF0ANF
+4IpIBIDBAYtF0ANF4IhIBIXSdRuLTeCD6SC6AAAAgNPqi0UIi0gEC8qLVQiJSgSLTeCD6SC4AAAA
+gNPoi038i1XQi4yKxAAAAAvIi1X8i0XQiYyQxAAAAItN1ItV8IkRi0XUA0Xwi03wiUj8i1Xkg8IB
+i0XsiRCLTeSDwQGLVewDVeSJSvzpvAIAAItF5DtF2A+NsAIAAItN5IPBAYtV7IkKi0Xkg8ABi03s
+A03kiUH8i1XsA1XkiVXsi0XYK0XkiUXYi03YwfkEg+kBiU3cg33cP3YHx0XcPwAAAItV8IPiAYXS
+D4U7AQAAi0XwwfgEg+gBiUXgg33gP3YHx0XgPwAAAItN1ItV1ItBBDtCCA+F0AAAAIN94CBzX7oA
+AACAi03g0+r30otF/ItN0ItEgUQjwotN/ItV0IlEikSLRdADReCKSASA6QGLVdADVeCISgSLRdAD
+ReAPvkgEhcl1GLoAAACAi03g0+r30otFCIsII8qLVQiJCutri03gg+kguAAAAIDT6PfQi038i1XQ
+i4yKxAAAACPIi1X8i0XQiYyQxAAAAItN0ANN4IpRBIDqAYtF0ANF4IhQBItN0ANN4A++UQSF0nUd
+i03gg+kguAAAAIDT6PfQi00Ii1EEI9CLRQiJUASLTdSLUQiLRdSLSASJSgSLVdSLQgSLTdSLUQiJ
+UAiLRdgDRfCJRdiLTdjB+QSD6QGJTdyDfdw/dgfHRdw/AAAAi1Xci0X4jQzQiU3oi1Xsi0Xoi0gE
+iUoEi1Xsi0XoiUIIi03oi1XsiVEEi0Xsi0gEi1XsiVEIi0Xsi03si1AEO1EID4XGAAAAg33cIHNa
+i0XQA0XcD75IBItV0ANV3IpCBAQBi1XQA1XciEIEhcl1FrgAAACAi03c0+iLTQiLEQvQi0UIiRC6
+AAAAgItN3NPqi0X8i03Qi0SBRAvCi038i1XQiUSKROtmi0XQA0XcD75IBItV0ANV3IpCBAQBi1XQ
+A1XciEIEhcl1G4tN3IPpILgAAACA0+iLTQiLUQQL0ItFCIlQBItN3IPpILoAAACA0+qLRfyLTdCL
+hIHEAAAAC8KLTfyLVdCJhIrEAAAAi0Xsi03YiQiLVewDVdiLRdiJQvy4AQAAAIvlXcPMzMzMzFWL
+7FGDPbg3QgAAD4QbAQAAobA3QgDB4A+LDbg3QgCLUQwD0IlV/GgAQAAAaACAAACLRfxQ/xW0UUIA
+ugAAAICLDbA3QgDT6qG4N0IAi0gIC8qLFbg3QgCJSgihuDdCAItIEIsVsDdCAMeEkcQAAAAAAAAA
+obg3QgCLSBCKUUOA6gGhuDdCAItIEIhRQ4sVuDdCAItCEA++SEOFyXUUixW4N0IAi0IEJP6LDbg3
+QgCJQQSLFbg3QgCDegj/dWSDPbw3QgABfluhuDdCAItIEFFqAIsVdDpCAFL/FbBRQgChvDdCAGvA
+FIsNwDdCAAPIixW4N0IAg8IUK8pRobg3QgCDwBRQiw24N0IAUegAGAAAg8QMixW8N0IAg+oBiRW8
+N0IAxwW4N0IAAAAAAIvlXcNVi+yB7GgBAAChvDdCAGvAFFCLDcA3QgBR/xW8UUIAhcB0CIPI/+nu
+BQAAixXAN0IAiZXE/v//x4Xg/v//AAAAAOsPi4Xg/v//g8ABiYXg/v//i43g/v//Ow28N0IAD42z
+BQAAi5XE/v//i0IQiYWg/v//aMRBAACLjaD+//9R/xW8UUIAhcB0Crj+////6YYFAACLlcT+//+L
+QgyJhdj+//+LjaD+//+BwUQBAACJTeiLlcT+//+LQgiJRfzHhbz+//8AAAAAx4Wo/v//AAAAAMdF
+9AAAAADrCYtN9IPBAYlN9IN99CAPje4EAADHheT+//8AAAAAx4Ww/v//AAAAAMeF1P7//wAAAADH
+hbT+//8AAAAA6w+LlbT+//+DwgGJlbT+//+DvbT+//9AfROLhbT+///HhIXo/v//AAAAAOvVg338
+AA+MMQQAAGgAgAAAi43Y/v//Uf8VvFFCAIXAdAq4/P///+mtBAAAi5XY/v//iVX4x4XA/v//AAAA
+AOsPi4XA/v//g8ABiYXA/v//g73A/v//CA+NdwEAAItN+IPBDImN0P7//4uV0P7//4HC8A8AAImV
+yP7//4uF0P7//4N4/P91C4uNyP7//4M5/3QKuPv////pPQQAAIuV0P7//4sCiYW4/v//i424/v//
+iY2s/v//i5Ws/v//g+IBhdJ0NouFuP7//4PoAYmFuP7//4G9uP7//wAEAAB+Crj6////6fEDAACL
+jdT+//+DwQGJjdT+///rQouVuP7//8H6BIPqAYmVtP7//4O9tP7//z9+CseFtP7//z8AAACLhbT+
+//+LjIXo/v//g8EBi5W0/v//iYyV6P7//4O9uP7//xB8GYuFuP7//4PgD4XAdQyBvbj+///wDwAA
+fgq4+f///+lyAwAAi43Q/v//A424/v//i1H8O5Ws/v//dAq4+P///+lRAwAAi4XQ/v//A4W4/v//
+iYXQ/v//i43Q/v//O43I/v//D4Lw/v//i5XQ/v//O5XI/v//dAq4+P///+kVAwAAi0X4BQAQAACJ
+Rfjpbf7//4tN6IsRO5XU/v//dAq49////+nuAgAAi0XoiYXM/v//x0XsAAAAAOsJi03sg8EBiU3s
+g33sQA+NLQIAAMeFmP7//wAAAACLlcz+//+JldD+//+LhdD+//+LSASJjaT+//+LlaT+//87lcz+
+//8PhCMBAACLReyLjZj+//87jIXo/v//D4QNAQAAi5Wk/v//O5XY/v//chOLhdj+//8FAIAAADmF
+pP7//3IKuPb////pUQIAAIuNpP7//4HhAPD//4mNnP7//4uVnP7//4PCDIlV8ItF8AXwDwAAiYXc
+/v//i03wO43c/v//dB+LVfA7laT+//91AusSi0XwiwiD4f6LVfAD0YlV8OvWi0XwO4Xc/v//dQq4
+9f///+nmAQAAi42k/v//ixHB+gSD6gGJlbT+//+DvbT+//8/fgrHhbT+//8/AAAAi4W0/v//O0Xs
+dAq49P///+mqAQAAi42k/v//i1EIO5XQ/v//dAq48////+mPAQAAi4Wk/v//iYXQ/v//i42Y/v//
+g8EBiY2Y/v//6bz+//+DvZj+//8AdG6DfewgfTK6AAAAgItN7NPqi4Xk/v//C8KJheT+//+6AAAA
+gItN7NPqi4W8/v//C8KJhbz+///rNotN7IPpILoAAACA0+qLhbD+//8LwomFsP7//4tN7IPpILoA
+AACA0+qLhaj+//8LwomFqP7//4uN0P7//4tRBDuVzP7//3USi0Xsi42Y/v//O4yF6P7//3QKuPL/
+///pywAAAIuVzP7//4tCCDuF0P7//3QKuPH////psAAAAIuNzP7//4PBCImNzP7//+nA/f//i1X0
+i4Wg/v//i43k/v//O0yQRHUYi1X0i4Wg/v//i42w/v//O4yQxAAAAHQHuPD////raIuV2P7//4HC
+AIAAAImV2P7//4tF6AUEAgAAiUXoi0380eGJTfzp//r//4uVxP7//4uFvP7//zsCdRGLjcT+//+L
+laj+//87UQR0B7jv////6xaLhcT+//+DwBSJhcT+///pLPr//zPAi+Vdw8zMzFWL7FGhdDdCAIlF
+/ItNCIkNdDdCAItF/IvlXcPMzMzMVYvsoXQ3QgBdw8zMzMzMzFWL7FGhdDdCAIlF/IN9/AB0DotN
+CFH/VfyDxASFwHUEM8DrBbgBAAAAi+Vdw8zMzItUJAyLTCQEhdJ0RzPAikQkCFeL+YP6BHIt99mD
+4QN0CCvRiAdHSXX6i8jB4AgDwYvIweAQA8GLyoPiA8HpAnQG86uF0nQGiAdHSnX6i0QkCF/Di0Qk
+BMPMzMzMzMzMzFWL7KFwN0IAUItNCFHoDgAAAIPECF3DzMzMzMzMzMzMVYvsUYN9COB2BDPA60WD
+fQjgdxGLRQhQ6EMAAACDxASJRfzrB8dF/AAAAACDffwAdQaDfQwAdQWLRfzrFotNCFHoCv///4PE
+BIXAdQQzwOsC67uL5V3DzMzMzMzMzMzMVYvsUYtFCDsFcDFCAHcai00IUego6f//g8QEiUX8g338
+AHQFi0X86yyDfQgAdQfHRQgBAAAAi1UIg8IPg+LwiVUIi0UIUGoAiw10OkIAUf8V3FFCAIvlXcPM
+zMzMzMzMVYvsuAEAAABdw8zMzMzMzFWL7IPsCIN9DOB2BDPA63iLRQhQ6Cfi//+DxASJRfiDffgA
+dDXHRfwAAAAAi00MOw1wMUIAdx6LVQxSi0UIUItN+FHoyPD//4PEDIXAdAaLVQiJVfyLRfzrLoN9
+DAB1B8dFDAEAAACLRQyDwA8k8IlFDItNDFGLVQhSahChdDpCAFD/FeRRQgCL5V3DzMzMzFWL7IPs
+FIN9CAB1EYtFDFDoa/7//4PEBOmrAQAAg30MAHUTi00IUeikAQAAg8QEM8DpkgEAAMdF+AAAAACD
+fQzgD4dUAQAAi1UIUuhg4f//g8QEiUX0g330AA+ECAEAAItFDDsFcDFCAHd7i00MUYtVCFKLRfRQ
+6ATw//+DxAyFwHQIi00IiU3461uLVQxS6Kzn//+DxASJRfiDffgAdEaLRQiLSPyD6QGJTfyLVfw7
+VQxzCItF/IlF8OsGi00MiU3wi1XwUotFCFCLTfhR6A3d//+DxAyLVQhSi0X0UOiN4f//g8QIg334
+AHV6g30MAHUHx0UMAQAAAItNDIPBD4Ph8IlNDItVDFJqAKF0OkIAUP8V3FFCAIlF+IN9+AB0RotN
+CItR/IPqAYlV/ItF/DtFDHMIi038iU3s6waLVQyJVeyLRexQi00IUYtV+FLojdz//4PEDItFCFCL
+TfRR6A3h//+DxAjrM4N9DAB1B8dFDAEAAACLVQyDwg+D4vCJVQyLRQxQi00IUWoAixV0OkIAUv8V
+5FFCAIlF+IN9+AB1CYM9cDdCAAB1BYtF+OsZi0UMUOg4/P//g8QEhcB1BDPA6wXpbv7//4vlXcPM
+zMzMVYvsUYN9CAB1Aus6i0UIUOjL3///g8QEiUX8g338AHQSi00IUYtV/FLocuD//4PECOsTi0UI
+UGoAiw10OkIAUf8VsFFCAIvlXcPMzMzMzMxVi+xRx0X8/v///+hw9f//hcB9B8dF/Pz///9qAGoA
+oXQ6QgBQ/xXEUUIAhcB1KP8VyFFCAIP4eHUWxwXcNUIAeAAAAMcF2DVCACgAAADrB8dF/Pz///+L
+RfyL5V3DzMxVi+zomP///13DzMzMzMzMVYvsg+wwU1ZXjUXgiUXcjU0QiU3Ug30IAHUeaCgPQgBq
+AGpdaBwPQgBqAujAhf//g8QUg/gBdQHMM9KF0nXWg30MAHUeaKAAQgBqAGpeaBwPQgBqAuiWhf//
+g8QUg/gBdQHMM8CFwHXWi03cx0EMQgAAAItV3ItFCIlCCItN3ItVCIkRi0Xcx0AE////f4tN1FGL
+VQxSi0XcUOhRdP//g8QMiUXYi03ci1EEg+oBi0XciVAEi03cg3kEAHwii1XciwLGAAAzyYHh/wAA
+AIlN0ItV3IsCg8ABi03ciQHrEYtV3FJqAOh2w///g8QIiUXQi0XYX15bi+Vdw8zMzMzMzFWL7IPs
+DItFCIPAAT0AAQAAdxeLTQiLFWAuQgAzwGaLBEojRQzpiQAAAItNCMH5CIHh/wAAAIHh/wAAAIsV
+YC5CADPAZosESiUAgAAAhcB0IotNCMH5CIHh/wAAAIhN9IpVCIhV9cZF9gDHRfgCAAAA6xGKRQiI
+RfTGRfUAx0X4AQAAAGoBagBqAI1N/FGLVfhSjUX0UGoB6JMJAACDxByFwHUEM8DrC4tF/CX//wAA
+I0UMi+Vdw8zMzMzMzMzMzFWL7FGLRQg7Bbw7QgBzH4tNCMH5BYtVCIPiH4sEjYA6QgAPvkzQBIPh
+AYXJdQ/HBdg1QgAJAAAAg8j/622LVQjB+gWLRQiD4B+LDJWAOkIAD75UwQSD4gGF0nQ6i0UIUOi7
+EAAAg8QEUP8V6FFCAIXAdQv/FchRQgCJRfzrB8dF/AAAAACDffwAdQLrGotN/IkN3DVCAMcF2DVC
+AAkAAADHRfz/////i0X8i+Vdw8zMVYvsgewgBAAAi0UIOwW8O0IAcx+LTQjB+QWLVQiD4h+LBI2A
+OkIAD75M0ASD4QGFyXUcxwXYNUIACQAAAMcF3DVCAAAAAACDyP/pTwIAAMdF8AAAAACLVfCJleD7
+//+DfRAAdQczwOkyAgAAi0UIwfgFi00Ig+EfixSFgDpCAA++RMoEg+AghcB0EGoCagCLTQhR6CgC
+AACDxAyLVQjB+gWLRQiD4B+LDJWAOkIAD75UwQSB4oAAAACF0g+ECAEAAItFDIlF/MdF9AAAAACL
+TfwrTQw7TRAPg+oAAACNlez7//+JVfiLRfiNjez7//8rwT0ABAAAfV+LVfwrVQw7VRBzVItF/IoI
+iI3k+///i1X8g8IBiVX8D76F5Pv//4P4CnUei43g+///g8EBiY3g+///i1X4xgINi0X4g8ABiUX4
+i034ipXk+///iBGLRfiDwAGJRfjrj2oAjY3o+///UYtV+I2F7Pv//yvQUo2N7Pv//1GLVQjB+gWL
+RQiD4B+LDJWAOkIAixTBUv8VZFFCAIXAdCOLRfADhej7//+JRfCLTfiNlez7//8ryjmN6Pv//30C
+6xLrC/8VyFFCAIlF9OsF6Qf////rTWoAjYXo+///UItNEFGLVQxSi0UIwfgFi00Ig+EfixSFgDpC
+AIsEylD/FWRRQgCFwHQSx0X0AAAAAIuN6Pv//4lN8OsJ/xXIUUIAiUX0g33wAHV5g330AHQsg330
+BXUVxwXYNUIACQAAAItV9IkV3DVCAOsMi0X0UOh6DwAAg8QEg8j/61CLTQjB+QWLVQiD4h+LBI2A
+OkIAD75M0ASD4UCFyXQPi1UMD74Cg/gadQQzwOsixwXYNUIAHAAAAMcF3DVCAAAAAACDyP/rCYtF
+8CuF4Pv//4vlXcPMzMzMzMzMzMzMzMzMzFWL7GoC6EZt//+DxARdw8xVi+yD7AyLRQg7Bbw7QgBz
+H4tNCMH5BYtVCIPiH4sEjYA6QgAPvkzQBIPhAYXJdRzHBdg1QgAJAAAAxwXcNUIAAAAAAIPI/+me
+AAAAi1UIUuhbDQAAg8QEiUX0g330/3UPxwXYNUIACQAAAIPI/+t6i0UQUGoAi00MUYtV9FL/FexR
+QgCJRfiDffj/dQv/FchRQgCJRfzrB8dF/AAAAACDffwAdBGLRfxQ6FIOAACDxASDyP/rNItNCMH5
+BYtVCIPiH4sEjYA6QgCKTNAEgOH9i1UIwfoFi0UIg+AfixSVgDpCAIhMwgSLRfiL5V3DzMxVi+xR
+U1ZXg30IAHUeaLgBQgBqAGouaHQPQgBqAuiuf///g8QUg/gBdQHMM8CFwHXWiw3QNUIAg8EBiQ3Q
+NUIAi1UIiVX8ajtodA9CAGoCaAAQAADoJ5v//4PEEItN/IlBCItV/IN6CAB0G4tF/ItIDIPJCItV
+/IlKDItF/MdAGAAQAADrJYtN/ItRDIPKBItF/IlQDItN/IPBFItV/IlKCItF/MdAGAIAAACLTfyL
+VfyLQgiJAYtN/MdBBAAAAABfXluL5V3DzMzMzMzMzMzMVYvsg+wIU1ZXx0X8/////4tFCIlF+ItN
++ItRDIPiQIXSdBKLRfjHQAwAAAAAg8j/6aEAAACDfQgAdR5ouAFCAGoAandogA9CAGoC6LB+//+D
+xBSD+AF1AcwzyYXJddaLVfiLQgwlgwAAAIXAdFuLTfhR6Dm5//+DxASJRfyLVfhS6DoOAACDxASL
+RfiLSBBR6DsNAACDxASFwH0Jx0X8/////+ski1X4g3ocAHQbagKLRfiLSBxR6DSk//+DxAiLVfjH
+QhwAAAAAi0X4x0AMAAAAAItF/F9eW4vlXcPMzMxVi+xq/2iYD0IAaHRAQABkoQAAAABQZIklAAAA
+AIPE3FNWV4ll6IM9mDdCAAB1V2oAagBqAWiQD0IAaAABAABqAP8V+FFCAIXAdAzHBZg3QgABAAAA
+6y9qAGoAagFojA9CAGgAAQAAagD/FfRRQgCFwHQMxwWYN0IAAgAAAOsHM8DpawIAAIN9FAB+E4tF
+FFCLTRBR6HcCAACDxAiJRRSDPZg3QgACdSOLVRxSi0UYUItNFFGLVRBSi0UMUItNCFH/FfRRQgDp
+JgIAAIM9mDdCAAEPhRcCAACDfSAAdQmLFZA3QgCJVSBqAGoAi0UUUItNEFGLVST32hvSg+IIg8IB
+UotFIFD/FfBRQgCJReSDfeQAdQczwOnWAQAAx0X8AAAAAItF5NHgg8ADJPzob8T//4ll0Ill6ItN
+0IlN3MdF/P/////rF7gBAAAAw4tl6MdF3AAAAADHRfz/////g33cAHUHM8DphwEAAItV5FKLRdxQ
+i00UUYtVEFJqAYtFIFD/FfBRQgCFwHUHM8DpYAEAAGoAagCLTeRRi1XcUotFDFCLTQhR/xX4UUIA
+iUXYg33YAHUHM8DpNgEAAItVDIHiAAQAAIXSdEODfRwAdDiLRdg7RRx+BzPA6RQBAACLTRxRi1UY
+UotF5FCLTdxRi1UMUotFCFD/FfhRQgCFwHUHM8Dp6wAAAOnfAAAAi03YiU3Ux0X8AQAAAItF1NHg
+g8ADJPzoecP//4llzIll6ItVzIlV4MdF/P/////rF7gBAAAAw4tl6MdF4AAAAADHRfz/////g33g
+AHUHM8DpkQAAAItF1FCLTeBRi1XkUotF3FCLTQxRi1UIUv8V+FFCAIXAdQQzwOtrg30cAHUuagBq
+AGoAagCLRdRQi03gUWggAgAAi1UgUv8VkFFCAIlF2IN92AB1BDPA6znrMGoAagCLRRxQi00YUYtV
+1FKLReBQaCACAACLTSBR/xWQUUIAiUXYg33YAHUEM8DrB4tF2OsCM8CNZcCLTfBkiQ0AAAAAX15b
+i+Vdw8zMzMzMzMzMzMzMVYvsg+wIi0UMiUX4i00IiU38i1X4i0X4g+gBiUX4hdJ0FYtN/A++EYXS
+dAuLRfyDwAGJRfzr24tN/A++EYXSdQiLRfwrRQjrA4tFDIvlXcNVi+xq/2iwD0IAaHRAQABkoQAA
+AABQZIklAAAAAIPE5FNWV4ll6IM9nDdCAAB1T41F5FBqAWiQD0IAagH/FQBSQgCFwHQMxwWcN0IA
+AQAAAOssjU3kUWoBaIwPQgBqAWoA/xX8UUIAhcB0DMcFnDdCAAIAAADrBzPA6SoBAACDPZw3QgAC
+dS6DfRwAdQmLFYA3QgCJVRyLRRRQi00QUYtVDFKLRQhQi00cUf8V/FFCAOnzAAAAgz2cN0IAAQ+F
+5AAAAIN9GAB1CYsVkDdCAIlVGGoAagCLRRBQi00MUYtVIPfaG9KD4giDwgFSi0UYUP8V8FFCAIlF
+4IN94AB1BzPA6aMAAADHRfwAAAAAi0Xg0eCDwAMk/Oglwf//iWXUiWXoi03UiU3ci1Xg0eJSagCL
+RdxQ6Cjv//+DxAzHRfz/////6xe4AQAAAMOLZejHRdwAAAAAx0X8/////4N93AB1BDPA60OLTeBR
+i1XcUotFEFCLTQxRagGLVRhS/xXwUUIAiUXYg33YAHUEM8DrGotFFFCLTdhRi1XcUotFCFD/FQBS
+QgDrAjPAjWXIi03wZIkNAAAAAF9eW4vlXcPMzMzMVYvsV1aLdQyLTRCLfQiLwYvRA8Y7/nYIO/gP
+gngBAAD3xwMAAAB1FMHpAoPiA4P5CHIp86X/JJVosEAAi8e6AwAAAIPpBHIMg+ADA8j/JIWAr0AA
+/ySNeLBAAJD/JI38r0AAkJCvQAC8r0AA4K9AACPRigaIB4pGAYhHAYpGAsHpAohHAoPGA4PHA4P5
+CHLM86X/JJVosEAAjUkAI9GKBogHikYBwekCiEcBg8YCg8cCg/kIcqbzpf8klWiwQACQI9GKBogH
+RsHpAkeD+QhyjPOl/ySVaLBAAI1JAF+wQABMsEAARLBAADywQAA0sEAALLBAACSwQAAcsEAAi0SO
+5IlEj+SLRI7oiUSP6ItEjuyJRI/si0SO8IlEj/CLRI70iUSP9ItEjviJRI/4i0SO/IlEj/yNBI0A
+AAAAA/AD+P8klWiwQACL/3iwQACAsEAAjLBAAKCwQACLRQheX8nDkIoGiAeLRQheX8nDkIoGiAeK
+RgGIRwGLRQheX8nDjUkAigaIB4pGAYhHAYpGAohHAotFCF5fycOQjXQx/I18Ofz3xwMAAAB1JMHp
+AoPiA4P5CHIN/fOl/P8klQCyQACL//fZ/ySNsLFAAI1JAIvHugMAAACD+QRyDIPgAyvI/ySFCLFA
+AP8kjQCyQACQGLFAADixQABgsUAAikYDI9GIRwNOwekCT4P5CHK2/fOl/P8klQCyQACNSQCKRgMj
+0YhHA4pGAsHpAohHAoPuAoPvAoP5CHKM/fOl/P8klQCyQACQikYDI9GIRwOKRgKIRwKKRgHB6QKI
+RwGD7gOD7wOD+QgPglr////986X8/ySVALJAAI1JALSxQAC8sUAAxLFAAMyxQADUsUAA3LFAAOSx
+QAD3sUAAi0SOHIlEjxyLRI4YiUSPGItEjhSJRI8Ui0SOEIlEjxCLRI4MiUSPDItEjgiJRI8Ii0SO
+BIlEjwSNBI0AAAAAA/AD+P8klQCyQACL/xCyQAAYskAAKLJAADyyQACLRQheX8nDkIpGA4hHA4tF
+CF5fycONSQCKRgOIRwOKRgKIRwKLRQheX8nDkIpGA4hHA4pGAohHAopGAYhHAYtFCF5fycPMzMzM
+zMzMzMzMzFWL7IPsDMdF+P/////HRfQAAAAA6wmLRfSDwAGJRfSDffRAD439AAAAi030gzyNgDpC
+AAB0b4tV9IsElYA6QgCJRfzrCYtN/IPBCIlN/ItV9IsElYA6QgAFAAEAADlF/HM2i038D75RBIPi
+AYXSdSaLRfzHAP////+LTfTB4QWLVfSLRfwrBJWAOkIAwfgDA8iJTfjrAuutg334/3QF6YMAAADr
+fGp5aLwPQgBqAmgAAQAA6LiQ//+DxBCJRfyDffwAdFuLTfSLVfyJFI2AOkIAobw7QgCDwCCjvDtC
+AOsJi038g8EIiU38i1X0iwSVgDpCAAUAAQAAOUX8cxmLTfzGQQQAi1X8xwL/////i0X8xkAFCuvK
+i030weEFiU346wXp8P7//4tF+IvlXcPMzMxVi+xRi0UIOwW8O0IAD4OBAAAAi00IwfkFi1UIg+If
+iwSNgDpCAIM80P91aIM9NCpCAAF1QotNCIlN/IN9/AB0DoN9/AF0FoN9/AJ0Husoi1UMUmr2/xUE
+UkIA6xqLRQxQavX/FQRSQgDrDItNDFFq9P8VBFJCAItVCMH6BYtFCIPgH4sMlYA6QgCLVQyJFMEz
+wOsXxwXYNUIACQAAAMcF3DVCAAAAAACDyP+L5V3DzFWL7FGLRQg7Bbw7QgAPg5sAAACLTQjB+QWL
+VQiD4h+LBI2AOkIAD75M0ASD4QGFyXR8i1UIwfoFi0UIg+AfiwyVgDpCAIM8wf90Y4M9NCpCAAF1
+PItVCIlV/IN9/AB0DoN9/AF0FIN9/AJ0GusiagBq9v8VBFJCAOsWagBq9f8VBFJCAOsKagBq9P8V
+BFJCAItFCMH4BYtNCIPhH4sUhYA6QgDHBMr/////M8DrF8cF2DVCAAkAAADHBdw1QgAAAAAAg8j/
+i+Vdw8zMzMzMzMxVi+yLRQg7Bbw7QgBzN4tNCMH5BYtVCIPiH4sEjYA6QgAPvkzQBIPhAYXJdBiL
+VQjB+gWLRQiD4B+LDJWAOkIAiwTB6xfHBdg1QgAJAAAAxwXcNUIAAAAAAIPI/13DzMxVi+yD7AzG
+RfQAi0UMg+AIhcB0CYpN9IDJIIhN9ItVDIHiAEAAAIXSdAiKRfQMgIhF9ItNDIHhgAAAAIXJdAmK
+VfSAyhCIVfSLRQhQ/xWgUUIAiUX8g338AHUU/xXIUUIAUOiJAAAAg8QEg8j/632DffwCdQuKTfSA
+yUCITfTrD4N9/AN1CYpV9IDKCIhV9Ohc/P//iUX4g334/3UZxwXYNUIAGAAAAMcF3DVCAAAAAACD
+yP/rNotFCFCLTfhR6F39//+DxAiKVfSAygGIVfSLRfjB+AWLTfiD4R+LFIWAOkIAikX0iETKBItF
++IvlXcNVi+xRi0UIo9w1QgDHRfwAAAAA6wmLTfyDwQGJTfyDffwtcyOLVfyLRQg7BNWQMUIAdRKL
+TfyLFM2UMUIAiRXYNUIA60LrzoN9CBNyEoN9CCR3DMcF2DVCAA0AAADrKIF9CLwAAAByFYF9CMoA
+AAB3DMcF2DVCAAgAAADrCscF2DVCABYAAACL5V3DzMzMzMxVi+xRVotFCDsFvDtCAHMfi00IwfkF
+i1UIg+IfiwSNgDpCAA++TNAEg+EBhcl1HMcF2DVCAAkAAADHBdw1QgAAAAAAg8j/6Z0AAACLVQhS
+6Mz9//+DxASD+P90PYN9CAF0BoN9CAJ1GmoB6LH9//+DxASL8GoC6KX9//+DxAQ78HQXi0UIUOiV
+/f//g8QEUP8VCFJCAIXAdAnHRfwAAAAA6wn/FchRQgCJRfyLTQhR6Jz8//+DxASLVQjB+gWLRQiD
+4B+LDJWAOkIAxkTBBACDffwAdBGLVfxS6JL+//+DxASDyP/rAjPAXovlXcPMzMxVi+xTVleDfQgA
+dR5o1A9CAGoAajBoyA9CAGoC6B9w//+DxBSD+AF1AcwzwIXAddaLTQiLUQyB4oMAAACF0nRNi0UI
+i0gMg+EIhcl0QGoCi1UIi0IIUOjVlf//g8QIi00Ii1EMgeL3+///i0UIiVAMi00IxwEAAAAAi1UI
+x0IIAAAAAItFCMdABAAAAABfXltdw/8lUFFCAP8lVFFCAP8lWFFCAP8lXFFCAP8lYFFCAP8lZFFC
+AP8laFFCAP8lbFFCAP8lcFFCAP8ldFFCAP8leFFCAP8lfFFCAP8lgFFCAP8lhFFCAP8liFFCAP8l
+jFFCAP8lkFFCAP8llFFCAP8lmFFCAP8lnFFCAP8loFFCAP8lpFFCAP8lqFFCAP8lrFFCAP8lsFFC
+AP8ltFFCAP8luFFCAP8lvFFCAP8lwFFCAP8lxFFCAP8lyFFCAP8lzFFCAP8l0FFCAP8l1FFCAP8l
+2FFCAP8l3FFCAP8l4FFCAP8l5FFCAP8l6FFCAP8l7FFCAP8l8FFCAP8l9FFCAP8l+FFCAP8l/FFC
+AP8lAFJCAP8lBFJCAP8lCFJCAMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
+zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMwAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEakrUAAAAAACAAAALAAAAAAAAAAAYAIA
+bWluX3JlcyA9ICVkLCBtYXhfcmVzID0gJWQsIGN1cl9yZXMgPSAlZAoAAAAAAAAAAAAAAE50UXVl
+cnlUaW1lclJlc29sdXRpb24AAAAAAABOdFNldFRpbWVyUmVzb2x1dGlvbgAAAAAAAAAAbnRkbGwu
+ZGxsAAAAcHJpbnRmLmMAAAAAZm9ybWF0ICE9IE5VTEwAAGkzODZcY2hrZXNwLmMAAAAAAAAAVGhl
+IHZhbHVlIG9mIEVTUCB3YXMgbm90IHByb3Blcmx5IHNhdmVkIGFjcm9zcyBhIGZ1bmN0aW9uIGNh
+bGwuICBUaGlzIGlzIHVzdWFsbHkgYSByZXN1bHQgb2YgY2FsbGluZyBhIGZ1bmN0aW9uIGRlY2xh
+cmVkIHdpdGggb25lIGNhbGxpbmcgY29udmVudGlvbiB3aXRoIGEgZnVuY3Rpb24gcG9pbnRlciBk
+ZWNsYXJlZCB3aXRoIGEgZGlmZmVyZW50IGNhbGxpbmcgY29udmVudGlvbi4gAP////9oFEAAgxRA
+AF9zZnRidWYuYwAAAHN0ciAhPSBOVUxMAGZsYWcgPT0gMCB8fCBmbGFnID09IDEAAAYAAAYAAQAA
+EAADBgAGAhAERUVFBQUFBQU1MABQAAAAACAoOFBYBwgANzAwV1AHAAAgIAgAAAAACGBoYGBgYAAA
+cHB4eHh4CAcIAAAHAAgICAAACAAIAAcIAAAAKABuAHUAbABsACkAAAAAAChudWxsKQAAb3V0cHV0
+LmMAAAAAY2ggIT0gX1QoJ1wwJykAAF9maWxlLmMAQXNzZXJ0aW9uIEZhaWxlZAAAAABFcnJvcgAA
+AFdhcm5pbmcAJXMoJWQpIDogJXMACgAAAA0AAABBc3NlcnRpb24gZmFpbGVkIQAAAEFzc2VydGlv
+biBmYWlsZWQ6IAAAX0NydERiZ1JlcG9ydDogU3RyaW5nIHRvbyBsb25nIG9yIElPIEVycm9yAABT
+ZWNvbmQgQ2hhbmNlIEFzc2VydGlvbiBGYWlsZWQ6IEZpbGUgJXMsIExpbmUgJWQKAAAAd3Nwcmlu
+dGZBAAAAdXNlcjMyLmRsbAAATWljcm9zb2Z0IFZpc3VhbCBDKysgRGVidWcgTGlicmFyeQAARGVi
+dWcgJXMhCgpQcm9ncmFtOiAlcyVzJXMlcyVzJXMlcyVzJXMlcyVzCgooUHJlc3MgUmV0cnkgdG8g
+ZGVidWcgdGhlIGFwcGxpY2F0aW9uKQAACk1vZHVsZTogAAAACkZpbGU6IAAKTGluZTogAAoKAABF
+eHByZXNzaW9uOiAAAAAACgpGb3IgaW5mb3JtYXRpb24gb24gaG93IHlvdXIgcHJvZ3JhbSBjYW4g
+Y2F1c2UgYW4gYXNzZXJ0aW9uCmZhaWx1cmUsIHNlZSB0aGUgVmlzdWFsIEMrKyBkb2N1bWVudGF0
+aW9uIG9uIGFzc2VydHMuAAAuLi4APHByb2dyYW0gbmFtZSB1bmtub3duPgAAZGJncnB0LmMAAAAA
+c3pVc2VyTWVzc2FnZSAhPSBOVUxMAAAAc3RkZW52cC5jAAAAc3RkYXJndi5jAAAAYV9lbnYuYwBp
+b2luaXQuYwAAAABydW50aW1lIGVycm9yIAAADQoAAFRMT1NTIGVycm9yDQoAAABTSU5HIGVycm9y
+DQoAAAAARE9NQUlOIGVycm9yDQoAAFI2MDI4DQotIHVuYWJsZSB0byBpbml0aWFsaXplIGhlYXAN
+CgAAAABSNjAyNw0KLSBub3QgZW5vdWdoIHNwYWNlIGZvciBsb3dpbyBpbml0aWFsaXphdGlvbg0K
+AAAAAFI2MDI2DQotIG5vdCBlbm91Z2ggc3BhY2UgZm9yIHN0ZGlvIGluaXRpYWxpemF0aW9uDQoA
+AAAAUjYwMjUNCi0gcHVyZSB2aXJ0dWFsIGZ1bmN0aW9uIGNhbGwNCgAAAFI2MDI0DQotIG5vdCBl
+bm91Z2ggc3BhY2UgZm9yIF9vbmV4aXQvYXRleGl0IHRhYmxlDQoAAAAAUjYwMTkNCi0gdW5hYmxl
+IHRvIG9wZW4gY29uc29sZSBkZXZpY2UNCgAAAABSNjAxOA0KLSB1bmV4cGVjdGVkIGhlYXAgZXJy
+b3INCgAAAABSNjAxNw0KLSB1bmV4cGVjdGVkIG11bHRpdGhyZWFkIGxvY2sgZXJyb3INCgAAAABS
+NjAxNg0KLSBub3QgZW5vdWdoIHNwYWNlIGZvciB0aHJlYWQgZGF0YQ0KAA0KYWJub3JtYWwgcHJv
+Z3JhbSB0ZXJtaW5hdGlvbg0KAAAAAFI2MDA5DQotIG5vdCBlbm91Z2ggc3BhY2UgZm9yIGVudmly
+b25tZW50DQoAUjYwMDgNCi0gbm90IGVub3VnaCBzcGFjZSBmb3IgYXJndW1lbnRzDQoAAABSNjAw
+Mg0KLSBmbG9hdGluZyBwb2ludCBub3QgbG9hZGVkDQoAAAAATWljcm9zb2Z0IFZpc3VhbCBDKysg
+UnVudGltZSBMaWJyYXJ5AAAAAFJ1bnRpbWUgRXJyb3IhCgpQcm9ncmFtOiAAAABDbGllbnQAAEln
+bm9yZQAAQ1JUAE5vcm1hbAAARnJlZQAAAABFcnJvcjogbWVtb3J5IGFsbG9jYXRpb246IGJhZCBt
+ZW1vcnkgYmxvY2sgdHlwZS4KAAAASW52YWxpZCBhbGxvY2F0aW9uIHNpemU6ICV1IGJ5dGVzLgoA
+JXMAAENsaWVudCBob29rIGFsbG9jYXRpb24gZmFpbHVyZS4KAAAAAENsaWVudCBob29rIGFsbG9j
+YXRpb24gZmFpbHVyZSBhdCBmaWxlICVocyBsaW5lICVkLgoAAAAAZGJnaGVhcC5jAAAAX0NydENo
+ZWNrTWVtb3J5KCkAAABfcEZpcnN0QmxvY2sgPT0gcE9sZEJsb2NrAAAAX3BMYXN0QmxvY2sgPT0g
+cE9sZEJsb2NrAAAAAGZSZWFsbG9jIHx8ICghZlJlYWxsb2MgJiYgcE5ld0Jsb2NrID09IHBPbGRC
+bG9jaykAAABfQkxPQ0tfVFlQRShwT2xkQmxvY2stPm5CbG9ja1VzZSk9PV9CTE9DS19UWVBFKG5C
+bG9ja1VzZSkAAABwT2xkQmxvY2stPm5MaW5lID09IElHTk9SRV9MSU5FICYmIHBPbGRCbG9jay0+
+bFJlcXVlc3QgPT0gSUdOT1JFX1JFUQAAAABfQ3J0SXNWYWxpZEhlYXBQb2ludGVyKHBVc2VyRGF0
+YSkAAABBbGxvY2F0aW9uIHRvbyBsYXJnZSBvciBuZWdhdGl2ZTogJXUgYnl0ZXMuCgAAAABDbGll
+bnQgaG9vayByZS1hbGxvY2F0aW9uIGZhaWx1cmUuCgBDbGllbnQgaG9vayByZS1hbGxvY2F0aW9u
+IGZhaWx1cmUgYXQgZmlsZSAlaHMgbGluZSAlZC4KAF9wRmlyc3RCbG9jayA9PSBwSGVhZAAAAF9w
+TGFzdEJsb2NrID09IHBIZWFkAAAAAHBIZWFkLT5uQmxvY2tVc2UgPT0gbkJsb2NrVXNlAAAAcEhl
+YWQtPm5MaW5lID09IElHTk9SRV9MSU5FICYmIHBIZWFkLT5sUmVxdWVzdCA9PSBJR05PUkVfUkVR
+AAAAAERBTUFHRTogYWZ0ZXIgJWhzIGJsb2NrICgjJWQpIGF0IDB4JTA4WC4KAAAAREFNQUdFOiBi
+ZWZvcmUgJWhzIGJsb2NrICgjJWQpIGF0IDB4JTA4WC4KAABfQkxPQ0tfVFlQRV9JU19WQUxJRChw
+SGVhZC0+bkJsb2NrVXNlKQAAQ2xpZW50IGhvb2sgZnJlZSBmYWlsdXJlLgoAAG1lbW9yeSBjaGVj
+ayBlcnJvciBhdCAweCUwOFggPSAweCUwMlgsIHNob3VsZCBiZSAweCUwMlguCgAAACVocyBsb2Nh
+dGVkIGF0IDB4JTA4WCBpcyAldSBieXRlcyBsb25nLgoAAAAAJWhzIGFsbG9jYXRlZCBhdCBmaWxl
+ICVocyglZCkuCgBEQU1BR0U6IG9uIHRvcCBvZiBGcmVlIGJsb2NrIGF0IDB4JTA4WC4KAAAAAERB
+TUFHRUQAX2hlYXBjaGsgZmFpbHMgd2l0aCB1bmtub3duIHJldHVybiB2YWx1ZSEKAABfaGVhcGNo
+ayBmYWlscyB3aXRoIF9IRUFQQkFEUFRSLgoAAABfaGVhcGNoayBmYWlscyB3aXRoIF9IRUFQQkFE
+RU5ELgoAAABfaGVhcGNoayBmYWlscyB3aXRoIF9IRUFQQkFETk9ERS4KAABfaGVhcGNoayBmYWls
+cyB3aXRoIF9IRUFQQkFEQkVHSU4uCgBCYWQgbWVtb3J5IGJsb2NrIGZvdW5kIGF0IDB4JTA4WC4K
+AABfQ3J0TWVtQ2hlY2tQb2ludDogTlVMTCBzdGF0ZSBwb2ludGVyLgoAX0NydE1lbURpZmZlcmVu
+Y2U6IE5VTEwgc3RhdGUgcG9pbnRlci4KAE9iamVjdCBkdW1wIGNvbXBsZXRlLgoAAGNydCBibG9j
+ayBhdCAweCUwOFgsIHN1YnR5cGUgJXgsICV1IGJ5dGVzIGxvbmcuCgAAAABub3JtYWwgYmxvY2sg
+YXQgMHglMDhYLCAldSBieXRlcyBsb25nLgoAY2xpZW50IGJsb2NrIGF0IDB4JTA4WCwgc3VidHlw
+ZSAleCwgJXUgYnl0ZXMgbG9uZy4KAHslbGR9IAAAJWhzKCVkKSA6IAAAI0ZpbGUgRXJyb3IjKCVk
+KSA6IABEdW1waW5nIG9iamVjdHMgLT4KACBEYXRhOiA8JXM+ICVzCgAlLjJYIAAAAERldGVjdGVk
+IG1lbW9yeSBsZWFrcyEKAFRvdGFsIGFsbG9jYXRpb25zOiAlbGQgYnl0ZXMuCgAATGFyZ2VzdCBu
+dW1iZXIgdXNlZDogJWxkIGJ5dGVzLgoAAAAAJWxkIGJ5dGVzIGluICVsZCAlaHMgQmxvY2tzLgoA
+AAAoImluY29uc2lzdGVudCBJT0IgZmllbGRzIiwgc3RyZWFtLT5fcHRyIC0gc3RyZWFtLT5fYmFz
+ZSA+PSAwKQAAX2Zsc2J1Zi5jAAAAc3ByaW50Zi5jAAAAc3RyaW5nICE9IE5VTEwAAHZzcHJpbnRm
+LmMAAEdldExhc3RBY3RpdmVQb3B1cAAAR2V0QWN0aXZlV2luZG93AE1lc3NhZ2VCb3hBAF9nZXRi
+dWYuYwAAAGZjbG9zZS5jAAAAAAAAAAAAAAAAAAAAAP////9Gq0AATKtAAP////88rEAAQqxAAP//
+//+krkAAqq5AAG9zZmluZm8uYwAAAF9mcmVlYnVmLmMAAHN0cmVhbSAhPSBOVUxMAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAlQABQ
+fUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8CZAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAg
+L0AAAQAAAEgCQgA4AkIAQD9CAAAAAABAP0IAAQEAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAA
+AAACAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAACAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP////8CAAAABAAAAAQAAAD///////////////+Q
+AkIAiAJCAHQCQgAFAADACwAAAAAAAAAdAADABAAAAAAAAACWAADABAAAAAAAAACNAADACAAAAAAA
+AACOAADACAAAAAAAAACPAADACAAAAAAAAACQAADACAAAAAAAAACRAADACAAAAAAAAACSAADACAAA
+AAAAAACTAADACAAAAAAAAAADAAAABwAAAAoAAACMAAAA/////wAKAAAQAAAAIAWTGQAAAAAAAAAA
+AAAAAAAAAAACAAAAOAdCAAgAAAAMB0IACQAAAOAGQgAKAAAAvAZCABAAAACQBkIAEQAAAGAGQgAS
+AAAAPAZCABMAAAAQBkIAGAAAANgFQgAZAAAAsAVCABoAAAB4BUIAGwAAAEAFQgAcAAAAGAVCAHgA
+AAAIBUIAeQAAAPgEQgB6AAAA6ARCAPwAAADkBEIA/wAAANQEQgABAAAAAQAAAP/////93c0AwAdC
+ALgHQgC0B0IArAdCAKQHQgBQp0AAUKdAAFCnQABQp0AAUKdAAFCnQAAAAAAAai5CAGouQgAAACAA
+IAAgACAAIAAgACAAIAAgACgAKAAoACgAKAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAg
+ACAAIABIABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAIQAhACEAIQAhACEAIQAhACEAIQA
+EAAQABAAEAAQABAAEACBAIEAgQCBAIEAgQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAB
+AAEAAQABAAEAEAAQABAAEAAQABAAggCCAIIAggCCAIIAAgACAAIAAgACAAIAAgACAAIAAgACAAIA
+AgACAAIAAgACAAIAAgACABAAEAAQABAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAQIECAAAAACkAwAAYIJ5giEAAAAAAAAApt8AAAAAAAChpQAAAAAAAIGf4PwAAAAAQH6A/AAA
+AACoAwAAwaPaoyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIH+AAAAAAAAQP4AAAAAAAC1AwAAwaPa
+oyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIH+AAAAAAAAQf4AAAAAAAC2AwAAz6LkohoA5aLoolsA
+AAAAAAAAAAAAAAAAAAAAAIH+AAAAAAAAQH6h/gAAAABRBQAAUdpe2iAAX9pq2jIAAAAAAAAAAAAA
+AAAAAAAAAIHT2N7g+QAAMX6B/gAAAAAAAAAAAAAAAPgDAAAAAAAAAAAAAAAAAAAAn0AAAQAAAC4A
+AAABAAAAAQAAABYAAAACAAAAAgAAAAMAAAACAAAABAAAABgAAAAFAAAADQAAAAYAAAAJAAAABwAA
+AAwAAAAIAAAADAAAAAkAAAAMAAAACgAAAAcAAAALAAAACAAAAAwAAAAWAAAADQAAABYAAAAPAAAA
+AgAAABAAAAANAAAAEQAAABIAAAASAAAAAgAAACEAAAANAAAANQAAAAIAAABBAAAADQAAAEMAAAAC
+AAAAUAAAABEAAABSAAAADQAAAFMAAAANAAAAVwAAABYAAABZAAAACwAAAGwAAAANAAAAbQAAACAA
+AABwAAAAHAAAAHIAAAAJAAAABgAAABYAAACAAAAACgAAAIEAAAAKAAAAggAAAAkAAACDAAAAFgAA
+AIQAAAANAAAAkQAAACkAAACeAAAADQAAAKEAAAACAAAApAAAAAsAAACnAAAADQAAALcAAAARAAAA
+zgAAAAIAAADXAAAACwAAABgHAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKFAC
+AAAAAAAAAAAAjlICAERRAgAAAAAAAAAAAAAAAAAAAAAAAAAAAGBSAgBoUgIAelICAJxSAgCuUgIA
+vFICAMpSAgDYUgIA6FICAPRSAgAMUwIAIlMCADJTAgBKUwIAYFMCAHRTAgCIUwIApFMCAL5TAgDY
+UwIA7lMCAAZUAgAgVAIAMlQCAEBUAgBSVAIAYFQCAG5UAgB6VAIAiFQCAJRUAgCkVAIAtFQCAMRU
+AgDUVAIA7FQCAPhUAgACVQIADlUCABpVAgAqVQIAOFUCAExVAgBeVQIAdFUCAIRVAgCUVQIAplUC
+ALhVAgDIVQIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYFICAGhSAgB6UgIAnFICAK5SAgC8
+UgIAylICANhSAgDoUgIA9FICAAxTAgAiUwIAMlMCAEpTAgBgUwIAdFMCAIhTAgCkUwIAvlMCANhT
+AgDuUwIABlQCACBUAgAyVAIAQFQCAFJUAgBgVAIAblQCAHpUAgCIVAIAlFQCAKRUAgC0VAIAxFQC
+ANRUAgDsVAIA+FQCAAJVAgAOVQIAGlUCACpVAgA4VQIATFUCAF5VAgB0VQIAhFUCAJRVAgCmVQIA
+uFUCAMhVAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACWAlNsZWVwAD4BR2V0UHJvY0FkZHJl
+c3MAACYBR2V0TW9kdWxlSGFuZGxlQQAAS0VSTkVMMzIuZGxsAADKAEdldENvbW1hbmRMaW5lQQB0
+AUdldFZlcnNpb24AAH0ARXhpdFByb2Nlc3MAUQBEZWJ1Z0JyZWFrAABSAUdldFN0ZEhhbmRsZQAA
+3wJXcml0ZUZpbGUArQFJbnRlcmxvY2tlZERlY3JlbWVudAAA9QFPdXRwdXREZWJ1Z1N0cmluZ0EA
+AMIBTG9hZExpYnJhcnlBAACwAUludGVybG9ja2VkSW5jcmVtZW50AAAkAUdldE1vZHVsZUZpbGVO
+YW1lQQAAngJUZXJtaW5hdGVQcm9jZXNzAAD3AEdldEN1cnJlbnRQcm9jZXNzAK0CVW5oYW5kbGVk
+RXhjZXB0aW9uRmlsdGVyAACyAEZyZWVFbnZpcm9ubWVudFN0cmluZ3NBALMARnJlZUVudmlyb25t
+ZW50U3RyaW5nc1cA0gJXaWRlQ2hhclRvTXVsdGlCeXRlAAYBR2V0RW52aXJvbm1lbnRTdHJpbmdz
+AAgBR2V0RW52aXJvbm1lbnRTdHJpbmdzVwAAbQJTZXRIYW5kbGVDb3VudAAAFQFHZXRGaWxlVHlw
+ZQBQAUdldFN0YXJ0dXBJbmZvQQCdAUhlYXBEZXN0cm95AJsBSGVhcENyZWF0ZQAAnwFIZWFwRnJl
+ZQAAvwJWaXJ0dWFsRnJlZQAvAlJ0bFVud2luZAC4AUlzQmFkV3JpdGVQdHIAtQFJc0JhZFJlYWRQ
+dHIAAKcBSGVhcFZhbGlkYXRlAAAaAUdldExhc3RFcnJvcgAAQQJTZXRDb25zb2xlQ3RybEhhbmRs
+ZXIAvwBHZXRDUEluZm8AuQBHZXRBQ1AAADEBR2V0T0VNQ1AAAJkBSGVhcEFsbG9jALsCVmlydHVh
+bEFsbG9jAACiAUhlYXBSZUFsbG9jAKoARmx1c2hGaWxlQnVmZmVycwAAagJTZXRGaWxlUG9pbnRl
+cgAA5AFNdWx0aUJ5dGVUb1dpZGVDaGFyAL8BTENNYXBTdHJpbmdBAADAAUxDTWFwU3RyaW5nVwAA
+UwFHZXRTdHJpbmdUeXBlQQAAVgFHZXRTdHJpbmdUeXBlVwAAfAJTZXRTdGRIYW5kbGUAABsAQ2xv
+c2VIYW5kbGUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAACsAAAATjBU
+MHMwfTCOMJgw2zDtMBgxQzFuMZkxxDHvMZQymjKgMsYyzzLqMgIzEjM/M0QzSzN2M3szmDOdM6Iz
+rzO1M8EzxzPQM9Yz2zPoMxI0FzQhNDY0PDRCNEg0TzSlNMQ01TT0NBA1GTVWNWg1gDWJNak1szXM
+NdY1EzZ0NoA2hzezN9w38Tc3OEM46DjvOAo6ETqhOqg6ZDs2PJ08zz3xPRM+AAAAIAAALAEAAEQz
+SDNMM1AzVDNYM1wzYDNkM2gzbDNwM3QzeDONM5EzlTOZM50z0DPUM9gz3DPgM+Qz6DPsM/Az9DP4
+M/wzADQENAg0xjXPNds15DXyNfs1CTYPNhg2JjYwNj42RDZ0Nn02rTbGNtg2+zYVN0E3XDdsN6M3
+rzfAN8o32jfkN/M3BTgROKE4pzi1OL04wzjXOOQ46TjvOAc5FDkkOSk5LzlqOY85mznXOeM59zkg
+Oj06ajqFOpc6nTqyOsM68Dr3OgE7FTsfO4Y7jDufO6U7xDvQO/47BzxNPKU8xDzQPO88CT0VPSk9
+NT1QPWA9bD2HPZc9oz3EPdc94z03Pj0+Wj5zPsU+zj7TPtg+5T7qPoY/kz+aP6A/rT+5P8I/1z/t
+P/I//z8AMAAA5AAAAAQwEjAsMEMwUTC6MPwwBzEaMS4xNDFFMVAxZDF+MZUxrDHDMdox8TH7MQwy
+LjJHMl8yZzJ0Mn0yqDK8MvwyHTMjMzUzcTO7M8oz3TP4Mwo0EjQYNBw0ITQuNDg0YzS3NMA0PTUh
+NhQ4aDgWOR85Ljk6OUk5XDlvOdk56TkKOi86UjpgOnM6xzroOgo7LDtWO1w7cTufOwk8HDw6PEw8
+UjxbPHA88zwKPU89kT2kPRw+Iz5SPmE+dD6mPqs+sT7HPs4+5z4FPx4/Mj9AP0c/WD9gP2c/bT90
+P4g/yT8AQAAACAEAADIwTDBVMFUxXjFnMX0xhjHNMeAx+TEWMh8yKDI7Mk8yWDJfMoUyjjLaMusy
+EjMrM0UzhTOYM6QzujPgM6E0tjTCNN406jQLNSU1SDVNNYQ1rDX7NQA2RzZQNqU2rjazNrs2wTbH
+Ns821TbbNuM29Db9Nj83STdjN4I31zjsOPg4FDkgOUM5XTmAOYU5tzkBOgY6NzpDOpI6njr4OgQ7
+bjt3O4U7jTuTO5w7pDusO7I7uzvBO8c7zjvTO/g7FDxnPHM8vDzGPNI88zwQPRo9Jj1GPUw9VT1l
+PW49gz0YPi0+OT5yPn4+gz65PsU+Gz8nP0I/VT+KP5A/tD/wP/Y/AAAAUAAAzAAAADUwQTBpMK0w
+uTDXMN8w5TAOMRgxJDFGMWQxbjF6MZsxrTHhMSoyPzJLMnYygjLYMuQyKTM1M3UzgTPjM+8zJTQx
+NJU04TQxNTY1OzVhNWY1iTWONbE1tjXZNd41BjZrNnc2fjapNtQ2Bjc/N183qDfbNxE4FTgZOB04
+NThHOGU4dDjUOOw4aDmHOY45Hzp1OoE6oDqlOs86DTuiO8w72DsTPBg8xTwxPTY9ZT2/Pfc9KD5Q
+Pp8+wT7YPgo/Zz+ZP54/AAAAYAAAaAAAACAwTTCQML0wEzElMSoxoDG8MeYxDjJIMmEyyzPZM+wz
+CjQ1NEs0FTUtNVg1bjV1NYo1oDapNqQ3rTfzN/83eziKODQ5PjlNOWU5kDmlOcw81Tz2PP88tj6/
+PuA+6T4AAABwAABwAQAAETAbMCEwLDA4MD0wYjBpMG8wezCCMI4wljChMKkwtTAOMRcxKzE6MT4x
+QjFGMUoxfzGXMQIyCTIQMiEyMjJDMqIyqzK7MsQy1DLoMu4y/zIcM0szWjNkM2gzbDNwM3QzeDOn
+M8AzyDPVM94zDzQXNB00KzQ1NDo0QDRMNFY0WzRgNGo0bzR1NH40jTSaNLM02jUiNk82ejbNNtM2
+3DbuNvQ2/jYMNzg3QDdhN443mTefNwA4DDg0OEA4SDhWOFw4aDiPOKI4xTjVON847Tj3OAU5DjlD
+OUo5cDl0OXg5fDmAOcQ5zTnXOeE5CDoyOjk66zryOhg7PDtNO3E7yDvXO/A7FTwjPDw8SjyePK08
+wjziPPE8Bj0UPTU9PT1VPWg9uD3QPdc93z3kPeg97D0VPjs+VT5cPmA+ZD5oPmw+cD50Png+wj7I
+Psw+0D7UPjo/RT9gP2c/bD9wP3Q/kT+7P+0/9D/4P/w/AIAAALgAAAAAMAQwCDAMMBAwWjBgMGQw
+aDBsMMQw5DD7MAIxBzENMRoxIDEmMTAxOjFXMWAxazF6NoY2jzarNrY2vTbINtA22TbpNvc2AzcU
+Nx83KDc+N0g3TjdaN2E3ZzdvN3c3gzeMN5s3pDetN743xDfNN9U36DfxN0M4gziPOL447zj7OBw5
+YjnoPPM8+zwlPSs9Mz1APUg9Tz1oPW49dz18PYU9lz2ePcU94z3qPRA+GD7ZPgCQAABkAAAAFjYi
+Nis2RzZSNlk2ZDZsNnU2hTaTNp82sDa7NsQ20DbYNuQ26zbwNvk2ATcMNxY3JTcuNzQ3SjdUN1s3
+bTeaN8E3mjhlPXE9hD2VPSQ+qT7qPvE+QT+NP5Q/AAAAoAAA4AAAAAUwrDCzMC0xNDFDMasxsjHg
+Mecx8TH8MQYyTDJVMnYyfzJIM24z+TMONCA0PDRbNGU0gjSINK40wzTVNN80GzVKNSI2LDZZNok2
+kzavNso21zb9Nh43KDdrN4A3kjecN8M34DfvNyU4PzheOGc4gziMOJk4XDllOQY6CzooOjY6QzpN
+Ol46azp1OqE6wjrNOuA6BzuCO6c79zt6PKc82TxmPWs9iD2WPZ49qD25PcM9zT3gPe89DD4XPio+
+UT7dPgA/WD9wP3c/fz+EP4g/jD+1P9s/9T/8PwCwAAAYAQAAADAEMAgwDDAQMBQwGDBiMGgwbDBw
+MHQw2jDlMAAxBzEMMRAxFDExMVsxjTGUMZgxnDGgMaQxqDGsMbAx+jEAMgQyCDIMMo8ynDK0Mugy
+CDMtMzIzOjNPM5kzsjO+M+cz9TMDNBY0JjQwNEk0YjSBNI00tDTANMw03zTwNPo0GDUtNUw1VzVh
+Nb41zTUPNhk2TjZoNo02mTafNrU20zbfNvo2DzchNys3gTeUN7Y37Tf2N3Q4ejiAOIY4jDiSOJg4
+njikOKo4sDi2OLw4wjjIOM441DjaOOA45jjsOPI4+Dj+OAQ5CjkQORY5HDkiOSg5Ljk0OTo5QDlG
+OUw5UjlYOV45ZDlqOXA5djl8OYI5iDkAAAIAGAAAAKQxqDGcP6A/qD+sP7Q/uD8AIAIAXAAAAAwz
+EDMgNjA6ODo8OkA6SDrcPOA85DyUPZw9pD2sPbQ9vD3EPcw91D3cPeQ97D30Pfw9BD4MPhQ+HD4w
+PjQ+OD48PkA+RD5IPkw+UD5UPlg+YD5kPgAwAgAMAAAAgDEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABOQjEwAAAAABGpK1ACAAAARDpc
+dGVzdFx0aW1lXERlYnVnXHRlc3QucGRiAA==
+
+------=_001_NextPart215818845028_=----
+Content-Type: application/octet-stream;
+       name="test.cpp"
+Content-Transfer-Encoding: base64
+Content-Disposition: attachment;
+       filename="test.cpp"
+
+I2luY2x1ZGUgPHN0ZGlvLmg+DQojaW5jbHVkZSA8d2luZG93cy5oPg0KdHlwZWRlZiBpbnQgKF9f
+c3RkY2FsbCAqTlRTRVRUSU1FUikoSU4gVUxPTkcgUmVxdWVzdGVkUmVzb2x1dGlvbiwgSU4gQk9P
+TEVBTiBTZXQsIE9VVCBQVUxPTkcgQWN0dWFsUmVzb2x1dGlvbiApOw0KdHlwZWRlZiBpbnQgKF9f
+c3RkY2FsbCAqTlRRVUVSWVRJTUVSKShPVVQgUFVMT05HICAgTWluaW11bVJlc29sdXRpb24sIE9V
+VCBQVUxPTkcgTWF4aW11bVJlc29sdXRpb24sIE9VVCBQVUxPTkcgQ3VycmVudFJlc29sdXRpb24g
+KTsNCg0KaW50IG1haW4oKQ0Kew0KCURXT1JEIG1pbl9yZXMgPSAwLCBtYXhfcmVzID0gMCwgY3Vy
+X3JlcyA9IDAsIHJldCA9IDA7DQoJSE1PRFVMRSAgaGRsbCA9IE5VTEw7DQoJaGRsbCA9IEdldE1v
+ZHVsZUhhbmRsZSgibnRkbGwuZGxsIik7DQoJTlRTRVRUSU1FUiBBZGRyTnRTZXRUaW1lciA9IDA7
+DQoJTlRRVUVSWVRJTUVSIEFkZHJOdFF1ZXlUaW1lciA9IDA7DQoJDQoJQWRkck50U2V0VGltZXIg
+PSAoTlRTRVRUSU1FUikgR2V0UHJvY0FkZHJlc3MoaGRsbCwgIk50U2V0VGltZXJSZXNvbHV0aW9u
+Iik7DQoJQWRkck50UXVleVRpbWVyID0gKE5UUVVFUllUSU1FUilHZXRQcm9jQWRkcmVzcyhoZGxs
+LCAiTnRRdWVyeVRpbWVyUmVzb2x1dGlvbiIpOw0KDQoJd2hpbGUgKDEpDQoJew0KCQlyZXQgPSBB
+ZGRyTnRRdWV5VGltZXIoJm1pbl9yZXMsICZtYXhfcmVzLCAmY3VyX3Jlcyk7DQoJCXByaW50Zigi
+bWluX3JlcyA9ICVkLCBtYXhfcmVzID0gJWQsIGN1cl9yZXMgPSAlZFxuIixtaW5fcmVzLCBtYXhf
+cmVzLCBjdXJfcmVzKTsNCgkJU2xlZXAoNSk7DQoJCXJldCA9IEFkZHJOdFNldFRpbWVyKDEwMDAw
+LCAxLCAmY3VyX3Jlcyk7DQoJCVNsZWVwKDUpOw0KCQlyZXQgPSBBZGRyTnRTZXRUaW1lcigxMDAw
+MCwgMCwgJmN1cl9yZXMpOw0KCQlTbGVlcCg1KTsNCgkJcmV0ID0gQWRkck50U2V0VGltZXIoNTAw
+MDAsIDEsICZjdXJfcmVzKTsNCgkJU2xlZXAoNSk7DQoJCXJldCA9IEFkZHJOdFNldFRpbWVyKDUw
+MDAwLCAwLCAmY3VyX3Jlcyk7DQoJCVNsZWVwKDUpOw0KCQlyZXQgPSBBZGRyTnRTZXRUaW1lcigx
+MDAwMDAsIDEsICZjdXJfcmVzKTsNCgkJU2xlZXAoNSk7DQoJCXJldCA9IEFkZHJOdFNldFRpbWVy
+KDEwMDAwMCwgMCwgJmN1cl9yZXMpOw0KCQlTbGVlcCg1KTsNCgl9DQoNCglyZXR1cm4gMDsNCn0N
+Cg0K
+
+------=_001_NextPart215818845028_=----
+Content-Type: text/plain; charset="us-ascii"
+MIME-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Content-Disposition: inline
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
+------=_001_NextPart215818845028_=------
+
+
+
diff --git a/config/examples/test/corpus/<2012081522121039050717@gmail.com> b/config/examples/test/corpus/<2012081522121039050717@gmail.com>
new file mode 100644 (file)
index 0000000..f59bda8
--- /dev/null
@@ -0,0 +1,1211 @@
+From xen-devel-bounces@lists.xen.org Wed Aug 15 15:17:29 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 15 Aug 2012 15:17:29 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T1ePO-0006VM-Hi
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 15 Aug 2012 15:17:29 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T1eKs-0006NF-2K; Wed, 15 Aug 2012 14:12:38 +0000
+Received: from mail27.messagelabs.com ([193.109.254.147])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <tupeng212@gmail.com>) id 1T1eKp-0006My-A9
+       for xen-devel@lists.xen.org; Wed, 15 Aug 2012 14:12:35 +0000
+X-Env-Sender: tupeng212@gmail.com
+X-Msg-Ref: server-6.tower-27.messagelabs.com!1345039946!3018538!1
+X-Originating-IP: [209.85.160.173]
+X-SpamReason: No, hits=1.4 required=7.0 tests=HTML_60_70,HTML_MESSAGE,
+       MAILTO_TO_SPAM_ADDR,MIME_BASE64_TEXT,MIME_BOUND_NEXTPART,
+       ML_RADAR_SPEW_LINKS_14,RCVD_BY_IP,spamassassin: 
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 6598 invoked from network); 15 Aug 2012 14:12:27 -0000
+Received: from mail-gh0-f173.google.com (HELO mail-gh0-f173.google.com)
+       (209.85.160.173)
+       by server-6.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
+       15 Aug 2012 14:12:27 -0000
+Received: by ghrr17 with SMTP id r17so2009308ghr.32
+       for <xen-devel@lists.xen.org>; Wed, 15 Aug 2012 07:12:25 -0700 (PDT)
+DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
+       h=date:from:to:cc:reply-to:subject:references:x-priority:x-guid
+       :x-has-attach:x-mailer:mime-version:message-id:content-type;
+       bh=vmCu4AMsEafAtSK52KcqpO0j+0U1kFV379rSnptYBPA=;
+       b=vywdXz9bcIbRM4hyM5VuPhRa+c3i0jXCI+3hsk6jhEqYWiUQZVxCvP9WwW6npS55OY
+       fRiqh97V5bDV5Cr0Ll5nPVf3QAF8DKcUixwfLZ9tHTliBHJDo01Qjpq/OxACTAOG0XmZ
+       hyT0FutK4/p6WvJtlFR2YWi36lB9KDdHkD7wk5X+XpD5Q78mOy+dfM45nm/X33ePPhXz
+       4clBeaRqr3bT/q/hVmsy8M/8bxb+25u/J9eeuL//EqvYAcAy/vAQXY8TDVIzryzrMlLF
+       /Cp4MozTaeflywnLB6yuo4AdMmePDgUrePjgBjVSo2LRy31m3ybuXMXvC2W+hl0RDIUI
+       6BFg==
+Received: by 10.68.227.3 with SMTP id rw3mr40809131pbc.13.1345039945349;
+       Wed, 15 Aug 2012 07:12:25 -0700 (PDT)
+Received: from root ([115.199.253.245])
+       by mx.google.com with ESMTPS id nv6sm610172pbc.42.2012.08.15.07.12.09
+       (version=SSLv3 cipher=OTHER); Wed, 15 Aug 2012 07:12:24 -0700 (PDT)
+Date: Wed, 15 Aug 2012 22:12:15 +0800
+From: tupeng212 <tupeng212@gmail.com>
+To: "Jan Beulich" <JBeulich@suse.com>, 
+       "Yang Z Zhang" <yang.z.zhang@intel.com>, "Keir Fraser" <keir@xen.org>, 
+       "Tim Deegan" <tim@xen.org>
+References: <502A3BBC0200007800094B68@nat28.tlf.novell.com>, 
+       <2012081522045495397713@gmail.com>
+X-Priority: 3
+X-GUID: 4EA20C5B-B549-4236-B43B-FA6EA6EE4F04
+X-Has-Attach: no
+X-Mailer: Foxmail 7.0.1.87[cn]
+Mime-Version: 1.0
+Message-ID: <2012081522121039050717@gmail.com>
+Cc: xen-devel <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+Reply-To: tupeng212 <tupeng212@gmail.com>
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: multipart/mixed; boundary="===============5636090078893645621=="
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-3.8 required=5.0 tests=BAYES_00,FREEMAIL_FROM,
+       FSL_FREEMAIL_1,FSL_FREEMAIL_2,HTML_MESSAGE,MIME_HTML_MOSTLY,RCVD_IN_DNSWL_MED,
+       T_DKIM_INVALID,T_RP_MATCHES_RCVD autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH,
+       RFC v2] x86/HVM: assorted RTC emulation adjustments (was Re: Big
+       Bug:Time in VM goes slower...)
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+This is a multi-part message in MIME format.
+
+--===============5636090078893645621==
+Content-Type: multipart/alternative;
+       boundary="----=_001_NextPart564768006800_=----"
+
+This is a multi-part message in MIME format.
+
+------=_001_NextPart564768006800_=----
+Content-Type: text/plain;
+       charset="gb2312"
+Content-Transfer-Encoding: base64
+
+SGksIEphbjoNCkkgYW0gc29ycnkgSSByZWFsbHkgZG9uJ3QgaGF2ZSBtdWNoIHRpbWUgdG8gdHJ5
+IGEgdGVzdCBvZiB5b3VyIHBhdGNoLCBhbmQgaXQgaXMgbm90IGNvbnZlbmllbnQNCmZvciBtZSB0
+byBoYXZlIGEgdHJ5LiBGb3IgdGhlIHZlcnNpb24gSSBoYXZlIGJlZW4gdXNpbmcgaXMgeGVuNC4w
+LngsIGFuZCB5b3VyIHBhdGNoIGlzIGJhc2VkIG9uIA0KdGhlIGxhdGVzdCB2ZXJzaW9uIHhlbjQu
+Mi54LihJIGhhdmUgbmV2ZXIgY29tcGxpZWQgdGhlIHVuc3RhYmxlIG9uZSksIHNvIEkgbWVyZ2Vk
+IHlvdXIgcGF0Y2ggdG8gbXkgDQp4ZW40LjAueCwgc3RpbGwgY291bGRuJ3QgZmluZCB0aGUgdHdv
+IGZ1bmN0aW9ucyBiZWxvdzoNCiBzdGF0aWMgdm9pZCBydGNfdXBkYXRlX3RpbWVyMih2b2lkICpv
+cGFxdWUpIA0KIHN0YXRpYyB2b2lkIHJ0Y19hbGFybV9jYih2b2lkICpvcGFxdWUpIA0Kc28gSSBk
+aWRuJ3QgbWVyZ2UgdGhlIHR3byBmdW5jdGlvbnMgd2hpY2ggY29udGFpbnMgYSBydGNfdG9nZ2xl
+X2lycSgpIC4NCg0KVGhlIHJlc3VsdHMgZm9yIG1lIHdlcmUgdGhlc2U6DQoxIEluIG15IHJlYWwg
+YXBwbGljYXRpb24gZW52aXJvbm1lbnQsIGl0IHdvcmtlZCB2ZXJ5IHdlbGwgaW4gdGhlIGZvcm1l
+ciA1bWlucywgbXVjaCBiZXR0ZXIgdGhhbiBiZWZvcmUsDQogYnV0IGF0IGxhc3QgaXQgbGFnZ2Vk
+IGFnYWluLiBJIGRvbid0IGtub3cgd2hldGhlciBpdCBiZWxvbmdzIHRvIHRoZSB0d28gbWlzc2Vk
+IGZ1bmN0aW9ucy4gSSBsYWNrIHRoZSANCiBhYmlsaXR5IHRvIGZpZ3VyZSB0aGVtIG91dC4NCg0K
+MiBXaGVuIEkgdGVzdGVkIG15IHRlc3QgcHJvZ3JhbSB3aGljaCBJIHByb3ZpZGVkIGRheXMgYmVm
+b3JlLCBpdCB3b3JrZWQgdmVyeSB3ZWxsLCBtYXliZSB0aGUgcHJvZ3JhbSBkb2Vzbid0IA0KZW11
+bGF0ZSB0aGUgcmVhbCBlbnZpcm9ubWVudCBkdWUgdG8gdGhlIHNhbWUgc2V0dGluZyByYXRlLCBz
+byBJIG1vZGlmaWVkIHRoaXMgcHJvZ3JhbSBhcyB3aGljaCBpbiB0aGUgYXR0YWNobWVudC4NCmlm
+IHlvdSBhcmUgbW9yZSBjb252ZW5pZW50LCB5b3UgY2FuIGhlbHAgbWUgdG8gaGF2ZSBhIGxvb2sg
+b2YgaXQuDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
+LS0tLS0tLS0tLS0tLS0tLS0tLQ0KI2luY2x1ZGUgPHN0ZGlvLmg+DQojaW5jbHVkZSA8d2luZG93
+cy5oPg0KdHlwZWRlZiBpbnQgKF9fc3RkY2FsbCAqTlRTRVRUSU1FUikoSU4gVUxPTkcgUmVxdWVz
+dGVkUmVzb2x1dGlvbiwgSU4gQk9PTEVBTiBTZXQsIE9VVCBQVUxPTkcgQWN0dWFsUmVzb2x1dGlv
+biApOw0KdHlwZWRlZiBpbnQgKF9fc3RkY2FsbCAqTlRRVUVSWVRJTUVSKShPVVQgUFVMT05HICAg
+TWluaW11bVJlc29sdXRpb24sIE9VVCBQVUxPTkcgTWF4aW11bVJlc29sdXRpb24sIE9VVCBQVUxP
+TkcgQ3VycmVudFJlc29sdXRpb24gKTsNCg0KaW50IG1haW4oKQ0Kew0KRFdPUkQgbWluX3JlcyA9
+IDAsIG1heF9yZXMgPSAwLCBjdXJfcmVzID0gMCwgcmV0ID0gMDsNCkhNT0RVTEUgIGhkbGwgPSBO
+VUxMOw0KaGRsbCA9IEdldE1vZHVsZUhhbmRsZSgibnRkbGwuZGxsIik7DQpOVFNFVFRJTUVSIEFk
+ZHJOdFNldFRpbWVyID0gMDsNCk5UUVVFUllUSU1FUiBBZGRyTnRRdWV5VGltZXIgPSAwOw0KQWRk
+ck50U2V0VGltZXIgPSAoTlRTRVRUSU1FUikgR2V0UHJvY0FkZHJlc3MoaGRsbCwgIk50U2V0VGlt
+ZXJSZXNvbHV0aW9uIik7DQpBZGRyTnRRdWV5VGltZXIgPSAoTlRRVUVSWVRJTUVSKUdldFByb2NB
+ZGRyZXNzKGhkbGwsICJOdFF1ZXJ5VGltZXJSZXNvbHV0aW9uIik7DQoNCndoaWxlICgxKQ0Kew0K
+cmV0ID0gQWRkck50UXVleVRpbWVyKCZtaW5fcmVzLCAmbWF4X3JlcywgJmN1cl9yZXMpOw0KcHJp
+bnRmKCJtaW5fcmVzID0gJWQsIG1heF9yZXMgPSAlZCwgY3VyX3JlcyA9ICVkXG4iLG1pbl9yZXMs
+IG1heF9yZXMsIGN1cl9yZXMpOw0KU2xlZXAoNSk7DQpyZXQgPSBBZGRyTnRTZXRUaW1lcigxMDAw
+MCwgMSwgJmN1cl9yZXMpOw0KU2xlZXAoNSk7DQpyZXQgPSBBZGRyTnRTZXRUaW1lcigxMDAwMCwg
+MCwgJmN1cl9yZXMpOw0KU2xlZXAoNSk7DQpyZXQgPSBBZGRyTnRTZXRUaW1lcig1MDAwMCwgMSwg
+JmN1cl9yZXMpOw0KU2xlZXAoNSk7DQpyZXQgPSBBZGRyTnRTZXRUaW1lcig1MDAwMCwgMCwgJmN1
+cl9yZXMpOw0KU2xlZXAoNSk7DQpyZXQgPSBBZGRyTnRTZXRUaW1lcigxMDAwMDAsIDEsICZjdXJf
+cmVzKTsNClNsZWVwKDUpOw0KcmV0ID0gQWRkck50U2V0VGltZXIoMTAwMDAwLCAwLCAmY3VyX3Jl
+cyk7DQpTbGVlcCg1KTsNCn0NCg0KcmV0dXJuIDA7DQp9DQotLS0tLS0tLS0tLS0tLS0tLS0tLS0t
+LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KQW5kIEkgaGF2
+ZSBhIG9waW5pb24sIGJlY2F1c2Ugb3VyIHByb2R1Y3QgaXMgYmFzZWQgb24gVmVyc2lvbiBYZW40
+LjAueCwgaWYgeW91IGhhdmUgZW5vdWdoIHRpbWUsIGNhbiB5b3Ugd3JpdGUgDQphbm90aGVyIHBh
+dGNoIGJhc2VkIGh0dHA6Ly94ZW5iaXRzLnhlbi5vcmcvaGcveGVuLTQuMC10ZXN0aW5nLmhnLyBm
+b3IgbWUsIHRoYW5rIHlvdSB2ZXJ5IG11Y2ghDQoNCjMgSSBhbHNvIGhhdmUgYSB0aG91Z2h0IHRo
+YXQgY2FuIHdlIGhhdmUgc29tZSBkZXRlY3RpbmcgbWV0aG9kcyB0byBmaW5kIHRoZSBsYWdnaW5n
+IHRpbWUgZWFybGllciB0byBhZGp1c3QgdGltZQ0KYmFjayB0byBub3JtYWwgdmFsdWUgaW4gdGhl
+IGNvZGU/DQoNCmJlc3QgcmVnYXJkcywNCg0KDQoNCg0KdHVwZW5nMjEyDQoNClNlY29uZCBkcmFm
+dCBvZiBhIHBhdGNoIHBvc3RlZDsgbm8gdGVzdCByZXN1bHRzIHNvIGZhciBmb3IgZmlyc3QgZHJh
+ZnQuDQpKYW4NCg0KRnJvbTogSmFuIEJldWxpY2gNCkRhdGU6IDIwMTItMDgtMTQgMTc6NTENClRv
+OiBZYW5nIFogWmhhbmc7IEtlaXIgRnJhc2VyOyBUaW0gRGVlZ2FuDQpDQzogdHVwZW5nMjEyOyB4
+ZW4tZGV2ZWwNClN1YmplY3Q6IFtYZW4tZGV2ZWxdIFtQQVRDSCwgUkZDIHYyXSB4ODYvSFZNOiBh
+c3NvcnRlZCBSVEMgZW11bGF0aW9uIGFkanVzdG1lbnRzICh3YXMgUmU6IEJpZyBCdWc6VGltZSBp
+biBWTSBnb2VzIHNsb3dlci4uLikNCkJlbG93L2F0dGFjaGVkIGEgc2Vjb25kIGRyYWZ0IG9mIGEg
+cGF0Y2ggdG8gZml4IG5vdCBvbmx5IHRoaXMNCmlzc3VlLCBidXQgYSBmZXcgbW9yZSB3aXRoIHRo
+ZSBSVEMgZW11bGF0aW9uLg0KDQpLZWlyLCBUaW0sIFlhbmcsIG90aGVycyAtIHRoZSBjaGFuZ2Ug
+dG8geGVuL2FyY2gveDg2L2h2bS92cHQuYyByZWFsbHkNCmxvb2tzIG1vcmUgbGlrZSBhIGhhY2sg
+dGhhbiBhIHNvbHV0aW9uLCBidXQgSSBkb24ndCBzZWUgYW5vdGhlcg0Kd2F5IHdpdGhvdXQgbXVj
+aCBtb3JlIGludHJ1c2l2ZSBjaGFuZ2VzLiBUaGUgcG9pbnQgaXMgdGhhdCB3ZQ0Kd2FudCB0aGUg
+UlRDIGNvZGUgdG8gZGVjaWRlIHdoZXRoZXIgdG8gZ2VuZXJhdGUgYW4gaW50ZXJydXB0DQooc28g
+dGhhdCBSVENfUEYgY2FuIGJlY29tZSBzZXQgY29ycmVjdGx5IGV2ZW4gd2l0aG91dCBSVENfUElF
+DQpnZXR0aW5nIGVuYWJsZWQgYnkgdGhlIGd1ZXN0KS4NCg0KQWRkaXRpb25hbGx5IEkgd29uZGVy
+IHdoZXRoZXIgYWxhcm1fdGltZXJfdXBkYXRlKCkgc2hvdWxkbid0DQpiYWlsIG9uIG5vbi1jb25m
+b3JtaW5nIFJUQ18qX0FMQVJNIHZhbHVlcyAoYXMgdGhvc2Ugd291bGQNCm5ldmVyIG1hdGNoIHRo
+ZSB2YWx1ZXMgdGhleSBnZXQgY29tcGFyZWQgYWdhaW5zdCwgd2hlcmVhcw0Kd2l0aCB0aGUgY3Vy
+cmVudCB3YXkgb2YgaGFuZGxpbmcgdGhpcyB0aGV5IHdvdWxkIGFwcGVhciB0bw0KbWF0Y2ggLSBp
+LmUuIHNldCBSVENfQUYgYW5kIHBvc3NpYmx5IGdlbmVyYXRlIGFuIGludGVycnVwdCAtDQpzb21l
+IG90aGVyIHBvaW50IGluIHRpbWUpLiBJIHJlYWxpemUgdGhlIGJlaGF2aW9yIGhlcmUgbWF5IG5v
+dA0KYmUgcHJlY2lzZWx5IHNwZWNpZmllZCwgYnV0IHRoZSBzcGVjaWZpY2F0aW9uIHNheWluZyAi
+dGhlIGN1cnJlbnQNCnRpbWUgaGFzIG1hdGNoZWQgdGhlIGFsYXJtIHRpbWUiIG1lYW5zIHRvIG1l
+IGEgdmFsdWUgYnkgdmFsdWUNCmNvbXBhcmlzb24sIHdoaWNoIGltcGxpZXMgdGhhdCBub24tY29u
+Zm9ybWluZyB2YWx1ZXMgd291bGQNCm5ldmVyIG1hdGNoIChzaW5jZSBub24tY29uZm9ybWluZyBj
+dXJyZW50IHRpbWUgdmFsdWVzIGNvdWxkDQpnZXQgcmVwbGFjZWQgYXQgYW55IHRpbWUgYnkgdGhl
+IGhhcmR3YXJlIGR1ZSB0byBvdmVyZmxvdw0KZGV0ZWN0aW9uKS4NCg0KSmFuDQoNCi0gZG9uJ3Qg
+Y2FsbCBydGNfdGltZXJfdXBkYXRlKCkgb24gUkVHX0Egd3JpdGVzIHdoZW4gdGhlIHZhbHVlIGRp
+ZG4ndA0KICBjaGFuZ2UgKGRvaW5nIHRoZSBjYWxsIGFsd2F5cyB3YXMgcmVwb3J0ZWQgdG8gY2F1
+c2Ugd2FsbCBjbG9jayB0aW1lDQogIGxhZ2dpbmcgd2l0aCB0aGUgSlZNIHJ1bm5pbmcgb24gV2lu
+ZG93cykNCi0gZG9uJ3QgY2FsbCBydGNfdGltZXJfdXBkYXRlKCkgb24gUkVHX0Igd3JpdGVzIGF0
+IGFsbA0KLSBvbmx5IGNhbGwgYWxhcm1fdGltZXJfdXBkYXRlKCkgb24gUkVHX0Igd3JpdGVzIHdo
+ZW4gcmVsZXZhbnQgYml0cw0KICBjaGFuZ2UNCi0gb25seSBjYWxsIGNoZWNrX3VwZGF0ZV90aW1l
+cigpIG9uIFJFR19CIHdyaXRlcyB3aGVuIFNFVCBjaGFuZ2VzDQotIGluc3RlYWQgcHJvcGVybHkg
+aGFuZGxlIEFGIGFuZCBQRiB3aGVuIHRoZSBndWVzdCBpcyBub3QgYWxzbyBzZXR0aW5nDQogIEFJ
+RS9QSUUgcmVzcGVjdGl2ZWx5IChmb3IgVUYgdGhpcyB3YXMgYWxyZWFkeSB0aGUgY2FzZSwgb25s
+eSBhDQogIGNvbW1lbnQgd2FzIHNsaWdodGx5IGluYWNjdXJhdGUpDQotIHJhaXNlIHRoZSBSVEMg
+SVJRIG5vdCBvbmx5IHdoZW4gVUlFIGdldHMgc2V0IHdoaWxlIFVGIHdhcyBhbHJlYWR5DQogIHNl
+dCwgYnV0IGdlbmVyYWxpemUgdGhpcyB0byBjb3ZlciBBSUUgYW5kIFBJRSBhcyB3ZWxsDQotIHBy
+b3Blcmx5IG1hc2sgb2ZmIGJpdCA3IHdoZW4gcmV0cmlldmluZyB0aGUgaG91ciB2YWx1ZXMgaW4N
+CiAgYWxhcm1fdGltZXJfdXBkYXRlKCksIGFuZCBwcm9wZXJseSB1c2UgUlRDX0hPVVJTX0FMQVJN
+J3MgYml0IDcgd2hlbg0KICBjb252ZXJ0aW5nIGZyb20gMTItIHRvIDI0LWhvdXIgdmFsdWUNCi0g
+YWxzbyBoYW5kbGUgdGhlIHR3byBvdGhlciBwb3NzaWJsZSBjbG9jayBiYXNlcw0KLSB1c2UgUlRD
+XyogbmFtZXMgaW4gYSBjb3VwbGUgb2YgcGxhY2VzIHdoZXJlIGxpdGVyYWwgbnVtYmVycyB3ZXJl
+IHVzZWQNCiAgc28gZmFyDQoNCi0tLSBhL3hlbi9hcmNoL3g4Ni9odm0vcnRjLmMNCisrKyBiL3hl
+bi9hcmNoL3g4Ni9odm0vcnRjLmMNCkBAIC01MCwxMSArNTAsMjQgQEAgc3RhdGljIHZvaWQgcnRj
+X3NldF90aW1lKFJUQ1N0YXRlICpzKTsNCiBzdGF0aWMgaW5saW5lIGludCBmcm9tX2JjZChSVENT
+dGF0ZSAqcywgaW50IGEpOw0KIHN0YXRpYyBpbmxpbmUgaW50IGNvbnZlcnRfaG91cihSVENTdGF0
+ZSAqcywgaW50IGhvdXIpOw0KDQotc3RhdGljIHZvaWQgcnRjX3BlcmlvZGljX2NiKHN0cnVjdCB2
+Y3B1ICp2LCB2b2lkICpvcGFxdWUpDQorc3RhdGljIHZvaWQgcnRjX3RvZ2dsZV9pcnEoUlRDU3Rh
+dGUgKnMpDQorew0KKyAgICBzdHJ1Y3QgZG9tYWluICpkID0gdnJ0Y19kb21haW4ocyk7DQorDQor
+ICAgIEFTU0VSVChzcGluX2lzX2xvY2tlZCgmcy0+bG9jaykpOw0KKyAgICBzLT5ody5jbW9zX2Rh
+dGFbUlRDX1JFR19DXSB8PSBSVENfSVJRRjsNCisgICAgaHZtX2lzYV9pcnFfZGVhc3NlcnQoZCwg
+UlRDX0lSUSk7DQorICAgIGh2bV9pc2FfaXJxX2Fzc2VydChkLCBSVENfSVJRKTsNCit9DQorDQor
+dm9pZCBydGNfcGVyaW9kaWNfaW50ZXJydXB0KHZvaWQgKm9wYXF1ZSkNCiB7DQogICAgIFJUQ1N0
+YXRlICpzID0gb3BhcXVlOw0KKw0KICAgICBzcGluX2xvY2soJnMtPmxvY2spOw0KLSAgICBzLT5o
+dy5jbW9zX2RhdGFbUlRDX1JFR19DXSB8PSAweGMwOw0KKyAgICBzLT5ody5jbW9zX2RhdGFbUlRD
+X1JFR19DXSB8PSBSVENfUEY7DQorICAgIGlmICggcy0+aHcuY21vc19kYXRhW1JUQ19SRUdfQl0g
+JiBSVENfUElFICkNCisgICAgICAgIHJ0Y190b2dnbGVfaXJxKHMpOw0KICAgICBzcGluX3VubG9j
+aygmcy0+bG9jayk7DQogfQ0KDQpAQCAtNjgsMTkgKzgxLDI1IEBAIHN0YXRpYyB2b2lkIHJ0Y190
+aW1lcl91cGRhdGUoUlRDU3RhdGUgKnMNCiAgICAgQVNTRVJUKHNwaW5faXNfbG9ja2VkKCZzLT5s
+b2NrKSk7DQoNCiAgICAgcGVyaW9kX2NvZGUgPSBzLT5ody5jbW9zX2RhdGFbUlRDX1JFR19BXSAm
+IFJUQ19SQVRFX1NFTEVDVDsNCi0gICAgaWYgKCAocGVyaW9kX2NvZGUgIT0gMCkgJiYgKHMtPmh3
+LmNtb3NfZGF0YVtSVENfUkVHX0JdICYgUlRDX1BJRSkgKQ0KKyAgICBzd2l0Y2ggKCBzLT5ody5j
+bW9zX2RhdGFbUlRDX1JFR19BXSAmIFJUQ19ESVZfQ1RMICkNCiAgICAgew0KLSAgICAgICAgaWYg
+KCBwZXJpb2RfY29kZSA8PSAyICkNCisgICAgY2FzZSBSVENfUkVGX0NMQ0tfMzJLSFo6DQorICAg
+ICAgICBpZiAoIChwZXJpb2RfY29kZSAhPSAwKSAmJiAocGVyaW9kX2NvZGUgPD0gMikgKQ0KICAg
+ICAgICAgICAgIHBlcmlvZF9jb2RlICs9IDc7DQotDQotICAgICAgICBwZXJpb2QgPSAxIDw8IChw
+ZXJpb2RfY29kZSAtIDEpOyAvKiBwZXJpb2QgaW4gMzIgS2h6IGN5Y2xlcyAqLw0KLSAgICAgICAg
+cGVyaW9kID0gRElWX1JPVU5EKChwZXJpb2QgKiAxMDAwMDAwMDAwVUxMKSwgMzI3NjgpOyAvKiBw
+ZXJpb2QgaW4gbnMgKi8NCi0gICAgICAgIGNyZWF0ZV9wZXJpb2RpY190aW1lKHYsICZzLT5wdCwg
+cGVyaW9kLCBwZXJpb2QsIFJUQ19JUlEsDQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBy
+dGNfcGVyaW9kaWNfY2IsIHMpOw0KLSAgICB9DQotICAgIGVsc2UNCi0gICAgew0KKyAgICAgICAg
+LyogZmFsbCB0aHJvdWdoICovDQorICAgIGNhc2UgUlRDX1JFRl9DTENLXzFNSFo6DQorICAgIGNh
+c2UgUlRDX1JFRl9DTENLXzRNSFo6DQorICAgICAgICBpZiAoIHBlcmlvZF9jb2RlICE9IDAgKQ0K
+KyAgICAgICAgew0KKyAgICAgICAgICAgIHBlcmlvZCA9IDEgPDwgKHBlcmlvZF9jb2RlIC0gMSk7
+IC8qIHBlcmlvZCBpbiAzMiBLaHogY3ljbGVzICovDQorICAgICAgICAgICAgcGVyaW9kID0gRElW
+X1JPVU5EKHBlcmlvZCAqIDEwMDAwMDAwMDBVTEwsIDMyNzY4KTsgLyogaW4gbnMgKi8NCisgICAg
+ICAgICAgICBjcmVhdGVfcGVyaW9kaWNfdGltZSh2LCAmcy0+cHQsIHBlcmlvZCwgcGVyaW9kLCBS
+VENfSVJRLCBOVUxMLCBzKTsNCisgICAgICAgICAgICBicmVhazsNCisgICAgICAgIH0NCisgICAg
+ICAgIC8qIGZhbGwgdGhyb3VnaCAqLw0KKyAgICBkZWZhdWx0Og0KICAgICAgICAgZGVzdHJveV9w
+ZXJpb2RpY190aW1lKCZzLT5wdCk7DQorICAgICAgICBicmVhazsNCiAgICAgfQ0KIH0NCg0KQEAg
+LTEwMiw3ICsxMjEsNyBAQCBzdGF0aWMgdm9pZCBjaGVja191cGRhdGVfdGltZXIoUlRDU3RhdGUg
+DQogICAgICAgICBndWVzdF91c2VjID0gZ2V0X2xvY2FsdGltZV91cyhkKSAlIFVTRUNfUEVSX1NF
+QzsNCiAgICAgICAgIGlmIChndWVzdF91c2VjID49IChVU0VDX1BFUl9TRUMgLSAyNDQpKQ0KICAg
+ICAgICAgew0KLSAgICAgICAgICAgIC8qIFJUQyBpcyBpbiB1cGRhdGUgY3ljbGUgd2hlbiBlbmFi
+bGluZyBVSUUgKi8NCisgICAgICAgICAgICAvKiBSVEMgaXMgaW4gdXBkYXRlIGN5Y2xlICovDQog
+ICAgICAgICAgICAgcy0+aHcuY21vc19kYXRhW1JUQ19SRUdfQV0gfD0gUlRDX1VJUDsNCiAgICAg
+ICAgICAgICBuZXh0X3VwZGF0ZV90aW1lID0gKFVTRUNfUEVSX1NFQyAtIGd1ZXN0X3VzZWMpICog
+TlNfUEVSX1VTRUM7DQogICAgICAgICAgICAgZXhwaXJlX3RpbWUgPSBOT1coKSArIG5leHRfdXBk
+YXRlX3RpbWU7DQpAQCAtMTQ0LDcgKzE2Myw2IEBAIHN0YXRpYyB2b2lkIHJ0Y191cGRhdGVfdGlt
+ZXIodm9pZCAqb3BhcXUNCiBzdGF0aWMgdm9pZCBydGNfdXBkYXRlX3RpbWVyMih2b2lkICpvcGFx
+dWUpDQogew0KICAgICBSVENTdGF0ZSAqcyA9IG9wYXF1ZTsNCi0gICAgc3RydWN0IGRvbWFpbiAq
+ZCA9IHZydGNfZG9tYWluKHMpOw0KDQogICAgIHNwaW5fbG9jaygmcy0+bG9jayk7DQogICAgIGlm
+ICghKHMtPmh3LmNtb3NfZGF0YVtSVENfUkVHX0JdICYgUlRDX1NFVCkpDQpAQCAtMTUyLDExICsx
+NzAsNyBAQCBzdGF0aWMgdm9pZCBydGNfdXBkYXRlX3RpbWVyMih2b2lkICpvcGFxDQogICAgICAg
+ICBzLT5ody5jbW9zX2RhdGFbUlRDX1JFR19DXSB8PSBSVENfVUY7DQogICAgICAgICBzLT5ody5j
+bW9zX2RhdGFbUlRDX1JFR19BXSAmPSB+UlRDX1VJUDsNCiAgICAgICAgIGlmICgocy0+aHcuY21v
+c19kYXRhW1JUQ19SRUdfQl0gJiBSVENfVUlFKSkNCi0gICAgICAgIHsNCi0gICAgICAgICAgICBz
+LT5ody5jbW9zX2RhdGFbUlRDX1JFR19DXSB8PSBSVENfSVJRRjsNCi0gICAgICAgICAgICBodm1f
+aXNhX2lycV9kZWFzc2VydChkLCBSVENfSVJRKTsNCi0gICAgICAgICAgICBodm1faXNhX2lycV9h
+c3NlcnQoZCwgUlRDX0lSUSk7DQotICAgICAgICB9DQorICAgICAgICAgICAgcnRjX3RvZ2dsZV9p
+cnEocyk7DQogICAgICAgICBjaGVja191cGRhdGVfdGltZXIocyk7DQogICAgIH0NCiAgICAgc3Bp
+bl91bmxvY2soJnMtPmxvY2spOw0KQEAgLTE3NSwyMSArMTg5LDE4IEBAIHN0YXRpYyB2b2lkIGFs
+YXJtX3RpbWVyX3VwZGF0ZShSVENTdGF0ZSANCg0KICAgICBzdG9wX3RpbWVyKCZzLT5hbGFybV90
+aW1lcik7DQoNCi0gICAgaWYgKChzLT5ody5jbW9zX2RhdGFbUlRDX1JFR19CXSAmIFJUQ19BSUUp
+ICYmDQotICAgICAgICAgICAgIShzLT5ody5jbW9zX2RhdGFbUlRDX1JFR19CXSAmIFJUQ19TRVQp
+KQ0KKyAgICBpZiAoICEocy0+aHcuY21vc19kYXRhW1JUQ19SRUdfQl0gJiBSVENfU0VUKSApDQog
+ICAgIHsNCiAgICAgICAgIHMtPmN1cnJlbnRfdG0gPSBnbXRpbWUoZ2V0X2xvY2FsdGltZShkKSk7
+DQogICAgICAgICBydGNfY29weV9kYXRlKHMpOw0KDQogICAgICAgICBhbGFybV9zZWMgPSBmcm9t
+X2JjZChzLCBzLT5ody5jbW9zX2RhdGFbUlRDX1NFQ09ORFNfQUxBUk1dKTsNCiAgICAgICAgIGFs
+YXJtX21pbiA9IGZyb21fYmNkKHMsIHMtPmh3LmNtb3NfZGF0YVtSVENfTUlOVVRFU19BTEFSTV0p
+Ow0KLSAgICAgICAgYWxhcm1faG91ciA9IGZyb21fYmNkKHMsIHMtPmh3LmNtb3NfZGF0YVtSVENf
+SE9VUlNfQUxBUk1dKTsNCi0gICAgICAgIGFsYXJtX2hvdXIgPSBjb252ZXJ0X2hvdXIocywgYWxh
+cm1faG91cik7DQorICAgICAgICBhbGFybV9ob3VyID0gY29udmVydF9ob3VyKHMsIHMtPmh3LmNt
+b3NfZGF0YVtSVENfSE9VUlNfQUxBUk1dKTsNCg0KICAgICAgICAgY3VyX3NlYyA9IGZyb21fYmNk
+KHMsIHMtPmh3LmNtb3NfZGF0YVtSVENfU0VDT05EU10pOw0KICAgICAgICAgY3VyX21pbiA9IGZy
+b21fYmNkKHMsIHMtPmh3LmNtb3NfZGF0YVtSVENfTUlOVVRFU10pOw0KLSAgICAgICAgY3VyX2hv
+dXIgPSBmcm9tX2JjZChzLCBzLT5ody5jbW9zX2RhdGFbUlRDX0hPVVJTXSk7DQotICAgICAgICBj
+dXJfaG91ciA9IGNvbnZlcnRfaG91cihzLCBjdXJfaG91cik7DQorICAgICAgICBjdXJfaG91ciA9
+IGNvbnZlcnRfaG91cihzLCBzLT5ody5jbW9zX2RhdGFbUlRDX0hPVVJTXSk7DQoNCiAgICAgICAg
+IG5leHRfdXBkYXRlX3RpbWUgPSBVU0VDX1BFUl9TRUMgLSAoZ2V0X2xvY2FsdGltZV91cyhkKSAl
+IFVTRUNfUEVSX1NFQyk7DQogICAgICAgICBuZXh0X3VwZGF0ZV90aW1lID0gbmV4dF91cGRhdGVf
+dGltZSAqIE5TX1BFUl9VU0VDICsgTk9XKCk7DQpAQCAtMzQzLDcgKzM1NCw2IEBAIHN0YXRpYyB2
+b2lkIGFsYXJtX3RpbWVyX3VwZGF0ZShSVENTdGF0ZSANCiBzdGF0aWMgdm9pZCBydGNfYWxhcm1f
+Y2Iodm9pZCAqb3BhcXVlKQ0KIHsNCiAgICAgUlRDU3RhdGUgKnMgPSBvcGFxdWU7DQotICAgIHN0
+cnVjdCBkb21haW4gKmQgPSB2cnRjX2RvbWFpbihzKTsNCg0KICAgICBzcGluX2xvY2soJnMtPmxv
+Y2spOw0KICAgICBpZiAoIShzLT5ody5jbW9zX2RhdGFbUlRDX1JFR19CXSAmIFJUQ19TRVQpKQ0K
+QEAgLTM1MSwxMSArMzYxLDcgQEAgc3RhdGljIHZvaWQgcnRjX2FsYXJtX2NiKHZvaWQgKm9wYXF1
+ZSkNCiAgICAgICAgIHMtPmh3LmNtb3NfZGF0YVtSVENfUkVHX0NdIHw9IFJUQ19BRjsNCiAgICAg
+ICAgIC8qIGFsYXJtIGludGVycnVwdCAqLw0KICAgICAgICAgaWYgKHMtPmh3LmNtb3NfZGF0YVtS
+VENfUkVHX0JdICYgUlRDX0FJRSkNCi0gICAgICAgIHsNCi0gICAgICAgICAgICBzLT5ody5jbW9z
+X2RhdGFbUlRDX1JFR19DXSB8PSBSVENfSVJRRjsNCi0gICAgICAgICAgICBodm1faXNhX2lycV9k
+ZWFzc2VydChkLCBSVENfSVJRKTsNCi0gICAgICAgICAgICBodm1faXNhX2lycV9hc3NlcnQoZCwg
+UlRDX0lSUSk7DQotICAgICAgICB9DQorICAgICAgICAgICAgcnRjX3RvZ2dsZV9pcnEocyk7DQog
+ICAgICAgICBhbGFybV90aW1lcl91cGRhdGUocyk7DQogICAgIH0NCiAgICAgc3Bpbl91bmxvY2so
+JnMtPmxvY2spOw0KQEAgLTM2NSw2ICszNzEsNyBAQCBzdGF0aWMgaW50IHJ0Y19pb3BvcnRfd3Jp
+dGUodm9pZCAqb3BhcXVlDQogew0KICAgICBSVENTdGF0ZSAqcyA9IG9wYXF1ZTsNCiAgICAgc3Ry
+dWN0IGRvbWFpbiAqZCA9IHZydGNfZG9tYWluKHMpOw0KKyAgICB1aW50MzJfdCBvcmlnLCBtYXNr
+Ow0KDQogICAgIHNwaW5fbG9jaygmcy0+bG9jayk7DQoNCkBAIC0zODIsNiArMzg5LDcgQEAgc3Rh
+dGljIGludCBydGNfaW9wb3J0X3dyaXRlKHZvaWQgKm9wYXF1ZQ0KICAgICAgICAgcmV0dXJuIDA7
+DQogICAgIH0NCg0KKyAgICBvcmlnID0gcy0+aHcuY21vc19kYXRhW3MtPmh3LmNtb3NfaW5kZXhd
+Ow0KICAgICBzd2l0Y2ggKCBzLT5ody5jbW9zX2luZGV4ICkNCiAgICAgew0KICAgICBjYXNlIFJU
+Q19TRUNPTkRTX0FMQVJNOg0KQEAgLTQwNSw5ICs0MTMsOSBAQCBzdGF0aWMgaW50IHJ0Y19pb3Bv
+cnRfd3JpdGUodm9pZCAqb3BhcXVlDQogICAgICAgICBicmVhazsNCiAgICAgY2FzZSBSVENfUkVH
+X0E6DQogICAgICAgICAvKiBVSVAgYml0IGlzIHJlYWQgb25seSAqLw0KLSAgICAgICAgcy0+aHcu
+Y21vc19kYXRhW1JUQ19SRUdfQV0gPSAoZGF0YSAmIH5SVENfVUlQKSB8DQotICAgICAgICAgICAg
+KHMtPmh3LmNtb3NfZGF0YVtSVENfUkVHX0FdICYgUlRDX1VJUCk7DQotICAgICAgICBydGNfdGlt
+ZXJfdXBkYXRlKHMpOw0KKyAgICAgICAgcy0+aHcuY21vc19kYXRhW1JUQ19SRUdfQV0gPSAoZGF0
+YSAmIH5SVENfVUlQKSB8IChvcmlnICYgUlRDX1VJUCk7DQorICAgICAgICBpZiAoIChkYXRhIF4g
+b3JpZykgJiAoUlRDX1JBVEVfU0VMRUNUIHwgUlRDX0RJVl9DVEwpICkNCisgICAgICAgICAgICBy
+dGNfdGltZXJfdXBkYXRlKHMpOw0KICAgICAgICAgYnJlYWs7DQogICAgIGNhc2UgUlRDX1JFR19C
+Og0KICAgICAgICAgaWYgKCBkYXRhICYgUlRDX1NFVCApDQpAQCAtNDE1LDcgKzQyMyw3IEBAIHN0
+YXRpYyBpbnQgcnRjX2lvcG9ydF93cml0ZSh2b2lkICpvcGFxdWUNCiAgICAgICAgICAgICAvKiBz
+ZXQgbW9kZTogcmVzZXQgVUlQIG1vZGUgKi8NCiAgICAgICAgICAgICBzLT5ody5jbW9zX2RhdGFb
+UlRDX1JFR19BXSAmPSB+UlRDX1VJUDsNCiAgICAgICAgICAgICAvKiBhZGp1c3QgY21vcyBiZWZv
+cmUgc3RvcHBpbmcgKi8NCi0gICAgICAgICAgICBpZiAoIShzLT5ody5jbW9zX2RhdGFbUlRDX1JF
+R19CXSAmIFJUQ19TRVQpKQ0KKyAgICAgICAgICAgIGlmICghKG9yaWcgJiBSVENfU0VUKSkNCiAg
+ICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgIHMtPmN1cnJlbnRfdG0gPSBnbXRpbWUoZ2V0
+X2xvY2FsdGltZShkKSk7DQogICAgICAgICAgICAgICAgIHJ0Y19jb3B5X2RhdGUocyk7DQpAQCAt
+NDI0LDIxICs0MzIsMjYgQEAgc3RhdGljIGludCBydGNfaW9wb3J0X3dyaXRlKHZvaWQgKm9wYXF1
+ZQ0KICAgICAgICAgZWxzZQ0KICAgICAgICAgew0KICAgICAgICAgICAgIC8qIGlmIGRpc2FibGlu
+ZyBzZXQgbW9kZSwgdXBkYXRlIHRoZSB0aW1lICovDQotICAgICAgICAgICAgaWYgKCBzLT5ody5j
+bW9zX2RhdGFbUlRDX1JFR19CXSAmIFJUQ19TRVQgKQ0KKyAgICAgICAgICAgIGlmICggb3JpZyAm
+IFJUQ19TRVQgKQ0KICAgICAgICAgICAgICAgICBydGNfc2V0X3RpbWUocyk7DQogICAgICAgICB9
+DQotICAgICAgICAvKiBpZiB0aGUgaW50ZXJydXB0IGlzIGFscmVhZHkgc2V0IHdoZW4gdGhlIGlu
+dGVycnVwdCBiZWNvbWUNCi0gICAgICAgICAqIGVuYWJsZWQsIHJhaXNlIGFuIGludGVycnVwdCBp
+bW1lZGlhdGVseSovDQotICAgICAgICBpZiAoKGRhdGEgJiBSVENfVUlFKSAmJiAhKHMtPmh3LmNt
+b3NfZGF0YVtSVENfUkVHX0JdICYgUlRDX1VJRSkpDQotICAgICAgICAgICAgaWYgKHMtPmh3LmNt
+b3NfZGF0YVtSVENfUkVHX0NdICYgUlRDX1VGKQ0KKyAgICAgICAgLyoNCisgICAgICAgICAqIElm
+IHRoZSBpbnRlcnJ1cHQgaXMgYWxyZWFkeSBzZXQgd2hlbiB0aGUgaW50ZXJydXB0IGJlY29tZXMN
+CisgICAgICAgICAqIGVuYWJsZWQsIHJhaXNlIGFuIGludGVycnVwdCBpbW1lZGlhdGVseS4NCisg
+ICAgICAgICAqIE5COiBSVENfe0EsUCxVfUlFID09IFJUQ197QSxQLFV9RiByZXNwZWN0aXZlbHku
+DQorICAgICAgICAgKi8NCisgICAgICAgIGZvciAoIG1hc2sgPSBSVENfVUlFOyBtYXNrIDw9IFJU
+Q19QSUU7IG1hc2sgPDw9IDEgKQ0KKyAgICAgICAgICAgIGlmICggKGRhdGEgJiBtYXNrKSAmJiAh
+KG9yaWcgJiBtYXNrKSAmJg0KKyAgICAgICAgICAgICAgICAgKHMtPmh3LmNtb3NfZGF0YVtSVENf
+UkVHX0NdICYgbWFzaykgKQ0KICAgICAgICAgICAgIHsNCi0gICAgICAgICAgICAgICAgaHZtX2lz
+YV9pcnFfZGVhc3NlcnQoZCwgUlRDX0lSUSk7DQotICAgICAgICAgICAgICAgIGh2bV9pc2FfaXJx
+X2Fzc2VydChkLCBSVENfSVJRKTsNCisgICAgICAgICAgICAgICAgcnRjX3RvZ2dsZV9pcnEocyk7
+DQorICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgIH0NCiAgICAgICAgIHMtPmh3
+LmNtb3NfZGF0YVtSVENfUkVHX0JdID0gZGF0YTsNCi0gICAgICAgIHJ0Y190aW1lcl91cGRhdGUo
+cyk7DQotICAgICAgICBjaGVja191cGRhdGVfdGltZXIocyk7DQotICAgICAgICBhbGFybV90aW1l
+cl91cGRhdGUocyk7DQorICAgICAgICBpZiAoIChkYXRhIF4gb3JpZykgJiBSVENfU0VUICkNCisg
+ICAgICAgICAgICBjaGVja191cGRhdGVfdGltZXIocyk7DQorICAgICAgICBpZiAoIChkYXRhIF4g
+b3JpZykgJiAoUlRDXzI0SCB8IFJUQ19ETV9CSU5BUlkgfCBSVENfU0VUKSApDQorICAgICAgICAg
+ICAgYWxhcm1fdGltZXJfdXBkYXRlKHMpOw0KICAgICAgICAgYnJlYWs7DQogICAgIGNhc2UgUlRD
+X1JFR19DOg0KICAgICBjYXNlIFJUQ19SRUdfRDoNCkBAIC00NTMsNyArNDY2LDcgQEAgc3RhdGlj
+IGludCBydGNfaW9wb3J0X3dyaXRlKHZvaWQgKm9wYXF1ZQ0KDQogc3RhdGljIGlubGluZSBpbnQg
+dG9fYmNkKFJUQ1N0YXRlICpzLCBpbnQgYSkNCiB7DQotICAgIGlmICggcy0+aHcuY21vc19kYXRh
+W1JUQ19SRUdfQl0gJiAweDA0ICkNCisgICAgaWYgKCBzLT5ody5jbW9zX2RhdGFbUlRDX1JFR19C
+XSAmIFJUQ19ETV9CSU5BUlkgKQ0KICAgICAgICAgcmV0dXJuIGE7DQogICAgIGVsc2UNCiAgICAg
+ICAgIHJldHVybiAoKGEgLyAxMCkgPDwgNCkgfCAoYSAlIDEwKTsNCkBAIC00NjEsNyArNDc0LDcg
+QEAgc3RhdGljIGlubGluZSBpbnQgdG9fYmNkKFJUQ1N0YXRlICpzLCBpbg0KDQogc3RhdGljIGlu
+bGluZSBpbnQgZnJvbV9iY2QoUlRDU3RhdGUgKnMsIGludCBhKQ0KIHsNCi0gICAgaWYgKCBzLT5o
+dy5jbW9zX2RhdGFbUlRDX1JFR19CXSAmIDB4MDQgKQ0KKyAgICBpZiAoIHMtPmh3LmNtb3NfZGF0
+YVtSVENfUkVHX0JdICYgUlRDX0RNX0JJTkFSWSApDQogICAgICAgICByZXR1cm4gYTsNCiAgICAg
+ZWxzZQ0KICAgICAgICAgcmV0dXJuICgoYSA+PiA0KSAqIDEwKSArIChhICYgMHgwZik7DQpAQCAt
+NDY5LDEyICs0ODIsMTQgQEAgc3RhdGljIGlubGluZSBpbnQgZnJvbV9iY2QoUlRDU3RhdGUgKnMs
+IA0KDQogLyogSG91cnMgaW4gMTIgaG91ciBtb2RlIGFyZSBpbiAxLTEyIHJhbmdlLCBub3QgMC0x
+MS4NCiAgKiBTbyB3ZSBuZWVkIGNvbnZlcnQgaXQgYmVmb3JlIHVzaW5nIGl0Ki8NCi1zdGF0aWMg
+aW5saW5lIGludCBjb252ZXJ0X2hvdXIoUlRDU3RhdGUgKnMsIGludCBob3VyKQ0KK3N0YXRpYyBp
+bmxpbmUgaW50IGNvbnZlcnRfaG91cihSVENTdGF0ZSAqcywgaW50IHJhdykNCiB7DQorICAgIGlu
+dCBob3VyID0gZnJvbV9iY2QocywgcmF3ICYgMHg3Zik7DQorDQogICAgIGlmICghKHMtPmh3LmNt
+b3NfZGF0YVtSVENfUkVHX0JdICYgUlRDXzI0SCkpDQogICAgIHsNCiAgICAgICAgIGhvdXIgJT0g
+MTI7DQotICAgICAgICBpZiAocy0+aHcuY21vc19kYXRhW1JUQ19IT1VSU10gJiAweDgwKQ0KKyAg
+ICAgICAgaWYgKHJhdyAmIDB4ODApDQogICAgICAgICAgICAgaG91ciArPSAxMjsNCiAgICAgfQ0K
+ICAgICByZXR1cm4gaG91cjsNCkBAIC00OTMsOCArNTA4LDcgQEAgc3RhdGljIHZvaWQgcnRjX3Nl
+dF90aW1lKFJUQ1N0YXRlICpzKQ0KICAgICANCiAgICAgdG0tPnRtX3NlYyA9IGZyb21fYmNkKHMs
+IHMtPmh3LmNtb3NfZGF0YVtSVENfU0VDT05EU10pOw0KICAgICB0bS0+dG1fbWluID0gZnJvbV9i
+Y2Qocywgcy0+aHcuY21vc19kYXRhW1JUQ19NSU5VVEVTXSk7DQotICAgIHRtLT50bV9ob3VyID0g
+ZnJvbV9iY2Qocywgcy0+aHcuY21vc19kYXRhW1JUQ19IT1VSU10gJiAweDdmKTsNCi0gICAgdG0t
+PnRtX2hvdXIgPSBjb252ZXJ0X2hvdXIocywgdG0tPnRtX2hvdXIpOw0KKyAgICB0bS0+dG1faG91
+ciA9IGNvbnZlcnRfaG91cihzLCBzLT5ody5jbW9zX2RhdGFbUlRDX0hPVVJTXSk7DQogICAgIHRt
+LT50bV93ZGF5ID0gZnJvbV9iY2Qocywgcy0+aHcuY21vc19kYXRhW1JUQ19EQVlfT0ZfV0VFS10p
+Ow0KICAgICB0bS0+dG1fbWRheSA9IGZyb21fYmNkKHMsIHMtPmh3LmNtb3NfZGF0YVtSVENfREFZ
+X09GX01PTlRIXSk7DQogICAgIHRtLT50bV9tb24gPSBmcm9tX2JjZChzLCBzLT5ody5jbW9zX2Rh
+dGFbUlRDX01PTlRIXSkgLSAxOw0KLS0tIGEveGVuL2FyY2gveDg2L2h2bS92cHQuYw0KKysrIGIv
+eGVuL2FyY2gveDg2L2h2bS92cHQuYw0KQEAgLTIyLDYgKzIyLDcgQEANCiAjaW5jbHVkZSA8YXNt
+L2h2bS92cHQuaD4NCiAjaW5jbHVkZSA8YXNtL2V2ZW50Lmg+DQogI2luY2x1ZGUgPGFzbS9hcGlj
+Lmg+DQorI2luY2x1ZGUgPGFzbS9tYzE0NjgxOHJ0Yy5oPg0KDQogI2RlZmluZSBtb2RlX2lzKGQs
+IG5hbWUpIFwNCiAgICAgKChkKS0+YXJjaC5odm1fZG9tYWluLnBhcmFtc1tIVk1fUEFSQU1fVElN
+RVJfTU9ERV0gPT0gSFZNUFRNXyMjbmFtZSkNCkBAIC0yMTgsNiArMjE5LDcgQEAgdm9pZCBwdF91
+cGRhdGVfaXJxKHN0cnVjdCB2Y3B1ICp2KQ0KICAgICBzdHJ1Y3QgcGVyaW9kaWNfdGltZSAqcHQs
+ICp0ZW1wLCAqZWFybGllc3RfcHQgPSBOVUxMOw0KICAgICB1aW50NjRfdCBtYXhfbGFnID0gLTFV
+TEw7DQogICAgIGludCBpcnEsIGlzX2xhcGljOw0KKyAgICB2b2lkICpwdF9wcml2Ow0KDQogICAg
+IHNwaW5fbG9jaygmdi0+YXJjaC5odm1fdmNwdS50bV9sb2NrKTsNCg0KQEAgLTI1MSwxMyArMjUz
+LDE0IEBAIHZvaWQgcHRfdXBkYXRlX2lycShzdHJ1Y3QgdmNwdSAqdikNCiAgICAgZWFybGllc3Rf
+cHQtPmlycV9pc3N1ZWQgPSAxOw0KICAgICBpcnEgPSBlYXJsaWVzdF9wdC0+aXJxOw0KICAgICBp
+c19sYXBpYyA9IChlYXJsaWVzdF9wdC0+c291cmNlID09IFBUU1JDX2xhcGljKTsNCisgICAgcHRf
+cHJpdiA9IGVhcmxpZXN0X3B0LT5wcml2Ow0KDQogICAgIHNwaW5fdW5sb2NrKCZ2LT5hcmNoLmh2
+bV92Y3B1LnRtX2xvY2spOw0KDQogICAgIGlmICggaXNfbGFwaWMgKQ0KLSAgICB7DQogICAgICAg
+ICB2bGFwaWNfc2V0X2lycSh2Y3B1X3ZsYXBpYyh2KSwgaXJxLCAwKTsNCi0gICAgfQ0KKyAgICBl
+bHNlIGlmICggaXJxID09IFJUQ19JUlEgKQ0KKyAgICAgICAgcnRjX3BlcmlvZGljX2ludGVycnVw
+dChwdF9wcml2KTsNCiAgICAgZWxzZQ0KICAgICB7DQogICAgICAgICBodm1faXNhX2lycV9kZWFz
+c2VydCh2LT5kb21haW4sIGlycSk7DQotLS0gYS94ZW4vaW5jbHVkZS9hc20teDg2L2h2bS92cHQu
+aA0KKysrIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9odm0vdnB0LmgNCkBAIC0xODEsNiArMTgxLDcg
+QEAgdm9pZCBydGNfbWlncmF0ZV90aW1lcnMoc3RydWN0IHZjcHUgKnYpOw0KIHZvaWQgcnRjX2Rl
+aW5pdChzdHJ1Y3QgZG9tYWluICpkKTsNCiB2b2lkIHJ0Y19yZXNldChzdHJ1Y3QgZG9tYWluICpk
+KTsNCiB2b2lkIHJ0Y191cGRhdGVfY2xvY2soc3RydWN0IGRvbWFpbiAqZCk7DQordm9pZCBydGNf
+cGVyaW9kaWNfaW50ZXJydXB0KHZvaWQgKik7DQoNCiB2b2lkIHBtdGltZXJfaW5pdChzdHJ1Y3Qg
+dmNwdSAqdik7DQogdm9pZCBwbXRpbWVyX2RlaW5pdChzdHJ1Y3QgZG9tYWluICpkKTsNCg0KDQpf
+X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0KWGVuLWRldmVs
+IG1haWxpbmcgbGlzdA0KWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcNCmh0dHA6Ly9saXN0cy54ZW4u
+b3JnL3hlbi1kZXZlbA==
+
+------=_001_NextPart564768006800_=----
+Content-Type: text/html;
+       charset="gb2312"
+Content-Transfer-Encoding: quoted-printable
+
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<HTML><HEAD>
+<META http-equiv=3DContent-Type content=3D"text/html; charset=3Dgb2312">
+<STYLE>
+BLOCKQUOTE {
+       MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; MARGIN-LEFT: 2em
+}
+OL {
+       MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px
+}
+UL {
+       MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px
+}
+P {
+       MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px
+}
+DIV.FoxDiv20120815221113875709 {
+       FONT-SIZE: 10.5pt; MARGIN: 10px; COLOR: #000080; LINE-HEIGHT: 1.5; FONT-F=
+AMILY: =CB=CE=CC=E5
+}
+BODY {
+       FONT-SIZE: 10.5pt; COLOR: #000080; LINE-HEIGHT: 1.5; FONT-FAMILY: =CB=CE=
+=CC=E5
+}
+</STYLE>
+
+<META content=3D"MSHTML 6.00.2900.5512" name=3DGENERATOR>
+<STYLE>BLOCKQUOTE {
+       MARGIN-TOP: 0px
+}
+OL {
+       MARGIN-TOP: 0px
+}
+UL {
+       MARGIN-TOP: 0px
+}
+</STYLE>
+</HEAD>
+<BODY style=3D"MARGIN: 10px">
+<DIV>Hi, Jan:</DIV>
+<DIV>
+<DIV class=3DFoxDiv20120815221113875709>
+<DIV>I am sorry I really don't have much time to try a test of your patch,=
+ and=20
+it is not convenient</DIV>
+<DIV>for me to have a try. For the version I have been using is xen4.0.x, =
+and=20
+your patch is based on </DIV>
+<DIV>the latest version xen4.2.x.(I have never complied the unstable one),=
+ so I=20
+merged your patch to my </DIV>
+<DIV>xen4.0.x, still couldn't find the two functions below:</DIV>
+<DIV>&nbsp;static&nbsp;void&nbsp;rtc_update_timer2(void&nbsp;*opaque) </DI=
+V>
+<DIV>&nbsp;static&nbsp;void&nbsp;rtc_alarm_cb(void&nbsp;*opaque) </DIV>
+<DIV>so I didn't merge the two functions which contains a rtc_toggle_irq()=
+=20
+.</DIV>
+<DIV>&nbsp;</DIV>
+<DIV>The results for me were these:</DIV>
+<DIV>1 In my real application environment, it worked very well in the form=
+er=20
+5mins, much better than before,</DIV>
+<DIV>&nbsp;but at last it lagged again. I don't know whether it belongs to=
+ the=20
+two missed functions. I lack the </DIV>
+<DIV>&nbsp;ability to figure them out.</DIV>
+<DIV style=3D"TEXT-INDENT: 2em">&nbsp;</DIV>
+<DIV>2 When I tested my test program which I provided days before, it work=
+ed=20
+very well, maybe the program doesn't </DIV>
+<DIV>emulate the real environment due to&nbsp;the same setting rate,&nbsp;=
+so I=20
+modified this program as which in the attachment.</DIV>
+<DIV>if you are more convenient, you can help me to have a look of it.</DI=
+V>
+<DIV>--------------------------------------------------------------------<=
+/DIV>
+<DIV>
+<DIV>#include&nbsp;&lt;stdio.h&gt;</DIV>
+<DIV>#include&nbsp;&lt;windows.h&gt;</DIV>
+<DIV>typedef&nbsp;int&nbsp;(__stdcall&nbsp;*NTSETTIMER)(IN&nbsp;ULONG&nbsp=
+;RequestedResolution,&nbsp;IN&nbsp;BOOLEAN&nbsp;Set,&nbsp;OUT&nbsp;PULONG&=
+nbsp;ActualResolution&nbsp;);</DIV>
+<DIV>typedef&nbsp;int&nbsp;(__stdcall&nbsp;*NTQUERYTIMER)(OUT&nbsp;PULONG&=
+nbsp;&nbsp;&nbsp;MinimumResolution,&nbsp;OUT&nbsp;PULONG&nbsp;MaximumResol=
+ution,&nbsp;OUT&nbsp;PULONG&nbsp;CurrentResolution&nbsp;);</DIV>
+<DIV>&nbsp;</DIV>
+<DIV>int&nbsp;main()</DIV>
+<DIV>{</DIV>
+<DIV>DWORD&nbsp;min_res&nbsp;=3D&nbsp;0,&nbsp;max_res&nbsp;=3D&nbsp;0,&nbs=
+p;cur_res&nbsp;=3D&nbsp;0,&nbsp;ret&nbsp;=3D&nbsp;0;</DIV>
+<DIV>HMODULE&nbsp;&nbsp;hdll&nbsp;=3D&nbsp;NULL;</DIV>
+<DIV>hdll&nbsp;=3D&nbsp;GetModuleHandle("ntdll.dll");</DIV>
+<DIV>NTSETTIMER&nbsp;AddrNtSetTimer&nbsp;=3D&nbsp;0;</DIV>
+<DIV>NTQUERYTIMER&nbsp;AddrNtQueyTimer&nbsp;=3D&nbsp;0;</DIV>
+<DIV></DIV>
+<DIV>AddrNtSetTimer&nbsp;=3D&nbsp;(NTSETTIMER)&nbsp;GetProcAddress(hdll,&n=
+bsp;"NtSetTimerResolution");</DIV>
+<DIV>AddrNtQueyTimer&nbsp;=3D&nbsp;(NTQUERYTIMER)GetProcAddress(hdll,&nbsp=
+;"NtQueryTimerResolution");</DIV>
+<DIV>&nbsp;</DIV>
+<DIV>while&nbsp;(1)</DIV>
+<DIV>{</DIV>
+<DIV>ret&nbsp;=3D&nbsp;AddrNtQueyTimer(&amp;min_res,&nbsp;&amp;max_res,&nb=
+sp;&amp;cur_res);</DIV>
+<DIV>printf("min_res&nbsp;=3D&nbsp;%d,&nbsp;max_res&nbsp;=3D&nbsp;%d,&nbsp=
+;cur_res&nbsp;=3D&nbsp;%d\n",min_res,&nbsp;max_res,&nbsp;cur_res);</DIV>
+<DIV>Sleep(5);</DIV>
+<DIV>ret&nbsp;=3D&nbsp;AddrNtSetTimer(10000,&nbsp;1,&nbsp;&amp;cur_res);</=
+DIV>
+<DIV>Sleep(5);</DIV>
+<DIV>ret&nbsp;=3D&nbsp;AddrNtSetTimer(10000,&nbsp;0,&nbsp;&amp;cur_res);</=
+DIV>
+<DIV>Sleep(5);</DIV>
+<DIV>ret&nbsp;=3D&nbsp;AddrNtSetTimer(50000,&nbsp;1,&nbsp;&amp;cur_res);</=
+DIV>
+<DIV>Sleep(5);</DIV>
+<DIV>ret&nbsp;=3D&nbsp;AddrNtSetTimer(50000,&nbsp;0,&nbsp;&amp;cur_res);</=
+DIV>
+<DIV>Sleep(5);</DIV>
+<DIV>ret&nbsp;=3D&nbsp;AddrNtSetTimer(100000,&nbsp;1,&nbsp;&amp;cur_res);<=
+/DIV>
+<DIV>Sleep(5);</DIV>
+<DIV>ret&nbsp;=3D&nbsp;AddrNtSetTimer(100000,&nbsp;0,&nbsp;&amp;cur_res);<=
+/DIV>
+<DIV>Sleep(5);</DIV>
+<DIV>}</DIV>
+<DIV>&nbsp;</DIV>
+<DIV>return&nbsp;0;</DIV>
+<DIV>}</DIV></DIV>
+<DIV>--------------------------------------------------------------------<=
+/DIV>
+<DIV>And I have a opinion, because our product is based on Version Xen4.0.=
+x, if=20
+you have enough time, can you write </DIV>
+<DIV>another patch based <A=20
+href=3D"http://xenbits.xen.org/hg/xen-4.0-testing.hg/">http://xenbits.xen.=
+org/hg/xen-4.0-testing.hg/</A>&nbsp;for=20
+me, thank you very much!</DIV>
+<DIV>&nbsp;</DIV>
+<DIV>3 I also have a thought that can we have some detecting methods to fi=
+nd the=20
+lagging time earlier to adjust time</DIV>
+<DIV>back to normal value in the code?</DIV>
+<DIV>&nbsp;</DIV>
+<DIV>best regards,</DIV>
+<DIV style=3D"TEXT-INDENT: 2em">&nbsp;</DIV>
+<DIV style=3D"TEXT-INDENT: 2em">
+<HR style=3D"WIDTH: 210px; HEIGHT: 1px" align=3Dleft color=3D#b5c4df SIZE=
+=3D1>
+</DIV>
+<DIV><SPAN>tupeng212</SPAN></DIV>
+<DIV>
+<DIV>&nbsp;</DIV></DIV>
+<DIV=20
+style=3D"BORDER-RIGHT: medium none; PADDING-RIGHT: 0cm; BORDER-TOP: #b5c4d=
+f 1pt solid; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; BORDER-LEFT: medium n=
+one; PADDING-TOP: 3pt; BORDER-BOTTOM: medium none">
+<DIV=20
+style=3D"PADDING-RIGHT: 8px; PADDING-LEFT: 8px; FONT-SIZE: 12px; BACKGROUN=
+D: #efefef; PADDING-BOTTOM: 8px; COLOR: #000000; PADDING-TOP: 8px">
+<DIV>
+<DIV>Second&nbsp;draft&nbsp;of&nbsp;a&nbsp;patch&nbsp;posted;&nbsp;no&nbsp=
+;test&nbsp;results&nbsp;so&nbsp;far&nbsp;for&nbsp;first&nbsp;draft.</DIV>
+<DIV>Jan</DIV></DIV>
+<DIV><B></B>&nbsp;</DIV>
+<DIV><B>From:</B>&nbsp;<A href=3D"mailto:JBeulich@suse.com">Jan Beulich</A=
+></DIV>
+<DIV><B>Date:</B>&nbsp;2012-08-14&nbsp;17:51</DIV>
+<DIV><B>To:</B>&nbsp;<A href=3D"mailto:yang.z.zhang@intel.com">Yang Z Zhan=
+g</A>;=20
+<A href=3D"mailto:keir@xen.org">Keir Fraser</A>; <A href=3D"mailto:tim@xen=
+.org">Tim=20
+Deegan</A></DIV>
+<DIV><B>CC:</B>&nbsp;<A href=3D"mailto:tupeng212@gmail.com">tupeng212</A>;=
+ <A=20
+href=3D"mailto:xen-devel@lists.xen.org">xen-devel</A></DIV>
+<DIV><B>Subject:</B>&nbsp;[Xen-devel] [PATCH, RFC v2] x86/HVM: assorted RT=
+C=20
+emulation adjustments (was Re: Big Bug:Time in VM goes=20
+slower...)</DIV></DIV></DIV>
+<DIV>
+<DIV>Below/attached&nbsp;a&nbsp;second&nbsp;draft&nbsp;of&nbsp;a&nbsp;patc=
+h&nbsp;to&nbsp;fix&nbsp;not&nbsp;only&nbsp;this</DIV>
+<DIV>issue,&nbsp;but&nbsp;a&nbsp;few&nbsp;more&nbsp;with&nbsp;the&nbsp;RTC=
+&nbsp;emulation.</DIV>
+<DIV>&nbsp;</DIV>
+<DIV>Keir,&nbsp;Tim,&nbsp;Yang,&nbsp;others&nbsp;-&nbsp;the&nbsp;change&nb=
+sp;to&nbsp;xen/arch/x86/hvm/vpt.c&nbsp;really</DIV>
+<DIV>looks&nbsp;more&nbsp;like&nbsp;a&nbsp;hack&nbsp;than&nbsp;a&nbsp;solu=
+tion,&nbsp;but&nbsp;I&nbsp;don't&nbsp;see&nbsp;another</DIV>
+<DIV>way&nbsp;without&nbsp;much&nbsp;more&nbsp;intrusive&nbsp;changes.&nbs=
+p;The&nbsp;point&nbsp;is&nbsp;that&nbsp;we</DIV>
+<DIV>want&nbsp;the&nbsp;RTC&nbsp;code&nbsp;to&nbsp;decide&nbsp;whether&nbs=
+p;to&nbsp;generate&nbsp;an&nbsp;interrupt</DIV>
+<DIV>(so&nbsp;that&nbsp;RTC_PF&nbsp;can&nbsp;become&nbsp;set&nbsp;correctl=
+y&nbsp;even&nbsp;without&nbsp;RTC_PIE</DIV>
+<DIV>getting&nbsp;enabled&nbsp;by&nbsp;the&nbsp;guest).</DIV>
+<DIV>&nbsp;</DIV>
+<DIV>Additionally&nbsp;I&nbsp;wonder&nbsp;whether&nbsp;alarm_timer_update(=
+)&nbsp;shouldn't</DIV>
+<DIV>bail&nbsp;on&nbsp;non-conforming&nbsp;RTC_*_ALARM&nbsp;values&nbsp;(a=
+s&nbsp;those&nbsp;would</DIV>
+<DIV>never&nbsp;match&nbsp;the&nbsp;values&nbsp;they&nbsp;get&nbsp;compare=
+d&nbsp;against,&nbsp;whereas</DIV>
+<DIV>with&nbsp;the&nbsp;current&nbsp;way&nbsp;of&nbsp;handling&nbsp;this&n=
+bsp;they&nbsp;would&nbsp;appear&nbsp;to</DIV>
+<DIV>match&nbsp;-&nbsp;i.e.&nbsp;set&nbsp;RTC_AF&nbsp;and&nbsp;possibly&nb=
+sp;generate&nbsp;an&nbsp;interrupt&nbsp;-</DIV>
+<DIV>some&nbsp;other&nbsp;point&nbsp;in&nbsp;time).&nbsp;I&nbsp;realize&nb=
+sp;the&nbsp;behavior&nbsp;here&nbsp;may&nbsp;not</DIV>
+<DIV>be&nbsp;precisely&nbsp;specified,&nbsp;but&nbsp;the&nbsp;specificatio=
+n&nbsp;saying&nbsp;"the&nbsp;current</DIV>
+<DIV>time&nbsp;has&nbsp;matched&nbsp;the&nbsp;alarm&nbsp;time"&nbsp;means&=
+nbsp;to&nbsp;me&nbsp;a&nbsp;value&nbsp;by&nbsp;value</DIV>
+<DIV>comparison,&nbsp;which&nbsp;implies&nbsp;that&nbsp;non-conforming&nbs=
+p;values&nbsp;would</DIV>
+<DIV>never&nbsp;match&nbsp;(since&nbsp;non-conforming&nbsp;current&nbsp;ti=
+me&nbsp;values&nbsp;could</DIV>
+<DIV>get&nbsp;replaced&nbsp;at&nbsp;any&nbsp;time&nbsp;by&nbsp;the&nbsp;ha=
+rdware&nbsp;due&nbsp;to&nbsp;overflow</DIV>
+<DIV>detection).</DIV>
+<DIV>&nbsp;</DIV>
+<DIV>Jan</DIV>
+<DIV>&nbsp;</DIV>
+<DIV>-&nbsp;don't&nbsp;call&nbsp;rtc_timer_update()&nbsp;on&nbsp;REG_A&nbs=
+p;writes&nbsp;when&nbsp;the&nbsp;value&nbsp;didn't</DIV>
+<DIV>&nbsp;&nbsp;change&nbsp;(doing&nbsp;the&nbsp;call&nbsp;always&nbsp;wa=
+s&nbsp;reported&nbsp;to&nbsp;cause&nbsp;wall&nbsp;clock&nbsp;time</DIV>
+<DIV>&nbsp;&nbsp;lagging&nbsp;with&nbsp;the&nbsp;JVM&nbsp;running&nbsp;on&=
+nbsp;Windows)</DIV>
+<DIV>-&nbsp;don't&nbsp;call&nbsp;rtc_timer_update()&nbsp;on&nbsp;REG_B&nbs=
+p;writes&nbsp;at&nbsp;all</DIV>
+<DIV>-&nbsp;only&nbsp;call&nbsp;alarm_timer_update()&nbsp;on&nbsp;REG_B&nb=
+sp;writes&nbsp;when&nbsp;relevant&nbsp;bits</DIV>
+<DIV>&nbsp;&nbsp;change</DIV>
+<DIV>-&nbsp;only&nbsp;call&nbsp;check_update_timer()&nbsp;on&nbsp;REG_B&nb=
+sp;writes&nbsp;when&nbsp;SET&nbsp;changes</DIV>
+<DIV>-&nbsp;instead&nbsp;properly&nbsp;handle&nbsp;AF&nbsp;and&nbsp;PF&nbs=
+p;when&nbsp;the&nbsp;guest&nbsp;is&nbsp;not&nbsp;also&nbsp;setting</DIV>
+<DIV>&nbsp;&nbsp;AIE/PIE&nbsp;respectively&nbsp;(for&nbsp;UF&nbsp;this&nbs=
+p;was&nbsp;already&nbsp;the&nbsp;case,&nbsp;only&nbsp;a</DIV>
+<DIV>&nbsp;&nbsp;comment&nbsp;was&nbsp;slightly&nbsp;inaccurate)</DIV>
+<DIV>-&nbsp;raise&nbsp;the&nbsp;RTC&nbsp;IRQ&nbsp;not&nbsp;only&nbsp;when&=
+nbsp;UIE&nbsp;gets&nbsp;set&nbsp;while&nbsp;UF&nbsp;was&nbsp;already</DIV>
+<DIV>&nbsp;&nbsp;set,&nbsp;but&nbsp;generalize&nbsp;this&nbsp;to&nbsp;cove=
+r&nbsp;AIE&nbsp;and&nbsp;PIE&nbsp;as&nbsp;well</DIV>
+<DIV>-&nbsp;properly&nbsp;mask&nbsp;off&nbsp;bit&nbsp;7&nbsp;when&nbsp;ret=
+rieving&nbsp;the&nbsp;hour&nbsp;values&nbsp;in</DIV>
+<DIV>&nbsp;&nbsp;alarm_timer_update(),&nbsp;and&nbsp;properly&nbsp;use&nbs=
+p;RTC_HOURS_ALARM's&nbsp;bit&nbsp;7&nbsp;when</DIV>
+<DIV>&nbsp;&nbsp;converting&nbsp;from&nbsp;12-&nbsp;to&nbsp;24-hour&nbsp;v=
+alue</DIV>
+<DIV>-&nbsp;also&nbsp;handle&nbsp;the&nbsp;two&nbsp;other&nbsp;possible&nb=
+sp;clock&nbsp;bases</DIV>
+<DIV>-&nbsp;use&nbsp;RTC_*&nbsp;names&nbsp;in&nbsp;a&nbsp;couple&nbsp;of&n=
+bsp;places&nbsp;where&nbsp;literal&nbsp;numbers&nbsp;were&nbsp;used</DIV>
+<DIV>&nbsp;&nbsp;so&nbsp;far</DIV>
+<DIV>&nbsp;</DIV>
+<DIV>---&nbsp;a/xen/arch/x86/hvm/rtc.c</DIV>
+<DIV>+++&nbsp;b/xen/arch/x86/hvm/rtc.c</DIV>
+<DIV>@@&nbsp;-50,11&nbsp;+50,24&nbsp;@@&nbsp;static&nbsp;void&nbsp;rtc_set=
+_time(RTCState&nbsp;*s);</DIV>
+<DIV>&nbsp;static&nbsp;inline&nbsp;int&nbsp;from_bcd(RTCState&nbsp;*s,&nbs=
+p;int&nbsp;a);</DIV>
+<DIV>&nbsp;static&nbsp;inline&nbsp;int&nbsp;convert_hour(RTCState&nbsp;*s,=
+&nbsp;int&nbsp;hour);</DIV>
+<DIV>&nbsp;</DIV>
+<DIV>-static&nbsp;void&nbsp;rtc_periodic_cb(struct&nbsp;vcpu&nbsp;*v,&nbsp=
+;void&nbsp;*opaque)</DIV>
+<DIV>+static&nbsp;void&nbsp;rtc_toggle_irq(RTCState&nbsp;*s)</DIV>
+<DIV>+{</DIV>
+<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;struct&nbsp;domain&nbsp;*d&nbsp;=3D&nbsp;vrt=
+c_domain(s);</DIV>
+<DIV>+</DIV>
+<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;ASSERT(spin_is_locked(&amp;s-&gt;lock));</DI=
+V>
+<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;s-&gt;hw.cmos_data[RTC_REG_C]&nbsp;|=3D&nbsp=
+;RTC_IRQF;</DIV>
+<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;hvm_isa_irq_deassert(d,&nbsp;RTC_IRQ);</DIV>
+<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;hvm_isa_irq_assert(d,&nbsp;RTC_IRQ);</DIV>
+<DIV>+}</DIV>
+<DIV>+</DIV>
+<DIV>+void&nbsp;rtc_periodic_interrupt(void&nbsp;*opaque)</DIV>
+<DIV>&nbsp;{</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RTCState&nbsp;*s&nbsp;=3D&nbsp;opaque;<=
+/DIV>
+<DIV>+</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;spin_lock(&amp;s-&gt;lock);</DIV>
+<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;s-&gt;hw.cmos_data[RTC_REG_C]&nbsp;|=3D&nbsp=
+;0xc0;</DIV>
+<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;s-&gt;hw.cmos_data[RTC_REG_C]&nbsp;|=3D&nbsp=
+;RTC_PF;</DIV>
+<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(&nbsp;s-&gt;hw.cmos_data[RTC_REG_B]=
+&nbsp;&amp;&nbsp;RTC_PIE&nbsp;)</DIV>
+<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rtc_toggle_irq(s);</=
+DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;spin_unlock(&amp;s-&gt;lock);</DIV>
+<DIV>&nbsp;}</DIV>
+<DIV>&nbsp;</DIV>
+<DIV>@@&nbsp;-68,19&nbsp;+81,25&nbsp;@@&nbsp;static&nbsp;void&nbsp;rtc_tim=
+er_update(RTCState&nbsp;*s</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ASSERT(spin_is_locked(&amp;s-&gt;lock))=
+;</DIV>
+<DIV>&nbsp;</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;period_code&nbsp;=3D&nbsp;s-&gt;hw.cmos=
+_data[RTC_REG_A]&nbsp;&amp;&nbsp;RTC_RATE_SELECT;</DIV>
+<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(&nbsp;(period_code&nbsp;!=3D&nbsp;0=
+)&nbsp;&amp;&amp;&nbsp;(s-&gt;hw.cmos_data[RTC_REG_B]&nbsp;&amp;&nbsp;RTC_=
+PIE)&nbsp;)</DIV>
+<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;switch&nbsp;(&nbsp;s-&gt;hw.cmos_data[RTC_RE=
+G_A]&nbsp;&amp;&nbsp;RTC_DIV_CTL&nbsp;)</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{</DIV>
+<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(&nbsp;perio=
+d_code&nbsp;&lt;=3D&nbsp;2&nbsp;)</DIV>
+<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;RTC_REF_CLCK_32KHZ:</DIV>
+<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(&nbsp;(peri=
+od_code&nbsp;!=3D&nbsp;0)&nbsp;&amp;&amp;&nbsp;(period_code&nbsp;&lt;=3D&n=
+bsp;2)&nbsp;)</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
+sp;&nbsp;period_code&nbsp;+=3D&nbsp;7;</DIV>
+<DIV>-</DIV>
+<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;period&nbsp;=3D&nbsp=
+;1&nbsp;&lt;&lt;&nbsp;(period_code&nbsp;-&nbsp;1);&nbsp;/*&nbsp;period&nbs=
+p;in&nbsp;32&nbsp;Khz&nbsp;cycles&nbsp;*/</DIV>
+<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;period&nbsp;=3D&nbsp=
+;DIV_ROUND((period&nbsp;*&nbsp;1000000000ULL),&nbsp;32768);&nbsp;/*&nbsp;p=
+eriod&nbsp;in&nbsp;ns&nbsp;*/</DIV>
+<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;create_periodic_time=
+(v,&nbsp;&amp;s-&gt;pt,&nbsp;period,&nbsp;period,&nbsp;RTC_IRQ,</DIV>
+<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
+bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
+p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rtc_periodic_cb,&nbsp;s);</DIV>
+<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;}</DIV>
+<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;else</DIV>
+<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;{</DIV>
+<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;fall&nbsp;th=
+rough&nbsp;*/</DIV>
+<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;RTC_REF_CLCK_1MHZ:</DIV>
+<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;RTC_REF_CLCK_4MHZ:</DIV>
+<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(&nbsp;perio=
+d_code&nbsp;!=3D&nbsp;0&nbsp;)</DIV>
+<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{</DIV>
+<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
+bsp;period&nbsp;=3D&nbsp;1&nbsp;&lt;&lt;&nbsp;(period_code&nbsp;-&nbsp;1);=
+&nbsp;/*&nbsp;period&nbsp;in&nbsp;32&nbsp;Khz&nbsp;cycles&nbsp;*/</DIV>
+<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
+bsp;period&nbsp;=3D&nbsp;DIV_ROUND(period&nbsp;*&nbsp;1000000000ULL,&nbsp;=
+32768);&nbsp;/*&nbsp;in&nbsp;ns&nbsp;*/</DIV>
+<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
+bsp;create_periodic_time(v,&nbsp;&amp;s-&gt;pt,&nbsp;period,&nbsp;period,&=
+nbsp;RTC_IRQ,&nbsp;NULL,&nbsp;s);</DIV>
+<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
+bsp;break;</DIV>
+<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</DIV>
+<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;fall&nbsp;th=
+rough&nbsp;*/</DIV>
+<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;default:</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;destroy_periodi=
+c_time(&amp;s-&gt;pt);</DIV>
+<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</DIV>
+<DIV>&nbsp;}</DIV>
+<DIV>&nbsp;</DIV>
+<DIV>@@&nbsp;-102,7&nbsp;+121,7&nbsp;@@&nbsp;static&nbsp;void&nbsp;check_u=
+pdate_timer(RTCState&nbsp;</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;guest_usec&nbsp=
+;=3D&nbsp;get_localtime_us(d)&nbsp;%&nbsp;USEC_PER_SEC;</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(guest_=
+usec&nbsp;&gt;=3D&nbsp;(USEC_PER_SEC&nbsp;-&nbsp;244))</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{</DIV>
+<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
+bsp;/*&nbsp;RTC&nbsp;is&nbsp;in&nbsp;update&nbsp;cycle&nbsp;when&nbsp;enab=
+ling&nbsp;UIE&nbsp;*/</DIV>
+<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
+bsp;/*&nbsp;RTC&nbsp;is&nbsp;in&nbsp;update&nbsp;cycle&nbsp;*/</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
+sp;&nbsp;s-&gt;hw.cmos_data[RTC_REG_A]&nbsp;|=3D&nbsp;RTC_UIP;</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
+sp;&nbsp;next_update_time&nbsp;=3D&nbsp;(USEC_PER_SEC&nbsp;-&nbsp;guest_us=
+ec)&nbsp;*&nbsp;NS_PER_USEC;</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
+sp;&nbsp;expire_time&nbsp;=3D&nbsp;NOW()&nbsp;+&nbsp;next_update_time;</DI=
+V>
+<DIV>@@&nbsp;-144,7&nbsp;+163,6&nbsp;@@&nbsp;static&nbsp;void&nbsp;rtc_upd=
+ate_timer(void&nbsp;*opaqu</DIV>
+<DIV>&nbsp;static&nbsp;void&nbsp;rtc_update_timer2(void&nbsp;*opaque)</DIV=
+>
+<DIV>&nbsp;{</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RTCState&nbsp;*s&nbsp;=3D&nbsp;opaque;<=
+/DIV>
+<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;struct&nbsp;domain&nbsp;*d&nbsp;=3D&nbsp;vrt=
+c_domain(s);</DIV>
+<DIV>&nbsp;</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;spin_lock(&amp;s-&gt;lock);</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(!(s-&gt;hw.cmos_data[RTC_REG_B=
+]&nbsp;&amp;&nbsp;RTC_SET))</DIV>
+<DIV>@@&nbsp;-152,11&nbsp;+170,7&nbsp;@@&nbsp;static&nbsp;void&nbsp;rtc_up=
+date_timer2(void&nbsp;*opaq</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s-&gt;hw.cmos_d=
+ata[RTC_REG_C]&nbsp;|=3D&nbsp;RTC_UF;</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s-&gt;hw.cmos_d=
+ata[RTC_REG_A]&nbsp;&amp;=3D&nbsp;~RTC_UIP;</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;((s-&gt=
+;hw.cmos_data[RTC_REG_B]&nbsp;&amp;&nbsp;RTC_UIE))</DIV>
+<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{</DIV>
+<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
+bsp;s-&gt;hw.cmos_data[RTC_REG_C]&nbsp;|=3D&nbsp;RTC_IRQF;</DIV>
+<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
+bsp;hvm_isa_irq_deassert(d,&nbsp;RTC_IRQ);</DIV>
+<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
+bsp;hvm_isa_irq_assert(d,&nbsp;RTC_IRQ);</DIV>
+<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</DIV>
+<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
+bsp;rtc_toggle_irq(s);</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;check_update_ti=
+mer(s);</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;spin_unlock(&amp;s-&gt;lock);</DIV>
+<DIV>@@&nbsp;-175,21&nbsp;+189,18&nbsp;@@&nbsp;static&nbsp;void&nbsp;alarm=
+_timer_update(RTCState&nbsp;</DIV>
+<DIV>&nbsp;</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;stop_timer(&amp;s-&gt;alarm_timer);</DI=
+V>
+<DIV>&nbsp;</DIV>
+<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;((s-&gt;hw.cmos_data[RTC_REG_B]&nbsp=
+;&amp;&nbsp;RTC_AIE)&nbsp;&amp;&amp;</DIV>
+<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
+bsp;!(s-&gt;hw.cmos_data[RTC_REG_B]&nbsp;&amp;&nbsp;RTC_SET))</DIV>
+<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(&nbsp;!(s-&gt;hw.cmos_data[RTC_REG_=
+B]&nbsp;&amp;&nbsp;RTC_SET)&nbsp;)</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s-&gt;current_t=
+m&nbsp;=3D&nbsp;gmtime(get_localtime(d));</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rtc_copy_date(s=
+);</DIV>
+<DIV>&nbsp;</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alarm_sec&nbsp;=
+=3D&nbsp;from_bcd(s,&nbsp;s-&gt;hw.cmos_data[RTC_SECONDS_ALARM]);</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alarm_min&nbsp;=
+=3D&nbsp;from_bcd(s,&nbsp;s-&gt;hw.cmos_data[RTC_MINUTES_ALARM]);</DIV>
+<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alarm_hour&nbsp;=3D&=
+nbsp;from_bcd(s,&nbsp;s-&gt;hw.cmos_data[RTC_HOURS_ALARM]);</DIV>
+<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alarm_hour&nbsp;=3D&=
+nbsp;convert_hour(s,&nbsp;alarm_hour);</DIV>
+<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alarm_hour&nbsp;=3D&=
+nbsp;convert_hour(s,&nbsp;s-&gt;hw.cmos_data[RTC_HOURS_ALARM]);</DIV>
+<DIV>&nbsp;</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cur_sec&nbsp;=
+=3D&nbsp;from_bcd(s,&nbsp;s-&gt;hw.cmos_data[RTC_SECONDS]);</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cur_min&nbsp;=
+=3D&nbsp;from_bcd(s,&nbsp;s-&gt;hw.cmos_data[RTC_MINUTES]);</DIV>
+<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cur_hour&nbsp;=3D&nb=
+sp;from_bcd(s,&nbsp;s-&gt;hw.cmos_data[RTC_HOURS]);</DIV>
+<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cur_hour&nbsp;=3D&nb=
+sp;convert_hour(s,&nbsp;cur_hour);</DIV>
+<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cur_hour&nbsp;=3D&nb=
+sp;convert_hour(s,&nbsp;s-&gt;hw.cmos_data[RTC_HOURS]);</DIV>
+<DIV>&nbsp;</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;next_update_tim=
+e&nbsp;=3D&nbsp;USEC_PER_SEC&nbsp;-&nbsp;(get_localtime_us(d)&nbsp;%&nbsp;=
+USEC_PER_SEC);</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;next_update_tim=
+e&nbsp;=3D&nbsp;next_update_time&nbsp;*&nbsp;NS_PER_USEC&nbsp;+&nbsp;NOW()=
+;</DIV>
+<DIV>@@&nbsp;-343,7&nbsp;+354,6&nbsp;@@&nbsp;static&nbsp;void&nbsp;alarm_t=
+imer_update(RTCState&nbsp;</DIV>
+<DIV>&nbsp;static&nbsp;void&nbsp;rtc_alarm_cb(void&nbsp;*opaque)</DIV>
+<DIV>&nbsp;{</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RTCState&nbsp;*s&nbsp;=3D&nbsp;opaque;<=
+/DIV>
+<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;struct&nbsp;domain&nbsp;*d&nbsp;=3D&nbsp;vrt=
+c_domain(s);</DIV>
+<DIV>&nbsp;</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;spin_lock(&amp;s-&gt;lock);</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(!(s-&gt;hw.cmos_data[RTC_REG_B=
+]&nbsp;&amp;&nbsp;RTC_SET))</DIV>
+<DIV>@@&nbsp;-351,11&nbsp;+361,7&nbsp;@@&nbsp;static&nbsp;void&nbsp;rtc_al=
+arm_cb(void&nbsp;*opaque)</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s-&gt;hw.cmos_d=
+ata[RTC_REG_C]&nbsp;|=3D&nbsp;RTC_AF;</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;alarm&n=
+bsp;interrupt&nbsp;*/</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(s-&gt;=
+hw.cmos_data[RTC_REG_B]&nbsp;&amp;&nbsp;RTC_AIE)</DIV>
+<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{</DIV>
+<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
+bsp;s-&gt;hw.cmos_data[RTC_REG_C]&nbsp;|=3D&nbsp;RTC_IRQF;</DIV>
+<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
+bsp;hvm_isa_irq_deassert(d,&nbsp;RTC_IRQ);</DIV>
+<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
+bsp;hvm_isa_irq_assert(d,&nbsp;RTC_IRQ);</DIV>
+<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</DIV>
+<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
+bsp;rtc_toggle_irq(s);</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alarm_timer_upd=
+ate(s);</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;spin_unlock(&amp;s-&gt;lock);</DIV>
+<DIV>@@&nbsp;-365,6&nbsp;+371,7&nbsp;@@&nbsp;static&nbsp;int&nbsp;rtc_iopo=
+rt_write(void&nbsp;*opaque</DIV>
+<DIV>&nbsp;{</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RTCState&nbsp;*s&nbsp;=3D&nbsp;opaque;<=
+/DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;struct&nbsp;domain&nbsp;*d&nbsp;=3D&nbs=
+p;vrtc_domain(s);</DIV>
+<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;uint32_t&nbsp;orig,&nbsp;mask;</DIV>
+<DIV>&nbsp;</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;spin_lock(&amp;s-&gt;lock);</DIV>
+<DIV>&nbsp;</DIV>
+<DIV>@@&nbsp;-382,6&nbsp;+389,7&nbsp;@@&nbsp;static&nbsp;int&nbsp;rtc_iopo=
+rt_write(void&nbsp;*opaque</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;0;<=
+/DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</DIV>
+<DIV>&nbsp;</DIV>
+<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;orig&nbsp;=3D&nbsp;s-&gt;hw.cmos_data[s-&gt;=
+hw.cmos_index];</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;switch&nbsp;(&nbsp;s-&gt;hw.cmos_index&=
+nbsp;)</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;RTC_SECONDS_ALARM:</DIV>
+<DIV>@@&nbsp;-405,9&nbsp;+413,9&nbsp;@@&nbsp;static&nbsp;int&nbsp;rtc_iopo=
+rt_write(void&nbsp;*opaque</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;RTC_REG_A:</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;UIP&nbs=
+p;bit&nbsp;is&nbsp;read&nbsp;only&nbsp;*/</DIV>
+<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s-&gt;hw.cmos_data[R=
+TC_REG_A]&nbsp;=3D&nbsp;(data&nbsp;&amp;&nbsp;~RTC_UIP)&nbsp;|</DIV>
+<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
+bsp;(s-&gt;hw.cmos_data[RTC_REG_A]&nbsp;&amp;&nbsp;RTC_UIP);</DIV>
+<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rtc_timer_update(s);=
+</DIV>
+<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s-&gt;hw.cmos_data[R=
+TC_REG_A]&nbsp;=3D&nbsp;(data&nbsp;&amp;&nbsp;~RTC_UIP)&nbsp;|&nbsp;(orig&=
+nbsp;&amp;&nbsp;RTC_UIP);</DIV>
+<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(&nbsp;(data=
+&nbsp;^&nbsp;orig)&nbsp;&amp;&nbsp;(RTC_RATE_SELECT&nbsp;|&nbsp;RTC_DIV_CT=
+L)&nbsp;)</DIV>
+<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
+bsp;rtc_timer_update(s);</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;RTC_REG_B:</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(&nbsp;=
+data&nbsp;&amp;&nbsp;RTC_SET&nbsp;)</DIV>
+<DIV>@@&nbsp;-415,7&nbsp;+423,7&nbsp;@@&nbsp;static&nbsp;int&nbsp;rtc_iopo=
+rt_write(void&nbsp;*opaque</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
+sp;&nbsp;/*&nbsp;set&nbsp;mode:&nbsp;reset&nbsp;UIP&nbsp;mode&nbsp;*/</DIV=
+>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
+sp;&nbsp;s-&gt;hw.cmos_data[RTC_REG_A]&nbsp;&amp;=3D&nbsp;~RTC_UIP;</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
+sp;&nbsp;/*&nbsp;adjust&nbsp;cmos&nbsp;before&nbsp;stopping&nbsp;*/</DIV>
+<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
+bsp;if&nbsp;(!(s-&gt;hw.cmos_data[RTC_REG_B]&nbsp;&amp;&nbsp;RTC_SET))</DI=
+V>
+<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
+bsp;if&nbsp;(!(orig&nbsp;&amp;&nbsp;RTC_SET))</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
+sp;&nbsp;{</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
+sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s-&gt;current_tm&nbsp;=3D&nbsp;gmtime(get=
+_localtime(d));</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
+sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rtc_copy_date(s);</DIV>
+<DIV>@@&nbsp;-424,21&nbsp;+432,26&nbsp;@@&nbsp;static&nbsp;int&nbsp;rtc_io=
+port_write(void&nbsp;*opaque</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
+sp;&nbsp;/*&nbsp;if&nbsp;disabling&nbsp;set&nbsp;mode,&nbsp;update&nbsp;th=
+e&nbsp;time&nbsp;*/</DIV>
+<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
+bsp;if&nbsp;(&nbsp;s-&gt;hw.cmos_data[RTC_REG_B]&nbsp;&amp;&nbsp;RTC_SET&n=
+bsp;)</DIV>
+<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
+bsp;if&nbsp;(&nbsp;orig&nbsp;&amp;&nbsp;RTC_SET&nbsp;)</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
+sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rtc_set_time(s);</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</DIV>
+<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;if&nbsp;the&=
+nbsp;interrupt&nbsp;is&nbsp;already&nbsp;set&nbsp;when&nbsp;the&nbsp;inter=
+rupt&nbsp;become</DIV>
+<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;enabled=
+,&nbsp;raise&nbsp;an&nbsp;interrupt&nbsp;immediately*/</DIV>
+<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;((data&nbsp;=
+&amp;&nbsp;RTC_UIE)&nbsp;&amp;&amp;&nbsp;!(s-&gt;hw.cmos_data[RTC_REG_B]&n=
+bsp;&amp;&nbsp;RTC_UIE))</DIV>
+<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
+bsp;if&nbsp;(s-&gt;hw.cmos_data[RTC_REG_C]&nbsp;&amp;&nbsp;RTC_UF)</DIV>
+<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*</DIV>
+<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;If&nbsp=
+;the&nbsp;interrupt&nbsp;is&nbsp;already&nbsp;set&nbsp;when&nbsp;the&nbsp;=
+interrupt&nbsp;becomes</DIV>
+<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;enabled=
+,&nbsp;raise&nbsp;an&nbsp;interrupt&nbsp;immediately.</DIV>
+<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;NB:&nbs=
+p;RTC_{A,P,U}IE&nbsp;=3D=3D&nbsp;RTC_{A,P,U}F&nbsp;respectively.</DIV>
+<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/</DIV>
+<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(&nbsp;mask=
+&nbsp;=3D&nbsp;RTC_UIE;&nbsp;mask&nbsp;&lt;=3D&nbsp;RTC_PIE;&nbsp;mask&nbs=
+p;&lt;&lt;=3D&nbsp;1&nbsp;)</DIV>
+<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
+bsp;if&nbsp;(&nbsp;(data&nbsp;&amp;&nbsp;mask)&nbsp;&amp;&amp;&nbsp;!(orig=
+&nbsp;&amp;&nbsp;mask)&nbsp;&amp;&amp;</DIV>
+<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
+bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(s-&gt;hw.cmos_data[RTC_REG_C]&nbsp;&amp=
+;&nbsp;mask)&nbsp;)</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
+sp;&nbsp;{</DIV>
+<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
+bsp;&nbsp;&nbsp;&nbsp;&nbsp;hvm_isa_irq_deassert(d,&nbsp;RTC_IRQ);</DIV>
+<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
+bsp;&nbsp;&nbsp;&nbsp;&nbsp;hvm_isa_irq_assert(d,&nbsp;RTC_IRQ);</DIV>
+<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
+bsp;&nbsp;&nbsp;&nbsp;&nbsp;rtc_toggle_irq(s);</DIV>
+<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
+bsp;&nbsp;&nbsp;&nbsp;&nbsp;break;</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
+sp;&nbsp;}</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s-&gt;hw.cmos_d=
+ata[RTC_REG_B]&nbsp;=3D&nbsp;data;</DIV>
+<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rtc_timer_update(s);=
+</DIV>
+<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;check_update_timer(s=
+);</DIV>
+<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alarm_timer_update(s=
+);</DIV>
+<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(&nbsp;(data=
+&nbsp;^&nbsp;orig)&nbsp;&amp;&nbsp;RTC_SET&nbsp;)</DIV>
+<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
+bsp;check_update_timer(s);</DIV>
+<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(&nbsp;(data=
+&nbsp;^&nbsp;orig)&nbsp;&amp;&nbsp;(RTC_24H&nbsp;|&nbsp;RTC_DM_BINARY&nbsp=
+;|&nbsp;RTC_SET)&nbsp;)</DIV>
+<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
+bsp;alarm_timer_update(s);</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;RTC_REG_C:</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;RTC_REG_D:</DIV>
+<DIV>@@&nbsp;-453,7&nbsp;+466,7&nbsp;@@&nbsp;static&nbsp;int&nbsp;rtc_iopo=
+rt_write(void&nbsp;*opaque</DIV>
+<DIV>&nbsp;</DIV>
+<DIV>&nbsp;static&nbsp;inline&nbsp;int&nbsp;to_bcd(RTCState&nbsp;*s,&nbsp;=
+int&nbsp;a)</DIV>
+<DIV>&nbsp;{</DIV>
+<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(&nbsp;s-&gt;hw.cmos_data[RTC_REG_B]=
+&nbsp;&amp;&nbsp;0x04&nbsp;)</DIV>
+<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(&nbsp;s-&gt;hw.cmos_data[RTC_REG_B]=
+&nbsp;&amp;&nbsp;RTC_DM_BINARY&nbsp;)</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;a;<=
+/DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;((a=
+&nbsp;/&nbsp;10)&nbsp;&lt;&lt;&nbsp;4)&nbsp;|&nbsp;(a&nbsp;%&nbsp;10);</DI=
+V>
+<DIV>@@&nbsp;-461,7&nbsp;+474,7&nbsp;@@&nbsp;static&nbsp;inline&nbsp;int&n=
+bsp;to_bcd(RTCState&nbsp;*s,&nbsp;in</DIV>
+<DIV>&nbsp;</DIV>
+<DIV>&nbsp;static&nbsp;inline&nbsp;int&nbsp;from_bcd(RTCState&nbsp;*s,&nbs=
+p;int&nbsp;a)</DIV>
+<DIV>&nbsp;{</DIV>
+<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(&nbsp;s-&gt;hw.cmos_data[RTC_REG_B]=
+&nbsp;&amp;&nbsp;0x04&nbsp;)</DIV>
+<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(&nbsp;s-&gt;hw.cmos_data[RTC_REG_B]=
+&nbsp;&amp;&nbsp;RTC_DM_BINARY&nbsp;)</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;a;<=
+/DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;((a=
+&nbsp;&gt;&gt;&nbsp;4)&nbsp;*&nbsp;10)&nbsp;+&nbsp;(a&nbsp;&amp;&nbsp;0x0f=
+);</DIV>
+<DIV>@@&nbsp;-469,12&nbsp;+482,14&nbsp;@@&nbsp;static&nbsp;inline&nbsp;int=
+&nbsp;from_bcd(RTCState&nbsp;*s,&nbsp;</DIV>
+<DIV>&nbsp;</DIV>
+<DIV>&nbsp;/*&nbsp;Hours&nbsp;in&nbsp;12&nbsp;hour&nbsp;mode&nbsp;are&nbsp=
+;in&nbsp;1-12&nbsp;range,&nbsp;not&nbsp;0-11.</DIV>
+<DIV>&nbsp;&nbsp;*&nbsp;So&nbsp;we&nbsp;need&nbsp;convert&nbsp;it&nbsp;bef=
+ore&nbsp;using&nbsp;it*/</DIV>
+<DIV>-static&nbsp;inline&nbsp;int&nbsp;convert_hour(RTCState&nbsp;*s,&nbsp=
+;int&nbsp;hour)</DIV>
+<DIV>+static&nbsp;inline&nbsp;int&nbsp;convert_hour(RTCState&nbsp;*s,&nbsp=
+;int&nbsp;raw)</DIV>
+<DIV>&nbsp;{</DIV>
+<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;hour&nbsp;=3D&nbsp;from_bcd(s,&nbsp=
+;raw&nbsp;&amp;&nbsp;0x7f);</DIV>
+<DIV>+</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(!(s-&gt;hw.cmos_data[RTC_REG_B=
+]&nbsp;&amp;&nbsp;RTC_24H))</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hour&nbsp;%=3D&=
+nbsp;12;</DIV>
+<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(s-&gt;hw.cm=
+os_data[RTC_HOURS]&nbsp;&amp;&nbsp;0x80)</DIV>
+<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(raw&nbsp;&a=
+mp;&nbsp;0x80)</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
+sp;&nbsp;hour&nbsp;+=3D&nbsp;12;</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;hour;</DIV>
+<DIV>@@&nbsp;-493,8&nbsp;+508,7&nbsp;@@&nbsp;static&nbsp;void&nbsp;rtc_set=
+_time(RTCState&nbsp;*s)</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tm-&gt;tm_sec&nbsp;=3D&nbsp;from_bcd(s,=
+&nbsp;s-&gt;hw.cmos_data[RTC_SECONDS]);</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tm-&gt;tm_min&nbsp;=3D&nbsp;from_bcd(s,=
+&nbsp;s-&gt;hw.cmos_data[RTC_MINUTES]);</DIV>
+<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;tm-&gt;tm_hour&nbsp;=3D&nbsp;from_bcd(s,&nbs=
+p;s-&gt;hw.cmos_data[RTC_HOURS]&nbsp;&amp;&nbsp;0x7f);</DIV>
+<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;tm-&gt;tm_hour&nbsp;=3D&nbsp;convert_hour(s,=
+&nbsp;tm-&gt;tm_hour);</DIV>
+<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;tm-&gt;tm_hour&nbsp;=3D&nbsp;convert_hour(s,=
+&nbsp;s-&gt;hw.cmos_data[RTC_HOURS]);</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tm-&gt;tm_wday&nbsp;=3D&nbsp;from_bcd(s=
+,&nbsp;s-&gt;hw.cmos_data[RTC_DAY_OF_WEEK]);</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tm-&gt;tm_mday&nbsp;=3D&nbsp;from_bcd(s=
+,&nbsp;s-&gt;hw.cmos_data[RTC_DAY_OF_MONTH]);</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tm-&gt;tm_mon&nbsp;=3D&nbsp;from_bcd(s,=
+&nbsp;s-&gt;hw.cmos_data[RTC_MONTH])&nbsp;-&nbsp;1;</DIV>
+<DIV>---&nbsp;a/xen/arch/x86/hvm/vpt.c</DIV>
+<DIV>+++&nbsp;b/xen/arch/x86/hvm/vpt.c</DIV>
+<DIV>@@&nbsp;-22,6&nbsp;+22,7&nbsp;@@</DIV>
+<DIV>&nbsp;#include&nbsp;&lt;asm/hvm/vpt.h&gt;</DIV>
+<DIV>&nbsp;#include&nbsp;&lt;asm/event.h&gt;</DIV>
+<DIV>&nbsp;#include&nbsp;&lt;asm/apic.h&gt;</DIV>
+<DIV>+#include&nbsp;&lt;asm/mc146818rtc.h&gt;</DIV>
+<DIV>&nbsp;</DIV>
+<DIV>&nbsp;#define&nbsp;mode_is(d,&nbsp;name)&nbsp;\</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;((d)-&gt;arch.hvm_domain.params[HVM_PAR=
+AM_TIMER_MODE]&nbsp;=3D=3D&nbsp;HVMPTM_##name)</DIV>
+<DIV>@@&nbsp;-218,6&nbsp;+219,7&nbsp;@@&nbsp;void&nbsp;pt_update_irq(struc=
+t&nbsp;vcpu&nbsp;*v)</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;struct&nbsp;periodic_time&nbsp;*pt,&nbs=
+p;*temp,&nbsp;*earliest_pt&nbsp;=3D&nbsp;NULL;</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;uint64_t&nbsp;max_lag&nbsp;=3D&nbsp;-1U=
+LL;</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;irq,&nbsp;is_lapic;</DIV>
+<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;*pt_priv;</DIV>
+<DIV>&nbsp;</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;spin_lock(&amp;v-&gt;arch.hvm_vcpu.tm_l=
+ock);</DIV>
+<DIV>&nbsp;</DIV>
+<DIV>@@&nbsp;-251,13&nbsp;+253,14&nbsp;@@&nbsp;void&nbsp;pt_update_irq(str=
+uct&nbsp;vcpu&nbsp;*v)</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;earliest_pt-&gt;irq_issued&nbsp;=3D&nbs=
+p;1;</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;irq&nbsp;=3D&nbsp;earliest_pt-&gt;irq;<=
+/DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;is_lapic&nbsp;=3D&nbsp;(earliest_pt-&gt=
+;source&nbsp;=3D=3D&nbsp;PTSRC_lapic);</DIV>
+<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;pt_priv&nbsp;=3D&nbsp;earliest_pt-&gt;priv;<=
+/DIV>
+<DIV>&nbsp;</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;spin_unlock(&amp;v-&gt;arch.hvm_vcpu.tm=
+_lock);</DIV>
+<DIV>&nbsp;</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(&nbsp;is_lapic&nbsp;)</DIV>
+<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;{</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;vlapic_set_irq(=
+vcpu_vlapic(v),&nbsp;irq,&nbsp;0);</DIV>
+<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;}</DIV>
+<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;if&nbsp;(&nbsp;irq&nbsp;=3D=3D&nbs=
+p;RTC_IRQ&nbsp;)</DIV>
+<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rtc_periodic_interru=
+pt(pt_priv);</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{</DIV>
+<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hvm_isa_irq_dea=
+ssert(v-&gt;domain,&nbsp;irq);</DIV>
+<DIV>---&nbsp;a/xen/include/asm-x86/hvm/vpt.h</DIV>
+<DIV>+++&nbsp;b/xen/include/asm-x86/hvm/vpt.h</DIV>
+<DIV>@@&nbsp;-181,6&nbsp;+181,7&nbsp;@@&nbsp;void&nbsp;rtc_migrate_timers(=
+struct&nbsp;vcpu&nbsp;*v);</DIV>
+<DIV>&nbsp;void&nbsp;rtc_deinit(struct&nbsp;domain&nbsp;*d);</DIV>
+<DIV>&nbsp;void&nbsp;rtc_reset(struct&nbsp;domain&nbsp;*d);</DIV>
+<DIV>&nbsp;void&nbsp;rtc_update_clock(struct&nbsp;domain&nbsp;*d);</DIV>
+<DIV>+void&nbsp;rtc_periodic_interrupt(void&nbsp;*);</DIV>
+<DIV>&nbsp;</DIV>
+<DIV>&nbsp;void&nbsp;pmtimer_init(struct&nbsp;vcpu&nbsp;*v);</DIV>
+<DIV>&nbsp;void&nbsp;pmtimer_deinit(struct&nbsp;domain&nbsp;*d);</DIV>
+<DIV>&nbsp;</DIV>
+<DIV>&nbsp;</DIV>
+<DIV>_______________________________________________</DIV>
+<DIV>Xen-devel&nbsp;mailing&nbsp;list</DIV>
+<DIV>Xen-devel@lists.xen.org</DIV>
+<DIV>http://lists.xen.org/xen-devel</DIV></DIV></DIV></DIV></BODY></HTML>
+
+------=_001_NextPart564768006800_=------
+
+
+
+--===============5636090078893645621==
+Content-Type: text/plain; charset="us-ascii"
+MIME-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Content-Disposition: inline
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
+--===============5636090078893645621==--
+
+
+
diff --git a/config/examples/test/corpus/<20120816131547.GE20601@ocelot.phlegethon.org> b/config/examples/test/corpus/<20120816131547.GE20601@ocelot.phlegethon.org>
new file mode 100644 (file)
index 0000000..e4933e3
--- /dev/null
@@ -0,0 +1,91 @@
+From xen-devel-bounces@lists.xen.org Thu Aug 16 14:19:57 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 16 Aug 2012 14:19:57 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T1zzL-00073i-IJ
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 16 Aug 2012 14:19:57 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T1zve-0001s4-11; Thu, 16 Aug 2012 13:16:02 +0000
+Received: from mail27.messagelabs.com ([193.109.254.147])
+       by lists.xen.org with esmtp (Exim 4.72) (envelope-from <tim@xen.org>)
+       id 1T1zvc-0001rv-12
+       for xen-devel@lists.xen.org; Thu, 16 Aug 2012 13:16:00 +0000
+X-Env-Sender: tim@xen.org
+X-Msg-Ref: server-8.tower-27.messagelabs.com!1345122953!9654995!1
+X-Originating-IP: [81.29.64.94]
+X-SpamReason: No, hits=0.8 required=7.0 tests=MANY_EXCLAMATIONS
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 14364 invoked from network); 16 Aug 2012 13:15:53 -0000
+Received: from ocelot.phlegethon.org (HELO mail.phlegethon.org) (81.29.64.94)
+       by server-8.tower-27.messagelabs.com with DHE-RSA-AES256-SHA
+       encrypted SMTP; 16 Aug 2012 13:15:53 -0000
+Received: from tjd by mail.phlegethon.org with local (Exim 4.67 (FreeBSD))
+       (envelope-from <tim@xen.org>)
+       id 1T1zvP-0006Kq-2g; Thu, 16 Aug 2012 13:15:47 +0000
+Date: Thu, 16 Aug 2012 14:15:47 +0100
+From: Tim Deegan <tim@xen.org>
+To: Jan Beulich <JBeulich@suse.com>
+Message-ID: <20120816131547.GE20601@ocelot.phlegethon.org>
+References: <50224B7402000078000937DA@nat28.tlf.novell.com>
+       <2012081023124696835343@gmail.com>
+       <50293785020000780009484C@nat28.tlf.novell.com>
+Mime-Version: 1.0
+Content-Disposition: inline
+In-Reply-To: <50293785020000780009484C@nat28.tlf.novell.com>
+User-Agent: Mutt/1.4.2.1i
+Cc: tupeng212 <tupeng212@gmail.com>, Keir Fraser <keir@xen.org>,
+       xen-devel <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] Big Bug:Time in VM goes slower;
+       foud Solution but demand Judgement! A Interesting Story!
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+At 16:21 +0100 on 13 Aug (1344874869), Jan Beulich wrote:
+> Below/attached a first draft of a patch to fix not only this issue,
+> but a few more with the RTC emulation. Would you give this a
+> try?
+> 
+> Keir, Tim, others - the change to xen/arch/x86/hvm/vpt.c really
+> looks more like a hack than a solution, but I don't see another
+> way without much more intrusive changes.
+
+It seems no worse than the code that's already there to special-case
+lapic time interrupts.  After 4.3 it might be nice to adjust the vpt
+interface to use explicit callbacks instead.
+
+Tim.
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<201208162143289686654@gmail.com> b/config/examples/test/corpus/<201208162143289686654@gmail.com>
new file mode 100644 (file)
index 0000000..0b37a24
--- /dev/null
@@ -0,0 +1,247 @@
+From xen-devel-bounces@lists.xen.org Thu Aug 16 14:48:18 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 16 Aug 2012 14:48:18 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T20Qm-00079s-Te
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 16 Aug 2012 14:48:18 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T20MQ-0002J5-QJ; Thu, 16 Aug 2012 13:43:42 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <tupeng212@gmail.com>) id 1T20MN-0002J0-Jf
+       for xen-devel@lists.xen.org; Thu, 16 Aug 2012 13:43:40 +0000
+Received: from [85.158.138.51:8280] by server-11.bemta-3.messagelabs.com id
+       3E/77-23152-709FC205; Thu, 16 Aug 2012 13:43:35 +0000
+X-Env-Sender: tupeng212@gmail.com
+X-Msg-Ref: server-15.tower-174.messagelabs.com!1345124612!26865629!1
+X-Originating-IP: [209.85.160.45]
+X-SpamReason: No, hits=1.9 required=7.0 tests=BODY_RANDOM_LONG,
+       HTML_60_70,HTML_MESSAGE,MAILTO_TO_SPAM_ADDR,MIME_BASE64_TEXT,
+       MIME_BOUND_NEXTPART,ML_RADAR_SPEW_LINKS_14,RCVD_BY_IP,spamassassin: 
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 19041 invoked from network); 16 Aug 2012 13:43:34 -0000
+Received: from mail-pb0-f45.google.com (HELO mail-pb0-f45.google.com)
+       (209.85.160.45)
+       by server-15.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
+       16 Aug 2012 13:43:34 -0000
+Received: by pbbrp12 with SMTP id rp12so1653925pbb.32
+       for <xen-devel@lists.xen.org>; Thu, 16 Aug 2012 06:43:31 -0700 (PDT)
+DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
+       h=date:from:to:cc:reply-to:subject:references:x-priority:x-guid
+       :x-has-attach:x-mailer:mime-version:message-id:content-type;
+       bh=zilfsV2OTjoeVwAW86UtZTl1BJQN4FT1cLNiRNBHtSs=;
+       b=XG8SFg7v4dRPIP/DgtDv+9ZUvFsx+4RO2avjedqs6bi6B+QCih0/oJhoFUyWicSUkv
+       e6IuMX8r0rZraaEV8RhvTzPvnF8eIiPxrRwfzkf5RfJAEOt8TdAdHpBWKmQC4JnqT3oy
+       +OkcC1Bet3YOb9ff5qOPiM1GtsByvKKUJ/dpdl4oDiI2/6tMAuhxnQhluSF25HKFgXr/
+       EVTzS3bqNjg/bYkCX98HFwipstS2SWakZ5tZ7LIPUpBYTmtRsE1JcRHTKuI498IpWDgO
+       649tKBRaV+o4aD5u7zUhBIFUzDn+kr9bajpaEGLj1+nYxC/NbsprtELMBSsBEkGKPK6f
+       Ev7Q==
+Received: by 10.68.241.202 with SMTP id wk10mr3482564pbc.77.1345124611716;
+       Thu, 16 Aug 2012 06:43:31 -0700 (PDT)
+Received: from root ([115.199.242.186])
+       by mx.google.com with ESMTPS id pn4sm2705093pbb.50.2012.08.16.06.43.25
+       (version=SSLv3 cipher=OTHER); Thu, 16 Aug 2012 06:43:31 -0700 (PDT)
+Date: Thu, 16 Aug 2012 21:43:32 +0800
+From: tupeng212 <tupeng212@gmail.com>
+To: "Jan Beulich" <JBeulich@suse.com>
+References: <502A3BBC0200007800094B68@nat28.tlf.novell.com>, 
+       <2012081522045495397713@gmail.com> <2012081522121039050717@gmail.com>, 
+       <502CC9D702000078000955B9@nat28.tlf.novell.com>
+X-Priority: 3
+X-GUID: F9F46BCC-7AD0-4A5D-8F36-D652162620D5
+X-Has-Attach: no
+X-Mailer: Foxmail 7.0.1.87[cn]
+Mime-Version: 1.0
+Message-ID: <201208162143289686654@gmail.com>
+Cc: Yang Z Zhang <yang.z.zhang@intel.com>, Tim Deegan <tim@xen.org>,
+       Keir Fraser <keir@xen.org>, xen-devel <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+Reply-To: tupeng212 <tupeng212@gmail.com>
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: multipart/mixed; boundary="===============4223491905756042710=="
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,FREEMAIL_FROM,
+       HTML_MESSAGE,RCVD_IN_DNSWL_MED,RP_MATCHES_RCVD,T_DKIM_INVALID,
+       UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH,
+       RFC v2] x86/HVM: assorted RTC emulation adjustments (was Re: Big
+       Bug:Time in VM goes slower...)
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+This is a multi-part message in MIME format.
+
+--===============4223491905756042710==
+Content-Type: multipart/alternative;
+       boundary="----=_001_NextPart451220271581_=----"
+
+This is a multi-part message in MIME format.
+
+------=_001_NextPart451220271581_=----
+Content-Type: text/plain;
+       charset="gb2312"
+Content-Transfer-Encoding: base64
+
+RGVhciBKYW46DQpJIGRpZG4ndCBjaGVjayB0aGUgZmxpcHBpbmcgaW4gSlZNLCBidXQgZnJvbSB0
+aGUgcHJpbnRpbmcgcGVyaW9kIGluIHhlbiwgdGhpcyBzZXR0aW5nIGhhcHBlbmVkKHVuaXQ6IG5z
+KToNCjk3NjU2MiwgOTc2NTYyLCA5NzY1NjIsIDk3NjU2MiwgMTU2MjUwMDAsIDk3NjU2MiwgOTc2
+NTYyLCA5NzY1NjIsIDk3NjU2MiwgMTU2MjUwMDAgLi4uLi4NCmFuZCBzb21lb25lIHRvbGQgbWUg
+d2luZG93cyB1c2UgdGhlc2UgdHdvIHJhdGUvcGVyaW9kIG9ubHkuDQoNCmJlc2lkZXMsIEkgY2hl
+Y2tlZCBteSBmb3JtZXIgc2ltcGxlIHRlc3RlciB0aGlzIG1vcm5pbmcgYWZ0ZXIgaXQgcmFuIGZv
+ciBhIHdob2xlIG5pZ2h0LCBpdCBsYWdnZWQgbXVjaC4NCnNvIHRoZXJlIGV4aXN0cyBkaWZmZXJl
+bmNlIGJldHdlZW4gdmlydHVhbGl6YXRpb24gYW5kIHJlYWxpdHkuDQoNCg0KDQp0dXBlbmcyMTIN
+Cg0KRnJvbTogSmFuIEJldWxpY2gNCkRhdGU6IDIwMTItMDgtMTYgMTY6MjINClRvOiB0dXBlbmcy
+MTINCkNDOiBZYW5nIFogWmhhbmc7IHhlbi1kZXZlbDsgS2VpciBGcmFzZXI7IFRpbSBEZWVnYW4N
+ClN1YmplY3Q6IFJlOiBbWGVuLWRldmVsXSBbUEFUQ0gsIFJGQyB2Ml0geDg2L0hWTTogYXNzb3J0
+ZWQgUlRDIGVtdWxhdGlvbiBhZGp1c3RtZW50cyAod2FzIFJlOiBCaWcgQnVnOlRpbWUgaW4gVk0g
+Z29lcyBzbG93ZXIuLi4pDQo+Pj4gT24gMTUuMDguMTIgYXQgMTY6MTIsIHR1cGVuZzIxMiA8dHVw
+ZW5nMjEyQGdtYWlsLmNvbT4gd3JvdGU6DQo+IFRoZSByZXN1bHRzIGZvciBtZSB3ZXJlIHRoZXNl
+Og0KPiAxIEluIG15IHJlYWwgYXBwbGljYXRpb24gZW52aXJvbm1lbnQsIGl0IHdvcmtlZCB2ZXJ5
+IHdlbGwgaW4gdGhlIGZvcm1lciANCj4gNW1pbnMsIG11Y2ggYmV0dGVyIHRoYW4gYmVmb3JlLA0K
+PiAgYnV0IGF0IGxhc3QgaXQgbGFnZ2VkIGFnYWluLiBJIGRvbid0IGtub3cgd2hldGhlciBpdCBi
+ZWxvbmdzIHRvIHRoZSB0d28gDQo+IG1pc3NlZCBmdW5jdGlvbnMuIEkgbGFjayB0aGUgDQo+ICBh
+YmlsaXR5IHRvIGZpZ3VyZSB0aGVtIG91dC4NCg0KRGlkIHlvdSBjaGVjayB3aGV0aGVyIHBvc3Np
+Ymx5IHRoZSBndWVzdCBrZXJuZWwgc3RhcnRlZCBmbGlwcGluZw0KYmV0d2VlbiB0byByYXRlIHZh
+bHVlcz8gSWYgc28sIHRoYXQgaXMgc29tZXRoaW5nIHRoYXQgd2UgY291bGQNCmRlYWwgd2l0aCB0
+b28gKHlldCBpdCBtaWdodCBiZSBhIGJpdCBpbnZvbHZlZCwgc28gSSdkIGxpa2UgdG8gYXZvaWQN
+CmdvaW5nIHRoYXQgcm91dGUgaWYgaXQgd291bGQgbGVhZCBub3doZXJlKS4NCg0KSmFu
+
+------=_001_NextPart451220271581_=----
+Content-Type: text/html;
+       charset="gb2312"
+Content-Transfer-Encoding: quoted-printable
+
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<HTML><HEAD>
+<META http-equiv=3DContent-Type content=3D"text/html; charset=3DGB2312">
+<STYLE>
+BLOCKQUOTE {
+       MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; MARGIN-LEFT: 2em
+}
+OL {
+       MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px
+}
+UL {
+       MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px
+}
+P {
+       MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px
+}
+BODY {
+       FONT-SIZE: 10.5pt; COLOR: #000080; LINE-HEIGHT: 1.5; FONT-FAMILY: =CB=CE=
+=CC=E5
+}
+</STYLE>
+
+<META content=3D"MSHTML 6.00.2900.5512" name=3DGENERATOR></HEAD>
+<BODY style=3D"MARGIN: 10px">
+<DIV>Dear Jan:</DIV>
+<DIV>I didn't check the flipping in JVM, but from the printing period in x=
+en,=20
+this setting happened(unit: ns):</DIV>
+<DIV>976562, 976562, 976562, 976562, 15625000, 976562, 976562, 976562, 976=
+562,=20
+15625000 .....</DIV>
+<DIV>and someone told me windows use these two rate/period only.</DIV>
+<DIV>&nbsp;</DIV>
+<DIV>besides, I checked my former simple tester this morning after it ran =
+for a=20
+whole night, it lagged much.</DIV>
+<DIV>so there&nbsp;exists difference&nbsp;between virtualization and=20
+reality.</DIV>
+<HR style=3D"WIDTH: 210px; HEIGHT: 1px" align=3Dleft color=3D#b5c4df SIZE=
+=3D1>
+
+<DIV><SPAN>tupeng212</SPAN></DIV>
+<DIV>&nbsp;</DIV>
+<DIV=20
+style=3D"BORDER-RIGHT: medium none; PADDING-RIGHT: 0cm; BORDER-TOP: #b5c4d=
+f 1pt solid; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; BORDER-LEFT: medium n=
+one; PADDING-TOP: 3pt; BORDER-BOTTOM: medium none">
+<DIV=20
+style=3D"PADDING-RIGHT: 8px; PADDING-LEFT: 8px; FONT-SIZE: 12px; BACKGROUN=
+D: #efefef; PADDING-BOTTOM: 8px; COLOR: #000000; PADDING-TOP: 8px">
+<DIV><B>From:</B>&nbsp;<A href=3D"mailto:JBeulich@suse.com">Jan Beulich</A=
+></DIV>
+<DIV><B>Date:</B>&nbsp;2012-08-16&nbsp;16:22</DIV>
+<DIV><B>To:</B>&nbsp;<A href=3D"mailto:tupeng212@gmail.com">tupeng212</A><=
+/DIV>
+<DIV><B>CC:</B>&nbsp;<A href=3D"mailto:yang.z.zhang@intel.com">Yang Z Zhan=
+g</A>;=20
+<A href=3D"mailto:xen-devel@lists.xen.org">xen-devel</A>; <A=20
+href=3D"mailto:keir@xen.org">Keir Fraser</A>; <A href=3D"mailto:tim@xen.or=
+g">Tim=20
+Deegan</A></DIV>
+<DIV><B>Subject:</B>&nbsp;Re: [Xen-devel] [PATCH, RFC v2] x86/HVM: assorte=
+d RTC=20
+emulation adjustments (was Re: Big Bug:Time in VM goes=20
+slower...)</DIV></DIV></DIV>
+<DIV>
+<DIV>&gt;&gt;&gt;&nbsp;On&nbsp;15.08.12&nbsp;at&nbsp;16:12,&nbsp;tupeng212=
+&nbsp;&lt;tupeng212@gmail.com&gt;&nbsp;wrote:</DIV>
+<DIV>&gt;&nbsp;The&nbsp;results&nbsp;for&nbsp;me&nbsp;were&nbsp;these:</DI=
+V>
+<DIV>&gt;&nbsp;1&nbsp;In&nbsp;my&nbsp;real&nbsp;application&nbsp;environme=
+nt,&nbsp;it&nbsp;worked&nbsp;very&nbsp;well&nbsp;in&nbsp;the&nbsp;former&n=
+bsp;</DIV>
+<DIV>&gt;&nbsp;5mins,&nbsp;much&nbsp;better&nbsp;than&nbsp;before,</DIV>
+<DIV>&gt;&nbsp;&nbsp;but&nbsp;at&nbsp;last&nbsp;it&nbsp;lagged&nbsp;again.=
+&nbsp;I&nbsp;don't&nbsp;know&nbsp;whether&nbsp;it&nbsp;belongs&nbsp;to&nbs=
+p;the&nbsp;two&nbsp;</DIV>
+<DIV>&gt;&nbsp;missed&nbsp;functions.&nbsp;I&nbsp;lack&nbsp;the&nbsp;</DIV=
+>
+<DIV>&gt;&nbsp;&nbsp;ability&nbsp;to&nbsp;figure&nbsp;them&nbsp;out.</DIV>
+<DIV>&nbsp;</DIV>
+<DIV>Did&nbsp;you&nbsp;check&nbsp;whether&nbsp;possibly&nbsp;the&nbsp;gues=
+t&nbsp;kernel&nbsp;started&nbsp;flipping</DIV>
+<DIV>between&nbsp;to&nbsp;rate&nbsp;values?&nbsp;If&nbsp;so,&nbsp;that&nbs=
+p;is&nbsp;something&nbsp;that&nbsp;we&nbsp;could</DIV>
+<DIV>deal&nbsp;with&nbsp;too&nbsp;(yet&nbsp;it&nbsp;might&nbsp;be&nbsp;a&n=
+bsp;bit&nbsp;involved,&nbsp;so&nbsp;I'd&nbsp;like&nbsp;to&nbsp;avoid</DIV>
+<DIV>going&nbsp;that&nbsp;route&nbsp;if&nbsp;it&nbsp;would&nbsp;lead&nbsp;=
+nowhere).</DIV>
+<DIV>&nbsp;</DIV>
+<DIV>Jan</DIV>
+<DIV>&nbsp;</DIV></DIV></BODY></HTML>
+
+------=_001_NextPart451220271581_=------
+
+
+
+--===============4223491905756042710==
+Content-Type: text/plain; charset="us-ascii"
+MIME-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Content-Disposition: inline
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
+--===============4223491905756042710==--
+
+
+
diff --git a/config/examples/test/corpus/<2012081622270760996017@gmail.com> b/config/examples/test/corpus/<2012081622270760996017@gmail.com>
new file mode 100644 (file)
index 0000000..10ec70a
--- /dev/null
@@ -0,0 +1,199 @@
+From xen-devel-bounces@lists.xen.org Thu Aug 16 15:30:48 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 16 Aug 2012 15:30:48 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T215v-0007Su-00
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 16 Aug 2012 15:30:48 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T212d-00058Y-4O; Thu, 16 Aug 2012 14:27:19 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <tupeng212@gmail.com>) id 1T212a-00058K-Jm
+       for xen-devel@lists.xen.org; Thu, 16 Aug 2012 14:27:16 +0000
+Received: from [85.158.138.51:5104] by server-11.bemta-3.messagelabs.com id
+       8F/82-23152-3430D205; Thu, 16 Aug 2012 14:27:15 +0000
+X-Env-Sender: tupeng212@gmail.com
+X-Msg-Ref: server-16.tower-174.messagelabs.com!1345127233!28542382!1
+X-Originating-IP: [209.85.160.45]
+X-SpamReason: No, hits=1.1 required=7.0 tests=HTML_60_70,HTML_MESSAGE,
+       MIME_BASE64_TEXT, MIME_BOUND_NEXTPART, ML_RADAR_SPEW_LINKS_14,
+       RCVD_BY_IP, spamassassin: 
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 19157 invoked from network); 16 Aug 2012 14:27:15 -0000
+Received: from mail-pb0-f45.google.com (HELO mail-pb0-f45.google.com)
+       (209.85.160.45)
+       by server-16.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
+       16 Aug 2012 14:27:15 -0000
+Received: by pbbrp12 with SMTP id rp12so1709119pbb.32
+       for <xen-devel@lists.xen.org>; Thu, 16 Aug 2012 07:27:12 -0700 (PDT)
+DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
+       h=date:from:to:cc:reply-to:subject:references:x-priority:x-guid
+       :x-has-attach:x-mailer:mime-version:message-id:content-type;
+       bh=zitJo3UgaH28bR4YzQPaoUz5nrNBhZKSp4iVUikab6o=;
+       b=mmic8d3vqeu8g2u3f2SD5KGiI4KyptJvdnOeXcYOxtWeOEeH04c7YnOk1bVM6REqVH
+       e7Pz2dSPcNE4mQdgm6Tqt0qc7jEZuLxesYH8KzPayJMO7FfwI2fUArl7pHZghg9Q4FxK
+       bEYaqsVgMjaZ9ODo7Mj5KJ6GcYw8f+vIkWqrcfFDTKnnzEvjPSW6ugoq6A8qFaIZMvEM
+       n9gK2rwTlG2VLPtVPWkKeJgBZoyxRzWZrpROJnBCf5txrzKWef4Bvj2o61oeA7U8SJyc
+       OOpHsE+6IYyfvVX44CeDww/BhJlGmldVjArAYVeLpv00tsfH3lOMIztX0MNvWkUExAaK
+       ujVQ==
+Received: by 10.68.222.167 with SMTP id qn7mr3650364pbc.98.1345127232582;
+       Thu, 16 Aug 2012 07:27:12 -0700 (PDT)
+Received: from root ([115.199.242.186])
+       by mx.google.com with ESMTPS id kt8sm2785434pbc.1.2012.08.16.07.27.05
+       (version=SSLv3 cipher=OTHER); Thu, 16 Aug 2012 07:27:12 -0700 (PDT)
+Date: Thu, 16 Aug 2012 22:27:12 +0800
+From: tupeng212 <tupeng212@gmail.com>
+To: "Jan Beulich" <JBeulich@suse.com>
+References: <502A3BBC0200007800094B68@nat28.tlf.novell.com>, 
+       <2012081522045495397713@gmail.com> <2012081522121039050717@gmail.com>, 
+       <502CC9D702000078000955B9@nat28.tlf.novell.com>
+       <201208162143289686654@gmail.com>, 
+       <502D1C8A0200007800095851@nat28.tlf.novell.com>
+X-Priority: 3
+X-GUID: 4EC6CDED-746D-4104-A8CC-6783C71A3E22
+X-Has-Attach: no
+X-Mailer: Foxmail 7.0.1.87[cn]
+Mime-Version: 1.0
+Message-ID: <2012081622270760996017@gmail.com>
+Cc: Yang Z Zhang <yang.z.zhang@intel.com>, Tim Deegan <tim@xen.org>,
+       Keir Fraser <keir@xen.org>, xen-devel <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+Reply-To: tupeng212 <tupeng212@gmail.com>
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: multipart/mixed; boundary="===============6051636379622459400=="
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,FREEMAIL_FROM,
+       HTML_MESSAGE,RCVD_IN_DNSWL_MED,RP_MATCHES_RCVD,T_DKIM_INVALID,
+       UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH,
+       RFC v2] x86/HVM: assorted RTC emulation adjustments (was Re: Big
+       Bug:Time in VM goes slower...)
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+This is a multi-part message in MIME format.
+
+--===============6051636379622459400==
+Content-Type: multipart/alternative;
+       boundary="----=_001_NextPart846642126284_=----"
+
+This is a multi-part message in MIME format.
+
+------=_001_NextPart846642126284_=----
+Content-Type: text/plain;
+       charset="gb2312"
+Content-Transfer-Encoding: base64
+
+T2theSwgc29tZSBiYWNrIGFuZCBmb3J0aCBpcyB0aGVyZSBpbiBhbnkgY2FzZSwgYnV0IHdpdGhv
+dXQNCmtub3dpbmcgdGhlIHRpbWUgZGlzdGFuY2UgYmV0d2VlbiB0aGUgaW5kaXZpZHVhbCBpbnN0
+YW5jZXMgaXQncw0KaGFyZCB0byB0ZWxsIHdoZXRoZXIgd2hhdCBJJ20gdGhpbmtpbmcgb2YgbWln
+aHQgaGVscC4NCg0KPiBiZXNpZGVzLCBJIGNoZWNrZWQgbXkgZm9ybWVyIHNpbXBsZSB0ZXN0ZXIg
+dGhpcyBtb3JuaW5nIGFmdGVyIGl0IHJhbiBmb3IgYSANCj4gd2hvbGUgbmlnaHQsIGl0IGxhZ2dl
+ZCBtdWNoLg0KDQpDb3VsZCB5b3UgYnR3IHF1YW50aWZ5IHRoZSBsYWdnaW5nPyANCi8vIEkgZGlk
+bid0IHBheSBhdHRlbnRpb24gdG8gaXQsIGJ1dCBhYm91dCBoYWxmIGFuIGhvdXIncyBsYWdnaW5n
+IGNlcnRhaW5seSBleGlzdC4gDQp3aGVuIHlvdSB3aWxsIGdvIGhvbWUsIHlvdSBjYW4gYWxzbyBo
+YXZlIGEgdHJ5IHRvIHNlZSByZXN1bHQgdG9tb3Jyb3cgbW9ybmluZy4NCg0KWW91ciB0ZXN0ZXIg
+c2V0cyBvbmx5IGEgc2luZ2xlLCBjb25zdGFudCByYXRlIHJlcGVhdGVkbHksIHJpZ2h0PyAvL3ll
+cywgdGhlIHNpbXBsZXN0IHRlc3QganVzdCBzZXR0aW5nIGEgc2luZ2xlIDEwMDAwIGRvd24gcmVw
+ZWF0bHkuDQpJZiBzbywgdGhlbiB0aGUgdGhvdWdodCBvZiBhZGp1c3RtZW50IGxpa2VseSB3b24n
+dCBoZWxwLg==
+
+------=_001_NextPart846642126284_=----
+Content-Type: text/html;
+       charset="gb2312"
+Content-Transfer-Encoding: quoted-printable
+
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<HTML><HEAD>
+<META http-equiv=3DContent-Type content=3D"text/html; charset=3DGB2312">
+<STYLE>
+BLOCKQUOTE {
+       MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; MARGIN-LEFT: 2em
+}
+OL {
+       MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px
+}
+UL {
+       MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px
+}
+P {
+       MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px
+}
+BODY {
+       FONT-SIZE: 10.5pt; COLOR: #000080; LINE-HEIGHT: 1.5; FONT-FAMILY: =CB=CE=
+=CC=E5
+}
+</STYLE>
+
+<META content=3D"MSHTML 6.00.2900.5512" name=3DGENERATOR></HEAD>
+<BODY style=3D"MARGIN: 10px">
+<DIV>
+<DIV>Okay,&nbsp;some&nbsp;back&nbsp;and&nbsp;forth&nbsp;is&nbsp;there&nbsp=
+;in&nbsp;any&nbsp;case,&nbsp;but&nbsp;without</DIV>
+<DIV>knowing&nbsp;the&nbsp;time&nbsp;distance&nbsp;between&nbsp;the&nbsp;i=
+ndividual&nbsp;instances&nbsp;it's</DIV>
+<DIV>hard&nbsp;to&nbsp;tell&nbsp;whether&nbsp;what&nbsp;I'm&nbsp;thinking&=
+nbsp;of&nbsp;might&nbsp;help.</DIV>
+<DIV>&nbsp;</DIV>
+<DIV>&gt;&nbsp;besides,&nbsp;I&nbsp;checked&nbsp;my&nbsp;former&nbsp;simpl=
+e&nbsp;tester&nbsp;this&nbsp;morning&nbsp;after&nbsp;it&nbsp;ran&nbsp;for&=
+nbsp;a&nbsp;</DIV>
+<DIV>&gt;&nbsp;whole&nbsp;night,&nbsp;it&nbsp;lagged&nbsp;much.</DIV>
+<DIV>&nbsp;</DIV>
+<DIV>Could&nbsp;you&nbsp;btw&nbsp;quantify&nbsp;the&nbsp;lagging? </DIV>
+<DIV>// I didn't pay attention to it, but about&nbsp;half an hour's laggin=
+g=20
+certainly exist.&nbsp;</DIV>
+<DIV>when you will go home, you can also&nbsp;have a try to see result tom=
+orrow=20
+morning.</DIV>
+<DIV>&nbsp;</DIV>
+<DIV>Your&nbsp;tester&nbsp;sets&nbsp;only&nbsp;a&nbsp;single,&nbsp;constan=
+t&nbsp;rate&nbsp;repeatedly,&nbsp;right?=20
+//yes, the simplest test just setting a single&nbsp;10000 down repeatly.</=
+DIV>
+<DIV>If&nbsp;so,&nbsp;then&nbsp;the&nbsp;thought&nbsp;of&nbsp;adjustment&n=
+bsp;likely&nbsp;won't&nbsp;help.</DIV></DIV>
+<DIV>&nbsp;</DIV></BODY></HTML>
+
+------=_001_NextPart846642126284_=------
+
+
+
+--===============6051636379622459400==
+Content-Type: text/plain; charset="us-ascii"
+MIME-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Content-Disposition: inline
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
+--===============6051636379622459400==--
+
+
+
diff --git a/config/examples/test/corpus/<20120817173911.GB11688@phenom.dumpdata.com> b/config/examples/test/corpus/<20120817173911.GB11688@phenom.dumpdata.com>
new file mode 100644 (file)
index 0000000..9ace882
--- /dev/null
@@ -0,0 +1,249 @@
+From xen-devel-bounces@lists.xen.org Fri Aug 17 18:53:28 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 17 Aug 2012 18:53:28 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T2Qjd-0000cI-PZ
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 17 Aug 2012 18:53:28 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T2QfU-0001Kw-Tg; Fri, 17 Aug 2012 17:49:08 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <konrad.wilk@oracle.com>) id 1T2QfT-0001Kl-00
+       for xen-devel@lists.xensource.com; Fri, 17 Aug 2012 17:49:07 +0000
+Received: from [85.158.143.35:61230] by server-3.bemta-4.messagelabs.com id
+       8F/F2-09529-2148E205; Fri, 17 Aug 2012 17:49:06 +0000
+X-Env-Sender: konrad.wilk@oracle.com
+X-Msg-Ref: server-2.tower-21.messagelabs.com!1345225744!6283034!1
+X-Originating-IP: [141.146.126.227]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogMTQxLjE0Ni4xMjYuMjI3ID0+IDcwNDM2NA==\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 11513 invoked from network); 17 Aug 2012 17:49:05 -0000
+Received: from acsinet15.oracle.com (HELO acsinet15.oracle.com)
+       (141.146.126.227)
+       by server-2.tower-21.messagelabs.com with DHE-RSA-AES256-SHA encrypted
+       SMTP; 17 Aug 2012 17:49:05 -0000
+Received: from acsinet22.oracle.com (acsinet22.oracle.com [141.146.126.238])
+       by acsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
+       ESMTP id q7HHn1mM005325
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
+       Fri, 17 Aug 2012 17:49:02 GMT
+Received: from acsmt358.oracle.com (acsmt358.oracle.com [141.146.40.158])
+       by acsinet22.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
+       q7HHn1v3001039
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
+       Fri, 17 Aug 2012 17:49:01 GMT
+Received: from abhmt102.oracle.com (abhmt102.oracle.com [141.146.116.54])
+       by acsmt358.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
+       q7HHn0li004654; Fri, 17 Aug 2012 12:49:00 -0500
+Received: from phenom.dumpdata.com (/209.6.85.33)
+       by default (Oracle Beehive Gateway v4.0)
+       with ESMTP ; Fri, 17 Aug 2012 10:49:00 -0700
+Received: by phenom.dumpdata.com (Postfix, from userid 1000)
+       id D9420402D7; Fri, 17 Aug 2012 13:39:11 -0400 (EDT)
+Date: Fri, 17 Aug 2012 13:39:11 -0400
+From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+To: linux-kernel@vger.kernel.org, xen-devel@lists.xensource.com
+Message-ID: <20120817173911.GB11688@phenom.dumpdata.com>
+References: <1345133009-21941-1-git-send-email-konrad.wilk@oracle.com>
+MIME-Version: 1.0
+Content-Disposition: inline
+In-Reply-To: <1345133009-21941-1-git-send-email-konrad.wilk@oracle.com>
+User-Agent: Mutt/1.5.21 (2010-09-15)
+X-Source-IP: acsinet22.oracle.com [141.146.126.238]
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
+Subject: Re: [Xen-devel] [PATCH] Boot PV guests with more than 128GB (v3)
+       for v3.7.
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Thu, Aug 16, 2012 at 12:03:18PM -0400, Konrad Rzeszutek Wilk wrote:
+> Since (v2): http://lists.xen.org/archives/html/xen-devel/2012-07/msg01864.html
+>  - fixed a bug if guest booted with non-PMD aligned size (say, 899MB).
+>  - fixed smack warnings
+>  - moved a memset(xen_start_info->mfn_list, 0xff,.. ) from one patch to another.
+
+And two more bug-fixes:
+
+>From f042050664c97a365e98daf5783f682d734e35f8 Mon Sep 17 00:00:00 2001
+From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+Date: Thu, 16 Aug 2012 16:38:55 -0400
+Subject: [PATCH 1/2] xen/p2m: When revectoring deal with holes in the P2M
+ array.
+
+When we free the PFNs and then subsequently populate them back
+during bootup:
+
+Freeing 20000-20200 pfn range: 512 pages freed
+1-1 mapping on 20000->20200
+Freeing 40000-40200 pfn range: 512 pages freed
+1-1 mapping on 40000->40200
+Freeing bad80-badf4 pfn range: 116 pages freed
+1-1 mapping on bad80->badf4
+Freeing badf6-bae7f pfn range: 137 pages freed
+1-1 mapping on badf6->bae7f
+Freeing bb000-100000 pfn range: 282624 pages freed
+1-1 mapping on bb000->100000
+Released 283999 pages of unused memory
+Set 283999 page(s) to 1-1 mapping
+Populating 1acb8a-1f20e9 pfn range: 283999 pages added
+
+We end up having the P2M array (that is the one that was
+grafted on the P2M tree) filled with IDENTITY_FRAME or
+INVALID_P2M_ENTRY) entries. The patch titled
+
+"xen/p2m: Reuse existing P2M leafs if they are filled with 1:1 PFNs or INVALID."
+recycles said slots and replaces the P2M tree leaf's with
+ &mfn_list[xx] with p2m_identity or p2m_missing.
+
+And re-uses the P2M array sections for other P2M tree leaf's.
+For the above mentioned bootup excerpt, the PFNs at
+0x20000->0x20200 are going to be IDENTITY based:
+
+P2M[0][256][0] -> P2M[0][257][0] get turned in IDENTITY_FRAME.
+
+We can re-use that and replace P2M[0][256] to point to p2m_identity.
+The "old" page (the grafted P2M array provided by Xen) that was at
+P2M[0][256] gets put somewhere else. Specifically at P2M[6][358],
+b/c when we populate back:
+
+Populating 1acb8a-1f20e9 pfn range: 283999 pages added
+
+we fill P2M[6][358][0] (and P2M[6][358], P2M[6][359], ...) with
+the new MFNs.
+
+That is all OK, except when we revector we assume that the PFN
+count would be the same in the grafted P2M array and in the
+newly allocated. Since that is no longer the case, as we have
+holes in the P2M that point to p2m_missing or p2m_identity we
+have to take that into account.
+
+[v2: Check for overflow]
+Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+---
+ arch/x86/xen/p2m.c |   14 +++++++++++---
+ 1 files changed, 11 insertions(+), 3 deletions(-)
+
+diff --git a/arch/x86/xen/p2m.c b/arch/x86/xen/p2m.c
+index bbfd085..3b5bd7e 100644
+--- a/arch/x86/xen/p2m.c
++++ b/arch/x86/xen/p2m.c
+@@ -401,6 +401,7 @@ unsigned long __init xen_revector_p2m_tree(void)
+       unsigned long va_start;
+       unsigned long va_end;
+       unsigned long pfn;
++      unsigned long pfn_free = 0;
+       unsigned long *mfn_list = NULL;
+       unsigned long size;
+@@ -443,15 +444,22 @@ unsigned long __init xen_revector_p2m_tree(void)
+               if ((unsigned long)mid_p == INVALID_P2M_ENTRY)
+                       continue;
++              if ((pfn_free + P2M_PER_PAGE) * PAGE_SIZE > size) {
++                      WARN(1, "Only allocated for %ld pages, but we want %ld!\n",
++                           size, pfn_free + P2M_PER_PAGE);
++                      return 0;
++              }
+               /* The old va. Rebase it on mfn_list */
+               if (mid_p >= (unsigned long *)va_start && mid_p <= (unsigned long *)va_end) {
+                       unsigned long *new;
+-                      new = &mfn_list[pfn];
++                      new = &mfn_list[pfn_free];
+                       copy_page(new, mid_p);
+-                      p2m_top[topidx][mididx] = &mfn_list[pfn];
+-                      p2m_top_mfn_p[topidx][mididx] = virt_to_mfn(&mfn_list[pfn]);
++                      p2m_top[topidx][mididx] = &mfn_list[pfn_free];
++                      p2m_top_mfn_p[topidx][mididx] = virt_to_mfn(&mfn_list[pfn_free]);
++
++                      pfn_free += P2M_PER_PAGE;
+               }
+               /* This should be the leafs allocated for identity from _brk. */
+-- 
+1.7.7.6
+
+
+
+>From 60a9b396456a2990bb3490671ca832d36e8dd6aa Mon Sep 17 00:00:00 2001
+From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+Date: Fri, 17 Aug 2012 09:35:31 -0400
+Subject: [PATCH 2/2] xen/mmu: If the revector fails, don't attempt to
+ revector anything else.
+
+If the P2M revectoring would fail, we would try to continue on by
+cleaning the PMD for L1 (PTE) page-tables. The xen_cleanhighmap
+is greedy and erases the PMD on both boundaries. Since the P2M
+array can share the PMD, we would wipe out part of the __ka
+that is still used in the P2M tree to point to P2M leafs.
+
+This fixes it by bypassing the revectoring and continuing on.
+If the revector fails, a nice WARN is printed so we can still
+troubleshoot this.
+
+Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+---
+ arch/x86/xen/mmu.c |    4 +++-
+ 1 files changed, 3 insertions(+), 1 deletions(-)
+
+diff --git a/arch/x86/xen/mmu.c b/arch/x86/xen/mmu.c
+index 6019c22..0dac3d2 100644
+--- a/arch/x86/xen/mmu.c
++++ b/arch/x86/xen/mmu.c
+@@ -1238,7 +1238,8 @@ static void __init xen_pagetable_setup_done(pgd_t *base)
+                       memblock_free(__pa(xen_start_info->mfn_list), size);
+                       /* And revector! Bye bye old array */
+                       xen_start_info->mfn_list = new_mfn_list;
+-              }
++              } else
++                      goto skip;
+       }
+       /* At this stage, cleanup_highmap has already cleaned __ka space
+        * from _brk_limit way up to the max_pfn_mapped (which is the end of
+@@ -1259,6 +1260,7 @@ static void __init xen_pagetable_setup_done(pgd_t *base)
+        * anything at this stage. */
+       xen_cleanhighmap(MODULES_VADDR, roundup(MODULES_VADDR, PUD_SIZE) - 1);
+ #endif
++skip:
+ #endif
+       xen_post_allocator_init();
+ }
+-- 
+1.7.7.6
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<20120817174549.GA14257@phenom.dumpdata.com> b/config/examples/test/corpus/<20120817174549.GA14257@phenom.dumpdata.com>
new file mode 100644 (file)
index 0000000..fcc64f6
--- /dev/null
@@ -0,0 +1,194 @@
+From xen-devel-bounces@lists.xen.org Fri Aug 17 18:59:43 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 17 Aug 2012 18:59:43 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T2Qph-0000di-Fv
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 17 Aug 2012 18:59:43 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T2Qlw-0001ay-R4; Fri, 17 Aug 2012 17:55:48 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <konrad.wilk@oracle.com>) id 1T2Qlv-0001aq-1e
+       for xen-devel@lists.xensource.com; Fri, 17 Aug 2012 17:55:47 +0000
+Received: from [85.158.139.83:56026] by server-7.bemta-5.messagelabs.com id
+       09/BB-32634-2A58E205; Fri, 17 Aug 2012 17:55:46 +0000
+X-Env-Sender: konrad.wilk@oracle.com
+X-Msg-Ref: server-11.tower-182.messagelabs.com!1345226144!21493654!1
+X-Originating-IP: [148.87.113.117]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogMTQ4Ljg3LjExMy4xMTcgPT4gNjk2OTUy\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 18993 invoked from network); 17 Aug 2012 17:55:45 -0000
+Received: from rcsinet15.oracle.com (HELO rcsinet15.oracle.com)
+       (148.87.113.117)
+       by server-11.tower-182.messagelabs.com with DHE-RSA-AES256-SHA
+       encrypted SMTP; 17 Aug 2012 17:55:45 -0000
+Received: from acsinet21.oracle.com (acsinet21.oracle.com [141.146.126.237])
+       by rcsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
+       ESMTP id q7HHtevZ022752
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
+       Fri, 17 Aug 2012 17:55:41 GMT
+Received: from acsmt358.oracle.com (acsmt358.oracle.com [141.146.40.158])
+       by acsinet21.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
+       q7HHtd2P023403
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
+       Fri, 17 Aug 2012 17:55:40 GMT
+Received: from abhmt110.oracle.com (abhmt110.oracle.com [141.146.116.62])
+       by acsmt358.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
+       q7HHtdvp008840; Fri, 17 Aug 2012 12:55:39 -0500
+Received: from phenom.dumpdata.com (/209.6.85.33)
+       by default (Oracle Beehive Gateway v4.0)
+       with ESMTP ; Fri, 17 Aug 2012 10:55:39 -0700
+Received: by phenom.dumpdata.com (Postfix, from userid 1000)
+       id 4D046402D7; Fri, 17 Aug 2012 13:45:49 -0400 (EDT)
+Date: Fri, 17 Aug 2012 13:45:49 -0400
+From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+Message-ID: <20120817174549.GA14257@phenom.dumpdata.com>
+References: <1345133009-21941-1-git-send-email-konrad.wilk@oracle.com>
+       <1345133009-21941-7-git-send-email-konrad.wilk@oracle.com>
+       <alpine.DEB.2.02.1208171839590.15568@kaball.uk.xensource.com>
+MIME-Version: 1.0
+Content-Disposition: inline
+In-Reply-To: <alpine.DEB.2.02.1208171839590.15568@kaball.uk.xensource.com>
+User-Agent: Mutt/1.5.21 (2010-09-15)
+X-Source-IP: acsinet21.oracle.com [141.146.126.237]
+Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
+       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 06/11] xen/mmu: For 64-bit do not call
+ xen_map_identity_early
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Fri, Aug 17, 2012 at 06:41:23PM +0100, Stefano Stabellini wrote:
+> On Thu, 16 Aug 2012, Konrad Rzeszutek Wilk wrote:
+> > B/c we do not need it. During the startup the Xen provides
+> > us with all the memory mapped that we need to function.
+> 
+> Shouldn't we check to make sure that is actually true (I am thinking at
+> nr_pt_frames)?
+
+I was looking at the source code (hypervisor) to figure it out and
+that is certainly true.
+
+
+> Or is it actually stated somewhere in the Xen headers?
+
+Couldn't find it, but after looking so long at the source code
+I didn't even bother looking for it.
+
+Thought to be honest - I only looked at how the 64-bit pagetables
+were set up, so I didn't dare to touch the 32-bit. Hence the #ifdef
+
+> 
+> 
+> 
+> > Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+> > ---
+> >  arch/x86/xen/mmu.c |   11 +++++------
+> >  1 files changed, 5 insertions(+), 6 deletions(-)
+> > 
+> > diff --git a/arch/x86/xen/mmu.c b/arch/x86/xen/mmu.c
+> > index 7247e5a..a59070b 100644
+> > --- a/arch/x86/xen/mmu.c
+> > +++ b/arch/x86/xen/mmu.c
+> > @@ -84,6 +84,7 @@
+> >   */
+> >  DEFINE_SPINLOCK(xen_reservation_lock);
+> >  
+> > +#ifdef CONFIG_X86_32
+> >  /*
+> >   * Identity map, in addition to plain kernel map.  This needs to be
+> >   * large enough to allocate page table pages to allocate the rest.
+> > @@ -91,7 +92,7 @@ DEFINE_SPINLOCK(xen_reservation_lock);
+> >   */
+> >  #define LEVEL1_IDENT_ENTRIES      (PTRS_PER_PTE * 4)
+> >  static RESERVE_BRK_ARRAY(pte_t, level1_ident_pgt, LEVEL1_IDENT_ENTRIES);
+> > -
+> > +#endif
+> >  #ifdef CONFIG_X86_64
+> >  /* l3 pud for userspace vsyscall mapping */
+> >  static pud_t level3_user_vsyscall[PTRS_PER_PUD] __page_aligned_bss;
+> > @@ -1628,7 +1629,7 @@ static void set_page_prot(void *addr, pgprot_t prot)
+> >    if (HYPERVISOR_update_va_mapping((unsigned long)addr, pte, 0))
+> >            BUG();
+> >  }
+> > -
+> > +#ifdef CONFIG_X86_32
+> >  static void __init xen_map_identity_early(pmd_t *pmd, unsigned long max_pfn)
+> >  {
+> >    unsigned pmdidx, pteidx;
+> > @@ -1679,7 +1680,7 @@ static void __init xen_map_identity_early(pmd_t *pmd, unsigned long max_pfn)
+> >  
+> >    set_page_prot(pmd, PAGE_KERNEL_RO);
+> >  }
+> > -
+> > +#endif
+> >  void __init xen_setup_machphys_mapping(void)
+> >  {
+> >    struct xen_machphys_mapping mapping;
+> > @@ -1765,14 +1766,12 @@ void __init xen_setup_kernel_pagetable(pgd_t *pgd, unsigned long max_pfn)
+> >    /* Note that we don't do anything with level1_fixmap_pgt which
+> >     * we don't need. */
+> >  
+> > -  /* Set up identity map */
+> > -  xen_map_identity_early(level2_ident_pgt, max_pfn);
+> > -
+> >    /* Make pagetable pieces RO */
+> >    set_page_prot(init_level4_pgt, PAGE_KERNEL_RO);
+> >    set_page_prot(level3_ident_pgt, PAGE_KERNEL_RO);
+> >    set_page_prot(level3_kernel_pgt, PAGE_KERNEL_RO);
+> >    set_page_prot(level3_user_vsyscall, PAGE_KERNEL_RO);
+> > +  set_page_prot(level2_ident_pgt, PAGE_KERNEL_RO);
+> >    set_page_prot(level2_kernel_pgt, PAGE_KERNEL_RO);
+> >    set_page_prot(level2_fixmap_pgt, PAGE_KERNEL_RO);
+> >  
+> > -- 
+> > 1.7.7.6
+> > 
+> > 
+> > _______________________________________________
+> > Xen-devel mailing list
+> > Xen-devel@lists.xen.org
+> > http://lists.xen.org/xen-devel
+> > 
+> --
+> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
+> the body of a message to majordomo@vger.kernel.org
+> More majordomo info at  http://vger.kernel.org/majordomo-info.html
+> Please read the FAQ at  http://www.tux.org/lkml/
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<20120817180557.GA18579@phenom.dumpdata.com> b/config/examples/test/corpus/<20120817180557.GA18579@phenom.dumpdata.com>
new file mode 100644 (file)
index 0000000..d1269d0
--- /dev/null
@@ -0,0 +1,226 @@
+From xen-devel-bounces@lists.xen.org Fri Aug 17 19:20:15 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 17 Aug 2012 19:20:15 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T2R9Y-0000ir-H1
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 17 Aug 2012 19:20:15 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T2R5Q-00023m-9S; Fri, 17 Aug 2012 18:15:56 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <konrad.wilk@oracle.com>) id 1T2R5O-00023h-Vu
+       for xen-devel@lists.xensource.com; Fri, 17 Aug 2012 18:15:55 +0000
+Received: from [85.158.143.99:26465] by server-2.bemta-4.messagelabs.com id
+       50/B1-31966-A5A8E205; Fri, 17 Aug 2012 18:15:54 +0000
+X-Env-Sender: konrad.wilk@oracle.com
+X-Msg-Ref: server-11.tower-216.messagelabs.com!1345227352!21219154!1
+X-Originating-IP: [141.146.126.227]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogMTQxLjE0Ni4xMjYuMjI3ID0+IDcwNDM2NA==\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 31151 invoked from network); 17 Aug 2012 18:15:53 -0000
+Received: from acsinet15.oracle.com (HELO acsinet15.oracle.com)
+       (141.146.126.227)
+       by server-11.tower-216.messagelabs.com with DHE-RSA-AES256-SHA
+       encrypted SMTP; 17 Aug 2012 18:15:53 -0000
+Received: from acsinet22.oracle.com (acsinet22.oracle.com [141.146.126.238])
+       by acsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
+       ESMTP id q7HIFlSO029866
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
+       Fri, 17 Aug 2012 18:15:47 GMT
+Received: from acsmt356.oracle.com (acsmt356.oracle.com [141.146.40.156])
+       by acsinet22.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
+       q7HIFkYK007116
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
+       Fri, 17 Aug 2012 18:15:47 GMT
+Received: from abhmt110.oracle.com (abhmt110.oracle.com [141.146.116.62])
+       by acsmt356.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
+       q7HIFkim008098; Fri, 17 Aug 2012 13:15:46 -0500
+Received: from phenom.dumpdata.com (/209.6.85.33)
+       by default (Oracle Beehive Gateway v4.0)
+       with ESMTP ; Fri, 17 Aug 2012 11:15:46 -0700
+Received: by phenom.dumpdata.com (Postfix, from userid 1000)
+       id 8107F402D7; Fri, 17 Aug 2012 14:05:57 -0400 (EDT)
+Date: Fri, 17 Aug 2012 14:05:57 -0400
+From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+Message-ID: <20120817180557.GA18579@phenom.dumpdata.com>
+References: <1345133009-21941-1-git-send-email-konrad.wilk@oracle.com>
+       <1345133009-21941-8-git-send-email-konrad.wilk@oracle.com>
+       <alpine.DEB.2.02.1208171902320.15568@kaball.uk.xensource.com>
+MIME-Version: 1.0
+Content-Disposition: inline
+In-Reply-To: <alpine.DEB.2.02.1208171902320.15568@kaball.uk.xensource.com>
+User-Agent: Mutt/1.5.21 (2010-09-15)
+X-Source-IP: acsinet22.oracle.com [141.146.126.238]
+Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
+       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 07/11] xen/mmu: Recycle the Xen provided L4,
+ L3, and L2 pages
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Fri, Aug 17, 2012 at 07:07:28PM +0100, Stefano Stabellini wrote:
+> On Thu, 16 Aug 2012, Konrad Rzeszutek Wilk wrote:
+> > As we are not using them. We end up only using the L1 pagetables
+> > and grafting those to our page-tables.
+> > 
+> > [v1: Per Stefano's suggestion squashed two commits]
+> > [v2: Per Stefano's suggestion simplified loop]
+> > [v3: Fix smatch warnings]
+> > Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+> > ---
+> >  arch/x86/xen/mmu.c |   40 +++++++++++++++++++++++++++++++++-------
+> >  1 files changed, 33 insertions(+), 7 deletions(-)
+> > 
+> > diff --git a/arch/x86/xen/mmu.c b/arch/x86/xen/mmu.c
+> > index a59070b..bd92c82 100644
+> > --- a/arch/x86/xen/mmu.c
+> > +++ b/arch/x86/xen/mmu.c
+> > @@ -1708,7 +1708,20 @@ static void convert_pfn_mfn(void *v)
+> >    for (i = 0; i < PTRS_PER_PTE; i++)
+> >            pte[i] = xen_make_pte(pte[i].pte);
+> >  }
+> > -
+> > +static void __init check_pt_base(unsigned long *pt_base, unsigned long *pt_end,
+> > +                           unsigned long addr)
+> > +{
+> > +  if (*pt_base == PFN_DOWN(__pa(addr))) {
+> > +          set_page_prot((void *)addr, PAGE_KERNEL);
+> > +          clear_page((void *)addr);
+> > +          (*pt_base)++;
+> > +  }
+> > +  if (*pt_end == PFN_DOWN(__pa(addr))) {
+> > +          set_page_prot((void *)addr, PAGE_KERNEL);
+> > +          clear_page((void *)addr);
+> > +          (*pt_end)--;
+> > +  }
+> > +}
+> >  /*
+> >   * Set up the initial kernel pagetable.
+> >   *
+> > @@ -1724,6 +1737,9 @@ void __init xen_setup_kernel_pagetable(pgd_t *pgd, unsigned long max_pfn)
+> >  {
+> >    pud_t *l3;
+> >    pmd_t *l2;
+> > +  unsigned long addr[3];
+> > +  unsigned long pt_base, pt_end;
+> > +  unsigned i;
+> >  
+> >    /* max_pfn_mapped is the last pfn mapped in the initial memory
+> >     * mappings. Considering that on Xen after the kernel mappings we
+> > @@ -1731,6 +1747,9 @@ void __init xen_setup_kernel_pagetable(pgd_t *pgd, unsigned long max_pfn)
+> >     * set max_pfn_mapped to the last real pfn mapped. */
+> >    max_pfn_mapped = PFN_DOWN(__pa(xen_start_info->mfn_list));
+> >  
+> > +  pt_base = PFN_DOWN(__pa(xen_start_info->pt_base));
+> > +  pt_end = PFN_DOWN(__pa(xen_start_info->pt_base + (xen_start_info->nr_pt_frames * PAGE_SIZE)));
+> 
+
+or just do:
+
+       pt_end = pt_base + xen_start_info->nr_pt_frames;
+
+> code style
+> 
+> >    /* Zap identity mapping */
+> >    init_level4_pgt[0] = __pgd(0);
+> >  
+> > @@ -1749,6 +1768,9 @@ void __init xen_setup_kernel_pagetable(pgd_t *pgd, unsigned long max_pfn)
+> >    l3 = m2v(pgd[pgd_index(__START_KERNEL_map)].pgd);
+> >    l2 = m2v(l3[pud_index(__START_KERNEL_map)].pud);
+> >  
+> > +  addr[0] = (unsigned long)pgd;
+> > +  addr[1] = (unsigned long)l3;
+> > +  addr[2] = (unsigned long)l2;
+> >    /* Graft it onto L4[272][0]. Note that we creating an aliasing problem:
+> >     * Both L4[272][0] and L4[511][511] have entries that point to the same
+> >     * L2 (PMD) tables. Meaning that if you modify it in __va space
+> > @@ -1782,20 +1804,24 @@ void __init xen_setup_kernel_pagetable(pgd_t *pgd, unsigned long max_pfn)
+> >    /* Unpin Xen-provided one */
+> >    pin_pagetable_pfn(MMUEXT_UNPIN_TABLE, PFN_DOWN(__pa(pgd)));
+> >  
+> > -  /* Switch over */
+> > -  pgd = init_level4_pgt;
+> > -
+> >    /*
+> >     * At this stage there can be no user pgd, and no page
+> >     * structure to attach it to, so make sure we just set kernel
+> >     * pgd.
+> >     */
+> >    xen_mc_batch();
+> > -  __xen_write_cr3(true, __pa(pgd));
+> > +  __xen_write_cr3(true, __pa(init_level4_pgt));
+> >    xen_mc_issue(PARAVIRT_LAZY_CPU);
+> >  
+> > -  memblock_reserve(__pa(xen_start_info->pt_base),
+> > -                   xen_start_info->nr_pt_frames * PAGE_SIZE);
+> > +  /* We can't that easily rip out L3 and L2, as the Xen pagetables are
+> > +   * set out this way: [L4], [L1], [L2], [L3], [L1], [L1] ...  for
+> > +   * the initial domain. For guests using the toolstack, they are in:
+> > +   * [L4], [L3], [L2], [L1], [L1], order .. */
+> > +  for (i = 0; i < ARRAY_SIZE(addr); i++)
+> > +          check_pt_base(&pt_base, &pt_end, addr[i]);
+> 
+> It is much clearer now, but if the comment is correct, doesn't it mean
+> that we are going to be able to free pgd, l3 and l2 only in the non-dom0
+> case?
+
+And in dom0 case only PGD.
+
+> If so it might be worth saying it explicitly.
+
+OK.
+> 
+> Other than that, it is fine by me.
+> 
+> 
+> > +  /* Our (by three pages) smaller Xen pagetable that we are using */
+> > +  memblock_reserve(PFN_PHYS(pt_base), (pt_end - pt_base) * PAGE_SIZE);
+> >  }
+> >  #else     /* !CONFIG_X86_64 */
+> >  static RESERVE_BRK_ARRAY(pmd_t, initial_kernel_pmd, PTRS_PER_PMD);
+> > -- 
+> > 1.7.7.6
+> > 
+> > 
+> > _______________________________________________
+> > Xen-devel mailing list
+> > Xen-devel@lists.xen.org
+> > http://lists.xen.org/xen-devel
+> > 
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<20120820120649.GI13755@localhost.localdomain> b/config/examples/test/corpus/<20120820120649.GI13755@localhost.localdomain>
new file mode 100644 (file)
index 0000000..77d6c3c
--- /dev/null
@@ -0,0 +1,147 @@
+From xen-devel-bounces@lists.xen.org Mon Aug 20 13:11:43 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Mon, 20 Aug 2012 13:11:43 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T3QpZ-0000I0-P1
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Mon, 20 Aug 2012 13:11:43 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T3QlD-0001hf-Sm; Mon, 20 Aug 2012 12:07:11 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <konrad.wilk@oracle.com>) id 1T3QlC-0001hX-Ru
+       for xen-devel@lists.xensource.com; Mon, 20 Aug 2012 12:07:11 +0000
+Received: from [85.158.139.83:3266] by server-12.bemta-5.messagelabs.com id
+       02/99-22359-E6822305; Mon, 20 Aug 2012 12:07:10 +0000
+X-Env-Sender: konrad.wilk@oracle.com
+X-Msg-Ref: server-13.tower-182.messagelabs.com!1345464425!28526248!1
+X-Originating-IP: [141.146.126.227]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogMTQxLjE0Ni4xMjYuMjI3ID0+IDcwNzI2NA==\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 2450 invoked from network); 20 Aug 2012 12:07:07 -0000
+Received: from acsinet15.oracle.com (HELO acsinet15.oracle.com)
+       (141.146.126.227)
+       by server-13.tower-182.messagelabs.com with DHE-RSA-AES256-SHA
+       encrypted SMTP; 20 Aug 2012 12:07:07 -0000
+Received: from ucsinet22.oracle.com (ucsinet22.oracle.com [156.151.31.94])
+       by acsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
+       ESMTP id q7KC6xD2028229
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
+       Mon, 20 Aug 2012 12:07:00 GMT
+Received: from acsmt356.oracle.com (acsmt356.oracle.com [141.146.40.156])
+       by ucsinet22.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
+       q7KC6wBQ002996
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
+       Mon, 20 Aug 2012 12:06:59 GMT
+Received: from abhmt114.oracle.com (abhmt114.oracle.com [141.146.116.66])
+       by acsmt356.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
+       q7KC6vH9016635; Mon, 20 Aug 2012 07:06:57 -0500
+Received: from localhost.localdomain (/209.6.85.33)
+       by default (Oracle Beehive Gateway v4.0)
+       with ESMTP ; Mon, 20 Aug 2012 05:06:57 -0700
+Date: Mon, 20 Aug 2012 08:06:49 -0400
+From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+Message-ID: <20120820120649.GI13755@localhost.localdomain>
+References: <1345133009-21941-1-git-send-email-konrad.wilk@oracle.com>
+       <1345133009-21941-7-git-send-email-konrad.wilk@oracle.com>
+       <alpine.DEB.2.02.1208171839590.15568@kaball.uk.xensource.com>
+       <20120817174549.GA14257@phenom.dumpdata.com>
+       <alpine.DEB.2.02.1208201243180.15568@kaball.uk.xensource.com>
+       <1345463624.28762.67.camel@zakaz.uk.xensource.com>
+       <alpine.DEB.2.02.1208201257420.15568@kaball.uk.xensource.com>
+MIME-Version: 1.0
+Content-Disposition: inline
+In-Reply-To: <alpine.DEB.2.02.1208201257420.15568@kaball.uk.xensource.com>
+User-Agent: Mutt/1.5.21 (2010-09-15)
+X-Source-IP: ucsinet22.oracle.com [156.151.31.94]
+Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
+       Ian Campbell <Ian.Campbell@citrix.com>,
+       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 06/11] xen/mmu: For 64-bit do not call
+ xen_map_identity_early
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Mon, Aug 20, 2012 at 12:58:37PM +0100, Stefano Stabellini wrote:
+> On Mon, 20 Aug 2012, Ian Campbell wrote:
+> > On Mon, 2012-08-20 at 12:45 +0100, Stefano Stabellini wrote:
+> > > On Fri, 17 Aug 2012, Konrad Rzeszutek Wilk wrote:
+> > > > On Fri, Aug 17, 2012 at 06:41:23PM +0100, Stefano Stabellini wrote:
+> > > > > On Thu, 16 Aug 2012, Konrad Rzeszutek Wilk wrote:
+> > > > > > B/c we do not need it. During the startup the Xen provides
+> > > > > > us with all the memory mapped that we need to function.
+> > > > > 
+> > > > > Shouldn't we check to make sure that is actually true (I am thinking at
+> > > > > nr_pt_frames)?
+> > > > 
+> > > > I was looking at the source code (hypervisor) to figure it out and
+> > > > that is certainly true.
+> > > > 
+> > > > 
+> > > > > Or is it actually stated somewhere in the Xen headers?
+> > > > 
+> > > > Couldn't find it, but after looking so long at the source code
+> > > > I didn't even bother looking for it.
+> > > > 
+> > > > Thought to be honest - I only looked at how the 64-bit pagetables
+> > > > were set up, so I didn't dare to touch the 32-bit. Hence the #ifdef
+> > > 
+> > > I think that we need to involve some Xen maintainers and get this
+> > > written down somewhere in the public headers, otherwise we have no
+> > > guarantees that it is going to stay as it is in the next Xen versions.
+> > > 
+> > > Maybe we just need to add a couple of lines of comment to
+> > > xen/include/public/xen.h.
+> > 
+> > The start of day memory layout for PV guests is written down in the
+> > comment just before struct start_info at
+> > http://xenbits.xen.org/docs/unstable/hypercall/include,public,xen.h.html#Struct_start_info
+> > 
+> > (I haven't read this thread to determine if what is documented matches
+> > what you guys are talking about relying on)
+> 
+> but it is not written down how much physical memory is going to be
+> mapped in the bootstrap page tables.
+
+Considering that only pvops kernel has this change I think we are ok?
+> 
+> _______________________________________________
+> Xen-devel mailing list
+> Xen-devel@lists.xen.org
+> http://lists.xen.org/xen-devel
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<20120820141305.GA2713@phenom.dumpdata.com> b/config/examples/test/corpus/<20120820141305.GA2713@phenom.dumpdata.com>
new file mode 100644 (file)
index 0000000..e0da71b
--- /dev/null
@@ -0,0 +1,228 @@
+From xen-devel-bounces@lists.xen.org Mon Aug 20 15:28:27 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Mon, 20 Aug 2012 15:28:27 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T3Sxs-0000r4-Vu
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Mon, 20 Aug 2012 15:28:27 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T3St1-00030N-Fj; Mon, 20 Aug 2012 14:23:23 +0000
+Received: from mail27.messagelabs.com ([193.109.254.147])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <konrad.wilk@oracle.com>) id 1T3Ssz-00030I-Lv
+       for xen-devel@lists.xensource.com; Mon, 20 Aug 2012 14:23:21 +0000
+X-Env-Sender: konrad.wilk@oracle.com
+X-Msg-Ref: server-15.tower-27.messagelabs.com!1345472587!2853154!1
+X-Originating-IP: [148.87.113.117]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogMTQ4Ljg3LjExMy4xMTcgPT4gNjk5ODQx\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 1320 invoked from network); 20 Aug 2012 14:23:12 -0000
+Received: from rcsinet15.oracle.com (HELO rcsinet15.oracle.com)
+       (148.87.113.117)
+       by server-15.tower-27.messagelabs.com with DHE-RSA-AES256-SHA encrypted
+       SMTP; 20 Aug 2012 14:23:12 -0000
+Received: from ucsinet21.oracle.com (ucsinet21.oracle.com [156.151.31.93])
+       by rcsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
+       ESMTP id q7KEN3UY006990
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
+       Mon, 20 Aug 2012 14:23:04 GMT
+Received: from acsmt357.oracle.com (acsmt357.oracle.com [141.146.40.157])
+       by ucsinet21.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
+       q7KEN2e6007076
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
+       Mon, 20 Aug 2012 14:23:03 GMT
+Received: from abhmt116.oracle.com (abhmt116.oracle.com [141.146.116.68])
+       by acsmt357.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
+       q7KEN1o9001850; Mon, 20 Aug 2012 09:23:02 -0500
+Received: from phenom.dumpdata.com (/209.6.85.33)
+       by default (Oracle Beehive Gateway v4.0)
+       with ESMTP ; Mon, 20 Aug 2012 07:23:01 -0700
+Received: by phenom.dumpdata.com (Postfix, from userid 1000)
+       id C71694029A; Mon, 20 Aug 2012 10:13:05 -0400 (EDT)
+Date: Mon, 20 Aug 2012 10:13:05 -0400
+From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+Message-ID: <20120820141305.GA2713@phenom.dumpdata.com>
+References: <1345133009-21941-1-git-send-email-konrad.wilk@oracle.com>
+       <1345133009-21941-3-git-send-email-konrad.wilk@oracle.com>
+       <alpine.DEB.2.02.1208171835010.15568@kaball.uk.xensource.com>
+MIME-Version: 1.0
+Content-Disposition: inline
+In-Reply-To: <alpine.DEB.2.02.1208171835010.15568@kaball.uk.xensource.com>
+User-Agent: Mutt/1.5.21 (2010-09-15)
+X-Source-IP: ucsinet21.oracle.com [156.151.31.93]
+Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
+       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 02/11] xen/x86: Use memblock_reserve for
+ sensitive areas.
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Fri, Aug 17, 2012 at 06:35:12PM +0100, Stefano Stabellini wrote:
+> On Thu, 16 Aug 2012, Konrad Rzeszutek Wilk wrote:
+> > instead of a big memblock_reserve. This way we can be more
+> > selective in freeing regions (and it also makes it easier
+> > to understand where is what).
+> > 
+> > [v1: Move the auto_translate_physmap to proper line]
+> > [v2: Per Stefano suggestion add more comments]
+> > Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+> 
+> much better now!
+
+Thought interestingly enough it breaks 32-bit dom0s (and only dom0s).
+Will have a revised patch posted shortly.
+
+> 
+> >  arch/x86/xen/enlighten.c |   48 ++++++++++++++++++++++++++++++++++++++++++++++
+> >  arch/x86/xen/p2m.c       |    5 ++++
+> >  arch/x86/xen/setup.c     |    9 --------
+> >  3 files changed, 53 insertions(+), 9 deletions(-)
+> > 
+> > diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c
+> > index ff962d4..e532eb5 100644
+> > --- a/arch/x86/xen/enlighten.c
+> > +++ b/arch/x86/xen/enlighten.c
+> > @@ -998,7 +998,54 @@ static int xen_write_msr_safe(unsigned int msr, unsigned low, unsigned high)
+> >  
+> >    return ret;
+> >  }
+> > +/*
+> > + * If the MFN is not in the m2p (provided to us by the hypervisor) this
+> > + * function won't do anything. In practice this means that the XenBus
+> > + * MFN won't be available for the initial domain. */
+> > +static void __init xen_reserve_mfn(unsigned long mfn)
+> > +{
+> > +  unsigned long pfn;
+> > +
+> > +  if (!mfn)
+> > +          return;
+> > +  pfn = mfn_to_pfn(mfn);
+> > +  if (phys_to_machine_mapping_valid(pfn))
+> > +          memblock_reserve(PFN_PHYS(pfn), PAGE_SIZE);
+> > +}
+> > +static void __init xen_reserve_internals(void)
+> > +{
+> > +  unsigned long size;
+> > +
+> > +  if (!xen_pv_domain())
+> > +          return;
+> > +
+> > +  /* xen_start_info does not exist in the M2P, hence can't use
+> > +   * xen_reserve_mfn. */
+> > +  memblock_reserve(__pa(xen_start_info), PAGE_SIZE);
+> > +
+> > +  xen_reserve_mfn(PFN_DOWN(xen_start_info->shared_info));
+> > +  xen_reserve_mfn(xen_start_info->store_mfn);
+> >  
+> > +  if (!xen_initial_domain())
+> > +          xen_reserve_mfn(xen_start_info->console.domU.mfn);
+> > +
+> > +  if (xen_feature(XENFEAT_auto_translated_physmap))
+> > +          return;
+> > +
+> > +  /*
+> > +   * ALIGN up to compensate for the p2m_page pointing to an array that
+> > +   * can partially filled (look in xen_build_dynamic_phys_to_machine).
+> > +   */
+> > +
+> > +  size = PAGE_ALIGN(xen_start_info->nr_pages * sizeof(unsigned long));
+> > +
+> > +  /* We could use xen_reserve_mfn here, but would end up looping quite
+> > +   * a lot (and call memblock_reserve for each PAGE), so lets just use
+> > +   * the easy way and reserve it wholesale. */
+> > +  memblock_reserve(__pa(xen_start_info->mfn_list), size);
+> > +
+> > +  /* The pagetables are reserved in mmu.c */
+> > +}
+> >  void xen_setup_shared_info(void)
+> >  {
+> >    if (!xen_feature(XENFEAT_auto_translated_physmap)) {
+> > @@ -1362,6 +1409,7 @@ asmlinkage void __init xen_start_kernel(void)
+> >    xen_raw_console_write("mapping kernel into physical memory\n");
+> >    pgd = xen_setup_kernel_pagetable(pgd, xen_start_info->nr_pages);
+> >  
+> > +  xen_reserve_internals();
+> >    /* Allocate and initialize top and mid mfn levels for p2m structure */
+> >    xen_build_mfn_list_list();
+> >  
+> > diff --git a/arch/x86/xen/p2m.c b/arch/x86/xen/p2m.c
+> > index e4adbfb..6a2bfa4 100644
+> > --- a/arch/x86/xen/p2m.c
+> > +++ b/arch/x86/xen/p2m.c
+> > @@ -388,6 +388,11 @@ void __init xen_build_dynamic_phys_to_machine(void)
+> >    }
+> >  
+> >    m2p_override_init();
+> > +
+> > +  /* NOTE: We cannot call memblock_reserve here for the mfn_list as there
+> > +   * isn't enough pieces to make it work (for one - we are still using the
+> > +   * Xen provided pagetable). Do it later in xen_reserve_internals.
+> > +   */
+> >  }
+> >  
+> >  unsigned long get_phys_to_machine(unsigned long pfn)
+> > diff --git a/arch/x86/xen/setup.c b/arch/x86/xen/setup.c
+> > index a4790bf..9efca75 100644
+> > --- a/arch/x86/xen/setup.c
+> > +++ b/arch/x86/xen/setup.c
+> > @@ -424,15 +424,6 @@ char * __init xen_memory_setup(void)
+> >    e820_add_region(ISA_START_ADDRESS, ISA_END_ADDRESS - ISA_START_ADDRESS,
+> >                    E820_RESERVED);
+> >  
+> > -  /*
+> > -   * Reserve Xen bits:
+> > -   *  - mfn_list
+> > -   *  - xen_start_info
+> > -   * See comment above "struct start_info" in <xen/interface/xen.h>
+> > -   */
+> > -  memblock_reserve(__pa(xen_start_info->mfn_list),
+> > -                   xen_start_info->pt_base - xen_start_info->mfn_list);
+> > -
+> >    sanitize_e820_map(e820.map, ARRAY_SIZE(e820.map), &e820.nr_map);
+> >  
+> >    return "Xen";
+> > -- 
+> > 1.7.7.6
+> > 
+> > 
+> > _______________________________________________
+> > Xen-devel mailing list
+> > Xen-devel@lists.xen.org
+> > http://lists.xen.org/xen-devel
+> > 
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<20120821145713.GG20289@phenom.dumpdata.com> b/config/examples/test/corpus/<20120821145713.GG20289@phenom.dumpdata.com>
new file mode 100644 (file)
index 0000000..ca9d5fb
--- /dev/null
@@ -0,0 +1,164 @@
+From xen-devel-bounces@lists.xen.org Tue Aug 21 16:11:04 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Tue, 21 Aug 2012 16:11:04 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T3q6g-0001Kz-LI
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 21 Aug 2012 16:11:04 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T3q3E-0004i3-VH; Tue, 21 Aug 2012 15:07:28 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <konrad.wilk@oracle.com>) id 1T3q3D-0004hs-6t
+       for xen-devel@lists.xensource.com; Tue, 21 Aug 2012 15:07:27 +0000
+Received: from [85.158.138.51:28323] by server-11.bemta-3.messagelabs.com id
+       C5/A6-23152-E24A3305; Tue, 21 Aug 2012 15:07:26 +0000
+X-Env-Sender: konrad.wilk@oracle.com
+X-Msg-Ref: server-14.tower-174.messagelabs.com!1345561644!23099216!1
+X-Originating-IP: [148.87.113.117]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogMTQ4Ljg3LjExMy4xMTcgPT4gNzAyMzU2\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 4193 invoked from network); 21 Aug 2012 15:07:25 -0000
+Received: from rcsinet15.oracle.com (HELO rcsinet15.oracle.com)
+       (148.87.113.117)
+       by server-14.tower-174.messagelabs.com with DHE-RSA-AES256-SHA
+       encrypted SMTP; 21 Aug 2012 15:07:25 -0000
+Received: from acsinet21.oracle.com (acsinet21.oracle.com [141.146.126.237])
+       by rcsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
+       ESMTP id q7LF7KT5019205
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
+       Tue, 21 Aug 2012 15:07:22 GMT
+Received: from acsmt357.oracle.com (acsmt357.oracle.com [141.146.40.157])
+       by acsinet21.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
+       q7LF7CAj029749
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
+       Tue, 21 Aug 2012 15:07:12 GMT
+Received: from abhmt115.oracle.com (abhmt115.oracle.com [141.146.116.67])
+       by acsmt357.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
+       q7LF7BKl030219; Tue, 21 Aug 2012 10:07:12 -0500
+Received: from phenom.dumpdata.com (/209.6.85.33)
+       by default (Oracle Beehive Gateway v4.0)
+       with ESMTP ; Tue, 21 Aug 2012 08:07:11 -0700
+Received: by phenom.dumpdata.com (Postfix, from userid 1000)
+       id 296684031E; Tue, 21 Aug 2012 10:57:13 -0400 (EDT)
+Date: Tue, 21 Aug 2012 10:57:13 -0400
+From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+Message-ID: <20120821145713.GG20289@phenom.dumpdata.com>
+References: <1345133009-21941-1-git-send-email-konrad.wilk@oracle.com>
+       <1345133009-21941-12-git-send-email-konrad.wilk@oracle.com>
+       <alpine.DEB.2.02.1208211514130.15568@kaball.uk.xensource.com>
+MIME-Version: 1.0
+Content-Disposition: inline
+In-Reply-To: <alpine.DEB.2.02.1208211514130.15568@kaball.uk.xensource.com>
+User-Agent: Mutt/1.5.21 (2010-09-15)
+X-Source-IP: acsinet21.oracle.com [141.146.126.237]
+Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
+       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 11/11] xen/mmu: Release just the MFN list,
+ not MFN list and part of pagetables.
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Tue, Aug 21, 2012 at 03:18:26PM +0100, Stefano Stabellini wrote:
+> On Thu, 16 Aug 2012, Konrad Rzeszutek Wilk wrote:
+> > We call memblock_reserve for [start of mfn list] -> [PMD aligned end
+> > of mfn list] instead of <start of mfn list> -> <page aligned end of mfn list].
+> > 
+> > This has the disastrous effect that if at bootup the end of mfn_list is
+> > not PMD aligned we end up returning to memblock parts of the region
+> > past the mfn_list array. And those parts are the PTE tables with
+> > the disastrous effect of seeing this at bootup:
+> 
+> This patch looks wrong to me.
+
+Its easier to see if you stick the patch in the code. The size = part
+was actually also done earlier.
+> 
+> Aren't you changing the way mfn_list is reserved using memblock in patch
+> #3? Moreover it really seems to me that you are PAGE_ALIGN'ing size
+> rather than PMD_ALIGN'ing it there.
+
+Correct. That is proper way of doing it. We want to PMD_ALIGN for the xen_cleanhighmap
+to remove the pesky virtual address, but we want PAGE_ALIGN (so exactly the
+same way memblock_reserve was called) for memblock_free.
+> 
+> 
+> > Write protecting the kernel read-only data: 10240k
+> > Freeing unused kernel memory: 1860k freed
+> > Freeing unused kernel memory: 200k freed
+> > (XEN) mm.c:2429:d0 Bad type (saw 1400000000000002 != exp 7000000000000000) for mfn 116a80 (pfn 14e26)
+> > ...
+> > (XEN) mm.c:908:d0 Error getting mfn 116a83 (pfn 14e2a) from L1 entry 8000000116a83067 for l1e_owner=0, pg_owner=0
+> > (XEN) mm.c:908:d0 Error getting mfn 4040 (pfn 5555555555555555) from L1 entry 0000000004040601 for l1e_owner=0, pg_owner=0
+> > .. and so on.
+> >
+> > Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+> > ---
+> >  arch/x86/xen/mmu.c |    2 +-
+> >  1 files changed, 1 insertions(+), 1 deletions(-)
+> > 
+> > diff --git a/arch/x86/xen/mmu.c b/arch/x86/xen/mmu.c
+> > index 5a880b8..6019c22 100644
+> > --- a/arch/x86/xen/mmu.c
+> > +++ b/arch/x86/xen/mmu.c
+> > @@ -1227,7 +1227,6 @@ static void __init xen_pagetable_setup_done(pgd_t *base)
+> >                    /* We should be in __ka space. */
+> >                    BUG_ON(xen_start_info->mfn_list < __START_KERNEL_map);
+> >                    addr = xen_start_info->mfn_list;
+> > -                  size = PAGE_ALIGN(xen_start_info->nr_pages * sizeof(unsigned long));
+> >                    /* We roundup to the PMD, which means that if anybody at this stage is
+> >                     * using the __ka address of xen_start_info or xen_start_info->shared_info
+> >                     * they are in going to crash. Fortunatly we have already revectored
+> > @@ -1235,6 +1234,7 @@ static void __init xen_pagetable_setup_done(pgd_t *base)
+> >                    size = roundup(size, PMD_SIZE);
+> >                    xen_cleanhighmap(addr, addr + size);
+> >  
+> > +                  size = PAGE_ALIGN(xen_start_info->nr_pages * sizeof(unsigned long));
+> >                    memblock_free(__pa(xen_start_info->mfn_list), size);
+> >                    /* And revector! Bye bye old array */
+> >                    xen_start_info->mfn_list = new_mfn_list;
+> > -- 
+> > 1.7.7.6
+> > 
+> > 
+> > _______________________________________________
+> > Xen-devel mailing list
+> > Xen-devel@lists.xen.org
+> > http://lists.xen.org/xen-devel
+> > 
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<20120821172732.GA23715@phenom.dumpdata.com> b/config/examples/test/corpus/<20120821172732.GA23715@phenom.dumpdata.com>
new file mode 100644 (file)
index 0000000..1d6187a
--- /dev/null
@@ -0,0 +1,160 @@
+From xen-devel-bounces@lists.xen.org Tue Aug 21 18:42:34 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Tue, 21 Aug 2012 18:42:34 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T3sTI-00023s-8I
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 21 Aug 2012 18:42:34 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T3sOe-0001PX-59; Tue, 21 Aug 2012 17:37:44 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <konrad.wilk@oracle.com>) id 1T3sOb-0001PS-UA
+       for xen-devel@lists.xensource.com; Tue, 21 Aug 2012 17:37:42 +0000
+Received: from [85.158.143.99:30547] by server-2.bemta-4.messagelabs.com id
+       FF/44-21239-567C3305; Tue, 21 Aug 2012 17:37:41 +0000
+X-Env-Sender: konrad.wilk@oracle.com
+X-Msg-Ref: server-3.tower-216.messagelabs.com!1345570659!28754333!1
+X-Originating-IP: [148.87.113.117]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogMTQ4Ljg3LjExMy4xMTcgPT4gNzAyMzU2\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 27507 invoked from network); 21 Aug 2012 17:37:40 -0000
+Received: from rcsinet15.oracle.com (HELO rcsinet15.oracle.com)
+       (148.87.113.117)
+       by server-3.tower-216.messagelabs.com with DHE-RSA-AES256-SHA encrypted
+       SMTP; 21 Aug 2012 17:37:40 -0000
+Received: from ucsinet22.oracle.com (ucsinet22.oracle.com [156.151.31.94])
+       by rcsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
+       ESMTP id q7LHbWIK007606
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
+       Tue, 21 Aug 2012 17:37:33 GMT
+Received: from acsmt357.oracle.com (acsmt357.oracle.com [141.146.40.157])
+       by ucsinet22.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
+       q7LHbV82003047
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
+       Tue, 21 Aug 2012 17:37:32 GMT
+Received: from abhmt119.oracle.com (abhmt119.oracle.com [141.146.116.71])
+       by acsmt357.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
+       q7LHbVDQ016351; Tue, 21 Aug 2012 12:37:31 -0500
+Received: from phenom.dumpdata.com (/209.6.85.33)
+       by default (Oracle Beehive Gateway v4.0)
+       with ESMTP ; Tue, 21 Aug 2012 10:37:31 -0700
+Received: by phenom.dumpdata.com (Postfix, from userid 1000)
+       id E2EC24031E; Tue, 21 Aug 2012 13:27:32 -0400 (EDT)
+Date: Tue, 21 Aug 2012 13:27:32 -0400
+From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>, JBeulich@suse.com
+Message-ID: <20120821172732.GA23715@phenom.dumpdata.com>
+References: <1345133009-21941-1-git-send-email-konrad.wilk@oracle.com>
+       <1345133009-21941-3-git-send-email-konrad.wilk@oracle.com>
+       <alpine.DEB.2.02.1208171835010.15568@kaball.uk.xensource.com>
+       <20120820141305.GA2713@phenom.dumpdata.com>
+MIME-Version: 1.0
+Content-Disposition: inline
+In-Reply-To: <20120820141305.GA2713@phenom.dumpdata.com>
+User-Agent: Mutt/1.5.21 (2010-09-15)
+X-Source-IP: ucsinet22.oracle.com [156.151.31.94]
+Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
+       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
+Subject: [Xen-devel] Q:pt_base in COMPAT mode offset by two pages. Was:Re:
+ [PATCH 02/11] xen/x86: Use memblock_reserve for sensitive areas.
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Mon, Aug 20, 2012 at 10:13:05AM -0400, Konrad Rzeszutek Wilk wrote:
+> On Fri, Aug 17, 2012 at 06:35:12PM +0100, Stefano Stabellini wrote:
+> > On Thu, 16 Aug 2012, Konrad Rzeszutek Wilk wrote:
+> > > instead of a big memblock_reserve. This way we can be more
+> > > selective in freeing regions (and it also makes it easier
+> > > to understand where is what).
+> > > 
+> > > [v1: Move the auto_translate_physmap to proper line]
+> > > [v2: Per Stefano suggestion add more comments]
+> > > Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+> > 
+> > much better now!
+> 
+> Thought interestingly enough it breaks 32-bit dom0s (and only dom0s).
+> Will have a revised patch posted shortly.
+
+Jan, I thought something odd. Part of this code replaces this:
+
+       memblock_reserve(__pa(xen_start_info->mfn_list),
+               xen_start_info->pt_base - xen_start_info->mfn_list);
+
+with a more region-by-region area. What I found out that if I boot this
+as 32-bit guest with a 64-bit hypervisor the xen_start_info->pt_base is
+actually wrong.
+
+Specifically this is what bootup says:
+
+(good working case - 32bit hypervisor with 32-bit dom0):
+(XEN)  Loaded kernel: c1000000->c1a23000
+(XEN)  Init. ramdisk: c1a23000->cf730e00
+(XEN)  Phys-Mach map: cf731000->cf831000
+(XEN)  Start info:    cf831000->cf83147c
+(XEN)  Page tables:   cf832000->cf8b5000
+(XEN)  Boot stack:    cf8b5000->cf8b6000
+(XEN)  TOTAL:         c0000000->cfc00000
+
+[    0.000000] PT: cf832000 (f832000)
+[    0.000000] Reserving PT: f832000->f8b5000
+
+And with a 64-bit hypervisor:
+
+XEN) VIRTUAL MEMORY ARRANGEMENT:
+(XEN)  Loaded kernel: 00000000c1000000->00000000c1a23000
+(XEN)  Init. ramdisk: 00000000c1a23000->00000000cf730e00
+(XEN)  Phys-Mach map: 00000000cf731000->00000000cf831000
+(XEN)  Start info:    00000000cf831000->00000000cf8314b4
+(XEN)  Page tables:   00000000cf832000->00000000cf8b6000
+(XEN)  Boot stack:    00000000cf8b6000->00000000cf8b7000
+(XEN)  TOTAL:         00000000c0000000->00000000cfc00000
+(XEN)  ENTRY ADDRESS: 00000000c16bb22c
+
+[    0.000000] PT: cf834000 (f834000)
+[    0.000000] Reserving PT: f834000->f8b8000
+
+So the pt_base is offset by two pages. And looking at c/s 13257
+its not clear to me why this two page offset was added?
+
+The toolstack works fine - so launching 32-bit guests either
+under a 32-bit hypervisor or 64-bit works fine:
+] domainbuilder: detail: xc_dom_alloc_segment:   page tables  : 0xcf805000 -> 0xcf885000  (pfn 0xf805 + 0x80 pages)
+[    0.000000] PT: cf805000 (f805000)
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<20120821190317.GA13035@phenom.dumpdata.com> b/config/examples/test/corpus/<20120821190317.GA13035@phenom.dumpdata.com>
new file mode 100644 (file)
index 0000000..93ef4fe
--- /dev/null
@@ -0,0 +1,271 @@
+From xen-devel-bounces@lists.xen.org Tue Aug 21 20:17:52 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Tue, 21 Aug 2012 20:17:52 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T3txV-0002P1-FR
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 21 Aug 2012 20:17:52 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T3ttJ-0003YP-Sc; Tue, 21 Aug 2012 19:13:29 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <konrad.wilk@oracle.com>) id 1T3ttH-0003YK-7o
+       for xen-devel@lists.xensource.com; Tue, 21 Aug 2012 19:13:27 +0000
+Received: from [85.158.139.83:36164] by server-9.bemta-5.messagelabs.com id
+       D1/5B-26123-6DDD3305; Tue, 21 Aug 2012 19:13:26 +0000
+X-Env-Sender: konrad.wilk@oracle.com
+X-Msg-Ref: server-2.tower-182.messagelabs.com!1345576404!29326099!1
+X-Originating-IP: [148.87.113.117]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogMTQ4Ljg3LjExMy4xMTcgPT4gNzAyMzU2\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 11789 invoked from network); 21 Aug 2012 19:13:25 -0000
+Received: from rcsinet15.oracle.com (HELO rcsinet15.oracle.com)
+       (148.87.113.117)
+       by server-2.tower-182.messagelabs.com with DHE-RSA-AES256-SHA encrypted
+       SMTP; 21 Aug 2012 19:13:25 -0000
+Received: from acsinet22.oracle.com (acsinet22.oracle.com [141.146.126.238])
+       by rcsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
+       ESMTP id q7LJDHZH008413
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
+       Tue, 21 Aug 2012 19:13:18 GMT
+Received: from acsmt356.oracle.com (acsmt356.oracle.com [141.146.40.156])
+       by acsinet22.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
+       q7LJDG0c004897
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
+       Tue, 21 Aug 2012 19:13:16 GMT
+Received: from abhmt120.oracle.com (abhmt120.oracle.com [141.146.116.72])
+       by acsmt356.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
+       q7LJDFMk031735; Tue, 21 Aug 2012 14:13:15 -0500
+Received: from phenom.dumpdata.com (/209.6.85.33)
+       by default (Oracle Beehive Gateway v4.0)
+       with ESMTP ; Tue, 21 Aug 2012 12:13:16 -0700
+Received: by phenom.dumpdata.com (Postfix, from userid 1000)
+       id 7AFE64031E; Tue, 21 Aug 2012 15:03:17 -0400 (EDT)
+Date: Tue, 21 Aug 2012 15:03:17 -0400
+From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>, JBeulich@suse.com
+Message-ID: <20120821190317.GA13035@phenom.dumpdata.com>
+References: <1345133009-21941-1-git-send-email-konrad.wilk@oracle.com>
+       <1345133009-21941-3-git-send-email-konrad.wilk@oracle.com>
+       <alpine.DEB.2.02.1208171835010.15568@kaball.uk.xensource.com>
+       <20120820141305.GA2713@phenom.dumpdata.com>
+       <20120821172732.GA23715@phenom.dumpdata.com>
+MIME-Version: 1.0
+Content-Disposition: inline
+In-Reply-To: <20120821172732.GA23715@phenom.dumpdata.com>
+User-Agent: Mutt/1.5.21 (2010-09-15)
+X-Source-IP: acsinet22.oracle.com [141.146.126.238]
+Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
+       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
+Subject: Re: [Xen-devel] Q:pt_base in COMPAT mode offset by two pages.
+ Was:Re: [PATCH 02/11] xen/x86: Use memblock_reserve for sensitive areas.
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Tue, Aug 21, 2012 at 01:27:32PM -0400, Konrad Rzeszutek Wilk wrote:
+> On Mon, Aug 20, 2012 at 10:13:05AM -0400, Konrad Rzeszutek Wilk wrote:
+> > On Fri, Aug 17, 2012 at 06:35:12PM +0100, Stefano Stabellini wrote:
+> > > On Thu, 16 Aug 2012, Konrad Rzeszutek Wilk wrote:
+> > > > instead of a big memblock_reserve. This way we can be more
+> > > > selective in freeing regions (and it also makes it easier
+> > > > to understand where is what).
+> > > > 
+> > > > [v1: Move the auto_translate_physmap to proper line]
+> > > > [v2: Per Stefano suggestion add more comments]
+> > > > Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+> > > 
+> > > much better now!
+> > 
+> > Thought interestingly enough it breaks 32-bit dom0s (and only dom0s).
+> > Will have a revised patch posted shortly.
+> 
+> Jan, I thought something odd. Part of this code replaces this:
+> 
+>      memblock_reserve(__pa(xen_start_info->mfn_list),
+>              xen_start_info->pt_base - xen_start_info->mfn_list);
+> 
+> with a more region-by-region area. What I found out that if I boot this
+> as 32-bit guest with a 64-bit hypervisor the xen_start_info->pt_base is
+> actually wrong.
+> 
+> Specifically this is what bootup says:
+> 
+> (good working case - 32bit hypervisor with 32-bit dom0):
+> (XEN)  Loaded kernel: c1000000->c1a23000
+> (XEN)  Init. ramdisk: c1a23000->cf730e00
+> (XEN)  Phys-Mach map: cf731000->cf831000
+> (XEN)  Start info:    cf831000->cf83147c
+> (XEN)  Page tables:   cf832000->cf8b5000
+> (XEN)  Boot stack:    cf8b5000->cf8b6000
+> (XEN)  TOTAL:         c0000000->cfc00000
+> 
+> [    0.000000] PT: cf832000 (f832000)
+> [    0.000000] Reserving PT: f832000->f8b5000
+> 
+> And with a 64-bit hypervisor:
+> 
+> XEN) VIRTUAL MEMORY ARRANGEMENT:
+> (XEN)  Loaded kernel: 00000000c1000000->00000000c1a23000
+> (XEN)  Init. ramdisk: 00000000c1a23000->00000000cf730e00
+> (XEN)  Phys-Mach map: 00000000cf731000->00000000cf831000
+> (XEN)  Start info:    00000000cf831000->00000000cf8314b4
+> (XEN)  Page tables:   00000000cf832000->00000000cf8b6000
+> (XEN)  Boot stack:    00000000cf8b6000->00000000cf8b7000
+> (XEN)  TOTAL:         00000000c0000000->00000000cfc00000
+> (XEN)  ENTRY ADDRESS: 00000000c16bb22c
+> 
+> [    0.000000] PT: cf834000 (f834000)
+> [    0.000000] Reserving PT: f834000->f8b8000
+> 
+> So the pt_base is offset by two pages. And looking at c/s 13257
+> its not clear to me why this two page offset was added?
+> 
+> The toolstack works fine - so launching 32-bit guests either
+> under a 32-bit hypervisor or 64-bit works fine:
+> ] domainbuilder: detail: xc_dom_alloc_segment:   page tables  : 0xcf805000 -> 0xcf885000  (pfn 0xf805 + 0x80 pages)
+> [    0.000000] PT: cf805000 (f805000)
+> 
+
+And this patch on top of the others fixes this..
+
+
+>From 806c312e50f122c47913145cf884f53dd09d9199 Mon Sep 17 00:00:00 2001
+From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+Date: Tue, 21 Aug 2012 14:31:24 -0400
+Subject: [PATCH] xen/x86: Workaround 64-bit hypervisor and 32-bit initial
+ domain.
+
+If a 64-bit hypervisor is booted with a 32-bit initial domain,
+the hypervisor deals with the initial domain as "compat" and
+does some extra adjustments (like pagetables are 4 bytes instead
+of 8). It also adjusts the xen_start_info->pt_base incorrectly.
+
+When booted with a 32-bit hypervisor (32-bit initial domain):
+..
+(XEN)  Start info:    cf831000->cf83147c
+(XEN)  Page tables:   cf832000->cf8b5000
+..
+[    0.000000] PT: cf832000 (f832000)
+[    0.000000] Reserving PT: f832000->f8b5000
+
+And with a 64-bit hypervisor:
+(XEN)  Start info:    00000000cf831000->00000000cf8314b4
+(XEN)  Page tables:   00000000cf832000->00000000cf8b6000
+
+[    0.000000] PT: cf834000 (f834000)
+[    0.000000] Reserving PT: f834000->f8b8000
+
+To deal with this, we keep keep track of the highest physical
+address we have reserved via memblock_reserve. If that address
+does not overlap with pt_base, we have a gap which we reserve.
+
+Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+---
+ arch/x86/xen/enlighten.c |   30 +++++++++++++++++++++---------
+ 1 files changed, 21 insertions(+), 9 deletions(-)
+
+diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c
+index e532eb5..511f92d 100644
+--- a/arch/x86/xen/enlighten.c
++++ b/arch/x86/xen/enlighten.c
+@@ -1002,19 +1002,24 @@ static int xen_write_msr_safe(unsigned int msr, unsigned low, unsigned high)
+  * If the MFN is not in the m2p (provided to us by the hypervisor) this
+  * function won't do anything. In practice this means that the XenBus
+  * MFN won't be available for the initial domain. */
+-static void __init xen_reserve_mfn(unsigned long mfn)
++static unsigned long __init xen_reserve_mfn(unsigned long mfn)
+ {
+-      unsigned long pfn;
++      unsigned long pfn, end_pfn = 0;
+       if (!mfn)
+-              return;
++              return end_pfn;
++
+       pfn = mfn_to_pfn(mfn);
+-      if (phys_to_machine_mapping_valid(pfn))
+-              memblock_reserve(PFN_PHYS(pfn), PAGE_SIZE);
++      if (phys_to_machine_mapping_valid(pfn)) {
++              end_pfn = PFN_PHYS(pfn) + PAGE_SIZE;
++              memblock_reserve(PFN_PHYS(pfn), end_pfn);
++      }
++      return end_pfn;
+ }
+ static void __init xen_reserve_internals(void)
+ {
+       unsigned long size;
++      unsigned long last_phys = 0;
+       if (!xen_pv_domain())
+               return;
+@@ -1022,12 +1027,13 @@ static void __init xen_reserve_internals(void)
+       /* xen_start_info does not exist in the M2P, hence can't use
+        * xen_reserve_mfn. */
+       memblock_reserve(__pa(xen_start_info), PAGE_SIZE);
++      last_phys = __pa(xen_start_info) + PAGE_SIZE;
+-      xen_reserve_mfn(PFN_DOWN(xen_start_info->shared_info));
+-      xen_reserve_mfn(xen_start_info->store_mfn);
++      last_phys = max(xen_reserve_mfn(PFN_DOWN(xen_start_info->shared_info)), last_phys);
++      last_phys = max(xen_reserve_mfn(xen_start_info->store_mfn), last_phys);
+       if (!xen_initial_domain())
+-              xen_reserve_mfn(xen_start_info->console.domU.mfn);
++              last_phys = max(xen_reserve_mfn(xen_start_info->console.domU.mfn), last_phys);
+       if (xen_feature(XENFEAT_auto_translated_physmap))
+               return;
+@@ -1043,8 +1049,14 @@ static void __init xen_reserve_internals(void)
+        * a lot (and call memblock_reserve for each PAGE), so lets just use
+        * the easy way and reserve it wholesale. */
+       memblock_reserve(__pa(xen_start_info->mfn_list), size);
+-
++      last_phys = max(__pa(xen_start_info->mfn_list) + size, last_phys);
+       /* The pagetables are reserved in mmu.c */
++
++      /* Under 64-bit hypervisor with a 32-bit domain, the hypervisor
++       * offsets the pt_base by two pages. Hence the reservation that is done
++       * in mmu.c misses two pages. We correct it here if we detect this. */
++      if (last_phys < __pa(xen_start_info->pt_base))
++              memblock_reserve(last_phys, __pa(xen_start_info->pt_base) - last_phys);
+ }
+ void xen_setup_shared_info(void)
+ {
+-- 
+1.7.7.6
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<20120822140039.GB30964@phenom.dumpdata.com> b/config/examples/test/corpus/<20120822140039.GB30964@phenom.dumpdata.com>
new file mode 100644 (file)
index 0000000..1088589
--- /dev/null
@@ -0,0 +1,126 @@
+From xen-devel-bounces@lists.xen.org Wed Aug 22 15:14:50 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 22 Aug 2012 15:14:50 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T4Bhm-0001bV-5m
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 22 Aug 2012 15:14:50 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T4Be0-0006VT-QD; Wed, 22 Aug 2012 14:10:52 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <konrad.wilk@oracle.com>) id 1T4Bdy-0006VL-OQ
+       for xen-devel@lists.xensource.com; Wed, 22 Aug 2012 14:10:50 +0000
+Received: from [85.158.143.99:61011] by server-1.bemta-4.messagelabs.com id
+       48/57-07754-A68E4305; Wed, 22 Aug 2012 14:10:50 +0000
+X-Env-Sender: konrad.wilk@oracle.com
+X-Msg-Ref: server-4.tower-216.messagelabs.com!1345644648!22112845!1
+X-Originating-IP: [148.87.113.117]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogMTQ4Ljg3LjExMy4xMTcgPT4gNzA1MDk5\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 25317 invoked from network); 22 Aug 2012 14:10:49 -0000
+Received: from rcsinet15.oracle.com (HELO rcsinet15.oracle.com)
+       (148.87.113.117)
+       by server-4.tower-216.messagelabs.com with DHE-RSA-AES256-SHA encrypted
+       SMTP; 22 Aug 2012 14:10:49 -0000
+Received: from ucsinet22.oracle.com (ucsinet22.oracle.com [156.151.31.94])
+       by rcsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
+       ESMTP id q7MEAi6J027684
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
+       Wed, 22 Aug 2012 14:10:44 GMT
+Received: from acsmt357.oracle.com (acsmt357.oracle.com [141.146.40.157])
+       by ucsinet22.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
+       q7MEAhxs011546
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
+       Wed, 22 Aug 2012 14:10:43 GMT
+Received: from abhmt113.oracle.com (abhmt113.oracle.com [141.146.116.65])
+       by acsmt357.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
+       q7MEAg58016293; Wed, 22 Aug 2012 09:10:42 -0500
+Received: from phenom.dumpdata.com (/209.6.85.33)
+       by default (Oracle Beehive Gateway v4.0)
+       with ESMTP ; Wed, 22 Aug 2012 07:10:42 -0700
+Received: by phenom.dumpdata.com (Postfix, from userid 1000)
+       id 93A424031E; Wed, 22 Aug 2012 10:00:39 -0400 (EDT)
+Date: Wed, 22 Aug 2012 10:00:39 -0400
+From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+Message-ID: <20120822140039.GB30964@phenom.dumpdata.com>
+References: <1345133009-21941-1-git-send-email-konrad.wilk@oracle.com>
+       <1345133009-21941-3-git-send-email-konrad.wilk@oracle.com>
+       <alpine.DEB.2.02.1208171835010.15568@kaball.uk.xensource.com>
+       <20120820141305.GA2713@phenom.dumpdata.com>
+       <20120821172732.GA23715@phenom.dumpdata.com>
+       <20120821190317.GA13035@phenom.dumpdata.com>
+       <alpine.DEB.2.02.1208221146230.15568@kaball.uk.xensource.com>
+MIME-Version: 1.0
+Content-Disposition: inline
+In-Reply-To: <alpine.DEB.2.02.1208221146230.15568@kaball.uk.xensource.com>
+User-Agent: Mutt/1.5.21 (2010-09-15)
+X-Source-IP: ucsinet22.oracle.com [156.151.31.94]
+Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
+       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
+       "JBeulich@suse.com" <JBeulich@suse.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] Q:pt_base in COMPAT mode offset by two pages.
+ Was:Re: [PATCH 02/11] xen/x86: Use memblock_reserve for sensitive areas.
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+> > +  /* Under 64-bit hypervisor with a 32-bit domain, the hypervisor
+> > +   * offsets the pt_base by two pages. Hence the reservation that is done
+> > +   * in mmu.c misses two pages. We correct it here if we detect this. */
+> > +  if (last_phys < __pa(xen_start_info->pt_base))
+> > +          memblock_reserve(last_phys, __pa(xen_start_info->pt_base) - last_phys);
+> >  }
+> 
+> What are these two pages used for? They are not documented in xen.h, why
+> should we reserve them?
+> 
+> After all we still have:
+> 
+> memblock_reserve(PFN_PHYS(pt_base), (pt_end - pt_base) * PAGE_SIZE);
+> 
+> that should protect what we are interested in anyway...
+
+You are looking at the x86_64 piece of code. This issue only appears
+on 32-bit which was not modified by my patches and has:
+
+2003         memblock_reserve(__pa(xen_start_info->pt_base),
+2004                          xen_start_info->nr_pt_frames * PAGE_SIZE);
+
+and as I found out, the pt_base is wrong. The cr3 we load and use is actually
+two pages back!
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<20120822145730.GI30964@phenom.dumpdata.com> b/config/examples/test/corpus/<20120822145730.GI30964@phenom.dumpdata.com>
new file mode 100644 (file)
index 0000000..baa45d5
--- /dev/null
@@ -0,0 +1,184 @@
+From xen-devel-bounces@lists.xen.org Wed Aug 22 16:38:48 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 22 Aug 2012 16:38:48 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T4D13-000236-Iy
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 22 Aug 2012 16:38:48 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T4CxF-0001yx-0J; Wed, 22 Aug 2012 15:34:49 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <konrad.wilk@oracle.com>) id 1T4CxE-0001ys-2C
+       for xen-devel@lists.xensource.com; Wed, 22 Aug 2012 15:34:48 +0000
+Received: from [85.158.143.35:30565] by server-2.bemta-4.messagelabs.com id
+       E4/5F-21239-71CF4305; Wed, 22 Aug 2012 15:34:47 +0000
+X-Env-Sender: konrad.wilk@oracle.com
+X-Msg-Ref: server-16.tower-21.messagelabs.com!1345649684!13205292!1
+X-Originating-IP: [141.146.126.236]
+X-SpamReason: No, hits=0.0 required=7.0 tests=UNPARSEABLE_RELAY
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 22274 invoked from network); 22 Aug 2012 15:34:45 -0000
+Received: from acsinet14.oracle.com (HELO acsinet14.oracle.com)
+       (141.146.126.236)
+       by server-16.tower-21.messagelabs.com with DHE-RSA-AES256-SHA encrypted
+       SMTP; 22 Aug 2012 15:34:45 -0000
+Received: from acsinet15.oracle.com (acsinet15.oracle.com [141.146.126.227])
+       by acsinet14.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
+       ESMTP id q7MF7ZxM007350
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK)
+       for <xen-devel@lists.xensource.com>; Wed, 22 Aug 2012 15:07:35 GMT
+Received: from acsinet22.oracle.com (acsinet22.oracle.com [141.146.126.238])
+       by acsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
+       ESMTP id q7MF7Wid012266
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
+       Wed, 22 Aug 2012 15:07:32 GMT
+Received: from acsmt357.oracle.com (acsmt357.oracle.com [141.146.40.157])
+       by acsinet22.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
+       q7MF7Vmr010382
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
+       Wed, 22 Aug 2012 15:07:32 GMT
+Received: from abhmt112.oracle.com (abhmt112.oracle.com [141.146.116.64])
+       by acsmt357.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
+       q7MF7Viv030942; Wed, 22 Aug 2012 10:07:31 -0500
+Received: from phenom.dumpdata.com (/209.6.85.33)
+       by default (Oracle Beehive Gateway v4.0)
+       with ESMTP ; Wed, 22 Aug 2012 08:07:31 -0700
+Received: by phenom.dumpdata.com (Postfix, from userid 1000)
+       id 13DC14031E; Wed, 22 Aug 2012 10:57:31 -0400 (EDT)
+Date: Wed, 22 Aug 2012 10:57:31 -0400
+From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+To: Jan Beulich <JBeulich@suse.com>
+Message-ID: <20120822145730.GI30964@phenom.dumpdata.com>
+References: <1345133009-21941-1-git-send-email-konrad.wilk@oracle.com>
+       <1345133009-21941-3-git-send-email-konrad.wilk@oracle.com>
+       <alpine.DEB.2.02.1208171835010.15568@kaball.uk.xensource.com>
+       <20120820141305.GA2713@phenom.dumpdata.com>
+       <20120821172732.GA23715@phenom.dumpdata.com>
+       <20120821190317.GA13035@phenom.dumpdata.com>
+       <503504FE0200007800096F08@nat28.tlf.novell.com>
+MIME-Version: 1.0
+Content-Disposition: inline
+In-Reply-To: <503504FE0200007800096F08@nat28.tlf.novell.com>
+User-Agent: Mutt/1.5.21 (2010-09-15)
+X-Source-IP: acsinet15.oracle.com [141.146.126.227]
+Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
+       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
+       Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
+Subject: Re: [Xen-devel] Q:pt_base in COMPAT mode offset by two pages.
+ Was:Re: [PATCH 02/11] xen/x86: Use memblock_reserve for sensitive areas.
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Wed, Aug 22, 2012 at 03:12:46PM +0100, Jan Beulich wrote:
+> >>> On 21.08.12 at 21:03, Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> wrote:
+> > On Tue, Aug 21, 2012 at 01:27:32PM -0400, Konrad Rzeszutek Wilk wrote:
+> >> Jan, I thought something odd. Part of this code replaces this:
+> >> 
+> >>   memblock_reserve(__pa(xen_start_info->mfn_list),
+> >>           xen_start_info->pt_base - xen_start_info->mfn_list);
+> >> 
+> >> with a more region-by-region area. What I found out that if I boot this
+> >> as 32-bit guest with a 64-bit hypervisor the xen_start_info->pt_base is
+> >> actually wrong.
+> >> 
+> >> Specifically this is what bootup says:
+> >> 
+> >> (good working case - 32bit hypervisor with 32-bit dom0):
+> >> (XEN)  Loaded kernel: c1000000->c1a23000
+> >> (XEN)  Init. ramdisk: c1a23000->cf730e00
+> >> (XEN)  Phys-Mach map: cf731000->cf831000
+> >> (XEN)  Start info:    cf831000->cf83147c
+> >> (XEN)  Page tables:   cf832000->cf8b5000
+> >> (XEN)  Boot stack:    cf8b5000->cf8b6000
+> >> (XEN)  TOTAL:         c0000000->cfc00000
+> >> 
+> >> [    0.000000] PT: cf832000 (f832000)
+> >> [    0.000000] Reserving PT: f832000->f8b5000
+> >> 
+> >> And with a 64-bit hypervisor:
+> >> 
+> >> XEN) VIRTUAL MEMORY ARRANGEMENT:
+> >> (XEN)  Loaded kernel: 00000000c1000000->00000000c1a23000
+> >> (XEN)  Init. ramdisk: 00000000c1a23000->00000000cf730e00
+> >> (XEN)  Phys-Mach map: 00000000cf731000->00000000cf831000
+> >> (XEN)  Start info:    00000000cf831000->00000000cf8314b4
+> >> (XEN)  Page tables:   00000000cf832000->00000000cf8b6000
+> >> (XEN)  Boot stack:    00000000cf8b6000->00000000cf8b7000
+> >> (XEN)  TOTAL:         00000000c0000000->00000000cfc00000
+> >> (XEN)  ENTRY ADDRESS: 00000000c16bb22c
+> >> 
+> >> [    0.000000] PT: cf834000 (f834000)
+> >> [    0.000000] Reserving PT: f834000->f8b8000
+> >> 
+> >> So the pt_base is offset by two pages. And looking at c/s 13257
+> >> its not clear to me why this two page offset was added?
+> 
+> Honestly, without looking through this in greater detail I don't
+> recall. That'll have to wait possibly until after the summit, though.
+
+I figured it was baked in the API so not really worth persuing
+a fix and just leave it as is.
+
+> I can't exclude that this is just a forgotten leftover from an earlier
+> version of the patch. I would have thought this was to account
+> for the L4 tables that the guest doesn't see, but
+> - this should only be a single page
+> - this should then also (or rather instead) be subtracted from
+>   nr_pt_frames
+> so that's likely not it.
+> 
+> >> The toolstack works fine - so launching 32-bit guests either
+> >> under a 32-bit hypervisor or 64-bit works fine:
+> >> ] domainbuilder: detail: xc_dom_alloc_segment:   page tables  : 0xcf805000 -> 
+> > 0xcf885000  (pfn 0xf805 + 0x80 pages)
+> >> [    0.000000] PT: cf805000 (f805000)
+> >> 
+> > 
+> > And this patch on top of the others fixes this..
+> 
+> I didn't look at this in too close detail, but I started to get
+> afraid that you might be making the code dependent on
+> many hypervisor implementation details. And should the
+> above turn out to be a bug in the hypervisor, I hope your
+> kernel side changes won't make it impossible to fix that bug.
+
+Actually they will work OK. I've tested it with and without the
+hypervisor bug-fix and it worked nicely.
+
+But this is "make the memblock_reserve" easier to see is getting
+out of hands :-(
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<20120822162119.GB24203@phenom.dumpdata.com> b/config/examples/test/corpus/<20120822162119.GB24203@phenom.dumpdata.com>
new file mode 100644 (file)
index 0000000..0149ffa
--- /dev/null
@@ -0,0 +1,226 @@
+From xen-devel-bounces@lists.xen.org Wed Aug 22 17:35:31 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 22 Aug 2012 17:35:31 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T4Dtt-0002J8-7z
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 22 Aug 2012 17:35:31 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T4Dq8-0004hD-IY; Wed, 22 Aug 2012 16:31:32 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <konrad.wilk@oracle.com>) id 1T4Dq6-0004h8-Hy
+       for xen-devel@lists.xensource.com; Wed, 22 Aug 2012 16:31:30 +0000
+Received: from [85.158.139.83:62520] by server-9.bemta-5.messagelabs.com id
+       CD/03-26123-16905305; Wed, 22 Aug 2012 16:31:29 +0000
+X-Env-Sender: konrad.wilk@oracle.com
+X-Msg-Ref: server-4.tower-182.messagelabs.com!1345653085!26800789!1
+X-Originating-IP: [148.87.113.117]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogMTQ4Ljg3LjExMy4xMTcgPT4gNzA1MDk5\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 5935 invoked from network); 22 Aug 2012 16:31:26 -0000
+Received: from rcsinet15.oracle.com (HELO rcsinet15.oracle.com)
+       (148.87.113.117)
+       by server-4.tower-182.messagelabs.com with DHE-RSA-AES256-SHA encrypted
+       SMTP; 22 Aug 2012 16:31:26 -0000
+Received: from ucsinet21.oracle.com (ucsinet21.oracle.com [156.151.31.93])
+       by rcsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
+       ESMTP id q7MGVLg4016274
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
+       Wed, 22 Aug 2012 16:31:22 GMT
+Received: from acsmt358.oracle.com (acsmt358.oracle.com [141.146.40.158])
+       by ucsinet21.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
+       q7MGVKNJ013239
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
+       Wed, 22 Aug 2012 16:31:20 GMT
+Received: from abhmt119.oracle.com (abhmt119.oracle.com [141.146.116.71])
+       by acsmt358.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
+       q7MGVJlE017805; Wed, 22 Aug 2012 11:31:19 -0500
+Received: from phenom.dumpdata.com (/209.6.85.33)
+       by default (Oracle Beehive Gateway v4.0)
+       with ESMTP ; Wed, 22 Aug 2012 09:31:19 -0700
+Received: by phenom.dumpdata.com (Postfix, from userid 1000)
+       id 4472E4031E; Wed, 22 Aug 2012 12:21:19 -0400 (EDT)
+Date: Wed, 22 Aug 2012 12:21:19 -0400
+From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+To: Jan Beulich <JBeulich@suse.com>
+Message-ID: <20120822162119.GB24203@phenom.dumpdata.com>
+References: <1345133009-21941-1-git-send-email-konrad.wilk@oracle.com>
+       <1345133009-21941-3-git-send-email-konrad.wilk@oracle.com>
+       <alpine.DEB.2.02.1208171835010.15568@kaball.uk.xensource.com>
+       <20120820141305.GA2713@phenom.dumpdata.com>
+       <20120821172732.GA23715@phenom.dumpdata.com>
+       <20120821190317.GA13035@phenom.dumpdata.com>
+       <50351DEF020000780009702A@nat28.tlf.novell.com>
+MIME-Version: 1.0
+Content-Disposition: inline
+In-Reply-To: <50351DEF020000780009702A@nat28.tlf.novell.com>
+User-Agent: Mutt/1.5.21 (2010-09-15)
+X-Source-IP: ucsinet21.oracle.com [156.151.31.93]
+Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
+       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
+       Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
+Subject: Re: [Xen-devel] Q:pt_base in COMPAT mode offset by two pages.
+ Was:Re: [PATCH 02/11] xen/x86: Use memblock_reserve for sensitive areas.
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Wed, Aug 22, 2012 at 04:59:11PM +0100, Jan Beulich wrote:
+> >>> On 21.08.12 at 21:03, Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> wrote:
+> > On Tue, Aug 21, 2012 at 01:27:32PM -0400, Konrad Rzeszutek Wilk wrote:
+> >> On Mon, Aug 20, 2012 at 10:13:05AM -0400, Konrad Rzeszutek Wilk wrote:
+> >> > On Fri, Aug 17, 2012 at 06:35:12PM +0100, Stefano Stabellini wrote:
+> >> > > On Thu, 16 Aug 2012, Konrad Rzeszutek Wilk wrote:
+> >> > > > instead of a big memblock_reserve. This way we can be more
+> >> > > > selective in freeing regions (and it also makes it easier
+> >> > > > to understand where is what).
+> >> > > > 
+> >> > > > [v1: Move the auto_translate_physmap to proper line]
+> >> > > > [v2: Per Stefano suggestion add more comments]
+> >> > > > Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+> >> > > 
+> >> > > much better now!
+> >> > 
+> >> > Thought interestingly enough it breaks 32-bit dom0s (and only dom0s).
+> >> > Will have a revised patch posted shortly.
+> >> 
+> >> Jan, I thought something odd. Part of this code replaces this:
+> >> 
+> >>   memblock_reserve(__pa(xen_start_info->mfn_list),
+> >>           xen_start_info->pt_base - xen_start_info->mfn_list);
+> >> 
+> >> with a more region-by-region area. What I found out that if I boot this
+> >> as 32-bit guest with a 64-bit hypervisor the xen_start_info->pt_base is
+> >> actually wrong.
+> >> 
+> >> Specifically this is what bootup says:
+> >> 
+> >> (good working case - 32bit hypervisor with 32-bit dom0):
+> >> (XEN)  Loaded kernel: c1000000->c1a23000
+> >> (XEN)  Init. ramdisk: c1a23000->cf730e00
+> >> (XEN)  Phys-Mach map: cf731000->cf831000
+> >> (XEN)  Start info:    cf831000->cf83147c
+> >> (XEN)  Page tables:   cf832000->cf8b5000
+> >> (XEN)  Boot stack:    cf8b5000->cf8b6000
+> >> (XEN)  TOTAL:         c0000000->cfc00000
+> >> 
+> >> [    0.000000] PT: cf832000 (f832000)
+> >> [    0.000000] Reserving PT: f832000->f8b5000
+> >> 
+> >> And with a 64-bit hypervisor:
+> >> 
+> >> XEN) VIRTUAL MEMORY ARRANGEMENT:
+> >> (XEN)  Loaded kernel: 00000000c1000000->00000000c1a23000
+> >> (XEN)  Init. ramdisk: 00000000c1a23000->00000000cf730e00
+> >> (XEN)  Phys-Mach map: 00000000cf731000->00000000cf831000
+> >> (XEN)  Start info:    00000000cf831000->00000000cf8314b4
+> >> (XEN)  Page tables:   00000000cf832000->00000000cf8b6000
+> >> (XEN)  Boot stack:    00000000cf8b6000->00000000cf8b7000
+> >> (XEN)  TOTAL:         00000000c0000000->00000000cfc00000
+> >> (XEN)  ENTRY ADDRESS: 00000000c16bb22c
+> >> 
+> >> [    0.000000] PT: cf834000 (f834000)
+> >> [    0.000000] Reserving PT: f834000->f8b8000
+> >> 
+> >> So the pt_base is offset by two pages. And looking at c/s 13257
+> >> its not clear to me why this two page offset was added?
+> 
+> Actually, the adjustment turns out to be correct: The page
+> tables for a 32-on-64 dom0 get allocated in the order "first L1",
+> "first L2", "first L3", so the offset to the page table base is
+> indeed 2. When reading xen/include/public/xen.h's comment
+> very strictly, this is not a violation (since there nothing is said
+> that the first thing in the page table space is pointed to by
+> pt_base; I admit that this seems to be implied though, namely
+> do I think that it is implied that the page table space is the
+> range [pt_base, pt_base + nt_pt_frames), whereas that
+> range here indeed is [pt_base - 2, pt_base - 2 + nt_pt_frames),
+> which - without a priori knowledge - the kernel would have
+> difficulty to figure out).
+
+And only in compat mode. <sigh> Well I am happy that we have found
+this so we can document it more throughly but I think I will
+step away from those memblock patches for a while as the earlier
+
+ "lets just reserve everything from mfn->list up to the pt_base"
+
+and then in the mmu:
+ "reserve everything from pt_base up to nr_pt_frames*PAGE_SIZE"
+
+works.
+
+And document it in the Linux kernel a bit more of why we want to
+do that.
+> 
+> Below is a debugging patch I used to see the full picture, if you
+> want to double check.
+
+I trust you and the production of said pages in the L1, L2, L3
+is closly related to how the 64-bit does it. Which is L4, L1, L2, L3
+and then the L1's follow.
+
+The toolstack does it in L4, L3, L2, L1 order..
+> 
+> One thing I also noticed is that nr_pt_frames apparently is
+> one too high in this case, as the L4 is not really part of the
+> page tables from the kernel's perspective (and not represented
+> anywhere in the corresponding VA range).
+> 
+> Jan
+> 
+> --- a/xen/arch/x86/domain_build.c
+> +++ b/xen/arch/x86/domain_build.c
+> @@ -940,6 +940,7 @@ int __init construct_dom0(
+>      si->flags       |= (xen_processor_pmbits << 8) & SIF_PM_MASK;
+>      si->pt_base      = vpt_start + 2 * PAGE_SIZE * !!is_pv_32on64_domain(d);
+>      si->nr_pt_frames = nr_pt_pages;
+> +printk("PT#%lx\n", si->nr_pt_frames);//temp
+>      si->mfn_list     = vphysmap_start;
+>      snprintf(si->magic, sizeof(si->magic), "xen-3.0-x86_%d%s",
+>               elf_64bit(&elf) ? 64 : 32, parms.pae ? "p" : "");
+> @@ -1115,6 +1116,10 @@ int __init construct_dom0(
+>                  process_pending_softirqs();
+>          }
+>      }
+> +show_page_walk(vpt_start);//temp
+> +show_page_walk(si->pt_base);//temp
+> +show_page_walk(v_start);//temp
+> +show_page_walk(v_end - 1);//temp
+>  
+>      if ( initrd_len != 0 )
+>      {
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<20120822185519.GA29609@phenom.dumpdata.com> b/config/examples/test/corpus/<20120822185519.GA29609@phenom.dumpdata.com>
new file mode 100644 (file)
index 0000000..9a561b6
--- /dev/null
@@ -0,0 +1,355 @@
+From xen-devel-bounces@lists.xen.org Wed Aug 22 20:09:16 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 22 Aug 2012 20:09:16 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T4GIj-0002vW-3t
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 22 Aug 2012 20:09:16 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T4GF8-000266-3V; Wed, 22 Aug 2012 19:05:30 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <ketuzsezr@gmail.com>) id 1T4GF6-00025z-7F
+       for xen-devel@lists.xensource.com; Wed, 22 Aug 2012 19:05:28 +0000
+Received: from [85.158.143.35:46865] by server-2.bemta-4.messagelabs.com id
+       70/56-21239-77D25305; Wed, 22 Aug 2012 19:05:27 +0000
+X-Env-Sender: ketuzsezr@gmail.com
+X-Msg-Ref: server-7.tower-21.messagelabs.com!1345662324!11667178!1
+X-Originating-IP: [209.85.212.43]
+X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 371 invoked from network); 22 Aug 2012 19:05:25 -0000
+Received: from mail-vb0-f43.google.com (HELO mail-vb0-f43.google.com)
+       (209.85.212.43)
+       by server-7.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
+       22 Aug 2012 19:05:25 -0000
+Received: by vbbfq11 with SMTP id fq11so1804502vbb.30
+       for <xen-devel@lists.xensource.com>;
+       Wed, 22 Aug 2012 12:05:24 -0700 (PDT)
+DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
+       h=sender:date:from:to:cc:subject:message-id:references:mime-version
+       :content-type:content-disposition:in-reply-to:user-agent;
+       bh=3OAIx6L7/BbeznqjWfDUB8FeM4uPin15xCxbaXEUWjY=;
+       b=MXQKNv+heWSIrPGkTTobuqZ0TlngbnrjUkstMf7OAxO1zrqsag5LbVOK2GDgv3ZS42
+       JbgA+2GveoIj9GE/38pEEYIJZxz4PQjtN2y6bjPrLY3kwuv9cNXnTK5TkUXfvxrl4pWU
+       ShvY64GE8tRZUpUHtgqwWxRWFZ4Ky7bgjQUM6W7sixd8DolnqWqU3ZhLAXyFJythrCxw
+       /OumzZBCjy4+1XUlFyxsE6uxa1FMPta3LsOAi0unqKEWEuX5DBZFKnxNJ4hXwISkvowt
+       UG6kq/SfHYZFuh3h+/ybxpu7JqpzmXWQwn4ZIwv+4LT/0LYlhB9gfFTfXv014tJ7AmvN
+       eiIg==
+Received: by 10.220.116.6 with SMTP id k6mr17692947vcq.59.1345662324154;
+       Wed, 22 Aug 2012 12:05:24 -0700 (PDT)
+Received: from phenom.dumpdata.com
+       (209-6-85-33.c3-0.smr-ubr2.sbo-smr.ma.cable.rcn.com. [209.6.85.33])
+       by mx.google.com with ESMTPS id n19sm2624141vde.5.2012.08.22.12.05.22
+       (version=TLSv1/SSLv3 cipher=OTHER);
+       Wed, 22 Aug 2012 12:05:23 -0700 (PDT)
+Date: Wed, 22 Aug 2012 14:55:19 -0400
+From: Konrad Rzeszutek Wilk <konrad@kernel.org>
+To: Jan Beulich <JBeulich@suse.com>
+Message-ID: <20120822185519.GA29609@phenom.dumpdata.com>
+References: <1345133009-21941-1-git-send-email-konrad.wilk@oracle.com>
+       <1345133009-21941-3-git-send-email-konrad.wilk@oracle.com>
+       <alpine.DEB.2.02.1208171835010.15568@kaball.uk.xensource.com>
+       <20120820141305.GA2713@phenom.dumpdata.com>
+       <20120821172732.GA23715@phenom.dumpdata.com>
+       <20120821190317.GA13035@phenom.dumpdata.com>
+       <50351DEF020000780009702A@nat28.tlf.novell.com>
+MIME-Version: 1.0
+Content-Disposition: inline
+In-Reply-To: <50351DEF020000780009702A@nat28.tlf.novell.com>
+User-Agent: Mutt/1.5.21 (2010-09-15)
+Cc: "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
+       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
+       "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
+       Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,T_DKIM_INVALID,UNPARSEABLE_RELAY autolearn=unavailable
+       version=3.3.1
+Subject: Re: [Xen-devel] Q:pt_base in COMPAT mode offset by two pages.
+ Was:Re: [PATCH 02/11] xen/x86: Use memblock_reserve for sensitive areas.
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Wed, Aug 22, 2012 at 04:59:11PM +0100, Jan Beulich wrote:
+> >>> On 21.08.12 at 21:03, Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> wrote:
+> > On Tue, Aug 21, 2012 at 01:27:32PM -0400, Konrad Rzeszutek Wilk wrote:
+> >> On Mon, Aug 20, 2012 at 10:13:05AM -0400, Konrad Rzeszutek Wilk wrote:
+> >> > On Fri, Aug 17, 2012 at 06:35:12PM +0100, Stefano Stabellini wrote:
+> >> > > On Thu, 16 Aug 2012, Konrad Rzeszutek Wilk wrote:
+> >> > > > instead of a big memblock_reserve. This way we can be more
+> >> > > > selective in freeing regions (and it also makes it easier
+> >> > > > to understand where is what).
+> >> > > > 
+> >> > > > [v1: Move the auto_translate_physmap to proper line]
+> >> > > > [v2: Per Stefano suggestion add more comments]
+> >> > > > Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+> >> > > 
+> >> > > much better now!
+> >> > 
+> >> > Thought interestingly enough it breaks 32-bit dom0s (and only dom0s).
+> >> > Will have a revised patch posted shortly.
+> >> 
+> >> Jan, I thought something odd. Part of this code replaces this:
+> >> 
+> >>   memblock_reserve(__pa(xen_start_info->mfn_list),
+> >>           xen_start_info->pt_base - xen_start_info->mfn_list);
+> >> 
+> >> with a more region-by-region area. What I found out that if I boot this
+> >> as 32-bit guest with a 64-bit hypervisor the xen_start_info->pt_base is
+> >> actually wrong.
+> >> 
+> >> Specifically this is what bootup says:
+> >> 
+> >> (good working case - 32bit hypervisor with 32-bit dom0):
+> >> (XEN)  Loaded kernel: c1000000->c1a23000
+> >> (XEN)  Init. ramdisk: c1a23000->cf730e00
+> >> (XEN)  Phys-Mach map: cf731000->cf831000
+> >> (XEN)  Start info:    cf831000->cf83147c
+> >> (XEN)  Page tables:   cf832000->cf8b5000
+> >> (XEN)  Boot stack:    cf8b5000->cf8b6000
+> >> (XEN)  TOTAL:         c0000000->cfc00000
+> >> 
+> >> [    0.000000] PT: cf832000 (f832000)
+> >> [    0.000000] Reserving PT: f832000->f8b5000
+> >> 
+> >> And with a 64-bit hypervisor:
+> >> 
+> >> XEN) VIRTUAL MEMORY ARRANGEMENT:
+> >> (XEN)  Loaded kernel: 00000000c1000000->00000000c1a23000
+> >> (XEN)  Init. ramdisk: 00000000c1a23000->00000000cf730e00
+> >> (XEN)  Phys-Mach map: 00000000cf731000->00000000cf831000
+> >> (XEN)  Start info:    00000000cf831000->00000000cf8314b4
+> >> (XEN)  Page tables:   00000000cf832000->00000000cf8b6000
+> >> (XEN)  Boot stack:    00000000cf8b6000->00000000cf8b7000
+> >> (XEN)  TOTAL:         00000000c0000000->00000000cfc00000
+> >> (XEN)  ENTRY ADDRESS: 00000000c16bb22c
+> >> 
+> >> [    0.000000] PT: cf834000 (f834000)
+> >> [    0.000000] Reserving PT: f834000->f8b8000
+> >> 
+> >> So the pt_base is offset by two pages. And looking at c/s 13257
+> >> its not clear to me why this two page offset was added?
+> 
+> Actually, the adjustment turns out to be correct: The page
+> tables for a 32-on-64 dom0 get allocated in the order "first L1",
+> "first L2", "first L3", so the offset to the page table base is
+> indeed 2. When reading xen/include/public/xen.h's comment
+> very strictly, this is not a violation (since there nothing is said
+> that the first thing in the page table space is pointed to by
+> pt_base; I admit that this seems to be implied though, namely
+> do I think that it is implied that the page table space is the
+> range [pt_base, pt_base + nt_pt_frames), whereas that
+> range here indeed is [pt_base - 2, pt_base - 2 + nt_pt_frames),
+> which - without a priori knowledge - the kernel would have
+> difficulty to figure out).
+> 
+> Below is a debugging patch I used to see the full picture, if you
+> want to double check.
+
+Thinking of just sticking this patch then:
+
+>From 9aa58784b163ee435ff5596cf3ec059b57ab85e1 Mon Sep 17 00:00:00 2001
+From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+Date: Wed, 22 Aug 2012 13:00:10 -0400
+Subject: [PATCH] Revert "xen/x86: Workaround 64-bit hypervisor and 32-bit
+ initial domain." and "xen/x86: Use memblock_reserve for
+ sensitive areas."
+
+This reverts commit 806c312e50f122c47913145cf884f53dd09d9199 and
+commit 59b294403e9814e7c1154043567f0d71bac7a511.
+
+And also documents setup.c and why we want to do it that way, which
+is that we tried to make the the memblock_reserve more selective so
+that it would be clear what region is reserved. Sadly we ran
+in the problem wherein on a 64-bit hypervisor with a 32-bit
+initial domain, the pt_base has the cr3 value which is not
+neccessarily where the pagetable starts! As Jan put it: "
+Actually, the adjustment turns out to be correct: The page
+tables for a 32-on-64 dom0 get allocated in the order "first L1",
+"first L2", "first L3", so the offset to the page table base is
+indeed 2. When reading xen/include/public/xen.h's comment
+very strictly, this is not a violation (since there nothing is said
+that the first thing in the page table space is pointed to by
+pt_base; I admit that this seems to be implied though, namely
+do I think that it is implied that the page table space is the
+range [pt_base, pt_base + nt_pt_frames), whereas that
+range here indeed is [pt_base - 2, pt_base - 2 + nt_pt_frames),
+which - without a priori knowledge - the kernel would have
+difficulty to figure out)." - so lets just fall back to the
+easy way and reserve the whole region.
+
+Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+---
+ arch/x86/xen/enlighten.c |   60 ----------------------------------------------
+ arch/x86/xen/p2m.c       |    5 ----
+ arch/x86/xen/setup.c     |   27 ++++++++++++++++++++
+ 3 files changed, 27 insertions(+), 65 deletions(-)
+
+diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c
+index c1e940d..d87a038 100644
+--- a/arch/x86/xen/enlighten.c
++++ b/arch/x86/xen/enlighten.c
+@@ -998,66 +998,7 @@ static int xen_write_msr_safe(unsigned int msr, unsigned low, unsigned high)
+       return ret;
+ }
+-/*
+- * If the MFN is not in the m2p (provided to us by the hypervisor) this
+- * function won't do anything. In practice this means that the XenBus
+- * MFN won't be available for the initial domain. */
+-static unsigned long __init xen_reserve_mfn(unsigned long mfn)
+-{
+-      unsigned long pfn, end_pfn = 0;
+-
+-      if (!mfn)
+-              return end_pfn;
+-
+-      pfn = mfn_to_pfn(mfn);
+-      if (phys_to_machine_mapping_valid(pfn)) {
+-              end_pfn = PFN_PHYS(pfn) + PAGE_SIZE;
+-              memblock_reserve(PFN_PHYS(pfn), end_pfn);
+-      }
+-      return end_pfn;
+-}
+-static void __init xen_reserve_internals(void)
+-{
+-      unsigned long size;
+-      unsigned long last_phys = 0;
+-
+-      if (!xen_pv_domain())
+-              return;
+-
+-      /* xen_start_info does not exist in the M2P, hence can't use
+-       * xen_reserve_mfn. */
+-      memblock_reserve(__pa(xen_start_info), PAGE_SIZE);
+-      last_phys = __pa(xen_start_info) + PAGE_SIZE;
+-
+-      last_phys = max(xen_reserve_mfn(PFN_DOWN(xen_start_info->shared_info)), last_phys);
+-      last_phys = max(xen_reserve_mfn(xen_start_info->store_mfn), last_phys);
+-      if (!xen_initial_domain())
+-              last_phys = max(xen_reserve_mfn(xen_start_info->console.domU.mfn), last_phys);
+-
+-      if (xen_feature(XENFEAT_auto_translated_physmap))
+-              return;
+-
+-      /*
+-       * ALIGN up to compensate for the p2m_page pointing to an array that
+-       * can partially filled (look in xen_build_dynamic_phys_to_machine).
+-       */
+-
+-      size = PAGE_ALIGN(xen_start_info->nr_pages * sizeof(unsigned long));
+-
+-      /* We could use xen_reserve_mfn here, but would end up looping quite
+-       * a lot (and call memblock_reserve for each PAGE), so lets just use
+-       * the easy way and reserve it wholesale. */
+-      memblock_reserve(__pa(xen_start_info->mfn_list), size);
+-      last_phys = max(__pa(xen_start_info->mfn_list) + size, last_phys);
+-      /* The pagetables are reserved in mmu.c */
+-
+-      /* Under 64-bit hypervisor with a 32-bit domain, the hypervisor
+-       * offsets the pt_base by two pages. Hence the reservation that is done
+-       * in mmu.c misses two pages. We correct it here if we detect this. */
+-      if (last_phys < __pa(xen_start_info->pt_base))
+-              memblock_reserve(last_phys, __pa(xen_start_info->pt_base) - last_phys);
+-}
+ void xen_setup_shared_info(void)
+ {
+       if (!xen_feature(XENFEAT_auto_translated_physmap)) {
+@@ -1418,7 +1359,6 @@ asmlinkage void __init xen_start_kernel(void)
+       xen_raw_console_write("mapping kernel into physical memory\n");
+       xen_setup_kernel_pagetable((pgd_t *)xen_start_info->pt_base, xen_start_info->nr_pages);
+-      xen_reserve_internals();
+       /* Allocate and initialize top and mid mfn levels for p2m structure */
+       xen_build_mfn_list_list();
+diff --git a/arch/x86/xen/p2m.c b/arch/x86/xen/p2m.c
+index 95c3ea2..c3e9291 100644
+--- a/arch/x86/xen/p2m.c
++++ b/arch/x86/xen/p2m.c
+@@ -388,11 +388,6 @@ void __init xen_build_dynamic_phys_to_machine(void)
+       }
+       m2p_override_init();
+-
+-      /* NOTE: We cannot call memblock_reserve here for the mfn_list as there
+-       * isn't enough pieces to make it work (for one - we are still using the
+-       * Xen provided pagetable). Do it later in xen_reserve_internals.
+-       */
+ }
+ #ifdef CONFIG_X86_64
+ #include <linux/bootmem.h>
+diff --git a/arch/x86/xen/setup.c b/arch/x86/xen/setup.c
+index 9efca75..740517b 100644
+--- a/arch/x86/xen/setup.c
++++ b/arch/x86/xen/setup.c
+@@ -424,6 +424,33 @@ char * __init xen_memory_setup(void)
+       e820_add_region(ISA_START_ADDRESS, ISA_END_ADDRESS - ISA_START_ADDRESS,
+                       E820_RESERVED);
++      /*
++       * Reserve Xen bits:
++       *  - mfn_list
++       *  - xen_start_info
++       * See comment above "struct start_info" in <xen/interface/xen.h>
++       * We tried to make the the memblock_reserve more selective so
++       * that it would be clear what region is reserved. Sadly we ran
++       * in the problem wherein on a 64-bit hypervisor with a 32-bit
++       * initial domain, the pt_base has the cr3 value which is not
++       * neccessarily where the pagetable starts! As Jan put it: "
++       * Actually, the adjustment turns out to be correct: The page
++       * tables for a 32-on-64 dom0 get allocated in the order "first L1",
++       * "first L2", "first L3", so the offset to the page table base is
++       * indeed 2. When reading xen/include/public/xen.h's comment
++       * very strictly, this is not a violation (since there nothing is said
++       * that the first thing in the page table space is pointed to by
++       * pt_base; I admit that this seems to be implied though, namely
++       * do I think that it is implied that the page table space is the
++       * range [pt_base, pt_base + nt_pt_frames), whereas that
++       * range here indeed is [pt_base - 2, pt_base - 2 + nt_pt_frames),
++       * which - without a priori knowledge - the kernel would have
++       * difficulty to figure out)." - so lets just fall back to the
++       * easy way and reserve the whole region.
++       */
++      memblock_reserve(__pa(xen_start_info->mfn_list),
++                       xen_start_info->pt_base - xen_start_info->mfn_list);
++
+       sanitize_e820_map(e820.map, ARRAY_SIZE(e820.map), &e820.nr_map);
+       return "Xen";
+-- 
+1.7.7.6
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<20120823154012.GA18845@phenom.dumpdata.com> b/config/examples/test/corpus/<20120823154012.GA18845@phenom.dumpdata.com>
new file mode 100644 (file)
index 0000000..de87130
--- /dev/null
@@ -0,0 +1,233 @@
+From xen-devel-bounces@lists.xen.org Thu Aug 23 16:55:15 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 23 Aug 2012 16:55:15 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T4ZkT-0002x6-5m
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 23 Aug 2012 16:55:15 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T4Zg2-0006I3-Mj; Thu, 23 Aug 2012 15:50:34 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <konrad.wilk@oracle.com>) id 1T4Zg1-0006Hu-EW
+       for xen-devel@lists.xensource.com; Thu, 23 Aug 2012 15:50:33 +0000
+Received: from [85.158.143.35:63047] by server-1.bemta-4.messagelabs.com id
+       C1/AC-12504-84156305; Thu, 23 Aug 2012 15:50:32 +0000
+X-Env-Sender: konrad.wilk@oracle.com
+X-Msg-Ref: server-7.tower-21.messagelabs.com!1345737025!11845558!1
+X-Originating-IP: [148.87.113.117]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogMTQ4Ljg3LjExMy4xMTcgPT4gNzA3ODk4\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 25652 invoked from network); 23 Aug 2012 15:50:31 -0000
+Received: from rcsinet15.oracle.com (HELO rcsinet15.oracle.com)
+       (148.87.113.117)
+       by server-7.tower-21.messagelabs.com with DHE-RSA-AES256-SHA encrypted
+       SMTP; 23 Aug 2012 15:50:31 -0000
+Received: from acsinet22.oracle.com (acsinet22.oracle.com [141.146.126.238])
+       by rcsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
+       ESMTP id q7NFoGux022857
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
+       Thu, 23 Aug 2012 15:50:17 GMT
+Received: from acsmt356.oracle.com (acsmt356.oracle.com [141.146.40.156])
+       by acsinet22.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
+       q7NFoGLu017847
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
+       Thu, 23 Aug 2012 15:50:16 GMT
+Received: from abhmt103.oracle.com (abhmt103.oracle.com [141.146.116.55])
+       by acsmt356.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
+       q7NFoGbZ014729; Thu, 23 Aug 2012 10:50:16 -0500
+Received: from phenom.dumpdata.com (/209.6.85.33)
+       by default (Oracle Beehive Gateway v4.0)
+       with ESMTP ; Thu, 23 Aug 2012 08:50:15 -0700
+Received: by phenom.dumpdata.com (Postfix, from userid 1000)
+       id 11BBF4031E; Thu, 23 Aug 2012 11:40:13 -0400 (EDT)
+Date: Thu, 23 Aug 2012 11:40:13 -0400
+From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+Message-ID: <20120823154012.GA18845@phenom.dumpdata.com>
+References: <1345133009-21941-1-git-send-email-konrad.wilk@oracle.com>
+       <1345133009-21941-7-git-send-email-konrad.wilk@oracle.com>
+       <alpine.DEB.2.02.1208171839590.15568@kaball.uk.xensource.com>
+       <20120817174549.GA14257@phenom.dumpdata.com>
+       <alpine.DEB.2.02.1208201243180.15568@kaball.uk.xensource.com>
+       <1345463624.28762.67.camel@zakaz.uk.xensource.com>
+       <alpine.DEB.2.02.1208201257420.15568@kaball.uk.xensource.com>
+MIME-Version: 1.0
+Content-Disposition: inline
+In-Reply-To: <alpine.DEB.2.02.1208201257420.15568@kaball.uk.xensource.com>
+User-Agent: Mutt/1.5.21 (2010-09-15)
+X-Source-IP: acsinet22.oracle.com [141.146.126.238]
+Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
+       Ian Campbell <Ian.Campbell@citrix.com>,
+       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 06/11] xen/mmu: For 64-bit do not call
+ xen_map_identity_early
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Mon, Aug 20, 2012 at 12:58:37PM +0100, Stefano Stabellini wrote:
+> On Mon, 20 Aug 2012, Ian Campbell wrote:
+> > On Mon, 2012-08-20 at 12:45 +0100, Stefano Stabellini wrote:
+> > > On Fri, 17 Aug 2012, Konrad Rzeszutek Wilk wrote:
+> > > > On Fri, Aug 17, 2012 at 06:41:23PM +0100, Stefano Stabellini wrote:
+> > > > > On Thu, 16 Aug 2012, Konrad Rzeszutek Wilk wrote:
+> > > > > > B/c we do not need it. During the startup the Xen provides
+> > > > > > us with all the memory mapped that we need to function.
+> > > > > 
+> > > > > Shouldn't we check to make sure that is actually true (I am thinking at
+> > > > > nr_pt_frames)?
+> > > > 
+> > > > I was looking at the source code (hypervisor) to figure it out and
+> > > > that is certainly true.
+> > > > 
+> > > > 
+> > > > > Or is it actually stated somewhere in the Xen headers?
+> > > > 
+> > > > Couldn't find it, but after looking so long at the source code
+> > > > I didn't even bother looking for it.
+> > > > 
+> > > > Thought to be honest - I only looked at how the 64-bit pagetables
+> > > > were set up, so I didn't dare to touch the 32-bit. Hence the #ifdef
+> > > 
+> > > I think that we need to involve some Xen maintainers and get this
+> > > written down somewhere in the public headers, otherwise we have no
+> > > guarantees that it is going to stay as it is in the next Xen versions.
+> > > 
+> > > Maybe we just need to add a couple of lines of comment to
+> > > xen/include/public/xen.h.
+> > 
+> > The start of day memory layout for PV guests is written down in the
+> > comment just before struct start_info at
+> > http://xenbits.xen.org/docs/unstable/hypercall/include,public,xen.h.html#Struct_start_info
+> > 
+> > (I haven't read this thread to determine if what is documented matches
+> > what you guys are talking about relying on)
+> 
+> but it is not written down how much physical memory is going to be
+> mapped in the bootstrap page tables.
+
+How about this:
+
+
+>From 43fd7a5d9ecd31c2fc26851523cd4b5f7650fb39 Mon Sep 17 00:00:00 2001
+From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+Date: Thu, 12 Jul 2012 13:59:36 -0400
+Subject: [PATCH] xen/mmu: For 64-bit do not call xen_map_identity_early
+
+B/c we do not need it. During the startup the Xen provides
+us with all the initial memory mapped that we need to function.
+
+The initial memory mapped is up to the bootstack, which means
+we can reference using __ka up to 4.f):
+
+(from xen/interface/xen.h):
+
+ 4. This the order of bootstrap elements in the initial virtual region:
+   a. relocated kernel image
+   b. initial ram disk              [mod_start, mod_len]
+   c. list of allocated page frames [mfn_list, nr_pages]
+   d. start_info_t structure        [register ESI (x86)]
+   e. bootstrap page tables         [pt_base, CR3 (x86)]
+   f. bootstrap stack               [register ESP (x86)]
+
+(initial ram disk may be ommitted).
+
+[v1: More comments in git commit]
+Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+---
+ arch/x86/xen/mmu.c |   11 +++++------
+ 1 files changed, 5 insertions(+), 6 deletions(-)
+
+diff --git a/arch/x86/xen/mmu.c b/arch/x86/xen/mmu.c
+index 7247e5a..a59070b 100644
+--- a/arch/x86/xen/mmu.c
++++ b/arch/x86/xen/mmu.c
+@@ -84,6 +84,7 @@
+  */
+ DEFINE_SPINLOCK(xen_reservation_lock);
++#ifdef CONFIG_X86_32
+ /*
+  * Identity map, in addition to plain kernel map.  This needs to be
+  * large enough to allocate page table pages to allocate the rest.
+@@ -91,7 +92,7 @@ DEFINE_SPINLOCK(xen_reservation_lock);
+  */
+ #define LEVEL1_IDENT_ENTRIES  (PTRS_PER_PTE * 4)
+ static RESERVE_BRK_ARRAY(pte_t, level1_ident_pgt, LEVEL1_IDENT_ENTRIES);
+-
++#endif
+ #ifdef CONFIG_X86_64
+ /* l3 pud for userspace vsyscall mapping */
+ static pud_t level3_user_vsyscall[PTRS_PER_PUD] __page_aligned_bss;
+@@ -1628,7 +1629,7 @@ static void set_page_prot(void *addr, pgprot_t prot)
+       if (HYPERVISOR_update_va_mapping((unsigned long)addr, pte, 0))
+               BUG();
+ }
+-
++#ifdef CONFIG_X86_32
+ static void __init xen_map_identity_early(pmd_t *pmd, unsigned long max_pfn)
+ {
+       unsigned pmdidx, pteidx;
+@@ -1679,7 +1680,7 @@ static void __init xen_map_identity_early(pmd_t *pmd, unsigned long max_pfn)
+       set_page_prot(pmd, PAGE_KERNEL_RO);
+ }
+-
++#endif
+ void __init xen_setup_machphys_mapping(void)
+ {
+       struct xen_machphys_mapping mapping;
+@@ -1765,14 +1766,12 @@ void __init xen_setup_kernel_pagetable(pgd_t *pgd, unsigned long max_pfn)
+       /* Note that we don't do anything with level1_fixmap_pgt which
+        * we don't need. */
+-      /* Set up identity map */
+-      xen_map_identity_early(level2_ident_pgt, max_pfn);
+-
+       /* Make pagetable pieces RO */
+       set_page_prot(init_level4_pgt, PAGE_KERNEL_RO);
+       set_page_prot(level3_ident_pgt, PAGE_KERNEL_RO);
+       set_page_prot(level3_kernel_pgt, PAGE_KERNEL_RO);
+       set_page_prot(level3_user_vsyscall, PAGE_KERNEL_RO);
++      set_page_prot(level2_ident_pgt, PAGE_KERNEL_RO);
+       set_page_prot(level2_kernel_pgt, PAGE_KERNEL_RO);
+       set_page_prot(level2_fixmap_pgt, PAGE_KERNEL_RO);
+-- 
+1.7.7.6
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<20120831193746.GA13009@bloms.de> b/config/examples/test/corpus/<20120831193746.GA13009@bloms.de>
new file mode 100644 (file)
index 0000000..ac7d5b2
--- /dev/null
@@ -0,0 +1,148 @@
+From xen-devel-bounces@lists.xen.org Fri Aug 31 20:42:38 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 31 Aug 2012 20:42:38 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T7X6x-00085A-Mn
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 31 Aug 2012 20:42:38 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T7X2Q-0005On-Lc; Fri, 31 Aug 2012 19:37:54 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <dieter@bloms.de>) id 1T7X2N-0005Of-4u
+       for xen-devel@lists.xen.org; Fri, 31 Aug 2012 19:37:53 +0000
+Received: from [85.158.139.83:63487] by server-5.bemta-5.messagelabs.com id
+       0C/BB-30514-E8211405; Fri, 31 Aug 2012 19:37:50 +0000
+X-Env-Sender: dieter@bloms.de
+X-Msg-Ref: server-3.tower-182.messagelabs.com!1346441868!27965002!1
+X-Originating-IP: [84.200.248.35]
+X-SpamReason: No, hits=0.5 required=7.0 tests=BODY_RANDOM_LONG
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 7455 invoked from network); 31 Aug 2012 19:37:48 -0000
+Received: from smtp.bloms.de (HELO smtp.bloms.de) (84.200.248.35)
+       by server-3.tower-182.messagelabs.com with DHE-RSA-AES256-SHA encrypted
+       SMTP; 31 Aug 2012 19:37:48 -0000
+Received: from smtp.bloms.de (localhost [127.0.0.1])
+       by smtp.bloms.de (Postfix) with ESMTP id 71AB11C140D5;
+       Fri, 31 Aug 2012 21:37:47 +0200 (CEST)
+DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=bloms.de; h=date:from:to
+       :cc:subject:message-id:references:mime-version:content-type
+       :in-reply-to; s=selector1; bh=tiAvst1z86HR9Fany52SrXwonBc=; b=XT
+       +3Ni0waq9vK0Sdi0lb7ISWBrd78Q250XECmRu6+bti4wEQv727xtVDCPzNoQhpuZ
+       igAP4hMAfXr0vfQM+BcDerf0CzLcqdnQxm+r4yD5yektNhMNSq4asg1DReXcDMG6
+       wTgU+j86TECkt6V9HUHfzeIw+th1uYteU90Ku3MWYN7jcBKHg0Sp/vzOV6AQh6hk
+       Wo0j04iNWXlz6m3M7fLd2/2K+cjJbQ6V8x/TPv6/Np3gaZVAK1C5zwmaM3BP0yBb
+       /ubj+aTIfCeNgtlJvratrrCCsJMuwtlvt4q7CeTOVaKaKO4/eJgtj0+aIKJrCHCS
+       4IHO0CpDDAjsYcS1DhMdj1qS5sYEm94u9tj7NnQd82+8qbTTfMKS+Pc9jlJhCTOv
+       UY2Mww8UxXF9loxo5Q4tgujMZN0y079d32dImm/B4OhshoeZop0CWMf//8LwZUlr
+       Is00qJJ4OOxw/0a+YJ/SOVDSqmELuheAJJxmeaU09vBorkZITgnMsipP0QVTZnMk
+       qUpD99X3koG5sgITQ2hWra+9DfTimc9KNNxf0lpVYS9J/kgq3L/JRYKp0uqTjGzm
+       20SDxraSWsoRw1gYm3sg0CJ3R6NnLLqPu/KQWMOPZISbW+H1aIO/YC1A72SfZ42I
+       j+qwKt2SZ9rZ0QorKL1cUbjjorh6HO2Hg3Axp2o4w=
+Received: by smtp.bloms.de (Postfix, from userid 1000)
+       id 5CCD81C140E9; Fri, 31 Aug 2012 21:37:47 +0200 (CEST)
+Date: Fri, 31 Aug 2012 21:37:47 +0200
+From: Dieter Bloms <dieter@bloms.de>
+To: Ian Campbell <Ian.Campbell@citrix.com>
+Message-ID: <20120831193746.GA13009@bloms.de>
+References: <1344935141.5926.6.camel@zakaz.uk.xensource.com>
+       <20120814100704.GA19704@bloms.de>
+       <1346421542.27277.218.camel@zakaz.uk.xensource.com>
+       <1346425278.27277.224.camel@zakaz.uk.xensource.com>
+       <5040F7140200007800097E91@nat28.tlf.novell.com>
+       <1346428292.27277.243.camel@zakaz.uk.xensource.com>
+       <5040FB490200007800097ED2@nat28.tlf.novell.com>
+       <50409CE002000076000B3B44@novprvoes0310.provo.novell.com>
+       <1346434547.5820.10.camel@dagon.hellion.org.uk>
+MIME-Version: 1.0
+Content-Disposition: inline
+In-Reply-To: <1346434547.5820.10.camel@dagon.hellion.org.uk>
+User-Agent: Mutt/1.5.20 (2009-06-14)
+Cc: Charles Arnold <CARNOLD@suse.com>, Kirk Allan <kallan@suse.com>,
+       Dieter Bloms <xensource.com@bloms.de>,
+       Ian Jackson <Ian.Jackson@eu.citrix.com>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
+       Jan Beulich <JBeulich@suse.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,T_DKIM_INVALID,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [Xen-users] Xen 4.2 TODO (io and irq parameter are
+ not evaluated by xl)
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+Hi,
+
+Ian, thank you for implementing this io and irq support.
+
+On Fri, Aug 31, Ian Campbell wrote:
+
+> On Fri, 2012-08-31 at 18:15 +0100, Kirk Allan wrote:
+> 
+> > > Charles, Kirk, could you comment here?
+> > 
+> > In one of my Window's vm config files, I was able to get the vm to
+> > boot using ioports=['3f8-3ff'].  My goal was to do serial debugging of
+> > the Windows vm.  I also added irq=[4] to the config file.  However, I
+> > was not able to actually get a debug session to work.  The physical
+> > machine running windbg received a string from the vm which gave me
+> > hope that it was working, but then it never received further data so
+> > the vm eventually booted without being attached to the debugger.
+> 
+> Thanks, the question was whether it would be useful to implement the
+>      ioports = '3f8-3ff'
+>      irq = 4
+> syntax as well as the
+>      ioports = ['3f8-3ff']
+>      irq = [4]
+> but it looks like you are actually using the array version anyway?
+
+I use this syntax with xm:
+
+ioports=['0378-037a']
+irq=[5]
+
+and it works good.
+
+
+-- 
+Best regards
+
+  Dieter
+
+--
+I do not get viruses because I do not use MS software.
+If you use Outlook then please do not put my email address in your
+address-book so that WHEN you get a virus it won't use my address in the
+>From field.
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<20120902053549.GF8912@reaktio.net> b/config/examples/test/corpus/<20120902053549.GF8912@reaktio.net>
new file mode 100644 (file)
index 0000000..e41cdf1
--- /dev/null
@@ -0,0 +1,200 @@
+From xen-devel-bounces@lists.xen.org Sun Sep 02 06:40:56 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Sun, 02 Sep 2012 06:40:56 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T82vV-0007WG-Ae
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Sun, 02 Sep 2012 06:40:56 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T82qh-00051U-Cg; Sun, 02 Sep 2012 05:35:55 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <pasik@iki.fi>) id 1T82qf-00051P-Cv
+       for xen-devel@lists.xen.org; Sun, 02 Sep 2012 05:35:53 +0000
+Received: from [85.158.143.99:63467] by server-3.bemta-4.messagelabs.com id
+       0D/D4-08232-830F2405; Sun, 02 Sep 2012 05:35:52 +0000
+X-Env-Sender: pasik@iki.fi
+X-Msg-Ref: server-16.tower-216.messagelabs.com!1346564149!16837776!1
+X-Originating-IP: [192.89.123.25]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogMTkyLjg5LjEyMy4yNSA9PiA0OTc5Mjk=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 18499 invoked from network); 2 Sep 2012 05:35:50 -0000
+Received: from smtp.tele.fi (HELO smtp.tele.fi) (192.89.123.25)
+       by server-16.tower-216.messagelabs.com with DHE-RSA-AES256-SHA
+       encrypted SMTP; 2 Sep 2012 05:35:50 -0000
+X-Originating-Ip: [194.89.68.22]
+Received: from ydin.reaktio.net (reaktio.net [194.89.68.22])
+       by smtp.tele.fi (Postfix) with ESMTP id 689AA2B22
+       for <xen-devel@lists.xen.org>; Sun,  2 Sep 2012 08:35:49 +0300 (EEST)
+Received: by ydin.reaktio.net (Postfix, from userid 1001)
+       id 333162005D; Sun,  2 Sep 2012 08:35:49 +0300 (EEST)
+Date: Sun, 2 Sep 2012 08:35:49 +0300
+From: Pasi =?iso-8859-1?Q?K=E4rkk=E4inen?= <pasik@iki.fi>
+To: xen-devel@lists.xen.org
+Message-ID: <20120902053549.GF8912@reaktio.net>
+MIME-Version: 1.0
+Content-Type: multipart/mixed; boundary="neYutvxvOLaeuPCA"
+Content-Disposition: inline
+Content-Transfer-Encoding: 8bit
+User-Agent: Mutt/1.5.20 (2009-06-14)
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: [Xen-devel] [PATCH] xl.cfg: gfx_passthru documentation improvements
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+
+--neYutvxvOLaeuPCA
+Content-Type: text/plain; charset=iso-8859-1
+Content-Disposition: inline
+Content-Transfer-Encoding: 8bit
+
+Hello,
+
+xl.cfg.pod.5 documentation improvements:
+
+- gfx_passthru: Document gfx_passthru makes the GPU become primary in the guest
+  and other generic info about gfx_passthru.
+
+
+Signed-off-by: Pasi Kärkkäinen <pasik@iki.fi>
+
+--- docs/man/xl.cfg.pod.5.orig1 2012-09-02 07:16:39.316782158 +0300
++++ docs/man/xl.cfg.pod.5       2012-09-02 08:26:40.081639087 +0300
+@@ -968,7 +968,43 @@
+ =item B<gfx_passthru=BOOLEAN>
+-Enable graphics device PCI passthrough. XXX which device is passed through ?
++Enable graphics device PCI passthrough. This option makes the passthru
++graphics card become primary graphics card in the VM, so the Qemu emulated 
++graphics adapter is disabled, and the VNC console for the VM won't have
++any graphics output. All graphics output, including boot time Qemu BIOS
++messages from the VM, will go to the physical outputs of the passed thru
++physical graphics card.
++
++Graphics card PCI device to passthru is chosen with B<pci> option, 
++exactly in the same way as normal Xen PCI device passthru/assignment is done. 
++Note that gfx_passthru doesn't do any kind of sharing
++of the GPU, so you can only assign the GPU to one single VM at a time.
++
++gfx_passthru also enables various legacy VGA memory ranges, BARs, MMIOs, 
++and ioports to be passed thru to the VM, since those are required
++for correct operation of things like VGA BIOS, text mode, VBE, etc.
++
++Enabling gfx_passthru option also copies the physical graphics card 
++video bios to the guest memory, and executes the vbios in the guest 
++to get the graphics card initialized.
++
++Most graphics adapters require vendor specific tweaks for properly
++working graphics passthru. Xen currently includes necessary tweaks
++for Intel IGD (Integrated Graphics Device) GPUs.  
++
++Support for AMD/Nvidia gfx_passthru is not yet merged to Xen,
++but there are out-of-tree patches available.
++
++gfx_passthru is currently only supported with the qemu-xen-traditional
++device-model. Upstream qemu-xen device-model currently doesn't have
++support for gfx_passthru.
++
++Note that some graphics adapters (AMD/ATI cards, for example) don't
++necessarily require gfx_passthru option, so you can use the normal
++Xen PCI passthru to assign the graphics card as a secondary graphics card
++to the VM. Qemu emulated graphics card stays as the primary graphics card, 
++and you get VNC output from the Qemu-emulated primary adapter.
++
+ =item B<nomigrate=BOOLEAN>
+
+
+--neYutvxvOLaeuPCA
+Content-Type: text/x-diff; charset=us-ascii
+Content-Disposition: attachment; filename="xl.cfg.pod.5-gfx_passthru.patch"
+
+--- docs/man/xl.cfg.pod.5.orig1        2012-09-02 07:16:39.316782158 +0300
++++ docs/man/xl.cfg.pod.5      2012-09-02 08:26:40.081639087 +0300
+@@ -968,7 +968,43 @@
+ =item B<gfx_passthru=BOOLEAN>
+-Enable graphics device PCI passthrough. XXX which device is passed through ?
++Enable graphics device PCI passthrough. This option makes the passthru
++graphics card become primary graphics card in the VM, so the Qemu emulated 
++graphics adapter is disabled, and the VNC console for the VM won't have
++any graphics output. All graphics output, including boot time Qemu BIOS
++messages from the VM, will go to the physical outputs of the passed thru
++physical graphics card.
++
++Graphics card PCI device to passthru is chosen with B<pci> option, 
++exactly in the same way as normal Xen PCI device passthru/assignment is done. 
++Note that gfx_passthru doesn't do any kind of sharing
++of the GPU, so you can only assign the GPU to one single VM at a time.
++
++gfx_passthru also enables various legacy VGA memory ranges, BARs, MMIOs, 
++and ioports to be passed thru to the VM, since those are required
++for correct operation of things like VGA BIOS, text mode, VBE, etc.
++
++Enabling gfx_passthru option also copies the physical graphics card 
++video bios to the guest memory, and executes the vbios in the guest 
++to get the graphics card initialized.
++
++Most graphics adapters require vendor specific tweaks for properly
++working graphics passthru. Xen currently includes necessary tweaks
++for Intel IGD (Integrated Graphics Device) GPUs.  
++
++Support for AMD/Nvidia gfx_passthru is not yet merged to Xen,
++but there are out-of-tree patches available.
++
++gfx_passthru is currently only supported with the qemu-xen-traditional
++device-model. Upstream qemu-xen device-model currently doesn't have
++support for gfx_passthru.
++
++Note that some graphics adapters (AMD/ATI cards, for example) don't
++necessarily require gfx_passthru option, so you can use the normal
++Xen PCI passthru to assign the graphics card as a secondary graphics card
++to the VM. Qemu emulated graphics card stays as the primary graphics card, 
++and you get VNC output from the Qemu-emulated primary adapter.
++
+ =item B<nomigrate=BOOLEAN>
+
+--neYutvxvOLaeuPCA
+Content-Type: text/plain; charset="us-ascii"
+MIME-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Content-Disposition: inline
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
+--neYutvxvOLaeuPCA--
+
+
diff --git a/config/examples/test/corpus/<20120904191229.GH8912@reaktio.net> b/config/examples/test/corpus/<20120904191229.GH8912@reaktio.net>
new file mode 100644 (file)
index 0000000..c39a1ff
--- /dev/null
@@ -0,0 +1,230 @@
+From xen-devel-bounces@lists.xen.org Tue Sep 04 20:17:21 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Tue, 04 Sep 2012 20:17:21 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T8ycg-0003Xb-DS
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 04 Sep 2012 20:17:21 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T8yY8-0008KX-Nh; Tue, 04 Sep 2012 19:12:36 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <pasik@iki.fi>) id 1T8yY6-0008KS-Iu
+       for xen-devel@lists.xen.org; Tue, 04 Sep 2012 19:12:34 +0000
+Received: from [85.158.139.83:50763] by server-10.bemta-5.messagelabs.com id
+       DC/60-10969-1A256405; Tue, 04 Sep 2012 19:12:33 +0000
+X-Env-Sender: pasik@iki.fi
+X-Msg-Ref: server-2.tower-182.messagelabs.com!1346785950!28544961!1
+X-Originating-IP: [192.89.123.25]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogMTkyLjg5LjEyMy4yNSA9PiA1MDA5NDY=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 29573 invoked from network); 4 Sep 2012 19:12:30 -0000
+Received: from smtp.tele.fi (HELO smtp.tele.fi) (192.89.123.25)
+       by server-2.tower-182.messagelabs.com with DHE-RSA-AES256-SHA encrypted
+       SMTP; 4 Sep 2012 19:12:30 -0000
+X-Originating-Ip: [194.89.68.22]
+Received: from ydin.reaktio.net (reaktio.net [194.89.68.22])
+       by smtp.tele.fi (Postfix) with ESMTP id D5ABD1A3C;
+       Tue,  4 Sep 2012 22:12:29 +0300 (EEST)
+Received: by ydin.reaktio.net (Postfix, from userid 1001)
+       id 3D4C92005D; Tue,  4 Sep 2012 22:12:29 +0300 (EEST)
+Date: Tue, 4 Sep 2012 22:12:29 +0300
+From: Pasi =?iso-8859-1?Q?K=E4rkk=E4inen?= <pasik@iki.fi>
+To: Ian Campbell <Ian.Campbell@citrix.com>
+Message-ID: <20120904191229.GH8912@reaktio.net>
+References: <20120902053549.GF8912@reaktio.net>
+       <1346667053.25864.21.camel@zakaz.uk.xensource.com>
+MIME-Version: 1.0
+Content-Disposition: inline
+In-Reply-To: <1346667053.25864.21.camel@zakaz.uk.xensource.com>
+User-Agent: Mutt/1.5.20 (2009-06-14)
+Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="iso-8859-1"
+Content-Transfer-Encoding: quoted-printable
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH] xl.cfg: gfx_passthru documentation
+ improvements
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Mon, Sep 03, 2012 at 11:10:53AM +0100, Ian Campbell wrote:
+> On Sun, 2012-09-02 at 06:35 +0100, Pasi K=E4rkk=E4inen wrote:
+> > Hello,
+> > =
+
+> > xl.cfg.pod.5 documentation improvements:
+> > =
+
+> > - gfx_passthru: Document gfx_passthru makes the GPU become primary in t=
+he guest
+> >   and other generic info about gfx_passthru.
+> > =
+
+> > =
+
+> > Signed-off-by: Pasi K=E4rkk=E4inen <pasik@iki.fi>
+> > --- docs/man/xl.cfg.pod.5.orig1 2012-09-02 07:16:39.316782158 +0300
+> > +++ docs/man/xl.cfg.pod.5       2012-09-02 08:26:40.081639087 +0300
+> > @@ -968,7 +968,43 @@
+> >  =
+
+> >  =3Ditem B<gfx_passthru=3DBOOLEAN>
+> >  =
+
+> > -Enable graphics device PCI passthrough. XXX which device is passed thr=
+ough ?
+> > +Enable graphics device PCI passthrough. This option makes the passthru
+> > +graphics card become primary graphics card in the VM,
+> =
+
+> The option is slightly misnamed then I guess, a better name would have
+> been gfx_passthru_primary? oh well, we are stuck with it now.
+> =
+
+
+Yeah.. I think earlier gfx_passthru wasn't a boolean, but an integer, to ch=
+oose the mode.
+
+> (Am I alone in thinking that "thru" is a horrible alternative to
+> through?)
+> =
+
+
+:) =
+
+
+> >  so the Qemu emulated =
+
+> > +graphics adapter is disabled, and the VNC console for the VM won't have
+> > +any graphics output. All graphics output, including boot time Qemu BIOS
+> > +messages from the VM, will go to the physical outputs of the passed th=
+ru
+> > +physical graphics card.
+> > +
+> > +Graphics card PCI device to passthru is chosen with B<pci> option, =
+
+> > +exactly in the same way as normal Xen PCI device passthru/assignment i=
+s done. =
+
+> > +Note that gfx_passthru doesn't do any kind of sharing
+> > +of the GPU, so you can only assign the GPU to one single VM at a time.
+> > +
+> > +gfx_passthru also enables various legacy VGA memory ranges, BARs, MMIO=
+s, =
+
+> > +and ioports to be passed thru to the VM, since those are required
+> > +for correct operation of things like VGA BIOS, text mode, VBE, etc.
+> > +
+> > +Enabling gfx_passthru option also copies the physical graphics card =
+
+> > +video bios to the guest memory, and executes the vbios in the guest =
+
+> =
+
+> "BIOS" and (I expect) "VBIOS"?
+> =
+
+
+video bios =3D=3D vbios, or did you ask something else? =
+
+
+
+> > +to get the graphics card initialized.
+> > +
+> > +Most graphics adapters require vendor specific tweaks for properly
+> > +working graphics passthru. Xen currently includes necessary tweaks
+> > +for Intel IGD (Integrated Graphics Device) GPUs.  =
+
+> > +
+> > +Support for AMD/Nvidia gfx_passthru is not yet merged to Xen,
+> > +but there are out-of-tree patches available.
+> =
+
+> If there is a comprehensive list of supported/not-supported devices on
+> the wiki then I think a reference here would be more useful than these
+> two brief paragraphs.
+> =
+
+
+We have a list, but it's not up-to-date unfortunately:
+http://wiki.xen.org/wiki/XenVGAPassthroughTestedAdapters
+
+
+> In particular the second isn't very useful without links and those tend
+> to become out of date in docs IME, I would tend to omit this from here
+> and instead include them in the wiki where they can be kept up to date
+>
+
+Ok. I'll fix that, and add a link to:
+http://wiki.xen.org/wiki/XenVGAPassthrough
+
+
+> (or better yet somebody could finally submit the patches for inclusion).
+> =
+
+
+Indeed. I was talking to both AMD and Nvidia engineers at XenSummit NA 2012,
+and there's some hope for them to do some work on this stuff :) =
+
+
+And I volunteered earlier for this aswell, but so far I've been way too bus=
+y with other things :(
+
+
+> > +gfx_passthru is currently only supported with the qemu-xen-traditional
+> > +device-model. Upstream qemu-xen device-model currently doesn't have
+> > +support for gfx_passthru.
+> > +
+> > +Note that some graphics adapters (AMD/ATI cards, for example) don't
+> > +necessarily require gfx_passthru option, so you can use the normal
+> > +Xen PCI passthru to assign the graphics card as a secondary graphics c=
+ard
+> > +to the VM. Qemu emulated graphics card stays as the primary graphics c=
+ard, =
+
+> > +and you get VNC output from the Qemu-emulated primary adapter.
+> > +
+> >  =
+
+> >  =3Ditem B<nomigrate=3DBOOLEAN>
+> > =
+
+> =
+
+
+
+-- Pasi
+
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<20120905195403.GO8912@reaktio.net> b/config/examples/test/corpus/<20120905195403.GO8912@reaktio.net>
new file mode 100644 (file)
index 0000000..e34257a
--- /dev/null
@@ -0,0 +1,233 @@
+From xen-devel-bounces@lists.xen.org Wed Sep 05 20:58:36 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 05 Sep 2012 20:58:36 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T9Lk7-0004LJ-2E
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 05 Sep 2012 20:58:35 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T9Lfs-0003O6-C3; Wed, 05 Sep 2012 19:54:08 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <pasik@iki.fi>) id 1T9Lfr-0003Ny-1o
+       for xen-devel@lists.xen.org; Wed, 05 Sep 2012 19:54:07 +0000
+Received: from [85.158.143.99:47901] by server-1.bemta-4.messagelabs.com id
+       20/D6-12504-EDDA7405; Wed, 05 Sep 2012 19:54:06 +0000
+X-Env-Sender: pasik@iki.fi
+X-Msg-Ref: server-14.tower-216.messagelabs.com!1346874845!19129035!1
+X-Originating-IP: [192.89.123.25]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogMTkyLjg5LjEyMy4yNSA9PiA1MDI2OTU=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 5685 invoked from network); 5 Sep 2012 19:54:05 -0000
+Received: from smtp.tele.fi (HELO smtp.tele.fi) (192.89.123.25)
+       by server-14.tower-216.messagelabs.com with DHE-RSA-AES256-SHA
+       encrypted SMTP; 5 Sep 2012 19:54:05 -0000
+X-Originating-Ip: [194.89.68.22]
+Received: from ydin.reaktio.net (reaktio.net [194.89.68.22])
+       by smtp.tele.fi (Postfix) with ESMTP id BFB7C2564;
+       Wed,  5 Sep 2012 22:54:04 +0300 (EEST)
+Received: by ydin.reaktio.net (Postfix, from userid 1001)
+       id AA2652005D; Wed,  5 Sep 2012 22:54:03 +0300 (EEST)
+Date: Wed, 5 Sep 2012 22:54:03 +0300
+From: Pasi =?iso-8859-1?Q?K=E4rkk=E4inen?= <pasik@iki.fi>
+To: Ian Campbell <Ian.Campbell@citrix.com>
+Message-ID: <20120905195403.GO8912@reaktio.net>
+References: <20120902053549.GF8912@reaktio.net>
+       <1346667053.25864.21.camel@zakaz.uk.xensource.com>
+       <20120904191229.GH8912@reaktio.net>
+       <1346834000.17325.4.camel@zakaz.uk.xensource.com>
+MIME-Version: 1.0
+Content-Disposition: inline
+In-Reply-To: <1346834000.17325.4.camel@zakaz.uk.xensource.com>
+User-Agent: Mutt/1.5.20 (2009-06-14)
+Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="iso-8859-1"
+Content-Transfer-Encoding: quoted-printable
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,MIME_QP_LONG_LINE,
+       RCVD_IN_DNSWL_MED,T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham
+       version=3.3.1
+Subject: Re: [Xen-devel] [PATCH] xl.cfg: gfx_passthru documentation
+ improvements
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Wed, Sep 05, 2012 at 09:33:20AM +0100, Ian Campbell wrote:
+> On Tue, 2012-09-04 at 20:12 +0100, Pasi K=E4rkk=E4inen wrote:
+> > On Mon, Sep 03, 2012 at 11:10:53AM +0100, Ian Campbell wrote:
+> > > On Sun, 2012-09-02 at 06:35 +0100, Pasi K=E4rkk=E4inen wrote:
+> > > > Hello,
+> > > > =
+
+> > > > xl.cfg.pod.5 documentation improvements:
+> > > > =
+
+> > > > - gfx_passthru: Document gfx_passthru makes the GPU become primary =
+in the guest
+> > > >   and other generic info about gfx_passthru.
+> > > > =
+
+> > > > =
+
+> > > > Signed-off-by: Pasi K=E4rkk=E4inen <pasik@iki.fi>
+> > > > --- docs/man/xl.cfg.pod.5.orig1 2012-09-02 07:16:39.316782158 +0300
+> > > > +++ docs/man/xl.cfg.pod.5       2012-09-02 08:26:40.081639087 +0300
+> > > > @@ -968,7 +968,43 @@
+> > > >  =
+
+> > > >  =3Ditem B<gfx_passthru=3DBOOLEAN>
+> > > >  =
+
+> > > > -Enable graphics device PCI passthrough. XXX which device is passed=
+ through ?
+> > > > +Enable graphics device PCI passthrough. This option makes the pass=
+thru
+> > > > +graphics card become primary graphics card in the VM,
+> > > =
+
+> > > The option is slightly misnamed then I guess, a better name would have
+> > > been gfx_passthru_primary? oh well, we are stuck with it now.
+> > > =
+
+> > =
+
+> > Yeah.. I think earlier gfx_passthru wasn't a boolean, but an integer, t=
+o choose the mode.
+> =
+
+> Oh, do you happen to know what the meanings were?
+> =
+
+
+iirc off/primary/secondary.. =
+
+
+
+> > > >  so the Qemu emulated =
+
+> > > > +graphics adapter is disabled, and the VNC console for the VM won't=
+ have
+> > > > +any graphics output. All graphics output, including boot time Qemu=
+ BIOS
+> > > > +messages from the VM, will go to the physical outputs of the passe=
+d thru
+> > > > +physical graphics card.
+> > > > +
+> > > > +Graphics card PCI device to passthru is chosen with B<pci> option, =
+
+> > > > +exactly in the same way as normal Xen PCI device passthru/assignme=
+nt is done. =
+
+> > > > +Note that gfx_passthru doesn't do any kind of sharing
+> > > > +of the GPU, so you can only assign the GPU to one single VM at a t=
+ime.
+> > > > +
+> > > > +gfx_passthru also enables various legacy VGA memory ranges, BARs, =
+MMIOs, =
+
+> > > > +and ioports to be passed thru to the VM, since those are required
+> > > > +for correct operation of things like VGA BIOS, text mode, VBE, etc.
+> > > > +
+> > > > +Enabling gfx_passthru option also copies the physical graphics car=
+d =
+
+> > > > +video bios to the guest memory, and executes the vbios in the gues=
+t =
+
+> > > =
+
+> > > "BIOS" and (I expect) "VBIOS"?
+> > > =
+
+> > =
+
+> > video bios =3D=3D vbios, or did you ask something else? =
+
+> =
+
+> I was just commenting on the capitalisation differing from other
+> mentions of the BIOS.
+> =
+
+
+Ok.
+
+> > > > +to get the graphics card initialized.
+> > > > +
+> > > > +Most graphics adapters require vendor specific tweaks for properly
+> > > > +working graphics passthru. Xen currently includes necessary tweaks
+> > > > +for Intel IGD (Integrated Graphics Device) GPUs.  =
+
+> > > > +
+> > > > +Support for AMD/Nvidia gfx_passthru is not yet merged to Xen,
+> > > > +but there are out-of-tree patches available.
+> > > =
+
+> > > If there is a comprehensive list of supported/not-supported devices on
+> > > the wiki then I think a reference here would be more useful than these
+> > > two brief paragraphs.
+> > > =
+
+> > =
+
+> > We have a list, but it's not up-to-date unfortunately:
+> > http://wiki.xen.org/wiki/XenVGAPassthroughTestedAdapters
+> =
+
+> I think it is worth referencing it, and perhaps adding a note to the
+> page itself regarding its freshness (and then working to improve it, of
+> course ;-))
+> =
+
+
+Yep.
+
+> > > In particular the second isn't very useful without links and those te=
+nd
+> > > to become out of date in docs IME, I would tend to omit this from here
+> > > and instead include them in the wiki where they can be kept up to date
+> > >
+> > =
+
+> > Ok. I'll fix that, and add a link to:
+> > http://wiki.xen.org/wiki/XenVGAPassthrough
+> =
+
+> Thanks.
+> =
+
+
+I'll send a new patch soon.
+
+-- Pasi
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<20120905200858.GP8912@reaktio.net> b/config/examples/test/corpus/<20120905200858.GP8912@reaktio.net>
new file mode 100644 (file)
index 0000000..3236af3
--- /dev/null
@@ -0,0 +1,211 @@
+From xen-devel-bounces@lists.xen.org Wed Sep 05 21:13:39 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 05 Sep 2012 21:13:39 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T9Lyi-0004O2-6f
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 05 Sep 2012 21:13:39 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T9LuJ-0003mn-RL; Wed, 05 Sep 2012 20:09:03 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <pasik@iki.fi>) id 1T9LuH-0003mi-MP
+       for xen-devel@lists.xen.org; Wed, 05 Sep 2012 20:09:02 +0000
+Received: from [85.158.143.99:15285] by server-2.bemta-4.messagelabs.com id
+       0E/21-21239-C51B7405; Wed, 05 Sep 2012 20:09:00 +0000
+X-Env-Sender: pasik@iki.fi
+X-Msg-Ref: server-6.tower-216.messagelabs.com!1346875739!21726627!1
+X-Originating-IP: [192.89.123.25]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogMTkyLjg5LjEyMy4yNSA9PiA1MDI2OTU=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 7342 invoked from network); 5 Sep 2012 20:09:00 -0000
+Received: from smtp.tele.fi (HELO smtp.tele.fi) (192.89.123.25)
+       by server-6.tower-216.messagelabs.com with DHE-RSA-AES256-SHA encrypted
+       SMTP; 5 Sep 2012 20:09:00 -0000
+X-Originating-Ip: [194.89.68.22]
+Received: from ydin.reaktio.net (reaktio.net [194.89.68.22])
+       by smtp.tele.fi (Postfix) with ESMTP id 19D331ACA;
+       Wed,  5 Sep 2012 23:08:58 +0300 (EEST)
+Received: by ydin.reaktio.net (Postfix, from userid 1001)
+       id 8493D2005D; Wed,  5 Sep 2012 23:08:58 +0300 (EEST)
+Date: Wed, 5 Sep 2012 23:08:58 +0300
+From: Pasi =?iso-8859-1?Q?K=E4rkk=E4inen?= <pasik@iki.fi>
+To: Ian Campbell <Ian.Campbell@citrix.com>
+Message-ID: <20120905200858.GP8912@reaktio.net>
+References: <20120902053549.GF8912@reaktio.net>
+       <1346667053.25864.21.camel@zakaz.uk.xensource.com>
+       <20120904191229.GH8912@reaktio.net>
+       <1346834000.17325.4.camel@zakaz.uk.xensource.com>
+MIME-Version: 1.0
+Content-Type: multipart/mixed; boundary="/e2eDi0V/xtL+Mc8"
+Content-Disposition: inline
+Content-Transfer-Encoding: 8bit
+In-Reply-To: <1346834000.17325.4.camel@zakaz.uk.xensource.com>
+User-Agent: Mutt/1.5.20 (2009-06-14)
+Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: [Xen-devel] [PATCH v2] xl.cfg: gfx_passthru documentation
+       improvements
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+
+--/e2eDi0V/xtL+Mc8
+Content-Type: text/plain; charset=iso-8859-1
+Content-Disposition: inline
+Content-Transfer-Encoding: 8bit
+
+Hello,
+
+v2: address review comments.
+
+xl.cfg.pod.5 documentation improvements:
+
+- gfx_passthru: Document gfx_passthru makes the GPU become primary in the guest
+  and other generic info about gfx_passthru.
+
+Signed-off-by: Pasi Kärkkäinen <pasik@iki.fi>
+
+
+--- xen-unstable.hg/docs/man/xl.cfg.pod.5.orig  2012-09-05 22:51:39.745137076 +0300
++++ xen-unstable.hg/docs/man/xl.cfg.pod.5       2012-09-05 23:02:29.746203364 +0300
+@@ -992,7 +992,44 @@
+
+ =item B<gfx_passthru=BOOLEAN>
+
+-Enable graphics device PCI passthrough. XXX which device is passed through ?
++Enable graphics device PCI passthrough. This option makes the passthru
++graphics card become primary graphics card in the VM, so the Qemu emulated
++graphics adapter is disabled, and the VNC console for the VM won't have
++any graphics output. All graphics output, including boot time Qemu BIOS
++messages from the VM, will go to the physical outputs of the passed thru
++physical graphics card.
++
++Graphics card PCI device to passthru is chosen with B<pci> option,
++exactly in the same way as normal Xen PCI device passthru/assignment is done.
++Note that gfx_passthru doesn't do any kind of sharing
++of the GPU, so you can only assign the GPU to one single VM at a time.
++
++gfx_passthru also enables various legacy VGA memory ranges, BARs, MMIOs,
++and ioports to be passed thru to the VM, since those are required
++for correct operation of things like VGA BIOS, text mode, VBE, etc.
++
++Enabling gfx_passthru option also copies the physical graphics card
++video BIOS to the guest memory, and executes the VBIOS in the guest
++to get the graphics card initialized.
++
++Most graphics adapters require vendor specific tweaks for properly
++working graphics passthru. See the XenVGAPassthroughTestedAdapters
++L<http://wiki.xen.org/wiki/XenVGAPassthroughTestedAdapters>
++wiki page for currently supported graphics cards for gfx_passthru.
++
++gfx_passthru is currently only supported with the qemu-xen-traditional
++device-model. Upstream qemu-xen device-model currently doesn't have
++support for gfx_passthru.
++
++Note that some graphics adapters (AMD/ATI cards, for example) don't
++necessarily require gfx_passthru option, so you can use the normal
++Xen PCI passthru to assign the graphics card as a secondary graphics card
++to the VM. Qemu emulated graphics card stays as the primary graphics card,
++and you get VNC output from the Qemu-emulated primary adapter.
++
++More information about Xen gfx_passthru feature is available
++on the XenVGAPassthrough L<http://wiki.xen.org/wiki/XenVGAPassthrough>
++wiki page.
+
+ =item B<nomigrate=BOOLEAN>
+
+
+--/e2eDi0V/xtL+Mc8
+Content-Type: text/x-diff; charset=us-ascii
+Content-Disposition: attachment; filename="xl.cfg.pod.5-gfx_passthru-2.patch"
+
+--- xen-unstable.hg/docs/man/xl.cfg.pod.5.orig 2012-09-05 22:51:39.745137076 +0300
++++ xen-unstable.hg/docs/man/xl.cfg.pod.5      2012-09-05 23:02:29.746203364 +0300
+@@ -992,7 +992,44 @@
+ =item B<gfx_passthru=BOOLEAN>
+-Enable graphics device PCI passthrough. XXX which device is passed through ?
++Enable graphics device PCI passthrough. This option makes the passthru
++graphics card become primary graphics card in the VM, so the Qemu emulated 
++graphics adapter is disabled, and the VNC console for the VM won't have
++any graphics output. All graphics output, including boot time Qemu BIOS
++messages from the VM, will go to the physical outputs of the passed thru
++physical graphics card.
++
++Graphics card PCI device to passthru is chosen with B<pci> option, 
++exactly in the same way as normal Xen PCI device passthru/assignment is done. 
++Note that gfx_passthru doesn't do any kind of sharing
++of the GPU, so you can only assign the GPU to one single VM at a time.
++
++gfx_passthru also enables various legacy VGA memory ranges, BARs, MMIOs, 
++and ioports to be passed thru to the VM, since those are required
++for correct operation of things like VGA BIOS, text mode, VBE, etc.
++
++Enabling gfx_passthru option also copies the physical graphics card 
++video BIOS to the guest memory, and executes the VBIOS in the guest 
++to get the graphics card initialized.
++
++Most graphics adapters require vendor specific tweaks for properly
++working graphics passthru. See the XenVGAPassthroughTestedAdapters
++L<http://wiki.xen.org/wiki/XenVGAPassthroughTestedAdapters> 
++wiki page for currently supported graphics cards for gfx_passthru.
++ 
++gfx_passthru is currently only supported with the qemu-xen-traditional
++device-model. Upstream qemu-xen device-model currently doesn't have
++support for gfx_passthru.
++
++Note that some graphics adapters (AMD/ATI cards, for example) don't
++necessarily require gfx_passthru option, so you can use the normal
++Xen PCI passthru to assign the graphics card as a secondary graphics card
++to the VM. Qemu emulated graphics card stays as the primary graphics card, 
++and you get VNC output from the Qemu-emulated primary adapter.
++
++More information about Xen gfx_passthru feature is available
++on the XenVGAPassthrough L<http://wiki.xen.org/wiki/XenVGAPassthrough> 
++wiki page.
+ =item B<nomigrate=BOOLEAN>
+
+--/e2eDi0V/xtL+Mc8
+Content-Type: text/plain; charset="us-ascii"
+MIME-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Content-Disposition: inline
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
+--/e2eDi0V/xtL+Mc8--
+
+
diff --git a/config/examples/test/corpus/<20120905202927.GD27814@phenom.dumpdata.com> b/config/examples/test/corpus/<20120905202927.GD27814@phenom.dumpdata.com>
new file mode 100644 (file)
index 0000000..4f4a129
--- /dev/null
@@ -0,0 +1,118 @@
+From xen-devel-bounces@lists.xen.org Wed Sep 05 21:46:55 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 05 Sep 2012 21:46:55 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T9MUt-0004YN-0U
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 05 Sep 2012 21:46:55 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T9MQu-00051E-4w; Wed, 05 Sep 2012 20:42:44 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <konrad.wilk@oracle.com>) id 1T9MQs-000519-J5
+       for xen-devel@lists.xen.org; Wed, 05 Sep 2012 20:42:42 +0000
+Received: from [85.158.139.83:33279] by server-7.bemta-5.messagelabs.com id
+       72/AA-19703-149B7405; Wed, 05 Sep 2012 20:42:41 +0000
+X-Env-Sender: konrad.wilk@oracle.com
+X-Msg-Ref: server-7.tower-182.messagelabs.com!1346877760!24842240!1
+X-Originating-IP: [141.146.126.227]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogMTQxLjE0Ni4xMjYuMjI3ID0+IDczODkxOA==\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 2740 invoked from network); 5 Sep 2012 20:42:41 -0000
+Received: from acsinet15.oracle.com (HELO acsinet15.oracle.com)
+       (141.146.126.227)
+       by server-7.tower-182.messagelabs.com with DHE-RSA-AES256-SHA encrypted
+       SMTP; 5 Sep 2012 20:42:41 -0000
+Received: from ucsinet22.oracle.com (ucsinet22.oracle.com [156.151.31.94])
+       by acsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
+       ESMTP id q85Kdxr1018910
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
+       Wed, 5 Sep 2012 20:40:00 GMT
+Received: from acsmt357.oracle.com (acsmt357.oracle.com [141.146.40.157])
+       by ucsinet22.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
+       q85Kdvuu018172
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
+       Wed, 5 Sep 2012 20:39:58 GMT
+Received: from abhmt114.oracle.com (abhmt114.oracle.com [141.146.116.66])
+       by acsmt357.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
+       q85Kdv5x020537; Wed, 5 Sep 2012 15:39:57 -0500
+Received: from phenom.dumpdata.com (/209.6.85.33)
+       by default (Oracle Beehive Gateway v4.0)
+       with ESMTP ; Wed, 05 Sep 2012 13:39:57 -0700
+Received: by phenom.dumpdata.com (Postfix, from userid 1000)
+       id 79C84402C1; Wed,  5 Sep 2012 16:29:27 -0400 (EDT)
+Date: Wed, 5 Sep 2012 16:29:27 -0400
+From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+To: James Harper <james.harper@bendigoit.com.au>
+Message-ID: <20120905202927.GD27814@phenom.dumpdata.com>
+References: <6035A0D088A63A46850C3988ED045A4B299F74F8@BITCOM1.int.sbss.com.au>
+MIME-Version: 1.0
+Content-Disposition: inline
+In-Reply-To: <6035A0D088A63A46850C3988ED045A4B299F74F8@BITCOM1.int.sbss.com.au>
+User-Agent: Mutt/1.5.21 (2010-09-15)
+X-Source-IP: ucsinet22.oracle.com [156.151.31.94]
+Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] bug when using 4K sectors?
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Mon, Aug 13, 2012 at 02:12:58PM +0000, James Harper wrote:
+> I notice this code in drivers/block/xen-blkback/common.h
+> 
+> #define vbd_sz(_v)      ((_v)->bdev->bd_part ? \
+>                          (_v)->bdev->bd_part->nr_sects : \
+>                           get_capacity((_v)->bdev->bd_disk))
+> 
+> is the value returned by vbd_sz(_v) the number of sectors in the Linux device (eg size / 4096), or the number of 512 byte sectors? I suspect the former which is causing block requests beyond 1/8th the size of the device to fail (assuming 4K sectors are expected to work at all - I can't quite get my head around how it would be expected to work - does Linux do the read-modify-write if required?)
+
+I think you need to instrument it to be sure.. But more interesting, do you actually
+have a disk that exposes a 4KB hardware and logical sector? So far I've only found
+SSDs that expose a 512kB logical sector but also expose the 4KB hardware.
+
+Never could figure out how that is all suppose to work as the blkback
+is filled with << 9 on a bunch of things.
+
+> 
+> I can't test until tomorrow AEDT, but maybe someone here knows the answer already?
+> 
+> James
+> 
+> _______________________________________________
+> Xen-devel mailing list
+> Xen-devel@lists.xen.org
+> http://lists.xen.org/xen-devel
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<20120906105822.GB3668@phenom.dumpdata.com> b/config/examples/test/corpus/<20120906105822.GB3668@phenom.dumpdata.com>
new file mode 100644 (file)
index 0000000..cfe7901
--- /dev/null
@@ -0,0 +1,128 @@
+From xen-devel-bounces@lists.xen.org Thu Sep 06 12:13:14 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 06 Sep 2012 12:13:14 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T9a1E-00037p-SK
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 06 Sep 2012 12:13:14 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T9Zxn-0000Hm-58; Thu, 06 Sep 2012 11:09:35 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <konrad.wilk@oracle.com>) id 1T9Zxm-0000He-3h
+       for xen-devel@lists.xen.org; Thu, 06 Sep 2012 11:09:34 +0000
+Received: from [85.158.139.83:60027] by server-5.bemta-5.messagelabs.com id
+       07/34-30514-D6488405; Thu, 06 Sep 2012 11:09:33 +0000
+X-Env-Sender: konrad.wilk@oracle.com
+X-Msg-Ref: server-11.tower-182.messagelabs.com!1346929771!21701740!1
+X-Originating-IP: [148.87.113.117]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogMTQ4Ljg3LjExMy4xMTcgPT4gNzMxMzIz\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 15034 invoked from network); 6 Sep 2012 11:09:32 -0000
+Received: from rcsinet15.oracle.com (HELO rcsinet15.oracle.com)
+       (148.87.113.117)
+       by server-11.tower-182.messagelabs.com with DHE-RSA-AES256-SHA
+       encrypted SMTP; 6 Sep 2012 11:09:32 -0000
+Received: from ucsinet22.oracle.com (ucsinet22.oracle.com [156.151.31.94])
+       by rcsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
+       ESMTP id q86B8tR1026753
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
+       Thu, 6 Sep 2012 11:08:56 GMT
+Received: from acsmt357.oracle.com (acsmt357.oracle.com [141.146.40.157])
+       by ucsinet22.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
+       q86B8sWm008281
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
+       Thu, 6 Sep 2012 11:08:55 GMT
+Received: from abhmt118.oracle.com (abhmt118.oracle.com [141.146.116.70])
+       by acsmt357.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
+       q86B8r17015822; Thu, 6 Sep 2012 06:08:53 -0500
+Received: from phenom.dumpdata.com (/209.6.85.33)
+       by default (Oracle Beehive Gateway v4.0)
+       with ESMTP ; Thu, 06 Sep 2012 04:08:53 -0700
+Received: by phenom.dumpdata.com (Postfix, from userid 1000)
+       id 3CD5A402E4; Thu,  6 Sep 2012 06:58:22 -0400 (EDT)
+Date: Thu, 6 Sep 2012 06:58:22 -0400
+From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+To: James Harper <james.harper@bendigoit.com.au>
+Message-ID: <20120906105822.GB3668@phenom.dumpdata.com>
+References: <6035A0D088A63A46850C3988ED045A4B299F74F8@BITCOM1.int.sbss.com.au>
+       <20120905202927.GD27814@phenom.dumpdata.com>
+       <6035A0D088A63A46850C3988ED045A4B29B5D23E@BITCOM1.int.sbss.com.au>
+MIME-Version: 1.0
+Content-Disposition: inline
+In-Reply-To: <6035A0D088A63A46850C3988ED045A4B29B5D23E@BITCOM1.int.sbss.com.au>
+User-Agent: Mutt/1.5.21 (2010-09-15)
+X-Source-IP: ucsinet22.oracle.com [156.151.31.94]
+Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] bug when using 4K sectors?
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Wed, Sep 05, 2012 at 11:56:08PM +0000, James Harper wrote:
+> > On Mon, Aug 13, 2012 at 02:12:58PM +0000, James Harper wrote:
+> > > I notice this code in drivers/block/xen-blkback/common.h
+> > >
+> > > #define vbd_sz(_v)      ((_v)->bdev->bd_part ? \
+> > >                          (_v)->bdev->bd_part->nr_sects : \
+> > >                           get_capacity((_v)->bdev->bd_disk))
+> > >
+> > > is the value returned by vbd_sz(_v) the number of sectors in the Linux
+> > > device (eg size / 4096), or the number of 512 byte sectors? I suspect
+> > > the former which is causing block requests beyond 1/8th the size of
+> > > the device to fail (assuming 4K sectors are expected to work at all -
+> > > I can't quite get my head around how it would be expected to work -
+> > > does Linux do the read-modify-write if required?)
+> > 
+> > I think you need to instrument it to be sure.. But more interesting, do you
+> > actually have a disk that exposes a 4KB hardware and logical sector? So far
+> > I've only found SSDs that expose a 512kB logical sector but also expose the
+> > 4KB hardware.
+> > 
+> > Never could figure out how that is all suppose to work as the blkback is filled
+> > with << 9 on a bunch of things.
+> > 
+> 
+> I was using bcache which does expose a 4K block size, by default. I changed it to 512 and it all works now, although I haven't tested if there is any loss of performance.
+
+OK, let me see how I can setup bcache and play with that.
+> 
+> Does Xen provide a way to tell Windows that the underlying device is 512e (4K sector with 512 byte emulated interface)? This would keep everything working as is but allow windows to align writes to 4K boundaries where possible.
+
+We can certainly expose that via the XenBus interface.
+> 
+> James
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<20120912171921.GT8912@reaktio.net> b/config/examples/test/corpus/<20120912171921.GT8912@reaktio.net>
new file mode 100644 (file)
index 0000000..3950f46
--- /dev/null
@@ -0,0 +1,194 @@
+From xen-devel-bounces@lists.xen.org Wed Sep 12 18:24:09 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 12 Sep 2012 18:24:09 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TBqfX-00023G-49
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 12 Sep 2012 18:24:09 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TBqb0-0001qs-JJ; Wed, 12 Sep 2012 17:19:26 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <pasik@iki.fi>) id 1TBqay-0001ql-Go
+       for xen-devel@lists.xen.org; Wed, 12 Sep 2012 17:19:24 +0000
+Received: from [85.158.138.51:54930] by server-7.bemta-3.messagelabs.com id
+       04/C8-32000-B14C0505; Wed, 12 Sep 2012 17:19:23 +0000
+X-Env-Sender: pasik@iki.fi
+X-Msg-Ref: server-5.tower-174.messagelabs.com!1347470362!30292350!1
+X-Originating-IP: [192.89.123.25]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogMTkyLjg5LjEyMy4yNSA9PiA0OTgwOTc=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 32225 invoked from network); 12 Sep 2012 17:19:22 -0000
+Received: from smtp.tele.fi (HELO smtp.tele.fi) (192.89.123.25)
+       by server-5.tower-174.messagelabs.com with DHE-RSA-AES256-SHA encrypted
+       SMTP; 12 Sep 2012 17:19:22 -0000
+X-Originating-Ip: [194.89.68.22]
+Received: from ydin.reaktio.net (reaktio.net [194.89.68.22])
+       by smtp.tele.fi (Postfix) with ESMTP id A69E72FE4;
+       Wed, 12 Sep 2012 20:19:21 +0300 (EEST)
+Received: by ydin.reaktio.net (Postfix, from userid 1001)
+       id 48A732005D; Wed, 12 Sep 2012 20:19:21 +0300 (EEST)
+Date: Wed, 12 Sep 2012 20:19:21 +0300
+From: Pasi =?iso-8859-1?Q?K=E4rkk=E4inen?= <pasik@iki.fi>
+To: Ian Campbell <Ian.Campbell@citrix.com>
+Message-ID: <20120912171921.GT8912@reaktio.net>
+References: <20120902053549.GF8912@reaktio.net>
+       <1346667053.25864.21.camel@zakaz.uk.xensource.com>
+       <20120904191229.GH8912@reaktio.net>
+       <1346834000.17325.4.camel@zakaz.uk.xensource.com>
+       <20120905200858.GP8912@reaktio.net>
+       <1347272111.5305.52.camel@zakaz.uk.xensource.com>
+MIME-Version: 1.0
+Content-Disposition: inline
+In-Reply-To: <1347272111.5305.52.camel@zakaz.uk.xensource.com>
+User-Agent: Mutt/1.5.20 (2009-06-14)
+Cc: Jan Beulich <JBeulich@suse.com>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="iso-8859-1"
+Content-Transfer-Encoding: quoted-printable
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.6 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH v2] xl.cfg: gfx_passthru documentation
+       improvements
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Mon, Sep 10, 2012 at 11:15:11AM +0100, Ian Campbell wrote:
+> On Wed, 2012-09-05 at 21:08 +0100, Pasi K=E4rkk=E4inen wrote:
+> > Hello,
+> > =
+
+> > v2: address review comments.
+> > =
+
+> > xl.cfg.pod.5 documentation improvements:
+> > =
+
+> > - gfx_passthru: Document gfx_passthru makes the GPU become primary in t=
+he guest
+> >   and other generic info about gfx_passthru.
+> > =
+
+> > Signed-off-by: Pasi K=E4rkk=E4inen <pasik@iki.fi>
+> =
+
+> Acked + applied, thanks.
+> =
+
+
+Thanks!
+
+> Jan, I think this docs only change can be a candidate for 4.2.0, but if
+> not then 4.2.1 would be good. =
+
+> =
+
+
+Yes please, it would be nice to get this into 4.2.0 if possible.. it's a do=
+cs only patch.
+
+-- Pasi
+
+> Ian.
+> =
+
+> > =
+
+> > =
+
+> > --- xen-unstable.hg/docs/man/xl.cfg.pod.5.orig  2012-09-05 22:51:39.745=
+137076 +0300
+> > +++ xen-unstable.hg/docs/man/xl.cfg.pod.5       2012-09-05 23:02:29.746=
+203364 +0300
+> > @@ -992,7 +992,44 @@
+> > =
+
+> >  =3Ditem B<gfx_passthru=3DBOOLEAN>
+> > =
+
+> > -Enable graphics device PCI passthrough. XXX which device is passed thr=
+ough ?
+> > +Enable graphics device PCI passthrough. This option makes the passthru
+> > +graphics card become primary graphics card in the VM, so the Qemu emul=
+ated
+> > +graphics adapter is disabled, and the VNC console for the VM won't have
+> > +any graphics output. All graphics output, including boot time Qemu BIOS
+> > +messages from the VM, will go to the physical outputs of the passed th=
+ru
+> > +physical graphics card.
+> > +
+> > +Graphics card PCI device to passthru is chosen with B<pci> option,
+> > +exactly in the same way as normal Xen PCI device passthru/assignment i=
+s done.
+> > +Note that gfx_passthru doesn't do any kind of sharing
+> > +of the GPU, so you can only assign the GPU to one single VM at a time.
+> > +
+> > +gfx_passthru also enables various legacy VGA memory ranges, BARs, MMIO=
+s,
+> > +and ioports to be passed thru to the VM, since those are required
+> > +for correct operation of things like VGA BIOS, text mode, VBE, etc.
+> > +
+> > +Enabling gfx_passthru option also copies the physical graphics card
+> > +video BIOS to the guest memory, and executes the VBIOS in the guest
+> > +to get the graphics card initialized.
+> > +
+> > +Most graphics adapters require vendor specific tweaks for properly
+> > +working graphics passthru. See the XenVGAPassthroughTestedAdapters
+> > +L<http://wiki.xen.org/wiki/XenVGAPassthroughTestedAdapters>
+> > +wiki page for currently supported graphics cards for gfx_passthru.
+> > +
+> > +gfx_passthru is currently only supported with the qemu-xen-traditional
+> > +device-model. Upstream qemu-xen device-model currently doesn't have
+> > +support for gfx_passthru.
+> > +
+> > +Note that some graphics adapters (AMD/ATI cards, for example) don't
+> > +necessarily require gfx_passthru option, so you can use the normal
+> > +Xen PCI passthru to assign the graphics card as a secondary graphics c=
+ard
+> > +to the VM. Qemu emulated graphics card stays as the primary graphics c=
+ard,
+> > +and you get VNC output from the Qemu-emulated primary adapter.
+> > +
+> > +More information about Xen gfx_passthru feature is available
+> > +on the XenVGAPassthrough L<http://wiki.xen.org/wiki/XenVGAPassthrough>
+> > +wiki page.
+> > =
+
+> >  =3Ditem B<nomigrate=3DBOOLEAN>
+> > =
+
+> =
+
+> =
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<20120914160727.1ff41de2@mantra.us.oracle.com> b/config/examples/test/corpus/<20120914160727.1ff41de2@mantra.us.oracle.com>
new file mode 100644 (file)
index 0000000..00837a5
--- /dev/null
@@ -0,0 +1,134 @@
+From xen-devel-bounces@lists.xen.org Sat Sep 15 00:12:23 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Sat, 15 Sep 2012 00:12:23 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TCf3c-0007IU-JU
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Sat, 15 Sep 2012 00:12:23 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TCez8-00040B-9V; Fri, 14 Sep 2012 23:07:42 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <mukesh.rathor@oracle.com>) id 1TCez6-000406-Nh
+       for xen-devel@lists.xensource.com; Fri, 14 Sep 2012 23:07:40 +0000
+Received: from [85.158.143.99:26266] by server-1.bemta-4.messagelabs.com id
+       1C/C3-12504-CB8B3505; Fri, 14 Sep 2012 23:07:40 +0000
+X-Env-Sender: mukesh.rathor@oracle.com
+X-Msg-Ref: server-12.tower-216.messagelabs.com!1347664058!22299179!1
+X-Originating-IP: [141.146.126.227]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogMTQxLjE0Ni4xMjYuMjI3ID0+IDc1MzA3MQ==\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 30387 invoked from network); 14 Sep 2012 23:07:39 -0000
+Received: from acsinet15.oracle.com (HELO acsinet15.oracle.com)
+       (141.146.126.227)
+       by server-12.tower-216.messagelabs.com with DHE-RSA-AES256-SHA
+       encrypted SMTP; 14 Sep 2012 23:07:39 -0000
+Received: from acsinet22.oracle.com (acsinet22.oracle.com [141.146.126.238])
+       by acsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
+       ESMTP id q8EN7UnN013263
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
+       Fri, 14 Sep 2012 23:07:31 GMT
+Received: from acsmt358.oracle.com (acsmt358.oracle.com [141.146.40.158])
+       by acsinet22.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
+       q8EN7TPF007791
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
+       Fri, 14 Sep 2012 23:07:30 GMT
+Received: from abhmt112.oracle.com (abhmt112.oracle.com [141.146.116.64])
+       by acsmt358.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
+       q8EN7TfV008031; Fri, 14 Sep 2012 18:07:29 -0500
+Received: from mantra.us.oracle.com (/130.35.68.95)
+       by default (Oracle Beehive Gateway v4.0)
+       with ESMTP ; Fri, 14 Sep 2012 16:07:28 -0700
+Date: Fri, 14 Sep 2012 16:07:27 -0700
+From: Mukesh Rathor <mukesh.rathor@oracle.com>
+To: Ian Campbell <Ian.Campbell@citrix.com>
+Message-ID: <20120914160727.1ff41de2@mantra.us.oracle.com>
+In-Reply-To: <1347627587.24226.192.camel@zakaz.uk.xensource.com>
+References: <alpine.DEB.2.02.1208221159560.15568@kaball.uk.xensource.com>
+       <1345633688-31684-1-git-send-email-stefano.stabellini@eu.citrix.com>
+       <1347627587.24226.192.camel@zakaz.uk.xensource.com>
+Organization: Oracle Corporation
+X-Mailer: Claws Mail 3.7.6 (GTK+ 2.18.9; x86_64-redhat-linux-gnu)
+Mime-Version: 1.0
+X-Source-IP: acsinet22.oracle.com [141.146.126.238]
+Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
+       "Tim \(Xen.org\)" <tim@xen.org>,
+       Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.7 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH v4 1/6] xen: improve changes to
+       xen_add_to_physmap
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Fri, 14 Sep 2012 13:59:47 +0100
+Ian Campbell <Ian.Campbell@citrix.com> wrote:
+
+> 
+> On Wed, 2012-08-22 at 12:08 +0100, Stefano Stabellini wrote:
+> > This is an incremental patch on top of
+> > c0bc926083b5987a3e9944eec2c12ad0580100e2: in order to retain binary
+> > compatibility, it is better to introduce foreign_domid as part of a
+> > union containing both size and foreign_domid.
+> [...]
+> > -    domid_t foreign_domid; /* IFF gmfn_foreign */
+> > +    unsigned int space;
+> >  
+> >  #define XENMAPIDX_grant_table_status 0x80000000
+> 
+> Was this the final consensus on what this interface ought to look
+> like?
+> 
+> Does it work for PVH too (Mukesh CCd)?
+
+Yes it does. Please lmk if the final version asap so I can put in
+my patch, and also test it.
+
+
+> Might we prefer to have a batched version of this call? I don't think
+> we can shoehorn the necessary fields into xen_add_to_physmap_t though.
+> 
+> Do we think libxc will ever want to call a batch version of
+> XENMAPSPACE_gmfn_foreign ? If not then we can probably get away using
+> multicall batching. If yes then perhaps not -- libxc doesn'tdo
+> multicalls.
+
+Not right now. The whole remap api is one page at a time. 
+
+
+thanks,
+Mukesh
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<20120914160918.7e61d1d0@mantra.us.oracle.com> b/config/examples/test/corpus/<20120914160918.7e61d1d0@mantra.us.oracle.com>
new file mode 100644 (file)
index 0000000..6c8710b
--- /dev/null
@@ -0,0 +1,147 @@
+From xen-devel-bounces@lists.xen.org Sat Sep 15 00:13:22 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Sat, 15 Sep 2012 00:13:22 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TCf4a-0007In-D1
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Sat, 15 Sep 2012 00:13:22 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TCf13-00045F-Q6; Fri, 14 Sep 2012 23:09:41 +0000
+Received: from mail27.messagelabs.com ([193.109.254.147])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <mukesh.rathor@oracle.com>) id 1TCf11-000453-VH
+       for xen-devel@lists.xensource.com; Fri, 14 Sep 2012 23:09:40 +0000
+X-Env-Sender: mukesh.rathor@oracle.com
+X-Msg-Ref: server-16.tower-27.messagelabs.com!1347664172!9666173!1
+X-Originating-IP: [141.146.126.227]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogMTQxLjE0Ni4xMjYuMjI3ID0+IDc1MzA3MQ==\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 29399 invoked from network); 14 Sep 2012 23:09:33 -0000
+Received: from acsinet15.oracle.com (HELO acsinet15.oracle.com)
+       (141.146.126.227)
+       by server-16.tower-27.messagelabs.com with DHE-RSA-AES256-SHA encrypted
+       SMTP; 14 Sep 2012 23:09:33 -0000
+Received: from ucsinet21.oracle.com (ucsinet21.oracle.com [156.151.31.93])
+       by acsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
+       ESMTP id q8EN9LCa014250
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
+       Fri, 14 Sep 2012 23:09:21 GMT
+Received: from acsmt357.oracle.com (acsmt357.oracle.com [141.146.40.157])
+       by ucsinet21.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
+       q8EN9JHi014682
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
+       Fri, 14 Sep 2012 23:09:20 GMT
+Received: from abhmt101.oracle.com (abhmt101.oracle.com [141.146.116.53])
+       by acsmt357.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
+       q8EN9JnO011262; Fri, 14 Sep 2012 18:09:19 -0500
+Received: from mantra.us.oracle.com (/130.35.68.95)
+       by default (Oracle Beehive Gateway v4.0)
+       with ESMTP ; Fri, 14 Sep 2012 16:09:19 -0700
+Date: Fri, 14 Sep 2012 16:09:18 -0700
+From: Mukesh Rathor <mukesh.rathor@oracle.com>
+To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+Message-ID: <20120914160918.7e61d1d0@mantra.us.oracle.com>
+In-Reply-To: <alpine.DEB.2.02.1209141652440.29232@kaball.uk.xensource.com>
+References: <alpine.DEB.2.02.1208221159560.15568@kaball.uk.xensource.com>
+       <1345633688-31684-1-git-send-email-stefano.stabellini@eu.citrix.com>
+       <1347627587.24226.192.camel@zakaz.uk.xensource.com>
+       <1347628660.24226.197.camel@zakaz.uk.xensource.com>
+       <1347630442.24226.211.camel@zakaz.uk.xensource.com>
+       <1347630971.24226.214.camel@zakaz.uk.xensource.com>
+       <50535AFA020000780009B7C4@nat28.tlf.novell.com>
+       <alpine.DEB.2.02.1209141631200.29232@kaball.uk.xensource.com>
+       <1347637953.14977.10.camel@zakaz.uk.xensource.com>
+       <alpine.DEB.2.02.1209141652440.29232@kaball.uk.xensource.com>
+Organization: Oracle Corporation
+X-Mailer: Claws Mail 3.7.6 (GTK+ 2.18.9; x86_64-redhat-linux-gnu)
+Mime-Version: 1.0
+X-Source-IP: ucsinet21.oracle.com [156.151.31.93]
+Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
+       "Keir \(Xen.org\)" <keir@xen.org>,
+       Ian Campbell <Ian.Campbell@citrix.com>, "Tim \(Xen.org\)" <tim@xen.org>,
+       "ijackson@chiark.greenend.org.uk" <ijackson@chiark.greenend.org.uk>,
+       Jan Beulich <JBeulich@suse.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.7 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH v4 1/6] xen: improve changes to
+ xen_add_to_physmap
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Fri, 14 Sep 2012 16:54:06 +0100
+Stefano Stabellini <stefano.stabellini@eu.citrix.com> wrote:
+
+> On Fri, 14 Sep 2012, Ian Campbell wrote:
+> > On Fri, 2012-09-14 at 16:44 +0100, Stefano Stabellini wrote:
+> > > On Fri, 14 Sep 2012, Jan Beulich wrote:
+> > > > >>> On 14.09.12 at 15:56, Ian Campbell
+> > > > >>> <Ian.Campbell@citrix.com> wrote:
+> > > > >> > > Might we prefer to have a batched version of this call?
+> > > > >> > > I don't think we can shoehorn the necessary fields into
+> > > > >> > > xen_add_to_physmap_t though.
+> > > > >> > 
+> > > > >> > Actually, talking about this we Stefano we think we can.
+> > > > >> > Since both idx and gpfn are unsigned longs they can become
+> > > > >> > unions with a GUEST_HANDLE without changing the ABI on
+> > > > >> > x86_32 or x86_64.
+> > > > > 
+> > > > > Except we need both foreign_domid and size, which currently
+> > > > > overlap, and there's no other spare bits. Damn.
+> > > > > 
+> > > > > Looks like XENMEM_add_to_physmap_range is the only option :-(
+> > > > 
+> > > > You could use the first entry in each array to specify the
+> > > > counts, which would at once allow mixed granularity on each
+> > > > list (should that ever turn out useful); initially you would
+> > > > certainly want both counts to match.
+> > > 
+> > > I think it would be better from the interface point of view to
+> > > have idx become the number of frames, and gpfn a pointer (a
+> > > GUEST_HANDLE) to a struct that contains both arrays.
+> > 
+> > We'd need to slip in enough info to allow continuations too. Perhaps
+> > that can be done by manipulating the size and the handle to keep
+> > track of progress. Or maybe we can get away with just just frobbing
+> > the size if we process the array backwards.
+> > 
+> > Which is all sounding pretty gross. I'm very temped to add
+> > add_to_physmap2...
+> 
+> Yeah, I am OK with that.
+
+Agree, pmap2.
+
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<20120916122704.4ea05b45@pyramind.ukuu.org.uk> b/config/examples/test/corpus/<20120916122704.4ea05b45@pyramind.ukuu.org.uk>
new file mode 100644 (file)
index 0000000..fcba584
--- /dev/null
@@ -0,0 +1,96 @@
+From xen-devel-bounces@lists.xen.org Sun Sep 16 12:26:44 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Sun, 16 Sep 2012 12:26:44 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TDCzq-0000fL-Ck
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Sun, 16 Sep 2012 12:26:44 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TDCwD-0000WM-Nz; Sun, 16 Sep 2012 11:22:57 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <alan@lxorguk.ukuu.org.uk>) id 1TDCwC-0000WA-73
+       for xen-devel@lists.xen.org; Sun, 16 Sep 2012 11:22:56 +0000
+Received: from [85.158.139.211:25182] by server-3.bemta-5.messagelabs.com id
+       39/C9-21836-F86B5505; Sun, 16 Sep 2012 11:22:55 +0000
+X-Env-Sender: alan@lxorguk.ukuu.org.uk
+X-Msg-Ref: server-9.tower-206.messagelabs.com!1347794574!17232779!1
+X-Originating-IP: [81.2.110.251]
+X-SpamReason: No, hits=0.5 required=7.0 tests=BODY_RANDOM_LONG
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 32070 invoked from network); 16 Sep 2012 11:22:54 -0000
+Received: from lxorguk.ukuu.org.uk (HELO lxorguk.ukuu.org.uk) (81.2.110.251)
+       by server-9.tower-206.messagelabs.com with DHE-RSA-AES256-SHA encrypted
+       SMTP; 16 Sep 2012 11:22:54 -0000
+Received: from pyramind.ukuu.org.uk (earthlight.etchedpixels.co.uk
+       [81.2.110.250])
+       by lxorguk.ukuu.org.uk (8.14.5/8.14.1) with ESMTP id q8GBshb1017807;
+       Sun, 16 Sep 2012 12:54:48 +0100
+Received: from pyramind.ukuu.org.uk (localhost [127.0.0.1])
+       by pyramind.ukuu.org.uk (8.14.5/8.14.5) with ESMTP id q8GBR4wF008587;
+       Sun, 16 Sep 2012 12:27:04 +0100
+Date: Sun, 16 Sep 2012 12:27:04 +0100
+From: Alan Cox <alan@lxorguk.ukuu.org.uk>
+To: Keir Fraser <keir.xen@gmail.com>
+Message-ID: <20120916122704.4ea05b45@pyramind.ukuu.org.uk>
+In-Reply-To: <CC7B4CE4.3EE74%keir.xen@gmail.com>
+References: <CAOzFzEiZopdFQuZkUcSWWre9b=NeZpJM9n2VtEoZcRo=ejYQPA@mail.gmail.com>
+       <CC7B4CE4.3EE74%keir.xen@gmail.com>
+X-Mailer: Claws Mail 3.8.0 (GTK+ 2.24.8; x86_64-redhat-linux-gnu)
+Face: iVBORw0KGgoAAAANSUhEUgAAADAAAAAwBAMAAAClLOS0AAAAFVBMVEWysKsSBQMIAwIZCwj///8wIhxoRDXH9QHCAAABeUlEQVQ4jaXTvW7DIBAAYCQTzz2hdq+rdg494ZmBeE5KYHZjm/d/hJ6NfzBJpp5kRb5PHJwvMPMk2L9As5Y9AmYRBL+HAyJKeOU5aHRhsAAvORQ+UEgAvgddj/lwAXndw2laEDqA4x6KEBhjYRCg9tBFCOuJFxg2OKegbWjbsRTk8PPhKPD7HcRxB7cqhgBRp9Dcqs+B8v4CQvFdqeot3Kov6hBUn0AJitrzY+sgUuiA8i0r7+B3AfqKcN6t8M6HtqQ+AOoELCikgQSbgabKaJW3kn5lBs47JSGDhhLKDUh1UMipwwinMYPTBuIBjEclSaGZUk9hDlTb5sUTYN2SFFQuPe4Gox1X0FZOufjgBiV1Vls7b+GvK3SU4wfmcGo9rPPQzgIabfj4TYQo15k3bTHX9RIw/kniir5YbtJF4jkFG+dsDK1IgE413zAthU/vR2HVMmFUPIHTvF6jWCpFaGw/A3qWgnbxpSm9MSmY5b3pM1gvNc/gQfwBsGwF0VCtxZgAAAAASUVORK5CYII=
+Mime-Version: 1.0
+Cc: Joseph Glanville <joseph.glanville@orionvm.com.au>,
+       James Harper <james.harper@bendigoit.com.au>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
+       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.7 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] bug when using 4K sectors?
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+> I would kind of expect it to work, as CD-ROMs have a larger sector size (2kB
+> IIRC) and we support those...
+
+For data blocks they are 2K, as are some magneto-opticals.
+
+The more complicated case is modern hard disks, while you can access them
+on 512 byte boundaries they are actually using bigger block sizes but the
+large blocks are not neccessarily on the 0 boundary in order to get
+optimal alignment for existing file systems and partitioning.
+
+So knowing the block size isn't the whole story.
+
+Alan
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<20120916170737.3c8f7e9e@pyramind.ukuu.org.uk> b/config/examples/test/corpus/<20120916170737.3c8f7e9e@pyramind.ukuu.org.uk>
new file mode 100644 (file)
index 0000000..c8e3249
--- /dev/null
@@ -0,0 +1,101 @@
+From xen-devel-bounces@lists.xen.org Sun Sep 16 17:07:11 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Sun, 16 Sep 2012 17:07:11 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TDHNC-0000f1-5s
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Sun, 16 Sep 2012 17:07:11 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TDHJT-00053m-1E; Sun, 16 Sep 2012 16:03:15 +0000
+Received: from mail27.messagelabs.com ([193.109.254.147])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <alan@lxorguk.ukuu.org.uk>) id 1TDHJR-00053Q-LF
+       for xen-devel@lists.xen.org; Sun, 16 Sep 2012 16:03:13 +0000
+X-Env-Sender: alan@lxorguk.ukuu.org.uk
+X-Msg-Ref: server-5.tower-27.messagelabs.com!1347811384!7815285!1
+X-Originating-IP: [81.2.110.251]
+X-SpamReason: No, hits=0.0 required=7.0 tests=
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 511 invoked from network); 16 Sep 2012 16:03:04 -0000
+Received: from lxorguk.ukuu.org.uk (HELO lxorguk.ukuu.org.uk) (81.2.110.251)
+       by server-5.tower-27.messagelabs.com with DHE-RSA-AES256-SHA encrypted
+       SMTP; 16 Sep 2012 16:03:04 -0000
+Received: from pyramind.ukuu.org.uk (earthlight.etchedpixels.co.uk
+       [81.2.110.250])
+       by lxorguk.ukuu.org.uk (8.14.5/8.14.1) with ESMTP id q8GGZGhb019756;
+       Sun, 16 Sep 2012 17:35:22 +0100
+Received: from pyramind.ukuu.org.uk (localhost [127.0.0.1])
+       by pyramind.ukuu.org.uk (8.14.5/8.14.5) with ESMTP id q8GG7ciK013536;
+       Sun, 16 Sep 2012 17:07:38 +0100
+Date: Sun, 16 Sep 2012 17:07:37 +0100
+From: Alan Cox <alan@lxorguk.ukuu.org.uk>
+To: James Harper <james.harper@bendigoit.com.au>
+Message-ID: <20120916170737.3c8f7e9e@pyramind.ukuu.org.uk>
+In-Reply-To: <6035A0D088A63A46850C3988ED045A4B29B980EB@BITCOM1.int.sbss.com.au>
+References: <CAOzFzEiZopdFQuZkUcSWWre9b=NeZpJM9n2VtEoZcRo=ejYQPA@mail.gmail.com>
+       <CC7B4CE4.3EE74%keir.xen@gmail.com>
+       <20120916122704.4ea05b45@pyramind.ukuu.org.uk>
+       <6035A0D088A63A46850C3988ED045A4B29B980EB@BITCOM1.int.sbss.com.au>
+X-Mailer: Claws Mail 3.8.0 (GTK+ 2.24.8; x86_64-redhat-linux-gnu)
+Face: iVBORw0KGgoAAAANSUhEUgAAADAAAAAwBAMAAAClLOS0AAAAFVBMVEWysKsSBQMIAwIZCwj///8wIhxoRDXH9QHCAAABeUlEQVQ4jaXTvW7DIBAAYCQTzz2hdq+rdg494ZmBeE5KYHZjm/d/hJ6NfzBJpp5kRb5PHJwvMPMk2L9As5Y9AmYRBL+HAyJKeOU5aHRhsAAvORQ+UEgAvgddj/lwAXndw2laEDqA4x6KEBhjYRCg9tBFCOuJFxg2OKegbWjbsRTk8PPhKPD7HcRxB7cqhgBRp9Dcqs+B8v4CQvFdqeot3Kov6hBUn0AJitrzY+sgUuiA8i0r7+B3AfqKcN6t8M6HtqQ+AOoELCikgQSbgabKaJW3kn5lBs47JSGDhhLKDUh1UMipwwinMYPTBuIBjEclSaGZUk9hDlTb5sUTYN2SFFQuPe4Gox1X0FZOufjgBiV1Vls7b+GvK3SU4wfmcGo9rPPQzgIabfj4TYQo15k3bTHX9RIw/kniir5YbtJF4jkFG+dsDK1IgE413zAthU/vR2HVMmFUPIHTvF6jWCpFaGw/A3qWgnbxpSm9MSmY5b3pM1gvNc/gQfwBsGwF0VCtxZgAAAAASUVORK5CYII=
+Mime-Version: 1.0
+Cc: Joseph Glanville <joseph.glanville@orionvm.com.au>,
+       Keir Fraser <keir.xen@gmail.com>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
+       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.7 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] bug when using 4K sectors?
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+> > So knowing the block size isn't the whole story.
+> > 
+> 
+> Are you saying that Xen and/or Linux needs to worry about a user setting up a poorly aligned filesystem to pass to a VM? Seems simpler just to set things up right in the first place.
+
+That assumes things like a file system and the existing layout being
+correct. Plus you also have to set the thing up which means you have to
+know about such stuff.
+
+For file systems Linux itself does indeed take the approach of "so
+partition sensibly" because in the fs case it's really hard if not
+impossible to do a good job any other way.
+
+For raw devices and things like databases wanting atomicity of block
+writes however its quite different and you need to be aware of the
+alignments.
+
+Alan
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<20120917181858.GA17720@phenom.dumpdata.com> b/config/examples/test/corpus/<20120917181858.GA17720@phenom.dumpdata.com>
new file mode 100644 (file)
index 0000000..e6981f8
--- /dev/null
@@ -0,0 +1,111 @@
+From xen-devel-bounces@lists.xen.org Mon Sep 17 19:33:28 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Mon, 17 Sep 2012 19:33:28 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TDg8M-0001oK-1p
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Mon, 17 Sep 2012 19:33:28 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TDg4y-0006IJ-Vl; Mon, 17 Sep 2012 18:29:56 +0000
+Received: from mail27.messagelabs.com ([193.109.254.147])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <konrad.wilk@oracle.com>) id 1TDg4x-0006IE-Oa
+       for xen-devel@lists.xensource.com; Mon, 17 Sep 2012 18:29:55 +0000
+X-Env-Sender: konrad.wilk@oracle.com
+X-Msg-Ref: server-13.tower-27.messagelabs.com!1347906588!10259406!1
+X-Originating-IP: [148.87.113.117]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogMTQ4Ljg3LjExMy4xMTcgPT4gNzQ1MDU4\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 28790 invoked from network); 17 Sep 2012 18:29:49 -0000
+Received: from rcsinet15.oracle.com (HELO rcsinet15.oracle.com)
+       (148.87.113.117)
+       by server-13.tower-27.messagelabs.com with DHE-RSA-AES256-SHA encrypted
+       SMTP; 17 Sep 2012 18:29:49 -0000
+Received: from ucsinet21.oracle.com (ucsinet21.oracle.com [156.151.31.93])
+       by rcsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
+       ESMTP id q8HITj0I005680
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
+       Mon, 17 Sep 2012 18:29:46 GMT
+Received: from acsmt356.oracle.com (acsmt356.oracle.com [141.146.40.156])
+       by ucsinet21.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
+       q8HITjGc011005
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
+       Mon, 17 Sep 2012 18:29:45 GMT
+Received: from abhmt114.oracle.com (abhmt114.oracle.com [141.146.116.66])
+       by acsmt356.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
+       q8HITi6U010788; Mon, 17 Sep 2012 13:29:44 -0500
+Received: from phenom.dumpdata.com (/50.195.21.189)
+       by default (Oracle Beehive Gateway v4.0)
+       with ESMTP ; Mon, 17 Sep 2012 11:29:44 -0700
+Received: by phenom.dumpdata.com (Postfix, from userid 1000)
+       id 46CBF402B4; Mon, 17 Sep 2012 14:18:58 -0400 (EDT)
+Date: Mon, 17 Sep 2012 14:18:58 -0400
+From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+To: William Dauchy <wdauchy@gmail.com>
+Message-ID: <20120917181858.GA17720@phenom.dumpdata.com>
+References: <1345133009-21941-1-git-send-email-konrad.wilk@oracle.com>
+       <1345133009-21941-12-git-send-email-konrad.wilk@oracle.com>
+       <CAJ75kXYG3uPmMhUwB9ivHt0w5gm14aqAynSWQwooWg65xLTzPw@mail.gmail.com>
+MIME-Version: 1.0
+Content-Disposition: inline
+In-Reply-To: <CAJ75kXYG3uPmMhUwB9ivHt0w5gm14aqAynSWQwooWg65xLTzPw@mail.gmail.com>
+User-Agent: Mutt/1.5.21 (2010-09-15)
+X-Source-IP: ucsinet21.oracle.com [156.151.31.93]
+Cc: xen-devel@lists.xensource.com, linux-kernel@vger.kernel.org
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.7 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 11/11] xen/mmu: Release just the MFN list,
+ not MFN list and part of pagetables.
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Mon, Sep 17, 2012 at 08:06:26PM +0200, William Dauchy wrote:
+> Hello Konrad,
+> 
+> On Thu, Aug 16, 2012 at 6:03 PM, Konrad Rzeszutek Wilk
+> <konrad.wilk@oracle.com> wrote:
+> > (XEN) mm.c:908:d0 Error getting mfn 116a83 (pfn 14e2a) from L1 entry 8000000116a83067 for l1e_owner=0, pg_owner=0
+> > (XEN) mm.c:908:d0 Error getting mfn 4040 (pfn 5555555555555555) from L1 entry 0000000004040601 for l1e_owner=0, pg_owner=0
+> 
+> This is something I also have on my 3.4.x branch. Since then mmu.c has
+> change a lot; is there an easy fix to make a backport for 3.4.x?
+
+Uhh, can you open a new email thread with the error you are seeing and
+please include the full serial log along with dmidecode pls?
+
+> 
+> -- 
+> William
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<20120921121659.5a723de9@mantra.us.oracle.com> b/config/examples/test/corpus/<20120921121659.5a723de9@mantra.us.oracle.com>
new file mode 100644 (file)
index 0000000..7e7f82e
--- /dev/null
@@ -0,0 +1,306 @@
+From xen-devel-bounces@lists.xen.org Fri Sep 21 20:20:38 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 21 Sep 2012 20:20:38 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TF8m7-0003nq-Rb
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 21 Sep 2012 20:20:38 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TF8iu-0002wG-0s; Fri, 21 Sep 2012 19:17:12 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <mukesh.rathor@oracle.com>) id 1TF8is-0002w5-Ui
+       for Xen-devel@lists.xensource.com; Fri, 21 Sep 2012 19:17:11 +0000
+Received: from [85.158.139.211:45311] by server-15.bemta-5.messagelabs.com id
+       EB/3F-23541-63DBC505; Fri, 21 Sep 2012 19:17:10 +0000
+X-Env-Sender: mukesh.rathor@oracle.com
+X-Msg-Ref: server-11.tower-206.messagelabs.com!1348255028!19508578!1
+X-Originating-IP: [148.87.113.117]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogMTQ4Ljg3LjExMy4xMTcgPT4gNzU2MzI0\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 9730 invoked from network); 21 Sep 2012 19:17:09 -0000
+Received: from rcsinet15.oracle.com (HELO rcsinet15.oracle.com)
+       (148.87.113.117)
+       by server-11.tower-206.messagelabs.com with DHE-RSA-AES256-SHA
+       encrypted SMTP; 21 Sep 2012 19:17:09 -0000
+Received: from ucsinet22.oracle.com (ucsinet22.oracle.com [156.151.31.94])
+       by rcsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
+       ESMTP id q8LJH3mQ007248
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
+       Fri, 21 Sep 2012 19:17:04 GMT
+Received: from acsmt356.oracle.com (acsmt356.oracle.com [141.146.40.156])
+       by ucsinet22.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
+       q8LJH38J021437
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
+       Fri, 21 Sep 2012 19:17:03 GMT
+Received: from abhmt109.oracle.com (abhmt109.oracle.com [141.146.116.61])
+       by acsmt356.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
+       q8LJH26d009412; Fri, 21 Sep 2012 14:17:02 -0500
+Received: from mantra.us.oracle.com (/130.35.68.95)
+       by default (Oracle Beehive Gateway v4.0)
+       with ESMTP ; Fri, 21 Sep 2012 12:17:02 -0700
+Date: Fri, 21 Sep 2012 12:16:59 -0700
+From: Mukesh Rathor <mukesh.rathor@oracle.com>
+To: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
+       "Xen-devel@lists.xensource.com" <Xen-devel@lists.xensource.com>,
+       Ian Campbell <Ian.Campbell@citrix.com>, "stefano.stabellini@eu.citrix.com"
+       <stefano.stabellini@eu.citrix.com>
+Message-ID: <20120921121659.5a723de9@mantra.us.oracle.com>
+Organization: Oracle Corporation
+X-Mailer: Claws Mail 3.7.6 (GTK+ 2.18.9; x86_64-redhat-linux-gnu)
+Mime-Version: 1.0
+X-Source-IP: ucsinet22.oracle.com [156.151.31.94]
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.7 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: [Xen-devel] [PATCH v1 3/8]: PVH startup changes (enlighten.c)
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+       
+---
+ arch/x86/xen/enlighten.c |   99 ++++++++++++++++++++++++++++++++++++---------
+ 1 files changed, 79 insertions(+), 20 deletions(-)
+
+diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c
+index bf4bda6..98f1798 100644
+--- a/arch/x86/xen/enlighten.c
++++ b/arch/x86/xen/enlighten.c
+@@ -45,6 +45,7 @@
+ #include <xen/hvm.h>
+ #include <xen/hvc-console.h>
+ #include <xen/acpi.h>
++#include <xen/features.h>
+ #include <asm/paravirt.h>
+ #include <asm/apic.h>
+@@ -105,6 +106,9 @@ RESERVE_BRK(shared_info_page_brk, PAGE_SIZE);
+ __read_mostly int xen_have_vector_callback;
+ EXPORT_SYMBOL_GPL(xen_have_vector_callback);
++#define xen_pvh_domain() (xen_pv_domain() && \
++                        xen_feature(XENFEAT_auto_translated_physmap) && \
++                        xen_have_vector_callback)
+ /*
+  * Point at some empty memory to start with. We map the real shared_info
+  * page as soon as fixmap is up and running.
+@@ -139,6 +143,8 @@ struct tls_descs {
+  */
+ static DEFINE_PER_CPU(struct tls_descs, shadow_tls_desc);
++static void __init xen_hvm_init_shared_info(void);
++
+ static void clamp_max_cpus(void)
+ {
+ #ifdef CONFIG_SMP
+@@ -217,8 +223,9 @@ static void __init xen_banner(void)
+       struct xen_extraversion extra;
+       HYPERVISOR_xen_version(XENVER_extraversion, &extra);
+-      printk(KERN_INFO "Booting paravirtualized kernel on %s\n",
+-             pv_info.name);
++      printk(KERN_INFO "Booting paravirtualized kernel %son %s\n",
++              xen_feature(XENFEAT_auto_translated_physmap) ?
++                      "with PVH extensions " : "", pv_info.name);
+       printk(KERN_INFO "Xen version: %d.%d%s%s\n",
+              version >> 16, version & 0xffff, extra.extraversion,
+              xen_feature(XENFEAT_mmu_pt_update_preserve_ad) ? " (preserve-AD)" : "");
+@@ -271,12 +278,15 @@ static void xen_cpuid(unsigned int *ax, unsigned int *bx,
+               break;
+       }
+-      asm(XEN_EMULATE_PREFIX "cpuid"
+-              : "=a" (*ax),
+-                "=b" (*bx),
+-                "=c" (*cx),
+-                "=d" (*dx)
+-              : "0" (*ax), "2" (*cx));
++      if (xen_pvh_domain())
++              native_cpuid(ax, bx, cx, dx);
++      else
++              asm(XEN_EMULATE_PREFIX "cpuid"
++                      : "=a" (*ax),
++                      "=b" (*bx),
++                      "=c" (*cx),
++                      "=d" (*dx)
++                      : "0" (*ax), "2" (*cx));
+       *bx &= maskebx;
+       *cx &= maskecx;
+@@ -1034,6 +1044,10 @@ static int xen_write_msr_safe(unsigned int msr, unsigned low, unsigned high)
+ void xen_setup_shared_info(void)
+ {
++      /* do later in xen_pvh_guest_init() when extend_brk is properly setup*/
++      if (xen_pvh_domain() && xen_initial_domain())
++              return;
++
+       if (!xen_feature(XENFEAT_auto_translated_physmap)) {
+               set_fixmap(FIX_PARAVIRT_BOOTMAP,
+                          xen_start_info->shared_info);
+@@ -1044,6 +1058,10 @@ void xen_setup_shared_info(void)
+               HYPERVISOR_shared_info =
+                       (struct shared_info *)__va(xen_start_info->shared_info);
++      /* PVH TBD/FIXME: vcpu info placement in phase 2 */
++      if (xen_pvh_domain())
++              return;
++
+ #ifndef CONFIG_SMP
+       /* In UP this is as good a place as any to set up shared info */
+       xen_setup_vcpu_info_placement();
+@@ -1274,6 +1292,11 @@ static const struct machine_ops xen_machine_ops __initconst = {
+  */
+ static void __init xen_setup_stackprotector(void)
+ {
++      /* PVH TBD/FIXME: investigate setup_stack_canary_segment */
++      if (xen_feature(XENFEAT_auto_translated_physmap)) {
++              switch_to_new_gdt(0);
++              return;
++      }
+       pv_cpu_ops.write_gdt_entry = xen_write_gdt_entry_boot;
+       pv_cpu_ops.load_gdt = xen_load_gdt_boot;
+@@ -1284,6 +1307,31 @@ static void __init xen_setup_stackprotector(void)
+       pv_cpu_ops.load_gdt = xen_load_gdt;
+ }
++static void __init xen_pvh_guest_init(void)
++{
++      /* PVH TBD/FIXME: for now just disable this. */
++      have_vcpu_info_placement = 0;
++
++        /* for domU, the library sets start_info.shared_info to pfn, but for
++         * dom0, it contains mfn. we need to get the pfn for shared_info. PVH
++       * uses HVM code in many places */
++      if (xen_initial_domain())
++              xen_hvm_init_shared_info();
++}
++
++static void __init xen_pvh_early_guest_init(void)
++{
++      if (xen_feature(XENFEAT_hvm_callback_vector))
++              xen_have_vector_callback = 1;
++
++#ifdef CONFIG_X86_32
++      if (xen_feature(XENFEAT_auto_translated_physmap)) {
++              xen_raw_printk("ERROR: 32bit PVH guests are not supported\n");
++              BUG();
++      }
++#endif
++}
++
+ /* First C function to be called on Xen boot */
+ asmlinkage void __init xen_start_kernel(void)
+ {
+@@ -1296,13 +1344,18 @@ asmlinkage void __init xen_start_kernel(void)
+       xen_domain_type = XEN_PV_DOMAIN;
++      xen_setup_features();
++      xen_pvh_early_guest_init();
+       xen_setup_machphys_mapping();
+       /* Install Xen paravirt ops */
+       pv_info = xen_info;
+       pv_init_ops = xen_init_ops;
+-      pv_cpu_ops = xen_cpu_ops;
+       pv_apic_ops = xen_apic_ops;
++      if (xen_pvh_domain())
++              pv_cpu_ops.cpuid = xen_cpuid;
++      else
++              pv_cpu_ops = xen_cpu_ops;
+       x86_init.resources.memory_setup = xen_memory_setup;
+       x86_init.oem.arch_setup = xen_arch_setup;
+@@ -1334,8 +1387,6 @@ asmlinkage void __init xen_start_kernel(void)
+       /* Work out if we support NX */
+       x86_configure_nx();
+-      xen_setup_features();
+-
+       /* Get mfn list */
+       if (!xen_feature(XENFEAT_auto_translated_physmap))
+               xen_build_dynamic_phys_to_machine();
+@@ -1408,14 +1459,18 @@ asmlinkage void __init xen_start_kernel(void)
+       /* set the limit of our address space */
+       xen_reserve_top();
+-      /* We used to do this in xen_arch_setup, but that is too late on AMD
+-       * were early_cpu_init (run before ->arch_setup()) calls early_amd_init
+-       * which pokes 0xcf8 port.
+-       */
+-      set_iopl.iopl = 1;
+-      rc = HYPERVISOR_physdev_op(PHYSDEVOP_set_iopl, &set_iopl);
+-      if (rc != 0)
+-              xen_raw_printk("physdev_op failed %d\n", rc);
++      /* PVH: runs at default kernel iopl of 0 */
++      if (!xen_pvh_domain()) {
++              /*
++               * We used to do this in xen_arch_setup, but that is too late
++               * on AMD were early_cpu_init (run before ->arch_setup()) calls
++               * early_amd_init which pokes 0xcf8 port.
++               */
++              set_iopl.iopl = 1;
++              rc = HYPERVISOR_physdev_op(PHYSDEVOP_set_iopl, &set_iopl);
++              if (rc != 0)
++                      xen_raw_printk("physdev_op failed %d\n", rc);
++      }
+ #ifdef CONFIG_X86_32
+       /* set up basic CPUID stuff */
+@@ -1462,6 +1517,9 @@ asmlinkage void __init xen_start_kernel(void)
+       xen_setup_runstate_info(0);
++      if (xen_pvh_domain())
++              xen_pvh_guest_init();
++
+       /* Start the world */
+ #ifdef CONFIG_X86_32
+       i386_start_kernel();
+@@ -1585,7 +1643,8 @@ static struct syscore_ops xen_hvm_syscore_ops = {
+ };
+ #endif
+-/* Use a pfn in RAM, may move to MMIO before kexec. */
++/* Use a pfn in RAM, may move to MMIO before kexec.
++ * This function also called for PVH dom0 */
+ static void __init xen_hvm_init_shared_info(void)
+ {
+       /* Remember pointer for resume */
+-- 
+1.7.2.3
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<20120924154335.097d3fb9@mantra.us.oracle.com> b/config/examples/test/corpus/<20120924154335.097d3fb9@mantra.us.oracle.com>
new file mode 100644 (file)
index 0000000..dd6c6c4
--- /dev/null
@@ -0,0 +1,176 @@
+From xen-devel-bounces@lists.xen.org Mon Sep 24 23:48:50 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Mon, 24 Sep 2012 23:48:50 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TGHSJ-0004KF-Kl
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Mon, 24 Sep 2012 23:48:50 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TGHNX-00052D-Nj; Mon, 24 Sep 2012 22:43:51 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <mukesh.rathor@oracle.com>) id 1TGHNV-000528-St
+       for Xen-devel@lists.xensource.com; Mon, 24 Sep 2012 22:43:50 +0000
+Received: from [85.158.138.51:47683] by server-14.bemta-3.messagelabs.com id
+       A5/CA-21431-522E0605; Mon, 24 Sep 2012 22:43:49 +0000
+X-Env-Sender: mukesh.rathor@oracle.com
+X-Msg-Ref: server-9.tower-174.messagelabs.com!1348526626!30122946!1
+X-Originating-IP: [141.146.126.227]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogMTQxLjE0Ni4xMjYuMjI3ID0+IDc2OTcxMA==\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 32088 invoked from network); 24 Sep 2012 22:43:48 -0000
+Received: from acsinet15.oracle.com (HELO acsinet15.oracle.com)
+       (141.146.126.227)
+       by server-9.tower-174.messagelabs.com with DHE-RSA-AES256-SHA encrypted
+       SMTP; 24 Sep 2012 22:43:48 -0000
+Received: from ucsinet21.oracle.com (ucsinet21.oracle.com [156.151.31.93])
+       by acsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
+       ESMTP id q8OMhcfC030417
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
+       Mon, 24 Sep 2012 22:43:39 GMT
+Received: from acsmt357.oracle.com (acsmt357.oracle.com [141.146.40.157])
+       by ucsinet21.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
+       q8OMhbIl028830
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
+       Mon, 24 Sep 2012 22:43:38 GMT
+Received: from abhmt117.oracle.com (abhmt117.oracle.com [141.146.116.69])
+       by acsmt357.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
+       q8OMha90015094; Mon, 24 Sep 2012 17:43:36 -0500
+Received: from mantra.us.oracle.com (/130.35.68.95)
+       by default (Oracle Beehive Gateway v4.0)
+       with ESMTP ; Mon, 24 Sep 2012 15:43:36 -0700
+Date: Mon, 24 Sep 2012 15:43:35 -0700
+From: Mukesh Rathor <mukesh.rathor@oracle.com>
+To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+Message-ID: <20120924154335.097d3fb9@mantra.us.oracle.com>
+In-Reply-To: <alpine.DEB.2.02.1209241257440.29232@kaball.uk.xensource.com>
+References: <20120921121659.5a723de9@mantra.us.oracle.com>
+       <alpine.DEB.2.02.1209241257440.29232@kaball.uk.xensource.com>
+Organization: Oracle Corporation
+X-Mailer: Claws Mail 3.7.6 (GTK+ 2.18.9; x86_64-redhat-linux-gnu)
+Mime-Version: 1.0
+X-Source-IP: ucsinet21.oracle.com [156.151.31.93]
+Cc: "Xen-devel@lists.xensource.com" <Xen-devel@lists.xensource.com>,
+       Ian Campbell <Ian.Campbell@citrix.com>,
+       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-5.0 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH v1 3/8]: PVH startup changes (enlighten.c)
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Mon, 24 Sep 2012 13:07:19 +0100
+Stefano Stabellini <stefano.stabellini@eu.citrix.com> wrote:
+
+> On Fri, 21 Sep 2012, Mukesh Rathor wrote:
+> > ---
+> >  arch/x86/xen/enlighten.c |   99
+> > ++++++++++++++++++++++++++++++++++++--------- 1 files changed, 79
+> > insertions(+), 20 deletions(-)
+> > 
+> > +                  "with PVH extensions " : "", pv_info.name);
+> >    printk(KERN_INFO "Xen version: %d.%d%s%s\n",
+> >           version >> 16, version & 0xffff, extra.extraversion,
+> >           xen_feature(XENFEAT_mmu_pt_update_preserve_ad) ?
+> > " (preserve-AD)" : ""); @@ -271,12 +278,15 @@ static void
+> > xen_cpuid(unsigned int *ax, unsigned int *bx, break;
+> >    }
+> >  
+> > -  asm(XEN_EMULATE_PREFIX "cpuid"
+> > -          : "=a" (*ax),
+> > -            "=b" (*bx),
+> > -            "=c" (*cx),
+> > -            "=d" (*dx)
+> > -          : "0" (*ax), "2" (*cx));
+> > +  if (xen_pvh_domain())
+> > +          native_cpuid(ax, bx, cx, dx);
+> > +  else
+> > +          asm(XEN_EMULATE_PREFIX "cpuid"
+> > +                  : "=a" (*ax),
+> > +                  "=b" (*bx),
+> > +                  "=c" (*cx),
+> > +                  "=d" (*dx)
+> > +                  : "0" (*ax), "2" (*cx));
+> 
+> can't we just set the cpuid pvop to native_cpuid?
+
+We had talked about this a bit at code review. There is some massaging
+before and after that goes on, and so we thought we should just leave 
+it like that.
+
+> 
+> >    *bx &= maskebx;
+> >    *cx &= maskecx;
+> > @@ -1034,6 +1044,10 @@ static int xen_write_msr_safe(unsigned int
+> > msr, unsigned low, unsigned high) 
+> >  void xen_setup_shared_info(void)
+> >  {
+> > +  /* do later in xen_pvh_guest_init() when extend_brk is
+> > properly setup*/
+> 
+> Which one is the function that is going to get called later to do the
+> initialization? It cannot be this one because it would still return
+> immediately.
+
+xen_pvh_guest_init() just like the comment says :).
+
+
+> 
+> > +  if (xen_pvh_domain() && xen_initial_domain())
+> > +          return;
+> > +
+> >    if (!xen_feature(XENFEAT_auto_translated_physmap)) {
+> >            set_fixmap(FIX_PARAVIRT_BOOTMAP,
+> >                       xen_start_info->shared_info);
+> >
+> > @@ -1044,6 +1058,10 @@ void xen_setup_shared_info(void)
+> >            HYPERVISOR_shared_info =
+> >                    (struct shared_info
+> > *)__va(xen_start_info->shared_info); 
+> > +  /* PVH TBD/FIXME: vcpu info placement in phase 2 */
+> > +  if (xen_pvh_domain())
+> > +          return;
+> 
+> It seems that if xen_initial_domain we always skip the initialization
+> while if !xen_initial_domain we only initialize
+> HYPERVISOR_shared_info. I don't understand why we have this
+> difference.
+
+The comment in xen_pvh_guest_init() explains it. For domU the library
+maps the pfn at shared_info, ie, shared_info is pfn. For dom0, it's the
+mfn. Dom0 then allocates a pfn via extend_brk, and maps the mfn to it. This
+happens in the commond hvm code, xen_hvm_init_shared_info().
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<20120925180416.0137d61a@mantra.us.oracle.com> b/config/examples/test/corpus/<20120925180416.0137d61a@mantra.us.oracle.com>
new file mode 100644 (file)
index 0000000..4924f78
--- /dev/null
@@ -0,0 +1,151 @@
+From xen-devel-bounces@lists.xen.org Wed Sep 26 02:08:21 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 26 Sep 2012 02:08:21 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TGg6t-0005Pi-7h
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 26 Sep 2012 02:08:21 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TGg3B-0000Pv-3Q; Wed, 26 Sep 2012 01:04:29 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <mukesh.rathor@oracle.com>) id 1TGg39-0000Po-3Y
+       for Xen-devel@lists.xensource.com; Wed, 26 Sep 2012 01:04:27 +0000
+Received: from [85.158.139.211:43297] by server-8.bemta-5.messagelabs.com id
+       C3/DC-18073-A9452605; Wed, 26 Sep 2012 01:04:26 +0000
+X-Env-Sender: mukesh.rathor@oracle.com
+X-Msg-Ref: server-5.tower-206.messagelabs.com!1348621464!19912761!1
+X-Originating-IP: [148.87.113.117]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogMTQ4Ljg3LjExMy4xMTcgPT4gNzY0MTUx\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 5599 invoked from network); 26 Sep 2012 01:04:25 -0000
+Received: from rcsinet15.oracle.com (HELO rcsinet15.oracle.com)
+       (148.87.113.117)
+       by server-5.tower-206.messagelabs.com with DHE-RSA-AES256-SHA encrypted
+       SMTP; 26 Sep 2012 01:04:25 -0000
+Received: from ucsinet22.oracle.com (ucsinet22.oracle.com [156.151.31.94])
+       by rcsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
+       ESMTP id q8Q14J2o004325
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
+       Wed, 26 Sep 2012 01:04:20 GMT
+Received: from acsmt356.oracle.com (acsmt356.oracle.com [141.146.40.156])
+       by ucsinet22.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
+       q8Q14IZj005187
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
+       Wed, 26 Sep 2012 01:04:18 GMT
+Received: from abhmt119.oracle.com (abhmt119.oracle.com [141.146.116.71])
+       by acsmt356.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
+       q8Q14IkK004900; Tue, 25 Sep 2012 20:04:18 -0500
+Received: from mantra.us.oracle.com (/130.35.68.95)
+       by default (Oracle Beehive Gateway v4.0)
+       with ESMTP ; Tue, 25 Sep 2012 18:04:17 -0700
+Date: Tue, 25 Sep 2012 18:04:16 -0700
+From: Mukesh Rathor <mukesh.rathor@oracle.com>
+To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+Message-ID: <20120925180416.0137d61a@mantra.us.oracle.com>
+In-Reply-To: <alpine.DEB.2.02.1209251054140.29232@kaball.uk.xensource.com>
+References: <20120921121659.5a723de9@mantra.us.oracle.com>
+       <alpine.DEB.2.02.1209241257440.29232@kaball.uk.xensource.com>
+       <20120924154335.097d3fb9@mantra.us.oracle.com>
+       <alpine.DEB.2.02.1209251054140.29232@kaball.uk.xensource.com>
+Organization: Oracle Corporation
+X-Mailer: Claws Mail 3.7.6 (GTK+ 2.18.9; x86_64-redhat-linux-gnu)
+Mime-Version: 1.0
+X-Source-IP: ucsinet22.oracle.com [156.151.31.94]
+Cc: "Xen-devel@lists.xensource.com" <Xen-devel@lists.xensource.com>,
+       Ian Campbell <Ian.Campbell@citrix.com>,
+       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-5.0 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH v1 3/8]: PVH startup changes (enlighten.c)
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Tue, 25 Sep 2012 11:03:13 +0100
+Stefano Stabellini <stefano.stabellini@eu.citrix.com> wrote:
+
+> On Mon, 24 Sep 2012, Mukesh Rathor wrote:
+> > On Mon, 24 Sep 2012 13:07:19 +0100
+> > Stefano Stabellini <stefano.stabellini@eu.citrix.com> wrote:
+> > 
+> > > On Fri, 21 Sep 2012, Mukesh Rathor wrote:
+> > > > +              return;
+> > > > +
+> > > >        if (!xen_feature(XENFEAT_auto_translated_physmap)) {
+> > > >                set_fixmap(FIX_PARAVIRT_BOOTMAP,
+> > > >                           xen_start_info->shared_info);
+> > > >
+> > > > @@ -1044,6 +1058,10 @@ void xen_setup_shared_info(void)
+> > > >                HYPERVISOR_shared_info =
+> > > >                        (struct shared_info
+> > > > *)__va(xen_start_info->shared_info); 
+> > > > +      /* PVH TBD/FIXME: vcpu info placement in phase 2 */
+> > > > +      if (xen_pvh_domain())
+> > > > +              return;
+> > > 
+> > > It seems that if xen_initial_domain we always skip the
+> > > initialization while if !xen_initial_domain we only initialize
+> > > HYPERVISOR_shared_info. I don't understand why we have this
+> > > difference.
+> > 
+> > The comment in xen_pvh_guest_init() explains it. For domU the
+> > library maps the pfn at shared_info, ie, shared_info is pfn. For
+> > dom0, it's the mfn. Dom0 then allocates a pfn via extend_brk, and
+> > maps the mfn to it. This happens in the commond hvm code,
+> > xen_hvm_init_shared_info().
+> 
+> This difference is really subtle, it would be nice to get rid of it.
+> Could Xen allocate a pfn for dom0?
+
+Not easily.
+
+> Otherwise could we have the tools allocate an mfn instead of a pfn?
+> In fact looking at xc_dom_x86.c, alloc_magic_pages is explicitly
+> having a different behavior for xc_dom_feature_translated guests and
+> allocates pfn instead of an mfn. Maybe we could get rid of that
+> special case: less code in libxc, a common way of allocating the
+> shared_info page for domU and dom0 => win.
+
+Wish it was simple. But for PV and PVH, domU, it's already setup the 
+shared page. All we need to do is __va(shared_info). But for HVM domUs 
+and PVH dom0, we need to hcall with pfn to get it remapped. Changing the
+tool to map pfn, would result in unnecessary hcall for all PV and PVH
+domUs. It's only two lines of code, so lets just leave it. I'll make the
+comment better.
+
+
+thx,
+Mukesh
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<20121002183619.70734b7a@mantra.us.oracle.com> b/config/examples/test/corpus/<20121002183619.70734b7a@mantra.us.oracle.com>
new file mode 100644 (file)
index 0000000..df5aa9c
--- /dev/null
@@ -0,0 +1,143 @@
+From xen-devel-bounces@lists.xen.org Wed Oct 03 02:42:05 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 03 Oct 2012 02:42:05 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TJDyN-0008Bk-3o
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 03 Oct 2012 02:42:05 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TJDt6-0006wX-Pn; Wed, 03 Oct 2012 01:36:36 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <mukesh.rathor@oracle.com>) id 1TJDt4-0006wS-Pv
+       for Xen-devel@lists.xensource.com; Wed, 03 Oct 2012 01:36:34 +0000
+Received: from [85.158.143.35:29755] by server-2.bemta-4.messagelabs.com id
+       61/23-06610-2A69B605; Wed, 03 Oct 2012 01:36:34 +0000
+X-Env-Sender: mukesh.rathor@oracle.com
+X-Msg-Ref: server-4.tower-21.messagelabs.com!1349228191!6324914!1
+X-Originating-IP: [141.146.126.227]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogMTQxLjE0Ni4xMjYuMjI3ID0+IDc4ODkzOA==\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 28636 invoked from network); 3 Oct 2012 01:36:33 -0000
+Received: from acsinet15.oracle.com (HELO acsinet15.oracle.com)
+       (141.146.126.227)
+       by server-4.tower-21.messagelabs.com with DHE-RSA-AES256-SHA encrypted
+       SMTP; 3 Oct 2012 01:36:33 -0000
+Received: from ucsinet21.oracle.com (ucsinet21.oracle.com [156.151.31.93])
+       by acsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
+       ESMTP id q931aN9Y018701
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
+       Wed, 3 Oct 2012 01:36:24 GMT
+Received: from acsmt356.oracle.com (acsmt356.oracle.com [141.146.40.156])
+       by ucsinet21.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
+       q931aMgc000869
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
+       Wed, 3 Oct 2012 01:36:22 GMT
+Received: from abhmt114.oracle.com (abhmt114.oracle.com [141.146.116.66])
+       by acsmt356.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
+       q931aLph032741; Tue, 2 Oct 2012 20:36:21 -0500
+Received: from mantra.us.oracle.com (/130.35.68.95)
+       by default (Oracle Beehive Gateway v4.0)
+       with ESMTP ; Tue, 02 Oct 2012 18:36:21 -0700
+Date: Tue, 2 Oct 2012 18:36:19 -0700
+From: Mukesh Rathor <mukesh.rathor@oracle.com>
+To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+Message-ID: <20121002183619.70734b7a@mantra.us.oracle.com>
+In-Reply-To: <alpine.DEB.2.02.1209261225340.29232@kaball.uk.xensource.com>
+References: <20120921121659.5a723de9@mantra.us.oracle.com>
+       <alpine.DEB.2.02.1209241257440.29232@kaball.uk.xensource.com>
+       <20120924154335.097d3fb9@mantra.us.oracle.com>
+       <alpine.DEB.2.02.1209251054140.29232@kaball.uk.xensource.com>
+       <20120925180416.0137d61a@mantra.us.oracle.com>
+       <alpine.DEB.2.02.1209261225340.29232@kaball.uk.xensource.com>
+Organization: Oracle Corporation
+X-Mailer: Claws Mail 3.7.6 (GTK+ 2.18.9; x86_64-redhat-linux-gnu)
+Mime-Version: 1.0
+X-Source-IP: ucsinet21.oracle.com [156.151.31.93]
+Cc: "Xen-devel@lists.xensource.com" <Xen-devel@lists.xensource.com>,
+       Ian Campbell <Ian.Campbell@citrix.com>,
+       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH v1 3/8]: PVH startup changes (enlighten.c)
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Wed, 26 Sep 2012 12:33:39 +0100
+Stefano Stabellini <stefano.stabellini@eu.citrix.com> wrote:
+
+> > Wish it was simple. But for PV and PVH, domU, it's already setup
+> > the shared page. All we need to do is __va(shared_info). But for
+> > HVM domUs and PVH dom0, we need to hcall with pfn to get it
+> > remapped.
+> 
+> For PVH domU is already setup as a pfn only because in
+> tools/libxc/xc_dom_x86.c:alloc_magic_pages we have this code:
+> 
+>     if ( xc_dom_feature_translated(dom) )
+>         dom->shared_info_pfn = xc_dom_alloc_page(dom, "shared info");
+> 
+> and in tools/libxc/xc_dom_x86.c:start_info_x86_64 we have:
+> 
+>     xen_pfn_t shinfo =
+>         xc_dom_feature_translated(dom) ? dom->shared_info_pfn : dom->
+>         shared_info_mfn;
+> 
+> if we simply get rid of the two "if xc_dom_feature_translated(dom)"
+> wouldn't we get an mfn for PVH domU too? AFAICT all the other cases
+> would remain unmodified, but PVH domU would start getting an mfn for
+> shared_info.
+> 
+> > Changing the
+> > tool to map pfn, would result in unnecessary hcall for all PV and
+> > PVH domUs. It's only two lines of code, so lets just leave it. I'll
+> > make the comment better.
+> 
+> Yes, there would be one more unnecessary hypercall but we would get
+> rid of 4 "if". I think is a good trade off.
+
+Well, not really unfortunately! There are two fields in the library 
+shared_info_mfn and shared_info_pfn in struct xc_dom_image. For
+xlated, pfn is set, otherwise, mfn is set. If I set mfn for auto 
+xlated also, I end up changing/adding  more code in the library where
+it tries to map the shared page. Moreover, it's better to stick with the
+library assumption that for auto xlated, pfn is set, otherwise,
+mfn is set.
+
+Hope that makes sense. I tried it, btw.
+
+thanks,
+Mukesh
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<20121002190323.2e16f6ff@mantra.us.oracle.com> b/config/examples/test/corpus/<20121002190323.2e16f6ff@mantra.us.oracle.com>
new file mode 100644 (file)
index 0000000..f1aa568
--- /dev/null
@@ -0,0 +1,156 @@
+From xen-devel-bounces@lists.xen.org Wed Oct 03 03:09:27 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 03 Oct 2012 03:09:27 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TJEOq-0008DM-Fk
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 03 Oct 2012 03:09:27 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TJEJF-0007VK-5r; Wed, 03 Oct 2012 02:03:37 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <mukesh.rathor@oracle.com>) id 1TJEJC-0007VF-Pi
+       for Xen-devel@lists.xensource.com; Wed, 03 Oct 2012 02:03:34 +0000
+Received: from [85.158.143.99:13157] by server-3.bemta-4.messagelabs.com id
+       EA/C3-10986-5FC9B605; Wed, 03 Oct 2012 02:03:33 +0000
+X-Env-Sender: mukesh.rathor@oracle.com
+X-Msg-Ref: server-10.tower-216.messagelabs.com!1349229812!26192144!1
+X-Originating-IP: [141.146.126.227]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogMTQxLjE0Ni4xMjYuMjI3ID0+IDc4ODkzOA==\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 6008 invoked from network); 3 Oct 2012 02:03:33 -0000
+Received: from acsinet15.oracle.com (HELO acsinet15.oracle.com)
+       (141.146.126.227)
+       by server-10.tower-216.messagelabs.com with DHE-RSA-AES256-SHA
+       encrypted SMTP; 3 Oct 2012 02:03:33 -0000
+Received: from ucsinet21.oracle.com (ucsinet21.oracle.com [156.151.31.93])
+       by acsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
+       ESMTP id q9323QLG001206
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
+       Wed, 3 Oct 2012 02:03:27 GMT
+Received: from acsmt356.oracle.com (acsmt356.oracle.com [141.146.40.156])
+       by ucsinet21.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
+       q9323PS0000835
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
+       Wed, 3 Oct 2012 02:03:26 GMT
+Received: from abhmt108.oracle.com (abhmt108.oracle.com [141.146.116.60])
+       by acsmt356.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
+       q9323OF2012815; Tue, 2 Oct 2012 21:03:24 -0500
+Received: from mantra.us.oracle.com (/130.35.68.95)
+       by default (Oracle Beehive Gateway v4.0)
+       with ESMTP ; Tue, 02 Oct 2012 19:03:24 -0700
+Date: Tue, 2 Oct 2012 19:03:23 -0700
+From: Mukesh Rathor <mukesh.rathor@oracle.com>
+To: Mukesh Rathor <mukesh.rathor@oracle.com>
+Message-ID: <20121002190323.2e16f6ff@mantra.us.oracle.com>
+In-Reply-To: <20121002183619.70734b7a@mantra.us.oracle.com>
+References: <20120921121659.5a723de9@mantra.us.oracle.com>
+       <alpine.DEB.2.02.1209241257440.29232@kaball.uk.xensource.com>
+       <20120924154335.097d3fb9@mantra.us.oracle.com>
+       <alpine.DEB.2.02.1209251054140.29232@kaball.uk.xensource.com>
+       <20120925180416.0137d61a@mantra.us.oracle.com>
+       <alpine.DEB.2.02.1209261225340.29232@kaball.uk.xensource.com>
+       <20121002183619.70734b7a@mantra.us.oracle.com>
+Organization: Oracle Corporation
+X-Mailer: Claws Mail 3.7.6 (GTK+ 2.18.9; x86_64-redhat-linux-gnu)
+Mime-Version: 1.0
+X-Source-IP: ucsinet21.oracle.com [156.151.31.93]
+Cc: "Xen-devel@lists.xensource.com" <Xen-devel@lists.xensource.com>,
+       Ian Campbell <Ian.Campbell@citrix.com>,
+       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
+       Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH v1 3/8]: PVH startup changes (enlighten.c)
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Tue, 2 Oct 2012 18:36:19 -0700
+Mukesh Rathor <mukesh.rathor@oracle.com> wrote:
+
+> On Wed, 26 Sep 2012 12:33:39 +0100
+> Stefano Stabellini <stefano.stabellini@eu.citrix.com> wrote:
+> 
+> > > Wish it was simple. But for PV and PVH, domU, it's already setup
+> > > the shared page. All we need to do is __va(shared_info). But for
+> > > HVM domUs and PVH dom0, we need to hcall with pfn to get it
+> > > remapped.
+> > 
+> > For PVH domU is already setup as a pfn only because in
+> > tools/libxc/xc_dom_x86.c:alloc_magic_pages we have this code:
+> > 
+> >     if ( xc_dom_feature_translated(dom) )
+> >         dom->shared_info_pfn = xc_dom_alloc_page(dom, "shared
+> > info");
+> > 
+> > and in tools/libxc/xc_dom_x86.c:start_info_x86_64 we have:
+> > 
+> >     xen_pfn_t shinfo =
+> >         xc_dom_feature_translated(dom) ? dom->shared_info_pfn :
+> > dom-> shared_info_mfn;
+> > 
+> > if we simply get rid of the two "if xc_dom_feature_translated(dom)"
+> > wouldn't we get an mfn for PVH domU too? AFAICT all the other cases
+> > would remain unmodified, but PVH domU would start getting an mfn for
+> > shared_info.
+> > 
+> > > Changing the
+> > > tool to map pfn, would result in unnecessary hcall for all PV and
+> > > PVH domUs. It's only two lines of code, so lets just leave it.
+> > > I'll make the comment better.
+> > 
+> > Yes, there would be one more unnecessary hypercall but we would get
+> > rid of 4 "if". I think is a good trade off.
+> 
+> Well, not really unfortunately! There are two fields in the library 
+> shared_info_mfn and shared_info_pfn in struct xc_dom_image. For
+> xlated, pfn is set, otherwise, mfn is set. If I set mfn for auto 
+> xlated also, I end up changing/adding  more code in the library where
+> it tries to map the shared page. Moreover, it's better to stick with
+> the library assumption that for auto xlated, pfn is set, otherwise,
+> mfn is set.
+> 
+> Hope that makes sense. I tried it, btw.
+> 
+
+I'm not able to make a quick change to xen to just put pfn for dom0
+also. get_gpfn_from_mfn() is crashing. So for now, how about, lets go
+with what I've got. I'll make a note, and when I do xen patch, I'll
+figure it out, and would be a very small linux patch. I want to get
+linux patch in soon before the window closes.
+
+thanks
+Mukesh
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<20121002200837.GB668@phenom.dumpdata.com> b/config/examples/test/corpus/<20121002200837.GB668@phenom.dumpdata.com>
new file mode 100644 (file)
index 0000000..ccc5e4c
--- /dev/null
@@ -0,0 +1,163 @@
+From xen-devel-bounces@lists.xen.org Tue Oct 02 21:24:21 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Tue, 02 Oct 2012 21:24:21 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TJ90r-0007Q4-5p
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 02 Oct 2012 21:24:20 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TJ8x7-0008FC-49; Tue, 02 Oct 2012 20:20:25 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <konrad.wilk@oracle.com>) id 1TJ8x5-0008F4-3O
+       for xen-devel@lists.xen.org; Tue, 02 Oct 2012 20:20:23 +0000
+Received: from [85.158.143.99:9151] by server-1.bemta-4.messagelabs.com id
+       97/CE-05684-68C4B605; Tue, 02 Oct 2012 20:20:22 +0000
+X-Env-Sender: konrad.wilk@oracle.com
+X-Msg-Ref: server-2.tower-216.messagelabs.com!1349209220!24420530!1
+X-Originating-IP: [141.146.126.227]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogMTQxLjE0Ni4xMjYuMjI3ID0+IDc4Nzc1OQ==\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 28221 invoked from network); 2 Oct 2012 20:20:21 -0000
+Received: from acsinet15.oracle.com (HELO acsinet15.oracle.com)
+       (141.146.126.227)
+       by server-2.tower-216.messagelabs.com with DHE-RSA-AES256-SHA encrypted
+       SMTP; 2 Oct 2012 20:20:21 -0000
+Received: from acsinet21.oracle.com (acsinet21.oracle.com [141.146.126.237])
+       by acsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
+       ESMTP id q92KK8CT022309
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
+       Tue, 2 Oct 2012 20:20:09 GMT
+Received: from acsmt356.oracle.com (acsmt356.oracle.com [141.146.40.156])
+       by acsinet21.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
+       q92KK6bT016236
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
+       Tue, 2 Oct 2012 20:20:06 GMT
+Received: from abhmt110.oracle.com (abhmt110.oracle.com [141.146.116.62])
+       by acsmt356.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
+       q92KK2JM021461; Tue, 2 Oct 2012 15:20:02 -0500
+Received: from phenom.dumpdata.com (/50.195.21.189)
+       by default (Oracle Beehive Gateway v4.0)
+       with ESMTP ; Tue, 02 Oct 2012 13:20:02 -0700
+Received: by phenom.dumpdata.com (Postfix, from userid 1000)
+       id 841E94032D; Tue,  2 Oct 2012 16:08:37 -0400 (EDT)
+Date: Tue, 2 Oct 2012 16:08:37 -0400
+From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+To: Jeremy Fitzhardinge <jeremy@goop.org>
+Message-ID: <20121002200837.GB668@phenom.dumpdata.com>
+References: <7914B38A4445B34AA16EB9F1352942F1012F0F6F4B98@SJCPMAILBOX01.citrite.net>
+       <CC681CDD.3D966%keir.xen@gmail.com>
+       <40501859.20120902104331@eikelenboom.it>
+       <5044849002000078000982EA@nat28.tlf.novell.com>
+       <4610648186.20120904090841@eikelenboom.it>
+       <5045CDF302000078000985FB@nat28.tlf.novell.com>
+       <4710608674.20120904101330@eikelenboom.it>
+       <505AEB2D020000780009C81F@nat28.tlf.novell.com>
+       <50661622.5030302@goop.org>
+MIME-Version: 1.0
+Content-Disposition: inline
+In-Reply-To: <50661622.5030302@goop.org>
+User-Agent: Mutt/1.5.21 (2010-09-15)
+X-Source-IP: acsinet21.oracle.com [141.146.126.237]
+Cc: ehabkost@redhat.com, "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
+       "wei.wang2@amd.com" <wei.wang2@amd.com>,
+       Sander Eikelenboom <linux@eikelenboom.it>, Jan Beulich <JBeulich@suse.com>,
+       Keir Fraser <keir.xen@gmail.com>, Santosh Jodh <Santosh.Jodh@citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] Using debug-key 'o:  Dump IOMMU p2m table,
+ locks up machine
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Fri, Sep 28, 2012 at 02:26:58PM -0700, Jeremy Fitzhardinge wrote:
+> On 09/20/2012 01:08 AM, Jan Beulich wrote:
+> > Ping?
+> 
+> I've been meaning to work up a reply, but I haven't had time to swap in
+> all the context again.
+
+You would remember most of it. Perhaps that was what was saved at that
+point of time and we did not need to restore/save other registers?
+
+> 
+>     J
+> 
+> >
+> >>>> On 04.09.12 at 11:26, Jan Beulich wrote:
+> >>>>> On 04.09.12 at 10:13, Sander Eikelenboom <linux@eikelenboom.it> wrote:
+> >>> Hmm don't know how to get the file/line, only thing i have found is:
+> >>>
+> >>> serveerstertje:/boot# gdb xen-syms-4.2.0-rc4-pre
+> >>> GNU gdb (GDB) 7.0.1-debian
+> >>> Copyright (C) 2009 Free Software Foundation, Inc.
+> >>> License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
+> >>> This is free software: you are free to change and redistribute it.
+> >>> There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
+> >>> and "show warranty" for details.
+> >>> This GDB was configured as "x86_64-linux-gnu".
+> >>> For bug reporting instructions, please see:
+> >>> <http://www.gnu.org/software/gdb/bugs/>...
+> >>> Reading symbols from /boot/xen-syms-4.2.0-rc4-pre...done.
+> >>> (gdb) x/i 0xffff82c48015c9ee
+> >>> 0xffff82c48015c9ee <context_switch+916>:        mov    %edx,%gs
+> >>> (gdb)
+> >> I'm not really a gdb expert, so I don't know off the top of my
+> >> head either. I thought I said in a previous reply that people
+> >> generally appear to use the addr2line utility for that purpose.
+> >>
+> >> But the disassembly already tells us where precisely the
+> >> problem is: The selector value (0x0063) attempted to be put
+> >> into %gs is apparently wrong in the context of the current
+> >> GDT. Now, that's GDT_ENTRY_TLS_MIN on the Linux side,
+> >> and ought to be valid. I'm surprised the guest (and the current
+> >> process in it) survives this (as the failure here results in a failsafe
+> >> callback into the guest).
+> >>
+> >> Looking at the Linux side of things, this has been that way
+> >> forever, and I think has always been broken: On x86-64, it
+> >> should also clear %gs here (since 32-bit processes use it for
+> >> their TLS, and there's nothing wrong for a 64-bit process to put
+> >> something in there either), albeit not via loadsegment(), but
+> >> through xen_load_gs_index(). And I neither see why on 32-bit
+> >> it only clears %gs - %fs can as much hold a selector that might
+> >> get invalidated with the TLS descriptor updates. Eduardo,
+> >> Jeremy, Konrad?
+> >>
+> >> Jan
+> >>
+> >
+> >
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<20121002200907.GC668@phenom.dumpdata.com> b/config/examples/test/corpus/<20121002200907.GC668@phenom.dumpdata.com>
new file mode 100644 (file)
index 0000000..ecbe13e
--- /dev/null
@@ -0,0 +1,150 @@
+From xen-devel-bounces@lists.xen.org Tue Oct 02 21:24:37 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Tue, 02 Oct 2012 21:24:37 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TJ918-0007QM-4L
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 02 Oct 2012 21:24:37 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TJ8xS-0008HP-Gi; Tue, 02 Oct 2012 20:20:46 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <konrad.wilk@oracle.com>) id 1TJ8xQ-0008HA-Oj
+       for xen-devel@lists.xen.org; Tue, 02 Oct 2012 20:20:45 +0000
+Received: from [85.158.139.211:37572] by server-5.bemta-5.messagelabs.com id
+       34/C1-21075-C9C4B605; Tue, 02 Oct 2012 20:20:44 +0000
+X-Env-Sender: konrad.wilk@oracle.com
+X-Msg-Ref: server-11.tower-206.messagelabs.com!1349209241!20823222!1
+X-Originating-IP: [141.146.126.227]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogMTQxLjE0Ni4xMjYuMjI3ID0+IDc4Nzc1OQ==\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 21347 invoked from network); 2 Oct 2012 20:20:43 -0000
+Received: from acsinet15.oracle.com (HELO acsinet15.oracle.com)
+       (141.146.126.227)
+       by server-11.tower-206.messagelabs.com with DHE-RSA-AES256-SHA
+       encrypted SMTP; 2 Oct 2012 20:20:43 -0000
+Received: from ucsinet21.oracle.com (ucsinet21.oracle.com [156.151.31.93])
+       by acsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
+       ESMTP id q92KKY4Q022708
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
+       Tue, 2 Oct 2012 20:20:35 GMT
+Received: from acsmt356.oracle.com (acsmt356.oracle.com [141.146.40.156])
+       by ucsinet21.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
+       q92KKXJ2023249
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
+       Tue, 2 Oct 2012 20:20:33 GMT
+Received: from abhmt111.oracle.com (abhmt111.oracle.com [141.146.116.63])
+       by acsmt356.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
+       q92KKW3l021868; Tue, 2 Oct 2012 15:20:32 -0500
+Received: from phenom.dumpdata.com (/50.195.21.189)
+       by default (Oracle Beehive Gateway v4.0)
+       with ESMTP ; Tue, 02 Oct 2012 13:20:32 -0700
+Received: by phenom.dumpdata.com (Postfix, from userid 1000)
+       id CB6FF4032D; Tue,  2 Oct 2012 16:09:07 -0400 (EDT)
+Date: Tue, 2 Oct 2012 16:09:07 -0400
+From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+To: Jan Beulich <JBeulich@suse.com>
+Message-ID: <20121002200907.GC668@phenom.dumpdata.com>
+References: <7914B38A4445B34AA16EB9F1352942F1012F0F6F4B98@SJCPMAILBOX01.citrite.net>
+       <CC681CDD.3D966%keir.xen@gmail.com>
+       <40501859.20120902104331@eikelenboom.it>
+       <5044849002000078000982EA@nat28.tlf.novell.com>
+       <4610648186.20120904090841@eikelenboom.it>
+       <5045CDF302000078000985FB@nat28.tlf.novell.com>
+       <4710608674.20120904101330@eikelenboom.it>
+       <5045E55A02000078000986E4@nat28.tlf.novell.com>
+MIME-Version: 1.0
+Content-Disposition: inline
+In-Reply-To: <5045E55A02000078000986E4@nat28.tlf.novell.com>
+User-Agent: Mutt/1.5.21 (2010-09-15)
+X-Source-IP: ucsinet21.oracle.com [156.151.31.93]
+Cc: Jeremy Fitzhardinge <jeremy@goop.org>, ehabkost@redhat.com,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
+       "wei.wang2@amd.com" <wei.wang2@amd.com>,
+       Sander Eikelenboom <linux@eikelenboom.it>,
+       Keir Fraser <keir.xen@gmail.com>, Santosh Jodh <Santosh.Jodh@citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] Using debug-key 'o:  Dump IOMMU p2m table,
+ locks up machine
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Tue, Sep 04, 2012 at 10:26:18AM +0100, Jan Beulich wrote:
+> >>> On 04.09.12 at 10:13, Sander Eikelenboom <linux@eikelenboom.it> wrote:
+> > Hmm don't know how to get the file/line, only thing i have found is:
+> > 
+> > serveerstertje:/boot# gdb xen-syms-4.2.0-rc4-pre
+> > GNU gdb (GDB) 7.0.1-debian
+> > Copyright (C) 2009 Free Software Foundation, Inc.
+> > License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
+> > This is free software: you are free to change and redistribute it.
+> > There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
+> > and "show warranty" for details.
+> > This GDB was configured as "x86_64-linux-gnu".
+> > For bug reporting instructions, please see:
+> > <http://www.gnu.org/software/gdb/bugs/>...
+> > Reading symbols from /boot/xen-syms-4.2.0-rc4-pre...done.
+> > (gdb) x/i 0xffff82c48015c9ee
+> > 0xffff82c48015c9ee <context_switch+916>:        mov    %edx,%gs
+> > (gdb)
+> 
+> I'm not really a gdb expert, so I don't know off the top of my
+> head either. I thought I said in a previous reply that people
+> generally appear to use the addr2line utility for that purpose.
+> 
+> But the disassembly already tells us where precisely the
+> problem is: The selector value (0x0063) attempted to be put
+> into %gs is apparently wrong in the context of the current
+> GDT. Now, that's GDT_ENTRY_TLS_MIN on the Linux side,
+> and ought to be valid. I'm surprised the guest (and the current
+> process in it) survives this (as the failure here results in a failsafe
+> callback into the guest).
+> 
+> Looking at the Linux side of things, this has been that way
+> forever, and I think has always been broken: On x86-64, it
+> should also clear %gs here (since 32-bit processes use it for
+> their TLS, and there's nothing wrong for a 64-bit process to put
+> something in there either), albeit not via loadsegment(), but
+> through xen_load_gs_index(). And I neither see why on 32-bit
+> it only clears %gs - %fs can as much hold a selector that might
+> get invalidated with the TLS descriptor updates. Eduardo,
+> Jeremy, Konrad?
+
+How is it on the SLES side? Do you set/restore all of the segment
+registers?
+> 
+> Jan
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<20121002205456.GA15862@u002268147cd4502c336d.ant.amazon.com> b/config/examples/test/corpus/<20121002205456.GA15862@u002268147cd4502c336d.ant.amazon.com>
new file mode 100644 (file)
index 0000000..4f921c6
--- /dev/null
@@ -0,0 +1,137 @@
+From xen-devel-bounces@lists.xen.org Tue Oct 02 21:59:49 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Tue, 02 Oct 2012 21:59:49 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TJ9ZB-0007Uu-9q
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 02 Oct 2012 21:59:49 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TJ9Uj-0000ZP-Bm; Tue, 02 Oct 2012 20:55:09 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <msw@amazon.com>) id 1TJ9Ui-0000ZH-4x
+       for xen-devel@lists.xen.org; Tue, 02 Oct 2012 20:55:08 +0000
+Received: from [85.158.139.83:30607] by server-6.bemta-5.messagelabs.com id
+       AA/12-14717-BA45B605; Tue, 02 Oct 2012 20:55:07 +0000
+X-Env-Sender: msw@amazon.com
+X-Msg-Ref: server-14.tower-182.messagelabs.com!1349211303!28842564!1
+X-Originating-IP: [207.171.178.25]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogMjA3LjE3MS4xNzguMjUgPT4gNzMyODg=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 18219 invoked from network); 2 Oct 2012 20:55:05 -0000
+Received: from smtp-fw-31001.amazon.com (HELO smtp-fw-31001.amazon.com)
+       (207.171.178.25)
+       by server-14.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
+       2 Oct 2012 20:55:05 -0000
+DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
+       d=amazon.com; i=msw@amazon.com; q=dns/txt;
+       s=amazon201209; t=1349211306; x=1380747306;
+       h=date:from:to:cc:subject:message-id:references:
+       mime-version:in-reply-to;
+       bh=f+HhfuhiXyrMQShoQ7Dc5pn3Q9T4KF4kGjdv8r30jd0=;
+       b=TIc0sx12MwXHFMy3DQRVfxgYljUc6AOxpPsL/1MCDeUqvRhFyjP2u0El
+       YUz63CITVKTiUpD7sXFBreJFL7hZIJ8WPWs1CFcjxiJu+OTBOuIRWipNR
+       mCMjXnUP0gVHsxbWsj+RJDxbKRcE0Pi7iCSTjTBdw2hvrFAUKf59RRUml 0=;
+X-IronPort-AV: E=Sophos;i="4.80,524,1344211200"; d="scan'208";a="303029087"
+Received: from smtp-in-31001.sea31.amazon.com ([10.184.168.27])
+       by smtp-border-fw-out-31001.sea31.amazon.com with
+       ESMTP/TLS/DHE-RSA-AES256-SHA; 02 Oct 2012 20:55:03 +0000
+Received: from ex10-hub-9003.ant.amazon.com (ex10-hub-9003.ant.amazon.com
+       [10.185.137.132])
+       by smtp-in-31001.sea31.amazon.com (8.13.8/8.13.8) with ESMTP id
+       q92KsxEY028960
+       (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=FAIL);
+       Tue, 2 Oct 2012 20:54:59 GMT
+Received: from u002268147cd4502c336d.ant.amazon.com (10.224.80.41) by
+       ex10-hub-9003.ant.amazon.com (10.185.137.132) with Microsoft SMTP
+       Server id 14.2.247.3; Tue, 2 Oct 2012 13:54:58 -0700
+Received: by u002268147cd4502c336d.ant.amazon.com (sSMTP sendmail emulation); 
+       Tue, 02 Oct 2012 13:54:58 -0700
+Date: Tue, 2 Oct 2012 13:54:58 -0700
+From: Matt Wilson <msw@amazon.com>
+To: Jan Beulich <JBeulich@suse.com>
+Message-ID: <20121002205456.GA15862@u002268147cd4502c336d.ant.amazon.com>
+References: <7914B38A4445B34AA16EB9F1352942F1012F0F6F4B98@SJCPMAILBOX01.citrite.net>
+       <CC681CDD.3D966%keir.xen@gmail.com>
+       <40501859.20120902104331@eikelenboom.it>
+       <5044849002000078000982EA@nat28.tlf.novell.com>
+       <4610648186.20120904090841@eikelenboom.it>
+       <5045CDF302000078000985FB@nat28.tlf.novell.com>
+       <4710608674.20120904101330@eikelenboom.it>
+       <5045E55A02000078000986E4@nat28.tlf.novell.com>
+MIME-Version: 1.0
+Content-Disposition: inline
+In-Reply-To: <5045E55A02000078000986E4@nat28.tlf.novell.com>
+User-Agent: Mutt/1.5.21 (2010-09-15)
+Cc: Jeremy Fitzhardinge <jeremy@goop.org>, ehabkost@redhat.com,
+       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
+       "wei.wang2@amd.com" <wei.wang2@amd.com>,
+       Sander Eikelenboom <linux@eikelenboom.it>,
+       Keir Fraser <keir.xen@gmail.com>, Santosh Jodh <Santosh.Jodh@citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,T_DKIM_INVALID,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] Using debug-key 'o:  Dump IOMMU p2m table,
+ locks up machine
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Tue, Sep 04, 2012 at 10:26:18AM +0100, Jan Beulich wrote:
+> >>> On 04.09.12 at 10:13, Sander Eikelenboom <linux@eikelenboom.it> wrote:
+> > Hmm don't know how to get the file/line, only thing i have found is:
+> > 
+> > serveerstertje:/boot# gdb xen-syms-4.2.0-rc4-pre
+> > GNU gdb (GDB) 7.0.1-debian
+> > Copyright (C) 2009 Free Software Foundation, Inc.
+> > License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
+> > This is free software: you are free to change and redistribute it.
+> > There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
+> > and "show warranty" for details.
+> > This GDB was configured as "x86_64-linux-gnu".
+> > For bug reporting instructions, please see:
+> > <http://www.gnu.org/software/gdb/bugs/>...
+> > Reading symbols from /boot/xen-syms-4.2.0-rc4-pre...done.
+> > (gdb) x/i 0xffff82c48015c9ee
+> > 0xffff82c48015c9ee <context_switch+916>:        mov    %edx,%gs
+> > (gdb)
+> 
+> I'm not really a gdb expert, so I don't know off the top of my
+> head either. I thought I said in a previous reply that people
+> generally appear to use the addr2line utility for that purpose.
+
+addr2line works, but "l *0xffff82c48015c9ee" in gdb should as well.
+
+Matt
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<20121003134323.GA31270@phenom.dumpdata.com> b/config/examples/test/corpus/<20121003134323.GA31270@phenom.dumpdata.com>
new file mode 100644 (file)
index 0000000..6f1f9b8
--- /dev/null
@@ -0,0 +1,142 @@
+From xen-devel-bounces@lists.xen.org Wed Oct 03 14:58:45 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 03 Oct 2012 14:58:45 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TJPTD-0006B3-Qh
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 03 Oct 2012 14:58:45 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TJPPk-0006Vq-Uf; Wed, 03 Oct 2012 13:55:04 +0000
+Received: from mail27.messagelabs.com ([193.109.254.147])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <konrad.wilk@oracle.com>) id 1TJPPj-0006V3-Ae
+       for xen-devel@lists.xensource.com; Wed, 03 Oct 2012 13:55:03 +0000
+X-Env-Sender: konrad.wilk@oracle.com
+X-Msg-Ref: server-13.tower-27.messagelabs.com!1349272495!8611806!1
+X-Originating-IP: [148.87.113.117]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogMTQ4Ljg3LjExMy4xMTcgPT4gNzgwMzQw\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 22500 invoked from network); 3 Oct 2012 13:54:56 -0000
+Received: from rcsinet15.oracle.com (HELO rcsinet15.oracle.com)
+       (148.87.113.117)
+       by server-13.tower-27.messagelabs.com with DHE-RSA-AES256-SHA encrypted
+       SMTP; 3 Oct 2012 13:54:56 -0000
+Received: from acsinet22.oracle.com (acsinet22.oracle.com [141.146.126.238])
+       by rcsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
+       ESMTP id q93DsnGQ008811
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
+       Wed, 3 Oct 2012 13:54:50 GMT
+Received: from acsmt356.oracle.com (acsmt356.oracle.com [141.146.40.156])
+       by acsinet22.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
+       q93DslZC014775
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
+       Wed, 3 Oct 2012 13:54:49 GMT
+Received: from abhmt113.oracle.com (abhmt113.oracle.com [141.146.116.65])
+       by acsmt356.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
+       q93DslDw012835; Wed, 3 Oct 2012 08:54:47 -0500
+Received: from phenom.dumpdata.com (/50.195.21.189)
+       by default (Oracle Beehive Gateway v4.0)
+       with ESMTP ; Wed, 03 Oct 2012 06:54:47 -0700
+Received: by phenom.dumpdata.com (Postfix, from userid 1000)
+       id 938B04032D; Wed,  3 Oct 2012 09:43:23 -0400 (EDT)
+Date: Wed, 3 Oct 2012 09:43:23 -0400
+From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+Message-ID: <20121003134323.GA31270@phenom.dumpdata.com>
+References: <alpine.DEB.2.02.1210031431080.29232@kaball.uk.xensource.com>
+MIME-Version: 1.0
+Content-Disposition: inline
+In-Reply-To: <alpine.DEB.2.02.1210031431080.29232@kaball.uk.xensource.com>
+User-Agent: Mutt/1.5.21 (2010-09-15)
+X-Source-IP: acsinet22.oracle.com [141.146.126.238]
+Cc: xen-devel@lists.xensource.com, linux-kernel@vger.kernel.org
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH] xen: point xen_start_info to a dummy struct
+ for PV on HVM guests
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Wed, Oct 03, 2012 at 02:37:53PM +0100, Stefano Stabellini wrote:
+> PV on HVM guests don't have a start_info page mapped by Xen, so
+> xen_start_info is just NULL for them.
+> That is problem because other parts of the code expect xen_start_info to
+> point to something valid, for example xen_initial_domain() is defined as
+> follow:
+> 
+> #define xen_initial_domain()    (xen_domain() && \
+>                  xen_start_info->flags & SIF_INITDOMAIN)
+> 
+
+.. introduced by commit 4c071ee5268f7234c3d084b6093bebccc28cdcba
+("arm: initial Xen support)
+
+> 
+> Allocate a dummy start_info struct and point xen_start_info to it, as we
+> do on ARM.
+> This is not going to change things for PV guests because
+> xen_start_info is set by arch/x86/xen/xen-head.S:startup_xen.
+> 
+> Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+
+Reported-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+> 
+> diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c
+> index bf788d3..5f242cb 100644
+> --- a/arch/x86/xen/enlighten.c
+> +++ b/arch/x86/xen/enlighten.c
+> @@ -96,7 +96,8 @@ EXPORT_SYMBOL(machine_to_phys_mapping);
+>  unsigned long  machine_to_phys_nr;
+>  EXPORT_SYMBOL(machine_to_phys_nr);
+>  
+> -struct start_info *xen_start_info;
+> +static struct start_info _xen_start_info;
+
+And lets change that to
+'xen_dummy_start_info' to keep in sync with the other dummy one.
+
+And also add a commnt:
+
+/*
+ * Since 'xen_initial_domain' dereferences the xen_start_info we need
+ * a dummy structure filled with zeros (for PVHVM guests which initialize
+ * this late). For PV guests we do not have to worry about this as the first
+ * few instructions (startup_xen) set it  properly.
+ */
+> +struct start_info *xen_start_info = &_xen_start_info;
+>  EXPORT_SYMBOL_GPL(xen_start_info);
+>  
+>  struct shared_info xen_dummy_shared_info;
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<20121003141116.GA10633@phenom.dumpdata.com> b/config/examples/test/corpus/<20121003141116.GA10633@phenom.dumpdata.com>
new file mode 100644 (file)
index 0000000..44fa2c2
--- /dev/null
@@ -0,0 +1,262 @@
+From xen-devel-bounces@lists.xen.org Wed Oct 03 15:26:47 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 03 Oct 2012 15:26:47 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TJPuO-0006IO-M9
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 03 Oct 2012 15:26:47 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TJPqg-00085X-Ej; Wed, 03 Oct 2012 14:22:54 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <konrad.wilk@oracle.com>) id 1TJPqe-00085J-F0
+       for xen-devel@lists.xensource.com; Wed, 03 Oct 2012 14:22:52 +0000
+Received: from [85.158.137.99:36603] by server-14.bemta-3.messagelabs.com id
+       55/B7-25886-B3A4C605; Wed, 03 Oct 2012 14:22:51 +0000
+X-Env-Sender: konrad.wilk@oracle.com
+X-Msg-Ref: server-5.tower-217.messagelabs.com!1349274169!15385461!1
+X-Originating-IP: [141.146.126.227]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogMTQxLjE0Ni4xMjYuMjI3ID0+IDc5MDM1NA==\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 13556 invoked from network); 3 Oct 2012 14:22:50 -0000
+Received: from acsinet15.oracle.com (HELO acsinet15.oracle.com)
+       (141.146.126.227)
+       by server-5.tower-217.messagelabs.com with DHE-RSA-AES256-SHA encrypted
+       SMTP; 3 Oct 2012 14:22:50 -0000
+Received: from ucsinet22.oracle.com (ucsinet22.oracle.com [156.151.31.94])
+       by acsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
+       ESMTP id q93EMgP1012393
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
+       Wed, 3 Oct 2012 14:22:43 GMT
+Received: from acsmt357.oracle.com (acsmt357.oracle.com [141.146.40.157])
+       by ucsinet22.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
+       q93EMf31028208
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
+       Wed, 3 Oct 2012 14:22:42 GMT
+Received: from abhmt109.oracle.com (abhmt109.oracle.com [141.146.116.61])
+       by acsmt357.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
+       q93EMf6h009371; Wed, 3 Oct 2012 09:22:41 -0500
+Received: from phenom.dumpdata.com (/50.195.21.189)
+       by default (Oracle Beehive Gateway v4.0)
+       with ESMTP ; Wed, 03 Oct 2012 07:22:41 -0700
+Received: by phenom.dumpdata.com (Postfix, from userid 1000)
+       id 05FCA4032D; Wed,  3 Oct 2012 10:11:17 -0400 (EDT)
+Date: Wed, 3 Oct 2012 10:11:16 -0400
+From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+To: Ian Campbell <Ian.Campbell@citrix.com>
+Message-ID: <20121003141116.GA10633@phenom.dumpdata.com>
+References: <alpine.DEB.2.02.1210031431080.29232@kaball.uk.xensource.com>
+       <1349272182.650.150.camel@zakaz.uk.xensource.com>
+       <alpine.DEB.2.02.1210031450220.29232@kaball.uk.xensource.com>
+       <1349272482.650.151.camel@zakaz.uk.xensource.com>
+MIME-Version: 1.0
+Content-Disposition: inline
+In-Reply-To: <1349272482.650.151.camel@zakaz.uk.xensource.com>
+User-Agent: Mutt/1.5.21 (2010-09-15)
+X-Source-IP: ucsinet22.oracle.com [156.151.31.94]
+Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
+       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
+Subject: Re: [Xen-devel] [PATCH] xen: point xen_start_info to a dummy struct
+ for PV on HVM guests
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Wed, Oct 03, 2012 at 02:54:42PM +0100, Ian Campbell wrote:
+> On Wed, 2012-10-03 at 14:51 +0100, Stefano Stabellini wrote:
+> > On Wed, 3 Oct 2012, Ian Campbell wrote:
+> > > On Wed, 2012-10-03 at 14:37 +0100, Stefano Stabellini wrote:
+> > > > PV on HVM guests don't have a start_info page mapped by Xen, so
+> > > > xen_start_info is just NULL for them.
+> > > > That is problem because other parts of the code expect xen_start_info to
+> > > > point to something valid, for example xen_initial_domain() is defined as
+> > > > follow:
+> > > > 
+> > > > #define xen_initial_domain()    (xen_domain() && \
+> > > >                  xen_start_info->flags & SIF_INITDOMAIN)
+> > > 
+> > > But anyone who calls this before xen_start_info is setup is going to get
+> > > a bogus result, specifically in this case they will think they are domU
+> > > when in reality they are dom0 -- wouldn't it be better to fix those
+> > > callsites?
+> > 
+> > That cannot be the case because setting up xen_start_info is the very
+> > first thing that is done, before even calling to C.
+> 
+> On PV, yes, but you are trying to fix PVHVM here, no?
+> 
+> Otherwise if this is always set before calling into C then what is the
+> purpose of this patch?
+
+to fix this - as PVHVM has it set to NULL and we end up de-referencing
+the xen_start_info and crashing. As so::
+
+
+Decompressing Linux... Parsing ELF... done.
+Booting the kernel.
+[    0.000000] Initializing cgroup subsys cpuset
+[    0.000000] Initializing cgroup subsys cpu
+[    0.000000] Linux version 3.6.0upstream-04121-g0313983 (konrad@build.dumpdata.com) (gcc version 4.4.4 20100503 (Red Hat 4.4.4-2) (GCC) ) #1 SMP Tue Oct 2 16:31:21 EDT 2012
+[    0.000000] Command line: initrd=initramf.gz  console=ttyS0,115200 test=net nofb earlyprintk=serial,ttyS0,115200 BOOT_IMAGE=vmlinuz 
+[    0.000000] e820: BIOS-provided physical RAM map:
+[    0.000000] BIOS-e820: [mem 0x0000000000000000-0x000000000009dfff] usable
+[    0.000000] BIOS-e820: [mem 0x000000000009e000-0x000000000009ffff] reserved
+[    0.000000] BIOS-e820: [mem 0x00000000000e0000-0x00000000000fffff] reserved
+[    0.000000] BIOS-e820: [mem 0x0000000000100000-0x000000007fffffff] usable
+[    0.000000] BIOS-e820: [mem 0x00000000fc000000-0x00000000ffffffff] reserved
+[    0.000000] bootconsole [earlyser0] enabled
+[    0.000000] NX (Execute Disable) protection: active
+[    0.000000] DMI 2.4 present.
+[    0.000000] Hypervisor detected: Xen HVM
+[    0.000000] Xen version 4.1.
+[    0.000000] Netfront and the Xen platform PCI driver have been compiled for this kernel: unplug emulated NICs.
+[    0.000000] Blkfront and the Xen platform PCI driver have been compiled for this kernel: unplug emulated disks.
+[    0.000000] You might have to change the root device
+[    0.000000] from /dev/hd[a-d] to /dev/xvd[a-d]
+[    0.000000] in your root= kernel command line option
+[    0.000000] No AGP bridge found
+[    0.000000] e820: last_pfn = 0x80000 max_arch_pfn = 0x400000000
+[    0.000000] x86 PAT enabled: cpu 0, old 0x7040600070406, new 0x7010600070106
+[    0.000000] found SMP MP-table at [mem 0x000fbc90-0x000fbc9f] mapped at [ffff8800000fbc90]
+[    0.000000] init_memory_mapping: [mem 0x00000000-0x7fffffff]
+[    0.000000] RAMDISK: [mem 0x7abeb000-0x7ffdefff]
+[    0.000000] ACPI: RSDP 00000000000ea020 00024 (v02    Xen)
+[    0.000000] ACPI: XSDT 00000000fc00f2b0 00034 (v01    Xen      HVM 00000000 HVML 00000000)
+[    0.000000] ACPI: FACP 00000000fc00f0d0 000F4 (v04    Xen      HVM 00000000 HVML 00000000)
+[    0.000000] ACPI: DSDT 00000000fc003440 0BC09 (v02    Xen      HVM 00000000 INTL 20100528)
+[    0.000000] ACPI: FACS 00000000fc003400 00040
+[    0.000000] ACPI: APIC 00000000fc00f1d0 000D8 (v02    Xen      HVM 00000000 HVML 00000000)
+[    0.000000] No NUMA configuration found
+[    0.000000] Faking a node at [mem 0x0000000000000000-0x000000007fffffff]
+[    0.000000] Initmem setup node 0 [mem 0x00000000-0x7fffffff]
+[    0.000000]   NODE_DATA [mem 0x7fffc000-0x7fffffff]
+[    0.000000] Zone ranges:
+[    0.000000]   DMA      [mem 0x00010000-0x00ffffff]
+[    0.000000]   DMA32    [mem 0x01000000-0xffffffff]
+[    0.000000]   Normal   empty
+[    0.000000] Movable zone start for each node
+[    0.000000] Early memory node ranges
+[    0.000000]   node   0: [mem 0x00010000-0x0009dfff]
+[    0.000000]   node   0: [mem 0x00100000-0x7fffffff]
+[    0.000000] ACPI: PM-Timer IO Port: 0xb008
+[    0.000000] ACPI: LAPIC (acpi_id[0x00] lapic_id[0x00] enabled)
+[    0.000000] ACPI: LAPIC (acpi_id[0x01] lapic_id[0x02] enabled)
+[    0.000000] ACPI: LAPIC (acpi_id[0x02] lapic_id[0x04] disabled)
+[    0.000000] ACPI: LAPIC (acpi_id[0x03] lapic_id[0x06] disabled)
+[    0.000000] ACPI: LAPIC (acpi_id[0x04] lapic_id[0x08] disabled)
+[    0.000000] ACPI: LAPIC (acpi_id[0x05] lapic_id[0x0a] disabled)
+[    0.000000] ACPI: LAPIC (acpi_id[0x06] lapic_id[0x0c] disabled)
+[    0.000000] ACPI: LAPIC (acpi_id[0x07] lapic_id[0x0e] disabled)
+[    0.000000] ACPI: LAPIC (acpi_id[0x08] lapic_id[0x10] disabled)
+[    0.000000] ACPI: LAPIC (acpi_id[0x09] lapic_id[0x12] disabled)
+[    0.000000] ACPI: LAPIC (acpi_id[0x0a] lapic_id[0x14] disabled)
+[    0.000000] ACPI: LAPIC (acpi_id[0x0b] lapic_id[0x16] disabled)
+[    0.000000] ACPI: LAPIC (acpi_id[0x0c] lapic_id[0x18] disabled)
+[    0.000000] ACPI: LAPIC (acpi_id[0x0d] lapic_id[0x1a] disabled)
+[    0.000000] ACPI: LAPIC (acpi_id[0x0e] lapic_id[0x1c] disabled)
+[    0.000000] ACPI: IOAPIC (id[0x01] address[0xfec00000] gsi_base[0])
+[    0.000000] IOAPIC[0]: apic_id 1, version 17, address 0xfec00000, GSI 0-47
+[    0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl dfl)
+[    0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 5 global_irq 5 low level)
+[    0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 10 global_irq 10 low level)
+[    0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 11 global_irq 11 low level)
+[    0.000000] Using ACPI (MADT) for SMP configuration information
+[    0.000000] smpboot: Allowing 15 CPUs, 13 hotplug CPUs
+[    0.000000] PM: Registered nosave memory: 000000000009e000 - 00000000000a0000
+[    0.000000] PM: Registered nosave memory: 00000000000a0000 - 00000000000e0000
+[    0.000000] PM: Registered nosave memory: 00000000000e0000 - 0000000000100000
+[    0.000000] e820: [mem 0x80000000-0xfbffffff] available for PCI devices
+[    0.000000] Booting paravirtualized kernel on Xen HVM
+[    0.000000] setup_percpu: NR_CPUS:512 nr_cpumask_bits:512 nr_cpu_ids:15 nr_node_ids:1
+[    0.000000] PERCPU: Embedded 28 pages/cpu @ffff88007a800000 s84352 r8192 d22144 u131072
+[    0.000000] Built 1 zonelists in Node order, mobility grouping on.  Total pages: 517000
+[    0.000000] Policy zone: DMA32
+[    0.000000] Kernel command line: initrd=initramf.gz  console=ttyS0,115200 test=net nofb earlyprintk=serial,ttyS0,115200 BOOT_IMAGE=vmlinuz 
+[    0.000000] PID hash table entries: 4096 (order: 3, 32768 bytes)
+[    0.000000] __ex_table already sorted, skipping sort
+[    0.000000] Checking aperture...
+[    0.000000] No AGP bridge found
+[    0.000000] Memory: 1967336k/2097152k available (6368k kernel code, 456k absent, 129360k reserved, 4525k data, 752k init)
+[    0.000000] Hierarchical RCU implementation.
+[    0.000000]         RCU restricting CPUs from NR_CPUS=512 to nr_cpu_ids=15.
+[    0.000000] NR_IRQS:33024 nr_irqs:1208 16
+[    0.000000] Xen HVM callback vector for event delivery is enabled
+[    0.000000] Console: colour VGA+ 80x25
+[    0.000000] BUG: unable to handle kernel NULL pointer dereference at 0000000000000030
+[    0.000000] IP: [<ffffffff813ab3be>] xen_cons_init+0x1e/0x60
+[    0.000000] PGD 0 
+[    0.000000] Oops: 0000 [#1] SMP 
+[    0.000000] Modules linked in:
+[    0.000000] CPU 0 
+[    0.000000] Pid: 0, comm: swapper/0 Not tainted 3.6.0upstream-04121-g0313983 #1 Xen HVM domU
+[    0.000000] RIP: 0010:[<ffffffff813ab3be>]  [<ffffffff813ab3be>] xen_cons_init+0x1e/0x60
+[    0.000000] RSP: 0000:ffffffff81a01ef8  EFLAGS: 00010202
+[    0.000000] RAX: 0000000000000000 RBX: ffffffff81b3be60 RCX: 0000000000000002
+[    0.000000] RDX: ffffffff81a59c40 RSI: ffffffff81a59b01 RDI: ffffffff81ba7e81
+[    0.000000] RBP: ffffffff81a01ef8 R08: 00000000000003fd R09: 0000000000000020
+[    0.000000] R10: 0000000000000000 R11: 000000000000000d R12: ffffffff81b008e0
+[    0.000000] R13: ffffffff81b092e0 R14: 0000000000000000 R15: 0000000000026bf0
+[    0.000000] FS:  0000000000000000(0000) GS:ffff88007a800000(0000) knlGS:0000000000000000
+[    0.000000] CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b
+[    0.000000] CR2: 0000000000000030 CR3: 0000000001a0b000 CR4: 00000000000006b0
+[    0.000000] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
+[    0.000000] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
+[    0.000000] Process swapper/0 (pid: 0, threadinfo ffffffff81a00000, task ffffffff81a13420)
+[    0.000000] Stack:
+[    0.000000]  ffffffff81a01f18 ffffffff81aeb9fb ffffffff81b008e0 ffffffffffffffff
+[    0.000000]  ffffffff81a01f68 ffffffff81abac39 ffffffff81aba80d 0000000000026bf0
+[    0.000000]  ffffffff81a01f58 ffffffff81b092e0 0000000001000000 0000000001c72000
+[    0.000000] Call Trace:
+[    0.000000]  [<ffffffff81aeb9fb>] console_init+0x19/0x2a
+[    0.000000]  [<ffffffff81abac39>] start_kernel+0x24a/0x3a3
+[    0.000000]  [<ffffffff81aba80d>] ? kernel_init+0x1e8/0x1e8
+[    0.000000]  [<ffffffff81aba356>] x86_64_start_reservations+0x131/0x136
+[    0.000000]  [<ffffffff81aba45e>] x86_64_start_kernel+0x103/0x112
+[    0.000000] Code: 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 8b 0d 5a 2e 7c 00 55 31 c0 48 89 e5 85 c9 74 37 48 8b 05 51 2e 7c 00 48 c7 c2 40 9c a5 81 <f6> 40 30 02 75 15 83 f9 02 74 27 e8 52 fc ff ff 85 c0 78 15 48 
+[    0.000000] RIP  [<ffffffff813ab3be>] xen_cons_init+0x1e/0x60
+[    0.000000]  RSP <ffffffff81a01ef8>
+[    0.000000] CR2: 0000000000000030
+[    0.000000] ---[ end trace 5cb378039a20e088 ]---
+[    0.000000] Kernel panic - not syncing: Attempted to kill the idle task!
+> 
+> > 
+> > 
+> > > Perhaps turn this into a static inline with a BUG_ON(!xen_start_info) to
+> > > make catching these cases easier?
+> > 
+> 
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<20121003153714.4656b7e9@mantra.us.oracle.com> b/config/examples/test/corpus/<20121003153714.4656b7e9@mantra.us.oracle.com>
new file mode 100644 (file)
index 0000000..4eec006
--- /dev/null
@@ -0,0 +1,152 @@
+From xen-devel-bounces@lists.xen.org Wed Oct 03 23:41:35 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 03 Oct 2012 23:41:35 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TJXdF-00085Q-KP
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 03 Oct 2012 23:41:35 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TJXZF-0001Hs-Nq; Wed, 03 Oct 2012 22:37:25 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <mukesh.rathor@oracle.com>) id 1TJXZD-0001Hk-Oy
+       for Xen-devel@lists.xensource.com; Wed, 03 Oct 2012 22:37:23 +0000
+Received: from [85.158.137.99:8934] by server-3.bemta-3.messagelabs.com id
+       5C/9A-25962-22EBC605; Wed, 03 Oct 2012 22:37:22 +0000
+X-Env-Sender: mukesh.rathor@oracle.com
+X-Msg-Ref: server-3.tower-217.messagelabs.com!1349303840!15113432!1
+X-Originating-IP: [141.146.126.227]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogMTQxLjE0Ni4xMjYuMjI3ID0+IDc5MDM1NA==\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 16983 invoked from network); 3 Oct 2012 22:37:22 -0000
+Received: from acsinet15.oracle.com (HELO acsinet15.oracle.com)
+       (141.146.126.227)
+       by server-3.tower-217.messagelabs.com with DHE-RSA-AES256-SHA encrypted
+       SMTP; 3 Oct 2012 22:37:22 -0000
+Received: from acsinet22.oracle.com (acsinet22.oracle.com [141.146.126.238])
+       by acsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
+       ESMTP id q93MbGPH014255
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
+       Wed, 3 Oct 2012 22:37:17 GMT
+Received: from acsmt356.oracle.com (acsmt356.oracle.com [141.146.40.156])
+       by acsinet22.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
+       q93MbFEe028921
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
+       Wed, 3 Oct 2012 22:37:16 GMT
+Received: from abhmt101.oracle.com (abhmt101.oracle.com [141.146.116.53])
+       by acsmt356.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
+       q93MbFPL003678; Wed, 3 Oct 2012 17:37:15 -0500
+Received: from mantra.us.oracle.com (/130.35.68.95)
+       by default (Oracle Beehive Gateway v4.0)
+       with ESMTP ; Wed, 03 Oct 2012 15:37:15 -0700
+Date: Wed, 3 Oct 2012 15:37:14 -0700
+From: Mukesh Rathor <mukesh.rathor@oracle.com>
+To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+Message-ID: <20121003153714.4656b7e9@mantra.us.oracle.com>
+In-Reply-To: <alpine.DEB.2.02.1210031242180.29232@kaball.uk.xensource.com>
+References: <20120921121659.5a723de9@mantra.us.oracle.com>
+       <alpine.DEB.2.02.1209241257440.29232@kaball.uk.xensource.com>
+       <20120924154335.097d3fb9@mantra.us.oracle.com>
+       <alpine.DEB.2.02.1209251054140.29232@kaball.uk.xensource.com>
+       <20120925180416.0137d61a@mantra.us.oracle.com>
+       <alpine.DEB.2.02.1209261225340.29232@kaball.uk.xensource.com>
+       <20121002183619.70734b7a@mantra.us.oracle.com>
+       <20121002190323.2e16f6ff@mantra.us.oracle.com>
+       <alpine.DEB.2.02.1210031242180.29232@kaball.uk.xensource.com>
+Organization: Oracle Corporation
+X-Mailer: Claws Mail 3.7.6 (GTK+ 2.18.9; x86_64-redhat-linux-gnu)
+Mime-Version: 1.0
+X-Source-IP: acsinet22.oracle.com [141.146.126.238]
+Cc: "Xen-devel@lists.xensource.com" <Xen-devel@lists.xensource.com>,
+       Ian Campbell <Ian.Campbell@citrix.com>,
+       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH v1 3/8]: PVH startup changes (enlighten.c)
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Wed, 3 Oct 2012 12:58:22 +0100
+Stefano Stabellini <stefano.stabellini@eu.citrix.com> wrote:
+
+> On Wed, 3 Oct 2012, Mukesh Rathor wrote:
+> > On Tue, 2 Oct 2012 18:36:19 -0700
+> > Mukesh Rathor <mukesh.rathor@oracle.com> wrote:
+> > 
+> > > On Wed, 26 Sep 2012 12:33:39 +0100
+> 
+> 
+> > So for now, how about, lets go
+> > with what I've got. I'll make a note, and when I do xen patch, I'll
+> > figure it out, and would be a very small linux patch. I want to get
+> > linux patch in soon before the window closes.
+> 
+> We can leave page special as it is for now with very little
+> consequences, because it is not part of the interface with Xen.
+> However this is part of the interface, so whatever we choose here is
+> going to be hard to change later on.
+> 
+> I think it would be good if we could either make dom0 use a pfn or
+> domU use mfn, whatever is easier for you.
+
+Ok, finally, focussing on this, the issue with pfn in dom0 is that
+I need pfn allocated in construct_dom0() and be mapped so that the
+guest can just do :
+
+HYPERVISOR_shared_info=(struct shared_info *)__va(xen_start_info->shared_info);
+
+How about following I am experimenting with right now:
+
+in construct_dom0():
+
+    vstartinfo_end   = (vstartinfo_start +
+                        sizeof(struct start_info) +
+                        sizeof(struct dom0_vga_console_info));
+
+    if ( is_hybrid_domain(d) ) {
+        start_info_pfn_addr = round_pgup(vstartinfo_end) - v_start;
+        vstartinfo_end   += PAGE_SIZE;
+    }
+
+I can then put (PFN: start_info_pfn_addr)->(MFN: virt_to_maddr(d->shared_info))
+in the p2m, and dom0 just has to do __va(), like domU does now.  I wont' need
+to special case dom0 then.
+
+Do you foresee any problems with this approach?
+
+thanks
+Mukesh
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<20121004151535.GB11426@phenom.dumpdata.com> b/config/examples/test/corpus/<20121004151535.GB11426@phenom.dumpdata.com>
new file mode 100644 (file)
index 0000000..1a253ce
--- /dev/null
@@ -0,0 +1,143 @@
+From xen-devel-bounces@lists.xen.org Thu Oct 04 16:30:17 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 04 Oct 2012 16:30:17 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TJnNM-0007H4-53
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 04 Oct 2012 16:30:17 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TJnKN-0001sd-82; Thu, 04 Oct 2012 15:27:07 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <konrad.wilk@oracle.com>) id 1TJnKK-0001sM-Ui
+       for xen-devel@lists.xen.org; Thu, 04 Oct 2012 15:27:05 +0000
+Received: from [85.158.139.211:52287] by server-3.bemta-5.messagelabs.com id
+       D2/42-16108-8CAAD605; Thu, 04 Oct 2012 15:27:04 +0000
+X-Env-Sender: konrad.wilk@oracle.com
+X-Msg-Ref: server-6.tower-206.messagelabs.com!1349364422!21096988!1
+X-Originating-IP: [141.146.126.227]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogMTQxLjE0Ni4xMjYuMjI3ID0+IDc5MzIzNg==\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 28814 invoked from network); 4 Oct 2012 15:27:03 -0000
+Received: from acsinet15.oracle.com (HELO acsinet15.oracle.com)
+       (141.146.126.227)
+       by server-6.tower-206.messagelabs.com with DHE-RSA-AES256-SHA encrypted
+       SMTP; 4 Oct 2012 15:27:03 -0000
+Received: from acsinet21.oracle.com (acsinet21.oracle.com [141.146.126.237])
+       by acsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
+       ESMTP id q94FQx9T003439
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
+       Thu, 4 Oct 2012 15:26:59 GMT
+Received: from acsmt358.oracle.com (acsmt358.oracle.com [141.146.40.158])
+       by acsinet21.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
+       q94FQwOf017112
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
+       Thu, 4 Oct 2012 15:26:59 GMT
+Received: from abhmt116.oracle.com (abhmt116.oracle.com [141.146.116.68])
+       by acsmt358.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
+       q94FQwBN031520; Thu, 4 Oct 2012 10:26:58 -0500
+Received: from phenom.dumpdata.com (/50.195.21.189)
+       by default (Oracle Beehive Gateway v4.0)
+       with ESMTP ; Thu, 04 Oct 2012 08:26:58 -0700
+Received: by phenom.dumpdata.com (Postfix, from userid 1000)
+       id 60DD44035E; Thu,  4 Oct 2012 11:15:35 -0400 (EDT)
+Date: Thu, 4 Oct 2012 11:15:35 -0400
+From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+To: Ian Campbell <ian.campbell@citrix.com>
+Message-ID: <20121004151535.GB11426@phenom.dumpdata.com>
+References: <1349363496.866.49.camel@zakaz.uk.xensource.com>
+       <1349363515-26190-1-git-send-email-ian.campbell@citrix.com>
+MIME-Version: 1.0
+Content-Disposition: inline
+In-Reply-To: <1349363515-26190-1-git-send-email-ian.campbell@citrix.com>
+User-Agent: Mutt/1.5.21 (2010-09-15)
+X-Source-IP: acsinet21.oracle.com [141.146.126.237]
+Cc: Stefano Stabellini <stefano.stabellini@citrix.com>, xen-devel@lists.xen.org
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 01/14] Build fixes which I beleive others
+ have already fixed properly elsewhere
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Thu, Oct 04, 2012 at 04:11:42PM +0100, Ian Campbell wrote:
+> Do not apply, you have better versions of all these somewhere else!
+
+<nods>.
+> ---
+>  drivers/xen/Makefile           |    2 +-
+>  include/xen/interface/memory.h |    4 +---
+>  2 files changed, 2 insertions(+), 4 deletions(-)
+> 
+> diff --git a/drivers/xen/Makefile b/drivers/xen/Makefile
+> index cd28aae..275abfc 100644
+> --- a/drivers/xen/Makefile
+> +++ b/drivers/xen/Makefile
+> @@ -8,10 +8,10 @@ obj-y      += xenbus/
+>  nostackp := $(call cc-option, -fno-stack-protector)
+>  CFLAGS_features.o                   := $(nostackp)
+>  
+> -obj-$(CONFIG_XEN_DOM0)                      += $(dom0-y)
+>  dom0-$(CONFIG_PCI) += pci.o
+>  dom0-$(CONFIG_ACPI) += acpi.o
+>  dom0-$(CONFIG_X86) += pcpu.o
+> +obj-$(CONFIG_XEN_DOM0)                      += $(dom0-y)
+>  obj-$(CONFIG_BLOCK)                 += biomerge.o
+>  obj-$(CONFIG_XEN_XENCOMM)           += xencomm.o
+>  obj-$(CONFIG_XEN_BALLOON)           += xen-balloon.o
+> diff --git a/include/xen/interface/memory.h b/include/xen/interface/memory.h
+> index 9953914..6d74c47 100644
+> --- a/include/xen/interface/memory.h
+> +++ b/include/xen/interface/memory.h
+> @@ -163,15 +163,13 @@ struct xen_add_to_physmap {
+>      /* Which domain to change the mapping for. */
+>      domid_t domid;
+>  
+> -    /* Number of pages to go through for gmfn_range */
+> -    uint16_t    size;
+> -
+>      union {
+>          /* Number of pages to go through for gmfn_range */
+>          uint16_t    size;
+>      /* IFF XENMAPSPACE_gmfn_foreign */
+>          domid_t foreign_domid;
+>      } u;
+> +
+>      /* Source mapping space. */
+>  #define XENMAPSPACE_shared_info 0 /* shared info page */
+>  #define XENMAPSPACE_grant_table 1 /* grant table page */
+> -- 
+> 1.7.2.5
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<20121004152459.GC11426@phenom.dumpdata.com> b/config/examples/test/corpus/<20121004152459.GC11426@phenom.dumpdata.com>
new file mode 100644 (file)
index 0000000..ba243a1
--- /dev/null
@@ -0,0 +1,251 @@
+From xen-devel-bounces@lists.xen.org Thu Oct 04 16:42:01 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 04 Oct 2012 16:42:01 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TJnYh-0007JP-BF
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 04 Oct 2012 16:42:01 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TJnTV-00026Q-Fu; Thu, 04 Oct 2012 15:36:33 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <konrad.wilk@oracle.com>) id 1TJnTS-00026H-UZ
+       for xen-devel@lists.xen.org; Thu, 04 Oct 2012 15:36:31 +0000
+Received: from [85.158.137.99:55322] by server-9.bemta-3.messagelabs.com id
+       25/49-20338-EFCAD605; Thu, 04 Oct 2012 15:36:30 +0000
+X-Env-Sender: konrad.wilk@oracle.com
+X-Msg-Ref: server-10.tower-217.messagelabs.com!1349364987!20189295!1
+X-Originating-IP: [148.87.113.117]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogMTQ4Ljg3LjExMy4xMTcgPT4gNzgzMjE1\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 18712 invoked from network); 4 Oct 2012 15:36:29 -0000
+Received: from rcsinet15.oracle.com (HELO rcsinet15.oracle.com)
+       (148.87.113.117)
+       by server-10.tower-217.messagelabs.com with DHE-RSA-AES256-SHA
+       encrypted SMTP; 4 Oct 2012 15:36:29 -0000
+Received: from ucsinet22.oracle.com (ucsinet22.oracle.com [156.151.31.94])
+       by rcsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
+       ESMTP id q94FaOgg021983
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
+       Thu, 4 Oct 2012 15:36:25 GMT
+Received: from acsmt357.oracle.com (acsmt357.oracle.com [141.146.40.157])
+       by ucsinet22.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
+       q94FaOD6023753
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
+       Thu, 4 Oct 2012 15:36:24 GMT
+Received: from abhmt108.oracle.com (abhmt108.oracle.com [141.146.116.60])
+       by acsmt357.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
+       q94FaNna010185; Thu, 4 Oct 2012 10:36:23 -0500
+Received: from phenom.dumpdata.com (/50.195.21.189)
+       by default (Oracle Beehive Gateway v4.0)
+       with ESMTP ; Thu, 04 Oct 2012 08:36:23 -0700
+Received: by phenom.dumpdata.com (Postfix, from userid 1000)
+       id B12374035E; Thu,  4 Oct 2012 11:24:59 -0400 (EDT)
+Date: Thu, 4 Oct 2012 11:24:59 -0400
+From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+To: Ian Campbell <ian.campbell@citrix.com>
+Message-ID: <20121004152459.GC11426@phenom.dumpdata.com>
+References: <1349363496.866.49.camel@zakaz.uk.xensource.com>
+       <1349363515-26190-11-git-send-email-ian.campbell@citrix.com>
+MIME-Version: 1.0
+Content-Disposition: inline
+In-Reply-To: <1349363515-26190-11-git-send-email-ian.campbell@citrix.com>
+User-Agent: Mutt/1.5.21 (2010-09-15)
+X-Source-IP: ucsinet22.oracle.com [156.151.31.94]
+Cc: Stefano Stabellini <stefano.stabellini@citrix.com>, xen-devel@lists.xen.org
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 11/14] arm: implement remap interfaces
+ needed for privcmd mappings.
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Thu, Oct 04, 2012 at 04:11:52PM +0100, Ian Campbell wrote:
+> Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+> ---
+>  arch/arm/xen/enlighten.c |   94 +++++++++++++++++++++++++++++++++++++++++++++-
+>  1 files changed, 92 insertions(+), 2 deletions(-)
+> 
+> diff --git a/arch/arm/xen/enlighten.c b/arch/arm/xen/enlighten.c
+> index ba5cc13..9956af5 100644
+> --- a/arch/arm/xen/enlighten.c
+> +++ b/arch/arm/xen/enlighten.c
+> @@ -9,6 +9,7 @@
+>  #include <xen/platform_pci.h>
+>  #include <xen/xenbus.h>
+>  #include <xen/page.h>
+> +#include <xen/xen-ops.h>
+>  #include <asm/xen/hypervisor.h>
+>  #include <asm/xen/hypercall.h>
+>  #include <linux/interrupt.h>
+> @@ -18,6 +19,8 @@
+>  #include <linux/of_irq.h>
+>  #include <linux/of_address.h>
+>  
+> +#include <linux/mm.h>
+> +
+>  struct start_info _xen_start_info;
+>  struct start_info *xen_start_info = &_xen_start_info;
+>  EXPORT_SYMBOL_GPL(xen_start_info);
+> @@ -43,15 +46,102 @@ EXPORT_SYMBOL_GPL(xen_platform_pci_unplug);
+>  
+>  static __read_mostly int xen_events_irq = -1;
+>  
+> +/* map fgmfn of domid to lpfn in the current domain */
+
+<laughs> Say that really fast a couple of times :-)
+
+Any way we can explain it a bit more of what each acronym means?
+
+> +static int map_foreign_page(unsigned long lpfn, unsigned long fgmfn,
+> +                        unsigned int domid)
+> +{
+> +    int rc;
+> +    struct xen_add_to_physmap xatp = {
+> +            .domid = DOMID_SELF,
+> +            .u.foreign_domid = domid,
+> +            .space = XENMAPSPACE_gmfn_foreign,
+> +            .idx = fgmfn,
+> +            .gpfn = lpfn,
+> +    };
+> +
+> +    rc = HYPERVISOR_memory_op(XENMEM_add_to_physmap, &xatp);
+> +    if (rc) {
+> +            pr_warn("Failed to map pfn to mfn rc:%d pfn:%lx mfn:%lx\n",
+
+How about 'Failed to map pfn (0x%lx) to mfn (0x%lx), rc: %d\n" ?
+
+> +                    rc, lpfn, fgmfn);
+> +            return 1;
+> +    }
+> +    return 0;
+> +}
+> +
+> +struct remap_data {
+> +    unsigned long fgmfn; /* foreign domain's gmfn */
+
+Shouldn't this be called now 'xen_pfn_t' or something.
+
+> +    pgprot_t prot;
+> +    domid_t  domid;
+> +    struct vm_area_struct *vma;
+> +    struct xen_remap_mfn_info *info;
+> +};
+> +
+> +static int remap_pte_fn(pte_t *ptep, pgtable_t token, unsigned long addr,
+> +                    void *data)
+> +{
+> +    struct remap_data *info = data;
+> +    struct xen_remap_mfn_info *savp = info->info;
+> +    struct page *page = savp->pi_paga[savp->pi_next_todo++];
+> +    unsigned long pfn = page_to_pfn(page);
+> +    pte_t pte = pfn_pte(pfn, info->prot);
+> +
+> +    if (map_foreign_page(pfn, info->fgmfn, info->domid))
+> +            return -EFAULT;
+> +    set_pte_at(info->vma->vm_mm, addr, ptep, pte);
+> +
+> +    return 0;
+> +}
+> +
+>  int xen_remap_domain_mfn_range(struct vm_area_struct *vma,
+>                             unsigned long addr,
+>                             unsigned long mfn, int nr,
+> -                           pgprot_t prot, unsigned domid)
+> +                           pgprot_t prot, unsigned domid,
+> +                           struct xen_remap_mfn_info *info)
+>  {
+> -    return -ENOSYS;
+> +    int err;
+> +    struct remap_data data;
+> +
+> +    /* TBD: Batching, current sole caller only does page at a time */
+> +    if (nr > 1)
+
+Lets also wrap it with WARN_ON?
+
+> +            return -EINVAL;
+> +
+> +    data.fgmfn = mfn;
+> +    data.prot = prot;
+> +    data.domid = domid;
+> +    data.vma = vma;
+> +    data.info = info;
+> +    err = apply_to_page_range(vma->vm_mm, addr, nr << PAGE_SHIFT,
+> +                              remap_pte_fn, &data);
+> +    return err;
+>  }
+>  EXPORT_SYMBOL_GPL(xen_remap_domain_mfn_range);
+>  
+> +/* Returns: Number of pages unmapped */
+> +int xen_unmap_domain_mfn_range(struct vm_area_struct *vma,
+> +                           struct xen_remap_mfn_info *info)
+> +{
+> +    int count = 0;
+> +
+> +    while (info->pi_next_todo--) {
+> +            struct xen_remove_from_physmap xrp;
+> +            unsigned long rc, pfn;
+> +
+> +            pfn = page_to_pfn(info->pi_paga[info->pi_next_todo]);
+
+Won't this miss the first pi_next_todo? You did the 'pi_next_todo--' so
+will the compiler decrement it here in this operation or will it do
+when it gets to the 'do' logic of the loop?
+
+> +
+> +            xrp.domid = DOMID_SELF;
+> +            xrp.gpfn = pfn;
+> +            rc = HYPERVISOR_memory_op(XENMEM_remove_from_physmap, &xrp);
+
+'rc' is 'unsigned long'. Is that right? You don't want it to be 'int'?
+
+> +            if (rc) {
+> +                    pr_warn("Failed to unmap pfn:%lx rc:%ld\n",
+> +                            pfn, rc);
+> +                    return count;
+> +            }
+> +            count++;
+> +    }
+> +    return count;
+> +}
+> +EXPORT_SYMBOL_GPL(xen_unmap_domain_mfn_range);
+> +
+>  /*
+>   * see Documentation/devicetree/bindings/arm/xen.txt for the
+>   * documentation of the Xen Device Tree format.
+> -- 
+> 1.7.2.5
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<20121004152731.GD11426@phenom.dumpdata.com> b/config/examples/test/corpus/<20121004152731.GD11426@phenom.dumpdata.com>
new file mode 100644 (file)
index 0000000..ef0b187
--- /dev/null
@@ -0,0 +1,124 @@
+From xen-devel-bounces@lists.xen.org Thu Oct 04 16:42:45 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 04 Oct 2012 16:42:45 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TJnZP-0007Jm-Vu
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 04 Oct 2012 16:42:45 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TJnW0-0002GQ-2L; Thu, 04 Oct 2012 15:39:08 +0000
+Received: from mail27.messagelabs.com ([193.109.254.147])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <konrad.wilk@oracle.com>) id 1TJnVz-0002GA-2H
+       for xen-devel@lists.xen.org; Thu, 04 Oct 2012 15:39:07 +0000
+X-Env-Sender: konrad.wilk@oracle.com
+X-Msg-Ref: server-9.tower-27.messagelabs.com!1349365139!9749354!1
+X-Originating-IP: [141.146.126.227]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogMTQxLjE0Ni4xMjYuMjI3ID0+IDc5MzIzNg==\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 31964 invoked from network); 4 Oct 2012 15:39:00 -0000
+Received: from acsinet15.oracle.com (HELO acsinet15.oracle.com)
+       (141.146.126.227)
+       by server-9.tower-27.messagelabs.com with DHE-RSA-AES256-SHA encrypted
+       SMTP; 4 Oct 2012 15:39:00 -0000
+Received: from acsinet21.oracle.com (acsinet21.oracle.com [141.146.126.237])
+       by acsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
+       ESMTP id q94FctY4029286
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
+       Thu, 4 Oct 2012 15:38:56 GMT
+Received: from acsmt357.oracle.com (acsmt357.oracle.com [141.146.40.157])
+       by acsinet21.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
+       q94FctTx016665
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
+       Thu, 4 Oct 2012 15:38:55 GMT
+Received: from abhmt117.oracle.com (abhmt117.oracle.com [141.146.116.69])
+       by acsmt357.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
+       q94FctJH012196; Thu, 4 Oct 2012 10:38:55 -0500
+Received: from phenom.dumpdata.com (/50.195.21.189)
+       by default (Oracle Beehive Gateway v4.0)
+       with ESMTP ; Thu, 04 Oct 2012 08:38:54 -0700
+Received: by phenom.dumpdata.com (Postfix, from userid 1000)
+       id BE4474035E; Thu,  4 Oct 2012 11:27:31 -0400 (EDT)
+Date: Thu, 4 Oct 2012 11:27:31 -0400
+From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+To: Ian Campbell <Ian.Campbell@citrix.com>
+Message-ID: <20121004152731.GD11426@phenom.dumpdata.com>
+References: <1349363496.866.49.camel@zakaz.uk.xensource.com>
+MIME-Version: 1.0
+Content-Disposition: inline
+In-Reply-To: <1349363496.866.49.camel@zakaz.uk.xensource.com>
+User-Agent: Mutt/1.5.21 (2010-09-15)
+X-Source-IP: acsinet21.oracle.com [141.146.126.237]
+Cc: Stefano Stabellini <stefano.stabellini@citrix.com>,
+       xen-devel <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [RFC 00/14] arm: implement ballooning and privcmd
+ foreign mappings based on x86 PVH
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Thu, Oct 04, 2012 at 04:11:36PM +0100, Ian Campbell wrote:
+> This series implements ballooning for Xen on ARM and builds and Mukesh's
+> PVH privcmd stuff to implement foreign page mapping on ARM, replacing
+> the old "HACK: initial (very hacky) XENMAPSPACE_gmfn_foreign" patch.
+
+Great. Thanks for doing it.
+> 
+> The baseline is a bit complex, it is basically Stefano's xenarm-forlinus
+> branch (commit bbd6eb29214e) merged with Konrad's linux-next-pvh branch
+> (commit 7e6e6f589de8). I suspect I might need to rebase it shortly. I
+
+Yes. I am hoping that on Monday Mukesh will have had sent out his revised
+patch and I can rebase the whole thing on Linus's tree (which by that time
+should have the Xen ARM's pulled in).
+
+
+> know there's a bunch of stuff in here which Mukesh has also changed, but
+> which I haven't seen yet, I'll deal with that when I rebase (RFC mainly
+> for that reason only).
+
+They look good to me. I've provided some feedback on some of them.
+
+> 
+> This lets me start a guest without any of those nasty patches with
+> "HACK" in the title ;-0
+> 
+> Ian.
+> 
+> 
+> 
+> 
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<20121004155400.GA12128@phenom.dumpdata.com> b/config/examples/test/corpus/<20121004155400.GA12128@phenom.dumpdata.com>
new file mode 100644 (file)
index 0000000..6a87d06
--- /dev/null
@@ -0,0 +1,308 @@
+From xen-devel-bounces@lists.xen.org Thu Oct 04 17:10:27 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 04 Oct 2012 17:10:27 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TJo0F-0007OP-SX
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 04 Oct 2012 17:10:26 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TJnvg-0003Eq-Oo; Thu, 04 Oct 2012 16:05:40 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <konrad.wilk@oracle.com>) id 1TJnve-0003El-3k
+       for xen-devel@lists.xen.org; Thu, 04 Oct 2012 16:05:38 +0000
+Received: from [85.158.143.35:15792] by server-1.bemta-4.messagelabs.com id
+       6B/07-05684-1D3BD605; Thu, 04 Oct 2012 16:05:37 +0000
+X-Env-Sender: konrad.wilk@oracle.com
+X-Msg-Ref: server-13.tower-21.messagelabs.com!1349366734!14577990!1
+X-Originating-IP: [148.87.113.117]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogMTQ4Ljg3LjExMy4xMTcgPT4gNzgzMjE1\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 20690 invoked from network); 4 Oct 2012 16:05:36 -0000
+Received: from rcsinet15.oracle.com (HELO rcsinet15.oracle.com)
+       (148.87.113.117)
+       by server-13.tower-21.messagelabs.com with DHE-RSA-AES256-SHA encrypted
+       SMTP; 4 Oct 2012 16:05:36 -0000
+Received: from ucsinet21.oracle.com (ucsinet21.oracle.com [156.151.31.93])
+       by rcsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
+       ESMTP id q94G5Pf1001133
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
+       Thu, 4 Oct 2012 16:05:25 GMT
+Received: from acsmt358.oracle.com (acsmt358.oracle.com [141.146.40.158])
+       by ucsinet21.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
+       q94G5OV1026686
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
+       Thu, 4 Oct 2012 16:05:24 GMT
+Received: from abhmt105.oracle.com (abhmt105.oracle.com [141.146.116.57])
+       by acsmt358.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
+       q94G5Nak030279; Thu, 4 Oct 2012 11:05:23 -0500
+Received: from phenom.dumpdata.com (/50.195.21.189)
+       by default (Oracle Beehive Gateway v4.0)
+       with ESMTP ; Thu, 04 Oct 2012 09:05:23 -0700
+Received: by phenom.dumpdata.com (Postfix, from userid 1000)
+       id 2456F4035E; Thu,  4 Oct 2012 11:54:00 -0400 (EDT)
+Date: Thu, 4 Oct 2012 11:54:00 -0400
+From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+To: Ian Campbell <Ian.Campbell@citrix.com>
+Message-ID: <20121004155400.GA12128@phenom.dumpdata.com>
+References: <1349363496.866.49.camel@zakaz.uk.xensource.com>
+       <1349363515-26190-11-git-send-email-ian.campbell@citrix.com>
+       <20121004152459.GC11426@phenom.dumpdata.com>
+       <1349365718.866.63.camel@zakaz.uk.xensource.com>
+MIME-Version: 1.0
+Content-Disposition: inline
+In-Reply-To: <1349365718.866.63.camel@zakaz.uk.xensource.com>
+User-Agent: Mutt/1.5.21 (2010-09-15)
+X-Source-IP: ucsinet21.oracle.com [156.151.31.93]
+Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 11/14] arm: implement remap interfaces
+ needed for privcmd mappings.
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Thu, Oct 04, 2012 at 04:48:38PM +0100, Ian Campbell wrote:
+> On Thu, 2012-10-04 at 16:24 +0100, Konrad Rzeszutek Wilk wrote:
+> > On Thu, Oct 04, 2012 at 04:11:52PM +0100, Ian Campbell wrote:
+> > > Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+> > > ---
+> > >  arch/arm/xen/enlighten.c |   94 +++++++++++++++++++++++++++++++++++++++++++++-
+> > >  1 files changed, 92 insertions(+), 2 deletions(-)
+> > > 
+> > > diff --git a/arch/arm/xen/enlighten.c b/arch/arm/xen/enlighten.c
+> > > index ba5cc13..9956af5 100644
+> > > --- a/arch/arm/xen/enlighten.c
+> > > +++ b/arch/arm/xen/enlighten.c
+> > > @@ -9,6 +9,7 @@
+> > >  #include <xen/platform_pci.h>
+> > >  #include <xen/xenbus.h>
+> > >  #include <xen/page.h>
+> > > +#include <xen/xen-ops.h>
+> > >  #include <asm/xen/hypervisor.h>
+> > >  #include <asm/xen/hypercall.h>
+> > >  #include <linux/interrupt.h>
+> > > @@ -18,6 +19,8 @@
+> > >  #include <linux/of_irq.h>
+> > >  #include <linux/of_address.h>
+> > >  
+> > > +#include <linux/mm.h>
+> > > +
+> > >  struct start_info _xen_start_info;
+> > >  struct start_info *xen_start_info = &_xen_start_info;
+> > >  EXPORT_SYMBOL_GPL(xen_start_info);
+> > > @@ -43,15 +46,102 @@ EXPORT_SYMBOL_GPL(xen_platform_pci_unplug);
+> > >  
+> > >  static __read_mostly int xen_events_irq = -1;
+> > >  
+> > > +/* map fgmfn of domid to lpfn in the current domain */
+> > 
+> > <laughs> Say that really fast a couple of times :-)
+> > 
+> > Any way we can explain it a bit more of what each acronym means?
+> 
+> The names come from the x86 PVH version, which has the comment:
+> /* Map foreign gmfn, fgmfn, to local pfn, lpfn. This for the user space 
+>  * creating new guest on PVH dom0 and needs to map domU pages. 
+>  */
+> Is that preferable? (modulo removing the PVH bit)
+
+<nods>
+> 
+> > 
+> > > +static int map_foreign_page(unsigned long lpfn, unsigned long fgmfn,
+> > > +                            unsigned int domid)
+> > > +{
+> > > +        int rc;
+> > > +        struct xen_add_to_physmap xatp = {
+> > > +                .domid = DOMID_SELF,
+> > > +                .u.foreign_domid = domid,
+> > > +                .space = XENMAPSPACE_gmfn_foreign,
+> > > +                .idx = fgmfn,
+> > > +                .gpfn = lpfn,
+> > > +        };
+> > > +
+> > > +        rc = HYPERVISOR_memory_op(XENMEM_add_to_physmap, &xatp);
+> > > +        if (rc) {
+> > > +                pr_warn("Failed to map pfn to mfn rc:%d pfn:%lx mfn:%lx\n",
+> > 
+> > How about 'Failed to map pfn (0x%lx) to mfn (0x%lx), rc: %d\n" ?
+> 
+> Sure, need to slip foreign domid in there somewhere now I look at it.
+> 
+> x86 PVH has basically the same print BTW.
+
+OK, lets address that as well in the next review of the patchset.
+> 
+> > 
+> > > +                        rc, lpfn, fgmfn);
+> > > +                return 1;
+> > > +        }
+> > > +        return 0;
+> > > +}
+> > > +
+> > > +struct remap_data {
+> > > +        unsigned long fgmfn; /* foreign domain's gmfn */
+> > 
+> > Shouldn't this be called now 'xen_pfn_t' or something.
+> 
+> xen_pfn_t is needed at the hypervisor interface layer, I'm not so sure
+> about kernel internal use. I guess it can't hurt?
+
+My thoughts.. as somebody might be wondering why here is unsigned long
+but other places it is not.
+> 
+> > 
+> > > +        pgprot_t prot;
+> > > +        domid_t  domid;
+> > > +        struct vm_area_struct *vma;
+> > > +        struct xen_remap_mfn_info *info;
+> > > +};
+> > > +
+> > > +static int remap_pte_fn(pte_t *ptep, pgtable_t token, unsigned long addr,
+> > > +                        void *data)
+> > > +{
+> > > +        struct remap_data *info = data;
+> > > +        struct xen_remap_mfn_info *savp = info->info;
+> > > +        struct page *page = savp->pi_paga[savp->pi_next_todo++];
+> > > +        unsigned long pfn = page_to_pfn(page);
+> > > +        pte_t pte = pfn_pte(pfn, info->prot);
+> > > +
+> > > +        if (map_foreign_page(pfn, info->fgmfn, info->domid))
+> > > +                return -EFAULT;
+> > > +        set_pte_at(info->vma->vm_mm, addr, ptep, pte);
+> > > +
+> > > +        return 0;
+> > > +}
+> > > +
+> > >  int xen_remap_domain_mfn_range(struct vm_area_struct *vma,
+> > >                                 unsigned long addr,
+> > >                                 unsigned long mfn, int nr,
+> > > -                               pgprot_t prot, unsigned domid)
+> > > +                               pgprot_t prot, unsigned domid,
+> > > +                               struct xen_remap_mfn_info *info)
+> > >  {
+> > > -        return -ENOSYS;
+> > > +        int err;
+> > > +        struct remap_data data;
+> > > +
+> > > +        /* TBD: Batching, current sole caller only does page at a time */
+> > > +        if (nr > 1)
+> > 
+> > Lets also wrap it with WARN_ON?
+> 
+> ACK, needs doing on x86 PVH too then.
+> 
+> > 
+> > > +                return -EINVAL;
+> > > +
+> > > +        data.fgmfn = mfn;
+> > > +        data.prot = prot;
+> > > +        data.domid = domid;
+> > > +        data.vma = vma;
+> > > +        data.info = info;
+> > > +        err = apply_to_page_range(vma->vm_mm, addr, nr << PAGE_SHIFT,
+> > > +                                  remap_pte_fn, &data);
+> > > +        return err;
+> > >  }
+> > >  EXPORT_SYMBOL_GPL(xen_remap_domain_mfn_range);
+> > >  
+> > > +/* Returns: Number of pages unmapped */
+> > > +int xen_unmap_domain_mfn_range(struct vm_area_struct *vma,
+> > > +                               struct xen_remap_mfn_info *info)
+> > > +{
+> > > +        int count = 0;
+> > > +
+> > > +        while (info->pi_next_todo--) {
+> > > +                struct xen_remove_from_physmap xrp;
+> > > +                unsigned long rc, pfn;
+> > > +
+> > > +                pfn = page_to_pfn(info->pi_paga[info->pi_next_todo]);
+> > 
+> > Won't this miss the first pi_next_todo? You did the 'pi_next_todo--' so
+> > will the compiler decrement it here in this operation or will it do
+> > when it gets to the 'do' logic of the loop?
+> 
+> It's a post decrement so if pi_next_todo == 1 then the expression in the
+> while will see 1 (true) but inside the loop we see zero. So we end up
+> processing elements N-1..0 of the array which is correct.
+
+OK. That is what I wanted to make sure about.
+> 
+> This is the same as on x86 PVH, so if I'm wrong then that is too.
+> 
+> I mentioned in the PVH thread this morning that I think this interface
+> should drop pi_next_todo and have a simple for loop based on the number
+> of pages between vm_start...vm_end here.
+
+Yeah, I think we need to do that. I understand Mukesh's desire to have
+an easy searchable name for variables, but that 'pi' just makes me
+think of bathroom, then of 3.1415, and then I have to actually recall
+really hard why it is called 'pi' .. and I still can't remember why.
+> 
+> > 
+> > > +
+> > > +                xrp.domid = DOMID_SELF;
+> > > +                xrp.gpfn = pfn;
+> > > +                rc = HYPERVISOR_memory_op(XENMEM_remove_from_physmap, &xrp);
+> > 
+> > 'rc' is 'unsigned long'. Is that right? You don't want it to be 'int'?
+> 
+> Hypercalls return unsigned long these days, I think it was considered a
+> mistake that some didn't. See <25744:47080c965937> in the hypervisor
+> tree. 
+> 
+> Oh, wait, we are both wrong -- it's a long. I'll fix that...
+> 
+> > 
+> > > +                if (rc) {
+> > > +                        pr_warn("Failed to unmap pfn:%lx rc:%ld\n",
+> > > +                                pfn, rc);
+> > > +                        return count;
+> > > +                }
+> > > +                count++;
+> > > +        }
+> > > +        return count;
+> > > +}
+> > > +EXPORT_SYMBOL_GPL(xen_unmap_domain_mfn_range);
+> > > +
+> > >  /*
+> > >   * see Documentation/devicetree/bindings/arm/xen.txt for the
+> > >   * documentation of the Xen Device Tree format.
+> > > -- 
+> > > 1.7.2.5
+> 
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<20121004182518.76e9624a@mantra.us.oracle.com> b/config/examples/test/corpus/<20121004182518.76e9624a@mantra.us.oracle.com>
new file mode 100644 (file)
index 0000000..5eea373
--- /dev/null
@@ -0,0 +1,145 @@
+From xen-devel-bounces@lists.xen.org Fri Oct 05 02:30:08 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 05 Oct 2012 02:30:08 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TJwjt-0001IP-Qs
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 05 Oct 2012 02:30:08 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TJwfT-000154-AM; Fri, 05 Oct 2012 01:25:31 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <mukesh.rathor@oracle.com>) id 1TJwfR-00014z-FS
+       for Xen-devel@lists.xensource.com; Fri, 05 Oct 2012 01:25:29 +0000
+Received: from [85.158.143.99:31871] by server-2.bemta-4.messagelabs.com id
+       2C/CA-06610-8073E605; Fri, 05 Oct 2012 01:25:28 +0000
+X-Env-Sender: mukesh.rathor@oracle.com
+X-Msg-Ref: server-15.tower-216.messagelabs.com!1349400326!32914384!1
+X-Originating-IP: [148.87.113.117]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogMTQ4Ljg3LjExMy4xMTcgPT4gNzg0NjMy\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 20902 invoked from network); 5 Oct 2012 01:25:28 -0000
+Received: from rcsinet15.oracle.com (HELO rcsinet15.oracle.com)
+       (148.87.113.117)
+       by server-15.tower-216.messagelabs.com with DHE-RSA-AES256-SHA
+       encrypted SMTP; 5 Oct 2012 01:25:28 -0000
+Received: from ucsinet22.oracle.com (ucsinet22.oracle.com [156.151.31.94])
+       by rcsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
+       ESMTP id q951PLHI024848
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
+       Fri, 5 Oct 2012 01:25:21 GMT
+Received: from acsmt358.oracle.com (acsmt358.oracle.com [141.146.40.158])
+       by ucsinet22.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
+       q951PKkA028197
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
+       Fri, 5 Oct 2012 01:25:20 GMT
+Received: from abhmt117.oracle.com (abhmt117.oracle.com [141.146.116.69])
+       by acsmt358.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
+       q951PJVX027650; Thu, 4 Oct 2012 20:25:20 -0500
+Received: from mantra.us.oracle.com (/130.35.68.95)
+       by default (Oracle Beehive Gateway v4.0)
+       with ESMTP ; Thu, 04 Oct 2012 18:25:19 -0700
+Date: Thu, 4 Oct 2012 18:25:18 -0700
+From: Mukesh Rathor <mukesh.rathor@oracle.com>
+To: Ian Campbell <Ian.Campbell@citrix.com>
+Message-ID: <20121004182518.76e9624a@mantra.us.oracle.com>
+In-Reply-To: <1349339920.650.220.camel@zakaz.uk.xensource.com>
+References: <20120921121659.5a723de9@mantra.us.oracle.com>
+       <alpine.DEB.2.02.1209241257440.29232@kaball.uk.xensource.com>
+       <20120924154335.097d3fb9@mantra.us.oracle.com>
+       <alpine.DEB.2.02.1209251054140.29232@kaball.uk.xensource.com>
+       <20120925180416.0137d61a@mantra.us.oracle.com>
+       <alpine.DEB.2.02.1209261225340.29232@kaball.uk.xensource.com>
+       <20121002183619.70734b7a@mantra.us.oracle.com>
+       <20121002190323.2e16f6ff@mantra.us.oracle.com>
+       <alpine.DEB.2.02.1210031242180.29232@kaball.uk.xensource.com>
+       <20121003153714.4656b7e9@mantra.us.oracle.com>
+       <1349339920.650.220.camel@zakaz.uk.xensource.com>
+Organization: Oracle Corporation
+X-Mailer: Claws Mail 3.7.6 (GTK+ 2.18.9; x86_64-redhat-linux-gnu)
+Mime-Version: 1.0
+X-Source-IP: ucsinet22.oracle.com [156.151.31.94]
+Cc: "Xen-devel@lists.xensource.com" <Xen-devel@lists.xensource.com>, Konrad
+       Rzeszutek Wilk <konrad.wilk@oracle.com>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH v1 3/8]: PVH startup changes (enlighten.c)
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Thu, 4 Oct 2012 09:38:40 +0100
+Ian Campbell <Ian.Campbell@citrix.com> wrote:
+
+> On Wed, 2012-10-03 at 23:37 +0100, Mukesh Rathor wrote:
+> > On Wed, 3 Oct 2012 12:58:22 +0100
+> > Ok, finally, focussing on this, the issue with pfn in dom0 is that
+> > I need pfn allocated in construct_dom0() and be mapped so that the
+> > guest can just do :
+> > 
+> > HYPERVISOR_shared_info=(struct shared_info
+> > *)__va(xen_start_info->shared_info);
+> > 
+> > How about following I am experimenting with right now:
+> > 
+> > in construct_dom0():
+> > 
+> >     vstartinfo_end   = (vstartinfo_start +
+> >                         sizeof(struct start_info) +
+> >                         sizeof(struct dom0_vga_console_info));
+> > 
+> >     if ( is_hybrid_domain(d) ) {
+> >         start_info_pfn_addr = round_pgup(vstartinfo_end) - v_start;
+> >         vstartinfo_end   += PAGE_SIZE;
+> >     }
+> > 
+> > I can then put (PFN: start_info_pfn_addr)->(MFN:
+> > virt_to_maddr(d->shared_info)) in the p2m, and dom0 just has to do
+> > __va(), like domU does now.  I wont' need to special case dom0 then.
+> > 
+> > Do you foresee any problems with this approach?
+> 
+> Hard to say without all the surrounding context but it seems plausible
+> to me.
+
+
+Ok, above works. So no dom0 special case in linux now to map shared_page.
+
+thanks
+Mukesh
+
+
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<20121004183528.060416a0@mantra.us.oracle.com> b/config/examples/test/corpus/<20121004183528.060416a0@mantra.us.oracle.com>
new file mode 100644 (file)
index 0000000..adf8c27
--- /dev/null
@@ -0,0 +1,130 @@
+From xen-devel-bounces@lists.xen.org Fri Oct 05 02:40:15 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 05 Oct 2012 02:40:15 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TJwtg-0001JM-V5
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 05 Oct 2012 02:40:15 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TJwpJ-0001LQ-Do; Fri, 05 Oct 2012 01:35:41 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <mukesh.rathor@oracle.com>) id 1TJwpH-0001LL-Hs
+       for Xen-devel@lists.xensource.com; Fri, 05 Oct 2012 01:35:39 +0000
+Received: from [85.158.137.99:51381] by server-2.bemta-3.messagelabs.com id
+       60/35-16514-A693E605; Fri, 05 Oct 2012 01:35:38 +0000
+X-Env-Sender: mukesh.rathor@oracle.com
+X-Msg-Ref: server-4.tower-217.messagelabs.com!1349400936!20357396!1
+X-Originating-IP: [141.146.126.227]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogMTQxLjE0Ni4xMjYuMjI3ID0+IDc5NDYyMA==\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 31567 invoked from network); 5 Oct 2012 01:35:37 -0000
+Received: from acsinet15.oracle.com (HELO acsinet15.oracle.com)
+       (141.146.126.227)
+       by server-4.tower-217.messagelabs.com with DHE-RSA-AES256-SHA encrypted
+       SMTP; 5 Oct 2012 01:35:37 -0000
+Received: from acsinet21.oracle.com (acsinet21.oracle.com [141.146.126.237])
+       by acsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
+       ESMTP id q951ZUJ3001776
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
+       Fri, 5 Oct 2012 01:35:31 GMT
+Received: from acsmt357.oracle.com (acsmt357.oracle.com [141.146.40.157])
+       by acsinet21.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
+       q951ZT0O017380
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
+       Fri, 5 Oct 2012 01:35:30 GMT
+Received: from abhmt117.oracle.com (abhmt117.oracle.com [141.146.116.69])
+       by acsmt357.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
+       q951ZT5c001620; Thu, 4 Oct 2012 20:35:29 -0500
+Received: from mantra.us.oracle.com (/130.35.68.95)
+       by default (Oracle Beehive Gateway v4.0)
+       with ESMTP ; Thu, 04 Oct 2012 18:35:29 -0700
+Date: Thu, 4 Oct 2012 18:35:28 -0700
+From: Mukesh Rathor <mukesh.rathor@oracle.com>
+To: Ian Campbell <Ian.Campbell@citrix.com>
+Message-ID: <20121004183528.060416a0@mantra.us.oracle.com>
+In-Reply-To: <1349265914.650.136.camel@zakaz.uk.xensource.com>
+References: <20120921121659.5a723de9@mantra.us.oracle.com>
+       <alpine.DEB.2.02.1209241257440.29232@kaball.uk.xensource.com>
+       <20120924154335.097d3fb9@mantra.us.oracle.com>
+       <alpine.DEB.2.02.1209251054140.29232@kaball.uk.xensource.com>
+       <20120925180416.0137d61a@mantra.us.oracle.com>
+       <alpine.DEB.2.02.1209261225340.29232@kaball.uk.xensource.com>
+       <20121002183619.70734b7a@mantra.us.oracle.com>
+       <20121002190323.2e16f6ff@mantra.us.oracle.com>
+       <alpine.DEB.2.02.1210031242180.29232@kaball.uk.xensource.com>
+       <1349265914.650.136.camel@zakaz.uk.xensource.com>
+Organization: Oracle Corporation
+X-Mailer: Claws Mail 3.7.6 (GTK+ 2.18.9; x86_64-redhat-linux-gnu)
+Mime-Version: 1.0
+X-Source-IP: acsinet21.oracle.com [141.146.126.237]
+Cc: "Xen-devel@lists.xensource.com" <Xen-devel@lists.xensource.com>, Konrad
+       Rzeszutek Wilk <konrad.wilk@oracle.com>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH v1 3/8]: PVH startup changes (enlighten.c)
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Wed, 3 Oct 2012 13:05:14 +0100
+Ian Campbell <Ian.Campbell@citrix.com> wrote:
+
+> On Wed, 2012-10-03 at 12:58 +0100, Stefano Stabellini wrote:
+> > > So for now, how about, lets go
+> > > with what I've got. I'll make a note, and when I do xen patch,
+> > > I'll figure it out, and would be a very small linux patch. I want
+> > > to get linux patch in soon before the window closes.
+> > 
+> > We can leave page special as it is for now with very little
+> > consequences, because it is not part of the interface with Xen.
+> > However this is part of the interface, so whatever we choose here
+> > is going to be hard to change later on.
+> 
+> I suggested that until we have seen and reviewed the hypervisor side
+> patches this guest side functionality all needs to be under an option
+> which has CONFIG_EXPERIMENTAL as a dependency and a comment explaining
+> that the ABI is not fixed yet, similar to what we did for the ARM
+> port.
+
+Konrad is going to keep the changes in his tree and not upstream for
+couple months while we go thru the xen patches. This would be a big
+help for me as I won't have to constantly refresh linux tree.
+
+I hope we can get some baseline in linux and xen soon.
+
+thanks
+Mukesh
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<20121005114006.55115cca@mantra.us.oracle.com> b/config/examples/test/corpus/<20121005114006.55115cca@mantra.us.oracle.com>
new file mode 100644 (file)
index 0000000..49bf8a5
--- /dev/null
@@ -0,0 +1,113 @@
+From xen-devel-bounces@lists.xen.org Fri Oct 05 19:43:59 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 05 Oct 2012 19:43:59 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TKCsO-00014X-SW
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 05 Oct 2012 19:43:59 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TKCor-0004Ws-UF; Fri, 05 Oct 2012 18:40:17 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <mukesh.rathor@oracle.com>) id 1TKCoq-0004Wm-ST
+       for xen-devel@lists.xen.org; Fri, 05 Oct 2012 18:40:17 +0000
+Received: from [85.158.143.35:17059] by server-1.bemta-4.messagelabs.com id
+       3D/7F-05684-0992F605; Fri, 05 Oct 2012 18:40:16 +0000
+X-Env-Sender: mukesh.rathor@oracle.com
+X-Msg-Ref: server-4.tower-21.messagelabs.com!1349462413!5496248!1
+X-Originating-IP: [148.87.113.117]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogMTQ4Ljg3LjExMy4xMTcgPT4gNzg2MDM5\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 7589 invoked from network); 5 Oct 2012 18:40:15 -0000
+Received: from rcsinet15.oracle.com (HELO rcsinet15.oracle.com)
+       (148.87.113.117)
+       by server-4.tower-21.messagelabs.com with DHE-RSA-AES256-SHA encrypted
+       SMTP; 5 Oct 2012 18:40:15 -0000
+Received: from ucsinet22.oracle.com (ucsinet22.oracle.com [156.151.31.94])
+       by rcsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
+       ESMTP id q95Ie8Wv007258
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
+       Fri, 5 Oct 2012 18:40:09 GMT
+Received: from acsmt356.oracle.com (acsmt356.oracle.com [141.146.40.156])
+       by ucsinet22.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
+       q95Ie7cq018349
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
+       Fri, 5 Oct 2012 18:40:08 GMT
+Received: from abhmt107.oracle.com (abhmt107.oracle.com [141.146.116.59])
+       by acsmt356.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
+       q95Ie7R6004860; Fri, 5 Oct 2012 13:40:07 -0500
+Received: from mantra.us.oracle.com (/130.35.68.95)
+       by default (Oracle Beehive Gateway v4.0)
+       with ESMTP ; Fri, 05 Oct 2012 11:40:07 -0700
+Date: Fri, 5 Oct 2012 11:40:06 -0700
+From: Mukesh Rathor <mukesh.rathor@oracle.com>
+To: Ian Campbell <Ian.Campbell@citrix.com>
+Message-ID: <20121005114006.55115cca@mantra.us.oracle.com>
+In-Reply-To: <1349437645.20946.74.camel@zakaz.uk.xensource.com>
+References: <1349363496.866.49.camel@zakaz.uk.xensource.com>
+       <1349363515-26190-3-git-send-email-ian.campbell@citrix.com>
+       <alpine.DEB.2.02.1210051239100.29232@kaball.uk.xensource.com>
+       <1349437645.20946.74.camel@zakaz.uk.xensource.com>
+Organization: Oracle Corporation
+X-Mailer: Claws Mail 3.7.6 (GTK+ 2.18.9; x86_64-redhat-linux-gnu)
+Mime-Version: 1.0
+X-Source-IP: ucsinet22.oracle.com [156.151.31.94]
+Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 03/14] xen events: xen_callback_vector is
+       x86 specific
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Fri, 5 Oct 2012 12:47:25 +0100
+Ian Campbell <Ian.Campbell@citrix.com> wrote:
+
+> On Fri, 2012-10-05 at 12:43 +0100, Stefano Stabellini wrote:
+> > On Thu, 4 Oct 2012, Ian Campbell wrote:
+> > > Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+> > > ---
+> > > Should instead move somewhere arch specific?
+> > 
+> > This shouldn't be needed: it should be already protected by
+> > CONFIG_XEN_PVHVM (that is x86 specific).
+> 
+> Mukesh removed that ifdef because PVH also wants this function.
+> 
+
+I'm putting #ifdef CONFIG_X86 around it.
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<20121005121024.17c22c7d@mantra.us.oracle.com> b/config/examples/test/corpus/<20121005121024.17c22c7d@mantra.us.oracle.com>
new file mode 100644 (file)
index 0000000..20ce275
--- /dev/null
@@ -0,0 +1,177 @@
+From xen-devel-bounces@lists.xen.org Fri Oct 05 20:15:04 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 05 Oct 2012 20:15:04 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TKDMT-0001D6-Ra
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 05 Oct 2012 20:15:04 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TKDIF-0005qL-8K; Fri, 05 Oct 2012 19:10:39 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <mukesh.rathor@oracle.com>) id 1TKDID-0005qE-8x
+       for xen-devel@lists.xen.org; Fri, 05 Oct 2012 19:10:37 +0000
+Received: from [85.158.139.83:23078] by server-4.bemta-5.messagelabs.com id
+       8B/69-20767-CA03F605; Fri, 05 Oct 2012 19:10:36 +0000
+X-Env-Sender: mukesh.rathor@oracle.com
+X-Msg-Ref: server-11.tower-182.messagelabs.com!1349464234!26407535!1
+X-Originating-IP: [148.87.113.117]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogMTQ4Ljg3LjExMy4xMTcgPT4gNzg2MDM5\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 27317 invoked from network); 5 Oct 2012 19:10:35 -0000
+Received: from rcsinet15.oracle.com (HELO rcsinet15.oracle.com)
+       (148.87.113.117)
+       by server-11.tower-182.messagelabs.com with DHE-RSA-AES256-SHA
+       encrypted SMTP; 5 Oct 2012 19:10:35 -0000
+Received: from ucsinet22.oracle.com (ucsinet22.oracle.com [156.151.31.94])
+       by rcsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
+       ESMTP id q95JAS0J002504
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
+       Fri, 5 Oct 2012 19:10:29 GMT
+Received: from acsmt356.oracle.com (acsmt356.oracle.com [141.146.40.156])
+       by ucsinet22.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
+       q95JARLC006664
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
+       Fri, 5 Oct 2012 19:10:28 GMT
+Received: from abhmt115.oracle.com (abhmt115.oracle.com [141.146.116.67])
+       by acsmt356.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
+       q95JARvV024894; Fri, 5 Oct 2012 14:10:27 -0500
+Received: from mantra.us.oracle.com (/130.35.68.95)
+       by default (Oracle Beehive Gateway v4.0)
+       with ESMTP ; Fri, 05 Oct 2012 12:10:25 -0700
+Date: Fri, 5 Oct 2012 12:10:24 -0700
+From: Mukesh Rathor <mukesh.rathor@oracle.com>
+To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+Message-ID: <20121005121024.17c22c7d@mantra.us.oracle.com>
+In-Reply-To: <alpine.DEB.2.02.1210051302160.29232@kaball.uk.xensource.com>
+References: <1349363496.866.49.camel@zakaz.uk.xensource.com>
+       <1349363515-26190-7-git-send-email-ian.campbell@citrix.com>
+       <alpine.DEB.2.02.1210051302160.29232@kaball.uk.xensource.com>
+Organization: Oracle Corporation
+X-Mailer: Claws Mail 3.7.6 (GTK+ 2.18.9; x86_64-redhat-linux-gnu)
+Mime-Version: 1.0
+X-Source-IP: ucsinet22.oracle.com [156.151.31.94]
+Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
+       Ian Campbell <ian.campbell@citrix.com>,
+       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 07/14] xen: balloon: do not update stage 1
+ pagetable for autotranslated guests
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Fri, 5 Oct 2012 13:05:01 +0100
+Stefano Stabellini <stefano.stabellini@eu.citrix.com> wrote:
+
+> On Thu, 4 Oct 2012, Ian Campbell wrote:
+> > This is unnecessary (since the page will be removed from the p2m)
+> > and can be tricky if the page is in the middle of a superpage, as
+> > it is on ARM.
+> > 
+> 
+> I think that this patch is correct. I'll leave to Konrad whether we
+> should carry the original incorrect PVH patch and this separate fix or
+> just merge the two of them.
+> 
+> 
+> > Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+> > ---
+> > Also effects PVH but in a benign way I think.
+> >
+> >  drivers/xen/balloon.c |   23 +++--------------------
+> >  1 files changed, 3 insertions(+), 20 deletions(-)
+> > 
+> > diff --git a/drivers/xen/balloon.c b/drivers/xen/balloon.c
+> > index 7885a19..1b56ae0 100644
+> > --- a/drivers/xen/balloon.c
+> > +++ b/drivers/xen/balloon.c
+> > @@ -357,15 +357,7 @@ static enum bp_state
+> > increase_reservation(unsigned long nr_pages)
+> > BUG_ON(!xen_feature(XENFEAT_auto_translated_physmap) &&
+> > phys_to_machine_mapping_valid(pfn)); 
+> > -          if (xen_pv_domain() && 
+> > -              xen_feature(XENFEAT_auto_translated_physmap)) {
+> > -                  /* PVH: we just need to update native page
+> > table */
+> > -                  pte_t *ptep;
+> > -                  unsigned int level;
+> > -                  void *addr = __va(pfn << PAGE_SHIFT);
+> > -                  ptep = lookup_address((unsigned long)addr,
+> > &level);
+> > -                  set_pte(ptep, pfn_pte(pfn, PAGE_KERNEL));
+> > -          } else
+> > +          if (!xen_feature(XENFEAT_auto_translated_physmap))
+> >                    set_phys_to_machine(pfn, frame_list[i]);
+> >  
+> >            /* Link back into the page tables if not highmem.
+> > */ @@ -427,21 +419,12 @@ static enum bp_state
+> > decrease_reservation(unsigned long nr_pages, gfp_t gfp) 
+> >            scrub_page(page);
+> >  
+> > -          if (xen_pv_domain() && !PageHighMem(page)) {
+> > -                  if
+> > (xen_feature(XENFEAT_auto_translated_physmap)) {
+> > -                          unsigned int level;
+> > -                          pte_t *ptep;
+> > -                          void *addr = __va(pfn <<
+> > PAGE_SHIFT);
+> > -                          ptep = lookup_address((unsigned
+> > long)addr, 
+> > -                                                  &level);
+> > -                          set_pte(ptep, __pte(0));
+> > -
+> > -                  } else {
+> > +          if (xen_pv_domain() && !PageHighMem(page) &&
+> > +              !xen_feature(XENFEAT_auto_translated_physmap))
+> > { ret = HYPERVISOR_update_va_mapping(
+> >                                    (unsigned long)__va(pfn <<
+> > PAGE_SHIFT), __pte_ma(0), 0);
+> >                            BUG_ON(ret);
+> > -                  }
+> >            }
+> >    }
+> >  
+> > -- 
+> > 1.7.2.5
+> > 
+
+
+I've made this change in my tree also. So, its good for PVH also. 
+
+thanks
+Mukesh
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<20121008124101.GB29650@localhost.localdomain> b/config/examples/test/corpus/<20121008124101.GB29650@localhost.localdomain>
new file mode 100644 (file)
index 0000000..cb2f82a
--- /dev/null
@@ -0,0 +1,143 @@
+From xen-devel-bounces@lists.xen.org Mon Oct 08 13:45:06 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Mon, 08 Oct 2012 13:45:06 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TLChg-0003Xm-OD
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Mon, 08 Oct 2012 13:45:06 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TLCdy-00034P-PK; Mon, 08 Oct 2012 12:41:10 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <ketuzsezr@gmail.com>) id 1TLCdw-00034H-OU
+       for Xen-devel@lists.xensource.com; Mon, 08 Oct 2012 12:41:08 +0000
+Received: from [85.158.137.99:13992] by server-7.bemta-3.messagelabs.com id
+       54/1F-15765-3E9C2705; Mon, 08 Oct 2012 12:41:07 +0000
+X-Env-Sender: ketuzsezr@gmail.com
+X-Msg-Ref: server-6.tower-217.messagelabs.com!1349700066!15572511!1
+X-Originating-IP: [209.85.216.171]
+X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 32301 invoked from network); 8 Oct 2012 12:41:07 -0000
+Received: from mail-qc0-f171.google.com (HELO mail-qc0-f171.google.com)
+       (209.85.216.171)
+       by server-6.tower-217.messagelabs.com with RC4-SHA encrypted SMTP;
+       8 Oct 2012 12:41:07 -0000
+Received: by mail-qc0-f171.google.com with SMTP id d1so177476qca.30
+       for <Xen-devel@lists.xensource.com>;
+       Mon, 08 Oct 2012 05:41:06 -0700 (PDT)
+DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
+       h=sender:date:from:to:cc:subject:message-id:references:mime-version
+       :content-type:content-disposition:in-reply-to:user-agent;
+       bh=OrrcgjUTLSPmi1ocKCS54pDd1642oPVRo4CciDvUgSg=;
+       b=oNur6VhE8m+CzaY1XOX6ixHykD8+9wonpZo0+MhZqawIwgvt3MZoQfKyDaOx6JVKfL
+       /0hsNNa///nPwLJ1NkQ9xU7Y40dGKS3Y0VlVyTEE2vKmynYxqgb17orCRJr3FsnY+J9m
+       +7XHPPpdmyydDaxlMKWgErlOgLIW6aZUOPubXpd0DBuM6J1ZqS1abyfakgeVgmMO5fZe
+       Vk+TR5ylwmHO6B9JbaApDjedi1g9RSuIgIwMU8cSxp1Iwn7U0iPEHSbYwainmL/VbSK0
+       UtFjWWIMAcgk7HX7HG2pKg/NCnLiiazpCsfr7jDwAqRP2OC4tv/hnIq7iJM14LDGEZET
+       lsEA==
+Received: by 10.49.48.43 with SMTP id i11mr28123441qen.10.1349700065876;
+       Mon, 08 Oct 2012 05:41:05 -0700 (PDT)
+Received: from localhost.localdomain
+       (50-195-21-189-static.hfc.comcastbusiness.net. [50.195.21.189])
+       by mx.google.com with ESMTPS id em3sm17980161qab.5.2012.10.08.05.41.04
+       (version=TLSv1/SSLv3 cipher=OTHER);
+       Mon, 08 Oct 2012 05:41:05 -0700 (PDT)
+Date: Mon, 8 Oct 2012 08:41:02 -0400
+From: Konrad Rzeszutek Wilk <konrad@kernel.org>
+To: Ian Campbell <Ian.Campbell@citrix.com>
+Message-ID: <20121008124101.GB29650@localhost.localdomain>
+References: <20120924154335.097d3fb9@mantra.us.oracle.com>
+       <alpine.DEB.2.02.1209251054140.29232@kaball.uk.xensource.com>
+       <20120925180416.0137d61a@mantra.us.oracle.com>
+       <alpine.DEB.2.02.1209261225340.29232@kaball.uk.xensource.com>
+       <20121002183619.70734b7a@mantra.us.oracle.com>
+       <20121002190323.2e16f6ff@mantra.us.oracle.com>
+       <alpine.DEB.2.02.1210031242180.29232@kaball.uk.xensource.com>
+       <1349265914.650.136.camel@zakaz.uk.xensource.com>
+       <20121004183528.060416a0@mantra.us.oracle.com>
+       <1349429005.20946.20.camel@zakaz.uk.xensource.com>
+MIME-Version: 1.0
+Content-Disposition: inline
+In-Reply-To: <1349429005.20946.20.camel@zakaz.uk.xensource.com>
+User-Agent: Mutt/1.5.21 (2010-09-15)
+Cc: "Xen-devel@lists.xensource.com" <Xen-devel@lists.xensource.com>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>,
+       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,T_DKIM_INVALID,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH v1 3/8]: PVH startup changes (enlighten.c)
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Fri, Oct 05, 2012 at 10:23:25AM +0100, Ian Campbell wrote:
+> On Fri, 2012-10-05 at 02:35 +0100, Mukesh Rathor wrote:
+> > On Wed, 3 Oct 2012 13:05:14 +0100
+> > Ian Campbell <Ian.Campbell@citrix.com> wrote:
+> > 
+> > > On Wed, 2012-10-03 at 12:58 +0100, Stefano Stabellini wrote:
+> > > > > So for now, how about, lets go
+> > > > > with what I've got. I'll make a note, and when I do xen patch,
+> > > > > I'll figure it out, and would be a very small linux patch. I want
+> > > > > to get linux patch in soon before the window closes.
+> > > > 
+> > > > We can leave page special as it is for now with very little
+> > > > consequences, because it is not part of the interface with Xen.
+> > > > However this is part of the interface, so whatever we choose here
+> > > > is going to be hard to change later on.
+> > > 
+> > > I suggested that until we have seen and reviewed the hypervisor side
+> > > patches this guest side functionality all needs to be under an option
+> > > which has CONFIG_EXPERIMENTAL as a dependency and a comment explaining
+> > > that the ABI is not fixed yet, similar to what we did for the ARM
+> > > port.
+> > 
+> > Konrad is going to keep the changes in his tree and not upstream for
+> > couple months while we go thru the xen patches. This would be a big
+> > help for me as I won't have to constantly refresh linux tree.
+> 
+> Ah, ok, that sounds like a good plan.
+> 
+> In the case where the ARM stuff I have built on this becomes ripe first
+> would it be OK with you guys if I were to cherry pick the relevant bits
+> of the PVH stuff into a series to go in sooner?
+
+My plan right now was to wait for Mukesh to repost his series (which
+I hope will address all our review comments) and then I can shovel
+any other patches on top of that.
+
+But if it makes sense to intermix Mukeshes's patchs, and yours.
+(or squash some together) I can do that too.
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<20121008175925.105e78de@mantra.us.oracle.com> b/config/examples/test/corpus/<20121008175925.105e78de@mantra.us.oracle.com>
new file mode 100644 (file)
index 0000000..5aee570
--- /dev/null
@@ -0,0 +1,123 @@
+From xen-devel-bounces@lists.xen.org Tue Oct 09 02:06:25 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Tue, 09 Oct 2012 02:06:25 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TLOH9-0005kf-4k
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 09 Oct 2012 02:06:25 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TLOBe-0005Zn-It; Tue, 09 Oct 2012 01:00:42 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <mukesh.rathor@oracle.com>) id 1TLOBc-0005DC-9G
+       for xen-devel@lists.xen.org; Tue, 09 Oct 2012 01:00:40 +0000
+Received: from [85.158.139.83:36198] by server-6.bemta-5.messagelabs.com id
+       88/68-14717-73773705; Tue, 09 Oct 2012 01:00:39 +0000
+X-Env-Sender: mukesh.rathor@oracle.com
+X-Msg-Ref: server-10.tower-182.messagelabs.com!1349744435!34248533!1
+X-Originating-IP: [141.146.126.227]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogMTQxLjE0Ni4xMjYuMjI3ID0+IDc5OTA1Nw==\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 24231 invoked from network); 9 Oct 2012 01:00:37 -0000
+Received: from acsinet15.oracle.com (HELO acsinet15.oracle.com)
+       (141.146.126.227)
+       by server-10.tower-182.messagelabs.com with DHE-RSA-AES256-SHA
+       encrypted SMTP; 9 Oct 2012 01:00:37 -0000
+Received: from acsinet21.oracle.com (acsinet21.oracle.com [141.146.126.237])
+       by acsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
+       ESMTP id q9910RA5010868
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
+       Tue, 9 Oct 2012 01:00:28 GMT
+Received: from acsmt356.oracle.com (acsmt356.oracle.com [141.146.40.156])
+       by acsinet21.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
+       q9910Rmc000725
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
+       Tue, 9 Oct 2012 01:00:27 GMT
+Received: from abhmt114.oracle.com (abhmt114.oracle.com [141.146.116.66])
+       by acsmt356.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
+       q990xQ8R019446; Mon, 8 Oct 2012 19:59:26 -0500
+Received: from mantra.us.oracle.com (/130.35.68.95)
+       by default (Oracle Beehive Gateway v4.0)
+       with ESMTP ; Mon, 08 Oct 2012 17:59:26 -0700
+Date: Mon, 8 Oct 2012 17:59:25 -0700
+From: Mukesh Rathor <mukesh.rathor@oracle.com>
+To: Ian Campbell <Ian.Campbell@citrix.com>
+Message-ID: <20121008175925.105e78de@mantra.us.oracle.com>
+In-Reply-To: <1349444550.20946.102.camel@zakaz.uk.xensource.com>
+References: <1349363496.866.49.camel@zakaz.uk.xensource.com>
+       <1349363515-26190-11-git-send-email-ian.campbell@citrix.com>
+       <alpine.DEB.2.02.1210051432010.29232@kaball.uk.xensource.com>
+       <1349444550.20946.102.camel@zakaz.uk.xensource.com>
+Organization: Oracle Corporation
+X-Mailer: Claws Mail 3.7.6 (GTK+ 2.18.9; x86_64-redhat-linux-gnu)
+Mime-Version: 1.0
+X-Source-IP: acsinet21.oracle.com [141.146.126.237]
+Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 11/14] arm: implement remap interfaces
+ needed for privcmd mappings.
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Fri, 5 Oct 2012 14:42:30 +0100
+Ian Campbell <Ian.Campbell@citrix.com> wrote:
+
+> On Fri, 2012-10-05 at 14:36 +0100, Stefano Stabellini wrote:
+> [... snip dozens of pointless lines -- please trim your quotes...]
+> 
+> > > -        return -ENOSYS;
+> > > +        int err;
+> > > +        struct remap_data data;
+> > > +
+> > > +        /* TBD: Batching, current sole caller only does page at
+> > > a time */
+> > > +        if (nr > 1)
+> > > +                return -EINVAL;
+> > 
+> > It looks like that this implementation of
+> > xen_remap_domain_mfn_range is capable of handling nr > 1, so why
+> > this return -EINVAL?
+> 
+> Hrm, yes. I think I just blindly copied that from the pvh
+> implementation.
+> 
+> [...]
+
+PVH was using a different mechanism earlier, pfn from high up memory
+address space. So it was doing one at a time. It can be removed now.
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<20121008180728.07893577@mantra.us.oracle.com> b/config/examples/test/corpus/<20121008180728.07893577@mantra.us.oracle.com>
new file mode 100644 (file)
index 0000000..23c195f
--- /dev/null
@@ -0,0 +1,130 @@
+From xen-devel-bounces@lists.xen.org Tue Oct 09 02:14:34 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Tue, 09 Oct 2012 02:14:34 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TLOP1-0005mM-KE
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 09 Oct 2012 02:14:33 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TLOKP-0003Mv-Oo; Tue, 09 Oct 2012 01:09:45 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <mukesh.rathor@oracle.com>) id 1TLOKN-0003Mq-CY
+       for Xen-devel@lists.xensource.com; Tue, 09 Oct 2012 01:09:44 +0000
+Received: from [85.158.137.99:36548] by server-6.bemta-3.messagelabs.com id
+       E6/D3-11085-65973705; Tue, 09 Oct 2012 01:09:42 +0000
+X-Env-Sender: mukesh.rathor@oracle.com
+X-Msg-Ref: server-8.tower-217.messagelabs.com!1349744980!15428001!1
+X-Originating-IP: [148.87.113.117]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogMTQ4Ljg3LjExMy4xMTcgPT4gNzkwNDA2\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 29475 invoked from network); 9 Oct 2012 01:09:41 -0000
+Received: from rcsinet15.oracle.com (HELO rcsinet15.oracle.com)
+       (148.87.113.117)
+       by server-8.tower-217.messagelabs.com with DHE-RSA-AES256-SHA encrypted
+       SMTP; 9 Oct 2012 01:09:41 -0000
+Received: from acsinet21.oracle.com (acsinet21.oracle.com [141.146.126.237])
+       by rcsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
+       ESMTP id q9919VBm005311
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
+       Tue, 9 Oct 2012 01:09:32 GMT
+Received: from acsmt357.oracle.com (acsmt357.oracle.com [141.146.40.157])
+       by acsinet21.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
+       q9919U7U017058
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
+       Tue, 9 Oct 2012 01:09:31 GMT
+Received: from abhmt112.oracle.com (abhmt112.oracle.com [141.146.116.64])
+       by acsmt357.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
+       q9917U68001836; Mon, 8 Oct 2012 20:07:30 -0500
+Received: from mantra.us.oracle.com (/130.35.68.95)
+       by default (Oracle Beehive Gateway v4.0)
+       with ESMTP ; Mon, 08 Oct 2012 18:07:30 -0700
+Date: Mon, 8 Oct 2012 18:07:28 -0700
+From: Mukesh Rathor <mukesh.rathor@oracle.com>
+To: Konrad Rzeszutek Wilk <konrad@kernel.org>
+Message-ID: <20121008180728.07893577@mantra.us.oracle.com>
+In-Reply-To: <20121008124101.GB29650@localhost.localdomain>
+References: <20120924154335.097d3fb9@mantra.us.oracle.com>
+       <alpine.DEB.2.02.1209251054140.29232@kaball.uk.xensource.com>
+       <20120925180416.0137d61a@mantra.us.oracle.com>
+       <alpine.DEB.2.02.1209261225340.29232@kaball.uk.xensource.com>
+       <20121002183619.70734b7a@mantra.us.oracle.com>
+       <20121002190323.2e16f6ff@mantra.us.oracle.com>
+       <alpine.DEB.2.02.1210031242180.29232@kaball.uk.xensource.com>
+       <1349265914.650.136.camel@zakaz.uk.xensource.com>
+       <20121004183528.060416a0@mantra.us.oracle.com>
+       <1349429005.20946.20.camel@zakaz.uk.xensource.com>
+       <20121008124101.GB29650@localhost.localdomain>
+Organization: Oracle Corporation
+X-Mailer: Claws Mail 3.7.6 (GTK+ 2.18.9; x86_64-redhat-linux-gnu)
+Mime-Version: 1.0
+X-Source-IP: acsinet21.oracle.com [141.146.126.237]
+Cc: "Xen-devel@lists.xensource.com" <Xen-devel@lists.xensource.com>,
+       Ian Campbell <Ian.Campbell@citrix.com>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>,
+       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH v1 3/8]: PVH startup changes (enlighten.c)
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Mon, 8 Oct 2012 08:41:02 -0400
+Konrad Rzeszutek Wilk <konrad@kernel.org> wrote:
+
+> On Fri, Oct 05, 2012 at 10:23:25AM +0100, Ian Campbell wrote:
+> > On Fri, 2012-10-05 at 02:35 +0100, Mukesh Rathor wrote:
+> > > On Wed, 3 Oct 2012 13:05:14 +0100
+> > > Ian Campbell <Ian.Campbell@citrix.com> wrote:
+> > > 
+> > > > On Wed, 2012-10-03 at 12:58 +0100, Stefano Stabellini wrote:
+> > In the case where the ARM stuff I have built on this becomes ripe
+> > first would it be OK with you guys if I were to cherry pick the
+> > relevant bits of the PVH stuff into a series to go in sooner?
+> 
+> My plan right now was to wait for Mukesh to repost his series (which
+> I hope will address all our review comments) and then I can shovel
+> any other patches on top of that.
+> 
+> But if it makes sense to intermix Mukeshes's patchs, and yours.
+> (or squash some together) I can do that too.
+
+Ok, I'm all done with changes. Doing final testing now, and will have 
+patches sent by Tues afternoon.
+
+thanks,
+Mukesh
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<20121012134147.GA11778@phenom.dumpdata.com> b/config/examples/test/corpus/<20121012134147.GA11778@phenom.dumpdata.com>
new file mode 100644 (file)
index 0000000..7abe7b5
--- /dev/null
@@ -0,0 +1,249 @@
+From xen-devel-bounces@lists.xen.org Fri Oct 12 14:58:52 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 12 Oct 2012 14:58:52 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TMflJ-00026n-5e
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 12 Oct 2012 14:58:52 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TMfgP-00012N-KP; Fri, 12 Oct 2012 13:53:45 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <ketuzsezr@gmail.com>) id 1TMfgN-00012I-HE
+       for xen-devel@lists.xen.org; Fri, 12 Oct 2012 13:53:43 +0000
+Received: from [85.158.137.99:55791] by server-8.bemta-3.messagelabs.com id
+       F5/35-10525-6E028705; Fri, 12 Oct 2012 13:53:42 +0000
+X-Env-Sender: ketuzsezr@gmail.com
+X-Msg-Ref: server-5.tower-217.messagelabs.com!1350050020!16617190!1
+X-Originating-IP: [209.85.220.173]
+X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 29993 invoked from network); 12 Oct 2012 13:53:41 -0000
+Received: from mail-vc0-f173.google.com (HELO mail-vc0-f173.google.com)
+       (209.85.220.173)
+       by server-5.tower-217.messagelabs.com with RC4-SHA encrypted SMTP;
+       12 Oct 2012 13:53:41 -0000
+Received: by mail-vc0-f173.google.com with SMTP id fl15so4376282vcb.32
+       for <xen-devel@lists.xen.org>; Fri, 12 Oct 2012 06:53:40 -0700 (PDT)
+DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
+       h=sender:date:from:to:cc:subject:message-id:references:mime-version
+       :content-type:content-disposition:in-reply-to:user-agent;
+       bh=pe+rIc+sAVkjOMZukdfx6LrxShSabVewsbpoIHItCOc=;
+       b=tONfT4rMFIQvTFrZeNKeen8nOghut+gWby8Qynj4eMIvyOJI1OomSia09Me727LjU0
+       KeaTIo+rqUs8wAUpQV2kzhzQcdBzhQg5tO3pBcwFjn0AglxJ9stUIoFtLu3e0ZvxapOH
+       AWAKQKEYtAP8EY/AywOeZZFfemfpereEL+EpSGGbujXUcLYu0v0sYAj3wVNXLm+nJ7D8
+       +HZ8G5oKO88IOVa7VM2jrr4NfEriaR9NC6w8csan+GhHxg+F9Odmoog4ZldoM+DrbehU
+       K4Ub1AjKCu+jhAxYeqhWYfob9MWRjG8FIFFjFRw0PucksiLKaeAfQjvUoyDJivGVyHww
+       0XAQ==
+Received: by 10.52.27.82 with SMTP id r18mr2058391vdg.120.1350050020359;
+       Fri, 12 Oct 2012 06:53:40 -0700 (PDT)
+Received: from phenom.dumpdata.com
+       (50-195-21-189-static.hfc.comcastbusiness.net. [50.195.21.189])
+       by mx.google.com with ESMTPS id r17sm1020298vdj.12.2012.10.12.06.53.39
+       (version=TLSv1/SSLv3 cipher=OTHER);
+       Fri, 12 Oct 2012 06:53:40 -0700 (PDT)
+Date: Fri, 12 Oct 2012 09:41:47 -0400
+From: Konrad Rzeszutek Wilk <konrad@kernel.org>
+To: David Vrabel <david.vrabel@citrix.com>
+Message-ID: <20121012134147.GA11778@phenom.dumpdata.com>
+References: <1350046634-2462-1-git-send-email-david.vrabel@citrix.com>
+       <1350046634-2462-4-git-send-email-david.vrabel@citrix.com>
+MIME-Version: 1.0
+Content-Disposition: inline
+In-Reply-To: <1350046634-2462-4-git-send-email-david.vrabel@citrix.com>
+User-Agent: Mutt/1.5.21 (2010-09-15)
+Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>, xen-devel@lists.xen.org
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,T_DKIM_INVALID,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 3/3] xen/privcmd: add
+ IOCTL_PRIVCMD_SYNC_WALLCLOCK to sync Xen's wallclock
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Fri, Oct 12, 2012 at 01:57:14PM +0100, David Vrabel wrote:
+> From: David Vrabel <david.vrabel@citrix.com>
+> 
+> Add a new ioctl to synchronize Xen's wallclock with the current system
+> time.
+> 
+> This may be used by the tools to ensure that newly created domains see
+> the correct wallclock time if NTP is not used in dom0 or if domains
+> are started before NTP has synchronized.
+
+So... how does this work with NTPD? As in does ntpd _not_ update the
+hwclock enough?
+
+
+> 
+> Signed-off-by: David Vrabel <david.vrabel@citrix.com>
+> ---
+>  arch/x86/xen/time.c   |   25 ++++++++++++++++++-------
+>  drivers/xen/privcmd.c |   12 ++++++++++++
+>  include/xen/privcmd.h |    8 ++++++++
+>  include/xen/xen-ops.h |    2 ++
+>  4 files changed, 40 insertions(+), 7 deletions(-)
+> 
+> diff --git a/arch/x86/xen/time.c b/arch/x86/xen/time.c
+> index 11770d0..d481ac9 100644
+> --- a/arch/x86/xen/time.c
+> +++ b/arch/x86/xen/time.c
+> @@ -8,6 +8,7 @@
+>   * Jeremy Fitzhardinge <jeremy@xensource.com>, XenSource Inc, 2007
+>   */
+>  #include <linux/kernel.h>
+> +#include <linux/export.h>
+>  #include <linux/interrupt.h>
+>  #include <linux/clocksource.h>
+>  #include <linux/clockchips.h>
+> @@ -192,6 +193,19 @@ static void xen_read_wallclock(struct timespec *ts)
+>      put_cpu_var(xen_vcpu);
+>  }
+>  
+> +int xen_write_wallclock(const struct timespec *ts)
+> +{
+> +    struct xen_platform_op op;
+> +
+> +    op.cmd = XENPF_settime;
+> +    op.u.settime.secs = ts->tv_sec;
+> +    op.u.settime.nsecs = ts->tv_nsec;
+> +    op.u.settime.system_time = xen_clocksource_read();
+> +
+> +    return HYPERVISOR_dom0_op(&op);
+> +}
+> +EXPORT_SYMBOL_GPL(xen_write_wallclock);
+> +
+>  static unsigned long xen_get_wallclock(void)
+>  {
+>      struct timespec ts;
+> @@ -202,7 +216,7 @@ static unsigned long xen_get_wallclock(void)
+>  
+>  static int xen_set_wallclock(unsigned long now)
+>  {
+> -    struct xen_platform_op op;
+> +    struct timespec ts;
+>      int rc;
+>  
+>      /* do nothing for domU */
+> @@ -218,12 +232,9 @@ static int xen_set_wallclock(unsigned long now)
+>       * update_persistent_wallclock() is called ~500 ms after 'now'
+>       * so add an extra 500 ms.
+>       */
+> -    op.cmd = XENPF_settime;
+> -    op.u.settime.secs = now;
+> -    op.u.settime.nsecs = NSEC_PER_SEC / 2;
+> -    op.u.settime.system_time = xen_clocksource_read();
+> -
+> -    rc = HYPERVISOR_dom0_op(&op);
+> +    ts.tv_sec = now;
+> +    ts.tv_nsec = NSEC_PER_SEC / 2;
+> +    rc = xen_write_wallclock(&ts);
+>      WARN(rc != 0, "XENPF_settime failed: now=%ld\n", now);
+>  
+>      return rc;
+> diff --git a/drivers/xen/privcmd.c b/drivers/xen/privcmd.c
+> index ccee0f1..ed2caf3 100644
+> --- a/drivers/xen/privcmd.c
+> +++ b/drivers/xen/privcmd.c
+> @@ -338,6 +338,14 @@ out:
+>      return ret;
+>  }
+>  
+> +static long privcmd_ioctl_sync_wallclock(void)
+> +{
+> +    struct timespec ts;
+> +
+> +    getnstimeofday(&ts);
+> +    return xen_write_wallclock(&ts);
+> +}
+> +
+>  static long privcmd_ioctl(struct file *file,
+>                        unsigned int cmd, unsigned long data)
+>  {
+> @@ -357,6 +365,10 @@ static long privcmd_ioctl(struct file *file,
+>              ret = privcmd_ioctl_mmap_batch(udata);
+>              break;
+>  
+> +    case IOCTL_PRIVCMD_SYNC_WALLCLOCK:
+> +            ret = privcmd_ioctl_sync_wallclock();
+> +            break;
+> +
+>      default:
+>              ret = -EINVAL;
+>              break;
+> diff --git a/include/xen/privcmd.h b/include/xen/privcmd.h
+> index 17857fb..d17d087 100644
+> --- a/include/xen/privcmd.h
+> +++ b/include/xen/privcmd.h
+> @@ -66,6 +66,12 @@ struct privcmd_mmapbatch {
+>   * @cmd: IOCTL_PRIVCMD_HYPERCALL
+>   * @arg: &privcmd_hypercall_t
+>   * Return: Value returned from execution of the specified hypercall.
+> + *
+> + * @cmd: IOCTL_PRIVCMD_SYNC_WALLCLOCK
+> + * @arg: Unused.
+> + * Synchronizes the Xen wallclock with the current system time.
+> + * Return: 0 on success, or -1 on error with errno set to EPERM or
+> + * EACCES.
+>   */
+>  #define IOCTL_PRIVCMD_HYPERCALL                                     \
+>      _IOC(_IOC_NONE, 'P', 0, sizeof(struct privcmd_hypercall))
+> @@ -73,5 +79,7 @@ struct privcmd_mmapbatch {
+>      _IOC(_IOC_NONE, 'P', 2, sizeof(struct privcmd_mmap))
+>  #define IOCTL_PRIVCMD_MMAPBATCH                                     \
+>      _IOC(_IOC_NONE, 'P', 3, sizeof(struct privcmd_mmapbatch))
+> +#define IOCTL_PRIVCMD_SYNC_WALLCLOCK                                \
+> +    _IOC(_IOC_NONE, 'P', 5, 0)
+>  
+>  #endif /* __LINUX_PUBLIC_PRIVCMD_H__ */
+> diff --git a/include/xen/xen-ops.h b/include/xen/xen-ops.h
+> index 6a198e4..eefed22 100644
+> --- a/include/xen/xen-ops.h
+> +++ b/include/xen/xen-ops.h
+> @@ -29,4 +29,6 @@ int xen_remap_domain_mfn_range(struct vm_area_struct *vma,
+>                             unsigned long mfn, int nr,
+>                             pgprot_t prot, unsigned domid);
+>  
+> +int xen_write_wallclock(const struct timespec *ts);
+> +
+>  #endif /* INCLUDE_XEN_OPS_H */
+> -- 
+> 1.7.2.5
+> 
+> 
+> _______________________________________________
+> Xen-devel mailing list
+> Xen-devel@lists.xen.org
+> http://lists.xen.org/xen-devel
+> 
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<20121012145716.GA20842@phenom.dumpdata.com> b/config/examples/test/corpus/<20121012145716.GA20842@phenom.dumpdata.com>
new file mode 100644 (file)
index 0000000..fe304db
--- /dev/null
@@ -0,0 +1,136 @@
+From xen-devel-bounces@lists.xen.org Fri Oct 12 16:13:58 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 12 Oct 2012 16:13:58 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TMgvw-0002OY-UM
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 12 Oct 2012 16:13:58 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TMgrT-0002ZW-S4; Fri, 12 Oct 2012 15:09:15 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <konrad.wilk@oracle.com>) id 1TMgrS-0002ZR-7d
+       for xen-devel@lists.xen.org; Fri, 12 Oct 2012 15:09:14 +0000
+Received: from [85.158.137.99:9870] by server-2.bemta-3.messagelabs.com id
+       69/61-00604-99238705; Fri, 12 Oct 2012 15:09:13 +0000
+X-Env-Sender: konrad.wilk@oracle.com
+X-Msg-Ref: server-15.tower-217.messagelabs.com!1350054551!18997551!1
+X-Originating-IP: [141.146.126.227]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogMTQxLjE0Ni4xMjYuMjI3ID0+IDgwNzQ3OQ==\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 15216 invoked from network); 12 Oct 2012 15:09:12 -0000
+Received: from acsinet15.oracle.com (HELO acsinet15.oracle.com)
+       (141.146.126.227)
+       by server-15.tower-217.messagelabs.com with DHE-RSA-AES256-SHA
+       encrypted SMTP; 12 Oct 2012 15:09:12 -0000
+Received: from acsinet21.oracle.com (acsinet21.oracle.com [141.146.126.237])
+       by acsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
+       ESMTP id q9CF97rj008045
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
+       Fri, 12 Oct 2012 15:09:08 GMT
+Received: from acsmt357.oracle.com (acsmt357.oracle.com [141.146.40.157])
+       by acsinet21.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
+       q9CF97Mo003554
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
+       Fri, 12 Oct 2012 15:09:07 GMT
+Received: from abhmt108.oracle.com (abhmt108.oracle.com [141.146.116.60])
+       by acsmt357.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
+       q9CF97hb025098; Fri, 12 Oct 2012 10:09:07 -0500
+Received: from phenom.dumpdata.com (/50.195.21.189)
+       by default (Oracle Beehive Gateway v4.0)
+       with ESMTP ; Fri, 12 Oct 2012 08:09:07 -0700
+Received: by phenom.dumpdata.com (Postfix, from userid 1000)
+       id 414694037A; Fri, 12 Oct 2012 10:57:16 -0400 (EDT)
+Date: Fri, 12 Oct 2012 10:57:16 -0400
+From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+To: David Vrabel <david.vrabel@citrix.com>
+Message-ID: <20121012145716.GA20842@phenom.dumpdata.com>
+References: <1350046634-2462-1-git-send-email-david.vrabel@citrix.com>
+       <1350046634-2462-2-git-send-email-david.vrabel@citrix.com>
+MIME-Version: 1.0
+Content-Disposition: inline
+In-Reply-To: <1350046634-2462-2-git-send-email-david.vrabel@citrix.com>
+User-Agent: Mutt/1.5.21 (2010-09-15)
+X-Source-IP: acsinet21.oracle.com [141.146.126.237]
+Cc: xen-devel@lists.xen.org
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 1/3] xen: sync the CMOS RTC as well as the
+       Xen wallclock
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Fri, Oct 12, 2012 at 01:57:12PM +0100, David Vrabel wrote:
+> From: David Vrabel <david.vrabel@citrix.com>
+> 
+> If NTP is used in dom0 and it is synchronized to its clock source,
+> then the kernel will periodically synchronize the Xen wallclock with
+> the system time.  Updates to the Xen wallclock do not persist across
+> reboots, so also synchronize the CMOS RTC (as on bare metal).
+> 
+> Signed-off-by: David Vrabel <david.vrabel@citrix.com>
+> ---
+>  arch/x86/xen/time.c |    5 +++++
+>  1 files changed, 5 insertions(+), 0 deletions(-)
+> 
+> diff --git a/arch/x86/xen/time.c b/arch/x86/xen/time.c
+> index 0296a95..5e7f536 100644
+> --- a/arch/x86/xen/time.c
+> +++ b/arch/x86/xen/time.c
+> @@ -14,6 +14,7 @@
+>  #include <linux/kernel_stat.h>
+>  #include <linux/math64.h>
+>  #include <linux/gfp.h>
+> +#include <linux/mc146818rtc.h>
+>  
+>  #include <asm/pvclock.h>
+>  #include <asm/xen/hypervisor.h>
+> @@ -208,6 +209,10 @@ static int xen_set_wallclock(unsigned long now)
+>      if (!xen_initial_domain())
+>              return -1;
+>  
+> +    /* Set the hardware RTC. */
+> +    mach_set_rtc_mmss(now);
+
+So how does this work? Is the hypervisor traping on the RTC CMOS clock?
+
+> +
+> +    /* Set the Xen wallclock. */
+>      op.cmd = XENPF_settime;
+>      op.u.settime.secs = now;
+>      op.u.settime.nsecs = 0;
+> -- 
+> 1.7.2.5
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<20121012150251.GB20842@phenom.dumpdata.com> b/config/examples/test/corpus/<20121012150251.GB20842@phenom.dumpdata.com>
new file mode 100644 (file)
index 0000000..35c1706
--- /dev/null
@@ -0,0 +1,149 @@
+From xen-devel-bounces@lists.xen.org Fri Oct 12 16:19:28 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 12 Oct 2012 16:19:28 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TMh1K-0002SS-Co
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 12 Oct 2012 16:19:28 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TMgwv-0002i0-LF; Fri, 12 Oct 2012 15:14:53 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <konrad.wilk@oracle.com>) id 1TMgwu-0002hv-6l
+       for xen-devel@lists.xen.org; Fri, 12 Oct 2012 15:14:52 +0000
+Received: from [85.158.143.35:28817] by server-3.bemta-4.messagelabs.com id
+       05/AE-10075-BE338705; Fri, 12 Oct 2012 15:14:51 +0000
+X-Env-Sender: konrad.wilk@oracle.com
+X-Msg-Ref: server-3.tower-21.messagelabs.com!1350054889!14441354!1
+X-Originating-IP: [141.146.126.227]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogMTQxLjE0Ni4xMjYuMjI3ID0+IDgwNzQ3OQ==\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 30863 invoked from network); 12 Oct 2012 15:14:50 -0000
+Received: from acsinet15.oracle.com (HELO acsinet15.oracle.com)
+       (141.146.126.227)
+       by server-3.tower-21.messagelabs.com with DHE-RSA-AES256-SHA encrypted
+       SMTP; 12 Oct 2012 15:14:50 -0000
+Received: from ucsinet21.oracle.com (ucsinet21.oracle.com [156.151.31.93])
+       by acsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
+       ESMTP id q9CFEiRd014717
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
+       Fri, 12 Oct 2012 15:14:44 GMT
+Received: from acsmt357.oracle.com (acsmt357.oracle.com [141.146.40.157])
+       by ucsinet21.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
+       q9CFEh4O008395
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
+       Fri, 12 Oct 2012 15:14:43 GMT
+Received: from abhmt105.oracle.com (abhmt105.oracle.com [141.146.116.57])
+       by acsmt357.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
+       q9CFEg3G029748; Fri, 12 Oct 2012 10:14:42 -0500
+Received: from phenom.dumpdata.com (/50.195.21.189)
+       by default (Oracle Beehive Gateway v4.0)
+       with ESMTP ; Fri, 12 Oct 2012 08:14:42 -0700
+Received: by phenom.dumpdata.com (Postfix, from userid 1000)
+       id CBCDF4037A; Fri, 12 Oct 2012 11:02:51 -0400 (EDT)
+Date: Fri, 12 Oct 2012 11:02:51 -0400
+From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+To: David Vrabel <david.vrabel@citrix.com>
+Message-ID: <20121012150251.GB20842@phenom.dumpdata.com>
+References: <1350046634-2462-1-git-send-email-david.vrabel@citrix.com>
+       <1350046634-2462-4-git-send-email-david.vrabel@citrix.com>
+       <20121012134147.GA11778@phenom.dumpdata.com>
+       <507822ED.2090900@citrix.com>
+       <CACJDEmr3V71cSdV3+i-n7=wfOnDBza04Lk+6+B6Fyx7LhQrdEg@mail.gmail.com>
+       <5078304D.1050807@citrix.com>
+MIME-Version: 1.0
+Content-Disposition: inline
+In-Reply-To: <5078304D.1050807@citrix.com>
+User-Agent: Mutt/1.5.21 (2010-09-15)
+X-Source-IP: ucsinet21.oracle.com [156.151.31.93]
+Cc: Konrad Rzeszutek Wilk <konrad@kernel.org>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 3/3] xen/privcmd: add
+ IOCTL_PRIVCMD_SYNC_WALLCLOCK to sync Xen's wallclock
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Fri, Oct 12, 2012 at 03:59:25PM +0100, David Vrabel wrote:
+> On 12/10/12 15:29, Konrad Rzeszutek Wilk wrote:
+> > On Fri, Oct 12, 2012 at 10:02 AM, David Vrabel <david.vrabel@citrix.com> wrote:
+> >> On 12/10/12 14:41, Konrad Rzeszutek Wilk wrote:
+> >>> On Fri, Oct 12, 2012 at 01:57:14PM +0100, David Vrabel wrote:
+> >>>> From: David Vrabel <david.vrabel@citrix.com>
+> >>>>
+> >>>> Add a new ioctl to synchronize Xen's wallclock with the current system
+> >>>> time.
+> >>>>
+> >>>> This may be used by the tools to ensure that newly created domains see
+> >>>> the correct wallclock time if NTP is not used in dom0 or if domains
+> >>>> are started before NTP has synchronized.
+> >>>
+> >>> So... how does this work with NTPD? As in does ntpd _not_ update the
+> >>> hwclock enough?
+> >>
+> >> Once NTPD is synchronized then the kernel updates the wallclock (and the
+> >> RTC with patch #1) every 11 mins.  I assume this is often enough given
+> >> how NTP adjusts the system time.
+> >>
+> >> You only really need the tools to sync wallclock if system time was
+> >> stepped at start of day.  e.g., init scripts could do something like:
+> >>
+> >> ntpdate pool.ntp.org
+> >> hwclock --systohc
+> >> xen-wallclock --systowc
+> > 
+> > I think I am missing something. The hwclock should end up in the
+> > xen_set_wallclock call. And from there on, the ntpd would update the
+> > wallclock if it got skewed enough? Or is the system time not calling
+> > the wall-clock enough? If that is the case, would just adding this in
+> > the crontab be enough:
+> 
+> hwclock talks to /dev/rtc which writes to the CMOS directly and does not
+> call update_persistent_clock() (or xen_set_wallclock()).
+
+/me scratches his head.
+
+I recall that the update_persistent_clock() was being called.. with
+hwclock -w (which is the same as --systohc).
+
+That seems like a bug in the generic code - I would think that
+hwclock would update the wallclock, not just the RTC.
+
+Oh, it is whoever calls 'adjtimex' syscall ends up calling in
+update_persistent_clock(). So .. ntpdate or ntpd don't call that?
+
+Somebody does.. I hope?
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<20121012161610.GA7880@phenom.dumpdata.com> b/config/examples/test/corpus/<20121012161610.GA7880@phenom.dumpdata.com>
new file mode 100644 (file)
index 0000000..0bc0b5c
--- /dev/null
@@ -0,0 +1,166 @@
+From xen-devel-bounces@lists.xen.org Fri Oct 12 17:32:01 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 12 Oct 2012 17:32:01 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TMi9T-0002gw-U9
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 12 Oct 2012 17:32:01 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TMi5q-0004zL-0h; Fri, 12 Oct 2012 16:28:10 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <konrad.wilk@oracle.com>) id 1TMi5o-0004zF-J7
+       for xen-devel@lists.xen.org; Fri, 12 Oct 2012 16:28:08 +0000
+Received: from [85.158.143.99:9529] by server-2.bemta-4.messagelabs.com id
+       28/00-25171-71548705; Fri, 12 Oct 2012 16:28:07 +0000
+X-Env-Sender: konrad.wilk@oracle.com
+X-Msg-Ref: server-16.tower-216.messagelabs.com!1350059286!22669382!1
+X-Originating-IP: [148.87.113.117]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogMTQ4Ljg3LjExMy4xMTcgPT4gODAwNTkz\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 7648 invoked from network); 12 Oct 2012 16:28:07 -0000
+Received: from rcsinet15.oracle.com (HELO rcsinet15.oracle.com)
+       (148.87.113.117)
+       by server-16.tower-216.messagelabs.com with DHE-RSA-AES256-SHA
+       encrypted SMTP; 12 Oct 2012 16:28:07 -0000
+Received: from acsinet21.oracle.com (acsinet21.oracle.com [141.146.126.237])
+       by rcsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
+       ESMTP id q9CGS21E031082
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
+       Fri, 12 Oct 2012 16:28:03 GMT
+Received: from acsmt356.oracle.com (acsmt356.oracle.com [141.146.40.156])
+       by acsinet21.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
+       q9CGS1ac000529
+       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
+       Fri, 12 Oct 2012 16:28:02 GMT
+Received: from abhmt102.oracle.com (abhmt102.oracle.com [141.146.116.54])
+       by acsmt356.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
+       q9CGS1nW012181; Fri, 12 Oct 2012 11:28:01 -0500
+Received: from phenom.dumpdata.com (/50.195.21.189)
+       by default (Oracle Beehive Gateway v4.0)
+       with ESMTP ; Fri, 12 Oct 2012 09:28:01 -0700
+Received: by phenom.dumpdata.com (Postfix, from userid 1000)
+       id 6FBF74037A; Fri, 12 Oct 2012 12:16:10 -0400 (EDT)
+Date: Fri, 12 Oct 2012 12:16:10 -0400
+From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+To: David Vrabel <david.vrabel@citrix.com>
+Message-ID: <20121012161610.GA7880@phenom.dumpdata.com>
+References: <1350046634-2462-1-git-send-email-david.vrabel@citrix.com>
+       <1350046634-2462-4-git-send-email-david.vrabel@citrix.com>
+       <20121012134147.GA11778@phenom.dumpdata.com>
+       <507822ED.2090900@citrix.com>
+       <CACJDEmr3V71cSdV3+i-n7=wfOnDBza04Lk+6+B6Fyx7LhQrdEg@mail.gmail.com>
+       <5078304D.1050807@citrix.com>
+       <20121012150251.GB20842@phenom.dumpdata.com>
+       <507841D8.6090205@citrix.com>
+MIME-Version: 1.0
+Content-Disposition: inline
+In-Reply-To: <507841D8.6090205@citrix.com>
+User-Agent: Mutt/1.5.21 (2010-09-15)
+X-Source-IP: acsinet21.oracle.com [141.146.126.237]
+Cc: Konrad Rzeszutek Wilk <konrad@kernel.org>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 3/3] xen/privcmd: add
+ IOCTL_PRIVCMD_SYNC_WALLCLOCK to sync Xen's wallclock
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Fri, Oct 12, 2012 at 05:14:16PM +0100, David Vrabel wrote:
+> On 12/10/12 16:02, Konrad Rzeszutek Wilk wrote:
+> > On Fri, Oct 12, 2012 at 03:59:25PM +0100, David Vrabel wrote:
+> >> On 12/10/12 15:29, Konrad Rzeszutek Wilk wrote:
+> >>> On Fri, Oct 12, 2012 at 10:02 AM, David Vrabel <david.vrabel@citrix.com> wrote:
+> >>>> On 12/10/12 14:41, Konrad Rzeszutek Wilk wrote:
+> >>>>> On Fri, Oct 12, 2012 at 01:57:14PM +0100, David Vrabel wrote:
+> >>>>>> From: David Vrabel <david.vrabel@citrix.com>
+> >>>>>>
+> >>>>>> Add a new ioctl to synchronize Xen's wallclock with the current system
+> >>>>>> time.
+> >>>>>>
+> >>>>>> This may be used by the tools to ensure that newly created domains see
+> >>>>>> the correct wallclock time if NTP is not used in dom0 or if domains
+> >>>>>> are started before NTP has synchronized.
+> >>>>>
+> >>>>> So... how does this work with NTPD? As in does ntpd _not_ update the
+> >>>>> hwclock enough?
+> >>>>
+> >>>> Once NTPD is synchronized then the kernel updates the wallclock (and the
+> >>>> RTC with patch #1) every 11 mins.  I assume this is often enough given
+> >>>> how NTP adjusts the system time.
+> >>>>
+> >>>> You only really need the tools to sync wallclock if system time was
+> >>>> stepped at start of day.  e.g., init scripts could do something like:
+> >>>>
+> >>>> ntpdate pool.ntp.org
+> >>>> hwclock --systohc
+> >>>> xen-wallclock --systowc
+> >>>
+> >>> I think I am missing something. The hwclock should end up in the
+> >>> xen_set_wallclock call. And from there on, the ntpd would update the
+> >>> wallclock if it got skewed enough? Or is the system time not calling
+> >>> the wall-clock enough? If that is the case, would just adding this in
+> >>> the crontab be enough:
+> >>
+> >> hwclock talks to /dev/rtc which writes to the CMOS directly and does not
+> >> call update_persistent_clock() (or xen_set_wallclock()).
+> > 
+> > /me scratches his head.
+> > 
+> > I recall that the update_persistent_clock() was being called.. with
+> > hwclock -w (which is the same as --systohc).
+> 
+> No,
+> 
+> > That seems like a bug in the generic code - I would think that
+> > hwclock would update the wallclock, not just the RTC.
+> 
+> If we wanted hwclock to also update the xen wallclock we would need a
+> xen-specific rtc driver that updated both rtc and wallclock.
+> 
+> > Oh, it is whoever calls 'adjtimex' syscall ends up calling in
+> > update_persistent_clock(). So .. ntpdate or ntpd don't call that?
+> 
+> ntpd does call adjtimex so if you are running ntpd and it is
+> synchronized to its clock source you do get the periodic sync of the
+> wallclock.
+
+So, having both ntpd (which calls call adjtimex) - which would run in the
+background; and hwclock run at startup - (which updates the RTC, which ends
+ - I hope - being trapped by the hypervisor), we end up with the correct
+time, right?
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<20397.14624.57140.518016@mariner.uk.xensource.com> b/config/examples/test/corpus/<20397.14624.57140.518016@mariner.uk.xensource.com>
new file mode 100644 (file)
index 0000000..41f0b17
--- /dev/null
@@ -0,0 +1,129 @@
+From xen-devel-bounces@lists.xen.org Fri May 11 17:10:40 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 11 May 2012 17:10:40 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SSsQM-0006BM-NR
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 11 May 2012 17:10:40 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SSsMu-0007En-Sf; Fri, 11 May 2012 16:07:00 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Jackson@eu.citrix.com>) id 1SSsMs-0007Ec-L6
+       for xen-devel@lists.xen.org; Fri, 11 May 2012 16:06:58 +0000
+Received: from [85.158.138.51:11526] by server-12.bemta-3.messagelabs.com id
+       DD/00-29760-1293DAF4; Fri, 11 May 2012 16:06:57 +0000
+X-Env-Sender: Ian.Jackson@eu.citrix.com
+X-Msg-Ref: server-13.tower-174.messagelabs.com!1336752416!7941043!2
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiA5ODU1MQ==\n
+X-StarScan-Version: 6.5.7; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 17943 invoked from network); 11 May 2012 16:06:57 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-13.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
+       11 May 2012 16:06:57 -0000
+X-IronPort-AV: E=Sophos;i="4.75,572,1330905600"; d="scan'208";a="12434003"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       11 May 2012 16:06:56 +0000
+Received: from norwich.cam.xci-test.com (10.80.248.129) by
+       smtprelay.citrix.com (10.30.203.162) with Microsoft SMTP Server id
+       8.3.213.0; Fri, 11 May 2012 17:06:56 +0100
+Received: from mariner.cam.xci-test.com        ([10.80.2.22]
+       helo=mariner.uk.xensource.com ident=Debian-exim)        by
+       norwich.cam.xci-test.com
+       with esmtp (Exim 4.72)  (envelope-from <Ian.Jackson@eu.citrix.com>)     id
+       1SSsMq-0007gr-3H; Fri, 11 May 2012 16:06:56 +0000
+Received: from iwj by mariner.uk.xensource.com with local (Exim 4.72)
+       (envelope-from <Ian.Jackson@eu.citrix.com>)     id 1SSsMq-00021X-2O;
+       Fri, 11 May 2012 17:06:56 +0100
+From: Ian Jackson <Ian.Jackson@eu.citrix.com>
+MIME-Version: 1.0
+Message-ID: <20397.14624.57140.518016@mariner.uk.xensource.com>
+Date: Fri, 11 May 2012 17:06:56 +0100
+To: Ian Campbell <Ian.Campbell@citrix.com>
+Newsgroups: chiark.mail.xen.devel
+In-Reply-To: <1335445762.28015.141.camel@zakaz.uk.xensource.com>
+References: <1334928211-29856-1-git-send-email-roger.pau@citrix.com>
+       <1334928211-29856-4-git-send-email-roger.pau@citrix.com>
+       <20373.34767.584624.953798@mariner.uk.xensource.com>
+       <4F982F18.2080902@citrix.com> <4F99360E.2010201@citrix.com>
+       <20377.18296.235567.918003@mariner.uk.xensource.com>
+       <1335445762.28015.141.camel@zakaz.uk.xensource.com>
+X-Mailer: VM 8.1.0 under 23.2.1 (i486-pc-linux-gnu)
+Cc: Roger Pau Monne <roger.pau@citrix.com>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] Fwd: Re: [PATCH v3 3/5] libxl: call hotplug scripts
+ from libxl for vbd
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+Ian Campbell writes ("Re: [Xen-devel] Fwd: Re: [PATCH v3 3/5] libxl: call hotplug scripts from libxl for vbd"):
+> On Thu, 2012-04-26 at 14:02 +0100, Ian Jackson wrote:
+> > I think we need to think about these timeouts.  At the very least
+> > they're policy which should probably not be hardcoded in libxl; and
+> > arguably people might want to be able to specify infinite ("I trust my
+> > guest or driver domain and never want to pull the rug out from under
+> > its feet") or zero ("this guest or driver domain has gone wrong and I
+> > want it killed, now").
+> 
+> Unless the same is going to be true of the eventual solution (which I
+> suppose it may well be?) we should be wary of over engineering the
+> interim solution for 4.2.
+
+I guess.  Also xend's poor behaviour in this area (failing hotplug
+timeouts) provides something of an excuse...
+
+> > Perhaps it would be better to do things the other way around, and have
+> > an env var for the case where we're _not_ calling the script from
+> > udev ?  After all, udev config is configuration (at least on my
+> > distros) which the user may not update when the software is updated.
+> 
+> It was my suggestion to do it this way so that we don't end up with a
+> vestigial env var which must always be set for no real reason after
+> we've removed the udev path altogether.
+
+When we have "removed the udev path altogether" we will still need to
+have something to prevent trouble if the udev rules remain for some
+reason.
+
+> I don't really mind though, we could live with that vestigial thing, or
+> have another, easier, transition a few releases down the line.
+
+The vestigial thing can indeed eventually go away.
+
+Ian.
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<20420.59905.191002.80850@mariner.uk.xensource.com> b/config/examples/test/corpus/<20420.59905.191002.80850@mariner.uk.xensource.com>
new file mode 100644 (file)
index 0000000..15d7044
--- /dev/null
@@ -0,0 +1,103 @@
+From xen-devel-bounces@lists.xen.org Tue May 29 16:28:35 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Tue, 29 May 2012 16:28:35 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SZOLV-00040I-Mf
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 29 May 2012 16:28:35 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SZOH3-00085P-Jv; Tue, 29 May 2012 15:23:53 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Jackson@eu.citrix.com>) id 1SZOH1-00085K-8x
+       for xen-devel@lists.xensource.com; Tue, 29 May 2012 15:23:51 +0000
+Received: from [85.158.143.99:61817] by server-2.bemta-4.messagelabs.com id
+       BE/F5-12211-60AE4CF4; Tue, 29 May 2012 15:23:50 +0000
+X-Env-Sender: Ian.Jackson@eu.citrix.com
+X-Msg-Ref: server-9.tower-216.messagelabs.com!1338305029!28043403!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiA5OTk2Nw==\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 17964 invoked from network); 29 May 2012 15:23:49 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-9.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
+       29 May 2012 15:23:49 -0000
+X-IronPort-AV: E=Sophos;i="4.75,677,1330905600"; d="scan'208";a="12719194"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       29 May 2012 15:23:48 +0000
+Received: from norwich.cam.xci-test.com (10.80.248.129) by
+       smtprelay.citrix.com (10.30.203.162) with Microsoft SMTP Server id
+       8.3.213.0; Tue, 29 May 2012 16:23:48 +0100
+Received: from mariner.cam.xci-test.com        ([10.80.2.22]
+       helo=mariner.uk.xensource.com ident=Debian-exim)        by
+       norwich.cam.xci-test.com
+       with esmtp (Exim 4.72)  (envelope-from <Ian.Jackson@eu.citrix.com>)     id
+       1SZOGy-0004M0-9w; Tue, 29 May 2012 15:23:48 +0000
+Received: from iwj by mariner.uk.xensource.com with local (Exim 4.72)
+       (envelope-from <Ian.Jackson@eu.citrix.com>)     id 1SZOGy-0004ET-94;
+       Tue, 29 May 2012 16:23:48 +0100
+From: Ian Jackson <Ian.Jackson@eu.citrix.com>
+MIME-Version: 1.0
+Message-ID: <20420.59905.191002.80850@mariner.uk.xensource.com>
+Date: Tue, 29 May 2012 16:23:45 +0100
+To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+In-Reply-To: <alpine.DEB.2.00.1205291540590.26786@kaball-desktop>
+References: <alpine.DEB.2.00.1205281439080.26786@kaball-desktop>
+       <1338287956-24691-2-git-send-email-stefano.stabellini@eu.citrix.com>
+       <1338300632.14158.115.camel@zakaz.uk.xensource.com>
+       <alpine.DEB.2.00.1205291511560.26786@kaball-desktop>
+       <alpine.DEB.2.00.1205291540590.26786@kaball-desktop>
+X-Mailer: VM 8.1.0 under 23.2.1 (i486-pc-linux-gnu)
+Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
+       Ian Campbell <Ian.Campbell@citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH v8 02/11] libxl:
+ libxl__device_disk_local_attach return a new libxl_device_disk
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+Stefano Stabellini writes ("Re: [PATCH v8 02/11] libxl: libxl__device_disk_local_attach return a new libxl_device_disk"):
+...
+> The appended patch switches back the behavior to what we had in v5 and
+> before: pdev_path, script, and vdev are all allocated on the gc,
+> therefore freed automatically.
+
+Thanks.
+
+> libxl: libxl__device_disk_local_attach return a new libxl_device_disk
+
+Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<20420.59991.541173.849526@mariner.uk.xensource.com> b/config/examples/test/corpus/<20420.59991.541173.849526@mariner.uk.xensource.com>
new file mode 100644 (file)
index 0000000..570a899
--- /dev/null
@@ -0,0 +1,101 @@
+From xen-devel-bounces@lists.xen.org Tue May 29 16:29:22 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Tue, 29 May 2012 16:29:22 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SZOMG-00040c-FL
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 29 May 2012 16:29:22 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SZOIS-0008AZ-7q; Tue, 29 May 2012 15:25:20 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Jackson@eu.citrix.com>) id 1SZOIQ-0008AO-Ej
+       for xen-devel@lists.xensource.com; Tue, 29 May 2012 15:25:18 +0000
+Received: from [85.158.143.99:8001] by server-1.bemta-4.messagelabs.com id
+       9D/8C-00342-D5AE4CF4; Tue, 29 May 2012 15:25:17 +0000
+X-Env-Sender: Ian.Jackson@eu.citrix.com
+X-Msg-Ref: server-11.tower-216.messagelabs.com!1338305116!22818554!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiA5OTk2Nw==\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 14699 invoked from network); 29 May 2012 15:25:16 -0000
+Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-11.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
+       29 May 2012 15:25:16 -0000
+X-IronPort-AV: E=Sophos;i="4.75,677,1330905600"; d="scan'208";a="12719226"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       29 May 2012 15:25:15 +0000
+Received: from norwich.cam.xci-test.com (10.80.248.129) by
+       smtprelay.citrix.com (10.30.203.162) with Microsoft SMTP Server id
+       8.3.213.0; Tue, 29 May 2012 16:25:15 +0100
+Received: from mariner.cam.xci-test.com        ([10.80.2.22]
+       helo=mariner.uk.xensource.com ident=Debian-exim)        by
+       norwich.cam.xci-test.com
+       with esmtp (Exim 4.72)  (envelope-from <Ian.Jackson@eu.citrix.com>)     id
+       1SZOIN-0004MW-IF; Tue, 29 May 2012 15:25:15 +0000
+Received: from iwj by mariner.uk.xensource.com with local (Exim 4.72)
+       (envelope-from <Ian.Jackson@eu.citrix.com>)     id 1SZOIN-0004Ee-HA;
+       Tue, 29 May 2012 16:25:15 +0100
+From: Ian Jackson <Ian.Jackson@eu.citrix.com>
+MIME-Version: 1.0
+Message-ID: <20420.59991.541173.849526@mariner.uk.xensource.com>
+Date: Tue, 29 May 2012 16:25:11 +0100
+To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+In-Reply-To: <alpine.DEB.2.00.1205291540590.26786@kaball-desktop>
+References: <alpine.DEB.2.00.1205281439080.26786@kaball-desktop>
+       <1338287956-24691-2-git-send-email-stefano.stabellini@eu.citrix.com>
+       <1338300632.14158.115.camel@zakaz.uk.xensource.com>
+       <alpine.DEB.2.00.1205291511560.26786@kaball-desktop>
+       <alpine.DEB.2.00.1205291540590.26786@kaball-desktop>
+X-Mailer: VM 8.1.0 under 23.2.1 (i486-pc-linux-gnu)
+Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
+       Ian Campbell <Ian.Campbell@citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH v8 02/11] libxl:
+ libxl__device_disk_local_attach return a new libxl_device_disk
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+Stefano Stabellini writes ("Re: [PATCH v8 02/11] libxl: libxl__device_disk_local_attach return a new libxl_device_disk"):
+...
+> The appended patch switches back the behavior to what we had in v5 and
+> before: pdev_path, script, and vdev are all allocated on the gc,
+> therefore freed automatically.
+
+With the revised version of 02/11, I have now acked all 11 of these.
+
+Ian.
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<20432.62078.265596.607954@mariner.uk.xensource.com> b/config/examples/test/corpus/<20432.62078.265596.607954@mariner.uk.xensource.com>
new file mode 100644 (file)
index 0000000..4d8fab1
--- /dev/null
@@ -0,0 +1,120 @@
+From xen-devel-bounces@lists.xen.org Thu Jun 07 19:30:55 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 07 Jun 2012 19:30:55 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SchTx-0005kA-Gp
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 07 Jun 2012 19:30:55 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SchQP-0007zd-WD; Thu, 07 Jun 2012 18:27:13 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Jackson@eu.citrix.com>) id 1SchQO-0007zS-A8
+       for xen-devel@lists.xensource.com; Thu, 07 Jun 2012 18:27:12 +0000
+Received: from [85.158.139.83:34829] by server-11.bemta-5.messagelabs.com id
+       55/79-25194-F72F0DF4; Thu, 07 Jun 2012 18:27:11 +0000
+X-Env-Sender: Ian.Jackson@eu.citrix.com
+X-Msg-Ref: server-11.tower-182.messagelabs.com!1339093630!25288120!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDE0Nzk=\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 15490 invoked from network); 7 Jun 2012 18:27:11 -0000
+Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-11.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
+       7 Jun 2012 18:27:11 -0000
+X-IronPort-AV: E=Sophos;i="4.75,732,1330905600"; d="scan'208";a="12894464"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       07 Jun 2012 18:27:10 +0000
+Received: from norwich.cam.xci-test.com (10.80.248.129) by
+       smtprelay.citrix.com (10.30.203.162) with Microsoft SMTP Server id
+       8.3.213.0; Thu, 7 Jun 2012 19:27:10 +0100
+Received: from mariner.cam.xci-test.com        ([10.80.2.22]
+       helo=mariner.uk.xensource.com ident=Debian-exim)        by
+       norwich.cam.xci-test.com
+       with esmtp (Exim 4.72)  (envelope-from <Ian.Jackson@eu.citrix.com>)     id
+       1SchQM-0001uq-AS; Thu, 07 Jun 2012 18:27:10 +0000
+Received: from iwj by mariner.uk.xensource.com with local (Exim 4.72)
+       (envelope-from <Ian.Jackson@eu.citrix.com>)     id 1SchQM-0006Wf-9F;
+       Thu, 07 Jun 2012 19:27:10 +0100
+From: Ian Jackson <Ian.Jackson@eu.citrix.com>
+MIME-Version: 1.0
+Message-ID: <20432.62078.265596.607954@mariner.uk.xensource.com>
+Date: Thu, 7 Jun 2012 19:27:10 +0100
+To: Roger Pau Monne <roger.pau@citrix.com>
+In-Reply-To: <4FD0EB53.2040603@citrix.com>
+References: <alpine.DEB.2.00.1205281439080.26786@kaball-desktop>
+       <1338287956-24691-8-git-send-email-stefano.stabellini@eu.citrix.com>
+       <4FD0EB53.2040603@citrix.com>
+X-Mailer: VM 8.1.0 under 23.2.1 (i486-pc-linux-gnu)
+Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
+       Ian Campbell <Ian.Campbell@citrix.com>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH v8 08/11] xl/libxl: implement QDISK
+ libxl_device_disk_local_attach
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+Roger Pau Monne writes ("Re: [Xen-devel] [PATCH v8 08/11] xl/libxl: implement QDISK libxl_device_disk_local_attach"):
+> Stefano Stabellini wrote:
+> >   int libxl__device_disk_local_detach(libxl__gc *gc, libxl_device_disk *disk)
+> >   {
+> > -    /* Nothing to do for PHYSTYPE_PHY. */
+> > +    int rc = 0;
+> >
+> > -    /*
+> > -     * For other device types assume that the blktap2 process is
+> > -     * needed by the soon to be started domain and do nothing.
+> > -     */
+> > +    switch (disk->backend) {
+> > +        case LIBXL_DISK_BACKEND_QDISK:
+> > +            if (disk->vdev != NULL) {
+> > +                libxl_device_disk_remove(gc->owner, LIBXL_TOOLSTACK_DOMID,
+> > +                        disk, 0);
+> 
+> I was just looking at this code, and I have the feeling this could be 
+> dangerous, since you call libxl__device_disk_local_detach from an 
+> already running ao (the bootloader ao), and libxl_device_disk_remove 
+> will initiate another ao, and set it to completed inside of an already 
+> running ao.
+
+This is indeed forbidden.  The inner ao function exit will reenter the
+libxl event loop, which might do almost anything, including
+unexpectedly recursively reentering the other asynchronous operation
+(the lock doesn't prevent this since it's the same thread).
+
+Ian.
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<20544.54424.775548.66532@mariner.uk.xensource.com> b/config/examples/test/corpus/<20544.54424.775548.66532@mariner.uk.xensource.com>
new file mode 100644 (file)
index 0000000..03d925c
--- /dev/null
@@ -0,0 +1,126 @@
+From xen-devel-bounces@lists.xen.org Fri Aug 31 16:16:47 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 31 Aug 2012 16:16:47 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T7Sxe-0007C1-2y
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 31 Aug 2012 16:16:47 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T7Suj-0004Ng-Kx; Fri, 31 Aug 2012 15:13:41 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Jackson@eu.citrix.com>) id 1T7Suh-0004NY-Kh
+       for xen-devel@lists.xen.org; Fri, 31 Aug 2012 15:13:39 +0000
+Received: from [85.158.143.35:12958] by server-3.bemta-4.messagelabs.com id
+       08/96-08232-3A4D0405; Fri, 31 Aug 2012 15:13:39 +0000
+X-Env-Sender: Ian.Jackson@eu.citrix.com
+X-Msg-Ref: server-14.tower-21.messagelabs.com!1346426018!16175429!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTEyMzY=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 1863 invoked from network); 31 Aug 2012 15:13:38 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-14.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
+       31 Aug 2012 15:13:38 -0000
+X-IronPort-AV: E=Sophos;i="4.80,347,1344211200"; d="scan'208";a="14292640"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       31 Aug 2012 15:13:31 +0000
+Received: from norwich.cam.xci-test.com (10.80.248.129) by
+       smtprelay.citrix.com (10.30.203.162) with Microsoft SMTP Server id
+       8.3.279.1; Fri, 31 Aug 2012 16:13:31 +0100
+Received: from mariner.cam.xci-test.com        ([10.80.2.22]
+       helo=mariner.uk.xensource.com ident=Debian-exim)        by
+       norwich.cam.xci-test.com
+       with esmtp (Exim 4.72)  (envelope-from <Ian.Jackson@eu.citrix.com>)     id
+       1T7SuZ-0004Z4-5j; Fri, 31 Aug 2012 15:13:31 +0000
+Received: from iwj by mariner.uk.xensource.com with local (Exim 4.72)
+       (envelope-from <Ian.Jackson@eu.citrix.com>)     id 1T7SuZ-0007pg-1S;
+       Fri, 31 Aug 2012 16:13:31 +0100
+From: Ian Jackson <Ian.Jackson@eu.citrix.com>
+MIME-Version: 1.0
+Message-ID: <20544.54424.775548.66532@mariner.uk.xensource.com>
+Date: Fri, 31 Aug 2012 16:13:28 +0100
+To: Ian Campbell <Ian.Campbell@citrix.com>
+In-Reply-To: <1346425278.27277.224.camel@zakaz.uk.xensource.com>
+References: <1344935141.5926.6.camel@zakaz.uk.xensource.com>
+       <20120814100704.GA19704@bloms.de>
+       <1346421542.27277.218.camel@zakaz.uk.xensource.com>
+       <1346425278.27277.224.camel@zakaz.uk.xensource.com>
+X-Mailer: VM 8.1.0 under 23.2.1 (i486-pc-linux-gnu)
+Cc: Dieter Bloms <xensource.com@bloms.de>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [Xen-users] Xen 4.2 TODO (io and irq parameter are
+ not evaluated by xl)
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+Ian Campbell writes ("Re: [Xen-users] Xen 4.2 TODO (io and irq parameter are not evaluated by xl)"):
+> libxl/xl: implement support for guest iooprt and irq permissions.
+
+Most of this looks good, but:
+
+...                                       ("bios",             libxl_bios_type),
+> +            buf = xlu_cfg_get_listitem (ioports, i);
+> +            if (!buf) {
+> +                fprintf(stderr,
+> +                        "xl: Unable to get element #%d in ioport list\n", i);
+> +                exit(1);
+> +            }
+> +            s = e = strtoul(buf, &ep, 16);
+> +            if (ep == buf) {
+> +                fprintf(stderr, "xl: Invalid argument parsing ioport: %s\n",
+> +                        buf);
+> +                exit(1);
+> +            }
+> +            if (*ep == '-') {
+
+This code fails to properly handle (reject)
+   - (*ep!=0 && *ep!='-')
+   - value > LONG_MAX
+   - INT_MAX < value <= LONG_MAX
+   - *ep2!=0
+
+> +            irq = strtoul(buf, &ep, 10);
+
+Likewise.
+
+I take it we're not worrying about missing malloc failure checks in
+xl.
+
+Ian.
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<20544.57061.422450.821411@mariner.uk.xensource.com> b/config/examples/test/corpus/<20544.57061.422450.821411@mariner.uk.xensource.com>
new file mode 100644 (file)
index 0000000..cac086d
--- /dev/null
@@ -0,0 +1,119 @@
+From xen-devel-bounces@lists.xen.org Fri Aug 31 17:01:27 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 31 Aug 2012 17:01:27 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T7Ter-0007M5-LN
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 31 Aug 2012 17:01:26 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T7Tb7-0006S0-4Z; Fri, 31 Aug 2012 15:57:29 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Jackson@eu.citrix.com>) id 1T7Tb5-0006Rp-9m
+       for xen-devel@lists.xen.org; Fri, 31 Aug 2012 15:57:27 +0000
+Received: from [85.158.143.35:21611] by server-3.bemta-4.messagelabs.com id
+       4C/E0-08232-6EED0405; Fri, 31 Aug 2012 15:57:26 +0000
+X-Env-Sender: Ian.Jackson@eu.citrix.com
+X-Msg-Ref: server-6.tower-21.messagelabs.com!1346428646!16096232!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTEyMzY=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 11393 invoked from network); 31 Aug 2012 15:57:26 -0000
+Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-6.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
+       31 Aug 2012 15:57:26 -0000
+X-IronPort-AV: E=Sophos;i="4.80,347,1344211200"; d="scan'208";a="14293840"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       31 Aug 2012 15:57:26 +0000
+Received: from norwich.cam.xci-test.com (10.80.248.129) by
+       smtprelay.citrix.com (10.30.203.162) with Microsoft SMTP Server id
+       8.3.279.1; Fri, 31 Aug 2012 16:57:26 +0100
+Received: from mariner.cam.xci-test.com        ([10.80.2.22]
+       helo=mariner.uk.xensource.com ident=Debian-exim)        by
+       norwich.cam.xci-test.com
+       with esmtp (Exim 4.72)  (envelope-from <Ian.Jackson@eu.citrix.com>)     id
+       1T7Tb3-0004uP-KG; Fri, 31 Aug 2012 15:57:25 +0000
+Received: from iwj by mariner.uk.xensource.com with local (Exim 4.72)
+       (envelope-from <Ian.Jackson@eu.citrix.com>)     id 1T7Tb3-0007vm-Gu;
+       Fri, 31 Aug 2012 16:57:25 +0100
+From: Ian Jackson <Ian.Jackson@eu.citrix.com>
+MIME-Version: 1.0
+Message-ID: <20544.57061.422450.821411@mariner.uk.xensource.com>
+Date: Fri, 31 Aug 2012 16:57:25 +0100
+To: Ian Campbell <Ian.Campbell@citrix.com>
+In-Reply-To: <1346426619.27277.237.camel@zakaz.uk.xensource.com>
+References: <1344935141.5926.6.camel@zakaz.uk.xensource.com>
+       <20120814100704.GA19704@bloms.de>
+       <1346421542.27277.218.camel@zakaz.uk.xensource.com>
+       <1346425278.27277.224.camel@zakaz.uk.xensource.com>
+       <20544.54424.775548.66532@mariner.uk.xensource.com>
+       <1346426619.27277.237.camel@zakaz.uk.xensource.com>
+X-Mailer: VM 8.1.0 under 23.2.1 (i486-pc-linux-gnu)
+Cc: Dieter Bloms <xensource.com@bloms.de>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [Xen-users] Xen 4.2 TODO (io and irq parameter are
+ not evaluated by xl)
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+Ian Campbell writes ("Re: [Xen-users] Xen 4.2 TODO (io and irq parameter are not evaluated by xl)"):
+> On Fri, 2012-08-31 at 16:13 +0100, Ian Jackson wrote:
+> > This code fails to properly handle (reject)
+> >    - (*ep!=0 && *ep!='-')
+> 
+> Oops, will fix.
+> 
+> >    - value > LONG_MAX
+> >    - INT_MAX < value <= LONG_MAX
+> 
+> These all get checked inside the (eventual) hypercall. Or were you
+> thinking of something else?
+
+Suppose buf contains "1100000055\0".
+
+If a long is 32-bit, strtoul will return ULONG_MAX (0xffffffffUL)
+setting errno to ERANGE.  Converting that to a 32-bit signed int will
+do something implementation-defined (C99 6.3.1.3(3)) - in reality,
+give -1.  Relying on this being rejected later seems poor practice.
+
+If a long is 64-bit and an int 32-bit, strtoul will return
+0x1100000055UL.  Converting that to a 32-bit int will again do
+something implementation-defined - in reality, give 0x55.
+
+Ian.
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<217459398.20120902171441@eikelenboom.it> b/config/examples/test/corpus/<217459398.20120902171441@eikelenboom.it>
new file mode 100644 (file)
index 0000000..8b58857
--- /dev/null
@@ -0,0 +1,127 @@
+From xen-devel-bounces@lists.xen.org Sun Sep 02 16:20:00 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Sun, 02 Sep 2012 16:20:00 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T8Bxt-0005fB-Jq
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Sun, 02 Sep 2012 16:20:00 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T8Bss-0008MG-AN; Sun, 02 Sep 2012 15:14:46 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <linux@eikelenboom.it>) id 1T8Bsq-0008MB-Pq
+       for xen-devel@lists.xen.org; Sun, 02 Sep 2012 15:14:44 +0000
+Received: from [85.158.139.83:49524] by server-9.bemta-5.messagelabs.com id
+       B2/B8-20529-4E773405; Sun, 02 Sep 2012 15:14:44 +0000
+X-Env-Sender: linux@eikelenboom.it
+X-Msg-Ref: server-7.tower-182.messagelabs.com!1346598883!24193391!1
+X-Originating-IP: [188.40.164.121]
+X-SpamReason: No, hits=0.0 required=7.0 tests=
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 23422 invoked from network); 2 Sep 2012 15:14:43 -0000
+Received: from static.121.164.40.188.clients.your-server.de (HELO
+       smtp.eikelenboom.it) (188.40.164.121)
+       by server-7.tower-182.messagelabs.com with AES256-SHA encrypted SMTP;
+       2 Sep 2012 15:14:43 -0000
+Received: from 26-69-ftth.onsneteindhoven.nl ([88.159.69.26]:60557
+       helo=[172.16.1.20])
+       by smtp.eikelenboom.it with esmtpsa (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72) (envelope-from <linux@eikelenboom.it>)
+       id 1T8Bpk-0001to-4I; Sun, 02 Sep 2012 17:11:32 +0200
+Date: Sun, 2 Sep 2012 17:14:41 +0200
+From: Sander Eikelenboom <linux@eikelenboom.it>
+Organization: Eikelenboom IT services
+X-Priority: 3 (Normal)
+Message-ID: <217459398.20120902171441@eikelenboom.it>
+To: Keir Fraser <keir.xen@gmail.com>
+In-Reply-To: <CC6932C2.3D99D%keir.xen@gmail.com>
+References: <40501859.20120902104331@eikelenboom.it>
+       <CC6932C2.3D99D%keir.xen@gmail.com>
+MIME-Version: 1.0
+Cc: "wei.wang2@amd.com" <wei.wang2@amd.com>,
+       Santosh Jodh <Santosh.Jodh@citrix.com>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] Using debug-key 'o:  Dump IOMMU p2m table,
+       locks up machine
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+Sunday, September 2, 2012, 4:58:58 PM, you wrote:
+
+> On 02/09/2012 09:43, "Sander Eikelenboom" <linux@eikelenboom.it> wrote:
+
+>>> Quite simply, there likely needs to be more tracing on the IOMMU fault path.
+>>> That's a separate concern from your keyhandler of course, but just saying
+>>> I'd be looking for the former rather than the latter, for diagnosing
+>>> Sander's bug.
+>> 
+>> Are there any printk's I could add to get more relevant info about the AMD-Vi:
+>> IO_PAGE_FAULT ?
+
+> No really straightforward one. I think we need a per-IOMMU-type handler to
+> walk the IOMMU page table for a given virtual address, and dump every
+> page-table-entry on the path. Like an IOMMU version of show_page_walk().
+> Personally I would suspect this is more useful than the dump-everything
+> handlers: just give a *full* *detailed* walk for the actually interesting
+> virtual address (the one faulted on).
+
+>> I have attached new output from xl dmesg, this time with iommu=debug on (the
+>> option changed from 4.1 to 4.2).
+
+> Not easy to glean any more from that, without extra tracing such as
+> described above, and/or digging into the guest to find what driver-side
+> actions are causing the faults.
+
+OK, too bad!
+With xen 4.1 i haven't experienced those page faults, but a diff between /xen/drivers/passthrough/amd in both trees show quite some changes :(
+
+>  -- Keir
+
+>> 
+>> 
+>>>  -- Keir
+>> 
+
+
+
+
+
+
+-- 
+Best regards,
+ Sander                            mailto:linux@eikelenboom.it
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<348297741.20120905122542@eikelenboom.it> b/config/examples/test/corpus/<348297741.20120905122542@eikelenboom.it>
new file mode 100644 (file)
index 0000000..e4b0e7e
--- /dev/null
@@ -0,0 +1,251 @@
+From xen-devel-bounces@lists.xen.org Wed Sep 05 11:30:12 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 05 Sep 2012 11:30:12 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T9Cs2-0002GB-0H
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 05 Sep 2012 11:30:12 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T9Cnz-0001qI-3r; Wed, 05 Sep 2012 10:25:55 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <linux@eikelenboom.it>) id 1T9Cnx-0001q5-B7
+       for xen-devel@lists.xen.org; Wed, 05 Sep 2012 10:25:53 +0000
+Received: from [85.158.138.51:7027] by server-5.bemta-3.messagelabs.com id
+       86/23-13133-0B827405; Wed, 05 Sep 2012 10:25:52 +0000
+X-Env-Sender: linux@eikelenboom.it
+X-Msg-Ref: server-3.tower-174.messagelabs.com!1346840748!20668791!1
+X-Originating-IP: [188.40.164.121]
+X-SpamReason: No, hits=0.0 required=7.0 tests=
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 2762 invoked from network); 5 Sep 2012 10:25:48 -0000
+Received: from static.121.164.40.188.clients.your-server.de (HELO
+       smtp.eikelenboom.it) (188.40.164.121)
+       by server-3.tower-174.messagelabs.com with AES256-SHA encrypted SMTP;
+       5 Sep 2012 10:25:48 -0000
+Received: from 128-64-ftth.onsneteindhoven.nl ([88.159.64.128]:51861
+       helo=[172.16.1.20])
+       by smtp.eikelenboom.it with esmtpsa (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72) (envelope-from <linux@eikelenboom.it>)
+       id 1T9Cko-0007m8-4A; Wed, 05 Sep 2012 12:22:38 +0200
+Date: Wed, 5 Sep 2012 12:25:42 +0200
+From: Sander Eikelenboom <linux@eikelenboom.it>
+Organization: Eikelenboom IT services
+X-Priority: 3 (Normal)
+Message-ID: <348297741.20120905122542@eikelenboom.it>
+To: "Jan Beulich" <JBeulich@suse.com>
+In-Reply-To: <5047420A0200007800098BB1@nat28.tlf.novell.com>
+References: <40501859.20120902104331@eikelenboom.it>
+       <CC6932C2.3D99D%keir.xen@gmail.com>
+       <217459398.20120902171441@eikelenboom.it>
+       <5044CAD7.8030800@amd.com>
+       <1144695277.20120904184345@eikelenboom.it>
+       <5047420A0200007800098BB1@nat28.tlf.novell.com>
+MIME-Version: 1.0
+Cc: Wei Wang <wei.wang2@amd.com>, Keir Fraser <keir.xen@gmail.com>,
+       Santosh Jodh <Santosh.Jodh@citrix.com>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="iso-8859-15"
+Content-Transfer-Encoding: quoted-printable
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,MIME_QP_LONG_LINE,
+       RCVD_IN_DNSWL_MED,T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham
+       version=3.3.1
+Subject: Re: [Xen-devel] Using debug-key 'o:  Dump IOMMU p2m table,
+       locks up machine
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+
+Wednesday, September 5, 2012, 12:14:02 PM, you wrote:
+
+>>>> On 04.09.12 at 18:43, Sander Eikelenboom <linux@eikelenboom.it> wrote:
+>>> Did you also update xen tools accordingly? Sometime I also saw a few =
+
+>>> IO_PAGE_FAULTs came from nic if my tools version and HV version did not =
+
+>>> match. But using recent 4.2 and corresponding xl, my tests went well.
+>>> BTW: You could also try iommu=3Dno-sharept to see if it helps.
+>> =
+
+>> Tried it and it doesn't help.
+>> I now even got a "xl dmesg" which shows a IO_PAGE_FAULT occuring very ea=
+rly, =
+
+>> before any toolstack or guest can be involved:
+>> =
+
+>> (XEN) [2012-09-04 15:51:17] AMD-Vi: Setup I/O page table: device id =3D =
+0x0a05, =
+
+>> root table =3D 0x24d84b000, domain =3D 0, paging mode =3D 3
+>> (XEN) [2012-09-04 15:51:17] AMD-Vi: Setup I/O page table: device id =3D =
+0x0a06, =
+
+>> root table =3D 0x24d84b000, domain =3D 0, paging mode =3D 3
+>> (XEN) [2012-09-04 15:51:17] AMD-Vi: Setup I/O page table: device id =3D =
+0x0a07, =
+
+>> root table =3D 0x24d84b000, domain =3D 0, paging mode =3D 3
+>> (XEN) [2012-09-04 15:51:17] AMD-Vi: Setup I/O page table: device id =3D =
+0x0b00, =
+
+>> root table =3D 0x24d84b000, domain =3D 0, paging mode =3D 3
+>> (XEN) [2012-09-04 15:51:17] Scrubbing Free RAM: =
+
+>> ...........................<0>AMD-Vi: IO_PAGE_FAULT: domain =3D 0, devic=
+e id =3D =
+
+>> 0x0a06, fault address =3D 0xc2c2c2c0
+
+> Looks like use of uninitialized memory (assuming you're using a
+> debug hypervisor, that's the pattern scrub_one_page() puts
+> there). But it's unclear to me what device should be doing any
+> I/O at that point (and even if one does, how it would get the
+> bad address loaded). What is 0a:00.6?
+
+since 4.2-rc4 is still unstable it has debug=3Dy for what i know, so yes.
+This particular IO_PAGE_FAULT happened before the kernel loads, so the kern=
+el and pciback shouldn't be causing the issue one would say.
+With pciback i'm hiding 03:06.0, 04:00.*, 05:00.0, 0a:00.* and 07:00.0 at b=
+oot.
+
+Is there any code i could add to get more info where it comes from ?
+
+
+00:00.0 Host bridge: ATI Technologies Inc RD890 Northbridge only single slo=
+t PCI-e GFX Hydra part (rev 02)
+00:00.2 Generic system peripheral [0806]: ATI Technologies Inc RD990 I/O Me=
+mory Management Unit (IOMMU)
+00:02.0 PCI bridge: ATI Technologies Inc RD890 PCI to PCI bridge (PCI expre=
+ss gpp port B)
+00:03.0 PCI bridge: ATI Technologies Inc RD890 PCI to PCI bridge (PCI expre=
+ss gpp port C)
+00:05.0 PCI bridge: ATI Technologies Inc RD890 PCI to PCI bridge (PCI expre=
+ss gpp port E)
+00:06.0 PCI bridge: ATI Technologies Inc RD890 PCI to PCI bridge (PCI expre=
+ss gpp port F)
+00:0a.0 PCI bridge: ATI Technologies Inc RD890 PCI to PCI bridge (external =
+gfx1 port A)
+00:0b.0 PCI bridge: ATI Technologies Inc RD890 PCI to PCI bridge (NB-SB lin=
+k)
+00:0c.0 PCI bridge: ATI Technologies Inc Device 5a20
+00:0d.0 PCI bridge: ATI Technologies Inc RD890 PCI to PCI bridge (external =
+gfx1 port B)
+00:11.0 SATA controller: ATI Technologies Inc SB7x0/SB8x0/SB9x0 SATA Contro=
+ller [AHCI mode] (rev 40)
+00:12.0 USB controller: ATI Technologies Inc SB7x0/SB8x0/SB9x0 USB OHCI0 Co=
+ntroller
+00:12.2 USB controller: ATI Technologies Inc SB7x0/SB8x0/SB9x0 USB EHCI Con=
+troller
+00:13.0 USB controller: ATI Technologies Inc SB7x0/SB8x0/SB9x0 USB OHCI0 Co=
+ntroller
+00:13.2 USB controller: ATI Technologies Inc SB7x0/SB8x0/SB9x0 USB EHCI Con=
+troller
+00:14.0 SMBus: ATI Technologies Inc SBx00 SMBus Controller (rev 41)
+00:14.3 ISA bridge: ATI Technologies Inc SB7x0/SB8x0/SB9x0 LPC host control=
+ler (rev 40)
+00:14.4 PCI bridge: ATI Technologies Inc SBx00 PCI to PCI Bridge (rev 40)
+00:14.5 USB controller: ATI Technologies Inc SB7x0/SB8x0/SB9x0 USB OHCI2 Co=
+ntroller
+00:15.0 PCI bridge: ATI Technologies Inc SB700/SB800/SB900 PCI to PCI bridg=
+e (PCIE port 0)
+00:16.0 USB controller: ATI Technologies Inc SB7x0/SB8x0/SB9x0 USB OHCI0 Co=
+ntroller
+00:16.2 USB controller: ATI Technologies Inc SB7x0/SB8x0/SB9x0 USB EHCI Con=
+troller
+00:18.0 Host bridge: Advanced Micro Devices [AMD] Family 10h Processor Hype=
+rTransport Configuration
+00:18.1 Host bridge: Advanced Micro Devices [AMD] Family 10h Processor Addr=
+ess Map
+00:18.2 Host bridge: Advanced Micro Devices [AMD] Family 10h Processor DRAM=
+ Controller
+00:18.3 Host bridge: Advanced Micro Devices [AMD] Family 10h Processor Misc=
+ellaneous Control
+00:18.4 Host bridge: Advanced Micro Devices [AMD] Family 10h Processor Link=
+ Control
+03:06.0 Multimedia audio controller: C-Media Electronics Inc CM8738 (rev 10)
+04:00.0 USB controller: NetMos Technology MCS9990 PCIe to 4=E2Port USB 2.0 =
+Host Controller
+04:00.1 USB controller: NetMos Technology MCS9990 PCIe to 4=E2Port USB 2.0 =
+Host Controller
+04:00.2 USB controller: NetMos Technology MCS9990 PCIe to 4=E2Port USB 2.0 =
+Host Controller
+04:00.3 USB controller: NetMos Technology MCS9990 PCIe to 4=E2Port USB 2.0 =
+Host Controller
+04:00.4 USB controller: NetMos Technology MCS9990 PCIe to 4=E2Port USB 2.0 =
+Host Controller
+04:00.5 USB controller: NetMos Technology MCS9990 PCIe to 4=E2Port USB 2.0 =
+Host Controller
+04:00.6 USB controller: NetMos Technology MCS9990 PCIe to 4=E2Port USB 2.0 =
+Host Controller
+04:00.7 USB controller: NetMos Technology MCS9990 PCIe to 4=E2Port USB 2.0 =
+Host Controller
+05:00.0 Multimedia video controller: Conexant Systems, Inc. CX25850
+06:00.0 VGA compatible controller: ATI Technologies Inc RV620 LE [Radeon HD=
+ 3450]
+06:00.1 Audio device: ATI Technologies Inc RV620 Audio device [Radeon HD 34=
+xx Series]
+07:00.0 Multimedia video controller: Conexant Systems, Inc. Device 8210
+08:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168B =
+PCI Express Gigabit Ethernet controller (rev 03)
+09:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168B =
+PCI Express Gigabit Ethernet controller (rev 03)
+0a:00.0 USB controller: NetMos Technology MCS9990 PCIe to 4=E2Port USB 2.0 =
+Host Controller
+0a:00.1 USB controller: NetMos Technology MCS9990 PCIe to 4=E2Port USB 2.0 =
+Host Controller
+0a:00.2 USB controller: NetMos Technology MCS9990 PCIe to 4=E2Port USB 2.0 =
+Host Controller
+0a:00.3 USB controller: NetMos Technology MCS9990 PCIe to 4=E2Port USB 2.0 =
+Host Controller
+0a:00.4 USB controller: NetMos Technology MCS9990 PCIe to 4=E2Port USB 2.0 =
+Host Controller
+0a:00.5 USB controller: NetMos Technology MCS9990 PCIe to 4=E2Port USB 2.0 =
+Host Controller
+0a:00.6 USB controller: NetMos Technology MCS9990 PCIe to 4=E2Port USB 2.0 =
+Host Controller
+0a:00.7 USB controller: NetMos Technology MCS9990 PCIe to 4=E2Port USB 2.0 =
+Host Controller
+0b:00.0 VGA compatible controller: nVidia Corporation G98 [GeForce 8400 GS]=
+ (rev a1)
+
+
+
+
+
+
+
+> Jan
+
+
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<388095299.20120928160836@eikelenboom.it> b/config/examples/test/corpus/<388095299.20120928160836@eikelenboom.it>
new file mode 100644 (file)
index 0000000..c619061
--- /dev/null
@@ -0,0 +1,145 @@
+From xen-devel-bounces@lists.xen.org Fri Sep 28 15:13:38 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 28 Sep 2012 15:13:38 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1THbJs-0004Z9-6l
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 28 Sep 2012 15:13:38 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1THbFG-00063Y-KM; Fri, 28 Sep 2012 14:08:46 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <linux@eikelenboom.it>) id 1THbFE-00063T-UP
+       for xen-devel@lists.xen.org; Fri, 28 Sep 2012 14:08:45 +0000
+Received: from [85.158.139.83:61771] by server-11.bemta-5.messagelabs.com id
+       3C/5A-13866-C6FA5605; Fri, 28 Sep 2012 14:08:44 +0000
+X-Env-Sender: linux@eikelenboom.it
+X-Msg-Ref: server-9.tower-182.messagelabs.com!1348841323!31903903!1
+X-Originating-IP: [188.40.164.121]
+X-SpamReason: No, hits=0.0 required=7.0 tests=
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 14995 invoked from network); 28 Sep 2012 14:08:43 -0000
+Received: from static.121.164.40.188.clients.your-server.de (HELO
+       smtp.eikelenboom.it) (188.40.164.121)
+       by server-9.tower-182.messagelabs.com with AES256-SHA encrypted SMTP;
+       28 Sep 2012 14:08:43 -0000
+Received: from 50-64-ftth.onsneteindhoven.nl ([88.159.64.50]:55041
+       helo=[172.16.1.20])
+       by smtp.eikelenboom.it with esmtpsa (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72) (envelope-from <linux@eikelenboom.it>)
+       id 1THbG3-0004zG-9O; Fri, 28 Sep 2012 16:09:35 +0200
+Date: Fri, 28 Sep 2012 16:08:36 +0200
+From: Sander Eikelenboom <linux@eikelenboom.it>
+Organization: Eikelenboom IT services
+X-Priority: 3 (Normal)
+Message-ID: <388095299.20120928160836@eikelenboom.it>
+To: "Jan Beulich" <JBeulich@suse.com>
+In-Reply-To: <505AEB2D020000780009C81F@nat28.tlf.novell.com>
+References: <7914B38A4445B34AA16EB9F1352942F1012F0F6F4B98@SJCPMAILBOX01.citrite.net>
+       <CC681CDD.3D966%keir.xen@gmail.com>
+       <40501859.20120902104331@eikelenboom.it>
+       <5044849002000078000982EA@nat28.tlf.novell.com>
+       <4610648186.20120904090841@eikelenboom.it>
+       <5045CDF302000078000985FB@nat28.tlf.novell.com>
+       <4710608674.20120904101330@eikelenboom.it>
+       <505AEB2D020000780009C81F@nat28.tlf.novell.com>
+MIME-Version: 1.0
+Cc: Jeremy Fitzhardinge <jeremy@goop.org>, ehabkost@redhat.com,
+       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
+       "wei.wang2@amd.com" <wei.wang2@amd.com>, Keir Fraser <keir.xen@gmail.com>,
+       Santosh Jodh <Santosh.Jodh@citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-5.0 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] Using debug-key 'o:  Dump IOMMU p2m table,
+       locks up machine
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+
+Thursday, September 20, 2012, 10:08:45 AM, you wrote:
+
+> Ping?
+
+Perhaps changing the subject or starting a new thread altogether for this would provoke more reaction ?
+
+>>>> On 04.09.12 at 11:26, Jan Beulich wrote:
+>>>>> On 04.09.12 at 10:13, Sander Eikelenboom <linux@eikelenboom.it> wrote:
+>> > Hmm don't know how to get the file/line, only thing i have found is:
+>> > 
+>> > serveerstertje:/boot# gdb xen-syms-4.2.0-rc4-pre
+>> > GNU gdb (GDB) 7.0.1-debian
+>> > Copyright (C) 2009 Free Software Foundation, Inc.
+>> > License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
+>> > This is free software: you are free to change and redistribute it.
+>> > There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
+>> > and "show warranty" for details.
+>> > This GDB was configured as "x86_64-linux-gnu".
+>> > For bug reporting instructions, please see:
+>> > <http://www.gnu.org/software/gdb/bugs/>...
+>> > Reading symbols from /boot/xen-syms-4.2.0-rc4-pre...done.
+>> > (gdb) x/i 0xffff82c48015c9ee
+>> > 0xffff82c48015c9ee <context_switch+916>:        mov    %edx,%gs
+>> > (gdb)
+>> 
+>> I'm not really a gdb expert, so I don't know off the top of my
+>> head either. I thought I said in a previous reply that people
+>> generally appear to use the addr2line utility for that purpose.
+>> 
+>> But the disassembly already tells us where precisely the
+>> problem is: The selector value (0x0063) attempted to be put
+>> into %gs is apparently wrong in the context of the current
+>> GDT. Now, that's GDT_ENTRY_TLS_MIN on the Linux side,
+>> and ought to be valid. I'm surprised the guest (and the current
+>> process in it) survives this (as the failure here results in a failsafe
+>> callback into the guest).
+>> 
+>> Looking at the Linux side of things, this has been that way
+>> forever, and I think has always been broken: On x86-64, it
+>> should also clear %gs here (since 32-bit processes use it for
+>> their TLS, and there's nothing wrong for a 64-bit process to put
+>> something in there either), albeit not via loadsegment(), but
+>> through xen_load_gs_index(). And I neither see why on 32-bit
+>> it only clears %gs - %fs can as much hold a selector that might
+>> get invalidated with the TLS descriptor updates. Eduardo,
+>> Jeremy, Konrad?
+>> 
+>> Jan
+>> 
+
+
+
+
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<3921d4d38a5c20943af1ceb64f5f0691d7bfd702.1345552068.git.julien.grall@citrix.com> b/config/examples/test/corpus/<3921d4d38a5c20943af1ceb64f5f0691d7bfd702.1345552068.git.julien.grall@citrix.com>
new file mode 100644 (file)
index 0000000..2b9ad2f
--- /dev/null
@@ -0,0 +1,285 @@
+From xen-devel-bounces@lists.xen.org Wed Aug 22 19:58:53 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 22 Aug 2012 19:58:53 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T4G8Z-0002ly-3Q
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 22 Aug 2012 19:58:53 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T4G5F-0006i2-GE; Wed, 22 Aug 2012 18:55:17 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <julien.grall@citrix.com>) id 1T4G5D-0006gF-9G
+       for xen-devel@lists.xen.org; Wed, 22 Aug 2012 18:55:15 +0000
+Received: from [85.158.138.51:37636] by server-4.bemta-3.messagelabs.com id
+       A6/0D-04276-21B25305; Wed, 22 Aug 2012 18:55:14 +0000
+X-Env-Sender: julien.grall@citrix.com
+X-Msg-Ref: server-5.tower-174.messagelabs.com!1345661707!27566656!2
+X-Originating-IP: [66.165.176.63]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyNzMzNjM=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 9667 invoked from network); 22 Aug 2012 18:55:10 -0000
+Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
+       by server-5.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
+       22 Aug 2012 18:55:10 -0000
+X-IronPort-AV: E=Sophos;i="4.80,809,1344225600"; d="scan'208";a="205943112"
+Received: from ftlpmailmx01.citrite.net ([10.13.107.65])
+       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       22 Aug 2012 14:55:09 -0400
+Received: from meteora.cam.xci-test.com (10.80.248.22) by smtprelay.citrix.com
+       (10.13.107.65) with Microsoft SMTP Server id 8.3.213.0;
+       Wed, 22 Aug 2012 14:55:08 -0400
+From: Julien Grall <julien.grall@citrix.com>
+To: qemu-devel@nongnu.org
+Date: Wed, 22 Aug 2012 13:31:49 +0100
+Message-ID: <3921d4d38a5c20943af1ceb64f5f0691d7bfd702.1345552068.git.julien.grall@citrix.com>
+X-Mailer: git-send-email 1.7.2.5
+In-Reply-To: <cover.1345552068.git.julien.grall@citrix.com>
+References: <cover.1345552068.git.julien.grall@citrix.com>
+MIME-Version: 1.0
+Cc: Julien Grall <julien.grall@citrix.com>, christian.limpach@gmail.com,
+       Stefano.Stabellini@eu.citrix.com, xen-devel@lists.xen.org
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DATE_IN_PAST_06_12,
+       RCVD_IN_DNSWL_MED,RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham
+       version=3.3.1
+Subject: [Xen-devel] [XEN][RFC PATCH V2 03/17] hvm-pci: Handle PCI config
+       space in Xen
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+Add function to register a bdf within a server.
+An handler was add to catch (cf8 -> cff) ioport access.
+When Xen reveices a PIO for cf8, it's store the value inside the current
+vcpu until it receives a PIO for cfc -> cff.
+In this case, it checks if the bdf is registered and forge the ioreq
+that will be forward to server later.
+
+Signed-off-by: Julien Grall <julien.grall@citrix.com>
+---
+ xen/arch/x86/hvm/Makefile   |    1 +
+ xen/arch/x86/hvm/pci_emul.c |  168 +++++++++++++++++++++++++++++++++++++++++++
+ 2 files changed, 169 insertions(+), 0 deletions(-)
+ create mode 100644 xen/arch/x86/hvm/pci_emul.c
+
+diff --git a/xen/arch/x86/hvm/Makefile b/xen/arch/x86/hvm/Makefile
+index eea5555..585e9c9 100644
+--- a/xen/arch/x86/hvm/Makefile
++++ b/xen/arch/x86/hvm/Makefile
+@@ -12,6 +12,7 @@ obj-y += irq.o
+ obj-y += mtrr.o
+ obj-y += nestedhvm.o
+ obj-y += pmtimer.o
++obj-y += pci_emul.o
+ obj-y += quirks.o
+ obj-y += rtc.o
+ obj-y += save.o
+diff --git a/xen/arch/x86/hvm/pci_emul.c b/xen/arch/x86/hvm/pci_emul.c
+new file mode 100644
+index 0000000..48456dd
+--- /dev/null
++++ b/xen/arch/x86/hvm/pci_emul.c
+@@ -0,0 +1,168 @@
++#include <asm/hvm/support.h>
++#include <xen/hvm/pci_emul.h>
++#include <xen/pci.h>
++#include <xen/sched.h>
++#include <xen/xmalloc.h>
++
++#define PCI_DEBUGSTR "%x:%x.%x"
++#define PCI_DEBUG(bdf) ((bdf) >> 8) & 0xff, ((bdf) >> 3) & 0x1f, ((bdf)) & 0x7
++#define PCI_MASK_BDF(bdf) (((bdf) & 0x00ffff00) >> 8)
++#define PCI_CMP_BDF(Pci, Bdf) ((pci)->bdf == PCI_MASK_BDF(Bdf))
++
++static int handle_config_space(int dir, uint32_t port, uint32_t bytes,
++                               uint32_t *val)
++{
++    uint32_t pci_cf8;
++    struct hvm_ioreq_server *s;
++    ioreq_t *p = get_ioreq(current);
++    int rc = X86EMUL_UNHANDLEABLE;
++    struct vcpu *v = current;
++
++    if ( port == 0xcf8 && bytes == 4 )
++    {
++        if ( dir == IOREQ_READ )
++            *val = v->arch.hvm_vcpu.pci_cf8;
++        else
++            v->arch.hvm_vcpu.pci_cf8 = *val;
++        return X86EMUL_OKAY;
++    }
++    else if ( port < 0xcfc )
++        return X86EMUL_UNHANDLEABLE;
++
++    spin_lock(&v->domain->arch.hvm_domain.pci_root.pci_lock);
++    spin_lock(&v->domain->arch.hvm_domain.ioreq_server_lock);
++
++    pci_cf8 = v->arch.hvm_vcpu.pci_cf8;
++
++    /* Retrieve PCI */
++    s = radix_tree_lookup(&v->domain->arch.hvm_domain.pci_root.pci_list,
++                          PCI_MASK_BDF(pci_cf8));
++
++    if ( unlikely(s == NULL) )
++    {
++        *val = ~0;
++        rc = X86EMUL_OKAY;
++        goto end_handle;
++    }
++
++    /**
++     * We just fill the ioreq, hvm_send_assist_req will send the request
++     * The size is used to find the right access
++     **/
++    /* We use the 16 high-bits for the offset (0 => 0xcfc, 1 => 0xcfd...) */
++    p->size = (p->addr - 0xcfc) << 16 | (p->size & 0xffff);
++    p->type = IOREQ_TYPE_PCI_CONFIG;
++    p->addr = pci_cf8;
++
++    set_ioreq(v, &s->ioreq, p);
++
++end_handle:
++    spin_unlock(&v->domain->arch.hvm_domain.ioreq_server_lock);
++    spin_unlock(&v->domain->arch.hvm_domain.pci_root.pci_lock);
++
++    return rc;
++}
++
++int hvm_register_pcidev(domid_t domid, ioservid_t id,
++                        uint8_t domain, uint8_t bus,
++                        uint8_t device, uint8_t function)
++{
++    struct domain *d;
++    struct hvm_ioreq_server *s;
++    int rc = 0;
++    struct radix_tree_root *tree;
++    uint16_t bdf = 0;
++
++    /* For the moment we don't handle pci when domain != 0 */
++    if ( domain != 0 )
++        return -EINVAL;
++
++    rc = rcu_lock_target_domain_by_id(domid, &d);
++
++    if ( rc != 0 )
++        return rc;
++
++    if ( !is_hvm_domain(d) )
++    {
++        rcu_unlock_domain(d);
++        return -EINVAL;
++    }
++
++    /* Search server */
++    spin_lock(&d->arch.hvm_domain.ioreq_server_lock);
++    s = d->arch.hvm_domain.ioreq_server_list;
++    while ( (s != NULL) && (s->id != id) )
++        s = s->next;
++
++    spin_unlock(&d->arch.hvm_domain.ioreq_server_lock);
++
++    if ( s == NULL )
++    {
++        gdprintk(XENLOG_ERR, "Cannot find server %u\n", id);
++        rc = -ENOENT;
++        goto fail;
++    }
++
++    spin_lock(&d->arch.hvm_domain.pci_root.pci_lock);
++
++    tree = &d->arch.hvm_domain.pci_root.pci_list;
++
++    bdf |= ((uint16_t)bus) << 8;
++    bdf |= ((uint16_t)device & 0x1f) << 3;
++    bdf |= ((uint16_t)function & 0x7);
++
++    if ( radix_tree_lookup(tree, bdf) )
++    {
++        rc = -EEXIST;
++        gdprintk(XENLOG_ERR, "Bdf " PCI_DEBUGSTR " is already allocated\n",
++                 PCI_DEBUG(bdf));
++        goto create_end;
++    }
++
++    rc = radix_tree_insert(tree, bdf, s);
++    if ( rc )
++    {
++        gdprintk(XENLOG_ERR, "Cannot insert the bdf\n");
++        goto create_end;
++    }
++
++create_end:
++    spin_unlock(&d->arch.hvm_domain.pci_root.pci_lock);
++fail:
++    rcu_unlock_domain(d);
++
++    return rc;
++}
++
++void hvm_init_pci_emul(struct domain *d)
++{
++    struct pci_root_emul *root = &d->arch.hvm_domain.pci_root;
++
++    spin_lock_init(&root->pci_lock);
++
++    radix_tree_init(&root->pci_list);
++
++    /* Register the config space handler */
++    register_portio_handler(d, 0xcf8, 8, handle_config_space);
++}
++
++void hvm_destroy_pci_emul(struct domain *d)
++{
++    struct pci_root_emul *root = &d->arch.hvm_domain.pci_root;
++
++    spin_lock(&root->pci_lock);
++
++    radix_tree_destroy(&root->pci_list, NULL);
++
++    spin_unlock(&root->pci_lock);
++}
++
++/*
++ * Local variables:
++ * mode: C
++ * c-set-style: "BSD"
++ * c-basic-offset: 4
++ * tab-width: 4
++ * indent-tabs-mode: nil
++ * End:
++ */
+-- 
+Julien Grall
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<40501859.20120902104331@eikelenboom.it> b/config/examples/test/corpus/<40501859.20120902104331@eikelenboom.it>
new file mode 100644 (file)
index 0000000..24b0f56
--- /dev/null
@@ -0,0 +1,973 @@
+From xen-devel-bounces@lists.xen.org Sun Sep 02 09:50:03 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Sun, 02 Sep 2012 09:50:03 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T85sP-0004tz-Kr
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Sun, 02 Sep 2012 09:50:02 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T85mO-0006p5-KT; Sun, 02 Sep 2012 08:43:40 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <linux@eikelenboom.it>) id 1T85mM-0006p0-Ub
+       for xen-devel@lists.xen.org; Sun, 02 Sep 2012 08:43:39 +0000
+Received: from [85.158.143.99:38251] by server-2.bemta-4.messagelabs.com id
+       AC/DC-21239-A3C13405; Sun, 02 Sep 2012 08:43:38 +0000
+X-Env-Sender: linux@eikelenboom.it
+X-Msg-Ref: server-11.tower-216.messagelabs.com!1346575414!20525918!1
+X-Originating-IP: [188.40.164.121]
+X-SpamReason: No, hits=0.5 required=7.0 tests=BODY_RANDOM_LONG
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 13618 invoked from network); 2 Sep 2012 08:43:34 -0000
+Received: from static.121.164.40.188.clients.your-server.de (HELO
+       smtp.eikelenboom.it) (188.40.164.121)
+       by server-11.tower-216.messagelabs.com with AES256-SHA encrypted SMTP;
+       2 Sep 2012 08:43:34 -0000
+Received: from 26-69-ftth.onsneteindhoven.nl ([88.159.69.26]:49677
+       helo=[172.16.1.20])
+       by smtp.eikelenboom.it with esmtpsa (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72) (envelope-from <linux@eikelenboom.it>)
+       id 1T85jC-00006N-KF; Sun, 02 Sep 2012 10:40:22 +0200
+Date: Sun, 2 Sep 2012 10:43:31 +0200
+From: Sander Eikelenboom <linux@eikelenboom.it>
+Organization: Eikelenboom IT services
+X-Priority: 3 (Normal)
+Message-ID: <40501859.20120902104331@eikelenboom.it>
+To: Keir Fraser <keir.xen@gmail.com>
+In-Reply-To: <CC681CDD.3D966%keir.xen@gmail.com>
+References: <7914B38A4445B34AA16EB9F1352942F1012F0F6F4B98@SJCPMAILBOX01.citrite.net>
+       <CC681CDD.3D966%keir.xen@gmail.com>
+MIME-Version: 1.0
+Content-Type: multipart/mixed;
+ boundary="----------03516D00221173D65"
+Cc: "wei.wang2@amd.com" <wei.wang2@amd.com>,
+       Santosh Jodh <Santosh.Jodh@citrix.com>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] Using debug-key 'o:  Dump IOMMU p2m table,
+       locks up machine
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+------------03516D00221173D65
+Content-Type: text/plain; charset=us-ascii
+Content-Transfer-Encoding: 7bit
+
+
+Saturday, September 1, 2012, 9:13:17 PM, you wrote:
+
+> On 01/09/2012 18:03, "Santosh Jodh" <Santosh.Jodh@citrix.com> wrote:
+
+>>> It might schedule softirqs but that won't include scheduling or running any
+>>> guest vcpus. The vcpu that happens to be running on that cpu at the time the
+>>> debug dump starts, will be stuck unrunnable until the dump completes.
+>> 
+>> Why does'nt that vCPU get scheduled on some other pCPU? Is there  a way to
+>> yield the CPU from the key handler?
+
+> It can't be descheduled from this pCPU without running through the
+> scheduler. You could try running the handler in a tasklet -- a tasklet
+> causes other vCPUs to be descheduled from that pCPU, before it starts
+> running.
+
+> So you'd register a keyhandler which does a tasklet_schedule(), and do your
+> logging work in the tasklet handler.
+
+> Worth a shot maybe?
+
+>>> 
+>>> Well, anyway, I don't know how useful a massive dump of the entire p2m is
+>>> going to be for debugging anyway. If investigating an IOMMU page fault, I'd
+>>> just want the info pertaining to that fault, and all the mapping information
+>>> for
+>>> that IO virtual address, dumped. :)
+>> 
+>> It is not a generically useful command - its usefulness is in the same
+>> category as dumping the MMU table. Unfortunately, there is no way to pass
+>> arguments to the key handler - to say provide the VM and or starting gfn and
+>> length for a more selective output.
+
+> Quite simply, there likely needs to be more tracing on the IOMMU fault path.
+> That's a separate concern from your keyhandler of course, but just saying
+> I'd be looking for the former rather than the latter, for diagnosing
+> Sander's bug.
+
+Are there any printk's I could add to get more relevant info about the AMD-Vi: IO_PAGE_FAULT ?
+
+I have attached new output from xl dmesg, this time with iommu=debug on (the option changed from 4.1 to 4.2).
+
+
+
+>  -- Keir
+
+
+------------03516D00221173D65
+Content-Type: text/plain;
+ name="xl-dmesg.txt"
+Content-transfer-encoding: base64
+Content-Disposition: attachment;
+ filename="xl-dmesg.txt"
+
+IF9fICBfXyAgICAgICAgICAgIF8gIF8gICAgX19fXyAgICBfX18gICAgICAgICAgICAgIF8g
+IF8gICAgICAgICAgICAgICAgICAgICANCiBcIFwvIC9fX18gXyBfXyAgIHwgfHwgfCAgfF9f
+XyBcICAvIF8gXCAgICBfIF9fIF9fX3wgfHwgfCAgICAgXyBfXyAgXyBfXyBfX18gDQogIFwg
+IC8vIF8gXCAnXyBcICB8IHx8IHxfICAgX18pIHx8IHwgfCB8X198ICdfXy8gX198IHx8IHxf
+IF9ffCAnXyBcfCAnX18vIF8gXA0KICAvICBcICBfXy8gfCB8IHwgfF9fICAgX3wgLyBfXy8g
+fCB8X3wgfF9ffCB8IHwgKF9ffF9fICAgX3xfX3wgfF8pIHwgfCB8ICBfXy8NCiAvXy9cX1xf
+X198X3wgfF98ICAgIHxffChfKV9fX19fKF8pX19fLyAgIHxffCAgXF9fX3wgIHxffCAgICB8
+IC5fXy98X3wgIFxfX198DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
+ICAgICAgICAgICAgICAgICAgICAgICAgfF98ICAgICAgICAgICAgIA0KKFhFTikgWGVuIHZl
+cnNpb24gNC4yLjAtcmM0LXByZSAocm9vdEBkeW5kbnMub3JnKSAoZ2NjIChEZWJpYW4gNC40
+LjUtOCkgNC40LjUpIFRodSBBdWcgMzAgMjM6NTg6MDMgQ0VTVCAyMDEyDQooWEVOKSBMYXRl
+c3QgQ2hhbmdlU2V0OiBUdWUgQXVnIDI4IDIyOjQwOjQ1IDIwMTIgKzAxMDAgMjU3ODY6YTBi
+NWY4MTAyYTAwDQooWEVOKSBCb290bG9hZGVyOiBHUlVCIDEuOTgrMjAxMDA4MDQtMTQrc3F1
+ZWV6ZTENCihYRU4pIENvbW1hbmQgbGluZTogZG9tMF9tZW09MTAyNE0gbG9nbHZsPWFsbCBs
+b2dsdmxfZ3Vlc3Q9YWxsIGNvbnNvbGVfdGltZXN0YW1wcyB2Z2E9Z2Z4LTEyODB4MTAyNHgz
+MiBjcHVpZGxlIGNwdWZyZXE9eGVuIG5vcmVib290IGRlYnVnIGxhcGljPWRlYnVnIGFwaWNf
+dmVyYm9zaXR5PWRlYnVnIGFwaWM9ZGVidWcgaW9tbXU9b24sdmVyYm9zZSxkZWJ1ZyBjb20x
+PTM4NDAwLDhuMSBjb25zb2xlPXZnYSxjb20xDQooWEVOKSBWaWRlbyBpbmZvcm1hdGlvbjoN
+CihYRU4pICBWR0EgaXMgZ3JhcGhpY3MgbW9kZSAxMjgweDEwMjQsIDMyIGJwcA0KKFhFTikg
+IFZCRS9EREMgbWV0aG9kczogVjI7IEVESUQgdHJhbnNmZXIgdGltZTogMSBzZWNvbmRzDQoo
+WEVOKSBEaXNjIGluZm9ybWF0aW9uOg0KKFhFTikgIEZvdW5kIDIgTUJSIHNpZ25hdHVyZXMN
+CihYRU4pICBGb3VuZCAyIEVERCBpbmZvcm1hdGlvbiBzdHJ1Y3R1cmVzDQooWEVOKSBYZW4t
+ZTgyMCBSQU0gbWFwOg0KKFhFTikgIDAwMDAwMDAwMDAwMDAwMDAgLSAwMDAwMDAwMDAwMDli
+MDAwICh1c2FibGUpDQooWEVOKSAgMDAwMDAwMDAwMDA5YjAwMCAtIDAwMDAwMDAwMDAwYTAw
+MDAgKHJlc2VydmVkKQ0KKFhFTikgIDAwMDAwMDAwMDAwZTQwMDAgLSAwMDAwMDAwMDAwMTAw
+MDAwIChyZXNlcnZlZCkNCihYRU4pICAwMDAwMDAwMDAwMTAwMDAwIC0gMDAwMDAwMDBhZmU5
+MDAwMCAodXNhYmxlKQ0KKFhFTikgIDAwMDAwMDAwYWZlOTAwMDAgLSAwMDAwMDAwMGFmZTll
+MDAwIChBQ1BJIGRhdGEpDQooWEVOKSAgMDAwMDAwMDBhZmU5ZTAwMCAtIDAwMDAwMDAwYWZl
+ZTAwMDAgKEFDUEkgTlZTKQ0KKFhFTikgIDAwMDAwMDAwYWZlZTAwMDAgLSAwMDAwMDAwMGFm
+ZjAwMDAwIChyZXNlcnZlZCkNCihYRU4pICAwMDAwMDAwMGZmZTAwMDAwIC0gMDAwMDAwMDEw
+MDAwMDAwMCAocmVzZXJ2ZWQpDQooWEVOKSAgMDAwMDAwMDEwMDAwMDAwMCAtIDAwMDAwMDAy
+NTAwMDAwMDAgKHVzYWJsZSkNCihYRU4pIEFDUEk6IFJTRFAgMDAwRkIxMjAsIDAwMTQgKHIw
+IEFDUElBTSkNCihYRU4pIEFDUEk6IFJTRFQgQUZFOTAwMDAsIDAwNDggKHIxIE1TSSAgICBP
+RU1TTElDICAyMDEwMDYyMiBNU0ZUICAgICAgIDk3KQ0KKFhFTikgQUNQSTogRkFDUCBBRkU5
+MDIwMCwgMDA4NCAocjEgNzY0ME1TIEE3NjQwMTAwIDIwMTAwNjIyIE1TRlQgICAgICAgOTcp
+DQooWEVOKSBBQ1BJOiBEU0RUIEFGRTkwNUUwLCA5NDQ5IChyMSAgQTc2NDAgQTc2NDAxMDAg
+ICAgICAxMDAgSU5UTCAyMDA1MTExNykNCihYRU4pIEFDUEk6IEZBQ1MgQUZFOUUwMDAsIDAw
+NDANCihYRU4pIEFDUEk6IEFQSUMgQUZFOTAzOTAsIDAwODggKHIxIDc2NDBNUyBBNzY0MDEw
+MCAyMDEwMDYyMiBNU0ZUICAgICAgIDk3KQ0KKFhFTikgQUNQSTogTUNGRyBBRkU5MDQyMCwg
+MDAzQyAocjEgNzY0ME1TIE9FTU1DRkcgIDIwMTAwNjIyIE1TRlQgICAgICAgOTcpDQooWEVO
+KSBBQ1BJOiBTTElDIEFGRTkwNDYwLCAwMTc2IChyMSBNU0kgICAgT0VNU0xJQyAgMjAxMDA2
+MjIgTVNGVCAgICAgICA5NykNCihYRU4pIEFDUEk6IE9FTUIgQUZFOUUwNDAsIDAwNzIgKHIx
+IDc2NDBNUyBBNzY0MDEwMCAyMDEwMDYyMiBNU0ZUICAgICAgIDk3KQ0KKFhFTikgQUNQSTog
+U1JBVCBBRkU5QTVFMCwgMDEwOCAocjMgQU1EICAgIEZBTV9GXzEwICAgICAgICAyIEFNRCAg
+ICAgICAgIDEpDQooWEVOKSBBQ1BJOiBIUEVUIEFGRTlBNkYwLCAwMDM4IChyMSA3NjQwTVMg
+T0VNSFBFVCAgMjAxMDA2MjIgTVNGVCAgICAgICA5NykNCihYRU4pIEFDUEk6IElWUlMgQUZF
+OUE3MzAsIDAwRjggKHIxICBBTUQgICAgIFJEODkwUyAgIDIwMjAzMSBBTUQgICAgICAgICAw
+KQ0KKFhFTikgQUNQSTogU1NEVCBBRkU5QTgzMCwgMERBNCAocjEgQSBNIEkgIFBPV0VSTk9X
+ICAgICAgICAxIEFNRCAgICAgICAgIDEpDQooWEVOKSBTeXN0ZW0gUkFNOiA4MTkwTUIgKDgz
+ODY3MzJrQikNCihYRU4pIFNSQVQ6IFBYTSAwIC0+IEFQSUMgMCAtPiBOb2RlIDANCihYRU4p
+IFNSQVQ6IFBYTSAwIC0+IEFQSUMgMSAtPiBOb2RlIDANCihYRU4pIFNSQVQ6IFBYTSAwIC0+
+IEFQSUMgMiAtPiBOb2RlIDANCihYRU4pIFNSQVQ6IFBYTSAwIC0+IEFQSUMgMyAtPiBOb2Rl
+IDANCihYRU4pIFNSQVQ6IFBYTSAwIC0+IEFQSUMgNCAtPiBOb2RlIDANCihYRU4pIFNSQVQ6
+IFBYTSAwIC0+IEFQSUMgNSAtPiBOb2RlIDANCihYRU4pIFNSQVQ6IE5vZGUgMCBQWE0gMCAw
+LWEwMDAwDQooWEVOKSBTUkFUOiBOb2RlIDAgUFhNIDAgMTAwMDAwLWIwMDAwMDAwDQooWEVO
+KSBTUkFUOiBOb2RlIDAgUFhNIDAgMTAwMDAwMDAwLTI1MDAwMDAwMA0KKFhFTikgTlVNQTog
+QWxsb2NhdGVkIG1lbW5vZGVtYXAgZnJvbSAyNGRiYWMwMDAgLSAyNGRiYWYwMDANCihYRU4p
+IE5VTUE6IFVzaW5nIDggZm9yIHRoZSBoYXNoIHNoaWZ0Lg0KKFhFTikgRG9tYWluIGhlYXAg
+aW5pdGlhbGlzZWQNCihYRU4pIHZlc2FmYjogZnJhbWVidWZmZXIgYXQgMHhmYjAwMDAwMCwg
+bWFwcGVkIHRvIDB4ZmZmZjgyYzAwMDAwMDAwMCwgdXNpbmcgNjE0NGssIHRvdGFsIDE0MzM2
+aw0KKFhFTikgdmVzYWZiOiBtb2RlIGlzIDEyODB4MTAyNHgzMiwgbGluZWxlbmd0aD01MTIw
+LCBmb250IDh4MTYNCihYRU4pIHZlc2FmYjogVHJ1ZWNvbG9yOiBzaXplPTg6ODo4OjgsIHNo
+aWZ0PTI0OjE2Ojg6MA0KKFhFTikgZm91bmQgU01QIE1QLXRhYmxlIGF0IDAwMGZmNzgwDQoo
+WEVOKSBETUkgcHJlc2VudC4NCihYRU4pIEFQSUMgYm9vdCBzdGF0ZSBpcyAneGFwaWMnDQoo
+WEVOKSBVc2luZyBBUElDIGRyaXZlciBkZWZhdWx0DQooWEVOKSBBQ1BJOiBQTS1UaW1lciBJ
+TyBQb3J0OiAweDgwOA0KKFhFTikgQUNQSTogQUNQSSBTTEVFUCBJTkZPOiBwbTF4X2NudFs4
+MDQsMF0sIHBtMXhfZXZ0WzgwMCwwXQ0KKFhFTikgQUNQSTogICAgICAgICAgICAgICAgICB3
+YWtldXBfdmVjW2FmZTllMDBjXSwgdmVjX3NpemVbMjBdDQooWEVOKSBBQ1BJOiBMb2NhbCBB
+UElDIGFkZHJlc3MgMHhmZWUwMDAwMA0KKFhFTikgQUNQSTogTEFQSUMgKGFjcGlfaWRbMHgw
+MV0gbGFwaWNfaWRbMHgwMF0gZW5hYmxlZCkNCihYRU4pIFByb2Nlc3NvciAjMCAwOjEwIEFQ
+SUMgdmVyc2lvbiAxNg0KKFhFTikgQUNQSTogTEFQSUMgKGFjcGlfaWRbMHgwMl0gbGFwaWNf
+aWRbMHgwMV0gZW5hYmxlZCkNCihYRU4pIFByb2Nlc3NvciAjMSAwOjEwIEFQSUMgdmVyc2lv
+biAxNg0KKFhFTikgQUNQSTogTEFQSUMgKGFjcGlfaWRbMHgwM10gbGFwaWNfaWRbMHgwMl0g
+ZW5hYmxlZCkNCihYRU4pIFByb2Nlc3NvciAjMiAwOjEwIEFQSUMgdmVyc2lvbiAxNg0KKFhF
+TikgQUNQSTogTEFQSUMgKGFjcGlfaWRbMHgwNF0gbGFwaWNfaWRbMHgwM10gZW5hYmxlZCkN
+CihYRU4pIFByb2Nlc3NvciAjMyAwOjEwIEFQSUMgdmVyc2lvbiAxNg0KKFhFTikgQUNQSTog
+TEFQSUMgKGFjcGlfaWRbMHgwNV0gbGFwaWNfaWRbMHgwNF0gZW5hYmxlZCkNCihYRU4pIFBy
+b2Nlc3NvciAjNCAwOjEwIEFQSUMgdmVyc2lvbiAxNg0KKFhFTikgQUNQSTogTEFQSUMgKGFj
+cGlfaWRbMHgwNl0gbGFwaWNfaWRbMHgwNV0gZW5hYmxlZCkNCihYRU4pIFByb2Nlc3NvciAj
+NSAwOjEwIEFQSUMgdmVyc2lvbiAxNg0KKFhFTikgQUNQSTogSU9BUElDIChpZFsweDA2XSBh
+ZGRyZXNzWzB4ZmVjMDAwMDBdIGdzaV9iYXNlWzBdKQ0KKFhFTikgSU9BUElDWzBdOiBhcGlj
+X2lkIDYsIHZlcnNpb24gMzMsIGFkZHJlc3MgMHhmZWMwMDAwMCwgR1NJIDAtMjMNCihYRU4p
+IEFDUEk6IElPQVBJQyAoaWRbMHgwN10gYWRkcmVzc1sweGZlYzIwMDAwXSBnc2lfYmFzZVsy
+NF0pDQooWEVOKSBJT0FQSUNbMV06IGFwaWNfaWQgNywgdmVyc2lvbiAzMywgYWRkcmVzcyAw
+eGZlYzIwMDAwLCBHU0kgMjQtNTUNCihYRU4pIEFDUEk6IElOVF9TUkNfT1ZSIChidXMgMCBi
+dXNfaXJxIDAgZ2xvYmFsX2lycSAyIGRmbCBkZmwpDQooWEVOKSBBQ1BJOiBJTlRfU1JDX09W
+UiAoYnVzIDAgYnVzX2lycSA5IGdsb2JhbF9pcnEgOSBsb3cgbGV2ZWwpDQooWEVOKSBBQ1BJ
+OiBJUlEwIHVzZWQgYnkgb3ZlcnJpZGUuDQooWEVOKSBBQ1BJOiBJUlEyIHVzZWQgYnkgb3Zl
+cnJpZGUuDQooWEVOKSBBQ1BJOiBJUlE5IHVzZWQgYnkgb3ZlcnJpZGUuDQooWEVOKSBFbmFi
+bGluZyBBUElDIG1vZGU6ICBGbGF0LiAgVXNpbmcgMiBJL08gQVBJQ3MNCihYRU4pIEFDUEk6
+IEhQRVQgaWQ6IDB4ODMwMCBiYXNlOiAweGZlZDAwMDAwDQooWEVOKSBUYWJsZSBpcyBub3Qg
+Zm91bmQhDQooWEVOKSBVc2luZyBBQ1BJIChNQURUKSBmb3IgU01QIGNvbmZpZ3VyYXRpb24g
+aW5mb3JtYXRpb24NCihYRU4pIFNNUDogQWxsb3dpbmcgNiBDUFVzICgwIGhvdHBsdWcgQ1BV
+cykNCihYRU4pIG1hcHBlZCBBUElDIHRvIGZmZmY4MmMzZmZkZmUwMDAgKGZlZTAwMDAwKQ0K
+KFhFTikgbWFwcGVkIElPQVBJQyB0byBmZmZmODJjM2ZmZGZkMDAwIChmZWMwMDAwMCkNCihY
+RU4pIG1hcHBlZCBJT0FQSUMgdG8gZmZmZjgyYzNmZmRmYzAwMCAoZmVjMjAwMDApDQooWEVO
+KSBJUlEgbGltaXRzOiA1NiBHU0ksIDExMTIgTVNJL01TSS1YDQooWEVOKSBVc2luZyBzY2hl
+ZHVsZXI6IFNNUCBDcmVkaXQgU2NoZWR1bGVyIChjcmVkaXQpDQooWEVOKSBEZXRlY3RlZCAz
+MjAwLjIyNCBNSHogcHJvY2Vzc29yLg0KKFhFTikgSW5pdGluZyBtZW1vcnkgc2hhcmluZy4N
+CihYRU4pIEFNRCBGYW0xMGggbWFjaGluZSBjaGVjayByZXBvcnRpbmcgZW5hYmxlZA0KKFhF
+TikgUENJOiBNQ0ZHIGNvbmZpZ3VyYXRpb24gMDogYmFzZSBlMDAwMDAwMCBzZWdtZW50IDAw
+MDAgYnVzZXMgMDAgLSBmZg0KKFhFTikgUENJOiBOb3QgdXNpbmcgTUNGRyBmb3Igc2VnbWVu
+dCAwMDAwIGJ1cyAwMC1mZg0KKFhFTikgQU1ELVZpOiBGb3VuZCBNU0kgY2FwYWJpbGl0eSBi
+bG9jayBhdCAweDU0DQooWEVOKSBBTUQtVmk6IEFDUEkgVGFibGU6DQooWEVOKSBBTUQtVmk6
+ICBTaWduYXR1cmUgSVZSUw0KKFhFTikgQU1ELVZpOiAgTGVuZ3RoIDB4ZjgNCihYRU4pIEFN
+RC1WaTogIFJldmlzaW9uIDB4MQ0KKFhFTikgQU1ELVZpOiAgQ2hlY2tTdW0gMHg2ZQ0KKFhF
+TikgQU1ELVZpOiAgT0VNX0lkIEFNRCAgDQooWEVOKSBBTUQtVmk6ICBPRU1fVGFibGVfSWQg
+UkQ4OTBTDQooWEVOKSBBTUQtVmk6ICBPRU1fUmV2aXNpb24gMHgyMDIwMzENCihYRU4pIEFN
+RC1WaTogIENyZWF0b3JfSWQgQU1EIA0KKFhFTikgQU1ELVZpOiAgQ3JlYXRvcl9SZXZpc2lv
+biAweDANCihYRU4pIEFNRC1WaTogSVZSUyBCbG9jazoNCihYRU4pIEFNRC1WaTogIFR5cGUg
+MHgxMA0KKFhFTikgQU1ELVZpOiAgRmxhZ3MgMHgzZQ0KKFhFTikgQU1ELVZpOiAgTGVuZ3Ro
+IDB4YzgNCihYRU4pIEFNRC1WaTogIERldl9JZCAweDINCihYRU4pIEFNRC1WaTogSVZIRCBE
+ZXZpY2UgRW50cnk6DQooWEVOKSBBTUQtVmk6ICBUeXBlIDB4Mw0KKFhFTikgQU1ELVZpOiAg
+RGV2X0lkIDB4MA0KKFhFTikgQU1ELVZpOiAgRmxhZ3MgMHgwDQooWEVOKSBBTUQtVmk6ICBE
+ZXZfSWQgUmFuZ2U6IDB4MCAtPiAweDINCihYRU4pIEFNRC1WaTogSVZIRCBEZXZpY2UgRW50
+cnk6DQooWEVOKSBBTUQtVmk6ICBUeXBlIDB4Mg0KKFhFTikgQU1ELVZpOiAgRGV2X0lkIDB4
+MTANCihYRU4pIEFNRC1WaTogIEZsYWdzIDB4MA0KKFhFTikgQU1ELVZpOiBJVkhEIERldmlj
+ZSBFbnRyeToNCihYRU4pIEFNRC1WaTogIFR5cGUgMHgyDQooWEVOKSBBTUQtVmk6ICBEZXZf
+SWQgMHhiMDANCihYRU4pIEFNRC1WaTogIEZsYWdzIDB4MA0KKFhFTikgQU1ELVZpOiBJVkhE
+IERldmljZSBFbnRyeToNCihYRU4pIEFNRC1WaTogIFR5cGUgMHgyDQooWEVOKSBBTUQtVmk6
+ICBEZXZfSWQgMHgxOA0KKFhFTikgQU1ELVZpOiAgRmxhZ3MgMHgwDQooWEVOKSBBTUQtVmk6
+IElWSEQgRGV2aWNlIEVudHJ5Og0KKFhFTikgQU1ELVZpOiAgVHlwZSAweDMNCihYRU4pIEFN
+RC1WaTogIERldl9JZCAweGEwMA0KKFhFTikgQU1ELVZpOiAgRmxhZ3MgMHgwDQooWEVOKSBB
+TUQtVmk6ICBEZXZfSWQgUmFuZ2U6IDB4YTAwIC0+IDB4YTA3DQooWEVOKSBBTUQtVmk6IElW
+SEQgRGV2aWNlIEVudHJ5Og0KKFhFTikgQU1ELVZpOiAgVHlwZSAweDINCihYRU4pIEFNRC1W
+aTogIERldl9JZCAweDI4DQooWEVOKSBBTUQtVmk6ICBGbGFncyAweDANCihYRU4pIEFNRC1W
+aTogSVZIRCBEZXZpY2UgRW50cnk6DQooWEVOKSBBTUQtVmk6ICBUeXBlIDB4Mg0KKFhFTikg
+QU1ELVZpOiAgRGV2X0lkIDB4OTAwDQooWEVOKSBBTUQtVmk6ICBGbGFncyAweDANCihYRU4p
+IEFNRC1WaTogSVZIRCBEZXZpY2UgRW50cnk6DQooWEVOKSBBTUQtVmk6ICBUeXBlIDB4Mg0K
+KFhFTikgQU1ELVZpOiAgRGV2X0lkIDB4MzANCihYRU4pIEFNRC1WaTogIEZsYWdzIDB4MA0K
+KFhFTikgQU1ELVZpOiBJVkhEIERldmljZSBFbnRyeToNCihYRU4pIEFNRC1WaTogIFR5cGUg
+MHgyDQooWEVOKSBBTUQtVmk6ICBEZXZfSWQgMHg4MDANCihYRU4pIEFNRC1WaTogIEZsYWdz
+IDB4MA0KKFhFTikgQU1ELVZpOiBJVkhEIERldmljZSBFbnRyeToNCihYRU4pIEFNRC1WaTog
+IFR5cGUgMHgyDQooWEVOKSBBTUQtVmk6ICBEZXZfSWQgMHg1MA0KKFhFTikgQU1ELVZpOiAg
+RmxhZ3MgMHgwDQooWEVOKSBBTUQtVmk6IElWSEQgRGV2aWNlIEVudHJ5Og0KKFhFTikgQU1E
+LVZpOiAgVHlwZSAweDINCihYRU4pIEFNRC1WaTogIERldl9JZCAweDcwMA0KKFhFTikgQU1E
+LVZpOiAgRmxhZ3MgMHgwDQooWEVOKSBBTUQtVmk6IElWSEQgRGV2aWNlIEVudHJ5Og0KKFhF
+TikgQU1ELVZpOiAgVHlwZSAweDINCihYRU4pIEFNRC1WaTogIERldl9JZCAweDU4DQooWEVO
+KSBBTUQtVmk6ICBGbGFncyAweDANCihYRU4pIEFNRC1WaTogSVZIRCBEZXZpY2UgRW50cnk6
+DQooWEVOKSBBTUQtVmk6ICBUeXBlIDB4Mw0KKFhFTikgQU1ELVZpOiAgRGV2X0lkIDB4NjAw
+DQooWEVOKSBBTUQtVmk6ICBGbGFncyAweDANCihYRU4pIEFNRC1WaTogIERldl9JZCBSYW5n
+ZTogMHg2MDAgLT4gMHg2MDENCihYRU4pIEFNRC1WaTogSVZIRCBEZXZpY2UgRW50cnk6DQoo
+WEVOKSBBTUQtVmk6ICBUeXBlIDB4Mg0KKFhFTikgQU1ELVZpOiAgRGV2X0lkIDB4NjANCihY
+RU4pIEFNRC1WaTogIEZsYWdzIDB4MA0KKFhFTikgQU1ELVZpOiBJVkhEIERldmljZSBFbnRy
+eToNCihYRU4pIEFNRC1WaTogIFR5cGUgMHgyDQooWEVOKSBBTUQtVmk6ICBEZXZfSWQgMHg1
+MDANCihYRU4pIEFNRC1WaTogIEZsYWdzIDB4MA0KKFhFTikgQU1ELVZpOiBJVkhEIERldmlj
+ZSBFbnRyeToNCihYRU4pIEFNRC1WaTogIFR5cGUgMHgyDQooWEVOKSBBTUQtVmk6ICBEZXZf
+SWQgMHg2OA0KKFhFTikgQU1ELVZpOiAgRmxhZ3MgMHgwDQooWEVOKSBBTUQtVmk6IElWSEQg
+RGV2aWNlIEVudHJ5Og0KKFhFTikgQU1ELVZpOiAgVHlwZSAweDMNCihYRU4pIEFNRC1WaTog
+IERldl9JZCAweDQwMA0KKFhFTikgQU1ELVZpOiAgRmxhZ3MgMHgwDQooWEVOKSBBTUQtVmk6
+ICBEZXZfSWQgUmFuZ2U6IDB4NDAwIC0+IDB4NDA3DQooWEVOKSBBTUQtVmk6IElWSEQgRGV2
+aWNlIEVudHJ5Og0KKFhFTikgQU1ELVZpOiAgVHlwZSAweDINCihYRU4pIEFNRC1WaTogIERl
+dl9JZCAweDg4DQooWEVOKSBBTUQtVmk6ICBGbGFncyAweDANCihYRU4pIEFNRC1WaTogSVZI
+RCBEZXZpY2UgRW50cnk6DQooWEVOKSBBTUQtVmk6ICBUeXBlIDB4Mw0KKFhFTikgQU1ELVZp
+OiAgRGV2X0lkIDB4OTANCihYRU4pIEFNRC1WaTogIEZsYWdzIDB4MA0KKFhFTikgQU1ELVZp
+OiAgRGV2X0lkIFJhbmdlOiAweDkwIC0+IDB4OTINCihYRU4pIEFNRC1WaTogSVZIRCBEZXZp
+Y2UgRW50cnk6DQooWEVOKSBBTUQtVmk6ICBUeXBlIDB4Mw0KKFhFTikgQU1ELVZpOiAgRGV2
+X0lkIDB4OTgNCihYRU4pIEFNRC1WaTogIEZsYWdzIDB4MA0KKFhFTikgQU1ELVZpOiAgRGV2
+X0lkIFJhbmdlOiAweDk4IC0+IDB4OWENCihYRU4pIEFNRC1WaTogSVZIRCBEZXZpY2UgRW50
+cnk6DQooWEVOKSBBTUQtVmk6ICBUeXBlIDB4Mg0KKFhFTikgQU1ELVZpOiAgRGV2X0lkIDB4
+YTANCihYRU4pIEFNRC1WaTogIEZsYWdzIDB4ZDcNCihYRU4pIEFNRC1WaTogSVZIRCBEZXZp
+Y2UgRW50cnk6DQooWEVOKSBBTUQtVmk6ICBUeXBlIDB4Mg0KKFhFTikgQU1ELVZpOiAgRGV2
+X0lkIDB4YTMNCihYRU4pIEFNRC1WaTogIEZsYWdzIDB4MA0KKFhFTikgQU1ELVZpOiBJVkhE
+IERldmljZSBFbnRyeToNCihYRU4pIEFNRC1WaTogIFR5cGUgMHgyDQooWEVOKSBBTUQtVmk6
+ICBEZXZfSWQgMHhhNA0KKFhFTikgQU1ELVZpOiAgRmxhZ3MgMHgwDQooWEVOKSBBTUQtVmk6
+IElWSEQgRGV2aWNlIEVudHJ5Og0KKFhFTikgQU1ELVZpOiAgVHlwZSAweDANCihYRU4pIEFN
+RC1WaTogIERldl9JZCAweDANCihYRU4pIEFNRC1WaTogIEZsYWdzIDB4MA0KKFhFTikgQU1E
+LVZpOiBJVkhEIERldmljZSBFbnRyeToNCihYRU4pIEFNRC1WaTogIFR5cGUgMHg0Mw0KKFhF
+TikgQU1ELVZpOiAgRGV2X0lkIDB4MzAwDQooWEVOKSBBTUQtVmk6ICBGbGFncyAweDANCihY
+RU4pIEFNRC1WaTogIERldl9JZCBSYW5nZTogMHgzMDAgLT4gMHgzZmYNCihYRU4pIEFNRC1W
+aTogIERldl9JZCBBbGlhczogMHhhNA0KKFhFTikgQU1ELVZpOiBJVkhEIERldmljZSBFbnRy
+eToNCihYRU4pIEFNRC1WaTogIFR5cGUgMHgyDQooWEVOKSBBTUQtVmk6ICBEZXZfSWQgMHhh
+NQ0KKFhFTikgQU1ELVZpOiAgRmxhZ3MgMHgwDQooWEVOKSBBTUQtVmk6IElWSEQgRGV2aWNl
+IEVudHJ5Og0KKFhFTikgQU1ELVZpOiAgVHlwZSAweDINCihYRU4pIEFNRC1WaTogIERldl9J
+ZCAweGE4DQooWEVOKSBBTUQtVmk6ICBGbGFncyAweDANCihYRU4pIEFNRC1WaTogSVZIRCBE
+ZXZpY2UgRW50cnk6DQooWEVOKSBBTUQtVmk6ICBUeXBlIDB4Mg0KKFhFTikgQU1ELVZpOiAg
+RGV2X0lkIDB4YTkNCihYRU4pIEFNRC1WaTogIEZsYWdzIDB4MA0KKFhFTikgQU1ELVZpOiBJ
+VkhEIERldmljZSBFbnRyeToNCihYRU4pIEFNRC1WaTogIFR5cGUgMHgyDQooWEVOKSBBTUQt
+Vmk6ICBEZXZfSWQgMHgxMDANCihYRU4pIEFNRC1WaTogIEZsYWdzIDB4MA0KKFhFTikgQU1E
+LVZpOiBJVkhEIERldmljZSBFbnRyeToNCihYRU4pIEFNRC1WaTogIFR5cGUgMHgzDQooWEVO
+KSBBTUQtVmk6ICBEZXZfSWQgMHhiMA0KKFhFTikgQU1ELVZpOiAgRmxhZ3MgMHgwDQooWEVO
+KSBBTUQtVmk6ICBEZXZfSWQgUmFuZ2U6IDB4YjAgLT4gMHhiMg0KKFhFTikgQU1ELVZpOiBJ
+VkhEIERldmljZSBFbnRyeToNCihYRU4pIEFNRC1WaTogIFR5cGUgMHgwDQooWEVOKSBBTUQt
+Vmk6ICBEZXZfSWQgMHgwDQooWEVOKSBBTUQtVmk6ICBGbGFncyAweDANCihYRU4pIEFNRC1W
+aTogSVZIRCBEZXZpY2UgRW50cnk6DQooWEVOKSBBTUQtVmk6ICBUeXBlIDB4NDgNCihYRU4p
+IEFNRC1WaTogIERldl9JZCAweDANCihYRU4pIEFNRC1WaTogIEZsYWdzIDB4ZDcNCihYRU4p
+IEFNRC1WaTogSVZIRCBEZXZpY2UgRW50cnk6DQooWEVOKSBBTUQtVmk6ICBUeXBlIDB4NDgN
+CihYRU4pIEFNRC1WaTogIERldl9JZCAweDANCihYRU4pIEFNRC1WaTogIEZsYWdzIDB4MA0K
+KFhFTikgQU1ELVZpOiBJT01NVSAwIEVuYWJsZWQuDQooWEVOKSBBTUQtVmk6IEVuYWJsaW5n
+IGdsb2JhbCB2ZWN0b3IgbWFwDQooWEVOKSBJL08gdmlydHVhbGlzYXRpb24gZW5hYmxlZA0K
+KFhFTikgIC0gRG9tMCBtb2RlOiBSZWxheGVkDQooWEVOKSBHZXR0aW5nIFZFUlNJT046IDgw
+MDUwMDEwDQooWEVOKSBHZXR0aW5nIFZFUlNJT046IDgwMDUwMDEwDQooWEVOKSBHZXR0aW5n
+IElEOiAwDQooWEVOKSBHZXR0aW5nIExWVDA6IDcwMA0KKFhFTikgR2V0dGluZyBMVlQxOiA0
+MDANCihYRU4pIGVuYWJsZWQgRXh0SU5UIG9uIENQVSMwDQooWEVOKSBFU1IgdmFsdWUgYmVm
+b3JlIGVuYWJsaW5nIHZlY3RvcjogMHgwMDAwMDAwNCAgYWZ0ZXI6IDB4MDAwMDAwMDANCihY
+RU4pIEVOQUJMSU5HIElPLUFQSUMgSVJRcw0KKFhFTikgIC0+IFVzaW5nIG5ldyBBQ0sgbWV0
+aG9kDQooWEVOKSBpbml0IElPX0FQSUMgSVJRcw0KKFhFTikgIElPLUFQSUMgKGFwaWNpZC1w
+aW4pIDYtMCwgNi0xNiwgNi0xNywgNi0xOCwgNi0xOSwgNi0yMCwgNi0yMSwgNi0yMiwgNi0y
+MywgNy0wLCA3LTEsIDctMiwgNy0zLCA3LTQsIDctNSwgNy02LCA3LTcsIDctOCwgNy05LCA3
+LTEwLCA3LTExLCA3LTEyLCA3LTEzLCA3LTE0LCA3LTE1LCA3LTE2LCA3LTE3LCA3LTE4LCA3
+LTE5LCA3LTIwLCA3LTIxLCA3LTIyLCA3LTIzLCA3LTI0LCA3LTI1LCA3LTI2LCA3LTI3LCA3
+LTI4LCA3LTI5LCA3LTMwLCA3LTMxIG5vdCBjb25uZWN0ZWQuDQooWEVOKSAuLlRJTUVSOiB2
+ZWN0b3I9MHhGMCBhcGljMT0wIHBpbjE9MiBhcGljMj0tMSBwaW4yPS0xDQooWEVOKSBudW1i
+ZXIgb2YgTVAgSVJRIHNvdXJjZXM6IDE1Lg0KKFhFTikgbnVtYmVyIG9mIElPLUFQSUMgIzYg
+cmVnaXN0ZXJzOiAyNC4NCihYRU4pIG51bWJlciBvZiBJTy1BUElDICM3IHJlZ2lzdGVyczog
+MzIuDQooWEVOKSB0ZXN0aW5nIHRoZSBJTyBBUElDLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4N
+CihYRU4pIElPIEFQSUMgIzYuLi4uLi4NCihYRU4pIC4uLi4gcmVnaXN0ZXIgIzAwOiAwNjAw
+MDAwMA0KKFhFTikgLi4uLi4uLiAgICA6IHBoeXNpY2FsIEFQSUMgaWQ6IDA2DQooWEVOKSAu
+Li4uLi4uICAgIDogRGVsaXZlcnkgVHlwZTogMA0KKFhFTikgLi4uLi4uLiAgICA6IExUUyAg
+ICAgICAgICA6IDANCihYRU4pIC4uLi4gcmVnaXN0ZXIgIzAxOiAwMDE3ODAyMQ0KKFhFTikg
+Li4uLi4uLiAgICAgOiBtYXggcmVkaXJlY3Rpb24gZW50cmllczogMDAxNw0KKFhFTikgLi4u
+Li4uLiAgICAgOiBQUlEgaW1wbGVtZW50ZWQ6IDENCihYRU4pIC4uLi4uLi4gICAgIDogSU8g
+QVBJQyB2ZXJzaW9uOiAwMDIxDQooWEVOKSAuLi4uIHJlZ2lzdGVyICMwMjogMDYwMDAwMDAN
+CihYRU4pIC4uLi4uLi4gICAgIDogYXJiaXRyYXRpb246IDA2DQooWEVOKSAuLi4uIHJlZ2lz
+dGVyICMwMzogMDcwMDAwMDANCihYRU4pIC4uLi4uLi4gICAgIDogQm9vdCBEVCAgICA6IDAN
+CihYRU4pIC4uLi4gSVJRIHJlZGlyZWN0aW9uIHRhYmxlOg0KKFhFTikgIE5SIExvZyBQaHkg
+TWFzayBUcmlnIElSUiBQb2wgU3RhdCBEZXN0IERlbGkgVmVjdDogICANCihYRU4pICAwMCAw
+MDAgMDAgIDEgICAgMCAgICAwICAgMCAgIDAgICAgMCAgICAwICAgIDAwDQooWEVOKSAgMDEg
+MDAxIDAxICAwICAgIDAgICAgMCAgIDAgICAwICAgIDEgICAgMSAgICAzMA0KKFhFTikgIDAy
+IDAwMSAwMSAgMCAgICAwICAgIDAgICAwICAgMCAgICAxICAgIDEgICAgRjANCihYRU4pICAw
+MyAwMDEgMDEgIDAgICAgMCAgICAwICAgMCAgIDAgICAgMSAgICAxICAgIDM4DQooWEVOKSAg
+MDQgMDAxIDAxICAwICAgIDAgICAgMCAgIDAgICAwICAgIDEgICAgMSAgICBGMQ0KKFhFTikg
+IDA1IDAwMSAwMSAgMCAgICAwICAgIDAgICAwICAgMCAgICAxICAgIDEgICAgNDANCihYRU4p
+ICAwNiAwMDEgMDEgIDAgICAgMCAgICAwICAgMCAgIDAgICAgMSAgICAxICAgIDQ4DQooWEVO
+KSAgMDcgMDAxIDAxICAwICAgIDAgICAgMCAgIDAgICAwICAgIDEgICAgMSAgICA1MA0KKFhF
+TikgIDA4IDAwMSAwMSAgMCAgICAwICAgIDAgICAwICAgMCAgICAxICAgIDEgICAgNTgNCihY
+RU4pICAwOSAwMDEgMDEgIDEgICAgMSAgICAwICAgMSAgIDAgICAgMSAgICAxICAgIDYwDQoo
+WEVOKSAgMGEgMDAxIDAxICAwICAgIDAgICAgMCAgIDAgICAwICAgIDEgICAgMSAgICA2OA0K
+KFhFTikgIDBiIDAwMSAwMSAgMCAgICAwICAgIDAgICAwICAgMCAgICAxICAgIDEgICAgNzAN
+CihYRU4pICAwYyAwMDEgMDEgIDAgICAgMCAgICAwICAgMCAgIDAgICAgMSAgICAxICAgIDc4
+DQooWEVOKSAgMGQgMDAxIDAxICAwICAgIDAgICAgMCAgIDAgICAwICAgIDEgICAgMSAgICA4
+OA0KKFhFTikgIDBlIDAwMSAwMSAgMCAgICAwICAgIDAgICAwICAgMCAgICAxICAgIDEgICAg
+OTANCihYRU4pICAwZiAwMDEgMDEgIDAgICAgMCAgICAwICAgMCAgIDAgICAgMSAgICAxICAg
+IDk4DQooWEVOKSAgMTAgMDAwIDAwICAxICAgIDAgICAgMCAgIDAgICAwICAgIDAgICAgMCAg
+ICAwMA0KKFhFTikgIDExIDAwMCAwMCAgMSAgICAwICAgIDAgICAwICAgMCAgICAwICAgIDAg
+ICAgMDANCihYRU4pICAxMiAwMDAgMDAgIDEgICAgMCAgICAwICAgMCAgIDAgICAgMCAgICAw
+ICAgIDAwDQooWEVOKSAgMTMgMDAwIDAwICAxICAgIDAgICAgMCAgIDAgICAwICAgIDAgICAg
+MCAgICAwMA0KKFhFTikgIDE0IDAwMCAwMCAgMSAgICAwICAgIDAgICAwICAgMCAgICAwICAg
+IDAgICAgMDANCihYRU4pICAxNSAwMDAgMDAgIDEgICAgMCAgICAwICAgMCAgIDAgICAgMCAg
+ICAwICAgIDAwDQooWEVOKSAgMTYgMDAwIDAwICAxICAgIDAgICAgMCAgIDAgICAwICAgIDAg
+ICAgMCAgICAwMA0KKFhFTikgIDE3IDAwMCAwMCAgMSAgICAwICAgIDAgICAwICAgMCAgICAw
+ICAgIDAgICAgMDANCihYRU4pIElPIEFQSUMgIzcuLi4uLi4NCihYRU4pIC4uLi4gcmVnaXN0
+ZXIgIzAwOiAwNzAwMDAwMA0KKFhFTikgLi4uLi4uLiAgICA6IHBoeXNpY2FsIEFQSUMgaWQ6
+IDA3DQooWEVOKSAuLi4uLi4uICAgIDogRGVsaXZlcnkgVHlwZTogMA0KKFhFTikgLi4uLi4u
+LiAgICA6IExUUyAgICAgICAgICA6IDANCihYRU4pIC4uLi4gcmVnaXN0ZXIgIzAxOiAwMDFG
+ODAyMQ0KKFhFTikgLi4uLi4uLiAgICAgOiBtYXggcmVkaXJlY3Rpb24gZW50cmllczogMDAx
+Rg0KKFhFTikgLi4uLi4uLiAgICAgOiBQUlEgaW1wbGVtZW50ZWQ6IDENCihYRU4pIC4uLi4u
+Li4gICAgIDogSU8gQVBJQyB2ZXJzaW9uOiAwMDIxDQooWEVOKSAuLi4uIHJlZ2lzdGVyICMw
+MjogMDAwMDAwMDANCihYRU4pIC4uLi4uLi4gICAgIDogYXJiaXRyYXRpb246IDAwDQooWEVO
+KSAuLi4uIElSUSByZWRpcmVjdGlvbiB0YWJsZToNCihYRU4pICBOUiBMb2cgUGh5IE1hc2sg
+VHJpZyBJUlIgUG9sIFN0YXQgRGVzdCBEZWxpIFZlY3Q6ICAgDQooWEVOKSAgMDAgMDAwIDAw
+ICAxICAgIDAgICAgMCAgIDAgICAwICAgIDAgICAgMCAgICAwMA0KKFhFTikgIDAxIDAwMCAw
+MCAgMSAgICAwICAgIDAgICAwICAgMCAgICAwICAgIDAgICAgMDANCihYRU4pICAwMiAwMDAg
+MDAgIDEgICAgMCAgICAwICAgMCAgIDAgICAgMCAgICAwICAgIDAwDQooWEVOKSAgMDMgMDAw
+IDAwICAxICAgIDAgICAgMCAgIDAgICAwICAgIDAgICAgMCAgICAwMA0KKFhFTikgIDA0IDAw
+MCAwMCAgMSAgICAwICAgIDAgICAwICAgMCAgICAwICAgIDAgICAgMDANCihYRU4pICAwNSAw
+MDAgMDAgIDEgICAgMCAgICAwICAgMCAgIDAgICAgMCAgICAwICAgIDAwDQooWEVOKSAgMDYg
+MDAwIDAwICAxICAgIDAgICAgMCAgIDAgICAwICAgIDAgICAgMCAgICAwMA0KKFhFTikgIDA3
+IDAwMCAwMCAgMSAgICAwICAgIDAgICAwICAgMCAgICAwICAgIDAgICAgMDANCihYRU4pICAw
+OCAwMDAgMDAgIDEgICAgMCAgICAwICAgMCAgIDAgICAgMCAgICAwICAgIDAwDQooWEVOKSAg
+MDkgMDAwIDAwICAxICAgIDAgICAgMCAgIDAgICAwICAgIDAgICAgMCAgICAwMA0KKFhFTikg
+IDBhIDAwMCAwMCAgMSAgICAwICAgIDAgICAwICAgMCAgICAwICAgIDAgICAgMDANCihYRU4p
+ICAwYiAwMDAgMDAgIDEgICAgMCAgICAwICAgMCAgIDAgICAgMCAgICAwICAgIDAwDQooWEVO
+KSAgMGMgMDAwIDAwICAxICAgIDAgICAgMCAgIDAgICAwICAgIDAgICAgMCAgICAwMA0KKFhF
+TikgIDBkIDAwMCAwMCAgMSAgICAwICAgIDAgICAwICAgMCAgICAwICAgIDAgICAgMDANCihY
+RU4pICAwZSAwMDAgMDAgIDEgICAgMCAgICAwICAgMCAgIDAgICAgMCAgICAwICAgIDAwDQoo
+WEVOKSAgMGYgMDAwIDAwICAxICAgIDAgICAgMCAgIDAgICAwICAgIDAgICAgMCAgICAwMA0K
+KFhFTikgIDEwIDAwMCAwMCAgMSAgICAwICAgIDAgICAwICAgMCAgICAwICAgIDAgICAgMDAN
+CihYRU4pICAxMSAwMDAgMDAgIDEgICAgMCAgICAwICAgMCAgIDAgICAgMCAgICAwICAgIDAw
+DQooWEVOKSAgMTIgMDAwIDAwICAxICAgIDAgICAgMCAgIDAgICAwICAgIDAgICAgMCAgICAw
+MA0KKFhFTikgIDEzIDAwMCAwMCAgMSAgICAwICAgIDAgICAwICAgMCAgICAwICAgIDAgICAg
+MDANCihYRU4pICAxNCAwMDAgMDAgIDEgICAgMCAgICAwICAgMCAgIDAgICAgMCAgICAwICAg
+IDAwDQooWEVOKSAgMTUgMDAwIDAwICAxICAgIDAgICAgMCAgIDAgICAwICAgIDAgICAgMCAg
+ICAwMA0KKFhFTikgIDE2IDAwMCAwMCAgMSAgICAwICAgIDAgICAwICAgMCAgICAwICAgIDAg
+ICAgMDANCihYRU4pICAxNyAwMDAgMDAgIDEgICAgMCAgICAwICAgMCAgIDAgICAgMCAgICAw
+ICAgIDAwDQooWEVOKSAgMTggMDAwIDAwICAxICAgIDAgICAgMCAgIDAgICAwICAgIDAgICAg
+MCAgICAwMA0KKFhFTikgIDE5IDAwMCAwMCAgMSAgICAwICAgIDAgICAwICAgMCAgICAwICAg
+IDAgICAgMDANCihYRU4pICAxYSAwMDAgMDAgIDEgICAgMCAgICAwICAgMCAgIDAgICAgMCAg
+ICAwICAgIDAwDQooWEVOKSAgMWIgMDAwIDAwICAxICAgIDAgICAgMCAgIDAgICAwICAgIDAg
+ICAgMCAgICAwMA0KKFhFTikgIDFjIDAwMCAwMCAgMSAgICAwICAgIDAgICAwICAgMCAgICAw
+ICAgIDAgICAgMDANCihYRU4pICAxZCAwMDAgMDAgIDEgICAgMCAgICAwICAgMCAgIDAgICAg
+MCAgICAwICAgIDAwDQooWEVOKSAgMWUgMDAwIDAwICAxICAgIDAgICAgMCAgIDAgICAwICAg
+IDAgICAgMCAgICAwMA0KKFhFTikgIDFmIDAwMCAwMCAgMSAgICAwICAgIDAgICAwICAgMCAg
+ICAwICAgIDAgICAgMDANCihYRU4pIFVzaW5nIHZlY3Rvci1iYXNlZCBpbmRleGluZw0KKFhF
+TikgSVJRIHRvIHBpbiBtYXBwaW5nczoNCihYRU4pIElSUTI0MCAtPiAwOjINCihYRU4pIElS
+UTQ4IC0+IDA6MQ0KKFhFTikgSVJRNTYgLT4gMDozDQooWEVOKSBJUlEyNDEgLT4gMDo0DQoo
+WEVOKSBJUlE2NCAtPiAwOjUNCihYRU4pIElSUTcyIC0+IDA6Ng0KKFhFTikgSVJRODAgLT4g
+MDo3DQooWEVOKSBJUlE4OCAtPiAwOjgNCihYRU4pIElSUTk2IC0+IDA6OQ0KKFhFTikgSVJR
+MTA0IC0+IDA6MTANCihYRU4pIElSUTExMiAtPiAwOjExDQooWEVOKSBJUlExMjAgLT4gMDox
+Mg0KKFhFTikgSVJRMTM2IC0+IDA6MTMNCihYRU4pIElSUTE0NCAtPiAwOjE0DQooWEVOKSBJ
+UlExNTIgLT4gMDoxNQ0KKFhFTikgLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
+Li4uIGRvbmUuDQooWEVOKSBVc2luZyBsb2NhbCBBUElDIHRpbWVyIGludGVycnVwdHMuDQoo
+WEVOKSBjYWxpYnJhdGluZyBBUElDIHRpbWVyIC4uLg0KKFhFTikgLi4uLi4gQ1BVIGNsb2Nr
+IHNwZWVkIGlzIDMyMDAuMTI1OCBNSHouDQooWEVOKSAuLi4uLiBob3N0IGJ1cyBjbG9jayBz
+cGVlZCBpcyAyMDAuMDA3OCBNSHouDQooWEVOKSAuLi4uLiBidXNfc2NhbGUgPSAweDAwMDBD
+Q0Q3DQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1MF0gUGxhdGZvcm0gdGltZXIgaXMgMTQu
+MzE4TUh6IEhQRVQNCihYRU4pIFsyMDEyLTA5LTAxIDIyOjI2OjUwXSBBbGxvY2F0ZWQgY29u
+c29sZSByaW5nIG9mIDY0IEtpQi4NCihYRU4pIFsyMDEyLTA5LTAxIDIyOjI2OjUwXSBIVk06
+IEFTSURzIGVuYWJsZWQuDQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1MF0gU1ZNOiBTdXBw
+b3J0ZWQgYWR2YW5jZWQgZmVhdHVyZXM6DQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1MF0g
+IC0gTmVzdGVkIFBhZ2UgVGFibGVzIChOUFQpDQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1
+MF0gIC0gTGFzdCBCcmFuY2ggUmVjb3JkIChMQlIpIFZpcnR1YWxpc2F0aW9uDQooWEVOKSBb
+MjAxMi0wOS0wMSAyMjoyNjo1MF0gIC0gTmV4dC1SSVAgU2F2ZWQgb24gI1ZNRVhJVA0KKFhF
+TikgWzIwMTItMDktMDEgMjI6MjY6NTBdICAtIFBhdXNlLUludGVyY2VwdCBGaWx0ZXINCihY
+RU4pIFsyMDEyLTA5LTAxIDIyOjI2OjUwXSBIVk06IFNWTSBlbmFibGVkDQooWEVOKSBbMjAx
+Mi0wOS0wMSAyMjoyNjo1MF0gSFZNOiBIYXJkd2FyZSBBc3Npc3RlZCBQYWdpbmcgKEhBUCkg
+ZGV0ZWN0ZWQNCihYRU4pIFsyMDEyLTA5LTAxIDIyOjI2OjUwXSBIVk06IEhBUCBwYWdlIHNp
+emVzOiA0a0IsIDJNQiwgMUdCDQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo0OV0gbWFza2Vk
+IEV4dElOVCBvbiBDUFUjMQ0KKFhFTikgWzIwMTItMDktMDEgMjI6MjY6NTBdIG1pY3JvY29k
+ZTogY29sbGVjdF9jcHVfaW5mbzogcGF0Y2hfaWQ9MHgxMDAwMGJmDQooWEVOKSBbMjAxMi0w
+OS0wMSAyMjoyNjo0OV0gbWFza2VkIEV4dElOVCBvbiBDUFUjMg0KKFhFTikgWzIwMTItMDkt
+MDEgMjI6MjY6NTBdIG1pY3JvY29kZTogY29sbGVjdF9jcHVfaW5mbzogcGF0Y2hfaWQ9MHgx
+MDAwMGJmDQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo0OV0gbWFza2VkIEV4dElOVCBvbiBD
+UFUjMw0KKFhFTikgWzIwMTItMDktMDEgMjI6MjY6NTBdIG1pY3JvY29kZTogY29sbGVjdF9j
+cHVfaW5mbzogcGF0Y2hfaWQ9MHgxMDAwMGJmDQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo0
+OV0gbWFza2VkIEV4dElOVCBvbiBDUFUjNA0KKFhFTikgWzIwMTItMDktMDEgMjI6MjY6NTBd
+IG1pY3JvY29kZTogY29sbGVjdF9jcHVfaW5mbzogcGF0Y2hfaWQ9MHgxMDAwMGJmDQooWEVO
+KSBbMjAxMi0wOS0wMSAyMjoyNjo0OV0gbWFza2VkIEV4dElOVCBvbiBDUFUjNQ0KKFhFTikg
+WzIwMTItMDktMDEgMjI6MjY6NTBdIEJyb3VnaHQgdXAgNiBDUFVzDQooWEVOKSBbMjAxMi0w
+OS0wMSAyMjoyNjo1MF0gbWljcm9jb2RlOiBjb2xsZWN0X2NwdV9pbmZvOiBwYXRjaF9pZD0w
+eDEwMDAwYmYNCihYRU4pIFsyMDEyLTA5LTAxIDIyOjI2OjUwXSBIUEVUJ3MgTVNJIG1vZGUg
+aGFzbid0IGJlZW4gc3VwcG9ydGVkIHdoZW4gSW50ZXJydXB0IFJlbWFwcGluZyBpcyBlbmFi
+bGVkLg0KKFhFTikgWzIwMTItMDktMDEgMjI6MjY6NTBdIEFDUEkgc2xlZXAgbW9kZXM6IFMz
+DQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1MF0gTUNBOiBVc2UgaHcgdGhyZXNob2xkaW5n
+IHRvIGFkanVzdCBwb2xsaW5nIGZyZXF1ZW5jeQ0KKFhFTikgWzIwMTItMDktMDEgMjI6MjY6
+NTBdIG1jaGVja19wb2xsOiBNYWNoaW5lIGNoZWNrIHBvbGxpbmcgdGltZXIgc3RhcnRlZC4N
+CihYRU4pIFsyMDEyLTA5LTAxIDIyOjI2OjUwXSBYZW5vcHJvZmlsZTogRmFpbGVkIHRvIHNl
+dHVwIElCUyBMVlQgb2Zmc2V0LCBJQlNDVEwgPSAweGZmZmZmZmZmDQooWEVOKSBbMjAxMi0w
+OS0wMSAyMjoyNjo1MF0gKioqIExPQURJTkcgRE9NQUlOIDAgKioqDQooWEVOKSBbMjAxMi0w
+OS0wMSAyMjoyNjo1MF0gZWxmX3BhcnNlX2JpbmFyeTogcGhkcjogcGFkZHI9MHgxMDAwMDAw
+IG1lbXN6PTB4YjY4MDAwDQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1MF0gZWxmX3BhcnNl
+X2JpbmFyeTogcGhkcjogcGFkZHI9MHgxYzAwMDAwIG1lbXN6PTB4ZDgwZTgNCihYRU4pIFsy
+MDEyLTA5LTAxIDIyOjI2OjUwXSBlbGZfcGFyc2VfYmluYXJ5OiBwaGRyOiBwYWRkcj0weDFj
+ZDkwMDAgbWVtc3o9MHgxM2MwMA0KKFhFTikgWzIwMTItMDktMDEgMjI6MjY6NTBdIGVsZl9w
+YXJzZV9iaW5hcnk6IHBoZHI6IHBhZGRyPTB4MWNlZDAwMCBtZW1zej0weGRlNDAwMA0KKFhF
+TikgWzIwMTItMDktMDEgMjI6MjY6NTBdIGVsZl9wYXJzZV9iaW5hcnk6IG1lbW9yeTogMHgx
+MDAwMDAwIC0+IDB4MmFkMTAwMA0KKFhFTikgWzIwMTItMDktMDEgMjI6MjY6NTBdIGVsZl94
+ZW5fcGFyc2Vfbm90ZTogR1VFU1RfT1MgPSAibGludXgiDQooWEVOKSBbMjAxMi0wOS0wMSAy
+MjoyNjo1MF0gZWxmX3hlbl9wYXJzZV9ub3RlOiBHVUVTVF9WRVJTSU9OID0gIjIuNiINCihY
+RU4pIFsyMDEyLTA5LTAxIDIyOjI2OjUwXSBlbGZfeGVuX3BhcnNlX25vdGU6IFhFTl9WRVJT
+SU9OID0gInhlbi0zLjAiDQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1MF0gZWxmX3hlbl9w
+YXJzZV9ub3RlOiBWSVJUX0JBU0UgPSAweGZmZmZmZmZmODAwMDAwMDANCihYRU4pIFsyMDEy
+LTA5LTAxIDIyOjI2OjUwXSBlbGZfeGVuX3BhcnNlX25vdGU6IEVOVFJZID0gMHhmZmZmZmZm
+ZjgxY2VkMjEwDQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1MV0gZWxmX3hlbl9wYXJzZV9u
+b3RlOiBIWVBFUkNBTExfUEFHRSA9IDB4ZmZmZmZmZmY4MTAwMTAwMA0KKFhFTikgWzIwMTIt
+MDktMDEgMjI6MjY6NTFdIGVsZl94ZW5fcGFyc2Vfbm90ZTogRkVBVFVSRVMgPSAiIXdyaXRh
+YmxlX3BhZ2VfdGFibGVzfHBhZV9wZ2Rpcl9hYm92ZV80Z2IiDQooWEVOKSBbMjAxMi0wOS0w
+MSAyMjoyNjo1MV0gZWxmX3hlbl9wYXJzZV9ub3RlOiBQQUVfTU9ERSA9ICJ5ZXMiDQooWEVO
+KSBbMjAxMi0wOS0wMSAyMjoyNjo1MV0gZWxmX3hlbl9wYXJzZV9ub3RlOiBMT0FERVIgPSAi
+Z2VuZXJpYyINCihYRU4pIFsyMDEyLTA5LTAxIDIyOjI2OjUxXSBlbGZfeGVuX3BhcnNlX25v
+dGU6IHVua25vd24geGVuIGVsZiBub3RlICgweGQpDQooWEVOKSBbMjAxMi0wOS0wMSAyMjoy
+Njo1MV0gZWxmX3hlbl9wYXJzZV9ub3RlOiBTVVNQRU5EX0NBTkNFTCA9IDB4MQ0KKFhFTikg
+WzIwMTItMDktMDEgMjI6MjY6NTFdIGVsZl94ZW5fcGFyc2Vfbm90ZTogSFZfU1RBUlRfTE9X
+ID0gMHhmZmZmODAwMDAwMDAwMDAwDQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1MV0gZWxm
+X3hlbl9wYXJzZV9ub3RlOiBQQUREUl9PRkZTRVQgPSAweDANCihYRU4pIFsyMDEyLTA5LTAx
+IDIyOjI2OjUxXSBlbGZfeGVuX2FkZHJfY2FsY19jaGVjazogYWRkcmVzc2VzOg0KKFhFTikg
+WzIwMTItMDktMDEgMjI6MjY6NTFdICAgICB2aXJ0X2Jhc2UgICAgICAgID0gMHhmZmZmZmZm
+ZjgwMDAwMDAwDQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1MV0gICAgIGVsZl9wYWRkcl9v
+ZmZzZXQgPSAweDANCihYRU4pIFsyMDEyLTA5LTAxIDIyOjI2OjUxXSAgICAgdmlydF9vZmZz
+ZXQgICAgICA9IDB4ZmZmZmZmZmY4MDAwMDAwMA0KKFhFTikgWzIwMTItMDktMDEgMjI6MjY6
+NTFdICAgICB2aXJ0X2tzdGFydCAgICAgID0gMHhmZmZmZmZmZjgxMDAwMDAwDQooWEVOKSBb
+MjAxMi0wOS0wMSAyMjoyNjo1MV0gICAgIHZpcnRfa2VuZCAgICAgICAgPSAweGZmZmZmZmZm
+ODJhZDEwMDANCihYRU4pIFsyMDEyLTA5LTAxIDIyOjI2OjUxXSAgICAgdmlydF9lbnRyeSAg
+ICAgICA9IDB4ZmZmZmZmZmY4MWNlZDIxMA0KKFhFTikgWzIwMTItMDktMDEgMjI6MjY6NTFd
+ICAgICBwMm1fYmFzZSAgICAgICAgID0gMHhmZmZmZmZmZmZmZmZmZmZmDQooWEVOKSBbMjAx
+Mi0wOS0wMSAyMjoyNjo1MV0gIFhlbiAga2VybmVsOiA2NC1iaXQsIGxzYiwgY29tcGF0MzIN
+CihYRU4pIFsyMDEyLTA5LTAxIDIyOjI2OjUxXSAgRG9tMCBrZXJuZWw6IDY0LWJpdCwgUEFF
+LCBsc2IsIHBhZGRyIDB4MTAwMDAwMCAtPiAweDJhZDEwMDANCihYRU4pIFsyMDEyLTA5LTAx
+IDIyOjI2OjUxXSBQSFlTSUNBTCBNRU1PUlkgQVJSQU5HRU1FTlQ6DQooWEVOKSBbMjAxMi0w
+OS0wMSAyMjoyNjo1MV0gIERvbTAgYWxsb2MuOiAgIDAwMDAwMDAyNDAwMDAwMDAtPjAwMDAw
+MDAyNDQwMDAwMDAgKDI0MjQyOCBwYWdlcyB0byBiZSBhbGxvY2F0ZWQpDQooWEVOKSBbMjAx
+Mi0wOS0wMSAyMjoyNjo1MV0gIEluaXQuIHJhbWRpc2s6IDAwMDAwMDAyNGYyZmMwMDAtPjAw
+MDAwMDAyNGZmZmY4MDANCihYRU4pIFsyMDEyLTA5LTAxIDIyOjI2OjUxXSBWSVJUVUFMIE1F
+TU9SWSBBUlJBTkdFTUVOVDoNCihYRU4pIFsyMDEyLTA5LTAxIDIyOjI2OjUxXSAgTG9hZGVk
+IGtlcm5lbDogZmZmZmZmZmY4MTAwMDAwMC0+ZmZmZmZmZmY4MmFkMTAwMA0KKFhFTikgWzIw
+MTItMDktMDEgMjI6MjY6NTFdICBJbml0LiByYW1kaXNrOiBmZmZmZmZmZjgyYWQxMDAwLT5m
+ZmZmZmZmZjgzN2Q0ODAwDQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1MV0gIFBoeXMtTWFj
+aCBtYXA6IGZmZmZmZmZmODM3ZDUwMDAtPmZmZmZmZmZmODM5ZDUwMDANCihYRU4pIFsyMDEy
+LTA5LTAxIDIyOjI2OjUxXSAgU3RhcnQgaW5mbzogICAgZmZmZmZmZmY4MzlkNTAwMC0+ZmZm
+ZmZmZmY4MzlkNTRiNA0KKFhFTikgWzIwMTItMDktMDEgMjI6MjY6NTFdICBQYWdlIHRhYmxl
+czogICBmZmZmZmZmZjgzOWQ2MDAwLT5mZmZmZmZmZjgzOWY3MDAwDQooWEVOKSBbMjAxMi0w
+OS0wMSAyMjoyNjo1MV0gIEJvb3Qgc3RhY2s6ICAgIGZmZmZmZmZmODM5ZjcwMDAtPmZmZmZm
+ZmZmODM5ZjgwMDANCihYRU4pIFsyMDEyLTA5LTAxIDIyOjI2OjUxXSAgVE9UQUw6ICAgICAg
+ICAgZmZmZmZmZmY4MDAwMDAwMC0+ZmZmZmZmZmY4M2MwMDAwMA0KKFhFTikgWzIwMTItMDkt
+MDEgMjI6MjY6NTFdICBFTlRSWSBBRERSRVNTOiBmZmZmZmZmZjgxY2VkMjEwDQooWEVOKSBb
+MjAxMi0wOS0wMSAyMjoyNjo1MV0gRG9tMCBoYXMgbWF4aW11bSA2IFZDUFVzDQooWEVOKSBb
+MjAxMi0wOS0wMSAyMjoyNjo1MV0gZWxmX2xvYWRfYmluYXJ5OiBwaGRyIDAgYXQgMHhmZmZm
+ZmZmZjgxMDAwMDAwIC0+IDB4ZmZmZmZmZmY4MWI2ODAwMA0KKFhFTikgWzIwMTItMDktMDEg
+MjI6MjY6NTFdIGVsZl9sb2FkX2JpbmFyeTogcGhkciAxIGF0IDB4ZmZmZmZmZmY4MWMwMDAw
+MCAtPiAweGZmZmZmZmZmODFjZDgwZTgNCihYRU4pIFsyMDEyLTA5LTAxIDIyOjI2OjUxXSBl
+bGZfbG9hZF9iaW5hcnk6IHBoZHIgMiBhdCAweGZmZmZmZmZmODFjZDkwMDAgLT4gMHhmZmZm
+ZmZmZjgxY2VjYzAwDQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1MV0gZWxmX2xvYWRfYmlu
+YXJ5OiBwaGRyIDMgYXQgMHhmZmZmZmZmZjgxY2VkMDAwIC0+IDB4ZmZmZmZmZmY4MWQ4NTAw
+MA0KKFhFTikgWzIwMTItMDktMDEgMjI6MjY6NTFdIEFNRC1WaTogU2V0dXAgSS9PIHBhZ2Ug
+dGFibGU6IGRldmljZSBpZCA9IDB4MDAwMCwgcm9vdCB0YWJsZSA9IDB4MjRkYTUzMDAwLCBk
+b21haW4gPSAwLCBwYWdpbmcgbW9kZSA9IDMNCihYRU4pIFsyMDEyLTA5LTAxIDIyOjI2OjUx
+XSBBTUQtVmk6IFNldHVwIEkvTyBwYWdlIHRhYmxlOiBkZXZpY2UgaWQgPSAweDAwMDIsIHJv
+b3QgdGFibGUgPSAweDI0ZGE1MzAwMCwgZG9tYWluID0gMCwgcGFnaW5nIG1vZGUgPSAzDQoo
+WEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1MV0gQU1ELVZpOiBTZXR1cCBJL08gcGFnZSB0YWJs
+ZTogZGV2aWNlIGlkID0gMHgwMDEwLCByb290IHRhYmxlID0gMHgyNGRhNTMwMDAsIGRvbWFp
+biA9IDAsIHBhZ2luZyBtb2RlID0gMw0KKFhFTikgWzIwMTItMDktMDEgMjI6MjY6NTFdIEFN
+RC1WaTogU2V0dXAgSS9PIHBhZ2UgdGFibGU6IGRldmljZSBpZCA9IDB4MDAxOCwgcm9vdCB0
+YWJsZSA9IDB4MjRkYTUzMDAwLCBkb21haW4gPSAwLCBwYWdpbmcgbW9kZSA9IDMNCihYRU4p
+IFsyMDEyLTA5LTAxIDIyOjI2OjUxXSBBTUQtVmk6IFNldHVwIEkvTyBwYWdlIHRhYmxlOiBk
+ZXZpY2UgaWQgPSAweDAwMjgsIHJvb3QgdGFibGUgPSAweDI0ZGE1MzAwMCwgZG9tYWluID0g
+MCwgcGFnaW5nIG1vZGUgPSAzDQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1MV0gQU1ELVZp
+OiBTZXR1cCBJL08gcGFnZSB0YWJsZTogZGV2aWNlIGlkID0gMHgwMDMwLCByb290IHRhYmxl
+ID0gMHgyNGRhNTMwMDAsIGRvbWFpbiA9IDAsIHBhZ2luZyBtb2RlID0gMw0KKFhFTikgWzIw
+MTItMDktMDEgMjI6MjY6NTFdIEFNRC1WaTogU2V0dXAgSS9PIHBhZ2UgdGFibGU6IGRldmlj
+ZSBpZCA9IDB4MDA1MCwgcm9vdCB0YWJsZSA9IDB4MjRkYTUzMDAwLCBkb21haW4gPSAwLCBw
+YWdpbmcgbW9kZSA9IDMNCihYRU4pIFsyMDEyLTA5LTAxIDIyOjI2OjUxXSBBTUQtVmk6IFNl
+dHVwIEkvTyBwYWdlIHRhYmxlOiBkZXZpY2UgaWQgPSAweDAwNTgsIHJvb3QgdGFibGUgPSAw
+eDI0ZGE1MzAwMCwgZG9tYWluID0gMCwgcGFnaW5nIG1vZGUgPSAzDQooWEVOKSBbMjAxMi0w
+OS0wMSAyMjoyNjo1MV0gQU1ELVZpOiBTZXR1cCBJL08gcGFnZSB0YWJsZTogZGV2aWNlIGlk
+ID0gMHgwMDYwLCByb290IHRhYmxlID0gMHgyNGRhNTMwMDAsIGRvbWFpbiA9IDAsIHBhZ2lu
+ZyBtb2RlID0gMw0KKFhFTikgWzIwMTItMDktMDEgMjI6MjY6NTFdIEFNRC1WaTogU2V0dXAg
+SS9PIHBhZ2UgdGFibGU6IGRldmljZSBpZCA9IDB4MDA2OCwgcm9vdCB0YWJsZSA9IDB4MjRk
+YTUzMDAwLCBkb21haW4gPSAwLCBwYWdpbmcgbW9kZSA9IDMNCihYRU4pIFsyMDEyLTA5LTAx
+IDIyOjI2OjUxXSBBTUQtVmk6IFNldHVwIEkvTyBwYWdlIHRhYmxlOiBkZXZpY2UgaWQgPSAw
+eDAwODgsIHJvb3QgdGFibGUgPSAweDI0ZGE1MzAwMCwgZG9tYWluID0gMCwgcGFnaW5nIG1v
+ZGUgPSAzDQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1MV0gQU1ELVZpOiBTZXR1cCBJL08g
+cGFnZSB0YWJsZTogZGV2aWNlIGlkID0gMHgwMDkwLCByb290IHRhYmxlID0gMHgyNGRhNTMw
+MDAsIGRvbWFpbiA9IDAsIHBhZ2luZyBtb2RlID0gMw0KKFhFTikgWzIwMTItMDktMDEgMjI6
+MjY6NTFdIEFNRC1WaTogU2V0dXAgSS9PIHBhZ2UgdGFibGU6IGRldmljZSBpZCA9IDB4MDA5
+Miwgcm9vdCB0YWJsZSA9IDB4MjRkYTUzMDAwLCBkb21haW4gPSAwLCBwYWdpbmcgbW9kZSA9
+IDMNCihYRU4pIFsyMDEyLTA5LTAxIDIyOjI2OjUxXSBBTUQtVmk6IFNldHVwIEkvTyBwYWdl
+IHRhYmxlOiBkZXZpY2UgaWQgPSAweDAwOTgsIHJvb3QgdGFibGUgPSAweDI0ZGE1MzAwMCwg
+ZG9tYWluID0gMCwgcGFnaW5nIG1vZGUgPSAzDQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1
+MV0gQU1ELVZpOiBTZXR1cCBJL08gcGFnZSB0YWJsZTogZGV2aWNlIGlkID0gMHgwMDlhLCBy
+b290IHRhYmxlID0gMHgyNGRhNTMwMDAsIGRvbWFpbiA9IDAsIHBhZ2luZyBtb2RlID0gMw0K
+KFhFTikgWzIwMTItMDktMDEgMjI6MjY6NTFdIEFNRC1WaTogU2V0dXAgSS9PIHBhZ2UgdGFi
+bGU6IGRldmljZSBpZCA9IDB4MDBhMCwgcm9vdCB0YWJsZSA9IDB4MjRkYTUzMDAwLCBkb21h
+aW4gPSAwLCBwYWdpbmcgbW9kZSA9IDMNCihYRU4pIFsyMDEyLTA5LTAxIDIyOjI2OjUxXSBB
+TUQtVmk6IFNldHVwIEkvTyBwYWdlIHRhYmxlOiBkZXZpY2UgaWQgPSAweDAwYTMsIHJvb3Qg
+dGFibGUgPSAweDI0ZGE1MzAwMCwgZG9tYWluID0gMCwgcGFnaW5nIG1vZGUgPSAzDQooWEVO
+KSBbMjAxMi0wOS0wMSAyMjoyNjo1MV0gQU1ELVZpOiBTZXR1cCBJL08gcGFnZSB0YWJsZTog
+ZGV2aWNlIGlkID0gMHgwMGE0LCByb290IHRhYmxlID0gMHgyNGRhNTMwMDAsIGRvbWFpbiA9
+IDAsIHBhZ2luZyBtb2RlID0gMw0KKFhFTikgWzIwMTItMDktMDEgMjI6MjY6NTFdIEFNRC1W
+aTogU2V0dXAgSS9PIHBhZ2UgdGFibGU6IGRldmljZSBpZCA9IDB4MDBhNSwgcm9vdCB0YWJs
+ZSA9IDB4MjRkYTUzMDAwLCBkb21haW4gPSAwLCBwYWdpbmcgbW9kZSA9IDMNCihYRU4pIFsy
+MDEyLTA5LTAxIDIyOjI2OjUxXSBBTUQtVmk6IFNldHVwIEkvTyBwYWdlIHRhYmxlOiBkZXZp
+Y2UgaWQgPSAweDAwYTgsIHJvb3QgdGFibGUgPSAweDI0ZGE1MzAwMCwgZG9tYWluID0gMCwg
+cGFnaW5nIG1vZGUgPSAzDQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1MV0gQU1ELVZpOiBT
+ZXR1cCBJL08gcGFnZSB0YWJsZTogZGV2aWNlIGlkID0gMHgwMGIwLCByb290IHRhYmxlID0g
+MHgyNGRhNTMwMDAsIGRvbWFpbiA9IDAsIHBhZ2luZyBtb2RlID0gMw0KKFhFTikgWzIwMTIt
+MDktMDEgMjI6MjY6NTFdIEFNRC1WaTogU2V0dXAgSS9PIHBhZ2UgdGFibGU6IGRldmljZSBp
+ZCA9IDB4MDBiMiwgcm9vdCB0YWJsZSA9IDB4MjRkYTUzMDAwLCBkb21haW4gPSAwLCBwYWdp
+bmcgbW9kZSA9IDMNCihYRU4pIFsyMDEyLTA5LTAxIDIyOjI2OjUxXSBBTUQtVmk6IE5vIGlv
+bW11IGZvciBkZXZpY2UgMDAwMDowMDoxOC4wDQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1
+MV0gQU1ELVZpOiBObyBpb21tdSBmb3IgZGV2aWNlIDAwMDA6MDA6MTguMQ0KKFhFTikgWzIw
+MTItMDktMDEgMjI6MjY6NTFdIEFNRC1WaTogTm8gaW9tbXUgZm9yIGRldmljZSAwMDAwOjAw
+OjE4LjINCihYRU4pIFsyMDEyLTA5LTAxIDIyOjI2OjUxXSBBTUQtVmk6IE5vIGlvbW11IGZv
+ciBkZXZpY2UgMDAwMDowMDoxOC4zDQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1MV0gQU1E
+LVZpOiBObyBpb21tdSBmb3IgZGV2aWNlIDAwMDA6MDA6MTguNA0KKFhFTikgWzIwMTItMDkt
+MDEgMjI6MjY6NTFdIEFNRC1WaTogU2V0dXAgSS9PIHBhZ2UgdGFibGU6IGRldmljZSBpZCA9
+IDB4MDQwMCwgcm9vdCB0YWJsZSA9IDB4MjRkYTUzMDAwLCBkb21haW4gPSAwLCBwYWdpbmcg
+bW9kZSA9IDMNCihYRU4pIFsyMDEyLTA5LTAxIDIyOjI2OjUxXSBBTUQtVmk6IFNldHVwIEkv
+TyBwYWdlIHRhYmxlOiBkZXZpY2UgaWQgPSAweDA0MDEsIHJvb3QgdGFibGUgPSAweDI0ZGE1
+MzAwMCwgZG9tYWluID0gMCwgcGFnaW5nIG1vZGUgPSAzDQooWEVOKSBbMjAxMi0wOS0wMSAy
+MjoyNjo1MV0gQU1ELVZpOiBTZXR1cCBJL08gcGFnZSB0YWJsZTogZGV2aWNlIGlkID0gMHgw
+NDAyLCByb290IHRhYmxlID0gMHgyNGRhNTMwMDAsIGRvbWFpbiA9IDAsIHBhZ2luZyBtb2Rl
+ID0gMw0KKFhFTikgWzIwMTItMDktMDEgMjI6MjY6NTFdIEFNRC1WaTogU2V0dXAgSS9PIHBh
+Z2UgdGFibGU6IGRldmljZSBpZCA9IDB4MDQwMywgcm9vdCB0YWJsZSA9IDB4MjRkYTUzMDAw
+LCBkb21haW4gPSAwLCBwYWdpbmcgbW9kZSA9IDMNCihYRU4pIFsyMDEyLTA5LTAxIDIyOjI2
+OjUxXSBBTUQtVmk6IFNldHVwIEkvTyBwYWdlIHRhYmxlOiBkZXZpY2UgaWQgPSAweDA0MDQs
+IHJvb3QgdGFibGUgPSAweDI0ZGE1MzAwMCwgZG9tYWluID0gMCwgcGFnaW5nIG1vZGUgPSAz
+DQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1MV0gQU1ELVZpOiBTZXR1cCBJL08gcGFnZSB0
+YWJsZTogZGV2aWNlIGlkID0gMHgwNDA1LCByb290IHRhYmxlID0gMHgyNGRhNTMwMDAsIGRv
+bWFpbiA9IDAsIHBhZ2luZyBtb2RlID0gMw0KKFhFTikgWzIwMTItMDktMDEgMjI6MjY6NTFd
+IEFNRC1WaTogU2V0dXAgSS9PIHBhZ2UgdGFibGU6IGRldmljZSBpZCA9IDB4MDQwNiwgcm9v
+dCB0YWJsZSA9IDB4MjRkYTUzMDAwLCBkb21haW4gPSAwLCBwYWdpbmcgbW9kZSA9IDMNCihY
+RU4pIFsyMDEyLTA5LTAxIDIyOjI2OjUyXSBBTUQtVmk6IFNldHVwIEkvTyBwYWdlIHRhYmxl
+OiBkZXZpY2UgaWQgPSAweDA0MDcsIHJvb3QgdGFibGUgPSAweDI0ZGE1MzAwMCwgZG9tYWlu
+ID0gMCwgcGFnaW5nIG1vZGUgPSAzDQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1Ml0gQU1E
+LVZpOiBTZXR1cCBJL08gcGFnZSB0YWJsZTogZGV2aWNlIGlkID0gMHgwNTAwLCByb290IHRh
+YmxlID0gMHgyNGRhNTMwMDAsIGRvbWFpbiA9IDAsIHBhZ2luZyBtb2RlID0gMw0KKFhFTikg
+WzIwMTItMDktMDEgMjI6MjY6NTJdIEFNRC1WaTogU2V0dXAgSS9PIHBhZ2UgdGFibGU6IGRl
+dmljZSBpZCA9IDB4MDYwMCwgcm9vdCB0YWJsZSA9IDB4MjRkYTUzMDAwLCBkb21haW4gPSAw
+LCBwYWdpbmcgbW9kZSA9IDMNCihYRU4pIFsyMDEyLTA5LTAxIDIyOjI2OjUyXSBBTUQtVmk6
+IFNldHVwIEkvTyBwYWdlIHRhYmxlOiBkZXZpY2UgaWQgPSAweDA2MDEsIHJvb3QgdGFibGUg
+PSAweDI0ZGE1MzAwMCwgZG9tYWluID0gMCwgcGFnaW5nIG1vZGUgPSAzDQooWEVOKSBbMjAx
+Mi0wOS0wMSAyMjoyNjo1Ml0gQU1ELVZpOiBTZXR1cCBJL08gcGFnZSB0YWJsZTogZGV2aWNl
+IGlkID0gMHgwNzAwLCByb290IHRhYmxlID0gMHgyNGRhNTMwMDAsIGRvbWFpbiA9IDAsIHBh
+Z2luZyBtb2RlID0gMw0KKFhFTikgWzIwMTItMDktMDEgMjI6MjY6NTJdIEFNRC1WaTogU2V0
+dXAgSS9PIHBhZ2UgdGFibGU6IGRldmljZSBpZCA9IDB4MDgwMCwgcm9vdCB0YWJsZSA9IDB4
+MjRkYTUzMDAwLCBkb21haW4gPSAwLCBwYWdpbmcgbW9kZSA9IDMNCihYRU4pIFsyMDEyLTA5
+LTAxIDIyOjI2OjUyXSBBTUQtVmk6IFNldHVwIEkvTyBwYWdlIHRhYmxlOiBkZXZpY2UgaWQg
+PSAweDA5MDAsIHJvb3QgdGFibGUgPSAweDI0ZGE1MzAwMCwgZG9tYWluID0gMCwgcGFnaW5n
+IG1vZGUgPSAzDQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1Ml0gQU1ELVZpOiBTZXR1cCBJ
+L08gcGFnZSB0YWJsZTogZGV2aWNlIGlkID0gMHgwYTAwLCByb290IHRhYmxlID0gMHgyNGRh
+NTMwMDAsIGRvbWFpbiA9IDAsIHBhZ2luZyBtb2RlID0gMw0KKFhFTikgWzIwMTItMDktMDEg
+MjI6MjY6NTJdIEFNRC1WaTogU2V0dXAgSS9PIHBhZ2UgdGFibGU6IGRldmljZSBpZCA9IDB4
+MGEwMSwgcm9vdCB0YWJsZSA9IDB4MjRkYTUzMDAwLCBkb21haW4gPSAwLCBwYWdpbmcgbW9k
+ZSA9IDMNCihYRU4pIFsyMDEyLTA5LTAxIDIyOjI2OjUyXSBBTUQtVmk6IFNldHVwIEkvTyBw
+YWdlIHRhYmxlOiBkZXZpY2UgaWQgPSAweDBhMDIsIHJvb3QgdGFibGUgPSAweDI0ZGE1MzAw
+MCwgZG9tYWluID0gMCwgcGFnaW5nIG1vZGUgPSAzDQooWEVOKSBbMjAxMi0wOS0wMSAyMjoy
+Njo1Ml0gQU1ELVZpOiBTZXR1cCBJL08gcGFnZSB0YWJsZTogZGV2aWNlIGlkID0gMHgwYTAz
+LCByb290IHRhYmxlID0gMHgyNGRhNTMwMDAsIGRvbWFpbiA9IDAsIHBhZ2luZyBtb2RlID0g
+Mw0KKFhFTikgWzIwMTItMDktMDEgMjI6MjY6NTJdIEFNRC1WaTogU2V0dXAgSS9PIHBhZ2Ug
+dGFibGU6IGRldmljZSBpZCA9IDB4MGEwNCwgcm9vdCB0YWJsZSA9IDB4MjRkYTUzMDAwLCBk
+b21haW4gPSAwLCBwYWdpbmcgbW9kZSA9IDMNCihYRU4pIFsyMDEyLTA5LTAxIDIyOjI2OjUy
+XSBBTUQtVmk6IFNldHVwIEkvTyBwYWdlIHRhYmxlOiBkZXZpY2UgaWQgPSAweDBhMDUsIHJv
+b3QgdGFibGUgPSAweDI0ZGE1MzAwMCwgZG9tYWluID0gMCwgcGFnaW5nIG1vZGUgPSAzDQoo
+WEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1Ml0gQU1ELVZpOiBTZXR1cCBJL08gcGFnZSB0YWJs
+ZTogZGV2aWNlIGlkID0gMHgwYTA2LCByb290IHRhYmxlID0gMHgyNGRhNTMwMDAsIGRvbWFp
+biA9IDAsIHBhZ2luZyBtb2RlID0gMw0KKFhFTikgWzIwMTItMDktMDEgMjI6MjY6NTJdIEFN
+RC1WaTogU2V0dXAgSS9PIHBhZ2UgdGFibGU6IGRldmljZSBpZCA9IDB4MGEwNywgcm9vdCB0
+YWJsZSA9IDB4MjRkYTUzMDAwLCBkb21haW4gPSAwLCBwYWdpbmcgbW9kZSA9IDMNCihYRU4p
+IFsyMDEyLTA5LTAxIDIyOjI2OjUyXSBBTUQtVmk6IFNldHVwIEkvTyBwYWdlIHRhYmxlOiBk
+ZXZpY2UgaWQgPSAweDBiMDAsIHJvb3QgdGFibGUgPSAweDI0ZGE1MzAwMCwgZG9tYWluID0g
+MCwgcGFnaW5nIG1vZGUgPSAzDQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1Ml0gU2NydWJi
+aW5nIEZyZWUgUkFNOiAuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
+Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLmRvbmUuDQooWEVOKSBbMjAxMi0wOS0w
+MSAyMjoyNjo1M10gSW5pdGlhbCBsb3cgbWVtb3J5IHZpcnEgdGhyZXNob2xkIHNldCBhdCAw
+eDQwMDAgcGFnZXMuDQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1M10gU3RkLiBMb2dsZXZl
+bDogQWxsDQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1NF0gR3Vlc3QgTG9nbGV2ZWw6IEFs
+bA0KKFhFTikgWzIwMTItMDktMDEgMjI6MjY6NTRdIFhlbiBpcyByZWxpbnF1aXNoaW5nIFZH
+QSBjb25zb2xlLg0KKFhFTikgWzIwMTItMDktMDEgMjI6MjY6NTRdICoqKiBTZXJpYWwgaW5w
+dXQgLT4gRE9NMCAodHlwZSAnQ1RSTC1hJyB0aHJlZSB0aW1lcyB0byBzd2l0Y2ggaW5wdXQg
+dG8gWGVuKQ0KKFhFTikgWzIwMTItMDktMDEgMjI6MjY6NTRdIEZyZWVkIDI1NmtCIGluaXQg
+bWVtb3J5Lg0KKFhFTikgWzIwMTItMDktMDEgMjI6MjY6NTRdIElPQVBJQ1swXTogU2V0IFBD
+SSByb3V0aW5nIGVudHJ5ICg2LTkgLT4gMHg2MCAtPiBJUlEgOSBNb2RlOjEgQWN0aXZlOjEp
+DQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1NF0gdHJhcHMuYzoyNTg0OmQwIERvbWFpbiBh
+dHRlbXB0ZWQgV1JNU1IgMDAwMDAwMDBjMDAwMDQwOCBmcm9tIDB4YzAwMDAwMDAwMTAwMDAw
+MCB0byAweGMwMDgwMDAwMDEwMDAwMDAuDQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1NF0g
+dHJhcHMuYzoyNTg0OmQwIERvbWFpbiBhdHRlbXB0ZWQgV1JNU1IgMDAwMDAwMDBjMDAwMDQw
+OSBmcm9tIDB4YzAwMDAwMDAwMTAwMDAwMCB0byAweGMwMDgwMDAwMDEwMDAwMDAuDQooWEVO
+KSBbMjAxMi0wOS0wMSAyMjoyNjo1NF0gdHJhcHMuYzoyNTg0OmQwIERvbWFpbiBhdHRlbXB0
+ZWQgV1JNU1IgMDAwMDAwMDBjMDAxMDAwNCBmcm9tIDB4MDAwMGVmZjBiZGZiMWZjZSB0byAw
+eDAwMDAwMDAwMDAwMGFiY2QuDQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1NF0gdHJhcHMu
+YzoyNTg0OmQwIERvbWFpbiBhdHRlbXB0ZWQgV1JNU1IgMDAwMDAwMDBjMDAwMDQwOCBmcm9t
+IDB4YzAwMDAwMDAwMTAwMDAwMCB0byAweGMwMDgwMDAwMDEwMDAwMDAuDQooWEVOKSBbMjAx
+Mi0wOS0wMSAyMjoyNjo1NF0gdHJhcHMuYzoyNTg0OmQwIERvbWFpbiBhdHRlbXB0ZWQgV1JN
+U1IgMDAwMDAwMDBjMDAwMDQwOSBmcm9tIDB4YzAwMDAwMDAwMTAwMDAwMCB0byAweGMwMDgw
+MDAwMDEwMDAwMDAuDQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1NF0gdHJhcHMuYzoyNTg0
+OmQwIERvbWFpbiBhdHRlbXB0ZWQgV1JNU1IgMDAwMDAwMDBjMDAwMDQwOCBmcm9tIDB4YzAw
+MDAwMDAwMTAwMDAwMCB0byAweGMwMDgwMDAwMDEwMDAwMDAuDQooWEVOKSBbMjAxMi0wOS0w
+MSAyMjoyNjo1NF0gdHJhcHMuYzoyNTg0OmQwIERvbWFpbiBhdHRlbXB0ZWQgV1JNU1IgMDAw
+MDAwMDBjMDAwMDQwOSBmcm9tIDB4YzAwMDAwMDAwMTAwMDAwMCB0byAweGMwMDgwMDAwMDEw
+MDAwMDAuDQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1NF0gdHJhcHMuYzoyNTg0OmQwIERv
+bWFpbiBhdHRlbXB0ZWQgV1JNU1IgMDAwMDAwMDBjMDAwMDQwOCBmcm9tIDB4YzAwMDAwMDAw
+MTAwMDAwMCB0byAweGMwMDgwMDAwMDEwMDAwMDAuDQooWEVOKSBbMjAxMi0wOS0wMSAyMjoy
+Njo1NF0gdHJhcHMuYzoyNTg0OmQwIERvbWFpbiBhdHRlbXB0ZWQgV1JNU1IgMDAwMDAwMDBj
+MDAwMDQwOSBmcm9tIDB4YzAwMDAwMDAwMTAwMDAwMCB0byAweGMwMDgwMDAwMDEwMDAwMDAu
+DQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1NF0gdHJhcHMuYzoyNTg0OmQwIERvbWFpbiBh
+dHRlbXB0ZWQgV1JNU1IgMDAwMDAwMDBjMDAwMDQwOCBmcm9tIDB4YzAwMDAwMDAwMTAwMDAw
+MCB0byAweGMwMDgwMDAwMDEwMDAwMDAuDQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1NF0g
+dHJhcHMuYzoyNTg0OmQwIERvbWFpbiBhdHRlbXB0ZWQgV1JNU1IgMDAwMDAwMDBjMDAwMDQw
+OSBmcm9tIDB4YzAwMDAwMDAwMTAwMDAwMCB0byAweGMwMDgwMDAwMDEwMDAwMDAuDQooWEVO
+KSBbMjAxMi0wOS0wMSAyMjoyNjo1NF0gdHJhcHMuYzoyNTg0OmQwIERvbWFpbiBhdHRlbXB0
+ZWQgV1JNU1IgMDAwMDAwMDBjMDAwMDQwOCBmcm9tIDB4YzAwMDAwMDAwMTAwMDAwMCB0byAw
+eGMwMDgwMDAwMDEwMDAwMDAuDQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1NF0gdHJhcHMu
+YzoyNTg0OmQwIERvbWFpbiBhdHRlbXB0ZWQgV1JNU1IgMDAwMDAwMDBjMDAwMDQwOSBmcm9t
+IDB4YzAwMDAwMDAwMTAwMDAwMCB0byAweGMwMDgwMDAwMDEwMDAwMDAuDQooWEVOKSBbMjAx
+Mi0wOS0wMSAyMjoyNjo1NF0gUENJIGFkZCBkZXZpY2UgMDAwMDowMDowMC4wDQooWEVOKSBb
+MjAxMi0wOS0wMSAyMjoyNjo1NF0gUENJIGFkZCBkZXZpY2UgMDAwMDowMDowMC4yDQooWEVO
+KSBbMjAxMi0wOS0wMSAyMjoyNjo1NF0gUENJIGFkZCBkZXZpY2UgMDAwMDowMDowMi4wDQoo
+WEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1NF0gUENJIGFkZCBkZXZpY2UgMDAwMDowMDowMy4w
+DQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1NF0gUENJIGFkZCBkZXZpY2UgMDAwMDowMDow
+NS4wDQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1NF0gUENJIGFkZCBkZXZpY2UgMDAwMDow
+MDowNi4wDQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1NF0gUENJIGFkZCBkZXZpY2UgMDAw
+MDowMDowYS4wDQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1NF0gUENJIGFkZCBkZXZpY2Ug
+MDAwMDowMDowYi4wDQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1NF0gUENJIGFkZCBkZXZp
+Y2UgMDAwMDowMDowYy4wDQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1NF0gUENJIGFkZCBk
+ZXZpY2UgMDAwMDowMDowZC4wDQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1NF0gUENJIGFk
+ZCBkZXZpY2UgMDAwMDowMDoxMS4wDQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1NF0gUENJ
+IGFkZCBkZXZpY2UgMDAwMDowMDoxMi4wDQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1NF0g
+UENJIGFkZCBkZXZpY2UgMDAwMDowMDoxMi4yDQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1
+NF0gUENJIGFkZCBkZXZpY2UgMDAwMDowMDoxMy4wDQooWEVOKSBbMjAxMi0wOS0wMSAyMjoy
+Njo1NF0gUENJIGFkZCBkZXZpY2UgMDAwMDowMDoxMy4yDQooWEVOKSBbMjAxMi0wOS0wMSAy
+MjoyNjo1NF0gUENJIGFkZCBkZXZpY2UgMDAwMDowMDoxNC4wDQooWEVOKSBbMjAxMi0wOS0w
+MSAyMjoyNjo1NF0gUENJIGFkZCBkZXZpY2UgMDAwMDowMDoxNC4zDQooWEVOKSBbMjAxMi0w
+OS0wMSAyMjoyNjo1NF0gUENJIGFkZCBkZXZpY2UgMDAwMDowMDoxNC40DQooWEVOKSBbMjAx
+Mi0wOS0wMSAyMjoyNjo1NF0gUENJIGFkZCBkZXZpY2UgMDAwMDowMDoxNC41DQooWEVOKSBb
+MjAxMi0wOS0wMSAyMjoyNjo1NF0gUENJIGFkZCBkZXZpY2UgMDAwMDowMDoxNS4wDQooWEVO
+KSBbMjAxMi0wOS0wMSAyMjoyNjo1NF0gUENJIGFkZCBkZXZpY2UgMDAwMDowMDoxNi4wDQoo
+WEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1NF0gUENJIGFkZCBkZXZpY2UgMDAwMDowMDoxNi4y
+DQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1NF0gUENJIGFkZCBkZXZpY2UgMDAwMDowMDox
+OC4wDQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1NF0gUENJIGFkZCBkZXZpY2UgMDAwMDow
+MDoxOC4xDQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1NF0gUENJIGFkZCBkZXZpY2UgMDAw
+MDowMDoxOC4yDQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1NF0gUENJIGFkZCBkZXZpY2Ug
+MDAwMDowMDoxOC4zDQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1NF0gUENJIGFkZCBkZXZp
+Y2UgMDAwMDowMDoxOC40DQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1NF0gUENJIGFkZCBk
+ZXZpY2UgMDAwMDowYjowMC4wDQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1NF0gUENJIGFk
+ZCBkZXZpY2UgMDAwMDowYTowMC4wDQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1NF0gUENJ
+IGFkZCBkZXZpY2UgMDAwMDowYTowMC4xDQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1NF0g
+UENJIGFkZCBkZXZpY2UgMDAwMDowYTowMC4yDQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1
+NF0gUENJIGFkZCBkZXZpY2UgMDAwMDowYTowMC4zDQooWEVOKSBbMjAxMi0wOS0wMSAyMjoy
+Njo1NF0gUENJIGFkZCBkZXZpY2UgMDAwMDowYTowMC40DQooWEVOKSBbMjAxMi0wOS0wMSAy
+MjoyNjo1NF0gUENJIGFkZCBkZXZpY2UgMDAwMDowYTowMC41DQooWEVOKSBbMjAxMi0wOS0w
+MSAyMjoyNjo1NF0gUENJIGFkZCBkZXZpY2UgMDAwMDowYTowMC42DQooWEVOKSBbMjAxMi0w
+OS0wMSAyMjoyNjo1NF0gUENJIGFkZCBkZXZpY2UgMDAwMDowYTowMC43DQooWEVOKSBbMjAx
+Mi0wOS0wMSAyMjoyNjo1NF0gUENJIGFkZCBkZXZpY2UgMDAwMDowOTowMC4wDQooWEVOKSBb
+MjAxMi0wOS0wMSAyMjoyNjo1NF0gUENJIGFkZCBkZXZpY2UgMDAwMDowODowMC4wDQooWEVO
+KSBbMjAxMi0wOS0wMSAyMjoyNjo1NF0gUENJIGFkZCBkZXZpY2UgMDAwMDowNzowMC4wDQoo
+WEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1NF0gUENJIGFkZCBkZXZpY2UgMDAwMDowNjowMC4w
+DQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1NF0gUENJIGFkZCBkZXZpY2UgMDAwMDowNjow
+MC4xDQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1NF0gUENJIGFkZCBkZXZpY2UgMDAwMDow
+NTowMC4wDQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1NF0gUENJIGFkZCBkZXZpY2UgMDAw
+MDowNDowMC4wDQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1NF0gUENJIGFkZCBkZXZpY2Ug
+MDAwMDowNDowMC4xDQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1NF0gUENJIGFkZCBkZXZp
+Y2UgMDAwMDowNDowMC4yDQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1NF0gUENJIGFkZCBk
+ZXZpY2UgMDAwMDowNDowMC4zDQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1NF0gUENJIGFk
+ZCBkZXZpY2UgMDAwMDowNDowMC40DQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1NF0gUENJ
+IGFkZCBkZXZpY2UgMDAwMDowNDowMC41DQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1NF0g
+UENJIGFkZCBkZXZpY2UgMDAwMDowNDowMC42DQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1
+NF0gUENJIGFkZCBkZXZpY2UgMDAwMDowNDowMC43DQooWEVOKSBbMjAxMi0wOS0wMSAyMjoy
+Njo1NF0gUENJIGFkZCBkZXZpY2UgMDAwMDowMzowNi4wDQooWEVOKSBbMjAxMi0wOS0wMSAy
+MjoyNjo1NF0gSU9BUElDWzBdOiBTZXQgUENJIHJvdXRpbmcgZW50cnkgKDYtOCAtPiAweDU4
+IC0+IElSUSA4IE1vZGU6MCBBY3RpdmU6MCkNCihYRU4pIFsyMDEyLTA5LTAxIDIyOjI2OjU0
+XSBJT0FQSUNbMF06IFNldCBQQ0kgcm91dGluZyBlbnRyeSAoNi0xMyAtPiAweDg4IC0+IElS
+USAxMyBNb2RlOjAgQWN0aXZlOjApDQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1NF0gSU9B
+UElDWzFdOiBTZXQgUENJIHJvdXRpbmcgZW50cnkgKDctMjggLT4gMHhhMCAtPiBJUlEgNTIg
+TW9kZToxIEFjdGl2ZToxKQ0KKFhFTikgWzIwMTItMDktMDEgMjI6MjY6NTRdIElPQVBJQ1sx
+XTogU2V0IFBDSSByb3V0aW5nIGVudHJ5ICg3LTI5IC0+IDB4YTggLT4gSVJRIDUzIE1vZGU6
+MSBBY3RpdmU6MSkNCihYRU4pIFsyMDEyLTA5LTAxIDIyOjI2OjU0XSBJT0FQSUNbMV06IFNl
+dCBQQ0kgcm91dGluZyBlbnRyeSAoNy0zMCAtPiAweGIwIC0+IElSUSA1NCBNb2RlOjEgQWN0
+aXZlOjEpDQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1NF0gSU9BUElDWzBdOiBTZXQgUENJ
+IHJvdXRpbmcgZW50cnkgKDYtMTYgLT4gMHhiOCAtPiBJUlEgMTYgTW9kZToxIEFjdGl2ZTox
+KQ0KKFhFTikgWzIwMTItMDktMDEgMjI6MjY6NTRdIElPQVBJQ1swXTogU2V0IFBDSSByb3V0
+aW5nIGVudHJ5ICg2LTE4IC0+IDB4YzAgLT4gSVJRIDE4IE1vZGU6MSBBY3RpdmU6MSkNCihY
+RU4pIFsyMDEyLTA5LTAxIDIyOjI2OjU0XSBJT0FQSUNbMF06IFNldCBQQ0kgcm91dGluZyBl
+bnRyeSAoNi0xNyAtPiAweGM4IC0+IElSUSAxNyBNb2RlOjEgQWN0aXZlOjEpDQooWEVOKSBb
+MjAxMi0wOS0wMSAyMjoyNjo1NF0gSU9BUElDWzFdOiBTZXQgUENJIHJvdXRpbmcgZW50cnkg
+KDctNCAtPiAweGQwIC0+IElSUSAyOCBNb2RlOjEgQWN0aXZlOjEpDQooWEVOKSBbMjAxMi0w
+OS0wMSAyMjoyNjo1NF0gSU9BUElDWzFdOiBTZXQgUENJIHJvdXRpbmcgZW50cnkgKDctNSAt
+PiAweGQ4IC0+IElSUSAyOSBNb2RlOjEgQWN0aXZlOjEpDQooWEVOKSBbMjAxMi0wOS0wMSAy
+MjoyNjo1NV0gSU9BUElDWzFdOiBTZXQgUENJIHJvdXRpbmcgZW50cnkgKDctNiAtPiAweDIx
+IC0+IElSUSAzMCBNb2RlOjEgQWN0aXZlOjEpDQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1
+NV0gSU9BUElDWzFdOiBTZXQgUENJIHJvdXRpbmcgZW50cnkgKDctNyAtPiAweDI5IC0+IElS
+USAzMSBNb2RlOjEgQWN0aXZlOjEpDQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1NV0gSU9B
+UElDWzFdOiBTZXQgUENJIHJvdXRpbmcgZW50cnkgKDctMTYgLT4gMHgzMSAtPiBJUlEgNDAg
+TW9kZToxIEFjdGl2ZToxKQ0KKFhFTikgWzIwMTItMDktMDEgMjI6MjY6NTVdIElPQVBJQ1sx
+XTogU2V0IFBDSSByb3V0aW5nIGVudHJ5ICg3LTE3IC0+IDB4MzkgLT4gSVJRIDQxIE1vZGU6
+MSBBY3RpdmU6MSkNCihYRU4pIFsyMDEyLTA5LTAxIDIyOjI2OjU1XSBJT0FQSUNbMV06IFNl
+dCBQQ0kgcm91dGluZyBlbnRyeSAoNy0xOCAtPiAweDQxIC0+IElSUSA0MiBNb2RlOjEgQWN0
+aXZlOjEpDQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1NV0gSU9BUElDWzFdOiBTZXQgUENJ
+IHJvdXRpbmcgZW50cnkgKDctMTkgLT4gMHg0OSAtPiBJUlEgNDMgTW9kZToxIEFjdGl2ZTox
+KQ0KKFhFTikgWzIwMTItMDktMDEgMjI6MjY6NTVdIElPQVBJQ1swXTogU2V0IFBDSSByb3V0
+aW5nIGVudHJ5ICg2LTIyIC0+IDB4OTkgLT4gSVJRIDIyIE1vZGU6MSBBY3RpdmU6MSkNCihY
+RU4pIFsyMDEyLTA5LTAxIDIyOjI2OjU1XSBJT0FQSUNbMV06IFNldCBQQ0kgcm91dGluZyBl
+bnRyeSAoNy0xMiAtPiAweGExIC0+IElSUSAzNiBNb2RlOjEgQWN0aXZlOjEpDQooWEVOKSBb
+MjAxMi0wOS0wMSAyMjoyNjo1NV0gSU9BUElDWzFdOiBTZXQgUENJIHJvdXRpbmcgZW50cnkg
+KDctMjMgLT4gMHhhOSAtPiBJUlEgNDcgTW9kZToxIEFjdGl2ZToxKQ0KKFhFTikgWzIwMTIt
+MDktMDEgMjI6MjY6NTZdIElPQVBJQ1swXTogU2V0IFBDSSByb3V0aW5nIGVudHJ5ICg2LTE5
+IC0+IDB4YjEgLT4gSVJRIDE5IE1vZGU6MSBBY3RpdmU6MSkNCihYRU4pIFsyMDEyLTA5LTAx
+IDIyOjI2OjU2XSBJT0FQSUNbMV06IFNldCBQQ0kgcm91dGluZyBlbnRyeSAoNy0yMiAtPiAw
+eGMxIC0+IElSUSA0NiBNb2RlOjEgQWN0aXZlOjEpDQooWEVOKSBbMjAxMi0wOS0wMSAyMjoy
+Njo1Nl0gSU9BUElDWzFdOiBTZXQgUENJIHJvdXRpbmcgZW50cnkgKDctMjcgLT4gMHhkMSAt
+PiBJUlEgNTEgTW9kZToxIEFjdGl2ZToxKQ0KKFhFTikgWzIwMTItMDktMDEgMjI6MjY6NThd
+IElPQVBJQ1sxXTogU2V0IFBDSSByb3V0aW5nIGVudHJ5ICg3LTkgLT4gMHgyMiAtPiBJUlEg
+MzMgTW9kZToxIEFjdGl2ZToxKQ0KKFhFTikgWzIwMTItMDktMDEgMjI6Mjc6NTldIHRyYXBz
+LmM6MjU4NDpkMSBEb21haW4gYXR0ZW1wdGVkIFdSTVNSIDAwMDAwMDAwYzAwMTAwMDQgZnJv
+bSAweDAwMDBhMTk1YzQwZjYxOGYgdG8gMHgwMDAwMDAwMDAwMDBhYmNkLg0KKFhFTikgWzIw
+MTItMDktMDEgMjI6Mjg6MDVdIHRyYXBzLmM6MjU4NDpkMiBEb21haW4gYXR0ZW1wdGVkIFdS
+TVNSIDAwMDAwMDAwYzAwMTAwMDQgZnJvbSAweDAwMDA2ZmIwMzlkZTc5MDAgdG8gMHgwMDAw
+MDAwMDAwMDBhYmNkLg0KKFhFTikgWzIwMTItMDktMDEgMjI6Mjg6MTddIHRyYXBzLmM6MjU4
+NDpkMyBEb21haW4gYXR0ZW1wdGVkIFdSTVNSIDAwMDAwMDAwYzAwMTAwMDQgZnJvbSAweDAw
+MDBhMTk1YzQwZjYxOGYgdG8gMHgwMDAwMDAwMDAwMDBhYmNkLg0KKFhFTikgWzIwMTItMDkt
+MDEgMjI6Mjg6MTddIHRyYXBzLmM6MjU4NDpkNCBEb21haW4gYXR0ZW1wdGVkIFdSTVNSIDAw
+MDAwMDAwYzAwMTAwMDQgZnJvbSAweDAwMDA4Njc5YzAyYjQxNjUgdG8gMHgwMDAwMDAwMDAw
+MDBhYmNkLg0KKFhFTikgWzIwMTItMDktMDEgMjI6Mjg6MjNdIHRyYXBzLmM6MjU4NDpkNSBE
+b21haW4gYXR0ZW1wdGVkIFdSTVNSIDAwMDAwMDAwYzAwMTAwMDQgZnJvbSAweDAwMDA2ZmIw
+MzlkZTc5MDAgdG8gMHgwMDAwMDAwMDAwMDBhYmNkLg0KKFhFTikgWzIwMTItMDktMDEgMjI6
+Mjg6MzBdIHRyYXBzLmM6MjU4NDpkNiBEb21haW4gYXR0ZW1wdGVkIFdSTVNSIDAwMDAwMDAw
+YzAwMTAwMDQgZnJvbSAweDAwMDBhMTk1YzQwZjYxOGYgdG8gMHgwMDAwMDAwMDAwMDBhYmNk
+Lg0KKFhFTikgWzIwMTItMDktMDEgMjI6Mjg6MzZdIHRyYXBzLmM6MjU4NDpkNyBEb21haW4g
+YXR0ZW1wdGVkIFdSTVNSIDAwMDAwMDAwYzAwMTAwMDQgZnJvbSAweDAwMDBhMTk1YzQwZjYx
+OGYgdG8gMHgwMDAwMDAwMDAwMDBhYmNkLg0KKFhFTikgWzIwMTItMDktMDEgMjI6Mjg6NDJd
+IHRyYXBzLmM6MjU4NDpkOCBEb21haW4gYXR0ZW1wdGVkIFdSTVNSIDAwMDAwMDAwYzAwMTAw
+MDQgZnJvbSAweDAwMDA2ZmIwMzlkZTc5MDAgdG8gMHgwMDAwMDAwMDAwMDBhYmNkLg0KKFhF
+TikgWzIwMTItMDktMDEgMjI6Mjg6NDhdIHRyYXBzLmM6MjU4NDpkOSBEb21haW4gYXR0ZW1w
+dGVkIFdSTVNSIDAwMDAwMDAwYzAwMTAwMDQgZnJvbSAweDAwMDBhMTk1YzQwZjYxOGYgdG8g
+MHgwMDAwMDAwMDAwMDBhYmNkLg0KKFhFTikgWzIwMTItMDktMDEgMjI6Mjg6NTVdIHRyYXBz
+LmM6MjU4NDpkMTAgRG9tYWluIGF0dGVtcHRlZCBXUk1TUiAwMDAwMDAwMGMwMDEwMDA0IGZy
+b20gMHgwMDAwNmZiMDM5ZGU3OTAwIHRvIDB4MDAwMDAwMDAwMDAwYWJjZC4NCihYRU4pIFsy
+MDEyLTA5LTAxIDIyOjI5OjAyXSBBTUQtVmk6IERpc2FibGU6IGRldmljZSBpZCA9IDB4MDBh
+NCwgZG9tYWluID0gMCwgcGFnaW5nIG1vZGUgPSAzDQooWEVOKSBbMjAxMi0wOS0wMSAyMjoy
+OTowMl0gQU1ELVZpOiBTZXR1cCBJL08gcGFnZSB0YWJsZTogZGV2aWNlIGlkID0gMHgwMGE0
+LCByb290IHRhYmxlID0gMHgxOGUwYTEwMDAsIGRvbWFpbiA9IDExLCBwYWdpbmcgbW9kZSA9
+IDMNCihYRU4pIFsyMDEyLTA5LTAxIDIyOjI5OjAyXSBBTUQtVmk6IFJlLWFzc2lnbiAwMDAw
+OjAzOjA2LjAgZnJvbSBkb20wIHRvIGRvbTExDQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyOTow
+Ml0gdHJhcHMuYzoyNTg0OmQxMSBEb21haW4gYXR0ZW1wdGVkIFdSTVNSIDAwMDAwMDAwYzAw
+MTAwMDQgZnJvbSAweDAwMDA4Njc5YzAyYjQxNjUgdG8gMHgwMDAwMDAwMDAwMDBhYmNkLg0K
+KFhFTikgWzIwMTItMDktMDEgMjI6Mjk6MDhdIHRyYXBzLmM6MjU4NDpkMTIgRG9tYWluIGF0
+dGVtcHRlZCBXUk1TUiAwMDAwMDAwMGMwMDEwMDA0IGZyb20gMHgwMDAwNDIzNDVhMGRhNTQ1
+IHRvIDB4MDAwMDAwMDAwMDAwYWJjZC4NCihYRU4pIFsyMDEyLTA5LTAxIDIyOjI5OjE1XSB0
+cmFwcy5jOjI1ODQ6ZDEzIERvbWFpbiBhdHRlbXB0ZWQgV1JNU1IgMDAwMDAwMDBjMDAxMDAw
+NCBmcm9tIDB4MDAwMDZmYjAzOWRlNzkwMCB0byAweDAwMDAwMDAwMDAwMGFiY2QuDQooWEVO
+KSBbMjAxMi0wOS0wMSAyMjoyOToyM10gQU1ELVZpOiBEaXNhYmxlOiBkZXZpY2UgaWQgPSAw
+eDBhMDAsIGRvbWFpbiA9IDAsIHBhZ2luZyBtb2RlID0gMw0KKFhFTikgWzIwMTItMDktMDEg
+MjI6Mjk6MjNdIEFNRC1WaTogU2V0dXAgSS9PIHBhZ2UgdGFibGU6IGRldmljZSBpZCA9IDB4
+MGEwMCwgcm9vdCB0YWJsZSA9IDB4MWUxZmMwMDAwLCBkb21haW4gPSAxNCwgcGFnaW5nIG1v
+ZGUgPSAzDQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyOToyM10gQU1ELVZpOiBSZS1hc3NpZ24g
+MDAwMDowYTowMC4wIGZyb20gZG9tMCB0byBkb20xNA0KKFhFTikgWzIwMTItMDktMDEgMjI6
+Mjk6MjNdIEFNRC1WaTogRGlzYWJsZTogZGV2aWNlIGlkID0gMHgwYTAxLCBkb21haW4gPSAw
+LCBwYWdpbmcgbW9kZSA9IDMNCihYRU4pIFsyMDEyLTA5LTAxIDIyOjI5OjIzXSBBTUQtVmk6
+IFNldHVwIEkvTyBwYWdlIHRhYmxlOiBkZXZpY2UgaWQgPSAweDBhMDEsIHJvb3QgdGFibGUg
+PSAweDFlMWZjMDAwMCwgZG9tYWluID0gMTQsIHBhZ2luZyBtb2RlID0gMw0KKFhFTikgWzIw
+MTItMDktMDEgMjI6Mjk6MjNdIEFNRC1WaTogUmUtYXNzaWduIDAwMDA6MGE6MDAuMSBmcm9t
+IGRvbTAgdG8gZG9tMTQNCihYRU4pIFsyMDEyLTA5LTAxIDIyOjI5OjIzXSBBTUQtVmk6IERp
+c2FibGU6IGRldmljZSBpZCA9IDB4MGEwMiwgZG9tYWluID0gMCwgcGFnaW5nIG1vZGUgPSAz
+DQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyOToyM10gQU1ELVZpOiBTZXR1cCBJL08gcGFnZSB0
+YWJsZTogZGV2aWNlIGlkID0gMHgwYTAyLCByb290IHRhYmxlID0gMHgxZTFmYzAwMDAsIGRv
+bWFpbiA9IDE0LCBwYWdpbmcgbW9kZSA9IDMNCihYRU4pIFsyMDEyLTA5LTAxIDIyOjI5OjIz
+XSBBTUQtVmk6IFJlLWFzc2lnbiAwMDAwOjBhOjAwLjIgZnJvbSBkb20wIHRvIGRvbTE0DQoo
+WEVOKSBbMjAxMi0wOS0wMSAyMjoyOToyM10gQU1ELVZpOiBEaXNhYmxlOiBkZXZpY2UgaWQg
+PSAweDBhMDMsIGRvbWFpbiA9IDAsIHBhZ2luZyBtb2RlID0gMw0KKFhFTikgWzIwMTItMDkt
+MDEgMjI6Mjk6MjNdIEFNRC1WaTogU2V0dXAgSS9PIHBhZ2UgdGFibGU6IGRldmljZSBpZCA9
+IDB4MGEwMywgcm9vdCB0YWJsZSA9IDB4MWUxZmMwMDAwLCBkb21haW4gPSAxNCwgcGFnaW5n
+IG1vZGUgPSAzDQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyOToyM10gQU1ELVZpOiBSZS1hc3Np
+Z24gMDAwMDowYTowMC4zIGZyb20gZG9tMCB0byBkb20xNA0KKFhFTikgWzIwMTItMDktMDEg
+MjI6Mjk6MjNdIEFNRC1WaTogRGlzYWJsZTogZGV2aWNlIGlkID0gMHgwYTA0LCBkb21haW4g
+PSAwLCBwYWdpbmcgbW9kZSA9IDMNCihYRU4pIFsyMDEyLTA5LTAxIDIyOjI5OjIzXSBBTUQt
+Vmk6IFNldHVwIEkvTyBwYWdlIHRhYmxlOiBkZXZpY2UgaWQgPSAweDBhMDQsIHJvb3QgdGFi
+bGUgPSAweDFlMWZjMDAwMCwgZG9tYWluID0gMTQsIHBhZ2luZyBtb2RlID0gMw0KKFhFTikg
+WzIwMTItMDktMDEgMjI6Mjk6MjNdIEFNRC1WaTogUmUtYXNzaWduIDAwMDA6MGE6MDAuNCBm
+cm9tIGRvbTAgdG8gZG9tMTQNCihYRU4pIFsyMDEyLTA5LTAxIDIyOjI5OjIzXSBBTUQtVmk6
+IERpc2FibGU6IGRldmljZSBpZCA9IDB4MGEwNSwgZG9tYWluID0gMCwgcGFnaW5nIG1vZGUg
+PSAzDQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyOToyM10gQU1ELVZpOiBTZXR1cCBJL08gcGFn
+ZSB0YWJsZTogZGV2aWNlIGlkID0gMHgwYTA1LCByb290IHRhYmxlID0gMHgxZTFmYzAwMDAs
+IGRvbWFpbiA9IDE0LCBwYWdpbmcgbW9kZSA9IDMNCihYRU4pIFsyMDEyLTA5LTAxIDIyOjI5
+OjIzXSBBTUQtVmk6IFJlLWFzc2lnbiAwMDAwOjBhOjAwLjUgZnJvbSBkb20wIHRvIGRvbTE0
+DQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyOToyM10gQU1ELVZpOiBEaXNhYmxlOiBkZXZpY2Ug
+aWQgPSAweDBhMDYsIGRvbWFpbiA9IDAsIHBhZ2luZyBtb2RlID0gMw0KKFhFTikgWzIwMTIt
+MDktMDEgMjI6Mjk6MjNdIEFNRC1WaTogU2V0dXAgSS9PIHBhZ2UgdGFibGU6IGRldmljZSBp
+ZCA9IDB4MGEwNiwgcm9vdCB0YWJsZSA9IDB4MWUxZmMwMDAwLCBkb21haW4gPSAxNCwgcGFn
+aW5nIG1vZGUgPSAzDQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyOToyM10gQU1ELVZpOiBSZS1h
+c3NpZ24gMDAwMDowYTowMC42IGZyb20gZG9tMCB0byBkb20xNA0KKFhFTikgWzIwMTItMDkt
+MDEgMjI6Mjk6MjNdIEFNRC1WaTogRGlzYWJsZTogZGV2aWNlIGlkID0gMHgwYTA3LCBkb21h
+aW4gPSAwLCBwYWdpbmcgbW9kZSA9IDMNCihYRU4pIFsyMDEyLTA5LTAxIDIyOjI5OjIzXSBB
+TUQtVmk6IFNldHVwIEkvTyBwYWdlIHRhYmxlOiBkZXZpY2UgaWQgPSAweDBhMDcsIHJvb3Qg
+dGFibGUgPSAweDFlMWZjMDAwMCwgZG9tYWluID0gMTQsIHBhZ2luZyBtb2RlID0gMw0KKFhF
+TikgWzIwMTItMDktMDEgMjI6Mjk6MjNdIEFNRC1WaTogUmUtYXNzaWduIDAwMDA6MGE6MDAu
+NyBmcm9tIGRvbTAgdG8gZG9tMTQNCihYRU4pIFsyMDEyLTA5LTAxIDIyOjI5OjIzXSBBTUQt
+Vmk6IERpc2FibGU6IGRldmljZSBpZCA9IDB4MDcwMCwgZG9tYWluID0gMCwgcGFnaW5nIG1v
+ZGUgPSAzDQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyOToyM10gQU1ELVZpOiBTZXR1cCBJL08g
+cGFnZSB0YWJsZTogZGV2aWNlIGlkID0gMHgwNzAwLCByb290IHRhYmxlID0gMHgxZTFmYzAw
+MDAsIGRvbWFpbiA9IDE0LCBwYWdpbmcgbW9kZSA9IDMNCihYRU4pIFsyMDEyLTA5LTAxIDIy
+OjI5OjIzXSBBTUQtVmk6IFJlLWFzc2lnbiAwMDAwOjA3OjAwLjAgZnJvbSBkb20wIHRvIGRv
+bTE0DQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyOToyM10gdHJhcHMuYzoyNTg0OmQxNCBEb21h
+aW4gYXR0ZW1wdGVkIFdSTVNSIDAwMDAwMDAwYzAwMTAwMDQgZnJvbSAweDAwMDA2ZmIwMzlk
+ZTc5MDAgdG8gMHgwMDAwMDAwMDAwMDBhYmNkLg0KKFhFTikgWzIwMTItMDktMDEgMjI6Mjk6
+MjldIHRyYXBzLmM6MjU4NDpkMTUgRG9tYWluIGF0dGVtcHRlZCBXUk1TUiAwMDAwMDAwMGMw
+MDEwMDA0IGZyb20gMHgwMDAwNmZiMDM5ZGU3OTAwIHRvIDB4MDAwMDAwMDAwMDAwYWJjZC4N
+CihYRU4pIFsyMDEyLTA5LTAxIDIzOjA1OjE5XSBncmFudF90YWJsZS5jOjI1NDpkMCBJbmNy
+ZWFzZWQgbWFwdHJhY2sgc2l6ZSB0byAyIGZyYW1lcw0KKFhFTikgWzIwMTItMDktMDIgMDA6
+MTg6MzZdIEFNRC1WaTogSU9fUEFHRV9GQVVMVDogZG9tYWluID0gMTQsIGRldmljZSBpZCA9
+IDB4MDcwMCwgZmF1bHQgYWRkcmVzcyA9IDB4YThlZDA3ZTANCihYRU4pIFsyMDEyLTA5LTAy
+IDAwOjE4OjM2XSBBTUQtVmk6IElPX1BBR0VfRkFVTFQ6IGRvbWFpbiA9IDE0LCBkZXZpY2Ug
+aWQgPSAweDA3MDAsIGZhdWx0IGFkZHJlc3MgPSAweGE4ZWQwODAwDQooWEVOKSBbMjAxMi0w
+OS0wMiAwMDoxODozNl0gQU1ELVZpOiBJT19QQUdFX0ZBVUxUOiBkb21haW4gPSAxNCwgZGV2
+aWNlIGlkID0gMHgwNzAwLCBmYXVsdCBhZGRyZXNzID0gMHhhOGVkMDg0MA0KKFhFTikgWzIw
+MTItMDktMDIgMDA6MTg6MzZdIEFNRC1WaTogSU9fUEFHRV9GQVVMVDogZG9tYWluID0gMTQs
+IGRldmljZSBpZCA9IDB4MDcwMCwgZmF1bHQgYWRkcmVzcyA9IDB4YThlZDA4NjANCihYRU4p
+IFsyMDEyLTA5LTAyIDAwOjE4OjM2XSBBTUQtVmk6IElPX1BBR0VfRkFVTFQ6IGRvbWFpbiA9
+IDE0LCBkZXZpY2UgaWQgPSAweDA3MDAsIGZhdWx0IGFkZHJlc3MgPSAweGE4ZWQwOGMwDQoo
+WEVOKSBbMjAxMi0wOS0wMiAwMDoxODozNl0gQU1ELVZpOiBJT19QQUdFX0ZBVUxUOiBkb21h
+aW4gPSAxNCwgZGV2aWNlIGlkID0gMHgwNzAwLCBmYXVsdCBhZGRyZXNzID0gMHhhOGVkMDg4
+MA0KKFhFTikgWzIwMTItMDktMDIgMDA6MTg6MzZdIEFNRC1WaTogSU9fUEFHRV9GQVVMVDog
+ZG9tYWluID0gMTQsIGRldmljZSBpZCA9IDB4MDcwMCwgZmF1bHQgYWRkcmVzcyA9IDB4YThl
+ZDBjMDANCihYRU4pIFsyMDEyLTA5LTAyIDAwOjE4OjM2XSBBTUQtVmk6IElPX1BBR0VfRkFV
+TFQ6IGRvbWFpbiA9IDE0LCBkZXZpY2UgaWQgPSAweDA3MDAsIGZhdWx0IGFkZHJlc3MgPSAw
+eGE4ZWQwYjYwDQooWEVOKSBbMjAxMi0wOS0wMiAwMDoxODozNl0gQU1ELVZpOiBJT19QQUdF
+X0ZBVUxUOiBkb21haW4gPSAxNCwgZGV2aWNlIGlkID0gMHgwNzAwLCBmYXVsdCBhZGRyZXNz
+ID0gMHhhOGVkMGEwMA0KKFhFTikgWzIwMTItMDktMDIgMDA6MTg6MzZdIEFNRC1WaTogSU9f
+UEFHRV9GQVVMVDogZG9tYWluID0gMTQsIGRldmljZSBpZCA9IDB4MDcwMCwgZmF1bHQgYWRk
+cmVzcyA9IDB4YThlZDBjNjANCihYRU4pIFsyMDEyLTA5LTAyIDAwOjE4OjM2XSBBTUQtVmk6
+IElPX1BBR0VfRkFVTFQ6IGRvbWFpbiA9IDE0LCBkZXZpY2UgaWQgPSAweDA3MDAsIGZhdWx0
+IGFkZHJlc3MgPSAweGE4ZWQwYTQwDQooWEVOKSBbMjAxMi0wOS0wMiAwMDoxODozNl0gQU1E
+LVZpOiBJT19QQUdFX0ZBVUxUOiBkb21haW4gPSAxNCwgZGV2aWNlIGlkID0gMHgwNzAwLCBm
+YXVsdCBhZGRyZXNzID0gMHhhOGVkMGM4MA0KKFhFTikgWzIwMTItMDktMDIgMDA6MTg6MzZd
+IEFNRC1WaTogSU9fUEFHRV9GQVVMVDogZG9tYWluID0gMTQsIGRldmljZSBpZCA9IDB4MDcw
+MCwgZmF1bHQgYWRkcmVzcyA9IDB4YThlZDA4ZTANCihYRU4pIFsyMDEyLTA5LTAyIDAwOjE4
+OjM2XSBBTUQtVmk6IElPX1BBR0VfRkFVTFQ6IGRvbWFpbiA9IDE0LCBkZXZpY2UgaWQgPSAw
+eDA3MDAsIGZhdWx0IGFkZHJlc3MgPSAweGE4ZWQwYjgwDQooWEVOKSBbMjAxMi0wOS0wMiAw
+MDoxODozNl0gQU1ELVZpOiBJT19QQUdFX0ZBVUxUOiBkb21haW4gPSAxNCwgZGV2aWNlIGlk
+ID0gMHgwNzAwLCBmYXVsdCBhZGRyZXNzID0gMHhhOGVkMGE2MA0KKFhFTikgWzIwMTItMDkt
+MDIgMDA6MTg6MzZdIEFNRC1WaTogSU9fUEFHRV9GQVVMVDogZG9tYWluID0gMTQsIGRldmlj
+ZSBpZCA9IDB4MDcwMCwgZmF1bHQgYWRkcmVzcyA9IDB4YThlZDBiYzANCihYRU4pIFsyMDEy
+LTA5LTAyIDAwOjE4OjM2XSBBTUQtVmk6IElPX1BBR0VfRkFVTFQ6IGRvbWFpbiA9IDE0LCBk
+ZXZpY2UgaWQgPSAweDA3MDAsIGZhdWx0IGFkZHJlc3MgPSAweGE4ZWQwYmUwDQooWEVOKSBb
+MjAxMi0wOS0wMiAwMDoxODozNl0gQU1ELVZpOiBJT19QQUdFX0ZBVUxUOiBkb21haW4gPSAx
+NCwgZGV2aWNlIGlkID0gMHgwNzAwLCBmYXVsdCBhZGRyZXNzID0gMHhhOGVkMGE4MA0KKFhF
+TikgWzIwMTItMDktMDIgMDA6MTg6MzZdIEFNRC1WaTogSU9fUEFHRV9GQVVMVDogZG9tYWlu
+ID0gMTQsIGRldmljZSBpZCA9IDB4MDcwMCwgZmF1bHQgYWRkcmVzcyA9IDB4YThlZDBjNDAN
+CihYRU4pIFsyMDEyLTA5LTAyIDAwOjE4OjM2XSBBTUQtVmk6IElPX1BBR0VfRkFVTFQ6IGRv
+bWFpbiA9IDE0LCBkZXZpY2UgaWQgPSAweDA3MDAsIGZhdWx0IGFkZHJlc3MgPSAweGE4ZWQw
+YWUwDQooWEVOKSBbMjAxMi0wOS0wMiAwMDoxODozNl0gQU1ELVZpOiBJT19QQUdFX0ZBVUxU
+OiBkb21haW4gPSAxNCwgZGV2aWNlIGlkID0gMHgwNzAwLCBmYXVsdCBhZGRyZXNzID0gMHhh
+OGVkMDllMA0KKFhFTikgWzIwMTItMDktMDIgMDA6MTg6MzZdIEFNRC1WaTogSU9fUEFHRV9G
+QVVMVDogZG9tYWluID0gMTQsIGRldmljZSBpZCA9IDB4MDcwMCwgZmF1bHQgYWRkcmVzcyA9
+IDB4YThlZDA5ODANCihYRU4pIFsyMDEyLTA5LTAyIDAwOjE4OjM2XSBBTUQtVmk6IElPX1BB
+R0VfRkFVTFQ6IGRvbWFpbiA9IDE0LCBkZXZpY2UgaWQgPSAweDA3MDAsIGZhdWx0IGFkZHJl
+c3MgPSAweGE4ZWQwOWMwDQooWEVOKSBbMjAxMi0wOS0wMiAwMDoxODozNl0gQU1ELVZpOiBJ
+T19QQUdFX0ZBVUxUOiBkb21haW4gPSAxNCwgZGV2aWNlIGlkID0gMHgwNzAwLCBmYXVsdCBh
+ZGRyZXNzID0gMHhhOGVkMGI0MA0KKFhFTikgWzIwMTItMDktMDIgMDA6MTg6MzZdIEFNRC1W
+aTogSU9fUEFHRV9GQVVMVDogZG9tYWluID0gMTQsIGRldmljZSBpZCA9IDB4MDcwMCwgZmF1
+bHQgYWRkcmVzcyA9IDB4YThlZDBiMDANCihYRU4pIFsyMDEyLTA5LTAyIDAwOjE4OjM2XSBB
+TUQtVmk6IElPX1BBR0VfRkFVTFQ6IGRvbWFpbiA9IDE0LCBkZXZpY2UgaWQgPSAweDA3MDAs
+IGZhdWx0IGFkZHJlc3MgPSAweGE4ZWQwY2MwDQooWEVOKSBbMjAxMi0wOS0wMiAwMDoxODoz
+Nl0gQU1ELVZpOiBJT19QQUdFX0ZBVUxUOiBkb21haW4gPSAxNCwgZGV2aWNlIGlkID0gMHgw
+NzAwLCBmYXVsdCBhZGRyZXNzID0gMHhhOGVkMDk0MA0KKFhFTikgWzIwMTItMDktMDIgMDA6
+MTg6MzZdIEFNRC1WaTogSU9fUEFHRV9GQVVMVDogZG9tYWluID0gMTQsIGRldmljZSBpZCA9
+IDB4MDcwMCwgZmF1bHQgYWRkcmVzcyA9IDB4YThlZDBhYzANCihYRU4pIFsyMDEyLTA5LTAy
+IDAwOjE4OjM2XSBBTUQtVmk6IElPX1BBR0VfRkFVTFQ6IGRvbWFpbiA9IDE0LCBkZXZpY2Ug
+aWQgPSAweDA3MDAsIGZhdWx0IGFkZHJlc3MgPSAweGE4ZWQwOTAwDQooWEVOKSBbMjAxMi0w
+OS0wMiAwMDoxODozNl0gQU1ELVZpOiBJT19QQUdFX0ZBVUxUOiBkb21haW4gPSAxNCwgZGV2
+aWNlIGlkID0gMHgwNzAwLCBmYXVsdCBhZGRyZXNzID0gMHhhOGVkMDk2MA0KKFhFTikgWzIw
+MTItMDktMDIgMDA6MTg6MzZdIEFNRC1WaTogSU9fUEFHRV9GQVVMVDogZG9tYWluID0gMTQs
+IGRldmljZSBpZCA9IDB4MDcwMCwgZmF1bHQgYWRkcmVzcyA9IDB4YThlZDBjZTANCihYRU4p
+IFsyMDEyLTA5LTAyIDAwOjE4OjM2XSBBTUQtVmk6IElPX1BBR0VfRkFVTFQ6IGRvbWFpbiA9
+IDE0LCBkZXZpY2UgaWQgPSAweDA3MDAsIGZhdWx0IGFkZHJlc3MgPSAweGE4ZWQwZDQwDQoo
+WEVOKSBbMjAxMi0wOS0wMiAwMDoxODozNl0gQU1ELVZpOiBJT19QQUdFX0ZBVUxUOiBkb21h
+aW4gPSAxNCwgZGV2aWNlIGlkID0gMHgwNzAwLCBmYXVsdCBhZGRyZXNzID0gMHhhOGVkMGQw
+MA0KKFhFTikgWzIwMTItMDktMDIgMDA6MTg6MzZdIEFNRC1WaTogSU9fUEFHRV9GQVVMVDog
+ZG9tYWluID0gMTQsIGRldmljZSBpZCA9IDB4MDcwMCwgZmF1bHQgYWRkcmVzcyA9IDB4YThl
+ZDBkNjANCihYRU4pIFsyMDEyLTA5LTAyIDAwOjU1OjAyXSB0cmFwcy5jOjMxNTY6IEdQRiAo
+MDA2MCk6IGZmZmY4MmM0ODAxNWM5ZWUgLT4gZmZmZjgyYzQ4MDIyNGIxMw0KKFhFTikgWzIw
+MTItMDktMDIgMDQ6MjE6MjNdIEFNRC1WaTogSU9fUEFHRV9GQVVMVDogZG9tYWluID0gMTQs
+IGRldmljZSBpZCA9IDB4MGEwNiwgZmF1bHQgYWRkcmVzcyA9IDB4YTliMGYwODANCihYRU4p
+IFsyMDEyLTA5LTAyIDA0OjIxOjIzXSBBTUQtVmk6IElPX1BBR0VfRkFVTFQ6IGRvbWFpbiA9
+IDE0LCBkZXZpY2UgaWQgPSAweDBhMDYsIGZhdWx0IGFkZHJlc3MgPSAweGE5YjBmMDQwDQo=
+------------03516D00221173D65
+Content-Type: text/plain; charset="us-ascii"
+MIME-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Content-Disposition: inline
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
+------------03516D00221173D65--
+
+
+
diff --git a/config/examples/test/corpus/<4610648186.20120904090841@eikelenboom.it> b/config/examples/test/corpus/<4610648186.20120904090841@eikelenboom.it>
new file mode 100644 (file)
index 0000000..557eb27
--- /dev/null
@@ -0,0 +1,1319 @@
+From xen-devel-bounces@lists.xen.org Tue Sep 04 08:14:14 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Tue, 04 Sep 2012 08:14:14 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T8nKi-0001Gm-9e
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 04 Sep 2012 08:14:14 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T8nFl-0001j9-5S; Tue, 04 Sep 2012 07:08:53 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <linux@eikelenboom.it>) id 1T8nFj-0001iw-77
+       for xen-devel@lists.xen.org; Tue, 04 Sep 2012 07:08:51 +0000
+Received: from [85.158.143.35:59501] by server-2.bemta-4.messagelabs.com id
+       BC/9F-21239-209A5405; Tue, 04 Sep 2012 07:08:50 +0000
+X-Env-Sender: linux@eikelenboom.it
+X-Msg-Ref: server-11.tower-21.messagelabs.com!1346742525!11383691!1
+X-Originating-IP: [188.40.164.121]
+X-SpamReason: No, hits=0.5 required=7.0 tests=BODY_RANDOM_LONG
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 11634 invoked from network); 4 Sep 2012 07:08:46 -0000
+Received: from static.121.164.40.188.clients.your-server.de (HELO
+       smtp.eikelenboom.it) (188.40.164.121)
+       by server-11.tower-21.messagelabs.com with AES256-SHA encrypted SMTP;
+       4 Sep 2012 07:08:46 -0000
+Received: from 26-69-ftth.onsneteindhoven.nl ([88.159.69.26]:49230
+       helo=[172.16.1.20])
+       by smtp.eikelenboom.it with esmtpsa (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72) (envelope-from <linux@eikelenboom.it>)
+       id 1T8nCY-00021c-QM; Tue, 04 Sep 2012 09:05:35 +0200
+Date: Tue, 4 Sep 2012 09:08:41 +0200
+From: Sander Eikelenboom <linux@eikelenboom.it>
+Organization: Eikelenboom IT services
+X-Priority: 3 (Normal)
+Message-ID: <4610648186.20120904090841@eikelenboom.it>
+To: "Jan Beulich" <JBeulich@suse.com>
+In-Reply-To: <5044849002000078000982EA@nat28.tlf.novell.com>
+References: <7914B38A4445B34AA16EB9F1352942F1012F0F6F4B98@SJCPMAILBOX01.citrite.net>
+       <CC681CDD.3D966%keir.xen@gmail.com>
+       <40501859.20120902104331@eikelenboom.it>
+       <5044849002000078000982EA@nat28.tlf.novell.com>
+MIME-Version: 1.0
+Content-Type: multipart/mixed;
+ boundary="----------05A1A81AE2E0F0B49"
+Cc: "wei.wang2@amd.com" <wei.wang2@amd.com>, Keir Fraser <keir.xen@gmail.com>,
+       Santosh Jodh <Santosh.Jodh@citrix.com>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] Using debug-key 'o:  Dump IOMMU p2m table,
+       locks up machine
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+------------05A1A81AE2E0F0B49
+Content-Type: text/plain; charset=us-ascii
+Content-Transfer-Encoding: 7bit
+
+Hello Jan,
+
+Monday, September 3, 2012, 10:21:04 AM, you wrote:
+
+>>>> On 02.09.12 at 10:43, Sander Eikelenboom <linux@eikelenboom.it> wrote:
+>> I have attached new output from xl dmesg, this time with iommu=debug on (the 
+>> option changed from 4.1 to 4.2).
+
+> This one
+
+>>(XEN) [2012-09-02 00:55:02] traps.c:3156: GPF (0060): ffff82c48015c9ee -> ffff82c480224b13
+
+> also worries me. While Xen gracefully recovers from it, these
+> messages still generally indicate a problem somewhere. Could
+> you resolve the addresses to file:line tuples? And, assuming
+> this happens in the context of doing something on behalf of
+> the guest in the context of a guest vCPU, could you also
+> check what guest side action triggers this (e.g. by adding a
+> call to show_execution_state() alongside the printing of the
+> message)?
+
+Hope i have done it right:
+
+diff -r a0b5f8102a00 xen/arch/x86/traps.c
+--- a/xen/arch/x86/traps.c      Tue Aug 28 22:40:45 2012 +0100
++++ b/xen/arch/x86/traps.c      Tue Sep 04 08:53:54 2012 +0200
+@@ -3154,6 +3154,11 @@
+     {
+         dprintk(XENLOG_INFO, "GPF (%04x): %p -> %p\n",
+                 regs->error_code, _p(regs->eip), _p(fixup));
++        dprintk(XENLOG_INFO, " show_execution_state(regs): \n");
++       show_execution_state(regs);
++        dprintk(XENLOG_INFO, "  show_execution_state(guest_cpu_user_regs()): \n");
++       show_execution_state(guest_cpu_user_regs());
++
+         regs->eip = fixup;
+         return;
+     }
+
+
+Gives (complete dmesg attached:
+
+(XEN) [2012-09-03 21:20:49] AMD-Vi: IO_PAGE_FAULT: domain = 14, device id = 0x0700, fault address = 0xa8ee82c0
+(XEN) [2012-09-03 21:20:49] AMD-Vi: IO_PAGE_FAULT: domain = 14, device id = 0x0700, fault address = 0xa8ee8320
+(XEN) [2012-09-04 03:00:34] traps.c:3156: GPF (0060): ffff82c48015c9ee -> ffff82c480224b73
+(XEN) [2012-09-04 03:00:34] traps.c:3157:  show_execution_state(regs): 
+(XEN) [2012-09-04 03:00:34] ----[ Xen-4.2.0-rc4-pre  x86_64  debug=y  Not tainted ]----
+(XEN) [2012-09-04 03:00:34] CPU:    3
+(XEN) [2012-09-04 03:00:34] RIP:    e008:[<ffff82c48015c9ee>] context_switch+0x394/0xeeb
+(XEN) [2012-09-04 03:00:34] RFLAGS: 0000000000010246   CONTEXT: hypervisor
+(XEN) [2012-09-04 03:00:34] rax: 0000000000000001   rbx: ffff8300a52da000   rcx: 0000000000000001
+(XEN) [2012-09-04 03:00:34] rdx: 0000000000000063   rsi: 0000000000000001   rdi: 000000000000037e
+(XEN) [2012-09-04 03:00:34] rbp: ffff83024d8a7e28   rsp: ffff83024d8a7d88   r8:  0000000000000006
+(XEN) [2012-09-04 03:00:34] r9:  ffff83024d95ebb8   r10: 00000000deadbeef   r11: 0000000000000246
+(XEN) [2012-09-04 03:00:34] r12: ffff8300afd11000   r13: 0000000000000003   r14: 0000000000000003
+(XEN) [2012-09-04 03:00:34] r15: ffff83024d8aa048   cr0: 000000008005003b   cr4: 00000000000006f0
+(XEN) [2012-09-04 03:00:34] cr3: 0000000068506000   cr2: ffffffffff600400
+(XEN) [2012-09-04 03:00:34] ds: 0000   es: 0000   fs: 0000   gs: 0000   ss: e010   cs: e008
+(XEN) [2012-09-04 03:00:34] Xen stack trace from rsp=ffff83024d8a7d88:
+(XEN) [2012-09-04 03:00:34]    0000000000000029 0000000000000000 0000001e00000000 0000000000000000
+(XEN) [2012-09-04 03:00:34]    ffff83024d8a7db8 ffff83024d8aa060 ffff83024d8a7e18 ffff82c4801805ae
+(XEN) [2012-09-04 03:00:34]    0000000000012f22 00003fd9ab6d6ca6 0000000000000000 0000000000000000
+(XEN) [2012-09-04 03:00:34]    0000000000000000 0000000000000000 ffff83024d8a7e28 ffff8300afd11000
+(XEN) [2012-09-04 03:00:34]    ffff8300a52da000 000013ebba37e10c 0000000000000002 ffff83024d8aa048
+(XEN) [2012-09-04 03:00:34]    ffff83024d8a7eb8 ffff82c480124a70 0000000000000000 ffff83024d8aa040
+(XEN) [2012-09-04 03:00:34]    000000034d8a7e68 000013ebba37e10c ffff83024d8a7e88 ffff82c480189483
+(XEN) [2012-09-04 03:00:34]    ffff8300a52da000 0000000001c9c380 ffff83024d8a7e00 ffff82c4801226ce
+(XEN) [2012-09-04 03:00:34]    ffff83024d8a7ef8 ffff82c4802d8180 00000000ffffffff ffff82c4802d8000
+(XEN) [2012-09-04 03:00:34]    ffff83024d8a7f18 ffffffffffffffff ffff83024d8a7ef8 ffff82c480125e31
+(XEN) [2012-09-04 03:00:34]    0000000000000246 ffff8300afd11000 ffffffff81ece5d8 ffffffff81f420c0
+(XEN) [2012-09-04 03:00:34]    0000000000000000 0000000000000000 ffff83024d8a7f08 ffff82c480125e68
+(XEN) [2012-09-04 03:00:34]    00007cfdb27580c7 ffff82c480222ef6 0000000000000000 ffff8800030e14a0
+(XEN) [2012-09-04 03:00:34]    0000000000000000 ffff88001a0800d8 ffff88001cd17bf0 ffff88001fc0b100
+(XEN) [2012-09-04 03:00:34]    0000000000000202 0000000000000000 0000000000000001 0000000000000000
+(XEN) [2012-09-04 03:00:34]    0000000000000000 ffffffff810011aa ffff88001e99e180 00000000deadbeef
+(XEN) [2012-09-04 03:00:34]    00000000deadbeef 0000010000000000 ffffffff810011aa 000000000000e033
+(XEN) [2012-09-04 03:00:34]    0000000000000202 ffff88001cd17bb8 000000000000e02b 000053fd0000beef
+(XEN) [2012-09-04 03:00:34]    800000000000beef 740000000000beef 000000000018beef 000053fe00000003
+(XEN) [2012-09-04 03:00:34]    ffff8300a52da000 0000003dcd5a8680 000000000018e0c9
+(XEN) [2012-09-04 03:00:34] Xen call trace:
+(XEN) [2012-09-04 03:00:34]    [<ffff82c48015c9ee>] context_switch+0x394/0xeeb
+(XEN) [2012-09-04 03:00:34]    [<ffff82c480124a70>] schedule+0x666/0x675
+(XEN) [2012-09-04 03:00:34]    [<ffff82c480125e31>] __do_softirq+0xa4/0xb5
+(XEN) [2012-09-04 03:00:34]    [<ffff82c480125e68>] do_softirq+0x26/0x28
+(XEN) [2012-09-04 03:00:34]    
+(XEN) [2012-09-04 03:00:34] traps.c:3159:   show_execution_state(guest_cpu_user_regs()): 
+(XEN) [2012-09-04 03:00:34] ----[ Xen-4.2.0-rc4-pre  x86_64  debug=y  Not tainted ]----
+(XEN) [2012-09-04 03:00:34] CPU:    3
+(XEN) [2012-09-04 03:00:34] RIP:    e033:[<ffffffff810011aa>]
+(XEN) [2012-09-04 03:00:34] RFLAGS: 0000000000000202   EM: 1   CONTEXT: pv guest
+(XEN) [2012-09-04 03:00:34] rax: 0000000000000000   rbx: ffff88001fc0b100   rcx: ffffffff810011aa
+(XEN) [2012-09-04 03:00:34] rdx: ffff88001e99e180   rsi: 00000000deadbeef   rdi: 00000000deadbeef
+(XEN) [2012-09-04 03:00:34] rbp: ffff88001cd17bf0   rsp: ffff88001cd17bb8   r8:  0000000000000000
+(XEN) [2012-09-04 03:00:34] r9:  0000000000000001   r10: 0000000000000000   r11: 0000000000000202
+(XEN) [2012-09-04 03:00:34] r12: ffff88001a0800d8   r13: 0000000000000000   r14: ffff8800030e14a0
+(XEN) [2012-09-04 03:00:34] r15: 0000000000000000   cr0: 000000008005003b   cr4: 00000000000006f0
+(XEN) [2012-09-04 03:00:34] cr3: 0000000068506000   cr2: 00000000f76e4000
+(XEN) [2012-09-04 03:00:34] ds: 0000   es: 0000   fs: 0000   gs: 0000   ss: e02b   cs: e033
+(XEN) [2012-09-04 03:00:34] Guest stack trace from rsp=ffff88001cd17bb8:
+(XEN) [2012-09-04 03:00:34]    0000000000000000 0000000000000001 ffffffff81004942 ffff8800030e1040
+(XEN) [2012-09-04 03:00:34]    ffff88001e99e180 0000000000000000 ffff8800030e14a0 ffff88001cd17c10
+(XEN) [2012-09-04 03:00:34]    ffffffff81003941 ffff88001e99e180 ffff8800030e1040 ffff88001cd17c70
+(XEN) [2012-09-04 03:00:34]    ffffffff8100b850 ffff8800030e1040 ffff88001d280080 0000000000000063
+(XEN) [2012-09-04 03:00:34]    ffff88001fc10a80 ffff88001cd17c80 ffff88001fc12e80 0000000000000000
+(XEN) [2012-09-04 03:00:34]    ffff88001d285b00 0000000000000000 0000000000000000 ffff8800030e1040
+(XEN) [2012-09-04 03:00:34]    ffffffff817fa2f5 ffff88001cd17dd0 0000000000000216 ffffffff810700fe
+(XEN) [2012-09-04 03:00:34]    ffff88001fc0e018 ffff8800030e1040 0000000000012e80 ffff88001cd17fd8
+(XEN) [2012-09-04 03:00:34]    ffff88001cd16010 0000000000012e80 0000000000012e80 ffff88001cd17fd8
+(XEN) [2012-09-04 03:00:34]    0000000000012e80 ffff88001e999040 ffff8800030e1040 ffff880000000000
+(XEN) [2012-09-04 03:00:34]    ffff880000000000 ffff88001fc0e000 ffff88001cdb3300 ffff88001fc16e00
+(XEN) [2012-09-04 03:00:34]    ffff88001fc0e000 ffff88001cd17d50 ffffffff817fb614 ffff88001d08c140
+(XEN) [2012-09-04 03:00:34]    ffff88001cdb3300 ffff88001fc16e00 ffff88001fc0e000 ffff88001cd17de0
+(XEN) [2012-09-04 03:00:34]    ffffffff8107f059 ffff8800030e1040 ffff8800030e1040 ffffffff817fbe7b
+(XEN) [2012-09-04 03:00:34]    ffff88001fc0e448 ffff8800030e1040 ffff88001cdb3320 ffff88001cd17db0
+(XEN) [2012-09-04 03:00:34]    ffffffff810acb78 ffff88001fc0e000 ffff88001cdb3300 ffff88001fc0e438
+(XEN) [2012-09-04 03:00:34]    ffff88001fc0e448 ffff8800030e1040 ffff88001cdb3320 ffff88001cd17de0
+(XEN) [2012-09-04 03:00:34]    ffffffff817fa814 ffff88001cd17eb0 ffffffff8107f6f9 0000000000000000
+(XEN) [2012-09-04 03:00:34]    ffff88001cd17e50 ffff8800030e1040 ffff88001cd16010 ffff8800030e0240
+(XEN) [2012-09-04 03:00:34]    ffff88001cd17e68 ffff8800030e1040 ffff8800030e1040 ffff8800030e1040
+(XEN) [2012-09-04 03:15:12] grant_table.c:254:d0 Increased maptrack size to 2 frames
+
+
+> Jan
+
+------------05A1A81AE2E0F0B49
+Content-Type: text/plain;
+ name="xl-dmesg.txt"
+Content-transfer-encoding: base64
+Content-Disposition: attachment;
+ filename="xl-dmesg.txt"
+
+IF9fICBfXyAgICAgICAgICAgIF8gIF8gICAgX19fXyAgICBfX18gICAgICAgICAgICAgIF8g
+IF8gICAgICAgICAgICAgICAgICAgICANCiBcIFwvIC9fX18gXyBfXyAgIHwgfHwgfCAgfF9f
+XyBcICAvIF8gXCAgICBfIF9fIF9fX3wgfHwgfCAgICAgXyBfXyAgXyBfXyBfX18gDQogIFwg
+IC8vIF8gXCAnXyBcICB8IHx8IHxfICAgX18pIHx8IHwgfCB8X198ICdfXy8gX198IHx8IHxf
+IF9ffCAnXyBcfCAnX18vIF8gXA0KICAvICBcICBfXy8gfCB8IHwgfF9fICAgX3wgLyBfXy8g
+fCB8X3wgfF9ffCB8IHwgKF9ffF9fICAgX3xfX3wgfF8pIHwgfCB8ICBfXy8NCiAvXy9cX1xf
+X198X3wgfF98ICAgIHxffChfKV9fX19fKF8pX19fLyAgIHxffCAgXF9fX3wgIHxffCAgICB8
+IC5fXy98X3wgIFxfX198DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
+ICAgICAgICAgICAgICAgICAgICAgICAgfF98ICAgICAgICAgICAgIA0KKFhFTikgWGVuIHZl
+cnNpb24gNC4yLjAtcmM0LXByZSAocm9vdEBkeW5kbnMub3JnKSAoZ2NjIChEZWJpYW4gNC40
+LjUtOCkgNC40LjUpIE1vbiBTZXAgIDMgMjI6MzY6MzAgQ0VTVCAyMDEyDQooWEVOKSBMYXRl
+c3QgQ2hhbmdlU2V0OiBUdWUgQXVnIDI4IDIyOjQwOjQ1IDIwMTIgKzAxMDAgMjU3ODY6YTBi
+NWY4MTAyYTAwDQooWEVOKSBCb290bG9hZGVyOiBHUlVCIDEuOTgrMjAxMDA4MDQtMTQrc3F1
+ZWV6ZTENCihYRU4pIENvbW1hbmQgbGluZTogZG9tMF9tZW09MTAyNE0gbG9nbHZsPWFsbCBs
+b2dsdmxfZ3Vlc3Q9YWxsIGNvbnNvbGVfdGltZXN0YW1wcyB2Z2E9Z2Z4LTEyODB4MTAyNHgz
+MiBjcHVpZGxlIGNwdWZyZXE9eGVuIG5vcmVib290IGRlYnVnIGxhcGljPWRlYnVnIGFwaWNf
+dmVyYm9zaXR5PWRlYnVnIGFwaWM9ZGVidWcgaW9tbXU9b24sdmVyYm9zZSxkZWJ1ZyBjb20x
+PTM4NDAwLDhuMSBjb25zb2xlPXZnYSxjb20xDQooWEVOKSBWaWRlbyBpbmZvcm1hdGlvbjoN
+CihYRU4pICBWR0EgaXMgZ3JhcGhpY3MgbW9kZSAxMjgweDEwMjQsIDMyIGJwcA0KKFhFTikg
+IFZCRS9EREMgbWV0aG9kczogVjI7IEVESUQgdHJhbnNmZXIgdGltZTogMSBzZWNvbmRzDQoo
+WEVOKSBEaXNjIGluZm9ybWF0aW9uOg0KKFhFTikgIEZvdW5kIDIgTUJSIHNpZ25hdHVyZXMN
+CihYRU4pICBGb3VuZCAyIEVERCBpbmZvcm1hdGlvbiBzdHJ1Y3R1cmVzDQooWEVOKSBYZW4t
+ZTgyMCBSQU0gbWFwOg0KKFhFTikgIDAwMDAwMDAwMDAwMDAwMDAgLSAwMDAwMDAwMDAwMDli
+MDAwICh1c2FibGUpDQooWEVOKSAgMDAwMDAwMDAwMDA5YjAwMCAtIDAwMDAwMDAwMDAwYTAw
+MDAgKHJlc2VydmVkKQ0KKFhFTikgIDAwMDAwMDAwMDAwZTQwMDAgLSAwMDAwMDAwMDAwMTAw
+MDAwIChyZXNlcnZlZCkNCihYRU4pICAwMDAwMDAwMDAwMTAwMDAwIC0gMDAwMDAwMDBhZmU5
+MDAwMCAodXNhYmxlKQ0KKFhFTikgIDAwMDAwMDAwYWZlOTAwMDAgLSAwMDAwMDAwMGFmZTll
+MDAwIChBQ1BJIGRhdGEpDQooWEVOKSAgMDAwMDAwMDBhZmU5ZTAwMCAtIDAwMDAwMDAwYWZl
+ZTAwMDAgKEFDUEkgTlZTKQ0KKFhFTikgIDAwMDAwMDAwYWZlZTAwMDAgLSAwMDAwMDAwMGFm
+ZjAwMDAwIChyZXNlcnZlZCkNCihYRU4pICAwMDAwMDAwMGZmZTAwMDAwIC0gMDAwMDAwMDEw
+MDAwMDAwMCAocmVzZXJ2ZWQpDQooWEVOKSAgMDAwMDAwMDEwMDAwMDAwMCAtIDAwMDAwMDAy
+NTAwMDAwMDAgKHVzYWJsZSkNCihYRU4pIEFDUEk6IFJTRFAgMDAwRkIxMjAsIDAwMTQgKHIw
+IEFDUElBTSkNCihYRU4pIEFDUEk6IFJTRFQgQUZFOTAwMDAsIDAwNDggKHIxIE1TSSAgICBP
+RU1TTElDICAyMDEwMDYyMiBNU0ZUICAgICAgIDk3KQ0KKFhFTikgQUNQSTogRkFDUCBBRkU5
+MDIwMCwgMDA4NCAocjEgNzY0ME1TIEE3NjQwMTAwIDIwMTAwNjIyIE1TRlQgICAgICAgOTcp
+DQooWEVOKSBBQ1BJOiBEU0RUIEFGRTkwNUUwLCA5NDQ5IChyMSAgQTc2NDAgQTc2NDAxMDAg
+ICAgICAxMDAgSU5UTCAyMDA1MTExNykNCihYRU4pIEFDUEk6IEZBQ1MgQUZFOUUwMDAsIDAw
+NDANCihYRU4pIEFDUEk6IEFQSUMgQUZFOTAzOTAsIDAwODggKHIxIDc2NDBNUyBBNzY0MDEw
+MCAyMDEwMDYyMiBNU0ZUICAgICAgIDk3KQ0KKFhFTikgQUNQSTogTUNGRyBBRkU5MDQyMCwg
+MDAzQyAocjEgNzY0ME1TIE9FTU1DRkcgIDIwMTAwNjIyIE1TRlQgICAgICAgOTcpDQooWEVO
+KSBBQ1BJOiBTTElDIEFGRTkwNDYwLCAwMTc2IChyMSBNU0kgICAgT0VNU0xJQyAgMjAxMDA2
+MjIgTVNGVCAgICAgICA5NykNCihYRU4pIEFDUEk6IE9FTUIgQUZFOUUwNDAsIDAwNzIgKHIx
+IDc2NDBNUyBBNzY0MDEwMCAyMDEwMDYyMiBNU0ZUICAgICAgIDk3KQ0KKFhFTikgQUNQSTog
+U1JBVCBBRkU5QTVFMCwgMDEwOCAocjMgQU1EICAgIEZBTV9GXzEwICAgICAgICAyIEFNRCAg
+ICAgICAgIDEpDQooWEVOKSBBQ1BJOiBIUEVUIEFGRTlBNkYwLCAwMDM4IChyMSA3NjQwTVMg
+T0VNSFBFVCAgMjAxMDA2MjIgTVNGVCAgICAgICA5NykNCihYRU4pIEFDUEk6IElWUlMgQUZF
+OUE3MzAsIDAwRjggKHIxICBBTUQgICAgIFJEODkwUyAgIDIwMjAzMSBBTUQgICAgICAgICAw
+KQ0KKFhFTikgQUNQSTogU1NEVCBBRkU5QTgzMCwgMERBNCAocjEgQSBNIEkgIFBPV0VSTk9X
+ICAgICAgICAxIEFNRCAgICAgICAgIDEpDQooWEVOKSBTeXN0ZW0gUkFNOiA4MTkwTUIgKDgz
+ODY3MzJrQikNCihYRU4pIFNSQVQ6IFBYTSAwIC0+IEFQSUMgMCAtPiBOb2RlIDANCihYRU4p
+IFNSQVQ6IFBYTSAwIC0+IEFQSUMgMSAtPiBOb2RlIDANCihYRU4pIFNSQVQ6IFBYTSAwIC0+
+IEFQSUMgMiAtPiBOb2RlIDANCihYRU4pIFNSQVQ6IFBYTSAwIC0+IEFQSUMgMyAtPiBOb2Rl
+IDANCihYRU4pIFNSQVQ6IFBYTSAwIC0+IEFQSUMgNCAtPiBOb2RlIDANCihYRU4pIFNSQVQ6
+IFBYTSAwIC0+IEFQSUMgNSAtPiBOb2RlIDANCihYRU4pIFNSQVQ6IE5vZGUgMCBQWE0gMCAw
+LWEwMDAwDQooWEVOKSBTUkFUOiBOb2RlIDAgUFhNIDAgMTAwMDAwLWIwMDAwMDAwDQooWEVO
+KSBTUkFUOiBOb2RlIDAgUFhNIDAgMTAwMDAwMDAwLTI1MDAwMDAwMA0KKFhFTikgTlVNQTog
+QWxsb2NhdGVkIG1lbW5vZGVtYXAgZnJvbSAyNGQ5YTQwMDAgLSAyNGQ5YTcwMDANCihYRU4p
+IE5VTUE6IFVzaW5nIDggZm9yIHRoZSBoYXNoIHNoaWZ0Lg0KKFhFTikgRG9tYWluIGhlYXAg
+aW5pdGlhbGlzZWQNCihYRU4pIHZlc2FmYjogZnJhbWVidWZmZXIgYXQgMHhmYjAwMDAwMCwg
+bWFwcGVkIHRvIDB4ZmZmZjgyYzAwMDAwMDAwMCwgdXNpbmcgNjE0NGssIHRvdGFsIDE0MzM2
+aw0KKFhFTikgdmVzYWZiOiBtb2RlIGlzIDEyODB4MTAyNHgzMiwgbGluZWxlbmd0aD01MTIw
+LCBmb250IDh4MTYNCihYRU4pIHZlc2FmYjogVHJ1ZWNvbG9yOiBzaXplPTg6ODo4OjgsIHNo
+aWZ0PTI0OjE2Ojg6MA0KKFhFTikgZm91bmQgU01QIE1QLXRhYmxlIGF0IDAwMGZmNzgwDQoo
+WEVOKSBETUkgcHJlc2VudC4NCihYRU4pIEFQSUMgYm9vdCBzdGF0ZSBpcyAneGFwaWMnDQoo
+WEVOKSBVc2luZyBBUElDIGRyaXZlciBkZWZhdWx0DQooWEVOKSBBQ1BJOiBQTS1UaW1lciBJ
+TyBQb3J0OiAweDgwOA0KKFhFTikgQUNQSTogQUNQSSBTTEVFUCBJTkZPOiBwbTF4X2NudFs4
+MDQsMF0sIHBtMXhfZXZ0WzgwMCwwXQ0KKFhFTikgQUNQSTogICAgICAgICAgICAgICAgICB3
+YWtldXBfdmVjW2FmZTllMDBjXSwgdmVjX3NpemVbMjBdDQooWEVOKSBBQ1BJOiBMb2NhbCBB
+UElDIGFkZHJlc3MgMHhmZWUwMDAwMA0KKFhFTikgQUNQSTogTEFQSUMgKGFjcGlfaWRbMHgw
+MV0gbGFwaWNfaWRbMHgwMF0gZW5hYmxlZCkNCihYRU4pIFByb2Nlc3NvciAjMCAwOjEwIEFQ
+SUMgdmVyc2lvbiAxNg0KKFhFTikgQUNQSTogTEFQSUMgKGFjcGlfaWRbMHgwMl0gbGFwaWNf
+aWRbMHgwMV0gZW5hYmxlZCkNCihYRU4pIFByb2Nlc3NvciAjMSAwOjEwIEFQSUMgdmVyc2lv
+biAxNg0KKFhFTikgQUNQSTogTEFQSUMgKGFjcGlfaWRbMHgwM10gbGFwaWNfaWRbMHgwMl0g
+ZW5hYmxlZCkNCihYRU4pIFByb2Nlc3NvciAjMiAwOjEwIEFQSUMgdmVyc2lvbiAxNg0KKFhF
+TikgQUNQSTogTEFQSUMgKGFjcGlfaWRbMHgwNF0gbGFwaWNfaWRbMHgwM10gZW5hYmxlZCkN
+CihYRU4pIFByb2Nlc3NvciAjMyAwOjEwIEFQSUMgdmVyc2lvbiAxNg0KKFhFTikgQUNQSTog
+TEFQSUMgKGFjcGlfaWRbMHgwNV0gbGFwaWNfaWRbMHgwNF0gZW5hYmxlZCkNCihYRU4pIFBy
+b2Nlc3NvciAjNCAwOjEwIEFQSUMgdmVyc2lvbiAxNg0KKFhFTikgQUNQSTogTEFQSUMgKGFj
+cGlfaWRbMHgwNl0gbGFwaWNfaWRbMHgwNV0gZW5hYmxlZCkNCihYRU4pIFByb2Nlc3NvciAj
+NSAwOjEwIEFQSUMgdmVyc2lvbiAxNg0KKFhFTikgQUNQSTogSU9BUElDIChpZFsweDA2XSBh
+ZGRyZXNzWzB4ZmVjMDAwMDBdIGdzaV9iYXNlWzBdKQ0KKFhFTikgSU9BUElDWzBdOiBhcGlj
+X2lkIDYsIHZlcnNpb24gMzMsIGFkZHJlc3MgMHhmZWMwMDAwMCwgR1NJIDAtMjMNCihYRU4p
+IEFDUEk6IElPQVBJQyAoaWRbMHgwN10gYWRkcmVzc1sweGZlYzIwMDAwXSBnc2lfYmFzZVsy
+NF0pDQooWEVOKSBJT0FQSUNbMV06IGFwaWNfaWQgNywgdmVyc2lvbiAzMywgYWRkcmVzcyAw
+eGZlYzIwMDAwLCBHU0kgMjQtNTUNCihYRU4pIEFDUEk6IElOVF9TUkNfT1ZSIChidXMgMCBi
+dXNfaXJxIDAgZ2xvYmFsX2lycSAyIGRmbCBkZmwpDQooWEVOKSBBQ1BJOiBJTlRfU1JDX09W
+UiAoYnVzIDAgYnVzX2lycSA5IGdsb2JhbF9pcnEgOSBsb3cgbGV2ZWwpDQooWEVOKSBBQ1BJ
+OiBJUlEwIHVzZWQgYnkgb3ZlcnJpZGUuDQooWEVOKSBBQ1BJOiBJUlEyIHVzZWQgYnkgb3Zl
+cnJpZGUuDQooWEVOKSBBQ1BJOiBJUlE5IHVzZWQgYnkgb3ZlcnJpZGUuDQooWEVOKSBFbmFi
+bGluZyBBUElDIG1vZGU6ICBGbGF0LiAgVXNpbmcgMiBJL08gQVBJQ3MNCihYRU4pIEFDUEk6
+IEhQRVQgaWQ6IDB4ODMwMCBiYXNlOiAweGZlZDAwMDAwDQooWEVOKSBUYWJsZSBpcyBub3Qg
+Zm91bmQhDQooWEVOKSBVc2luZyBBQ1BJIChNQURUKSBmb3IgU01QIGNvbmZpZ3VyYXRpb24g
+aW5mb3JtYXRpb24NCihYRU4pIFNNUDogQWxsb3dpbmcgNiBDUFVzICgwIGhvdHBsdWcgQ1BV
+cykNCihYRU4pIG1hcHBlZCBBUElDIHRvIGZmZmY4MmMzZmZkZmUwMDAgKGZlZTAwMDAwKQ0K
+KFhFTikgbWFwcGVkIElPQVBJQyB0byBmZmZmODJjM2ZmZGZkMDAwIChmZWMwMDAwMCkNCihY
+RU4pIG1hcHBlZCBJT0FQSUMgdG8gZmZmZjgyYzNmZmRmYzAwMCAoZmVjMjAwMDApDQooWEVO
+KSBJUlEgbGltaXRzOiA1NiBHU0ksIDExMTIgTVNJL01TSS1YDQooWEVOKSBVc2luZyBzY2hl
+ZHVsZXI6IFNNUCBDcmVkaXQgU2NoZWR1bGVyIChjcmVkaXQpDQooWEVOKSBEZXRlY3RlZCAz
+MjAwLjE5OSBNSHogcHJvY2Vzc29yLg0KKFhFTikgSW5pdGluZyBtZW1vcnkgc2hhcmluZy4N
+CihYRU4pIEFNRCBGYW0xMGggbWFjaGluZSBjaGVjayByZXBvcnRpbmcgZW5hYmxlZA0KKFhF
+TikgUENJOiBNQ0ZHIGNvbmZpZ3VyYXRpb24gMDogYmFzZSBlMDAwMDAwMCBzZWdtZW50IDAw
+MDAgYnVzZXMgMDAgLSBmZg0KKFhFTikgUENJOiBOb3QgdXNpbmcgTUNGRyBmb3Igc2VnbWVu
+dCAwMDAwIGJ1cyAwMC1mZg0KKFhFTikgQU1ELVZpOiBGb3VuZCBNU0kgY2FwYWJpbGl0eSBi
+bG9jayBhdCAweDU0DQooWEVOKSBBTUQtVmk6IEFDUEkgVGFibGU6DQooWEVOKSBBTUQtVmk6
+ICBTaWduYXR1cmUgSVZSUw0KKFhFTikgQU1ELVZpOiAgTGVuZ3RoIDB4ZjgNCihYRU4pIEFN
+RC1WaTogIFJldmlzaW9uIDB4MQ0KKFhFTikgQU1ELVZpOiAgQ2hlY2tTdW0gMHg2ZQ0KKFhF
+TikgQU1ELVZpOiAgT0VNX0lkIEFNRCAgDQooWEVOKSBBTUQtVmk6ICBPRU1fVGFibGVfSWQg
+UkQ4OTBTDQooWEVOKSBBTUQtVmk6ICBPRU1fUmV2aXNpb24gMHgyMDIwMzENCihYRU4pIEFN
+RC1WaTogIENyZWF0b3JfSWQgQU1EIA0KKFhFTikgQU1ELVZpOiAgQ3JlYXRvcl9SZXZpc2lv
+biAweDANCihYRU4pIEFNRC1WaTogSVZSUyBCbG9jazoNCihYRU4pIEFNRC1WaTogIFR5cGUg
+MHgxMA0KKFhFTikgQU1ELVZpOiAgRmxhZ3MgMHgzZQ0KKFhFTikgQU1ELVZpOiAgTGVuZ3Ro
+IDB4YzgNCihYRU4pIEFNRC1WaTogIERldl9JZCAweDINCihYRU4pIEFNRC1WaTogSVZIRCBE
+ZXZpY2UgRW50cnk6DQooWEVOKSBBTUQtVmk6ICBUeXBlIDB4Mw0KKFhFTikgQU1ELVZpOiAg
+RGV2X0lkIDB4MA0KKFhFTikgQU1ELVZpOiAgRmxhZ3MgMHgwDQooWEVOKSBBTUQtVmk6ICBE
+ZXZfSWQgUmFuZ2U6IDB4MCAtPiAweDINCihYRU4pIEFNRC1WaTogSVZIRCBEZXZpY2UgRW50
+cnk6DQooWEVOKSBBTUQtVmk6ICBUeXBlIDB4Mg0KKFhFTikgQU1ELVZpOiAgRGV2X0lkIDB4
+MTANCihYRU4pIEFNRC1WaTogIEZsYWdzIDB4MA0KKFhFTikgQU1ELVZpOiBJVkhEIERldmlj
+ZSBFbnRyeToNCihYRU4pIEFNRC1WaTogIFR5cGUgMHgyDQooWEVOKSBBTUQtVmk6ICBEZXZf
+SWQgMHhiMDANCihYRU4pIEFNRC1WaTogIEZsYWdzIDB4MA0KKFhFTikgQU1ELVZpOiBJVkhE
+IERldmljZSBFbnRyeToNCihYRU4pIEFNRC1WaTogIFR5cGUgMHgyDQooWEVOKSBBTUQtVmk6
+ICBEZXZfSWQgMHgxOA0KKFhFTikgQU1ELVZpOiAgRmxhZ3MgMHgwDQooWEVOKSBBTUQtVmk6
+IElWSEQgRGV2aWNlIEVudHJ5Og0KKFhFTikgQU1ELVZpOiAgVHlwZSAweDMNCihYRU4pIEFN
+RC1WaTogIERldl9JZCAweGEwMA0KKFhFTikgQU1ELVZpOiAgRmxhZ3MgMHgwDQooWEVOKSBB
+TUQtVmk6ICBEZXZfSWQgUmFuZ2U6IDB4YTAwIC0+IDB4YTA3DQooWEVOKSBBTUQtVmk6IElW
+SEQgRGV2aWNlIEVudHJ5Og0KKFhFTikgQU1ELVZpOiAgVHlwZSAweDINCihYRU4pIEFNRC1W
+aTogIERldl9JZCAweDI4DQooWEVOKSBBTUQtVmk6ICBGbGFncyAweDANCihYRU4pIEFNRC1W
+aTogSVZIRCBEZXZpY2UgRW50cnk6DQooWEVOKSBBTUQtVmk6ICBUeXBlIDB4Mg0KKFhFTikg
+QU1ELVZpOiAgRGV2X0lkIDB4OTAwDQooWEVOKSBBTUQtVmk6ICBGbGFncyAweDANCihYRU4p
+IEFNRC1WaTogSVZIRCBEZXZpY2UgRW50cnk6DQooWEVOKSBBTUQtVmk6ICBUeXBlIDB4Mg0K
+KFhFTikgQU1ELVZpOiAgRGV2X0lkIDB4MzANCihYRU4pIEFNRC1WaTogIEZsYWdzIDB4MA0K
+KFhFTikgQU1ELVZpOiBJVkhEIERldmljZSBFbnRyeToNCihYRU4pIEFNRC1WaTogIFR5cGUg
+MHgyDQooWEVOKSBBTUQtVmk6ICBEZXZfSWQgMHg4MDANCihYRU4pIEFNRC1WaTogIEZsYWdz
+IDB4MA0KKFhFTikgQU1ELVZpOiBJVkhEIERldmljZSBFbnRyeToNCihYRU4pIEFNRC1WaTog
+IFR5cGUgMHgyDQooWEVOKSBBTUQtVmk6ICBEZXZfSWQgMHg1MA0KKFhFTikgQU1ELVZpOiAg
+RmxhZ3MgMHgwDQooWEVOKSBBTUQtVmk6IElWSEQgRGV2aWNlIEVudHJ5Og0KKFhFTikgQU1E
+LVZpOiAgVHlwZSAweDINCihYRU4pIEFNRC1WaTogIERldl9JZCAweDcwMA0KKFhFTikgQU1E
+LVZpOiAgRmxhZ3MgMHgwDQooWEVOKSBBTUQtVmk6IElWSEQgRGV2aWNlIEVudHJ5Og0KKFhF
+TikgQU1ELVZpOiAgVHlwZSAweDINCihYRU4pIEFNRC1WaTogIERldl9JZCAweDU4DQooWEVO
+KSBBTUQtVmk6ICBGbGFncyAweDANCihYRU4pIEFNRC1WaTogSVZIRCBEZXZpY2UgRW50cnk6
+DQooWEVOKSBBTUQtVmk6ICBUeXBlIDB4Mw0KKFhFTikgQU1ELVZpOiAgRGV2X0lkIDB4NjAw
+DQooWEVOKSBBTUQtVmk6ICBGbGFncyAweDANCihYRU4pIEFNRC1WaTogIERldl9JZCBSYW5n
+ZTogMHg2MDAgLT4gMHg2MDENCihYRU4pIEFNRC1WaTogSVZIRCBEZXZpY2UgRW50cnk6DQoo
+WEVOKSBBTUQtVmk6ICBUeXBlIDB4Mg0KKFhFTikgQU1ELVZpOiAgRGV2X0lkIDB4NjANCihY
+RU4pIEFNRC1WaTogIEZsYWdzIDB4MA0KKFhFTikgQU1ELVZpOiBJVkhEIERldmljZSBFbnRy
+eToNCihYRU4pIEFNRC1WaTogIFR5cGUgMHgyDQooWEVOKSBBTUQtVmk6ICBEZXZfSWQgMHg1
+MDANCihYRU4pIEFNRC1WaTogIEZsYWdzIDB4MA0KKFhFTikgQU1ELVZpOiBJVkhEIERldmlj
+ZSBFbnRyeToNCihYRU4pIEFNRC1WaTogIFR5cGUgMHgyDQooWEVOKSBBTUQtVmk6ICBEZXZf
+SWQgMHg2OA0KKFhFTikgQU1ELVZpOiAgRmxhZ3MgMHgwDQooWEVOKSBBTUQtVmk6IElWSEQg
+RGV2aWNlIEVudHJ5Og0KKFhFTikgQU1ELVZpOiAgVHlwZSAweDMNCihYRU4pIEFNRC1WaTog
+IERldl9JZCAweDQwMA0KKFhFTikgQU1ELVZpOiAgRmxhZ3MgMHgwDQooWEVOKSBBTUQtVmk6
+ICBEZXZfSWQgUmFuZ2U6IDB4NDAwIC0+IDB4NDA3DQooWEVOKSBBTUQtVmk6IElWSEQgRGV2
+aWNlIEVudHJ5Og0KKFhFTikgQU1ELVZpOiAgVHlwZSAweDINCihYRU4pIEFNRC1WaTogIERl
+dl9JZCAweDg4DQooWEVOKSBBTUQtVmk6ICBGbGFncyAweDANCihYRU4pIEFNRC1WaTogSVZI
+RCBEZXZpY2UgRW50cnk6DQooWEVOKSBBTUQtVmk6ICBUeXBlIDB4Mw0KKFhFTikgQU1ELVZp
+OiAgRGV2X0lkIDB4OTANCihYRU4pIEFNRC1WaTogIEZsYWdzIDB4MA0KKFhFTikgQU1ELVZp
+OiAgRGV2X0lkIFJhbmdlOiAweDkwIC0+IDB4OTINCihYRU4pIEFNRC1WaTogSVZIRCBEZXZp
+Y2UgRW50cnk6DQooWEVOKSBBTUQtVmk6ICBUeXBlIDB4Mw0KKFhFTikgQU1ELVZpOiAgRGV2
+X0lkIDB4OTgNCihYRU4pIEFNRC1WaTogIEZsYWdzIDB4MA0KKFhFTikgQU1ELVZpOiAgRGV2
+X0lkIFJhbmdlOiAweDk4IC0+IDB4OWENCihYRU4pIEFNRC1WaTogSVZIRCBEZXZpY2UgRW50
+cnk6DQooWEVOKSBBTUQtVmk6ICBUeXBlIDB4Mg0KKFhFTikgQU1ELVZpOiAgRGV2X0lkIDB4
+YTANCihYRU4pIEFNRC1WaTogIEZsYWdzIDB4ZDcNCihYRU4pIEFNRC1WaTogSVZIRCBEZXZp
+Y2UgRW50cnk6DQooWEVOKSBBTUQtVmk6ICBUeXBlIDB4Mg0KKFhFTikgQU1ELVZpOiAgRGV2
+X0lkIDB4YTMNCihYRU4pIEFNRC1WaTogIEZsYWdzIDB4MA0KKFhFTikgQU1ELVZpOiBJVkhE
+IERldmljZSBFbnRyeToNCihYRU4pIEFNRC1WaTogIFR5cGUgMHgyDQooWEVOKSBBTUQtVmk6
+ICBEZXZfSWQgMHhhNA0KKFhFTikgQU1ELVZpOiAgRmxhZ3MgMHgwDQooWEVOKSBBTUQtVmk6
+IElWSEQgRGV2aWNlIEVudHJ5Og0KKFhFTikgQU1ELVZpOiAgVHlwZSAweDANCihYRU4pIEFN
+RC1WaTogIERldl9JZCAweDANCihYRU4pIEFNRC1WaTogIEZsYWdzIDB4MA0KKFhFTikgQU1E
+LVZpOiBJVkhEIERldmljZSBFbnRyeToNCihYRU4pIEFNRC1WaTogIFR5cGUgMHg0Mw0KKFhF
+TikgQU1ELVZpOiAgRGV2X0lkIDB4MzAwDQooWEVOKSBBTUQtVmk6ICBGbGFncyAweDANCihY
+RU4pIEFNRC1WaTogIERldl9JZCBSYW5nZTogMHgzMDAgLT4gMHgzZmYNCihYRU4pIEFNRC1W
+aTogIERldl9JZCBBbGlhczogMHhhNA0KKFhFTikgQU1ELVZpOiBJVkhEIERldmljZSBFbnRy
+eToNCihYRU4pIEFNRC1WaTogIFR5cGUgMHgyDQooWEVOKSBBTUQtVmk6ICBEZXZfSWQgMHhh
+NQ0KKFhFTikgQU1ELVZpOiAgRmxhZ3MgMHgwDQooWEVOKSBBTUQtVmk6IElWSEQgRGV2aWNl
+IEVudHJ5Og0KKFhFTikgQU1ELVZpOiAgVHlwZSAweDINCihYRU4pIEFNRC1WaTogIERldl9J
+ZCAweGE4DQooWEVOKSBBTUQtVmk6ICBGbGFncyAweDANCihYRU4pIEFNRC1WaTogSVZIRCBE
+ZXZpY2UgRW50cnk6DQooWEVOKSBBTUQtVmk6ICBUeXBlIDB4Mg0KKFhFTikgQU1ELVZpOiAg
+RGV2X0lkIDB4YTkNCihYRU4pIEFNRC1WaTogIEZsYWdzIDB4MA0KKFhFTikgQU1ELVZpOiBJ
+VkhEIERldmljZSBFbnRyeToNCihYRU4pIEFNRC1WaTogIFR5cGUgMHgyDQooWEVOKSBBTUQt
+Vmk6ICBEZXZfSWQgMHgxMDANCihYRU4pIEFNRC1WaTogIEZsYWdzIDB4MA0KKFhFTikgQU1E
+LVZpOiBJVkhEIERldmljZSBFbnRyeToNCihYRU4pIEFNRC1WaTogIFR5cGUgMHgzDQooWEVO
+KSBBTUQtVmk6ICBEZXZfSWQgMHhiMA0KKFhFTikgQU1ELVZpOiAgRmxhZ3MgMHgwDQooWEVO
+KSBBTUQtVmk6ICBEZXZfSWQgUmFuZ2U6IDB4YjAgLT4gMHhiMg0KKFhFTikgQU1ELVZpOiBJ
+VkhEIERldmljZSBFbnRyeToNCihYRU4pIEFNRC1WaTogIFR5cGUgMHgwDQooWEVOKSBBTUQt
+Vmk6ICBEZXZfSWQgMHgwDQooWEVOKSBBTUQtVmk6ICBGbGFncyAweDANCihYRU4pIEFNRC1W
+aTogSVZIRCBEZXZpY2UgRW50cnk6DQooWEVOKSBBTUQtVmk6ICBUeXBlIDB4NDgNCihYRU4p
+IEFNRC1WaTogIERldl9JZCAweDANCihYRU4pIEFNRC1WaTogIEZsYWdzIDB4ZDcNCihYRU4p
+IEFNRC1WaTogSVZIRCBEZXZpY2UgRW50cnk6DQooWEVOKSBBTUQtVmk6ICBUeXBlIDB4NDgN
+CihYRU4pIEFNRC1WaTogIERldl9JZCAweDANCihYRU4pIEFNRC1WaTogIEZsYWdzIDB4MA0K
+KFhFTikgQU1ELVZpOiBJT01NVSAwIEVuYWJsZWQuDQooWEVOKSBBTUQtVmk6IEVuYWJsaW5n
+IGdsb2JhbCB2ZWN0b3IgbWFwDQooWEVOKSBJL08gdmlydHVhbGlzYXRpb24gZW5hYmxlZA0K
+KFhFTikgIC0gRG9tMCBtb2RlOiBSZWxheGVkDQooWEVOKSBHZXR0aW5nIFZFUlNJT046IDgw
+MDUwMDEwDQooWEVOKSBHZXR0aW5nIFZFUlNJT046IDgwMDUwMDEwDQooWEVOKSBHZXR0aW5n
+IElEOiAwDQooWEVOKSBHZXR0aW5nIExWVDA6IDcwMA0KKFhFTikgR2V0dGluZyBMVlQxOiA0
+MDANCihYRU4pIGVuYWJsZWQgRXh0SU5UIG9uIENQVSMwDQooWEVOKSBFU1IgdmFsdWUgYmVm
+b3JlIGVuYWJsaW5nIHZlY3RvcjogMHgwMDAwMDAwNCAgYWZ0ZXI6IDB4MDAwMDAwMDANCihY
+RU4pIEVOQUJMSU5HIElPLUFQSUMgSVJRcw0KKFhFTikgIC0+IFVzaW5nIG5ldyBBQ0sgbWV0
+aG9kDQooWEVOKSBpbml0IElPX0FQSUMgSVJRcw0KKFhFTikgIElPLUFQSUMgKGFwaWNpZC1w
+aW4pIDYtMCwgNi0xNiwgNi0xNywgNi0xOCwgNi0xOSwgNi0yMCwgNi0yMSwgNi0yMiwgNi0y
+MywgNy0wLCA3LTEsIDctMiwgNy0zLCA3LTQsIDctNSwgNy02LCA3LTcsIDctOCwgNy05LCA3
+LTEwLCA3LTExLCA3LTEyLCA3LTEzLCA3LTE0LCA3LTE1LCA3LTE2LCA3LTE3LCA3LTE4LCA3
+LTE5LCA3LTIwLCA3LTIxLCA3LTIyLCA3LTIzLCA3LTI0LCA3LTI1LCA3LTI2LCA3LTI3LCA3
+LTI4LCA3LTI5LCA3LTMwLCA3LTMxIG5vdCBjb25uZWN0ZWQuDQooWEVOKSAuLlRJTUVSOiB2
+ZWN0b3I9MHhGMCBhcGljMT0wIHBpbjE9MiBhcGljMj0tMSBwaW4yPS0xDQooWEVOKSBudW1i
+ZXIgb2YgTVAgSVJRIHNvdXJjZXM6IDE1Lg0KKFhFTikgbnVtYmVyIG9mIElPLUFQSUMgIzYg
+cmVnaXN0ZXJzOiAyNC4NCihYRU4pIG51bWJlciBvZiBJTy1BUElDICM3IHJlZ2lzdGVyczog
+MzIuDQooWEVOKSB0ZXN0aW5nIHRoZSBJTyBBUElDLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4N
+CihYRU4pIElPIEFQSUMgIzYuLi4uLi4NCihYRU4pIC4uLi4gcmVnaXN0ZXIgIzAwOiAwNjAw
+MDAwMA0KKFhFTikgLi4uLi4uLiAgICA6IHBoeXNpY2FsIEFQSUMgaWQ6IDA2DQooWEVOKSAu
+Li4uLi4uICAgIDogRGVsaXZlcnkgVHlwZTogMA0KKFhFTikgLi4uLi4uLiAgICA6IExUUyAg
+ICAgICAgICA6IDANCihYRU4pIC4uLi4gcmVnaXN0ZXIgIzAxOiAwMDE3ODAyMQ0KKFhFTikg
+Li4uLi4uLiAgICAgOiBtYXggcmVkaXJlY3Rpb24gZW50cmllczogMDAxNw0KKFhFTikgLi4u
+Li4uLiAgICAgOiBQUlEgaW1wbGVtZW50ZWQ6IDENCihYRU4pIC4uLi4uLi4gICAgIDogSU8g
+QVBJQyB2ZXJzaW9uOiAwMDIxDQooWEVOKSAuLi4uIHJlZ2lzdGVyICMwMjogMDYwMDAwMDAN
+CihYRU4pIC4uLi4uLi4gICAgIDogYXJiaXRyYXRpb246IDA2DQooWEVOKSAuLi4uIHJlZ2lz
+dGVyICMwMzogMDcwMDAwMDANCihYRU4pIC4uLi4uLi4gICAgIDogQm9vdCBEVCAgICA6IDAN
+CihYRU4pIC4uLi4gSVJRIHJlZGlyZWN0aW9uIHRhYmxlOg0KKFhFTikgIE5SIExvZyBQaHkg
+TWFzayBUcmlnIElSUiBQb2wgU3RhdCBEZXN0IERlbGkgVmVjdDogICANCihYRU4pICAwMCAw
+MDAgMDAgIDEgICAgMCAgICAwICAgMCAgIDAgICAgMCAgICAwICAgIDAwDQooWEVOKSAgMDEg
+MDAxIDAxICAwICAgIDAgICAgMCAgIDAgICAwICAgIDEgICAgMSAgICAzMA0KKFhFTikgIDAy
+IDAwMSAwMSAgMCAgICAwICAgIDAgICAwICAgMCAgICAxICAgIDEgICAgRjANCihYRU4pICAw
+MyAwMDEgMDEgIDAgICAgMCAgICAwICAgMCAgIDAgICAgMSAgICAxICAgIDM4DQooWEVOKSAg
+MDQgMDAxIDAxICAwICAgIDAgICAgMCAgIDAgICAwICAgIDEgICAgMSAgICBGMQ0KKFhFTikg
+IDA1IDAwMSAwMSAgMCAgICAwICAgIDAgICAwICAgMCAgICAxICAgIDEgICAgNDANCihYRU4p
+ICAwNiAwMDEgMDEgIDAgICAgMCAgICAwICAgMCAgIDAgICAgMSAgICAxICAgIDQ4DQooWEVO
+KSAgMDcgMDAxIDAxICAwICAgIDAgICAgMCAgIDAgICAwICAgIDEgICAgMSAgICA1MA0KKFhF
+TikgIDA4IDAwMSAwMSAgMCAgICAwICAgIDAgICAwICAgMCAgICAxICAgIDEgICAgNTgNCihY
+RU4pICAwOSAwMDEgMDEgIDEgICAgMSAgICAwICAgMSAgIDAgICAgMSAgICAxICAgIDYwDQoo
+WEVOKSAgMGEgMDAxIDAxICAwICAgIDAgICAgMCAgIDAgICAwICAgIDEgICAgMSAgICA2OA0K
+KFhFTikgIDBiIDAwMSAwMSAgMCAgICAwICAgIDAgICAwICAgMCAgICAxICAgIDEgICAgNzAN
+CihYRU4pICAwYyAwMDEgMDEgIDAgICAgMCAgICAwICAgMCAgIDAgICAgMSAgICAxICAgIDc4
+DQooWEVOKSAgMGQgMDAxIDAxICAwICAgIDAgICAgMCAgIDAgICAwICAgIDEgICAgMSAgICA4
+OA0KKFhFTikgIDBlIDAwMSAwMSAgMCAgICAwICAgIDAgICAwICAgMCAgICAxICAgIDEgICAg
+OTANCihYRU4pICAwZiAwMDEgMDEgIDAgICAgMCAgICAwICAgMCAgIDAgICAgMSAgICAxICAg
+IDk4DQooWEVOKSAgMTAgMDAwIDAwICAxICAgIDAgICAgMCAgIDAgICAwICAgIDAgICAgMCAg
+ICAwMA0KKFhFTikgIDExIDAwMCAwMCAgMSAgICAwICAgIDAgICAwICAgMCAgICAwICAgIDAg
+ICAgMDANCihYRU4pICAxMiAwMDAgMDAgIDEgICAgMCAgICAwICAgMCAgIDAgICAgMCAgICAw
+ICAgIDAwDQooWEVOKSAgMTMgMDAwIDAwICAxICAgIDAgICAgMCAgIDAgICAwICAgIDAgICAg
+MCAgICAwMA0KKFhFTikgIDE0IDAwMCAwMCAgMSAgICAwICAgIDAgICAwICAgMCAgICAwICAg
+IDAgICAgMDANCihYRU4pICAxNSAwMDAgMDAgIDEgICAgMCAgICAwICAgMCAgIDAgICAgMCAg
+ICAwICAgIDAwDQooWEVOKSAgMTYgMDAwIDAwICAxICAgIDAgICAgMCAgIDAgICAwICAgIDAg
+ICAgMCAgICAwMA0KKFhFTikgIDE3IDAwMCAwMCAgMSAgICAwICAgIDAgICAwICAgMCAgICAw
+ICAgIDAgICAgMDANCihYRU4pIElPIEFQSUMgIzcuLi4uLi4NCihYRU4pIC4uLi4gcmVnaXN0
+ZXIgIzAwOiAwNzAwMDAwMA0KKFhFTikgLi4uLi4uLiAgICA6IHBoeXNpY2FsIEFQSUMgaWQ6
+IDA3DQooWEVOKSAuLi4uLi4uICAgIDogRGVsaXZlcnkgVHlwZTogMA0KKFhFTikgLi4uLi4u
+LiAgICA6IExUUyAgICAgICAgICA6IDANCihYRU4pIC4uLi4gcmVnaXN0ZXIgIzAxOiAwMDFG
+ODAyMQ0KKFhFTikgLi4uLi4uLiAgICAgOiBtYXggcmVkaXJlY3Rpb24gZW50cmllczogMDAx
+Rg0KKFhFTikgLi4uLi4uLiAgICAgOiBQUlEgaW1wbGVtZW50ZWQ6IDENCihYRU4pIC4uLi4u
+Li4gICAgIDogSU8gQVBJQyB2ZXJzaW9uOiAwMDIxDQooWEVOKSAuLi4uIHJlZ2lzdGVyICMw
+MjogMDAwMDAwMDANCihYRU4pIC4uLi4uLi4gICAgIDogYXJiaXRyYXRpb246IDAwDQooWEVO
+KSAuLi4uIElSUSByZWRpcmVjdGlvbiB0YWJsZToNCihYRU4pICBOUiBMb2cgUGh5IE1hc2sg
+VHJpZyBJUlIgUG9sIFN0YXQgRGVzdCBEZWxpIFZlY3Q6ICAgDQooWEVOKSAgMDAgMDAwIDAw
+ICAxICAgIDAgICAgMCAgIDAgICAwICAgIDAgICAgMCAgICAwMA0KKFhFTikgIDAxIDAwMCAw
+MCAgMSAgICAwICAgIDAgICAwICAgMCAgICAwICAgIDAgICAgMDANCihYRU4pICAwMiAwMDAg
+MDAgIDEgICAgMCAgICAwICAgMCAgIDAgICAgMCAgICAwICAgIDAwDQooWEVOKSAgMDMgMDAw
+IDAwICAxICAgIDAgICAgMCAgIDAgICAwICAgIDAgICAgMCAgICAwMA0KKFhFTikgIDA0IDAw
+MCAwMCAgMSAgICAwICAgIDAgICAwICAgMCAgICAwICAgIDAgICAgMDANCihYRU4pICAwNSAw
+MDAgMDAgIDEgICAgMCAgICAwICAgMCAgIDAgICAgMCAgICAwICAgIDAwDQooWEVOKSAgMDYg
+MDAwIDAwICAxICAgIDAgICAgMCAgIDAgICAwICAgIDAgICAgMCAgICAwMA0KKFhFTikgIDA3
+IDAwMCAwMCAgMSAgICAwICAgIDAgICAwICAgMCAgICAwICAgIDAgICAgMDANCihYRU4pICAw
+OCAwMDAgMDAgIDEgICAgMCAgICAwICAgMCAgIDAgICAgMCAgICAwICAgIDAwDQooWEVOKSAg
+MDkgMDAwIDAwICAxICAgIDAgICAgMCAgIDAgICAwICAgIDAgICAgMCAgICAwMA0KKFhFTikg
+IDBhIDAwMCAwMCAgMSAgICAwICAgIDAgICAwICAgMCAgICAwICAgIDAgICAgMDANCihYRU4p
+ICAwYiAwMDAgMDAgIDEgICAgMCAgICAwICAgMCAgIDAgICAgMCAgICAwICAgIDAwDQooWEVO
+KSAgMGMgMDAwIDAwICAxICAgIDAgICAgMCAgIDAgICAwICAgIDAgICAgMCAgICAwMA0KKFhF
+TikgIDBkIDAwMCAwMCAgMSAgICAwICAgIDAgICAwICAgMCAgICAwICAgIDAgICAgMDANCihY
+RU4pICAwZSAwMDAgMDAgIDEgICAgMCAgICAwICAgMCAgIDAgICAgMCAgICAwICAgIDAwDQoo
+WEVOKSAgMGYgMDAwIDAwICAxICAgIDAgICAgMCAgIDAgICAwICAgIDAgICAgMCAgICAwMA0K
+KFhFTikgIDEwIDAwMCAwMCAgMSAgICAwICAgIDAgICAwICAgMCAgICAwICAgIDAgICAgMDAN
+CihYRU4pICAxMSAwMDAgMDAgIDEgICAgMCAgICAwICAgMCAgIDAgICAgMCAgICAwICAgIDAw
+DQooWEVOKSAgMTIgMDAwIDAwICAxICAgIDAgICAgMCAgIDAgICAwICAgIDAgICAgMCAgICAw
+MA0KKFhFTikgIDEzIDAwMCAwMCAgMSAgICAwICAgIDAgICAwICAgMCAgICAwICAgIDAgICAg
+MDANCihYRU4pICAxNCAwMDAgMDAgIDEgICAgMCAgICAwICAgMCAgIDAgICAgMCAgICAwICAg
+IDAwDQooWEVOKSAgMTUgMDAwIDAwICAxICAgIDAgICAgMCAgIDAgICAwICAgIDAgICAgMCAg
+ICAwMA0KKFhFTikgIDE2IDAwMCAwMCAgMSAgICAwICAgIDAgICAwICAgMCAgICAwICAgIDAg
+ICAgMDANCihYRU4pICAxNyAwMDAgMDAgIDEgICAgMCAgICAwICAgMCAgIDAgICAgMCAgICAw
+ICAgIDAwDQooWEVOKSAgMTggMDAwIDAwICAxICAgIDAgICAgMCAgIDAgICAwICAgIDAgICAg
+MCAgICAwMA0KKFhFTikgIDE5IDAwMCAwMCAgMSAgICAwICAgIDAgICAwICAgMCAgICAwICAg
+IDAgICAgMDANCihYRU4pICAxYSAwMDAgMDAgIDEgICAgMCAgICAwICAgMCAgIDAgICAgMCAg
+ICAwICAgIDAwDQooWEVOKSAgMWIgMDAwIDAwICAxICAgIDAgICAgMCAgIDAgICAwICAgIDAg
+ICAgMCAgICAwMA0KKFhFTikgIDFjIDAwMCAwMCAgMSAgICAwICAgIDAgICAwICAgMCAgICAw
+ICAgIDAgICAgMDANCihYRU4pICAxZCAwMDAgMDAgIDEgICAgMCAgICAwICAgMCAgIDAgICAg
+MCAgICAwICAgIDAwDQooWEVOKSAgMWUgMDAwIDAwICAxICAgIDAgICAgMCAgIDAgICAwICAg
+IDAgICAgMCAgICAwMA0KKFhFTikgIDFmIDAwMCAwMCAgMSAgICAwICAgIDAgICAwICAgMCAg
+ICAwICAgIDAgICAgMDANCihYRU4pIFVzaW5nIHZlY3Rvci1iYXNlZCBpbmRleGluZw0KKFhF
+TikgSVJRIHRvIHBpbiBtYXBwaW5nczoNCihYRU4pIElSUTI0MCAtPiAwOjINCihYRU4pIElS
+UTQ4IC0+IDA6MQ0KKFhFTikgSVJRNTYgLT4gMDozDQooWEVOKSBJUlEyNDEgLT4gMDo0DQoo
+WEVOKSBJUlE2NCAtPiAwOjUNCihYRU4pIElSUTcyIC0+IDA6Ng0KKFhFTikgSVJRODAgLT4g
+MDo3DQooWEVOKSBJUlE4OCAtPiAwOjgNCihYRU4pIElSUTk2IC0+IDA6OQ0KKFhFTikgSVJR
+MTA0IC0+IDA6MTANCihYRU4pIElSUTExMiAtPiAwOjExDQooWEVOKSBJUlExMjAgLT4gMDox
+Mg0KKFhFTikgSVJRMTM2IC0+IDA6MTMNCihYRU4pIElSUTE0NCAtPiAwOjE0DQooWEVOKSBJ
+UlExNTIgLT4gMDoxNQ0KKFhFTikgLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
+Li4uIGRvbmUuDQooWEVOKSBVc2luZyBsb2NhbCBBUElDIHRpbWVyIGludGVycnVwdHMuDQoo
+WEVOKSBjYWxpYnJhdGluZyBBUElDIHRpbWVyIC4uLg0KKFhFTikgLi4uLi4gQ1BVIGNsb2Nr
+IHNwZWVkIGlzIDMyMDAuMTI3MCBNSHouDQooWEVOKSAuLi4uLiBob3N0IGJ1cyBjbG9jayBz
+cGVlZCBpcyAyMDAuMDA3OSBNSHouDQooWEVOKSAuLi4uLiBidXNfc2NhbGUgPSAweDAwMDBD
+Q0Q3DQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1NTozMV0gUGxhdGZvcm0gdGltZXIgaXMgMTQu
+MzE4TUh6IEhQRVQNCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU1OjMxXSBBbGxvY2F0ZWQgY29u
+c29sZSByaW5nIG9mIDY0IEtpQi4NCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU1OjMxXSBIVk06
+IEFTSURzIGVuYWJsZWQuDQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1NTozMV0gU1ZNOiBTdXBw
+b3J0ZWQgYWR2YW5jZWQgZmVhdHVyZXM6DQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1NTozMV0g
+IC0gTmVzdGVkIFBhZ2UgVGFibGVzIChOUFQpDQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1NToz
+MV0gIC0gTGFzdCBCcmFuY2ggUmVjb3JkIChMQlIpIFZpcnR1YWxpc2F0aW9uDQooWEVOKSBb
+MjAxMi0wOS0wMyAyMDo1NTozMV0gIC0gTmV4dC1SSVAgU2F2ZWQgb24gI1ZNRVhJVA0KKFhF
+TikgWzIwMTItMDktMDMgMjA6NTU6MzFdICAtIFBhdXNlLUludGVyY2VwdCBGaWx0ZXINCihY
+RU4pIFsyMDEyLTA5LTAzIDIwOjU1OjMxXSBIVk06IFNWTSBlbmFibGVkDQooWEVOKSBbMjAx
+Mi0wOS0wMyAyMDo1NTozMV0gSFZNOiBIYXJkd2FyZSBBc3Npc3RlZCBQYWdpbmcgKEhBUCkg
+ZGV0ZWN0ZWQNCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU1OjMxXSBIVk06IEhBUCBwYWdlIHNp
+emVzOiA0a0IsIDJNQiwgMUdCDQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1NTozMF0gbWFza2Vk
+IEV4dElOVCBvbiBDUFUjMQ0KKFhFTikgWzIwMTItMDktMDMgMjA6NTU6MzFdIG1pY3JvY29k
+ZTogY29sbGVjdF9jcHVfaW5mbzogcGF0Y2hfaWQ9MHgxMDAwMGJmDQooWEVOKSBbMjAxMi0w
+OS0wMyAyMDo1NTozMF0gbWFza2VkIEV4dElOVCBvbiBDUFUjMg0KKFhFTikgWzIwMTItMDkt
+MDMgMjA6NTU6MzFdIG1pY3JvY29kZTogY29sbGVjdF9jcHVfaW5mbzogcGF0Y2hfaWQ9MHgx
+MDAwMGJmDQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1NTozMF0gbWFza2VkIEV4dElOVCBvbiBD
+UFUjMw0KKFhFTikgWzIwMTItMDktMDMgMjA6NTU6MzFdIG1pY3JvY29kZTogY29sbGVjdF9j
+cHVfaW5mbzogcGF0Y2hfaWQ9MHgxMDAwMGJmDQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1NToz
+MF0gbWFza2VkIEV4dElOVCBvbiBDUFUjNA0KKFhFTikgWzIwMTItMDktMDMgMjA6NTU6MzFd
+IG1pY3JvY29kZTogY29sbGVjdF9jcHVfaW5mbzogcGF0Y2hfaWQ9MHgxMDAwMGJmDQooWEVO
+KSBbMjAxMi0wOS0wMyAyMDo1NTozMF0gbWFza2VkIEV4dElOVCBvbiBDUFUjNQ0KKFhFTikg
+WzIwMTItMDktMDMgMjA6NTU6MzFdIEJyb3VnaHQgdXAgNiBDUFVzDQooWEVOKSBbMjAxMi0w
+OS0wMyAyMDo1NTozMV0gbWljcm9jb2RlOiBjb2xsZWN0X2NwdV9pbmZvOiBwYXRjaF9pZD0w
+eDEwMDAwYmYNCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU1OjMxXSBIUEVUJ3MgTVNJIG1vZGUg
+aGFzbid0IGJlZW4gc3VwcG9ydGVkIHdoZW4gSW50ZXJydXB0IFJlbWFwcGluZyBpcyBlbmFi
+bGVkLg0KKFhFTikgWzIwMTItMDktMDMgMjA6NTU6MzFdIEFDUEkgc2xlZXAgbW9kZXM6IFMz
+DQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1NTozMV0gTUNBOiBVc2UgaHcgdGhyZXNob2xkaW5n
+IHRvIGFkanVzdCBwb2xsaW5nIGZyZXF1ZW5jeQ0KKFhFTikgWzIwMTItMDktMDMgMjA6NTU6
+MzFdIG1jaGVja19wb2xsOiBNYWNoaW5lIGNoZWNrIHBvbGxpbmcgdGltZXIgc3RhcnRlZC4N
+CihYRU4pIFsyMDEyLTA5LTAzIDIwOjU1OjMxXSBYZW5vcHJvZmlsZTogRmFpbGVkIHRvIHNl
+dHVwIElCUyBMVlQgb2Zmc2V0LCBJQlNDVEwgPSAweGZmZmZmZmZmDQooWEVOKSBbMjAxMi0w
+OS0wMyAyMDo1NTozMV0gKioqIExPQURJTkcgRE9NQUlOIDAgKioqDQooWEVOKSBbMjAxMi0w
+OS0wMyAyMDo1NTozMV0gZWxmX3BhcnNlX2JpbmFyeTogcGhkcjogcGFkZHI9MHgxMDAwMDAw
+IG1lbXN6PTB4ZDZhMDAwDQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1NTozMV0gZWxmX3BhcnNl
+X2JpbmFyeTogcGhkcjogcGFkZHI9MHgxZTAwMDAwIG1lbXN6PTB4ZGIwZTgNCihYRU4pIFsy
+MDEyLTA5LTAzIDIwOjU1OjMxXSBlbGZfcGFyc2VfYmluYXJ5OiBwaGRyOiBwYWRkcj0weDFl
+ZGMwMDAgbWVtc3o9MHgxM2MwMA0KKFhFTikgWzIwMTItMDktMDMgMjA6NTU6MzFdIGVsZl9w
+YXJzZV9iaW5hcnk6IHBoZHI6IHBhZGRyPTB4MWVmMDAwMCBtZW1zej0weGRlNTAwMA0KKFhF
+TikgWzIwMTItMDktMDMgMjA6NTU6MzFdIGVsZl9wYXJzZV9iaW5hcnk6IG1lbW9yeTogMHgx
+MDAwMDAwIC0+IDB4MmNkNTAwMA0KKFhFTikgWzIwMTItMDktMDMgMjA6NTU6MzFdIGVsZl94
+ZW5fcGFyc2Vfbm90ZTogR1VFU1RfT1MgPSAibGludXgiDQooWEVOKSBbMjAxMi0wOS0wMyAy
+MDo1NTozMV0gZWxmX3hlbl9wYXJzZV9ub3RlOiBHVUVTVF9WRVJTSU9OID0gIjIuNiINCihY
+RU4pIFsyMDEyLTA5LTAzIDIwOjU1OjMxXSBlbGZfeGVuX3BhcnNlX25vdGU6IFhFTl9WRVJT
+SU9OID0gInhlbi0zLjAiDQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1NTozMV0gZWxmX3hlbl9w
+YXJzZV9ub3RlOiBWSVJUX0JBU0UgPSAweGZmZmZmZmZmODAwMDAwMDANCihYRU4pIFsyMDEy
+LTA5LTAzIDIwOjU1OjMxXSBlbGZfeGVuX3BhcnNlX25vdGU6IEVOVFJZID0gMHhmZmZmZmZm
+ZjgxZWYwMjEwDQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1NTozMV0gZWxmX3hlbl9wYXJzZV9u
+b3RlOiBIWVBFUkNBTExfUEFHRSA9IDB4ZmZmZmZmZmY4MTAwMTAwMA0KKFhFTikgWzIwMTIt
+MDktMDMgMjA6NTU6MzFdIGVsZl94ZW5fcGFyc2Vfbm90ZTogRkVBVFVSRVMgPSAiIXdyaXRh
+YmxlX3BhZ2VfdGFibGVzfHBhZV9wZ2Rpcl9hYm92ZV80Z2IiDQooWEVOKSBbMjAxMi0wOS0w
+MyAyMDo1NTozMV0gZWxmX3hlbl9wYXJzZV9ub3RlOiBQQUVfTU9ERSA9ICJ5ZXMiDQooWEVO
+KSBbMjAxMi0wOS0wMyAyMDo1NTozMV0gZWxmX3hlbl9wYXJzZV9ub3RlOiBMT0FERVIgPSAi
+Z2VuZXJpYyINCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU1OjMxXSBlbGZfeGVuX3BhcnNlX25v
+dGU6IHVua25vd24geGVuIGVsZiBub3RlICgweGQpDQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1
+NTozMV0gZWxmX3hlbl9wYXJzZV9ub3RlOiBTVVNQRU5EX0NBTkNFTCA9IDB4MQ0KKFhFTikg
+WzIwMTItMDktMDMgMjA6NTU6MzFdIGVsZl94ZW5fcGFyc2Vfbm90ZTogSFZfU1RBUlRfTE9X
+ID0gMHhmZmZmODAwMDAwMDAwMDAwDQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1NTozMV0gZWxm
+X3hlbl9wYXJzZV9ub3RlOiBQQUREUl9PRkZTRVQgPSAweDANCihYRU4pIFsyMDEyLTA5LTAz
+IDIwOjU1OjMxXSBlbGZfeGVuX2FkZHJfY2FsY19jaGVjazogYWRkcmVzc2VzOg0KKFhFTikg
+WzIwMTItMDktMDMgMjA6NTU6MzFdICAgICB2aXJ0X2Jhc2UgICAgICAgID0gMHhmZmZmZmZm
+ZjgwMDAwMDAwDQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1NTozMV0gICAgIGVsZl9wYWRkcl9v
+ZmZzZXQgPSAweDANCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU1OjMxXSAgICAgdmlydF9vZmZz
+ZXQgICAgICA9IDB4ZmZmZmZmZmY4MDAwMDAwMA0KKFhFTikgWzIwMTItMDktMDMgMjA6NTU6
+MzFdICAgICB2aXJ0X2tzdGFydCAgICAgID0gMHhmZmZmZmZmZjgxMDAwMDAwDQooWEVOKSBb
+MjAxMi0wOS0wMyAyMDo1NTozMV0gICAgIHZpcnRfa2VuZCAgICAgICAgPSAweGZmZmZmZmZm
+ODJjZDUwMDANCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU1OjMxXSAgICAgdmlydF9lbnRyeSAg
+ICAgICA9IDB4ZmZmZmZmZmY4MWVmMDIxMA0KKFhFTikgWzIwMTItMDktMDMgMjA6NTU6MzFd
+ICAgICBwMm1fYmFzZSAgICAgICAgID0gMHhmZmZmZmZmZmZmZmZmZmZmDQooWEVOKSBbMjAx
+Mi0wOS0wMyAyMDo1NTozMV0gIFhlbiAga2VybmVsOiA2NC1iaXQsIGxzYiwgY29tcGF0MzIN
+CihYRU4pIFsyMDEyLTA5LTAzIDIwOjU1OjMxXSAgRG9tMCBrZXJuZWw6IDY0LWJpdCwgUEFF
+LCBsc2IsIHBhZGRyIDB4MTAwMDAwMCAtPiAweDJjZDUwMDANCihYRU4pIFsyMDEyLTA5LTAz
+IDIwOjU1OjMxXSBQSFlTSUNBTCBNRU1PUlkgQVJSQU5HRU1FTlQ6DQooWEVOKSBbMjAxMi0w
+OS0wMyAyMDo1NTozMV0gIERvbTAgYWxsb2MuOiAgIDAwMDAwMDAyNDAwMDAwMDAtPjAwMDAw
+MDAyNDQwMDAwMDAgKDI0MjQyOCBwYWdlcyB0byBiZSBhbGxvY2F0ZWQpDQooWEVOKSBbMjAx
+Mi0wOS0wMyAyMDo1NTozMV0gIEluaXQuIHJhbWRpc2s6IDAwMDAwMDAyNGYyZmMwMDAtPjAw
+MDAwMDAyNGZmZmY4MDANCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU1OjMxXSBWSVJUVUFMIE1F
+TU9SWSBBUlJBTkdFTUVOVDoNCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU1OjMxXSAgTG9hZGVk
+IGtlcm5lbDogZmZmZmZmZmY4MTAwMDAwMC0+ZmZmZmZmZmY4MmNkNTAwMA0KKFhFTikgWzIw
+MTItMDktMDMgMjA6NTU6MzFdICBJbml0LiByYW1kaXNrOiBmZmZmZmZmZjgyY2Q1MDAwLT5m
+ZmZmZmZmZjgzOWQ4ODAwDQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1NTozMV0gIFBoeXMtTWFj
+aCBtYXA6IGZmZmZmZmZmODM5ZDkwMDAtPmZmZmZmZmZmODNiZDkwMDANCihYRU4pIFsyMDEy
+LTA5LTAzIDIwOjU1OjMxXSAgU3RhcnQgaW5mbzogICAgZmZmZmZmZmY4M2JkOTAwMC0+ZmZm
+ZmZmZmY4M2JkOTRiNA0KKFhFTikgWzIwMTItMDktMDMgMjA6NTU6MzFdICBQYWdlIHRhYmxl
+czogICBmZmZmZmZmZjgzYmRhMDAwLT5mZmZmZmZmZjgzYmZkMDAwDQooWEVOKSBbMjAxMi0w
+OS0wMyAyMDo1NTozMV0gIEJvb3Qgc3RhY2s6ICAgIGZmZmZmZmZmODNiZmQwMDAtPmZmZmZm
+ZmZmODNiZmUwMDANCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU1OjMxXSAgVE9UQUw6ICAgICAg
+ICAgZmZmZmZmZmY4MDAwMDAwMC0+ZmZmZmZmZmY4NDAwMDAwMA0KKFhFTikgWzIwMTItMDkt
+MDMgMjA6NTU6MzFdICBFTlRSWSBBRERSRVNTOiBmZmZmZmZmZjgxZWYwMjEwDQooWEVOKSBb
+MjAxMi0wOS0wMyAyMDo1NTozMV0gRG9tMCBoYXMgbWF4aW11bSA2IFZDUFVzDQooWEVOKSBb
+MjAxMi0wOS0wMyAyMDo1NTozMl0gZWxmX2xvYWRfYmluYXJ5OiBwaGRyIDAgYXQgMHhmZmZm
+ZmZmZjgxMDAwMDAwIC0+IDB4ZmZmZmZmZmY4MWQ2YTAwMA0KKFhFTikgWzIwMTItMDktMDMg
+MjA6NTU6MzJdIGVsZl9sb2FkX2JpbmFyeTogcGhkciAxIGF0IDB4ZmZmZmZmZmY4MWUwMDAw
+MCAtPiAweGZmZmZmZmZmODFlZGIwZTgNCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU1OjMyXSBl
+bGZfbG9hZF9iaW5hcnk6IHBoZHIgMiBhdCAweGZmZmZmZmZmODFlZGMwMDAgLT4gMHhmZmZm
+ZmZmZjgxZWVmYzAwDQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1NTozMl0gZWxmX2xvYWRfYmlu
+YXJ5OiBwaGRyIDMgYXQgMHhmZmZmZmZmZjgxZWYwMDAwIC0+IDB4ZmZmZmZmZmY4MWY4OTAw
+MA0KKFhFTikgWzIwMTItMDktMDMgMjA6NTU6MzJdIEFNRC1WaTogTUUgSEVSRSAhPDI+QU1E
+LVZpOiBTZXR1cCBJL08gcGFnZSB0YWJsZTogZGV2aWNlIGlkID0gMHgwMDAwLCByb290IHRh
+YmxlID0gMHgyNGQ4NGIwMDAsIGRvbWFpbiA9IDAsIHBhZ2luZyBtb2RlID0gMw0KKFhFTikg
+WzIwMTItMDktMDMgMjA6NTU6MzJdIEFNRC1WaTogU2V0dXAgSS9PIHBhZ2UgdGFibGU6IGRl
+dmljZSBpZCA9IDB4MDAwMiwgcm9vdCB0YWJsZSA9IDB4MjRkODRiMDAwLCBkb21haW4gPSAw
+LCBwYWdpbmcgbW9kZSA9IDMNCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU1OjMyXSBBTUQtVmk6
+IFNldHVwIEkvTyBwYWdlIHRhYmxlOiBkZXZpY2UgaWQgPSAweDAwMTAsIHJvb3QgdGFibGUg
+PSAweDI0ZDg0YjAwMCwgZG9tYWluID0gMCwgcGFnaW5nIG1vZGUgPSAzDQooWEVOKSBbMjAx
+Mi0wOS0wMyAyMDo1NTozMl0gQU1ELVZpOiBTZXR1cCBJL08gcGFnZSB0YWJsZTogZGV2aWNl
+IGlkID0gMHgwMDE4LCByb290IHRhYmxlID0gMHgyNGQ4NGIwMDAsIGRvbWFpbiA9IDAsIHBh
+Z2luZyBtb2RlID0gMw0KKFhFTikgWzIwMTItMDktMDMgMjA6NTU6MzJdIEFNRC1WaTogU2V0
+dXAgSS9PIHBhZ2UgdGFibGU6IGRldmljZSBpZCA9IDB4MDAyOCwgcm9vdCB0YWJsZSA9IDB4
+MjRkODRiMDAwLCBkb21haW4gPSAwLCBwYWdpbmcgbW9kZSA9IDMNCihYRU4pIFsyMDEyLTA5
+LTAzIDIwOjU1OjMyXSBBTUQtVmk6IFNldHVwIEkvTyBwYWdlIHRhYmxlOiBkZXZpY2UgaWQg
+PSAweDAwMzAsIHJvb3QgdGFibGUgPSAweDI0ZDg0YjAwMCwgZG9tYWluID0gMCwgcGFnaW5n
+IG1vZGUgPSAzDQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1NTozMl0gQU1ELVZpOiBTZXR1cCBJ
+L08gcGFnZSB0YWJsZTogZGV2aWNlIGlkID0gMHgwMDUwLCByb290IHRhYmxlID0gMHgyNGQ4
+NGIwMDAsIGRvbWFpbiA9IDAsIHBhZ2luZyBtb2RlID0gMw0KKFhFTikgWzIwMTItMDktMDMg
+MjA6NTU6MzJdIEFNRC1WaTogU2V0dXAgSS9PIHBhZ2UgdGFibGU6IGRldmljZSBpZCA9IDB4
+MDA1OCwgcm9vdCB0YWJsZSA9IDB4MjRkODRiMDAwLCBkb21haW4gPSAwLCBwYWdpbmcgbW9k
+ZSA9IDMNCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU1OjMyXSBBTUQtVmk6IFNldHVwIEkvTyBw
+YWdlIHRhYmxlOiBkZXZpY2UgaWQgPSAweDAwNjAsIHJvb3QgdGFibGUgPSAweDI0ZDg0YjAw
+MCwgZG9tYWluID0gMCwgcGFnaW5nIG1vZGUgPSAzDQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1
+NTozMl0gQU1ELVZpOiBTZXR1cCBJL08gcGFnZSB0YWJsZTogZGV2aWNlIGlkID0gMHgwMDY4
+LCByb290IHRhYmxlID0gMHgyNGQ4NGIwMDAsIGRvbWFpbiA9IDAsIHBhZ2luZyBtb2RlID0g
+Mw0KKFhFTikgWzIwMTItMDktMDMgMjA6NTU6MzJdIEFNRC1WaTogU2V0dXAgSS9PIHBhZ2Ug
+dGFibGU6IGRldmljZSBpZCA9IDB4MDA4OCwgcm9vdCB0YWJsZSA9IDB4MjRkODRiMDAwLCBk
+b21haW4gPSAwLCBwYWdpbmcgbW9kZSA9IDMNCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU1OjMy
+XSBBTUQtVmk6IFNldHVwIEkvTyBwYWdlIHRhYmxlOiBkZXZpY2UgaWQgPSAweDAwOTAsIHJv
+b3QgdGFibGUgPSAweDI0ZDg0YjAwMCwgZG9tYWluID0gMCwgcGFnaW5nIG1vZGUgPSAzDQoo
+WEVOKSBbMjAxMi0wOS0wMyAyMDo1NTozMl0gQU1ELVZpOiBTZXR1cCBJL08gcGFnZSB0YWJs
+ZTogZGV2aWNlIGlkID0gMHgwMDkyLCByb290IHRhYmxlID0gMHgyNGQ4NGIwMDAsIGRvbWFp
+biA9IDAsIHBhZ2luZyBtb2RlID0gMw0KKFhFTikgWzIwMTItMDktMDMgMjA6NTU6MzJdIEFN
+RC1WaTogU2V0dXAgSS9PIHBhZ2UgdGFibGU6IGRldmljZSBpZCA9IDB4MDA5OCwgcm9vdCB0
+YWJsZSA9IDB4MjRkODRiMDAwLCBkb21haW4gPSAwLCBwYWdpbmcgbW9kZSA9IDMNCihYRU4p
+IFsyMDEyLTA5LTAzIDIwOjU1OjMyXSBBTUQtVmk6IFNldHVwIEkvTyBwYWdlIHRhYmxlOiBk
+ZXZpY2UgaWQgPSAweDAwOWEsIHJvb3QgdGFibGUgPSAweDI0ZDg0YjAwMCwgZG9tYWluID0g
+MCwgcGFnaW5nIG1vZGUgPSAzDQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1NTozMl0gQU1ELVZp
+OiBTZXR1cCBJL08gcGFnZSB0YWJsZTogZGV2aWNlIGlkID0gMHgwMGEwLCByb290IHRhYmxl
+ID0gMHgyNGQ4NGIwMDAsIGRvbWFpbiA9IDAsIHBhZ2luZyBtb2RlID0gMw0KKFhFTikgWzIw
+MTItMDktMDMgMjA6NTU6MzJdIEFNRC1WaTogU2V0dXAgSS9PIHBhZ2UgdGFibGU6IGRldmlj
+ZSBpZCA9IDB4MDBhMywgcm9vdCB0YWJsZSA9IDB4MjRkODRiMDAwLCBkb21haW4gPSAwLCBw
+YWdpbmcgbW9kZSA9IDMNCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU1OjMyXSBBTUQtVmk6IFNl
+dHVwIEkvTyBwYWdlIHRhYmxlOiBkZXZpY2UgaWQgPSAweDAwYTQsIHJvb3QgdGFibGUgPSAw
+eDI0ZDg0YjAwMCwgZG9tYWluID0gMCwgcGFnaW5nIG1vZGUgPSAzDQooWEVOKSBbMjAxMi0w
+OS0wMyAyMDo1NTozMl0gQU1ELVZpOiBTZXR1cCBJL08gcGFnZSB0YWJsZTogZGV2aWNlIGlk
+ID0gMHgwMGE1LCByb290IHRhYmxlID0gMHgyNGQ4NGIwMDAsIGRvbWFpbiA9IDAsIHBhZ2lu
+ZyBtb2RlID0gMw0KKFhFTikgWzIwMTItMDktMDMgMjA6NTU6MzJdIEFNRC1WaTogU2V0dXAg
+SS9PIHBhZ2UgdGFibGU6IGRldmljZSBpZCA9IDB4MDBhOCwgcm9vdCB0YWJsZSA9IDB4MjRk
+ODRiMDAwLCBkb21haW4gPSAwLCBwYWdpbmcgbW9kZSA9IDMNCihYRU4pIFsyMDEyLTA5LTAz
+IDIwOjU1OjMyXSBBTUQtVmk6IFNldHVwIEkvTyBwYWdlIHRhYmxlOiBkZXZpY2UgaWQgPSAw
+eDAwYjAsIHJvb3QgdGFibGUgPSAweDI0ZDg0YjAwMCwgZG9tYWluID0gMCwgcGFnaW5nIG1v
+ZGUgPSAzDQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1NTozMl0gQU1ELVZpOiBTZXR1cCBJL08g
+cGFnZSB0YWJsZTogZGV2aWNlIGlkID0gMHgwMGIyLCByb290IHRhYmxlID0gMHgyNGQ4NGIw
+MDAsIGRvbWFpbiA9IDAsIHBhZ2luZyBtb2RlID0gMw0KKFhFTikgWzIwMTItMDktMDMgMjA6
+NTU6MzJdIEFNRC1WaTogTm8gaW9tbXUgZm9yIGRldmljZSAwMDAwOjAwOjE4LjANCihYRU4p
+IFsyMDEyLTA5LTAzIDIwOjU1OjMyXSBBTUQtVmk6IE5vIGlvbW11IGZvciBkZXZpY2UgMDAw
+MDowMDoxOC4xDQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1NTozMl0gQU1ELVZpOiBObyBpb21t
+dSBmb3IgZGV2aWNlIDAwMDA6MDA6MTguMg0KKFhFTikgWzIwMTItMDktMDMgMjA6NTU6MzJd
+IEFNRC1WaTogTm8gaW9tbXUgZm9yIGRldmljZSAwMDAwOjAwOjE4LjMNCihYRU4pIFsyMDEy
+LTA5LTAzIDIwOjU1OjMyXSBBTUQtVmk6IE5vIGlvbW11IGZvciBkZXZpY2UgMDAwMDowMDox
+OC40DQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1NTozMl0gQU1ELVZpOiBTZXR1cCBJL08gcGFn
+ZSB0YWJsZTogZGV2aWNlIGlkID0gMHgwNDAwLCByb290IHRhYmxlID0gMHgyNGQ4NGIwMDAs
+IGRvbWFpbiA9IDAsIHBhZ2luZyBtb2RlID0gMw0KKFhFTikgWzIwMTItMDktMDMgMjA6NTU6
+MzJdIEFNRC1WaTogU2V0dXAgSS9PIHBhZ2UgdGFibGU6IGRldmljZSBpZCA9IDB4MDQwMSwg
+cm9vdCB0YWJsZSA9IDB4MjRkODRiMDAwLCBkb21haW4gPSAwLCBwYWdpbmcgbW9kZSA9IDMN
+CihYRU4pIFsyMDEyLTA5LTAzIDIwOjU1OjMyXSBBTUQtVmk6IFNldHVwIEkvTyBwYWdlIHRh
+YmxlOiBkZXZpY2UgaWQgPSAweDA0MDIsIHJvb3QgdGFibGUgPSAweDI0ZDg0YjAwMCwgZG9t
+YWluID0gMCwgcGFnaW5nIG1vZGUgPSAzDQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1NTozMl0g
+QU1ELVZpOiBTZXR1cCBJL08gcGFnZSB0YWJsZTogZGV2aWNlIGlkID0gMHgwNDAzLCByb290
+IHRhYmxlID0gMHgyNGQ4NGIwMDAsIGRvbWFpbiA9IDAsIHBhZ2luZyBtb2RlID0gMw0KKFhF
+TikgWzIwMTItMDktMDMgMjA6NTU6MzJdIEFNRC1WaTogU2V0dXAgSS9PIHBhZ2UgdGFibGU6
+IGRldmljZSBpZCA9IDB4MDQwNCwgcm9vdCB0YWJsZSA9IDB4MjRkODRiMDAwLCBkb21haW4g
+PSAwLCBwYWdpbmcgbW9kZSA9IDMNCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU1OjMyXSBBTUQt
+Vmk6IFNldHVwIEkvTyBwYWdlIHRhYmxlOiBkZXZpY2UgaWQgPSAweDA0MDUsIHJvb3QgdGFi
+bGUgPSAweDI0ZDg0YjAwMCwgZG9tYWluID0gMCwgcGFnaW5nIG1vZGUgPSAzDQooWEVOKSBb
+MjAxMi0wOS0wMyAyMDo1NTozMl0gQU1ELVZpOiBTZXR1cCBJL08gcGFnZSB0YWJsZTogZGV2
+aWNlIGlkID0gMHgwNDA2LCByb290IHRhYmxlID0gMHgyNGQ4NGIwMDAsIGRvbWFpbiA9IDAs
+IHBhZ2luZyBtb2RlID0gMw0KKFhFTikgWzIwMTItMDktMDMgMjA6NTU6MzJdIEFNRC1WaTog
+U2V0dXAgSS9PIHBhZ2UgdGFibGU6IGRldmljZSBpZCA9IDB4MDQwNywgcm9vdCB0YWJsZSA9
+IDB4MjRkODRiMDAwLCBkb21haW4gPSAwLCBwYWdpbmcgbW9kZSA9IDMNCihYRU4pIFsyMDEy
+LTA5LTAzIDIwOjU1OjMyXSBBTUQtVmk6IFNldHVwIEkvTyBwYWdlIHRhYmxlOiBkZXZpY2Ug
+aWQgPSAweDA1MDAsIHJvb3QgdGFibGUgPSAweDI0ZDg0YjAwMCwgZG9tYWluID0gMCwgcGFn
+aW5nIG1vZGUgPSAzDQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1NTozMl0gQU1ELVZpOiBTZXR1
+cCBJL08gcGFnZSB0YWJsZTogZGV2aWNlIGlkID0gMHgwNjAwLCByb290IHRhYmxlID0gMHgy
+NGQ4NGIwMDAsIGRvbWFpbiA9IDAsIHBhZ2luZyBtb2RlID0gMw0KKFhFTikgWzIwMTItMDkt
+MDMgMjA6NTU6MzJdIEFNRC1WaTogU2V0dXAgSS9PIHBhZ2UgdGFibGU6IGRldmljZSBpZCA9
+IDB4MDYwMSwgcm9vdCB0YWJsZSA9IDB4MjRkODRiMDAwLCBkb21haW4gPSAwLCBwYWdpbmcg
+bW9kZSA9IDMNCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU1OjMyXSBBTUQtVmk6IFNldHVwIEkv
+TyBwYWdlIHRhYmxlOiBkZXZpY2UgaWQgPSAweDA3MDAsIHJvb3QgdGFibGUgPSAweDI0ZDg0
+YjAwMCwgZG9tYWluID0gMCwgcGFnaW5nIG1vZGUgPSAzDQooWEVOKSBbMjAxMi0wOS0wMyAy
+MDo1NTozMl0gQU1ELVZpOiBTZXR1cCBJL08gcGFnZSB0YWJsZTogZGV2aWNlIGlkID0gMHgw
+ODAwLCByb290IHRhYmxlID0gMHgyNGQ4NGIwMDAsIGRvbWFpbiA9IDAsIHBhZ2luZyBtb2Rl
+ID0gMw0KKFhFTikgWzIwMTItMDktMDMgMjA6NTU6MzJdIEFNRC1WaTogU2V0dXAgSS9PIHBh
+Z2UgdGFibGU6IGRldmljZSBpZCA9IDB4MDkwMCwgcm9vdCB0YWJsZSA9IDB4MjRkODRiMDAw
+LCBkb21haW4gPSAwLCBwYWdpbmcgbW9kZSA9IDMNCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU1
+OjMyXSBBTUQtVmk6IFNldHVwIEkvTyBwYWdlIHRhYmxlOiBkZXZpY2UgaWQgPSAweDBhMDAs
+IHJvb3QgdGFibGUgPSAweDI0ZDg0YjAwMCwgZG9tYWluID0gMCwgcGFnaW5nIG1vZGUgPSAz
+DQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1NTozMl0gQU1ELVZpOiBTZXR1cCBJL08gcGFnZSB0
+YWJsZTogZGV2aWNlIGlkID0gMHgwYTAxLCByb290IHRhYmxlID0gMHgyNGQ4NGIwMDAsIGRv
+bWFpbiA9IDAsIHBhZ2luZyBtb2RlID0gMw0KKFhFTikgWzIwMTItMDktMDMgMjA6NTU6MzJd
+IEFNRC1WaTogU2V0dXAgSS9PIHBhZ2UgdGFibGU6IGRldmljZSBpZCA9IDB4MGEwMiwgcm9v
+dCB0YWJsZSA9IDB4MjRkODRiMDAwLCBkb21haW4gPSAwLCBwYWdpbmcgbW9kZSA9IDMNCihY
+RU4pIFsyMDEyLTA5LTAzIDIwOjU1OjMyXSBBTUQtVmk6IFNldHVwIEkvTyBwYWdlIHRhYmxl
+OiBkZXZpY2UgaWQgPSAweDBhMDMsIHJvb3QgdGFibGUgPSAweDI0ZDg0YjAwMCwgZG9tYWlu
+ID0gMCwgcGFnaW5nIG1vZGUgPSAzDQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1NTozMl0gQU1E
+LVZpOiBTZXR1cCBJL08gcGFnZSB0YWJsZTogZGV2aWNlIGlkID0gMHgwYTA0LCByb290IHRh
+YmxlID0gMHgyNGQ4NGIwMDAsIGRvbWFpbiA9IDAsIHBhZ2luZyBtb2RlID0gMw0KKFhFTikg
+WzIwMTItMDktMDMgMjA6NTU6MzJdIEFNRC1WaTogU2V0dXAgSS9PIHBhZ2UgdGFibGU6IGRl
+dmljZSBpZCA9IDB4MGEwNSwgcm9vdCB0YWJsZSA9IDB4MjRkODRiMDAwLCBkb21haW4gPSAw
+LCBwYWdpbmcgbW9kZSA9IDMNCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU1OjMyXSBBTUQtVmk6
+IFNldHVwIEkvTyBwYWdlIHRhYmxlOiBkZXZpY2UgaWQgPSAweDBhMDYsIHJvb3QgdGFibGUg
+PSAweDI0ZDg0YjAwMCwgZG9tYWluID0gMCwgcGFnaW5nIG1vZGUgPSAzDQooWEVOKSBbMjAx
+Mi0wOS0wMyAyMDo1NTozMl0gQU1ELVZpOiBTZXR1cCBJL08gcGFnZSB0YWJsZTogZGV2aWNl
+IGlkID0gMHgwYTA3LCByb290IHRhYmxlID0gMHgyNGQ4NGIwMDAsIGRvbWFpbiA9IDAsIHBh
+Z2luZyBtb2RlID0gMw0KKFhFTikgWzIwMTItMDktMDMgMjA6NTU6MzJdIEFNRC1WaTogU2V0
+dXAgSS9PIHBhZ2UgdGFibGU6IGRldmljZSBpZCA9IDB4MGIwMCwgcm9vdCB0YWJsZSA9IDB4
+MjRkODRiMDAwLCBkb21haW4gPSAwLCBwYWdpbmcgbW9kZSA9IDMNCihYRU4pIFsyMDEyLTA5
+LTAzIDIwOjU1OjMyXSBTY3J1YmJpbmcgRnJlZSBSQU06IC4uLi4uLi4uLi4uLi4uLi4uLi4u
+Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uZG9u
+ZS4NCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU1OjM0XSBJbml0aWFsIGxvdyBtZW1vcnkgdmly
+cSB0aHJlc2hvbGQgc2V0IGF0IDB4NDAwMCBwYWdlcy4NCihYRU4pIFsyMDEyLTA5LTAzIDIw
+OjU1OjM0XSBTdGQuIExvZ2xldmVsOiBBbGwNCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU1OjM0
+XSBHdWVzdCBMb2dsZXZlbDogQWxsDQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1NTozNF0gWGVu
+IGlzIHJlbGlucXVpc2hpbmcgVkdBIGNvbnNvbGUuDQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1
+NTozNF0gKioqIFNlcmlhbCBpbnB1dCAtPiBET00wICh0eXBlICdDVFJMLWEnIHRocmVlIHRp
+bWVzIHRvIHN3aXRjaCBpbnB1dCB0byBYZW4pDQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1NToz
+NF0gRnJlZWQgMjU2a0IgaW5pdCBtZW1vcnkuDQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1NToz
+NF0gSU9BUElDWzBdOiBTZXQgUENJIHJvdXRpbmcgZW50cnkgKDYtOSAtPiAweDYwIC0+IElS
+USA5IE1vZGU6MSBBY3RpdmU6MSkNCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU1OjM0XSB0cmFw
+cy5jOjI1ODQ6ZDAgRG9tYWluIGF0dGVtcHRlZCBXUk1TUiAwMDAwMDAwMGMwMDAwNDA4IGZy
+b20gMHhjMDAwMDAwMDAxMDAwMDAwIHRvIDB4YzAwODAwMDAwMTAwMDAwMC4NCihYRU4pIFsy
+MDEyLTA5LTAzIDIwOjU1OjM0XSB0cmFwcy5jOjI1ODQ6ZDAgRG9tYWluIGF0dGVtcHRlZCBX
+Uk1TUiAwMDAwMDAwMGMwMDAwNDA5IGZyb20gMHhjMDAwMDAwMDAxMDAwMDAwIHRvIDB4YzAw
+ODAwMDAwMTAwMDAwMC4NCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU1OjM1XSB0cmFwcy5jOjI1
+ODQ6ZDAgRG9tYWluIGF0dGVtcHRlZCBXUk1TUiAwMDAwMDAwMGMwMDEwMDA0IGZyb20gMHgw
+MDAwZWZmMGJkZmIxZmNlIHRvIDB4MDAwMDAwMDAwMDAwYWJjZC4NCihYRU4pIFsyMDEyLTA5
+LTAzIDIwOjU1OjM1XSB0cmFwcy5jOjI1ODQ6ZDAgRG9tYWluIGF0dGVtcHRlZCBXUk1TUiAw
+MDAwMDAwMGMwMDAwNDA4IGZyb20gMHhjMDAwMDAwMDAxMDAwMDAwIHRvIDB4YzAwODAwMDAw
+MTAwMDAwMC4NCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU1OjM1XSB0cmFwcy5jOjI1ODQ6ZDAg
+RG9tYWluIGF0dGVtcHRlZCBXUk1TUiAwMDAwMDAwMGMwMDAwNDA5IGZyb20gMHhjMDAwMDAw
+MDAxMDAwMDAwIHRvIDB4YzAwODAwMDAwMTAwMDAwMC4NCihYRU4pIFsyMDEyLTA5LTAzIDIw
+OjU1OjM1XSB0cmFwcy5jOjI1ODQ6ZDAgRG9tYWluIGF0dGVtcHRlZCBXUk1TUiAwMDAwMDAw
+MGMwMDAwNDA4IGZyb20gMHhjMDAwMDAwMDAxMDAwMDAwIHRvIDB4YzAwODAwMDAwMTAwMDAw
+MC4NCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU1OjM1XSB0cmFwcy5jOjI1ODQ6ZDAgRG9tYWlu
+IGF0dGVtcHRlZCBXUk1TUiAwMDAwMDAwMGMwMDAwNDA5IGZyb20gMHhjMDAwMDAwMDAxMDAw
+MDAwIHRvIDB4YzAwODAwMDAwMTAwMDAwMC4NCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU1OjM1
+XSB0cmFwcy5jOjI1ODQ6ZDAgRG9tYWluIGF0dGVtcHRlZCBXUk1TUiAwMDAwMDAwMGMwMDAw
+NDA4IGZyb20gMHhjMDAwMDAwMDAxMDAwMDAwIHRvIDB4YzAwODAwMDAwMTAwMDAwMC4NCihY
+RU4pIFsyMDEyLTA5LTAzIDIwOjU1OjM1XSB0cmFwcy5jOjI1ODQ6ZDAgRG9tYWluIGF0dGVt
+cHRlZCBXUk1TUiAwMDAwMDAwMGMwMDAwNDA5IGZyb20gMHhjMDAwMDAwMDAxMDAwMDAwIHRv
+IDB4YzAwODAwMDAwMTAwMDAwMC4NCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU1OjM1XSB0cmFw
+cy5jOjI1ODQ6ZDAgRG9tYWluIGF0dGVtcHRlZCBXUk1TUiAwMDAwMDAwMGMwMDAwNDA4IGZy
+b20gMHhjMDAwMDAwMDAxMDAwMDAwIHRvIDB4YzAwODAwMDAwMTAwMDAwMC4NCihYRU4pIFsy
+MDEyLTA5LTAzIDIwOjU1OjM1XSB0cmFwcy5jOjI1ODQ6ZDAgRG9tYWluIGF0dGVtcHRlZCBX
+Uk1TUiAwMDAwMDAwMGMwMDAwNDA5IGZyb20gMHhjMDAwMDAwMDAxMDAwMDAwIHRvIDB4YzAw
+ODAwMDAwMTAwMDAwMC4NCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU1OjM1XSB0cmFwcy5jOjI1
+ODQ6ZDAgRG9tYWluIGF0dGVtcHRlZCBXUk1TUiAwMDAwMDAwMGMwMDAwNDA4IGZyb20gMHhj
+MDAwMDAwMDAxMDAwMDAwIHRvIDB4YzAwODAwMDAwMTAwMDAwMC4NCihYRU4pIFsyMDEyLTA5
+LTAzIDIwOjU1OjM1XSB0cmFwcy5jOjI1ODQ6ZDAgRG9tYWluIGF0dGVtcHRlZCBXUk1TUiAw
+MDAwMDAwMGMwMDAwNDA5IGZyb20gMHhjMDAwMDAwMDAxMDAwMDAwIHRvIDB4YzAwODAwMDAw
+MTAwMDAwMC4NCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU1OjM1XSBQQ0kgYWRkIGRldmljZSAw
+MDAwOjAwOjAwLjANCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU1OjM1XSBQQ0kgYWRkIGRldmlj
+ZSAwMDAwOjAwOjAwLjINCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU1OjM1XSBQQ0kgYWRkIGRl
+dmljZSAwMDAwOjAwOjAyLjANCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU1OjM1XSBQQ0kgYWRk
+IGRldmljZSAwMDAwOjAwOjAzLjANCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU1OjM1XSBQQ0kg
+YWRkIGRldmljZSAwMDAwOjAwOjA1LjANCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU1OjM1XSBQ
+Q0kgYWRkIGRldmljZSAwMDAwOjAwOjA2LjANCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU1OjM1
+XSBQQ0kgYWRkIGRldmljZSAwMDAwOjAwOjBhLjANCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU1
+OjM1XSBQQ0kgYWRkIGRldmljZSAwMDAwOjAwOjBiLjANCihYRU4pIFsyMDEyLTA5LTAzIDIw
+OjU1OjM1XSBQQ0kgYWRkIGRldmljZSAwMDAwOjAwOjBjLjANCihYRU4pIFsyMDEyLTA5LTAz
+IDIwOjU1OjM1XSBQQ0kgYWRkIGRldmljZSAwMDAwOjAwOjBkLjANCihYRU4pIFsyMDEyLTA5
+LTAzIDIwOjU1OjM1XSBQQ0kgYWRkIGRldmljZSAwMDAwOjAwOjExLjANCihYRU4pIFsyMDEy
+LTA5LTAzIDIwOjU1OjM1XSBQQ0kgYWRkIGRldmljZSAwMDAwOjAwOjEyLjANCihYRU4pIFsy
+MDEyLTA5LTAzIDIwOjU1OjM1XSBQQ0kgYWRkIGRldmljZSAwMDAwOjAwOjEyLjINCihYRU4p
+IFsyMDEyLTA5LTAzIDIwOjU1OjM1XSBQQ0kgYWRkIGRldmljZSAwMDAwOjAwOjEzLjANCihY
+RU4pIFsyMDEyLTA5LTAzIDIwOjU1OjM1XSBQQ0kgYWRkIGRldmljZSAwMDAwOjAwOjEzLjIN
+CihYRU4pIFsyMDEyLTA5LTAzIDIwOjU1OjM1XSBQQ0kgYWRkIGRldmljZSAwMDAwOjAwOjE0
+LjANCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU1OjM1XSBQQ0kgYWRkIGRldmljZSAwMDAwOjAw
+OjE0LjMNCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU1OjM1XSBQQ0kgYWRkIGRldmljZSAwMDAw
+OjAwOjE0LjQNCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU1OjM1XSBQQ0kgYWRkIGRldmljZSAw
+MDAwOjAwOjE0LjUNCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU1OjM1XSBQQ0kgYWRkIGRldmlj
+ZSAwMDAwOjAwOjE1LjANCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU1OjM1XSBQQ0kgYWRkIGRl
+dmljZSAwMDAwOjAwOjE2LjANCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU1OjM1XSBQQ0kgYWRk
+IGRldmljZSAwMDAwOjAwOjE2LjINCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU1OjM1XSBQQ0kg
+YWRkIGRldmljZSAwMDAwOjAwOjE4LjANCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU1OjM1XSBQ
+Q0kgYWRkIGRldmljZSAwMDAwOjAwOjE4LjENCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU1OjM1
+XSBQQ0kgYWRkIGRldmljZSAwMDAwOjAwOjE4LjINCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU1
+OjM1XSBQQ0kgYWRkIGRldmljZSAwMDAwOjAwOjE4LjMNCihYRU4pIFsyMDEyLTA5LTAzIDIw
+OjU1OjM1XSBQQ0kgYWRkIGRldmljZSAwMDAwOjAwOjE4LjQNCihYRU4pIFsyMDEyLTA5LTAz
+IDIwOjU1OjM1XSBQQ0kgYWRkIGRldmljZSAwMDAwOjBiOjAwLjANCihYRU4pIFsyMDEyLTA5
+LTAzIDIwOjU1OjM1XSBQQ0kgYWRkIGRldmljZSAwMDAwOjBhOjAwLjANCihYRU4pIFsyMDEy
+LTA5LTAzIDIwOjU1OjM1XSBQQ0kgYWRkIGRldmljZSAwMDAwOjBhOjAwLjENCihYRU4pIFsy
+MDEyLTA5LTAzIDIwOjU1OjM1XSBQQ0kgYWRkIGRldmljZSAwMDAwOjBhOjAwLjINCihYRU4p
+IFsyMDEyLTA5LTAzIDIwOjU1OjM1XSBQQ0kgYWRkIGRldmljZSAwMDAwOjBhOjAwLjMNCihY
+RU4pIFsyMDEyLTA5LTAzIDIwOjU1OjM1XSBQQ0kgYWRkIGRldmljZSAwMDAwOjBhOjAwLjQN
+CihYRU4pIFsyMDEyLTA5LTAzIDIwOjU1OjM1XSBQQ0kgYWRkIGRldmljZSAwMDAwOjBhOjAw
+LjUNCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU1OjM1XSBQQ0kgYWRkIGRldmljZSAwMDAwOjBh
+OjAwLjYNCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU1OjM1XSBQQ0kgYWRkIGRldmljZSAwMDAw
+OjBhOjAwLjcNCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU1OjM1XSBQQ0kgYWRkIGRldmljZSAw
+MDAwOjA5OjAwLjANCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU1OjM1XSBQQ0kgYWRkIGRldmlj
+ZSAwMDAwOjA4OjAwLjANCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU1OjM1XSBQQ0kgYWRkIGRl
+dmljZSAwMDAwOjA3OjAwLjANCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU1OjM1XSBQQ0kgYWRk
+IGRldmljZSAwMDAwOjA2OjAwLjANCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU1OjM1XSBQQ0kg
+YWRkIGRldmljZSAwMDAwOjA2OjAwLjENCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU1OjM1XSBQ
+Q0kgYWRkIGRldmljZSAwMDAwOjA1OjAwLjANCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU1OjM1
+XSBQQ0kgYWRkIGRldmljZSAwMDAwOjA0OjAwLjANCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU1
+OjM1XSBQQ0kgYWRkIGRldmljZSAwMDAwOjA0OjAwLjENCihYRU4pIFsyMDEyLTA5LTAzIDIw
+OjU1OjM1XSBQQ0kgYWRkIGRldmljZSAwMDAwOjA0OjAwLjINCihYRU4pIFsyMDEyLTA5LTAz
+IDIwOjU1OjM1XSBQQ0kgYWRkIGRldmljZSAwMDAwOjA0OjAwLjMNCihYRU4pIFsyMDEyLTA5
+LTAzIDIwOjU1OjM1XSBQQ0kgYWRkIGRldmljZSAwMDAwOjA0OjAwLjQNCihYRU4pIFsyMDEy
+LTA5LTAzIDIwOjU1OjM1XSBQQ0kgYWRkIGRldmljZSAwMDAwOjA0OjAwLjUNCihYRU4pIFsy
+MDEyLTA5LTAzIDIwOjU1OjM1XSBQQ0kgYWRkIGRldmljZSAwMDAwOjA0OjAwLjYNCihYRU4p
+IFsyMDEyLTA5LTAzIDIwOjU1OjM1XSBQQ0kgYWRkIGRldmljZSAwMDAwOjA0OjAwLjcNCihY
+RU4pIFsyMDEyLTA5LTAzIDIwOjU1OjM1XSBQQ0kgYWRkIGRldmljZSAwMDAwOjAzOjA2LjAN
+CihYRU4pIFsyMDEyLTA5LTAzIDIwOjU1OjM1XSBJT0FQSUNbMF06IFNldCBQQ0kgcm91dGlu
+ZyBlbnRyeSAoNi04IC0+IDB4NTggLT4gSVJRIDggTW9kZTowIEFjdGl2ZTowKQ0KKFhFTikg
+WzIwMTItMDktMDMgMjA6NTU6MzVdIElPQVBJQ1swXTogU2V0IFBDSSByb3V0aW5nIGVudHJ5
+ICg2LTEzIC0+IDB4ODggLT4gSVJRIDEzIE1vZGU6MCBBY3RpdmU6MCkNCihYRU4pIFsyMDEy
+LTA5LTAzIDIwOjU1OjM1XSBJT0FQSUNbMV06IFNldCBQQ0kgcm91dGluZyBlbnRyeSAoNy0y
+OCAtPiAweGEwIC0+IElSUSA1MiBNb2RlOjEgQWN0aXZlOjEpDQooWEVOKSBbMjAxMi0wOS0w
+MyAyMDo1NTozNV0gSU9BUElDWzFdOiBTZXQgUENJIHJvdXRpbmcgZW50cnkgKDctMjkgLT4g
+MHhhOCAtPiBJUlEgNTMgTW9kZToxIEFjdGl2ZToxKQ0KKFhFTikgWzIwMTItMDktMDMgMjA6
+NTU6MzVdIElPQVBJQ1sxXTogU2V0IFBDSSByb3V0aW5nIGVudHJ5ICg3LTMwIC0+IDB4YjAg
+LT4gSVJRIDU0IE1vZGU6MSBBY3RpdmU6MSkNCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU1OjM1
+XSBJT0FQSUNbMF06IFNldCBQQ0kgcm91dGluZyBlbnRyeSAoNi0xNiAtPiAweGI4IC0+IElS
+USAxNiBNb2RlOjEgQWN0aXZlOjEpDQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1NTozNV0gSU9B
+UElDWzBdOiBTZXQgUENJIHJvdXRpbmcgZW50cnkgKDYtMTggLT4gMHhjMCAtPiBJUlEgMTgg
+TW9kZToxIEFjdGl2ZToxKQ0KKFhFTikgWzIwMTItMDktMDMgMjA6NTU6MzVdIElPQVBJQ1sw
+XTogU2V0IFBDSSByb3V0aW5nIGVudHJ5ICg2LTE3IC0+IDB4YzggLT4gSVJRIDE3IE1vZGU6
+MSBBY3RpdmU6MSkNCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU1OjM1XSBJT0FQSUNbMV06IFNl
+dCBQQ0kgcm91dGluZyBlbnRyeSAoNy00IC0+IDB4ZDAgLT4gSVJRIDI4IE1vZGU6MSBBY3Rp
+dmU6MSkNCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU1OjM1XSBJT0FQSUNbMV06IFNldCBQQ0kg
+cm91dGluZyBlbnRyeSAoNy01IC0+IDB4ZDggLT4gSVJRIDI5IE1vZGU6MSBBY3RpdmU6MSkN
+CihYRU4pIFsyMDEyLTA5LTAzIDIwOjU1OjM1XSBJT0FQSUNbMV06IFNldCBQQ0kgcm91dGlu
+ZyBlbnRyeSAoNy02IC0+IDB4MjEgLT4gSVJRIDMwIE1vZGU6MSBBY3RpdmU6MSkNCihYRU4p
+IFsyMDEyLTA5LTAzIDIwOjU1OjM1XSBJT0FQSUNbMV06IFNldCBQQ0kgcm91dGluZyBlbnRy
+eSAoNy03IC0+IDB4MjkgLT4gSVJRIDMxIE1vZGU6MSBBY3RpdmU6MSkNCihYRU4pIFsyMDEy
+LTA5LTAzIDIwOjU1OjM1XSBJT0FQSUNbMV06IFNldCBQQ0kgcm91dGluZyBlbnRyeSAoNy0x
+NiAtPiAweDMxIC0+IElSUSA0MCBNb2RlOjEgQWN0aXZlOjEpDQooWEVOKSBbMjAxMi0wOS0w
+MyAyMDo1NTozNV0gSU9BUElDWzFdOiBTZXQgUENJIHJvdXRpbmcgZW50cnkgKDctMTcgLT4g
+MHgzOSAtPiBJUlEgNDEgTW9kZToxIEFjdGl2ZToxKQ0KKFhFTikgWzIwMTItMDktMDMgMjA6
+NTU6MzZdIElPQVBJQ1sxXTogU2V0IFBDSSByb3V0aW5nIGVudHJ5ICg3LTE4IC0+IDB4NDEg
+LT4gSVJRIDQyIE1vZGU6MSBBY3RpdmU6MSkNCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU1OjM2
+XSBJT0FQSUNbMV06IFNldCBQQ0kgcm91dGluZyBlbnRyeSAoNy0xOSAtPiAweDQ5IC0+IElS
+USA0MyBNb2RlOjEgQWN0aXZlOjEpDQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1NTozNl0gSU9B
+UElDWzBdOiBTZXQgUENJIHJvdXRpbmcgZW50cnkgKDYtMjIgLT4gMHg5OSAtPiBJUlEgMjIg
+TW9kZToxIEFjdGl2ZToxKQ0KKFhFTikgWzIwMTItMDktMDMgMjA6NTU6MzZdIElPQVBJQ1sx
+XTogU2V0IFBDSSByb3V0aW5nIGVudHJ5ICg3LTEyIC0+IDB4YTEgLT4gSVJRIDM2IE1vZGU6
+MSBBY3RpdmU6MSkNCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU1OjM2XSBJT0FQSUNbMV06IFNl
+dCBQQ0kgcm91dGluZyBlbnRyeSAoNy0yMyAtPiAweGE5IC0+IElSUSA0NyBNb2RlOjEgQWN0
+aXZlOjEpDQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1NTozNl0gSU9BUElDWzBdOiBTZXQgUENJ
+IHJvdXRpbmcgZW50cnkgKDYtMTkgLT4gMHhiMSAtPiBJUlEgMTkgTW9kZToxIEFjdGl2ZTox
+KQ0KKFhFTikgWzIwMTItMDktMDMgMjA6NTU6MzZdIElPQVBJQ1sxXTogU2V0IFBDSSByb3V0
+aW5nIGVudHJ5ICg3LTIyIC0+IDB4YzEgLT4gSVJRIDQ2IE1vZGU6MSBBY3RpdmU6MSkNCihY
+RU4pIFsyMDEyLTA5LTAzIDIwOjU1OjM2XSBJT0FQSUNbMV06IFNldCBQQ0kgcm91dGluZyBl
+bnRyeSAoNy0yNyAtPiAweGQxIC0+IElSUSA1MSBNb2RlOjEgQWN0aXZlOjEpDQooWEVOKSBb
+MjAxMi0wOS0wMyAyMDo1NTozOF0gSU9BUElDWzFdOiBTZXQgUENJIHJvdXRpbmcgZW50cnkg
+KDctOSAtPiAweDIyIC0+IElSUSAzMyBNb2RlOjEgQWN0aXZlOjEpDQooWEVOKSBbMjAxMi0w
+OS0wMyAyMDo1NjozN10gdHJhcHMuYzoyNTg0OmQxIERvbWFpbiBhdHRlbXB0ZWQgV1JNU1Ig
+MDAwMDAwMDBjMDAxMDAwNCBmcm9tIDB4MDAwMDQyMzQ1YTBkYTU0NSB0byAweDAwMDAwMDAw
+MDAwMGFiY2QuDQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1Njo0M10gdHJhcHMuYzoyNTg0OmQy
+IERvbWFpbiBhdHRlbXB0ZWQgV1JNU1IgMDAwMDAwMDBjMDAxMDAwNCBmcm9tIDB4MDAwMDg2
+NzljMDJiNDE2NSB0byAweDAwMDAwMDAwMDAwMGFiY2QuDQooWEVOKSBbMjAxMi0wOS0wMyAy
+MDo1Njo1NV0gdHJhcHMuYzoyNTg0OmQzIERvbWFpbiBhdHRlbXB0ZWQgV1JNU1IgMDAwMDAw
+MDBjMDAxMDAwNCBmcm9tIDB4MDAwMDQyMzQ1YTBkYTU0NSB0byAweDAwMDAwMDAwMDAwMGFi
+Y2QuDQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1Njo1NV0gdHJhcHMuYzoyNTg0OmQ0IERvbWFp
+biBhdHRlbXB0ZWQgV1JNU1IgMDAwMDAwMDBjMDAxMDAwNCBmcm9tIDB4MDAwMDg2NzljMDJi
+NDE2NSB0byAweDAwMDAwMDAwMDAwMGFiY2QuDQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1Nzow
+M10gdHJhcHMuYzoyNTg0OmQ1IERvbWFpbiBhdHRlbXB0ZWQgV1JNU1IgMDAwMDAwMDBjMDAx
+MDAwNCBmcm9tIDB4MDAwMDg2NzljMDJiNDE2NSB0byAweDAwMDAwMDAwMDAwMGFiY2QuDQoo
+WEVOKSBbMjAxMi0wOS0wMyAyMDo1NzowOV0gdHJhcHMuYzoyNTg0OmQ2IERvbWFpbiBhdHRl
+bXB0ZWQgV1JNU1IgMDAwMDAwMDBjMDAxMDAwNCBmcm9tIDB4MDAwMDZmYjAzOWRlNzkwMCB0
+byAweDAwMDAwMDAwMDAwMGFiY2QuDQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1NzoxNV0gdHJh
+cHMuYzoyNTg0OmQ3IERvbWFpbiBhdHRlbXB0ZWQgV1JNU1IgMDAwMDAwMDBjMDAxMDAwNCBm
+cm9tIDB4MDAwMGExOTVjNDBmNjE4ZiB0byAweDAwMDAwMDAwMDAwMGFiY2QuDQooWEVOKSBb
+MjAxMi0wOS0wMyAyMDo1NzoyMl0gdHJhcHMuYzoyNTg0OmQ4IERvbWFpbiBhdHRlbXB0ZWQg
+V1JNU1IgMDAwMDAwMDBjMDAxMDAwNCBmcm9tIDB4MDAwMDZmYjAzOWRlNzkwMCB0byAweDAw
+MDAwMDAwMDAwMGFiY2QuDQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1NzoyOF0gdHJhcHMuYzoy
+NTg0OmQ5IERvbWFpbiBhdHRlbXB0ZWQgV1JNU1IgMDAwMDAwMDBjMDAxMDAwNCBmcm9tIDB4
+MDAwMDQyMzQ1YTBkYTU0NSB0byAweDAwMDAwMDAwMDAwMGFiY2QuDQooWEVOKSBbMjAxMi0w
+OS0wMyAyMDo1NzozNV0gdHJhcHMuYzoyNTg0OmQxMCBEb21haW4gYXR0ZW1wdGVkIFdSTVNS
+IDAwMDAwMDAwYzAwMTAwMDQgZnJvbSAweDAwMDA0MjM0NWEwZGE1NDUgdG8gMHgwMDAwMDAw
+MDAwMDBhYmNkLg0KKFhFTikgWzIwMTItMDktMDMgMjA6NTc6NDFdIEFNRC1WaTogRGlzYWJs
+ZTogZGV2aWNlIGlkID0gMHgwMGE0LCBkb21haW4gPSAwLCBwYWdpbmcgbW9kZSA9IDMNCihY
+RU4pIFsyMDEyLTA5LTAzIDIwOjU3OjQxXSBBTUQtVmk6IFNldHVwIEkvTyBwYWdlIHRhYmxl
+OiBkZXZpY2UgaWQgPSAweDAwYTQsIHJvb3QgdGFibGUgPSAweDE4ZTBhMTAwMCwgZG9tYWlu
+ID0gMTEsIHBhZ2luZyBtb2RlID0gMw0KKFhFTikgWzIwMTItMDktMDMgMjA6NTc6NDFdIEFN
+RC1WaTogUmUtYXNzaWduIDAwMDA6MDM6MDYuMCBmcm9tIGRvbTAgdG8gZG9tMTENCihYRU4p
+IFsyMDEyLTA5LTAzIDIwOjU3OjQxXSB0cmFwcy5jOjI1ODQ6ZDExIERvbWFpbiBhdHRlbXB0
+ZWQgV1JNU1IgMDAwMDAwMDBjMDAxMDAwNCBmcm9tIDB4MDAwMDg2NzljMDJiNDE2NSB0byAw
+eDAwMDAwMDAwMDAwMGFiY2QuDQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1Nzo1Ml0gdHJhcHMu
+YzoyNTg0OmQxMiBEb21haW4gYXR0ZW1wdGVkIFdSTVNSIDAwMDAwMDAwYzAwMTAwMDQgZnJv
+bSAweDAwMDBhMTk1YzQwZjYxOGYgdG8gMHgwMDAwMDAwMDAwMDBhYmNkLg0KKFhFTikgWzIw
+MTItMDktMDMgMjA6NTc6NThdIHRyYXBzLmM6MjU4NDpkMTMgRG9tYWluIGF0dGVtcHRlZCBX
+Uk1TUiAwMDAwMDAwMGMwMDEwMDA0IGZyb20gMHgwMDAwODY3OWMwMmI0MTY1IHRvIDB4MDAw
+MDAwMDAwMDAwYWJjZC4NCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU4OjA2XSBBTUQtVmk6IERp
+c2FibGU6IGRldmljZSBpZCA9IDB4MGEwMCwgZG9tYWluID0gMCwgcGFnaW5nIG1vZGUgPSAz
+DQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1ODowNl0gQU1ELVZpOiBTZXR1cCBJL08gcGFnZSB0
+YWJsZTogZGV2aWNlIGlkID0gMHgwYTAwLCByb290IHRhYmxlID0gMHgxZTFmYzAwMDAsIGRv
+bWFpbiA9IDE0LCBwYWdpbmcgbW9kZSA9IDMNCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU4OjA2
+XSBBTUQtVmk6IFJlLWFzc2lnbiAwMDAwOjBhOjAwLjAgZnJvbSBkb20wIHRvIGRvbTE0DQoo
+WEVOKSBbMjAxMi0wOS0wMyAyMDo1ODowNl0gQU1ELVZpOiBEaXNhYmxlOiBkZXZpY2UgaWQg
+PSAweDBhMDEsIGRvbWFpbiA9IDAsIHBhZ2luZyBtb2RlID0gMw0KKFhFTikgWzIwMTItMDkt
+MDMgMjA6NTg6MDZdIEFNRC1WaTogU2V0dXAgSS9PIHBhZ2UgdGFibGU6IGRldmljZSBpZCA9
+IDB4MGEwMSwgcm9vdCB0YWJsZSA9IDB4MWUxZmMwMDAwLCBkb21haW4gPSAxNCwgcGFnaW5n
+IG1vZGUgPSAzDQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1ODowNl0gQU1ELVZpOiBSZS1hc3Np
+Z24gMDAwMDowYTowMC4xIGZyb20gZG9tMCB0byBkb20xNA0KKFhFTikgWzIwMTItMDktMDMg
+MjA6NTg6MDZdIEFNRC1WaTogRGlzYWJsZTogZGV2aWNlIGlkID0gMHgwYTAyLCBkb21haW4g
+PSAwLCBwYWdpbmcgbW9kZSA9IDMNCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU4OjA2XSBBTUQt
+Vmk6IFNldHVwIEkvTyBwYWdlIHRhYmxlOiBkZXZpY2UgaWQgPSAweDBhMDIsIHJvb3QgdGFi
+bGUgPSAweDFlMWZjMDAwMCwgZG9tYWluID0gMTQsIHBhZ2luZyBtb2RlID0gMw0KKFhFTikg
+WzIwMTItMDktMDMgMjA6NTg6MDZdIEFNRC1WaTogUmUtYXNzaWduIDAwMDA6MGE6MDAuMiBm
+cm9tIGRvbTAgdG8gZG9tMTQNCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU4OjA2XSBBTUQtVmk6
+IERpc2FibGU6IGRldmljZSBpZCA9IDB4MGEwMywgZG9tYWluID0gMCwgcGFnaW5nIG1vZGUg
+PSAzDQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1ODowNl0gQU1ELVZpOiBTZXR1cCBJL08gcGFn
+ZSB0YWJsZTogZGV2aWNlIGlkID0gMHgwYTAzLCByb290IHRhYmxlID0gMHgxZTFmYzAwMDAs
+IGRvbWFpbiA9IDE0LCBwYWdpbmcgbW9kZSA9IDMNCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU4
+OjA2XSBBTUQtVmk6IFJlLWFzc2lnbiAwMDAwOjBhOjAwLjMgZnJvbSBkb20wIHRvIGRvbTE0
+DQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1ODowNl0gQU1ELVZpOiBEaXNhYmxlOiBkZXZpY2Ug
+aWQgPSAweDBhMDQsIGRvbWFpbiA9IDAsIHBhZ2luZyBtb2RlID0gMw0KKFhFTikgWzIwMTIt
+MDktMDMgMjA6NTg6MDZdIEFNRC1WaTogU2V0dXAgSS9PIHBhZ2UgdGFibGU6IGRldmljZSBp
+ZCA9IDB4MGEwNCwgcm9vdCB0YWJsZSA9IDB4MWUxZmMwMDAwLCBkb21haW4gPSAxNCwgcGFn
+aW5nIG1vZGUgPSAzDQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1ODowNl0gQU1ELVZpOiBSZS1h
+c3NpZ24gMDAwMDowYTowMC40IGZyb20gZG9tMCB0byBkb20xNA0KKFhFTikgWzIwMTItMDkt
+MDMgMjA6NTg6MDZdIEFNRC1WaTogRGlzYWJsZTogZGV2aWNlIGlkID0gMHgwYTA1LCBkb21h
+aW4gPSAwLCBwYWdpbmcgbW9kZSA9IDMNCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU4OjA2XSBB
+TUQtVmk6IFNldHVwIEkvTyBwYWdlIHRhYmxlOiBkZXZpY2UgaWQgPSAweDBhMDUsIHJvb3Qg
+dGFibGUgPSAweDFlMWZjMDAwMCwgZG9tYWluID0gMTQsIHBhZ2luZyBtb2RlID0gMw0KKFhF
+TikgWzIwMTItMDktMDMgMjA6NTg6MDZdIEFNRC1WaTogUmUtYXNzaWduIDAwMDA6MGE6MDAu
+NSBmcm9tIGRvbTAgdG8gZG9tMTQNCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU4OjA2XSBBTUQt
+Vmk6IERpc2FibGU6IGRldmljZSBpZCA9IDB4MGEwNiwgZG9tYWluID0gMCwgcGFnaW5nIG1v
+ZGUgPSAzDQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1ODowNl0gQU1ELVZpOiBTZXR1cCBJL08g
+cGFnZSB0YWJsZTogZGV2aWNlIGlkID0gMHgwYTA2LCByb290IHRhYmxlID0gMHgxZTFmYzAw
+MDAsIGRvbWFpbiA9IDE0LCBwYWdpbmcgbW9kZSA9IDMNCihYRU4pIFsyMDEyLTA5LTAzIDIw
+OjU4OjA2XSBBTUQtVmk6IFJlLWFzc2lnbiAwMDAwOjBhOjAwLjYgZnJvbSBkb20wIHRvIGRv
+bTE0DQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1ODowNl0gQU1ELVZpOiBEaXNhYmxlOiBkZXZp
+Y2UgaWQgPSAweDBhMDcsIGRvbWFpbiA9IDAsIHBhZ2luZyBtb2RlID0gMw0KKFhFTikgWzIw
+MTItMDktMDMgMjA6NTg6MDZdIEFNRC1WaTogU2V0dXAgSS9PIHBhZ2UgdGFibGU6IGRldmlj
+ZSBpZCA9IDB4MGEwNywgcm9vdCB0YWJsZSA9IDB4MWUxZmMwMDAwLCBkb21haW4gPSAxNCwg
+cGFnaW5nIG1vZGUgPSAzDQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1ODowNl0gQU1ELVZpOiBS
+ZS1hc3NpZ24gMDAwMDowYTowMC43IGZyb20gZG9tMCB0byBkb20xNA0KKFhFTikgWzIwMTIt
+MDktMDMgMjA6NTg6MDZdIEFNRC1WaTogRGlzYWJsZTogZGV2aWNlIGlkID0gMHgwNzAwLCBk
+b21haW4gPSAwLCBwYWdpbmcgbW9kZSA9IDMNCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU4OjA2
+XSBBTUQtVmk6IFNldHVwIEkvTyBwYWdlIHRhYmxlOiBkZXZpY2UgaWQgPSAweDA3MDAsIHJv
+b3QgdGFibGUgPSAweDFlMWZjMDAwMCwgZG9tYWluID0gMTQsIHBhZ2luZyBtb2RlID0gMw0K
+KFhFTikgWzIwMTItMDktMDMgMjA6NTg6MDZdIEFNRC1WaTogUmUtYXNzaWduIDAwMDA6MDc6
+MDAuMCBmcm9tIGRvbTAgdG8gZG9tMTQNCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU4OjA2XSB0
+cmFwcy5jOjI1ODQ6ZDE0IERvbWFpbiBhdHRlbXB0ZWQgV1JNU1IgMDAwMDAwMDBjMDAxMDAw
+NCBmcm9tIDB4MDAwMDc4NTE5MGZiNGUwZiB0byAweDAwMDAwMDAwMDAwMGFiY2QuDQooWEVO
+KSBbMjAxMi0wOS0wMyAyMDo1ODoxNl0gQU1ELVZpOiBTaGFyZSBwMm0gdGFibGUgd2l0aCBp
+b21tdTogcDJtIHRhYmxlID0gMHhhNzdhOA0KKFhFTikgWzIwMTItMDktMDMgMjA6NTg6MTld
+IEhWTTE1OiBIVk0gTG9hZGVyDQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1ODoxOV0gSFZNMTU6
+IERldGVjdGVkIFhlbiB2NC4yLjAtcmM0LXByZQ0KKFhFTikgWzIwMTItMDktMDMgMjA6NTg6
+MTldIEhWTTE1OiBYZW5idXMgcmluZ3MgQDB4ZmVmZmMwMDAsIGV2ZW50IGNoYW5uZWwgNA0K
+KFhFTikgWzIwMTItMDktMDMgMjA6NTg6MTldIEhWTTE1OiBTeXN0ZW0gcmVxdWVzdGVkIFJP
+TUJJT1MNCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU4OjE5XSBIVk0xNTogQ1BVIHNwZWVkIGlz
+IDMyMDAgTUh6DQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1ODoxOV0gaXJxLmM6MjcwOiBEb20x
+NSBQQ0kgbGluayAwIGNoYW5nZWQgMCAtPiA1DQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1ODox
+OV0gSFZNMTU6IFBDSS1JU0EgbGluayAwIHJvdXRlZCB0byBJUlE1DQooWEVOKSBbMjAxMi0w
+OS0wMyAyMDo1ODoxOV0gaXJxLmM6MjcwOiBEb20xNSBQQ0kgbGluayAxIGNoYW5nZWQgMCAt
+PiAxMA0KKFhFTikgWzIwMTItMDktMDMgMjA6NTg6MTldIEhWTTE1OiBQQ0ktSVNBIGxpbmsg
+MSByb3V0ZWQgdG8gSVJRMTANCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU4OjE5XSBpcnEuYzoy
+NzA6IERvbTE1IFBDSSBsaW5rIDIgY2hhbmdlZCAwIC0+IDExDQooWEVOKSBbMjAxMi0wOS0w
+MyAyMDo1ODoxOV0gSFZNMTU6IFBDSS1JU0EgbGluayAyIHJvdXRlZCB0byBJUlExMQ0KKFhF
+TikgWzIwMTItMDktMDMgMjA6NTg6MTldIGlycS5jOjI3MDogRG9tMTUgUENJIGxpbmsgMyBj
+aGFuZ2VkIDAgLT4gNQ0KKFhFTikgWzIwMTItMDktMDMgMjA6NTg6MTldIEhWTTE1OiBQQ0kt
+SVNBIGxpbmsgMyByb3V0ZWQgdG8gSVJRNQ0KKFhFTikgWzIwMTItMDktMDMgMjA6NTg6MTld
+IEhWTTE1OiBwY2kgZGV2IDAxOjIgSU5URC0+SVJRNQ0KKFhFTikgWzIwMTItMDktMDMgMjA6
+NTg6MTldIEhWTTE1OiBwY2kgZGV2IDAxOjMgSU5UQS0+SVJRMTANCihYRU4pIFsyMDEyLTA5
+LTAzIDIwOjU4OjE5XSBIVk0xNTogcGNpIGRldiAwMzowIElOVEEtPklSUTUNCihYRU4pIFsy
+MDEyLTA5LTAzIDIwOjU4OjE5XSBIVk0xNTogcGNpIGRldiAwNDowIElOVEEtPklSUTUNCihY
+RU4pIFsyMDEyLTA5LTAzIDIwOjU4OjE5XSBIVk0xNTogcGNpIGRldiAwMjowIGJhciAxMCBz
+aXplIDAyMDAwMDAwOiBmMDAwMDAwOA0KKFhFTikgWzIwMTItMDktMDMgMjA6NTg6MTldIEhW
+TTE1OiBwY2kgZGV2IDAzOjAgYmFyIDE0IHNpemUgMDEwMDAwMDA6IGYyMDAwMDA4DQooWEVO
+KSBbMjAxMi0wOS0wMyAyMDo1ODoxOV0gSFZNMTU6IHBjaSBkZXYgMDQ6MCBiYXIgMTAgc2l6
+ZSAwMDAyMDAwMDogZjMwMDAwMDANCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU4OjE5XSBIVk0x
+NTogcGNpIGRldiAwMjowIGJhciAxNCBzaXplIDAwMDAxMDAwOiBmMzAyMDAwMA0KKFhFTikg
+WzIwMTItMDktMDMgMjA6NTg6MTldIEhWTTE1OiBwY2kgZGV2IDAzOjAgYmFyIDEwIHNpemUg
+MDAwMDAxMDA6IDAwMDBjMDAxDQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1ODoxOV0gSFZNMTU6
+IHBjaSBkZXYgMDQ6MCBiYXIgMTQgc2l6ZSAwMDAwMDA0MDogMDAwMGMxMDENCihYRU4pIFsy
+MDEyLTA5LTAzIDIwOjU4OjE5XSBIVk0xNTogcGNpIGRldiAwMToyIGJhciAyMCBzaXplIDAw
+MDAwMDIwOiAwMDAwYzE0MQ0KKFhFTikgWzIwMTItMDktMDMgMjA6NTg6MTldIEhWTTE1OiBw
+Y2kgZGV2IDAxOjEgYmFyIDIwIHNpemUgMDAwMDAwMTA6IDAwMDBjMTYxDQooWEVOKSBbMjAx
+Mi0wOS0wMyAyMDo1ODoxOV0gSFZNMTU6IE11bHRpcHJvY2Vzc29yIGluaXRpYWxpc2F0aW9u
+Og0KKFhFTikgWzIwMTItMDktMDMgMjA6NTg6MTldIEhWTTE1OiAgLSBDUFUwIC4uLiA0OC1i
+aXQgcGh5cyAuLi4gZml4ZWQgTVRSUnMgLi4uIHZhciBNVFJScyBbMi84XSAuLi4gZG9uZS4N
+CihYRU4pIFsyMDEyLTA5LTAzIDIwOjU4OjE5XSBIVk0xNTogIC0gQ1BVMSAuLi4gNDgtYml0
+IHBoeXMgLi4uIGZpeGVkIE1UUlJzIC4uLiB2YXIgTVRSUnMgWzIvOF0gLi4uIGRvbmUuDQoo
+WEVOKSBbMjAxMi0wOS0wMyAyMDo1ODoxOV0gSFZNMTU6IFRlc3RpbmcgSFZNIGVudmlyb25t
+ZW50Og0KKFhFTikgWzIwMTItMDktMDMgMjA6NTg6MTldIEhWTTE1OiAgLSBSRVAgSU5TQiBh
+Y3Jvc3MgcGFnZSBib3VuZGFyaWVzIC4uLiBwYXNzZWQNCihYRU4pIFsyMDEyLTA5LTAzIDIw
+OjU4OjE5XSBIVk0xNTogIC0gR1MgYmFzZSBNU1JzIGFuZCBTV0FQR1MgLi4uIHBhc3NlZA0K
+KFhFTikgWzIwMTItMDktMDMgMjA6NTg6MTldIEhWTTE1OiBQYXNzZWQgMiBvZiAyIHRlc3Rz
+DQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1ODoxOV0gSFZNMTU6IFdyaXRpbmcgU01CSU9TIHRh
+YmxlcyAuLi4NCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU4OjE5XSBIVk0xNTogTG9hZGluZyBS
+T01CSU9TIC4uLg0KKFhFTikgWzIwMTItMDktMDMgMjA6NTg6MTldIEhWTTE1OiA5NjYwIGJ5
+dGVzIG9mIFJPTUJJT1MgaGlnaC1tZW1vcnkgZXh0ZW5zaW9uczoNCihYRU4pIFsyMDEyLTA5
+LTAzIDIwOjU4OjE5XSBIVk0xNTogICBSZWxvY2F0aW5nIHRvIDB4ZmMwMDEwMDAtMHhmYzAw
+MzViYyAuLi4gZG9uZQ0KKFhFTikgWzIwMTItMDktMDMgMjA6NTg6MTldIEhWTTE1OiBDcmVh
+dGluZyBNUCB0YWJsZXMgLi4uDQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1ODoxOV0gSFZNMTU6
+IExvYWRpbmcgQ2lycnVzIFZHQUJJT1MgLi4uDQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1ODox
+OV0gSFZNMTU6IExvYWRpbmcgUENJIE9wdGlvbiBST00gLi4uDQooWEVOKSBbMjAxMi0wOS0w
+MyAyMDo1ODoxOV0gSFZNMTU6ICAtIE1hbnVmYWN0dXJlcjogaHR0cDovL2lweGUub3JnDQoo
+WEVOKSBbMjAxMi0wOS0wMyAyMDo1ODoxOV0gSFZNMTU6ICAtIFByb2R1Y3QgbmFtZTogaVBY
+RQ0KKFhFTikgWzIwMTItMDktMDMgMjA6NTg6MTldIEhWTTE1OiBPcHRpb24gUk9NczoNCihY
+RU4pIFsyMDEyLTA5LTAzIDIwOjU4OjE5XSBIVk0xNTogIGMwMDAwLWM4ZmZmOiBWR0EgQklP
+Uw0KKFhFTikgWzIwMTItMDktMDMgMjA6NTg6MTldIEhWTTE1OiAgYzkwMDAtZDlmZmY6IEV0
+aGVyYm9vdCBST00NCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU4OjE5XSBIVk0xNTogTG9hZGlu
+ZyBBQ1BJIC4uLg0KKFhFTikgWzIwMTItMDktMDMgMjA6NTg6MTldIEhWTTE1OiB2bTg2IFRT
+UyBhdCBmYzAwZjY4MA0KKFhFTikgWzIwMTItMDktMDMgMjA6NTg6MTldIEhWTTE1OiBCSU9T
+IG1hcDoNCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU4OjE5XSBIVk0xNTogIGYwMDAwLWZmZmZm
+OiBNYWluIEJJT1MNCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU4OjE5XSBIVk0xNTogRTgyMCB0
+YWJsZToNCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU4OjE5XSBIVk0xNTogIFswMF06IDAwMDAw
+MDAwOjAwMDAwMDAwIC0gMDAwMDAwMDA6MDAwOWUwMDA6IFJBTQ0KKFhFTikgWzIwMTItMDkt
+MDMgMjA6NTg6MTldIEhWTTE1OiAgWzAxXTogMDAwMDAwMDA6MDAwOWUwMDAgLSAwMDAwMDAw
+MDowMDBhMDAwMDogUkVTRVJWRUQNCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU4OjE5XSBIVk0x
+NTogIEhPTEU6IDAwMDAwMDAwOjAwMGEwMDAwIC0gMDAwMDAwMDA6MDAwZTAwMDANCihYRU4p
+IFsyMDEyLTA5LTAzIDIwOjU4OjE5XSBIVk0xNTogIFswMl06IDAwMDAwMDAwOjAwMGUwMDAw
+IC0gMDAwMDAwMDA6MDAxMDAwMDA6IFJFU0VSVkVEDQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1
+ODoxOV0gSFZNMTU6ICBbMDNdOiAwMDAwMDAwMDowMDEwMDAwMCAtIDAwMDAwMDAwOjFmODAw
+MDAwOiBSQU0NCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU4OjE5XSBIVk0xNTogIEhPTEU6IDAw
+MDAwMDAwOjFmODAwMDAwIC0gMDAwMDAwMDA6ZmMwMDAwMDANCihYRU4pIFsyMDEyLTA5LTAz
+IDIwOjU4OjE5XSBIVk0xNTogIFswNF06IDAwMDAwMDAwOmZjMDAwMDAwIC0gMDAwMDAwMDE6
+MDAwMDAwMDA6IFJFU0VSVkVEDQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1ODoxOV0gSFZNMTU6
+IEludm9raW5nIFJPTUJJT1MgLi4uDQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1ODoxOV0gSFZN
+MTU6ICRSZXZpc2lvbjogMS4yMjEgJCAkRGF0ZTogMjAwOC8xMi8wNyAxNzozMjoyOSAkDQoo
+WEVOKSBbMjAxMi0wOS0wMyAyMDo1ODoyMF0gc3RkdmdhLmM6MTQ3OmQxNSBlbnRlcmluZyBz
+dGR2Z2EgYW5kIGNhY2hpbmcgbW9kZXMNCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU4OjIwXSBI
+Vk0xNTogVkdBQmlvcyAkSWQ6IHZnYWJpb3MuYyx2IDEuNjcgMjAwOC8wMS8yNyAwOTo0NDox
+MiB2cnVwcGVydCBFeHAgJA0KKFhFTikgWzIwMTItMDktMDMgMjA6NTg6MjBdIEhWTTE1OiBC
+b2NocyBCSU9TIC0gYnVpbGQ6IDA2LzIzLzk5DQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1ODoy
+MF0gSFZNMTU6ICRSZXZpc2lvbjogMS4yMjEgJCAkRGF0ZTogMjAwOC8xMi8wNyAxNzozMjoy
+OSAkDQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1ODoyMF0gSFZNMTU6IE9wdGlvbnM6IGFwbWJp
+b3MgcGNpYmlvcyBlbHRvcml0byBQTU0gDQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1ODoyMF0g
+SFZNMTU6IA0KKFhFTikgWzIwMTItMDktMDMgMjA6NTg6MjBdIEhWTTE1OiBhdGEwLTA6IFBD
+SFM9MTYzODMvMTYvNjMgdHJhbnNsYXRpb249bGJhIExDSFM9MTAyNC8yNTUvNjMNCihYRU4p
+IFsyMDEyLTA5LTAzIDIwOjU4OjIwXSBIVk0xNTogYXRhMCBtYXN0ZXI6IFFFTVUgSEFSRERJ
+U0sgQVRBLTcgSGFyZC1EaXNrICg1NzI0NCBNQnl0ZXMpDQooWEVOKSBbMjAxMi0wOS0wMyAy
+MDo1ODoyMV0gSFZNMTU6IElERSB0aW1lIG91dA0KKFhFTikgWzIwMTItMDktMDMgMjA6NTg6
+MjFdIEhWTTE1OiBhdGExIG1hc3RlcjogUUVNVSBEVkQtUk9NIEFUQVBJLTQgQ0QtUm9tL0RW
+RC1Sb20NCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU4OjIzXSBIVk0xNTogSURFIHRpbWUgb3V0
+DQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1ODoyM10gSFZNMTU6IA0KKFhFTikgWzIwMTItMDkt
+MDMgMjA6NTg6MjNdIEhWTTE1OiANCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU4OjIzXSBIVk0x
+NTogDQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1ODoyM10gSFZNMTU6IFByZXNzIEYxMiBmb3Ig
+Ym9vdCBtZW51Lg0KKFhFTikgWzIwMTItMDktMDMgMjA6NTg6MjNdIEhWTTE1OiANCihYRU4p
+IFsyMDEyLTA5LTAzIDIwOjU4OjIzXSBIVk0xNTogQm9vdGluZyBmcm9tIEhhcmQgRGlzay4u
+Lg0KKFhFTikgWzIwMTItMDktMDMgMjA6NTg6MjNdIEhWTTE1OiBCb290aW5nIGZyb20gMDAw
+MDo3YzAwDQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1ODoyNl0gdHJhcHMuYzoyNTg0OmQxNiBE
+b21haW4gYXR0ZW1wdGVkIFdSTVNSIDAwMDAwMDAwYzAwMTAwMDQgZnJvbSAweDAwMDA0MjM0
+NWEwZGE1NDUgdG8gMHgwMDAwMDAwMDAwMDBhYmNkLg0KKFhFTikgWzIwMTItMDktMDMgMjA6
+NTg6NTBdIGlycS5jOjI3MDogRG9tMTUgUENJIGxpbmsgMCBjaGFuZ2VkIDUgLT4gMA0KKFhF
+TikgWzIwMTItMDktMDMgMjA6NTg6NTBdIGlycS5jOjI3MDogRG9tMTUgUENJIGxpbmsgMSBj
+aGFuZ2VkIDEwIC0+IDANCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU4OjUwXSBpcnEuYzoyNzA6
+IERvbTE1IFBDSSBsaW5rIDIgY2hhbmdlZCAxMSAtPiAwDQooWEVOKSBbMjAxMi0wOS0wMyAy
+MDo1ODo1MF0gaXJxLmM6MjcwOiBEb20xNSBQQ0kgbGluayAzIGNoYW5nZWQgNSAtPiAwDQoo
+WEVOKSBbMjAxMi0wOS0wMyAyMDo1ODo1MV0gaHZtLmM6MjQzNTpkMTUgZ3Vlc3QgYXR0ZW1w
+dGVkIHdyaXRlIHRvIHJlYWQtb25seSBtZW1vcnkgcGFnZS4gZ2ZuPTB4ZGMsIG1mbj0weGE0
+YTBiDQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1ODo1MV0gaHZtLmM6MjQzNTpkMTUgZ3Vlc3Qg
+YXR0ZW1wdGVkIHdyaXRlIHRvIHJlYWQtb25seSBtZW1vcnkgcGFnZS4gZ2ZuPTB4ZGQsIG1m
+bj0weGE0YTBhDQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1ODo1MV0gaHZtLmM6MjQzNTpkMTUg
+Z3Vlc3QgYXR0ZW1wdGVkIHdyaXRlIHRvIHJlYWQtb25seSBtZW1vcnkgcGFnZS4gZ2ZuPTB4
+ZGUsIG1mbj0weGE0YTA5DQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1ODo1MV0gaHZtLmM6MjQz
+NTpkMTUgZ3Vlc3QgYXR0ZW1wdGVkIHdyaXRlIHRvIHJlYWQtb25seSBtZW1vcnkgcGFnZS4g
+Z2ZuPTB4ZGQsIG1mbj0weGE0YTBhDQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1ODo1MV0gaHZt
+LmM6MjQzNTpkMTUgZ3Vlc3QgYXR0ZW1wdGVkIHdyaXRlIHRvIHJlYWQtb25seSBtZW1vcnkg
+cGFnZS4gZ2ZuPTB4ZGMsIG1mbj0weGE0YTBiDQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1ODo1
+MV0gaHZtLmM6MjQzNTpkMTUgZ3Vlc3QgYXR0ZW1wdGVkIHdyaXRlIHRvIHJlYWQtb25seSBt
+ZW1vcnkgcGFnZS4gZ2ZuPTB4ZGUsIG1mbj0weGE0YTA5DQooWEVOKSBbMjAxMi0wOS0wMyAy
+MDo1ODo1MV0gaHZtLmM6MjQzNTpkMTUgZ3Vlc3QgYXR0ZW1wdGVkIHdyaXRlIHRvIHJlYWQt
+b25seSBtZW1vcnkgcGFnZS4gZ2ZuPTB4ZGQsIG1mbj0weGE0YTBhDQooWEVOKSBbMjAxMi0w
+OS0wMyAyMDo1ODo1MV0gaHZtLmM6MjQzNTpkMTUgZ3Vlc3QgYXR0ZW1wdGVkIHdyaXRlIHRv
+IHJlYWQtb25seSBtZW1vcnkgcGFnZS4gZ2ZuPTB4ZGUsIG1mbj0weGE0YTA5DQooWEVOKSBb
+MjAxMi0wOS0wMyAyMDo1ODo1MV0gaHZtLmM6MjQzNTpkMTUgZ3Vlc3QgYXR0ZW1wdGVkIHdy
+aXRlIHRvIHJlYWQtb25seSBtZW1vcnkgcGFnZS4gZ2ZuPTB4ZGMsIG1mbj0weGE0YTBiDQoo
+WEVOKSBbMjAxMi0wOS0wMyAyMDo1ODo1MV0gaHZtLmM6MjQzNTpkMTUgZ3Vlc3QgYXR0ZW1w
+dGVkIHdyaXRlIHRvIHJlYWQtb25seSBtZW1vcnkgcGFnZS4gZ2ZuPTB4ZGQsIG1mbj0weGE0
+YTBhDQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1ODo1MV0gaHZtLmM6MjQzNTpkMTUgZ3Vlc3Qg
+YXR0ZW1wdGVkIHdyaXRlIHRvIHJlYWQtb25seSBtZW1vcnkgcGFnZS4gZ2ZuPTB4ZGMsIG1m
+bj0weGE0YTBiDQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1ODo1MV0gaHZtLmM6MjQzNTpkMTUg
+Z3Vlc3QgYXR0ZW1wdGVkIHdyaXRlIHRvIHJlYWQtb25seSBtZW1vcnkgcGFnZS4gZ2ZuPTB4
+ZGQsIG1mbj0weGE0YTBhDQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1ODo1MV0gaHZtLmM6MjQz
+NTpkMTUgZ3Vlc3QgYXR0ZW1wdGVkIHdyaXRlIHRvIHJlYWQtb25seSBtZW1vcnkgcGFnZS4g
+Z2ZuPTB4ZGUsIG1mbj0weGE0YTA5DQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1ODo1MV0gaHZt
+LmM6MjQzNTpkMTUgZ3Vlc3QgYXR0ZW1wdGVkIHdyaXRlIHRvIHJlYWQtb25seSBtZW1vcnkg
+cGFnZS4gZ2ZuPTB4ZGQsIG1mbj0weGE0YTBhDQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1ODo1
+MV0gaHZtLmM6MjQzNTpkMTUgZ3Vlc3QgYXR0ZW1wdGVkIHdyaXRlIHRvIHJlYWQtb25seSBt
+ZW1vcnkgcGFnZS4gZ2ZuPTB4ZGMsIG1mbj0weGE0YTBiDQooWEVOKSBbMjAxMi0wOS0wMyAy
+MDo1ODo1MV0gaHZtLmM6MjQzNTpkMTUgZ3Vlc3QgYXR0ZW1wdGVkIHdyaXRlIHRvIHJlYWQt
+b25seSBtZW1vcnkgcGFnZS4gZ2ZuPTB4ZGQsIG1mbj0weGE0YTBhDQooWEVOKSBbMjAxMi0w
+OS0wMyAyMDo1ODo1MV0gaHZtLmM6MjQzNTpkMTUgZ3Vlc3QgYXR0ZW1wdGVkIHdyaXRlIHRv
+IHJlYWQtb25seSBtZW1vcnkgcGFnZS4gZ2ZuPTB4ZGMsIG1mbj0weGE0YTBiDQooWEVOKSBb
+MjAxMi0wOS0wMyAyMDo1ODo1MV0gaHZtLmM6MjQzNTpkMTUgZ3Vlc3QgYXR0ZW1wdGVkIHdy
+aXRlIHRvIHJlYWQtb25seSBtZW1vcnkgcGFnZS4gZ2ZuPTB4ZGQsIG1mbj0weGE0YTBhDQoo
+WEVOKSBbMjAxMi0wOS0wMyAyMDo1ODo1NF0gaHZtLmM6MjQzNTpkMTUgZ3Vlc3QgYXR0ZW1w
+dGVkIHdyaXRlIHRvIHJlYWQtb25seSBtZW1vcnkgcGFnZS4gZ2ZuPTB4YzksIG1mbj0weGE0
+YTFlDQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1ODo1NF0gaHZtLmM6MjQzNTpkMTUgZ3Vlc3Qg
+YXR0ZW1wdGVkIHdyaXRlIHRvIHJlYWQtb25seSBtZW1vcnkgcGFnZS4gZ2ZuPTB4Y2IsIG1m
+bj0weGE0YTFjDQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1ODo1NF0gaHZtLmM6MjQzNTpkMTUg
+Z3Vlc3QgYXR0ZW1wdGVkIHdyaXRlIHRvIHJlYWQtb25seSBtZW1vcnkgcGFnZS4gZ2ZuPTB4
+Y2QsIG1mbj0weGE0YTFhDQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1ODo1NF0gaHZtLmM6MjQz
+NTpkMTUgZ3Vlc3QgYXR0ZW1wdGVkIHdyaXRlIHRvIHJlYWQtb25seSBtZW1vcnkgcGFnZS4g
+Z2ZuPTB4Y2YsIG1mbj0weGE0YTE4DQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1ODo1NF0gaHZt
+LmM6MjQzNTpkMTUgZ3Vlc3QgYXR0ZW1wdGVkIHdyaXRlIHRvIHJlYWQtb25seSBtZW1vcnkg
+cGFnZS4gZ2ZuPTB4ZDEsIG1mbj0weGE0YTE2DQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1ODo1
+NF0gaHZtLmM6MjQzNTpkMTUgZ3Vlc3QgYXR0ZW1wdGVkIHdyaXRlIHRvIHJlYWQtb25seSBt
+ZW1vcnkgcGFnZS4gZ2ZuPTB4ZDMsIG1mbj0weGE0YTE0DQooWEVOKSBbMjAxMi0wOS0wMyAy
+MDo1ODo1NF0gaHZtLmM6MjQzNTpkMTUgZ3Vlc3QgYXR0ZW1wdGVkIHdyaXRlIHRvIHJlYWQt
+b25seSBtZW1vcnkgcGFnZS4gZ2ZuPTB4ZDUsIG1mbj0weGE0YTEyDQooWEVOKSBbMjAxMi0w
+OS0wMyAyMDo1ODo1NF0gaHZtLmM6MjQzNTpkMTUgZ3Vlc3QgYXR0ZW1wdGVkIHdyaXRlIHRv
+IHJlYWQtb25seSBtZW1vcnkgcGFnZS4gZ2ZuPTB4ZDcsIG1mbj0weGE0YTEwDQooWEVOKSBb
+MjAxMi0wOS0wMyAyMDo1ODo1NF0gaHZtLmM6MjQzNTpkMTUgZ3Vlc3QgYXR0ZW1wdGVkIHdy
+aXRlIHRvIHJlYWQtb25seSBtZW1vcnkgcGFnZS4gZ2ZuPTB4ZDksIG1mbj0weGE0YTBlDQoo
+WEVOKSBbMjAxMi0wOS0wMyAyMDo1ODo1NF0gaHZtLmM6MjQzNTpkMTUgZ3Vlc3QgYXR0ZW1w
+dGVkIHdyaXRlIHRvIHJlYWQtb25seSBtZW1vcnkgcGFnZS4gZ2ZuPTB4ZGIsIG1mbj0weGE0
+YTBjDQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1ODo1NF0gaHZtLmM6MjQzNTpkMTUgZ3Vlc3Qg
+YXR0ZW1wdGVkIHdyaXRlIHRvIHJlYWQtb25seSBtZW1vcnkgcGFnZS4gZ2ZuPTB4ZGQsIG1m
+bj0weGE0YTBhDQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1ODo1NF0gaHZtLmM6MjQzNTpkMTUg
+Z3Vlc3QgYXR0ZW1wdGVkIHdyaXRlIHRvIHJlYWQtb25seSBtZW1vcnkgcGFnZS4gZ2ZuPTB4
+ZGYsIG1mbj0weGE0YTA4DQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1ODo1NF0gaHZtLmM6MjQz
+NTpkMTUgZ3Vlc3QgYXR0ZW1wdGVkIHdyaXRlIHRvIHJlYWQtb25seSBtZW1vcnkgcGFnZS4g
+Z2ZuPTB4ZTEsIG1mbj0weGE0YTA2DQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1ODo1NF0gaHZt
+LmM6MjQzNTpkMTUgZ3Vlc3QgYXR0ZW1wdGVkIHdyaXRlIHRvIHJlYWQtb25seSBtZW1vcnkg
+cGFnZS4gZ2ZuPTB4ZTMsIG1mbj0weGE0YTA0DQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1ODo1
+NF0gaHZtLmM6MjQzNTpkMTUgZ3Vlc3QgYXR0ZW1wdGVkIHdyaXRlIHRvIHJlYWQtb25seSBt
+ZW1vcnkgcGFnZS4gZ2ZuPTB4ZTUsIG1mbj0weGE0YTAyDQooWEVOKSBbMjAxMi0wOS0wMyAy
+MDo1ODo1NF0gaHZtLmM6MjQzNTpkMTUgZ3Vlc3QgYXR0ZW1wdGVkIHdyaXRlIHRvIHJlYWQt
+b25seSBtZW1vcnkgcGFnZS4gZ2ZuPTB4ZTcsIG1mbj0weGE0YTAwDQooWEVOKSBbMjAxMi0w
+OS0wMyAyMDo1ODo1NF0gaHZtLmM6MjQzNTpkMTUgZ3Vlc3QgYXR0ZW1wdGVkIHdyaXRlIHRv
+IHJlYWQtb25seSBtZW1vcnkgcGFnZS4gZ2ZuPTB4ZTksIG1mbj0weGE0NjNlDQooWEVOKSBb
+MjAxMi0wOS0wMyAyMDo1ODo1NF0gaHZtLmM6MjQzNTpkMTUgZ3Vlc3QgYXR0ZW1wdGVkIHdy
+aXRlIHRvIHJlYWQtb25seSBtZW1vcnkgcGFnZS4gZ2ZuPTB4ZWIsIG1mbj0weGE0NjNjDQoo
+WEVOKSBbMjAxMi0wOS0wMyAyMDo1ODo1NF0gaHZtLmM6MjQzNTpkMTUgZ3Vlc3QgYXR0ZW1w
+dGVkIHdyaXRlIHRvIHJlYWQtb25seSBtZW1vcnkgcGFnZS4gZ2ZuPTB4ZWQsIG1mbj0weGE0
+NjNhDQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1ODo1NF0gaHZtLmM6MjQzNTpkMTUgZ3Vlc3Qg
+YXR0ZW1wdGVkIHdyaXRlIHRvIHJlYWQtb25seSBtZW1vcnkgcGFnZS4gZ2ZuPTB4ZWYsIG1m
+bj0weGE0NjM4DQooWEVOKSBbMjAxMi0wOS0wMyAyMToyMDo0OV0gQU1ELVZpOiBJT19QQUdF
+X0ZBVUxUOiBkb21haW4gPSAxNCwgZGV2aWNlIGlkID0gMHgwNzAwLCBmYXVsdCBhZGRyZXNz
+ID0gMHhhOGVlODBhMA0KKFhFTikgWzIwMTItMDktMDMgMjE6MjA6NDldIEFNRC1WaTogSU9f
+UEFHRV9GQVVMVDogZG9tYWluID0gMTQsIGRldmljZSBpZCA9IDB4MDcwMCwgZmF1bHQgYWRk
+cmVzcyA9IDB4YThlZTgwYzANCihYRU4pIFsyMDEyLTA5LTAzIDIxOjIwOjQ5XSBBTUQtVmk6
+IElPX1BBR0VfRkFVTFQ6IGRvbWFpbiA9IDE0LCBkZXZpY2UgaWQgPSAweDA3MDAsIGZhdWx0
+IGFkZHJlc3MgPSAweGE4ZWU4MTAwDQooWEVOKSBbMjAxMi0wOS0wMyAyMToyMDo0OV0gQU1E
+LVZpOiBJT19QQUdFX0ZBVUxUOiBkb21haW4gPSAxNCwgZGV2aWNlIGlkID0gMHgwNzAwLCBm
+YXVsdCBhZGRyZXNzID0gMHhhOGVlODE4MA0KKFhFTikgWzIwMTItMDktMDMgMjE6MjA6NDld
+IEFNRC1WaTogSU9fUEFHRV9GQVVMVDogZG9tYWluID0gMTQsIGRldmljZSBpZCA9IDB4MDcw
+MCwgZmF1bHQgYWRkcmVzcyA9IDB4YThlZTgxMjANCihYRU4pIFsyMDEyLTA5LTAzIDIxOjIw
+OjQ5XSBBTUQtVmk6IElPX1BBR0VfRkFVTFQ6IGRvbWFpbiA9IDE0LCBkZXZpY2UgaWQgPSAw
+eDA3MDAsIGZhdWx0IGFkZHJlc3MgPSAweGE4ZWU4MTQwDQooWEVOKSBbMjAxMi0wOS0wMyAy
+MToyMDo0OV0gQU1ELVZpOiBJT19QQUdFX0ZBVUxUOiBkb21haW4gPSAxNCwgZGV2aWNlIGlk
+ID0gMHgwNzAwLCBmYXVsdCBhZGRyZXNzID0gMHhhOGVlODFhMA0KKFhFTikgWzIwMTItMDkt
+MDMgMjE6MjA6NDldIEFNRC1WaTogSU9fUEFHRV9GQVVMVDogZG9tYWluID0gMTQsIGRldmlj
+ZSBpZCA9IDB4MDcwMCwgZmF1bHQgYWRkcmVzcyA9IDB4YThlZTgxYzANCihYRU4pIFsyMDEy
+LTA5LTAzIDIxOjIwOjQ5XSBBTUQtVmk6IElPX1BBR0VfRkFVTFQ6IGRvbWFpbiA9IDE0LCBk
+ZXZpY2UgaWQgPSAweDA3MDAsIGZhdWx0IGFkZHJlc3MgPSAweGE4ZWU4MjAwDQooWEVOKSBb
+MjAxMi0wOS0wMyAyMToyMDo0OV0gQU1ELVZpOiBJT19QQUdFX0ZBVUxUOiBkb21haW4gPSAx
+NCwgZGV2aWNlIGlkID0gMHgwNzAwLCBmYXVsdCBhZGRyZXNzID0gMHhhOGVlODIyMA0KKFhF
+TikgWzIwMTItMDktMDMgMjE6MjA6NDldIEFNRC1WaTogSU9fUEFHRV9GQVVMVDogZG9tYWlu
+ID0gMTQsIGRldmljZSBpZCA9IDB4MDcwMCwgZmF1bHQgYWRkcmVzcyA9IDB4YThlZTgyNDAN
+CihYRU4pIFsyMDEyLTA5LTAzIDIxOjIwOjQ5XSBBTUQtVmk6IElPX1BBR0VfRkFVTFQ6IGRv
+bWFpbiA9IDE0LCBkZXZpY2UgaWQgPSAweDA3MDAsIGZhdWx0IGFkZHJlc3MgPSAweGE4ZWU4
+MjgwDQooWEVOKSBbMjAxMi0wOS0wMyAyMToyMDo0OV0gQU1ELVZpOiBJT19QQUdFX0ZBVUxU
+OiBkb21haW4gPSAxNCwgZGV2aWNlIGlkID0gMHgwNzAwLCBmYXVsdCBhZGRyZXNzID0gMHhh
+OGVlODJhMA0KKFhFTikgWzIwMTItMDktMDMgMjE6MjA6NDldIEFNRC1WaTogSU9fUEFHRV9G
+QVVMVDogZG9tYWluID0gMTQsIGRldmljZSBpZCA9IDB4MDcwMCwgZmF1bHQgYWRkcmVzcyA9
+IDB4YThlZTgzMDANCihYRU4pIFsyMDEyLTA5LTAzIDIxOjIwOjQ5XSBBTUQtVmk6IElPX1BB
+R0VfRkFVTFQ6IGRvbWFpbiA9IDE0LCBkZXZpY2UgaWQgPSAweDA3MDAsIGZhdWx0IGFkZHJl
+c3MgPSAweGE4ZWU4MmMwDQooWEVOKSBbMjAxMi0wOS0wMyAyMToyMDo0OV0gQU1ELVZpOiBJ
+T19QQUdFX0ZBVUxUOiBkb21haW4gPSAxNCwgZGV2aWNlIGlkID0gMHgwNzAwLCBmYXVsdCBh
+ZGRyZXNzID0gMHhhOGVlODMyMA0KKFhFTikgWzIwMTItMDktMDQgMDM6MDA6MzRdIHRyYXBz
+LmM6MzE1NjogR1BGICgwMDYwKTogZmZmZjgyYzQ4MDE1YzllZSAtPiBmZmZmODJjNDgwMjI0
+YjczDQooWEVOKSBbMjAxMi0wOS0wNCAwMzowMDozNF0gdHJhcHMuYzozMTU3OiAgc2hvd19l
+eGVjdXRpb25fc3RhdGUocmVncyk6IA0KKFhFTikgWzIwMTItMDktMDQgMDM6MDA6MzRdIC0t
+LS1bIFhlbi00LjIuMC1yYzQtcHJlICB4ODZfNjQgIGRlYnVnPXkgIE5vdCB0YWludGVkIF0t
+LS0tDQooWEVOKSBbMjAxMi0wOS0wNCAwMzowMDozNF0gQ1BVOiAgICAzDQooWEVOKSBbMjAx
+Mi0wOS0wNCAwMzowMDozNF0gUklQOiAgICBlMDA4Ols8ZmZmZjgyYzQ4MDE1YzllZT5dIGNv
+bnRleHRfc3dpdGNoKzB4Mzk0LzB4ZWViDQooWEVOKSBbMjAxMi0wOS0wNCAwMzowMDozNF0g
+UkZMQUdTOiAwMDAwMDAwMDAwMDEwMjQ2ICAgQ09OVEVYVDogaHlwZXJ2aXNvcg0KKFhFTikg
+WzIwMTItMDktMDQgMDM6MDA6MzRdIHJheDogMDAwMDAwMDAwMDAwMDAwMSAgIHJieDogZmZm
+ZjgzMDBhNTJkYTAwMCAgIHJjeDogMDAwMDAwMDAwMDAwMDAwMQ0KKFhFTikgWzIwMTItMDkt
+MDQgMDM6MDA6MzRdIHJkeDogMDAwMDAwMDAwMDAwMDA2MyAgIHJzaTogMDAwMDAwMDAwMDAw
+MDAwMSAgIHJkaTogMDAwMDAwMDAwMDAwMDM3ZQ0KKFhFTikgWzIwMTItMDktMDQgMDM6MDA6
+MzRdIHJicDogZmZmZjgzMDI0ZDhhN2UyOCAgIHJzcDogZmZmZjgzMDI0ZDhhN2Q4OCAgIHI4
+OiAgMDAwMDAwMDAwMDAwMDAwNg0KKFhFTikgWzIwMTItMDktMDQgMDM6MDA6MzRdIHI5OiAg
+ZmZmZjgzMDI0ZDk1ZWJiOCAgIHIxMDogMDAwMDAwMDBkZWFkYmVlZiAgIHIxMTogMDAwMDAw
+MDAwMDAwMDI0Ng0KKFhFTikgWzIwMTItMDktMDQgMDM6MDA6MzRdIHIxMjogZmZmZjgzMDBh
+ZmQxMTAwMCAgIHIxMzogMDAwMDAwMDAwMDAwMDAwMyAgIHIxNDogMDAwMDAwMDAwMDAwMDAw
+Mw0KKFhFTikgWzIwMTItMDktMDQgMDM6MDA6MzRdIHIxNTogZmZmZjgzMDI0ZDhhYTA0OCAg
+IGNyMDogMDAwMDAwMDA4MDA1MDAzYiAgIGNyNDogMDAwMDAwMDAwMDAwMDZmMA0KKFhFTikg
+WzIwMTItMDktMDQgMDM6MDA6MzRdIGNyMzogMDAwMDAwMDA2ODUwNjAwMCAgIGNyMjogZmZm
+ZmZmZmZmZjYwMDQwMA0KKFhFTikgWzIwMTItMDktMDQgMDM6MDA6MzRdIGRzOiAwMDAwICAg
+ZXM6IDAwMDAgICBmczogMDAwMCAgIGdzOiAwMDAwICAgc3M6IGUwMTAgICBjczogZTAwOA0K
+KFhFTikgWzIwMTItMDktMDQgMDM6MDA6MzRdIFhlbiBzdGFjayB0cmFjZSBmcm9tIHJzcD1m
+ZmZmODMwMjRkOGE3ZDg4Og0KKFhFTikgWzIwMTItMDktMDQgMDM6MDA6MzRdICAgIDAwMDAw
+MDAwMDAwMDAwMjkgMDAwMDAwMDAwMDAwMDAwMCAwMDAwMDAxZTAwMDAwMDAwIDAwMDAwMDAw
+MDAwMDAwMDANCihYRU4pIFsyMDEyLTA5LTA0IDAzOjAwOjM0XSAgICBmZmZmODMwMjRkOGE3
+ZGI4IGZmZmY4MzAyNGQ4YWEwNjAgZmZmZjgzMDI0ZDhhN2UxOCBmZmZmODJjNDgwMTgwNWFl
+DQooWEVOKSBbMjAxMi0wOS0wNCAwMzowMDozNF0gICAgMDAwMDAwMDAwMDAxMmYyMiAwMDAw
+M2ZkOWFiNmQ2Y2E2IDAwMDAwMDAwMDAwMDAwMDAgMDAwMDAwMDAwMDAwMDAwMA0KKFhFTikg
+WzIwMTItMDktMDQgMDM6MDA6MzRdICAgIDAwMDAwMDAwMDAwMDAwMDAgMDAwMDAwMDAwMDAw
+MDAwMCBmZmZmODMwMjRkOGE3ZTI4IGZmZmY4MzAwYWZkMTEwMDANCihYRU4pIFsyMDEyLTA5
+LTA0IDAzOjAwOjM0XSAgICBmZmZmODMwMGE1MmRhMDAwIDAwMDAxM2ViYmEzN2UxMGMgMDAw
+MDAwMDAwMDAwMDAwMiBmZmZmODMwMjRkOGFhMDQ4DQooWEVOKSBbMjAxMi0wOS0wNCAwMzow
+MDozNF0gICAgZmZmZjgzMDI0ZDhhN2ViOCBmZmZmODJjNDgwMTI0YTcwIDAwMDAwMDAwMDAw
+MDAwMDAgZmZmZjgzMDI0ZDhhYTA0MA0KKFhFTikgWzIwMTItMDktMDQgMDM6MDA6MzRdICAg
+IDAwMDAwMDAzNGQ4YTdlNjggMDAwMDEzZWJiYTM3ZTEwYyBmZmZmODMwMjRkOGE3ZTg4IGZm
+ZmY4MmM0ODAxODk0ODMNCihYRU4pIFsyMDEyLTA5LTA0IDAzOjAwOjM0XSAgICBmZmZmODMw
+MGE1MmRhMDAwIDAwMDAwMDAwMDFjOWMzODAgZmZmZjgzMDI0ZDhhN2UwMCBmZmZmODJjNDgw
+MTIyNmNlDQooWEVOKSBbMjAxMi0wOS0wNCAwMzowMDozNF0gICAgZmZmZjgzMDI0ZDhhN2Vm
+OCBmZmZmODJjNDgwMmQ4MTgwIDAwMDAwMDAwZmZmZmZmZmYgZmZmZjgyYzQ4MDJkODAwMA0K
+KFhFTikgWzIwMTItMDktMDQgMDM6MDA6MzRdICAgIGZmZmY4MzAyNGQ4YTdmMTggZmZmZmZm
+ZmZmZmZmZmZmZiBmZmZmODMwMjRkOGE3ZWY4IGZmZmY4MmM0ODAxMjVlMzENCihYRU4pIFsy
+MDEyLTA5LTA0IDAzOjAwOjM0XSAgICAwMDAwMDAwMDAwMDAwMjQ2IGZmZmY4MzAwYWZkMTEw
+MDAgZmZmZmZmZmY4MWVjZTVkOCBmZmZmZmZmZjgxZjQyMGMwDQooWEVOKSBbMjAxMi0wOS0w
+NCAwMzowMDozNF0gICAgMDAwMDAwMDAwMDAwMDAwMCAwMDAwMDAwMDAwMDAwMDAwIGZmZmY4
+MzAyNGQ4YTdmMDggZmZmZjgyYzQ4MDEyNWU2OA0KKFhFTikgWzIwMTItMDktMDQgMDM6MDA6
+MzRdICAgIDAwMDA3Y2ZkYjI3NTgwYzcgZmZmZjgyYzQ4MDIyMmVmNiAwMDAwMDAwMDAwMDAw
+MDAwIGZmZmY4ODAwMDMwZTE0YTANCihYRU4pIFsyMDEyLTA5LTA0IDAzOjAwOjM0XSAgICAw
+MDAwMDAwMDAwMDAwMDAwIGZmZmY4ODAwMWEwODAwZDggZmZmZjg4MDAxY2QxN2JmMCBmZmZm
+ODgwMDFmYzBiMTAwDQooWEVOKSBbMjAxMi0wOS0wNCAwMzowMDozNF0gICAgMDAwMDAwMDAw
+MDAwMDIwMiAwMDAwMDAwMDAwMDAwMDAwIDAwMDAwMDAwMDAwMDAwMDEgMDAwMDAwMDAwMDAw
+MDAwMA0KKFhFTikgWzIwMTItMDktMDQgMDM6MDA6MzRdICAgIDAwMDAwMDAwMDAwMDAwMDAg
+ZmZmZmZmZmY4MTAwMTFhYSBmZmZmODgwMDFlOTllMTgwIDAwMDAwMDAwZGVhZGJlZWYNCihY
+RU4pIFsyMDEyLTA5LTA0IDAzOjAwOjM0XSAgICAwMDAwMDAwMGRlYWRiZWVmIDAwMDAwMTAw
+MDAwMDAwMDAgZmZmZmZmZmY4MTAwMTFhYSAwMDAwMDAwMDAwMDBlMDMzDQooWEVOKSBbMjAx
+Mi0wOS0wNCAwMzowMDozNF0gICAgMDAwMDAwMDAwMDAwMDIwMiBmZmZmODgwMDFjZDE3YmI4
+IDAwMDAwMDAwMDAwMGUwMmIgMDAwMDUzZmQwMDAwYmVlZg0KKFhFTikgWzIwMTItMDktMDQg
+MDM6MDA6MzRdICAgIDgwMDAwMDAwMDAwMGJlZWYgNzQwMDAwMDAwMDAwYmVlZiAwMDAwMDAw
+MDAwMThiZWVmIDAwMDA1M2ZlMDAwMDAwMDMNCihYRU4pIFsyMDEyLTA5LTA0IDAzOjAwOjM0
+XSAgICBmZmZmODMwMGE1MmRhMDAwIDAwMDAwMDNkY2Q1YTg2ODAgMDAwMDAwMDAwMDE4ZTBj
+OQ0KKFhFTikgWzIwMTItMDktMDQgMDM6MDA6MzRdIFhlbiBjYWxsIHRyYWNlOg0KKFhFTikg
+WzIwMTItMDktMDQgMDM6MDA6MzRdICAgIFs8ZmZmZjgyYzQ4MDE1YzllZT5dIGNvbnRleHRf
+c3dpdGNoKzB4Mzk0LzB4ZWViDQooWEVOKSBbMjAxMi0wOS0wNCAwMzowMDozNF0gICAgWzxm
+ZmZmODJjNDgwMTI0YTcwPl0gc2NoZWR1bGUrMHg2NjYvMHg2NzUNCihYRU4pIFsyMDEyLTA5
+LTA0IDAzOjAwOjM0XSAgICBbPGZmZmY4MmM0ODAxMjVlMzE+XSBfX2RvX3NvZnRpcnErMHhh
+NC8weGI1DQooWEVOKSBbMjAxMi0wOS0wNCAwMzowMDozNF0gICAgWzxmZmZmODJjNDgwMTI1
+ZTY4Pl0gZG9fc29mdGlycSsweDI2LzB4MjgNCihYRU4pIFsyMDEyLTA5LTA0IDAzOjAwOjM0
+XSAgICANCihYRU4pIFsyMDEyLTA5LTA0IDAzOjAwOjM0XSB0cmFwcy5jOjMxNTk6ICAgc2hv
+d19leGVjdXRpb25fc3RhdGUoZ3Vlc3RfY3B1X3VzZXJfcmVncygpKTogDQooWEVOKSBbMjAx
+Mi0wOS0wNCAwMzowMDozNF0gLS0tLVsgWGVuLTQuMi4wLXJjNC1wcmUgIHg4Nl82NCAgZGVi
+dWc9eSAgTm90IHRhaW50ZWQgXS0tLS0NCihYRU4pIFsyMDEyLTA5LTA0IDAzOjAwOjM0XSBD
+UFU6ICAgIDMNCihYRU4pIFsyMDEyLTA5LTA0IDAzOjAwOjM0XSBSSVA6ICAgIGUwMzM6Wzxm
+ZmZmZmZmZjgxMDAxMWFhPl0NCihYRU4pIFsyMDEyLTA5LTA0IDAzOjAwOjM0XSBSRkxBR1M6
+IDAwMDAwMDAwMDAwMDAyMDIgICBFTTogMSAgIENPTlRFWFQ6IHB2IGd1ZXN0DQooWEVOKSBb
+MjAxMi0wOS0wNCAwMzowMDozNF0gcmF4OiAwMDAwMDAwMDAwMDAwMDAwICAgcmJ4OiBmZmZm
+ODgwMDFmYzBiMTAwICAgcmN4OiBmZmZmZmZmZjgxMDAxMWFhDQooWEVOKSBbMjAxMi0wOS0w
+NCAwMzowMDozNF0gcmR4OiBmZmZmODgwMDFlOTllMTgwICAgcnNpOiAwMDAwMDAwMGRlYWRi
+ZWVmICAgcmRpOiAwMDAwMDAwMGRlYWRiZWVmDQooWEVOKSBbMjAxMi0wOS0wNCAwMzowMDoz
+NF0gcmJwOiBmZmZmODgwMDFjZDE3YmYwICAgcnNwOiBmZmZmODgwMDFjZDE3YmI4ICAgcjg6
+ICAwMDAwMDAwMDAwMDAwMDAwDQooWEVOKSBbMjAxMi0wOS0wNCAwMzowMDozNF0gcjk6ICAw
+MDAwMDAwMDAwMDAwMDAxICAgcjEwOiAwMDAwMDAwMDAwMDAwMDAwICAgcjExOiAwMDAwMDAw
+MDAwMDAwMjAyDQooWEVOKSBbMjAxMi0wOS0wNCAwMzowMDozNF0gcjEyOiBmZmZmODgwMDFh
+MDgwMGQ4ICAgcjEzOiAwMDAwMDAwMDAwMDAwMDAwICAgcjE0OiBmZmZmODgwMDAzMGUxNGEw
+DQooWEVOKSBbMjAxMi0wOS0wNCAwMzowMDozNF0gcjE1OiAwMDAwMDAwMDAwMDAwMDAwICAg
+Y3IwOiAwMDAwMDAwMDgwMDUwMDNiICAgY3I0OiAwMDAwMDAwMDAwMDAwNmYwDQooWEVOKSBb
+MjAxMi0wOS0wNCAwMzowMDozNF0gY3IzOiAwMDAwMDAwMDY4NTA2MDAwICAgY3IyOiAwMDAw
+MDAwMGY3NmU0MDAwDQooWEVOKSBbMjAxMi0wOS0wNCAwMzowMDozNF0gZHM6IDAwMDAgICBl
+czogMDAwMCAgIGZzOiAwMDAwICAgZ3M6IDAwMDAgICBzczogZTAyYiAgIGNzOiBlMDMzDQoo
+WEVOKSBbMjAxMi0wOS0wNCAwMzowMDozNF0gR3Vlc3Qgc3RhY2sgdHJhY2UgZnJvbSByc3A9
+ZmZmZjg4MDAxY2QxN2JiODoNCihYRU4pIFsyMDEyLTA5LTA0IDAzOjAwOjM0XSAgICAwMDAw
+MDAwMDAwMDAwMDAwIDAwMDAwMDAwMDAwMDAwMDEgZmZmZmZmZmY4MTAwNDk0MiBmZmZmODgw
+MDAzMGUxMDQwDQooWEVOKSBbMjAxMi0wOS0wNCAwMzowMDozNF0gICAgZmZmZjg4MDAxZTk5
+ZTE4MCAwMDAwMDAwMDAwMDAwMDAwIGZmZmY4ODAwMDMwZTE0YTAgZmZmZjg4MDAxY2QxN2Mx
+MA0KKFhFTikgWzIwMTItMDktMDQgMDM6MDA6MzRdICAgIGZmZmZmZmZmODEwMDM5NDEgZmZm
+Zjg4MDAxZTk5ZTE4MCBmZmZmODgwMDAzMGUxMDQwIGZmZmY4ODAwMWNkMTdjNzANCihYRU4p
+IFsyMDEyLTA5LTA0IDAzOjAwOjM0XSAgICBmZmZmZmZmZjgxMDBiODUwIGZmZmY4ODAwMDMw
+ZTEwNDAgZmZmZjg4MDAxZDI4MDA4MCAwMDAwMDAwMDAwMDAwMDYzDQooWEVOKSBbMjAxMi0w
+OS0wNCAwMzowMDozNF0gICAgZmZmZjg4MDAxZmMxMGE4MCBmZmZmODgwMDFjZDE3YzgwIGZm
+ZmY4ODAwMWZjMTJlODAgMDAwMDAwMDAwMDAwMDAwMA0KKFhFTikgWzIwMTItMDktMDQgMDM6
+MDA6MzRdICAgIGZmZmY4ODAwMWQyODViMDAgMDAwMDAwMDAwMDAwMDAwMCAwMDAwMDAwMDAw
+MDAwMDAwIGZmZmY4ODAwMDMwZTEwNDANCihYRU4pIFsyMDEyLTA5LTA0IDAzOjAwOjM0XSAg
+ICBmZmZmZmZmZjgxN2ZhMmY1IGZmZmY4ODAwMWNkMTdkZDAgMDAwMDAwMDAwMDAwMDIxNiBm
+ZmZmZmZmZjgxMDcwMGZlDQooWEVOKSBbMjAxMi0wOS0wNCAwMzowMDozNF0gICAgZmZmZjg4
+MDAxZmMwZTAxOCBmZmZmODgwMDAzMGUxMDQwIDAwMDAwMDAwMDAwMTJlODAgZmZmZjg4MDAx
+Y2QxN2ZkOA0KKFhFTikgWzIwMTItMDktMDQgMDM6MDA6MzRdICAgIGZmZmY4ODAwMWNkMTYw
+MTAgMDAwMDAwMDAwMDAxMmU4MCAwMDAwMDAwMDAwMDEyZTgwIGZmZmY4ODAwMWNkMTdmZDgN
+CihYRU4pIFsyMDEyLTA5LTA0IDAzOjAwOjM0XSAgICAwMDAwMDAwMDAwMDEyZTgwIGZmZmY4
+ODAwMWU5OTkwNDAgZmZmZjg4MDAwMzBlMTA0MCBmZmZmODgwMDAwMDAwMDAwDQooWEVOKSBb
+MjAxMi0wOS0wNCAwMzowMDozNF0gICAgZmZmZjg4MDAwMDAwMDAwMCBmZmZmODgwMDFmYzBl
+MDAwIGZmZmY4ODAwMWNkYjMzMDAgZmZmZjg4MDAxZmMxNmUwMA0KKFhFTikgWzIwMTItMDkt
+MDQgMDM6MDA6MzRdICAgIGZmZmY4ODAwMWZjMGUwMDAgZmZmZjg4MDAxY2QxN2Q1MCBmZmZm
+ZmZmZjgxN2ZiNjE0IGZmZmY4ODAwMWQwOGMxNDANCihYRU4pIFsyMDEyLTA5LTA0IDAzOjAw
+OjM0XSAgICBmZmZmODgwMDFjZGIzMzAwIGZmZmY4ODAwMWZjMTZlMDAgZmZmZjg4MDAxZmMw
+ZTAwMCBmZmZmODgwMDFjZDE3ZGUwDQooWEVOKSBbMjAxMi0wOS0wNCAwMzowMDozNF0gICAg
+ZmZmZmZmZmY4MTA3ZjA1OSBmZmZmODgwMDAzMGUxMDQwIGZmZmY4ODAwMDMwZTEwNDAgZmZm
+ZmZmZmY4MTdmYmU3Yg0KKFhFTikgWzIwMTItMDktMDQgMDM6MDA6MzRdICAgIGZmZmY4ODAw
+MWZjMGU0NDggZmZmZjg4MDAwMzBlMTA0MCBmZmZmODgwMDFjZGIzMzIwIGZmZmY4ODAwMWNk
+MTdkYjANCihYRU4pIFsyMDEyLTA5LTA0IDAzOjAwOjM0XSAgICBmZmZmZmZmZjgxMGFjYjc4
+IGZmZmY4ODAwMWZjMGUwMDAgZmZmZjg4MDAxY2RiMzMwMCBmZmZmODgwMDFmYzBlNDM4DQoo
+WEVOKSBbMjAxMi0wOS0wNCAwMzowMDozNF0gICAgZmZmZjg4MDAxZmMwZTQ0OCBmZmZmODgw
+MDAzMGUxMDQwIGZmZmY4ODAwMWNkYjMzMjAgZmZmZjg4MDAxY2QxN2RlMA0KKFhFTikgWzIw
+MTItMDktMDQgMDM6MDA6MzRdICAgIGZmZmZmZmZmODE3ZmE4MTQgZmZmZjg4MDAxY2QxN2Vi
+MCBmZmZmZmZmZjgxMDdmNmY5IDAwMDAwMDAwMDAwMDAwMDANCihYRU4pIFsyMDEyLTA5LTA0
+IDAzOjAwOjM0XSAgICBmZmZmODgwMDFjZDE3ZTUwIGZmZmY4ODAwMDMwZTEwNDAgZmZmZjg4
+MDAxY2QxNjAxMCBmZmZmODgwMDAzMGUwMjQwDQooWEVOKSBbMjAxMi0wOS0wNCAwMzowMDoz
+NF0gICAgZmZmZjg4MDAxY2QxN2U2OCBmZmZmODgwMDAzMGUxMDQwIGZmZmY4ODAwMDMwZTEw
+NDAgZmZmZjg4MDAwMzBlMTA0MA0KKFhFTikgWzIwMTItMDktMDQgMDM6MTU6MTJdIGdyYW50
+X3RhYmxlLmM6MjU0OmQwIEluY3JlYXNlZCBtYXB0cmFjayBzaXplIHRvIDIgZnJhbWVzDQo=
+------------05A1A81AE2E0F0B49
+Content-Type: text/plain; charset="us-ascii"
+MIME-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Content-Disposition: inline
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
+------------05A1A81AE2E0F0B49--
+
+
+
diff --git a/config/examples/test/corpus/<4710608674.20120904101330@eikelenboom.it> b/config/examples/test/corpus/<4710608674.20120904101330@eikelenboom.it>
new file mode 100644 (file)
index 0000000..aeff7b6
--- /dev/null
@@ -0,0 +1,150 @@
+From xen-devel-bounces@lists.xen.org Tue Sep 04 09:17:23 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Tue, 04 Sep 2012 09:17:23 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T8oJx-0001TC-34
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 04 Sep 2012 09:17:23 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T8oGP-0004US-Nd; Tue, 04 Sep 2012 08:13:37 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <linux@eikelenboom.it>) id 1T8oGN-0004UD-QY
+       for xen-devel@lists.xen.org; Tue, 04 Sep 2012 08:13:36 +0000
+Received: from [85.158.138.51:60192] by server-10.bemta-3.messagelabs.com id
+       A8/9D-10411-E28B5405; Tue, 04 Sep 2012 08:13:34 +0000
+X-Env-Sender: linux@eikelenboom.it
+X-Msg-Ref: server-6.tower-174.messagelabs.com!1346746414!20441214!1
+X-Originating-IP: [188.40.164.121]
+X-SpamReason: No, hits=0.0 required=7.0 tests=
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 14446 invoked from network); 4 Sep 2012 08:13:34 -0000
+Received: from static.121.164.40.188.clients.your-server.de (HELO
+       smtp.eikelenboom.it) (188.40.164.121)
+       by server-6.tower-174.messagelabs.com with AES256-SHA encrypted SMTP;
+       4 Sep 2012 08:13:34 -0000
+Received: from 26-69-ftth.onsneteindhoven.nl ([88.159.69.26]:49701
+       helo=[172.16.1.20])
+       by smtp.eikelenboom.it with esmtpsa (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72) (envelope-from <linux@eikelenboom.it>)
+       id 1T8oDH-0002Q8-Il; Tue, 04 Sep 2012 10:10:23 +0200
+Date: Tue, 4 Sep 2012 10:13:30 +0200
+From: Sander Eikelenboom <linux@eikelenboom.it>
+Organization: Eikelenboom IT services
+X-Priority: 3 (Normal)
+Message-ID: <4710608674.20120904101330@eikelenboom.it>
+To: "Jan Beulich" <JBeulich@suse.com>
+In-Reply-To: <5045CDF302000078000985FB@nat28.tlf.novell.com>
+References: <7914B38A4445B34AA16EB9F1352942F1012F0F6F4B98@SJCPMAILBOX01.citrite.net>
+       <CC681CDD.3D966%keir.xen@gmail.com>
+       <40501859.20120902104331@eikelenboom.it>
+       <5044849002000078000982EA@nat28.tlf.novell.com>
+       <4610648186.20120904090841@eikelenboom.it>
+       <5045CDF302000078000985FB@nat28.tlf.novell.com>
+MIME-Version: 1.0
+Cc: "wei.wang2@amd.com" <wei.wang2@amd.com>, Keir Fraser <keir.xen@gmail.com>,
+       Santosh Jodh <Santosh.Jodh@citrix.com>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] Using debug-key 'o:  Dump IOMMU p2m table,
+       locks up machine
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+Hello Jan,
+
+Tuesday, September 4, 2012, 9:46:27 AM, you wrote:
+
+>>>> On 04.09.12 at 09:08, Sander Eikelenboom <linux@eikelenboom.it> wrote:
+>>> This one
+>> 
+>>>>(XEN) [2012-09-02 00:55:02] traps.c:3156: GPF (0060): ffff82c48015c9ee -> 
+>> ffff82c480224b13
+>> 
+>>> also worries me. While Xen gracefully recovers from it, these
+>>> messages still generally indicate a problem somewhere. Could
+>>> you resolve the addresses to file:line tuples? And, assuming
+>>> this happens in the context of doing something on behalf of
+>>> the guest in the context of a guest vCPU, could you also
+>>> check what guest side action triggers this (e.g. by adding a
+>>> call to show_execution_state() alongside the printing of the
+>>> message)?
+>> 
+>> Hope i have done it right:
+
+> Yes.
+
+>> Gives (complete dmesg attached:
+>> 
+>> (XEN) [2012-09-03 21:20:49] AMD-Vi: IO_PAGE_FAULT: domain = 14, device id = 0x0700, fault address = 0xa8ee82c0
+>> (XEN) [2012-09-03 21:20:49] AMD-Vi: IO_PAGE_FAULT: domain = 14, device id = 0x0700, fault address = 0xa8ee8320
+>> (XEN) [2012-09-04 03:00:34] traps.c:3156: GPF (0060): ffff82c48015c9ee -> ffff82c480224b73
+>> (XEN) [2012-09-04 03:00:34] traps.c:3157:  show_execution_state(regs): 
+>> (XEN) [2012-09-04 03:00:34] ----[ Xen-4.2.0-rc4-pre  x86_64  debug=y  Not tainted ]----
+>> (XEN) [2012-09-04 03:00:34] CPU:    3
+>> (XEN) [2012-09-04 03:00:34] RIP:    e008:[<ffff82c48015c9ee>] context_switch+0x394/0xeeb
+
+> Now that - in the middle of context switch code - almost certainly
+> wants to be fixed, but we first need to understand what it is (and
+> how it gets triggered by the guest). I.e. once again this requires
+> resolving to file/line - care to do the conversion yourself, or send
+> (or make available somewhere) the very xen-syms?
+
+> Jan
+
+Hmm don't know how to get the file/line, only thing i have found is:
+
+serveerstertje:/boot# gdb xen-syms-4.2.0-rc4-pre
+GNU gdb (GDB) 7.0.1-debian
+Copyright (C) 2009 Free Software Foundation, Inc.
+License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
+This is free software: you are free to change and redistribute it.
+There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
+and "show warranty" for details.
+This GDB was configured as "x86_64-linux-gnu".
+For bug reporting instructions, please see:
+<http://www.gnu.org/software/gdb/bugs/>...
+Reading symbols from /boot/xen-syms-4.2.0-rc4-pre...done.
+(gdb) x/i 0xffff82c48015c9ee
+0xffff82c48015c9ee <context_switch+916>:        mov    %edx,%gs
+(gdb)
+
+
+How to resolve the RIP could be a nice addition to the http://wiki.xen.org/wiki/Debugging_Xen, so one could easily refer to that on how to do it :-)
+
+--
+Sander
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<4FC8EBD9.4@cantab.net> b/config/examples/test/corpus/<4FC8EBD9.4@cantab.net>
new file mode 100644 (file)
index 0000000..fc8e480
--- /dev/null
@@ -0,0 +1,103 @@
+From xen-devel-bounces@lists.xen.org Fri Jun 01 17:25:14 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 01 Jun 2012 17:25:14 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SaUez-0005Cj-Dl
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 01 Jun 2012 17:25:14 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SaUaw-0004ob-Iw; Fri, 01 Jun 2012 16:20:58 +0000
+Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <d.vrabel.98@gmail.com>) id 1SaUat-0004oV-TR
+       for xen-devel@lists.xen.org; Fri, 01 Jun 2012 16:20:56 +0000
+Received: from [193.109.254.147:55983] by server-10.bemta-14.messagelabs.com
+       id 90/9B-27843-7EBE8CF4; Fri, 01 Jun 2012 16:20:55 +0000
+X-Env-Sender: d.vrabel.98@gmail.com
+X-Msg-Ref: server-10.tower-27.messagelabs.com!1338567646!7258575!1
+X-Originating-IP: [209.85.213.173]
+X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 18822 invoked from network); 1 Jun 2012 16:20:47 -0000
+Received: from mail-yx0-f173.google.com (HELO mail-yx0-f173.google.com)
+       (209.85.213.173)
+       by server-10.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
+       1 Jun 2012 16:20:47 -0000
+Received: by yenm4 with SMTP id m4so2259361yen.32
+       for <xen-devel@lists.xen.org>; Fri, 01 Jun 2012 09:20:46 -0700 (PDT)
+DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
+       h=sender:message-id:date:from:user-agent:mime-version:to:cc:subject
+       :references:in-reply-to:content-type:content-transfer-encoding;
+       bh=KAqwNjndHoDp2nC2ZwThKKlITMfe2fxbueBtAfpTyUI=;
+       b=EXrnjYRcJJ9xPJHQg19X0bUvVx7q1cNDO2q2FLpcdjjjPA2LPkEfVhWoynhwLBZ6Sb
+       gscVJ7X2Nf4NWl8khfVg/PJZ7XxrX0PrxP4mM/B+8wCBByxNZq+IAXOl+W75TbGecpb6
+       zDT/tPOJ/WcWCgIaHhYeYXn0f3CAtobysSBse2FtNSoSHAkxe8iVKlNqbvHDHi8xq7U9
+       +KTE8/a8vqwy7r6P4K8REO+slqcwfO+9DLEE/OsCvgGhRS7D9CzXl+dTQ3LlFOKswXao
+       9VO+diAIgGcgho3iOnDkx/4iWQ1/NpgxydKh/DvOudHX7lE3Ng4FD8Y419Ez4NeqcowM
+       PVVA==
+Received: by 10.236.115.196 with SMTP id e44mr3256522yhh.90.1338567646380;
+       Fri, 01 Jun 2012 09:20:46 -0700 (PDT)
+Received: from [10.80.2.76] (firewall.ctxuk.citrix.com. [62.200.22.2])
+       by mx.google.com with ESMTPS id p14sm3197464ani.8.2012.06.01.09.20.43
+       (version=SSLv3 cipher=OTHER); Fri, 01 Jun 2012 09:20:45 -0700 (PDT)
+Message-ID: <4FC8EBD9.4@cantab.net>
+Date: Fri, 01 Jun 2012 17:20:41 +0100
+From: David Vrabel <dvrabel@cantab.net>
+User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US;
+       rv:1.9.1.16) Gecko/20120428 Icedove/3.0.11
+MIME-Version: 1.0
+To: Ian Campbell <ian.campbell@citrix.com>
+References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>        <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+       <1338565207-2888-23-git-send-email-ian.campbell@citrix.com>
+In-Reply-To: <1338565207-2888-23-git-send-email-ian.campbell@citrix.com>
+Cc: xen-devel@lists.xen.org
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_DKIM_INVALID,T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 23/38] arm: use correct attributes for
+ mappings in copy_from_paddr()
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On 01/06/12 16:39, Ian Campbell wrote:
+> The DTB is in RAM (hence bufferable), kernel is in flash and therefor requires
+> a device type mapping (hence dev shared).
+> 
+> Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+
+Potentially the bootloader could provide the DTB in flash but this seems
+unlikely.
+
+Acked-by: David Vrabel <david.vrabel@citrix.com>
+
+David
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<4FD0EB53.2040603@citrix.com> b/config/examples/test/corpus/<4FD0EB53.2040603@citrix.com>
new file mode 100644 (file)
index 0000000..e1e3c08
--- /dev/null
@@ -0,0 +1,126 @@
+From xen-devel-bounces@lists.xen.org Thu Jun 07 19:00:11 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 07 Jun 2012 19:00:11 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1Sch0C-0005ex-O7
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 07 Jun 2012 19:00:11 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1Scgws-0006yd-3G; Thu, 07 Jun 2012 17:56:42 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <roger.pau@citrix.com>) id 1Scgwq-0006yW-DJ
+       for xen-devel@lists.xensource.com; Thu, 07 Jun 2012 17:56:40 +0000
+Received: from [85.158.143.35:59902] by server-3.bemta-4.messagelabs.com id
+       59/27-29237-75BE0DF4; Thu, 07 Jun 2012 17:56:39 +0000
+X-Env-Sender: roger.pau@citrix.com
+X-Msg-Ref: server-6.tower-21.messagelabs.com!1339091799!19263473!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDE0Nzk=\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 26219 invoked from network); 7 Jun 2012 17:56:39 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-6.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
+       7 Jun 2012 17:56:39 -0000
+X-IronPort-AV: E=Sophos;i="4.75,732,1330905600"; d="scan'208";a="12894008"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       07 Jun 2012 17:56:38 +0000
+Received: from [192.168.1.132] (10.31.3.235) by LONPMAILMX01.citrite.net
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0; Thu, 7 Jun 2012
+       18:56:38 +0100
+Message-ID: <4FD0EB53.2040603@citrix.com>
+Date: Thu, 7 Jun 2012 19:56:35 +0200
+From: Roger Pau Monne <roger.pau@citrix.com>
+User-Agent: Postbox 3.0.3 (Macintosh/20120304)
+MIME-Version: 1.0
+To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+References: <alpine.DEB.2.00.1205281439080.26786@kaball-desktop>
+       <1338287956-24691-8-git-send-email-stefano.stabellini@eu.citrix.com>
+In-Reply-To: <1338287956-24691-8-git-send-email-stefano.stabellini@eu.citrix.com>
+Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
+       Ian Jackson <Ian.Jackson@eu.citrix.com>,
+       Ian Campbell <Ian.Campbell@citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Transfer-Encoding: 7bit
+Content-Type: text/plain; charset="us-ascii"; Format="flowed"
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH v8 08/11] xl/libxl: implement QDISK
+       libxl_device_disk_local_attach
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+Stefano Stabellini wrote:
+>   int libxl__device_disk_local_detach(libxl__gc *gc, libxl_device_disk *disk)
+>   {
+> -    /* Nothing to do for PHYSTYPE_PHY. */
+> +    int rc = 0;
+>
+> -    /*
+> -     * For other device types assume that the blktap2 process is
+> -     * needed by the soon to be started domain and do nothing.
+> -     */
+> +    switch (disk->backend) {
+> +        case LIBXL_DISK_BACKEND_QDISK:
+> +            if (disk->vdev != NULL) {
+> +                libxl_device_disk_remove(gc->owner, LIBXL_TOOLSTACK_DOMID,
+> +                        disk, 0);
+
+I was just looking at this code, and I have the feeling this could be 
+dangerous, since you call libxl__device_disk_local_detach from an 
+already running ao (the bootloader ao), and libxl_device_disk_remove 
+will initiate another ao, and set it to completed inside of an already 
+running ao.
+
+> +                rc = libxl_device_disk_destroy(gc->owner,
+> +                        LIBXL_TOOLSTACK_DOMID, disk);
+> +            }
+> +            break;
+> +        default:
+> +            /*
+> +             * Nothing to do for PHYSTYPE_PHY.
+> +             * For other device types assume that the blktap2 process is
+> +             * needed by the soon to be started domain and do nothing.
+> +             */
+> +            break;
+> +    }
+>
+>       free(disk->pdev_path);
+>       free(disk->script);
+> -    return 0;
+> +
+> +    return rc;
+>   }
+>
+>   /******************************************************************************/
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<4FED7BD7020000780008CBFB@nat28.tlf.novell.com> b/config/examples/test/corpus/<4FED7BD7020000780008CBFB@nat28.tlf.novell.com>
new file mode 100644 (file)
index 0000000..1f645eb
--- /dev/null
@@ -0,0 +1,87 @@
+From xen-devel-bounces@lists.xen.org Fri Jun 29 08:59:25 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 29 Jun 2012 08:59:25 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SkW6p-0000ok-Kc
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 29 Jun 2012 08:59:25 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SkW3Y-0004v1-6R; Fri, 29 Jun 2012 07:55:56 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <JBeulich@suse.com>) id 1SkW3X-0004uu-9r
+       for Xen-devel@lists.xensource.com; Fri, 29 Jun 2012 07:55:55 +0000
+Received: from [85.158.139.83:32085] by server-8.bemta-5.messagelabs.com id
+       BA/30-10278-A8F5DEF4; Fri, 29 Jun 2012 07:55:54 +0000
+X-Env-Sender: JBeulich@suse.com
+X-Msg-Ref: server-16.tower-182.messagelabs.com!1340956554!22756684!1
+X-Originating-IP: [130.57.49.28]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogMTMwLjU3LjQ5LjI4ID0+IDQ2NTQ=\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 29857 invoked from network); 29 Jun 2012 07:55:54 -0000
+Received: from nat28.tlf.novell.com (HELO nat28.tlf.novell.com) (130.57.49.28)
+       by server-16.tower-182.messagelabs.com with SMTP;
+       29 Jun 2012 07:55:54 -0000
+Received: from EMEA1-MTA by nat28.tlf.novell.com
+       with Novell_GroupWise; Fri, 29 Jun 2012 08:55:53 +0100
+Message-Id: <4FED7BD7020000780008CBFB@nat28.tlf.novell.com>
+X-Mailer: Novell GroupWise Internet Agent 12.0.0 
+Date: Fri, 29 Jun 2012 08:56:39 +0100
+From: "Jan Beulich" <JBeulich@suse.com>
+To: "Mukesh Rathor" <mukesh.rathor@oracle.com>
+References: <20120628180007.06bb3fd3@mantra.us.oracle.com>
+In-Reply-To: <20120628180007.06bb3fd3@mantra.us.oracle.com>
+Mime-Version: 1.0
+Content-Disposition: inline
+Cc: "Xen-devel@lists.xensource.com" <Xen-devel@lists.xensource.com>,
+       IanCampbell <Ian.Campbell@citrix.com>,
+       "stefano.stabellini@eu.citrix.com" <stefano.stabellini@eu.citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [HYBRID]: XEN_EMULATE_PREFIX in user process
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+>>> On 29.06.12 at 03:00, Mukesh Rathor <mukesh.rathor@oracle.com> wrote:
+> BTW, for cpuid vmexit, if kernel mode I call pv_cpuid, if user mode, I
+> just return cpuid values, as that's what would happen without the HVM
+> container.
+
+Which means you're not leveraging one of the things you could
+gain from hybrid (after all, returning the native value to user
+mode is one of the weaknesses of PV).
+
+Jan
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<4FED8052020000780008CC32@nat28.tlf.novell.com> b/config/examples/test/corpus/<4FED8052020000780008CC32@nat28.tlf.novell.com>
new file mode 100644 (file)
index 0000000..9e38cc4
--- /dev/null
@@ -0,0 +1,100 @@
+From xen-devel-bounces@lists.xen.org Fri Jun 29 09:38:26 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 29 Jun 2012 09:38:26 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SkWib-0000yC-3e
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 29 Jun 2012 09:38:26 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SkWfb-0008CJ-Au; Fri, 29 Jun 2012 08:35:15 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <JBeulich@suse.com>) id 1SkWfZ-0008CC-Oz
+       for Xen-devel@lists.xensource.com; Fri, 29 Jun 2012 08:35:13 +0000
+Received: from [85.158.138.51:27083] by server-3.bemta-3.messagelabs.com id
+       29/B7-26490-0C86DEF4; Fri, 29 Jun 2012 08:35:12 +0000
+X-Env-Sender: JBeulich@suse.com
+X-Msg-Ref: server-2.tower-174.messagelabs.com!1340958909!29043390!1
+X-Originating-IP: [130.57.49.28]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogMTMwLjU3LjQ5LjI4ID0+IDQ2NTQ=\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 7295 invoked from network); 29 Jun 2012 08:35:09 -0000
+Received: from nat28.tlf.novell.com (HELO nat28.tlf.novell.com) (130.57.49.28)
+       by server-2.tower-174.messagelabs.com with SMTP;
+       29 Jun 2012 08:35:09 -0000
+Received: from EMEA1-MTA by nat28.tlf.novell.com
+       with Novell_GroupWise; Fri, 29 Jun 2012 09:15:00 +0100
+Message-Id: <4FED8052020000780008CC32@nat28.tlf.novell.com>
+X-Mailer: Novell GroupWise Internet Agent 12.0.0 
+Date: Fri, 29 Jun 2012 09:15:46 +0100
+From: "Jan Beulich" <JBeulich@suse.com>
+To: "Ian Campbell" <Ian.Campbell@citrix.com>
+References: <20120628180007.06bb3fd3@mantra.us.oracle.com>
+       <4FED7BD7020000780008CBFB@nat28.tlf.novell.com>
+       <1340957235.10942.72.camel@zakaz.uk.xensource.com>
+In-Reply-To: <1340957235.10942.72.camel@zakaz.uk.xensource.com>
+Mime-Version: 1.0
+Content-Disposition: inline
+Cc: "Xen-devel@lists.xensource.com" <Xen-devel@lists.xensource.com>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [HYBRID]: XEN_EMULATE_PREFIX in user process
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+>>> On 29.06.12 at 10:07, Ian Campbell <Ian.Campbell@citrix.com> wrote:
+> On Fri, 2012-06-29 at 08:56 +0100, Jan Beulich wrote:
+>> >>> On 29.06.12 at 03:00, Mukesh Rathor <mukesh.rathor@oracle.com> wrote:
+>> > BTW, for cpuid vmexit, if kernel mode I call pv_cpuid, if user mode, I
+>> > just return cpuid values, as that's what would happen without the HVM
+>> > container.
+>> 
+>> Which means you're not leveraging one of the things you could
+>> gain from hybrid (after all, returning the native value to user
+>> mode is one of the weaknesses of PV).
+> 
+> cpuid masking could happen in the HVM layer too, couldn't it?
+
+But CPUID masking is rather limited (after all that's why CPUID
+faulting got added later).
+
+> Probably "XEN_EMULATE_PREFIX cpuid" and raw "cpuid" ought to return the
+> same set of PV values in hybrid?
+
+Yes, that's what I would think.
+
+Jan
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<4FF177A3020000780008D091@nat28.tlf.novell.com> b/config/examples/test/corpus/<4FF177A3020000780008D091@nat28.tlf.novell.com>
new file mode 100644 (file)
index 0000000..50f9ade
--- /dev/null
@@ -0,0 +1,103 @@
+From xen-devel-bounces@lists.xen.org Mon Jul 02 09:33:22 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Mon, 02 Jul 2012 09:33:22 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1Slc4K-000346-HN
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Mon, 02 Jul 2012 09:33:22 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1Slbz8-0002gG-NY; Mon, 02 Jul 2012 08:27:54 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <JBeulich@suse.com>) id 1Slbz7-0002gB-Mh
+       for Xen-devel@lists.xensource.com; Mon, 02 Jul 2012 08:27:53 +0000
+Received: from [85.158.138.51:46468] by server-6.bemta-3.messagelabs.com id
+       91/45-11602-88B51FF4; Mon, 02 Jul 2012 08:27:52 +0000
+X-Env-Sender: JBeulich@suse.com
+X-Msg-Ref: server-10.tower-174.messagelabs.com!1341217671!26501405!1
+X-Originating-IP: [130.57.49.28]
+X-SpamReason: No, hits=0.0 required=7.0 tests=
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 30172 invoked from network); 2 Jul 2012 08:27:52 -0000
+Received: from nat28.tlf.novell.com (HELO nat28.tlf.novell.com) (130.57.49.28)
+       by server-10.tower-174.messagelabs.com with SMTP;
+       2 Jul 2012 08:27:52 -0000
+Received: from EMEA1-MTA by nat28.tlf.novell.com
+       with Novell_GroupWise; Mon, 02 Jul 2012 09:27:51 +0100
+Message-Id: <4FF177A3020000780008D091@nat28.tlf.novell.com>
+X-Mailer: Novell GroupWise Internet Agent 12.0.0 
+Date: Mon, 02 Jul 2012 09:27:47 +0100
+From: "Jan Beulich" <JBeulich@suse.com>
+To: "Mukesh Rathor" <mukesh.rathor@oracle.com>
+References: <20120628180007.06bb3fd3@mantra.us.oracle.com>
+       <20120629010903.GC4902@phenom.dumpdata.com>
+       <20120628182602.6cc9b432@mantra.us.oracle.com>
+       <1340957369.10942.74.camel@zakaz.uk.xensource.com>
+       <20120629111546.50e36f52@mantra.us.oracle.com>
+       <20120629120738.425781e5@mantra.us.oracle.com>
+       <1341007454.5953.18.camel@dagon.hellion.org.uk>
+       <20120629155000.5152d544@mantra.us.oracle.com>
+In-Reply-To: <20120629155000.5152d544@mantra.us.oracle.com>
+Mime-Version: 1.0
+Content-Disposition: inline
+Cc: "Xen-devel@lists.xensource.com" <Xen-devel@lists.xensource.com>,
+       Ian Campbell <Ian.Campbell@citrix.com>,
+       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [HYBRID]: XEN_EMULATE_PREFIX in user process
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+>>> On 30.06.12 at 00:50, Mukesh Rathor <mukesh.rathor@oracle.com> wrote:
+> On Fri, 29 Jun 2012 15:04:14 -0700 (PDT)
+> Ian Campbell <Ian.Campbell@citrix.com> wrote:
+> 
+>> On Fri, 2012-06-29 at 20:07 +0100, Mukesh Rathor wrote:
+>> 
+>> I don't think reducing code should come at the expense of adding
+>> special cases for hybrid to userspace programs...
+>> 
+>> I think you'll have to handle the invalid op, it can't be that much
+>> code, can it?
+> 
+> Not a whole lot of code, but other than xen-detect, just curious,
+> what is the possibility of any user level using XEN_EMULATE_PREFIX cpuid?
+
+Obviously any code cloned from xen-detect could, i.e. anything
+that tries to be Xen-PV-aware.
+
+Jan
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<4FF3009F020000780008D522@nat28.tlf.novell.com> b/config/examples/test/corpus/<4FF3009F020000780008D522@nat28.tlf.novell.com>
new file mode 100644 (file)
index 0000000..d26a4e6
--- /dev/null
@@ -0,0 +1,100 @@
+From xen-devel-bounces@lists.xen.org Tue Jul 03 13:28:50 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Tue, 03 Jul 2012 13:28:50 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1Sm2Do-0003xj-Gd
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 03 Jul 2012 13:28:50 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1Sm28o-0003xQ-QM; Tue, 03 Jul 2012 12:23:38 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <JBeulich@suse.com>) id 1Sm28n-0003xL-Lp
+       for xen-devel@lists.xen.org; Tue, 03 Jul 2012 12:23:37 +0000
+Received: from [85.158.138.51:59843] by server-4.bemta-3.messagelabs.com id
+       A6/67-17105-844E2FF4; Tue, 03 Jul 2012 12:23:36 +0000
+X-Env-Sender: JBeulich@suse.com
+X-Msg-Ref: server-9.tower-174.messagelabs.com!1341318215!30844204!1
+X-Originating-IP: [130.57.49.28]
+X-SpamReason: No, hits=0.0 required=7.0 tests=
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 4862 invoked from network); 3 Jul 2012 12:23:35 -0000
+Received: from nat28.tlf.novell.com (HELO nat28.tlf.novell.com) (130.57.49.28)
+       by server-9.tower-174.messagelabs.com with SMTP;
+       3 Jul 2012 12:23:35 -0000
+Received: from EMEA1-MTA by nat28.tlf.novell.com
+       with Novell_GroupWise; Tue, 03 Jul 2012 13:23:34 +0100
+Message-Id: <4FF3009F020000780008D522@nat28.tlf.novell.com>
+X-Mailer: Novell GroupWise Internet Agent 12.0.0 
+Date: Tue, 03 Jul 2012 13:24:31 +0100
+From: "Jan Beulich" <JBeulich@suse.com>
+To: "amiard brice" <perso@brice-amiard.Fr>
+References: <002301cd590c$49aee250$dd0ca6f0$@brice-amiard.Fr>
+In-Reply-To: <002301cd590c$49aee250$dd0ca6f0$@brice-amiard.Fr>
+Mime-Version: 1.0
+Content-Disposition: inline
+Cc: xen-devel@lists.xen.org
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] VT-D CPU ressources
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+>>> On 03.07.12 at 13:09, "amiard brice" <perso@brice-amiard.Fr> wrote:
+> I've post a message on  <mailto:xen-users@list.xen.org>
+> xen-users@list.xen.org , according to a member of this list, I've decide to
+> post it on xen-devel.
+
+While re-posting here with this sort of problem is fine, you
+should have done so in a way that's easy to read and understand.
+Neither does top-posting help this, nor do the awful extra blank
+lines that must have got inserted somewhere.
+
+Further, while you attach quite a bit of information, you left us
+in the dark as to what device combinations you want to assign to
+individual guests (and what co-assignment error messages you
+specifically get). From what I can guess so far, there's no
+obvious 2-element groups that could be assigned to individual
+guests. That's because devices behind PCI bridges need to all
+be assigned to the same guest, as otherwise the IOMMU can't
+tell apart the origin of requests from the different devices.
+
+You could try with PV guests (and that may additionally require
+turning off the IOMMU). There's also a "pci-passthrough-strict-check"
+config option to suppress these checks, but using it would
+make your entire setup insecure (between the individual
+guests).
+
+Jan
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<4FFD4C06.7090403@citrix.com> b/config/examples/test/corpus/<4FFD4C06.7090403@citrix.com>
new file mode 100644 (file)
index 0000000..caad63c
--- /dev/null
@@ -0,0 +1,128 @@
+From xen-devel-bounces@lists.xen.org Wed Jul 11 10:53:53 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 11 Jul 2012 10:53:53 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SotcB-0003zW-Am
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 11 Jul 2012 10:53:53 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SotXh-0002t8-N8; Wed, 11 Jul 2012 09:49:09 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Andrew.Cooper3@citrix.com>) id 1SotXf-0002t2-EF
+       for xen-devel@lists.xen.org; Wed, 11 Jul 2012 09:49:07 +0000
+Received: from [85.158.139.83:37536] by server-10.bemta-5.messagelabs.com id
+       AD/69-02190-21C4DFF4; Wed, 11 Jul 2012 09:49:06 +0000
+X-Env-Sender: Andrew.Cooper3@citrix.com
+X-Msg-Ref: server-10.tower-182.messagelabs.com!1342000144!28457044!1
+X-Originating-IP: [66.165.176.63]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyNjQ5NzQ=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.2; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 4781 invoked from network); 11 Jul 2012 09:49:05 -0000
+Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
+       by server-10.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
+       11 Jul 2012 09:49:05 -0000
+X-IronPort-AV: E=Sophos;i="4.77,567,1336363200"; d="scan'208";a="201770206"
+Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
+       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       11 Jul 2012 05:48:55 -0400
+Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
+       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
+       Wed, 11 Jul 2012 05:48:55 -0400
+Received: from andrewcoop.uk.xensource.com ([10.80.2.18])      by
+       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
+       <andrew.cooper3@citrix.com>)    id 1SotXS-0006jW-Mc;
+       Wed, 11 Jul 2012 10:48:54 +0100
+Message-ID: <4FFD4C06.7090403@citrix.com>
+Date: Wed, 11 Jul 2012 10:48:54 +0100
+From: Andrew Cooper <andrew.cooper3@citrix.com>
+User-Agent: Mozilla/5.0 (X11; Linux x86_64;
+       rv:13.0) Gecko/20120615 Thunderbird/13.0.1
+MIME-Version: 1.0
+To: Chulmin Kim <cmkim@core.kaist.ac.kr>
+References: <008601cd5f45$6eff7530$4cfe5f90$@core.kaist.ac.kr>
+In-Reply-To: <008601cd5f45$6eff7530$4cfe5f90$@core.kaist.ac.kr>
+X-Enigmail-Version: 1.4.2
+Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] maximum memory size allocated by _xmalloc
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On 11/07/12 10:13, Chulmin Kim wrote:
+> Hi all, 
+>
+> I'm currently inserting my own code to adjust the several existing memory
+> ballooning works. 
+>
+> To accomplish it, I manage some kind of statistics in Xen memory area. 
+>
+> Using _xmalloc, I've allocated certain size of memory chunk for the data
+> structure. ( I varied it from 10kb to 24 MB.)
+>
+> When the size is equal to 24 MB, xen won't boot anymore.  (stuck during the
+> xmalloc, according to my debugging. _xmalloc returns NULL.)
+> There was no problem when the size is below 12MB.
+>
+> Is there any limitation such as max memory size for _xmalloc? 
+>
+> I suspected xen heap size, but, it is no longer adjustable. Right? 
+>
+> I hope somebody can give me a clue.  Thanks.
+
+_xmalloc will first try to use the size pools for allocation, and
+failing that, try to allocate full pages.
+
+As it is returning NULL, this probably means you no longer have 24MB of
+free contiguous RAM to allocate.
+
+~Andrew
+
+>
+>
+>
+> _______________________________________________
+> Xen-devel mailing list
+> Xen-devel@lists.xen.org
+> http://lists.xen.org/xen-devel
+
+-- 
+Andrew Cooper - Dom0 Kernel Engineer, Citrix XenServer
+T: +44 (0)1223 225 900, http://www.citrix.com
+
+
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<4FFE93DE.5020608@citrix.com> b/config/examples/test/corpus/<4FFE93DE.5020608@citrix.com>
new file mode 100644 (file)
index 0000000..99f2715
--- /dev/null
@@ -0,0 +1,145 @@
+From xen-devel-bounces@lists.xen.org Thu Jul 12 10:12:23 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 12 Jul 2012 10:12:23 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SpFRd-00049c-Eg
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 12 Jul 2012 10:12:23 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SpFNO-0006jY-E8; Thu, 12 Jul 2012 09:07:58 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Andrew.Cooper3@citrix.com>) id 1SpFNM-0006jO-Cq
+       for xen-devel@lists.xen.org; Thu, 12 Jul 2012 09:07:56 +0000
+Received: from [85.158.138.51:42950] by server-2.bemta-3.messagelabs.com id
+       C7/40-10266-BE39EFF4; Thu, 12 Jul 2012 09:07:55 +0000
+X-Env-Sender: Andrew.Cooper3@citrix.com
+X-Msg-Ref: server-2.tower-174.messagelabs.com!1342084073!28536699!1
+X-Originating-IP: [66.165.176.89]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNTYwMjI=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.2; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 28225 invoked from network); 12 Jul 2012 09:07:54 -0000
+Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
+       by server-2.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
+       12 Jul 2012 09:07:54 -0000
+X-IronPort-AV: E=Sophos;i="4.77,573,1336363200"; d="scan'208";a="31236572"
+Received: from ftlpmailmx01.citrite.net ([10.13.107.65])
+       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       12 Jul 2012 05:07:42 -0400
+Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
+       (10.13.107.65) with Microsoft SMTP Server id 8.3.213.0;
+       Thu, 12 Jul 2012 05:07:42 -0400
+Received: from andrewcoop.uk.xensource.com ([10.80.2.18])      by
+       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
+       <andrew.cooper3@citrix.com>)    id 1SpFN8-0002jO-52;
+       Thu, 12 Jul 2012 10:07:42 +0100
+Message-ID: <4FFE93DE.5020608@citrix.com>
+Date: Thu, 12 Jul 2012 10:07:42 +0100
+From: Andrew Cooper <andrew.cooper3@citrix.com>
+User-Agent: Mozilla/5.0 (X11; Linux x86_64;
+       rv:13.0) Gecko/20120615 Thunderbird/13.0.1
+MIME-Version: 1.0
+To: Chulmin Kim <cmkim@core.kaist.ac.kr>
+References: <008601cd5f45$6eff7530$4cfe5f90$@core.kaist.ac.kr>
+       <4FFD4C06.7090403@citrix.com>
+       <001301cd5fc1$818953c0$849bfb40$@core.kaist.ac.kr>
+In-Reply-To: <001301cd5fc1$818953c0$849bfb40$@core.kaist.ac.kr>
+X-Enigmail-Version: 1.4.2
+Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] maximum memory size allocated by _xmalloc
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On 12/07/12 01:01, Chulmin Kim wrote:
+>> On 11/07/12 10:13, Chulmin Kim wrote:
+>>> Hi all,
+>>>
+>>> I'm currently inserting my own code to adjust the several existing
+>>> memory ballooning works.
+>>>
+>>> To accomplish it, I manage some kind of statistics in Xen memory area.
+>>>
+>>> Using _xmalloc, I've allocated certain size of memory chunk for the
+>>> data structure. ( I varied it from 10kb to 24 MB.)
+>>>
+>>> When the size is equal to 24 MB, xen won't boot anymore.  (stuck
+>>> during the xmalloc, according to my debugging. _xmalloc returns NULL.)
+>>> There was no problem when the size is below 12MB.
+>>>
+>>> Is there any limitation such as max memory size for _xmalloc?
+>>>
+>>> I suspected xen heap size, but, it is no longer adjustable. Right?
+>>>
+>>> I hope somebody can give me a clue.  Thanks.
+>> _xmalloc will first try to use the size pools for allocation, and failing
+> that, try to
+>> allocate full pages.
+>>
+>> As it is returning NULL, this probably means you no longer have 24MB of
+> free
+>> contiguous RAM to allocate.
+>>
+>> ~Andrew
+>>
+> Thanks for the reply, Andrew.
+>
+> I have to check the contiguity. 
+>
+> If it is the cause of the problem, then, how can I detour this problem? 
+>
+> Other xen part calling xmalloc_array does not handle this problem as far as
+> I know. (only consider it as an error)
+>
+> Should I split the data structure into two or more chunks? 
+
+Personally, I would think that 24M is a stupidly large amount to be
+trying to allocate with xmalloc and friends.
+
+If you are using that much memory, it might be worth using
+alloc_xenheap_pages() and working with full pages instead.
+
+Why do you need so much space for memory statistics?
+
+~Andrew
+
+-- 
+Andrew Cooper - Dom0 Kernel Engineer, Citrix XenServer
+T: +44 (0)1223 225 900, http://www.citrix.com
+
+
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<4cb9d7f220dd459c1554c6b5d9e2ed73@abpni.co.uk> b/config/examples/test/corpus/<4cb9d7f220dd459c1554c6b5d9e2ed73@abpni.co.uk>
new file mode 100644 (file)
index 0000000..959f5b8
--- /dev/null
@@ -0,0 +1,160 @@
+From xen-devel-bounces@lists.xen.org Wed Sep 05 10:53:31 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 05 Sep 2012 10:53:31 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T9CIX-00025n-W0
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 05 Sep 2012 10:53:31 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T9CES-0007pO-Dy; Wed, 05 Sep 2012 09:49:12 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <jonnyt@abpni.co.uk>) id 1T9CEQ-0007pH-QN
+       for xen-devel@lists.xen.org; Wed, 05 Sep 2012 09:49:11 +0000
+Received: from [85.158.143.99:15563] by server-1.bemta-4.messagelabs.com id
+       9A/2E-12504-61027405; Wed, 05 Sep 2012 09:49:10 +0000
+X-Env-Sender: jonnyt@abpni.co.uk
+X-Msg-Ref: server-14.tower-216.messagelabs.com!1346838549!19005758!1
+X-Originating-IP: [109.200.19.114]
+X-SpamReason: No, hits=0.0 required=7.0 tests=SUBJECT_EXCESS_QP
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 6214 invoked from network); 5 Sep 2012 09:49:09 -0000
+Received: from edge1.gosport.uk.abpni.net (HELO
+       mail1.gosport.uk.corp.abpni.net) (109.200.19.114)
+       by server-14.tower-216.messagelabs.com with SMTP;
+       5 Sep 2012 09:49:09 -0000
+Received: from localhost (mail1.gosport.corp.uk.abpni.net [127.0.0.1])
+       by mail1.gosport.uk.corp.abpni.net (Postfix) with ESMTP id 260DF5A0006
+       for <xen-devel@lists.xen.org>; Wed,  5 Sep 2012 10:48:35 +0100 (BST)
+X-Virus-Scanned: Debian amavisd-new at mail1.mail.gosport.corp.uk.abpni.net
+Received: from mail1.gosport.uk.corp.abpni.net ([127.0.0.1])
+       by localhost (mail1.mail.gosport.corp.uk.abpni.net [127.0.0.1])
+       (amavisd-new, port 10024)
+       with ESMTP id AVUIfUaPiAIZ for <xen-devel@lists.xen.org>;
+       Wed,  5 Sep 2012 10:48:31 +0100 (BST)
+Received: from mail.abpni.co.uk (unknown [10.87.17.3])
+       by mail1.gosport.uk.corp.abpni.net (Postfix) with ESMTPA id 9DDBD5A0005
+       for <xen-devel@lists.xen.org>; Wed,  5 Sep 2012 10:48:31 +0100 (BST)
+MIME-Version: 1.0
+Date: Wed, 05 Sep 2012 10:49:02 +0100
+From: Jonathan Tripathy <jonnyt@abpni.co.uk>
+To: <xen-devel@lists.xen.org>
+In-Reply-To: <E1T9C4K-0003Su-2p@mariner.uk.xensource.com>
+References: <E1T9C4K-0003Su-2p@mariner.uk.xensource.com>
+Message-ID: <4cb9d7f220dd459c1554c6b5d9e2ed73@abpni.co.uk>
+X-Sender: jonnyt@abpni.co.uk
+User-Agent: Roundcube Webmail/0.6
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Transfer-Encoding: 7bit
+Content-Type: text/plain; charset="us-ascii"; Format="flowed"
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel]
+ =?utf-8?q?Xen_Security_Advisory_12_=28CVE-2012-3494?=
+ =?utf-8?q?=29_-_hypercall_set=5Fdebugreg_vulnerability?=
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+Is Xen 3.4.x vulnerable?
+
+Thanks
+
+On 05.09.2012 10:38, Xen.org security team wrote:
+> -----BEGIN PGP SIGNED MESSAGE-----
+> Hash: SHA1
+>
+>             Xen Security Advisory CVE-2012-3494 / XSA-12
+>                              version 3
+>
+>            hypercall set_debugreg vulnerability
+>
+> UPDATES IN VERSION 3
+> ====================
+>
+> Public release.
+>
+> ISSUE DESCRIPTION
+> =================
+>
+> set_debugreg allows writes to reserved bits of the DR7 debug control
+> register on x86-64.
+>
+> IMPACT
+> ======
+>
+> A malicious guest can cause the host to crash, leading to a DoS.
+>
+> If the vulnerable hypervisor is run on future hardware, the impact of
+> the vulnerability might be widened depending on the future assignment
+> of the currently-reserved debug register bits.
+>
+> VULNERABLE SYSTEMS
+> ==================
+>
+> All systems running 64-bit paravirtualised guests.
+>
+> The vulnerability dates back to at least Xen 4.0.  4.0, 4.1, the 4.2
+> RCs, and xen-unstable.hg are all vulnerable.
+>
+> MITIGATION
+> ==========
+>
+> This issue can be mitigated by ensuring (inside the guest) that the
+> kernel is trustworthy, or by running only 32-bit or HVM guests.
+>
+> RESOLUTION
+> ==========
+>
+> Applying the appropriate attached patch will resolve the issue.
+>
+> PATCH INFORMATION
+> =================
+>
+> The attached patch resolves this issue:
+>
+>  Xen unstable, 4.1 and 4.0           xsa12-all.patch
+>
+> $ sha256sum xsa12-all.patch
+> 2415ee133e28b1c848c5ae3ce766cc2a67009bad8d026879030a6511b85dbc13
+> xsa12-all.patch
+> -----BEGIN PGP SIGNATURE-----
+> Version: GnuPG v1.4.10 (GNU/Linux)
+>
+> iQEcBAEBAgAGBQJQRx0+AAoJEIP+FMlX6CvZnMAH/0fcm9nfiChokydCyqXgdKtJ
+> U2NqeqKzEP6emwLE+cvc+2EBP40fiBXsNATVdXc6Vx15eyzSMfJD3ndYF9OaKMVH
+> MVP6KU/tyK1G/9WgQK9PHBj/Kzp8hwrY0Qw45od7z+R7XMGieLH9l1O1xwkNCYDw
+> R8Xy2GI9IqsXLNpwy3BFYSyGYIX9o8/aBx4ZxHCV8H0OYUWv5hDGZZVXPDqGm11c
+> N+qmUaPV2QlW8Aoww1SiwW5E+/CpyJT5+awEMgZ4IOHPbCBXJfyXbw4aMM2q5Soe
+> mStqvPKL4H10SahaygdjxO+e4NqCHao0rYUXXpUr+aikIXvEearukp3FezR5IUE=
+> =/LmZ
+> -----END PGP SIGNATURE-----
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<500D61BF.4080508@cantab.net> b/config/examples/test/corpus/<500D61BF.4080508@cantab.net>
new file mode 100644 (file)
index 0000000..c542943
--- /dev/null
@@ -0,0 +1,124 @@
+From xen-devel-bounces@lists.xen.org Mon Jul 23 15:42:52 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Mon, 23 Jul 2012 15:42:52 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1StJqU-0000Fu-Bv
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Mon, 23 Jul 2012 15:42:52 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1StJls-0000Ec-Nm; Mon, 23 Jul 2012 14:38:04 +0000
+Received: from mail27.messagelabs.com ([193.109.254.147])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <d.vrabel.98@gmail.com>) id 1StJlq-0000EE-RY
+       for xen-devel@lists.xen.org; Mon, 23 Jul 2012 14:38:03 +0000
+X-Env-Sender: d.vrabel.98@gmail.com
+X-Msg-Ref: server-10.tower-27.messagelabs.com!1343054274!5200474!1
+X-Originating-IP: [209.85.161.173]
+X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.2; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 14165 invoked from network); 23 Jul 2012 14:37:55 -0000
+Received: from mail-gg0-f173.google.com (HELO mail-gg0-f173.google.com)
+       (209.85.161.173)
+       by server-10.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
+       23 Jul 2012 14:37:55 -0000
+Received: by ggnp1 with SMTP id p1so6289826ggn.32
+       for <xen-devel@lists.xen.org>; Mon, 23 Jul 2012 07:37:54 -0700 (PDT)
+DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
+       h=sender:message-id:date:from:user-agent:mime-version:to:cc:subject
+       :references:in-reply-to:content-type:content-transfer-encoding;
+       bh=fdu4eeD6dqT2843rgRl+AgG85er3R0KJxDe0MDdIwDA=;
+       b=xy/mYdwMm2o77SmwReEMfFB4DmyoEypvcNc+3kKwt6KecGFjk2SuGZR3Xd4vhW2wod
+       pVUecdpyvtDjxAjC6Kaem1Hy3bn9cvjFySRMjS8GbjO8F4Ja/uH+DwG7Ap/vHDfBpNdk
+       BIRmIAXxkQDB6B9Y/GIDdstOvXjVVvMsp/7bLEj0a7efsY4P9DYw9PQWC8EVN68gl4fL
+       pMWUpqc3MR6/FxpYIieTuOe3CbhxdgQzFdMxjbsAMFe2n8b/36y835dubtfh+jUjChnC
+       XVuev8W7IFkFUURTMfGOv9qESgRUX46lZ0oT3FVmF26A0Pbf6EKD+72cgCUOd8kzwmS5
+       Krsg==
+Received: by 10.236.125.133 with SMTP id z5mr5593303yhh.121.1343054274460;
+       Mon, 23 Jul 2012 07:37:54 -0700 (PDT)
+Received: from [10.80.2.76] (firewall.ctxuk.citrix.com. [62.200.22.2])
+       by mx.google.com with ESMTPS id g22sm25330870yhh.20.2012.07.23.07.37.52
+       (version=SSLv3 cipher=OTHER); Mon, 23 Jul 2012 07:37:53 -0700 (PDT)
+Message-ID: <500D61BF.4080508@cantab.net>
+Date: Mon, 23 Jul 2012 15:37:51 +0100
+From: David Vrabel <dvrabel@cantab.net>
+User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US;
+       rv:1.9.1.16) Gecko/20120428 Iceowl/1.0b1 Icedove/3.0.11
+MIME-Version: 1.0
+To: Ian Campbell <Ian.Campbell@citrix.com>
+References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>        <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>      <1338565207-2888-36-git-send-email-ian.campbell@citrix.com>     <alpine.DEB.2.02.1206071214020.2415@kaball.uk.xensource.com>    <1343051870.5797.36.camel@zakaz.uk.xensource.com>
+       <1343052688.5797.38.camel@zakaz.uk.xensource.com>
+In-Reply-To: <1343052688.5797.38.camel@zakaz.uk.xensource.com>
+Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
+       "Tim \(Xen.org\)" <tim@xen.org>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_DKIM_INVALID,T_RP_MATCHES_RCVD autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 36/38] libxc: add ARM support to xc_dom (PV
+ domain building)
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On 23/07/12 15:11, Ian Campbell wrote:
+> 
+>>>> diff --git a/tools/libxc/xc_dom_armzimageloader.c b/tools/libxc/xc_dom_armzimageloader.c
+>>>> new file mode 100644
+>>>> index 0000000..220176d
+>>>> --- /dev/null
+>>>> +++ b/tools/libxc/xc_dom_armzimageloader.c
+>> [...]
+>>>> +#include "xg_private.h"
+>>>> +#include "xc_dom.h"
+>>>> +
+>>>> +#include <arpa/inet.h> /* XXX ntohl is not the right function... */
+>>>
+>>> Yes, you are right, we should write a be32_to_cpu (the ones in Xen, QEMU
+>>> and Linux are GPLv2 rather than LGLPv2).
+>>
+>> I wonder if we can/should just declare that we handle only native endian
+>> zImages.
+> 
+> Except this is used with the DTB and that is what it is. :-(
+> 
+> We have ./tools/blktap2/drivers/bswap.h already which maybe we can make
+> more generic?
+> 
+> TBH, given this is internal to this one loader I'm very tempted to just
+> keep using ntohl and friends.
+
+You will likely need to link to libfdt in the future and you will need
+to provide cpu_to_fdt32() and fdt32_to_cpu() etc. implementations (like
+include/xen/libfdt/libfdt_env.h for Xen itself).
+
+David
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<501176AF.3000607@cantab.net> b/config/examples/test/corpus/<501176AF.3000607@cantab.net>
new file mode 100644 (file)
index 0000000..80a2124
--- /dev/null
@@ -0,0 +1,103 @@
+From xen-devel-bounces@lists.xen.org Thu Jul 26 18:00:48 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 26 Jul 2012 18:00:48 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SuRQZ-0001xj-1p
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 26 Jul 2012 18:00:48 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SuRMO-0005a0-Ij; Thu, 26 Jul 2012 16:56:24 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <d.vrabel.98@gmail.com>) id 1SuRMM-0005Zu-Cc
+       for xen-devel@lists.xensource.com; Thu, 26 Jul 2012 16:56:22 +0000
+Received: from [85.158.138.51:35793] by server-1.bemta-3.messagelabs.com id
+       C4/B5-31934-5B671105; Thu, 26 Jul 2012 16:56:21 +0000
+X-Env-Sender: d.vrabel.98@gmail.com
+X-Msg-Ref: server-2.tower-174.messagelabs.com!1343321779!28982713!1
+X-Originating-IP: [209.85.213.171]
+X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.2; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 29266 invoked from network); 26 Jul 2012 16:56:20 -0000
+Received: from mail-yx0-f171.google.com (HELO mail-yx0-f171.google.com)
+       (209.85.213.171)
+       by server-2.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
+       26 Jul 2012 16:56:20 -0000
+Received: by yenq11 with SMTP id q11so2804135yen.30
+       for <xen-devel@lists.xensource.com>;
+       Thu, 26 Jul 2012 09:56:19 -0700 (PDT)
+DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
+       h=sender:message-id:date:from:user-agent:mime-version:to:cc:subject
+       :references:in-reply-to:content-type:content-transfer-encoding;
+       bh=cQlqq3RL28dBfTcFwGzNTPvUtX8V6v63qCbjK1EWVsc=;
+       b=tfh7j5xmc1z1OfZnKZ26LJe97TdrkN4YzFSbZLAxV0ayakTr+h7MN+l5UVXhptatcA
+       ZM0pe+GBss8h0Cddjpx96btzcCvXC+3kEVOv2hzorWE64oAOyXhsTjlJf8Hr1qp8KXNQ
+       HbcahBahTrJxAZQl0vu8NmyRpVPDrBOiCUgErIJusKYrB5DlnGo25zn2C++d+LuOzeTM
+       jriBB1YUvdUwchQPRtXHzfVt4VisxC6NK/m2HL+loxa/YwEwvn79H/SWsQEl+KHk3HpA
+       7qcKl0gg6k8G22D65R65ZZdybpH1Jz14LBssbSKlxK36M4liZPAJypT/6ssATDOFFAaD
+       vaiw==
+Received: by 10.236.200.167 with SMTP id z27mr28485580yhn.131.1343321779341;
+       Thu, 26 Jul 2012 09:56:19 -0700 (PDT)
+Received: from [10.80.2.76] (firewall.ctxuk.citrix.com. [62.200.22.2])
+       by mx.google.com with ESMTPS id l12sm5129968ank.2.2012.07.26.09.56.16
+       (version=SSLv3 cipher=OTHER); Thu, 26 Jul 2012 09:56:18 -0700 (PDT)
+Message-ID: <501176AF.3000607@cantab.net>
+Date: Thu, 26 Jul 2012 17:56:15 +0100
+From: David Vrabel <dvrabel@cantab.net>
+User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US;
+       rv:1.9.1.16) Gecko/20120428 Iceowl/1.0b1 Icedove/3.0.11
+MIME-Version: 1.0
+To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
+       <1343316846-25860-2-git-send-email-stefano.stabellini@eu.citrix.com>
+In-Reply-To: <1343316846-25860-2-git-send-email-stefano.stabellini@eu.citrix.com>
+Cc: xen-devel@lists.xensource.com, linaro-dev@lists.linaro.org,
+       Ian.Campbell@citrix.com, arnd@arndb.de, konrad.wilk@oracle.com,
+       catalin.marinas@arm.com, tim@xen.org, linux-kernel@vger.kernel.org,
+       linux-arm-kernel@lists.infradead.org
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_DKIM_INVALID,T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 02/24] xen/arm: hypercalls
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On 26/07/12 16:33, Stefano Stabellini wrote:
+> 
+> + * The hvc ISS is required to be 0xEA1, that is the Xen specific ARM
+> + * hypercall tag.
+
+Is this number, 0xea1, assigned to Xen by some external body?
+
+David
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<50119856.2020206@codeaurora.org> b/config/examples/test/corpus/<50119856.2020206@codeaurora.org>
new file mode 100644 (file)
index 0000000..f253f1d
--- /dev/null
@@ -0,0 +1,110 @@
+From xen-devel-bounces@lists.xen.org Thu Jul 26 22:25:36 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 26 Jul 2012 22:25:36 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SuVYp-0002rs-HL
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 26 Jul 2012 22:25:36 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SuVUh-0000ov-3o; Thu, 26 Jul 2012 21:21:15 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <cov@codeaurora.org>) id 1SuTbJ-0002Yn-Hf
+       for xen-devel@lists.xensource.com; Thu, 26 Jul 2012 19:19:57 +0000
+Received: from [85.158.143.35:22002] by server-1.bemta-4.messagelabs.com id
+       DF/65-24392-C5891105; Thu, 26 Jul 2012 19:19:56 +0000
+X-Env-Sender: cov@codeaurora.org
+X-Msg-Ref: server-10.tower-21.messagelabs.com!1343330394!10513693!1
+X-Originating-IP: [199.106.114.254]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogMTk5LjEwNi4xMTQuMjU0ID0+IDM2NjA1OQ==\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.2; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 2848 invoked from network); 26 Jul 2012 19:19:56 -0000
+Received: from wolverine01.qualcomm.com (HELO wolverine01.qualcomm.com)
+       (199.106.114.254)
+       by server-10.tower-21.messagelabs.com with DHE-RSA-AES256-SHA encrypted
+       SMTP; 26 Jul 2012 19:19:56 -0000
+X-IronPort-AV: E=McAfee;i="5400,1158,6784"; a="214873497"
+Received: from pdmz-ns-snip_115.254.qualcomm.com (HELO mostmsg01.qualcomm.com)
+       ([199.106.115.254])
+       by wolverine01.qualcomm.com with ESMTP/TLS/DHE-RSA-AES256-SHA;
+       26 Jul 2012 12:19:55 -0700
+Received: from [10.228.68.45] (pdmz-ns-snip_218_1.qualcomm.com [192.168.218.1])
+       by mostmsg01.qualcomm.com (Postfix) with ESMTPA id 9B52410004B7;
+       Thu, 26 Jul 2012 12:19:51 -0700 (PDT)
+Message-ID: <50119856.2020206@codeaurora.org>
+Date: Thu, 26 Jul 2012 15:19:50 -0400
+From: Christopher Covington <cov@codeaurora.org>
+User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US;
+       rv:1.9.2.13) Gecko/20101208 Thunderbird/3.1.7
+MIME-Version: 1.0
+To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
+       <1343316846-25860-2-git-send-email-stefano.stabellini@eu.citrix.com>
+In-Reply-To: <1343316846-25860-2-git-send-email-stefano.stabellini@eu.citrix.com>
+X-Mailman-Approved-At: Thu, 26 Jul 2012 21:21:13 +0000
+Cc: xen-devel@lists.xensource.com, linaro-dev@lists.linaro.org,
+       Ian.Campbell@citrix.com, arnd@arndb.de, konrad.wilk@oracle.com,
+       catalin.marinas@arm.com, tim@xen.org, linux-kernel@vger.kernel.org,
+       linux-arm-kernel@lists.infradead.org
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 02/24] xen/arm: hypercalls
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+Hi Stefano,
+
+On 07/26/2012 11:33 AM, Stefano Stabellini wrote:
+> Use r12 to pass the hypercall number to the hypervisor.
+> 
+> We need a register to pass the hypercall number because we might not
+> know it at compile time and HVC only takes an immediate argument.
+
+You're not going to JIT assemble the appropriate HVC instruction? Darn.
+
+How many call numbers are there, though? 8? It seems like it'd be
+reasonable to take the approach that seems to be favored for MRC/MCR
+instructions, using a function containing switch statement that chooses
+between several inline assembly instructions based off an enum passed to
+the function. See for example arch_timer_reg_read in
+arch/arm/kernel/arch_timer.c.
+
+Regards,
+Christopher
+
+-- 
+Employee of Qualcomm Innovation Center, Inc.
+Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<501257F30200007800090D9E@nat28.tlf.novell.com> b/config/examples/test/corpus/<501257F30200007800090D9E@nat28.tlf.novell.com>
new file mode 100644 (file)
index 0000000..efe598c
--- /dev/null
@@ -0,0 +1,107 @@
+From xen-devel-bounces@lists.xen.org Fri Jul 27 08:02:06 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 27 Jul 2012 08:02:06 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SueYi-0000FT-F9
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 27 Jul 2012 08:02:06 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SueUK-0007ij-PC; Fri, 27 Jul 2012 06:57:28 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <JBeulich@suse.com>) id 1SueUI-0007ie-Uc
+       for xen-devel@lists.xensource.com; Fri, 27 Jul 2012 06:57:27 +0000
+Received: from [85.158.139.83:40393] by server-2.bemta-5.messagelabs.com id
+       AD/F1-04598-5DB32105; Fri, 27 Jul 2012 06:57:25 +0000
+X-Env-Sender: JBeulich@suse.com
+X-Msg-Ref: server-16.tower-182.messagelabs.com!1343372245!21569935!1
+X-Originating-IP: [130.57.49.28]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogMTMwLjU3LjQ5LjI4ID0+IDM4NTU=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.2; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 22724 invoked from network); 27 Jul 2012 06:57:25 -0000
+Received: from nat28.tlf.novell.com (HELO nat28.tlf.novell.com) (130.57.49.28)
+       by server-16.tower-182.messagelabs.com with SMTP;
+       27 Jul 2012 06:57:25 -0000
+Received: from EMEA1-MTA by nat28.tlf.novell.com
+       with Novell_GroupWise; Fri, 27 Jul 2012 07:57:24 +0100
+Message-Id: <501257F30200007800090D9E@nat28.tlf.novell.com>
+X-Mailer: Novell GroupWise Internet Agent 12.0.0 
+Date: Fri, 27 Jul 2012 07:57:23 +0100
+From: "Jan Beulich" <JBeulich@suse.com>
+To: "Stefano Stabellini" <stefano.stabellini@eu.citrix.com>,
+       <linux-kernel@vger.kernel.org>
+References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
+       <1343316846-25860-6-git-send-email-stefano.stabellini@eu.citrix.com>
+In-Reply-To: <1343316846-25860-6-git-send-email-stefano.stabellini@eu.citrix.com>
+Mime-Version: 1.0
+Content-Disposition: inline
+Cc: xen-devel@lists.xensource.com, linaro-dev@lists.linaro.org,
+       Ian.Campbell@citrix.com, arnd@arndb.de, konrad.wilk@oracle.com,
+       catalin.marinas@arm.com, tim@xen.org, linux-arm-kernel@lists.infradead.org
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 06/24] xen: missing includes
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+>>> On 26.07.12 at 17:33, Stefano Stabellini <stefano.stabellini@eu.citrix.com> wrote:
+> --- a/include/xen/interface/xen.h
+> +++ b/include/xen/interface/xen.h
+> @@ -10,7 +10,10 @@
+>  #define __XEN_PUBLIC_XEN_H__
+>  
+>  #include <asm/xen/interface.h>
+> +#include <linux/types.h>
+> +#ifdef CONFIG_X86
+>  #include <asm/pvclock-abi.h>
+> +#endif
+
+Rather than hacking around this, why not clean it up:
+asm/pvclock-abi.h clearly isn't intended to be included here
+(from the perspective of the origin of xen/interface/xen.h, at
+least), nor is linux/types.h.
+
+Or if it is really needed to deviate from the original header in
+this respect, then clearly the inclusion ought to not be arch
+specific or be moved to an arch specific header.
+
+Jan
+
+>  
+>  /*
+>   * XEN "SYSTEM CALLS" (a.k.a. HYPERCALLS).
+
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<501258FB0200007800090DB6@nat28.tlf.novell.com> b/config/examples/test/corpus/<501258FB0200007800090DB6@nat28.tlf.novell.com>
new file mode 100644 (file)
index 0000000..63a114e
--- /dev/null
@@ -0,0 +1,134 @@
+From xen-devel-bounces@lists.xen.org Fri Jul 27 08:05:54 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 27 Jul 2012 08:05:54 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SuecP-0000H2-1N
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 27 Jul 2012 08:05:54 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SueYa-00083y-VR; Fri, 27 Jul 2012 07:01:52 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <JBeulich@suse.com>) id 1SueYY-00083O-Gl
+       for xen-devel@lists.xensource.com; Fri, 27 Jul 2012 07:01:50 +0000
+Received: from [85.158.139.83:16426] by server-6.bemta-5.messagelabs.com id
+       89/E9-11348-DDC32105; Fri, 27 Jul 2012 07:01:49 +0000
+X-Env-Sender: JBeulich@suse.com
+X-Msg-Ref: server-10.tower-182.messagelabs.com!1343372508!29190312!1
+X-Originating-IP: [130.57.49.28]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogMTMwLjU3LjQ5LjI4ID0+IDM4NTU=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.2; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 24109 invoked from network); 27 Jul 2012 07:01:48 -0000
+Received: from nat28.tlf.novell.com (HELO nat28.tlf.novell.com) (130.57.49.28)
+       by server-10.tower-182.messagelabs.com with SMTP;
+       27 Jul 2012 07:01:48 -0000
+Received: from EMEA1-MTA by nat28.tlf.novell.com
+       with Novell_GroupWise; Fri, 27 Jul 2012 08:01:48 +0100
+Message-Id: <501258FB0200007800090DB6@nat28.tlf.novell.com>
+X-Mailer: Novell GroupWise Internet Agent 12.0.0 
+Date: Fri, 27 Jul 2012 08:01:47 +0100
+From: "Jan Beulich" <JBeulich@suse.com>
+To: "Stefano Stabellini" <stefano.stabellini@eu.citrix.com>,
+       <linux-kernel@vger.kernel.org>
+References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
+       <1343316846-25860-10-git-send-email-stefano.stabellini@eu.citrix.com>
+In-Reply-To: <1343316846-25860-10-git-send-email-stefano.stabellini@eu.citrix.com>
+Mime-Version: 1.0
+Content-Disposition: inline
+Cc: xen-devel@lists.xensource.com, linaro-dev@lists.linaro.org,
+       Ian.Campbell@citrix.com, arnd@arndb.de, konrad.wilk@oracle.com,
+       catalin.marinas@arm.com, tim@xen.org, linux-arm-kernel@lists.infradead.org
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 10/24] xen: do not compile manage, balloon,
+ pci, acpi and cpu_hotplug on ARM
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+>>> On 26.07.12 at 17:33, Stefano Stabellini <stefano.stabellini@eu.citrix.com> wrote:
+> --- a/drivers/xen/Makefile
+> +++ b/drivers/xen/Makefile
+> @@ -1,11 +1,15 @@
+> -obj-y       += grant-table.o features.o events.o manage.o balloon.o
+> +ifneq ($(CONFIG_ARM),y)
+> +obj-y       += manage.o balloon.o
+
+While I assume that this part (and the cpu_hotplug one below) is
+temporary, ...
+
+> +obj-$(CONFIG_XEN_DOM0)                      += pci.o acpi.o
+
+... at least this one should imo be solved with a proper long term
+mechanism, i.e. the usual var-$(CONFIG_...) approach, i.e.
+
+dom0-$(CONFIG_PCI) := pci.o
+dom0-$(CONFIG_ACPI) := acpi.o
+obj-$(CONFIG_XEN_DOM0)                 += $(dom0-y)
+
+Jan
+
+> +obj-$(CONFIG_HOTPLUG_CPU)           += cpu_hotplug.o
+> +endif
+> +obj-y       += grant-table.o features.o events.o
+>  obj-y       += xenbus/
+>  
+>  nostackp := $(call cc-option, -fno-stack-protector)
+>  CFLAGS_features.o                   := $(nostackp)
+>  
+>  obj-$(CONFIG_BLOCK)                 += biomerge.o
+> -obj-$(CONFIG_HOTPLUG_CPU)           += cpu_hotplug.o
+>  obj-$(CONFIG_XEN_XENCOMM)           += xencomm.o
+>  obj-$(CONFIG_XEN_BALLOON)           += xen-balloon.o
+>  obj-$(CONFIG_XEN_SELFBALLOONING)    += xen-selfballoon.o
+> @@ -17,7 +21,6 @@ obj-$(CONFIG_XEN_SYS_HYPERVISOR)   += sys-hypervisor.o
+>  obj-$(CONFIG_XEN_PVHVM)                     += platform-pci.o
+>  obj-$(CONFIG_XEN_TMEM)                      += tmem.o
+>  obj-$(CONFIG_SWIOTLB_XEN)           += swiotlb-xen.o
+> -obj-$(CONFIG_XEN_DOM0)                      += pci.o acpi.o
+>  obj-$(CONFIG_XEN_PCIDEV_BACKEND)    += xen-pciback/
+>  obj-$(CONFIG_XEN_PRIVCMD)           += xen-privcmd.o
+>  obj-$(CONFIG_XEN_ACPI_PROCESSOR)    += xen-acpi-processor.o
+> -- 
+> 1.7.2.5
+> 
+> 
+> _______________________________________________
+> Xen-devel mailing list
+> Xen-devel@lists.xen.org 
+> http://lists.xen.org/xen-devel 
+
+
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<5012598C0200007800090DB9@nat28.tlf.novell.com> b/config/examples/test/corpus/<5012598C0200007800090DB9@nat28.tlf.novell.com>
new file mode 100644 (file)
index 0000000..dafca78
--- /dev/null
@@ -0,0 +1,114 @@
+From xen-devel-bounces@lists.xen.org Fri Jul 27 08:08:14 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 27 Jul 2012 08:08:14 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1Sueee-0000Hb-Pb
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 27 Jul 2012 08:08:14 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1Sueay-0000AZ-I4; Fri, 27 Jul 2012 07:04:20 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <JBeulich@suse.com>) id 1Sueax-0000AN-2F
+       for xen-devel@lists.xensource.com; Fri, 27 Jul 2012 07:04:19 +0000
+Received: from [85.158.139.83:9119] by server-5.bemta-5.messagelabs.com id
+       F1/51-02722-27D32105; Fri, 27 Jul 2012 07:04:18 +0000
+X-Env-Sender: JBeulich@suse.com
+X-Msg-Ref: server-8.tower-182.messagelabs.com!1343372657!17628410!1
+X-Originating-IP: [130.57.49.28]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogMTMwLjU3LjQ5LjI4ID0+IDM4NTU=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.2; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 27991 invoked from network); 27 Jul 2012 07:04:17 -0000
+Received: from nat28.tlf.novell.com (HELO nat28.tlf.novell.com) (130.57.49.28)
+       by server-8.tower-182.messagelabs.com with SMTP;
+       27 Jul 2012 07:04:17 -0000
+Received: from EMEA1-MTA by nat28.tlf.novell.com
+       with Novell_GroupWise; Fri, 27 Jul 2012 08:04:16 +0100
+Message-Id: <5012598C0200007800090DB9@nat28.tlf.novell.com>
+X-Mailer: Novell GroupWise Internet Agent 12.0.0 
+Date: Fri, 27 Jul 2012 08:04:12 +0100
+From: "Jan Beulich" <JBeulich@suse.com>
+To: "Stefano Stabellini" <stefano.stabellini@eu.citrix.com>,
+       <linux-kernel@vger.kernel.org>
+References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
+       <1343316846-25860-17-git-send-email-stefano.stabellini@eu.citrix.com>
+In-Reply-To: <1343316846-25860-17-git-send-email-stefano.stabellini@eu.citrix.com>
+Mime-Version: 1.0
+Content-Disposition: inline
+Cc: xen-devel@lists.xensource.com, linaro-dev@lists.linaro.org,
+       Ian.Campbell@citrix.com, arnd@arndb.de, konrad.wilk@oracle.com,
+       catalin.marinas@arm.com, tim@xen.org, linux-arm-kernel@lists.infradead.org
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 17/24] xen: allow privcmd for HVM guests
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+>>> On 26.07.12 at 17:33, Stefano Stabellini <stefano.stabellini@eu.citrix.com> wrote:
+> In order for privcmd mmap to work correctly, xen_remap_domain_mfn_range
+> needs to be implemented for HVM guests.
+> If it is not, mmap is going to fail later on.
+
+Somehow, for me at least, this description doesn't connect to the
+actual change.
+
+> Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+> ---
+>  drivers/xen/privcmd.c |    4 ----
+>  1 files changed, 0 insertions(+), 4 deletions(-)
+> 
+> diff --git a/drivers/xen/privcmd.c b/drivers/xen/privcmd.c
+> index ccee0f1..85226cb 100644
+> --- a/drivers/xen/privcmd.c
+> +++ b/drivers/xen/privcmd.c
+> @@ -380,10 +380,6 @@ static struct vm_operations_struct privcmd_vm_ops = {
+>  
+>  static int privcmd_mmap(struct file *file, struct vm_area_struct *vma)
+>  {
+> -    /* Unsupported for auto-translate guests. */
+> -    if (xen_feature(XENFEAT_auto_translated_physmap))
+> -            return -ENOSYS;
+> -
+
+Is this safe on x86?
+
+Jan
+
+>      /* DONTCOPY is essential for Xen because copy_page_range doesn't know
+>       * how to recreate these mappings */
+>      vma->vm_flags |= VM_RESERVED | VM_IO | VM_DONTCOPY | VM_PFNMAP;
+
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<50128FE6.5070109@codeaurora.org> b/config/examples/test/corpus/<50128FE6.5070109@codeaurora.org>
new file mode 100644 (file)
index 0000000..4019f11
--- /dev/null
@@ -0,0 +1,136 @@
+From xen-devel-bounces@lists.xen.org Fri Jul 27 14:00:58 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 27 Jul 2012 14:00:58 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SukA0-0001Yu-A9
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 27 Jul 2012 14:00:58 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1Suk5d-0007Cv-Ub; Fri, 27 Jul 2012 12:56:21 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <cov@codeaurora.org>) id 1Suk5c-0007Cq-Nt
+       for xen-devel@lists.xensource.com; Fri, 27 Jul 2012 12:56:20 +0000
+Received: from [85.158.138.51:42208] by server-8.bemta-3.messagelabs.com id
+       85/61-30925-3FF82105; Fri, 27 Jul 2012 12:56:19 +0000
+X-Env-Sender: cov@codeaurora.org
+X-Msg-Ref: server-4.tower-174.messagelabs.com!1343393777!29110783!1
+X-Originating-IP: [199.106.114.251]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogMTk5LjEwNi4xMTQuMjUxID0+IDE5MzI0OQ==\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.2; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 510 invoked from network); 27 Jul 2012 12:56:18 -0000
+Received: from wolverine02.qualcomm.com (HELO wolverine02.qualcomm.com)
+       (199.106.114.251)
+       by server-4.tower-174.messagelabs.com with DHE-RSA-AES256-SHA encrypted
+       SMTP; 27 Jul 2012 12:56:18 -0000
+X-IronPort-AV: E=McAfee;i="5400,1158,6784"; a="212808743"
+Received: from pdmz-ns-snip_114_130.qualcomm.com (HELO mostmsg01.qualcomm.com)
+       ([199.106.114.130])
+       by wolverine02.qualcomm.com with ESMTP/TLS/DHE-RSA-AES256-SHA;
+       27 Jul 2012 05:56:09 -0700
+Received: from [10.228.68.45] (pdmz-ns-snip_218_1.qualcomm.com [192.168.218.1])
+       by mostmsg01.qualcomm.com (Postfix) with ESMTPA id 456DC10004B7;
+       Fri, 27 Jul 2012 05:56:07 -0700 (PDT)
+Message-ID: <50128FE6.5070109@codeaurora.org>
+Date: Fri, 27 Jul 2012 08:56:06 -0400
+From: Christopher Covington <cov@codeaurora.org>
+User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US;
+       rv:1.9.2.13) Gecko/20101208 Thunderbird/3.1.7
+MIME-Version: 1.0
+To: Ian Campbell <Ian.Campbell@citrix.com>
+References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>      
+       <1343316846-25860-2-git-send-email-stefano.stabellini@eu.citrix.com>    
+       <50119856.2020206@codeaurora.org>
+       <1343380764.6812.108.camel@zakaz.uk.xensource.com>
+In-Reply-To: <1343380764.6812.108.camel@zakaz.uk.xensource.com>
+Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
+       "linaro-dev@lists.linaro.org" <linaro-dev@lists.linaro.org>,
+       "arnd@arndb.de" <arnd@arndb.de>,
+       "konrad.wilk@oracle.com" <konrad.wilk@oracle.com>,
+       "catalin.marinas@arm.com" <catalin.marinas@arm.com>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>,
+       "Tim \(Xen.org\)" <tim@xen.org>,
+       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
+       "linux-arm-kernel@lists.infradead.org"
+       <linux-arm-kernel@lists.infradead.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 02/24] xen/arm: hypercalls
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On 07/27/2012 05:19 AM, Ian Campbell wrote:
+> On Thu, 2012-07-26 at 20:19 +0100, Christopher Covington wrote:
+>> Hi Stefano,
+>>
+>> On 07/26/2012 11:33 AM, Stefano Stabellini wrote:
+>>> Use r12 to pass the hypercall number to the hypervisor.
+>>>
+>>> We need a register to pass the hypercall number because we might not
+>>> know it at compile time and HVC only takes an immediate argument.
+>>
+>> You're not going to JIT assemble the appropriate HVC instruction? Darn.
+> 
+> ;-)
+> 
+>> How many call numbers are there, though? 8?
+> 
+> The maximum currently defined hypercall number is 55, although there are
+> some small gaps so there's actually more like 45 in total.
+> 
+>>  It seems like it'd be
+>> reasonable to take the approach that seems to be favored for MRC/MCR
+>> instructions, using a function containing switch statement that chooses
+>> between several inline assembly instructions based off an enum passed to
+>> the function. See for example arch_timer_reg_read in
+>> arch/arm/kernel/arch_timer.c.
+> 
+> I don't think it is feasible with this number of hypercalls, even
+> accepting that in many cases the number will be a constant so gcc can
+> likely optimise almost all of it away.
+> 
+> Is there something wrong with the r12 based approach?
+
+Only that you're defining a custom interface for something that there is
+a potentially more standard interface for. I just wanted to double check
+that all the ways of using the potentially more standard interface had
+been explored and found to be unreasonable.
+
+Christopher
+
+-- 
+Employee of Qualcomm Innovation Center, Inc.
+Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<50197527.3070007@gmail.com> b/config/examples/test/corpus/<50197527.3070007@gmail.com>
new file mode 100644 (file)
index 0000000..b53499c
--- /dev/null
@@ -0,0 +1,308 @@
+From xen-devel-bounces@lists.xen.org Wed Aug 01 21:56:30 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 01 Aug 2012 21:56:30 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1Swfxz-0008Ak-Sh
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 01 Aug 2012 21:56:30 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1Swfsm-00088N-Kd; Wed, 01 Aug 2012 20:51:04 +0000
+Received: from mail27.messagelabs.com ([193.109.254.147])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <robherring2@gmail.com>) id 1SwdiA-0006Lv-Mn
+       for xen-devel@lists.xensource.com; Wed, 01 Aug 2012 18:31:58 +0000
+X-Env-Sender: robherring2@gmail.com
+X-Msg-Ref: server-9.tower-27.messagelabs.com!1343845675!10809533!1
+X-Originating-IP: [209.85.160.171]
+X-SpamReason: No, hits=0.3 required=7.0 tests=ML_RADAR_SPEW_LINKS_14,
+       RCVD_BY_IP,spamassassin: 
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.2; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 27817 invoked from network); 1 Aug 2012 18:27:57 -0000
+Received: from mail-gh0-f171.google.com (HELO mail-gh0-f171.google.com)
+       (209.85.160.171)
+       by server-9.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
+       1 Aug 2012 18:27:57 -0000
+Received: by ghy10 with SMTP id 10so9575727ghy.30
+       for <xen-devel@lists.xensource.com>;
+       Wed, 01 Aug 2012 11:27:55 -0700 (PDT)
+DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
+       h=message-id:date:from:user-agent:mime-version:to:cc:subject
+       :references:in-reply-to:content-type:content-transfer-encoding;
+       bh=B7/1KGcZ+7wyZ3ZOZ6DKam10uMkJthOTWOS+dBdsvYE=;
+       b=xc+y3+CG6GTtfEX4PlQ2t6lnqhlCuXMzKIhEYCErQeBdSwoUctECKghU1dXRgpZvdF
+       t+d6A9EmqSk6j5DsehAlxCPbaa+4VmblvuUO8gGuaGBhUs1zHAfCuwvXiXONnkxptTtO
+       OnVnmOICorzLBKx5oFoLU8wNCYOrZrqgG2MS8Hsl/zkZMYsQ5u0+L1wQffInFgsERQcU
+       PUiCKXK5MhErjzFLyDV/By4Go1vgfP5bjWxqDzqwWbV0uYoPoSFDHSX5lzdhjYhVx5tg
+       ZHdUVTV1VA2kXM3KBQwsxJBCDFp2F0wypY67dBQMH/hJqY7KjQ1susDv4C0J9kFUFx6V
+       PaTw==
+Received: by 10.60.29.228 with SMTP id n4mr30191391oeh.27.1343845675511;
+       Wed, 01 Aug 2012 11:27:55 -0700 (PDT)
+Received: from [10.10.10.90] ([173.226.190.126])
+       by mx.google.com with ESMTPS id hd10sm3168007obc.8.2012.08.01.11.27.53
+       (version=SSLv3 cipher=OTHER); Wed, 01 Aug 2012 11:27:53 -0700 (PDT)
+Message-ID: <50197527.3070007@gmail.com>
+Date: Wed, 01 Aug 2012 13:27:51 -0500
+From: Rob Herring <robherring2@gmail.com>
+User-Agent: Mozilla/5.0 (X11; Linux x86_64;
+       rv:14.0) Gecko/20120714 Thunderbird/14.0
+MIME-Version: 1.0
+To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
+       <1343316846-25860-1-git-send-email-stefano.stabellini@eu.citrix.com>
+In-Reply-To: <1343316846-25860-1-git-send-email-stefano.stabellini@eu.citrix.com>
+X-Mailman-Approved-At: Wed, 01 Aug 2012 20:51:02 +0000
+Cc: xen-devel@lists.xensource.com, linaro-dev@lists.linaro.org,
+       Ian.Campbell@citrix.com, arnd@arndb.de, konrad.wilk@oracle.com,
+       catalin.marinas@arm.com, tim@xen.org, linux-kernel@vger.kernel.org,
+       linux-arm-kernel@lists.infradead.org
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,FREEMAIL_FROM,
+       RCVD_IN_DNSWL_MED,T_DKIM_INVALID,T_RP_MATCHES_RCVD autolearn=unavailable
+       version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 01/24] arm: initial Xen support
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On 07/26/2012 10:33 AM, Stefano Stabellini wrote:
+> - Basic hypervisor.h and interface.h definitions.
+> - Skelethon enlighten.c, set xen_start_info to an empty struct.
+> - Do not limit xen_initial_domain to PV guests.
+> 
+> The new code only compiles when CONFIG_XEN is set, that is going to be
+> added to arch/arm/Kconfig in a later patch.
+> 
+> Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+> ---
+>  arch/arm/Makefile                     |    1 +
+>  arch/arm/include/asm/hypervisor.h     |    6 +++
+>  arch/arm/include/asm/xen/hypervisor.h |   19 ++++++++++
+>  arch/arm/include/asm/xen/interface.h  |   64 +++++++++++++++++++++++++++++++++
+
+These headers don't seem particularly ARM specific. Could they be moved
+to asm-generic or include/linux?
+
+Rob
+
+>  arch/arm/xen/Makefile                 |    1 +
+>  arch/arm/xen/enlighten.c              |   35 ++++++++++++++++++
+>  include/xen/xen.h                     |    2 +-
+>  7 files changed, 127 insertions(+), 1 deletions(-)
+>  create mode 100644 arch/arm/include/asm/hypervisor.h
+>  create mode 100644 arch/arm/include/asm/xen/hypervisor.h
+>  create mode 100644 arch/arm/include/asm/xen/interface.h
+>  create mode 100644 arch/arm/xen/Makefile
+>  create mode 100644 arch/arm/xen/enlighten.c
+> 
+> diff --git a/arch/arm/Makefile b/arch/arm/Makefile
+> index 0298b00..70aaa82 100644
+> --- a/arch/arm/Makefile
+> +++ b/arch/arm/Makefile
+> @@ -246,6 +246,7 @@ endif
+>  core-$(CONFIG_FPE_NWFPE)    += arch/arm/nwfpe/
+>  core-$(CONFIG_FPE_FASTFPE)  += $(FASTFPE_OBJ)
+>  core-$(CONFIG_VFP)          += arch/arm/vfp/
+> +core-$(CONFIG_XEN)          += arch/arm/xen/
+>  
+>  # If we have a machine-specific directory, then include it in the build.
+>  core-y                              += arch/arm/kernel/ arch/arm/mm/ arch/arm/common/
+> diff --git a/arch/arm/include/asm/hypervisor.h b/arch/arm/include/asm/hypervisor.h
+> new file mode 100644
+> index 0000000..b90d9e5
+> --- /dev/null
+> +++ b/arch/arm/include/asm/hypervisor.h
+> @@ -0,0 +1,6 @@
+> +#ifndef _ASM_ARM_HYPERVISOR_H
+> +#define _ASM_ARM_HYPERVISOR_H
+> +
+> +#include <asm/xen/hypervisor.h>
+> +
+> +#endif
+> diff --git a/arch/arm/include/asm/xen/hypervisor.h b/arch/arm/include/asm/xen/hypervisor.h
+> new file mode 100644
+> index 0000000..d7ab99a
+> --- /dev/null
+> +++ b/arch/arm/include/asm/xen/hypervisor.h
+> @@ -0,0 +1,19 @@
+> +#ifndef _ASM_ARM_XEN_HYPERVISOR_H
+> +#define _ASM_ARM_XEN_HYPERVISOR_H
+> +
+> +extern struct shared_info *HYPERVISOR_shared_info;
+> +extern struct start_info *xen_start_info;
+> +
+> +/* Lazy mode for batching updates / context switch */
+> +enum paravirt_lazy_mode {
+> +    PARAVIRT_LAZY_NONE,
+> +    PARAVIRT_LAZY_MMU,
+> +    PARAVIRT_LAZY_CPU,
+> +};
+> +
+> +static inline enum paravirt_lazy_mode paravirt_get_lazy_mode(void)
+> +{
+> +    return PARAVIRT_LAZY_NONE;
+> +}
+> +
+> +#endif /* _ASM_ARM_XEN_HYPERVISOR_H */
+> diff --git a/arch/arm/include/asm/xen/interface.h b/arch/arm/include/asm/xen/interface.h
+> new file mode 100644
+> index 0000000..6c3ab59
+> --- /dev/null
+> +++ b/arch/arm/include/asm/xen/interface.h
+> @@ -0,0 +1,64 @@
+> +/******************************************************************************
+> + * Guest OS interface to ARM Xen.
+> + *
+> + * Stefano Stabellini <stefano.stabellini@eu.citrix.com>, Citrix, 2011
+> + */
+> +
+> +#ifndef _ASM_ARM_XEN_INTERFACE_H
+> +#define _ASM_ARM_XEN_INTERFACE_H
+> +
+> +#include <linux/types.h>
+> +
+> +#define __DEFINE_GUEST_HANDLE(name, type) \
+> +    typedef type * __guest_handle_ ## name
+> +
+> +#define DEFINE_GUEST_HANDLE_STRUCT(name) \
+> +    __DEFINE_GUEST_HANDLE(name, struct name)
+> +#define DEFINE_GUEST_HANDLE(name) __DEFINE_GUEST_HANDLE(name, name)
+> +#define GUEST_HANDLE(name)        __guest_handle_ ## name
+> +
+> +#define set_xen_guest_handle(hnd, val)                      \
+> +    do {                                            \
+> +            if (sizeof(hnd) == 8)                   \
+> +                    *(uint64_t *)&(hnd) = 0;        \
+> +            (hnd) = val;                            \
+> +    } while (0)
+> +
+> +#ifndef __ASSEMBLY__
+> +/* Guest handles for primitive C types. */
+> +__DEFINE_GUEST_HANDLE(uchar, unsigned char);
+> +__DEFINE_GUEST_HANDLE(uint,  unsigned int);
+> +__DEFINE_GUEST_HANDLE(ulong, unsigned long);
+> +DEFINE_GUEST_HANDLE(char);
+> +DEFINE_GUEST_HANDLE(int);
+> +DEFINE_GUEST_HANDLE(long);
+> +DEFINE_GUEST_HANDLE(void);
+> +DEFINE_GUEST_HANDLE(uint64_t);
+> +DEFINE_GUEST_HANDLE(uint32_t);
+> +
+> +/* Maximum number of virtual CPUs in multi-processor guests. */
+> +#define MAX_VIRT_CPUS 1
+> +
+> +struct arch_vcpu_info { };
+> +struct arch_shared_info { };
+> +
+> +/* XXX: Move pvclock definitions some place arch independent */
+> +struct pvclock_vcpu_time_info {
+> +    u32   version;
+> +    u32   pad0;
+> +    u64   tsc_timestamp;
+> +    u64   system_time;
+> +    u32   tsc_to_system_mul;
+> +    s8    tsc_shift;
+> +    u8    flags;
+> +    u8    pad[2];
+> +} __attribute__((__packed__)); /* 32 bytes */
+> +
+> +struct pvclock_wall_clock {
+> +    u32   version;
+> +    u32   sec;
+> +    u32   nsec;
+> +} __attribute__((__packed__));
+> +#endif
+> +
+> +#endif /* _ASM_ARM_XEN_INTERFACE_H */
+> diff --git a/arch/arm/xen/Makefile b/arch/arm/xen/Makefile
+> new file mode 100644
+> index 0000000..0bad594
+> --- /dev/null
+> +++ b/arch/arm/xen/Makefile
+> @@ -0,0 +1 @@
+> +obj-y               := enlighten.o
+> diff --git a/arch/arm/xen/enlighten.c b/arch/arm/xen/enlighten.c
+> new file mode 100644
+> index 0000000..d27c2a6
+> --- /dev/null
+> +++ b/arch/arm/xen/enlighten.c
+> @@ -0,0 +1,35 @@
+> +#include <xen/xen.h>
+> +#include <xen/interface/xen.h>
+> +#include <xen/interface/memory.h>
+> +#include <xen/platform_pci.h>
+> +#include <asm/xen/hypervisor.h>
+> +#include <asm/xen/hypercall.h>
+> +#include <linux/module.h>
+> +
+> +struct start_info _xen_start_info;
+> +struct start_info *xen_start_info = &_xen_start_info;
+> +EXPORT_SYMBOL_GPL(xen_start_info);
+> +
+> +enum xen_domain_type xen_domain_type = XEN_NATIVE;
+> +EXPORT_SYMBOL_GPL(xen_domain_type);
+> +
+> +struct shared_info xen_dummy_shared_info;
+> +struct shared_info *HYPERVISOR_shared_info = (void *)&xen_dummy_shared_info;
+> +
+> +DEFINE_PER_CPU(struct vcpu_info *, xen_vcpu);
+> +
+> +/* XXX: to be removed */
+> +__read_mostly int xen_have_vector_callback;
+> +EXPORT_SYMBOL_GPL(xen_have_vector_callback);
+> +
+> +int xen_platform_pci_unplug = XEN_UNPLUG_ALL;
+> +EXPORT_SYMBOL_GPL(xen_platform_pci_unplug);
+> +
+> +int xen_remap_domain_mfn_range(struct vm_area_struct *vma,
+> +                           unsigned long addr,
+> +                           unsigned long mfn, int nr,
+> +                           pgprot_t prot, unsigned domid)
+> +{
+> +    return -ENOSYS;
+> +}
+> +EXPORT_SYMBOL_GPL(xen_remap_domain_mfn_range);
+> diff --git a/include/xen/xen.h b/include/xen/xen.h
+> index a164024..2c0d3a5 100644
+> --- a/include/xen/xen.h
+> +++ b/include/xen/xen.h
+> @@ -23,7 +23,7 @@ extern enum xen_domain_type xen_domain_type;
+>  #include <xen/interface/xen.h>
+>  #include <asm/xen/hypervisor.h>
+>  
+> -#define xen_initial_domain()        (xen_pv_domain() && \
+> +#define xen_initial_domain()        (xen_domain() && \
+>                               xen_start_info->flags & SIF_INITDOMAIN)
+>  #else  /* !CONFIG_XEN_DOM0 */
+>  #define xen_initial_domain()        (0)
+> 
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<50224B7402000078000937DA@nat28.tlf.novell.com> b/config/examples/test/corpus/<50224B7402000078000937DA@nat28.tlf.novell.com>
new file mode 100644 (file)
index 0000000..e741585
--- /dev/null
@@ -0,0 +1,141 @@
+From xen-devel-bounces@lists.xen.org Wed Aug 08 10:24:45 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 08 Aug 2012 10:24:45 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1Sz2VL-0001jS-Gw
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 08 Aug 2012 10:24:45 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1Sz2RH-0003p3-Iv; Wed, 08 Aug 2012 09:20:27 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <JBeulich@suse.com>) id 1Sz2RF-0003ow-AZ
+       for xen-devel@lists.xen.org; Wed, 08 Aug 2012 09:20:25 +0000
+Received: from [85.158.139.83:49835] by server-7.bemta-5.messagelabs.com id
+       74/6A-00857-85F22205; Wed, 08 Aug 2012 09:20:24 +0000
+X-Env-Sender: JBeulich@suse.com
+X-Msg-Ref: server-2.tower-182.messagelabs.com!1344417622!30805018!1
+X-Originating-IP: [130.57.49.28]
+X-SpamReason: No, hits=0.8 required=7.0 tests=BODY_RANDOM_LONG,
+       MAILTO_TO_SPAM_ADDR
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.2; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 27909 invoked from network); 8 Aug 2012 09:20:22 -0000
+Received: from nat28.tlf.novell.com (HELO nat28.tlf.novell.com) (130.57.49.28)
+       by server-2.tower-182.messagelabs.com with SMTP;
+       8 Aug 2012 09:20:22 -0000
+Received: from EMEA1-MTA by nat28.tlf.novell.com
+       with Novell_GroupWise; Wed, 08 Aug 2012 10:20:21 +0100
+Message-Id: <50224B7402000078000937DA@nat28.tlf.novell.com>
+X-Mailer: Novell GroupWise Internet Agent 12.0.0 
+Date: Wed, 08 Aug 2012 10:20:20 +0100
+From: "Jan Beulich" <JBeulich@suse.com>
+To: "tupeng212" <tupeng212@gmail.com>
+References: <201208070018394210381@gmail.com>
+In-Reply-To: <201208070018394210381@gmail.com>
+Mime-Version: 1.0
+Content-Disposition: inline
+Cc: xen-devel <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] Big Bug:Time in VM running on xen goes slower
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+>>> On 07.08.12 at 17:44, tupeng212 <tupeng212@gmail.com> wrote:
+> 2 Xen
+> vmx_vmexit_handler  --> ......... --> handle_rtc_io  --> rtc_ioport_write  --> 
+> rtc_timer_update --> set RTC's REG_A to a high rate--> create_periodic_time(disable 
+> the former timer, and init a new one)
+> Win7 is installed in the vm. This calling path is executed so frequent that 
+> may come down to set the RTC's REG_A hundreds of times every second but with 
+> the same rate(976.562us(1024HZ)), it is so abnormal to me to see such 
+> behavior.
+
+_If_ the problem is merely with the high rate of calls to
+create_periodic_time(), I think this could be taken care of by
+avoiding the call (and perhaps the call to rtc_timer_update() in
+the first place) by checking whether anything actually changes
+due to the current write. I don't think, however, that this would
+help much, as the high rate of port accesses (and hence traps
+into the hypervisor) would remain. It might, nevertheless, get
+your immediate problem of the time slowing down taken care of
+if that is caused inside Xen (but the cause here may as well be in
+the Windows kernel).
+
+> 3 OS
+> I have tried to find why the win7 setted RTC's regA so frequently. finally 
+> got the result, all that comes from a function: NtSetTimerResolution --> 
+> 0x70,0x71
+> when I attached windbg into the guest OS, I also found the source, they are 
+> all called from a upper system call that comes from JVM(Java Virtual 
+> Machine).
+
+Getting Windows to be a little smarter and avoid the port I/O when
+doing redundant writes would of course be even better, but is
+clearly a difficult to achieve goal.
+
+> 4 JVM
+> I don't know why JVM calls NtSetTimerResolution to set the same RTC's rate 
+> down (976.562us(1024HZ)) so frequently. 
+> But found something useful, in the java source code, I found many palaces 
+> written with time.scheduleAtFixedRate(), Informations from Internet told me 
+> this function scheduleAtFixedRate demands a higher time resolution. so I 
+> guess the whole process may be this: 
+> java wants a higher time resolution timer, so it changes the RTC's rate from 
+> 15.625ms(64HZ) to 976.562us(1024HZ), after that, it reconfirms whether the 
+> time is accurate as expected, but it's sorry to get some notice it 's not 
+> accurate either. so it sets  the RTC's rate from 15.625ms(64HZ) to 
+> 976.562us(1024HZ) again and again..., at last, results in a slow system timer 
+> in vm.
+
+Now that's really the fundamental thing to find out - what makes it
+think the clock isn't accurate? Is this an artifact of scheduling (as
+the scheduler tick certainly is several milliseconds, whereas
+"accurate" here appears to require below 1ms granularity), perhaps
+as a result of the box being overloaded (i.e. the VM not being able
+to get scheduled quickly enough when the timer expires)? For that,
+did you try lowering the scheduler time slice and/or its rate limit
+(possible via command line option)? Of course doing so may have
+other undesirable side effects, but it would be worth a try.
+
+Did you further check whether the adjustments done to the
+scheduled time in create_periodic_time() are responsible for this
+conclusion of the JVM (could be effectively doubling the first
+interval if HVM_PARAM_VPT_ALIGN is set, and with the high rate
+of re-sets this could certainly have a more visible effect than
+intended)?
+
+Jan
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<5028B603.9010306@core.kaist.ac.kr> b/config/examples/test/corpus/<5028B603.9010306@core.kaist.ac.kr>
new file mode 100644 (file)
index 0000000..f2a4564
--- /dev/null
@@ -0,0 +1,95 @@
+From xen-devel-bounces@lists.xen.org Mon Aug 13 09:14:27 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Mon, 13 Aug 2012 09:14:27 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T0pn6-0007ot-6Q
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Mon, 13 Aug 2012 09:14:27 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T0piT-0004wh-Gg; Mon, 13 Aug 2012 08:09:37 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <cmkim@core.kaist.ac.kr>) id 1T0piR-0004wZ-Kz
+       for xen-devel@lists.xen.org; Mon, 13 Aug 2012 08:09:35 +0000
+Received: from [85.158.143.35:61759] by server-1.bemta-4.messagelabs.com id
+       44/16-07754-F36B8205; Mon, 13 Aug 2012 08:09:35 +0000
+X-Env-Sender: cmkim@core.kaist.ac.kr
+X-Msg-Ref: server-15.tower-21.messagelabs.com!1344845317!14454399!1
+X-Originating-IP: [143.248.147.118]
+X-SpamReason: No, hits=0.0 required=7.0 tests=
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 13862 invoked from network); 13 Aug 2012 08:08:40 -0000
+Received: from core.kaist.ac.kr (HELO core.kaist.ac.kr) (143.248.147.118)
+       by server-15.tower-21.messagelabs.com with DHE-RSA-AES256-SHA encrypted
+       SMTP; 13 Aug 2012 08:08:40 -0000
+Received: from [143.248.165.115] (az.kaist.ac.kr [143.248.165.115])
+       by core.kaist.ac.kr (8.14.4/8.14.4) with ESMTP id q7D8AKMg032462
+       for <xen-devel@lists.xen.org>; Mon, 13 Aug 2012 17:10:21 +0900
+Message-ID: <5028B603.9010306@core.kaist.ac.kr>
+Date: Mon, 13 Aug 2012 17:08:35 +0900
+From: Chulmin Kim <cmkim@core.kaist.ac.kr>
+User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64;
+       rv:14.0) Gecko/20120713 Thunderbird/14.0
+MIME-Version: 1.0
+To: xen-devel@lists.xen.org
+References: <008601cd5f45$6eff7530$4cfe5f90$@core.kaist.ac.kr>
+In-Reply-To: <008601cd5f45$6eff7530$4cfe5f90$@core.kaist.ac.kr>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Transfer-Encoding: base64
+Content-Type: text/plain; charset="utf-8"; Format="flowed"
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] maximum memory size allocated by _xmalloc
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+VGhvdWdoIHRoZSBpc3N1ZSBoYXMgYmVlbiB3cml0dGVuIG9uZSBtb250aCBhZ28sCkkgcG9zdCBt
+eSBvd24gZXhwZXJpZW5jZSBvbiBpdC4KClVuZm9ydHVuYXRlbHksIGl0IHdhcyBub3QgdGhlIG1h
+dHRlciBvZiB0aGUgcmVxdWVzdGVkIG1lbSBzaXplIG9yIAp4bWFsbG9jIGZ1bmN0aW9uLgpUaGUg
+cHJvYmxlbSB3YXMgZHVlIHRvIHRoZSBmcmVlIG1lbW9yeSBzY3J1YmJpbmcuCgpJIHNldCBteSB4
+bWFsbG9jIGNvZGUgaW4gdGhlIG1pZGRsZSBvZiB0aGUgYm9vdHVwIGNvZGUgb2YgeGVuIGFmdGVy
+IHRoZSAKZnJlZSBtZW1vcnkgc2NydWJiaW5nIGZ1bmN0aW9uLgpCdXQgdGhlIHBsYWNlbWVudCB3
+YXMgd3JvbmcuCgpBZnRlciBpIHJlbG9jYXRlZCB0aGUgY29kZSBsaW5lIGJlZm9yZSB0aGUgc2Ny
+dWJiaW5nIGZ1bmN0aW9uLAppdCB3b3JrZWQgcGVyZmVjdGx5LgoKVGhhbmtzIGZvciB5b3VyIGhl
+bHAhCgoKMjAxMi0wNy0xMSDsmKTtm4QgNjoxMywgQ2h1bG1pbiBLaW0g7JO0IOq4gDoKPiBIaSBh
+bGwsCj4KPiBJJ20gY3VycmVudGx5IGluc2VydGluZyBteSBvd24gY29kZSB0byBhZGp1c3QgdGhl
+IHNldmVyYWwgZXhpc3RpbmcgbWVtb3J5Cj4gYmFsbG9vbmluZyB3b3Jrcy4KPgo+IFRvIGFjY29t
+cGxpc2ggaXQsIEkgbWFuYWdlIHNvbWUga2luZCBvZiBzdGF0aXN0aWNzIGluIFhlbiBtZW1vcnkg
+YXJlYS4KPgo+IFVzaW5nIF94bWFsbG9jLCBJJ3ZlIGFsbG9jYXRlZCBjZXJ0YWluIHNpemUgb2Yg
+bWVtb3J5IGNodW5rIGZvciB0aGUgZGF0YQo+IHN0cnVjdHVyZS4gKCBJIHZhcmllZCBpdCBmcm9t
+IDEwa2IgdG8gMjQgTUIuKQo+Cj4gV2hlbiB0aGUgc2l6ZSBpcyBlcXVhbCB0byAyNCBNQiwgeGVu
+IHdvbid0IGJvb3QgYW55bW9yZS4gIChzdHVjayBkdXJpbmcgdGhlCj4geG1hbGxvYywgYWNjb3Jk
+aW5nIHRvIG15IGRlYnVnZ2luZy4gX3htYWxsb2MgcmV0dXJucyBOVUxMLikKPiBUaGVyZSB3YXMg
+bm8gcHJvYmxlbSB3aGVuIHRoZSBzaXplIGlzIGJlbG93IDEyTUIuCj4KPiBJcyB0aGVyZSBhbnkg
+bGltaXRhdGlvbiBzdWNoIGFzIG1heCBtZW1vcnkgc2l6ZSBmb3IgX3htYWxsb2M/Cj4KPiBJIHN1
+c3BlY3RlZCB4ZW4gaGVhcCBzaXplLCBidXQsIGl0IGlzIG5vIGxvbmdlciBhZGp1c3RhYmxlLiBS
+aWdodD8KPgo+IEkgaG9wZSBzb21lYm9keSBjYW4gZ2l2ZSBtZSBhIGNsdWUuICBUaGFua3MuCj4K
+Pgo+Cj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiBY
+ZW4tZGV2ZWwgbWFpbGluZyBsaXN0Cj4gWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKPiBodHRwOi8v
+bGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
+X19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54
+ZW4ub3JnCmh0dHA6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=
+
diff --git a/config/examples/test/corpus/<50293785020000780009484C@nat28.tlf.novell.com> b/config/examples/test/corpus/<50293785020000780009484C@nat28.tlf.novell.com>
new file mode 100644 (file)
index 0000000..90e5ec0
--- /dev/null
@@ -0,0 +1,497 @@
+From xen-devel-bounces@lists.xen.org Mon Aug 13 16:26:08 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Mon, 13 Aug 2012 16:26:08 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T0wWq-0005FL-PE
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Mon, 13 Aug 2012 16:26:08 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T0wSC-0007Gu-PR; Mon, 13 Aug 2012 15:21:16 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <JBeulich@suse.com>) id 1T0wSB-0007Gp-1k
+       for xen-devel@lists.xen.org; Mon, 13 Aug 2012 15:21:15 +0000
+Received: from [85.158.143.99:58494] by server-3.bemta-4.messagelabs.com id
+       A5/56-09529-A6B19205; Mon, 13 Aug 2012 15:21:14 +0000
+X-Env-Sender: JBeulich@suse.com
+X-Msg-Ref: server-13.tower-216.messagelabs.com!1344871272!27051170!1
+X-Originating-IP: [130.57.49.28]
+X-SpamReason: No, hits=1.1 required=7.0 tests=MAILTO_TO_SPAM_ADDR,
+       MANY_EXCLAMATIONS
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 13175 invoked from network); 13 Aug 2012 15:21:12 -0000
+Received: from nat28.tlf.novell.com (HELO nat28.tlf.novell.com) (130.57.49.28)
+       by server-13.tower-216.messagelabs.com with SMTP;
+       13 Aug 2012 15:21:12 -0000
+Received: from EMEA1-MTA by nat28.tlf.novell.com
+       with Novell_GroupWise; Mon, 13 Aug 2012 16:21:11 +0100
+Message-Id: <50293785020000780009484C@nat28.tlf.novell.com>
+X-Mailer: Novell GroupWise Internet Agent 12.0.0 
+Date: Mon, 13 Aug 2012 16:21:09 +0100
+From: "Jan Beulich" <JBeulich@suse.com>
+To: "tupeng212" <tupeng212@gmail.com>
+References: <201208070018394210381@gmail.com>,
+       <50224B7402000078000937DA@nat28.tlf.novell.com>
+       <2012081023124696835343@gmail.com>
+In-Reply-To: <2012081023124696835343@gmail.com>
+Mime-Version: 1.0
+Content-Type: multipart/mixed; boundary="=__Part7F4E0B75.1__="
+Cc: Tim Deegan <tim@xen.org>, Keir Fraser <keir@xen.org>,
+       xen-devel <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] Big Bug:Time in VM goes slower;
+ foud Solution but demand Judgement! A Interesting Story!
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+This is a MIME message. If you are reading this text, you may want to 
+consider changing to a mail reader or gateway that understands how to 
+properly handle MIME multipart messages.
+
+--=__Part7F4E0B75.1__=
+Content-Type: text/plain; charset=US-ASCII
+Content-Transfer-Encoding: quoted-printable
+Content-Disposition: inline
+
+>>> On 10.08.12 at 17:17, tupeng212 <tupeng212@gmail.com> wrote:
+> 2 Bug in xen
+> JVM is OK, so left the bug to xen, I have found both the reason and=20
+> solution. As Jan mentioned avoiding call create_periodic_time, it got =
+much=20
+> better. so I modified it like this, if the pt timer is created before,=20=
+
+> setting RegA down is just changing the period value, so I do nothing =
+except=20
+
+What you describe doesn't sound accurate (i.e. I'm getting the
+impression that you might have suppressed the call in cases
+where you shouldn't).
+
+Below/attached a first draft of a patch to fix not only this issue,
+but a few more with the RTC emulation. Would you give this a
+try?
+
+Keir, Tim, others - the change to xen/arch/x86/hvm/vpt.c really
+looks more like a hack than a solution, but I don't see another
+way without much more intrusive changes. The point is that we
+want the RTC code to decide whether to generate an interrupt
+(so that RTC_PF can become set correctly even without RTC_PIE
+getting enabled by the guest).
+
+Jan
+
+x86/HVM: assorted RTC emulation adjustments
+
+- don't call rtc_timer_update() on REG_A writes when the value didn't
+  change (doing the call always was reported to cause wall clock time
+  lagging with the JVM under Windows)
+- in the same spirit, don't call rtc_timer_update() or
+  alarm_timer_update() on REG_B writes when the respective RTC_xIE bit
+  didn't change
+- raise the RTC IRQ not only when RTC_UIE gets set while RTC_UF was
+  already set, but generalize this to alarm and periodic interrupts as
+  well
+- properly handle RTC_PF when the guest is not also setting RTC_PIE
+- also handle the two other clock bases
+
+--- a/xen/arch/x86/hvm/rtc.c
++++ b/xen/arch/x86/hvm/rtc.c
+@@ -50,11 +50,24 @@ static void rtc_set_time(RTCState *s);
+ static inline int from_bcd(RTCState *s, int a);
+ static inline int convert_hour(RTCState *s, int hour);
+=20
+-static void rtc_periodic_cb(struct vcpu *v, void *opaque)
++static void rtc_toggle_irq(RTCState *s)
++{
++    struct domain *d =3D vrtc_domain(s);
++
++    ASSERT(spin_is_locked(&s->lock));
++    s->hw.cmos_data[RTC_REG_C] |=3D RTC_IRQF;
++    hvm_isa_irq_deassert(d, RTC_IRQ);
++    hvm_isa_irq_assert(d, RTC_IRQ);
++}
++
++void rtc_periodic_interrupt(void *opaque)
+ {
+     RTCState *s =3D opaque;
++
+     spin_lock(&s->lock);
+-    s->hw.cmos_data[RTC_REG_C] |=3D 0xc0;
++    s->hw.cmos_data[RTC_REG_C] |=3D RTC_PF;
++    if ( s->hw.cmos_data[RTC_REG_B] & RTC_PIE )
++        rtc_toggle_irq(s);
+     spin_unlock(&s->lock);
+ }
+=20
+@@ -68,19 +81,25 @@ static void rtc_timer_update(RTCState *s
+     ASSERT(spin_is_locked(&s->lock));
+=20
+     period_code =3D s->hw.cmos_data[RTC_REG_A] & RTC_RATE_SELECT;
+-    if ( (period_code !=3D 0) && (s->hw.cmos_data[RTC_REG_B] & RTC_PIE) )
++    switch ( s->hw.cmos_data[RTC_REG_A] & RTC_DIV_CTL )
+     {
+-        if ( period_code <=3D 2 )
++    case RTC_REF_CLCK_32KHZ:
++        if ( (period_code !=3D 0) && (period_code <=3D 2) )
+             period_code +=3D 7;
+-
+-        period =3D 1 << (period_code - 1); /* period in 32 Khz cycles */
+-        period =3D DIV_ROUND((period * 1000000000ULL), 32768); /* period =
+in ns */
+-        create_periodic_time(v, &s->pt, period, period, RTC_IRQ,
+-                             rtc_periodic_cb, s);
+-    }
+-    else
+-    {
++        /* fall through */
++    case RTC_REF_CLCK_1MHZ:
++    case RTC_REF_CLCK_4MHZ:
++        if ( period_code !=3D 0 )
++        {
++            period =3D 1 << (period_code - 1); /* period in 32 Khz cycles =
+*/
++            period =3D DIV_ROUND(period * 1000000000ULL, 32768); /* in ns =
+*/
++            create_periodic_time(v, &s->pt, period, period, RTC_IRQ, =
+NULL, s);
++            break;
++        }
++        /* fall through */
++    default:
+         destroy_periodic_time(&s->pt);
++        break;
+     }
+ }
+=20
+@@ -144,7 +163,6 @@ static void rtc_update_timer(void *opaqu
+ static void rtc_update_timer2(void *opaque)
+ {
+     RTCState *s =3D opaque;
+-    struct domain *d =3D vrtc_domain(s);
+=20
+     spin_lock(&s->lock);
+     if (!(s->hw.cmos_data[RTC_REG_B] & RTC_SET))
+@@ -152,11 +170,7 @@ static void rtc_update_timer2(void *opaq
+         s->hw.cmos_data[RTC_REG_C] |=3D RTC_UF;
+         s->hw.cmos_data[RTC_REG_A] &=3D ~RTC_UIP;
+         if ((s->hw.cmos_data[RTC_REG_B] & RTC_UIE))
+-        {
+-            s->hw.cmos_data[RTC_REG_C] |=3D RTC_IRQF;
+-            hvm_isa_irq_deassert(d, RTC_IRQ);
+-            hvm_isa_irq_assert(d, RTC_IRQ);
+-        }
++            rtc_toggle_irq(s);
+         check_update_timer(s);
+     }
+     spin_unlock(&s->lock);
+@@ -343,7 +357,6 @@ static void alarm_timer_update(RTCState=20
+ static void rtc_alarm_cb(void *opaque)
+ {
+     RTCState *s =3D opaque;
+-    struct domain *d =3D vrtc_domain(s);
+=20
+     spin_lock(&s->lock);
+     if (!(s->hw.cmos_data[RTC_REG_B] & RTC_SET))
+@@ -351,11 +364,7 @@ static void rtc_alarm_cb(void *opaque)
+         s->hw.cmos_data[RTC_REG_C] |=3D RTC_AF;
+         /* alarm interrupt */
+         if (s->hw.cmos_data[RTC_REG_B] & RTC_AIE)
+-        {
+-            s->hw.cmos_data[RTC_REG_C] |=3D RTC_IRQF;
+-            hvm_isa_irq_deassert(d, RTC_IRQ);
+-            hvm_isa_irq_assert(d, RTC_IRQ);
+-        }
++            rtc_toggle_irq(s);
+         alarm_timer_update(s);
+     }
+     spin_unlock(&s->lock);
+@@ -365,6 +374,7 @@ static int rtc_ioport_write(void *opaque
+ {
+     RTCState *s =3D opaque;
+     struct domain *d =3D vrtc_domain(s);
++    uint32_t orig, mask;
+=20
+     spin_lock(&s->lock);
+=20
+@@ -382,6 +392,7 @@ static int rtc_ioport_write(void *opaque
+         return 0;
+     }
+=20
++    orig =3D s->hw.cmos_data[s->hw.cmos_index];
+     switch ( s->hw.cmos_index )
+     {
+     case RTC_SECONDS_ALARM:
+@@ -405,9 +416,9 @@ static int rtc_ioport_write(void *opaque
+         break;
+     case RTC_REG_A:
+         /* UIP bit is read only */
+-        s->hw.cmos_data[RTC_REG_A] =3D (data & ~RTC_UIP) |
+-            (s->hw.cmos_data[RTC_REG_A] & RTC_UIP);
+-        rtc_timer_update(s);
++        s->hw.cmos_data[RTC_REG_A] =3D (data & ~RTC_UIP) | (orig & =
+RTC_UIP);
++        if ( (data ^ orig) & (RTC_RATE_SELECT | RTC_DIV_CTL) )
++            rtc_timer_update(s);
+         break;
+     case RTC_REG_B:
+         if ( data & RTC_SET )
+@@ -415,7 +426,7 @@ static int rtc_ioport_write(void *opaque
+             /* set mode: reset UIP mode */
+             s->hw.cmos_data[RTC_REG_A] &=3D ~RTC_UIP;
+             /* adjust cmos before stopping */
+-            if (!(s->hw.cmos_data[RTC_REG_B] & RTC_SET))
++            if (!(orig & RTC_SET))
+             {
+                 s->current_tm =3D gmtime(get_localtime(d));
+                 rtc_copy_date(s);
+@@ -424,21 +435,27 @@ static int rtc_ioport_write(void *opaque
+         else
+         {
+             /* if disabling set mode, update the time */
+-            if ( s->hw.cmos_data[RTC_REG_B] & RTC_SET )
++            if ( orig & RTC_SET )
+                 rtc_set_time(s);
+         }
+-        /* if the interrupt is already set when the interrupt become
+-         * enabled, raise an interrupt immediately*/
+-        if ((data & RTC_UIE) && !(s->hw.cmos_data[RTC_REG_B] & RTC_UIE))
+-            if (s->hw.cmos_data[RTC_REG_C] & RTC_UF)
++        /*
++         * If the interrupt is already set when the interrupt becomes
++         * enabled, raise an interrupt immediately.
++         * NB: RTC_{A,P,U}IE =3D=3D RTC_{A,P,U}F respectively.
++         */
++        for ( mask =3D RTC_UIE; mask <=3D RTC_PIE; mask <<=3D 1 )
++            if ( (data & mask) && !(orig & mask) &&
++                 (s->hw.cmos_data[RTC_REG_C] & mask) )
+             {
+-                hvm_isa_irq_deassert(d, RTC_IRQ);
+-                hvm_isa_irq_assert(d, RTC_IRQ);
++                rtc_toggle_irq(s);
++                break;
+             }
+         s->hw.cmos_data[RTC_REG_B] =3D data;
+-        rtc_timer_update(s);
++        if ( (data ^ orig) & RTC_PIE )
++            rtc_timer_update(s);
+         check_update_timer(s);
+-        alarm_timer_update(s);
++        if ( (data ^ orig) & RTC_AIE )
++            alarm_timer_update(s);
+         break;
+     case RTC_REG_C:
+     case RTC_REG_D:
+--- a/xen/arch/x86/hvm/vpt.c
++++ b/xen/arch/x86/hvm/vpt.c
+@@ -22,6 +22,7 @@
+ #include <asm/hvm/vpt.h>
+ #include <asm/event.h>
+ #include <asm/apic.h>
++#include <asm/mc146818rtc.h>
+=20
+ #define mode_is(d, name) \
+     ((d)->arch.hvm_domain.params[HVM_PARAM_TIMER_MODE] =3D=3D HVMPTM_##nam=
+e)
+@@ -218,6 +219,7 @@ void pt_update_irq(struct vcpu *v)
+     struct periodic_time *pt, *temp, *earliest_pt =3D NULL;
+     uint64_t max_lag =3D -1ULL;
+     int irq, is_lapic;
++    void *pt_priv;
+=20
+     spin_lock(&v->arch.hvm_vcpu.tm_lock);
+=20
+@@ -251,13 +253,14 @@ void pt_update_irq(struct vcpu *v)
+     earliest_pt->irq_issued =3D 1;
+     irq =3D earliest_pt->irq;
+     is_lapic =3D (earliest_pt->source =3D=3D PTSRC_lapic);
++    pt_priv =3D earliest_pt->priv;
+=20
+     spin_unlock(&v->arch.hvm_vcpu.tm_lock);
+=20
+     if ( is_lapic )
+-    {
+         vlapic_set_irq(vcpu_vlapic(v), irq, 0);
+-    }
++    else if ( irq =3D=3D RTC_IRQ )
++        rtc_periodic_interrupt(pt_priv);
+     else
+     {
+         hvm_isa_irq_deassert(v->domain, irq);
+--- a/xen/include/asm-x86/hvm/vpt.h
++++ b/xen/include/asm-x86/hvm/vpt.h
+@@ -181,6 +181,7 @@ void rtc_migrate_timers(struct vcpu *v);
+ void rtc_deinit(struct domain *d);
+ void rtc_reset(struct domain *d);
+ void rtc_update_clock(struct domain *d);
++void rtc_periodic_interrupt(void *);
+=20
+ void pmtimer_init(struct vcpu *v);
+ void pmtimer_deinit(struct domain *d);
+
+
+--=__Part7F4E0B75.1__=
+Content-Type: text/plain; name="x86-hvm-rtc.patch"
+Content-Transfer-Encoding: quoted-printable
+Content-Disposition: attachment; filename="x86-hvm-rtc.patch"
+
+x86/HVM: assorted RTC emulation adjustments=0A=0A- don't call rtc_timer_upd=
+ate() on REG_A writes when the value didn't=0A  change (doing the call =
+always was reported to cause wall clock time=0A  lagging with the JVM =
+under Windows)=0A- in the same spirit, don't call rtc_timer_update() or=0A =
+ alarm_timer_update() on REG_B writes when the respective RTC_xIE bit=0A  =
+didn't change=0A- raise the RTC IRQ not only when RTC_UIE gets set while =
+RTC_UF was=0A  already set, but generalize this to alarm and periodic =
+interrupts as=0A  well=0A- properly handle RTC_PF when the guest is not =
+also setting RTC_PIE=0A- also handle the two other clock bases=0A=0A--- =
+a/xen/arch/x86/hvm/rtc.c=0A+++ b/xen/arch/x86/hvm/rtc.c=0A@@ -50,11 +50,24 =
+@@ static void rtc_set_time(RTCState *s);=0A static inline int from_bcd(RTC=
+State *s, int a);=0A static inline int convert_hour(RTCState *s, int =
+hour);=0A =0A-static void rtc_periodic_cb(struct vcpu *v, void *opaque)=0A+=
+static void rtc_toggle_irq(RTCState *s)=0A+{=0A+    struct domain *d =3D =
+vrtc_domain(s);=0A+=0A+    ASSERT(spin_is_locked(&s->lock));=0A+    =
+s->hw.cmos_data[RTC_REG_C] |=3D RTC_IRQF;=0A+    hvm_isa_irq_deassert(d, =
+RTC_IRQ);=0A+    hvm_isa_irq_assert(d, RTC_IRQ);=0A+}=0A+=0A+void =
+rtc_periodic_interrupt(void *opaque)=0A {=0A     RTCState *s =3D opaque;=0A=
++=0A     spin_lock(&s->lock);=0A-    s->hw.cmos_data[RTC_REG_C] |=3D =
+0xc0;=0A+    s->hw.cmos_data[RTC_REG_C] |=3D RTC_PF;=0A+    if ( s->hw.cmos=
+_data[RTC_REG_B] & RTC_PIE )=0A+        rtc_toggle_irq(s);=0A     =
+spin_unlock(&s->lock);=0A }=0A =0A@@ -68,19 +81,25 @@ static void =
+rtc_timer_update(RTCState *s=0A     ASSERT(spin_is_locked(&s->lock));=0A =
+=0A     period_code =3D s->hw.cmos_data[RTC_REG_A] & RTC_RATE_SELECT;=0A-  =
+  if ( (period_code !=3D 0) && (s->hw.cmos_data[RTC_REG_B] & RTC_PIE) =
+)=0A+    switch ( s->hw.cmos_data[RTC_REG_A] & RTC_DIV_CTL )=0A     {=0A-  =
+      if ( period_code <=3D 2 )=0A+    case RTC_REF_CLCK_32KHZ:=0A+        =
+if ( (period_code !=3D 0) && (period_code <=3D 2) )=0A             =
+period_code +=3D 7;=0A-=0A-        period =3D 1 << (period_code - 1); /* =
+period in 32 Khz cycles */=0A-        period =3D DIV_ROUND((period * =
+1000000000ULL), 32768); /* period in ns */=0A-        create_periodic_time(=
+v, &s->pt, period, period, RTC_IRQ,=0A-                             =
+rtc_periodic_cb, s);=0A-    }=0A-    else=0A-    {=0A+        /* fall =
+through */=0A+    case RTC_REF_CLCK_1MHZ:=0A+    case RTC_REF_CLCK_4MHZ:=0A=
++        if ( period_code !=3D 0 )=0A+        {=0A+            period =3D =
+1 << (period_code - 1); /* period in 32 Khz cycles */=0A+            =
+period =3D DIV_ROUND(period * 1000000000ULL, 32768); /* in ns */=0A+       =
+     create_periodic_time(v, &s->pt, period, period, RTC_IRQ, NULL, =
+s);=0A+            break;=0A+        }=0A+        /* fall through */=0A+   =
+ default:=0A         destroy_periodic_time(&s->pt);=0A+        break;=0A   =
+  }=0A }=0A =0A@@ -144,7 +163,6 @@ static void rtc_update_timer(void =
+*opaqu=0A static void rtc_update_timer2(void *opaque)=0A {=0A     RTCState =
+*s =3D opaque;=0A-    struct domain *d =3D vrtc_domain(s);=0A =0A     =
+spin_lock(&s->lock);=0A     if (!(s->hw.cmos_data[RTC_REG_B] & RTC_SET))=0A=
+@@ -152,11 +170,7 @@ static void rtc_update_timer2(void *opaq=0A         =
+s->hw.cmos_data[RTC_REG_C] |=3D RTC_UF;=0A         s->hw.cmos_data[RTC_REG_=
+A] &=3D ~RTC_UIP;=0A         if ((s->hw.cmos_data[RTC_REG_B] & RTC_UIE))=0A=
+-        {=0A-            s->hw.cmos_data[RTC_REG_C] |=3D RTC_IRQF;=0A-    =
+        hvm_isa_irq_deassert(d, RTC_IRQ);=0A-            hvm_isa_irq_assert=
+(d, RTC_IRQ);=0A-        }=0A+            rtc_toggle_irq(s);=0A         =
+check_update_timer(s);=0A     }=0A     spin_unlock(&s->lock);=0A@@ -343,7 =
++357,6 @@ static void alarm_timer_update(RTCState =0A static void =
+rtc_alarm_cb(void *opaque)=0A {=0A     RTCState *s =3D opaque;=0A-    =
+struct domain *d =3D vrtc_domain(s);=0A =0A     spin_lock(&s->lock);=0A    =
+ if (!(s->hw.cmos_data[RTC_REG_B] & RTC_SET))=0A@@ -351,11 +364,7 @@ =
+static void rtc_alarm_cb(void *opaque)=0A         s->hw.cmos_data[RTC_REG_C=
+] |=3D RTC_AF;=0A         /* alarm interrupt */=0A         if (s->hw.cmos_d=
+ata[RTC_REG_B] & RTC_AIE)=0A-        {=0A-            s->hw.cmos_data[RTC_R=
+EG_C] |=3D RTC_IRQF;=0A-            hvm_isa_irq_deassert(d, RTC_IRQ);=0A-  =
+          hvm_isa_irq_assert(d, RTC_IRQ);=0A-        }=0A+            =
+rtc_toggle_irq(s);=0A         alarm_timer_update(s);=0A     }=0A     =
+spin_unlock(&s->lock);=0A@@ -365,6 +374,7 @@ static int rtc_ioport_write(vo=
+id *opaque=0A {=0A     RTCState *s =3D opaque;=0A     struct domain *d =3D =
+vrtc_domain(s);=0A+    uint32_t orig, mask;=0A =0A     spin_lock(&s->lock);=
+=0A =0A@@ -382,6 +392,7 @@ static int rtc_ioport_write(void *opaque=0A     =
+    return 0;=0A     }=0A =0A+    orig =3D s->hw.cmos_data[s->hw.cmos_index=
+];=0A     switch ( s->hw.cmos_index )=0A     {=0A     case RTC_SECONDS_ALAR=
+M:=0A@@ -405,9 +416,9 @@ static int rtc_ioport_write(void *opaque=0A       =
+  break;=0A     case RTC_REG_A:=0A         /* UIP bit is read only */=0A-  =
+      s->hw.cmos_data[RTC_REG_A] =3D (data & ~RTC_UIP) |=0A-            =
+(s->hw.cmos_data[RTC_REG_A] & RTC_UIP);=0A-        rtc_timer_update(s);=0A+=
+        s->hw.cmos_data[RTC_REG_A] =3D (data & ~RTC_UIP) | (orig & =
+RTC_UIP);=0A+        if ( (data ^ orig) & (RTC_RATE_SELECT | RTC_DIV_CTL) =
+)=0A+            rtc_timer_update(s);=0A         break;=0A     case =
+RTC_REG_B:=0A         if ( data & RTC_SET )=0A@@ -415,7 +426,7 @@ static =
+int rtc_ioport_write(void *opaque=0A             /* set mode: reset UIP =
+mode */=0A             s->hw.cmos_data[RTC_REG_A] &=3D ~RTC_UIP;=0A        =
+     /* adjust cmos before stopping */=0A-            if (!(s->hw.cmos_data=
+[RTC_REG_B] & RTC_SET))=0A+            if (!(orig & RTC_SET))=0A           =
+  {=0A                 s->current_tm =3D gmtime(get_localtime(d));=0A      =
+           rtc_copy_date(s);=0A@@ -424,21 +435,27 @@ static int rtc_ioport_=
+write(void *opaque=0A         else=0A         {=0A             /* if =
+disabling set mode, update the time */=0A-            if ( s->hw.cmos_data[=
+RTC_REG_B] & RTC_SET )=0A+            if ( orig & RTC_SET )=0A             =
+    rtc_set_time(s);=0A         }=0A-        /* if the interrupt is =
+already set when the interrupt become=0A-         * enabled, raise an =
+interrupt immediately*/=0A-        if ((data & RTC_UIE) && !(s->hw.cmos_dat=
+a[RTC_REG_B] & RTC_UIE))=0A-            if (s->hw.cmos_data[RTC_REG_C] & =
+RTC_UF)=0A+        /*=0A+         * If the interrupt is already set when =
+the interrupt becomes=0A+         * enabled, raise an interrupt immediately=
+.=0A+         * NB: RTC_{A,P,U}IE =3D=3D RTC_{A,P,U}F respectively.=0A+    =
+     */=0A+        for ( mask =3D RTC_UIE; mask <=3D RTC_PIE; mask <<=3D 1 =
+)=0A+            if ( (data & mask) && !(orig & mask) &&=0A+               =
+  (s->hw.cmos_data[RTC_REG_C] & mask) )=0A             {=0A-               =
+ hvm_isa_irq_deassert(d, RTC_IRQ);=0A-                hvm_isa_irq_assert(d,=
+ RTC_IRQ);=0A+                rtc_toggle_irq(s);=0A+                =
+break;=0A             }=0A         s->hw.cmos_data[RTC_REG_B] =3D =
+data;=0A-        rtc_timer_update(s);=0A+        if ( (data ^ orig) & =
+RTC_PIE )=0A+            rtc_timer_update(s);=0A         check_update_timer=
+(s);=0A-        alarm_timer_update(s);=0A+        if ( (data ^ orig) & =
+RTC_AIE )=0A+            alarm_timer_update(s);=0A         break;=0A     =
+case RTC_REG_C:=0A     case RTC_REG_D:=0A--- a/xen/arch/x86/hvm/vpt.c=0A+++=
+ b/xen/arch/x86/hvm/vpt.c=0A@@ -22,6 +22,7 @@=0A #include <asm/hvm/vpt.h>=
+=0A #include <asm/event.h>=0A #include <asm/apic.h>=0A+#include <asm/mc1468=
+18rtc.h>=0A =0A #define mode_is(d, name) \=0A     ((d)->arch.hvm_domain.par=
+ams[HVM_PARAM_TIMER_MODE] =3D=3D HVMPTM_##name)=0A@@ -218,6 +219,7 @@ void =
+pt_update_irq(struct vcpu *v)=0A     struct periodic_time *pt, *temp, =
+*earliest_pt =3D NULL;=0A     uint64_t max_lag =3D -1ULL;=0A     int irq, =
+is_lapic;=0A+    void *pt_priv;=0A =0A     spin_lock(&v->arch.hvm_vcpu.tm_l=
+ock);=0A =0A@@ -251,13 +253,14 @@ void pt_update_irq(struct vcpu *v)=0A    =
+ earliest_pt->irq_issued =3D 1;=0A     irq =3D earliest_pt->irq;=0A     =
+is_lapic =3D (earliest_pt->source =3D=3D PTSRC_lapic);=0A+    pt_priv =3D =
+earliest_pt->priv;=0A =0A     spin_unlock(&v->arch.hvm_vcpu.tm_lock);=0A =
+=0A     if ( is_lapic )=0A-    {=0A         vlapic_set_irq(vcpu_vlapic(v), =
+irq, 0);=0A-    }=0A+    else if ( irq =3D=3D RTC_IRQ )=0A+        =
+rtc_periodic_interrupt(pt_priv);=0A     else=0A     {=0A         hvm_isa_ir=
+q_deassert(v->domain, irq);=0A--- a/xen/include/asm-x86/hvm/vpt.h=0A+++ =
+b/xen/include/asm-x86/hvm/vpt.h=0A@@ -181,6 +181,7 @@ void rtc_migrate_time=
+rs(struct vcpu *v);=0A void rtc_deinit(struct domain *d);=0A void =
+rtc_reset(struct domain *d);=0A void rtc_update_clock(struct domain =
+*d);=0A+void rtc_periodic_interrupt(void *);=0A =0A void pmtimer_init(struc=
+t vcpu *v);=0A void pmtimer_deinit(struct domain *d);=0A
+--=__Part7F4E0B75.1__=
+Content-Type: text/plain; charset="us-ascii"
+MIME-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Content-Disposition: inline
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
+--=__Part7F4E0B75.1__=--
+
+
diff --git a/config/examples/test/corpus/<502A0BE50200007800094A4E@nat28.tlf.novell.com> b/config/examples/test/corpus/<502A0BE50200007800094A4E@nat28.tlf.novell.com>
new file mode 100644 (file)
index 0000000..db2f24b
--- /dev/null
@@ -0,0 +1,104 @@
+From xen-devel-bounces@lists.xen.org Tue Aug 14 07:32:16 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Tue, 14 Aug 2012 07:32:16 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T1Afl-00044N-He
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 14 Aug 2012 07:32:16 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T1Ab7-0002lk-TE; Tue, 14 Aug 2012 06:27:25 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <JBeulich@suse.com>) id 1T1Ab5-0002lf-Tw
+       for xen-devel@lists.xen.org; Tue, 14 Aug 2012 06:27:24 +0000
+Received: from [85.158.143.99:42272] by server-2.bemta-4.messagelabs.com id
+       0E/3A-31966-BCFE9205; Tue, 14 Aug 2012 06:27:23 +0000
+X-Env-Sender: JBeulich@suse.com
+X-Msg-Ref: server-8.tower-216.messagelabs.com!1344925642!18268867!1
+X-Originating-IP: [130.57.49.28]
+X-SpamReason: No, hits=1.1 required=7.0 tests=MAILTO_TO_SPAM_ADDR,
+       MANY_EXCLAMATIONS
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 29544 invoked from network); 14 Aug 2012 06:27:22 -0000
+Received: from nat28.tlf.novell.com (HELO nat28.tlf.novell.com) (130.57.49.28)
+       by server-8.tower-216.messagelabs.com with SMTP;
+       14 Aug 2012 06:27:22 -0000
+Received: from EMEA1-MTA by nat28.tlf.novell.com
+       with Novell_GroupWise; Tue, 14 Aug 2012 07:29:07 +0100
+Message-Id: <502A0BE50200007800094A4E@nat28.tlf.novell.com>
+X-Mailer: Novell GroupWise Internet Agent 12.0.0 
+Date: Tue, 14 Aug 2012 07:27:17 +0100
+From: "Jan Beulich" <JBeulich@suse.com>
+To: "tupeng212" <tupeng212@gmail.com>
+References: <201208070018394210381@gmail.com>,
+       <50224B7402000078000937DA@nat28.tlf.novell.com>
+       <2012081023124696835343@gmail.com>,
+       <50293785020000780009484C@nat28.tlf.novell.com>
+       <201208140024353598835@gmail.com>
+In-Reply-To: <201208140024353598835@gmail.com>
+Mime-Version: 1.0
+Content-Disposition: inline
+Cc: xen-devel <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] Big Bug:Time in VM goes slower;
+ foud Solution but demand Judgement! A Interesting Story!
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+(re-adding xen-devel to Cc)
+
+>>> On 13.08.12 at 18:24, tupeng212 <tupeng212@gmail.com> wrote:
+> I am home sending you this letter,  I can tell the details:
+> I only compared the rate setted down with RegA, if same, don't call 
+> create_periodic_time, and it is OK.
+> but after a while it changed the rate to 152...(normal rate), and it changed 
+> back to 97...(high rate), and 
+> this action repeated, at this point, VM's time slowed again. so only block 
+> the same rate's setting doesn't work.
+
+But in this case the hypervisor has no choice - it has to update
+the periodic timer. I don't think we could reliably guess that the
+guest might plan on quickly toggling between two rates.
+
+> but when I let pt->scheduled to be static(no changed) when setting regA down, 
+> even at the rate's switching I notice above,
+> it works very well, bug of time slowing never appear again.
+
+Yeah, likely that solves the problem for you, but as it's not
+correct, it's likely to cause problems for others.
+
+Jan
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<502A0E610200007800094A58@nat28.tlf.novell.com> b/config/examples/test/corpus/<502A0E610200007800094A58@nat28.tlf.novell.com>
new file mode 100644 (file)
index 0000000..c8a192d
--- /dev/null
@@ -0,0 +1,108 @@
+From xen-devel-bounces@lists.xen.org Tue Aug 14 07:42:08 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Tue, 14 Aug 2012 07:42:08 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T1ApJ-00045S-1V
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 14 Aug 2012 07:42:08 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T1AlK-0003Es-M3; Tue, 14 Aug 2012 06:37:58 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <JBeulich@suse.com>) id 1T1AlI-0003EZ-Vb
+       for xen-devel@lists.xen.org; Tue, 14 Aug 2012 06:37:57 +0000
+Received: from [85.158.143.35:37476] by server-2.bemta-4.messagelabs.com id
+       6C/C4-31966-442F9205; Tue, 14 Aug 2012 06:37:56 +0000
+X-Env-Sender: JBeulich@suse.com
+X-Msg-Ref: server-2.tower-21.messagelabs.com!1344926275!5524746!1
+X-Originating-IP: [130.57.49.28]
+X-SpamReason: No, hits=1.3 required=7.0 tests=BODY_RANDOM_LONG,
+       MANY_EXCLAMATIONS
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 19055 invoked from network); 14 Aug 2012 06:37:55 -0000
+Received: from nat28.tlf.novell.com (HELO nat28.tlf.novell.com) (130.57.49.28)
+       by server-2.tower-21.messagelabs.com with SMTP;
+       14 Aug 2012 06:37:55 -0000
+Received: from EMEA1-MTA by nat28.tlf.novell.com
+       with Novell_GroupWise; Tue, 14 Aug 2012 07:39:40 +0100
+Message-Id: <502A0E610200007800094A58@nat28.tlf.novell.com>
+X-Mailer: Novell GroupWise Internet Agent 12.0.0 
+Date: Tue, 14 Aug 2012 07:37:53 +0100
+From: "Jan Beulich" <JBeulich@suse.com>
+To: "xen-devel" <xen-devel@lists.xen.org>
+References: <201208070018394210381@gmail.com>,
+       <50224B7402000078000937DA@nat28.tlf.novell.com>
+       <2012081023124696835343@gmail.com>
+       <50293785020000780009484C@nat28.tlf.novell.com>
+In-Reply-To: <50293785020000780009484C@nat28.tlf.novell.com>
+Mime-Version: 1.0
+Content-Disposition: inline
+Cc: tupeng212 <tupeng212@gmail.com>, Tim Deegan <tim@xen.org>,
+       Keir Fraser <keir@xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] Big Bug:Time in VM goes slower;
+ foud Solution but demand Judgement! A Interesting Story!
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+>>> On 13.08.12 at 17:21, "Jan Beulich" <JBeulich@suse.com> wrote:
+> - don't call rtc_timer_update() on REG_A writes when the value didn't
+>   change (doing the call always was reported to cause wall clock time
+>   lagging with the JVM under Windows)
+> - in the same spirit, don't call rtc_timer_update() or
+>   alarm_timer_update() on REG_B writes when the respective RTC_xIE bit
+>   didn't change
+
+Actually, this didn't go far enough yet: REG_B writes should
+never cause any timers to get updated when merely one of the
+xIE bits changes, as those bits shouldn't control the timers'
+activity (and as a result, the eventual setting of the xF bits in
+REG_C).
+
+> - raise the RTC IRQ not only when RTC_UIE gets set while RTC_UF was
+>   already set, but generalize this to alarm and periodic interrupts as
+>   well
+> - properly handle RTC_PF when the guest is not also setting RTC_PIE
+
+In line with the above, this ought to also be done for AF and UF
+(it may be the case for UF already).
+
+Jan
+
+> - also handle the two other clock bases
+
+
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<502A3BBC0200007800094B68@nat28.tlf.novell.com> b/config/examples/test/corpus/<502A3BBC0200007800094B68@nat28.tlf.novell.com>
new file mode 100644 (file)
index 0000000..fb5193c
--- /dev/null
@@ -0,0 +1,426 @@
+From xen-devel-bounces@lists.xen.org Tue Aug 14 10:56:30 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Tue, 14 Aug 2012 10:56:30 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T1DrN-0004iw-CM
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 14 Aug 2012 10:56:30 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T1Dmc-0000pb-Jm; Tue, 14 Aug 2012 09:51:30 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <JBeulich@suse.com>) id 1T1Dma-0000pW-Nh
+       for xen-devel@lists.xen.org; Tue, 14 Aug 2012 09:51:29 +0000
+Received: from [85.158.143.99:19483] by server-2.bemta-4.messagelabs.com id
+       D5/A6-31966-0AF1A205; Tue, 14 Aug 2012 09:51:28 +0000
+X-Env-Sender: JBeulich@suse.com
+X-Msg-Ref: server-15.tower-216.messagelabs.com!1344937886!28061722!1
+X-Originating-IP: [130.57.49.28]
+X-SpamReason: No, hits=0.0 required=7.0 tests=
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 19901 invoked from network); 14 Aug 2012 09:51:26 -0000
+Received: from nat28.tlf.novell.com (HELO nat28.tlf.novell.com) (130.57.49.28)
+       by server-15.tower-216.messagelabs.com with SMTP;
+       14 Aug 2012 09:51:26 -0000
+Received: from EMEA1-MTA by nat28.tlf.novell.com
+       with Novell_GroupWise; Tue, 14 Aug 2012 10:51:26 +0100
+Message-Id: <502A3BBC0200007800094B68@nat28.tlf.novell.com>
+X-Mailer: Novell GroupWise Internet Agent 12.0.0 
+Date: Tue, 14 Aug 2012 10:51:24 +0100
+From: "Jan Beulich" <JBeulich@suse.com>
+To: "Yang Z Zhang" <yang.z.zhang@intel.com>,
+       "Keir Fraser" <keir@xen.org>,"Tim Deegan" <tim@xen.org>
+Mime-Version: 1.0
+Content-Disposition: inline
+Cc: tupeng212 <tupeng212@gmail.com>, xen-devel <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: [Xen-devel] [PATCH,
+ RFC v2] x86/HVM: assorted RTC emulation adjustments (was Re: Big
+ Bug:Time in VM goes slower...)
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+Below/attached a second draft of a patch to fix not only this
+issue, but a few more with the RTC emulation.
+
+Keir, Tim, Yang, others - the change to xen/arch/x86/hvm/vpt.c really
+looks more like a hack than a solution, but I don't see another
+way without much more intrusive changes. The point is that we
+want the RTC code to decide whether to generate an interrupt
+(so that RTC_PF can become set correctly even without RTC_PIE
+getting enabled by the guest).
+
+Additionally I wonder whether alarm_timer_update() shouldn't
+bail on non-conforming RTC_*_ALARM values (as those would
+never match the values they get compared against, whereas
+with the current way of handling this they would appear to
+match - i.e. set RTC_AF and possibly generate an interrupt -
+some other point in time). I realize the behavior here may not
+be precisely specified, but the specification saying "the current
+time has matched the alarm time" means to me a value by value
+comparison, which implies that non-conforming values would
+never match (since non-conforming current time values could
+get replaced at any time by the hardware due to overflow
+detection).
+
+Jan
+
+- don't call rtc_timer_update() on REG_A writes when the value didn't
+  change (doing the call always was reported to cause wall clock time
+  lagging with the JVM running on Windows)
+- don't call rtc_timer_update() on REG_B writes at all
+- only call alarm_timer_update() on REG_B writes when relevant bits
+  change
+- only call check_update_timer() on REG_B writes when SET changes
+- instead properly handle AF and PF when the guest is not also setting
+  AIE/PIE respectively (for UF this was already the case, only a
+  comment was slightly inaccurate)
+- raise the RTC IRQ not only when UIE gets set while UF was already
+  set, but generalize this to cover AIE and PIE as well
+- properly mask off bit 7 when retrieving the hour values in
+  alarm_timer_update(), and properly use RTC_HOURS_ALARM's bit 7 when
+  converting from 12- to 24-hour value
+- also handle the two other possible clock bases
+- use RTC_* names in a couple of places where literal numbers were used
+  so far
+
+--- a/xen/arch/x86/hvm/rtc.c
++++ b/xen/arch/x86/hvm/rtc.c
+@@ -50,11 +50,24 @@ static void rtc_set_time(RTCState *s);
+ static inline int from_bcd(RTCState *s, int a);
+ static inline int convert_hour(RTCState *s, int hour);
+-static void rtc_periodic_cb(struct vcpu *v, void *opaque)
++static void rtc_toggle_irq(RTCState *s)
++{
++    struct domain *d = vrtc_domain(s);
++
++    ASSERT(spin_is_locked(&s->lock));
++    s->hw.cmos_data[RTC_REG_C] |= RTC_IRQF;
++    hvm_isa_irq_deassert(d, RTC_IRQ);
++    hvm_isa_irq_assert(d, RTC_IRQ);
++}
++
++void rtc_periodic_interrupt(void *opaque)
+ {
+     RTCState *s = opaque;
++
+     spin_lock(&s->lock);
+-    s->hw.cmos_data[RTC_REG_C] |= 0xc0;
++    s->hw.cmos_data[RTC_REG_C] |= RTC_PF;
++    if ( s->hw.cmos_data[RTC_REG_B] & RTC_PIE )
++        rtc_toggle_irq(s);
+     spin_unlock(&s->lock);
+ }
+@@ -68,19 +81,25 @@ static void rtc_timer_update(RTCState *s
+     ASSERT(spin_is_locked(&s->lock));
+     period_code = s->hw.cmos_data[RTC_REG_A] & RTC_RATE_SELECT;
+-    if ( (period_code != 0) && (s->hw.cmos_data[RTC_REG_B] & RTC_PIE) )
++    switch ( s->hw.cmos_data[RTC_REG_A] & RTC_DIV_CTL )
+     {
+-        if ( period_code <= 2 )
++    case RTC_REF_CLCK_32KHZ:
++        if ( (period_code != 0) && (period_code <= 2) )
+             period_code += 7;
+-
+-        period = 1 << (period_code - 1); /* period in 32 Khz cycles */
+-        period = DIV_ROUND((period * 1000000000ULL), 32768); /* period in ns */
+-        create_periodic_time(v, &s->pt, period, period, RTC_IRQ,
+-                             rtc_periodic_cb, s);
+-    }
+-    else
+-    {
++        /* fall through */
++    case RTC_REF_CLCK_1MHZ:
++    case RTC_REF_CLCK_4MHZ:
++        if ( period_code != 0 )
++        {
++            period = 1 << (period_code - 1); /* period in 32 Khz cycles */
++            period = DIV_ROUND(period * 1000000000ULL, 32768); /* in ns */
++            create_periodic_time(v, &s->pt, period, period, RTC_IRQ, NULL, s);
++            break;
++        }
++        /* fall through */
++    default:
+         destroy_periodic_time(&s->pt);
++        break;
+     }
+ }
+@@ -102,7 +121,7 @@ static void check_update_timer(RTCState 
+         guest_usec = get_localtime_us(d) % USEC_PER_SEC;
+         if (guest_usec >= (USEC_PER_SEC - 244))
+         {
+-            /* RTC is in update cycle when enabling UIE */
++            /* RTC is in update cycle */
+             s->hw.cmos_data[RTC_REG_A] |= RTC_UIP;
+             next_update_time = (USEC_PER_SEC - guest_usec) * NS_PER_USEC;
+             expire_time = NOW() + next_update_time;
+@@ -144,7 +163,6 @@ static void rtc_update_timer(void *opaqu
+ static void rtc_update_timer2(void *opaque)
+ {
+     RTCState *s = opaque;
+-    struct domain *d = vrtc_domain(s);
+     spin_lock(&s->lock);
+     if (!(s->hw.cmos_data[RTC_REG_B] & RTC_SET))
+@@ -152,11 +170,7 @@ static void rtc_update_timer2(void *opaq
+         s->hw.cmos_data[RTC_REG_C] |= RTC_UF;
+         s->hw.cmos_data[RTC_REG_A] &= ~RTC_UIP;
+         if ((s->hw.cmos_data[RTC_REG_B] & RTC_UIE))
+-        {
+-            s->hw.cmos_data[RTC_REG_C] |= RTC_IRQF;
+-            hvm_isa_irq_deassert(d, RTC_IRQ);
+-            hvm_isa_irq_assert(d, RTC_IRQ);
+-        }
++            rtc_toggle_irq(s);
+         check_update_timer(s);
+     }
+     spin_unlock(&s->lock);
+@@ -175,21 +189,18 @@ static void alarm_timer_update(RTCState 
+     stop_timer(&s->alarm_timer);
+-    if ((s->hw.cmos_data[RTC_REG_B] & RTC_AIE) &&
+-            !(s->hw.cmos_data[RTC_REG_B] & RTC_SET))
++    if ( !(s->hw.cmos_data[RTC_REG_B] & RTC_SET) )
+     {
+         s->current_tm = gmtime(get_localtime(d));
+         rtc_copy_date(s);
+         alarm_sec = from_bcd(s, s->hw.cmos_data[RTC_SECONDS_ALARM]);
+         alarm_min = from_bcd(s, s->hw.cmos_data[RTC_MINUTES_ALARM]);
+-        alarm_hour = from_bcd(s, s->hw.cmos_data[RTC_HOURS_ALARM]);
+-        alarm_hour = convert_hour(s, alarm_hour);
++        alarm_hour = convert_hour(s, s->hw.cmos_data[RTC_HOURS_ALARM]);
+         cur_sec = from_bcd(s, s->hw.cmos_data[RTC_SECONDS]);
+         cur_min = from_bcd(s, s->hw.cmos_data[RTC_MINUTES]);
+-        cur_hour = from_bcd(s, s->hw.cmos_data[RTC_HOURS]);
+-        cur_hour = convert_hour(s, cur_hour);
++        cur_hour = convert_hour(s, s->hw.cmos_data[RTC_HOURS]);
+         next_update_time = USEC_PER_SEC - (get_localtime_us(d) % USEC_PER_SEC);
+         next_update_time = next_update_time * NS_PER_USEC + NOW();
+@@ -343,7 +354,6 @@ static void alarm_timer_update(RTCState 
+ static void rtc_alarm_cb(void *opaque)
+ {
+     RTCState *s = opaque;
+-    struct domain *d = vrtc_domain(s);
+     spin_lock(&s->lock);
+     if (!(s->hw.cmos_data[RTC_REG_B] & RTC_SET))
+@@ -351,11 +361,7 @@ static void rtc_alarm_cb(void *opaque)
+         s->hw.cmos_data[RTC_REG_C] |= RTC_AF;
+         /* alarm interrupt */
+         if (s->hw.cmos_data[RTC_REG_B] & RTC_AIE)
+-        {
+-            s->hw.cmos_data[RTC_REG_C] |= RTC_IRQF;
+-            hvm_isa_irq_deassert(d, RTC_IRQ);
+-            hvm_isa_irq_assert(d, RTC_IRQ);
+-        }
++            rtc_toggle_irq(s);
+         alarm_timer_update(s);
+     }
+     spin_unlock(&s->lock);
+@@ -365,6 +371,7 @@ static int rtc_ioport_write(void *opaque
+ {
+     RTCState *s = opaque;
+     struct domain *d = vrtc_domain(s);
++    uint32_t orig, mask;
+     spin_lock(&s->lock);
+@@ -382,6 +389,7 @@ static int rtc_ioport_write(void *opaque
+         return 0;
+     }
++    orig = s->hw.cmos_data[s->hw.cmos_index];
+     switch ( s->hw.cmos_index )
+     {
+     case RTC_SECONDS_ALARM:
+@@ -405,9 +413,9 @@ static int rtc_ioport_write(void *opaque
+         break;
+     case RTC_REG_A:
+         /* UIP bit is read only */
+-        s->hw.cmos_data[RTC_REG_A] = (data & ~RTC_UIP) |
+-            (s->hw.cmos_data[RTC_REG_A] & RTC_UIP);
+-        rtc_timer_update(s);
++        s->hw.cmos_data[RTC_REG_A] = (data & ~RTC_UIP) | (orig & RTC_UIP);
++        if ( (data ^ orig) & (RTC_RATE_SELECT | RTC_DIV_CTL) )
++            rtc_timer_update(s);
+         break;
+     case RTC_REG_B:
+         if ( data & RTC_SET )
+@@ -415,7 +423,7 @@ static int rtc_ioport_write(void *opaque
+             /* set mode: reset UIP mode */
+             s->hw.cmos_data[RTC_REG_A] &= ~RTC_UIP;
+             /* adjust cmos before stopping */
+-            if (!(s->hw.cmos_data[RTC_REG_B] & RTC_SET))
++            if (!(orig & RTC_SET))
+             {
+                 s->current_tm = gmtime(get_localtime(d));
+                 rtc_copy_date(s);
+@@ -424,21 +432,26 @@ static int rtc_ioport_write(void *opaque
+         else
+         {
+             /* if disabling set mode, update the time */
+-            if ( s->hw.cmos_data[RTC_REG_B] & RTC_SET )
++            if ( orig & RTC_SET )
+                 rtc_set_time(s);
+         }
+-        /* if the interrupt is already set when the interrupt become
+-         * enabled, raise an interrupt immediately*/
+-        if ((data & RTC_UIE) && !(s->hw.cmos_data[RTC_REG_B] & RTC_UIE))
+-            if (s->hw.cmos_data[RTC_REG_C] & RTC_UF)
++        /*
++         * If the interrupt is already set when the interrupt becomes
++         * enabled, raise an interrupt immediately.
++         * NB: RTC_{A,P,U}IE == RTC_{A,P,U}F respectively.
++         */
++        for ( mask = RTC_UIE; mask <= RTC_PIE; mask <<= 1 )
++            if ( (data & mask) && !(orig & mask) &&
++                 (s->hw.cmos_data[RTC_REG_C] & mask) )
+             {
+-                hvm_isa_irq_deassert(d, RTC_IRQ);
+-                hvm_isa_irq_assert(d, RTC_IRQ);
++                rtc_toggle_irq(s);
++                break;
+             }
+         s->hw.cmos_data[RTC_REG_B] = data;
+-        rtc_timer_update(s);
+-        check_update_timer(s);
+-        alarm_timer_update(s);
++        if ( (data ^ orig) & RTC_SET )
++            check_update_timer(s);
++        if ( (data ^ orig) & (RTC_24H | RTC_DM_BINARY | RTC_SET) )
++            alarm_timer_update(s);
+         break;
+     case RTC_REG_C:
+     case RTC_REG_D:
+@@ -453,7 +466,7 @@ static int rtc_ioport_write(void *opaque
+ static inline int to_bcd(RTCState *s, int a)
+ {
+-    if ( s->hw.cmos_data[RTC_REG_B] & 0x04 )
++    if ( s->hw.cmos_data[RTC_REG_B] & RTC_DM_BINARY )
+         return a;
+     else
+         return ((a / 10) << 4) | (a % 10);
+@@ -461,7 +474,7 @@ static inline int to_bcd(RTCState *s, in
+ static inline int from_bcd(RTCState *s, int a)
+ {
+-    if ( s->hw.cmos_data[RTC_REG_B] & 0x04 )
++    if ( s->hw.cmos_data[RTC_REG_B] & RTC_DM_BINARY )
+         return a;
+     else
+         return ((a >> 4) * 10) + (a & 0x0f);
+@@ -469,12 +482,14 @@ static inline int from_bcd(RTCState *s, 
+ /* Hours in 12 hour mode are in 1-12 range, not 0-11.
+  * So we need convert it before using it*/
+-static inline int convert_hour(RTCState *s, int hour)
++static inline int convert_hour(RTCState *s, int raw)
+ {
++    int hour = from_bcd(s, raw & 0x7f);
++
+     if (!(s->hw.cmos_data[RTC_REG_B] & RTC_24H))
+     {
+         hour %= 12;
+-        if (s->hw.cmos_data[RTC_HOURS] & 0x80)
++        if (raw & 0x80)
+             hour += 12;
+     }
+     return hour;
+@@ -493,8 +508,7 @@ static void rtc_set_time(RTCState *s)
+     
+     tm->tm_sec = from_bcd(s, s->hw.cmos_data[RTC_SECONDS]);
+     tm->tm_min = from_bcd(s, s->hw.cmos_data[RTC_MINUTES]);
+-    tm->tm_hour = from_bcd(s, s->hw.cmos_data[RTC_HOURS] & 0x7f);
+-    tm->tm_hour = convert_hour(s, tm->tm_hour);
++    tm->tm_hour = convert_hour(s, s->hw.cmos_data[RTC_HOURS]);
+     tm->tm_wday = from_bcd(s, s->hw.cmos_data[RTC_DAY_OF_WEEK]);
+     tm->tm_mday = from_bcd(s, s->hw.cmos_data[RTC_DAY_OF_MONTH]);
+     tm->tm_mon = from_bcd(s, s->hw.cmos_data[RTC_MONTH]) - 1;
+--- a/xen/arch/x86/hvm/vpt.c
++++ b/xen/arch/x86/hvm/vpt.c
+@@ -22,6 +22,7 @@
+ #include <asm/hvm/vpt.h>
+ #include <asm/event.h>
+ #include <asm/apic.h>
++#include <asm/mc146818rtc.h>
+ #define mode_is(d, name) \
+     ((d)->arch.hvm_domain.params[HVM_PARAM_TIMER_MODE] == HVMPTM_##name)
+@@ -218,6 +219,7 @@ void pt_update_irq(struct vcpu *v)
+     struct periodic_time *pt, *temp, *earliest_pt = NULL;
+     uint64_t max_lag = -1ULL;
+     int irq, is_lapic;
++    void *pt_priv;
+     spin_lock(&v->arch.hvm_vcpu.tm_lock);
+@@ -251,13 +253,14 @@ void pt_update_irq(struct vcpu *v)
+     earliest_pt->irq_issued = 1;
+     irq = earliest_pt->irq;
+     is_lapic = (earliest_pt->source == PTSRC_lapic);
++    pt_priv = earliest_pt->priv;
+     spin_unlock(&v->arch.hvm_vcpu.tm_lock);
+     if ( is_lapic )
+-    {
+         vlapic_set_irq(vcpu_vlapic(v), irq, 0);
+-    }
++    else if ( irq == RTC_IRQ )
++        rtc_periodic_interrupt(pt_priv);
+     else
+     {
+         hvm_isa_irq_deassert(v->domain, irq);
+--- a/xen/include/asm-x86/hvm/vpt.h
++++ b/xen/include/asm-x86/hvm/vpt.h
+@@ -181,6 +181,7 @@ void rtc_migrate_timers(struct vcpu *v);
+ void rtc_deinit(struct domain *d);
+ void rtc_reset(struct domain *d);
+ void rtc_update_clock(struct domain *d);
++void rtc_periodic_interrupt(void *);
+ void pmtimer_init(struct vcpu *v);
+ void pmtimer_deinit(struct domain *d);
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<502A3BFD0200007800094B6B@nat28.tlf.novell.com> b/config/examples/test/corpus/<502A3BFD0200007800094B6B@nat28.tlf.novell.com>
new file mode 100644 (file)
index 0000000..b489bbd
--- /dev/null
@@ -0,0 +1,85 @@
+From xen-devel-bounces@lists.xen.org Tue Aug 14 10:56:28 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Tue, 14 Aug 2012 10:56:28 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T1DrN-0004iv-Bw
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 14 Aug 2012 10:56:28 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T1Dnf-0000sq-2X; Tue, 14 Aug 2012 09:52:35 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <JBeulich@suse.com>) id 1T1Dnc-0000sZ-Hd
+       for xen-devel@lists.xen.org; Tue, 14 Aug 2012 09:52:32 +0000
+Received: from [85.158.143.99:28316] by server-1.bemta-4.messagelabs.com id
+       D8/DD-07754-FDF1A205; Tue, 14 Aug 2012 09:52:31 +0000
+X-Env-Sender: JBeulich@suse.com
+X-Msg-Ref: server-11.tower-216.messagelabs.com!1344937951!20553639!1
+X-Originating-IP: [130.57.49.28]
+X-SpamReason: No, hits=0.0 required=7.0 tests=
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 3664 invoked from network); 14 Aug 2012 09:52:31 -0000
+Received: from nat28.tlf.novell.com (HELO nat28.tlf.novell.com) (130.57.49.28)
+       by server-11.tower-216.messagelabs.com with SMTP;
+       14 Aug 2012 09:52:31 -0000
+Received: from EMEA1-MTA by nat28.tlf.novell.com
+       with Novell_GroupWise; Tue, 14 Aug 2012 10:52:30 +0100
+Message-Id: <502A3BFD0200007800094B6B@nat28.tlf.novell.com>
+X-Mailer: Novell GroupWise Internet Agent 12.0.0 
+Date: Tue, 14 Aug 2012 10:52:29 +0100
+From: "Jan Beulich" <JBeulich@suse.com>
+To: "Ian Campbell" <Ian.Campbell@citrix.com>,
+       "xen-devel" <xen-devel@lists.xen.org>,
+       "xen-users" <xen-users@lists.xen.org>
+References: <1344935141.5926.6.camel@zakaz.uk.xensource.com>
+In-Reply-To: <1344935141.5926.6.camel@zakaz.uk.xensource.com>
+Mime-Version: 1.0
+Content-Disposition: inline
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] Xen 4.2 TODO / Release Plan
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+>>> On 14.08.12 at 11:05, Ian Campbell <Ian.Campbell@citrix.com> wrote:
+>     * fix high change rate to CMOS RTC periodic interrupt causing
+>       guest wall clock time to lag (possible fix outlined, needs to be
+>       put in patch form and thoroughly reviewed/tested for unwanted
+>       side effects, Jan Beulich)
+
+Second draft of a patch posted; no test results so far for first draft.
+
+Jan
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<502A5964.2080509@citrix.com> b/config/examples/test/corpus/<502A5964.2080509@citrix.com>
new file mode 100644 (file)
index 0000000..0492e59
--- /dev/null
@@ -0,0 +1,150 @@
+From xen-devel-bounces@lists.xen.org Tue Aug 14 15:02:49 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Tue, 14 Aug 2012 15:02:49 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T1Hhj-0005gT-Ob
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 14 Aug 2012 15:02:49 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T1He3-0002iq-Rm; Tue, 14 Aug 2012 13:58:55 +0000
+Received: from mail27.messagelabs.com ([193.109.254.147])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <david.vrabel@citrix.com>) id 1T1He1-0002iX-Qo
+       for xen-devel@lists.xen.org; Tue, 14 Aug 2012 13:58:54 +0000
+X-Env-Sender: david.vrabel@citrix.com
+X-Msg-Ref: server-13.tower-27.messagelabs.com!1344952678!9165396!1
+X-Originating-IP: [66.165.176.63]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyNzEyMjM=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 5468 invoked from network); 14 Aug 2012 13:58:00 -0000
+Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
+       by server-13.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
+       14 Aug 2012 13:58:00 -0000
+X-IronPort-AV: E=Sophos;i="4.77,766,1336363200"; d="scan'208";a="205116368"
+Received: from ftlpmailmx01.citrite.net ([10.13.107.65])
+       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       14 Aug 2012 09:57:57 -0400
+Received: from [10.80.2.76] (10.80.2.76) by FTLPMAILMX01.citrite.net
+       (10.13.107.65) with Microsoft SMTP Server id 8.3.213.0; Tue, 14 Aug 2012
+       09:57:57 -0400
+Message-ID: <502A5964.2080509@citrix.com>
+Date: Tue, 14 Aug 2012 14:57:56 +0100
+From: David Vrabel <david.vrabel@citrix.com>
+User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US;
+       rv:1.9.1.16) Gecko/20120428 Iceowl/1.0b1 Icedove/3.0.11
+MIME-Version: 1.0
+To: Attilio Rao <attilio.rao@citrix.com>
+References: <1344947062-4796-1-git-send-email-attilio.rao@citrix.com>
+       <1344947062-4796-3-git-send-email-attilio.rao@citrix.com>
+In-Reply-To: <1344947062-4796-3-git-send-email-attilio.rao@citrix.com>
+Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>,
+       xen-devel@lists.xen.org
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH v2 2/2] Xen: Document the semantic of the
+ pagetable_reserve PVOPS
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On 14/08/12 13:24, Attilio Rao wrote:
+> The informations added on the hook are:
+> - Native behaviour
+> - Xen specific behaviour
+> - Logic behind the Xen specific behaviour
+
+These are implementation details and should be documented with the
+implementations (if necessary).
+
+> - PVOPS semantic
+
+This is the interesting stuff.
+
+This particular pvop seems a little odd really.  It might make more
+sense if it took a third parameter for pgt_buf_top.
+
+"@pagetable_reserve is used to reserve a range of PFNs used for the
+kernel direct mapping page tables and cleans-up any PFNs that ended up
+not being used for the tables.
+
+It shall reserve the range (start, end] with memblock_reserve(). It
+shall prepare PFNs in the range (end, pgt_buf_top] for general (non page
+table) use.
+
+It shall only be called in init_memory_mapping() after the direct
+mapping tables have been constructed."
+
+Having said that, I couldn't immediately see where pages in (end,
+pgt_buf_top] was getting set RO.  Can you point me to where it's done?
+
+David
+
+> Signed-off-by: Attilio Rao <attilio.rao@citrix.com>
+> ---
+>  arch/x86/include/asm/x86_init.h |   19 +++++++++++++++++--
+>  1 files changed, 17 insertions(+), 2 deletions(-)
+> 
+> diff --git a/arch/x86/include/asm/x86_init.h b/arch/x86/include/asm/x86_init.h
+> index 38155f6..b22093c 100644
+> --- a/arch/x86/include/asm/x86_init.h
+> +++ b/arch/x86/include/asm/x86_init.h
+> @@ -72,8 +72,23 @@ struct x86_init_oem {
+>   * struct x86_init_mapping - platform specific initial kernel pagetable setup
+>   * @pagetable_reserve:      reserve a range of addresses for kernel pagetable usage
+>   *
+> - * For more details on the purpose of this hook, look in
+> - * init_memory_mapping and the commit that added it.
+> + * It does reserve a range of pages, to be used as pagetable pages.
+> + * The start and end parameters are expected to be contained in the
+> + * [pgt_buf_start, pgt_buf_top] range.
+> + * The native implementation reserves the pages via the memblock_reserve()
+> + * interface.
+> + * The Xen implementation, besides reserving the range via memblock_reserve(),
+> + * also sets RW the remaining pages contained in the ranges
+> + * [pgt_buf_start, start) and [end, pgt_buf_top).
+> + * This is needed because the range [pgt_buf_start, pgt_buf_top] was
+> + * previously mapped read-only by xen_set_pte_init: when running
+> + * on Xen all the pagetable pages need to be mapped read-only in order to
+> + * avoid protection faults from the hypervisor. However, once the correct
+> + * amount of pages is reserved for the pagetables, all the others contained
+> + * in the range must be set to RW so that they can be correctly recycled by
+> + * the VM subsystem.
+> + * This operation is meant to be performed only during init_memory_mapping(),
+> + * just after space for the kernel direct mapping tables is found.
+>   */
+>  struct x86_init_mapping {
+>      void (*pagetable_reserve)(u64 start, u64 end);
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<502A5CD0.8000201@citrix.com> b/config/examples/test/corpus/<502A5CD0.8000201@citrix.com>
new file mode 100644 (file)
index 0000000..a98951b
--- /dev/null
@@ -0,0 +1,134 @@
+From xen-devel-bounces@lists.xen.org Tue Aug 14 15:28:47 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Tue, 14 Aug 2012 15:28:47 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T1I6t-0005rs-Ex
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 14 Aug 2012 15:28:47 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T1I39-0003k2-N0; Tue, 14 Aug 2012 14:24:51 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <attilio.rao@citrix.com>) id 1T1I37-0003jt-3t
+       for xen-devel@lists.xen.org; Tue, 14 Aug 2012 14:24:49 +0000
+Received: from [85.158.138.51:15595] by server-3.bemta-3.messagelabs.com id
+       D2/D5-13809-0BF5A205; Tue, 14 Aug 2012 14:24:48 +0000
+X-Env-Sender: attilio.rao@citrix.com
+X-Msg-Ref: server-15.tower-174.messagelabs.com!1344954287!26464626!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDkwNzc=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 18770 invoked from network); 14 Aug 2012 14:24:47 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-15.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
+       14 Aug 2012 14:24:47 -0000
+X-IronPort-AV: E=Sophos;i="4.77,766,1336348800"; d="scan'208";a="14005084"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       14 Aug 2012 14:24:47 +0000
+Received: from [10.80.3.221] (10.80.3.221) by LONPMAILMX01.citrite.net
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0;
+       Tue, 14 Aug 2012 15:24:47 +0100
+Message-ID: <502A5CD0.8000201@citrix.com>
+Date: Tue, 14 Aug 2012 15:12:32 +0100
+From: Attilio Rao <attilio.rao@citrix.com>
+User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US;
+       rv:1.9.1.16) Gecko/20111110 Icedove/3.0.11
+MIME-Version: 1.0
+To: David Vrabel <david.vrabel@citrix.com>
+References: <1344947062-4796-1-git-send-email-attilio.rao@citrix.com>
+       <1344947062-4796-3-git-send-email-attilio.rao@citrix.com>
+       <502A5964.2080509@citrix.com>
+In-Reply-To: <502A5964.2080509@citrix.com>
+Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Transfer-Encoding: 7bit
+Content-Type: text/plain; charset="us-ascii"; Format="flowed"
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH v2 2/2] Xen: Document the semantic of the
+ pagetable_reserve PVOPS
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On 14/08/12 14:57, David Vrabel wrote:
+> On 14/08/12 13:24, Attilio Rao wrote:
+>    
+>> The informations added on the hook are:
+>> - Native behaviour
+>> - Xen specific behaviour
+>> - Logic behind the Xen specific behaviour
+>>      
+> These are implementation details and should be documented with the
+> implementations (if necessary).
+>    
+
+In this specific case, implementation details are very valuable to 
+understand the semantic of operations, this is why I added them there. I 
+think, at least for this case, this is the best trade-off.
+
+>> - PVOPS semantic
+>>      
+> This is the interesting stuff.
+>
+> This particular pvop seems a little odd really.  It might make more
+> sense if it took a third parameter for pgt_buf_top.
+>    
+
+The thing is that this work (documenting PVOPS) should help in 
+understanding the logic behind some PVOPS and possibly improve/rework 
+them. For this stage, I agreed with Konrad to keep the changes as small 
+as possible. Once the documentation about the semantic is in place we 
+can think about ways to improve things more effectively (for example, in 
+some cases we may want to rewrite the PVOP completely).
+
+> "@pagetable_reserve is used to reserve a range of PFNs used for the
+> kernel direct mapping page tables and cleans-up any PFNs that ended up
+> not being used for the tables.
+>
+> It shall reserve the range (start, end] with memblock_reserve(). It
+> shall prepare PFNs in the range (end, pgt_buf_top] for general (non page
+> table) use.
+>
+> It shall only be called in init_memory_mapping() after the direct
+> mapping tables have been constructed."
+>
+> Having said that, I couldn't immediately see where pages in (end,
+> pgt_buf_top] was getting set RO.  Can you point me to where it's done?
+>    
+
+As mentioned in the comment, please look at xen_set_pte_init().
+
+Attilio
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<502B85D1.8000606@citrix.com> b/config/examples/test/corpus/<502B85D1.8000606@citrix.com>
new file mode 100644 (file)
index 0000000..8ea4b86
--- /dev/null
@@ -0,0 +1,315 @@
+From xen-devel-bounces@lists.xen.org Wed Aug 15 12:24:19 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 15 Aug 2012 12:24:19 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T1bhw-0005vc-DW
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 15 Aug 2012 12:24:19 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T1bdg-0003dz-To; Wed, 15 Aug 2012 11:19:52 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <david.vrabel@citrix.com>) id 1T1bde-0003dt-Mv
+       for xen-devel@lists.xen.org; Wed, 15 Aug 2012 11:19:51 +0000
+Received: from [85.158.139.83:32363] by server-12.bemta-5.messagelabs.com id
+       DA/C3-22359-5D58B205; Wed, 15 Aug 2012 11:19:49 +0000
+X-Env-Sender: david.vrabel@citrix.com
+X-Msg-Ref: server-10.tower-182.messagelabs.com!1345029587!28499498!1
+X-Originating-IP: [66.165.176.63]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyNzE1NDQ=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 11324 invoked from network); 15 Aug 2012 11:19:49 -0000
+Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
+       by server-10.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
+       15 Aug 2012 11:19:49 -0000
+X-IronPort-AV: E=Sophos;i="4.77,772,1336363200"; d="scan'208";a="205237994"
+Received: from ftlpmailmx01.citrite.net ([10.13.107.65])
+       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       15 Aug 2012 07:19:47 -0400
+Received: from [10.80.2.76] (10.80.2.76) by FTLPMAILMX01.citrite.net
+       (10.13.107.65) with Microsoft SMTP Server id 8.3.213.0; Wed, 15 Aug 2012
+       07:19:47 -0400
+Message-ID: <502B85D1.8000606@citrix.com>
+Date: Wed, 15 Aug 2012 12:19:45 +0100
+From: David Vrabel <david.vrabel@citrix.com>
+User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US;
+       rv:1.9.1.16) Gecko/20120428 Iceowl/1.0b1 Icedove/3.0.11
+MIME-Version: 1.0
+To: Attilio Rao <attilio.rao@citrix.com>
+References: <1344947062-4796-1-git-send-email-attilio.rao@citrix.com>
+       <1344947062-4796-3-git-send-email-attilio.rao@citrix.com>
+       <502A5964.2080509@citrix.com> <502A5CD0.8000201@citrix.com>
+In-Reply-To: <502A5CD0.8000201@citrix.com>
+Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH v2 2/2] Xen: Document the semantic of the
+ pagetable_reserve PVOPS
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On 14/08/12 15:12, Attilio Rao wrote:
+> On 14/08/12 14:57, David Vrabel wrote:
+>> On 14/08/12 13:24, Attilio Rao wrote:
+>> 
+>>> The informations added on the hook are: - Native behaviour - Xen 
+>>> specific behaviour - Logic behind the Xen specific behaviour
+>>> 
+>> These are implementation details and should be documented with the
+>>  implementations (if necessary).
+>> 
+> 
+> In this specific case, implementation details are very valuable to 
+> understand the semantic of operations, this is why I added them 
+> there. I think, at least for this case, this is the best trade-off.
+
+Documenting the implementation details will be useful for reviewing or
+refactoring the pv-ops but I don't think it useful in the longer term
+for it to be included in the API documentation upstream.
+
+>>> - PVOPS semantic
+>>> 
+>> This is the interesting stuff.
+>> 
+>> This particular pvop seems a little odd really.  It might make more
+>> sense if it took a third parameter for pgt_buf_top.
+> 
+> The thing is that this work (documenting PVOPS) should help in 
+> understanding the logic behind some PVOPS and possibly
+> improve/rework them. For this stage, I agreed with Konrad to keep the
+> changes as small as possible. Once the documentation about the
+> semantic is in place we can think about ways to improve things more
+> effectively (for example, in some cases we may want to rewrite the
+> PVOP completely).
+
+After looking at it some more, I think this pv-ops is unnecessary. How
+about the following patch to just remove it completely?
+
+I've only smoke-tested 32-bit and 64-bit dom0 but I think the reasoning
+is sound.
+
+>> "@pagetable_reserve is used to reserve a range of PFNs used for the
+>> kernel direct mapping page tables and cleans-up any PFNs that ended
+>> up not being used for the tables.
+>> 
+>> It shall reserve the range (start, end] with memblock_reserve(). It
+>> shall prepare PFNs in the range (end, pgt_buf_top] for general (non
+>> page table) use.
+>> 
+>> It shall only be called in init_memory_mapping() after the direct 
+>> mapping tables have been constructed."
+>> 
+>> Having said that, I couldn't immediately see where pages in (end, 
+>> pgt_buf_top] was getting set RO.  Can you point me to where it's 
+>> done?
+>> 
+> 
+> As mentioned in the comment, please look at xen_set_pte_init().
+
+xen_set_pte_init() only ensures it doesn't set the PTE as writable if it
+is already present and read-only.
+
+David
+
+8<----------------------
+x86: remove x86_init.mapping.pagetable_reserve paravirt op
+
+The x86_init.mapping.pagetable_reserve paravirt op is used for Xen
+guests to set the writable flag for the mapping of (pgt_buf_end,
+pgt_buf_top].  This is not necessary as these pages are never set as
+read-only as they have never contained page tables.
+
+When running as a Xen guest, the initial page tables are provided by
+Xen (these are reserved with memblock_reserve() in
+xen_setup_kernel_pagetable()) and constructed in brk space (for 32-bit
+guests) or in the kernel's .data section (for 64-bit guests, see
+head_64.S).
+
+Since these are all marked as reserved, (pgt_buf_start, pgt_buf_top]
+does not overlap with them and the mappings for these PFNs will be
+read-write.
+
+Since Xen doesn't need to change the mapping its implementation
+becomes the same as a native and we can simply remove this pv-op
+completely.
+
+Signed-off-by: David Vrabel <david.vrabel@citrix.com>
+---
+ arch/x86/include/asm/pgtable_types.h |    1 -
+ arch/x86/include/asm/x86_init.h      |   12 ------------
+ arch/x86/kernel/x86_init.c           |    4 ----
+ arch/x86/mm/init.c                   |   22 +++-------------------
+ arch/x86/xen/mmu.c                   |   19 ++-----------------
+ 5 files changed, 5 insertions(+), 53 deletions(-)
+
+diff --git a/arch/x86/include/asm/pgtable_types.h b/arch/x86/include/asm/pgtable_types.h
+index 013286a..0a11293 100644
+--- a/arch/x86/include/asm/pgtable_types.h
++++ b/arch/x86/include/asm/pgtable_types.h
+@@ -301,7 +301,6 @@ int phys_mem_access_prot_allowed(struct file *file, unsigned long pfn,
+ /* Install a pte for a particular vaddr in kernel space. */
+ void set_pte_vaddr(unsigned long vaddr, pte_t pte);
+-extern void native_pagetable_reserve(u64 start, u64 end);
+ #ifdef CONFIG_X86_32
+ extern void native_pagetable_setup_start(pgd_t *base);
+ extern void native_pagetable_setup_done(pgd_t *base);
+diff --git a/arch/x86/include/asm/x86_init.h b/arch/x86/include/asm/x86_init.h
+index 38155f6..b527dd4 100644
+--- a/arch/x86/include/asm/x86_init.h
++++ b/arch/x86/include/asm/x86_init.h
+@@ -69,17 +69,6 @@ struct x86_init_oem {
+ };
+ /**
+- * struct x86_init_mapping - platform specific initial kernel pagetable setup
+- * @pagetable_reserve:        reserve a range of addresses for kernel pagetable usage
+- *
+- * For more details on the purpose of this hook, look in
+- * init_memory_mapping and the commit that added it.
+- */
+-struct x86_init_mapping {
+-      void (*pagetable_reserve)(u64 start, u64 end);
+-};
+-
+-/**
+  * struct x86_init_paging - platform specific paging functions
+  * @pagetable_setup_start:    platform specific pre paging_init() call
+  * @pagetable_setup_done:     platform specific post paging_init() call
+@@ -135,7 +124,6 @@ struct x86_init_ops {
+       struct x86_init_mpparse         mpparse;
+       struct x86_init_irqs            irqs;
+       struct x86_init_oem             oem;
+-      struct x86_init_mapping         mapping;
+       struct x86_init_paging          paging;
+       struct x86_init_timers          timers;
+       struct x86_init_iommu           iommu;
+diff --git a/arch/x86/kernel/x86_init.c b/arch/x86/kernel/x86_init.c
+index 9f3167e..040c05f 100644
+--- a/arch/x86/kernel/x86_init.c
++++ b/arch/x86/kernel/x86_init.c
+@@ -63,10 +63,6 @@ struct x86_init_ops x86_init __initdata = {
+               .banner                 = default_banner,
+       },
+-      .mapping = {
+-              .pagetable_reserve              = native_pagetable_reserve,
+-      },
+-
+       .paging = {
+               .pagetable_setup_start  = native_pagetable_setup_start,
+               .pagetable_setup_done   = native_pagetable_setup_done,
+diff --git a/arch/x86/mm/init.c b/arch/x86/mm/init.c
+index e0e6990..c449873 100644
+--- a/arch/x86/mm/init.c
++++ b/arch/x86/mm/init.c
+@@ -90,11 +90,6 @@ static void __init find_early_table_space(struct map_range *mr, unsigned long en
+               (pgt_buf_top << PAGE_SHIFT) - 1);
+ }
+-void __init native_pagetable_reserve(u64 start, u64 end)
+-{
+-      memblock_reserve(start, end - start);
+-}
+-
+ #ifdef CONFIG_X86_32
+ #define NR_RANGE_MR 3
+ #else /* CONFIG_X86_64 */
+@@ -283,22 +278,11 @@ unsigned long __init_refok init_memory_mapping(unsigned long start,
+       /*
+        * Reserve the kernel pagetable pages we used (pgt_buf_start -
+-       * pgt_buf_end) and free the other ones (pgt_buf_end - pgt_buf_top)
+-       * so that they can be reused for other purposes.
+-       *
+-       * On native it just means calling memblock_reserve, on Xen it also
+-       * means marking RW the pagetable pages that we allocated before
+-       * but that haven't been used.
+-       *
+-       * In fact on xen we mark RO the whole range pgt_buf_start -
+-       * pgt_buf_top, because we have to make sure that when
+-       * init_memory_mapping reaches the pagetable pages area, it maps
+-       * RO all the pagetable pages, including the ones that are beyond
+-       * pgt_buf_end at that time.
++       * pgt_buf_end).
+        */
+       if (!after_bootmem && pgt_buf_end > pgt_buf_start)
+-              x86_init.mapping.pagetable_reserve(PFN_PHYS(pgt_buf_start),
+-                              PFN_PHYS(pgt_buf_end));
++              memblock_reserve(PFN_PHYS(pgt_buf_start),
++                               PFN_PHYS(pgt_buf_end) - PFN_PHYS(pgt_buf_start));
+       if (!after_bootmem)
+               early_memtest(start, end);
+diff --git a/arch/x86/xen/mmu.c b/arch/x86/xen/mmu.c
+index b65a761..e55dfc0 100644
+--- a/arch/x86/xen/mmu.c
++++ b/arch/x86/xen/mmu.c
+@@ -1178,20 +1178,6 @@ static void __init xen_pagetable_setup_start(pgd_t *base)
+ {
+ }
+-static __init void xen_mapping_pagetable_reserve(u64 start, u64 end)
+-{
+-      /* reserve the range used */
+-      native_pagetable_reserve(start, end);
+-
+-      /* set as RW the rest */
+-      printk(KERN_DEBUG "xen: setting RW the range %llx - %llx\n", end,
+-                      PFN_PHYS(pgt_buf_top));
+-      while (end < PFN_PHYS(pgt_buf_top)) {
+-              make_lowmem_page_readwrite(__va(end));
+-              end += PAGE_SIZE;
+-      }
+-}
+-
+ static void xen_post_allocator_init(void);
+ static void __init xen_pagetable_setup_done(pgd_t *base)
+@@ -2067,7 +2053,6 @@ static const struct pv_mmu_ops xen_mmu_ops __initconst = {
+ void __init xen_init_mmu_ops(void)
+ {
+-      x86_init.mapping.pagetable_reserve = xen_mapping_pagetable_reserve;
+       x86_init.paging.pagetable_setup_start = xen_pagetable_setup_start;
+       x86_init.paging.pagetable_setup_done = xen_pagetable_setup_done;
+       pv_mmu_ops = xen_mmu_ops;
+-- 
+1.7.2.5
+
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<502BD5C302000078000952AD@nat28.tlf.novell.com> b/config/examples/test/corpus/<502BD5C302000078000952AD@nat28.tlf.novell.com>
new file mode 100644 (file)
index 0000000..de5b9da
--- /dev/null
@@ -0,0 +1,127 @@
+From xen-devel-bounces@lists.xen.org Wed Aug 15 16:03:47 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 15 Aug 2012 16:03:47 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T1f8K-0006hv-KN
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 15 Aug 2012 16:03:47 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T1f4w-00085h-7R; Wed, 15 Aug 2012 15:00:14 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <JBeulich@suse.com>) id 1T1f4u-00085a-Sr
+       for xen-devel@lists.xen.org; Wed, 15 Aug 2012 15:00:13 +0000
+Received: from [85.158.138.51:47300] by server-12.bemta-3.messagelabs.com id
+       DA/67-04073-C79BB205; Wed, 15 Aug 2012 15:00:12 +0000
+X-Env-Sender: JBeulich@suse.com
+X-Msg-Ref: server-13.tower-174.messagelabs.com!1345042811!9749670!1
+X-Originating-IP: [130.57.49.28]
+X-SpamReason: No, hits=0.3 required=7.0 tests=MAILTO_TO_SPAM_ADDR
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 15772 invoked from network); 15 Aug 2012 15:00:11 -0000
+Received: from nat28.tlf.novell.com (HELO nat28.tlf.novell.com) (130.57.49.28)
+       by server-13.tower-174.messagelabs.com with SMTP;
+       15 Aug 2012 15:00:11 -0000
+Received: from EMEA1-MTA by nat28.tlf.novell.com
+       with Novell_GroupWise; Wed, 15 Aug 2012 16:00:11 +0100
+Message-Id: <502BD5C302000078000952AD@nat28.tlf.novell.com>
+X-Mailer: Novell GroupWise Internet Agent 12.0.0 
+Date: Wed, 15 Aug 2012 16:00:51 +0100
+From: "Jan Beulich" <JBeulich@suse.com>
+To: "tupeng212" <tupeng212@gmail.com>
+References: <502A3BBC0200007800094B68@nat28.tlf.novell.com>
+       <2012081522045495397713@gmail.com>
+In-Reply-To: <2012081522045495397713@gmail.com>
+Mime-Version: 1.0
+Content-Disposition: inline
+Cc: Yang Z Zhang <yang.z.zhang@intel.com>, Tim Deegan <tim@xen.org>,
+       Keir Fraser <keir@xen.org>, xen-devel <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH,
+ RFC v2] x86/HVM: assorted RTC emulation adjustments (was Re: Big
+ Bug:Time in VM goes slower...)
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+>>> On 15.08.12 at 16:07, tupeng212 <tupeng212@gmail.com> wrote:
+> Hi, Jan:
+> I am sorry I really don't have much time to try a test of your patch, and it 
+> is not convenient
+> for me to have a try. For the version I have been using is xen4.0.x, and 
+> your patch is based on 
+> the latest version xen4.2.x.(I have never complied the unstable one), so I 
+> merged your patch to my 
+> xen4.0.x, still couldn't find the two functions below:
+>  static void rtc_update_timer2(void *opaque) 
+>  static void rtc_alarm_cb(void *opaque) 
+> so I didn't merge the two functions which contains a rtc_toggle_irq() .
+
+Which looks quite right for the older tree.
+
+> The results for me were these:
+> 1 In my real application environment, it worked very well in the former 
+> 5mins, much better than before,
+>  but at last it lagged again. I don't know whether it belongs to the two 
+> missed functions. I lack the 
+>  ability to figure them out.
+
+Unlikely.
+
+> 2 When I tested my test program which I provided days before, it worked very 
+> well, maybe the program doesn't 
+> emulate the real environment due to the same setting rate, so I modified 
+> this program as which in the attachment.
+
+Okay, so we're at least moving in the right direction.
+
+> if you are more convenient, you can help me to have a look of it.
+> And I have a opinion, because our product is based on Version Xen4.0.x, if 
+> you have enough time, can you write 
+> another patch based http://xenbits.xen.org/hg/xen-4.0-testing.hg/ for me, 
+> thank you very much!
+
+You seem to have done the right thing, so I don't see an
+immediate need.
+
+> 3 I also have a thought that can we have some detecting methods to find the 
+> lagging time earlier to adjust time
+> back to normal value in the code?
+
+For that we'd first need to understand what the reason for the
+remaining mis-behavior is.
+
+Jan
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<502BD943.8030701@citrix.com> b/config/examples/test/corpus/<502BD943.8030701@citrix.com>
new file mode 100644 (file)
index 0000000..d6a691e
--- /dev/null
@@ -0,0 +1,123 @@
+From xen-devel-bounces@lists.xen.org Wed Aug 15 18:32:25 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 15 Aug 2012 18:32:25 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T1hSA-0007QM-OK
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 15 Aug 2012 18:32:25 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T1hOG-0004G4-7n; Wed, 15 Aug 2012 17:28:20 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <attilio.rao@citrix.com>) id 1T1hOE-0004Fx-ND
+       for xen-devel@lists.xen.org; Wed, 15 Aug 2012 17:28:18 +0000
+Received: from [85.158.138.51:8203] by server-5.bemta-3.messagelabs.com id
+       25/B7-08865-13CDB205; Wed, 15 Aug 2012 17:28:17 +0000
+X-Env-Sender: attilio.rao@citrix.com
+X-Msg-Ref: server-5.tower-174.messagelabs.com!1345051697!28539899!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDkxOTE=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 10067 invoked from network); 15 Aug 2012 17:28:17 -0000
+Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-5.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
+       15 Aug 2012 17:28:17 -0000
+X-IronPort-AV: E=Sophos;i="4.77,774,1336348800"; d="scan'208";a="14024975"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       15 Aug 2012 17:28:16 +0000
+Received: from [10.80.3.221] (10.80.3.221) by LONPMAILMX01.citrite.net
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0;
+       Wed, 15 Aug 2012 18:28:16 +0100
+Message-ID: <502BD943.8030701@citrix.com>
+Date: Wed, 15 Aug 2012 18:15:47 +0100
+From: Attilio Rao <attilio.rao@citrix.com>
+User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US;
+       rv:1.9.1.16) Gecko/20111110 Icedove/3.0.11
+MIME-Version: 1.0
+To: Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+References: <1344947062-4796-1-git-send-email-attilio.rao@citrix.com>
+       <1344947062-4796-2-git-send-email-attilio.rao@citrix.com>
+       <alpine.DEB.2.02.1208151824250.2278@kaball.uk.xensource.com>
+In-Reply-To: <alpine.DEB.2.02.1208151824250.2278@kaball.uk.xensource.com>
+Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Transfer-Encoding: 7bit
+Content-Type: text/plain; charset="us-ascii"; Format="flowed"
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH v2 1/2] XEN,
+ X86: Improve semantic support for pagetable_reserve PVOPS
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On 15/08/12 18:25, Stefano Stabellini wrote:
+> On Tue, 14 Aug 2012, Attilio Rao wrote:
+>    
+>> - Allow xen_mapping_pagetable_reserve() to handle a start different from
+>>    pgt_buf_start, but still bigger than it.
+>> - Add checks to xen_mapping_pagetable_reserve() and native_pagetable_reserve()
+>>    for verifying start and end are contained in the range
+>>    [pgt_buf_start, pgt_buf_top].
+>> - In xen_mapping_pagetable_reserve(), change printk into pr_debug.
+>> - In xen_mapping_pagetable_reserve(), print out diagnostic only if there is
+>>    an actual need to do that (or, in other words, if there are actually some
+>>    pages going to switch from RO to RW).
+>>
+>> Signed-off-by: Attilio Rao<attilio.rao@citrix.com>
+>> ---
+>>   arch/x86/mm/init.c |    4 ++++
+>>   arch/x86/xen/mmu.c |   22 ++++++++++++++++++++--
+>>   2 files changed, 24 insertions(+), 2 deletions(-)
+>>
+>> diff --git a/arch/x86/mm/init.c b/arch/x86/mm/init.c
+>> index e0e6990..c5849b6 100644
+>> --- a/arch/x86/mm/init.c
+>> +++ b/arch/x86/mm/init.c
+>> @@ -92,6 +92,10 @@ static void __init find_early_table_space(struct map_range *mr, unsigned long en
+>>
+>>   void __init native_pagetable_reserve(u64 start, u64 end)
+>>   {
+>> +   if (start<  PFN_PHYS(pgt_buf_start) || end>  PFN_PHYS(pgt_buf_top))
+>> +           panic("Invalid address range: [%llu - %llu] should be a subset of [%llu - %llu]\n"
+>>      
+> code style (you can check whether your patch breaks the code style with
+> scripts/checkpatch.pl)
+>    
+
+I actually did before to submit, it reported 0 errors/warning.
+Do you have an handy link on where I can find a style guide for Linux 
+kernel? I tried to follow what other parts of the code do.
+
+Attilio
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<502BEEAD.7030906@citrix.com> b/config/examples/test/corpus/<502BEEAD.7030906@citrix.com>
new file mode 100644 (file)
index 0000000..25efffd
--- /dev/null
@@ -0,0 +1,140 @@
+From xen-devel-bounces@lists.xen.org Wed Aug 15 20:04:26 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 15 Aug 2012 20:04:26 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T1itD-0007fj-MH
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 15 Aug 2012 20:04:26 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T1iob-00064w-Ka; Wed, 15 Aug 2012 18:59:37 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <attilio.rao@citrix.com>) id 1T1ioZ-00064r-Mh
+       for xen-devel@lists.xen.org; Wed, 15 Aug 2012 18:59:35 +0000
+Received: from [85.158.143.99:63584] by server-2.bemta-4.messagelabs.com id
+       CC/2E-31966-691FB205; Wed, 15 Aug 2012 18:59:34 +0000
+X-Env-Sender: attilio.rao@citrix.com
+X-Msg-Ref: server-16.tower-216.messagelabs.com!1345057174!17163407!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDkxOTE=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 30900 invoked from network); 15 Aug 2012 18:59:34 -0000
+Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-16.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
+       15 Aug 2012 18:59:34 -0000
+X-IronPort-AV: E=Sophos;i="4.77,774,1336348800"; d="scan'208";a="14025892"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       15 Aug 2012 18:59:34 +0000
+Received: from [10.80.3.221] (10.80.3.221) by LONPMAILMX01.citrite.net
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0;
+       Wed, 15 Aug 2012 19:59:34 +0100
+Message-ID: <502BEEAD.7030906@citrix.com>
+Date: Wed, 15 Aug 2012 19:47:09 +0100
+From: Attilio Rao <attilio.rao@citrix.com>
+User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US;
+       rv:1.9.1.16) Gecko/20111110 Icedove/3.0.11
+MIME-Version: 1.0
+To: Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+References: <1344947062-4796-1-git-send-email-attilio.rao@citrix.com>
+       <1344947062-4796-2-git-send-email-attilio.rao@citrix.com>
+       <alpine.DEB.2.02.1208151824250.2278@kaball.uk.xensource.com>
+       <502BD943.8030701@citrix.com>
+       <alpine.DEB.2.02.1208151844230.2278@kaball.uk.xensource.com>
+In-Reply-To: <alpine.DEB.2.02.1208151844230.2278@kaball.uk.xensource.com>
+Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Transfer-Encoding: 7bit
+Content-Type: text/plain; charset="us-ascii"; Format="flowed"
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH v2 1/2] XEN,
+ X86: Improve semantic support for pagetable_reserve PVOPS
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On 15/08/12 18:46, Stefano Stabellini wrote:
+> On Wed, 15 Aug 2012, Attilio Rao wrote:
+>    
+>> On 15/08/12 18:25, Stefano Stabellini wrote:
+>>      
+>>> On Tue, 14 Aug 2012, Attilio Rao wrote:
+>>>
+>>>        
+>>>> - Allow xen_mapping_pagetable_reserve() to handle a start different from
+>>>>     pgt_buf_start, but still bigger than it.
+>>>> - Add checks to xen_mapping_pagetable_reserve() and native_pagetable_reserve()
+>>>>     for verifying start and end are contained in the range
+>>>>     [pgt_buf_start, pgt_buf_top].
+>>>> - In xen_mapping_pagetable_reserve(), change printk into pr_debug.
+>>>> - In xen_mapping_pagetable_reserve(), print out diagnostic only if there is
+>>>>     an actual need to do that (or, in other words, if there are actually some
+>>>>     pages going to switch from RO to RW).
+>>>>
+>>>> Signed-off-by: Attilio Rao<attilio.rao@citrix.com>
+>>>> ---
+>>>>    arch/x86/mm/init.c |    4 ++++
+>>>>    arch/x86/xen/mmu.c |   22 ++++++++++++++++++++--
+>>>>    2 files changed, 24 insertions(+), 2 deletions(-)
+>>>>
+>>>> diff --git a/arch/x86/mm/init.c b/arch/x86/mm/init.c
+>>>> index e0e6990..c5849b6 100644
+>>>> --- a/arch/x86/mm/init.c
+>>>> +++ b/arch/x86/mm/init.c
+>>>> @@ -92,6 +92,10 @@ static void __init find_early_table_space(struct map_range *mr, unsigned long en
+>>>>
+>>>>    void __init native_pagetable_reserve(u64 start, u64 end)
+>>>>    {
+>>>> + if (start<   PFN_PHYS(pgt_buf_start) || end>   PFN_PHYS(pgt_buf_top))
+>>>> +         panic("Invalid address range: [%llu - %llu] should be a subset of [%llu - %llu]\n"
+>>>>
+>>>>          
+>>> code style (you can check whether your patch breaks the code style with
+>>> scripts/checkpatch.pl)
+>>>
+>>>        
+>> I actually did before to submit, it reported 0 errors/warning.
+>>      
+> strange, that really looks like a line over 80 chars
+>
+>    
+
+Actually code style explicitely says to not break strings because they 
+want to retain the ability to grep. In FreeBSD this is the same and I 
+think this is why checkpatch doesn't whine. I don't think there is a bug 
+here.
+
+Can I submit the patch as it is, then?
+
+Attilio
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<502BEF5E.1080105@citrix.com> b/config/examples/test/corpus/<502BEF5E.1080105@citrix.com>
new file mode 100644 (file)
index 0000000..f6f2af9
--- /dev/null
@@ -0,0 +1,143 @@
+From xen-devel-bounces@lists.xen.org Wed Aug 15 20:08:00 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 15 Aug 2012 20:08:00 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T1iwg-0007gJ-BD
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 15 Aug 2012 20:08:00 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T1is9-0006Eq-A8; Wed, 15 Aug 2012 19:03:17 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <attilio.rao@citrix.com>) id 1T1is7-0006Ej-Ej
+       for xen-devel@lists.xen.org; Wed, 15 Aug 2012 19:03:15 +0000
+Received: from [85.158.143.99:12990] by server-2.bemta-4.messagelabs.com id
+       97/60-31966-272FB205; Wed, 15 Aug 2012 19:03:14 +0000
+X-Env-Sender: attilio.rao@citrix.com
+X-Msg-Ref: server-15.tower-216.messagelabs.com!1345057394!28345233!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDkxOTE=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 23390 invoked from network); 15 Aug 2012 19:03:14 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-15.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
+       15 Aug 2012 19:03:14 -0000
+X-IronPort-AV: E=Sophos;i="4.77,774,1336348800"; d="scan'208";a="14025933"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       15 Aug 2012 19:02:31 +0000
+Received: from [10.80.3.221] (10.80.3.221) by LONPMAILMX01.citrite.net
+       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0;
+       Wed, 15 Aug 2012 20:02:31 +0100
+Message-ID: <502BEF5E.1080105@citrix.com>
+Date: Wed, 15 Aug 2012 19:50:06 +0100
+From: Attilio Rao <attilio.rao@citrix.com>
+User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US;
+       rv:1.9.1.16) Gecko/20111110 Icedove/3.0.11
+MIME-Version: 1.0
+To: Ian Campbell <Ian.Campbell@citrix.com>
+References: <1344947062-4796-1-git-send-email-attilio.rao@citrix.com>  
+       <1344947062-4796-2-git-send-email-attilio.rao@citrix.com>       
+       <alpine.DEB.2.02.1208151824250.2278@kaball.uk.xensource.com>    
+       <502BD943.8030701@citrix.com>   
+       <alpine.DEB.2.02.1208151844230.2278@kaball.uk.xensource.com>
+       <1345056190.12434.34.camel@dagon.hellion.org.uk>
+In-Reply-To: <1345056190.12434.34.camel@dagon.hellion.org.uk>
+Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
+       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Transfer-Encoding: 7bit
+Content-Type: text/plain; charset="us-ascii"; Format="flowed"
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH v2 1/2] XEN,
+ X86: Improve semantic support for pagetable_reserve PVOPS
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On 15/08/12 19:43, Ian Campbell wrote:
+> On Wed, 2012-08-15 at 18:46 +0100, Stefano Stabellini wrote:
+>    
+>> On Wed, 15 Aug 2012, Attilio Rao wrote:
+>>      
+>>> On 15/08/12 18:25, Stefano Stabellini wrote:
+>>>        
+>>>> On Tue, 14 Aug 2012, Attilio Rao wrote:
+>>>>
+>>>>          
+>>>>> - Allow xen_mapping_pagetable_reserve() to handle a start different from
+>>>>>     pgt_buf_start, but still bigger than it.
+>>>>> - Add checks to xen_mapping_pagetable_reserve() and native_pagetable_reserve()
+>>>>>     for verifying start and end are contained in the range
+>>>>>     [pgt_buf_start, pgt_buf_top].
+>>>>> - In xen_mapping_pagetable_reserve(), change printk into pr_debug.
+>>>>> - In xen_mapping_pagetable_reserve(), print out diagnostic only if there is
+>>>>>     an actual need to do that (or, in other words, if there are actually some
+>>>>>     pages going to switch from RO to RW).
+>>>>>
+>>>>> Signed-off-by: Attilio Rao<attilio.rao@citrix.com>
+>>>>> ---
+>>>>>    arch/x86/mm/init.c |    4 ++++
+>>>>>    arch/x86/xen/mmu.c |   22 ++++++++++++++++++++--
+>>>>>    2 files changed, 24 insertions(+), 2 deletions(-)
+>>>>>
+>>>>> diff --git a/arch/x86/mm/init.c b/arch/x86/mm/init.c
+>>>>> index e0e6990..c5849b6 100644
+>>>>> --- a/arch/x86/mm/init.c
+>>>>> +++ b/arch/x86/mm/init.c
+>>>>> @@ -92,6 +92,10 @@ static void __init find_early_table_space(struct map_range *mr, unsigned long en
+>>>>>
+>>>>>    void __init native_pagetable_reserve(u64 start, u64 end)
+>>>>>    {
+>>>>> +        if (start<   PFN_PHYS(pgt_buf_start) || end>   PFN_PHYS(pgt_buf_top))
+>>>>> +                panic("Invalid address range: [%llu - %llu] should be a subset of [%llu - %llu]\n"
+>>>>>
+>>>>>            
+>>>> code style (you can check whether your patch breaks the code style with
+>>>> scripts/checkpatch.pl)
+>>>>
+>>>>          
+>>> I actually did before to submit, it reported 0 errors/warning.
+>>>        
+>> strange, that really looks like a line over 80 chars
+>>      
+> Also there should be one space either side of the "<" and">" in the
+> conditional.
+>
+>    
+
+I have no idea why they are reported like that, but in the original 
+patch the space is fine.
+
+Attilio
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<502BF563.8010902@citrix.com> b/config/examples/test/corpus/<502BF563.8010902@citrix.com>
new file mode 100644 (file)
index 0000000..600b7cc
--- /dev/null
@@ -0,0 +1,201 @@
+From xen-devel-bounces@lists.xen.org Wed Aug 15 20:20:31 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 15 Aug 2012 20:20:31 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T1j8l-0007kb-K2
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 15 Aug 2012 20:20:31 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T1j4O-0006Qt-Gw; Wed, 15 Aug 2012 19:15:56 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <david.vrabel@citrix.com>) id 1T1j4N-0006Qo-3p
+       for xen-devel@lists.xen.org; Wed, 15 Aug 2012 19:15:55 +0000
+Received: from [85.158.139.83:35524] by server-12.bemta-5.messagelabs.com id
+       E9/11-22359-A65FB205; Wed, 15 Aug 2012 19:15:54 +0000
+X-Env-Sender: david.vrabel@citrix.com
+X-Msg-Ref: server-15.tower-182.messagelabs.com!1345058150!28237961!1
+X-Originating-IP: [66.165.176.89]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNjQwMTk=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 3557 invoked from network); 15 Aug 2012 19:15:52 -0000
+Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
+       by server-15.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
+       15 Aug 2012 19:15:52 -0000
+X-IronPort-AV: E=Sophos;i="4.77,774,1336363200"; d="scan'208";a="34767090"
+Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
+       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       15 Aug 2012 15:15:49 -0400
+Received: from [10.80.2.76] (10.80.2.76) by FTLPMAILMX02.citrite.net
+       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0; Wed, 15 Aug 2012
+       15:15:49 -0400
+Message-ID: <502BF563.8010902@citrix.com>
+Date: Wed, 15 Aug 2012 20:15:47 +0100
+From: David Vrabel <david.vrabel@citrix.com>
+User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US;
+       rv:1.9.1.16) Gecko/20120428 Iceowl/1.0b1 Icedove/3.0.11
+MIME-Version: 1.0
+To: Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+References: <1344947062-4796-1-git-send-email-attilio.rao@citrix.com>
+       <1344947062-4796-3-git-send-email-attilio.rao@citrix.com>
+       <502A5964.2080509@citrix.com> <502A5CD0.8000201@citrix.com>
+       <502B85D1.8000606@citrix.com>
+       <alpine.DEB.2.02.1208151418380.2278@kaball.uk.xensource.com>
+In-Reply-To: <alpine.DEB.2.02.1208151418380.2278@kaball.uk.xensource.com>
+Cc: Attilio Rao <attilio.rao@citrix.com>,
+       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH v2 2/2] Xen: Document the semantic of the
+ pagetable_reserve PVOPS
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On 15/08/12 14:55, Stefano Stabellini wrote:
+> On Wed, 15 Aug 2012, David Vrabel wrote:
+>> On 14/08/12 15:12, Attilio Rao wrote:
+>>> On 14/08/12 14:57, David Vrabel wrote:
+>>>> On 14/08/12 13:24, Attilio Rao wrote:
+>> After looking at it some more, I think this pv-ops is unnecessary. How
+>> about the following patch to just remove it completely?
+>>
+>> I've only smoke-tested 32-bit and 64-bit dom0 but I think the reasoning
+>> is sound.
+> 
+> Do you have more then 4G to dom0 on those boxes?
+
+I've tested with 6G now, both 64-bit and 32-bit with HIGHPTE.
+
+> It certainly fixed a serious crash at the time it was introduced, see
+> http://marc.info/?l=linux-kernel&m=129901609503574 and
+> http://marc.info/?l=linux-kernel&m=130133909408229. Unless something big
+> changed in kernel_physical_mapping_init, I think we still need it.
+> Depending on the e820 of your test box, the kernel could crash (or not),
+> possibly in different places.
+>
+>>>> Having said that, I couldn't immediately see where pages in (end, 
+>>>> pgt_buf_top] was getting set RO.  Can you point me to where it's 
+>>>> done?
+>>>>
+>>>
+>>> As mentioned in the comment, please look at xen_set_pte_init().
+>>
+>> xen_set_pte_init() only ensures it doesn't set the PTE as writable if it
+>> is already present and read-only.
+> 
+> look at mask_rw_pte and read the threads linked above, unfortunately it
+> is not that simple.
+
+Yes, I was remembering what 32-bit did here.
+
+The 64-bit version is a bit confused and it often ends up /not/ clearing
+RW for the direct mapping of the pages in the pgt_buf because any
+existing RW mappings will be used as-is.  See phys_pte_init() which
+checks for an existing mapping and only sets the PTE if it is not
+already set.
+
+pgd_populate(), pud_populate(), and pmd_populate() take care of clearing
+RW for the newly allocated page table pages, so mask_rw_pte() only needs
+to consider clearing RW for mappings of the the existing page table PFNs
+which all lie outside the range (pt_buf_start, pt_buf_top].
+
+This patch makes it more sensible, and makes removal of the pv-op safe
+if pgt_buf lies outside the initial mapping.
+
+index 04c1f61..2fd5e86 100644
+--- a/arch/x86/xen/mmu.c
++++ b/arch/x86/xen/mmu.c
+@@ -1400,14 +1400,13 @@ static pte_t __init mask_rw_pte(pte_t *ptep,
+pte_t pte)
+       unsigned long pfn = pte_pfn(pte);
+
+       /*
+-       * If the new pfn is within the range of the newly allocated
+-       * kernel pagetable, and it isn't being mapped into an
+-       * early_ioremap fixmap slot as a freshly allocated page, make sure
+-       * it is RO.
++       * If this is a PTE of an early_ioremap fixmap slot but
++       * outside the range (pgt_buf_start, pgt_buf_top], then this
++       * PTE is mapping a PFN in the current page table.  Make
++       * sure it is RO.
+        */
+-      if (((!is_early_ioremap_ptep(ptep) &&
+-                      pfn >= pgt_buf_start && pfn < pgt_buf_top)) ||
+-                      (is_early_ioremap_ptep(ptep) && pfn != (pgt_buf_end - 1)))
++      if (is_early_ioremap_ptep(ptep)
++          && (pfn < pgt_buf_start || pfn >= pgt_buf_top))
+               pte = pte_wrprotect(pte);
+
+       return pte;
+
+
+>> 8<----------------------
+>> x86: remove x86_init.mapping.pagetable_reserve paravirt op
+>>
+>> The x86_init.mapping.pagetable_reserve paravirt op is used for Xen
+>> guests to set the writable flag for the mapping of (pgt_buf_end,
+>> pgt_buf_top].  This is not necessary as these pages are never set as
+>> read-only as they have never contained page tables.
+> 
+> Is this actually true? It is possible when pagetable pages are
+> allocated by alloc_low_page.
+
+These newly allocated page table pages will be set read-only when they
+are linked into the page tables with pgd_populate(), pud_populate() and
+friends.
+
+>> When running as a Xen guest, the initial page tables are provided by
+>> Xen (these are reserved with memblock_reserve() in
+>> xen_setup_kernel_pagetable()) and constructed in brk space (for 32-bit
+>> guests) or in the kernel's .data section (for 64-bit guests, see
+>> head_64.S).
+>>
+>> Since these are all marked as reserved, (pgt_buf_start, pgt_buf_top]
+>> does not overlap with them and the mappings for these PFNs will be
+>> read-write.
+> 
+> We are talking about pagetable pages built by
+> kernel_physical_mapping_init.
+> 
+> 
+>> Since Xen doesn't need to change the mapping its implementation
+>> becomes the same as a native and we can simply remove this pv-op
+>> completely.
+> 
+> I don't think so.
+
+David
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<502CC9D702000078000955B9@nat28.tlf.novell.com> b/config/examples/test/corpus/<502CC9D702000078000955B9@nat28.tlf.novell.com>
new file mode 100644 (file)
index 0000000..965d317
--- /dev/null
@@ -0,0 +1,94 @@
+From xen-devel-bounces@lists.xen.org Thu Aug 16 09:26:00 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 16 Aug 2012 09:26:00 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T1vOw-00064s-5y
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 16 Aug 2012 09:26:00 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T1vKl-0002o9-Kk; Thu, 16 Aug 2012 08:21:39 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <JBeulich@suse.com>) id 1T1vKk-0002o4-0E
+       for xen-devel@lists.xen.org; Thu, 16 Aug 2012 08:21:38 +0000
+Received: from [85.158.139.83:4566] by server-11.bemta-5.messagelabs.com id
+       4E/79-29296-19DAC205; Thu, 16 Aug 2012 08:21:37 +0000
+X-Env-Sender: JBeulich@suse.com
+X-Msg-Ref: server-14.tower-182.messagelabs.com!1345105296!24148334!1
+X-Originating-IP: [130.57.49.28]
+X-SpamReason: No, hits=0.8 required=7.0 tests=BODY_RANDOM_LONG,
+       MAILTO_TO_SPAM_ADDR
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 26151 invoked from network); 16 Aug 2012 08:21:36 -0000
+Received: from nat28.tlf.novell.com (HELO nat28.tlf.novell.com) (130.57.49.28)
+       by server-14.tower-182.messagelabs.com with SMTP;
+       16 Aug 2012 08:21:36 -0000
+Received: from EMEA1-MTA by nat28.tlf.novell.com
+       with Novell_GroupWise; Thu, 16 Aug 2012 09:21:35 +0100
+Message-Id: <502CC9D702000078000955B9@nat28.tlf.novell.com>
+X-Mailer: Novell GroupWise Internet Agent 12.0.0 
+Date: Thu, 16 Aug 2012 09:22:15 +0100
+From: "Jan Beulich" <JBeulich@suse.com>
+To: "tupeng212" <tupeng212@gmail.com>
+References: <502A3BBC0200007800094B68@nat28.tlf.novell.com>,
+       <2012081522045495397713@gmail.com> <2012081522121039050717@gmail.com>
+In-Reply-To: <2012081522121039050717@gmail.com>
+Mime-Version: 1.0
+Content-Disposition: inline
+Cc: Yang Z Zhang <yang.z.zhang@intel.com>, Tim Deegan <tim@xen.org>,
+       Keir Fraser <keir@xen.org>, xen-devel <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH,
+ RFC v2] x86/HVM: assorted RTC emulation adjustments (was Re: Big
+ Bug:Time in VM goes slower...)
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+>>> On 15.08.12 at 16:12, tupeng212 <tupeng212@gmail.com> wrote:
+> The results for me were these:
+> 1 In my real application environment, it worked very well in the former 
+> 5mins, much better than before,
+>  but at last it lagged again. I don't know whether it belongs to the two 
+> missed functions. I lack the 
+>  ability to figure them out.
+
+Did you check whether possibly the guest kernel started flipping
+between to rate values? If so, that is something that we could
+deal with too (yet it might be a bit involved, so I'd like to avoid
+going that route if it would lead nowhere).
+
+Jan
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<502D04AA.8030107@citrix.com> b/config/examples/test/corpus/<502D04AA.8030107@citrix.com>
new file mode 100644 (file)
index 0000000..73c3c90
--- /dev/null
@@ -0,0 +1,208 @@
+From xen-devel-bounces@lists.xen.org Thu Aug 16 15:37:25 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 16 Aug 2012 15:37:25 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T21CK-0007Ul-5U
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 16 Aug 2012 15:37:25 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T218S-0005Ot-V5; Thu, 16 Aug 2012 14:33:20 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <david.vrabel@citrix.com>) id 1T218R-0005OS-NN
+       for xen-devel@lists.xen.org; Thu, 16 Aug 2012 14:33:19 +0000
+Received: from [85.158.143.99:56022] by server-2.bemta-4.messagelabs.com id
+       B1/E2-31966-FA40D205; Thu, 16 Aug 2012 14:33:19 +0000
+X-Env-Sender: david.vrabel@citrix.com
+X-Msg-Ref: server-6.tower-216.messagelabs.com!1345127596!21493224!1
+X-Originating-IP: [66.165.176.63]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyNzE3OTY=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 8013 invoked from network); 16 Aug 2012 14:33:18 -0000
+Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
+       by server-6.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
+       16 Aug 2012 14:33:18 -0000
+X-IronPort-AV: E=Sophos;i="4.77,778,1336363200"; d="scan'208";a="205375467"
+Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
+       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       16 Aug 2012 10:33:16 -0400
+Received: from [10.80.2.76] (10.80.2.76) by FTLPMAILMX02.citrite.net
+       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0; Thu, 16 Aug 2012
+       10:33:16 -0400
+Message-ID: <502D04AA.8030107@citrix.com>
+Date: Thu, 16 Aug 2012 15:33:14 +0100
+From: David Vrabel <david.vrabel@citrix.com>
+User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US;
+       rv:1.9.1.16) Gecko/20120428 Iceowl/1.0b1 Icedove/3.0.11
+MIME-Version: 1.0
+To: Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+References: <1344947062-4796-1-git-send-email-attilio.rao@citrix.com>
+       <1344947062-4796-3-git-send-email-attilio.rao@citrix.com>
+       <502A5964.2080509@citrix.com> <502A5CD0.8000201@citrix.com>
+       <502B85D1.8000606@citrix.com>
+       <alpine.DEB.2.02.1208151418380.2278@kaball.uk.xensource.com>
+       <502BF563.8010902@citrix.com>
+       <alpine.DEB.2.02.1208161200200.2278@kaball.uk.xensource.com>
+In-Reply-To: <alpine.DEB.2.02.1208161200200.2278@kaball.uk.xensource.com>
+Cc: Attilio Rao <attilio.rao@citrix.com>,
+       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH v2 2/2] Xen: Document the semantic of the
+ pagetable_reserve PVOPS
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On 16/08/12 12:07, Stefano Stabellini wrote:
+> On Wed, 15 Aug 2012, David Vrabel wrote:
+>> On 15/08/12 14:55, Stefano Stabellini wrote:
+>>> On Wed, 15 Aug 2012, David Vrabel wrote:
+>>>> On 14/08/12 15:12, Attilio Rao wrote:
+>>>>> On 14/08/12 14:57, David Vrabel wrote:
+>>>>>> On 14/08/12 13:24, Attilio Rao wrote:
+>>>> After looking at it some more, I think this pv-ops is unnecessary. How
+>>>> about the following patch to just remove it completely?
+>>>>
+>>>> I've only smoke-tested 32-bit and 64-bit dom0 but I think the reasoning
+>>>> is sound.
+>>>
+>>> Do you have more then 4G to dom0 on those boxes?
+>>
+>> I've tested with 6G now, both 64-bit and 32-bit with HIGHPTE.
+>>
+>>> It certainly fixed a serious crash at the time it was introduced, see
+>>> http://marc.info/?l=linux-kernel&m=129901609503574 and
+>>> http://marc.info/?l=linux-kernel&m=130133909408229. Unless something big
+>>> changed in kernel_physical_mapping_init, I think we still need it.
+>>> Depending on the e820 of your test box, the kernel could crash (or not),
+>>> possibly in different places.
+
+FYI, it looks like pgt_buf is now located low down, which is why these
+changes worked for me.  Possibly this changed as part of a memblock
+refactor.
+
+>>>>>> Having said that, I couldn't immediately see where pages in (end, 
+>>>>>> pgt_buf_top] was getting set RO.  Can you point me to where it's 
+>>>>>> done?
+>>>>>>
+>>>>>
+>>>>> As mentioned in the comment, please look at xen_set_pte_init().
+>>>>
+>>>> xen_set_pte_init() only ensures it doesn't set the PTE as writable if it
+>>>> is already present and read-only.
+>>>
+>>> look at mask_rw_pte and read the threads linked above, unfortunately it
+>>> is not that simple.
+>>
+>> Yes, I was remembering what 32-bit did here.
+>>
+>> The 64-bit version is a bit confused and it often ends up /not/ clearing
+>> RW for the direct mapping of the pages in the pgt_buf because any
+>> existing RW mappings will be used as-is.  See phys_pte_init() which
+>> checks for an existing mapping and only sets the PTE if it is not
+>> already set.
+> 
+> not all the pagetable pages might be already mapped, even if they are
+> already hooked into the pagetable
+
+Yes, I think this is easy to handle though.
+
+    /*
+     * Make sure that active page table pages are not mapped RW.
+     */
+    if (is_early_ioremap_ptep(ptep)) {
+        /*
+         * If we're updating an early ioremap PTE, then this PFN may
+         * already be in the linear mapping.  If it is, use the
+         * existing RW bit.
+         */
+        unsigned int level;
+        pte_t *linear_pte;
+
+        linear_pte = lookup_address(__va(PFN_PHYS(pfn)), &level);
+        if (linear_pte && !pte_write(*linear_pt))
+            pte = pte_wrprotect(pte);
+    } else if (pfn >= pgt_buf_start && pfn < pgt_buf_end) {
+        /*
+         * The PFN may not be mapped but may be hooked into the page
+         * tables.  Make sure this new mapping is read-only.
+         */
+        pte = pte_wrprotect(pte);
+    }
+
+However, the real subtlety are page tables that are mapped as they
+themselves are hooked in.
+
+As as example, let's say pgt_buf_start (s) is on a 1 GiB boundary and
+pgt_buf_top (t) is below the next 2 MiB boundary.  We're mapping memory
+with 4 KiB pages from s to s + 4 MiB.  This requires a new PUD and two
+new PMDs.
+
+To map this region:
+
+1. Allocate a new PUD. (@ e = pgt_buf_end)
+
+2. Allocate a new PMD. (@ e + 1)
+
+3. Fill in this PMD's PTEs.  This covers pgt_buf so sets (s, e + 1) as RO.
+
+4. Call pmd_populate() to hook-in this PMD.  This does not set e+1 as RO
+(but this is ok as it already is).
+
+5. Allocate a new PMD  (@ e + 2)
+
+6. Fill in this PMD's PTEs.
+
+7. Call pmd_populate() to hook in this PMD.  This does not set e+2 as RO
+as the region isn't mapped yet.
+
+8. Call pud_populate() to hook in this PUD.  This sets e as RO but e + 2
+is still RW.
+
+9. Boom!
+
+It may be possible to fixup the permissions as the pages are hooked in.
+ i.e., if this page's entries cover (pgt_buf_start, pgt_buf_end], walk
+the entries and any child tables and fixup the permissions of the leaf
+entries.
+
+This would walk the tables a few times unless we were careful to only
+walk them when hooking a page into an active table.
+
+It was fun trying to understand this, but I think I'll give up now...
+
+David
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<502D1C8A0200007800095851@nat28.tlf.novell.com> b/config/examples/test/corpus/<502D1C8A0200007800095851@nat28.tlf.novell.com>
new file mode 100644 (file)
index 0000000..6143034
--- /dev/null
@@ -0,0 +1,102 @@
+From xen-devel-bounces@lists.xen.org Thu Aug 16 15:17:44 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 16 Aug 2012 15:17:44 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T20tH-0007OO-HU
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 16 Aug 2012 15:17:44 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T20qF-000407-B3; Thu, 16 Aug 2012 14:14:31 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <JBeulich@suse.com>) id 1T20qD-0003zg-Iu
+       for xen-devel@lists.xen.org; Thu, 16 Aug 2012 14:14:29 +0000
+Received: from [85.158.139.83:26155] by server-4.bemta-5.messagelabs.com id
+       F5/5D-12386-4400D205; Thu, 16 Aug 2012 14:14:28 +0000
+X-Env-Sender: JBeulich@suse.com
+X-Msg-Ref: server-14.tower-182.messagelabs.com!1345126466!24225976!1
+X-Originating-IP: [130.57.49.28]
+X-SpamReason: No, hits=0.3 required=7.0 tests=MAILTO_TO_SPAM_ADDR
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 19982 invoked from network); 16 Aug 2012 14:14:26 -0000
+Received: from nat28.tlf.novell.com (HELO nat28.tlf.novell.com) (130.57.49.28)
+       by server-14.tower-182.messagelabs.com with SMTP;
+       16 Aug 2012 14:14:26 -0000
+Received: from EMEA1-MTA by nat28.tlf.novell.com
+       with Novell_GroupWise; Thu, 16 Aug 2012 15:14:25 +0100
+Message-Id: <502D1C8A0200007800095851@nat28.tlf.novell.com>
+X-Mailer: Novell GroupWise Internet Agent 12.0.0 
+Date: Thu, 16 Aug 2012 15:15:06 +0100
+From: "Jan Beulich" <JBeulich@suse.com>
+To: "tupeng212" <tupeng212@gmail.com>
+References: <502A3BBC0200007800094B68@nat28.tlf.novell.com>,
+       <2012081522045495397713@gmail.com> <2012081522121039050717@gmail.com>, 
+       <502CC9D702000078000955B9@nat28.tlf.novell.com>
+       <201208162143289686654@gmail.com>
+In-Reply-To: <201208162143289686654@gmail.com>
+Mime-Version: 1.0
+Content-Disposition: inline
+Cc: Yang Z Zhang <yang.z.zhang@intel.com>, Tim Deegan <tim@xen.org>,
+       Keir Fraser <keir@xen.org>, xen-devel <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH,
+ RFC v2] x86/HVM: assorted RTC emulation adjustments (was Re: Big
+ Bug:Time in VM goes slower...)
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+>>> On 16.08.12 at 15:43, tupeng212 <tupeng212@gmail.com> wrote:
+> Dear Jan:
+> I didn't check the flipping in JVM, but from the printing period in xen, 
+> this setting happened(unit: ns):
+> 976562, 976562, 976562, 976562, 15625000, 976562, 976562, 976562, 976562, 
+> 15625000 .....
+> and someone told me windows use these two rate/period only.
+
+Okay, some back and forth is there in any case, but without
+knowing the time distance between the individual instances it's
+hard to tell whether what I'm thinking of might help.
+
+> besides, I checked my former simple tester this morning after it ran for a 
+> whole night, it lagged much.
+
+Could you btw quantify the lagging?
+
+Your tester sets only a single, constant rate repeatedly, right?
+If so, then the thought of adjustment likely won't help.
+
+Jan
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<502D33B8020000780009596B@nat28.tlf.novell.com> b/config/examples/test/corpus/<502D33B8020000780009596B@nat28.tlf.novell.com>
new file mode 100644 (file)
index 0000000..9952d63
--- /dev/null
@@ -0,0 +1,142 @@
+From xen-devel-bounces@lists.xen.org Thu Aug 16 16:57:15 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 16 Aug 2012 16:57:15 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T22Rb-0007x4-Jo
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 16 Aug 2012 16:57:15 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T22Nv-0001I9-1j; Thu, 16 Aug 2012 15:53:23 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <JBeulich@suse.com>) id 1T22Ns-0001I2-Vo
+       for xen-devel@lists.xensource.com; Thu, 16 Aug 2012 15:53:21 +0000
+Received: from [85.158.139.83:10605] by server-11.bemta-5.messagelabs.com id
+       A4/8B-29296-0771D205; Thu, 16 Aug 2012 15:53:20 +0000
+X-Env-Sender: JBeulich@suse.com
+X-Msg-Ref: server-7.tower-182.messagelabs.com!1345132399!24556137!1
+X-Originating-IP: [130.57.49.28]
+X-SpamReason: No, hits=0.0 required=7.0 tests=
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 3701 invoked from network); 16 Aug 2012 15:53:19 -0000
+Received: from nat28.tlf.novell.com (HELO nat28.tlf.novell.com) (130.57.49.28)
+       by server-7.tower-182.messagelabs.com with SMTP;
+       16 Aug 2012 15:53:19 -0000
+Received: from EMEA1-MTA by nat28.tlf.novell.com
+       with Novell_GroupWise; Thu, 16 Aug 2012 16:53:19 +0100
+Message-Id: <502D33B8020000780009596B@nat28.tlf.novell.com>
+X-Mailer: Novell GroupWise Internet Agent 12.0.0 
+Date: Thu, 16 Aug 2012 16:54:00 +0100
+From: "Jan Beulich" <JBeulich@suse.com>
+To: "Stefano Stabellini" <stefano.stabellini@eu.citrix.com>,
+       <xen-devel@lists.xensource.com>
+References: <alpine.DEB.2.02.1208161523420.4850@kaball.uk.xensource.com>
+       <1345128612-10323-4-git-send-email-stefano.stabellini@eu.citrix.com>
+In-Reply-To: <1345128612-10323-4-git-send-email-stefano.stabellini@eu.citrix.com>
+Mime-Version: 1.0
+Content-Disposition: inline
+Cc: tim@xen.org, Ian.Campbell@citrix.com
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH v3 4/6] xen: introduce XEN_GUEST_HANDLE_PARAM
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+>>> On 16.08.12 at 16:50, Stefano Stabellini <stefano.stabellini@eu.citrix.com> wrote:
+> --- a/xen/include/public/arch-arm.h
+> +++ b/xen/include/public/arch-arm.h
+> @@ -51,18 +51,34 @@
+>  
+>  #define XEN_HYPERCALL_TAG   0XEA1
+>  
+> +#define uint64_aligned_t uint64_t __attribute__((aligned(8)))
+>  
+>  #ifndef __ASSEMBLY__
+> -#define ___DEFINE_XEN_GUEST_HANDLE(name, type) \
+> -    typedef struct { type *p; } __guest_handle_ ## name
+> +#define ___DEFINE_XEN_GUEST_HANDLE(name, type)                  \
+> +    typedef struct { type *p; }                                 \
+> +        __guest_handle_ ## name;                                \
+> +    typedef struct { union { type *p; uint64_aligned_t q; }; }  \
+> +        __guest_handle_64_ ## name;
+
+Why struct { union { ... } } instead of just union { ... }?
+
+>  
+> +/*
+> + * XEN_GUEST_HANDLE represents a guest pointer, when passed as a field
+> + * in a struct in memory. On ARM is always 8 bytes sizes and 8 bytes
+> + * aligned.
+> + * XEN_GUEST_HANDLE_PARAM represent a guest pointer, when passed as an
+> + * hypercall argument. It is 4 bytes on aarch and 8 bytes on aarch64.
+> + */
+>  #define __DEFINE_XEN_GUEST_HANDLE(name, type) \
+>      ___DEFINE_XEN_GUEST_HANDLE(name, type);   \
+>      ___DEFINE_XEN_GUEST_HANDLE(const_##name, const type)
+>  #define DEFINE_XEN_GUEST_HANDLE(name)   __DEFINE_XEN_GUEST_HANDLE(name, name)
+> -#define __XEN_GUEST_HANDLE(name)        __guest_handle_ ## name
+> +#define __XEN_GUEST_HANDLE(name)        __guest_handle_64_ ## name
+>  #define XEN_GUEST_HANDLE(name)          __XEN_GUEST_HANDLE(name)
+> -#define set_xen_guest_handle_raw(hnd, val)  do { (hnd).p = val; } while (0)
+> +/* this is going to be changes on 64 bit */
+> +#define XEN_GUEST_HANDLE_PARAM(name)    __guest_handle_ ## name
+> +#define set_xen_guest_handle_raw(hnd, val)                  \
+> +    do { if ( sizeof(hnd) == 8 ) *(uint64_t *)&(hnd) = 0;   \
+
+If you made the "normal" handle a union too, you could avoid
+the explicit cast (which e.g. gcc, when not passed
+-fno-strict-aliasing, will choke on) and instead use (hnd).q (and
+at once avoid the double initialization of the low half).
+
+Also, the condition to do this could be "sizeof(hnd) > sizeof((hnd).p)",
+usable at once for 64-bit avoiding a full double initialization there.
+
+> +         (hnd).p = val;                                     \
+
+In a public header you certainly want to avoid evaluating a
+macro argument twice.
+
+> +    } while ( 0 )
+>  #ifdef __XEN_TOOLS__
+>  #define get_xen_guest_handle(val, hnd)  do { val = (hnd).p; } while (0)
+>  #endif
+
+Seeing the patch I btw realized that there's no easy way to
+avoid having the type as a second argument in the conversion
+macros. Nevertheless I still don't like the explicitly specified type
+there.
+
+Jan
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<502D37D702000078000959F7@nat28.tlf.novell.com> b/config/examples/test/corpus/<502D37D702000078000959F7@nat28.tlf.novell.com>
new file mode 100644 (file)
index 0000000..646e0ce
--- /dev/null
@@ -0,0 +1,89 @@
+From xen-devel-bounces@lists.xen.org Thu Aug 16 17:14:05 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 16 Aug 2012 17:14:05 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T22hv-0008Cx-J7
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 16 Aug 2012 17:14:05 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T22ey-0005k9-NI; Thu, 16 Aug 2012 16:11:00 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <JBeulich@suse.com>) id 1T22ew-0005jp-Hs
+       for xen-devel@lists.xen.org; Thu, 16 Aug 2012 16:10:58 +0000
+Received: from [85.158.138.51:11268] by server-10.bemta-3.messagelabs.com id
+       B6/F6-20518-19B1D205; Thu, 16 Aug 2012 16:10:57 +0000
+X-Env-Sender: JBeulich@suse.com
+X-Msg-Ref: server-13.tower-174.messagelabs.com!1345133456!9970869!1
+X-Originating-IP: [130.57.49.28]
+X-SpamReason: No, hits=0.0 required=7.0 tests=
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 11783 invoked from network); 16 Aug 2012 16:10:56 -0000
+Received: from nat28.tlf.novell.com (HELO nat28.tlf.novell.com) (130.57.49.28)
+       by server-13.tower-174.messagelabs.com with SMTP;
+       16 Aug 2012 16:10:56 -0000
+Received: from EMEA1-MTA by nat28.tlf.novell.com
+       with Novell_GroupWise; Thu, 16 Aug 2012 17:10:56 +0100
+Message-Id: <502D37D702000078000959F7@nat28.tlf.novell.com>
+X-Mailer: Novell GroupWise Internet Agent 12.0.0 
+Date: Thu, 16 Aug 2012 17:11:35 +0100
+From: "Jan Beulich" <JBeulich@suse.com>
+To: "Stefano Stabellini" <stefano.stabellini@eu.citrix.com>
+References: <alpine.DEB.2.02.1208161523420.4850@kaball.uk.xensource.com>
+       <1345128612-10323-4-git-send-email-stefano.stabellini@eu.citrix.com>
+       <502D33B8020000780009596B@nat28.tlf.novell.com>
+In-Reply-To: <502D33B8020000780009596B@nat28.tlf.novell.com>
+Mime-Version: 1.0
+Content-Disposition: inline
+Cc: tim@xen.org, Ian.Campbell@citrix.com, xen-devel <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH v3 4/6] xen: introduce XEN_GUEST_HANDLE_PARAM
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+>>> On 16.08.12 at 17:54, "Jan Beulich" <JBeulich@suse.com> wrote:
+> Seeing the patch I btw realized that there's no easy way to
+> avoid having the type as a second argument in the conversion
+> macros. Nevertheless I still don't like the explicitly specified type
+> there.
+
+Btw - on the architecture(s) where the two handles are identical
+I would prefer you to make the conversion functions trivial (and
+thus avoid making use of the "type" parameter), thus allowing
+the type checking to occur that you currently circumvent.
+
+Jan
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<502E285A0200007800095D04@nat28.tlf.novell.com> b/config/examples/test/corpus/<502E285A0200007800095D04@nat28.tlf.novell.com>
new file mode 100644 (file)
index 0000000..4fbeacb
--- /dev/null
@@ -0,0 +1,110 @@
+From xen-devel-bounces@lists.xen.org Fri Aug 17 10:21:56 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 17 Aug 2012 10:21:56 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T2Ikc-00078A-ML
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 17 Aug 2012 10:21:56 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T2Ig4-0001oI-S0; Fri, 17 Aug 2012 09:17:12 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <JBeulich@suse.com>) id 1T2Ig3-0001oA-4s
+       for xen-devel@lists.xensource.com; Fri, 17 Aug 2012 09:17:11 +0000
+Received: from [85.158.138.51:19200] by server-8.bemta-3.messagelabs.com id
+       AC/34-29583-61C0E205; Fri, 17 Aug 2012 09:17:10 +0000
+X-Env-Sender: JBeulich@suse.com
+X-Msg-Ref: server-11.tower-174.messagelabs.com!1345195029!28769510!1
+X-Originating-IP: [130.57.49.28]
+X-SpamReason: No, hits=0.0 required=7.0 tests=
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 2410 invoked from network); 17 Aug 2012 09:17:09 -0000
+Received: from nat28.tlf.novell.com (HELO nat28.tlf.novell.com) (130.57.49.28)
+       by server-11.tower-174.messagelabs.com with SMTP;
+       17 Aug 2012 09:17:09 -0000
+Received: from EMEA1-MTA by nat28.tlf.novell.com
+       with Novell_GroupWise; Fri, 17 Aug 2012 10:17:09 +0100
+Message-Id: <502E285A0200007800095D04@nat28.tlf.novell.com>
+X-Mailer: Novell GroupWise Internet Agent 12.0.0 
+Date: Fri, 17 Aug 2012 10:17:46 +0100
+From: "Jan Beulich" <JBeulich@suse.com>
+To: "Stefano Stabellini" <stefano.stabellini@eu.citrix.com>
+References: <alpine.DEB.2.02.1208161523420.4850@kaball.uk.xensource.com>
+       <1345128612-10323-4-git-send-email-stefano.stabellini@eu.citrix.com>
+       <502D33B8020000780009596B@nat28.tlf.novell.com>
+       <alpine.DEB.2.02.1208161756140.15568@kaball.uk.xensource.com>
+In-Reply-To: <alpine.DEB.2.02.1208161756140.15568@kaball.uk.xensource.com>
+Mime-Version: 1.0
+Content-Disposition: inline
+Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
+       "Tim \(Xen.org\)" <tim@xen.org>, Ian Campbell <Ian.Campbell@citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH v3 4/6] xen: introduce XEN_GUEST_HANDLE_PARAM
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+>>> On 16.08.12 at 19:08, Stefano Stabellini <stefano.stabellini@eu.citrix.com> wrote:
+> On Thu, 16 Aug 2012, Jan Beulich wrote:
+>> >>> On 16.08.12 at 16:50, Stefano Stabellini <stefano.stabellini@eu.citrix.com>  wrote:
+>> > +#define set_xen_guest_handle_raw(hnd, val)                  \
+>> > +    do { if ( sizeof(hnd) == 8 ) *(uint64_t *)&(hnd) = 0;   \
+>> 
+>> If you made the "normal" handle a union too, you could avoid
+>> the explicit cast (which e.g. gcc, when not passed
+>> -fno-strict-aliasing, will choke on) and instead use (hnd).q (and
+>> at once avoid the double initialization of the low half).
+>> 
+>> Also, the condition to do this could be "sizeof(hnd) > sizeof((hnd).p)",
+>> usable at once for 64-bit avoiding a full double initialization there.
+>> 
+>> > +         (hnd).p = val;                                     \
+>> 
+>> In a public header you certainly want to avoid evaluating a
+>> macro argument twice.
+> 
+> That's a really good suggestion.
+> I am going to make both handles unions and therefore
+> set_xen_guest_handle_raw becomes:
+> 
+> #define set_xen_guest_handle_raw(hnd, val)                  \
+>     do { (hnd).q = 0;                                       \
+>          (hnd).p = val;                                     \
+>     } while ( 0 )
+
+But that still doesn't eliminate the double evaluation of "hnd".
+
+Jan
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<502E2F090200007800095D62@nat28.tlf.novell.com> b/config/examples/test/corpus/<502E2F090200007800095D62@nat28.tlf.novell.com>
new file mode 100644 (file)
index 0000000..7c78a3a
--- /dev/null
@@ -0,0 +1,119 @@
+From xen-devel-bounces@lists.xen.org Fri Aug 17 10:49:21 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 17 Aug 2012 10:49:21 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T2JB9-0007Gx-DI
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 17 Aug 2012 10:49:21 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T2J7r-0003E8-Lq; Fri, 17 Aug 2012 09:45:55 +0000
+Received: from mail27.messagelabs.com ([193.109.254.147])
+       by lists.xen.org with smtp (Exim 4.72)
+       (envelope-from <JBeulich@suse.com>) id 1T2J7p-0003Dy-OY
+       for xen-devel@lists.xen.org; Fri, 17 Aug 2012 09:45:53 +0000
+X-Env-Sender: JBeulich@suse.com
+X-Msg-Ref: server-15.tower-27.messagelabs.com!1345196736!2393719!1
+X-Originating-IP: [130.57.49.28]
+X-SpamReason: No, hits=0.0 required=7.0 tests=
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 29142 invoked from network); 17 Aug 2012 09:45:36 -0000
+Received: from nat28.tlf.novell.com (HELO nat28.tlf.novell.com) (130.57.49.28)
+       by server-15.tower-27.messagelabs.com with SMTP;
+       17 Aug 2012 09:45:36 -0000
+Received: from EMEA1-MTA by nat28.tlf.novell.com
+       with Novell_GroupWise; Fri, 17 Aug 2012 10:45:35 +0100
+Message-Id: <502E2F090200007800095D62@nat28.tlf.novell.com>
+X-Mailer: Novell GroupWise Internet Agent 12.0.0 
+Date: Fri, 17 Aug 2012 10:46:17 +0100
+From: "Jan Beulich" <JBeulich@suse.com>
+To: "Ian Campbell" <Ian.Campbell@citrix.com>,
+       "Stefano Stabellini" <Stefano.Stabellini@eu.citrix.com>
+References: <alpine.DEB.2.02.1208161523420.4850@kaball.uk.xensource.com>
+       <1345128612-10323-4-git-send-email-stefano.stabellini@eu.citrix.com>
+       <502D33B8020000780009596B@nat28.tlf.novell.com>
+       <502D37D702000078000959F7@nat28.tlf.novell.com>
+       <alpine.DEB.2.02.1208161801210.15568@kaball.uk.xensource.com>
+       <1345190532.30865.67.camel@zakaz.uk.xensource.com>
+In-Reply-To: <1345190532.30865.67.camel@zakaz.uk.xensource.com>
+Mime-Version: 1.0
+Content-Disposition: inline
+Cc: "Tim \(Xen.org\)" <tim@xen.org>, xen-devel <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH v3 4/6] xen: introduce XEN_GUEST_HANDLE_PARAM
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+>>> On 17.08.12 at 10:02, Ian Campbell <Ian.Campbell@citrix.com> wrote:
+> On Thu, 2012-08-16 at 18:10 +0100, Stefano Stabellini wrote:
+>> On Thu, 16 Aug 2012, Jan Beulich wrote:
+>> > >>> On 16.08.12 at 17:54, "Jan Beulich" <JBeulich@suse.com> wrote:
+>> > > Seeing the patch I btw realized that there's no easy way to
+>> > > avoid having the type as a second argument in the conversion
+>> > > macros. Nevertheless I still don't like the explicitly specified type
+>> > > there.
+>> > 
+>> > Btw - on the architecture(s) where the two handles are identical
+>> > I would prefer you to make the conversion functions trivial (and
+>> > thus avoid making use of the "type" parameter), thus allowing
+>> > the type checking to occur that you currently circumvent.
+>> 
+>> OK, I can do that.
+> 
+> Will this result in the type parameter potentially becoming stale?
+> 
+> Adding a redundant pointer compare is a good way to get the compiler to
+> catch this. Smth like;
+> 
+>         /* Cast a XEN_GUEST_HANDLE_PARAM to XEN_GUEST_HANDLE */
+>         #define guest_handle_from_param(hnd, type) ({
+>             typeof((hnd).p) _x = (hnd).p;
+>             XEN_GUEST_HANDLE(type) _y;
+>             &_y == &_x;
+>             hnd;
+>          })
+
+Ah yes, that's a good suggestion.
+
+> I'm not sure which two pointers of members of the various structs need
+> to be compared, maybe it's actually &_y.p and &hnd.p, but you get the
+> idea...
+
+Right, comparing (hnd).p with _y.p would be the right thing; no
+need for _x, but some other (mechanical) adjustments would be
+necessary.
+
+Jan
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<502E6A200200007800095E9A@nat28.tlf.novell.com> b/config/examples/test/corpus/<502E6A200200007800095E9A@nat28.tlf.novell.com>
new file mode 100644 (file)
index 0000000..88fe033
--- /dev/null
@@ -0,0 +1,150 @@
+From xen-devel-bounces@lists.xen.org Fri Aug 17 15:01:26 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 17 Aug 2012 15:01:26 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T2N72-00085o-P4
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 17 Aug 2012 15:01:26 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T2N3h-0000mT-Nr; Fri, 17 Aug 2012 13:57:53 +0000
+Received: from mail27.messagelabs.com ([193.109.254.147])
+       by lists.xen.org with smtp (Exim 4.72)
+       (envelope-from <JBeulich@suse.com>) id 1T2N3g-0000mD-IX
+       for xen-devel@lists.xen.org; Fri, 17 Aug 2012 13:57:52 +0000
+X-Env-Sender: JBeulich@suse.com
+X-Msg-Ref: server-8.tower-27.messagelabs.com!1345211864!9860202!1
+X-Originating-IP: [130.57.49.28]
+X-SpamReason: No, hits=0.0 required=7.0 tests=
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 9695 invoked from network); 17 Aug 2012 13:57:44 -0000
+Received: from nat28.tlf.novell.com (HELO nat28.tlf.novell.com) (130.57.49.28)
+       by server-8.tower-27.messagelabs.com with SMTP;
+       17 Aug 2012 13:57:44 -0000
+Received: from EMEA1-MTA by nat28.tlf.novell.com
+       with Novell_GroupWise; Fri, 17 Aug 2012 14:57:44 +0100
+Message-Id: <502E6A200200007800095E9A@nat28.tlf.novell.com>
+X-Mailer: Novell GroupWise Internet Agent 12.0.0 
+Date: Fri, 17 Aug 2012 14:58:24 +0100
+From: "Jan Beulich" <JBeulich@suse.com>
+To: "Stefano Stabellini" <stefano.stabellini@eu.citrix.com>
+References: <alpine.DEB.2.02.1208161523420.4850@kaball.uk.xensource.com>
+       <1345128612-10323-4-git-send-email-stefano.stabellini@eu.citrix.com>
+       <502D33B8020000780009596B@nat28.tlf.novell.com>
+       <502D37D702000078000959F7@nat28.tlf.novell.com>
+       <alpine.DEB.2.02.1208161801210.15568@kaball.uk.xensource.com>
+       <1345190532.30865.67.camel@zakaz.uk.xensource.com>
+       <502E2F090200007800095D62@nat28.tlf.novell.com>
+       <alpine.DEB.2.02.1208171443580.15568@kaball.uk.xensource.com>
+In-Reply-To: <alpine.DEB.2.02.1208171443580.15568@kaball.uk.xensource.com>
+Mime-Version: 1.0
+Content-Disposition: inline
+Cc: "Tim \(Xen.org\)" <tim@xen.org>, Ian Campbell <Ian.Campbell@citrix.com>,
+       xen-devel <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH v3 4/6] xen: introduce XEN_GUEST_HANDLE_PARAM
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+>>> On 17.08.12 at 15:47, Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+wrote:
+> On Fri, 17 Aug 2012, Jan Beulich wrote:
+>> >>> On 17.08.12 at 10:02, Ian Campbell <Ian.Campbell@citrix.com> wrote:
+>> > On Thu, 2012-08-16 at 18:10 +0100, Stefano Stabellini wrote:
+>> >> On Thu, 16 Aug 2012, Jan Beulich wrote:
+>> >> > >>> On 16.08.12 at 17:54, "Jan Beulich" <JBeulich@suse.com> wrote:
+>> >> > > Seeing the patch I btw realized that there's no easy way to
+>> >> > > avoid having the type as a second argument in the conversion
+>> >> > > macros. Nevertheless I still don't like the explicitly specified type
+>> >> > > there.
+>> >> > 
+>> >> > Btw - on the architecture(s) where the two handles are identical
+>> >> > I would prefer you to make the conversion functions trivial (and
+>> >> > thus avoid making use of the "type" parameter), thus allowing
+>> >> > the type checking to occur that you currently circumvent.
+>> >> 
+>> >> OK, I can do that.
+>> > 
+>> > Will this result in the type parameter potentially becoming stale?
+>> > 
+>> > Adding a redundant pointer compare is a good way to get the compiler to
+>> > catch this. Smth like;
+>> > 
+>> >         /* Cast a XEN_GUEST_HANDLE_PARAM to XEN_GUEST_HANDLE */
+>> >         #define guest_handle_from_param(hnd, type) ({
+>> >             typeof((hnd).p) _x = (hnd).p;
+>> >             XEN_GUEST_HANDLE(type) _y;
+>> >             &_y == &_x;
+>> >             hnd;
+>> >          })
+>> 
+>> Ah yes, that's a good suggestion.
+>> 
+>> > I'm not sure which two pointers of members of the various structs need
+>> > to be compared, maybe it's actually &_y.p and &hnd.p, but you get the
+>> > idea...
+>> 
+>> Right, comparing (hnd).p with _y.p would be the right thing; no
+>> need for _x, but some other (mechanical) adjustments would be
+>> necessary.
+> 
+> The _x variable is still useful to avoid multiple evaluations of hnd,
+> even though I know that this is not a public header.
+
+But we had settled on returning hnd unmodified when both
+handle types are the same.
+
+> What about the following:
+> 
+> /* Cast a XEN_GUEST_HANDLE to XEN_GUEST_HANDLE_PARAM */
+> #define guest_handle_to_param(hnd, type) ({                \
+>     typeof((hnd).p) _x = (hnd).p;                          \
+>     XEN_GUEST_HANDLE_PARAM(type) _y = { _x };              \
+>     if (&_x != &_y.p) BUG();                               \
+>     _y;                                                    \
+> })
+
+Since this is not a public header, something like this (untested,
+so may not compile as is)
+
+#define guest_handle_to_param(hnd, type) ({                \
+    (void)(typeof((hnd).p)0 == (XEN_GUEST_HANDLE_PARAM(type){}).p); \
+    (hnd);                                                    \
+})
+
+is what I was thinking of.
+
+Jan
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<502E6BBA0200007800095EBB@nat28.tlf.novell.com> b/config/examples/test/corpus/<502E6BBA0200007800095EBB@nat28.tlf.novell.com>
new file mode 100644 (file)
index 0000000..d0783da
--- /dev/null
@@ -0,0 +1,155 @@
+From xen-devel-bounces@lists.xen.org Fri Aug 17 15:08:46 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 17 Aug 2012 15:08:46 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T2NEB-00088I-MF
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 17 Aug 2012 15:08:46 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T2NAG-0001ZH-9f; Fri, 17 Aug 2012 14:04:40 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <JBeulich@suse.com>) id 1T2NAE-0001ZB-4a
+       for xen-devel@lists.xen.org; Fri, 17 Aug 2012 14:04:38 +0000
+Received: from [85.158.143.99:29924] by server-2.bemta-4.messagelabs.com id
+       8E/02-31966-57F4E205; Fri, 17 Aug 2012 14:04:37 +0000
+X-Env-Sender: JBeulich@suse.com
+X-Msg-Ref: server-3.tower-216.messagelabs.com!1345212274!28144147!1
+X-Originating-IP: [130.57.49.28]
+X-SpamReason: No, hits=0.0 required=7.0 tests=
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 9555 invoked from network); 17 Aug 2012 14:04:34 -0000
+Received: from nat28.tlf.novell.com (HELO nat28.tlf.novell.com) (130.57.49.28)
+       by server-3.tower-216.messagelabs.com with SMTP;
+       17 Aug 2012 14:04:34 -0000
+Received: from EMEA1-MTA by nat28.tlf.novell.com
+       with Novell_GroupWise; Fri, 17 Aug 2012 15:04:34 +0100
+Message-Id: <502E6BBA0200007800095EBB@nat28.tlf.novell.com>
+X-Mailer: Novell GroupWise Internet Agent 12.0.0 
+Date: Fri, 17 Aug 2012 15:05:14 +0100
+From: "Jan Beulich" <JBeulich@suse.com>
+To: "Ian Campbell" <Ian.Campbell@citrix.com>,
+       "Stefano Stabellini" <stefano.stabellini@eu.citrix.com>
+References: <alpine.DEB.2.02.1208161523420.4850@kaball.uk.xensource.com>
+       <1345128612-10323-4-git-send-email-stefano.stabellini@eu.citrix.com>
+       <502D33B8020000780009596B@nat28.tlf.novell.com>
+       <502D37D702000078000959F7@nat28.tlf.novell.com>
+       <alpine.DEB.2.02.1208161801210.15568@kaball.uk.xensource.com>
+       <1345190532.30865.67.camel@zakaz.uk.xensource.com>
+       <502E2F090200007800095D62@nat28.tlf.novell.com>
+       <alpine.DEB.2.02.1208171443580.15568@kaball.uk.xensource.com>
+       <1345211486.10161.31.camel@zakaz.uk.xensource.com>
+       <alpine.DEB.2.02.1208171453060.15568@kaball.uk.xensource.com>
+In-Reply-To: <alpine.DEB.2.02.1208171453060.15568@kaball.uk.xensource.com>
+Mime-Version: 1.0
+Content-Disposition: inline
+Cc: "Tim \(Xen.org\)" <tim@xen.org>, xen-devel <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH v3 4/6] xen: introduce XEN_GUEST_HANDLE_PARAM
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+>>> On 17.08.12 at 15:55, Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+wrote:
+> On Fri, 17 Aug 2012, Ian Campbell wrote:
+>> On Fri, 2012-08-17 at 14:47 +0100, Stefano Stabellini wrote:
+>> > On Fri, 17 Aug 2012, Jan Beulich wrote:
+>> > > >>> On 17.08.12 at 10:02, Ian Campbell <Ian.Campbell@citrix.com> wrote:
+>> > > > On Thu, 2012-08-16 at 18:10 +0100, Stefano Stabellini wrote:
+>> > > >> On Thu, 16 Aug 2012, Jan Beulich wrote:
+>> > > >> > >>> On 16.08.12 at 17:54, "Jan Beulich" <JBeulich@suse.com> wrote:
+>> > > >> > > Seeing the patch I btw realized that there's no easy way to
+>> > > >> > > avoid having the type as a second argument in the conversion
+>> > > >> > > macros. Nevertheless I still don't like the explicitly specified type
+>> > > >> > > there.
+>> > > >> > 
+>> > > >> > Btw - on the architecture(s) where the two handles are identical
+>> > > >> > I would prefer you to make the conversion functions trivial (and
+>> > > >> > thus avoid making use of the "type" parameter), thus allowing
+>> > > >> > the type checking to occur that you currently circumvent.
+>> > > >> 
+>> > > >> OK, I can do that.
+>> > > > 
+>> > > > Will this result in the type parameter potentially becoming stale?
+>> > > > 
+>> > > > Adding a redundant pointer compare is a good way to get the compiler to
+>> > > > catch this. Smth like;
+>> > > > 
+>> > > >         /* Cast a XEN_GUEST_HANDLE_PARAM to XEN_GUEST_HANDLE */
+>> > > >         #define guest_handle_from_param(hnd, type) ({
+>> > > >             typeof((hnd).p) _x = (hnd).p;
+>> > > >             XEN_GUEST_HANDLE(type) _y;
+>> > > >             &_y == &_x;
+>> > > >             hnd;
+>> > > >          })
+>> > > 
+>> > > Ah yes, that's a good suggestion.
+>> > > 
+>> > > > I'm not sure which two pointers of members of the various structs need
+>> > > > to be compared, maybe it's actually &_y.p and &hnd.p, but you get the
+>> > > > idea...
+>> > > 
+>> > > Right, comparing (hnd).p with _y.p would be the right thing; no
+>> > > need for _x, but some other (mechanical) adjustments would be
+>> > > necessary.
+>> > 
+>> > The _x variable is still useful to avoid multiple evaluations of hnd,
+>> > even though I know that this is not a public header.
+>> > 
+>> > What about the following:
+>> > 
+>> > /* Cast a XEN_GUEST_HANDLE to XEN_GUEST_HANDLE_PARAM */
+>> > #define guest_handle_to_param(hnd, type) ({                \
+>> >     typeof((hnd).p) _x = (hnd).p;                          \
+>> >     XEN_GUEST_HANDLE_PARAM(type) _y = { _x };              \
+>> >     if (&_x != &_y.p) BUG();                               \
+>> 
+>> &_x and &_y.p will always be different => this will always BUG().
+>>
+>> You just need "(&_x == &_y.p)" if the types of _x and _y.p are different
+>> then the compiler will error out due to the comparison of differently
+>> typed pointers.
+> 
+> I know what you mean, but we cannot do that because the compiler will
+> complain with "statement has no effects".
+> So we have to do something like:
+> 
+> if ((&_x == &_y.p) && 0) BUG();
+
+As done in my other mail - simply cast to void.
+
+Jan
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<502E78010200007800095F56@nat28.tlf.novell.com> b/config/examples/test/corpus/<502E78010200007800095F56@nat28.tlf.novell.com>
new file mode 100644 (file)
index 0000000..9a65a90
--- /dev/null
@@ -0,0 +1,163 @@
+From xen-devel-bounces@lists.xen.org Fri Aug 17 16:00:54 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 17 Aug 2012 16:00:54 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T2O2d-0008OK-G1
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 17 Aug 2012 16:00:53 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T2Nz1-0003wB-E5; Fri, 17 Aug 2012 14:57:07 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <JBeulich@suse.com>) id 1T2Nyz-0003vv-8M
+       for xen-devel@lists.xen.org; Fri, 17 Aug 2012 14:57:05 +0000
+Received: from [85.158.143.35:35108] by server-2.bemta-4.messagelabs.com id
+       EA/7D-31966-0CB5E205; Fri, 17 Aug 2012 14:57:04 +0000
+X-Env-Sender: JBeulich@suse.com
+X-Msg-Ref: server-13.tower-21.messagelabs.com!1345215418!15940103!1
+X-Originating-IP: [130.57.49.28]
+X-SpamReason: No, hits=0.0 required=7.0 tests=
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 27384 invoked from network); 17 Aug 2012 14:56:58 -0000
+Received: from nat28.tlf.novell.com (HELO nat28.tlf.novell.com) (130.57.49.28)
+       by server-13.tower-21.messagelabs.com with SMTP;
+       17 Aug 2012 14:56:58 -0000
+Received: from EMEA1-MTA by nat28.tlf.novell.com
+       with Novell_GroupWise; Fri, 17 Aug 2012 15:56:57 +0100
+Message-Id: <502E78010200007800095F56@nat28.tlf.novell.com>
+X-Mailer: Novell GroupWise Internet Agent 12.0.0 
+Date: Fri, 17 Aug 2012 15:57:37 +0100
+From: "Jan Beulich" <JBeulich@suse.com>
+To: "Ian Campbell" <Ian.Campbell@citrix.com>
+References: <alpine.DEB.2.02.1208161523420.4850@kaball.uk.xensource.com>
+       <1345128612-10323-4-git-send-email-stefano.stabellini@eu.citrix.com>
+       <502D33B8020000780009596B@nat28.tlf.novell.com>
+       <502D37D702000078000959F7@nat28.tlf.novell.com>
+       <alpine.DEB.2.02.1208161801210.15568@kaball.uk.xensource.com>
+       <1345190532.30865.67.camel@zakaz.uk.xensource.com>
+       <502E2F090200007800095D62@nat28.tlf.novell.com>
+       <alpine.DEB.2.02.1208171443580.15568@kaball.uk.xensource.com>
+       <502E6A200200007800095E9A@nat28.tlf.novell.com>
+       <1345215020.10161.64.camel@zakaz.uk.xensource.com>
+In-Reply-To: <1345215020.10161.64.camel@zakaz.uk.xensource.com>
+Mime-Version: 1.0
+Content-Disposition: inline
+Cc: xen-devel <xen-devel@lists.xen.org>, "Tim \(Xen.org\)" <tim@xen.org>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH v3 4/6] xen: introduce XEN_GUEST_HANDLE_PARAM
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+>>> On 17.08.12 at 16:50, Ian Campbell <Ian.Campbell@citrix.com> wrote:
+> On Fri, 2012-08-17 at 14:58 +0100, Jan Beulich wrote:
+>> >>> On 17.08.12 at 15:47, Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+>> wrote:
+>> > On Fri, 17 Aug 2012, Jan Beulich wrote:
+>> >> >>> On 17.08.12 at 10:02, Ian Campbell <Ian.Campbell@citrix.com> wrote:
+>> >> > On Thu, 2012-08-16 at 18:10 +0100, Stefano Stabellini wrote:
+>> >> >> On Thu, 16 Aug 2012, Jan Beulich wrote:
+>> >> >> > >>> On 16.08.12 at 17:54, "Jan Beulich" <JBeulich@suse.com> wrote:
+>> >> >> > > Seeing the patch I btw realized that there's no easy way to
+>> >> >> > > avoid having the type as a second argument in the conversion
+>> >> >> > > macros. Nevertheless I still don't like the explicitly specified type
+>> >> >> > > there.
+>> >> >> > 
+>> >> >> > Btw - on the architecture(s) where the two handles are identical
+>> >> >> > I would prefer you to make the conversion functions trivial (and
+>> >> >> > thus avoid making use of the "type" parameter), thus allowing
+>> >> >> > the type checking to occur that you currently circumvent.
+>> >> >> 
+>> >> >> OK, I can do that.
+>> >> > 
+>> >> > Will this result in the type parameter potentially becoming stale?
+>> >> > 
+>> >> > Adding a redundant pointer compare is a good way to get the compiler to
+>> >> > catch this. Smth like;
+>> >> > 
+>> >> >         /* Cast a XEN_GUEST_HANDLE_PARAM to XEN_GUEST_HANDLE */
+>> >> >         #define guest_handle_from_param(hnd, type) ({
+>> >> >             typeof((hnd).p) _x = (hnd).p;
+>> >> >             XEN_GUEST_HANDLE(type) _y;
+>> >> >             &_y == &_x;
+>> >> >             hnd;
+>> >> >          })
+>> >> 
+>> >> Ah yes, that's a good suggestion.
+>> >> 
+>> >> > I'm not sure which two pointers of members of the various structs need
+>> >> > to be compared, maybe it's actually &_y.p and &hnd.p, but you get the
+>> >> > idea...
+>> >> 
+>> >> Right, comparing (hnd).p with _y.p would be the right thing; no
+>> >> need for _x, but some other (mechanical) adjustments would be
+>> >> necessary.
+>> > 
+>> > The _x variable is still useful to avoid multiple evaluations of hnd,
+>> > even though I know that this is not a public header.
+>> 
+>> But we had settled on returning hnd unmodified when both
+>> handle types are the same.
+>> 
+>> > What about the following:
+>> > 
+>> > /* Cast a XEN_GUEST_HANDLE to XEN_GUEST_HANDLE_PARAM */
+>> > #define guest_handle_to_param(hnd, type) ({                \
+>> >     typeof((hnd).p) _x = (hnd).p;                          \
+>> >     XEN_GUEST_HANDLE_PARAM(type) _y = { _x };              \
+>> >     if (&_x != &_y.p) BUG();                               \
+>> >     _y;                                                    \
+>> > })
+>> 
+>> Since this is not a public header, something like this (untested,
+>> so may not compile as is)
+>> 
+>> #define guest_handle_to_param(hnd, type) ({                \
+>>     (void)(typeof((hnd).p)0 == (XEN_GUEST_HANDLE_PARAM(type){}).p); \
+>>     (hnd);                                                    \
+>> })
+>> 
+>> is what I was thinking of.
+> 
+> This evaluates hnd twice, or do we only care about that in public
+> headers for some reason? (personally I think principal of least surprise
+> suggests avoiding it wherever possible)
+
+No, it doesn't - like sizeof(), typeof() doesn't evaluate its
+argument.
+
+Jan
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<502E788B0200007800095F59@nat28.tlf.novell.com> b/config/examples/test/corpus/<502E788B0200007800095F59@nat28.tlf.novell.com>
new file mode 100644 (file)
index 0000000..a4abfaf
--- /dev/null
@@ -0,0 +1,187 @@
+From xen-devel-bounces@lists.xen.org Fri Aug 17 16:02:57 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 17 Aug 2012 16:02:57 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T2O4d-0008PC-2J
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 17 Aug 2012 16:02:57 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T2O1M-0004AE-Ce; Fri, 17 Aug 2012 14:59:32 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <JBeulich@suse.com>) id 1T2O1L-0004A8-9S
+       for xen-devel@lists.xen.org; Fri, 17 Aug 2012 14:59:31 +0000
+Received: from [85.158.143.35:48196] by server-1.bemta-4.messagelabs.com id
+       2F/35-07754-25C5E205; Fri, 17 Aug 2012 14:59:30 +0000
+X-Env-Sender: JBeulich@suse.com
+X-Msg-Ref: server-16.tower-21.messagelabs.com!1345215556!14671915!1
+X-Originating-IP: [130.57.49.28]
+X-SpamReason: No, hits=0.0 required=7.0 tests=
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 28543 invoked from network); 17 Aug 2012 14:59:18 -0000
+Received: from nat28.tlf.novell.com (HELO nat28.tlf.novell.com) (130.57.49.28)
+       by server-16.tower-21.messagelabs.com with SMTP;
+       17 Aug 2012 14:59:18 -0000
+Received: from EMEA1-MTA by nat28.tlf.novell.com
+       with Novell_GroupWise; Fri, 17 Aug 2012 15:59:16 +0100
+Message-Id: <502E788B0200007800095F59@nat28.tlf.novell.com>
+X-Mailer: Novell GroupWise Internet Agent 12.0.0 
+Date: Fri, 17 Aug 2012 15:59:55 +0100
+From: "Jan Beulich" <JBeulich@suse.com>
+To: "Stefano Stabellini" <stefano.stabellini@eu.citrix.com>
+References: <alpine.DEB.2.02.1208161523420.4850@kaball.uk.xensource.com>
+       <1345128612-10323-4-git-send-email-stefano.stabellini@eu.citrix.com>
+       <502D33B8020000780009596B@nat28.tlf.novell.com>
+       <502D37D702000078000959F7@nat28.tlf.novell.com>
+       <alpine.DEB.2.02.1208161801210.15568@kaball.uk.xensource.com>
+       <1345190532.30865.67.camel@zakaz.uk.xensource.com>
+       <502E2F090200007800095D62@nat28.tlf.novell.com>
+       <alpine.DEB.2.02.1208171443580.15568@kaball.uk.xensource.com>
+       <502E6A200200007800095E9A@nat28.tlf.novell.com>
+       <alpine.DEB.2.02.1208171540350.15568@kaball.uk.xensource.com>
+In-Reply-To: <alpine.DEB.2.02.1208171540350.15568@kaball.uk.xensource.com>
+Mime-Version: 1.0
+Content-Disposition: inline
+Cc: "Tim\(Xen.org\)" <tim@xen.org>, Ian Campbell <Ian.Campbell@citrix.com>,
+       xen-devel <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH v3 4/6] xen: introduce XEN_GUEST_HANDLE_PARAM
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+>>> On 17.08.12 at 16:45, Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+wrote:
+> On Fri, 17 Aug 2012, Jan Beulich wrote:
+>> >>> On 17.08.12 at 15:47, Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+>> wrote:
+>> > On Fri, 17 Aug 2012, Jan Beulich wrote:
+>> >> >>> On 17.08.12 at 10:02, Ian Campbell <Ian.Campbell@citrix.com> wrote:
+>> >> > On Thu, 2012-08-16 at 18:10 +0100, Stefano Stabellini wrote:
+>> >> >> On Thu, 16 Aug 2012, Jan Beulich wrote:
+>> >> >> > >>> On 16.08.12 at 17:54, "Jan Beulich" <JBeulich@suse.com> wrote:
+>> >> >> > > Seeing the patch I btw realized that there's no easy way to
+>> >> >> > > avoid having the type as a second argument in the conversion
+>> >> >> > > macros. Nevertheless I still don't like the explicitly specified type
+>> >> >> > > there.
+>> >> >> > 
+>> >> >> > Btw - on the architecture(s) where the two handles are identical
+>> >> >> > I would prefer you to make the conversion functions trivial (and
+>> >> >> > thus avoid making use of the "type" parameter), thus allowing
+>> >> >> > the type checking to occur that you currently circumvent.
+>> >> >> 
+>> >> >> OK, I can do that.
+>> >> > 
+>> >> > Will this result in the type parameter potentially becoming stale?
+>> >> > 
+>> >> > Adding a redundant pointer compare is a good way to get the compiler to
+>> >> > catch this. Smth like;
+>> >> > 
+>> >> >         /* Cast a XEN_GUEST_HANDLE_PARAM to XEN_GUEST_HANDLE */
+>> >> >         #define guest_handle_from_param(hnd, type) ({
+>> >> >             typeof((hnd).p) _x = (hnd).p;
+>> >> >             XEN_GUEST_HANDLE(type) _y;
+>> >> >             &_y == &_x;
+>> >> >             hnd;
+>> >> >          })
+>> >> 
+>> >> Ah yes, that's a good suggestion.
+>> >> 
+>> >> > I'm not sure which two pointers of members of the various structs need
+>> >> > to be compared, maybe it's actually &_y.p and &hnd.p, but you get the
+>> >> > idea...
+>> >> 
+>> >> Right, comparing (hnd).p with _y.p would be the right thing; no
+>> >> need for _x, but some other (mechanical) adjustments would be
+>> >> necessary.
+>> > 
+>> > The _x variable is still useful to avoid multiple evaluations of hnd,
+>> > even though I know that this is not a public header.
+>> 
+>> But we had settled on returning hnd unmodified when both
+>> handle types are the same.
+>> 
+>> > What about the following:
+>> > 
+>> > /* Cast a XEN_GUEST_HANDLE to XEN_GUEST_HANDLE_PARAM */
+>> > #define guest_handle_to_param(hnd, type) ({                \
+>> >     typeof((hnd).p) _x = (hnd).p;                          \
+>> >     XEN_GUEST_HANDLE_PARAM(type) _y = { _x };              \
+>> >     if (&_x != &_y.p) BUG();                               \
+>> >     _y;                                                    \
+>> > })
+>> 
+>> Since this is not a public header, something like this (untested,
+>> so may not compile as is)
+>> 
+>> #define guest_handle_to_param(hnd, type) ({                \
+>>     (void)(typeof((hnd).p)0 == (XEN_GUEST_HANDLE_PARAM(type){}).p); \
+>>     (hnd);                                                    \
+>> })
+>> 
+>> is what I was thinking of.
+>> 
+> 
+> this is how it would look like:
+> 
+> #define guest_handle_to_param(hnd, type) ({                  \
+>     /* type checking: make sure that the pointers inside     \
+>      * XEN_GUEST_HANDLE and XEN_GUEST_HANDLE_PARAM are of    \
+>      * the same type, than return hnd */                     \
+>     (void)((typeof(&(hnd).p)) 0 ==                           \
+>         (typeof(&((XEN_GUEST_HANDLE_PARAM(type)) {}).p)) 0); \
+>     (hnd);                                                   \
+> })
+> 
+> 
+> Honestly I have very rarely seen anything less readable, but at least is
+> very compact.
+> For ARM I was going to go with the following, that is only slightly more
+> readable:
+> 
+> #define guest_handle_to_param(hnd, type) ({                  \
+>     typeof((hnd).p) _x = (hnd).p;                            \
+>     XEN_GUEST_HANDLE_PARAM(type) _y = { _x };                \
+>     /* type checking: make sure that the pointers inside     \
+>      * XEN_GUEST_HANDLE and XEN_GUEST_HANDLE_PARAM are of    \
+>      * the same type, than return hnd */                     \
+>     (void)(&_x == &_y.p);                                    \
+>     _y;                                                      \
+> })
+
+Yes, this looks good now to me (perhaps correct the minor
+spelling mistake - should be "then", not "than" I think).
+
+Jan
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<503504FE0200007800096F08@nat28.tlf.novell.com> b/config/examples/test/corpus/<503504FE0200007800096F08@nat28.tlf.novell.com>
new file mode 100644 (file)
index 0000000..1598eb7
--- /dev/null
@@ -0,0 +1,152 @@
+From xen-devel-bounces@lists.xen.org Wed Aug 22 15:15:52 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 22 Aug 2012 15:15:52 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T4Bik-0001cA-D2
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 22 Aug 2012 15:15:52 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T4BfC-0006aL-92; Wed, 22 Aug 2012 14:12:06 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <JBeulich@suse.com>) id 1T4BfB-0006a9-1P
+       for xen-devel@lists.xensource.com; Wed, 22 Aug 2012 14:12:05 +0000
+Received: from [85.158.139.83:57324] by server-9.bemta-5.messagelabs.com id
+       EC/27-26123-4B8E4305; Wed, 22 Aug 2012 14:12:04 +0000
+X-Env-Sender: JBeulich@suse.com
+X-Msg-Ref: server-13.tower-182.messagelabs.com!1345644723!28959171!1
+X-Originating-IP: [130.57.49.28]
+X-SpamReason: No, hits=0.0 required=7.0 tests=
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 13836 invoked from network); 22 Aug 2012 14:12:03 -0000
+Received: from nat28.tlf.novell.com (HELO nat28.tlf.novell.com) (130.57.49.28)
+       by server-13.tower-182.messagelabs.com with SMTP;
+       22 Aug 2012 14:12:03 -0000
+Received: from EMEA1-MTA by nat28.tlf.novell.com
+       with Novell_GroupWise; Wed, 22 Aug 2012 15:12:03 +0100
+Message-Id: <503504FE0200007800096F08@nat28.tlf.novell.com>
+X-Mailer: Novell GroupWise Internet Agent 12.0.0 
+Date: Wed, 22 Aug 2012 15:12:46 +0100
+From: "Jan Beulich" <JBeulich@suse.com>
+To: "Konrad Rzeszutek Wilk" <konrad.wilk@oracle.com>
+References: <1345133009-21941-1-git-send-email-konrad.wilk@oracle.com>
+       <1345133009-21941-3-git-send-email-konrad.wilk@oracle.com>
+       <alpine.DEB.2.02.1208171835010.15568@kaball.uk.xensource.com>
+       <20120820141305.GA2713@phenom.dumpdata.com>
+       <20120821172732.GA23715@phenom.dumpdata.com>
+       <20120821190317.GA13035@phenom.dumpdata.com>
+In-Reply-To: <20120821190317.GA13035@phenom.dumpdata.com>
+Mime-Version: 1.0
+Content-Disposition: inline
+Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
+       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
+       Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
+Subject: Re: [Xen-devel] Q:pt_base in COMPAT mode offset by two pages.
+ Was:Re: [PATCH 02/11] xen/x86: Use memblock_reserve for sensitive areas.
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+>>> On 21.08.12 at 21:03, Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> wrote:
+> On Tue, Aug 21, 2012 at 01:27:32PM -0400, Konrad Rzeszutek Wilk wrote:
+>> Jan, I thought something odd. Part of this code replaces this:
+>> 
+>>     memblock_reserve(__pa(xen_start_info->mfn_list),
+>>             xen_start_info->pt_base - xen_start_info->mfn_list);
+>> 
+>> with a more region-by-region area. What I found out that if I boot this
+>> as 32-bit guest with a 64-bit hypervisor the xen_start_info->pt_base is
+>> actually wrong.
+>> 
+>> Specifically this is what bootup says:
+>> 
+>> (good working case - 32bit hypervisor with 32-bit dom0):
+>> (XEN)  Loaded kernel: c1000000->c1a23000
+>> (XEN)  Init. ramdisk: c1a23000->cf730e00
+>> (XEN)  Phys-Mach map: cf731000->cf831000
+>> (XEN)  Start info:    cf831000->cf83147c
+>> (XEN)  Page tables:   cf832000->cf8b5000
+>> (XEN)  Boot stack:    cf8b5000->cf8b6000
+>> (XEN)  TOTAL:         c0000000->cfc00000
+>> 
+>> [    0.000000] PT: cf832000 (f832000)
+>> [    0.000000] Reserving PT: f832000->f8b5000
+>> 
+>> And with a 64-bit hypervisor:
+>> 
+>> XEN) VIRTUAL MEMORY ARRANGEMENT:
+>> (XEN)  Loaded kernel: 00000000c1000000->00000000c1a23000
+>> (XEN)  Init. ramdisk: 00000000c1a23000->00000000cf730e00
+>> (XEN)  Phys-Mach map: 00000000cf731000->00000000cf831000
+>> (XEN)  Start info:    00000000cf831000->00000000cf8314b4
+>> (XEN)  Page tables:   00000000cf832000->00000000cf8b6000
+>> (XEN)  Boot stack:    00000000cf8b6000->00000000cf8b7000
+>> (XEN)  TOTAL:         00000000c0000000->00000000cfc00000
+>> (XEN)  ENTRY ADDRESS: 00000000c16bb22c
+>> 
+>> [    0.000000] PT: cf834000 (f834000)
+>> [    0.000000] Reserving PT: f834000->f8b8000
+>> 
+>> So the pt_base is offset by two pages. And looking at c/s 13257
+>> its not clear to me why this two page offset was added?
+
+Honestly, without looking through this in greater detail I don't
+recall. That'll have to wait possibly until after the summit, though.
+I can't exclude that this is just a forgotten leftover from an earlier
+version of the patch. I would have thought this was to account
+for the L4 tables that the guest doesn't see, but
+- this should only be a single page
+- this should then also (or rather instead) be subtracted from
+  nr_pt_frames
+so that's likely not it.
+
+>> The toolstack works fine - so launching 32-bit guests either
+>> under a 32-bit hypervisor or 64-bit works fine:
+>> ] domainbuilder: detail: xc_dom_alloc_segment:   page tables  : 0xcf805000 -> 
+> 0xcf885000  (pfn 0xf805 + 0x80 pages)
+>> [    0.000000] PT: cf805000 (f805000)
+>> 
+> 
+> And this patch on top of the others fixes this..
+
+I didn't look at this in too close detail, but I started to get
+afraid that you might be making the code dependent on
+many hypervisor implementation details. And should the
+above turn out to be a bug in the hypervisor, I hope your
+kernel side changes won't make it impossible to fix that bug.
+
+Jan
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<50351DEF020000780009702A@nat28.tlf.novell.com> b/config/examples/test/corpus/<50351DEF020000780009702A@nat28.tlf.novell.com>
new file mode 100644 (file)
index 0000000..179ccd0
--- /dev/null
@@ -0,0 +1,186 @@
+From xen-devel-bounces@lists.xen.org Wed Aug 22 17:03:23 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 22 Aug 2012 17:03:23 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T4DOo-000287-1g
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 22 Aug 2012 17:03:23 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T4DKE-0002bB-8w; Wed, 22 Aug 2012 15:58:34 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <JBeulich@suse.com>) id 1T4DKC-0002b6-Kz
+       for xen-devel@lists.xensource.com; Wed, 22 Aug 2012 15:58:32 +0000
+Received: from [85.158.143.99:59462] by server-3.bemta-4.messagelabs.com id
+       A4/E6-09529-7A105305; Wed, 22 Aug 2012 15:58:31 +0000
+X-Env-Sender: JBeulich@suse.com
+X-Msg-Ref: server-16.tower-216.messagelabs.com!1345651109!16213860!1
+X-Originating-IP: [130.57.49.28]
+X-SpamReason: No, hits=0.0 required=7.0 tests=
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 7083 invoked from network); 22 Aug 2012 15:58:29 -0000
+Received: from nat28.tlf.novell.com (HELO nat28.tlf.novell.com) (130.57.49.28)
+       by server-16.tower-216.messagelabs.com with SMTP;
+       22 Aug 2012 15:58:29 -0000
+Received: from EMEA1-MTA by nat28.tlf.novell.com
+       with Novell_GroupWise; Wed, 22 Aug 2012 16:58:29 +0100
+Message-Id: <50351DEF020000780009702A@nat28.tlf.novell.com>
+X-Mailer: Novell GroupWise Internet Agent 12.0.0 
+Date: Wed, 22 Aug 2012 16:59:11 +0100
+From: "Jan Beulich" <JBeulich@suse.com>
+To: "Stefano Stabellini" <stefano.stabellini@eu.citrix.com>,
+       "Konrad Rzeszutek Wilk" <konrad.wilk@oracle.com>
+References: <1345133009-21941-1-git-send-email-konrad.wilk@oracle.com>
+       <1345133009-21941-3-git-send-email-konrad.wilk@oracle.com>
+       <alpine.DEB.2.02.1208171835010.15568@kaball.uk.xensource.com>
+       <20120820141305.GA2713@phenom.dumpdata.com>
+       <20120821172732.GA23715@phenom.dumpdata.com>
+       <20120821190317.GA13035@phenom.dumpdata.com>
+In-Reply-To: <20120821190317.GA13035@phenom.dumpdata.com>
+Mime-Version: 1.0
+Content-Disposition: inline
+Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
+       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
+Subject: Re: [Xen-devel] Q:pt_base in COMPAT mode offset by two pages.
+ Was:Re: [PATCH 02/11] xen/x86: Use memblock_reserve for sensitive areas.
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+>>> On 21.08.12 at 21:03, Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> wrote:
+> On Tue, Aug 21, 2012 at 01:27:32PM -0400, Konrad Rzeszutek Wilk wrote:
+>> On Mon, Aug 20, 2012 at 10:13:05AM -0400, Konrad Rzeszutek Wilk wrote:
+>> > On Fri, Aug 17, 2012 at 06:35:12PM +0100, Stefano Stabellini wrote:
+>> > > On Thu, 16 Aug 2012, Konrad Rzeszutek Wilk wrote:
+>> > > > instead of a big memblock_reserve. This way we can be more
+>> > > > selective in freeing regions (and it also makes it easier
+>> > > > to understand where is what).
+>> > > > 
+>> > > > [v1: Move the auto_translate_physmap to proper line]
+>> > > > [v2: Per Stefano suggestion add more comments]
+>> > > > Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+>> > > 
+>> > > much better now!
+>> > 
+>> > Thought interestingly enough it breaks 32-bit dom0s (and only dom0s).
+>> > Will have a revised patch posted shortly.
+>> 
+>> Jan, I thought something odd. Part of this code replaces this:
+>> 
+>>     memblock_reserve(__pa(xen_start_info->mfn_list),
+>>             xen_start_info->pt_base - xen_start_info->mfn_list);
+>> 
+>> with a more region-by-region area. What I found out that if I boot this
+>> as 32-bit guest with a 64-bit hypervisor the xen_start_info->pt_base is
+>> actually wrong.
+>> 
+>> Specifically this is what bootup says:
+>> 
+>> (good working case - 32bit hypervisor with 32-bit dom0):
+>> (XEN)  Loaded kernel: c1000000->c1a23000
+>> (XEN)  Init. ramdisk: c1a23000->cf730e00
+>> (XEN)  Phys-Mach map: cf731000->cf831000
+>> (XEN)  Start info:    cf831000->cf83147c
+>> (XEN)  Page tables:   cf832000->cf8b5000
+>> (XEN)  Boot stack:    cf8b5000->cf8b6000
+>> (XEN)  TOTAL:         c0000000->cfc00000
+>> 
+>> [    0.000000] PT: cf832000 (f832000)
+>> [    0.000000] Reserving PT: f832000->f8b5000
+>> 
+>> And with a 64-bit hypervisor:
+>> 
+>> XEN) VIRTUAL MEMORY ARRANGEMENT:
+>> (XEN)  Loaded kernel: 00000000c1000000->00000000c1a23000
+>> (XEN)  Init. ramdisk: 00000000c1a23000->00000000cf730e00
+>> (XEN)  Phys-Mach map: 00000000cf731000->00000000cf831000
+>> (XEN)  Start info:    00000000cf831000->00000000cf8314b4
+>> (XEN)  Page tables:   00000000cf832000->00000000cf8b6000
+>> (XEN)  Boot stack:    00000000cf8b6000->00000000cf8b7000
+>> (XEN)  TOTAL:         00000000c0000000->00000000cfc00000
+>> (XEN)  ENTRY ADDRESS: 00000000c16bb22c
+>> 
+>> [    0.000000] PT: cf834000 (f834000)
+>> [    0.000000] Reserving PT: f834000->f8b8000
+>> 
+>> So the pt_base is offset by two pages. And looking at c/s 13257
+>> its not clear to me why this two page offset was added?
+
+Actually, the adjustment turns out to be correct: The page
+tables for a 32-on-64 dom0 get allocated in the order "first L1",
+"first L2", "first L3", so the offset to the page table base is
+indeed 2. When reading xen/include/public/xen.h's comment
+very strictly, this is not a violation (since there nothing is said
+that the first thing in the page table space is pointed to by
+pt_base; I admit that this seems to be implied though, namely
+do I think that it is implied that the page table space is the
+range [pt_base, pt_base + nt_pt_frames), whereas that
+range here indeed is [pt_base - 2, pt_base - 2 + nt_pt_frames),
+which - without a priori knowledge - the kernel would have
+difficulty to figure out).
+
+Below is a debugging patch I used to see the full picture, if you
+want to double check.
+
+One thing I also noticed is that nr_pt_frames apparently is
+one too high in this case, as the L4 is not really part of the
+page tables from the kernel's perspective (and not represented
+anywhere in the corresponding VA range).
+
+Jan
+
+--- a/xen/arch/x86/domain_build.c
++++ b/xen/arch/x86/domain_build.c
+@@ -940,6 +940,7 @@ int __init construct_dom0(
+     si->flags       |= (xen_processor_pmbits << 8) & SIF_PM_MASK;
+     si->pt_base      = vpt_start + 2 * PAGE_SIZE * !!is_pv_32on64_domain(d);
+     si->nr_pt_frames = nr_pt_pages;
++printk("PT#%lx\n", si->nr_pt_frames);//temp
+     si->mfn_list     = vphysmap_start;
+     snprintf(si->magic, sizeof(si->magic), "xen-3.0-x86_%d%s",
+              elf_64bit(&elf) ? 64 : 32, parms.pae ? "p" : "");
+@@ -1115,6 +1116,10 @@ int __init construct_dom0(
+                 process_pending_softirqs();
+         }
+     }
++show_page_walk(vpt_start);//temp
++show_page_walk(si->pt_base);//temp
++show_page_walk(v_start);//temp
++show_page_walk(v_end - 1);//temp
+     if ( initrd_len != 0 )
+     {
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<5035DA7E020000780008A5E6@nat28.tlf.novell.com> b/config/examples/test/corpus/<5035DA7E020000780008A5E6@nat28.tlf.novell.com>
new file mode 100644 (file)
index 0000000..1e19b5e
--- /dev/null
@@ -0,0 +1,96 @@
+From xen-devel-bounces@lists.xen.org Thu Aug 23 07:52:34 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 23 Aug 2012 07:52:34 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T4RHL-0000ms-Nj
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 23 Aug 2012 07:52:34 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T4RD1-0006Te-Hd; Thu, 23 Aug 2012 06:48:03 +0000
+Received: from mail27.messagelabs.com ([193.109.254.147])
+       by lists.xen.org with smtp (Exim 4.72)
+       (envelope-from <jbeulich@suse.com>) id 1T4RD0-0006TZ-80
+       for xen-devel@lists.xensource.com; Thu, 23 Aug 2012 06:48:02 +0000
+X-Env-Sender: jbeulich@suse.com
+X-Msg-Ref: server-11.tower-27.messagelabs.com!1345703024!1685931!1
+X-Originating-IP: [130.57.49.28]
+X-SpamReason: No, hits=0.0 required=7.0 tests=
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 1343 invoked from network); 23 Aug 2012 06:23:44 -0000
+Received: from nat28.tlf.novell.com (HELO nat28.tlf.novell.com) (130.57.49.28)
+       by server-11.tower-27.messagelabs.com with SMTP;
+       23 Aug 2012 06:23:44 -0000
+Received: from EMEA1-MTA by nat28.tlf.novell.com
+       with Novell_GroupWise; Thu, 23 Aug 2012 07:23:43 +0100
+Message-Id: <5035DA7E020000780008A5E6@nat28.tlf.novell.com>
+X-Mailer: Novell GroupWise Internet Agent 12.0.0 
+Date: Thu, 23 Aug 2012 07:23:42 +0100
+From: "Jan Beulich" <jbeulich@suse.com>
+To: <konrad@kernel.org>
+References: <1345133009-21941-1-git-send-email-konrad.wilk@oracle.com>
+       <1345133009-21941-3-git-send-email-konrad.wilk@oracle.com>
+       <alpine.DEB.2.02.1208171835010.15568@kaball.uk.xensource.com>
+       <20120820141305.GA2713@phenom.dumpdata.com>
+       <20120821172732.GA23715@phenom.dumpdata.com>
+       <20120821190317.GA13035@phenom.dumpdata.com>
+       <50351DEF020000780009702A@nat28.tlf.novell.com>
+       <20120822185519.GA29609@phenom.dumpdata.com>
+In-Reply-To: <20120822185519.GA29609@phenom.dumpdata.com>
+Mime-Version: 1.0
+Content-Disposition: inline
+Cc: xen-devel@lists.xensource.com, linux-kernel@vger.kernel.org,
+       konrad.wilk@oracle.com, stefano.stabellini@eu.citrix.com
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] Q:pt_base in COMPAT mode offset by two pages.
+ Was:Re: [PATCH 02/11] xen/x86: Use memblock_reserve for sensitive areas.
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+>>> Konrad Rzeszutek Wilk <konrad@kernel.org> 08/22/12 9:05 PM >>>
+>Thinking of just sticking this patch then:
+
+Yeah, that may be best for the moment. Albeit I see no reason why you
+shouldn't be able to use your more selective logic, just making it either
+deal with only the pt_base == start-of-page-tables case (and fall back to
+the current logic alternatively), or figure out the true range.
+
+I'm nevertheless considering to re-arrange the allocation order in the
+hypervisor (and to remove the superfluously reserved page covering
+what would be the L4), so going with the former, simpler case for the
+kernel would be a reasonable option.
+
+Jan
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<5035E7D3020000780008A60D@nat28.tlf.novell.com> b/config/examples/test/corpus/<5035E7D3020000780008A60D@nat28.tlf.novell.com>
new file mode 100644 (file)
index 0000000..e461197
--- /dev/null
@@ -0,0 +1,88 @@
+From xen-devel-bounces@lists.xen.org Thu Aug 23 08:25:07 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 23 Aug 2012 08:25:07 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T4Rmn-0000x2-Is
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 23 Aug 2012 08:25:06 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T4Rif-00071t-AO; Thu, 23 Aug 2012 07:20:45 +0000
+Received: from mail27.messagelabs.com ([193.109.254.147])
+       by lists.xen.org with smtp (Exim 4.72)
+       (envelope-from <jbeulich@suse.com>) id 1T4Rid-00071o-F3
+       for xen-devel@lists.xen.org; Thu, 23 Aug 2012 07:20:43 +0000
+X-Env-Sender: jbeulich@suse.com
+X-Msg-Ref: server-16.tower-27.messagelabs.com!1345706436!8367711!1
+X-Originating-IP: [130.57.49.28]
+X-SpamReason: No, hits=0.0 required=7.0 tests=
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 2312 invoked from network); 23 Aug 2012 07:20:36 -0000
+Received: from nat28.tlf.novell.com (HELO nat28.tlf.novell.com) (130.57.49.28)
+       by server-16.tower-27.messagelabs.com with SMTP;
+       23 Aug 2012 07:20:36 -0000
+Received: from EMEA1-MTA by nat28.tlf.novell.com
+       with Novell_GroupWise; Thu, 23 Aug 2012 08:20:35 +0100
+Message-Id: <5035E7D3020000780008A60D@nat28.tlf.novell.com>
+X-Mailer: Novell GroupWise Internet Agent 12.0.0 
+Date: Thu, 23 Aug 2012 08:20:35 +0100
+From: "Jan Beulich" <jbeulich@suse.com>
+To: <julien.grall@citrix.com>,<qemu-devel@nongnu.org>
+References: <cover.1345552068.git.julien.grall@citrix.com>
+       <3921d4d38a5c20943af1ceb64f5f0691d7bfd702.1345552068.git.julien.grall@citrix.com>
+In-Reply-To: <3921d4d38a5c20943af1ceb64f5f0691d7bfd702.1345552068.git.julien.grall@citrix.com>
+Mime-Version: 1.0
+Content-Disposition: inline
+Cc: christian.limpach@gmail.com, xen-devel@lists.xen.org,
+       Stefano.Stabellini@eu.citrix.com
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [XEN][RFC PATCH V2 03/17] hvm-pci: Handle PCI
+ config space in Xen
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+>>> Julien Grall <julien.grall@citrix.com> 08/22/12 8:56 PM >>>
+>+int hvm_register_pcidev(domid_t domid, ioservid_t id,
+>+                        uint8_t domain, uint8_t bus,
+>+                        uint8_t device, uint8_t function)
+>+{
+
+"domain" needs to be "uint16_t".
+
+Also, just to double check: we don't currently expose the option of MMCONFIG
+to the guest (as otherwise the change would be incomplete)?
+
+Jan
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<5035E986020000780008A617@nat28.tlf.novell.com> b/config/examples/test/corpus/<5035E986020000780008A617@nat28.tlf.novell.com>
new file mode 100644 (file)
index 0000000..dc64a23
--- /dev/null
@@ -0,0 +1,91 @@
+From xen-devel-bounces@lists.xen.org Thu Aug 23 08:32:02 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 23 Aug 2012 08:32:02 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T4RtV-0000zJ-Ar
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 23 Aug 2012 08:32:02 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T4Rph-0007Ju-0X; Thu, 23 Aug 2012 07:28:01 +0000
+Received: from mail27.messagelabs.com ([193.109.254.147])
+       by lists.xen.org with smtp (Exim 4.72)
+       (envelope-from <jbeulich@suse.com>) id 1T4Rpf-0007Jc-5Q
+       for xen-devel@lists.xen.org; Thu, 23 Aug 2012 07:27:59 +0000
+X-Env-Sender: jbeulich@suse.com
+X-Msg-Ref: server-6.tower-27.messagelabs.com!1345706873!2853462!1
+X-Originating-IP: [130.57.49.28]
+X-SpamReason: No, hits=0.0 required=7.0 tests=
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 19060 invoked from network); 23 Aug 2012 07:27:53 -0000
+Received: from nat28.tlf.novell.com (HELO nat28.tlf.novell.com) (130.57.49.28)
+       by server-6.tower-27.messagelabs.com with SMTP;
+       23 Aug 2012 07:27:53 -0000
+Received: from EMEA1-MTA by nat28.tlf.novell.com
+       with Novell_GroupWise; Thu, 23 Aug 2012 08:27:52 +0100
+Message-Id: <5035E986020000780008A617@nat28.tlf.novell.com>
+X-Mailer: Novell GroupWise Internet Agent 12.0.0 
+Date: Thu, 23 Aug 2012 08:27:50 +0100
+From: "Jan Beulich" <jbeulich@suse.com>
+To: <julien.grall@citrix.com>,<qemu-devel@nongnu.org>
+References: <cover.1345552068.git.julien.grall@citrix.com>
+       <c378b04ee29071c1d6d68bd3ef48fedadb493b10.1345552068.git.julien.grall@citrix.com>
+In-Reply-To: <c378b04ee29071c1d6d68bd3ef48fedadb493b10.1345552068.git.julien.grall@citrix.com>
+Mime-Version: 1.0
+Content-Disposition: inline
+Cc: christian.limpach@gmail.com, xen-devel@lists.xen.org,
+       Stefano.Stabellini@eu.citrix.com
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [XEN][RFC PATCH V2 05/17] hvm: Modify hvm_op
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+>>> Julien Grall <julien.grall@citrix.com> 08/22/12 8:56 PM >>>
+>@@ -4069,20 +4053,12 @@ long do_hvm_op(unsigned long op, XEN_GUEST_HANDLE(void) arg)
+ >
+>switch ( a.index )
+>{
+>-            case HVM_PARAM_IOREQ_PFN:
+
+Removing sub-ops which a domain can issue for itself (which for this and
+another one below appears to be the case) is not allowed.
+
+>+            case HVM_PARAM_IO_PFN_FIRST:
+
+I don't see where in this patch this and the other new sub-op constants
+get defined.
+
+Jan
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<50360B81.2070402@citrix.com> b/config/examples/test/corpus/<50360B81.2070402@citrix.com>
new file mode 100644 (file)
index 0000000..defa6c6
--- /dev/null
@@ -0,0 +1,105 @@
+From xen-devel-bounces@lists.xen.org Thu Aug 23 11:56:14 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 23 Aug 2012 11:56:14 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T4V58-0001nt-Vp
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 23 Aug 2012 11:56:14 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T4V1G-0004fi-8u; Thu, 23 Aug 2012 10:52:10 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <julien.grall@citrix.com>) id 1T4V1E-0004fd-36
+       for xen-devel@lists.xen.org; Thu, 23 Aug 2012 10:52:08 +0000
+Received: from [85.158.139.83:27478] by server-3.bemta-5.messagelabs.com id
+       EB/AE-27237-75B06305; Thu, 23 Aug 2012 10:52:07 +0000
+X-Env-Sender: julien.grall@citrix.com
+X-Msg-Ref: server-16.tower-182.messagelabs.com!1345719125!20111690!1
+X-Originating-IP: [66.165.176.63]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyNzM2MzE=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 24870 invoked from network); 23 Aug 2012 10:52:06 -0000
+Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
+       by server-16.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
+       23 Aug 2012 10:52:06 -0000
+X-IronPort-AV: E=Sophos;i="4.80,300,1344225600"; d="scan'208";a="206002670"
+Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
+       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       23 Aug 2012 06:52:04 -0400
+Received: from [10.80.248.240] (10.80.248.240) by smtprelay.citrix.com
+       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0; Thu, 23 Aug 2012
+       06:52:04 -0400
+Message-ID: <50360B81.2070402@citrix.com>
+Date: Thu, 23 Aug 2012 11:52:49 +0100
+From: Julien Grall <julien.grall@citrix.com>
+User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US;
+       rv:1.9.1.16) Gecko/20120726 Icedove/3.0.11
+MIME-Version: 1.0
+To: Jan Beulich <jbeulich@suse.com>
+References: <cover.1345552068.git.julien.grall@citrix.com>
+       <c378b04ee29071c1d6d68bd3ef48fedadb493b10.1345552068.git.julien.grall@citrix.com>
+       <5035E986020000780008A617@nat28.tlf.novell.com>
+In-Reply-To: <5035E986020000780008A617@nat28.tlf.novell.com>
+Cc: "christian.limpach@gmail.com" <christian.limpach@gmail.com>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Transfer-Encoding: 7bit
+Content-Type: text/plain; charset="us-ascii"; Format="flowed"
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [XEN][RFC PATCH V2 05/17] hvm: Modify hvm_op
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On 08/23/2012 08:27 AM, Jan Beulich wrote:
+>> switch ( a.index )
+>> {
+>> -            case HVM_PARAM_IOREQ_PFN:
+>>      
+> Removing sub-ops which a domain can issue for itself (which for this and
+> another one below appears to be the case) is not allowed.
+>    
+
+I removed these 3 sub-ops because it will not work with
+QEMU disaggregation. Shared pages and event channel
+for IO request are private for each device model.
+
+>> +            case HVM_PARAM_IO_PFN_FIRST:
+>>      
+> I don't see where in this patch this and the other new sub-op constants
+> get defined.
+>    
+Both sub-op constants are added in patch 1:
+http://lists.xen.org/archives/html/xen-devel/2012-08/msg01767.html
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<503680C5.6070509@citrix.com> b/config/examples/test/corpus/<503680C5.6070509@citrix.com>
new file mode 100644 (file)
index 0000000..e4bfb34
--- /dev/null
@@ -0,0 +1,128 @@
+From xen-devel-bounces@lists.xen.org Thu Aug 23 20:16:46 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 23 Aug 2012 20:16:46 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T4ctV-0003h8-9H
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 23 Aug 2012 20:16:46 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T4cpP-0004FD-Jh; Thu, 23 Aug 2012 19:12:27 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <julien.grall@citrix.com>) id 1T4cpN-0004F5-VN
+       for xen-devel@lists.xen.org; Thu, 23 Aug 2012 19:12:26 +0000
+Received: from [85.158.139.83:5816] by server-12.bemta-5.messagelabs.com id
+       03/5B-22359-99086305; Thu, 23 Aug 2012 19:12:25 +0000
+X-Env-Sender: julien.grall@citrix.com
+X-Msg-Ref: server-5.tower-182.messagelabs.com!1345749142!27597602!1
+X-Originating-IP: [66.165.176.89]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNjYxOTM=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 18501 invoked from network); 23 Aug 2012 19:12:23 -0000
+Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
+       by server-5.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
+       23 Aug 2012 19:12:23 -0000
+X-IronPort-AV: E=Sophos;i="4.80,301,1344225600"; d="scan'208";a="35624014"
+Received: from ftlpmailmx01.citrite.net ([10.13.107.65])
+       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       23 Aug 2012 15:12:22 -0400
+Received: from [10.80.248.240] (10.80.248.240) by smtprelay.citrix.com
+       (10.13.107.65) with Microsoft SMTP Server id 8.3.213.0; Thu, 23 Aug 2012
+       15:12:22 -0400
+Message-ID: <503680C5.6070509@citrix.com>
+Date: Thu, 23 Aug 2012 20:13:09 +0100
+From: Julien Grall <julien.grall@citrix.com>
+User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US;
+       rv:1.9.1.16) Gecko/20120726 Icedove/3.0.11
+MIME-Version: 1.0
+To: Ian Campbell <Ian.Campbell@citrix.com>
+References: <cover.1345552068.git.julien.grall@citrix.com>     
+       <fcf046ea782dda6cacb3bf11813bf1d16e531e6b.1345552068.git.julien.grall@citrix.com>
+       <1345728471.12501.90.camel@zakaz.uk.xensource.com>
+In-Reply-To: <1345728471.12501.90.camel@zakaz.uk.xensource.com>
+Cc: "christian.limpach@gmail.com" <christian.limpach@gmail.com>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
+       "qemu-devel@nongnu.org" <qemu-devel@nongnu.org>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Transfer-Encoding: 7bit
+Content-Type: text/plain; charset="us-ascii"; Format="flowed"
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [XEN][RFC PATCH V2 11/17] xc: modify save/restore
+ to support multiple device models
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On 08/23/2012 02:27 PM, Ian Campbell wrote:
+>
+>> @@ -103,6 +103,9 @@ static ssize_t rdexact(xc_interface *xch, struct restore_ctx *ctx,
+>>   #else
+>>   #define RDEXACT read_exact
+>>   #endif
+>> +
+>> +#define QEMUSIG_SIZE 21
+>> +
+>>   /*
+>>   ** In the state file (or during transfer), all page-table pages are
+>>   ** converted into a 'canonical' form where references to actual mfns
+>> @@ -467,7 +522,7 @@ static int buffer_tail_hvm(xc_interface *xch, struct restore_ctx *ctx,
+>>                              int vcpuextstate, uint32_t vcpuextstate_size)
+>>   {
+>>       uint8_t *tmp;
+>> -    unsigned char qemusig[21];
+>> +    unsigned char qemusig[QEMUSIG_SIZE + 1];
+>>      
+> An extra + 1 here?
+>    
+QEMUSIG_SIZE doesn't take into account the '\0'. So we need to add 1.
+If an error occurred, without +1, the output log lost the last character.
+
+> [...]
+>    
+>> -    qemusig[20] = '\0';
+>> +    qemusig[QEMUSIG_SIZE] = '\0';
+>>      
+> This is one bigger than it used to be now.
+>
+> Perhaps this is an unrelated bug fix (I haven't check the real length of
+> the sig), in which case please can you split it out and submit
+> separately?
+>    
+
+#define QEMU_SIGNATURE "DeviceModelRecord0002"
+Just checked, the length seems to be 21. I will send a patch with
+this change.
+
+-- 
+Julien
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<50375721.7080503@citrix.com> b/config/examples/test/corpus/<50375721.7080503@citrix.com>
new file mode 100644 (file)
index 0000000..7855eb2
--- /dev/null
@@ -0,0 +1,149 @@
+From xen-devel-bounces@lists.xen.org Fri Aug 24 11:31:41 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 24 Aug 2012 11:31:41 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T4rAt-0001xv-G2
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 24 Aug 2012 11:31:41 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T4r6R-00023c-EZ; Fri, 24 Aug 2012 10:26:59 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <julien.grall@citrix.com>) id 1T4r6Q-00023X-KM
+       for xen-devel@lists.xen.org; Fri, 24 Aug 2012 10:26:58 +0000
+Received: from [85.158.143.99:4566] by server-1.bemta-4.messagelabs.com id
+       1E/5C-12504-1F657305; Fri, 24 Aug 2012 10:26:57 +0000
+X-Env-Sender: julien.grall@citrix.com
+X-Msg-Ref: server-7.tower-216.messagelabs.com!1345804015!24357206!1
+X-Originating-IP: [66.165.176.63]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyNzM5MDk=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 3650 invoked from network); 24 Aug 2012 10:26:56 -0000
+Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
+       by server-7.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
+       24 Aug 2012 10:26:56 -0000
+X-IronPort-AV: E=Sophos;i="4.80,302,1344225600"; d="scan'208";a="206127150"
+Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
+       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       24 Aug 2012 06:26:55 -0400
+Received: from [10.80.248.240] (10.80.248.240) by smtprelay.citrix.com
+       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0; Fri, 24 Aug 2012
+       06:26:55 -0400
+Message-ID: <50375721.7080503@citrix.com>
+Date: Fri, 24 Aug 2012 11:27:45 +0100
+From: Julien Grall <julien.grall@citrix.com>
+User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US;
+       rv:1.9.1.16) Gecko/20120726 Icedove/3.0.11
+MIME-Version: 1.0
+To: Ian Campbell <Ian.Campbell@citrix.com>
+References: <cover.1345552068.git.julien.grall@citrix.com>     
+       <fcf046ea782dda6cacb3bf11813bf1d16e531e6b.1345552068.git.julien.grall@citrix.com>       
+       <1345728471.12501.90.camel@zakaz.uk.xensource.com>      
+       <503680C5.6070509@citrix.com>
+       <1345751525.23624.58.camel@dagon.hellion.org.uk>
+In-Reply-To: <1345751525.23624.58.camel@dagon.hellion.org.uk>
+Cc: "christian.limpach@gmail.com" <christian.limpach@gmail.com>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
+       "qemu-devel@nongnu.org" <qemu-devel@nongnu.org>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Transfer-Encoding: 7bit
+Content-Type: text/plain; charset="us-ascii"; Format="flowed"
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [XEN][RFC PATCH V2 11/17] xc: modify save/restore
+ to support multiple device models
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On 08/23/2012 08:52 PM, Ian Campbell wrote:
+> On Thu, 2012-08-23 at 20:13 +0100, Julien Grall wrote:
+>    
+>> On 08/23/2012 02:27 PM, Ian Campbell wrote:
+>>      
+>>>        
+>>>> @@ -103,6 +103,9 @@ static ssize_t rdexact(xc_interface *xch, struct restore_ctx *ctx,
+>>>>    #else
+>>>>    #define RDEXACT read_exact
+>>>>    #endif
+>>>> +
+>>>> +#define QEMUSIG_SIZE 21
+>>>> +
+>>>>    /*
+>>>>    ** In the state file (or during transfer), all page-table pages are
+>>>>    ** converted into a 'canonical' form where references to actual mfns
+>>>> @@ -467,7 +522,7 @@ static int buffer_tail_hvm(xc_interface *xch, struct restore_ctx *ctx,
+>>>>                               int vcpuextstate, uint32_t vcpuextstate_size)
+>>>>    {
+>>>>        uint8_t *tmp;
+>>>> -    unsigned char qemusig[21];
+>>>> +    unsigned char qemusig[QEMUSIG_SIZE + 1];
+>>>>
+>>>>          
+>>> An extra + 1 here?
+>>>
+>>>        
+>> QEMUSIG_SIZE doesn't take into account the '\0'. So we need to add 1.
+>> If an error occurred, without +1, the output log lost the last character.
+>>      
+> So this is just a bug fix for a pre-existing issue?
+>    
+Yes.
+
+>>> [...]
+>>>
+>>>        
+>>>> -    qemusig[20] = '\0';
+>>>> +    qemusig[QEMUSIG_SIZE] = '\0';
+>>>>
+>>>>          
+>>> This is one bigger than it used to be now.
+>>>
+>>> Perhaps this is an unrelated bug fix (I haven't check the real length of
+>>> the sig), in which case please can you split it out and submit
+>>> separately?
+>>>
+>>>        
+>> #define QEMU_SIGNATURE "DeviceModelRecord0002"
+>> Just checked, the length seems to be 21. I will send a patch with
+>> this change.
+>>      
+> Perhaps use either sizeof(QEMU_SIGNATURE) or strlen(QEMU_SIGNATURE)
+> (depending on which semantics you want)?
+>    
+Here, QEMU_SIZE needs to be define as strlen (QEMU_SIGNATURE),
+but QEMU_SIGNATURE is not defined in libxc. It's defined
+in libxl/libxl_internal.h.
+By the way, I'm wondering why QEMU save (libxl__domain_save_device_model)
+is made in libxl and restore (dump_qemu) in libxc ?
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<5037586C.5000902@citrix.com> b/config/examples/test/corpus/<5037586C.5000902@citrix.com>
new file mode 100644 (file)
index 0000000..f48a05c
--- /dev/null
@@ -0,0 +1,111 @@
+From xen-devel-bounces@lists.xen.org Fri Aug 24 11:36:53 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 24 Aug 2012 11:36:53 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T4rFz-0001zP-4M
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 24 Aug 2012 11:36:53 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T4rBs-0002CL-8R; Fri, 24 Aug 2012 10:32:36 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <julien.grall@citrix.com>) id 1T4rBq-0002CG-N7
+       for xen-devel@lists.xen.org; Fri, 24 Aug 2012 10:32:34 +0000
+Received: from [85.158.143.35:60387] by server-3.bemta-4.messagelabs.com id
+       62/44-08232-24857305; Fri, 24 Aug 2012 10:32:34 +0000
+X-Env-Sender: julien.grall@citrix.com
+X-Msg-Ref: server-12.tower-21.messagelabs.com!1345804346!12659610!1
+X-Originating-IP: [66.165.176.63]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyNzM5MDk=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 24484 invoked from network); 24 Aug 2012 10:32:27 -0000
+Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
+       by server-12.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
+       24 Aug 2012 10:32:27 -0000
+X-IronPort-AV: E=Sophos;i="4.80,302,1344225600"; d="scan'208";a="206127540"
+Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
+       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       24 Aug 2012 06:32:25 -0400
+Received: from [10.80.248.240] (10.80.248.240) by smtprelay.citrix.com
+       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0; Fri, 24 Aug 2012
+       06:32:26 -0400
+Message-ID: <5037586C.5000902@citrix.com>
+Date: Fri, 24 Aug 2012 11:33:16 +0100
+From: Julien Grall <julien.grall@citrix.com>
+User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US;
+       rv:1.9.1.16) Gecko/20120726 Icedove/3.0.11
+MIME-Version: 1.0
+To: Keir Fraser <keir.xen@gmail.com>
+References: <CC5BEE01.3CBD1%keir.xen@gmail.com>
+In-Reply-To: <CC5BEE01.3CBD1%keir.xen@gmail.com>
+Cc: "qemu-devel@nongnu.org" <qemu-devel@nongnu.org>,
+       "christian.limpach@gmail.com" <christian.limpach@gmail.com>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>,
+       Ian Campbell <Ian.Campbell@citrix.com>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Transfer-Encoding: 7bit
+Content-Type: text/plain; charset="us-ascii"; Format="flowed"
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [XEN][RFC PATCH V2 01/17] hvm: Modify interface to
+ support multiple ioreq server
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On 08/23/2012 02:26 PM, Keir Fraser wrote:
+> On 23/08/2012 14:18, "Ian Campbell"<Ian.Campbell@citrix.com>  wrote:
+>
+>    
+>>> diff --git a/xen/include/public/hvm/ioreq.h b/xen/include/public/hvm/ioreq.h
+>>> index 4022a1d..87aacd3 100644
+>>> --- a/xen/include/public/hvm/ioreq.h
+>>> +++ b/xen/include/public/hvm/ioreq.h
+>>> @@ -34,6 +34,7 @@
+>>>
+>>>   #define IOREQ_TYPE_PIO          0 /* pio */
+>>>   #define IOREQ_TYPE_COPY         1 /* mmio ops */
+>>> +#define IOREQ_TYPE_PCI_CONFIG   2 /* pci config space ops */
+>>>   #define IOREQ_TYPE_TIMEOFFSET   7
+>>>   #define IOREQ_TYPE_INVALIDATE   8 /* mapcache */
+>>>        
+>> I wonder why we skip 2-6 now -- perhaps they used to be something else
+>> and we are avoiding them to avoid strange errors? In which case adding
+>> the new on as 9 might be a good idea.
+>>      
+> They were almost certainly used for representing R-M-W ALU operations back
+> in the days of the old IO emulator, very long ago. Still, there's no harm in
+> leaving them unused.
+>    
+
+Ok. So I will use number 9 for IOREQ_TYPE_PCI_CONFIG.
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<503779F5.80508@citrix.com> b/config/examples/test/corpus/<503779F5.80508@citrix.com>
new file mode 100644 (file)
index 0000000..47c7d30
--- /dev/null
@@ -0,0 +1,189 @@
+From xen-devel-bounces@lists.xen.org Fri Aug 24 14:00:18 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 24 Aug 2012 14:00:18 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T4tUj-0002Qr-KH
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 24 Aug 2012 14:00:18 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T4tQH-0006pV-Ad; Fri, 24 Aug 2012 12:55:37 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <julien.grall@citrix.com>) id 1T4tQG-0006pP-61
+       for xen-devel@lists.xen.org; Fri, 24 Aug 2012 12:55:36 +0000
+Received: from [85.158.139.83:63725] by server-5.bemta-5.messagelabs.com id
+       A0/56-31019-7C977305; Fri, 24 Aug 2012 12:55:35 +0000
+X-Env-Sender: julien.grall@citrix.com
+X-Msg-Ref: server-13.tower-182.messagelabs.com!1345812933!27086743!1
+X-Originating-IP: [66.165.176.63]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyNzM5MDk=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 32271 invoked from network); 24 Aug 2012 12:55:34 -0000
+Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
+       by server-13.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
+       24 Aug 2012 12:55:34 -0000
+X-IronPort-AV: E=Sophos;i="4.80,304,1344225600"; d="scan'208";a="206138511"
+Received: from ftlpmailmx01.citrite.net ([10.13.107.65])
+       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       24 Aug 2012 08:55:32 -0400
+Received: from [10.80.248.240] (10.80.248.240) by smtprelay.citrix.com
+       (10.13.107.65) with Microsoft SMTP Server id 8.3.213.0; Fri, 24 Aug 2012
+       08:55:32 -0400
+Message-ID: <503779F5.80508@citrix.com>
+Date: Fri, 24 Aug 2012 13:56:21 +0100
+From: Julien Grall <julien.grall@citrix.com>
+User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US;
+       rv:1.9.1.16) Gecko/20120726 Icedove/3.0.11
+MIME-Version: 1.0
+To: Ian Campbell <Ian.Campbell@citrix.com>
+References: <cover.1345552068.git.julien.grall@citrix.com>     
+       <51efcbff92f713286b5839884769ef34ab0c39f7.1345552068.git.julien.grall@citrix.com>
+       <1345728617.12501.92.camel@zakaz.uk.xensource.com>
+In-Reply-To: <1345728617.12501.92.camel@zakaz.uk.xensource.com>
+Cc: "christian.limpach@gmail.com" <christian.limpach@gmail.com>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
+       "qemu-devel@nongnu.org" <qemu-devel@nongnu.org>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Transfer-Encoding: 7bit
+Content-Type: text/plain; charset="us-ascii"; Format="flowed"
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
+Subject: Re: [Xen-devel] [XEN][RFC PATCH V2 12/17] xl: Add interface to
+ handle qemu disaggregation
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On 08/23/2012 02:30 PM, Ian Campbell wrote:
+> On Wed, 2012-08-22 at 13:31 +0100, Julien Grall wrote:
+>    
+>> This patch modifies libxl interface for qemu disaggregation.
+>>      
+> I'd rather see the interfaces changes in the same patch as the
+> implementation of the new interfaces.
+>
+>    
+>> For the moment, due to some dependencies between devices, we
+>> can't let the user choose which QEMU emulate a device.
+>>
+>> Moreoever this patch adds an "id" field to nic interface.
+>> It will be used in config file to specify which QEMU handle
+>> the network card.
+>>      
+> Is domid+devid not sufficient to identify which nic?
+>    
+Is the user can specify or find devid easily ?
+I added "id" because, I would like that the user
+can identify without any problem a network
+interface.
+
+>> A possible disaggregation is:
+>>      - UI: Emulate graphic card, USB, keyboard, mouse, default devices
+>>      (PIIX4, root bridge, ...)
+>>      - IDE: Emulate disk
+>>      - Serial: Emulate serial port
+>>      - Audio: Emulate audio card
+>>      - Net: Emulate one or more network cards, multiple QEMU can emulate
+>>      different card. The emulated card is specified with its nic ID.
+>>
+>> Signed-off-by: Julien Grall<julien.grall@citrix.com>
+>> ---
+>>   tools/libxl/libxl.h         |    3 +++
+>>   tools/libxl/libxl_types.idl |   15 +++++++++++++++
+>>   2 files changed, 18 insertions(+), 0 deletions(-)
+>>
+>> diff --git a/tools/libxl/libxl.h b/tools/libxl/libxl.h
+>> index c614d6f..71d4808 100644
+>> --- a/tools/libxl/libxl.h
+>> +++ b/tools/libxl/libxl.h
+>> @@ -307,6 +307,7 @@ void libxl_cpuid_dispose(libxl_cpuid_policy_list *cpuid_list);
+>>   #define LIBXL_PCI_FUNC_ALL (~0U)
+>>
+>>   typedef uint32_t libxl_domid;
+>> +typedef uint32_t libxl_dmid;
+>>
+>>   /*
+>>    * Formatting Enumerations.
+>> @@ -478,12 +479,14 @@ typedef struct {
+>>       libxl_domain_build_info b_info;
+>>
+>>       int num_disks, num_nics, num_pcidevs, num_vfbs, num_vkbs;
+>> +    int num_dms;
+>>
+>>       libxl_device_disk *disks;
+>>       libxl_device_nic *nics;
+>>       libxl_device_pci *pcidevs;
+>>       libxl_device_vfb *vfbs;
+>>       libxl_device_vkb *vkbs;
+>> +    libxl_dm *dms;
+>>
+>>       libxl_action_on_shutdown on_poweroff;
+>>       libxl_action_on_shutdown on_reboot;
+>> diff --git a/tools/libxl/libxl_types.idl b/tools/libxl/libxl_types.idl
+>> index daa8c79..36c802a 100644
+>> --- a/tools/libxl/libxl_types.idl
+>> +++ b/tools/libxl/libxl_types.idl
+>> @@ -246,6 +246,20 @@ libxl_domain_sched_params = Struct("domain_sched_params",[
+>>       ("extratime",    integer, {'init_val': 'LIBXL_DOMAIN_SCHED_PARAM_EXTRATIME_DEFAULT'}),
+>>       ])
+>>
+>> +libxl_dm_cap = Enumeration("dm_cap", [
+>> +    (1, "UI"), # Emulate all UI + default device
+>>      
+> What does "default device" equate too?
+>    
+The following devices:
+    - i440fx
+    - piix3
+    - piix4
+    - dma
+    - xen apic
+    - xen platform
+
+
+>> +    (2, "IDE"), # Emulate IDE
+>> +    (4, "SERIAL"), # Emulate Serial
+>> +    (8, "AUDIO"), # Emulate audio
+>> +    ])
+>> +
+>> +libxl_dm = Struct("dm", [
+>> +    ("name",         string),
+>> +    ("path",         string),
+>> +    ("capabilities",   uint64),
+>>      
+> uint64 and not libxl_dm_cap?
+>    
+Will be fixed in the next patch version.
+
+-- 
+Julien
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<50377DAD.6000405@citrix.com> b/config/examples/test/corpus/<50377DAD.6000405@citrix.com>
new file mode 100644 (file)
index 0000000..44c01e0
--- /dev/null
@@ -0,0 +1,158 @@
+From xen-devel-bounces@lists.xen.org Fri Aug 24 19:09:28 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 24 Aug 2012 19:09:28 +0100
+Received: from offsite2.bytemark.co.uk ([85.17.170.78])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T4xts-00015f-8d
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 24 Aug 2012 18:42:30 +0100
+Received: from [50.57.142.19] (helo=lists.xen.org)
+       by offsite2.bytemark.co.uk with esmtp (Exim 4.69)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T4tkz-0000iI-Sc
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 24 Aug 2012 13:17:02 +0000
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T4tfc-0007ek-7Y; Fri, 24 Aug 2012 13:11:28 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <julien.grall@citrix.com>) id 1T4tfa-0007ee-1L
+       for xen-devel@lists.xen.org; Fri, 24 Aug 2012 13:11:26 +0000
+Received: from [85.158.143.35:45624] by server-1.bemta-4.messagelabs.com id
+       A1/01-12504-D7D77305; Fri, 24 Aug 2012 13:11:25 +0000
+X-Env-Sender: julien.grall@citrix.com
+X-Msg-Ref: server-16.tower-21.messagelabs.com!1345813883!13553971!1
+X-Originating-IP: [66.165.176.89]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNjY0ODk=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 21382 invoked from network); 24 Aug 2012 13:11:24 -0000
+Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
+       by server-16.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
+       24 Aug 2012 13:11:24 -0000
+X-IronPort-AV: E=Sophos;i="4.80,304,1344225600"; d="scan'208";a="35703202"
+Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
+       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       24 Aug 2012 09:11:22 -0400
+Received: from [10.80.248.240] (10.80.248.240) by smtprelay.citrix.com
+       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0; Fri, 24 Aug 2012
+       09:11:22 -0400
+Message-ID: <50377DAD.6000405@citrix.com>
+Date: Fri, 24 Aug 2012 14:12:13 +0100
+From: Julien Grall <julien.grall@citrix.com>
+User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US;
+       rv:1.9.1.16) Gecko/20120726 Icedove/3.0.11
+MIME-Version: 1.0
+To: Ian Campbell <Ian.Campbell@citrix.com>
+References: <cover.1345552068.git.julien.grall@citrix.com>     
+       <557fe87e4a6c0defdc6549e23e8e5e7b2ebb7a9f.1345552068.git.julien.grall@citrix.com>
+       <1345728948.12501.98.camel@zakaz.uk.xensource.com>
+In-Reply-To: <1345728948.12501.98.camel@zakaz.uk.xensource.com>
+Cc: "christian.limpach@gmail.com" <christian.limpach@gmail.com>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
+       "qemu-devel@nongnu.org" <qemu-devel@nongnu.org>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Transfer-Encoding: 7bit
+Content-Type: text/plain; charset="us-ascii"; Format="flowed"
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 85.17.170.78
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,UNPARSEABLE_RELAY
+       autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [XEN][RFC PATCH V2 14/17] xl-parsing: Parse new
+ device_models option
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On 08/23/2012 02:35 PM, Ian Campbell wrote:
+> On Wed, 2012-08-22 at 13:32 +0100, Julien Grall wrote:
+>    
+>> Add new option "device_models". The user can specify the capability of the
+>> QEMU (ui, vifs, ...). This option only works with QEMU upstream (qemu-xen).
+>>
+>> For instance:
+>> device_models= [ 'name=all,vifs=nic1', 'name=qvga,ui', 'name=qide,ide' ]
+>>      
+> iirc you can give multiple vifs -- what does that syntax look like?
+>
+>    
+vifs=nic1;nic2
+
+> I didn't ask before -- what does naming the dm give you? Is it just used
+> for ui things like logging or can you cross reference this in some way?
+>
+>    
+It's used for logging and in qemu log filename. It's not a mandatory.
+>> Signed-off-by: Julien Grall<julien.grall@citrix.com>
+>> ---
+>>   tools/libxl/Makefile     |    2 +-
+>>   tools/libxl/libxlu_dm.c  |   96 ++++++++++++++++++++++++++++++++++++++++++++++
+>>   tools/libxl/libxlutil.h  |    5 ++
+>>   tools/libxl/xl_cmdimpl.c |   29 +++++++++++++-
+>>   4 files changed, 130 insertions(+), 2 deletions(-)
+>>   create mode 100644 tools/libxl/libxlu_dm.c
+>>
+>> diff --git a/tools/libxl/Makefile b/tools/libxl/Makefile
+>> index 47fb110..2b58721 100644
+>> --- a/tools/libxl/Makefile
+>> +++ b/tools/libxl/Makefile
+>> @@ -79,7 +79,7 @@ AUTOINCS= libxlu_cfg_y.h libxlu_cfg_l.h _libxl_list.h _paths.h \
+>>   AUTOSRCS= libxlu_cfg_y.c libxlu_cfg_l.c
+>>   AUTOSRCS += _libxl_save_msgs_callout.c _libxl_save_msgs_helper.c
+>>   LIBXLU_OBJS = libxlu_cfg_y.o libxlu_cfg_l.o libxlu_cfg.o \
+>> -   libxlu_disk_l.o libxlu_disk.o libxlu_vif.o libxlu_pci.o
+>> +   libxlu_disk_l.o libxlu_disk.o libxlu_vif.o libxlu_pci.o libxlu_dm.o
+>>   $(LIBXLU_OBJS): CFLAGS += $(CFLAGS_libxenctrl) # For xentoollog.h
+>>
+>>   CLIENTS = xl testidl libxl-save-helper
+>> diff --git a/tools/libxl/libxlu_dm.c b/tools/libxl/libxlu_dm.c
+>> new file mode 100644
+>> index 0000000..9f0a347
+>> --- /dev/null
+>> +++ b/tools/libxl/libxlu_dm.c
+>> @@ -0,0 +1,96 @@
+>> +#include "libxl_osdeps.h" /* must come before any other headers */
+>> +#include<stdlib.h>
+>> +#include "libxlu_internal.h"
+>> +#include "libxlu_cfg_i.h"
+>> +
+>> +static void split_string_into_string_list(const char *str,
+>> +                                          const char *delim,
+>> +                                          libxl_string_list *psl)
+>>      
+> Is this a cut-n-paste of the one in xl_cmdimpl.c or did it change?
+>
+> Probably better to add this as a common utility function somewhere.
+>    
+It's nearly the same, except it's skip blank at the beginning
+of a value.
+For instance if we have 'foo;   bar', the function will return
+['foo', 'bar'].
+
+-- 
+Julien
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<50378054.9080506@citrix.com> b/config/examples/test/corpus/<50378054.9080506@citrix.com>
new file mode 100644 (file)
index 0000000..26a1348
--- /dev/null
@@ -0,0 +1,129 @@
+From xen-devel-bounces@lists.xen.org Fri Aug 24 19:09:30 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 24 Aug 2012 19:09:30 +0100
+Received: from offsite2.bytemark.co.uk ([85.17.170.78])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T4xtc-00015C-MY
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 24 Aug 2012 18:42:16 +0100
+Received: from [50.57.142.19] (helo=lists.xen.org)
+       by offsite2.bytemark.co.uk with esmtp (Exim 4.69)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T4tvn-0002o4-Hg
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 24 Aug 2012 13:28:11 +0000
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T4tqc-000862-8G; Fri, 24 Aug 2012 13:22:50 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <julien.grall@citrix.com>) id 1T4tqa-00085u-MV
+       for xen-devel@lists.xen.org; Fri, 24 Aug 2012 13:22:48 +0000
+Received: from [85.158.143.35:9173] by server-3.bemta-4.messagelabs.com id
+       59/EE-08232-82087305; Fri, 24 Aug 2012 13:22:48 +0000
+X-Env-Sender: julien.grall@citrix.com
+X-Msg-Ref: server-16.tower-21.messagelabs.com!1345814564!13555981!1
+X-Originating-IP: [66.165.176.89]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNjY0ODk=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 14420 invoked from network); 24 Aug 2012 13:22:46 -0000
+Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
+       by server-16.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
+       24 Aug 2012 13:22:46 -0000
+X-IronPort-AV: E=Sophos;i="4.80,304,1344225600"; d="scan'208";a="35705051"
+Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
+       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       24 Aug 2012 09:22:41 -0400
+Received: from [10.80.248.240] (10.80.248.240) by smtprelay.citrix.com
+       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0; Fri, 24 Aug 2012
+       09:22:40 -0400
+Message-ID: <50378054.9080506@citrix.com>
+Date: Fri, 24 Aug 2012 14:23:32 +0100
+From: Julien Grall <julien.grall@citrix.com>
+User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US;
+       rv:1.9.1.16) Gecko/20120726 Icedove/3.0.11
+MIME-Version: 1.0
+To: Ian Campbell <Ian.Campbell@citrix.com>
+References: <cover.1345552068.git.julien.grall@citrix.com>     
+       <51efcbff92f713286b5839884769ef34ab0c39f7.1345552068.git.julien.grall@citrix.com>       
+       <1345728617.12501.92.camel@zakaz.uk.xensource.com>      
+       <503779F5.80508@citrix.com>
+       <1345813421.19419.11.camel@zakaz.uk.xensource.com>
+In-Reply-To: <1345813421.19419.11.camel@zakaz.uk.xensource.com>
+Cc: "christian.limpach@gmail.com" <christian.limpach@gmail.com>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
+       "qemu-devel@nongnu.org" <qemu-devel@nongnu.org>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Transfer-Encoding: 7bit
+Content-Type: text/plain; charset="us-ascii"; Format="flowed"
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 85.17.170.78
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,UNPARSEABLE_RELAY
+       autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [XEN][RFC PATCH V2 12/17] xl: Add interface to
+ handle qemu disaggregation
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On 08/24/2012 02:03 PM, Ian Campbell wrote:
+>
+>>>> @@ -246,6 +246,20 @@ libxl_domain_sched_params = Struct("domain_sched_params",[
+>>>>        ("extratime",    integer, {'init_val': 'LIBXL_DOMAIN_SCHED_PARAM_EXTRATIME_DEFAULT'}),
+>>>>        ])
+>>>>
+>>>> +libxl_dm_cap = Enumeration("dm_cap", [
+>>>> +    (1, "UI"), # Emulate all UI + default device
+>>>>
+>>>>          
+>>> What does "default device" equate too?
+>>>
+>>>        
+>> The following devices:
+>>      - i440fx
+>>      - piix3
+>>      - piix4
+>>      - dma
+>>      - xen apic
+>>      - xen platform
+>>      
+> So this is more like "CORE" than "UI"?
+>
+> Is there a reason why UI (which I guess means the VGA, spice and VFB
+> devices?) are required to be in the same emulator as these?
+>
+>    
+
+VGA, keyboard and mouse (that can be plug via USB) need
+to be in the same emulator. Otherwise we can't use VNC or
+something like that.
+
+I made this choice, after discussion with Stefano, because
+theses devices depends each others. For instance, keyboard
+emulates A20.
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<503786CF.40006@citrix.com> b/config/examples/test/corpus/<503786CF.40006@citrix.com>
new file mode 100644 (file)
index 0000000..e76a6fc
--- /dev/null
@@ -0,0 +1,249 @@
+From xen-devel-bounces@lists.xen.org Fri Aug 24 18:41:34 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 24 Aug 2012 18:41:34 +0100
+Received: from offsite2.bytemark.co.uk ([85.17.170.78])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T4xsx-00015f-KM
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 24 Aug 2012 18:41:34 +0100
+Received: from [50.57.142.19] (helo=lists.xen.org)
+       by offsite2.bytemark.co.uk with esmtp (Exim 4.69)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T4uNh-0000Pu-KC
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 24 Aug 2012 13:57:01 +0000
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T4uHe-0000M1-9l; Fri, 24 Aug 2012 13:50:46 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <julien.grall@citrix.com>) id 1T4uHc-0000Lv-Lx
+       for xen-devel@lists.xen.org; Fri, 24 Aug 2012 13:50:44 +0000
+Received: from [85.158.143.35:7081] by server-3.bemta-4.messagelabs.com id
+       16/D7-08232-4B687305; Fri, 24 Aug 2012 13:50:44 +0000
+X-Env-Sender: julien.grall@citrix.com
+X-Msg-Ref: server-11.tower-21.messagelabs.com!1345816240!11496766!1
+X-Originating-IP: [66.165.176.89]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNjY0ODk=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 28463 invoked from network); 24 Aug 2012 13:50:41 -0000
+Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
+       by server-11.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
+       24 Aug 2012 13:50:41 -0000
+X-IronPort-AV: E=Sophos;i="4.80,304,1344225600"; d="scan'208";a="35708720"
+Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
+       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       24 Aug 2012 09:50:19 -0400
+Received: from [10.80.248.240] (10.80.248.240) by smtprelay.citrix.com
+       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0; Fri, 24 Aug 2012
+       09:50:19 -0400
+Message-ID: <503786CF.40006@citrix.com>
+Date: Fri, 24 Aug 2012 14:51:11 +0100
+From: Julien Grall <julien.grall@citrix.com>
+User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US;
+       rv:1.9.1.16) Gecko/20120726 Icedove/3.0.11
+MIME-Version: 1.0
+To: Ian Campbell <Ian.Campbell@citrix.com>
+References: <cover.1345552068.git.julien.grall@citrix.com>     
+       <9522ee398a1fd3cdce48cfe883b307336ae6674f.1345552068.git.julien.grall@citrix.com>
+       <1345730172.12501.113.camel@zakaz.uk.xensource.com>
+In-Reply-To: <1345730172.12501.113.camel@zakaz.uk.xensource.com>
+Cc: "christian.limpach@gmail.com" <christian.limpach@gmail.com>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
+       "qemu-devel@nongnu.org" <qemu-devel@nongnu.org>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Transfer-Encoding: 7bit
+Content-Type: text/plain; charset="us-ascii"; Format="flowed"
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 85.17.170.78
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,UNPARSEABLE_RELAY
+       autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [XEN][RFC PATCH V2 15/17] xl: support spawn/destroy
+ on multiple device model
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On 08/23/2012 02:56 PM, Ian Campbell wrote:
+> On Wed, 2012-08-22 at 13:32 +0100, Julien Grall wrote:
+>    
+>> @@ -991,12 +1057,11 @@ static void domcreate_launch_dm(libxl__egc *egc, libxl__multidev *multidev,
+>>           libxl__device_console_dispose(&console);
+>>
+>>           if (need_qemu) {
+>> -            dcs->dmss.dm.guest_domid = domid;
+>> -            libxl__spawn_local_dm(egc,&dcs->dmss.dm);
+>> +            assert(dcs->dmss);
+>> +            domcreate_spawn_devmodel(egc, dcs, dcs->current_dmid);
+>>               return;
+>>           } else {
+>> -            assert(!dcs->dmss.dm.guest_domid);
+>> -            domcreate_devmodel_started(egc,&dcs->dmss.dm, 0);
+>> +            assert(!dcs->dmss);
+>>      
+> Doesn't this stop progress in this case meaning we'll never get to the
+> end of the async op?
+>
+>    
+Indeed, I will fix on the next patch version.
+
+>>               return;
+>>           }
+>>       }
+>>      
+> [..]
+>    
+>> @@ -1044,7 +1044,8 @@ int libxl__wait_for_device_model(libxl__gc *gc,
+>>                                    void *check_callback_userdata)
+>>   {
+>>       char *path;
+>> -    path = libxl__sprintf(gc, "/local/domain/0/device-model/%d/state", domid);
+>> +    path = libxl__sprintf(gc, "/local/domain/0/dms/%u/%u/state",
+>> +                          domid, dmid);
+>>      
+> Isn't this control path shared with qemu? I'm not sure we can just
+> change it like that? We need to at least retain compatibility with
+> pre-disag qemus.
+>
+>    
+Indeed, as we have multiple QEMUs for a same domain, we need
+to have one control path by QEMU.
+
+Pre-disag QEMUs cannot work with my changes inside the Xen.
+Xen will not forward by default ioreq if there is no ioreq server.
+>>   const char *libxl__domain_device_model(libxl__gc *gc,
+>> -                                       const libxl_domain_build_info *info)
+>> +                                       uint32_t dmid,
+>> +                                       const libxl_domain_build_info *b_info)
+>>   {
+>>       libxl_ctx *ctx = libxl__gc_owner(gc);
+>>       const char *dm;
+>> +    libxl_domain_config *guest_config = CONTAINER_OF(b_info, *guest_config,
+>> +                                                     b_info);
+>>
+>> -    if (libxl_defbool_val(info->device_model_stubdomain))
+>> +    if (libxl_defbool_val(guest_config->b_info.device_model_stubdomain))
+>>      
+> You just extracted guest_config from b_info but you still have the
+> b_info point to hand. Why not use it? Likewise a few more times below.
+>    
+An error, will be fix on next patch version.
+>> +     * PCI device number. Before 3, we have IDE, ISA, SouthBridge and
+>> +     * XEN PCI. Theses devices will be emulate in each QEMU, but only
+>> +     * one QEMU (the one which emulates default device) will register
+>> +     * these devices through Xen PCI hypercall.
+>> +     */
+>> +    static unsigned int bdf = 3;
+>>      
+> Do you mean const rather than static?
+>
+>    
+No static. With QEMU disaggregation, the toolstack allocate
+BDF incrementaly. QEMU is unable to know if a BDF is already
+allocated in another QEMU.
+For the moment, bdf variable is used to give a devfn for
+network card and VGA.
+
+> Isn't this baking in some implementation detail from the current qemu
+> version? What happens if it changes?
+>    
+
+I don't have another way for the moment. I would be happy,
+if someone have a good solution.
+
+>> +
+>>       libxl_ctx *ctx = libxl__gc_owner(gc);
+>>       const libxl_domain_create_info *c_info =&guest_config->c_info;
+>>       const libxl_domain_build_info *b_info =&guest_config->b_info;
+>> +    const libxl_dm *dm_config =&guest_config->dms[dmid];
+>>       const libxl_device_disk *disks = guest_config->disks;
+>>       const libxl_device_nic *nics = guest_config->nics;
+>>       const int num_disks = guest_config->num_disks;
+>>       const int num_nics = guest_config->num_nics;
+>> -    const libxl_vnc_info *vnc = libxl__dm_vnc(guest_config);
+>> +    const libxl_vnc_info *vnc = libxl__dm_vnc(dmid, guest_config);
+>>       const libxl_sdl_info *sdl = dm_sdl(guest_config);
+>>       const char *keymap = dm_keymap(guest_config);
+>>       flexarray_t *dm_args;
+>>       int i;
+>>       uint64_t ram_size;
+>> +    uint32_t cap_ui = dm_config->capabilities&  LIBXL_DM_CAP_UI;
+>> +    uint32_t cap_ide = dm_config->capabilities&  LIBXL_DM_CAP_IDE;
+>> +    uint32_t cap_serial = dm_config->capabilities&  LIBXL_DM_CAP_SERIAL;
+>> +    uint32_t cap_audio = dm_config->capabilities&  LIBXL_DM_CAP_AUDIO;
+>>      
+> ->capabilities is defined as 64 bits, but you use 32 here, which happens
+> to work if you know what the actual values of the enum are but whoever
+> adds the 33rd capability will probably get it wrong.
+>
+>       bool cap_foo = !! (dm_....capabiltieis&  LIBXL_DM_CAP_FOO)
+>
+> would probably work?
+>    
+Indeed, will be fix in next patch version.
+
+>>       dm_args = flexarray_make(16, 1);
+>>       if (!dm_args)
+>> @@ -348,11 +389,12 @@ static char ** libxl__build_device_model_args_new(libxl__gc *gc,
+>>                         "-xen-domid",
+>>                         libxl__sprintf(gc, "%d", guest_domid), NULL);
+>>
+>> +    flexarray_append(dm_args, "-nodefaults");
+>>      
+> Does this not cause a change in behaviour other than what you've
+> accounted for here?
+>    
+  By default QEMU emulates VGA card, and a network card. This options,
+disabled it  and avoid to add "-net none".
+I added it after a discussion on my first patch series.
+https://lists.gnu.org/archive/html/qemu-devel/2012-03/msg04767.html
+
+>> @@ -528,65 +583,69 @@ static char ** libxl__build_device_model_args_new(libxl__gc *gc,
+>>           abort();
+>>       }
+>>
+>> -    ram_size = libxl__sizekb_to_mb(b_info->max_memkb - b_info->video_memkb);
+>> +    // Allocate ram space of 32Mo per previous device model to store rom
+>>      
+> What is this about?
+>
+> (also that Mo looks a bit odd in among all these mb's)
+>
+>    
+It's space for ROM allocation, like vga, rtl8139 roms ...
+Each QEMU can load ROM and memory, but the memory
+allocator consider that it's alone. It starts to allocate
+ROM space from the end of memory RAM.
+
+It's a solution suggest by Stefano, it's avoid modification
+in QEMU. As we don't know the number of ROM and their
+size per QEMU, we chose a space of 32 Mo to be sure, but in
+fine most of time memory is not allocated.
+
+-- 
+Julien
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<50379193.3020600@citrix.com> b/config/examples/test/corpus/<50379193.3020600@citrix.com>
new file mode 100644 (file)
index 0000000..43fbc75
--- /dev/null
@@ -0,0 +1,228 @@
+From xen-devel-bounces@lists.xen.org Fri Aug 24 18:39:30 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 24 Aug 2012 18:39:30 +0100
+Received: from offsite2.bytemark.co.uk ([85.17.170.78])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T4xqH-0000iY-Mn
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 24 Aug 2012 18:38:52 +0100
+Received: from [50.57.142.19] (helo=lists.xen.org)
+       by offsite2.bytemark.co.uk with esmtp (Exim 4.69)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T4v6V-0001nT-07
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 24 Aug 2012 14:43:19 +0000
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T4uzw-0000uJ-H7; Fri, 24 Aug 2012 14:36:32 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <julien.grall@citrix.com>) id 1T4uzu-0000uE-6V
+       for xen-devel@lists.xen.org; Fri, 24 Aug 2012 14:36:30 +0000
+Received: from [85.158.143.99:64099] by server-3.bemta-4.messagelabs.com id
+       D0/55-08232-D6197305; Fri, 24 Aug 2012 14:36:29 +0000
+X-Env-Sender: julien.grall@citrix.com
+X-Msg-Ref: server-5.tower-216.messagelabs.com!1345818987!27456079!1
+X-Originating-IP: [66.165.176.89]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNjY0ODk=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 6919 invoked from network); 24 Aug 2012 14:36:28 -0000
+Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
+       by server-5.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
+       24 Aug 2012 14:36:28 -0000
+X-IronPort-AV: E=Sophos;i="4.80,304,1344225600"; d="scan'208";a="35714961"
+Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
+       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       24 Aug 2012 10:36:16 -0400
+Received: from [10.80.248.240] (10.80.248.240) by smtprelay.citrix.com
+       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0; Fri, 24 Aug 2012
+       10:36:16 -0400
+Message-ID: <50379193.3020600@citrix.com>
+Date: Fri, 24 Aug 2012 15:37:07 +0100
+From: Julien Grall <julien.grall@citrix.com>
+User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US;
+       rv:1.9.1.16) Gecko/20120726 Icedove/3.0.11
+MIME-Version: 1.0
+To: Ian Campbell <Ian.Campbell@citrix.com>
+References: <cover.1345552068.git.julien.grall@citrix.com>     
+       <9522ee398a1fd3cdce48cfe883b307336ae6674f.1345552068.git.julien.grall@citrix.com>       
+       <1345730172.12501.113.camel@zakaz.uk.xensource.com>     
+       <503786CF.40006@citrix.com>
+       <1345817370.19419.22.camel@zakaz.uk.xensource.com>
+In-Reply-To: <1345817370.19419.22.camel@zakaz.uk.xensource.com>
+Cc: "christian.limpach@gmail.com" <christian.limpach@gmail.com>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
+       "qemu-devel@nongnu.org" <qemu-devel@nongnu.org>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Transfer-Encoding: 7bit
+Content-Type: text/plain; charset="us-ascii"; Format="flowed"
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 85.17.170.78
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,UNPARSEABLE_RELAY
+       autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [XEN][RFC PATCH V2 15/17] xl: support spawn/destroy
+ on multiple device model
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On 08/24/2012 03:09 PM, Ian Campbell wrote:
+> On Fri, 2012-08-24 at 14:51 +0100, Julien Grall wrote:
+>    
+>>>> @@ -1044,7 +1044,8 @@ int libxl__wait_for_device_model(libxl__gc *gc,
+>>>>                                     void *check_callback_userdata)
+>>>>    {
+>>>>        char *path;
+>>>> -    path = libxl__sprintf(gc, "/local/domain/0/device-model/%d/state", domid);
+>>>> +    path = libxl__sprintf(gc, "/local/domain/0/dms/%u/%u/state",
+>>>> +                          domid, dmid);
+>>>>
+>>>>          
+>>> Isn't this control path shared with qemu? I'm not sure we can just
+>>> change it like that? We need to at least retain compatibility with
+>>> pre-disag qemus.
+>>>
+>>>
+>>>        
+>> Indeed, as we have multiple QEMUs for a same domain, we need
+>> to have one control path by QEMU.
+>>
+>> Pre-disag QEMUs cannot work with my changes inside the Xen.
+>> Xen will not forward by default ioreq if there is no ioreq server.
+>>      
+> We might need to consider making disagg an opt in feature, with the
+> default being to have as we do today.
+>    
+When you told feature, it's only for libxl or even for Xen ?
+In case of libxl, if 'device_models' options is not specified
+we used only one QEMU. So there is compatibility with
+previous configuration file.
+In case of Xen, it's hard to have a compatibility. We can
+still spawn only one QEMU, but ioreq handling will not
+send an io request if no device models registered it.
+There is no more default QEMU.
+
+>>>> +     * PCI device number. Before 3, we have IDE, ISA, SouthBridge and
+>>>> +     * XEN PCI. Theses devices will be emulate in each QEMU, but only
+>>>> +     * one QEMU (the one which emulates default device) will register
+>>>> +     * these devices through Xen PCI hypercall.
+>>>> +     */
+>>>> +    static unsigned int bdf = 3;
+>>>>
+>>>>          
+>>> Do you mean const rather than static?
+>>>
+>>>
+>>>        
+>> No static. With QEMU disaggregation, the toolstack allocate
+>> BDF incrementaly. QEMU is unable to know if a BDF is already
+>> allocated in another QEMU.
+>>      
+> This is broken if the toolstack is building multiple domains, since the
+> bdf will be preserved across each of them.
+>
+> You need to put this in some sort of data structure specific to this
+> particular iteration of the builder code. We must surely have something
+> suitable close to hand in this function. libxl__domain_build_state
+> perhaps?
+>
+>    
+Will be fix in the next patch version.
+> A static variable in a library is almost always a mistake.
+>
+>    
+>>> Isn't this baking in some implementation detail from the current qemu
+>>> version? What happens if it changes?
+>>>
+>>>        
+>> I don't have another way for the moment. I would be happy,
+>> if someone have a good solution.
+>>      
+> Could we at least make the assignments of the 3 prior BDFs explicit on
+> the command line too?
+>    
+I don't understand your question. Theses 3 priors BDFs can't
+be modify via QEMU command line (or I don't know how).
+>>>> @@ -528,65 +583,69 @@ static char ** libxl__build_device_model_args_new(libxl__gc *gc,
+>>>>            abort();
+>>>>        }
+>>>>
+>>>> -    ram_size = libxl__sizekb_to_mb(b_info->max_memkb - b_info->video_memkb);
+>>>> +    // Allocate ram space of 32Mo per previous device model to store rom
+>>>>
+>>>>          
+>>> What is this about?
+>>>
+>>> (also that Mo looks a bit odd in among all these mb's)
+>>>
+>>>
+>>>        
+>> It's space for ROM allocation, like vga, rtl8139 roms ...
+>> Each QEMU can load ROM and memory, but the memory
+>> allocator consider that it's alone. It starts to allocate
+>> ROM space from the end of memory RAM.
+>>
+>> It's a solution suggest by Stefano, it's avoid modification
+>> in QEMU. As we don't know the number of ROM and their
+>> size per QEMU, we chose a space of 32 Mo to be sure, but in
+>> fine most of time memory is not allocated.
+>>      
+> "32Mo per previous device model" is the bit which struck me as odd. That
+> means the first device model uses 32Mo, the second 64Mo, the third 96Mo
+> etc?
+>    
+That means:
+     - first QEMU can allocate ROM after ram_size + 0
+     - second after ram_size + 32 mo
+     - ...
+
+It's a hack to avoid modification in QEMU memory allocator
+(find_ram_offset exec.c in QEMU).
+
+> Aren't we already modifying qemu quite substantially to implement this
+> functionality anyway? so why are we trying to avoid it in this one
+> corner? Especially at the cost of doing something which on the face of
+> it looks quite strange!
+>
+>    
+It's not possible to made it in QEMU, otherwise QEMU need to
+be spawn one by one. Indeed, the next QEMU need to know
+what is the last 'address' used by the previous QEMU.
+
+I made a modification in this way, but it was abandoned. Indeed,
+it required XenStore.
+
+> Isn't space for the ROMs allocated by SeaBIOS as part of enumerating the
+> PCI bus anyway? Or is this a different per-ROM allocation?
+>    
+It's the rom allocated via pci_add_option_rom in QEMU.
+QEMU seems to store ROM in memory and then SeaBIOS
+will copy it, in the right place.
+
+-- 
+Julien
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<5037AE20020000780008A7A8@nat28.tlf.novell.com> b/config/examples/test/corpus/<5037AE20020000780008A7A8@nat28.tlf.novell.com>
new file mode 100644 (file)
index 0000000..c7e78c6
--- /dev/null
@@ -0,0 +1,114 @@
+From xen-devel-bounces@lists.xen.org Fri Aug 24 18:39:31 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 24 Aug 2012 18:39:31 +0100
+Received: from offsite2.bytemark.co.uk ([85.17.170.78])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T4xm3-0000lk-Sr
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 24 Aug 2012 18:34:26 +0100
+Received: from [50.57.142.19] (helo=lists.xen.org)
+       by offsite2.bytemark.co.uk with esmtp (Exim 4.69)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T4w3p-0006GZ-0x
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 24 Aug 2012 15:44:37 +0000
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T4vyR-00027t-90; Fri, 24 Aug 2012 15:39:03 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <JBeulich@suse.com>) id 1T4vyP-00027m-4d
+       for xen-devel@lists.xen.org; Fri, 24 Aug 2012 15:39:01 +0000
+Received: from [85.158.138.51:19494] by server-2.bemta-3.messagelabs.com id
+       CE/59-09157-410A7305; Fri, 24 Aug 2012 15:39:00 +0000
+X-Env-Sender: JBeulich@suse.com
+X-Msg-Ref: server-13.tower-174.messagelabs.com!1345822737!8978565!1
+X-Originating-IP: [130.57.49.28]
+X-SpamReason: No, hits=0.0 required=7.0 tests=
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 20396 invoked from network); 24 Aug 2012 15:38:57 -0000
+Received: from nat28.tlf.novell.com (HELO nat28.tlf.novell.com) (130.57.49.28)
+       by server-13.tower-174.messagelabs.com with SMTP;
+       24 Aug 2012 15:38:57 -0000
+Received: from EMEA1-MTA by nat28.tlf.novell.com
+       with Novell_GroupWise; Fri, 24 Aug 2012 16:38:57 +0100
+Message-Id: <5037AE20020000780008A7A8@nat28.tlf.novell.com>
+X-Mailer: Novell GroupWise Internet Agent 12.0.0 
+Date: Fri, 24 Aug 2012 16:38:56 +0100
+From: "Jan Beulich" <JBeulich@suse.com>
+To: "Julien Grall" <julien.grall@citrix.com>
+References: <cover.1345552068.git.julien.grall@citrix.com>
+       <c378b04ee29071c1d6d68bd3ef48fedadb493b10.1345552068.git.julien.grall@citrix.com>
+       <5035E986020000780008A617@nat28.tlf.novell.com>
+       <50360B81.2070402@citrix.com>
+In-Reply-To: <50360B81.2070402@citrix.com>
+Mime-Version: 1.0
+Content-Disposition: inline
+Cc: "christian.limpach@gmail.com" <christian.limpach@gmail.com>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 85.17.170.78
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,UNPARSEABLE_RELAY
+       autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [XEN][RFC PATCH V2 05/17] hvm: Modify hvm_op
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+>>> On 23.08.12 at 12:52, Julien Grall <julien.grall@citrix.com> wrote:
+> On 08/23/2012 08:27 AM, Jan Beulich wrote:
+>>> switch ( a.index )
+>>> {
+>>> -            case HVM_PARAM_IOREQ_PFN:
+>>>      
+>> Removing sub-ops which a domain can issue for itself (which for this and
+>> another one below appears to be the case) is not allowed.
+>>    
+> 
+> I removed these 3 sub-ops because it will not work with
+> QEMU disaggregation. Shared pages and event channel
+> for IO request are private for each device model.
+
+Then they need to be made inaccessible for that specific setup, not
+removed altogether.
+
+>>> +            case HVM_PARAM_IO_PFN_FIRST:
+>>>      
+>> I don't see where in this patch this and the other new sub-op constants
+>> get defined.
+>>    
+> Both sub-op constants are added in patch 1:
+> http://lists.xen.org/archives/html/xen-devel/2012-08/msg01767.html 
+
+Hmm, I can certainly see reasons for breaking up things that way,
+but I generally prefer patches to represent functional units.
+
+Jan
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<503E451A.20107@citrix.com> b/config/examples/test/corpus/<503E451A.20107@citrix.com>
new file mode 100644 (file)
index 0000000..4c7638d
--- /dev/null
@@ -0,0 +1,165 @@
+From xen-devel-bounces@lists.xen.org Wed Aug 29 17:41:21 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 29 Aug 2012 17:41:21 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T6lKQ-0008Gk-Pp
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 29 Aug 2012 17:41:21 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T6lG6-0000Pq-4X; Wed, 29 Aug 2012 16:36:50 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <david.vrabel@citrix.com>) id 1T6lG4-0000Pl-9g
+       for xen-devel@lists.xensource.com; Wed, 29 Aug 2012 16:36:48 +0000
+Received: from [85.158.143.35:34685] by server-3.bemta-4.messagelabs.com id
+       E1/6A-08232-F154E305; Wed, 29 Aug 2012 16:36:47 +0000
+X-Env-Sender: david.vrabel@citrix.com
+X-Msg-Ref: server-8.tower-21.messagelabs.com!1346258203!12474798!1
+X-Originating-IP: [66.165.176.89]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNjc3NTk=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 3102 invoked from network); 29 Aug 2012 16:36:45 -0000
+Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
+       by server-8.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
+       29 Aug 2012 16:36:45 -0000
+X-IronPort-AV: E=Sophos;i="4.80,335,1344211200"; d="scan'208";a="36200921"
+Received: from ftlpmailmx01.citrite.net ([10.13.107.65])
+       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       29 Aug 2012 16:36:43 +0000
+Received: from [10.80.2.76] (10.80.2.76) by FTLPMAILMX01.citrite.net
+       (10.13.107.65) with Microsoft SMTP Server id 8.3.279.1; Wed, 29 Aug 2012
+       12:36:43 -0400
+Message-ID: <503E451A.20107@citrix.com>
+Date: Wed, 29 Aug 2012 17:36:42 +0100
+From: David Vrabel <david.vrabel@citrix.com>
+User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US;
+       rv:1.9.1.16) Gecko/20120428 Iceowl/1.0b1 Icedove/3.0.11
+MIME-Version: 1.0
+To: Andres Lagar-Cavilla <andreslc@gridcentric.ca>
+References: <1346246116-29999-1-git-send-email-david.vrabel@citrix.com>
+       <1346246116-29999-3-git-send-email-david.vrabel@citrix.com>
+       <7392D0E0-02A4-48D7-8B16-4F93EA01F3AF@gridcentric.ca>
+In-Reply-To: <7392D0E0-02A4-48D7-8B16-4F93EA01F3AF@gridcentric.ca>
+Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
+       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="windows-1252"
+Content-Transfer-Encoding: quoted-printable
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 2/2] xen/privcmd: add PRIVCMD_MMAPBATCH_V2
+       ioctl
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On 29/08/12 17:14, Andres Lagar-Cavilla wrote:
+> =
+
+> On Aug 29, 2012, at 9:15 AM, David Vrabel wrote:
+> =
+
+>> From: David Vrabel <david.vrabel@citrix.com>
+>>
+>> PRIVCMD_MMAPBATCH_V2 extends PRIVCMD_MMAPBATCH with an additional
+>> field for reporting the error code for every frame that could not be
+>> mapped.  libxc prefers PRIVCMD_MMAPBATCH_V2 over PRIVCMD_MMAPBATCH.
+[...]
+>> diff --git a/drivers/xen/privcmd.c b/drivers/xen/privcmd.c
+>> index ccee0f1..ddd32cf 100644
+>> --- a/drivers/xen/privcmd.c
+>> +++ b/drivers/xen/privcmd.c
+>> @@ -248,18 +248,23 @@ struct mmap_batch_state {
+>>     struct vm_area_struct *vma;
+>>     int err;
+>>
+>> -   xen_pfn_t __user *user;
+>> +   xen_pfn_t __user *user_mfn;
+>> +   int __user *user_err;
+>> };
+>>
+>> static int mmap_batch_fn(void *data, void *state)
+>> {
+>>     xen_pfn_t *mfnp =3D data;
+>> +   int *err =3D data;
+> Am I missing something or is there an aliasing here? Both mfnp and err po=
+int to data?
+
+There is deliberate aliasing here.  We use the mfn array to save the
+error codes for later processing.
+
+>>     struct mmap_batch_state *st =3D state;
+>> +   int ret;
+>>
+>> -   if (xen_remap_domain_mfn_range(st->vma, st->va & PAGE_MASK, *mfnp, 1,
+>> -                                  st->vma->vm_page_prot, st->domain) < 0) {
+>> -           *mfnp |=3D 0xf0000000U;
+>> -           st->err++;
+>> +   ret =3D xen_remap_domain_mfn_range(st->vma, st->va & PAGE_MASK, *mfnp,=
+ 1,
+>> +                                    st->vma->vm_page_prot, st->domain);
+>> +   if (ret < 0) {
+>> +           *err =3D ret;
+>> +           if (st->err =3D=3D 0 || st->err =3D=3D -ENOENT)
+>> +                   st->err =3D ret;
+> This will unset -ENOENT if a frame after an ENOENT error fails differentl=
+y.
+
+I thought that was what the original implementation did but it seems it
+does not.
+
+>> @@ -325,12 +359,16 @@ static long privcmd_ioctl_mmap_batch(void __user *=
+udata)
+>>
+>>     up_write(&mm->mmap_sem);
+>>
+>> -   if (state.err > 0) {
+>> -           state.user =3D m.arr;
+>> +   if (state.err) {
+>> +           state.user_mfn =3D (xen_pfn_t *)m.arr;
+>> +           state.user_err =3D m.err;
+>>             ret =3D traverse_pages(m.num, sizeof(xen_pfn_t),
+>> -                          &pagelist,
+>> -                          mmap_return_errors, &state);
+>> -   }
+>> +                                &pagelist,
+>> +                                mmap_return_errors, &state);
+
+> The callback now maps data to err (instead of mfnp =85 but I see no
+> change to the gather_array other than a cast =85am I missing something?
+
+The kernel mfn and the err array are aliased.
+
+I could have made gather_array() allow the kernel array to have larger
+elements than the user array but that looked like too much work.
+
+David
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<503E49BE.7080704@citrix.com> b/config/examples/test/corpus/<503E49BE.7080704@citrix.com>
new file mode 100644 (file)
index 0000000..bf50776
--- /dev/null
@@ -0,0 +1,114 @@
+From xen-devel-bounces@lists.xen.org Wed Aug 29 18:01:06 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 29 Aug 2012 18:01:06 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T6ldY-0008La-Js
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 29 Aug 2012 18:01:06 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T6lZL-0000hb-Ba; Wed, 29 Aug 2012 16:56:43 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <david.vrabel@citrix.com>) id 1T6lZJ-0000hW-P6
+       for xen-devel@lists.xensource.com; Wed, 29 Aug 2012 16:56:41 +0000
+Received: from [85.158.143.99:16777] by server-3.bemta-4.messagelabs.com id
+       E3/DD-08232-9C94E305; Wed, 29 Aug 2012 16:56:41 +0000
+X-Env-Sender: david.vrabel@citrix.com
+X-Msg-Ref: server-7.tower-216.messagelabs.com!1346259399!24083762!1
+X-Originating-IP: [66.165.176.63]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyNzQ5MjE=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 17712 invoked from network); 29 Aug 2012 16:56:40 -0000
+Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
+       by server-7.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
+       29 Aug 2012 16:56:40 -0000
+X-IronPort-AV: E=Sophos;i="4.80,335,1344211200"; d="scan'208";a="206567486"
+Received: from ftlpmailmx01.citrite.net ([10.13.107.65])
+       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       29 Aug 2012 16:56:32 +0000
+Received: from [10.80.2.76] (10.80.2.76) by FTLPMAILMX01.citrite.net
+       (10.13.107.65) with Microsoft SMTP Server id 8.3.279.1; Wed, 29 Aug 2012
+       12:56:31 -0400
+Message-ID: <503E49BE.7080704@citrix.com>
+Date: Wed, 29 Aug 2012 17:56:30 +0100
+From: David Vrabel <david.vrabel@citrix.com>
+User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US;
+       rv:1.9.1.16) Gecko/20120428 Iceowl/1.0b1 Icedove/3.0.11
+MIME-Version: 1.0
+To: Ian Campbell <Ian.Campbell@citrix.com>
+References: <1346246116-29999-1-git-send-email-david.vrabel@citrix.com>
+       <1346257402.20019.9.camel@zakaz.uk.xensource.com>
+In-Reply-To: <1346257402.20019.9.camel@zakaz.uk.xensource.com>
+Cc: Andres Lagar-Cavilla <andres@gridcentric.ca>,
+       "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
+       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCHv2 0/2] xen/privcmd: support for paged-out
+ frames
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On 29/08/12 17:23, Ian Campbell wrote:
+> On Wed, 2012-08-29 at 14:15 +0100, David Vrabel wrote:
+>> This series is a straight forward-port of some functionality from
+>> classic kernels to support Xen hosts that do paging of guests.
+>>
+>> This isn't functionality the XenServer makes use of so I've not tested
+>> these with paging in use.
+>>
+>> Changes since v1:
+>>
+>> - Don't change PRIVCMD_MMAPBATCH (except to #define a constant for the
+>>   error).  It's broken and not really fixable sensibly and libxc will
+>>   use V2 if it is available.
+>> - Return -ENOENT if all failures were -ENOENT.
+> 
+> Is this behaviour a requirement from something?
+
+It's the behaviour libxc is expecting.  It doesn't retry unless errno ==
+ENOENT.
+
+> Usually hypercalls of this type return a global error only if something
+> went wrong with the general mechanics of the hypercall (e.g. faults
+> reading arguments etc) and leave reporting of the individual failures of
+> subops to the op specific field, even if all the subops fail in the same
+> way.
+
+I didn't design this interface...  Feel free to propose (and implement)
+an alternate MMAPBATCH_V3 interface.
+
+David
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<503F3BC9.6020100@citrix.com> b/config/examples/test/corpus/<503F3BC9.6020100@citrix.com>
new file mode 100644 (file)
index 0000000..f67ba64
--- /dev/null
@@ -0,0 +1,136 @@
+From xen-devel-bounces@lists.xen.org Thu Aug 30 11:14:49 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 30 Aug 2012 11:14:49 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T71lr-0006UR-Ke
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 30 Aug 2012 11:14:49 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T71ge-0005Ym-Px; Thu, 30 Aug 2012 10:09:20 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <david.vrabel@citrix.com>) id 1T71gc-0005Yh-6R
+       for xen-devel@lists.xensource.com; Thu, 30 Aug 2012 10:09:18 +0000
+Received: from [85.158.139.83:54221] by server-4.bemta-5.messagelabs.com id
+       58/9C-23042-DCB3F305; Thu, 30 Aug 2012 10:09:17 +0000
+X-Env-Sender: david.vrabel@citrix.com
+X-Msg-Ref: server-11.tower-182.messagelabs.com!1346321355!20450846!1
+X-Originating-IP: [66.165.176.63]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyNzUxOTI=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 15267 invoked from network); 30 Aug 2012 10:09:16 -0000
+Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
+       by server-11.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
+       30 Aug 2012 10:09:16 -0000
+X-IronPort-AV: E=Sophos;i="4.80,338,1344211200"; d="scan'208";a="206641610"
+Received: from ftlpmailmx01.citrite.net ([10.13.107.65])
+       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       30 Aug 2012 10:09:15 +0000
+Received: from [10.80.2.76] (10.80.2.76) by FTLPMAILMX01.citrite.net
+       (10.13.107.65) with Microsoft SMTP Server id 8.3.279.1; Thu, 30 Aug 2012
+       06:09:14 -0400
+Message-ID: <503F3BC9.6020100@citrix.com>
+Date: Thu, 30 Aug 2012 11:09:13 +0100
+From: David Vrabel <david.vrabel@citrix.com>
+User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US;
+       rv:1.9.1.16) Gecko/20120428 Iceowl/1.0b1 Icedove/3.0.11
+MIME-Version: 1.0
+To: Ian Campbell <Ian.Campbell@citrix.com>
+References: <1346246116-29999-1-git-send-email-david.vrabel@citrix.com>        
+       <1346257402.20019.9.camel@zakaz.uk.xensource.com>       
+       <503E49BE.7080704@citrix.com>
+       <1346263520.6655.4.camel@dagon.hellion.org.uk>
+In-Reply-To: <1346263520.6655.4.camel@dagon.hellion.org.uk>
+Cc: Andres Lagar-Cavilla <andres@gridcentric.ca>,
+       "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
+       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCHv2 0/2] xen/privcmd: support for paged-out
+ frames
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On 29/08/12 19:05, Ian Campbell wrote:
+> On Wed, 2012-08-29 at 17:56 +0100, David Vrabel wrote:
+>> On 29/08/12 17:23, Ian Campbell wrote:
+>>> On Wed, 2012-08-29 at 14:15 +0100, David Vrabel wrote:
+>>>> This series is a straight forward-port of some functionality from
+>>>> classic kernels to support Xen hosts that do paging of guests.
+>>>>
+>>>> This isn't functionality the XenServer makes use of so I've not tested
+>>>> these with paging in use.
+>>>>
+>>>> Changes since v1:
+>>>>
+>>>> - Don't change PRIVCMD_MMAPBATCH (except to #define a constant for the
+>>>>   error).  It's broken and not really fixable sensibly and libxc will
+>>>>   use V2 if it is available.
+>>>> - Return -ENOENT if all failures were -ENOENT.
+>>>
+>>> Is this behaviour a requirement from something?
+>>
+>> It's the behaviour libxc is expecting.  It doesn't retry unless errno ==
+>> ENOENT.
+> 
+> Surely if that is the case you must return -ENOENT if *any* failure was
+> -ENOENT? That seems to be what the linux-2.6.18-xen.hg implementation
+> does.
+
+Yes.
+
+libxc will subsequently fail the whole map call is any frame errors
+without ENOENT so if someone was to propose a V3 it may be useful to
+return a different error code for other errors.
+
+>>> Usually hypercalls of this type return a global error only if something
+>>> went wrong with the general mechanics of the hypercall (e.g. faults
+>>> reading arguments etc) and leave reporting of the individual failures of
+>>> subops to the op specific field, even if all the subops fail in the same
+>>> way.
+>>
+>> I didn't design this interface...
+> 
+> The interface you described doesn't make any sense...
+
+I don't entirely agree.  There are three types of result: success,
+retryable errors, and fatal errors.  It's not nonsensical to return
+different error codes for these.
+
+Regardless, it's not what the original implementation does so I'll fix
+rework the patch.
+
+David
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<50409CE002000076000B3B44@novprvoes0310.provo.novell.com> b/config/examples/test/corpus/<50409CE002000076000B3B44@novprvoes0310.provo.novell.com>
new file mode 100644 (file)
index 0000000..0c68784
--- /dev/null
@@ -0,0 +1,150 @@
+From xen-devel-bounces@lists.xen.org Fri Aug 31 18:26:48 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 31 Aug 2012 18:26:48 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T7UzW-0007dw-B5
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 31 Aug 2012 18:26:48 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T7Uuz-0000sl-94; Fri, 31 Aug 2012 17:22:05 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <kallan@suse.com>) id 1T7Uov-0000rr-LN
+       for xen-devel@lists.xen.org; Fri, 31 Aug 2012 17:15:49 +0000
+Received: from [85.158.139.83:55091] by server-12.bemta-5.messagelabs.com id
+       3D/C3-18300-441F0405; Fri, 31 Aug 2012 17:15:48 +0000
+X-Env-Sender: kallan@suse.com
+X-Msg-Ref: server-6.tower-182.messagelabs.com!1346433347!24088724!1
+X-Originating-IP: [137.65.248.74]
+X-SpamReason: No, hits=0.5 required=7.0 tests=BODY_RANDOM_LONG
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 18721 invoked from network); 31 Aug 2012 17:15:47 -0000
+Received: from novprvoes0310.provo.novell.com (HELO
+       novprvoes0310.provo.novell.com) (137.65.248.74)
+       by server-6.tower-182.messagelabs.com with SMTP;
+       31 Aug 2012 17:15:47 -0000
+Received: from INET-PRV-MTA by novprvoes0310.provo.novell.com
+       with Novell_GroupWise; Fri, 31 Aug 2012 11:15:46 -0600
+Message-Id: <50409CE002000076000B3B44@novprvoes0310.provo.novell.com>
+X-Mailer: Novell GroupWise Internet Agent 12.0.1 
+Date: Fri, 31 Aug 2012 11:15:44 -0600
+From: "Kirk Allan" <kallan@suse.com>
+To: "Charles Arnold" <CARNOLD@suse.com>,
+ "Jan Beulich" <JBeulich@suse.com>
+References: <1344935141.5926.6.camel@zakaz.uk.xensource.com>
+       <20120814100704.GA19704@bloms.de>
+       <1346421542.27277.218.camel@zakaz.uk.xensource.com>
+       <1346425278.27277.224.camel@zakaz.uk.xensource.com>
+       <5040F7140200007800097E91@nat28.tlf.novell.com>
+       <1346428292.27277.243.camel@zakaz.uk.xensource.com>
+       <5040FB490200007800097ED2@nat28.tlf.novell.com>
+In-Reply-To: <5040FB490200007800097ED2@nat28.tlf.novell.com>
+Mime-Version: 1.0
+Content-Disposition: inline
+X-Mailman-Approved-At: Fri, 31 Aug 2012 17:22:03 +0000
+Cc: Dieter Bloms <xensource.com@bloms.de>,
+       Ian Jackson <Ian.Jackson@eu.citrix.com>,
+       Ian Campbell <Ian.Campbell@citrix.com>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [Xen-users] Xen 4.2 TODO (io and irq parameter are
+ not evaluated by xl)
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+
+
+>>> On 8/31/2012 at 09:58 AM, in message
+<5040FB490200007800097ED2@nat28.tlf.novell.com>, "Jan Beulich"
+<JBeulich@suse.com> wrote: 
+>>>> On 31.08.12 at 17:51, Ian Campbell <Ian.Campbell@citrix.com> wrote:
+>> On Fri, 2012-08-31 at 16:40 +0100, Jan Beulich wrote:
+>>> >>> On 31.08.12 at 17:01, Ian Campbell <Ian.Campbell@citrix.com> wrote:
+>>> > --- a/docs/man/xl.cfg.pod.5      Fri Aug 31 12:03:55 2012 +0100
+>>> > +++ b/docs/man/xl.cfg.pod.5      Fri Aug 31 15:54:42 2012 +0100
+>>> > @@ -402,6 +402,30 @@ for more information on the "permissive"
+>>> >  
+>>> >  =back
+>>> >  
+>>> > +=item B<ioports=[ "IOPORT_RANGE", "IOPORT_RANGE", ... ]>
+>>> 
+>>> Is this really with quotes, and requiring an array?
+>> 
+>> I was mostly just following
+>> http://cmrg.fifthhorseman.net/wiki/xen#grantingaccesstoserialhardwaretoadomU 
+> 
+>> which suggested that this is the xm syntax too.
+>> 
+>>> > +
+>>> > +=over 4
+>>> > +
+>>> > +Allow guest to access specific legacy I/O ports. Each B<IOPORT_RANGE>
+>>> > +is given in hexadecimal and may either a span e.g. C<2f8-2ff>
+>>> > +(inclusive) or a single I/O port C<2f8>.
+>>> > +
+>>> > +It is recommended to use this option only for trusted VMs under
+>>> > +administrator control.
+>>> > +
+>>> > +=back
+>>> > +
+>>> > +=item B<irqs=[ NUMBER, NUMBER, ... ]>
+>>> 
+>>> Similarly here - is this really requiring an array? I ask because
+>>> I had to look at this just last week for a colleague, and what
+>>> we got out of inspection of examples/code was that a simple
+>>> number (and a simple range without quotes above) are
+>>> permitted too.
+>> 
+>> I had a look in create.py and opts.py and didn't see that, I suppose I
+>> missed it.
+>> 
+>> I could implement support for either an array or a simple string/number
+>> but it would complicate the code quite a bit. Is it really worth it?
+> 
+> Charles, Kirk, could you comment here?
+
+In one of my Window's vm config files, I was able to get the vm to boot using ioports=['3f8-3ff'].  My goal was to do serial debugging of the Windows vm.  I also added irq=[4] to the config file.  However, I was not able to actually get a debug session to work.  The physical machine running windbg received a string from the vm which gave me hope that it was working, but then it never received further data so the vm eventually booted without being attached to the debugger.
+
+> 
+> Thanks, Jan
+> 
+> 
+> _______________________________________________
+> Xen-devel mailing list
+> Xen-devel@lists.xen.org
+> http://lists.xen.org/xen-devel
+
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<5040A73502000076000B3B82@novprvoes0310.provo.novell.com> b/config/examples/test/corpus/<5040A73502000076000B3B82@novprvoes0310.provo.novell.com>
new file mode 100644 (file)
index 0000000..2633f11
--- /dev/null
@@ -0,0 +1,123 @@
+From xen-devel-bounces@lists.xen.org Fri Aug 31 19:03:44 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 31 Aug 2012 19:03:44 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T7VZC-0007lW-Nx
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 31 Aug 2012 19:03:44 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T7VVe-0003wR-Bu; Fri, 31 Aug 2012 17:59:58 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <kallan@suse.com>) id 1T7VVc-0003wJ-QD
+       for xen-devel@lists.xen.org; Fri, 31 Aug 2012 17:59:57 +0000
+Received: from [85.158.139.83:36838] by server-9.bemta-5.messagelabs.com id
+       73/27-20529-C9BF0405; Fri, 31 Aug 2012 17:59:56 +0000
+X-Env-Sender: kallan@suse.com
+X-Msg-Ref: server-16.tower-182.messagelabs.com!1346435993!20620376!1
+X-Originating-IP: [137.65.248.74]
+X-SpamReason: No, hits=0.5 required=7.0 tests=BODY_RANDOM_LONG
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 10072 invoked from network); 31 Aug 2012 17:59:53 -0000
+Received: from novprvoes0310.provo.novell.com (HELO
+       novprvoes0310.provo.novell.com) (137.65.248.74)
+       by server-16.tower-182.messagelabs.com with SMTP;
+       31 Aug 2012 17:59:53 -0000
+Received: from INET-PRV-MTA by novprvoes0310.provo.novell.com
+       with Novell_GroupWise; Fri, 31 Aug 2012 11:59:52 -0600
+Message-Id: <5040A73502000076000B3B82@novprvoes0310.provo.novell.com>
+X-Mailer: Novell GroupWise Internet Agent 12.0.1 
+Date: Fri, 31 Aug 2012 11:59:49 -0600
+From: "Kirk Allan" <kallan@suse.com>
+To: "Ian Campbell" <Ian.Campbell@citrix.com>
+References: <1344935141.5926.6.camel@zakaz.uk.xensource.com>
+       <20120814100704.GA19704@bloms.de>
+       <1346421542.27277.218.camel@zakaz.uk.xensource.com>
+       <1346425278.27277.224.camel@zakaz.uk.xensource.com>
+       <5040F7140200007800097E91@nat28.tlf.novell.com>
+       <1346428292.27277.243.camel@zakaz.uk.xensource.com>
+       <5040FB490200007800097ED2@nat28.tlf.novell.com>
+       <50409CE002000076000B3B44@novprvoes0310.provo.novell.com>
+       <1346434547.5820.10.camel@dagon.hellion.org.uk>
+In-Reply-To: <1346434547.5820.10.camel@dagon.hellion.org.uk>
+Mime-Version: 1.0
+Content-Disposition: inline
+Cc: Charles Arnold <CARNOLD@suse.com>, DieterBloms <xensource.com@bloms.de>,
+       Ian Jackson <Ian.Jackson@eu.citrix.com>, Jan Beulich <JBeulich@suse.com>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [Xen-users] Xen 4.2 TODO (io and irq parameter are
+ not evaluated by xl)
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+
+
+>>> On 8/31/2012 at 11:35 AM, in message
+<1346434547.5820.10.camel@dagon.hellion.org.uk>, Ian Campbell
+<Ian.Campbell@citrix.com> wrote: 
+> On Fri, 2012-08-31 at 18:15 +0100, Kirk Allan wrote:
+> 
+>> > Charles, Kirk, could you comment here?
+>> 
+>> In one of my Window's vm config files, I was able to get the vm to
+>> boot using ioports=['3f8-3ff'].  My goal was to do serial debugging of
+>> the Windows vm.  I also added irq=[4] to the config file.  However, I
+>> was not able to actually get a debug session to work.  The physical
+>> machine running windbg received a string from the vm which gave me
+>> hope that it was working, but then it never received further data so
+>> the vm eventually booted without being attached to the debugger.
+> 
+> Thanks, the question was whether it would be useful to implement the
+>      ioports = '3f8-3ff'
+>      irq = 4
+> syntax as well as the
+>      ioports = ['3f8-3ff']
+>      irq = [4]
+> but it looks like you are actually using the array version anyway?
+
+I first looked at this last week.  I found reference to both formats so I tried both.  I was only able to get the ioports = ['3f8-3ff'] and irq = [4] syntax to allow a vm to boot.
+
+> 
+> I think I'd rather avoid implementing both options unless there is a
+> strong reason to do so.
+
+For me, I don't have a strong reason to implement support for both ways.  
+
+> 
+> Ian.
+
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<5040F7140200007800097E91@nat28.tlf.novell.com> b/config/examples/test/corpus/<5040F7140200007800097E91@nat28.tlf.novell.com>
new file mode 100644 (file)
index 0000000..8e77eca
--- /dev/null
@@ -0,0 +1,129 @@
+From xen-devel-bounces@lists.xen.org Fri Aug 31 16:45:00 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 31 Aug 2012 16:45:00 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T7TP0-0007Ha-Dg
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 31 Aug 2012 16:45:00 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T7TKs-0005RM-4R; Fri, 31 Aug 2012 15:40:42 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <JBeulich@suse.com>) id 1T7TKr-0005RF-2h
+       for xen-devel@lists.xen.org; Fri, 31 Aug 2012 15:40:41 +0000
+Received: from [85.158.143.35:54962] by server-1.bemta-4.messagelabs.com id
+       81/53-12504-8FAD0405; Fri, 31 Aug 2012 15:40:40 +0000
+X-Env-Sender: JBeulich@suse.com
+X-Msg-Ref: server-6.tower-21.messagelabs.com!1346427639!16093843!1
+X-Originating-IP: [130.57.49.28]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogMTMwLjU3LjQ5LjI4ID0+IDM2OTU=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 24536 invoked from network); 31 Aug 2012 15:40:39 -0000
+Received: from nat28.tlf.novell.com (HELO nat28.tlf.novell.com) (130.57.49.28)
+       by server-6.tower-21.messagelabs.com with SMTP;
+       31 Aug 2012 15:40:39 -0000
+Received: from EMEA1-MTA by nat28.tlf.novell.com
+       with Novell_GroupWise; Fri, 31 Aug 2012 16:40:39 +0100
+Message-Id: <5040F7140200007800097E91@nat28.tlf.novell.com>
+X-Mailer: Novell GroupWise Internet Agent 12.0.0 
+Date: Fri, 31 Aug 2012 16:40:36 +0100
+From: "Jan Beulich" <JBeulich@suse.com>
+To: "Ian Campbell" <Ian.Campbell@citrix.com>
+References: <1344935141.5926.6.camel@zakaz.uk.xensource.com>
+       <20120814100704.GA19704@bloms.de>
+       <1346421542.27277.218.camel@zakaz.uk.xensource.com>
+       <1346425278.27277.224.camel@zakaz.uk.xensource.com>
+In-Reply-To: <1346425278.27277.224.camel@zakaz.uk.xensource.com>
+Mime-Version: 1.0
+Content-Disposition: inline
+Cc: Dieter Bloms <xensource.com@bloms.de>,
+       Ian Jackson <Ian.Jackson@eu.citrix.com>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [Xen-users] Xen 4.2 TODO (io and irq parameter are
+ not evaluated by xl)
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+>>> On 31.08.12 at 17:01, Ian Campbell <Ian.Campbell@citrix.com> wrote:
+> --- a/docs/man/xl.cfg.pod.5  Fri Aug 31 12:03:55 2012 +0100
+> +++ b/docs/man/xl.cfg.pod.5  Fri Aug 31 15:54:42 2012 +0100
+> @@ -402,6 +402,30 @@ for more information on the "permissive"
+>  
+>  =back
+>  
+> +=item B<ioports=[ "IOPORT_RANGE", "IOPORT_RANGE", ... ]>
+
+Is this really with quotes, and requiring an array?
+
+> +
+> +=over 4
+> +
+> +Allow guest to access specific legacy I/O ports. Each B<IOPORT_RANGE>
+> +is given in hexadecimal and may either a span e.g. C<2f8-2ff>
+> +(inclusive) or a single I/O port C<2f8>.
+> +
+> +It is recommended to use this option only for trusted VMs under
+> +administrator control.
+> +
+> +=back
+> +
+> +=item B<irqs=[ NUMBER, NUMBER, ... ]>
+
+Similarly here - is this really requiring an array? I ask because
+I had to look at this just last week for a colleague, and what
+we got out of inspection of examples/code was that a simple
+number (and a simple range without quotes above) are
+permitted too.
+
+Jan
+
+> +
+> +=over 4
+> +
+> +Allow a guest to access specific physical IRQs.
+> +
+> +It is recommended to use this option only for trusted VMs under
+> +administrator control.
+> +
+> +=back
+> +
+>  =head2 Paravirtualised (PV) Guest Specific Options
+>  
+>  The following options apply only to Paravirtual guests.
+
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<5040FB490200007800097ED2@nat28.tlf.novell.com> b/config/examples/test/corpus/<5040FB490200007800097ED2@nat28.tlf.novell.com>
new file mode 100644 (file)
index 0000000..e943367
--- /dev/null
@@ -0,0 +1,131 @@
+From xen-devel-bounces@lists.xen.org Fri Aug 31 17:02:19 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 31 Aug 2012 17:02:19 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T7Tfh-0007Mh-Me
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 31 Aug 2012 17:02:19 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T7TcH-0006a5-Q3; Fri, 31 Aug 2012 15:58:41 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <JBeulich@suse.com>) id 1T7TcF-0006Zr-L4
+       for xen-devel@lists.xen.org; Fri, 31 Aug 2012 15:58:40 +0000
+Received: from [85.158.139.83:41315] by server-2.bemta-5.messagelabs.com id
+       66/68-11456-E2FD0405; Fri, 31 Aug 2012 15:58:38 +0000
+X-Env-Sender: JBeulich@suse.com
+X-Msg-Ref: server-13.tower-182.messagelabs.com!1346428717!27413019!1
+X-Originating-IP: [130.57.49.28]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogMTMwLjU3LjQ5LjI4ID0+IDM2OTU=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 20921 invoked from network); 31 Aug 2012 15:58:37 -0000
+Received: from nat28.tlf.novell.com (HELO nat28.tlf.novell.com) (130.57.49.28)
+       by server-13.tower-182.messagelabs.com with SMTP;
+       31 Aug 2012 15:58:37 -0000
+Received: from EMEA1-MTA by nat28.tlf.novell.com
+       with Novell_GroupWise; Fri, 31 Aug 2012 16:58:36 +0100
+Message-Id: <5040FB490200007800097ED2@nat28.tlf.novell.com>
+X-Mailer: Novell GroupWise Internet Agent 12.0.0 
+Date: Fri, 31 Aug 2012 16:58:33 +0100
+From: "Jan Beulich" <JBeulich@suse.com>
+To: "Charles Arnold" <CARNOLD@suse.com>,"Kirk Allan" <KALLAN@suse.com>
+References: <1344935141.5926.6.camel@zakaz.uk.xensource.com>
+       <20120814100704.GA19704@bloms.de>
+       <1346421542.27277.218.camel@zakaz.uk.xensource.com>
+       <1346425278.27277.224.camel@zakaz.uk.xensource.com>
+       <5040F7140200007800097E91@nat28.tlf.novell.com>
+       <1346428292.27277.243.camel@zakaz.uk.xensource.com>
+In-Reply-To: <1346428292.27277.243.camel@zakaz.uk.xensource.com>
+Mime-Version: 1.0
+Content-Disposition: inline
+Cc: Dieter Bloms <xensource.com@bloms.de>,
+       Ian Jackson <Ian.Jackson@eu.citrix.com>,
+       Ian Campbell <Ian.Campbell@citrix.com>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [Xen-users] Xen 4.2 TODO (io and irq parameter are
+ not evaluated by xl)
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+>>> On 31.08.12 at 17:51, Ian Campbell <Ian.Campbell@citrix.com> wrote:
+> On Fri, 2012-08-31 at 16:40 +0100, Jan Beulich wrote:
+>> >>> On 31.08.12 at 17:01, Ian Campbell <Ian.Campbell@citrix.com> wrote:
+>> > --- a/docs/man/xl.cfg.pod.5       Fri Aug 31 12:03:55 2012 +0100
+>> > +++ b/docs/man/xl.cfg.pod.5       Fri Aug 31 15:54:42 2012 +0100
+>> > @@ -402,6 +402,30 @@ for more information on the "permissive"
+>> >  
+>> >  =back
+>> >  
+>> > +=item B<ioports=[ "IOPORT_RANGE", "IOPORT_RANGE", ... ]>
+>> 
+>> Is this really with quotes, and requiring an array?
+> 
+> I was mostly just following
+> http://cmrg.fifthhorseman.net/wiki/xen#grantingaccesstoserialhardwaretoadomU 
+> which suggested that this is the xm syntax too.
+> 
+>> > +
+>> > +=over 4
+>> > +
+>> > +Allow guest to access specific legacy I/O ports. Each B<IOPORT_RANGE>
+>> > +is given in hexadecimal and may either a span e.g. C<2f8-2ff>
+>> > +(inclusive) or a single I/O port C<2f8>.
+>> > +
+>> > +It is recommended to use this option only for trusted VMs under
+>> > +administrator control.
+>> > +
+>> > +=back
+>> > +
+>> > +=item B<irqs=[ NUMBER, NUMBER, ... ]>
+>> 
+>> Similarly here - is this really requiring an array? I ask because
+>> I had to look at this just last week for a colleague, and what
+>> we got out of inspection of examples/code was that a simple
+>> number (and a simple range without quotes above) are
+>> permitted too.
+> 
+> I had a look in create.py and opts.py and didn't see that, I suppose I
+> missed it.
+> 
+> I could implement support for either an array or a simple string/number
+> but it would complicate the code quite a bit. Is it really worth it?
+
+Charles, Kirk, could you comment here?
+
+Thanks, Jan
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<50447D7802000078000982B4@nat28.tlf.novell.com> b/config/examples/test/corpus/<50447D7802000078000982B4@nat28.tlf.novell.com>
new file mode 100644 (file)
index 0000000..a27c740
--- /dev/null
@@ -0,0 +1,111 @@
+From xen-devel-bounces@lists.xen.org Mon Sep 03 08:55:19 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Mon, 03 Sep 2012 08:55:19 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T8RV6-0000Eg-M3
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Mon, 03 Sep 2012 08:55:19 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T8RR0-0001zZ-VX; Mon, 03 Sep 2012 07:51:02 +0000
+Received: from mail27.messagelabs.com ([193.109.254.147])
+       by lists.xen.org with smtp (Exim 4.72)
+       (envelope-from <JBeulich@suse.com>) id 1T8RQz-0001zP-94
+       for xen-devel@lists.xen.org; Mon, 03 Sep 2012 07:51:01 +0000
+X-Env-Sender: JBeulich@suse.com
+X-Msg-Ref: server-11.tower-27.messagelabs.com!1346658651!2450972!1
+X-Originating-IP: [130.57.49.28]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogMTMwLjU3LjQ5LjI4ID0+IDM3ODU=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 21318 invoked from network); 3 Sep 2012 07:50:51 -0000
+Received: from nat28.tlf.novell.com (HELO nat28.tlf.novell.com) (130.57.49.28)
+       by server-11.tower-27.messagelabs.com with SMTP;
+       3 Sep 2012 07:50:51 -0000
+Received: from EMEA1-MTA by nat28.tlf.novell.com
+       with Novell_GroupWise; Mon, 03 Sep 2012 08:50:51 +0100
+Message-Id: <50447D7802000078000982B4@nat28.tlf.novell.com>
+X-Mailer: Novell GroupWise Internet Agent 12.0.0 
+Date: Mon, 03 Sep 2012 08:50:48 +0100
+From: "Jan Beulich" <JBeulich@suse.com>
+To: "Ian Campbell" <Ian.Campbell@citrix.com>
+References: <1344935141.5926.6.camel@zakaz.uk.xensource.com>
+       <20120814100704.GA19704@bloms.de>
+       <1346421542.27277.218.camel@zakaz.uk.xensource.com>
+       <1346425278.27277.224.camel@zakaz.uk.xensource.com>
+       <5040F7140200007800097E91@nat28.tlf.novell.com>
+       <1346428292.27277.243.camel@zakaz.uk.xensource.com>
+       <5040FB490200007800097ED2@nat28.tlf.novell.com>
+       <50409CE002000076000B3B44@novprvoes0310.provo.novell.com>
+       <1346434547.5820.10.camel@dagon.hellion.org.uk> 
+In-Reply-To: 
+Mime-Version: 1.0
+Content-Disposition: inline
+Cc: Charles Arnold <CARNOLD@suse.com>, Kirk Allan <KALLAN@suse.com>,
+       DieterBloms <xensource.com@bloms.de>,
+       Ian Jackson <Ian.Jackson@eu.citrix.com>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [Xen-users] Xen 4.2 TODO (io and irq parameter are
+ not evaluated by xl)
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+>>> On 31.08.12 at 19:59, Kirk Allan wrote:
+>>> In one of my Window's vm config files, I was able to get the vm to
+>>> boot using ioports=['3f8-3ff'].  My goal was to do serial debugging of
+>>> the Windows vm.  I also added irq=[4] to the config file.  However, I
+>>> was not able to actually get a debug session to work.  The physical
+>>> machine running windbg received a string from the vm which gave me
+>>> hope that it was working, but then it never received further data so
+>>> the vm eventually booted without being attached to the debugger.
+>> 
+>> Thanks, the question was whether it would be useful to implement the
+>>     ioports = '3f8-3ff'
+>>     irq = 4
+>> syntax as well as the
+>>     ioports = ['3f8-3ff']
+>>     irq = [4]
+>> but it looks like you are actually using the array version anyway?
+> 
+> I first looked at this last week.  I found reference to both formats so I 
+> tried both.  I was only able to get the ioports = ['3f8-3ff'] and irq = [4] 
+> syntax to allow a vm to boot.
+
+So Ian, I guess I got mislead by there being references to the
+non-array format - no need to alter your patch then in any way.
+
+Sorry for the noise, Jan
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<504482FD02000078000982E3@nat28.tlf.novell.com> b/config/examples/test/corpus/<504482FD02000078000982E3@nat28.tlf.novell.com>
new file mode 100644 (file)
index 0000000..45a0594
--- /dev/null
@@ -0,0 +1,101 @@
+From xen-devel-bounces@lists.xen.org Mon Sep 03 09:19:34 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Mon, 03 Sep 2012 09:19:34 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T8RsW-0008Lm-TA
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Mon, 03 Sep 2012 09:19:34 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T8Ro8-0003Ao-0e; Mon, 03 Sep 2012 08:14:56 +0000
+Received: from mail27.messagelabs.com ([193.109.254.147])
+       by lists.xen.org with smtp (Exim 4.72)
+       (envelope-from <JBeulich@suse.com>) id 1T8Ro6-0003Aj-9w
+       for xen-devel@lists.xen.org; Mon, 03 Sep 2012 08:14:54 +0000
+X-Env-Sender: JBeulich@suse.com
+X-Msg-Ref: server-13.tower-27.messagelabs.com!1346660064!9170447!1
+X-Originating-IP: [130.57.49.28]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogMTMwLjU3LjQ5LjI4ID0+IDM3ODU=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 21711 invoked from network); 3 Sep 2012 08:14:25 -0000
+Received: from nat28.tlf.novell.com (HELO nat28.tlf.novell.com) (130.57.49.28)
+       by server-13.tower-27.messagelabs.com with SMTP;
+       3 Sep 2012 08:14:25 -0000
+Received: from EMEA1-MTA by nat28.tlf.novell.com
+       with Novell_GroupWise; Mon, 03 Sep 2012 09:14:24 +0100
+Message-Id: <504482FD02000078000982E3@nat28.tlf.novell.com>
+X-Mailer: Novell GroupWise Internet Agent 12.0.0 
+Date: Mon, 03 Sep 2012 09:14:20 +0100
+From: "Jan Beulich" <JBeulich@suse.com>
+To: "Santosh Jodh" <Santosh.Jodh@citrix.com>,
+       "Sander Eikelenboom" <linux@eikelenboom.it>
+References: <647712821.20120831234512@eikelenboom.it>
+       <7914B38A4445B34AA16EB9F1352942F1012F0F6F4AE2@SJCPMAILBOX01.citrite.net>
+       <723041396.20120901004249@eikelenboom.it>
+       <7914B38A4445B34AA16EB9F1352942F1012F0F6F4B01@SJCPMAILBOX01.citrite.net>
+       <1377403931.20120901011625@eikelenboom.it>
+       <7914B38A4445B34AA16EB9F1352942F1012F0F6F4B5B@SJCPMAILBOX01.citrite.net>
+In-Reply-To: <7914B38A4445B34AA16EB9F1352942F1012F0F6F4B5B@SJCPMAILBOX01.citrite.net>
+Mime-Version: 1.0
+Content-Disposition: inline
+Cc: "wei.wang2@amd.com" <wei.wang2@amd.com>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] Using debug-key 'o:  Dump IOMMU p2m table,
+ locks up machine
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+>>> On 01.09.12 at 02:42, Santosh Jodh <Santosh.Jodh@citrix.com> wrote:
+> BTW, I should add that 1:1 mapping for the VM seems very suspicious. Wei can 
+> comment for sure.
+
+For PV guests, that's very much expected, I would say.
+
+Jan
+
+>> -----Original Message-----
+>> From: Santosh Jodh
+>> Sent: Friday, August 31, 2012 4:58 PM
+>> To: 'Sander Eikelenboom'
+>> Cc: wei.wang2@amd.com; xen-devel@lists.xen.org 
+>> Subject: RE: Using debug-key 'o: Dump IOMMU p2m table, locks up machine
+>> 
+>> 1:1 mapping is not the common case for gfn-mfn. It is hard to say how much
+>> output would shrink by dumping contiguous ranges instead of individual pfns
+>> in the general case.
+
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<5044849002000078000982EA@nat28.tlf.novell.com> b/config/examples/test/corpus/<5044849002000078000982EA@nat28.tlf.novell.com>
new file mode 100644 (file)
index 0000000..5edb548
--- /dev/null
@@ -0,0 +1,99 @@
+From xen-devel-bounces@lists.xen.org Mon Sep 03 09:25:51 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Mon, 03 Sep 2012 09:25:51 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T8Ryb-0008Nl-K1
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Mon, 03 Sep 2012 09:25:51 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T8RuC-0003K0-RA; Mon, 03 Sep 2012 08:21:12 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <JBeulich@suse.com>) id 1T8RuB-0003Jv-0d
+       for xen-devel@lists.xen.org; Mon, 03 Sep 2012 08:21:11 +0000
+Received: from [85.158.138.51:18083] by server-2.bemta-3.messagelabs.com id
+       70/83-04862-67864405; Mon, 03 Sep 2012 08:21:10 +0000
+X-Env-Sender: JBeulich@suse.com
+X-Msg-Ref: server-12.tower-174.messagelabs.com!1346660469!20311696!1
+X-Originating-IP: [130.57.49.28]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogMTMwLjU3LjQ5LjI4ID0+IDM3ODU=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 10897 invoked from network); 3 Sep 2012 08:21:09 -0000
+Received: from nat28.tlf.novell.com (HELO nat28.tlf.novell.com) (130.57.49.28)
+       by server-12.tower-174.messagelabs.com with SMTP;
+       3 Sep 2012 08:21:09 -0000
+Received: from EMEA1-MTA by nat28.tlf.novell.com
+       with Novell_GroupWise; Mon, 03 Sep 2012 09:21:08 +0100
+Message-Id: <5044849002000078000982EA@nat28.tlf.novell.com>
+X-Mailer: Novell GroupWise Internet Agent 12.0.0 
+Date: Mon, 03 Sep 2012 09:21:04 +0100
+From: "Jan Beulich" <JBeulich@suse.com>
+To: "Sander Eikelenboom" <linux@eikelenboom.it>
+References: <7914B38A4445B34AA16EB9F1352942F1012F0F6F4B98@SJCPMAILBOX01.citrite.net>
+       <CC681CDD.3D966%keir.xen@gmail.com>
+       <40501859.20120902104331@eikelenboom.it>
+In-Reply-To: <40501859.20120902104331@eikelenboom.it>
+Mime-Version: 1.0
+Content-Disposition: inline
+Cc: "wei.wang2@amd.com" <wei.wang2@amd.com>, Keir Fraser <keir.xen@gmail.com>,
+       Santosh Jodh <Santosh.Jodh@citrix.com>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] Using debug-key 'o:  Dump IOMMU p2m table,
+ locks up machine
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+>>> On 02.09.12 at 10:43, Sander Eikelenboom <linux@eikelenboom.it> wrote:
+> I have attached new output from xl dmesg, this time with iommu=debug on (the 
+> option changed from 4.1 to 4.2).
+
+This one
+
+>(XEN) [2012-09-02 00:55:02] traps.c:3156: GPF (0060): ffff82c48015c9ee -> ffff82c480224b13
+
+also worries me. While Xen gracefully recovers from it, these
+messages still generally indicate a problem somewhere. Could
+you resolve the addresses to file:line tuples? And, assuming
+this happens in the context of doing something on behalf of
+the guest in the context of a guest vCPU, could you also
+check what guest side action triggers this (e.g. by adding a
+call to show_execution_state() alongside the printing of the
+message)?
+
+Jan
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<50448EE80200007800098342@nat28.tlf.novell.com> b/config/examples/test/corpus/<50448EE80200007800098342@nat28.tlf.novell.com>
new file mode 100644 (file)
index 0000000..90fb912
--- /dev/null
@@ -0,0 +1,116 @@
+From xen-devel-bounces@lists.xen.org Mon Sep 03 10:11:42 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Mon, 03 Sep 2012 10:11:42 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T8Sgy-0008WM-9J
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Mon, 03 Sep 2012 10:11:42 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T8Sdd-0004nQ-Q3; Mon, 03 Sep 2012 09:08:09 +0000
+Received: from mail27.messagelabs.com ([193.109.254.147])
+       by lists.xen.org with smtp (Exim 4.72)
+       (envelope-from <JBeulich@suse.com>) id 1T8Sdb-0004n7-RO
+       for xen-devel@lists.xen.org; Mon, 03 Sep 2012 09:08:08 +0000
+X-Env-Sender: JBeulich@suse.com
+X-Msg-Ref: server-13.tower-27.messagelabs.com!1346663117!9180137!1
+X-Originating-IP: [130.57.49.28]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogMTMwLjU3LjQ5LjI4ID0+IDM3ODU=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 24644 invoked from network); 3 Sep 2012 09:05:17 -0000
+Received: from nat28.tlf.novell.com (HELO nat28.tlf.novell.com) (130.57.49.28)
+       by server-13.tower-27.messagelabs.com with SMTP;
+       3 Sep 2012 09:05:17 -0000
+Received: from EMEA1-MTA by nat28.tlf.novell.com
+       with Novell_GroupWise; Mon, 03 Sep 2012 10:05:16 +0100
+Message-Id: <50448EE80200007800098342@nat28.tlf.novell.com>
+X-Mailer: Novell GroupWise Internet Agent 12.0.0 
+Date: Mon, 03 Sep 2012 10:05:12 +0100
+From: "Jan Beulich" <JBeulich@suse.com>
+To: "Sander Eikelenboom" <linux@eikelenboom.it>
+References: <7914B38A4445B34AA16EB9F1352942F1012F0F6F4B98@SJCPMAILBOX01.citrite.net>
+       <CC681CDD.3D966%keir.xen@gmail.com>
+       <40501859.20120902104331@eikelenboom.it>
+       <5044849002000078000982EA@nat28.tlf.novell.com>
+       <1925247026.20120903103325@eikelenboom.it>
+In-Reply-To: <1925247026.20120903103325@eikelenboom.it>
+Mime-Version: 1.0
+Content-Disposition: inline
+Cc: "wei.wang2@amd.com" <wei.wang2@amd.com>, Keir Fraser <keir.xen@gmail.com>,
+       Santosh Jodh <Santosh.Jodh@citrix.com>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] Using debug-key 'o:  Dump IOMMU p2m table,
+ locks up machine
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+>>> On 03.09.12 at 10:33, Sander Eikelenboom <linux@eikelenboom.it> wrote:
+> Monday, September 3, 2012, 10:21:04 AM, you wrote:
+>> This one
+> 
+>>>(XEN) [2012-09-02 00:55:02] traps.c:3156: GPF (0060): ffff82c48015c9ee -> 
+> ffff82c480224b13
+> 
+>> also worries me. While Xen gracefully recovers from it, these
+>> messages still generally indicate a problem somewhere. Could
+>> you resolve the addresses to file:line tuples? And, assuming
+>> this happens in the context of doing something on behalf of
+>> the guest in the context of a guest vCPU, could you also
+>> check what guest side action triggers this (e.g. by adding a
+>> call to show_execution_state() alongside the printing of the
+>> message)?
+> 
+> If you could elaborate a bit abouw HOW :-)
+
+I assume this refers to the first question above only (as I
+assume adding the indicated function call at the right place
+wouldn't be a big deal for you)?
+
+I think people generally use addr2line for this; I normally simply
+disassemble xen-syms, and then do a manual lookup (so if you
+have the very xen-syms still around, just making that one
+accessible would also do), as in many cases (having full
+register/stack dumps at hand) understanding which variables/
+expressions register values correspond to would make this
+necessary anyway.
+
+> From what i recall i also had these since some time on xen 4.1 too. Probably 
+> a kernel thing, in about 3.5 or 3.6 is my estimation, will see if i can find 
+> out some more today or tomorrow.
+
+Thanks, Jan
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<5044CAD7.8030800@amd.com> b/config/examples/test/corpus/<5044CAD7.8030800@amd.com>
new file mode 100644 (file)
index 0000000..f2d09fb
--- /dev/null
@@ -0,0 +1,169 @@
+From xen-devel-bounces@lists.xen.org Mon Sep 03 16:25:37 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Mon, 03 Sep 2012 16:25:37 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T8YWp-0001HQ-SC
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Mon, 03 Sep 2012 16:25:37 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T8YRd-0005Iu-7H; Mon, 03 Sep 2012 15:20:09 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Wei.Wang2@amd.com>) id 1T8YRb-0005Ip-9S
+       for xen-devel@lists.xen.org; Mon, 03 Sep 2012 15:20:07 +0000
+Received: from [85.158.143.99:19502] by server-3.bemta-4.messagelabs.com id
+       1F/38-08232-6AAC4405; Mon, 03 Sep 2012 15:20:06 +0000
+X-Env-Sender: Wei.Wang2@amd.com
+X-Msg-Ref: server-6.tower-216.messagelabs.com!1346685603!21242852!1
+X-Originating-IP: [216.32.180.185]
+X-SpamReason: No, hits=0.0 required=7.0 tests=
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 27444 invoked from network); 3 Sep 2012 15:20:05 -0000
+Received: from co1ehsobe002.messaging.microsoft.com (HELO
+       co1outboundpool.messaging.microsoft.com) (216.32.180.185)
+       by server-6.tower-216.messagelabs.com with AES128-SHA encrypted SMTP;
+       3 Sep 2012 15:20:05 -0000
+Received: from mail10-co1-R.bigfish.com (10.243.78.232) by
+       CO1EHSOBE001.bigfish.com (10.243.66.64) with Microsoft SMTP Server id
+       14.1.225.23; Mon, 3 Sep 2012 15:20:03 +0000
+Received: from mail10-co1 (localhost [127.0.0.1])      by mail10-co1-R.bigfish.com
+       (Postfix) with ESMTP id 0F8A86800B1;
+       Mon,  3 Sep 2012 15:20:03 +0000 (UTC)
+X-Forefront-Antispam-Report: CIP:163.181.249.108; KIP:(null); UIP:(null);
+       IPV:NLI; H:ausb3twp01.amd.com; RD:none; EFVD:NLI
+X-SpamScore: -5
+X-BigFish: VPS-5(zzbb2dI98dI9371I1432I4015Izz1202hzzz2dh668h839hd25he5bhf0ah107ah1155h)
+Received: from mail10-co1 (localhost.localdomain [127.0.0.1]) by mail10-co1
+       (MessageSwitch) id 1346685600697313_1544;
+       Mon,  3 Sep 2012 15:20:00 +0000 (UTC)
+Received: from CO1EHSMHS015.bigfish.com (unknown [10.243.78.229])      by
+       mail10-co1.bigfish.com (Postfix) with ESMTP id 9C3F64A0046;
+       Mon,  3 Sep 2012 15:20:00 +0000 (UTC)
+Received: from ausb3twp01.amd.com (163.181.249.108) by
+       CO1EHSMHS015.bigfish.com (10.243.66.25) with Microsoft SMTP Server id
+       14.1.225.23; Mon, 3 Sep 2012 15:19:59 +0000
+X-WSS-ID: 0M9S597-01-CHK-02
+X-M-MSG: 
+Received: from sausexedgep01.amd.com (sausexedgep01-ext.amd.com
+       [163.181.249.72])       (using TLSv1 with cipher AES128-SHA (128/128
+       bits))  (No
+       client certificate requested)   by ausb3twp01.amd.com (Axway MailGate
+       3.8.1)
+       with ESMTP id 2D9391028099;     Mon,  3 Sep 2012 10:19:55 -0500 (CDT)
+Received: from SAUSEXDAG03.amd.com (163.181.55.3) by sausexedgep01.amd.com
+       (163.181.36.54) with Microsoft SMTP Server (TLS) id 8.3.192.1;
+       Mon, 3 Sep 2012 10:20:00 -0500
+Received: from storexhtp01.amd.com (172.24.4.3) by sausexdag03.amd.com
+       (163.181.55.3) with Microsoft SMTP Server (TLS) id 14.1.323.3;
+       Mon, 3 Sep 2012 10:19:54 -0500
+Received: from gwo.osrc.amd.com (165.204.16.204) by storexhtp01.amd.com
+       (172.24.4.3) with Microsoft SMTP Server id 8.3.213.0; Mon, 3 Sep 2012
+       11:19:53 -0400
+Received: from [165.204.15.57] (gran.osrc.amd.com [165.204.15.57])     by
+       gwo.osrc.amd.com (Postfix) with ESMTP id 06A8849C1EC; Mon,  3 Sep 2012
+       16:19:53 +0100 (BST)
+Message-ID: <5044CAD7.8030800@amd.com>
+Date: Mon, 3 Sep 2012 17:20:55 +0200
+From: Wei Wang <wei.wang2@amd.com>
+User-Agent: Mozilla/5.0 (X11; Linux x86_64;
+       rv:12.0) Gecko/20120421 Thunderbird/12.0
+MIME-Version: 1.0
+To: Sander Eikelenboom <linux@eikelenboom.it>
+References: <40501859.20120902104331@eikelenboom.it>
+       <CC6932C2.3D99D%keir.xen@gmail.com>
+       <217459398.20120902171441@eikelenboom.it>
+In-Reply-To: <217459398.20120902171441@eikelenboom.it>
+X-OriginatorOrg: amd.com
+Cc: Keir Fraser <keir.xen@gmail.com>, Santosh Jodh <Santosh.Jodh@citrix.com>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Transfer-Encoding: 7bit
+Content-Type: text/plain; charset="us-ascii"; Format="flowed"
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] Using debug-key 'o:  Dump IOMMU p2m table,
+ locks up machine
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On 09/02/2012 05:14 PM, Sander Eikelenboom wrote:
+> Sunday, September 2, 2012, 4:58:58 PM, you wrote:
+>
+>> On 02/09/2012 09:43, "Sander Eikelenboom"<linux@eikelenboom.it>  wrote:
+>
+>>>> Quite simply, there likely needs to be more tracing on the IOMMU fault path.
+>>>> That's a separate concern from your keyhandler of course, but just saying
+>>>> I'd be looking for the former rather than the latter, for diagnosing
+>>>> Sander's bug.
+>>>
+>>> Are there any printk's I could add to get more relevant info about the AMD-Vi:
+>>> IO_PAGE_FAULT ?
+>
+>> No really straightforward one. I think we need a per-IOMMU-type handler to
+>> walk the IOMMU page table for a given virtual address, and dump every
+>> page-table-entry on the path. Like an IOMMU version of show_page_walk().
+>> Personally I would suspect this is more useful than the dump-everything
+>> handlers: just give a *full* *detailed* walk for the actually interesting
+>> virtual address (the one faulted on).
+>
+>>> I have attached new output from xl dmesg, this time with iommu=debug on (the
+>>> option changed from 4.1 to 4.2).
+>
+>> Not easy to glean any more from that, without extra tracing such as
+>> described above, and/or digging into the guest to find what driver-side
+>> actions are causing the faults.
+>
+> OK, too bad!
+> With xen 4.1 i haven't experienced those page faults, but a diff between /xen/drivers/passthrough/amd in both trees show quite some changes :(
+
+Did you also update xen tools accordingly? Sometime I also saw a few 
+IO_PAGE_FAULTs came from nic if my tools version and HV version did not 
+match. But using recent 4.2 and corresponding xl, my tests went well.
+BTW: You could also try iommu=no-sharept to see if it helps.
+
+Thanks,
+Wei
+
+>>   -- Keir
+>
+>>>
+>>>
+>>>>   -- Keir
+>>>
+>
+>
+>
+>
+>
+>
+
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<5045BD5C02000078000985A7@nat28.tlf.novell.com> b/config/examples/test/corpus/<5045BD5C02000078000985A7@nat28.tlf.novell.com>
new file mode 100644 (file)
index 0000000..5cb1749
--- /dev/null
@@ -0,0 +1,102 @@
+From xen-devel-bounces@lists.xen.org Tue Sep 04 07:40:04 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Tue, 04 Sep 2012 07:40:04 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T8mnp-00019k-6t
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 04 Sep 2012 07:40:04 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T8mio-0000fv-VD; Tue, 04 Sep 2012 06:34:50 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <JBeulich@suse.com>) id 1T8min-0000fq-GQ
+       for xen-devel@lists.xen.org; Tue, 04 Sep 2012 06:34:49 +0000
+Received: from [85.158.143.35:26667] by server-1.bemta-4.messagelabs.com id
+       CB/AF-12504-801A5405; Tue, 04 Sep 2012 06:34:48 +0000
+X-Env-Sender: JBeulich@suse.com
+X-Msg-Ref: server-9.tower-21.messagelabs.com!1346740488!5480398!1
+X-Originating-IP: [130.57.49.28]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogMTMwLjU3LjQ5LjI4ID0+IDM4MjY=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 29635 invoked from network); 4 Sep 2012 06:34:48 -0000
+Received: from nat28.tlf.novell.com (HELO nat28.tlf.novell.com) (130.57.49.28)
+       by server-9.tower-21.messagelabs.com with SMTP;
+       4 Sep 2012 06:34:48 -0000
+Received: from EMEA1-MTA by nat28.tlf.novell.com
+       with Novell_GroupWise; Tue, 04 Sep 2012 07:34:47 +0100
+Message-Id: <5045BD5C02000078000985A7@nat28.tlf.novell.com>
+X-Mailer: Novell GroupWise Internet Agent 12.0.0 
+Date: Tue, 04 Sep 2012 07:35:40 +0100
+From: "Jan Beulich" <JBeulich@suse.com>
+To: "Sander Eikelenboom" <linux@eikelenboom.it>,
+       "George Dunlap" <George.Dunlap@eu.citrix.com>,
+       "Keir Fraser" <keir.xen@gmail.com>
+References: <647712821.20120831234512@eikelenboom.it>
+       <CC68CC67.3D984%keir.xen@gmail.com>
+In-Reply-To: <CC68CC67.3D984%keir.xen@gmail.com>
+Mime-Version: 1.0
+Content-Disposition: inline
+Cc: wei.wang2@amd.com, Santosh Jodh <santosh.jodh@citrix.com>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] Using debug-key 'o:  Dump IOMMU p2m table,
+ locks up machine
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+>>> On 02.09.12 at 09:42, Keir Fraser <keir.xen@gmail.com> wrote:
+> On 31/08/2012 22:45, "Sander Eikelenboom" <linux@eikelenboom.it> wrote:
+>> - When using serial console: I get a infinite stream of "gfn:  mfn: " lines,
+>> mean while on the normal console, S-ATA devices are starting to give errors.
+> 
+> In this case the handler must be running in tasklet context. Not sure why
+> SATA interrupts would be affected as hardirq and softirq work will still be
+> carried out during execution of the keyhandler (the handler voluntarily
+> preempts itself for softirq work).
+> 
+> Would need more investigation. :)
+
+Isn't that because tasklets (i.e. idle vCPU-s with tasklets active)
+get preferred in the schedulers? Some compensation might be
+needed for the penalized vCPU, at least if that one is pinned
+(not sure whether load balancing would be able to steal the
+head of the run queue from a remote CPU). Sander - are you
+by chance pinning Dom0 vCPU-s? And how many of them does
+your Dom0 have?
+
+Jan
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<5045CDF302000078000985FB@nat28.tlf.novell.com> b/config/examples/test/corpus/<5045CDF302000078000985FB@nat28.tlf.novell.com>
new file mode 100644 (file)
index 0000000..1cae50d
--- /dev/null
@@ -0,0 +1,117 @@
+From xen-devel-bounces@lists.xen.org Tue Sep 04 08:50:26 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Tue, 04 Sep 2012 08:50:26 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T8nts-0001OD-7R
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 04 Sep 2012 08:50:26 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T8npN-00035D-Gj; Tue, 04 Sep 2012 07:45:41 +0000
+Received: from mail27.messagelabs.com ([193.109.254.147])
+       by lists.xen.org with smtp (Exim 4.72)
+       (envelope-from <JBeulich@suse.com>) id 1T8npM-000350-85
+       for xen-devel@lists.xen.org; Tue, 04 Sep 2012 07:45:40 +0000
+X-Env-Sender: JBeulich@suse.com
+X-Msg-Ref: server-3.tower-27.messagelabs.com!1346744734!8641146!1
+X-Originating-IP: [130.57.49.28]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogMTMwLjU3LjQ5LjI4ID0+IDM4MjY=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 8121 invoked from network); 4 Sep 2012 07:45:34 -0000
+Received: from nat28.tlf.novell.com (HELO nat28.tlf.novell.com) (130.57.49.28)
+       by server-3.tower-27.messagelabs.com with SMTP;
+       4 Sep 2012 07:45:34 -0000
+Received: from EMEA1-MTA by nat28.tlf.novell.com
+       with Novell_GroupWise; Tue, 04 Sep 2012 08:45:33 +0100
+Message-Id: <5045CDF302000078000985FB@nat28.tlf.novell.com>
+X-Mailer: Novell GroupWise Internet Agent 12.0.0 
+Date: Tue, 04 Sep 2012 08:46:27 +0100
+From: "Jan Beulich" <JBeulich@suse.com>
+To: "Sander Eikelenboom" <linux@eikelenboom.it>
+References: <7914B38A4445B34AA16EB9F1352942F1012F0F6F4B98@SJCPMAILBOX01.citrite.net>
+       <CC681CDD.3D966%keir.xen@gmail.com>
+       <40501859.20120902104331@eikelenboom.it>
+       <5044849002000078000982EA@nat28.tlf.novell.com>
+       <4610648186.20120904090841@eikelenboom.it>
+In-Reply-To: <4610648186.20120904090841@eikelenboom.it>
+Mime-Version: 1.0
+Content-Disposition: inline
+Cc: "wei.wang2@amd.com" <wei.wang2@amd.com>, Keir Fraser <keir.xen@gmail.com>,
+       Santosh Jodh <Santosh.Jodh@citrix.com>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] Using debug-key 'o:  Dump IOMMU p2m table,
+ locks up machine
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+>>> On 04.09.12 at 09:08, Sander Eikelenboom <linux@eikelenboom.it> wrote:
+>> This one
+> 
+>>>(XEN) [2012-09-02 00:55:02] traps.c:3156: GPF (0060): ffff82c48015c9ee -> 
+> ffff82c480224b13
+> 
+>> also worries me. While Xen gracefully recovers from it, these
+>> messages still generally indicate a problem somewhere. Could
+>> you resolve the addresses to file:line tuples? And, assuming
+>> this happens in the context of doing something on behalf of
+>> the guest in the context of a guest vCPU, could you also
+>> check what guest side action triggers this (e.g. by adding a
+>> call to show_execution_state() alongside the printing of the
+>> message)?
+> 
+> Hope i have done it right:
+
+Yes.
+
+> Gives (complete dmesg attached:
+> 
+> (XEN) [2012-09-03 21:20:49] AMD-Vi: IO_PAGE_FAULT: domain = 14, device id = 0x0700, fault address = 0xa8ee82c0
+> (XEN) [2012-09-03 21:20:49] AMD-Vi: IO_PAGE_FAULT: domain = 14, device id = 0x0700, fault address = 0xa8ee8320
+> (XEN) [2012-09-04 03:00:34] traps.c:3156: GPF (0060): ffff82c48015c9ee -> ffff82c480224b73
+> (XEN) [2012-09-04 03:00:34] traps.c:3157:  show_execution_state(regs): 
+> (XEN) [2012-09-04 03:00:34] ----[ Xen-4.2.0-rc4-pre  x86_64  debug=y  Not tainted ]----
+> (XEN) [2012-09-04 03:00:34] CPU:    3
+> (XEN) [2012-09-04 03:00:34] RIP:    e008:[<ffff82c48015c9ee>] context_switch+0x394/0xeeb
+
+Now that - in the middle of context switch code - almost certainly
+wants to be fixed, but we first need to understand what it is (and
+how it gets triggered by the guest). I.e. once again this requires
+resolving to file/line - care to do the conversion yourself, or send
+(or make available somewhere) the very xen-syms?
+
+Jan
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<5045D0190200007800098608@nat28.tlf.novell.com> b/config/examples/test/corpus/<5045D0190200007800098608@nat28.tlf.novell.com>
new file mode 100644 (file)
index 0000000..64f9bfa
--- /dev/null
@@ -0,0 +1,120 @@
+From xen-devel-bounces@lists.xen.org Tue Sep 04 08:59:16 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Tue, 04 Sep 2012 08:59:16 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T8o2S-0001Oy-Ft
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 04 Sep 2012 08:59:16 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T8nyD-0003HB-Hf; Tue, 04 Sep 2012 07:54:49 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <JBeulich@suse.com>) id 1T8nyB-0003H3-AN
+       for xen-devel@lists.xen.org; Tue, 04 Sep 2012 07:54:47 +0000
+Received: from [85.158.139.83:30162] by server-4.bemta-5.messagelabs.com id
+       87/49-23042-6C3B5405; Tue, 04 Sep 2012 07:54:46 +0000
+X-Env-Sender: JBeulich@suse.com
+X-Msg-Ref: server-7.tower-182.messagelabs.com!1346745286!24468746!1
+X-Originating-IP: [130.57.49.28]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogMTMwLjU3LjQ5LjI4ID0+IDM4MjY=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 23284 invoked from network); 4 Sep 2012 07:54:46 -0000
+Received: from nat28.tlf.novell.com (HELO nat28.tlf.novell.com) (130.57.49.28)
+       by server-7.tower-182.messagelabs.com with SMTP;
+       4 Sep 2012 07:54:46 -0000
+Received: from EMEA1-MTA by nat28.tlf.novell.com
+       with Novell_GroupWise; Tue, 04 Sep 2012 08:54:45 +0100
+Message-Id: <5045D0190200007800098608@nat28.tlf.novell.com>
+X-Mailer: Novell GroupWise Internet Agent 12.0.0 
+Date: Tue, 04 Sep 2012 08:55:37 +0100
+From: "Jan Beulich" <JBeulich@suse.com>
+To: "George Dunlap" <George.Dunlap@eu.citrix.com>,
+       "Keir Fraser" <keir.xen@gmail.com>
+References: <5045BD5C02000078000985A7@nat28.tlf.novell.com>
+       <CC6B6568.3DAAD%keir.xen@gmail.com>
+In-Reply-To: <CC6B6568.3DAAD%keir.xen@gmail.com>
+Mime-Version: 1.0
+Content-Disposition: inline
+Cc: wei.wang2@amd.com, Sander Eikelenboom <linux@eikelenboom.it>,
+       Santosh Jodh <santosh.jodh@citrix.com>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] Using debug-key 'o:  Dump IOMMU p2m table,
+ locks up machine
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+>>> On 04.09.12 at 08:59, Keir Fraser <keir.xen@gmail.com> wrote:
+> On 04/09/2012 07:35, "Jan Beulich" <JBeulich@suse.com> wrote:
+> 
+>>>>> On 02.09.12 at 09:42, Keir Fraser <keir.xen@gmail.com> wrote:
+>>> On 31/08/2012 22:45, "Sander Eikelenboom" <linux@eikelenboom.it> wrote:
+>>>> - When using serial console: I get a infinite stream of "gfn:  mfn: " lines,
+>>>> mean while on the normal console, S-ATA devices are starting to give errors.
+>>> 
+>>> In this case the handler must be running in tasklet context. Not sure why
+>>> SATA interrupts would be affected as hardirq and softirq work will still be
+>>> carried out during execution of the keyhandler (the handler voluntarily
+>>> preempts itself for softirq work).
+>>> 
+>>> Would need more investigation. :)
+>> 
+>> Isn't that because tasklets (i.e. idle vCPU-s with tasklets active)
+>> get preferred in the schedulers? Some compensation might be
+>> needed for the penalized vCPU, at least if that one is pinned
+>> (not sure whether load balancing would be able to steal the
+>> head of the run queue from a remote CPU). Sander - are you
+>> by chance pinning Dom0 vCPU-s? And how many of them does
+>> your Dom0 have?
+> 
+> Jan, Yes you could be right, if Sander is pinning CPUs. Anyway, I wasn't
+> going to expend too much brain power on this situation. The case of spending
+> a few minutes in one key handler is not one I think is particularly sane.
+
+Which imo would call for reverting the patch. But then again, other
+key handlers can easily take pretty long too (particularly on large
+systems, albeit it is clear that the one here is particularly bad), and
+declaring all of them pretty much useless probably isn't the best
+choice (as then we could as well rip them all out).
+
+Bottom line - _I_ think we should try to do something about this.
+An apparent option would be to have low priority tasklets (for
+just this purpose, as all others we certainly want to take priority),
+if that can reasonably be integrated with the schedulers.
+
+Jan
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<5045DA360200007800098688@nat28.tlf.novell.com> b/config/examples/test/corpus/<5045DA360200007800098688@nat28.tlf.novell.com>
new file mode 100644 (file)
index 0000000..aa707b9
--- /dev/null
@@ -0,0 +1,129 @@
+From xen-devel-bounces@lists.xen.org Tue Sep 04 09:42:29 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Tue, 04 Sep 2012 09:42:29 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T8oiF-0001YI-6e
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 04 Sep 2012 09:42:29 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T8odx-0005nG-SC; Tue, 04 Sep 2012 08:37:57 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <JBeulich@suse.com>) id 1T8odv-0005mh-UN
+       for xen-devel@lists.xen.org; Tue, 04 Sep 2012 08:37:56 +0000
+Received: from [85.158.139.83:32304] by server-10.bemta-5.messagelabs.com id
+       F5/01-10969-3EDB5405; Tue, 04 Sep 2012 08:37:55 +0000
+X-Env-Sender: JBeulich@suse.com
+X-Msg-Ref: server-3.tower-182.messagelabs.com!1346747874!28410030!1
+X-Originating-IP: [130.57.49.28]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogMTMwLjU3LjQ5LjI4ID0+IDM4MjY=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 31722 invoked from network); 4 Sep 2012 08:37:54 -0000
+Received: from nat28.tlf.novell.com (HELO nat28.tlf.novell.com) (130.57.49.28)
+       by server-3.tower-182.messagelabs.com with SMTP;
+       4 Sep 2012 08:37:54 -0000
+Received: from EMEA1-MTA by nat28.tlf.novell.com
+       with Novell_GroupWise; Tue, 04 Sep 2012 09:37:53 +0100
+Message-Id: <5045DA360200007800098688@nat28.tlf.novell.com>
+X-Mailer: Novell GroupWise Internet Agent 12.0.0 
+Date: Tue, 04 Sep 2012 09:38:46 +0100
+From: "Jan Beulich" <JBeulich@suse.com>
+To: "George Dunlap" <George.Dunlap@eu.citrix.com>,
+       "Keir Fraser" <keir.xen@gmail.com>
+References: <CC6B74A7.3DAC1%keir.xen@gmail.com>
+       <CC6B764E.3DACF%keir.xen@gmail.com>
+In-Reply-To: <CC6B764E.3DACF%keir.xen@gmail.com>
+Mime-Version: 1.0
+Content-Disposition: inline
+Cc: wei.wang2@amd.com, Sander Eikelenboom <linux@eikelenboom.it>,
+       Santosh Jodh <santosh.jodh@citrix.com>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] Using debug-key 'o:  Dump IOMMU p2m table,
+ locks up machine
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+>>> On 04.09.12 at 10:11, Keir Fraser <keir.xen@gmail.com> wrote:
+> On 04/09/2012 09:04, "Keir Fraser" <keir.xen@gmail.com> wrote:
+> 
+>> On 04/09/2012 08:55, "Jan Beulich" <JBeulich@suse.com> wrote:
+>> 
+>>>> Jan, Yes you could be right, if Sander is pinning CPUs. Anyway, I wasn't
+>>>> going to expend too much brain power on this situation. The case of spending
+>>>> a few minutes in one key handler is not one I think is particularly sane.
+>>> 
+>>> Which imo would call for reverting the patch. But then again, other
+>>> key handlers can easily take pretty long too (particularly on large
+>>> systems, albeit it is clear that the one here is particularly bad), and
+>>> declaring all of them pretty much useless probably isn't the best
+>>> choice (as then we could as well rip them all out).
+>>> 
+>>> Bottom line - _I_ think we should try to do something about this.
+>>> An apparent option would be to have low priority tasklets (for
+>>> just this purpose, as all others we certainly want to take priority),
+>>> if that can reasonably be integrated with the schedulers.
+>> 
+>> Do you expect to be able to use the log-running key handlers and still need
+>> a running system afterwards (rather than using them as a final
+>> dump-everything when the system has already gone bad)? Then I suppose you
+>> would need something like this, with voluntary preemption in the key
+>> handlers. You then need to be able to recommence the keyhandlers where they
+>> left off, retaking locks, finding their place in lists, trees, etc, even
+>> when state of the system has significantly changed between preemption and
+>> resumption. Well, I'm sure it can be done, but can anyone be bothered.
+
+It may not be that difficult for e.g. the 'd' and '0' handlers.
+
+> My pragmatic take would be that: (a) Really long-running handlers that want
+> to dump every page mapping of every domain are pretty bloody stupid, and yes
+> we should consider if they are worthwhile at all; (b) moderately
+> long-running but useful handlers which nonetheless take a long time to dump
+> to Xen's console, I would consider a sysctl to allow dom0 to request dump
+> into a supplied memory buffer.
+
+At a first glance that sounds like a viable option, assuming that
+the bulk of the time otherwise is being spent actually getting the
+data out through the serial line. But if the long-running-ness is
+in the nature of the keyhandler itself, then this wouldn't help
+much though. And I'd be afraid that ought to be the common
+case when not running with sync_console, since actual serial
+output happens asynchronously and hence shouldn't affect the
+latency of the keyhandler's completion too much.
+
+Jan
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<5045E55A02000078000986E4@nat28.tlf.novell.com> b/config/examples/test/corpus/<5045E55A02000078000986E4@nat28.tlf.novell.com>
new file mode 100644 (file)
index 0000000..338d4a5
--- /dev/null
@@ -0,0 +1,128 @@
+From xen-devel-bounces@lists.xen.org Tue Sep 04 10:30:39 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Tue, 04 Sep 2012 10:30:39 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T8pSr-0001hS-Ri
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 04 Sep 2012 10:30:39 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T8pO1-0007Ut-3E; Tue, 04 Sep 2012 09:25:33 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <JBeulich@suse.com>) id 1T8pNz-0007Uo-Cm
+       for xen-devel@lists.xen.org; Tue, 04 Sep 2012 09:25:31 +0000
+Received: from [85.158.138.51:22510] by server-10.bemta-3.messagelabs.com id
+       20/14-10411-709C5405; Tue, 04 Sep 2012 09:25:27 +0000
+X-Env-Sender: JBeulich@suse.com
+X-Msg-Ref: server-10.tower-174.messagelabs.com!1346750725!24444631!1
+X-Originating-IP: [130.57.49.28]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogMTMwLjU3LjQ5LjI4ID0+IDM4Mzg=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 25208 invoked from network); 4 Sep 2012 09:25:26 -0000
+Received: from nat28.tlf.novell.com (HELO nat28.tlf.novell.com) (130.57.49.28)
+       by server-10.tower-174.messagelabs.com with SMTP;
+       4 Sep 2012 09:25:26 -0000
+Received: from EMEA1-MTA by nat28.tlf.novell.com
+       with Novell_GroupWise; Tue, 04 Sep 2012 10:25:25 +0100
+Message-Id: <5045E55A02000078000986E4@nat28.tlf.novell.com>
+X-Mailer: Novell GroupWise Internet Agent 12.0.0 
+Date: Tue, 04 Sep 2012 10:26:18 +0100
+From: "Jan Beulich" <JBeulich@suse.com>
+To: "Sander Eikelenboom" <linux@eikelenboom.it>,
+       "Jeremy Fitzhardinge" <jeremy@goop.org>,
+       "Konrad Rzeszutek Wilk" <konrad.wilk@oracle.com>, <ehabkost@redhat.com>
+References: <7914B38A4445B34AA16EB9F1352942F1012F0F6F4B98@SJCPMAILBOX01.citrite.net>
+       <CC681CDD.3D966%keir.xen@gmail.com>
+       <40501859.20120902104331@eikelenboom.it>
+       <5044849002000078000982EA@nat28.tlf.novell.com>
+       <4610648186.20120904090841@eikelenboom.it>
+       <5045CDF302000078000985FB@nat28.tlf.novell.com>
+       <4710608674.20120904101330@eikelenboom.it>
+In-Reply-To: <4710608674.20120904101330@eikelenboom.it>
+Mime-Version: 1.0
+Content-Disposition: inline
+Cc: "wei.wang2@amd.com" <wei.wang2@amd.com>, Keir Fraser <keir.xen@gmail.com>,
+       Santosh Jodh <Santosh.Jodh@citrix.com>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] Using debug-key 'o:  Dump IOMMU p2m table,
+ locks up machine
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+>>> On 04.09.12 at 10:13, Sander Eikelenboom <linux@eikelenboom.it> wrote:
+> Hmm don't know how to get the file/line, only thing i have found is:
+> 
+> serveerstertje:/boot# gdb xen-syms-4.2.0-rc4-pre
+> GNU gdb (GDB) 7.0.1-debian
+> Copyright (C) 2009 Free Software Foundation, Inc.
+> License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
+> This is free software: you are free to change and redistribute it.
+> There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
+> and "show warranty" for details.
+> This GDB was configured as "x86_64-linux-gnu".
+> For bug reporting instructions, please see:
+> <http://www.gnu.org/software/gdb/bugs/>...
+> Reading symbols from /boot/xen-syms-4.2.0-rc4-pre...done.
+> (gdb) x/i 0xffff82c48015c9ee
+> 0xffff82c48015c9ee <context_switch+916>:        mov    %edx,%gs
+> (gdb)
+
+I'm not really a gdb expert, so I don't know off the top of my
+head either. I thought I said in a previous reply that people
+generally appear to use the addr2line utility for that purpose.
+
+But the disassembly already tells us where precisely the
+problem is: The selector value (0x0063) attempted to be put
+into %gs is apparently wrong in the context of the current
+GDT. Now, that's GDT_ENTRY_TLS_MIN on the Linux side,
+and ought to be valid. I'm surprised the guest (and the current
+process in it) survives this (as the failure here results in a failsafe
+callback into the guest).
+
+Looking at the Linux side of things, this has been that way
+forever, and I think has always been broken: On x86-64, it
+should also clear %gs here (since 32-bit processes use it for
+their TLS, and there's nothing wrong for a 64-bit process to put
+something in there either), albeit not via loadsegment(), but
+through xen_load_gs_index(). And I neither see why on 32-bit
+it only clears %gs - %fs can as much hold a selector that might
+get invalidated with the TLS descriptor updates. Eduardo,
+Jeremy, Konrad?
+
+Jan
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<5045E8B802000078000986F7@nat28.tlf.novell.com> b/config/examples/test/corpus/<5045E8B802000078000986F7@nat28.tlf.novell.com>
new file mode 100644 (file)
index 0000000..4fe069f
--- /dev/null
@@ -0,0 +1,124 @@
+From xen-devel-bounces@lists.xen.org Tue Sep 04 10:44:45 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Tue, 04 Sep 2012 10:44:45 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T8pgX-0001jO-Hs
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 04 Sep 2012 10:44:45 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T8pbq-0007gI-Gv; Tue, 04 Sep 2012 09:39:50 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <JBeulich@suse.com>) id 1T8pbp-0007gD-4Z
+       for xen-devel@lists.xen.org; Tue, 04 Sep 2012 09:39:49 +0000
+Received: from [85.158.138.51:20991] by server-4.bemta-3.messagelabs.com id
+       58/AF-24831-46CC5405; Tue, 04 Sep 2012 09:39:48 +0000
+X-Env-Sender: JBeulich@suse.com
+X-Msg-Ref: server-14.tower-174.messagelabs.com!1346751587!22146807!1
+X-Originating-IP: [130.57.49.28]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogMTMwLjU3LjQ5LjI4ID0+IDM4Mzg=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 4648 invoked from network); 4 Sep 2012 09:39:47 -0000
+Received: from nat28.tlf.novell.com (HELO nat28.tlf.novell.com) (130.57.49.28)
+       by server-14.tower-174.messagelabs.com with SMTP;
+       4 Sep 2012 09:39:47 -0000
+Received: from EMEA1-MTA by nat28.tlf.novell.com
+       with Novell_GroupWise; Tue, 04 Sep 2012 10:39:47 +0100
+Message-Id: <5045E8B802000078000986F7@nat28.tlf.novell.com>
+X-Mailer: Novell GroupWise Internet Agent 12.0.0 
+Date: Tue, 04 Sep 2012 10:40:40 +0100
+From: "Jan Beulich" <JBeulich@suse.com>
+To: "Keir Fraser" <keir@xen.org>
+References: <5045DA360200007800098688@nat28.tlf.novell.com>
+       <CC6B803A.4A8E0%keir@xen.org>
+In-Reply-To: <CC6B803A.4A8E0%keir@xen.org>
+Mime-Version: 1.0
+Content-Disposition: inline
+Cc: wei.wang2@amd.com, Sander Eikelenboom <linux@eikelenboom.it>,
+       George Dunlap <George.Dunlap@eu.citrix.com>,
+       Santosh Jodh <santosh.jodh@citrix.com>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] Using debug-key 'o:  Dump IOMMU p2m table,
+ locks up machine
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+>>> On 04.09.12 at 10:54, Keir Fraser <keir@xen.org> wrote:
+> On 04/09/2012 09:38, "Jan Beulich" <JBeulich@suse.com> wrote:
+> 
+>>> My pragmatic take would be that: (a) Really long-running handlers that want
+>>> to dump every page mapping of every domain are pretty bloody stupid, and yes
+>>> we should consider if they are worthwhile at all; (b) moderately
+>>> long-running but useful handlers which nonetheless take a long time to dump
+>>> to Xen's console, I would consider a sysctl to allow dom0 to request dump
+>>> into a supplied memory buffer.
+>> 
+>> At a first glance that sounds like a viable option, assuming that
+>> the bulk of the time otherwise is being spent actually getting the
+>> data out through the serial line. But if the long-running-ness is
+>> in the nature of the keyhandler itself, then this wouldn't help
+>> much though. And I'd be afraid that ought to be the common
+>> case when not running with sync_console, since actual serial
+>> output happens asynchronously and hence shouldn't affect the
+>> latency of the keyhandler's completion too much.
+> 
+> Well then, have we actually seen problems with async serial output, a
+> decent-sized serial output buffer, and the 'd'/'0' handlers? Because if not,
+> we don't have a problem to be solved. :)
+
+To a degree - we have seen (large) systems becoming unstable
+after making use of these keys, but obviously people were
+instructed to use the keys because the system already had some
+sort of problem (e.g. were dead locked on some spin lock, and
+after use of the debug keys additionally got their time screwed
+up).
+
+The 'o' key here just gets this to the extreme, which is why I'm
+wondering whether it was a good decision to add it in the first
+place. And the same would apply to EPT's 'D' key. The more that
+these keys would presumably be used when a guest had a
+problem, yet their use could render the whole system dead
+(whereas 'd' and '0' generally get used when the host is in a
+bad state already). Perhaps a minimal step would be to build/
+enabled these only in debug=y builds? But really this functionality
+should be exposed _only_ through the tools (similar to xenctx
+and lsevtchn) imo (and along those lines I think 'e' should only
+dump Dom0's event channels).
+
+Jan
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<5046021F.7020105@citrix.com> b/config/examples/test/corpus/<5046021F.7020105@citrix.com>
new file mode 100644 (file)
index 0000000..3901ab4
--- /dev/null
@@ -0,0 +1,150 @@
+From xen-devel-bounces@lists.xen.org Tue Sep 04 14:34:41 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Tue, 04 Sep 2012 14:34:41 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T8tH2-0002HJ-UP
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 04 Sep 2012 14:34:40 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T8tBl-0000v4-J5; Tue, 04 Sep 2012 13:29:09 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Andrew.Cooper3@citrix.com>) id 1T8tBj-0000uz-QL
+       for xen-devel@lists.xen.org; Tue, 04 Sep 2012 13:29:08 +0000
+Received: from [85.158.139.83:41774] by server-3.bemta-5.messagelabs.com id
+       D7/34-21836-22206405; Tue, 04 Sep 2012 13:29:06 +0000
+X-Env-Sender: Andrew.Cooper3@citrix.com
+X-Msg-Ref: server-13.tower-182.messagelabs.com!1346765344!27959098!1
+X-Originating-IP: [66.165.176.63]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyNzY0OTI=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 11095 invoked from network); 4 Sep 2012 13:29:05 -0000
+Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
+       by server-13.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
+       4 Sep 2012 13:29:05 -0000
+X-IronPort-AV: E=Sophos;i="4.80,367,1344211200"; d="scan'208";a="207003854"
+Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
+       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       04 Sep 2012 13:29:04 +0000
+Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
+       (10.13.107.66) with Microsoft SMTP Server id 8.3.279.1;
+       Tue, 4 Sep 2012 09:29:04 -0400
+Received: from andrewcoop.uk.xensource.com ([10.80.2.18])      by
+       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
+       <andrew.cooper3@citrix.com>)    id 1T8tBf-0005dR-FK     for
+       xen-devel@lists.xen.org; Tue, 04 Sep 2012 14:29:03 +0100
+Message-ID: <5046021F.7020105@citrix.com>
+Date: Tue, 4 Sep 2012 14:29:03 +0100
+From: Andrew Cooper <andrew.cooper3@citrix.com>
+User-Agent: Mozilla/5.0 (X11; Linux x86_64;
+       rv:14.0) Gecko/20120714 Thunderbird/14.0
+MIME-Version: 1.0
+To: xen-devel@lists.xen.org
+References: <5045DA360200007800098688@nat28.tlf.novell.com>
+       <CC6B803A.4A8E0%keir@xen.org>
+       <5045E8B802000078000986F7@nat28.tlf.novell.com>
+In-Reply-To: <5045E8B802000078000986F7@nat28.tlf.novell.com>
+X-Enigmail-Version: 1.4.4
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] Using debug-key 'o:  Dump IOMMU p2m table,
+ locks up machine
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On 04/09/12 10:40, Jan Beulich wrote:
+>>>> On 04.09.12 at 10:54, Keir Fraser <keir@xen.org> wrote:
+>> On 04/09/2012 09:38, "Jan Beulich" <JBeulich@suse.com> wrote:
+>>
+>>>> My pragmatic take would be that: (a) Really long-running handlers that want
+>>>> to dump every page mapping of every domain are pretty bloody stupid, and yes
+>>>> we should consider if they are worthwhile at all; (b) moderately
+>>>> long-running but useful handlers which nonetheless take a long time to dump
+>>>> to Xen's console, I would consider a sysctl to allow dom0 to request dump
+>>>> into a supplied memory buffer.
+>>> At a first glance that sounds like a viable option, assuming that
+>>> the bulk of the time otherwise is being spent actually getting the
+>>> data out through the serial line. But if the long-running-ness is
+>>> in the nature of the keyhandler itself, then this wouldn't help
+>>> much though. And I'd be afraid that ought to be the common
+>>> case when not running with sync_console, since actual serial
+>>> output happens asynchronously and hence shouldn't affect the
+>>> latency of the keyhandler's completion too much.
+>> Well then, have we actually seen problems with async serial output, a
+>> decent-sized serial output buffer, and the 'd'/'0' handlers? Because if not,
+>> we don't have a problem to be solved. :)
+> To a degree - we have seen (large) systems becoming unstable
+> after making use of these keys, but obviously people were
+> instructed to use the keys because the system already had some
+> sort of problem (e.g. were dead locked on some spin lock, and
+> after use of the debug keys additionally got their time screwed
+> up).
+>
+> The 'o' key here just gets this to the extreme, which is why I'm
+> wondering whether it was a good decision to add it in the first
+> place. And the same would apply to EPT's 'D' key. The more that
+> these keys would presumably be used when a guest had a
+> problem, yet their use could render the whole system dead
+> (whereas 'd' and '0' generally get used when the host is in a
+> bad state already). Perhaps a minimal step would be to build/
+> enabled these only in debug=y builds? But really this functionality
+> should be exposed _only_ through the tools (similar to xenctx
+> and lsevtchn) imo (and along those lines I think 'e' should only
+> dump Dom0's event channels).
+>
+> Jan
+
+I would disagree with that final part.  I have lost count of the number
+of times that I have used the 'e' debug key to diagnose a problem with a
+locked up system where dom0 was not necessarily accessible.  Getting all
+domains information is very useful, even if it can be long at times. 
+The times when the length is a problem are also the times when the
+server is broken to a point that it is not a problem people are
+concerned with.
+
+~Andrew
+
+>
+>
+> _______________________________________________
+> Xen-devel mailing list
+> Xen-devel@lists.xen.org
+> http://lists.xen.org/xen-devel
+
+-- 
+Andrew Cooper - Dom0 Kernel Engineer, Citrix XenServer
+T: +44 (0)1223 225 900, http://www.citrix.com
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<504720CB.8060906@citrix.com> b/config/examples/test/corpus/<504720CB.8060906@citrix.com>
new file mode 100644 (file)
index 0000000..d916c55
--- /dev/null
@@ -0,0 +1,287 @@
+From xen-devel-bounces@lists.xen.org Wed Sep 05 10:56:21 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 05 Sep 2012 10:56:21 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T9CLH-00026f-Ak
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 05 Sep 2012 10:56:21 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T9CHY-00081E-7S; Wed, 05 Sep 2012 09:52:24 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Andrew.Cooper3@citrix.com>) id 1T9CHW-000816-Sq
+       for xen-devel@lists.xen.org; Wed, 05 Sep 2012 09:52:23 +0000
+Received: from [85.158.138.51:3489] by server-9.bemta-3.messagelabs.com id
+       0B/37-15390-5D027405; Wed, 05 Sep 2012 09:52:21 +0000
+X-Env-Sender: Andrew.Cooper3@citrix.com
+X-Msg-Ref: server-10.tower-174.messagelabs.com!1346838732!24693551!1
+X-Originating-IP: [66.165.176.63]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyNzY4NTA=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 2675 invoked from network); 5 Sep 2012 09:52:14 -0000
+Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
+       by server-10.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
+       5 Sep 2012 09:52:14 -0000
+X-IronPort-AV: E=Sophos;i="4.80,372,1344211200"; 
+       d="scan'208,217";a="207118374"
+Received: from ftlpmailmx01.citrite.net ([10.13.107.65])
+       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       05 Sep 2012 09:52:12 +0000
+Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
+       (10.13.107.65) with Microsoft SMTP Server id 8.3.279.1;
+       Wed, 5 Sep 2012 05:52:12 -0400
+Received: from andrewcoop.uk.xensource.com ([10.80.2.18])      by
+       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
+       <andrew.cooper3@citrix.com>)    id 1T9CHM-00083Q-0v     for
+       xen-devel@lists.xen.org; Wed, 05 Sep 2012 10:52:12 +0100
+Message-ID: <504720CB.8060906@citrix.com>
+Date: Wed, 5 Sep 2012 10:52:11 +0100
+From: Andrew Cooper <andrew.cooper3@citrix.com>
+User-Agent: Mozilla/5.0 (X11; Linux x86_64;
+       rv:14.0) Gecko/20120714 Thunderbird/14.0
+MIME-Version: 1.0
+To: xen-devel@lists.xen.org
+References: <E1T9C4K-0003Su-2p@mariner.uk.xensource.com>
+       <4cb9d7f220dd459c1554c6b5d9e2ed73@abpni.co.uk>
+In-Reply-To: <4cb9d7f220dd459c1554c6b5d9e2ed73@abpni.co.uk>
+X-Enigmail-Version: 1.4.4
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: multipart/mixed; boundary="===============3577610866476055842=="
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,HTML_MESSAGE,
+       RCVD_IN_DNSWL_MED,T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham
+       version=3.3.1
+Subject: Re: [Xen-devel] Xen Security Advisory 12 (CVE-2012-3494) -
+ hypercall set_debugreg vulnerability
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+--===============3577610866476055842==
+Content-Type: multipart/alternative;
+       boundary="------------070103020307040001070608"
+
+--------------070103020307040001070608
+Content-Type: text/plain; charset="ISO-8859-1"
+Content-Transfer-Encoding: 7bit
+
+
+On 05/09/12 10:49, Jonathan Tripathy wrote:
+> Is Xen 3.4.x vulnerable?
+>
+> Thanks
+
+Yes - Vulnerable (tested and fixed) all the way back as far as Xen-3.2
+(which is the earliest version that XenServer still creates security
+fixes for)
+
+~Andrew
+
+>
+> On 05.09.2012 10:38, Xen.org security team wrote:
+> Xen Security Advisory CVE-2012-3494 / XSA-12
+> version 3
+>
+> hypercall set_debugreg vulnerability
+>
+> UPDATES IN VERSION 3
+> ====================
+>
+> Public release.
+>
+> ISSUE DESCRIPTION
+> =================
+>
+> set_debugreg allows writes to reserved bits of the DR7 debug control
+> register on x86-64.
+>
+> IMPACT
+> ======
+>
+> A malicious guest can cause the host to crash, leading to a DoS.
+>
+> If the vulnerable hypervisor is run on future hardware, the impact of
+> the vulnerability might be widened depending on the future assignment
+> of the currently-reserved debug register bits.
+>
+> VULNERABLE SYSTEMS
+> ==================
+>
+> All systems running 64-bit paravirtualised guests.
+>
+> The vulnerability dates back to at least Xen 4.0. 4.0, 4.1, the 4.2
+> RCs, and xen-unstable.hg are all vulnerable.
+>
+> MITIGATION
+> ==========
+>
+> This issue can be mitigated by ensuring (inside the guest) that the
+> kernel is trustworthy, or by running only 32-bit or HVM guests.
+>
+> RESOLUTION
+> ==========
+>
+> Applying the appropriate attached patch will resolve the issue.
+>
+> PATCH INFORMATION
+> =================
+>
+> The attached patch resolves this issue:
+>
+> Xen unstable, 4.1 and 4.0 xsa12-all.patch
+>
+> $ sha256sum xsa12-all.patch
+> 2415ee133e28b1c848c5ae3ce766cc2a67009bad8d026879030a6511b85dbc13
+> xsa12-all.patch
+>
+>
+> _______________________________________________
+> Xen-devel mailing list
+> Xen-devel@lists.xen.org
+> http://lists.xen.org/xen-devel
+
+-- 
+Andrew Cooper - Dom0 Kernel Engineer, Citrix XenServer
+T: +44 (0)1223 225 900, http://www.citrix.com
+
+
+--------------070103020307040001070608
+Content-Type: text/html; charset="ISO-8859-1"
+Content-Transfer-Encoding: 7bit
+
+<html>
+  <head>
+    <meta content="text/html; charset=ISO-8859-1"
+      http-equiv="Content-Type">
+  </head>
+  <body bgcolor="#FFFFFF" text="#000000">
+    <br>
+    On 05/09/12 10:49, Jonathan Tripathy wrote:<br>
+    <span style="white-space: pre;">&gt; Is Xen 3.4.x vulnerable?<br>
+      &gt;<br>
+      &gt; Thanks</span><br>
+    <br>
+    Yes - Vulnerable (tested and fixed) all the way back as far as
+    Xen-3.2 (which is the earliest version that XenServer still creates
+    security fixes for)<br>
+    <br>
+    ~Andrew<br>
+    <br>
+    <span style="white-space: pre;">&gt;<br>
+      &gt; On 05.09.2012 10:38, Xen.org security team wrote:<br>
+      &gt; Xen Security Advisory CVE-2012-3494 / XSA-12<br>
+      &gt; version 3<br>
+      &gt;<br>
+      &gt; hypercall set_debugreg vulnerability<br>
+      &gt;<br>
+      &gt; UPDATES IN VERSION 3<br>
+      &gt; ====================<br>
+      &gt;<br>
+      &gt; Public release.<br>
+      &gt;<br>
+      &gt; ISSUE DESCRIPTION<br>
+      &gt; =================<br>
+      &gt;<br>
+      &gt; set_debugreg allows writes to reserved bits of the DR7 debug
+      control<br>
+      &gt; register on x86-64.<br>
+      &gt;<br>
+      &gt; IMPACT<br>
+      &gt; ======<br>
+      &gt;<br>
+      &gt; A malicious guest can cause the host to crash, leading to a
+      DoS.<br>
+      &gt;<br>
+      &gt; If the vulnerable hypervisor is run on future hardware, the
+      impact of<br>
+      &gt; the vulnerability might be widened depending on the future
+      assignment<br>
+      &gt; of the currently-reserved debug register bits.<br>
+      &gt;<br>
+      &gt; VULNERABLE SYSTEMS<br>
+      &gt; ==================<br>
+      &gt;<br>
+      &gt; All systems running 64-bit paravirtualised guests.<br>
+      &gt;<br>
+      &gt; The vulnerability dates back to at least Xen 4.0. 4.0, 4.1,
+      the 4.2<br>
+      &gt; RCs, and xen-unstable.hg are all vulnerable.<br>
+      &gt;<br>
+      &gt; MITIGATION<br>
+      &gt; ==========<br>
+      &gt;<br>
+      &gt; This issue can be mitigated by ensuring (inside the guest)
+      that the<br>
+      &gt; kernel is trustworthy, or by running only 32-bit or HVM
+      guests.<br>
+      &gt;<br>
+      &gt; RESOLUTION<br>
+      &gt; ==========<br>
+      &gt;<br>
+      &gt; Applying the appropriate attached patch will resolve the
+      issue.<br>
+      &gt;<br>
+      &gt; PATCH INFORMATION<br>
+      &gt; =================<br>
+      &gt;<br>
+      &gt; The attached patch resolves this issue:<br>
+      &gt;<br>
+      &gt; Xen unstable, 4.1 and 4.0 xsa12-all.patch<br>
+      &gt;<br>
+      &gt; $ sha256sum xsa12-all.patch<br>
+      &gt;
+      2415ee133e28b1c848c5ae3ce766cc2a67009bad8d026879030a6511b85dbc13<br>
+      &gt; xsa12-all.patch<br>
+      &gt;<br>
+      &gt;<br>
+      &gt; _______________________________________________<br>
+      &gt; Xen-devel mailing list<br>
+      &gt; <a class="moz-txt-link-abbreviated" href="mailto:Xen-devel@lists.xen.org">Xen-devel@lists.xen.org</a><br>
+      &gt; <a class="moz-txt-link-freetext" href="http://lists.xen.org/xen-devel">http://lists.xen.org/xen-devel</a></span><br>
+    <br>
+    -- <br>
+    Andrew Cooper - Dom0 Kernel Engineer, Citrix XenServer<br>
+    T: +44 (0)1223 225 900, <a class="moz-txt-link-freetext" href="http://www.citrix.com">http://www.citrix.com</a><br>
+    <br>
+  </body>
+</html>
+
+--------------070103020307040001070608--
+
+
+--===============3577610866476055842==
+Content-Type: text/plain; charset="us-ascii"
+MIME-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Content-Disposition: inline
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
+--===============3577610866476055842==--
+
+
diff --git a/config/examples/test/corpus/<50473E170200007800098B7F@nat28.tlf.novell.com> b/config/examples/test/corpus/<50473E170200007800098B7F@nat28.tlf.novell.com>
new file mode 100644 (file)
index 0000000..be60bb5
--- /dev/null
@@ -0,0 +1,83 @@
+From xen-devel-bounces@lists.xen.org Wed Sep 05 11:00:54 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 05 Sep 2012 11:00:54 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T9CPj-00027y-S7
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 05 Sep 2012 11:00:54 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T9CLR-0008Do-Sz; Wed, 05 Sep 2012 09:56:25 +0000
+Received: from mail27.messagelabs.com ([193.109.254.147])
+       by lists.xen.org with smtp (Exim 4.72)
+       (envelope-from <JBeulich@suse.com>) id 1T9CLQ-0008Dg-F0
+       for xen-devel@lists.xen.org; Wed, 05 Sep 2012 09:56:24 +0000
+X-Env-Sender: JBeulich@suse.com
+X-Msg-Ref: server-3.tower-27.messagelabs.com!1346838978!8836025!1
+X-Originating-IP: [130.57.49.28]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogMTMwLjU3LjQ5LjI4ID0+IDQwMzE=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 1242 invoked from network); 5 Sep 2012 09:56:18 -0000
+Received: from nat28.tlf.novell.com (HELO nat28.tlf.novell.com) (130.57.49.28)
+       by server-3.tower-27.messagelabs.com with SMTP;
+       5 Sep 2012 09:56:18 -0000
+Received: from EMEA1-MTA by nat28.tlf.novell.com
+       with Novell_GroupWise; Wed, 05 Sep 2012 10:56:17 +0100
+Message-Id: <50473E170200007800098B7F@nat28.tlf.novell.com>
+X-Mailer: Novell GroupWise Internet Agent 12.0.0 
+Date: Wed, 05 Sep 2012 10:57:11 +0100
+From: "Jan Beulich" <JBeulich@suse.com>
+To: "Jonathan Tripathy" <jonnyt@abpni.co.uk>
+References: <E1T9C4K-0003Su-2p@mariner.uk.xensource.com>
+       <4cb9d7f220dd459c1554c6b5d9e2ed73@abpni.co.uk>
+In-Reply-To: <4cb9d7f220dd459c1554c6b5d9e2ed73@abpni.co.uk>
+Mime-Version: 1.0
+Content-Disposition: inline
+Cc: xen-devel@lists.xen.org
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] Xen Security Advisory 12 (CVE-2012-3494) -
+ hypercall set_debugreg vulnerability
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+>>> On 05.09.12 at 11:49, Jonathan Tripathy <jonnyt@abpni.co.uk> wrote:
+> Is Xen 3.4.x vulnerable?
+
+All versions supporting x86-64 are vulnerable afaict (checked back
+to 3.2.x, but I suppose even 3.0.x would be affected).
+
+Jan
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<5047420A0200007800098BB1@nat28.tlf.novell.com> b/config/examples/test/corpus/<5047420A0200007800098BB1@nat28.tlf.novell.com>
new file mode 100644 (file)
index 0000000..395149f
--- /dev/null
@@ -0,0 +1,109 @@
+From xen-devel-bounces@lists.xen.org Wed Sep 05 11:17:36 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 05 Sep 2012 11:17:36 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T9Cfu-0002EG-04
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 05 Sep 2012 11:17:36 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T9Cbl-0000Ws-IK; Wed, 05 Sep 2012 10:13:17 +0000
+Received: from mail27.messagelabs.com ([193.109.254.147])
+       by lists.xen.org with smtp (Exim 4.72)
+       (envelope-from <JBeulich@suse.com>) id 1T9Cbk-0000WS-9S
+       for xen-devel@lists.xen.org; Wed, 05 Sep 2012 10:13:16 +0000
+X-Env-Sender: JBeulich@suse.com
+X-Msg-Ref: server-16.tower-27.messagelabs.com!1346839990!8968957!1
+X-Originating-IP: [130.57.49.28]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogMTMwLjU3LjQ5LjI4ID0+IDQwMzE=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 6174 invoked from network); 5 Sep 2012 10:13:10 -0000
+Received: from nat28.tlf.novell.com (HELO nat28.tlf.novell.com) (130.57.49.28)
+       by server-16.tower-27.messagelabs.com with SMTP;
+       5 Sep 2012 10:13:10 -0000
+Received: from EMEA1-MTA by nat28.tlf.novell.com
+       with Novell_GroupWise; Wed, 05 Sep 2012 11:13:09 +0100
+Message-Id: <5047420A0200007800098BB1@nat28.tlf.novell.com>
+X-Mailer: Novell GroupWise Internet Agent 12.0.0 
+Date: Wed, 05 Sep 2012 11:14:02 +0100
+From: "Jan Beulich" <JBeulich@suse.com>
+To: "Sander Eikelenboom" <linux@eikelenboom.it>
+References: <40501859.20120902104331@eikelenboom.it>
+       <CC6932C2.3D99D%keir.xen@gmail.com>
+       <217459398.20120902171441@eikelenboom.it> <5044CAD7.8030800@amd.com>
+       <1144695277.20120904184345@eikelenboom.it>
+In-Reply-To: <1144695277.20120904184345@eikelenboom.it>
+Mime-Version: 1.0
+Content-Disposition: inline
+Cc: Wei Wang <wei.wang2@amd.com>, Keir Fraser <keir.xen@gmail.com>,
+       Santosh Jodh <Santosh.Jodh@citrix.com>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] Using debug-key 'o:  Dump IOMMU p2m table,
+ locks up machine
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+>>> On 04.09.12 at 18:43, Sander Eikelenboom <linux@eikelenboom.it> wrote:
+>> Did you also update xen tools accordingly? Sometime I also saw a few 
+>> IO_PAGE_FAULTs came from nic if my tools version and HV version did not 
+>> match. But using recent 4.2 and corresponding xl, my tests went well.
+>> BTW: You could also try iommu=no-sharept to see if it helps.
+> 
+> Tried it and it doesn't help.
+> I now even got a "xl dmesg" which shows a IO_PAGE_FAULT occuring very early, 
+> before any toolstack or guest can be involved:
+> 
+> (XEN) [2012-09-04 15:51:17] AMD-Vi: Setup I/O page table: device id = 0x0a05, 
+> root table = 0x24d84b000, domain = 0, paging mode = 3
+> (XEN) [2012-09-04 15:51:17] AMD-Vi: Setup I/O page table: device id = 0x0a06, 
+> root table = 0x24d84b000, domain = 0, paging mode = 3
+> (XEN) [2012-09-04 15:51:17] AMD-Vi: Setup I/O page table: device id = 0x0a07, 
+> root table = 0x24d84b000, domain = 0, paging mode = 3
+> (XEN) [2012-09-04 15:51:17] AMD-Vi: Setup I/O page table: device id = 0x0b00, 
+> root table = 0x24d84b000, domain = 0, paging mode = 3
+> (XEN) [2012-09-04 15:51:17] Scrubbing Free RAM: 
+> ...........................<0>AMD-Vi: IO_PAGE_FAULT: domain = 0, device id = 
+> 0x0a06, fault address = 0xc2c2c2c0
+
+Looks like use of uninitialized memory (assuming you're using a
+debug hypervisor, that's the pattern scrub_one_page() puts
+there). But it's unclear to me what device should be doing any
+I/O at that point (and even if one does, how it would get the
+bad address loaded). What is 0a:00.6?
+
+Jan
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<504745F4.5060906@amd.com> b/config/examples/test/corpus/<504745F4.5060906@amd.com>
new file mode 100644 (file)
index 0000000..fac217d
--- /dev/null
@@ -0,0 +1,172 @@
+From xen-devel-bounces@lists.xen.org Wed Sep 05 13:33:50 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 05 Sep 2012 13:33:50 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T9Enh-0002i4-1T
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 05 Sep 2012 13:33:50 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T9Ejt-0003ZQ-48; Wed, 05 Sep 2012 12:29:49 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Wei.Wang2@amd.com>) id 1T9Ejr-0003Z6-Kj
+       for xen-devel@lists.xen.org; Wed, 05 Sep 2012 12:29:47 +0000
+Received: from [85.158.139.83:47421] by server-1.bemta-5.messagelabs.com id
+       1E/E4-32692-AB547405; Wed, 05 Sep 2012 12:29:46 +0000
+X-Env-Sender: Wei.Wang2@amd.com
+X-Msg-Ref: server-5.tower-182.messagelabs.com!1346848184!28473142!1
+X-Originating-IP: [65.55.88.12]
+X-SpamReason: No, hits=0.0 required=7.0 tests=
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 1195 invoked from network); 5 Sep 2012 12:29:46 -0000
+Received: from tx2ehsobe002.messaging.microsoft.com (HELO
+       tx2outboundpool.messaging.microsoft.com) (65.55.88.12)
+       by server-5.tower-182.messagelabs.com with AES128-SHA encrypted SMTP;
+       5 Sep 2012 12:29:46 -0000
+Received: from mail146-tx2-R.bigfish.com (10.9.14.242) by
+       TX2EHSOBE003.bigfish.com (10.9.40.23) with Microsoft SMTP Server id
+       14.1.225.23; Wed, 5 Sep 2012 12:29:44 +0000
+Received: from mail146-tx2 (localhost [127.0.0.1])     by
+       mail146-tx2-R.bigfish.com (Postfix) with ESMTP id 1375C2007A;
+       Wed,  5 Sep 2012 12:29:44 +0000 (UTC)
+X-Forefront-Antispam-Report: CIP:163.181.249.108; KIP:(null); UIP:(null);
+       IPV:NLI; H:ausb3twp01.amd.com; RD:none; EFVD:NLI
+X-SpamScore: -6
+X-BigFish: VPS-6(zzbb2dI98dI9371I936eI1432I4015Izz1202hzzz2dh668h839hd25he5bhf0ah107ah1155h)
+Received: from mail146-tx2 (localhost.localdomain [127.0.0.1]) by mail146-tx2
+       (MessageSwitch) id 1346848181907016_4561;
+       Wed,  5 Sep 2012 12:29:41 +0000 (UTC)
+Received: from TX2EHSMHS021.bigfish.com (unknown [10.9.14.244])        by
+       mail146-tx2.bigfish.com (Postfix) with ESMTP id CF6594C0043;
+       Wed,  5 Sep 2012 12:29:41 +0000 (UTC)
+Received: from ausb3twp01.amd.com (163.181.249.108) by
+       TX2EHSMHS021.bigfish.com (10.9.99.121) with Microsoft SMTP Server id
+       14.1.225.23; Wed, 5 Sep 2012 12:29:41 +0000
+X-WSS-ID: 0M9VMPE-01-5GJ-02
+X-M-MSG: 
+Received: from sausexedgep02.amd.com (sausexedgep02-ext.amd.com
+       [163.181.249.73])       (using TLSv1 with cipher AES128-SHA (128/128
+       bits))  (No
+       client certificate requested)   by ausb3twp01.amd.com (Axway MailGate
+       3.8.1)
+       with ESMTP id 22A201028098;     Wed,  5 Sep 2012 07:29:37 -0500 (CDT)
+Received: from SAUSEXDAG06.amd.com (163.181.55.7) by sausexedgep02.amd.com
+       (163.181.36.59) with Microsoft SMTP Server (TLS) id 8.3.192.1;
+       Wed, 5 Sep 2012 07:29:50 -0500
+Received: from storexhtp01.amd.com (172.24.4.3) by sausexdag06.amd.com
+       (163.181.55.7) with Microsoft SMTP Server (TLS) id 14.1.323.3;
+       Wed, 5 Sep 2012 07:29:38 -0500
+Received: from gwo.osrc.amd.com (165.204.16.204) by storexhtp01.amd.com
+       (172.24.4.3) with Microsoft SMTP Server id 8.3.213.0; Wed, 5 Sep 2012
+       08:29:36 -0400
+Received: from [165.204.15.57] (gran.osrc.amd.com [165.204.15.57])     by
+       gwo.osrc.amd.com (Postfix) with ESMTP id DA53A49C0D5; Wed,  5 Sep 2012
+       13:29:35 +0100 (BST)
+Message-ID: <504745F4.5060906@amd.com>
+Date: Wed, 5 Sep 2012 14:30:44 +0200
+From: Wei Wang <wei.wang2@amd.com>
+User-Agent: Mozilla/5.0 (X11; Linux x86_64;
+       rv:12.0) Gecko/20120421 Thunderbird/12.0
+MIME-Version: 1.0
+To: Sander Eikelenboom <linux@eikelenboom.it>
+References: <40501859.20120902104331@eikelenboom.it>
+       <CC6932C2.3D99D%keir.xen@gmail.com>
+       <217459398.20120902171441@eikelenboom.it>
+       <5044CAD7.8030800@amd.com>
+       <1144695277.20120904184345@eikelenboom.it>
+In-Reply-To: <1144695277.20120904184345@eikelenboom.it>
+X-OriginatorOrg: amd.com
+Cc: Keir Fraser <keir.xen@gmail.com>, Jan Beulich <JBeulich@suse.com>,
+       Santosh Jodh <Santosh.Jodh@citrix.com>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Transfer-Encoding: 7bit
+Content-Type: text/plain; charset="us-ascii"; Format="flowed"
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] Using debug-key 'o:  Dump IOMMU p2m table,
+ locks up machine
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On 09/04/2012 06:43 PM, Sander Eikelenboom wrote:
+> Hello Wei,
+> >
+> Tried it and it doesn't help.
+> I now even got a "xl dmesg" which shows a IO_PAGE_FAULT occuring very early, before any toolstack or guest can be involved:
+>
+> (XEN) [2012-09-04 15:51:17] AMD-Vi: Setup I/O page table: device id = 0x0a05, root table = 0x24d84b000, domain = 0, paging mode = 3
+> (XEN) [2012-09-04 15:51:17] AMD-Vi: Setup I/O page table: device id = 0x0a06, root table = 0x24d84b000, domain = 0, paging mode = 3
+> (XEN) [2012-09-04 15:51:17] AMD-Vi: Setup I/O page table: device id = 0x0a07, root table = 0x24d84b000, domain = 0, paging mode = 3
+> (XEN) [2012-09-04 15:51:17] AMD-Vi: Setup I/O page table: device id = 0x0b00, root table = 0x24d84b000, domain = 0, paging mode = 3
+> (XEN) [2012-09-04 15:51:17] Scrubbing Free RAM: ...........................<0>AMD-Vi: IO_PAGE_FAULT: domain = 0, device id = 0x0a06, fault address = 0xc2c2c2c0
+
+
+you have dom0_mem=1024M, so you could try to remove this line any see if 
+it disappears. It would also be helpful to provide a lspci output from 
+your system.
+
+Thanks,
+Wei
+
+> (XEN) [2012-09-04 15:51:18] ............................................done.
+> (XEN) [2012-09-04 15:51:19] Initial low memory virq threshold set at 0x4000 pages.
+> (XEN) [2012-09-04 15:51:19] Std. Loglevel: All
+> (XEN) [2012-09-04 15:51:19] Guest Loglevel: All
+> (XEN) [2012-09-04 15:51:19] Xen is relinquishing VGA console.
+>
+>
+> Complete dmesg attached.
+>
+>> Thanks,
+>> Wei
+>
+>>>>    -- Keir
+>>>
+>>>>>
+>>>>>
+>>>>>>    -- Keir
+>>>>>
+>>>
+>>>
+>>>
+>>>
+>>>
+>>>
+>
+>
+>
+>
+>
+>
+
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<5047483F0200007800098C18@nat28.tlf.novell.com> b/config/examples/test/corpus/<5047483F0200007800098C18@nat28.tlf.novell.com>
new file mode 100644 (file)
index 0000000..d254bdf
--- /dev/null
@@ -0,0 +1,102 @@
+From xen-devel-bounces@lists.xen.org Wed Sep 05 11:45:27 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 05 Sep 2012 11:45:27 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T9D6r-0002Jj-FD
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 05 Sep 2012 11:45:27 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T9D2N-0002EP-0N; Wed, 05 Sep 2012 10:40:47 +0000
+Received: from mail27.messagelabs.com ([193.109.254.147])
+       by lists.xen.org with smtp (Exim 4.72)
+       (envelope-from <JBeulich@suse.com>) id 1T9D2K-0002EI-T7
+       for xen-devel@lists.xen.org; Wed, 05 Sep 2012 10:40:45 +0000
+X-Env-Sender: JBeulich@suse.com
+X-Msg-Ref: server-16.tower-27.messagelabs.com!1346841578!8974456!1
+X-Originating-IP: [130.57.49.28]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogMTMwLjU3LjQ5LjI4ID0+IDQwMzE=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 11911 invoked from network); 5 Sep 2012 10:39:38 -0000
+Received: from nat28.tlf.novell.com (HELO nat28.tlf.novell.com) (130.57.49.28)
+       by server-16.tower-27.messagelabs.com with SMTP;
+       5 Sep 2012 10:39:38 -0000
+Received: from EMEA1-MTA by nat28.tlf.novell.com
+       with Novell_GroupWise; Wed, 05 Sep 2012 11:39:38 +0100
+Message-Id: <5047483F0200007800098C18@nat28.tlf.novell.com>
+X-Mailer: Novell GroupWise Internet Agent 12.0.0 
+Date: Wed, 05 Sep 2012 11:40:31 +0100
+From: "Jan Beulich" <JBeulich@suse.com>
+To: "Sander Eikelenboom" <linux@eikelenboom.it>
+References: <40501859.20120902104331@eikelenboom.it>
+       <CC6932C2.3D99D%keir.xen@gmail.com>
+       <217459398.20120902171441@eikelenboom.it> <5044CAD7.8030800@amd.com>
+       <1144695277.20120904184345@eikelenboom.it>
+       <5047420A0200007800098BB1@nat28.tlf.novell.com>
+       <348297741.20120905122542@eikelenboom.it>
+In-Reply-To: <348297741.20120905122542@eikelenboom.it>
+Mime-Version: 1.0
+Content-Disposition: inline
+Cc: Wei Wang <wei.wang2@amd.com>, Keir Fraser <keir.xen@gmail.com>,
+       Santosh Jodh <Santosh.Jodh@citrix.com>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="utf-8"
+Content-Transfer-Encoding: base64
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] Using debug-key 'o:  Dump IOMMU p2m table,
+ locks up machine
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+Pj4+IE9uIDA1LjA5LjEyIGF0IDEyOjI1LCBTYW5kZXIgRWlrZWxlbmJvb20gPGxpbnV4QGVpa2Vs
+ZW5ib29tLml0PiB3cm90ZToKPiBXZWRuZXNkYXksIFNlcHRlbWJlciA1LCAyMDEyLCAxMjoxNDow
+MiBQTSwgeW91IHdyb3RlOgo+Pj4+PiBPbiAwNC4wOS4xMiBhdCAxODo0MywgU2FuZGVyIEVpa2Vs
+ZW5ib29tIDxsaW51eEBlaWtlbGVuYm9vbS5pdD4gd3JvdGU6Cj4+PiAuLi4uLi4uLi4uLi4uLi4u
+Li4uLi4uLi4uLi48MD5BTUQtVmk6IElPX1BBR0VfRkFVTFQ6IGRvbWFpbiA9IDAsIGRldmljZSBp
+ZCA9IAo+Pj4gMHgwYTA2LCBmYXVsdCBhZGRyZXNzID0gMHhjMmMyYzJjMAo+IAo+PiBMb29rcyBs
+aWtlIHVzZSBvZiB1bmluaXRpYWxpemVkIG1lbW9yeSAoYXNzdW1pbmcgeW91J3JlIHVzaW5nIGEK
+Pj4gZGVidWcgaHlwZXJ2aXNvciwgdGhhdCdzIHRoZSBwYXR0ZXJuIHNjcnViX29uZV9wYWdlKCkg
+cHV0cwo+PiB0aGVyZSkuIEJ1dCBpdCdzIHVuY2xlYXIgdG8gbWUgd2hhdCBkZXZpY2Ugc2hvdWxk
+IGJlIGRvaW5nIGFueQo+PiBJL08gYXQgdGhhdCBwb2ludCAoYW5kIGV2ZW4gaWYgb25lIGRvZXMs
+IGhvdyBpdCB3b3VsZCBnZXQgdGhlCj4+IGJhZCBhZGRyZXNzIGxvYWRlZCkuIFdoYXQgaXMgMGE6
+MDAuNj8KPiAKPiBzaW5jZSA0LjItcmM0IGlzIHN0aWxsIHVuc3RhYmxlIGl0IGhhcyBkZWJ1Zz15
+IGZvciB3aGF0IGkga25vdywgc28geWVzLgo+IFRoaXMgcGFydGljdWxhciBJT19QQUdFX0ZBVUxU
+IGhhcHBlbmVkIGJlZm9yZSB0aGUga2VybmVsIGxvYWRzLCBzbyB0aGUgCj4ga2VybmVsIGFuZCBw
+Y2liYWNrIHNob3VsZG4ndCBiZSBjYXVzaW5nIHRoZSBpc3N1ZSBvbmUgd291bGQgc2F5Lgo+IFdp
+dGggcGNpYmFjayBpJ20gaGlkaW5nIDAzOjA2LjAsIDA0OjAwLiosIDA1OjAwLjAsIDBhOjAwLiog
+YW5kIDA3OjAwLjAgYXQgCj4gYm9vdC4KPiAKPiBJcyB0aGVyZSBhbnkgY29kZSBpIGNvdWxkIGFk
+ZCB0byBnZXQgbW9yZSBpbmZvIHdoZXJlIGl0IGNvbWVzIGZyb20gPwoKSGFyZGx5LCBzaW5jZSB0
+aG9zZSBhY2Nlc3NlcyBhcmUgYXN5bmNocm9ub3VzIHRvIHdoYXQgdGhlIENQVXMKZG8uIEJ1dCAu
+Li4KCj4gMGE6MDAuNiBVU0IgY29udHJvbGxlcjogTmV0TW9zIFRlY2hub2xvZ3kgTUNTOTk5MCBQ
+Q0llIHRvIDTDolBvcnQgVVNCIDIuMCBIb3N0IENvbnRyb2xsZXIKCi4uLiBhcmUgeW91ciBrZXli
+b2FyZC9tb3VzZSBwZXJoYXBzIGNvbm5lY3RlZCB0byB0aGlzIG9uZT8gSW4Kd2hpY2ggY2FzZSBJ
+J2Qgc3VwcG9zZSB0aGUgMToxIHRhYmxlcyBzZXQgdXAgZm9yIERvbTAgbWlnaHQgbm90CmJlIGNv
+bXBsZXRlLiBXZWk/CgpKYW4KCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
+X19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcK
+aHR0cDovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==
+
diff --git a/config/examples/test/corpus/<50474A11.6050601@amd.com> b/config/examples/test/corpus/<50474A11.6050601@amd.com>
new file mode 100644 (file)
index 0000000..66b9f77
--- /dev/null
@@ -0,0 +1,250 @@
+From xen-devel-bounces@lists.xen.org Wed Sep 05 13:51:12 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 05 Sep 2012 13:51:12 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T9F4T-0002qa-TZ
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 05 Sep 2012 13:51:12 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T9F1C-00074m-Gc; Wed, 05 Sep 2012 12:47:42 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Wei.Wang2@amd.com>) id 1T9F1A-00074P-J8
+       for xen-devel@lists.xen.org; Wed, 05 Sep 2012 12:47:40 +0000
+Received: from [85.158.143.35:51371] by server-3.bemta-4.messagelabs.com id
+       6E/1B-08232-BE947405; Wed, 05 Sep 2012 12:47:39 +0000
+X-Env-Sender: Wei.Wang2@amd.com
+X-Msg-Ref: server-8.tower-21.messagelabs.com!1346849246!13498778!1
+X-Originating-IP: [213.199.154.205]
+X-SpamReason: No, hits=0.0 required=7.0 tests=
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 5096 invoked from network); 5 Sep 2012 12:47:26 -0000
+Received: from am1ehsobe002.messaging.microsoft.com (HELO
+       am1outboundpool.messaging.microsoft.com) (213.199.154.205)
+       by server-8.tower-21.messagelabs.com with AES128-SHA encrypted SMTP;
+       5 Sep 2012 12:47:26 -0000
+Received: from mail115-am1-R.bigfish.com (10.3.201.245) by
+       AM1EHSOBE008.bigfish.com (10.3.204.28) with Microsoft SMTP Server id
+       14.1.225.23; Wed, 5 Sep 2012 12:47:26 +0000
+Received: from mail115-am1 (localhost [127.0.0.1])     by
+       mail115-am1-R.bigfish.com (Postfix) with ESMTP id 5A3251A0084;
+       Wed,  5 Sep 2012 12:47:26 +0000 (UTC)
+X-Forefront-Antispam-Report: CIP:163.181.249.109; KIP:(null); UIP:(null);
+       IPV:NLI; H:ausb3twp02.amd.com; RD:none; EFVD:NLI
+X-SpamScore: -5
+X-BigFish: VPS-5(zzbb2dI98dI9371Ic89bh1432I4015Izz1202hzzz2dh668h839hd25he5bhf0ah107ah1155h)
+Received: from mail115-am1 (localhost.localdomain [127.0.0.1]) by mail115-am1
+       (MessageSwitch) id 1346849244373150_18965;
+       Wed,  5 Sep 2012 12:47:24 +0000 (UTC)
+Received: from AM1EHSMHS004.bigfish.com (unknown [10.3.201.227])       by
+       mail115-am1.bigfish.com (Postfix) with ESMTP id 4E7B0180047;
+       Wed,  5 Sep 2012 12:47:24 +0000 (UTC)
+Received: from ausb3twp02.amd.com (163.181.249.109) by
+       AM1EHSMHS004.bigfish.com (10.3.207.104) with Microsoft SMTP Server id
+       14.1.225.23; Wed, 5 Sep 2012 12:47:22 +0000
+X-WSS-ID: 0M9VNIS-02-3CN-02
+X-M-MSG: 
+Received: from sausexedgep02.amd.com (sausexedgep02-ext.amd.com
+       [163.181.249.73])       (using TLSv1 with cipher AES128-SHA (128/128
+       bits))  (No
+       client certificate requested)   by ausb3twp02.amd.com (Axway MailGate
+       3.8.1)
+       with ESMTP id 20879C8119;       Wed,  5 Sep 2012 07:47:15 -0500 (CDT)
+Received: from SAUSEXDAG04.amd.com (163.181.55.4) by sausexedgep02.amd.com
+       (163.181.36.59) with Microsoft SMTP Server (TLS) id 8.3.192.1;
+       Wed, 5 Sep 2012 07:47:31 -0500
+Received: from storexhtp01.amd.com (172.24.4.3) by sausexdag04.amd.com
+       (163.181.55.4) with Microsoft SMTP Server (TLS) id 14.1.323.3;
+       Wed, 5 Sep 2012 07:47:11 -0500
+Received: from gwo.osrc.amd.com (165.204.16.204) by storexhtp01.amd.com
+       (172.24.4.3) with Microsoft SMTP Server id 8.3.213.0; Wed, 5 Sep 2012
+       08:47:09 -0400
+Received: from [165.204.15.57] (gran.osrc.amd.com [165.204.15.57])     by
+       gwo.osrc.amd.com (Postfix) with ESMTP id C764B49C0D5; Wed,  5 Sep 2012
+       13:47:08 +0100 (BST)
+Message-ID: <50474A11.6050601@amd.com>
+Date: Wed, 5 Sep 2012 14:48:17 +0200
+From: Wei Wang <wei.wang2@amd.com>
+User-Agent: Mozilla/5.0 (X11; Linux x86_64;
+       rv:12.0) Gecko/20120421 Thunderbird/12.0
+MIME-Version: 1.0
+To: Sander Eikelenboom <linux@eikelenboom.it>
+References: <40501859.20120902104331@eikelenboom.it>
+       <CC6932C2.3D99D%keir.xen@gmail.com>
+       <217459398.20120902171441@eikelenboom.it>
+       <5044CAD7.8030800@amd.com>
+       <1144695277.20120904184345@eikelenboom.it>
+       <5047420A0200007800098BB1@nat28.tlf.novell.com>
+       <348297741.20120905122542@eikelenboom.it>
+In-Reply-To: <348297741.20120905122542@eikelenboom.it>
+X-OriginatorOrg: amd.com
+Cc: Keir Fraser <keir.xen@gmail.com>, Santosh Jodh <Santosh.Jodh@citrix.com>,
+       Jan Beulich <JBeulich@suse.com>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Transfer-Encoding: quoted-printable
+Content-Type: text/plain; charset="iso-8859-15"; Format="flowed"
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] Using debug-key 'o:  Dump IOMMU p2m table,
+ locks up machine
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+OK, I got your lspci info, please find my answer inline.
+
+On 09/05/2012 12:25 PM, Sander Eikelenboom wrote:
+
+>
+> 00:00.0 Host bridge: ATI Technologies Inc RD890 Northbridge only single s=
+lot PCI-e GFX Hydra part (rev 02)
+> 00:00.2 Generic system peripheral [0806]: ATI Technologies Inc RD990 I/O =
+Memory Management Unit (IOMMU)
+> 00:02.0 PCI bridge: ATI Technologies Inc RD890 PCI to PCI bridge (PCI exp=
+ress gpp port B)
+> 00:03.0 PCI bridge: ATI Technologies Inc RD890 PCI to PCI bridge (PCI exp=
+ress gpp port C)
+> 00:05.0 PCI bridge: ATI Technologies Inc RD890 PCI to PCI bridge (PCI exp=
+ress gpp port E)
+> 00:06.0 PCI bridge: ATI Technologies Inc RD890 PCI to PCI bridge (PCI exp=
+ress gpp port F)
+> 00:0a.0 PCI bridge: ATI Technologies Inc RD890 PCI to PCI bridge (externa=
+l gfx1 port A)
+> 00:0b.0 PCI bridge: ATI Technologies Inc RD890 PCI to PCI bridge (NB-SB l=
+ink)
+> 00:0c.0 PCI bridge: ATI Technologies Inc Device 5a20
+> 00:0d.0 PCI bridge: ATI Technologies Inc RD890 PCI to PCI bridge (externa=
+l gfx1 port B)
+> 00:11.0 SATA controller: ATI Technologies Inc SB7x0/SB8x0/SB9x0 SATA Cont=
+roller [AHCI mode] (rev 40)
+> 00:12.0 USB controller: ATI Technologies Inc SB7x0/SB8x0/SB9x0 USB OHCI0 =
+Controller
+> 00:12.2 USB controller: ATI Technologies Inc SB7x0/SB8x0/SB9x0 USB EHCI C=
+ontroller
+> 00:13.0 USB controller: ATI Technologies Inc SB7x0/SB8x0/SB9x0 USB OHCI0 =
+Controller
+> 00:13.2 USB controller: ATI Technologies Inc SB7x0/SB8x0/SB9x0 USB EHCI C=
+ontroller
+> 00:14.0 SMBus: ATI Technologies Inc SBx00 SMBus Controller (rev 41)
+> 00:14.3 ISA bridge: ATI Technologies Inc SB7x0/SB8x0/SB9x0 LPC host contr=
+oller (rev 40)
+> 00:14.4 PCI bridge: ATI Technologies Inc SBx00 PCI to PCI Bridge (rev 40)
+> 00:14.5 USB controller: ATI Technologies Inc SB7x0/SB8x0/SB9x0 USB OHCI2 =
+Controller
+> 00:15.0 PCI bridge: ATI Technologies Inc SB700/SB800/SB900 PCI to PCI bri=
+dge (PCIE port 0)
+> 00:16.0 USB controller: ATI Technologies Inc SB7x0/SB8x0/SB9x0 USB OHCI0 =
+Controller
+> 00:16.2 USB controller: ATI Technologies Inc SB7x0/SB8x0/SB9x0 USB EHCI C=
+ontroller
+> 00:18.0 Host bridge: Advanced Micro Devices [AMD] Family 10h Processor Hy=
+perTransport Configuration
+> 00:18.1 Host bridge: Advanced Micro Devices [AMD] Family 10h Processor Ad=
+dress Map
+> 00:18.2 Host bridge: Advanced Micro Devices [AMD] Family 10h Processor DR=
+AM Controller
+> 00:18.3 Host bridge: Advanced Micro Devices [AMD] Family 10h Processor Mi=
+scellaneous Control
+> 00:18.4 Host bridge: Advanced Micro Devices [AMD] Family 10h Processor Li=
+nk Control
+> 03:06.0 Multimedia audio controller: C-Media Electronics Inc CM8738 (rev =
+10)
+> 04:00.0 USB controller: NetMos Technology MCS9990 PCIe to 4=E2Port USB 2.=
+0 Host Controller
+> 04:00.1 USB controller: NetMos Technology MCS9990 PCIe to 4=E2Port USB 2.=
+0 Host Controller
+> 04:00.2 USB controller: NetMos Technology MCS9990 PCIe to 4=E2Port USB 2.=
+0 Host Controller
+> 04:00.3 USB controller: NetMos Technology MCS9990 PCIe to 4=E2Port USB 2.=
+0 Host Controller
+> 04:00.4 USB controller: NetMos Technology MCS9990 PCIe to 4=E2Port USB 2.=
+0 Host Controller
+> 04:00.5 USB controller: NetMos Technology MCS9990 PCIe to 4=E2Port USB 2.=
+0 Host Controller
+> 04:00.6 USB controller: NetMos Technology MCS9990 PCIe to 4=E2Port USB 2.=
+0 Host Controller
+> 04:00.7 USB controller: NetMos Technology MCS9990 PCIe to 4=E2Port USB 2.=
+0 Host Controller
+> 05:00.0 Multimedia video controller: Conexant Systems, Inc. CX25850
+> 06:00.0 VGA compatible controller: ATI Technologies Inc RV620 LE [Radeon =
+HD 3450]
+> 06:00.1 Audio device: ATI Technologies Inc RV620 Audio device [Radeon HD =
+34xx Series]
+> 07:00.0 Multimedia video controller: Conexant Systems, Inc. Device 8210
+
+What kind of device is it, is it a graphic card? Is there any firmware =
+
+running on this device? Some firmwares like vbios might have bad =
+
+assumption of address space. And how many memory the guest has? Could =
+
+you attach a lspci -vvv output from your guest?
+
+Thanks,
+Wei
+
+> 08:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168=
+B PCI Express Gigabit Ethernet controller (rev 03)
+> 09:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168=
+B PCI Express Gigabit Ethernet controller (rev 03)
+> 0a:00.0 USB controller: NetMos Technology MCS9990 PCIe to 4=E2Port USB 2.=
+0 Host Controller
+> 0a:00.1 USB controller: NetMos Technology MCS9990 PCIe to 4=E2Port USB 2.=
+0 Host Controller
+> 0a:00.2 USB controller: NetMos Technology MCS9990 PCIe to 4=E2Port USB 2.=
+0 Host Controller
+> 0a:00.3 USB controller: NetMos Technology MCS9990 PCIe to 4=E2Port USB 2.=
+0 Host Controller
+> 0a:00.4 USB controller: NetMos Technology MCS9990 PCIe to 4=E2Port USB 2.=
+0 Host Controller
+> 0a:00.5 USB controller: NetMos Technology MCS9990 PCIe to 4=E2Port USB 2.=
+0 Host Controller
+> 0a:00.6 USB controller: NetMos Technology MCS9990 PCIe to 4=E2Port USB 2.=
+0 Host Controller
+> 0a:00.7 USB controller: NetMos Technology MCS9990 PCIe to 4=E2Port USB 2.=
+0 Host Controller
+> 0b:00.0 VGA compatible controller: nVidia Corporation G98 [GeForce 8400 G=
+S] (rev a1)
+>
+>
+>
+>
+>
+>
+>
+>> Jan
+>
+>
+>
+>
+
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<504756850200007800098D1A@nat28.tlf.novell.com> b/config/examples/test/corpus/<504756850200007800098D1A@nat28.tlf.novell.com>
new file mode 100644 (file)
index 0000000..09f2352
--- /dev/null
@@ -0,0 +1,119 @@
+From xen-devel-bounces@lists.xen.org Wed Sep 05 12:44:57 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 05 Sep 2012 12:44:57 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T9E2R-0002Yc-8a
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 05 Sep 2012 12:44:57 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T9DyH-0001Gi-MH; Wed, 05 Sep 2012 11:40:37 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <JBeulich@suse.com>) id 1T9DyF-0001Gc-Hs
+       for xen-devel@lists.xen.org; Wed, 05 Sep 2012 11:40:35 +0000
+Received: from [85.158.138.51:6876] by server-11.bemta-3.messagelabs.com id
+       0E/C6-30250-23A37405; Wed, 05 Sep 2012 11:40:34 +0000
+X-Env-Sender: JBeulich@suse.com
+X-Msg-Ref: server-8.tower-174.messagelabs.com!1346845233!28724073!1
+X-Originating-IP: [130.57.49.28]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogMTMwLjU3LjQ5LjI4ID0+IDQwMzE=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 4872 invoked from network); 5 Sep 2012 11:40:33 -0000
+Received: from nat28.tlf.novell.com (HELO nat28.tlf.novell.com) (130.57.49.28)
+       by server-8.tower-174.messagelabs.com with SMTP;
+       5 Sep 2012 11:40:33 -0000
+Received: from EMEA1-MTA by nat28.tlf.novell.com
+       with Novell_GroupWise; Wed, 05 Sep 2012 12:40:32 +0100
+Message-Id: <504756850200007800098D1A@nat28.tlf.novell.com>
+X-Mailer: Novell GroupWise Internet Agent 12.0.0 
+Date: Wed, 05 Sep 2012 12:41:25 +0100
+From: "Jan Beulich" <JBeulich@suse.com>
+To: "Sander Eikelenboom" <linux@eikelenboom.it>
+References: <40501859.20120902104331@eikelenboom.it>
+       <CC6932C2.3D99D%keir.xen@gmail.com>
+       <217459398.20120902171441@eikelenboom.it> <5044CAD7.8030800@amd.com>
+       <1144695277.20120904184345@eikelenboom.it>
+       <5047420A0200007800098BB1@nat28.tlf.novell.com>
+       <348297741.20120905122542@eikelenboom.it>
+       <5047483F0200007800098C18@nat28.tlf.novell.com>
+       <88861335.20120905124810@eikelenboom.it>
+In-Reply-To: <88861335.20120905124810@eikelenboom.it>
+Mime-Version: 1.0
+Content-Disposition: inline
+Cc: Wei Wang <wei.wang2@amd.com>, Keir Fraser <keir.xen@gmail.com>,
+       Santosh Jodh <Santosh.Jodh@citrix.com>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="utf-8"
+Content-Transfer-Encoding: base64
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] Using debug-key 'o:  Dump IOMMU p2m table,
+ locks up machine
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+Pj4+IE9uIDA1LjA5LjEyIGF0IDEyOjQ4LCBTYW5kZXIgRWlrZWxlbmJvb20gPGxpbnV4QGVpa2Vs
+ZW5ib29tLml0PiB3cm90ZToKCj4gV2VkbmVzZGF5LCBTZXB0ZW1iZXIgNSwgMjAxMiwgMTI6NDA6
+MzEgUE0sIHlvdSB3cm90ZToKPiAKPj4+Pj4gT24gMDUuMDkuMTIgYXQgMTI6MjUsIFNhbmRlciBF
+aWtlbGVuYm9vbSA8bGludXhAZWlrZWxlbmJvb20uaXQ+IHdyb3RlOgo+Pj4gV2VkbmVzZGF5LCBT
+ZXB0ZW1iZXIgNSwgMjAxMiwgMTI6MTQ6MDIgUE0sIHlvdSB3cm90ZToKPj4+Pj4+PiBPbiAwNC4w
+OS4xMiBhdCAxODo0MywgU2FuZGVyIEVpa2VsZW5ib29tIDxsaW51eEBlaWtlbGVuYm9vbS5pdD4g
+d3JvdGU6Cj4+Pj4+IC4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLjwwPkFNRC1WaTogSU9fUEFH
+RV9GQVVMVDogZG9tYWluID0gMCwgZGV2aWNlIGlkID0gCj4+Pj4+IDB4MGEwNiwgZmF1bHQgYWRk
+cmVzcyA9IDB4YzJjMmMyYzAKPj4+IAo+Pj4+IExvb2tzIGxpa2UgdXNlIG9mIHVuaW5pdGlhbGl6
+ZWQgbWVtb3J5IChhc3N1bWluZyB5b3UncmUgdXNpbmcgYQo+Pj4+IGRlYnVnIGh5cGVydmlzb3Is
+IHRoYXQncyB0aGUgcGF0dGVybiBzY3J1Yl9vbmVfcGFnZSgpIHB1dHMKPj4+PiB0aGVyZSkuIEJ1
+dCBpdCdzIHVuY2xlYXIgdG8gbWUgd2hhdCBkZXZpY2Ugc2hvdWxkIGJlIGRvaW5nIGFueQo+Pj4+
+IEkvTyBhdCB0aGF0IHBvaW50IChhbmQgZXZlbiBpZiBvbmUgZG9lcywgaG93IGl0IHdvdWxkIGdl
+dCB0aGUKPj4+PiBiYWQgYWRkcmVzcyBsb2FkZWQpLiBXaGF0IGlzIDBhOjAwLjY/Cj4+PiAKPj4+
+IHNpbmNlIDQuMi1yYzQgaXMgc3RpbGwgdW5zdGFibGUgaXQgaGFzIGRlYnVnPXkgZm9yIHdoYXQg
+aSBrbm93LCBzbyB5ZXMuCj4+PiBUaGlzIHBhcnRpY3VsYXIgSU9fUEFHRV9GQVVMVCBoYXBwZW5l
+ZCBiZWZvcmUgdGhlIGtlcm5lbCBsb2Fkcywgc28gdGhlIAo+Pj4ga2VybmVsIGFuZCBwY2liYWNr
+IHNob3VsZG4ndCBiZSBjYXVzaW5nIHRoZSBpc3N1ZSBvbmUgd291bGQgc2F5Lgo+Pj4gV2l0aCBw
+Y2liYWNrIGknbSBoaWRpbmcgMDM6MDYuMCwgMDQ6MDAuKiwgMDU6MDAuMCwgMGE6MDAuKiBhbmQg
+MDc6MDAuMCBhdCAKPj4+IGJvb3QuCj4+PiAKPj4+IElzIHRoZXJlIGFueSBjb2RlIGkgY291bGQg
+YWRkIHRvIGdldCBtb3JlIGluZm8gd2hlcmUgaXQgY29tZXMgZnJvbSA/Cj4gCj4+IEhhcmRseSwg
+c2luY2UgdGhvc2UgYWNjZXNzZXMgYXJlIGFzeW5jaHJvbm91cyB0byB3aGF0IHRoZSBDUFVzCj4+
+IGRvLiBCdXQgLi4uCj4gCj4+PiAwYTowMC42IFVTQiBjb250cm9sbGVyOiBOZXRNb3MgVGVjaG5v
+bG9neSBNQ1M5OTkwIFBDSWUgdG8gNMOiUG9ydCBVU0IgMi4wIAo+IEhvc3QgQ29udHJvbGxlcgo+
+IAo+PiAuLi4gYXJlIHlvdXIga2V5Ym9hcmQvbW91c2UgcGVyaGFwcyBjb25uZWN0ZWQgdG8gdGhp
+cyBvbmU/IEluCj4+IHdoaWNoIGNhc2UgSSdkIHN1cHBvc2UgdGhlIDE6MSB0YWJsZXMgc2V0IHVw
+IGZvciBEb20wIG1pZ2h0IG5vdAo+PiBiZSBjb21wbGV0ZS4gV2VpPwo+IAo+IE5vcGUgdGhpcyBt
+YWNoaW5lIGlzIHJ1bm5pbmcgd2l0aG91dCBhbnkga2V5Ym9hcmQvbW91c2UsIHRoZSBVU0IgY29u
+dHJvbGxlciAKPiBhdCBwcmVzZW50IGhhcyBvbmx5IG9uZSBkZXZpY2UgY29ubmVjdGVkIHRvIGl0
+Ogo+IGluIHRoZSBwdiBndWVzdCBsc3VzYjoKPiBCdXMgMDA3IERldmljZSAwMDI6IElEIDEwY2Y6
+NTUwMCBWZWxsZW1hbiBDb21wb25lbnRzLCBJbmMuIDgwNTUgRXhwZXJpbWVudCAKPiBJbnRlcmZh
+Y2UgQm9hcmQgKGFkZHJlc3M9MCkKCkFuZCB0aGlzIGlzIG5vdCBieSBjaGFuY2UgaGFuZ2luZyBv
+ZmYgdGhlIGNvbnRyb2xsZXIgdGhhdCB0aGUgZmF1bHQKd2FzIHJlcG9ydGVkIGZvcj8KCj4gQW5k
+IGFzIGkgc2FpZCwgdGhlIGhhcmR3YXJlIGRpZG4ndCBjaGFuZ2UgYmV0d2VlbiBteSBzd2l0Y2gg
+ZnJvbSB4ZW4tNC4xLjMgCj4gdG8geGVuLTQuMi4KCkkgdW5kZXJzdGFuZCB0aGF0LCBidXQgdGhl
+IHByb2JsZW0gaGVyZSBzaG93ZWQgdXAgb25seSBhZnRlcgp0b2dnbGluZyB0aGUgcGFnZSB0YWJs
+ZSBzaGFyaW5nIG9wdGlvbiBpaXJjLgoKSmFuCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19f
+X19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0
+cy54ZW4ub3JnCmh0dHA6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=
+
diff --git a/config/examples/test/corpus/<50475E8D.2090709@amd.com> b/config/examples/test/corpus/<50475E8D.2090709@amd.com>
new file mode 100644 (file)
index 0000000..2176dee
--- /dev/null
@@ -0,0 +1,152 @@
+From xen-devel-bounces@lists.xen.org Wed Sep 05 15:19:49 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 05 Sep 2012 15:19:49 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T9GSF-0003AB-8o
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 05 Sep 2012 15:19:49 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T9GNW-0001My-Qr; Wed, 05 Sep 2012 14:14:50 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Wei.Wang2@amd.com>) id 1T9GNU-0001Mp-9g
+       for xen-devel@lists.xen.org; Wed, 05 Sep 2012 14:14:48 +0000
+Received: from [85.158.143.99:2399] by server-2.bemta-4.messagelabs.com id
+       E4/58-21239-75E57405; Wed, 05 Sep 2012 14:14:47 +0000
+X-Env-Sender: Wei.Wang2@amd.com
+X-Msg-Ref: server-8.tower-216.messagelabs.com!1346854485!18921199!1
+X-Originating-IP: [216.32.180.186]
+X-SpamReason: No, hits=0.0 required=7.0 tests=
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 18313 invoked from network); 5 Sep 2012 14:14:46 -0000
+Received: from co1ehsobe003.messaging.microsoft.com (HELO
+       co1outboundpool.messaging.microsoft.com) (216.32.180.186)
+       by server-8.tower-216.messagelabs.com with AES128-SHA encrypted SMTP;
+       5 Sep 2012 14:14:46 -0000
+Received: from mail110-co1-R.bigfish.com (10.243.78.239) by
+       CO1EHSOBE016.bigfish.com (10.243.66.79) with Microsoft SMTP Server id
+       14.1.225.23; Wed, 5 Sep 2012 14:14:44 +0000
+Received: from mail110-co1 (localhost [127.0.0.1])     by
+       mail110-co1-R.bigfish.com (Postfix) with ESMTP id B92EA3A0097;
+       Wed,  5 Sep 2012 14:14:44 +0000 (UTC)
+X-Forefront-Antispam-Report: CIP:163.181.249.109; KIP:(null); UIP:(null);
+       IPV:NLI; H:ausb3twp02.amd.com; RD:none; EFVD:NLI
+X-SpamScore: -5
+X-BigFish: VPS-5(zzbb2dI98dI9371Ic89bh1432I4015Izz1202hzzz2dh668h839h93fhd25he5bhf0ah107ah1155h)
+Received: from mail110-co1 (localhost.localdomain [127.0.0.1]) by mail110-co1
+       (MessageSwitch) id 1346854482986326_27761;
+       Wed,  5 Sep 2012 14:14:42 +0000 (UTC)
+Received: from CO1EHSMHS016.bigfish.com (unknown [10.243.78.239])      by
+       mail110-co1.bigfish.com (Postfix) with ESMTP id E39B1C800BD;
+       Wed,  5 Sep 2012 14:14:42 +0000 (UTC)
+Received: from ausb3twp02.amd.com (163.181.249.109) by
+       CO1EHSMHS016.bigfish.com (10.243.66.26) with Microsoft SMTP Server id
+       14.1.225.23; Wed, 5 Sep 2012 14:14:41 +0000
+X-WSS-ID: 0M9VRKB-02-3IV-02
+X-M-MSG: 
+Received: from sausexedgep01.amd.com (sausexedgep01-ext.amd.com
+       [163.181.249.72])       (using TLSv1 with cipher AES128-SHA (128/128
+       bits))  (No
+       client certificate requested)   by ausb3twp02.amd.com (Axway MailGate
+       3.8.1)
+       with ESMTP id 20211C811F;       Wed,  5 Sep 2012 09:14:34 -0500 (CDT)
+Received: from SAUSEXDAG03.amd.com (163.181.55.3) by sausexedgep01.amd.com
+       (163.181.36.54) with Microsoft SMTP Server (TLS) id 8.3.192.1;
+       Wed, 5 Sep 2012 09:14:51 -0500
+Received: from storexhtp02.amd.com (172.24.4.4) by sausexdag03.amd.com
+       (163.181.55.3) with Microsoft SMTP Server (TLS) id 14.1.323.3;
+       Wed, 5 Sep 2012 09:14:38 -0500
+Received: from gwo.osrc.amd.com (165.204.16.204) by storexhtp02.amd.com
+       (172.24.4.4) with Microsoft SMTP Server id 8.3.213.0; Wed, 5 Sep 2012
+       10:14:37 -0400
+Received: from [165.204.15.57] (gran.osrc.amd.com [165.204.15.57])     by
+       gwo.osrc.amd.com (Postfix) with ESMTP id EABCC49C0D5; Wed,  5 Sep 2012
+       15:14:32 +0100 (BST)
+Message-ID: <50475E8D.2090709@amd.com>
+Date: Wed, 5 Sep 2012 16:15:41 +0200
+From: Wei Wang <wei.wang2@amd.com>
+User-Agent: Mozilla/5.0 (X11; Linux x86_64;
+       rv:12.0) Gecko/20120421 Thunderbird/12.0
+MIME-Version: 1.0
+To: Jan Beulich <JBeulich@suse.com>
+References: <40501859.20120902104331@eikelenboom.it>
+       <CC6932C2.3D99D%keir.xen@gmail.com>
+       <217459398.20120902171441@eikelenboom.it>
+       <5044CAD7.8030800@amd.com>
+       <1144695277.20120904184345@eikelenboom.it>
+       <5047420A0200007800098BB1@nat28.tlf.novell.com>
+       <348297741.20120905122542@eikelenboom.it>
+       <5047483F0200007800098C18@nat28.tlf.novell.com>
+In-Reply-To: <5047483F0200007800098C18@nat28.tlf.novell.com>
+X-OriginatorOrg: amd.com
+Cc: Sander Eikelenboom <linux@eikelenboom.it>, Keir Fraser <keir.xen@gmail.com>,
+       Santosh Jodh <Santosh.Jodh@citrix.com>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Transfer-Encoding: base64
+Content-Type: text/plain; charset="utf-8"; Format="flowed"
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] Using debug-key 'o:  Dump IOMMU p2m table,
+ locks up machine
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+T24gMDkvMDUvMjAxMiAxMjo0MCBQTSwgSmFuIEJldWxpY2ggd3JvdGU6Cj4+Pj4gT24gMDUuMDku
+MTIgYXQgMTI6MjUsIFNhbmRlciBFaWtlbGVuYm9vbTxsaW51eEBlaWtlbGVuYm9vbS5pdD4gIHdy
+b3RlOgo+PiBXZWRuZXNkYXksIFNlcHRlbWJlciA1LCAyMDEyLCAxMjoxNDowMiBQTSwgeW91IHdy
+b3RlOgo+Pj4+Pj4gT24gMDQuMDkuMTIgYXQgMTg6NDMsIFNhbmRlciBFaWtlbGVuYm9vbTxsaW51
+eEBlaWtlbGVuYm9vbS5pdD4gIHdyb3RlOgo+Pj4+IC4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
+LjwwPkFNRC1WaTogSU9fUEFHRV9GQVVMVDogZG9tYWluID0gMCwgZGV2aWNlIGlkID0KPj4+PiAw
+eDBhMDYsIGZhdWx0IGFkZHJlc3MgPSAweGMyYzJjMmMwCj4+Cj4+PiBMb29rcyBsaWtlIHVzZSBv
+ZiB1bmluaXRpYWxpemVkIG1lbW9yeSAoYXNzdW1pbmcgeW91J3JlIHVzaW5nIGEKPj4+IGRlYnVn
+IGh5cGVydmlzb3IsIHRoYXQncyB0aGUgcGF0dGVybiBzY3J1Yl9vbmVfcGFnZSgpIHB1dHMKPj4+
+IHRoZXJlKS4gQnV0IGl0J3MgdW5jbGVhciB0byBtZSB3aGF0IGRldmljZSBzaG91bGQgYmUgZG9p
+bmcgYW55Cj4+PiBJL08gYXQgdGhhdCBwb2ludCAoYW5kIGV2ZW4gaWYgb25lIGRvZXMsIGhvdyBp
+dCB3b3VsZCBnZXQgdGhlCj4+PiBiYWQgYWRkcmVzcyBsb2FkZWQpLiBXaGF0IGlzIDBhOjAwLjY/
+Cj4+Cj4+IHNpbmNlIDQuMi1yYzQgaXMgc3RpbGwgdW5zdGFibGUgaXQgaGFzIGRlYnVnPXkgZm9y
+IHdoYXQgaSBrbm93LCBzbyB5ZXMuCj4+IFRoaXMgcGFydGljdWxhciBJT19QQUdFX0ZBVUxUIGhh
+cHBlbmVkIGJlZm9yZSB0aGUga2VybmVsIGxvYWRzLCBzbyB0aGUKPj4ga2VybmVsIGFuZCBwY2li
+YWNrIHNob3VsZG4ndCBiZSBjYXVzaW5nIHRoZSBpc3N1ZSBvbmUgd291bGQgc2F5Lgo+PiBXaXRo
+IHBjaWJhY2sgaSdtIGhpZGluZyAwMzowNi4wLCAwNDowMC4qLCAwNTowMC4wLCAwYTowMC4qIGFu
+ZCAwNzowMC4wIGF0Cj4+IGJvb3QuCj4+Cj4+IElzIHRoZXJlIGFueSBjb2RlIGkgY291bGQgYWRk
+IHRvIGdldCBtb3JlIGluZm8gd2hlcmUgaXQgY29tZXMgZnJvbSA/Cj4KPiBIYXJkbHksIHNpbmNl
+IHRob3NlIGFjY2Vzc2VzIGFyZSBhc3luY2hyb25vdXMgdG8gd2hhdCB0aGUgQ1BVcwo+IGRvLiBC
+dXQgLi4uCj4KPj4gMGE6MDAuNiBVU0IgY29udHJvbGxlcjogTmV0TW9zIFRlY2hub2xvZ3kgTUNT
+OTk5MCBQQ0llIHRvIDTDolBvcnQgVVNCIDIuMCBIb3N0IENvbnRyb2xsZXIKPgo+IC4uLiBhcmUg
+eW91ciBrZXlib2FyZC9tb3VzZSBwZXJoYXBzIGNvbm5lY3RlZCB0byB0aGlzIG9uZT8gSW4KPiB3
+aGljaCBjYXNlIEknZCBzdXBwb3NlIHRoZSAxOjEgdGFibGVzIHNldCB1cCBmb3IgRG9tMCBtaWdo
+dCBub3QKPiBiZSBjb21wbGV0ZS4gV2VpPwoKSSBjaGVja2VkIHRoaXMgb24gbXkgbWFjaGluZSB1
+c2luZyAnbycga2V5IGFuZCBpdCBoYXMgYmVlbiBtYXBwZWQgYXMgYSAKMk1CIGZyYW1lIHNlZTog
+Z2ZuOiAwMDBjMmMwMCAgbWZuOiAwMDBjMmMwMC4gQnV0IG1heWJlIEkgaGF2ZSBubyBkZXZpY2Ug
+CmFjY2VzcyB0byB0aGlzIGFkZHJlc3MuLi4gQW5vdGhlciBwb3NzaWJpbGl0eSBpcyBpbnRlcnJ1
+cHQgbWVzc2FnZS4gNC4xIApkb2VzIG5vdCBzaG93IElPX1BBR0VfRkFVTFQgZm9yIGludGVycnVw
+dHMsIGJ1dCA0LjIgZG9lcyAoY2hhbmdlc2V0IAoyMzE5OTpkYmQ5OGFiMmY4N2YpLiBJIHdpbGwg
+c2VuZCBhIHBhdGNoIHRvIGR1bXAgZmxhZ3MgZnJvbSBJT19QQUdFX0ZBVUxULgoKVGhhbmtzLApX
+ZWkKCj4gSmFuCj4KCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
+X19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRw
+Oi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK
+
diff --git a/config/examples/test/corpus/<504786530200007800098F6E@nat28.tlf.novell.com> b/config/examples/test/corpus/<504786530200007800098F6E@nat28.tlf.novell.com>
new file mode 100644 (file)
index 0000000..2be656f
--- /dev/null
@@ -0,0 +1,102 @@
+From xen-devel-bounces@lists.xen.org Wed Sep 05 16:10:02 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 05 Sep 2012 16:10:02 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T9HEq-0003Kc-Ic
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 05 Sep 2012 16:10:02 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T9H9e-0002qO-Hs; Wed, 05 Sep 2012 15:04:34 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <JBeulich@suse.com>) id 1T9H9d-0002qI-CO
+       for xen-devel@lists.xen.org; Wed, 05 Sep 2012 15:04:33 +0000
+Received: from [85.158.138.51:62518] by server-10.bemta-3.messagelabs.com id
+       96/BC-10411-00A67405; Wed, 05 Sep 2012 15:04:32 +0000
+X-Env-Sender: JBeulich@suse.com
+X-Msg-Ref: server-9.tower-174.messagelabs.com!1346857471!28875897!1
+X-Originating-IP: [130.57.49.28]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogMTMwLjU3LjQ5LjI4ID0+IDQwMzE=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 18055 invoked from network); 5 Sep 2012 15:04:31 -0000
+Received: from nat28.tlf.novell.com (HELO nat28.tlf.novell.com) (130.57.49.28)
+       by server-9.tower-174.messagelabs.com with SMTP;
+       5 Sep 2012 15:04:31 -0000
+Received: from EMEA1-MTA by nat28.tlf.novell.com
+       with Novell_GroupWise; Wed, 05 Sep 2012 16:05:00 +0100
+Message-Id: <504786530200007800098F6E@nat28.tlf.novell.com>
+X-Mailer: Novell GroupWise Internet Agent 12.0.0 
+Date: Wed, 05 Sep 2012 16:05:23 +0100
+From: "Jan Beulich" <JBeulich@suse.com>
+To: "Wei Wang" <wei.wang2@amd.com>
+References: <40501859.20120902104331@eikelenboom.it>
+       <CC6932C2.3D99D%keir.xen@gmail.com>
+       <217459398.20120902171441@eikelenboom.it> <5044CAD7.8030800@amd.com>
+       <1144695277.20120904184345@eikelenboom.it>
+       <5047420A0200007800098BB1@nat28.tlf.novell.com>
+       <348297741.20120905122542@eikelenboom.it>
+       <5047483F0200007800098C18@nat28.tlf.novell.com>
+       <50475E8D.2090709@amd.com>
+In-Reply-To: <50475E8D.2090709@amd.com>
+Mime-Version: 1.0
+Content-Disposition: inline
+Cc: Sander Eikelenboom <linux@eikelenboom.it>, Keir Fraser <keir.xen@gmail.com>,
+       Santosh Jodh <Santosh.Jodh@citrix.com>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] Using debug-key 'o:  Dump IOMMU p2m table,
+ locks up machine
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+>>> On 05.09.12 at 16:15, Wei Wang <wei.wang2@amd.com> wrote:
+> I checked this on my machine using 'o' key and it has been mapped as a 
+> 2MB frame see: gfn: 000c2c00  mfn: 000c2c00. But maybe I have no device 
+
+Obviously he won't have gfn c2c00 and alike since he's using
+dom0_mem=1G - you should probably try that too. But even then
+I wouldn't expect you to see anything, as you also need a
+babbling device.
+
+> access to this address... Another possibility is interrupt message. 4.1 
+> does not show IO_PAGE_FAULT for interrupts, but 4.2 does (changeset 
+> 23199:dbd98ab2f87f). I will send a patch to dump flags from IO_PAGE_FAULT.
+
+Yes, that might help a little further.
+
+Jan
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<504DE4EF.5070004@citrix.com> b/config/examples/test/corpus/<504DE4EF.5070004@citrix.com>
new file mode 100644 (file)
index 0000000..9572c17
--- /dev/null
@@ -0,0 +1,137 @@
+From xen-devel-bounces@lists.xen.org Mon Sep 10 14:04:18 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Mon, 10 Sep 2012 14:04:18 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TB3eu-0007sL-MD
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Mon, 10 Sep 2012 14:04:18 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TB3b4-0007EU-JM; Mon, 10 Sep 2012 13:00:14 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <julien.grall@citrix.com>) id 1TB3b3-0007EL-8n
+       for xen-devel@lists.xen.org; Mon, 10 Sep 2012 13:00:13 +0000
+Received: from [85.158.143.99:46254] by server-3.bemta-4.messagelabs.com id
+       72/0E-08232-C54ED405; Mon, 10 Sep 2012 13:00:12 +0000
+X-Env-Sender: julien.grall@citrix.com
+X-Msg-Ref: server-5.tower-216.messagelabs.com!1347282009!29189206!1
+X-Originating-IP: [66.165.176.63]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyNzc5Njk=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 21132 invoked from network); 10 Sep 2012 13:00:11 -0000
+Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
+       by server-5.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
+       10 Sep 2012 13:00:11 -0000
+X-IronPort-AV: E=Sophos;i="4.80,398,1344211200"; d="scan'208";a="207574001"
+Received: from ftlpmailmx01.citrite.net ([10.13.107.65])
+       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       10 Sep 2012 13:00:09 +0000
+Received: from [10.80.248.240] (10.80.248.240) by smtprelay.citrix.com
+       (10.13.107.65) with Microsoft SMTP Server id 8.3.279.1; Mon, 10 Sep 2012
+       09:00:08 -0400
+Message-ID: <504DE4EF.5070004@citrix.com>
+Date: Mon, 10 Sep 2012 14:02:39 +0100
+From: Julien Grall <julien.grall@citrix.com>
+User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US;
+       rv:1.9.1.16) Gecko/20120726 Icedove/3.0.11
+MIME-Version: 1.0
+To: Jan Beulich <JBeulich@suse.com>
+References: <cover.1345552068.git.julien.grall@citrix.com>
+       <c378b04ee29071c1d6d68bd3ef48fedadb493b10.1345552068.git.julien.grall@citrix.com>
+       <5035E986020000780008A617@nat28.tlf.novell.com>
+       <50360B81.2070402@citrix.com>
+       <5037AE20020000780008A7A8@nat28.tlf.novell.com>
+In-Reply-To: <5037AE20020000780008A7A8@nat28.tlf.novell.com>
+Cc: "christian.limpach@gmail.com" <christian.limpach@gmail.com>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Transfer-Encoding: 7bit
+Content-Type: text/plain; charset="us-ascii"; Format="flowed"
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.6 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [XEN][RFC PATCH V2 05/17] hvm: Modify hvm_op
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On 08/24/2012 04:38 PM, Jan Beulich wrote:
+>>>> On 23.08.12 at 12:52, Julien Grall<julien.grall@citrix.com>  wrote:
+>>>>          
+>> On 08/23/2012 08:27 AM, Jan Beulich wrote:
+>>      
+>>>> switch ( a.index )
+>>>> {
+>>>> -            case HVM_PARAM_IOREQ_PFN:
+>>>>
+>>>>          
+>>> Removing sub-ops which a domain can issue for itself (which for this and
+>>> another one below appears to be the case) is not allowed.
+>>>
+>>>        
+>> I removed these 3 sub-ops because it will not work with
+>> QEMU disaggregation. Shared pages and event channel
+>> for IO request are private for each device model.
+>>      
+> Then they need to be made inaccessible for that specific setup, not
+> removed altogether.
+>
+>    
+What do you mean by specific feature ?
+With this patch series, you are able to handle one or more
+QEMU.
+Keep a compatibility with the old IO emulation is hard.
+It's still possible but IOreq handle will not send an IOreq
+if no device  models registered it. There is no more default QEMU.
+
+I have send a long patch series for QEMU, but it's for supporting
+a "full disaggregation" (i.e. multiple QEMU for domain).
+If you want to handle only one QEMU the patch decrease to
+only 100 lines. So it can be backported easily.
+
+>>>> +            case HVM_PARAM_IO_PFN_FIRST:
+>>>>
+>>>>          
+>>> I don't see where in this patch this and the other new sub-op constants
+>>> get defined.
+>>>
+>>>        
+>> Both sub-op constants are added in patch 1:
+>> http://lists.xen.org/archives/html/xen-devel/2012-08/msg01767.html
+>>      
+> Hmm, I can certainly see reasons for breaking up things that way,
+> but I generally prefer patches to represent functional units.
+>    
+I will rework my patch series to represen function units.
+
+-- 
+Julien Grall
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<504DECBF.2000306@citrix.com> b/config/examples/test/corpus/<504DECBF.2000306@citrix.com>
new file mode 100644 (file)
index 0000000..dc15063
--- /dev/null
@@ -0,0 +1,138 @@
+From xen-devel-bounces@lists.xen.org Mon Sep 10 14:38:31 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Mon, 10 Sep 2012 14:38:31 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TB4C2-00081V-2m
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Mon, 10 Sep 2012 14:38:31 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TB47T-00084U-M8; Mon, 10 Sep 2012 13:33:43 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <julien.grall@citrix.com>) id 1TB47R-00084M-J1
+       for xen-devel@lists.xen.org; Mon, 10 Sep 2012 13:33:41 +0000
+Received: from [85.158.138.51:18430] by server-12.bemta-3.messagelabs.com id
+       5D/47-10384-43CED405; Mon, 10 Sep 2012 13:33:40 +0000
+X-Env-Sender: julien.grall@citrix.com
+X-Msg-Ref: server-6.tower-174.messagelabs.com!1347284015!21671895!1
+X-Originating-IP: [66.165.176.89]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNzAwNzQ=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 10551 invoked from network); 10 Sep 2012 13:33:37 -0000
+Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
+       by server-6.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
+       10 Sep 2012 13:33:37 -0000
+X-IronPort-AV: E=Sophos;i="4.80,398,1344211200"; d="scan'208";a="37313905"
+Received: from ftlpmailmx01.citrite.net ([10.13.107.65])
+       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       10 Sep 2012 13:33:35 +0000
+Received: from [10.80.248.240] (10.80.248.240) by smtprelay.citrix.com
+       (10.13.107.65) with Microsoft SMTP Server id 8.3.279.1; Mon, 10 Sep 2012
+       09:33:27 -0400
+Message-ID: <504DECBF.2000306@citrix.com>
+Date: Mon, 10 Sep 2012 14:35:59 +0100
+From: Julien Grall <julien.grall@citrix.com>
+User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US;
+       rv:1.9.1.16) Gecko/20120726 Icedove/3.0.11
+MIME-Version: 1.0
+To: Jan Beulich <JBeulich@suse.com>
+References: <cover.1345552068.git.julien.grall@citrix.com>
+       <c378b04ee29071c1d6d68bd3ef48fedadb493b10.1345552068.git.julien.grall@citrix.com>
+       <5035E986020000780008A617@nat28.tlf.novell.com>
+       <50360B81.2070402@citrix.com>
+       <5037AE20020000780008A7A8@nat28.tlf.novell.com>
+       <504DE4EF.5070004@citrix.com>
+       <504E0600020000780009A37F@nat28.tlf.novell.com>
+In-Reply-To: <504E0600020000780009A37F@nat28.tlf.novell.com>
+Cc: "christian.limpach@gmail.com" <christian.limpach@gmail.com>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Transfer-Encoding: 7bit
+Content-Type: text/plain; charset="us-ascii"; Format="flowed"
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.6 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [XEN][RFC PATCH V2 05/17] hvm: Modify hvm_op
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On 09/10/2012 02:23 PM, Jan Beulich wrote:
+>>>> On 10.09.12 at 15:02, Julien Grall<julien.grall@citrix.com>  wrote:
+>>>>          
+>> On 08/24/2012 04:38 PM, Jan Beulich wrote:
+>>      
+>>>>>> On 23.08.12 at 12:52, Julien Grall<julien.grall@citrix.com>   wrote:
+>>>>>>
+>>>>>>              
+>>>> On 08/23/2012 08:27 AM, Jan Beulich wrote:
+>>>>
+>>>>          
+>>>>>> switch ( a.index )
+>>>>>> {
+>>>>>> -            case HVM_PARAM_IOREQ_PFN:
+>>>>>>
+>>>>>>
+>>>>>>              
+>>>>> Removing sub-ops which a domain can issue for itself (which for this and
+>>>>> another one below appears to be the case) is not allowed.
+>>>>>
+>>>>>
+>>>>>            
+>>>> I removed these 3 sub-ops because it will not work with
+>>>> QEMU disaggregation. Shared pages and event channel
+>>>> for IO request are private for each device model.
+>>>>
+>>>>          
+>>> Then they need to be made inaccessible for that specific setup, not
+>>> removed altogether.
+>>>
+>>>
+>>>        
+>> What do you mean by specific feature ?
+>> With this patch series, you are able to handle one or more
+>> QEMU.
+>> Keep a compatibility with the old IO emulation is hard.
+>>      
+> Did you read my original reply? Code backing operations that a
+> guest can issue itself (i.e. without qemu or another host side
+> component involved) just can't be removed, as you/we have
+> no control over which guest(s) may be making use of that
+> functionality.
+>    
+
+Ah ok misundertanding of my part. I don't really understand
+in which case a domain needs to retrieve its ioreq page.
+How can I made it inaccessible ? Just rc = -EINVAL ?
+
+-- 
+Julien Grall
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<504E0600020000780009A37F@nat28.tlf.novell.com> b/config/examples/test/corpus/<504E0600020000780009A37F@nat28.tlf.novell.com>
new file mode 100644 (file)
index 0000000..6306629
--- /dev/null
@@ -0,0 +1,116 @@
+From xen-devel-bounces@lists.xen.org Mon Sep 10 14:28:14 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Mon, 10 Sep 2012 14:28:14 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TB425-000805-0G
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Mon, 10 Sep 2012 14:28:14 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TB3xz-0007sl-Ip; Mon, 10 Sep 2012 13:23:55 +0000
+Received: from mail27.messagelabs.com ([193.109.254.147])
+       by lists.xen.org with smtp (Exim 4.72)
+       (envelope-from <JBeulich@suse.com>) id 1TB3xy-0007sT-GL
+       for xen-devel@lists.xen.org; Mon, 10 Sep 2012 13:23:54 +0000
+X-Env-Sender: JBeulich@suse.com
+X-Msg-Ref: server-15.tower-27.messagelabs.com!1347283427!3405859!1
+X-Originating-IP: [130.57.49.28]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogMTMwLjU3LjQ5LjI4ID0+IDM5OTE=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 10638 invoked from network); 10 Sep 2012 13:23:48 -0000
+Received: from nat28.tlf.novell.com (HELO nat28.tlf.novell.com) (130.57.49.28)
+       by server-15.tower-27.messagelabs.com with SMTP;
+       10 Sep 2012 13:23:48 -0000
+Received: from EMEA1-MTA by nat28.tlf.novell.com
+       with Novell_GroupWise; Mon, 10 Sep 2012 14:23:46 +0100
+Message-Id: <504E0600020000780009A37F@nat28.tlf.novell.com>
+X-Mailer: Novell GroupWise Internet Agent 12.0.0 
+Date: Mon, 10 Sep 2012 14:23:44 +0100
+From: "Jan Beulich" <JBeulich@suse.com>
+To: "Julien Grall" <julien.grall@citrix.com>
+References: <cover.1345552068.git.julien.grall@citrix.com>
+       <c378b04ee29071c1d6d68bd3ef48fedadb493b10.1345552068.git.julien.grall@citrix.com>
+       <5035E986020000780008A617@nat28.tlf.novell.com>
+       <50360B81.2070402@citrix.com>
+       <5037AE20020000780008A7A8@nat28.tlf.novell.com>
+       <504DE4EF.5070004@citrix.com>
+In-Reply-To: <504DE4EF.5070004@citrix.com>
+Mime-Version: 1.0
+Content-Disposition: inline
+Cc: "christian.limpach@gmail.com" <christian.limpach@gmail.com>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.6 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [XEN][RFC PATCH V2 05/17] hvm: Modify hvm_op
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+>>> On 10.09.12 at 15:02, Julien Grall <julien.grall@citrix.com> wrote:
+> On 08/24/2012 04:38 PM, Jan Beulich wrote:
+>>>>> On 23.08.12 at 12:52, Julien Grall<julien.grall@citrix.com>  wrote:
+>>>>>          
+>>> On 08/23/2012 08:27 AM, Jan Beulich wrote:
+>>>      
+>>>>> switch ( a.index )
+>>>>> {
+>>>>> -            case HVM_PARAM_IOREQ_PFN:
+>>>>>
+>>>>>          
+>>>> Removing sub-ops which a domain can issue for itself (which for this and
+>>>> another one below appears to be the case) is not allowed.
+>>>>
+>>>>        
+>>> I removed these 3 sub-ops because it will not work with
+>>> QEMU disaggregation. Shared pages and event channel
+>>> for IO request are private for each device model.
+>>>      
+>> Then they need to be made inaccessible for that specific setup, not
+>> removed altogether.
+>>
+>>    
+> What do you mean by specific feature ?
+> With this patch series, you are able to handle one or more
+> QEMU.
+> Keep a compatibility with the old IO emulation is hard.
+
+Did you read my original reply? Code backing operations that a
+guest can issue itself (i.e. without qemu or another host side
+component involved) just can't be removed, as you/we have
+no control over which guest(s) may be making use of that
+functionality.
+
+Jan
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<504E0968020000780009A397@nat28.tlf.novell.com> b/config/examples/test/corpus/<504E0968020000780009A397@nat28.tlf.novell.com>
new file mode 100644 (file)
index 0000000..77303f3
--- /dev/null
@@ -0,0 +1,139 @@
+From xen-devel-bounces@lists.xen.org Mon Sep 10 14:43:23 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Mon, 10 Sep 2012 14:43:23 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TB4Gk-00082v-2M
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Mon, 10 Sep 2012 14:43:23 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TB4Cq-0008LC-SG; Mon, 10 Sep 2012 13:39:16 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <JBeulich@suse.com>) id 1TB4Cp-0008L5-Hc
+       for xen-devel@lists.xen.org; Mon, 10 Sep 2012 13:39:15 +0000
+Received: from [85.158.143.35:45210] by server-1.bemta-4.messagelabs.com id
+       DE/C5-12504-28DED405; Mon, 10 Sep 2012 13:39:14 +0000
+X-Env-Sender: JBeulich@suse.com
+X-Msg-Ref: server-11.tower-21.messagelabs.com!1347284299!12381840!1
+X-Originating-IP: [130.57.49.28]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogMTMwLjU3LjQ5LjI4ID0+IDM5OTE=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 21972 invoked from network); 10 Sep 2012 13:38:20 -0000
+Received: from nat28.tlf.novell.com (HELO nat28.tlf.novell.com) (130.57.49.28)
+       by server-11.tower-21.messagelabs.com with SMTP;
+       10 Sep 2012 13:38:20 -0000
+Received: from EMEA1-MTA by nat28.tlf.novell.com
+       with Novell_GroupWise; Mon, 10 Sep 2012 14:38:18 +0100
+Message-Id: <504E0968020000780009A397@nat28.tlf.novell.com>
+X-Mailer: Novell GroupWise Internet Agent 12.0.0 
+Date: Mon, 10 Sep 2012 14:38:16 +0100
+From: "Jan Beulich" <JBeulich@suse.com>
+To: "Julien Grall" <julien.grall@citrix.com>
+References: <cover.1345552068.git.julien.grall@citrix.com>
+       <c378b04ee29071c1d6d68bd3ef48fedadb493b10.1345552068.git.julien.grall@citrix.com>
+       <5035E986020000780008A617@nat28.tlf.novell.com>
+       <50360B81.2070402@citrix.com>
+       <5037AE20020000780008A7A8@nat28.tlf.novell.com>
+       <504DE4EF.5070004@citrix.com>
+       <504E0600020000780009A37F@nat28.tlf.novell.com>
+       <504DECBF.2000306@citrix.com>
+In-Reply-To: <504DECBF.2000306@citrix.com>
+Mime-Version: 1.0
+Content-Disposition: inline
+Cc: "christian.limpach@gmail.com" <christian.limpach@gmail.com>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.6 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [XEN][RFC PATCH V2 05/17] hvm: Modify hvm_op
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+>>> On 10.09.12 at 15:35, Julien Grall <julien.grall@citrix.com> wrote:
+> On 09/10/2012 02:23 PM, Jan Beulich wrote:
+>>>>> On 10.09.12 at 15:02, Julien Grall<julien.grall@citrix.com>  wrote:
+>>>>>          
+>>> On 08/24/2012 04:38 PM, Jan Beulich wrote:
+>>>      
+>>>>>>> On 23.08.12 at 12:52, Julien Grall<julien.grall@citrix.com>   wrote:
+>>>>>>>
+>>>>>>>              
+>>>>> On 08/23/2012 08:27 AM, Jan Beulich wrote:
+>>>>>
+>>>>>          
+>>>>>>> switch ( a.index )
+>>>>>>> {
+>>>>>>> -            case HVM_PARAM_IOREQ_PFN:
+>>>>>>>
+>>>>>>>
+>>>>>>>              
+>>>>>> Removing sub-ops which a domain can issue for itself (which for this and
+>>>>>> another one below appears to be the case) is not allowed.
+>>>>>>
+>>>>>>
+>>>>>>            
+>>>>> I removed these 3 sub-ops because it will not work with
+>>>>> QEMU disaggregation. Shared pages and event channel
+>>>>> for IO request are private for each device model.
+>>>>>
+>>>>>          
+>>>> Then they need to be made inaccessible for that specific setup, not
+>>>> removed altogether.
+>>>>
+>>>>
+>>>>        
+>>> What do you mean by specific feature ?
+>>> With this patch series, you are able to handle one or more
+>>> QEMU.
+>>> Keep a compatibility with the old IO emulation is hard.
+>>>      
+>> Did you read my original reply? Code backing operations that a
+>> guest can issue itself (i.e. without qemu or another host side
+>> component involved) just can't be removed, as you/we have
+>> no control over which guest(s) may be making use of that
+>> functionality.
+>>    
+> 
+> Ah ok misundertanding of my part. I don't really understand
+> in which case a domain needs to retrieve its ioreq page.
+> How can I made it inaccessible ? Just rc = -EINVAL ?
+
+Probably, but you'd better talk to whoever added that code
+(including to determine whether this by mistake was left guest
+invokable).
+
+Jan
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<50535AFA020000780009B7C4@nat28.tlf.novell.com> b/config/examples/test/corpus/<50535AFA020000780009B7C4@nat28.tlf.novell.com>
new file mode 100644 (file)
index 0000000..b043347
--- /dev/null
@@ -0,0 +1,102 @@
+From xen-devel-bounces@lists.xen.org Fri Sep 14 15:31:05 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 14 Sep 2012 15:31:05 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TCWv6-0005cJ-DX
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 14 Sep 2012 15:31:05 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TCWr1-00084H-J6; Fri, 14 Sep 2012 14:26:47 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <JBeulich@suse.com>) id 1TCWqz-00084A-Nb
+       for xen-devel@lists.xensource.com; Fri, 14 Sep 2012 14:26:45 +0000
+Received: from [85.158.139.211:48826] by server-7.bemta-5.messagelabs.com id
+       F9/E0-19703-4AE33505; Fri, 14 Sep 2012 14:26:44 +0000
+X-Env-Sender: JBeulich@suse.com
+X-Msg-Ref: server-4.tower-206.messagelabs.com!1347632804!18598530!1
+X-Originating-IP: [130.57.49.28]
+X-SpamReason: No, hits=0.0 required=7.0 tests=
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 28962 invoked from network); 14 Sep 2012 14:26:44 -0000
+Received: from nat28.tlf.novell.com (HELO nat28.tlf.novell.com) (130.57.49.28)
+       by server-4.tower-206.messagelabs.com with SMTP;
+       14 Sep 2012 14:26:44 -0000
+Received: from EMEA1-MTA by nat28.tlf.novell.com
+       with Novell_GroupWise; Fri, 14 Sep 2012 15:26:43 +0100
+Message-Id: <50535AFA020000780009B7C4@nat28.tlf.novell.com>
+X-Mailer: Novell GroupWise Internet Agent 12.0.0 
+Date: Fri, 14 Sep 2012 15:27:38 +0100
+From: "Jan Beulich" <JBeulich@suse.com>
+To: "Ian Campbell" <Ian.Campbell@citrix.com>,
+       "Stefano Stabellini" <Stefano.Stabellini@eu.citrix.com>
+References: <alpine.DEB.2.02.1208221159560.15568@kaball.uk.xensource.com>
+       <1345633688-31684-1-git-send-email-stefano.stabellini@eu.citrix.com>
+       <1347627587.24226.192.camel@zakaz.uk.xensource.com>
+       <1347628660.24226.197.camel@zakaz.uk.xensource.com>
+       <1347630442.24226.211.camel@zakaz.uk.xensource.com>
+       <1347630971.24226.214.camel@zakaz.uk.xensource.com>
+In-Reply-To: <1347630971.24226.214.camel@zakaz.uk.xensource.com>
+Mime-Version: 1.0
+Content-Disposition: inline
+Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
+       "Tim\(Xen.org\)" <tim@xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.7 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH v4 1/6] xen: improve changes to
+ xen_add_to_physmap
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+>>> On 14.09.12 at 15:56, Ian Campbell <Ian.Campbell@citrix.com> wrote:
+>> > > Might we prefer to have a batched version of this call? I don't think
+>> > > we can shoehorn the necessary fields into xen_add_to_physmap_t though.
+>> > 
+>> > Actually, talking about this we Stefano we think we can. Since both idx
+>> > and gpfn are unsigned longs they can become unions with a GUEST_HANDLE
+>> > without changing the ABI on x86_32 or x86_64.
+> 
+> Except we need both foreign_domid and size, which currently overlap, and
+> there's no other spare bits. Damn.
+> 
+> Looks like XENMEM_add_to_physmap_range is the only option :-(
+
+You could use the first entry in each array to specify the counts,
+which would at once allow mixed granularity on each list (should
+that ever turn out useful); initially you would certainly want both
+counts to match.
+
+Jan
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<505AEB2D020000780009C81F@nat28.tlf.novell.com> b/config/examples/test/corpus/<505AEB2D020000780009C81F@nat28.tlf.novell.com>
new file mode 100644 (file)
index 0000000..44ab37b
--- /dev/null
@@ -0,0 +1,133 @@
+From xen-devel-bounces@lists.xen.org Thu Sep 20 09:12:26 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 20 Sep 2012 09:12:26 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TEbrx-0001T8-AJ
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 20 Sep 2012 09:12:26 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TEboH-0001QD-UD; Thu, 20 Sep 2012 08:08:33 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <JBeulich@suse.com>) id 1TEboF-0001Pr-O4
+       for xen-devel@lists.xen.org; Thu, 20 Sep 2012 08:08:31 +0000
+Received: from [85.158.139.211:25957] by server-10.bemta-5.messagelabs.com id
+       11/6D-10969-AFECA505; Thu, 20 Sep 2012 08:08:26 +0000
+X-Env-Sender: JBeulich@suse.com
+X-Msg-Ref: server-14.tower-206.messagelabs.com!1348128505!19220938!1
+X-Originating-IP: [130.57.49.28]
+X-SpamReason: No, hits=0.0 required=7.0 tests=
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 12651 invoked from network); 20 Sep 2012 08:08:25 -0000
+Received: from nat28.tlf.novell.com (HELO nat28.tlf.novell.com) (130.57.49.28)
+       by server-14.tower-206.messagelabs.com with SMTP;
+       20 Sep 2012 08:08:25 -0000
+Received: from EMEA1-MTA by nat28.tlf.novell.com
+       with Novell_GroupWise; Thu, 20 Sep 2012 09:08:24 +0100
+Message-Id: <505AEB2D020000780009C81F@nat28.tlf.novell.com>
+X-Mailer: Novell GroupWise Internet Agent 12.0.0 
+Date: Thu, 20 Sep 2012 09:08:45 +0100
+From: "Jan Beulich" <JBeulich@suse.com>
+To: "Jeremy Fitzhardinge" <jeremy@goop.org>,
+       "Konrad Rzeszutek Wilk" <konrad.wilk@oracle.com>, <ehabkost@redhat.com>
+References: <7914B38A4445B34AA16EB9F1352942F1012F0F6F4B98@SJCPMAILBOX01.citrite.net>
+       <CC681CDD.3D966%keir.xen@gmail.com>
+       <40501859.20120902104331@eikelenboom.it>
+       <5044849002000078000982EA@nat28.tlf.novell.com>
+       <4610648186.20120904090841@eikelenboom.it>
+       <5045CDF302000078000985FB@nat28.tlf.novell.com>
+       <4710608674.20120904101330@eikelenboom.it> 
+In-Reply-To: 
+Mime-Version: 1.0
+Content-Disposition: inline
+Cc: "wei.wang2@amd.com" <wei.wang2@amd.com>,
+       Sander Eikelenboom <linux@eikelenboom.it>,
+       Keir Fraser <keir.xen@gmail.com>, Santosh Jodh <Santosh.Jodh@citrix.com>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.7 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] Using debug-key 'o:  Dump IOMMU p2m table,
+ locks up machine
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+Ping?
+
+>>> On 04.09.12 at 11:26, Jan Beulich wrote:
+>>>> On 04.09.12 at 10:13, Sander Eikelenboom <linux@eikelenboom.it> wrote:
+> > Hmm don't know how to get the file/line, only thing i have found is:
+> > 
+> > serveerstertje:/boot# gdb xen-syms-4.2.0-rc4-pre
+> > GNU gdb (GDB) 7.0.1-debian
+> > Copyright (C) 2009 Free Software Foundation, Inc.
+> > License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
+> > This is free software: you are free to change and redistribute it.
+> > There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
+> > and "show warranty" for details.
+> > This GDB was configured as "x86_64-linux-gnu".
+> > For bug reporting instructions, please see:
+> > <http://www.gnu.org/software/gdb/bugs/>...
+> > Reading symbols from /boot/xen-syms-4.2.0-rc4-pre...done.
+> > (gdb) x/i 0xffff82c48015c9ee
+> > 0xffff82c48015c9ee <context_switch+916>:        mov    %edx,%gs
+> > (gdb)
+> 
+> I'm not really a gdb expert, so I don't know off the top of my
+> head either. I thought I said in a previous reply that people
+> generally appear to use the addr2line utility for that purpose.
+> 
+> But the disassembly already tells us where precisely the
+> problem is: The selector value (0x0063) attempted to be put
+> into %gs is apparently wrong in the context of the current
+> GDT. Now, that's GDT_ENTRY_TLS_MIN on the Linux side,
+> and ought to be valid. I'm surprised the guest (and the current
+> process in it) survives this (as the failure here results in a failsafe
+> callback into the guest).
+> 
+> Looking at the Linux side of things, this has been that way
+> forever, and I think has always been broken: On x86-64, it
+> should also clear %gs here (since 32-bit processes use it for
+> their TLS, and there's nothing wrong for a 64-bit process to put
+> something in there either), albeit not via loadsegment(), but
+> through xen_load_gs_index(). And I neither see why on 32-bit
+> it only clears %gs - %fs can as much hold a selector that might
+> get invalidated with the TLS descriptor updates. Eduardo,
+> Jeremy, Konrad?
+> 
+> Jan
+> 
+
+
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<50661622.5030302@goop.org> b/config/examples/test/corpus/<50661622.5030302@goop.org>
new file mode 100644 (file)
index 0000000..0854cc4
--- /dev/null
@@ -0,0 +1,146 @@
+From xen-devel-bounces@lists.xen.org Fri Sep 28 22:32:48 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 28 Sep 2012 22:32:48 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1THiAv-0006i2-HK
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 28 Sep 2012 22:32:48 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1THi5Z-0004IF-9q; Fri, 28 Sep 2012 21:27:13 +0000
+Received: from mail27.messagelabs.com ([193.109.254.147])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <jeremy@goop.org>) id 1THi5Y-0004I7-9j
+       for xen-devel@lists.xen.org; Fri, 28 Sep 2012 21:27:12 +0000
+X-Env-Sender: jeremy@goop.org
+X-Msg-Ref: server-10.tower-27.messagelabs.com!1348867624!7584604!1
+X-Originating-IP: [74.207.240.146]
+X-SpamReason: No, hits=0.0 required=7.0 tests=
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 26612 invoked from network); 28 Sep 2012 21:27:05 -0000
+Received: from claw.goop.org (HELO claw.goop.org) (74.207.240.146)
+       by server-10.tower-27.messagelabs.com with DHE-RSA-AES256-SHA encrypted
+       SMTP; 28 Sep 2012 21:27:05 -0000
+Received: from saboo.goop.org (50-76-62-73-ip-static.hfc.comcastbusiness.net
+       [50.76.62.73])
+       (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits))
+       (No client certificate requested) (Authenticated sender: smtp-saboo)
+       by claw.goop.org (Postfix) with ESMTPSA id 964C39481;
+       Fri, 28 Sep 2012 14:27:01 -0700 (PDT)
+Received: from saboo.goop.org (localhost [IPv6:::1])
+       by saboo.goop.org (Postfix) with ESMTP id 6EF2F20155;
+       Fri, 28 Sep 2012 14:26:58 -0700 (PDT)
+Message-ID: <50661622.5030302@goop.org>
+Date: Fri, 28 Sep 2012 14:26:58 -0700
+From: Jeremy Fitzhardinge <jeremy@goop.org>
+User-Agent: Mozilla/5.0 (X11; Linux x86_64;
+       rv:15.0) Gecko/20120911 Thunderbird/15.0.1
+MIME-Version: 1.0
+To: Jan Beulich <JBeulich@suse.com>
+References: <7914B38A4445B34AA16EB9F1352942F1012F0F6F4B98@SJCPMAILBOX01.citrite.net>
+       <CC681CDD.3D966%keir.xen@gmail.com>
+       <40501859.20120902104331@eikelenboom.it>
+       <5044849002000078000982EA@nat28.tlf.novell.com>
+       <4610648186.20120904090841@eikelenboom.it>
+       <5045CDF302000078000985FB@nat28.tlf.novell.com>
+       <4710608674.20120904101330@eikelenboom.it>
+       <505AEB2D020000780009C81F@nat28.tlf.novell.com>
+In-Reply-To: <505AEB2D020000780009C81F@nat28.tlf.novell.com>
+X-Enigmail-Version: 1.4.4
+Cc: ehabkost@redhat.com, Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
+       "wei.wang2@amd.com" <wei.wang2@amd.com>,
+       Sander Eikelenboom <linux@eikelenboom.it>,
+       Keir Fraser <keir.xen@gmail.com>, Santosh Jodh <Santosh.Jodh@citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-5.0 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] Using debug-key 'o:  Dump IOMMU p2m table,
+ locks up machine
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On 09/20/2012 01:08 AM, Jan Beulich wrote:
+> Ping?
+
+I've been meaning to work up a reply, but I haven't had time to swap in
+all the context again.
+
+    J
+
+>
+>>>> On 04.09.12 at 11:26, Jan Beulich wrote:
+>>>>> On 04.09.12 at 10:13, Sander Eikelenboom <linux@eikelenboom.it> wrote:
+>>> Hmm don't know how to get the file/line, only thing i have found is:
+>>>
+>>> serveerstertje:/boot# gdb xen-syms-4.2.0-rc4-pre
+>>> GNU gdb (GDB) 7.0.1-debian
+>>> Copyright (C) 2009 Free Software Foundation, Inc.
+>>> License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
+>>> This is free software: you are free to change and redistribute it.
+>>> There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
+>>> and "show warranty" for details.
+>>> This GDB was configured as "x86_64-linux-gnu".
+>>> For bug reporting instructions, please see:
+>>> <http://www.gnu.org/software/gdb/bugs/>...
+>>> Reading symbols from /boot/xen-syms-4.2.0-rc4-pre...done.
+>>> (gdb) x/i 0xffff82c48015c9ee
+>>> 0xffff82c48015c9ee <context_switch+916>:        mov    %edx,%gs
+>>> (gdb)
+>> I'm not really a gdb expert, so I don't know off the top of my
+>> head either. I thought I said in a previous reply that people
+>> generally appear to use the addr2line utility for that purpose.
+>>
+>> But the disassembly already tells us where precisely the
+>> problem is: The selector value (0x0063) attempted to be put
+>> into %gs is apparently wrong in the context of the current
+>> GDT. Now, that's GDT_ENTRY_TLS_MIN on the Linux side,
+>> and ought to be valid. I'm surprised the guest (and the current
+>> process in it) survives this (as the failure here results in a failsafe
+>> callback into the guest).
+>>
+>> Looking at the Linux side of things, this has been that way
+>> forever, and I think has always been broken: On x86-64, it
+>> should also clear %gs here (since 32-bit processes use it for
+>> their TLS, and there's nothing wrong for a 64-bit process to put
+>> something in there either), albeit not via loadsegment(), but
+>> through xen_load_gs_index(). And I neither see why on 32-bit
+>> it only clears %gs - %fs can as much hold a selector that might
+>> get invalidated with the TLS descriptor updates. Eduardo,
+>> Jeremy, Konrad?
+>>
+>> Jan
+>>
+>
+>
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<506C47BD020000780008D01A@nat28.tlf.novell.com> b/config/examples/test/corpus/<506C47BD020000780008D01A@nat28.tlf.novell.com>
new file mode 100644 (file)
index 0000000..3764d15
--- /dev/null
@@ -0,0 +1,114 @@
+From xen-devel-bounces@lists.xen.org Wed Oct 03 14:16:43 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 03 Oct 2012 14:16:43 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TJOoX-0005zN-JN
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 03 Oct 2012 14:16:43 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TJOkb-0003zs-OH; Wed, 03 Oct 2012 13:12:33 +0000
+Received: from mail27.messagelabs.com ([193.109.254.147])
+       by lists.xen.org with smtp (Exim 4.72)
+       (envelope-from <jbeulich@suse.com>) id 1TJOka-0003zm-3V
+       for xen-devel@lists.xen.org; Wed, 03 Oct 2012 13:12:32 +0000
+X-Env-Sender: jbeulich@suse.com
+X-Msg-Ref: server-13.tower-27.messagelabs.com!1349269935!8605637!1
+X-Originating-IP: [130.57.49.28]
+X-SpamReason: No, hits=0.5 required=7.0 tests=BODY_RANDOM_LONG
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 16291 invoked from network); 3 Oct 2012 13:12:19 -0000
+Received: from nat28.tlf.novell.com (HELO nat28.tlf.novell.com) (130.57.49.28)
+       by server-13.tower-27.messagelabs.com with SMTP;
+       3 Oct 2012 13:12:19 -0000
+Received: from EMEA1-MTA by nat28.tlf.novell.com
+       with Novell_GroupWise; Wed, 03 Oct 2012 14:12:15 +0100
+Message-Id: <506C47BD020000780008D01A@nat28.tlf.novell.com>
+X-Mailer: Novell GroupWise Internet Agent 12.0.0 
+Date: Wed, 03 Oct 2012 14:12:13 +0100
+From: "Jan Beulich" <jbeulich@suse.com>
+To: <konrad.wilk@oracle.com>
+References: <7914B38A4445B34AA16EB9F1352942F1012F0F6F4B98@SJCPMAILBOX01.citrite.net>
+       <CC681CDD.3D966%keir.xen@gmail.com>
+       <40501859.20120902104331@eikelenboom.it>
+       <5044849002000078000982EA@nat28.tlf.novell.com>
+       <4610648186.20120904090841@eikelenboom.it>
+       <5045CDF302000078000985FB@nat28.tlf.novell.com>
+       <4710608674.20120904101330@eikelenboom.it>
+       <5045E55A02000078000986E4@nat28.tlf.novell.com>
+       <20121002200907.GC668@phenom.dumpdata.com>
+In-Reply-To: <20121002200907.GC668@phenom.dumpdata.com>
+Mime-Version: 1.0
+Content-Disposition: inline
+Cc: jeremy@goop.org, ehabkost@redhat.com, xen-devel@lists.xen.org,
+       wei.wang2@amd.com, linux@eikelenboom.it, keir.xen@gmail.com,
+       Santosh.Jodh@citrix.com
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] Using debug-key 'o:  Dump IOMMU p2m table,
+ locks up machine
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+>>> Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> 10/02/12 10:21 PM >>>
+>On Tue, Sep 04, 2012 at 10:26:18AM +0100, Jan Beulich wrote:
+>> But the disassembly already tells us where precisely the
+>> problem is: The selector value (0x0063) attempted to be put
+>> into %gs is apparently wrong in the context of the current
+>> GDT. Now, that's GDT_ENTRY_TLS_MIN on the Linux side,
+>> and ought to be valid. I'm surprised the guest (and the current
+>> process in it) survives this (as the failure here results in a failsafe
+>> callback into the guest).
+>> 
+>> Looking at the Linux side of things, this has been that way
+>> forever, and I think has always been broken: On x86-64, it
+>> should also clear %gs here (since 32-bit processes use it for
+>> their TLS, and there's nothing wrong for a 64-bit process to put
+>> something in there either), albeit not via loadsegment(), but
+>> through xen_load_gs_index(). And I neither see why on 32-bit
+>> it only clears %gs - %fs can as much hold a selector that might
+>> get invalidated with the TLS descriptor updates. Eduardo,
+>> Jeremy, Konrad?
+>
+>How is it on the SLES side? Do you set/restore all of the segment
+>registers?
+
+I think so (don't have the sources around at home to check), but that's
+not the point. What absolutely has to happen is the _clearing_ of the
+selector registers before switching descriptor tables (even if done via
+multicall, as the hypervisor may restore guest state between any two
+pieces of a multicall set).
+
+Jan
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<506D5A53020000780009F8B7@nat28.tlf.novell.com> b/config/examples/test/corpus/<506D5A53020000780009F8B7@nat28.tlf.novell.com>
new file mode 100644 (file)
index 0000000..5b552a1
--- /dev/null
@@ -0,0 +1,116 @@
+From xen-devel-bounces@lists.xen.org Thu Oct 04 08:49:17 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 04 Oct 2012 08:49:17 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TJgAy-0005c4-Lo
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 04 Oct 2012 08:49:17 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TJg69-0001dD-9n; Thu, 04 Oct 2012 07:43:57 +0000
+Received: from mail27.messagelabs.com ([193.109.254.147])
+       by lists.xen.org with smtp (Exim 4.72)
+       (envelope-from <JBeulich@suse.com>) id 1TJg67-0001d8-K3
+       for xen-devel@lists.xensource.com; Thu, 04 Oct 2012 07:43:55 +0000
+X-Env-Sender: JBeulich@suse.com
+X-Msg-Ref: server-7.tower-27.messagelabs.com!1349336629!5714747!1
+X-Originating-IP: [130.57.49.28]
+X-SpamReason: No, hits=0.0 required=7.0 tests=
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 25409 invoked from network); 4 Oct 2012 07:43:49 -0000
+Received: from nat28.tlf.novell.com (HELO nat28.tlf.novell.com) (130.57.49.28)
+       by server-7.tower-27.messagelabs.com with SMTP;
+       4 Oct 2012 07:43:49 -0000
+Received: from EMEA1-MTA by nat28.tlf.novell.com
+       with Novell_GroupWise; Thu, 04 Oct 2012 08:43:48 +0100
+Message-Id: <506D5A53020000780009F8B7@nat28.tlf.novell.com>
+X-Mailer: Novell GroupWise Internet Agent 12.0.0 
+Date: Thu, 04 Oct 2012 08:43:47 +0100
+From: "Jan Beulich" <JBeulich@suse.com>
+To: "Stefano Stabellini" <Stefano.Stabellini@eu.citrix.com>
+References: <alpine.DEB.2.02.1210031431080.29232@kaball.uk.xensource.com>
+       <1349272182.650.150.camel@zakaz.uk.xensource.com>
+       <alpine.DEB.2.02.1210031450220.29232@kaball.uk.xensource.com>
+       <1349272482.650.151.camel@zakaz.uk.xensource.com>
+       <20121003141116.GA10633@phenom.dumpdata.com>
+       <1349276431.650.156.camel@zakaz.uk.xensource.com>
+       <alpine.DEB.2.02.1210031641050.29232@kaball.uk.xensource.com>
+       <1349279862.650.171.camel@zakaz.uk.xensource.com>
+       <alpine.DEB.2.02.1210031658120.29232@kaball.uk.xensource.com>
+       <1349280814.650.178.camel@zakaz.uk.xensource.com>
+       <1349282492.650.185.camel@zakaz.uk.xensource.com>
+       <alpine.DEB.2.02.1210031807340.29232@kaball.uk.xensource.com>
+In-Reply-To: <alpine.DEB.2.02.1210031807340.29232@kaball.uk.xensource.com>
+Mime-Version: 1.0
+Content-Disposition: inline
+Cc: "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
+       "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
+       Ian Campbell <Ian.Campbell@citrix.com>,
+       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH] xen/xen_initial_domain: check that
+ xen_start_info is initialized
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+>>> On 03.10.12 at 19:08, Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+wrote:
+> Since commit commit 4c071ee5268f7234c3d084b6093bebccc28cdcba ("arm:
+> initial Xen support") PV on HVM guests can be xen_initial_domain.
+> However PV on HVM guests might have an unitialized xen_start_info, so
+> check before accessing its fields.
+> 
+> Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+> Acked-by: Ian Campbell <Ian.Campbell@citrix.com>
+> Reported-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+> 
+> diff --git a/include/xen/xen.h b/include/xen/xen.h
+> index 9a39ca5..e7101bb 100644
+> --- a/include/xen/xen.h
+> +++ b/include/xen/xen.h
+> @@ -28,7 +28,7 @@ extern enum xen_domain_type xen_domain_type;
+>  #include <asm/xen/hypervisor.h>
+>  
+>  #define xen_initial_domain()        (xen_domain() && \
+> -                             xen_start_info->flags & SIF_INITDOMAIN)
+> +                             xen_start_info && xen_start_info->flags & SIF_INITDOMAIN)
+>  #else  /* !CONFIG_XEN_DOM0 */
+>  #define xen_initial_domain()        (0)
+>  #endif      /* CONFIG_XEN_DOM0 */
+
+Didn't your other patch statically initialize it?
+
+Jan
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<507822ED.2090900@citrix.com> b/config/examples/test/corpus/<507822ED.2090900@citrix.com>
new file mode 100644 (file)
index 0000000..ee89ba6
--- /dev/null
@@ -0,0 +1,252 @@
+From xen-devel-bounces@lists.xen.org Fri Oct 12 15:06:57 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 12 Oct 2012 15:06:57 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TMft5-00028J-2E
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 12 Oct 2012 15:06:57 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TMfou-0001Nf-Vg; Fri, 12 Oct 2012 14:02:32 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <david.vrabel@citrix.com>) id 1TMfot-0001NZ-Cg
+       for xen-devel@lists.xen.org; Fri, 12 Oct 2012 14:02:31 +0000
+Received: from [85.158.139.211:22884] by server-15.bemta-5.messagelabs.com id
+       52/28-27811-6F228705; Fri, 12 Oct 2012 14:02:30 +0000
+X-Env-Sender: david.vrabel@citrix.com
+X-Msg-Ref: server-11.tower-206.messagelabs.com!1350050548!22096289!1
+X-Originating-IP: [66.165.176.89]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNzYwMjI=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 28012 invoked from network); 12 Oct 2012 14:02:29 -0000
+Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
+       by server-11.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
+       12 Oct 2012 14:02:29 -0000
+X-IronPort-AV: E=Sophos;i="4.80,576,1344211200"; d="scan'208";a="41030540"
+Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
+       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       12 Oct 2012 14:02:23 +0000
+Received: from [10.80.2.76] (10.80.2.76) by FTLPMAILMX02.citrite.net
+       (10.13.107.66) with Microsoft SMTP Server id 8.3.279.1; Fri, 12 Oct 2012
+       10:02:23 -0400
+Message-ID: <507822ED.2090900@citrix.com>
+Date: Fri, 12 Oct 2012 15:02:21 +0100
+From: David Vrabel <david.vrabel@citrix.com>
+User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US;
+       rv:1.9.1.16) Gecko/20120428 Iceowl/1.0b1 Icedove/3.0.11
+MIME-Version: 1.0
+To: Konrad Rzeszutek Wilk <konrad@kernel.org>
+References: <1350046634-2462-1-git-send-email-david.vrabel@citrix.com>
+       <1350046634-2462-4-git-send-email-david.vrabel@citrix.com>
+       <20121012134147.GA11778@phenom.dumpdata.com>
+In-Reply-To: <20121012134147.GA11778@phenom.dumpdata.com>
+Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 3/3] xen/privcmd: add
+ IOCTL_PRIVCMD_SYNC_WALLCLOCK to sync Xen's wallclock
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On 12/10/12 14:41, Konrad Rzeszutek Wilk wrote:
+> On Fri, Oct 12, 2012 at 01:57:14PM +0100, David Vrabel wrote:
+>> From: David Vrabel <david.vrabel@citrix.com>
+>>
+>> Add a new ioctl to synchronize Xen's wallclock with the current system
+>> time.
+>>
+>> This may be used by the tools to ensure that newly created domains see
+>> the correct wallclock time if NTP is not used in dom0 or if domains
+>> are started before NTP has synchronized.
+> 
+> So... how does this work with NTPD? As in does ntpd _not_ update the
+> hwclock enough?
+
+Once NTPD is synchronized then the kernel updates the wallclock (and the
+RTC with patch #1) every 11 mins.  I assume this is often enough given
+how NTP adjusts the system time.
+
+You only really need the tools to sync wallclock if system time was
+stepped at start of day.  e.g., init scripts could do something like:
+
+ntpdate pool.ntp.org
+hwclock --systohc
+xen-wallclock --systowc
+
+David
+
+>> Signed-off-by: David Vrabel <david.vrabel@citrix.com>
+>> ---
+>>  arch/x86/xen/time.c   |   25 ++++++++++++++++++-------
+>>  drivers/xen/privcmd.c |   12 ++++++++++++
+>>  include/xen/privcmd.h |    8 ++++++++
+>>  include/xen/xen-ops.h |    2 ++
+>>  4 files changed, 40 insertions(+), 7 deletions(-)
+>>
+>> diff --git a/arch/x86/xen/time.c b/arch/x86/xen/time.c
+>> index 11770d0..d481ac9 100644
+>> --- a/arch/x86/xen/time.c
+>> +++ b/arch/x86/xen/time.c
+>> @@ -8,6 +8,7 @@
+>>   * Jeremy Fitzhardinge <jeremy@xensource.com>, XenSource Inc, 2007
+>>   */
+>>  #include <linux/kernel.h>
+>> +#include <linux/export.h>
+>>  #include <linux/interrupt.h>
+>>  #include <linux/clocksource.h>
+>>  #include <linux/clockchips.h>
+>> @@ -192,6 +193,19 @@ static void xen_read_wallclock(struct timespec *ts)
+>>     put_cpu_var(xen_vcpu);
+>>  }
+>>  
+>> +int xen_write_wallclock(const struct timespec *ts)
+>> +{
+>> +   struct xen_platform_op op;
+>> +
+>> +   op.cmd = XENPF_settime;
+>> +   op.u.settime.secs = ts->tv_sec;
+>> +   op.u.settime.nsecs = ts->tv_nsec;
+>> +   op.u.settime.system_time = xen_clocksource_read();
+>> +
+>> +   return HYPERVISOR_dom0_op(&op);
+>> +}
+>> +EXPORT_SYMBOL_GPL(xen_write_wallclock);
+>> +
+>>  static unsigned long xen_get_wallclock(void)
+>>  {
+>>     struct timespec ts;
+>> @@ -202,7 +216,7 @@ static unsigned long xen_get_wallclock(void)
+>>  
+>>  static int xen_set_wallclock(unsigned long now)
+>>  {
+>> -   struct xen_platform_op op;
+>> +   struct timespec ts;
+>>     int rc;
+>>  
+>>     /* do nothing for domU */
+>> @@ -218,12 +232,9 @@ static int xen_set_wallclock(unsigned long now)
+>>      * update_persistent_wallclock() is called ~500 ms after 'now'
+>>      * so add an extra 500 ms.
+>>      */
+>> -   op.cmd = XENPF_settime;
+>> -   op.u.settime.secs = now;
+>> -   op.u.settime.nsecs = NSEC_PER_SEC / 2;
+>> -   op.u.settime.system_time = xen_clocksource_read();
+>> -
+>> -   rc = HYPERVISOR_dom0_op(&op);
+>> +   ts.tv_sec = now;
+>> +   ts.tv_nsec = NSEC_PER_SEC / 2;
+>> +   rc = xen_write_wallclock(&ts);
+>>     WARN(rc != 0, "XENPF_settime failed: now=%ld\n", now);
+>>  
+>>     return rc;
+>> diff --git a/drivers/xen/privcmd.c b/drivers/xen/privcmd.c
+>> index ccee0f1..ed2caf3 100644
+>> --- a/drivers/xen/privcmd.c
+>> +++ b/drivers/xen/privcmd.c
+>> @@ -338,6 +338,14 @@ out:
+>>     return ret;
+>>  }
+>>  
+>> +static long privcmd_ioctl_sync_wallclock(void)
+>> +{
+>> +   struct timespec ts;
+>> +
+>> +   getnstimeofday(&ts);
+>> +   return xen_write_wallclock(&ts);
+>> +}
+>> +
+>>  static long privcmd_ioctl(struct file *file,
+>>                       unsigned int cmd, unsigned long data)
+>>  {
+>> @@ -357,6 +365,10 @@ static long privcmd_ioctl(struct file *file,
+>>             ret = privcmd_ioctl_mmap_batch(udata);
+>>             break;
+>>  
+>> +   case IOCTL_PRIVCMD_SYNC_WALLCLOCK:
+>> +           ret = privcmd_ioctl_sync_wallclock();
+>> +           break;
+>> +
+>>     default:
+>>             ret = -EINVAL;
+>>             break;
+>> diff --git a/include/xen/privcmd.h b/include/xen/privcmd.h
+>> index 17857fb..d17d087 100644
+>> --- a/include/xen/privcmd.h
+>> +++ b/include/xen/privcmd.h
+>> @@ -66,6 +66,12 @@ struct privcmd_mmapbatch {
+>>   * @cmd: IOCTL_PRIVCMD_HYPERCALL
+>>   * @arg: &privcmd_hypercall_t
+>>   * Return: Value returned from execution of the specified hypercall.
+>> + *
+>> + * @cmd: IOCTL_PRIVCMD_SYNC_WALLCLOCK
+>> + * @arg: Unused.
+>> + * Synchronizes the Xen wallclock with the current system time.
+>> + * Return: 0 on success, or -1 on error with errno set to EPERM or
+>> + * EACCES.
+>>   */
+>>  #define IOCTL_PRIVCMD_HYPERCALL                                    \
+>>     _IOC(_IOC_NONE, 'P', 0, sizeof(struct privcmd_hypercall))
+>> @@ -73,5 +79,7 @@ struct privcmd_mmapbatch {
+>>     _IOC(_IOC_NONE, 'P', 2, sizeof(struct privcmd_mmap))
+>>  #define IOCTL_PRIVCMD_MMAPBATCH                                    \
+>>     _IOC(_IOC_NONE, 'P', 3, sizeof(struct privcmd_mmapbatch))
+>> +#define IOCTL_PRIVCMD_SYNC_WALLCLOCK                               \
+>> +   _IOC(_IOC_NONE, 'P', 5, 0)
+>>  
+>>  #endif /* __LINUX_PUBLIC_PRIVCMD_H__ */
+>> diff --git a/include/xen/xen-ops.h b/include/xen/xen-ops.h
+>> index 6a198e4..eefed22 100644
+>> --- a/include/xen/xen-ops.h
+>> +++ b/include/xen/xen-ops.h
+>> @@ -29,4 +29,6 @@ int xen_remap_domain_mfn_range(struct vm_area_struct *vma,
+>>                            unsigned long mfn, int nr,
+>>                            pgprot_t prot, unsigned domid);
+>>  
+>> +int xen_write_wallclock(const struct timespec *ts);
+>> +
+>>  #endif /* INCLUDE_XEN_OPS_H */
+>> -- 
+>> 1.7.2.5
+>>
+>>
+>> _______________________________________________
+>> Xen-devel mailing list
+>> Xen-devel@lists.xen.org
+>> http://lists.xen.org/xen-devel
+>>
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<5078304D.1050807@citrix.com> b/config/examples/test/corpus/<5078304D.1050807@citrix.com>
new file mode 100644 (file)
index 0000000..56d9c1e
--- /dev/null
@@ -0,0 +1,120 @@
+From xen-devel-bounces@lists.xen.org Fri Oct 12 16:05:35 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 12 Oct 2012 16:05:35 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TMgnp-0002Lt-Ps
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 12 Oct 2012 16:05:35 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TMgjJ-0002PA-T5; Fri, 12 Oct 2012 15:00:49 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <david.vrabel@citrix.com>) id 1TMgjH-0002P2-CW
+       for xen-devel@lists.xen.org; Fri, 12 Oct 2012 15:00:47 +0000
+Received: from [85.158.139.211:22483] by server-10.bemta-5.messagelabs.com id
+       9E/EF-06995-E9038705; Fri, 12 Oct 2012 15:00:46 +0000
+X-Env-Sender: david.vrabel@citrix.com
+X-Msg-Ref: server-13.tower-206.messagelabs.com!1350054044!18125570!1
+X-Originating-IP: [66.165.176.89]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNzYwMjI=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 3225 invoked from network); 12 Oct 2012 15:00:45 -0000
+Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
+       by server-13.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
+       12 Oct 2012 15:00:45 -0000
+X-IronPort-AV: E=Sophos;i="4.80,576,1344211200"; d="scan'208";a="41038810"
+Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
+       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       12 Oct 2012 14:59:27 +0000
+Received: from [10.80.2.76] (10.80.2.76) by FTLPMAILMX02.citrite.net
+       (10.13.107.66) with Microsoft SMTP Server id 8.3.279.1; Fri, 12 Oct 2012
+       10:59:26 -0400
+Message-ID: <5078304D.1050807@citrix.com>
+Date: Fri, 12 Oct 2012 15:59:25 +0100
+From: David Vrabel <david.vrabel@citrix.com>
+User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US;
+       rv:1.9.1.16) Gecko/20120428 Iceowl/1.0b1 Icedove/3.0.11
+MIME-Version: 1.0
+To: Konrad Rzeszutek Wilk <konrad@kernel.org>
+References: <1350046634-2462-1-git-send-email-david.vrabel@citrix.com> <1350046634-2462-4-git-send-email-david.vrabel@citrix.com>      <20121012134147.GA11778@phenom.dumpdata.com>    <507822ED.2090900@citrix.com>
+       <CACJDEmr3V71cSdV3+i-n7=wfOnDBza04Lk+6+B6Fyx7LhQrdEg@mail.gmail.com>
+In-Reply-To: <CACJDEmr3V71cSdV3+i-n7=wfOnDBza04Lk+6+B6Fyx7LhQrdEg@mail.gmail.com>
+Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
+       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 3/3] xen/privcmd: add
+ IOCTL_PRIVCMD_SYNC_WALLCLOCK to sync Xen's wallclock
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On 12/10/12 15:29, Konrad Rzeszutek Wilk wrote:
+> On Fri, Oct 12, 2012 at 10:02 AM, David Vrabel <david.vrabel@citrix.com> wrote:
+>> On 12/10/12 14:41, Konrad Rzeszutek Wilk wrote:
+>>> On Fri, Oct 12, 2012 at 01:57:14PM +0100, David Vrabel wrote:
+>>>> From: David Vrabel <david.vrabel@citrix.com>
+>>>>
+>>>> Add a new ioctl to synchronize Xen's wallclock with the current system
+>>>> time.
+>>>>
+>>>> This may be used by the tools to ensure that newly created domains see
+>>>> the correct wallclock time if NTP is not used in dom0 or if domains
+>>>> are started before NTP has synchronized.
+>>>
+>>> So... how does this work with NTPD? As in does ntpd _not_ update the
+>>> hwclock enough?
+>>
+>> Once NTPD is synchronized then the kernel updates the wallclock (and the
+>> RTC with patch #1) every 11 mins.  I assume this is often enough given
+>> how NTP adjusts the system time.
+>>
+>> You only really need the tools to sync wallclock if system time was
+>> stepped at start of day.  e.g., init scripts could do something like:
+>>
+>> ntpdate pool.ntp.org
+>> hwclock --systohc
+>> xen-wallclock --systowc
+> 
+> I think I am missing something. The hwclock should end up in the
+> xen_set_wallclock call. And from there on, the ntpd would update the
+> wallclock if it got skewed enough? Or is the system time not calling
+> the wall-clock enough? If that is the case, would just adding this in
+> the crontab be enough:
+
+hwclock talks to /dev/rtc which writes to the CMOS directly and does not
+call update_persistent_clock() (or xen_set_wallclock()).
+
+David
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<507841A4.8090108@citrix.com> b/config/examples/test/corpus/<507841A4.8090108@citrix.com>
new file mode 100644 (file)
index 0000000..38231e2
--- /dev/null
@@ -0,0 +1,126 @@
+From xen-devel-bounces@lists.xen.org Fri Oct 12 17:17:28 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 12 Oct 2012 17:17:28 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TMhvP-0002dl-EN
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 12 Oct 2012 17:17:28 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TMhre-0004WA-RK; Fri, 12 Oct 2012 16:13:30 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <david.vrabel@citrix.com>) id 1TMhrc-0004Vv-P3
+       for xen-devel@lists.xen.org; Fri, 12 Oct 2012 16:13:28 +0000
+Received: from [85.158.138.51:17379] by server-16.bemta-3.messagelabs.com id
+       F3/10-16565-8A148705; Fri, 12 Oct 2012 16:13:28 +0000
+X-Env-Sender: david.vrabel@citrix.com
+X-Msg-Ref: server-14.tower-174.messagelabs.com!1350058405!27829840!1
+X-Originating-IP: [66.165.176.89]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNzYwMjI=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 31009 invoked from network); 12 Oct 2012 16:13:27 -0000
+Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
+       by server-14.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
+       12 Oct 2012 16:13:27 -0000
+X-IronPort-AV: E=Sophos;i="4.80,576,1344211200"; d="scan'208";a="41049477"
+Received: from ftlpmailmx01.citrite.net ([10.13.107.65])
+       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       12 Oct 2012 16:13:25 +0000
+Received: from [10.80.2.76] (10.80.2.76) by FTLPMAILMX01.citrite.net
+       (10.13.107.65) with Microsoft SMTP Server id 8.3.279.1; Fri, 12 Oct 2012
+       12:13:25 -0400
+Message-ID: <507841A4.8090108@citrix.com>
+Date: Fri, 12 Oct 2012 17:13:24 +0100
+From: David Vrabel <david.vrabel@citrix.com>
+User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US;
+       rv:1.9.1.16) Gecko/20120428 Iceowl/1.0b1 Icedove/3.0.11
+MIME-Version: 1.0
+To: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+References: <1350046634-2462-1-git-send-email-david.vrabel@citrix.com>
+       <1350046634-2462-2-git-send-email-david.vrabel@citrix.com>
+       <20121012145716.GA20842@phenom.dumpdata.com>
+In-Reply-To: <20121012145716.GA20842@phenom.dumpdata.com>
+Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 1/3] xen: sync the CMOS RTC as well as the
+       Xen wallclock
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On 12/10/12 15:57, Konrad Rzeszutek Wilk wrote:
+> On Fri, Oct 12, 2012 at 01:57:12PM +0100, David Vrabel wrote:
+>> From: David Vrabel <david.vrabel@citrix.com>
+>>
+>> If NTP is used in dom0 and it is synchronized to its clock source,
+>> then the kernel will periodically synchronize the Xen wallclock with
+>> the system time.  Updates to the Xen wallclock do not persist across
+>> reboots, so also synchronize the CMOS RTC (as on bare metal).
+>>
+>> Signed-off-by: David Vrabel <david.vrabel@citrix.com>
+>> ---
+>>  arch/x86/xen/time.c |    5 +++++
+>>  1 files changed, 5 insertions(+), 0 deletions(-)
+>>
+>> diff --git a/arch/x86/xen/time.c b/arch/x86/xen/time.c
+>> index 0296a95..5e7f536 100644
+>> --- a/arch/x86/xen/time.c
+>> +++ b/arch/x86/xen/time.c
+>> @@ -14,6 +14,7 @@
+>>  #include <linux/kernel_stat.h>
+>>  #include <linux/math64.h>
+>>  #include <linux/gfp.h>
+>> +#include <linux/mc146818rtc.h>
+>>  
+>>  #include <asm/pvclock.h>
+>>  #include <asm/xen/hypervisor.h>
+>> @@ -208,6 +209,10 @@ static int xen_set_wallclock(unsigned long now)
+>>     if (!xen_initial_domain())
+>>             return -1;
+>>  
+>> +   /* Set the hardware RTC. */
+>> +   mach_set_rtc_mmss(now);
+> 
+> So how does this work? Is the hypervisor traping on the RTC CMOS clock?
+
+It's works the same as with the RTC driver.  I think the hypervisor
+allows dom0 access to the relevant I/O ports.
+
+It's worth pointing out that mach_set_rtc_mmss() only sets the minutes
+and seconds so it doesn't handle big step changes which is why
+update_persistent_clock() is only called once NTP is synchronized.
+
+David
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<507841D8.6090205@citrix.com> b/config/examples/test/corpus/<507841D8.6090205@citrix.com>
new file mode 100644 (file)
index 0000000..b15a76e
--- /dev/null
@@ -0,0 +1,147 @@
+From xen-devel-bounces@lists.xen.org Fri Oct 12 17:18:01 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 12 Oct 2012 17:18:01 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TMhvy-0002e9-UY
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 12 Oct 2012 17:18:01 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TMhsW-0004aW-9T; Fri, 12 Oct 2012 16:14:24 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <david.vrabel@citrix.com>) id 1TMhsU-0004aH-Jd
+       for xen-devel@lists.xen.org; Fri, 12 Oct 2012 16:14:22 +0000
+Received: from [85.158.143.35:8886] by server-2.bemta-4.messagelabs.com id
+       6E/84-25171-DD148705; Fri, 12 Oct 2012 16:14:21 +0000
+X-Env-Sender: david.vrabel@citrix.com
+X-Msg-Ref: server-16.tower-21.messagelabs.com!1350058458!13761503!1
+X-Originating-IP: [66.165.176.63]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyODIwNTA=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 26994 invoked from network); 12 Oct 2012 16:14:20 -0000
+Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
+       by server-16.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
+       12 Oct 2012 16:14:20 -0000
+X-IronPort-AV: E=Sophos;i="4.80,576,1344211200"; d="scan'208";a="211125389"
+Received: from ftlpmailmx01.citrite.net ([10.13.107.65])
+       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       12 Oct 2012 16:14:18 +0000
+Received: from [10.80.2.76] (10.80.2.76) by FTLPMAILMX01.citrite.net
+       (10.13.107.65) with Microsoft SMTP Server id 8.3.279.1; Fri, 12 Oct 2012
+       12:14:18 -0400
+Message-ID: <507841D8.6090205@citrix.com>
+Date: Fri, 12 Oct 2012 17:14:16 +0100
+From: David Vrabel <david.vrabel@citrix.com>
+User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US;
+       rv:1.9.1.16) Gecko/20120428 Iceowl/1.0b1 Icedove/3.0.11
+MIME-Version: 1.0
+To: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+References: <1350046634-2462-1-git-send-email-david.vrabel@citrix.com>
+       <1350046634-2462-4-git-send-email-david.vrabel@citrix.com>
+       <20121012134147.GA11778@phenom.dumpdata.com>
+       <507822ED.2090900@citrix.com>
+       <CACJDEmr3V71cSdV3+i-n7=wfOnDBza04Lk+6+B6Fyx7LhQrdEg@mail.gmail.com>
+       <5078304D.1050807@citrix.com>
+       <20121012150251.GB20842@phenom.dumpdata.com>
+In-Reply-To: <20121012150251.GB20842@phenom.dumpdata.com>
+Cc: Konrad Rzeszutek Wilk <konrad@kernel.org>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 3/3] xen/privcmd: add
+ IOCTL_PRIVCMD_SYNC_WALLCLOCK to sync Xen's wallclock
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On 12/10/12 16:02, Konrad Rzeszutek Wilk wrote:
+> On Fri, Oct 12, 2012 at 03:59:25PM +0100, David Vrabel wrote:
+>> On 12/10/12 15:29, Konrad Rzeszutek Wilk wrote:
+>>> On Fri, Oct 12, 2012 at 10:02 AM, David Vrabel <david.vrabel@citrix.com> wrote:
+>>>> On 12/10/12 14:41, Konrad Rzeszutek Wilk wrote:
+>>>>> On Fri, Oct 12, 2012 at 01:57:14PM +0100, David Vrabel wrote:
+>>>>>> From: David Vrabel <david.vrabel@citrix.com>
+>>>>>>
+>>>>>> Add a new ioctl to synchronize Xen's wallclock with the current system
+>>>>>> time.
+>>>>>>
+>>>>>> This may be used by the tools to ensure that newly created domains see
+>>>>>> the correct wallclock time if NTP is not used in dom0 or if domains
+>>>>>> are started before NTP has synchronized.
+>>>>>
+>>>>> So... how does this work with NTPD? As in does ntpd _not_ update the
+>>>>> hwclock enough?
+>>>>
+>>>> Once NTPD is synchronized then the kernel updates the wallclock (and the
+>>>> RTC with patch #1) every 11 mins.  I assume this is often enough given
+>>>> how NTP adjusts the system time.
+>>>>
+>>>> You only really need the tools to sync wallclock if system time was
+>>>> stepped at start of day.  e.g., init scripts could do something like:
+>>>>
+>>>> ntpdate pool.ntp.org
+>>>> hwclock --systohc
+>>>> xen-wallclock --systowc
+>>>
+>>> I think I am missing something. The hwclock should end up in the
+>>> xen_set_wallclock call. And from there on, the ntpd would update the
+>>> wallclock if it got skewed enough? Or is the system time not calling
+>>> the wall-clock enough? If that is the case, would just adding this in
+>>> the crontab be enough:
+>>
+>> hwclock talks to /dev/rtc which writes to the CMOS directly and does not
+>> call update_persistent_clock() (or xen_set_wallclock()).
+> 
+> /me scratches his head.
+> 
+> I recall that the update_persistent_clock() was being called.. with
+> hwclock -w (which is the same as --systohc).
+
+No,
+
+> That seems like a bug in the generic code - I would think that
+> hwclock would update the wallclock, not just the RTC.
+
+If we wanted hwclock to also update the xen wallclock we would need a
+xen-specific rtc driver that updated both rtc and wallclock.
+
+> Oh, it is whoever calls 'adjtimex' syscall ends up calling in
+> update_persistent_clock(). So .. ntpdate or ntpd don't call that?
+
+ntpd does call adjtimex so if you are running ntpd and it is
+synchronized to its clock source you do get the periodic sync of the
+wallclock.
+
+David
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<50784462.3060203@citrix.com> b/config/examples/test/corpus/<50784462.3060203@citrix.com>
new file mode 100644 (file)
index 0000000..643760d
--- /dev/null
@@ -0,0 +1,121 @@
+From xen-devel-bounces@lists.xen.org Fri Oct 12 17:29:52 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 12 Oct 2012 17:29:52 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TMi7R-0002gP-Q5
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 12 Oct 2012 17:29:51 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TMi39-0004sg-Eq; Fri, 12 Oct 2012 16:25:23 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <david.vrabel@citrix.com>) id 1TMi37-0004sb-I5
+       for xen-devel@lists.xen.org; Fri, 12 Oct 2012 16:25:21 +0000
+Received: from [85.158.137.99:20168] by server-10.bemta-3.messagelabs.com id
+       1A/76-27386-07448705; Fri, 12 Oct 2012 16:25:20 +0000
+X-Env-Sender: david.vrabel@citrix.com
+X-Msg-Ref: server-8.tower-217.messagelabs.com!1350059118!16020551!1
+X-Originating-IP: [66.165.176.89]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNzYwMjI=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 5183 invoked from network); 12 Oct 2012 16:25:20 -0000
+Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
+       by server-8.tower-217.messagelabs.com with RC4-SHA encrypted SMTP;
+       12 Oct 2012 16:25:20 -0000
+X-IronPort-AV: E=Sophos;i="4.80,576,1344211200"; d="scan'208";a="41050875"
+Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
+       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       12 Oct 2012 16:25:08 +0000
+Received: from [10.80.2.76] (10.80.2.76) by FTLPMAILMX02.citrite.net
+       (10.13.107.66) with Microsoft SMTP Server id 8.3.279.1; Fri, 12 Oct 2012
+       12:25:08 -0400
+Message-ID: <50784462.3060203@citrix.com>
+Date: Fri, 12 Oct 2012 17:25:06 +0100
+From: David Vrabel <david.vrabel@citrix.com>
+User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US;
+       rv:1.9.1.16) Gecko/20120428 Iceowl/1.0b1 Icedove/3.0.11
+MIME-Version: 1.0
+To: David Vrabel <david.vrabel@citrix.com>
+References: <1350046634-2462-1-git-send-email-david.vrabel@citrix.com>
+In-Reply-To: <1350046634-2462-1-git-send-email-david.vrabel@citrix.com>
+Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 0/3] xen: fix various wallclock problems
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On 12/10/12 13:57, David Vrabel wrote:
+> This series (with some toolstack updates) corrects a number of cases
+> where a guest can see an incorrect wallclock time.
+> 
+> 1. Systems with NTP won't periodically synchronize the hardware RTC so
+> the wallclock may be incorrect after a reboot.
+> 
+> 2. The wallclock is always ~500 ms behind the correct time.
+> 
+> 3. If the system time was stepped and NTP isn't synchronized yet, the
+> wallclock will still have the incorrect time.  The fix for this
+> requires the toolstack to synchronize the wallclock -- patch #3
+> provides the mechanism for this.
+
+These tables should help.
+
+Before:
+
+              |                Updates
+Process              | System Time?  Xen Wallclock?  Hardware Clock?
+-------------------------------------------------------------
+date -s       | X
+hwclock -w    |                               X
+ntpd          | X             X[*]
+ntpdate       | X
+
+After this (and the toolstack) patches:
+
+              |                Updates
+Process              | System Time?  Xen Wallclock?  Hardware Clock?
+-------------------------------------------------------------
+date -s       | X
+hwclock -w    |                               X
+ntpd          | X             X[*]            X[*]
+ntpdate       | X
+xen-wallclock |               X
+
+[*] every 11 minutes.
+
+David
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<5078458B.7090901@citrix.com> b/config/examples/test/corpus/<5078458B.7090901@citrix.com>
new file mode 100644 (file)
index 0000000..04fabbd
--- /dev/null
@@ -0,0 +1,100 @@
+From xen-devel-bounces@lists.xen.org Fri Oct 12 17:33:48 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 12 Oct 2012 17:33:48 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TMiBG-0002hO-HB
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 12 Oct 2012 17:33:48 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TMi87-00059b-Uc; Fri, 12 Oct 2012 16:30:31 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <david.vrabel@citrix.com>) id 1TMi86-00059S-Ec
+       for xen-devel@lists.xen.org; Fri, 12 Oct 2012 16:30:30 +0000
+Received: from [85.158.139.83:4551] by server-14.bemta-5.messagelabs.com id
+       9B/C9-22559-5A548705; Fri, 12 Oct 2012 16:30:29 +0000
+X-Env-Sender: david.vrabel@citrix.com
+X-Msg-Ref: server-3.tower-182.messagelabs.com!1350059427!34616044!1
+X-Originating-IP: [66.165.176.89]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNzYwMjI=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 16769 invoked from network); 12 Oct 2012 16:30:29 -0000
+Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
+       by server-3.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
+       12 Oct 2012 16:30:29 -0000
+X-IronPort-AV: E=Sophos;i="4.80,576,1344211200"; d="scan'208";a="41051597"
+Received: from ftlpmailmx01.citrite.net ([10.13.107.65])
+       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       12 Oct 2012 16:30:04 +0000
+Received: from [10.80.2.76] (10.80.2.76) by FTLPMAILMX01.citrite.net
+       (10.13.107.65) with Microsoft SMTP Server id 8.3.279.1; Fri, 12 Oct 2012
+       12:30:04 -0400
+Message-ID: <5078458B.7090901@citrix.com>
+Date: Fri, 12 Oct 2012 17:30:03 +0100
+From: David Vrabel <david.vrabel@citrix.com>
+User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US;
+       rv:1.9.1.16) Gecko/20120428 Iceowl/1.0b1 Icedove/3.0.11
+MIME-Version: 1.0
+To: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+References: <1350046634-2462-1-git-send-email-david.vrabel@citrix.com>
+       <1350046634-2462-4-git-send-email-david.vrabel@citrix.com>
+       <20121012134147.GA11778@phenom.dumpdata.com>
+       <507822ED.2090900@citrix.com>
+       <CACJDEmr3V71cSdV3+i-n7=wfOnDBza04Lk+6+B6Fyx7LhQrdEg@mail.gmail.com>
+       <5078304D.1050807@citrix.com>
+       <20121012150251.GB20842@phenom.dumpdata.com>
+       <507841D8.6090205@citrix.com>
+       <20121012161610.GA7880@phenom.dumpdata.com>
+In-Reply-To: <20121012161610.GA7880@phenom.dumpdata.com>
+Cc: Konrad Rzeszutek Wilk <konrad@kernel.org>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 3/3] xen/privcmd: add
+ IOCTL_PRIVCMD_SYNC_WALLCLOCK to sync Xen's wallclock
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On 12/10/12 17:16, Konrad Rzeszutek Wilk wrote:
+> 
+> So, having both ntpd (which calls call adjtimex) - which would run in the
+> background; and hwclock run at startup - (which updates the RTC, which ends
+>  - I hope - being trapped by the hypervisor), we end up with the correct
+> time, right?
+
+Yes, unless you start a guest before ntpd has synchronized.
+
+David
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<507BFFD0.2010707@citrix.com> b/config/examples/test/corpus/<507BFFD0.2010707@citrix.com>
new file mode 100644 (file)
index 0000000..ede09e0
--- /dev/null
@@ -0,0 +1,101 @@
+From xen-devel-bounces@lists.xen.org Mon Oct 15 13:26:42 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Mon, 15 Oct 2012 13:26:42 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TNjki-00022R-TF
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Mon, 15 Oct 2012 13:26:42 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TNjg4-0005kZ-RA; Mon, 15 Oct 2012 12:21:48 +0000
+Received: from mail27.messagelabs.com ([193.109.254.147])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <david.vrabel@citrix.com>) id 1TNjg2-0005ju-Cg
+       for xen-devel@lists.xen.org; Mon, 15 Oct 2012 12:21:46 +0000
+X-Env-Sender: david.vrabel@citrix.com
+X-Msg-Ref: server-2.tower-27.messagelabs.com!1350303698!14672368!1
+X-Originating-IP: [66.165.176.63]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyODI0MDk=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 31262 invoked from network); 15 Oct 2012 12:21:39 -0000
+Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
+       by server-2.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
+       15 Oct 2012 12:21:39 -0000
+X-IronPort-AV: E=Sophos;i="4.80,587,1344211200"; d="scan'208";a="211277471"
+Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
+       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       15 Oct 2012 12:21:38 +0000
+Received: from [10.80.2.76] (10.80.2.76) by FTLPMAILMX02.citrite.net
+       (10.13.107.66) with Microsoft SMTP Server id 8.3.279.1; Mon, 15 Oct 2012
+       08:21:38 -0400
+Message-ID: <507BFFD0.2010707@citrix.com>
+Date: Mon, 15 Oct 2012 13:21:36 +0100
+From: David Vrabel <david.vrabel@citrix.com>
+User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US;
+       rv:1.9.1.16) Gecko/20120428 Iceowl/1.0b1 Icedove/3.0.11
+MIME-Version: 1.0
+To: Ian Campbell <Ian.Campbell@citrix.com>
+References: <1350046634-2462-1-git-send-email-david.vrabel@citrix.com> 
+       <1350046634-2462-3-git-send-email-david.vrabel@citrix.com>
+       <1350293121.18058.10.camel@zakaz.uk.xensource.com>
+In-Reply-To: <1350293121.18058.10.camel@zakaz.uk.xensource.com>
+Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.6 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 2/3] xen: add correct 500 ms offset when
+ setting Xen wallclock
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On 15/10/12 10:25, Ian Campbell wrote:
+> On Fri, 2012-10-12 at 13:57 +0100, David Vrabel wrote:
+>> From: David Vrabel <david.vrabel@citrix.com>
+>>
+>> update_persistent_wallclock() (and hence xet_set_wallclock()) is
+>> called 500 ms after the second.
+> 
+> The comment in sync_cmos_clock says it is called 500ms before the next
+> second.
+
+This is the same thing, right?
+
+> I only mention it to double check that the right semantics for
+> set_wallclock are being implemented, i.e. that we are compensating in
+> the right direction.
+
+I'll add some debug code to make sure.
+
+David
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<507C0046.5050700@citrix.com> b/config/examples/test/corpus/<507C0046.5050700@citrix.com>
new file mode 100644 (file)
index 0000000..0dddb6c
--- /dev/null
@@ -0,0 +1,127 @@
+From xen-devel-bounces@lists.xen.org Mon Oct 15 13:28:12 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Mon, 15 Oct 2012 13:28:12 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TNjmA-00022j-RY
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Mon, 15 Oct 2012 13:28:12 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TNjhs-0005y5-Nt; Mon, 15 Oct 2012 12:23:40 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <david.vrabel@citrix.com>) id 1TNjhr-0005xk-15
+       for xen-devel@lists.xen.org; Mon, 15 Oct 2012 12:23:39 +0000
+Received: from [85.158.137.99:61524] by server-7.bemta-3.messagelabs.com id
+       C6/33-06991-A400C705; Mon, 15 Oct 2012 12:23:38 +0000
+X-Env-Sender: david.vrabel@citrix.com
+X-Msg-Ref: server-14.tower-217.messagelabs.com!1350303816!21598869!1
+X-Originating-IP: [66.165.176.89]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNzYzNjU=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 3813 invoked from network); 15 Oct 2012 12:23:37 -0000
+Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
+       by server-14.tower-217.messagelabs.com with RC4-SHA encrypted SMTP;
+       15 Oct 2012 12:23:37 -0000
+X-IronPort-AV: E=Sophos;i="4.80,587,1344211200"; d="scan'208";a="41210189"
+Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
+       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       15 Oct 2012 12:23:35 +0000
+Received: from [10.80.2.76] (10.80.2.76) by FTLPMAILMX02.citrite.net
+       (10.13.107.66) with Microsoft SMTP Server id 8.3.279.1; Mon, 15 Oct 2012
+       08:23:35 -0400
+Message-ID: <507C0046.5050700@citrix.com>
+Date: Mon, 15 Oct 2012 13:23:34 +0100
+From: David Vrabel <david.vrabel@citrix.com>
+User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US;
+       rv:1.9.1.16) Gecko/20120428 Iceowl/1.0b1 Icedove/3.0.11
+MIME-Version: 1.0
+To: Ian Campbell <Ian.Campbell@citrix.com>
+References: <1350046634-2462-1-git-send-email-david.vrabel@citrix.com> 
+       <50784462.3060203@citrix.com>
+       <1350293217.18058.11.camel@zakaz.uk.xensource.com>
+In-Reply-To: <1350293217.18058.11.camel@zakaz.uk.xensource.com>
+Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
+       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.6 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 0/3] xen: fix various wallclock problems
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On 15/10/12 10:26, Ian Campbell wrote:
+> On Fri, 2012-10-12 at 17:25 +0100, David Vrabel wrote:
+>> On 12/10/12 13:57, David Vrabel wrote:
+>>> This series (with some toolstack updates) corrects a number of cases
+>>> where a guest can see an incorrect wallclock time.
+>>>
+>>> 1. Systems with NTP won't periodically synchronize the hardware RTC so
+>>> the wallclock may be incorrect after a reboot.
+>>>
+>>> 2. The wallclock is always ~500 ms behind the correct time.
+>>>
+>>> 3. If the system time was stepped and NTP isn't synchronized yet, the
+>>> wallclock will still have the incorrect time.  The fix for this
+>>> requires the toolstack to synchronize the wallclock -- patch #3
+>>> provides the mechanism for this.
+>>
+>> These tables should help.
+>>
+>> Before:
+>>
+>>               |                Updates
+>> Process           | System Time?  Xen Wallclock?  Hardware Clock?
+>> -------------------------------------------------------------
+>> date -s       | X
+>> hwclock -w    |                               X
+>> ntpd          | X             X[*]
+>> ntpdate       | X
+> 
+> What does the equivalent table for native look like?
+> 
+> Is the "updated hardware clock" column in that caseis union of xen
+> wallclock and hardware clock columns here?
+
+Yes.
+
+              |         Updates
+Process              | System Time?  Hardware Clock?
+---------------------------------------------
+date -s       | X
+hwclock -w    |               X
+ntpd          | X             X[*]
+ntpdate       | X
+
+David
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<507C00A6.3020001@citrix.com> b/config/examples/test/corpus/<507C00A6.3020001@citrix.com>
new file mode 100644 (file)
index 0000000..c3dcd02
--- /dev/null
@@ -0,0 +1,151 @@
+From xen-devel-bounces@lists.xen.org Mon Oct 15 13:29:47 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Mon, 15 Oct 2012 13:29:47 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TNjnk-00023V-Vw
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Mon, 15 Oct 2012 13:29:47 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TNjjV-0006Dh-7P; Mon, 15 Oct 2012 12:25:21 +0000
+Received: from mail27.messagelabs.com ([193.109.254.147])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <david.vrabel@citrix.com>) id 1TNjjT-0006DD-Iw
+       for xen-devel@lists.xen.org; Mon, 15 Oct 2012 12:25:19 +0000
+X-Env-Sender: david.vrabel@citrix.com
+X-Msg-Ref: server-16.tower-27.messagelabs.com!1350303912!13287640!1
+X-Originating-IP: [66.165.176.89]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNzYzNjU=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 1230 invoked from network); 15 Oct 2012 12:25:13 -0000
+Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
+       by server-16.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
+       15 Oct 2012 12:25:13 -0000
+X-IronPort-AV: E=Sophos;i="4.80,587,1344211200"; d="scan'208";a="41210301"
+Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
+       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       15 Oct 2012 12:25:11 +0000
+Received: from [10.80.2.76] (10.80.2.76) by FTLPMAILMX02.citrite.net
+       (10.13.107.66) with Microsoft SMTP Server id 8.3.279.1; Mon, 15 Oct 2012
+       08:25:11 -0400
+Message-ID: <507C00A6.3020001@citrix.com>
+Date: Mon, 15 Oct 2012 13:25:10 +0100
+From: David Vrabel <david.vrabel@citrix.com>
+User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US;
+       rv:1.9.1.16) Gecko/20120428 Iceowl/1.0b1 Icedove/3.0.11
+MIME-Version: 1.0
+To: Ian Campbell <Ian.Campbell@citrix.com>
+References: <1350046970-2591-1-git-send-email-david.vrabel@citrix.com> 
+       <1350046970-2591-3-git-send-email-david.vrabel@citrix.com>
+       <1350293719.18058.13.camel@zakaz.uk.xensource.com>
+In-Reply-To: <1350293719.18058.13.camel@zakaz.uk.xensource.com>
+Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.6 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 2/2] tools/misc: add xen-wallclock command
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On 15/10/12 10:35, Ian Campbell wrote:
+> On Fri, 2012-10-12 at 14:02 +0100, David Vrabel wrote:
+>> +int main(int argc, char *argv[])
+>> +{
+>> +    const static char sopts[] = "w";
+>> +    const static struct option lopts[] = {
+>> +        { "help", 0, NULL, 0 },
+>> +        { "systowc", 0, NULL, 'w' },
+>> +        { 0, 0, NULL, 0 },
+>> +    };
+>> +    int opt, opt_idx;
+>> +
+>> +    int systowc = 0;
+>> +    xc_interface *xch;
+>> +
+>> +    exe_name = argv[0];
+>> +
+>> +    while ( (opt = getopt_long(argc, argv, sopts, lopts, &opt_idx)) != -1 )
+>> +    {
+>> +        switch ( opt )
+>> +        {
+>> +        case 'w':
+>> +            systowc = 1;
+>> +            break;
+>> +        case 0:
+>> +            switch (opt_idx)
+>> +            {
+>> +            case 0:
+>> +                help();
+>> +            }
+>> +            break;
+>> +        default:
+>> +            usage(stderr);
+>> +            exit(1);
+>> +        }
+>> +    }
+>> +
+>> +    /* Valid combination of options? i.e., --systowc */
+>> +    if (!systowc)
+>> +    {
+>> +        usage(stderr);
+>> +        exit(1);
+>> +    }
+>> +
+>> +    xch = xc_interface_open(NULL, NULL, 0);
+>> +    if (xch == NULL)
+>> +    {
+> 
+> I forget: Does xc_interface_open log on error?
+
+Yes.
+
+>> +        exit(1);
+>> +    }
+>> +    xc_wallclock_sync(xch);
+> 
+> Worth logging if this fails?
+
+Yes.
+
+> I suppose we want to hold off on this and the first patch until the
+> Linux side is agreed and committed?
+
+Yes.
+
+>> +    xc_interface_close(xch);
+>> +
+>> +    return 0;
+>> +}
+
+David
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<507EB27D.8050308@citrix.com> b/config/examples/test/corpus/<507EB27D.8050308@citrix.com>
new file mode 100644 (file)
index 0000000..eef9a4d
--- /dev/null
@@ -0,0 +1,261 @@
+From xen-devel-bounces@lists.xen.org Wed Oct 17 14:40:35 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 17 Oct 2012 14:40:35 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TOTrJ-0003FA-FD
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 17 Oct 2012 14:40:35 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TOTnB-0002nU-5F; Wed, 17 Oct 2012 13:36:13 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Andrew.Cooper3@citrix.com>) id 1TOTn9-0002nE-K1
+       for xen-devel@lists.xen.org; Wed, 17 Oct 2012 13:36:11 +0000
+Received: from [85.158.137.99:35093] by server-8.bemta-3.messagelabs.com id
+       5C/AC-10525-B44BE705; Wed, 17 Oct 2012 13:36:11 +0000
+X-Env-Sender: Andrew.Cooper3@citrix.com
+X-Msg-Ref: server-2.tower-217.messagelabs.com!1350480967!21831547!2
+X-Originating-IP: [66.165.176.89]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNzcwNjI=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 23512 invoked from network); 17 Oct 2012 13:36:09 -0000
+Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
+       by server-2.tower-217.messagelabs.com with RC4-SHA encrypted SMTP;
+       17 Oct 2012 13:36:09 -0000
+X-IronPort-AV: E=Sophos;i="4.80,600,1344211200"; d="scan'208";a="41505057"
+Received: from ftlpmailmx01.citrite.net ([10.13.107.65])
+       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       17 Oct 2012 13:36:09 +0000
+Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
+       (10.13.107.65) with Microsoft SMTP Server id 8.3.279.1;
+       Wed, 17 Oct 2012 09:36:08 -0400
+Received: from andrewcoop.uk.xensource.com ([10.80.2.18])      by
+       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
+       <andrew.cooper3@citrix.com>)    id 1TOTfh-00083G-6Y;
+       Wed, 17 Oct 2012 14:28:29 +0100
+Message-ID: <507EB27D.8050308@citrix.com>
+Date: Wed, 17 Oct 2012 14:28:29 +0100
+From: Andrew Cooper <andrew.cooper3@citrix.com>
+User-Agent: Mozilla/5.0 (X11; Linux x86_64;
+       rv:16.0) Gecko/20121011 Thunderbird/16.0.1
+MIME-Version: 1.0
+To: xen-devel@lists.xen.org, stefan.bader@canonical.com, 
+       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+References: <1350479456-4007-1-git-send-email-stefan.bader@canonical.com>
+In-Reply-To: <1350479456-4007-1-git-send-email-stefan.bader@canonical.com>
+X-Enigmail-Version: 1.4.5
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.6 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] Xen PVM: Strange lockups when running PostgreSQL
+ load
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On 17/10/12 14:10, Stefan Bader wrote:
+> I am currently looking at a bug report[1] which is happening when
+> a Xen PVM guest with multiple VCPUs is running a high IO database
+> load (a test script is available in the bug report).
+>
+> In experimenting it seems that this happens (or is getting more
+> likely) when the number of VCPUs is 8 or higher (though I have
+> not tried 6, only 2 and 4), having autogroup enabled seems to
+> make it more likely, too (at some point thought it would actually
+> prevent it but we were wrong) and pv spinlocks enabled.
+> It has happened with older (3.4.3) and newer (4.1.2) versions of
+> Xen as a host and with 3.2 and 3.5 kernels as guests.
+>
+> The pv spinlock assumption I will try to get re-verified by asking
+> to reproduce under a real load with a kernel that just disables
+> that. However, the dumps I am looking at really do look odd there.
+>
+> The first dump I looked at had the spinlock of runqueue[0] being
+> placed into the per-cpu lock_spinners variable for cpu#0 and
+> cpu#7 (doing my tests with 8 VCPUs). So apparently both cpus were
+> waiting on the slow path for it to become free. Though actually
+> it was free! Now, here is one issue I have in understanding the
+> dump: the back traces produced in crash are in the normal form
+> not showing any cpu in the poll_irq HV call. Only when using
+> the form that uses the last known stack location and displays
+> all text symols found will get close for cpu#7. cpu#0 still does
+> not seem to be anywhere close. This could be a problem with crash,
+> or with the way PVM works, I am not sure.
+>
+> Anyway, from what I could take from that situation, it seemed that
+> cpu#1 (that one had soft lockup warnings in the log) seemed to try
+> to do a wake_up on the task that just seemed to have done an io
+> schedule on cpu#7 (but the waitqueue_head spinlock is currently
+> locked). cpu#7 tries to get the runqueue[0] spinlock to do an idle
+> migration (though the lock currently is free). So I guessed that
+> maybe cpu#0 was just woken for the free lock but has not grabbed
+> it yet.
+>
+> From there I wondered whether something that acquires a spinlock
+> usually more than the quick path timeout (and this causes new
+> lockers to go into the slow path), could cause a stall on a high
+> numbered cpu when the lock is contented (as the search and
+> signalling is only done for the first waiter starting from 0).
+> That lead to below patch. The good thing about it, it does not
+> break things immediately, the bad thing, it does not help with
+> the problem. :/
+>
+> The interesting thing when looking at a second dump, taken with
+> a testkernel using the patch below, was that again 2 cpus seemed
+> to spin slow on a lock that was free in the dump. And again at
+> least one did not seem to be doing anything spinlock related
+> (anymore?).
+> One other detail (but that could be just incidence as well) was
+> that in unmodified kernel I usually would end up with soft
+> lockup messages, with the patched kernel, that was a stall
+> detected by rcu_bh (0 and 1 stalled, detected by 3).
+>
+> Now I am a bit confused and wonder about some basic things:
+> 1. When a cpu goes into the slow lock path and into the poll_irq,
+>    shouldn't I expect this one to be in hypercall_page in the
+>    dump?
+> 2. When does the whole handling for interrupted spinlock wait
+>    apply? I assume only for a spinlock taken without irqs
+>    disabled and then trying to acquire another one in an
+>    interrupt handler. Is that correct?
+> 3. Not really related but I just stumbled over it:
+>    In xen_spin_trylock: "asm("xchgb %b0,%1"...)
+>    What does the "b" part of %b0 do? I thought xchgb already
+>    would say it is a byte value...
+>
+> But putting aside those questions, the fact that two times
+> there was two cpus waiting on the same lock which from the
+> lock count (=0) was free seems a bit too much of a coincidence.
+> Oh and the spinners count in the lock was 2 as one would
+> expect.
+>
+> struct rq {
+>   lock = {
+>     raw_lock = {
+>       {
+>         head_tail = 512, 
+>         tickets = {
+>           head = 0 '\000', 
+>           tail = 2 '\002'
+>         }
+>       }
+>     }
+>   }, 
+>   nr_running = 1,
+>   ...
+> }
+>
+> I really don't know how this happens. Especially cpu#0 seems at
+> least past the wakeup and should have removed itself from the
+> spinners list...
+>  
+> -Stefan
+
+We (Citrix) have an outstanding bug, on 2.6.32 classic, which we have
+never managed to get to the bottom of (because of inability to reliably
+reproduce), which might be related.
+
+In our case, certain processes were locking up, and it turned out that
+the kernel was issuing SCHOP_poll hypercalls (same the stack trace on
+your launchpad ticket) on its own spinlock IPI event channel
+(understandable, as its a spinlock), but with the event channel masked,
+so it would never wake up from the poll.
+
+Can you reliably reproduce the issue? and if so, would it be possible to
+capture hypervisor debug keys q and e when the badness happens?  This
+would clearly show if our bugs are related or not
+
+Our repro case took about a month to reproduce, and unfortunately
+turning lockdep on has appeared to fix the problem.
+
+~Andrew
+
+>
+> [1] http://bugs.launchpad.net/bugs/1011792
+>
+> From 635a4e101ccbc9a324c8000f7e264ed4e646592c Mon Sep 17 00:00:00 2001
+> From: Stefan Bader <stefan.bader@canonical.com>
+> Date: Tue, 16 Oct 2012 17:46:09 +0200
+> Subject: [PATCH] xen/spinlocks: Make wakeup fairer
+>
+> Instead of sending the IPI signalling the free lock to the first
+> online CPU found waiting for it, start the search from the CPU
+> that had the lock last.
+>
+> Signed-off-by: Stefan Bader <stefan.bader@canonical.com>
+> ---
+>  arch/x86/xen/spinlock.c |   22 ++++++++++++++--------
+>  1 file changed, 14 insertions(+), 8 deletions(-)
+>
+> diff --git a/arch/x86/xen/spinlock.c b/arch/x86/xen/spinlock.c
+> index d69cc6c..8b86efb 100644
+> --- a/arch/x86/xen/spinlock.c
+> +++ b/arch/x86/xen/spinlock.c
+> @@ -320,17 +320,23 @@ static void xen_spin_lock_flags(struct arch_spinlock *lock, unsigned long flags)
+>  static noinline void xen_spin_unlock_slow(struct xen_spinlock *xl)
+>  {
+>      int cpu;
+> +    int this_cpu = smp_processor_id();
+>  
+>      ADD_STATS(released_slow, 1);
+>  
+> -    for_each_online_cpu(cpu) {
+> -            /* XXX should mix up next cpu selection */
+> -            if (per_cpu(lock_spinners, cpu) == xl) {
+> -                    ADD_STATS(released_slow_kicked, 1);
+> -                    xen_send_IPI_one(cpu, XEN_SPIN_UNLOCK_VECTOR);
+> -                    break;
+> -            }
+> -    }
+> +    cpu = cpumask_next(this_cpu, cpu_online_mask);
+> +    do {
+> +            if (cpu < nr_cpu_ids) {
+> +                    if (per_cpu(lock_spinners, cpu) == xl) {
+> +                            ADD_STATS(released_slow_kicked, 1);
+> +                            xen_send_IPI_one(cpu, XEN_SPIN_UNLOCK_VECTOR);
+> +                            break;
+> +                    }
+> +            } else
+> +                    cpu = -1;
+> +
+> +            cpu = cpumask_next(cpu, cpu_online_mask);
+> +    } while (cpu != this_cpu);
+>  }
+>  
+>  static void xen_spin_unlock(struct arch_spinlock *lock)
+
+-- 
+Andrew Cooper - Dom0 Kernel Engineer, Citrix XenServer
+T: +44 (0)1223 225 900, http://www.citrix.com
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<507EB694.8070105@canonical.com> b/config/examples/test/corpus/<507EB694.8070105@canonical.com>
new file mode 100644 (file)
index 0000000..8251de9
--- /dev/null
@@ -0,0 +1,269 @@
+From xen-devel-bounces@lists.xen.org Wed Oct 17 14:50:24 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 17 Oct 2012 14:50:24 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TOU0o-0003Hq-8S
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 17 Oct 2012 14:50:24 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TOTwk-0003Gp-2n; Wed, 17 Oct 2012 13:46:06 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <stefan.bader@canonical.com>) id 1TOTwh-0003Gk-Rd
+       for xen-devel@lists.xen.org; Wed, 17 Oct 2012 13:46:04 +0000
+Received: from [85.158.139.211:32370] by server-3.bemta-5.messagelabs.com id
+       AA/16-28618-A96BE705; Wed, 17 Oct 2012 13:46:02 +0000
+X-Env-Sender: stefan.bader@canonical.com
+X-Msg-Ref: server-3.tower-206.messagelabs.com!1350481559!22670372!1
+X-Originating-IP: [91.189.89.112]
+X-SpamReason: No, hits=0.0 required=7.0 tests=
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 5452 invoked from network); 17 Oct 2012 13:45:59 -0000
+Received: from youngberry.canonical.com (HELO youngberry.canonical.com)
+       (91.189.89.112) by server-3.tower-206.messagelabs.com with SMTP;
+       17 Oct 2012 13:45:59 -0000
+Received: from p5b2e42c0.dip.t-dialin.net ([91.46.66.192] helo=[192.168.2.5])
+       by youngberry.canonical.com with esmtpsa
+       (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71)
+       (envelope-from <stefan.bader@canonical.com>)
+       id 1TOTwc-00008R-RN; Wed, 17 Oct 2012 13:45:58 +0000
+Message-ID: <507EB694.8070105@canonical.com>
+Date: Wed, 17 Oct 2012 15:45:56 +0200
+From: Stefan Bader <stefan.bader@canonical.com>
+User-Agent: Mozilla/5.0 (X11; Linux x86_64;
+       rv:16.0) Gecko/20121011 Thunderbird/16.0.1
+MIME-Version: 1.0
+To: Andrew Cooper <andrew.cooper3@citrix.com>
+References: <1350479456-4007-1-git-send-email-stefan.bader@canonical.com>
+       <507EB27D.8050308@citrix.com>
+In-Reply-To: <507EB27D.8050308@citrix.com>
+X-Enigmail-Version: 1.4.5
+Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>, xen-devel@lists.xen.org
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: multipart/mixed; boundary="===============3687563582694962846=="
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.6 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] Xen PVM: Strange lockups when running PostgreSQL
+ load
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+This is an OpenPGP/MIME signed message (RFC 2440 and 3156)
+--===============3687563582694962846==
+Content-Type: multipart/signed; micalg=pgp-sha512;
+ protocol="application/pgp-signature";
+ boundary="------------enig81D271FA730DEC5D8D196885"
+
+This is an OpenPGP/MIME signed message (RFC 2440 and 3156)
+--------------enig81D271FA730DEC5D8D196885
+Content-Type: text/plain; charset=ISO-8859-1
+Content-Transfer-Encoding: quoted-printable
+
+On 17.10.2012 15:28, Andrew Cooper wrote:
+> On 17/10/12 14:10, Stefan Bader wrote:
+>> I am currently looking at a bug report[1] which is happening when
+>> a Xen PVM guest with multiple VCPUs is running a high IO database
+>> load (a test script is available in the bug report).
+>>
+>> In experimenting it seems that this happens (or is getting more
+>> likely) when the number of VCPUs is 8 or higher (though I have
+>> not tried 6, only 2 and 4), having autogroup enabled seems to
+>> make it more likely, too (at some point thought it would actually
+>> prevent it but we were wrong) and pv spinlocks enabled.
+>> It has happened with older (3.4.3) and newer (4.1.2) versions of
+>> Xen as a host and with 3.2 and 3.5 kernels as guests.
+>>
+>> The pv spinlock assumption I will try to get re-verified by asking
+>> to reproduce under a real load with a kernel that just disables
+>> that. However, the dumps I am looking at really do look odd there.
+>>
+>> The first dump I looked at had the spinlock of runqueue[0] being
+>> placed into the per-cpu lock_spinners variable for cpu#0 and
+>> cpu#7 (doing my tests with 8 VCPUs). So apparently both cpus were
+>> waiting on the slow path for it to become free. Though actually
+>> it was free! Now, here is one issue I have in understanding the
+>> dump: the back traces produced in crash are in the normal form
+>> not showing any cpu in the poll_irq HV call. Only when using
+>> the form that uses the last known stack location and displays
+>> all text symols found will get close for cpu#7. cpu#0 still does
+>> not seem to be anywhere close. This could be a problem with crash,
+>> or with the way PVM works, I am not sure.
+>>
+>> Anyway, from what I could take from that situation, it seemed that
+>> cpu#1 (that one had soft lockup warnings in the log) seemed to try
+>> to do a wake_up on the task that just seemed to have done an io
+>> schedule on cpu#7 (but the waitqueue_head spinlock is currently
+>> locked). cpu#7 tries to get the runqueue[0] spinlock to do an idle
+>> migration (though the lock currently is free). So I guessed that
+>> maybe cpu#0 was just woken for the free lock but has not grabbed
+>> it yet.
+>>
+>> From there I wondered whether something that acquires a spinlock
+>> usually more than the quick path timeout (and this causes new
+>> lockers to go into the slow path), could cause a stall on a high
+>> numbered cpu when the lock is contented (as the search and
+>> signalling is only done for the first waiter starting from 0).
+>> That lead to below patch. The good thing about it, it does not
+>> break things immediately, the bad thing, it does not help with
+>> the problem. :/
+>>
+>> The interesting thing when looking at a second dump, taken with
+>> a testkernel using the patch below, was that again 2 cpus seemed
+>> to spin slow on a lock that was free in the dump. And again at
+>> least one did not seem to be doing anything spinlock related
+>> (anymore?).
+>> One other detail (but that could be just incidence as well) was
+>> that in unmodified kernel I usually would end up with soft
+>> lockup messages, with the patched kernel, that was a stall
+>> detected by rcu_bh (0 and 1 stalled, detected by 3).
+>>
+>> Now I am a bit confused and wonder about some basic things:
+>> 1. When a cpu goes into the slow lock path and into the poll_irq,
+>>    shouldn't I expect this one to be in hypercall_page in the
+>>    dump?
+>> 2. When does the whole handling for interrupted spinlock wait
+>>    apply? I assume only for a spinlock taken without irqs
+>>    disabled and then trying to acquire another one in an
+>>    interrupt handler. Is that correct?
+>> 3. Not really related but I just stumbled over it:
+>>    In xen_spin_trylock: "asm("xchgb %b0,%1"...)
+>>    What does the "b" part of %b0 do? I thought xchgb already
+>>    would say it is a byte value...
+>>
+>> But putting aside those questions, the fact that two times
+>> there was two cpus waiting on the same lock which from the
+>> lock count (=3D0) was free seems a bit too much of a coincidence.
+>> Oh and the spinners count in the lock was 2 as one would
+>> expect.
+>>
+>> struct rq {
+>>   lock =3D {
+>>     raw_lock =3D {
+>>       {
+>>         head_tail =3D 512,=20
+>>         tickets =3D {
+>>           head =3D 0 '\000',=20
+>>           tail =3D 2 '\002'
+>>         }
+>>       }
+>>     }
+>>   },=20
+>>   nr_running =3D 1,
+>>   ...
+>> }
+>>
+>> I really don't know how this happens. Especially cpu#0 seems at
+>> least past the wakeup and should have removed itself from the
+>> spinners list...
+>> =20
+>> -Stefan
+>=20
+> We (Citrix) have an outstanding bug, on 2.6.32 classic, which we have
+> never managed to get to the bottom of (because of inability to reliably=
+
+> reproduce), which might be related.
+>=20
+> In our case, certain processes were locking up, and it turned out that
+> the kernel was issuing SCHOP_poll hypercalls (same the stack trace on
+> your launchpad ticket) on its own spinlock IPI event channel
+> (understandable, as its a spinlock), but with the event channel masked,=
+
+> so it would never wake up from the poll.
+
+Unfortunately either crash looking at it or something else is wrong for t=
+he PV
+guest as looking at HYPERVISOR_shared_info appears completely blank.
+
+>=20
+> Can you reliably reproduce the issue? and if so, would it be possible t=
+o
+> capture hypervisor debug keys q and e when the badness happens?  This
+> would clearly show if our bugs are related or not
+
+Yes, as mentioned the python script in the bug report does that when meet=
+ing the
+other conditions. I certainly can do the debug keys on that.
+
+>=20
+> Our repro case took about a month to reproduce, and unfortunately
+> turning lockdep on has appeared to fix the problem.
+
+Yeah, having lockdep enabled was another thing that made it less likely. =
+Though
+some reporters had lockups with it, too. Just much less likely.
+
+-Stefan
+
+>=20
+> ~Andrew
+>=20
+>>
+>> [1] http://bugs.launchpad.net/bugs/1011792
+>>
+
+
+
+--------------enig81D271FA730DEC5D8D196885
+Content-Type: application/pgp-signature; name="signature.asc"
+Content-Description: OpenPGP digital signature
+Content-Disposition: attachment; filename="signature.asc"
+
+-----BEGIN PGP SIGNATURE-----
+Version: GnuPG v1.4.11 (GNU/Linux)
+Comment: Using GnuPG with Mozilla - http://www.enigmail.net/
+
+iQIcBAEBCgAGBQJQfraVAAoJEOhnXe7L7s6jtCQP/1Li9oKebZMBeK1os42nAu0v
+uOeizVRkV4Brl0hSTjXRJnzPWXnOAho5mKU429m0VJrxLeo8uHHqMApTJBF8YEFF
+Nf+NkEg18khpLn08jlFt6Gz2aKMYi4zoRr8nBtIzwrw21bOSlOzMaT2EO39UtHvm
+PX3HkMZWfkvEp/FTNBjynksOTMCp8W/dGXCMjA4h58fUPujl4IYjWhIUwvsI++Rc
+m61PUi/LeWl0eE8xBYtp/piJwYkzl8/dLkyHo+qu0HlQ4jrQVYKsv5w+f0hfP1sY
+uWAtGDFWALCJY8QYVqM81QiS3mPEWbG9B3pnJxarfSZx9IED62Ea4rXh3Vdm3xKc
+Hk22e2abi/NSq81EUdbJMaH4Y0luoIiVeb5Pb76gqyDT1usMmE113US3e6JiDdfL
+Nyu+xbaDUZMPK6VfVP3e+ZgdMwrYEwnR++NM+VYqsuKf5fLtBzNeGJ0JDN6c4wKB
+O6pX/GDfdjX7soABFaQarfJWp9HX9LHE6BZF+SWYDuKdvIoKW8H2I9Hnh6qq6ALW
+1I+LEdq6bn1N5cuGr6FxC+crAoEGhKCB5kjQ51x1ZNBo8f132DlctAsL2BLar4Jk
+JK2F1B/pkVh6IW8wzJfjvQw+s9S/9pqFTSRPdRQf1sTanH1w5leLyuBASYqYUhpy
+xUA3qXiwmqchNpek8NxS
+=kZrl
+-----END PGP SIGNATURE-----
+
+--------------enig81D271FA730DEC5D8D196885--
+
+
+--===============3687563582694962846==
+Content-Type: text/plain; charset="us-ascii"
+MIME-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Content-Disposition: inline
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
+--===============3687563582694962846==--
+
+
diff --git a/config/examples/test/corpus/<507ECAF8.7050709@citrix.com> b/config/examples/test/corpus/<507ECAF8.7050709@citrix.com>
new file mode 100644 (file)
index 0000000..b4b1df2
--- /dev/null
@@ -0,0 +1,118 @@
+From xen-devel-bounces@lists.xen.org Wed Oct 17 16:17:49 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 17 Oct 2012 16:17:49 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TOVNT-0003ep-B7
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 17 Oct 2012 16:17:49 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TOVJH-0005qx-KE; Wed, 17 Oct 2012 15:13:27 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Andrew.Cooper3@citrix.com>) id 1TOVJG-0005qs-33
+       for xen-devel@lists.xen.org; Wed, 17 Oct 2012 15:13:26 +0000
+Received: from [85.158.138.51:54819] by server-15.bemta-3.messagelabs.com id
+       84/DC-10261-51BCE705; Wed, 17 Oct 2012 15:13:25 +0000
+X-Env-Sender: Andrew.Cooper3@citrix.com
+X-Msg-Ref: server-3.tower-174.messagelabs.com!1350486803!26656698!1
+X-Originating-IP: [66.165.176.89]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNzcwNjI=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 32334 invoked from network); 17 Oct 2012 15:13:24 -0000
+Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
+       by server-3.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
+       17 Oct 2012 15:13:24 -0000
+X-IronPort-AV: E=Sophos;i="4.80,601,1344211200"; d="scan'208";a="41524595"
+Received: from ftlpmailmx01.citrite.net ([10.13.107.65])
+       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       17 Oct 2012 15:12:56 +0000
+Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
+       (10.13.107.65) with Microsoft SMTP Server id 8.3.279.1;
+       Wed, 17 Oct 2012 11:12:56 -0400
+Received: from andrewcoop.uk.xensource.com ([10.80.2.18])      by
+       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
+       <andrew.cooper3@citrix.com>)    id 1TOVIm-0001C7-5H;
+       Wed, 17 Oct 2012 16:12:56 +0100
+Message-ID: <507ECAF8.7050709@citrix.com>
+Date: Wed, 17 Oct 2012 16:12:56 +0100
+From: Andrew Cooper <andrew.cooper3@citrix.com>
+User-Agent: Mozilla/5.0 (X11; Linux x86_64;
+       rv:16.0) Gecko/20121011 Thunderbird/16.0.1
+MIME-Version: 1.0
+To: Jan Beulich <JBeulich@suse.com>
+References: <1350479456-4007-1-git-send-email-stefan.bader@canonical.com>
+       <507EB27D.8050308@citrix.com>
+       <507EE22602000078000A20DB@nat28.tlf.novell.com>
+In-Reply-To: <507EE22602000078000A20DB@nat28.tlf.novell.com>
+X-Enigmail-Version: 1.4.5
+Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
+       "stefan.bader@canonical.com" <stefan.bader@canonical.com>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.6 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] Xen PVM: Strange lockups when running PostgreSQL
+ load
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On 17/10/12 15:51, Jan Beulich wrote:
+>>>> On 17.10.12 at 15:28, Andrew Cooper <andrew.cooper3@citrix.com> wrote:
+>> In our case, certain processes were locking up, and it turned out that
+>> the kernel was issuing SCHOP_poll hypercalls (same the stack trace on
+>> your launchpad ticket) on its own spinlock IPI event channel
+>> (understandable, as its a spinlock), but with the event channel masked,
+>> so it would never wake up from the poll.
+> Probably some misunderstanding: The event channel used
+> here will always be masked, and whether an event channel is
+> masked doesn't matter for the purposes of polling it.
+>
+> Jan
+>
+
+Sorry - I was not very clear.
+
+In our case, we saw every single VCPU stuck in a SCHEDOP_poll on its own
+spinlock event channel, which renderes the guest completely deadlocked.
+
+My understanding was that while some VCPUs were blocked in the
+hypervisor, the VCPU with the lock should raise an event when the lock
+was released, waking the other VCPUs so one could grab the lock.  This
+implication of this being that there is a bug in the spinlock code.
+
+-- 
+Andrew Cooper - Dom0 Kernel Engineer, Citrix XenServer
+T: +44 (0)1223 225 900, http://www.citrix.com
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<507ECD06.2050407@canonical.com> b/config/examples/test/corpus/<507ECD06.2050407@canonical.com>
new file mode 100644 (file)
index 0000000..0ca6f3d
--- /dev/null
@@ -0,0 +1,342 @@
+From xen-devel-bounces@lists.xen.org Wed Oct 17 16:26:34 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 17 Oct 2012 16:26:34 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TOVVs-0003gr-HN
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 17 Oct 2012 16:26:34 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TOVRO-0006Ay-9R; Wed, 17 Oct 2012 15:21:50 +0000
+Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <stefan.bader@canonical.com>) id 1TOVRM-0006Aq-0V
+       for xen-devel@lists.xen.org; Wed, 17 Oct 2012 15:21:48 +0000
+Received: from [193.109.254.147:4760] by server-4.bemta-14.messagelabs.com id
+       A2/2D-04248-B0DCE705; Wed, 17 Oct 2012 15:21:47 +0000
+X-Env-Sender: stefan.bader@canonical.com
+X-Msg-Ref: server-12.tower-27.messagelabs.com!1350487306!10411440!1
+X-Originating-IP: [91.189.89.112]
+X-SpamReason: No, hits=0.0 required=7.0 tests=
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 26025 invoked from network); 17 Oct 2012 15:21:46 -0000
+Received: from youngberry.canonical.com (HELO youngberry.canonical.com)
+       (91.189.89.112) by server-12.tower-27.messagelabs.com with SMTP;
+       17 Oct 2012 15:21:46 -0000
+Received: from p5b2e42c0.dip.t-dialin.net ([91.46.66.192] helo=[192.168.2.5])
+       by youngberry.canonical.com with esmtpsa
+       (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71)
+       (envelope-from <stefan.bader@canonical.com>)
+       id 1TOVRI-0002lS-1l; Wed, 17 Oct 2012 15:21:44 +0000
+Message-ID: <507ECD06.2050407@canonical.com>
+Date: Wed, 17 Oct 2012 17:21:42 +0200
+From: Stefan Bader <stefan.bader@canonical.com>
+User-Agent: Mozilla/5.0 (X11; Linux x86_64;
+       rv:16.0) Gecko/20121011 Thunderbird/16.0.1
+MIME-Version: 1.0
+To: Ian Campbell <Ian.Campbell@citrix.com>
+References: <1350479456-4007-1-git-send-email-stefan.bader@canonical.com>
+       <507EB27D.8050308@citrix.com>
+       <1350482118.2460.74.camel@zakaz.uk.xensource.com>
+In-Reply-To: <1350482118.2460.74.camel@zakaz.uk.xensource.com>
+X-Enigmail-Version: 1.4.5
+Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
+       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: multipart/mixed; boundary="===============6214944843867296276=="
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.6 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] Xen PVM: Strange lockups when running PostgreSQL
+ load
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+This is an OpenPGP/MIME signed message (RFC 2440 and 3156)
+--===============6214944843867296276==
+Content-Type: multipart/signed; micalg=pgp-sha512;
+ protocol="application/pgp-signature";
+ boundary="------------enigDCF9146FEFDB17A1136CD1F0"
+
+This is an OpenPGP/MIME signed message (RFC 2440 and 3156)
+--------------enigDCF9146FEFDB17A1136CD1F0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: quoted-printable
+
+On 17.10.2012 15:55, Ian Campbell wrote:
+> On Wed, 2012-10-17 at 14:28 +0100, Andrew Cooper wrote:
+>> In our case, certain processes were locking up, and it turned out that=
+
+>> the kernel was issuing SCHOP_poll hypercalls (same the stack trace on
+>> your launchpad ticket) on its own spinlock IPI event channel
+>> (understandable, as its a spinlock), but with the event channel
+>> masked, so it would never wake up from the poll.=20
+>=20
+> I think (but you might want to check) that SCHEDOP_poll works (or is
+> supposed to work!) regardless of whether the specific evtchn you ask fo=
+r
+> is masked or not.
+
+I was assuming it to be supposed to work at least in Xen 4.1.2. Or at lea=
+st if
+it did not I would hope to catch VCPUs rather sitting on the hypercall th=
+an
+doing nothing. Of course I cannot say how reliable information in crash i=
+s as
+this is something new to do after Daniel fixed crash.
+
+>=20
+> The Linux PV spinlock implementation takes advantage of this because it=
+
+> never wants to take a real interrupt from the spinlock poller evtchn.
+
+Right, I probably should have realized that. Though I guess it is still
+interesting to see whether the channel is pending.
+
+So when just recreating, I got the q and e info which is (assuming the gu=
+est
+domain is enough):
+
+(XEN) Event channel information for domain 1:
+(XEN) Polling vCPUs: {1,4,6}
+(XEN)     port [p/m]
+(XEN)        1 [0/0]: s=3D3 n=3D0 d=3D0 p=3D68 x=3D0
+(XEN)        2 [1/0]: s=3D3 n=3D0 d=3D0 p=3D69 x=3D0
+(XEN)        3 [1/0]: s=3D5 n=3D0 v=3D0 x=3D0
+(XEN)        4 [1/1]: s=3D6 n=3D0 x=3D0
+(XEN)        5 [1/0]: s=3D6 n=3D0 x=3D0
+(XEN)        6 [0/0]: s=3D6 n=3D0 x=3D0
+(XEN)        7 [0/0]: s=3D5 n=3D0 v=3D1 x=3D0
+(XEN)        8 [0/0]: s=3D6 n=3D0 x=3D0
+(XEN)        9 [1/0]: s=3D5 n=3D1 v=3D0 x=3D0
+(XEN)       10 [0/1]: s=3D6 n=3D1 x=3D0
+(XEN)       11 [1/0]: s=3D6 n=3D1 x=3D0
+(XEN)       12 [0/0]: s=3D6 n=3D1 x=3D0
+(XEN)       13 [0/0]: s=3D5 n=3D1 v=3D1 x=3D0
+(XEN)       14 [0/0]: s=3D6 n=3D1 x=3D0
+(XEN)       15 [0/0]: s=3D5 n=3D2 v=3D0 x=3D0
+(XEN)       16 [1/1]: s=3D6 n=3D2 x=3D0
+(XEN)       17 [0/0]: s=3D6 n=3D2 x=3D0
+(XEN)       18 [0/0]: s=3D6 n=3D2 x=3D0
+(XEN)       19 [0/0]: s=3D5 n=3D2 v=3D1 x=3D0
+(XEN)       20 [0/0]: s=3D6 n=3D2 x=3D0
+(XEN)       21 [0/0]: s=3D5 n=3D3 v=3D0 x=3D0
+(XEN)       22 [1/1]: s=3D6 n=3D3 x=3D0
+(XEN)       23 [0/0]: s=3D6 n=3D3 x=3D0
+(XEN)       24 [0/0]: s=3D6 n=3D3 x=3D0
+(XEN)       25 [0/0]: s=3D5 n=3D3 v=3D1 x=3D0
+(XEN)       26 [0/0]: s=3D6 n=3D3 x=3D0
+(XEN)       27 [1/0]: s=3D5 n=3D4 v=3D0 x=3D0
+(XEN)       28 [0/1]: s=3D6 n=3D4 x=3D0
+(XEN)       29 [1/0]: s=3D6 n=3D4 x=3D0
+(XEN)       30 [0/0]: s=3D6 n=3D4 x=3D0
+(XEN)       31 [0/0]: s=3D5 n=3D4 v=3D1 x=3D0
+(XEN)       32 [0/0]: s=3D6 n=3D4 x=3D0
+(XEN)       33 [0/0]: s=3D5 n=3D5 v=3D0 x=3D0
+(XEN)       34 [0/1]: s=3D6 n=3D5 x=3D0
+(XEN)       35 [0/0]: s=3D6 n=3D5 x=3D0
+(XEN)       36 [0/0]: s=3D6 n=3D5 x=3D0
+(XEN)       37 [0/0]: s=3D5 n=3D5 v=3D1 x=3D0
+(XEN)       38 [0/0]: s=3D6 n=3D5 x=3D0
+(XEN)       39 [1/0]: s=3D5 n=3D6 v=3D0 x=3D0
+(XEN)       40 [0/1]: s=3D6 n=3D6 x=3D0
+(XEN)       41 [1/0]: s=3D6 n=3D6 x=3D0
+(XEN)       42 [0/0]: s=3D6 n=3D6 x=3D0
+(XEN)       43 [0/0]: s=3D5 n=3D6 v=3D1 x=3D0
+(XEN)       44 [0/0]: s=3D6 n=3D6 x=3D0
+(XEN)       45 [0/0]: s=3D5 n=3D7 v=3D0 x=3D0
+(XEN)       46 [1/1]: s=3D6 n=3D7 x=3D0
+(XEN)       47 [0/0]: s=3D6 n=3D7 x=3D0
+(XEN)       48 [0/0]: s=3D6 n=3D7 x=3D0
+(XEN)       49 [0/0]: s=3D5 n=3D7 v=3D1 x=3D0
+(XEN)       50 [0/0]: s=3D6 n=3D7 x=3D0
+(XEN)       51 [0/0]: s=3D3 n=3D7 d=3D0 p=3D70 x=3D0
+(XEN)       52 [0/0]: s=3D3 n=3D0 d=3D0 p=3D71 x=3D0
+(XEN)       53 [0/0]: s=3D3 n=3D0 d=3D0 p=3D72 x=3D0
+(XEN)       54 [0/0]: s=3D3 n=3D0 d=3D0 p=3D73 x=3D0
+(XEN)       55 [1/0]: s=3D3 n=3D0 d=3D0 p=3D74 x=3D0
+
+[maybe someone can tell me what the s,n,d,p and x mean]
+
+(XEN) Rangesets belonging to domain 1:
+(XEN)     I/O Ports  { }
+(XEN)     Interrupts { }
+(XEN)     I/O Memory { }
+(XEN) Memory pages belonging to domain 1:
+(XEN)     DomPage list too long to display
+(XEN)     XenPage 00000000008000ab: caf=3Dc000000000000002, taf=3D7400000=
+000000002
+(XEN)     XenPage 00000000008000aa: caf=3Dc000000000000002, taf=3D7400000=
+000000002
+(XEN)     XenPage 00000000008000a9: caf=3Dc000000000000002, taf=3D7400000=
+000000002
+(XEN)     XenPage 00000000008000a8: caf=3Dc000000000000001, taf=3D7400000=
+000000001
+(XEN)     XenPage 00000000000dfae4: caf=3Dc000000000000002, taf=3D7400000=
+000000002
+(XEN) VCPU information and callbacks for domain 1:
+(XEN)     VCPU0: CPU3 [has=3DT] flags=3D0 poll=3D0 upcall_pend =3D 01, up=
+call_mask =3D 01
+dirty_cpus=3D{3} cpu_affinity=3D{0-127}
+(XEN)     No periodic timer
+(XEN)     VCPU1: CPU7 [has=3DF] flags=3D1 poll=3D10 upcall_pend =3D 01, u=
+pcall_mask =3D 01
+dirty_cpus=3D{} cpu_affinity=3D{0-127}
+(XEN)     No periodic timer
+(XEN)     VCPU2: CPU4 [has=3DF] flags=3D1 poll=3D0 upcall_pend =3D 00, up=
+call_mask =3D 00
+dirty_cpus=3D{} cpu_affinity=3D{0-127}
+(XEN)     No periodic timer
+(XEN)     VCPU3: CPU5 [has=3DF] flags=3D1 poll=3D0 upcall_pend =3D 00, up=
+call_mask =3D 00
+dirty_cpus=3D{} cpu_affinity=3D{0-127}
+(XEN)     No periodic timer
+(XEN)     VCPU4: CPU6 [has=3DF] flags=3D1 poll=3D28 upcall_pend =3D 01, u=
+pcall_mask =3D 01
+dirty_cpus=3D{} cpu_affinity=3D{0-127}
+(XEN)     No periodic timer
+(XEN)     VCPU5: CPU7 [has=3DF] flags=3D1 poll=3D0 upcall_pend =3D 00, up=
+call_mask =3D 00
+dirty_cpus=3D{7} cpu_affinity=3D{0-127}
+(XEN)     No periodic timer
+(XEN)     VCPU6: CPU0 [has=3DF] flags=3D1 poll=3D40 upcall_pend =3D 01, u=
+pcall_mask =3D 01
+dirty_cpus=3D{} cpu_affinity=3D{0-127}
+(XEN)     No periodic timer
+(XEN)     VCPU7: CPU6 [has=3DT] flags=3D0 poll=3D0 upcall_pend =3D 00, up=
+call_mask =3D 01
+dirty_cpus=3D{6} cpu_affinity=3D{0-127}
+(XEN)     No periodic timer
+(XEN) Notifying guest 0:0 (virq 1, port 5, stat 0/0/0)
+(XEN) Notifying guest 0:1 (virq 1, port 11, stat 0/0/0)
+(XEN) Notifying guest 0:2 (virq 1, port 17, stat 0/0/0)
+(XEN) Notifying guest 0:3 (virq 1, port 23, stat 0/0/0)
+(XEN) Notifying guest 0:4 (virq 1, port 29, stat 0/0/0)
+(XEN) Notifying guest 0:5 (virq 1, port 35, stat 0/0/0)
+(XEN) Notifying guest 0:6 (virq 1, port 41, stat 0/0/0)
+(XEN) Notifying guest 0:7 (virq 1, port 47, stat 0/0/0)
+(XEN) Notifying guest 1:0 (virq 1, port 7, stat 0/0/-1)
+(XEN) Notifying guest 1:1 (virq 1, port 13, stat 0/0/-1)
+(XEN) Notifying guest 1:2 (virq 1, port 19, stat 0/0/0)
+(XEN) Notifying guest 1:3 (virq 1, port 25, stat 0/0/0)
+(XEN) Notifying guest 1:4 (virq 1, port 31, stat 0/0/-1)
+(XEN) Notifying guest 1:5 (virq 1, port 37, stat 0/0/0)
+(XEN) Notifying guest 1:6 (virq 1, port 43, stat 0/0/-1)
+(XEN) Notifying guest 1:7 (virq 1, port 49, stat 0/0/0)
+
+When the guest was unresponsive the console would still show:
+[10174.372092] INFO: rcu_sched detected stalls on CPUs/tasks: { 0 1} (det=
+ected
+by 4, t=3D15002 jiffies)
+[10284.448089] INFO: rcu_bh detected stalls on CPUs/tasks: { 0 1 4 6} (de=
+tected
+by 5, t=3D15004 jiffies)
+
+in a repeating pattern. So I take the above as cpus 1,4 and 6 are polling=
+=2E From
+the dump and the content of lock_spinners I get:
+
+cpu 0 and 1 -> ffff8803bfc13700 (which is runqueue[0] and is unlocked aga=
+in)
+cpu 4 and 6 -> ffffffff81f15ef0 (which is blkif_io_lock and is locked)
+
+Backtraces would be somewhat inconsistent (as always). Note, I should men=
+tion
+that I still had a kernel with my patch applied on that guest. That chang=
+es
+things a bit (actually it takes a bit longer to hang but again that might=
+ be
+just a matter of timing). The strange lock state of 2 spinners on an unlo=
+cked
+lock remains the same with or without it.
+
+One question about the patch actually, would anybody think that there cou=
+ld be a
+case where the unlocking cpu has itself on the spinners list? I did not t=
+hink so
+but that might be wrong.
+> =20
+> The IRQ handler for the spinlock evtchn in Linux is:
+>         static irqreturn_t dummy_handler(int irq, void *dev_id)
+>         {
+>                 BUG();
+>                 return IRQ_HANDLED;
+>         }
+>        =20
+> and right after we register it:
+>                 disable_irq(irq); /* make sure it's never delivered */
+>=20
+> The is no enable -- ignoring bugs of which there have been couple of
+> instances, but those trigger the BUG() so are pretty obvious.
+>=20
+> Ian.
+>=20
+>=20
+
+
+
+
+
+--------------enigDCF9146FEFDB17A1136CD1F0
+Content-Type: application/pgp-signature; name="signature.asc"
+Content-Description: OpenPGP digital signature
+Content-Disposition: attachment; filename="signature.asc"
+
+-----BEGIN PGP SIGNATURE-----
+Version: GnuPG v1.4.11 (GNU/Linux)
+Comment: Using GnuPG with Mozilla - http://www.enigmail.net/
+
+iQIcBAEBCgAGBQJQfs0GAAoJEOhnXe7L7s6jwXUQAL5NF6D2cs6XlFgWJ7CjAZtL
+jJCCkonPut/ZJG081Jb0F8ZOx8dbHame2/ypTNPghZVNnfWMwPR9Niy99Jk4l2sm
+H2jMJ2lAfYt2cHHI6T31pbcrO5JJ5aYrRn3A6CS8LIiTSY3gc0CGgIVWU5FWFwGJ
+czSTqV9Wk7cMIEkdQOSnCotBQ942wa9tI0otMv8RUMBfdfUa89DmuMh571AXLu9p
+x1KGfwNRo7m6S/1SvO5GnA0lUGueC86deHH+zCRPq003LNIHZR55H/FRwMo4wZxE
+i5UjUkiVaZdi4DHawVgfWjyVx5BPfLVBAmKCTu5PRcVIF2wv9PXEKXGFtu2uAte0
+0qvaav7PIEvAkBlFH4iaXkvLlUEoBTB3OUhxz46WcdzuM09D4m2WqpckJezsw+pP
+zC2wiw5H+D4KCqGaRLXIc+zidBbzE7C2Y+SJmp3QWO1174VKOwnI0hsVD8uaky/7
+6OcyktOX3kf9Hs+Cpc1XneGYWLZmE8v5jfz4JTiVq1YQs35deHK6tvDLaMBrnSk5
+1ZW4EAGMSVTk11BxOYlfOqwz6YRmm829xKM/j96zbOeqVjU70fs1ZfmQfSQeyYkK
+rDxo4UagRdLcxFlNlvFVABP922oZJe0sVuyJXyK13xc76bjDSeGBpp/O3DWuTXj5
+e+NdMunsg2owKoGESWjB
+=JD2M
+-----END PGP SIGNATURE-----
+
+--------------enigDCF9146FEFDB17A1136CD1F0--
+
+
+--===============6214944843867296276==
+Content-Type: text/plain; charset="us-ascii"
+MIME-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Content-Disposition: inline
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
+--===============6214944843867296276==--
+
+
diff --git a/config/examples/test/corpus/<507ED038.8000806@citrix.com> b/config/examples/test/corpus/<507ED038.8000806@citrix.com>
new file mode 100644 (file)
index 0000000..25b4220
--- /dev/null
@@ -0,0 +1,633 @@
+From xen-devel-bounces@lists.xen.org Wed Oct 17 16:39:40 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 17 Oct 2012 16:39:40 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TOViW-0003ki-Dy
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 17 Oct 2012 16:39:40 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TOVea-0006bk-MA; Wed, 17 Oct 2012 15:35:28 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Andrew.Cooper3@citrix.com>) id 1TOVeY-0006bc-4H
+       for xen-devel@lists.xen.org; Wed, 17 Oct 2012 15:35:26 +0000
+Received: from [85.158.143.99:26968] by server-2.bemta-4.messagelabs.com id
+       00/8E-22268-D30DE705; Wed, 17 Oct 2012 15:35:25 +0000
+X-Env-Sender: Andrew.Cooper3@citrix.com
+X-Msg-Ref: server-6.tower-216.messagelabs.com!1350488121!27502628!1
+X-Originating-IP: [66.165.176.63]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyODMwNDk=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 18019 invoked from network); 17 Oct 2012 15:35:23 -0000
+Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
+       by server-6.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
+       17 Oct 2012 15:35:23 -0000
+X-IronPort-AV: E=Sophos;i="4.80,601,1344211200"; 
+       d="scan'208,217";a="211577252"
+Received: from ftlpmailmx01.citrite.net ([10.13.107.65])
+       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       17 Oct 2012 15:35:21 +0000
+Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
+       (10.13.107.65) with Microsoft SMTP Server id 8.3.279.1;
+       Wed, 17 Oct 2012 11:35:20 -0400
+Received: from andrewcoop.uk.xensource.com ([10.80.2.18])      by
+       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
+       <andrew.cooper3@citrix.com>)    id 1TOVeS-0001Vl-9u;
+       Wed, 17 Oct 2012 16:35:20 +0100
+Message-ID: <507ED038.8000806@citrix.com>
+Date: Wed, 17 Oct 2012 16:35:20 +0100
+From: Andrew Cooper <andrew.cooper3@citrix.com>
+User-Agent: Mozilla/5.0 (X11; Linux x86_64;
+       rv:16.0) Gecko/20121011 Thunderbird/16.0.1
+MIME-Version: 1.0
+To: Stefan Bader <stefan.bader@canonical.com>
+References: <1350479456-4007-1-git-send-email-stefan.bader@canonical.com>
+       <507EB27D.8050308@citrix.com>
+       <1350482118.2460.74.camel@zakaz.uk.xensource.com>
+       <507ECD06.2050407@canonical.com>
+In-Reply-To: <507ECD06.2050407@canonical.com>
+X-Enigmail-Version: 1.4.5
+Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
+       Ian Campbell <Ian.Campbell@citrix.com>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: multipart/mixed; boundary="===============6179704354617584911=="
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.6 required=5.0 tests=BAYES_00,HTML_MESSAGE,
+       RCVD_IN_DNSWL_MED,RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham
+       version=3.3.1
+Subject: Re: [Xen-devel] Xen PVM: Strange lockups when running PostgreSQL
+ load
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+--===============6179704354617584911==
+Content-Type: multipart/alternative;
+       boundary="------------030607010300050505080009"
+
+--------------030607010300050505080009
+Content-Type: text/plain; charset="UTF-8"
+Content-Transfer-Encoding: 7bit
+
+
+On 17/10/12 16:21, Stefan Bader wrote:
+> On 17.10.2012 15:55, Ian Campbell wrote:
+>> On Wed, 2012-10-17 at 14:28 +0100, Andrew Cooper wrote:
+>>> In our case, certain processes were locking up, and it turned out that
+>>> the kernel was issuing SCHOP_poll hypercalls (same the stack trace on
+>>> your launchpad ticket) on its own spinlock IPI event channel
+>>> (understandable, as its a spinlock), but with the event channel
+>>> masked, so it would never wake up from the poll.
+>>
+>> I think (but you might want to check) that SCHEDOP_poll works (or is
+>> supposed to work!) regardless of whether the specific evtchn you ask for
+>> is masked or not.
+>
+> I was assuming it to be supposed to work at least in Xen 4.1.2. Or at
+least if
+> it did not I would hope to catch VCPUs rather sitting on the hypercall
+than
+> doing nothing. Of course I cannot say how reliable information in
+crash is as
+> this is something new to do after Daniel fixed crash.
+>
+>>
+>> The Linux PV spinlock implementation takes advantage of this because it
+>> never wants to take a real interrupt from the spinlock poller evtchn.
+>
+> Right, I probably should have realized that. Though I guess it is still
+> interesting to see whether the channel is pending.
+>
+> So when just recreating, I got the q and e info which is (assuming the
+guest
+> domain is enough):
+>
+> (XEN) Event channel information for domain 1:
+> (XEN) Polling vCPUs: {1,4,6}
+> (XEN) port [p/m]
+> (XEN) 1 [0/0]: s=3 n=0 d=0 p=68 x=0
+> (XEN) 2 [1/0]: s=3 n=0 d=0 p=69 x=0
+> (XEN) 3 [1/0]: s=5 n=0 v=0 x=0
+> (XEN) 4 [1/1]: s=6 n=0 x=0
+> (XEN) 5 [1/0]: s=6 n=0 x=0
+> (XEN) 6 [0/0]: s=6 n=0 x=0
+> (XEN) 7 [0/0]: s=5 n=0 v=1 x=0
+> (XEN) 8 [0/0]: s=6 n=0 x=0
+> (XEN) 9 [1/0]: s=5 n=1 v=0 x=0
+> (XEN) 10 [0/1]: s=6 n=1 x=0
+> (XEN) 11 [1/0]: s=6 n=1 x=0
+> (XEN) 12 [0/0]: s=6 n=1 x=0
+> (XEN) 13 [0/0]: s=5 n=1 v=1 x=0
+> (XEN) 14 [0/0]: s=6 n=1 x=0
+> (XEN) 15 [0/0]: s=5 n=2 v=0 x=0
+> (XEN) 16 [1/1]: s=6 n=2 x=0
+> (XEN) 17 [0/0]: s=6 n=2 x=0
+> (XEN) 18 [0/0]: s=6 n=2 x=0
+> (XEN) 19 [0/0]: s=5 n=2 v=1 x=0
+> (XEN) 20 [0/0]: s=6 n=2 x=0
+> (XEN) 21 [0/0]: s=5 n=3 v=0 x=0
+> (XEN) 22 [1/1]: s=6 n=3 x=0
+> (XEN) 23 [0/0]: s=6 n=3 x=0
+> (XEN) 24 [0/0]: s=6 n=3 x=0
+> (XEN) 25 [0/0]: s=5 n=3 v=1 x=0
+> (XEN) 26 [0/0]: s=6 n=3 x=0
+> (XEN) 27 [1/0]: s=5 n=4 v=0 x=0
+> (XEN) 28 [0/1]: s=6 n=4 x=0
+> (XEN) 29 [1/0]: s=6 n=4 x=0
+> (XEN) 30 [0/0]: s=6 n=4 x=0
+> (XEN) 31 [0/0]: s=5 n=4 v=1 x=0
+> (XEN) 32 [0/0]: s=6 n=4 x=0
+> (XEN) 33 [0/0]: s=5 n=5 v=0 x=0
+> (XEN) 34 [0/1]: s=6 n=5 x=0
+> (XEN) 35 [0/0]: s=6 n=5 x=0
+> (XEN) 36 [0/0]: s=6 n=5 x=0
+> (XEN) 37 [0/0]: s=5 n=5 v=1 x=0
+> (XEN) 38 [0/0]: s=6 n=5 x=0
+> (XEN) 39 [1/0]: s=5 n=6 v=0 x=0
+> (XEN) 40 [0/1]: s=6 n=6 x=0
+> (XEN) 41 [1/0]: s=6 n=6 x=0
+> (XEN) 42 [0/0]: s=6 n=6 x=0
+> (XEN) 43 [0/0]: s=5 n=6 v=1 x=0
+> (XEN) 44 [0/0]: s=6 n=6 x=0event channel
+> (XEN) 45 [0/0]: s=5 n=7 v=0 x=0
+> (XEN) 46 [1/1]: s=6 n=7 x=0
+> (XEN) 47 [0/0]: s=6 n=7 x=0
+> (XEN) 48 [0/0]: s=6 n=7 x=0
+> (XEN) 49 [0/0]: s=5 n=7 v=1 x=0
+> (XEN) 50 [0/0]: s=6 n=7 x=0
+> (XEN) 51 [0/0]: s=3 n=7 d=0 p=70 x=0
+> (XEN) 52 [0/0]: s=3 n=0 d=0 p=71 x=0
+> (XEN) 53 [0/0]: s=3 n=0 d=0 p=72 x=0
+> (XEN) 54 [0/0]: s=3 n=0 d=0 p=73 x=0
+> (XEN) 55 [1/0]: s=3 n=0 d=0 p=74 x=0
+>
+> [maybe someone can tell me what the s,n,d,p and x mean]
+
+s = state.  0 = free, 1 = reserved, 2 = unbound, 3 = inter-domain, 4 =
+pirq, 5 = virq, 6 = ipi
+n = target vcpu id to notify
+x = boolean indicating whether xen is a consumer of the event channel or
+not.
+
+d = target domain (when appropriate)  In this case, p is the target port.
+
+>
+>
+> (XEN) Rangesets belonging to domain 1:
+> (XEN) I/O Ports { }
+> (XEN) Interrupts { }
+> (XEN) I/O Memory { }
+> (XEN) Memory pages belonging to domain 1:
+> (XEN) DomPage list too long to display
+> (XEN) XenPage 00000000008000ab: caf=c000000000000002, taf=7400000000000002
+> (XEN) XenPage 00000000008000aa: caf=c000000000000002, taf=7400000000000002
+> (XEN) XenPage 00000000008000a9: caf=c000000000000002, taf=7400000000000002
+> (XEN) XenPage 00000000008000a8: caf=c000000000000001, taf=7400000000000001
+> (XEN) XenPage 00000000000dfae4: caf=c000000000000002, taf=7400000000000002
+> (XEN) VCPU information and callbacks for domain 1:
+> (XEN) VCPU0: CPU3 [has=T] flags=0 poll=0 upcall_pend = 01, upcall_mask
+= 01
+> dirty_cpus={3} cpu_affinity={0-127}
+> (XEN) No periodic timer
+> (XEN) VCPU1: CPU7 [has=F] flags=1 poll=10 upcall_pend = 01,
+upcall_mask = 01
+> dirty_cpus={} cpu_affinity={0-127}
+> (XEN) No periodic timer
+> (XEN) VCPU2: CPU4 [has=F] flags=1 poll=0 upcall_pend = 00, upcall_mask
+= 00
+> dirty_cpus={} cpu_affinity={0-127}
+> (XEN) No periodic timer
+> (XEN) VCPU3: CPU5 [has=F] flags=1 poll=0 upcall_pend = 00, upcall_mask
+= 00
+> dirty_cpus={} cpu_affinity={0-127}
+> (XEN) No periodic timer
+> (XEN) VCPU4: CPU6 [has=F] flags=1 poll=28 upcall_pend = 01,
+upcall_mask = 01
+> dirty_cpus={} cpu_affinity={0-127}
+> (XEN) No periodic timer
+> (XEN) VCPU5: CPU7 [has=F] flags=1 poll=0 upcall_pend = 00, upcall_mask
+= 00
+> dirty_cpus={7} cpu_affinity={0-127}
+> (XEN) No periodic timer
+> (XEN) VCPU6: CPU0 [has=F] flags=1 poll=40 upcall_pend = 01,
+upcall_mask = 01
+> dirty_cpus={} cpu_affinity={0-127}
+> (XEN) No periodic timer
+> (XEN) VCPU7: CPU6 [has=T] flags=0 poll=0 upcall_pend = 00, upcall_mask
+= 01
+> dirty_cpus={6} cpu_affinity={0-127}
+> (XEN) No periodic timer
+> (XEN) Notifying guest 0:0 (virq 1, port 5, stat 0/0/0)
+> (XEN) Notifying guest 0:1 (virq 1, port 11, stat 0/0/0)
+> (XEN) Notifying guest 0:2 (virq 1, port 17, stat 0/0/0)
+> (XEN) Notifying guest 0:3 (virq 1, port 23, stat 0/0/0)
+> (XEN) Notifying guest 0:4 (virq 1, port 29, stat 0/0/0)
+> (XEN) Notifying guest 0:5 (virq 1, port 35, stat 0/0/0)
+> (XEN) Notifying guest 0:6 (virq 1, port 41, stat 0/0/0)
+> (XEN) Notifying guest 0:7 (virq 1, port 47, stat 0/0/0)
+> (XEN) Notifying guest 1:0 (virq 1, port 7, stat 0/0/-1)
+> (XEN) Notifying guest 1:1 (virq 1, port 13, stat 0/0/-1)
+> (XEN) Notifying guest 1:2 (virq 1, port 19, stat 0/0/0)
+> (XEN) Notifying guest 1:3 (virq 1, port 25, stat 0/0/0)
+> (XEN) Notifying guest 1:4 (virq 1, port 31, stat 0/0/-1)
+> (XEN) Notifying guest 1:5 (virq 1, port 37, stat 0/0/0)
+> (XEN) Notifying guest 1:6 (virq 1, port 43, stat 0/0/-1)
+> (XEN) Notifying guest 1:7 (virq 1, port 49, stat 0/0/0)
+
+So in this case, vcpu 1 is in a poll, on port 10, which is an IPI event
+channel for itself.
+
+Same for vcpu 4, except it is on port 28, and for vcpu 6 on port 60.
+
+In each case, the event channels are masked (no surprise given the
+conversation so far on this thread), and have no pending events. 
+Therefore, I believe we are looking at the same bug.
+
+
+>
+>
+> When the guest was unresponsive the console would still show:
+> [10174.372092] INFO: rcu_sched detected stalls on CPUs/tasks: { 0 1}
+(detected
+> by 4, t=15002 jiffies)
+> [10284.448089] INFO: rcu_bh detected stalls on CPUs/tasks: { 0 1 4 6}
+(detected
+> by 5, t=15004 jiffies)
+>
+> in a repeating pattern. So I take the above as cpus 1,4 and 6 are
+polling. From
+> the dump and the content of lock_spinners I get:
+>
+> cpu 0 and 1 -> ffff8803bfc13700 (which is runqueue[0] and is unlocked
+again)
+> cpu 4 and 6 -> ffffffff81f15ef0 (which is blkif_io_lock and is locked)
+
+I wonder if there is possibly a race condition between notifying that a
+lock has been unlocked, and another vcpu trying to poll after deciding
+that the lock is locked.
+
+The other option is that there is a bug in working out which event
+channel to notify when a lock is unlocked.
+
+~Andrew
+
+>
+>
+> Backtraces would be somewhat inconsistent (as always). Note, I should
+mention
+> that I still had a kernel with my patch applied on that guest. That
+changes
+> things a bit (actually it takes a bit longer to hang but again that
+might be
+> just a matter of timing). The strange lock state of 2 spinners on an
+unlocked
+> lock remains the same with or without it.
+>
+> One question about the patch actually, would anybody think that there
+could be a
+> case where the unlocking cpu has itself on the spinners list? I did
+not think so
+> but that might be wrong.
+>>
+>> The IRQ handler for the spinlock evtchn in Linux is:
+>> static irqreturn_t dummy_handler(int irq, void *dev_id)
+>> {
+>> BUG();
+>> return IRQ_HANDLED;
+>> }
+>>
+>> and right after we register it:
+>> disable_irq(irq); /* make sure it's never delivered */
+>>
+>> The is no enable -- ignoring bugs of which there have been couple of
+>> instances, but those trigger the BUG() so are pretty obvious.
+>>
+>> Ian.
+>>
+>>
+>
+>
+>
+>
+
+-- 
+Andrew Cooper - Dom0 Kernel Engineer, Citrix XenServer
+T: +44 (0)1223 225 900, http://www.citrix.com
+
+
+--------------030607010300050505080009
+Content-Type: text/html; charset="UTF-8"
+Content-Transfer-Encoding: 8bit
+
+<html>
+  <head>
+    <meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
+  </head>
+  <body bgcolor="#FFFFFF" text="#000000">
+    <br>
+    On 17/10/12 16:21, Stefan Bader wrote:<br>
+    <span style="white-space: pre;">&gt; On 17.10.2012 15:55, Ian
+      Campbell wrote:<br>
+      &gt;&gt; On Wed, 2012-10-17 at 14:28 +0100, Andrew Cooper wrote:<br>
+      &gt;&gt;&gt; In our case, certain processes were locking up, and
+      it turned out that<br>
+      &gt;&gt;&gt; the kernel was issuing SCHOP_poll hypercalls (same
+      the stack trace on<br>
+      &gt;&gt;&gt; your launchpad ticket) on its own spinlock IPI event
+      channel<br>
+      &gt;&gt;&gt; (understandable, as its a spinlock), but with the
+      event channel<br>
+      &gt;&gt;&gt; masked, so it would never wake up from the poll. <br>
+      &gt;&gt;<br>
+      &gt;&gt; I think (but you might want to check) that SCHEDOP_poll
+      works (or is<br>
+      &gt;&gt; supposed to work!) regardless of whether the specific
+      evtchn you ask for<br>
+      &gt;&gt; is masked or not.<br>
+      &gt;<br>
+      &gt; I was assuming it to be supposed to work at least in Xen
+      4.1.2. Or at least if<br>
+      &gt; it did not I would hope to catch VCPUs rather sitting on the
+      hypercall than<br>
+      &gt; doing nothing. Of course I cannot say how reliable
+      information in crash is as<br>
+      &gt; this is something new to do after Daniel fixed crash.<br>
+      &gt;<br>
+      &gt;&gt;<br>
+      &gt;&gt; The Linux PV spinlock implementation takes advantage of
+      this because it<br>
+      &gt;&gt; never wants to take a real interrupt from the spinlock
+      poller evtchn.<br>
+      &gt;<br>
+      &gt; Right, I probably should have realized that. Though I guess
+      it is still<br>
+      &gt; interesting to see whether the channel is pending.<br>
+      &gt;<br>
+      &gt; So when just recreating, I got the q and e info which is
+      (assuming the guest<br>
+      &gt; domain is enough):<br>
+      &gt;<br>
+      &gt; (XEN) Event channel information for domain 1:<br>
+      &gt; (XEN) Polling vCPUs: {1,4,6}<br>
+      &gt; (XEN) port [p/m]<br>
+      &gt; (XEN) 1 [0/0]: s=3 n=0 d=0 p=68 x=0<br>
+      &gt; (XEN) 2 [1/0]: s=3 n=0 d=0 p=69 x=0<br>
+      &gt; (XEN) 3 [1/0]: s=5 n=0 v=0 x=0<br>
+      &gt; (XEN) 4 [1/1]: s=6 n=0 x=0<br>
+      &gt; (XEN) 5 [1/0]: s=6 n=0 x=0<br>
+      &gt; (XEN) 6 [0/0]: s=6 n=0 x=0<br>
+      &gt; (XEN) 7 [0/0]: s=5 n=0 v=1 x=0<br>
+      &gt; (XEN) 8 [0/0]: s=6 n=0 x=0<br>
+      &gt; (XEN) 9 [1/0]: s=5 n=1 v=0 x=0<br>
+      &gt; (XEN) 10 [0/1]: s=6 n=1 x=0<br>
+      &gt; (XEN) 11 [1/0]: s=6 n=1 x=0<br>
+      &gt; (XEN) 12 [0/0]: s=6 n=1 x=0<br>
+      &gt; (XEN) 13 [0/0]: s=5 n=1 v=1 x=0<br>
+      &gt; (XEN) 14 [0/0]: s=6 n=1 x=0<br>
+      &gt; (XEN) 15 [0/0]: s=5 n=2 v=0 x=0<br>
+      &gt; (XEN) 16 [1/1]: s=6 n=2 x=0<br>
+      &gt; (XEN) 17 [0/0]: s=6 n=2 x=0<br>
+      &gt; (XEN) 18 [0/0]: s=6 n=2 x=0<br>
+      &gt; (XEN) 19 [0/0]: s=5 n=2 v=1 x=0<br>
+      &gt; (XEN) 20 [0/0]: s=6 n=2 x=0<br>
+      &gt; (XEN) 21 [0/0]: s=5 n=3 v=0 x=0<br>
+      &gt; (XEN) 22 [1/1]: s=6 n=3 x=0<br>
+      &gt; (XEN) 23 [0/0]: s=6 n=3 x=0<br>
+      &gt; (XEN) 24 [0/0]: s=6 n=3 x=0<br>
+      &gt; (XEN) 25 [0/0]: s=5 n=3 v=1 x=0<br>
+      &gt; (XEN) 26 [0/0]: s=6 n=3 x=0<br>
+      &gt; (XEN) 27 [1/0]: s=5 n=4 v=0 x=0<br>
+      &gt; (XEN) 28 [0/1]: s=6 n=4 x=0<br>
+      &gt; (XEN) 29 [1/0]: s=6 n=4 x=0<br>
+      &gt; (XEN) 30 [0/0]: s=6 n=4 x=0<br>
+      &gt; (XEN) 31 [0/0]: s=5 n=4 v=1 x=0<br>
+      &gt; (XEN) 32 [0/0]: s=6 n=4 x=0<br>
+      &gt; (XEN) 33 [0/0]: s=5 n=5 v=0 x=0<br>
+      &gt; (XEN) 34 [0/1]: s=6 n=5 x=0<br>
+      &gt; (XEN) 35 [0/0]: s=6 n=5 x=0<br>
+      &gt; (XEN) 36 [0/0]: s=6 n=5 x=0<br>
+      &gt; (XEN) 37 [0/0]: s=5 n=5 v=1 x=0<br>
+      &gt; (XEN) 38 [0/0]: s=6 n=5 x=0<br>
+      &gt; (XEN) 39 [1/0]: s=5 n=6 v=0 x=0<br>
+      &gt; (XEN) 40 [0/1]: s=6 n=6 x=0<br>
+      &gt; (XEN) 41 [1/0]: s=6 n=6 x=0<br>
+      &gt; (XEN) 42 [0/0]: s=6 n=6 x=0<br>
+      &gt; (XEN) 43 [0/0]: s=5 n=6 v=1 x=0<br>
+      &gt; (XEN) 44 [0/0]: s=6 n=6 x=0event channel<br>
+      &gt; (XEN) 45 [0/0]: s=5 n=7 v=0 x=0<br>
+      &gt; (XEN) 46 [1/1]: s=6 n=7 x=0<br>
+      &gt; (XEN) 47 [0/0]: s=6 n=7 x=0<br>
+      &gt; (XEN) 48 [0/0]: s=6 n=7 x=0<br>
+      &gt; (XEN) 49 [0/0]: s=5 n=7 v=1 x=0<br>
+      &gt; (XEN) 50 [0/0]: s=6 n=7 x=0<br>
+      &gt; (XEN) 51 [0/0]: s=3 n=7 d=0 p=70 x=0<br>
+      &gt; (XEN) 52 [0/0]: s=3 n=0 d=0 p=71 x=0<br>
+      &gt; (XEN) 53 [0/0]: s=3 n=0 d=0 p=72 x=0<br>
+      &gt; (XEN) 54 [0/0]: s=3 n=0 d=0 p=73 x=0<br>
+      &gt; (XEN) 55 [1/0]: s=3 n=0 d=0 p=74 x=0<br>
+      &gt;<br>
+      &gt; [maybe someone can tell me what the s,n,d,p and x mean]</span><br>
+    <br>
+    s = state.  0 = free, 1 = reserved, 2 = unbound, 3 = inter-domain, 4
+    = pirq, 5 = virq, 6 = ipi<br>
+    n = target vcpu id to notify<br>
+    x = boolean indicating whether xen is a consumer of the event
+    channel or not.<br>
+    <br>
+    d = target domain (when appropriate)  In this case, p is the target
+    port.<br>
+    <br>
+    <span style="white-space: pre;">&gt;<br>
+      &gt;<br>
+      &gt; (XEN) Rangesets belonging to domain 1:<br>
+      &gt; (XEN) I/O Ports { }<br>
+      &gt; (XEN) Interrupts { }<br>
+      &gt; (XEN) I/O Memory { }<br>
+      &gt; (XEN) Memory pages belonging to domain 1:<br>
+      &gt; (XEN) DomPage list too long to display<br>
+      &gt; (XEN) XenPage 00000000008000ab: caf=c000000000000002,
+      taf=7400000000000002<br>
+      &gt; (XEN) XenPage 00000000008000aa: caf=c000000000000002,
+      taf=7400000000000002<br>
+      &gt; (XEN) XenPage 00000000008000a9: caf=c000000000000002,
+      taf=7400000000000002<br>
+      &gt; (XEN) XenPage 00000000008000a8: caf=c000000000000001,
+      taf=7400000000000001<br>
+      &gt; (XEN) XenPage 00000000000dfae4: caf=c000000000000002,
+      taf=7400000000000002<br>
+      &gt; (XEN) VCPU information and callbacks for domain 1:<br>
+      &gt; (XEN) VCPU0: CPU3 [has=T] flags=0 poll=0 upcall_pend = 01,
+      upcall_mask = 01<br>
+      &gt; dirty_cpus={3} cpu_affinity={0-127}<br>
+      &gt; (XEN) No periodic timer<br>
+      &gt; (XEN) VCPU1: CPU7 [has=F] flags=1 poll=10 upcall_pend = 01,
+      upcall_mask = 01<br>
+      &gt; dirty_cpus={} cpu_affinity={0-127}<br>
+      &gt; (XEN) No periodic timer<br>
+      &gt; (XEN) VCPU2: CPU4 [has=F] flags=1 poll=0 upcall_pend = 00,
+      upcall_mask = 00<br>
+      &gt; dirty_cpus={} cpu_affinity={0-127}<br>
+      &gt; (XEN) No periodic timer<br>
+      &gt; (XEN) VCPU3: CPU5 [has=F] flags=1 poll=0 upcall_pend = 00,
+      upcall_mask = 00<br>
+      &gt; dirty_cpus={} cpu_affinity={0-127}<br>
+      &gt; (XEN) No periodic timer<br>
+      &gt; (XEN) VCPU4: CPU6 [has=F] flags=1 poll=28 upcall_pend = 01,
+      upcall_mask = 01<br>
+      &gt; dirty_cpus={} cpu_affinity={0-127}<br>
+      &gt; (XEN) No periodic timer<br>
+      &gt; (XEN) VCPU5: CPU7 [has=F] flags=1 poll=0 upcall_pend = 00,
+      upcall_mask = 00<br>
+      &gt; dirty_cpus={7} cpu_affinity={0-127}<br>
+      &gt; (XEN) No periodic timer<br>
+      &gt; (XEN) VCPU6: CPU0 [has=F] flags=1 poll=40 upcall_pend = 01,
+      upcall_mask = 01<br>
+      &gt; dirty_cpus={} cpu_affinity={0-127}<br>
+      &gt; (XEN) No periodic timer<br>
+      &gt; (XEN) VCPU7: CPU6 [has=T] flags=0 poll=0 upcall_pend = 00,
+      upcall_mask = 01<br>
+      &gt; dirty_cpus={6} cpu_affinity={0-127}<br>
+      &gt; (XEN) No periodic timer<br>
+      &gt; (XEN) Notifying guest 0:0 (virq 1, port 5, stat 0/0/0)<br>
+      &gt; (XEN) Notifying guest 0:1 (virq 1, port 11, stat 0/0/0)<br>
+      &gt; (XEN) Notifying guest 0:2 (virq 1, port 17, stat 0/0/0)<br>
+      &gt; (XEN) Notifying guest 0:3 (virq 1, port 23, stat 0/0/0)<br>
+      &gt; (XEN) Notifying guest 0:4 (virq 1, port 29, stat 0/0/0)<br>
+      &gt; (XEN) Notifying guest 0:5 (virq 1, port 35, stat 0/0/0)<br>
+      &gt; (XEN) Notifying guest 0:6 (virq 1, port 41, stat 0/0/0)<br>
+      &gt; (XEN) Notifying guest 0:7 (virq 1, port 47, stat 0/0/0)<br>
+      &gt; (XEN) Notifying guest 1:0 (virq 1, port 7, stat 0/0/-1)<br>
+      &gt; (XEN) Notifying guest 1:1 (virq 1, port 13, stat 0/0/-1)<br>
+      &gt; (XEN) Notifying guest 1:2 (virq 1, port 19, stat 0/0/0)<br>
+      &gt; (XEN) Notifying guest 1:3 (virq 1, port 25, stat 0/0/0)<br>
+      &gt; (XEN) Notifying guest 1:4 (virq 1, port 31, stat 0/0/-1)<br>
+      &gt; (XEN) Notifying guest 1:5 (virq 1, port 37, stat 0/0/0)<br>
+      &gt; (XEN) Notifying guest 1:6 (virq 1, port 43, stat 0/0/-1)<br>
+      &gt; (XEN) Notifying guest 1:7 (virq 1, port 49, stat 0/0/0)</span><br>
+    <br>
+    So in this case, vcpu 1 is in a poll, on port 10, which is an IPI
+    event channel for itself.<br>
+    <br>
+    Same for vcpu 4, except it is on port 28, and for vcpu 6 on port 60.<br>
+    <br>
+    In each case, the event channels are masked (no surprise given the
+    conversation so far on this thread), and have no pending events. 
+    Therefore, I believe we are looking at the same bug.<br>
+    <br>
+    <br>
+    <span style="white-space: pre;">&gt;<br>
+      &gt;<br>
+      &gt; When the guest was unresponsive the console would still show:<br>
+      &gt; [10174.372092] INFO: rcu_sched detected stalls on CPUs/tasks:
+      { 0 1} (detected<br>
+      &gt; by 4, t=15002 jiffies)<br>
+      &gt; [10284.448089] INFO: rcu_bh detected stalls on CPUs/tasks: {
+      0 1 4 6} (detected<br>
+      &gt; by 5, t=15004 jiffies)<br>
+      &gt;<br>
+      &gt; in a repeating pattern. So I take the above as cpus 1,4 and 6
+      are polling. From<br>
+      &gt; the dump and the content of lock_spinners I get:<br>
+      &gt;<br>
+      &gt; cpu 0 and 1 -&gt; ffff8803bfc13700 (which is runqueue[0] and
+      is unlocked again)<br>
+      &gt; cpu 4 and 6 -&gt; ffffffff81f15ef0 (which is blkif_io_lock
+      and is locked)</span><br>
+    <br>
+    I wonder if there is possibly a race condition between notifying
+    that a lock has been unlocked, and another vcpu trying to poll after
+    deciding that the lock is locked.<br>
+    <br>
+    The other option is that there is a bug in working out which event
+    channel to notify when a lock is unlocked.<br>
+    <br>
+    ~Andrew<br>
+    <br>
+    <span style="white-space: pre;">&gt;<br>
+      &gt;<br>
+      &gt; Backtraces would be somewhat inconsistent (as always). Note,
+      I should mention<br>
+      &gt; that I still had a kernel with my patch applied on that
+      guest. That changes<br>
+      &gt; things a bit (actually it takes a bit longer to hang but
+      again that might be<br>
+      &gt; just a matter of timing). The strange lock state of 2
+      spinners on an unlocked<br>
+      &gt; lock remains the same with or without it.<br>
+      &gt;<br>
+      &gt; One question about the patch actually, would anybody think
+      that there could be a<br>
+      &gt; case where the unlocking cpu has itself on the spinners list?
+      I did not think so<br>
+      &gt; but that might be wrong.<br>
+      &gt;&gt; <br>
+      &gt;&gt; The IRQ handler for the spinlock evtchn in Linux is:<br>
+      &gt;&gt; static irqreturn_t dummy_handler(int irq, void *dev_id)<br>
+      &gt;&gt; {<br>
+      &gt;&gt; BUG();<br>
+      &gt;&gt; return IRQ_HANDLED;<br>
+      &gt;&gt; }<br>
+      &gt;&gt; <br>
+      &gt;&gt; and right after we register it:<br>
+      &gt;&gt; disable_irq(irq); /* make sure it's never delivered */<br>
+      &gt;&gt;<br>
+      &gt;&gt; The is no enable -- ignoring bugs of which there have
+      been couple of<br>
+      &gt;&gt; instances, but those trigger the BUG() so are pretty
+      obvious.<br>
+      &gt;&gt;<br>
+      &gt;&gt; Ian.<br>
+      &gt;&gt;<br>
+      &gt;&gt;<br>
+      &gt;<br>
+      &gt;<br>
+      &gt;<br>
+      &gt;</span><br>
+    <br>
+    -- <br>
+    Andrew Cooper - Dom0 Kernel Engineer, Citrix XenServer<br>
+    T: +44 (0)1223 225 900, <a class="moz-txt-link-freetext" href="http://www.citrix.com">http://www.citrix.com</a><br>
+    <br>
+  </body>
+</html>
+
+--------------030607010300050505080009--
+
+
+--===============6179704354617584911==
+Content-Type: text/plain; charset="us-ascii"
+MIME-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Content-Disposition: inline
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
+--===============6179704354617584911==--
+
+
diff --git a/config/examples/test/corpus/<507EDC71.4040400@canonical.com> b/config/examples/test/corpus/<507EDC71.4040400@canonical.com>
new file mode 100644 (file)
index 0000000..b3a26f5
--- /dev/null
@@ -0,0 +1,268 @@
+From xen-devel-bounces@lists.xen.org Wed Oct 17 17:31:30 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 17 Oct 2012 17:31:30 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TOWWi-000427-6q
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 17 Oct 2012 17:31:30 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TOWT4-0000pa-8A; Wed, 17 Oct 2012 16:27:38 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <stefan.bader@canonical.com>) id 1TOWT2-0000pP-Fy
+       for xen-devel@lists.xen.org; Wed, 17 Oct 2012 16:27:36 +0000
+Received: from [85.158.143.35:31299] by server-1.bemta-4.messagelabs.com id
+       7D/7A-19134-77CDE705; Wed, 17 Oct 2012 16:27:35 +0000
+X-Env-Sender: stefan.bader@canonical.com
+X-Msg-Ref: server-2.tower-21.messagelabs.com!1350491254!4763853!1
+X-Originating-IP: [91.189.89.112]
+X-SpamReason: No, hits=0.0 required=7.0 tests=
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 11191 invoked from network); 17 Oct 2012 16:27:35 -0000
+Received: from youngberry.canonical.com (HELO youngberry.canonical.com)
+       (91.189.89.112) by server-2.tower-21.messagelabs.com with SMTP;
+       17 Oct 2012 16:27:35 -0000
+Received: from p5b2e42c0.dip.t-dialin.net ([91.46.66.192] helo=[192.168.2.5])
+       by youngberry.canonical.com with esmtpsa
+       (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71)
+       (envelope-from <stefan.bader@canonical.com>)
+       id 1TOWSy-0004fs-7w; Wed, 17 Oct 2012 16:27:32 +0000
+Message-ID: <507EDC71.4040400@canonical.com>
+Date: Wed, 17 Oct 2012 18:27:29 +0200
+From: Stefan Bader <stefan.bader@canonical.com>
+User-Agent: Mozilla/5.0 (X11; Linux x86_64;
+       rv:16.0) Gecko/20121011 Thunderbird/16.0.1
+MIME-Version: 1.0
+To: Andrew Cooper <andrew.cooper3@citrix.com>
+References: <1350479456-4007-1-git-send-email-stefan.bader@canonical.com>
+       <507EB27D.8050308@citrix.com>
+       <1350482118.2460.74.camel@zakaz.uk.xensource.com>
+       <507ECD06.2050407@canonical.com> <507ED038.8000806@citrix.com>
+In-Reply-To: <507ED038.8000806@citrix.com>
+X-Enigmail-Version: 1.4.5
+Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
+       Ian Campbell <Ian.Campbell@citrix.com>,
+       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: multipart/mixed; boundary="===============2837620664345663613=="
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.6 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] Xen PVM: Strange lockups when running PostgreSQL
+ load
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+This is an OpenPGP/MIME signed message (RFC 2440 and 3156)
+--===============2837620664345663613==
+Content-Type: multipart/signed; micalg=pgp-sha512;
+ protocol="application/pgp-signature";
+ boundary="------------enig2567AA1A474DF249DA5F091A"
+
+This is an OpenPGP/MIME signed message (RFC 2440 and 3156)
+--------------enig2567AA1A474DF249DA5F091A
+Content-Type: text/plain; charset=ISO-8859-1
+Content-Transfer-Encoding: quoted-printable
+
+On 17.10.2012 17:35, Andrew Cooper wrote:
+
+>> (XEN) Event channel information for domain 1:
+>> (XEN) Polling vCPUs: {1,4,6}
+>> (XEN) port [p/m]
+>> (XEN) 4 [1/1]: s=3D6 n=3D0 x=3D0
+>> (XEN) 10 [0/1]: s=3D6 n=3D1 x=3D0
+>> (XEN) 28 [0/1]: s=3D6 n=3D4 x=3D0
+>> (XEN) 40 [0/1]: s=3D6 n=3D6 x=3D0
+>>
+> s =3D state.  0 =3D free, 1 =3D reserved, 2 =3D unbound, 3 =3D inter-do=
+main, 4 =3D
+> pirq, 5 =3D virq, 6 =3D ipi
+> n =3D target vcpu id to notify
+> x =3D boolean indicating whether xen is a consumer of the event channel=
+ or
+> not.
+>=20
+> d =3D target domain (when appropriate)  In this case, p is the target p=
+ort.
+>=20
+
+Thanks (at least something learned today :)) One thing I noticed here, in=
+ the
+event channel info above, pending is 0 for channel 10, 28 and 40 (and set=
+ for 4
+which is the spinlock ipi for cpu 0). But in the VCPU info below (another=
+
+unknown: has=3DT and F) it says upcall_pend for all of them. Unfortunatel=
+y that
+might just mean that things change...
+
+>> (XEN) VCPU0: CPU3 [has=3DT] flags=3D0 poll=3D0 upcall_pend =3D 01, upc=
+all_mask
+> =3D 01
+>> dirty_cpus=3D{3} cpu_affinity=3D{0-127}
+>> (XEN) No periodic timer
+>> (XEN) VCPU1: CPU7 [has=3DF] flags=3D1 poll=3D10 upcall_pend =3D 01,
+> upcall_mask =3D 01
+>> dirty_cpus=3D{} cpu_affinity=3D{0-127}
+>> (XEN) No periodic timer
+
+>> (XEN) VCPU4: CPU6 [has=3DF] flags=3D1 poll=3D28 upcall_pend =3D 01,
+> upcall_mask =3D 01
+>> dirty_cpus=3D{} cpu_affinity=3D{0-127}
+>> (XEN) No periodic timer
+>> (XEN) VCPU6: CPU0 [has=3DF] flags=3D1 poll=3D40 upcall_pend =3D 01,
+> upcall_mask =3D 01
+>> dirty_cpus=3D{} cpu_affinity=3D{0-127}
+>> (XEN) No periodic timer
+>=20
+> So in this case, vcpu 1 is in a poll, on port 10, which is an IPI event=
+
+> channel for itself.
+>=20
+> Same for vcpu 4, except it is on port 28, and for vcpu 6 on port 60.
+>=20
+
+>=20
+> I wonder if there is possibly a race condition between notifying that a=
+
+> lock has been unlocked, and another vcpu trying to poll after deciding
+> that the lock is locked.
+
+There has to be something somehwere, I just cannot spot it. The unlocking=
+ cpu
+will do a wmb() before setting the lock to 0, then a mb() and then check =
+for
+spinners. When failing the quick pack a locker will first set the lockspi=
+nner
+entry, then do a wmb() and increment the spinners count. After that it cl=
+ears
+the event pending and then checks lock again before actually going into p=
+oll.
+
+>=20
+> The other option is that there is a bug in working out which event
+> channel to notify when a lock is unlocked.
+
+I had thought I saw one thing that I tried to fix with my patch. Another =
+train
+of thought would have been any other cpu grabbing the lock always as soon=
+ as it
+gets released and so preventing any cpu in poll from success. But that wo=
+uld
+then show the lock as locked...
+
+>=20
+> ~Andrew
+>=20
+>>
+>>
+>> Backtraces would be somewhat inconsistent (as always). Note, I should
+> mention
+>> that I still had a kernel with my patch applied on that guest. That
+> changes
+>> things a bit (actually it takes a bit longer to hang but again that
+> might be
+>> just a matter of timing). The strange lock state of 2 spinners on an
+> unlocked
+>> lock remains the same with or without it.
+>>
+>> One question about the patch actually, would anybody think that there
+> could be a
+>> case where the unlocking cpu has itself on the spinners list? I did
+> not think so
+>> but that might be wrong.
+>>>
+>>> The IRQ handler for the spinlock evtchn in Linux is:
+>>> static irqreturn_t dummy_handler(int irq, void *dev_id)
+>>> {
+>>> BUG();
+>>> return IRQ_HANDLED;
+>>> }
+>>>
+>>> and right after we register it:
+>>> disable_irq(irq); /* make sure it's never delivered */
+>>>
+>>> The is no enable -- ignoring bugs of which there have been couple of
+>>> instances, but those trigger the BUG() so are pretty obvious.
+>>>
+>>> Ian.
+>>>
+>>>
+>>
+>>
+>>
+>>
+>=20
+>=20
+>=20
+> _______________________________________________
+> Xen-devel mailing list
+> Xen-devel@lists.xen.org
+> http://lists.xen.org/xen-devel
+>=20
+
+
+
+--------------enig2567AA1A474DF249DA5F091A
+Content-Type: application/pgp-signature; name="signature.asc"
+Content-Description: OpenPGP digital signature
+Content-Disposition: attachment; filename="signature.asc"
+
+-----BEGIN PGP SIGNATURE-----
+Version: GnuPG v1.4.11 (GNU/Linux)
+Comment: Using GnuPG with Mozilla - http://www.enigmail.net/
+
+iQIcBAEBCgAGBQJQftxyAAoJEOhnXe7L7s6j3vsQAMcmgY1Ebao/FjiQQZhub8+y
+5LLEOO/DPPlmUICssoz9IKrN4ZOoPGGKSlsuWVIALvbl+DgT8wBLISEAvtcAcXnn
+k7JknLkO49vkgJgy0TstSn4jM3xo5HbyubaALQDrPXawVqFOz133t02b0LLDD3B5
+tZNqYxxWSByX/XYi1UJCQ1LeUdUqyK8luxtZsVL9KP2lTsYxfQOD7+QZ90fReALe
+fvht5N/Dm1RFPkcGdirbP9JlutjbfSsbPHmR5FvHyJ6eYw46tiIEcGXnp8cYOh6y
+pGi1SAAg/c2zOAytPibut2CDdpqwJVX7VzrJsjhj2lnVwvge6ADJS6tr7wgMMj5V
+7J/c1QeHj+u0Dkgz+UutgrHcXHyRwv2iLDq6PppjY5VjbPZlYU6Mhs8E3bzmZzBT
+t1LjGDj4LcoPtH2I3XEr4I5ivClFcLlvEDAVQ45iYy1fp4NxBykc0A0/TgwQ6NIS
+E+JSd4DZM5MDlftue4AelKb9/4lE6G/V+9o4SSSPDcDhJCKZO9pSDTUty9PHFwti
+96XCF0o2F2qH7aOI1UwFfimHGViZshHB0hvxtanoQPw0kulpxhKDUu1Q8CPnBTlm
+7zuKEHtNjf+hoJs62dPPNx+EfgDXS4JeUj54IoMrPoPMBljDRW+q1aQ1WdHa9AMT
+GmjYaVKtKTd7P05P/kaa
+=Wd+1
+-----END PGP SIGNATURE-----
+
+--------------enig2567AA1A474DF249DA5F091A--
+
+
+--===============2837620664345663613==
+Content-Type: text/plain; charset="us-ascii"
+MIME-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Content-Disposition: inline
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
+--===============2837620664345663613==--
+
+
diff --git a/config/examples/test/corpus/<507EE22602000078000A20DB@nat28.tlf.novell.com> b/config/examples/test/corpus/<507EE22602000078000A20DB@nat28.tlf.novell.com>
new file mode 100644 (file)
index 0000000..4327f26
--- /dev/null
@@ -0,0 +1,90 @@
+From xen-devel-bounces@lists.xen.org Wed Oct 17 15:56:49 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 17 Oct 2012 15:56:49 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TOV36-0003ZA-4c
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 17 Oct 2012 15:56:49 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TOUyR-0005LK-Ah; Wed, 17 Oct 2012 14:51:55 +0000
+Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <JBeulich@suse.com>) id 1TOUyP-0005LF-Hj
+       for xen-devel@lists.xen.org; Wed, 17 Oct 2012 14:51:53 +0000
+Received: from [193.109.254.147:37424] by server-15.bemta-14.messagelabs.com
+       id 84/C9-16351-806CE705; Wed, 17 Oct 2012 14:51:52 +0000
+X-Env-Sender: JBeulich@suse.com
+X-Msg-Ref: server-15.tower-27.messagelabs.com!1350485512!2565559!1
+X-Originating-IP: [130.57.49.28]
+X-SpamReason: No, hits=0.0 required=7.0 tests=
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 2323 invoked from network); 17 Oct 2012 14:51:52 -0000
+Received: from nat28.tlf.novell.com (HELO nat28.tlf.novell.com) (130.57.49.28)
+       by server-15.tower-27.messagelabs.com with SMTP;
+       17 Oct 2012 14:51:52 -0000
+Received: from EMEA1-MTA by nat28.tlf.novell.com
+       with Novell_GroupWise; Wed, 17 Oct 2012 15:51:51 +0100
+Message-Id: <507EE22602000078000A20DB@nat28.tlf.novell.com>
+X-Mailer: Novell GroupWise Internet Agent 12.0.0 
+Date: Wed, 17 Oct 2012 15:51:50 +0100
+From: "Jan Beulich" <JBeulich@suse.com>
+To: "Andrew Cooper" <andrew.cooper3@citrix.com>
+References: <1350479456-4007-1-git-send-email-stefan.bader@canonical.com>
+       <507EB27D.8050308@citrix.com>
+In-Reply-To: <507EB27D.8050308@citrix.com>
+Mime-Version: 1.0
+Content-Disposition: inline
+Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>, stefan.bader@canonical.com,
+       xen-devel@lists.xen.org
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.6 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] Xen PVM: Strange lockups when running PostgreSQL
+ load
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+>>> On 17.10.12 at 15:28, Andrew Cooper <andrew.cooper3@citrix.com> wrote:
+> In our case, certain processes were locking up, and it turned out that
+> the kernel was issuing SCHOP_poll hypercalls (same the stack trace on
+> your launchpad ticket) on its own spinlock IPI event channel
+> (understandable, as its a spinlock), but with the event channel masked,
+> so it would never wake up from the poll.
+
+Probably some misunderstanding: The event channel used
+here will always be masked, and whether an event channel is
+masked doesn't matter for the purposes of polling it.
+
+Jan
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<507EEEDE.7040904@citrix.com> b/config/examples/test/corpus/<507EEEDE.7040904@citrix.com>
new file mode 100644 (file)
index 0000000..c8bfe80
--- /dev/null
@@ -0,0 +1,181 @@
+From xen-devel-bounces@lists.xen.org Wed Oct 17 18:49:50 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 17 Oct 2012 18:49:50 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TOXkZ-0004Pm-OM
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 17 Oct 2012 18:49:50 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TOXh5-0004JN-R5; Wed, 17 Oct 2012 17:46:11 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Andrew.Cooper3@citrix.com>) id 1TOXh4-0004JG-K6
+       for xen-devel@lists.xen.org; Wed, 17 Oct 2012 17:46:10 +0000
+Received: from [85.158.139.83:42979] by server-8.bemta-5.messagelabs.com id
+       BA/5F-23193-1EEEE705; Wed, 17 Oct 2012 17:46:09 +0000
+X-Env-Sender: Andrew.Cooper3@citrix.com
+X-Msg-Ref: server-2.tower-182.messagelabs.com!1350495967!32474010!1
+X-Originating-IP: [66.165.176.63]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyODMwNDk=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 32350 invoked from network); 17 Oct 2012 17:46:09 -0000
+Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
+       by server-2.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
+       17 Oct 2012 17:46:09 -0000
+X-IronPort-AV: E=Sophos;i="4.80,602,1344211200"; d="scan'208";a="211598735"
+Received: from ftlpmailmx01.citrite.net ([10.13.107.65])
+       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       17 Oct 2012 17:46:07 +0000
+Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
+       (10.13.107.65) with Microsoft SMTP Server id 8.3.279.1;
+       Wed, 17 Oct 2012 13:46:06 -0400
+Received: from andrewcoop.uk.xensource.com ([10.80.2.18])      by
+       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
+       <andrew.cooper3@citrix.com>)    id 1TOXh0-0003SD-BF;
+       Wed, 17 Oct 2012 18:46:06 +0100
+Message-ID: <507EEEDE.7040904@citrix.com>
+Date: Wed, 17 Oct 2012 18:46:06 +0100
+From: Andrew Cooper <andrew.cooper3@citrix.com>
+User-Agent: Mozilla/5.0 (X11; Linux x86_64;
+       rv:16.0) Gecko/20121011 Thunderbird/16.0.1
+MIME-Version: 1.0
+To: Stefan Bader <stefan.bader@canonical.com>
+References: <1350479456-4007-1-git-send-email-stefan.bader@canonical.com>
+       <507EB27D.8050308@citrix.com>
+       <1350482118.2460.74.camel@zakaz.uk.xensource.com>
+       <507ECD06.2050407@canonical.com> <507ED038.8000806@citrix.com>
+       <507EDC71.4040400@canonical.com>
+In-Reply-To: <507EDC71.4040400@canonical.com>
+X-Enigmail-Version: 1.4.5
+Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
+       Ian Campbell <Ian.Campbell@citrix.com>,
+       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.6 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] Xen PVM: Strange lockups when running PostgreSQL
+ load
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+
+On 17/10/12 17:27, Stefan Bader wrote:
+> On 17.10.2012 17:35, Andrew Cooper wrote:
+>
+>>> (XEN) Event channel information for domain 1:
+>>> (XEN) Polling vCPUs: {1,4,6}
+>>> (XEN) port [p/m]
+>>> (XEN) 4 [1/1]: s=6 n=0 x=0
+>>> (XEN) 10 [0/1]: s=6 n=1 x=0
+>>> (XEN) 28 [0/1]: s=6 n=4 x=0
+>>> (XEN) 40 [0/1]: s=6 n=6 x=0
+>>>
+>> s = state.  0 = free, 1 = reserved, 2 = unbound, 3 = inter-domain, 4 =
+>> pirq, 5 = virq, 6 = ipi
+>> n = target vcpu id to notify
+>> x = boolean indicating whether xen is a consumer of the event channel or
+>> not.
+>>
+>> d = target domain (when appropriate)  In this case, p is the target port.
+>>
+> Thanks (at least something learned today :)) One thing I noticed here, in the
+> event channel info above, pending is 0 for channel 10, 28 and 40 (and set for 4
+> which is the spinlock ipi for cpu 0). But in the VCPU info below (another
+> unknown: has=T and F) it says upcall_pend for all of them. Unfortunately that
+> might just mean that things change...
+
+I believe the upcall_pending is just a simple bit indicating that an
+event channel for that vcpu has an event pending, but doesn't identify
+which event channel it is.
+
+Of course, as the VCPU is currently descheduled in Xen waiting for a
+specific event channel to end the poll, other events are likely to build
+up, but will not be serviced until the VCPU resumes.
+
+The "has=" value is a boolean from struct vcpu,  vcpu->is_running.  This
+is a bit more subtle, as a vcpu is still considered running if its
+context is on the hypervisor pcpu stack, but Xen has invoked the idle
+loop on that PCPU.  I don't know whether this is relevant to the bug.
+
+>
+>>> (XEN) VCPU0: CPU3 [has=T] flags=0 poll=0 upcall_pend = 01, upcall_mask
+>> = 01
+>>> dirty_cpus={3} cpu_affinity={0-127}
+>>> (XEN) No periodic timer
+>>> (XEN) VCPU1: CPU7 [has=F] flags=1 poll=10 upcall_pend = 01,
+>> upcall_mask = 01
+>>> dirty_cpus={} cpu_affinity={0-127}
+>>> (XEN) No periodic timer
+>>> (XEN) VCPU4: CPU6 [has=F] flags=1 poll=28 upcall_pend = 01,
+>> upcall_mask = 01
+>>> dirty_cpus={} cpu_affinity={0-127}
+>>> (XEN) No periodic timer
+>>> (XEN) VCPU6: CPU0 [has=F] flags=1 poll=40 upcall_pend = 01,
+>> upcall_mask = 01
+>>> dirty_cpus={} cpu_affinity={0-127}
+>>> (XEN) No periodic timer
+>> So in this case, vcpu 1 is in a poll, on port 10, which is an IPI event
+>> channel for itself.
+>>
+>> Same for vcpu 4, except it is on port 28, and for vcpu 6 on port 60.
+>>
+>> I wonder if there is possibly a race condition between notifying that a
+>> lock has been unlocked, and another vcpu trying to poll after deciding
+>> that the lock is locked.
+> There has to be something somehwere, I just cannot spot it. The unlocking cpu
+> will do a wmb() before setting the lock to 0, then a mb() and then check for
+> spinners. When failing the quick pack a locker will first set the lockspinner
+> entry, then do a wmb() and increment the spinners count. After that it clears
+> the event pending and then checks lock again before actually going into poll.
+>
+>> The other option is that there is a bug in working out which event
+>> channel to notify when a lock is unlocked.
+> I had thought I saw one thing that I tried to fix with my patch. Another train
+> of thought would have been any other cpu grabbing the lock always as soon as it
+> gets released and so preventing any cpu in poll from success. But that would
+> then show the lock as locked...
+
+How does the unlocking code choose an event channel to invoke?  Is there
+perhaps a race condition updating that value if another cpu nabs the
+lock inbetween?
+
+(I am just throwing ideas around - I am not very familar with this code)
+
+~Andrew
+
+-- 
+Andrew Cooper - Dom0 Kernel Engineer, Citrix XenServer
+T: +44 (0)1223 225 900, http://www.citrix.com
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<507FAECA.3070506@canonical.com> b/config/examples/test/corpus/<507FAECA.3070506@canonical.com>
new file mode 100644 (file)
index 0000000..6af45c7
--- /dev/null
@@ -0,0 +1,155 @@
+From xen-devel-bounces@lists.xen.org Thu Oct 18 08:29:28 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 18 Oct 2012 08:29:28 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TOkXi-0002dU-NZ
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 18 Oct 2012 08:29:28 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TOkTv-0001NS-JF; Thu, 18 Oct 2012 07:25:27 +0000
+Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <stefan.bader@canonical.com>) id 1TOkTu-0001NL-0r
+       for xen-devel@lists.xen.org; Thu, 18 Oct 2012 07:25:26 +0000
+Received: from [193.109.254.147:36635] by server-7.bemta-14.messagelabs.com id
+       31/45-24122-5EEAF705; Thu, 18 Oct 2012 07:25:25 +0000
+X-Env-Sender: stefan.bader@canonical.com
+X-Msg-Ref: server-3.tower-27.messagelabs.com!1350545112!13134992!1
+X-Originating-IP: [91.189.89.112]
+X-SpamReason: No, hits=0.0 required=7.0 tests=
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 14556 invoked from network); 18 Oct 2012 07:25:12 -0000
+Received: from youngberry.canonical.com (HELO youngberry.canonical.com)
+       (91.189.89.112) by server-3.tower-27.messagelabs.com with SMTP;
+       18 Oct 2012 07:25:12 -0000
+Received: from p5b2e3cc2.dip.t-dialin.net ([91.46.60.194] helo=[192.168.2.5])
+       by youngberry.canonical.com with esmtpsa
+       (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71)
+       (envelope-from <stefan.bader@canonical.com>)
+       id 1TOkTb-0004jF-Aq; Thu, 18 Oct 2012 07:25:07 +0000
+Message-ID: <507FAECA.3070506@canonical.com>
+Date: Thu, 18 Oct 2012 09:24:58 +0200
+From: Stefan Bader <stefan.bader@canonical.com>
+User-Agent: Mozilla/5.0 (X11; Linux x86_64;
+       rv:16.0) Gecko/20121011 Thunderbird/16.0.1
+MIME-Version: 1.0
+To: Jan Beulich <JBeulich@suse.com>
+References: <1350479456-4007-1-git-send-email-stefan.bader@canonical.com>
+       <507EB27D.8050308@citrix.com>
+       <1350482118.2460.74.camel@zakaz.uk.xensource.com>
+       <507ECD06.2050407@canonical.com> <507ED038.8000806@citrix.com>
+       <507FC51102000078000A235E@nat28.tlf.novell.com>
+In-Reply-To: <507FC51102000078000A235E@nat28.tlf.novell.com>
+X-Enigmail-Version: 1.4.5
+Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
+       Ian Campbell <Ian.Campbell@citrix.com>,
+       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: multipart/mixed; boundary="===============7345903983062252177=="
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.6 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] Xen PVM: Strange lockups when running PostgreSQL
+ load
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+This is an OpenPGP/MIME signed message (RFC 2440 and 3156)
+--===============7345903983062252177==
+Content-Type: multipart/signed; micalg=pgp-sha512;
+ protocol="application/pgp-signature";
+ boundary="------------enigA37A44F86644D73C29FE6627"
+
+This is an OpenPGP/MIME signed message (RFC 2440 and 3156)
+--------------enigA37A44F86644D73C29FE6627
+Content-Type: text/plain; charset=ISO-8859-1
+Content-Transfer-Encoding: quoted-printable
+
+On 18.10.2012 09:00, Jan Beulich wrote:
+>>>> On 17.10.12 at 17:35, Andrew Cooper <andrew.cooper3@citrix.com> wrot=
+e:
+>> In each case, the event channels are masked (no surprise given the
+>> conversation so far on this thread), and have no pending events.=20
+>> Therefore, I believe we are looking at the same bug.
+>=20
+> That seems very unlikely (albeit not impossible) to me, given that
+> the non-pvops kernel uses ticket locks while the pvops one doesn't.
+
+True, if classic 2.6.32 actually meant non-pvops. In my memory that was t=
+he
+version that first introduced them, so I assumed we talk about the same b=
+ase.
+
+The one I am looking at seems (as much info there is available right now,=
+ but I
+try to get confirmation from reporters running a non-paravirt-spinlock ke=
+rnel on
+a production load) to be related directly to the paravirtualized spinlock=
+
+implementation for Xen.
+
+
+--------------enigA37A44F86644D73C29FE6627
+Content-Type: application/pgp-signature; name="signature.asc"
+Content-Description: OpenPGP digital signature
+Content-Disposition: attachment; filename="signature.asc"
+
+-----BEGIN PGP SIGNATURE-----
+Version: GnuPG v1.4.11 (GNU/Linux)
+Comment: Using GnuPG with Mozilla - http://www.enigmail.net/
+
+iQIcBAEBCgAGBQJQf67SAAoJEOhnXe7L7s6jfhwP/3FoP6zoFKnVfj5Ox108Sl0S
+DZLVVpfO4oqlbvgfSE6qgJAZtyjMAnq3bduXN+nNwTrm59izwOcoR2sRHbrH80L7
+97RlcUd5UK47tMracyuIuvHQYgrJv7K2zfRZyxvdYOEpItuhe8HR3AFQnrgTq3gu
+d1TADmuqlCoPWqzpqOg/AVfn0lgPecI19H/vgWmIK684eygwRXmnwJKabl7XmPlp
+7SbgbxoUbTBn7FM2WO4QaR9/YizPnBSqxgf0pt15i3TsvrPBG1sMvzNJf9HD37o3
+D1PZbM7+P9Z3KbJlLnPf1Ij0vWZJCly1nE4+SiDa6YAnryEqbK90gAI87Ttr/o+B
+n1XmrqSvuyuLImus/lJtWvV7Q132NDuQR4AqZ1jYxJQGc/Fesba8hb5BRw4AnZ1h
+ZuAcXbwK4qFMrG5UgNRAqicMs+SqFI+m0ObvotbpxVZBmhb89zTWaOBkTKSeCorI
++7qJKr2a/gQsMspQgfOhvVI5Pmbwg310Md+rtEVY+ngm/eBydeKO285wKGot+GTR
+pYyiexePT/gCLu3/6vs6Y7VHE5D5n+CBLigaPsPNc612LPK3WeUsc3prGMy8htGS
+OWb+qn2GHf9vBk+iQlAcIw2JIqcRZnD8vuuEs0cxIk3y9E4jqhzcvgPwp2iLe5vR
+Fy5rq6ECfFaVZZ96+exL
+=+/BH
+-----END PGP SIGNATURE-----
+
+--------------enigA37A44F86644D73C29FE6627--
+
+
+--===============7345903983062252177==
+Content-Type: text/plain; charset="us-ascii"
+MIME-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Content-Disposition: inline
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
+--===============7345903983062252177==--
+
+
diff --git a/config/examples/test/corpus/<507FB1E1.8080700@canonical.com> b/config/examples/test/corpus/<507FB1E1.8080700@canonical.com>
new file mode 100644 (file)
index 0000000..a08fae0
--- /dev/null
@@ -0,0 +1,168 @@
+From xen-devel-bounces@lists.xen.org Thu Oct 18 08:42:01 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 18 Oct 2012 08:42:01 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TOkjr-0002hM-Mh
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 18 Oct 2012 08:42:01 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TOkgK-00027u-Ql; Thu, 18 Oct 2012 07:38:16 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <stefan.bader@canonical.com>) id 1TOkgJ-00027O-1G
+       for xen-devel@lists.xen.org; Thu, 18 Oct 2012 07:38:15 +0000
+Received: from [85.158.138.51:57141] by server-6.bemta-3.messagelabs.com id
+       AC/F3-32375-6E1BF705; Thu, 18 Oct 2012 07:38:14 +0000
+X-Env-Sender: stefan.bader@canonical.com
+X-Msg-Ref: server-6.tower-174.messagelabs.com!1350545893!26794208!1
+X-Originating-IP: [91.189.89.112]
+X-SpamReason: No, hits=0.5 required=7.0 tests=BODY_RANDOM_LONG
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 25399 invoked from network); 18 Oct 2012 07:38:13 -0000
+Received: from youngberry.canonical.com (HELO youngberry.canonical.com)
+       (91.189.89.112) by server-6.tower-174.messagelabs.com with SMTP;
+       18 Oct 2012 07:38:13 -0000
+Received: from p5b2e3cc2.dip.t-dialin.net ([91.46.60.194] helo=[192.168.2.5])
+       by youngberry.canonical.com with esmtpsa
+       (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71)
+       (envelope-from <stefan.bader@canonical.com>)
+       id 1TOkgE-000591-BY; Thu, 18 Oct 2012 07:38:10 +0000
+Message-ID: <507FB1E1.8080700@canonical.com>
+Date: Thu, 18 Oct 2012 09:38:09 +0200
+From: Stefan Bader <stefan.bader@canonical.com>
+User-Agent: Mozilla/5.0 (X11; Linux x86_64;
+       rv:16.0) Gecko/20121011 Thunderbird/16.0.1
+MIME-Version: 1.0
+To: Jan Beulich <JBeulich@suse.com>
+References: <1350479456-4007-1-git-send-email-stefan.bader@canonical.com>
+       <507EB27D.8050308@citrix.com>
+       <1350482118.2460.74.camel@zakaz.uk.xensource.com>
+       <507ECD06.2050407@canonical.com> <507ED038.8000806@citrix.com>
+       <507FC51102000078000A235E@nat28.tlf.novell.com>
+       <507FC71502000078000A236C@nat28.tlf.novell.com>
+In-Reply-To: <507FC71502000078000A236C@nat28.tlf.novell.com>
+X-Enigmail-Version: 1.4.5
+Cc: andrew.cooper3@citrix.com,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
+       Ian Campbell <Ian.Campbell@citrix.com>,
+       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: multipart/mixed; boundary="===============7481951078212515671=="
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.6 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] Xen PVM: Strange lockups when running PostgreSQL
+ load
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+This is an OpenPGP/MIME signed message (RFC 2440 and 3156)
+--===============7481951078212515671==
+Content-Type: multipart/signed; micalg=pgp-sha512;
+ protocol="application/pgp-signature";
+ boundary="------------enig3DF9695B8064AD7EAA24E73A"
+
+This is an OpenPGP/MIME signed message (RFC 2440 and 3156)
+--------------enig3DF9695B8064AD7EAA24E73A
+Content-Type: text/plain; charset=ISO-8859-1
+Content-Transfer-Encoding: quoted-printable
+
+On 18.10.2012 09:08, Jan Beulich wrote:
+>>>> On 18.10.12 at 09:00, "Jan Beulich" <JBeulich@suse.com> wrote:
+>>>>> On 17.10.12 at 17:35, Andrew Cooper <andrew.cooper3@citrix.com> wro=
+te:
+>>> In each case, the event channels are masked (no surprise given the
+>>> conversation so far on this thread), and have no pending events.=20
+>>> Therefore, I believe we are looking at the same bug.
+>>
+>> That seems very unlikely (albeit not impossible) to me, given that
+>> the non-pvops kernel uses ticket locks while the pvops one doesn't.
+>=20
+> And in fact we had a similar problem with our original ticket lock
+> implementation, exposed by an open coded lock in the scheduler's
+> run queue management. But that was really ticket lock specific,
+> in that the fact that a CPU could passively become the owner of
+> a lock while polling - that's impossible with pvops' byte locks afaict.=
+
+
+One of the trains of thought I had was whether it could happen that a cpu=
+ is in
+polling and the task gets moved. But I don't think it can happen as the
+hypercall unlikely is a place where any schedule happens (preempt is none=
+). And
+it would be much more common...
+
+One detail which I hope someone can fill in is the whole "interrupted spi=
+nlock"
+thing. Saving the last lock pointer stored on the per-cpu lock_spinners a=
+nd so
+on. Is that really only for spinlocks taken without interrupts disabled o=
+r do I
+miss something there?
+
+
+
+
+--------------enig3DF9695B8064AD7EAA24E73A
+Content-Type: application/pgp-signature; name="signature.asc"
+Content-Description: OpenPGP digital signature
+Content-Disposition: attachment; filename="signature.asc"
+
+-----BEGIN PGP SIGNATURE-----
+Version: GnuPG v1.4.11 (GNU/Linux)
+Comment: Using GnuPG with Mozilla - http://www.enigmail.net/
+
+iQIcBAEBCgAGBQJQf7HhAAoJEOhnXe7L7s6j3rwP/0GcDz5m/WYhsWXr3JHG+cen
+gCRGK2xfhaQI7ePzpRlZTU74wbaZNjvZXqpNe6ZA/+hy3unre8EfdeHFNJQkvkaK
+kMCfQjdJga44rGc4JbAnLlv1enp7IgDxzGb/G/LjDP5Ao5sDyMRegJnftvQVBKn/
+GYJRSebLXUM1ZaAvvGmHZRlgmKuGF0SJ37UhsAIT/4TeiqLRssyCTNPv71UkRFhp
+0brip9LboFXUzpf7Wy6oqLIpdLBovnUmEC1hd81qVwZPgAALkwzde/wNLI+brMHO
+URymCdKmZ9KsMvgxn+NXGKBu1k/P6gmYDKTksXY5YlloQFILO7KLSwyBIWiEC5HO
++Nxjppm5MEp2AUEGhQQrQVFdi2OwW+h1itjQRnU10BobtOpwgwCxlPJXzo+2BPQM
++eYNgf4+2jc6zvpnZn9cf2pAQL6pgGwhzcePVXuVErHbyX9BJDJJzsmWeR8yFq9q
+BIiMQoueL3f+8jZ1qF5G0ZLtxqE7U4O7B7o2jhFmYBqru/7cfiEPAHsjnK37QCbp
+ZyljRFi8mSZp7wLSvz1MGdr2Fpfuz8vxSQpTFy7XfPMGLdfIVKToURL6DRPZeFW1
+VHd58C2KDv1pcVkyZrgptYfhExv34e1qDmwdMxRZw0+pLSpYR1r8Qz5XxmoQCY9Q
+je+zk3eBcPD+EI4N87Su
+=u/Ih
+-----END PGP SIGNATURE-----
+
+--------------enig3DF9695B8064AD7EAA24E73A--
+
+
+--===============7481951078212515671==
+Content-Type: text/plain; charset="us-ascii"
+MIME-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Content-Disposition: inline
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
+--===============7481951078212515671==--
+
+
diff --git a/config/examples/test/corpus/<507FC51102000078000A235E@nat28.tlf.novell.com> b/config/examples/test/corpus/<507FC51102000078000A235E@nat28.tlf.novell.com>
new file mode 100644 (file)
index 0000000..3150af2
--- /dev/null
@@ -0,0 +1,91 @@
+From xen-devel-bounces@lists.xen.org Thu Oct 18 08:05:09 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 18 Oct 2012 08:05:09 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TOkAB-0002U5-Cz
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 18 Oct 2012 08:05:08 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TOk5N-0000cw-Cl; Thu, 18 Oct 2012 07:00:05 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <JBeulich@suse.com>) id 1TOk5M-0000cr-9c
+       for xen-devel@lists.xen.org; Thu, 18 Oct 2012 07:00:04 +0000
+Received: from [85.158.143.35:54253] by server-2.bemta-4.messagelabs.com id
+       E3/1B-22268-3F8AF705; Thu, 18 Oct 2012 07:00:03 +0000
+X-Env-Sender: JBeulich@suse.com
+X-Msg-Ref: server-7.tower-21.messagelabs.com!1350543602!14166706!1
+X-Originating-IP: [130.57.49.28]
+X-SpamReason: No, hits=0.0 required=7.0 tests=
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 4682 invoked from network); 18 Oct 2012 07:00:02 -0000
+Received: from nat28.tlf.novell.com (HELO nat28.tlf.novell.com) (130.57.49.28)
+       by server-7.tower-21.messagelabs.com with SMTP;
+       18 Oct 2012 07:00:02 -0000
+Received: from EMEA1-MTA by nat28.tlf.novell.com
+       with Novell_GroupWise; Thu, 18 Oct 2012 08:00:47 +0100
+Message-Id: <507FC51102000078000A235E@nat28.tlf.novell.com>
+X-Mailer: Novell GroupWise Internet Agent 12.0.0 
+Date: Thu, 18 Oct 2012 08:00:01 +0100
+From: "Jan Beulich" <JBeulich@suse.com>
+To: "Stefan Bader" <stefan.bader@canonical.com>,
+       "Andrew Cooper" <andrew.cooper3@citrix.com>
+References: <1350479456-4007-1-git-send-email-stefan.bader@canonical.com>
+       <507EB27D.8050308@citrix.com>
+       <1350482118.2460.74.camel@zakaz.uk.xensource.com>
+       <507ECD06.2050407@canonical.com> <507ED038.8000806@citrix.com>
+In-Reply-To: <507ED038.8000806@citrix.com>
+Mime-Version: 1.0
+Content-Disposition: inline
+Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
+       Ian Campbell <Ian.Campbell@citrix.com>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.6 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] Xen PVM: Strange lockups when running PostgreSQL
+ load
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+>>> On 17.10.12 at 17:35, Andrew Cooper <andrew.cooper3@citrix.com> wrote:
+> In each case, the event channels are masked (no surprise given the
+> conversation so far on this thread), and have no pending events. 
+> Therefore, I believe we are looking at the same bug.
+
+That seems very unlikely (albeit not impossible) to me, given that
+the non-pvops kernel uses ticket locks while the pvops one doesn't.
+
+Jan
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<507FC71502000078000A236C@nat28.tlf.novell.com> b/config/examples/test/corpus/<507FC71502000078000A236C@nat28.tlf.novell.com>
new file mode 100644 (file)
index 0000000..05dbcd5
--- /dev/null
@@ -0,0 +1,99 @@
+From xen-devel-bounces@lists.xen.org Thu Oct 18 08:13:25 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 18 Oct 2012 08:13:25 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TOkIB-0002Y8-1y
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 18 Oct 2012 08:13:25 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TOkDl-0000vr-A6; Thu, 18 Oct 2012 07:08:45 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <JBeulich@suse.com>) id 1TOkDj-0000vm-Np
+       for xen-devel@lists.xen.org; Thu, 18 Oct 2012 07:08:43 +0000
+Received: from [85.158.139.211:48710] by server-11.bemta-5.messagelabs.com id
+       6A/6E-14870-AFAAF705; Thu, 18 Oct 2012 07:08:42 +0000
+X-Env-Sender: JBeulich@suse.com
+X-Msg-Ref: server-9.tower-206.messagelabs.com!1350544121!21258916!1
+X-Originating-IP: [130.57.49.28]
+X-SpamReason: No, hits=0.0 required=7.0 tests=
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 1066 invoked from network); 18 Oct 2012 07:08:41 -0000
+Received: from nat28.tlf.novell.com (HELO nat28.tlf.novell.com) (130.57.49.28)
+       by server-9.tower-206.messagelabs.com with SMTP;
+       18 Oct 2012 07:08:41 -0000
+Received: from EMEA1-MTA by nat28.tlf.novell.com
+       with Novell_GroupWise; Thu, 18 Oct 2012 08:10:18 +0100
+Message-Id: <507FC71502000078000A236C@nat28.tlf.novell.com>
+X-Mailer: Novell GroupWise Internet Agent 12.0.0 
+Date: Thu, 18 Oct 2012 08:08:37 +0100
+From: "Jan Beulich" <JBeulich@suse.com>
+To: "Stefan Bader" <stefan.bader@canonical.com>,
+ <andrew.cooper3@citrix.com>
+References: <1350479456-4007-1-git-send-email-stefan.bader@canonical.com>
+       <507EB27D.8050308@citrix.com>
+       <1350482118.2460.74.camel@zakaz.uk.xensource.com>
+       <507ECD06.2050407@canonical.com> <507ED038.8000806@citrix.com>
+       <507FC51102000078000A235E@nat28.tlf.novell.com>
+In-Reply-To: <507FC51102000078000A235E@nat28.tlf.novell.com>
+Mime-Version: 1.0
+Content-Disposition: inline
+Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
+       Ian Campbell <Ian.Campbell@citrix.com>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.6 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] Xen PVM: Strange lockups when running PostgreSQL
+ load
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+>>> On 18.10.12 at 09:00, "Jan Beulich" <JBeulich@suse.com> wrote:
+>>>> On 17.10.12 at 17:35, Andrew Cooper <andrew.cooper3@citrix.com> wrote:
+>> In each case, the event channels are masked (no surprise given the
+>> conversation so far on this thread), and have no pending events. 
+>> Therefore, I believe we are looking at the same bug.
+> 
+> That seems very unlikely (albeit not impossible) to me, given that
+> the non-pvops kernel uses ticket locks while the pvops one doesn't.
+
+And in fact we had a similar problem with our original ticket lock
+implementation, exposed by an open coded lock in the scheduler's
+run queue management. But that was really ticket lock specific,
+in that the fact that a CPU could passively become the owner of
+a lock while polling - that's impossible with pvops' byte locks afaict.
+
+Jan
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<507FD7DE.2010209@canonical.com> b/config/examples/test/corpus/<507FD7DE.2010209@canonical.com>
new file mode 100644 (file)
index 0000000..0fffaf6
--- /dev/null
@@ -0,0 +1,224 @@
+From xen-devel-bounces@lists.xen.org Thu Oct 18 11:24:16 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 18 Oct 2012 11:24:16 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TOnGq-0003SY-To
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 18 Oct 2012 11:24:16 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TOnDC-0001yV-4n; Thu, 18 Oct 2012 10:20:22 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <stefan.bader@canonical.com>) id 1TOnD9-0001yD-Rx
+       for xen-devel@lists.xen.org; Thu, 18 Oct 2012 10:20:20 +0000
+Received: from [85.158.139.211:4243] by server-6.bemta-5.messagelabs.com id
+       E2/21-32589-3E7DF705; Thu, 18 Oct 2012 10:20:19 +0000
+X-Env-Sender: stefan.bader@canonical.com
+X-Msg-Ref: server-16.tower-206.messagelabs.com!1350555616!22832231!1
+X-Originating-IP: [91.189.89.112]
+X-SpamReason: No, hits=0.5 required=7.0 tests=BODY_RANDOM_LONG
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 14463 invoked from network); 18 Oct 2012 10:20:16 -0000
+Received: from youngberry.canonical.com (HELO youngberry.canonical.com)
+       (91.189.89.112) by server-16.tower-206.messagelabs.com with SMTP;
+       18 Oct 2012 10:20:16 -0000
+Received: from p5b2e3cc2.dip.t-dialin.net ([91.46.60.194] helo=[192.168.2.5])
+       by youngberry.canonical.com with esmtpsa
+       (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71)
+       (envelope-from <stefan.bader@canonical.com>)
+       id 1TOnD5-0001FP-BB; Thu, 18 Oct 2012 10:20:15 +0000
+Message-ID: <507FD7DE.2010209@canonical.com>
+Date: Thu, 18 Oct 2012 12:20:14 +0200
+From: Stefan Bader <stefan.bader@canonical.com>
+User-Agent: Mozilla/5.0 (X11; Linux x86_64;
+       rv:16.0) Gecko/20121011 Thunderbird/16.0.1
+MIME-Version: 1.0
+To: Ian Campbell <Ian.Campbell@citrix.com>
+References: <1350479456-4007-1-git-send-email-stefan.bader@canonical.com>
+       <507EB27D.8050308@citrix.com>
+       <1350482118.2460.74.camel@zakaz.uk.xensource.com>
+       <507ECD06.2050407@canonical.com> <507ED038.8000806@citrix.com>
+       <507FC51102000078000A235E@nat28.tlf.novell.com>
+       <507FC71502000078000A236C@nat28.tlf.novell.com>
+       <507FB1E1.8080700@canonical.com>
+       <1350546483.28188.25.camel@dagon.hellion.org.uk>
+In-Reply-To: <1350546483.28188.25.camel@dagon.hellion.org.uk>
+X-Enigmail-Version: 1.4.5
+Cc: Andrew Cooper <Andrew.Cooper3@citrix.com>,
+       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
+       Jan Beulich <JBeulich@suse.com>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: multipart/mixed; boundary="===============3410626000692852923=="
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.6 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] Xen PVM: Strange lockups when running PostgreSQL
+ load
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+This is an OpenPGP/MIME signed message (RFC 2440 and 3156)
+--===============3410626000692852923==
+Content-Type: multipart/signed; micalg=pgp-sha512;
+ protocol="application/pgp-signature";
+ boundary="------------enig8243ECFB12C8B34C5DC00DE5"
+
+This is an OpenPGP/MIME signed message (RFC 2440 and 3156)
+--------------enig8243ECFB12C8B34C5DC00DE5
+Content-Type: text/plain; charset=ISO-8859-1
+Content-Transfer-Encoding: quoted-printable
+
+On 18.10.2012 09:48, Ian Campbell wrote:
+> On Thu, 2012-10-18 at 08:38 +0100, Stefan Bader wrote:
+>> On 18.10.2012 09:08, Jan Beulich wrote:
+>>>>>> On 18.10.12 at 09:00, "Jan Beulich" <JBeulich@suse.com> wrote:
+>>>>>>> On 17.10.12 at 17:35, Andrew Cooper <andrew.cooper3@citrix.com> w=
+rote:
+>>>>> In each case, the event channels are masked (no surprise given the
+>>>>> conversation so far on this thread), and have no pending events.=20
+>>>>> Therefore, I believe we are looking at the same bug.
+>>>>
+>>>> That seems very unlikely (albeit not impossible) to me, given that
+>>>> the non-pvops kernel uses ticket locks while the pvops one doesn't.
+>>>
+>>> And in fact we had a similar problem with our original ticket lock
+>>> implementation, exposed by an open coded lock in the scheduler's
+>>> run queue management. But that was really ticket lock specific,
+>>> in that the fact that a CPU could passively become the owner of
+>>> a lock while polling - that's impossible with pvops' byte locks afaic=
+t.
+>>
+>> One of the trains of thought I had was whether it could happen that a =
+cpu is in
+>> polling and the task gets moved. But I don't think it can happen as th=
+e
+>> hypercall unlikely is a place where any schedule happens (preempt is n=
+one). And
+>> it would be much more common...
+>>
+>> One detail which I hope someone can fill in is the whole "interrupted =
+spinlock"
+>> thing. Saving the last lock pointer stored on the per-cpu lock_spinner=
+s and so
+>> on. Is that really only for spinlocks taken without interrupts disable=
+d or do I
+>> miss something there?
+>=20
+> spinning_lock() returns the old lock which the caller is expected to
+> remember and replace via unspinning_lock() -- it effectively implements=
+
+> a stack of locks which are being waited on. xen_spin_lock_slow (the onl=
+y
+> caller0 appears to do this correctly from a brief inspection.
+
+Yes, just *when* can there be a stack of locks (spinlocks). The poll_irq
+hypercall seems to be an active (in the sense of not preemting to another=
+ task)
+process. How could there be a situation that another lock (on the same cp=
+u is
+tried to be taken).
+>=20
+> Is there any chance this is just a simple AB-BA or similar type
+> deadlock? Do we have data which suggests all vCPUs are waiting on the
+> same lock or just that they are waiting on some lock? I suppose lockdep=
+
+> (which I think you mentioned before?) would have caught this, unless pv=
+
+> locks somehow confound it?
+
+The one situation where I went deeper into the tasks that appeared to be =
+on a
+cpu it was one waiting for signalling a task that looked to be just sched=
+uled
+out and the cpu it was running on doing a idle balance that waited on the=
+ lock
+for cpu#0's runqueue. Which cpu#0 itself seemed to be waiting slow (the l=
+ock
+pointer was on lock_spinners[0]) but the lock itself was 0.
+Though there is a chance that this is always just a coincidental state wh=
+ere the
+lock just was released and more related to how the Xen stack does a guest=
+ dump.
+So it would be to find who holds the other lock.
+Unfortunately at least a full lock debugging enabled kernel is sufficient=
+ly
+different in timing that I cannot reproduce the issue on a test machine. =
+And
+from reported crashes in production I have no data.
+
+>=20
+> Ian.
+>=20
+>=20
+> _______________________________________________
+> Xen-devel mailing list
+> Xen-devel@lists.xen.org
+> http://lists.xen.org/xen-devel
+>=20
+
+
+
+--------------enig8243ECFB12C8B34C5DC00DE5
+Content-Type: application/pgp-signature; name="signature.asc"
+Content-Description: OpenPGP digital signature
+Content-Disposition: attachment; filename="signature.asc"
+
+-----BEGIN PGP SIGNATURE-----
+Version: GnuPG v1.4.11 (GNU/Linux)
+Comment: Using GnuPG with Mozilla - http://www.enigmail.net/
+
+iQIcBAEBCgAGBQJQf9feAAoJEOhnXe7L7s6jWi0QAIUmb9NQ1ilLciNpEM9r0ytT
+/MKqWbj5nrwXiYnwV5TLX/aEf+f0sDX/YMQuY6rFcroGSRTzVhfP6Br2eWe095jQ
+uyaJj7CsNP/tkHhohLLG5V3gYQu2dr5Gbxt2hCUuC8URYULsLI5ghBcawHeMNVll
+hfU4DKlMEHWu6BxhEWZWvhvoA3o4j/GH5Kj16Jaqv1ejuxHxXfx4QXg7GseRPx7S
+7Z+lRLmEkyTpj3E7yVyZatah3umm6CxsFX4biDKxolgbDAoROE2L04i5Lu/oQLdy
+hcZiC5kiJDDN4A6tY5GmdDj4bbthDCwrWjudFrHXo0paR37qtzS7T/K8gUr8ZhtI
+Bm7Wka7X3k6JTfDb8u4+h3TcTh6q/TRjEvyDOeyQHAt91GYDChfWxYwBxAjVHF/w
+DvxAyz2r2atUdJwmza+vm11iuDr/8s41Hi6LUV7dKd3iEAp6tRC+G1FNQhi0/yxM
+gzr4PNBGYdKkhQpDhm4Rm+X2FdrnLlP3B31gSMuQwBUzwkum5R1jk2IbUOkuEOgU
+hr7BYCMVfapaQWp+AhXU8hzq/kZhB7zakO6hOu2C7I7oGIEyrBAeUiWPAw/ARMy+
+t0lGYaf+zGl7rgvpvUXIJNKVvGx0IPYCfGioOcyafsuHS/7kfqsitpE5npj79bWa
+o4bdTimUXvwj2qjF1yoa
+=Qoqm
+-----END PGP SIGNATURE-----
+
+--------------enig8243ECFB12C8B34C5DC00DE5--
+
+
+--===============3410626000692852923==
+Content-Type: text/plain; charset="us-ascii"
+MIME-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Content-Disposition: inline
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
+--===============3410626000692852923==--
+
+
diff --git a/config/examples/test/corpus/<507FF964.9090009@canonical.com> b/config/examples/test/corpus/<507FF964.9090009@canonical.com>
new file mode 100644 (file)
index 0000000..4aed803
--- /dev/null
@@ -0,0 +1,175 @@
+From xen-devel-bounces@lists.xen.org Thu Oct 18 13:48:35 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 18 Oct 2012 13:48:35 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TOpWb-0003v0-GF
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 18 Oct 2012 13:48:35 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TOpRa-000592-QD; Thu, 18 Oct 2012 12:43:22 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <stefan.bader@canonical.com>) id 1TOpRZ-00058x-S6
+       for xen-devel@lists.xen.org; Thu, 18 Oct 2012 12:43:22 +0000
+Received: from [85.158.139.211:19681] by server-13.bemta-5.messagelabs.com id
+       37/BC-30674-969FF705; Thu, 18 Oct 2012 12:43:21 +0000
+X-Env-Sender: stefan.bader@canonical.com
+X-Msg-Ref: server-9.tower-206.messagelabs.com!1350564200!21312496!1
+X-Originating-IP: [91.189.89.112]
+X-SpamReason: No, hits=0.0 required=7.0 tests=
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 7854 invoked from network); 18 Oct 2012 12:43:20 -0000
+Received: from youngberry.canonical.com (HELO youngberry.canonical.com)
+       (91.189.89.112) by server-9.tower-206.messagelabs.com with SMTP;
+       18 Oct 2012 12:43:20 -0000
+Received: from p5b2e3cc2.dip.t-dialin.net ([91.46.60.194] helo=[192.168.2.5])
+       by youngberry.canonical.com with esmtpsa
+       (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71)
+       (envelope-from <stefan.bader@canonical.com>)
+       id 1TOpRV-00056g-RW; Thu, 18 Oct 2012 12:43:17 +0000
+Message-ID: <507FF964.9090009@canonical.com>
+Date: Thu, 18 Oct 2012 14:43:16 +0200
+From: Stefan Bader <stefan.bader@canonical.com>
+User-Agent: Mozilla/5.0 (X11; Linux x86_64;
+       rv:16.0) Gecko/20121011 Thunderbird/16.0.1
+MIME-Version: 1.0
+To: Jan Beulich <JBeulich@suse.com>
+References: <1350479456-4007-1-git-send-email-stefan.bader@canonical.com>
+       <507EB27D.8050308@citrix.com>
+       <1350482118.2460.74.camel@zakaz.uk.xensource.com>
+       <507ECD06.2050407@canonical.com> <507ED038.8000806@citrix.com>
+       <507FC51102000078000A235E@nat28.tlf.novell.com>
+       <507FC71502000078000A236C@nat28.tlf.novell.com>
+       <507FB1E1.8080700@canonical.com>
+       <1350546483.28188.25.camel@dagon.hellion.org.uk>
+       <507FD7DE.2010209@canonical.com>
+       <507FFA5102000078000A250D@nat28.tlf.novell.com>
+In-Reply-To: <507FFA5102000078000A250D@nat28.tlf.novell.com>
+X-Enigmail-Version: 1.4.5
+Cc: Andrew Cooper <Andrew.Cooper3@citrix.com>,
+       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
+       Ian Campbell <Ian.Campbell@citrix.com>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: multipart/mixed; boundary="===============7077398237862403059=="
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.6 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] Xen PVM: Strange lockups when running PostgreSQL
+ load
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+This is an OpenPGP/MIME signed message (RFC 2440 and 3156)
+--===============7077398237862403059==
+Content-Type: multipart/signed; micalg=pgp-sha512;
+ protocol="application/pgp-signature";
+ boundary="------------enigB9EE666080330C7C1DAF7137"
+
+This is an OpenPGP/MIME signed message (RFC 2440 and 3156)
+--------------enigB9EE666080330C7C1DAF7137
+Content-Type: text/plain; charset=ISO-8859-1
+Content-Transfer-Encoding: quoted-printable
+
+On 18.10.2012 12:47, Jan Beulich wrote:
+>>>> On 18.10.12 at 12:20, Stefan Bader <stefan.bader@canonical.com> wrot=
+e:
+>> On 18.10.2012 09:48, Ian Campbell wrote:
+>>> spinning_lock() returns the old lock which the caller is expected to
+>>> remember and replace via unspinning_lock() -- it effectively implemen=
+ts
+>>> a stack of locks which are being waited on. xen_spin_lock_slow (the o=
+nly
+>>> caller0 appears to do this correctly from a brief inspection.
+>>
+>> Yes, just *when* can there be a stack of locks (spinlocks). The poll_i=
+rq
+>> hypercall seems to be an active (in the sense of not preemting to anot=
+her=20
+>> task)
+>> process. How could there be a situation that another lock (on the same=
+ cpu=20
+>> is tried to be taken).
+>=20
+> Obviously when this is an acquire not disabling interrupts, and
+> an interrupt comes in while in the poll hypercall (or about to go
+> there, or just having come back from one).
+>=20
+> Jan
+>=20
+Obviously. ;) Ok, so my thinking there was ok and its one level deep max.=
+ At
+some point staring at things I start question my sanity.
+A wild thinking would be whether in that case the interrupted spinlock ma=
+y miss
+a wakeup forever when the unlocker only can check for the toplevel. Hm, b=
+ut that
+should be easy to rule out by just adding an error to spin_unlock_slow wh=
+en it
+fails to find anything...
+
+
+
+--------------enigB9EE666080330C7C1DAF7137
+Content-Type: application/pgp-signature; name="signature.asc"
+Content-Description: OpenPGP digital signature
+Content-Disposition: attachment; filename="signature.asc"
+
+-----BEGIN PGP SIGNATURE-----
+Version: GnuPG v1.4.11 (GNU/Linux)
+Comment: Using GnuPG with Mozilla - http://www.enigmail.net/
+
+iQIcBAEBCgAGBQJQf/lkAAoJEOhnXe7L7s6jYAgP/jIqqQosyyCp/wdPBclVSws3
+qK4wLJYOdJWuiWMNMSxgob2eXmWRdThh4MvGM73PH54QOsoynd0aafd8aOAiJ0Hu
+GPvRRdIPjh3zFK78WAcIr6NAwaYwNwrIecbvqtBzjjVDgFuDImCqq9dmRwfWekAW
+NF422nKmcHQYTEL2lSDs/vqjF27rsNrtZP6cISStxnu70YXBzaSextob/jBbGkd6
+GSJovcirPG0yG1piYJYBO99neUKpibqEWOQOqZPFa0jpzCsRlpPkIvLf4vyrIZsK
+zuPKp1gGtHj5WBhNlrHhLN9Jp90qBjL5ZV4nmC3LUwMax4zayOXU4zu0rkbJC5RP
+KigYCYEL1E068nxAF80jzm88H6aGGGy09gRWxYxVGBJby8q7pDmP0FxMbopMfGBF
+bCAEj8Wie7pXz1JfrXJRXfAxj0QAnutWbfKNESCgs6/yg3wzDIPgtYLGLNPHnQD9
+XlII3jf4Zb+8tfi0Q0d2/wOyj8mwwwqOXk27mGiUNTU4HNHaunOvCssKJJLe4hyS
+4cN7BShxXmLpNjm4iXI9T2xxrnpeuwRA+yg36yEM7GqwCioYnO6Q8se6d56bSf5X
+ciU+UGMOQxCjjUBVLBeseIFr8ke+KC+sCsCvJVBAKkGXOHgmYaBjfvUcfHu4jpAR
+BlFKUuadDSPm8uG5dp4N
+=Mvbw
+-----END PGP SIGNATURE-----
+
+--------------enigB9EE666080330C7C1DAF7137--
+
+
+--===============7077398237862403059==
+Content-Type: text/plain; charset="us-ascii"
+MIME-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Content-Disposition: inline
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
+--===============7077398237862403059==--
+
+
diff --git a/config/examples/test/corpus/<507FFA5102000078000A250D@nat28.tlf.novell.com> b/config/examples/test/corpus/<507FFA5102000078000A250D@nat28.tlf.novell.com>
new file mode 100644 (file)
index 0000000..c2eba5b
--- /dev/null
@@ -0,0 +1,105 @@
+From xen-devel-bounces@lists.xen.org Thu Oct 18 11:50:52 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 18 Oct 2012 11:50:52 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TOngg-0003YZ-DA
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 18 Oct 2012 11:50:52 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TOndH-0002jS-92; Thu, 18 Oct 2012 10:47:19 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <JBeulich@suse.com>) id 1TOndF-0002jD-JI
+       for xen-devel@lists.xen.org; Thu, 18 Oct 2012 10:47:17 +0000
+Received: from [85.158.137.99:18937] by server-8.bemta-3.messagelabs.com id
+       10/E8-10525-43EDF705; Thu, 18 Oct 2012 10:47:16 +0000
+X-Env-Sender: JBeulich@suse.com
+X-Msg-Ref: server-6.tower-217.messagelabs.com!1350557236!16931126!1
+X-Originating-IP: [130.57.49.28]
+X-SpamReason: No, hits=0.0 required=7.0 tests=
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 17595 invoked from network); 18 Oct 2012 10:47:16 -0000
+Received: from nat28.tlf.novell.com (HELO nat28.tlf.novell.com) (130.57.49.28)
+       by server-6.tower-217.messagelabs.com with SMTP;
+       18 Oct 2012 10:47:16 -0000
+Received: from EMEA1-MTA by nat28.tlf.novell.com
+       with Novell_GroupWise; Thu, 18 Oct 2012 11:47:15 +0100
+Message-Id: <507FFA5102000078000A250D@nat28.tlf.novell.com>
+X-Mailer: Novell GroupWise Internet Agent 12.0.0 
+Date: Thu, 18 Oct 2012 11:47:13 +0100
+From: "Jan Beulich" <JBeulich@suse.com>
+To: "Stefan Bader" <stefan.bader@canonical.com>
+References: <1350479456-4007-1-git-send-email-stefan.bader@canonical.com>
+       <507EB27D.8050308@citrix.com>
+       <1350482118.2460.74.camel@zakaz.uk.xensource.com>
+       <507ECD06.2050407@canonical.com> <507ED038.8000806@citrix.com>
+       <507FC51102000078000A235E@nat28.tlf.novell.com>
+       <507FC71502000078000A236C@nat28.tlf.novell.com>
+       <507FB1E1.8080700@canonical.com>
+       <1350546483.28188.25.camel@dagon.hellion.org.uk>
+       <507FD7DE.2010209@canonical.com>
+In-Reply-To: <507FD7DE.2010209@canonical.com>
+Mime-Version: 1.0
+Content-Disposition: inline
+Cc: Andrew Cooper <Andrew.Cooper3@citrix.com>,
+       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
+       Ian Campbell <Ian.Campbell@citrix.com>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.6 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] Xen PVM: Strange lockups when running PostgreSQL
+ load
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+>>> On 18.10.12 at 12:20, Stefan Bader <stefan.bader@canonical.com> wrote:
+> On 18.10.2012 09:48, Ian Campbell wrote:
+>> spinning_lock() returns the old lock which the caller is expected to
+>> remember and replace via unspinning_lock() -- it effectively implements
+>> a stack of locks which are being waited on. xen_spin_lock_slow (the only
+>> caller0 appears to do this correctly from a brief inspection.
+> 
+> Yes, just *when* can there be a stack of locks (spinlocks). The poll_irq
+> hypercall seems to be an active (in the sense of not preemting to another 
+> task)
+> process. How could there be a situation that another lock (on the same cpu 
+> is tried to be taken).
+
+Obviously when this is an acquire not disabling interrupts, and
+an interrupt comes in while in the poll hypercall (or about to go
+there, or just having come back from one).
+
+Jan
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<50806C0B.1060504@canonical.com> b/config/examples/test/corpus/<50806C0B.1060504@canonical.com>
new file mode 100644 (file)
index 0000000..d0b0989
--- /dev/null
@@ -0,0 +1,466 @@
+From xen-devel-bounces@lists.xen.org Thu Oct 18 21:57:16 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 18 Oct 2012 21:57:16 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TOx9V-0005k9-6U
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 18 Oct 2012 21:57:16 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TOx55-0008OD-D2; Thu, 18 Oct 2012 20:52:39 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <stefan.bader@canonical.com>) id 1TOx53-0008O8-Pn
+       for xen-devel@lists.xen.org; Thu, 18 Oct 2012 20:52:38 +0000
+Received: from [85.158.137.99:4004] by server-10.bemta-3.messagelabs.com id
+       92/6B-27386-51C60805; Thu, 18 Oct 2012 20:52:37 +0000
+X-Env-Sender: stefan.bader@canonical.com
+X-Msg-Ref: server-16.tower-217.messagelabs.com!1350593555!22145147!1
+X-Originating-IP: [91.189.89.112]
+X-SpamReason: No, hits=0.0 required=7.0 tests=
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 22520 invoked from network); 18 Oct 2012 20:52:35 -0000
+Received: from youngberry.canonical.com (HELO youngberry.canonical.com)
+       (91.189.89.112) by server-16.tower-217.messagelabs.com with SMTP;
+       18 Oct 2012 20:52:35 -0000
+Received: from p5b2e3cc2.dip.t-dialin.net ([91.46.60.194] helo=[192.168.2.5])
+       by youngberry.canonical.com with esmtpsa
+       (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71)
+       (envelope-from <stefan.bader@canonical.com>)
+       id 1TOx4v-0000lH-Gp; Thu, 18 Oct 2012 20:52:29 +0000
+Message-ID: <50806C0B.1060504@canonical.com>
+Date: Thu, 18 Oct 2012 22:52:27 +0200
+From: Stefan Bader <stefan.bader@canonical.com>
+User-Agent: Mozilla/5.0 (X11; Linux x86_64;
+       rv:16.0) Gecko/20121011 Thunderbird/16.0.1
+MIME-Version: 1.0
+To: Jan Beulich <JBeulich@suse.com>
+References: <1350479456-4007-1-git-send-email-stefan.bader@canonical.com>
+       <507EB27D.8050308@citrix.com>
+       <1350482118.2460.74.camel@zakaz.uk.xensource.com>
+       <507ECD06.2050407@canonical.com> <507ED038.8000806@citrix.com>
+       <507FC51102000078000A235E@nat28.tlf.novell.com>
+       <507FC71502000078000A236C@nat28.tlf.novell.com>
+       <507FB1E1.8080700@canonical.com>
+       <1350546483.28188.25.camel@dagon.hellion.org.uk>
+       <507FD7DE.2010209@canonical.com>
+       <507FFA5102000078000A250D@nat28.tlf.novell.com>
+       <507FF964.9090009@canonical.com>
+In-Reply-To: <507FF964.9090009@canonical.com>
+X-Enigmail-Version: 1.4.5
+Cc: Andrew Cooper <Andrew.Cooper3@citrix.com>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
+       Ian Campbell <Ian.Campbell@citrix.com>,
+       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: multipart/mixed; boundary="===============2958323107161820582=="
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.6 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] Xen PVM: Strange lockups when running PostgreSQL
+ load
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+This is an OpenPGP/MIME signed message (RFC 2440 and 3156)
+--===============2958323107161820582==
+Content-Type: multipart/signed; micalg=pgp-sha512;
+ protocol="application/pgp-signature";
+ boundary="------------enig07495305BB5B4065E9069FF1"
+
+This is an OpenPGP/MIME signed message (RFC 2440 and 3156)
+--------------enig07495305BB5B4065E9069FF1
+Content-Type: multipart/mixed;
+ boundary="------------000604000200030200050803"
+
+This is a multi-part message in MIME format.
+--------------000604000200030200050803
+Content-Type: text/plain; charset=ISO-8859-1
+Content-Transfer-Encoding: quoted-printable
+
+On 18.10.2012 14:43, Stefan Bader wrote:
+>> Obviously when this is an acquire not disabling interrupts, and
+>> an interrupt comes in while in the poll hypercall (or about to go
+>> there, or just having come back from one).
+>>
+>> Jan
+>>
+> Obviously. ;) Ok, so my thinking there was ok and its one level deep ma=
+x. At
+> some point staring at things I start question my sanity.
+> A wild thinking would be whether in that case the interrupted spinlock =
+may miss
+> a wakeup forever when the unlocker only can check for the toplevel. Hm,=
+ but that
+> should be easy to rule out by just adding an error to spin_unlock_slow =
+when it
+> fails to find anything...
+>=20
+Actually I begin to suspect that it could be possible that I just overloo=
+ked the
+most obvious thing. Provoking question: are we sure we are on the same pa=
+ge
+about the purpose of the spin_lock_flags variant of the pv lock ops inter=
+face?
+
+I begin to suspect that it really is not for giving a chance to re-enable=
+
+interrupts. Just what it should be used for I am not clear. Anyway it see=
+ms all
+other places more or less ignore the flags and map themselves back to an
+ignorant version of spinlock.
+Also I believe that the only high level function that would end up in pas=
+sing
+any flags, would be the spin_lock_irqsave one. And I am pretty sure that =
+this
+one will expect interrupts to stay disabled.
+
+So I tried below approach and that seems to be surviving the previously b=
+reaking
+testcase for much longer than anything I tried before.
+
+-Stefan
+
+=46rom f2ebb6626f3e3a00932bf1f4f75265f826c7fba9 Mon Sep 17 00:00:00 2001
+From: Stefan Bader <stefan.bader@canonical.com>
+Date: Thu, 18 Oct 2012 21:40:37 +0200
+Subject: [PATCH 1/2] xen/pv-spinlock: Never enable interrupts in
+ xen_spin_lock_slow()
+
+I am not sure what exactly the spin_lock_flags variant of the
+pv-spinlocks (or even in the arch spinlocks) should be used for.
+But it should not be used as an invitation to enable irqs.
+
+The only high-level variant that seems to end up there is the
+spin_lock_irqsave one and that would always be used in a context
+that expects the interrupts to be disabled.
+The generic paravirt-spinlock code just maps the flags variant
+to the one without flags, so just do the same and get rid of
+all the stuff that is not needed anymore.
+
+This seems to be resolving a weird locking issue seen when having
+a high i/o database load on a PV Xen guest with multiple (8+ in
+local experiments) CPUs. Well, thinking about it a second time
+it seems like one of those "how did that ever work?" cases.
+
+Signed-off-by: Stefan Bader <stefan.bader@canonical.com>
+---
+ arch/x86/xen/spinlock.c |   23 +++++------------------
+ 1 file changed, 5 insertions(+), 18 deletions(-)
+
+diff --git a/arch/x86/xen/spinlock.c b/arch/x86/xen/spinlock.c
+index 83e866d..3330a1d 100644
+--- a/arch/x86/xen/spinlock.c
++++ b/arch/x86/xen/spinlock.c
+@@ -24,7 +24,6 @@ static struct xen_spinlock_stats
+       u32 taken_slow_nested;
+       u32 taken_slow_pickup;
+       u32 taken_slow_spurious;
+-      u32 taken_slow_irqenable;
+
+       u64 released;
+       u32 released_slow;
+@@ -197,7 +196,7 @@ static inline void unspinning_lock(struct xen_spinloc=
+k *xl,
+struct xen_spinlock
+       __this_cpu_write(lock_spinners, prev);
+ }
+
+-static noinline int xen_spin_lock_slow(struct arch_spinlock *lock, bool =
+irq_enable)
++static noinline int xen_spin_lock_slow(struct arch_spinlock *lock)
+ {
+       struct xen_spinlock *xl =3D (struct xen_spinlock *)lock;
+       struct xen_spinlock *prev;
+@@ -218,8 +217,6 @@ static noinline int xen_spin_lock_slow(struct arch_sp=
+inlock
+*lock, bool irq_enab
+       ADD_STATS(taken_slow_nested, prev !=3D NULL);
+
+       do {
+-              unsigned long flags;
+-
+               /* clear pending */
+               xen_clear_irq_pending(irq);
+
+@@ -239,12 +236,6 @@ static noinline int xen_spin_lock_slow(struct arch_s=
+pinlock
+*lock, bool irq_enab
+                       goto out;
+               }
+
+-              flags =3D arch_local_save_flags();
+-              if (irq_enable) {
+-                      ADD_STATS(taken_slow_irqenable, 1);
+-                      raw_local_irq_enable();
+-              }
+-
+               /*
+                * Block until irq becomes pending.  If we're
+                * interrupted at this point (after the trylock but
+@@ -256,8 +247,6 @@ static noinline int xen_spin_lock_slow(struct arch_sp=
+inlock
+*lock, bool irq_enab
+                */
+               xen_poll_irq(irq);
+
+-              raw_local_irq_restore(flags);
+-
+               ADD_STATS(taken_slow_spurious, !xen_test_irq_pending(irq));
+       } while (!xen_test_irq_pending(irq)); /* check for spurious wakeups */
+
+@@ -270,7 +259,7 @@ out:
+       return ret;
+ }
+
+-static inline void __xen_spin_lock(struct arch_spinlock *lock, bool irq_=
+enable)
++static inline void __xen_spin_lock(struct arch_spinlock *lock)
+ {
+       struct xen_spinlock *xl =3D (struct xen_spinlock *)lock;
+       unsigned timeout;
+@@ -302,19 +291,19 @@ static inline void __xen_spin_lock(struct arch_spin=
+lock
+*lock, bool irq_enable)
+               spin_time_accum_spinning(start_spin_fast);
+
+       } while (unlikely(oldval !=3D 0 &&
+-                        (TIMEOUT =3D=3D ~0 || !xen_spin_lock_slow(lock, irq_enable))));
++                        (TIMEOUT =3D=3D ~0 || !xen_spin_lock_slow(lock))));
+
+       spin_time_accum_total(start_spin);
+ }
+
+ static void xen_spin_lock(struct arch_spinlock *lock)
+ {
+-      __xen_spin_lock(lock, false);
++      __xen_spin_lock(lock);
+ }
+
+ static void xen_spin_lock_flags(struct arch_spinlock *lock, unsigned lon=
+g flags)
+ {
+-      __xen_spin_lock(lock, !raw_irqs_disabled_flags(flags));
++      __xen_spin_lock(lock);
+ }
+
+ static noinline void xen_spin_unlock_slow(struct xen_spinlock *xl)
+@@ -424,8 +413,6 @@ static int __init xen_spinlock_debugfs(void)
+                          &spinlock_stats.taken_slow_pickup);
+       debugfs_create_u32("taken_slow_spurious", 0444, d_spin_debug,
+                          &spinlock_stats.taken_slow_spurious);
+-      debugfs_create_u32("taken_slow_irqenable", 0444, d_spin_debug,
+-                         &spinlock_stats.taken_slow_irqenable);
+
+       debugfs_create_u64("released", 0444, d_spin_debug, &spinlock_stats.rele=
+ased);
+       debugfs_create_u32("released_slow", 0444, d_spin_debug,
+--=20
+1.7.9.5
+
+
+--------------000604000200030200050803
+Content-Type: text/x-diff;
+ name="0001-xen-pv-spinlock-Never-enable-interrupts-in-xen_spin_.patch"
+Content-Transfer-Encoding: quoted-printable
+Content-Disposition: attachment;
+ filename*0="0001-xen-pv-spinlock-Never-enable-interrupts-in-xen_spin_.pa";
+ filename*1="tch"
+
+=46rom f2ebb6626f3e3a00932bf1f4f75265f826c7fba9 Mon Sep 17 00:00:00 2001
+From: Stefan Bader <stefan.bader@canonical.com>
+Date: Thu, 18 Oct 2012 21:40:37 +0200
+Subject: [PATCH 1/2] xen/pv-spinlock: Never enable interrupts in
+ xen_spin_lock_slow()
+
+I am not sure what exactly the spin_lock_flags variant of the
+pv-spinlocks (or even in the arch spinlocks) should be used for.
+But it should not be used as an invitation to enable irqs.
+
+The only high-level variant that seems to end up there is the
+spinlock_irqsave one and that would always be used in a context
+that expects the interrupts to be disabled.
+The generic paravirt-spinlock code just maps the flags variant
+to the one without flags, so just do the same and get rid of
+all the stuff that is not needed anymore.
+
+This seems to be resolving a weird locking issue seen when having
+a high i/o database load on a PV Xen guest with multiple (8+ in
+local experiments) CPUs. Well, thinking about it a second time
+it seems like one of those "how did that ever work?" cases.
+
+Signed-off-by: Stefan Bader <stefan.bader@canonical.com>
+---
+ arch/x86/xen/spinlock.c |   23 +++++------------------
+ 1 file changed, 5 insertions(+), 18 deletions(-)
+
+diff --git a/arch/x86/xen/spinlock.c b/arch/x86/xen/spinlock.c
+index 83e866d..3330a1d 100644
+--- a/arch/x86/xen/spinlock.c
++++ b/arch/x86/xen/spinlock.c
+@@ -24,7 +24,6 @@ static struct xen_spinlock_stats
+       u32 taken_slow_nested;
+       u32 taken_slow_pickup;
+       u32 taken_slow_spurious;
+-      u32 taken_slow_irqenable;
+=20
+       u64 released;
+       u32 released_slow;
+@@ -197,7 +196,7 @@ static inline void unspinning_lock(struct xen_spinloc=
+k *xl, struct xen_spinlock
+       __this_cpu_write(lock_spinners, prev);
+ }
+=20
+-static noinline int xen_spin_lock_slow(struct arch_spinlock *lock, bool =
+irq_enable)
++static noinline int xen_spin_lock_slow(struct arch_spinlock *lock)
+ {
+       struct xen_spinlock *xl =3D (struct xen_spinlock *)lock;
+       struct xen_spinlock *prev;
+@@ -218,8 +217,6 @@ static noinline int xen_spin_lock_slow(struct arch_sp=
+inlock *lock, bool irq_enab
+       ADD_STATS(taken_slow_nested, prev !=3D NULL);
+=20
+       do {
+-              unsigned long flags;
+-
+               /* clear pending */
+               xen_clear_irq_pending(irq);
+=20
+@@ -239,12 +236,6 @@ static noinline int xen_spin_lock_slow(struct arch_s=
+pinlock *lock, bool irq_enab
+                       goto out;
+               }
+=20
+-              flags =3D arch_local_save_flags();
+-              if (irq_enable) {
+-                      ADD_STATS(taken_slow_irqenable, 1);
+-                      raw_local_irq_enable();
+-              }
+-
+               /*
+                * Block until irq becomes pending.  If we're
+                * interrupted at this point (after the trylock but
+@@ -256,8 +247,6 @@ static noinline int xen_spin_lock_slow(struct arch_sp=
+inlock *lock, bool irq_enab
+                */
+               xen_poll_irq(irq);
+=20
+-              raw_local_irq_restore(flags);
+-
+               ADD_STATS(taken_slow_spurious, !xen_test_irq_pending(irq));
+       } while (!xen_test_irq_pending(irq)); /* check for spurious wakeups */
+=20
+@@ -270,7 +259,7 @@ out:
+       return ret;
+ }
+=20
+-static inline void __xen_spin_lock(struct arch_spinlock *lock, bool irq_=
+enable)
++static inline void __xen_spin_lock(struct arch_spinlock *lock)
+ {
+       struct xen_spinlock *xl =3D (struct xen_spinlock *)lock;
+       unsigned timeout;
+@@ -302,19 +291,19 @@ static inline void __xen_spin_lock(struct arch_spin=
+lock *lock, bool irq_enable)
+               spin_time_accum_spinning(start_spin_fast);
+=20
+       } while (unlikely(oldval !=3D 0 &&
+-                        (TIMEOUT =3D=3D ~0 || !xen_spin_lock_slow(lock, irq_enable))));
++                        (TIMEOUT =3D=3D ~0 || !xen_spin_lock_slow(lock))));
+=20
+       spin_time_accum_total(start_spin);
+ }
+=20
+ static void xen_spin_lock(struct arch_spinlock *lock)
+ {
+-      __xen_spin_lock(lock, false);
++      __xen_spin_lock(lock);
+ }
+=20
+ static void xen_spin_lock_flags(struct arch_spinlock *lock, unsigned lon=
+g flags)
+ {
+-      __xen_spin_lock(lock, !raw_irqs_disabled_flags(flags));
++      __xen_spin_lock(lock);
+ }
+=20
+ static noinline void xen_spin_unlock_slow(struct xen_spinlock *xl)
+@@ -424,8 +413,6 @@ static int __init xen_spinlock_debugfs(void)
+                          &spinlock_stats.taken_slow_pickup);
+       debugfs_create_u32("taken_slow_spurious", 0444, d_spin_debug,
+                          &spinlock_stats.taken_slow_spurious);
+-      debugfs_create_u32("taken_slow_irqenable", 0444, d_spin_debug,
+-                         &spinlock_stats.taken_slow_irqenable);
+=20
+       debugfs_create_u64("released", 0444, d_spin_debug, &spinlock_stats.rele=
+ased);
+       debugfs_create_u32("released_slow", 0444, d_spin_debug,
+--=20
+1.7.9.5
+
+
+--------------000604000200030200050803--
+
+--------------enig07495305BB5B4065E9069FF1
+Content-Type: application/pgp-signature; name="signature.asc"
+Content-Description: OpenPGP digital signature
+Content-Disposition: attachment; filename="signature.asc"
+
+-----BEGIN PGP SIGNATURE-----
+Version: GnuPG v1.4.11 (GNU/Linux)
+Comment: Using GnuPG with Mozilla - http://www.enigmail.net/
+
+iQIcBAEBCgAGBQJQgGwLAAoJEOhnXe7L7s6jZjwP/jiw4qycURVgcb1Spwn4dW6b
+Pyn6WoT014e6Fj4V9n24esDOYexjg8ORFf77trqi7qpp04KAxp7aAyTMQca6FAcW
+GpVSuOPKkEaS0qexHvUZVChBmUz+47oSf4jdrhsowHAd+qWHIzLt5qN/NBFJArjf
+3F4lAvqniqheHmp0TqW1oVyt2R82cFU0Ezik/mquABlUrE4kXIEJMaoJtTL93WsU
+WhgRkdspJAHGEqN0VRXEd+uiVPkJTgjyZh+z8PBaAPhznCzlhuO1F+LUWAEANLzW
+lmMq7iM7+SdkKupWYkPNuHJHOjlgn2Hm4lEhnXTCqQBQJzUmjSSk5fW4x9oYoOqu
+Sy7RUEO8vFMJ9GRYzvhDCTHekXe1uWJ38JEoPZ2JFhL4f24OOk+ClGAIE0hh0If3
+CdIvaNJoPxmCrEG4TQfLyEb9LWsSV1jDgOyYp4pHXPClLCaw/ceXk0cof2Phxu49
+7OsuXcVrfrboQ1Pb0Mweqc/N+KAqIyxYFvNTcmmwTGBeX9Aj1CsVzF3TD49uZnb+
+A6n7W56boqMt8Mg+u6FCkZH1a3sE2oH45YmlTU6YQ+WRGeZcLFx/mi8VQHsxB7zB
+PG1oCS12+GltlJjZhedUFonaIIlLrpUt2effedpyLPoPX9BJhBJYW/JOheViaXUa
+yC3XC3ehlhefqTd8ymmF
+=OYGm
+-----END PGP SIGNATURE-----
+
+--------------enig07495305BB5B4065E9069FF1--
+
+
+--===============2958323107161820582==
+Content-Type: text/plain; charset="us-ascii"
+MIME-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Content-Disposition: inline
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
+--===============2958323107161820582==--
+
+
diff --git a/config/examples/test/corpus/<5080FCE6.906@canonical.com> b/config/examples/test/corpus/<5080FCE6.906@canonical.com>
new file mode 100644 (file)
index 0000000..21b5608
--- /dev/null
@@ -0,0 +1,167 @@
+From xen-devel-bounces@lists.xen.org Fri Oct 19 08:15:40 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 19 Oct 2012 08:15:40 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TP6nx-0003dN-PM
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 19 Oct 2012 08:15:40 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TP6jC-0003ua-5P; Fri, 19 Oct 2012 07:10:42 +0000
+Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <stefan.bader@canonical.com>) id 1TP6jA-0003uV-7k
+       for xen-devel@lists.xen.org; Fri, 19 Oct 2012 07:10:40 +0000
+Received: from [193.109.254.147:29723] by server-5.bemta-14.messagelabs.com id
+       91/C7-18309-FECF0805; Fri, 19 Oct 2012 07:10:39 +0000
+X-Env-Sender: stefan.bader@canonical.com
+X-Msg-Ref: server-6.tower-27.messagelabs.com!1350630637!4106393!1
+X-Originating-IP: [91.189.89.112]
+X-SpamReason: No, hits=0.0 required=7.0 tests=
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 32153 invoked from network); 19 Oct 2012 07:10:37 -0000
+Received: from youngberry.canonical.com (HELO youngberry.canonical.com)
+       (91.189.89.112) by server-6.tower-27.messagelabs.com with SMTP;
+       19 Oct 2012 07:10:37 -0000
+Received: from p5b2e238c.dip.t-dialin.net ([91.46.35.140] helo=[192.168.2.5])
+       by youngberry.canonical.com with esmtpsa
+       (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71)
+       (envelope-from <stefan.bader@canonical.com>)
+       id 1TP6j3-0001Lp-EK; Fri, 19 Oct 2012 07:10:33 +0000
+Message-ID: <5080FCE6.906@canonical.com>
+Date: Fri, 19 Oct 2012 09:10:30 +0200
+From: Stefan Bader <stefan.bader@canonical.com>
+User-Agent: Mozilla/5.0 (X11; Linux x86_64;
+       rv:16.0) Gecko/20121011 Thunderbird/16.0.1
+MIME-Version: 1.0
+To: Jan Beulich <JBeulich@suse.com>
+References: <1350479456-4007-1-git-send-email-stefan.bader@canonical.com>
+       <507EB27D.8050308@citrix.com>
+       <1350482118.2460.74.camel@zakaz.uk.xensource.com>
+       <507ECD06.2050407@canonical.com> <507ED038.8000806@citrix.com>
+       <507FC51102000078000A235E@nat28.tlf.novell.com>
+       <507FC71502000078000A236C@nat28.tlf.novell.com>
+       <507FB1E1.8080700@canonical.com>
+       <1350546483.28188.25.camel@dagon.hellion.org.uk>
+       <507FD7DE.2010209@canonical.com>
+       <507FFA5102000078000A250D@nat28.tlf.novell.com>
+       <507FF964.9090009@canonical.com> <50806C0B.1060504@canonical.com>
+In-Reply-To: <50806C0B.1060504@canonical.com>
+X-Enigmail-Version: 1.4.5
+Cc: Andrew Cooper <Andrew.Cooper3@citrix.com>,
+       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
+       Ian Campbell <Ian.Campbell@citrix.com>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: multipart/mixed; boundary="===============7737577943205625628=="
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.6 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] Xen PVM: Strange lockups when running PostgreSQL
+ load
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+This is an OpenPGP/MIME signed message (RFC 2440 and 3156)
+--===============7737577943205625628==
+Content-Type: multipart/signed; micalg=pgp-sha512;
+ protocol="application/pgp-signature";
+ boundary="------------enigCAE020D9B8986FF1DDE9B1EA"
+
+This is an OpenPGP/MIME signed message (RFC 2440 and 3156)
+--------------enigCAE020D9B8986FF1DDE9B1EA
+Content-Type: text/plain; charset=ISO-8859-1
+Content-Transfer-Encoding: quoted-printable
+
+On 18.10.2012 22:52, Stefan Bader wrote:
+> On 18.10.2012 14:43, Stefan Bader wrote:
+
+> So I tried below approach and that seems to be surviving the previously=
+ breaking
+> testcase for much longer than anything I tried before.
+>=20
+> -Stefan
+>=20
+> From f2ebb6626f3e3a00932bf1f4f75265f826c7fba9 Mon Sep 17 00:00:00 2001
+> From: Stefan Bader <stefan.bader@canonical.com>
+> Date: Thu, 18 Oct 2012 21:40:37 +0200
+> Subject: [PATCH 1/2] xen/pv-spinlock: Never enable interrupts in
+>  xen_spin_lock_slow()
+>=20
+
+Testcase ran the whole night without problems. Now re-started it with a c=
+leaner
+kernel (only the patch above applied and no debugging and it has again pa=
+ssed
+the threshold it would have broken before.
+
+-Stefan
+
+Oh, just in case this *is* the solution, it should very definitely be mar=
+ked
+with a cc: stable.
+
+
+
+--------------enigCAE020D9B8986FF1DDE9B1EA
+Content-Type: application/pgp-signature; name="signature.asc"
+Content-Description: OpenPGP digital signature
+Content-Disposition: attachment; filename="signature.asc"
+
+-----BEGIN PGP SIGNATURE-----
+Version: GnuPG v1.4.11 (GNU/Linux)
+Comment: Using GnuPG with Mozilla - http://www.enigmail.net/
+
+iQIcBAEBCgAGBQJQgPzmAAoJEOhnXe7L7s6j8bUP/ittlWh6RnaAsI12Yh33XJ5t
+pnquYNqbo84YSc8SnyOs5G5f//sMxJgStUoAPKCCLWTW0yPkX00tstreoAxjuJ5R
++cLZK4ib8BdCvgAdxUwq7zbt/QNe/FA7AK7LpPM0mKhV+GycxDJ8JqeQbrTI3GLO
+O9JKiX2KM8hzw3G8qdQ9fnuDnOLKIPXNDHlKUHE4LcIAuFkfDBYIuA/wGweO9b4h
+Can3oOBvi9S02CPzn8ygZN3bOL82jFYPlK2kmX2z3O7kX2JTSPy1c4PivWsuf/wY
+ukV0c7OrdZR0PGveTUHzQzIdA6H8NxV5AERuEaCAOuS7p/EER48Z4+gmlafHKmXv
+mpfaooFKsGWmnfkpKj7PvA1vN3zURRIhb/U4rM1EEHnHCHKxG/I1HcUn5g3K1cMs
+/FnW/BsU8o5j4U6ZtdMfrQihgCJxDKmBiAgU2P6SkH+yb1RUxgZPVzKtxGeEnM7R
+O2CCLzDvdcPciG+XuYG+3JJrY6Zs9xn7gZrqMutYgbhz3YSG5+v3ALVX5Z0boff6
+X6cLGEQjmH2gw0uATBH9VgLtA7a5zBOd5YxGUhyVou6YdBqsO3/LiqJjPEGsGiM6
+slE/OdBrXU6Ic7cn1JlGiDHxNuEjQgjxHZVRMcY1ccAwnJh5ZpXZ5kwDj1MKPVgx
+mh6qvbLxyGkbzQ6TEqOW
+=x0Oj
+-----END PGP SIGNATURE-----
+
+--------------enigCAE020D9B8986FF1DDE9B1EA--
+
+
+--===============7737577943205625628==
+Content-Type: text/plain; charset="us-ascii"
+MIME-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Content-Disposition: inline
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
+--===============7737577943205625628==--
+
+
diff --git a/config/examples/test/corpus/<51efcbff92f713286b5839884769ef34ab0c39f7.1345552068.git.julien.grall@citrix.com> b/config/examples/test/corpus/<51efcbff92f713286b5839884769ef34ab0c39f7.1345552068.git.julien.grall@citrix.com>
new file mode 100644 (file)
index 0000000..9d28b48
--- /dev/null
@@ -0,0 +1,165 @@
+From xen-devel-bounces@lists.xen.org Wed Aug 22 19:58:45 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 22 Aug 2012 19:58:45 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T4G8S-0002ku-6S
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 22 Aug 2012 19:58:45 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T4G5S-00072Z-7s; Wed, 22 Aug 2012 18:55:30 +0000
+Received: from mail27.messagelabs.com ([193.109.254.147])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <julien.grall@citrix.com>) id 1T4G5Q-0006pK-2E
+       for xen-devel@lists.xen.org; Wed, 22 Aug 2012 18:55:28 +0000
+X-Env-Sender: julien.grall@citrix.com
+X-Msg-Ref: server-12.tower-27.messagelabs.com!1345661712!9781420!6
+X-Originating-IP: [66.165.176.89]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNjU4OTQ=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 7504 invoked from network); 22 Aug 2012 18:55:21 -0000
+Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
+       by server-12.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
+       22 Aug 2012 18:55:21 -0000
+X-IronPort-AV: E=Sophos;i="4.80,809,1344225600"; d="scan'208";a="35484809"
+Received: from ftlpmailmx01.citrite.net ([10.13.107.65])
+       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       22 Aug 2012 14:55:20 -0400
+Received: from meteora.cam.xci-test.com (10.80.248.22) by smtprelay.citrix.com
+       (10.13.107.65) with Microsoft SMTP Server id 8.3.213.0;
+       Wed, 22 Aug 2012 14:55:20 -0400
+From: Julien Grall <julien.grall@citrix.com>
+To: qemu-devel@nongnu.org
+Date: Wed, 22 Aug 2012 13:31:58 +0100
+Message-ID: <51efcbff92f713286b5839884769ef34ab0c39f7.1345552068.git.julien.grall@citrix.com>
+X-Mailer: git-send-email 1.7.2.5
+In-Reply-To: <cover.1345552068.git.julien.grall@citrix.com>
+References: <cover.1345552068.git.julien.grall@citrix.com>
+MIME-Version: 1.0
+Cc: Julien Grall <julien.grall@citrix.com>, christian.limpach@gmail.com,
+       Stefano.Stabellini@eu.citrix.com, xen-devel@lists.xen.org
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DATE_IN_PAST_06_12,
+       RCVD_IN_DNSWL_MED,RP_MATCHES_RCVD autolearn=ham version=3.3.1
+Subject: [Xen-devel] [XEN][RFC PATCH V2 12/17] xl: Add interface to handle
+       qemu disaggregation
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+This patch modifies libxl interface for qemu disaggregation.
+For the moment, due to some dependencies between devices, we
+can't let the user choose which QEMU emulate a device.
+
+Moreoever this patch adds an "id" field to nic interface.
+It will be used in config file to specify which QEMU handle
+the network card.
+
+A possible disaggregation is:
+    - UI: Emulate graphic card, USB, keyboard, mouse, default devices
+    (PIIX4, root bridge, ...)
+    - IDE: Emulate disk
+    - Serial: Emulate serial port
+    - Audio: Emulate audio card
+    - Net: Emulate one or more network cards, multiple QEMU can emulate
+    different card. The emulated card is specified with its nic ID.
+
+Signed-off-by: Julien Grall <julien.grall@citrix.com>
+---
+ tools/libxl/libxl.h         |    3 +++
+ tools/libxl/libxl_types.idl |   15 +++++++++++++++
+ 2 files changed, 18 insertions(+), 0 deletions(-)
+
+diff --git a/tools/libxl/libxl.h b/tools/libxl/libxl.h
+index c614d6f..71d4808 100644
+--- a/tools/libxl/libxl.h
++++ b/tools/libxl/libxl.h
+@@ -307,6 +307,7 @@ void libxl_cpuid_dispose(libxl_cpuid_policy_list *cpuid_list);
+ #define LIBXL_PCI_FUNC_ALL (~0U)
+ typedef uint32_t libxl_domid;
++typedef uint32_t libxl_dmid;
+ /*
+  * Formatting Enumerations.
+@@ -478,12 +479,14 @@ typedef struct {
+     libxl_domain_build_info b_info;
+     int num_disks, num_nics, num_pcidevs, num_vfbs, num_vkbs;
++    int num_dms;
+     libxl_device_disk *disks;
+     libxl_device_nic *nics;
+     libxl_device_pci *pcidevs;
+     libxl_device_vfb *vfbs;
+     libxl_device_vkb *vkbs;
++    libxl_dm *dms;
+     libxl_action_on_shutdown on_poweroff;
+     libxl_action_on_shutdown on_reboot;
+diff --git a/tools/libxl/libxl_types.idl b/tools/libxl/libxl_types.idl
+index daa8c79..36c802a 100644
+--- a/tools/libxl/libxl_types.idl
++++ b/tools/libxl/libxl_types.idl
+@@ -246,6 +246,20 @@ libxl_domain_sched_params = Struct("domain_sched_params",[
+     ("extratime",    integer, {'init_val': 'LIBXL_DOMAIN_SCHED_PARAM_EXTRATIME_DEFAULT'}),
+     ])
++libxl_dm_cap = Enumeration("dm_cap", [
++    (1, "UI"), # Emulate all UI + default device
++    (2, "IDE"), # Emulate IDE
++    (4, "SERIAL"), # Emulate Serial
++    (8, "AUDIO"), # Emulate audio
++    ])
++
++libxl_dm = Struct("dm", [
++    ("name",         string),
++    ("path",         string),
++    ("capabilities",   uint64),
++    ("vifs",         libxl_string_list),
++    ])
++
+ libxl_domain_build_info = Struct("domain_build_info",[
+     ("max_vcpus",       integer),
+     ("avail_vcpus",     libxl_bitmap),
+@@ -367,6 +381,7 @@ libxl_device_nic = Struct("device_nic", [
+     ("nictype", libxl_nic_type),
+     ("rate_bytes_per_interval", uint64),
+     ("rate_interval_usecs", uint32),
++    ("id", string),
+     ])
+ libxl_device_pci = Struct("device_pci", [
+-- 
+Julien Grall
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<557fe87e4a6c0defdc6549e23e8e5e7b2ebb7a9f.1345552068.git.julien.grall@citrix.com> b/config/examples/test/corpus/<557fe87e4a6c0defdc6549e23e8e5e7b2ebb7a9f.1345552068.git.julien.grall@citrix.com>
new file mode 100644 (file)
index 0000000..b719980
--- /dev/null
@@ -0,0 +1,285 @@
+From xen-devel-bounces@lists.xen.org Wed Aug 22 19:59:00 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 22 Aug 2012 19:59:00 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T4G8j-0002os-4V
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 22 Aug 2012 19:59:00 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T4G5X-0007D1-1x; Wed, 22 Aug 2012 18:55:35 +0000
+Received: from mail27.messagelabs.com ([193.109.254.147])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <julien.grall@citrix.com>) id 1T4G5U-0006xb-MA
+       for xen-devel@lists.xen.org; Wed, 22 Aug 2012 18:55:32 +0000
+X-Env-Sender: julien.grall@citrix.com
+X-Msg-Ref: server-12.tower-27.messagelabs.com!1345661712!9781420!7
+X-Originating-IP: [66.165.176.89]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNjU4OTQ=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 7611 invoked from network); 22 Aug 2012 18:55:23 -0000
+Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
+       by server-12.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
+       22 Aug 2012 18:55:23 -0000
+X-IronPort-AV: E=Sophos;i="4.80,809,1344225600"; d="scan'208";a="35484811"
+Received: from ftlpmailmx01.citrite.net ([10.13.107.65])
+       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       22 Aug 2012 14:55:23 -0400
+Received: from meteora.cam.xci-test.com (10.80.248.22) by smtprelay.citrix.com
+       (10.13.107.65) with Microsoft SMTP Server id 8.3.213.0;
+       Wed, 22 Aug 2012 14:55:22 -0400
+From: Julien Grall <julien.grall@citrix.com>
+To: qemu-devel@nongnu.org
+Date: Wed, 22 Aug 2012 13:32:00 +0100
+Message-ID: <557fe87e4a6c0defdc6549e23e8e5e7b2ebb7a9f.1345552068.git.julien.grall@citrix.com>
+X-Mailer: git-send-email 1.7.2.5
+In-Reply-To: <cover.1345552068.git.julien.grall@citrix.com>
+References: <cover.1345552068.git.julien.grall@citrix.com>
+MIME-Version: 1.0
+Cc: Julien Grall <julien.grall@citrix.com>, christian.limpach@gmail.com,
+       Stefano.Stabellini@eu.citrix.com, xen-devel@lists.xen.org
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DATE_IN_PAST_06_12,
+       RCVD_IN_DNSWL_MED,RP_MATCHES_RCVD autolearn=ham version=3.3.1
+Subject: [Xen-devel] [XEN][RFC PATCH V2 14/17] xl-parsing: Parse new
+       device_models option
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+Add new option "device_models". The user can specify the capability of the
+QEMU (ui, vifs, ...). This option only works with QEMU upstream (qemu-xen).
+
+For instance:
+device_models= [ 'name=all,vifs=nic1', 'name=qvga,ui', 'name=qide,ide' ]
+
+Each device model can also take a path argument which override the default one.
+It's usefull for debugging.
+
+Signed-off-by: Julien Grall <julien.grall@citrix.com>
+---
+ tools/libxl/Makefile     |    2 +-
+ tools/libxl/libxlu_dm.c  |   96 ++++++++++++++++++++++++++++++++++++++++++++++
+ tools/libxl/libxlutil.h  |    5 ++
+ tools/libxl/xl_cmdimpl.c |   29 +++++++++++++-
+ 4 files changed, 130 insertions(+), 2 deletions(-)
+ create mode 100644 tools/libxl/libxlu_dm.c
+
+diff --git a/tools/libxl/Makefile b/tools/libxl/Makefile
+index 47fb110..2b58721 100644
+--- a/tools/libxl/Makefile
++++ b/tools/libxl/Makefile
+@@ -79,7 +79,7 @@ AUTOINCS= libxlu_cfg_y.h libxlu_cfg_l.h _libxl_list.h _paths.h \
+ AUTOSRCS= libxlu_cfg_y.c libxlu_cfg_l.c
+ AUTOSRCS += _libxl_save_msgs_callout.c _libxl_save_msgs_helper.c
+ LIBXLU_OBJS = libxlu_cfg_y.o libxlu_cfg_l.o libxlu_cfg.o \
+-      libxlu_disk_l.o libxlu_disk.o libxlu_vif.o libxlu_pci.o
++      libxlu_disk_l.o libxlu_disk.o libxlu_vif.o libxlu_pci.o libxlu_dm.o
+ $(LIBXLU_OBJS): CFLAGS += $(CFLAGS_libxenctrl) # For xentoollog.h
+ CLIENTS = xl testidl libxl-save-helper
+diff --git a/tools/libxl/libxlu_dm.c b/tools/libxl/libxlu_dm.c
+new file mode 100644
+index 0000000..9f0a347
+--- /dev/null
++++ b/tools/libxl/libxlu_dm.c
+@@ -0,0 +1,96 @@
++#include "libxl_osdeps.h" /* must come before any other headers */
++#include <stdlib.h>
++#include "libxlu_internal.h"
++#include "libxlu_cfg_i.h"
++
++static void split_string_into_string_list(const char *str,
++                                          const char *delim,
++                                          libxl_string_list *psl)
++{
++    char *s, *saveptr;
++    const char *p;
++    libxl_string_list sl;
++
++    int i = 0, nr = 0;
++
++    s = strdup(str);
++    if (s == NULL) {
++        fprintf(stderr, "xlu_dm: unable to allocate memory\n");
++        exit(-1);
++    }
++
++    /* Count number of entries */
++    p = strtok_r(s, delim, &saveptr);
++    do {
++        nr++;
++    } while ((p = strtok_r(NULL, delim, &saveptr)));
++
++    free(s);
++
++    s = strdup(str);
++
++    sl = malloc((nr+1) * sizeof (char *));
++    if (sl == NULL) {
++        fprintf(stderr, "xlu_dm: unable to allocate memory\n");
++        exit(-1);
++    }
++
++    p = strtok_r(s, delim, &saveptr);
++    do {
++        assert(i < nr);
++        // Skip blank
++        while (*p == ' ')
++            p++;
++        sl[i] = strdup(p);
++        i++;
++    } while ((p = strtok_r(NULL, delim, &saveptr)));
++    sl[i] = NULL;
++
++    *psl = sl;
++
++    free(s);
++}
++
++int xlu_dm_parse(XLU_Config *cfg, const char *spec,
++                 libxl_dm *dm)
++{
++    char *buf = strdup(spec);
++    char *p, *p2;
++    int rc = 0;
++
++    p = strtok(buf, ",");
++    if (!p)
++        goto skip_dm;
++    do {
++        while (*p == ' ')
++            p++;
++        if ((p2 = strchr(p, '=')) == NULL) {
++            if (!strcmp(p, "ui"))
++                dm->capabilities |= LIBXL_DM_CAP_UI;
++            else if (!strcmp(p, "ide"))
++                dm->capabilities |= LIBXL_DM_CAP_IDE;
++            else if (!strcmp(p, "serial"))
++                dm->capabilities |= LIBXL_DM_CAP_SERIAL;
++            else if (!strcmp(p, "audio"))
++                dm->capabilities |= LIBXL_DM_CAP_AUDIO;
++        } else {
++            *p2 = '\0';
++            if (!strcmp(p, "name"))
++                dm->name = strdup(p2 + 1);
++            else if (!strcmp(p, "path"))
++                dm->path = strdup(p2 + 1);
++            else if (!strcmp(p, "vifs"))
++                split_string_into_string_list(p2 + 1, ";", &dm->vifs);
++       }
++    } while ((p = strtok(NULL, ",")) != NULL);
++
++    if (!dm->name && dm->path)
++    {
++        fprintf(stderr, "xl: Unable to parse device_deamon\n");
++        exit(-ERROR_FAIL);
++    }
++skip_dm:
++    free(buf);
++
++    return rc;
++}
+diff --git a/tools/libxl/libxlutil.h b/tools/libxl/libxlutil.h
+index 0333e55..db22715 100644
+--- a/tools/libxl/libxlutil.h
++++ b/tools/libxl/libxlutil.h
+@@ -93,6 +93,11 @@ int xlu_disk_parse(XLU_Config *cfg, int nspecs, const char *const *specs,
+  */
+ int xlu_pci_parse_bdf(XLU_Config *cfg, libxl_device_pci *pcidev, const char *str);
++/*
++ * Daemon specification parsing.
++ */
++int xlu_dm_parse(XLU_Config *cfg, const char *spec,
++                 libxl_dm *dm);
+ /*
+  * Vif rate parsing.
+diff --git a/tools/libxl/xl_cmdimpl.c b/tools/libxl/xl_cmdimpl.c
+index 138cd72..2a26fa4 100644
+--- a/tools/libxl/xl_cmdimpl.c
++++ b/tools/libxl/xl_cmdimpl.c
+@@ -561,7 +561,7 @@ static void parse_config_data(const char *config_source,
+     const char *buf;
+     long l;
+     XLU_Config *config;
+-    XLU_ConfigList *cpus, *vbds, *nics, *pcis, *cvfbs, *cpuids;
++    XLU_ConfigList *cpus, *vbds, *nics, *pcis, *cvfbs, *cpuids, *dms;
+     int pci_power_mgmt = 0;
+     int pci_msitranslate = 0;
+     int pci_permissive = 0;
+@@ -995,6 +995,9 @@ static void parse_config_data(const char *config_source,
+                 } else if (!strcmp(p, "vifname")) {
+                     free(nic->ifname);
+                     nic->ifname = strdup(p2 + 1);
++                } else if (!strcmp(p, "id")) {
++                    free(nic->id);
++                    nic->id = strdup(p2 + 1);
+                 } else if (!strcmp(p, "backend")) {
+                     if(libxl_name_to_domid(ctx, (p2 + 1), &(nic->backend_domid))) {
+                         fprintf(stderr, "Specified backend domain does not exist, defaulting to Dom0\n");
+@@ -1249,6 +1252,30 @@ skip_vfb:
+             }
+         }
+     }
++
++    d_config->num_dms = 0;
++    d_config->dms = NULL;
++
++    if (b_info->device_model_version == LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN
++        && !xlu_cfg_get_list (config, "device_models", &dms, 0, 0)) {
++        while ((buf = xlu_cfg_get_listitem (dms, d_config->num_dms)) != NULL) {
++            libxl_dm *dm;
++            size_t size = sizeof (libxl_dm) * (d_config->num_dms + 1);
++
++            d_config->dms = (libxl_dm *)realloc (d_config->dms, size);
++            if (!d_config->dms) {
++                fprintf(stderr, "Can't realloc d_config->dms\n");
++                exit (1);
++            }
++            dm = d_config->dms + d_config->num_dms;
++            libxl_dm_init (dm);
++            if (xlu_dm_parse(config, buf, dm)) {
++                exit (-ERROR_FAIL);
++            }
++            d_config->num_dms++;
++        }
++    }
++
+ #define parse_extra_args(type)                                            \
+     e = xlu_cfg_get_list_as_string_list(config, "device_model_args"#type, \
+                                     &b_info->extra##type, 0);            \
+-- 
+Julien Grall
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<5CDD8D0357624EC096B9FE6F96850269@LarryE6400> b/config/examples/test/corpus/<5CDD8D0357624EC096B9FE6F96850269@LarryE6400>
new file mode 100644 (file)
index 0000000..61dc4e8
--- /dev/null
@@ -0,0 +1,155 @@
+From xen-devel-bounces@lists.xen.org Sat Jul 21 16:10:24 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Sat, 21 Jul 2012 16:10:24 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SsbK2-0007TZ-1G
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Sat, 21 Jul 2012 16:10:24 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SsbE6-0006UE-DN; Sat, 21 Jul 2012 15:04:14 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <lmw@satx.rr.com>) id 1SsbE4-0006U6-Bo
+       for xen-devel@lists.xen.org; Sat, 21 Jul 2012 15:04:12 +0000
+Received: from [85.158.138.51:28201] by server-1.bemta-3.messagelabs.com id
+       A3/B1-31934-BE4CA005; Sat, 21 Jul 2012 15:04:11 +0000
+X-Env-Sender: lmw@satx.rr.com
+X-Msg-Ref: server-3.tower-174.messagelabs.com!1342883048!19998035!1
+X-Originating-IP: [75.180.132.120]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       QmFkIElQOiA3NS4xODAuMTMyLjEyMCA9PiA4OTE1OA==\n,sa_preprocessor: 
+       QmFkIElQOiA3NS4xODAuMTMyLjEyMCA9PiA4OTE1OA==\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.2; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 31823 invoked from network); 21 Jul 2012 15:04:09 -0000
+Received: from cdptpa-omtalb.mail.rr.com (HELO cdptpa-omtalb.mail.rr.com)
+       (75.180.132.120) by server-3.tower-174.messagelabs.com with SMTP;
+       21 Jul 2012 15:04:09 -0000
+X-Authority-Analysis: v=2.0 cv=Dp/UCRD+ c=1 sm=0 a=r1aGfrPin9q3IVjnGKu9DA==:17
+       a=mkDZTsCubmwA:10 a=YIV_H7EphM0A:10 a=05ChyHeVI94A:10
+       a=kj9zAlcOel0A:10 a=ayC55rCoAAAA:8 a=aIfeI5IIAAAA:8
+       a=mLnsDVdbAAAA:8 a=Cn_b-13N7H_b4d97ag8A:9 a=CjuIK1q_8ugA:10
+       a=q4caQGXUH8Gp4QHh:21 a=wpwT_26DpOu5L76C:21
+       a=r1aGfrPin9q3IVjnGKu9DA==:117
+X-Cloudmark-Score: 0
+X-Originating-IP: 66.69.0.49
+Received: from [66.69.0.49] ([66.69.0.49:49659] helo=LarryE6400)
+       by cdptpa-oedge02.mail.rr.com (envelope-from <lmw@satx.rr.com>)
+       (ecelerity 2.2.3.46 r()) with ESMTP
+       id 4C/58-13948-8E4CA005; Sat, 21 Jul 2012 15:04:08 +0000
+From: "Larry White" <lmw@satx.rr.com>
+To: "'James Harper'" <james.harper@bendigoit.com.au>, <xen-devel@lists.xen.org>
+References: <A8575D3216834DFCAA86F5B2B3546613@LarryE6400>
+       <6035A0D088A63A46850C3988ED045A4B299B8A95@BITCOM1.int.sbss.com.au>
+       <1E8F546AD8E64BF1B2D68D24F3BD4050@LarryE6400>
+       <6035A0D088A63A46850C3988ED045A4B299B8F9D@BITCOM1.int.sbss.com.au>
+In-Reply-To: <6035A0D088A63A46850C3988ED045A4B299B8F9D@BITCOM1.int.sbss.com.au>
+Date: Sat, 21 Jul 2012 10:04:02 -0500
+Message-ID: <5CDD8D0357624EC096B9FE6F96850269@LarryE6400>
+MIME-Version: 1.0
+X-Mailer: Microsoft Office Outlook 11
+X-MimeOLE: Produced By Microsoft MimeOLE V6.1.7601.17609
+Thread-Index: Ac1m2/yuJJyO+ROQQxKMLV1mGoHskAABhbjAAABDEwAAAe6rkAAYxGOA
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] XenStore as a data transfer path?
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+Hi James,
+Thanks for your help with this.  I am brand new to Xen, so I appreciate the
+information so I can get started on the correct path.
+
+
+-----Original Message-----
+From: James Harper [mailto:james.harper@bendigoit.com.au] 
+Sent: Saturday, July 21, 2012 7:01 AM
+To: Larry White; xen-devel@lists.xen.org
+Subject: RE: [Xen-devel] XenStore as a data transfer path?
+
+> >
+> > Can the XenStore database be accessed by domU's?
+> >
+> 
+> >>Yes. That is how the frontend/backend devices set up their
+> >>communication channels.
+> 
+> Are you saying that the actual data going back and forth gets put into the
+> XenStore?  I thought that the XenStore was mostly used for configuration
+> keyword values and such that the underlying drivers needed.
+> 
+
+>>Yes. It's how they set up their communication channels. The communication
+>>channels are shared pages of memory and event channels, but they use
+>>xenstore to set it up (eg so the backend can find the address of the
+>>frontend ring.
+
+I realize XenStore is used to help setup these channels.  However, for some
+reason, I was thinking if this information is visible between both dom0 and
+domU, I could use it to pass my data back and forth through.  Currently, my
+domU Fedora Kernel is a plain vanilla version configured as a HVM which may
+not be able to access the XenStore (not sure about this).  Do I need a
+special guest kernel to perform Xen communication with dom0?  If so, what
+about Windows?  Is there a special Guest Xen windows binary also for it?
+
+I guess I was thinking that a simple XenStore only approach would eliminate
+having to setup a split-driver model that utilized ring-buffers and such.
+Of course, I can certainly do this if this is the correct thing to do.  I
+just didn't think it had to be too complicated for such a small amount of
+data that needs to be transferred.
+
+> >
+> > If so, could it be used to pass small amounts of data back and forth
+> between
+> > dom0 and domU's using XenStore key entries?  If this is possible, it
+> > would seem that this could eliminate the need to create a "device"
+> > driver for a simple communication path.
+> >
+> 
+> >>Yes, for certain values of "small". Can you say more about the sort of
+> >>data you would be passing? In particular the throughput and latency
+> >>requirements?
+> 
+> I would say that the small amount of data here per transfer would be
+around
+> 32 bytes in length with a latency of around 500ms or so.
+> 
+
+>>How fast though? Is it 32 bytes every 1ms, or 32 bytes every 20 seconds?
+
+32 bytes every 500ms (1/2 second).
+
+Larry
+
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<6035A0D088A63A46850C3988ED045A4B299B8A95@BITCOM1.int.sbss.com.au> b/config/examples/test/corpus/<6035A0D088A63A46850C3988ED045A4B299B8A95@BITCOM1.int.sbss.com.au>
new file mode 100644 (file)
index 0000000..26d7a2b
--- /dev/null
@@ -0,0 +1,112 @@
+From xen-devel-bounces@lists.xen.org Sat Jul 21 02:49:08 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Sat, 21 Jul 2012 02:49:08 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SsOob-0001iW-UU
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Sat, 21 Jul 2012 02:49:08 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SsOjs-0002BH-IZ; Sat, 21 Jul 2012 01:44:12 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <james.harper@bendigoit.com.au>) id 1SsOjq-0002BC-CO
+       for xen-devel@lists.xen.org; Sat, 21 Jul 2012 01:44:10 +0000
+Received: from [85.158.143.35:48756] by server-2.bemta-4.messagelabs.com id
+       3B/50-17938-9690A005; Sat, 21 Jul 2012 01:44:09 +0000
+X-Env-Sender: james.harper@bendigoit.com.au
+X-Msg-Ref: server-6.tower-21.messagelabs.com!1342835046!16258449!1
+X-Originating-IP: [203.16.207.99]
+X-SpamReason: No, hits=0.0 required=7.0 tests=
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.2; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 23960 invoked from network); 21 Jul 2012 01:44:08 -0000
+Received: from smtp2.bendigoit.com.au (HELO smtp2.bendigoit.com.au)
+       (203.16.207.99)
+       by server-6.tower-21.messagelabs.com with AES256-SHA encrypted SMTP;
+       21 Jul 2012 01:44:08 -0000
+Received: from trantor.int.sbss.com.au ([192.168.200.206]
+       helo=mail.bendigoit.com.au)
+       by smtp2.bendigoit.com.au with esmtp (Exim 4.72)
+       (envelope-from <james.harper@bendigoit.com.au>)
+       id 1SsOjh-00035N-SB; Sat, 21 Jul 2012 11:44:01 +1000
+Received: from BITCOM1.int.sbss.com.au ([192.168.200.237]) by
+       mail.bendigoit.com.au with Microsoft SMTPSVC(6.0.3790.4675); 
+       Sat, 21 Jul 2012 11:44:01 +1000
+Received: from BITCOM1.int.sbss.com.au ([fe80::a5ca:4fd3:14f:ad5d]) by
+       BITCOM1.int.sbss.com.au ([fe80::a5ca:4fd3:14f:ad5d%12]) with mapi id
+       14.01.0355.002; Sat, 21 Jul 2012 11:44:00 +1000
+From: James Harper <james.harper@bendigoit.com.au>
+To: Larry White <lmw@satx.rr.com>, "xen-devel@lists.xen.org"
+       <xen-devel@lists.xen.org>
+Thread-Topic: [Xen-devel] XenStore as a data transfer path?
+Thread-Index: Ac1m2/yuJJyO+ROQQxKMLV1mGoHskAABhbjA
+Date: Sat, 21 Jul 2012 01:43:59 +0000
+Message-ID: <6035A0D088A63A46850C3988ED045A4B299B8A95@BITCOM1.int.sbss.com.au>
+References: <A8575D3216834DFCAA86F5B2B3546613@LarryE6400>
+In-Reply-To: <A8575D3216834DFCAA86F5B2B3546613@LarryE6400>
+Accept-Language: en-AU, en-US
+Content-Language: en-US
+X-MS-Has-Attach: 
+X-MS-TNEF-Correlator: 
+x-originating-ip: [172.16.3.132]
+x-tm-as-product-ver: SMEX-10.2.0.1135-7.000.1014-19054.003
+x-tm-as-result: No--28.241200-0.000000-31
+x-tm-as-user-approved-sender: Yes
+x-tm-as-user-blocked-sender: No
+MIME-Version: 1.0
+X-OriginalArrivalTime: 21 Jul 2012 01:44:01.0662 (UTC)
+       FILETIME=[4DBF09E0:01CD66E2]
+X-Really-From-Bendigo-IT: magichashvalue
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] XenStore as a data transfer path?
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+> 
+> Can the XenStore database be accessed by domU's?
+> 
+
+Yes. That is how the frontend/backend devices set up their communication channels.
+
+> 
+> If so, could it be used to pass small amounts of data back and forth between
+> dom0 and domU's using XenStore key entries?  If this is possible, it would
+> seem that this could eliminate the need to create a "device" driver for a
+> simple communication path.
+> 
+
+Yes, for certain values of "small". Can you say more about the sort of data you would be passing? In particular the throughput and latency requirements?
+
+James
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<6035A0D088A63A46850C3988ED045A4B299B8F9D@BITCOM1.int.sbss.com.au> b/config/examples/test/corpus/<6035A0D088A63A46850C3988ED045A4B299B8F9D@BITCOM1.int.sbss.com.au>
new file mode 100644 (file)
index 0000000..d879a2a
--- /dev/null
@@ -0,0 +1,131 @@
+From xen-devel-bounces@lists.xen.org Sat Jul 21 13:06:57 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Sat, 21 Jul 2012 13:06:57 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SsYSV-0007Bv-2D
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Sat, 21 Jul 2012 13:06:57 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SsYN5-0005lW-Pe; Sat, 21 Jul 2012 12:01:19 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <james.harper@bendigoit.com.au>) id 1SsYN4-0005lP-L2
+       for xen-devel@lists.xen.org; Sat, 21 Jul 2012 12:01:18 +0000
+Received: from [85.158.143.35:26136] by server-2.bemta-4.messagelabs.com id
+       09/22-17938-D0A9A005; Sat, 21 Jul 2012 12:01:17 +0000
+X-Env-Sender: james.harper@bendigoit.com.au
+X-Msg-Ref: server-4.tower-21.messagelabs.com!1342872072!5891202!1
+X-Originating-IP: [203.16.224.4]
+X-SpamReason: No, hits=0.0 required=7.0 tests=
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.2; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 28850 invoked from network); 21 Jul 2012 12:01:15 -0000
+Received: from smtp1.bendigoit.com.au (HELO smtp1.bendigoit.com.au)
+       (203.16.224.4)
+       by server-4.tower-21.messagelabs.com with AES256-SHA encrypted SMTP;
+       21 Jul 2012 12:01:15 -0000
+Received: from smtp2.bendigoit.com.au ([203.16.207.99]
+       helo=mail.bendigoit.com.au)
+       by smtp1.bendigoit.com.au with esmtp (Exim 4.69)
+       (envelope-from <james.harper@bendigoit.com.au>)
+       id 1SsYMq-0007o8-C8; Sat, 21 Jul 2012 22:01:04 +1000
+Received: from BITCOM1.int.sbss.com.au ([192.168.200.237]) by
+       mail.bendigoit.com.au with Microsoft SMTPSVC(6.0.3790.4675); 
+       Sat, 21 Jul 2012 22:01:03 +1000
+Received: from BITCOM1.int.sbss.com.au ([fe80::a5ca:4fd3:14f:ad5d]) by
+       BITCOM1.int.sbss.com.au ([fe80::a5ca:4fd3:14f:ad5d%12]) with mapi id
+       14.01.0355.002; Sat, 21 Jul 2012 22:01:03 +1000
+From: James Harper <james.harper@bendigoit.com.au>
+To: Larry White <lmw@satx.rr.com>, "xen-devel@lists.xen.org"
+       <xen-devel@lists.xen.org>
+Thread-Topic: [Xen-devel] XenStore as a data transfer path?
+Thread-Index: Ac1m2/yuJJyO+ROQQxKMLV1mGoHskAABhbjAAABDEwAAAe6rkA==
+Date: Sat, 21 Jul 2012 12:01:00 +0000
+Message-ID: <6035A0D088A63A46850C3988ED045A4B299B8F9D@BITCOM1.int.sbss.com.au>
+References: <A8575D3216834DFCAA86F5B2B3546613@LarryE6400>
+       <6035A0D088A63A46850C3988ED045A4B299B8A95@BITCOM1.int.sbss.com.au>
+       <1E8F546AD8E64BF1B2D68D24F3BD4050@LarryE6400>
+In-Reply-To: <1E8F546AD8E64BF1B2D68D24F3BD4050@LarryE6400>
+Accept-Language: en-AU, en-US
+Content-Language: en-US
+X-MS-Has-Attach: 
+X-MS-TNEF-Correlator: 
+x-originating-ip: [172.16.3.132]
+x-tm-as-product-ver: SMEX-10.2.0.1135-7.000.1014-19054.006
+x-tm-as-result: No--38.100400-0.000000-31
+x-tm-as-user-approved-sender: Yes
+x-tm-as-user-blocked-sender: No
+MIME-Version: 1.0
+X-OriginalArrivalTime: 21 Jul 2012 12:01:03.0935 (UTC)
+       FILETIME=[80BD94F0:01CD6738]
+X-Really-From-Bendigo-IT: magichashvalue
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] XenStore as a data transfer path?
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+> >
+> > Can the XenStore database be accessed by domU's?
+> >
+> 
+> >>Yes. That is how the frontend/backend devices set up their
+> >>communication channels.
+> 
+> Are you saying that the actual data going back and forth gets put into the
+> XenStore?  I thought that the XenStore was mostly used for configuration
+> keyword values and such that the underlying drivers needed.
+> 
+
+Yes. It's how they set up their communication channels. The communication channels are shared pages of memory and event channels, but they use xenstore to set it up (eg so the backend can find the address of the frontend ring.
+
+> >
+> > If so, could it be used to pass small amounts of data back and forth
+> between
+> > dom0 and domU's using XenStore key entries?  If this is possible, it
+> > would seem that this could eliminate the need to create a "device"
+> > driver for a simple communication path.
+> >
+> 
+> >>Yes, for certain values of "small". Can you say more about the sort of
+> >>data you would be passing? In particular the throughput and latency
+> >>requirements?
+> 
+> I would say that the small amount of data here per transfer would be around
+> 32 bytes in length with a latency of around 500ms or so.
+> 
+
+How fast though? Is it 32 bytes every 1ms, or 32 bytes every 20 seconds?
+
+James
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<6035A0D088A63A46850C3988ED045A4B299F74F8@BITCOM1.int.sbss.com.au> b/config/examples/test/corpus/<6035A0D088A63A46850C3988ED045A4B299F74F8@BITCOM1.int.sbss.com.au>
new file mode 100644 (file)
index 0000000..ee39e50
--- /dev/null
@@ -0,0 +1,104 @@
+From xen-devel-bounces@lists.xen.org Mon Aug 13 15:17:59 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Mon, 13 Aug 2012 15:17:59 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T0vSr-0000Zb-RH
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Mon, 13 Aug 2012 15:17:59 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T0vOy-00068i-9A; Mon, 13 Aug 2012 14:13:52 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <james.harper@bendigoit.com.au>) id 1T0vOw-00068b-CD
+       for xen-devel@lists.xen.org; Mon, 13 Aug 2012 14:13:50 +0000
+Received: from [85.158.143.99:60579] by server-2.bemta-4.messagelabs.com id
+       94/21-31966-D9B09205; Mon, 13 Aug 2012 14:13:49 +0000
+X-Env-Sender: james.harper@bendigoit.com.au
+X-Msg-Ref: server-3.tower-216.messagelabs.com!1344867181!27377838!1
+X-Originating-IP: [203.16.207.99]
+X-SpamReason: No, hits=0.0 required=7.0 tests=
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 14932 invoked from network); 13 Aug 2012 14:13:04 -0000
+Received: from mail.bendigoit.com.au (HELO smtp2.bendigoit.com.au)
+       (203.16.207.99)
+       by server-3.tower-216.messagelabs.com with AES256-SHA encrypted SMTP;
+       13 Aug 2012 14:13:04 -0000
+Received: from trantor.int.sbss.com.au ([192.168.200.206]
+       helo=mail.bendigoit.com.au)
+       by smtp2.bendigoit.com.au with esmtp (Exim 4.72)
+       (envelope-from <james.harper@bendigoit.com.au>) id 1T0vO7-0005XM-Ud
+       for xen-devel@lists.xen.org; Tue, 14 Aug 2012 00:12:59 +1000
+Received: from BITCOM1.int.sbss.com.au ([192.168.200.237]) by
+       mail.bendigoit.com.au with Microsoft SMTPSVC(6.0.3790.4675); 
+       Tue, 14 Aug 2012 00:12:59 +1000
+Received: from BITCOM1.int.sbss.com.au ([fe80::a5ca:4fd3:14f:ad5d]) by
+       BITCOM1.int.sbss.com.au ([fe80::a5ca:4fd3:14f:ad5d%12]) with mapi id
+       14.01.0355.002; Tue, 14 Aug 2012 00:12:59 +1000
+From: James Harper <james.harper@bendigoit.com.au>
+To: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+Thread-Topic: bug when using 4K sectors?
+Thread-Index: Ac15XJ9mOEWrLpZlQnymzekcRdWXAQ==
+Date: Mon, 13 Aug 2012 14:12:58 +0000
+Message-ID: <6035A0D088A63A46850C3988ED045A4B299F74F8@BITCOM1.int.sbss.com.au>
+Accept-Language: en-AU, en-US
+Content-Language: en-US
+X-MS-Has-Attach: 
+X-MS-TNEF-Correlator: 
+x-originating-ip: [172.16.3.132]
+x-tm-as-product-ver: SMEX-10.2.0.1135-7.000.1014-19108.007
+x-tm-as-result: No--26.514400-0.000000-31
+x-tm-as-user-approved-sender: Yes
+x-tm-as-user-blocked-sender: No
+MIME-Version: 1.0
+X-OriginalArrivalTime: 13 Aug 2012 14:12:59.0763 (UTC)
+       FILETIME=[BE715430:01CD795D]
+X-Really-From-Bendigo-IT: magichashvalue
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: [Xen-devel] bug when using 4K sectors?
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+I notice this code in drivers/block/xen-blkback/common.h
+
+#define vbd_sz(_v)      ((_v)->bdev->bd_part ? \
+                         (_v)->bdev->bd_part->nr_sects : \
+                          get_capacity((_v)->bdev->bd_disk))
+
+is the value returned by vbd_sz(_v) the number of sectors in the Linux device (eg size / 4096), or the number of 512 byte sectors? I suspect the former which is causing block requests beyond 1/8th the size of the device to fail (assuming 4K sectors are expected to work at all - I can't quite get my head around how it would be expected to work - does Linux do the read-modify-write if required?)
+
+I can't test until tomorrow AEDT, but maybe someone here knows the answer already?
+
+James
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<6035A0D088A63A46850C3988ED045A4B29B5D23E@BITCOM1.int.sbss.com.au> b/config/examples/test/corpus/<6035A0D088A63A46850C3988ED045A4B29B5D23E@BITCOM1.int.sbss.com.au>
new file mode 100644 (file)
index 0000000..8fc5ae2
--- /dev/null
@@ -0,0 +1,120 @@
+From xen-devel-bounces@lists.xen.org Thu Sep 06 01:01:29 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 06 Sep 2012 01:01:29 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T9PXC-00055v-J9
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 06 Sep 2012 01:01:28 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T9PSN-0007lO-6k; Wed, 05 Sep 2012 23:56:27 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <james.harper@bendigoit.com.au>) id 1T9PSL-0007lJ-4U
+       for xen-devel@lists.xen.org; Wed, 05 Sep 2012 23:56:25 +0000
+Received: from [85.158.143.99:14168] by server-3.bemta-4.messagelabs.com id
+       9E/E9-08232-8A6E7405; Wed, 05 Sep 2012 23:56:24 +0000
+X-Env-Sender: james.harper@bendigoit.com.au
+X-Msg-Ref: server-7.tower-216.messagelabs.com!1346889380!25407372!1
+X-Originating-IP: [203.16.224.4]
+X-SpamReason: No, hits=0.0 required=7.0 tests=
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 19049 invoked from network); 5 Sep 2012 23:56:23 -0000
+Received: from smtp1.bendigoit.com.au (HELO smtp1.bendigoit.com.au)
+       (203.16.224.4)
+       by server-7.tower-216.messagelabs.com with AES256-SHA encrypted SMTP;
+       5 Sep 2012 23:56:23 -0000
+Received: from [2001:388:e000:712:a5ca:4fd3:14f:ad5d]
+       (helo=BITCOM1.int.sbss.com.au)
+       by smtp1.bendigoit.com.au with esmtp (Exim 4.69)
+       (envelope-from <james.harper@bendigoit.com.au>)
+       id 1T9PSB-0000DT-Bs; Thu, 06 Sep 2012 09:56:15 +1000
+Received: from BITCOM1.int.sbss.com.au ([fe80::a5ca:4fd3:14f:ad5d]) by
+       BITCOM1.int.sbss.com.au ([fe80::a5ca:4fd3:14f:ad5d%12]) with mapi id
+       14.01.0379.000; Thu, 6 Sep 2012 09:56:09 +1000
+From: James Harper <james.harper@bendigoit.com.au>
+To: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+Thread-Topic: [Xen-devel] bug when using 4K sectors?
+Thread-Index: Ac15XJ9mOEWrLpZlQnymzekcRdWXAQR9LPqAABwcDwA=
+Date: Wed, 5 Sep 2012 23:56:08 +0000
+Message-ID: <6035A0D088A63A46850C3988ED045A4B29B5D23E@BITCOM1.int.sbss.com.au>
+References: <6035A0D088A63A46850C3988ED045A4B299F74F8@BITCOM1.int.sbss.com.au>
+       <20120905202927.GD27814@phenom.dumpdata.com>
+In-Reply-To: <20120905202927.GD27814@phenom.dumpdata.com>
+Accept-Language: en-AU, en-US
+Content-Language: en-US
+X-MS-Has-Attach: 
+X-MS-TNEF-Correlator: 
+x-originating-ip: [2001:388:e000:712:5e4:3634:9056:495f]
+x-tm-as-product-ver: SMEX-10.2.0.1135-7.000.1014-19166.002
+x-tm-as-result: No--36.993100-0.000000-31
+x-tm-as-user-approved-sender: Yes
+x-tm-as-user-blocked-sender: No
+MIME-Version: 1.0
+X-Really-From-Bendigo-IT: magichashvalue
+Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] bug when using 4K sectors?
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+> On Mon, Aug 13, 2012 at 02:12:58PM +0000, James Harper wrote:
+> > I notice this code in drivers/block/xen-blkback/common.h
+> >
+> > #define vbd_sz(_v)      ((_v)->bdev->bd_part ? \
+> >                          (_v)->bdev->bd_part->nr_sects : \
+> >                           get_capacity((_v)->bdev->bd_disk))
+> >
+> > is the value returned by vbd_sz(_v) the number of sectors in the Linux
+> > device (eg size / 4096), or the number of 512 byte sectors? I suspect
+> > the former which is causing block requests beyond 1/8th the size of
+> > the device to fail (assuming 4K sectors are expected to work at all -
+> > I can't quite get my head around how it would be expected to work -
+> > does Linux do the read-modify-write if required?)
+> 
+> I think you need to instrument it to be sure.. But more interesting, do you
+> actually have a disk that exposes a 4KB hardware and logical sector? So far
+> I've only found SSDs that expose a 512kB logical sector but also expose the
+> 4KB hardware.
+> 
+> Never could figure out how that is all suppose to work as the blkback is filled
+> with << 9 on a bunch of things.
+> 
+
+I was using bcache which does expose a 4K block size, by default. I changed it to 512 and it all works now, although I haven't tested if there is any loss of performance.
+
+Does Xen provide a way to tell Windows that the underlying device is 512e (4K sector with 512 byte emulated interface)? This would keep everything working as is but allow windows to align writes to 4K boundaries where possible.
+
+James
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<6035A0D088A63A46850C3988ED045A4B29B96FA1@BITCOM1.int.sbss.com.au> b/config/examples/test/corpus/<6035A0D088A63A46850C3988ED045A4B29B96FA1@BITCOM1.int.sbss.com.au>
new file mode 100644 (file)
index 0000000..b787bd2
--- /dev/null
@@ -0,0 +1,113 @@
+From xen-devel-bounces@lists.xen.org Sun Sep 16 11:43:13 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Sun, 16 Sep 2012 11:43:13 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TDCJi-0000V6-JS
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Sun, 16 Sep 2012 11:43:12 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TDCER-0008Vw-88; Sun, 16 Sep 2012 10:37:43 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <james.harper@bendigoit.com.au>) id 1TDCEP-0008Vr-Dn
+       for xen-devel@lists.xen.org; Sun, 16 Sep 2012 10:37:41 +0000
+Received: from [85.158.139.211:8562] by server-4.bemta-5.messagelabs.com id
+       C3/89-23042-4FBA5505; Sun, 16 Sep 2012 10:37:40 +0000
+X-Env-Sender: james.harper@bendigoit.com.au
+X-Msg-Ref: server-5.tower-206.messagelabs.com!1347791856!18694720!1
+X-Originating-IP: [203.16.224.4]
+X-SpamReason: No, hits=0.0 required=7.0 tests=
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 24694 invoked from network); 16 Sep 2012 10:37:39 -0000
+Received: from smtp1.bendigoit.com.au (HELO smtp1.bendigoit.com.au)
+       (203.16.224.4)
+       by server-5.tower-206.messagelabs.com with AES256-SHA encrypted SMTP;
+       16 Sep 2012 10:37:39 -0000
+Received: from [2001:388:e000:712:a5ca:4fd3:14f:ad5d]
+       (helo=BITCOM1.int.sbss.com.au)
+       by smtp1.bendigoit.com.au with esmtp (Exim 4.69)
+       (envelope-from <james.harper@bendigoit.com.au>)
+       id 1TDCE8-00026o-Iw; Sun, 16 Sep 2012 20:37:24 +1000
+Received: from BITCOM1.int.sbss.com.au ([fe80::a5ca:4fd3:14f:ad5d]) by
+       BITCOM1.int.sbss.com.au ([fe80::a5ca:4fd3:14f:ad5d%12]) with mapi id
+       14.01.0379.000; Sun, 16 Sep 2012 20:37:24 +1000
+From: James Harper <james.harper@bendigoit.com.au>
+To: Keir Fraser <keir.xen@gmail.com>, Joseph Glanville
+       <joseph.glanville@orionvm.com.au>, Konrad Rzeszutek Wilk
+       <konrad.wilk@oracle.com>
+Thread-Topic: [Xen-devel] bug when using 4K sectors?
+Thread-Index: Ac15XJ9mOEWrLpZlQnymzekcRdWXAQR9LPqAABwcDwAAAjyqAAHumRqAAAMtwQAAGTSEYA==
+Date: Sun, 16 Sep 2012 10:37:23 +0000
+Message-ID: <6035A0D088A63A46850C3988ED045A4B29B96FA1@BITCOM1.int.sbss.com.au>
+References: <CAOzFzEiZopdFQuZkUcSWWre9b=NeZpJM9n2VtEoZcRo=ejYQPA@mail.gmail.com>
+       <CC7B4CE4.3EE74%keir.xen@gmail.com>
+In-Reply-To: <CC7B4CE4.3EE74%keir.xen@gmail.com>
+Accept-Language: en-AU, en-US
+Content-Language: en-US
+X-MS-Has-Attach: 
+X-MS-TNEF-Correlator: 
+x-originating-ip: [172.16.3.132]
+x-tm-as-product-ver: SMEX-10.2.0.2087-7.000.1014-19186.006
+x-tm-as-result: No--39.635800-0.000000-31
+x-tm-as-user-approved-sender: Yes
+x-tm-as-user-blocked-sender: No
+MIME-Version: 1.0
+X-Really-From-Bendigo-IT: magichashvalue
+Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.7 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] bug when using 4K sectors?
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+> > Being able to use 4k sectors seems like it would provide pretty
+> > massive gains in performance just by being more efficient let alone
+> > increasing byte aligned writes to the underlying block storage system.
+> 
+> The PV blk transport may be based on 512-byte sectors, but the real sector
+> size is communicated between blkfront and blkback via xenbus (field
+> 'sector-size') and blkfront is expected to only make requests that are
+> multiple of, and aligned according to, that real 'sector-size'.
+> 
+> I would kind of expect it to work, as CD-ROMs have a larger sector size (2kB
+> IIRC) and we support those...
+> 
+> Bashing your head against the PV blk transport code may be premature. ;)
+> 
+
+So a sector-size of 4096 would basically be a 512e device, allowing the underlying OS to communicate in 512 byte blocks but knowing that things will work best in 4096 byte sized transfers aligned to multiples of 4096 bytes, right?
+
+James
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<6035A0D088A63A46850C3988ED045A4B29B9806B@BITCOM1.int.sbss.com.au> b/config/examples/test/corpus/<6035A0D088A63A46850C3988ED045A4B29B9806B@BITCOM1.int.sbss.com.au>
new file mode 100644 (file)
index 0000000..641f44c
--- /dev/null
@@ -0,0 +1,106 @@
+From xen-devel-bounces@lists.xen.org Sun Sep 16 12:26:10 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Sun, 16 Sep 2012 12:26:10 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TDCzI-0000ew-H1
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Sun, 16 Sep 2012 12:26:10 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TDCvI-0000Rk-9X; Sun, 16 Sep 2012 11:22:00 +0000
+Received: from mail27.messagelabs.com ([193.109.254.147])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <james.harper@bendigoit.com.au>) id 1TDCvH-0000Rb-Cc
+       for xen-devel@lists.xen.org; Sun, 16 Sep 2012 11:21:59 +0000
+X-Env-Sender: james.harper@bendigoit.com.au
+X-Msg-Ref: server-7.tower-27.messagelabs.com!1347794510!3502345!1
+X-Originating-IP: [203.16.224.4]
+X-SpamReason: No, hits=0.0 required=7.0 tests=
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 8587 invoked from network); 16 Sep 2012 11:21:52 -0000
+Received: from smtp1.bendigoit.com.au (HELO smtp1.bendigoit.com.au)
+       (203.16.224.4)
+       by server-7.tower-27.messagelabs.com with AES256-SHA encrypted SMTP;
+       16 Sep 2012 11:21:52 -0000
+Received: from [2001:388:e000:712:a5ca:4fd3:14f:ad5d]
+       (helo=BITCOM1.int.sbss.com.au)
+       by smtp1.bendigoit.com.au with esmtp (Exim 4.69)
+       (envelope-from <james.harper@bendigoit.com.au>)
+       id 1TDCuy-0002Ea-N5; Sun, 16 Sep 2012 21:21:41 +1000
+Received: from BITCOM1.int.sbss.com.au ([fe80::a5ca:4fd3:14f:ad5d]) by
+       BITCOM1.int.sbss.com.au ([fe80::a5ca:4fd3:14f:ad5d%12]) with mapi id
+       14.01.0379.000; Sun, 16 Sep 2012 21:21:35 +1000
+From: James Harper <james.harper@bendigoit.com.au>
+To: Keir Fraser <keir.xen@gmail.com>, Joseph Glanville
+       <joseph.glanville@orionvm.com.au>, Konrad Rzeszutek Wilk
+       <konrad.wilk@oracle.com>
+Thread-Topic: [Xen-devel] bug when using 4K sectors?
+Thread-Index: Ac15XJ9mOEWrLpZlQnymzekcRdWXAQR9LPqAABwcDwAAAjyqAAHumRqAAAMtwQAAGTSEYAABlUzVAAALPUA=
+Date: Sun, 16 Sep 2012 11:21:33 +0000
+Message-ID: <6035A0D088A63A46850C3988ED045A4B29B9806B@BITCOM1.int.sbss.com.au>
+References: <6035A0D088A63A46850C3988ED045A4B29B96FA1@BITCOM1.int.sbss.com.au>
+       <CC7B740A.3EE89%keir.xen@gmail.com>
+In-Reply-To: <CC7B740A.3EE89%keir.xen@gmail.com>
+Accept-Language: en-AU, en-US
+Content-Language: en-US
+X-MS-Has-Attach: 
+X-MS-TNEF-Correlator: 
+x-originating-ip: [172.16.3.132]
+x-tm-as-product-ver: SMEX-10.2.0.2087-7.000.1014-19186.006
+x-tm-as-result: No--42.108700-0.000000-31
+x-tm-as-user-approved-sender: Yes
+x-tm-as-user-blocked-sender: No
+MIME-Version: 1.0
+X-Really-From-Bendigo-IT: magichashvalue
+Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.7 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] bug when using 4K sectors?
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+> > So a sector-size of 4096 would basically be a 512e device, allowing
+> > the underlying OS to communicate in 512 byte blocks but knowing that
+> > things will work best in 4096 byte sized transfers aligned to
+> > multiples of 4096 bytes, right?
+> 
+> My recollection is that blkfront is required to submit only appropriately -sized
+> and -aligned requests; i.e. it's not merely advisory. I remember this got
+> added for CD-ROM support and if they had worked without this, I'm sure we
+> wouldn't have bothered!
+> 
+
+That's a shame. It would be good to have separate values for Physical and Logical block sizes so the guest VM can make appropriate alignment decisions. In fact there is a lot of stuff in /sys for the block devices that would be nice to be mapped into xenstore!
+
+James
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<6035A0D088A63A46850C3988ED045A4B29B980EB@BITCOM1.int.sbss.com.au> b/config/examples/test/corpus/<6035A0D088A63A46850C3988ED045A4B29B980EB@BITCOM1.int.sbss.com.au>
new file mode 100644 (file)
index 0000000..fecdce9
--- /dev/null
@@ -0,0 +1,116 @@
+From xen-devel-bounces@lists.xen.org Sun Sep 16 12:55:41 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Sun, 16 Sep 2012 12:55:41 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TDDRq-0000iR-M2
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Sun, 16 Sep 2012 12:55:41 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TDDNL-0000zD-RG; Sun, 16 Sep 2012 11:50:59 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <james.harper@bendigoit.com.au>) id 1TDDNJ-0000z8-5q
+       for xen-devel@lists.xen.org; Sun, 16 Sep 2012 11:50:57 +0000
+Received: from [85.158.143.35:38165] by server-2.bemta-4.messagelabs.com id
+       67/32-21239-02DB5505; Sun, 16 Sep 2012 11:50:56 +0000
+X-Env-Sender: james.harper@bendigoit.com.au
+X-Msg-Ref: server-15.tower-21.messagelabs.com!1347796252!14856046!1
+X-Originating-IP: [203.16.207.99]
+X-SpamReason: No, hits=0.5 required=7.0 tests=BODY_RANDOM_LONG
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 19937 invoked from network); 16 Sep 2012 11:50:55 -0000
+Received: from mail.bendigoit.com.au (HELO smtp2.bendigoit.com.au)
+       (203.16.207.99)
+       by server-15.tower-21.messagelabs.com with AES256-SHA encrypted SMTP;
+       16 Sep 2012 11:50:55 -0000
+Received: from [2001:388:e000:712:a5ca:4fd3:14f:ad5d]
+       (helo=BITCOM1.int.sbss.com.au)
+       by smtp2.bendigoit.com.au with esmtp (Exim 4.72)
+       (envelope-from <james.harper@bendigoit.com.au>)
+       id 1TDDMv-0001CR-S5; Sun, 16 Sep 2012 21:50:33 +1000
+Received: from BITCOM1.int.sbss.com.au ([fe80::a5ca:4fd3:14f:ad5d]) by
+       BITCOM1.int.sbss.com.au ([fe80::a5ca:4fd3:14f:ad5d%12]) with mapi id
+       14.01.0379.000; Sun, 16 Sep 2012 21:50:33 +1000
+From: James Harper <james.harper@bendigoit.com.au>
+To: Alan Cox <alan@lxorguk.ukuu.org.uk>, Keir Fraser <keir.xen@gmail.com>
+Thread-Topic: [Xen-devel] bug when using 4K sectors?
+Thread-Index: Ac15XJ9mOEWrLpZlQnymzekcRdWXAQR9LPqAABwcDwAAAjyqAAHumRqAAAMtwQAABiPGAAAVq48g
+Date: Sun, 16 Sep 2012 11:50:31 +0000
+Message-ID: <6035A0D088A63A46850C3988ED045A4B29B980EB@BITCOM1.int.sbss.com.au>
+References: <CAOzFzEiZopdFQuZkUcSWWre9b=NeZpJM9n2VtEoZcRo=ejYQPA@mail.gmail.com>
+       <CC7B4CE4.3EE74%keir.xen@gmail.com>
+       <20120916122704.4ea05b45@pyramind.ukuu.org.uk>
+In-Reply-To: <20120916122704.4ea05b45@pyramind.ukuu.org.uk>
+Accept-Language: en-AU, en-US
+Content-Language: en-US
+X-MS-Has-Attach: 
+X-MS-TNEF-Correlator: 
+x-originating-ip: [172.16.3.132]
+x-tm-as-product-ver: SMEX-10.2.0.2087-7.000.1014-19186.006
+x-tm-as-result: No--33.814600-0.000000-31
+x-tm-as-user-approved-sender: Yes
+x-tm-as-user-blocked-sender: No
+MIME-Version: 1.0
+X-Really-From-Bendigo-IT: magichashvalue
+Cc: Joseph Glanville <joseph.glanville@orionvm.com.au>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
+       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.7 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] bug when using 4K sectors?
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+> 
+> > I would kind of expect it to work, as CD-ROMs have a larger sector
+> > size (2kB
+> > IIRC) and we support those...
+> 
+> For data blocks they are 2K, as are some magneto-opticals.
+> 
+> The more complicated case is modern hard disks, while you can access them
+> on 512 byte boundaries they are actually using bigger block sizes but the large
+> blocks are not neccessarily on the 0 boundary in order to get optimal
+> alignment for existing file systems and partitioning.
+> 
+> So knowing the block size isn't the whole story.
+> 
+
+Are you saying that Xen and/or Linux needs to worry about a user setting up a poorly aligned filesystem to pass to a VM? Seems simpler just to set things up right in the first place.
+
+Or did you mean something else?
+
+James
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<647712821.20120831234512@eikelenboom.it> b/config/examples/test/corpus/<647712821.20120831234512@eikelenboom.it>
new file mode 100644 (file)
index 0000000..38d1dcc
--- /dev/null
@@ -0,0 +1,880 @@
+From xen-devel-bounces@lists.xen.org Fri Aug 31 22:51:06 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 31 Aug 2012 22:51:06 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T7Z7C-0008Of-Jh
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 31 Aug 2012 22:51:06 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T7Z1o-0007P7-R2; Fri, 31 Aug 2012 21:45:24 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <linux@eikelenboom.it>) id 1T7Z1m-0007P2-E1
+       for xen-devel@lists.xen.org; Fri, 31 Aug 2012 21:45:22 +0000
+Received: from [85.158.143.35:46307] by server-2.bemta-4.messagelabs.com id
+       E8/25-21239-17031405; Fri, 31 Aug 2012 21:45:21 +0000
+X-Env-Sender: linux@eikelenboom.it
+X-Msg-Ref: server-4.tower-21.messagelabs.com!1346449517!5712015!1
+X-Originating-IP: [188.40.164.121]
+X-SpamReason: No, hits=0.5 required=7.0 tests=BODY_RANDOM_LONG
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 30321 invoked from network); 31 Aug 2012 21:45:18 -0000
+Received: from static.121.164.40.188.clients.your-server.de (HELO
+       smtp.eikelenboom.it) (188.40.164.121)
+       by server-4.tower-21.messagelabs.com with AES256-SHA encrypted SMTP;
+       31 Aug 2012 21:45:18 -0000
+Received: from 26-69-ftth.onsneteindhoven.nl ([88.159.69.26]:50422
+       helo=[172.16.1.20])
+       by smtp.eikelenboom.it with esmtpsa (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72) (envelope-from <linux@eikelenboom.it>)
+       id 1T7Yyb-0008OC-IH; Fri, 31 Aug 2012 23:42:05 +0200
+Date: Fri, 31 Aug 2012 23:45:12 +0200
+From: Sander Eikelenboom <linux@eikelenboom.it>
+Organization: Eikelenboom IT services
+X-Priority: 3 (Normal)
+Message-ID: <647712821.20120831234512@eikelenboom.it>
+To: Santosh Jodh <santosh.jodh@citrix.com>, wei.wang2@amd.com
+MIME-Version: 1.0
+Content-Type: multipart/mixed;
+ boundary="----------01015A0E4152274D9"
+Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: [Xen-devel] Using debug-key 'o:  Dump IOMMU p2m table,
+       locks up machine
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+------------01015A0E4152274D9
+Content-Type: text/plain; charset=us-ascii
+Content-Transfer-Encoding: 7bit
+
+
+I was trying to use the 'o' debug key to make a bug report about an "AMD-Vi: IO_PAGE_FAULT".
+
+The result:
+- When using "xl debug-keys o", the machine seems in a infinite loop, can hardly login, eventually resulting in a kernel RCU stall and complete lockup.
+- When using serial console: I get a infinite stream of "gfn:  mfn: " lines, mean while on the normal console, S-ATA devices are starting to give errors.
+
+So either option trashes the machine, other debug-keys work fine.
+
+Machine has a 890-fx chipset and AMD phenom x6 proc.
+
+xl dmesg with bootup and output from some other debug-keys is attached.
+
+--
+
+Sander
+------------01015A0E4152274D9
+Content-Type: text/plain;
+ name="xl-dmesg.txt"
+Content-transfer-encoding: base64
+Content-Disposition: attachment;
+ filename="xl-dmesg.txt"
+
+IF9fICBfXyAgICAgICAgICAgIF8gIF8gICAgX19fXyAgICBfX18gICAgICAgICAgICAgIF8g
+IF8gICAgICAgICAgICAgICAgICAgICANCiBcIFwvIC9fX18gXyBfXyAgIHwgfHwgfCAgfF9f
+XyBcICAvIF8gXCAgICBfIF9fIF9fX3wgfHwgfCAgICAgXyBfXyAgXyBfXyBfX18gDQogIFwg
+IC8vIF8gXCAnXyBcICB8IHx8IHxfICAgX18pIHx8IHwgfCB8X198ICdfXy8gX198IHx8IHxf
+IF9ffCAnXyBcfCAnX18vIF8gXA0KICAvICBcICBfXy8gfCB8IHwgfF9fICAgX3wgLyBfXy8g
+fCB8X3wgfF9ffCB8IHwgKF9ffF9fICAgX3xfX3wgfF8pIHwgfCB8ICBfXy8NCiAvXy9cX1xf
+X198X3wgfF98ICAgIHxffChfKV9fX19fKF8pX19fLyAgIHxffCAgXF9fX3wgIHxffCAgICB8
+IC5fXy98X3wgIFxfX198DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
+ICAgICAgICAgICAgICAgICAgICAgICAgfF98ICAgICAgICAgICAgIA0KKFhFTikgWGVuIHZl
+cnNpb24gNC4yLjAtcmM0LXByZSAocm9vdEBkeW5kbnMub3JnKSAoZ2NjIChEZWJpYW4gNC40
+LjUtOCkgNC40LjUpIFRodSBBdWcgMzAgMjM6NTg6MDMgQ0VTVCAyMDEyDQooWEVOKSBMYXRl
+c3QgQ2hhbmdlU2V0OiBUdWUgQXVnIDI4IDIyOjQwOjQ1IDIwMTIgKzAxMDAgMjU3ODY6YTBi
+NWY4MTAyYTAwDQooWEVOKSBCb290bG9hZGVyOiBHUlVCIDEuOTgrMjAxMDA4MDQtMTQrc3F1
+ZWV6ZTENCihYRU4pIENvbW1hbmQgbGluZTogZG9tMF9tZW09MTAyNE0gbG9nbHZsPWFsbCBs
+b2dsdmxfZ3Vlc3Q9YWxsIGNvbnNvbGVfdGltZXN0YW1wcyB2Z2E9Z2Z4LTEyODB4MTAyNHgz
+MiBjcHVpZGxlIGNwdWZyZXE9eGVuIG5vcmVib290IGRlYnVnIGxhcGljPWRlYnVnIGFwaWNf
+dmVyYm9zaXR5PWRlYnVnIGFwaWM9ZGVidWcgYWNwaV9lbmZvcmNlX3Jlc291cmNlcz1sYXgg
+aW9tbXU9b24sdmVyYm9zZSxhbWQtaW9tbXUtZGVidWcgY29tMT0zODQwMCw4bjEgY29uc29s
+ZT12Z2EsY29tMQ0KKFhFTikgVmlkZW8gaW5mb3JtYXRpb246DQooWEVOKSAgVkdBIGlzIGdy
+YXBoaWNzIG1vZGUgMTI4MHgxMDI0LCAzMiBicHANCihYRU4pICBWQkUvRERDIG1ldGhvZHM6
+IFYyOyBFRElEIHRyYW5zZmVyIHRpbWU6IDEgc2Vjb25kcw0KKFhFTikgRGlzYyBpbmZvcm1h
+dGlvbjoNCihYRU4pICBGb3VuZCAyIE1CUiBzaWduYXR1cmVzDQooWEVOKSAgRm91bmQgMiBF
+REQgaW5mb3JtYXRpb24gc3RydWN0dXJlcw0KKFhFTikgWGVuLWU4MjAgUkFNIG1hcDoNCihY
+RU4pICAwMDAwMDAwMDAwMDAwMDAwIC0gMDAwMDAwMDAwMDA5YjAwMCAodXNhYmxlKQ0KKFhF
+TikgIDAwMDAwMDAwMDAwOWIwMDAgLSAwMDAwMDAwMDAwMGEwMDAwIChyZXNlcnZlZCkNCihY
+RU4pICAwMDAwMDAwMDAwMGU0MDAwIC0gMDAwMDAwMDAwMDEwMDAwMCAocmVzZXJ2ZWQpDQoo
+WEVOKSAgMDAwMDAwMDAwMDEwMDAwMCAtIDAwMDAwMDAwYWZlOTAwMDAgKHVzYWJsZSkNCihY
+RU4pICAwMDAwMDAwMGFmZTkwMDAwIC0gMDAwMDAwMDBhZmU5ZTAwMCAoQUNQSSBkYXRhKQ0K
+KFhFTikgIDAwMDAwMDAwYWZlOWUwMDAgLSAwMDAwMDAwMGFmZWUwMDAwIChBQ1BJIE5WUykN
+CihYRU4pICAwMDAwMDAwMGFmZWUwMDAwIC0gMDAwMDAwMDBhZmYwMDAwMCAocmVzZXJ2ZWQp
+DQooWEVOKSAgMDAwMDAwMDBmZmUwMDAwMCAtIDAwMDAwMDAxMDAwMDAwMDAgKHJlc2VydmVk
+KQ0KKFhFTikgIDAwMDAwMDAxMDAwMDAwMDAgLSAwMDAwMDAwMjUwMDAwMDAwICh1c2FibGUp
+DQooWEVOKSBBQ1BJOiBSU0RQIDAwMEZCMTIwLCAwMDE0IChyMCBBQ1BJQU0pDQooWEVOKSBB
+Q1BJOiBSU0RUIEFGRTkwMDAwLCAwMDQ4IChyMSBNU0kgICAgT0VNU0xJQyAgMjAxMDA2MjIg
+TVNGVCAgICAgICA5NykNCihYRU4pIEFDUEk6IEZBQ1AgQUZFOTAyMDAsIDAwODQgKHIxIDc2
+NDBNUyBBNzY0MDEwMCAyMDEwMDYyMiBNU0ZUICAgICAgIDk3KQ0KKFhFTikgQUNQSTogRFNE
+VCBBRkU5MDVFMCwgOTQ0OSAocjEgIEE3NjQwIEE3NjQwMTAwICAgICAgMTAwIElOVEwgMjAw
+NTExMTcpDQooWEVOKSBBQ1BJOiBGQUNTIEFGRTlFMDAwLCAwMDQwDQooWEVOKSBBQ1BJOiBB
+UElDIEFGRTkwMzkwLCAwMDg4IChyMSA3NjQwTVMgQTc2NDAxMDAgMjAxMDA2MjIgTVNGVCAg
+ICAgICA5NykNCihYRU4pIEFDUEk6IE1DRkcgQUZFOTA0MjAsIDAwM0MgKHIxIDc2NDBNUyBP
+RU1NQ0ZHICAyMDEwMDYyMiBNU0ZUICAgICAgIDk3KQ0KKFhFTikgQUNQSTogU0xJQyBBRkU5
+MDQ2MCwgMDE3NiAocjEgTVNJICAgIE9FTVNMSUMgIDIwMTAwNjIyIE1TRlQgICAgICAgOTcp
+DQooWEVOKSBBQ1BJOiBPRU1CIEFGRTlFMDQwLCAwMDcyIChyMSA3NjQwTVMgQTc2NDAxMDAg
+MjAxMDA2MjIgTVNGVCAgICAgICA5NykNCihYRU4pIEFDUEk6IFNSQVQgQUZFOUE1RTAsIDAx
+MDggKHIzIEFNRCAgICBGQU1fRl8xMCAgICAgICAgMiBBTUQgICAgICAgICAxKQ0KKFhFTikg
+QUNQSTogSFBFVCBBRkU5QTZGMCwgMDAzOCAocjEgNzY0ME1TIE9FTUhQRVQgIDIwMTAwNjIy
+IE1TRlQgICAgICAgOTcpDQooWEVOKSBBQ1BJOiBJVlJTIEFGRTlBNzMwLCAwMEY4IChyMSAg
+QU1EICAgICBSRDg5MFMgICAyMDIwMzEgQU1EICAgICAgICAgMCkNCihYRU4pIEFDUEk6IFNT
+RFQgQUZFOUE4MzAsIDBEQTQgKHIxIEEgTSBJICBQT1dFUk5PVyAgICAgICAgMSBBTUQgICAg
+ICAgICAxKQ0KKFhFTikgU3lzdGVtIFJBTTogODE5ME1CICg4Mzg2NzMya0IpDQooWEVOKSBT
+UkFUOiBQWE0gMCAtPiBBUElDIDAgLT4gTm9kZSAwDQooWEVOKSBTUkFUOiBQWE0gMCAtPiBB
+UElDIDEgLT4gTm9kZSAwDQooWEVOKSBTUkFUOiBQWE0gMCAtPiBBUElDIDIgLT4gTm9kZSAw
+DQooWEVOKSBTUkFUOiBQWE0gMCAtPiBBUElDIDMgLT4gTm9kZSAwDQooWEVOKSBTUkFUOiBQ
+WE0gMCAtPiBBUElDIDQgLT4gTm9kZSAwDQooWEVOKSBTUkFUOiBQWE0gMCAtPiBBUElDIDUg
+LT4gTm9kZSAwDQooWEVOKSBTUkFUOiBOb2RlIDAgUFhNIDAgMC1hMDAwMA0KKFhFTikgU1JB
+VDogTm9kZSAwIFBYTSAwIDEwMDAwMC1iMDAwMDAwMA0KKFhFTikgU1JBVDogTm9kZSAwIFBY
+TSAwIDEwMDAwMDAwMC0yNTAwMDAwMDANCihYRU4pIE5VTUE6IEFsbG9jYXRlZCBtZW1ub2Rl
+bWFwIGZyb20gMjRkYmFjMDAwIC0gMjRkYmFmMDAwDQooWEVOKSBOVU1BOiBVc2luZyA4IGZv
+ciB0aGUgaGFzaCBzaGlmdC4NCihYRU4pIERvbWFpbiBoZWFwIGluaXRpYWxpc2VkDQooWEVO
+KSB2ZXNhZmI6IGZyYW1lYnVmZmVyIGF0IDB4ZmIwMDAwMDAsIG1hcHBlZCB0byAweGZmZmY4
+MmMwMDAwMDAwMDAsIHVzaW5nIDYxNDRrLCB0b3RhbCAxNDMzNmsNCihYRU4pIHZlc2FmYjog
+bW9kZSBpcyAxMjgweDEwMjR4MzIsIGxpbmVsZW5ndGg9NTEyMCwgZm9udCA4eDE2DQooWEVO
+KSB2ZXNhZmI6IFRydWVjb2xvcjogc2l6ZT04Ojg6ODo4LCBzaGlmdD0yNDoxNjo4OjANCihY
+RU4pIGZvdW5kIFNNUCBNUC10YWJsZSBhdCAwMDBmZjc4MA0KKFhFTikgRE1JIHByZXNlbnQu
+DQooWEVOKSBBUElDIGJvb3Qgc3RhdGUgaXMgJ3hhcGljJw0KKFhFTikgVXNpbmcgQVBJQyBk
+cml2ZXIgZGVmYXVsdA0KKFhFTikgQUNQSTogUE0tVGltZXIgSU8gUG9ydDogMHg4MDgNCihY
+RU4pIEFDUEk6IEFDUEkgU0xFRVAgSU5GTzogcG0xeF9jbnRbODA0LDBdLCBwbTF4X2V2dFs4
+MDAsMF0NCihYRU4pIEFDUEk6ICAgICAgICAgICAgICAgICAgd2FrZXVwX3ZlY1thZmU5ZTAw
+Y10sIHZlY19zaXplWzIwXQ0KKFhFTikgQUNQSTogTG9jYWwgQVBJQyBhZGRyZXNzIDB4ZmVl
+MDAwMDANCihYRU4pIEFDUEk6IExBUElDIChhY3BpX2lkWzB4MDFdIGxhcGljX2lkWzB4MDBd
+IGVuYWJsZWQpDQooWEVOKSBQcm9jZXNzb3IgIzAgMDoxMCBBUElDIHZlcnNpb24gMTYNCihY
+RU4pIEFDUEk6IExBUElDIChhY3BpX2lkWzB4MDJdIGxhcGljX2lkWzB4MDFdIGVuYWJsZWQp
+DQooWEVOKSBQcm9jZXNzb3IgIzEgMDoxMCBBUElDIHZlcnNpb24gMTYNCihYRU4pIEFDUEk6
+IExBUElDIChhY3BpX2lkWzB4MDNdIGxhcGljX2lkWzB4MDJdIGVuYWJsZWQpDQooWEVOKSBQ
+cm9jZXNzb3IgIzIgMDoxMCBBUElDIHZlcnNpb24gMTYNCihYRU4pIEFDUEk6IExBUElDIChh
+Y3BpX2lkWzB4MDRdIGxhcGljX2lkWzB4MDNdIGVuYWJsZWQpDQooWEVOKSBQcm9jZXNzb3Ig
+IzMgMDoxMCBBUElDIHZlcnNpb24gMTYNCihYRU4pIEFDUEk6IExBUElDIChhY3BpX2lkWzB4
+MDVdIGxhcGljX2lkWzB4MDRdIGVuYWJsZWQpDQooWEVOKSBQcm9jZXNzb3IgIzQgMDoxMCBB
+UElDIHZlcnNpb24gMTYNCihYRU4pIEFDUEk6IExBUElDIChhY3BpX2lkWzB4MDZdIGxhcGlj
+X2lkWzB4MDVdIGVuYWJsZWQpDQooWEVOKSBQcm9jZXNzb3IgIzUgMDoxMCBBUElDIHZlcnNp
+b24gMTYNCihYRU4pIEFDUEk6IElPQVBJQyAoaWRbMHgwNl0gYWRkcmVzc1sweGZlYzAwMDAw
+XSBnc2lfYmFzZVswXSkNCihYRU4pIElPQVBJQ1swXTogYXBpY19pZCA2LCB2ZXJzaW9uIDMz
+LCBhZGRyZXNzIDB4ZmVjMDAwMDAsIEdTSSAwLTIzDQooWEVOKSBBQ1BJOiBJT0FQSUMgKGlk
+WzB4MDddIGFkZHJlc3NbMHhmZWMyMDAwMF0gZ3NpX2Jhc2VbMjRdKQ0KKFhFTikgSU9BUElD
+WzFdOiBhcGljX2lkIDcsIHZlcnNpb24gMzMsIGFkZHJlc3MgMHhmZWMyMDAwMCwgR1NJIDI0
+LTU1DQooWEVOKSBBQ1BJOiBJTlRfU1JDX09WUiAoYnVzIDAgYnVzX2lycSAwIGdsb2JhbF9p
+cnEgMiBkZmwgZGZsKQ0KKFhFTikgQUNQSTogSU5UX1NSQ19PVlIgKGJ1cyAwIGJ1c19pcnEg
+OSBnbG9iYWxfaXJxIDkgbG93IGxldmVsKQ0KKFhFTikgQUNQSTogSVJRMCB1c2VkIGJ5IG92
+ZXJyaWRlLg0KKFhFTikgQUNQSTogSVJRMiB1c2VkIGJ5IG92ZXJyaWRlLg0KKFhFTikgQUNQ
+STogSVJROSB1c2VkIGJ5IG92ZXJyaWRlLg0KKFhFTikgRW5hYmxpbmcgQVBJQyBtb2RlOiAg
+RmxhdC4gIFVzaW5nIDIgSS9PIEFQSUNzDQooWEVOKSBBQ1BJOiBIUEVUIGlkOiAweDgzMDAg
+YmFzZTogMHhmZWQwMDAwMA0KKFhFTikgVGFibGUgaXMgbm90IGZvdW5kIQ0KKFhFTikgVXNp
+bmcgQUNQSSAoTUFEVCkgZm9yIFNNUCBjb25maWd1cmF0aW9uIGluZm9ybWF0aW9uDQooWEVO
+KSBTTVA6IEFsbG93aW5nIDYgQ1BVcyAoMCBob3RwbHVnIENQVXMpDQooWEVOKSBtYXBwZWQg
+QVBJQyB0byBmZmZmODJjM2ZmZGZlMDAwIChmZWUwMDAwMCkNCihYRU4pIG1hcHBlZCBJT0FQ
+SUMgdG8gZmZmZjgyYzNmZmRmZDAwMCAoZmVjMDAwMDApDQooWEVOKSBtYXBwZWQgSU9BUElD
+IHRvIGZmZmY4MmMzZmZkZmMwMDAgKGZlYzIwMDAwKQ0KKFhFTikgSVJRIGxpbWl0czogNTYg
+R1NJLCAxMTEyIE1TSS9NU0ktWA0KKFhFTikgVXNpbmcgc2NoZWR1bGVyOiBTTVAgQ3JlZGl0
+IFNjaGVkdWxlciAoY3JlZGl0KQ0KKFhFTikgRGV0ZWN0ZWQgMzIwMC4yMTYgTUh6IHByb2Nl
+c3Nvci4NCihYRU4pIEluaXRpbmcgbWVtb3J5IHNoYXJpbmcuDQooWEVOKSBBTUQgRmFtMTBo
+IG1hY2hpbmUgY2hlY2sgcmVwb3J0aW5nIGVuYWJsZWQNCihYRU4pIFBDSTogTUNGRyBjb25m
+aWd1cmF0aW9uIDA6IGJhc2UgZTAwMDAwMDAgc2VnbWVudCAwMDAwIGJ1c2VzIDAwIC0gZmYN
+CihYRU4pIFBDSTogTm90IHVzaW5nIE1DRkcgZm9yIHNlZ21lbnQgMDAwMCBidXMgMDAtZmYN
+CihYRU4pIEFNRC1WaTogSU9NTVUgMCBFbmFibGVkLg0KKFhFTikgQU1ELVZpOiBFbmFibGlu
+ZyBnbG9iYWwgdmVjdG9yIG1hcA0KKFhFTikgSS9PIHZpcnR1YWxpc2F0aW9uIGVuYWJsZWQN
+CihYRU4pICAtIERvbTAgbW9kZTogUmVsYXhlZA0KKFhFTikgR2V0dGluZyBWRVJTSU9OOiA4
+MDA1MDAxMA0KKFhFTikgR2V0dGluZyBWRVJTSU9OOiA4MDA1MDAxMA0KKFhFTikgR2V0dGlu
+ZyBJRDogMA0KKFhFTikgR2V0dGluZyBMVlQwOiA3MDANCihYRU4pIEdldHRpbmcgTFZUMTog
+NDAwDQooWEVOKSBlbmFibGVkIEV4dElOVCBvbiBDUFUjMA0KKFhFTikgRVNSIHZhbHVlIGJl
+Zm9yZSBlbmFibGluZyB2ZWN0b3I6IDB4MDAwMDAwMDQgIGFmdGVyOiAweDAwMDAwMDAwDQoo
+WEVOKSBFTkFCTElORyBJTy1BUElDIElSUXMNCihYRU4pICAtPiBVc2luZyBuZXcgQUNLIG1l
+dGhvZA0KKFhFTikgaW5pdCBJT19BUElDIElSUXMNCihYRU4pICBJTy1BUElDIChhcGljaWQt
+cGluKSA2LTAsIDYtMTYsIDYtMTcsIDYtMTgsIDYtMTksIDYtMjAsIDYtMjEsIDYtMjIsIDYt
+MjMsIDctMCwgNy0xLCA3LTIsIDctMywgNy00LCA3LTUsIDctNiwgNy03LCA3LTgsIDctOSwg
+Ny0xMCwgNy0xMSwgNy0xMiwgNy0xMywgNy0xNCwgNy0xNSwgNy0xNiwgNy0xNywgNy0xOCwg
+Ny0xOSwgNy0yMCwgNy0yMSwgNy0yMiwgNy0yMywgNy0yNCwgNy0yNSwgNy0yNiwgNy0yNywg
+Ny0yOCwgNy0yOSwgNy0zMCwgNy0zMSBub3QgY29ubmVjdGVkLg0KKFhFTikgLi5USU1FUjog
+dmVjdG9yPTB4RjAgYXBpYzE9MCBwaW4xPTIgYXBpYzI9LTEgcGluMj0tMQ0KKFhFTikgbnVt
+YmVyIG9mIE1QIElSUSBzb3VyY2VzOiAxNS4NCihYRU4pIG51bWJlciBvZiBJTy1BUElDICM2
+IHJlZ2lzdGVyczogMjQuDQooWEVOKSBudW1iZXIgb2YgSU8tQVBJQyAjNyByZWdpc3RlcnM6
+IDMyLg0KKFhFTikgdGVzdGluZyB0aGUgSU8gQVBJQy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
+DQooWEVOKSBJTyBBUElDICM2Li4uLi4uDQooWEVOKSAuLi4uIHJlZ2lzdGVyICMwMDogMDYw
+MDAwMDANCihYRU4pIC4uLi4uLi4gICAgOiBwaHlzaWNhbCBBUElDIGlkOiAwNg0KKFhFTikg
+Li4uLi4uLiAgICA6IERlbGl2ZXJ5IFR5cGU6IDANCihYRU4pIC4uLi4uLi4gICAgOiBMVFMg
+ICAgICAgICAgOiAwDQooWEVOKSAuLi4uIHJlZ2lzdGVyICMwMTogMDAxNzgwMjENCihYRU4p
+IC4uLi4uLi4gICAgIDogbWF4IHJlZGlyZWN0aW9uIGVudHJpZXM6IDAwMTcNCihYRU4pIC4u
+Li4uLi4gICAgIDogUFJRIGltcGxlbWVudGVkOiAxDQooWEVOKSAuLi4uLi4uICAgICA6IElP
+IEFQSUMgdmVyc2lvbjogMDAyMQ0KKFhFTikgLi4uLiByZWdpc3RlciAjMDI6IDA2MDAwMDAw
+DQooWEVOKSAuLi4uLi4uICAgICA6IGFyYml0cmF0aW9uOiAwNg0KKFhFTikgLi4uLiByZWdp
+c3RlciAjMDM6IDA3MDAwMDAwDQooWEVOKSAuLi4uLi4uICAgICA6IEJvb3QgRFQgICAgOiAw
+DQooWEVOKSAuLi4uIElSUSByZWRpcmVjdGlvbiB0YWJsZToNCihYRU4pICBOUiBMb2cgUGh5
+IE1hc2sgVHJpZyBJUlIgUG9sIFN0YXQgRGVzdCBEZWxpIFZlY3Q6ICAgDQooWEVOKSAgMDAg
+MDAwIDAwICAxICAgIDAgICAgMCAgIDAgICAwICAgIDAgICAgMCAgICAwMA0KKFhFTikgIDAx
+IDAwMSAwMSAgMCAgICAwICAgIDAgICAwICAgMCAgICAxICAgIDEgICAgMzANCihYRU4pICAw
+MiAwMDEgMDEgIDAgICAgMCAgICAwICAgMCAgIDAgICAgMSAgICAxICAgIEYwDQooWEVOKSAg
+MDMgMDAxIDAxICAwICAgIDAgICAgMCAgIDAgICAwICAgIDEgICAgMSAgICAzOA0KKFhFTikg
+IDA0IDAwMSAwMSAgMCAgICAwICAgIDAgICAwICAgMCAgICAxICAgIDEgICAgRjENCihYRU4p
+ICAwNSAwMDEgMDEgIDAgICAgMCAgICAwICAgMCAgIDAgICAgMSAgICAxICAgIDQwDQooWEVO
+KSAgMDYgMDAxIDAxICAwICAgIDAgICAgMCAgIDAgICAwICAgIDEgICAgMSAgICA0OA0KKFhF
+TikgIDA3IDAwMSAwMSAgMCAgICAwICAgIDAgICAwICAgMCAgICAxICAgIDEgICAgNTANCihY
+RU4pICAwOCAwMDEgMDEgIDAgICAgMCAgICAwICAgMCAgIDAgICAgMSAgICAxICAgIDU4DQoo
+WEVOKSAgMDkgMDAxIDAxICAxICAgIDEgICAgMCAgIDEgICAwICAgIDEgICAgMSAgICA2MA0K
+KFhFTikgIDBhIDAwMSAwMSAgMCAgICAwICAgIDAgICAwICAgMCAgICAxICAgIDEgICAgNjgN
+CihYRU4pICAwYiAwMDEgMDEgIDAgICAgMCAgICAwICAgMCAgIDAgICAgMSAgICAxICAgIDcw
+DQooWEVOKSAgMGMgMDAxIDAxICAwICAgIDAgICAgMCAgIDAgICAwICAgIDEgICAgMSAgICA3
+OA0KKFhFTikgIDBkIDAwMSAwMSAgMCAgICAwICAgIDAgICAwICAgMCAgICAxICAgIDEgICAg
+ODgNCihYRU4pICAwZSAwMDEgMDEgIDAgICAgMCAgICAwICAgMCAgIDAgICAgMSAgICAxICAg
+IDkwDQooWEVOKSAgMGYgMDAxIDAxICAwICAgIDAgICAgMCAgIDAgICAwICAgIDEgICAgMSAg
+ICA5OA0KKFhFTikgIDEwIDAwMCAwMCAgMSAgICAwICAgIDAgICAwICAgMCAgICAwICAgIDAg
+ICAgMDANCihYRU4pICAxMSAwMDAgMDAgIDEgICAgMCAgICAwICAgMCAgIDAgICAgMCAgICAw
+ICAgIDAwDQooWEVOKSAgMTIgMDAwIDAwICAxICAgIDAgICAgMCAgIDAgICAwICAgIDAgICAg
+MCAgICAwMA0KKFhFTikgIDEzIDAwMCAwMCAgMSAgICAwICAgIDAgICAwICAgMCAgICAwICAg
+IDAgICAgMDANCihYRU4pICAxNCAwMDAgMDAgIDEgICAgMCAgICAwICAgMCAgIDAgICAgMCAg
+ICAwICAgIDAwDQooWEVOKSAgMTUgMDAwIDAwICAxICAgIDAgICAgMCAgIDAgICAwICAgIDAg
+ICAgMCAgICAwMA0KKFhFTikgIDE2IDAwMCAwMCAgMSAgICAwICAgIDAgICAwICAgMCAgICAw
+ICAgIDAgICAgMDANCihYRU4pICAxNyAwMDAgMDAgIDEgICAgMCAgICAwICAgMCAgIDAgICAg
+MCAgICAwICAgIDAwDQooWEVOKSBJTyBBUElDICM3Li4uLi4uDQooWEVOKSAuLi4uIHJlZ2lz
+dGVyICMwMDogMDcwMDAwMDANCihYRU4pIC4uLi4uLi4gICAgOiBwaHlzaWNhbCBBUElDIGlk
+OiAwNw0KKFhFTikgLi4uLi4uLiAgICA6IERlbGl2ZXJ5IFR5cGU6IDANCihYRU4pIC4uLi4u
+Li4gICAgOiBMVFMgICAgICAgICAgOiAwDQooWEVOKSAuLi4uIHJlZ2lzdGVyICMwMTogMDAx
+RjgwMjENCihYRU4pIC4uLi4uLi4gICAgIDogbWF4IHJlZGlyZWN0aW9uIGVudHJpZXM6IDAw
+MUYNCihYRU4pIC4uLi4uLi4gICAgIDogUFJRIGltcGxlbWVudGVkOiAxDQooWEVOKSAuLi4u
+Li4uICAgICA6IElPIEFQSUMgdmVyc2lvbjogMDAyMQ0KKFhFTikgLi4uLiByZWdpc3RlciAj
+MDI6IDAwMDAwMDAwDQooWEVOKSAuLi4uLi4uICAgICA6IGFyYml0cmF0aW9uOiAwMA0KKFhF
+TikgLi4uLiBJUlEgcmVkaXJlY3Rpb24gdGFibGU6DQooWEVOKSAgTlIgTG9nIFBoeSBNYXNr
+IFRyaWcgSVJSIFBvbCBTdGF0IERlc3QgRGVsaSBWZWN0OiAgIA0KKFhFTikgIDAwIDAwMCAw
+MCAgMSAgICAwICAgIDAgICAwICAgMCAgICAwICAgIDAgICAgMDANCihYRU4pICAwMSAwMDAg
+MDAgIDEgICAgMCAgICAwICAgMCAgIDAgICAgMCAgICAwICAgIDAwDQooWEVOKSAgMDIgMDAw
+IDAwICAxICAgIDAgICAgMCAgIDAgICAwICAgIDAgICAgMCAgICAwMA0KKFhFTikgIDAzIDAw
+MCAwMCAgMSAgICAwICAgIDAgICAwICAgMCAgICAwICAgIDAgICAgMDANCihYRU4pICAwNCAw
+MDAgMDAgIDEgICAgMCAgICAwICAgMCAgIDAgICAgMCAgICAwICAgIDAwDQooWEVOKSAgMDUg
+MDAwIDAwICAxICAgIDAgICAgMCAgIDAgICAwICAgIDAgICAgMCAgICAwMA0KKFhFTikgIDA2
+IDAwMCAwMCAgMSAgICAwICAgIDAgICAwICAgMCAgICAwICAgIDAgICAgMDANCihYRU4pICAw
+NyAwMDAgMDAgIDEgICAgMCAgICAwICAgMCAgIDAgICAgMCAgICAwICAgIDAwDQooWEVOKSAg
+MDggMDAwIDAwICAxICAgIDAgICAgMCAgIDAgICAwICAgIDAgICAgMCAgICAwMA0KKFhFTikg
+IDA5IDAwMCAwMCAgMSAgICAwICAgIDAgICAwICAgMCAgICAwICAgIDAgICAgMDANCihYRU4p
+ICAwYSAwMDAgMDAgIDEgICAgMCAgICAwICAgMCAgIDAgICAgMCAgICAwICAgIDAwDQooWEVO
+KSAgMGIgMDAwIDAwICAxICAgIDAgICAgMCAgIDAgICAwICAgIDAgICAgMCAgICAwMA0KKFhF
+TikgIDBjIDAwMCAwMCAgMSAgICAwICAgIDAgICAwICAgMCAgICAwICAgIDAgICAgMDANCihY
+RU4pICAwZCAwMDAgMDAgIDEgICAgMCAgICAwICAgMCAgIDAgICAgMCAgICAwICAgIDAwDQoo
+WEVOKSAgMGUgMDAwIDAwICAxICAgIDAgICAgMCAgIDAgICAwICAgIDAgICAgMCAgICAwMA0K
+KFhFTikgIDBmIDAwMCAwMCAgMSAgICAwICAgIDAgICAwICAgMCAgICAwICAgIDAgICAgMDAN
+CihYRU4pICAxMCAwMDAgMDAgIDEgICAgMCAgICAwICAgMCAgIDAgICAgMCAgICAwICAgIDAw
+DQooWEVOKSAgMTEgMDAwIDAwICAxICAgIDAgICAgMCAgIDAgICAwICAgIDAgICAgMCAgICAw
+MA0KKFhFTikgIDEyIDAwMCAwMCAgMSAgICAwICAgIDAgICAwICAgMCAgICAwICAgIDAgICAg
+MDANCihYRU4pICAxMyAwMDAgMDAgIDEgICAgMCAgICAwICAgMCAgIDAgICAgMCAgICAwICAg
+IDAwDQooWEVOKSAgMTQgMDAwIDAwICAxICAgIDAgICAgMCAgIDAgICAwICAgIDAgICAgMCAg
+ICAwMA0KKFhFTikgIDE1IDAwMCAwMCAgMSAgICAwICAgIDAgICAwICAgMCAgICAwICAgIDAg
+ICAgMDANCihYRU4pICAxNiAwMDAgMDAgIDEgICAgMCAgICAwICAgMCAgIDAgICAgMCAgICAw
+ICAgIDAwDQooWEVOKSAgMTcgMDAwIDAwICAxICAgIDAgICAgMCAgIDAgICAwICAgIDAgICAg
+MCAgICAwMA0KKFhFTikgIDE4IDAwMCAwMCAgMSAgICAwICAgIDAgICAwICAgMCAgICAwICAg
+IDAgICAgMDANCihYRU4pICAxOSAwMDAgMDAgIDEgICAgMCAgICAwICAgMCAgIDAgICAgMCAg
+ICAwICAgIDAwDQooWEVOKSAgMWEgMDAwIDAwICAxICAgIDAgICAgMCAgIDAgICAwICAgIDAg
+ICAgMCAgICAwMA0KKFhFTikgIDFiIDAwMCAwMCAgMSAgICAwICAgIDAgICAwICAgMCAgICAw
+ICAgIDAgICAgMDANCihYRU4pICAxYyAwMDAgMDAgIDEgICAgMCAgICAwICAgMCAgIDAgICAg
+MCAgICAwICAgIDAwDQooWEVOKSAgMWQgMDAwIDAwICAxICAgIDAgICAgMCAgIDAgICAwICAg
+IDAgICAgMCAgICAwMA0KKFhFTikgIDFlIDAwMCAwMCAgMSAgICAwICAgIDAgICAwICAgMCAg
+ICAwICAgIDAgICAgMDANCihYRU4pICAxZiAwMDAgMDAgIDEgICAgMCAgICAwICAgMCAgIDAg
+ICAgMCAgICAwICAgIDAwDQooWEVOKSBVc2luZyB2ZWN0b3ItYmFzZWQgaW5kZXhpbmcNCihY
+RU4pIElSUSB0byBwaW4gbWFwcGluZ3M6DQooWEVOKSBJUlEyNDAgLT4gMDoyDQooWEVOKSBJ
+UlE0OCAtPiAwOjENCihYRU4pIElSUTU2IC0+IDA6Mw0KKFhFTikgSVJRMjQxIC0+IDA6NA0K
+KFhFTikgSVJRNjQgLT4gMDo1DQooWEVOKSBJUlE3MiAtPiAwOjYNCihYRU4pIElSUTgwIC0+
+IDA6Nw0KKFhFTikgSVJRODggLT4gMDo4DQooWEVOKSBJUlE5NiAtPiAwOjkNCihYRU4pIElS
+UTEwNCAtPiAwOjEwDQooWEVOKSBJUlExMTIgLT4gMDoxMQ0KKFhFTikgSVJRMTIwIC0+IDA6
+MTINCihYRU4pIElSUTEzNiAtPiAwOjEzDQooWEVOKSBJUlExNDQgLT4gMDoxNA0KKFhFTikg
+SVJRMTUyIC0+IDA6MTUNCihYRU4pIC4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
+Li4uLiBkb25lLg0KKFhFTikgVXNpbmcgbG9jYWwgQVBJQyB0aW1lciBpbnRlcnJ1cHRzLg0K
+KFhFTikgY2FsaWJyYXRpbmcgQVBJQyB0aW1lciAuLi4NCihYRU4pIC4uLi4uIENQVSBjbG9j
+ayBzcGVlZCBpcyAzMjAwLjE2MDQgTUh6Lg0KKFhFTikgLi4uLi4gaG9zdCBidXMgY2xvY2sg
+c3BlZWQgaXMgMjAwLjAwOTggTUh6Lg0KKFhFTikgLi4uLi4gYnVzX3NjYWxlID0gMHgwMDAw
+Q0NENw0KKFhFTikgWzIwMTItMDgtMzEgMjA6NTI6MjVdIFBsYXRmb3JtIHRpbWVyIGlzIDE0
+LjMxOE1IeiBIUEVUDQooWEVOKSBbMjAxMi0wOC0zMSAyMDo1MjoyNV0gQWxsb2NhdGVkIGNv
+bnNvbGUgcmluZyBvZiA2NCBLaUIuDQooWEVOKSBbMjAxMi0wOC0zMSAyMDo1MjoyNV0gSFZN
+OiBBU0lEcyBlbmFibGVkLg0KKFhFTikgWzIwMTItMDgtMzEgMjA6NTI6MjVdIFNWTTogU3Vw
+cG9ydGVkIGFkdmFuY2VkIGZlYXR1cmVzOg0KKFhFTikgWzIwMTItMDgtMzEgMjA6NTI6MjVd
+ICAtIE5lc3RlZCBQYWdlIFRhYmxlcyAoTlBUKQ0KKFhFTikgWzIwMTItMDgtMzEgMjA6NTI6
+MjVdICAtIExhc3QgQnJhbmNoIFJlY29yZCAoTEJSKSBWaXJ0dWFsaXNhdGlvbg0KKFhFTikg
+WzIwMTItMDgtMzEgMjA6NTI6MjVdICAtIE5leHQtUklQIFNhdmVkIG9uICNWTUVYSVQNCihY
+RU4pIFsyMDEyLTA4LTMxIDIwOjUyOjI1XSAgLSBQYXVzZS1JbnRlcmNlcHQgRmlsdGVyDQoo
+WEVOKSBbMjAxMi0wOC0zMSAyMDo1MjoyNV0gSFZNOiBTVk0gZW5hYmxlZA0KKFhFTikgWzIw
+MTItMDgtMzEgMjA6NTI6MjVdIEhWTTogSGFyZHdhcmUgQXNzaXN0ZWQgUGFnaW5nIChIQVAp
+IGRldGVjdGVkDQooWEVOKSBbMjAxMi0wOC0zMSAyMDo1MjoyNV0gSFZNOiBIQVAgcGFnZSBz
+aXplczogNGtCLCAyTUIsIDFHQg0KKFhFTikgWzIwMTItMDgtMzEgMjA6NTI6MjRdIG1hc2tl
+ZCBFeHRJTlQgb24gQ1BVIzENCihYRU4pIFsyMDEyLTA4LTMxIDIwOjUyOjI1XSBtaWNyb2Nv
+ZGU6IGNvbGxlY3RfY3B1X2luZm86IHBhdGNoX2lkPTB4MTAwMDBiZg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjA6NTI6MjRdIG1hc2tlZCBFeHRJTlQgb24gQ1BVIzINCihYRU4pIFsyMDEyLTA4
+LTMxIDIwOjUyOjI1XSBtaWNyb2NvZGU6IGNvbGxlY3RfY3B1X2luZm86IHBhdGNoX2lkPTB4
+MTAwMDBiZg0KKFhFTikgWzIwMTItMDgtMzEgMjA6NTI6MjRdIG1hc2tlZCBFeHRJTlQgb24g
+Q1BVIzMNCihYRU4pIFsyMDEyLTA4LTMxIDIwOjUyOjI1XSBtaWNyb2NvZGU6IGNvbGxlY3Rf
+Y3B1X2luZm86IHBhdGNoX2lkPTB4MTAwMDBiZg0KKFhFTikgWzIwMTItMDgtMzEgMjA6NTI6
+MjRdIG1hc2tlZCBFeHRJTlQgb24gQ1BVIzQNCihYRU4pIFsyMDEyLTA4LTMxIDIwOjUyOjI1
+XSBtaWNyb2NvZGU6IGNvbGxlY3RfY3B1X2luZm86IHBhdGNoX2lkPTB4MTAwMDBiZg0KKFhF
+TikgWzIwMTItMDgtMzEgMjA6NTI6MjRdIG1hc2tlZCBFeHRJTlQgb24gQ1BVIzUNCihYRU4p
+IFsyMDEyLTA4LTMxIDIwOjUyOjI1XSBCcm91Z2h0IHVwIDYgQ1BVcw0KKFhFTikgWzIwMTIt
+MDgtMzEgMjA6NTI6MjVdIG1pY3JvY29kZTogY29sbGVjdF9jcHVfaW5mbzogcGF0Y2hfaWQ9
+MHgxMDAwMGJmDQooWEVOKSBbMjAxMi0wOC0zMSAyMDo1MjoyNV0gSFBFVCdzIE1TSSBtb2Rl
+IGhhc24ndCBiZWVuIHN1cHBvcnRlZCB3aGVuIEludGVycnVwdCBSZW1hcHBpbmcgaXMgZW5h
+YmxlZC4NCihYRU4pIFsyMDEyLTA4LTMxIDIwOjUyOjI1XSBBQ1BJIHNsZWVwIG1vZGVzOiBT
+Mw0KKFhFTikgWzIwMTItMDgtMzEgMjA6NTI6MjVdIE1DQTogVXNlIGh3IHRocmVzaG9sZGlu
+ZyB0byBhZGp1c3QgcG9sbGluZyBmcmVxdWVuY3kNCihYRU4pIFsyMDEyLTA4LTMxIDIwOjUy
+OjI1XSBtY2hlY2tfcG9sbDogTWFjaGluZSBjaGVjayBwb2xsaW5nIHRpbWVyIHN0YXJ0ZWQu
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMDo1MjoyNV0gWGVub3Byb2ZpbGU6IEZhaWxlZCB0byBz
+ZXR1cCBJQlMgTFZUIG9mZnNldCwgSUJTQ1RMID0gMHhmZmZmZmZmZg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjA6NTI6MjVdICoqKiBMT0FESU5HIERPTUFJTiAwICoqKg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjA6NTI6MjVdIGVsZl9wYXJzZV9iaW5hcnk6IHBoZHI6IHBhZGRyPTB4MTAwMDAw
+MCBtZW1zej0weGI2ODAwMA0KKFhFTikgWzIwMTItMDgtMzEgMjA6NTI6MjVdIGVsZl9wYXJz
+ZV9iaW5hcnk6IHBoZHI6IHBhZGRyPTB4MWMwMDAwMCBtZW1zej0weGQ4MGU4DQooWEVOKSBb
+MjAxMi0wOC0zMSAyMDo1MjoyNV0gZWxmX3BhcnNlX2JpbmFyeTogcGhkcjogcGFkZHI9MHgx
+Y2Q5MDAwIG1lbXN6PTB4MTNjMDANCihYRU4pIFsyMDEyLTA4LTMxIDIwOjUyOjI1XSBlbGZf
+cGFyc2VfYmluYXJ5OiBwaGRyOiBwYWRkcj0weDFjZWQwMDAgbWVtc3o9MHhkZTQwMDANCihY
+RU4pIFsyMDEyLTA4LTMxIDIwOjUyOjI1XSBlbGZfcGFyc2VfYmluYXJ5OiBtZW1vcnk6IDB4
+MTAwMDAwMCAtPiAweDJhZDEwMDANCihYRU4pIFsyMDEyLTA4LTMxIDIwOjUyOjI1XSBlbGZf
+eGVuX3BhcnNlX25vdGU6IEdVRVNUX09TID0gImxpbnV4Ig0KKFhFTikgWzIwMTItMDgtMzEg
+MjA6NTI6MjVdIGVsZl94ZW5fcGFyc2Vfbm90ZTogR1VFU1RfVkVSU0lPTiA9ICIyLjYiDQoo
+WEVOKSBbMjAxMi0wOC0zMSAyMDo1MjoyNV0gZWxmX3hlbl9wYXJzZV9ub3RlOiBYRU5fVkVS
+U0lPTiA9ICJ4ZW4tMy4wIg0KKFhFTikgWzIwMTItMDgtMzEgMjA6NTI6MjVdIGVsZl94ZW5f
+cGFyc2Vfbm90ZTogVklSVF9CQVNFID0gMHhmZmZmZmZmZjgwMDAwMDAwDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMDo1MjoyNV0gZWxmX3hlbl9wYXJzZV9ub3RlOiBFTlRSWSA9IDB4ZmZmZmZm
+ZmY4MWNlZDIxMA0KKFhFTikgWzIwMTItMDgtMzEgMjA6NTI6MjVdIGVsZl94ZW5fcGFyc2Vf
+bm90ZTogSFlQRVJDQUxMX1BBR0UgPSAweGZmZmZmZmZmODEwMDEwMDANCihYRU4pIFsyMDEy
+LTA4LTMxIDIwOjUyOjI1XSBlbGZfeGVuX3BhcnNlX25vdGU6IEZFQVRVUkVTID0gIiF3cml0
+YWJsZV9wYWdlX3RhYmxlc3xwYWVfcGdkaXJfYWJvdmVfNGdiIg0KKFhFTikgWzIwMTItMDgt
+MzEgMjA6NTI6MjVdIGVsZl94ZW5fcGFyc2Vfbm90ZTogUEFFX01PREUgPSAieWVzIg0KKFhF
+TikgWzIwMTItMDgtMzEgMjA6NTI6MjVdIGVsZl94ZW5fcGFyc2Vfbm90ZTogTE9BREVSID0g
+ImdlbmVyaWMiDQooWEVOKSBbMjAxMi0wOC0zMSAyMDo1MjoyNV0gZWxmX3hlbl9wYXJzZV9u
+b3RlOiB1bmtub3duIHhlbiBlbGYgbm90ZSAoMHhkKQ0KKFhFTikgWzIwMTItMDgtMzEgMjA6
+NTI6MjVdIGVsZl94ZW5fcGFyc2Vfbm90ZTogU1VTUEVORF9DQU5DRUwgPSAweDENCihYRU4p
+IFsyMDEyLTA4LTMxIDIwOjUyOjI1XSBlbGZfeGVuX3BhcnNlX25vdGU6IEhWX1NUQVJUX0xP
+VyA9IDB4ZmZmZjgwMDAwMDAwMDAwMA0KKFhFTikgWzIwMTItMDgtMzEgMjA6NTI6MjVdIGVs
+Zl94ZW5fcGFyc2Vfbm90ZTogUEFERFJfT0ZGU0VUID0gMHgwDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMDo1MjoyNV0gZWxmX3hlbl9hZGRyX2NhbGNfY2hlY2s6IGFkZHJlc3NlczoNCihYRU4p
+IFsyMDEyLTA4LTMxIDIwOjUyOjI1XSAgICAgdmlydF9iYXNlICAgICAgICA9IDB4ZmZmZmZm
+ZmY4MDAwMDAwMA0KKFhFTikgWzIwMTItMDgtMzEgMjA6NTI6MjVdICAgICBlbGZfcGFkZHJf
+b2Zmc2V0ID0gMHgwDQooWEVOKSBbMjAxMi0wOC0zMSAyMDo1MjoyNV0gICAgIHZpcnRfb2Zm
+c2V0ICAgICAgPSAweGZmZmZmZmZmODAwMDAwMDANCihYRU4pIFsyMDEyLTA4LTMxIDIwOjUy
+OjI1XSAgICAgdmlydF9rc3RhcnQgICAgICA9IDB4ZmZmZmZmZmY4MTAwMDAwMA0KKFhFTikg
+WzIwMTItMDgtMzEgMjA6NTI6MjVdICAgICB2aXJ0X2tlbmQgICAgICAgID0gMHhmZmZmZmZm
+ZjgyYWQxMDAwDQooWEVOKSBbMjAxMi0wOC0zMSAyMDo1MjoyNV0gICAgIHZpcnRfZW50cnkg
+ICAgICAgPSAweGZmZmZmZmZmODFjZWQyMTANCihYRU4pIFsyMDEyLTA4LTMxIDIwOjUyOjI1
+XSAgICAgcDJtX2Jhc2UgICAgICAgICA9IDB4ZmZmZmZmZmZmZmZmZmZmZg0KKFhFTikgWzIw
+MTItMDgtMzEgMjA6NTI6MjVdICBYZW4gIGtlcm5lbDogNjQtYml0LCBsc2IsIGNvbXBhdDMy
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMDo1MjoyNV0gIERvbTAga2VybmVsOiA2NC1iaXQsIFBB
+RSwgbHNiLCBwYWRkciAweDEwMDAwMDAgLT4gMHgyYWQxMDAwDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMDo1MjoyNV0gUEhZU0lDQUwgTUVNT1JZIEFSUkFOR0VNRU5UOg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjA6NTI6MjVdICBEb20wIGFsbG9jLjogICAwMDAwMDAwMjQwMDAwMDAwLT4wMDAw
+MDAwMjQ0MDAwMDAwICgyNDI0MjggcGFnZXMgdG8gYmUgYWxsb2NhdGVkKQ0KKFhFTikgWzIw
+MTItMDgtMzEgMjA6NTI6MjVdICBJbml0LiByYW1kaXNrOiAwMDAwMDAwMjRmMmZjMDAwLT4w
+MDAwMDAwMjRmZmZmODAwDQooWEVOKSBbMjAxMi0wOC0zMSAyMDo1MjoyNV0gVklSVFVBTCBN
+RU1PUlkgQVJSQU5HRU1FTlQ6DQooWEVOKSBbMjAxMi0wOC0zMSAyMDo1MjoyNV0gIExvYWRl
+ZCBrZXJuZWw6IGZmZmZmZmZmODEwMDAwMDAtPmZmZmZmZmZmODJhZDEwMDANCihYRU4pIFsy
+MDEyLTA4LTMxIDIwOjUyOjI1XSAgSW5pdC4gcmFtZGlzazogZmZmZmZmZmY4MmFkMTAwMC0+
+ZmZmZmZmZmY4MzdkNDgwMA0KKFhFTikgWzIwMTItMDgtMzEgMjA6NTI6MjVdICBQaHlzLU1h
+Y2ggbWFwOiBmZmZmZmZmZjgzN2Q1MDAwLT5mZmZmZmZmZjgzOWQ1MDAwDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMDo1MjoyNV0gIFN0YXJ0IGluZm86ICAgIGZmZmZmZmZmODM5ZDUwMDAtPmZm
+ZmZmZmZmODM5ZDU0YjQNCihYRU4pIFsyMDEyLTA4LTMxIDIwOjUyOjI1XSAgUGFnZSB0YWJs
+ZXM6ICAgZmZmZmZmZmY4MzlkNjAwMC0+ZmZmZmZmZmY4MzlmNzAwMA0KKFhFTikgWzIwMTIt
+MDgtMzEgMjA6NTI6MjVdICBCb290IHN0YWNrOiAgICBmZmZmZmZmZjgzOWY3MDAwLT5mZmZm
+ZmZmZjgzOWY4MDAwDQooWEVOKSBbMjAxMi0wOC0zMSAyMDo1MjoyNV0gIFRPVEFMOiAgICAg
+ICAgIGZmZmZmZmZmODAwMDAwMDAtPmZmZmZmZmZmODNjMDAwMDANCihYRU4pIFsyMDEyLTA4
+LTMxIDIwOjUyOjI1XSAgRU5UUlkgQUREUkVTUzogZmZmZmZmZmY4MWNlZDIxMA0KKFhFTikg
+WzIwMTItMDgtMzEgMjA6NTI6MjVdIERvbTAgaGFzIG1heGltdW0gNiBWQ1BVcw0KKFhFTikg
+WzIwMTItMDgtMzEgMjA6NTI6MjVdIGVsZl9sb2FkX2JpbmFyeTogcGhkciAwIGF0IDB4ZmZm
+ZmZmZmY4MTAwMDAwMCAtPiAweGZmZmZmZmZmODFiNjgwMDANCihYRU4pIFsyMDEyLTA4LTMx
+IDIwOjUyOjI1XSBlbGZfbG9hZF9iaW5hcnk6IHBoZHIgMSBhdCAweGZmZmZmZmZmODFjMDAw
+MDAgLT4gMHhmZmZmZmZmZjgxY2Q4MGU4DQooWEVOKSBbMjAxMi0wOC0zMSAyMDo1MjoyNV0g
+ZWxmX2xvYWRfYmluYXJ5OiBwaGRyIDIgYXQgMHhmZmZmZmZmZjgxY2Q5MDAwIC0+IDB4ZmZm
+ZmZmZmY4MWNlY2MwMA0KKFhFTikgWzIwMTItMDgtMzEgMjA6NTI6MjVdIGVsZl9sb2FkX2Jp
+bmFyeTogcGhkciAzIGF0IDB4ZmZmZmZmZmY4MWNlZDAwMCAtPiAweGZmZmZmZmZmODFkODUw
+MDANCihYRU4pIFsyMDEyLTA4LTMxIDIwOjUyOjI2XSBTY3J1YmJpbmcgRnJlZSBSQU06IC4u
+Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
+Li4uLi4uLi4uLi4uLi4uZG9uZS4NCihYRU4pIFsyMDEyLTA4LTMxIDIwOjUyOjI3XSBJbml0
+aWFsIGxvdyBtZW1vcnkgdmlycSB0aHJlc2hvbGQgc2V0IGF0IDB4NDAwMCBwYWdlcy4NCihY
+RU4pIFsyMDEyLTA4LTMxIDIwOjUyOjI3XSBTdGQuIExvZ2xldmVsOiBBbGwNCihYRU4pIFsy
+MDEyLTA4LTMxIDIwOjUyOjI3XSBHdWVzdCBMb2dsZXZlbDogQWxsDQooWEVOKSBbMjAxMi0w
+OC0zMSAyMDo1MjoyN10gWGVuIGlzIHJlbGlucXVpc2hpbmcgVkdBIGNvbnNvbGUuDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMDo1MjoyOF0gKioqIFNlcmlhbCBpbnB1dCAtPiBET00wICh0eXBl
+ICdDVFJMLWEnIHRocmVlIHRpbWVzIHRvIHN3aXRjaCBpbnB1dCB0byBYZW4pDQooWEVOKSBb
+MjAxMi0wOC0zMSAyMDo1MjoyOF0gRnJlZWQgMjU2a0IgaW5pdCBtZW1vcnkuDQooWEVOKSBb
+MjAxMi0wOC0zMSAyMDo1MjoyOF0gSU9BUElDWzBdOiBTZXQgUENJIHJvdXRpbmcgZW50cnkg
+KDYtOSAtPiAweDYwIC0+IElSUSA5IE1vZGU6MSBBY3RpdmU6MSkNCihYRU4pIFsyMDEyLTA4
+LTMxIDIwOjUyOjI4XSB0cmFwcy5jOjI1ODQ6ZDAgRG9tYWluIGF0dGVtcHRlZCBXUk1TUiAw
+MDAwMDAwMGMwMDAwNDA4IGZyb20gMHhjMDAwMDAwMDAxMDAwMDAwIHRvIDB4YzAwODAwMDAw
+MTAwMDAwMC4NCihYRU4pIFsyMDEyLTA4LTMxIDIwOjUyOjI4XSB0cmFwcy5jOjI1ODQ6ZDAg
+RG9tYWluIGF0dGVtcHRlZCBXUk1TUiAwMDAwMDAwMGMwMDAwNDA5IGZyb20gMHhjMDAwMDAw
+MDAxMDAwMDAwIHRvIDB4YzAwODAwMDAwMTAwMDAwMC4NCihYRU4pIFsyMDEyLTA4LTMxIDIw
+OjUyOjI4XSB0cmFwcy5jOjI1ODQ6ZDAgRG9tYWluIGF0dGVtcHRlZCBXUk1TUiAwMDAwMDAw
+MGMwMDEwMDA0IGZyb20gMHgwMDAwZmZmMmI5OWIxMmJlIHRvIDB4MDAwMDAwMDAwMDAwYWJj
+ZC4NCihYRU4pIFsyMDEyLTA4LTMxIDIwOjUyOjI4XSB0cmFwcy5jOjI1ODQ6ZDAgRG9tYWlu
+IGF0dGVtcHRlZCBXUk1TUiAwMDAwMDAwMGMwMDAwNDA4IGZyb20gMHhjMDAwMDAwMDAxMDAw
+MDAwIHRvIDB4YzAwODAwMDAwMTAwMDAwMC4NCihYRU4pIFsyMDEyLTA4LTMxIDIwOjUyOjI4
+XSB0cmFwcy5jOjI1ODQ6ZDAgRG9tYWluIGF0dGVtcHRlZCBXUk1TUiAwMDAwMDAwMGMwMDAw
+NDA5IGZyb20gMHhjMDAwMDAwMDAxMDAwMDAwIHRvIDB4YzAwODAwMDAwMTAwMDAwMC4NCihY
+RU4pIFsyMDEyLTA4LTMxIDIwOjUyOjI4XSB0cmFwcy5jOjI1ODQ6ZDAgRG9tYWluIGF0dGVt
+cHRlZCBXUk1TUiAwMDAwMDAwMGMwMDAwNDA4IGZyb20gMHhjMDAwMDAwMDAxMDAwMDAwIHRv
+IDB4YzAwODAwMDAwMTAwMDAwMC4NCihYRU4pIFsyMDEyLTA4LTMxIDIwOjUyOjI4XSB0cmFw
+cy5jOjI1ODQ6ZDAgRG9tYWluIGF0dGVtcHRlZCBXUk1TUiAwMDAwMDAwMGMwMDAwNDA5IGZy
+b20gMHhjMDAwMDAwMDAxMDAwMDAwIHRvIDB4YzAwODAwMDAwMTAwMDAwMC4NCihYRU4pIFsy
+MDEyLTA4LTMxIDIwOjUyOjI4XSB0cmFwcy5jOjI1ODQ6ZDAgRG9tYWluIGF0dGVtcHRlZCBX
+Uk1TUiAwMDAwMDAwMGMwMDAwNDA4IGZyb20gMHhjMDAwMDAwMDAxMDAwMDAwIHRvIDB4YzAw
+ODAwMDAwMTAwMDAwMC4NCihYRU4pIFsyMDEyLTA4LTMxIDIwOjUyOjI4XSB0cmFwcy5jOjI1
+ODQ6ZDAgRG9tYWluIGF0dGVtcHRlZCBXUk1TUiAwMDAwMDAwMGMwMDAwNDA5IGZyb20gMHhj
+MDAwMDAwMDAxMDAwMDAwIHRvIDB4YzAwODAwMDAwMTAwMDAwMC4NCihYRU4pIFsyMDEyLTA4
+LTMxIDIwOjUyOjI4XSB0cmFwcy5jOjI1ODQ6ZDAgRG9tYWluIGF0dGVtcHRlZCBXUk1TUiAw
+MDAwMDAwMGMwMDAwNDA4IGZyb20gMHhjMDAwMDAwMDAxMDAwMDAwIHRvIDB4YzAwODAwMDAw
+MTAwMDAwMC4NCihYRU4pIFsyMDEyLTA4LTMxIDIwOjUyOjI4XSB0cmFwcy5jOjI1ODQ6ZDAg
+RG9tYWluIGF0dGVtcHRlZCBXUk1TUiAwMDAwMDAwMGMwMDAwNDA5IGZyb20gMHhjMDAwMDAw
+MDAxMDAwMDAwIHRvIDB4YzAwODAwMDAwMTAwMDAwMC4NCihYRU4pIFsyMDEyLTA4LTMxIDIw
+OjUyOjI4XSB0cmFwcy5jOjI1ODQ6ZDAgRG9tYWluIGF0dGVtcHRlZCBXUk1TUiAwMDAwMDAw
+MGMwMDAwNDA4IGZyb20gMHhjMDAwMDAwMDAxMDAwMDAwIHRvIDB4YzAwODAwMDAwMTAwMDAw
+MC4NCihYRU4pIFsyMDEyLTA4LTMxIDIwOjUyOjI4XSB0cmFwcy5jOjI1ODQ6ZDAgRG9tYWlu
+IGF0dGVtcHRlZCBXUk1TUiAwMDAwMDAwMGMwMDAwNDA5IGZyb20gMHhjMDAwMDAwMDAxMDAw
+MDAwIHRvIDB4YzAwODAwMDAwMTAwMDAwMC4NCihYRU4pIFsyMDEyLTA4LTMxIDIwOjUyOjI4
+XSBQQ0kgYWRkIGRldmljZSAwMDAwOjAwOjAwLjANCihYRU4pIFsyMDEyLTA4LTMxIDIwOjUy
+OjI4XSBQQ0kgYWRkIGRldmljZSAwMDAwOjAwOjAwLjINCihYRU4pIFsyMDEyLTA4LTMxIDIw
+OjUyOjI4XSBQQ0kgYWRkIGRldmljZSAwMDAwOjAwOjAyLjANCihYRU4pIFsyMDEyLTA4LTMx
+IDIwOjUyOjI4XSBQQ0kgYWRkIGRldmljZSAwMDAwOjAwOjAzLjANCihYRU4pIFsyMDEyLTA4
+LTMxIDIwOjUyOjI4XSBQQ0kgYWRkIGRldmljZSAwMDAwOjAwOjA1LjANCihYRU4pIFsyMDEy
+LTA4LTMxIDIwOjUyOjI4XSBQQ0kgYWRkIGRldmljZSAwMDAwOjAwOjA2LjANCihYRU4pIFsy
+MDEyLTA4LTMxIDIwOjUyOjI4XSBQQ0kgYWRkIGRldmljZSAwMDAwOjAwOjBhLjANCihYRU4p
+IFsyMDEyLTA4LTMxIDIwOjUyOjI4XSBQQ0kgYWRkIGRldmljZSAwMDAwOjAwOjBiLjANCihY
+RU4pIFsyMDEyLTA4LTMxIDIwOjUyOjI4XSBQQ0kgYWRkIGRldmljZSAwMDAwOjAwOjBjLjAN
+CihYRU4pIFsyMDEyLTA4LTMxIDIwOjUyOjI4XSBQQ0kgYWRkIGRldmljZSAwMDAwOjAwOjBk
+LjANCihYRU4pIFsyMDEyLTA4LTMxIDIwOjUyOjI4XSBQQ0kgYWRkIGRldmljZSAwMDAwOjAw
+OjExLjANCihYRU4pIFsyMDEyLTA4LTMxIDIwOjUyOjI4XSBQQ0kgYWRkIGRldmljZSAwMDAw
+OjAwOjEyLjANCihYRU4pIFsyMDEyLTA4LTMxIDIwOjUyOjI4XSBQQ0kgYWRkIGRldmljZSAw
+MDAwOjAwOjEyLjINCihYRU4pIFsyMDEyLTA4LTMxIDIwOjUyOjI4XSBQQ0kgYWRkIGRldmlj
+ZSAwMDAwOjAwOjEzLjANCihYRU4pIFsyMDEyLTA4LTMxIDIwOjUyOjI4XSBQQ0kgYWRkIGRl
+dmljZSAwMDAwOjAwOjEzLjINCihYRU4pIFsyMDEyLTA4LTMxIDIwOjUyOjI4XSBQQ0kgYWRk
+IGRldmljZSAwMDAwOjAwOjE0LjANCihYRU4pIFsyMDEyLTA4LTMxIDIwOjUyOjI4XSBQQ0kg
+YWRkIGRldmljZSAwMDAwOjAwOjE0LjMNCihYRU4pIFsyMDEyLTA4LTMxIDIwOjUyOjI4XSBQ
+Q0kgYWRkIGRldmljZSAwMDAwOjAwOjE0LjQNCihYRU4pIFsyMDEyLTA4LTMxIDIwOjUyOjI4
+XSBQQ0kgYWRkIGRldmljZSAwMDAwOjAwOjE0LjUNCihYRU4pIFsyMDEyLTA4LTMxIDIwOjUy
+OjI4XSBQQ0kgYWRkIGRldmljZSAwMDAwOjAwOjE1LjANCihYRU4pIFsyMDEyLTA4LTMxIDIw
+OjUyOjI4XSBQQ0kgYWRkIGRldmljZSAwMDAwOjAwOjE2LjANCihYRU4pIFsyMDEyLTA4LTMx
+IDIwOjUyOjI4XSBQQ0kgYWRkIGRldmljZSAwMDAwOjAwOjE2LjINCihYRU4pIFsyMDEyLTA4
+LTMxIDIwOjUyOjI4XSBQQ0kgYWRkIGRldmljZSAwMDAwOjAwOjE4LjANCihYRU4pIFsyMDEy
+LTA4LTMxIDIwOjUyOjI4XSBQQ0kgYWRkIGRldmljZSAwMDAwOjAwOjE4LjENCihYRU4pIFsy
+MDEyLTA4LTMxIDIwOjUyOjI4XSBQQ0kgYWRkIGRldmljZSAwMDAwOjAwOjE4LjINCihYRU4p
+IFsyMDEyLTA4LTMxIDIwOjUyOjI4XSBQQ0kgYWRkIGRldmljZSAwMDAwOjAwOjE4LjMNCihY
+RU4pIFsyMDEyLTA4LTMxIDIwOjUyOjI4XSBQQ0kgYWRkIGRldmljZSAwMDAwOjAwOjE4LjQN
+CihYRU4pIFsyMDEyLTA4LTMxIDIwOjUyOjI4XSBQQ0kgYWRkIGRldmljZSAwMDAwOjBiOjAw
+LjANCihYRU4pIFsyMDEyLTA4LTMxIDIwOjUyOjI4XSBQQ0kgYWRkIGRldmljZSAwMDAwOjBh
+OjAwLjANCihYRU4pIFsyMDEyLTA4LTMxIDIwOjUyOjI4XSBQQ0kgYWRkIGRldmljZSAwMDAw
+OjBhOjAwLjENCihYRU4pIFsyMDEyLTA4LTMxIDIwOjUyOjI4XSBQQ0kgYWRkIGRldmljZSAw
+MDAwOjBhOjAwLjINCihYRU4pIFsyMDEyLTA4LTMxIDIwOjUyOjI4XSBQQ0kgYWRkIGRldmlj
+ZSAwMDAwOjBhOjAwLjMNCihYRU4pIFsyMDEyLTA4LTMxIDIwOjUyOjI4XSBQQ0kgYWRkIGRl
+dmljZSAwMDAwOjBhOjAwLjQNCihYRU4pIFsyMDEyLTA4LTMxIDIwOjUyOjI4XSBQQ0kgYWRk
+IGRldmljZSAwMDAwOjBhOjAwLjUNCihYRU4pIFsyMDEyLTA4LTMxIDIwOjUyOjI4XSBQQ0kg
+YWRkIGRldmljZSAwMDAwOjBhOjAwLjYNCihYRU4pIFsyMDEyLTA4LTMxIDIwOjUyOjI4XSBQ
+Q0kgYWRkIGRldmljZSAwMDAwOjBhOjAwLjcNCihYRU4pIFsyMDEyLTA4LTMxIDIwOjUyOjI4
+XSBQQ0kgYWRkIGRldmljZSAwMDAwOjA5OjAwLjANCihYRU4pIFsyMDEyLTA4LTMxIDIwOjUy
+OjI4XSBQQ0kgYWRkIGRldmljZSAwMDAwOjA4OjAwLjANCihYRU4pIFsyMDEyLTA4LTMxIDIw
+OjUyOjI4XSBQQ0kgYWRkIGRldmljZSAwMDAwOjA3OjAwLjANCihYRU4pIFsyMDEyLTA4LTMx
+IDIwOjUyOjI4XSBQQ0kgYWRkIGRldmljZSAwMDAwOjA2OjAwLjANCihYRU4pIFsyMDEyLTA4
+LTMxIDIwOjUyOjI4XSBQQ0kgYWRkIGRldmljZSAwMDAwOjA2OjAwLjENCihYRU4pIFsyMDEy
+LTA4LTMxIDIwOjUyOjI4XSBQQ0kgYWRkIGRldmljZSAwMDAwOjA1OjAwLjANCihYRU4pIFsy
+MDEyLTA4LTMxIDIwOjUyOjI4XSBQQ0kgYWRkIGRldmljZSAwMDAwOjA0OjAwLjANCihYRU4p
+IFsyMDEyLTA4LTMxIDIwOjUyOjI4XSBQQ0kgYWRkIGRldmljZSAwMDAwOjA0OjAwLjENCihY
+RU4pIFsyMDEyLTA4LTMxIDIwOjUyOjI4XSBQQ0kgYWRkIGRldmljZSAwMDAwOjA0OjAwLjIN
+CihYRU4pIFsyMDEyLTA4LTMxIDIwOjUyOjI4XSBQQ0kgYWRkIGRldmljZSAwMDAwOjA0OjAw
+LjMNCihYRU4pIFsyMDEyLTA4LTMxIDIwOjUyOjI4XSBQQ0kgYWRkIGRldmljZSAwMDAwOjA0
+OjAwLjQNCihYRU4pIFsyMDEyLTA4LTMxIDIwOjUyOjI4XSBQQ0kgYWRkIGRldmljZSAwMDAw
+OjA0OjAwLjUNCihYRU4pIFsyMDEyLTA4LTMxIDIwOjUyOjI4XSBQQ0kgYWRkIGRldmljZSAw
+MDAwOjA0OjAwLjYNCihYRU4pIFsyMDEyLTA4LTMxIDIwOjUyOjI4XSBQQ0kgYWRkIGRldmlj
+ZSAwMDAwOjA0OjAwLjcNCihYRU4pIFsyMDEyLTA4LTMxIDIwOjUyOjI4XSBQQ0kgYWRkIGRl
+dmljZSAwMDAwOjAzOjA2LjANCihYRU4pIFsyMDEyLTA4LTMxIDIwOjUyOjI4XSBJT0FQSUNb
+MF06IFNldCBQQ0kgcm91dGluZyBlbnRyeSAoNi04IC0+IDB4NTggLT4gSVJRIDggTW9kZTow
+IEFjdGl2ZTowKQ0KKFhFTikgWzIwMTItMDgtMzEgMjA6NTI6MjhdIElPQVBJQ1swXTogU2V0
+IFBDSSByb3V0aW5nIGVudHJ5ICg2LTEzIC0+IDB4ODggLT4gSVJRIDEzIE1vZGU6MCBBY3Rp
+dmU6MCkNCihYRU4pIFsyMDEyLTA4LTMxIDIwOjUyOjI4XSBJT0FQSUNbMV06IFNldCBQQ0kg
+cm91dGluZyBlbnRyeSAoNy0yOCAtPiAweGEwIC0+IElSUSA1MiBNb2RlOjEgQWN0aXZlOjEp
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMDo1MjoyOF0gSU9BUElDWzFdOiBTZXQgUENJIHJvdXRp
+bmcgZW50cnkgKDctMjkgLT4gMHhhOCAtPiBJUlEgNTMgTW9kZToxIEFjdGl2ZToxKQ0KKFhF
+TikgWzIwMTItMDgtMzEgMjA6NTI6MjhdIElPQVBJQ1sxXTogU2V0IFBDSSByb3V0aW5nIGVu
+dHJ5ICg3LTMwIC0+IDB4YjAgLT4gSVJRIDU0IE1vZGU6MSBBY3RpdmU6MSkNCihYRU4pIFsy
+MDEyLTA4LTMxIDIwOjUyOjI4XSBJT0FQSUNbMF06IFNldCBQQ0kgcm91dGluZyBlbnRyeSAo
+Ni0xNiAtPiAweGI4IC0+IElSUSAxNiBNb2RlOjEgQWN0aXZlOjEpDQooWEVOKSBbMjAxMi0w
+OC0zMSAyMDo1MjoyOF0gSU9BUElDWzBdOiBTZXQgUENJIHJvdXRpbmcgZW50cnkgKDYtMTgg
+LT4gMHhjMCAtPiBJUlEgMTggTW9kZToxIEFjdGl2ZToxKQ0KKFhFTikgWzIwMTItMDgtMzEg
+MjA6NTI6MjhdIElPQVBJQ1swXTogU2V0IFBDSSByb3V0aW5nIGVudHJ5ICg2LTE3IC0+IDB4
+YzggLT4gSVJRIDE3IE1vZGU6MSBBY3RpdmU6MSkNCihYRU4pIFsyMDEyLTA4LTMxIDIwOjUy
+OjI4XSBJT0FQSUNbMV06IFNldCBQQ0kgcm91dGluZyBlbnRyeSAoNy00IC0+IDB4ZDAgLT4g
+SVJRIDI4IE1vZGU6MSBBY3RpdmU6MSkNCihYRU4pIFsyMDEyLTA4LTMxIDIwOjUyOjI4XSBJ
+T0FQSUNbMV06IFNldCBQQ0kgcm91dGluZyBlbnRyeSAoNy01IC0+IDB4ZDggLT4gSVJRIDI5
+IE1vZGU6MSBBY3RpdmU6MSkNCihYRU4pIFsyMDEyLTA4LTMxIDIwOjUyOjI4XSBJT0FQSUNb
+MV06IFNldCBQQ0kgcm91dGluZyBlbnRyeSAoNy02IC0+IDB4MjEgLT4gSVJRIDMwIE1vZGU6
+MSBBY3RpdmU6MSkNCihYRU4pIFsyMDEyLTA4LTMxIDIwOjUyOjI4XSBJT0FQSUNbMV06IFNl
+dCBQQ0kgcm91dGluZyBlbnRyeSAoNy03IC0+IDB4MjkgLT4gSVJRIDMxIE1vZGU6MSBBY3Rp
+dmU6MSkNCihYRU4pIFsyMDEyLTA4LTMxIDIwOjUyOjI5XSBJT0FQSUNbMV06IFNldCBQQ0kg
+cm91dGluZyBlbnRyeSAoNy0xNiAtPiAweDMxIC0+IElSUSA0MCBNb2RlOjEgQWN0aXZlOjEp
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMDo1MjoyOV0gSU9BUElDWzFdOiBTZXQgUENJIHJvdXRp
+bmcgZW50cnkgKDctMTcgLT4gMHgzOSAtPiBJUlEgNDEgTW9kZToxIEFjdGl2ZToxKQ0KKFhF
+TikgWzIwMTItMDgtMzEgMjA6NTI6MjldIElPQVBJQ1sxXTogU2V0IFBDSSByb3V0aW5nIGVu
+dHJ5ICg3LTE4IC0+IDB4NDEgLT4gSVJRIDQyIE1vZGU6MSBBY3RpdmU6MSkNCihYRU4pIFsy
+MDEyLTA4LTMxIDIwOjUyOjI5XSBJT0FQSUNbMV06IFNldCBQQ0kgcm91dGluZyBlbnRyeSAo
+Ny0xOSAtPiAweDQ5IC0+IElSUSA0MyBNb2RlOjEgQWN0aXZlOjEpDQooWEVOKSBbMjAxMi0w
+OC0zMSAyMDo1MjoyOV0gSU9BUElDWzBdOiBTZXQgUENJIHJvdXRpbmcgZW50cnkgKDYtMjIg
+LT4gMHg5OSAtPiBJUlEgMjIgTW9kZToxIEFjdGl2ZToxKQ0KKFhFTikgWzIwMTItMDgtMzEg
+MjA6NTI6MjldIElPQVBJQ1sxXTogU2V0IFBDSSByb3V0aW5nIGVudHJ5ICg3LTEyIC0+IDB4
+YTEgLT4gSVJRIDM2IE1vZGU6MSBBY3RpdmU6MSkNCihYRU4pIFsyMDEyLTA4LTMxIDIwOjUy
+OjI5XSBJT0FQSUNbMV06IFNldCBQQ0kgcm91dGluZyBlbnRyeSAoNy0yMyAtPiAweGE5IC0+
+IElSUSA0NyBNb2RlOjEgQWN0aXZlOjEpDQooWEVOKSBbMjAxMi0wOC0zMSAyMDo1MjoyOV0g
+SU9BUElDWzBdOiBTZXQgUENJIHJvdXRpbmcgZW50cnkgKDYtMTkgLT4gMHhiMSAtPiBJUlEg
+MTkgTW9kZToxIEFjdGl2ZToxKQ0KKFhFTikgWzIwMTItMDgtMzEgMjA6NTI6MzBdIElPQVBJ
+Q1sxXTogU2V0IFBDSSByb3V0aW5nIGVudHJ5ICg3LTIyIC0+IDB4YzEgLT4gSVJRIDQ2IE1v
+ZGU6MSBBY3RpdmU6MSkNCihYRU4pIFsyMDEyLTA4LTMxIDIwOjUyOjMwXSBJT0FQSUNbMV06
+IFNldCBQQ0kgcm91dGluZyBlbnRyeSAoNy0yNyAtPiAweGQxIC0+IElSUSA1MSBNb2RlOjEg
+QWN0aXZlOjEpDQooWEVOKSBbMjAxMi0wOC0zMSAyMDo1MjozMl0gSU9BUElDWzFdOiBTZXQg
+UENJIHJvdXRpbmcgZW50cnkgKDctOSAtPiAweDIyIC0+IElSUSAzMyBNb2RlOjEgQWN0aXZl
+OjEpDQooWEVOKSBbMjAxMi0wOC0zMSAyMDo1MzoyN10gdHJhcHMuYzoyNTg0OmQxIERvbWFp
+biBhdHRlbXB0ZWQgV1JNU1IgMDAwMDAwMDBjMDAxMDAwNCBmcm9tIDB4MDAwMDRlYjQwZDlj
+Nzk1YSB0byAweDAwMDAwMDAwMDAwMGFiY2QuDQooWEVOKSBbMjAxMi0wOC0zMSAyMDo1Mzoz
+M10gdHJhcHMuYzoyNTg0OmQyIERvbWFpbiBhdHRlbXB0ZWQgV1JNU1IgMDAwMDAwMDBjMDAx
+MDAwNCBmcm9tIDB4MDAwMDgxOTdlMDBiNjA5OSB0byAweDAwMDAwMDAwMDAwMGFiY2QuDQoo
+WEVOKSBbMjAxMi0wOC0zMSAyMDo1MzozOV0gdHJhcHMuYzoyNTg0OmQzIERvbWFpbiBhdHRl
+bXB0ZWQgV1JNU1IgMDAwMDAwMDBjMDAxMDAwNCBmcm9tIDB4MDAwMDYwMzRkNzBkYTE2NSB0
+byAweDAwMDAwMDAwMDAwMGFiY2QuDQooWEVOKSBbMjAxMi0wOC0zMSAyMDo1Mzo0N10gdHJh
+cHMuYzoyNTg0OmQ0IERvbWFpbiBhdHRlbXB0ZWQgV1JNU1IgMDAwMDAwMDBjMDAxMDAwNCBm
+cm9tIDB4MDAwMDYwMzRkNzBkYTE2NSB0byAweDAwMDAwMDAwMDAwMGFiY2QuDQooWEVOKSBb
+MjAxMi0wOC0zMSAyMDo1Mzo1M10gdHJhcHMuYzoyNTg0OmQ1IERvbWFpbiBhdHRlbXB0ZWQg
+V1JNU1IgMDAwMDAwMDBjMDAxMDAwNCBmcm9tIDB4MDAwMDgxOTdlMDBiNjA5OSB0byAweDAw
+MDAwMDAwMDAwMGFiY2QuDQooWEVOKSBbMjAxMi0wOC0zMSAyMDo1Mzo1OV0gdHJhcHMuYzoy
+NTg0OmQ2IERvbWFpbiBhdHRlbXB0ZWQgV1JNU1IgMDAwMDAwMDBjMDAxMDAwNCBmcm9tIDB4
+MDAwMDgxOTdlMDBiNjA5OSB0byAweDAwMDAwMDAwMDAwMGFiY2QuDQooWEVOKSBbMjAxMi0w
+OC0zMSAyMDo1NDowNV0gdHJhcHMuYzoyNTg0OmQ3IERvbWFpbiBhdHRlbXB0ZWQgV1JNU1Ig
+MDAwMDAwMDBjMDAxMDAwNCBmcm9tIDB4MDAwMDgxOTdlMDBiNjA5OSB0byAweDAwMDAwMDAw
+MDAwMGFiY2QuDQooWEVOKSBbMjAxMi0wOC0zMSAyMDo1NDoxMF0gdHJhcHMuYzoyNTg0OmQ4
+IERvbWFpbiBhdHRlbXB0ZWQgV1JNU1IgMDAwMDAwMDBjMDAxMDAwNCBmcm9tIDB4MDAwMDYw
+MzRkNzBkYTE2NSB0byAweDAwMDAwMDAwMDAwMGFiY2QuDQooWEVOKSBbMjAxMi0wOC0zMSAy
+MDo1NDoxNl0gdHJhcHMuYzoyNTg0OmQ5IERvbWFpbiBhdHRlbXB0ZWQgV1JNU1IgMDAwMDAw
+MDBjMDAxMDAwNCBmcm9tIDB4MDAwMDRlYjQwZDljNzk1YSB0byAweDAwMDAwMDAwMDAwMGFi
+Y2QuDQooWEVOKSBbMjAxMi0wOC0zMSAyMDo1NDoyM10gdHJhcHMuYzoyNTg0OmQxMCBEb21h
+aW4gYXR0ZW1wdGVkIFdSTVNSIDAwMDAwMDAwYzAwMTAwMDQgZnJvbSAweDAwMDA4MTk3ZTAw
+YjYwOTkgdG8gMHgwMDAwMDAwMDAwMDBhYmNkLg0KKFhFTikgWzIwMTItMDgtMzEgMjA6NTQ6
+MjldIHRyYXBzLmM6MjU4NDpkMTEgRG9tYWluIGF0dGVtcHRlZCBXUk1TUiAwMDAwMDAwMGMw
+MDEwMDA0IGZyb20gMHgwMDAwODE5N2UwMGI2MDk5IHRvIDB4MDAwMDAwMDAwMDAwYWJjZC4N
+CihYRU4pIFsyMDEyLTA4LTMxIDIwOjU0OjM2XSB0cmFwcy5jOjI1ODQ6ZDEyIERvbWFpbiBh
+dHRlbXB0ZWQgV1JNU1IgMDAwMDAwMDBjMDAxMDAwNCBmcm9tIDB4MDAwMDRlYjQwZDljNzk1
+YSB0byAweDAwMDAwMDAwMDAwMGFiY2QuDQooWEVOKSBbMjAxMi0wOC0zMSAyMDo1NDo0Ml0g
+dHJhcHMuYzoyNTg0OmQxMyBEb21haW4gYXR0ZW1wdGVkIFdSTVNSIDAwMDAwMDAwYzAwMTAw
+MDQgZnJvbSAweDAwMDA2MDM0ZDcwZGExNjUgdG8gMHgwMDAwMDAwMDAwMDBhYmNkLg0KKFhF
+TikgWzIwMTItMDgtMzEgMjA6NTQ6NDldIHRyYXBzLmM6MjU4NDpkMTQgRG9tYWluIGF0dGVt
+cHRlZCBXUk1TUiAwMDAwMDAwMGMwMDEwMDA0IGZyb20gMHgwMDAwODY2YjgwMmI0MTY3IHRv
+IDB4MDAwMDAwMDAwMDAwYWJjZC4NCihYRU4pIFsyMDEyLTA4LTMxIDIwOjU0OjU2XSB0cmFw
+cy5jOjI1ODQ6ZDE1IERvbWFpbiBhdHRlbXB0ZWQgV1JNU1IgMDAwMDAwMDBjMDAxMDAwNCBm
+cm9tIDB4MDAwMDg2NmI4MDJiNDE2NyB0byAweDAwMDAwMDAwMDAwMGFiY2QuDQooWEVOKSBb
+MjAxMi0wOC0zMSAyMTowMjoyNF0gJ2gnIHByZXNzZWQgLT4gc2hvd2luZyBpbnN0YWxsZWQg
+aGFuZGxlcnMNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjAyOjI0XSAga2V5ICclJyAoYXNjaWkg
+JzI1JykgPT4gdHJhcCB0byB4ZW5kYmcNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjAyOjI0XSAg
+a2V5ICcqJyAoYXNjaWkgJzJhJykgPT4gcHJpbnQgYWxsIGRpYWdub3N0aWNzDQooWEVOKSBb
+MjAxMi0wOC0zMSAyMTowMjoyNF0gIGtleSAnMCcgKGFzY2lpICczMCcpID0+IGR1bXAgRG9t
+MCByZWdpc3RlcnMNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjAyOjI0XSAga2V5ICdBJyAoYXNj
+aWkgJzQxJykgPT4gdG9nZ2xlIGFsdGVybmF0aXZlIGtleSBoYW5kbGluZw0KKFhFTikgWzIw
+MTItMDgtMzEgMjE6MDI6MjRdICBrZXkgJ0gnIChhc2NpaSAnNDgnKSA9PiBkdW1wIGhlYXAg
+aW5mbw0KKFhFTikgWzIwMTItMDgtMzEgMjE6MDI6MjRdICBrZXkgJ0knIChhc2NpaSAnNDkn
+KSA9PiBkdW1wIEhWTSBpcnEgaW5mbw0KKFhFTikgWzIwMTItMDgtMzEgMjE6MDI6MjRdICBr
+ZXkgJ00nIChhc2NpaSAnNGQnKSA9PiBkdW1wIE1TSSBzdGF0ZQ0KKFhFTikgWzIwMTItMDgt
+MzEgMjE6MDI6MjRdICBrZXkgJ04nIChhc2NpaSAnNGUnKSA9PiB0cmlnZ2VyIGFuIE5NSQ0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MDI6MjRdICBrZXkgJ08nIChhc2NpaSAnNGYnKSA9PiB0
+b2dnbGUgc2hhZG93IGF1ZGl0cw0KKFhFTikgWzIwMTItMDgtMzEgMjE6MDI6MjRdICBrZXkg
+J1EnIChhc2NpaSAnNTEnKSA9PiBkdW1wIFBDSSBkZXZpY2VzDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTowMjoyNF0gIGtleSAnUicgKGFzY2lpICc1MicpID0+IHJlYm9vdCBtYWNoaW5lDQoo
+WEVOKSBbMjAxMi0wOC0zMSAyMTowMjoyNF0gIGtleSAnUycgKGFzY2lpICc1MycpID0+IHJl
+c2V0IHNoYWRvdyBwYWdldGFibGVzDQooWEVOKSBbMjAxMi0wOC0zMSAyMTowMjoyNF0gIGtl
+eSAnYScgKGFzY2lpICc2MScpID0+IGR1bXAgdGltZXIgcXVldWVzDQooWEVOKSBbMjAxMi0w
+OC0zMSAyMTowMjoyNF0gIGtleSAnYycgKGFzY2lpICc2MycpID0+IGR1bXAgQUNQSSBDeCBz
+dHJ1Y3R1cmVzDQooWEVOKSBbMjAxMi0wOC0zMSAyMTowMjoyNF0gIGtleSAnZCcgKGFzY2lp
+ICc2NCcpID0+IGR1bXAgcmVnaXN0ZXJzDQooWEVOKSBbMjAxMi0wOC0zMSAyMTowMjoyNF0g
+IGtleSAnZScgKGFzY2lpICc2NScpID0+IGR1bXAgZXZ0Y2huIGluZm8NCihYRU4pIFsyMDEy
+LTA4LTMxIDIxOjAyOjI0XSAga2V5ICdnJyAoYXNjaWkgJzY3JykgPT4gcHJpbnQgZ3JhbnQg
+dGFibGUgdXNhZ2UNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjAyOjI0XSAga2V5ICdoJyAoYXNj
+aWkgJzY4JykgPT4gc2hvdyB0aGlzIG1lc3NhZ2UNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjAy
+OjI0XSAga2V5ICdpJyAoYXNjaWkgJzY5JykgPT4gZHVtcCBpbnRlcnJ1cHQgYmluZGluZ3MN
+CihYRU4pIFsyMDEyLTA4LTMxIDIxOjAyOjI0XSAga2V5ICdtJyAoYXNjaWkgJzZkJykgPT4g
+bWVtb3J5IGluZm8NCihYRU4pIFsyMDEyLTA4LTMxIDIxOjAyOjI0XSAga2V5ICduJyAoYXNj
+aWkgJzZlJykgPT4gTk1JIHN0YXRpc3RpY3MNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjAyOjI0
+XSAga2V5ICdvJyAoYXNjaWkgJzZmJykgPT4gZHVtcCBpb21tdSBwMm0gdGFibGUNCihYRU4p
+IFsyMDEyLTA4LTMxIDIxOjAyOjI0XSAga2V5ICdxJyAoYXNjaWkgJzcxJykgPT4gZHVtcCBk
+b21haW4gKGFuZCBndWVzdCBkZWJ1ZykgaW5mbw0KKFhFTikgWzIwMTItMDgtMzEgMjE6MDI6
+MjRdICBrZXkgJ3InIChhc2NpaSAnNzInKSA9PiBkdW1wIHJ1biBxdWV1ZXMNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjAyOjI0XSAga2V5ICdzJyAoYXNjaWkgJzczJykgPT4gZHVtcCBzb2Z0
+dHNjIHN0YXRzDQooWEVOKSBbMjAxMi0wOC0zMSAyMTowMjoyNF0gIGtleSAndCcgKGFzY2lp
+ICc3NCcpID0+IGRpc3BsYXkgbXVsdGktY3B1IGNsb2NrIGluZm8NCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjAyOjI0XSAga2V5ICd1JyAoYXNjaWkgJzc1JykgPT4gZHVtcCBudW1hIGluZm8N
+CihYRU4pIFsyMDEyLTA4LTMxIDIxOjAyOjI0XSAga2V5ICd2JyAoYXNjaWkgJzc2JykgPT4g
+ZHVtcCBBTUQtViBWTUNCcw0KKFhFTikgWzIwMTItMDgtMzEgMjE6MDI6MjRdICBrZXkgJ3on
+IChhc2NpaSAnN2EnKSA9PiBwcmludCBpb2FwaWMgaW5mbw0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MDI6NDJdIEd1ZXN0IGludGVycnVwdCBpbmZvcm1hdGlvbjoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjAyOjQyXSAgICBJUlE6ICAgMCBhZmZpbml0eTowMSB2ZWM6ZjAgdHlwZT1JTy1B
+UElDLWVkZ2UgICAgc3RhdHVzPTAwMDAwMDAwIG1hcHBlZCwgdW5ib3VuZA0KKFhFTikgWzIw
+MTItMDgtMzEgMjE6MDI6NDJdICAgIElSUTogICAxIGFmZmluaXR5OjAxIHZlYzozMCB0eXBl
+PUlPLUFQSUMtZWRnZSAgICBzdGF0dXM9MDAwMDAwMzQgaW4tZmxpZ2h0PTAgZG9tYWluLWxp
+c3Q9MDogIDEoLS0tLSksDQooWEVOKSBbMjAxMi0wOC0zMSAyMTowMjo0Ml0gICAgSVJROiAg
+IDIgYWZmaW5pdHk6M2YgdmVjOmUyIHR5cGU9WFQtUElDICAgICAgICAgIHN0YXR1cz0wMDAw
+MDAwMCBtYXBwZWQsIHVuYm91bmQNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjAyOjQyXSAgICBJ
+UlE6ICAgMyBhZmZpbml0eTowMSB2ZWM6MzggdHlwZT1JTy1BUElDLWVkZ2UgICAgc3RhdHVz
+PTAwMDAwMDAyIG1hcHBlZCwgdW5ib3VuZA0KKFhFTikgWzIwMTItMDgtMzEgMjE6MDI6NDJd
+ICAgIElSUTogICA0IGFmZmluaXR5OjAxIHZlYzpmMSB0eXBlPUlPLUFQSUMtZWRnZSAgICBz
+dGF0dXM9MDAwMDAwMDAgbWFwcGVkLCB1bmJvdW5kDQooWEVOKSBbMjAxMi0wOC0zMSAyMTow
+Mjo0Ml0gICAgSVJROiAgIDUgYWZmaW5pdHk6MDEgdmVjOjQwIHR5cGU9SU8tQVBJQy1lZGdl
+ICAgIHN0YXR1cz0wMDAwMDAwMiBtYXBwZWQsIHVuYm91bmQNCihYRU4pIFsyMDEyLTA4LTMx
+IDIxOjAyOjQyXSAgICBJUlE6ICAgNiBhZmZpbml0eTowMSB2ZWM6NDggdHlwZT1JTy1BUElD
+LWVkZ2UgICAgc3RhdHVzPTAwMDAwMDAyIG1hcHBlZCwgdW5ib3VuZA0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MDI6NDJdICAgIElSUTogICA3IGFmZmluaXR5OjAxIHZlYzo1MCB0eXBlPUlP
+LUFQSUMtZWRnZSAgICBzdGF0dXM9MDAwMDAwMDIgbWFwcGVkLCB1bmJvdW5kDQooWEVOKSBb
+MjAxMi0wOC0zMSAyMTowMjo0Ml0gICAgSVJROiAgIDggYWZmaW5pdHk6MDEgdmVjOjU4IHR5
+cGU9SU8tQVBJQy1lZGdlICAgIHN0YXR1cz0wMDAwMDAzMCBpbi1mbGlnaHQ9MCBkb21haW4t
+bGlzdD0wOiAgOCgtLS0tKSwNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjAyOjQyXSAgICBJUlE6
+ICAgOSBhZmZpbml0eTowMSB2ZWM6NjAgdHlwZT1JTy1BUElDLWxldmVsICAgc3RhdHVzPTAw
+MDAwMDMwIGluLWZsaWdodD0wIGRvbWFpbi1saXN0PTA6ICA5KC0tLS0pLA0KKFhFTikgWzIw
+MTItMDgtMzEgMjE6MDI6NDJdICAgIElSUTogIDEwIGFmZmluaXR5OjAxIHZlYzo2OCB0eXBl
+PUlPLUFQSUMtZWRnZSAgICBzdGF0dXM9MDAwMDAwMDIgbWFwcGVkLCB1bmJvdW5kDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTowMjo0Ml0gICAgSVJROiAgMTEgYWZmaW5pdHk6MDEgdmVjOjcw
+IHR5cGU9SU8tQVBJQy1lZGdlICAgIHN0YXR1cz0wMDAwMDAwMiBtYXBwZWQsIHVuYm91bmQN
+CihYRU4pIFsyMDEyLTA4LTMxIDIxOjAyOjQyXSAgICBJUlE6ICAxMiBhZmZpbml0eTowMSB2
+ZWM6NzggdHlwZT1JTy1BUElDLWVkZ2UgICAgc3RhdHVzPTAwMDAwMDMwIGluLWZsaWdodD0w
+IGRvbWFpbi1saXN0PTA6IDEyKC0tLS0pLA0KKFhFTikgWzIwMTItMDgtMzEgMjE6MDI6NDJd
+ICAgIElSUTogIDEzIGFmZmluaXR5OjNmIHZlYzo4OCB0eXBlPUlPLUFQSUMtZWRnZSAgICBz
+dGF0dXM9MDAwMDAwMDIgbWFwcGVkLCB1bmJvdW5kDQooWEVOKSBbMjAxMi0wOC0zMSAyMTow
+Mjo0Ml0gICAgSVJROiAgMTQgYWZmaW5pdHk6MDEgdmVjOjkwIHR5cGU9SU8tQVBJQy1lZGdl
+ICAgIHN0YXR1cz0wMDAwMDAwMiBtYXBwZWQsIHVuYm91bmQNCihYRU4pIFsyMDEyLTA4LTMx
+IDIxOjAyOjQyXSAgICBJUlE6ICAxNSBhZmZpbml0eTowMSB2ZWM6OTggdHlwZT1JTy1BUElD
+LWVkZ2UgICAgc3RhdHVzPTAwMDAwMDAyIG1hcHBlZCwgdW5ib3VuZA0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MDI6NDJdICAgIElSUTogIDE2IGFmZmluaXR5OjNmIHZlYzpiOCB0eXBlPUlP
+LUFQSUMtbGV2ZWwgICBzdGF0dXM9MDAwMDAwMDIgbWFwcGVkLCB1bmJvdW5kDQooWEVOKSBb
+MjAxMi0wOC0zMSAyMTowMjo0Ml0gICAgSVJROiAgMTcgYWZmaW5pdHk6MDEgdmVjOmM4IHR5
+cGU9SU8tQVBJQy1sZXZlbCAgIHN0YXR1cz0wMDAwMDAzMCBpbi1mbGlnaHQ9MCBkb21haW4t
+bGlzdD0wOiAxNygtLS0tKSwNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjAyOjQyXSAgICBJUlE6
+ICAxOCBhZmZpbml0eTowMSB2ZWM6YzAgdHlwZT1JTy1BUElDLWxldmVsICAgc3RhdHVzPTAw
+MDAwMDMwIGluLWZsaWdodD0wIGRvbWFpbi1saXN0PTA6IDE4KC0tLS0pLA0KKFhFTikgWzIw
+MTItMDgtMzEgMjE6MDI6NDJdICAgIElSUTogIDE5IGFmZmluaXR5OjNmIHZlYzpiMSB0eXBl
+PUlPLUFQSUMtbGV2ZWwgICBzdGF0dXM9MDAwMDAwMDIgbWFwcGVkLCB1bmJvdW5kDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTowMjo0Ml0gICAgSVJROiAgMjIgYWZmaW5pdHk6MDEgdmVjOjk5
+IHR5cGU9SU8tQVBJQy1sZXZlbCAgIHN0YXR1cz0wMDAwMDAzMCBpbi1mbGlnaHQ9MCBkb21h
+aW4tbGlzdD0wOiAyMigtLS0tKSwxMTogMjIoLS0tLSksDQooWEVOKSBbMjAxMi0wOC0zMSAy
+MTowMjo0Ml0gICAgSVJROiAgMjggYWZmaW5pdHk6MDEgdmVjOmQwIHR5cGU9SU8tQVBJQy1s
+ZXZlbCAgIHN0YXR1cz0wMDAwMDAzMCBpbi1mbGlnaHQ9MCBkb21haW4tbGlzdD0wOiAyOCgt
+LS0tKSwxNDogMjgoLS0tLSksDQooWEVOKSBbMjAxMi0wOC0zMSAyMTowMjo0Ml0gICAgSVJR
+OiAgMjkgYWZmaW5pdHk6MjAgdmVjOmQ4IHR5cGU9SU8tQVBJQy1sZXZlbCAgIHN0YXR1cz0w
+MDAwMDAzMCBpbi1mbGlnaHQ9MCBkb21haW4tbGlzdD0wOiAyOSgtLS0tKSwxNDogMjkoLS0t
+LSksDQooWEVOKSBbMjAxMi0wOC0zMSAyMTowMjo0Ml0gICAgSVJROiAgMzAgYWZmaW5pdHk6
+MDQgdmVjOjIxIHR5cGU9SU8tQVBJQy1sZXZlbCAgIHN0YXR1cz0wMDAwMDAzMCBpbi1mbGln
+aHQ9MCBkb21haW4tbGlzdD0wOiAzMCgtLS0tKSwxNDogMzAoLS0tLSksDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTowMjo0Ml0gICAgSVJROiAgMzEgYWZmaW5pdHk6MDEgdmVjOjI5IHR5cGU9
+SU8tQVBJQy1sZXZlbCAgIHN0YXR1cz0wMDAwMDAzMCBpbi1mbGlnaHQ9MCBkb21haW4tbGlz
+dD0wOiAzMSgtLS0tKSwxNDogMzEoLS0tLSksDQooWEVOKSBbMjAxMi0wOC0zMSAyMTowMjo0
+Ml0gICAgSVJROiAgMzMgYWZmaW5pdHk6M2YgdmVjOjIyIHR5cGU9SU8tQVBJQy1sZXZlbCAg
+IHN0YXR1cz0wMDAwMDAwMiBtYXBwZWQsIHVuYm91bmQNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjAyOjQyXSAgICBJUlE6ICAzNiBhZmZpbml0eTozZiB2ZWM6YTEgdHlwZT1JTy1BUElDLWxl
+dmVsICAgc3RhdHVzPTAwMDAwMDAyIG1hcHBlZCwgdW5ib3VuZA0KKFhFTikgWzIwMTItMDgt
+MzEgMjE6MDI6NDJdICAgIElSUTogIDQwIGFmZmluaXR5OjNmIHZlYzozMSB0eXBlPUlPLUFQ
+SUMtbGV2ZWwgICBzdGF0dXM9MDAwMDAwMDIgbWFwcGVkLCB1bmJvdW5kDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTowMjo0Ml0gICAgSVJROiAgNDEgYWZmaW5pdHk6M2YgdmVjOjM5IHR5cGU9
+SU8tQVBJQy1sZXZlbCAgIHN0YXR1cz0wMDAwMDAwMiBtYXBwZWQsIHVuYm91bmQNCihYRU4p
+IFsyMDEyLTA4LTMxIDIxOjAyOjQyXSAgICBJUlE6ICA0MiBhZmZpbml0eTozZiB2ZWM6NDEg
+dHlwZT1JTy1BUElDLWxldmVsICAgc3RhdHVzPTAwMDAwMDAyIG1hcHBlZCwgdW5ib3VuZA0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MDI6NDJdICAgIElSUTogIDQzIGFmZmluaXR5OjNmIHZl
+Yzo0OSB0eXBlPUlPLUFQSUMtbGV2ZWwgICBzdGF0dXM9MDAwMDAwMDIgbWFwcGVkLCB1bmJv
+dW5kDQooWEVOKSBbMjAxMi0wOC0zMSAyMTowMjo0Ml0gICAgSVJROiAgNDYgYWZmaW5pdHk6
+M2YgdmVjOmMxIHR5cGU9SU8tQVBJQy1sZXZlbCAgIHN0YXR1cz0wMDAwMDAwMiBtYXBwZWQs
+IHVuYm91bmQNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjAyOjQyXSAgICBJUlE6ICA0NyBhZmZp
+bml0eTowNCB2ZWM6YTkgdHlwZT1JTy1BUElDLWxldmVsICAgc3RhdHVzPTAwMDAwMDMwIGlu
+LWZsaWdodD0wIGRvbWFpbi1saXN0PTA6IDQ3KC0tLS0pLDE0OiA0NygtLS0tKSwNCihYRU4p
+IFsyMDEyLTA4LTMxIDIxOjAyOjQyXSAgICBJUlE6ICA1MSBhZmZpbml0eTozZiB2ZWM6ZDEg
+dHlwZT1JTy1BUElDLWxldmVsICAgc3RhdHVzPTAwMDAwMDAyIG1hcHBlZCwgdW5ib3VuZA0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MDI6NDJdICAgIElSUTogIDUyIGFmZmluaXR5OjNmIHZl
+YzphMCB0eXBlPUlPLUFQSUMtbGV2ZWwgICBzdGF0dXM9MDAwMDAwMDIgbWFwcGVkLCB1bmJv
+dW5kDQooWEVOKSBbMjAxMi0wOC0zMSAyMTowMjo0Ml0gICAgSVJROiAgNTMgYWZmaW5pdHk6
+M2YgdmVjOmE4IHR5cGU9SU8tQVBJQy1sZXZlbCAgIHN0YXR1cz0wMDAwMDAwMiBtYXBwZWQs
+IHVuYm91bmQNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjAyOjQyXSAgICBJUlE6ICA1NCBhZmZp
+bml0eTozZiB2ZWM6YjAgdHlwZT1JTy1BUElDLWxldmVsICAgc3RhdHVzPTAwMDAwMDAyIG1h
+cHBlZCwgdW5ib3VuZA0KKFhFTikgWzIwMTItMDgtMzEgMjE6MDI6NDJdICAgIElSUTogIDU2
+IGFmZmluaXR5OjAxIHZlYzoyOCB0eXBlPUFNRC1JT01NVS1NU0kgICBzdGF0dXM9MDAwMDAw
+MDAgbWFwcGVkLCB1bmJvdW5kDQooWEVOKSBbMjAxMi0wOC0zMSAyMTowMjo0Ml0gICAgSVJR
+OiAgNTcgYWZmaW5pdHk6M2YgdmVjOjUxIHR5cGU9UENJLU1TSSAgICAgICAgIHN0YXR1cz0w
+MDAwMDAwMiBtYXBwZWQsIHVuYm91bmQNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjAyOjQyXSAg
+ICBJUlE6ICA1OCBhZmZpbml0eTozZiB2ZWM6NTkgdHlwZT1QQ0ktTVNJICAgICAgICAgc3Rh
+dHVzPTAwMDAwMDAyIG1hcHBlZCwgdW5ib3VuZA0KKFhFTikgWzIwMTItMDgtMzEgMjE6MDI6
+NDJdICAgIElSUTogIDU5IGFmZmluaXR5OjNmIHZlYzo2MSB0eXBlPVBDSS1NU0kgICAgICAg
+ICBzdGF0dXM9MDAwMDAwMDIgbWFwcGVkLCB1bmJvdW5kDQooWEVOKSBbMjAxMi0wOC0zMSAy
+MTowMjo0Ml0gICAgSVJROiAgNjAgYWZmaW5pdHk6M2YgdmVjOjY5IHR5cGU9UENJLU1TSSAg
+ICAgICAgIHN0YXR1cz0wMDAwMDAwMiBtYXBwZWQsIHVuYm91bmQNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjAyOjQyXSAgICBJUlE6ICA2MSBhZmZpbml0eTozZiB2ZWM6NzEgdHlwZT1QQ0kt
+TVNJICAgICAgICAgc3RhdHVzPTAwMDAwMDAyIG1hcHBlZCwgdW5ib3VuZA0KKFhFTikgWzIw
+MTItMDgtMzEgMjE6MDI6NDJdICAgIElSUTogIDYyIGFmZmluaXR5OjNmIHZlYzo3OSB0eXBl
+PVBDSS1NU0kgICAgICAgICBzdGF0dXM9MDAwMDAwMDIgbWFwcGVkLCB1bmJvdW5kDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTowMjo0Ml0gICAgSVJROiAgNjMgYWZmaW5pdHk6M2YgdmVjOjgx
+IHR5cGU9UENJLU1TSSAgICAgICAgIHN0YXR1cz0wMDAwMDAwMiBtYXBwZWQsIHVuYm91bmQN
+CihYRU4pIFsyMDEyLTA4LTMxIDIxOjAyOjQyXSAgICBJUlE6ICA2NCBhZmZpbml0eTozZiB2
+ZWM6ODkgdHlwZT1QQ0ktTVNJICAgICAgICAgc3RhdHVzPTAwMDAwMDAyIG1hcHBlZCwgdW5i
+b3VuZA0KKFhFTikgWzIwMTItMDgtMzEgMjE6MDI6NDJdICAgIElSUTogIDY1IGFmZmluaXR5
+OjNmIHZlYzo5MSB0eXBlPVBDSS1NU0kgICAgICAgICBzdGF0dXM9MDAwMDAwMDIgbWFwcGVk
+LCB1bmJvdW5kDQooWEVOKSBbMjAxMi0wOC0zMSAyMTowMjo0Ml0gICAgSVJROiAgNjYgYWZm
+aW5pdHk6MDEgdmVjOmI5IHR5cGU9UENJLU1TSSAgICAgICAgIHN0YXR1cz0wMDAwMDAxMCBp
+bi1mbGlnaHQ9MCBkb21haW4tbGlzdD0wOjMwMigtLS0tKSwNCihYRU4pIFsyMDEyLTA4LTMx
+IDIxOjAyOjQyXSAgICBJUlE6ICA2NyBhZmZpbml0eTowMSB2ZWM6YzkgdHlwZT1QQ0ktTVNJ
+ICAgICAgICAgc3RhdHVzPTAwMDAwMDEwIGluLWZsaWdodD0wIGRvbWFpbi1saXN0PTA6MzAx
+KC0tLS0pLA0KKFhFTikgWzIwMTItMDgtMzEgMjE6MDI6NDJdICAgIElSUTogIDY4IGFmZmlu
+aXR5OjAxIHZlYzpkOSB0eXBlPVBDSS1NU0kgICAgICAgICBzdGF0dXM9MDAwMDAwMTAgaW4t
+ZmxpZ2h0PTAgZG9tYWluLWxpc3Q9MDozMDAoLS0tLSksDQooWEVOKSBbMjAxMi0wOC0zMSAy
+MTowMjo0Ml0gICAgSVJROiAgNjkgYWZmaW5pdHk6MDEgdmVjOjJhIHR5cGU9UENJLU1TSSAg
+ICAgICAgIHN0YXR1cz0wMDAwMDAzMCBpbi1mbGlnaHQ9MCBkb21haW4tbGlzdD0wOjI5OSgt
+LS0tKSwNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjAyOjQyXSBJTy1BUElDIGludGVycnVwdCBp
+bmZvcm1hdGlvbjoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjAyOjQyXSAgICAgSVJRICAwIFZl
+YzI0MDoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjAyOjQyXSAgICAgICBBcGljIDB4MDAsIFBp
+biAgMjogdmVjPWYwIGRlbGl2ZXJ5PUxvUHJpIGRlc3Q9TCBzdGF0dXM9MCBwb2xhcml0eT0w
+IGlycj0wIHRyaWc9RSBtYXNrPTAgZGVzdF9pZDoxDQooWEVOKSBbMjAxMi0wOC0zMSAyMTow
+Mjo0Ml0gICAgIElSUSAgMSBWZWMgNDg6DQooWEVOKSBbMjAxMi0wOC0zMSAyMTowMjo0Ml0g
+ICAgICAgQXBpYyAweDAwLCBQaW4gIDE6IHZlYz0zMCBkZWxpdmVyeT1Mb1ByaSBkZXN0PUwg
+c3RhdHVzPTAgcG9sYXJpdHk9MCBpcnI9MCB0cmlnPUUgbWFzaz0wIGRlc3RfaWQ6MQ0KKFhF
+TikgWzIwMTItMDgtMzEgMjE6MDI6NDJdICAgICBJUlEgIDMgVmVjIDU2Og0KKFhFTikgWzIw
+MTItMDgtMzEgMjE6MDI6NDJdICAgICAgIEFwaWMgMHgwMCwgUGluICAzOiB2ZWM9MzggZGVs
+aXZlcnk9TG9QcmkgZGVzdD1MIHN0YXR1cz0wIHBvbGFyaXR5PTAgaXJyPTAgdHJpZz1FIG1h
+c2s9MCBkZXN0X2lkOjENCihYRU4pIFsyMDEyLTA4LTMxIDIxOjAyOjQyXSAgICAgSVJRICA0
+IFZlYzI0MToNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjAyOjQyXSAgICAgICBBcGljIDB4MDAs
+IFBpbiAgNDogdmVjPWYxIGRlbGl2ZXJ5PUxvUHJpIGRlc3Q9TCBzdGF0dXM9MCBwb2xhcml0
+eT0wIGlycj0wIHRyaWc9RSBtYXNrPTAgZGVzdF9pZDoxDQooWEVOKSBbMjAxMi0wOC0zMSAy
+MTowMjo0Ml0gICAgIElSUSAgNSBWZWMgNjQ6DQooWEVOKSBbMjAxMi0wOC0zMSAyMTowMjo0
+Ml0gICAgICAgQXBpYyAweDAwLCBQaW4gIDU6IHZlYz00MCBkZWxpdmVyeT1Mb1ByaSBkZXN0
+PUwgc3RhdHVzPTAgcG9sYXJpdHk9MCBpcnI9MCB0cmlnPUUgbWFzaz0wIGRlc3RfaWQ6MQ0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MDI6NDJdICAgICBJUlEgIDYgVmVjIDcyOg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MDI6NDJdICAgICAgIEFwaWMgMHgwMCwgUGluICA2OiB2ZWM9NDgg
+ZGVsaXZlcnk9TG9QcmkgZGVzdD1MIHN0YXR1cz0wIHBvbGFyaXR5PTAgaXJyPTAgdHJpZz1F
+IG1hc2s9MCBkZXN0X2lkOjENCihYRU4pIFsyMDEyLTA4LTMxIDIxOjAyOjQyXSAgICAgSVJR
+ICA3IFZlYyA4MDoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjAyOjQyXSAgICAgICBBcGljIDB4
+MDAsIFBpbiAgNzogdmVjPTUwIGRlbGl2ZXJ5PUxvUHJpIGRlc3Q9TCBzdGF0dXM9MCBwb2xh
+cml0eT0wIGlycj0wIHRyaWc9RSBtYXNrPTAgZGVzdF9pZDoxDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTowMjo0Ml0gICAgIElSUSAgOCBWZWMgODg6DQooWEVOKSBbMjAxMi0wOC0zMSAyMTow
+Mjo0Ml0gICAgICAgQXBpYyAweDAwLCBQaW4gIDg6IHZlYz01OCBkZWxpdmVyeT1Mb1ByaSBk
+ZXN0PUwgc3RhdHVzPTAgcG9sYXJpdHk9MCBpcnI9MCB0cmlnPUUgbWFzaz0wIGRlc3RfaWQ6
+MQ0KKFhFTikgWzIwMTItMDgtMzEgMjE6MDI6NDJdICAgICBJUlEgIDkgVmVjIDk2Og0KKFhF
+TikgWzIwMTItMDgtMzEgMjE6MDI6NDJdICAgICAgIEFwaWMgMHgwMCwgUGluICA5OiB2ZWM9
+NjAgZGVsaXZlcnk9TG9QcmkgZGVzdD1MIHN0YXR1cz0wIHBvbGFyaXR5PTEgaXJyPTAgdHJp
+Zz1MIG1hc2s9MCBkZXN0X2lkOjENCihYRU4pIFsyMDEyLTA4LTMxIDIxOjAyOjQyXSAgICAg
+SVJRIDEwIFZlYzEwNDoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjAyOjQyXSAgICAgICBBcGlj
+IDB4MDAsIFBpbiAxMDogdmVjPTY4IGRlbGl2ZXJ5PUxvUHJpIGRlc3Q9TCBzdGF0dXM9MCBw
+b2xhcml0eT0wIGlycj0wIHRyaWc9RSBtYXNrPTAgZGVzdF9pZDoxDQooWEVOKSBbMjAxMi0w
+OC0zMSAyMTowMjo0Ml0gICAgIElSUSAxMSBWZWMxMTI6DQooWEVOKSBbMjAxMi0wOC0zMSAy
+MTowMjo0Ml0gICAgICAgQXBpYyAweDAwLCBQaW4gMTE6IHZlYz03MCBkZWxpdmVyeT1Mb1By
+aSBkZXN0PUwgc3RhdHVzPTAgcG9sYXJpdHk9MCBpcnI9MCB0cmlnPUUgbWFzaz0wIGRlc3Rf
+aWQ6MQ0KKFhFTikgWzIwMTItMDgtMzEgMjE6MDI6NDJdICAgICBJUlEgMTIgVmVjMTIwOg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MDI6NDJdICAgICAgIEFwaWMgMHgwMCwgUGluIDEyOiB2
+ZWM9NzggZGVsaXZlcnk9TG9QcmkgZGVzdD1MIHN0YXR1cz0wIHBvbGFyaXR5PTAgaXJyPTAg
+dHJpZz1FIG1hc2s9MCBkZXN0X2lkOjENCihYRU4pIFsyMDEyLTA4LTMxIDIxOjAyOjQyXSAg
+ICAgSVJRIDEzIFZlYzEzNjoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjAyOjQyXSAgICAgICBB
+cGljIDB4MDAsIFBpbiAxMzogdmVjPTg4IGRlbGl2ZXJ5PUxvUHJpIGRlc3Q9TCBzdGF0dXM9
+MCBwb2xhcml0eT0wIGlycj0wIHRyaWc9RSBtYXNrPTEgZGVzdF9pZDo2Mw0KKFhFTikgWzIw
+MTItMDgtMzEgMjE6MDI6NDJdICAgICBJUlEgMTQgVmVjMTQ0Og0KKFhFTikgWzIwMTItMDgt
+MzEgMjE6MDI6NDJdICAgICAgIEFwaWMgMHgwMCwgUGluIDE0OiB2ZWM9OTAgZGVsaXZlcnk9
+TG9QcmkgZGVzdD1MIHN0YXR1cz0wIHBvbGFyaXR5PTAgaXJyPTAgdHJpZz1FIG1hc2s9MCBk
+ZXN0X2lkOjENCihYRU4pIFsyMDEyLTA4LTMxIDIxOjAyOjQyXSAgICAgSVJRIDE1IFZlYzE1
+MjoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjAyOjQyXSAgICAgICBBcGljIDB4MDAsIFBpbiAx
+NTogdmVjPTk4IGRlbGl2ZXJ5PUxvUHJpIGRlc3Q9TCBzdGF0dXM9MCBwb2xhcml0eT0wIGly
+cj0wIHRyaWc9RSBtYXNrPTAgZGVzdF9pZDoxDQooWEVOKSBbMjAxMi0wOC0zMSAyMTowMjo0
+Ml0gICAgIElSUSAxNiBWZWMxODQ6DQooWEVOKSBbMjAxMi0wOC0zMSAyMTowMjo0Ml0gICAg
+ICAgQXBpYyAweDAwLCBQaW4gMTY6IHZlYz1iOCBkZWxpdmVyeT1Mb1ByaSBkZXN0PUwgc3Rh
+dHVzPTAgcG9sYXJpdHk9MSBpcnI9MCB0cmlnPUwgbWFzaz0xIGRlc3RfaWQ6NjMNCihYRU4p
+IFsyMDEyLTA4LTMxIDIxOjAyOjQyXSAgICAgSVJRIDE3IFZlYzIwMDoNCihYRU4pIFsyMDEy
+LTA4LTMxIDIxOjAyOjQyXSAgICAgICBBcGljIDB4MDAsIFBpbiAxNzogdmVjPWM4IGRlbGl2
+ZXJ5PUxvUHJpIGRlc3Q9TCBzdGF0dXM9MCBwb2xhcml0eT0xIGlycj0wIHRyaWc9TCBtYXNr
+PTAgZGVzdF9pZDoxDQooWEVOKSBbMjAxMi0wOC0zMSAyMTowMjo0Ml0gICAgIElSUSAxOCBW
+ZWMxOTI6DQooWEVOKSBbMjAxMi0wOC0zMSAyMTowMjo0Ml0gICAgICAgQXBpYyAweDAwLCBQ
+aW4gMTg6IHZlYz1jMCBkZWxpdmVyeT1Mb1ByaSBkZXN0PUwgc3RhdHVzPTAgcG9sYXJpdHk9
+MSBpcnI9MCB0cmlnPUwgbWFzaz0wIGRlc3RfaWQ6MQ0KKFhFTikgWzIwMTItMDgtMzEgMjE6
+MDI6NDJdICAgICBJUlEgMTkgVmVjMTc3Og0KKFhFTikgWzIwMTItMDgtMzEgMjE6MDI6NDJd
+ICAgICAgIEFwaWMgMHgwMCwgUGluIDE5OiB2ZWM9YjEgZGVsaXZlcnk9TG9QcmkgZGVzdD1M
+IHN0YXR1cz0wIHBvbGFyaXR5PTEgaXJyPTAgdHJpZz1MIG1hc2s9MSBkZXN0X2lkOjYzDQoo
+WEVOKSBbMjAxMi0wOC0zMSAyMTowMjo0Ml0gICAgIElSUSAyMiBWZWMxNTM6DQooWEVOKSBb
+MjAxMi0wOC0zMSAyMTowMjo0Ml0gICAgICAgQXBpYyAweDAwLCBQaW4gMjI6IHZlYz05OSBk
+ZWxpdmVyeT1Mb1ByaSBkZXN0PUwgc3RhdHVzPTAgcG9sYXJpdHk9MSBpcnI9MCB0cmlnPUwg
+bWFzaz0wIGRlc3RfaWQ6MQ0KKFhFTikgWzIwMTItMDgtMzEgMjE6MDI6NDJdICAgICBJUlEg
+MjggVmVjMjA4Og0KKFhFTikgWzIwMTItMDgtMzEgMjE6MDI6NDJdICAgICAgIEFwaWMgMHgw
+MSwgUGluICA0OiB2ZWM9ZDAgZGVsaXZlcnk9TG9QcmkgZGVzdD1MIHN0YXR1cz0wIHBvbGFy
+aXR5PTEgaXJyPTAgdHJpZz1MIG1hc2s9MCBkZXN0X2lkOjENCihYRU4pIFsyMDEyLTA4LTMx
+IDIxOjAyOjQyXSAgICAgSVJRIDI5IFZlYzIxNjoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjAy
+OjQyXSAgICAgICBBcGljIDB4MDEsIFBpbiAgNTogdmVjPWQ4IGRlbGl2ZXJ5PUxvUHJpIGRl
+c3Q9TCBzdGF0dXM9MCBwb2xhcml0eT0xIGlycj0wIHRyaWc9TCBtYXNrPTAgZGVzdF9pZDoz
+Mg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MDI6NDJdICAgICBJUlEgMzAgVmVjIDMzOg0KKFhF
+TikgWzIwMTItMDgtMzEgMjE6MDI6NDJdICAgICAgIEFwaWMgMHgwMSwgUGluICA2OiB2ZWM9
+MjEgZGVsaXZlcnk9TG9QcmkgZGVzdD1MIHN0YXR1cz0wIHBvbGFyaXR5PTEgaXJyPTAgdHJp
+Zz1MIG1hc2s9MCBkZXN0X2lkOjQNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjAyOjQyXSAgICAg
+SVJRIDMxIFZlYyA0MToNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjAyOjQyXSAgICAgICBBcGlj
+IDB4MDEsIFBpbiAgNzogdmVjPTI5IGRlbGl2ZXJ5PUxvUHJpIGRlc3Q9TCBzdGF0dXM9MCBw
+b2xhcml0eT0xIGlycj0wIHRyaWc9TCBtYXNrPTAgZGVzdF9pZDoxDQooWEVOKSBbMjAxMi0w
+OC0zMSAyMTowMjo0Ml0gICAgIElSUSAzMyBWZWMgMzQ6DQooWEVOKSBbMjAxMi0wOC0zMSAy
+MTowMjo0Ml0gICAgICAgQXBpYyAweDAxLCBQaW4gIDk6IHZlYz0yMiBkZWxpdmVyeT1Mb1By
+aSBkZXN0PUwgc3RhdHVzPTAgcG9sYXJpdHk9MSBpcnI9MCB0cmlnPUwgbWFzaz0xIGRlc3Rf
+aWQ6NjMNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjAyOjQyXSAgICAgSVJRIDM2IFZlYzE2MToN
+CihYRU4pIFsyMDEyLTA4LTMxIDIxOjAyOjQyXSAgICAgICBBcGljIDB4MDEsIFBpbiAxMjog
+dmVjPWExIGRlbGl2ZXJ5PUxvUHJpIGRlc3Q9TCBzdGF0dXM9MCBwb2xhcml0eT0xIGlycj0w
+IHRyaWc9TCBtYXNrPTEgZGVzdF9pZDo2Mw0KKFhFTikgWzIwMTItMDgtMzEgMjE6MDI6NDJd
+ICAgICBJUlEgNDAgVmVjIDQ5Og0KKFhFTikgWzIwMTItMDgtMzEgMjE6MDI6NDJdICAgICAg
+IEFwaWMgMHgwMSwgUGluIDE2OiB2ZWM9MzEgZGVsaXZlcnk9TG9QcmkgZGVzdD1MIHN0YXR1
+cz0wIHBvbGFyaXR5PTEgaXJyPTAgdHJpZz1MIG1hc2s9MSBkZXN0X2lkOjYzDQooWEVOKSBb
+MjAxMi0wOC0zMSAyMTowMjo0Ml0gICAgIElSUSA0MSBWZWMgNTc6DQooWEVOKSBbMjAxMi0w
+OC0zMSAyMTowMjo0Ml0gICAgICAgQXBpYyAweDAxLCBQaW4gMTc6IHZlYz0zOSBkZWxpdmVy
+eT1Mb1ByaSBkZXN0PUwgc3RhdHVzPTAgcG9sYXJpdHk9MSBpcnI9MCB0cmlnPUwgbWFzaz0x
+IGRlc3RfaWQ6NjMNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjAyOjQyXSAgICAgSVJRIDQyIFZl
+YyA2NToNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjAyOjQyXSAgICAgICBBcGljIDB4MDEsIFBp
+biAxODogdmVjPTQxIGRlbGl2ZXJ5PUxvUHJpIGRlc3Q9TCBzdGF0dXM9MCBwb2xhcml0eT0x
+IGlycj0wIHRyaWc9TCBtYXNrPTEgZGVzdF9pZDo2Mw0KKFhFTikgWzIwMTItMDgtMzEgMjE6
+MDI6NDJdICAgICBJUlEgNDMgVmVjIDczOg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MDI6NDJd
+ICAgICAgIEFwaWMgMHgwMSwgUGluIDE5OiB2ZWM9NDkgZGVsaXZlcnk9TG9QcmkgZGVzdD1M
+IHN0YXR1cz0wIHBvbGFyaXR5PTEgaXJyPTAgdHJpZz1MIG1hc2s9MSBkZXN0X2lkOjYzDQoo
+WEVOKSBbMjAxMi0wOC0zMSAyMTowMjo0Ml0gICAgIElSUSA0NiBWZWMxOTM6DQooWEVOKSBb
+MjAxMi0wOC0zMSAyMTowMjo0Ml0gICAgICAgQXBpYyAweDAxLCBQaW4gMjI6IHZlYz1jMSBk
+ZWxpdmVyeT1Mb1ByaSBkZXN0PUwgc3RhdHVzPTAgcG9sYXJpdHk9MSBpcnI9MCB0cmlnPUwg
+bWFzaz0xIGRlc3RfaWQ6NjMNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjAyOjQyXSAgICAgSVJR
+IDQ3IFZlYzE2OToNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjAyOjQyXSAgICAgICBBcGljIDB4
+MDEsIFBpbiAyMzogdmVjPWE5IGRlbGl2ZXJ5PUxvUHJpIGRlc3Q9TCBzdGF0dXM9MCBwb2xh
+cml0eT0xIGlycj0wIHRyaWc9TCBtYXNrPTAgZGVzdF9pZDo0DQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTowMjo0Ml0gICAgIElSUSA1MSBWZWMyMDk6DQooWEVOKSBbMjAxMi0wOC0zMSAyMTow
+Mjo0Ml0gICAgICAgQXBpYyAweDAxLCBQaW4gMjc6IHZlYz1kMSBkZWxpdmVyeT1Mb1ByaSBk
+ZXN0PUwgc3RhdHVzPTAgcG9sYXJpdHk9MSBpcnI9MCB0cmlnPUwgbWFzaz0xIGRlc3RfaWQ6
+NjMNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjAyOjQyXSAgICAgSVJRIDUyIFZlYzE2MDoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjAyOjQyXSAgICAgICBBcGljIDB4MDEsIFBpbiAyODogdmVj
+PWEwIGRlbGl2ZXJ5PUxvUHJpIGRlc3Q9TCBzdGF0dXM9MCBwb2xhcml0eT0xIGlycj0wIHRy
+aWc9TCBtYXNrPTEgZGVzdF9pZDo2Mw0KKFhFTikgWzIwMTItMDgtMzEgMjE6MDI6NDJdICAg
+ICBJUlEgNTMgVmVjMTY4Og0KKFhFTikgWzIwMTItMDgtMzEgMjE6MDI6NDJdICAgICAgIEFw
+aWMgMHgwMSwgUGluIDI5OiB2ZWM9YTggZGVsaXZlcnk9TG9QcmkgZGVzdD1MIHN0YXR1cz0w
+IHBvbGFyaXR5PTEgaXJyPTAgdHJpZz1MIG1hc2s9MSBkZXN0X2lkOjYzDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTowMjo0Ml0gICAgIElSUSA1NCBWZWMxNzY6DQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTowMjo0Ml0gICAgICAgQXBpYyAweDAxLCBQaW4gMzA6IHZlYz1iMCBkZWxpdmVyeT1M
+b1ByaSBkZXN0PUwgc3RhdHVzPTAgcG9sYXJpdHk9MSBpcnI9MCB0cmlnPUwgbWFzaz0xIGRl
+c3RfaWQ6NjMNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjExOjU3XSAqKioqKioqKioqKiBWTUNC
+IEFyZWFzICoqKioqKioqKioqKioqDQooWEVOKSBbMjAxMi0wOC0zMSAyMToxMTo1N10gKioq
+KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCg==
+------------01015A0E4152274D9
+Content-Type: text/plain; charset="us-ascii"
+MIME-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Content-Disposition: inline
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
+------------01015A0E4152274D9--
+
+
+
diff --git a/config/examples/test/corpus/<723041396.20120901004249@eikelenboom.it> b/config/examples/test/corpus/<723041396.20120901004249@eikelenboom.it>
new file mode 100644 (file)
index 0000000..78ea890
--- /dev/null
@@ -0,0 +1,9381 @@
+From xen-devel-bounces@lists.xen.org Sat Sep 01 06:29:24 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Sat, 01 Sep 2012 06:29:24 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T7gGo-0000vG-JX
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Sat, 01 Sep 2012 06:29:24 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T7g8N-000613-Od; Sat, 01 Sep 2012 05:20:39 +0000
+Received: from mail27.messagelabs.com ([193.109.254.147])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <linux@eikelenboom.it>) id 1T7Zvy-0008FL-HL
+       for xen-devel@lists.xen.org; Fri, 31 Aug 2012 22:43:28 +0000
+X-Env-Sender: linux@eikelenboom.it
+X-Msg-Ref: server-14.tower-27.messagelabs.com!1346452977!2165777!1
+X-Originating-IP: [188.40.164.121]
+X-SpamReason: No, hits=3.0 required=7.0 tests=ML_RADAR_551,spamassassin: 
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 13596 invoked from network); 31 Aug 2012 22:42:58 -0000
+Received: from static.121.164.40.188.clients.your-server.de (HELO
+       smtp.eikelenboom.it) (188.40.164.121)
+       by server-14.tower-27.messagelabs.com with AES256-SHA encrypted SMTP;
+       31 Aug 2012 22:42:58 -0000
+Received: from 26-69-ftth.onsneteindhoven.nl ([88.159.69.26]:50972
+       helo=[172.16.1.20])
+       by smtp.eikelenboom.it with esmtpsa (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72) (envelope-from <linux@eikelenboom.it>)
+       id 1T7ZsN-0000Fk-St; Sat, 01 Sep 2012 00:39:45 +0200
+Date: Sat, 1 Sep 2012 00:42:49 +0200
+From: Sander Eikelenboom <linux@eikelenboom.it>
+Organization: Eikelenboom IT services
+X-Priority: 3 (Normal)
+Message-ID: <723041396.20120901004249@eikelenboom.it>
+To: Santosh Jodh <Santosh.Jodh@citrix.com>
+In-Reply-To: <7914B38A4445B34AA16EB9F1352942F1012F0F6F4AE2@SJCPMAILBOX01.citrite.net>
+References: <647712821.20120831234512@eikelenboom.it>
+       <7914B38A4445B34AA16EB9F1352942F1012F0F6F4AE2@SJCPMAILBOX01.citrite.net>
+MIME-Version: 1.0
+Content-Type: multipart/mixed;
+ boundary="----------03F05B075321531C3"
+X-Mailman-Approved-At: Sat, 01 Sep 2012 05:20:38 +0000
+Cc: "wei.wang2@amd.com" <wei.wang2@amd.com>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+Subject: Re: [Xen-devel] Using debug-key 'o:  Dump IOMMU p2m table,
+       locks up machine
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Scanned: No (on hopkins.hellion.org.uk); Message bigger than SAmaxbody (256000)
+
+------------03F05B075321531C3
+Content-Type: text/plain; charset=us-ascii
+Content-Transfer-Encoding: 7bit
+
+
+Saturday, September 1, 2012, 12:24:32 AM, you wrote:
+
+> Depending on how many VMs you have and the size of the IOMMU p2m table, it can take a while. It should not be infinite though. 
+
+> How many VMs do you have running?
+
+15
+
+> Can you please send the serial output when you press 'o'?
+
+Attached, to the end you will see the s-ata errors coming through while the dump still runs.
+This is not a complete dump, only a few minutes after which i did a hard reset.
+
+> Santosh
+
+>> -----Original Message-----
+>> From: Sander Eikelenboom [mailto:linux@eikelenboom.it]
+>> Sent: Friday, August 31, 2012 2:45 PM
+>> To: Santosh Jodh; wei.wang2@amd.com
+>> Cc: xen-devel@lists.xen.org
+>> Subject: Using debug-key 'o: Dump IOMMU p2m table, locks up machine
+>> 
+>> 
+>> I was trying to use the 'o' debug key to make a bug report about an "AMD-Vi:
+>> IO_PAGE_FAULT".
+>> 
+>> The result:
+>> - When using "xl debug-keys o", the machine seems in a infinite loop, can
+>> hardly login, eventually resulting in a kernel RCU stall and complete lockup.
+>> - When using serial console: I get a infinite stream of "gfn:  mfn: " lines, mean
+>> while on the normal console, S-ATA devices are starting to give errors.
+>> 
+>> So either option trashes the machine, other debug-keys work fine.
+>> 
+>> Machine has a 890-fx chipset and AMD phenom x6 proc.
+>> 
+>> xl dmesg with bootup and output from some other debug-keys is attached.
+>> 
+>> --
+>> 
+>> Sander
+
+
+
+
+-- 
+Best regards,
+ Sander                            mailto:linux@eikelenboom.it
+------------03F05B075321531C3
+Content-Type: text/plain;
+ name="output-debug-keys-o.txt"
+Content-transfer-encoding: base64
+Content-Disposition: attachment;
+ filename="output-debug-keys-o.txt"
+
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU0XSAqKiogU2VyaWFsIGlucHV0IC0+IFhl
+biAodHlwZSAnQ1RSTC1hJyB0aHJlZSB0aW1lcyB0byBzd2l0Y2ggaW5wdXQgdG8gRE9NMCkN
+Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTZdIA0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
+MTozMTo1Nl0gZG9tYWluMSBJT01NVSBwMm0gdGFibGU6IA0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMTo1Nl0gcDJtIHRhYmxlIGhhcyAzIGxldmVscw0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMTo1Nl0gDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU2XSBkb21haW4yIElP
+TU1VIHAybSB0YWJsZTogDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU2XSBwMm0gdGFi
+bGUgaGFzIDMgbGV2ZWxzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU2XSANCg0KKFhF
+TikgWzIwMTItMDgtMzEgMjE6MzE6NTZdIGRvbWFpbjMgSU9NTVUgcDJtIHRhYmxlOiANCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTZdIHAybSB0YWJsZSBoYXMgMyBsZXZlbHMNCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTZdIA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+MTo1Nl0gZG9tYWluNCBJT01NVSBwMm0gdGFibGU6IA0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
+MTozMTo1Nl0gcDJtIHRhYmxlIGhhcyAzIGxldmVscw0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
+MTozMTo1Nl0gDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU2XSBkb21haW41IElPTU1V
+IHAybSB0YWJsZTogDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU2XSBwMm0gdGFibGUg
+aGFzIDMgbGV2ZWxzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU2XSANCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzE6NTZdIGRvbWFpbjYgSU9NTVUgcDJtIHRhYmxlOiANCg0KKFhF
+TikgWzIwMTItMDgtMzEgMjE6MzE6NTZdIHAybSB0YWJsZSBoYXMgMyBsZXZlbHMNCg0KKFhF
+TikgWzIwMTItMDgtMzEgMjE6MzE6NTZdIA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1
+Nl0gZG9tYWluNyBJT01NVSBwMm0gdGFibGU6IA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+MTo1Nl0gcDJtIHRhYmxlIGhhcyAzIGxldmVscw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+MTo1Nl0gDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU2XSBkb21haW44IElPTU1VIHAy
+bSB0YWJsZTogDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU2XSBwMm0gdGFibGUgaGFz
+IDMgbGV2ZWxzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU2XSANCg0KKFhFTikgWzIw
+MTItMDgtMzEgMjE6MzE6NTZdIGRvbWFpbjkgSU9NTVUgcDJtIHRhYmxlOiANCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzE6NTZdIHAybSB0YWJsZSBoYXMgMyBsZXZlbHMNCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzE6NTZdIA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1Nl0g
+ZG9tYWluMTAgSU9NTVUgcDJtIHRhYmxlOiANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6
+NTZdIHAybSB0YWJsZSBoYXMgMyBsZXZlbHMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6
+NTZdIA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1Nl0gZG9tYWluMTEgSU9NTVUgcDJt
+IHRhYmxlOiANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTZdIHAybSB0YWJsZSBoYXMg
+MyBsZXZlbHMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTZdICAgZ2ZuOiAwMDAwNDAw
+MCAgbWZuOiAwMDAwNDAwMA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1Nl0gICBnZm46
+IDAwMDA0MDAxICBtZm46IDAwMDA0MDAxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU2
+XSAgIGdmbjogMDAwMDQwMDIgIG1mbjogMDAwMDQwMDINCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzE6NTZdICAgZ2ZuOiAwMDAwNDAwMyAgbWZuOiAwMDAwNDAwMw0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMTo1Nl0gICBnZm46IDAwMDA0MDA0ICBtZm46IDAwMDA0MDA0DQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU2XSAgIGdmbjogMDAwMDQwMDUgIG1mbjogMDAwMDQw
+MDUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTZdICAgZ2ZuOiAwMDAwNDAwNiAgbWZu
+OiAwMDAwNDAwNg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1Nl0gICBnZm46IDAwMDA0
+MDA3ICBtZm46IDAwMDA0MDA3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU2XSAgIGdm
+bjogMDAwMDQwMDggIG1mbjogMDAwMDQwMDgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6
+NTZdICAgZ2ZuOiAwMDAwNDAwOSAgbWZuOiAwMDAwNDAwOQ0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMTo1Nl0gICBnZm46IDAwMDA0MDBhICBtZm46IDAwMDA0MDBhDQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMxOjU2XSAgIGdmbjogMDAwMDQwMGIgIG1mbjogMDAwMDQwMGINCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTZdICAgZ2ZuOiAwMDAwNDAwYyAgbWZuOiAwMDAw
+NDAwYw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1Nl0gICBnZm46IDAwMDA0MDBkICBt
+Zm46IDAwMDA0MDBkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU2XSAgIGdmbjogMDAw
+MDQwMGUgIG1mbjogMDAwMDQwMGUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTZdICAg
+Z2ZuOiAwMDAwNDAwZiAgbWZuOiAwMDAwNDAwZg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+MTo1Nl0gICBnZm46IDAwMDA0MDEwICBtZm46IDAwMDA0MDEwDQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMxOjU2XSAgIGdmbjogMDAwMDQwMTEgIG1mbjogMDAwMDQwMTENCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzE6NTZdICAgZ2ZuOiAwMDAwNDAxMiAgbWZuOiAwMDAwNDAxMg0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1Nl0gICBnZm46IDAwMDA0MDEzICBtZm46IDAw
+MDA0MDEzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU2XSAgIGdmbjogMDAwMDQwMTQg
+IG1mbjogMDAwMDQwMTQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTZdICAgZ2ZuOiAw
+MDAwNDAxNSAgbWZuOiAwMDAwNDAxNQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1Nl0g
+ICBnZm46IDAwMDA0MDE2ICBtZm46IDAwMDA0MDE2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMxOjU2XSAgIGdmbjogMDAwMDQwMTcgIG1mbjogMDAwMDQwMTcNCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzE6NTZdICAgZ2ZuOiAwMDAwNDAxOCAgbWZuOiAwMDAwNDAxOA0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMTo1Nl0gICBnZm46IDAwMDA0MDE5ICBtZm46IDAwMDA0MDE5
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU2XSAgIGdmbjogMDAwMDQwMWEgIG1mbjog
+MDAwMDQwMWENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTZdICAgZ2ZuOiAwMDAwNDAx
+YiAgbWZuOiAwMDAwNDAxYg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1Nl0gICBnZm46
+IDAwMDA0MDFjICBtZm46IDAwMDA0MDFjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU2
+XSAgIGdmbjogMDAwMDQwMWQgIG1mbjogMDAwMDQwMWQNCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzE6NTZdICAgZ2ZuOiAwMDAwNDAxZSAgbWZuOiAwMDAwNDAxZQ0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMTo1Nl0gICBnZm46IDAwMDA0MDFmICBtZm46IDAwMDA0MDFmDQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU2XSAgIGdmbjogMDAwMDQwMjAgIG1mbjogMDAwMDQw
+MjANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTZdICAgZ2ZuOiAwMDAwNDAyMSAgbWZu
+OiAwMDAwNDAyMQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1Nl0gICBnZm46IDAwMDA0
+MDIyICBtZm46IDAwMDA0MDIyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU2XSAgIGdm
+bjogMDAwMDQwMjMgIG1mbjogMDAwMDQwMjMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6
+NTZdICAgZ2ZuOiAwMDAwNDAyNCAgbWZuOiAwMDAwNDAyNA0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMTo1Nl0gICBnZm46IDAwMDA0MDI1ICBtZm46IDAwMDA0MDI1DQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMxOjU2XSAgIGdmbjogMDAwMDQwMjYgIG1mbjogMDAwMDQwMjYNCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTZdICAgZ2ZuOiAwMDAwNDAyNyAgbWZuOiAwMDAw
+NDAyNw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1Nl0gICBnZm46IDAwMDA0MDI4ICBt
+Zm46IDAwMDA0MDI4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU2XSAgIGdmbjogMDAw
+MDQwMjkgIG1mbjogMDAwMDQwMjkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTZdICAg
+Z2ZuOiAwMDAwNDAyYSAgbWZuOiAwMDAwNDAyYQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+MTo1Nl0gICBnZm46IDAwMDA0MDJiICBtZm46IDAwMDA0MDJiDQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMxOjU2XSAgIGdmbjogMDAwMDQwMmMgIG1mbjogMDAwMDQwMmMNCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzE6NTZdICAgZ2ZuOiAwMDAwNDAyZCAgbWZuOiAwMDAwNDAyZA0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1Nl0gICBnZm46IDAwMDA0MDJlICBtZm46IDAw
+MDA0MDJlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU2XSAgIGdmbjogMDAwMDQwMmYg
+IG1mbjogMDAwMDQwMmYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTZdICAgZ2ZuOiAw
+MDAwNDAzMCAgbWZuOiAwMDAwNDAzMA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1Nl0g
+ICBnZm46IDAwMDA0MDMxICBtZm46IDAwMDA0MDMxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMxOjU2XSAgIGdmbjogMDAwMDQwMzIgIG1mbjogMDAwMDQwMzINCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzE6NTZdICAgZ2ZuOiAwMDAwNDAzMyAgbWZuOiAwMDAwNDAzMw0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMTo1Nl0gICBnZm46IDAwMDA0MDM0ICBtZm46IDAwMDA0MDM0
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU2XSAgIGdmbjogMDAwMDQwMzUgIG1mbjog
+MDAwMDQwMzUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTZdICAgZ2ZuOiAwMDAwNDAz
+NiAgbWZuOiAwMDAwNDAzNg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1Nl0gICBnZm46
+IDAwMDA0MDM3ICBtZm46IDAwMDA0MDM3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU2
+XSAgIGdmbjogMDAwMDQwMzggIG1mbjogMDAwMDQwMzgNCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzE6NTZdICAgZ2ZuOiAwMDAwNDAzOSAgbWZuOiAwMDAwNDAzOQ0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMTo1Nl0gICBnZm46IDAwMDA0MDNhICBtZm46IDAwMDA0MDNhDQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU2XSAgIGdmbjogMDAwMDQwM2IgIG1mbjogMDAwMDQw
+M2INCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTZdICAgZ2ZuOiAwMDAwNDAzYyAgbWZu
+OiAwMDAwNDAzYw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1Nl0gICBnZm46IDAwMDA0
+MDNkICBtZm46IDAwMDA0MDNkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU2XSAgIGdm
+bjogMDAwMDQwM2UgIG1mbjogMDAwMDQwM2UNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6
+NTZdICAgZ2ZuOiAwMDAwNDAzZiAgbWZuOiAwMDAwNDAzZg0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMTo1Nl0gICBnZm46IDAwMDA0MDQwICBtZm46IDAwMDA0MDQwDQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMxOjU2XSAgIGdmbjogMDAwMDQwNDEgIG1mbjogMDAwMDQwNDENCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTZdICAgZ2ZuOiAwMDAwNDA0MiAgbWZuOiAwMDAw
+NDA0Mg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1Nl0gICBnZm46IDAwMDA0MDQzICBt
+Zm46IDAwMDA0MDQzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU2XSAgIGdmbjogMDAw
+MDQwNDQgIG1mbjogMDAwMDQwNDQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTZdICAg
+Z2ZuOiAwMDAwNDA0NSAgbWZuOiAwMDAwNDA0NQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+MTo1Nl0gICBnZm46IDAwMDA0MDQ2ICBtZm46IDAwMDA0MDQ2DQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMxOjU2XSAgIGdmbjogMDAwMDQwNDcgIG1mbjogMDAwMDQwNDcNCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzE6NTZdICAgZ2ZuOiAwMDAwNDA0OCAgbWZuOiAwMDAwNDA0OA0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1Nl0gICBnZm46IDAwMDA0MDQ5ICBtZm46IDAw
+MDA0MDQ5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU2XSAgIGdmbjogMDAwMDQwNGEg
+IG1mbjogMDAwMDQwNGENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTZdICAgZ2ZuOiAw
+MDAwNDA0YiAgbWZuOiAwMDAwNDA0Yg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1Nl0g
+ICBnZm46IDAwMDA0MDRjICBtZm46IDAwMDA0MDRjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMxOjU2XSAgIGdmbjogMDAwMDQwNGQgIG1mbjogMDAwMDQwNGQNCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzE6NTZdICAgZ2ZuOiAwMDAwNDA0ZSAgbWZuOiAwMDAwNDA0ZQ0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMTo1Nl0gICBnZm46IDAwMDA0MDRmICBtZm46IDAwMDA0MDRm
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU2XSAgIGdmbjogMDAwMDQwNTAgIG1mbjog
+MDAwMDQwNTANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTZdICAgZ2ZuOiAwMDAwNDA1
+MSAgbWZuOiAwMDAwNDA1MQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1Nl0gICBnZm46
+IDAwMDA0MDUyICBtZm46IDAwMDA0MDUyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU2
+XSAgIGdmbjogMDAwMDQwNTMgIG1mbjogMDAwMDQwNTMNCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzE6NTZdICAgZ2ZuOiAwMDAwNDA1NCAgbWZuOiAwMDAwNDA1NA0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMTo1Nl0gICBnZm46IDAwMDA0MDU1ICBtZm46IDAwMDA0MDU1DQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU2XSAgIGdmbjogMDAwMDQwNTYgIG1mbjogMDAwMDQw
+NTYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTZdICAgZ2ZuOiAwMDAwNDA1NyAgbWZu
+OiAwMDAwNDA1Nw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1Nl0gICBnZm46IDAwMDA0
+MDU4ICBtZm46IDAwMDA0MDU4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU2XSAgIGdm
+bjogMDAwMDQwNTkgIG1mbjogMDAwMDQwNTkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6
+NTZdICAgZ2ZuOiAwMDAwNDA1YSAgbWZuOiAwMDAwNDA1YQ0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMTo1Nl0gICBnZm46IDAwMDA0MDViICBtZm46IDAwMDA0MDViDQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMxOjU2XSAgIGdmbjogMDAwMDQwNWMgIG1mbjogMDAwMDQwNWMNCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTZdICAgZ2ZuOiAwMDAwNDA1ZCAgbWZuOiAwMDAw
+NDA1ZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1Nl0gICBnZm46IDAwMDA0MDVlICBt
+Zm46IDAwMDA0MDVlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU2XSAgIGdmbjogMDAw
+MDQwNWYgIG1mbjogMDAwMDQwNWYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTZdICAg
+Z2ZuOiAwMDAwNDA2MCAgbWZuOiAwMDAwNDA2MA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+MTo1Nl0gICBnZm46IDAwMDA0MDYxICBtZm46IDAwMDA0MDYxDQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMxOjU2XSAgIGdmbjogMDAwMDQwNjIgIG1mbjogMDAwMDQwNjINCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzE6NTZdICAgZ2ZuOiAwMDAwNDA2MyAgbWZuOiAwMDAwNDA2Mw0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1Nl0gICBnZm46IDAwMDA0MDY0ICBtZm46IDAw
+MDA0MDY0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU2XSAgIGdmbjogMDAwMDQwNjUg
+IG1mbjogMDAwMDQwNjUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTZdICAgZ2ZuOiAw
+MDAwNDA2NiAgbWZuOiAwMDAwNDA2Ng0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1Nl0g
+ICBnZm46IDAwMDA0MDY3ICBtZm46IDAwMDA0MDY3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMxOjU2XSAgIGdmbjogMDAwMDQwNjggIG1mbjogMDAwMDQwNjgNCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzE6NTZdICAgZ2ZuOiAwMDAwNDA2OSAgbWZuOiAwMDAwNDA2OQ0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMTo1Nl0gICBnZm46IDAwMDA0MDZhICBtZm46IDAwMDA0MDZh
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU2XSAgIGdmbjogMDAwMDQwNmIgIG1mbjog
+MDAwMDQwNmINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTZdICAgZ2ZuOiAwMDAwNDA2
+YyAgbWZuOiAwMDAwNDA2Yw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1Nl0gICBnZm46
+IDAwMDA0MDZkICBtZm46IDAwMDA0MDZkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU2
+XSAgIGdmbjogMDAwMDQwNmUgIG1mbjogMDAwMDQwNmUNCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzE6NTZdICAgZ2ZuOiAwMDAwNDA2ZiAgbWZuOiAwMDAwNDA2Zg0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMTo1Nl0gICBnZm46IDAwMDA0MDcwICBtZm46IDAwMDA0MDcwDQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU2XSAgIGdmbjogMDAwMDQwNzEgIG1mbjogMDAwMDQw
+NzENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTZdICAgZ2ZuOiAwMDAwNDA3MiAgbWZu
+OiAwMDAwNDA3Mg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1Nl0gICBnZm46IDAwMDA0
+MDczICBtZm46IDAwMDA0MDczDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU2XSAgIGdm
+bjogMDAwMDQwNzQgIG1mbjogMDAwMDQwNzQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6
+NTZdICAgZ2ZuOiAwMDAwNDA3NSAgbWZuOiAwMDAwNDA3NQ0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMTo1Nl0gICBnZm46IDAwMDA0MDc2ICBtZm46IDAwMDA0MDc2DQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMxOjU2XSAgIGdmbjogMDAwMDQwNzcgIG1mbjogMDAwMDQwNzcNCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTZdICAgZ2ZuOiAwMDAwNDA3OCAgbWZuOiAwMDAw
+NDA3OA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1Nl0gICBnZm46IDAwMDA0MDc5ICBt
+Zm46IDAwMDA0MDc5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU2XSAgIGdmbjogMDAw
+MDQwN2EgIG1mbjogMDAwMDQwN2ENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTZdICAg
+Z2ZuOiAwMDAwNDA3YiAgbWZuOiAwMDAwNDA3Yg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+MTo1Nl0gICBnZm46IDAwMDA0MDdjICBtZm46IDAwMDA0MDdjDQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMxOjU2XSAgIGdmbjogMDAwMDQwN2QgIG1mbjogMDAwMDQwN2QNCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzE6NTZdICAgZ2ZuOiAwMDAwNDA3ZSAgbWZuOiAwMDAwNDA3ZQ0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1Nl0gICBnZm46IDAwMDA0MDdmICBtZm46IDAw
+MDA0MDdmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU2XSAgIGdmbjogMDAwMDQwODAg
+IG1mbjogMDAwMDQwODANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTZdICAgZ2ZuOiAw
+MDAwNDA4MSAgbWZuOiAwMDAwNDA4MQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1Nl0g
+ICBnZm46IDAwMDA0MDgyICBtZm46IDAwMDA0MDgyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMxOjU2XSAgIGdmbjogMDAwMDQwODMgIG1mbjogMDAwMDQwODMNCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzE6NTZdICAgZ2ZuOiAwMDAwNDA4NCAgbWZuOiAwMDAwNDA4NA0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMTo1Nl0gICBnZm46IDAwMDA0MDg1ICBtZm46IDAwMDA0MDg1
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU2XSAgIGdmbjogMDAwMDQwODYgIG1mbjog
+MDAwMDQwODYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTZdICAgZ2ZuOiAwMDAwNDA4
+NyAgbWZuOiAwMDAwNDA4Nw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1Nl0gICBnZm46
+IDAwMDA0MDg4ICBtZm46IDAwMDA0MDg4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU2
+XSAgIGdmbjogMDAwMDQwODkgIG1mbjogMDAwMDQwODkNCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzE6NTZdICAgZ2ZuOiAwMDAwNDA4YSAgbWZuOiAwMDAwNDA4YQ0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMTo1Nl0gICBnZm46IDAwMDA0MDhiICBtZm46IDAwMDA0MDhiDQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU2XSAgIGdmbjogMDAwMDQwOGMgIG1mbjogMDAwMDQw
+OGMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTZdICAgZ2ZuOiAwMDAwNDA4ZCAgbWZu
+OiAwMDAwNDA4ZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1Nl0gICBnZm46IDAwMDA0
+MDhlICBtZm46IDAwMDA0MDhlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU2XSAgIGdm
+bjogMDAwMDQwOGYgIG1mbjogMDAwMDQwOGYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6
+NTZdICAgZ2ZuOiAwMDAwNDA5MCAgbWZuOiAwMDAwNDA5MA0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMTo1Nl0gICBnZm46IDAwMDA0MDkxICBtZm46IDAwMDA0MDkxDQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMxOjU2XSAgIGdmbjogMDAwMDQwOTIgIG1mbjogMDAwMDQwOTINCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTZdICAgZ2ZuOiAwMDAwNDA5MyAgbWZuOiAwMDAw
+NDA5Mw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1Nl0gICBnZm46IDAwMDA0MDk0ICBt
+Zm46IDAwMDA0MDk0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU2XSAgIGdmbjogMDAw
+MDQwOTUgIG1mbjogMDAwMDQwOTUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTZdICAg
+Z2ZuOiAwMDAwNDA5NiAgbWZuOiAwMDAwNDA5Ng0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+MTo1Nl0gICBnZm46IDAwMDA0MDk3ICBtZm46IDAwMDA0MDk3DQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMxOjU2XSAgIGdmbjogMDAwMDQwOTggIG1mbjogMDAwMDQwOTgNCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzE6NTZdICAgZ2ZuOiAwMDAwNDA5OSAgbWZuOiAwMDAwNDA5OQ0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1Nl0gICBnZm46IDAwMDA0MDlhICBtZm46IDAw
+MDA0MDlhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU2XSAgIGdmbjogMDAwMDQwOWIg
+IG1mbjogMDAwMDQwOWINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTZdICAgZ2ZuOiAw
+MDAwNDA5YyAgbWZuOiAwMDAwNDA5Yw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1Nl0g
+ICBnZm46IDAwMDA0MDlkICBtZm46IDAwMDA0MDlkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMxOjU2XSAgIGdmbjogMDAwMDQwOWUgIG1mbjogMDAwMDQwOWUNCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzE6NTZdICAgZ2ZuOiAwMDAwNDA5ZiAgbWZuOiAwMDAwNDA5Zg0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMTo1Nl0gICBnZm46IDAwMDA0MGEwICBtZm46IDAwMDA0MGEw
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU2XSAgIGdmbjogMDAwMDQwYTEgIG1mbjog
+MDAwMDQwYTENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTZdICAgZ2ZuOiAwMDAwNDBh
+MiAgbWZuOiAwMDAwNDBhMg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1Nl0gICBnZm46
+IDAwMDA0MGEzICBtZm46IDAwMDA0MGEzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU2
+XSAgIGdmbjogMDAwMDQwYTQgIG1mbjogMDAwMDQwYTQNCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzE6NTZdICAgZ2ZuOiAwMDAwNDBhNSAgbWZuOiAwMDAwNDBhNQ0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMTo1Nl0gICBnZm46IDAwMDA0MGE2ICBtZm46IDAwMDA0MGE2DQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU2XSAgIGdmbjogMDAwMDQwYTcgIG1mbjogMDAwMDQw
+YTcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTZdICAgZ2ZuOiAwMDAwNDBhOCAgbWZu
+OiAwMDAwNDBhOA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1Nl0gICBnZm46IDAwMDA0
+MGE5ICBtZm46IDAwMDA0MGE5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU2XSAgIGdm
+bjogMDAwMDQwYWEgIG1mbjogMDAwMDQwYWENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6
+NTZdICAgZ2ZuOiAwMDAwNDBhYiAgbWZuOiAwMDAwNDBhYg0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMTo1Nl0gICBnZm46IDAwMDA0MGFjICBtZm46IDAwMDA0MGFjDQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMxOjU2XSAgIGdmbjogMDAwMDQwYWQgIG1mbjogMDAwMDQwYWQNCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTZdICAgZ2ZuOiAwMDAwNDBhZSAgbWZuOiAwMDAw
+NDBhZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1Nl0gICBnZm46IDAwMDA0MGFmICBt
+Zm46IDAwMDA0MGFmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU2XSAgIGdmbjogMDAw
+MDQwYjAgIG1mbjogMDAwMDQwYjANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTZdICAg
+Z2ZuOiAwMDAwNDBiMSAgbWZuOiAwMDAwNDBiMQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+MTo1Nl0gICBnZm46IDAwMDA0MGIyICBtZm46IDAwMDA0MGIyDQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMxOjU2XSAgIGdmbjogMDAwMDQwYjMgIG1mbjogMDAwMDQwYjMNCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzE6NTZdICAgZ2ZuOiAwMDAwNDBiNCAgbWZuOiAwMDAwNDBiNA0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1Nl0gICBnZm46IDAwMDA0MGI1ICBtZm46IDAw
+MDA0MGI1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU2XSAgIGdmbjogMDAwMDQwYjYg
+IG1mbjogMDAwMDQwYjYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTZdICAgZ2ZuOiAw
+MDAwNDBiNyAgbWZuOiAwMDAwNDBiNw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1Nl0g
+ICBnZm46IDAwMDA0MGI4ICBtZm46IDAwMDA0MGI4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMxOjU2XSAgIGdmbjogMDAwMDQwYjkgIG1mbjogMDAwMDQwYjkNCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzE6NTZdICAgZ2ZuOiAwMDAwNDBiYSAgbWZuOiAwMDAwNDBiYQ0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMTo1Nl0gICBnZm46IDAwMDA0MGJiICBtZm46IDAwMDA0MGJi
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU2XSAgIGdmbjogMDAwMDQwYmMgIG1mbjog
+MDAwMDQwYmMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTZdICAgZ2ZuOiAwMDAwNDBi
+ZCAgbWZuOiAwMDAwNDBiZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1Nl0gICBnZm46
+IDAwMDA0MGJlICBtZm46IDAwMDA0MGJlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU2
+XSAgIGdmbjogMDAwMDQwYmYgIG1mbjogMDAwMDQwYmYNCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzE6NTZdICAgZ2ZuOiAwMDAwNDBjMCAgbWZuOiAwMDAwNDBjMA0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMTo1Nl0gICBnZm46IDAwMDA0MGMxICBtZm46IDAwMDA0MGMxDQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU2XSAgIGdmbjogMDAwMDQwYzIgIG1mbjogMDAwMDQw
+YzINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTZdICAgZ2ZuOiAwMDAwNDBjMyAgbWZu
+OiAwMDAwNDBjMw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1Nl0gICBnZm46IDAwMDA0
+MGM0ICBtZm46IDAwMDA0MGM0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU2XSAgIGdm
+bjogMDAwMDQwYzUgIG1mbjogMDAwMDQwYzUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6
+NTZdICAgZ2ZuOiAwMDAwNDBjNiAgbWZuOiAwMDAwNDBjNg0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMTo1Nl0gICBnZm46IDAwMDA0MGM3ICBtZm46IDAwMDA0MGM3DQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMxOjU2XSAgIGdmbjogMDAwMDQwYzggIG1mbjogMDAwMDQwYzgNCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTZdICAgZ2ZuOiAwMDAwNDBjOSAgbWZuOiAwMDAw
+NDBjOQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1Nl0gICBnZm46IDAwMDA0MGNhICBt
+Zm46IDAwMDA0MGNhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU2XSAgIGdmbjogMDAw
+MDQwY2IgIG1mbjogMDAwMDQwY2INCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTZdICAg
+Z2ZuOiAwMDAwNDBjYyAgbWZuOiAwMDAwNDBjYw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+MTo1Nl0gICBnZm46IDAwMDA0MGNkICBtZm46IDAwMDA0MGNkDQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMxOjU2XSAgIGdmbjogMDAwMDQwY2UgIG1mbjogMDAwMDQwY2UNCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzE6NTZdICAgZ2ZuOiAwMDAwNDBjZiAgbWZuOiAwMDAwNDBjZg0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1Nl0gICBnZm46IDAwMDA0MGQwICBtZm46IDAw
+MDA0MGQwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU2XSAgIGdmbjogMDAwMDQwZDEg
+IG1mbjogMDAwMDQwZDENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTZdICAgZ2ZuOiAw
+MDAwNDBkMiAgbWZuOiAwMDAwNDBkMg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1Nl0g
+ICBnZm46IDAwMDA0MGQzICBtZm46IDAwMDA0MGQzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMxOjU2XSAgIGdmbjogMDAwMDQwZDQgIG1mbjogMDAwMDQwZDQNCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzE6NTZdICAgZ2ZuOiAwMDAwNDBkNSAgbWZuOiAwMDAwNDBkNQ0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMTo1Nl0gICBnZm46IDAwMDA0MGQ2ICBtZm46IDAwMDA0MGQ2
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU2XSAgIGdmbjogMDAwMDQwZDcgIG1mbjog
+MDAwMDQwZDcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTZdICAgZ2ZuOiAwMDAwNDBk
+OCAgbWZuOiAwMDAwNDBkOA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1Nl0gICBnZm46
+IDAwMDA0MGQ5ICBtZm46IDAwMDA0MGQ5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU2
+XSAgIGdmbjogMDAwMDQwZGEgIG1mbjogMDAwMDQwZGENCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzE6NTZdICAgZ2ZuOiAwMDAwNDBkYiAgbWZuOiAwMDAwNDBkYg0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMTo1Nl0gICBnZm46IDAwMDA0MGRjICBtZm46IDAwMDA0MGRjDQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU2XSAgIGdmbjogMDAwMDQwZGQgIG1mbjogMDAwMDQw
+ZGQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTZdICAgZ2ZuOiAwMDAwNDBkZSAgbWZu
+OiAwMDAwNDBkZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1Nl0gICBnZm46IDAwMDA0
+MGRmICBtZm46IDAwMDA0MGRmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU2XSAgIGdm
+bjogMDAwMDQwZTAgIG1mbjogMDAwMDQwZTANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6
+NTZdICAgZ2ZuOiAwMDAwNDBlMSAgbWZuOiAwMDAwNDBlMQ0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMTo1Nl0gICBnZm46IDAwMDA0MGUyICBtZm46IDAwMDA0MGUyDQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMxOjU2XSAgIGdmbjogMDAwMDQwZTMgIG1mbjogMDAwMDQwZTMNCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTZdICAgZ2ZuOiAwMDAwNDBlNCAgbWZuOiAwMDAw
+NDBlNA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1Nl0gICBnZm46IDAwMDA0MGU1ICBt
+Zm46IDAwMDA0MGU1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU2XSAgIGdmbjogMDAw
+MDQwZTYgIG1mbjogMDAwMDQwZTYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTZdICAg
+Z2ZuOiAwMDAwNDBlNyAgbWZuOiAwMDAwNDBlNw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+MTo1Nl0gICBnZm46IDAwMDA0MGU4ICBtZm46IDAwMDA0MGU4DQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMxOjU2XSAgIGdmbjogMDAwMDQwZTkgIG1mbjogMDAwMDQwZTkNCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzE6NTZdICAgZ2ZuOiAwMDAwNDBlYSAgbWZuOiAwMDAwNDBlYQ0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1Nl0gICBnZm46IDAwMDA0MGViICBtZm46IDAw
+MDA0MGViDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU2XSAgIGdmbjogMDAwMDQwZWMg
+IG1mbjogMDAwMDQwZWMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTZdICAgZ2ZuOiAw
+MDAwNDBlZCAgbWZuOiAwMDAwNDBlZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1Nl0g
+ICBnZm46IDAwMDA0MGVlICBtZm46IDAwMDA0MGVlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMxOjU2XSAgIGdmbjogMDAwMDQwZWYgIG1mbjogMDAwMDQwZWYNCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzE6NTZdICAgZ2ZuOiAwMDAwNDBmMCAgbWZuOiAwMDAwNDBmMA0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMTo1Nl0gICBnZm46IDAwMDA0MGYxICBtZm46IDAwMDA0MGYx
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU2XSAgIGdmbjogMDAwMDQwZjIgIG1mbjog
+MDAwMDQwZjINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTZdICAgZ2ZuOiAwMDAwNDBm
+MyAgbWZuOiAwMDAwNDBmMw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1Nl0gICBnZm46
+IDAwMDA0MGY0ICBtZm46IDAwMDA0MGY0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU2
+XSAgIGdmbjogMDAwMDQwZjUgIG1mbjogMDAwMDQwZjUNCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzE6NTZdICAgZ2ZuOiAwMDAwNDBmNiAgbWZuOiAwMDAwNDBmNg0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMTo1Nl0gICBnZm46IDAwMDA0MGY3ICBtZm46IDAwMDA0MGY3DQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU2XSAgIGdmbjogMDAwMDQwZjggIG1mbjogMDAwMDQw
+ZjgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTZdICAgZ2ZuOiAwMDAwNDBmOSAgbWZu
+OiAwMDAwNDBmOQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1N10gICBnZm46IDAwMDA0
+MGZhICBtZm46IDAwMDA0MGZhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU3XSAgIGdm
+bjogMDAwMDQwZmIgIG1mbjogMDAwMDQwZmINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6
+NTddICAgZ2ZuOiAwMDAwNDBmYyAgbWZuOiAwMDAwNDBmYw0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMTo1N10gICBnZm46IDAwMDA0MGZkICBtZm46IDAwMDA0MGZkDQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMxOjU3XSAgIGdmbjogMDAwMDQwZmUgIG1mbjogMDAwMDQwZmUNCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTddICAgZ2ZuOiAwMDAwNDBmZiAgbWZuOiAwMDAw
+NDBmZg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1N10gICBnZm46IDAwMDA0MTAwICBt
+Zm46IDAwMDA0MTAwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU3XSAgIGdmbjogMDAw
+MDQxMDEgIG1mbjogMDAwMDQxMDENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTddICAg
+Z2ZuOiAwMDAwNDEwMiAgbWZuOiAwMDAwNDEwMg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+MTo1N10gICBnZm46IDAwMDA0MTAzICBtZm46IDAwMDA0MTAzDQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMxOjU3XSAgIGdmbjogMDAwMDQxMDQgIG1mbjogMDAwMDQxMDQNCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzE6NTddICAgZ2ZuOiAwMDAwNDEwNSAgbWZuOiAwMDAwNDEwNQ0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1N10gICBnZm46IDAwMDA0MTA2ICBtZm46IDAw
+MDA0MTA2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU3XSAgIGdmbjogMDAwMDQxMDcg
+IG1mbjogMDAwMDQxMDcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTddICAgZ2ZuOiAw
+MDAwNDEwOCAgbWZuOiAwMDAwNDEwOA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1N10g
+ICBnZm46IDAwMDA0MTA5ICBtZm46IDAwMDA0MTA5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMxOjU3XSAgIGdmbjogMDAwMDQxMGEgIG1mbjogMDAwMDQxMGENCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzE6NTddICAgZ2ZuOiAwMDAwNDEwYiAgbWZuOiAwMDAwNDEwYg0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMTo1N10gICBnZm46IDAwMDA0MTBjICBtZm46IDAwMDA0MTBj
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU3XSAgIGdmbjogMDAwMDQxMGQgIG1mbjog
+MDAwMDQxMGQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTddICAgZ2ZuOiAwMDAwNDEw
+ZSAgbWZuOiAwMDAwNDEwZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1N10gICBnZm46
+IDAwMDA0MTBmICBtZm46IDAwMDA0MTBmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU3
+XSAgIGdmbjogMDAwMDQxMTAgIG1mbjogMDAwMDQxMTANCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzE6NTddICAgZ2ZuOiAwMDAwNDExMSAgbWZuOiAwMDAwNDExMQ0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMTo1N10gICBnZm46IDAwMDA0MTEyICBtZm46IDAwMDA0MTEyDQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU3XSAgIGdmbjogMDAwMDQxMTMgIG1mbjogMDAwMDQx
+MTMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTddICAgZ2ZuOiAwMDAwNDExNCAgbWZu
+OiAwMDAwNDExNA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1N10gICBnZm46IDAwMDA0
+MTE1ICBtZm46IDAwMDA0MTE1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU3XSAgIGdm
+bjogMDAwMDQxMTYgIG1mbjogMDAwMDQxMTYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6
+NTddICAgZ2ZuOiAwMDAwNDExNyAgbWZuOiAwMDAwNDExNw0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMTo1N10gICBnZm46IDAwMDA0MTE4ICBtZm46IDAwMDA0MTE4DQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMxOjU3XSAgIGdmbjogMDAwMDQxMTkgIG1mbjogMDAwMDQxMTkNCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTddICAgZ2ZuOiAwMDAwNDExYSAgbWZuOiAwMDAw
+NDExYQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1N10gICBnZm46IDAwMDA0MTFiICBt
+Zm46IDAwMDA0MTFiDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU3XSAgIGdmbjogMDAw
+MDQxMWMgIG1mbjogMDAwMDQxMWMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTddICAg
+Z2ZuOiAwMDAwNDExZCAgbWZuOiAwMDAwNDExZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+MTo1N10gICBnZm46IDAwMDA0MTFlICBtZm46IDAwMDA0MTFlDQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMxOjU3XSAgIGdmbjogMDAwMDQxMWYgIG1mbjogMDAwMDQxMWYNCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzE6NTddICAgZ2ZuOiAwMDAwNDEyMCAgbWZuOiAwMDAwNDEyMA0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1N10gICBnZm46IDAwMDA0MTIxICBtZm46IDAw
+MDA0MTIxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU3XSAgIGdmbjogMDAwMDQxMjIg
+IG1mbjogMDAwMDQxMjINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTddICAgZ2ZuOiAw
+MDAwNDEyMyAgbWZuOiAwMDAwNDEyMw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1N10g
+ICBnZm46IDAwMDA0MTI0ICBtZm46IDAwMDA0MTI0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMxOjU3XSAgIGdmbjogMDAwMDQxMjUgIG1mbjogMDAwMDQxMjUNCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzE6NTddICAgZ2ZuOiAwMDAwNDEyNiAgbWZuOiAwMDAwNDEyNg0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMTo1N10gICBnZm46IDAwMDA0MTI3ICBtZm46IDAwMDA0MTI3
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU3XSAgIGdmbjogMDAwMDQxMjggIG1mbjog
+MDAwMDQxMjgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTddICAgZ2ZuOiAwMDAwNDEy
+OSAgbWZuOiAwMDAwNDEyOQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1N10gICBnZm46
+IDAwMDA0MTJhICBtZm46IDAwMDA0MTJhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU3
+XSAgIGdmbjogMDAwMDQxMmIgIG1mbjogMDAwMDQxMmINCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzE6NTddICAgZ2ZuOiAwMDAwNDEyYyAgbWZuOiAwMDAwNDEyYw0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMTo1N10gICBnZm46IDAwMDA0MTJkICBtZm46IDAwMDA0MTJkDQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU3XSAgIGdmbjogMDAwMDQxMmUgIG1mbjogMDAwMDQx
+MmUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTddICAgZ2ZuOiAwMDAwNDEyZiAgbWZu
+OiAwMDAwNDEyZg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1N10gICBnZm46IDAwMDA0
+MTMwICBtZm46IDAwMDA0MTMwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU3XSAgIGdm
+bjogMDAwMDQxMzEgIG1mbjogMDAwMDQxMzENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6
+NTddICAgZ2ZuOiAwMDAwNDEzMiAgbWZuOiAwMDAwNDEzMg0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMTo1N10gICBnZm46IDAwMDA0MTMzICBtZm46IDAwMDA0MTMzDQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMxOjU3XSAgIGdmbjogMDAwMDQxMzQgIG1mbjogMDAwMDQxMzQNCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTddICAgZ2ZuOiAwMDAwNDEzNSAgbWZuOiAwMDAw
+NDEzNQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1N10gICBnZm46IDAwMDA0MTM2ICBt
+Zm46IDAwMDA0MTM2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU3XSAgIGdmbjogMDAw
+MDQxMzcgIG1mbjogMDAwMDQxMzcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTddICAg
+Z2ZuOiAwMDAwNDEzOCAgbWZuOiAwMDAwNDEzOA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+MTo1N10gICBnZm46IDAwMDA0MTM5ICBtZm46IDAwMDA0MTM5DQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMxOjU4XSAgIGdmbjogMDAwMDQxM2EgIG1mbjogMDAwMDQxM2ENCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzE6NThdICAgZ2ZuOiAwMDAwNDEzYiAgbWZuOiAwMDAwNDEzYg0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1OF0gICBnZm46IDAwMDA0MTNjICBtZm46IDAw
+MDA0MTNjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU4XSAgIGdmbjogMDAwMDQxM2Qg
+IG1mbjogMDAwMDQxM2QNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NThdICAgZ2ZuOiAw
+MDAwNDEzZSAgbWZuOiAwMDAwNDEzZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1OF0g
+ICBnZm46IDAwMDA0MTNmICBtZm46IDAwMDA0MTNmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMxOjU4XSAgIGdmbjogMDAwMDQxNDAgIG1mbjogMDAwMDQxNDANCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzE6NThdICAgZ2ZuOiAwMDAwNDE0MSAgbWZuOiAwMDAwNDE0MQ0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMTo1OF0gICBnZm46IDAwMDA0MTQyICBtZm46IDAwMDA0MTQy
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU4XSAgIGdmbjogMDAwMDQxNDMgIG1mbjog
+MDAwMDQxNDMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NThdICAgZ2ZuOiAwMDAwNDE0
+NCAgbWZuOiAwMDAwNDE0NA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1OF0gICBnZm46
+IDAwMDA0MTQ1ICBtZm46IDAwMDA0MTQ1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU4
+XSAgIGdmbjogMDAwMDQxNDYgIG1mbjogMDAwMDQxNDYNCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzE6NThdICAgZ2ZuOiAwMDAwNDE0NyAgbWZuOiAwMDAwNDE0Nw0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMTo1OF0gICBnZm46IDAwMDA0MTQ4ICBtZm46IDAwMDA0MTQ4DQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU4XSAgIGdmbjogMDAwMDQxNDkgIG1mbjogMDAwMDQx
+NDkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NThdICAgZ2ZuOiAwMDAwNDE0YSAgbWZu
+OiAwMDAwNDE0YQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1OF0gICBnZm46IDAwMDA0
+MTRiICBtZm46IDAwMDA0MTRiDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU4XSAgIGdm
+bjogMDAwMDQxNGMgIG1mbjogMDAwMDQxNGMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6
+NThdICAgZ2ZuOiAwMDAwNDE0ZCAgbWZuOiAwMDAwNDE0ZA0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMTo1OF0gICBnZm46IDAwMDA0MTRlICBtZm46IDAwMDA0MTRlDQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMxOjU4XSAgIGdmbjogMDAwMDQxNGYgIG1mbjogMDAwMDQxNGYNCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NThdICAgZ2ZuOiAwMDAwNDE1MCAgbWZuOiAwMDAw
+NDE1MA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1OF0gICBnZm46IDAwMDA0MTUxICBt
+Zm46IDAwMDA0MTUxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU4XSAgIGdmbjogMDAw
+MDQxNTIgIG1mbjogMDAwMDQxNTINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NThdICAg
+Z2ZuOiAwMDAwNDE1MyAgbWZuOiAwMDAwNDE1Mw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+MTo1OF0gICBnZm46IDAwMDA0MTU0ICBtZm46IDAwMDA0MTU0DQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMxOjU4XSAgIGdmbjogMDAwMDQxNTUgIG1mbjogMDAwMDQxNTUNCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzE6NThdICAgZ2ZuOiAwMDAwNDE1NiAgbWZuOiAwMDAwNDE1Ng0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1OF0gICBnZm46IDAwMDA0MTU3ICBtZm46IDAw
+MDA0MTU3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU4XSAgIGdmbjogMDAwMDQxNTgg
+IG1mbjogMDAwMDQxNTgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NThdICAgZ2ZuOiAw
+MDAwNDE1OSAgbWZuOiAwMDAwNDE1OQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1OF0g
+ICBnZm46IDAwMDA0MTVhICBtZm46IDAwMDA0MTVhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMxOjU4XSAgIGdmbjogMDAwMDQxNWIgIG1mbjogMDAwMDQxNWINCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzE6NThdICAgZ2ZuOiAwMDAwNDE1YyAgbWZuOiAwMDAwNDE1Yw0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMTo1OF0gICBnZm46IDAwMDA0MTVkICBtZm46IDAwMDA0MTVk
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU4XSAgIGdmbjogMDAwMDQxNWUgIG1mbjog
+MDAwMDQxNWUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NThdICAgZ2ZuOiAwMDAwNDE1
+ZiAgbWZuOiAwMDAwNDE1Zg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1OF0gICBnZm46
+IDAwMDA0MTYwICBtZm46IDAwMDA0MTYwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU4
+XSAgIGdmbjogMDAwMDQxNjEgIG1mbjogMDAwMDQxNjENCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzE6NThdICAgZ2ZuOiAwMDAwNDE2MiAgbWZuOiAwMDAwNDE2Mg0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMTo1OF0gICBnZm46IDAwMDA0MTYzICBtZm46IDAwMDA0MTYzDQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU4XSAgIGdmbjogMDAwMDQxNjQgIG1mbjogMDAwMDQx
+NjQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NThdICAgZ2ZuOiAwMDAwNDE2NSAgbWZu
+OiAwMDAwNDE2NQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1OF0gICBnZm46IDAwMDA0
+MTY2ICBtZm46IDAwMDA0MTY2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU4XSAgIGdm
+bjogMDAwMDQxNjcgIG1mbjogMDAwMDQxNjcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6
+NThdICAgZ2ZuOiAwMDAwNDE2OCAgbWZuOiAwMDAwNDE2OA0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMTo1OF0gICBnZm46IDAwMDA0MTY5ICBtZm46IDAwMDA0MTY5DQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMxOjU4XSAgIGdmbjogMDAwMDQxNmEgIG1mbjogMDAwMDQxNmENCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NThdICAgZ2ZuOiAwMDAwNDE2YiAgbWZuOiAwMDAw
+NDE2Yg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1OF0gICBnZm46IDAwMDA0MTZjICBt
+Zm46IDAwMDA0MTZjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU4XSAgIGdmbjogMDAw
+MDQxNmQgIG1mbjogMDAwMDQxNmQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NThdICAg
+Z2ZuOiAwMDAwNDE2ZSAgbWZuOiAwMDAwNDE2ZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+MTo1OF0gICBnZm46IDAwMDA0MTZmICBtZm46IDAwMDA0MTZmDQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMxOjU4XSAgIGdmbjogMDAwMDQxNzAgIG1mbjogMDAwMDQxNzANCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzE6NThdICAgZ2ZuOiAwMDAwNDE3MSAgbWZuOiAwMDAwNDE3MQ0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1OF0gICBnZm46IDAwMDA0MTcyICBtZm46IDAw
+MDA0MTcyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU4XSAgIGdmbjogMDAwMDQxNzMg
+IG1mbjogMDAwMDQxNzMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NThdICAgZ2ZuOiAw
+MDAwNDE3NCAgbWZuOiAwMDAwNDE3NA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1OF0g
+ICBnZm46IDAwMDA0MTc1ICBtZm46IDAwMDA0MTc1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMxOjU4XSAgIGdmbjogMDAwMDQxNzYgIG1mbjogMDAwMDQxNzYNCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzE6NThdICAgZ2ZuOiAwMDAwNDE3NyAgbWZuOiAwMDAwNDE3Nw0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMTo1OF0gICBnZm46IDAwMDA0MTc4ICBtZm46IDAwMDA0MTc4
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU4XSAgIGdmbjogMDAwMDQxNzkgIG1mbjog
+MDAwMDQxNzkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTldICAgZ2ZuOiAwMDAwNDE3
+YSAgbWZuOiAwMDAwNDE3YQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1OV0gICBnZm46
+IDAwMDA0MTdiICBtZm46IDAwMDA0MTdiDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU5
+XSAgIGdmbjogMDAwMDQxN2MgIG1mbjogMDAwMDQxN2MNCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzE6NTldICAgZ2ZuOiAwMDAwNDE3ZCAgbWZuOiAwMDAwNDE3ZA0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMTo1OV0gICBnZm46IDAwMDA0MTdlICBtZm46IDAwMDA0MTdlDQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU5XSAgIGdmbjogMDAwMDQxN2YgIG1mbjogMDAwMDQx
+N2YNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTldICAgZ2ZuOiAwMDAwNDE4MCAgbWZu
+OiAwMDAwNDE4MA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1OV0gICBnZm46IDAwMDA0
+MTgxICBtZm46IDAwMDA0MTgxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU5XSAgIGdm
+bjogMDAwMDQxODIgIG1mbjogMDAwMDQxODINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6
+NTldICAgZ2ZuOiAwMDAwNDE4MyAgbWZuOiAwMDAwNDE4Mw0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMTo1OV0gICBnZm46IDAwMDA0MTg0ICBtZm46IDAwMDA0MTg0DQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMxOjU5XSAgIGdmbjogMDAwMDQxODUgIG1mbjogMDAwMDQxODUNCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTldICAgZ2ZuOiAwMDAwNDE4NiAgbWZuOiAwMDAw
+NDE4Ng0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1OV0gICBnZm46IDAwMDA0MTg3ICBt
+Zm46IDAwMDA0MTg3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU5XSAgIGdmbjogMDAw
+MDQxODggIG1mbjogMDAwMDQxODgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTldICAg
+Z2ZuOiAwMDAwNDE4OSAgbWZuOiAwMDAwNDE4OQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+MTo1OV0gICBnZm46IDAwMDA0MThhICBtZm46IDAwMDA0MThhDQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMxOjU5XSAgIGdmbjogMDAwMDQxOGIgIG1mbjogMDAwMDQxOGINCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzE6NTldICAgZ2ZuOiAwMDAwNDE4YyAgbWZuOiAwMDAwNDE4Yw0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1OV0gICBnZm46IDAwMDA0MThkICBtZm46IDAw
+MDA0MThkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU5XSAgIGdmbjogMDAwMDQxOGUg
+IG1mbjogMDAwMDQxOGUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTldICAgZ2ZuOiAw
+MDAwNDE4ZiAgbWZuOiAwMDAwNDE4Zg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1OV0g
+ICBnZm46IDAwMDA0MTkwICBtZm46IDAwMDA0MTkwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMxOjU5XSAgIGdmbjogMDAwMDQxOTEgIG1mbjogMDAwMDQxOTENCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzE6NTldICAgZ2ZuOiAwMDAwNDE5MiAgbWZuOiAwMDAwNDE5Mg0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMTo1OV0gICBnZm46IDAwMDA0MTkzICBtZm46IDAwMDA0MTkz
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU5XSAgIGdmbjogMDAwMDQxOTQgIG1mbjog
+MDAwMDQxOTQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTldICAgZ2ZuOiAwMDAwNDE5
+NSAgbWZuOiAwMDAwNDE5NQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1OV0gICBnZm46
+IDAwMDA0MTk2ICBtZm46IDAwMDA0MTk2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU5
+XSAgIGdmbjogMDAwMDQxOTcgIG1mbjogMDAwMDQxOTcNCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzE6NTldICAgZ2ZuOiAwMDAwNDE5OCAgbWZuOiAwMDAwNDE5OA0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMTo1OV0gICBnZm46IDAwMDA0MTk5ICBtZm46IDAwMDA0MTk5DQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU5XSAgIGdmbjogMDAwMDQxOWEgIG1mbjogMDAwMDQx
+OWENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTldICAgZ2ZuOiAwMDAwNDE5YiAgbWZu
+OiAwMDAwNDE5Yg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1OV0gICBnZm46IDAwMDA0
+MTljICBtZm46IDAwMDA0MTljDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU5XSAgIGdm
+bjogMDAwMDQxOWQgIG1mbjogMDAwMDQxOWQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6
+NTldICAgZ2ZuOiAwMDAwNDE5ZSAgbWZuOiAwMDAwNDE5ZQ0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMTo1OV0gICBnZm46IDAwMDA0MTlmICBtZm46IDAwMDA0MTlmDQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMxOjU5XSAgIGdmbjogMDAwMDQxYTAgIG1mbjogMDAwMDQxYTANCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTldICAgZ2ZuOiAwMDAwNDFhMSAgbWZuOiAwMDAw
+NDFhMQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1OV0gICBnZm46IDAwMDA0MWEyICBt
+Zm46IDAwMDA0MWEyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU5XSAgIGdmbjogMDAw
+MDQxYTMgIG1mbjogMDAwMDQxYTMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTldICAg
+Z2ZuOiAwMDAwNDFhNCAgbWZuOiAwMDAwNDFhNA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+MTo1OV0gICBnZm46IDAwMDA0MWE1ICBtZm46IDAwMDA0MWE1DQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMxOjU5XSAgIGdmbjogMDAwMDQxYTYgIG1mbjogMDAwMDQxYTYNCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzE6NTldICAgZ2ZuOiAwMDAwNDFhNyAgbWZuOiAwMDAwNDFhNw0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1OV0gICBnZm46IDAwMDA0MWE4ICBtZm46IDAw
+MDA0MWE4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU5XSAgIGdmbjogMDAwMDQxYTkg
+IG1mbjogMDAwMDQxYTkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTldICAgZ2ZuOiAw
+MDAwNDFhYSAgbWZuOiAwMDAwNDFhYQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1OV0g
+ICBnZm46IDAwMDA0MWFiICBtZm46IDAwMDA0MWFiDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMxOjU5XSAgIGdmbjogMDAwMDQxYWMgIG1mbjogMDAwMDQxYWMNCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzE6NTldICAgZ2ZuOiAwMDAwNDFhZCAgbWZuOiAwMDAwNDFhZA0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMTo1OV0gICBnZm46IDAwMDA0MWFlICBtZm46IDAwMDA0MWFl
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU5XSAgIGdmbjogMDAwMDQxYWYgIG1mbjog
+MDAwMDQxYWYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTldICAgZ2ZuOiAwMDAwNDFi
+MCAgbWZuOiAwMDAwNDFiMA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1OV0gICBnZm46
+IDAwMDA0MWIxICBtZm46IDAwMDA0MWIxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU5
+XSAgIGdmbjogMDAwMDQxYjIgIG1mbjogMDAwMDQxYjINCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzE6NTldICAgZ2ZuOiAwMDAwNDFiMyAgbWZuOiAwMDAwNDFiMw0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMTo1OV0gICBnZm46IDAwMDA0MWI0ICBtZm46IDAwMDA0MWI0DQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU5XSAgIGdmbjogMDAwMDQxYjUgIG1mbjogMDAwMDQx
+YjUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTldICAgZ2ZuOiAwMDAwNDFiNiAgbWZu
+OiAwMDAwNDFiNg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1OV0gICBnZm46IDAwMDA0
+MWI3ICBtZm46IDAwMDA0MWI3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU5XSAgIGdm
+bjogMDAwMDQxYjggIG1mbjogMDAwMDQxYjgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6
+NTldICAgZ2ZuOiAwMDAwNDFiOSAgbWZuOiAwMDAwNDFiOQ0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMjowMF0gICBnZm46IDAwMDA0MWJhICBtZm46IDAwMDA0MWJhDQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMyOjAwXSAgIGdmbjogMDAwMDQxYmIgIG1mbjogMDAwMDQxYmINCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDBdICAgZ2ZuOiAwMDAwNDFiYyAgbWZuOiAwMDAw
+NDFiYw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowMF0gICBnZm46IDAwMDA0MWJkICBt
+Zm46IDAwMDA0MWJkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjAwXSAgIGdmbjogMDAw
+MDQxYmUgIG1mbjogMDAwMDQxYmUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDBdICAg
+Z2ZuOiAwMDAwNDFiZiAgbWZuOiAwMDAwNDFiZg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+MjowMF0gICBnZm46IDAwMDA0MWMwICBtZm46IDAwMDA0MWMwDQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMyOjAwXSAgIGdmbjogMDAwMDQxYzEgIG1mbjogMDAwMDQxYzENCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzI6MDBdICAgZ2ZuOiAwMDAwNDFjMiAgbWZuOiAwMDAwNDFjMg0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowMF0gICBnZm46IDAwMDA0MWMzICBtZm46IDAw
+MDA0MWMzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjAwXSAgIGdmbjogMDAwMDQxYzQg
+IG1mbjogMDAwMDQxYzQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDBdICAgZ2ZuOiAw
+MDAwNDFjNSAgbWZuOiAwMDAwNDFjNQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowMF0g
+ICBnZm46IDAwMDA0MWM2ICBtZm46IDAwMDA0MWM2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMyOjAwXSAgIGdmbjogMDAwMDQxYzcgIG1mbjogMDAwMDQxYzcNCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzI6MDBdICAgZ2ZuOiAwMDAwNDFjOCAgbWZuOiAwMDAwNDFjOA0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMjowMF0gICBnZm46IDAwMDA0MWM5ICBtZm46IDAwMDA0MWM5
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjAwXSAgIGdmbjogMDAwMDQxY2EgIG1mbjog
+MDAwMDQxY2ENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDBdICAgZ2ZuOiAwMDAwNDFj
+YiAgbWZuOiAwMDAwNDFjYg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowMF0gICBnZm46
+IDAwMDA0MWNjICBtZm46IDAwMDA0MWNjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjAw
+XSAgIGdmbjogMDAwMDQxY2QgIG1mbjogMDAwMDQxY2QNCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzI6MDBdICAgZ2ZuOiAwMDAwNDFjZSAgbWZuOiAwMDAwNDFjZQ0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMjowMF0gICBnZm46IDAwMDA0MWNmICBtZm46IDAwMDA0MWNmDQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjAwXSAgIGdmbjogMDAwMDQxZDAgIG1mbjogMDAwMDQx
+ZDANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDBdICAgZ2ZuOiAwMDAwNDFkMSAgbWZu
+OiAwMDAwNDFkMQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowMF0gICBnZm46IDAwMDA0
+MWQyICBtZm46IDAwMDA0MWQyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjAwXSAgIGdm
+bjogMDAwMDQxZDMgIG1mbjogMDAwMDQxZDMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
+MDBdICAgZ2ZuOiAwMDAwNDFkNCAgbWZuOiAwMDAwNDFkNA0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMjowMF0gICBnZm46IDAwMDA0MWQ1ICBtZm46IDAwMDA0MWQ1DQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMyOjAwXSAgIGdmbjogMDAwMDQxZDYgIG1mbjogMDAwMDQxZDYNCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDBdICAgZ2ZuOiAwMDAwNDFkNyAgbWZuOiAwMDAw
+NDFkNw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowMF0gICBnZm46IDAwMDA0MWQ4ICBt
+Zm46IDAwMDA0MWQ4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjAwXSAgIGdmbjogMDAw
+MDQxZDkgIG1mbjogMDAwMDQxZDkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDBdICAg
+Z2ZuOiAwMDAwNDFkYSAgbWZuOiAwMDAwNDFkYQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+MjowMF0gICBnZm46IDAwMDA0MWRiICBtZm46IDAwMDA0MWRiDQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMyOjAwXSAgIGdmbjogMDAwMDQxZGMgIG1mbjogMDAwMDQxZGMNCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzI6MDBdICAgZ2ZuOiAwMDAwNDFkZCAgbWZuOiAwMDAwNDFkZA0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowMF0gICBnZm46IDAwMDA0MWRlICBtZm46IDAw
+MDA0MWRlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjAwXSAgIGdmbjogMDAwMDQxZGYg
+IG1mbjogMDAwMDQxZGYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDBdICAgZ2ZuOiAw
+MDAwNDFlMCAgbWZuOiAwMDAwNDFlMA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowMF0g
+ICBnZm46IDAwMDA0MWUxICBtZm46IDAwMDA0MWUxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMyOjAwXSAgIGdmbjogMDAwMDQxZTIgIG1mbjogMDAwMDQxZTINCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzI6MDBdICAgZ2ZuOiAwMDAwNDFlMyAgbWZuOiAwMDAwNDFlMw0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMjowMF0gICBnZm46IDAwMDA0MWU0ICBtZm46IDAwMDA0MWU0
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjAwXSAgIGdmbjogMDAwMDQxZTUgIG1mbjog
+MDAwMDQxZTUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDBdICAgZ2ZuOiAwMDAwNDFl
+NiAgbWZuOiAwMDAwNDFlNg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowMF0gICBnZm46
+IDAwMDA0MWU3ICBtZm46IDAwMDA0MWU3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjAw
+XSAgIGdmbjogMDAwMDQxZTggIG1mbjogMDAwMDQxZTgNCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzI6MDBdICAgZ2ZuOiAwMDAwNDFlOSAgbWZuOiAwMDAwNDFlOQ0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMjowMF0gICBnZm46IDAwMDA0MWVhICBtZm46IDAwMDA0MWVhDQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjAwXSAgIGdmbjogMDAwMDQxZWIgIG1mbjogMDAwMDQx
+ZWINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDBdICAgZ2ZuOiAwMDAwNDFlYyAgbWZu
+OiAwMDAwNDFlYw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowMF0gICBnZm46IDAwMDA0
+MWVkICBtZm46IDAwMDA0MWVkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjAwXSAgIGdm
+bjogMDAwMDQxZWUgIG1mbjogMDAwMDQxZWUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
+MDBdICAgZ2ZuOiAwMDAwNDFlZiAgbWZuOiAwMDAwNDFlZg0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMjowMF0gICBnZm46IDAwMDA0MWYwICBtZm46IDAwMDA0MWYwDQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMyOjAwXSAgIGdmbjogMDAwMDQxZjEgIG1mbjogMDAwMDQxZjENCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDBdICAgZ2ZuOiAwMDAwNDFmMiAgbWZuOiAwMDAw
+NDFmMg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowMF0gICBnZm46IDAwMDA0MWYzICBt
+Zm46IDAwMDA0MWYzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjAwXSAgIGdmbjogMDAw
+MDQxZjQgIG1mbjogMDAwMDQxZjQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDBdICAg
+Z2ZuOiAwMDAwNDFmNSAgbWZuOiAwMDAwNDFmNQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+MjowMF0gICBnZm46IDAwMDA0MWY2ICBtZm46IDAwMDA0MWY2DQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMyOjAwXSAgIGdmbjogMDAwMDQxZjcgIG1mbjogMDAwMDQxZjcNCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzI6MDBdICAgZ2ZuOiAwMDAwNDFmOCAgbWZuOiAwMDAwNDFmOA0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowMF0gICBnZm46IDAwMDA0MWY5ICBtZm46IDAw
+MDA0MWY5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjAxXSAgIGdmbjogMDAwMDQxZmEg
+IG1mbjogMDAwMDQxZmENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDFdICAgZ2ZuOiAw
+MDAwNDFmYiAgbWZuOiAwMDAwNDFmYg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowMV0g
+ICBnZm46IDAwMDA0MWZjICBtZm46IDAwMDA0MWZjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMyOjAxXSAgIGdmbjogMDAwMDQxZmQgIG1mbjogMDAwMDQxZmQNCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzI6MDFdICAgZ2ZuOiAwMDAwNDFmZSAgbWZuOiAwMDAwNDFmZQ0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMjowMV0gICBnZm46IDAwMDA0MWZmICBtZm46IDAwMDA0MWZm
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjAxXSAgIGdmbjogMDAwMDQyMDAgIG1mbjog
+MDAwMDQyMDANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDFdICAgZ2ZuOiAwMDAwNDIw
+MSAgbWZuOiAwMDAwNDIwMQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowMV0gICBnZm46
+IDAwMDA0MjAyICBtZm46IDAwMDA0MjAyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjAx
+XSAgIGdmbjogMDAwMDQyMDMgIG1mbjogMDAwMDQyMDMNCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzI6MDFdICAgZ2ZuOiAwMDAwNDIwNCAgbWZuOiAwMDAwNDIwNA0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMjowMV0gICBnZm46IDAwMDA0MjA1ICBtZm46IDAwMDA0MjA1DQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjAxXSAgIGdmbjogMDAwMDQyMDYgIG1mbjogMDAwMDQy
+MDYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDFdICAgZ2ZuOiAwMDAwNDIwNyAgbWZu
+OiAwMDAwNDIwNw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowMV0gICBnZm46IDAwMDA0
+MjA4ICBtZm46IDAwMDA0MjA4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjAxXSAgIGdm
+bjogMDAwMDQyMDkgIG1mbjogMDAwMDQyMDkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
+MDFdICAgZ2ZuOiAwMDAwNDIwYSAgbWZuOiAwMDAwNDIwYQ0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMjowMV0gICBnZm46IDAwMDA0MjBiICBtZm46IDAwMDA0MjBiDQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMyOjAxXSAgIGdmbjogMDAwMDQyMGMgIG1mbjogMDAwMDQyMGMNCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDFdICAgZ2ZuOiAwMDAwNDIwZCAgbWZuOiAwMDAw
+NDIwZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowMV0gICBnZm46IDAwMDA0MjBlICBt
+Zm46IDAwMDA0MjBlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjAxXSAgIGdmbjogMDAw
+MDQyMGYgIG1mbjogMDAwMDQyMGYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDFdICAg
+Z2ZuOiAwMDAwNDIxMCAgbWZuOiAwMDAwNDIxMA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+MjowMV0gICBnZm46IDAwMDA0MjExICBtZm46IDAwMDA0MjExDQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMyOjAxXSAgIGdmbjogMDAwMDQyMTIgIG1mbjogMDAwMDQyMTINCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzI6MDFdICAgZ2ZuOiAwMDAwNDIxMyAgbWZuOiAwMDAwNDIxMw0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowMV0gICBnZm46IDAwMDA0MjE0ICBtZm46IDAw
+MDA0MjE0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjAxXSAgIGdmbjogMDAwMDQyMTUg
+IG1mbjogMDAwMDQyMTUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDFdICAgZ2ZuOiAw
+MDAwNDIxNiAgbWZuOiAwMDAwNDIxNg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowMV0g
+ICBnZm46IDAwMDA0MjE3ICBtZm46IDAwMDA0MjE3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMyOjAxXSAgIGdmbjogMDAwMDQyMTggIG1mbjogMDAwMDQyMTgNCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzI6MDFdICAgZ2ZuOiAwMDAwNDIxOSAgbWZuOiAwMDAwNDIxOQ0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMjowMV0gICBnZm46IDAwMDA0MjFhICBtZm46IDAwMDA0MjFh
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjAxXSAgIGdmbjogMDAwMDQyMWIgIG1mbjog
+MDAwMDQyMWINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDFdICAgZ2ZuOiAwMDAwNDIx
+YyAgbWZuOiAwMDAwNDIxYw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowMV0gICBnZm46
+IDAwMDA0MjFkICBtZm46IDAwMDA0MjFkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjAx
+XSAgIGdmbjogMDAwMDQyMWUgIG1mbjogMDAwMDQyMWUNCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzI6MDFdICAgZ2ZuOiAwMDAwNDIxZiAgbWZuOiAwMDAwNDIxZg0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMjowMV0gICBnZm46IDAwMDA0MjIwICBtZm46IDAwMDA0MjIwDQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjAxXSAgIGdmbjogMDAwMDQyMjEgIG1mbjogMDAwMDQy
+MjENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDFdICAgZ2ZuOiAwMDAwNDIyMiAgbWZu
+OiAwMDAwNDIyMg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowMV0gICBnZm46IDAwMDA0
+MjIzICBtZm46IDAwMDA0MjIzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjAxXSAgIGdm
+bjogMDAwMDQyMjQgIG1mbjogMDAwMDQyMjQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
+MDFdICAgZ2ZuOiAwMDAwNDIyNSAgbWZuOiAwMDAwNDIyNQ0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMjowMV0gICBnZm46IDAwMDA0MjI2ICBtZm46IDAwMDA0MjI2DQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMyOjAxXSAgIGdmbjogMDAwMDQyMjcgIG1mbjogMDAwMDQyMjcNCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDFdICAgZ2ZuOiAwMDAwNDIyOCAgbWZuOiAwMDAw
+NDIyOA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowMV0gICBnZm46IDAwMDA0MjI5ICBt
+Zm46IDAwMDA0MjI5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjAxXSAgIGdmbjogMDAw
+MDQyMmEgIG1mbjogMDAwMDQyMmENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDFdICAg
+Z2ZuOiAwMDAwNDIyYiAgbWZuOiAwMDAwNDIyYg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+MjowMV0gICBnZm46IDAwMDA0MjJjICBtZm46IDAwMDA0MjJjDQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMyOjAxXSAgIGdmbjogMDAwMDQyMmQgIG1mbjogMDAwMDQyMmQNCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzI6MDFdICAgZ2ZuOiAwMDAwNDIyZSAgbWZuOiAwMDAwNDIyZQ0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowMV0gICBnZm46IDAwMDA0MjJmICBtZm46IDAw
+MDA0MjJmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjAxXSAgIGdmbjogMDAwMDQyMzAg
+IG1mbjogMDAwMDQyMzANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDFdICAgZ2ZuOiAw
+MDAwNDIzMSAgbWZuOiAwMDAwNDIzMQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowMV0g
+ICBnZm46IDAwMDA0MjMyICBtZm46IDAwMDA0MjMyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMyOjAxXSAgIGdmbjogMDAwMDQyMzMgIG1mbjogMDAwMDQyMzMNCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzI6MDFdICAgZ2ZuOiAwMDAwNDIzNCAgbWZuOiAwMDAwNDIzNA0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMjowMV0gICBnZm46IDAwMDA0MjM1ICBtZm46IDAwMDA0MjM1
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjAxXSAgIGdmbjogMDAwMDQyMzYgIG1mbjog
+MDAwMDQyMzYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDFdICAgZ2ZuOiAwMDAwNDIz
+NyAgbWZuOiAwMDAwNDIzNw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowMV0gICBnZm46
+IDAwMDA0MjM4ICBtZm46IDAwMDA0MjM4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjAx
+XSAgIGdmbjogMDAwMDQyMzkgIG1mbjogMDAwMDQyMzkNCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzI6MDJdICAgZ2ZuOiAwMDAwNDIzYSAgbWZuOiAwMDAwNDIzYQ0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMjowMl0gICBnZm46IDAwMDA0MjNiICBtZm46IDAwMDA0MjNiDQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjAyXSAgIGdmbjogMDAwMDQyM2MgIG1mbjogMDAwMDQy
+M2MNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDJdICAgZ2ZuOiAwMDAwNDIzZCAgbWZu
+OiAwMDAwNDIzZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowMl0gICBnZm46IDAwMDA0
+MjNlICBtZm46IDAwMDA0MjNlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjAyXSAgIGdm
+bjogMDAwMDQyM2YgIG1mbjogMDAwMDQyM2YNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
+MDJdICAgZ2ZuOiAwMDAwNDI0MCAgbWZuOiAwMDAwNDI0MA0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMjowMl0gICBnZm46IDAwMDA0MjQxICBtZm46IDAwMDA0MjQxDQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMyOjAyXSAgIGdmbjogMDAwMDQyNDIgIG1mbjogMDAwMDQyNDINCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDJdICAgZ2ZuOiAwMDAwNDI0MyAgbWZuOiAwMDAw
+NDI0Mw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowMl0gICBnZm46IDAwMDA0MjQ0ICBt
+Zm46IDAwMDA0MjQ0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjAyXSAgIGdmbjogMDAw
+MDQyNDUgIG1mbjogMDAwMDQyNDUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDJdICAg
+Z2ZuOiAwMDAwNDI0NiAgbWZuOiAwMDAwNDI0Ng0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+MjowMl0gICBnZm46IDAwMDA0MjQ3ICBtZm46IDAwMDA0MjQ3DQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMyOjAyXSAgIGdmbjogMDAwMDQyNDggIG1mbjogMDAwMDQyNDgNCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzI6MDJdICAgZ2ZuOiAwMDAwNDI0OSAgbWZuOiAwMDAwNDI0OQ0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowMl0gICBnZm46IDAwMDA0MjRhICBtZm46IDAw
+MDA0MjRhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjAyXSAgIGdmbjogMDAwMDQyNGIg
+IG1mbjogMDAwMDQyNGINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDJdICAgZ2ZuOiAw
+MDAwNDI0YyAgbWZuOiAwMDAwNDI0Yw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowMl0g
+ICBnZm46IDAwMDA0MjRkICBtZm46IDAwMDA0MjRkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMyOjAyXSAgIGdmbjogMDAwMDQyNGUgIG1mbjogMDAwMDQyNGUNCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzI6MDJdICAgZ2ZuOiAwMDAwNDI0ZiAgbWZuOiAwMDAwNDI0Zg0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMjowMl0gICBnZm46IDAwMDA0MjUwICBtZm46IDAwMDA0MjUw
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjAyXSAgIGdmbjogMDAwMDQyNTEgIG1mbjog
+MDAwMDQyNTENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDJdICAgZ2ZuOiAwMDAwNDI1
+MiAgbWZuOiAwMDAwNDI1Mg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowMl0gICBnZm46
+IDAwMDA0MjUzICBtZm46IDAwMDA0MjUzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjAy
+XSAgIGdmbjogMDAwMDQyNTQgIG1mbjogMDAwMDQyNTQNCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzI6MDJdICAgZ2ZuOiAwMDAwNDI1NSAgbWZuOiAwMDAwNDI1NQ0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMjowMl0gICBnZm46IDAwMDA0MjU2ICBtZm46IDAwMDA0MjU2DQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjAyXSAgIGdmbjogMDAwMDQyNTcgIG1mbjogMDAwMDQy
+NTcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDJdICAgZ2ZuOiAwMDAwNDI1OCAgbWZu
+OiAwMDAwNDI1OA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowMl0gICBnZm46IDAwMDA0
+MjU5ICBtZm46IDAwMDA0MjU5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjAyXSAgIGdm
+bjogMDAwMDQyNWEgIG1mbjogMDAwMDQyNWENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
+MDJdICAgZ2ZuOiAwMDAwNDI1YiAgbWZuOiAwMDAwNDI1Yg0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMjowMl0gICBnZm46IDAwMDA0MjVjICBtZm46IDAwMDA0MjVjDQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMyOjAyXSAgIGdmbjogMDAwMDQyNWQgIG1mbjogMDAwMDQyNWQNCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDJdICAgZ2ZuOiAwMDAwNDI1ZSAgbWZuOiAwMDAw
+NDI1ZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowMl0gICBnZm46IDAwMDA0MjVmICBt
+Zm46IDAwMDA0MjVmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjAyXSAgIGdmbjogMDAw
+MDQyNjAgIG1mbjogMDAwMDQyNjANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDJdICAg
+Z2ZuOiAwMDAwNDI2MSAgbWZuOiAwMDAwNDI2MQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+MjowMl0gICBnZm46IDAwMDA0MjYyICBtZm46IDAwMDA0MjYyDQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMyOjAyXSAgIGdmbjogMDAwMDQyNjMgIG1mbjogMDAwMDQyNjMNCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzI6MDJdICAgZ2ZuOiAwMDAwNDI2NCAgbWZuOiAwMDAwNDI2NA0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowMl0gICBnZm46IDAwMDA0MjY1ICBtZm46IDAw
+MDA0MjY1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjAyXSAgIGdmbjogMDAwMDQyNjYg
+IG1mbjogMDAwMDQyNjYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDJdICAgZ2ZuOiAw
+MDAwNDI2NyAgbWZuOiAwMDAwNDI2Nw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowMl0g
+ICBnZm46IDAwMDA0MjY4ICBtZm46IDAwMDA0MjY4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMyOjAyXSAgIGdmbjogMDAwMDQyNjkgIG1mbjogMDAwMDQyNjkNCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzI6MDJdICAgZ2ZuOiAwMDAwNDI2YSAgbWZuOiAwMDAwNDI2YQ0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMjowMl0gICBnZm46IDAwMDA0MjZiICBtZm46IDAwMDA0MjZi
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjAyXSAgIGdmbjogMDAwMDQyNmMgIG1mbjog
+MDAwMDQyNmMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDJdICAgZ2ZuOiAwMDAwNDI2
+ZCAgbWZuOiAwMDAwNDI2ZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowMl0gICBnZm46
+IDAwMDA0MjZlICBtZm46IDAwMDA0MjZlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjAy
+XSAgIGdmbjogMDAwMDQyNmYgIG1mbjogMDAwMDQyNmYNCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzI6MDJdICAgZ2ZuOiAwMDAwNDI3MCAgbWZuOiAwMDAwNDI3MA0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMjowMl0gICBnZm46IDAwMDA0MjcxICBtZm46IDAwMDA0MjcxDQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjAyXSAgIGdmbjogMDAwMDQyNzIgIG1mbjogMDAwMDQy
+NzINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDJdICAgZ2ZuOiAwMDAwNDI3MyAgbWZu
+OiAwMDAwNDI3Mw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowMl0gICBnZm46IDAwMDA0
+Mjc0ICBtZm46IDAwMDA0Mjc0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjAyXSAgIGdm
+bjogMDAwMDQyNzUgIG1mbjogMDAwMDQyNzUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
+MDJdICAgZ2ZuOiAwMDAwNDI3NiAgbWZuOiAwMDAwNDI3Ng0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMjowMl0gICBnZm46IDAwMDA0Mjc3ICBtZm46IDAwMDA0Mjc3DQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMyOjAyXSAgIGdmbjogMDAwMDQyNzggIG1mbjogMDAwMDQyNzgNCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDJdICAgZ2ZuOiAwMDAwNDI3OSAgbWZuOiAwMDAw
+NDI3OQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowM10gICBnZm46IDAwMDA0MjdhICBt
+Zm46IDAwMDA0MjdhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjAzXSAgIGdmbjogMDAw
+MDQyN2IgIG1mbjogMDAwMDQyN2INCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDNdICAg
+Z2ZuOiAwMDAwNDI3YyAgbWZuOiAwMDAwNDI3Yw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+MjowM10gICBnZm46IDAwMDA0MjdkICBtZm46IDAwMDA0MjdkDQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMyOjAzXSAgIGdmbjogMDAwMDQyN2UgIG1mbjogMDAwMDQyN2UNCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzI6MDNdICAgZ2ZuOiAwMDAwNDI3ZiAgbWZuOiAwMDAwNDI3Zg0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowM10gICBnZm46IDAwMDA0MjgwICBtZm46IDAw
+MDA0MjgwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjAzXSAgIGdmbjogMDAwMDQyODEg
+IG1mbjogMDAwMDQyODENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDNdICAgZ2ZuOiAw
+MDAwNDI4MiAgbWZuOiAwMDAwNDI4Mg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowM10g
+ICBnZm46IDAwMDA0MjgzICBtZm46IDAwMDA0MjgzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMyOjAzXSAgIGdmbjogMDAwMDQyODQgIG1mbjogMDAwMDQyODQNCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzI6MDNdICAgZ2ZuOiAwMDAwNDI4NSAgbWZuOiAwMDAwNDI4NQ0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMjowM10gICBnZm46IDAwMDA0Mjg2ICBtZm46IDAwMDA0Mjg2
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjAzXSAgIGdmbjogMDAwMDQyODcgIG1mbjog
+MDAwMDQyODcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDNdICAgZ2ZuOiAwMDAwNDI4
+OCAgbWZuOiAwMDAwNDI4OA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowM10gICBnZm46
+IDAwMDA0Mjg5ICBtZm46IDAwMDA0Mjg5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjAz
+XSAgIGdmbjogMDAwMDQyOGEgIG1mbjogMDAwMDQyOGENCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzI6MDNdICAgZ2ZuOiAwMDAwNDI4YiAgbWZuOiAwMDAwNDI4Yg0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMjowM10gICBnZm46IDAwMDA0MjhjICBtZm46IDAwMDA0MjhjDQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjAzXSAgIGdmbjogMDAwMDQyOGQgIG1mbjogMDAwMDQy
+OGQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDNdICAgZ2ZuOiAwMDAwNDI4ZSAgbWZu
+OiAwMDAwNDI4ZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowM10gICBnZm46IDAwMDA0
+MjhmICBtZm46IDAwMDA0MjhmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjAzXSAgIGdm
+bjogMDAwMDQyOTAgIG1mbjogMDAwMDQyOTANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
+MDNdICAgZ2ZuOiAwMDAwNDI5MSAgbWZuOiAwMDAwNDI5MQ0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMjowM10gICBnZm46IDAwMDA0MjkyICBtZm46IDAwMDA0MjkyDQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMyOjAzXSAgIGdmbjogMDAwMDQyOTMgIG1mbjogMDAwMDQyOTMNCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDNdICAgZ2ZuOiAwMDAwNDI5NCAgbWZuOiAwMDAw
+NDI5NA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowM10gICBnZm46IDAwMDA0Mjk1ICBt
+Zm46IDAwMDA0Mjk1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjAzXSAgIGdmbjogMDAw
+MDQyOTYgIG1mbjogMDAwMDQyOTYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDNdICAg
+Z2ZuOiAwMDAwNDI5NyAgbWZuOiAwMDAwNDI5Nw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+MjowM10gICBnZm46IDAwMDA0Mjk4ICBtZm46IDAwMDA0Mjk4DQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMyOjAzXSAgIGdmbjogMDAwMDQyOTkgIG1mbjogMDAwMDQyOTkNCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzI6MDNdICAgZ2ZuOiAwMDAwNDI5YSAgbWZuOiAwMDAwNDI5YQ0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowM10gICBnZm46IDAwMDA0MjliICBtZm46IDAw
+MDA0MjliDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjAzXSAgIGdmbjogMDAwMDQyOWMg
+IG1mbjogMDAwMDQyOWMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDNdICAgZ2ZuOiAw
+MDAwNDI5ZCAgbWZuOiAwMDAwNDI5ZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowM10g
+ICBnZm46IDAwMDA0MjllICBtZm46IDAwMDA0MjllDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMyOjAzXSAgIGdmbjogMDAwMDQyOWYgIG1mbjogMDAwMDQyOWYNCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzI6MDNdICAgZ2ZuOiAwMDAwNDJhMCAgbWZuOiAwMDAwNDJhMA0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMjowM10gICBnZm46IDAwMDA0MmExICBtZm46IDAwMDA0MmEx
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjAzXSAgIGdmbjogMDAwMDQyYTIgIG1mbjog
+MDAwMDQyYTINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDNdICAgZ2ZuOiAwMDAwNDJh
+MyAgbWZuOiAwMDAwNDJhMw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowM10gICBnZm46
+IDAwMDA0MmE0ICBtZm46IDAwMDA0MmE0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjAz
+XSAgIGdmbjogMDAwMDQyYTUgIG1mbjogMDAwMDQyYTUNCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzI6MDNdICAgZ2ZuOiAwMDAwNDJhNiAgbWZuOiAwMDAwNDJhNg0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMjowM10gICBnZm46IDAwMDA0MmE3ICBtZm46IDAwMDA0MmE3DQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjAzXSAgIGdmbjogMDAwMDQyYTggIG1mbjogMDAwMDQy
+YTgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDNdICAgZ2ZuOiAwMDAwNDJhOSAgbWZu
+OiAwMDAwNDJhOQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowM10gICBnZm46IDAwMDA0
+MmFhICBtZm46IDAwMDA0MmFhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjAzXSAgIGdm
+bjogMDAwMDQyYWIgIG1mbjogMDAwMDQyYWINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
+MDNdICAgZ2ZuOiAwMDAwNDJhYyAgbWZuOiAwMDAwNDJhYw0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMjowM10gICBnZm46IDAwMDA0MmFkICBtZm46IDAwMDA0MmFkDQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMyOjAzXSAgIGdmbjogMDAwMDQyYWUgIG1mbjogMDAwMDQyYWUNCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDNdICAgZ2ZuOiAwMDAwNDJhZiAgbWZuOiAwMDAw
+NDJhZg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowM10gICBnZm46IDAwMDA0MmIwICBt
+Zm46IDAwMDA0MmIwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjAzXSAgIGdmbjogMDAw
+MDQyYjEgIG1mbjogMDAwMDQyYjENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDNdICAg
+Z2ZuOiAwMDAwNDJiMiAgbWZuOiAwMDAwNDJiMg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+MjowM10gICBnZm46IDAwMDA0MmIzICBtZm46IDAwMDA0MmIzDQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMyOjAzXSAgIGdmbjogMDAwMDQyYjQgIG1mbjogMDAwMDQyYjQNCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzI6MDNdICAgZ2ZuOiAwMDAwNDJiNSAgbWZuOiAwMDAwNDJiNQ0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowM10gICBnZm46IDAwMDA0MmI2ICBtZm46IDAw
+MDA0MmI2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjAzXSAgIGdmbjogMDAwMDQyYjcg
+IG1mbjogMDAwMDQyYjcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDNdICAgZ2ZuOiAw
+MDAwNDJiOCAgbWZuOiAwMDAwNDJiOA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowM10g
+ICBnZm46IDAwMDA0MmI5ICBtZm46IDAwMDA0MmI5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMyOjA0XSAgIGdmbjogMDAwMDQyYmEgIG1mbjogMDAwMDQyYmENCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzI6MDRdICAgZ2ZuOiAwMDAwNDJiYiAgbWZuOiAwMDAwNDJiYg0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMjowNF0gICBnZm46IDAwMDA0MmJjICBtZm46IDAwMDA0MmJj
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA0XSAgIGdmbjogMDAwMDQyYmQgIG1mbjog
+MDAwMDQyYmQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDRdICAgZ2ZuOiAwMDAwNDJi
+ZSAgbWZuOiAwMDAwNDJiZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowNF0gICBnZm46
+IDAwMDA0MmJmICBtZm46IDAwMDA0MmJmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA0
+XSAgIGdmbjogMDAwMDQyYzAgIG1mbjogMDAwMDQyYzANCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzI6MDRdICAgZ2ZuOiAwMDAwNDJjMSAgbWZuOiAwMDAwNDJjMQ0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMjowNF0gICBnZm46IDAwMDA0MmMyICBtZm46IDAwMDA0MmMyDQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA0XSAgIGdmbjogMDAwMDQyYzMgIG1mbjogMDAwMDQy
+YzMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDRdICAgZ2ZuOiAwMDAwNDJjNCAgbWZu
+OiAwMDAwNDJjNA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowNF0gICBnZm46IDAwMDA0
+MmM1ICBtZm46IDAwMDA0MmM1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA0XSAgIGdm
+bjogMDAwMDQyYzYgIG1mbjogMDAwMDQyYzYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
+MDRdICAgZ2ZuOiAwMDAwNDJjNyAgbWZuOiAwMDAwNDJjNw0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMjowNF0gICBnZm46IDAwMDA0MmM4ICBtZm46IDAwMDA0MmM4DQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMyOjA0XSAgIGdmbjogMDAwMDQyYzkgIG1mbjogMDAwMDQyYzkNCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDRdICAgZ2ZuOiAwMDAwNDJjYSAgbWZuOiAwMDAw
+NDJjYQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowNF0gICBnZm46IDAwMDA0MmNiICBt
+Zm46IDAwMDA0MmNiDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA0XSAgIGdmbjogMDAw
+MDQyY2MgIG1mbjogMDAwMDQyY2MNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDRdICAg
+Z2ZuOiAwMDAwNDJjZCAgbWZuOiAwMDAwNDJjZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+MjowNF0gICBnZm46IDAwMDA0MmNlICBtZm46IDAwMDA0MmNlDQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMyOjA0XSAgIGdmbjogMDAwMDQyY2YgIG1mbjogMDAwMDQyY2YNCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzI6MDRdICAgZ2ZuOiAwMDAwNDJkMCAgbWZuOiAwMDAwNDJkMA0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowNF0gICBnZm46IDAwMDA0MmQxICBtZm46IDAw
+MDA0MmQxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA0XSAgIGdmbjogMDAwMDQyZDIg
+IG1mbjogMDAwMDQyZDINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDRdICAgZ2ZuOiAw
+MDAwNDJkMyAgbWZuOiAwMDAwNDJkMw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowNF0g
+ICBnZm46IDAwMDA0MmQ0ICBtZm46IDAwMDA0MmQ0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMyOjA0XSAgIGdmbjogMDAwMDQyZDUgIG1mbjogMDAwMDQyZDUNCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzI6MDRdICAgZ2ZuOiAwMDAwNDJkNiAgbWZuOiAwMDAwNDJkNg0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMjowNF0gICBnZm46IDAwMDA0MmQ3ICBtZm46IDAwMDA0MmQ3
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA0XSAgIGdmbjogMDAwMDQyZDggIG1mbjog
+MDAwMDQyZDgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDRdICAgZ2ZuOiAwMDAwNDJk
+OSAgbWZuOiAwMDAwNDJkOQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowNF0gICBnZm46
+IDAwMDA0MmRhICBtZm46IDAwMDA0MmRhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA0
+XSAgIGdmbjogMDAwMDQyZGIgIG1mbjogMDAwMDQyZGINCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzI6MDRdICAgZ2ZuOiAwMDAwNDJkYyAgbWZuOiAwMDAwNDJkYw0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMjowNF0gICBnZm46IDAwMDA0MmRkICBtZm46IDAwMDA0MmRkDQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA0XSAgIGdmbjogMDAwMDQyZGUgIG1mbjogMDAwMDQy
+ZGUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDRdICAgZ2ZuOiAwMDAwNDJkZiAgbWZu
+OiAwMDAwNDJkZg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowNF0gICBnZm46IDAwMDA0
+MmUwICBtZm46IDAwMDA0MmUwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA0XSAgIGdm
+bjogMDAwMDQyZTEgIG1mbjogMDAwMDQyZTENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
+MDRdICAgZ2ZuOiAwMDAwNDJlMiAgbWZuOiAwMDAwNDJlMg0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMjowNF0gICBnZm46IDAwMDA0MmUzICBtZm46IDAwMDA0MmUzDQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMyOjA0XSAgIGdmbjogMDAwMDQyZTQgIG1mbjogMDAwMDQyZTQNCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDRdICAgZ2ZuOiAwMDAwNDJlNSAgbWZuOiAwMDAw
+NDJlNQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowNF0gICBnZm46IDAwMDA0MmU2ICBt
+Zm46IDAwMDA0MmU2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA0XSAgIGdmbjogMDAw
+MDQyZTcgIG1mbjogMDAwMDQyZTcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDRdICAg
+Z2ZuOiAwMDAwNDJlOCAgbWZuOiAwMDAwNDJlOA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+MjowNF0gICBnZm46IDAwMDA0MmU5ICBtZm46IDAwMDA0MmU5DQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMyOjA0XSAgIGdmbjogMDAwMDQyZWEgIG1mbjogMDAwMDQyZWENCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzI6MDRdICAgZ2ZuOiAwMDAwNDJlYiAgbWZuOiAwMDAwNDJlYg0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowNF0gICBnZm46IDAwMDA0MmVjICBtZm46IDAw
+MDA0MmVjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA0XSAgIGdmbjogMDAwMDQyZWQg
+IG1mbjogMDAwMDQyZWQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDRdICAgZ2ZuOiAw
+MDAwNDJlZSAgbWZuOiAwMDAwNDJlZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowNF0g
+ICBnZm46IDAwMDA0MmVmICBtZm46IDAwMDA0MmVmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMyOjA0XSAgIGdmbjogMDAwMDQyZjAgIG1mbjogMDAwMDQyZjANCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzI6MDRdICAgZ2ZuOiAwMDAwNDJmMSAgbWZuOiAwMDAwNDJmMQ0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMjowNF0gICBnZm46IDAwMDA0MmYyICBtZm46IDAwMDA0MmYy
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA0XSAgIGdmbjogMDAwMDQyZjMgIG1mbjog
+MDAwMDQyZjMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDRdICAgZ2ZuOiAwMDAwNDJm
+NCAgbWZuOiAwMDAwNDJmNA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowNF0gICBnZm46
+IDAwMDA0MmY1ICBtZm46IDAwMDA0MmY1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA0
+XSAgIGdmbjogMDAwMDQyZjYgIG1mbjogMDAwMDQyZjYNCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzI6MDRdICAgZ2ZuOiAwMDAwNDJmNyAgbWZuOiAwMDAwNDJmNw0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMjowNF0gICBnZm46IDAwMDA0MmY4ICBtZm46IDAwMDA0MmY4DQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA0XSAgIGdmbjogMDAwMDQyZjkgIG1mbjogMDAwMDQy
+ZjkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDRdICAgZ2ZuOiAwMDAwNDJmYSAgbWZu
+OiAwMDAwNDJmYQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowNV0gICBnZm46IDAwMDA0
+MmZiICBtZm46IDAwMDA0MmZiDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA1XSAgIGdm
+bjogMDAwMDQyZmMgIG1mbjogMDAwMDQyZmMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
+MDVdICAgZ2ZuOiAwMDAwNDJmZCAgbWZuOiAwMDAwNDJmZA0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMjowNV0gICBnZm46IDAwMDA0MmZlICBtZm46IDAwMDA0MmZlDQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMyOjA1XSAgIGdmbjogMDAwMDQyZmYgIG1mbjogMDAwMDQyZmYNCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDVdICAgZ2ZuOiAwMDAwNDMwMCAgbWZuOiAwMDAw
+NDMwMA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowNV0gICBnZm46IDAwMDA0MzAxICBt
+Zm46IDAwMDA0MzAxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA1XSAgIGdmbjogMDAw
+MDQzMDIgIG1mbjogMDAwMDQzMDINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDVdICAg
+Z2ZuOiAwMDAwNDMwMyAgbWZuOiAwMDAwNDMwMw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+MjowNV0gICBnZm46IDAwMDA0MzA0ICBtZm46IDAwMDA0MzA0DQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMyOjA1XSAgIGdmbjogMDAwMDQzMDUgIG1mbjogMDAwMDQzMDUNCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzI6MDVdICAgZ2ZuOiAwMDAwNDMwNiAgbWZuOiAwMDAwNDMwNg0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowNV0gICBnZm46IDAwMDA0MzA3ICBtZm46IDAw
+MDA0MzA3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA1XSAgIGdmbjogMDAwMDQzMDgg
+IG1mbjogMDAwMDQzMDgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDVdICAgZ2ZuOiAw
+MDAwNDMwOSAgbWZuOiAwMDAwNDMwOQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowNV0g
+ICBnZm46IDAwMDA0MzBhICBtZm46IDAwMDA0MzBhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMyOjA1XSAgIGdmbjogMDAwMDQzMGIgIG1mbjogMDAwMDQzMGINCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzI6MDVdICAgZ2ZuOiAwMDAwNDMwYyAgbWZuOiAwMDAwNDMwYw0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMjowNV0gICBnZm46IDAwMDA0MzBkICBtZm46IDAwMDA0MzBk
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA1XSAgIGdmbjogMDAwMDQzMGUgIG1mbjog
+MDAwMDQzMGUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDVdICAgZ2ZuOiAwMDAwNDMw
+ZiAgbWZuOiAwMDAwNDMwZg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowNV0gICBnZm46
+IDAwMDA0MzEwICBtZm46IDAwMDA0MzEwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA1
+XSAgIGdmbjogMDAwMDQzMTEgIG1mbjogMDAwMDQzMTENCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzI6MDVdICAgZ2ZuOiAwMDAwNDMxMiAgbWZuOiAwMDAwNDMxMg0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMjowNV0gICBnZm46IDAwMDA0MzEzICBtZm46IDAwMDA0MzEzDQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA1XSAgIGdmbjogMDAwMDQzMTQgIG1mbjogMDAwMDQz
+MTQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDVdICAgZ2ZuOiAwMDAwNDMxNSAgbWZu
+OiAwMDAwNDMxNQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowNV0gICBnZm46IDAwMDA0
+MzE2ICBtZm46IDAwMDA0MzE2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA1XSAgIGdm
+bjogMDAwMDQzMTcgIG1mbjogMDAwMDQzMTcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
+MDVdICAgZ2ZuOiAwMDAwNDMxOCAgbWZuOiAwMDAwNDMxOA0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMjowNV0gICBnZm46IDAwMDA0MzE5ICBtZm46IDAwMDA0MzE5DQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMyOjA1XSAgIGdmbjogMDAwMDQzMWEgIG1mbjogMDAwMDQzMWENCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDVdICAgZ2ZuOiAwMDAwNDMxYiAgbWZuOiAwMDAw
+NDMxYg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowNV0gICBnZm46IDAwMDA0MzFjICBt
+Zm46IDAwMDA0MzFjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA1XSAgIGdmbjogMDAw
+MDQzMWQgIG1mbjogMDAwMDQzMWQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDVdICAg
+Z2ZuOiAwMDAwNDMxZSAgbWZuOiAwMDAwNDMxZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+MjowNV0gICBnZm46IDAwMDA0MzFmICBtZm46IDAwMDA0MzFmDQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMyOjA1XSAgIGdmbjogMDAwMDQzMjAgIG1mbjogMDAwMDQzMjANCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzI6MDVdICAgZ2ZuOiAwMDAwNDMyMSAgbWZuOiAwMDAwNDMyMQ0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowNV0gICBnZm46IDAwMDA0MzIyICBtZm46IDAw
+MDA0MzIyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA1XSAgIGdmbjogMDAwMDQzMjMg
+IG1mbjogMDAwMDQzMjMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDVdICAgZ2ZuOiAw
+MDAwNDMyNCAgbWZuOiAwMDAwNDMyNA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowNV0g
+ICBnZm46IDAwMDA0MzI1ICBtZm46IDAwMDA0MzI1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMyOjA1XSAgIGdmbjogMDAwMDQzMjYgIG1mbjogMDAwMDQzMjYNCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzI6MDVdICAgZ2ZuOiAwMDAwNDMyNyAgbWZuOiAwMDAwNDMyNw0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMjowNV0gICBnZm46IDAwMDA0MzI4ICBtZm46IDAwMDA0MzI4
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA1XSAgIGdmbjogMDAwMDQzMjkgIG1mbjog
+MDAwMDQzMjkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDVdICAgZ2ZuOiAwMDAwNDMy
+YSAgbWZuOiAwMDAwNDMyYQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowNV0gICBnZm46
+IDAwMDA0MzJiICBtZm46IDAwMDA0MzJiDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA1
+XSAgIGdmbjogMDAwMDQzMmMgIG1mbjogMDAwMDQzMmMNCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzI6MDVdICAgZ2ZuOiAwMDAwNDMyZCAgbWZuOiAwMDAwNDMyZA0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMjowNV0gICBnZm46IDAwMDA0MzJlICBtZm46IDAwMDA0MzJlDQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA1XSAgIGdmbjogMDAwMDQzMmYgIG1mbjogMDAwMDQz
+MmYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDVdICAgZ2ZuOiAwMDAwNDMzMCAgbWZu
+OiAwMDAwNDMzMA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowNV0gICBnZm46IDAwMDA0
+MzMxICBtZm46IDAwMDA0MzMxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA1XSAgIGdm
+bjogMDAwMDQzMzIgIG1mbjogMDAwMDQzMzINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
+MDVdICAgZ2ZuOiAwMDAwNDMzMyAgbWZuOiAwMDAwNDMzMw0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMjowNV0gICBnZm46IDAwMDA0MzM0ICBtZm46IDAwMDA0MzM0DQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMyOjA1XSAgIGdmbjogMDAwMDQzMzUgIG1mbjogMDAwMDQzMzUNCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDVdICAgZ2ZuOiAwMDAwNDMzNiAgbWZuOiAwMDAw
+NDMzNg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowNV0gICBnZm46IDAwMDA0MzM3ICBt
+Zm46IDAwMDA0MzM3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA1XSAgIGdmbjogMDAw
+MDQzMzggIG1mbjogMDAwMDQzMzgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDVdICAg
+Z2ZuOiAwMDAwNDMzOSAgbWZuOiAwMDAwNDMzOQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+MjowNV0gICBnZm46IDAwMDA0MzNhICBtZm46IDAwMDA0MzNhDQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMyOjA2XSAgIGdmbjogMDAwMDQzM2IgIG1mbjogMDAwMDQzM2INCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzI6MDZdICAgZ2ZuOiAwMDAwNDMzYyAgbWZuOiAwMDAwNDMzYw0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowNl0gICBnZm46IDAwMDA0MzNkICBtZm46IDAw
+MDA0MzNkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA2XSAgIGdmbjogMDAwMDQzM2Ug
+IG1mbjogMDAwMDQzM2UNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDZdICAgZ2ZuOiAw
+MDAwNDMzZiAgbWZuOiAwMDAwNDMzZg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowNl0g
+ICBnZm46IDAwMDA0MzQwICBtZm46IDAwMDA0MzQwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMyOjA2XSAgIGdmbjogMDAwMDQzNDEgIG1mbjogMDAwMDQzNDENCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzI6MDZdICAgZ2ZuOiAwMDAwNDM0MiAgbWZuOiAwMDAwNDM0Mg0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMjowNl0gICBnZm46IDAwMDA0MzQzICBtZm46IDAwMDA0MzQz
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA2XSAgIGdmbjogMDAwMDQzNDQgIG1mbjog
+MDAwMDQzNDQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDZdICAgZ2ZuOiAwMDAwNDM0
+NSAgbWZuOiAwMDAwNDM0NQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowNl0gICBnZm46
+IDAwMDA0MzQ2ICBtZm46IDAwMDA0MzQ2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA2
+XSAgIGdmbjogMDAwMDQzNDcgIG1mbjogMDAwMDQzNDcNCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzI6MDZdICAgZ2ZuOiAwMDAwNDM0OCAgbWZuOiAwMDAwNDM0OA0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMjowNl0gICBnZm46IDAwMDA0MzQ5ICBtZm46IDAwMDA0MzQ5DQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA2XSAgIGdmbjogMDAwMDQzNGEgIG1mbjogMDAwMDQz
+NGENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDZdICAgZ2ZuOiAwMDAwNDM0YiAgbWZu
+OiAwMDAwNDM0Yg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowNl0gICBnZm46IDAwMDA0
+MzRjICBtZm46IDAwMDA0MzRjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA2XSAgIGdm
+bjogMDAwMDQzNGQgIG1mbjogMDAwMDQzNGQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
+MDZdICAgZ2ZuOiAwMDAwNDM0ZSAgbWZuOiAwMDAwNDM0ZQ0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMjowNl0gICBnZm46IDAwMDA0MzRmICBtZm46IDAwMDA0MzRmDQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMyOjA2XSAgIGdmbjogMDAwMDQzNTAgIG1mbjogMDAwMDQzNTANCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDZdICAgZ2ZuOiAwMDAwNDM1MSAgbWZuOiAwMDAw
+NDM1MQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowNl0gICBnZm46IDAwMDA0MzUyICBt
+Zm46IDAwMDA0MzUyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA2XSAgIGdmbjogMDAw
+MDQzNTMgIG1mbjogMDAwMDQzNTMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDZdICAg
+Z2ZuOiAwMDAwNDM1NCAgbWZuOiAwMDAwNDM1NA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+MjowNl0gICBnZm46IDAwMDA0MzU1ICBtZm46IDAwMDA0MzU1DQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMyOjA2XSAgIGdmbjogMDAwMDQzNTYgIG1mbjogMDAwMDQzNTYNCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzI6MDZdICAgZ2ZuOiAwMDAwNDM1NyAgbWZuOiAwMDAwNDM1Nw0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowNl0gICBnZm46IDAwMDA0MzU4ICBtZm46IDAw
+MDA0MzU4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA2XSAgIGdmbjogMDAwMDQzNTkg
+IG1mbjogMDAwMDQzNTkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDZdICAgZ2ZuOiAw
+MDAwNDM1YSAgbWZuOiAwMDAwNDM1YQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowNl0g
+ICBnZm46IDAwMDA0MzViICBtZm46IDAwMDA0MzViDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMyOjA2XSAgIGdmbjogMDAwMDQzNWMgIG1mbjogMDAwMDQzNWMNCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzI6MDZdICAgZ2ZuOiAwMDAwNDM1ZCAgbWZuOiAwMDAwNDM1ZA0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMjowNl0gICBnZm46IDAwMDA0MzVlICBtZm46IDAwMDA0MzVl
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA2XSAgIGdmbjogMDAwMDQzNWYgIG1mbjog
+MDAwMDQzNWYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDZdICAgZ2ZuOiAwMDAwNDM2
+MCAgbWZuOiAwMDAwNDM2MA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowNl0gICBnZm46
+IDAwMDA0MzYxICBtZm46IDAwMDA0MzYxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA2
+XSAgIGdmbjogMDAwMDQzNjIgIG1mbjogMDAwMDQzNjINCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzI6MDZdICAgZ2ZuOiAwMDAwNDM2MyAgbWZuOiAwMDAwNDM2Mw0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMjowNl0gICBnZm46IDAwMDA0MzY0ICBtZm46IDAwMDA0MzY0DQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA2XSAgIGdmbjogMDAwMDQzNjUgIG1mbjogMDAwMDQz
+NjUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDZdICAgZ2ZuOiAwMDAwNDM2NiAgbWZu
+OiAwMDAwNDM2Ng0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowNl0gICBnZm46IDAwMDA0
+MzY3ICBtZm46IDAwMDA0MzY3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA2XSAgIGdm
+bjogMDAwMDQzNjggIG1mbjogMDAwMDQzNjgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
+MDZdICAgZ2ZuOiAwMDAwNDM2OSAgbWZuOiAwMDAwNDM2OQ0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMjowNl0gICBnZm46IDAwMDA0MzZhICBtZm46IDAwMDA0MzZhDQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMyOjA2XSAgIGdmbjogMDAwMDQzNmIgIG1mbjogMDAwMDQzNmINCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDZdICAgZ2ZuOiAwMDAwNDM2YyAgbWZuOiAwMDAw
+NDM2Yw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowNl0gICBnZm46IDAwMDA0MzZkICBt
+Zm46IDAwMDA0MzZkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA2XSAgIGdmbjogMDAw
+MDQzNmUgIG1mbjogMDAwMDQzNmUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDZdICAg
+Z2ZuOiAwMDAwNDM2ZiAgbWZuOiAwMDAwNDM2Zg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+MjowNl0gICBnZm46IDAwMDA0MzcwICBtZm46IDAwMDA0MzcwDQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMyOjA2XSAgIGdmbjogMDAwMDQzNzEgIG1mbjogMDAwMDQzNzENCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzI6MDZdICAgZ2ZuOiAwMDAwNDM3MiAgbWZuOiAwMDAwNDM3Mg0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowNl0gICBnZm46IDAwMDA0MzczICBtZm46IDAw
+MDA0MzczDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA2XSAgIGdmbjogMDAwMDQzNzQg
+IG1mbjogMDAwMDQzNzQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDZdICAgZ2ZuOiAw
+MDAwNDM3NSAgbWZuOiAwMDAwNDM3NQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowNl0g
+ICBnZm46IDAwMDA0Mzc2ICBtZm46IDAwMDA0Mzc2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMyOjA2XSAgIGdmbjogMDAwMDQzNzcgIG1mbjogMDAwMDQzNzcNCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzI6MDZdICAgZ2ZuOiAwMDAwNDM3OCAgbWZuOiAwMDAwNDM3OA0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMjowNl0gICBnZm46IDAwMDA0Mzc5ICBtZm46IDAwMDA0Mzc5
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA2XSAgIGdmbjogMDAwMDQzN2EgIG1mbjog
+MDAwMDQzN2ENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDddICAgZ2ZuOiAwMDAwNDM3
+YiAgbWZuOiAwMDAwNDM3Yg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowN10gICBnZm46
+IDAwMDA0MzdjICBtZm46IDAwMDA0MzdjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA3
+XSAgIGdmbjogMDAwMDQzN2QgIG1mbjogMDAwMDQzN2QNCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzI6MDddICAgZ2ZuOiAwMDAwNDM3ZSAgbWZuOiAwMDAwNDM3ZQ0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMjowN10gICBnZm46IDAwMDA0MzdmICBtZm46IDAwMDA0MzdmDQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA3XSAgIGdmbjogMDAwMDQzODAgIG1mbjogMDAwMDQz
+ODANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDddICAgZ2ZuOiAwMDAwNDM4MSAgbWZu
+OiAwMDAwNDM4MQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowN10gICBnZm46IDAwMDA0
+MzgyICBtZm46IDAwMDA0MzgyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA3XSAgIGdm
+bjogMDAwMDQzODMgIG1mbjogMDAwMDQzODMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
+MDddICAgZ2ZuOiAwMDAwNDM4NCAgbWZuOiAwMDAwNDM4NA0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMjowN10gICBnZm46IDAwMDA0Mzg1ICBtZm46IDAwMDA0Mzg1DQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMyOjA3XSAgIGdmbjogMDAwMDQzODYgIG1mbjogMDAwMDQzODYNCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDddICAgZ2ZuOiAwMDAwNDM4NyAgbWZuOiAwMDAw
+NDM4Nw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowN10gICBnZm46IDAwMDA0Mzg4ICBt
+Zm46IDAwMDA0Mzg4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA3XSAgIGdmbjogMDAw
+MDQzODkgIG1mbjogMDAwMDQzODkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDddICAg
+Z2ZuOiAwMDAwNDM4YSAgbWZuOiAwMDAwNDM4YQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+MjowN10gICBnZm46IDAwMDA0MzhiICBtZm46IDAwMDA0MzhiDQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMyOjA3XSAgIGdmbjogMDAwMDQzOGMgIG1mbjogMDAwMDQzOGMNCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzI6MDddICAgZ2ZuOiAwMDAwNDM4ZCAgbWZuOiAwMDAwNDM4ZA0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowN10gICBnZm46IDAwMDA0MzhlICBtZm46IDAw
+MDA0MzhlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA3XSAgIGdmbjogMDAwMDQzOGYg
+IG1mbjogMDAwMDQzOGYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDddICAgZ2ZuOiAw
+MDAwNDM5MCAgbWZuOiAwMDAwNDM5MA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowN10g
+ICBnZm46IDAwMDA0MzkxICBtZm46IDAwMDA0MzkxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMyOjA3XSAgIGdmbjogMDAwMDQzOTIgIG1mbjogMDAwMDQzOTINCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzI6MDddICAgZ2ZuOiAwMDAwNDM5MyAgbWZuOiAwMDAwNDM5Mw0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMjowN10gICBnZm46IDAwMDA0Mzk0ICBtZm46IDAwMDA0Mzk0
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA3XSAgIGdmbjogMDAwMDQzOTUgIG1mbjog
+MDAwMDQzOTUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDddICAgZ2ZuOiAwMDAwNDM5
+NiAgbWZuOiAwMDAwNDM5Ng0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowN10gICBnZm46
+IDAwMDA0Mzk3ICBtZm46IDAwMDA0Mzk3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA3
+XSAgIGdmbjogMDAwMDQzOTggIG1mbjogMDAwMDQzOTgNCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzI6MDddICAgZ2ZuOiAwMDAwNDM5OSAgbWZuOiAwMDAwNDM5OQ0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMjowN10gICBnZm46IDAwMDA0MzlhICBtZm46IDAwMDA0MzlhDQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA3XSAgIGdmbjogMDAwMDQzOWIgIG1mbjogMDAwMDQz
+OWINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDddICAgZ2ZuOiAwMDAwNDM5YyAgbWZu
+OiAwMDAwNDM5Yw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowN10gICBnZm46IDAwMDA0
+MzlkICBtZm46IDAwMDA0MzlkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA3XSAgIGdm
+bjogMDAwMDQzOWUgIG1mbjogMDAwMDQzOWUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
+MDddICAgZ2ZuOiAwMDAwNDM5ZiAgbWZuOiAwMDAwNDM5Zg0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMjowN10gICBnZm46IDAwMDA0M2EwICBtZm46IDAwMDA0M2EwDQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMyOjA3XSAgIGdmbjogMDAwMDQzYTEgIG1mbjogMDAwMDQzYTENCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDddICAgZ2ZuOiAwMDAwNDNhMiAgbWZuOiAwMDAw
+NDNhMg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowN10gICBnZm46IDAwMDA0M2EzICBt
+Zm46IDAwMDA0M2EzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA3XSAgIGdmbjogMDAw
+MDQzYTQgIG1mbjogMDAwMDQzYTQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDddICAg
+Z2ZuOiAwMDAwNDNhNSAgbWZuOiAwMDAwNDNhNQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+MjowN10gICBnZm46IDAwMDA0M2E2ICBtZm46IDAwMDA0M2E2DQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMyOjA3XSAgIGdmbjogMDAwMDQzYTcgIG1mbjogMDAwMDQzYTcNCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzI6MDddICAgZ2ZuOiAwMDAwNDNhOCAgbWZuOiAwMDAwNDNhOA0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowN10gICBnZm46IDAwMDA0M2E5ICBtZm46IDAw
+MDA0M2E5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA3XSAgIGdmbjogMDAwMDQzYWEg
+IG1mbjogMDAwMDQzYWENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDddICAgZ2ZuOiAw
+MDAwNDNhYiAgbWZuOiAwMDAwNDNhYg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowN10g
+ICBnZm46IDAwMDA0M2FjICBtZm46IDAwMDA0M2FjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMyOjA3XSAgIGdmbjogMDAwMDQzYWQgIG1mbjogMDAwMDQzYWQNCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzI6MDddICAgZ2ZuOiAwMDAwNDNhZSAgbWZuOiAwMDAwNDNhZQ0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMjowN10gICBnZm46IDAwMDA0M2FmICBtZm46IDAwMDA0M2Fm
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA3XSAgIGdmbjogMDAwMDQzYjAgIG1mbjog
+MDAwMDQzYjANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDddICAgZ2ZuOiAwMDAwNDNi
+MSAgbWZuOiAwMDAwNDNiMQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowN10gICBnZm46
+IDAwMDA0M2IyICBtZm46IDAwMDA0M2IyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA3
+XSAgIGdmbjogMDAwMDQzYjMgIG1mbjogMDAwMDQzYjMNCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzI6MDddICAgZ2ZuOiAwMDAwNDNiNCAgbWZuOiAwMDAwNDNiNA0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMjowN10gICBnZm46IDAwMDA0M2I1ICBtZm46IDAwMDA0M2I1DQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA3XSAgIGdmbjogMDAwMDQzYjYgIG1mbjogMDAwMDQz
+YjYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDddICAgZ2ZuOiAwMDAwNDNiNyAgbWZu
+OiAwMDAwNDNiNw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowN10gICBnZm46IDAwMDA0
+M2I4ICBtZm46IDAwMDA0M2I4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA3XSAgIGdm
+bjogMDAwMDQzYjkgIG1mbjogMDAwMDQzYjkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
+MDddICAgZ2ZuOiAwMDAwNDNiYSAgbWZuOiAwMDAwNDNiYQ0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMjowOF0gICBnZm46IDAwMDA0M2JiICBtZm46IDAwMDA0M2JiDQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMyOjA4XSAgIGdmbjogMDAwMDQzYmMgIG1mbjogMDAwMDQzYmMNCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDhdICAgZ2ZuOiAwMDAwNDNiZCAgbWZuOiAwMDAw
+NDNiZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowOF0gICBnZm46IDAwMDA0M2JlICBt
+Zm46IDAwMDA0M2JlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA4XSAgIGdmbjogMDAw
+MDQzYmYgIG1mbjogMDAwMDQzYmYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDhdICAg
+Z2ZuOiAwMDAwNDNjMCAgbWZuOiAwMDAwNDNjMA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+MjowOF0gICBnZm46IDAwMDA0M2MxICBtZm46IDAwMDA0M2MxDQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMyOjA4XSAgIGdmbjogMDAwMDQzYzIgIG1mbjogMDAwMDQzYzINCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzI6MDhdICAgZ2ZuOiAwMDAwNDNjMyAgbWZuOiAwMDAwNDNjMw0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowOF0gICBnZm46IDAwMDA0M2M0ICBtZm46IDAw
+MDA0M2M0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA4XSAgIGdmbjogMDAwMDQzYzUg
+IG1mbjogMDAwMDQzYzUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDhdICAgZ2ZuOiAw
+MDAwNDNjNiAgbWZuOiAwMDAwNDNjNg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowOF0g
+ICBnZm46IDAwMDA0M2M3ICBtZm46IDAwMDA0M2M3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMyOjA4XSAgIGdmbjogMDAwMDQzYzggIG1mbjogMDAwMDQzYzgNCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzI6MDhdICAgZ2ZuOiAwMDAwNDNjOSAgbWZuOiAwMDAwNDNjOQ0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMjowOF0gICBnZm46IDAwMDA0M2NhICBtZm46IDAwMDA0M2Nh
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA4XSAgIGdmbjogMDAwMDQzY2IgIG1mbjog
+MDAwMDQzY2INCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDhdICAgZ2ZuOiAwMDAwNDNj
+YyAgbWZuOiAwMDAwNDNjYw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowOF0gICBnZm46
+IDAwMDA0M2NkICBtZm46IDAwMDA0M2NkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA4
+XSAgIGdmbjogMDAwMDQzY2UgIG1mbjogMDAwMDQzY2UNCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzI6MDhdICAgZ2ZuOiAwMDAwNDNjZiAgbWZuOiAwMDAwNDNjZg0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMjowOF0gICBnZm46IDAwMDA0M2QwICBtZm46IDAwMDA0M2QwDQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA4XSAgIGdmbjogMDAwMDQzZDEgIG1mbjogMDAwMDQz
+ZDENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDhdICAgZ2ZuOiAwMDAwNDNkMiAgbWZu
+OiAwMDAwNDNkMg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowOF0gICBnZm46IDAwMDA0
+M2QzICBtZm46IDAwMDA0M2QzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA4XSAgIGdm
+bjogMDAwMDQzZDQgIG1mbjogMDAwMDQzZDQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
+MDhdICAgZ2ZuOiAwMDAwNDNkNSAgbWZuOiAwMDAwNDNkNQ0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMjowOF0gICBnZm46IDAwMDA0M2Q2ICBtZm46IDAwMDA0M2Q2DQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMyOjA4XSAgIGdmbjogMDAwMDQzZDcgIG1mbjogMDAwMDQzZDcNCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDhdICAgZ2ZuOiAwMDAwNDNkOCAgbWZuOiAwMDAw
+NDNkOA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowOF0gICBnZm46IDAwMDA0M2Q5ICBt
+Zm46IDAwMDA0M2Q5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA4XSAgIGdmbjogMDAw
+MDQzZGEgIG1mbjogMDAwMDQzZGENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDhdICAg
+Z2ZuOiAwMDAwNDNkYiAgbWZuOiAwMDAwNDNkYg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+MjowOF0gICBnZm46IDAwMDA0M2RjICBtZm46IDAwMDA0M2RjDQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMyOjA4XSAgIGdmbjogMDAwMDQzZGQgIG1mbjogMDAwMDQzZGQNCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzI6MDhdICAgZ2ZuOiAwMDAwNDNkZSAgbWZuOiAwMDAwNDNkZQ0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowOF0gICBnZm46IDAwMDA0M2RmICBtZm46IDAw
+MDA0M2RmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA4XSAgIGdmbjogMDAwMDQzZTAg
+IG1mbjogMDAwMDQzZTANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDhdICAgZ2ZuOiAw
+MDAwNDNlMSAgbWZuOiAwMDAwNDNlMQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowOF0g
+ICBnZm46IDAwMDA0M2UyICBtZm46IDAwMDA0M2UyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMyOjA4XSAgIGdmbjogMDAwMDQzZTMgIG1mbjogMDAwMDQzZTMNCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzI6MDhdICAgZ2ZuOiAwMDAwNDNlNCAgbWZuOiAwMDAwNDNlNA0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMjowOF0gICBnZm46IDAwMDA0M2U1ICBtZm46IDAwMDA0M2U1
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA4XSAgIGdmbjogMDAwMDQzZTYgIG1mbjog
+MDAwMDQzZTYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDhdICAgZ2ZuOiAwMDAwNDNl
+NyAgbWZuOiAwMDAwNDNlNw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowOF0gICBnZm46
+IDAwMDA0M2U4ICBtZm46IDAwMDA0M2U4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA4
+XSAgIGdmbjogMDAwMDQzZTkgIG1mbjogMDAwMDQzZTkNCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzI6MDhdICAgZ2ZuOiAwMDAwNDNlYSAgbWZuOiAwMDAwNDNlYQ0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMjowOF0gICBnZm46IDAwMDA0M2ViICBtZm46IDAwMDA0M2ViDQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA4XSAgIGdmbjogMDAwMDQzZWMgIG1mbjogMDAwMDQz
+ZWMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDhdICAgZ2ZuOiAwMDAwNDNlZCAgbWZu
+OiAwMDAwNDNlZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowOF0gICBnZm46IDAwMDA0
+M2VlICBtZm46IDAwMDA0M2VlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA4XSAgIGdm
+bjogMDAwMDQzZWYgIG1mbjogMDAwMDQzZWYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
+MDhdICAgZ2ZuOiAwMDAwNDNmMCAgbWZuOiAwMDAwNDNmMA0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMjowOF0gICBnZm46IDAwMDA0M2YxICBtZm46IDAwMDA0M2YxDQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMyOjA4XSAgIGdmbjogMDAwMDQzZjIgIG1mbjogMDAwMDQzZjINCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDhdICAgZ2ZuOiAwMDAwNDNmMyAgbWZuOiAwMDAw
+NDNmMw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowOF0gICBnZm46IDAwMDA0M2Y0ICBt
+Zm46IDAwMDA0M2Y0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA4XSAgIGdmbjogMDAw
+MDQzZjUgIG1mbjogMDAwMDQzZjUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDhdICAg
+Z2ZuOiAwMDAwNDNmNiAgbWZuOiAwMDAwNDNmNg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+MjowOF0gICBnZm46IDAwMDA0M2Y3ICBtZm46IDAwMDA0M2Y3DQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMyOjA4XSAgIGdmbjogMDAwMDQzZjggIG1mbjogMDAwMDQzZjgNCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzI6MDhdICAgZ2ZuOiAwMDAwNDNmOSAgbWZuOiAwMDAwNDNmOQ0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowOF0gICBnZm46IDAwMDA0M2ZhICBtZm46IDAw
+MDA0M2ZhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA5XSAgIGdmbjogMDAwMDQzZmIg
+IG1mbjogMDAwMDQzZmINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDldICAgZ2ZuOiAw
+MDAwNDNmYyAgbWZuOiAwMDAwNDNmYw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowOV0g
+ICBnZm46IDAwMDA0M2ZkICBtZm46IDAwMDA0M2ZkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMyOjA5XSAgIGdmbjogMDAwMDQzZmUgIG1mbjogMDAwMDQzZmUNCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzI6MDldICAgZ2ZuOiAwMDAwNDNmZiAgbWZuOiAwMDAwNDNmZg0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMjowOV0gICBnZm46IDAwMDA0NDAwICBtZm46IDAwMDA0NDAw
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA5XSAgIGdmbjogMDAwMDQ0MDEgIG1mbjog
+MDAwMDQ0MDENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDldICAgZ2ZuOiAwMDAwNDQw
+MiAgbWZuOiAwMDAwNDQwMg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowOV0gICBnZm46
+IDAwMDA0NDAzICBtZm46IDAwMDA0NDAzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA5
+XSAgIGdmbjogMDAwMDQ0MDQgIG1mbjogMDAwMDQ0MDQNCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzI6MDldICAgZ2ZuOiAwMDAwNDQwNSAgbWZuOiAwMDAwNDQwNQ0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMjowOV0gICBnZm46IDAwMDA0NDA2ICBtZm46IDAwMDA0NDA2DQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA5XSAgIGdmbjogMDAwMDQ0MDcgIG1mbjogMDAwMDQ0
+MDcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDldICAgZ2ZuOiAwMDAwNDQwOCAgbWZu
+OiAwMDAwNDQwOA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowOV0gICBnZm46IDAwMDA0
+NDA5ICBtZm46IDAwMDA0NDA5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA5XSAgIGdm
+bjogMDAwMDQ0MGEgIG1mbjogMDAwMDQ0MGENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
+MDldICAgZ2ZuOiAwMDAwNDQwYiAgbWZuOiAwMDAwNDQwYg0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMjowOV0gICBnZm46IDAwMDA0NDBjICBtZm46IDAwMDA0NDBjDQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMyOjA5XSAgIGdmbjogMDAwMDQ0MGQgIG1mbjogMDAwMDQ0MGQNCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDldICAgZ2ZuOiAwMDAwNDQwZSAgbWZuOiAwMDAw
+NDQwZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowOV0gICBnZm46IDAwMDA0NDBmICBt
+Zm46IDAwMDA0NDBmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA5XSAgIGdmbjogMDAw
+MDQ0MTAgIG1mbjogMDAwMDQ0MTANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDldICAg
+Z2ZuOiAwMDAwNDQxMSAgbWZuOiAwMDAwNDQxMQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+MjowOV0gICBnZm46IDAwMDA0NDEyICBtZm46IDAwMDA0NDEyDQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMyOjA5XSAgIGdmbjogMDAwMDQ0MTMgIG1mbjogMDAwMDQ0MTMNCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzI6MDldICAgZ2ZuOiAwMDAwNDQxNCAgbWZuOiAwMDAwNDQxNA0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowOV0gICBnZm46IDAwMDA0NDE1ICBtZm46IDAw
+MDA0NDE1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA5XSAgIGdmbjogMDAwMDQ0MTYg
+IG1mbjogMDAwMDQ0MTYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDldICAgZ2ZuOiAw
+MDAwNDQxNyAgbWZuOiAwMDAwNDQxNw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowOV0g
+ICBnZm46IDAwMDA0NDE4ICBtZm46IDAwMDA0NDE4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMyOjA5XSAgIGdmbjogMDAwMDQ0MTkgIG1mbjogMDAwMDQ0MTkNCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzI6MDldICAgZ2ZuOiAwMDAwNDQxYSAgbWZuOiAwMDAwNDQxYQ0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMjowOV0gICBnZm46IDAwMDA0NDFiICBtZm46IDAwMDA0NDFi
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA5XSAgIGdmbjogMDAwMDQ0MWMgIG1mbjog
+MDAwMDQ0MWMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDldICAgZ2ZuOiAwMDAwNDQx
+ZCAgbWZuOiAwMDAwNDQxZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowOV0gICBnZm46
+IDAwMDA0NDFlICBtZm46IDAwMDA0NDFlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA5
+XSAgIGdmbjogMDAwMDQ0MWYgIG1mbjogMDAwMDQ0MWYNCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzI6MDldICAgZ2ZuOiAwMDAwNDQyMCAgbWZuOiAwMDAwNDQyMA0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMjowOV0gICBnZm46IDAwMDA0NDIxICBtZm46IDAwMDA0NDIxDQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA5XSAgIGdmbjogMDAwMDQ0MjIgIG1mbjogMDAwMDQ0
+MjINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDldICAgZ2ZuOiAwMDAwNDQyMyAgbWZu
+OiAwMDAwNDQyMw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowOV0gICBnZm46IDAwMDA0
+NDI0ICBtZm46IDAwMDA0NDI0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA5XSAgIGdm
+bjogMDAwMDQ0MjUgIG1mbjogMDAwMDQ0MjUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
+MDldICAgZ2ZuOiAwMDAwNDQyNiAgbWZuOiAwMDAwNDQyNg0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMjowOV0gICBnZm46IDAwMDA0NDI3ICBtZm46IDAwMDA0NDI3DQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMyOjA5XSAgIGdmbjogMDAwMDQ0MjggIG1mbjogMDAwMDQ0MjgNCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDldICAgZ2ZuOiAwMDAwNDQyOSAgbWZuOiAwMDAw
+NDQyOQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowOV0gICBnZm46IDAwMDA0NDJhICBt
+Zm46IDAwMDA0NDJhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA5XSAgIGdmbjogMDAw
+MDQ0MmIgIG1mbjogMDAwMDQ0MmINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDldICAg
+Z2ZuOiAwMDAwNDQyYyAgbWZuOiAwMDAwNDQyYw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+MjowOV0gICBnZm46IDAwMDA0NDJkICBtZm46IDAwMDA0NDJkDQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMyOjA5XSAgIGdmbjogMDAwMDQ0MmUgIG1mbjogMDAwMDQ0MmUNCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzI6MDldICAgZ2ZuOiAwMDAwNDQyZiAgbWZuOiAwMDAwNDQyZg0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowOV0gICBnZm46IDAwMDA0NDMwICBtZm46IDAw
+MDA0NDMwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA5XSAgIGdmbjogMDAwMDQ0MzEg
+IG1mbjogMDAwMDQ0MzENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDldICAgZ2ZuOiAw
+MDAwNDQzMiAgbWZuOiAwMDAwNDQzMg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowOV0g
+ICBnZm46IDAwMDA0NDMzICBtZm46IDAwMDA0NDMzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMyOjA5XSAgIGdmbjogMDAwMDQ0MzQgIG1mbjogMDAwMDQ0MzQNCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzI6MDldICAgZ2ZuOiAwMDAwNDQzNSAgbWZuOiAwMDAwNDQzNQ0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMjowOV0gICBnZm46IDAwMDA0NDM2ICBtZm46IDAwMDA0NDM2
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA5XSAgIGdmbjogMDAwMDQ0MzcgIG1mbjog
+MDAwMDQ0MzcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDldICAgZ2ZuOiAwMDAwNDQz
+OCAgbWZuOiAwMDAwNDQzOA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowOV0gICBnZm46
+IDAwMDA0NDM5ICBtZm46IDAwMDA0NDM5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA5
+XSAgIGdmbjogMDAwMDQ0M2EgIG1mbjogMDAwMDQ0M2ENCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzI6MTBdICAgZ2ZuOiAwMDAwNDQzYiAgbWZuOiAwMDAwNDQzYg0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMjoxMF0gICBnZm46IDAwMDA0NDNjICBtZm46IDAwMDA0NDNjDQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjEwXSAgIGdmbjogMDAwMDQ0M2QgIG1mbjogMDAwMDQ0
+M2QNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTBdICAgZ2ZuOiAwMDAwNDQzZSAgbWZu
+OiAwMDAwNDQzZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxMF0gICBnZm46IDAwMDA0
+NDNmICBtZm46IDAwMDA0NDNmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjEwXSAgIGdm
+bjogMDAwMDQ0NDAgIG1mbjogMDAwMDQ0NDANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
+MTBdICAgZ2ZuOiAwMDAwNDQ0MSAgbWZuOiAwMDAwNDQ0MQ0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMjoxMF0gICBnZm46IDAwMDA0NDQyICBtZm46IDAwMDA0NDQyDQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMyOjEwXSAgIGdmbjogMDAwMDQ0NDMgIG1mbjogMDAwMDQ0NDMNCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTBdICAgZ2ZuOiAwMDAwNDQ0NCAgbWZuOiAwMDAw
+NDQ0NA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxMF0gICBnZm46IDAwMDA0NDQ1ICBt
+Zm46IDAwMDA0NDQ1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjEwXSAgIGdmbjogMDAw
+MDQ0NDYgIG1mbjogMDAwMDQ0NDYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTBdICAg
+Z2ZuOiAwMDAwNDQ0NyAgbWZuOiAwMDAwNDQ0Nw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+MjoxMF0gICBnZm46IDAwMDA0NDQ4ICBtZm46IDAwMDA0NDQ4DQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMyOjEwXSAgIGdmbjogMDAwMDQ0NDkgIG1mbjogMDAwMDQ0NDkNCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzI6MTBdICAgZ2ZuOiAwMDAwNDQ0YSAgbWZuOiAwMDAwNDQ0YQ0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxMF0gICBnZm46IDAwMDA0NDRiICBtZm46IDAw
+MDA0NDRiDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjEwXSAgIGdmbjogMDAwMDQ0NGMg
+IG1mbjogMDAwMDQ0NGMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTBdICAgZ2ZuOiAw
+MDAwNDQ0ZCAgbWZuOiAwMDAwNDQ0ZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxMF0g
+ICBnZm46IDAwMDA0NDRlICBtZm46IDAwMDA0NDRlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMyOjEwXSAgIGdmbjogMDAwMDQ0NGYgIG1mbjogMDAwMDQ0NGYNCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzI6MTBdICAgZ2ZuOiAwMDAwNDQ1MCAgbWZuOiAwMDAwNDQ1MA0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMjoxMF0gICBnZm46IDAwMDA0NDUxICBtZm46IDAwMDA0NDUx
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjEwXSAgIGdmbjogMDAwMDQ0NTIgIG1mbjog
+MDAwMDQ0NTINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTBdICAgZ2ZuOiAwMDAwNDQ1
+MyAgbWZuOiAwMDAwNDQ1Mw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxMF0gICBnZm46
+IDAwMDA0NDU0ICBtZm46IDAwMDA0NDU0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjEw
+XSAgIGdmbjogMDAwMDQ0NTUgIG1mbjogMDAwMDQ0NTUNCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzI6MTBdICAgZ2ZuOiAwMDAwNDQ1NiAgbWZuOiAwMDAwNDQ1Ng0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMjoxMF0gICBnZm46IDAwMDA0NDU3ICBtZm46IDAwMDA0NDU3DQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjEwXSAgIGdmbjogMDAwMDQ0NTggIG1mbjogMDAwMDQ0
+NTgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTBdICAgZ2ZuOiAwMDAwNDQ1OSAgbWZu
+OiAwMDAwNDQ1OQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxMF0gICBnZm46IDAwMDA0
+NDVhICBtZm46IDAwMDA0NDVhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjEwXSAgIGdm
+bjogMDAwMDQ0NWIgIG1mbjogMDAwMDQ0NWINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
+MTBdICAgZ2ZuOiAwMDAwNDQ1YyAgbWZuOiAwMDAwNDQ1Yw0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMjoxMF0gICBnZm46IDAwMDA0NDVkICBtZm46IDAwMDA0NDVkDQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMyOjEwXSAgIGdmbjogMDAwMDQ0NWUgIG1mbjogMDAwMDQ0NWUNCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTBdICAgZ2ZuOiAwMDAwNDQ1ZiAgbWZuOiAwMDAw
+NDQ1Zg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxMF0gICBnZm46IDAwMDA0NDYwICBt
+Zm46IDAwMDA0NDYwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjEwXSAgIGdmbjogMDAw
+MDQ0NjEgIG1mbjogMDAwMDQ0NjENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTBdICAg
+Z2ZuOiAwMDAwNDQ2MiAgbWZuOiAwMDAwNDQ2Mg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+MjoxMF0gICBnZm46IDAwMDA0NDYzICBtZm46IDAwMDA0NDYzDQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMyOjEwXSAgIGdmbjogMDAwMDQ0NjQgIG1mbjogMDAwMDQ0NjQNCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzI6MTBdICAgZ2ZuOiAwMDAwNDQ2NSAgbWZuOiAwMDAwNDQ2NQ0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxMF0gICBnZm46IDAwMDA0NDY2ICBtZm46IDAw
+MDA0NDY2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjEwXSAgIGdmbjogMDAwMDQ0Njcg
+IG1mbjogMDAwMDQ0NjcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTBdICAgZ2ZuOiAw
+MDAwNDQ2OCAgbWZuOiAwMDAwNDQ2OA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxMF0g
+ICBnZm46IDAwMDA0NDY5ICBtZm46IDAwMDA0NDY5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMyOjEwXSAgIGdmbjogMDAwMDQ0NmEgIG1mbjogMDAwMDQ0NmENCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzI6MTBdICAgZ2ZuOiAwMDAwNDQ2YiAgbWZuOiAwMDAwNDQ2Yg0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMjoxMF0gICBnZm46IDAwMDA0NDZjICBtZm46IDAwMDA0NDZj
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjEwXSAgIGdmbjogMDAwMDQ0NmQgIG1mbjog
+MDAwMDQ0NmQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTBdICAgZ2ZuOiAwMDAwNDQ2
+ZSAgbWZuOiAwMDAwNDQ2ZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxMF0gICBnZm46
+IDAwMDA0NDZmICBtZm46IDAwMDA0NDZmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjEw
+XSAgIGdmbjogMDAwMDQ0NzAgIG1mbjogMDAwMDQ0NzANCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzI6MTBdICAgZ2ZuOiAwMDAwNDQ3MSAgbWZuOiAwMDAwNDQ3MQ0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMjoxMF0gICBnZm46IDAwMDA0NDcyICBtZm46IDAwMDA0NDcyDQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjEwXSAgIGdmbjogMDAwMDQ0NzMgIG1mbjogMDAwMDQ0
+NzMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTBdICAgZ2ZuOiAwMDAwNDQ3NCAgbWZu
+OiAwMDAwNDQ3NA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxMF0gICBnZm46IDAwMDA0
+NDc1ICBtZm46IDAwMDA0NDc1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjEwXSAgIGdm
+bjogMDAwMDQ0NzYgIG1mbjogMDAwMDQ0NzYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
+MTBdICAgZ2ZuOiAwMDAwNDQ3NyAgbWZuOiAwMDAwNDQ3Nw0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMjoxMF0gICBnZm46IDAwMDA0NDc4ICBtZm46IDAwMDA0NDc4DQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMyOjEwXSAgIGdmbjogMDAwMDQ0NzkgIG1mbjogMDAwMDQ0NzkNCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTBdICAgZ2ZuOiAwMDAwNDQ3YSAgbWZuOiAwMDAw
+NDQ3YQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxMV0gICBnZm46IDAwMDA0NDdiICBt
+Zm46IDAwMDA0NDdiDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjExXSAgIGdmbjogMDAw
+MDQ0N2MgIG1mbjogMDAwMDQ0N2MNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTFdICAg
+Z2ZuOiAwMDAwNDQ3ZCAgbWZuOiAwMDAwNDQ3ZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+MjoxMV0gICBnZm46IDAwMDA0NDdlICBtZm46IDAwMDA0NDdlDQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMyOjExXSAgIGdmbjogMDAwMDQ0N2YgIG1mbjogMDAwMDQ0N2YNCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzI6MTFdICAgZ2ZuOiAwMDAwNDQ4MCAgbWZuOiAwMDAwNDQ4MA0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxMV0gICBnZm46IDAwMDA0NDgxICBtZm46IDAw
+MDA0NDgxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjExXSAgIGdmbjogMDAwMDQ0ODIg
+IG1mbjogMDAwMDQ0ODINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTFdICAgZ2ZuOiAw
+MDAwNDQ4MyAgbWZuOiAwMDAwNDQ4Mw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxMV0g
+ICBnZm46IDAwMDA0NDg0ICBtZm46IDAwMDA0NDg0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMyOjExXSAgIGdmbjogMDAwMDQ0ODUgIG1mbjogMDAwMDQ0ODUNCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzI6MTFdICAgZ2ZuOiAwMDAwNDQ4NiAgbWZuOiAwMDAwNDQ4Ng0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMjoxMV0gICBnZm46IDAwMDA0NDg3ICBtZm46IDAwMDA0NDg3
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjExXSAgIGdmbjogMDAwMDQ0ODggIG1mbjog
+MDAwMDQ0ODgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTFdICAgZ2ZuOiAwMDAwNDQ4
+OSAgbWZuOiAwMDAwNDQ4OQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxMV0gICBnZm46
+IDAwMDA0NDhhICBtZm46IDAwMDA0NDhhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjEx
+XSAgIGdmbjogMDAwMDQ0OGIgIG1mbjogMDAwMDQ0OGINCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzI6MTFdICAgZ2ZuOiAwMDAwNDQ4YyAgbWZuOiAwMDAwNDQ4Yw0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMjoxMV0gICBnZm46IDAwMDA0NDhkICBtZm46IDAwMDA0NDhkDQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjExXSAgIGdmbjogMDAwMDQ0OGUgIG1mbjogMDAwMDQ0
+OGUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTFdICAgZ2ZuOiAwMDAwNDQ4ZiAgbWZu
+OiAwMDAwNDQ4Zg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxMV0gICBnZm46IDAwMDA0
+NDkwICBtZm46IDAwMDA0NDkwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjExXSAgIGdm
+bjogMDAwMDQ0OTEgIG1mbjogMDAwMDQ0OTENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
+MTFdICAgZ2ZuOiAwMDAwNDQ5MiAgbWZuOiAwMDAwNDQ5Mg0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMjoxMV0gICBnZm46IDAwMDA0NDkzICBtZm46IDAwMDA0NDkzDQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMyOjExXSAgIGdmbjogMDAwMDQ0OTQgIG1mbjogMDAwMDQ0OTQNCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTFdICAgZ2ZuOiAwMDAwNDQ5NSAgbWZuOiAwMDAw
+NDQ5NQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxMV0gICBnZm46IDAwMDA0NDk2ICBt
+Zm46IDAwMDA0NDk2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjExXSAgIGdmbjogMDAw
+MDQ0OTcgIG1mbjogMDAwMDQ0OTcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTFdICAg
+Z2ZuOiAwMDAwNDQ5OCAgbWZuOiAwMDAwNDQ5OA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+MjoxMV0gICBnZm46IDAwMDA0NDk5ICBtZm46IDAwMDA0NDk5DQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMyOjExXSAgIGdmbjogMDAwMDQ0OWEgIG1mbjogMDAwMDQ0OWENCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzI6MTFdICAgZ2ZuOiAwMDAwNDQ5YiAgbWZuOiAwMDAwNDQ5Yg0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxMV0gICBnZm46IDAwMDA0NDljICBtZm46IDAw
+MDA0NDljDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjExXSAgIGdmbjogMDAwMDQ0OWQg
+IG1mbjogMDAwMDQ0OWQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTFdICAgZ2ZuOiAw
+MDAwNDQ5ZSAgbWZuOiAwMDAwNDQ5ZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxMV0g
+ICBnZm46IDAwMDA0NDlmICBtZm46IDAwMDA0NDlmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMyOjExXSAgIGdmbjogMDAwMDQ0YTAgIG1mbjogMDAwMDQ0YTANCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzI6MTFdICAgZ2ZuOiAwMDAwNDRhMSAgbWZuOiAwMDAwNDRhMQ0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMjoxMV0gICBnZm46IDAwMDA0NGEyICBtZm46IDAwMDA0NGEy
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjExXSAgIGdmbjogMDAwMDQ0YTMgIG1mbjog
+MDAwMDQ0YTMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTFdICAgZ2ZuOiAwMDAwNDRh
+NCAgbWZuOiAwMDAwNDRhNA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxMV0gICBnZm46
+IDAwMDA0NGE1ICBtZm46IDAwMDA0NGE1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjEx
+XSAgIGdmbjogMDAwMDQ0YTYgIG1mbjogMDAwMDQ0YTYNCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzI6MTFdICAgZ2ZuOiAwMDAwNDRhNyAgbWZuOiAwMDAwNDRhNw0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMjoxMV0gICBnZm46IDAwMDA0NGE4ICBtZm46IDAwMDA0NGE4DQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjExXSAgIGdmbjogMDAwMDQ0YTkgIG1mbjogMDAwMDQ0
+YTkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTFdICAgZ2ZuOiAwMDAwNDRhYSAgbWZu
+OiAwMDAwNDRhYQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxMV0gICBnZm46IDAwMDA0
+NGFiICBtZm46IDAwMDA0NGFiDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjExXSAgIGdm
+bjogMDAwMDQ0YWMgIG1mbjogMDAwMDQ0YWMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
+MTFdICAgZ2ZuOiAwMDAwNDRhZCAgbWZuOiAwMDAwNDRhZA0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMjoxMV0gICBnZm46IDAwMDA0NGFlICBtZm46IDAwMDA0NGFlDQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMyOjExXSAgIGdmbjogMDAwMDQ0YWYgIG1mbjogMDAwMDQ0YWYNCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTFdICAgZ2ZuOiAwMDAwNDRiMCAgbWZuOiAwMDAw
+NDRiMA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxMV0gICBnZm46IDAwMDA0NGIxICBt
+Zm46IDAwMDA0NGIxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjExXSAgIGdmbjogMDAw
+MDQ0YjIgIG1mbjogMDAwMDQ0YjINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTFdICAg
+Z2ZuOiAwMDAwNDRiMyAgbWZuOiAwMDAwNDRiMw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+MjoxMV0gICBnZm46IDAwMDA0NGI0ICBtZm46IDAwMDA0NGI0DQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMyOjExXSAgIGdmbjogMDAwMDQ0YjUgIG1mbjogMDAwMDQ0YjUNCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzI6MTFdICAgZ2ZuOiAwMDAwNDRiNiAgbWZuOiAwMDAwNDRiNg0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxMV0gICBnZm46IDAwMDA0NGI3ICBtZm46IDAw
+MDA0NGI3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjExXSAgIGdmbjogMDAwMDQ0Yjgg
+IG1mbjogMDAwMDQ0YjgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTFdICAgZ2ZuOiAw
+MDAwNDRiOSAgbWZuOiAwMDAwNDRiOQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxMV0g
+ICBnZm46IDAwMDA0NGJhICBtZm46IDAwMDA0NGJhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMyOjEyXSAgIGdmbjogMDAwMDQ0YmIgIG1mbjogMDAwMDQ0YmINCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzI6MTJdICAgZ2ZuOiAwMDAwNDRiYyAgbWZuOiAwMDAwNDRiYw0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMjoxMl0gICBnZm46IDAwMDA0NGJkICBtZm46IDAwMDA0NGJk
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjEyXSAgIGdmbjogMDAwMDQ0YmUgIG1mbjog
+MDAwMDQ0YmUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTJdICAgZ2ZuOiAwMDAwNDRi
+ZiAgbWZuOiAwMDAwNDRiZg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxMl0gICBnZm46
+IDAwMDA0NGMwICBtZm46IDAwMDA0NGMwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjEy
+XSAgIGdmbjogMDAwMDQ0YzEgIG1mbjogMDAwMDQ0YzENCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzI6MTJdICAgZ2ZuOiAwMDAwNDRjMiAgbWZuOiAwMDAwNDRjMg0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMjoxMl0gICBnZm46IDAwMDA0NGMzICBtZm46IDAwMDA0NGMzDQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjEyXSAgIGdmbjogMDAwMDQ0YzQgIG1mbjogMDAwMDQ0
+YzQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTJdICAgZ2ZuOiAwMDAwNDRjNSAgbWZu
+OiAwMDAwNDRjNQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxMl0gICBnZm46IDAwMDA0
+NGM2ICBtZm46IDAwMDA0NGM2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjEyXSAgIGdm
+bjogMDAwMDQ0YzcgIG1mbjogMDAwMDQ0YzcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
+MTJdICAgZ2ZuOiAwMDAwNDRjOCAgbWZuOiAwMDAwNDRjOA0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMjoxMl0gICBnZm46IDAwMDA0NGM5ICBtZm46IDAwMDA0NGM5DQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMyOjEyXSAgIGdmbjogMDAwMDQ0Y2EgIG1mbjogMDAwMDQ0Y2ENCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTJdICAgZ2ZuOiAwMDAwNDRjYiAgbWZuOiAwMDAw
+NDRjYg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxMl0gICBnZm46IDAwMDA0NGNjICBt
+Zm46IDAwMDA0NGNjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjEyXSAgIGdmbjogMDAw
+MDQ0Y2QgIG1mbjogMDAwMDQ0Y2QNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTJdICAg
+Z2ZuOiAwMDAwNDRjZSAgbWZuOiAwMDAwNDRjZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+MjoxMl0gICBnZm46IDAwMDA0NGNmICBtZm46IDAwMDA0NGNmDQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMyOjEyXSAgIGdmbjogMDAwMDQ0ZDAgIG1mbjogMDAwMDQ0ZDANCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzI6MTJdICAgZ2ZuOiAwMDAwNDRkMSAgbWZuOiAwMDAwNDRkMQ0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxMl0gICBnZm46IDAwMDA0NGQyICBtZm46IDAw
+MDA0NGQyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjEyXSAgIGdmbjogMDAwMDQ0ZDMg
+IG1mbjogMDAwMDQ0ZDMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTJdICAgZ2ZuOiAw
+MDAwNDRkNCAgbWZuOiAwMDAwNDRkNA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxMl0g
+ICBnZm46IDAwMDA0NGQ1ICBtZm46IDAwMDA0NGQ1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMyOjEyXSAgIGdmbjogMDAwMDQ0ZDYgIG1mbjogMDAwMDQ0ZDYNCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzI6MTJdICAgZ2ZuOiAwMDAwNDRkNyAgbWZuOiAwMDAwNDRkNw0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMjoxMl0gICBnZm46IDAwMDA0NGQ4ICBtZm46IDAwMDA0NGQ4
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjEyXSAgIGdmbjogMDAwMDQ0ZDkgIG1mbjog
+MDAwMDQ0ZDkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTJdICAgZ2ZuOiAwMDAwNDRk
+YSAgbWZuOiAwMDAwNDRkYQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxMl0gICBnZm46
+IDAwMDA0NGRiICBtZm46IDAwMDA0NGRiDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjEy
+XSAgIGdmbjogMDAwMDQ0ZGMgIG1mbjogMDAwMDQ0ZGMNCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzI6MTJdICAgZ2ZuOiAwMDAwNDRkZCAgbWZuOiAwMDAwNDRkZA0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMjoxMl0gICBnZm46IDAwMDA0NGRlICBtZm46IDAwMDA0NGRlDQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjEyXSAgIGdmbjogMDAwMDQ0ZGYgIG1mbjogMDAwMDQ0
+ZGYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTJdICAgZ2ZuOiAwMDAwNDRlMCAgbWZu
+OiAwMDAwNDRlMA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxMl0gICBnZm46IDAwMDA0
+NGUxICBtZm46IDAwMDA0NGUxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjEyXSAgIGdm
+bjogMDAwMDQ0ZTIgIG1mbjogMDAwMDQ0ZTINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
+MTJdICAgZ2ZuOiAwMDAwNDRlMyAgbWZuOiAwMDAwNDRlMw0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMjoxMl0gICBnZm46IDAwMDA0NGU0ICBtZm46IDAwMDA0NGU0DQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMyOjEyXSAgIGdmbjogMDAwMDQ0ZTUgIG1mbjogMDAwMDQ0ZTUNCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTJdICAgZ2ZuOiAwMDAwNDRlNiAgbWZuOiAwMDAw
+NDRlNg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxMl0gICBnZm46IDAwMDA0NGU3ICBt
+Zm46IDAwMDA0NGU3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjEyXSAgIGdmbjogMDAw
+MDQ0ZTggIG1mbjogMDAwMDQ0ZTgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTJdICAg
+Z2ZuOiAwMDAwNDRlOSAgbWZuOiAwMDAwNDRlOQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+MjoxMl0gICBnZm46IDAwMDA0NGVhICBtZm46IDAwMDA0NGVhDQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMyOjEyXSAgIGdmbjogMDAwMDQ0ZWIgIG1mbjogMDAwMDQ0ZWINCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzI6MTJdICAgZ2ZuOiAwMDAwNDRlYyAgbWZuOiAwMDAwNDRlYw0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxMl0gICBnZm46IDAwMDA0NGVkICBtZm46IDAw
+MDA0NGVkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjEyXSAgIGdmbjogMDAwMDQ0ZWUg
+IG1mbjogMDAwMDQ0ZWUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTJdICAgZ2ZuOiAw
+MDAwNDRlZiAgbWZuOiAwMDAwNDRlZg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxMl0g
+ICBnZm46IDAwMDA0NGYwICBtZm46IDAwMDA0NGYwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMyOjEyXSAgIGdmbjogMDAwMDQ0ZjEgIG1mbjogMDAwMDQ0ZjENCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzI6MTJdICAgZ2ZuOiAwMDAwNDRmMiAgbWZuOiAwMDAwNDRmMg0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMjoxMl0gICBnZm46IDAwMDA0NGYzICBtZm46IDAwMDA0NGYz
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjEyXSAgIGdmbjogMDAwMDQ0ZjQgIG1mbjog
+MDAwMDQ0ZjQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTJdICAgZ2ZuOiAwMDAwNDRm
+NSAgbWZuOiAwMDAwNDRmNQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxMl0gICBnZm46
+IDAwMDA0NGY2ICBtZm46IDAwMDA0NGY2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjEy
+XSAgIGdmbjogMDAwMDQ0ZjcgIG1mbjogMDAwMDQ0ZjcNCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzI6MTJdICAgZ2ZuOiAwMDAwNDRmOCAgbWZuOiAwMDAwNDRmOA0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMjoxMl0gICBnZm46IDAwMDA0NGY5ICBtZm46IDAwMDA0NGY5DQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjEyXSAgIGdmbjogMDAwMDQ0ZmEgIG1mbjogMDAwMDQ0
+ZmENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTJdICAgZ2ZuOiAwMDAwNDRmYiAgbWZu
+OiAwMDAwNDRmYg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxM10gICBnZm46IDAwMDA0
+NGZjICBtZm46IDAwMDA0NGZjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjEzXSAgIGdm
+bjogMDAwMDQ0ZmQgIG1mbjogMDAwMDQ0ZmQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
+MTNdICAgZ2ZuOiAwMDAwNDRmZSAgbWZuOiAwMDAwNDRmZQ0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMjoxM10gICBnZm46IDAwMDA0NGZmICBtZm46IDAwMDA0NGZmDQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMyOjEzXSAgIGdmbjogMDAwMDQ1MDAgIG1mbjogMDAwMDQ1MDANCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTNdICAgZ2ZuOiAwMDAwNDUwMSAgbWZuOiAwMDAw
+NDUwMQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxM10gICBnZm46IDAwMDA0NTAyICBt
+Zm46IDAwMDA0NTAyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjEzXSAgIGdmbjogMDAw
+MDQ1MDMgIG1mbjogMDAwMDQ1MDMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTNdICAg
+Z2ZuOiAwMDAwNDUwNCAgbWZuOiAwMDAwNDUwNA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+MjoxM10gICBnZm46IDAwMDA0NTA1ICBtZm46IDAwMDA0NTA1DQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMyOjEzXSAgIGdmbjogMDAwMDQ1MDYgIG1mbjogMDAwMDQ1MDYNCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzI6MTNdICAgZ2ZuOiAwMDAwNDUwNyAgbWZuOiAwMDAwNDUwNw0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxM10gICBnZm46IDAwMDA0NTA4ICBtZm46IDAw
+MDA0NTA4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjEzXSAgIGdmbjogMDAwMDQ1MDkg
+IG1mbjogMDAwMDQ1MDkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTNdICAgZ2ZuOiAw
+MDAwNDUwYSAgbWZuOiAwMDAwNDUwYQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxM10g
+ICBnZm46IDAwMDA0NTBiICBtZm46IDAwMDA0NTBiDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMyOjEzXSAgIGdmbjogMDAwMDQ1MGMgIG1mbjogMDAwMDQ1MGMNCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzI6MTNdICAgZ2ZuOiAwMDAwNDUwZCAgbWZuOiAwMDAwNDUwZA0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMjoxM10gICBnZm46IDAwMDA0NTBlICBtZm46IDAwMDA0NTBl
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjEzXSAgIGdmbjogMDAwMDQ1MGYgIG1mbjog
+MDAwMDQ1MGYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTNdICAgZ2ZuOiAwMDAwNDUx
+MCAgbWZuOiAwMDAwNDUxMA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxM10gICBnZm46
+IDAwMDA0NTExICBtZm46IDAwMDA0NTExDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjEz
+XSAgIGdmbjogMDAwMDQ1MTIgIG1mbjogMDAwMDQ1MTINCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzI6MTNdICAgZ2ZuOiAwMDAwNDUxMyAgbWZuOiAwMDAwNDUxMw0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMjoxM10gICBnZm46IDAwMDA0NTE0ICBtZm46IDAwMDA0NTE0DQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjEzXSAgIGdmbjogMDAwMDQ1MTUgIG1mbjogMDAwMDQ1
+MTUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTNdICAgZ2ZuOiAwMDAwNDUxNiAgbWZu
+OiAwMDAwNDUxNg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxM10gICBnZm46IDAwMDA0
+NTE3ICBtZm46IDAwMDA0NTE3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjEzXSAgIGdm
+bjogMDAwMDQ1MTggIG1mbjogMDAwMDQ1MTgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
+MTNdICAgZ2ZuOiAwMDAwNDUxOSAgbWZuOiAwMDAwNDUxOQ0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMjoxM10gICBnZm46IDAwMDA0NTFhICBtZm46IDAwMDA0NTFhDQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMyOjEzXSAgIGdmbjogMDAwMDQ1MWIgIG1mbjogMDAwMDQ1MWINCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTNdICAgZ2ZuOiAwMDAwNDUxYyAgbWZuOiAwMDAw
+NDUxYw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxM10gICBnZm46IDAwMDA0NTFkICBt
+Zm46IDAwMDA0NTFkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjEzXSAgIGdmbjogMDAw
+MDQ1MWUgIG1mbjogMDAwMDQ1MWUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTNdICAg
+Z2ZuOiAwMDAwNDUxZiAgbWZuOiAwMDAwNDUxZg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+MjoxM10gICBnZm46IDAwMDA0NTIwICBtZm46IDAwMDA0NTIwDQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMyOjEzXSAgIGdmbjogMDAwMDQ1MjEgIG1mbjogMDAwMDQ1MjENCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzI6MTNdICAgZ2ZuOiAwMDAwNDUyMiAgbWZuOiAwMDAwNDUyMg0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxM10gICBnZm46IDAwMDA0NTIzICBtZm46IDAw
+MDA0NTIzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjEzXSAgIGdmbjogMDAwMDQ1MjQg
+IG1mbjogMDAwMDQ1MjQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTNdICAgZ2ZuOiAw
+MDAwNDUyNSAgbWZuOiAwMDAwNDUyNQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxM10g
+ICBnZm46IDAwMDA0NTI2ICBtZm46IDAwMDA0NTI2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMyOjEzXSAgIGdmbjogMDAwMDQ1MjcgIG1mbjogMDAwMDQ1MjcNCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzI6MTNdICAgZ2ZuOiAwMDAwNDUyOCAgbWZuOiAwMDAwNDUyOA0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMjoxM10gICBnZm46IDAwMDA0NTI5ICBtZm46IDAwMDA0NTI5
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjEzXSAgIGdmbjogMDAwMDQ1MmEgIG1mbjog
+MDAwMDQ1MmENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTNdICAgZ2ZuOiAwMDAwNDUy
+YiAgbWZuOiAwMDAwNDUyYg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxM10gICBnZm46
+IDAwMDA0NTJjICBtZm46IDAwMDA0NTJjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjEz
+XSAgIGdmbjogMDAwMDQ1MmQgIG1mbjogMDAwMDQ1MmQNCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzI6MTNdICAgZ2ZuOiAwMDAwNDUyZSAgbWZuOiAwMDAwNDUyZQ0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMjoxM10gICBnZm46IDAwMDA0NTJmICBtZm46IDAwMDA0NTJmDQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjEzXSAgIGdmbjogMDAwMDQ1MzAgIG1mbjogMDAwMDQ1
+MzANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTNdICAgZ2ZuOiAwMDAwNDUzMSAgbWZu
+OiAwMDAwNDUzMQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxM10gICBnZm46IDAwMDA0
+NTMyICBtZm46IDAwMDA0NTMyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjEzXSAgIGdm
+bjogMDAwMDQ1MzMgIG1mbjogMDAwMDQ1MzMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
+MTNdICAgZ2ZuOiAwMDAwNDUzNCAgbWZuOiAwMDAwNDUzNA0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMjoxM10gICBnZm46IDAwMDA0NTM1ICBtZm46IDAwMDA0NTM1DQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMyOjEzXSAgIGdmbjogMDAwMDQ1MzYgIG1mbjogMDAwMDQ1MzYNCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTNdICAgZ2ZuOiAwMDAwNDUzNyAgbWZuOiAwMDAw
+NDUzNw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxM10gICBnZm46IDAwMDA0NTM4ICBt
+Zm46IDAwMDA0NTM4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjEzXSAgIGdmbjogMDAw
+MDQ1MzkgIG1mbjogMDAwMDQ1MzkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTNdICAg
+Z2ZuOiAwMDAwNDUzYSAgbWZuOiAwMDAwNDUzYQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+MjoxM10gICBnZm46IDAwMDA0NTNiICBtZm46IDAwMDA0NTNiDQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMyOjE0XSAgIGdmbjogMDAwMDQ1M2MgIG1mbjogMDAwMDQ1M2MNCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzI6MTRdICAgZ2ZuOiAwMDAwNDUzZCAgbWZuOiAwMDAwNDUzZA0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxNF0gICBnZm46IDAwMDA0NTNlICBtZm46IDAw
+MDA0NTNlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE0XSAgIGdmbjogMDAwMDQ1M2Yg
+IG1mbjogMDAwMDQ1M2YNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTRdICAgZ2ZuOiAw
+MDAwNDU0MCAgbWZuOiAwMDAwNDU0MA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxNF0g
+ICBnZm46IDAwMDA0NTQxICBtZm46IDAwMDA0NTQxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMyOjE0XSAgIGdmbjogMDAwMDQ1NDIgIG1mbjogMDAwMDQ1NDINCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzI6MTRdICAgZ2ZuOiAwMDAwNDU0MyAgbWZuOiAwMDAwNDU0Mw0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMjoxNF0gICBnZm46IDAwMDA0NTQ0ICBtZm46IDAwMDA0NTQ0
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE0XSAgIGdmbjogMDAwMDQ1NDUgIG1mbjog
+MDAwMDQ1NDUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTRdICAgZ2ZuOiAwMDAwNDU0
+NiAgbWZuOiAwMDAwNDU0Ng0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxNF0gICBnZm46
+IDAwMDA0NTQ3ICBtZm46IDAwMDA0NTQ3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE0
+XSAgIGdmbjogMDAwMDQ1NDggIG1mbjogMDAwMDQ1NDgNCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzI6MTRdICAgZ2ZuOiAwMDAwNDU0OSAgbWZuOiAwMDAwNDU0OQ0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMjoxNF0gICBnZm46IDAwMDA0NTRhICBtZm46IDAwMDA0NTRhDQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE0XSAgIGdmbjogMDAwMDQ1NGIgIG1mbjogMDAwMDQ1
+NGINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTRdICAgZ2ZuOiAwMDAwNDU0YyAgbWZu
+OiAwMDAwNDU0Yw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxNF0gICBnZm46IDAwMDA0
+NTRkICBtZm46IDAwMDA0NTRkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE0XSAgIGdm
+bjogMDAwMDQ1NGUgIG1mbjogMDAwMDQ1NGUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
+MTRdICAgZ2ZuOiAwMDAwNDU0ZiAgbWZuOiAwMDAwNDU0Zg0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMjoxNF0gICBnZm46IDAwMDA0NTUwICBtZm46IDAwMDA0NTUwDQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMyOjE0XSAgIGdmbjogMDAwMDQ1NTEgIG1mbjogMDAwMDQ1NTENCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTRdICAgZ2ZuOiAwMDAwNDU1MiAgbWZuOiAwMDAw
+NDU1Mg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxNF0gICBnZm46IDAwMDA0NTUzICBt
+Zm46IDAwMDA0NTUzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE0XSAgIGdmbjogMDAw
+MDQ1NTQgIG1mbjogMDAwMDQ1NTQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTRdICAg
+Z2ZuOiAwMDAwNDU1NSAgbWZuOiAwMDAwNDU1NQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+MjoxNF0gICBnZm46IDAwMDA0NTU2ICBtZm46IDAwMDA0NTU2DQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMyOjE0XSAgIGdmbjogMDAwMDQ1NTcgIG1mbjogMDAwMDQ1NTcNCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzI6MTRdICAgZ2ZuOiAwMDAwNDU1OCAgbWZuOiAwMDAwNDU1OA0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxNF0gICBnZm46IDAwMDA0NTU5ICBtZm46IDAw
+MDA0NTU5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE0XSAgIGdmbjogMDAwMDQ1NWEg
+IG1mbjogMDAwMDQ1NWENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTRdICAgZ2ZuOiAw
+MDAwNDU1YiAgbWZuOiAwMDAwNDU1Yg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxNF0g
+ICBnZm46IDAwMDA0NTVjICBtZm46IDAwMDA0NTVjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMyOjE0XSAgIGdmbjogMDAwMDQ1NWQgIG1mbjogMDAwMDQ1NWQNCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzI6MTRdICAgZ2ZuOiAwMDAwNDU1ZSAgbWZuOiAwMDAwNDU1ZQ0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMjoxNF0gICBnZm46IDAwMDA0NTVmICBtZm46IDAwMDA0NTVm
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE0XSAgIGdmbjogMDAwMDQ1NjAgIG1mbjog
+MDAwMDQ1NjANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTRdICAgZ2ZuOiAwMDAwNDU2
+MSAgbWZuOiAwMDAwNDU2MQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxNF0gICBnZm46
+IDAwMDA0NTYyICBtZm46IDAwMDA0NTYyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE0
+XSAgIGdmbjogMDAwMDQ1NjMgIG1mbjogMDAwMDQ1NjMNCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzI6MTRdICAgZ2ZuOiAwMDAwNDU2NCAgbWZuOiAwMDAwNDU2NA0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMjoxNF0gICBnZm46IDAwMDA0NTY1ICBtZm46IDAwMDA0NTY1DQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE0XSAgIGdmbjogMDAwMDQ1NjYgIG1mbjogMDAwMDQ1
+NjYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTRdICAgZ2ZuOiAwMDAwNDU2NyAgbWZu
+OiAwMDAwNDU2Nw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxNF0gICBnZm46IDAwMDA0
+NTY4ICBtZm46IDAwMDA0NTY4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE0XSAgIGdm
+bjogMDAwMDQ1NjkgIG1mbjogMDAwMDQ1NjkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
+MTRdICAgZ2ZuOiAwMDAwNDU2YSAgbWZuOiAwMDAwNDU2YQ0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMjoxNF0gICBnZm46IDAwMDA0NTZiICBtZm46IDAwMDA0NTZiDQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMyOjE0XSAgIGdmbjogMDAwMDQ1NmMgIG1mbjogMDAwMDQ1NmMNCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTRdICAgZ2ZuOiAwMDAwNDU2ZCAgbWZuOiAwMDAw
+NDU2ZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxNF0gICBnZm46IDAwMDA0NTZlICBt
+Zm46IDAwMDA0NTZlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE0XSAgIGdmbjogMDAw
+MDQ1NmYgIG1mbjogMDAwMDQ1NmYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTRdICAg
+Z2ZuOiAwMDAwNDU3MCAgbWZuOiAwMDAwNDU3MA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+MjoxNF0gICBnZm46IDAwMDA0NTcxICBtZm46IDAwMDA0NTcxDQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMyOjE0XSAgIGdmbjogMDAwMDQ1NzIgIG1mbjogMDAwMDQ1NzINCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzI6MTRdICAgZ2ZuOiAwMDAwNDU3MyAgbWZuOiAwMDAwNDU3Mw0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxNF0gICBnZm46IDAwMDA0NTc0ICBtZm46IDAw
+MDA0NTc0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE0XSAgIGdmbjogMDAwMDQ1NzUg
+IG1mbjogMDAwMDQ1NzUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTRdICAgZ2ZuOiAw
+MDAwNDU3NiAgbWZuOiAwMDAwNDU3Ng0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxNF0g
+ICBnZm46IDAwMDA0NTc3ICBtZm46IDAwMDA0NTc3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMyOjE0XSAgIGdmbjogMDAwMDQ1NzggIG1mbjogMDAwMDQ1NzgNCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzI6MTRdICAgZ2ZuOiAwMDAwNDU3OSAgbWZuOiAwMDAwNDU3OQ0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMjoxNF0gICBnZm46IDAwMDA0NTdhICBtZm46IDAwMDA0NTdh
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE0XSAgIGdmbjogMDAwMDQ1N2IgIG1mbjog
+MDAwMDQ1N2INCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTVdICAgZ2ZuOiAwMDAwNDU3
+YyAgbWZuOiAwMDAwNDU3Yw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxNV0gICBnZm46
+IDAwMDA0NTdkICBtZm46IDAwMDA0NTdkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE1
+XSAgIGdmbjogMDAwMDQ1N2UgIG1mbjogMDAwMDQ1N2UNCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzI6MTVdICAgZ2ZuOiAwMDAwNDU3ZiAgbWZuOiAwMDAwNDU3Zg0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMjoxNV0gICBnZm46IDAwMDA0NTgwICBtZm46IDAwMDA0NTgwDQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE1XSAgIGdmbjogMDAwMDQ1ODEgIG1mbjogMDAwMDQ1
+ODENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTVdICAgZ2ZuOiAwMDAwNDU4MiAgbWZu
+OiAwMDAwNDU4Mg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxNV0gICBnZm46IDAwMDA0
+NTgzICBtZm46IDAwMDA0NTgzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE1XSAgIGdm
+bjogMDAwMDQ1ODQgIG1mbjogMDAwMDQ1ODQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
+MTVdICAgZ2ZuOiAwMDAwNDU4NSAgbWZuOiAwMDAwNDU4NQ0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMjoxNV0gICBnZm46IDAwMDA0NTg2ICBtZm46IDAwMDA0NTg2DQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMyOjE1XSAgIGdmbjogMDAwMDQ1ODcgIG1mbjogMDAwMDQ1ODcNCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTVdICAgZ2ZuOiAwMDAwNDU4OCAgbWZuOiAwMDAw
+NDU4OA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxNV0gICBnZm46IDAwMDA0NTg5ICBt
+Zm46IDAwMDA0NTg5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE1XSAgIGdmbjogMDAw
+MDQ1OGEgIG1mbjogMDAwMDQ1OGENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTVdICAg
+Z2ZuOiAwMDAwNDU4YiAgbWZuOiAwMDAwNDU4Yg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+MjoxNV0gICBnZm46IDAwMDA0NThjICBtZm46IDAwMDA0NThjDQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMyOjE1XSAgIGdmbjogMDAwMDQ1OGQgIG1mbjogMDAwMDQ1OGQNCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzI6MTVdICAgZ2ZuOiAwMDAwNDU4ZSAgbWZuOiAwMDAwNDU4ZQ0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxNV0gICBnZm46IDAwMDA0NThmICBtZm46IDAw
+MDA0NThmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE1XSAgIGdmbjogMDAwMDQ1OTAg
+IG1mbjogMDAwMDQ1OTANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTVdICAgZ2ZuOiAw
+MDAwNDU5MSAgbWZuOiAwMDAwNDU5MQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxNV0g
+ICBnZm46IDAwMDA0NTkyICBtZm46IDAwMDA0NTkyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMyOjE1XSAgIGdmbjogMDAwMDQ1OTMgIG1mbjogMDAwMDQ1OTMNCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzI6MTVdICAgZ2ZuOiAwMDAwNDU5NCAgbWZuOiAwMDAwNDU5NA0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMjoxNV0gICBnZm46IDAwMDA0NTk1ICBtZm46IDAwMDA0NTk1
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE1XSAgIGdmbjogMDAwMDQ1OTYgIG1mbjog
+MDAwMDQ1OTYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTVdICAgZ2ZuOiAwMDAwNDU5
+NyAgbWZuOiAwMDAwNDU5Nw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxNV0gICBnZm46
+IDAwMDA0NTk4ICBtZm46IDAwMDA0NTk4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE1
+XSAgIGdmbjogMDAwMDQ1OTkgIG1mbjogMDAwMDQ1OTkNCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzI6MTVdICAgZ2ZuOiAwMDAwNDU5YSAgbWZuOiAwMDAwNDU5YQ0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMjoxNV0gICBnZm46IDAwMDA0NTliICBtZm46IDAwMDA0NTliDQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE1XSAgIGdmbjogMDAwMDQ1OWMgIG1mbjogMDAwMDQ1
+OWMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTVdICAgZ2ZuOiAwMDAwNDU5ZCAgbWZu
+OiAwMDAwNDU5ZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxNV0gICBnZm46IDAwMDA0
+NTllICBtZm46IDAwMDA0NTllDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE1XSAgIGdm
+bjogMDAwMDQ1OWYgIG1mbjogMDAwMDQ1OWYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
+MTVdICAgZ2ZuOiAwMDAwNDVhMCAgbWZuOiAwMDAwNDVhMA0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMjoxNV0gICBnZm46IDAwMDA0NWExICBtZm46IDAwMDA0NWExDQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMyOjE1XSAgIGdmbjogMDAwMDQ1YTIgIG1mbjogMDAwMDQ1YTINCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTVdICAgZ2ZuOiAwMDAwNDVhMyAgbWZuOiAwMDAw
+NDVhMw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxNV0gICBnZm46IDAwMDA0NWE0ICBt
+Zm46IDAwMDA0NWE0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE1XSAgIGdmbjogMDAw
+MDQ1YTUgIG1mbjogMDAwMDQ1YTUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTVdICAg
+Z2ZuOiAwMDAwNDVhNiAgbWZuOiAwMDAwNDVhNg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+MjoxNV0gICBnZm46IDAwMDA0NWE3ICBtZm46IDAwMDA0NWE3DQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMyOjE1XSAgIGdmbjogMDAwMDQ1YTggIG1mbjogMDAwMDQ1YTgNCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzI6MTVdICAgZ2ZuOiAwMDAwNDVhOSAgbWZuOiAwMDAwNDVhOQ0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxNV0gICBnZm46IDAwMDA0NWFhICBtZm46IDAw
+MDA0NWFhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE1XSAgIGdmbjogMDAwMDQ1YWIg
+IG1mbjogMDAwMDQ1YWINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTVdICAgZ2ZuOiAw
+MDAwNDVhYyAgbWZuOiAwMDAwNDVhYw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxNV0g
+ICBnZm46IDAwMDA0NWFkICBtZm46IDAwMDA0NWFkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMyOjE1XSAgIGdmbjogMDAwMDQ1YWUgIG1mbjogMDAwMDQ1YWUNCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzI6MTVdICAgZ2ZuOiAwMDAwNDVhZiAgbWZuOiAwMDAwNDVhZg0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMjoxNV0gICBnZm46IDAwMDA0NWIwICBtZm46IDAwMDA0NWIw
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE1XSAgIGdmbjogMDAwMDQ1YjEgIG1mbjog
+MDAwMDQ1YjENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTVdICAgZ2ZuOiAwMDAwNDVi
+MiAgbWZuOiAwMDAwNDViMg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxNV0gICBnZm46
+IDAwMDA0NWIzICBtZm46IDAwMDA0NWIzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE1
+XSAgIGdmbjogMDAwMDQ1YjQgIG1mbjogMDAwMDQ1YjQNCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzI6MTVdICAgZ2ZuOiAwMDAwNDViNSAgbWZuOiAwMDAwNDViNQ0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMjoxNV0gICBnZm46IDAwMDA0NWI2ICBtZm46IDAwMDA0NWI2DQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE1XSAgIGdmbjogMDAwMDQ1YjcgIG1mbjogMDAwMDQ1
+YjcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTVdICAgZ2ZuOiAwMDAwNDViOCAgbWZu
+OiAwMDAwNDViOA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxNV0gICBnZm46IDAwMDA0
+NWI5ICBtZm46IDAwMDA0NWI5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE1XSAgIGdm
+bjogMDAwMDQ1YmEgIG1mbjogMDAwMDQ1YmENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
+MTVdICAgZ2ZuOiAwMDAwNDViYiAgbWZuOiAwMDAwNDViYg0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMjoxNl0gICBnZm46IDAwMDA0NWJjICBtZm46IDAwMDA0NWJjDQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMyOjE2XSAgIGdmbjogMDAwMDQ1YmQgIG1mbjogMDAwMDQ1YmQNCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTZdICAgZ2ZuOiAwMDAwNDViZSAgbWZuOiAwMDAw
+NDViZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxNl0gICBnZm46IDAwMDA0NWJmICBt
+Zm46IDAwMDA0NWJmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE2XSAgIGdmbjogMDAw
+MDQ1YzAgIG1mbjogMDAwMDQ1YzANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTZdICAg
+Z2ZuOiAwMDAwNDVjMSAgbWZuOiAwMDAwNDVjMQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+MjoxNl0gICBnZm46IDAwMDA0NWMyICBtZm46IDAwMDA0NWMyDQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMyOjE2XSAgIGdmbjogMDAwMDQ1YzMgIG1mbjogMDAwMDQ1YzMNCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzI6MTZdICAgZ2ZuOiAwMDAwNDVjNCAgbWZuOiAwMDAwNDVjNA0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxNl0gICBnZm46IDAwMDA0NWM1ICBtZm46IDAw
+MDA0NWM1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE2XSAgIGdmbjogMDAwMDQ1YzYg
+IG1mbjogMDAwMDQ1YzYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTZdICAgZ2ZuOiAw
+MDAwNDVjNyAgbWZuOiAwMDAwNDVjNw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxNl0g
+ICBnZm46IDAwMDA0NWM4ICBtZm46IDAwMDA0NWM4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMyOjE2XSAgIGdmbjogMDAwMDQ1YzkgIG1mbjogMDAwMDQ1YzkNCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzI6MTZdICAgZ2ZuOiAwMDAwNDVjYSAgbWZuOiAwMDAwNDVjYQ0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMjoxNl0gICBnZm46IDAwMDA0NWNiICBtZm46IDAwMDA0NWNi
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE2XSAgIGdmbjogMDAwMDQ1Y2MgIG1mbjog
+MDAwMDQ1Y2MNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTZdICAgZ2ZuOiAwMDAwNDVj
+ZCAgbWZuOiAwMDAwNDVjZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxNl0gICBnZm46
+IDAwMDA0NWNlICBtZm46IDAwMDA0NWNlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE2
+XSAgIGdmbjogMDAwMDQ1Y2YgIG1mbjogMDAwMDQ1Y2YNCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzI6MTZdICAgZ2ZuOiAwMDAwNDVkMCAgbWZuOiAwMDAwNDVkMA0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMjoxNl0gICBnZm46IDAwMDA0NWQxICBtZm46IDAwMDA0NWQxDQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE2XSAgIGdmbjogMDAwMDQ1ZDIgIG1mbjogMDAwMDQ1
+ZDINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTZdICAgZ2ZuOiAwMDAwNDVkMyAgbWZu
+OiAwMDAwNDVkMw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxNl0gICBnZm46IDAwMDA0
+NWQ0ICBtZm46IDAwMDA0NWQ0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE2XSAgIGdm
+bjogMDAwMDQ1ZDUgIG1mbjogMDAwMDQ1ZDUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
+MTZdICAgZ2ZuOiAwMDAwNDVkNiAgbWZuOiAwMDAwNDVkNg0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMjoxNl0gICBnZm46IDAwMDA0NWQ3ICBtZm46IDAwMDA0NWQ3DQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMyOjE2XSAgIGdmbjogMDAwMDQ1ZDggIG1mbjogMDAwMDQ1ZDgNCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTZdICAgZ2ZuOiAwMDAwNDVkOSAgbWZuOiAwMDAw
+NDVkOQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxNl0gICBnZm46IDAwMDA0NWRhICBt
+Zm46IDAwMDA0NWRhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE2XSAgIGdmbjogMDAw
+MDQ1ZGIgIG1mbjogMDAwMDQ1ZGINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTZdICAg
+Z2ZuOiAwMDAwNDVkYyAgbWZuOiAwMDAwNDVkYw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+MjoxNl0gICBnZm46IDAwMDA0NWRkICBtZm46IDAwMDA0NWRkDQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMyOjE2XSAgIGdmbjogMDAwMDQ1ZGUgIG1mbjogMDAwMDQ1ZGUNCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzI6MTZdICAgZ2ZuOiAwMDAwNDVkZiAgbWZuOiAwMDAwNDVkZg0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxNl0gICBnZm46IDAwMDA0NWUwICBtZm46IDAw
+MDA0NWUwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE2XSAgIGdmbjogMDAwMDQ1ZTEg
+IG1mbjogMDAwMDQ1ZTENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTZdICAgZ2ZuOiAw
+MDAwNDVlMiAgbWZuOiAwMDAwNDVlMg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxNl0g
+ICBnZm46IDAwMDA0NWUzICBtZm46IDAwMDA0NWUzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMyOjE2XSAgIGdmbjogMDAwMDQ1ZTQgIG1mbjogMDAwMDQ1ZTQNCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzI6MTZdICAgZ2ZuOiAwMDAwNDVlNSAgbWZuOiAwMDAwNDVlNQ0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMjoxNl0gICBnZm46IDAwMDA0NWU2ICBtZm46IDAwMDA0NWU2
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE2XSAgIGdmbjogMDAwMDQ1ZTcgIG1mbjog
+MDAwMDQ1ZTcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTZdICAgZ2ZuOiAwMDAwNDVl
+OCAgbWZuOiAwMDAwNDVlOA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxNl0gICBnZm46
+IDAwMDA0NWU5ICBtZm46IDAwMDA0NWU5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE2
+XSAgIGdmbjogMDAwMDQ1ZWEgIG1mbjogMDAwMDQ1ZWENCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzI6MTZdICAgZ2ZuOiAwMDAwNDVlYiAgbWZuOiAwMDAwNDVlYg0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMjoxNl0gICBnZm46IDAwMDA0NWVjICBtZm46IDAwMDA0NWVjDQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE2XSAgIGdmbjogMDAwMDQ1ZWQgIG1mbjogMDAwMDQ1
+ZWQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTZdICAgZ2ZuOiAwMDAwNDVlZSAgbWZu
+OiAwMDAwNDVlZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxNl0gICBnZm46IDAwMDA0
+NWVmICBtZm46IDAwMDA0NWVmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE2XSAgIGdm
+bjogMDAwMDQ1ZjAgIG1mbjogMDAwMDQ1ZjANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
+MTZdICAgZ2ZuOiAwMDAwNDVmMSAgbWZuOiAwMDAwNDVmMQ0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMjoxNl0gICBnZm46IDAwMDA0NWYyICBtZm46IDAwMDA0NWYyDQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMyOjE2XSAgIGdmbjogMDAwMDQ1ZjMgIG1mbjogMDAwMDQ1ZjMNCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTZdICAgZ2ZuOiAwMDAwNDVmNCAgbWZuOiAwMDAw
+NDVmNA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxNl0gICBnZm46IDAwMDA0NWY1ICBt
+Zm46IDAwMDA0NWY1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE2XSAgIGdmbjogMDAw
+MDQ1ZjYgIG1mbjogMDAwMDQ1ZjYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTZdICAg
+Z2ZuOiAwMDAwNDVmNyAgbWZuOiAwMDAwNDVmNw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+MjoxNl0gICBnZm46IDAwMDA0NWY4ICBtZm46IDAwMDA0NWY4DQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMyOjE2XSAgIGdmbjogMDAwMDQ1ZjkgIG1mbjogMDAwMDQ1ZjkNCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzI6MTZdICAgZ2ZuOiAwMDAwNDVmYSAgbWZuOiAwMDAwNDVmYQ0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxNl0gICBnZm46IDAwMDA0NWZiICBtZm46IDAw
+MDA0NWZiDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE3XSAgIGdmbjogMDAwMDQ1ZmMg
+IG1mbjogMDAwMDQ1ZmMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTddICAgZ2ZuOiAw
+MDAwNDVmZCAgbWZuOiAwMDAwNDVmZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxN10g
+ICBnZm46IDAwMDA0NWZlICBtZm46IDAwMDA0NWZlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMyOjE3XSAgIGdmbjogMDAwMDQ1ZmYgIG1mbjogMDAwMDQ1ZmYNCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzI6MTddICAgZ2ZuOiAwMDAwNDYwMCAgbWZuOiAwMDAwNDYwMA0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMjoxN10gICBnZm46IDAwMDA0NjAxICBtZm46IDAwMDA0NjAx
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE3XSAgIGdmbjogMDAwMDQ2MDIgIG1mbjog
+MDAwMDQ2MDINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTddICAgZ2ZuOiAwMDAwNDYw
+MyAgbWZuOiAwMDAwNDYwMw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxN10gICBnZm46
+IDAwMDA0NjA0ICBtZm46IDAwMDA0NjA0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE3
+XSAgIGdmbjogMDAwMDQ2MDUgIG1mbjogMDAwMDQ2MDUNCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzI6MTddICAgZ2ZuOiAwMDAwNDYwNiAgbWZuOiAwMDAwNDYwNg0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMjoxN10gICBnZm46IDAwMDA0NjA3ICBtZm46IDAwMDA0NjA3DQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE3XSAgIGdmbjogMDAwMDQ2MDggIG1mbjogMDAwMDQ2
+MDgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTddICAgZ2ZuOiAwMDAwNDYwOSAgbWZu
+OiAwMDAwNDYwOQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxN10gICBnZm46IDAwMDA0
+NjBhICBtZm46IDAwMDA0NjBhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE3XSAgIGdm
+bjogMDAwMDQ2MGIgIG1mbjogMDAwMDQ2MGINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
+MTddICAgZ2ZuOiAwMDAwNDYwYyAgbWZuOiAwMDAwNDYwYw0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMjoxN10gICBnZm46IDAwMDA0NjBkICBtZm46IDAwMDA0NjBkDQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMyOjE3XSAgIGdmbjogMDAwMDQ2MGUgIG1mbjogMDAwMDQ2MGUNCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTddICAgZ2ZuOiAwMDAwNDYwZiAgbWZuOiAwMDAw
+NDYwZg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxN10gICBnZm46IDAwMDA0NjEwICBt
+Zm46IDAwMDA0NjEwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE3XSAgIGdmbjogMDAw
+MDQ2MTEgIG1mbjogMDAwMDQ2MTENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTddICAg
+Z2ZuOiAwMDAwNDYxMiAgbWZuOiAwMDAwNDYxMg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+MjoxN10gICBnZm46IDAwMDA0NjEzICBtZm46IDAwMDA0NjEzDQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMyOjE3XSAgIGdmbjogMDAwMDQ2MTQgIG1mbjogMDAwMDQ2MTQNCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzI6MTddICAgZ2ZuOiAwMDAwNDYxNSAgbWZuOiAwMDAwNDYxNQ0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxN10gICBnZm46IDAwMDA0NjE2ICBtZm46IDAw
+MDA0NjE2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE3XSAgIGdmbjogMDAwMDQ2MTcg
+IG1mbjogMDAwMDQ2MTcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTddICAgZ2ZuOiAw
+MDAwNDYxOCAgbWZuOiAwMDAwNDYxOA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxN10g
+ICBnZm46IDAwMDA0NjE5ICBtZm46IDAwMDA0NjE5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMyOjE3XSAgIGdmbjogMDAwMDQ2MWEgIG1mbjogMDAwMDQ2MWENCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzI6MTddICAgZ2ZuOiAwMDAwNDYxYiAgbWZuOiAwMDAwNDYxYg0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMjoxN10gICBnZm46IDAwMDA0NjFjICBtZm46IDAwMDA0NjFj
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE3XSAgIGdmbjogMDAwMDQ2MWQgIG1mbjog
+MDAwMDQ2MWQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTddICAgZ2ZuOiAwMDAwNDYx
+ZSAgbWZuOiAwMDAwNDYxZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxN10gICBnZm46
+IDAwMDA0NjFmICBtZm46IDAwMDA0NjFmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE3
+XSAgIGdmbjogMDAwMDQ2MjAgIG1mbjogMDAwMDQ2MjANCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzI6MTddICAgZ2ZuOiAwMDAwNDYyMSAgbWZuOiAwMDAwNDYyMQ0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMjoxN10gICBnZm46IDAwMDA0NjIyICBtZm46IDAwMDA0NjIyDQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE3XSAgIGdmbjogMDAwMDQ2MjMgIG1mbjogMDAwMDQ2
+MjMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTddICAgZ2ZuOiAwMDAwNDYyNCAgbWZu
+OiAwMDAwNDYyNA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxN10gICBnZm46IDAwMDA0
+NjI1ICBtZm46IDAwMDA0NjI1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE3XSAgIGdm
+bjogMDAwMDQ2MjYgIG1mbjogMDAwMDQ2MjYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
+MTddICAgZ2ZuOiAwMDAwNDYyNyAgbWZuOiAwMDAwNDYyNw0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMjoxN10gICBnZm46IDAwMDA0NjI4ICBtZm46IDAwMDA0NjI4DQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMyOjE3XSAgIGdmbjogMDAwMDQ2MjkgIG1mbjogMDAwMDQ2MjkNCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTddICAgZ2ZuOiAwMDAwNDYyYSAgbWZuOiAwMDAw
+NDYyYQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxN10gICBnZm46IDAwMDA0NjJiICBt
+Zm46IDAwMDA0NjJiDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE3XSAgIGdmbjogMDAw
+MDQ2MmMgIG1mbjogMDAwMDQ2MmMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTddICAg
+Z2ZuOiAwMDAwNDYyZCAgbWZuOiAwMDAwNDYyZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+MjoxN10gICBnZm46IDAwMDA0NjJlICBtZm46IDAwMDA0NjJlDQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMyOjE3XSAgIGdmbjogMDAwMDQ2MmYgIG1mbjogMDAwMDQ2MmYNCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzI6MTddICAgZ2ZuOiAwMDAwNDYzMCAgbWZuOiAwMDAwNDYzMA0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxN10gICBnZm46IDAwMDA0NjMxICBtZm46IDAw
+MDA0NjMxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE3XSAgIGdmbjogMDAwMDQ2MzIg
+IG1mbjogMDAwMDQ2MzINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTddICAgZ2ZuOiAw
+MDAwNDYzMyAgbWZuOiAwMDAwNDYzMw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxN10g
+ICBnZm46IDAwMDA0NjM0ICBtZm46IDAwMDA0NjM0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMyOjE3XSAgIGdmbjogMDAwMDQ2MzUgIG1mbjogMDAwMDQ2MzUNCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzI6MTddICAgZ2ZuOiAwMDAwNDYzNiAgbWZuOiAwMDAwNDYzNg0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMjoxN10gICBnZm46IDAwMDA0NjM3ICBtZm46IDAwMDA0NjM3
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE3XSAgIGdmbjogMDAwMDQ2MzggIG1mbjog
+MDAwMDQ2MzgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTddICAgZ2ZuOiAwMDAwNDYz
+OSAgbWZuOiAwMDAwNDYzOQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxN10gICBnZm46
+IDAwMDA0NjNhICBtZm46IDAwMDA0NjNhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE3
+XSAgIGdmbjogMDAwMDQ2M2IgIG1mbjogMDAwMDQ2M2INCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzI6MThdICAgZ2ZuOiAwMDAwNDYzYyAgbWZuOiAwMDAwNDYzYw0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMjoxOF0gICBnZm46IDAwMDA0NjNkICBtZm46IDAwMDA0NjNkDQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE4XSAgIGdmbjogMDAwMDQ2M2UgIG1mbjogMDAwMDQ2
+M2UNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MThdICAgZ2ZuOiAwMDAwNDYzZiAgbWZu
+OiAwMDAwNDYzZg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxOF0gICBnZm46IDAwMDA0
+NjQwICBtZm46IDAwMDA0NjQwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE4XSAgIGdm
+bjogMDAwMDQ2NDEgIG1mbjogMDAwMDQ2NDENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
+MThdICAgZ2ZuOiAwMDAwNDY0MiAgbWZuOiAwMDAwNDY0Mg0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMjoxOF0gICBnZm46IDAwMDA0NjQzICBtZm46IDAwMDA0NjQzDQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMyOjE4XSAgIGdmbjogMDAwMDQ2NDQgIG1mbjogMDAwMDQ2NDQNCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MThdICAgZ2ZuOiAwMDAwNDY0NSAgbWZuOiAwMDAw
+NDY0NQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxOF0gICBnZm46IDAwMDA0NjQ2ICBt
+Zm46IDAwMDA0NjQ2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE4XSAgIGdmbjogMDAw
+MDQ2NDcgIG1mbjogMDAwMDQ2NDcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MThdICAg
+Z2ZuOiAwMDAwNDY0OCAgbWZuOiAwMDAwNDY0OA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+MjoxOF0gICBnZm46IDAwMDA0NjQ5ICBtZm46IDAwMDA0NjQ5DQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMyOjE4XSAgIGdmbjogMDAwMDQ2NGEgIG1mbjogMDAwMDQ2NGENCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzI6MThdICAgZ2ZuOiAwMDAwNDY0YiAgbWZuOiAwMDAwNDY0Yg0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxOF0gICBnZm46IDAwMDA0NjRjICBtZm46IDAw
+MDA0NjRjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE4XSAgIGdmbjogMDAwMDQ2NGQg
+IG1mbjogMDAwMDQ2NGQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MThdICAgZ2ZuOiAw
+MDAwNDY0ZSAgbWZuOiAwMDAwNDY0ZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxOF0g
+ICBnZm46IDAwMDA0NjRmICBtZm46IDAwMDA0NjRmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMyOjE4XSAgIGdmbjogMDAwMDQ2NTAgIG1mbjogMDAwMDQ2NTANCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzI6MThdICAgZ2ZuOiAwMDAwNDY1MSAgbWZuOiAwMDAwNDY1MQ0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMjoxOF0gICBnZm46IDAwMDA0NjUyICBtZm46IDAwMDA0NjUy
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE4XSAgIGdmbjogMDAwMDQ2NTMgIG1mbjog
+MDAwMDQ2NTMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MThdICAgZ2ZuOiAwMDAwNDY1
+NCAgbWZuOiAwMDAwNDY1NA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxOF0gICBnZm46
+IDAwMDA0NjU1ICBtZm46IDAwMDA0NjU1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE4
+XSAgIGdmbjogMDAwMDQ2NTYgIG1mbjogMDAwMDQ2NTYNCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzI6MThdICAgZ2ZuOiAwMDAwNDY1NyAgbWZuOiAwMDAwNDY1Nw0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMjoxOF0gICBnZm46IDAwMDA0NjU4ICBtZm46IDAwMDA0NjU4DQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE4XSAgIGdmbjogMDAwMDQ2NTkgIG1mbjogMDAwMDQ2
+NTkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MThdICAgZ2ZuOiAwMDAwNDY1YSAgbWZu
+OiAwMDAwNDY1YQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxOF0gICBnZm46IDAwMDA0
+NjViICBtZm46IDAwMDA0NjViDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE4XSAgIGdm
+bjogMDAwMDQ2NWMgIG1mbjogMDAwMDQ2NWMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
+MThdICAgZ2ZuOiAwMDAwNDY1ZCAgbWZuOiAwMDAwNDY1ZA0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMjoxOF0gICBnZm46IDAwMDA0NjVlICBtZm46IDAwMDA0NjVlDQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMyOjE4XSAgIGdmbjogMDAwMDQ2NWYgIG1mbjogMDAwMDQ2NWYNCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MThdICAgZ2ZuOiAwMDAwNDY2MCAgbWZuOiAwMDAw
+NDY2MA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxOF0gICBnZm46IDAwMDA0NjYxICBt
+Zm46IDAwMDA0NjYxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE4XSAgIGdmbjogMDAw
+MDQ2NjIgIG1mbjogMDAwMDQ2NjINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MThdICAg
+Z2ZuOiAwMDAwNDY2MyAgbWZuOiAwMDAwNDY2Mw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+MjoxOF0gICBnZm46IDAwMDA0NjY0ICBtZm46IDAwMDA0NjY0DQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMyOjE4XSAgIGdmbjogMDAwMDQ2NjUgIG1mbjogMDAwMDQ2NjUNCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzI6MThdICAgZ2ZuOiAwMDAwNDY2NiAgbWZuOiAwMDAwNDY2Ng0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxOF0gICBnZm46IDAwMDA0NjY3ICBtZm46IDAw
+MDA0NjY3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE4XSAgIGdmbjogMDAwMDQ2Njgg
+IG1mbjogMDAwMDQ2NjgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MThdICAgZ2ZuOiAw
+MDAwNDY2OSAgbWZuOiAwMDAwNDY2OQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxOF0g
+ICBnZm46IDAwMDA0NjZhICBtZm46IDAwMDA0NjZhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMyOjE4XSAgIGdmbjogMDAwMDQ2NmIgIG1mbjogMDAwMDQ2NmINCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzI6MThdICAgZ2ZuOiAwMDAwNDY2YyAgbWZuOiAwMDAwNDY2Yw0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMjoxOF0gICBnZm46IDAwMDA0NjZkICBtZm46IDAwMDA0NjZk
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE4XSAgIGdmbjogMDAwMDQ2NmUgIG1mbjog
+MDAwMDQ2NmUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MThdICAgZ2ZuOiAwMDAwNDY2
+ZiAgbWZuOiAwMDAwNDY2Zg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxOF0gICBnZm46
+IDAwMDA0NjcwICBtZm46IDAwMDA0NjcwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE4
+XSAgIGdmbjogMDAwMDQ2NzEgIG1mbjogMDAwMDQ2NzENCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzI6MThdICAgZ2ZuOiAwMDAwNDY3MiAgbWZuOiAwMDAwNDY3Mg0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMjoxOF0gICBnZm46IDAwMDA0NjczICBtZm46IDAwMDA0NjczDQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE4XSAgIGdmbjogMDAwMDQ2NzQgIG1mbjogMDAwMDQ2
+NzQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MThdICAgZ2ZuOiAwMDAwNDY3NSAgbWZu
+OiAwMDAwNDY3NQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxOF0gICBnZm46IDAwMDA0
+Njc2ICBtZm46IDAwMDA0Njc2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE4XSAgIGdm
+bjogMDAwMDQ2NzcgIG1mbjogMDAwMDQ2NzcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
+MThdICAgZ2ZuOiAwMDAwNDY3OCAgbWZuOiAwMDAwNDY3OA0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMjoxOF0gICBnZm46IDAwMDA0Njc5ICBtZm46IDAwMDA0Njc5DQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMyOjE4XSAgIGdmbjogMDAwMDQ2N2EgIG1mbjogMDAwMDQ2N2ENCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MThdICAgZ2ZuOiAwMDAwNDY3YiAgbWZuOiAwMDAw
+NDY3Yg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxOV0gICBnZm46IDAwMDA0NjdjICBt
+Zm46IDAwMDA0NjdjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE5XSAgIGdmbjogMDAw
+MDQ2N2QgIG1mbjogMDAwMDQ2N2QNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTldICAg
+Z2ZuOiAwMDAwNDY3ZSAgbWZuOiAwMDAwNDY3ZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+MjoxOV0gICBnZm46IDAwMDA0NjdmICBtZm46IDAwMDA0NjdmDQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMyOjE5XSAgIGdmbjogMDAwMDQ2ODAgIG1mbjogMDAwMDQ2ODANCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzI6MTldICAgZ2ZuOiAwMDAwNDY4MSAgbWZuOiAwMDAwNDY4MQ0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxOV0gICBnZm46IDAwMDA0NjgyICBtZm46IDAw
+MDA0NjgyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE5XSAgIGdmbjogMDAwMDQ2ODMg
+IG1mbjogMDAwMDQ2ODMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTldICAgZ2ZuOiAw
+MDAwNDY4NCAgbWZuOiAwMDAwNDY4NA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxOV0g
+ICBnZm46IDAwMDA0Njg1ICBtZm46IDAwMDA0Njg1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMyOjE5XSAgIGdmbjogMDAwMDQ2ODYgIG1mbjogMDAwMDQ2ODYNCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzI6MTldICAgZ2ZuOiAwMDAwNDY4NyAgbWZuOiAwMDAwNDY4Nw0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMjoxOV0gICBnZm46IDAwMDA0Njg4ICBtZm46IDAwMDA0Njg4
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE5XSAgIGdmbjogMDAwMDQ2ODkgIG1mbjog
+MDAwMDQ2ODkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTldICAgZ2ZuOiAwMDAwNDY4
+YSAgbWZuOiAwMDAwNDY4YQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxOV0gICBnZm46
+IDAwMDA0NjhiICBtZm46IDAwMDA0NjhiDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE5
+XSAgIGdmbjogMDAwMDQ2OGMgIG1mbjogMDAwMDQ2OGMNCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzI6MTldICAgZ2ZuOiAwMDAwNDY4ZCAgbWZuOiAwMDAwNDY4ZA0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMjoxOV0gICBnZm46IDAwMDA0NjhlICBtZm46IDAwMDA0NjhlDQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE5XSAgIGdmbjogMDAwMDQ2OGYgIG1mbjogMDAwMDQ2
+OGYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTldICAgZ2ZuOiAwMDAwNDY5MCAgbWZu
+OiAwMDAwNDY5MA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxOV0gICBnZm46IDAwMDA0
+NjkxICBtZm46IDAwMDA0NjkxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE5XSAgIGdm
+bjogMDAwMDQ2OTIgIG1mbjogMDAwMDQ2OTINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
+MTldICAgZ2ZuOiAwMDAwNDY5MyAgbWZuOiAwMDAwNDY5Mw0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMjoxOV0gICBnZm46IDAwMDA0Njk0ICBtZm46IDAwMDA0Njk0DQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMyOjE5XSAgIGdmbjogMDAwMDQ2OTUgIG1mbjogMDAwMDQ2OTUNCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTldICAgZ2ZuOiAwMDAwNDY5NiAgbWZuOiAwMDAw
+NDY5Ng0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxOV0gICBnZm46IDAwMDA0Njk3ICBt
+Zm46IDAwMDA0Njk3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE5XSAgIGdmbjogMDAw
+MDQ2OTggIG1mbjogMDAwMDQ2OTgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTldICAg
+Z2ZuOiAwMDAwNDY5OSAgbWZuOiAwMDAwNDY5OQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+MjoxOV0gICBnZm46IDAwMDA0NjlhICBtZm46IDAwMDA0NjlhDQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMyOjE5XSAgIGdmbjogMDAwMDQ2OWIgIG1mbjogMDAwMDQ2OWINCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzI6MTldICAgZ2ZuOiAwMDAwNDY5YyAgbWZuOiAwMDAwNDY5Yw0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxOV0gICBnZm46IDAwMDA0NjlkICBtZm46IDAw
+MDA0NjlkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE5XSAgIGdmbjogMDAwMDQ2OWUg
+IG1mbjogMDAwMDQ2OWUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTldICAgZ2ZuOiAw
+MDAwNDY5ZiAgbWZuOiAwMDAwNDY5Zg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxOV0g
+ICBnZm46IDAwMDA0NmEwICBtZm46IDAwMDA0NmEwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMyOjE5XSAgIGdmbjogMDAwMDQ2YTEgIG1mbjogMDAwMDQ2YTENCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzI6MTldICAgZ2ZuOiAwMDAwNDZhMiAgbWZuOiAwMDAwNDZhMg0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMjoxOV0gICBnZm46IDAwMDA0NmEzICBtZm46IDAwMDA0NmEz
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE5XSAgIGdmbjogMDAwMDQ2YTQgIG1mbjog
+MDAwMDQ2YTQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTldICAgZ2ZuOiAwMDAwNDZh
+NSAgbWZuOiAwMDAwNDZhNQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxOV0gICBnZm46
+IDAwMDA0NmE2ICBtZm46IDAwMDA0NmE2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE5
+XSAgIGdmbjogMDAwMDQ2YTcgIG1mbjogMDAwMDQ2YTcNCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzI6MTldICAgZ2ZuOiAwMDAwNDZhOCAgbWZuOiAwMDAwNDZhOA0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMjoxOV0gICBnZm46IDAwMDA0NmE5ICBtZm46IDAwMDA0NmE5DQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE5XSAgIGdmbjogMDAwMDQ2YWEgIG1mbjogMDAwMDQ2
+YWENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTldICAgZ2ZuOiAwMDAwNDZhYiAgbWZu
+OiAwMDAwNDZhYg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxOV0gICBnZm46IDAwMDA0
+NmFjICBtZm46IDAwMDA0NmFjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE5XSAgIGdm
+bjogMDAwMDQ2YWQgIG1mbjogMDAwMDQ2YWQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
+MTldICAgZ2ZuOiAwMDAwNDZhZSAgbWZuOiAwMDAwNDZhZQ0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMjoxOV0gICBnZm46IDAwMDA0NmFmICBtZm46IDAwMDA0NmFmDQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMyOjE5XSAgIGdmbjogMDAwMDQ2YjAgIG1mbjogMDAwMDQ2YjANCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTldICAgZ2ZuOiAwMDAwNDZiMSAgbWZuOiAwMDAw
+NDZiMQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxOV0gICBnZm46IDAwMDA0NmIyICBt
+Zm46IDAwMDA0NmIyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE5XSAgIGdmbjogMDAw
+MDQ2YjMgIG1mbjogMDAwMDQ2YjMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTldICAg
+Z2ZuOiAwMDAwNDZiNCAgbWZuOiAwMDAwNDZiNA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+MjoxOV0gICBnZm46IDAwMDA0NmI1ICBtZm46IDAwMDA0NmI1DQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMyOjE5XSAgIGdmbjogMDAwMDQ2YjYgIG1mbjogMDAwMDQ2YjYNCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzI6MTldICAgZ2ZuOiAwMDAwNDZiNyAgbWZuOiAwMDAwNDZiNw0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxOV0gICBnZm46IDAwMDA0NmI4ICBtZm46IDAw
+MDA0NmI4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE5XSAgIGdmbjogMDAwMDQ2Yjkg
+IG1mbjogMDAwMDQ2YjkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTldICAgZ2ZuOiAw
+MDAwNDZiYSAgbWZuOiAwMDAwNDZiYQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxOV0g
+ICBnZm46IDAwMDA0NmJiICBtZm46IDAwMDA0NmJiDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMyOjIwXSAgIGdmbjogMDAwMDQ2YmMgIG1mbjogMDAwMDQ2YmMNCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzI6MjBdICAgZ2ZuOiAwMDAwNDZiZCAgbWZuOiAwMDAwNDZiZA0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMjoyMF0gICBnZm46IDAwMDA0NmJlICBtZm46IDAwMDA0NmJl
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjIwXSAgIGdmbjogMDAwMDQ2YmYgIG1mbjog
+MDAwMDQ2YmYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjBdICAgZ2ZuOiAwMDAwNDZj
+MCAgbWZuOiAwMDAwNDZjMA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyMF0gICBnZm46
+IDAwMDA0NmMxICBtZm46IDAwMDA0NmMxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjIw
+XSAgIGdmbjogMDAwMDQ2YzIgIG1mbjogMDAwMDQ2YzINCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzI6MjBdICAgZ2ZuOiAwMDAwNDZjMyAgbWZuOiAwMDAwNDZjMw0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMjoyMF0gICBnZm46IDAwMDA0NmM0ICBtZm46IDAwMDA0NmM0DQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjIwXSAgIGdmbjogMDAwMDQ2YzUgIG1mbjogMDAwMDQ2
+YzUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjBdICAgZ2ZuOiAwMDAwNDZjNiAgbWZu
+OiAwMDAwNDZjNg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyMF0gICBnZm46IDAwMDA0
+NmM3ICBtZm46IDAwMDA0NmM3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjIwXSAgIGdm
+bjogMDAwMDQ2YzggIG1mbjogMDAwMDQ2YzgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
+MjBdICAgZ2ZuOiAwMDAwNDZjOSAgbWZuOiAwMDAwNDZjOQ0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMjoyMF0gICBnZm46IDAwMDA0NmNhICBtZm46IDAwMDA0NmNhDQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMyOjIwXSAgIGdmbjogMDAwMDQ2Y2IgIG1mbjogMDAwMDQ2Y2INCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjBdICAgZ2ZuOiAwMDAwNDZjYyAgbWZuOiAwMDAw
+NDZjYw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyMF0gICBnZm46IDAwMDA0NmNkICBt
+Zm46IDAwMDA0NmNkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjIwXSAgIGdmbjogMDAw
+MDQ2Y2UgIG1mbjogMDAwMDQ2Y2UNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjBdICAg
+Z2ZuOiAwMDAwNDZjZiAgbWZuOiAwMDAwNDZjZg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+MjoyMF0gICBnZm46IDAwMDA0NmQwICBtZm46IDAwMDA0NmQwDQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMyOjIwXSAgIGdmbjogMDAwMDQ2ZDEgIG1mbjogMDAwMDQ2ZDENCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzI6MjBdICAgZ2ZuOiAwMDAwNDZkMiAgbWZuOiAwMDAwNDZkMg0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyMF0gICBnZm46IDAwMDA0NmQzICBtZm46IDAw
+MDA0NmQzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjIwXSAgIGdmbjogMDAwMDQ2ZDQg
+IG1mbjogMDAwMDQ2ZDQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjBdICAgZ2ZuOiAw
+MDAwNDZkNSAgbWZuOiAwMDAwNDZkNQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyMF0g
+ICBnZm46IDAwMDA0NmQ2ICBtZm46IDAwMDA0NmQ2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMyOjIwXSAgIGdmbjogMDAwMDQ2ZDcgIG1mbjogMDAwMDQ2ZDcNCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzI6MjBdICAgZ2ZuOiAwMDAwNDZkOCAgbWZuOiAwMDAwNDZkOA0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMjoyMF0gICBnZm46IDAwMDA0NmQ5ICBtZm46IDAwMDA0NmQ5
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjIwXSAgIGdmbjogMDAwMDQ2ZGEgIG1mbjog
+MDAwMDQ2ZGENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjBdICAgZ2ZuOiAwMDAwNDZk
+YiAgbWZuOiAwMDAwNDZkYg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyMF0gICBnZm46
+IDAwMDA0NmRjICBtZm46IDAwMDA0NmRjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjIw
+XSAgIGdmbjogMDAwMDQ2ZGQgIG1mbjogMDAwMDQ2ZGQNCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzI6MjBdICAgZ2ZuOiAwMDAwNDZkZSAgbWZuOiAwMDAwNDZkZQ0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMjoyMF0gICBnZm46IDAwMDA0NmRmICBtZm46IDAwMDA0NmRmDQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjIwXSAgIGdmbjogMDAwMDQ2ZTAgIG1mbjogMDAwMDQ2
+ZTANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjBdICAgZ2ZuOiAwMDAwNDZlMSAgbWZu
+OiAwMDAwNDZlMQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyMF0gICBnZm46IDAwMDA0
+NmUyICBtZm46IDAwMDA0NmUyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjIwXSAgIGdm
+bjogMDAwMDQ2ZTMgIG1mbjogMDAwMDQ2ZTMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
+MjBdICAgZ2ZuOiAwMDAwNDZlNCAgbWZuOiAwMDAwNDZlNA0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMjoyMF0gICBnZm46IDAwMDA0NmU1ICBtZm46IDAwMDA0NmU1DQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMyOjIwXSAgIGdmbjogMDAwMDQ2ZTYgIG1mbjogMDAwMDQ2ZTYNCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjBdICAgZ2ZuOiAwMDAwNDZlNyAgbWZuOiAwMDAw
+NDZlNw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyMF0gICBnZm46IDAwMDA0NmU4ICBt
+Zm46IDAwMDA0NmU4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjIwXSAgIGdmbjogMDAw
+MDQ2ZTkgIG1mbjogMDAwMDQ2ZTkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjBdICAg
+Z2ZuOiAwMDAwNDZlYSAgbWZuOiAwMDAwNDZlYQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+MjoyMF0gICBnZm46IDAwMDA0NmViICBtZm46IDAwMDA0NmViDQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMyOjIwXSAgIGdmbjogMDAwMDQ2ZWMgIG1mbjogMDAwMDQ2ZWMNCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzI6MjBdICAgZ2ZuOiAwMDAwNDZlZCAgbWZuOiAwMDAwNDZlZA0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyMF0gICBnZm46IDAwMDA0NmVlICBtZm46IDAw
+MDA0NmVlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjIwXSAgIGdmbjogMDAwMDQ2ZWYg
+IG1mbjogMDAwMDQ2ZWYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjBdICAgZ2ZuOiAw
+MDAwNDZmMCAgbWZuOiAwMDAwNDZmMA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyMF0g
+ICBnZm46IDAwMDA0NmYxICBtZm46IDAwMDA0NmYxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMyOjIwXSAgIGdmbjogMDAwMDQ2ZjIgIG1mbjogMDAwMDQ2ZjINCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzI6MjBdICAgZ2ZuOiAwMDAwNDZmMyAgbWZuOiAwMDAwNDZmMw0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMjoyMF0gICBnZm46IDAwMDA0NmY0ICBtZm46IDAwMDA0NmY0
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjIwXSAgIGdmbjogMDAwMDQ2ZjUgIG1mbjog
+MDAwMDQ2ZjUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjBdICAgZ2ZuOiAwMDAwNDZm
+NiAgbWZuOiAwMDAwNDZmNg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyMF0gICBnZm46
+IDAwMDA0NmY3ICBtZm46IDAwMDA0NmY3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjIw
+XSAgIGdmbjogMDAwMDQ2ZjggIG1mbjogMDAwMDQ2ZjgNCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzI6MjBdICAgZ2ZuOiAwMDAwNDZmOSAgbWZuOiAwMDAwNDZmOQ0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMjoyMF0gICBnZm46IDAwMDA0NmZhICBtZm46IDAwMDA0NmZhDQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjIwXSAgIGdmbjogMDAwMDQ2ZmIgIG1mbjogMDAwMDQ2
+ZmINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjFdICAgZ2ZuOiAwMDAwNDZmYyAgbWZu
+OiAwMDAwNDZmYw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyMV0gICBnZm46IDAwMDA0
+NmZkICBtZm46IDAwMDA0NmZkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjIxXSAgIGdm
+bjogMDAwMDQ2ZmUgIG1mbjogMDAwMDQ2ZmUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
+MjFdICAgZ2ZuOiAwMDAwNDZmZiAgbWZuOiAwMDAwNDZmZg0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMjoyMV0gICBnZm46IDAwMDA0NzAwICBtZm46IDAwMDA0NzAwDQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMyOjIxXSAgIGdmbjogMDAwMDQ3MDEgIG1mbjogMDAwMDQ3MDENCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjFdICAgZ2ZuOiAwMDAwNDcwMiAgbWZuOiAwMDAw
+NDcwMg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyMV0gICBnZm46IDAwMDA0NzAzICBt
+Zm46IDAwMDA0NzAzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjIxXSAgIGdmbjogMDAw
+MDQ3MDQgIG1mbjogMDAwMDQ3MDQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjFdICAg
+Z2ZuOiAwMDAwNDcwNSAgbWZuOiAwMDAwNDcwNQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+MjoyMV0gICBnZm46IDAwMDA0NzA2ICBtZm46IDAwMDA0NzA2DQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMyOjIxXSAgIGdmbjogMDAwMDQ3MDcgIG1mbjogMDAwMDQ3MDcNCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzI6MjFdICAgZ2ZuOiAwMDAwNDcwOCAgbWZuOiAwMDAwNDcwOA0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyMV0gICBnZm46IDAwMDA0NzA5ICBtZm46IDAw
+MDA0NzA5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjIxXSAgIGdmbjogMDAwMDQ3MGEg
+IG1mbjogMDAwMDQ3MGENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjFdICAgZ2ZuOiAw
+MDAwNDcwYiAgbWZuOiAwMDAwNDcwYg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyMV0g
+ICBnZm46IDAwMDA0NzBjICBtZm46IDAwMDA0NzBjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMyOjIxXSAgIGdmbjogMDAwMDQ3MGQgIG1mbjogMDAwMDQ3MGQNCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzI6MjFdICAgZ2ZuOiAwMDAwNDcwZSAgbWZuOiAwMDAwNDcwZQ0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMjoyMV0gICBnZm46IDAwMDA0NzBmICBtZm46IDAwMDA0NzBm
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjIxXSAgIGdmbjogMDAwMDQ3MTAgIG1mbjog
+MDAwMDQ3MTANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjFdICAgZ2ZuOiAwMDAwNDcx
+MSAgbWZuOiAwMDAwNDcxMQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyMV0gICBnZm46
+IDAwMDA0NzEyICBtZm46IDAwMDA0NzEyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjIx
+XSAgIGdmbjogMDAwMDQ3MTMgIG1mbjogMDAwMDQ3MTMNCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzI6MjFdICAgZ2ZuOiAwMDAwNDcxNCAgbWZuOiAwMDAwNDcxNA0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMjoyMV0gICBnZm46IDAwMDA0NzE1ICBtZm46IDAwMDA0NzE1DQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjIxXSAgIGdmbjogMDAwMDQ3MTYgIG1mbjogMDAwMDQ3
+MTYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjFdICAgZ2ZuOiAwMDAwNDcxNyAgbWZu
+OiAwMDAwNDcxNw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyMV0gICBnZm46IDAwMDA0
+NzE4ICBtZm46IDAwMDA0NzE4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjIxXSAgIGdm
+bjogMDAwMDQ3MTkgIG1mbjogMDAwMDQ3MTkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
+MjFdICAgZ2ZuOiAwMDAwNDcxYSAgbWZuOiAwMDAwNDcxYQ0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMjoyMV0gICBnZm46IDAwMDA0NzFiICBtZm46IDAwMDA0NzFiDQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMyOjIxXSAgIGdmbjogMDAwMDQ3MWMgIG1mbjogMDAwMDQ3MWMNCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjFdICAgZ2ZuOiAwMDAwNDcxZCAgbWZuOiAwMDAw
+NDcxZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyMV0gICBnZm46IDAwMDA0NzFlICBt
+Zm46IDAwMDA0NzFlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjIxXSAgIGdmbjogMDAw
+MDQ3MWYgIG1mbjogMDAwMDQ3MWYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjFdICAg
+Z2ZuOiAwMDAwNDcyMCAgbWZuOiAwMDAwNDcyMA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+MjoyMV0gICBnZm46IDAwMDA0NzIxICBtZm46IDAwMDA0NzIxDQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMyOjIxXSAgIGdmbjogMDAwMDQ3MjIgIG1mbjogMDAwMDQ3MjINCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzI6MjFdICAgZ2ZuOiAwMDAwNDcyMyAgbWZuOiAwMDAwNDcyMw0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyMV0gICBnZm46IDAwMDA0NzI0ICBtZm46IDAw
+MDA0NzI0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjIxXSAgIGdmbjogMDAwMDQ3MjUg
+IG1mbjogMDAwMDQ3MjUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjFdICAgZ2ZuOiAw
+MDAwNDcyNiAgbWZuOiAwMDAwNDcyNg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyMV0g
+ICBnZm46IDAwMDA0NzI3ICBtZm46IDAwMDA0NzI3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMyOjIxXSAgIGdmbjogMDAwMDQ3MjggIG1mbjogMDAwMDQ3MjgNCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzI6MjFdICAgZ2ZuOiAwMDAwNDcyOSAgbWZuOiAwMDAwNDcyOQ0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMjoyMV0gICBnZm46IDAwMDA0NzJhICBtZm46IDAwMDA0NzJh
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjIxXSAgIGdmbjogMDAwMDQ3MmIgIG1mbjog
+MDAwMDQ3MmINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjFdICAgZ2ZuOiAwMDAwNDcy
+YyAgbWZuOiAwMDAwNDcyYw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyMV0gICBnZm46
+IDAwMDA0NzJkICBtZm46IDAwMDA0NzJkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjIx
+XSAgIGdmbjogMDAwMDQ3MmUgIG1mbjogMDAwMDQ3MmUNCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzI6MjFdICAgZ2ZuOiAwMDAwNDcyZiAgbWZuOiAwMDAwNDcyZg0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMjoyMV0gICBnZm46IDAwMDA0NzMwICBtZm46IDAwMDA0NzMwDQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjIxXSAgIGdmbjogMDAwMDQ3MzEgIG1mbjogMDAwMDQ3
+MzENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjFdICAgZ2ZuOiAwMDAwNDczMiAgbWZu
+OiAwMDAwNDczMg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyMV0gICBnZm46IDAwMDA0
+NzMzICBtZm46IDAwMDA0NzMzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjIxXSAgIGdm
+bjogMDAwMDQ3MzQgIG1mbjogMDAwMDQ3MzQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
+MjFdICAgZ2ZuOiAwMDAwNDczNSAgbWZuOiAwMDAwNDczNQ0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMjoyMV0gICBnZm46IDAwMDA0NzM2ICBtZm46IDAwMDA0NzM2DQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMyOjIxXSAgIGdmbjogMDAwMDQ3MzcgIG1mbjogMDAwMDQ3MzcNCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjFdICAgZ2ZuOiAwMDAwNDczOCAgbWZuOiAwMDAw
+NDczOA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyMV0gICBnZm46IDAwMDA0NzM5ICBt
+Zm46IDAwMDA0NzM5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjIxXSAgIGdmbjogMDAw
+MDQ3M2EgIG1mbjogMDAwMDQ3M2ENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjFdICAg
+Z2ZuOiAwMDAwNDczYiAgbWZuOiAwMDAwNDczYg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+MjoyMl0gICBnZm46IDAwMDA0NzNjICBtZm46IDAwMDA0NzNjDQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMyOjIyXSAgIGdmbjogMDAwMDQ3M2QgIG1mbjogMDAwMDQ3M2QNCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzI6MjJdICAgZ2ZuOiAwMDAwNDczZSAgbWZuOiAwMDAwNDczZQ0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyMl0gICBnZm46IDAwMDA0NzNmICBtZm46IDAw
+MDA0NzNmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjIyXSAgIGdmbjogMDAwMDQ3NDAg
+IG1mbjogMDAwMDQ3NDANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjJdICAgZ2ZuOiAw
+MDAwNDc0MSAgbWZuOiAwMDAwNDc0MQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyMl0g
+ICBnZm46IDAwMDA0NzQyICBtZm46IDAwMDA0NzQyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMyOjIyXSAgIGdmbjogMDAwMDQ3NDMgIG1mbjogMDAwMDQ3NDMNCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzI6MjJdICAgZ2ZuOiAwMDAwNDc0NCAgbWZuOiAwMDAwNDc0NA0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMjoyMl0gICBnZm46IDAwMDA0NzQ1ICBtZm46IDAwMDA0NzQ1
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjIyXSAgIGdmbjogMDAwMDQ3NDYgIG1mbjog
+MDAwMDQ3NDYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjJdICAgZ2ZuOiAwMDAwNDc0
+NyAgbWZuOiAwMDAwNDc0Nw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyMl0gICBnZm46
+IDAwMDA0NzQ4ICBtZm46IDAwMDA0NzQ4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjIy
+XSAgIGdmbjogMDAwMDQ3NDkgIG1mbjogMDAwMDQ3NDkNCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzI6MjJdICAgZ2ZuOiAwMDAwNDc0YSAgbWZuOiAwMDAwNDc0YQ0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMjoyMl0gICBnZm46IDAwMDA0NzRiICBtZm46IDAwMDA0NzRiDQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjIyXSAgIGdmbjogMDAwMDQ3NGMgIG1mbjogMDAwMDQ3
+NGMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjJdICAgZ2ZuOiAwMDAwNDc0ZCAgbWZu
+OiAwMDAwNDc0ZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyMl0gICBnZm46IDAwMDA0
+NzRlICBtZm46IDAwMDA0NzRlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjIyXSAgIGdm
+bjogMDAwMDQ3NGYgIG1mbjogMDAwMDQ3NGYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
+MjJdICAgZ2ZuOiAwMDAwNDc1MCAgbWZuOiAwMDAwNDc1MA0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMjoyMl0gICBnZm46IDAwMDA0NzUxICBtZm46IDAwMDA0NzUxDQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMyOjIyXSAgIGdmbjogMDAwMDQ3NTIgIG1mbjogMDAwMDQ3NTINCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjJdICAgZ2ZuOiAwMDAwNDc1MyAgbWZuOiAwMDAw
+NDc1Mw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyMl0gICBnZm46IDAwMDA0NzU0ICBt
+Zm46IDAwMDA0NzU0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjIyXSAgIGdmbjogMDAw
+MDQ3NTUgIG1mbjogMDAwMDQ3NTUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjJdICAg
+Z2ZuOiAwMDAwNDc1NiAgbWZuOiAwMDAwNDc1Ng0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+MjoyMl0gICBnZm46IDAwMDA0NzU3ICBtZm46IDAwMDA0NzU3DQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMyOjIyXSAgIGdmbjogMDAwMDQ3NTggIG1mbjogMDAwMDQ3NTgNCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzI6MjJdICAgZ2ZuOiAwMDAwNDc1OSAgbWZuOiAwMDAwNDc1OQ0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyMl0gICBnZm46IDAwMDA0NzVhICBtZm46IDAw
+MDA0NzVhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjIyXSAgIGdmbjogMDAwMDQ3NWIg
+IG1mbjogMDAwMDQ3NWINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjJdICAgZ2ZuOiAw
+MDAwNDc1YyAgbWZuOiAwMDAwNDc1Yw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyMl0g
+ICBnZm46IDAwMDA0NzVkICBtZm46IDAwMDA0NzVkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMyOjIyXSAgIGdmbjogMDAwMDQ3NWUgIG1mbjogMDAwMDQ3NWUNCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzI6MjJdICAgZ2ZuOiAwMDAwNDc1ZiAgbWZuOiAwMDAwNDc1Zg0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMjoyMl0gICBnZm46IDAwMDA0NzYwICBtZm46IDAwMDA0NzYw
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjIyXSAgIGdmbjogMDAwMDQ3NjEgIG1mbjog
+MDAwMDQ3NjENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjJdICAgZ2ZuOiAwMDAwNDc2
+MiAgbWZuOiAwMDAwNDc2Mg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyMl0gICBnZm46
+IDAwMDA0NzYzICBtZm46IDAwMDA0NzYzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjIy
+XSAgIGdmbjogMDAwMDQ3NjQgIG1mbjogMDAwMDQ3NjQNCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzI6MjJdICAgZ2ZuOiAwMDAwNDc2NSAgbWZuOiAwMDAwNDc2NQ0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMjoyMl0gICBnZm46IDAwMDA0NzY2ICBtZm46IDAwMDA0NzY2DQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjIyXSAgIGdmbjogMDAwMDQ3NjcgIG1mbjogMDAwMDQ3
+NjcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjJdICAgZ2ZuOiAwMDAwNDc2OCAgbWZu
+OiAwMDAwNDc2OA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyMl0gICBnZm46IDAwMDA0
+NzY5ICBtZm46IDAwMDA0NzY5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjIyXSAgIGdm
+bjogMDAwMDQ3NmEgIG1mbjogMDAwMDQ3NmENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
+MjJdICAgZ2ZuOiAwMDAwNDc2YiAgbWZuOiAwMDAwNDc2Yg0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMjoyMl0gICBnZm46IDAwMDA0NzZjICBtZm46IDAwMDA0NzZjDQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMyOjIyXSAgIGdmbjogMDAwMDQ3NmQgIG1mbjogMDAwMDQ3NmQNCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjJdICAgZ2ZuOiAwMDAwNDc2ZSAgbWZuOiAwMDAw
+NDc2ZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyMl0gICBnZm46IDAwMDA0NzZmICBt
+Zm46IDAwMDA0NzZmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjIyXSAgIGdmbjogMDAw
+MDQ3NzAgIG1mbjogMDAwMDQ3NzANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjJdICAg
+Z2ZuOiAwMDAwNDc3MSAgbWZuOiAwMDAwNDc3MQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+MjoyMl0gICBnZm46IDAwMDA0NzcyICBtZm46IDAwMDA0NzcyDQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMyOjIyXSAgIGdmbjogMDAwMDQ3NzMgIG1mbjogMDAwMDQ3NzMNCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzI6MjJdICAgZ2ZuOiAwMDAwNDc3NCAgbWZuOiAwMDAwNDc3NA0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyMl0gICBnZm46IDAwMDA0Nzc1ICBtZm46IDAw
+MDA0Nzc1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjIyXSAgIGdmbjogMDAwMDQ3NzYg
+IG1mbjogMDAwMDQ3NzYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjJdICAgZ2ZuOiAw
+MDAwNDc3NyAgbWZuOiAwMDAwNDc3Nw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyMl0g
+ICBnZm46IDAwMDA0Nzc4ICBtZm46IDAwMDA0Nzc4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMyOjIyXSAgIGdmbjogMDAwMDQ3NzkgIG1mbjogMDAwMDQ3NzkNCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzI6MjJdICAgZ2ZuOiAwMDAwNDc3YSAgbWZuOiAwMDAwNDc3YQ0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMjoyMl0gICBnZm46IDAwMDA0NzdiICBtZm46IDAwMDA0Nzdi
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjIyXSAgIGdmbjogMDAwMDQ3N2MgIG1mbjog
+MDAwMDQ3N2MNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjNdICAgZ2ZuOiAwMDAwNDc3
+ZCAgbWZuOiAwMDAwNDc3ZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyM10gICBnZm46
+IDAwMDA0NzdlICBtZm46IDAwMDA0NzdlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjIz
+XSAgIGdmbjogMDAwMDQ3N2YgIG1mbjogMDAwMDQ3N2YNCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzI6MjNdICAgZ2ZuOiAwMDAwNDc4MCAgbWZuOiAwMDAwNDc4MA0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMjoyM10gICBnZm46IDAwMDA0NzgxICBtZm46IDAwMDA0NzgxDQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjIzXSAgIGdmbjogMDAwMDQ3ODIgIG1mbjogMDAwMDQ3
+ODINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjNdICAgZ2ZuOiAwMDAwNDc4MyAgbWZu
+OiAwMDAwNDc4Mw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyM10gICBnZm46IDAwMDA0
+Nzg0ICBtZm46IDAwMDA0Nzg0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjIzXSAgIGdm
+bjogMDAwMDQ3ODUgIG1mbjogMDAwMDQ3ODUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
+MjNdICAgZ2ZuOiAwMDAwNDc4NiAgbWZuOiAwMDAwNDc4Ng0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMjoyM10gICBnZm46IDAwMDA0Nzg3ICBtZm46IDAwMDA0Nzg3DQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMyOjIzXSAgIGdmbjogMDAwMDQ3ODggIG1mbjogMDAwMDQ3ODgNCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjNdICAgZ2ZuOiAwMDAwNDc4OSAgbWZuOiAwMDAw
+NDc4OQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyM10gICBnZm46IDAwMDA0NzhhICBt
+Zm46IDAwMDA0NzhhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjIzXSAgIGdmbjogMDAw
+MDQ3OGIgIG1mbjogMDAwMDQ3OGINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjNdICAg
+Z2ZuOiAwMDAwNDc4YyAgbWZuOiAwMDAwNDc4Yw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+MjoyM10gICBnZm46IDAwMDA0NzhkICBtZm46IDAwMDA0NzhkDQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMyOjIzXSAgIGdmbjogMDAwMDQ3OGUgIG1mbjogMDAwMDQ3OGUNCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzI6MjNdICAgZ2ZuOiAwMDAwNDc4ZiAgbWZuOiAwMDAwNDc4Zg0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyM10gICBnZm46IDAwMDA0NzkwICBtZm46IDAw
+MDA0NzkwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjIzXSAgIGdmbjogMDAwMDQ3OTEg
+IG1mbjogMDAwMDQ3OTENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjNdICAgZ2ZuOiAw
+MDAwNDc5MiAgbWZuOiAwMDAwNDc5Mg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyM10g
+ICBnZm46IDAwMDA0NzkzICBtZm46IDAwMDA0NzkzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMyOjIzXSAgIGdmbjogMDAwMDQ3OTQgIG1mbjogMDAwMDQ3OTQNCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzI6MjNdICAgZ2ZuOiAwMDAwNDc5NSAgbWZuOiAwMDAwNDc5NQ0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMjoyM10gICBnZm46IDAwMDA0Nzk2ICBtZm46IDAwMDA0Nzk2
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjIzXSAgIGdmbjogMDAwMDQ3OTcgIG1mbjog
+MDAwMDQ3OTcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjNdICAgZ2ZuOiAwMDAwNDc5
+OCAgbWZuOiAwMDAwNDc5OA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyM10gICBnZm46
+IDAwMDA0Nzk5ICBtZm46IDAwMDA0Nzk5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjIz
+XSAgIGdmbjogMDAwMDQ3OWEgIG1mbjogMDAwMDQ3OWENCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzI6MjNdICAgZ2ZuOiAwMDAwNDc5YiAgbWZuOiAwMDAwNDc5Yg0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMjoyM10gICBnZm46IDAwMDA0NzljICBtZm46IDAwMDA0NzljDQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjIzXSAgIGdmbjogMDAwMDQ3OWQgIG1mbjogMDAwMDQ3
+OWQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjNdICAgZ2ZuOiAwMDAwNDc5ZSAgbWZu
+OiAwMDAwNDc5ZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyM10gICBnZm46IDAwMDA0
+NzlmICBtZm46IDAwMDA0NzlmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjIzXSAgIGdm
+bjogMDAwMDQ3YTAgIG1mbjogMDAwMDQ3YTANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
+MjNdICAgZ2ZuOiAwMDAwNDdhMSAgbWZuOiAwMDAwNDdhMQ0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMjoyM10gICBnZm46IDAwMDA0N2EyICBtZm46IDAwMDA0N2EyDQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMyOjIzXSAgIGdmbjogMDAwMDQ3YTMgIG1mbjogMDAwMDQ3YTMNCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjNdICAgZ2ZuOiAwMDAwNDdhNCAgbWZuOiAwMDAw
+NDdhNA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyM10gICBnZm46IDAwMDA0N2E1ICBt
+Zm46IDAwMDA0N2E1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjIzXSAgIGdmbjogMDAw
+MDQ3YTYgIG1mbjogMDAwMDQ3YTYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjNdICAg
+Z2ZuOiAwMDAwNDdhNyAgbWZuOiAwMDAwNDdhNw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+MjoyM10gICBnZm46IDAwMDA0N2E4ICBtZm46IDAwMDA0N2E4DQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMyOjIzXSAgIGdmbjogMDAwMDQ3YTkgIG1mbjogMDAwMDQ3YTkNCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzI6MjNdICAgZ2ZuOiAwMDAwNDdhYSAgbWZuOiAwMDAwNDdhYQ0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyM10gICBnZm46IDAwMDA0N2FiICBtZm46IDAw
+MDA0N2FiDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjIzXSAgIGdmbjogMDAwMDQ3YWMg
+IG1mbjogMDAwMDQ3YWMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjNdICAgZ2ZuOiAw
+MDAwNDdhZCAgbWZuOiAwMDAwNDdhZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyM10g
+ICBnZm46IDAwMDA0N2FlICBtZm46IDAwMDA0N2FlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMyOjIzXSAgIGdmbjogMDAwMDQ3YWYgIG1mbjogMDAwMDQ3YWYNCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzI6MjNdICAgZ2ZuOiAwMDAwNDdiMCAgbWZuOiAwMDAwNDdiMA0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMjoyM10gICBnZm46IDAwMDA0N2IxICBtZm46IDAwMDA0N2Ix
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjIzXSAgIGdmbjogMDAwMDQ3YjIgIG1mbjog
+MDAwMDQ3YjINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjNdICAgZ2ZuOiAwMDAwNDdi
+MyAgbWZuOiAwMDAwNDdiMw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyM10gICBnZm46
+IDAwMDA0N2I0ICBtZm46IDAwMDA0N2I0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjIz
+XSAgIGdmbjogMDAwMDQ3YjUgIG1mbjogMDAwMDQ3YjUNCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzI6MjNdICAgZ2ZuOiAwMDAwNDdiNiAgbWZuOiAwMDAwNDdiNg0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMjoyM10gICBnZm46IDAwMDA0N2I3ICBtZm46IDAwMDA0N2I3DQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjIzXSAgIGdmbjogMDAwMDQ3YjggIG1mbjogMDAwMDQ3
+YjgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjNdICAgZ2ZuOiAwMDAwNDdiOSAgbWZu
+OiAwMDAwNDdiOQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyM10gICBnZm46IDAwMDA0
+N2JhICBtZm46IDAwMDA0N2JhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjIzXSAgIGdm
+bjogMDAwMDQ3YmIgIG1mbjogMDAwMDQ3YmINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
+MjNdICAgZ2ZuOiAwMDAwNDdiYyAgbWZuOiAwMDAwNDdiYw0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMjoyNF0gICBnZm46IDAwMDA0N2JkICBtZm46IDAwMDA0N2JkDQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMyOjI0XSAgIGdmbjogMDAwMDQ3YmUgIG1mbjogMDAwMDQ3YmUNCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjRdICAgZ2ZuOiAwMDAwNDdiZiAgbWZuOiAwMDAw
+NDdiZg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyNF0gICBnZm46IDAwMDA0N2MwICBt
+Zm46IDAwMDA0N2MwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI0XSAgIGdmbjogMDAw
+MDQ3YzEgIG1mbjogMDAwMDQ3YzENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjRdICAg
+Z2ZuOiAwMDAwNDdjMiAgbWZuOiAwMDAwNDdjMg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+MjoyNF0gICBnZm46IDAwMDA0N2MzICBtZm46IDAwMDA0N2MzDQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMyOjI0XSAgIGdmbjogMDAwMDQ3YzQgIG1mbjogMDAwMDQ3YzQNCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzI6MjRdICAgZ2ZuOiAwMDAwNDdjNSAgbWZuOiAwMDAwNDdjNQ0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyNF0gICBnZm46IDAwMDA0N2M2ICBtZm46IDAw
+MDA0N2M2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI0XSAgIGdmbjogMDAwMDQ3Yzcg
+IG1mbjogMDAwMDQ3YzcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjRdICAgZ2ZuOiAw
+MDAwNDdjOCAgbWZuOiAwMDAwNDdjOA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyNF0g
+ICBnZm46IDAwMDA0N2M5ICBtZm46IDAwMDA0N2M5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMyOjI0XSAgIGdmbjogMDAwMDQ3Y2EgIG1mbjogMDAwMDQ3Y2ENCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzI6MjRdICAgZ2ZuOiAwMDAwNDdjYiAgbWZuOiAwMDAwNDdjYg0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMjoyNF0gICBnZm46IDAwMDA0N2NjICBtZm46IDAwMDA0N2Nj
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI0XSAgIGdmbjogMDAwMDQ3Y2QgIG1mbjog
+MDAwMDQ3Y2QNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjRdICAgZ2ZuOiAwMDAwNDdj
+ZSAgbWZuOiAwMDAwNDdjZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyNF0gICBnZm46
+IDAwMDA0N2NmICBtZm46IDAwMDA0N2NmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI0
+XSAgIGdmbjogMDAwMDQ3ZDAgIG1mbjogMDAwMDQ3ZDANCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzI6MjRdICAgZ2ZuOiAwMDAwNDdkMSAgbWZuOiAwMDAwNDdkMQ0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMjoyNF0gICBnZm46IDAwMDA0N2QyICBtZm46IDAwMDA0N2QyDQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI0XSAgIGdmbjogMDAwMDQ3ZDMgIG1mbjogMDAwMDQ3
+ZDMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjRdICAgZ2ZuOiAwMDAwNDdkNCAgbWZu
+OiAwMDAwNDdkNA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyNF0gICBnZm46IDAwMDA0
+N2Q1ICBtZm46IDAwMDA0N2Q1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI0XSAgIGdm
+bjogMDAwMDQ3ZDYgIG1mbjogMDAwMDQ3ZDYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
+MjRdICAgZ2ZuOiAwMDAwNDdkNyAgbWZuOiAwMDAwNDdkNw0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMjoyNF0gICBnZm46IDAwMDA0N2Q4ICBtZm46IDAwMDA0N2Q4DQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMyOjI0XSAgIGdmbjogMDAwMDQ3ZDkgIG1mbjogMDAwMDQ3ZDkNCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjRdICAgZ2ZuOiAwMDAwNDdkYSAgbWZuOiAwMDAw
+NDdkYQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyNF0gICBnZm46IDAwMDA0N2RiICBt
+Zm46IDAwMDA0N2RiDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI0XSAgIGdmbjogMDAw
+MDQ3ZGMgIG1mbjogMDAwMDQ3ZGMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjRdICAg
+Z2ZuOiAwMDAwNDdkZCAgbWZuOiAwMDAwNDdkZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+MjoyNF0gICBnZm46IDAwMDA0N2RlICBtZm46IDAwMDA0N2RlDQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMyOjI0XSAgIGdmbjogMDAwMDQ3ZGYgIG1mbjogMDAwMDQ3ZGYNCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzI6MjRdICAgZ2ZuOiAwMDAwNDdlMCAgbWZuOiAwMDAwNDdlMA0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyNF0gICBnZm46IDAwMDA0N2UxICBtZm46IDAw
+MDA0N2UxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI0XSAgIGdmbjogMDAwMDQ3ZTIg
+IG1mbjogMDAwMDQ3ZTINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjRdICAgZ2ZuOiAw
+MDAwNDdlMyAgbWZuOiAwMDAwNDdlMw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyNF0g
+ICBnZm46IDAwMDA0N2U0ICBtZm46IDAwMDA0N2U0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMyOjI0XSAgIGdmbjogMDAwMDQ3ZTUgIG1mbjogMDAwMDQ3ZTUNCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzI6MjRdICAgZ2ZuOiAwMDAwNDdlNiAgbWZuOiAwMDAwNDdlNg0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMjoyNF0gICBnZm46IDAwMDA0N2U3ICBtZm46IDAwMDA0N2U3
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI0XSAgIGdmbjogMDAwMDQ3ZTggIG1mbjog
+MDAwMDQ3ZTgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjRdICAgZ2ZuOiAwMDAwNDdl
+OSAgbWZuOiAwMDAwNDdlOQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyNF0gICBnZm46
+IDAwMDA0N2VhICBtZm46IDAwMDA0N2VhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI0
+XSAgIGdmbjogMDAwMDQ3ZWIgIG1mbjogMDAwMDQ3ZWINCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzI6MjRdICAgZ2ZuOiAwMDAwNDdlYyAgbWZuOiAwMDAwNDdlYw0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMjoyNF0gICBnZm46IDAwMDA0N2VkICBtZm46IDAwMDA0N2VkDQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI0XSAgIGdmbjogMDAwMDQ3ZWUgIG1mbjogMDAwMDQ3
+ZWUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjRdICAgZ2ZuOiAwMDAwNDdlZiAgbWZu
+OiAwMDAwNDdlZg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyNF0gICBnZm46IDAwMDA0
+N2YwICBtZm46IDAwMDA0N2YwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI0XSAgIGdm
+bjogMDAwMDQ3ZjEgIG1mbjogMDAwMDQ3ZjENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
+MjRdICAgZ2ZuOiAwMDAwNDdmMiAgbWZuOiAwMDAwNDdmMg0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMjoyNF0gICBnZm46IDAwMDA0N2YzICBtZm46IDAwMDA0N2YzDQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMyOjI0XSAgIGdmbjogMDAwMDQ3ZjQgIG1mbjogMDAwMDQ3ZjQNCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjRdICAgZ2ZuOiAwMDAwNDdmNSAgbWZuOiAwMDAw
+NDdmNQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyNF0gICBnZm46IDAwMDA0N2Y2ICBt
+Zm46IDAwMDA0N2Y2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI0XSAgIGdmbjogMDAw
+MDQ3ZjcgIG1mbjogMDAwMDQ3ZjcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjRdICAg
+Z2ZuOiAwMDAwNDdmOCAgbWZuOiAwMDAwNDdmOA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+MjoyNF0gICBnZm46IDAwMDA0N2Y5ICBtZm46IDAwMDA0N2Y5DQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMyOjI0XSAgIGdmbjogMDAwMDQ3ZmEgIG1mbjogMDAwMDQ3ZmENCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzI6MjRdICAgZ2ZuOiAwMDAwNDdmYiAgbWZuOiAwMDAwNDdmYg0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyNF0gICBnZm46IDAwMDA0N2ZjICBtZm46IDAw
+MDA0N2ZjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI1XSAgIGdmbjogMDAwMDQ3ZmQg
+IG1mbjogMDAwMDQ3ZmQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjVdICAgZ2ZuOiAw
+MDAwNDdmZSAgbWZuOiAwMDAwNDdmZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyNV0g
+ICBnZm46IDAwMDA0N2ZmICBtZm46IDAwMDA0N2ZmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMyOjI1XSAgIGdmbjogMDAwMDQ4MDAgIG1mbjogMDAwMDQ4MDANCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzI6MjVdICAgZ2ZuOiAwMDAwNDgwMSAgbWZuOiAwMDAwNDgwMQ0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMjoyNV0gICBnZm46IDAwMDA0ODAyICBtZm46IDAwMDA0ODAy
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI1XSAgIGdmbjogMDAwMDQ4MDMgIG1mbjog
+MDAwMDQ4MDMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjVdICAgZ2ZuOiAwMDAwNDgw
+NCAgbWZuOiAwMDAwNDgwNA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyNV0gICBnZm46
+IDAwMDA0ODA1ICBtZm46IDAwMDA0ODA1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI1
+XSAgIGdmbjogMDAwMDQ4MDYgIG1mbjogMDAwMDQ4MDYNCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzI6MjVdICAgZ2ZuOiAwMDAwNDgwNyAgbWZuOiAwMDAwNDgwNw0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMjoyNV0gICBnZm46IDAwMDA0ODA4ICBtZm46IDAwMDA0ODA4DQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI1XSAgIGdmbjogMDAwMDQ4MDkgIG1mbjogMDAwMDQ4
+MDkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjVdICAgZ2ZuOiAwMDAwNDgwYSAgbWZu
+OiAwMDAwNDgwYQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyNV0gICBnZm46IDAwMDA0
+ODBiICBtZm46IDAwMDA0ODBiDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI1XSAgIGdm
+bjogMDAwMDQ4MGMgIG1mbjogMDAwMDQ4MGMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
+MjVdICAgZ2ZuOiAwMDAwNDgwZCAgbWZuOiAwMDAwNDgwZA0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMjoyNV0gICBnZm46IDAwMDA0ODBlICBtZm46IDAwMDA0ODBlDQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMyOjI1XSAgIGdmbjogMDAwMDQ4MGYgIG1mbjogMDAwMDQ4MGYNCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjVdICAgZ2ZuOiAwMDAwNDgxMCAgbWZuOiAwMDAw
+NDgxMA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyNV0gICBnZm46IDAwMDA0ODExICBt
+Zm46IDAwMDA0ODExDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI1XSAgIGdmbjogMDAw
+MDQ4MTIgIG1mbjogMDAwMDQ4MTINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjVdICAg
+Z2ZuOiAwMDAwNDgxMyAgbWZuOiAwMDAwNDgxMw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+MjoyNV0gICBnZm46IDAwMDA0ODE0ICBtZm46IDAwMDA0ODE0DQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMyOjI1XSAgIGdmbjogMDAwMDQ4MTUgIG1mbjogMDAwMDQ4MTUNCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzI6MjVdICAgZ2ZuOiAwMDAwNDgxNiAgbWZuOiAwMDAwNDgxNg0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyNV0gICBnZm46IDAwMDA0ODE3ICBtZm46IDAw
+MDA0ODE3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI1XSAgIGdmbjogMDAwMDQ4MTgg
+IG1mbjogMDAwMDQ4MTgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjVdICAgZ2ZuOiAw
+MDAwNDgxOSAgbWZuOiAwMDAwNDgxOQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyNV0g
+ICBnZm46IDAwMDA0ODFhICBtZm46IDAwMDA0ODFhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMyOjI1XSAgIGdmbjogMDAwMDQ4MWIgIG1mbjogMDAwMDQ4MWINCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzI6MjVdICAgZ2ZuOiAwMDAwNDgxYyAgbWZuOiAwMDAwNDgxYw0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMjoyNV0gICBnZm46IDAwMDA0ODFkICBtZm46IDAwMDA0ODFk
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI1XSAgIGdmbjogMDAwMDQ4MWUgIG1mbjog
+MDAwMDQ4MWUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjVdICAgZ2ZuOiAwMDAwNDgx
+ZiAgbWZuOiAwMDAwNDgxZg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyNV0gICBnZm46
+IDAwMDA0ODIwICBtZm46IDAwMDA0ODIwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI1
+XSAgIGdmbjogMDAwMDQ4MjEgIG1mbjogMDAwMDQ4MjENCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzI6MjVdICAgZ2ZuOiAwMDAwNDgyMiAgbWZuOiAwMDAwNDgyMg0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMjoyNV0gICBnZm46IDAwMDA0ODIzICBtZm46IDAwMDA0ODIzDQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI1XSAgIGdmbjogMDAwMDQ4MjQgIG1mbjogMDAwMDQ4
+MjQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjVdICAgZ2ZuOiAwMDAwNDgyNSAgbWZu
+OiAwMDAwNDgyNQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyNV0gICBnZm46IDAwMDA0
+ODI2ICBtZm46IDAwMDA0ODI2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI1XSAgIGdm
+bjogMDAwMDQ4MjcgIG1mbjogMDAwMDQ4MjcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
+MjVdICAgZ2ZuOiAwMDAwNDgyOCAgbWZuOiAwMDAwNDgyOA0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMjoyNV0gICBnZm46IDAwMDA0ODI5ICBtZm46IDAwMDA0ODI5DQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMyOjI1XSAgIGdmbjogMDAwMDQ4MmEgIG1mbjogMDAwMDQ4MmENCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjVdICAgZ2ZuOiAwMDAwNDgyYiAgbWZuOiAwMDAw
+NDgyYg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyNV0gICBnZm46IDAwMDA0ODJjICBt
+Zm46IDAwMDA0ODJjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI1XSAgIGdmbjogMDAw
+MDQ4MmQgIG1mbjogMDAwMDQ4MmQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjVdICAg
+Z2ZuOiAwMDAwNDgyZSAgbWZuOiAwMDAwNDgyZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+MjoyNV0gICBnZm46IDAwMDA0ODJmICBtZm46IDAwMDA0ODJmDQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMyOjI1XSAgIGdmbjogMDAwMDQ4MzAgIG1mbjogMDAwMDQ4MzANCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzI6MjVdICAgZ2ZuOiAwMDAwNDgzMSAgbWZuOiAwMDAwNDgzMQ0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyNV0gICBnZm46IDAwMDA0ODMyICBtZm46IDAw
+MDA0ODMyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI1XSAgIGdmbjogMDAwMDQ4MzMg
+IG1mbjogMDAwMDQ4MzMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjVdICAgZ2ZuOiAw
+MDAwNDgzNCAgbWZuOiAwMDAwNDgzNA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyNV0g
+ICBnZm46IDAwMDA0ODM1ICBtZm46IDAwMDA0ODM1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMyOjI1XSAgIGdmbjogMDAwMDQ4MzYgIG1mbjogMDAwMDQ4MzYNCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzI6MjVdICAgZ2ZuOiAwMDAwNDgzNyAgbWZuOiAwMDAwNDgzNw0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMjoyNV0gICBnZm46IDAwMDA0ODM4ICBtZm46IDAwMDA0ODM4
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI1XSAgIGdmbjogMDAwMDQ4MzkgIG1mbjog
+MDAwMDQ4MzkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjVdICAgZ2ZuOiAwMDAwNDgz
+YSAgbWZuOiAwMDAwNDgzYQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyNV0gICBnZm46
+IDAwMDA0ODNiICBtZm46IDAwMDA0ODNiDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI1
+XSAgIGdmbjogMDAwMDQ4M2MgIG1mbjogMDAwMDQ4M2MNCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzI6MjZdICAgZ2ZuOiAwMDAwNDgzZCAgbWZuOiAwMDAwNDgzZA0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMjoyNl0gICBnZm46IDAwMDA0ODNlICBtZm46IDAwMDA0ODNlDQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI2XSAgIGdmbjogMDAwMDQ4M2YgIG1mbjogMDAwMDQ4
+M2YNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjZdICAgZ2ZuOiAwMDAwNDg0MCAgbWZu
+OiAwMDAwNDg0MA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyNl0gICBnZm46IDAwMDA0
+ODQxICBtZm46IDAwMDA0ODQxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI2XSAgIGdm
+bjogMDAwMDQ4NDIgIG1mbjogMDAwMDQ4NDINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
+MjZdICAgZ2ZuOiAwMDAwNDg0MyAgbWZuOiAwMDAwNDg0Mw0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMjoyNl0gICBnZm46IDAwMDA0ODQ0ICBtZm46IDAwMDA0ODQ0DQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMyOjI2XSAgIGdmbjogMDAwMDQ4NDUgIG1mbjogMDAwMDQ4NDUNCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjZdICAgZ2ZuOiAwMDAwNDg0NiAgbWZuOiAwMDAw
+NDg0Ng0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyNl0gICBnZm46IDAwMDA0ODQ3ICBt
+Zm46IDAwMDA0ODQ3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI2XSAgIGdmbjogMDAw
+MDQ4NDggIG1mbjogMDAwMDQ4NDgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjZdICAg
+Z2ZuOiAwMDAwNDg0OSAgbWZuOiAwMDAwNDg0OQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+MjoyNl0gICBnZm46IDAwMDA0ODRhICBtZm46IDAwMDA0ODRhDQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMyOjI2XSAgIGdmbjogMDAwMDQ4NGIgIG1mbjogMDAwMDQ4NGINCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzI6MjZdICAgZ2ZuOiAwMDAwNDg0YyAgbWZuOiAwMDAwNDg0Yw0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyNl0gICBnZm46IDAwMDA0ODRkICBtZm46IDAw
+MDA0ODRkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI2XSAgIGdmbjogMDAwMDQ4NGUg
+IG1mbjogMDAwMDQ4NGUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjZdICAgZ2ZuOiAw
+MDAwNDg0ZiAgbWZuOiAwMDAwNDg0Zg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyNl0g
+ICBnZm46IDAwMDA0ODUwICBtZm46IDAwMDA0ODUwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMyOjI2XSAgIGdmbjogMDAwMDQ4NTEgIG1mbjogMDAwMDQ4NTENCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzI6MjZdICAgZ2ZuOiAwMDAwNDg1MiAgbWZuOiAwMDAwNDg1Mg0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMjoyNl0gICBnZm46IDAwMDA0ODUzICBtZm46IDAwMDA0ODUz
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI2XSAgIGdmbjogMDAwMDQ4NTQgIG1mbjog
+MDAwMDQ4NTQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjZdICAgZ2ZuOiAwMDAwNDg1
+NSAgbWZuOiAwMDAwNDg1NQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyNl0gICBnZm46
+IDAwMDA0ODU2ICBtZm46IDAwMDA0ODU2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI2
+XSAgIGdmbjogMDAwMDQ4NTcgIG1mbjogMDAwMDQ4NTcNCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzI6MjZdICAgZ2ZuOiAwMDAwNDg1OCAgbWZuOiAwMDAwNDg1OA0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMjoyNl0gICBnZm46IDAwMDA0ODU5ICBtZm46IDAwMDA0ODU5DQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI2XSAgIGdmbjogMDAwMDQ4NWEgIG1mbjogMDAwMDQ4
+NWENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjZdICAgZ2ZuOiAwMDAwNDg1YiAgbWZu
+OiAwMDAwNDg1Yg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyNl0gICBnZm46IDAwMDA0
+ODVjICBtZm46IDAwMDA0ODVjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI2XSAgIGdm
+bjogMDAwMDQ4NWQgIG1mbjogMDAwMDQ4NWQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
+MjZdICAgZ2ZuOiAwMDAwNDg1ZSAgbWZuOiAwMDAwNDg1ZQ0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMjoyNl0gICBnZm46IDAwMDA0ODVmICBtZm46IDAwMDA0ODVmDQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMyOjI2XSAgIGdmbjogMDAwMDQ4NjAgIG1mbjogMDAwMDQ4NjANCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjZdICAgZ2ZuOiAwMDAwNDg2MSAgbWZuOiAwMDAw
+NDg2MQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyNl0gICBnZm46IDAwMDA0ODYyICBt
+Zm46IDAwMDA0ODYyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI2XSAgIGdmbjogMDAw
+MDQ4NjMgIG1mbjogMDAwMDQ4NjMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjZdICAg
+Z2ZuOiAwMDAwNDg2NCAgbWZuOiAwMDAwNDg2NA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+MjoyNl0gICBnZm46IDAwMDA0ODY1ICBtZm46IDAwMDA0ODY1DQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMyOjI2XSAgIGdmbjogMDAwMDQ4NjYgIG1mbjogMDAwMDQ4NjYNCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzI6MjZdICAgZ2ZuOiAwMDAwNDg2NyAgbWZuOiAwMDAwNDg2Nw0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyNl0gICBnZm46IDAwMDA0ODY4ICBtZm46IDAw
+MDA0ODY4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI2XSAgIGdmbjogMDAwMDQ4Njkg
+IG1mbjogMDAwMDQ4NjkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjZdICAgZ2ZuOiAw
+MDAwNDg2YSAgbWZuOiAwMDAwNDg2YQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyNl0g
+ICBnZm46IDAwMDA0ODZiICBtZm46IDAwMDA0ODZiDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMyOjI2XSAgIGdmbjogMDAwMDQ4NmMgIG1mbjogMDAwMDQ4NmMNCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzI6MjZdICAgZ2ZuOiAwMDAwNDg2ZCAgbWZuOiAwMDAwNDg2ZA0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMjoyNl0gICBnZm46IDAwMDA0ODZlICBtZm46IDAwMDA0ODZl
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI2XSAgIGdmbjogMDAwMDQ4NmYgIG1mbjog
+MDAwMDQ4NmYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjZdICAgZ2ZuOiAwMDAwNDg3
+MCAgbWZuOiAwMDAwNDg3MA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyNl0gICBnZm46
+IDAwMDA0ODcxICBtZm46IDAwMDA0ODcxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI2
+XSAgIGdmbjogMDAwMDQ4NzIgIG1mbjogMDAwMDQ4NzINCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzI6MjZdICAgZ2ZuOiAwMDAwNDg3MyAgbWZuOiAwMDAwNDg3Mw0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMjoyNl0gICBnZm46IDAwMDA0ODc0ICBtZm46IDAwMDA0ODc0DQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI2XSAgIGdmbjogMDAwMDQ4NzUgIG1mbjogMDAwMDQ4
+NzUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjZdICAgZ2ZuOiAwMDAwNDg3NiAgbWZu
+OiAwMDAwNDg3Ng0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyNl0gICBnZm46IDAwMDA0
+ODc3ICBtZm46IDAwMDA0ODc3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI2XSAgIGdm
+bjogMDAwMDQ4NzggIG1mbjogMDAwMDQ4NzgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
+MjZdICAgZ2ZuOiAwMDAwNDg3OSAgbWZuOiAwMDAwNDg3OQ0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMjoyNl0gICBnZm46IDAwMDA0ODdhICBtZm46IDAwMDA0ODdhDQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMyOjI2XSAgIGdmbjogMDAwMDQ4N2IgIG1mbjogMDAwMDQ4N2INCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjZdICAgZ2ZuOiAwMDAwNDg3YyAgbWZuOiAwMDAw
+NDg3Yw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyN10gICBnZm46IDAwMDA0ODdkICBt
+Zm46IDAwMDA0ODdkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI3XSAgIGdmbjogMDAw
+MDQ4N2UgIG1mbjogMDAwMDQ4N2UNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjddICAg
+Z2ZuOiAwMDAwNDg3ZiAgbWZuOiAwMDAwNDg3Zg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+MjoyN10gICBnZm46IDAwMDA0ODgwICBtZm46IDAwMDA0ODgwDQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMyOjI3XSAgIGdmbjogMDAwMDQ4ODEgIG1mbjogMDAwMDQ4ODENCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzI6MjddICAgZ2ZuOiAwMDAwNDg4MiAgbWZuOiAwMDAwNDg4Mg0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyN10gICBnZm46IDAwMDA0ODgzICBtZm46IDAw
+MDA0ODgzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI3XSAgIGdmbjogMDAwMDQ4ODQg
+IG1mbjogMDAwMDQ4ODQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjddICAgZ2ZuOiAw
+MDAwNDg4NSAgbWZuOiAwMDAwNDg4NQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyN10g
+ICBnZm46IDAwMDA0ODg2ICBtZm46IDAwMDA0ODg2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMyOjI3XSAgIGdmbjogMDAwMDQ4ODcgIG1mbjogMDAwMDQ4ODcNCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzI6MjddICAgZ2ZuOiAwMDAwNDg4OCAgbWZuOiAwMDAwNDg4OA0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMjoyN10gICBnZm46IDAwMDA0ODg5ICBtZm46IDAwMDA0ODg5
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI3XSAgIGdmbjogMDAwMDQ4OGEgIG1mbjog
+MDAwMDQ4OGENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjddICAgZ2ZuOiAwMDAwNDg4
+YiAgbWZuOiAwMDAwNDg4Yg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyN10gICBnZm46
+IDAwMDA0ODhjICBtZm46IDAwMDA0ODhjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI3
+XSAgIGdmbjogMDAwMDQ4OGQgIG1mbjogMDAwMDQ4OGQNCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzI6MjddICAgZ2ZuOiAwMDAwNDg4ZSAgbWZuOiAwMDAwNDg4ZQ0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMjoyN10gICBnZm46IDAwMDA0ODhmICBtZm46IDAwMDA0ODhmDQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI3XSAgIGdmbjogMDAwMDQ4OTAgIG1mbjogMDAwMDQ4
+OTANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjddICAgZ2ZuOiAwMDAwNDg5MSAgbWZu
+OiAwMDAwNDg5MQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyN10gICBnZm46IDAwMDA0
+ODkyICBtZm46IDAwMDA0ODkyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI3XSAgIGdm
+bjogMDAwMDQ4OTMgIG1mbjogMDAwMDQ4OTMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
+MjddICAgZ2ZuOiAwMDAwNDg5NCAgbWZuOiAwMDAwNDg5NA0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMjoyN10gICBnZm46IDAwMDA0ODk1ICBtZm46IDAwMDA0ODk1DQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMyOjI3XSAgIGdmbjogMDAwMDQ4OTYgIG1mbjogMDAwMDQ4OTYNCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjddICAgZ2ZuOiAwMDAwNDg5NyAgbWZuOiAwMDAw
+NDg5Nw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyN10gICBnZm46IDAwMDA0ODk4ICBt
+Zm46IDAwMDA0ODk4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI3XSAgIGdmbjogMDAw
+MDQ4OTkgIG1mbjogMDAwMDQ4OTkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjddICAg
+Z2ZuOiAwMDAwNDg5YSAgbWZuOiAwMDAwNDg5YQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+MjoyN10gICBnZm46IDAwMDA0ODliICBtZm46IDAwMDA0ODliDQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMyOjI3XSAgIGdmbjogMDAwMDQ4OWMgIG1mbjogMDAwMDQ4OWMNCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzI6MjddICAgZ2ZuOiAwMDAwNDg5ZCAgbWZuOiAwMDAwNDg5ZA0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyN10gICBnZm46IDAwMDA0ODllICBtZm46IDAw
+MDA0ODllDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI3XSAgIGdmbjogMDAwMDQ4OWYg
+IG1mbjogMDAwMDQ4OWYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjddICAgZ2ZuOiAw
+MDAwNDhhMCAgbWZuOiAwMDAwNDhhMA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyN10g
+ICBnZm46IDAwMDA0OGExICBtZm46IDAwMDA0OGExDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMyOjI3XSAgIGdmbjogMDAwMDQ4YTIgIG1mbjogMDAwMDQ4YTINCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzI6MjddICAgZ2ZuOiAwMDAwNDhhMyAgbWZuOiAwMDAwNDhhMw0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMjoyN10gICBnZm46IDAwMDA0OGE0ICBtZm46IDAwMDA0OGE0
+DQoNClsgIDQxMy42MDAyMDVdIGEoWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyN10gICBnZm46
+IDAwMDA0OGE1ICBtZm46IDAwMDA0OGE1DQoNCnRhMS4wMDogZXhjZXB0aW9uIEVtYXNrIDB4
+MCBTQWN0KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjddICAgZ2ZuOiAwMDAwNDhhNiAgbWZu
+OiAwMDAwNDhhNg0KDQogMHgxIFNFcnIgMHgwIGFjKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
+MjddICAgZ2ZuOiAwMDAwNDhhNyAgbWZuOiAwMDAwNDhhNw0KDQp0aW9uIDB4NiBmcm96ZW4N
+Cg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyN10gICBnZm46IDAwMDA0OGE4ICBtZm46
+IDAwMDA0OGE4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI3XSAgIGdmbjogMDAwMDQ4
+YTkgIG1mbjogMDAwMDQ4YTkNCg0KWyAgNDEzLjY5OTU5Ml0gYShYRU4pIFsyMDEyLTA4LTMx
+IDIxOjMyOjI3XSAgIGdmbjogMDAwMDQ4YWEgIG1mbjogMDAwMDQ4YWENCg0KdGExLjAwOiBm
+YWlsZWQgYyhYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI3XSAgIGdmbjogMDAwMDQ4YWIgIG1m
+bjogMDAwMDQ4YWINCg0Kb21tYW5kOiBSRUFEIEZQRE1BIFFVRVVFRA0KDQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMyOjI3XSAgIGdmbjogMDAwMDQ4YWMgIG1mbjogMDAwMDQ4YWMNCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjddICAgZ2ZuOiAwMDAwNDhhZCAgbWZuOiAwMDAw
+NDhhZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyN10gICBnZm46IDAwMDA0OGFlICBt
+Zm46IDAwMDA0OGFlDQoNClsgIDQxMy43Nzg1MDRdIGEoWEVOKSBbMjAxMi0wOC0zMSAyMToz
+MjoyN10gICBnZm46IDAwMDA0OGFmICBtZm46IDAwMDA0OGFmDQoNCnRhMS4wMDogY21kIDYw
+LzEoWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyN10gICBnZm46IDAwMDA0OGIwICBtZm46IDAw
+MDA0OGIwDQoNCjA6MDA6NTE6MTE6OTUvMDAoWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyN10g
+ICBnZm46IDAwMDA0OGIxICBtZm46IDAwMDA0OGIxDQoNCjowMDo4ZTowMDowMC80MCB0YWcg
+MCBuY3EgODE5MiBpKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjddICAgZ2ZuOiAwMDAwNDhi
+MiAgbWZuOiAwMDAwNDhiMg0KDQpuDQoNCg0KWyAgNDEzLjc3ODUwNChYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMyOjI3XSAgIGdmbjogMDAwMDQ4YjMgIG1mbjogMDAwMDQ4YjMNCg0KXSAgICAg
+ICAgICByZXMgNDAvMDA6ZmY6MDA6MDA6MDAoWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyN10g
+ICBnZm46IDAwMDA0OGI0ICBtZm46IDAwMDA0OGI0DQoNCi8wMDowMDowMDowMDowMC8oWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMjoyN10gICBnZm46IDAwMDA0OGI1ICBtZm46IDAwMDA0OGI1
+DQoNCjAwIEVtYXNrIDB4NCAodGltZW91dCkNCg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+MjoyN10gICBnZm46IDAwMDA0OGI2ICBtZm46IDAwMDA0OGI2DQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMyOjI3XSAgIGdmbjogMDAwMDQ4YjcgIG1mbjogMDAwMDQ4YjcNCg0KWyAgNDEz
+Ljk3ODE5OF0gYXRhMS4wMDogc3RhdHVzOiAoWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyOF0g
+ICBnZm46IDAwMDA0OGI4ICBtZm46IDAwMDA0OGI4DQoNCnsgRFJEWSB9DQoNCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzI6MjhdICAgZ2ZuOiAwMDAwNDhiOSAgbWZuOiAwMDAwNDhiOQ0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyOF0gICBnZm46IDAwMDA0OGJhICBtZm46IDAw
+MDA0OGJhDQoNClsgIDQxNC4wMzY0MDddIGEoWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyOF0g
+ICBnZm46IDAwMDA0OGJiICBtZm46IDAwMDA0OGJiDQoNCnRhMTogaGFyZCByZXNldHQoWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMjoyOF0gICBnZm46IDAwMDA0OGJjICBtZm46IDAwMDA0OGJj
+DQoNCmluZyBsaW5rDQoNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjhdICAgZ2ZuOiAw
+MDAwNDhiZCAgbWZuOiAwMDAwNDhiZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyOF0g
+ICBnZm46IDAwMDA0OGJlICBtZm46IDAwMDA0OGJlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMyOjI4XSAgIGdmbjogMDAwMDQ4YmYgIG1mbjogMDAwMDQ4YmYNCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzI6MjhdICAgZ2ZuOiAwMDAwNDhjMCAgbWZuOiAwMDAwNDhjMA0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMjoyOF0gICBnZm46IDAwMDA0OGMxICBtZm46IDAwMDA0OGMx
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI4XSAgIGdmbjogMDAwMDQ4YzIgIG1mbjog
+MDAwMDQ4YzINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjhdICAgZ2ZuOiAwMDAwNDhj
+MyAgbWZuOiAwMDAwNDhjMw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyOF0gICBnZm46
+IDAwMDA0OGM0ICBtZm46IDAwMDA0OGM0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI4
+XSAgIGdmbjogMDAwMDQ4YzUgIG1mbjogMDAwMDQ4YzUNCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzI6MjhdICAgZ2ZuOiAwMDAwNDhjNiAgbWZuOiAwMDAwNDhjNg0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMjoyOF0gICBnZm46IDAwMDA0OGM3ICBtZm46IDAwMDA0OGM3DQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI4XSAgIGdmbjogMDAwMDQ4YzggIG1mbjogMDAwMDQ4
+YzgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjhdICAgZ2ZuOiAwMDAwNDhjOSAgbWZu
+OiAwMDAwNDhjOQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyOF0gICBnZm46IDAwMDA0
+OGNhICBtZm46IDAwMDA0OGNhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI4XSAgIGdm
+bjogMDAwMDQ4Y2IgIG1mbjogMDAwMDQ4Y2INCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
+MjhdICAgZ2ZuOiAwMDAwNDhjYyAgbWZuOiAwMDAwNDhjYw0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMjoyOF0gICBnZm46IDAwMDA0OGNkICBtZm46IDAwMDA0OGNkDQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMyOjI4XSAgIGdmbjogMDAwMDQ4Y2UgIG1mbjogMDAwMDQ4Y2UNCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjhdICAgZ2ZuOiAwMDAwNDhjZiAgbWZuOiAwMDAw
+NDhjZg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyOF0gICBnZm46IDAwMDA0OGQwICBt
+Zm46IDAwMDA0OGQwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI4XSAgIGdmbjogMDAw
+MDQ4ZDEgIG1mbjogMDAwMDQ4ZDENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjhdICAg
+Z2ZuOiAwMDAwNDhkMiAgbWZuOiAwMDAwNDhkMg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+MjoyOF0gICBnZm46IDAwMDA0OGQzICBtZm46IDAwMDA0OGQzDQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMyOjI4XSAgIGdmbjogMDAwMDQ4ZDQgIG1mbjogMDAwMDQ4ZDQNCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzI6MjhdICAgZ2ZuOiAwMDAwNDhkNSAgbWZuOiAwMDAwNDhkNQ0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyOF0gICBnZm46IDAwMDA0OGQ2ICBtZm46IDAw
+MDA0OGQ2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI4XSAgIGdmbjogMDAwMDQ4ZDcg
+IG1mbjogMDAwMDQ4ZDcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjhdICAgZ2ZuOiAw
+MDAwNDhkOCAgbWZuOiAwMDAwNDhkOA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyOF0g
+ICBnZm46IDAwMDA0OGQ5ICBtZm46IDAwMDA0OGQ5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMyOjI4XSAgIGdmbjogMDAwMDQ4ZGEgIG1mbjogMDAwMDQ4ZGENCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzI6MjhdICAgZ2ZuOiAwMDAwNDhkYiAgbWZuOiAwMDAwNDhkYg0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMjoyOF0gICBnZm46IDAwMDA0OGRjICBtZm46IDAwMDA0OGRj
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI4XSAgIGdmbjogMDAwMDQ4ZGQgIG1mbjog
+MDAwMDQ4ZGQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjhdICAgZ2ZuOiAwMDAwNDhk
+ZSAgbWZuOiAwMDAwNDhkZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyOF0gICBnZm46
+IDAwMDA0OGRmICBtZm46IDAwMDA0OGRmDQoNClsgIDQxNC42MjMyMTRdIGF0YTE6IFNBVEEg
+bGluayB1KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjhdICAgZ2ZuOiAwMDAwNDhlMCAgbWZu
+OiAwMDAwNDhlMA0KDQpwIDMuMCBHYnBzIChTU3RhKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
+MjhdICAgZ2ZuOiAwMDAwNDhlMSAgbWZuOiAwMDAwNDhlMQ0KDQp0dXMgMTIzIFNDb250cm9s
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjhdICAgZ2ZuOiAwMDAwNDhlMiAgbWZuOiAwMDAw
+NDhlMg0KDQogMzAwKQ0KDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI4XSAgIGdmbjog
+MDAwMDQ4ZTMgIG1mbjogMDAwMDQ4ZTMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6Mjhd
+ICAgZ2ZuOiAwMDAwNDhlNCAgbWZuOiAwMDAwNDhlNA0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
+MTozMjoyOF0gICBnZm46IDAwMDA0OGU1ICBtZm46IDAwMDA0OGU1DQoNCihYRU4pIFsyMDEy
+LTA4LTMxIDIxOjMyOjI4XSAgIGdmbjogMDAwMDQ4ZTYgIG1mbjogMDAwMDQ4ZTYNCg0KKFhF
+TikgWzIwMTItMDgtMzEgMjE6MzI6MjhdICAgZ2ZuOiAwMDAwNDhlNyAgbWZuOiAwMDAwNDhl
+Nw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyOF0gICBnZm46IDAwMDA0OGU4ICBtZm46
+IDAwMDA0OGU4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI4XSAgIGdmbjogMDAwMDQ4
+ZTkgIG1mbjogMDAwMDQ4ZTkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjhdICAgZ2Zu
+OiAwMDAwNDhlYSAgbWZuOiAwMDAwNDhlYQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoy
+OF0gICBnZm46IDAwMDA0OGViICBtZm46IDAwMDA0OGViDQoNCihYRU4pIFsyMDEyLTA4LTMx
+IDIxOjMyOjI4XSAgIGdmbjogMDAwMDQ4ZWMgIG1mbjogMDAwMDQ4ZWMNCg0KKFhFTikgWzIw
+MTItMDgtMzEgMjE6MzI6MjhdICAgZ2ZuOiAwMDAwNDhlZCAgbWZuOiAwMDAwNDhlZA0KDQoo
+WEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyOF0gICBnZm46IDAwMDA0OGVlICBtZm46IDAwMDA0
+OGVlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI4XSAgIGdmbjogMDAwMDQ4ZWYgIG1m
+bjogMDAwMDQ4ZWYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjhdICAgZ2ZuOiAwMDAw
+NDhmMCAgbWZuOiAwMDAwNDhmMA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyOF0gICBn
+Zm46IDAwMDA0OGYxICBtZm46IDAwMDA0OGYxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMy
+OjI4XSAgIGdmbjogMDAwMDQ4ZjIgIG1mbjogMDAwMDQ4ZjINCg0KKFhFTikgWzIwMTItMDgt
+MzEgMjE6MzI6MjhdICAgZ2ZuOiAwMDAwNDhmMyAgbWZuOiAwMDAwNDhmMw0KDQooWEVOKSBb
+MjAxMi0wOC0zMSAyMTozMjoyOF0gICBnZm46IDAwMDA0OGY0ICBtZm46IDAwMDA0OGY0DQoN
+CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI5XSAgIGdmbjogMDAwMDQ4ZjUgIG1mbjogMDAw
+MDQ4ZjUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjldICAgZ2ZuOiAwMDAwNDhmNiAg
+bWZuOiAwMDAwNDhmNg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyOV0gICBnZm46IDAw
+MDA0OGY3ICBtZm46IDAwMDA0OGY3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI5XSAg
+IGdmbjogMDAwMDQ4ZjggIG1mbjogMDAwMDQ4ZjgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
+MzI6MjldICAgZ2ZuOiAwMDAwNDhmOSAgbWZuOiAwMDAwNDhmOQ0KDQooWEVOKSBbMjAxMi0w
+OC0zMSAyMTozMjoyOV0gICBnZm46IDAwMDA0OGZhICBtZm46IDAwMDA0OGZhDQoNCihYRU4p
+IFsyMDEyLTA4LTMxIDIxOjMyOjI5XSAgIGdmbjogMDAwMDQ4ZmIgIG1mbjogMDAwMDQ4ZmIN
+Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjldICAgZ2ZuOiAwMDAwNDhmYyAgbWZuOiAw
+MDAwNDhmYw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyOV0gICBnZm46IDAwMDA0OGZk
+ICBtZm46IDAwMDA0OGZkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI5XSAgIGdmbjog
+MDAwMDQ4ZmUgIG1mbjogMDAwMDQ4ZmUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6Mjld
+ICAgZ2ZuOiAwMDAwNDhmZiAgbWZuOiAwMDAwNDhmZg0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
+MTozMjoyOV0gICBnZm46IDAwMDA0OTAwICBtZm46IDAwMDA0OTAwDQoNCihYRU4pIFsyMDEy
+LTA4LTMxIDIxOjMyOjI5XSAgIGdmbjogMDAwMDQ5MDEgIG1mbjogMDAwMDQ5MDENCg0KKFhF
+TikgWzIwMTItMDgtMzEgMjE6MzI6MjldICAgZ2ZuOiAwMDAwNDkwMiAgbWZuOiAwMDAwNDkw
+Mg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyOV0gICBnZm46IDAwMDA0OTAzICBtZm46
+IDAwMDA0OTAzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI5XSAgIGdmbjogMDAwMDQ5
+MDQgIG1mbjogMDAwMDQ5MDQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjldICAgZ2Zu
+OiAwMDAwNDkwNSAgbWZuOiAwMDAwNDkwNQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoy
+OV0gICBnZm46IDAwMDA0OTA2ICBtZm46IDAwMDA0OTA2DQoNCihYRU4pIFsyMDEyLTA4LTMx
+IDIxOjMyOjI5XSAgIGdmbjogMDAwMDQ5MDcgIG1mbjogMDAwMDQ5MDcNCg0KKFhFTikgWzIw
+MTItMDgtMzEgMjE6MzI6MjldICAgZ2ZuOiAwMDAwNDkwOCAgbWZuOiAwMDAwNDkwOA0KDQoo
+WEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyOV0gICBnZm46IDAwMDA0OTA5ICBtZm46IDAwMDA0
+OTA5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI5XSAgIGdmbjogMDAwMDQ5MGEgIG1m
+bjogMDAwMDQ5MGENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjldICAgZ2ZuOiAwMDAw
+NDkwYiAgbWZuOiAwMDAwNDkwYg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyOV0gICBn
+Zm46IDAwMDA0OTBjICBtZm46IDAwMDA0OTBjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMy
+OjI5XSAgIGdmbjogMDAwMDQ5MGQgIG1mbjogMDAwMDQ5MGQNCg0KKFhFTikgWzIwMTItMDgt
+MzEgMjE6MzI6MjldICAgZ2ZuOiAwMDAwNDkwZSAgbWZuOiAwMDAwNDkwZQ0KDQooWEVOKSBb
+MjAxMi0wOC0zMSAyMTozMjoyOV0gICBnZm46IDAwMDA0OTBmICBtZm46IDAwMDA0OTBmDQoN
+CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI5XSAgIGdmbjogMDAwMDQ5MTAgIG1mbjogMDAw
+MDQ5MTANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjldICAgZ2ZuOiAwMDAwNDkxMSAg
+bWZuOiAwMDAwNDkxMQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyOV0gICBnZm46IDAw
+MDA0OTEyICBtZm46IDAwMDA0OTEyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI5XSAg
+IGdmbjogMDAwMDQ5MTMgIG1mbjogMDAwMDQ5MTMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
+MzI6MjldICAgZ2ZuOiAwMDAwNDkxNCAgbWZuOiAwMDAwNDkxNA0KDQooWEVOKSBbMjAxMi0w
+OC0zMSAyMTozMjoyOV0gICBnZm46IDAwMDA0OTE1ICBtZm46IDAwMDA0OTE1DQoNCihYRU4p
+IFsyMDEyLTA4LTMxIDIxOjMyOjI5XSAgIGdmbjogMDAwMDQ5MTYgIG1mbjogMDAwMDQ5MTYN
+Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjldICAgZ2ZuOiAwMDAwNDkxNyAgbWZuOiAw
+MDAwNDkxNw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyOV0gICBnZm46IDAwMDA0OTE4
+ICBtZm46IDAwMDA0OTE4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI5XSAgIGdmbjog
+MDAwMDQ5MTkgIG1mbjogMDAwMDQ5MTkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6Mjld
+ICAgZ2ZuOiAwMDAwNDkxYSAgbWZuOiAwMDAwNDkxYQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
+MTozMjoyOV0gICBnZm46IDAwMDA0OTFiICBtZm46IDAwMDA0OTFiDQoNCihYRU4pIFsyMDEy
+LTA4LTMxIDIxOjMyOjI5XSAgIGdmbjogMDAwMDQ5MWMgIG1mbjogMDAwMDQ5MWMNCg0KKFhF
+TikgWzIwMTItMDgtMzEgMjE6MzI6MjldICAgZ2ZuOiAwMDAwNDkxZCAgbWZuOiAwMDAwNDkx
+ZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyOV0gICBnZm46IDAwMDA0OTFlICBtZm46
+IDAwMDA0OTFlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI5XSAgIGdmbjogMDAwMDQ5
+MWYgIG1mbjogMDAwMDQ5MWYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjldICAgZ2Zu
+OiAwMDAwNDkyMCAgbWZuOiAwMDAwNDkyMA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoy
+OV0gICBnZm46IDAwMDA0OTIxICBtZm46IDAwMDA0OTIxDQoNCihYRU4pIFsyMDEyLTA4LTMx
+IDIxOjMyOjI5XSAgIGdmbjogMDAwMDQ5MjIgIG1mbjogMDAwMDQ5MjINCg0KKFhFTikgWzIw
+MTItMDgtMzEgMjE6MzI6MjldICAgZ2ZuOiAwMDAwNDkyMyAgbWZuOiAwMDAwNDkyMw0KDQoo
+WEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyOV0gICBnZm46IDAwMDA0OTI0ICBtZm46IDAwMDA0
+OTI0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI5XSAgIGdmbjogMDAwMDQ5MjUgIG1m
+bjogMDAwMDQ5MjUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjldICAgZ2ZuOiAwMDAw
+NDkyNiAgbWZuOiAwMDAwNDkyNg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyOV0gICBn
+Zm46IDAwMDA0OTI3ICBtZm46IDAwMDA0OTI3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMy
+OjI5XSAgIGdmbjogMDAwMDQ5MjggIG1mbjogMDAwMDQ5MjgNCg0KKFhFTikgWzIwMTItMDgt
+MzEgMjE6MzI6MjldICAgZ2ZuOiAwMDAwNDkyOSAgbWZuOiAwMDAwNDkyOQ0KDQooWEVOKSBb
+MjAxMi0wOC0zMSAyMTozMjoyOV0gICBnZm46IDAwMDA0OTJhICBtZm46IDAwMDA0OTJhDQoN
+CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI5XSAgIGdmbjogMDAwMDQ5MmIgIG1mbjogMDAw
+MDQ5MmINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjldICAgZ2ZuOiAwMDAwNDkyYyAg
+bWZuOiAwMDAwNDkyYw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyOV0gICBnZm46IDAw
+MDA0OTJkICBtZm46IDAwMDA0OTJkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI5XSAg
+IGdmbjogMDAwMDQ5MmUgIG1mbjogMDAwMDQ5MmUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
+MzI6MjldICAgZ2ZuOiAwMDAwNDkyZiAgbWZuOiAwMDAwNDkyZg0KDQooWEVOKSBbMjAxMi0w
+OC0zMSAyMTozMjoyOV0gICBnZm46IDAwMDA0OTMwICBtZm46IDAwMDA0OTMwDQoNCihYRU4p
+IFsyMDEyLTA4LTMxIDIxOjMyOjI5XSAgIGdmbjogMDAwMDQ5MzEgIG1mbjogMDAwMDQ5MzEN
+Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjldICAgZ2ZuOiAwMDAwNDkzMiAgbWZuOiAw
+MDAwNDkzMg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyOV0gICBnZm46IDAwMDA0OTMz
+ICBtZm46IDAwMDA0OTMzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI5XSAgIGdmbjog
+MDAwMDQ5MzQgIG1mbjogMDAwMDQ5MzQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6Mjld
+ICAgZ2ZuOiAwMDAwNDkzNSAgbWZuOiAwMDAwNDkzNQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
+MTozMjozMF0gICBnZm46IDAwMDA0OTM2ICBtZm46IDAwMDA0OTM2DQoNCihYRU4pIFsyMDEy
+LTA4LTMxIDIxOjMyOjMwXSAgIGdmbjogMDAwMDQ5MzcgIG1mbjogMDAwMDQ5MzcNCg0KKFhF
+TikgWzIwMTItMDgtMzEgMjE6MzI6MzBdICAgZ2ZuOiAwMDAwNDkzOCAgbWZuOiAwMDAwNDkz
+OA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozMF0gICBnZm46IDAwMDA0OTM5ICBtZm46
+IDAwMDA0OTM5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjMwXSAgIGdmbjogMDAwMDQ5
+M2EgIG1mbjogMDAwMDQ5M2ENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzBdICAgZ2Zu
+OiAwMDAwNDkzYiAgbWZuOiAwMDAwNDkzYg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoz
+MF0gICBnZm46IDAwMDA0OTNjICBtZm46IDAwMDA0OTNjDQoNCihYRU4pIFsyMDEyLTA4LTMx
+IDIxOjMyOjMwXSAgIGdmbjogMDAwMDQ5M2QgIG1mbjogMDAwMDQ5M2QNCg0KKFhFTikgWzIw
+MTItMDgtMzEgMjE6MzI6MzBdICAgZ2ZuOiAwMDAwNDkzZSAgbWZuOiAwMDAwNDkzZQ0KDQoo
+WEVOKSBbMjAxMi0wOC0zMSAyMTozMjozMF0gICBnZm46IDAwMDA0OTNmICBtZm46IDAwMDA0
+OTNmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjMwXSAgIGdmbjogMDAwMDQ5NDAgIG1m
+bjogMDAwMDQ5NDANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzBdICAgZ2ZuOiAwMDAw
+NDk0MSAgbWZuOiAwMDAwNDk0MQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozMF0gICBn
+Zm46IDAwMDA0OTQyICBtZm46IDAwMDA0OTQyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMy
+OjMwXSAgIGdmbjogMDAwMDQ5NDMgIG1mbjogMDAwMDQ5NDMNCg0KKFhFTikgWzIwMTItMDgt
+MzEgMjE6MzI6MzBdICAgZ2ZuOiAwMDAwNDk0NCAgbWZuOiAwMDAwNDk0NA0KDQooWEVOKSBb
+MjAxMi0wOC0zMSAyMTozMjozMF0gICBnZm46IDAwMDA0OTQ1ICBtZm46IDAwMDA0OTQ1DQoN
+CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjMwXSAgIGdmbjogMDAwMDQ5NDYgIG1mbjogMDAw
+MDQ5NDYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzBdICAgZ2ZuOiAwMDAwNDk0NyAg
+bWZuOiAwMDAwNDk0Nw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozMF0gICBnZm46IDAw
+MDA0OTQ4ICBtZm46IDAwMDA0OTQ4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjMwXSAg
+IGdmbjogMDAwMDQ5NDkgIG1mbjogMDAwMDQ5NDkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
+MzI6MzBdICAgZ2ZuOiAwMDAwNDk0YSAgbWZuOiAwMDAwNDk0YQ0KDQooWEVOKSBbMjAxMi0w
+OC0zMSAyMTozMjozMF0gICBnZm46IDAwMDA0OTRiICBtZm46IDAwMDA0OTRiDQoNCihYRU4p
+IFsyMDEyLTA4LTMxIDIxOjMyOjMwXSAgIGdmbjogMDAwMDQ5NGMgIG1mbjogMDAwMDQ5NGMN
+Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzBdICAgZ2ZuOiAwMDAwNDk0ZCAgbWZuOiAw
+MDAwNDk0ZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozMF0gICBnZm46IDAwMDA0OTRl
+ICBtZm46IDAwMDA0OTRlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjMwXSAgIGdmbjog
+MDAwMDQ5NGYgIG1mbjogMDAwMDQ5NGYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzBd
+ICAgZ2ZuOiAwMDAwNDk1MCAgbWZuOiAwMDAwNDk1MA0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
+MTozMjozMF0gICBnZm46IDAwMDA0OTUxICBtZm46IDAwMDA0OTUxDQoNCihYRU4pIFsyMDEy
+LTA4LTMxIDIxOjMyOjMwXSAgIGdmbjogMDAwMDQ5NTIgIG1mbjogMDAwMDQ5NTINCg0KKFhF
+TikgWzIwMTItMDgtMzEgMjE6MzI6MzBdICAgZ2ZuOiAwMDAwNDk1MyAgbWZuOiAwMDAwNDk1
+Mw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozMF0gICBnZm46IDAwMDA0OTU0ICBtZm46
+IDAwMDA0OTU0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjMwXSAgIGdmbjogMDAwMDQ5
+NTUgIG1mbjogMDAwMDQ5NTUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzBdICAgZ2Zu
+OiAwMDAwNDk1NiAgbWZuOiAwMDAwNDk1Ng0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoz
+MF0gICBnZm46IDAwMDA0OTU3ICBtZm46IDAwMDA0OTU3DQoNCihYRU4pIFsyMDEyLTA4LTMx
+IDIxOjMyOjMwXSAgIGdmbjogMDAwMDQ5NTggIG1mbjogMDAwMDQ5NTgNCg0KKFhFTikgWzIw
+MTItMDgtMzEgMjE6MzI6MzBdICAgZ2ZuOiAwMDAwNDk1OSAgbWZuOiAwMDAwNDk1OQ0KDQoo
+WEVOKSBbMjAxMi0wOC0zMSAyMTozMjozMF0gICBnZm46IDAwMDA0OTVhICBtZm46IDAwMDA0
+OTVhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjMwXSAgIGdmbjogMDAwMDQ5NWIgIG1m
+bjogMDAwMDQ5NWINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzBdICAgZ2ZuOiAwMDAw
+NDk1YyAgbWZuOiAwMDAwNDk1Yw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozMF0gICBn
+Zm46IDAwMDA0OTVkICBtZm46IDAwMDA0OTVkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMy
+OjMwXSAgIGdmbjogMDAwMDQ5NWUgIG1mbjogMDAwMDQ5NWUNCg0KKFhFTikgWzIwMTItMDgt
+MzEgMjE6MzI6MzBdICAgZ2ZuOiAwMDAwNDk1ZiAgbWZuOiAwMDAwNDk1Zg0KDQooWEVOKSBb
+MjAxMi0wOC0zMSAyMTozMjozMF0gICBnZm46IDAwMDA0OTYwICBtZm46IDAwMDA0OTYwDQoN
+CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjMwXSAgIGdmbjogMDAwMDQ5NjEgIG1mbjogMDAw
+MDQ5NjENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzBdICAgZ2ZuOiAwMDAwNDk2MiAg
+bWZuOiAwMDAwNDk2Mg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozMF0gICBnZm46IDAw
+MDA0OTYzICBtZm46IDAwMDA0OTYzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjMwXSAg
+IGdmbjogMDAwMDQ5NjQgIG1mbjogMDAwMDQ5NjQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
+MzI6MzBdICAgZ2ZuOiAwMDAwNDk2NSAgbWZuOiAwMDAwNDk2NQ0KDQooWEVOKSBbMjAxMi0w
+OC0zMSAyMTozMjozMF0gICBnZm46IDAwMDA0OTY2ICBtZm46IDAwMDA0OTY2DQoNCihYRU4p
+IFsyMDEyLTA4LTMxIDIxOjMyOjMwXSAgIGdmbjogMDAwMDQ5NjcgIG1mbjogMDAwMDQ5NjcN
+Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzBdICAgZ2ZuOiAwMDAwNDk2OCAgbWZuOiAw
+MDAwNDk2OA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozMF0gICBnZm46IDAwMDA0OTY5
+ICBtZm46IDAwMDA0OTY5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjMwXSAgIGdmbjog
+MDAwMDQ5NmEgIG1mbjogMDAwMDQ5NmENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzBd
+ICAgZ2ZuOiAwMDAwNDk2YiAgbWZuOiAwMDAwNDk2Yg0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
+MTozMjozMF0gICBnZm46IDAwMDA0OTZjICBtZm46IDAwMDA0OTZjDQoNCihYRU4pIFsyMDEy
+LTA4LTMxIDIxOjMyOjMwXSAgIGdmbjogMDAwMDQ5NmQgIG1mbjogMDAwMDQ5NmQNCg0KKFhF
+TikgWzIwMTItMDgtMzEgMjE6MzI6MzBdICAgZ2ZuOiAwMDAwNDk2ZSAgbWZuOiAwMDAwNDk2
+ZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozMF0gICBnZm46IDAwMDA0OTZmICBtZm46
+IDAwMDA0OTZmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjMwXSAgIGdmbjogMDAwMDQ5
+NzAgIG1mbjogMDAwMDQ5NzANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzBdICAgZ2Zu
+OiAwMDAwNDk3MSAgbWZuOiAwMDAwNDk3MQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoz
+MF0gICBnZm46IDAwMDA0OTcyICBtZm46IDAwMDA0OTcyDQoNCihYRU4pIFsyMDEyLTA4LTMx
+IDIxOjMyOjMwXSAgIGdmbjogMDAwMDQ5NzMgIG1mbjogMDAwMDQ5NzMNCg0KKFhFTikgWzIw
+MTItMDgtMzEgMjE6MzI6MzBdICAgZ2ZuOiAwMDAwNDk3NCAgbWZuOiAwMDAwNDk3NA0KDQoo
+WEVOKSBbMjAxMi0wOC0zMSAyMTozMjozMF0gICBnZm46IDAwMDA0OTc1ICBtZm46IDAwMDA0
+OTc1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjMxXSAgIGdmbjogMDAwMDQ5NzYgIG1m
+bjogMDAwMDQ5NzYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzFdICAgZ2ZuOiAwMDAw
+NDk3NyAgbWZuOiAwMDAwNDk3Nw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozMV0gICBn
+Zm46IDAwMDA0OTc4ICBtZm46IDAwMDA0OTc4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMy
+OjMxXSAgIGdmbjogMDAwMDQ5NzkgIG1mbjogMDAwMDQ5NzkNCg0KKFhFTikgWzIwMTItMDgt
+MzEgMjE6MzI6MzFdICAgZ2ZuOiAwMDAwNDk3YSAgbWZuOiAwMDAwNDk3YQ0KDQooWEVOKSBb
+MjAxMi0wOC0zMSAyMTozMjozMV0gICBnZm46IDAwMDA0OTdiICBtZm46IDAwMDA0OTdiDQoN
+CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjMxXSAgIGdmbjogMDAwMDQ5N2MgIG1mbjogMDAw
+MDQ5N2MNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzFdICAgZ2ZuOiAwMDAwNDk3ZCAg
+bWZuOiAwMDAwNDk3ZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozMV0gICBnZm46IDAw
+MDA0OTdlICBtZm46IDAwMDA0OTdlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjMxXSAg
+IGdmbjogMDAwMDQ5N2YgIG1mbjogMDAwMDQ5N2YNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
+MzI6MzFdICAgZ2ZuOiAwMDAwNDk4MCAgbWZuOiAwMDAwNDk4MA0KDQooWEVOKSBbMjAxMi0w
+OC0zMSAyMTozMjozMV0gICBnZm46IDAwMDA0OTgxICBtZm46IDAwMDA0OTgxDQoNCihYRU4p
+IFsyMDEyLTA4LTMxIDIxOjMyOjMxXSAgIGdmbjogMDAwMDQ5ODIgIG1mbjogMDAwMDQ5ODIN
+Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzFdICAgZ2ZuOiAwMDAwNDk4MyAgbWZuOiAw
+MDAwNDk4Mw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozMV0gICBnZm46IDAwMDA0OTg0
+ICBtZm46IDAwMDA0OTg0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjMxXSAgIGdmbjog
+MDAwMDQ5ODUgIG1mbjogMDAwMDQ5ODUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzFd
+ICAgZ2ZuOiAwMDAwNDk4NiAgbWZuOiAwMDAwNDk4Ng0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
+MTozMjozMV0gICBnZm46IDAwMDA0OTg3ICBtZm46IDAwMDA0OTg3DQoNCihYRU4pIFsyMDEy
+LTA4LTMxIDIxOjMyOjMxXSAgIGdmbjogMDAwMDQ5ODggIG1mbjogMDAwMDQ5ODgNCg0KKFhF
+TikgWzIwMTItMDgtMzEgMjE6MzI6MzFdICAgZ2ZuOiAwMDAwNDk4OSAgbWZuOiAwMDAwNDk4
+OQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozMV0gICBnZm46IDAwMDA0OThhICBtZm46
+IDAwMDA0OThhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjMxXSAgIGdmbjogMDAwMDQ5
+OGIgIG1mbjogMDAwMDQ5OGINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzFdICAgZ2Zu
+OiAwMDAwNDk4YyAgbWZuOiAwMDAwNDk4Yw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoz
+MV0gICBnZm46IDAwMDA0OThkICBtZm46IDAwMDA0OThkDQoNCihYRU4pIFsyMDEyLTA4LTMx
+IDIxOjMyOjMxXSAgIGdmbjogMDAwMDQ5OGUgIG1mbjogMDAwMDQ5OGUNCg0KKFhFTikgWzIw
+MTItMDgtMzEgMjE6MzI6MzFdICAgZ2ZuOiAwMDAwNDk4ZiAgbWZuOiAwMDAwNDk4Zg0KDQoo
+WEVOKSBbMjAxMi0wOC0zMSAyMTozMjozMV0gICBnZm46IDAwMDA0OTkwICBtZm46IDAwMDA0
+OTkwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjMxXSAgIGdmbjogMDAwMDQ5OTEgIG1m
+bjogMDAwMDQ5OTENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzFdICAgZ2ZuOiAwMDAw
+NDk5MiAgbWZuOiAwMDAwNDk5Mg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozMV0gICBn
+Zm46IDAwMDA0OTkzICBtZm46IDAwMDA0OTkzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMy
+OjMxXSAgIGdmbjogMDAwMDQ5OTQgIG1mbjogMDAwMDQ5OTQNCg0KKFhFTikgWzIwMTItMDgt
+MzEgMjE6MzI6MzFdICAgZ2ZuOiAwMDAwNDk5NSAgbWZuOiAwMDAwNDk5NQ0KDQooWEVOKSBb
+MjAxMi0wOC0zMSAyMTozMjozMV0gICBnZm46IDAwMDA0OTk2ICBtZm46IDAwMDA0OTk2DQoN
+CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjMxXSAgIGdmbjogMDAwMDQ5OTcgIG1mbjogMDAw
+MDQ5OTcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzFdICAgZ2ZuOiAwMDAwNDk5OCAg
+bWZuOiAwMDAwNDk5OA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozMV0gICBnZm46IDAw
+MDA0OTk5ICBtZm46IDAwMDA0OTk5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjMxXSAg
+IGdmbjogMDAwMDQ5OWEgIG1mbjogMDAwMDQ5OWENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
+MzI6MzFdICAgZ2ZuOiAwMDAwNDk5YiAgbWZuOiAwMDAwNDk5Yg0KDQooWEVOKSBbMjAxMi0w
+OC0zMSAyMTozMjozMV0gICBnZm46IDAwMDA0OTljICBtZm46IDAwMDA0OTljDQoNCihYRU4p
+IFsyMDEyLTA4LTMxIDIxOjMyOjMxXSAgIGdmbjogMDAwMDQ5OWQgIG1mbjogMDAwMDQ5OWQN
+Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzFdICAgZ2ZuOiAwMDAwNDk5ZSAgbWZuOiAw
+MDAwNDk5ZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozMV0gICBnZm46IDAwMDA0OTlm
+ICBtZm46IDAwMDA0OTlmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjMxXSAgIGdmbjog
+MDAwMDQ5YTAgIG1mbjogMDAwMDQ5YTANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzFd
+ICAgZ2ZuOiAwMDAwNDlhMSAgbWZuOiAwMDAwNDlhMQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
+MTozMjozMV0gICBnZm46IDAwMDA0OWEyICBtZm46IDAwMDA0OWEyDQoNCihYRU4pIFsyMDEy
+LTA4LTMxIDIxOjMyOjMxXSAgIGdmbjogMDAwMDQ5YTMgIG1mbjogMDAwMDQ5YTMNCg0KKFhF
+TikgWzIwMTItMDgtMzEgMjE6MzI6MzFdICAgZ2ZuOiAwMDAwNDlhNCAgbWZuOiAwMDAwNDlh
+NA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozMV0gICBnZm46IDAwMDA0OWE1ICBtZm46
+IDAwMDA0OWE1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjMxXSAgIGdmbjogMDAwMDQ5
+YTYgIG1mbjogMDAwMDQ5YTYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzFdICAgZ2Zu
+OiAwMDAwNDlhNyAgbWZuOiAwMDAwNDlhNw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoz
+MV0gICBnZm46IDAwMDA0OWE4ICBtZm46IDAwMDA0OWE4DQoNCihYRU4pIFsyMDEyLTA4LTMx
+IDIxOjMyOjMxXSAgIGdmbjogMDAwMDQ5YTkgIG1mbjogMDAwMDQ5YTkNCg0KKFhFTikgWzIw
+MTItMDgtMzEgMjE6MzI6MzFdICAgZ2ZuOiAwMDAwNDlhYSAgbWZuOiAwMDAwNDlhYQ0KDQoo
+WEVOKSBbMjAxMi0wOC0zMSAyMTozMjozMV0gICBnZm46IDAwMDA0OWFiICBtZm46IDAwMDA0
+OWFiDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjMxXSAgIGdmbjogMDAwMDQ5YWMgIG1m
+bjogMDAwMDQ5YWMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzFdICAgZ2ZuOiAwMDAw
+NDlhZCAgbWZuOiAwMDAwNDlhZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozMV0gICBn
+Zm46IDAwMDA0OWFlICBtZm46IDAwMDA0OWFlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMy
+OjMxXSAgIGdmbjogMDAwMDQ5YWYgIG1mbjogMDAwMDQ5YWYNCg0KKFhFTikgWzIwMTItMDgt
+MzEgMjE6MzI6MzFdICAgZ2ZuOiAwMDAwNDliMCAgbWZuOiAwMDAwNDliMA0KDQooWEVOKSBb
+MjAxMi0wOC0zMSAyMTozMjozMV0gICBnZm46IDAwMDA0OWIxICBtZm46IDAwMDA0OWIxDQoN
+CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjMxXSAgIGdmbjogMDAwMDQ5YjIgIG1mbjogMDAw
+MDQ5YjINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzFdICAgZ2ZuOiAwMDAwNDliMyAg
+bWZuOiAwMDAwNDliMw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozMV0gICBnZm46IDAw
+MDA0OWI0ICBtZm46IDAwMDA0OWI0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjMxXSAg
+IGdmbjogMDAwMDQ5YjUgIG1mbjogMDAwMDQ5YjUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
+MzI6MzJdICAgZ2ZuOiAwMDAwNDliNiAgbWZuOiAwMDAwNDliNg0KDQooWEVOKSBbMjAxMi0w
+OC0zMSAyMTozMjozMl0gICBnZm46IDAwMDA0OWI3ICBtZm46IDAwMDA0OWI3DQoNCihYRU4p
+IFsyMDEyLTA4LTMxIDIxOjMyOjMyXSAgIGdmbjogMDAwMDQ5YjggIG1mbjogMDAwMDQ5YjgN
+Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzJdICAgZ2ZuOiAwMDAwNDliOSAgbWZuOiAw
+MDAwNDliOQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozMl0gICBnZm46IDAwMDA0OWJh
+ICBtZm46IDAwMDA0OWJhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjMyXSAgIGdmbjog
+MDAwMDQ5YmIgIG1mbjogMDAwMDQ5YmINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzJd
+ICAgZ2ZuOiAwMDAwNDliYyAgbWZuOiAwMDAwNDliYw0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
+MTozMjozMl0gICBnZm46IDAwMDA0OWJkICBtZm46IDAwMDA0OWJkDQoNCihYRU4pIFsyMDEy
+LTA4LTMxIDIxOjMyOjMyXSAgIGdmbjogMDAwMDQ5YmUgIG1mbjogMDAwMDQ5YmUNCg0KKFhF
+TikgWzIwMTItMDgtMzEgMjE6MzI6MzJdICAgZ2ZuOiAwMDAwNDliZiAgbWZuOiAwMDAwNDli
+Zg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozMl0gICBnZm46IDAwMDA0OWMwICBtZm46
+IDAwMDA0OWMwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjMyXSAgIGdmbjogMDAwMDQ5
+YzEgIG1mbjogMDAwMDQ5YzENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzJdICAgZ2Zu
+OiAwMDAwNDljMiAgbWZuOiAwMDAwNDljMg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoz
+Ml0gICBnZm46IDAwMDA0OWMzICBtZm46IDAwMDA0OWMzDQoNCihYRU4pIFsyMDEyLTA4LTMx
+IDIxOjMyOjMyXSAgIGdmbjogMDAwMDQ5YzQgIG1mbjogMDAwMDQ5YzQNCg0KKFhFTikgWzIw
+MTItMDgtMzEgMjE6MzI6MzJdICAgZ2ZuOiAwMDAwNDljNSAgbWZuOiAwMDAwNDljNQ0KDQoo
+WEVOKSBbMjAxMi0wOC0zMSAyMTozMjozMl0gICBnZm46IDAwMDA0OWM2ICBtZm46IDAwMDA0
+OWM2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjMyXSAgIGdmbjogMDAwMDQ5YzcgIG1m
+bjogMDAwMDQ5YzcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzJdICAgZ2ZuOiAwMDAw
+NDljOCAgbWZuOiAwMDAwNDljOA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozMl0gICBn
+Zm46IDAwMDA0OWM5ICBtZm46IDAwMDA0OWM5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMy
+OjMyXSAgIGdmbjogMDAwMDQ5Y2EgIG1mbjogMDAwMDQ5Y2ENCg0KKFhFTikgWzIwMTItMDgt
+MzEgMjE6MzI6MzJdICAgZ2ZuOiAwMDAwNDljYiAgbWZuOiAwMDAwNDljYg0KDQooWEVOKSBb
+MjAxMi0wOC0zMSAyMTozMjozMl0gICBnZm46IDAwMDA0OWNjICBtZm46IDAwMDA0OWNjDQoN
+CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjMyXSAgIGdmbjogMDAwMDQ5Y2QgIG1mbjogMDAw
+MDQ5Y2QNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzJdICAgZ2ZuOiAwMDAwNDljZSAg
+bWZuOiAwMDAwNDljZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozMl0gICBnZm46IDAw
+MDA0OWNmICBtZm46IDAwMDA0OWNmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjMyXSAg
+IGdmbjogMDAwMDQ5ZDAgIG1mbjogMDAwMDQ5ZDANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
+MzI6MzJdICAgZ2ZuOiAwMDAwNDlkMSAgbWZuOiAwMDAwNDlkMQ0KDQooWEVOKSBbMjAxMi0w
+OC0zMSAyMTozMjozMl0gICBnZm46IDAwMDA0OWQyICBtZm46IDAwMDA0OWQyDQoNCihYRU4p
+IFsyMDEyLTA4LTMxIDIxOjMyOjMyXSAgIGdmbjogMDAwMDQ5ZDMgIG1mbjogMDAwMDQ5ZDMN
+Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzJdICAgZ2ZuOiAwMDAwNDlkNCAgbWZuOiAw
+MDAwNDlkNA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozMl0gICBnZm46IDAwMDA0OWQ1
+ICBtZm46IDAwMDA0OWQ1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjMyXSAgIGdmbjog
+MDAwMDQ5ZDYgIG1mbjogMDAwMDQ5ZDYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzJd
+ICAgZ2ZuOiAwMDAwNDlkNyAgbWZuOiAwMDAwNDlkNw0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
+MTozMjozMl0gICBnZm46IDAwMDA0OWQ4ICBtZm46IDAwMDA0OWQ4DQoNCihYRU4pIFsyMDEy
+LTA4LTMxIDIxOjMyOjMyXSAgIGdmbjogMDAwMDQ5ZDkgIG1mbjogMDAwMDQ5ZDkNCg0KKFhF
+TikgWzIwMTItMDgtMzEgMjE6MzI6MzJdICAgZ2ZuOiAwMDAwNDlkYSAgbWZuOiAwMDAwNDlk
+YQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozMl0gICBnZm46IDAwMDA0OWRiICBtZm46
+IDAwMDA0OWRiDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjMyXSAgIGdmbjogMDAwMDQ5
+ZGMgIG1mbjogMDAwMDQ5ZGMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzJdICAgZ2Zu
+OiAwMDAwNDlkZCAgbWZuOiAwMDAwNDlkZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoz
+Ml0gICBnZm46IDAwMDA0OWRlICBtZm46IDAwMDA0OWRlDQoNCihYRU4pIFsyMDEyLTA4LTMx
+IDIxOjMyOjMyXSAgIGdmbjogMDAwMDQ5ZGYgIG1mbjogMDAwMDQ5ZGYNCg0KKFhFTikgWzIw
+MTItMDgtMzEgMjE6MzI6MzJdICAgZ2ZuOiAwMDAwNDllMCAgbWZuOiAwMDAwNDllMA0KDQoo
+WEVOKSBbMjAxMi0wOC0zMSAyMTozMjozMl0gICBnZm46IDAwMDA0OWUxICBtZm46IDAwMDA0
+OWUxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjMyXSAgIGdmbjogMDAwMDQ5ZTIgIG1m
+bjogMDAwMDQ5ZTINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzJdICAgZ2ZuOiAwMDAw
+NDllMyAgbWZuOiAwMDAwNDllMw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozMl0gICBn
+Zm46IDAwMDA0OWU0ICBtZm46IDAwMDA0OWU0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMy
+OjMyXSAgIGdmbjogMDAwMDQ5ZTUgIG1mbjogMDAwMDQ5ZTUNCg0KKFhFTikgWzIwMTItMDgt
+MzEgMjE6MzI6MzJdICAgZ2ZuOiAwMDAwNDllNiAgbWZuOiAwMDAwNDllNg0KDQooWEVOKSBb
+MjAxMi0wOC0zMSAyMTozMjozMl0gICBnZm46IDAwMDA0OWU3ICBtZm46IDAwMDA0OWU3DQoN
+CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjMyXSAgIGdmbjogMDAwMDQ5ZTggIG1mbjogMDAw
+MDQ5ZTgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzJdICAgZ2ZuOiAwMDAwNDllOSAg
+bWZuOiAwMDAwNDllOQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozMl0gICBnZm46IDAw
+MDA0OWVhICBtZm46IDAwMDA0OWVhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjMyXSAg
+IGdmbjogMDAwMDQ5ZWIgIG1mbjogMDAwMDQ5ZWINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
+MzI6MzJdICAgZ2ZuOiAwMDAwNDllYyAgbWZuOiAwMDAwNDllYw0KDQooWEVOKSBbMjAxMi0w
+OC0zMSAyMTozMjozMl0gICBnZm46IDAwMDA0OWVkICBtZm46IDAwMDA0OWVkDQoNCihYRU4p
+IFsyMDEyLTA4LTMxIDIxOjMyOjMyXSAgIGdmbjogMDAwMDQ5ZWUgIG1mbjogMDAwMDQ5ZWUN
+Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzJdICAgZ2ZuOiAwMDAwNDllZiAgbWZuOiAw
+MDAwNDllZg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozMl0gICBnZm46IDAwMDA0OWYw
+ICBtZm46IDAwMDA0OWYwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjMyXSAgIGdmbjog
+MDAwMDQ5ZjEgIG1mbjogMDAwMDQ5ZjENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzJd
+ICAgZ2ZuOiAwMDAwNDlmMiAgbWZuOiAwMDAwNDlmMg0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
+MTozMjozMl0gICBnZm46IDAwMDA0OWYzICBtZm46IDAwMDA0OWYzDQoNCihYRU4pIFsyMDEy
+LTA4LTMxIDIxOjMyOjMyXSAgIGdmbjogMDAwMDQ5ZjQgIG1mbjogMDAwMDQ5ZjQNCg0KKFhF
+TikgWzIwMTItMDgtMzEgMjE6MzI6MzJdICAgZ2ZuOiAwMDAwNDlmNSAgbWZuOiAwMDAwNDlm
+NQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozM10gICBnZm46IDAwMDA0OWY2ICBtZm46
+IDAwMDA0OWY2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjMzXSAgIGdmbjogMDAwMDQ5
+ZjcgIG1mbjogMDAwMDQ5ZjcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzNdICAgZ2Zu
+OiAwMDAwNDlmOCAgbWZuOiAwMDAwNDlmOA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoz
+M10gICBnZm46IDAwMDA0OWY5ICBtZm46IDAwMDA0OWY5DQoNCihYRU4pIFsyMDEyLTA4LTMx
+IDIxOjMyOjMzXSAgIGdmbjogMDAwMDQ5ZmEgIG1mbjogMDAwMDQ5ZmENCg0KKFhFTikgWzIw
+MTItMDgtMzEgMjE6MzI6MzNdICAgZ2ZuOiAwMDAwNDlmYiAgbWZuOiAwMDAwNDlmYg0KDQoo
+WEVOKSBbMjAxMi0wOC0zMSAyMTozMjozM10gICBnZm46IDAwMDA0OWZjICBtZm46IDAwMDA0
+OWZjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjMzXSAgIGdmbjogMDAwMDQ5ZmQgIG1m
+bjogMDAwMDQ5ZmQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzNdICAgZ2ZuOiAwMDAw
+NDlmZSAgbWZuOiAwMDAwNDlmZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozM10gICBn
+Zm46IDAwMDA0OWZmICBtZm46IDAwMDA0OWZmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMy
+OjMzXSAgIGdmbjogMDAwMDRhMDAgIG1mbjogMDAwMDRhMDANCg0KKFhFTikgWzIwMTItMDgt
+MzEgMjE6MzI6MzNdICAgZ2ZuOiAwMDAwNGEwMSAgbWZuOiAwMDAwNGEwMQ0KDQooWEVOKSBb
+MjAxMi0wOC0zMSAyMTozMjozM10gICBnZm46IDAwMDA0YTAyICBtZm46IDAwMDA0YTAyDQoN
+CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjMzXSAgIGdmbjogMDAwMDRhMDMgIG1mbjogMDAw
+MDRhMDMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzNdICAgZ2ZuOiAwMDAwNGEwNCAg
+bWZuOiAwMDAwNGEwNA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozM10gICBnZm46IDAw
+MDA0YTA1ICBtZm46IDAwMDA0YTA1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjMzXSAg
+IGdmbjogMDAwMDRhMDYgIG1mbjogMDAwMDRhMDYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
+MzI6MzNdICAgZ2ZuOiAwMDAwNGEwNyAgbWZuOiAwMDAwNGEwNw0KDQooWEVOKSBbMjAxMi0w
+OC0zMSAyMTozMjozM10gICBnZm46IDAwMDA0YTA4ICBtZm46IDAwMDA0YTA4DQoNCihYRU4p
+IFsyMDEyLTA4LTMxIDIxOjMyOjMzXSAgIGdmbjogMDAwMDRhMDkgIG1mbjogMDAwMDRhMDkN
+Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzNdICAgZ2ZuOiAwMDAwNGEwYSAgbWZuOiAw
+MDAwNGEwYQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozM10gICBnZm46IDAwMDA0YTBi
+ICBtZm46IDAwMDA0YTBiDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjMzXSAgIGdmbjog
+MDAwMDRhMGMgIG1mbjogMDAwMDRhMGMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzNd
+ICAgZ2ZuOiAwMDAwNGEwZCAgbWZuOiAwMDAwNGEwZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
+MTozMjozM10gICBnZm46IDAwMDA0YTBlICBtZm46IDAwMDA0YTBlDQoNCihYRU4pIFsyMDEy
+LTA4LTMxIDIxOjMyOjMzXSAgIGdmbjogMDAwMDRhMGYgIG1mbjogMDAwMDRhMGYNCg0KKFhF
+TikgWzIwMTItMDgtMzEgMjE6MzI6MzNdICAgZ2ZuOiAwMDAwNGExMCAgbWZuOiAwMDAwNGEx
+MA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozM10gICBnZm46IDAwMDA0YTExICBtZm46
+IDAwMDA0YTExDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjMzXSAgIGdmbjogMDAwMDRh
+MTIgIG1mbjogMDAwMDRhMTINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzNdICAgZ2Zu
+OiAwMDAwNGExMyAgbWZuOiAwMDAwNGExMw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoz
+M10gICBnZm46IDAwMDA0YTE0ICBtZm46IDAwMDA0YTE0DQoNCihYRU4pIFsyMDEyLTA4LTMx
+IDIxOjMyOjMzXSAgIGdmbjogMDAwMDRhMTUgIG1mbjogMDAwMDRhMTUNCg0KKFhFTikgWzIw
+MTItMDgtMzEgMjE6MzI6MzNdICAgZ2ZuOiAwMDAwNGExNiAgbWZuOiAwMDAwNGExNg0KDQoo
+WEVOKSBbMjAxMi0wOC0zMSAyMTozMjozM10gICBnZm46IDAwMDA0YTE3ICBtZm46IDAwMDA0
+YTE3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjMzXSAgIGdmbjogMDAwMDRhMTggIG1m
+bjogMDAwMDRhMTgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzNdICAgZ2ZuOiAwMDAw
+NGExOSAgbWZuOiAwMDAwNGExOQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozM10gICBn
+Zm46IDAwMDA0YTFhICBtZm46IDAwMDA0YTFhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMy
+OjMzXSAgIGdmbjogMDAwMDRhMWIgIG1mbjogMDAwMDRhMWINCg0KKFhFTikgWzIwMTItMDgt
+MzEgMjE6MzI6MzNdICAgZ2ZuOiAwMDAwNGExYyAgbWZuOiAwMDAwNGExYw0KDQooWEVOKSBb
+MjAxMi0wOC0zMSAyMTozMjozM10gICBnZm46IDAwMDA0YTFkICBtZm46IDAwMDA0YTFkDQoN
+CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjMzXSAgIGdmbjogMDAwMDRhMWUgIG1mbjogMDAw
+MDRhMWUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzNdICAgZ2ZuOiAwMDAwNGExZiAg
+bWZuOiAwMDAwNGExZg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozM10gICBnZm46IDAw
+MDA0YTIwICBtZm46IDAwMDA0YTIwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjMzXSAg
+IGdmbjogMDAwMDRhMjEgIG1mbjogMDAwMDRhMjENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
+MzI6MzNdICAgZ2ZuOiAwMDAwNGEyMiAgbWZuOiAwMDAwNGEyMg0KDQooWEVOKSBbMjAxMi0w
+OC0zMSAyMTozMjozM10gICBnZm46IDAwMDA0YTIzICBtZm46IDAwMDA0YTIzDQoNCihYRU4p
+IFsyMDEyLTA4LTMxIDIxOjMyOjMzXSAgIGdmbjogMDAwMDRhMjQgIG1mbjogMDAwMDRhMjQN
+Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzNdICAgZ2ZuOiAwMDAwNGEyNSAgbWZuOiAw
+MDAwNGEyNQ0KDQpbICA0MTkuNzI3NTc1XSBhdGExLjAwOiBxYyB0aW1lbyhYRU4pIFsyMDEy
+LTA4LTMxIDIxOjMyOjMzXSAgIGdmbjogMDAwMDRhMjYgIG1mbjogMDAwMDRhMjYNCg0KdXQg
+KGNtZCAweGVjKQ0KDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjMzXSAgIGdmbjogMDAw
+MDRhMjcgIG1mbjogMDAwMDRhMjcNCg0KWyAgNDE5Ljc4NTU2OV0gYXRhMS4wMDogZmFpbGVk
+IHQoWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozM10gICBnZm46IDAwMDA0YTI4ICBtZm46IDAw
+MDA0YTI4DQoNCm8gSURFTlRJRlkgKEkvTyAoWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozM10g
+ICBnZm46IDAwMDA0YTI5ICBtZm46IDAwMDA0YTI5DQoNCmVycm9yLCBlcnJfbWFzaz0weDQp
+DQoNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzNdICAgZ2ZuOiAwMDAwNGEyYSAgbWZu
+OiAwMDAwNGEyYQ0KDQpbICA0MTkuODUxOTg1XSBhKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
+MzNdICAgZ2ZuOiAwMDAwNGEyYiAgbWZuOiAwMDAwNGEyYg0KDQp0YTEuMDA6IHJldmFsaWRh
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzNdICAgZ2ZuOiAwMDAwNGEyYyAgbWZuOiAwMDAw
+NGEyYw0KDQp0aW9uIGZhaWxlZCAoZXJyKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzNdICAg
+Z2ZuOiAwMDAwNGEyZCAgbWZuOiAwMDAwNGEyZA0KDQpubz0tNSkNCg0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMjozM10gICBnZm46IDAwMDA0YTJlICBtZm46IDAwMDA0YTJlDQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjMzXSAgIGdmbjogMDAwMDRhMmYgIG1mbjogMDAwMDRh
+MmYNCg0KWyAgNDE5LjkzMTA1MV0gYXRhMTogaGFyZCByZXNldHQoWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMjozM10gICBnZm46IDAwMDA0YTMwICBtZm46IDAwMDA0YTMwDQoNCmluZyBsaW5r
+DQoNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzNdICAgZ2ZuOiAwMDAwNGEzMSAgbWZu
+OiAwMDAwNGEzMQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozNF0gICBnZm46IDAwMDA0
+YTMyICBtZm46IDAwMDA0YTMyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM0XSAgIGdm
+bjogMDAwMDRhMzMgIG1mbjogMDAwMDRhMzMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
+MzRdICAgZ2ZuOiAwMDAwNGEzNCAgbWZuOiAwMDAwNGEzNA0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMjozNF0gICBnZm46IDAwMDA0YTM1ICBtZm46IDAwMDA0YTM1DQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMyOjM0XSAgIGdmbjogMDAwMDRhMzYgIG1mbjogMDAwMDRhMzYNCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzRdICAgZ2ZuOiAwMDAwNGEzNyAgbWZuOiAwMDAw
+NGEzNw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozNF0gICBnZm46IDAwMDA0YTM4ICBt
+Zm46IDAwMDA0YTM4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM0XSAgIGdmbjogMDAw
+MDRhMzkgIG1mbjogMDAwMDRhMzkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzRdICAg
+Z2ZuOiAwMDAwNGEzYSAgbWZuOiAwMDAwNGEzYQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+MjozNF0gICBnZm46IDAwMDA0YTNiICBtZm46IDAwMDA0YTNiDQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMyOjM0XSAgIGdmbjogMDAwMDRhM2MgIG1mbjogMDAwMDRhM2MNCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzI6MzRdICAgZ2ZuOiAwMDAwNGEzZCAgbWZuOiAwMDAwNGEzZA0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozNF0gICBnZm46IDAwMDA0YTNlICBtZm46IDAw
+MDA0YTNlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM0XSAgIGdmbjogMDAwMDRhM2Yg
+IG1mbjogMDAwMDRhM2YNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzRdICAgZ2ZuOiAw
+MDAwNGE0MCAgbWZuOiAwMDAwNGE0MA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozNF0g
+ICBnZm46IDAwMDA0YTQxICBtZm46IDAwMDA0YTQxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMyOjM0XSAgIGdmbjogMDAwMDRhNDIgIG1mbjogMDAwMDRhNDINCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzI6MzRdICAgZ2ZuOiAwMDAwNGE0MyAgbWZuOiAwMDAwNGE0Mw0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMjozNF0gICBnZm46IDAwMDA0YTQ0ICBtZm46IDAwMDA0YTQ0
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM0XSAgIGdmbjogMDAwMDRhNDUgIG1mbjog
+MDAwMDRhNDUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzRdICAgZ2ZuOiAwMDAwNGE0
+NiAgbWZuOiAwMDAwNGE0Ng0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozNF0gICBnZm46
+IDAwMDA0YTQ3ICBtZm46IDAwMDA0YTQ3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM0
+XSAgIGdmbjogMDAwMDRhNDggIG1mbjogMDAwMDRhNDgNCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzI6MzRdICAgZ2ZuOiAwMDAwNGE0OSAgbWZuOiAwMDAwNGE0OQ0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMjozNF0gICBnZm46IDAwMDA0YTRhICBtZm46IDAwMDA0YTRhDQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM0XSAgIGdmbjogMDAwMDRhNGIgIG1mbjogMDAwMDRh
+NGINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzRdICAgZ2ZuOiAwMDAwNGE0YyAgbWZu
+OiAwMDAwNGE0Yw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozNF0gICBnZm46IDAwMDA0
+YTRkICBtZm46IDAwMDA0YTRkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM0XSAgIGdm
+bjogMDAwMDRhNGUgIG1mbjogMDAwMDRhNGUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
+MzRdICAgZ2ZuOiAwMDAwNGE0ZiAgbWZuOiAwMDAwNGE0Zg0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMjozNF0gICBnZm46IDAwMDA0YTUwICBtZm46IDAwMDA0YTUwDQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMyOjM0XSAgIGdmbjogMDAwMDRhNTEgIG1mbjogMDAwMDRhNTENCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzRdICAgZ2ZuOiAwMDAwNGE1MiAgbWZuOiAwMDAw
+NGE1Mg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozNF0gICBnZm46IDAwMDA0YTUzICBt
+Zm46IDAwMDA0YTUzDQoNClsgIDQyMC41MDA5ODFdIGF0YTE6IFNBVEEgbGluayB1KFhFTikg
+WzIwMTItMDgtMzEgMjE6MzI6MzRdICAgZ2ZuOiAwMDAwNGE1NCAgbWZuOiAwMDAwNGE1NA0K
+DQpwIDMuMCBHYnBzIChTU3RhKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzRdICAgZ2ZuOiAw
+MDAwNGE1NSAgbWZuOiAwMDAwNGE1NQ0KDQp0dXMgMTIzIFNDb250cm9sIDMwMCkNCg0KDQoo
+WEVOKSBbMjAxMi0wOC0zMSAyMTozMjozNF0gICBnZm46IDAwMDA0YTU2ICBtZm46IDAwMDA0
+YTU2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM0XSAgIGdmbjogMDAwMDRhNTcgIG1m
+bjogMDAwMDRhNTcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzRdICAgZ2ZuOiAwMDAw
+NGE1OCAgbWZuOiAwMDAwNGE1OA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozNF0gICBn
+Zm46IDAwMDA0YTU5ICBtZm46IDAwMDA0YTU5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMy
+OjM0XSAgIGdmbjogMDAwMDRhNWEgIG1mbjogMDAwMDRhNWENCg0KKFhFTikgWzIwMTItMDgt
+MzEgMjE6MzI6MzRdICAgZ2ZuOiAwMDAwNGE1YiAgbWZuOiAwMDAwNGE1Yg0KDQooWEVOKSBb
+MjAxMi0wOC0zMSAyMTozMjozNF0gICBnZm46IDAwMDA0YTVjICBtZm46IDAwMDA0YTVjDQoN
+CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM0XSAgIGdmbjogMDAwMDRhNWQgIG1mbjogMDAw
+MDRhNWQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzRdICAgZ2ZuOiAwMDAwNGE1ZSAg
+bWZuOiAwMDAwNGE1ZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozNF0gICBnZm46IDAw
+MDA0YTVmICBtZm46IDAwMDA0YTVmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM0XSAg
+IGdmbjogMDAwMDRhNjAgIG1mbjogMDAwMDRhNjANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
+MzI6MzRdICAgZ2ZuOiAwMDAwNGE2MSAgbWZuOiAwMDAwNGE2MQ0KDQooWEVOKSBbMjAxMi0w
+OC0zMSAyMTozMjozNF0gICBnZm46IDAwMDA0YTYyICBtZm46IDAwMDA0YTYyDQoNCihYRU4p
+IFsyMDEyLTA4LTMxIDIxOjMyOjM0XSAgIGdmbjogMDAwMDRhNjMgIG1mbjogMDAwMDRhNjMN
+Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzRdICAgZ2ZuOiAwMDAwNGE2NCAgbWZuOiAw
+MDAwNGE2NA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozNF0gICBnZm46IDAwMDA0YTY1
+ICBtZm46IDAwMDA0YTY1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM0XSAgIGdmbjog
+MDAwMDRhNjYgIG1mbjogMDAwMDRhNjYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzRd
+ICAgZ2ZuOiAwMDAwNGE2NyAgbWZuOiAwMDAwNGE2Nw0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
+MTozMjozNF0gICBnZm46IDAwMDA0YTY4ICBtZm46IDAwMDA0YTY4DQoNCihYRU4pIFsyMDEy
+LTA4LTMxIDIxOjMyOjM0XSAgIGdmbjogMDAwMDRhNjkgIG1mbjogMDAwMDRhNjkNCg0KKFhF
+TikgWzIwMTItMDgtMzEgMjE6MzI6MzRdICAgZ2ZuOiAwMDAwNGE2YSAgbWZuOiAwMDAwNGE2
+YQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozNF0gICBnZm46IDAwMDA0YTZiICBtZm46
+IDAwMDA0YTZiDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM0XSAgIGdmbjogMDAwMDRh
+NmMgIG1mbjogMDAwMDRhNmMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzRdICAgZ2Zu
+OiAwMDAwNGE2ZCAgbWZuOiAwMDAwNGE2ZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoz
+NF0gICBnZm46IDAwMDA0YTZlICBtZm46IDAwMDA0YTZlDQoNCihYRU4pIFsyMDEyLTA4LTMx
+IDIxOjMyOjM0XSAgIGdmbjogMDAwMDRhNmYgIG1mbjogMDAwMDRhNmYNCg0KKFhFTikgWzIw
+MTItMDgtMzEgMjE6MzI6MzRdICAgZ2ZuOiAwMDAwNGE3MCAgbWZuOiAwMDAwNGE3MA0KDQoo
+WEVOKSBbMjAxMi0wOC0zMSAyMTozMjozNV0gICBnZm46IDAwMDA0YTcxICBtZm46IDAwMDA0
+YTcxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM1XSAgIGdmbjogMDAwMDRhNzIgIG1m
+bjogMDAwMDRhNzINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzVdICAgZ2ZuOiAwMDAw
+NGE3MyAgbWZuOiAwMDAwNGE3Mw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozNV0gICBn
+Zm46IDAwMDA0YTc0ICBtZm46IDAwMDA0YTc0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMy
+OjM1XSAgIGdmbjogMDAwMDRhNzUgIG1mbjogMDAwMDRhNzUNCg0KKFhFTikgWzIwMTItMDgt
+MzEgMjE6MzI6MzVdICAgZ2ZuOiAwMDAwNGE3NiAgbWZuOiAwMDAwNGE3Ng0KDQooWEVOKSBb
+MjAxMi0wOC0zMSAyMTozMjozNV0gICBnZm46IDAwMDA0YTc3ICBtZm46IDAwMDA0YTc3DQoN
+CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM1XSAgIGdmbjogMDAwMDRhNzggIG1mbjogMDAw
+MDRhNzgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzVdICAgZ2ZuOiAwMDAwNGE3OSAg
+bWZuOiAwMDAwNGE3OQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozNV0gICBnZm46IDAw
+MDA0YTdhICBtZm46IDAwMDA0YTdhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM1XSAg
+IGdmbjogMDAwMDRhN2IgIG1mbjogMDAwMDRhN2INCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
+MzI6MzVdICAgZ2ZuOiAwMDAwNGE3YyAgbWZuOiAwMDAwNGE3Yw0KDQooWEVOKSBbMjAxMi0w
+OC0zMSAyMTozMjozNV0gICBnZm46IDAwMDA0YTdkICBtZm46IDAwMDA0YTdkDQoNCihYRU4p
+IFsyMDEyLTA4LTMxIDIxOjMyOjM1XSAgIGdmbjogMDAwMDRhN2UgIG1mbjogMDAwMDRhN2UN
+Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzVdICAgZ2ZuOiAwMDAwNGE3ZiAgbWZuOiAw
+MDAwNGE3Zg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozNV0gICBnZm46IDAwMDA0YTgw
+ICBtZm46IDAwMDA0YTgwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM1XSAgIGdmbjog
+MDAwMDRhODEgIG1mbjogMDAwMDRhODENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzVd
+ICAgZ2ZuOiAwMDAwNGE4MiAgbWZuOiAwMDAwNGE4Mg0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
+MTozMjozNV0gICBnZm46IDAwMDA0YTgzICBtZm46IDAwMDA0YTgzDQoNCihYRU4pIFsyMDEy
+LTA4LTMxIDIxOjMyOjM1XSAgIGdmbjogMDAwMDRhODQgIG1mbjogMDAwMDRhODQNCg0KKFhF
+TikgWzIwMTItMDgtMzEgMjE6MzI6MzVdICAgZ2ZuOiAwMDAwNGE4NSAgbWZuOiAwMDAwNGE4
+NQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozNV0gICBnZm46IDAwMDA0YTg2ICBtZm46
+IDAwMDA0YTg2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM1XSAgIGdmbjogMDAwMDRh
+ODcgIG1mbjogMDAwMDRhODcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzVdICAgZ2Zu
+OiAwMDAwNGE4OCAgbWZuOiAwMDAwNGE4OA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoz
+NV0gICBnZm46IDAwMDA0YTg5ICBtZm46IDAwMDA0YTg5DQoNCihYRU4pIFsyMDEyLTA4LTMx
+IDIxOjMyOjM1XSAgIGdmbjogMDAwMDRhOGEgIG1mbjogMDAwMDRhOGENCg0KKFhFTikgWzIw
+MTItMDgtMzEgMjE6MzI6MzVdICAgZ2ZuOiAwMDAwNGE4YiAgbWZuOiAwMDAwNGE4Yg0KDQoo
+WEVOKSBbMjAxMi0wOC0zMSAyMTozMjozNV0gICBnZm46IDAwMDA0YThjICBtZm46IDAwMDA0
+YThjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM1XSAgIGdmbjogMDAwMDRhOGQgIG1m
+bjogMDAwMDRhOGQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzVdICAgZ2ZuOiAwMDAw
+NGE4ZSAgbWZuOiAwMDAwNGE4ZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozNV0gICBn
+Zm46IDAwMDA0YThmICBtZm46IDAwMDA0YThmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMy
+OjM1XSAgIGdmbjogMDAwMDRhOTAgIG1mbjogMDAwMDRhOTANCg0KKFhFTikgWzIwMTItMDgt
+MzEgMjE6MzI6MzVdICAgZ2ZuOiAwMDAwNGE5MSAgbWZuOiAwMDAwNGE5MQ0KDQooWEVOKSBb
+MjAxMi0wOC0zMSAyMTozMjozNV0gICBnZm46IDAwMDA0YTkyICBtZm46IDAwMDA0YTkyDQoN
+CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM1XSAgIGdmbjogMDAwMDRhOTMgIG1mbjogMDAw
+MDRhOTMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzVdICAgZ2ZuOiAwMDAwNGE5NCAg
+bWZuOiAwMDAwNGE5NA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozNV0gICBnZm46IDAw
+MDA0YTk1ICBtZm46IDAwMDA0YTk1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM1XSAg
+IGdmbjogMDAwMDRhOTYgIG1mbjogMDAwMDRhOTYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
+MzI6MzVdICAgZ2ZuOiAwMDAwNGE5NyAgbWZuOiAwMDAwNGE5Nw0KDQooWEVOKSBbMjAxMi0w
+OC0zMSAyMTozMjozNV0gICBnZm46IDAwMDA0YTk4ICBtZm46IDAwMDA0YTk4DQoNCihYRU4p
+IFsyMDEyLTA4LTMxIDIxOjMyOjM1XSAgIGdmbjogMDAwMDRhOTkgIG1mbjogMDAwMDRhOTkN
+Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzVdICAgZ2ZuOiAwMDAwNGE5YSAgbWZuOiAw
+MDAwNGE5YQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozNV0gICBnZm46IDAwMDA0YTli
+ICBtZm46IDAwMDA0YTliDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM1XSAgIGdmbjog
+MDAwMDRhOWMgIG1mbjogMDAwMDRhOWMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzVd
+ICAgZ2ZuOiAwMDAwNGE5ZCAgbWZuOiAwMDAwNGE5ZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
+MTozMjozNV0gICBnZm46IDAwMDA0YTllICBtZm46IDAwMDA0YTllDQoNCihYRU4pIFsyMDEy
+LTA4LTMxIDIxOjMyOjM1XSAgIGdmbjogMDAwMDRhOWYgIG1mbjogMDAwMDRhOWYNCg0KKFhF
+TikgWzIwMTItMDgtMzEgMjE6MzI6MzVdICAgZ2ZuOiAwMDAwNGFhMCAgbWZuOiAwMDAwNGFh
+MA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozNV0gICBnZm46IDAwMDA0YWExICBtZm46
+IDAwMDA0YWExDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM1XSAgIGdmbjogMDAwMDRh
+YTIgIG1mbjogMDAwMDRhYTINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzVdICAgZ2Zu
+OiAwMDAwNGFhMyAgbWZuOiAwMDAwNGFhMw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoz
+NV0gICBnZm46IDAwMDA0YWE0ICBtZm46IDAwMDA0YWE0DQoNCihYRU4pIFsyMDEyLTA4LTMx
+IDIxOjMyOjM1XSAgIGdmbjogMDAwMDRhYTUgIG1mbjogMDAwMDRhYTUNCg0KKFhFTikgWzIw
+MTItMDgtMzEgMjE6MzI6MzVdICAgZ2ZuOiAwMDAwNGFhNiAgbWZuOiAwMDAwNGFhNg0KDQoo
+WEVOKSBbMjAxMi0wOC0zMSAyMTozMjozNV0gICBnZm46IDAwMDA0YWE3ICBtZm46IDAwMDA0
+YWE3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM1XSAgIGdmbjogMDAwMDRhYTggIG1m
+bjogMDAwMDRhYTgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzVdICAgZ2ZuOiAwMDAw
+NGFhOSAgbWZuOiAwMDAwNGFhOQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozNV0gICBn
+Zm46IDAwMDA0YWFhICBtZm46IDAwMDA0YWFhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMy
+OjM1XSAgIGdmbjogMDAwMDRhYWIgIG1mbjogMDAwMDRhYWINCg0KKFhFTikgWzIwMTItMDgt
+MzEgMjE6MzI6MzVdICAgZ2ZuOiAwMDAwNGFhYyAgbWZuOiAwMDAwNGFhYw0KDQooWEVOKSBb
+MjAxMi0wOC0zMSAyMTozMjozNV0gICBnZm46IDAwMDA0YWFkICBtZm46IDAwMDA0YWFkDQoN
+CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM1XSAgIGdmbjogMDAwMDRhYWUgIG1mbjogMDAw
+MDRhYWUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzVdICAgZ2ZuOiAwMDAwNGFhZiAg
+bWZuOiAwMDAwNGFhZg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozNV0gICBnZm46IDAw
+MDA0YWIwICBtZm46IDAwMDA0YWIwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM2XSAg
+IGdmbjogMDAwMDRhYjEgIG1mbjogMDAwMDRhYjENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
+MzI6MzZdICAgZ2ZuOiAwMDAwNGFiMiAgbWZuOiAwMDAwNGFiMg0KDQooWEVOKSBbMjAxMi0w
+OC0zMSAyMTozMjozNl0gICBnZm46IDAwMDA0YWIzICBtZm46IDAwMDA0YWIzDQoNCihYRU4p
+IFsyMDEyLTA4LTMxIDIxOjMyOjM2XSAgIGdmbjogMDAwMDRhYjQgIG1mbjogMDAwMDRhYjQN
+Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzZdICAgZ2ZuOiAwMDAwNGFiNSAgbWZuOiAw
+MDAwNGFiNQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozNl0gICBnZm46IDAwMDA0YWI2
+ICBtZm46IDAwMDA0YWI2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM2XSAgIGdmbjog
+MDAwMDRhYjcgIG1mbjogMDAwMDRhYjcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzZd
+ICAgZ2ZuOiAwMDAwNGFiOCAgbWZuOiAwMDAwNGFiOA0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
+MTozMjozNl0gICBnZm46IDAwMDA0YWI5ICBtZm46IDAwMDA0YWI5DQoNCihYRU4pIFsyMDEy
+LTA4LTMxIDIxOjMyOjM2XSAgIGdmbjogMDAwMDRhYmEgIG1mbjogMDAwMDRhYmENCg0KKFhF
+TikgWzIwMTItMDgtMzEgMjE6MzI6MzZdICAgZ2ZuOiAwMDAwNGFiYiAgbWZuOiAwMDAwNGFi
+Yg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozNl0gICBnZm46IDAwMDA0YWJjICBtZm46
+IDAwMDA0YWJjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM2XSAgIGdmbjogMDAwMDRh
+YmQgIG1mbjogMDAwMDRhYmQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzZdICAgZ2Zu
+OiAwMDAwNGFiZSAgbWZuOiAwMDAwNGFiZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoz
+Nl0gICBnZm46IDAwMDA0YWJmICBtZm46IDAwMDA0YWJmDQoNCihYRU4pIFsyMDEyLTA4LTMx
+IDIxOjMyOjM2XSAgIGdmbjogMDAwMDRhYzAgIG1mbjogMDAwMDRhYzANCg0KKFhFTikgWzIw
+MTItMDgtMzEgMjE6MzI6MzZdICAgZ2ZuOiAwMDAwNGFjMSAgbWZuOiAwMDAwNGFjMQ0KDQoo
+WEVOKSBbMjAxMi0wOC0zMSAyMTozMjozNl0gICBnZm46IDAwMDA0YWMyICBtZm46IDAwMDA0
+YWMyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM2XSAgIGdmbjogMDAwMDRhYzMgIG1m
+bjogMDAwMDRhYzMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzZdICAgZ2ZuOiAwMDAw
+NGFjNCAgbWZuOiAwMDAwNGFjNA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozNl0gICBn
+Zm46IDAwMDA0YWM1ICBtZm46IDAwMDA0YWM1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMy
+OjM2XSAgIGdmbjogMDAwMDRhYzYgIG1mbjogMDAwMDRhYzYNCg0KKFhFTikgWzIwMTItMDgt
+MzEgMjE6MzI6MzZdICAgZ2ZuOiAwMDAwNGFjNyAgbWZuOiAwMDAwNGFjNw0KDQooWEVOKSBb
+MjAxMi0wOC0zMSAyMTozMjozNl0gICBnZm46IDAwMDA0YWM4ICBtZm46IDAwMDA0YWM4DQoN
+CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM2XSAgIGdmbjogMDAwMDRhYzkgIG1mbjogMDAw
+MDRhYzkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzZdICAgZ2ZuOiAwMDAwNGFjYSAg
+bWZuOiAwMDAwNGFjYQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozNl0gICBnZm46IDAw
+MDA0YWNiICBtZm46IDAwMDA0YWNiDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM2XSAg
+IGdmbjogMDAwMDRhY2MgIG1mbjogMDAwMDRhY2MNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
+MzI6MzZdICAgZ2ZuOiAwMDAwNGFjZCAgbWZuOiAwMDAwNGFjZA0KDQooWEVOKSBbMjAxMi0w
+OC0zMSAyMTozMjozNl0gICBnZm46IDAwMDA0YWNlICBtZm46IDAwMDA0YWNlDQoNCihYRU4p
+IFsyMDEyLTA4LTMxIDIxOjMyOjM2XSAgIGdmbjogMDAwMDRhY2YgIG1mbjogMDAwMDRhY2YN
+Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzZdICAgZ2ZuOiAwMDAwNGFkMCAgbWZuOiAw
+MDAwNGFkMA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozNl0gICBnZm46IDAwMDA0YWQx
+ICBtZm46IDAwMDA0YWQxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM2XSAgIGdmbjog
+MDAwMDRhZDIgIG1mbjogMDAwMDRhZDINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzZd
+ICAgZ2ZuOiAwMDAwNGFkMyAgbWZuOiAwMDAwNGFkMw0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
+MTozMjozNl0gICBnZm46IDAwMDA0YWQ0ICBtZm46IDAwMDA0YWQ0DQoNCihYRU4pIFsyMDEy
+LTA4LTMxIDIxOjMyOjM2XSAgIGdmbjogMDAwMDRhZDUgIG1mbjogMDAwMDRhZDUNCg0KKFhF
+TikgWzIwMTItMDgtMzEgMjE6MzI6MzZdICAgZ2ZuOiAwMDAwNGFkNiAgbWZuOiAwMDAwNGFk
+Ng0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozNl0gICBnZm46IDAwMDA0YWQ3ICBtZm46
+IDAwMDA0YWQ3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM2XSAgIGdmbjogMDAwMDRh
+ZDggIG1mbjogMDAwMDRhZDgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzZdICAgZ2Zu
+OiAwMDAwNGFkOSAgbWZuOiAwMDAwNGFkOQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoz
+Nl0gICBnZm46IDAwMDA0YWRhICBtZm46IDAwMDA0YWRhDQoNCihYRU4pIFsyMDEyLTA4LTMx
+IDIxOjMyOjM2XSAgIGdmbjogMDAwMDRhZGIgIG1mbjogMDAwMDRhZGINCg0KKFhFTikgWzIw
+MTItMDgtMzEgMjE6MzI6MzZdICAgZ2ZuOiAwMDAwNGFkYyAgbWZuOiAwMDAwNGFkYw0KDQoo
+WEVOKSBbMjAxMi0wOC0zMSAyMTozMjozNl0gICBnZm46IDAwMDA0YWRkICBtZm46IDAwMDA0
+YWRkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM2XSAgIGdmbjogMDAwMDRhZGUgIG1m
+bjogMDAwMDRhZGUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzZdICAgZ2ZuOiAwMDAw
+NGFkZiAgbWZuOiAwMDAwNGFkZg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozNl0gICBn
+Zm46IDAwMDA0YWUwICBtZm46IDAwMDA0YWUwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMy
+OjM2XSAgIGdmbjogMDAwMDRhZTEgIG1mbjogMDAwMDRhZTENCg0KKFhFTikgWzIwMTItMDgt
+MzEgMjE6MzI6MzZdICAgZ2ZuOiAwMDAwNGFlMiAgbWZuOiAwMDAwNGFlMg0KDQooWEVOKSBb
+MjAxMi0wOC0zMSAyMTozMjozNl0gICBnZm46IDAwMDA0YWUzICBtZm46IDAwMDA0YWUzDQoN
+CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM2XSAgIGdmbjogMDAwMDRhZTQgIG1mbjogMDAw
+MDRhZTQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzZdICAgZ2ZuOiAwMDAwNGFlNSAg
+bWZuOiAwMDAwNGFlNQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozNl0gICBnZm46IDAw
+MDA0YWU2ICBtZm46IDAwMDA0YWU2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM2XSAg
+IGdmbjogMDAwMDRhZTcgIG1mbjogMDAwMDRhZTcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
+MzI6MzZdICAgZ2ZuOiAwMDAwNGFlOCAgbWZuOiAwMDAwNGFlOA0KDQooWEVOKSBbMjAxMi0w
+OC0zMSAyMTozMjozNl0gICBnZm46IDAwMDA0YWU5ICBtZm46IDAwMDA0YWU5DQoNCihYRU4p
+IFsyMDEyLTA4LTMxIDIxOjMyOjM2XSAgIGdmbjogMDAwMDRhZWEgIG1mbjogMDAwMDRhZWEN
+Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzZdICAgZ2ZuOiAwMDAwNGFlYiAgbWZuOiAw
+MDAwNGFlYg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozNl0gICBnZm46IDAwMDA0YWVj
+ICBtZm46IDAwMDA0YWVjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM2XSAgIGdmbjog
+MDAwMDRhZWQgIG1mbjogMDAwMDRhZWQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzZd
+ICAgZ2ZuOiAwMDAwNGFlZSAgbWZuOiAwMDAwNGFlZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
+MTozMjozNl0gICBnZm46IDAwMDA0YWVmICBtZm46IDAwMDA0YWVmDQoNCihYRU4pIFsyMDEy
+LTA4LTMxIDIxOjMyOjM2XSAgIGdmbjogMDAwMDRhZjAgIG1mbjogMDAwMDRhZjANCg0KKFhF
+TikgWzIwMTItMDgtMzEgMjE6MzI6MzddICAgZ2ZuOiAwMDAwNGFmMSAgbWZuOiAwMDAwNGFm
+MQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozN10gICBnZm46IDAwMDA0YWYyICBtZm46
+IDAwMDA0YWYyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM3XSAgIGdmbjogMDAwMDRh
+ZjMgIG1mbjogMDAwMDRhZjMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzddICAgZ2Zu
+OiAwMDAwNGFmNCAgbWZuOiAwMDAwNGFmNA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoz
+N10gICBnZm46IDAwMDA0YWY1ICBtZm46IDAwMDA0YWY1DQoNCihYRU4pIFsyMDEyLTA4LTMx
+IDIxOjMyOjM3XSAgIGdmbjogMDAwMDRhZjYgIG1mbjogMDAwMDRhZjYNCg0KKFhFTikgWzIw
+MTItMDgtMzEgMjE6MzI6MzddICAgZ2ZuOiAwMDAwNGFmNyAgbWZuOiAwMDAwNGFmNw0KDQoo
+WEVOKSBbMjAxMi0wOC0zMSAyMTozMjozN10gICBnZm46IDAwMDA0YWY4ICBtZm46IDAwMDA0
+YWY4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM3XSAgIGdmbjogMDAwMDRhZjkgIG1m
+bjogMDAwMDRhZjkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzddICAgZ2ZuOiAwMDAw
+NGFmYSAgbWZuOiAwMDAwNGFmYQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozN10gICBn
+Zm46IDAwMDA0YWZiICBtZm46IDAwMDA0YWZiDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMy
+OjM3XSAgIGdmbjogMDAwMDRhZmMgIG1mbjogMDAwMDRhZmMNCg0KKFhFTikgWzIwMTItMDgt
+MzEgMjE6MzI6MzddICAgZ2ZuOiAwMDAwNGFmZCAgbWZuOiAwMDAwNGFmZA0KDQooWEVOKSBb
+MjAxMi0wOC0zMSAyMTozMjozN10gICBnZm46IDAwMDA0YWZlICBtZm46IDAwMDA0YWZlDQoN
+CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM3XSAgIGdmbjogMDAwMDRhZmYgIG1mbjogMDAw
+MDRhZmYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzddICAgZ2ZuOiAwMDAwNGIwMCAg
+bWZuOiAwMDAwNGIwMA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozN10gICBnZm46IDAw
+MDA0YjAxICBtZm46IDAwMDA0YjAxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM3XSAg
+IGdmbjogMDAwMDRiMDIgIG1mbjogMDAwMDRiMDINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
+MzI6MzddICAgZ2ZuOiAwMDAwNGIwMyAgbWZuOiAwMDAwNGIwMw0KDQooWEVOKSBbMjAxMi0w
+OC0zMSAyMTozMjozN10gICBnZm46IDAwMDA0YjA0ICBtZm46IDAwMDA0YjA0DQoNCihYRU4p
+IFsyMDEyLTA4LTMxIDIxOjMyOjM3XSAgIGdmbjogMDAwMDRiMDUgIG1mbjogMDAwMDRiMDUN
+Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzddICAgZ2ZuOiAwMDAwNGIwNiAgbWZuOiAw
+MDAwNGIwNg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozN10gICBnZm46IDAwMDA0YjA3
+ICBtZm46IDAwMDA0YjA3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM3XSAgIGdmbjog
+MDAwMDRiMDggIG1mbjogMDAwMDRiMDgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6Mzdd
+ICAgZ2ZuOiAwMDAwNGIwOSAgbWZuOiAwMDAwNGIwOQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
+MTozMjozN10gICBnZm46IDAwMDA0YjBhICBtZm46IDAwMDA0YjBhDQoNCihYRU4pIFsyMDEy
+LTA4LTMxIDIxOjMyOjM3XSAgIGdmbjogMDAwMDRiMGIgIG1mbjogMDAwMDRiMGINCg0KKFhF
+TikgWzIwMTItMDgtMzEgMjE6MzI6MzddICAgZ2ZuOiAwMDAwNGIwYyAgbWZuOiAwMDAwNGIw
+Yw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozN10gICBnZm46IDAwMDA0YjBkICBtZm46
+IDAwMDA0YjBkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM3XSAgIGdmbjogMDAwMDRi
+MGUgIG1mbjogMDAwMDRiMGUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzddICAgZ2Zu
+OiAwMDAwNGIwZiAgbWZuOiAwMDAwNGIwZg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoz
+N10gICBnZm46IDAwMDA0YjEwICBtZm46IDAwMDA0YjEwDQoNCihYRU4pIFsyMDEyLTA4LTMx
+IDIxOjMyOjM3XSAgIGdmbjogMDAwMDRiMTEgIG1mbjogMDAwMDRiMTENCg0KKFhFTikgWzIw
+MTItMDgtMzEgMjE6MzI6MzddICAgZ2ZuOiAwMDAwNGIxMiAgbWZuOiAwMDAwNGIxMg0KDQoo
+WEVOKSBbMjAxMi0wOC0zMSAyMTozMjozN10gICBnZm46IDAwMDA0YjEzICBtZm46IDAwMDA0
+YjEzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM3XSAgIGdmbjogMDAwMDRiMTQgIG1m
+bjogMDAwMDRiMTQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzddICAgZ2ZuOiAwMDAw
+NGIxNSAgbWZuOiAwMDAwNGIxNQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozN10gICBn
+Zm46IDAwMDA0YjE2ICBtZm46IDAwMDA0YjE2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMy
+OjM3XSAgIGdmbjogMDAwMDRiMTcgIG1mbjogMDAwMDRiMTcNCg0KKFhFTikgWzIwMTItMDgt
+MzEgMjE6MzI6MzddICAgZ2ZuOiAwMDAwNGIxOCAgbWZuOiAwMDAwNGIxOA0KDQooWEVOKSBb
+MjAxMi0wOC0zMSAyMTozMjozN10gICBnZm46IDAwMDA0YjE5ICBtZm46IDAwMDA0YjE5DQoN
+CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM3XSAgIGdmbjogMDAwMDRiMWEgIG1mbjogMDAw
+MDRiMWENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzddICAgZ2ZuOiAwMDAwNGIxYiAg
+bWZuOiAwMDAwNGIxYg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozN10gICBnZm46IDAw
+MDA0YjFjICBtZm46IDAwMDA0YjFjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM3XSAg
+IGdmbjogMDAwMDRiMWQgIG1mbjogMDAwMDRiMWQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
+MzI6MzddICAgZ2ZuOiAwMDAwNGIxZSAgbWZuOiAwMDAwNGIxZQ0KDQooWEVOKSBbMjAxMi0w
+OC0zMSAyMTozMjozN10gICBnZm46IDAwMDA0YjFmICBtZm46IDAwMDA0YjFmDQoNCihYRU4p
+IFsyMDEyLTA4LTMxIDIxOjMyOjM3XSAgIGdmbjogMDAwMDRiMjAgIG1mbjogMDAwMDRiMjAN
+Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzddICAgZ2ZuOiAwMDAwNGIyMSAgbWZuOiAw
+MDAwNGIyMQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozN10gICBnZm46IDAwMDA0YjIy
+ICBtZm46IDAwMDA0YjIyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM3XSAgIGdmbjog
+MDAwMDRiMjMgIG1mbjogMDAwMDRiMjMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6Mzdd
+ICAgZ2ZuOiAwMDAwNGIyNCAgbWZuOiAwMDAwNGIyNA0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
+MTozMjozN10gICBnZm46IDAwMDA0YjI1ICBtZm46IDAwMDA0YjI1DQoNCihYRU4pIFsyMDEy
+LTA4LTMxIDIxOjMyOjM3XSAgIGdmbjogMDAwMDRiMjYgIG1mbjogMDAwMDRiMjYNCg0KKFhF
+TikgWzIwMTItMDgtMzEgMjE6MzI6MzddICAgZ2ZuOiAwMDAwNGIyNyAgbWZuOiAwMDAwNGIy
+Nw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozN10gICBnZm46IDAwMDA0YjI4ICBtZm46
+IDAwMDA0YjI4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM3XSAgIGdmbjogMDAwMDRi
+MjkgIG1mbjogMDAwMDRiMjkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzddICAgZ2Zu
+OiAwMDAwNGIyYSAgbWZuOiAwMDAwNGIyYQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoz
+N10gICBnZm46IDAwMDA0YjJiICBtZm46IDAwMDA0YjJiDQoNCihYRU4pIFsyMDEyLTA4LTMx
+IDIxOjMyOjM3XSAgIGdmbjogMDAwMDRiMmMgIG1mbjogMDAwMDRiMmMNCg0KKFhFTikgWzIw
+MTItMDgtMzEgMjE6MzI6MzddICAgZ2ZuOiAwMDAwNGIyZCAgbWZuOiAwMDAwNGIyZA0KDQoo
+WEVOKSBbMjAxMi0wOC0zMSAyMTozMjozN10gICBnZm46IDAwMDA0YjJlICBtZm46IDAwMDA0
+YjJlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM3XSAgIGdmbjogMDAwMDRiMmYgIG1m
+bjogMDAwMDRiMmYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzddICAgZ2ZuOiAwMDAw
+NGIzMCAgbWZuOiAwMDAwNGIzMA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozN10gICBn
+Zm46IDAwMDA0YjMxICBtZm46IDAwMDA0YjMxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMy
+OjM4XSAgIGdmbjogMDAwMDRiMzIgIG1mbjogMDAwMDRiMzINCg0KKFhFTikgWzIwMTItMDgt
+MzEgMjE6MzI6MzhdICAgZ2ZuOiAwMDAwNGIzMyAgbWZuOiAwMDAwNGIzMw0KDQooWEVOKSBb
+MjAxMi0wOC0zMSAyMTozMjozOF0gICBnZm46IDAwMDA0YjM0ICBtZm46IDAwMDA0YjM0DQoN
+CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM4XSAgIGdmbjogMDAwMDRiMzUgIG1mbjogMDAw
+MDRiMzUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzhdICAgZ2ZuOiAwMDAwNGIzNiAg
+bWZuOiAwMDAwNGIzNg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozOF0gICBnZm46IDAw
+MDA0YjM3ICBtZm46IDAwMDA0YjM3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM4XSAg
+IGdmbjogMDAwMDRiMzggIG1mbjogMDAwMDRiMzgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
+MzI6MzhdICAgZ2ZuOiAwMDAwNGIzOSAgbWZuOiAwMDAwNGIzOQ0KDQooWEVOKSBbMjAxMi0w
+OC0zMSAyMTozMjozOF0gICBnZm46IDAwMDA0YjNhICBtZm46IDAwMDA0YjNhDQoNCihYRU4p
+IFsyMDEyLTA4LTMxIDIxOjMyOjM4XSAgIGdmbjogMDAwMDRiM2IgIG1mbjogMDAwMDRiM2IN
+Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzhdICAgZ2ZuOiAwMDAwNGIzYyAgbWZuOiAw
+MDAwNGIzYw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozOF0gICBnZm46IDAwMDA0YjNk
+ICBtZm46IDAwMDA0YjNkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM4XSAgIGdmbjog
+MDAwMDRiM2UgIG1mbjogMDAwMDRiM2UNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6Mzhd
+ICAgZ2ZuOiAwMDAwNGIzZiAgbWZuOiAwMDAwNGIzZg0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
+MTozMjozOF0gICBnZm46IDAwMDA0YjQwICBtZm46IDAwMDA0YjQwDQoNCihYRU4pIFsyMDEy
+LTA4LTMxIDIxOjMyOjM4XSAgIGdmbjogMDAwMDRiNDEgIG1mbjogMDAwMDRiNDENCg0KKFhF
+TikgWzIwMTItMDgtMzEgMjE6MzI6MzhdICAgZ2ZuOiAwMDAwNGI0MiAgbWZuOiAwMDAwNGI0
+Mg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozOF0gICBnZm46IDAwMDA0YjQzICBtZm46
+IDAwMDA0YjQzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM4XSAgIGdmbjogMDAwMDRi
+NDQgIG1mbjogMDAwMDRiNDQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzhdICAgZ2Zu
+OiAwMDAwNGI0NSAgbWZuOiAwMDAwNGI0NQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoz
+OF0gICBnZm46IDAwMDA0YjQ2ICBtZm46IDAwMDA0YjQ2DQoNCihYRU4pIFsyMDEyLTA4LTMx
+IDIxOjMyOjM4XSAgIGdmbjogMDAwMDRiNDcgIG1mbjogMDAwMDRiNDcNCg0KKFhFTikgWzIw
+MTItMDgtMzEgMjE6MzI6MzhdICAgZ2ZuOiAwMDAwNGI0OCAgbWZuOiAwMDAwNGI0OA0KDQoo
+WEVOKSBbMjAxMi0wOC0zMSAyMTozMjozOF0gICBnZm46IDAwMDA0YjQ5ICBtZm46IDAwMDA0
+YjQ5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM4XSAgIGdmbjogMDAwMDRiNGEgIG1m
+bjogMDAwMDRiNGENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzhdICAgZ2ZuOiAwMDAw
+NGI0YiAgbWZuOiAwMDAwNGI0Yg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozOF0gICBn
+Zm46IDAwMDA0YjRjICBtZm46IDAwMDA0YjRjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMy
+OjM4XSAgIGdmbjogMDAwMDRiNGQgIG1mbjogMDAwMDRiNGQNCg0KKFhFTikgWzIwMTItMDgt
+MzEgMjE6MzI6MzhdICAgZ2ZuOiAwMDAwNGI0ZSAgbWZuOiAwMDAwNGI0ZQ0KDQooWEVOKSBb
+MjAxMi0wOC0zMSAyMTozMjozOF0gICBnZm46IDAwMDA0YjRmICBtZm46IDAwMDA0YjRmDQoN
+CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM4XSAgIGdmbjogMDAwMDRiNTAgIG1mbjogMDAw
+MDRiNTANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzhdICAgZ2ZuOiAwMDAwNGI1MSAg
+bWZuOiAwMDAwNGI1MQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozOF0gICBnZm46IDAw
+MDA0YjUyICBtZm46IDAwMDA0YjUyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM4XSAg
+IGdmbjogMDAwMDRiNTMgIG1mbjogMDAwMDRiNTMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
+MzI6MzhdICAgZ2ZuOiAwMDAwNGI1NCAgbWZuOiAwMDAwNGI1NA0KDQooWEVOKSBbMjAxMi0w
+OC0zMSAyMTozMjozOF0gICBnZm46IDAwMDA0YjU1ICBtZm46IDAwMDA0YjU1DQoNCihYRU4p
+IFsyMDEyLTA4LTMxIDIxOjMyOjM4XSAgIGdmbjogMDAwMDRiNTYgIG1mbjogMDAwMDRiNTYN
+Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzhdICAgZ2ZuOiAwMDAwNGI1NyAgbWZuOiAw
+MDAwNGI1Nw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozOF0gICBnZm46IDAwMDA0YjU4
+ICBtZm46IDAwMDA0YjU4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM4XSAgIGdmbjog
+MDAwMDRiNTkgIG1mbjogMDAwMDRiNTkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6Mzhd
+ICAgZ2ZuOiAwMDAwNGI1YSAgbWZuOiAwMDAwNGI1YQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
+MTozMjozOF0gICBnZm46IDAwMDA0YjViICBtZm46IDAwMDA0YjViDQoNCihYRU4pIFsyMDEy
+LTA4LTMxIDIxOjMyOjM4XSAgIGdmbjogMDAwMDRiNWMgIG1mbjogMDAwMDRiNWMNCg0KKFhF
+TikgWzIwMTItMDgtMzEgMjE6MzI6MzhdICAgZ2ZuOiAwMDAwNGI1ZCAgbWZuOiAwMDAwNGI1
+ZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozOF0gICBnZm46IDAwMDA0YjVlICBtZm46
+IDAwMDA0YjVlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM4XSAgIGdmbjogMDAwMDRi
+NWYgIG1mbjogMDAwMDRiNWYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzhdICAgZ2Zu
+OiAwMDAwNGI2MCAgbWZuOiAwMDAwNGI2MA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoz
+OF0gICBnZm46IDAwMDA0YjYxICBtZm46IDAwMDA0YjYxDQoNCihYRU4pIFsyMDEyLTA4LTMx
+IDIxOjMyOjM4XSAgIGdmbjogMDAwMDRiNjIgIG1mbjogMDAwMDRiNjINCg0KKFhFTikgWzIw
+MTItMDgtMzEgMjE6MzI6MzhdICAgZ2ZuOiAwMDAwNGI2MyAgbWZuOiAwMDAwNGI2Mw0KDQoo
+WEVOKSBbMjAxMi0wOC0zMSAyMTozMjozOF0gICBnZm46IDAwMDA0YjY0ICBtZm46IDAwMDA0
+YjY0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM4XSAgIGdmbjogMDAwMDRiNjUgIG1m
+bjogMDAwMDRiNjUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzhdICAgZ2ZuOiAwMDAw
+NGI2NiAgbWZuOiAwMDAwNGI2Ng0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozOF0gICBn
+Zm46IDAwMDA0YjY3ICBtZm46IDAwMDA0YjY3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMy
+OjM4XSAgIGdmbjogMDAwMDRiNjggIG1mbjogMDAwMDRiNjgNCg0KKFhFTikgWzIwMTItMDgt
+MzEgMjE6MzI6MzhdICAgZ2ZuOiAwMDAwNGI2OSAgbWZuOiAwMDAwNGI2OQ0KDQooWEVOKSBb
+MjAxMi0wOC0zMSAyMTozMjozOF0gICBnZm46IDAwMDA0YjZhICBtZm46IDAwMDA0YjZhDQoN
+CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM4XSAgIGdmbjogMDAwMDRiNmIgIG1mbjogMDAw
+MDRiNmINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzhdICAgZ2ZuOiAwMDAwNGI2YyAg
+bWZuOiAwMDAwNGI2Yw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozOF0gICBnZm46IDAw
+MDA0YjZkICBtZm46IDAwMDA0YjZkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM4XSAg
+IGdmbjogMDAwMDRiNmUgIG1mbjogMDAwMDRiNmUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
+MzI6MzhdICAgZ2ZuOiAwMDAwNGI2ZiAgbWZuOiAwMDAwNGI2Zg0KDQooWEVOKSBbMjAxMi0w
+OC0zMSAyMTozMjozOF0gICBnZm46IDAwMDA0YjcwICBtZm46IDAwMDA0YjcwDQoNCihYRU4p
+IFsyMDEyLTA4LTMxIDIxOjMyOjM4XSAgIGdmbjogMDAwMDRiNzEgIG1mbjogMDAwMDRiNzEN
+Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzldICAgZ2ZuOiAwMDAwNGI3MiAgbWZuOiAw
+MDAwNGI3Mg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozOV0gICBnZm46IDAwMDA0Yjcz
+ICBtZm46IDAwMDA0YjczDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM5XSAgIGdmbjog
+MDAwMDRiNzQgIG1mbjogMDAwMDRiNzQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6Mzld
+ICAgZ2ZuOiAwMDAwNGI3NSAgbWZuOiAwMDAwNGI3NQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
+MTozMjozOV0gICBnZm46IDAwMDA0Yjc2ICBtZm46IDAwMDA0Yjc2DQoNCihYRU4pIFsyMDEy
+LTA4LTMxIDIxOjMyOjM5XSAgIGdmbjogMDAwMDRiNzcgIG1mbjogMDAwMDRiNzcNCg0KKFhF
+TikgWzIwMTItMDgtMzEgMjE6MzI6MzldICAgZ2ZuOiAwMDAwNGI3OCAgbWZuOiAwMDAwNGI3
+OA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozOV0gICBnZm46IDAwMDA0Yjc5ICBtZm46
+IDAwMDA0Yjc5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM5XSAgIGdmbjogMDAwMDRi
+N2EgIG1mbjogMDAwMDRiN2ENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzldICAgZ2Zu
+OiAwMDAwNGI3YiAgbWZuOiAwMDAwNGI3Yg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoz
+OV0gICBnZm46IDAwMDA0YjdjICBtZm46IDAwMDA0YjdjDQoNCihYRU4pIFsyMDEyLTA4LTMx
+IDIxOjMyOjM5XSAgIGdmbjogMDAwMDRiN2QgIG1mbjogMDAwMDRiN2QNCg0KKFhFTikgWzIw
+MTItMDgtMzEgMjE6MzI6MzldICAgZ2ZuOiAwMDAwNGI3ZSAgbWZuOiAwMDAwNGI3ZQ0KDQoo
+WEVOKSBbMjAxMi0wOC0zMSAyMTozMjozOV0gICBnZm46IDAwMDA0YjdmICBtZm46IDAwMDA0
+YjdmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM5XSAgIGdmbjogMDAwMDRiODAgIG1m
+bjogMDAwMDRiODANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzldICAgZ2ZuOiAwMDAw
+NGI4MSAgbWZuOiAwMDAwNGI4MQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozOV0gICBn
+Zm46IDAwMDA0YjgyICBtZm46IDAwMDA0YjgyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMy
+OjM5XSAgIGdmbjogMDAwMDRiODMgIG1mbjogMDAwMDRiODMNCg0KKFhFTikgWzIwMTItMDgt
+MzEgMjE6MzI6MzldICAgZ2ZuOiAwMDAwNGI4NCAgbWZuOiAwMDAwNGI4NA0KDQooWEVOKSBb
+MjAxMi0wOC0zMSAyMTozMjozOV0gICBnZm46IDAwMDA0Yjg1ICBtZm46IDAwMDA0Yjg1DQoN
+CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM5XSAgIGdmbjogMDAwMDRiODYgIG1mbjogMDAw
+MDRiODYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzldICAgZ2ZuOiAwMDAwNGI4NyAg
+bWZuOiAwMDAwNGI4Nw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozOV0gICBnZm46IDAw
+MDA0Yjg4ICBtZm46IDAwMDA0Yjg4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM5XSAg
+IGdmbjogMDAwMDRiODkgIG1mbjogMDAwMDRiODkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
+MzI6MzldICAgZ2ZuOiAwMDAwNGI4YSAgbWZuOiAwMDAwNGI4YQ0KDQooWEVOKSBbMjAxMi0w
+OC0zMSAyMTozMjozOV0gICBnZm46IDAwMDA0YjhiICBtZm46IDAwMDA0YjhiDQoNCihYRU4p
+IFsyMDEyLTA4LTMxIDIxOjMyOjM5XSAgIGdmbjogMDAwMDRiOGMgIG1mbjogMDAwMDRiOGMN
+Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzldICAgZ2ZuOiAwMDAwNGI4ZCAgbWZuOiAw
+MDAwNGI4ZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozOV0gICBnZm46IDAwMDA0Yjhl
+ICBtZm46IDAwMDA0YjhlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM5XSAgIGdmbjog
+MDAwMDRiOGYgIG1mbjogMDAwMDRiOGYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6Mzld
+ICAgZ2ZuOiAwMDAwNGI5MCAgbWZuOiAwMDAwNGI5MA0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
+MTozMjozOV0gICBnZm46IDAwMDA0YjkxICBtZm46IDAwMDA0YjkxDQoNCihYRU4pIFsyMDEy
+LTA4LTMxIDIxOjMyOjM5XSAgIGdmbjogMDAwMDRiOTIgIG1mbjogMDAwMDRiOTINCg0KKFhF
+TikgWzIwMTItMDgtMzEgMjE6MzI6MzldICAgZ2ZuOiAwMDAwNGI5MyAgbWZuOiAwMDAwNGI5
+Mw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozOV0gICBnZm46IDAwMDA0Yjk0ICBtZm46
+IDAwMDA0Yjk0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM5XSAgIGdmbjogMDAwMDRi
+OTUgIG1mbjogMDAwMDRiOTUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzldICAgZ2Zu
+OiAwMDAwNGI5NiAgbWZuOiAwMDAwNGI5Ng0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoz
+OV0gICBnZm46IDAwMDA0Yjk3ICBtZm46IDAwMDA0Yjk3DQoNCihYRU4pIFsyMDEyLTA4LTMx
+IDIxOjMyOjM5XSAgIGdmbjogMDAwMDRiOTggIG1mbjogMDAwMDRiOTgNCg0KKFhFTikgWzIw
+MTItMDgtMzEgMjE6MzI6MzldICAgZ2ZuOiAwMDAwNGI5OSAgbWZuOiAwMDAwNGI5OQ0KDQoo
+WEVOKSBbMjAxMi0wOC0zMSAyMTozMjozOV0gICBnZm46IDAwMDA0YjlhICBtZm46IDAwMDA0
+YjlhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM5XSAgIGdmbjogMDAwMDRiOWIgIG1m
+bjogMDAwMDRiOWINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzldICAgZ2ZuOiAwMDAw
+NGI5YyAgbWZuOiAwMDAwNGI5Yw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozOV0gICBn
+Zm46IDAwMDA0YjlkICBtZm46IDAwMDA0YjlkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMy
+OjM5XSAgIGdmbjogMDAwMDRiOWUgIG1mbjogMDAwMDRiOWUNCg0KKFhFTikgWzIwMTItMDgt
+MzEgMjE6MzI6MzldICAgZ2ZuOiAwMDAwNGI5ZiAgbWZuOiAwMDAwNGI5Zg0KDQooWEVOKSBb
+MjAxMi0wOC0zMSAyMTozMjozOV0gICBnZm46IDAwMDA0YmEwICBtZm46IDAwMDA0YmEwDQoN
+CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM5XSAgIGdmbjogMDAwMDRiYTEgIG1mbjogMDAw
+MDRiYTENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzldICAgZ2ZuOiAwMDAwNGJhMiAg
+bWZuOiAwMDAwNGJhMg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozOV0gICBnZm46IDAw
+MDA0YmEzICBtZm46IDAwMDA0YmEzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM5XSAg
+IGdmbjogMDAwMDRiYTQgIG1mbjogMDAwMDRiYTQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
+MzI6MzldICAgZ2ZuOiAwMDAwNGJhNSAgbWZuOiAwMDAwNGJhNQ0KDQooWEVOKSBbMjAxMi0w
+OC0zMSAyMTozMjozOV0gICBnZm46IDAwMDA0YmE2ICBtZm46IDAwMDA0YmE2DQoNCihYRU4p
+IFsyMDEyLTA4LTMxIDIxOjMyOjM5XSAgIGdmbjogMDAwMDRiYTcgIG1mbjogMDAwMDRiYTcN
+Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzldICAgZ2ZuOiAwMDAwNGJhOCAgbWZuOiAw
+MDAwNGJhOA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozOV0gICBnZm46IDAwMDA0YmE5
+ICBtZm46IDAwMDA0YmE5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM5XSAgIGdmbjog
+MDAwMDRiYWEgIG1mbjogMDAwMDRiYWENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6Mzld
+ICAgZ2ZuOiAwMDAwNGJhYiAgbWZuOiAwMDAwNGJhYg0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
+MTozMjozOV0gICBnZm46IDAwMDA0YmFjICBtZm46IDAwMDA0YmFjDQoNCihYRU4pIFsyMDEy
+LTA4LTMxIDIxOjMyOjM5XSAgIGdmbjogMDAwMDRiYWQgIG1mbjogMDAwMDRiYWQNCg0KKFhF
+TikgWzIwMTItMDgtMzEgMjE6MzI6MzldICAgZ2ZuOiAwMDAwNGJhZSAgbWZuOiAwMDAwNGJh
+ZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozOV0gICBnZm46IDAwMDA0YmFmICBtZm46
+IDAwMDA0YmFmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM5XSAgIGdmbjogMDAwMDRi
+YjAgIG1mbjogMDAwMDRiYjANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzldICAgZ2Zu
+OiAwMDAwNGJiMSAgbWZuOiAwMDAwNGJiMQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0
+MF0gICBnZm46IDAwMDA0YmIyICBtZm46IDAwMDA0YmIyDQoNCihYRU4pIFsyMDEyLTA4LTMx
+IDIxOjMyOjQwXSAgIGdmbjogMDAwMDRiYjMgIG1mbjogMDAwMDRiYjMNCg0KKFhFTikgWzIw
+MTItMDgtMzEgMjE6MzI6NDBdICAgZ2ZuOiAwMDAwNGJiNCAgbWZuOiAwMDAwNGJiNA0KDQoo
+WEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0MF0gICBnZm46IDAwMDA0YmI1ICBtZm46IDAwMDA0
+YmI1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQwXSAgIGdmbjogMDAwMDRiYjYgIG1m
+bjogMDAwMDRiYjYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDBdICAgZ2ZuOiAwMDAw
+NGJiNyAgbWZuOiAwMDAwNGJiNw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0MF0gICBn
+Zm46IDAwMDA0YmI4ICBtZm46IDAwMDA0YmI4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMy
+OjQwXSAgIGdmbjogMDAwMDRiYjkgIG1mbjogMDAwMDRiYjkNCg0KKFhFTikgWzIwMTItMDgt
+MzEgMjE6MzI6NDBdICAgZ2ZuOiAwMDAwNGJiYSAgbWZuOiAwMDAwNGJiYQ0KDQooWEVOKSBb
+MjAxMi0wOC0zMSAyMTozMjo0MF0gICBnZm46IDAwMDA0YmJiICBtZm46IDAwMDA0YmJiDQoN
+CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQwXSAgIGdmbjogMDAwMDRiYmMgIG1mbjogMDAw
+MDRiYmMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDBdICAgZ2ZuOiAwMDAwNGJiZCAg
+bWZuOiAwMDAwNGJiZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0MF0gICBnZm46IDAw
+MDA0YmJlICBtZm46IDAwMDA0YmJlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQwXSAg
+IGdmbjogMDAwMDRiYmYgIG1mbjogMDAwMDRiYmYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
+MzI6NDBdICAgZ2ZuOiAwMDAwNGJjMCAgbWZuOiAwMDAwNGJjMA0KDQooWEVOKSBbMjAxMi0w
+OC0zMSAyMTozMjo0MF0gICBnZm46IDAwMDA0YmMxICBtZm46IDAwMDA0YmMxDQoNCihYRU4p
+IFsyMDEyLTA4LTMxIDIxOjMyOjQwXSAgIGdmbjogMDAwMDRiYzIgIG1mbjogMDAwMDRiYzIN
+Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDBdICAgZ2ZuOiAwMDAwNGJjMyAgbWZuOiAw
+MDAwNGJjMw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0MF0gICBnZm46IDAwMDA0YmM0
+ICBtZm46IDAwMDA0YmM0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQwXSAgIGdmbjog
+MDAwMDRiYzUgIG1mbjogMDAwMDRiYzUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDBd
+ICAgZ2ZuOiAwMDAwNGJjNiAgbWZuOiAwMDAwNGJjNg0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
+MTozMjo0MF0gICBnZm46IDAwMDA0YmM3ICBtZm46IDAwMDA0YmM3DQoNCihYRU4pIFsyMDEy
+LTA4LTMxIDIxOjMyOjQwXSAgIGdmbjogMDAwMDRiYzggIG1mbjogMDAwMDRiYzgNCg0KKFhF
+TikgWzIwMTItMDgtMzEgMjE6MzI6NDBdICAgZ2ZuOiAwMDAwNGJjOSAgbWZuOiAwMDAwNGJj
+OQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0MF0gICBnZm46IDAwMDA0YmNhICBtZm46
+IDAwMDA0YmNhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQwXSAgIGdmbjogMDAwMDRi
+Y2IgIG1mbjogMDAwMDRiY2INCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDBdICAgZ2Zu
+OiAwMDAwNGJjYyAgbWZuOiAwMDAwNGJjYw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0
+MF0gICBnZm46IDAwMDA0YmNkICBtZm46IDAwMDA0YmNkDQoNCihYRU4pIFsyMDEyLTA4LTMx
+IDIxOjMyOjQwXSAgIGdmbjogMDAwMDRiY2UgIG1mbjogMDAwMDRiY2UNCg0KKFhFTikgWzIw
+MTItMDgtMzEgMjE6MzI6NDBdICAgZ2ZuOiAwMDAwNGJjZiAgbWZuOiAwMDAwNGJjZg0KDQoo
+WEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0MF0gICBnZm46IDAwMDA0YmQwICBtZm46IDAwMDA0
+YmQwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQwXSAgIGdmbjogMDAwMDRiZDEgIG1m
+bjogMDAwMDRiZDENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDBdICAgZ2ZuOiAwMDAw
+NGJkMiAgbWZuOiAwMDAwNGJkMg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0MF0gICBn
+Zm46IDAwMDA0YmQzICBtZm46IDAwMDA0YmQzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMy
+OjQwXSAgIGdmbjogMDAwMDRiZDQgIG1mbjogMDAwMDRiZDQNCg0KKFhFTikgWzIwMTItMDgt
+MzEgMjE6MzI6NDBdICAgZ2ZuOiAwMDAwNGJkNSAgbWZuOiAwMDAwNGJkNQ0KDQooWEVOKSBb
+MjAxMi0wOC0zMSAyMTozMjo0MF0gICBnZm46IDAwMDA0YmQ2ICBtZm46IDAwMDA0YmQ2DQoN
+CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQwXSAgIGdmbjogMDAwMDRiZDcgIG1mbjogMDAw
+MDRiZDcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDBdICAgZ2ZuOiAwMDAwNGJkOCAg
+bWZuOiAwMDAwNGJkOA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0MF0gICBnZm46IDAw
+MDA0YmQ5ICBtZm46IDAwMDA0YmQ5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQwXSAg
+IGdmbjogMDAwMDRiZGEgIG1mbjogMDAwMDRiZGENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
+MzI6NDBdICAgZ2ZuOiAwMDAwNGJkYiAgbWZuOiAwMDAwNGJkYg0KDQooWEVOKSBbMjAxMi0w
+OC0zMSAyMTozMjo0MF0gICBnZm46IDAwMDA0YmRjICBtZm46IDAwMDA0YmRjDQoNCihYRU4p
+IFsyMDEyLTA4LTMxIDIxOjMyOjQwXSAgIGdmbjogMDAwMDRiZGQgIG1mbjogMDAwMDRiZGQN
+Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDBdICAgZ2ZuOiAwMDAwNGJkZSAgbWZuOiAw
+MDAwNGJkZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0MF0gICBnZm46IDAwMDA0YmRm
+ICBtZm46IDAwMDA0YmRmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQwXSAgIGdmbjog
+MDAwMDRiZTAgIG1mbjogMDAwMDRiZTANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDBd
+ICAgZ2ZuOiAwMDAwNGJlMSAgbWZuOiAwMDAwNGJlMQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
+MTozMjo0MF0gICBnZm46IDAwMDA0YmUyICBtZm46IDAwMDA0YmUyDQoNCihYRU4pIFsyMDEy
+LTA4LTMxIDIxOjMyOjQwXSAgIGdmbjogMDAwMDRiZTMgIG1mbjogMDAwMDRiZTMNCg0KKFhF
+TikgWzIwMTItMDgtMzEgMjE6MzI6NDBdICAgZ2ZuOiAwMDAwNGJlNCAgbWZuOiAwMDAwNGJl
+NA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0MF0gICBnZm46IDAwMDA0YmU1ICBtZm46
+IDAwMDA0YmU1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQwXSAgIGdmbjogMDAwMDRi
+ZTYgIG1mbjogMDAwMDRiZTYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDBdICAgZ2Zu
+OiAwMDAwNGJlNyAgbWZuOiAwMDAwNGJlNw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0
+MF0gICBnZm46IDAwMDA0YmU4ICBtZm46IDAwMDA0YmU4DQoNCihYRU4pIFsyMDEyLTA4LTMx
+IDIxOjMyOjQwXSAgIGdmbjogMDAwMDRiZTkgIG1mbjogMDAwMDRiZTkNCg0KKFhFTikgWzIw
+MTItMDgtMzEgMjE6MzI6NDBdICAgZ2ZuOiAwMDAwNGJlYSAgbWZuOiAwMDAwNGJlYQ0KDQoo
+WEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0MF0gICBnZm46IDAwMDA0YmViICBtZm46IDAwMDA0
+YmViDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQwXSAgIGdmbjogMDAwMDRiZWMgIG1m
+bjogMDAwMDRiZWMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDBdICAgZ2ZuOiAwMDAw
+NGJlZCAgbWZuOiAwMDAwNGJlZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0MF0gICBn
+Zm46IDAwMDA0YmVlICBtZm46IDAwMDA0YmVlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMy
+OjQwXSAgIGdmbjogMDAwMDRiZWYgIG1mbjogMDAwMDRiZWYNCg0KKFhFTikgWzIwMTItMDgt
+MzEgMjE6MzI6NDBdICAgZ2ZuOiAwMDAwNGJmMCAgbWZuOiAwMDAwNGJmMA0KDQooWEVOKSBb
+MjAxMi0wOC0zMSAyMTozMjo0MF0gICBnZm46IDAwMDA0YmYxICBtZm46IDAwMDA0YmYxDQoN
+CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQxXSAgIGdmbjogMDAwMDRiZjIgIG1mbjogMDAw
+MDRiZjINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDFdICAgZ2ZuOiAwMDAwNGJmMyAg
+bWZuOiAwMDAwNGJmMw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0MV0gICBnZm46IDAw
+MDA0YmY0ICBtZm46IDAwMDA0YmY0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQxXSAg
+IGdmbjogMDAwMDRiZjUgIG1mbjogMDAwMDRiZjUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
+MzI6NDFdICAgZ2ZuOiAwMDAwNGJmNiAgbWZuOiAwMDAwNGJmNg0KDQooWEVOKSBbMjAxMi0w
+OC0zMSAyMTozMjo0MV0gICBnZm46IDAwMDA0YmY3ICBtZm46IDAwMDA0YmY3DQoNCihYRU4p
+IFsyMDEyLTA4LTMxIDIxOjMyOjQxXSAgIGdmbjogMDAwMDRiZjggIG1mbjogMDAwMDRiZjgN
+Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDFdICAgZ2ZuOiAwMDAwNGJmOSAgbWZuOiAw
+MDAwNGJmOQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0MV0gICBnZm46IDAwMDA0YmZh
+ICBtZm46IDAwMDA0YmZhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQxXSAgIGdmbjog
+MDAwMDRiZmIgIG1mbjogMDAwMDRiZmINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDFd
+ICAgZ2ZuOiAwMDAwNGJmYyAgbWZuOiAwMDAwNGJmYw0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
+MTozMjo0MV0gICBnZm46IDAwMDA0YmZkICBtZm46IDAwMDA0YmZkDQoNCihYRU4pIFsyMDEy
+LTA4LTMxIDIxOjMyOjQxXSAgIGdmbjogMDAwMDRiZmUgIG1mbjogMDAwMDRiZmUNCg0KKFhF
+TikgWzIwMTItMDgtMzEgMjE6MzI6NDFdICAgZ2ZuOiAwMDAwNGJmZiAgbWZuOiAwMDAwNGJm
+Zg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0MV0gICBnZm46IDAwMDA0YzAwICBtZm46
+IDAwMDA0YzAwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQxXSAgIGdmbjogMDAwMDRj
+MDEgIG1mbjogMDAwMDRjMDENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDFdICAgZ2Zu
+OiAwMDAwNGMwMiAgbWZuOiAwMDAwNGMwMg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0
+MV0gICBnZm46IDAwMDA0YzAzICBtZm46IDAwMDA0YzAzDQoNCihYRU4pIFsyMDEyLTA4LTMx
+IDIxOjMyOjQxXSAgIGdmbjogMDAwMDRjMDQgIG1mbjogMDAwMDRjMDQNCg0KKFhFTikgWzIw
+MTItMDgtMzEgMjE6MzI6NDFdICAgZ2ZuOiAwMDAwNGMwNSAgbWZuOiAwMDAwNGMwNQ0KDQoo
+WEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0MV0gICBnZm46IDAwMDA0YzA2ICBtZm46IDAwMDA0
+YzA2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQxXSAgIGdmbjogMDAwMDRjMDcgIG1m
+bjogMDAwMDRjMDcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDFdICAgZ2ZuOiAwMDAw
+NGMwOCAgbWZuOiAwMDAwNGMwOA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0MV0gICBn
+Zm46IDAwMDA0YzA5ICBtZm46IDAwMDA0YzA5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMy
+OjQxXSAgIGdmbjogMDAwMDRjMGEgIG1mbjogMDAwMDRjMGENCg0KKFhFTikgWzIwMTItMDgt
+MzEgMjE6MzI6NDFdICAgZ2ZuOiAwMDAwNGMwYiAgbWZuOiAwMDAwNGMwYg0KDQooWEVOKSBb
+MjAxMi0wOC0zMSAyMTozMjo0MV0gICBnZm46IDAwMDA0YzBjICBtZm46IDAwMDA0YzBjDQoN
+CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQxXSAgIGdmbjogMDAwMDRjMGQgIG1mbjogMDAw
+MDRjMGQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDFdICAgZ2ZuOiAwMDAwNGMwZSAg
+bWZuOiAwMDAwNGMwZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0MV0gICBnZm46IDAw
+MDA0YzBmICBtZm46IDAwMDA0YzBmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQxXSAg
+IGdmbjogMDAwMDRjMTAgIG1mbjogMDAwMDRjMTANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
+MzI6NDFdICAgZ2ZuOiAwMDAwNGMxMSAgbWZuOiAwMDAwNGMxMQ0KDQooWEVOKSBbMjAxMi0w
+OC0zMSAyMTozMjo0MV0gICBnZm46IDAwMDA0YzEyICBtZm46IDAwMDA0YzEyDQoNCihYRU4p
+IFsyMDEyLTA4LTMxIDIxOjMyOjQxXSAgIGdmbjogMDAwMDRjMTMgIG1mbjogMDAwMDRjMTMN
+Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDFdICAgZ2ZuOiAwMDAwNGMxNCAgbWZuOiAw
+MDAwNGMxNA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0MV0gICBnZm46IDAwMDA0YzE1
+ICBtZm46IDAwMDA0YzE1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQxXSAgIGdmbjog
+MDAwMDRjMTYgIG1mbjogMDAwMDRjMTYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDFd
+ICAgZ2ZuOiAwMDAwNGMxNyAgbWZuOiAwMDAwNGMxNw0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
+MTozMjo0MV0gICBnZm46IDAwMDA0YzE4ICBtZm46IDAwMDA0YzE4DQoNCihYRU4pIFsyMDEy
+LTA4LTMxIDIxOjMyOjQxXSAgIGdmbjogMDAwMDRjMTkgIG1mbjogMDAwMDRjMTkNCg0KKFhF
+TikgWzIwMTItMDgtMzEgMjE6MzI6NDFdICAgZ2ZuOiAwMDAwNGMxYSAgbWZuOiAwMDAwNGMx
+YQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0MV0gICBnZm46IDAwMDA0YzFiICBtZm46
+IDAwMDA0YzFiDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQxXSAgIGdmbjogMDAwMDRj
+MWMgIG1mbjogMDAwMDRjMWMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDFdICAgZ2Zu
+OiAwMDAwNGMxZCAgbWZuOiAwMDAwNGMxZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0
+MV0gICBnZm46IDAwMDA0YzFlICBtZm46IDAwMDA0YzFlDQoNCihYRU4pIFsyMDEyLTA4LTMx
+IDIxOjMyOjQxXSAgIGdmbjogMDAwMDRjMWYgIG1mbjogMDAwMDRjMWYNCg0KKFhFTikgWzIw
+MTItMDgtMzEgMjE6MzI6NDFdICAgZ2ZuOiAwMDAwNGMyMCAgbWZuOiAwMDAwNGMyMA0KDQoo
+WEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0MV0gICBnZm46IDAwMDA0YzIxICBtZm46IDAwMDA0
+YzIxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQxXSAgIGdmbjogMDAwMDRjMjIgIG1m
+bjogMDAwMDRjMjINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDFdICAgZ2ZuOiAwMDAw
+NGMyMyAgbWZuOiAwMDAwNGMyMw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0MV0gICBn
+Zm46IDAwMDA0YzI0ICBtZm46IDAwMDA0YzI0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMy
+OjQxXSAgIGdmbjogMDAwMDRjMjUgIG1mbjogMDAwMDRjMjUNCg0KKFhFTikgWzIwMTItMDgt
+MzEgMjE6MzI6NDFdICAgZ2ZuOiAwMDAwNGMyNiAgbWZuOiAwMDAwNGMyNg0KDQooWEVOKSBb
+MjAxMi0wOC0zMSAyMTozMjo0MV0gICBnZm46IDAwMDA0YzI3ICBtZm46IDAwMDA0YzI3DQoN
+CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQxXSAgIGdmbjogMDAwMDRjMjggIG1mbjogMDAw
+MDRjMjgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDFdICAgZ2ZuOiAwMDAwNGMyOSAg
+bWZuOiAwMDAwNGMyOQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0MV0gICBnZm46IDAw
+MDA0YzJhICBtZm46IDAwMDA0YzJhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQxXSAg
+IGdmbjogMDAwMDRjMmIgIG1mbjogMDAwMDRjMmINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
+MzI6NDFdICAgZ2ZuOiAwMDAwNGMyYyAgbWZuOiAwMDAwNGMyYw0KDQooWEVOKSBbMjAxMi0w
+OC0zMSAyMTozMjo0MV0gICBnZm46IDAwMDA0YzJkICBtZm46IDAwMDA0YzJkDQoNCihYRU4p
+IFsyMDEyLTA4LTMxIDIxOjMyOjQxXSAgIGdmbjogMDAwMDRjMmUgIG1mbjogMDAwMDRjMmUN
+Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDFdICAgZ2ZuOiAwMDAwNGMyZiAgbWZuOiAw
+MDAwNGMyZg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0MV0gICBnZm46IDAwMDA0YzMw
+ICBtZm46IDAwMDA0YzMwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQxXSAgIGdmbjog
+MDAwMDRjMzEgIG1mbjogMDAwMDRjMzENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDJd
+ICAgZ2ZuOiAwMDAwNGMzMiAgbWZuOiAwMDAwNGMzMg0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
+MTozMjo0Ml0gICBnZm46IDAwMDA0YzMzICBtZm46IDAwMDA0YzMzDQoNCihYRU4pIFsyMDEy
+LTA4LTMxIDIxOjMyOjQyXSAgIGdmbjogMDAwMDRjMzQgIG1mbjogMDAwMDRjMzQNCg0KKFhF
+TikgWzIwMTItMDgtMzEgMjE6MzI6NDJdICAgZ2ZuOiAwMDAwNGMzNSAgbWZuOiAwMDAwNGMz
+NQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0Ml0gICBnZm46IDAwMDA0YzM2ICBtZm46
+IDAwMDA0YzM2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQyXSAgIGdmbjogMDAwMDRj
+MzcgIG1mbjogMDAwMDRjMzcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDJdICAgZ2Zu
+OiAwMDAwNGMzOCAgbWZuOiAwMDAwNGMzOA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0
+Ml0gICBnZm46IDAwMDA0YzM5ICBtZm46IDAwMDA0YzM5DQoNCihYRU4pIFsyMDEyLTA4LTMx
+IDIxOjMyOjQyXSAgIGdmbjogMDAwMDRjM2EgIG1mbjogMDAwMDRjM2ENCg0KKFhFTikgWzIw
+MTItMDgtMzEgMjE6MzI6NDJdICAgZ2ZuOiAwMDAwNGMzYiAgbWZuOiAwMDAwNGMzYg0KDQoo
+WEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0Ml0gICBnZm46IDAwMDA0YzNjICBtZm46IDAwMDA0
+YzNjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQyXSAgIGdmbjogMDAwMDRjM2QgIG1m
+bjogMDAwMDRjM2QNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDJdICAgZ2ZuOiAwMDAw
+NGMzZSAgbWZuOiAwMDAwNGMzZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0Ml0gICBn
+Zm46IDAwMDA0YzNmICBtZm46IDAwMDA0YzNmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMy
+OjQyXSAgIGdmbjogMDAwMDRjNDAgIG1mbjogMDAwMDRjNDANCg0KKFhFTikgWzIwMTItMDgt
+MzEgMjE6MzI6NDJdICAgZ2ZuOiAwMDAwNGM0MSAgbWZuOiAwMDAwNGM0MQ0KDQooWEVOKSBb
+MjAxMi0wOC0zMSAyMTozMjo0Ml0gICBnZm46IDAwMDA0YzQyICBtZm46IDAwMDA0YzQyDQoN
+CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQyXSAgIGdmbjogMDAwMDRjNDMgIG1mbjogMDAw
+MDRjNDMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDJdICAgZ2ZuOiAwMDAwNGM0NCAg
+bWZuOiAwMDAwNGM0NA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0Ml0gICBnZm46IDAw
+MDA0YzQ1ICBtZm46IDAwMDA0YzQ1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQyXSAg
+IGdmbjogMDAwMDRjNDYgIG1mbjogMDAwMDRjNDYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
+MzI6NDJdICAgZ2ZuOiAwMDAwNGM0NyAgbWZuOiAwMDAwNGM0Nw0KDQooWEVOKSBbMjAxMi0w
+OC0zMSAyMTozMjo0Ml0gICBnZm46IDAwMDA0YzQ4ICBtZm46IDAwMDA0YzQ4DQoNCihYRU4p
+IFsyMDEyLTA4LTMxIDIxOjMyOjQyXSAgIGdmbjogMDAwMDRjNDkgIG1mbjogMDAwMDRjNDkN
+Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDJdICAgZ2ZuOiAwMDAwNGM0YSAgbWZuOiAw
+MDAwNGM0YQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0Ml0gICBnZm46IDAwMDA0YzRi
+ICBtZm46IDAwMDA0YzRiDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQyXSAgIGdmbjog
+MDAwMDRjNGMgIG1mbjogMDAwMDRjNGMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDJd
+ICAgZ2ZuOiAwMDAwNGM0ZCAgbWZuOiAwMDAwNGM0ZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
+MTozMjo0Ml0gICBnZm46IDAwMDA0YzRlICBtZm46IDAwMDA0YzRlDQoNCihYRU4pIFsyMDEy
+LTA4LTMxIDIxOjMyOjQyXSAgIGdmbjogMDAwMDRjNGYgIG1mbjogMDAwMDRjNGYNCg0KKFhF
+TikgWzIwMTItMDgtMzEgMjE6MzI6NDJdICAgZ2ZuOiAwMDAwNGM1MCAgbWZuOiAwMDAwNGM1
+MA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0Ml0gICBnZm46IDAwMDA0YzUxICBtZm46
+IDAwMDA0YzUxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQyXSAgIGdmbjogMDAwMDRj
+NTIgIG1mbjogMDAwMDRjNTINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDJdICAgZ2Zu
+OiAwMDAwNGM1MyAgbWZuOiAwMDAwNGM1Mw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0
+Ml0gICBnZm46IDAwMDA0YzU0ICBtZm46IDAwMDA0YzU0DQoNCihYRU4pIFsyMDEyLTA4LTMx
+IDIxOjMyOjQyXSAgIGdmbjogMDAwMDRjNTUgIG1mbjogMDAwMDRjNTUNCg0KKFhFTikgWzIw
+MTItMDgtMzEgMjE6MzI6NDJdICAgZ2ZuOiAwMDAwNGM1NiAgbWZuOiAwMDAwNGM1Ng0KDQoo
+WEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0Ml0gICBnZm46IDAwMDA0YzU3ICBtZm46IDAwMDA0
+YzU3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQyXSAgIGdmbjogMDAwMDRjNTggIG1m
+bjogMDAwMDRjNTgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDJdICAgZ2ZuOiAwMDAw
+NGM1OSAgbWZuOiAwMDAwNGM1OQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0Ml0gICBn
+Zm46IDAwMDA0YzVhICBtZm46IDAwMDA0YzVhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMy
+OjQyXSAgIGdmbjogMDAwMDRjNWIgIG1mbjogMDAwMDRjNWINCg0KKFhFTikgWzIwMTItMDgt
+MzEgMjE6MzI6NDJdICAgZ2ZuOiAwMDAwNGM1YyAgbWZuOiAwMDAwNGM1Yw0KDQooWEVOKSBb
+MjAxMi0wOC0zMSAyMTozMjo0Ml0gICBnZm46IDAwMDA0YzVkICBtZm46IDAwMDA0YzVkDQoN
+CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQyXSAgIGdmbjogMDAwMDRjNWUgIG1mbjogMDAw
+MDRjNWUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDJdICAgZ2ZuOiAwMDAwNGM1ZiAg
+bWZuOiAwMDAwNGM1Zg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0Ml0gICBnZm46IDAw
+MDA0YzYwICBtZm46IDAwMDA0YzYwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQyXSAg
+IGdmbjogMDAwMDRjNjEgIG1mbjogMDAwMDRjNjENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
+MzI6NDJdICAgZ2ZuOiAwMDAwNGM2MiAgbWZuOiAwMDAwNGM2Mg0KDQooWEVOKSBbMjAxMi0w
+OC0zMSAyMTozMjo0Ml0gICBnZm46IDAwMDA0YzYzICBtZm46IDAwMDA0YzYzDQoNCihYRU4p
+IFsyMDEyLTA4LTMxIDIxOjMyOjQyXSAgIGdmbjogMDAwMDRjNjQgIG1mbjogMDAwMDRjNjQN
+Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDJdICAgZ2ZuOiAwMDAwNGM2NSAgbWZuOiAw
+MDAwNGM2NQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0Ml0gICBnZm46IDAwMDA0YzY2
+ICBtZm46IDAwMDA0YzY2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQyXSAgIGdmbjog
+MDAwMDRjNjcgIG1mbjogMDAwMDRjNjcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDJd
+ICAgZ2ZuOiAwMDAwNGM2OCAgbWZuOiAwMDAwNGM2OA0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
+MTozMjo0Ml0gICBnZm46IDAwMDA0YzY5ICBtZm46IDAwMDA0YzY5DQoNCihYRU4pIFsyMDEy
+LTA4LTMxIDIxOjMyOjQyXSAgIGdmbjogMDAwMDRjNmEgIG1mbjogMDAwMDRjNmENCg0KKFhF
+TikgWzIwMTItMDgtMzEgMjE6MzI6NDJdICAgZ2ZuOiAwMDAwNGM2YiAgbWZuOiAwMDAwNGM2
+Yg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0Ml0gICBnZm46IDAwMDA0YzZjICBtZm46
+IDAwMDA0YzZjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQyXSAgIGdmbjogMDAwMDRj
+NmQgIG1mbjogMDAwMDRjNmQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDJdICAgZ2Zu
+OiAwMDAwNGM2ZSAgbWZuOiAwMDAwNGM2ZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0
+Ml0gICBnZm46IDAwMDA0YzZmICBtZm46IDAwMDA0YzZmDQoNCihYRU4pIFsyMDEyLTA4LTMx
+IDIxOjMyOjQyXSAgIGdmbjogMDAwMDRjNzAgIG1mbjogMDAwMDRjNzANCg0KKFhFTikgWzIw
+MTItMDgtMzEgMjE6MzI6NDJdICAgZ2ZuOiAwMDAwNGM3MSAgbWZuOiAwMDAwNGM3MQ0KDQoo
+WEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0M10gICBnZm46IDAwMDA0YzcyICBtZm46IDAwMDA0
+YzcyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQzXSAgIGdmbjogMDAwMDRjNzMgIG1m
+bjogMDAwMDRjNzMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDNdICAgZ2ZuOiAwMDAw
+NGM3NCAgbWZuOiAwMDAwNGM3NA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0M10gICBn
+Zm46IDAwMDA0Yzc1ICBtZm46IDAwMDA0Yzc1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMy
+OjQzXSAgIGdmbjogMDAwMDRjNzYgIG1mbjogMDAwMDRjNzYNCg0KKFhFTikgWzIwMTItMDgt
+MzEgMjE6MzI6NDNdICAgZ2ZuOiAwMDAwNGM3NyAgbWZuOiAwMDAwNGM3Nw0KDQooWEVOKSBb
+MjAxMi0wOC0zMSAyMTozMjo0M10gICBnZm46IDAwMDA0Yzc4ICBtZm46IDAwMDA0Yzc4DQoN
+CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQzXSAgIGdmbjogMDAwMDRjNzkgIG1mbjogMDAw
+MDRjNzkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDNdICAgZ2ZuOiAwMDAwNGM3YSAg
+bWZuOiAwMDAwNGM3YQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0M10gICBnZm46IDAw
+MDA0YzdiICBtZm46IDAwMDA0YzdiDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQzXSAg
+IGdmbjogMDAwMDRjN2MgIG1mbjogMDAwMDRjN2MNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
+MzI6NDNdICAgZ2ZuOiAwMDAwNGM3ZCAgbWZuOiAwMDAwNGM3ZA0KDQooWEVOKSBbMjAxMi0w
+OC0zMSAyMTozMjo0M10gICBnZm46IDAwMDA0YzdlICBtZm46IDAwMDA0YzdlDQoNCihYRU4p
+IFsyMDEyLTA4LTMxIDIxOjMyOjQzXSAgIGdmbjogMDAwMDRjN2YgIG1mbjogMDAwMDRjN2YN
+Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDNdICAgZ2ZuOiAwMDAwNGM4MCAgbWZuOiAw
+MDAwNGM4MA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0M10gICBnZm46IDAwMDA0Yzgx
+ICBtZm46IDAwMDA0YzgxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQzXSAgIGdmbjog
+MDAwMDRjODIgIG1mbjogMDAwMDRjODINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDNd
+ICAgZ2ZuOiAwMDAwNGM4MyAgbWZuOiAwMDAwNGM4Mw0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
+MTozMjo0M10gICBnZm46IDAwMDA0Yzg0ICBtZm46IDAwMDA0Yzg0DQoNCihYRU4pIFsyMDEy
+LTA4LTMxIDIxOjMyOjQzXSAgIGdmbjogMDAwMDRjODUgIG1mbjogMDAwMDRjODUNCg0KKFhF
+TikgWzIwMTItMDgtMzEgMjE6MzI6NDNdICAgZ2ZuOiAwMDAwNGM4NiAgbWZuOiAwMDAwNGM4
+Ng0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0M10gICBnZm46IDAwMDA0Yzg3ICBtZm46
+IDAwMDA0Yzg3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQzXSAgIGdmbjogMDAwMDRj
+ODggIG1mbjogMDAwMDRjODgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDNdICAgZ2Zu
+OiAwMDAwNGM4OSAgbWZuOiAwMDAwNGM4OQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0
+M10gICBnZm46IDAwMDA0YzhhICBtZm46IDAwMDA0YzhhDQoNCihYRU4pIFsyMDEyLTA4LTMx
+IDIxOjMyOjQzXSAgIGdmbjogMDAwMDRjOGIgIG1mbjogMDAwMDRjOGINCg0KKFhFTikgWzIw
+MTItMDgtMzEgMjE6MzI6NDNdICAgZ2ZuOiAwMDAwNGM4YyAgbWZuOiAwMDAwNGM4Yw0KDQoo
+WEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0M10gICBnZm46IDAwMDA0YzhkICBtZm46IDAwMDA0
+YzhkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQzXSAgIGdmbjogMDAwMDRjOGUgIG1m
+bjogMDAwMDRjOGUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDNdICAgZ2ZuOiAwMDAw
+NGM4ZiAgbWZuOiAwMDAwNGM4Zg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0M10gICBn
+Zm46IDAwMDA0YzkwICBtZm46IDAwMDA0YzkwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMy
+OjQzXSAgIGdmbjogMDAwMDRjOTEgIG1mbjogMDAwMDRjOTENCg0KKFhFTikgWzIwMTItMDgt
+MzEgMjE6MzI6NDNdICAgZ2ZuOiAwMDAwNGM5MiAgbWZuOiAwMDAwNGM5Mg0KDQooWEVOKSBb
+MjAxMi0wOC0zMSAyMTozMjo0M10gICBnZm46IDAwMDA0YzkzICBtZm46IDAwMDA0YzkzDQoN
+CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQzXSAgIGdmbjogMDAwMDRjOTQgIG1mbjogMDAw
+MDRjOTQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDNdICAgZ2ZuOiAwMDAwNGM5NSAg
+bWZuOiAwMDAwNGM5NQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0M10gICBnZm46IDAw
+MDA0Yzk2ICBtZm46IDAwMDA0Yzk2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQzXSAg
+IGdmbjogMDAwMDRjOTcgIG1mbjogMDAwMDRjOTcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
+MzI6NDNdICAgZ2ZuOiAwMDAwNGM5OCAgbWZuOiAwMDAwNGM5OA0KDQooWEVOKSBbMjAxMi0w
+OC0zMSAyMTozMjo0M10gICBnZm46IDAwMDA0Yzk5ICBtZm46IDAwMDA0Yzk5DQoNCihYRU4p
+IFsyMDEyLTA4LTMxIDIxOjMyOjQzXSAgIGdmbjogMDAwMDRjOWEgIG1mbjogMDAwMDRjOWEN
+Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDNdICAgZ2ZuOiAwMDAwNGM5YiAgbWZuOiAw
+MDAwNGM5Yg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0M10gICBnZm46IDAwMDA0Yzlj
+ICBtZm46IDAwMDA0YzljDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQzXSAgIGdmbjog
+MDAwMDRjOWQgIG1mbjogMDAwMDRjOWQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDNd
+ICAgZ2ZuOiAwMDAwNGM5ZSAgbWZuOiAwMDAwNGM5ZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
+MTozMjo0M10gICBnZm46IDAwMDA0YzlmICBtZm46IDAwMDA0YzlmDQoNCihYRU4pIFsyMDEy
+LTA4LTMxIDIxOjMyOjQzXSAgIGdmbjogMDAwMDRjYTAgIG1mbjogMDAwMDRjYTANCg0KKFhF
+TikgWzIwMTItMDgtMzEgMjE6MzI6NDNdICAgZ2ZuOiAwMDAwNGNhMSAgbWZuOiAwMDAwNGNh
+MQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0M10gICBnZm46IDAwMDA0Y2EyICBtZm46
+IDAwMDA0Y2EyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQzXSAgIGdmbjogMDAwMDRj
+YTMgIG1mbjogMDAwMDRjYTMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDNdICAgZ2Zu
+OiAwMDAwNGNhNCAgbWZuOiAwMDAwNGNhNA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0
+M10gICBnZm46IDAwMDA0Y2E1ICBtZm46IDAwMDA0Y2E1DQoNCihYRU4pIFsyMDEyLTA4LTMx
+IDIxOjMyOjQzXSAgIGdmbjogMDAwMDRjYTYgIG1mbjogMDAwMDRjYTYNCg0KKFhFTikgWzIw
+MTItMDgtMzEgMjE6MzI6NDNdICAgZ2ZuOiAwMDAwNGNhNyAgbWZuOiAwMDAwNGNhNw0KDQoo
+WEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0M10gICBnZm46IDAwMDA0Y2E4ICBtZm46IDAwMDA0
+Y2E4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQzXSAgIGdmbjogMDAwMDRjYTkgIG1m
+bjogMDAwMDRjYTkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDNdICAgZ2ZuOiAwMDAw
+NGNhYSAgbWZuOiAwMDAwNGNhYQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0M10gICBn
+Zm46IDAwMDA0Y2FiICBtZm46IDAwMDA0Y2FiDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMy
+OjQzXSAgIGdmbjogMDAwMDRjYWMgIG1mbjogMDAwMDRjYWMNCg0KKFhFTikgWzIwMTItMDgt
+MzEgMjE6MzI6NDNdICAgZ2ZuOiAwMDAwNGNhZCAgbWZuOiAwMDAwNGNhZA0KDQooWEVOKSBb
+MjAxMi0wOC0zMSAyMTozMjo0M10gICBnZm46IDAwMDA0Y2FlICBtZm46IDAwMDA0Y2FlDQoN
+CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQzXSAgIGdmbjogMDAwMDRjYWYgIG1mbjogMDAw
+MDRjYWYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDNdICAgZ2ZuOiAwMDAwNGNiMCAg
+bWZuOiAwMDAwNGNiMA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0M10gICBnZm46IDAw
+MDA0Y2IxICBtZm46IDAwMDA0Y2IxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ0XSAg
+IGdmbjogMDAwMDRjYjIgIG1mbjogMDAwMDRjYjINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
+MzI6NDRdICAgZ2ZuOiAwMDAwNGNiMyAgbWZuOiAwMDAwNGNiMw0KDQooWEVOKSBbMjAxMi0w
+OC0zMSAyMTozMjo0NF0gICBnZm46IDAwMDA0Y2I0ICBtZm46IDAwMDA0Y2I0DQoNCihYRU4p
+IFsyMDEyLTA4LTMxIDIxOjMyOjQ0XSAgIGdmbjogMDAwMDRjYjUgIG1mbjogMDAwMDRjYjUN
+Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDRdICAgZ2ZuOiAwMDAwNGNiNiAgbWZuOiAw
+MDAwNGNiNg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0NF0gICBnZm46IDAwMDA0Y2I3
+ICBtZm46IDAwMDA0Y2I3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ0XSAgIGdmbjog
+MDAwMDRjYjggIG1mbjogMDAwMDRjYjgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDRd
+ICAgZ2ZuOiAwMDAwNGNiOSAgbWZuOiAwMDAwNGNiOQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
+MTozMjo0NF0gICBnZm46IDAwMDA0Y2JhICBtZm46IDAwMDA0Y2JhDQoNCihYRU4pIFsyMDEy
+LTA4LTMxIDIxOjMyOjQ0XSAgIGdmbjogMDAwMDRjYmIgIG1mbjogMDAwMDRjYmINCg0KKFhF
+TikgWzIwMTItMDgtMzEgMjE6MzI6NDRdICAgZ2ZuOiAwMDAwNGNiYyAgbWZuOiAwMDAwNGNi
+Yw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0NF0gICBnZm46IDAwMDA0Y2JkICBtZm46
+IDAwMDA0Y2JkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ0XSAgIGdmbjogMDAwMDRj
+YmUgIG1mbjogMDAwMDRjYmUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDRdICAgZ2Zu
+OiAwMDAwNGNiZiAgbWZuOiAwMDAwNGNiZg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0
+NF0gICBnZm46IDAwMDA0Y2MwICBtZm46IDAwMDA0Y2MwDQoNCihYRU4pIFsyMDEyLTA4LTMx
+IDIxOjMyOjQ0XSAgIGdmbjogMDAwMDRjYzEgIG1mbjogMDAwMDRjYzENCg0KKFhFTikgWzIw
+MTItMDgtMzEgMjE6MzI6NDRdICAgZ2ZuOiAwMDAwNGNjMiAgbWZuOiAwMDAwNGNjMg0KDQoo
+WEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0NF0gICBnZm46IDAwMDA0Y2MzICBtZm46IDAwMDA0
+Y2MzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ0XSAgIGdmbjogMDAwMDRjYzQgIG1m
+bjogMDAwMDRjYzQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDRdICAgZ2ZuOiAwMDAw
+NGNjNSAgbWZuOiAwMDAwNGNjNQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0NF0gICBn
+Zm46IDAwMDA0Y2M2ICBtZm46IDAwMDA0Y2M2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMy
+OjQ0XSAgIGdmbjogMDAwMDRjYzcgIG1mbjogMDAwMDRjYzcNCg0KKFhFTikgWzIwMTItMDgt
+MzEgMjE6MzI6NDRdICAgZ2ZuOiAwMDAwNGNjOCAgbWZuOiAwMDAwNGNjOA0KDQooWEVOKSBb
+MjAxMi0wOC0zMSAyMTozMjo0NF0gICBnZm46IDAwMDA0Y2M5ICBtZm46IDAwMDA0Y2M5DQoN
+CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ0XSAgIGdmbjogMDAwMDRjY2EgIG1mbjogMDAw
+MDRjY2ENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDRdICAgZ2ZuOiAwMDAwNGNjYiAg
+bWZuOiAwMDAwNGNjYg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0NF0gICBnZm46IDAw
+MDA0Y2NjICBtZm46IDAwMDA0Y2NjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ0XSAg
+IGdmbjogMDAwMDRjY2QgIG1mbjogMDAwMDRjY2QNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
+MzI6NDRdICAgZ2ZuOiAwMDAwNGNjZSAgbWZuOiAwMDAwNGNjZQ0KDQooWEVOKSBbMjAxMi0w
+OC0zMSAyMTozMjo0NF0gICBnZm46IDAwMDA0Y2NmICBtZm46IDAwMDA0Y2NmDQoNCihYRU4p
+IFsyMDEyLTA4LTMxIDIxOjMyOjQ0XSAgIGdmbjogMDAwMDRjZDAgIG1mbjogMDAwMDRjZDAN
+Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDRdICAgZ2ZuOiAwMDAwNGNkMSAgbWZuOiAw
+MDAwNGNkMQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0NF0gICBnZm46IDAwMDA0Y2Qy
+ICBtZm46IDAwMDA0Y2QyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ0XSAgIGdmbjog
+MDAwMDRjZDMgIG1mbjogMDAwMDRjZDMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDRd
+ICAgZ2ZuOiAwMDAwNGNkNCAgbWZuOiAwMDAwNGNkNA0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
+MTozMjo0NF0gICBnZm46IDAwMDA0Y2Q1ICBtZm46IDAwMDA0Y2Q1DQoNCihYRU4pIFsyMDEy
+LTA4LTMxIDIxOjMyOjQ0XSAgIGdmbjogMDAwMDRjZDYgIG1mbjogMDAwMDRjZDYNCg0KKFhF
+TikgWzIwMTItMDgtMzEgMjE6MzI6NDRdICAgZ2ZuOiAwMDAwNGNkNyAgbWZuOiAwMDAwNGNk
+Nw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0NF0gICBnZm46IDAwMDA0Y2Q4ICBtZm46
+IDAwMDA0Y2Q4DQoNClsgIDQzMC41ODQ4NzFdIGEoWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0
+NF0gICBnZm46IDAwMDA0Y2Q5ICBtZm46IDAwMDA0Y2Q5DQoNCnRhMS4wMDogcWMgdGltZW91
+dCAoY21kIDB4ZWMpDQoNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDRdICAgZ2ZuOiAw
+MDAwNGNkYSAgbWZuOiAwMDAwNGNkYQ0KDQpbICA0MzAuNjQyNzEyXSBhKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzI6NDRdICAgZ2ZuOiAwMDAwNGNkYiAgbWZuOiAwMDAwNGNkYg0KDQp0YTEu
+MDA6IGZhaWxlZCB0KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDRdICAgZ2ZuOiAwMDAwNGNk
+YyAgbWZuOiAwMDAwNGNkYw0KDQpvIElERU5USUZZIChJL08gKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzI6NDRdICAgZ2ZuOiAwMDAwNGNkZCAgbWZuOiAwMDAwNGNkZA0KDQplcnJvciwgZXJy
+X21hc2s9KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDRdICAgZ2ZuOiAwMDAwNGNkZSAgbWZu
+OiAwMDAwNGNkZQ0KDQoweDQpDQoNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDRdICAg
+Z2ZuOiAwMDAwNGNkZiAgbWZuOiAwMDAwNGNkZg0KDQpbICA0MzAuNzM4MzA4XSBhKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzI6NDRdICAgZ2ZuOiAwMDAwNGNlMCAgbWZuOiAwMDAwNGNlMA0K
+DQp0YTEuMDA6IHJldmFsaWRhKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDRdICAgZ2ZuOiAw
+MDAwNGNlMSAgbWZuOiAwMDAwNGNlMQ0KDQp0aW9uIGZhaWxlZCAoZXJybm89LTUpDQoNCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDRdICAgZ2ZuOiAwMDAwNGNlMiAgbWZuOiAwMDAw
+NGNlMg0KDQpbICA0MzAuODAwNjc4XSBhKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDRdICAg
+Z2ZuOiAwMDAwNGNlMyAgbWZuOiAwMDAwNGNlMw0KDQp0YTE6IGxpbWl0aW5nIFNBKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzI6NDRdICAgZ2ZuOiAwMDAwNGNlNCAgbWZuOiAwMDAwNGNlNA0K
+DQpUQSBsaW5rIHNwZWVkIHRvKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDRdICAgZ2ZuOiAw
+MDAwNGNlNSAgbWZuOiAwMDAwNGNlNQ0KDQogMS41IEdicHMNCg0KDQooWEVOKSBbMjAxMi0w
+OC0zMSAyMTozMjo0NF0gICBnZm46IDAwMDA0Y2U2ICBtZm46IDAwMDA0Y2U2DQoNCihYRU4p
+IFsyMDEyLTA4LTMxIDIxOjMyOjQ0XSAgIGdmbjogMDAwMDRjZTcgIG1mbjogMDAwMDRjZTcN
+Cg0KWyAgNDMwLjg3OTcyMV0gYShYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ0XSAgIGdmbjog
+MDAwMDRjZTggIG1mbjogMDAwMDRjZTgNCg0KdGExOiBoYXJkIHJlc2V0dChYRU4pIFsyMDEy
+LTA4LTMxIDIxOjMyOjQ0XSAgIGdmbjogMDAwMDRjZTkgIG1mbjogMDAwMDRjZTkNCg0KaW5n
+IGxpbmsNCg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0NF0gICBnZm46IDAwMDA0Y2Vh
+ICBtZm46IDAwMDA0Y2VhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ0XSAgIGdmbjog
+MDAwMDRjZWIgIG1mbjogMDAwMDRjZWINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDRd
+ICAgZ2ZuOiAwMDAwNGNlYyAgbWZuOiAwMDAwNGNlYw0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
+MTozMjo0NV0gICBnZm46IDAwMDA0Y2VkICBtZm46IDAwMDA0Y2VkDQoNCihYRU4pIFsyMDEy
+LTA4LTMxIDIxOjMyOjQ1XSAgIGdmbjogMDAwMDRjZWUgIG1mbjogMDAwMDRjZWUNCg0KKFhF
+TikgWzIwMTItMDgtMzEgMjE6MzI6NDVdICAgZ2ZuOiAwMDAwNGNlZiAgbWZuOiAwMDAwNGNl
+Zg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0NV0gICBnZm46IDAwMDA0Y2YwICBtZm46
+IDAwMDA0Y2YwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ1XSAgIGdmbjogMDAwMDRj
+ZjEgIG1mbjogMDAwMDRjZjENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDVdICAgZ2Zu
+OiAwMDAwNGNmMiAgbWZuOiAwMDAwNGNmMg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0
+NV0gICBnZm46IDAwMDA0Y2YzICBtZm46IDAwMDA0Y2YzDQoNCihYRU4pIFsyMDEyLTA4LTMx
+IDIxOjMyOjQ1XSAgIGdmbjogMDAwMDRjZjQgIG1mbjogMDAwMDRjZjQNCg0KKFhFTikgWzIw
+MTItMDgtMzEgMjE6MzI6NDVdICAgZ2ZuOiAwMDAwNGNmNSAgbWZuOiAwMDAwNGNmNQ0KDQoo
+WEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0NV0gICBnZm46IDAwMDA0Y2Y2ICBtZm46IDAwMDA0
+Y2Y2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ1XSAgIGdmbjogMDAwMDRjZjcgIG1m
+bjogMDAwMDRjZjcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDVdICAgZ2ZuOiAwMDAw
+NGNmOCAgbWZuOiAwMDAwNGNmOA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0NV0gICBn
+Zm46IDAwMDA0Y2Y5ICBtZm46IDAwMDA0Y2Y5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMy
+OjQ1XSAgIGdmbjogMDAwMDRjZmEgIG1mbjogMDAwMDRjZmENCg0KKFhFTikgWzIwMTItMDgt
+MzEgMjE6MzI6NDVdICAgZ2ZuOiAwMDAwNGNmYiAgbWZuOiAwMDAwNGNmYg0KDQooWEVOKSBb
+MjAxMi0wOC0zMSAyMTozMjo0NV0gICBnZm46IDAwMDA0Y2ZjICBtZm46IDAwMDA0Y2ZjDQoN
+CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ1XSAgIGdmbjogMDAwMDRjZmQgIG1mbjogMDAw
+MDRjZmQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDVdICAgZ2ZuOiAwMDAwNGNmZSAg
+bWZuOiAwMDAwNGNmZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0NV0gICBnZm46IDAw
+MDA0Y2ZmICBtZm46IDAwMDA0Y2ZmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ1XSAg
+IGdmbjogMDAwMDRkMDAgIG1mbjogMDAwMDRkMDANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
+MzI6NDVdICAgZ2ZuOiAwMDAwNGQwMSAgbWZuOiAwMDAwNGQwMQ0KDQooWEVOKSBbMjAxMi0w
+OC0zMSAyMTozMjo0NV0gICBnZm46IDAwMDA0ZDAyICBtZm46IDAwMDA0ZDAyDQoNCihYRU4p
+IFsyMDEyLTA4LTMxIDIxOjMyOjQ1XSAgIGdmbjogMDAwMDRkMDMgIG1mbjogMDAwMDRkMDMN
+Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDVdICAgZ2ZuOiAwMDAwNGQwNCAgbWZuOiAw
+MDAwNGQwNA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0NV0gICBnZm46IDAwMDA0ZDA1
+ICBtZm46IDAwMDA0ZDA1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ1XSAgIGdmbjog
+MDAwMDRkMDYgIG1mbjogMDAwMDRkMDYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDVd
+ICAgZ2ZuOiAwMDAwNGQwNyAgbWZuOiAwMDAwNGQwNw0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
+MTozMjo0NV0gICBnZm46IDAwMDA0ZDA4ICBtZm46IDAwMDA0ZDA4DQoNCihYRU4pIFsyMDEy
+LTA4LTMxIDIxOjMyOjQ1XSAgIGdmbjogMDAwMDRkMDkgIG1mbjogMDAwMDRkMDkNCg0KKFhF
+TikgWzIwMTItMDgtMzEgMjE6MzI6NDVdICAgZ2ZuOiAwMDAwNGQwYSAgbWZuOiAwMDAwNGQw
+YQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0NV0gICBnZm46IDAwMDA0ZDBiICBtZm46
+IDAwMDA0ZDBiDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ1XSAgIGdmbjogMDAwMDRk
+MGMgIG1mbjogMDAwMDRkMGMNCg0KWyAgNDMxLjQ2NjQxM10gYShYRU4pIFsyMDEyLTA4LTMx
+IDIxOjMyOjQ1XSAgIGdmbjogMDAwMDRkMGQgIG1mbjogMDAwMDRkMGQNCg0KdGExOiBTQVRB
+IGxpbmsgdShYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ1XSAgIGdmbjogMDAwMDRkMGUgIG1m
+bjogMDAwMDRkMGUNCg0KcCAxLjUgR2JwcyAoU1N0YShYRU4pIFsyMDEyLTA4LTMxIDIxOjMy
+OjQ1XSAgIGdmbjogMDAwMDRkMGYgIG1mbjogMDAwMDRkMGYNCg0KdHVzIDExMyBTQ29udHJv
+bCAzMTApDQoNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDVdICAgZ2ZuOiAwMDAwNGQx
+MCAgbWZuOiAwMDAwNGQxMA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0NV0gICBnZm46
+IDAwMDA0ZDExICBtZm46IDAwMDA0ZDExDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ1
+XSAgIGdmbjogMDAwMDRkMTIgIG1mbjogMDAwMDRkMTINCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzI6NDVdICAgZ2ZuOiAwMDAwNGQxMyAgbWZuOiAwMDAwNGQxMw0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMjo0NV0gICBnZm46IDAwMDA0ZDE0ICBtZm46IDAwMDA0ZDE0DQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ1XSAgIGdmbjogMDAwMDRkMTUgIG1mbjogMDAwMDRk
+MTUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDVdICAgZ2ZuOiAwMDAwNGQxNiAgbWZu
+OiAwMDAwNGQxNg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0NV0gICBnZm46IDAwMDA0
+ZDE3ICBtZm46IDAwMDA0ZDE3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ1XSAgIGdm
+bjogMDAwMDRkMTggIG1mbjogMDAwMDRkMTgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
+NDVdICAgZ2ZuOiAwMDAwNGQxOSAgbWZuOiAwMDAwNGQxOQ0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMjo0NV0gICBnZm46IDAwMDA0ZDFhICBtZm46IDAwMDA0ZDFhDQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMyOjQ1XSAgIGdmbjogMDAwMDRkMWIgIG1mbjogMDAwMDRkMWINCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDVdICAgZ2ZuOiAwMDAwNGQxYyAgbWZuOiAwMDAw
+NGQxYw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0NV0gICBnZm46IDAwMDA0ZDFkICBt
+Zm46IDAwMDA0ZDFkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ1XSAgIGdmbjogMDAw
+MDRkMWUgIG1mbjogMDAwMDRkMWUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDVdICAg
+Z2ZuOiAwMDAwNGQxZiAgbWZuOiAwMDAwNGQxZg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+Mjo0NV0gICBnZm46IDAwMDA0ZDIwICBtZm46IDAwMDA0ZDIwDQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMyOjQ1XSAgIGdmbjogMDAwMDRkMjEgIG1mbjogMDAwMDRkMjENCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzI6NDVdICAgZ2ZuOiAwMDAwNGQyMiAgbWZuOiAwMDAwNGQyMg0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0NV0gICBnZm46IDAwMDA0ZDIzICBtZm46IDAw
+MDA0ZDIzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ1XSAgIGdmbjogMDAwMDRkMjQg
+IG1mbjogMDAwMDRkMjQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDVdICAgZ2ZuOiAw
+MDAwNGQyNSAgbWZuOiAwMDAwNGQyNQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0NV0g
+ICBnZm46IDAwMDA0ZDI2ICBtZm46IDAwMDA0ZDI2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMyOjQ1XSAgIGdmbjogMDAwMDRkMjcgIG1mbjogMDAwMDRkMjcNCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzI6NDVdICAgZ2ZuOiAwMDAwNGQyOCAgbWZuOiAwMDAwNGQyOA0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMjo0NV0gICBnZm46IDAwMDA0ZDI5ICBtZm46IDAwMDA0ZDI5
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ1XSAgIGdmbjogMDAwMDRkMmEgIG1mbjog
+MDAwMDRkMmENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDVdICAgZ2ZuOiAwMDAwNGQy
+YiAgbWZuOiAwMDAwNGQyYg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0Nl0gICBnZm46
+IDAwMDA0ZDJjICBtZm46IDAwMDA0ZDJjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ2
+XSAgIGdmbjogMDAwMDRkMmQgIG1mbjogMDAwMDRkMmQNCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzI6NDZdICAgZ2ZuOiAwMDAwNGQyZSAgbWZuOiAwMDAwNGQyZQ0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMjo0Nl0gICBnZm46IDAwMDA0ZDJmICBtZm46IDAwMDA0ZDJmDQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ2XSAgIGdmbjogMDAwMDRkMzAgIG1mbjogMDAwMDRk
+MzANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDZdICAgZ2ZuOiAwMDAwNGQzMSAgbWZu
+OiAwMDAwNGQzMQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0Nl0gICBnZm46IDAwMDA0
+ZDMyICBtZm46IDAwMDA0ZDMyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ2XSAgIGdm
+bjogMDAwMDRkMzMgIG1mbjogMDAwMDRkMzMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
+NDZdICAgZ2ZuOiAwMDAwNGQzNCAgbWZuOiAwMDAwNGQzNA0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMjo0Nl0gICBnZm46IDAwMDA0ZDM1ICBtZm46IDAwMDA0ZDM1DQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMyOjQ2XSAgIGdmbjogMDAwMDRkMzYgIG1mbjogMDAwMDRkMzYNCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDZdICAgZ2ZuOiAwMDAwNGQzNyAgbWZuOiAwMDAw
+NGQzNw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0Nl0gICBnZm46IDAwMDA0ZDM4ICBt
+Zm46IDAwMDA0ZDM4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ2XSAgIGdmbjogMDAw
+MDRkMzkgIG1mbjogMDAwMDRkMzkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDZdICAg
+Z2ZuOiAwMDAwNGQzYSAgbWZuOiAwMDAwNGQzYQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+Mjo0Nl0gICBnZm46IDAwMDA0ZDNiICBtZm46IDAwMDA0ZDNiDQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMyOjQ2XSAgIGdmbjogMDAwMDRkM2MgIG1mbjogMDAwMDRkM2MNCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzI6NDZdICAgZ2ZuOiAwMDAwNGQzZCAgbWZuOiAwMDAwNGQzZA0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0Nl0gICBnZm46IDAwMDA0ZDNlICBtZm46IDAw
+MDA0ZDNlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ2XSAgIGdmbjogMDAwMDRkM2Yg
+IG1mbjogMDAwMDRkM2YNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDZdICAgZ2ZuOiAw
+MDAwNGQ0MCAgbWZuOiAwMDAwNGQ0MA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0Nl0g
+ICBnZm46IDAwMDA0ZDQxICBtZm46IDAwMDA0ZDQxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMyOjQ2XSAgIGdmbjogMDAwMDRkNDIgIG1mbjogMDAwMDRkNDINCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzI6NDZdICAgZ2ZuOiAwMDAwNGQ0MyAgbWZuOiAwMDAwNGQ0Mw0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMjo0Nl0gICBnZm46IDAwMDA0ZDQ0ICBtZm46IDAwMDA0ZDQ0
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ2XSAgIGdmbjogMDAwMDRkNDUgIG1mbjog
+MDAwMDRkNDUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDZdICAgZ2ZuOiAwMDAwNGQ0
+NiAgbWZuOiAwMDAwNGQ0Ng0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0Nl0gICBnZm46
+IDAwMDA0ZDQ3ICBtZm46IDAwMDA0ZDQ3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ2
+XSAgIGdmbjogMDAwMDRkNDggIG1mbjogMDAwMDRkNDgNCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzI6NDZdICAgZ2ZuOiAwMDAwNGQ0OSAgbWZuOiAwMDAwNGQ0OQ0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMjo0Nl0gICBnZm46IDAwMDA0ZDRhICBtZm46IDAwMDA0ZDRhDQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ2XSAgIGdmbjogMDAwMDRkNGIgIG1mbjogMDAwMDRk
+NGINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDZdICAgZ2ZuOiAwMDAwNGQ0YyAgbWZu
+OiAwMDAwNGQ0Yw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0Nl0gICBnZm46IDAwMDA0
+ZDRkICBtZm46IDAwMDA0ZDRkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ2XSAgIGdm
+bjogMDAwMDRkNGUgIG1mbjogMDAwMDRkNGUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
+NDZdICAgZ2ZuOiAwMDAwNGQ0ZiAgbWZuOiAwMDAwNGQ0Zg0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMjo0Nl0gICBnZm46IDAwMDA0ZDUwICBtZm46IDAwMDA0ZDUwDQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMyOjQ2XSAgIGdmbjogMDAwMDRkNTEgIG1mbjogMDAwMDRkNTENCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDZdICAgZ2ZuOiAwMDAwNGQ1MiAgbWZuOiAwMDAw
+NGQ1Mg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0Nl0gICBnZm46IDAwMDA0ZDUzICBt
+Zm46IDAwMDA0ZDUzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ2XSAgIGdmbjogMDAw
+MDRkNTQgIG1mbjogMDAwMDRkNTQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDZdICAg
+Z2ZuOiAwMDAwNGQ1NSAgbWZuOiAwMDAwNGQ1NQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+Mjo0Nl0gICBnZm46IDAwMDA0ZDU2ICBtZm46IDAwMDA0ZDU2DQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMyOjQ2XSAgIGdmbjogMDAwMDRkNTcgIG1mbjogMDAwMDRkNTcNCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzI6NDZdICAgZ2ZuOiAwMDAwNGQ1OCAgbWZuOiAwMDAwNGQ1OA0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0Nl0gICBnZm46IDAwMDA0ZDU5ICBtZm46IDAw
+MDA0ZDU5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ2XSAgIGdmbjogMDAwMDRkNWEg
+IG1mbjogMDAwMDRkNWENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDZdICAgZ2ZuOiAw
+MDAwNGQ1YiAgbWZuOiAwMDAwNGQ1Yg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0Nl0g
+ICBnZm46IDAwMDA0ZDVjICBtZm46IDAwMDA0ZDVjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMyOjQ2XSAgIGdmbjogMDAwMDRkNWQgIG1mbjogMDAwMDRkNWQNCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzI6NDZdICAgZ2ZuOiAwMDAwNGQ1ZSAgbWZuOiAwMDAwNGQ1ZQ0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMjo0Nl0gICBnZm46IDAwMDA0ZDVmICBtZm46IDAwMDA0ZDVm
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ2XSAgIGdmbjogMDAwMDRkNjAgIG1mbjog
+MDAwMDRkNjANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDZdICAgZ2ZuOiAwMDAwNGQ2
+MSAgbWZuOiAwMDAwNGQ2MQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0Nl0gICBnZm46
+IDAwMDA0ZDYyICBtZm46IDAwMDA0ZDYyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ2
+XSAgIGdmbjogMDAwMDRkNjMgIG1mbjogMDAwMDRkNjMNCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzI6NDZdICAgZ2ZuOiAwMDAwNGQ2NCAgbWZuOiAwMDAwNGQ2NA0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMjo0Nl0gICBnZm46IDAwMDA0ZDY1ICBtZm46IDAwMDA0ZDY1DQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ2XSAgIGdmbjogMDAwMDRkNjYgIG1mbjogMDAwMDRk
+NjYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDZdICAgZ2ZuOiAwMDAwNGQ2NyAgbWZu
+OiAwMDAwNGQ2Nw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0Nl0gICBnZm46IDAwMDA0
+ZDY4ICBtZm46IDAwMDA0ZDY4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ2XSAgIGdm
+bjogMDAwMDRkNjkgIG1mbjogMDAwMDRkNjkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
+NDZdICAgZ2ZuOiAwMDAwNGQ2YSAgbWZuOiAwMDAwNGQ2YQ0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMjo0Nl0gICBnZm46IDAwMDA0ZDZiICBtZm46IDAwMDA0ZDZiDQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMyOjQ3XSAgIGdmbjogMDAwMDRkNmMgIG1mbjogMDAwMDRkNmMNCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDddICAgZ2ZuOiAwMDAwNGQ2ZCAgbWZuOiAwMDAw
+NGQ2ZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0N10gICBnZm46IDAwMDA0ZDZlICBt
+Zm46IDAwMDA0ZDZlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ3XSAgIGdmbjogMDAw
+MDRkNmYgIG1mbjogMDAwMDRkNmYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDddICAg
+Z2ZuOiAwMDAwNGQ3MCAgbWZuOiAwMDAwNGQ3MA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+Mjo0N10gICBnZm46IDAwMDA0ZDcxICBtZm46IDAwMDA0ZDcxDQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMyOjQ3XSAgIGdmbjogMDAwMDRkNzIgIG1mbjogMDAwMDRkNzINCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzI6NDddICAgZ2ZuOiAwMDAwNGQ3MyAgbWZuOiAwMDAwNGQ3Mw0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0N10gICBnZm46IDAwMDA0ZDc0ICBtZm46IDAw
+MDA0ZDc0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ3XSAgIGdmbjogMDAwMDRkNzUg
+IG1mbjogMDAwMDRkNzUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDddICAgZ2ZuOiAw
+MDAwNGQ3NiAgbWZuOiAwMDAwNGQ3Ng0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0N10g
+ICBnZm46IDAwMDA0ZDc3ICBtZm46IDAwMDA0ZDc3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMyOjQ3XSAgIGdmbjogMDAwMDRkNzggIG1mbjogMDAwMDRkNzgNCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzI6NDddICAgZ2ZuOiAwMDAwNGQ3OSAgbWZuOiAwMDAwNGQ3OQ0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMjo0N10gICBnZm46IDAwMDA0ZDdhICBtZm46IDAwMDA0ZDdh
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ3XSAgIGdmbjogMDAwMDRkN2IgIG1mbjog
+MDAwMDRkN2INCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDddICAgZ2ZuOiAwMDAwNGQ3
+YyAgbWZuOiAwMDAwNGQ3Yw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0N10gICBnZm46
+IDAwMDA0ZDdkICBtZm46IDAwMDA0ZDdkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ3
+XSAgIGdmbjogMDAwMDRkN2UgIG1mbjogMDAwMDRkN2UNCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzI6NDddICAgZ2ZuOiAwMDAwNGQ3ZiAgbWZuOiAwMDAwNGQ3Zg0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMjo0N10gICBnZm46IDAwMDA0ZDgwICBtZm46IDAwMDA0ZDgwDQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ3XSAgIGdmbjogMDAwMDRkODEgIG1mbjogMDAwMDRk
+ODENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDddICAgZ2ZuOiAwMDAwNGQ4MiAgbWZu
+OiAwMDAwNGQ4Mg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0N10gICBnZm46IDAwMDA0
+ZDgzICBtZm46IDAwMDA0ZDgzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ3XSAgIGdm
+bjogMDAwMDRkODQgIG1mbjogMDAwMDRkODQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
+NDddICAgZ2ZuOiAwMDAwNGQ4NSAgbWZuOiAwMDAwNGQ4NQ0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMjo0N10gICBnZm46IDAwMDA0ZDg2ICBtZm46IDAwMDA0ZDg2DQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMyOjQ3XSAgIGdmbjogMDAwMDRkODcgIG1mbjogMDAwMDRkODcNCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDddICAgZ2ZuOiAwMDAwNGQ4OCAgbWZuOiAwMDAw
+NGQ4OA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0N10gICBnZm46IDAwMDA0ZDg5ICBt
+Zm46IDAwMDA0ZDg5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ3XSAgIGdmbjogMDAw
+MDRkOGEgIG1mbjogMDAwMDRkOGENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDddICAg
+Z2ZuOiAwMDAwNGQ4YiAgbWZuOiAwMDAwNGQ4Yg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+Mjo0N10gICBnZm46IDAwMDA0ZDhjICBtZm46IDAwMDA0ZDhjDQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMyOjQ3XSAgIGdmbjogMDAwMDRkOGQgIG1mbjogMDAwMDRkOGQNCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzI6NDddICAgZ2ZuOiAwMDAwNGQ4ZSAgbWZuOiAwMDAwNGQ4ZQ0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0N10gICBnZm46IDAwMDA0ZDhmICBtZm46IDAw
+MDA0ZDhmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ3XSAgIGdmbjogMDAwMDRkOTAg
+IG1mbjogMDAwMDRkOTANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDddICAgZ2ZuOiAw
+MDAwNGQ5MSAgbWZuOiAwMDAwNGQ5MQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0N10g
+ICBnZm46IDAwMDA0ZDkyICBtZm46IDAwMDA0ZDkyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMyOjQ3XSAgIGdmbjogMDAwMDRkOTMgIG1mbjogMDAwMDRkOTMNCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzI6NDddICAgZ2ZuOiAwMDAwNGQ5NCAgbWZuOiAwMDAwNGQ5NA0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMjo0N10gICBnZm46IDAwMDA0ZDk1ICBtZm46IDAwMDA0ZDk1
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ3XSAgIGdmbjogMDAwMDRkOTYgIG1mbjog
+MDAwMDRkOTYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDddICAgZ2ZuOiAwMDAwNGQ5
+NyAgbWZuOiAwMDAwNGQ5Nw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0N10gICBnZm46
+IDAwMDA0ZDk4ICBtZm46IDAwMDA0ZDk4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ3
+XSAgIGdmbjogMDAwMDRkOTkgIG1mbjogMDAwMDRkOTkNCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzI6NDddICAgZ2ZuOiAwMDAwNGQ5YSAgbWZuOiAwMDAwNGQ5YQ0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMjo0N10gICBnZm46IDAwMDA0ZDliICBtZm46IDAwMDA0ZDliDQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ3XSAgIGdmbjogMDAwMDRkOWMgIG1mbjogMDAwMDRk
+OWMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDddICAgZ2ZuOiAwMDAwNGQ5ZCAgbWZu
+OiAwMDAwNGQ5ZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0N10gICBnZm46IDAwMDA0
+ZDllICBtZm46IDAwMDA0ZDllDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ3XSAgIGdm
+bjogMDAwMDRkOWYgIG1mbjogMDAwMDRkOWYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
+NDddICAgZ2ZuOiAwMDAwNGRhMCAgbWZuOiAwMDAwNGRhMA0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMjo0N10gICBnZm46IDAwMDA0ZGExICBtZm46IDAwMDA0ZGExDQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMyOjQ3XSAgIGdmbjogMDAwMDRkYTIgIG1mbjogMDAwMDRkYTINCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDddICAgZ2ZuOiAwMDAwNGRhMyAgbWZuOiAwMDAw
+NGRhMw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0N10gICBnZm46IDAwMDA0ZGE0ICBt
+Zm46IDAwMDA0ZGE0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ3XSAgIGdmbjogMDAw
+MDRkYTUgIG1mbjogMDAwMDRkYTUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDddICAg
+Z2ZuOiAwMDAwNGRhNiAgbWZuOiAwMDAwNGRhNg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+Mjo0N10gICBnZm46IDAwMDA0ZGE3ICBtZm46IDAwMDA0ZGE3DQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMyOjQ3XSAgIGdmbjogMDAwMDRkYTggIG1mbjogMDAwMDRkYTgNCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzI6NDddICAgZ2ZuOiAwMDAwNGRhOSAgbWZuOiAwMDAwNGRhOQ0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0N10gICBnZm46IDAwMDA0ZGFhICBtZm46IDAw
+MDA0ZGFhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ3XSAgIGdmbjogMDAwMDRkYWIg
+IG1mbjogMDAwMDRkYWINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDddICAgZ2ZuOiAw
+MDAwNGRhYyAgbWZuOiAwMDAwNGRhYw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0OF0g
+ICBnZm46IDAwMDA0ZGFkICBtZm46IDAwMDA0ZGFkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMyOjQ4XSAgIGdmbjogMDAwMDRkYWUgIG1mbjogMDAwMDRkYWUNCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzI6NDhdICAgZ2ZuOiAwMDAwNGRhZiAgbWZuOiAwMDAwNGRhZg0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMjo0OF0gICBnZm46IDAwMDA0ZGIwICBtZm46IDAwMDA0ZGIw
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ4XSAgIGdmbjogMDAwMDRkYjEgIG1mbjog
+MDAwMDRkYjENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDhdICAgZ2ZuOiAwMDAwNGRi
+MiAgbWZuOiAwMDAwNGRiMg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0OF0gICBnZm46
+IDAwMDA0ZGIzICBtZm46IDAwMDA0ZGIzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ4
+XSAgIGdmbjogMDAwMDRkYjQgIG1mbjogMDAwMDRkYjQNCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzI6NDhdICAgZ2ZuOiAwMDAwNGRiNSAgbWZuOiAwMDAwNGRiNQ0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMjo0OF0gICBnZm46IDAwMDA0ZGI2ICBtZm46IDAwMDA0ZGI2DQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ4XSAgIGdmbjogMDAwMDRkYjcgIG1mbjogMDAwMDRk
+YjcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDhdICAgZ2ZuOiAwMDAwNGRiOCAgbWZu
+OiAwMDAwNGRiOA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0OF0gICBnZm46IDAwMDA0
+ZGI5ICBtZm46IDAwMDA0ZGI5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ4XSAgIGdm
+bjogMDAwMDRkYmEgIG1mbjogMDAwMDRkYmENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
+NDhdICAgZ2ZuOiAwMDAwNGRiYiAgbWZuOiAwMDAwNGRiYg0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMjo0OF0gICBnZm46IDAwMDA0ZGJjICBtZm46IDAwMDA0ZGJjDQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMyOjQ4XSAgIGdmbjogMDAwMDRkYmQgIG1mbjogMDAwMDRkYmQNCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDhdICAgZ2ZuOiAwMDAwNGRiZSAgbWZuOiAwMDAw
+NGRiZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0OF0gICBnZm46IDAwMDA0ZGJmICBt
+Zm46IDAwMDA0ZGJmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ4XSAgIGdmbjogMDAw
+MDRkYzAgIG1mbjogMDAwMDRkYzANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDhdICAg
+Z2ZuOiAwMDAwNGRjMSAgbWZuOiAwMDAwNGRjMQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+Mjo0OF0gICBnZm46IDAwMDA0ZGMyICBtZm46IDAwMDA0ZGMyDQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMyOjQ4XSAgIGdmbjogMDAwMDRkYzMgIG1mbjogMDAwMDRkYzMNCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzI6NDhdICAgZ2ZuOiAwMDAwNGRjNCAgbWZuOiAwMDAwNGRjNA0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0OF0gICBnZm46IDAwMDA0ZGM1ICBtZm46IDAw
+MDA0ZGM1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ4XSAgIGdmbjogMDAwMDRkYzYg
+IG1mbjogMDAwMDRkYzYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDhdICAgZ2ZuOiAw
+MDAwNGRjNyAgbWZuOiAwMDAwNGRjNw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0OF0g
+ICBnZm46IDAwMDA0ZGM4ICBtZm46IDAwMDA0ZGM4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMyOjQ4XSAgIGdmbjogMDAwMDRkYzkgIG1mbjogMDAwMDRkYzkNCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzI6NDhdICAgZ2ZuOiAwMDAwNGRjYSAgbWZuOiAwMDAwNGRjYQ0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMjo0OF0gICBnZm46IDAwMDA0ZGNiICBtZm46IDAwMDA0ZGNi
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ4XSAgIGdmbjogMDAwMDRkY2MgIG1mbjog
+MDAwMDRkY2MNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDhdICAgZ2ZuOiAwMDAwNGRj
+ZCAgbWZuOiAwMDAwNGRjZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0OF0gICBnZm46
+IDAwMDA0ZGNlICBtZm46IDAwMDA0ZGNlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ4
+XSAgIGdmbjogMDAwMDRkY2YgIG1mbjogMDAwMDRkY2YNCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzI6NDhdICAgZ2ZuOiAwMDAwNGRkMCAgbWZuOiAwMDAwNGRkMA0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMjo0OF0gICBnZm46IDAwMDA0ZGQxICBtZm46IDAwMDA0ZGQxDQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ4XSAgIGdmbjogMDAwMDRkZDIgIG1mbjogMDAwMDRk
+ZDINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDhdICAgZ2ZuOiAwMDAwNGRkMyAgbWZu
+OiAwMDAwNGRkMw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0OF0gICBnZm46IDAwMDA0
+ZGQ0ICBtZm46IDAwMDA0ZGQ0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ4XSAgIGdm
+bjogMDAwMDRkZDUgIG1mbjogMDAwMDRkZDUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
+NDhdICAgZ2ZuOiAwMDAwNGRkNiAgbWZuOiAwMDAwNGRkNg0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMjo0OF0gICBnZm46IDAwMDA0ZGQ3ICBtZm46IDAwMDA0ZGQ3DQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMyOjQ4XSAgIGdmbjogMDAwMDRkZDggIG1mbjogMDAwMDRkZDgNCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDhdICAgZ2ZuOiAwMDAwNGRkOSAgbWZuOiAwMDAw
+NGRkOQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0OF0gICBnZm46IDAwMDA0ZGRhICBt
+Zm46IDAwMDA0ZGRhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ4XSAgIGdmbjogMDAw
+MDRkZGIgIG1mbjogMDAwMDRkZGINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDhdICAg
+Z2ZuOiAwMDAwNGRkYyAgbWZuOiAwMDAwNGRkYw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+Mjo0OF0gICBnZm46IDAwMDA0ZGRkICBtZm46IDAwMDA0ZGRkDQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMyOjQ4XSAgIGdmbjogMDAwMDRkZGUgIG1mbjogMDAwMDRkZGUNCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzI6NDhdICAgZ2ZuOiAwMDAwNGRkZiAgbWZuOiAwMDAwNGRkZg0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0OF0gICBnZm46IDAwMDA0ZGUwICBtZm46IDAw
+MDA0ZGUwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ4XSAgIGdmbjogMDAwMDRkZTEg
+IG1mbjogMDAwMDRkZTENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDhdICAgZ2ZuOiAw
+MDAwNGRlMiAgbWZuOiAwMDAwNGRlMg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0OF0g
+ICBnZm46IDAwMDA0ZGUzICBtZm46IDAwMDA0ZGUzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMyOjQ4XSAgIGdmbjogMDAwMDRkZTQgIG1mbjogMDAwMDRkZTQNCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzI6NDhdICAgZ2ZuOiAwMDAwNGRlNSAgbWZuOiAwMDAwNGRlNQ0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMjo0OF0gICBnZm46IDAwMDA0ZGU2ICBtZm46IDAwMDA0ZGU2
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ4XSAgIGdmbjogMDAwMDRkZTcgIG1mbjog
+MDAwMDRkZTcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDhdICAgZ2ZuOiAwMDAwNGRl
+OCAgbWZuOiAwMDAwNGRlOA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0OF0gICBnZm46
+IDAwMDA0ZGU5ICBtZm46IDAwMDA0ZGU5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ4
+XSAgIGdmbjogMDAwMDRkZWEgIG1mbjogMDAwMDRkZWENCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzI6NDhdICAgZ2ZuOiAwMDAwNGRlYiAgbWZuOiAwMDAwNGRlYg0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMjo0OF0gICBnZm46IDAwMDA0ZGVjICBtZm46IDAwMDA0ZGVjDQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ5XSAgIGdmbjogMDAwMDRkZWQgIG1mbjogMDAwMDRk
+ZWQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDldICAgZ2ZuOiAwMDAwNGRlZSAgbWZu
+OiAwMDAwNGRlZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0OV0gICBnZm46IDAwMDA0
+ZGVmICBtZm46IDAwMDA0ZGVmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ5XSAgIGdm
+bjogMDAwMDRkZjAgIG1mbjogMDAwMDRkZjANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
+NDldICAgZ2ZuOiAwMDAwNGRmMSAgbWZuOiAwMDAwNGRmMQ0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMjo0OV0gICBnZm46IDAwMDA0ZGYyICBtZm46IDAwMDA0ZGYyDQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMyOjQ5XSAgIGdmbjogMDAwMDRkZjMgIG1mbjogMDAwMDRkZjMNCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDldICAgZ2ZuOiAwMDAwNGRmNCAgbWZuOiAwMDAw
+NGRmNA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0OV0gICBnZm46IDAwMDA0ZGY1ICBt
+Zm46IDAwMDA0ZGY1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ5XSAgIGdmbjogMDAw
+MDRkZjYgIG1mbjogMDAwMDRkZjYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDldICAg
+Z2ZuOiAwMDAwNGRmNyAgbWZuOiAwMDAwNGRmNw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+Mjo0OV0gICBnZm46IDAwMDA0ZGY4ICBtZm46IDAwMDA0ZGY4DQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMyOjQ5XSAgIGdmbjogMDAwMDRkZjkgIG1mbjogMDAwMDRkZjkNCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzI6NDldICAgZ2ZuOiAwMDAwNGRmYSAgbWZuOiAwMDAwNGRmYQ0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0OV0gICBnZm46IDAwMDA0ZGZiICBtZm46IDAw
+MDA0ZGZiDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ5XSAgIGdmbjogMDAwMDRkZmMg
+IG1mbjogMDAwMDRkZmMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDldICAgZ2ZuOiAw
+MDAwNGRmZCAgbWZuOiAwMDAwNGRmZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0OV0g
+ICBnZm46IDAwMDA0ZGZlICBtZm46IDAwMDA0ZGZlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMyOjQ5XSAgIGdmbjogMDAwMDRkZmYgIG1mbjogMDAwMDRkZmYNCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzI6NDldICAgZ2ZuOiAwMDAwNGUwMCAgbWZuOiAwMDAwNGUwMA0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMjo0OV0gICBnZm46IDAwMDA0ZTAxICBtZm46IDAwMDA0ZTAx
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ5XSAgIGdmbjogMDAwMDRlMDIgIG1mbjog
+MDAwMDRlMDINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDldICAgZ2ZuOiAwMDAwNGUw
+MyAgbWZuOiAwMDAwNGUwMw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0OV0gICBnZm46
+IDAwMDA0ZTA0ICBtZm46IDAwMDA0ZTA0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ5
+XSAgIGdmbjogMDAwMDRlMDUgIG1mbjogMDAwMDRlMDUNCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzI6NDldICAgZ2ZuOiAwMDAwNGUwNiAgbWZuOiAwMDAwNGUwNg0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMjo0OV0gICBnZm46IDAwMDA0ZTA3ICBtZm46IDAwMDA0ZTA3DQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ5XSAgIGdmbjogMDAwMDRlMDggIG1mbjogMDAwMDRl
+MDgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDldICAgZ2ZuOiAwMDAwNGUwOSAgbWZu
+OiAwMDAwNGUwOQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0OV0gICBnZm46IDAwMDA0
+ZTBhICBtZm46IDAwMDA0ZTBhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ5XSAgIGdm
+bjogMDAwMDRlMGIgIG1mbjogMDAwMDRlMGINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
+NDldICAgZ2ZuOiAwMDAwNGUwYyAgbWZuOiAwMDAwNGUwYw0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMjo0OV0gICBnZm46IDAwMDA0ZTBkICBtZm46IDAwMDA0ZTBkDQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMyOjQ5XSAgIGdmbjogMDAwMDRlMGUgIG1mbjogMDAwMDRlMGUNCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDldICAgZ2ZuOiAwMDAwNGUwZiAgbWZuOiAwMDAw
+NGUwZg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0OV0gICBnZm46IDAwMDA0ZTEwICBt
+Zm46IDAwMDA0ZTEwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ5XSAgIGdmbjogMDAw
+MDRlMTEgIG1mbjogMDAwMDRlMTENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDldICAg
+Z2ZuOiAwMDAwNGUxMiAgbWZuOiAwMDAwNGUxMg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+Mjo0OV0gICBnZm46IDAwMDA0ZTEzICBtZm46IDAwMDA0ZTEzDQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMyOjQ5XSAgIGdmbjogMDAwMDRlMTQgIG1mbjogMDAwMDRlMTQNCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzI6NDldICAgZ2ZuOiAwMDAwNGUxNSAgbWZuOiAwMDAwNGUxNQ0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0OV0gICBnZm46IDAwMDA0ZTE2ICBtZm46IDAw
+MDA0ZTE2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ5XSAgIGdmbjogMDAwMDRlMTcg
+IG1mbjogMDAwMDRlMTcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDldICAgZ2ZuOiAw
+MDAwNGUxOCAgbWZuOiAwMDAwNGUxOA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0OV0g
+ICBnZm46IDAwMDA0ZTE5ICBtZm46IDAwMDA0ZTE5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMyOjQ5XSAgIGdmbjogMDAwMDRlMWEgIG1mbjogMDAwMDRlMWENCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzI6NDldICAgZ2ZuOiAwMDAwNGUxYiAgbWZuOiAwMDAwNGUxYg0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMjo0OV0gICBnZm46IDAwMDA0ZTFjICBtZm46IDAwMDA0ZTFj
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ5XSAgIGdmbjogMDAwMDRlMWQgIG1mbjog
+MDAwMDRlMWQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDldICAgZ2ZuOiAwMDAwNGUx
+ZSAgbWZuOiAwMDAwNGUxZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0OV0gICBnZm46
+IDAwMDA0ZTFmICBtZm46IDAwMDA0ZTFmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ5
+XSAgIGdmbjogMDAwMDRlMjAgIG1mbjogMDAwMDRlMjANCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzI6NDldICAgZ2ZuOiAwMDAwNGUyMSAgbWZuOiAwMDAwNGUyMQ0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMjo0OV0gICBnZm46IDAwMDA0ZTIyICBtZm46IDAwMDA0ZTIyDQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ5XSAgIGdmbjogMDAwMDRlMjMgIG1mbjogMDAwMDRl
+MjMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDldICAgZ2ZuOiAwMDAwNGUyNCAgbWZu
+OiAwMDAwNGUyNA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0OV0gICBnZm46IDAwMDA0
+ZTI1ICBtZm46IDAwMDA0ZTI1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ5XSAgIGdm
+bjogMDAwMDRlMjYgIG1mbjogMDAwMDRlMjYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
+NDldICAgZ2ZuOiAwMDAwNGUyNyAgbWZuOiAwMDAwNGUyNw0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMjo0OV0gICBnZm46IDAwMDA0ZTI4ICBtZm46IDAwMDA0ZTI4DQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMyOjQ5XSAgIGdmbjogMDAwMDRlMjkgIG1mbjogMDAwMDRlMjkNCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDldICAgZ2ZuOiAwMDAwNGUyYSAgbWZuOiAwMDAw
+NGUyYQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0OV0gICBnZm46IDAwMDA0ZTJiICBt
+Zm46IDAwMDA0ZTJiDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ5XSAgIGdmbjogMDAw
+MDRlMmMgIG1mbjogMDAwMDRlMmMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTBdICAg
+Z2ZuOiAwMDAwNGUyZCAgbWZuOiAwMDAwNGUyZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+Mjo1MF0gICBnZm46IDAwMDA0ZTJlICBtZm46IDAwMDA0ZTJlDQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMyOjUwXSAgIGdmbjogMDAwMDRlMmYgIG1mbjogMDAwMDRlMmYNCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzI6NTBdICAgZ2ZuOiAwMDAwNGUzMCAgbWZuOiAwMDAwNGUzMA0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1MF0gICBnZm46IDAwMDA0ZTMxICBtZm46IDAw
+MDA0ZTMxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjUwXSAgIGdmbjogMDAwMDRlMzIg
+IG1mbjogMDAwMDRlMzINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTBdICAgZ2ZuOiAw
+MDAwNGUzMyAgbWZuOiAwMDAwNGUzMw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1MF0g
+ICBnZm46IDAwMDA0ZTM0ICBtZm46IDAwMDA0ZTM0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMyOjUwXSAgIGdmbjogMDAwMDRlMzUgIG1mbjogMDAwMDRlMzUNCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzI6NTBdICAgZ2ZuOiAwMDAwNGUzNiAgbWZuOiAwMDAwNGUzNg0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMjo1MF0gICBnZm46IDAwMDA0ZTM3ICBtZm46IDAwMDA0ZTM3
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjUwXSAgIGdmbjogMDAwMDRlMzggIG1mbjog
+MDAwMDRlMzgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTBdICAgZ2ZuOiAwMDAwNGUz
+OSAgbWZuOiAwMDAwNGUzOQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1MF0gICBnZm46
+IDAwMDA0ZTNhICBtZm46IDAwMDA0ZTNhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjUw
+XSAgIGdmbjogMDAwMDRlM2IgIG1mbjogMDAwMDRlM2INCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzI6NTBdICAgZ2ZuOiAwMDAwNGUzYyAgbWZuOiAwMDAwNGUzYw0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMjo1MF0gICBnZm46IDAwMDA0ZTNkICBtZm46IDAwMDA0ZTNkDQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjUwXSAgIGdmbjogMDAwMDRlM2UgIG1mbjogMDAwMDRl
+M2UNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTBdICAgZ2ZuOiAwMDAwNGUzZiAgbWZu
+OiAwMDAwNGUzZg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1MF0gICBnZm46IDAwMDA0
+ZTQwICBtZm46IDAwMDA0ZTQwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjUwXSAgIGdm
+bjogMDAwMDRlNDEgIG1mbjogMDAwMDRlNDENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
+NTBdICAgZ2ZuOiAwMDAwNGU0MiAgbWZuOiAwMDAwNGU0Mg0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMjo1MF0gICBnZm46IDAwMDA0ZTQzICBtZm46IDAwMDA0ZTQzDQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMyOjUwXSAgIGdmbjogMDAwMDRlNDQgIG1mbjogMDAwMDRlNDQNCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTBdICAgZ2ZuOiAwMDAwNGU0NSAgbWZuOiAwMDAw
+NGU0NQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1MF0gICBnZm46IDAwMDA0ZTQ2ICBt
+Zm46IDAwMDA0ZTQ2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjUwXSAgIGdmbjogMDAw
+MDRlNDcgIG1mbjogMDAwMDRlNDcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTBdICAg
+Z2ZuOiAwMDAwNGU0OCAgbWZuOiAwMDAwNGU0OA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+Mjo1MF0gICBnZm46IDAwMDA0ZTQ5ICBtZm46IDAwMDA0ZTQ5DQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMyOjUwXSAgIGdmbjogMDAwMDRlNGEgIG1mbjogMDAwMDRlNGENCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzI6NTBdICAgZ2ZuOiAwMDAwNGU0YiAgbWZuOiAwMDAwNGU0Yg0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1MF0gICBnZm46IDAwMDA0ZTRjICBtZm46IDAw
+MDA0ZTRjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjUwXSAgIGdmbjogMDAwMDRlNGQg
+IG1mbjogMDAwMDRlNGQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTBdICAgZ2ZuOiAw
+MDAwNGU0ZSAgbWZuOiAwMDAwNGU0ZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1MF0g
+ICBnZm46IDAwMDA0ZTRmICBtZm46IDAwMDA0ZTRmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMyOjUwXSAgIGdmbjogMDAwMDRlNTAgIG1mbjogMDAwMDRlNTANCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzI6NTBdICAgZ2ZuOiAwMDAwNGU1MSAgbWZuOiAwMDAwNGU1MQ0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMjo1MF0gICBnZm46IDAwMDA0ZTUyICBtZm46IDAwMDA0ZTUy
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjUwXSAgIGdmbjogMDAwMDRlNTMgIG1mbjog
+MDAwMDRlNTMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTBdICAgZ2ZuOiAwMDAwNGU1
+NCAgbWZuOiAwMDAwNGU1NA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1MF0gICBnZm46
+IDAwMDA0ZTU1ICBtZm46IDAwMDA0ZTU1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjUw
+XSAgIGdmbjogMDAwMDRlNTYgIG1mbjogMDAwMDRlNTYNCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzI6NTBdICAgZ2ZuOiAwMDAwNGU1NyAgbWZuOiAwMDAwNGU1Nw0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMjo1MF0gICBnZm46IDAwMDA0ZTU4ICBtZm46IDAwMDA0ZTU4DQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjUwXSAgIGdmbjogMDAwMDRlNTkgIG1mbjogMDAwMDRl
+NTkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTBdICAgZ2ZuOiAwMDAwNGU1YSAgbWZu
+OiAwMDAwNGU1YQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1MF0gICBnZm46IDAwMDA0
+ZTViICBtZm46IDAwMDA0ZTViDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjUwXSAgIGdm
+bjogMDAwMDRlNWMgIG1mbjogMDAwMDRlNWMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
+NTBdICAgZ2ZuOiAwMDAwNGU1ZCAgbWZuOiAwMDAwNGU1ZA0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMjo1MF0gICBnZm46IDAwMDA0ZTVlICBtZm46IDAwMDA0ZTVlDQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMyOjUwXSAgIGdmbjogMDAwMDRlNWYgIG1mbjogMDAwMDRlNWYNCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTBdICAgZ2ZuOiAwMDAwNGU2MCAgbWZuOiAwMDAw
+NGU2MA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1MF0gICBnZm46IDAwMDA0ZTYxICBt
+Zm46IDAwMDA0ZTYxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjUwXSAgIGdmbjogMDAw
+MDRlNjIgIG1mbjogMDAwMDRlNjINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTBdICAg
+Z2ZuOiAwMDAwNGU2MyAgbWZuOiAwMDAwNGU2Mw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+Mjo1MF0gICBnZm46IDAwMDA0ZTY0ICBtZm46IDAwMDA0ZTY0DQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMyOjUwXSAgIGdmbjogMDAwMDRlNjUgIG1mbjogMDAwMDRlNjUNCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzI6NTBdICAgZ2ZuOiAwMDAwNGU2NiAgbWZuOiAwMDAwNGU2Ng0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1MF0gICBnZm46IDAwMDA0ZTY3ICBtZm46IDAw
+MDA0ZTY3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjUwXSAgIGdmbjogMDAwMDRlNjgg
+IG1mbjogMDAwMDRlNjgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTBdICAgZ2ZuOiAw
+MDAwNGU2OSAgbWZuOiAwMDAwNGU2OQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1MF0g
+ICBnZm46IDAwMDA0ZTZhICBtZm46IDAwMDA0ZTZhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMyOjUwXSAgIGdmbjogMDAwMDRlNmIgIG1mbjogMDAwMDRlNmINCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzI6NTBdICAgZ2ZuOiAwMDAwNGU2YyAgbWZuOiAwMDAwNGU2Yw0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMjo1MV0gICBnZm46IDAwMDA0ZTZkICBtZm46IDAwMDA0ZTZk
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjUxXSAgIGdmbjogMDAwMDRlNmUgIG1mbjog
+MDAwMDRlNmUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTFdICAgZ2ZuOiAwMDAwNGU2
+ZiAgbWZuOiAwMDAwNGU2Zg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1MV0gICBnZm46
+IDAwMDA0ZTcwICBtZm46IDAwMDA0ZTcwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjUx
+XSAgIGdmbjogMDAwMDRlNzEgIG1mbjogMDAwMDRlNzENCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzI6NTFdICAgZ2ZuOiAwMDAwNGU3MiAgbWZuOiAwMDAwNGU3Mg0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMjo1MV0gICBnZm46IDAwMDA0ZTczICBtZm46IDAwMDA0ZTczDQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjUxXSAgIGdmbjogMDAwMDRlNzQgIG1mbjogMDAwMDRl
+NzQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTFdICAgZ2ZuOiAwMDAwNGU3NSAgbWZu
+OiAwMDAwNGU3NQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1MV0gICBnZm46IDAwMDA0
+ZTc2ICBtZm46IDAwMDA0ZTc2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjUxXSAgIGdm
+bjogMDAwMDRlNzcgIG1mbjogMDAwMDRlNzcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
+NTFdICAgZ2ZuOiAwMDAwNGU3OCAgbWZuOiAwMDAwNGU3OA0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMjo1MV0gICBnZm46IDAwMDA0ZTc5ICBtZm46IDAwMDA0ZTc5DQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMyOjUxXSAgIGdmbjogMDAwMDRlN2EgIG1mbjogMDAwMDRlN2ENCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTFdICAgZ2ZuOiAwMDAwNGU3YiAgbWZuOiAwMDAw
+NGU3Yg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1MV0gICBnZm46IDAwMDA0ZTdjICBt
+Zm46IDAwMDA0ZTdjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjUxXSAgIGdmbjogMDAw
+MDRlN2QgIG1mbjogMDAwMDRlN2QNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTFdICAg
+Z2ZuOiAwMDAwNGU3ZSAgbWZuOiAwMDAwNGU3ZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+Mjo1MV0gICBnZm46IDAwMDA0ZTdmICBtZm46IDAwMDA0ZTdmDQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMyOjUxXSAgIGdmbjogMDAwMDRlODAgIG1mbjogMDAwMDRlODANCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzI6NTFdICAgZ2ZuOiAwMDAwNGU4MSAgbWZuOiAwMDAwNGU4MQ0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1MV0gICBnZm46IDAwMDA0ZTgyICBtZm46IDAw
+MDA0ZTgyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjUxXSAgIGdmbjogMDAwMDRlODMg
+IG1mbjogMDAwMDRlODMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTFdICAgZ2ZuOiAw
+MDAwNGU4NCAgbWZuOiAwMDAwNGU4NA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1MV0g
+ICBnZm46IDAwMDA0ZTg1ICBtZm46IDAwMDA0ZTg1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMyOjUxXSAgIGdmbjogMDAwMDRlODYgIG1mbjogMDAwMDRlODYNCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzI6NTFdICAgZ2ZuOiAwMDAwNGU4NyAgbWZuOiAwMDAwNGU4Nw0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMjo1MV0gICBnZm46IDAwMDA0ZTg4ICBtZm46IDAwMDA0ZTg4
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjUxXSAgIGdmbjogMDAwMDRlODkgIG1mbjog
+MDAwMDRlODkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTFdICAgZ2ZuOiAwMDAwNGU4
+YSAgbWZuOiAwMDAwNGU4YQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1MV0gICBnZm46
+IDAwMDA0ZThiICBtZm46IDAwMDA0ZThiDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjUx
+XSAgIGdmbjogMDAwMDRlOGMgIG1mbjogMDAwMDRlOGMNCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzI6NTFdICAgZ2ZuOiAwMDAwNGU4ZCAgbWZuOiAwMDAwNGU4ZA0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMjo1MV0gICBnZm46IDAwMDA0ZThlICBtZm46IDAwMDA0ZThlDQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjUxXSAgIGdmbjogMDAwMDRlOGYgIG1mbjogMDAwMDRl
+OGYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTFdICAgZ2ZuOiAwMDAwNGU5MCAgbWZu
+OiAwMDAwNGU5MA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1MV0gICBnZm46IDAwMDA0
+ZTkxICBtZm46IDAwMDA0ZTkxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjUxXSAgIGdm
+bjogMDAwMDRlOTIgIG1mbjogMDAwMDRlOTINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
+NTFdICAgZ2ZuOiAwMDAwNGU5MyAgbWZuOiAwMDAwNGU5Mw0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMjo1MV0gICBnZm46IDAwMDA0ZTk0ICBtZm46IDAwMDA0ZTk0DQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMyOjUxXSAgIGdmbjogMDAwMDRlOTUgIG1mbjogMDAwMDRlOTUNCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTFdICAgZ2ZuOiAwMDAwNGU5NiAgbWZuOiAwMDAw
+NGU5Ng0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1MV0gICBnZm46IDAwMDA0ZTk3ICBt
+Zm46IDAwMDA0ZTk3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjUxXSAgIGdmbjogMDAw
+MDRlOTggIG1mbjogMDAwMDRlOTgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTFdICAg
+Z2ZuOiAwMDAwNGU5OSAgbWZuOiAwMDAwNGU5OQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+Mjo1MV0gICBnZm46IDAwMDA0ZTlhICBtZm46IDAwMDA0ZTlhDQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMyOjUxXSAgIGdmbjogMDAwMDRlOWIgIG1mbjogMDAwMDRlOWINCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzI6NTFdICAgZ2ZuOiAwMDAwNGU5YyAgbWZuOiAwMDAwNGU5Yw0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1MV0gICBnZm46IDAwMDA0ZTlkICBtZm46IDAw
+MDA0ZTlkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjUxXSAgIGdmbjogMDAwMDRlOWUg
+IG1mbjogMDAwMDRlOWUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTFdICAgZ2ZuOiAw
+MDAwNGU5ZiAgbWZuOiAwMDAwNGU5Zg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1MV0g
+ICBnZm46IDAwMDA0ZWEwICBtZm46IDAwMDA0ZWEwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMyOjUxXSAgIGdmbjogMDAwMDRlYTEgIG1mbjogMDAwMDRlYTENCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzI6NTFdICAgZ2ZuOiAwMDAwNGVhMiAgbWZuOiAwMDAwNGVhMg0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMjo1MV0gICBnZm46IDAwMDA0ZWEzICBtZm46IDAwMDA0ZWEz
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjUxXSAgIGdmbjogMDAwMDRlYTQgIG1mbjog
+MDAwMDRlYTQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTFdICAgZ2ZuOiAwMDAwNGVh
+NSAgbWZuOiAwMDAwNGVhNQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1MV0gICBnZm46
+IDAwMDA0ZWE2ICBtZm46IDAwMDA0ZWE2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjUx
+XSAgIGdmbjogMDAwMDRlYTcgIG1mbjogMDAwMDRlYTcNCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzI6NTFdICAgZ2ZuOiAwMDAwNGVhOCAgbWZuOiAwMDAwNGVhOA0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMjo1MV0gICBnZm46IDAwMDA0ZWE5ICBtZm46IDAwMDA0ZWE5DQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjUxXSAgIGdmbjogMDAwMDRlYWEgIG1mbjogMDAwMDRl
+YWENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTFdICAgZ2ZuOiAwMDAwNGVhYiAgbWZu
+OiAwMDAwNGVhYg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1MV0gICBnZm46IDAwMDA0
+ZWFjICBtZm46IDAwMDA0ZWFjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjUyXSAgIGdm
+bjogMDAwMDRlYWQgIG1mbjogMDAwMDRlYWQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
+NTJdICAgZ2ZuOiAwMDAwNGVhZSAgbWZuOiAwMDAwNGVhZQ0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMjo1Ml0gICBnZm46IDAwMDA0ZWFmICBtZm46IDAwMDA0ZWFmDQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMyOjUyXSAgIGdmbjogMDAwMDRlYjAgIG1mbjogMDAwMDRlYjANCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTJdICAgZ2ZuOiAwMDAwNGViMSAgbWZuOiAwMDAw
+NGViMQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1Ml0gICBnZm46IDAwMDA0ZWIyICBt
+Zm46IDAwMDA0ZWIyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjUyXSAgIGdmbjogMDAw
+MDRlYjMgIG1mbjogMDAwMDRlYjMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTJdICAg
+Z2ZuOiAwMDAwNGViNCAgbWZuOiAwMDAwNGViNA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+Mjo1Ml0gICBnZm46IDAwMDA0ZWI1ICBtZm46IDAwMDA0ZWI1DQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMyOjUyXSAgIGdmbjogMDAwMDRlYjYgIG1mbjogMDAwMDRlYjYNCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzI6NTJdICAgZ2ZuOiAwMDAwNGViNyAgbWZuOiAwMDAwNGViNw0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1Ml0gICBnZm46IDAwMDA0ZWI4ICBtZm46IDAw
+MDA0ZWI4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjUyXSAgIGdmbjogMDAwMDRlYjkg
+IG1mbjogMDAwMDRlYjkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTJdICAgZ2ZuOiAw
+MDAwNGViYSAgbWZuOiAwMDAwNGViYQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1Ml0g
+ICBnZm46IDAwMDA0ZWJiICBtZm46IDAwMDA0ZWJiDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMyOjUyXSAgIGdmbjogMDAwMDRlYmMgIG1mbjogMDAwMDRlYmMNCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzI6NTJdICAgZ2ZuOiAwMDAwNGViZCAgbWZuOiAwMDAwNGViZA0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMjo1Ml0gICBnZm46IDAwMDA0ZWJlICBtZm46IDAwMDA0ZWJl
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjUyXSAgIGdmbjogMDAwMDRlYmYgIG1mbjog
+MDAwMDRlYmYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTJdICAgZ2ZuOiAwMDAwNGVj
+MCAgbWZuOiAwMDAwNGVjMA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1Ml0gICBnZm46
+IDAwMDA0ZWMxICBtZm46IDAwMDA0ZWMxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjUy
+XSAgIGdmbjogMDAwMDRlYzIgIG1mbjogMDAwMDRlYzINCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzI6NTJdICAgZ2ZuOiAwMDAwNGVjMyAgbWZuOiAwMDAwNGVjMw0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMjo1Ml0gICBnZm46IDAwMDA0ZWM0ICBtZm46IDAwMDA0ZWM0DQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjUyXSAgIGdmbjogMDAwMDRlYzUgIG1mbjogMDAwMDRl
+YzUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTJdICAgZ2ZuOiAwMDAwNGVjNiAgbWZu
+OiAwMDAwNGVjNg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1Ml0gICBnZm46IDAwMDA0
+ZWM3ICBtZm46IDAwMDA0ZWM3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjUyXSAgIGdm
+bjogMDAwMDRlYzggIG1mbjogMDAwMDRlYzgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
+NTJdICAgZ2ZuOiAwMDAwNGVjOSAgbWZuOiAwMDAwNGVjOQ0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMjo1Ml0gICBnZm46IDAwMDA0ZWNhICBtZm46IDAwMDA0ZWNhDQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMyOjUyXSAgIGdmbjogMDAwMDRlY2IgIG1mbjogMDAwMDRlY2INCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTJdICAgZ2ZuOiAwMDAwNGVjYyAgbWZuOiAwMDAw
+NGVjYw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1Ml0gICBnZm46IDAwMDA0ZWNkICBt
+Zm46IDAwMDA0ZWNkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjUyXSAgIGdmbjogMDAw
+MDRlY2UgIG1mbjogMDAwMDRlY2UNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTJdICAg
+Z2ZuOiAwMDAwNGVjZiAgbWZuOiAwMDAwNGVjZg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+Mjo1Ml0gICBnZm46IDAwMDA0ZWQwICBtZm46IDAwMDA0ZWQwDQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMyOjUyXSAgIGdmbjogMDAwMDRlZDEgIG1mbjogMDAwMDRlZDENCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzI6NTJdICAgZ2ZuOiAwMDAwNGVkMiAgbWZuOiAwMDAwNGVkMg0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1Ml0gICBnZm46IDAwMDA0ZWQzICBtZm46IDAw
+MDA0ZWQzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjUyXSAgIGdmbjogMDAwMDRlZDQg
+IG1mbjogMDAwMDRlZDQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTJdICAgZ2ZuOiAw
+MDAwNGVkNSAgbWZuOiAwMDAwNGVkNQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1Ml0g
+ICBnZm46IDAwMDA0ZWQ2ICBtZm46IDAwMDA0ZWQ2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMyOjUyXSAgIGdmbjogMDAwMDRlZDcgIG1mbjogMDAwMDRlZDcNCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzI6NTJdICAgZ2ZuOiAwMDAwNGVkOCAgbWZuOiAwMDAwNGVkOA0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMjo1Ml0gICBnZm46IDAwMDA0ZWQ5ICBtZm46IDAwMDA0ZWQ5
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjUyXSAgIGdmbjogMDAwMDRlZGEgIG1mbjog
+MDAwMDRlZGENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTJdICAgZ2ZuOiAwMDAwNGVk
+YiAgbWZuOiAwMDAwNGVkYg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1Ml0gICBnZm46
+IDAwMDA0ZWRjICBtZm46IDAwMDA0ZWRjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjUy
+XSAgIGdmbjogMDAwMDRlZGQgIG1mbjogMDAwMDRlZGQNCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzI6NTJdICAgZ2ZuOiAwMDAwNGVkZSAgbWZuOiAwMDAwNGVkZQ0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMjo1Ml0gICBnZm46IDAwMDA0ZWRmICBtZm46IDAwMDA0ZWRmDQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjUyXSAgIGdmbjogMDAwMDRlZTAgIG1mbjogMDAwMDRl
+ZTANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTJdICAgZ2ZuOiAwMDAwNGVlMSAgbWZu
+OiAwMDAwNGVlMQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1Ml0gICBnZm46IDAwMDA0
+ZWUyICBtZm46IDAwMDA0ZWUyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjUyXSAgIGdm
+bjogMDAwMDRlZTMgIG1mbjogMDAwMDRlZTMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
+NTJdICAgZ2ZuOiAwMDAwNGVlNCAgbWZuOiAwMDAwNGVlNA0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMjo1Ml0gICBnZm46IDAwMDA0ZWU1ICBtZm46IDAwMDA0ZWU1DQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMyOjUyXSAgIGdmbjogMDAwMDRlZTYgIG1mbjogMDAwMDRlZTYNCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTJdICAgZ2ZuOiAwMDAwNGVlNyAgbWZuOiAwMDAw
+NGVlNw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1Ml0gICBnZm46IDAwMDA0ZWU4ICBt
+Zm46IDAwMDA0ZWU4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjUyXSAgIGdmbjogMDAw
+MDRlZTkgIG1mbjogMDAwMDRlZTkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTJdICAg
+Z2ZuOiAwMDAwNGVlYSAgbWZuOiAwMDAwNGVlYQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+Mjo1Ml0gICBnZm46IDAwMDA0ZWViICBtZm46IDAwMDA0ZWViDQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMyOjUyXSAgIGdmbjogMDAwMDRlZWMgIG1mbjogMDAwMDRlZWMNCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzI6NTNdICAgZ2ZuOiAwMDAwNGVlZCAgbWZuOiAwMDAwNGVlZA0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1M10gICBnZm46IDAwMDA0ZWVlICBtZm46IDAw
+MDA0ZWVlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjUzXSAgIGdmbjogMDAwMDRlZWYg
+IG1mbjogMDAwMDRlZWYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTNdICAgZ2ZuOiAw
+MDAwNGVmMCAgbWZuOiAwMDAwNGVmMA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1M10g
+ICBnZm46IDAwMDA0ZWYxICBtZm46IDAwMDA0ZWYxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMyOjUzXSAgIGdmbjogMDAwMDRlZjIgIG1mbjogMDAwMDRlZjINCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzI6NTNdICAgZ2ZuOiAwMDAwNGVmMyAgbWZuOiAwMDAwNGVmMw0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMjo1M10gICBnZm46IDAwMDA0ZWY0ICBtZm46IDAwMDA0ZWY0
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjUzXSAgIGdmbjogMDAwMDRlZjUgIG1mbjog
+MDAwMDRlZjUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTNdICAgZ2ZuOiAwMDAwNGVm
+NiAgbWZuOiAwMDAwNGVmNg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1M10gICBnZm46
+IDAwMDA0ZWY3ICBtZm46IDAwMDA0ZWY3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjUz
+XSAgIGdmbjogMDAwMDRlZjggIG1mbjogMDAwMDRlZjgNCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzI6NTNdICAgZ2ZuOiAwMDAwNGVmOSAgbWZuOiAwMDAwNGVmOQ0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMjo1M10gICBnZm46IDAwMDA0ZWZhICBtZm46IDAwMDA0ZWZhDQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjUzXSAgIGdmbjogMDAwMDRlZmIgIG1mbjogMDAwMDRl
+ZmINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTNdICAgZ2ZuOiAwMDAwNGVmYyAgbWZu
+OiAwMDAwNGVmYw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1M10gICBnZm46IDAwMDA0
+ZWZkICBtZm46IDAwMDA0ZWZkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjUzXSAgIGdm
+bjogMDAwMDRlZmUgIG1mbjogMDAwMDRlZmUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
+NTNdICAgZ2ZuOiAwMDAwNGVmZiAgbWZuOiAwMDAwNGVmZg0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMjo1M10gICBnZm46IDAwMDA0ZjAwICBtZm46IDAwMDA0ZjAwDQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMyOjUzXSAgIGdmbjogMDAwMDRmMDEgIG1mbjogMDAwMDRmMDENCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTNdICAgZ2ZuOiAwMDAwNGYwMiAgbWZuOiAwMDAw
+NGYwMg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1M10gICBnZm46IDAwMDA0ZjAzICBt
+Zm46IDAwMDA0ZjAzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjUzXSAgIGdmbjogMDAw
+MDRmMDQgIG1mbjogMDAwMDRmMDQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTNdICAg
+Z2ZuOiAwMDAwNGYwNSAgbWZuOiAwMDAwNGYwNQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+Mjo1M10gICBnZm46IDAwMDA0ZjA2ICBtZm46IDAwMDA0ZjA2DQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMyOjUzXSAgIGdmbjogMDAwMDRmMDcgIG1mbjogMDAwMDRmMDcNCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzI6NTNdICAgZ2ZuOiAwMDAwNGYwOCAgbWZuOiAwMDAwNGYwOA0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1M10gICBnZm46IDAwMDA0ZjA5ICBtZm46IDAw
+MDA0ZjA5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjUzXSAgIGdmbjogMDAwMDRmMGEg
+IG1mbjogMDAwMDRmMGENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTNdICAgZ2ZuOiAw
+MDAwNGYwYiAgbWZuOiAwMDAwNGYwYg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1M10g
+ICBnZm46IDAwMDA0ZjBjICBtZm46IDAwMDA0ZjBjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMyOjUzXSAgIGdmbjogMDAwMDRmMGQgIG1mbjogMDAwMDRmMGQNCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzI6NTNdICAgZ2ZuOiAwMDAwNGYwZSAgbWZuOiAwMDAwNGYwZQ0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMjo1M10gICBnZm46IDAwMDA0ZjBmICBtZm46IDAwMDA0ZjBm
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjUzXSAgIGdmbjogMDAwMDRmMTAgIG1mbjog
+MDAwMDRmMTANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTNdICAgZ2ZuOiAwMDAwNGYx
+MSAgbWZuOiAwMDAwNGYxMQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1M10gICBnZm46
+IDAwMDA0ZjEyICBtZm46IDAwMDA0ZjEyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjUz
+XSAgIGdmbjogMDAwMDRmMTMgIG1mbjogMDAwMDRmMTMNCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzI6NTNdICAgZ2ZuOiAwMDAwNGYxNCAgbWZuOiAwMDAwNGYxNA0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMjo1M10gICBnZm46IDAwMDA0ZjE1ICBtZm46IDAwMDA0ZjE1DQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjUzXSAgIGdmbjogMDAwMDRmMTYgIG1mbjogMDAwMDRm
+MTYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTNdICAgZ2ZuOiAwMDAwNGYxNyAgbWZu
+OiAwMDAwNGYxNw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1M10gICBnZm46IDAwMDA0
+ZjE4ICBtZm46IDAwMDA0ZjE4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjUzXSAgIGdm
+bjogMDAwMDRmMTkgIG1mbjogMDAwMDRmMTkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
+NTNdICAgZ2ZuOiAwMDAwNGYxYSAgbWZuOiAwMDAwNGYxYQ0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMjo1M10gICBnZm46IDAwMDA0ZjFiICBtZm46IDAwMDA0ZjFiDQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMyOjUzXSAgIGdmbjogMDAwMDRmMWMgIG1mbjogMDAwMDRmMWMNCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTNdICAgZ2ZuOiAwMDAwNGYxZCAgbWZuOiAwMDAw
+NGYxZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1M10gICBnZm46IDAwMDA0ZjFlICBt
+Zm46IDAwMDA0ZjFlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjUzXSAgIGdmbjogMDAw
+MDRmMWYgIG1mbjogMDAwMDRmMWYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTNdICAg
+Z2ZuOiAwMDAwNGYyMCAgbWZuOiAwMDAwNGYyMA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+Mjo1M10gICBnZm46IDAwMDA0ZjIxICBtZm46IDAwMDA0ZjIxDQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMyOjUzXSAgIGdmbjogMDAwMDRmMjIgIG1mbjogMDAwMDRmMjINCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzI6NTNdICAgZ2ZuOiAwMDAwNGYyMyAgbWZuOiAwMDAwNGYyMw0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1M10gICBnZm46IDAwMDA0ZjI0ICBtZm46IDAw
+MDA0ZjI0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjUzXSAgIGdmbjogMDAwMDRmMjUg
+IG1mbjogMDAwMDRmMjUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTNdICAgZ2ZuOiAw
+MDAwNGYyNiAgbWZuOiAwMDAwNGYyNg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1M10g
+ICBnZm46IDAwMDA0ZjI3ICBtZm46IDAwMDA0ZjI3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMyOjUzXSAgIGdmbjogMDAwMDRmMjggIG1mbjogMDAwMDRmMjgNCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzI6NTNdICAgZ2ZuOiAwMDAwNGYyOSAgbWZuOiAwMDAwNGYyOQ0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMjo1M10gICBnZm46IDAwMDA0ZjJhICBtZm46IDAwMDA0ZjJh
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjUzXSAgIGdmbjogMDAwMDRmMmIgIG1mbjog
+MDAwMDRmMmINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTNdICAgZ2ZuOiAwMDAwNGYy
+YyAgbWZuOiAwMDAwNGYyYw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1NF0gICBnZm46
+IDAwMDA0ZjJkICBtZm46IDAwMDA0ZjJkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU0
+XSAgIGdmbjogMDAwMDRmMmUgIG1mbjogMDAwMDRmMmUNCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzI6NTRdICAgZ2ZuOiAwMDAwNGYyZiAgbWZuOiAwMDAwNGYyZg0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMjo1NF0gICBnZm46IDAwMDA0ZjMwICBtZm46IDAwMDA0ZjMwDQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU0XSAgIGdmbjogMDAwMDRmMzEgIG1mbjogMDAwMDRm
+MzENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTRdICAgZ2ZuOiAwMDAwNGYzMiAgbWZu
+OiAwMDAwNGYzMg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1NF0gICBnZm46IDAwMDA0
+ZjMzICBtZm46IDAwMDA0ZjMzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU0XSAgIGdm
+bjogMDAwMDRmMzQgIG1mbjogMDAwMDRmMzQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
+NTRdICAgZ2ZuOiAwMDAwNGYzNSAgbWZuOiAwMDAwNGYzNQ0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMjo1NF0gICBnZm46IDAwMDA0ZjM2ICBtZm46IDAwMDA0ZjM2DQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMyOjU0XSAgIGdmbjogMDAwMDRmMzcgIG1mbjogMDAwMDRmMzcNCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTRdICAgZ2ZuOiAwMDAwNGYzOCAgbWZuOiAwMDAw
+NGYzOA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1NF0gICBnZm46IDAwMDA0ZjM5ICBt
+Zm46IDAwMDA0ZjM5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU0XSAgIGdmbjogMDAw
+MDRmM2EgIG1mbjogMDAwMDRmM2ENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTRdICAg
+Z2ZuOiAwMDAwNGYzYiAgbWZuOiAwMDAwNGYzYg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+Mjo1NF0gICBnZm46IDAwMDA0ZjNjICBtZm46IDAwMDA0ZjNjDQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMyOjU0XSAgIGdmbjogMDAwMDRmM2QgIG1mbjogMDAwMDRmM2QNCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzI6NTRdICAgZ2ZuOiAwMDAwNGYzZSAgbWZuOiAwMDAwNGYzZQ0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1NF0gICBnZm46IDAwMDA0ZjNmICBtZm46IDAw
+MDA0ZjNmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU0XSAgIGdmbjogMDAwMDRmNDAg
+IG1mbjogMDAwMDRmNDANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTRdICAgZ2ZuOiAw
+MDAwNGY0MSAgbWZuOiAwMDAwNGY0MQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1NF0g
+ICBnZm46IDAwMDA0ZjQyICBtZm46IDAwMDA0ZjQyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMyOjU0XSAgIGdmbjogMDAwMDRmNDMgIG1mbjogMDAwMDRmNDMNCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzI6NTRdICAgZ2ZuOiAwMDAwNGY0NCAgbWZuOiAwMDAwNGY0NA0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMjo1NF0gICBnZm46IDAwMDA0ZjQ1ICBtZm46IDAwMDA0ZjQ1
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU0XSAgIGdmbjogMDAwMDRmNDYgIG1mbjog
+MDAwMDRmNDYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTRdICAgZ2ZuOiAwMDAwNGY0
+NyAgbWZuOiAwMDAwNGY0Nw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1NF0gICBnZm46
+IDAwMDA0ZjQ4ICBtZm46IDAwMDA0ZjQ4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU0
+XSAgIGdmbjogMDAwMDRmNDkgIG1mbjogMDAwMDRmNDkNCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzI6NTRdICAgZ2ZuOiAwMDAwNGY0YSAgbWZuOiAwMDAwNGY0YQ0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMjo1NF0gICBnZm46IDAwMDA0ZjRiICBtZm46IDAwMDA0ZjRiDQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU0XSAgIGdmbjogMDAwMDRmNGMgIG1mbjogMDAwMDRm
+NGMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTRdICAgZ2ZuOiAwMDAwNGY0ZCAgbWZu
+OiAwMDAwNGY0ZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1NF0gICBnZm46IDAwMDA0
+ZjRlICBtZm46IDAwMDA0ZjRlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU0XSAgIGdm
+bjogMDAwMDRmNGYgIG1mbjogMDAwMDRmNGYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
+NTRdICAgZ2ZuOiAwMDAwNGY1MCAgbWZuOiAwMDAwNGY1MA0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMjo1NF0gICBnZm46IDAwMDA0ZjUxICBtZm46IDAwMDA0ZjUxDQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMyOjU0XSAgIGdmbjogMDAwMDRmNTIgIG1mbjogMDAwMDRmNTINCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTRdICAgZ2ZuOiAwMDAwNGY1MyAgbWZuOiAwMDAw
+NGY1Mw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1NF0gICBnZm46IDAwMDA0ZjU0ICBt
+Zm46IDAwMDA0ZjU0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU0XSAgIGdmbjogMDAw
+MDRmNTUgIG1mbjogMDAwMDRmNTUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTRdICAg
+Z2ZuOiAwMDAwNGY1NiAgbWZuOiAwMDAwNGY1Ng0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+Mjo1NF0gICBnZm46IDAwMDA0ZjU3ICBtZm46IDAwMDA0ZjU3DQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMyOjU0XSAgIGdmbjogMDAwMDRmNTggIG1mbjogMDAwMDRmNTgNCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzI6NTRdICAgZ2ZuOiAwMDAwNGY1OSAgbWZuOiAwMDAwNGY1OQ0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1NF0gICBnZm46IDAwMDA0ZjVhICBtZm46IDAw
+MDA0ZjVhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU0XSAgIGdmbjogMDAwMDRmNWIg
+IG1mbjogMDAwMDRmNWINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTRdICAgZ2ZuOiAw
+MDAwNGY1YyAgbWZuOiAwMDAwNGY1Yw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1NF0g
+ICBnZm46IDAwMDA0ZjVkICBtZm46IDAwMDA0ZjVkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMyOjU0XSAgIGdmbjogMDAwMDRmNWUgIG1mbjogMDAwMDRmNWUNCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzI6NTRdICAgZ2ZuOiAwMDAwNGY1ZiAgbWZuOiAwMDAwNGY1Zg0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMjo1NF0gICBnZm46IDAwMDA0ZjYwICBtZm46IDAwMDA0ZjYw
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU0XSAgIGdmbjogMDAwMDRmNjEgIG1mbjog
+MDAwMDRmNjENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTRdICAgZ2ZuOiAwMDAwNGY2
+MiAgbWZuOiAwMDAwNGY2Mg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1NF0gICBnZm46
+IDAwMDA0ZjYzICBtZm46IDAwMDA0ZjYzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU0
+XSAgIGdmbjogMDAwMDRmNjQgIG1mbjogMDAwMDRmNjQNCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzI6NTRdICAgZ2ZuOiAwMDAwNGY2NSAgbWZuOiAwMDAwNGY2NQ0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMjo1NF0gICBnZm46IDAwMDA0ZjY2ICBtZm46IDAwMDA0ZjY2DQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU0XSAgIGdmbjogMDAwMDRmNjcgIG1mbjogMDAwMDRm
+NjcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTRdICAgZ2ZuOiAwMDAwNGY2OCAgbWZu
+OiAwMDAwNGY2OA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1NF0gICBnZm46IDAwMDA0
+ZjY5ICBtZm46IDAwMDA0ZjY5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU0XSAgIGdm
+bjogMDAwMDRmNmEgIG1mbjogMDAwMDRmNmENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
+NTRdICAgZ2ZuOiAwMDAwNGY2YiAgbWZuOiAwMDAwNGY2Yg0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMjo1NF0gICBnZm46IDAwMDA0ZjZjICBtZm46IDAwMDA0ZjZjDQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMyOjU1XSAgIGdmbjogMDAwMDRmNmQgIG1mbjogMDAwMDRmNmQNCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTVdICAgZ2ZuOiAwMDAwNGY2ZSAgbWZuOiAwMDAw
+NGY2ZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1NV0gICBnZm46IDAwMDA0ZjZmICBt
+Zm46IDAwMDA0ZjZmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU1XSAgIGdmbjogMDAw
+MDRmNzAgIG1mbjogMDAwMDRmNzANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTVdICAg
+Z2ZuOiAwMDAwNGY3MSAgbWZuOiAwMDAwNGY3MQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+Mjo1NV0gICBnZm46IDAwMDA0ZjcyICBtZm46IDAwMDA0ZjcyDQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMyOjU1XSAgIGdmbjogMDAwMDRmNzMgIG1mbjogMDAwMDRmNzMNCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzI6NTVdICAgZ2ZuOiAwMDAwNGY3NCAgbWZuOiAwMDAwNGY3NA0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1NV0gICBnZm46IDAwMDA0Zjc1ICBtZm46IDAw
+MDA0Zjc1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU1XSAgIGdmbjogMDAwMDRmNzYg
+IG1mbjogMDAwMDRmNzYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTVdICAgZ2ZuOiAw
+MDAwNGY3NyAgbWZuOiAwMDAwNGY3Nw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1NV0g
+ICBnZm46IDAwMDA0Zjc4ICBtZm46IDAwMDA0Zjc4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMyOjU1XSAgIGdmbjogMDAwMDRmNzkgIG1mbjogMDAwMDRmNzkNCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzI6NTVdICAgZ2ZuOiAwMDAwNGY3YSAgbWZuOiAwMDAwNGY3YQ0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMjo1NV0gICBnZm46IDAwMDA0ZjdiICBtZm46IDAwMDA0Zjdi
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU1XSAgIGdmbjogMDAwMDRmN2MgIG1mbjog
+MDAwMDRmN2MNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTVdICAgZ2ZuOiAwMDAwNGY3
+ZCAgbWZuOiAwMDAwNGY3ZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1NV0gICBnZm46
+IDAwMDA0ZjdlICBtZm46IDAwMDA0ZjdlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU1
+XSAgIGdmbjogMDAwMDRmN2YgIG1mbjogMDAwMDRmN2YNCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzI6NTVdICAgZ2ZuOiAwMDAwNGY4MCAgbWZuOiAwMDAwNGY4MA0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMjo1NV0gICBnZm46IDAwMDA0ZjgxICBtZm46IDAwMDA0ZjgxDQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU1XSAgIGdmbjogMDAwMDRmODIgIG1mbjogMDAwMDRm
+ODINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTVdICAgZ2ZuOiAwMDAwNGY4MyAgbWZu
+OiAwMDAwNGY4Mw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1NV0gICBnZm46IDAwMDA0
+Zjg0ICBtZm46IDAwMDA0Zjg0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU1XSAgIGdm
+bjogMDAwMDRmODUgIG1mbjogMDAwMDRmODUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
+NTVdICAgZ2ZuOiAwMDAwNGY4NiAgbWZuOiAwMDAwNGY4Ng0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMjo1NV0gICBnZm46IDAwMDA0Zjg3ICBtZm46IDAwMDA0Zjg3DQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMyOjU1XSAgIGdmbjogMDAwMDRmODggIG1mbjogMDAwMDRmODgNCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTVdICAgZ2ZuOiAwMDAwNGY4OSAgbWZuOiAwMDAw
+NGY4OQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1NV0gICBnZm46IDAwMDA0ZjhhICBt
+Zm46IDAwMDA0ZjhhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU1XSAgIGdmbjogMDAw
+MDRmOGIgIG1mbjogMDAwMDRmOGINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTVdICAg
+Z2ZuOiAwMDAwNGY4YyAgbWZuOiAwMDAwNGY4Yw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+Mjo1NV0gICBnZm46IDAwMDA0ZjhkICBtZm46IDAwMDA0ZjhkDQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMyOjU1XSAgIGdmbjogMDAwMDRmOGUgIG1mbjogMDAwMDRmOGUNCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzI6NTVdICAgZ2ZuOiAwMDAwNGY4ZiAgbWZuOiAwMDAwNGY4Zg0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1NV0gICBnZm46IDAwMDA0ZjkwICBtZm46IDAw
+MDA0ZjkwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU1XSAgIGdmbjogMDAwMDRmOTEg
+IG1mbjogMDAwMDRmOTENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTVdICAgZ2ZuOiAw
+MDAwNGY5MiAgbWZuOiAwMDAwNGY5Mg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1NV0g
+ICBnZm46IDAwMDA0ZjkzICBtZm46IDAwMDA0ZjkzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMyOjU1XSAgIGdmbjogMDAwMDRmOTQgIG1mbjogMDAwMDRmOTQNCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzI6NTVdICAgZ2ZuOiAwMDAwNGY5NSAgbWZuOiAwMDAwNGY5NQ0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMjo1NV0gICBnZm46IDAwMDA0Zjk2ICBtZm46IDAwMDA0Zjk2
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU1XSAgIGdmbjogMDAwMDRmOTcgIG1mbjog
+MDAwMDRmOTcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTVdICAgZ2ZuOiAwMDAwNGY5
+OCAgbWZuOiAwMDAwNGY5OA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1NV0gICBnZm46
+IDAwMDA0Zjk5ICBtZm46IDAwMDA0Zjk5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU1
+XSAgIGdmbjogMDAwMDRmOWEgIG1mbjogMDAwMDRmOWENCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzI6NTVdICAgZ2ZuOiAwMDAwNGY5YiAgbWZuOiAwMDAwNGY5Yg0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMjo1NV0gICBnZm46IDAwMDA0ZjljICBtZm46IDAwMDA0ZjljDQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU1XSAgIGdmbjogMDAwMDRmOWQgIG1mbjogMDAwMDRm
+OWQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTVdICAgZ2ZuOiAwMDAwNGY5ZSAgbWZu
+OiAwMDAwNGY5ZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1NV0gICBnZm46IDAwMDA0
+ZjlmICBtZm46IDAwMDA0ZjlmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU1XSAgIGdm
+bjogMDAwMDRmYTAgIG1mbjogMDAwMDRmYTANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
+NTVdICAgZ2ZuOiAwMDAwNGZhMSAgbWZuOiAwMDAwNGZhMQ0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMjo1NV0gICBnZm46IDAwMDA0ZmEyICBtZm46IDAwMDA0ZmEyDQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMyOjU1XSAgIGdmbjogMDAwMDRmYTMgIG1mbjogMDAwMDRmYTMNCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTVdICAgZ2ZuOiAwMDAwNGZhNCAgbWZuOiAwMDAw
+NGZhNA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1NV0gICBnZm46IDAwMDA0ZmE1ICBt
+Zm46IDAwMDA0ZmE1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU1XSAgIGdmbjogMDAw
+MDRmYTYgIG1mbjogMDAwMDRmYTYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTVdICAg
+Z2ZuOiAwMDAwNGZhNyAgbWZuOiAwMDAwNGZhNw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+Mjo1NV0gICBnZm46IDAwMDA0ZmE4ICBtZm46IDAwMDA0ZmE4DQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMyOjU1XSAgIGdmbjogMDAwMDRmYTkgIG1mbjogMDAwMDRmYTkNCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzI6NTVdICAgZ2ZuOiAwMDAwNGZhYSAgbWZuOiAwMDAwNGZhYQ0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1NV0gICBnZm46IDAwMDA0ZmFiICBtZm46IDAw
+MDA0ZmFiDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU1XSAgIGdmbjogMDAwMDRmYWMg
+IG1mbjogMDAwMDRmYWMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTVdICAgZ2ZuOiAw
+MDAwNGZhZCAgbWZuOiAwMDAwNGZhZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1Nl0g
+ICBnZm46IDAwMDA0ZmFlICBtZm46IDAwMDA0ZmFlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMyOjU2XSAgIGdmbjogMDAwMDRmYWYgIG1mbjogMDAwMDRmYWYNCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzI6NTZdICAgZ2ZuOiAwMDAwNGZiMCAgbWZuOiAwMDAwNGZiMA0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMjo1Nl0gICBnZm46IDAwMDA0ZmIxICBtZm46IDAwMDA0ZmIx
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU2XSAgIGdmbjogMDAwMDRmYjIgIG1mbjog
+MDAwMDRmYjINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTZdICAgZ2ZuOiAwMDAwNGZi
+MyAgbWZuOiAwMDAwNGZiMw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1Nl0gICBnZm46
+IDAwMDA0ZmI0ICBtZm46IDAwMDA0ZmI0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU2
+XSAgIGdmbjogMDAwMDRmYjUgIG1mbjogMDAwMDRmYjUNCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzI6NTZdICAgZ2ZuOiAwMDAwNGZiNiAgbWZuOiAwMDAwNGZiNg0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMjo1Nl0gICBnZm46IDAwMDA0ZmI3ICBtZm46IDAwMDA0ZmI3DQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU2XSAgIGdmbjogMDAwMDRmYjggIG1mbjogMDAwMDRm
+YjgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTZdICAgZ2ZuOiAwMDAwNGZiOSAgbWZu
+OiAwMDAwNGZiOQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1Nl0gICBnZm46IDAwMDA0
+ZmJhICBtZm46IDAwMDA0ZmJhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU2XSAgIGdm
+bjogMDAwMDRmYmIgIG1mbjogMDAwMDRmYmINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
+NTZdICAgZ2ZuOiAwMDAwNGZiYyAgbWZuOiAwMDAwNGZiYw0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMjo1Nl0gICBnZm46IDAwMDA0ZmJkICBtZm46IDAwMDA0ZmJkDQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMyOjU2XSAgIGdmbjogMDAwMDRmYmUgIG1mbjogMDAwMDRmYmUNCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTZdICAgZ2ZuOiAwMDAwNGZiZiAgbWZuOiAwMDAw
+NGZiZg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1Nl0gICBnZm46IDAwMDA0ZmMwICBt
+Zm46IDAwMDA0ZmMwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU2XSAgIGdmbjogMDAw
+MDRmYzEgIG1mbjogMDAwMDRmYzENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTZdICAg
+Z2ZuOiAwMDAwNGZjMiAgbWZuOiAwMDAwNGZjMg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+Mjo1Nl0gICBnZm46IDAwMDA0ZmMzICBtZm46IDAwMDA0ZmMzDQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMyOjU2XSAgIGdmbjogMDAwMDRmYzQgIG1mbjogMDAwMDRmYzQNCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzI6NTZdICAgZ2ZuOiAwMDAwNGZjNSAgbWZuOiAwMDAwNGZjNQ0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1Nl0gICBnZm46IDAwMDA0ZmM2ICBtZm46IDAw
+MDA0ZmM2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU2XSAgIGdmbjogMDAwMDRmYzcg
+IG1mbjogMDAwMDRmYzcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTZdICAgZ2ZuOiAw
+MDAwNGZjOCAgbWZuOiAwMDAwNGZjOA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1Nl0g
+ICBnZm46IDAwMDA0ZmM5ICBtZm46IDAwMDA0ZmM5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMyOjU2XSAgIGdmbjogMDAwMDRmY2EgIG1mbjogMDAwMDRmY2ENCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzI6NTZdICAgZ2ZuOiAwMDAwNGZjYiAgbWZuOiAwMDAwNGZjYg0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMjo1Nl0gICBnZm46IDAwMDA0ZmNjICBtZm46IDAwMDA0ZmNj
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU2XSAgIGdmbjogMDAwMDRmY2QgIG1mbjog
+MDAwMDRmY2QNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTZdICAgZ2ZuOiAwMDAwNGZj
+ZSAgbWZuOiAwMDAwNGZjZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1Nl0gICBnZm46
+IDAwMDA0ZmNmICBtZm46IDAwMDA0ZmNmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU2
+XSAgIGdmbjogMDAwMDRmZDAgIG1mbjogMDAwMDRmZDANCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzI6NTZdICAgZ2ZuOiAwMDAwNGZkMSAgbWZuOiAwMDAwNGZkMQ0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMjo1Nl0gICBnZm46IDAwMDA0ZmQyICBtZm46IDAwMDA0ZmQyDQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU2XSAgIGdmbjogMDAwMDRmZDMgIG1mbjogMDAwMDRm
+ZDMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTZdICAgZ2ZuOiAwMDAwNGZkNCAgbWZu
+OiAwMDAwNGZkNA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1Nl0gICBnZm46IDAwMDA0
+ZmQ1ICBtZm46IDAwMDA0ZmQ1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU2XSAgIGdm
+bjogMDAwMDRmZDYgIG1mbjogMDAwMDRmZDYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
+NTZdICAgZ2ZuOiAwMDAwNGZkNyAgbWZuOiAwMDAwNGZkNw0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMjo1Nl0gICBnZm46IDAwMDA0ZmQ4ICBtZm46IDAwMDA0ZmQ4DQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMyOjU2XSAgIGdmbjogMDAwMDRmZDkgIG1mbjogMDAwMDRmZDkNCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTZdICAgZ2ZuOiAwMDAwNGZkYSAgbWZuOiAwMDAw
+NGZkYQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1Nl0gICBnZm46IDAwMDA0ZmRiICBt
+Zm46IDAwMDA0ZmRiDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU2XSAgIGdmbjogMDAw
+MDRmZGMgIG1mbjogMDAwMDRmZGMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTZdICAg
+Z2ZuOiAwMDAwNGZkZCAgbWZuOiAwMDAwNGZkZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+Mjo1Nl0gICBnZm46IDAwMDA0ZmRlICBtZm46IDAwMDA0ZmRlDQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMyOjU2XSAgIGdmbjogMDAwMDRmZGYgIG1mbjogMDAwMDRmZGYNCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzI6NTZdICAgZ2ZuOiAwMDAwNGZlMCAgbWZuOiAwMDAwNGZlMA0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1Nl0gICBnZm46IDAwMDA0ZmUxICBtZm46IDAw
+MDA0ZmUxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU2XSAgIGdmbjogMDAwMDRmZTIg
+IG1mbjogMDAwMDRmZTINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTZdICAgZ2ZuOiAw
+MDAwNGZlMyAgbWZuOiAwMDAwNGZlMw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1Nl0g
+ICBnZm46IDAwMDA0ZmU0ICBtZm46IDAwMDA0ZmU0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMyOjU2XSAgIGdmbjogMDAwMDRmZTUgIG1mbjogMDAwMDRmZTUNCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzI6NTZdICAgZ2ZuOiAwMDAwNGZlNiAgbWZuOiAwMDAwNGZlNg0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMjo1Nl0gICBnZm46IDAwMDA0ZmU3ICBtZm46IDAwMDA0ZmU3
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU2XSAgIGdmbjogMDAwMDRmZTggIG1mbjog
+MDAwMDRmZTgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTZdICAgZ2ZuOiAwMDAwNGZl
+OSAgbWZuOiAwMDAwNGZlOQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1Nl0gICBnZm46
+IDAwMDA0ZmVhICBtZm46IDAwMDA0ZmVhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU2
+XSAgIGdmbjogMDAwMDRmZWIgIG1mbjogMDAwMDRmZWINCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzI6NTZdICAgZ2ZuOiAwMDAwNGZlYyAgbWZuOiAwMDAwNGZlYw0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMjo1Nl0gICBnZm46IDAwMDA0ZmVkICBtZm46IDAwMDA0ZmVkDQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU3XSAgIGdmbjogMDAwMDRmZWUgIG1mbjogMDAwMDRm
+ZWUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTddICAgZ2ZuOiAwMDAwNGZlZiAgbWZu
+OiAwMDAwNGZlZg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1N10gICBnZm46IDAwMDA0
+ZmYwICBtZm46IDAwMDA0ZmYwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU3XSAgIGdm
+bjogMDAwMDRmZjEgIG1mbjogMDAwMDRmZjENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
+NTddICAgZ2ZuOiAwMDAwNGZmMiAgbWZuOiAwMDAwNGZmMg0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMjo1N10gICBnZm46IDAwMDA0ZmYzICBtZm46IDAwMDA0ZmYzDQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMyOjU3XSAgIGdmbjogMDAwMDRmZjQgIG1mbjogMDAwMDRmZjQNCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTddICAgZ2ZuOiAwMDAwNGZmNSAgbWZuOiAwMDAw
+NGZmNQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1N10gICBnZm46IDAwMDA0ZmY2ICBt
+Zm46IDAwMDA0ZmY2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU3XSAgIGdmbjogMDAw
+MDRmZjcgIG1mbjogMDAwMDRmZjcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTddICAg
+Z2ZuOiAwMDAwNGZmOCAgbWZuOiAwMDAwNGZmOA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+Mjo1N10gICBnZm46IDAwMDA0ZmY5ICBtZm46IDAwMDA0ZmY5DQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMyOjU3XSAgIGdmbjogMDAwMDRmZmEgIG1mbjogMDAwMDRmZmENCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzI6NTddICAgZ2ZuOiAwMDAwNGZmYiAgbWZuOiAwMDAwNGZmYg0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1N10gICBnZm46IDAwMDA0ZmZjICBtZm46IDAw
+MDA0ZmZjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU3XSAgIGdmbjogMDAwMDRmZmQg
+IG1mbjogMDAwMDRmZmQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTddICAgZ2ZuOiAw
+MDAwNGZmZSAgbWZuOiAwMDAwNGZmZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1N10g
+ICBnZm46IDAwMDA0ZmZmICBtZm46IDAwMDA0ZmZmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMyOjU3XSAgIGdmbjogMDAwMDUwMDAgIG1mbjogMDAwMDUwMDANCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzI6NTddICAgZ2ZuOiAwMDAwNTAwMSAgbWZuOiAwMDAwNTAwMQ0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMjo1N10gICBnZm46IDAwMDA1MDAyICBtZm46IDAwMDA1MDAy
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU3XSAgIGdmbjogMDAwMDUwMDMgIG1mbjog
+MDAwMDUwMDMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTddICAgZ2ZuOiAwMDAwNTAw
+NCAgbWZuOiAwMDAwNTAwNA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1N10gICBnZm46
+IDAwMDA1MDA1ICBtZm46IDAwMDA1MDA1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU3
+XSAgIGdmbjogMDAwMDUwMDYgIG1mbjogMDAwMDUwMDYNCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzI6NTddICAgZ2ZuOiAwMDAwNTAwNyAgbWZuOiAwMDAwNTAwNw0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMjo1N10gICBnZm46IDAwMDA1MDA4ICBtZm46IDAwMDA1MDA4DQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU3XSAgIGdmbjogMDAwMDUwMDkgIG1mbjogMDAwMDUw
+MDkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTddICAgZ2ZuOiAwMDAwNTAwYSAgbWZu
+OiAwMDAwNTAwYQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1N10gICBnZm46IDAwMDA1
+MDBiICBtZm46IDAwMDA1MDBiDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU3XSAgIGdm
+bjogMDAwMDUwMGMgIG1mbjogMDAwMDUwMGMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
+NTddICAgZ2ZuOiAwMDAwNTAwZCAgbWZuOiAwMDAwNTAwZA0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMjo1N10gICBnZm46IDAwMDA1MDBlICBtZm46IDAwMDA1MDBlDQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMyOjU3XSAgIGdmbjogMDAwMDUwMGYgIG1mbjogMDAwMDUwMGYNCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTddICAgZ2ZuOiAwMDAwNTAxMCAgbWZuOiAwMDAw
+NTAxMA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1N10gICBnZm46IDAwMDA1MDExICBt
+Zm46IDAwMDA1MDExDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU3XSAgIGdmbjogMDAw
+MDUwMTIgIG1mbjogMDAwMDUwMTINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTddICAg
+Z2ZuOiAwMDAwNTAxMyAgbWZuOiAwMDAwNTAxMw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+Mjo1N10gICBnZm46IDAwMDA1MDE0ICBtZm46IDAwMDA1MDE0DQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMyOjU3XSAgIGdmbjogMDAwMDUwMTUgIG1mbjogMDAwMDUwMTUNCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzI6NTddICAgZ2ZuOiAwMDAwNTAxNiAgbWZuOiAwMDAwNTAxNg0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1N10gICBnZm46IDAwMDA1MDE3ICBtZm46IDAw
+MDA1MDE3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU3XSAgIGdmbjogMDAwMDUwMTgg
+IG1mbjogMDAwMDUwMTgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTddICAgZ2ZuOiAw
+MDAwNTAxOSAgbWZuOiAwMDAwNTAxOQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1N10g
+ICBnZm46IDAwMDA1MDFhICBtZm46IDAwMDA1MDFhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMyOjU3XSAgIGdmbjogMDAwMDUwMWIgIG1mbjogMDAwMDUwMWINCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzI6NTddICAgZ2ZuOiAwMDAwNTAxYyAgbWZuOiAwMDAwNTAxYw0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMjo1N10gICBnZm46IDAwMDA1MDFkICBtZm46IDAwMDA1MDFk
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU3XSAgIGdmbjogMDAwMDUwMWUgIG1mbjog
+MDAwMDUwMWUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTddICAgZ2ZuOiAwMDAwNTAx
+ZiAgbWZuOiAwMDAwNTAxZg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1N10gICBnZm46
+IDAwMDA1MDIwICBtZm46IDAwMDA1MDIwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU3
+XSAgIGdmbjogMDAwMDUwMjEgIG1mbjogMDAwMDUwMjENCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzI6NTddICAgZ2ZuOiAwMDAwNTAyMiAgbWZuOiAwMDAwNTAyMg0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMjo1N10gICBnZm46IDAwMDA1MDIzICBtZm46IDAwMDA1MDIzDQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU3XSAgIGdmbjogMDAwMDUwMjQgIG1mbjogMDAwMDUw
+MjQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTddICAgZ2ZuOiAwMDAwNTAyNSAgbWZu
+OiAwMDAwNTAyNQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1N10gICBnZm46IDAwMDA1
+MDI2ICBtZm46IDAwMDA1MDI2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU3XSAgIGdm
+bjogMDAwMDUwMjcgIG1mbjogMDAwMDUwMjcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
+NTddICAgZ2ZuOiAwMDAwNTAyOCAgbWZuOiAwMDAwNTAyOA0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMjo1N10gICBnZm46IDAwMDA1MDI5ICBtZm46IDAwMDA1MDI5DQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMyOjU3XSAgIGdmbjogMDAwMDUwMmEgIG1mbjogMDAwMDUwMmENCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTddICAgZ2ZuOiAwMDAwNTAyYiAgbWZuOiAwMDAw
+NTAyYg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1N10gICBnZm46IDAwMDA1MDJjICBt
+Zm46IDAwMDA1MDJjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU3XSAgIGdmbjogMDAw
+MDUwMmQgIG1mbjogMDAwMDUwMmQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NThdICAg
+Z2ZuOiAwMDAwNTAyZSAgbWZuOiAwMDAwNTAyZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+Mjo1OF0gICBnZm46IDAwMDA1MDJmICBtZm46IDAwMDA1MDJmDQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMyOjU4XSAgIGdmbjogMDAwMDUwMzAgIG1mbjogMDAwMDUwMzANCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzI6NThdICAgZ2ZuOiAwMDAwNTAzMSAgbWZuOiAwMDAwNTAzMQ0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1OF0gICBnZm46IDAwMDA1MDMyICBtZm46IDAw
+MDA1MDMyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU4XSAgIGdmbjogMDAwMDUwMzMg
+IG1mbjogMDAwMDUwMzMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NThdICAgZ2ZuOiAw
+MDAwNTAzNCAgbWZuOiAwMDAwNTAzNA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1OF0g
+ICBnZm46IDAwMDA1MDM1ICBtZm46IDAwMDA1MDM1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMyOjU4XSAgIGdmbjogMDAwMDUwMzYgIG1mbjogMDAwMDUwMzYNCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzI6NThdICAgZ2ZuOiAwMDAwNTAzNyAgbWZuOiAwMDAwNTAzNw0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMjo1OF0gICBnZm46IDAwMDA1MDM4ICBtZm46IDAwMDA1MDM4
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU4XSAgIGdmbjogMDAwMDUwMzkgIG1mbjog
+MDAwMDUwMzkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NThdICAgZ2ZuOiAwMDAwNTAz
+YSAgbWZuOiAwMDAwNTAzYQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1OF0gICBnZm46
+IDAwMDA1MDNiICBtZm46IDAwMDA1MDNiDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU4
+XSAgIGdmbjogMDAwMDUwM2MgIG1mbjogMDAwMDUwM2MNCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzI6NThdICAgZ2ZuOiAwMDAwNTAzZCAgbWZuOiAwMDAwNTAzZA0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMjo1OF0gICBnZm46IDAwMDA1MDNlICBtZm46IDAwMDA1MDNlDQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU4XSAgIGdmbjogMDAwMDUwM2YgIG1mbjogMDAwMDUw
+M2YNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NThdICAgZ2ZuOiAwMDAwNTA0MCAgbWZu
+OiAwMDAwNTA0MA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1OF0gICBnZm46IDAwMDA1
+MDQxICBtZm46IDAwMDA1MDQxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU4XSAgIGdm
+bjogMDAwMDUwNDIgIG1mbjogMDAwMDUwNDINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
+NThdICAgZ2ZuOiAwMDAwNTA0MyAgbWZuOiAwMDAwNTA0Mw0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMjo1OF0gICBnZm46IDAwMDA1MDQ0ICBtZm46IDAwMDA1MDQ0DQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMyOjU4XSAgIGdmbjogMDAwMDUwNDUgIG1mbjogMDAwMDUwNDUNCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NThdICAgZ2ZuOiAwMDAwNTA0NiAgbWZuOiAwMDAw
+NTA0Ng0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1OF0gICBnZm46IDAwMDA1MDQ3ICBt
+Zm46IDAwMDA1MDQ3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU4XSAgIGdmbjogMDAw
+MDUwNDggIG1mbjogMDAwMDUwNDgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NThdICAg
+Z2ZuOiAwMDAwNTA0OSAgbWZuOiAwMDAwNTA0OQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+Mjo1OF0gICBnZm46IDAwMDA1MDRhICBtZm46IDAwMDA1MDRhDQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMyOjU4XSAgIGdmbjogMDAwMDUwNGIgIG1mbjogMDAwMDUwNGINCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzI6NThdICAgZ2ZuOiAwMDAwNTA0YyAgbWZuOiAwMDAwNTA0Yw0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1OF0gICBnZm46IDAwMDA1MDRkICBtZm46IDAw
+MDA1MDRkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU4XSAgIGdmbjogMDAwMDUwNGUg
+IG1mbjogMDAwMDUwNGUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NThdICAgZ2ZuOiAw
+MDAwNTA0ZiAgbWZuOiAwMDAwNTA0Zg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1OF0g
+ICBnZm46IDAwMDA1MDUwICBtZm46IDAwMDA1MDUwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMyOjU4XSAgIGdmbjogMDAwMDUwNTEgIG1mbjogMDAwMDUwNTENCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzI6NThdICAgZ2ZuOiAwMDAwNTA1MiAgbWZuOiAwMDAwNTA1Mg0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMjo1OF0gICBnZm46IDAwMDA1MDUzICBtZm46IDAwMDA1MDUz
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU4XSAgIGdmbjogMDAwMDUwNTQgIG1mbjog
+MDAwMDUwNTQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NThdICAgZ2ZuOiAwMDAwNTA1
+NSAgbWZuOiAwMDAwNTA1NQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1OF0gICBnZm46
+IDAwMDA1MDU2ICBtZm46IDAwMDA1MDU2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU4
+XSAgIGdmbjogMDAwMDUwNTcgIG1mbjogMDAwMDUwNTcNCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzI6NThdICAgZ2ZuOiAwMDAwNTA1OCAgbWZuOiAwMDAwNTA1OA0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMjo1OF0gICBnZm46IDAwMDA1MDU5ICBtZm46IDAwMDA1MDU5DQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU4XSAgIGdmbjogMDAwMDUwNWEgIG1mbjogMDAwMDUw
+NWENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NThdICAgZ2ZuOiAwMDAwNTA1YiAgbWZu
+OiAwMDAwNTA1Yg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1OF0gICBnZm46IDAwMDA1
+MDVjICBtZm46IDAwMDA1MDVjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU4XSAgIGdm
+bjogMDAwMDUwNWQgIG1mbjogMDAwMDUwNWQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
+NThdICAgZ2ZuOiAwMDAwNTA1ZSAgbWZuOiAwMDAwNTA1ZQ0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMjo1OF0gICBnZm46IDAwMDA1MDVmICBtZm46IDAwMDA1MDVmDQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMyOjU4XSAgIGdmbjogMDAwMDUwNjAgIG1mbjogMDAwMDUwNjANCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NThdICAgZ2ZuOiAwMDAwNTA2MSAgbWZuOiAwMDAw
+NTA2MQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1OF0gICBnZm46IDAwMDA1MDYyICBt
+Zm46IDAwMDA1MDYyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU4XSAgIGdmbjogMDAw
+MDUwNjMgIG1mbjogMDAwMDUwNjMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NThdICAg
+Z2ZuOiAwMDAwNTA2NCAgbWZuOiAwMDAwNTA2NA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+Mjo1OF0gICBnZm46IDAwMDA1MDY1ICBtZm46IDAwMDA1MDY1DQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMyOjU4XSAgIGdmbjogMDAwMDUwNjYgIG1mbjogMDAwMDUwNjYNCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzI6NThdICAgZ2ZuOiAwMDAwNTA2NyAgbWZuOiAwMDAwNTA2Nw0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1OF0gICBnZm46IDAwMDA1MDY4ICBtZm46IDAw
+MDA1MDY4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU4XSAgIGdmbjogMDAwMDUwNjkg
+IG1mbjogMDAwMDUwNjkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NThdICAgZ2ZuOiAw
+MDAwNTA2YSAgbWZuOiAwMDAwNTA2YQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1OF0g
+ICBnZm46IDAwMDA1MDZiICBtZm46IDAwMDA1MDZiDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMyOjU4XSAgIGdmbjogMDAwMDUwNmMgIG1mbjogMDAwMDUwNmMNCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzI6NThdICAgZ2ZuOiAwMDAwNTA2ZCAgbWZuOiAwMDAwNTA2ZA0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMjo1OV0gICBnZm46IDAwMDA1MDZlICBtZm46IDAwMDA1MDZl
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU5XSAgIGdmbjogMDAwMDUwNmYgIG1mbjog
+MDAwMDUwNmYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTldICAgZ2ZuOiAwMDAwNTA3
+MCAgbWZuOiAwMDAwNTA3MA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1OV0gICBnZm46
+IDAwMDA1MDcxICBtZm46IDAwMDA1MDcxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU5
+XSAgIGdmbjogMDAwMDUwNzIgIG1mbjogMDAwMDUwNzINCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzI6NTldICAgZ2ZuOiAwMDAwNTA3MyAgbWZuOiAwMDAwNTA3Mw0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMjo1OV0gICBnZm46IDAwMDA1MDc0ICBtZm46IDAwMDA1MDc0DQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU5XSAgIGdmbjogMDAwMDUwNzUgIG1mbjogMDAwMDUw
+NzUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTldICAgZ2ZuOiAwMDAwNTA3NiAgbWZu
+OiAwMDAwNTA3Ng0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1OV0gICBnZm46IDAwMDA1
+MDc3ICBtZm46IDAwMDA1MDc3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU5XSAgIGdm
+bjogMDAwMDUwNzggIG1mbjogMDAwMDUwNzgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
+NTldICAgZ2ZuOiAwMDAwNTA3OSAgbWZuOiAwMDAwNTA3OQ0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMjo1OV0gICBnZm46IDAwMDA1MDdhICBtZm46IDAwMDA1MDdhDQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMyOjU5XSAgIGdmbjogMDAwMDUwN2IgIG1mbjogMDAwMDUwN2INCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTldICAgZ2ZuOiAwMDAwNTA3YyAgbWZuOiAwMDAw
+NTA3Yw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1OV0gICBnZm46IDAwMDA1MDdkICBt
+Zm46IDAwMDA1MDdkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU5XSAgIGdmbjogMDAw
+MDUwN2UgIG1mbjogMDAwMDUwN2UNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTldICAg
+Z2ZuOiAwMDAwNTA3ZiAgbWZuOiAwMDAwNTA3Zg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+Mjo1OV0gICBnZm46IDAwMDA1MDgwICBtZm46IDAwMDA1MDgwDQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMyOjU5XSAgIGdmbjogMDAwMDUwODEgIG1mbjogMDAwMDUwODENCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzI6NTldICAgZ2ZuOiAwMDAwNTA4MiAgbWZuOiAwMDAwNTA4Mg0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1OV0gICBnZm46IDAwMDA1MDgzICBtZm46IDAw
+MDA1MDgzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU5XSAgIGdmbjogMDAwMDUwODQg
+IG1mbjogMDAwMDUwODQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTldICAgZ2ZuOiAw
+MDAwNTA4NSAgbWZuOiAwMDAwNTA4NQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1OV0g
+ICBnZm46IDAwMDA1MDg2ICBtZm46IDAwMDA1MDg2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMyOjU5XSAgIGdmbjogMDAwMDUwODcgIG1mbjogMDAwMDUwODcNCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzI6NTldICAgZ2ZuOiAwMDAwNTA4OCAgbWZuOiAwMDAwNTA4OA0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMjo1OV0gICBnZm46IDAwMDA1MDg5ICBtZm46IDAwMDA1MDg5
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU5XSAgIGdmbjogMDAwMDUwOGEgIG1mbjog
+MDAwMDUwOGENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTldICAgZ2ZuOiAwMDAwNTA4
+YiAgbWZuOiAwMDAwNTA4Yg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1OV0gICBnZm46
+IDAwMDA1MDhjICBtZm46IDAwMDA1MDhjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU5
+XSAgIGdmbjogMDAwMDUwOGQgIG1mbjogMDAwMDUwOGQNCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzI6NTldICAgZ2ZuOiAwMDAwNTA4ZSAgbWZuOiAwMDAwNTA4ZQ0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMjo1OV0gICBnZm46IDAwMDA1MDhmICBtZm46IDAwMDA1MDhmDQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU5XSAgIGdmbjogMDAwMDUwOTAgIG1mbjogMDAwMDUw
+OTANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTldICAgZ2ZuOiAwMDAwNTA5MSAgbWZu
+OiAwMDAwNTA5MQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1OV0gICBnZm46IDAwMDA1
+MDkyICBtZm46IDAwMDA1MDkyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU5XSAgIGdm
+bjogMDAwMDUwOTMgIG1mbjogMDAwMDUwOTMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
+NTldICAgZ2ZuOiAwMDAwNTA5NCAgbWZuOiAwMDAwNTA5NA0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMjo1OV0gICBnZm46IDAwMDA1MDk1ICBtZm46IDAwMDA1MDk1DQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMyOjU5XSAgIGdmbjogMDAwMDUwOTYgIG1mbjogMDAwMDUwOTYNCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTldICAgZ2ZuOiAwMDAwNTA5NyAgbWZuOiAwMDAw
+NTA5Nw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1OV0gICBnZm46IDAwMDA1MDk4ICBt
+Zm46IDAwMDA1MDk4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU5XSAgIGdmbjogMDAw
+MDUwOTkgIG1mbjogMDAwMDUwOTkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTldICAg
+Z2ZuOiAwMDAwNTA5YSAgbWZuOiAwMDAwNTA5YQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+Mjo1OV0gICBnZm46IDAwMDA1MDliICBtZm46IDAwMDA1MDliDQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMyOjU5XSAgIGdmbjogMDAwMDUwOWMgIG1mbjogMDAwMDUwOWMNCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzI6NTldICAgZ2ZuOiAwMDAwNTA5ZCAgbWZuOiAwMDAwNTA5ZA0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1OV0gICBnZm46IDAwMDA1MDllICBtZm46IDAw
+MDA1MDllDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU5XSAgIGdmbjogMDAwMDUwOWYg
+IG1mbjogMDAwMDUwOWYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTldICAgZ2ZuOiAw
+MDAwNTBhMCAgbWZuOiAwMDAwNTBhMA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1OV0g
+ICBnZm46IDAwMDA1MGExICBtZm46IDAwMDA1MGExDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMyOjU5XSAgIGdmbjogMDAwMDUwYTIgIG1mbjogMDAwMDUwYTINCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzI6NTldICAgZ2ZuOiAwMDAwNTBhMyAgbWZuOiAwMDAwNTBhMw0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMjo1OV0gICBnZm46IDAwMDA1MGE0ICBtZm46IDAwMDA1MGE0
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU5XSAgIGdmbjogMDAwMDUwYTUgIG1mbjog
+MDAwMDUwYTUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTldICAgZ2ZuOiAwMDAwNTBh
+NiAgbWZuOiAwMDAwNTBhNg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1OV0gICBnZm46
+IDAwMDA1MGE3ICBtZm46IDAwMDA1MGE3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU5
+XSAgIGdmbjogMDAwMDUwYTggIG1mbjogMDAwMDUwYTgNCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzI6NTldICAgZ2ZuOiAwMDAwNTBhOSAgbWZuOiAwMDAwNTBhOQ0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMjo1OV0gICBnZm46IDAwMDA1MGFhICBtZm46IDAwMDA1MGFhDQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU5XSAgIGdmbjogMDAwMDUwYWIgIG1mbjogMDAwMDUw
+YWINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTldICAgZ2ZuOiAwMDAwNTBhYyAgbWZu
+OiAwMDAwNTBhYw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1OV0gICBnZm46IDAwMDA1
+MGFkICBtZm46IDAwMDA1MGFkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjAwXSAgIGdm
+bjogMDAwMDUwYWUgIG1mbjogMDAwMDUwYWUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6
+MDBdICAgZ2ZuOiAwMDAwNTBhZiAgbWZuOiAwMDAwNTBhZg0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMzowMF0gICBnZm46IDAwMDA1MGIwICBtZm46IDAwMDA1MGIwDQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMzOjAwXSAgIGdmbjogMDAwMDUwYjEgIG1mbjogMDAwMDUwYjENCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDBdICAgZ2ZuOiAwMDAwNTBiMiAgbWZuOiAwMDAw
+NTBiMg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowMF0gICBnZm46IDAwMDA1MGIzICBt
+Zm46IDAwMDA1MGIzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjAwXSAgIGdmbjogMDAw
+MDUwYjQgIG1mbjogMDAwMDUwYjQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDBdICAg
+Z2ZuOiAwMDAwNTBiNSAgbWZuOiAwMDAwNTBiNQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+MzowMF0gICBnZm46IDAwMDA1MGI2ICBtZm46IDAwMDA1MGI2DQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMzOjAwXSAgIGdmbjogMDAwMDUwYjcgIG1mbjogMDAwMDUwYjcNCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzM6MDBdICAgZ2ZuOiAwMDAwNTBiOCAgbWZuOiAwMDAwNTBiOA0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowMF0gICBnZm46IDAwMDA1MGI5ICBtZm46IDAw
+MDA1MGI5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjAwXSAgIGdmbjogMDAwMDUwYmEg
+IG1mbjogMDAwMDUwYmENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDBdICAgZ2ZuOiAw
+MDAwNTBiYiAgbWZuOiAwMDAwNTBiYg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowMF0g
+ICBnZm46IDAwMDA1MGJjICBtZm46IDAwMDA1MGJjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMzOjAwXSAgIGdmbjogMDAwMDUwYmQgIG1mbjogMDAwMDUwYmQNCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzM6MDBdICAgZ2ZuOiAwMDAwNTBiZSAgbWZuOiAwMDAwNTBiZQ0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMzowMF0gICBnZm46IDAwMDA1MGJmICBtZm46IDAwMDA1MGJm
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjAwXSAgIGdmbjogMDAwMDUwYzAgIG1mbjog
+MDAwMDUwYzANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDBdICAgZ2ZuOiAwMDAwNTBj
+MSAgbWZuOiAwMDAwNTBjMQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowMF0gICBnZm46
+IDAwMDA1MGMyICBtZm46IDAwMDA1MGMyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjAw
+XSAgIGdmbjogMDAwMDUwYzMgIG1mbjogMDAwMDUwYzMNCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzM6MDBdICAgZ2ZuOiAwMDAwNTBjNCAgbWZuOiAwMDAwNTBjNA0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMzowMF0gICBnZm46IDAwMDA1MGM1ICBtZm46IDAwMDA1MGM1DQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMzOjAwXSAgIGdmbjogMDAwMDUwYzYgIG1mbjogMDAwMDUw
+YzYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDBdICAgZ2ZuOiAwMDAwNTBjNyAgbWZu
+OiAwMDAwNTBjNw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowMF0gICBnZm46IDAwMDA1
+MGM4ICBtZm46IDAwMDA1MGM4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjAwXSAgIGdm
+bjogMDAwMDUwYzkgIG1mbjogMDAwMDUwYzkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6
+MDBdICAgZ2ZuOiAwMDAwNTBjYSAgbWZuOiAwMDAwNTBjYQ0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMzowMF0gICBnZm46IDAwMDA1MGNiICBtZm46IDAwMDA1MGNiDQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMzOjAwXSAgIGdmbjogMDAwMDUwY2MgIG1mbjogMDAwMDUwY2MNCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDBdICAgZ2ZuOiAwMDAwNTBjZCAgbWZuOiAwMDAw
+NTBjZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowMF0gICBnZm46IDAwMDA1MGNlICBt
+Zm46IDAwMDA1MGNlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjAwXSAgIGdmbjogMDAw
+MDUwY2YgIG1mbjogMDAwMDUwY2YNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDBdICAg
+Z2ZuOiAwMDAwNTBkMCAgbWZuOiAwMDAwNTBkMA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+MzowMF0gICBnZm46IDAwMDA1MGQxICBtZm46IDAwMDA1MGQxDQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMzOjAwXSAgIGdmbjogMDAwMDUwZDIgIG1mbjogMDAwMDUwZDINCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzM6MDBdICAgZ2ZuOiAwMDAwNTBkMyAgbWZuOiAwMDAwNTBkMw0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowMF0gICBnZm46IDAwMDA1MGQ0ICBtZm46IDAw
+MDA1MGQ0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjAwXSAgIGdmbjogMDAwMDUwZDUg
+IG1mbjogMDAwMDUwZDUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDBdICAgZ2ZuOiAw
+MDAwNTBkNiAgbWZuOiAwMDAwNTBkNg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowMF0g
+ICBnZm46IDAwMDA1MGQ3ICBtZm46IDAwMDA1MGQ3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMzOjAwXSAgIGdmbjogMDAwMDUwZDggIG1mbjogMDAwMDUwZDgNCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzM6MDBdICAgZ2ZuOiAwMDAwNTBkOSAgbWZuOiAwMDAwNTBkOQ0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMzowMF0gICBnZm46IDAwMDA1MGRhICBtZm46IDAwMDA1MGRh
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjAwXSAgIGdmbjogMDAwMDUwZGIgIG1mbjog
+MDAwMDUwZGINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDBdICAgZ2ZuOiAwMDAwNTBk
+YyAgbWZuOiAwMDAwNTBkYw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowMF0gICBnZm46
+IDAwMDA1MGRkICBtZm46IDAwMDA1MGRkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjAw
+XSAgIGdmbjogMDAwMDUwZGUgIG1mbjogMDAwMDUwZGUNCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzM6MDBdICAgZ2ZuOiAwMDAwNTBkZiAgbWZuOiAwMDAwNTBkZg0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMzowMF0gICBnZm46IDAwMDA1MGUwICBtZm46IDAwMDA1MGUwDQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMzOjAwXSAgIGdmbjogMDAwMDUwZTEgIG1mbjogMDAwMDUw
+ZTENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDBdICAgZ2ZuOiAwMDAwNTBlMiAgbWZu
+OiAwMDAwNTBlMg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowMF0gICBnZm46IDAwMDA1
+MGUzICBtZm46IDAwMDA1MGUzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjAwXSAgIGdm
+bjogMDAwMDUwZTQgIG1mbjogMDAwMDUwZTQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6
+MDBdICAgZ2ZuOiAwMDAwNTBlNSAgbWZuOiAwMDAwNTBlNQ0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMzowMF0gICBnZm46IDAwMDA1MGU2ICBtZm46IDAwMDA1MGU2DQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMzOjAwXSAgIGdmbjogMDAwMDUwZTcgIG1mbjogMDAwMDUwZTcNCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDBdICAgZ2ZuOiAwMDAwNTBlOCAgbWZuOiAwMDAw
+NTBlOA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowMF0gICBnZm46IDAwMDA1MGU5ICBt
+Zm46IDAwMDA1MGU5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjAwXSAgIGdmbjogMDAw
+MDUwZWEgIG1mbjogMDAwMDUwZWENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDBdICAg
+Z2ZuOiAwMDAwNTBlYiAgbWZuOiAwMDAwNTBlYg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+MzowMF0gICBnZm46IDAwMDA1MGVjICBtZm46IDAwMDA1MGVjDQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMzOjAwXSAgIGdmbjogMDAwMDUwZWQgIG1mbjogMDAwMDUwZWQNCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzM6MDFdICAgZ2ZuOiAwMDAwNTBlZSAgbWZuOiAwMDAwNTBlZQ0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowMV0gICBnZm46IDAwMDA1MGVmICBtZm46IDAw
+MDA1MGVmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjAxXSAgIGdmbjogMDAwMDUwZjAg
+IG1mbjogMDAwMDUwZjANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDFdICAgZ2ZuOiAw
+MDAwNTBmMSAgbWZuOiAwMDAwNTBmMQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowMV0g
+ICBnZm46IDAwMDA1MGYyICBtZm46IDAwMDA1MGYyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMzOjAxXSAgIGdmbjogMDAwMDUwZjMgIG1mbjogMDAwMDUwZjMNCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzM6MDFdICAgZ2ZuOiAwMDAwNTBmNCAgbWZuOiAwMDAwNTBmNA0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMzowMV0gICBnZm46IDAwMDA1MGY1ICBtZm46IDAwMDA1MGY1
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjAxXSAgIGdmbjogMDAwMDUwZjYgIG1mbjog
+MDAwMDUwZjYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDFdICAgZ2ZuOiAwMDAwNTBm
+NyAgbWZuOiAwMDAwNTBmNw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowMV0gICBnZm46
+IDAwMDA1MGY4ICBtZm46IDAwMDA1MGY4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjAx
+XSAgIGdmbjogMDAwMDUwZjkgIG1mbjogMDAwMDUwZjkNCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzM6MDFdICAgZ2ZuOiAwMDAwNTBmYSAgbWZuOiAwMDAwNTBmYQ0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMzowMV0gICBnZm46IDAwMDA1MGZiICBtZm46IDAwMDA1MGZiDQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMzOjAxXSAgIGdmbjogMDAwMDUwZmMgIG1mbjogMDAwMDUw
+ZmMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDFdICAgZ2ZuOiAwMDAwNTBmZCAgbWZu
+OiAwMDAwNTBmZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowMV0gICBnZm46IDAwMDA1
+MGZlICBtZm46IDAwMDA1MGZlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjAxXSAgIGdm
+bjogMDAwMDUwZmYgIG1mbjogMDAwMDUwZmYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6
+MDFdICAgZ2ZuOiAwMDAwNTEwMCAgbWZuOiAwMDAwNTEwMA0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMzowMV0gICBnZm46IDAwMDA1MTAxICBtZm46IDAwMDA1MTAxDQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMzOjAxXSAgIGdmbjogMDAwMDUxMDIgIG1mbjogMDAwMDUxMDINCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDFdICAgZ2ZuOiAwMDAwNTEwMyAgbWZuOiAwMDAw
+NTEwMw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowMV0gICBnZm46IDAwMDA1MTA0ICBt
+Zm46IDAwMDA1MTA0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjAxXSAgIGdmbjogMDAw
+MDUxMDUgIG1mbjogMDAwMDUxMDUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDFdICAg
+Z2ZuOiAwMDAwNTEwNiAgbWZuOiAwMDAwNTEwNg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+MzowMV0gICBnZm46IDAwMDA1MTA3ICBtZm46IDAwMDA1MTA3DQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMzOjAxXSAgIGdmbjogMDAwMDUxMDggIG1mbjogMDAwMDUxMDgNCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzM6MDFdICAgZ2ZuOiAwMDAwNTEwOSAgbWZuOiAwMDAwNTEwOQ0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowMV0gICBnZm46IDAwMDA1MTBhICBtZm46IDAw
+MDA1MTBhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjAxXSAgIGdmbjogMDAwMDUxMGIg
+IG1mbjogMDAwMDUxMGINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDFdICAgZ2ZuOiAw
+MDAwNTEwYyAgbWZuOiAwMDAwNTEwYw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowMV0g
+ICBnZm46IDAwMDA1MTBkICBtZm46IDAwMDA1MTBkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMzOjAxXSAgIGdmbjogMDAwMDUxMGUgIG1mbjogMDAwMDUxMGUNCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzM6MDFdICAgZ2ZuOiAwMDAwNTEwZiAgbWZuOiAwMDAwNTEwZg0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMzowMV0gICBnZm46IDAwMDA1MTEwICBtZm46IDAwMDA1MTEw
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjAxXSAgIGdmbjogMDAwMDUxMTEgIG1mbjog
+MDAwMDUxMTENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDFdICAgZ2ZuOiAwMDAwNTEx
+MiAgbWZuOiAwMDAwNTExMg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowMV0gICBnZm46
+IDAwMDA1MTEzICBtZm46IDAwMDA1MTEzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjAx
+XSAgIGdmbjogMDAwMDUxMTQgIG1mbjogMDAwMDUxMTQNCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzM6MDFdICAgZ2ZuOiAwMDAwNTExNSAgbWZuOiAwMDAwNTExNQ0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMzowMV0gICBnZm46IDAwMDA1MTE2ICBtZm46IDAwMDA1MTE2DQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMzOjAxXSAgIGdmbjogMDAwMDUxMTcgIG1mbjogMDAwMDUx
+MTcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDFdICAgZ2ZuOiAwMDAwNTExOCAgbWZu
+OiAwMDAwNTExOA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowMV0gICBnZm46IDAwMDA1
+MTE5ICBtZm46IDAwMDA1MTE5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjAxXSAgIGdm
+bjogMDAwMDUxMWEgIG1mbjogMDAwMDUxMWENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6
+MDFdICAgZ2ZuOiAwMDAwNTExYiAgbWZuOiAwMDAwNTExYg0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMzowMV0gICBnZm46IDAwMDA1MTFjICBtZm46IDAwMDA1MTFjDQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMzOjAxXSAgIGdmbjogMDAwMDUxMWQgIG1mbjogMDAwMDUxMWQNCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDFdICAgZ2ZuOiAwMDAwNTExZSAgbWZuOiAwMDAw
+NTExZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowMV0gICBnZm46IDAwMDA1MTFmICBt
+Zm46IDAwMDA1MTFmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjAxXSAgIGdmbjogMDAw
+MDUxMjAgIG1mbjogMDAwMDUxMjANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDFdICAg
+Z2ZuOiAwMDAwNTEyMSAgbWZuOiAwMDAwNTEyMQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+MzowMV0gICBnZm46IDAwMDA1MTIyICBtZm46IDAwMDA1MTIyDQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMzOjAxXSAgIGdmbjogMDAwMDUxMjMgIG1mbjogMDAwMDUxMjMNCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzM6MDFdICAgZ2ZuOiAwMDAwNTEyNCAgbWZuOiAwMDAwNTEyNA0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowMV0gICBnZm46IDAwMDA1MTI1ICBtZm46IDAw
+MDA1MTI1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjAxXSAgIGdmbjogMDAwMDUxMjYg
+IG1mbjogMDAwMDUxMjYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDFdICAgZ2ZuOiAw
+MDAwNTEyNyAgbWZuOiAwMDAwNTEyNw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowMV0g
+ICBnZm46IDAwMDA1MTI4ICBtZm46IDAwMDA1MTI4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMzOjAxXSAgIGdmbjogMDAwMDUxMjkgIG1mbjogMDAwMDUxMjkNCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzM6MDFdICAgZ2ZuOiAwMDAwNTEyYSAgbWZuOiAwMDAwNTEyYQ0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMzowMV0gICBnZm46IDAwMDA1MTJiICBtZm46IDAwMDA1MTJi
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjAxXSAgIGdmbjogMDAwMDUxMmMgIG1mbjog
+MDAwMDUxMmMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDFdICAgZ2ZuOiAwMDAwNTEy
+ZCAgbWZuOiAwMDAwNTEyZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowMl0gICBnZm46
+IDAwMDA1MTJlICBtZm46IDAwMDA1MTJlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjAy
+XSAgIGdmbjogMDAwMDUxMmYgIG1mbjogMDAwMDUxMmYNCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzM6MDJdICAgZ2ZuOiAwMDAwNTEzMCAgbWZuOiAwMDAwNTEzMA0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMzowMl0gICBnZm46IDAwMDA1MTMxICBtZm46IDAwMDA1MTMxDQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMzOjAyXSAgIGdmbjogMDAwMDUxMzIgIG1mbjogMDAwMDUx
+MzINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDJdICAgZ2ZuOiAwMDAwNTEzMyAgbWZu
+OiAwMDAwNTEzMw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowMl0gICBnZm46IDAwMDA1
+MTM0ICBtZm46IDAwMDA1MTM0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjAyXSAgIGdm
+bjogMDAwMDUxMzUgIG1mbjogMDAwMDUxMzUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6
+MDJdICAgZ2ZuOiAwMDAwNTEzNiAgbWZuOiAwMDAwNTEzNg0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMzowMl0gICBnZm46IDAwMDA1MTM3ICBtZm46IDAwMDA1MTM3DQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMzOjAyXSAgIGdmbjogMDAwMDUxMzggIG1mbjogMDAwMDUxMzgNCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDJdICAgZ2ZuOiAwMDAwNTEzOSAgbWZuOiAwMDAw
+NTEzOQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowMl0gICBnZm46IDAwMDA1MTNhICBt
+Zm46IDAwMDA1MTNhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjAyXSAgIGdmbjogMDAw
+MDUxM2IgIG1mbjogMDAwMDUxM2INCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDJdICAg
+Z2ZuOiAwMDAwNTEzYyAgbWZuOiAwMDAwNTEzYw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+MzowMl0gICBnZm46IDAwMDA1MTNkICBtZm46IDAwMDA1MTNkDQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMzOjAyXSAgIGdmbjogMDAwMDUxM2UgIG1mbjogMDAwMDUxM2UNCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzM6MDJdICAgZ2ZuOiAwMDAwNTEzZiAgbWZuOiAwMDAwNTEzZg0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowMl0gICBnZm46IDAwMDA1MTQwICBtZm46IDAw
+MDA1MTQwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjAyXSAgIGdmbjogMDAwMDUxNDEg
+IG1mbjogMDAwMDUxNDENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDJdICAgZ2ZuOiAw
+MDAwNTE0MiAgbWZuOiAwMDAwNTE0Mg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowMl0g
+ICBnZm46IDAwMDA1MTQzICBtZm46IDAwMDA1MTQzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMzOjAyXSAgIGdmbjogMDAwMDUxNDQgIG1mbjogMDAwMDUxNDQNCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzM6MDJdICAgZ2ZuOiAwMDAwNTE0NSAgbWZuOiAwMDAwNTE0NQ0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMzowMl0gICBnZm46IDAwMDA1MTQ2ICBtZm46IDAwMDA1MTQ2
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjAyXSAgIGdmbjogMDAwMDUxNDcgIG1mbjog
+MDAwMDUxNDcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDJdICAgZ2ZuOiAwMDAwNTE0
+OCAgbWZuOiAwMDAwNTE0OA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowMl0gICBnZm46
+IDAwMDA1MTQ5ICBtZm46IDAwMDA1MTQ5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjAy
+XSAgIGdmbjogMDAwMDUxNGEgIG1mbjogMDAwMDUxNGENCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzM6MDJdICAgZ2ZuOiAwMDAwNTE0YiAgbWZuOiAwMDAwNTE0Yg0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMzowMl0gICBnZm46IDAwMDA1MTRjICBtZm46IDAwMDA1MTRjDQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMzOjAyXSAgIGdmbjogMDAwMDUxNGQgIG1mbjogMDAwMDUx
+NGQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDJdICAgZ2ZuOiAwMDAwNTE0ZSAgbWZu
+OiAwMDAwNTE0ZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowMl0gICBnZm46IDAwMDA1
+MTRmICBtZm46IDAwMDA1MTRmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjAyXSAgIGdm
+bjogMDAwMDUxNTAgIG1mbjogMDAwMDUxNTANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6
+MDJdICAgZ2ZuOiAwMDAwNTE1MSAgbWZuOiAwMDAwNTE1MQ0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMzowMl0gICBnZm46IDAwMDA1MTUyICBtZm46IDAwMDA1MTUyDQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMzOjAyXSAgIGdmbjogMDAwMDUxNTMgIG1mbjogMDAwMDUxNTMNCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDJdICAgZ2ZuOiAwMDAwNTE1NCAgbWZuOiAwMDAw
+NTE1NA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowMl0gICBnZm46IDAwMDA1MTU1ICBt
+Zm46IDAwMDA1MTU1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjAyXSAgIGdmbjogMDAw
+MDUxNTYgIG1mbjogMDAwMDUxNTYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDJdICAg
+Z2ZuOiAwMDAwNTE1NyAgbWZuOiAwMDAwNTE1Nw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+MzowMl0gICBnZm46IDAwMDA1MTU4ICBtZm46IDAwMDA1MTU4DQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMzOjAyXSAgIGdmbjogMDAwMDUxNTkgIG1mbjogMDAwMDUxNTkNCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzM6MDJdICAgZ2ZuOiAwMDAwNTE1YSAgbWZuOiAwMDAwNTE1YQ0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowMl0gICBnZm46IDAwMDA1MTViICBtZm46IDAw
+MDA1MTViDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjAyXSAgIGdmbjogMDAwMDUxNWMg
+IG1mbjogMDAwMDUxNWMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDJdICAgZ2ZuOiAw
+MDAwNTE1ZCAgbWZuOiAwMDAwNTE1ZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowMl0g
+ICBnZm46IDAwMDA1MTVlICBtZm46IDAwMDA1MTVlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMzOjAyXSAgIGdmbjogMDAwMDUxNWYgIG1mbjogMDAwMDUxNWYNCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzM6MDJdICAgZ2ZuOiAwMDAwNTE2MCAgbWZuOiAwMDAwNTE2MA0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMzowMl0gICBnZm46IDAwMDA1MTYxICBtZm46IDAwMDA1MTYx
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjAyXSAgIGdmbjogMDAwMDUxNjIgIG1mbjog
+MDAwMDUxNjINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDJdICAgZ2ZuOiAwMDAwNTE2
+MyAgbWZuOiAwMDAwNTE2Mw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowMl0gICBnZm46
+IDAwMDA1MTY0ICBtZm46IDAwMDA1MTY0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjAy
+XSAgIGdmbjogMDAwMDUxNjUgIG1mbjogMDAwMDUxNjUNCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzM6MDJdICAgZ2ZuOiAwMDAwNTE2NiAgbWZuOiAwMDAwNTE2Ng0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMzowMl0gICBnZm46IDAwMDA1MTY3ICBtZm46IDAwMDA1MTY3DQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMzOjAyXSAgIGdmbjogMDAwMDUxNjggIG1mbjogMDAwMDUx
+NjgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDJdICAgZ2ZuOiAwMDAwNTE2OSAgbWZu
+OiAwMDAwNTE2OQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowMl0gICBnZm46IDAwMDA1
+MTZhICBtZm46IDAwMDA1MTZhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjAyXSAgIGdm
+bjogMDAwMDUxNmIgIG1mbjogMDAwMDUxNmINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6
+MDJdICAgZ2ZuOiAwMDAwNTE2YyAgbWZuOiAwMDAwNTE2Yw0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMzowMl0gICBnZm46IDAwMDA1MTZkICBtZm46IDAwMDA1MTZkDQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMzOjAzXSAgIGdmbjogMDAwMDUxNmUgIG1mbjogMDAwMDUxNmUNCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDNdICAgZ2ZuOiAwMDAwNTE2ZiAgbWZuOiAwMDAw
+NTE2Zg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowM10gICBnZm46IDAwMDA1MTcwICBt
+Zm46IDAwMDA1MTcwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjAzXSAgIGdmbjogMDAw
+MDUxNzEgIG1mbjogMDAwMDUxNzENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDNdICAg
+Z2ZuOiAwMDAwNTE3MiAgbWZuOiAwMDAwNTE3Mg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+MzowM10gICBnZm46IDAwMDA1MTczICBtZm46IDAwMDA1MTczDQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMzOjAzXSAgIGdmbjogMDAwMDUxNzQgIG1mbjogMDAwMDUxNzQNCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzM6MDNdICAgZ2ZuOiAwMDAwNTE3NSAgbWZuOiAwMDAwNTE3NQ0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowM10gICBnZm46IDAwMDA1MTc2ICBtZm46IDAw
+MDA1MTc2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjAzXSAgIGdmbjogMDAwMDUxNzcg
+IG1mbjogMDAwMDUxNzcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDNdICAgZ2ZuOiAw
+MDAwNTE3OCAgbWZuOiAwMDAwNTE3OA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowM10g
+ICBnZm46IDAwMDA1MTc5ICBtZm46IDAwMDA1MTc5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMzOjAzXSAgIGdmbjogMDAwMDUxN2EgIG1mbjogMDAwMDUxN2ENCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzM6MDNdICAgZ2ZuOiAwMDAwNTE3YiAgbWZuOiAwMDAwNTE3Yg0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMzowM10gICBnZm46IDAwMDA1MTdjICBtZm46IDAwMDA1MTdj
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjAzXSAgIGdmbjogMDAwMDUxN2QgIG1mbjog
+MDAwMDUxN2QNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDNdICAgZ2ZuOiAwMDAwNTE3
+ZSAgbWZuOiAwMDAwNTE3ZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowM10gICBnZm46
+IDAwMDA1MTdmICBtZm46IDAwMDA1MTdmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjAz
+XSAgIGdmbjogMDAwMDUxODAgIG1mbjogMDAwMDUxODANCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzM6MDNdICAgZ2ZuOiAwMDAwNTE4MSAgbWZuOiAwMDAwNTE4MQ0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMzowM10gICBnZm46IDAwMDA1MTgyICBtZm46IDAwMDA1MTgyDQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMzOjAzXSAgIGdmbjogMDAwMDUxODMgIG1mbjogMDAwMDUx
+ODMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDNdICAgZ2ZuOiAwMDAwNTE4NCAgbWZu
+OiAwMDAwNTE4NA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowM10gICBnZm46IDAwMDA1
+MTg1ICBtZm46IDAwMDA1MTg1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjAzXSAgIGdm
+bjogMDAwMDUxODYgIG1mbjogMDAwMDUxODYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6
+MDNdICAgZ2ZuOiAwMDAwNTE4NyAgbWZuOiAwMDAwNTE4Nw0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMzowM10gICBnZm46IDAwMDA1MTg4ICBtZm46IDAwMDA1MTg4DQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMzOjAzXSAgIGdmbjogMDAwMDUxODkgIG1mbjogMDAwMDUxODkNCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDNdICAgZ2ZuOiAwMDAwNTE4YSAgbWZuOiAwMDAw
+NTE4YQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowM10gICBnZm46IDAwMDA1MThiICBt
+Zm46IDAwMDA1MThiDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjAzXSAgIGdmbjogMDAw
+MDUxOGMgIG1mbjogMDAwMDUxOGMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDNdICAg
+Z2ZuOiAwMDAwNTE4ZCAgbWZuOiAwMDAwNTE4ZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+MzowM10gICBnZm46IDAwMDA1MThlICBtZm46IDAwMDA1MThlDQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMzOjAzXSAgIGdmbjogMDAwMDUxOGYgIG1mbjogMDAwMDUxOGYNCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzM6MDNdICAgZ2ZuOiAwMDAwNTE5MCAgbWZuOiAwMDAwNTE5MA0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowM10gICBnZm46IDAwMDA1MTkxICBtZm46IDAw
+MDA1MTkxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjAzXSAgIGdmbjogMDAwMDUxOTIg
+IG1mbjogMDAwMDUxOTINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDNdICAgZ2ZuOiAw
+MDAwNTE5MyAgbWZuOiAwMDAwNTE5Mw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowM10g
+ICBnZm46IDAwMDA1MTk0ICBtZm46IDAwMDA1MTk0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMzOjAzXSAgIGdmbjogMDAwMDUxOTUgIG1mbjogMDAwMDUxOTUNCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzM6MDNdICAgZ2ZuOiAwMDAwNTE5NiAgbWZuOiAwMDAwNTE5Ng0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMzowM10gICBnZm46IDAwMDA1MTk3ICBtZm46IDAwMDA1MTk3
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjAzXSAgIGdmbjogMDAwMDUxOTggIG1mbjog
+MDAwMDUxOTgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDNdICAgZ2ZuOiAwMDAwNTE5
+OSAgbWZuOiAwMDAwNTE5OQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowM10gICBnZm46
+IDAwMDA1MTlhICBtZm46IDAwMDA1MTlhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjAz
+XSAgIGdmbjogMDAwMDUxOWIgIG1mbjogMDAwMDUxOWINCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzM6MDNdICAgZ2ZuOiAwMDAwNTE5YyAgbWZuOiAwMDAwNTE5Yw0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMzowM10gICBnZm46IDAwMDA1MTlkICBtZm46IDAwMDA1MTlkDQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMzOjAzXSAgIGdmbjogMDAwMDUxOWUgIG1mbjogMDAwMDUx
+OWUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDNdICAgZ2ZuOiAwMDAwNTE5ZiAgbWZu
+OiAwMDAwNTE5Zg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowM10gICBnZm46IDAwMDA1
+MWEwICBtZm46IDAwMDA1MWEwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjAzXSAgIGdm
+bjogMDAwMDUxYTEgIG1mbjogMDAwMDUxYTENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6
+MDNdICAgZ2ZuOiAwMDAwNTFhMiAgbWZuOiAwMDAwNTFhMg0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMzowM10gICBnZm46IDAwMDA1MWEzICBtZm46IDAwMDA1MWEzDQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMzOjAzXSAgIGdmbjogMDAwMDUxYTQgIG1mbjogMDAwMDUxYTQNCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDNdICAgZ2ZuOiAwMDAwNTFhNSAgbWZuOiAwMDAw
+NTFhNQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowM10gICBnZm46IDAwMDA1MWE2ICBt
+Zm46IDAwMDA1MWE2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjAzXSAgIGdmbjogMDAw
+MDUxYTcgIG1mbjogMDAwMDUxYTcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDNdICAg
+Z2ZuOiAwMDAwNTFhOCAgbWZuOiAwMDAwNTFhOA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+MzowM10gICBnZm46IDAwMDA1MWE5ICBtZm46IDAwMDA1MWE5DQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMzOjAzXSAgIGdmbjogMDAwMDUxYWEgIG1mbjogMDAwMDUxYWENCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzM6MDNdICAgZ2ZuOiAwMDAwNTFhYiAgbWZuOiAwMDAwNTFhYg0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowM10gICBnZm46IDAwMDA1MWFjICBtZm46IDAw
+MDA1MWFjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjAzXSAgIGdmbjogMDAwMDUxYWQg
+IG1mbjogMDAwMDUxYWQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDRdICAgZ2ZuOiAw
+MDAwNTFhZSAgbWZuOiAwMDAwNTFhZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowNF0g
+ICBnZm46IDAwMDA1MWFmICBtZm46IDAwMDA1MWFmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMzOjA0XSAgIGdmbjogMDAwMDUxYjAgIG1mbjogMDAwMDUxYjANCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzM6MDRdICAgZ2ZuOiAwMDAwNTFiMSAgbWZuOiAwMDAwNTFiMQ0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMzowNF0gICBnZm46IDAwMDA1MWIyICBtZm46IDAwMDA1MWIy
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA0XSAgIGdmbjogMDAwMDUxYjMgIG1mbjog
+MDAwMDUxYjMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDRdICAgZ2ZuOiAwMDAwNTFi
+NCAgbWZuOiAwMDAwNTFiNA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowNF0gICBnZm46
+IDAwMDA1MWI1ICBtZm46IDAwMDA1MWI1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA0
+XSAgIGdmbjogMDAwMDUxYjYgIG1mbjogMDAwMDUxYjYNCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzM6MDRdICAgZ2ZuOiAwMDAwNTFiNyAgbWZuOiAwMDAwNTFiNw0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMzowNF0gICBnZm46IDAwMDA1MWI4ICBtZm46IDAwMDA1MWI4DQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA0XSAgIGdmbjogMDAwMDUxYjkgIG1mbjogMDAwMDUx
+YjkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDRdICAgZ2ZuOiAwMDAwNTFiYSAgbWZu
+OiAwMDAwNTFiYQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowNF0gICBnZm46IDAwMDA1
+MWJiICBtZm46IDAwMDA1MWJiDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA0XSAgIGdm
+bjogMDAwMDUxYmMgIG1mbjogMDAwMDUxYmMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6
+MDRdICAgZ2ZuOiAwMDAwNTFiZCAgbWZuOiAwMDAwNTFiZA0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMzowNF0gICBnZm46IDAwMDA1MWJlICBtZm46IDAwMDA1MWJlDQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMzOjA0XSAgIGdmbjogMDAwMDUxYmYgIG1mbjogMDAwMDUxYmYNCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDRdICAgZ2ZuOiAwMDAwNTFjMCAgbWZuOiAwMDAw
+NTFjMA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowNF0gICBnZm46IDAwMDA1MWMxICBt
+Zm46IDAwMDA1MWMxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA0XSAgIGdmbjogMDAw
+MDUxYzIgIG1mbjogMDAwMDUxYzINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDRdICAg
+Z2ZuOiAwMDAwNTFjMyAgbWZuOiAwMDAwNTFjMw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+MzowNF0gICBnZm46IDAwMDA1MWM0ICBtZm46IDAwMDA1MWM0DQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMzOjA0XSAgIGdmbjogMDAwMDUxYzUgIG1mbjogMDAwMDUxYzUNCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzM6MDRdICAgZ2ZuOiAwMDAwNTFjNiAgbWZuOiAwMDAwNTFjNg0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowNF0gICBnZm46IDAwMDA1MWM3ICBtZm46IDAw
+MDA1MWM3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA0XSAgIGdmbjogMDAwMDUxYzgg
+IG1mbjogMDAwMDUxYzgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDRdICAgZ2ZuOiAw
+MDAwNTFjOSAgbWZuOiAwMDAwNTFjOQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowNF0g
+ICBnZm46IDAwMDA1MWNhICBtZm46IDAwMDA1MWNhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMzOjA0XSAgIGdmbjogMDAwMDUxY2IgIG1mbjogMDAwMDUxY2INCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzM6MDRdICAgZ2ZuOiAwMDAwNTFjYyAgbWZuOiAwMDAwNTFjYw0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMzowNF0gICBnZm46IDAwMDA1MWNkICBtZm46IDAwMDA1MWNk
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA0XSAgIGdmbjogMDAwMDUxY2UgIG1mbjog
+MDAwMDUxY2UNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDRdICAgZ2ZuOiAwMDAwNTFj
+ZiAgbWZuOiAwMDAwNTFjZg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowNF0gICBnZm46
+IDAwMDA1MWQwICBtZm46IDAwMDA1MWQwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA0
+XSAgIGdmbjogMDAwMDUxZDEgIG1mbjogMDAwMDUxZDENCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzM6MDRdICAgZ2ZuOiAwMDAwNTFkMiAgbWZuOiAwMDAwNTFkMg0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMzowNF0gICBnZm46IDAwMDA1MWQzICBtZm46IDAwMDA1MWQzDQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA0XSAgIGdmbjogMDAwMDUxZDQgIG1mbjogMDAwMDUx
+ZDQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDRdICAgZ2ZuOiAwMDAwNTFkNSAgbWZu
+OiAwMDAwNTFkNQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowNF0gICBnZm46IDAwMDA1
+MWQ2ICBtZm46IDAwMDA1MWQ2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA0XSAgIGdm
+bjogMDAwMDUxZDcgIG1mbjogMDAwMDUxZDcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6
+MDRdICAgZ2ZuOiAwMDAwNTFkOCAgbWZuOiAwMDAwNTFkOA0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMzowNF0gICBnZm46IDAwMDA1MWQ5ICBtZm46IDAwMDA1MWQ5DQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMzOjA0XSAgIGdmbjogMDAwMDUxZGEgIG1mbjogMDAwMDUxZGENCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDRdICAgZ2ZuOiAwMDAwNTFkYiAgbWZuOiAwMDAw
+NTFkYg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowNF0gICBnZm46IDAwMDA1MWRjICBt
+Zm46IDAwMDA1MWRjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA0XSAgIGdmbjogMDAw
+MDUxZGQgIG1mbjogMDAwMDUxZGQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDRdICAg
+Z2ZuOiAwMDAwNTFkZSAgbWZuOiAwMDAwNTFkZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+MzowNF0gICBnZm46IDAwMDA1MWRmICBtZm46IDAwMDA1MWRmDQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMzOjA0XSAgIGdmbjogMDAwMDUxZTAgIG1mbjogMDAwMDUxZTANCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzM6MDRdICAgZ2ZuOiAwMDAwNTFlMSAgbWZuOiAwMDAwNTFlMQ0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowNF0gICBnZm46IDAwMDA1MWUyICBtZm46IDAw
+MDA1MWUyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA0XSAgIGdmbjogMDAwMDUxZTMg
+IG1mbjogMDAwMDUxZTMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDRdICAgZ2ZuOiAw
+MDAwNTFlNCAgbWZuOiAwMDAwNTFlNA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowNF0g
+ICBnZm46IDAwMDA1MWU1ICBtZm46IDAwMDA1MWU1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMzOjA0XSAgIGdmbjogMDAwMDUxZTYgIG1mbjogMDAwMDUxZTYNCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzM6MDRdICAgZ2ZuOiAwMDAwNTFlNyAgbWZuOiAwMDAwNTFlNw0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMzowNF0gICBnZm46IDAwMDA1MWU4ICBtZm46IDAwMDA1MWU4
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA0XSAgIGdmbjogMDAwMDUxZTkgIG1mbjog
+MDAwMDUxZTkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDRdICAgZ2ZuOiAwMDAwNTFl
+YSAgbWZuOiAwMDAwNTFlYQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowNF0gICBnZm46
+IDAwMDA1MWViICBtZm46IDAwMDA1MWViDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA0
+XSAgIGdmbjogMDAwMDUxZWMgIG1mbjogMDAwMDUxZWMNCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzM6MDRdICAgZ2ZuOiAwMDAwNTFlZCAgbWZuOiAwMDAwNTFlZA0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMzowNV0gICBnZm46IDAwMDA1MWVlICBtZm46IDAwMDA1MWVlDQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA1XSAgIGdmbjogMDAwMDUxZWYgIG1mbjogMDAwMDUx
+ZWYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDVdICAgZ2ZuOiAwMDAwNTFmMCAgbWZu
+OiAwMDAwNTFmMA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowNV0gICBnZm46IDAwMDA1
+MWYxICBtZm46IDAwMDA1MWYxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA1XSAgIGdm
+bjogMDAwMDUxZjIgIG1mbjogMDAwMDUxZjINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6
+MDVdICAgZ2ZuOiAwMDAwNTFmMyAgbWZuOiAwMDAwNTFmMw0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMzowNV0gICBnZm46IDAwMDA1MWY0ICBtZm46IDAwMDA1MWY0DQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMzOjA1XSAgIGdmbjogMDAwMDUxZjUgIG1mbjogMDAwMDUxZjUNCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDVdICAgZ2ZuOiAwMDAwNTFmNiAgbWZuOiAwMDAw
+NTFmNg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowNV0gICBnZm46IDAwMDA1MWY3ICBt
+Zm46IDAwMDA1MWY3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA1XSAgIGdmbjogMDAw
+MDUxZjggIG1mbjogMDAwMDUxZjgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDVdICAg
+Z2ZuOiAwMDAwNTFmOSAgbWZuOiAwMDAwNTFmOQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+MzowNV0gICBnZm46IDAwMDA1MWZhICBtZm46IDAwMDA1MWZhDQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMzOjA1XSAgIGdmbjogMDAwMDUxZmIgIG1mbjogMDAwMDUxZmINCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzM6MDVdICAgZ2ZuOiAwMDAwNTFmYyAgbWZuOiAwMDAwNTFmYw0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowNV0gICBnZm46IDAwMDA1MWZkICBtZm46IDAw
+MDA1MWZkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA1XSAgIGdmbjogMDAwMDUxZmUg
+IG1mbjogMDAwMDUxZmUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDVdICAgZ2ZuOiAw
+MDAwNTFmZiAgbWZuOiAwMDAwNTFmZg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowNV0g
+ICBnZm46IDAwMDA1MjAwICBtZm46IDAwMDA1MjAwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMzOjA1XSAgIGdmbjogMDAwMDUyMDEgIG1mbjogMDAwMDUyMDENCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzM6MDVdICAgZ2ZuOiAwMDAwNTIwMiAgbWZuOiAwMDAwNTIwMg0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMzowNV0gICBnZm46IDAwMDA1MjAzICBtZm46IDAwMDA1MjAz
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA1XSAgIGdmbjogMDAwMDUyMDQgIG1mbjog
+MDAwMDUyMDQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDVdICAgZ2ZuOiAwMDAwNTIw
+NSAgbWZuOiAwMDAwNTIwNQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowNV0gICBnZm46
+IDAwMDA1MjA2ICBtZm46IDAwMDA1MjA2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA1
+XSAgIGdmbjogMDAwMDUyMDcgIG1mbjogMDAwMDUyMDcNCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzM6MDVdICAgZ2ZuOiAwMDAwNTIwOCAgbWZuOiAwMDAwNTIwOA0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMzowNV0gICBnZm46IDAwMDA1MjA5ICBtZm46IDAwMDA1MjA5DQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA1XSAgIGdmbjogMDAwMDUyMGEgIG1mbjogMDAwMDUy
+MGENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDVdICAgZ2ZuOiAwMDAwNTIwYiAgbWZu
+OiAwMDAwNTIwYg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowNV0gICBnZm46IDAwMDA1
+MjBjICBtZm46IDAwMDA1MjBjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA1XSAgIGdm
+bjogMDAwMDUyMGQgIG1mbjogMDAwMDUyMGQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6
+MDVdICAgZ2ZuOiAwMDAwNTIwZSAgbWZuOiAwMDAwNTIwZQ0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMzowNV0gICBnZm46IDAwMDA1MjBmICBtZm46IDAwMDA1MjBmDQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMzOjA1XSAgIGdmbjogMDAwMDUyMTAgIG1mbjogMDAwMDUyMTANCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDVdICAgZ2ZuOiAwMDAwNTIxMSAgbWZuOiAwMDAw
+NTIxMQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowNV0gICBnZm46IDAwMDA1MjEyICBt
+Zm46IDAwMDA1MjEyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA1XSAgIGdmbjogMDAw
+MDUyMTMgIG1mbjogMDAwMDUyMTMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDVdICAg
+Z2ZuOiAwMDAwNTIxNCAgbWZuOiAwMDAwNTIxNA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+MzowNV0gICBnZm46IDAwMDA1MjE1ICBtZm46IDAwMDA1MjE1DQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMzOjA1XSAgIGdmbjogMDAwMDUyMTYgIG1mbjogMDAwMDUyMTYNCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzM6MDVdICAgZ2ZuOiAwMDAwNTIxNyAgbWZuOiAwMDAwNTIxNw0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowNV0gICBnZm46IDAwMDA1MjE4ICBtZm46IDAw
+MDA1MjE4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA1XSAgIGdmbjogMDAwMDUyMTkg
+IG1mbjogMDAwMDUyMTkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDVdICAgZ2ZuOiAw
+MDAwNTIxYSAgbWZuOiAwMDAwNTIxYQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowNV0g
+ICBnZm46IDAwMDA1MjFiICBtZm46IDAwMDA1MjFiDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMzOjA1XSAgIGdmbjogMDAwMDUyMWMgIG1mbjogMDAwMDUyMWMNCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzM6MDVdICAgZ2ZuOiAwMDAwNTIxZCAgbWZuOiAwMDAwNTIxZA0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMzowNV0gICBnZm46IDAwMDA1MjFlICBtZm46IDAwMDA1MjFl
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA1XSAgIGdmbjogMDAwMDUyMWYgIG1mbjog
+MDAwMDUyMWYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDVdICAgZ2ZuOiAwMDAwNTIy
+MCAgbWZuOiAwMDAwNTIyMA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowNV0gICBnZm46
+IDAwMDA1MjIxICBtZm46IDAwMDA1MjIxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA1
+XSAgIGdmbjogMDAwMDUyMjIgIG1mbjogMDAwMDUyMjINCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzM6MDVdICAgZ2ZuOiAwMDAwNTIyMyAgbWZuOiAwMDAwNTIyMw0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMzowNV0gICBnZm46IDAwMDA1MjI0ICBtZm46IDAwMDA1MjI0DQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA1XSAgIGdmbjogMDAwMDUyMjUgIG1mbjogMDAwMDUy
+MjUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDVdICAgZ2ZuOiAwMDAwNTIyNiAgbWZu
+OiAwMDAwNTIyNg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowNV0gICBnZm46IDAwMDA1
+MjI3ICBtZm46IDAwMDA1MjI3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA1XSAgIGdm
+bjogMDAwMDUyMjggIG1mbjogMDAwMDUyMjgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6
+MDVdICAgZ2ZuOiAwMDAwNTIyOSAgbWZuOiAwMDAwNTIyOQ0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMzowNV0gICBnZm46IDAwMDA1MjJhICBtZm46IDAwMDA1MjJhDQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMzOjA1XSAgIGdmbjogMDAwMDUyMmIgIG1mbjogMDAwMDUyMmINCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDVdICAgZ2ZuOiAwMDAwNTIyYyAgbWZuOiAwMDAw
+NTIyYw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowNV0gICBnZm46IDAwMDA1MjJkICBt
+Zm46IDAwMDA1MjJkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA1XSAgIGdmbjogMDAw
+MDUyMmUgIG1mbjogMDAwMDUyMmUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDZdICAg
+Z2ZuOiAwMDAwNTIyZiAgbWZuOiAwMDAwNTIyZg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+MzowNl0gICBnZm46IDAwMDA1MjMwICBtZm46IDAwMDA1MjMwDQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMzOjA2XSAgIGdmbjogMDAwMDUyMzEgIG1mbjogMDAwMDUyMzENCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzM6MDZdICAgZ2ZuOiAwMDAwNTIzMiAgbWZuOiAwMDAwNTIzMg0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowNl0gICBnZm46IDAwMDA1MjMzICBtZm46IDAw
+MDA1MjMzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA2XSAgIGdmbjogMDAwMDUyMzQg
+IG1mbjogMDAwMDUyMzQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDZdICAgZ2ZuOiAw
+MDAwNTIzNSAgbWZuOiAwMDAwNTIzNQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowNl0g
+ICBnZm46IDAwMDA1MjM2ICBtZm46IDAwMDA1MjM2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMzOjA2XSAgIGdmbjogMDAwMDUyMzcgIG1mbjogMDAwMDUyMzcNCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzM6MDZdICAgZ2ZuOiAwMDAwNTIzOCAgbWZuOiAwMDAwNTIzOA0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMzowNl0gICBnZm46IDAwMDA1MjM5ICBtZm46IDAwMDA1MjM5
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA2XSAgIGdmbjogMDAwMDUyM2EgIG1mbjog
+MDAwMDUyM2ENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDZdICAgZ2ZuOiAwMDAwNTIz
+YiAgbWZuOiAwMDAwNTIzYg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowNl0gICBnZm46
+IDAwMDA1MjNjICBtZm46IDAwMDA1MjNjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA2
+XSAgIGdmbjogMDAwMDUyM2QgIG1mbjogMDAwMDUyM2QNCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzM6MDZdICAgZ2ZuOiAwMDAwNTIzZSAgbWZuOiAwMDAwNTIzZQ0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMzowNl0gICBnZm46IDAwMDA1MjNmICBtZm46IDAwMDA1MjNmDQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA2XSAgIGdmbjogMDAwMDUyNDAgIG1mbjogMDAwMDUy
+NDANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDZdICAgZ2ZuOiAwMDAwNTI0MSAgbWZu
+OiAwMDAwNTI0MQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowNl0gICBnZm46IDAwMDA1
+MjQyICBtZm46IDAwMDA1MjQyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA2XSAgIGdm
+bjogMDAwMDUyNDMgIG1mbjogMDAwMDUyNDMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6
+MDZdICAgZ2ZuOiAwMDAwNTI0NCAgbWZuOiAwMDAwNTI0NA0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMzowNl0gICBnZm46IDAwMDA1MjQ1ICBtZm46IDAwMDA1MjQ1DQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMzOjA2XSAgIGdmbjogMDAwMDUyNDYgIG1mbjogMDAwMDUyNDYNCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDZdICAgZ2ZuOiAwMDAwNTI0NyAgbWZuOiAwMDAw
+NTI0Nw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowNl0gICBnZm46IDAwMDA1MjQ4ICBt
+Zm46IDAwMDA1MjQ4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA2XSAgIGdmbjogMDAw
+MDUyNDkgIG1mbjogMDAwMDUyNDkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDZdICAg
+Z2ZuOiAwMDAwNTI0YSAgbWZuOiAwMDAwNTI0YQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+MzowNl0gICBnZm46IDAwMDA1MjRiICBtZm46IDAwMDA1MjRiDQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMzOjA2XSAgIGdmbjogMDAwMDUyNGMgIG1mbjogMDAwMDUyNGMNCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzM6MDZdICAgZ2ZuOiAwMDAwNTI0ZCAgbWZuOiAwMDAwNTI0ZA0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowNl0gICBnZm46IDAwMDA1MjRlICBtZm46IDAw
+MDA1MjRlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA2XSAgIGdmbjogMDAwMDUyNGYg
+IG1mbjogMDAwMDUyNGYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDZdICAgZ2ZuOiAw
+MDAwNTI1MCAgbWZuOiAwMDAwNTI1MA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowNl0g
+ICBnZm46IDAwMDA1MjUxICBtZm46IDAwMDA1MjUxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMzOjA2XSAgIGdmbjogMDAwMDUyNTIgIG1mbjogMDAwMDUyNTINCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzM6MDZdICAgZ2ZuOiAwMDAwNTI1MyAgbWZuOiAwMDAwNTI1Mw0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMzowNl0gICBnZm46IDAwMDA1MjU0ICBtZm46IDAwMDA1MjU0
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA2XSAgIGdmbjogMDAwMDUyNTUgIG1mbjog
+MDAwMDUyNTUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDZdICAgZ2ZuOiAwMDAwNTI1
+NiAgbWZuOiAwMDAwNTI1Ng0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowNl0gICBnZm46
+IDAwMDA1MjU3ICBtZm46IDAwMDA1MjU3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA2
+XSAgIGdmbjogMDAwMDUyNTggIG1mbjogMDAwMDUyNTgNCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzM6MDZdICAgZ2ZuOiAwMDAwNTI1OSAgbWZuOiAwMDAwNTI1OQ0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMzowNl0gICBnZm46IDAwMDA1MjVhICBtZm46IDAwMDA1MjVhDQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA2XSAgIGdmbjogMDAwMDUyNWIgIG1mbjogMDAwMDUy
+NWINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDZdICAgZ2ZuOiAwMDAwNTI1YyAgbWZu
+OiAwMDAwNTI1Yw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowNl0gICBnZm46IDAwMDA1
+MjVkICBtZm46IDAwMDA1MjVkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA2XSAgIGdm
+bjogMDAwMDUyNWUgIG1mbjogMDAwMDUyNWUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6
+MDZdICAgZ2ZuOiAwMDAwNTI1ZiAgbWZuOiAwMDAwNTI1Zg0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMzowNl0gICBnZm46IDAwMDA1MjYwICBtZm46IDAwMDA1MjYwDQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMzOjA2XSAgIGdmbjogMDAwMDUyNjEgIG1mbjogMDAwMDUyNjENCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDZdICAgZ2ZuOiAwMDAwNTI2MiAgbWZuOiAwMDAw
+NTI2Mg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowNl0gICBnZm46IDAwMDA1MjYzICBt
+Zm46IDAwMDA1MjYzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA2XSAgIGdmbjogMDAw
+MDUyNjQgIG1mbjogMDAwMDUyNjQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDZdICAg
+Z2ZuOiAwMDAwNTI2NSAgbWZuOiAwMDAwNTI2NQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+MzowNl0gICBnZm46IDAwMDA1MjY2ICBtZm46IDAwMDA1MjY2DQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMzOjA2XSAgIGdmbjogMDAwMDUyNjcgIG1mbjogMDAwMDUyNjcNCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzM6MDZdICAgZ2ZuOiAwMDAwNTI2OCAgbWZuOiAwMDAwNTI2OA0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowNl0gICBnZm46IDAwMDA1MjY5ICBtZm46IDAw
+MDA1MjY5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA2XSAgIGdmbjogMDAwMDUyNmEg
+IG1mbjogMDAwMDUyNmENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDZdICAgZ2ZuOiAw
+MDAwNTI2YiAgbWZuOiAwMDAwNTI2Yg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowNl0g
+ICBnZm46IDAwMDA1MjZjICBtZm46IDAwMDA1MjZjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMzOjA2XSAgIGdmbjogMDAwMDUyNmQgIG1mbjogMDAwMDUyNmQNCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzM6MDZdICAgZ2ZuOiAwMDAwNTI2ZSAgbWZuOiAwMDAwNTI2ZQ0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMzowN10gICBnZm46IDAwMDA1MjZmICBtZm46IDAwMDA1MjZm
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA3XSAgIGdmbjogMDAwMDUyNzAgIG1mbjog
+MDAwMDUyNzANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDddICAgZ2ZuOiAwMDAwNTI3
+MSAgbWZuOiAwMDAwNTI3MQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowN10gICBnZm46
+IDAwMDA1MjcyICBtZm46IDAwMDA1MjcyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA3
+XSAgIGdmbjogMDAwMDUyNzMgIG1mbjogMDAwMDUyNzMNCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzM6MDddICAgZ2ZuOiAwMDAwNTI3NCAgbWZuOiAwMDAwNTI3NA0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMzowN10gICBnZm46IDAwMDA1Mjc1ICBtZm46IDAwMDA1Mjc1DQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA3XSAgIGdmbjogMDAwMDUyNzYgIG1mbjogMDAwMDUy
+NzYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDddICAgZ2ZuOiAwMDAwNTI3NyAgbWZu
+OiAwMDAwNTI3Nw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowN10gICBnZm46IDAwMDA1
+Mjc4ICBtZm46IDAwMDA1Mjc4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA3XSAgIGdm
+bjogMDAwMDUyNzkgIG1mbjogMDAwMDUyNzkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6
+MDddICAgZ2ZuOiAwMDAwNTI3YSAgbWZuOiAwMDAwNTI3YQ0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMzowN10gICBnZm46IDAwMDA1MjdiICBtZm46IDAwMDA1MjdiDQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMzOjA3XSAgIGdmbjogMDAwMDUyN2MgIG1mbjogMDAwMDUyN2MNCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDddICAgZ2ZuOiAwMDAwNTI3ZCAgbWZuOiAwMDAw
+NTI3ZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowN10gICBnZm46IDAwMDA1MjdlICBt
+Zm46IDAwMDA1MjdlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA3XSAgIGdmbjogMDAw
+MDUyN2YgIG1mbjogMDAwMDUyN2YNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDddICAg
+Z2ZuOiAwMDAwNTI4MCAgbWZuOiAwMDAwNTI4MA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+MzowN10gICBnZm46IDAwMDA1MjgxICBtZm46IDAwMDA1MjgxDQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMzOjA3XSAgIGdmbjogMDAwMDUyODIgIG1mbjogMDAwMDUyODINCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzM6MDddICAgZ2ZuOiAwMDAwNTI4MyAgbWZuOiAwMDAwNTI4Mw0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowN10gICBnZm46IDAwMDA1Mjg0ICBtZm46IDAw
+MDA1Mjg0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA3XSAgIGdmbjogMDAwMDUyODUg
+IG1mbjogMDAwMDUyODUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDddICAgZ2ZuOiAw
+MDAwNTI4NiAgbWZuOiAwMDAwNTI4Ng0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowN10g
+ICBnZm46IDAwMDA1Mjg3ICBtZm46IDAwMDA1Mjg3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMzOjA3XSAgIGdmbjogMDAwMDUyODggIG1mbjogMDAwMDUyODgNCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzM6MDddICAgZ2ZuOiAwMDAwNTI4OSAgbWZuOiAwMDAwNTI4OQ0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMzowN10gICBnZm46IDAwMDA1MjhhICBtZm46IDAwMDA1Mjhh
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA3XSAgIGdmbjogMDAwMDUyOGIgIG1mbjog
+MDAwMDUyOGINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDddICAgZ2ZuOiAwMDAwNTI4
+YyAgbWZuOiAwMDAwNTI4Yw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowN10gICBnZm46
+IDAwMDA1MjhkICBtZm46IDAwMDA1MjhkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA3
+XSAgIGdmbjogMDAwMDUyOGUgIG1mbjogMDAwMDUyOGUNCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzM6MDddICAgZ2ZuOiAwMDAwNTI4ZiAgbWZuOiAwMDAwNTI4Zg0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMzowN10gICBnZm46IDAwMDA1MjkwICBtZm46IDAwMDA1MjkwDQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA3XSAgIGdmbjogMDAwMDUyOTEgIG1mbjogMDAwMDUy
+OTENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDddICAgZ2ZuOiAwMDAwNTI5MiAgbWZu
+OiAwMDAwNTI5Mg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowN10gICBnZm46IDAwMDA1
+MjkzICBtZm46IDAwMDA1MjkzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA3XSAgIGdm
+bjogMDAwMDUyOTQgIG1mbjogMDAwMDUyOTQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6
+MDddICAgZ2ZuOiAwMDAwNTI5NSAgbWZuOiAwMDAwNTI5NQ0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMzowN10gICBnZm46IDAwMDA1Mjk2ICBtZm46IDAwMDA1Mjk2DQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMzOjA3XSAgIGdmbjogMDAwMDUyOTcgIG1mbjogMDAwMDUyOTcNCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDddICAgZ2ZuOiAwMDAwNTI5OCAgbWZuOiAwMDAw
+NTI5OA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowN10gICBnZm46IDAwMDA1Mjk5ICBt
+Zm46IDAwMDA1Mjk5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA3XSAgIGdmbjogMDAw
+MDUyOWEgIG1mbjogMDAwMDUyOWENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDddICAg
+Z2ZuOiAwMDAwNTI5YiAgbWZuOiAwMDAwNTI5Yg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+MzowN10gICBnZm46IDAwMDA1MjljICBtZm46IDAwMDA1MjljDQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMzOjA3XSAgIGdmbjogMDAwMDUyOWQgIG1mbjogMDAwMDUyOWQNCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzM6MDddICAgZ2ZuOiAwMDAwNTI5ZSAgbWZuOiAwMDAwNTI5ZQ0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowN10gICBnZm46IDAwMDA1MjlmICBtZm46IDAw
+MDA1MjlmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA3XSAgIGdmbjogMDAwMDUyYTAg
+IG1mbjogMDAwMDUyYTANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDddICAgZ2ZuOiAw
+MDAwNTJhMSAgbWZuOiAwMDAwNTJhMQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowN10g
+ICBnZm46IDAwMDA1MmEyICBtZm46IDAwMDA1MmEyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMzOjA3XSAgIGdmbjogMDAwMDUyYTMgIG1mbjogMDAwMDUyYTMNCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzM6MDddICAgZ2ZuOiAwMDAwNTJhNCAgbWZuOiAwMDAwNTJhNA0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMzowN10gICBnZm46IDAwMDA1MmE1ICBtZm46IDAwMDA1MmE1
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA3XSAgIGdmbjogMDAwMDUyYTYgIG1mbjog
+MDAwMDUyYTYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDddICAgZ2ZuOiAwMDAwNTJh
+NyAgbWZuOiAwMDAwNTJhNw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowN10gICBnZm46
+IDAwMDA1MmE4ICBtZm46IDAwMDA1MmE4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA3
+XSAgIGdmbjogMDAwMDUyYTkgIG1mbjogMDAwMDUyYTkNCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzM6MDddICAgZ2ZuOiAwMDAwNTJhYSAgbWZuOiAwMDAwNTJhYQ0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMzowN10gICBnZm46IDAwMDA1MmFiICBtZm46IDAwMDA1MmFiDQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA3XSAgIGdmbjogMDAwMDUyYWMgIG1mbjogMDAwMDUy
+YWMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDddICAgZ2ZuOiAwMDAwNTJhZCAgbWZu
+OiAwMDAwNTJhZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowN10gICBnZm46IDAwMDA1
+MmFlICBtZm46IDAwMDA1MmFlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA4XSAgIGdm
+bjogMDAwMDUyYWYgIG1mbjogMDAwMDUyYWYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6
+MDhdICAgZ2ZuOiAwMDAwNTJiMCAgbWZuOiAwMDAwNTJiMA0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMzowOF0gICBnZm46IDAwMDA1MmIxICBtZm46IDAwMDA1MmIxDQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMzOjA4XSAgIGdmbjogMDAwMDUyYjIgIG1mbjogMDAwMDUyYjINCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDhdICAgZ2ZuOiAwMDAwNTJiMyAgbWZuOiAwMDAw
+NTJiMw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowOF0gICBnZm46IDAwMDA1MmI0ICBt
+Zm46IDAwMDA1MmI0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA4XSAgIGdmbjogMDAw
+MDUyYjUgIG1mbjogMDAwMDUyYjUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDhdICAg
+Z2ZuOiAwMDAwNTJiNiAgbWZuOiAwMDAwNTJiNg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+MzowOF0gICBnZm46IDAwMDA1MmI3ICBtZm46IDAwMDA1MmI3DQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMzOjA4XSAgIGdmbjogMDAwMDUyYjggIG1mbjogMDAwMDUyYjgNCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzM6MDhdICAgZ2ZuOiAwMDAwNTJiOSAgbWZuOiAwMDAwNTJiOQ0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowOF0gICBnZm46IDAwMDA1MmJhICBtZm46IDAw
+MDA1MmJhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA4XSAgIGdmbjogMDAwMDUyYmIg
+IG1mbjogMDAwMDUyYmINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDhdICAgZ2ZuOiAw
+MDAwNTJiYyAgbWZuOiAwMDAwNTJiYw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowOF0g
+ICBnZm46IDAwMDA1MmJkICBtZm46IDAwMDA1MmJkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMzOjA4XSAgIGdmbjogMDAwMDUyYmUgIG1mbjogMDAwMDUyYmUNCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzM6MDhdICAgZ2ZuOiAwMDAwNTJiZiAgbWZuOiAwMDAwNTJiZg0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMzowOF0gICBnZm46IDAwMDA1MmMwICBtZm46IDAwMDA1MmMw
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA4XSAgIGdmbjogMDAwMDUyYzEgIG1mbjog
+MDAwMDUyYzENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDhdICAgZ2ZuOiAwMDAwNTJj
+MiAgbWZuOiAwMDAwNTJjMg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowOF0gICBnZm46
+IDAwMDA1MmMzICBtZm46IDAwMDA1MmMzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA4
+XSAgIGdmbjogMDAwMDUyYzQgIG1mbjogMDAwMDUyYzQNCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzM6MDhdICAgZ2ZuOiAwMDAwNTJjNSAgbWZuOiAwMDAwNTJjNQ0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMzowOF0gICBnZm46IDAwMDA1MmM2ICBtZm46IDAwMDA1MmM2DQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA4XSAgIGdmbjogMDAwMDUyYzcgIG1mbjogMDAwMDUy
+YzcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDhdICAgZ2ZuOiAwMDAwNTJjOCAgbWZu
+OiAwMDAwNTJjOA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowOF0gICBnZm46IDAwMDA1
+MmM5ICBtZm46IDAwMDA1MmM5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA4XSAgIGdm
+bjogMDAwMDUyY2EgIG1mbjogMDAwMDUyY2ENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6
+MDhdICAgZ2ZuOiAwMDAwNTJjYiAgbWZuOiAwMDAwNTJjYg0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMzowOF0gICBnZm46IDAwMDA1MmNjICBtZm46IDAwMDA1MmNjDQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMzOjA4XSAgIGdmbjogMDAwMDUyY2QgIG1mbjogMDAwMDUyY2QNCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDhdICAgZ2ZuOiAwMDAwNTJjZSAgbWZuOiAwMDAw
+NTJjZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowOF0gICBnZm46IDAwMDA1MmNmICBt
+Zm46IDAwMDA1MmNmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA4XSAgIGdmbjogMDAw
+MDUyZDAgIG1mbjogMDAwMDUyZDANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDhdICAg
+Z2ZuOiAwMDAwNTJkMSAgbWZuOiAwMDAwNTJkMQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+MzowOF0gICBnZm46IDAwMDA1MmQyICBtZm46IDAwMDA1MmQyDQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMzOjA4XSAgIGdmbjogMDAwMDUyZDMgIG1mbjogMDAwMDUyZDMNCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzM6MDhdICAgZ2ZuOiAwMDAwNTJkNCAgbWZuOiAwMDAwNTJkNA0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowOF0gICBnZm46IDAwMDA1MmQ1ICBtZm46IDAw
+MDA1MmQ1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA4XSAgIGdmbjogMDAwMDUyZDYg
+IG1mbjogMDAwMDUyZDYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDhdICAgZ2ZuOiAw
+MDAwNTJkNyAgbWZuOiAwMDAwNTJkNw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowOF0g
+ICBnZm46IDAwMDA1MmQ4ICBtZm46IDAwMDA1MmQ4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMzOjA4XSAgIGdmbjogMDAwMDUyZDkgIG1mbjogMDAwMDUyZDkNCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzM6MDhdICAgZ2ZuOiAwMDAwNTJkYSAgbWZuOiAwMDAwNTJkYQ0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMzowOF0gICBnZm46IDAwMDA1MmRiICBtZm46IDAwMDA1MmRi
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA4XSAgIGdmbjogMDAwMDUyZGMgIG1mbjog
+MDAwMDUyZGMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDhdICAgZ2ZuOiAwMDAwNTJk
+ZCAgbWZuOiAwMDAwNTJkZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowOF0gICBnZm46
+IDAwMDA1MmRlICBtZm46IDAwMDA1MmRlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA4
+XSAgIGdmbjogMDAwMDUyZGYgIG1mbjogMDAwMDUyZGYNCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzM6MDhdICAgZ2ZuOiAwMDAwNTJlMCAgbWZuOiAwMDAwNTJlMA0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMzowOF0gICBnZm46IDAwMDA1MmUxICBtZm46IDAwMDA1MmUxDQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA4XSAgIGdmbjogMDAwMDUyZTIgIG1mbjogMDAwMDUy
+ZTINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDhdICAgZ2ZuOiAwMDAwNTJlMyAgbWZu
+OiAwMDAwNTJlMw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowOF0gICBnZm46IDAwMDA1
+MmU0ICBtZm46IDAwMDA1MmU0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA4XSAgIGdm
+bjogMDAwMDUyZTUgIG1mbjogMDAwMDUyZTUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6
+MDhdICAgZ2ZuOiAwMDAwNTJlNiAgbWZuOiAwMDAwNTJlNg0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMzowOF0gICBnZm46IDAwMDA1MmU3ICBtZm46IDAwMDA1MmU3DQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMzOjA4XSAgIGdmbjogMDAwMDUyZTggIG1mbjogMDAwMDUyZTgNCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDhdICAgZ2ZuOiAwMDAwNTJlOSAgbWZuOiAwMDAw
+NTJlOQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowOF0gICBnZm46IDAwMDA1MmVhICBt
+Zm46IDAwMDA1MmVhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA4XSAgIGdmbjogMDAw
+MDUyZWIgIG1mbjogMDAwMDUyZWINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDhdICAg
+Z2ZuOiAwMDAwNTJlYyAgbWZuOiAwMDAwNTJlYw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+MzowOF0gICBnZm46IDAwMDA1MmVkICBtZm46IDAwMDA1MmVkDQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMzOjA4XSAgIGdmbjogMDAwMDUyZWUgIG1mbjogMDAwMDUyZWUNCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzM6MDldICAgZ2ZuOiAwMDAwNTJlZiAgbWZuOiAwMDAwNTJlZg0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowOV0gICBnZm46IDAwMDA1MmYwICBtZm46IDAw
+MDA1MmYwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA5XSAgIGdmbjogMDAwMDUyZjEg
+IG1mbjogMDAwMDUyZjENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDldICAgZ2ZuOiAw
+MDAwNTJmMiAgbWZuOiAwMDAwNTJmMg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowOV0g
+ICBnZm46IDAwMDA1MmYzICBtZm46IDAwMDA1MmYzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMzOjA5XSAgIGdmbjogMDAwMDUyZjQgIG1mbjogMDAwMDUyZjQNCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzM6MDldICAgZ2ZuOiAwMDAwNTJmNSAgbWZuOiAwMDAwNTJmNQ0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMzowOV0gICBnZm46IDAwMDA1MmY2ICBtZm46IDAwMDA1MmY2
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA5XSAgIGdmbjogMDAwMDUyZjcgIG1mbjog
+MDAwMDUyZjcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDldICAgZ2ZuOiAwMDAwNTJm
+OCAgbWZuOiAwMDAwNTJmOA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowOV0gICBnZm46
+IDAwMDA1MmY5ICBtZm46IDAwMDA1MmY5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA5
+XSAgIGdmbjogMDAwMDUyZmEgIG1mbjogMDAwMDUyZmENCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzM6MDldICAgZ2ZuOiAwMDAwNTJmYiAgbWZuOiAwMDAwNTJmYg0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMzowOV0gICBnZm46IDAwMDA1MmZjICBtZm46IDAwMDA1MmZjDQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA5XSAgIGdmbjogMDAwMDUyZmQgIG1mbjogMDAwMDUy
+ZmQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDldICAgZ2ZuOiAwMDAwNTJmZSAgbWZu
+OiAwMDAwNTJmZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowOV0gICBnZm46IDAwMDA1
+MmZmICBtZm46IDAwMDA1MmZmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA5XSAgIGdm
+bjogMDAwMDUzMDAgIG1mbjogMDAwMDUzMDANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6
+MDldICAgZ2ZuOiAwMDAwNTMwMSAgbWZuOiAwMDAwNTMwMQ0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMzowOV0gICBnZm46IDAwMDA1MzAyICBtZm46IDAwMDA1MzAyDQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMzOjA5XSAgIGdmbjogMDAwMDUzMDMgIG1mbjogMDAwMDUzMDMNCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDldICAgZ2ZuOiAwMDAwNTMwNCAgbWZuOiAwMDAw
+NTMwNA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowOV0gICBnZm46IDAwMDA1MzA1ICBt
+Zm46IDAwMDA1MzA1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA5XSAgIGdmbjogMDAw
+MDUzMDYgIG1mbjogMDAwMDUzMDYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDldICAg
+Z2ZuOiAwMDAwNTMwNyAgbWZuOiAwMDAwNTMwNw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+MzowOV0gICBnZm46IDAwMDA1MzA4ICBtZm46IDAwMDA1MzA4DQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMzOjA5XSAgIGdmbjogMDAwMDUzMDkgIG1mbjogMDAwMDUzMDkNCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzM6MDldICAgZ2ZuOiAwMDAwNTMwYSAgbWZuOiAwMDAwNTMwYQ0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowOV0gICBnZm46IDAwMDA1MzBiICBtZm46IDAw
+MDA1MzBiDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA5XSAgIGdmbjogMDAwMDUzMGMg
+IG1mbjogMDAwMDUzMGMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDldICAgZ2ZuOiAw
+MDAwNTMwZCAgbWZuOiAwMDAwNTMwZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowOV0g
+ICBnZm46IDAwMDA1MzBlICBtZm46IDAwMDA1MzBlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMzOjA5XSAgIGdmbjogMDAwMDUzMGYgIG1mbjogMDAwMDUzMGYNCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzM6MDldICAgZ2ZuOiAwMDAwNTMxMCAgbWZuOiAwMDAwNTMxMA0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMzowOV0gICBnZm46IDAwMDA1MzExICBtZm46IDAwMDA1MzEx
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA5XSAgIGdmbjogMDAwMDUzMTIgIG1mbjog
+MDAwMDUzMTINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDldICAgZ2ZuOiAwMDAwNTMx
+MyAgbWZuOiAwMDAwNTMxMw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowOV0gICBnZm46
+IDAwMDA1MzE0ICBtZm46IDAwMDA1MzE0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA5
+XSAgIGdmbjogMDAwMDUzMTUgIG1mbjogMDAwMDUzMTUNCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzM6MDldICAgZ2ZuOiAwMDAwNTMxNiAgbWZuOiAwMDAwNTMxNg0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMzowOV0gICBnZm46IDAwMDA1MzE3ICBtZm46IDAwMDA1MzE3DQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA5XSAgIGdmbjogMDAwMDUzMTggIG1mbjogMDAwMDUz
+MTgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDldICAgZ2ZuOiAwMDAwNTMxOSAgbWZu
+OiAwMDAwNTMxOQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowOV0gICBnZm46IDAwMDA1
+MzFhICBtZm46IDAwMDA1MzFhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA5XSAgIGdm
+bjogMDAwMDUzMWIgIG1mbjogMDAwMDUzMWINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6
+MDldICAgZ2ZuOiAwMDAwNTMxYyAgbWZuOiAwMDAwNTMxYw0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMzowOV0gICBnZm46IDAwMDA1MzFkICBtZm46IDAwMDA1MzFkDQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMzOjA5XSAgIGdmbjogMDAwMDUzMWUgIG1mbjogMDAwMDUzMWUNCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDldICAgZ2ZuOiAwMDAwNTMxZiAgbWZuOiAwMDAw
+NTMxZg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowOV0gICBnZm46IDAwMDA1MzIwICBt
+Zm46IDAwMDA1MzIwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA5XSAgIGdmbjogMDAw
+MDUzMjEgIG1mbjogMDAwMDUzMjENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDldICAg
+Z2ZuOiAwMDAwNTMyMiAgbWZuOiAwMDAwNTMyMg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+MzowOV0gICBnZm46IDAwMDA1MzIzICBtZm46IDAwMDA1MzIzDQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMzOjA5XSAgIGdmbjogMDAwMDUzMjQgIG1mbjogMDAwMDUzMjQNCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzM6MDldICAgZ2ZuOiAwMDAwNTMyNSAgbWZuOiAwMDAwNTMyNQ0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowOV0gICBnZm46IDAwMDA1MzI2ICBtZm46IDAw
+MDA1MzI2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA5XSAgIGdmbjogMDAwMDUzMjcg
+IG1mbjogMDAwMDUzMjcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDldICAgZ2ZuOiAw
+MDAwNTMyOCAgbWZuOiAwMDAwNTMyOA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowOV0g
+ICBnZm46IDAwMDA1MzI5ICBtZm46IDAwMDA1MzI5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMzOjA5XSAgIGdmbjogMDAwMDUzMmEgIG1mbjogMDAwMDUzMmENCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzM6MDldICAgZ2ZuOiAwMDAwNTMyYiAgbWZuOiAwMDAwNTMyYg0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMzowOV0gICBnZm46IDAwMDA1MzJjICBtZm46IDAwMDA1MzJj
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA5XSAgIGdmbjogMDAwMDUzMmQgIG1mbjog
+MDAwMDUzMmQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDldICAgZ2ZuOiAwMDAwNTMy
+ZSAgbWZuOiAwMDAwNTMyZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxMF0gICBnZm46
+IDAwMDA1MzJmICBtZm46IDAwMDA1MzJmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjEw
+XSAgIGdmbjogMDAwMDUzMzAgIG1mbjogMDAwMDUzMzANCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzM6MTBdICAgZ2ZuOiAwMDAwNTMzMSAgbWZuOiAwMDAwNTMzMQ0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMzoxMF0gICBnZm46IDAwMDA1MzMyICBtZm46IDAwMDA1MzMyDQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMzOjEwXSAgIGdmbjogMDAwMDUzMzMgIG1mbjogMDAwMDUz
+MzMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTBdICAgZ2ZuOiAwMDAwNTMzNCAgbWZu
+OiAwMDAwNTMzNA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxMF0gICBnZm46IDAwMDA1
+MzM1ICBtZm46IDAwMDA1MzM1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjEwXSAgIGdm
+bjogMDAwMDUzMzYgIG1mbjogMDAwMDUzMzYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6
+MTBdICAgZ2ZuOiAwMDAwNTMzNyAgbWZuOiAwMDAwNTMzNw0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMzoxMF0gICBnZm46IDAwMDA1MzM4ICBtZm46IDAwMDA1MzM4DQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMzOjEwXSAgIGdmbjogMDAwMDUzMzkgIG1mbjogMDAwMDUzMzkNCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTBdICAgZ2ZuOiAwMDAwNTMzYSAgbWZuOiAwMDAw
+NTMzYQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxMF0gICBnZm46IDAwMDA1MzNiICBt
+Zm46IDAwMDA1MzNiDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjEwXSAgIGdmbjogMDAw
+MDUzM2MgIG1mbjogMDAwMDUzM2MNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTBdICAg
+Z2ZuOiAwMDAwNTMzZCAgbWZuOiAwMDAwNTMzZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+MzoxMF0gICBnZm46IDAwMDA1MzNlICBtZm46IDAwMDA1MzNlDQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMzOjEwXSAgIGdmbjogMDAwMDUzM2YgIG1mbjogMDAwMDUzM2YNCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzM6MTBdICAgZ2ZuOiAwMDAwNTM0MCAgbWZuOiAwMDAwNTM0MA0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxMF0gICBnZm46IDAwMDA1MzQxICBtZm46IDAw
+MDA1MzQxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjEwXSAgIGdmbjogMDAwMDUzNDIg
+IG1mbjogMDAwMDUzNDINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTBdICAgZ2ZuOiAw
+MDAwNTM0MyAgbWZuOiAwMDAwNTM0Mw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxMF0g
+ICBnZm46IDAwMDA1MzQ0ICBtZm46IDAwMDA1MzQ0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMzOjEwXSAgIGdmbjogMDAwMDUzNDUgIG1mbjogMDAwMDUzNDUNCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzM6MTBdICAgZ2ZuOiAwMDAwNTM0NiAgbWZuOiAwMDAwNTM0Ng0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMzoxMF0gICBnZm46IDAwMDA1MzQ3ICBtZm46IDAwMDA1MzQ3
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjEwXSAgIGdmbjogMDAwMDUzNDggIG1mbjog
+MDAwMDUzNDgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTBdICAgZ2ZuOiAwMDAwNTM0
+OSAgbWZuOiAwMDAwNTM0OQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxMF0gICBnZm46
+IDAwMDA1MzRhICBtZm46IDAwMDA1MzRhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjEw
+XSAgIGdmbjogMDAwMDUzNGIgIG1mbjogMDAwMDUzNGINCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzM6MTBdICAgZ2ZuOiAwMDAwNTM0YyAgbWZuOiAwMDAwNTM0Yw0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMzoxMF0gICBnZm46IDAwMDA1MzRkICBtZm46IDAwMDA1MzRkDQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMzOjEwXSAgIGdmbjogMDAwMDUzNGUgIG1mbjogMDAwMDUz
+NGUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTBdICAgZ2ZuOiAwMDAwNTM0ZiAgbWZu
+OiAwMDAwNTM0Zg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxMF0gICBnZm46IDAwMDA1
+MzUwICBtZm46IDAwMDA1MzUwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjEwXSAgIGdm
+bjogMDAwMDUzNTEgIG1mbjogMDAwMDUzNTENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6
+MTBdICAgZ2ZuOiAwMDAwNTM1MiAgbWZuOiAwMDAwNTM1Mg0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMzoxMF0gICBnZm46IDAwMDA1MzUzICBtZm46IDAwMDA1MzUzDQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMzOjEwXSAgIGdmbjogMDAwMDUzNTQgIG1mbjogMDAwMDUzNTQNCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTBdICAgZ2ZuOiAwMDAwNTM1NSAgbWZuOiAwMDAw
+NTM1NQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxMF0gICBnZm46IDAwMDA1MzU2ICBt
+Zm46IDAwMDA1MzU2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjEwXSAgIGdmbjogMDAw
+MDUzNTcgIG1mbjogMDAwMDUzNTcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTBdICAg
+Z2ZuOiAwMDAwNTM1OCAgbWZuOiAwMDAwNTM1OA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+MzoxMF0gICBnZm46IDAwMDA1MzU5ICBtZm46IDAwMDA1MzU5DQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMzOjEwXSAgIGdmbjogMDAwMDUzNWEgIG1mbjogMDAwMDUzNWENCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzM6MTBdICAgZ2ZuOiAwMDAwNTM1YiAgbWZuOiAwMDAwNTM1Yg0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxMF0gICBnZm46IDAwMDA1MzVjICBtZm46IDAw
+MDA1MzVjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjEwXSAgIGdmbjogMDAwMDUzNWQg
+IG1mbjogMDAwMDUzNWQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTBdICAgZ2ZuOiAw
+MDAwNTM1ZSAgbWZuOiAwMDAwNTM1ZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxMF0g
+ICBnZm46IDAwMDA1MzVmICBtZm46IDAwMDA1MzVmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMzOjEwXSAgIGdmbjogMDAwMDUzNjAgIG1mbjogMDAwMDUzNjANCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzM6MTBdICAgZ2ZuOiAwMDAwNTM2MSAgbWZuOiAwMDAwNTM2MQ0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMzoxMF0gICBnZm46IDAwMDA1MzYyICBtZm46IDAwMDA1MzYy
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjEwXSAgIGdmbjogMDAwMDUzNjMgIG1mbjog
+MDAwMDUzNjMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTBdICAgZ2ZuOiAwMDAwNTM2
+NCAgbWZuOiAwMDAwNTM2NA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxMF0gICBnZm46
+IDAwMDA1MzY1ICBtZm46IDAwMDA1MzY1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjEw
+XSAgIGdmbjogMDAwMDUzNjYgIG1mbjogMDAwMDUzNjYNCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzM6MTBdICAgZ2ZuOiAwMDAwNTM2NyAgbWZuOiAwMDAwNTM2Nw0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMzoxMF0gICBnZm46IDAwMDA1MzY4ICBtZm46IDAwMDA1MzY4DQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMzOjEwXSAgIGdmbjogMDAwMDUzNjkgIG1mbjogMDAwMDUz
+NjkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTBdICAgZ2ZuOiAwMDAwNTM2YSAgbWZu
+OiAwMDAwNTM2YQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxMF0gICBnZm46IDAwMDA1
+MzZiICBtZm46IDAwMDA1MzZiDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjEwXSAgIGdm
+bjogMDAwMDUzNmMgIG1mbjogMDAwMDUzNmMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6
+MTBdICAgZ2ZuOiAwMDAwNTM2ZCAgbWZuOiAwMDAwNTM2ZA0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMzoxMF0gICBnZm46IDAwMDA1MzZlICBtZm46IDAwMDA1MzZlDQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMzOjExXSAgIGdmbjogMDAwMDUzNmYgIG1mbjogMDAwMDUzNmYNCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTFdICAgZ2ZuOiAwMDAwNTM3MCAgbWZuOiAwMDAw
+NTM3MA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxMV0gICBnZm46IDAwMDA1MzcxICBt
+Zm46IDAwMDA1MzcxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjExXSAgIGdmbjogMDAw
+MDUzNzIgIG1mbjogMDAwMDUzNzINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTFdICAg
+Z2ZuOiAwMDAwNTM3MyAgbWZuOiAwMDAwNTM3Mw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+MzoxMV0gICBnZm46IDAwMDA1Mzc0ICBtZm46IDAwMDA1Mzc0DQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMzOjExXSAgIGdmbjogMDAwMDUzNzUgIG1mbjogMDAwMDUzNzUNCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzM6MTFdICAgZ2ZuOiAwMDAwNTM3NiAgbWZuOiAwMDAwNTM3Ng0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxMV0gICBnZm46IDAwMDA1Mzc3ICBtZm46IDAw
+MDA1Mzc3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjExXSAgIGdmbjogMDAwMDUzNzgg
+IG1mbjogMDAwMDUzNzgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTFdICAgZ2ZuOiAw
+MDAwNTM3OSAgbWZuOiAwMDAwNTM3OQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxMV0g
+ICBnZm46IDAwMDA1MzdhICBtZm46IDAwMDA1MzdhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMzOjExXSAgIGdmbjogMDAwMDUzN2IgIG1mbjogMDAwMDUzN2INCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzM6MTFdICAgZ2ZuOiAwMDAwNTM3YyAgbWZuOiAwMDAwNTM3Yw0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMzoxMV0gICBnZm46IDAwMDA1MzdkICBtZm46IDAwMDA1Mzdk
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjExXSAgIGdmbjogMDAwMDUzN2UgIG1mbjog
+MDAwMDUzN2UNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTFdICAgZ2ZuOiAwMDAwNTM3
+ZiAgbWZuOiAwMDAwNTM3Zg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxMV0gICBnZm46
+IDAwMDA1MzgwICBtZm46IDAwMDA1MzgwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjEx
+XSAgIGdmbjogMDAwMDUzODEgIG1mbjogMDAwMDUzODENCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzM6MTFdICAgZ2ZuOiAwMDAwNTM4MiAgbWZuOiAwMDAwNTM4Mg0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMzoxMV0gICBnZm46IDAwMDA1MzgzICBtZm46IDAwMDA1MzgzDQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMzOjExXSAgIGdmbjogMDAwMDUzODQgIG1mbjogMDAwMDUz
+ODQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTFdICAgZ2ZuOiAwMDAwNTM4NSAgbWZu
+OiAwMDAwNTM4NQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxMV0gICBnZm46IDAwMDA1
+Mzg2ICBtZm46IDAwMDA1Mzg2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjExXSAgIGdm
+bjogMDAwMDUzODcgIG1mbjogMDAwMDUzODcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6
+MTFdICAgZ2ZuOiAwMDAwNTM4OCAgbWZuOiAwMDAwNTM4OA0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMzoxMV0gICBnZm46IDAwMDA1Mzg5ICBtZm46IDAwMDA1Mzg5DQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMzOjExXSAgIGdmbjogMDAwMDUzOGEgIG1mbjogMDAwMDUzOGENCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTFdICAgZ2ZuOiAwMDAwNTM4YiAgbWZuOiAwMDAw
+NTM4Yg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxMV0gICBnZm46IDAwMDA1MzhjICBt
+Zm46IDAwMDA1MzhjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjExXSAgIGdmbjogMDAw
+MDUzOGQgIG1mbjogMDAwMDUzOGQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTFdICAg
+Z2ZuOiAwMDAwNTM4ZSAgbWZuOiAwMDAwNTM4ZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+MzoxMV0gICBnZm46IDAwMDA1MzhmICBtZm46IDAwMDA1MzhmDQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMzOjExXSAgIGdmbjogMDAwMDUzOTAgIG1mbjogMDAwMDUzOTANCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzM6MTFdICAgZ2ZuOiAwMDAwNTM5MSAgbWZuOiAwMDAwNTM5MQ0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxMV0gICBnZm46IDAwMDA1MzkyICBtZm46IDAw
+MDA1MzkyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjExXSAgIGdmbjogMDAwMDUzOTMg
+IG1mbjogMDAwMDUzOTMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTFdICAgZ2ZuOiAw
+MDAwNTM5NCAgbWZuOiAwMDAwNTM5NA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxMV0g
+ICBnZm46IDAwMDA1Mzk1ICBtZm46IDAwMDA1Mzk1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMzOjExXSAgIGdmbjogMDAwMDUzOTYgIG1mbjogMDAwMDUzOTYNCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzM6MTFdICAgZ2ZuOiAwMDAwNTM5NyAgbWZuOiAwMDAwNTM5Nw0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMzoxMV0gICBnZm46IDAwMDA1Mzk4ICBtZm46IDAwMDA1Mzk4
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjExXSAgIGdmbjogMDAwMDUzOTkgIG1mbjog
+MDAwMDUzOTkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTFdICAgZ2ZuOiAwMDAwNTM5
+YSAgbWZuOiAwMDAwNTM5YQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxMV0gICBnZm46
+IDAwMDA1MzliICBtZm46IDAwMDA1MzliDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjEx
+XSAgIGdmbjogMDAwMDUzOWMgIG1mbjogMDAwMDUzOWMNCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzM6MTFdICAgZ2ZuOiAwMDAwNTM5ZCAgbWZuOiAwMDAwNTM5ZA0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMzoxMV0gICBnZm46IDAwMDA1MzllICBtZm46IDAwMDA1MzllDQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMzOjExXSAgIGdmbjogMDAwMDUzOWYgIG1mbjogMDAwMDUz
+OWYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTFdICAgZ2ZuOiAwMDAwNTNhMCAgbWZu
+OiAwMDAwNTNhMA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxMV0gICBnZm46IDAwMDA1
+M2ExICBtZm46IDAwMDA1M2ExDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjExXSAgIGdm
+bjogMDAwMDUzYTIgIG1mbjogMDAwMDUzYTINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6
+MTFdICAgZ2ZuOiAwMDAwNTNhMyAgbWZuOiAwMDAwNTNhMw0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMzoxMV0gICBnZm46IDAwMDA1M2E0ICBtZm46IDAwMDA1M2E0DQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMzOjExXSAgIGdmbjogMDAwMDUzYTUgIG1mbjogMDAwMDUzYTUNCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTFdICAgZ2ZuOiAwMDAwNTNhNiAgbWZuOiAwMDAw
+NTNhNg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxMV0gICBnZm46IDAwMDA1M2E3ICBt
+Zm46IDAwMDA1M2E3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjExXSAgIGdmbjogMDAw
+MDUzYTggIG1mbjogMDAwMDUzYTgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTFdICAg
+Z2ZuOiAwMDAwNTNhOSAgbWZuOiAwMDAwNTNhOQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+MzoxMV0gICBnZm46IDAwMDA1M2FhICBtZm46IDAwMDA1M2FhDQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMzOjExXSAgIGdmbjogMDAwMDUzYWIgIG1mbjogMDAwMDUzYWINCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzM6MTFdICAgZ2ZuOiAwMDAwNTNhYyAgbWZuOiAwMDAwNTNhYw0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxMV0gICBnZm46IDAwMDA1M2FkICBtZm46IDAw
+MDA1M2FkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjExXSAgIGdmbjogMDAwMDUzYWUg
+IG1mbjogMDAwMDUzYWUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTJdICAgZ2ZuOiAw
+MDAwNTNhZiAgbWZuOiAwMDAwNTNhZg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxMl0g
+ICBnZm46IDAwMDA1M2IwICBtZm46IDAwMDA1M2IwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMzOjEyXSAgIGdmbjogMDAwMDUzYjEgIG1mbjogMDAwMDUzYjENCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzM6MTJdICAgZ2ZuOiAwMDAwNTNiMiAgbWZuOiAwMDAwNTNiMg0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMzoxMl0gICBnZm46IDAwMDA1M2IzICBtZm46IDAwMDA1M2Iz
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjEyXSAgIGdmbjogMDAwMDUzYjQgIG1mbjog
+MDAwMDUzYjQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTJdICAgZ2ZuOiAwMDAwNTNi
+NSAgbWZuOiAwMDAwNTNiNQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxMl0gICBnZm46
+IDAwMDA1M2I2ICBtZm46IDAwMDA1M2I2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjEy
+XSAgIGdmbjogMDAwMDUzYjcgIG1mbjogMDAwMDUzYjcNCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzM6MTJdICAgZ2ZuOiAwMDAwNTNiOCAgbWZuOiAwMDAwNTNiOA0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMzoxMl0gICBnZm46IDAwMDA1M2I5ICBtZm46IDAwMDA1M2I5DQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMzOjEyXSAgIGdmbjogMDAwMDUzYmEgIG1mbjogMDAwMDUz
+YmENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTJdICAgZ2ZuOiAwMDAwNTNiYiAgbWZu
+OiAwMDAwNTNiYg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxMl0gICBnZm46IDAwMDA1
+M2JjICBtZm46IDAwMDA1M2JjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjEyXSAgIGdm
+bjogMDAwMDUzYmQgIG1mbjogMDAwMDUzYmQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6
+MTJdICAgZ2ZuOiAwMDAwNTNiZSAgbWZuOiAwMDAwNTNiZQ0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMzoxMl0gICBnZm46IDAwMDA1M2JmICBtZm46IDAwMDA1M2JmDQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMzOjEyXSAgIGdmbjogMDAwMDUzYzAgIG1mbjogMDAwMDUzYzANCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTJdICAgZ2ZuOiAwMDAwNTNjMSAgbWZuOiAwMDAw
+NTNjMQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxMl0gICBnZm46IDAwMDA1M2MyICBt
+Zm46IDAwMDA1M2MyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjEyXSAgIGdmbjogMDAw
+MDUzYzMgIG1mbjogMDAwMDUzYzMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTJdICAg
+Z2ZuOiAwMDAwNTNjNCAgbWZuOiAwMDAwNTNjNA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+MzoxMl0gICBnZm46IDAwMDA1M2M1ICBtZm46IDAwMDA1M2M1DQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMzOjEyXSAgIGdmbjogMDAwMDUzYzYgIG1mbjogMDAwMDUzYzYNCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzM6MTJdICAgZ2ZuOiAwMDAwNTNjNyAgbWZuOiAwMDAwNTNjNw0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxMl0gICBnZm46IDAwMDA1M2M4ICBtZm46IDAw
+MDA1M2M4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjEyXSAgIGdmbjogMDAwMDUzYzkg
+IG1mbjogMDAwMDUzYzkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTJdICAgZ2ZuOiAw
+MDAwNTNjYSAgbWZuOiAwMDAwNTNjYQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxMl0g
+ICBnZm46IDAwMDA1M2NiICBtZm46IDAwMDA1M2NiDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMzOjEyXSAgIGdmbjogMDAwMDUzY2MgIG1mbjogMDAwMDUzY2MNCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzM6MTJdICAgZ2ZuOiAwMDAwNTNjZCAgbWZuOiAwMDAwNTNjZA0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMzoxMl0gICBnZm46IDAwMDA1M2NlICBtZm46IDAwMDA1M2Nl
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjEyXSAgIGdmbjogMDAwMDUzY2YgIG1mbjog
+MDAwMDUzY2YNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTJdICAgZ2ZuOiAwMDAwNTNk
+MCAgbWZuOiAwMDAwNTNkMA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxMl0gICBnZm46
+IDAwMDA1M2QxICBtZm46IDAwMDA1M2QxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjEy
+XSAgIGdmbjogMDAwMDUzZDIgIG1mbjogMDAwMDUzZDINCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzM6MTJdICAgZ2ZuOiAwMDAwNTNkMyAgbWZuOiAwMDAwNTNkMw0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMzoxMl0gICBnZm46IDAwMDA1M2Q0ICBtZm46IDAwMDA1M2Q0DQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMzOjEyXSAgIGdmbjogMDAwMDUzZDUgIG1mbjogMDAwMDUz
+ZDUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTJdICAgZ2ZuOiAwMDAwNTNkNiAgbWZu
+OiAwMDAwNTNkNg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxMl0gICBnZm46IDAwMDA1
+M2Q3ICBtZm46IDAwMDA1M2Q3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjEyXSAgIGdm
+bjogMDAwMDUzZDggIG1mbjogMDAwMDUzZDgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6
+MTJdICAgZ2ZuOiAwMDAwNTNkOSAgbWZuOiAwMDAwNTNkOQ0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMzoxMl0gICBnZm46IDAwMDA1M2RhICBtZm46IDAwMDA1M2RhDQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMzOjEyXSAgIGdmbjogMDAwMDUzZGIgIG1mbjogMDAwMDUzZGINCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTJdICAgZ2ZuOiAwMDAwNTNkYyAgbWZuOiAwMDAw
+NTNkYw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxMl0gICBnZm46IDAwMDA1M2RkICBt
+Zm46IDAwMDA1M2RkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjEyXSAgIGdmbjogMDAw
+MDUzZGUgIG1mbjogMDAwMDUzZGUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTJdICAg
+Z2ZuOiAwMDAwNTNkZiAgbWZuOiAwMDAwNTNkZg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+MzoxMl0gICBnZm46IDAwMDA1M2UwICBtZm46IDAwMDA1M2UwDQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMzOjEyXSAgIGdmbjogMDAwMDUzZTEgIG1mbjogMDAwMDUzZTENCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzM6MTJdICAgZ2ZuOiAwMDAwNTNlMiAgbWZuOiAwMDAwNTNlMg0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxMl0gICBnZm46IDAwMDA1M2UzICBtZm46IDAw
+MDA1M2UzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjEyXSAgIGdmbjogMDAwMDUzZTQg
+IG1mbjogMDAwMDUzZTQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTJdICAgZ2ZuOiAw
+MDAwNTNlNSAgbWZuOiAwMDAwNTNlNQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxMl0g
+ICBnZm46IDAwMDA1M2U2ICBtZm46IDAwMDA1M2U2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMzOjEyXSAgIGdmbjogMDAwMDUzZTcgIG1mbjogMDAwMDUzZTcNCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzM6MTJdICAgZ2ZuOiAwMDAwNTNlOCAgbWZuOiAwMDAwNTNlOA0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMzoxMl0gICBnZm46IDAwMDA1M2U5ICBtZm46IDAwMDA1M2U5
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjEyXSAgIGdmbjogMDAwMDUzZWEgIG1mbjog
+MDAwMDUzZWENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTJdICAgZ2ZuOiAwMDAwNTNl
+YiAgbWZuOiAwMDAwNTNlYg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxMl0gICBnZm46
+IDAwMDA1M2VjICBtZm46IDAwMDA1M2VjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjEy
+XSAgIGdmbjogMDAwMDUzZWQgIG1mbjogMDAwMDUzZWQNCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzM6MTJdICAgZ2ZuOiAwMDAwNTNlZSAgbWZuOiAwMDAwNTNlZQ0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMzoxM10gICBnZm46IDAwMDA1M2VmICBtZm46IDAwMDA1M2VmDQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMzOjEzXSAgIGdmbjogMDAwMDUzZjAgIG1mbjogMDAwMDUz
+ZjANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTNdICAgZ2ZuOiAwMDAwNTNmMSAgbWZu
+OiAwMDAwNTNmMQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxM10gICBnZm46IDAwMDA1
+M2YyICBtZm46IDAwMDA1M2YyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjEzXSAgIGdm
+bjogMDAwMDUzZjMgIG1mbjogMDAwMDUzZjMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6
+MTNdICAgZ2ZuOiAwMDAwNTNmNCAgbWZuOiAwMDAwNTNmNA0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMzoxM10gICBnZm46IDAwMDA1M2Y1ICBtZm46IDAwMDA1M2Y1DQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMzOjEzXSAgIGdmbjogMDAwMDUzZjYgIG1mbjogMDAwMDUzZjYNCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTNdICAgZ2ZuOiAwMDAwNTNmNyAgbWZuOiAwMDAw
+NTNmNw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxM10gICBnZm46IDAwMDA1M2Y4ICBt
+Zm46IDAwMDA1M2Y4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjEzXSAgIGdmbjogMDAw
+MDUzZjkgIG1mbjogMDAwMDUzZjkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTNdICAg
+Z2ZuOiAwMDAwNTNmYSAgbWZuOiAwMDAwNTNmYQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+MzoxM10gICBnZm46IDAwMDA1M2ZiICBtZm46IDAwMDA1M2ZiDQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMzOjEzXSAgIGdmbjogMDAwMDUzZmMgIG1mbjogMDAwMDUzZmMNCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzM6MTNdICAgZ2ZuOiAwMDAwNTNmZCAgbWZuOiAwMDAwNTNmZA0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxM10gICBnZm46IDAwMDA1M2ZlICBtZm46IDAw
+MDA1M2ZlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjEzXSAgIGdmbjogMDAwMDUzZmYg
+IG1mbjogMDAwMDUzZmYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTNdICAgZ2ZuOiAw
+MDAwNTQwMCAgbWZuOiAwMDAwNTQwMA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxM10g
+ICBnZm46IDAwMDA1NDAxICBtZm46IDAwMDA1NDAxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMzOjEzXSAgIGdmbjogMDAwMDU0MDIgIG1mbjogMDAwMDU0MDINCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzM6MTNdICAgZ2ZuOiAwMDAwNTQwMyAgbWZuOiAwMDAwNTQwMw0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMzoxM10gICBnZm46IDAwMDA1NDA0ICBtZm46IDAwMDA1NDA0
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjEzXSAgIGdmbjogMDAwMDU0MDUgIG1mbjog
+MDAwMDU0MDUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTNdICAgZ2ZuOiAwMDAwNTQw
+NiAgbWZuOiAwMDAwNTQwNg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxM10gICBnZm46
+IDAwMDA1NDA3ICBtZm46IDAwMDA1NDA3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjEz
+XSAgIGdmbjogMDAwMDU0MDggIG1mbjogMDAwMDU0MDgNCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzM6MTNdICAgZ2ZuOiAwMDAwNTQwOSAgbWZuOiAwMDAwNTQwOQ0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMzoxM10gICBnZm46IDAwMDA1NDBhICBtZm46IDAwMDA1NDBhDQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMzOjEzXSAgIGdmbjogMDAwMDU0MGIgIG1mbjogMDAwMDU0
+MGINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTNdICAgZ2ZuOiAwMDAwNTQwYyAgbWZu
+OiAwMDAwNTQwYw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxM10gICBnZm46IDAwMDA1
+NDBkICBtZm46IDAwMDA1NDBkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjEzXSAgIGdm
+bjogMDAwMDU0MGUgIG1mbjogMDAwMDU0MGUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6
+MTNdICAgZ2ZuOiAwMDAwNTQwZiAgbWZuOiAwMDAwNTQwZg0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMzoxM10gICBnZm46IDAwMDA1NDEwICBtZm46IDAwMDA1NDEwDQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMzOjEzXSAgIGdmbjogMDAwMDU0MTEgIG1mbjogMDAwMDU0MTENCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTNdICAgZ2ZuOiAwMDAwNTQxMiAgbWZuOiAwMDAw
+NTQxMg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxM10gICBnZm46IDAwMDA1NDEzICBt
+Zm46IDAwMDA1NDEzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjEzXSAgIGdmbjogMDAw
+MDU0MTQgIG1mbjogMDAwMDU0MTQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTNdICAg
+Z2ZuOiAwMDAwNTQxNSAgbWZuOiAwMDAwNTQxNQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+MzoxM10gICBnZm46IDAwMDA1NDE2ICBtZm46IDAwMDA1NDE2DQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMzOjEzXSAgIGdmbjogMDAwMDU0MTcgIG1mbjogMDAwMDU0MTcNCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzM6MTNdICAgZ2ZuOiAwMDAwNTQxOCAgbWZuOiAwMDAwNTQxOA0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxM10gICBnZm46IDAwMDA1NDE5ICBtZm46IDAw
+MDA1NDE5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjEzXSAgIGdmbjogMDAwMDU0MWEg
+IG1mbjogMDAwMDU0MWENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTNdICAgZ2ZuOiAw
+MDAwNTQxYiAgbWZuOiAwMDAwNTQxYg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxM10g
+ICBnZm46IDAwMDA1NDFjICBtZm46IDAwMDA1NDFjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMzOjEzXSAgIGdmbjogMDAwMDU0MWQgIG1mbjogMDAwMDU0MWQNCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzM6MTNdICAgZ2ZuOiAwMDAwNTQxZSAgbWZuOiAwMDAwNTQxZQ0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMzoxM10gICBnZm46IDAwMDA1NDFmICBtZm46IDAwMDA1NDFm
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjEzXSAgIGdmbjogMDAwMDU0MjAgIG1mbjog
+MDAwMDU0MjANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTNdICAgZ2ZuOiAwMDAwNTQy
+MSAgbWZuOiAwMDAwNTQyMQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxM10gICBnZm46
+IDAwMDA1NDIyICBtZm46IDAwMDA1NDIyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjEz
+XSAgIGdmbjogMDAwMDU0MjMgIG1mbjogMDAwMDU0MjMNCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzM6MTNdICAgZ2ZuOiAwMDAwNTQyNCAgbWZuOiAwMDAwNTQyNA0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMzoxM10gICBnZm46IDAwMDA1NDI1ICBtZm46IDAwMDA1NDI1DQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMzOjEzXSAgIGdmbjogMDAwMDU0MjYgIG1mbjogMDAwMDU0
+MjYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTNdICAgZ2ZuOiAwMDAwNTQyNyAgbWZu
+OiAwMDAwNTQyNw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxM10gICBnZm46IDAwMDA1
+NDI4ICBtZm46IDAwMDA1NDI4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjEzXSAgIGdm
+bjogMDAwMDU0MjkgIG1mbjogMDAwMDU0MjkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6
+MTNdICAgZ2ZuOiAwMDAwNTQyYSAgbWZuOiAwMDAwNTQyYQ0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMzoxM10gICBnZm46IDAwMDA1NDJiICBtZm46IDAwMDA1NDJiDQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMzOjEzXSAgIGdmbjogMDAwMDU0MmMgIG1mbjogMDAwMDU0MmMNCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTNdICAgZ2ZuOiAwMDAwNTQyZCAgbWZuOiAwMDAw
+NTQyZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxM10gICBnZm46IDAwMDA1NDJlICBt
+Zm46IDAwMDA1NDJlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjE0XSAgIGdmbjogMDAw
+MDU0MmYgIG1mbjogMDAwMDU0MmYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTRdICAg
+Z2ZuOiAwMDAwNTQzMCAgbWZuOiAwMDAwNTQzMA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+MzoxNF0gICBnZm46IDAwMDA1NDMxICBtZm46IDAwMDA1NDMxDQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMzOjE0XSAgIGdmbjogMDAwMDU0MzIgIG1mbjogMDAwMDU0MzINCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzM6MTRdICAgZ2ZuOiAwMDAwNTQzMyAgbWZuOiAwMDAwNTQzMw0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxNF0gICBnZm46IDAwMDA1NDM0ICBtZm46IDAw
+MDA1NDM0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjE0XSAgIGdmbjogMDAwMDU0MzUg
+IG1mbjogMDAwMDU0MzUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTRdICAgZ2ZuOiAw
+MDAwNTQzNiAgbWZuOiAwMDAwNTQzNg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxNF0g
+ICBnZm46IDAwMDA1NDM3ICBtZm46IDAwMDA1NDM3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMzOjE0XSAgIGdmbjogMDAwMDU0MzggIG1mbjogMDAwMDU0MzgNCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzM6MTRdICAgZ2ZuOiAwMDAwNTQzOSAgbWZuOiAwMDAwNTQzOQ0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMzoxNF0gICBnZm46IDAwMDA1NDNhICBtZm46IDAwMDA1NDNh
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjE0XSAgIGdmbjogMDAwMDU0M2IgIG1mbjog
+MDAwMDU0M2INCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTRdICAgZ2ZuOiAwMDAwNTQz
+YyAgbWZuOiAwMDAwNTQzYw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxNF0gICBnZm46
+IDAwMDA1NDNkICBtZm46IDAwMDA1NDNkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjE0
+XSAgIGdmbjogMDAwMDU0M2UgIG1mbjogMDAwMDU0M2UNCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzM6MTRdICAgZ2ZuOiAwMDAwNTQzZiAgbWZuOiAwMDAwNTQzZg0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMzoxNF0gICBnZm46IDAwMDA1NDQwICBtZm46IDAwMDA1NDQwDQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMzOjE0XSAgIGdmbjogMDAwMDU0NDEgIG1mbjogMDAwMDU0
+NDENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTRdICAgZ2ZuOiAwMDAwNTQ0MiAgbWZu
+OiAwMDAwNTQ0Mg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxNF0gICBnZm46IDAwMDA1
+NDQzICBtZm46IDAwMDA1NDQzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjE0XSAgIGdm
+bjogMDAwMDU0NDQgIG1mbjogMDAwMDU0NDQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6
+MTRdICAgZ2ZuOiAwMDAwNTQ0NSAgbWZuOiAwMDAwNTQ0NQ0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMzoxNF0gICBnZm46IDAwMDA1NDQ2ICBtZm46IDAwMDA1NDQ2DQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMzOjE0XSAgIGdmbjogMDAwMDU0NDcgIG1mbjogMDAwMDU0NDcNCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTRdICAgZ2ZuOiAwMDAwNTQ0OCAgbWZuOiAwMDAw
+NTQ0OA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxNF0gICBnZm46IDAwMDA1NDQ5ICBt
+Zm46IDAwMDA1NDQ5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjE0XSAgIGdmbjogMDAw
+MDU0NGEgIG1mbjogMDAwMDU0NGENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTRdICAg
+Z2ZuOiAwMDAwNTQ0YiAgbWZuOiAwMDAwNTQ0Yg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+MzoxNF0gICBnZm46IDAwMDA1NDRjICBtZm46IDAwMDA1NDRjDQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMzOjE0XSAgIGdmbjogMDAwMDU0NGQgIG1mbjogMDAwMDU0NGQNCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzM6MTRdICAgZ2ZuOiAwMDAwNTQ0ZSAgbWZuOiAwMDAwNTQ0ZQ0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxNF0gICBnZm46IDAwMDA1NDRmICBtZm46IDAw
+MDA1NDRmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjE0XSAgIGdmbjogMDAwMDU0NTAg
+IG1mbjogMDAwMDU0NTANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTRdICAgZ2ZuOiAw
+MDAwNTQ1MSAgbWZuOiAwMDAwNTQ1MQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxNF0g
+ICBnZm46IDAwMDA1NDUyICBtZm46IDAwMDA1NDUyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMzOjE0XSAgIGdmbjogMDAwMDU0NTMgIG1mbjogMDAwMDU0NTMNCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzM6MTRdICAgZ2ZuOiAwMDAwNTQ1NCAgbWZuOiAwMDAwNTQ1NA0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMzoxNF0gICBnZm46IDAwMDA1NDU1ICBtZm46IDAwMDA1NDU1
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjE0XSAgIGdmbjogMDAwMDU0NTYgIG1mbjog
+MDAwMDU0NTYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTRdICAgZ2ZuOiAwMDAwNTQ1
+NyAgbWZuOiAwMDAwNTQ1Nw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxNF0gICBnZm46
+IDAwMDA1NDU4ICBtZm46IDAwMDA1NDU4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjE0
+XSAgIGdmbjogMDAwMDU0NTkgIG1mbjogMDAwMDU0NTkNCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzM6MTRdICAgZ2ZuOiAwMDAwNTQ1YSAgbWZuOiAwMDAwNTQ1YQ0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMzoxNF0gICBnZm46IDAwMDA1NDViICBtZm46IDAwMDA1NDViDQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMzOjE0XSAgIGdmbjogMDAwMDU0NWMgIG1mbjogMDAwMDU0
+NWMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTRdICAgZ2ZuOiAwMDAwNTQ1ZCAgbWZu
+OiAwMDAwNTQ1ZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxNF0gICBnZm46IDAwMDA1
+NDVlICBtZm46IDAwMDA1NDVlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjE0XSAgIGdm
+bjogMDAwMDU0NWYgIG1mbjogMDAwMDU0NWYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6
+MTRdICAgZ2ZuOiAwMDAwNTQ2MCAgbWZuOiAwMDAwNTQ2MA0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMzoxNF0gICBnZm46IDAwMDA1NDYxICBtZm46IDAwMDA1NDYxDQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMzOjE0XSAgIGdmbjogMDAwMDU0NjIgIG1mbjogMDAwMDU0NjINCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTRdICAgZ2ZuOiAwMDAwNTQ2MyAgbWZuOiAwMDAw
+NTQ2Mw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxNF0gICBnZm46IDAwMDA1NDY0ICBt
+Zm46IDAwMDA1NDY0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjE0XSAgIGdmbjogMDAw
+MDU0NjUgIG1mbjogMDAwMDU0NjUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTRdICAg
+Z2ZuOiAwMDAwNTQ2NiAgbWZuOiAwMDAwNTQ2Ng0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+MzoxNF0gICBnZm46IDAwMDA1NDY3ICBtZm46IDAwMDA1NDY3DQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMzOjE0XSAgIGdmbjogMDAwMDU0NjggIG1mbjogMDAwMDU0NjgNCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzM6MTRdICAgZ2ZuOiAwMDAwNTQ2OSAgbWZuOiAwMDAwNTQ2OQ0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxNF0gICBnZm46IDAwMDA1NDZhICBtZm46IDAw
+MDA1NDZhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjE0XSAgIGdmbjogMDAwMDU0NmIg
+IG1mbjogMDAwMDU0NmINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTRdICAgZ2ZuOiAw
+MDAwNTQ2YyAgbWZuOiAwMDAwNTQ2Yw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxNF0g
+ICBnZm46IDAwMDA1NDZkICBtZm46IDAwMDA1NDZkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMzOjE0XSAgIGdmbjogMDAwMDU0NmUgIG1mbjogMDAwMDU0NmUNCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzM6MTVdICAgZ2ZuOiAwMDAwNTQ2ZiAgbWZuOiAwMDAwNTQ2Zg0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMzoxNV0gICBnZm46IDAwMDA1NDcwICBtZm46IDAwMDA1NDcw
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjE1XSAgIGdmbjogMDAwMDU0NzEgIG1mbjog
+MDAwMDU0NzENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTVdICAgZ2ZuOiAwMDAwNTQ3
+MiAgbWZuOiAwMDAwNTQ3Mg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxNV0gICBnZm46
+IDAwMDA1NDczICBtZm46IDAwMDA1NDczDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjE1
+XSAgIGdmbjogMDAwMDU0NzQgIG1mbjogMDAwMDU0NzQNCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzM6MTVdICAgZ2ZuOiAwMDAwNTQ3NSAgbWZuOiAwMDAwNTQ3NQ0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMzoxNV0gICBnZm46IDAwMDA1NDc2ICBtZm46IDAwMDA1NDc2DQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMzOjE1XSAgIGdmbjogMDAwMDU0NzcgIG1mbjogMDAwMDU0
+NzcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTVdICAgZ2ZuOiAwMDAwNTQ3OCAgbWZu
+OiAwMDAwNTQ3OA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxNV0gICBnZm46IDAwMDA1
+NDc5ICBtZm46IDAwMDA1NDc5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjE1XSAgIGdm
+bjogMDAwMDU0N2EgIG1mbjogMDAwMDU0N2ENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6
+MTVdICAgZ2ZuOiAwMDAwNTQ3YiAgbWZuOiAwMDAwNTQ3Yg0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMzoxNV0gICBnZm46IDAwMDA1NDdjICBtZm46IDAwMDA1NDdjDQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMzOjE1XSAgIGdmbjogMDAwMDU0N2QgIG1mbjogMDAwMDU0N2QNCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTVdICAgZ2ZuOiAwMDAwNTQ3ZSAgbWZuOiAwMDAw
+NTQ3ZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxNV0gICBnZm46IDAwMDA1NDdmICBt
+Zm46IDAwMDA1NDdmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjE1XSAgIGdmbjogMDAw
+MDU0ODAgIG1mbjogMDAwMDU0ODANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTVdICAg
+Z2ZuOiAwMDAwNTQ4MSAgbWZuOiAwMDAwNTQ4MQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+MzoxNV0gICBnZm46IDAwMDA1NDgyICBtZm46IDAwMDA1NDgyDQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMzOjE1XSAgIGdmbjogMDAwMDU0ODMgIG1mbjogMDAwMDU0ODMNCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzM6MTVdICAgZ2ZuOiAwMDAwNTQ4NCAgbWZuOiAwMDAwNTQ4NA0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxNV0gICBnZm46IDAwMDA1NDg1ICBtZm46IDAw
+MDA1NDg1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjE1XSAgIGdmbjogMDAwMDU0ODYg
+IG1mbjogMDAwMDU0ODYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTVdICAgZ2ZuOiAw
+MDAwNTQ4NyAgbWZuOiAwMDAwNTQ4Nw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxNV0g
+ICBnZm46IDAwMDA1NDg4ICBtZm46IDAwMDA1NDg4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMzOjE1XSAgIGdmbjogMDAwMDU0ODkgIG1mbjogMDAwMDU0ODkNCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzM6MTVdICAgZ2ZuOiAwMDAwNTQ4YSAgbWZuOiAwMDAwNTQ4YQ0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMzoxNV0gICBnZm46IDAwMDA1NDhiICBtZm46IDAwMDA1NDhi
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjE1XSAgIGdmbjogMDAwMDU0OGMgIG1mbjog
+MDAwMDU0OGMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTVdICAgZ2ZuOiAwMDAwNTQ4
+ZCAgbWZuOiAwMDAwNTQ4ZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxNV0gICBnZm46
+IDAwMDA1NDhlICBtZm46IDAwMDA1NDhlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjE1
+XSAgIGdmbjogMDAwMDU0OGYgIG1mbjogMDAwMDU0OGYNCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzM6MTVdICAgZ2ZuOiAwMDAwNTQ5MCAgbWZuOiAwMDAwNTQ5MA0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMzoxNV0gICBnZm46IDAwMDA1NDkxICBtZm46IDAwMDA1NDkxDQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMzOjE1XSAgIGdmbjogMDAwMDU0OTIgIG1mbjogMDAwMDU0
+OTINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTVdICAgZ2ZuOiAwMDAwNTQ5MyAgbWZu
+OiAwMDAwNTQ5Mw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxNV0gICBnZm46IDAwMDA1
+NDk0ICBtZm46IDAwMDA1NDk0DQoNClsgIDQ2MS41NTkwMzBdIGEoWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMzoxNV0gICBnZm46IDAwMDA1NDk1ICBtZm46IDAwMDA1NDk1DQoNCnRhMS4wMDog
+cWMgdGltZW8oWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxNV0gICBnZm46IDAwMDA1NDk2ICBt
+Zm46IDAwMDA1NDk2DQoNCnV0IChjbWQgMHhlYykNCg0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
+MTozMzoxNV0gICBnZm46IDAwMDA1NDk3ICBtZm46IDAwMDA1NDk3DQoNClsgIDQ2MS42MzM3
+MzJdIGEoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxNV0gICBnZm46IDAwMDA1NDk4ICBtZm46
+IDAwMDA1NDk4DQoNCnRhMS4wMDogZmFpbGVkIHQoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzox
+NV0gICBnZm46IDAwMDA1NDk5ICBtZm46IDAwMDA1NDk5DQoNCm8gSURFTlRJRlkgKEkvTyBl
+cnJvciwgZXJyX21hc2s9KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTVdICAgZ2ZuOiAwMDAw
+NTQ5YSAgbWZuOiAwMDAwNTQ5YQ0KDQoweDQpDQoNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
+MzM6MTVdICAgZ2ZuOiAwMDAwNTQ5YiAgbWZuOiAwMDAwNTQ5Yg0KDQpbICA0NjEuNzE2ODk1
+XSBhdGExLjAwOiByZXZhbGlkYShYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjE1XSAgIGdmbjog
+MDAwMDU0OWMgIG1mbjogMDAwMDU0OWMNCg0KdGlvbiBmYWlsZWQgKGVycihYRU4pIFsyMDEy
+LTA4LTMxIDIxOjMzOjE1XSAgIGdmbjogMDAwMDU0OWQgIG1mbjogMDAwMDU0OWQNCg0Kbm89
+LTUpDQoNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTVdICAgZ2ZuOiAwMDAwNTQ5ZSAg
+bWZuOiAwMDAwNTQ5ZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxNV0gICBnZm46IDAw
+MDA1NDlmICBtZm46IDAwMDA1NDlmDQoNClsgIDQ2MS43NzkzNDRdIGEoWEVOKSBbMjAxMi0w
+OC0zMSAyMTozMzoxNV0gICBnZm46IDAwMDA1NGEwICBtZm46IDAwMDA1NGEwDQoNCnRhMS4w
+MDogZGlzYWJsZWQoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxNV0gICBnZm46IDAwMDA1NGEx
+ICBtZm46IDAwMDA1NGExDQoNCg0KDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjE1XSAg
+IGdmbjogMDAwMDU0YTIgIG1mbjogMDAwMDU0YTINCg0KWyAgNDYxLjg1MDA3OF0gYShYRU4p
+IFsyMDEyLTA4LTMxIDIxOjMzOjE1XSAgIGdmbjogMDAwMDU0YTMgIG1mbjogMDAwMDU0YTMN
+Cg0KdGExLjAwOiBkZXZpY2UgcihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjE1XSAgIGdmbjog
+MDAwMDU0YTQgIG1mbjogMDAwMDU0YTQNCg0KZXBvcnRlZCBpbnZhbGlkIChYRU4pIFsyMDEy
+LTA4LTMxIDIxOjMzOjE1XSAgIGdmbjogMDAwMDU0YTUgIG1mbjogMDAwMDU0YTUNCg0KQ0hT
+IHNlY3RvciAwDQoNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTVdICAgZ2ZuOiAwMDAw
+NTRhNiAgbWZuOiAwMDAwNTRhNg0KDQpbICA0NjEuOTI5MTUwXSBhKFhFTikgWzIwMTItMDgt
+MzEgMjE6MzM6MTVdICAgZ2ZuOiAwMDAwNTRhNyAgbWZuOiAwMDAwNTRhNw0KDQp0YTE6IGhh
+cmQgcmVzZXR0aW5nIGxpbmsNCg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxNV0gICBn
+Zm46IDAwMDA1NGE4ICBtZm46IDAwMDA1NGE4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMz
+OjE1XSAgIGdmbjogMDAwMDU0YTkgIG1mbjogMDAwMDU0YTkNCg0KKFhFTikgWzIwMTItMDgt
+MzEgMjE6MzM6MTZdICAgZ2ZuOiAwMDAwNTRhYSAgbWZuOiAwMDAwNTRhYQ0KDQooWEVOKSBb
+MjAxMi0wOC0zMSAyMTozMzoxNl0gICBnZm46IDAwMDA1NGFiICBtZm46IDAwMDA1NGFiDQoN
+CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjE2XSAgIGdmbjogMDAwMDU0YWMgIG1mbjogMDAw
+MDU0YWMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTZdICAgZ2ZuOiAwMDAwNTRhZCAg
+bWZuOiAwMDAwNTRhZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxNl0gICBnZm46IDAw
+MDA1NGFlICBtZm46IDAwMDA1NGFlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjE2XSAg
+IGdmbjogMDAwMDU0YWYgIG1mbjogMDAwMDU0YWYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
+MzM6MTZdICAgZ2ZuOiAwMDAwNTRiMCAgbWZuOiAwMDAwNTRiMA0KDQooWEVOKSBbMjAxMi0w
+OC0zMSAyMTozMzoxNl0gICBnZm46IDAwMDA1NGIxICBtZm46IDAwMDA1NGIxDQoNCihYRU4p
+IFsyMDEyLTA4LTMxIDIxOjMzOjE2XSAgIGdmbjogMDAwMDU0YjIgIG1mbjogMDAwMDU0YjIN
+Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTZdICAgZ2ZuOiAwMDAwNTRiMyAgbWZuOiAw
+MDAwNTRiMw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxNl0gICBnZm46IDAwMDA1NGI0
+ICBtZm46IDAwMDA1NGI0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjE2XSAgIGdmbjog
+MDAwMDU0YjUgIG1mbjogMDAwMDU0YjUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTZd
+ICAgZ2ZuOiAwMDAwNTRiNiAgbWZuOiAwMDAwNTRiNg0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
+MTozMzoxNl0gICBnZm46IDAwMDA1NGI3ICBtZm46IDAwMDA1NGI3DQoNCihYRU4pIFsyMDEy
+LTA4LTMxIDIxOjMzOjE2XSAgIGdmbjogMDAwMDU0YjggIG1mbjogMDAwMDU0YjgNCg0KKFhF
+TikgWzIwMTItMDgtMzEgMjE6MzM6MTZdICAgZ2ZuOiAwMDAwNTRiOSAgbWZuOiAwMDAwNTRi
+OQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxNl0gICBnZm46IDAwMDA1NGJhICBtZm46
+IDAwMDA1NGJhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjE2XSAgIGdmbjogMDAwMDU0
+YmIgIG1mbjogMDAwMDU0YmINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTZdICAgZ2Zu
+OiAwMDAwNTRiYyAgbWZuOiAwMDAwNTRiYw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzox
+Nl0gICBnZm46IDAwMDA1NGJkICBtZm46IDAwMDA1NGJkDQoNCihYRU4pIFsyMDEyLTA4LTMx
+IDIxOjMzOjE2XSAgIGdmbjogMDAwMDU0YmUgIG1mbjogMDAwMDU0YmUNCg0KKFhFTikgWzIw
+MTItMDgtMzEgMjE6MzM6MTZdICAgZ2ZuOiAwMDAwNTRiZiAgbWZuOiAwMDAwNTRiZg0KDQoo
+WEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxNl0gICBnZm46IDAwMDA1NGMwICBtZm46IDAwMDA1
+NGMwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjE2XSAgIGdmbjogMDAwMDU0YzEgIG1m
+bjogMDAwMDU0YzENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTZdICAgZ2ZuOiAwMDAw
+NTRjMiAgbWZuOiAwMDAwNTRjMg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxNl0gICBn
+Zm46IDAwMDA1NGMzICBtZm46IDAwMDA1NGMzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMz
+OjE2XSAgIGdmbjogMDAwMDU0YzQgIG1mbjogMDAwMDU0YzQNCg0KKFhFTikgWzIwMTItMDgt
+MzEgMjE6MzM6MTZdICAgZ2ZuOiAwMDAwNTRjNSAgbWZuOiAwMDAwNTRjNQ0KDQooWEVOKSBb
+MjAxMi0wOC0zMSAyMTozMzoxNl0gICBnZm46IDAwMDA1NGM2ICBtZm46IDAwMDA1NGM2DQoN
+CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjE2XSAgIGdmbjogMDAwMDU0YzcgIG1mbjogMDAw
+MDU0YzcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTZdICAgZ2ZuOiAwMDAwNTRjOCAg
+bWZuOiAwMDAwNTRjOA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxNl0gICBnZm46IDAw
+MDA1NGM5ICBtZm46IDAwMDA1NGM5DQoNClsgIDQ2Mi40ODY4MDVdIGEoWEVOKSBbMjAxMi0w
+OC0zMSAyMTozMzoxNl0gICBnZm46IDAwMDA1NGNhICBtZm46IDAwMDA1NGNhDQoNCnRhMTog
+U0FUQSBsaW5rIHUoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxNl0gICBnZm46IDAwMDA1NGNi
+ICBtZm46IDAwMDA1NGNiDQoNCnAgMS41IEdicHMgKFNTdGEoWEVOKSBbMjAxMi0wOC0zMSAy
+MTozMzoxNl0gICBnZm46IDAwMDA1NGNjICBtZm46IDAwMDA1NGNjDQoNCnR1cyAxMTMgU0Nv
+bnRyb2woWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxNl0gICBnZm46IDAwMDA1NGNkICBtZm46
+IDAwMDA1NGNkDQoNCiAzMTApDQoNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTZdICAg
+Z2ZuOiAwMDAwNTRjZSAgbWZuOiAwMDAwNTRjZQ0KDQpbICA0NjIuNTgyMjMwXSBzKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzM6MTZdICAgZ2ZuOiAwMDAwNTRjZiAgbWZuOiAwMDAwNTRjZg0K
+DQpkIDA6MDowOjA6IFtzZGFdKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTZdICAgZ2ZuOiAw
+MDAwNTRkMCAgbWZuOiAwMDAwNTRkMA0KDQogIA0KDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMzOjE2XSAgIGdmbjogMDAwMDU0ZDEgIG1mbjogMDAwMDU0ZDENCg0KWyAgNDYyLjY0MDM5
+Ml0gUmVzdWx0OiBob3N0Ynl0ZT0oWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxNl0gICBnZm46
+IDAwMDA1NGQyICBtZm46IDAwMDA1NGQyDQoNCkRJRF9PSyBkcml2ZXJieXQoWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMzoxNl0gICBnZm46IDAwMDA1NGQzICBtZm46IDAwMDA1NGQzDQoNCmU9
+RFJJVkVSX1NFTlNFDQoNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTZdICAgZ2ZuOiAw
+MDAwNTRkNCAgbWZuOiAwMDAwNTRkNA0KDQpbICA0NjIuNzAyODQ1XSBzKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzM6MTZdICAgZ2ZuOiAwMDAwNTRkNSAgbWZuOiAwMDAwNTRkNQ0KDQpkIDA6
+MDowOjA6IFtzZGFdKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTZdICAgZ2ZuOiAwMDAwNTRk
+NiAgbWZuOiAwMDAwNTRkNg0KDQogIA0KDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjE2
+XSAgIGdmbjogMDAwMDU0ZDcgIG1mbjogMDAwMDU0ZDcNCg0KWyAgNDYyLjc1NjkyOF0gUyhY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMzOjE2XSAgIGdmbjogMDAwMDU0ZDggIG1mbjogMDAwMDU0
+ZDgNCg0KZW5zZSBLZXkgOiBBYm9ydChYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjE2XSAgIGdm
+bjogMDAwMDU0ZDkgIG1mbjogMDAwMDU0ZDkNCg0KZWQgQ29tbWFuZCAoWEVOKSBbMjAxMi0w
+OC0zMSAyMTozMzoxNl0gICBnZm46IDAwMDA1NGRhICBtZm46IDAwMDA1NGRhDQoNCltjdXJy
+ZW50XSAoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxNl0gICBnZm46IDAwMDA1NGRiICBtZm46
+IDAwMDA1NGRiDQoNCltkZXNjcmlwdG9yXShYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjE2XSAg
+IGdmbjogMDAwMDU0ZGMgIG1mbjogMDAwMDU0ZGMNCg0KDQoNCg0KKFhFTikgWzIwMTItMDgt
+MzEgMjE6MzM6MTZdICAgZ2ZuOiAwMDAwNTRkZCAgbWZuOiAwMDAwNTRkZA0KDQpbICA0NjIu
+ODY5MTk4XSBEKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTZdICAgZ2ZuOiAwMDAwNTRkZSAg
+bWZuOiAwMDAwNTRkZQ0KDQplc2NyaXB0b3Igc2Vuc2UgKFhFTikgWzIwMTItMDgtMzEgMjE6
+MzM6MTZdICAgZ2ZuOiAwMDAwNTRkZiAgbWZuOiAwMDAwNTRkZg0KDQpkYXRhIHdpdGggc2Vu
+c2UgZGVzY3JpcHRvcnMgKGluIChYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjE2XSAgIGdmbjog
+MDAwMDU0ZTAgIG1mbjogMDAwMDU0ZTANCg0KaGV4KTooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+MzoxNl0gICBnZm46IDAwMDA1NGUxICBtZm46IDAwMDA1NGUxDQoNCg0KDQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMzOjE2XSAgIGdmbjogMDAwMDU0ZTIgIG1mbjogMDAwMDU0ZTINCg0K
+WyAgNDYyLjk2NDg1NF0gIChYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjE2XSAgIGdmbjogMDAw
+MDU0ZTMgIG1mbjogMDAwMDU0ZTMNCg0KICAgICAgIChYRU4pIFsyMDEyLTA4LTMxIDIxOjMz
+OjE3XSAgIGdmbjogMDAwMDU0ZTQgIG1mbjogMDAwMDU0ZTQNCg0KNzIgKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzM6MTddICAgZ2ZuOiAwMDAwNTRlNSAgbWZuOiAwMDAwNTRlNQ0KDQowYiAw
+MCAwMCAoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxN10gICBnZm46IDAwMDA1NGU2ICBtZm46
+IDAwMDA1NGU2DQoNCjAwIChYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjE3XSAgIGdmbjogMDAw
+MDU0ZTcgIG1mbjogMDAwMDU0ZTcNCg0KMDAgKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTdd
+ICAgZ2ZuOiAwMDAwNTRlOCAgbWZuOiAwMDAwNTRlOA0KDQowMCAoWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMzoxN10gICBnZm46IDAwMDA1NGU5ICBtZm46IDAwMDA1NGU5DQoNCjBjIChYRU4p
+IFsyMDEyLTA4LTMxIDIxOjMzOjE3XSAgIGdmbjogMDAwMDU0ZWEgIG1mbjogMDAwMDU0ZWEN
+Cg0KMDAgKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTddICAgZ2ZuOiAwMDAwNTRlYiAgbWZu
+OiAwMDAwNTRlYg0KDQowYSAoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxN10gICBnZm46IDAw
+MDA1NGVjICBtZm46IDAwMDA1NGVjDQoNCjgwIChYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjE3
+XSAgIGdmbjogMDAwMDU0ZWQgIG1mbjogMDAwMDU0ZWQNCg0KMDAgMDAgMDAgKFhFTikgWzIw
+MTItMDgtMzEgMjE6MzM6MTddICAgZ2ZuOiAwMDAwNTRlZSAgbWZuOiAwMDAwNTRlZQ0KDQow
+MCAoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxN10gICBnZm46IDAwMDA1NGVmICBtZm46IDAw
+MDA1NGVmDQoNCjAwIChYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjE3XSAgIGdmbjogMDAwMDU0
+ZjAgIG1mbjogMDAwMDU0ZjANCg0KDQoNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTdd
+ICAgZ2ZuOiAwMDAwNTRmMSAgbWZuOiAwMDAwNTRmMQ0KDQpbICA0NjMuMjE4NTk3XSAgKFhF
+TikgWzIwMTItMDgtMzEgMjE6MzM6MTddICAgZ2ZuOiAwMDAwNTRmMiAgbWZuOiAwMDAwNTRm
+Mg0KDQogICAgICAgKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTddICAgZ2ZuOiAwMDAwNTRm
+MyAgbWZuOiAwMDAwNTRmMw0KDQowMCAwMCAwMCAoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzox
+N10gICBnZm46IDAwMDA1NGY0ICBtZm46IDAwMDA1NGY0DQoNCjAwIChYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMzOjE3XSAgIGdmbjogMDAwMDU0ZjUgIG1mbjogMDAwMDU0ZjUNCg0KDQoNCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTddICAgZ2ZuOiAwMDAwNTRmNiAgbWZuOiAwMDAw
+NTRmNg0KDQpbICA0NjMuMzA1OTg3XSBzKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTddICAg
+Z2ZuOiAwMDAwNTRmNyAgbWZuOiAwMDAwNTRmNw0KDQpkIDA6MDowOjA6IFtzZGFdKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzM6MTddICAgZ2ZuOiAwMDAwNTRmOCAgbWZuOiAwMDAwNTRmOA0K
+DQogIA0KDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjE3XSAgIGdmbjogMDAwMDU0Zjkg
+IG1mbjogMDAwMDU0ZjkNCg0KWyAgNDYzLjM2NDIyMl0gQShYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMzOjE3XSAgIGdmbjogMDAwMDU0ZmEgIG1mbjogMDAwMDU0ZmENCg0KZGQuIFNlbnNlOiBO
+byBhZChYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjE3XSAgIGdmbjogMDAwMDU0ZmIgIG1mbjog
+MDAwMDU0ZmINCg0KZGl0aW9uYWwgc2Vuc2UgaShYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjE3
+XSAgIGdmbjogMDAwMDU0ZmMgIG1mbjogMDAwMDU0ZmMNCg0KbmZvcm1hdGlvbihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMzOjE3XSAgIGdmbjogMDAwMDU0ZmQgIG1mbjogMDAwMDU0ZmQNCg0K
+DQoNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTddICAgZ2ZuOiAwMDAwNTRmZSAgbWZu
+OiAwMDAwNTRmZQ0KDQpbICA0NjMuNDU5ODY2XSBzKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6
+MTddICAgZ2ZuOiAwMDAwNTRmZiAgbWZuOiAwMDAwNTRmZg0KDQpkIDA6MDowOjA6IFtzZGFd
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTddICAgZ2ZuOiAwMDAwNTUwMCAgbWZuOiAwMDAw
+NTUwMA0KDQogQ0RCOiANCg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxN10gICBnZm46
+IDAwMDA1NTAxICBtZm46IDAwMDA1NTAxDQoNClsgIDQ2My41MTM5NzZdIFIoWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMzoxN10gICBnZm46IDAwMDA1NTAyICBtZm46IDAwMDA1NTAyDQoNCmVh
+ZCgxMCkoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxN10gICBnZm46IDAwMDA1NTAzICBtZm46
+IDAwMDA1NTAzDQoNCjooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxN10gICBnZm46IDAwMDA1
+NTA0ICBtZm46IDAwMDA1NTA0DQoNCiAyOChYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjE3XSAg
+IGdmbjogMDAwMDU1MDUgIG1mbjogMDAwMDU1MDUNCg0KIDAwKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzM6MTddICAgZ2ZuOiAwMDAwNTUwNiAgbWZuOiAwMDAwNTUwNg0KDQogOGUoWEVOKSBb
+MjAxMi0wOC0zMSAyMTozMzoxN10gICBnZm46IDAwMDA1NTA3ICBtZm46IDAwMDA1NTA3DQoN
+CiA5NShYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjE3XSAgIGdmbjogMDAwMDU1MDggIG1mbjog
+MDAwMDU1MDgNCg0KIDExKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTddICAgZ2ZuOiAwMDAw
+NTUwOSAgbWZuOiAwMDAwNTUwOQ0KDQogNTEoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxN10g
+ICBnZm46IDAwMDA1NTBhICBtZm46IDAwMDA1NTBhDQoNCiAwMChYRU4pIFsyMDEyLTA4LTMx
+IDIxOjMzOjE3XSAgIGdmbjogMDAwMDU1MGIgIG1mbjogMDAwMDU1MGINCg0KIDAwKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzM6MTddICAgZ2ZuOiAwMDAwNTUwYyAgbWZuOiAwMDAwNTUwYw0K
+DQogMTAoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxN10gICBnZm46IDAwMDA1NTBkICBtZm46
+IDAwMDA1NTBkDQoNCiAwMChYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjE3XSAgIGdmbjogMDAw
+MDU1MGUgIG1mbjogMDAwMDU1MGUNCg0KDQoNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6
+MTddICAgZ2ZuOiAwMDAwNTUwZiAgbWZuOiAwMDAwNTUwZg0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMzoxN10gICBnZm46IDAwMDA1NTEwICBtZm46IDAwMDA1NTEwDQoNClsgIDQ2My43
+NjM2NjJdIGUoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxN10gICBnZm46IDAwMDA1NTExICBt
+Zm46IDAwMDA1NTExDQoNCm5kX3JlcXVlc3Q6IEkvTyAoWEVOKSBbMjAxMi0wOC0zMSAyMToz
+MzoxN10gICBnZm46IDAwMDA1NTEyICBtZm46IDAwMDA1NTEyDQoNCmVycm9yLCBkZXYgc2Rh
+LCAoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxN10gICBnZm46IDAwMDA1NTEzICBtZm46IDAw
+MDA1NTEzDQoNCnNlY3RvciAyMzkyMTMzOTYoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxN10g
+ICBnZm46IDAwMDA1NTE0ICBtZm46IDAwMDA1NTE0DQoNCjkNCg0KDQooWEVOKSBbMjAxMi0w
+OC0zMSAyMTozMzoxN10gICBnZm46IDAwMDA1NTE1ICBtZm46IDAwMDA1NTE1DQoNClsgIDQ2
+My44NTk0MTBdIGEoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxN10gICBnZm46IDAwMDA1NTE2
+ICBtZm46IDAwMDA1NTE2DQoNCnRhMTogRUggY29tcGxldGUoWEVOKSBbMjAxMi0wOC0zMSAy
+MTozMzoxN10gICBnZm46IDAwMDA1NTE3ICBtZm46IDAwMDA1NTE3DQoNCg0KDQoNCihYRU4p
+IFsyMDEyLTA4LTMxIDIxOjMzOjE3XSAgIGdmbjogMDAwMDU1MTggIG1mbjogMDAwMDU1MTgN
+Cg0KWyAgNDYzLjkxNzU5MV0gcyhYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjE3XSAgIGdmbjog
+MDAwMDU1MTkgIG1mbjogMDAwMDU1MTkNCg0KZCAwOjA6MDowOiBbc2RhXShYRU4pIFsyMDEy
+LTA4LTMxIDIxOjMzOjE3XSAgIGdmbjogMDAwMDU1MWEgIG1mbjogMDAwMDU1MWENCg0KIFVu
+aGFuZGxlZCBlcnJvcihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjE3XSAgIGdmbjogMDAwMDU1
+MWIgIG1mbjogMDAwMDU1MWINCg0KIGNvZGUNCg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+MzoxN10gICBnZm46IDAwMDA1NTFjICBtZm46IDAwMDA1NTFjDQoNClsgIDQ2My45MjE4MDBd
+IHMoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxOF0gICBnZm46IDAwMDA1NTFkICBtZm46IDAw
+MDA1NTFkDQoNCmQgMDowOjA6MDogW3NkYV0oWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxOF0g
+ICBnZm46IDAwMDA1NTFlICBtZm46IDAwMDA1NTFlDQoNCiBVbmhhbmRsZWQgZXJyb3IoWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMzoxOF0gICBnZm46IDAwMDA1NTFmICBtZm46IDAwMDA1NTFm
+DQoNCiBjb2RlDQoNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MThdICAgZ2ZuOiAwMDAw
+NTUyMCAgbWZuOiAwMDAwNTUyMA0KDQpbICA0NjMuOTIxODAyXSBzKFhFTikgWzIwMTItMDgt
+MzEgMjE6MzM6MThdICAgZ2ZuOiAwMDAwNTUyMSAgbWZuOiAwMDAwNTUyMQ0KDQpkIDA6MDow
+OjA6IFtzZGFdKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MThdICAgZ2ZuOiAwMDAwNTUyMiAg
+bWZuOiAwMDAwNTUyMg0KDQogIA0KDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjE4XSAg
+IGdmbjogMDAwMDU1MjMgIG1mbjogMDAwMDU1MjMNCg0KWyAgNDYzLjkyMTgwM10gUmVzdWx0
+OiBob3N0Ynl0ZT0oWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxOF0gICBnZm46IDAwMDA1NTI0
+ICBtZm46IDAwMDA1NTI0DQoNCkRJRF9CQURfVEFSR0VUIGQoWEVOKSBbMjAxMi0wOC0zMSAy
+MTozMzoxOF0gICBnZm46IDAwMDA1NTI1ICBtZm46IDAwMDA1NTI1DQoNCnJpdmVyYnl0ZT1E
+UklWRVJfT0sNCg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxOF0gICBnZm46IDAwMDA1
+NTI2ICBtZm46IDAwMDA1NTI2DQoNClsgIDQ2My45MjE4MDRdIHMoWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMzoxOF0gICBnZm46IDAwMDA1NTI3ICBtZm46IDAwMDA1NTI3DQoNCmQgMDowOjA6
+MDogW3NkYV0gQ0RCOiANCg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxOF0gICBnZm46
+IDAwMDA1NTI4ICBtZm46IDAwMDA1NTI4DQoNClsgIDQ2My45MjE4MDldIFcoWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMzoxOF0gICBnZm46IDAwMDA1NTI5ICBtZm46IDAwMDA1NTI5DQoNCnJp
+dGUoMTApOiAyYSAwMCAwMSAyYSBhZCBjMSAwMCAwKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6
+MThdICAgZ2ZuOiAwMDAwNTUyYSAgbWZuOiAwMDAwNTUyYQ0KDQowIDEwIDAwDQoNCg0KKFhF
+TikgWzIwMTItMDgtMzEgMjE6MzM6MThdICAgZ2ZuOiAwMDAwNTUyYiAgbWZuOiAwMDAwNTUy
+Yg0KDQpbICA0NjMuOTIxODEwXSBlbmRfcmVxdWVzdDogSS9PIChYRU4pIFsyMDEyLTA4LTMx
+IDIxOjMzOjE4XSAgIGdmbjogMDAwMDU1MmMgIG1mbjogMDAwMDU1MmMNCg0KZXJyb3IsIGRl
+diBzZGEsIChYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjE4XSAgIGdmbjogMDAwMDU1MmQgIG1m
+bjogMDAwMDU1MmQNCg0Kc2VjdG9yIDE5NTc0MjA5DQoNCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzM6MThdICAgZ2ZuOiAwMDAwNTUyZSAgbWZuOiAwMDAwNTUyZQ0KDQpbICA0NjMuOTIx
+ODUzXSBzKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MThdICAgZ2ZuOiAwMDAwNTUyZiAgbWZu
+OiAwMDAwNTUyZg0KDQpkIDA6MDowOjA6IFtzZGFdIFVuaGFuZGxlZCBlcnJvcihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMzOjE4XSAgIGdmbjogMDAwMDU1MzAgIG1mbjogMDAwMDU1MzANCg0K
+IGNvZGUNCg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxOF0gICBnZm46IDAwMDA1NTMx
+ICBtZm46IDAwMDA1NTMxDQoNClsgIDQ2My45MjE4NTRdIHNkIDA6MDowOjA6IFtzZGFdKFhF
+TikgWzIwMTItMDgtMzEgMjE6MzM6MThdICAgZ2ZuOiAwMDAwNTUzMiAgbWZuOiAwMDAwNTUz
+Mg0KDQogIA0KDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjE4XSAgIGdmbjogMDAwMDU1
+MzMgIG1mbjogMDAwMDU1MzMNCg0KWyAgNDYzLjkyMTg1NF0gUmVzdWx0OiBob3N0Ynl0ZT0o
+WEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxOF0gICBnZm46IDAwMDA1NTM0ICBtZm46IDAwMDA1
+NTM0DQoNCkRJRF9CQURfVEFSR0VUIGQoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxOF0gICBn
+Zm46IDAwMDA1NTM1ICBtZm46IDAwMDA1NTM1DQoNCnJpdmVyYnl0ZT1EUklWRVJfT0sNCg0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxOF0gICBnZm46IDAwMDA1NTM2ICBtZm46IDAw
+MDA1NTM2DQoNClsgIDQ2My45MjE4NTVdIHMoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxOF0g
+ICBnZm46IDAwMDA1NTM3ICBtZm46IDAwMDA1NTM3DQoNCmQgMDowOjA6MDogW3NkYV0gQ0RC
+OiANCg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxOF0gICBnZm46IDAwMDA1NTM4ICBt
+Zm46IDAwMDA1NTM4DQoNClsgIDQ2My45MjE4NThdIFcoWEVOKSBbMjAxMi0wOC0zMSAyMToz
+MzoxOF0gICBnZm46IDAwMDA1NTM5ICBtZm46IDAwMDA1NTM5DQoNCnJpdGUoMTApOiAyYSAw
+MCAwMiAzZSA1NSAwMSAwMCAwMCAwOCAwMA0KDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMz
+OjE4XSAgIGdmbjogMDAwMDU1M2EgIG1mbjogMDAwMDU1M2ENCg0KWyAgNDYzLjkyMTg1OV0g
+ZShYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjE4XSAgIGdmbjogMDAwMDU1M2IgIG1mbjogMDAw
+MDU1M2INCg0KbmRfcmVxdWVzdDogSS9PIChYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjE4XSAg
+IGdmbjogMDAwMDU1M2MgIG1mbjogMDAwMDU1M2MNCg0KZXJyb3IsIGRldiBzZGEsIChYRU4p
+IFsyMDEyLTA4LTMxIDIxOjMzOjE4XSAgIGdmbjogMDAwMDU1M2QgIG1mbjogMDAwMDU1M2QN
+Cg0Kc2VjdG9yIDM3NjM5NDI1DQoNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MThdICAg
+Z2ZuOiAwMDAwNTUzZSAgbWZuOiAwMDAwNTUzZQ0KDQpbICA0NjMuOTIxODY0XSBCKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzM6MThdICAgZ2ZuOiAwMDAwNTUzZiAgbWZuOiAwMDAwNTUzZg0K
+DQp1ZmZlciBJL08gZXJyb3Igb24gZGV2aWNlIGRtLTAsIChYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMzOjE4XSAgIGdmbjogMDAwMDU1NDAgIG1mbjogMDAwMDU1NDANCg0KbG9naWNhbCBibG9j
+ayAyMihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjE4XSAgIGdmbjogMDAwMDU1NDEgIG1mbjog
+MDAwMDU1NDENCg0KNjA5OTINCg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxOF0gICBn
+Zm46IDAwMDA1NTQyICBtZm46IDAwMDA1NTQyDQoNClsgIDQ2My45MjE4NjRdIGwoWEVOKSBb
+MjAxMi0wOC0zMSAyMTozMzoxOF0gICBnZm46IDAwMDA1NTQzICBtZm46IDAwMDA1NTQzDQoN
+Cm9zdCBwYWdlIHdyaXRlIGQoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxOF0gICBnZm46IDAw
+MDA1NTQ0ICBtZm46IDAwMDA1NTQ0DQoNCnVlIHRvIEkvTyBlcnJvciAoWEVOKSBbMjAxMi0w
+OC0zMSAyMTozMzoxOF0gICBnZm46IDAwMDA1NTQ1ICBtZm46IDAwMDA1NTQ1DQoNCm9uIGRt
+LTANCg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxOF0gICBnZm46IDAwMDA1NTQ2ICBt
+Zm46IDAwMDA1NTQ2DQoNClsgIDQ2My45MjE4NzhdIHMoWEVOKSBbMjAxMi0wOC0zMSAyMToz
+MzoxOF0gICBnZm46IDAwMDA1NTQ3ICBtZm46IDAwMDA1NTQ3DQoNCmQgMDowOjA6MDogW3Nk
+YV0oWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxOF0gICBnZm46IDAwMDA1NTQ4ICBtZm46IDAw
+MDA1NTQ4DQoNCiBVbmhhbmRsZWQgZXJyb3IoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxOF0g
+ICBnZm46IDAwMDA1NTQ5ICBtZm46IDAwMDA1NTQ5DQoNCiBjb2RlDQoNCg0KKFhFTikgWzIw
+MTItMDgtMzEgMjE6MzM6MThdICAgZ2ZuOiAwMDAwNTU0YSAgbWZuOiAwMDAwNTU0YQ0KDQpb
+ICA0NjMuOTIxODc5XSBzKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MThdICAgZ2ZuOiAwMDAw
+NTU0YiAgbWZuOiAwMDAwNTU0Yg0KDQpkIDA6MDowOjA6IFtzZGFdKFhFTikgWzIwMTItMDgt
+MzEgMjE6MzM6MThdICAgZ2ZuOiAwMDAwNTU0YyAgbWZuOiAwMDAwNTU0Yw0KDQogIA0KDQoN
+CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjE4XSAgIGdmbjogMDAwMDU1NGQgIG1mbjogMDAw
+MDU1NGQNCg0KWyAgNDYzLjkyMTg4MF0gUmVzdWx0OiBob3N0Ynl0ZT0oWEVOKSBbMjAxMi0w
+OC0zMSAyMTozMzoxOV0gICBnZm46IDAwMDA1NTRlICBtZm46IDAwMDA1NTRlDQoNCkRJRF9C
+QURfVEFSR0VUIGQoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxOV0gICBnZm46IDAwMDA1NTRm
+ICBtZm46IDAwMDA1NTRmDQoNCnJpdmVyYnl0ZT1EUklWRVJfT0sNCg0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMzoxOV0gICBnZm46IDAwMDA1NTUwICBtZm46IDAwMDA1NTUwDQoNClsg
+IDQ2My45MjE4ODFdIHMoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxOV0gICBnZm46IDAwMDA1
+NTUxICBtZm46IDAwMDA1NTUxDQoNCmQgMDowOjA6MDogW3NkYV0gQ0RCOiANCg0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMzoxOV0gICBnZm46IDAwMDA1NTUyICBtZm46IDAwMDA1NTUy
+DQoNClsgIDQ2My45MjE4ODRdIFcoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxOV0gICBnZm46
+IDAwMDA1NTUzICBtZm46IDAwMDA1NTUzDQoNCnJpdGUoMTApOiAyYSAwMCAwNSAyZSA1NSA4
+MSAwMCAwKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTldICAgZ2ZuOiAwMDAwNTU1NCAgbWZu
+OiAwMDAwNTU1NA0KDQowIDA4IDAwDQoNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTld
+ICAgZ2ZuOiAwMDAwNTU1NSAgbWZuOiAwMDAwNTU1NQ0KDQpbICA0NjMuOTIxODg0XSBlbmRf
+cmVxdWVzdDogSS9PIChYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjE5XSAgIGdmbjogMDAwMDU1
+NTYgIG1mbjogMDAwMDU1NTYNCg0KZXJyb3IsIGRldiBzZGEsIChYRU4pIFsyMDEyLTA4LTMx
+IDIxOjMzOjE5XSAgIGdmbjogMDAwMDU1NTcgIG1mbjogMDAwMDU1NTcNCg0Kc2VjdG9yIDg2
+OTIyNjI1DQoNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTldICAgZ2ZuOiAwMDAwNTU1
+OCAgbWZuOiAwMDAwNTU1OA0KDQpbICA0NjMuOTIxODg3XSBCKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzM6MTldICAgZ2ZuOiAwMDAwNTU1OSAgbWZuOiAwMDAwNTU1OQ0KDQp1ZmZlciBJL08g
+ZXJyb3Igb24gZGV2aWNlIGRtLTAsIChYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjE5XSAgIGdm
+bjogMDAwMDU1NWEgIG1mbjogMDAwMDU1NWENCg0KbG9naWNhbCBibG9jayA4NChYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMzOjE5XSAgIGdmbjogMDAwMDU1NWIgIG1mbjogMDAwMDU1NWINCg0K
+MjEzOTINCg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxOV0gICBnZm46IDAwMDA1NTVj
+ICBtZm46IDAwMDA1NTVjDQoNClsgIDQ2My45MjE4ODddIGwoWEVOKSBbMjAxMi0wOC0zMSAy
+MTozMzoxOV0gICBnZm46IDAwMDA1NTVkICBtZm46IDAwMDA1NTVkDQoNCm9zdCBwYWdlIHdy
+aXRlIGQoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxOV0gICBnZm46IDAwMDA1NTVlICBtZm46
+IDAwMDA1NTVlDQoNCnVlIHRvIEkvTyBlcnJvciAoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzox
+OV0gICBnZm46IDAwMDA1NTVmICBtZm46IDAwMDA1NTVmDQoNCm9uIGRtLTANCg0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMzoxOV0gICBnZm46IDAwMDA1NTYwICBtZm46IDAwMDA1NTYw
+DQoNClsgIDQ2My45MjE4OTZdIHMoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxOV0gICBnZm46
+IDAwMDA1NTYxICBtZm46IDAwMDA1NTYxDQoNCmQgMDowOjA6MDogW3NkYV0gVW5oYW5kbGVk
+IGVycm9yKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTldICAgZ2ZuOiAwMDAwNTU2MiAgbWZu
+OiAwMDAwNTU2Mg0KDQogY29kZQ0KDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjE5XSAg
+IGdmbjogMDAwMDU1NjMgIG1mbjogMDAwMDU1NjMNCg0KWyAgNDYzLjkyMTg5N10gcyhYRU4p
+IFsyMDEyLTA4LTMxIDIxOjMzOjE5XSAgIGdmbjogMDAwMDU1NjQgIG1mbjogMDAwMDU1NjQN
+Cg0KZCAwOjA6MDowOiBbc2RhXShYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjE5XSAgIGdmbjog
+MDAwMDU1NjUgIG1mbjogMDAwMDU1NjUNCg0KICANCg0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
+MTozMzoxOV0gICBnZm46IDAwMDA1NTY2ICBtZm46IDAwMDA1NTY2DQoNClsgIDQ2My45MjE4
+OTddIFIoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxOV0gICBnZm46IDAwMDA1NTY3ICBtZm46
+IDAwMDA1NTY3DQoNCmVzdWx0OiBob3N0Ynl0ZT1ESURfQkFEX1RBUkdFVCBkKFhFTikgWzIw
+MTItMDgtMzEgMjE6MzM6MTldICAgZ2ZuOiAwMDAwNTU2OCAgbWZuOiAwMDAwNTU2OA0KDQpy
+aXZlcmJ5dGU9RFJJVkVSKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTldICAgZ2ZuOiAwMDAw
+NTU2OSAgbWZuOiAwMDAwNTU2OQ0KDQpfT0sNCg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+MzoxOV0gICBnZm46IDAwMDA1NTZhICBtZm46IDAwMDA1NTZhDQoNClsgIDQ2My45MjE4OThd
+IHMoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxOV0gICBnZm46IDAwMDA1NTZiICBtZm46IDAw
+MDA1NTZiDQoNCmQgMDowOjA6MDogW3NkYV0oWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxOV0g
+ICBnZm46IDAwMDA1NTZjICBtZm46IDAwMDA1NTZjDQoNCiBDREI6IA0KDQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMzOjE5XSAgIGdmbjogMDAwMDU1NmQgIG1mbjogMDAwMDU1NmQNCg0K
+WyAgNDYzLjkyMTkwMV0gVyhYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjE5XSAgIGdmbjogMDAw
+MDU1NmUgIG1mbjogMDAwMDU1NmUNCg0Kcml0ZSgxMCk6IDJhIDAwIChYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMzOjE5XSAgIGdmbjogMDAwMDU1NmYgIG1mbjogMDAwMDU1NmYNCg0KMDUgMmUg
+NTcgNDEgMDAgMDAgMDggMDANCg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxOV0gICBn
+Zm46IDAwMDA1NTcwICBtZm46IDAwMDA1NTcwDQoNClsgIDQ2My45MjE5MDJdIGUoWEVOKSBb
+MjAxMi0wOC0zMSAyMTozMzoxOV0gICBnZm46IDAwMDA1NTcxICBtZm46IDAwMDA1NTcxDQoN
+Cm5kX3JlcXVlc3Q6IEkvTyBlcnJvciwgZGV2IHNkYSwgKFhFTikgWzIwMTItMDgtMzEgMjE6
+MzM6MTldICAgZ2ZuOiAwMDAwNTU3MiAgbWZuOiAwMDAwNTU3Mg0KDQpzZWN0b3IgODY5MjMw
+NzMNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjE5XSAgIGdmbjogMDAwMDU1NzMgIG1mbjog
+MDAwMDU1NzMNCg0KDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjE5XSAgIGdmbjogMDAw
+MDU1NzQgIG1mbjogMDAwMDU1NzQNCg0KWyAgNDYzLjkyMTkwNF0gQihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMzOjE5XSAgIGdmbjogMDAwMDU1NzUgIG1mbjogMDAwMDU1NzUNCg0KdWZmZXIg
+SS9PIGVycm9yIChYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjE5XSAgIGdmbjogMDAwMDU1NzYg
+IG1mbjogMDAwMDU1NzYNCg0Kb24gZGV2aWNlIGRtLTAsIChYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMzOjE5XSAgIGdmbjogMDAwMDU1NzcgIG1mbjogMDAwMDU1NzcNCg0KbG9naWNhbCBibG9j
+ayA4NDIxNDQ4DQoNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTldICAgZ2ZuOiAwMDAw
+NTU3OCAgbWZuOiAwMDAwNTU3OA0KDQpbICA0NjMuOTIxOTA1XSBsKFhFTikgWzIwMTItMDgt
+MzEgMjE6MzM6MTldICAgZ2ZuOiAwMDAwNTU3OSAgbWZuOiAwMDAwNTU3OQ0KDQpvc3QgcGFn
+ZSB3cml0ZSBkdWUgdG8gSS9PIGVycm9yIChYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjE5XSAg
+IGdmbjogMDAwMDU1N2EgIG1mbjogMDAwMDU1N2ENCg0Kb24gZG0tMA0KDQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMzOjE5XSAgIGdmbjogMDAwMDU1N2IgIG1mbjogMDAwMDU1N2INCg0K
+WyAgNDYzLjkyMTkxNF0gc2QgMDowOjA6MDogW3NkYV0oWEVOKSBbMjAxMi0wOC0zMSAyMToz
+MzoxOV0gICBnZm46IDAwMDA1NTdjICBtZm46IDAwMDA1NTdjDQoNCiBVbmhhbmRsZWQgZXJy
+b3IoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxOV0gICBnZm46IDAwMDA1NTdkICBtZm46IDAw
+MDA1NTdkDQoNCiBjb2RlDQoNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTldICAgZ2Zu
+OiAwMDAwNTU3ZSAgbWZuOiAwMDAwNTU3ZQ0KDQpbICA0NjMuOTIxOTE1XSBzKFhFTikgWzIw
+MTItMDgtMzEgMjE6MzM6MjBdICAgZ2ZuOiAwMDAwNTU3ZiAgbWZuOiAwMDAwNTU3Zg0KDQpk
+IDA6MDowOjA6IFtzZGFdICANCg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyMF0gICBn
+Zm46IDAwMDA1NTgwICBtZm46IDAwMDA1NTgwDQoNClsgIDQ2My45MjE5MTVdIFIoWEVOKSBb
+MjAxMi0wOC0zMSAyMTozMzoyMF0gICBnZm46IDAwMDA1NTgxICBtZm46IDAwMDA1NTgxDQoN
+CmVzdWx0OiBob3N0Ynl0ZT1ESURfQkFEX1RBUkdFVCBkKFhFTikgWzIwMTItMDgtMzEgMjE6
+MzM6MjBdICAgZ2ZuOiAwMDAwNTU4MiAgbWZuOiAwMDAwNTU4Mg0KDQpyaXZlcmJ5dGU9RFJJ
+VkVSKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjBdICAgZ2ZuOiAwMDAwNTU4MyAgbWZuOiAw
+MDAwNTU4Mw0KDQpfT0sNCg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyMF0gICBnZm46
+IDAwMDA1NTg0ICBtZm46IDAwMDA1NTg0DQoNClsgIDQ2My45MjE5MTZdIHMoWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMzoyMF0gICBnZm46IDAwMDA1NTg1ICBtZm46IDAwMDA1NTg1DQoNCmQg
+MDowOjA6MDogW3NkYV0oWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyMF0gICBnZm46IDAwMDA1
+NTg2ICBtZm46IDAwMDA1NTg2DQoNCiBDREI6IA0KDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMzOjIwXSAgIGdmbjogMDAwMDU1ODcgIG1mbjogMDAwMDU1ODcNCg0KWyAgNDYzLjkyMTkx
+OV0gV3JpdGUoMTApOiAyYSAwMCAoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyMF0gICBnZm46
+IDAwMDA1NTg4ICBtZm46IDAwMDA1NTg4DQoNCjA1IDM2IDU1IDE5IDAwIDAoWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMzoyMF0gICBnZm46IDAwMDA1NTg5ICBtZm46IDAwMDA1NTg5DQoNCjAg
+MDggMDANCg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyMF0gICBnZm46IDAwMDA1NThh
+ICBtZm46IDAwMDA1NThhDQoNClsgIDQ2My45MjE5MjBdIGUoWEVOKSBbMjAxMi0wOC0zMSAy
+MTozMzoyMF0gICBnZm46IDAwMDA1NThiICBtZm46IDAwMDA1NThiDQoNCm5kX3JlcXVlc3Q6
+IEkvTyBlcnJvciwgZGV2IHNkYSwgKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjBdICAgZ2Zu
+OiAwMDAwNTU4YyAgbWZuOiAwMDAwNTU4Yw0KDQpzZWN0b3IgODc0NDY4MDkNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMzOjIwXSAgIGdmbjogMDAwMDU1OGQgIG1mbjogMDAwMDU1OGQNCg0K
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjIwXSAgIGdmbjogMDAwMDU1OGUgIG1mbjog
+MDAwMDU1OGUNCg0KWyAgNDYzLjkyMTkyMl0gQihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjIw
+XSAgIGdmbjogMDAwMDU1OGYgIG1mbjogMDAwMDU1OGYNCg0KdWZmZXIgSS9PIGVycm9yIChY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMzOjIwXSAgIGdmbjogMDAwMDU1OTAgIG1mbjogMDAwMDU1
+OTANCg0Kb24gZGV2aWNlIGRtLTAsIChYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjIwXSAgIGdm
+bjogMDAwMDU1OTEgIG1mbjogMDAwMDU1OTENCg0KbG9naWNhbCBibG9jayA4NDg2OTE1DQoN
+Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjBdICAgZ2ZuOiAwMDAwNTU5MiAgbWZuOiAw
+MDAwNTU5Mg0KDQpbICA0NjMuOTIxOTIzXSBsKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjBd
+ICAgZ2ZuOiAwMDAwNTU5MyAgbWZuOiAwMDAwNTU5Mw0KDQpvc3QgcGFnZSB3cml0ZSBkdWUg
+dG8gSS9PIGVycm9yIChYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjIwXSAgIGdmbjogMDAwMDU1
+OTQgIG1mbjogMDAwMDU1OTQNCg0Kb24gZG0tMA0KDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMzOjIwXSAgIGdmbjogMDAwMDU1OTUgIG1mbjogMDAwMDU1OTUNCg0KWyAgNDYzLjkyMTkz
+MF0gcyhYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjIwXSAgIGdmbjogMDAwMDU1OTYgIG1mbjog
+MDAwMDU1OTYNCg0KZCAwOjA6MDowOiBbc2RhXShYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjIw
+XSAgIGdmbjogMDAwMDU1OTcgIG1mbjogMDAwMDU1OTcNCg0KIFVuaGFuZGxlZCBlcnJvciBj
+b2RlDQoNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjBdICAgZ2ZuOiAwMDAwNTU5OCAg
+bWZuOiAwMDAwNTU5OA0KDQpbICA0NjMuOTIxOTMxXSBzKFhFTikgWzIwMTItMDgtMzEgMjE6
+MzM6MjBdICAgZ2ZuOiAwMDAwNTU5OSAgbWZuOiAwMDAwNTU5OQ0KDQpkIDA6MDowOjA6IFtz
+ZGFdICANCg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyMF0gICBnZm46IDAwMDA1NTlh
+ICBtZm46IDAwMDA1NTlhDQoNClsgIDQ2My45MjE5MzJdIFIoWEVOKSBbMjAxMi0wOC0zMSAy
+MTozMzoyMF0gICBnZm46IDAwMDA1NTliICBtZm46IDAwMDA1NTliDQoNCmVzdWx0OiBob3N0
+Ynl0ZT1ESURfQkFEX1RBUkdFVCBkKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjBdICAgZ2Zu
+OiAwMDAwNTU5YyAgbWZuOiAwMDAwNTU5Yw0KDQpyaXZlcmJ5dGU9RFJJVkVSKFhFTikgWzIw
+MTItMDgtMzEgMjE6MzM6MjBdICAgZ2ZuOiAwMDAwNTU5ZCAgbWZuOiAwMDAwNTU5ZA0KDQpf
+T0sNCg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyMF0gICBnZm46IDAwMDA1NTllICBt
+Zm46IDAwMDA1NTllDQoNClsgIDQ2My45MjE5MzNdIHMoWEVOKSBbMjAxMi0wOC0zMSAyMToz
+MzoyMF0gICBnZm46IDAwMDA1NTlmICBtZm46IDAwMDA1NTlmDQoNCmQgMDowOjA6MDogW3Nk
+YV0oWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyMF0gICBnZm46IDAwMDA1NWEwICBtZm46IDAw
+MDA1NWEwDQoNCiBDREI6IA0KDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjIwXSAgIGdm
+bjogMDAwMDU1YTEgIG1mbjogMDAwMDU1YTENCg0KWyAgNDYzLjkyMTkzNl0gV3JpdGUoMTAp
+OiAyYSAwMCAoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyMF0gICBnZm46IDAwMDA1NWEyICBt
+Zm46IDAwMDA1NWEyDQoNCjA1IGI2IDU3IDYxIDAwIDAoWEVOKSBbMjAxMi0wOC0zMSAyMToz
+MzoyMF0gICBnZm46IDAwMDA1NWEzICBtZm46IDAwMDA1NWEzDQoNCjAgMDggMDANCg0KDQoo
+WEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyMF0gICBnZm46IDAwMDA1NWE0ICBtZm46IDAwMDA1
+NWE0DQoNClsgIDQ2My45MjE5MzddIGUoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyMF0gICBn
+Zm46IDAwMDA1NWE1ICBtZm46IDAwMDA1NWE1DQoNCm5kX3JlcXVlc3Q6IEkvTyAoWEVOKSBb
+MjAxMi0wOC0zMSAyMTozMzoyMF0gICBnZm46IDAwMDA1NWE2ICBtZm46IDAwMDA1NWE2DQoN
+CmVycm9yLCBkZXYgc2RhLCAoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyMF0gICBnZm46IDAw
+MDA1NWE3ICBtZm46IDAwMDA1NWE3DQoNCnNlY3RvciA5NTgzNjAwMQ0KDQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMzOjIwXSAgIGdmbjogMDAwMDU1YTggIG1mbjogMDAwMDU1YTgNCg0K
+WyAgNDYzLjkyMTkzOV0gQihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjIwXSAgIGdmbjogMDAw
+MDU1YTkgIG1mbjogMDAwMDU1YTkNCg0KdWZmZXIgSS9PIGVycm9yIG9uIGRldmljZSBkbS0w
+LCAoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyMF0gICBnZm46IDAwMDA1NWFhICBtZm46IDAw
+MDA1NWFhDQoNCmxvZ2ljYWwgYmxvY2sgOTUoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyMF0g
+ICBnZm46IDAwMDA1NWFiICBtZm46IDAwMDA1NWFiDQoNCjM1NTY0DQoNCg0KKFhFTikgWzIw
+MTItMDgtMzEgMjE6MzM6MjBdICAgZ2ZuOiAwMDAwNTVhYyAgbWZuOiAwMDAwNTVhYw0KDQpb
+ICA0NjMuOTIxOTM5XSBsKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjBdICAgZ2ZuOiAwMDAw
+NTVhZCAgbWZuOiAwMDAwNTVhZA0KDQpvc3QgcGFnZSB3cml0ZSBkKFhFTikgWzIwMTItMDgt
+MzEgMjE6MzM6MjBdICAgZ2ZuOiAwMDAwNTVhZSAgbWZuOiAwMDAwNTVhZQ0KDQp1ZSB0byBJ
+L08gZXJyb3IgKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjBdICAgZ2ZuOiAwMDAwNTVhZiAg
+bWZuOiAwMDAwNTVhZg0KDQpvbiBkbS0wDQoNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6
+MjBdICAgZ2ZuOiAwMDAwNTViMCAgbWZuOiAwMDAwNTViMA0KDQpbICA0NjMuOTIxOTQ4XSBz
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjFdICAgZ2ZuOiAwMDAwNTViMSAgbWZuOiAwMDAw
+NTViMQ0KDQpkIDA6MDowOjA6IFtzZGFdIFVuaGFuZGxlZCBlcnJvcihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMzOjIxXSAgIGdmbjogMDAwMDU1YjIgIG1mbjogMDAwMDU1YjINCg0KIGNvZGUN
+Cg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyMV0gICBnZm46IDAwMDA1NWIzICBtZm46
+IDAwMDA1NWIzDQoNClsgIDQ2My45MjE5NDldIHNkIDA6MDowOjA6IFtzZGFdKFhFTikgWzIw
+MTItMDgtMzEgMjE6MzM6MjFdICAgZ2ZuOiAwMDAwNTViNCAgbWZuOiAwMDAwNTViNA0KDQog
+IA0KDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjIxXSAgIGdmbjogMDAwMDU1YjUgIG1m
+bjogMDAwMDU1YjUNCg0KWyAgNDYzLjkyMTk1MF0gUihYRU4pIFsyMDEyLTA4LTMxIDIxOjMz
+OjIxXSAgIGdmbjogMDAwMDU1YjYgIG1mbjogMDAwMDU1YjYNCg0KZXN1bHQ6IGhvc3RieXRl
+PShYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjIxXSAgIGdmbjogMDAwMDU1YjcgIG1mbjogMDAw
+MDU1YjcNCg0KRElEX0JBRF9UQVJHRVQgZHJpdmVyYnl0ZT1EUklWRVIoWEVOKSBbMjAxMi0w
+OC0zMSAyMTozMzoyMV0gICBnZm46IDAwMDA1NWI4ICBtZm46IDAwMDA1NWI4DQoNCl9PSw0K
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjIxXSAgIGdmbjogMDAwMDU1YjkgIG1mbjog
+MDAwMDU1YjkNCg0KWyAgNDYzLjkyMTk1MV0gc2QgMDowOjA6MDogW3NkYV0oWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMzoyMV0gICBnZm46IDAwMDA1NWJhICBtZm46IDAwMDA1NWJhDQoNCiBD
+REI6IA0KDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjIxXSAgIGdmbjogMDAwMDU1YmIg
+IG1mbjogMDAwMDU1YmINCg0KWyAgNDYzLjkyMTk1NF0gV3JpdGUoMTApOiAyYSAwMCAoWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMzoyMV0gICBnZm46IDAwMDA1NWJjICBtZm46IDAwMDA1NWJj
+DQoNCjA2IDllIDU1IDAxIDAwIDAoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyMV0gICBnZm46
+IDAwMDA1NWJkICBtZm46IDAwMDA1NWJkDQoNCjAgMTggMDANCg0KDQooWEVOKSBbMjAxMi0w
+OC0zMSAyMTozMzoyMV0gICBnZm46IDAwMDA1NWJlICBtZm46IDAwMDA1NWJlDQoNClsgIDQ2
+My45MjE5NTVdIGUoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyMV0gICBnZm46IDAwMDA1NWJm
+ICBtZm46IDAwMDA1NWJmDQoNCm5kX3JlcXVlc3Q6IEkvTyAoWEVOKSBbMjAxMi0wOC0zMSAy
+MTozMzoyMV0gICBnZm46IDAwMDA1NWMwICBtZm46IDAwMDA1NWMwDQoNCmVycm9yLCBkZXYg
+c2RhLCAoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyMV0gICBnZm46IDAwMDA1NWMxICBtZm46
+IDAwMDA1NWMxDQoNCnNlY3RvciAxMTEwMzk3NDUoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoy
+MV0gICBnZm46IDAwMDA1NWMyICBtZm46IDAwMDA1NWMyDQoNCg0KDQoNCihYRU4pIFsyMDEy
+LTA4LTMxIDIxOjMzOjIxXSAgIGdmbjogMDAwMDU1YzMgIG1mbjogMDAwMDU1YzMNCg0KWyAg
+NDYzLjkyMTk1N10gQnVmZmVyIEkvTyBlcnJvciAoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoy
+MV0gICBnZm46IDAwMDA1NWM0ICBtZm46IDAwMDA1NWM0DQoNCm9uIGRldmljZSBkbS0wLCAo
+WEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyMV0gICBnZm46IDAwMDA1NWM1ICBtZm46IDAwMDA1
+NWM1DQoNCmxvZ2ljYWwgYmxvY2sgMTE0MzYwMzINCg0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
+MTozMzoyMV0gICBnZm46IDAwMDA1NWM2ICBtZm46IDAwMDA1NWM2DQoNClsgIDQ2My45MjE5
+NTddIGwoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyMV0gICBnZm46IDAwMDA1NWM3ICBtZm46
+IDAwMDA1NWM3DQoNCm9zdCBwYWdlIHdyaXRlIGQoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoy
+MV0gICBnZm46IDAwMDA1NWM4ICBtZm46IDAwMDA1NWM4DQoNCnVlIHRvIEkvTyBlcnJvciAo
+WEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyMV0gICBnZm46IDAwMDA1NWM5ICBtZm46IDAwMDA1
+NWM5DQoNCm9uIGRtLTANCg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyMV0gICBnZm46
+IDAwMDA1NWNhICBtZm46IDAwMDA1NWNhDQoNClsgIDQ2My45MjE5NjBdIEIoWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMzoyMV0gICBnZm46IDAwMDA1NWNiICBtZm46IDAwMDA1NWNiDQoNCnVm
+ZmVyIEkvTyBlcnJvciBvbiBkZXZpY2UgZG0tMCwgKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6
+MjFdICAgZ2ZuOiAwMDAwNTVjYyAgbWZuOiAwMDAwNTVjYw0KDQpsb2dpY2FsIGJsb2NrIDEx
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjFdICAgZ2ZuOiAwMDAwNTVjZCAgbWZuOiAwMDAw
+NTVjZA0KDQo0MzYwMzMNCg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyMV0gICBnZm46
+IDAwMDA1NWNlICBtZm46IDAwMDA1NWNlDQoNClsgIDQ2My45MjE5NjFdIGwoWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMzoyMV0gICBnZm46IDAwMDA1NWNmICBtZm46IDAwMDA1NWNmDQoNCm9z
+dCBwYWdlIHdyaXRlIGQoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyMV0gICBnZm46IDAwMDA1
+NWQwICBtZm46IDAwMDA1NWQwDQoNCnVlIHRvIEkvTyBlcnJvciAoWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMzoyMV0gICBnZm46IDAwMDA1NWQxICBtZm46IDAwMDA1NWQxDQoNCm9uIGRtLTAN
+Cg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyMV0gICBnZm46IDAwMDA1NWQyICBtZm46
+IDAwMDA1NWQyDQoNClsgIDQ2My45MjE5NjNdIEIoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoy
+MV0gICBnZm46IDAwMDA1NWQzICBtZm46IDAwMDA1NWQzDQoNCnVmZmVyIEkvTyBlcnJvciAo
+WEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyMV0gICBnZm46IDAwMDA1NWQ0ICBtZm46IDAwMDA1
+NWQ0DQoNCm9uIGRldmljZSBkbS0wLCAoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyMV0gICBn
+Zm46IDAwMDA1NWQ1ICBtZm46IDAwMDA1NWQ1DQoNCmxvZ2ljYWwgYmxvY2sgMTE0MzYwMzQN
+Cg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyMV0gICBnZm46IDAwMDA1NWQ2ICBtZm46
+IDAwMDA1NWQ2DQoNClsgIDQ2My45MjE5NjNdIGwoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoy
+MV0gICBnZm46IDAwMDA1NWQ3ICBtZm46IDAwMDA1NWQ3DQoNCm9zdCBwYWdlIHdyaXRlIGR1
+ZSB0byBJL08gZXJyb3IgKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjFdICAgZ2ZuOiAwMDAw
+NTVkOCAgbWZuOiAwMDAwNTVkOA0KDQpvbiBkbS0wDQoNCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzM6MjFdICAgZ2ZuOiAwMDAwNTVkOSAgbWZuOiAwMDAwNTVkOQ0KDQpbICA0NjMuOTIx
+OTcwXSBzZCAwOjA6MDowOiBbc2RhXShYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjIxXSAgIGdm
+bjogMDAwMDU1ZGEgIG1mbjogMDAwMDU1ZGENCg0KIFVuaGFuZGxlZCBlcnJvcihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMzOjIxXSAgIGdmbjogMDAwMDU1ZGIgIG1mbjogMDAwMDU1ZGINCg0K
+IGNvZGUNCg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyMV0gICBnZm46IDAwMDA1NWRj
+ICBtZm46IDAwMDA1NWRjDQoNClsgIDQ2My45MjE5NzFdIHMoWEVOKSBbMjAxMi0wOC0zMSAy
+MTozMzoyMV0gICBnZm46IDAwMDA1NWRkICBtZm46IDAwMDA1NWRkDQoNCmQgMDowOjA6MDog
+W3NkYV0oWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyMV0gICBnZm46IDAwMDA1NWRlICBtZm46
+IDAwMDA1NWRlDQoNCiAgDQoNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjFdICAgZ2Zu
+OiAwMDAwNTVkZiAgbWZuOiAwMDAwNTVkZg0KDQpbICA0NjMuOTIxOTcxXSBSZXN1bHQ6IGhv
+c3RieXRlPShYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjIxXSAgIGdmbjogMDAwMDU1ZTAgIG1m
+bjogMDAwMDU1ZTANCg0KRElEX0JBRF9UQVJHRVQgZChYRU4pIFsyMDEyLTA4LTMxIDIxOjMz
+OjIxXSAgIGdmbjogMDAwMDU1ZTEgIG1mbjogMDAwMDU1ZTENCg0Kcml2ZXJieXRlPURSSVZF
+UihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjIxXSAgIGdmbjogMDAwMDU1ZTIgIG1mbjogMDAw
+MDU1ZTINCg0KX09LDQoNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjJdICAgZ2ZuOiAw
+MDAwNTVlMyAgbWZuOiAwMDAwNTVlMw0KDQpbICA0NjMuOTIxOTcyXSBzZCAwOjA6MDowOiBb
+c2RhXShYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjIyXSAgIGdmbjogMDAwMDU1ZTQgIG1mbjog
+MDAwMDU1ZTQNCg0KIENEQjogDQoNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjJdICAg
+Z2ZuOiAwMDAwNTVlNSAgbWZuOiAwMDAwNTVlNQ0KDQpbICA0NjMuOTIxOTc1XSBXKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzM6MjJdICAgZ2ZuOiAwMDAwNTVlNiAgbWZuOiAwMDAwNTVlNg0K
+DQpyaXRlKDEwKTogMmEgMDAgKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjJdICAgZ2ZuOiAw
+MDAwNTVlNyAgbWZuOiAwMDAwNTVlNw0KDQowNiA5ZSA1YSBiMSAwMCAwKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzM6MjJdICAgZ2ZuOiAwMDAwNTVlOCAgbWZuOiAwMDAwNTVlOA0KDQowIDA4
+IDAwDQoNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjJdICAgZ2ZuOiAwMDAwNTVlOSAg
+bWZuOiAwMDAwNTVlOQ0KDQpbICA0NjMuOTIxOTc2XSBlKFhFTikgWzIwMTItMDgtMzEgMjE6
+MzM6MjJdICAgZ2ZuOiAwMDAwNTVlYSAgbWZuOiAwMDAwNTVlYQ0KDQpuZF9yZXF1ZXN0OiBJ
+L08gKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjJdICAgZ2ZuOiAwMDAwNTVlYiAgbWZuOiAw
+MDAwNTVlYg0KDQplcnJvciwgZGV2IHNkYSwgc2VjdG9yIDExMTA0MTIwMShYRU4pIFsyMDEy
+LTA4LTMxIDIxOjMzOjIyXSAgIGdmbjogMDAwMDU1ZWMgIG1mbjogMDAwMDU1ZWMNCg0KDQoN
+Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjJdICAgZ2ZuOiAwMDAwNTVlZCAgbWZuOiAw
+MDAwNTVlZA0KDQpbICA0NjMuOTIxOTc4XSBCdWZmZXIgSS9PIGVycm9yIChYRU4pIFsyMDEy
+LTA4LTMxIDIxOjMzOjIyXSAgIGdmbjogMDAwMDU1ZWUgIG1mbjogMDAwMDU1ZWUNCg0Kb24g
+ZGV2aWNlIGRtLTAsIChYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjIyXSAgIGdmbjogMDAwMDU1
+ZWYgIG1mbjogMDAwMDU1ZWYNCg0KbG9naWNhbCBibG9jayAxMTQzNjIxNA0KDQoNCihYRU4p
+IFsyMDEyLTA4LTMxIDIxOjMzOjIyXSAgIGdmbjogMDAwMDU1ZjAgIG1mbjogMDAwMDU1ZjAN
+Cg0KWyAgNDYzLjkyMTk3OF0gbChYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjIyXSAgIGdmbjog
+MDAwMDU1ZjEgIG1mbjogMDAwMDU1ZjENCg0Kb3N0IHBhZ2Ugd3JpdGUgZHVlIHRvIEkvTyBl
+cnJvciAoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyMl0gICBnZm46IDAwMDA1NWYyICBtZm46
+IDAwMDA1NWYyDQoNCm9uIGRtLTANCg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyMl0g
+ICBnZm46IDAwMDA1NWYzICBtZm46IDAwMDA1NWYzDQoNClsgIDQ2My45MjE5ODZdIHNkIDA6
+MDowOjA6IFtzZGFdKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjJdICAgZ2ZuOiAwMDAwNTVm
+NCAgbWZuOiAwMDAwNTVmNA0KDQogVW5oYW5kbGVkIGVycm9yKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzM6MjJdICAgZ2ZuOiAwMDAwNTVmNSAgbWZuOiAwMDAwNTVmNQ0KDQogY29kZQ0KDQoN
+CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjIyXSAgIGdmbjogMDAwMDU1ZjYgIG1mbjogMDAw
+MDU1ZjYNCg0KWyAgNDYzLjkyMTk4N10gcyhYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjIyXSAg
+IGdmbjogMDAwMDU1ZjcgIG1mbjogMDAwMDU1ZjcNCg0KZCAwOjA6MDowOiBbc2RhXSAgDQoN
+Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjJdICAgZ2ZuOiAwMDAwNTVmOCAgbWZuOiAw
+MDAwNTVmOA0KDQpbICA0NjMuOTIxOTg4XSBSKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjJd
+ICAgZ2ZuOiAwMDAwNTVmOSAgbWZuOiAwMDAwNTVmOQ0KDQplc3VsdDogaG9zdGJ5dGU9KFhF
+TikgWzIwMTItMDgtMzEgMjE6MzM6MjJdICAgZ2ZuOiAwMDAwNTVmYSAgbWZuOiAwMDAwNTVm
+YQ0KDQpESURfQkFEX1RBUkdFVCBkKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjJdICAgZ2Zu
+OiAwMDAwNTVmYiAgbWZuOiAwMDAwNTVmYg0KDQpyaXZlcmJ5dGU9RFJJVkVSX09LDQoNCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjJdICAgZ2ZuOiAwMDAwNTVmYyAgbWZuOiAwMDAw
+NTVmYw0KDQpbICA0NjMuOTIxOTg4XSBzKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjJdICAg
+Z2ZuOiAwMDAwNTVmZCAgbWZuOiAwMDAwNTVmZA0KDQpkIDA6MDowOjA6IFtzZGFdIENEQjog
+DQoNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjJdICAgZ2ZuOiAwMDAwNTVmZSAgbWZu
+OiAwMDAwNTVmZQ0KDQpbICA0NjMuOTIxOTkxXSBXKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6
+MjJdICAgZ2ZuOiAwMDAwNTVmZiAgbWZuOiAwMDAwNTVmZg0KDQpyaXRlKDEwKTogMmEgMDAg
+MDYgOWUgNjUgZTEgMDAgMChYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjIyXSAgIGdmbjogMDAw
+MDU2MDAgIG1mbjogMDAwMDU2MDANCg0KMCAwOCAwMA0KDQoNCihYRU4pIFsyMDEyLTA4LTMx
+IDIxOjMzOjIyXSAgIGdmbjogMDAwMDU2MDEgIG1mbjogMDAwMDU2MDENCg0KWyAgNDYzLjky
+MTk5Ml0gZW5kX3JlcXVlc3Q6IEkvTyBlcnJvciwgZGV2IHNkYSwgKFhFTikgWzIwMTItMDgt
+MzEgMjE6MzM6MjJdICAgZ2ZuOiAwMDAwNTYwMiAgbWZuOiAwMDAwNTYwMg0KDQpzZWN0b3Ig
+MTExMDQ0MDY1KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjJdICAgZ2ZuOiAwMDAwNTYwMyAg
+bWZuOiAwMDAwNTYwMw0KDQoNCg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyMl0gICBn
+Zm46IDAwMDA1NjA0ICBtZm46IDAwMDA1NjA0DQoNClsgIDQ2My45MjE5OTVdIEIoWEVOKSBb
+MjAxMi0wOC0zMSAyMTozMzoyMl0gICBnZm46IDAwMDA1NjA1ICBtZm46IDAwMDA1NjA1DQoN
+CnVmZmVyIEkvTyBlcnJvciAoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyMl0gICBnZm46IDAw
+MDA1NjA2ICBtZm46IDAwMDA1NjA2DQoNCm9uIGRldmljZSBkbS0wLCAoWEVOKSBbMjAxMi0w
+OC0zMSAyMTozMzoyMl0gICBnZm46IDAwMDA1NjA3ICBtZm46IDAwMDA1NjA3DQoNCmxvZ2lj
+YWwgYmxvY2sgMTE0MzY1NzINCg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyMl0gICBn
+Zm46IDAwMDA1NjA4ICBtZm46IDAwMDA1NjA4DQoNClsgIDQ2My45MjE5OTZdIGwoWEVOKSBb
+MjAxMi0wOC0zMSAyMTozMzoyMl0gICBnZm46IDAwMDA1NjA5ICBtZm46IDAwMDA1NjA5DQoN
+Cm9zdCBwYWdlIHdyaXRlIGR1ZSB0byBJL08gZXJyb3IgKFhFTikgWzIwMTItMDgtMzEgMjE6
+MzM6MjJdICAgZ2ZuOiAwMDAwNTYwYSAgbWZuOiAwMDAwNTYwYQ0KDQpvbiBkbS0wDQoNCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjJdICAgZ2ZuOiAwMDAwNTYwYiAgbWZuOiAwMDAw
+NTYwYg0KDQpbICA0NjMuOTIyMDIxXSBBYm9ydGluZyBqb3VybmFsIChYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMzOjIyXSAgIGdmbjogMDAwMDU2MGMgIG1mbjogMDAwMDU2MGMNCg0Kb24gZGV2
+aWNlIGRtLTAtOChYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjIyXSAgIGdmbjogMDAwMDU2MGQg
+IG1mbjogMDAwMDU2MGQNCg0KLg0KDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjIyXSAg
+IGdmbjogMDAwMDU2MGUgIG1mbjogMDAwMDU2MGUNCg0KWyAgNDYzLjkyMjA4MF0gRShYRU4p
+IFsyMDEyLTA4LTMxIDIxOjMzOjIyXSAgIGdmbjogMDAwMDU2MGYgIG1mbjogMDAwMDU2MGYN
+Cg0KWFQ0LWZzIChkbS0wKTogZChYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjIyXSAgIGdmbjog
+MDAwMDU2MTAgIG1mbjogMDAwMDU2MTANCg0KZWxheWVkIGJsb2NrIGFsbChYRU4pIFsyMDEy
+LTA4LTMxIDIxOjMzOjIyXSAgIGdmbjogMDAwMDU2MTEgIG1mbjogMDAwMDU2MTENCg0Kb2Nh
+dGlvbiBmYWlsZWQgZm9yIGlub2RlIDIxMDU0MTkoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoy
+Ml0gICBnZm46IDAwMDA1NjEyICBtZm46IDAwMDA1NjEyDQoNCiBhdCBsb2dpY2FsIG9mZnMo
+WEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyMl0gICBnZm46IDAwMDA1NjEzICBtZm46IDAwMDA1
+NjEzDQoNCmV0IDM5IHdpdGggbWF4IGJsb2NrcyA1IHdpdGggZXJyKFhFTikgWzIwMTItMDgt
+MzEgMjE6MzM6MjNdICAgZ2ZuOiAwMDAwNTYxNCAgbWZuOiAwMDAwNTYxNA0KDQpvciAtMzAN
+Cg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyM10gICBnZm46IDAwMDA1NjE1ICBtZm46
+IDAwMDA1NjE1DQoNClsgIDQ2My45MjIwODFdIEVYVDQtZnMgKGRtLTApOiBUKFhFTikgWzIw
+MTItMDgtMzEgMjE6MzM6MjNdICAgZ2ZuOiAwMDAwNTYxNiAgbWZuOiAwMDAwNTYxNg0KDQpo
+aXMgc2hvdWxkIG5vdCBoKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjNdICAgZ2ZuOiAwMDAw
+NTYxNyAgbWZuOiAwMDAwNTYxNw0KDQphcHBlbiEhIERhdGEgd2lsbCBiZSBsb3N0DQoNCg0K
+WyAgNDYoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyM10gICBnZm46IDAwMDA1NjE4ICBtZm46
+IDAwMDA1NjE4DQoNCjMuOTIyMDgxXSANCg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoy
+M10gICBnZm46IDAwMDA1NjE5ICBtZm46IDAwMDA1NjE5DQoNClsgIDQ2My45MjIxMzFdIEVY
+VDQtZnMgZXJyb3IgKGRlKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjNdICAgZ2ZuOiAwMDAw
+NTYxYSAgbWZuOiAwMDAwNTYxYQ0KDQp2aWNlIGRtLTApIGluIGV4KFhFTikgWzIwMTItMDgt
+MzEgMjE6MzM6MjNdICAgZ2ZuOiAwMDAwNTYxYiAgbWZuOiAwMDAwNTYxYg0KDQp0NF9kYV93
+cml0ZXBhZ2VzOjIzOTg6IEpvdXJuYWwgaChYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjIzXSAg
+IGdmbjogMDAwMDU2MWMgIG1mbjogMDAwMDU2MWMNCg0KYXMgYWJvcnRlZA0KDQoNCihYRU4p
+IFsyMDEyLTA4LTMxIDIxOjMzOjIzXSAgIGdmbjogMDAwMDU2MWQgIG1mbjogMDAwMDU2MWQN
+Cg0KWyAgNDYzLjkyMjIzM10gRVhUNC1mcyBlcnJvciAoZGUoWEVOKSBbMjAxMi0wOC0zMSAy
+MTozMzoyM10gICBnZm46IDAwMDA1NjFlICBtZm46IDAwMDA1NjFlDQoNCnZpY2UgZG0tMCkg
+aW4gZXgoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyM10gICBnZm46IDAwMDA1NjFmICBtZm46
+IDAwMDA1NjFmDQoNCnQ0X3Jlc2VydmVfaW5vZGVfd3JpdGU6NDU0MzogSm91KFhFTikgWzIw
+MTItMDgtMzEgMjE6MzM6MjNdICAgZ2ZuOiAwMDAwNTYyMCAgbWZuOiAwMDAwNTYyMA0KDQpy
+bmFsIGhhcyBhYm9ydGVkKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjNdICAgZ2ZuOiAwMDAw
+NTYyMSAgbWZuOiAwMDAwNTYyMQ0KDQoNCg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoy
+M10gICBnZm46IDAwMDA1NjIyICBtZm46IDAwMDA1NjIyDQoNClsgIDQ2My45MjIyNjldIHMo
+WEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyM10gICBnZm46IDAwMDA1NjIzICBtZm46IDAwMDA1
+NjIzDQoNCmQgMDowOjA6MDogW3NkYV0gVW5oYW5kbGVkIGVycm9yKFhFTikgWzIwMTItMDgt
+MzEgMjE6MzM6MjNdICAgZ2ZuOiAwMDAwNTYyNCAgbWZuOiAwMDAwNTYyNA0KDQogY29kZQ0K
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjIzXSAgIGdmbjogMDAwMDU2MjUgIG1mbjog
+MDAwMDU2MjUNCg0KWyAgNDYzLjkyMjI3MF0gc2QgMDowOjA6MDogW3NkYV0oWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMzoyM10gICBnZm46IDAwMDA1NjI2ICBtZm46IDAwMDA1NjI2DQoNCiAg
+DQoNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjNdICAgZ2ZuOiAwMDAwNTYyNyAgbWZu
+OiAwMDAwNTYyNw0KDQpbICA0NjMuOTIyMjcxXSBSZXN1bHQ6IGhvc3RieXRlPShYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMzOjIzXSAgIGdmbjogMDAwMDU2MjggIG1mbjogMDAwMDU2MjgNCg0K
+RElEX0JBRF9UQVJHRVQgZChYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjIzXSAgIGdmbjogMDAw
+MDU2MjkgIG1mbjogMDAwMDU2MjkNCg0Kcml2ZXJieXRlPURSSVZFUl9PSw0KDQoNCihYRU4p
+IFsyMDEyLTA4LTMxIDIxOjMzOjIzXSAgIGdmbjogMDAwMDU2MmEgIG1mbjogMDAwMDU2MmEN
+Cg0KWyAgNDYzLjkyMjI3Ml0gcyhYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjIzXSAgIGdmbjog
+MDAwMDU2MmIgIG1mbjogMDAwMDU2MmINCg0KZCAwOjA6MDowOiBbc2RhXSBDREI6IA0KDQoN
+CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjIzXSAgIGdmbjogMDAwMDU2MmMgIG1mbjogMDAw
+MDU2MmMNCg0KWyAgNDYzLjkyMjI3NV0gVyhYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjIzXSAg
+IGdmbjogMDAwMDU2MmQgIG1mbjogMDAwMDU2MmQNCg0Kcml0ZSgxMCk6IDJhIDAwIDAxIDJh
+IDg1IDQ5IDAwIDAoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyM10gICBnZm46IDAwMDA1NjJl
+ICBtZm46IDAwMDA1NjJlDQoNCjAgMDggMDANCg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+MzoyM10gICBnZm46IDAwMDA1NjJmICBtZm46IDAwMDA1NjJmDQoNClsgIDQ2My45MjIyNzZd
+IGVuZF9yZXF1ZXN0OiBJL08gKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjNdICAgZ2ZuOiAw
+MDAwNTYzMCAgbWZuOiAwMDAwNTYzMA0KDQplcnJvciwgZGV2IHNkYSwgKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzM6MjNdICAgZ2ZuOiAwMDAwNTYzMSAgbWZuOiAwMDAwNTYzMQ0KDQpzZWN0
+b3IgMTk1NjM4NDkNCg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyM10gICBnZm46IDAw
+MDA1NjMyICBtZm46IDAwMDA1NjMyDQoNClsgIDQ2My45MjIyOTJdIEooWEVOKSBbMjAxMi0w
+OC0zMSAyMTozMzoyM10gICBnZm46IDAwMDA1NjMzICBtZm46IDAwMDA1NjMzDQoNCkJEMjog
+RXJyb3IgLTUgZGV0ZWN0ZWQgd2hlbiB1cGRhdGluZyBqb3VybmFsIHN1cChYRU4pIFsyMDEy
+LTA4LTMxIDIxOjMzOjIzXSAgIGdmbjogMDAwMDU2MzQgIG1mbjogMDAwMDU2MzQNCg0KZXJi
+bG9jayBmb3IgZG0tMChYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjIzXSAgIGdmbjogMDAwMDU2
+MzUgIG1mbjogMDAwMDU2MzUNCg0KLTguDQoNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6
+MjNdICAgZ2ZuOiAwMDAwNTYzNiAgbWZuOiAwMDAwNTYzNg0KDQpbICA0NjMuOTIyMzU3XSBz
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjNdICAgZ2ZuOiAwMDAwNTYzNyAgbWZuOiAwMDAw
+NTYzNw0KDQpkIDA6MDowOjA6IFtzZGFdKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjNdICAg
+Z2ZuOiAwMDAwNTYzOCAgbWZuOiAwMDAwNTYzOA0KDQogVW5oYW5kbGVkIGVycm9yKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzM6MjNdICAgZ2ZuOiAwMDAwNTYzOSAgbWZuOiAwMDAwNTYzOQ0K
+DQogY29kZQ0KDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjIzXSAgIGdmbjogMDAwMDU2
+M2EgIG1mbjogMDAwMDU2M2ENCg0KWyAgNDYzLjkyMjM1OF0gcyhYRU4pIFsyMDEyLTA4LTMx
+IDIxOjMzOjIzXSAgIGdmbjogMDAwMDU2M2IgIG1mbjogMDAwMDU2M2INCg0KZCAwOjA6MDow
+OiBbc2RhXSAgDQoNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjNdICAgZ2ZuOiAwMDAw
+NTYzYyAgbWZuOiAwMDAwNTYzYw0KDQpbICA0NjMuOTIyMzU4XSBSKFhFTikgWzIwMTItMDgt
+MzEgMjE6MzM6MjNdICAgZ2ZuOiAwMDAwNTYzZCAgbWZuOiAwMDAwNTYzZA0KDQplc3VsdDog
+aG9zdGJ5dGU9RElEX0JBRF9UQVJHRVQgZChYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjIzXSAg
+IGdmbjogMDAwMDU2M2UgIG1mbjogMDAwMDU2M2UNCg0Kcml2ZXJieXRlPURSSVZFUihYRU4p
+IFsyMDEyLTA4LTMxIDIxOjMzOjIzXSAgIGdmbjogMDAwMDU2M2YgIG1mbjogMDAwMDU2M2YN
+Cg0KX09LDQoNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjNdICAgZ2ZuOiAwMDAwNTY0
+MCAgbWZuOiAwMDAwNTY0MA0KDQpbICA0NjMuOTIyMzU5XSBzKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzM6MjNdICAgZ2ZuOiAwMDAwNTY0MSAgbWZuOiAwMDAwNTY0MQ0KDQpkIDA6MDowOjA6
+IFtzZGFdKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjNdICAgZ2ZuOiAwMDAwNTY0MiAgbWZu
+OiAwMDAwNTY0Mg0KDQogQ0RCOiANCg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyM10g
+ICBnZm46IDAwMDA1NjQzICBtZm46IDAwMDA1NjQzDQoNClsgIDQ2My45MjIzNjNdIFdyaXRl
+KDEwKTogMmEgMDAgKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjRdICAgZ2ZuOiAwMDAwNTY0
+NCAgbWZuOiAwMDAwNTY0NA0KDQowMSAyYSA1NSAwMSAwMCAwKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzM6MjRdICAgZ2ZuOiAwMDAwNTY0NSAgbWZuOiAwMDAwNTY0NQ0KDQowIDA4IDAwDQoN
+Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjRdICAgZ2ZuOiAwMDAwNTY0NiAgbWZuOiAw
+MDAwNTY0Ng0KDQpbICA0NjMuOTIyMzYzXSBlKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjRd
+ICAgZ2ZuOiAwMDAwNTY0NyAgbWZuOiAwMDAwNTY0Nw0KDQpuZF9yZXF1ZXN0OiBJL08gZXJy
+b3IsIGRldiBzZGEsIChYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI0XSAgIGdmbjogMDAwMDU2
+NDggIG1mbjogMDAwMDU2NDgNCg0Kc2VjdG9yIDE5NTUxNDg5DQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMzoyNF0gICBnZm46IDAwMDA1NjQ5ICBtZm46IDAwMDA1NjQ5DQoNCg0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMzoyNF0gICBnZm46IDAwMDA1NjRhICBtZm46IDAwMDA1NjRh
+DQoNClsgIDQ2My45MjI1MjJdIHMoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyNF0gICBnZm46
+IDAwMDA1NjRiICBtZm46IDAwMDA1NjRiDQoNCmQgMDowOjA6MDogW3NkYV0oWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMzoyNF0gICBnZm46IDAwMDA1NjRjICBtZm46IDAwMDA1NjRjDQoNCiBV
+bmhhbmRsZWQgZXJyb3IoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyNF0gICBnZm46IDAwMDA1
+NjRkICBtZm46IDAwMDA1NjRkDQoNCiBjb2RlDQoNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
+MzM6MjRdICAgZ2ZuOiAwMDAwNTY0ZSAgbWZuOiAwMDAwNTY0ZQ0KDQpbICA0NjMuOTIyNTIz
+XSBzKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjRdICAgZ2ZuOiAwMDAwNTY0ZiAgbWZuOiAw
+MDAwNTY0Zg0KDQpkIDA6MDowOjA6IFtzZGFdKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjRd
+ICAgZ2ZuOiAwMDAwNTY1MCAgbWZuOiAwMDAwNTY1MA0KDQogIA0KDQoNCihYRU4pIFsyMDEy
+LTA4LTMxIDIxOjMzOjI0XSAgIGdmbjogMDAwMDU2NTEgIG1mbjogMDAwMDU2NTENCg0KWyAg
+NDYzLjkyMjUyNF0gUmVzdWx0OiBob3N0Ynl0ZT0oWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoy
+NF0gICBnZm46IDAwMDA1NjUyICBtZm46IDAwMDA1NjUyDQoNCkRJRF9CQURfVEFSR0VUIGQo
+WEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyNF0gICBnZm46IDAwMDA1NjUzICBtZm46IDAwMDA1
+NjUzDQoNCnJpdmVyYnl0ZT1EUklWRVJfT0sNCg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+MzoyNF0gICBnZm46IDAwMDA1NjU0ICBtZm46IDAwMDA1NjU0DQoNClsgIDQ2My45MjI1MjVd
+IHMoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyNF0gICBnZm46IDAwMDA1NjU1ICBtZm46IDAw
+MDA1NjU1DQoNCmQgMDowOjA6MDogW3NkYV0gQ0RCOiANCg0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMzoyNF0gICBnZm46IDAwMDA1NjU2ICBtZm46IDAwMDA1NjU2DQoNClsgIDQ2My45
+MjI1MjhdIFcoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyNF0gICBnZm46IDAwMDA1NjU3ICBt
+Zm46IDAwMDA1NjU3DQoNCnJpdGUoMTApOiAyYSAwMCAwMSAyYSA1NSAwMSAwMCAwKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzM6MjRdICAgZ2ZuOiAwMDAwNTY1OCAgbWZuOiAwMDAwNTY1OA0K
+DQowIDA4IDAwDQoNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjRdICAgZ2ZuOiAwMDAw
+NTY1OSAgbWZuOiAwMDAwNTY1OQ0KDQpbICA0NjMuOTIyNTI5XSBlbmRfcmVxdWVzdDogSS9P
+IChYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI0XSAgIGdmbjogMDAwMDU2NWEgIG1mbjogMDAw
+MDU2NWENCg0KZXJyb3IsIGRldiBzZGEsIChYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI0XSAg
+IGdmbjogMDAwMDU2NWIgIG1mbjogMDAwMDU2NWINCg0Kc2VjdG9yIDE5NTUxNDg5DQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMzoyNF0gICBnZm46IDAwMDA1NjVjICBtZm46IDAwMDA1NjVj
+DQoNCg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyNF0gICBnZm46IDAwMDA1NjVkICBt
+Zm46IDAwMDA1NjVkDQoNClsgIDQ2My45MjI1NDJdIEVYVDQtZnMgKGRtLTApOiBSKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzM6MjRdICAgZ2ZuOiAwMDAwNTY1ZSAgbWZuOiAwMDAwNTY1ZQ0K
+DQplbW91bnRpbmcgZmlsZXN5KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjRdICAgZ2ZuOiAw
+MDAwNTY1ZiAgbWZuOiAwMDAwNTY1Zg0KDQpzdGVtIHJlYWQtb25seQ0KDQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMzOjI0XSAgIGdmbjogMDAwMDU2NjAgIG1mbjogMDAwMDU2NjANCg0K
+WyAgNDYzLjkyMjU0NV0gRShYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI0XSAgIGdmbjogMDAw
+MDU2NjEgIG1mbjogMDAwMDU2NjENCg0KWFQ0LWZzIChkbS0wKTogZXh0NF9kYV93cml0ZXBh
+Z2UoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyNF0gICBnZm46IDAwMDA1NjYyICBtZm46IDAw
+MDA1NjYyDQoNCnM6IGpiZDJfc3RhcnQ6IDYoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyNF0g
+ICBnZm46IDAwMDA1NjYzICBtZm46IDAwMDA1NjYzDQoNCjE0NCBwYWdlcywgaW5vIDIoWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMzoyNF0gICBnZm46IDAwMDA1NjY0ICBtZm46IDAwMDA1NjY0
+DQoNCjEwNTQxOTsgZXJyIC0zMA0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjRdICAgZ2Zu
+OiAwMDAwNTY2NSAgbWZuOiAwMDAwNTY2NQ0KDQoNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
+MzM6MjRdICAgZ2ZuOiAwMDAwNTY2NiAgbWZuOiAwMDAwNTY2Ng0KDQpbICA0NjMuOTI1Njkz
+XSBFKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjRdICAgZ2ZuOiAwMDAwNTY2NyAgbWZuOiAw
+MDAwNTY2Nw0KDQpYVDQtZnMgZXJyb3IgKGRldmljZSBkbS0wKSBpbiBleChYRU4pIFsyMDEy
+LTA4LTMxIDIxOjMzOjI0XSAgIGdmbjogMDAwMDU2NjggIG1mbjogMDAwMDU2NjgNCg0KdDRf
+cmVzZXJ2ZV9pbm9kZShYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI0XSAgIGdmbjogMDAwMDU2
+NjkgIG1mbjogMDAwMDU2NjkNCg0KX3dyaXRlOjQ1NDM6IEpvdXJuYWwgaGFzIGFib3J0ZWQo
+WEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyNF0gICBnZm46IDAwMDA1NjZhICBtZm46IDAwMDA1
+NjZhDQoNCg0KDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI0XSAgIGdmbjogMDAwMDU2
+NmIgIG1mbjogMDAwMDU2NmINCg0KWyAgNDYzLjkyNTY5OF0gRVhUNC1mcyAoZG0tMCk6IHAo
+WEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyNF0gICBnZm46IDAwMDA1NjZjICBtZm46IDAwMDA1
+NjZjDQoNCnJldmlvdXMgSS9PIGVycm8oWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyNF0gICBn
+Zm46IDAwMDA1NjZkICBtZm46IDAwMDA1NjZkDQoNCnIgdG8gc3VwZXJibG9jayBkZXRlY3Rl
+ZA0KDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI0XSAgIGdmbjogMDAwMDU2NmUgIG1m
+bjogMDAwMDU2NmUNCg0KWyAgNDYzLjkyNTczM10gcyhYRU4pIFsyMDEyLTA4LTMxIDIxOjMz
+OjI0XSAgIGdmbjogMDAwMDU2NmYgIG1mbjogMDAwMDU2NmYNCg0KZCAwOjA6MDowOiBbc2Rh
+XShYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI0XSAgIGdmbjogMDAwMDU2NzAgIG1mbjogMDAw
+MDU2NzANCg0KIFVuaGFuZGxlZCBlcnJvcihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI0XSAg
+IGdmbjogMDAwMDU2NzEgIG1mbjogMDAwMDU2NzENCg0KIGNvZGUNCg0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMzoyNF0gICBnZm46IDAwMDA1NjcyICBtZm46IDAwMDA1NjcyDQoNClsg
+IDQ2My45MjU3MzRdIHMoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyNF0gICBnZm46IDAwMDA1
+NjczICBtZm46IDAwMDA1NjczDQoNCmQgMDowOjA6MDogW3NkYV0oWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMzoyNF0gICBnZm46IDAwMDA1Njc0ICBtZm46IDAwMDA1Njc0DQoNCiAgDQoNCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjRdICAgZ2ZuOiAwMDAwNTY3NSAgbWZuOiAwMDAw
+NTY3NQ0KDQpbICA0NjMuOTI1NzM0XSBSZXN1bHQ6IGhvc3RieXRlPShYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMzOjI1XSAgIGdmbjogMDAwMDU2NzYgIG1mbjogMDAwMDU2NzYNCg0KRElEX0JB
+RF9UQVJHRVQgZChYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI1XSAgIGdmbjogMDAwMDU2Nzcg
+IG1mbjogMDAwMDU2NzcNCg0Kcml2ZXJieXRlPURSSVZFUl9PSw0KDQoNCihYRU4pIFsyMDEy
+LTA4LTMxIDIxOjMzOjI1XSAgIGdmbjogMDAwMDU2NzggIG1mbjogMDAwMDU2NzgNCg0KWyAg
+NDYzLjkyNTczNV0gcyhYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI1XSAgIGdmbjogMDAwMDU2
+NzkgIG1mbjogMDAwMDU2NzkNCg0KZCAwOjA6MDowOiBbc2RhXSBDREI6IA0KDQoNCihYRU4p
+IFsyMDEyLTA4LTMxIDIxOjMzOjI1XSAgIGdmbjogMDAwMDU2N2EgIG1mbjogMDAwMDU2N2EN
+Cg0KWyAgNDYzLjkyNTczOV0gVyhYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI1XSAgIGdmbjog
+MDAwMDU2N2IgIG1mbjogMDAwMDU2N2INCg0Kcml0ZSgxMCk6IDJhIDAwIDAxIDJhIDU1IDAx
+IDAwIDAoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyNV0gICBnZm46IDAwMDA1NjdjICBtZm46
+IDAwMDA1NjdjDQoNCjAgMDggMDANCg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyNV0g
+ICBnZm46IDAwMDA1NjdkICBtZm46IDAwMDA1NjdkDQoNClsgIDQ2My45MjU3NDBdIGVuZF9y
+ZXF1ZXN0OiBJL08gKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjVdICAgZ2ZuOiAwMDAwNTY3
+ZSAgbWZuOiAwMDAwNTY3ZQ0KDQplcnJvciwgZGV2IHNkYSwgKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzM6MjVdICAgZ2ZuOiAwMDAwNTY3ZiAgbWZuOiAwMDAwNTY3Zg0KDQpzZWN0b3IgMTk1
+NTE0ODkNCg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyNV0gICBnZm46IDAwMDA1Njgw
+ICBtZm46IDAwMDA1NjgwDQoNClsgIDQ2My45MjU4NDhdIHMoWEVOKSBbMjAxMi0wOC0zMSAy
+MTozMzoyNV0gICBnZm46IDAwMDA1NjgxICBtZm46IDAwMDA1NjgxDQoNCmQgMDowOjA6MDog
+W3NkYV0gVW5oYW5kbGVkIGVycm9yKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjVdICAgZ2Zu
+OiAwMDAwNTY4MiAgbWZuOiAwMDAwNTY4Mg0KDQogY29kZQ0KDQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMzOjI1XSAgIGdmbjogMDAwMDU2ODMgIG1mbjogMDAwMDU2ODMNCg0KWyAgNDYz
+LjkyNTg0OV0gc2QgMDowOjA6MDogW3NkYV0oWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyNV0g
+ICBnZm46IDAwMDA1Njg0ICBtZm46IDAwMDA1Njg0DQoNCiAgDQoNCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzM6MjVdICAgZ2ZuOiAwMDAwNTY4NSAgbWZuOiAwMDAwNTY4NQ0KDQpbICA0
+NjMuOTI1ODQ5XSBSZXN1bHQ6IGhvc3RieXRlPShYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI1
+XSAgIGdmbjogMDAwMDU2ODYgIG1mbjogMDAwMDU2ODYNCg0KRElEX0JBRF9UQVJHRVQgZChY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI1XSAgIGdmbjogMDAwMDU2ODcgIG1mbjogMDAwMDU2
+ODcNCg0Kcml2ZXJieXRlPURSSVZFUl9PSw0KDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMz
+OjI1XSAgIGdmbjogMDAwMDU2ODggIG1mbjogMDAwMDU2ODgNCg0KWyAgNDYzLjkyNTg1MF0g
+cyhYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI1XSAgIGdmbjogMDAwMDU2ODkgIG1mbjogMDAw
+MDU2ODkNCg0KZCAwOjA6MDowOiBbc2RhXSBDREI6IA0KDQoNCihYRU4pIFsyMDEyLTA4LTMx
+IDIxOjMzOjI1XSAgIGdmbjogMDAwMDU2OGEgIG1mbjogMDAwMDU2OGENCg0KWyAgNDYzLjky
+NTg1NF0gVyhYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI1XSAgIGdmbjogMDAwMDU2OGIgIG1m
+bjogMDAwMDU2OGINCg0Kcml0ZSgxMCk6IDJhIDAwIDA1IDdhIDg4IGExIDAwIDAoWEVOKSBb
+MjAxMi0wOC0zMSAyMTozMzoyNV0gICBnZm46IDAwMDA1NjhjICBtZm46IDAwMDA1NjhjDQoN
+CjAgMDggMDANCg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyNV0gICBnZm46IDAwMDA1
+NjhkICBtZm46IDAwMDA1NjhkDQoNClsgIDQ2My45MjU4NTVdIGVuZF9yZXF1ZXN0OiBJL08g
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjVdICAgZ2ZuOiAwMDAwNTY4ZSAgbWZuOiAwMDAw
+NTY4ZQ0KDQplcnJvciwgZGV2IHNkYSwgKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjVdICAg
+Z2ZuOiAwMDAwNTY4ZiAgbWZuOiAwMDAwNTY4Zg0KDQpzZWN0b3IgOTE5MTY0NDkNCg0KDQoo
+WEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyNV0gICBnZm46IDAwMDA1NjkwICBtZm46IDAwMDA1
+NjkwDQoNClsgIDQ2My45MjU4NjZdIHMoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyNV0gICBn
+Zm46IDAwMDA1NjkxICBtZm46IDAwMDA1NjkxDQoNCmQgMDowOjA6MDogW3NkYV0gVW5oYW5k
+bGVkIGVycm9yKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjVdICAgZ2ZuOiAwMDAwNTY5MiAg
+bWZuOiAwMDAwNTY5Mg0KDQogY29kZQ0KDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI1
+XSAgIGdmbjogMDAwMDU2OTMgIG1mbjogMDAwMDU2OTMNCg0KWyAgNDYzLjkyNTg2N10gc2Qg
+MDowOjA6MDogW3NkYV0oWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyNV0gICBnZm46IDAwMDA1
+Njk0ICBtZm46IDAwMDA1Njk0DQoNCiAgDQoNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6
+MjVdICAgZ2ZuOiAwMDAwNTY5NSAgbWZuOiAwMDAwNTY5NQ0KDQpbICA0NjMuOTI1ODY4XSBS
+ZXN1bHQ6IGhvc3RieXRlPShYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI1XSAgIGdmbjogMDAw
+MDU2OTYgIG1mbjogMDAwMDU2OTYNCg0KRElEX0JBRF9UQVJHRVQgZChYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMzOjI1XSAgIGdmbjogMDAwMDU2OTcgIG1mbjogMDAwMDU2OTcNCg0Kcml2ZXJi
+eXRlPURSSVZFUl9PSw0KDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI1XSAgIGdmbjog
+MDAwMDU2OTggIG1mbjogMDAwMDU2OTgNCg0KWyAgNDYzLjkyNTg2OV0gcyhYRU4pIFsyMDEy
+LTA4LTMxIDIxOjMzOjI1XSAgIGdmbjogMDAwMDU2OTkgIG1mbjogMDAwMDU2OTkNCg0KZCAw
+OjA6MDowOiBbc2RhXSBDREI6IA0KDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI1XSAg
+IGdmbjogMDAwMDU2OWEgIG1mbjogMDAwMDU2OWENCg0KWyAgNDYzLjkyNTg3Ml0gVyhYRU4p
+IFsyMDEyLTA4LTMxIDIxOjMzOjI1XSAgIGdmbjogMDAwMDU2OWIgIG1mbjogMDAwMDU2OWIN
+Cg0Kcml0ZSgxMCk6IDJhIDAwIDA1IDdhIDk5IDYxIDAwIDAoWEVOKSBbMjAxMi0wOC0zMSAy
+MTozMzoyNV0gICBnZm46IDAwMDA1NjljICBtZm46IDAwMDA1NjljDQoNCjAgMDggMDANCg0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyNV0gICBnZm46IDAwMDA1NjlkICBtZm46IDAw
+MDA1NjlkDQoNClsgIDQ2My45MjU4NzJdIGVuZF9yZXF1ZXN0OiBJL08gKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzM6MjVdICAgZ2ZuOiAwMDAwNTY5ZSAgbWZuOiAwMDAwNTY5ZQ0KDQplcnJv
+ciwgZGV2IHNkYSwgKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjVdICAgZ2ZuOiAwMDAwNTY5
+ZiAgbWZuOiAwMDAwNTY5Zg0KDQpzZWN0b3IgOTE5MjA3MzcNCg0KDQooWEVOKSBbMjAxMi0w
+OC0zMSAyMTozMzoyNV0gICBnZm46IDAwMDA1NmEwICBtZm46IDAwMDA1NmEwDQoNClsgIDQ2
+My45MjU4NzldIHMoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyNV0gICBnZm46IDAwMDA1NmEx
+ICBtZm46IDAwMDA1NmExDQoNCmQgMDowOjA6MDogW3NkYV0gVW5oYW5kbGVkIGVycm9yKFhF
+TikgWzIwMTItMDgtMzEgMjE6MzM6MjVdICAgZ2ZuOiAwMDAwNTZhMiAgbWZuOiAwMDAwNTZh
+Mg0KDQogY29kZQ0KDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI1XSAgIGdmbjogMDAw
+MDU2YTMgIG1mbjogMDAwMDU2YTMNCg0KWyAgNDYzLjkyNTg3OV0gc2QgMDowOjA6MDogW3Nk
+YV0oWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyNV0gICBnZm46IDAwMDA1NmE0ICBtZm46IDAw
+MDA1NmE0DQoNCiAgDQoNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjZdICAgZ2ZuOiAw
+MDAwNTZhNSAgbWZuOiAwMDAwNTZhNQ0KDQpbICA0NjMuOTI1ODgwXSBSZXN1bHQ6IGhvc3Ri
+eXRlPShYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI2XSAgIGdmbjogMDAwMDU2YTYgIG1mbjog
+MDAwMDU2YTYNCg0KRElEX0JBRF9UQVJHRVQgZChYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI2
+XSAgIGdmbjogMDAwMDU2YTcgIG1mbjogMDAwMDU2YTcNCg0Kcml2ZXJieXRlPURSSVZFUl9P
+Sw0KDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI2XSAgIGdmbjogMDAwMDU2YTggIG1m
+bjogMDAwMDU2YTgNCg0KWyAgNDYzLjkyNTg4MV0gcyhYRU4pIFsyMDEyLTA4LTMxIDIxOjMz
+OjI2XSAgIGdmbjogMDAwMDU2YTkgIG1mbjogMDAwMDU2YTkNCg0KZCAwOjA6MDowOiBbc2Rh
+XSBDREI6IA0KDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI2XSAgIGdmbjogMDAwMDU2
+YWEgIG1mbjogMDAwMDU2YWENCg0KWyAgNDYzLjkyNTg4NF0gVyhYRU4pIFsyMDEyLTA4LTMx
+IDIxOjMzOjI2XSAgIGdmbjogMDAwMDU2YWIgIG1mbjogMDAwMDU2YWINCg0Kcml0ZSgxMCk6
+IDJhIDAwIDA1IGM2IGFmIDcxIDAwIDAoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyNl0gICBn
+Zm46IDAwMDA1NmFjICBtZm46IDAwMDA1NmFjDQoNCjAgMDggMDANCg0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMzoyNl0gICBnZm46IDAwMDA1NmFkICBtZm46IDAwMDA1NmFkDQoNClsg
+IDQ2My45MjU4ODVdIGVuZF9yZXF1ZXN0OiBJL08gKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6
+MjZdICAgZ2ZuOiAwMDAwNTZhZSAgbWZuOiAwMDAwNTZhZQ0KDQplcnJvciwgZGV2IHNkYSwg
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjZdICAgZ2ZuOiAwMDAwNTZhZiAgbWZuOiAwMDAw
+NTZhZg0KDQpzZWN0b3IgOTY5MDcxMjENCg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoy
+Nl0gICBnZm46IDAwMDA1NmIwICBtZm46IDAwMDA1NmIwDQoNClsgIDQ2My45MjU4OTFdIHMo
+WEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyNl0gICBnZm46IDAwMDA1NmIxICBtZm46IDAwMDA1
+NmIxDQoNCmQgMDowOjA6MDogW3NkYV0gVW5oYW5kbGVkIGVycm9yKFhFTikgWzIwMTItMDgt
+MzEgMjE6MzM6MjZdICAgZ2ZuOiAwMDAwNTZiMiAgbWZuOiAwMDAwNTZiMg0KDQogY29kZQ0K
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI2XSAgIGdmbjogMDAwMDU2YjMgIG1mbjog
+MDAwMDU2YjMNCg0KWyAgNDYzLjkyNTg5Ml0gc2QgMDowOjA6MDogW3NkYV0oWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMzoyNl0gICBnZm46IDAwMDA1NmI0ICBtZm46IDAwMDA1NmI0DQoNCiAg
+DQoNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjZdICAgZ2ZuOiAwMDAwNTZiNSAgbWZu
+OiAwMDAwNTZiNQ0KDQpbICA0NjMuOTI1ODkyXSBSZXN1bHQ6IGhvc3RieXRlPShYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMzOjI2XSAgIGdmbjogMDAwMDU2YjYgIG1mbjogMDAwMDU2YjYNCg0K
+RElEX0JBRF9UQVJHRVQgZChYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI2XSAgIGdmbjogMDAw
+MDU2YjcgIG1mbjogMDAwMDU2YjcNCg0Kcml2ZXJieXRlPURSSVZFUl9PSw0KDQoNCihYRU4p
+IFsyMDEyLTA4LTMxIDIxOjMzOjI2XSAgIGdmbjogMDAwMDU2YjggIG1mbjogMDAwMDU2YjgN
+Cg0KWyAgNDYzLjkyNTg5M10gcyhYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI2XSAgIGdmbjog
+MDAwMDU2YjkgIG1mbjogMDAwMDU2YjkNCg0KZCAwOjA6MDowOiBbc2RhXSBDREI6IA0KDQoN
+CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI2XSAgIGdmbjogMDAwMDU2YmEgIG1mbjogMDAw
+MDU2YmENCg0KWyAgNDYzLjkyNTg5Nl0gVyhYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI2XSAg
+IGdmbjogMDAwMDU2YmIgIG1mbjogMDAwMDU2YmINCg0Kcml0ZSgxMCk6IDJhIDAwIDAyIDRl
+IDk1IDExIDAwIDAoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyNl0gICBnZm46IDAwMDA1NmJj
+ICBtZm46IDAwMDA1NmJjDQoNCjAgMDggMDANCg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+MzoyNl0gICBnZm46IDAwMDA1NmJkICBtZm46IDAwMDA1NmJkDQoNClsgIDQ2My45MjU4OTdd
+IGUoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyNl0gICBnZm46IDAwMDA1NmJlICBtZm46IDAw
+MDA1NmJlDQoNCm5kX3JlcXVlc3Q6IEkvTyAoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyNl0g
+ICBnZm46IDAwMDA1NmJmICBtZm46IDAwMDA1NmJmDQoNCmVycm9yLCBkZXYgc2RhLCAoWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMzoyNl0gICBnZm46IDAwMDA1NmMwICBtZm46IDAwMDA1NmMw
+DQoNCnNlY3RvciAzODcwNDQwMQ0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjZdICAgZ2Zu
+OiAwMDAwNTZjMSAgbWZuOiAwMDAwNTZjMQ0KDQoNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
+MzM6MjZdICAgZ2ZuOiAwMDAwNTZjMiAgbWZuOiAwMDAwNTZjMg0KDQpbICA0NjMuOTI1OTA3
+XSBKKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjZdICAgZ2ZuOiAwMDAwNTZjMyAgbWZuOiAw
+MDAwNTZjMw0KDQpCRDI6IERldGVjdGVkIElPKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjZd
+ICAgZ2ZuOiAwMDAwNTZjNCAgbWZuOiAwMDAwNTZjNA0KDQogZXJyb3JzIHdoaWxlIGZsKFhF
+TikgWzIwMTItMDgtMzEgMjE6MzM6MjZdICAgZ2ZuOiAwMDAwNTZjNSAgbWZuOiAwMDAwNTZj
+NQ0KDQp1c2hpbmcgZmlsZSBkYXRhIG9uIGRtLTAtOA0KDQoNCihYRU4pIFsyMDEyLTA4LTMx
+IDIxOjMzOjI2XSAgIGdmbjogMDAwMDU2YzYgIG1mbjogMDAwMDU2YzYNCg0KWyAgNDcyLjY4
+MjMzOV0gcyhYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI2XSAgIGdmbjogMDAwMDU2YzcgIG1m
+bjogMDAwMDU2YzcNCg0KZCAwOjA6MDowOiBbc2RhXSAgDQoNCg0KKFhFTikgWzIwMTItMDgt
+MzEgMjE6MzM6MjZdICAgZ2ZuOiAwMDAwNTZjOCAgbWZuOiAwMDAwNTZjOA0KDQpbICA0NzIu
+NzIzOTE5XSBSKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjZdICAgZ2ZuOiAwMDAwNTZjOSAg
+bWZuOiAwMDAwNTZjOQ0KDQplc3VsdDogaG9zdGJ5dGU9RElEX0JBRF9UQVJHRVQgZHJpdmVy
+Ynl0ZT1EUklWRVIoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyNl0gICBnZm46IDAwMDA1NmNh
+ICBtZm46IDAwMDA1NmNhDQoNCl9PSw0KDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI2
+XSAgIGdmbjogMDAwMDU2Y2IgIG1mbjogMDAwMDU2Y2INCg0KWyAgNDcyLjc4NjM2MV0gc2Qg
+MDowOjA6MDogW3NkYV0oWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyNl0gICBnZm46IDAwMDA1
+NmNjICBtZm46IDAwMDA1NmNjDQoNCiBDREI6IA0KDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMzOjI2XSAgIGdmbjogMDAwMDU2Y2QgIG1mbjogMDAwMDU2Y2QNCg0KWyAgNDcyLjgyNzk2
+MF0gV3JpdGUoMTApKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjZdICAgZ2ZuOiAwMDAwNTZj
+ZSAgbWZuOiAwMDAwNTZjZQ0KDQo6KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjZdICAgZ2Zu
+OiAwMDAwNTZjZiAgbWZuOiAwMDAwNTZjZg0KDQogMmEgMDAoWEVOKSBbMjAxMi0wOC0zMSAy
+MTozMzoyNl0gICBnZm46IDAwMDA1NmQwICBtZm46IDAwMDA1NmQwDQoNCiBiZihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMzOjI2XSAgIGdmbjogMDAwMDU2ZDEgIG1mbjogMDAwMDU2ZDENCg0K
+IDA5KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjZdICAgZ2ZuOiAwMDAwNTZkMiAgbWZuOiAw
+MDAwNTZkMg0KDQogMzcoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyNl0gICBnZm46IDAwMDA1
+NmQzICBtZm46IDAwMDA1NmQzDQoNCiAxMShYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI2XSAg
+IGdmbjogMDAwMDU2ZDQgIG1mbjogMDAwMDU2ZDQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
+MzM6MjZdICAgZ2ZuOiAwMDAwNTZkNSAgbWZuOiAwMDAwNTZkNQ0KDQogMDAoWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMzoyNl0gICBnZm46IDAwMDA1NmQ2ICBtZm46IDAwMDA1NmQ2DQoNCiAw
+MChYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI2XSAgIGdmbjogMDAwMDU2ZDcgIG1mbjogMDAw
+MDU2ZDcNCg0KIGIwKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjddICAgZ2ZuOiAwMDAwNTZk
+OCAgbWZuOiAwMDAwNTZkOA0KDQogMDAoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyN10gICBn
+Zm46IDAwMDA1NmQ5ICBtZm46IDAwMDA1NmQ5DQoNCg0KDQoNCihYRU4pIFsyMDEyLTA4LTMx
+IDIxOjMzOjI3XSAgIGdmbjogMDAwMDU2ZGEgIG1mbjogMDAwMDU2ZGENCg0KWyAgNDczLjA0
+ODQzNF0gZShYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI3XSAgIGdmbjogMDAwMDU2ZGIgIG1m
+bjogMDAwMDU2ZGINCg0KbmRfcmVxdWVzdDogSS9PIChYRU4pIFsyMDEyLTA4LTMxIDIxOjMz
+OjI3XSAgIGdmbjogMDAwMDU2ZGMgIG1mbjogMDAwMDU2ZGMNCg0KZXJyb3IsIGRldiBzZGEs
+IChYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI3XSAgIGdmbjogMDAwMDU2ZGQgIG1mbjogMDAw
+MDU2ZGQNCg0Kc2VjdG9yIDMyMDUwNTIxNzcNCg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+MzoyN10gICBnZm46IDAwMDA1NmRlICBtZm46IDAwMDA1NmRlDQoNClsgIDQ3My4xMjc1NDZd
+IHMoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyN10gICBnZm46IDAwMDA1NmRmICBtZm46IDAw
+MDA1NmRmDQoNCmQgMDowOjA6MDogW3NkYV0gVW5oYW5kbGVkIGVycm9yKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzM6MjddICAgZ2ZuOiAwMDAwNTZlMCAgbWZuOiAwMDAwNTZlMA0KDQogY29k
+ZQ0KDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI3XSAgIGdmbjogMDAwMDU2ZTEgIG1m
+bjogMDAwMDU2ZTENCg0KWyAgNDczLjE4OTg0MF0gc2QgMDowOjA6MDogW3NkYV0oWEVOKSBb
+MjAxMi0wOC0zMSAyMTozMzoyN10gICBnZm46IDAwMDA1NmUyICBtZm46IDAwMDA1NmUyDQoN
+CiAgDQoNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjddICAgZ2ZuOiAwMDAwNTZlMyAg
+bWZuOiAwMDAwNTZlMw0KDQpbICA0NzMuMjMxNDMzXSBSZXN1bHQ6IGhvc3RieXRlPShYRU4p
+IFsyMDEyLTA4LTMxIDIxOjMzOjI3XSAgIGdmbjogMDAwMDU2ZTQgIG1mbjogMDAwMDU2ZTQN
+Cg0KRElEX0JBRF9UQVJHRVQgZChYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI3XSAgIGdmbjog
+MDAwMDU2ZTUgIG1mbjogMDAwMDU2ZTUNCg0Kcml2ZXJieXRlPURSSVZFUl9PSw0KDQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI3XSAgIGdmbjogMDAwMDU2ZTYgIG1mbjogMDAwMDU2
+ZTYNCg0KWyAgNDczLjI5Mzg1NV0gcyhYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI3XSAgIGdm
+bjogMDAwMDU2ZTcgIG1mbjogMDAwMDU2ZTcNCg0KZCAwOjA6MDowOiBbc2RhXSBDREI6IA0K
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI3XSAgIGdmbjogMDAwMDU2ZTggIG1mbjog
+MDAwMDU2ZTgNCg0KWyAgNDczLjMzNTQ0OF0gUihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI3
+XSAgIGdmbjogMDAwMDU2ZTkgIG1mbjogMDAwMDU2ZTkNCg0KZWFkKDEwKShYRU4pIFsyMDEy
+LTA4LTMxIDIxOjMzOjI3XSAgIGdmbjogMDAwMDU2ZWEgIG1mbjogMDAwMDU2ZWENCg0KOihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI3XSAgIGdmbjogMDAwMDU2ZWIgIG1mbjogMDAwMDU2
+ZWINCg0KIDI4IDAwKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjddICAgZ2ZuOiAwMDAwNTZl
+YyAgbWZuOiAwMDAwNTZlYw0KDQogYmUoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyN10gICBn
+Zm46IDAwMDA1NmVkICBtZm46IDAwMDA1NmVkDQoNCiBkZihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMzOjI3XSAgIGdmbjogMDAwMDU2ZWUgIG1mbjogMDAwMDU2ZWUNCg0KIDhiKFhFTikgWzIw
+MTItMDgtMzEgMjE6MzM6MjddICAgZ2ZuOiAwMDAwNTZlZiAgbWZuOiAwMDAwNTZlZg0KDQog
+NjEoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyN10gICBnZm46IDAwMDA1NmYwICBtZm46IDAw
+MDA1NmYwDQoNCiAwMChYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI3XSAgIGdmbjogMDAwMDU2
+ZjEgIG1mbjogMDAwMDU2ZjENCg0KIDAyKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjddICAg
+Z2ZuOiAwMDAwNTZmMiAgbWZuOiAwMDAwNTZmMg0KDQogMDAoWEVOKSBbMjAxMi0wOC0zMSAy
+MTozMzoyN10gICBnZm46IDAwMDA1NmYzICBtZm46IDAwMDA1NmYzDQoNCiAwMChYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMzOjI3XSAgIGdmbjogMDAwMDU2ZjQgIG1mbjogMDAwMDU2ZjQNCg0K
+DQoNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjddICAgZ2ZuOiAwMDAwNTZmNSAgbWZu
+OiAwMDAwNTZmNQ0KDQpbICA0NzMuNTU1OTAxXSBlbmRfcmVxdWVzdDogSS9PIChYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMzOjI3XSAgIGdmbjogMDAwMDU2ZjYgIG1mbjogMDAwMDU2ZjYNCg0K
+ZXJyb3IsIGRldiBzZGEsIChYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI3XSAgIGdmbjogMDAw
+MDU2ZjcgIG1mbjogMDAwMDU2ZjcNCg0Kc2VjdG9yIDMyMDIzMjEyNDkNCg0KDQooWEVOKSBb
+MjAxMi0wOC0zMSAyMTozMzoyN10gICBnZm46IDAwMDA1NmY4ICBtZm46IDAwMDA1NmY4DQoN
+CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI3XSAgIGdmbjogMDAwMDU2ZjkgIG1mbjogMDAw
+MDU2ZjkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjddICAgZ2ZuOiAwMDAwNTZmYSAg
+bWZuOiAwMDAwNTZmYQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyN10gICBnZm46IDAw
+MDA1NmZiICBtZm46IDAwMDA1NmZiDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI3XSAg
+IGdmbjogMDAwMDU2ZmMgIG1mbjogMDAwMDU2ZmMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
+MzM6MjddICAgZ2ZuOiAwMDAwNTZmZCAgbWZuOiAwMDAwNTZmZA0KDQooWEVOKSBbMjAxMi0w
+OC0zMSAyMTozMzoyN10gICBnZm46IDAwMDA1NmZlICBtZm46IDAwMDA1NmZlDQoNCihYRU4p
+IFsyMDEyLTA4LTMxIDIxOjMzOjI3XSAgIGdmbjogMDAwMDU2ZmYgIG1mbjogMDAwMDU2ZmYN
+Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjddICAgZ2ZuOiAwMDAwNTcwMCAgbWZuOiAw
+MDAwNTcwMA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyN10gICBnZm46IDAwMDA1NzAx
+ICBtZm46IDAwMDA1NzAxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI3XSAgIGdmbjog
+MDAwMDU3MDIgIG1mbjogMDAwMDU3MDINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6Mjdd
+ICAgZ2ZuOiAwMDAwNTcwMyAgbWZuOiAwMDAwNTcwMw0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
+MTozMzoyN10gICBnZm46IDAwMDA1NzA0ICBtZm46IDAwMDA1NzA0DQoNCihYRU4pIFsyMDEy
+LTA4LTMxIDIxOjMzOjI3XSAgIGdmbjogMDAwMDU3MDUgIG1mbjogMDAwMDU3MDUNCg0KKFhF
+TikgWzIwMTItMDgtMzEgMjE6MzM6MjddICAgZ2ZuOiAwMDAwNTcwNiAgbWZuOiAwMDAwNTcw
+Ng0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyN10gICBnZm46IDAwMDA1NzA3ICBtZm46
+IDAwMDA1NzA3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI3XSAgIGdmbjogMDAwMDU3
+MDggIG1mbjogMDAwMDU3MDgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjddICAgZ2Zu
+OiAwMDAwNTcwOSAgbWZuOiAwMDAwNTcwOQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoy
+N10gICBnZm46IDAwMDA1NzBhICBtZm46IDAwMDA1NzBhDQoNCihYRU4pIFsyMDEyLTA4LTMx
+IDIxOjMzOjI3XSAgIGdmbjogMDAwMDU3MGIgIG1mbjogMDAwMDU3MGINCg0KKFhFTikgWzIw
+MTItMDgtMzEgMjE6MzM6MjddICAgZ2ZuOiAwMDAwNTcwYyAgbWZuOiAwMDAwNTcwYw0KDQoo
+WEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyN10gICBnZm46IDAwMDA1NzBkICBtZm46IDAwMDA1
+NzBkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI3XSAgIGdmbjogMDAwMDU3MGUgIG1m
+bjogMDAwMDU3MGUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjddICAgZ2ZuOiAwMDAw
+NTcwZiAgbWZuOiAwMDAwNTcwZg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyN10gICBn
+Zm46IDAwMDA1NzEwICBtZm46IDAwMDA1NzEwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMz
+OjI4XSAgIGdmbjogMDAwMDU3MTEgIG1mbjogMDAwMDU3MTENCg0KKFhFTikgWzIwMTItMDgt
+MzEgMjE6MzM6MjhdICAgZ2ZuOiAwMDAwNTcxMiAgbWZuOiAwMDAwNTcxMg0KDQooWEVOKSBb
+MjAxMi0wOC0zMSAyMTozMzoyOF0gICBnZm46IDAwMDA1NzEzICBtZm46IDAwMDA1NzEzDQoN
+CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI4XSAgIGdmbjogMDAwMDU3MTQgIG1mbjogMDAw
+MDU3MTQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjhdICAgZ2ZuOiAwMDAwNTcxNSAg
+bWZuOiAwMDAwNTcxNQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyOF0gICBnZm46IDAw
+MDA1NzE2ICBtZm46IDAwMDA1NzE2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI4XSAg
+IGdmbjogMDAwMDU3MTcgIG1mbjogMDAwMDU3MTcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
+MzM6MjhdICAgZ2ZuOiAwMDAwNTcxOCAgbWZuOiAwMDAwNTcxOA0KDQooWEVOKSBbMjAxMi0w
+OC0zMSAyMTozMzoyOF0gICBnZm46IDAwMDA1NzE5ICBtZm46IDAwMDA1NzE5DQoNCihYRU4p
+IFsyMDEyLTA4LTMxIDIxOjMzOjI4XSAgIGdmbjogMDAwMDU3MWEgIG1mbjogMDAwMDU3MWEN
+Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjhdICAgZ2ZuOiAwMDAwNTcxYiAgbWZuOiAw
+MDAwNTcxYg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyOF0gICBnZm46IDAwMDA1NzFj
+ICBtZm46IDAwMDA1NzFjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI4XSAgIGdmbjog
+MDAwMDU3MWQgIG1mbjogMDAwMDU3MWQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6Mjhd
+ICAgZ2ZuOiAwMDAwNTcxZSAgbWZuOiAwMDAwNTcxZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
+MTozMzoyOF0gICBnZm46IDAwMDA1NzFmICBtZm46IDAwMDA1NzFmDQoNCihYRU4pIFsyMDEy
+LTA4LTMxIDIxOjMzOjI4XSAgIGdmbjogMDAwMDU3MjAgIG1mbjogMDAwMDU3MjANCg0KKFhF
+TikgWzIwMTItMDgtMzEgMjE6MzM6MjhdICAgZ2ZuOiAwMDAwNTcyMSAgbWZuOiAwMDAwNTcy
+MQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyOF0gICBnZm46IDAwMDA1NzIyICBtZm46
+IDAwMDA1NzIyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI4XSAgIGdmbjogMDAwMDU3
+MjMgIG1mbjogMDAwMDU3MjMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjhdICAgZ2Zu
+OiAwMDAwNTcyNCAgbWZuOiAwMDAwNTcyNA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoy
+OF0gICBnZm46IDAwMDA1NzI1ICBtZm46IDAwMDA1NzI1DQoNCihYRU4pIFsyMDEyLTA4LTMx
+IDIxOjMzOjI4XSAgIGdmbjogMDAwMDU3MjYgIG1mbjogMDAwMDU3MjYNCg0KKFhFTikgWzIw
+MTItMDgtMzEgMjE6MzM6MjhdICAgZ2ZuOiAwMDAwNTcyNyAgbWZuOiAwMDAwNTcyNw0KDQoo
+WEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyOF0gICBnZm46IDAwMDA1NzI4ICBtZm46IDAwMDA1
+NzI4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI4XSAgIGdmbjogMDAwMDU3MjkgIG1m
+bjogMDAwMDU3MjkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjhdICAgZ2ZuOiAwMDAw
+NTcyYSAgbWZuOiAwMDAwNTcyYQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyOF0gICBn
+Zm46IDAwMDA1NzJiICBtZm46IDAwMDA1NzJiDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMz
+OjI4XSAgIGdmbjogMDAwMDU3MmMgIG1mbjogMDAwMDU3MmMNCg0KKFhFTikgWzIwMTItMDgt
+MzEgMjE6MzM6MjhdICAgZ2ZuOiAwMDAwNTcyZCAgbWZuOiAwMDAwNTcyZA0KDQooWEVOKSBb
+MjAxMi0wOC0zMSAyMTozMzoyOF0gICBnZm46IDAwMDA1NzJlICBtZm46IDAwMDA1NzJlDQoN
+CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI4XSAgIGdmbjogMDAwMDU3MmYgIG1mbjogMDAw
+MDU3MmYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjhdICAgZ2ZuOiAwMDAwNTczMCAg
+bWZuOiAwMDAwNTczMA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyOF0gICBnZm46IDAw
+MDA1NzMxICBtZm46IDAwMDA1NzMxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI4XSAg
+IGdmbjogMDAwMDU3MzIgIG1mbjogMDAwMDU3MzINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
+MzM6MjhdICAgZ2ZuOiAwMDAwNTczMyAgbWZuOiAwMDAwNTczMw0KDQooWEVOKSBbMjAxMi0w
+OC0zMSAyMTozMzoyOF0gICBnZm46IDAwMDA1NzM0ICBtZm46IDAwMDA1NzM0DQoNCihYRU4p
+IFsyMDEyLTA4LTMxIDIxOjMzOjI4XSAgIGdmbjogMDAwMDU3MzUgIG1mbjogMDAwMDU3MzUN
+Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjhdICAgZ2ZuOiAwMDAwNTczNiAgbWZuOiAw
+MDAwNTczNg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyOF0gICBnZm46IDAwMDA1NzM3
+ICBtZm46IDAwMDA1NzM3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI4XSAgIGdmbjog
+MDAwMDU3MzggIG1mbjogMDAwMDU3MzgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6Mjhd
+ICAgZ2ZuOiAwMDAwNTczOSAgbWZuOiAwMDAwNTczOQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
+MTozMzoyOF0gICBnZm46IDAwMDA1NzNhICBtZm46IDAwMDA1NzNhDQoNCihYRU4pIFsyMDEy
+LTA4LTMxIDIxOjMzOjI4XSAgIGdmbjogMDAwMDU3M2IgIG1mbjogMDAwMDU3M2INCg0KKFhF
+TikgWzIwMTItMDgtMzEgMjE6MzM6MjhdICAgZ2ZuOiAwMDAwNTczYyAgbWZuOiAwMDAwNTcz
+Yw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyOF0gICBnZm46IDAwMDA1NzNkICBtZm46
+IDAwMDA1NzNkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI4XSAgIGdmbjogMDAwMDU3
+M2UgIG1mbjogMDAwMDU3M2UNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjhdICAgZ2Zu
+OiAwMDAwNTczZiAgbWZuOiAwMDAwNTczZg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoy
+OF0gICBnZm46IDAwMDA1NzQwICBtZm46IDAwMDA1NzQwDQoNCihYRU4pIFsyMDEyLTA4LTMx
+IDIxOjMzOjI4XSAgIGdmbjogMDAwMDU3NDEgIG1mbjogMDAwMDU3NDENCg0KKFhFTikgWzIw
+MTItMDgtMzEgMjE6MzM6MjhdICAgZ2ZuOiAwMDAwNTc0MiAgbWZuOiAwMDAwNTc0Mg0KDQoo
+WEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyOF0gICBnZm46IDAwMDA1NzQzICBtZm46IDAwMDA1
+NzQzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI4XSAgIGdmbjogMDAwMDU3NDQgIG1m
+bjogMDAwMDU3NDQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjhdICAgZ2ZuOiAwMDAw
+NTc0NSAgbWZuOiAwMDAwNTc0NQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyOF0gICBn
+Zm46IDAwMDA1NzQ2ICBtZm46IDAwMDA1NzQ2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMz
+OjI4XSAgIGdmbjogMDAwMDU3NDcgIG1mbjogMDAwMDU3NDcNCg0KKFhFTikgWzIwMTItMDgt
+MzEgMjE6MzM6MjhdICAgZ2ZuOiAwMDAwNTc0OCAgbWZuOiAwMDAwNTc0OA0KDQooWEVOKSBb
+MjAxMi0wOC0zMSAyMTozMzoyOF0gICBnZm46IDAwMDA1NzQ5ICBtZm46IDAwMDA1NzQ5DQoN
+CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI4XSAgIGdmbjogMDAwMDU3NGEgIG1mbjogMDAw
+MDU3NGENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjhdICAgZ2ZuOiAwMDAwNTc0YiAg
+bWZuOiAwMDAwNTc0Yg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyOF0gICBnZm46IDAw
+MDA1NzRjICBtZm46IDAwMDA1NzRjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI4XSAg
+IGdmbjogMDAwMDU3NGQgIG1mbjogMDAwMDU3NGQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
+MzM6MjhdICAgZ2ZuOiAwMDAwNTc0ZSAgbWZuOiAwMDAwNTc0ZQ0KDQooWEVOKSBbMjAxMi0w
+OC0zMSAyMTozMzoyOF0gICBnZm46IDAwMDA1NzRmICBtZm46IDAwMDA1NzRmDQoNCihYRU4p
+IFsyMDEyLTA4LTMxIDIxOjMzOjI4XSAgIGdmbjogMDAwMDU3NTAgIG1mbjogMDAwMDU3NTAN
+Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjldICAgZ2ZuOiAwMDAwNTc1MSAgbWZuOiAw
+MDAwNTc1MQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyOV0gICBnZm46IDAwMDA1NzUy
+ICBtZm46IDAwMDA1NzUyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI5XSAgIGdmbjog
+MDAwMDU3NTMgIG1mbjogMDAwMDU3NTMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6Mjld
+ICAgZ2ZuOiAwMDAwNTc1NCAgbWZuOiAwMDAwNTc1NA0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
+MTozMzoyOV0gICBnZm46IDAwMDA1NzU1ICBtZm46IDAwMDA1NzU1DQoNCihYRU4pIFsyMDEy
+LTA4LTMxIDIxOjMzOjI5XSAgIGdmbjogMDAwMDU3NTYgIG1mbjogMDAwMDU3NTYNCg0KKFhF
+TikgWzIwMTItMDgtMzEgMjE6MzM6MjldICAgZ2ZuOiAwMDAwNTc1NyAgbWZuOiAwMDAwNTc1
+Nw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyOV0gICBnZm46IDAwMDA1NzU4ICBtZm46
+IDAwMDA1NzU4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI5XSAgIGdmbjogMDAwMDU3
+NTkgIG1mbjogMDAwMDU3NTkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjldICAgZ2Zu
+OiAwMDAwNTc1YSAgbWZuOiAwMDAwNTc1YQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoy
+OV0gICBnZm46IDAwMDA1NzViICBtZm46IDAwMDA1NzViDQoNCihYRU4pIFsyMDEyLTA4LTMx
+IDIxOjMzOjI5XSAgIGdmbjogMDAwMDU3NWMgIG1mbjogMDAwMDU3NWMNCg0KKFhFTikgWzIw
+MTItMDgtMzEgMjE6MzM6MjldICAgZ2ZuOiAwMDAwNTc1ZCAgbWZuOiAwMDAwNTc1ZA0KDQoo
+WEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyOV0gICBnZm46IDAwMDA1NzVlICBtZm46IDAwMDA1
+NzVlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI5XSAgIGdmbjogMDAwMDU3NWYgIG1m
+bjogMDAwMDU3NWYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjldICAgZ2ZuOiAwMDAw
+NTc2MCAgbWZuOiAwMDAwNTc2MA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyOV0gICBn
+Zm46IDAwMDA1NzYxICBtZm46IDAwMDA1NzYxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMz
+OjI5XSAgIGdmbjogMDAwMDU3NjIgIG1mbjogMDAwMDU3NjINCg0KKFhFTikgWzIwMTItMDgt
+MzEgMjE6MzM6MjldICAgZ2ZuOiAwMDAwNTc2MyAgbWZuOiAwMDAwNTc2Mw0KDQooWEVOKSBb
+MjAxMi0wOC0zMSAyMTozMzoyOV0gICBnZm46IDAwMDA1NzY0ICBtZm46IDAwMDA1NzY0DQoN
+CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI5XSAgIGdmbjogMDAwMDU3NjUgIG1mbjogMDAw
+MDU3NjUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjldICAgZ2ZuOiAwMDAwNTc2NiAg
+bWZuOiAwMDAwNTc2Ng0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyOV0gICBnZm46IDAw
+MDA1NzY3ICBtZm46IDAwMDA1NzY3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI5XSAg
+IGdmbjogMDAwMDU3NjggIG1mbjogMDAwMDU3NjgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
+MzM6MjldICAgZ2ZuOiAwMDAwNTc2OSAgbWZuOiAwMDAwNTc2OQ0KDQooWEVOKSBbMjAxMi0w
+OC0zMSAyMTozMzoyOV0gICBnZm46IDAwMDA1NzZhICBtZm46IDAwMDA1NzZhDQoNCihYRU4p
+IFsyMDEyLTA4LTMxIDIxOjMzOjI5XSAgIGdmbjogMDAwMDU3NmIgIG1mbjogMDAwMDU3NmIN
+Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjldICAgZ2ZuOiAwMDAwNTc2YyAgbWZuOiAw
+MDAwNTc2Yw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyOV0gICBnZm46IDAwMDA1NzZk
+ICBtZm46IDAwMDA1NzZkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI5XSAgIGdmbjog
+MDAwMDU3NmUgIG1mbjogMDAwMDU3NmUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6Mjld
+ICAgZ2ZuOiAwMDAwNTc2ZiAgbWZuOiAwMDAwNTc2Zg0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
+MTozMzoyOV0gICBnZm46IDAwMDA1NzcwICBtZm46IDAwMDA1NzcwDQoNCihYRU4pIFsyMDEy
+LTA4LTMxIDIxOjMzOjI5XSAgIGdmbjogMDAwMDU3NzEgIG1mbjogMDAwMDU3NzENCg0KKFhF
+TikgWzIwMTItMDgtMzEgMjE6MzM6MjldICAgZ2ZuOiAwMDAwNTc3MiAgbWZuOiAwMDAwNTc3
+Mg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyOV0gICBnZm46IDAwMDA1NzczICBtZm46
+IDAwMDA1NzczDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI5XSAgIGdmbjogMDAwMDU3
+NzQgIG1mbjogMDAwMDU3NzQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjldICAgZ2Zu
+OiAwMDAwNTc3NSAgbWZuOiAwMDAwNTc3NQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoy
+OV0gICBnZm46IDAwMDA1Nzc2ICBtZm46IDAwMDA1Nzc2DQoNCihYRU4pIFsyMDEyLTA4LTMx
+IDIxOjMzOjI5XSAgIGdmbjogMDAwMDU3NzcgIG1mbjogMDAwMDU3NzcNCg0KKFhFTikgWzIw
+MTItMDgtMzEgMjE6MzM6MjldICAgZ2ZuOiAwMDAwNTc3OCAgbWZuOiAwMDAwNTc3OA0KDQoo
+WEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyOV0gICBnZm46IDAwMDA1Nzc5ICBtZm46IDAwMDA1
+Nzc5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI5XSAgIGdmbjogMDAwMDU3N2EgIG1m
+bjogMDAwMDU3N2ENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjldICAgZ2ZuOiAwMDAw
+NTc3YiAgbWZuOiAwMDAwNTc3Yg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyOV0gICBn
+Zm46IDAwMDA1NzdjICBtZm46IDAwMDA1NzdjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMz
+OjI5XSAgIGdmbjogMDAwMDU3N2QgIG1mbjogMDAwMDU3N2QNCg0KKFhFTikgWzIwMTItMDgt
+MzEgMjE6MzM6MjldICAgZ2ZuOiAwMDAwNTc3ZSAgbWZuOiAwMDAwNTc3ZQ0KDQooWEVOKSBb
+MjAxMi0wOC0zMSAyMTozMzoyOV0gICBnZm46IDAwMDA1NzdmICBtZm46IDAwMDA1NzdmDQoN
+CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI5XSAgIGdmbjogMDAwMDU3ODAgIG1mbjogMDAw
+MDU3ODANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjldICAgZ2ZuOiAwMDAwNTc4MSAg
+bWZuOiAwMDAwNTc4MQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyOV0gICBnZm46IDAw
+MDA1NzgyICBtZm46IDAwMDA1NzgyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI5XSAg
+IGdmbjogMDAwMDU3ODMgIG1mbjogMDAwMDU3ODMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
+MzM6MjldICAgZ2ZuOiAwMDAwNTc4NCAgbWZuOiAwMDAwNTc4NA0KDQooWEVOKSBbMjAxMi0w
+OC0zMSAyMTozMzoyOV0gICBnZm46IDAwMDA1Nzg1ICBtZm46IDAwMDA1Nzg1DQoNCihYRU4p
+IFsyMDEyLTA4LTMxIDIxOjMzOjI5XSAgIGdmbjogMDAwMDU3ODYgIG1mbjogMDAwMDU3ODYN
+Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjldICAgZ2ZuOiAwMDAwNTc4NyAgbWZuOiAw
+MDAwNTc4Nw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyOV0gICBnZm46IDAwMDA1Nzg4
+ICBtZm46IDAwMDA1Nzg4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI5XSAgIGdmbjog
+MDAwMDU3ODkgIG1mbjogMDAwMDU3ODkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6Mjld
+ICAgZ2ZuOiAwMDAwNTc4YSAgbWZuOiAwMDAwNTc4YQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
+MTozMzoyOV0gICBnZm46IDAwMDA1NzhiICBtZm46IDAwMDA1NzhiDQoNCihYRU4pIFsyMDEy
+LTA4LTMxIDIxOjMzOjI5XSAgIGdmbjogMDAwMDU3OGMgIG1mbjogMDAwMDU3OGMNCg0KKFhF
+TikgWzIwMTItMDgtMzEgMjE6MzM6MjldICAgZ2ZuOiAwMDAwNTc4ZCAgbWZuOiAwMDAwNTc4
+ZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyOV0gICBnZm46IDAwMDA1NzhlICBtZm46
+IDAwMDA1NzhlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI5XSAgIGdmbjogMDAwMDU3
+OGYgIG1mbjogMDAwMDU3OGYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjldICAgZ2Zu
+OiAwMDAwNTc5MCAgbWZuOiAwMDAwNTc5MA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoz
+MF0gICBnZm46IDAwMDA1NzkxICBtZm46IDAwMDA1NzkxDQoNCihYRU4pIFsyMDEyLTA4LTMx
+IDIxOjMzOjMwXSAgIGdmbjogMDAwMDU3OTIgIG1mbjogMDAwMDU3OTINCg0KKFhFTikgWzIw
+MTItMDgtMzEgMjE6MzM6MzBdICAgZ2ZuOiAwMDAwNTc5MyAgbWZuOiAwMDAwNTc5Mw0KDQoo
+WEVOKSBbMjAxMi0wOC0zMSAyMTozMzozMF0gICBnZm46IDAwMDA1Nzk0ICBtZm46IDAwMDA1
+Nzk0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjMwXSAgIGdmbjogMDAwMDU3OTUgIG1m
+bjogMDAwMDU3OTUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzBdICAgZ2ZuOiAwMDAw
+NTc5NiAgbWZuOiAwMDAwNTc5Ng0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozMF0gICBn
+Zm46IDAwMDA1Nzk3ICBtZm46IDAwMDA1Nzk3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMz
+OjMwXSAgIGdmbjogMDAwMDU3OTggIG1mbjogMDAwMDU3OTgNCg0KKFhFTikgWzIwMTItMDgt
+MzEgMjE6MzM6MzBdICAgZ2ZuOiAwMDAwNTc5OSAgbWZuOiAwMDAwNTc5OQ0KDQooWEVOKSBb
+MjAxMi0wOC0zMSAyMTozMzozMF0gICBnZm46IDAwMDA1NzlhICBtZm46IDAwMDA1NzlhDQoN
+CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjMwXSAgIGdmbjogMDAwMDU3OWIgIG1mbjogMDAw
+MDU3OWINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzBdICAgZ2ZuOiAwMDAwNTc5YyAg
+bWZuOiAwMDAwNTc5Yw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozMF0gICBnZm46IDAw
+MDA1NzlkICBtZm46IDAwMDA1NzlkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjMwXSAg
+IGdmbjogMDAwMDU3OWUgIG1mbjogMDAwMDU3OWUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
+MzM6MzBdICAgZ2ZuOiAwMDAwNTc5ZiAgbWZuOiAwMDAwNTc5Zg0KDQooWEVOKSBbMjAxMi0w
+OC0zMSAyMTozMzozMF0gICBnZm46IDAwMDA1N2EwICBtZm46IDAwMDA1N2EwDQoNCihYRU4p
+IFsyMDEyLTA4LTMxIDIxOjMzOjMwXSAgIGdmbjogMDAwMDU3YTEgIG1mbjogMDAwMDU3YTEN
+Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzBdICAgZ2ZuOiAwMDAwNTdhMiAgbWZuOiAw
+MDAwNTdhMg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozMF0gICBnZm46IDAwMDA1N2Ez
+ICBtZm46IDAwMDA1N2EzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjMwXSAgIGdmbjog
+MDAwMDU3YTQgIG1mbjogMDAwMDU3YTQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzBd
+ICAgZ2ZuOiAwMDAwNTdhNSAgbWZuOiAwMDAwNTdhNQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
+MTozMzozMF0gICBnZm46IDAwMDA1N2E2ICBtZm46IDAwMDA1N2E2DQoNCihYRU4pIFsyMDEy
+LTA4LTMxIDIxOjMzOjMwXSAgIGdmbjogMDAwMDU3YTcgIG1mbjogMDAwMDU3YTcNCg0KKFhF
+TikgWzIwMTItMDgtMzEgMjE6MzM6MzBdICAgZ2ZuOiAwMDAwNTdhOCAgbWZuOiAwMDAwNTdh
+OA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozMF0gICBnZm46IDAwMDA1N2E5ICBtZm46
+IDAwMDA1N2E5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjMwXSAgIGdmbjogMDAwMDU3
+YWEgIG1mbjogMDAwMDU3YWENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzBdICAgZ2Zu
+OiAwMDAwNTdhYiAgbWZuOiAwMDAwNTdhYg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoz
+MF0gICBnZm46IDAwMDA1N2FjICBtZm46IDAwMDA1N2FjDQoNCihYRU4pIFsyMDEyLTA4LTMx
+IDIxOjMzOjMwXSAgIGdmbjogMDAwMDU3YWQgIG1mbjogMDAwMDU3YWQNCg0KKFhFTikgWzIw
+MTItMDgtMzEgMjE6MzM6MzBdICAgZ2ZuOiAwMDAwNTdhZSAgbWZuOiAwMDAwNTdhZQ0KDQoo
+WEVOKSBbMjAxMi0wOC0zMSAyMTozMzozMF0gICBnZm46IDAwMDA1N2FmICBtZm46IDAwMDA1
+N2FmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjMwXSAgIGdmbjogMDAwMDU3YjAgIG1m
+bjogMDAwMDU3YjANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzBdICAgZ2ZuOiAwMDAw
+NTdiMSAgbWZuOiAwMDAwNTdiMQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozMF0gICBn
+Zm46IDAwMDA1N2IyICBtZm46IDAwMDA1N2IyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMz
+OjMwXSAgIGdmbjogMDAwMDU3YjMgIG1mbjogMDAwMDU3YjMNCg0KKFhFTikgWzIwMTItMDgt
+MzEgMjE6MzM6MzBdICAgZ2ZuOiAwMDAwNTdiNCAgbWZuOiAwMDAwNTdiNA0KDQooWEVOKSBb
+MjAxMi0wOC0zMSAyMTozMzozMF0gICBnZm46IDAwMDA1N2I1ICBtZm46IDAwMDA1N2I1DQoN
+CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjMwXSAgIGdmbjogMDAwMDU3YjYgIG1mbjogMDAw
+MDU3YjYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzBdICAgZ2ZuOiAwMDAwNTdiNyAg
+bWZuOiAwMDAwNTdiNw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozMF0gICBnZm46IDAw
+MDA1N2I4ICBtZm46IDAwMDA1N2I4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjMwXSAg
+IGdmbjogMDAwMDU3YjkgIG1mbjogMDAwMDU3YjkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
+MzM6MzBdICAgZ2ZuOiAwMDAwNTdiYSAgbWZuOiAwMDAwNTdiYQ0KDQooWEVOKSBbMjAxMi0w
+OC0zMSAyMTozMzozMF0gICBnZm46IDAwMDA1N2JiICBtZm46IDAwMDA1N2JiDQoNCihYRU4p
+IFsyMDEyLTA4LTMxIDIxOjMzOjMwXSAgIGdmbjogMDAwMDU3YmMgIG1mbjogMDAwMDU3YmMN
+Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzBdICAgZ2ZuOiAwMDAwNTdiZCAgbWZuOiAw
+MDAwNTdiZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozMF0gICBnZm46IDAwMDA1N2Jl
+ICBtZm46IDAwMDA1N2JlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjMwXSAgIGdmbjog
+MDAwMDU3YmYgIG1mbjogMDAwMDU3YmYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzBd
+ICAgZ2ZuOiAwMDAwNTdjMCAgbWZuOiAwMDAwNTdjMA0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
+MTozMzozMF0gICBnZm46IDAwMDA1N2MxICBtZm46IDAwMDA1N2MxDQoNCihYRU4pIFsyMDEy
+LTA4LTMxIDIxOjMzOjMwXSAgIGdmbjogMDAwMDU3YzIgIG1mbjogMDAwMDU3YzINCg0KKFhF
+TikgWzIwMTItMDgtMzEgMjE6MzM6MzBdICAgZ2ZuOiAwMDAwNTdjMyAgbWZuOiAwMDAwNTdj
+Mw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozMF0gICBnZm46IDAwMDA1N2M0ICBtZm46
+IDAwMDA1N2M0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjMwXSAgIGdmbjogMDAwMDU3
+YzUgIG1mbjogMDAwMDU3YzUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzBdICAgZ2Zu
+OiAwMDAwNTdjNiAgbWZuOiAwMDAwNTdjNg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoz
+MF0gICBnZm46IDAwMDA1N2M3ICBtZm46IDAwMDA1N2M3DQoNCihYRU4pIFsyMDEyLTA4LTMx
+IDIxOjMzOjMwXSAgIGdmbjogMDAwMDU3YzggIG1mbjogMDAwMDU3YzgNCg0KKFhFTikgWzIw
+MTItMDgtMzEgMjE6MzM6MzBdICAgZ2ZuOiAwMDAwNTdjOSAgbWZuOiAwMDAwNTdjOQ0KDQoo
+WEVOKSBbMjAxMi0wOC0zMSAyMTozMzozMF0gICBnZm46IDAwMDA1N2NhICBtZm46IDAwMDA1
+N2NhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjMwXSAgIGdmbjogMDAwMDU3Y2IgIG1m
+bjogMDAwMDU3Y2INCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzBdICAgZ2ZuOiAwMDAw
+NTdjYyAgbWZuOiAwMDAwNTdjYw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozMF0gICBn
+Zm46IDAwMDA1N2NkICBtZm46IDAwMDA1N2NkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMz
+OjMwXSAgIGdmbjogMDAwMDU3Y2UgIG1mbjogMDAwMDU3Y2UNCg0KKFhFTikgWzIwMTItMDgt
+MzEgMjE6MzM6MzBdICAgZ2ZuOiAwMDAwNTdjZiAgbWZuOiAwMDAwNTdjZg0KDQooWEVOKSBb
+MjAxMi0wOC0zMSAyMTozMzozMF0gICBnZm46IDAwMDA1N2QwICBtZm46IDAwMDA1N2QwDQoN
+CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjMxXSAgIGdmbjogMDAwMDU3ZDEgIG1mbjogMDAw
+MDU3ZDENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzFdICAgZ2ZuOiAwMDAwNTdkMiAg
+bWZuOiAwMDAwNTdkMg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozMV0gICBnZm46IDAw
+MDA1N2QzICBtZm46IDAwMDA1N2QzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjMxXSAg
+IGdmbjogMDAwMDU3ZDQgIG1mbjogMDAwMDU3ZDQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
+MzM6MzFdICAgZ2ZuOiAwMDAwNTdkNSAgbWZuOiAwMDAwNTdkNQ0KDQooWEVOKSBbMjAxMi0w
+OC0zMSAyMTozMzozMV0gICBnZm46IDAwMDA1N2Q2ICBtZm46IDAwMDA1N2Q2DQoNCihYRU4p
+IFsyMDEyLTA4LTMxIDIxOjMzOjMxXSAgIGdmbjogMDAwMDU3ZDcgIG1mbjogMDAwMDU3ZDcN
+Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzFdICAgZ2ZuOiAwMDAwNTdkOCAgbWZuOiAw
+MDAwNTdkOA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozMV0gICBnZm46IDAwMDA1N2Q5
+ICBtZm46IDAwMDA1N2Q5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjMxXSAgIGdmbjog
+MDAwMDU3ZGEgIG1mbjogMDAwMDU3ZGENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzFd
+ICAgZ2ZuOiAwMDAwNTdkYiAgbWZuOiAwMDAwNTdkYg0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
+MTozMzozMV0gICBnZm46IDAwMDA1N2RjICBtZm46IDAwMDA1N2RjDQoNCihYRU4pIFsyMDEy
+LTA4LTMxIDIxOjMzOjMxXSAgIGdmbjogMDAwMDU3ZGQgIG1mbjogMDAwMDU3ZGQNCg0KKFhF
+TikgWzIwMTItMDgtMzEgMjE6MzM6MzFdICAgZ2ZuOiAwMDAwNTdkZSAgbWZuOiAwMDAwNTdk
+ZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozMV0gICBnZm46IDAwMDA1N2RmICBtZm46
+IDAwMDA1N2RmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjMxXSAgIGdmbjogMDAwMDU3
+ZTAgIG1mbjogMDAwMDU3ZTANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzFdICAgZ2Zu
+OiAwMDAwNTdlMSAgbWZuOiAwMDAwNTdlMQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoz
+MV0gICBnZm46IDAwMDA1N2UyICBtZm46IDAwMDA1N2UyDQoNCihYRU4pIFsyMDEyLTA4LTMx
+IDIxOjMzOjMxXSAgIGdmbjogMDAwMDU3ZTMgIG1mbjogMDAwMDU3ZTMNCg0KKFhFTikgWzIw
+MTItMDgtMzEgMjE6MzM6MzFdICAgZ2ZuOiAwMDAwNTdlNCAgbWZuOiAwMDAwNTdlNA0KDQoo
+WEVOKSBbMjAxMi0wOC0zMSAyMTozMzozMV0gICBnZm46IDAwMDA1N2U1ICBtZm46IDAwMDA1
+N2U1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjMxXSAgIGdmbjogMDAwMDU3ZTYgIG1m
+bjogMDAwMDU3ZTYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzFdICAgZ2ZuOiAwMDAw
+NTdlNyAgbWZuOiAwMDAwNTdlNw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozMV0gICBn
+Zm46IDAwMDA1N2U4ICBtZm46IDAwMDA1N2U4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMz
+OjMxXSAgIGdmbjogMDAwMDU3ZTkgIG1mbjogMDAwMDU3ZTkNCg0KKFhFTikgWzIwMTItMDgt
+MzEgMjE6MzM6MzFdICAgZ2ZuOiAwMDAwNTdlYSAgbWZuOiAwMDAwNTdlYQ0KDQooWEVOKSBb
+MjAxMi0wOC0zMSAyMTozMzozMV0gICBnZm46IDAwMDA1N2ViICBtZm46IDAwMDA1N2ViDQoN
+CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjMxXSAgIGdmbjogMDAwMDU3ZWMgIG1mbjogMDAw
+MDU3ZWMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzFdICAgZ2ZuOiAwMDAwNTdlZCAg
+bWZuOiAwMDAwNTdlZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozMV0gICBnZm46IDAw
+MDA1N2VlICBtZm46IDAwMDA1N2VlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjMxXSAg
+IGdmbjogMDAwMDU3ZWYgIG1mbjogMDAwMDU3ZWYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
+MzM6MzFdICAgZ2ZuOiAwMDAwNTdmMCAgbWZuOiAwMDAwNTdmMA0KDQooWEVOKSBbMjAxMi0w
+OC0zMSAyMTozMzozMV0gICBnZm46IDAwMDA1N2YxICBtZm46IDAwMDA1N2YxDQoNCihYRU4p
+IFsyMDEyLTA4LTMxIDIxOjMzOjMxXSAgIGdmbjogMDAwMDU3ZjIgIG1mbjogMDAwMDU3ZjIN
+Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzFdICAgZ2ZuOiAwMDAwNTdmMyAgbWZuOiAw
+MDAwNTdmMw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozMV0gICBnZm46IDAwMDA1N2Y0
+ICBtZm46IDAwMDA1N2Y0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjMxXSAgIGdmbjog
+MDAwMDU3ZjUgIG1mbjogMDAwMDU3ZjUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzFd
+ICAgZ2ZuOiAwMDAwNTdmNiAgbWZuOiAwMDAwNTdmNg0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
+MTozMzozMV0gICBnZm46IDAwMDA1N2Y3ICBtZm46IDAwMDA1N2Y3DQoNCihYRU4pIFsyMDEy
+LTA4LTMxIDIxOjMzOjMxXSAgIGdmbjogMDAwMDU3ZjggIG1mbjogMDAwMDU3ZjgNCg0KKFhF
+TikgWzIwMTItMDgtMzEgMjE6MzM6MzFdICAgZ2ZuOiAwMDAwNTdmOSAgbWZuOiAwMDAwNTdm
+OQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozMV0gICBnZm46IDAwMDA1N2ZhICBtZm46
+IDAwMDA1N2ZhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjMxXSAgIGdmbjogMDAwMDU3
+ZmIgIG1mbjogMDAwMDU3ZmINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzFdICAgZ2Zu
+OiAwMDAwNTdmYyAgbWZuOiAwMDAwNTdmYw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoz
+MV0gICBnZm46IDAwMDA1N2ZkICBtZm46IDAwMDA1N2ZkDQoNCihYRU4pIFsyMDEyLTA4LTMx
+IDIxOjMzOjMxXSAgIGdmbjogMDAwMDU3ZmUgIG1mbjogMDAwMDU3ZmUNCg0KKFhFTikgWzIw
+MTItMDgtMzEgMjE6MzM6MzFdICAgZ2ZuOiAwMDAwNTdmZiAgbWZuOiAwMDAwNTdmZg0KDQoo
+WEVOKSBbMjAxMi0wOC0zMSAyMTozMzozMV0gICBnZm46IDAwMDA1ODAwICBtZm46IDAwMDA1
+ODAwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjMxXSAgIGdmbjogMDAwMDU4MDEgIG1m
+bjogMDAwMDU4MDENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzFdICAgZ2ZuOiAwMDAw
+NTgwMiAgbWZuOiAwMDAwNTgwMg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozMV0gICBn
+Zm46IDAwMDA1ODAzICBtZm46IDAwMDA1ODAzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMz
+OjMxXSAgIGdmbjogMDAwMDU4MDQgIG1mbjogMDAwMDU4MDQNCg0KKFhFTikgWzIwMTItMDgt
+MzEgMjE6MzM6MzFdICAgZ2ZuOiAwMDAwNTgwNSAgbWZuOiAwMDAwNTgwNQ0KDQooWEVOKSBb
+MjAxMi0wOC0zMSAyMTozMzozMV0gICBnZm46IDAwMDA1ODA2ICBtZm46IDAwMDA1ODA2DQoN
+CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjMxXSAgIGdmbjogMDAwMDU4MDcgIG1mbjogMDAw
+MDU4MDcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzFdICAgZ2ZuOiAwMDAwNTgwOCAg
+bWZuOiAwMDAwNTgwOA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozMV0gICBnZm46IDAw
+MDA1ODA5ICBtZm46IDAwMDA1ODA5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjMxXSAg
+IGdmbjogMDAwMDU4MGEgIG1mbjogMDAwMDU4MGENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
+MzM6MzFdICAgZ2ZuOiAwMDAwNTgwYiAgbWZuOiAwMDAwNTgwYg0KDQooWEVOKSBbMjAxMi0w
+OC0zMSAyMTozMzozMV0gICBnZm46IDAwMDA1ODBjICBtZm46IDAwMDA1ODBjDQoNCihYRU4p
+IFsyMDEyLTA4LTMxIDIxOjMzOjMxXSAgIGdmbjogMDAwMDU4MGQgIG1mbjogMDAwMDU4MGQN
+Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzFdICAgZ2ZuOiAwMDAwNTgwZSAgbWZuOiAw
+MDAwNTgwZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozMV0gICBnZm46IDAwMDA1ODBm
+ICBtZm46IDAwMDA1ODBmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjMxXSAgIGdmbjog
+MDAwMDU4MTAgIG1mbjogMDAwMDU4MTANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzJd
+ICAgZ2ZuOiAwMDAwNTgxMSAgbWZuOiAwMDAwNTgxMQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
+MTozMzozMl0gICBnZm46IDAwMDA1ODEyICBtZm46IDAwMDA1ODEyDQoNCihYRU4pIFsyMDEy
+LTA4LTMxIDIxOjMzOjMyXSAgIGdmbjogMDAwMDU4MTMgIG1mbjogMDAwMDU4MTMNCg0KKFhF
+TikgWzIwMTItMDgtMzEgMjE6MzM6MzJdICAgZ2ZuOiAwMDAwNTgxNCAgbWZuOiAwMDAwNTgx
+NA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozMl0gICBnZm46IDAwMDA1ODE1ICBtZm46
+IDAwMDA1ODE1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjMyXSAgIGdmbjogMDAwMDU4
+MTYgIG1mbjogMDAwMDU4MTYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzJdICAgZ2Zu
+OiAwMDAwNTgxNyAgbWZuOiAwMDAwNTgxNw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoz
+Ml0gICBnZm46IDAwMDA1ODE4ICBtZm46IDAwMDA1ODE4DQoNCihYRU4pIFsyMDEyLTA4LTMx
+IDIxOjMzOjMyXSAgIGdmbjogMDAwMDU4MTkgIG1mbjogMDAwMDU4MTkNCg0KKFhFTikgWzIw
+MTItMDgtMzEgMjE6MzM6MzJdICAgZ2ZuOiAwMDAwNTgxYSAgbWZuOiAwMDAwNTgxYQ0KDQoo
+WEVOKSBbMjAxMi0wOC0zMSAyMTozMzozMl0gICBnZm46IDAwMDA1ODFiICBtZm46IDAwMDA1
+ODFiDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjMyXSAgIGdmbjogMDAwMDU4MWMgIG1m
+bjogMDAwMDU4MWMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzJdICAgZ2ZuOiAwMDAw
+NTgxZCAgbWZuOiAwMDAwNTgxZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozMl0gICBn
+Zm46IDAwMDA1ODFlICBtZm46IDAwMDA1ODFlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMz
+OjMyXSAgIGdmbjogMDAwMDU4MWYgIG1mbjogMDAwMDU4MWYNCg0KKFhFTikgWzIwMTItMDgt
+MzEgMjE6MzM6MzJdICAgZ2ZuOiAwMDAwNTgyMCAgbWZuOiAwMDAwNTgyMA0KDQooWEVOKSBb
+MjAxMi0wOC0zMSAyMTozMzozMl0gICBnZm46IDAwMDA1ODIxICBtZm46IDAwMDA1ODIxDQoN
+CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjMyXSAgIGdmbjogMDAwMDU4MjIgIG1mbjogMDAw
+MDU4MjINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzJdICAgZ2ZuOiAwMDAwNTgyMyAg
+bWZuOiAwMDAwNTgyMw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozMl0gICBnZm46IDAw
+MDA1ODI0ICBtZm46IDAwMDA1ODI0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjMyXSAg
+IGdmbjogMDAwMDU4MjUgIG1mbjogMDAwMDU4MjUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
+MzM6MzJdICAgZ2ZuOiAwMDAwNTgyNiAgbWZuOiAwMDAwNTgyNg0KDQooWEVOKSBbMjAxMi0w
+OC0zMSAyMTozMzozMl0gICBnZm46IDAwMDA1ODI3ICBtZm46IDAwMDA1ODI3DQoNCihYRU4p
+IFsyMDEyLTA4LTMxIDIxOjMzOjMyXSAgIGdmbjogMDAwMDU4MjggIG1mbjogMDAwMDU4MjgN
+Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzJdICAgZ2ZuOiAwMDAwNTgyOSAgbWZuOiAw
+MDAwNTgyOQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozMl0gICBnZm46IDAwMDA1ODJh
+ICBtZm46IDAwMDA1ODJhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjMyXSAgIGdmbjog
+MDAwMDU4MmIgIG1mbjogMDAwMDU4MmINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzJd
+ICAgZ2ZuOiAwMDAwNTgyYyAgbWZuOiAwMDAwNTgyYw0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
+MTozMzozMl0gICBnZm46IDAwMDA1ODJkICBtZm46IDAwMDA1ODJkDQoNCihYRU4pIFsyMDEy
+LTA4LTMxIDIxOjMzOjMyXSAgIGdmbjogMDAwMDU4MmUgIG1mbjogMDAwMDU4MmUNCg0KKFhF
+TikgWzIwMTItMDgtMzEgMjE6MzM6MzJdICAgZ2ZuOiAwMDAwNTgyZiAgbWZuOiAwMDAwNTgy
+Zg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozMl0gICBnZm46IDAwMDA1ODMwICBtZm46
+IDAwMDA1ODMwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjMyXSAgIGdmbjogMDAwMDU4
+MzEgIG1mbjogMDAwMDU4MzENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzJdICAgZ2Zu
+OiAwMDAwNTgzMiAgbWZuOiAwMDAwNTgzMg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoz
+Ml0gICBnZm46IDAwMDA1ODMzICBtZm46IDAwMDA1ODMzDQoNCihYRU4pIFsyMDEyLTA4LTMx
+IDIxOjMzOjMyXSAgIGdmbjogMDAwMDU4MzQgIG1mbjogMDAwMDU4MzQNCg0KKFhFTikgWzIw
+MTItMDgtMzEgMjE6MzM6MzJdICAgZ2ZuOiAwMDAwNTgzNSAgbWZuOiAwMDAwNTgzNQ0KDQoo
+WEVOKSBbMjAxMi0wOC0zMSAyMTozMzozMl0gICBnZm46IDAwMDA1ODM2ICBtZm46IDAwMDA1
+ODM2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjMyXSAgIGdmbjogMDAwMDU4MzcgIG1m
+bjogMDAwMDU4MzcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzJdICAgZ2ZuOiAwMDAw
+NTgzOCAgbWZuOiAwMDAwNTgzOA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozMl0gICBn
+Zm46IDAwMDA1ODM5ICBtZm46IDAwMDA1ODM5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMz
+OjMyXSAgIGdmbjogMDAwMDU4M2EgIG1mbjogMDAwMDU4M2ENCg0KKFhFTikgWzIwMTItMDgt
+MzEgMjE6MzM6MzJdICAgZ2ZuOiAwMDAwNTgzYiAgbWZuOiAwMDAwNTgzYg0KDQooWEVOKSBb
+MjAxMi0wOC0zMSAyMTozMzozMl0gICBnZm46IDAwMDA1ODNjICBtZm46IDAwMDA1ODNjDQoN
+CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjMyXSAgIGdmbjogMDAwMDU4M2QgIG1mbjogMDAw
+MDU4M2QNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzJdICAgZ2ZuOiAwMDAwNTgzZSAg
+bWZuOiAwMDAwNTgzZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozMl0gICBnZm46IDAw
+MDA1ODNmICBtZm46IDAwMDA1ODNmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjMyXSAg
+IGdmbjogMDAwMDU4NDAgIG1mbjogMDAwMDU4NDANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
+MzM6MzJdICAgZ2ZuOiAwMDAwNTg0MSAgbWZuOiAwMDAwNTg0MQ0KDQooWEVOKSBbMjAxMi0w
+OC0zMSAyMTozMzozMl0gICBnZm46IDAwMDA1ODQyICBtZm46IDAwMDA1ODQyDQoNCihYRU4p
+IFsyMDEyLTA4LTMxIDIxOjMzOjMyXSAgIGdmbjogMDAwMDU4NDMgIG1mbjogMDAwMDU4NDMN
+Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzJdICAgZ2ZuOiAwMDAwNTg0NCAgbWZuOiAw
+MDAwNTg0NA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozMl0gICBnZm46IDAwMDA1ODQ1
+ICBtZm46IDAwMDA1ODQ1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjMyXSAgIGdmbjog
+MDAwMDU4NDYgIG1mbjogMDAwMDU4NDYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzJd
+ICAgZ2ZuOiAwMDAwNTg0NyAgbWZuOiAwMDAwNTg0Nw0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
+MTozMzozMl0gICBnZm46IDAwMDA1ODQ4ICBtZm46IDAwMDA1ODQ4DQoNCihYRU4pIFsyMDEy
+LTA4LTMxIDIxOjMzOjMyXSAgIGdmbjogMDAwMDU4NDkgIG1mbjogMDAwMDU4NDkNCg0KKFhF
+TikgWzIwMTItMDgtMzEgMjE6MzM6MzJdICAgZ2ZuOiAwMDAwNTg0YSAgbWZuOiAwMDAwNTg0
+YQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozMl0gICBnZm46IDAwMDA1ODRiICBtZm46
+IDAwMDA1ODRiDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjMyXSAgIGdmbjogMDAwMDU4
+NGMgIG1mbjogMDAwMDU4NGMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzJdICAgZ2Zu
+OiAwMDAwNTg0ZCAgbWZuOiAwMDAwNTg0ZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoz
+Ml0gICBnZm46IDAwMDA1ODRlICBtZm46IDAwMDA1ODRlDQoNCihYRU4pIFsyMDEyLTA4LTMx
+IDIxOjMzOjMyXSAgIGdmbjogMDAwMDU4NGYgIG1mbjogMDAwMDU4NGYNCg0KKFhFTikgWzIw
+MTItMDgtMzEgMjE6MzM6MzJdICAgZ2ZuOiAwMDAwNTg1MCAgbWZuOiAwMDAwNTg1MA0KDQoo
+WEVOKSBbMjAxMi0wOC0zMSAyMTozMzozM10gICBnZm46IDAwMDA1ODUxICBtZm46IDAwMDA1
+ODUxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjMzXSAgIGdmbjogMDAwMDU4NTIgIG1m
+bjogMDAwMDU4NTINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzNdICAgZ2ZuOiAwMDAw
+NTg1MyAgbWZuOiAwMDAwNTg1Mw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozM10gICBn
+Zm46IDAwMDA1ODU0ICBtZm46IDAwMDA1ODU0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMz
+OjMzXSAgIGdmbjogMDAwMDU4NTUgIG1mbjogMDAwMDU4NTUNCg0KKFhFTikgWzIwMTItMDgt
+MzEgMjE6MzM6MzNdICAgZ2ZuOiAwMDAwNTg1NiAgbWZuOiAwMDAwNTg1Ng0KDQooWEVOKSBb
+MjAxMi0wOC0zMSAyMTozMzozM10gICBnZm46IDAwMDA1ODU3ICBtZm46IDAwMDA1ODU3DQoN
+CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjMzXSAgIGdmbjogMDAwMDU4NTggIG1mbjogMDAw
+MDU4NTgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzNdICAgZ2ZuOiAwMDAwNTg1OSAg
+bWZuOiAwMDAwNTg1OQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozM10gICBnZm46IDAw
+MDA1ODVhICBtZm46IDAwMDA1ODVhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjMzXSAg
+IGdmbjogMDAwMDU4NWIgIG1mbjogMDAwMDU4NWINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
+MzM6MzNdICAgZ2ZuOiAwMDAwNTg1YyAgbWZuOiAwMDAwNTg1Yw0KDQooWEVOKSBbMjAxMi0w
+OC0zMSAyMTozMzozM10gICBnZm46IDAwMDA1ODVkICBtZm46IDAwMDA1ODVkDQoNCihYRU4p
+IFsyMDEyLTA4LTMxIDIxOjMzOjMzXSAgIGdmbjogMDAwMDU4NWUgIG1mbjogMDAwMDU4NWUN
+Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzNdICAgZ2ZuOiAwMDAwNTg1ZiAgbWZuOiAw
+MDAwNTg1Zg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozM10gICBnZm46IDAwMDA1ODYw
+ICBtZm46IDAwMDA1ODYwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjMzXSAgIGdmbjog
+MDAwMDU4NjEgIG1mbjogMDAwMDU4NjENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzNd
+ICAgZ2ZuOiAwMDAwNTg2MiAgbWZuOiAwMDAwNTg2Mg0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
+MTozMzozM10gICBnZm46IDAwMDA1ODYzICBtZm46IDAwMDA1ODYzDQoNCihYRU4pIFsyMDEy
+LTA4LTMxIDIxOjMzOjMzXSAgIGdmbjogMDAwMDU4NjQgIG1mbjogMDAwMDU4NjQNCg0KKFhF
+TikgWzIwMTItMDgtMzEgMjE6MzM6MzNdICAgZ2ZuOiAwMDAwNTg2NSAgbWZuOiAwMDAwNTg2
+NQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozM10gICBnZm46IDAwMDA1ODY2ICBtZm46
+IDAwMDA1ODY2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjMzXSAgIGdmbjogMDAwMDU4
+NjcgIG1mbjogMDAwMDU4NjcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzNdICAgZ2Zu
+OiAwMDAwNTg2OCAgbWZuOiAwMDAwNTg2OA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoz
+M10gICBnZm46IDAwMDA1ODY5ICBtZm46IDAwMDA1ODY5DQoNCihYRU4pIFsyMDEyLTA4LTMx
+IDIxOjMzOjMzXSAgIGdmbjogMDAwMDU4NmEgIG1mbjogMDAwMDU4NmENCg0KKFhFTikgWzIw
+MTItMDgtMzEgMjE6MzM6MzNdICAgZ2ZuOiAwMDAwNTg2YiAgbWZuOiAwMDAwNTg2Yg0KDQoo
+WEVOKSBbMjAxMi0wOC0zMSAyMTozMzozM10gICBnZm46IDAwMDA1ODZjICBtZm46IDAwMDA1
+ODZjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjMzXSAgIGdmbjogMDAwMDU4NmQgIG1m
+bjogMDAwMDU4NmQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzNdICAgZ2ZuOiAwMDAw
+NTg2ZSAgbWZuOiAwMDAwNTg2ZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozM10gICBn
+Zm46IDAwMDA1ODZmICBtZm46IDAwMDA1ODZmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMz
+OjMzXSAgIGdmbjogMDAwMDU4NzAgIG1mbjogMDAwMDU4NzANCg0KKFhFTikgWzIwMTItMDgt
+MzEgMjE6MzM6MzNdICAgZ2ZuOiAwMDAwNTg3MSAgbWZuOiAwMDAwNTg3MQ0KDQooWEVOKSBb
+MjAxMi0wOC0zMSAyMTozMzozM10gICBnZm46IDAwMDA1ODcyICBtZm46IDAwMDA1ODcyDQoN
+CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjMzXSAgIGdmbjogMDAwMDU4NzMgIG1mbjogMDAw
+MDU4NzMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzNdICAgZ2ZuOiAwMDAwNTg3NCAg
+bWZuOiAwMDAwNTg3NA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozM10gICBnZm46IDAw
+MDA1ODc1ICBtZm46IDAwMDA1ODc1DQoNClsgIDQ3OS41NTkzNDddIGEoWEVOKSBbMjAxMi0w
+OC0zMSAyMTozMzozM10gICBnZm46IDAwMDA1ODc2ICBtZm46IDAwMDA1ODc2DQoNCnRhMy4w
+MDogZXhjZXB0aW8oWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozM10gICBnZm46IDAwMDA1ODc3
+ICBtZm46IDAwMDA1ODc3DQoNCm4gRW1hc2sgMHgwIFNBY3QgMHgwIFNFcnIgMHgwIGFjKFhF
+TikgWzIwMTItMDgtMzEgMjE6MzM6MzNdICAgZ2ZuOiAwMDAwNTg3OCAgbWZuOiAwMDAwNTg3
+OA0KDQp0aW9uIDB4NiBmcm96ZW4NCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjMzXSAgIGdm
+bjogMDAwMDU4NzkgIG1mbjogMDAwMDU4NzkNCg0KDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMzOjMzXSAgIGdmbjogMDAwMDU4N2EgIG1mbjogMDAwMDU4N2ENCg0KWyAgNDc5LjY2Mzcz
+OF0gYShYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjMzXSAgIGdmbjogMDAwMDU4N2IgIG1mbjog
+MDAwMDU4N2INCg0KdGEzLjAwOiBmYWlsZWQgYyhYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjMz
+XSAgIGdmbjogMDAwMDU4N2MgIG1mbjogMDAwMDU4N2MNCg0Kb21tYW5kOiBDSEVDSyBQTyhY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMzOjMzXSAgIGdmbjogMDAwMDU4N2QgIG1mbjogMDAwMDU4
+N2QNCg0KV0VSIE1PREUNCg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozM10gICBnZm46
+IDAwMDA1ODdlICBtZm46IDAwMDA1ODdlDQoNClsgIDQ3OS43Mzc1NjNdIGEoWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMzozM10gICBnZm46IDAwMDA1ODdmICBtZm46IDAwMDA1ODdmDQoNCnRh
+My4wMDogY21kIGU1LzAoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozM10gICBnZm46IDAwMDA1
+ODgwICBtZm46IDAwMDA1ODgwDQoNCjA6MDA6MDA6MDA6MDAvMDAoWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMzozM10gICBnZm46IDAwMDA1ODgxICBtZm46IDAwMDA1ODgxDQoNCjowMDowMDow
+MDowMC80MCB0YWcgMA0KDQoNClsgIDQ3OS43MyhYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjMz
+XSAgIGdmbjogMDAwMDU4ODIgIG1mbjogMDAwMDU4ODINCg0KNzU2M10gICAgICAgICAgcihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMzOjMzXSAgIGdmbjogMDAwMDU4ODMgIG1mbjogMDAwMDU4
+ODMNCg0KZXMgNDAvMDA6ZmY6MDA6MDA6MDAvMDA6MDA6MDA6MDAoWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMzozM10gICBnZm46IDAwMDA1ODg0ICBtZm46IDAwMDA1ODg0DQoNCjowMC80MCBF
+bWFzayAweDQoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozM10gICBnZm46IDAwMDA1ODg1ICBt
+Zm46IDAwMDA1ODg1DQoNCiAodGltZW91dCkNCg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+MzozM10gICBnZm46IDAwMDA1ODg2ICBtZm46IDAwMDA1ODg2DQoNClsgIDQ3OS45MDUzMzZd
+IGEoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozM10gICBnZm46IDAwMDA1ODg3ICBtZm46IDAw
+MDA1ODg3DQoNCnRhMy4wMDogc3RhdHVzOiAoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozM10g
+ICBnZm46IDAwMDA1ODg4ICBtZm46IDAwMDA1ODg4DQoNCnsgRFJEWSB9DQoNCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzM6MzNdICAgZ2ZuOiAwMDAwNTg4OSAgbWZuOiAwMDAwNTg4OQ0K
+DQpbICA0NzkuOTYyMTUzXSBhKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzNdICAgZ2ZuOiAw
+MDAwNTg4YSAgbWZuOiAwMDAwNTg4YQ0KDQp0YTM6IGhhcmQgcmVzZXR0KFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzM6MzRdICAgZ2ZuOiAwMDAwNTg4YiAgbWZuOiAwMDAwNTg4Yg0KDQppbmcg
+bGluaw0KDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM0XSAgIGdmbjogMDAwMDU4OGMg
+IG1mbjogMDAwMDU4OGMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzRdICAgZ2ZuOiAw
+MDAwNTg4ZCAgbWZuOiAwMDAwNTg4ZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozNF0g
+ICBnZm46IDAwMDA1ODhlICBtZm46IDAwMDA1ODhlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMzOjM0XSAgIGdmbjogMDAwMDU4OGYgIG1mbjogMDAwMDU4OGYNCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzM6MzRdICAgZ2ZuOiAwMDAwNTg5MCAgbWZuOiAwMDAwNTg5MA0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMzozNF0gICBnZm46IDAwMDA1ODkxICBtZm46IDAwMDA1ODkx
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM0XSAgIGdmbjogMDAwMDU4OTIgIG1mbjog
+MDAwMDU4OTINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzRdICAgZ2ZuOiAwMDAwNTg5
+MyAgbWZuOiAwMDAwNTg5Mw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozNF0gICBnZm46
+IDAwMDA1ODk0ICBtZm46IDAwMDA1ODk0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM0
+XSAgIGdmbjogMDAwMDU4OTUgIG1mbjogMDAwMDU4OTUNCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzM6MzRdICAgZ2ZuOiAwMDAwNTg5NiAgbWZuOiAwMDAwNTg5Ng0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMzozNF0gICBnZm46IDAwMDA1ODk3ICBtZm46IDAwMDA1ODk3DQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM0XSAgIGdmbjogMDAwMDU4OTggIG1mbjogMDAwMDU4
+OTgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzRdICAgZ2ZuOiAwMDAwNTg5OSAgbWZu
+OiAwMDAwNTg5OQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozNF0gICBnZm46IDAwMDA1
+ODlhICBtZm46IDAwMDA1ODlhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM0XSAgIGdm
+bjogMDAwMDU4OWIgIG1mbjogMDAwMDU4OWINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6
+MzRdICAgZ2ZuOiAwMDAwNTg5YyAgbWZuOiAwMDAwNTg5Yw0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMzozNF0gICBnZm46IDAwMDA1ODlkICBtZm46IDAwMDA1ODlkDQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMzOjM0XSAgIGdmbjogMDAwMDU4OWUgIG1mbjogMDAwMDU4OWUNCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzRdICAgZ2ZuOiAwMDAwNTg5ZiAgbWZuOiAwMDAw
+NTg5Zg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozNF0gICBnZm46IDAwMDA1OGEwICBt
+Zm46IDAwMDA1OGEwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM0XSAgIGdmbjogMDAw
+MDU4YTEgIG1mbjogMDAwMDU4YTENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzRdICAg
+Z2ZuOiAwMDAwNThhMiAgbWZuOiAwMDAwNThhMg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+MzozNF0gICBnZm46IDAwMDA1OGEzICBtZm46IDAwMDA1OGEzDQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMzOjM0XSAgIGdmbjogMDAwMDU4YTQgIG1mbjogMDAwMDU4YTQNCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzM6MzRdICAgZ2ZuOiAwMDAwNThhNSAgbWZuOiAwMDAwNThhNQ0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozNF0gICBnZm46IDAwMDA1OGE2ICBtZm46IDAw
+MDA1OGE2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM0XSAgIGdmbjogMDAwMDU4YTcg
+IG1mbjogMDAwMDU4YTcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzRdICAgZ2ZuOiAw
+MDAwNThhOCAgbWZuOiAwMDAwNThhOA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozNF0g
+ICBnZm46IDAwMDA1OGE5ICBtZm46IDAwMDA1OGE5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMzOjM0XSAgIGdmbjogMDAwMDU4YWEgIG1mbjogMDAwMDU4YWENCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzM6MzRdICAgZ2ZuOiAwMDAwNThhYiAgbWZuOiAwMDAwNThhYg0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMzozNF0gICBnZm46IDAwMDA1OGFjICBtZm46IDAwMDA1OGFj
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM0XSAgIGdmbjogMDAwMDU4YWQgIG1mbjog
+MDAwMDU4YWQNCg0KWyAgNDgwLjUzNjIzOF0gYShYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM0
+XSAgIGdmbjogMDAwMDU4YWUgIG1mbjogMDAwMDU4YWUNCg0KdGEzOiBTQVRBIGxpbmsgdShY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM0XSAgIGdmbjogMDAwMDU4YWYgIG1mbjogMDAwMDU4
+YWYNCg0KcCA2LjAgR2JwcyAoU1N0YXR1cyAxMzMgU0NvbnRyb2woWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMzozNF0gICBnZm46IDAwMDA1OGIwICBtZm46IDAwMDA1OGIwDQoNCiAzMDApDQoN
+Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzRdICAgZ2ZuOiAwMDAwNThiMSAgbWZuOiAw
+MDAwNThiMQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozNF0gICBnZm46IDAwMDA1OGIy
+ICBtZm46IDAwMDA1OGIyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM0XSAgIGdmbjog
+MDAwMDU4YjMgIG1mbjogMDAwMDU4YjMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzRd
+ICAgZ2ZuOiAwMDAwNThiNCAgbWZuOiAwMDAwNThiNA0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
+MTozMzozNF0gICBnZm46IDAwMDA1OGI1ICBtZm46IDAwMDA1OGI1DQoNCihYRU4pIFsyMDEy
+LTA4LTMxIDIxOjMzOjM0XSAgIGdmbjogMDAwMDU4YjYgIG1mbjogMDAwMDU4YjYNCg0KKFhF
+TikgWzIwMTItMDgtMzEgMjE6MzM6MzRdICAgZ2ZuOiAwMDAwNThiNyAgbWZuOiAwMDAwNThi
+Nw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozNF0gICBnZm46IDAwMDA1OGI4ICBtZm46
+IDAwMDA1OGI4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM0XSAgIGdmbjogMDAwMDU4
+YjkgIG1mbjogMDAwMDU4YjkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzRdICAgZ2Zu
+OiAwMDAwNThiYSAgbWZuOiAwMDAwNThiYQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoz
+NF0gICBnZm46IDAwMDA1OGJiICBtZm46IDAwMDA1OGJiDQoNCihYRU4pIFsyMDEyLTA4LTMx
+IDIxOjMzOjM0XSAgIGdmbjogMDAwMDU4YmMgIG1mbjogMDAwMDU4YmMNCg0KKFhFTikgWzIw
+MTItMDgtMzEgMjE6MzM6MzRdICAgZ2ZuOiAwMDAwNThiZCAgbWZuOiAwMDAwNThiZA0KDQoo
+WEVOKSBbMjAxMi0wOC0zMSAyMTozMzozNF0gICBnZm46IDAwMDA1OGJlICBtZm46IDAwMDA1
+OGJlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM0XSAgIGdmbjogMDAwMDU4YmYgIG1m
+bjogMDAwMDU4YmYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzRdICAgZ2ZuOiAwMDAw
+NThjMCAgbWZuOiAwMDAwNThjMA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozNF0gICBn
+Zm46IDAwMDA1OGMxICBtZm46IDAwMDA1OGMxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMz
+OjM0XSAgIGdmbjogMDAwMDU4YzIgIG1mbjogMDAwMDU4YzINCg0KKFhFTikgWzIwMTItMDgt
+MzEgMjE6MzM6MzRdICAgZ2ZuOiAwMDAwNThjMyAgbWZuOiAwMDAwNThjMw0KDQooWEVOKSBb
+MjAxMi0wOC0zMSAyMTozMzozNF0gICBnZm46IDAwMDA1OGM0ICBtZm46IDAwMDA1OGM0DQoN
+CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM0XSAgIGdmbjogMDAwMDU4YzUgIG1mbjogMDAw
+MDU4YzUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzRdICAgZ2ZuOiAwMDAwNThjNiAg
+bWZuOiAwMDAwNThjNg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozNF0gICBnZm46IDAw
+MDA1OGM3ICBtZm46IDAwMDA1OGM3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM0XSAg
+IGdmbjogMDAwMDU4YzggIG1mbjogMDAwMDU4YzgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
+MzM6MzRdICAgZ2ZuOiAwMDAwNThjOSAgbWZuOiAwMDAwNThjOQ0KDQooWEVOKSBbMjAxMi0w
+OC0zMSAyMTozMzozNV0gICBnZm46IDAwMDA1OGNhICBtZm46IDAwMDA1OGNhDQoNCihYRU4p
+IFsyMDEyLTA4LTMxIDIxOjMzOjM1XSAgIGdmbjogMDAwMDU4Y2IgIG1mbjogMDAwMDU4Y2IN
+Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzVdICAgZ2ZuOiAwMDAwNThjYyAgbWZuOiAw
+MDAwNThjYw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozNV0gICBnZm46IDAwMDA1OGNk
+ICBtZm46IDAwMDA1OGNkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM1XSAgIGdmbjog
+MDAwMDU4Y2UgIG1mbjogMDAwMDU4Y2UNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzVd
+ICAgZ2ZuOiAwMDAwNThjZiAgbWZuOiAwMDAwNThjZg0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
+MTozMzozNV0gICBnZm46IDAwMDA1OGQwICBtZm46IDAwMDA1OGQwDQoNCihYRU4pIFsyMDEy
+LTA4LTMxIDIxOjMzOjM1XSAgIGdmbjogMDAwMDU4ZDEgIG1mbjogMDAwMDU4ZDENCg0KKFhF
+TikgWzIwMTItMDgtMzEgMjE6MzM6MzVdICAgZ2ZuOiAwMDAwNThkMiAgbWZuOiAwMDAwNThk
+Mg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozNV0gICBnZm46IDAwMDA1OGQzICBtZm46
+IDAwMDA1OGQzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM1XSAgIGdmbjogMDAwMDU4
+ZDQgIG1mbjogMDAwMDU4ZDQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzVdICAgZ2Zu
+OiAwMDAwNThkNSAgbWZuOiAwMDAwNThkNQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoz
+NV0gICBnZm46IDAwMDA1OGQ2ICBtZm46IDAwMDA1OGQ2DQoNCihYRU4pIFsyMDEyLTA4LTMx
+IDIxOjMzOjM1XSAgIGdmbjogMDAwMDU4ZDcgIG1mbjogMDAwMDU4ZDcNCg0KKFhFTikgWzIw
+MTItMDgtMzEgMjE6MzM6MzVdICAgZ2ZuOiAwMDAwNThkOCAgbWZuOiAwMDAwNThkOA0KDQoo
+WEVOKSBbMjAxMi0wOC0zMSAyMTozMzozNV0gICBnZm46IDAwMDA1OGQ5ICBtZm46IDAwMDA1
+OGQ5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM1XSAgIGdmbjogMDAwMDU4ZGEgIG1m
+bjogMDAwMDU4ZGENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzVdICAgZ2ZuOiAwMDAw
+NThkYiAgbWZuOiAwMDAwNThkYg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozNV0gICBn
+Zm46IDAwMDA1OGRjICBtZm46IDAwMDA1OGRjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMz
+OjM1XSAgIGdmbjogMDAwMDU4ZGQgIG1mbjogMDAwMDU4ZGQNCg0KKFhFTikgWzIwMTItMDgt
+MzEgMjE6MzM6MzVdICAgZ2ZuOiAwMDAwNThkZSAgbWZuOiAwMDAwNThkZQ0KDQooWEVOKSBb
+MjAxMi0wOC0zMSAyMTozMzozNV0gICBnZm46IDAwMDA1OGRmICBtZm46IDAwMDA1OGRmDQoN
+CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM1XSAgIGdmbjogMDAwMDU4ZTAgIG1mbjogMDAw
+MDU4ZTANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzVdICAgZ2ZuOiAwMDAwNThlMSAg
+bWZuOiAwMDAwNThlMQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozNV0gICBnZm46IDAw
+MDA1OGUyICBtZm46IDAwMDA1OGUyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM1XSAg
+IGdmbjogMDAwMDU4ZTMgIG1mbjogMDAwMDU4ZTMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
+MzM6MzVdICAgZ2ZuOiAwMDAwNThlNCAgbWZuOiAwMDAwNThlNA0KDQooWEVOKSBbMjAxMi0w
+OC0zMSAyMTozMzozNV0gICBnZm46IDAwMDA1OGU1ICBtZm46IDAwMDA1OGU1DQoNCihYRU4p
+IFsyMDEyLTA4LTMxIDIxOjMzOjM1XSAgIGdmbjogMDAwMDU4ZTYgIG1mbjogMDAwMDU4ZTYN
+Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzVdICAgZ2ZuOiAwMDAwNThlNyAgbWZuOiAw
+MDAwNThlNw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozNV0gICBnZm46IDAwMDA1OGU4
+ICBtZm46IDAwMDA1OGU4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM1XSAgIGdmbjog
+MDAwMDU4ZTkgIG1mbjogMDAwMDU4ZTkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzVd
+ICAgZ2ZuOiAwMDAwNThlYSAgbWZuOiAwMDAwNThlYQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
+MTozMzozNV0gICBnZm46IDAwMDA1OGViICBtZm46IDAwMDA1OGViDQoNCihYRU4pIFsyMDEy
+LTA4LTMxIDIxOjMzOjM1XSAgIGdmbjogMDAwMDU4ZWMgIG1mbjogMDAwMDU4ZWMNCg0KKFhF
+TikgWzIwMTItMDgtMzEgMjE6MzM6MzVdICAgZ2ZuOiAwMDAwNThlZCAgbWZuOiAwMDAwNThl
+ZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozNV0gICBnZm46IDAwMDA1OGVlICBtZm46
+IDAwMDA1OGVlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM1XSAgIGdmbjogMDAwMDU4
+ZWYgIG1mbjogMDAwMDU4ZWYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzVdICAgZ2Zu
+OiAwMDAwNThmMCAgbWZuOiAwMDAwNThmMA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoz
+NV0gICBnZm46IDAwMDA1OGYxICBtZm46IDAwMDA1OGYxDQoNCihYRU4pIFsyMDEyLTA4LTMx
+IDIxOjMzOjM1XSAgIGdmbjogMDAwMDU4ZjIgIG1mbjogMDAwMDU4ZjINCg0KKFhFTikgWzIw
+MTItMDgtMzEgMjE6MzM6MzVdICAgZ2ZuOiAwMDAwNThmMyAgbWZuOiAwMDAwNThmMw0KDQoo
+WEVOKSBbMjAxMi0wOC0zMSAyMTozMzozNV0gICBnZm46IDAwMDA1OGY0ICBtZm46IDAwMDA1
+OGY0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM1XSAgIGdmbjogMDAwMDU4ZjUgIG1m
+bjogMDAwMDU4ZjUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzVdICAgZ2ZuOiAwMDAw
+NThmNiAgbWZuOiAwMDAwNThmNg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozNV0gICBn
+Zm46IDAwMDA1OGY3ICBtZm46IDAwMDA1OGY3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMz
+OjM1XSAgIGdmbjogMDAwMDU4ZjggIG1mbjogMDAwMDU4ZjgNCg0KKFhFTikgWzIwMTItMDgt
+MzEgMjE6MzM6MzVdICAgZ2ZuOiAwMDAwNThmOSAgbWZuOiAwMDAwNThmOQ0KDQooWEVOKSBb
+MjAxMi0wOC0zMSAyMTozMzozNV0gICBnZm46IDAwMDA1OGZhICBtZm46IDAwMDA1OGZhDQoN
+CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM1XSAgIGdmbjogMDAwMDU4ZmIgIG1mbjogMDAw
+MDU4ZmINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzVdICAgZ2ZuOiAwMDAwNThmYyAg
+bWZuOiAwMDAwNThmYw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozNV0gICBnZm46IDAw
+MDA1OGZkICBtZm46IDAwMDA1OGZkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM1XSAg
+IGdmbjogMDAwMDU4ZmUgIG1mbjogMDAwMDU4ZmUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
+MzM6MzVdICAgZ2ZuOiAwMDAwNThmZiAgbWZuOiAwMDAwNThmZg0KDQooWEVOKSBbMjAxMi0w
+OC0zMSAyMTozMzozNV0gICBnZm46IDAwMDA1OTAwICBtZm46IDAwMDA1OTAwDQoNCihYRU4p
+IFsyMDEyLTA4LTMxIDIxOjMzOjM1XSAgIGdmbjogMDAwMDU5MDEgIG1mbjogMDAwMDU5MDEN
+Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzVdICAgZ2ZuOiAwMDAwNTkwMiAgbWZuOiAw
+MDAwNTkwMg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozNV0gICBnZm46IDAwMDA1OTAz
+ICBtZm46IDAwMDA1OTAzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM1XSAgIGdmbjog
+MDAwMDU5MDQgIG1mbjogMDAwMDU5MDQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzVd
+ICAgZ2ZuOiAwMDAwNTkwNSAgbWZuOiAwMDAwNTkwNQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
+MTozMzozNV0gICBnZm46IDAwMDA1OTA2ICBtZm46IDAwMDA1OTA2DQoNCihYRU4pIFsyMDEy
+LTA4LTMxIDIxOjMzOjM1XSAgIGdmbjogMDAwMDU5MDcgIG1mbjogMDAwMDU5MDcNCg0KKFhF
+TikgWzIwMTItMDgtMzEgMjE6MzM6MzVdICAgZ2ZuOiAwMDAwNTkwOCAgbWZuOiAwMDAwNTkw
+OA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozNV0gICBnZm46IDAwMDA1OTA5ICBtZm46
+IDAwMDA1OTA5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM2XSAgIGdmbjogMDAwMDU5
+MGEgIG1mbjogMDAwMDU5MGENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzZdICAgZ2Zu
+OiAwMDAwNTkwYiAgbWZuOiAwMDAwNTkwYg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoz
+Nl0gICBnZm46IDAwMDA1OTBjICBtZm46IDAwMDA1OTBjDQoNCihYRU4pIFsyMDEyLTA4LTMx
+IDIxOjMzOjM2XSAgIGdmbjogMDAwMDU5MGQgIG1mbjogMDAwMDU5MGQNCg0KKFhFTikgWzIw
+MTItMDgtMzEgMjE6MzM6MzZdICAgZ2ZuOiAwMDAwNTkwZSAgbWZuOiAwMDAwNTkwZQ0KDQoo
+WEVOKSBbMjAxMi0wOC0zMSAyMTozMzozNl0gICBnZm46IDAwMDA1OTBmICBtZm46IDAwMDA1
+OTBmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM2XSAgIGdmbjogMDAwMDU5MTAgIG1m
+bjogMDAwMDU5MTANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzZdICAgZ2ZuOiAwMDAw
+NTkxMSAgbWZuOiAwMDAwNTkxMQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozNl0gICBn
+Zm46IDAwMDA1OTEyICBtZm46IDAwMDA1OTEyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMz
+OjM2XSAgIGdmbjogMDAwMDU5MTMgIG1mbjogMDAwMDU5MTMNCg0KKFhFTikgWzIwMTItMDgt
+MzEgMjE6MzM6MzZdICAgZ2ZuOiAwMDAwNTkxNCAgbWZuOiAwMDAwNTkxNA0KDQooWEVOKSBb
+MjAxMi0wOC0zMSAyMTozMzozNl0gICBnZm46IDAwMDA1OTE1ICBtZm46IDAwMDA1OTE1DQoN
+CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM2XSAgIGdmbjogMDAwMDU5MTYgIG1mbjogMDAw
+MDU5MTYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzZdICAgZ2ZuOiAwMDAwNTkxNyAg
+bWZuOiAwMDAwNTkxNw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozNl0gICBnZm46IDAw
+MDA1OTE4ICBtZm46IDAwMDA1OTE4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM2XSAg
+IGdmbjogMDAwMDU5MTkgIG1mbjogMDAwMDU5MTkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
+MzM6MzZdICAgZ2ZuOiAwMDAwNTkxYSAgbWZuOiAwMDAwNTkxYQ0KDQooWEVOKSBbMjAxMi0w
+OC0zMSAyMTozMzozNl0gICBnZm46IDAwMDA1OTFiICBtZm46IDAwMDA1OTFiDQoNCihYRU4p
+IFsyMDEyLTA4LTMxIDIxOjMzOjM2XSAgIGdmbjogMDAwMDU5MWMgIG1mbjogMDAwMDU5MWMN
+Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzZdICAgZ2ZuOiAwMDAwNTkxZCAgbWZuOiAw
+MDAwNTkxZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozNl0gICBnZm46IDAwMDA1OTFl
+ICBtZm46IDAwMDA1OTFlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM2XSAgIGdmbjog
+MDAwMDU5MWYgIG1mbjogMDAwMDU5MWYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzZd
+ICAgZ2ZuOiAwMDAwNTkyMCAgbWZuOiAwMDAwNTkyMA0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
+MTozMzozNl0gICBnZm46IDAwMDA1OTIxICBtZm46IDAwMDA1OTIxDQoNCihYRU4pIFsyMDEy
+LTA4LTMxIDIxOjMzOjM2XSAgIGdmbjogMDAwMDU5MjIgIG1mbjogMDAwMDU5MjINCg0KKFhF
+TikgWzIwMTItMDgtMzEgMjE6MzM6MzZdICAgZ2ZuOiAwMDAwNTkyMyAgbWZuOiAwMDAwNTky
+Mw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozNl0gICBnZm46IDAwMDA1OTI0ICBtZm46
+IDAwMDA1OTI0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM2XSAgIGdmbjogMDAwMDU5
+MjUgIG1mbjogMDAwMDU5MjUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzZdICAgZ2Zu
+OiAwMDAwNTkyNiAgbWZuOiAwMDAwNTkyNg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoz
+Nl0gICBnZm46IDAwMDA1OTI3ICBtZm46IDAwMDA1OTI3DQoNCihYRU4pIFsyMDEyLTA4LTMx
+IDIxOjMzOjM2XSAgIGdmbjogMDAwMDU5MjggIG1mbjogMDAwMDU5MjgNCg0KKFhFTikgWzIw
+MTItMDgtMzEgMjE6MzM6MzZdICAgZ2ZuOiAwMDAwNTkyOSAgbWZuOiAwMDAwNTkyOQ0KDQoo
+WEVOKSBbMjAxMi0wOC0zMSAyMTozMzozNl0gICBnZm46IDAwMDA1OTJhICBtZm46IDAwMDA1
+OTJhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM2XSAgIGdmbjogMDAwMDU5MmIgIG1m
+bjogMDAwMDU5MmINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzZdICAgZ2ZuOiAwMDAw
+NTkyYyAgbWZuOiAwMDAwNTkyYw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozNl0gICBn
+Zm46IDAwMDA1OTJkICBtZm46IDAwMDA1OTJkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMz
+OjM2XSAgIGdmbjogMDAwMDU5MmUgIG1mbjogMDAwMDU5MmUNCg0KKFhFTikgWzIwMTItMDgt
+MzEgMjE6MzM6MzZdICAgZ2ZuOiAwMDAwNTkyZiAgbWZuOiAwMDAwNTkyZg0KDQooWEVOKSBb
+MjAxMi0wOC0zMSAyMTozMzozNl0gICBnZm46IDAwMDA1OTMwICBtZm46IDAwMDA1OTMwDQoN
+CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM2XSAgIGdmbjogMDAwMDU5MzEgIG1mbjogMDAw
+MDU5MzENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzZdICAgZ2ZuOiAwMDAwNTkzMiAg
+bWZuOiAwMDAwNTkzMg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozNl0gICBnZm46IDAw
+MDA1OTMzICBtZm46IDAwMDA1OTMzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM2XSAg
+IGdmbjogMDAwMDU5MzQgIG1mbjogMDAwMDU5MzQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
+MzM6MzZdICAgZ2ZuOiAwMDAwNTkzNSAgbWZuOiAwMDAwNTkzNQ0KDQooWEVOKSBbMjAxMi0w
+OC0zMSAyMTozMzozNl0gICBnZm46IDAwMDA1OTM2ICBtZm46IDAwMDA1OTM2DQoNCihYRU4p
+IFsyMDEyLTA4LTMxIDIxOjMzOjM2XSAgIGdmbjogMDAwMDU5MzcgIG1mbjogMDAwMDU5MzcN
+Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzZdICAgZ2ZuOiAwMDAwNTkzOCAgbWZuOiAw
+MDAwNTkzOA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozNl0gICBnZm46IDAwMDA1OTM5
+ICBtZm46IDAwMDA1OTM5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM2XSAgIGdmbjog
+MDAwMDU5M2EgIG1mbjogMDAwMDU5M2ENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzZd
+ICAgZ2ZuOiAwMDAwNTkzYiAgbWZuOiAwMDAwNTkzYg0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
+MTozMzozNl0gICBnZm46IDAwMDA1OTNjICBtZm46IDAwMDA1OTNjDQoNCihYRU4pIFsyMDEy
+LTA4LTMxIDIxOjMzOjM2XSAgIGdmbjogMDAwMDU5M2QgIG1mbjogMDAwMDU5M2QNCg0KKFhF
+TikgWzIwMTItMDgtMzEgMjE6MzM6MzZdICAgZ2ZuOiAwMDAwNTkzZSAgbWZuOiAwMDAwNTkz
+ZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozNl0gICBnZm46IDAwMDA1OTNmICBtZm46
+IDAwMDA1OTNmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM2XSAgIGdmbjogMDAwMDU5
+NDAgIG1mbjogMDAwMDU5NDANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzZdICAgZ2Zu
+OiAwMDAwNTk0MSAgbWZuOiAwMDAwNTk0MQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoz
+Nl0gICBnZm46IDAwMDA1OTQyICBtZm46IDAwMDA1OTQyDQoNCihYRU4pIFsyMDEyLTA4LTMx
+IDIxOjMzOjM2XSAgIGdmbjogMDAwMDU5NDMgIG1mbjogMDAwMDU5NDMNCg0KKFhFTikgWzIw
+MTItMDgtMzEgMjE6MzM6MzZdICAgZ2ZuOiAwMDAwNTk0NCAgbWZuOiAwMDAwNTk0NA0KDQoo
+WEVOKSBbMjAxMi0wOC0zMSAyMTozMzozNl0gICBnZm46IDAwMDA1OTQ1ICBtZm46IDAwMDA1
+OTQ1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM2XSAgIGdmbjogMDAwMDU5NDYgIG1m
+bjogMDAwMDU5NDYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzZdICAgZ2ZuOiAwMDAw
+NTk0NyAgbWZuOiAwMDAwNTk0Nw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozNl0gICBn
+Zm46IDAwMDA1OTQ4ICBtZm46IDAwMDA1OTQ4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMz
+OjM2XSAgIGdmbjogMDAwMDU5NDkgIG1mbjogMDAwMDU5NDkNCg0KKFhFTikgWzIwMTItMDgt
+MzEgMjE6MzM6MzddICAgZ2ZuOiAwMDAwNTk0YSAgbWZuOiAwMDAwNTk0YQ0KDQooWEVOKSBb
+MjAxMi0wOC0zMSAyMTozMzozN10gICBnZm46IDAwMDA1OTRiICBtZm46IDAwMDA1OTRiDQoN
+CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM3XSAgIGdmbjogMDAwMDU5NGMgIG1mbjogMDAw
+MDU5NGMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzddICAgZ2ZuOiAwMDAwNTk0ZCAg
+bWZuOiAwMDAwNTk0ZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozN10gICBnZm46IDAw
+MDA1OTRlICBtZm46IDAwMDA1OTRlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM3XSAg
+IGdmbjogMDAwMDU5NGYgIG1mbjogMDAwMDU5NGYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
+MzM6MzddICAgZ2ZuOiAwMDAwNTk1MCAgbWZuOiAwMDAwNTk1MA0KDQooWEVOKSBbMjAxMi0w
+OC0zMSAyMTozMzozN10gICBnZm46IDAwMDA1OTUxICBtZm46IDAwMDA1OTUxDQoNCihYRU4p
+IFsyMDEyLTA4LTMxIDIxOjMzOjM3XSAgIGdmbjogMDAwMDU5NTIgIG1mbjogMDAwMDU5NTIN
+Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzddICAgZ2ZuOiAwMDAwNTk1MyAgbWZuOiAw
+MDAwNTk1Mw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozN10gICBnZm46IDAwMDA1OTU0
+ICBtZm46IDAwMDA1OTU0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM3XSAgIGdmbjog
+MDAwMDU5NTUgIG1mbjogMDAwMDU5NTUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6Mzdd
+ICAgZ2ZuOiAwMDAwNTk1NiAgbWZuOiAwMDAwNTk1Ng0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
+MTozMzozN10gICBnZm46IDAwMDA1OTU3ICBtZm46IDAwMDA1OTU3DQoNCihYRU4pIFsyMDEy
+LTA4LTMxIDIxOjMzOjM3XSAgIGdmbjogMDAwMDU5NTggIG1mbjogMDAwMDU5NTgNCg0KKFhF
+TikgWzIwMTItMDgtMzEgMjE6MzM6MzddICAgZ2ZuOiAwMDAwNTk1OSAgbWZuOiAwMDAwNTk1
+OQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozN10gICBnZm46IDAwMDA1OTVhICBtZm46
+IDAwMDA1OTVhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM3XSAgIGdmbjogMDAwMDU5
+NWIgIG1mbjogMDAwMDU5NWINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzddICAgZ2Zu
+OiAwMDAwNTk1YyAgbWZuOiAwMDAwNTk1Yw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoz
+N10gICBnZm46IDAwMDA1OTVkICBtZm46IDAwMDA1OTVkDQoNCihYRU4pIFsyMDEyLTA4LTMx
+IDIxOjMzOjM3XSAgIGdmbjogMDAwMDU5NWUgIG1mbjogMDAwMDU5NWUNCg0KKFhFTikgWzIw
+MTItMDgtMzEgMjE6MzM6MzddICAgZ2ZuOiAwMDAwNTk1ZiAgbWZuOiAwMDAwNTk1Zg0KDQoo
+WEVOKSBbMjAxMi0wOC0zMSAyMTozMzozN10gICBnZm46IDAwMDA1OTYwICBtZm46IDAwMDA1
+OTYwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM3XSAgIGdmbjogMDAwMDU5NjEgIG1m
+bjogMDAwMDU5NjENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzddICAgZ2ZuOiAwMDAw
+NTk2MiAgbWZuOiAwMDAwNTk2Mg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozN10gICBn
+Zm46IDAwMDA1OTYzICBtZm46IDAwMDA1OTYzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMz
+OjM3XSAgIGdmbjogMDAwMDU5NjQgIG1mbjogMDAwMDU5NjQNCg0KKFhFTikgWzIwMTItMDgt
+MzEgMjE6MzM6MzddICAgZ2ZuOiAwMDAwNTk2NSAgbWZuOiAwMDAwNTk2NQ0KDQooWEVOKSBb
+MjAxMi0wOC0zMSAyMTozMzozN10gICBnZm46IDAwMDA1OTY2ICBtZm46IDAwMDA1OTY2DQoN
+CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM3XSAgIGdmbjogMDAwMDU5NjcgIG1mbjogMDAw
+MDU5NjcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzddICAgZ2ZuOiAwMDAwNTk2OCAg
+bWZuOiAwMDAwNTk2OA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozN10gICBnZm46IDAw
+MDA1OTY5ICBtZm46IDAwMDA1OTY5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM3XSAg
+IGdmbjogMDAwMDU5NmEgIG1mbjogMDAwMDU5NmENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
+MzM6MzddICAgZ2ZuOiAwMDAwNTk2YiAgbWZuOiAwMDAwNTk2Yg0KDQooWEVOKSBbMjAxMi0w
+OC0zMSAyMTozMzozN10gICBnZm46IDAwMDA1OTZjICBtZm46IDAwMDA1OTZjDQoNCihYRU4p
+IFsyMDEyLTA4LTMxIDIxOjMzOjM3XSAgIGdmbjogMDAwMDU5NmQgIG1mbjogMDAwMDU5NmQN
+Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzddICAgZ2ZuOiAwMDAwNTk2ZSAgbWZuOiAw
+MDAwNTk2ZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozN10gICBnZm46IDAwMDA1OTZm
+ICBtZm46IDAwMDA1OTZmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM3XSAgIGdmbjog
+MDAwMDU5NzAgIG1mbjogMDAwMDU5NzANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6Mzdd
+ICAgZ2ZuOiAwMDAwNTk3MSAgbWZuOiAwMDAwNTk3MQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
+MTozMzozN10gICBnZm46IDAwMDA1OTcyICBtZm46IDAwMDA1OTcyDQoNCihYRU4pIFsyMDEy
+LTA4LTMxIDIxOjMzOjM3XSAgIGdmbjogMDAwMDU5NzMgIG1mbjogMDAwMDU5NzMNCg0KKFhF
+TikgWzIwMTItMDgtMzEgMjE6MzM6MzddICAgZ2ZuOiAwMDAwNTk3NCAgbWZuOiAwMDAwNTk3
+NA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozN10gICBnZm46IDAwMDA1OTc1ICBtZm46
+IDAwMDA1OTc1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM3XSAgIGdmbjogMDAwMDU5
+NzYgIG1mbjogMDAwMDU5NzYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzddICAgZ2Zu
+OiAwMDAwNTk3NyAgbWZuOiAwMDAwNTk3Nw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoz
+N10gICBnZm46IDAwMDA1OTc4ICBtZm46IDAwMDA1OTc4DQoNCihYRU4pIFsyMDEyLTA4LTMx
+IDIxOjMzOjM3XSAgIGdmbjogMDAwMDU5NzkgIG1mbjogMDAwMDU5NzkNCg0KKFhFTikgWzIw
+MTItMDgtMzEgMjE6MzM6MzddICAgZ2ZuOiAwMDAwNTk3YSAgbWZuOiAwMDAwNTk3YQ0KDQoo
+WEVOKSBbMjAxMi0wOC0zMSAyMTozMzozN10gICBnZm46IDAwMDA1OTdiICBtZm46IDAwMDA1
+OTdiDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM3XSAgIGdmbjogMDAwMDU5N2MgIG1m
+bjogMDAwMDU5N2MNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzddICAgZ2ZuOiAwMDAw
+NTk3ZCAgbWZuOiAwMDAwNTk3ZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozN10gICBn
+Zm46IDAwMDA1OTdlICBtZm46IDAwMDA1OTdlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMz
+OjM3XSAgIGdmbjogMDAwMDU5N2YgIG1mbjogMDAwMDU5N2YNCg0KKFhFTikgWzIwMTItMDgt
+MzEgMjE6MzM6MzddICAgZ2ZuOiAwMDAwNTk4MCAgbWZuOiAwMDAwNTk4MA0KDQooWEVOKSBb
+MjAxMi0wOC0zMSAyMTozMzozN10gICBnZm46IDAwMDA1OTgxICBtZm46IDAwMDA1OTgxDQoN
+CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM3XSAgIGdmbjogMDAwMDU5ODIgIG1mbjogMDAw
+MDU5ODINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzddICAgZ2ZuOiAwMDAwNTk4MyAg
+bWZuOiAwMDAwNTk4Mw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozN10gICBnZm46IDAw
+MDA1OTg0ICBtZm46IDAwMDA1OTg0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM3XSAg
+IGdmbjogMDAwMDU5ODUgIG1mbjogMDAwMDU5ODUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
+MzM6MzddICAgZ2ZuOiAwMDAwNTk4NiAgbWZuOiAwMDAwNTk4Ng0KDQooWEVOKSBbMjAxMi0w
+OC0zMSAyMTozMzozN10gICBnZm46IDAwMDA1OTg3ICBtZm46IDAwMDA1OTg3DQoNCihYRU4p
+IFsyMDEyLTA4LTMxIDIxOjMzOjM3XSAgIGdmbjogMDAwMDU5ODggIG1mbjogMDAwMDU5ODgN
+Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzddICAgZ2ZuOiAwMDAwNTk4OSAgbWZuOiAw
+MDAwNTk4OQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozOF0gICBnZm46IDAwMDA1OThh
+ICBtZm46IDAwMDA1OThhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM4XSAgIGdmbjog
+MDAwMDU5OGIgIG1mbjogMDAwMDU5OGINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6Mzhd
+ICAgZ2ZuOiAwMDAwNTk4YyAgbWZuOiAwMDAwNTk4Yw0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
+MTozMzozOF0gICBnZm46IDAwMDA1OThkICBtZm46IDAwMDA1OThkDQoNCihYRU4pIFsyMDEy
+LTA4LTMxIDIxOjMzOjM4XSAgIGdmbjogMDAwMDU5OGUgIG1mbjogMDAwMDU5OGUNCg0KKFhF
+TikgWzIwMTItMDgtMzEgMjE6MzM6MzhdICAgZ2ZuOiAwMDAwNTk4ZiAgbWZuOiAwMDAwNTk4
+Zg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozOF0gICBnZm46IDAwMDA1OTkwICBtZm46
+IDAwMDA1OTkwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM4XSAgIGdmbjogMDAwMDU5
+OTEgIG1mbjogMDAwMDU5OTENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzhdICAgZ2Zu
+OiAwMDAwNTk5MiAgbWZuOiAwMDAwNTk5Mg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoz
+OF0gICBnZm46IDAwMDA1OTkzICBtZm46IDAwMDA1OTkzDQoNCihYRU4pIFsyMDEyLTA4LTMx
+IDIxOjMzOjM4XSAgIGdmbjogMDAwMDU5OTQgIG1mbjogMDAwMDU5OTQNCg0KKFhFTikgWzIw
+MTItMDgtMzEgMjE6MzM6MzhdICAgZ2ZuOiAwMDAwNTk5NSAgbWZuOiAwMDAwNTk5NQ0KDQoo
+WEVOKSBbMjAxMi0wOC0zMSAyMTozMzozOF0gICBnZm46IDAwMDA1OTk2ICBtZm46IDAwMDA1
+OTk2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM4XSAgIGdmbjogMDAwMDU5OTcgIG1m
+bjogMDAwMDU5OTcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzhdICAgZ2ZuOiAwMDAw
+NTk5OCAgbWZuOiAwMDAwNTk5OA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozOF0gICBn
+Zm46IDAwMDA1OTk5ICBtZm46IDAwMDA1OTk5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMz
+OjM4XSAgIGdmbjogMDAwMDU5OWEgIG1mbjogMDAwMDU5OWENCg0KKFhFTikgWzIwMTItMDgt
+MzEgMjE6MzM6MzhdICAgZ2ZuOiAwMDAwNTk5YiAgbWZuOiAwMDAwNTk5Yg0KDQooWEVOKSBb
+MjAxMi0wOC0zMSAyMTozMzozOF0gICBnZm46IDAwMDA1OTljICBtZm46IDAwMDA1OTljDQoN
+CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM4XSAgIGdmbjogMDAwMDU5OWQgIG1mbjogMDAw
+MDU5OWQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzhdICAgZ2ZuOiAwMDAwNTk5ZSAg
+bWZuOiAwMDAwNTk5ZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozOF0gICBnZm46IDAw
+MDA1OTlmICBtZm46IDAwMDA1OTlmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM4XSAg
+IGdmbjogMDAwMDU5YTAgIG1mbjogMDAwMDU5YTANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
+MzM6MzhdICAgZ2ZuOiAwMDAwNTlhMSAgbWZuOiAwMDAwNTlhMQ0KDQooWEVOKSBbMjAxMi0w
+OC0zMSAyMTozMzozOF0gICBnZm46IDAwMDA1OWEyICBtZm46IDAwMDA1OWEyDQoNCihYRU4p
+IFsyMDEyLTA4LTMxIDIxOjMzOjM4XSAgIGdmbjogMDAwMDU5YTMgIG1mbjogMDAwMDU5YTMN
+Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzhdICAgZ2ZuOiAwMDAwNTlhNCAgbWZuOiAw
+MDAwNTlhNA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozOF0gICBnZm46IDAwMDA1OWE1
+ICBtZm46IDAwMDA1OWE1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM4XSAgIGdmbjog
+MDAwMDU5YTYgIG1mbjogMDAwMDU5YTYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6Mzhd
+ICAgZ2ZuOiAwMDAwNTlhNyAgbWZuOiAwMDAwNTlhNw0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
+MTozMzozOF0gICBnZm46IDAwMDA1OWE4ICBtZm46IDAwMDA1OWE4DQoNCihYRU4pIFsyMDEy
+LTA4LTMxIDIxOjMzOjM4XSAgIGdmbjogMDAwMDU5YTkgIG1mbjogMDAwMDU5YTkNCg0KKFhF
+TikgWzIwMTItMDgtMzEgMjE6MzM6MzhdICAgZ2ZuOiAwMDAwNTlhYSAgbWZuOiAwMDAwNTlh
+YQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozOF0gICBnZm46IDAwMDA1OWFiICBtZm46
+IDAwMDA1OWFiDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM4XSAgIGdmbjogMDAwMDU5
+YWMgIG1mbjogMDAwMDU5YWMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzhdICAgZ2Zu
+OiAwMDAwNTlhZCAgbWZuOiAwMDAwNTlhZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoz
+OF0gICBnZm46IDAwMDA1OWFlICBtZm46IDAwMDA1OWFlDQoNCihYRU4pIFsyMDEyLTA4LTMx
+IDIxOjMzOjM4XSAgIGdmbjogMDAwMDU5YWYgIG1mbjogMDAwMDU5YWYNCg0KKFhFTikgWzIw
+MTItMDgtMzEgMjE6MzM6MzhdICAgZ2ZuOiAwMDAwNTliMCAgbWZuOiAwMDAwNTliMA0KDQoo
+WEVOKSBbMjAxMi0wOC0zMSAyMTozMzozOF0gICBnZm46IDAwMDA1OWIxICBtZm46IDAwMDA1
+OWIxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM4XSAgIGdmbjogMDAwMDU5YjIgIG1m
+bjogMDAwMDU5YjINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzhdICAgZ2ZuOiAwMDAw
+NTliMyAgbWZuOiAwMDAwNTliMw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozOF0gICBn
+Zm46IDAwMDA1OWI0ICBtZm46IDAwMDA1OWI0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMz
+OjM4XSAgIGdmbjogMDAwMDU5YjUgIG1mbjogMDAwMDU5YjUNCg0KKFhFTikgWzIwMTItMDgt
+MzEgMjE6MzM6MzhdICAgZ2ZuOiAwMDAwNTliNiAgbWZuOiAwMDAwNTliNg0KDQooWEVOKSBb
+MjAxMi0wOC0zMSAyMTozMzozOF0gICBnZm46IDAwMDA1OWI3ICBtZm46IDAwMDA1OWI3DQoN
+CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM4XSAgIGdmbjogMDAwMDU5YjggIG1mbjogMDAw
+MDU5YjgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzhdICAgZ2ZuOiAwMDAwNTliOSAg
+bWZuOiAwMDAwNTliOQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozOF0gICBnZm46IDAw
+MDA1OWJhICBtZm46IDAwMDA1OWJhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM4XSAg
+IGdmbjogMDAwMDU5YmIgIG1mbjogMDAwMDU5YmINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
+MzM6MzhdICAgZ2ZuOiAwMDAwNTliYyAgbWZuOiAwMDAwNTliYw0KDQooWEVOKSBbMjAxMi0w
+OC0zMSAyMTozMzozOF0gICBnZm46IDAwMDA1OWJkICBtZm46IDAwMDA1OWJkDQoNCihYRU4p
+IFsyMDEyLTA4LTMxIDIxOjMzOjM4XSAgIGdmbjogMDAwMDU5YmUgIG1mbjogMDAwMDU5YmUN
+Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzhdICAgZ2ZuOiAwMDAwNTliZiAgbWZuOiAw
+MDAwNTliZg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozOF0gICBnZm46IDAwMDA1OWMw
+ICBtZm46IDAwMDA1OWMwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM4XSAgIGdmbjog
+MDAwMDU5YzEgIG1mbjogMDAwMDU5YzENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6Mzhd
+ICAgZ2ZuOiAwMDAwNTljMiAgbWZuOiAwMDAwNTljMg0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
+MTozMzozOF0gICBnZm46IDAwMDA1OWMzICBtZm46IDAwMDA1OWMzDQoNCihYRU4pIFsyMDEy
+LTA4LTMxIDIxOjMzOjM4XSAgIGdmbjogMDAwMDU5YzQgIG1mbjogMDAwMDU5YzQNCg0KKFhF
+TikgWzIwMTItMDgtMzEgMjE6MzM6MzhdICAgZ2ZuOiAwMDAwNTljNSAgbWZuOiAwMDAwNTlj
+NQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozOF0gICBnZm46IDAwMDA1OWM2ICBtZm46
+IDAwMDA1OWM2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM4XSAgIGdmbjogMDAwMDU5
+YzcgIG1mbjogMDAwMDU5YzcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzhdICAgZ2Zu
+OiAwMDAwNTljOCAgbWZuOiAwMDAwNTljOA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoz
+OF0gICBnZm46IDAwMDA1OWM5ICBtZm46IDAwMDA1OWM5DQoNCihYRU4pIFsyMDEyLTA4LTMx
+IDIxOjMzOjM4XSAgIGdmbjogMDAwMDU5Y2EgIG1mbjogMDAwMDU5Y2ENCg0KKFhFTikgWzIw
+MTItMDgtMzEgMjE6MzM6MzldICAgZ2ZuOiAwMDAwNTljYiAgbWZuOiAwMDAwNTljYg0KDQoo
+WEVOKSBbMjAxMi0wOC0zMSAyMTozMzozOV0gICBnZm46IDAwMDA1OWNjICBtZm46IDAwMDA1
+OWNjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM5XSAgIGdmbjogMDAwMDU5Y2QgIG1m
+bjogMDAwMDU5Y2QNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzldICAgZ2ZuOiAwMDAw
+NTljZSAgbWZuOiAwMDAwNTljZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozOV0gICBn
+Zm46IDAwMDA1OWNmICBtZm46IDAwMDA1OWNmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMz
+OjM5XSAgIGdmbjogMDAwMDU5ZDAgIG1mbjogMDAwMDU5ZDANCg0KKFhFTikgWzIwMTItMDgt
+MzEgMjE6MzM6MzldICAgZ2ZuOiAwMDAwNTlkMSAgbWZuOiAwMDAwNTlkMQ0KDQooWEVOKSBb
+MjAxMi0wOC0zMSAyMTozMzozOV0gICBnZm46IDAwMDA1OWQyICBtZm46IDAwMDA1OWQyDQoN
+CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM5XSAgIGdmbjogMDAwMDU5ZDMgIG1mbjogMDAw
+MDU5ZDMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzldICAgZ2ZuOiAwMDAwNTlkNCAg
+bWZuOiAwMDAwNTlkNA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozOV0gICBnZm46IDAw
+MDA1OWQ1ICBtZm46IDAwMDA1OWQ1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM5XSAg
+IGdmbjogMDAwMDU5ZDYgIG1mbjogMDAwMDU5ZDYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
+MzM6MzldICAgZ2ZuOiAwMDAwNTlkNyAgbWZuOiAwMDAwNTlkNw0KDQooWEVOKSBbMjAxMi0w
+OC0zMSAyMTozMzozOV0gICBnZm46IDAwMDA1OWQ4ICBtZm46IDAwMDA1OWQ4DQoNCihYRU4p
+IFsyMDEyLTA4LTMxIDIxOjMzOjM5XSAgIGdmbjogMDAwMDU5ZDkgIG1mbjogMDAwMDU5ZDkN
+Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzldICAgZ2ZuOiAwMDAwNTlkYSAgbWZuOiAw
+MDAwNTlkYQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozOV0gICBnZm46IDAwMDA1OWRi
+ICBtZm46IDAwMDA1OWRiDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM5XSAgIGdmbjog
+MDAwMDU5ZGMgIG1mbjogMDAwMDU5ZGMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6Mzld
+ICAgZ2ZuOiAwMDAwNTlkZCAgbWZuOiAwMDAwNTlkZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
+MTozMzozOV0gICBnZm46IDAwMDA1OWRlICBtZm46IDAwMDA1OWRlDQoNCihYRU4pIFsyMDEy
+LTA4LTMxIDIxOjMzOjM5XSAgIGdmbjogMDAwMDU5ZGYgIG1mbjogMDAwMDU5ZGYNCg0KKFhF
+TikgWzIwMTItMDgtMzEgMjE6MzM6MzldICAgZ2ZuOiAwMDAwNTllMCAgbWZuOiAwMDAwNTll
+MA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozOV0gICBnZm46IDAwMDA1OWUxICBtZm46
+IDAwMDA1OWUxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM5XSAgIGdmbjogMDAwMDU5
+ZTIgIG1mbjogMDAwMDU5ZTINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzldICAgZ2Zu
+OiAwMDAwNTllMyAgbWZuOiAwMDAwNTllMw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoz
+OV0gICBnZm46IDAwMDA1OWU0ICBtZm46IDAwMDA1OWU0DQoNCihYRU4pIFsyMDEyLTA4LTMx
+IDIxOjMzOjM5XSAgIGdmbjogMDAwMDU5ZTUgIG1mbjogMDAwMDU5ZTUNCg0KKFhFTikgWzIw
+MTItMDgtMzEgMjE6MzM6MzldICAgZ2ZuOiAwMDAwNTllNiAgbWZuOiAwMDAwNTllNg0KDQoo
+WEVOKSBbMjAxMi0wOC0zMSAyMTozMzozOV0gICBnZm46IDAwMDA1OWU3ICBtZm46IDAwMDA1
+OWU3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM5XSAgIGdmbjogMDAwMDU5ZTggIG1m
+bjogMDAwMDU5ZTgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzldICAgZ2ZuOiAwMDAw
+NTllOSAgbWZuOiAwMDAwNTllOQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozOV0gICBn
+Zm46IDAwMDA1OWVhICBtZm46IDAwMDA1OWVhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMz
+OjM5XSAgIGdmbjogMDAwMDU5ZWIgIG1mbjogMDAwMDU5ZWINCg0KKFhFTikgWzIwMTItMDgt
+MzEgMjE6MzM6MzldICAgZ2ZuOiAwMDAwNTllYyAgbWZuOiAwMDAwNTllYw0KDQooWEVOKSBb
+MjAxMi0wOC0zMSAyMTozMzozOV0gICBnZm46IDAwMDA1OWVkICBtZm46IDAwMDA1OWVkDQoN
+CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM5XSAgIGdmbjogMDAwMDU5ZWUgIG1mbjogMDAw
+MDU5ZWUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzldICAgZ2ZuOiAwMDAwNTllZiAg
+bWZuOiAwMDAwNTllZg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozOV0gICBnZm46IDAw
+MDA1OWYwICBtZm46IDAwMDA1OWYwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM5XSAg
+IGdmbjogMDAwMDU5ZjEgIG1mbjogMDAwMDU5ZjENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
+MzM6MzldICAgZ2ZuOiAwMDAwNTlmMiAgbWZuOiAwMDAwNTlmMg0KDQpbICA0ODUuNjIzNzkz
+XSBhKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzldICAgZ2ZuOiAwMDAwNTlmMyAgbWZuOiAw
+MDAwNTlmMw0KDQp0YTMuMDA6IHFjIHRpbWVvKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6Mzld
+ICAgZ2ZuOiAwMDAwNTlmNCAgbWZuOiAwMDAwNTlmNA0KDQp1dCAoY21kIDB4ZWMpDQoNCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzldICAgZ2ZuOiAwMDAwNTlmNSAgbWZuOiAwMDAw
+NTlmNQ0KDQpbICA0ODUuNjgxOTg0XSBhdGEzLjAwOiBmYWlsZWQgdChYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMzOjM5XSAgIGdmbjogMDAwMDU5ZjYgIG1mbjogMDAwMDU5ZjYNCg0KbyBJREVO
+VElGWSAoSS9PIChYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM5XSAgIGdmbjogMDAwMDU5Zjcg
+IG1mbjogMDAwMDU5ZjcNCg0KZXJyb3IsIGVycl9tYXNrPTB4NCkNCg0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMzozOV0gICBnZm46IDAwMDA1OWY4ICBtZm46IDAwMDA1OWY4DQoNClsg
+IDQ4NS43NDg1MzBdIGEoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozOV0gICBnZm46IDAwMDA1
+OWY5ICBtZm46IDAwMDA1OWY5DQoNCnRhMy4wMDogcmV2YWxpZGF0aW9uIGZhaWxlZCAoZXJy
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzldICAgZ2ZuOiAwMDAwNTlmYSAgbWZuOiAwMDAw
+NTlmYQ0KDQpubz0tNSkNCg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozOV0gICBnZm46
+IDAwMDA1OWZiICBtZm46IDAwMDA1OWZiDQoNClsgIDQ4NS44MTA5MjBdIGF0YTM6IGhhcmQg
+cmVzZXR0KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzldICAgZ2ZuOiAwMDAwNTlmYyAgbWZu
+OiAwMDAwNTlmYw0KDQppbmcgbGluaw0KDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM5
+XSAgIGdmbjogMDAwMDU5ZmQgIG1mbjogMDAwMDU5ZmQNCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzM6MzldICAgZ2ZuOiAwMDAwNTlmZSAgbWZuOiAwMDAwNTlmZQ0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMzozOV0gICBnZm46IDAwMDA1OWZmICBtZm46IDAwMDA1OWZmDQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM5XSAgIGdmbjogMDAwMDVhMDAgIG1mbjogMDAwMDVh
+MDANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzldICAgZ2ZuOiAwMDAwNWEwMSAgbWZu
+OiAwMDAwNWEwMQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozOV0gICBnZm46IDAwMDA1
+YTAyICBtZm46IDAwMDA1YTAyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM5XSAgIGdm
+bjogMDAwMDVhMDMgIG1mbjogMDAwMDVhMDMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6
+MzldICAgZ2ZuOiAwMDAwNWEwNCAgbWZuOiAwMDAwNWEwNA0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMzozOV0gICBnZm46IDAwMDA1YTA1ICBtZm46IDAwMDA1YTA1DQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMzOjM5XSAgIGdmbjogMDAwMDVhMDYgIG1mbjogMDAwMDVhMDYNCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDBdICAgZ2ZuOiAwMDAwNWEwNyAgbWZuOiAwMDAw
+NWEwNw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0MF0gICBnZm46IDAwMDA1YTA4ICBt
+Zm46IDAwMDA1YTA4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQwXSAgIGdmbjogMDAw
+MDVhMDkgIG1mbjogMDAwMDVhMDkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDBdICAg
+Z2ZuOiAwMDAwNWEwYSAgbWZuOiAwMDAwNWEwYQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+Mzo0MF0gICBnZm46IDAwMDA1YTBiICBtZm46IDAwMDA1YTBiDQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMzOjQwXSAgIGdmbjogMDAwMDVhMGMgIG1mbjogMDAwMDVhMGMNCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzM6NDBdICAgZ2ZuOiAwMDAwNWEwZCAgbWZuOiAwMDAwNWEwZA0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0MF0gICBnZm46IDAwMDA1YTBlICBtZm46IDAw
+MDA1YTBlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQwXSAgIGdmbjogMDAwMDVhMGYg
+IG1mbjogMDAwMDVhMGYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDBdICAgZ2ZuOiAw
+MDAwNWExMCAgbWZuOiAwMDAwNWExMA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0MF0g
+ICBnZm46IDAwMDA1YTExICBtZm46IDAwMDA1YTExDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMzOjQwXSAgIGdmbjogMDAwMDVhMTIgIG1mbjogMDAwMDVhMTINCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzM6NDBdICAgZ2ZuOiAwMDAwNWExMyAgbWZuOiAwMDAwNWExMw0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMzo0MF0gICBnZm46IDAwMDA1YTE0ICBtZm46IDAwMDA1YTE0
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQwXSAgIGdmbjogMDAwMDVhMTUgIG1mbjog
+MDAwMDVhMTUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDBdICAgZ2ZuOiAwMDAwNWEx
+NiAgbWZuOiAwMDAwNWExNg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0MF0gICBnZm46
+IDAwMDA1YTE3ICBtZm46IDAwMDA1YTE3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQw
+XSAgIGdmbjogMDAwMDVhMTggIG1mbjogMDAwMDVhMTgNCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzM6NDBdICAgZ2ZuOiAwMDAwNWExOSAgbWZuOiAwMDAwNWExOQ0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMzo0MF0gICBnZm46IDAwMDA1YTFhICBtZm46IDAwMDA1YTFhDQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQwXSAgIGdmbjogMDAwMDVhMWIgIG1mbjogMDAwMDVh
+MWINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDBdICAgZ2ZuOiAwMDAwNWExYyAgbWZu
+OiAwMDAwNWExYw0KDQpbICA0ODYuMzQyMDYxXSBhKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6
+NDBdICAgZ2ZuOiAwMDAwNWExZCAgbWZuOiAwMDAwNWExZA0KDQp0YTM6IFNBVEEgbGluayB1
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDBdICAgZ2ZuOiAwMDAwNWExZSAgbWZuOiAwMDAw
+NWExZQ0KDQpwIDYuMCBHYnBzIChTU3RhKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDBdICAg
+Z2ZuOiAwMDAwNWExZiAgbWZuOiAwMDAwNWExZg0KDQp0dXMgMTMzIFNDb250cm9sIDMwMCkN
+Cg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0MF0gICBnZm46IDAwMDA1YTIwICBtZm46
+IDAwMDA1YTIwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQwXSAgIGdmbjogMDAwMDVh
+MjEgIG1mbjogMDAwMDVhMjENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDBdICAgZ2Zu
+OiAwMDAwNWEyMiAgbWZuOiAwMDAwNWEyMg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0
+MF0gICBnZm46IDAwMDA1YTIzICBtZm46IDAwMDA1YTIzDQoNCihYRU4pIFsyMDEyLTA4LTMx
+IDIxOjMzOjQwXSAgIGdmbjogMDAwMDVhMjQgIG1mbjogMDAwMDVhMjQNCg0KKFhFTikgWzIw
+MTItMDgtMzEgMjE6MzM6NDBdICAgZ2ZuOiAwMDAwNWEyNSAgbWZuOiAwMDAwNWEyNQ0KDQoo
+WEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0MF0gICBnZm46IDAwMDA1YTI2ICBtZm46IDAwMDA1
+YTI2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQwXSAgIGdmbjogMDAwMDVhMjcgIG1m
+bjogMDAwMDVhMjcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDBdICAgZ2ZuOiAwMDAw
+NWEyOCAgbWZuOiAwMDAwNWEyOA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0MF0gICBn
+Zm46IDAwMDA1YTI5ICBtZm46IDAwMDA1YTI5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMz
+OjQwXSAgIGdmbjogMDAwMDVhMmEgIG1mbjogMDAwMDVhMmENCg0KKFhFTikgWzIwMTItMDgt
+MzEgMjE6MzM6NDBdICAgZ2ZuOiAwMDAwNWEyYiAgbWZuOiAwMDAwNWEyYg0KDQooWEVOKSBb
+MjAxMi0wOC0zMSAyMTozMzo0MF0gICBnZm46IDAwMDA1YTJjICBtZm46IDAwMDA1YTJjDQoN
+CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQwXSAgIGdmbjogMDAwMDVhMmQgIG1mbjogMDAw
+MDVhMmQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDBdICAgZ2ZuOiAwMDAwNWEyZSAg
+bWZuOiAwMDAwNWEyZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0MF0gICBnZm46IDAw
+MDA1YTJmICBtZm46IDAwMDA1YTJmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQwXSAg
+IGdmbjogMDAwMDVhMzAgIG1mbjogMDAwMDVhMzANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
+MzM6NDBdICAgZ2ZuOiAwMDAwNWEzMSAgbWZuOiAwMDAwNWEzMQ0KDQooWEVOKSBbMjAxMi0w
+OC0zMSAyMTozMzo0MF0gICBnZm46IDAwMDA1YTMyICBtZm46IDAwMDA1YTMyDQoNCihYRU4p
+IFsyMDEyLTA4LTMxIDIxOjMzOjQwXSAgIGdmbjogMDAwMDVhMzMgIG1mbjogMDAwMDVhMzMN
+Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDBdICAgZ2ZuOiAwMDAwNWEzNCAgbWZuOiAw
+MDAwNWEzNA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0MF0gICBnZm46IDAwMDA1YTM1
+ICBtZm46IDAwMDA1YTM1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQwXSAgIGdmbjog
+MDAwMDVhMzYgIG1mbjogMDAwMDVhMzYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDBd
+ICAgZ2ZuOiAwMDAwNWEzNyAgbWZuOiAwMDAwNWEzNw0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
+MTozMzo0MF0gICBnZm46IDAwMDA1YTM4ICBtZm46IDAwMDA1YTM4DQoNCihYRU4pIFsyMDEy
+LTA4LTMxIDIxOjMzOjQwXSAgIGdmbjogMDAwMDVhMzkgIG1mbjogMDAwMDVhMzkNCg0KKFhF
+TikgWzIwMTItMDgtMzEgMjE6MzM6NDBdICAgZ2ZuOiAwMDAwNWEzYSAgbWZuOiAwMDAwNWEz
+YQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0MF0gICBnZm46IDAwMDA1YTNiICBtZm46
+IDAwMDA1YTNiDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQwXSAgIGdmbjogMDAwMDVh
+M2MgIG1mbjogMDAwMDVhM2MNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDBdICAgZ2Zu
+OiAwMDAwNWEzZCAgbWZuOiAwMDAwNWEzZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0
+MF0gICBnZm46IDAwMDA1YTNlICBtZm46IDAwMDA1YTNlDQoNCihYRU4pIFsyMDEyLTA4LTMx
+IDIxOjMzOjQwXSAgIGdmbjogMDAwMDVhM2YgIG1mbjogMDAwMDVhM2YNCg0KKFhFTikgWzIw
+MTItMDgtMzEgMjE6MzM6NDBdICAgZ2ZuOiAwMDAwNWE0MCAgbWZuOiAwMDAwNWE0MA0KDQoo
+WEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0MF0gICBnZm46IDAwMDA1YTQxICBtZm46IDAwMDA1
+YTQxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQwXSAgIGdmbjogMDAwMDVhNDIgIG1m
+bjogMDAwMDVhNDINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDBdICAgZ2ZuOiAwMDAw
+NWE0MyAgbWZuOiAwMDAwNWE0Mw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0MF0gICBn
+Zm46IDAwMDA1YTQ0ICBtZm46IDAwMDA1YTQ0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMz
+OjQwXSAgIGdmbjogMDAwMDVhNDUgIG1mbjogMDAwMDVhNDUNCg0KKFhFTikgWzIwMTItMDgt
+MzEgMjE6MzM6NDFdICAgZ2ZuOiAwMDAwNWE0NiAgbWZuOiAwMDAwNWE0Ng0KDQooWEVOKSBb
+MjAxMi0wOC0zMSAyMTozMzo0MV0gICBnZm46IDAwMDA1YTQ3ICBtZm46IDAwMDA1YTQ3DQoN
+CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQxXSAgIGdmbjogMDAwMDVhNDggIG1mbjogMDAw
+MDVhNDgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDFdICAgZ2ZuOiAwMDAwNWE0OSAg
+bWZuOiAwMDAwNWE0OQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0MV0gICBnZm46IDAw
+MDA1YTRhICBtZm46IDAwMDA1YTRhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQxXSAg
+IGdmbjogMDAwMDVhNGIgIG1mbjogMDAwMDVhNGINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
+MzM6NDFdICAgZ2ZuOiAwMDAwNWE0YyAgbWZuOiAwMDAwNWE0Yw0KDQooWEVOKSBbMjAxMi0w
+OC0zMSAyMTozMzo0MV0gICBnZm46IDAwMDA1YTRkICBtZm46IDAwMDA1YTRkDQoNCihYRU4p
+IFsyMDEyLTA4LTMxIDIxOjMzOjQxXSAgIGdmbjogMDAwMDVhNGUgIG1mbjogMDAwMDVhNGUN
+Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDFdICAgZ2ZuOiAwMDAwNWE0ZiAgbWZuOiAw
+MDAwNWE0Zg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0MV0gICBnZm46IDAwMDA1YTUw
+ICBtZm46IDAwMDA1YTUwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQxXSAgIGdmbjog
+MDAwMDVhNTEgIG1mbjogMDAwMDVhNTENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDFd
+ICAgZ2ZuOiAwMDAwNWE1MiAgbWZuOiAwMDAwNWE1Mg0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
+MTozMzo0MV0gICBnZm46IDAwMDA1YTUzICBtZm46IDAwMDA1YTUzDQoNCihYRU4pIFsyMDEy
+LTA4LTMxIDIxOjMzOjQxXSAgIGdmbjogMDAwMDVhNTQgIG1mbjogMDAwMDVhNTQNCg0KKFhF
+TikgWzIwMTItMDgtMzEgMjE6MzM6NDFdICAgZ2ZuOiAwMDAwNWE1NSAgbWZuOiAwMDAwNWE1
+NQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0MV0gICBnZm46IDAwMDA1YTU2ICBtZm46
+IDAwMDA1YTU2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQxXSAgIGdmbjogMDAwMDVh
+NTcgIG1mbjogMDAwMDVhNTcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDFdICAgZ2Zu
+OiAwMDAwNWE1OCAgbWZuOiAwMDAwNWE1OA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0
+MV0gICBnZm46IDAwMDA1YTU5ICBtZm46IDAwMDA1YTU5DQoNCihYRU4pIFsyMDEyLTA4LTMx
+IDIxOjMzOjQxXSAgIGdmbjogMDAwMDVhNWEgIG1mbjogMDAwMDVhNWENCg0KKFhFTikgWzIw
+MTItMDgtMzEgMjE6MzM6NDFdICAgZ2ZuOiAwMDAwNWE1YiAgbWZuOiAwMDAwNWE1Yg0KDQoo
+WEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0MV0gICBnZm46IDAwMDA1YTVjICBtZm46IDAwMDA1
+YTVjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQxXSAgIGdmbjogMDAwMDVhNWQgIG1m
+bjogMDAwMDVhNWQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDFdICAgZ2ZuOiAwMDAw
+NWE1ZSAgbWZuOiAwMDAwNWE1ZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0MV0gICBn
+Zm46IDAwMDA1YTVmICBtZm46IDAwMDA1YTVmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMz
+OjQxXSAgIGdmbjogMDAwMDVhNjAgIG1mbjogMDAwMDVhNjANCg0KKFhFTikgWzIwMTItMDgt
+MzEgMjE6MzM6NDFdICAgZ2ZuOiAwMDAwNWE2MSAgbWZuOiAwMDAwNWE2MQ0KDQooWEVOKSBb
+MjAxMi0wOC0zMSAyMTozMzo0MV0gICBnZm46IDAwMDA1YTYyICBtZm46IDAwMDA1YTYyDQoN
+CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQxXSAgIGdmbjogMDAwMDVhNjMgIG1mbjogMDAw
+MDVhNjMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDFdICAgZ2ZuOiAwMDAwNWE2NCAg
+bWZuOiAwMDAwNWE2NA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0MV0gICBnZm46IDAw
+MDA1YTY1ICBtZm46IDAwMDA1YTY1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQxXSAg
+IGdmbjogMDAwMDVhNjYgIG1mbjogMDAwMDVhNjYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
+MzM6NDFdICAgZ2ZuOiAwMDAwNWE2NyAgbWZuOiAwMDAwNWE2Nw0KDQooWEVOKSBbMjAxMi0w
+OC0zMSAyMTozMzo0MV0gICBnZm46IDAwMDA1YTY4ICBtZm46IDAwMDA1YTY4DQoNCihYRU4p
+IFsyMDEyLTA4LTMxIDIxOjMzOjQxXSAgIGdmbjogMDAwMDVhNjkgIG1mbjogMDAwMDVhNjkN
+Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDFdICAgZ2ZuOiAwMDAwNWE2YSAgbWZuOiAw
+MDAwNWE2YQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0MV0gICBnZm46IDAwMDA1YTZi
+ICBtZm46IDAwMDA1YTZiDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQxXSAgIGdmbjog
+MDAwMDVhNmMgIG1mbjogMDAwMDVhNmMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDFd
+ICAgZ2ZuOiAwMDAwNWE2ZCAgbWZuOiAwMDAwNWE2ZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
+MTozMzo0MV0gICBnZm46IDAwMDA1YTZlICBtZm46IDAwMDA1YTZlDQoNCihYRU4pIFsyMDEy
+LTA4LTMxIDIxOjMzOjQxXSAgIGdmbjogMDAwMDVhNmYgIG1mbjogMDAwMDVhNmYNCg0KKFhF
+TikgWzIwMTItMDgtMzEgMjE6MzM6NDFdICAgZ2ZuOiAwMDAwNWE3MCAgbWZuOiAwMDAwNWE3
+MA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0MV0gICBnZm46IDAwMDA1YTcxICBtZm46
+IDAwMDA1YTcxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQxXSAgIGdmbjogMDAwMDVh
+NzIgIG1mbjogMDAwMDVhNzINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDFdICAgZ2Zu
+OiAwMDAwNWE3MyAgbWZuOiAwMDAwNWE3Mw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0
+MV0gICBnZm46IDAwMDA1YTc0ICBtZm46IDAwMDA1YTc0DQoNCihYRU4pIFsyMDEyLTA4LTMx
+IDIxOjMzOjQxXSAgIGdmbjogMDAwMDVhNzUgIG1mbjogMDAwMDVhNzUNCg0KKFhFTikgWzIw
+MTItMDgtMzEgMjE6MzM6NDFdICAgZ2ZuOiAwMDAwNWE3NiAgbWZuOiAwMDAwNWE3Ng0KDQoo
+WEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0MV0gICBnZm46IDAwMDA1YTc3ICBtZm46IDAwMDA1
+YTc3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQxXSAgIGdmbjogMDAwMDVhNzggIG1m
+bjogMDAwMDVhNzgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDFdICAgZ2ZuOiAwMDAw
+NWE3OSAgbWZuOiAwMDAwNWE3OQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0MV0gICBn
+Zm46IDAwMDA1YTdhICBtZm46IDAwMDA1YTdhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMz
+OjQxXSAgIGdmbjogMDAwMDVhN2IgIG1mbjogMDAwMDVhN2INCg0KKFhFTikgWzIwMTItMDgt
+MzEgMjE6MzM6NDFdICAgZ2ZuOiAwMDAwNWE3YyAgbWZuOiAwMDAwNWE3Yw0KDQooWEVOKSBb
+MjAxMi0wOC0zMSAyMTozMzo0MV0gICBnZm46IDAwMDA1YTdkICBtZm46IDAwMDA1YTdkDQoN
+CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQxXSAgIGdmbjogMDAwMDVhN2UgIG1mbjogMDAw
+MDVhN2UNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDFdICAgZ2ZuOiAwMDAwNWE3ZiAg
+bWZuOiAwMDAwNWE3Zg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0MV0gICBnZm46IDAw
+MDA1YTgwICBtZm46IDAwMDA1YTgwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQxXSAg
+IGdmbjogMDAwMDVhODEgIG1mbjogMDAwMDVhODENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
+MzM6NDFdICAgZ2ZuOiAwMDAwNWE4MiAgbWZuOiAwMDAwNWE4Mg0KDQooWEVOKSBbMjAxMi0w
+OC0zMSAyMTozMzo0MV0gICBnZm46IDAwMDA1YTgzICBtZm46IDAwMDA1YTgzDQoNCihYRU4p
+IFsyMDEyLTA4LTMxIDIxOjMzOjQxXSAgIGdmbjogMDAwMDVhODQgIG1mbjogMDAwMDVhODQN
+Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDFdICAgZ2ZuOiAwMDAwNWE4NSAgbWZuOiAw
+MDAwNWE4NQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0Ml0gICBnZm46IDAwMDA1YTg2
+ICBtZm46IDAwMDA1YTg2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQyXSAgIGdmbjog
+MDAwMDVhODcgIG1mbjogMDAwMDVhODcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDJd
+ICAgZ2ZuOiAwMDAwNWE4OCAgbWZuOiAwMDAwNWE4OA0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
+MTozMzo0Ml0gICBnZm46IDAwMDA1YTg5ICBtZm46IDAwMDA1YTg5DQoNCihYRU4pIFsyMDEy
+LTA4LTMxIDIxOjMzOjQyXSAgIGdmbjogMDAwMDVhOGEgIG1mbjogMDAwMDVhOGENCg0KKFhF
+TikgWzIwMTItMDgtMzEgMjE6MzM6NDJdICAgZ2ZuOiAwMDAwNWE4YiAgbWZuOiAwMDAwNWE4
+Yg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0Ml0gICBnZm46IDAwMDA1YThjICBtZm46
+IDAwMDA1YThjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQyXSAgIGdmbjogMDAwMDVh
+OGQgIG1mbjogMDAwMDVhOGQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDJdICAgZ2Zu
+OiAwMDAwNWE4ZSAgbWZuOiAwMDAwNWE4ZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0
+Ml0gICBnZm46IDAwMDA1YThmICBtZm46IDAwMDA1YThmDQoNCihYRU4pIFsyMDEyLTA4LTMx
+IDIxOjMzOjQyXSAgIGdmbjogMDAwMDVhOTAgIG1mbjogMDAwMDVhOTANCg0KKFhFTikgWzIw
+MTItMDgtMzEgMjE6MzM6NDJdICAgZ2ZuOiAwMDAwNWE5MSAgbWZuOiAwMDAwNWE5MQ0KDQoo
+WEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0Ml0gICBnZm46IDAwMDA1YTkyICBtZm46IDAwMDA1
+YTkyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQyXSAgIGdmbjogMDAwMDVhOTMgIG1m
+bjogMDAwMDVhOTMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDJdICAgZ2ZuOiAwMDAw
+NWE5NCAgbWZuOiAwMDAwNWE5NA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0Ml0gICBn
+Zm46IDAwMDA1YTk1ICBtZm46IDAwMDA1YTk1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMz
+OjQyXSAgIGdmbjogMDAwMDVhOTYgIG1mbjogMDAwMDVhOTYNCg0KKFhFTikgWzIwMTItMDgt
+MzEgMjE6MzM6NDJdICAgZ2ZuOiAwMDAwNWE5NyAgbWZuOiAwMDAwNWE5Nw0KDQooWEVOKSBb
+MjAxMi0wOC0zMSAyMTozMzo0Ml0gICBnZm46IDAwMDA1YTk4ICBtZm46IDAwMDA1YTk4DQoN
+CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQyXSAgIGdmbjogMDAwMDVhOTkgIG1mbjogMDAw
+MDVhOTkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDJdICAgZ2ZuOiAwMDAwNWE5YSAg
+bWZuOiAwMDAwNWE5YQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0Ml0gICBnZm46IDAw
+MDA1YTliICBtZm46IDAwMDA1YTliDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQyXSAg
+IGdmbjogMDAwMDVhOWMgIG1mbjogMDAwMDVhOWMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
+MzM6NDJdICAgZ2ZuOiAwMDAwNWE5ZCAgbWZuOiAwMDAwNWE5ZA0KDQooWEVOKSBbMjAxMi0w
+OC0zMSAyMTozMzo0Ml0gICBnZm46IDAwMDA1YTllICBtZm46IDAwMDA1YTllDQoNCihYRU4p
+IFsyMDEyLTA4LTMxIDIxOjMzOjQyXSAgIGdmbjogMDAwMDVhOWYgIG1mbjogMDAwMDVhOWYN
+Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDJdICAgZ2ZuOiAwMDAwNWFhMCAgbWZuOiAw
+MDAwNWFhMA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0Ml0gICBnZm46IDAwMDA1YWEx
+ICBtZm46IDAwMDA1YWExDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQyXSAgIGdmbjog
+MDAwMDVhYTIgIG1mbjogMDAwMDVhYTINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDJd
+ICAgZ2ZuOiAwMDAwNWFhMyAgbWZuOiAwMDAwNWFhMw0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
+MTozMzo0Ml0gICBnZm46IDAwMDA1YWE0ICBtZm46IDAwMDA1YWE0DQoNCihYRU4pIFsyMDEy
+LTA4LTMxIDIxOjMzOjQyXSAgIGdmbjogMDAwMDVhYTUgIG1mbjogMDAwMDVhYTUNCg0KKFhF
+TikgWzIwMTItMDgtMzEgMjE6MzM6NDJdICAgZ2ZuOiAwMDAwNWFhNiAgbWZuOiAwMDAwNWFh
+Ng0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0Ml0gICBnZm46IDAwMDA1YWE3ICBtZm46
+IDAwMDA1YWE3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQyXSAgIGdmbjogMDAwMDVh
+YTggIG1mbjogMDAwMDVhYTgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDJdICAgZ2Zu
+OiAwMDAwNWFhOSAgbWZuOiAwMDAwNWFhOQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0
+Ml0gICBnZm46IDAwMDA1YWFhICBtZm46IDAwMDA1YWFhDQoNCihYRU4pIFsyMDEyLTA4LTMx
+IDIxOjMzOjQyXSAgIGdmbjogMDAwMDVhYWIgIG1mbjogMDAwMDVhYWINCg0KKFhFTikgWzIw
+MTItMDgtMzEgMjE6MzM6NDJdICAgZ2ZuOiAwMDAwNWFhYyAgbWZuOiAwMDAwNWFhYw0KDQoo
+WEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0Ml0gICBnZm46IDAwMDA1YWFkICBtZm46IDAwMDA1
+YWFkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQyXSAgIGdmbjogMDAwMDVhYWUgIG1m
+bjogMDAwMDVhYWUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDJdICAgZ2ZuOiAwMDAw
+NWFhZiAgbWZuOiAwMDAwNWFhZg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0Ml0gICBn
+Zm46IDAwMDA1YWIwICBtZm46IDAwMDA1YWIwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMz
+OjQyXSAgIGdmbjogMDAwMDVhYjEgIG1mbjogMDAwMDVhYjENCg0KKFhFTikgWzIwMTItMDgt
+MzEgMjE6MzM6NDJdICAgZ2ZuOiAwMDAwNWFiMiAgbWZuOiAwMDAwNWFiMg0KDQooWEVOKSBb
+MjAxMi0wOC0zMSAyMTozMzo0Ml0gICBnZm46IDAwMDA1YWIzICBtZm46IDAwMDA1YWIzDQoN
+CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQyXSAgIGdmbjogMDAwMDVhYjQgIG1mbjogMDAw
+MDVhYjQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDJdICAgZ2ZuOiAwMDAwNWFiNSAg
+bWZuOiAwMDAwNWFiNQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0Ml0gICBnZm46IDAw
+MDA1YWI2ICBtZm46IDAwMDA1YWI2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQyXSAg
+IGdmbjogMDAwMDVhYjcgIG1mbjogMDAwMDVhYjcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
+MzM6NDJdICAgZ2ZuOiAwMDAwNWFiOCAgbWZuOiAwMDAwNWFiOA0KDQooWEVOKSBbMjAxMi0w
+OC0zMSAyMTozMzo0Ml0gICBnZm46IDAwMDA1YWI5ICBtZm46IDAwMDA1YWI5DQoNCihYRU4p
+IFsyMDEyLTA4LTMxIDIxOjMzOjQyXSAgIGdmbjogMDAwMDVhYmEgIG1mbjogMDAwMDVhYmEN
+Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDJdICAgZ2ZuOiAwMDAwNWFiYiAgbWZuOiAw
+MDAwNWFiYg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0Ml0gICBnZm46IDAwMDA1YWJj
+ICBtZm46IDAwMDA1YWJjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQyXSAgIGdmbjog
+MDAwMDVhYmQgIG1mbjogMDAwMDVhYmQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDJd
+ICAgZ2ZuOiAwMDAwNWFiZSAgbWZuOiAwMDAwNWFiZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
+MTozMzo0Ml0gICBnZm46IDAwMDA1YWJmICBtZm46IDAwMDA1YWJmDQoNCihYRU4pIFsyMDEy
+LTA4LTMxIDIxOjMzOjQyXSAgIGdmbjogMDAwMDVhYzAgIG1mbjogMDAwMDVhYzANCg0KKFhF
+TikgWzIwMTItMDgtMzEgMjE6MzM6NDJdICAgZ2ZuOiAwMDAwNWFjMSAgbWZuOiAwMDAwNWFj
+MQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0Ml0gICBnZm46IDAwMDA1YWMyICBtZm46
+IDAwMDA1YWMyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQyXSAgIGdmbjogMDAwMDVh
+YzMgIG1mbjogMDAwMDVhYzMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDJdICAgZ2Zu
+OiAwMDAwNWFjNCAgbWZuOiAwMDAwNWFjNA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0
+Ml0gICBnZm46IDAwMDA1YWM1ICBtZm46IDAwMDA1YWM1DQoNCihYRU4pIFsyMDEyLTA4LTMx
+IDIxOjMzOjQzXSAgIGdmbjogMDAwMDVhYzYgIG1mbjogMDAwMDVhYzYNCg0KKFhFTikgWzIw
+MTItMDgtMzEgMjE6MzM6NDNdICAgZ2ZuOiAwMDAwNWFjNyAgbWZuOiAwMDAwNWFjNw0KDQoo
+WEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0M10gICBnZm46IDAwMDA1YWM4ICBtZm46IDAwMDA1
+YWM4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQzXSAgIGdmbjogMDAwMDVhYzkgIG1m
+bjogMDAwMDVhYzkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDNdICAgZ2ZuOiAwMDAw
+NWFjYSAgbWZuOiAwMDAwNWFjYQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0M10gICBn
+Zm46IDAwMDA1YWNiICBtZm46IDAwMDA1YWNiDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMz
+OjQzXSAgIGdmbjogMDAwMDVhY2MgIG1mbjogMDAwMDVhY2MNCg0KKFhFTikgWzIwMTItMDgt
+MzEgMjE6MzM6NDNdICAgZ2ZuOiAwMDAwNWFjZCAgbWZuOiAwMDAwNWFjZA0KDQooWEVOKSBb
+MjAxMi0wOC0zMSAyMTozMzo0M10gICBnZm46IDAwMDA1YWNlICBtZm46IDAwMDA1YWNlDQoN
+CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQzXSAgIGdmbjogMDAwMDVhY2YgIG1mbjogMDAw
+MDVhY2YNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDNdICAgZ2ZuOiAwMDAwNWFkMCAg
+bWZuOiAwMDAwNWFkMA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0M10gICBnZm46IDAw
+MDA1YWQxICBtZm46IDAwMDA1YWQxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQzXSAg
+IGdmbjogMDAwMDVhZDIgIG1mbjogMDAwMDVhZDINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
+MzM6NDNdICAgZ2ZuOiAwMDAwNWFkMyAgbWZuOiAwMDAwNWFkMw0KDQooWEVOKSBbMjAxMi0w
+OC0zMSAyMTozMzo0M10gICBnZm46IDAwMDA1YWQ0ICBtZm46IDAwMDA1YWQ0DQoNCihYRU4p
+IFsyMDEyLTA4LTMxIDIxOjMzOjQzXSAgIGdmbjogMDAwMDVhZDUgIG1mbjogMDAwMDVhZDUN
+Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDNdICAgZ2ZuOiAwMDAwNWFkNiAgbWZuOiAw
+MDAwNWFkNg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0M10gICBnZm46IDAwMDA1YWQ3
+ICBtZm46IDAwMDA1YWQ3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQzXSAgIGdmbjog
+MDAwMDVhZDggIG1mbjogMDAwMDVhZDgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDNd
+ICAgZ2ZuOiAwMDAwNWFkOSAgbWZuOiAwMDAwNWFkOQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
+MTozMzo0M10gICBnZm46IDAwMDA1YWRhICBtZm46IDAwMDA1YWRhDQoNCihYRU4pIFsyMDEy
+LTA4LTMxIDIxOjMzOjQzXSAgIGdmbjogMDAwMDVhZGIgIG1mbjogMDAwMDVhZGINCg0KKFhF
+TikgWzIwMTItMDgtMzEgMjE6MzM6NDNdICAgZ2ZuOiAwMDAwNWFkYyAgbWZuOiAwMDAwNWFk
+Yw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0M10gICBnZm46IDAwMDA1YWRkICBtZm46
+IDAwMDA1YWRkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQzXSAgIGdmbjogMDAwMDVh
+ZGUgIG1mbjogMDAwMDVhZGUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDNdICAgZ2Zu
+OiAwMDAwNWFkZiAgbWZuOiAwMDAwNWFkZg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0
+M10gICBnZm46IDAwMDA1YWUwICBtZm46IDAwMDA1YWUwDQoNCihYRU4pIFsyMDEyLTA4LTMx
+IDIxOjMzOjQzXSAgIGdmbjogMDAwMDVhZTEgIG1mbjogMDAwMDVhZTENCg0KKFhFTikgWzIw
+MTItMDgtMzEgMjE6MzM6NDNdICAgZ2ZuOiAwMDAwNWFlMiAgbWZuOiAwMDAwNWFlMg0KDQoo
+WEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0M10gICBnZm46IDAwMDA1YWUzICBtZm46IDAwMDA1
+YWUzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQzXSAgIGdmbjogMDAwMDVhZTQgIG1m
+bjogMDAwMDVhZTQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDNdICAgZ2ZuOiAwMDAw
+NWFlNSAgbWZuOiAwMDAwNWFlNQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0M10gICBn
+Zm46IDAwMDA1YWU2ICBtZm46IDAwMDA1YWU2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMz
+OjQzXSAgIGdmbjogMDAwMDVhZTcgIG1mbjogMDAwMDVhZTcNCg0KKFhFTikgWzIwMTItMDgt
+MzEgMjE6MzM6NDNdICAgZ2ZuOiAwMDAwNWFlOCAgbWZuOiAwMDAwNWFlOA0KDQooWEVOKSBb
+MjAxMi0wOC0zMSAyMTozMzo0M10gICBnZm46IDAwMDA1YWU5ICBtZm46IDAwMDA1YWU5DQoN
+CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQzXSAgIGdmbjogMDAwMDVhZWEgIG1mbjogMDAw
+MDVhZWENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDNdICAgZ2ZuOiAwMDAwNWFlYiAg
+bWZuOiAwMDAwNWFlYg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0M10gICBnZm46IDAw
+MDA1YWVjICBtZm46IDAwMDA1YWVjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQzXSAg
+IGdmbjogMDAwMDVhZWQgIG1mbjogMDAwMDVhZWQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
+MzM6NDNdICAgZ2ZuOiAwMDAwNWFlZSAgbWZuOiAwMDAwNWFlZQ0KDQooWEVOKSBbMjAxMi0w
+OC0zMSAyMTozMzo0M10gICBnZm46IDAwMDA1YWVmICBtZm46IDAwMDA1YWVmDQoNCihYRU4p
+IFsyMDEyLTA4LTMxIDIxOjMzOjQzXSAgIGdmbjogMDAwMDVhZjAgIG1mbjogMDAwMDVhZjAN
+Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDNdICAgZ2ZuOiAwMDAwNWFmMSAgbWZuOiAw
+MDAwNWFmMQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0M10gICBnZm46IDAwMDA1YWYy
+ICBtZm46IDAwMDA1YWYyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQzXSAgIGdmbjog
+MDAwMDVhZjMgIG1mbjogMDAwMDVhZjMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDNd
+ICAgZ2ZuOiAwMDAwNWFmNCAgbWZuOiAwMDAwNWFmNA0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
+MTozMzo0M10gICBnZm46IDAwMDA1YWY1ICBtZm46IDAwMDA1YWY1DQoNCihYRU4pIFsyMDEy
+LTA4LTMxIDIxOjMzOjQzXSAgIGdmbjogMDAwMDVhZjYgIG1mbjogMDAwMDVhZjYNCg0KKFhF
+TikgWzIwMTItMDgtMzEgMjE6MzM6NDNdICAgZ2ZuOiAwMDAwNWFmNyAgbWZuOiAwMDAwNWFm
+Nw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0M10gICBnZm46IDAwMDA1YWY4ICBtZm46
+IDAwMDA1YWY4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQzXSAgIGdmbjogMDAwMDVh
+ZjkgIG1mbjogMDAwMDVhZjkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDNdICAgZ2Zu
+OiAwMDAwNWFmYSAgbWZuOiAwMDAwNWFmYQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0
+M10gICBnZm46IDAwMDA1YWZiICBtZm46IDAwMDA1YWZiDQoNCihYRU4pIFsyMDEyLTA4LTMx
+IDIxOjMzOjQzXSAgIGdmbjogMDAwMDVhZmMgIG1mbjogMDAwMDVhZmMNCg0KKFhFTikgWzIw
+MTItMDgtMzEgMjE6MzM6NDNdICAgZ2ZuOiAwMDAwNWFmZCAgbWZuOiAwMDAwNWFmZA0KDQoo
+WEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0M10gICBnZm46IDAwMDA1YWZlICBtZm46IDAwMDA1
+YWZlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQzXSAgIGdmbjogMDAwMDVhZmYgIG1m
+bjogMDAwMDVhZmYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDNdICAgZ2ZuOiAwMDAw
+NWIwMCAgbWZuOiAwMDAwNWIwMA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0M10gICBn
+Zm46IDAwMDA1YjAxICBtZm46IDAwMDA1YjAxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMz
+OjQzXSAgIGdmbjogMDAwMDViMDIgIG1mbjogMDAwMDViMDINCg0KKFhFTikgWzIwMTItMDgt
+MzEgMjE6MzM6NDNdICAgZ2ZuOiAwMDAwNWIwMyAgbWZuOiAwMDAwNWIwMw0KDQooWEVOKSBb
+MjAxMi0wOC0zMSAyMTozMzo0M10gICBnZm46IDAwMDA1YjA0ICBtZm46IDAwMDA1YjA0DQoN
+CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQzXSAgIGdmbjogMDAwMDViMDUgIG1mbjogMDAw
+MDViMDUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDRdICAgZ2ZuOiAwMDAwNWIwNiAg
+bWZuOiAwMDAwNWIwNg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0NF0gICBnZm46IDAw
+MDA1YjA3ICBtZm46IDAwMDA1YjA3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQ0XSAg
+IGdmbjogMDAwMDViMDggIG1mbjogMDAwMDViMDgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
+MzM6NDRdICAgZ2ZuOiAwMDAwNWIwOSAgbWZuOiAwMDAwNWIwOQ0KDQooWEVOKSBbMjAxMi0w
+OC0zMSAyMTozMzo0NF0gICBnZm46IDAwMDA1YjBhICBtZm46IDAwMDA1YjBhDQoNCihYRU4p
+IFsyMDEyLTA4LTMxIDIxOjMzOjQ0XSAgIGdmbjogMDAwMDViMGIgIG1mbjogMDAwMDViMGIN
+Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDRdICAgZ2ZuOiAwMDAwNWIwYyAgbWZuOiAw
+MDAwNWIwYw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0NF0gICBnZm46IDAwMDA1YjBk
+ICBtZm46IDAwMDA1YjBkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQ0XSAgIGdmbjog
+MDAwMDViMGUgIG1mbjogMDAwMDViMGUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDRd
+ICAgZ2ZuOiAwMDAwNWIwZiAgbWZuOiAwMDAwNWIwZg0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
+MTozMzo0NF0gICBnZm46IDAwMDA1YjEwICBtZm46IDAwMDA1YjEwDQoNCihYRU4pIFsyMDEy
+LTA4LTMxIDIxOjMzOjQ0XSAgIGdmbjogMDAwMDViMTEgIG1mbjogMDAwMDViMTENCg0KKFhF
+TikgWzIwMTItMDgtMzEgMjE6MzM6NDRdICAgZ2ZuOiAwMDAwNWIxMiAgbWZuOiAwMDAwNWIx
+Mg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0NF0gICBnZm46IDAwMDA1YjEzICBtZm46
+IDAwMDA1YjEzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQ0XSAgIGdmbjogMDAwMDVi
+MTQgIG1mbjogMDAwMDViMTQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDRdICAgZ2Zu
+OiAwMDAwNWIxNSAgbWZuOiAwMDAwNWIxNQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0
+NF0gICBnZm46IDAwMDA1YjE2ICBtZm46IDAwMDA1YjE2DQoNCihYRU4pIFsyMDEyLTA4LTMx
+IDIxOjMzOjQ0XSAgIGdmbjogMDAwMDViMTcgIG1mbjogMDAwMDViMTcNCg0KKFhFTikgWzIw
+MTItMDgtMzEgMjE6MzM6NDRdICAgZ2ZuOiAwMDAwNWIxOCAgbWZuOiAwMDAwNWIxOA0KDQoo
+WEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0NF0gICBnZm46IDAwMDA1YjE5ICBtZm46IDAwMDA1
+YjE5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQ0XSAgIGdmbjogMDAwMDViMWEgIG1m
+bjogMDAwMDViMWENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDRdICAgZ2ZuOiAwMDAw
+NWIxYiAgbWZuOiAwMDAwNWIxYg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0NF0gICBn
+Zm46IDAwMDA1YjFjICBtZm46IDAwMDA1YjFjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMz
+OjQ0XSAgIGdmbjogMDAwMDViMWQgIG1mbjogMDAwMDViMWQNCg0KKFhFTikgWzIwMTItMDgt
+MzEgMjE6MzM6NDRdICAgZ2ZuOiAwMDAwNWIxZSAgbWZuOiAwMDAwNWIxZQ0KDQooWEVOKSBb
+MjAxMi0wOC0zMSAyMTozMzo0NF0gICBnZm46IDAwMDA1YjFmICBtZm46IDAwMDA1YjFmDQoN
+CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQ0XSAgIGdmbjogMDAwMDViMjAgIG1mbjogMDAw
+MDViMjANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDRdICAgZ2ZuOiAwMDAwNWIyMSAg
+bWZuOiAwMDAwNWIyMQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0NF0gICBnZm46IDAw
+MDA1YjIyICBtZm46IDAwMDA1YjIyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQ0XSAg
+IGdmbjogMDAwMDViMjMgIG1mbjogMDAwMDViMjMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
+MzM6NDRdICAgZ2ZuOiAwMDAwNWIyNCAgbWZuOiAwMDAwNWIyNA0KDQooWEVOKSBbMjAxMi0w
+OC0zMSAyMTozMzo0NF0gICBnZm46IDAwMDA1YjI1ICBtZm46IDAwMDA1YjI1DQoNCihYRU4p
+IFsyMDEyLTA4LTMxIDIxOjMzOjQ0XSAgIGdmbjogMDAwMDViMjYgIG1mbjogMDAwMDViMjYN
+Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDRdICAgZ2ZuOiAwMDAwNWIyNyAgbWZuOiAw
+MDAwNWIyNw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0NF0gICBnZm46IDAwMDA1YjI4
+ICBtZm46IDAwMDA1YjI4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQ0XSAgIGdmbjog
+MDAwMDViMjkgIG1mbjogMDAwMDViMjkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDRd
+ICAgZ2ZuOiAwMDAwNWIyYSAgbWZuOiAwMDAwNWIyYQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
+MTozMzo0NF0gICBnZm46IDAwMDA1YjJiICBtZm46IDAwMDA1YjJiDQoNCihYRU4pIFsyMDEy
+LTA4LTMxIDIxOjMzOjQ0XSAgIGdmbjogMDAwMDViMmMgIG1mbjogMDAwMDViMmMNCg0KKFhF
+TikgWzIwMTItMDgtMzEgMjE6MzM6NDRdICAgZ2ZuOiAwMDAwNWIyZCAgbWZuOiAwMDAwNWIy
+ZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0NF0gICBnZm46IDAwMDA1YjJlICBtZm46
+IDAwMDA1YjJlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQ0XSAgIGdmbjogMDAwMDVi
+MmYgIG1mbjogMDAwMDViMmYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDRdICAgZ2Zu
+OiAwMDAwNWIzMCAgbWZuOiAwMDAwNWIzMA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0
+NF0gICBnZm46IDAwMDA1YjMxICBtZm46IDAwMDA1YjMxDQoNCihYRU4pIFsyMDEyLTA4LTMx
+IDIxOjMzOjQ0XSAgIGdmbjogMDAwMDViMzIgIG1mbjogMDAwMDViMzINCg0KKFhFTikgWzIw
+MTItMDgtMzEgMjE6MzM6NDRdICAgZ2ZuOiAwMDAwNWIzMyAgbWZuOiAwMDAwNWIzMw0KDQoo
+WEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0NF0gICBnZm46IDAwMDA1YjM0ICBtZm46IDAwMDA1
+YjM0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQ0XSAgIGdmbjogMDAwMDViMzUgIG1m
+bjogMDAwMDViMzUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDRdICAgZ2ZuOiAwMDAw
+NWIzNiAgbWZuOiAwMDAwNWIzNg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0NF0gICBn
+Zm46IDAwMDA1YjM3ICBtZm46IDAwMDA1YjM3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMz
+OjQ0XSAgIGdmbjogMDAwMDViMzggIG1mbjogMDAwMDViMzgNCg0KKFhFTikgWzIwMTItMDgt
+MzEgMjE6MzM6NDRdICAgZ2ZuOiAwMDAwNWIzOSAgbWZuOiAwMDAwNWIzOQ0KDQooWEVOKSBb
+MjAxMi0wOC0zMSAyMTozMzo0NF0gICBnZm46IDAwMDA1YjNhICBtZm46IDAwMDA1YjNhDQoN
+CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQ0XSAgIGdmbjogMDAwMDViM2IgIG1mbjogMDAw
+MDViM2INCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDRdICAgZ2ZuOiAwMDAwNWIzYyAg
+bWZuOiAwMDAwNWIzYw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0NF0gICBnZm46IDAw
+MDA1YjNkICBtZm46IDAwMDA1YjNkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQ0XSAg
+IGdmbjogMDAwMDViM2UgIG1mbjogMDAwMDViM2UNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
+MzM6NDRdICAgZ2ZuOiAwMDAwNWIzZiAgbWZuOiAwMDAwNWIzZg0KDQooWEVOKSBbMjAxMi0w
+OC0zMSAyMTozMzo0NF0gICBnZm46IDAwMDA1YjQwICBtZm46IDAwMDA1YjQwDQoNCihYRU4p
+IFsyMDEyLTA4LTMxIDIxOjMzOjQ0XSAgIGdmbjogMDAwMDViNDEgIG1mbjogMDAwMDViNDEN
+Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDRdICAgZ2ZuOiAwMDAwNWI0MiAgbWZuOiAw
+MDAwNWI0Mg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0NF0gICBnZm46IDAwMDA1YjQz
+ICBtZm46IDAwMDA1YjQzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQ0XSAgIGdmbjog
+MDAwMDViNDQgIG1mbjogMDAwMDViNDQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDRd
+ICAgZ2ZuOiAwMDAwNWI0NSAgbWZuOiAwMDAwNWI0NQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
+MTozMzo0NV0gICBnZm46IDAwMDA1YjQ2ICBtZm46IDAwMDA1YjQ2DQoNCihYRU4pIFsyMDEy
+LTA4LTMxIDIxOjMzOjQ1XSAgIGdmbjogMDAwMDViNDcgIG1mbjogMDAwMDViNDcNCg0KKFhF
+TikgWzIwMTItMDgtMzEgMjE6MzM6NDVdICAgZ2ZuOiAwMDAwNWI0OCAgbWZuOiAwMDAwNWI0
+OA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0NV0gICBnZm46IDAwMDA1YjQ5ICBtZm46
+IDAwMDA1YjQ5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQ1XSAgIGdmbjogMDAwMDVi
+NGEgIG1mbjogMDAwMDViNGENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDVdICAgZ2Zu
+OiAwMDAwNWI0YiAgbWZuOiAwMDAwNWI0Yg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0
+NV0gICBnZm46IDAwMDA1YjRjICBtZm46IDAwMDA1YjRjDQoNCihYRU4pIFsyMDEyLTA4LTMx
+IDIxOjMzOjQ1XSAgIGdmbjogMDAwMDViNGQgIG1mbjogMDAwMDViNGQNCg0KKFhFTikgWzIw
+MTItMDgtMzEgMjE6MzM6NDVdICAgZ2ZuOiAwMDAwNWI0ZSAgbWZuOiAwMDAwNWI0ZQ0KDQoo
+WEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0NV0gICBnZm46IDAwMDA1YjRmICBtZm46IDAwMDA1
+YjRmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQ1XSAgIGdmbjogMDAwMDViNTAgIG1m
+bjogMDAwMDViNTANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDVdICAgZ2ZuOiAwMDAw
+NWI1MSAgbWZuOiAwMDAwNWI1MQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0NV0gICBn
+Zm46IDAwMDA1YjUyICBtZm46IDAwMDA1YjUyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMz
+OjQ1XSAgIGdmbjogMDAwMDViNTMgIG1mbjogMDAwMDViNTMNCg0KKFhFTikgWzIwMTItMDgt
+MzEgMjE6MzM6NDVdICAgZ2ZuOiAwMDAwNWI1NCAgbWZuOiAwMDAwNWI1NA0KDQooWEVOKSBb
+MjAxMi0wOC0zMSAyMTozMzo0NV0gICBnZm46IDAwMDA1YjU1ICBtZm46IDAwMDA1YjU1DQoN
+CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQ1XSAgIGdmbjogMDAwMDViNTYgIG1mbjogMDAw
+MDViNTYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDVdICAgZ2ZuOiAwMDAwNWI1NyAg
+bWZuOiAwMDAwNWI1Nw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0NV0gICBnZm46IDAw
+MDA1YjU4ICBtZm46IDAwMDA1YjU4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQ1XSAg
+IGdmbjogMDAwMDViNTkgIG1mbjogMDAwMDViNTkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
+MzM6NDVdICAgZ2ZuOiAwMDAwNWI1YSAgbWZuOiAwMDAwNWI1YQ0KDQooWEVOKSBbMjAxMi0w
+OC0zMSAyMTozMzo0NV0gICBnZm46IDAwMDA1YjViICBtZm46IDAwMDA1YjViDQoNCihYRU4p
+IFsyMDEyLTA4LTMxIDIxOjMzOjQ1XSAgIGdmbjogMDAwMDViNWMgIG1mbjogMDAwMDViNWMN
+Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDVdICAgZ2ZuOiAwMDAwNWI1ZCAgbWZuOiAw
+MDAwNWI1ZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0NV0gICBnZm46IDAwMDA1YjVl
+ICBtZm46IDAwMDA1YjVlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQ1XSAgIGdmbjog
+MDAwMDViNWYgIG1mbjogMDAwMDViNWYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDVd
+ICAgZ2ZuOiAwMDAwNWI2MCAgbWZuOiAwMDAwNWI2MA0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
+MTozMzo0NV0gICBnZm46IDAwMDA1YjYxICBtZm46IDAwMDA1YjYxDQoNCihYRU4pIFsyMDEy
+LTA4LTMxIDIxOjMzOjQ1XSAgIGdmbjogMDAwMDViNjIgIG1mbjogMDAwMDViNjINCg0KKFhF
+TikgWzIwMTItMDgtMzEgMjE6MzM6NDVdICAgZ2ZuOiAwMDAwNWI2MyAgbWZuOiAwMDAwNWI2
+Mw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0NV0gICBnZm46IDAwMDA1YjY0ICBtZm46
+IDAwMDA1YjY0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQ1XSAgIGdmbjogMDAwMDVi
+NjUgIG1mbjogMDAwMDViNjUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDVdICAgZ2Zu
+OiAwMDAwNWI2NiAgbWZuOiAwMDAwNWI2Ng0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0
+NV0gICBnZm46IDAwMDA1YjY3ICBtZm46IDAwMDA1YjY3DQoNCihYRU4pIFsyMDEyLTA4LTMx
+IDIxOjMzOjQ1XSAgIGdmbjogMDAwMDViNjggIG1mbjogMDAwMDViNjgNCg0KKFhFTikgWzIw
+MTItMDgtMzEgMjE6MzM6NDVdICAgZ2ZuOiAwMDAwNWI2OSAgbWZuOiAwMDAwNWI2OQ0KDQoo
+WEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0NV0gICBnZm46IDAwMDA1YjZhICBtZm46IDAwMDA1
+YjZhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQ1XSAgIGdmbjogMDAwMDViNmIgIG1m
+bjogMDAwMDViNmINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDVdICAgZ2ZuOiAwMDAw
+NWI2YyAgbWZuOiAwMDAwNWI2Yw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0NV0gICBn
+Zm46IDAwMDA1YjZkICBtZm46IDAwMDA1YjZkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMz
+OjQ1XSAgIGdmbjogMDAwMDViNmUgIG1mbjogMDAwMDViNmUNCg0KKFhFTikgWzIwMTItMDgt
+MzEgMjE6MzM6NDVdICAgZ2ZuOiAwMDAwNWI2ZiAgbWZuOiAwMDAwNWI2Zg0KDQooWEVOKSBb
+MjAxMi0wOC0zMSAyMTozMzo0NV0gICBnZm46IDAwMDA1YjcwICBtZm46IDAwMDA1YjcwDQoN
+CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQ1XSAgIGdmbjogMDAwMDViNzEgIG1mbjogMDAw
+MDViNzENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDVdICAgZ2ZuOiAwMDAwNWI3MiAg
+bWZuOiAwMDAwNWI3Mg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0NV0gICBnZm46IDAw
+MDA1YjczICBtZm46IDAwMDA1YjczDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQ1XSAg
+IGdmbjogMDAwMDViNzQgIG1mbjogMDAwMDViNzQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
+MzM6NDVdICAgZ2ZuOiAwMDAwNWI3NSAgbWZuOiAwMDAwNWI3NQ0KDQooWEVOKSBbMjAxMi0w
+OC0zMSAyMTozMzo0NV0gICBnZm46IDAwMDA1Yjc2ICBtZm46IDAwMDA1Yjc2DQoNCihYRU4p
+IFsyMDEyLTA4LTMxIDIxOjMzOjQ1XSAgIGdmbjogMDAwMDViNzcgIG1mbjogMDAwMDViNzcN
+Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDVdICAgZ2ZuOiAwMDAwNWI3OCAgbWZuOiAw
+MDAwNWI3OA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0NV0gICBnZm46IDAwMDA1Yjc5
+ICBtZm46IDAwMDA1Yjc5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQ1XSAgIGdmbjog
+MDAwMDViN2EgIG1mbjogMDAwMDViN2ENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDVd
+ICAgZ2ZuOiAwMDAwNWI3YiAgbWZuOiAwMDAwNWI3Yg0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
+MTozMzo0NV0gICBnZm46IDAwMDA1YjdjICBtZm46IDAwMDA1YjdjDQoNCihYRU4pIFsyMDEy
+LTA4LTMxIDIxOjMzOjQ1XSAgIGdmbjogMDAwMDViN2QgIG1mbjogMDAwMDViN2QNCg0KKFhF
+TikgWzIwMTItMDgtMzEgMjE6MzM6NDVdICAgZ2ZuOiAwMDAwNWI3ZSAgbWZuOiAwMDAwNWI3
+ZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0NV0gICBnZm46IDAwMDA1YjdmICBtZm46
+IDAwMDA1YjdmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQ1XSAgIGdmbjogMDAwMDVi
+ODAgIG1mbjogMDAwMDViODANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDVdICAgZ2Zu
+OiAwMDAwNWI4MSAgbWZuOiAwMDAwNWI4MQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0
+NV0gICBnZm46IDAwMDA1YjgyICBtZm46IDAwMDA1YjgyDQoNCihYRU4pIFsyMDEyLTA4LTMx
+IDIxOjMzOjQ1XSAgIGdmbjogMDAwMDViODMgIG1mbjogMDAwMDViODMNCg0KKFhFTikgWzIw
+MTItMDgtMzEgMjE6MzM6NDVdICAgZ2ZuOiAwMDAwNWI4NCAgbWZuOiAwMDAwNWI4NA0KDQoo
+WEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0NV0gICBnZm46IDAwMDA1Yjg1ICBtZm46IDAwMDA1
+Yjg1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQ2XSAgIGdmbjogMDAwMDViODYgIG1m
+bjogMDAwMDViODYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDZdICAgZ2ZuOiAwMDAw
+NWI4NyAgbWZuOiAwMDAwNWI4Nw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0Nl0gICBn
+Zm46IDAwMDA1Yjg4ICBtZm46IDAwMDA1Yjg4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMz
+OjQ2XSAgIGdmbjogMDAwMDViODkgIG1mbjogMDAwMDViODkNCg0KKFhFTikgWzIwMTItMDgt
+MzEgMjE6MzM6NDZdICAgZ2ZuOiAwMDAwNWI4YSAgbWZuOiAwMDAwNWI4YQ0KDQooWEVOKSBb
+MjAxMi0wOC0zMSAyMTozMzo0Nl0gICBnZm46IDAwMDA1YjhiICBtZm46IDAwMDA1YjhiDQoN
+CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQ2XSAgIGdmbjogMDAwMDViOGMgIG1mbjogMDAw
+MDViOGMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDZdICAgZ2ZuOiAwMDAwNWI4ZCAg
+bWZuOiAwMDAwNWI4ZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0Nl0gICBnZm46IDAw
+MDA1YjhlICBtZm46IDAwMDA1YjhlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQ2XSAg
+IGdmbjogMDAwMDViOGYgIG1mbjogMDAwMDViOGYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
+MzM6NDZdICAgZ2ZuOiAwMDAwNWI5MCAgbWZuOiAwMDAwNWI5MA0KDQooWEVOKSBbMjAxMi0w
+OC0zMSAyMTozMzo0Nl0gICBnZm46IDAwMDA1YjkxICBtZm46IDAwMDA1YjkxDQoNCihYRU4p
+IFsyMDEyLTA4LTMxIDIxOjMzOjQ2XSAgIGdmbjogMDAwMDViOTIgIG1mbjogMDAwMDViOTIN
+Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDZdICAgZ2ZuOiAwMDAwNWI5MyAgbWZuOiAw
+MDAwNWI5Mw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0Nl0gICBnZm46IDAwMDA1Yjk0
+ICBtZm46IDAwMDA1Yjk0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQ2XSAgIGdmbjog
+MDAwMDViOTUgIG1mbjogMDAwMDViOTUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDZd
+ICAgZ2ZuOiAwMDAwNWI5NiAgbWZuOiAwMDAwNWI5Ng0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
+MTozMzo0Nl0gICBnZm46IDAwMDA1Yjk3ICBtZm46IDAwMDA1Yjk3DQoNCihYRU4pIFsyMDEy
+LTA4LTMxIDIxOjMzOjQ2XSAgIGdmbjogMDAwMDViOTggIG1mbjogMDAwMDViOTgNCg0KKFhF
+TikgWzIwMTItMDgtMzEgMjE6MzM6NDZdICAgZ2ZuOiAwMDAwNWI5OSAgbWZuOiAwMDAwNWI5
+OQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0Nl0gICBnZm46IDAwMDA1YjlhICBtZm46
+IDAwMDA1YjlhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQ2XSAgIGdmbjogMDAwMDVi
+OWIgIG1mbjogMDAwMDViOWINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDZdICAgZ2Zu
+OiAwMDAwNWI5YyAgbWZuOiAwMDAwNWI5Yw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0
+Nl0gICBnZm46IDAwMDA1YjlkICBtZm46IDAwMDA1YjlkDQoNCihYRU4pIFsyMDEyLTA4LTMx
+IDIxOjMzOjQ2XSAgIGdmbjogMDAwMDViOWUgIG1mbjogMDAwMDViOWUNCg0KKFhFTikgWzIw
+MTItMDgtMzEgMjE6MzM6NDZdICAgZ2ZuOiAwMDAwNWI5ZiAgbWZuOiAwMDAwNWI5Zg0KDQoo
+WEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0Nl0gICBnZm46IDAwMDA1YmEwICBtZm46IDAwMDA1
+YmEwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQ2XSAgIGdmbjogMDAwMDViYTEgIG1m
+bjogMDAwMDViYTENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDZdICAgZ2ZuOiAwMDAw
+NWJhMiAgbWZuOiAwMDAwNWJhMg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0Nl0gICBn
+Zm46IDAwMDA1YmEzICBtZm46IDAwMDA1YmEzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMz
+OjQ2XSAgIGdmbjogMDAwMDViYTQgIG1mbjogMDAwMDViYTQNCg0KKFhFTikgWzIwMTItMDgt
+MzEgMjE6MzM6NDZdICAgZ2ZuOiAwMDAwNWJhNSAgbWZuOiAwMDAwNWJhNQ0KDQooWEVOKSBb
+MjAxMi0wOC0zMSAyMTozMzo0Nl0gICBnZm46IDAwMDA1YmE2ICBtZm46IDAwMDA1YmE2DQoN
+CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQ2XSAgIGdmbjogMDAwMDViYTcgIG1mbjogMDAw
+MDViYTcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDZdICAgZ2ZuOiAwMDAwNWJhOCAg
+bWZuOiAwMDAwNWJhOA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0Nl0gICBnZm46IDAw
+MDA1YmE5ICBtZm46IDAwMDA1YmE5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQ2XSAg
+IGdmbjogMDAwMDViYWEgIG1mbjogMDAwMDViYWENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
+MzM6NDZdICAgZ2ZuOiAwMDAwNWJhYiAgbWZuOiAwMDAwNWJhYg0KDQooWEVOKSBbMjAxMi0w
+OC0zMSAyMTozMzo0Nl0gICBnZm46IDAwMDA1YmFjICBtZm46IDAwMDA1YmFjDQoNCihYRU4p
+IFsyMDEyLTA4LTMxIDIxOjMzOjQ2XSAgIGdmbjogMDAwMDViYWQgIG1mbjogMDAwMDViYWQN
+Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDZdICAgZ2ZuOiAwMDAwNWJhZSAgbWZuOiAw
+MDAwNWJhZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0Nl0gICBnZm46IDAwMDA1YmFm
+ICBtZm46IDAwMDA1YmFmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQ2XSAgIGdmbjog
+MDAwMDViYjAgIG1mbjogMDAwMDViYjANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDZd
+ICAgZ2ZuOiAwMDAwNWJiMSAgbWZuOiAwMDAwNWJiMQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
+MTozMzo0Nl0gICBnZm46IDAwMDA1YmIyICBtZm46IDAwMDA1YmIyDQoNCihYRU4pIFsyMDEy
+LTA4LTMxIDIxOjMzOjQ2XSAgIGdmbjogMDAwMDViYjMgIG1mbjogMDAwMDViYjMNCg0KKFhF
+TikgWzIwMTItMDgtMzEgMjE6MzM6NDZdICAgZ2ZuOiAwMDAwNWJiNCAgbWZuOiAwMDAwNWJi
+NA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0Nl0gICBnZm46IDAwMDA1YmI1ICBtZm46
+IDAwMDA1YmI1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQ2XSAgIGdmbjogMDAwMDVi
+YjYgIG1mbjogMDAwMDViYjYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDZdICAgZ2Zu
+OiAwMDAwNWJiNyAgbWZuOiAwMDAwNWJiNw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0
+Nl0gICBnZm46IDAwMDA1YmI4ICBtZm46IDAwMDA1YmI4DQoNCihYRU4pIFsyMDEyLTA4LTMx
+IDIxOjMzOjQ2XSAgIGdmbjogMDAwMDViYjkgIG1mbjogMDAwMDViYjkNCg0KKFhFTikgWzIw
+MTItMDgtMzEgMjE6MzM6NDZdICAgZ2ZuOiAwMDAwNWJiYSAgbWZuOiAwMDAwNWJiYQ0KDQoo
+WEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0Nl0gICBnZm46IDAwMDA1YmJiICBtZm46IDAwMDA1
+YmJiDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQ2XSAgIGdmbjogMDAwMDViYmMgIG1m
+bjogMDAwMDViYmMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDZdICAgZ2ZuOiAwMDAw
+NWJiZCAgbWZuOiAwMDAwNWJiZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0Nl0gICBn
+Zm46IDAwMDA1YmJlICBtZm46IDAwMDA1YmJlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMz
+OjQ2XSAgIGdmbjogMDAwMDViYmYgIG1mbjogMDAwMDViYmYNCg0KKFhFTikgWzIwMTItMDgt
+MzEgMjE6MzM6NDZdICAgZ2ZuOiAwMDAwNWJjMCAgbWZuOiAwMDAwNWJjMA0KDQooWEVOKSBb
+MjAxMi0wOC0zMSAyMTozMzo0Nl0gICBnZm46IDAwMDA1YmMxICBtZm46IDAwMDA1YmMxDQoN
+CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQ2XSAgIGdmbjogMDAwMDViYzIgIG1mbjogMDAw
+MDViYzINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDZdICAgZ2ZuOiAwMDAwNWJjMyAg
+bWZuOiAwMDAwNWJjMw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0Nl0gICBnZm46IDAw
+MDA1YmM0ICBtZm46IDAwMDA1YmM0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQ2XSAg
+IGdmbjogMDAwMDViYzUgIG1mbjogMDAwMDViYzUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
+MzM6NDddICAgZ2ZuOiAwMDAwNWJjNiAgbWZuOiAwMDAwNWJjNg0KDQooWEVOKSBbMjAxMi0w
+OC0zMSAyMTozMzo0N10gICBnZm46IDAwMDA1YmM3ICBtZm46IDAwMDA1YmM3DQoNCihYRU4p
+IFsyMDEyLTA4LTMxIDIxOjMzOjQ3XSAgIGdmbjogMDAwMDViYzggIG1mbjogMDAwMDViYzgN
+Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDddICAgZ2ZuOiAwMDAwNWJjOSAgbWZuOiAw
+MDAwNWJjOQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0N10gICBnZm46IDAwMDA1YmNh
+ICBtZm46IDAwMDA1YmNhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQ3XSAgIGdmbjog
+MDAwMDViY2IgIG1mbjogMDAwMDViY2INCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDdd
+ICAgZ2ZuOiAwMDAwNWJjYyAgbWZuOiAwMDAwNWJjYw0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
+MTozMzo0N10gICBnZm46IDAwMDA1YmNkICBtZm46IDAwMDA1YmNkDQoNCihYRU4pIFsyMDEy
+LTA4LTMxIDIxOjMzOjQ3XSAgIGdmbjogMDAwMDViY2UgIG1mbjogMDAwMDViY2UNCg0KKFhF
+TikgWzIwMTItMDgtMzEgMjE6MzM6NDddICAgZ2ZuOiAwMDAwNWJjZiAgbWZuOiAwMDAwNWJj
+Zg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0N10gICBnZm46IDAwMDA1YmQwICBtZm46
+IDAwMDA1YmQwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQ3XSAgIGdmbjogMDAwMDVi
+ZDEgIG1mbjogMDAwMDViZDENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDddICAgZ2Zu
+OiAwMDAwNWJkMiAgbWZuOiAwMDAwNWJkMg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0
+N10gICBnZm46IDAwMDA1YmQzICBtZm46IDAwMDA1YmQzDQoNCihYRU4pIFsyMDEyLTA4LTMx
+IDIxOjMzOjQ3XSAgIGdmbjogMDAwMDViZDQgIG1mbjogMDAwMDViZDQNCg0KKFhFTikgWzIw
+MTItMDgtMzEgMjE6MzM6NDddICAgZ2ZuOiAwMDAwNWJkNSAgbWZuOiAwMDAwNWJkNQ0KDQoo
+WEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0N10gICBnZm46IDAwMDA1YmQ2ICBtZm46IDAwMDA1
+YmQ2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQ3XSAgIGdmbjogMDAwMDViZDcgIG1m
+bjogMDAwMDViZDcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDddICAgZ2ZuOiAwMDAw
+NWJkOCAgbWZuOiAwMDAwNWJkOA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0N10gICBn
+Zm46IDAwMDA1YmQ5ICBtZm46IDAwMDA1YmQ5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMz
+OjQ3XSAgIGdmbjogMDAwMDViZGEgIG1mbjogMDAwMDViZGENCg0KKFhFTikgWzIwMTItMDgt
+MzEgMjE6MzM6NDddICAgZ2ZuOiAwMDAwNWJkYiAgbWZuOiAwMDAwNWJkYg0KDQooWEVOKSBb
+MjAxMi0wOC0zMSAyMTozMzo0N10gICBnZm46IDAwMDA1YmRjICBtZm46IDAwMDA1YmRjDQoN
+CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQ3XSAgIGdmbjogMDAwMDViZGQgIG1mbjogMDAw
+MDViZGQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDddICAgZ2ZuOiAwMDAwNWJkZSAg
+bWZuOiAwMDAwNWJkZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0N10gICBnZm46IDAw
+MDA1YmRmICBtZm46IDAwMDA1YmRmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQ3XSAg
+IGdmbjogMDAwMDViZTAgIG1mbjogMDAwMDViZTANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
+MzM6NDddICAgZ2ZuOiAwMDAwNWJlMSAgbWZuOiAwMDAwNWJlMQ0KDQooWEVOKSBbMjAxMi0w
+OC0zMSAyMTozMzo0N10gICBnZm46IDAwMDA1YmUyICBtZm46IDAwMDA1YmUyDQoNCihYRU4p
+IFsyMDEyLTA4LTMxIDIxOjMzOjQ3XSAgIGdmbjogMDAwMDViZTMgIG1mbjogMDAwMDViZTMN
+Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDddICAgZ2ZuOiAwMDAwNWJlNCAgbWZuOiAw
+MDAwNWJlNA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0N10gICBnZm46IDAwMDA1YmU1
+ICBtZm46IDAwMDA1YmU1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQ3XSAgIGdmbjog
+MDAwMDViZTYgIG1mbjogMDAwMDViZTYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDdd
+ICAgZ2ZuOiAwMDAwNWJlNyAgbWZuOiAwMDAwNWJlNw0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
+MTozMzo0N10gICBnZm46IDAwMDA1YmU4ICBtZm46IDAwMDA1YmU4DQoNCihYRU4pIFsyMDEy
+LTA4LTMxIDIxOjMzOjQ3XSAgIGdmbjogMDAwMDViZTkgIG1mbjogMDAwMDViZTkNCg0KKFhF
+TikgWzIwMTItMDgtMzEgMjE6MzM6NDddICAgZ2ZuOiAwMDAwNWJlYSAgbWZuOiAwMDAwNWJl
+YQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0N10gICBnZm46IDAwMDA1YmViICBtZm46
+IDAwMDA1YmViDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQ3XSAgIGdmbjogMDAwMDVi
+ZWMgIG1mbjogMDAwMDViZWMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDddICAgZ2Zu
+OiAwMDAwNWJlZCAgbWZuOiAwMDAwNWJlZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0
+N10gICBnZm46IDAwMDA1YmVlICBtZm46IDAwMDA1YmVlDQoNCihYRU4pIFsyMDEyLTA4LTMx
+IDIxOjMzOjQ3XSAgIGdmbjogMDAwMDViZWYgIG1mbjogMDAwMDViZWYNCg0KKFhFTikgWzIw
+MTItMDgtMzEgMjE6MzM6NDddICAgZ2ZuOiAwMDAwNWJmMCAgbWZuOiAwMDAwNWJmMA0KDQoo
+WEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0N10gICBnZm46IDAwMDA1YmYxICBtZm46IDAwMDA1
+YmYxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQ3XSAgIGdmbjogMDAwMDViZjIgIG1m
+bjogMDAwMDViZjINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDddICAgZ2ZuOiAwMDAw
+NWJmMyAgbWZuOiAwMDAwNWJmMw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0N10gICBn
+Zm46IDAwMDA1YmY0ICBtZm46IDAwMDA1YmY0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMz
+OjQ3XSAgIGdmbjogMDAwMDViZjUgIG1mbjogMDAwMDViZjUNCg0KKFhFTikgWzIwMTItMDgt
+MzEgMjE6MzM6NDddICAgZ2ZuOiAwMDAwNWJmNiAgbWZuOiAwMDAwNWJmNg0KDQooWEVOKSBb
+MjAxMi0wOC0zMSAyMTozMzo0N10gICBnZm46IDAwMDA1YmY3ICBtZm46IDAwMDA1YmY3DQoN
+CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQ3XSAgIGdmbjogMDAwMDViZjggIG1mbjogMDAw
+MDViZjgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDddICAgZ2ZuOiAwMDAwNWJmOSAg
+bWZuOiAwMDAwNWJmOQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0N10gICBnZm46IDAw
+MDA1YmZhICBtZm46IDAwMDA1YmZhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQ3XSAg
+IGdmbjogMDAwMDViZmIgIG1mbjogMDAwMDViZmINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
+MzM6NDddICAgZ2ZuOiAwMDAwNWJmYyAgbWZuOiAwMDAwNWJmYw0KDQooWEVOKSBbMjAxMi0w
+OC0zMSAyMTozMzo0N10gICBnZm46IDAwMDA1YmZkICBtZm46IDAwMDA1YmZkDQoNCihYRU4p
+IFsyMDEyLTA4LTMxIDIxOjMzOjQ3XSAgIGdmbjogMDAwMDViZmUgIG1mbjogMDAwMDViZmUN
+Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDddICAgZ2ZuOiAwMDAwNWJmZiAgbWZuOiAw
+MDAwNWJmZg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0N10gICBnZm46IDAwMDA1YzAw
+ICBtZm46IDAwMDA1YzAwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQ3XSAgIGdmbjog
+MDAwMDVjMDEgIG1mbjogMDAwMDVjMDENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDdd
+ICAgZ2ZuOiAwMDAwNWMwMiAgbWZuOiAwMDAwNWMwMg0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
+MTozMzo0N10gICBnZm46IDAwMDA1YzAzICBtZm46IDAwMDA1YzAzDQoNCihYRU4pIFsyMDEy
+LTA4LTMxIDIxOjMzOjQ3XSAgIGdmbjogMDAwMDVjMDQgIG1mbjogMDAwMDVjMDQNCg0KKFhF
+TikgWzIwMTItMDgtMzEgMjE6MzM6NDddICAgZ2ZuOiAwMDAwNWMwNSAgbWZuOiAwMDAwNWMw
+NQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0OF0gICBnZm46IDAwMDA1YzA2ICBtZm46
+IDAwMDA1YzA2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQ4XSAgIGdmbjogMDAwMDVj
+MDcgIG1mbjogMDAwMDVjMDcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDhdICAgZ2Zu
+OiAwMDAwNWMwOCAgbWZuOiAwMDAwNWMwOA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0
+OF0gICBnZm46IDAwMDA1YzA5ICBtZm46IDAwMDA1YzA5DQoNCihYRU4pIFsyMDEyLTA4LTMx
+IDIxOjMzOjQ4XSAgIGdmbjogMDAwMDVjMGEgIG1mbjogMDAwMDVjMGENCg0KKFhFTikgWzIw
+MTItMDgtMzEgMjE6MzM6NDhdICAgZ2ZuOiAwMDAwNWMwYiAgbWZuOiAwMDAwNWMwYg0KDQoo
+WEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0OF0gICBnZm46IDAwMDA1YzBjICBtZm46IDAwMDA1
+YzBjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQ4XSAgIGdmbjogMDAwMDVjMGQgIG1m
+bjogMDAwMDVjMGQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDhdICAgZ2ZuOiAwMDAw
+NWMwZSAgbWZuOiAwMDAwNWMwZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0OF0gICBn
+Zm46IDAwMDA1YzBmICBtZm46IDAwMDA1YzBmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMz
+OjQ4XSAgIGdmbjogMDAwMDVjMTAgIG1mbjogMDAwMDVjMTANCg0KKFhFTikgWzIwMTItMDgt
+MzEgMjE6MzM6NDhdICAgZ2ZuOiAwMDAwNWMxMSAgbWZuOiAwMDAwNWMxMQ0KDQooWEVOKSBb
+MjAxMi0wOC0zMSAyMTozMzo0OF0gICBnZm46IDAwMDA1YzEyICBtZm46IDAwMDA1YzEyDQoN
+CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQ4XSAgIGdmbjogMDAwMDVjMTMgIG1mbjogMDAw
+MDVjMTMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDhdICAgZ2ZuOiAwMDAwNWMxNCAg
+bWZuOiAwMDAwNWMxNA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0OF0gICBnZm46IDAw
+MDA1YzE1ICBtZm46IDAwMDA1YzE1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQ4XSAg
+IGdmbjogMDAwMDVjMTYgIG1mbjogMDAwMDVjMTYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
+MzM6NDhdICAgZ2ZuOiAwMDAwNWMxNyAgbWZuOiAwMDAwNWMxNw0KDQooWEVOKSBbMjAxMi0w
+OC0zMSAyMTozMzo0OF0gICBnZm46IDAwMDA1YzE4ICBtZm46IDAwMDA1YzE4DQoNCihYRU4p
+IFsyMDEyLTA4LTMxIDIxOjMzOjQ4XSAgIGdmbjogMDAwMDVjMTkgIG1mbjogMDAwMDVjMTkN
+Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDhdICAgZ2ZuOiAwMDAwNWMxYSAgbWZuOiAw
+MDAwNWMxYQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0OF0gICBnZm46IDAwMDA1YzFi
+ICBtZm46IDAwMDA1YzFiDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQ4XSAgIGdmbjog
+MDAwMDVjMWMgIG1mbjogMDAwMDVjMWMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDhd
+ICAgZ2ZuOiAwMDAwNWMxZCAgbWZuOiAwMDAwNWMxZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
+MTozMzo0OF0gICBnZm46IDAwMDA1YzFlICBtZm46IDAwMDA1YzFlDQoNCihYRU4pIFsyMDEy
+LTA4LTMxIDIxOjMzOjQ4XSAgIGdmbjogMDAwMDVjMWYgIG1mbjogMDAwMDVjMWYNCg0KKFhF
+TikgWzIwMTItMDgtMzEgMjE6MzM6NDhdICAgZ2ZuOiAwMDAwNWMyMCAgbWZuOiAwMDAwNWMy
+MA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0OF0gICBnZm46IDAwMDA1YzIxICBtZm46
+IDAwMDA1YzIxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQ4XSAgIGdmbjogMDAwMDVj
+MjIgIG1mbjogMDAwMDVjMjINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDhdICAgZ2Zu
+OiAwMDAwNWMyMyAgbWZuOiAwMDAwNWMyMw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0
+OF0gICBnZm46IDAwMDA1YzI0ICBtZm46IDAwMDA1YzI0DQoNCihYRU4pIFsyMDEyLTA4LTMx
+IDIxOjMzOjQ4XSAgIGdmbjogMDAwMDVjMjUgIG1mbjogMDAwMDVjMjUNCg0KKFhFTikgWzIw
+MTItMDgtMzEgMjE6MzM6NDhdICAgZ2ZuOiAwMDAwNWMyNiAgbWZuOiAwMDAwNWMyNg0KDQoo
+WEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0OF0gICBnZm46IDAwMDA1YzI3ICBtZm46IDAwMDA1
+YzI3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQ4XSAgIGdmbjogMDAwMDVjMjggIG1m
+bjogMDAwMDVjMjgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDhdICAgZ2ZuOiAwMDAw
+NWMyOSAgbWZuOiAwMDAwNWMyOQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0OF0gICBn
+Zm46IDAwMDA1YzJhICBtZm46IDAwMDA1YzJhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMz
+OjQ4XSAgIGdmbjogMDAwMDVjMmIgIG1mbjogMDAwMDVjMmINCg0KKFhFTikgWzIwMTItMDgt
+MzEgMjE6MzM6NDhdICAgZ2ZuOiAwMDAwNWMyYyAgbWZuOiAwMDAwNWMyYw0KDQooWEVOKSBb
+MjAxMi0wOC0zMSAyMTozMzo0OF0gICBnZm46IDAwMDA1YzJkICBtZm46IDAwMDA1YzJkDQoN
+CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQ4XSAgIGdmbjogMDAwMDVjMmUgIG1mbjogMDAw
+MDVjMmUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDhdICAgZ2ZuOiAwMDAwNWMyZiAg
+bWZuOiAwMDAwNWMyZg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0OF0gICBnZm46IDAw
+MDA1YzMwICBtZm46IDAwMDA1YzMwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQ4XSAg
+IGdmbjogMDAwMDVjMzEgIG1mbjogMDAwMDVjMzENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
+MzM6NDhdICAgZ2ZuOiAwMDAwNWMzMiAgbWZuOiAwMDAwNWMzMg0KDQooWEVOKSBbMjAxMi0w
+OC0zMSAyMTozMzo0OF0gICBnZm46IDAwMDA1YzMzICBtZm46IDAwMDA1YzMzDQoNCihYRU4p
+IFsyMDEyLTA4LTMxIDIxOjMzOjQ4XSAgIGdmbjogMDAwMDVjMzQgIG1mbjogMDAwMDVjMzQN
+Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDhdICAgZ2ZuOiAwMDAwNWMzNSAgbWZuOiAw
+MDAwNWMzNQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0OF0gICBnZm46IDAwMDA1YzM2
+ICBtZm46IDAwMDA1YzM2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQ4XSAgIGdmbjog
+MDAwMDVjMzcgIG1mbjogMDAwMDVjMzcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDhd
+ICAgZ2ZuOiAwMDAwNWMzOCAgbWZuOiAwMDAwNWMzOA0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
+MTozMzo0OF0gICBnZm46IDAwMDA1YzM5ICBtZm46IDAwMDA1YzM5DQoNCihYRU4pIFsyMDEy
+LTA4LTMxIDIxOjMzOjQ4XSAgIGdmbjogMDAwMDVjM2EgIG1mbjogMDAwMDVjM2ENCg0KKFhF
+TikgWzIwMTItMDgtMzEgMjE6MzM6NDhdICAgZ2ZuOiAwMDAwNWMzYiAgbWZuOiAwMDAwNWMz
+Yg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0OF0gICBnZm46IDAwMDA1YzNjICBtZm46
+IDAwMDA1YzNjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQ4XSAgIGdmbjogMDAwMDVj
+M2QgIG1mbjogMDAwMDVjM2QNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDhdICAgZ2Zu
+OiAwMDAwNWMzZSAgbWZuOiAwMDAwNWMzZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0
+OF0gICBnZm46IDAwMDA1YzNmICBtZm46IDAwMDA1YzNmDQoNCihYRU4pIFsyMDEyLTA4LTMx
+IDIxOjMzOjQ4XSAgIGdmbjogMDAwMDVjNDAgIG1mbjogMDAwMDVjNDANCg0KKFhFTikgWzIw
+MTItMDgtMzEgMjE6MzM6NDhdICAgZ2ZuOiAwMDAwNWM0MSAgbWZuOiAwMDAwNWM0MQ0KDQoo
+WEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0OF0gICBnZm46IDAwMDA1YzQyICBtZm46IDAwMDA1
+YzQyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQ4XSAgIGdmbjogMDAwMDVjNDMgIG1m
+bjogMDAwMDVjNDMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDhdICAgZ2ZuOiAwMDAw
+NWM0NCAgbWZuOiAwMDAwNWM0NA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0OF0gICBn
+Zm46IDAwMDA1YzQ1ICBtZm46IDAwMDA1YzQ1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMz
+OjQ5XSAgIGdmbjogMDAwMDVjNDYgIG1mbjogMDAwMDVjNDYNCg0KKFhFTikgWzIwMTItMDgt
+MzEgMjE6MzM6NDldICAgZ2ZuOiAwMDAwNWM0NyAgbWZuOiAwMDAwNWM0Nw0KDQooWEVOKSBb
+MjAxMi0wOC0zMSAyMTozMzo0OV0gICBnZm46IDAwMDA1YzQ4ICBtZm46IDAwMDA1YzQ4DQoN
+CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQ5XSAgIGdmbjogMDAwMDVjNDkgIG1mbjogMDAw
+MDVjNDkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDldICAgZ2ZuOiAwMDAwNWM0YSAg
+bWZuOiAwMDAwNWM0YQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0OV0gICBnZm46IDAw
+MDA1YzRiICBtZm46IDAwMDA1YzRiDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQ5XSAg
+IGdmbjogMDAwMDVjNGMgIG1mbjogMDAwMDVjNGMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
+MzM6NDldICAgZ2ZuOiAwMDAwNWM0ZCAgbWZuOiAwMDAwNWM0ZA0KDQooWEVOKSBbMjAxMi0w
+OC0zMSAyMTozMzo0OV0gICBnZm46IDAwMDA1YzRlICBtZm46IDAwMDA1YzRlDQoNCihYRU4p
+IFsyMDEyLTA4LTMxIDIxOjMzOjQ5XSAgIGdmbjogMDAwMDVjNGYgIG1mbjogMDAwMDVjNGYN
+Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDldICAgZ2ZuOiAwMDAwNWM1MCAgbWZuOiAw
+MDAwNWM1MA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0OV0gICBnZm46IDAwMDA1YzUx
+ICBtZm46IDAwMDA1YzUxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQ5XSAgIGdmbjog
+MDAwMDVjNTIgIG1mbjogMDAwMDVjNTINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDld
+ICAgZ2ZuOiAwMDAwNWM1MyAgbWZuOiAwMDAwNWM1Mw0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
+MTozMzo0OV0gICBnZm46IDAwMDA1YzU0ICBtZm46IDAwMDA1YzU0DQoNCihYRU4pIFsyMDEy
+LTA4LTMxIDIxOjMzOjQ5XSAgIGdmbjogMDAwMDVjNTUgIG1mbjogMDAwMDVjNTUNCg0KKFhF
+TikgWzIwMTItMDgtMzEgMjE6MzM6NDldICAgZ2ZuOiAwMDAwNWM1NiAgbWZuOiAwMDAwNWM1
+Ng0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0OV0gICBnZm46IDAwMDA1YzU3ICBtZm46
+IDAwMDA1YzU3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQ5XSAgIGdmbjogMDAwMDVj
+NTggIG1mbjogMDAwMDVjNTgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDldICAgZ2Zu
+OiAwMDAwNWM1OSAgbWZuOiAwMDAwNWM1OQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0
+OV0gICBnZm46IDAwMDA1YzVhICBtZm46IDAwMDA1YzVhDQoNCihYRU4pIFsyMDEyLTA4LTMx
+IDIxOjMzOjQ5XSAgIGdmbjogMDAwMDVjNWIgIG1mbjogMDAwMDVjNWINCg0KKFhFTikgWzIw
+MTItMDgtMzEgMjE6MzM6NDldICAgZ2ZuOiAwMDAwNWM1YyAgbWZuOiAwMDAwNWM1Yw0KDQoo
+WEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0OV0gICBnZm46IDAwMDA1YzVkICBtZm46IDAwMDA1
+YzVkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQ5XSAgIGdmbjogMDAwMDVjNWUgIG1m
+bjogMDAwMDVjNWUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDldICAgZ2ZuOiAwMDAw
+NWM1ZiAgbWZuOiAwMDAwNWM1Zg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0OV0gICBn
+Zm46IDAwMDA1YzYwICBtZm46IDAwMDA1YzYwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMz
+OjQ5XSAgIGdmbjogMDAwMDVjNjEgIG1mbjogMDAwMDVjNjENCg0KKFhFTikgWzIwMTItMDgt
+MzEgMjE6MzM6NDldICAgZ2ZuOiAwMDAwNWM2MiAgbWZuOiAwMDAwNWM2Mg0KDQooWEVOKSBb
+MjAxMi0wOC0zMSAyMTozMzo0OV0gICBnZm46IDAwMDA1YzYzICBtZm46IDAwMDA1YzYzDQoN
+CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQ5XSAgIGdmbjogMDAwMDVjNjQgIG1mbjogMDAw
+MDVjNjQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDldICAgZ2ZuOiAwMDAwNWM2NSAg
+bWZuOiAwMDAwNWM2NQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0OV0gICBnZm46IDAw
+MDA1YzY2ICBtZm46IDAwMDA1YzY2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQ5XSAg
+IGdmbjogMDAwMDVjNjcgIG1mbjogMDAwMDVjNjcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
+MzM6NDldICAgZ2ZuOiAwMDAwNWM2OCAgbWZuOiAwMDAwNWM2OA0KDQooWEVOKSBbMjAxMi0w
+OC0zMSAyMTozMzo0OV0gICBnZm46IDAwMDA1YzY5ICBtZm46IDAwMDA1YzY5DQoNCihYRU4p
+IFsyMDEyLTA4LTMxIDIxOjMzOjQ5XSAgIGdmbjogMDAwMDVjNmEgIG1mbjogMDAwMDVjNmEN
+Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDldICAgZ2ZuOiAwMDAwNWM2YiAgbWZuOiAw
+MDAwNWM2Yg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0OV0gICBnZm46IDAwMDA1YzZj
+ICBtZm46IDAwMDA1YzZjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQ5XSAgIGdmbjog
+MDAwMDVjNmQgIG1mbjogMDAwMDVjNmQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDld
+ICAgZ2ZuOiAwMDAwNWM2ZSAgbWZuOiAwMDAwNWM2ZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
+MTozMzo0OV0gICBnZm46IDAwMDA1YzZmICBtZm46IDAwMDA1YzZmDQoNCihYRU4pIFsyMDEy
+LTA4LTMxIDIxOjMzOjQ5XSAgIGdmbjogMDAwMDVjNzAgIG1mbjogMDAwMDVjNzANCg0KKFhF
+TikgWzIwMTItMDgtMzEgMjE6MzM6NDldICAgZ2ZuOiAwMDAwNWM3MSAgbWZuOiAwMDAwNWM3
+MQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0OV0gICBnZm46IDAwMDA1YzcyICBtZm46
+IDAwMDA1YzcyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQ5XSAgIGdmbjogMDAwMDVj
+NzMgIG1mbjogMDAwMDVjNzMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDldICAgZ2Zu
+OiAwMDAwNWM3NCAgbWZuOiAwMDAwNWM3NA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0
+OV0gICBnZm46IDAwMDA1Yzc1ICBtZm46IDAwMDA1Yzc1DQoNCihYRU4pIFsyMDEyLTA4LTMx
+IDIxOjMzOjQ5XSAgIGdmbjogMDAwMDVjNzYgIG1mbjogMDAwMDVjNzYNCg0KKFhFTikgWzIw
+MTItMDgtMzEgMjE6MzM6NDldICAgZ2ZuOiAwMDAwNWM3NyAgbWZuOiAwMDAwNWM3Nw0KDQoo
+WEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0OV0gICBnZm46IDAwMDA1Yzc4ICBtZm46IDAwMDA1
+Yzc4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQ5XSAgIGdmbjogMDAwMDVjNzkgIG1m
+bjogMDAwMDVjNzkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDldICAgZ2ZuOiAwMDAw
+NWM3YSAgbWZuOiAwMDAwNWM3YQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0OV0gICBn
+Zm46IDAwMDA1YzdiICBtZm46IDAwMDA1YzdiDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMz
+OjQ5XSAgIGdmbjogMDAwMDVjN2MgIG1mbjogMDAwMDVjN2MNCg0KKFhFTikgWzIwMTItMDgt
+MzEgMjE6MzM6NDldICAgZ2ZuOiAwMDAwNWM3ZCAgbWZuOiAwMDAwNWM3ZA0KDQooWEVOKSBb
+MjAxMi0wOC0zMSAyMTozMzo0OV0gICBnZm46IDAwMDA1YzdlICBtZm46IDAwMDA1YzdlDQoN
+CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQ5XSAgIGdmbjogMDAwMDVjN2YgIG1mbjogMDAw
+MDVjN2YNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDldICAgZ2ZuOiAwMDAwNWM4MCAg
+bWZuOiAwMDAwNWM4MA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0OV0gICBnZm46IDAw
+MDA1YzgxICBtZm46IDAwMDA1YzgxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQ5XSAg
+IGdmbjogMDAwMDVjODIgIG1mbjogMDAwMDVjODINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
+MzM6NDldICAgZ2ZuOiAwMDAwNWM4MyAgbWZuOiAwMDAwNWM4Mw0KDQooWEVOKSBbMjAxMi0w
+OC0zMSAyMTozMzo0OV0gICBnZm46IDAwMDA1Yzg0ICBtZm46IDAwMDA1Yzg0DQoNCihYRU4p
+IFsyMDEyLTA4LTMxIDIxOjMzOjQ5XSAgIGdmbjogMDAwMDVjODUgIG1mbjogMDAwMDVjODUN
+Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDldICAgZ2ZuOiAwMDAwNWM4NiAgbWZuOiAw
+MDAwNWM4Ng0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1MF0gICBnZm46IDAwMDA1Yzg3
+ICBtZm46IDAwMDA1Yzg3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjUwXSAgIGdmbjog
+MDAwMDVjODggIG1mbjogMDAwMDVjODgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTBd
+ICAgZ2ZuOiAwMDAwNWM4OSAgbWZuOiAwMDAwNWM4OQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
+MTozMzo1MF0gICBnZm46IDAwMDA1YzhhICBtZm46IDAwMDA1YzhhDQoNCihYRU4pIFsyMDEy
+LTA4LTMxIDIxOjMzOjUwXSAgIGdmbjogMDAwMDVjOGIgIG1mbjogMDAwMDVjOGINCg0KKFhF
+TikgWzIwMTItMDgtMzEgMjE6MzM6NTBdICAgZ2ZuOiAwMDAwNWM4YyAgbWZuOiAwMDAwNWM4
+Yw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1MF0gICBnZm46IDAwMDA1YzhkICBtZm46
+IDAwMDA1YzhkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjUwXSAgIGdmbjogMDAwMDVj
+OGUgIG1mbjogMDAwMDVjOGUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTBdICAgZ2Zu
+OiAwMDAwNWM4ZiAgbWZuOiAwMDAwNWM4Zg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1
+MF0gICBnZm46IDAwMDA1YzkwICBtZm46IDAwMDA1YzkwDQoNCihYRU4pIFsyMDEyLTA4LTMx
+IDIxOjMzOjUwXSAgIGdmbjogMDAwMDVjOTEgIG1mbjogMDAwMDVjOTENCg0KKFhFTikgWzIw
+MTItMDgtMzEgMjE6MzM6NTBdICAgZ2ZuOiAwMDAwNWM5MiAgbWZuOiAwMDAwNWM5Mg0KDQoo
+WEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1MF0gICBnZm46IDAwMDA1YzkzICBtZm46IDAwMDA1
+YzkzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjUwXSAgIGdmbjogMDAwMDVjOTQgIG1m
+bjogMDAwMDVjOTQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTBdICAgZ2ZuOiAwMDAw
+NWM5NSAgbWZuOiAwMDAwNWM5NQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1MF0gICBn
+Zm46IDAwMDA1Yzk2ICBtZm46IDAwMDA1Yzk2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMz
+OjUwXSAgIGdmbjogMDAwMDVjOTcgIG1mbjogMDAwMDVjOTcNCg0KKFhFTikgWzIwMTItMDgt
+MzEgMjE6MzM6NTBdICAgZ2ZuOiAwMDAwNWM5OCAgbWZuOiAwMDAwNWM5OA0KDQooWEVOKSBb
+MjAxMi0wOC0zMSAyMTozMzo1MF0gICBnZm46IDAwMDA1Yzk5ICBtZm46IDAwMDA1Yzk5DQoN
+CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjUwXSAgIGdmbjogMDAwMDVjOWEgIG1mbjogMDAw
+MDVjOWENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTBdICAgZ2ZuOiAwMDAwNWM5YiAg
+bWZuOiAwMDAwNWM5Yg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1MF0gICBnZm46IDAw
+MDA1YzljICBtZm46IDAwMDA1YzljDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjUwXSAg
+IGdmbjogMDAwMDVjOWQgIG1mbjogMDAwMDVjOWQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
+MzM6NTBdICAgZ2ZuOiAwMDAwNWM5ZSAgbWZuOiAwMDAwNWM5ZQ0KDQooWEVOKSBbMjAxMi0w
+OC0zMSAyMTozMzo1MF0gICBnZm46IDAwMDA1YzlmICBtZm46IDAwMDA1YzlmDQoNCihYRU4p
+IFsyMDEyLTA4LTMxIDIxOjMzOjUwXSAgIGdmbjogMDAwMDVjYTAgIG1mbjogMDAwMDVjYTAN
+Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTBdICAgZ2ZuOiAwMDAwNWNhMSAgbWZuOiAw
+MDAwNWNhMQ0KDQpbICA0OTYuNDE4NjcxXSBhKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTBd
+ICAgZ2ZuOiAwMDAwNWNhMiAgbWZuOiAwMDAwNWNhMg0KDQp0YTMuMDA6IHFjIHRpbWVvKFhF
+TikgWzIwMTItMDgtMzEgMjE6MzM6NTBdICAgZ2ZuOiAwMDAwNWNhMyAgbWZuOiAwMDAwNWNh
+Mw0KDQp1dCAoY21kIDB4ZWMpDQoNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTBdICAg
+Z2ZuOiAwMDAwNWNhNCAgbWZuOiAwMDAwNWNhNA0KDQpbICA0OTYuNDc2OTUxXSBhKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzM6NTBdICAgZ2ZuOiAwMDAwNWNhNSAgbWZuOiAwMDAwNWNhNQ0K
+DQp0YTMuMDA6IGZhaWxlZCB0byBJREVOVElGWSAoSS9PIChYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMzOjUwXSAgIGdmbjogMDAwMDVjYTYgIG1mbjogMDAwMDVjYTYNCg0KZXJyb3IsIGVycl9t
+YXNrPShYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjUwXSAgIGdmbjogMDAwMDVjYTcgIG1mbjog
+MDAwMDVjYTcNCg0KMHg0KQ0KDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjUwXSAgIGdm
+bjogMDAwMDVjYTggIG1mbjogMDAwMDVjYTgNCg0KWyAgNDk2LjU1NTkwNF0gYShYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMzOjUwXSAgIGdmbjogMDAwMDVjYTkgIG1mbjogMDAwMDVjYTkNCg0K
+dGEzLjAwOiByZXZhbGlkYShYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjUwXSAgIGdmbjogMDAw
+MDVjYWEgIG1mbjogMDAwMDVjYWENCg0KdGlvbiBmYWlsZWQgKGVycihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMzOjUwXSAgIGdmbjogMDAwMDVjYWIgIG1mbjogMDAwMDVjYWINCg0Kbm89LTUp
+DQoNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTBdICAgZ2ZuOiAwMDAwNWNhYyAgbWZu
+OiAwMDAwNWNhYw0KDQpbICA0OTYuNjM1MDE1XSBhKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6
+NTBdICAgZ2ZuOiAwMDAwNWNhZCAgbWZuOiAwMDAwNWNhZA0KDQp0YTM6IGxpbWl0aW5nIFNB
+VEEgbGluayBzcGVlZCB0byhYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjUwXSAgIGdmbjogMDAw
+MDVjYWUgIG1mbjogMDAwMDVjYWUNCg0KIDMuMCBHYnBzDQoNCg0KKFhFTikgWzIwMTItMDgt
+MzEgMjE6MzM6NTBdICAgZ2ZuOiAwMDAwNWNhZiAgbWZuOiAwMDAwNWNhZg0KDQpbICA0OTYu
+Njk3MzMwXSBhdGEzOiBoYXJkIHJlc2V0dChYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjUwXSAg
+IGdmbjogMDAwMDVjYjAgIG1mbjogMDAwMDVjYjANCg0KaW5nIGxpbmsNCg0KDQooWEVOKSBb
+MjAxMi0wOC0zMSAyMTozMzo1MF0gICBnZm46IDAwMDA1Y2IxICBtZm46IDAwMDA1Y2IxDQoN
+CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjUwXSAgIGdmbjogMDAwMDVjYjIgIG1mbjogMDAw
+MDVjYjINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTBdICAgZ2ZuOiAwMDAwNWNiMyAg
+bWZuOiAwMDAwNWNiMw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1MF0gICBnZm46IDAw
+MDA1Y2I0ICBtZm46IDAwMDA1Y2I0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjUwXSAg
+IGdmbjogMDAwMDVjYjUgIG1mbjogMDAwMDVjYjUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
+MzM6NTBdICAgZ2ZuOiAwMDAwNWNiNiAgbWZuOiAwMDAwNWNiNg0KDQooWEVOKSBbMjAxMi0w
+OC0zMSAyMTozMzo1MF0gICBnZm46IDAwMDA1Y2I3ICBtZm46IDAwMDA1Y2I3DQoNCihYRU4p
+IFsyMDEyLTA4LTMxIDIxOjMzOjUwXSAgIGdmbjogMDAwMDVjYjggIG1mbjogMDAwMDVjYjgN
+Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTBdICAgZ2ZuOiAwMDAwNWNiOSAgbWZuOiAw
+MDAwNWNiOQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1MF0gICBnZm46IDAwMDA1Y2Jh
+ICBtZm46IDAwMDA1Y2JhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjUwXSAgIGdmbjog
+MDAwMDVjYmIgIG1mbjogMDAwMDVjYmINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTBd
+ICAgZ2ZuOiAwMDAwNWNiYyAgbWZuOiAwMDAwNWNiYw0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
+MTozMzo1MF0gICBnZm46IDAwMDA1Y2JkICBtZm46IDAwMDA1Y2JkDQoNCihYRU4pIFsyMDEy
+LTA4LTMxIDIxOjMzOjUwXSAgIGdmbjogMDAwMDVjYmUgIG1mbjogMDAwMDVjYmUNCg0KKFhF
+TikgWzIwMTItMDgtMzEgMjE6MzM6NTBdICAgZ2ZuOiAwMDAwNWNiZiAgbWZuOiAwMDAwNWNi
+Zg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1MF0gICBnZm46IDAwMDA1Y2MwICBtZm46
+IDAwMDA1Y2MwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjUwXSAgIGdmbjogMDAwMDVj
+YzEgIG1mbjogMDAwMDVjYzENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTFdICAgZ2Zu
+OiAwMDAwNWNjMiAgbWZuOiAwMDAwNWNjMg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1
+MV0gICBnZm46IDAwMDA1Y2MzICBtZm46IDAwMDA1Y2MzDQoNCihYRU4pIFsyMDEyLTA4LTMx
+IDIxOjMzOjUxXSAgIGdmbjogMDAwMDVjYzQgIG1mbjogMDAwMDVjYzQNCg0KKFhFTikgWzIw
+MTItMDgtMzEgMjE6MzM6NTFdICAgZ2ZuOiAwMDAwNWNjNSAgbWZuOiAwMDAwNWNjNQ0KDQoo
+WEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1MV0gICBnZm46IDAwMDA1Y2M2ICBtZm46IDAwMDA1
+Y2M2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjUxXSAgIGdmbjogMDAwMDVjYzcgIG1m
+bjogMDAwMDVjYzcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTFdICAgZ2ZuOiAwMDAw
+NWNjOCAgbWZuOiAwMDAwNWNjOA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1MV0gICBn
+Zm46IDAwMDA1Y2M5ICBtZm46IDAwMDA1Y2M5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMz
+OjUxXSAgIGdmbjogMDAwMDVjY2EgIG1mbjogMDAwMDVjY2ENCg0KKFhFTikgWzIwMTItMDgt
+MzEgMjE6MzM6NTFdICAgZ2ZuOiAwMDAwNWNjYiAgbWZuOiAwMDAwNWNjYg0KDQooWEVOKSBb
+MjAxMi0wOC0zMSAyMTozMzo1MV0gICBnZm46IDAwMDA1Y2NjICBtZm46IDAwMDA1Y2NjDQoN
+CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjUxXSAgIGdmbjogMDAwMDVjY2QgIG1mbjogMDAw
+MDVjY2QNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTFdICAgZ2ZuOiAwMDAwNWNjZSAg
+bWZuOiAwMDAwNWNjZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1MV0gICBnZm46IDAw
+MDA1Y2NmICBtZm46IDAwMDA1Y2NmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjUxXSAg
+IGdmbjogMDAwMDVjZDAgIG1mbjogMDAwMDVjZDANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
+MzM6NTFdICAgZ2ZuOiAwMDAwNWNkMSAgbWZuOiAwMDAwNWNkMQ0KDQpbICA0OTcuMjQyMTc3
+XSBhKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTFdICAgZ2ZuOiAwMDAwNWNkMiAgbWZuOiAw
+MDAwNWNkMg0KDQp0YTM6IFNBVEEgbGluayB1KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTFd
+ICAgZ2ZuOiAwMDAwNWNkMyAgbWZuOiAwMDAwNWNkMw0KDQpwIDMuMCBHYnBzIChTU3RhdHVz
+IDEyMyBTQ29udHJvbChYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjUxXSAgIGdmbjogMDAwMDVj
+ZDQgIG1mbjogMDAwMDVjZDQNCg0KIDMyMCkNCg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+Mzo1MV0gICBnZm46IDAwMDA1Y2Q1ICBtZm46IDAwMDA1Y2Q1DQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMzOjUxXSAgIGdmbjogMDAwMDVjZDYgIG1mbjogMDAwMDVjZDYNCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzM6NTFdICAgZ2ZuOiAwMDAwNWNkNyAgbWZuOiAwMDAwNWNkNw0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1MV0gICBnZm46IDAwMDA1Y2Q4ICBtZm46IDAw
+MDA1Y2Q4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjUxXSAgIGdmbjogMDAwMDVjZDkg
+IG1mbjogMDAwMDVjZDkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTFdICAgZ2ZuOiAw
+MDAwNWNkYSAgbWZuOiAwMDAwNWNkYQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1MV0g
+ICBnZm46IDAwMDA1Y2RiICBtZm46IDAwMDA1Y2RiDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMzOjUxXSAgIGdmbjogMDAwMDVjZGMgIG1mbjogMDAwMDVjZGMNCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzM6NTFdICAgZ2ZuOiAwMDAwNWNkZCAgbWZuOiAwMDAwNWNkZA0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMzo1MV0gICBnZm46IDAwMDA1Y2RlICBtZm46IDAwMDA1Y2Rl
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjUxXSAgIGdmbjogMDAwMDVjZGYgIG1mbjog
+MDAwMDVjZGYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTFdICAgZ2ZuOiAwMDAwNWNl
+MCAgbWZuOiAwMDAwNWNlMA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1MV0gICBnZm46
+IDAwMDA1Y2UxICBtZm46IDAwMDA1Y2UxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjUx
+XSAgIGdmbjogMDAwMDVjZTIgIG1mbjogMDAwMDVjZTINCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzM6NTFdICAgZ2ZuOiAwMDAwNWNlMyAgbWZuOiAwMDAwNWNlMw0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMzo1MV0gICBnZm46IDAwMDA1Y2U0ICBtZm46IDAwMDA1Y2U0DQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMzOjUxXSAgIGdmbjogMDAwMDVjZTUgIG1mbjogMDAwMDVj
+ZTUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTFdICAgZ2ZuOiAwMDAwNWNlNiAgbWZu
+OiAwMDAwNWNlNg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1MV0gICBnZm46IDAwMDA1
+Y2U3ICBtZm46IDAwMDA1Y2U3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjUxXSAgIGdm
+bjogMDAwMDVjZTggIG1mbjogMDAwMDVjZTgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6
+NTFdICAgZ2ZuOiAwMDAwNWNlOSAgbWZuOiAwMDAwNWNlOQ0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMzo1MV0gICBnZm46IDAwMDA1Y2VhICBtZm46IDAwMDA1Y2VhDQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMzOjUxXSAgIGdmbjogMDAwMDVjZWIgIG1mbjogMDAwMDVjZWINCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTFdICAgZ2ZuOiAwMDAwNWNlYyAgbWZuOiAwMDAw
+NWNlYw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1MV0gICBnZm46IDAwMDA1Y2VkICBt
+Zm46IDAwMDA1Y2VkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjUxXSAgIGdmbjogMDAw
+MDVjZWUgIG1mbjogMDAwMDVjZWUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTFdICAg
+Z2ZuOiAwMDAwNWNlZiAgbWZuOiAwMDAwNWNlZg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+Mzo1MV0gICBnZm46IDAwMDA1Y2YwICBtZm46IDAwMDA1Y2YwDQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMzOjUxXSAgIGdmbjogMDAwMDVjZjEgIG1mbjogMDAwMDVjZjENCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzM6NTFdICAgZ2ZuOiAwMDAwNWNmMiAgbWZuOiAwMDAwNWNmMg0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1MV0gICBnZm46IDAwMDA1Y2YzICBtZm46IDAw
+MDA1Y2YzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjUxXSAgIGdmbjogMDAwMDVjZjQg
+IG1mbjogMDAwMDVjZjQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTFdICAgZ2ZuOiAw
+MDAwNWNmNSAgbWZuOiAwMDAwNWNmNQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1MV0g
+ICBnZm46IDAwMDA1Y2Y2ICBtZm46IDAwMDA1Y2Y2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMzOjUxXSAgIGdmbjogMDAwMDVjZjcgIG1mbjogMDAwMDVjZjcNCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzM6NTFdICAgZ2ZuOiAwMDAwNWNmOCAgbWZuOiAwMDAwNWNmOA0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMzo1MV0gICBnZm46IDAwMDA1Y2Y5ICBtZm46IDAwMDA1Y2Y5
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjUxXSAgIGdmbjogMDAwMDVjZmEgIG1mbjog
+MDAwMDVjZmENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTFdICAgZ2ZuOiAwMDAwNWNm
+YiAgbWZuOiAwMDAwNWNmYg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1MV0gICBnZm46
+IDAwMDA1Y2ZjICBtZm46IDAwMDA1Y2ZjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjUx
+XSAgIGdmbjogMDAwMDVjZmQgIG1mbjogMDAwMDVjZmQNCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzM6NTFdICAgZ2ZuOiAwMDAwNWNmZSAgbWZuOiAwMDAwNWNmZQ0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMzo1MV0gICBnZm46IDAwMDA1Y2ZmICBtZm46IDAwMDA1Y2ZmDQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMzOjUxXSAgIGdmbjogMDAwMDVkMDAgIG1mbjogMDAwMDVk
+MDANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTJdICAgZ2ZuOiAwMDAwNWQwMSAgbWZu
+OiAwMDAwNWQwMQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1Ml0gICBnZm46IDAwMDA1
+ZDAyICBtZm46IDAwMDA1ZDAyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjUyXSAgIGdm
+bjogMDAwMDVkMDMgIG1mbjogMDAwMDVkMDMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6
+NTJdICAgZ2ZuOiAwMDAwNWQwNCAgbWZuOiAwMDAwNWQwNA0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMzo1Ml0gICBnZm46IDAwMDA1ZDA1ICBtZm46IDAwMDA1ZDA1DQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMzOjUyXSAgIGdmbjogMDAwMDVkMDYgIG1mbjogMDAwMDVkMDYNCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTJdICAgZ2ZuOiAwMDAwNWQwNyAgbWZuOiAwMDAw
+NWQwNw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1Ml0gICBnZm46IDAwMDA1ZDA4ICBt
+Zm46IDAwMDA1ZDA4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjUyXSAgIGdmbjogMDAw
+MDVkMDkgIG1mbjogMDAwMDVkMDkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTJdICAg
+Z2ZuOiAwMDAwNWQwYSAgbWZuOiAwMDAwNWQwYQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+Mzo1Ml0gICBnZm46IDAwMDA1ZDBiICBtZm46IDAwMDA1ZDBiDQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMzOjUyXSAgIGdmbjogMDAwMDVkMGMgIG1mbjogMDAwMDVkMGMNCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzM6NTJdICAgZ2ZuOiAwMDAwNWQwZCAgbWZuOiAwMDAwNWQwZA0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1Ml0gICBnZm46IDAwMDA1ZDBlICBtZm46IDAw
+MDA1ZDBlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjUyXSAgIGdmbjogMDAwMDVkMGYg
+IG1mbjogMDAwMDVkMGYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTJdICAgZ2ZuOiAw
+MDAwNWQxMCAgbWZuOiAwMDAwNWQxMA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1Ml0g
+ICBnZm46IDAwMDA1ZDExICBtZm46IDAwMDA1ZDExDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMzOjUyXSAgIGdmbjogMDAwMDVkMTIgIG1mbjogMDAwMDVkMTINCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzM6NTJdICAgZ2ZuOiAwMDAwNWQxMyAgbWZuOiAwMDAwNWQxMw0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMzo1Ml0gICBnZm46IDAwMDA1ZDE0ICBtZm46IDAwMDA1ZDE0
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjUyXSAgIGdmbjogMDAwMDVkMTUgIG1mbjog
+MDAwMDVkMTUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTJdICAgZ2ZuOiAwMDAwNWQx
+NiAgbWZuOiAwMDAwNWQxNg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1Ml0gICBnZm46
+IDAwMDA1ZDE3ICBtZm46IDAwMDA1ZDE3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjUy
+XSAgIGdmbjogMDAwMDVkMTggIG1mbjogMDAwMDVkMTgNCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzM6NTJdICAgZ2ZuOiAwMDAwNWQxOSAgbWZuOiAwMDAwNWQxOQ0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMzo1Ml0gICBnZm46IDAwMDA1ZDFhICBtZm46IDAwMDA1ZDFhDQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMzOjUyXSAgIGdmbjogMDAwMDVkMWIgIG1mbjogMDAwMDVk
+MWINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTJdICAgZ2ZuOiAwMDAwNWQxYyAgbWZu
+OiAwMDAwNWQxYw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1Ml0gICBnZm46IDAwMDA1
+ZDFkICBtZm46IDAwMDA1ZDFkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjUyXSAgIGdm
+bjogMDAwMDVkMWUgIG1mbjogMDAwMDVkMWUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6
+NTJdICAgZ2ZuOiAwMDAwNWQxZiAgbWZuOiAwMDAwNWQxZg0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMzo1Ml0gICBnZm46IDAwMDA1ZDIwICBtZm46IDAwMDA1ZDIwDQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMzOjUyXSAgIGdmbjogMDAwMDVkMjEgIG1mbjogMDAwMDVkMjENCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTJdICAgZ2ZuOiAwMDAwNWQyMiAgbWZuOiAwMDAw
+NWQyMg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1Ml0gICBnZm46IDAwMDA1ZDIzICBt
+Zm46IDAwMDA1ZDIzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjUyXSAgIGdmbjogMDAw
+MDVkMjQgIG1mbjogMDAwMDVkMjQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTJdICAg
+Z2ZuOiAwMDAwNWQyNSAgbWZuOiAwMDAwNWQyNQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+Mzo1Ml0gICBnZm46IDAwMDA1ZDI2ICBtZm46IDAwMDA1ZDI2DQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMzOjUyXSAgIGdmbjogMDAwMDVkMjcgIG1mbjogMDAwMDVkMjcNCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzM6NTJdICAgZ2ZuOiAwMDAwNWQyOCAgbWZuOiAwMDAwNWQyOA0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1Ml0gICBnZm46IDAwMDA1ZDI5ICBtZm46IDAw
+MDA1ZDI5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjUyXSAgIGdmbjogMDAwMDVkMmEg
+IG1mbjogMDAwMDVkMmENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTJdICAgZ2ZuOiAw
+MDAwNWQyYiAgbWZuOiAwMDAwNWQyYg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1Ml0g
+ICBnZm46IDAwMDA1ZDJjICBtZm46IDAwMDA1ZDJjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMzOjUyXSAgIGdmbjogMDAwMDVkMmQgIG1mbjogMDAwMDVkMmQNCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzM6NTJdICAgZ2ZuOiAwMDAwNWQyZSAgbWZuOiAwMDAwNWQyZQ0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMzo1Ml0gICBnZm46IDAwMDA1ZDJmICBtZm46IDAwMDA1ZDJm
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjUyXSAgIGdmbjogMDAwMDVkMzAgIG1mbjog
+MDAwMDVkMzANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTJdICAgZ2ZuOiAwMDAwNWQz
+MSAgbWZuOiAwMDAwNWQzMQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1Ml0gICBnZm46
+IDAwMDA1ZDMyICBtZm46IDAwMDA1ZDMyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjUy
+XSAgIGdmbjogMDAwMDVkMzMgIG1mbjogMDAwMDVkMzMNCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzM6NTJdICAgZ2ZuOiAwMDAwNWQzNCAgbWZuOiAwMDAwNWQzNA0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMzo1Ml0gICBnZm46IDAwMDA1ZDM1ICBtZm46IDAwMDA1ZDM1DQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMzOjUyXSAgIGdmbjogMDAwMDVkMzYgIG1mbjogMDAwMDVk
+MzYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTJdICAgZ2ZuOiAwMDAwNWQzNyAgbWZu
+OiAwMDAwNWQzNw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1Ml0gICBnZm46IDAwMDA1
+ZDM4ICBtZm46IDAwMDA1ZDM4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjUyXSAgIGdm
+bjogMDAwMDVkMzkgIG1mbjogMDAwMDVkMzkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6
+NTJdICAgZ2ZuOiAwMDAwNWQzYSAgbWZuOiAwMDAwNWQzYQ0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMzo1Ml0gICBnZm46IDAwMDA1ZDNiICBtZm46IDAwMDA1ZDNiDQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMzOjUyXSAgIGdmbjogMDAwMDVkM2MgIG1mbjogMDAwMDVkM2MNCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTJdICAgZ2ZuOiAwMDAwNWQzZCAgbWZuOiAwMDAw
+NWQzZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1Ml0gICBnZm46IDAwMDA1ZDNlICBt
+Zm46IDAwMDA1ZDNlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjUyXSAgIGdmbjogMDAw
+MDVkM2YgIG1mbjogMDAwMDVkM2YNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTJdICAg
+Z2ZuOiAwMDAwNWQ0MCAgbWZuOiAwMDAwNWQ0MA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+Mzo1M10gICBnZm46IDAwMDA1ZDQxICBtZm46IDAwMDA1ZDQxDQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMzOjUzXSAgIGdmbjogMDAwMDVkNDIgIG1mbjogMDAwMDVkNDINCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzM6NTNdICAgZ2ZuOiAwMDAwNWQ0MyAgbWZuOiAwMDAwNWQ0Mw0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1M10gICBnZm46IDAwMDA1ZDQ0ICBtZm46IDAw
+MDA1ZDQ0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjUzXSAgIGdmbjogMDAwMDVkNDUg
+IG1mbjogMDAwMDVkNDUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTNdICAgZ2ZuOiAw
+MDAwNWQ0NiAgbWZuOiAwMDAwNWQ0Ng0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1M10g
+ICBnZm46IDAwMDA1ZDQ3ICBtZm46IDAwMDA1ZDQ3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMzOjUzXSAgIGdmbjogMDAwMDVkNDggIG1mbjogMDAwMDVkNDgNCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzM6NTNdICAgZ2ZuOiAwMDAwNWQ0OSAgbWZuOiAwMDAwNWQ0OQ0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMzo1M10gICBnZm46IDAwMDA1ZDRhICBtZm46IDAwMDA1ZDRh
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjUzXSAgIGdmbjogMDAwMDVkNGIgIG1mbjog
+MDAwMDVkNGINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTNdICAgZ2ZuOiAwMDAwNWQ0
+YyAgbWZuOiAwMDAwNWQ0Yw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1M10gICBnZm46
+IDAwMDA1ZDRkICBtZm46IDAwMDA1ZDRkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjUz
+XSAgIGdmbjogMDAwMDVkNGUgIG1mbjogMDAwMDVkNGUNCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzM6NTNdICAgZ2ZuOiAwMDAwNWQ0ZiAgbWZuOiAwMDAwNWQ0Zg0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMzo1M10gICBnZm46IDAwMDA1ZDUwICBtZm46IDAwMDA1ZDUwDQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMzOjUzXSAgIGdmbjogMDAwMDVkNTEgIG1mbjogMDAwMDVk
+NTENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTNdICAgZ2ZuOiAwMDAwNWQ1MiAgbWZu
+OiAwMDAwNWQ1Mg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1M10gICBnZm46IDAwMDA1
+ZDUzICBtZm46IDAwMDA1ZDUzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjUzXSAgIGdm
+bjogMDAwMDVkNTQgIG1mbjogMDAwMDVkNTQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6
+NTNdICAgZ2ZuOiAwMDAwNWQ1NSAgbWZuOiAwMDAwNWQ1NQ0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMzo1M10gICBnZm46IDAwMDA1ZDU2ICBtZm46IDAwMDA1ZDU2DQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMzOjUzXSAgIGdmbjogMDAwMDVkNTcgIG1mbjogMDAwMDVkNTcNCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTNdICAgZ2ZuOiAwMDAwNWQ1OCAgbWZuOiAwMDAw
+NWQ1OA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1M10gICBnZm46IDAwMDA1ZDU5ICBt
+Zm46IDAwMDA1ZDU5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjUzXSAgIGdmbjogMDAw
+MDVkNWEgIG1mbjogMDAwMDVkNWENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTNdICAg
+Z2ZuOiAwMDAwNWQ1YiAgbWZuOiAwMDAwNWQ1Yg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+Mzo1M10gICBnZm46IDAwMDA1ZDVjICBtZm46IDAwMDA1ZDVjDQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMzOjUzXSAgIGdmbjogMDAwMDVkNWQgIG1mbjogMDAwMDVkNWQNCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzM6NTNdICAgZ2ZuOiAwMDAwNWQ1ZSAgbWZuOiAwMDAwNWQ1ZQ0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1M10gICBnZm46IDAwMDA1ZDVmICBtZm46IDAw
+MDA1ZDVmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjUzXSAgIGdmbjogMDAwMDVkNjAg
+IG1mbjogMDAwMDVkNjANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTNdICAgZ2ZuOiAw
+MDAwNWQ2MSAgbWZuOiAwMDAwNWQ2MQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1M10g
+ICBnZm46IDAwMDA1ZDYyICBtZm46IDAwMDA1ZDYyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMzOjUzXSAgIGdmbjogMDAwMDVkNjMgIG1mbjogMDAwMDVkNjMNCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzM6NTNdICAgZ2ZuOiAwMDAwNWQ2NCAgbWZuOiAwMDAwNWQ2NA0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMzo1M10gICBnZm46IDAwMDA1ZDY1ICBtZm46IDAwMDA1ZDY1
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjUzXSAgIGdmbjogMDAwMDVkNjYgIG1mbjog
+MDAwMDVkNjYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTNdICAgZ2ZuOiAwMDAwNWQ2
+NyAgbWZuOiAwMDAwNWQ2Nw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1M10gICBnZm46
+IDAwMDA1ZDY4ICBtZm46IDAwMDA1ZDY4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjUz
+XSAgIGdmbjogMDAwMDVkNjkgIG1mbjogMDAwMDVkNjkNCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzM6NTNdICAgZ2ZuOiAwMDAwNWQ2YSAgbWZuOiAwMDAwNWQ2YQ0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMzo1M10gICBnZm46IDAwMDA1ZDZiICBtZm46IDAwMDA1ZDZiDQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMzOjUzXSAgIGdmbjogMDAwMDVkNmMgIG1mbjogMDAwMDVk
+NmMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTNdICAgZ2ZuOiAwMDAwNWQ2ZCAgbWZu
+OiAwMDAwNWQ2ZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1M10gICBnZm46IDAwMDA1
+ZDZlICBtZm46IDAwMDA1ZDZlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjUzXSAgIGdm
+bjogMDAwMDVkNmYgIG1mbjogMDAwMDVkNmYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6
+NTNdICAgZ2ZuOiAwMDAwNWQ3MCAgbWZuOiAwMDAwNWQ3MA0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMzo1M10gICBnZm46IDAwMDA1ZDcxICBtZm46IDAwMDA1ZDcxDQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMzOjUzXSAgIGdmbjogMDAwMDVkNzIgIG1mbjogMDAwMDVkNzINCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTNdICAgZ2ZuOiAwMDAwNWQ3MyAgbWZuOiAwMDAw
+NWQ3Mw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1M10gICBnZm46IDAwMDA1ZDc0ICBt
+Zm46IDAwMDA1ZDc0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjUzXSAgIGdmbjogMDAw
+MDVkNzUgIG1mbjogMDAwMDVkNzUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTNdICAg
+Z2ZuOiAwMDAwNWQ3NiAgbWZuOiAwMDAwNWQ3Ng0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+Mzo1M10gICBnZm46IDAwMDA1ZDc3ICBtZm46IDAwMDA1ZDc3DQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMzOjUzXSAgIGdmbjogMDAwMDVkNzggIG1mbjogMDAwMDVkNzgNCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzM6NTNdICAgZ2ZuOiAwMDAwNWQ3OSAgbWZuOiAwMDAwNWQ3OQ0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1M10gICBnZm46IDAwMDA1ZDdhICBtZm46IDAw
+MDA1ZDdhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjUzXSAgIGdmbjogMDAwMDVkN2Ig
+IG1mbjogMDAwMDVkN2INCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTNdICAgZ2ZuOiAw
+MDAwNWQ3YyAgbWZuOiAwMDAwNWQ3Yw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1M10g
+ICBnZm46IDAwMDA1ZDdkICBtZm46IDAwMDA1ZDdkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMzOjUzXSAgIGdmbjogMDAwMDVkN2UgIG1mbjogMDAwMDVkN2UNCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzM6NTNdICAgZ2ZuOiAwMDAwNWQ3ZiAgbWZuOiAwMDAwNWQ3Zg0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMzo1M10gICBnZm46IDAwMDA1ZDgwICBtZm46IDAwMDA1ZDgw
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjU0XSAgIGdmbjogMDAwMDVkODEgIG1mbjog
+MDAwMDVkODENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTRdICAgZ2ZuOiAwMDAwNWQ4
+MiAgbWZuOiAwMDAwNWQ4Mg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1NF0gICBnZm46
+IDAwMDA1ZDgzICBtZm46IDAwMDA1ZDgzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjU0
+XSAgIGdmbjogMDAwMDVkODQgIG1mbjogMDAwMDVkODQNCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzM6NTRdICAgZ2ZuOiAwMDAwNWQ4NSAgbWZuOiAwMDAwNWQ4NQ0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMzo1NF0gICBnZm46IDAwMDA1ZDg2ICBtZm46IDAwMDA1ZDg2DQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMzOjU0XSAgIGdmbjogMDAwMDVkODcgIG1mbjogMDAwMDVk
+ODcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTRdICAgZ2ZuOiAwMDAwNWQ4OCAgbWZu
+OiAwMDAwNWQ4OA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1NF0gICBnZm46IDAwMDA1
+ZDg5ICBtZm46IDAwMDA1ZDg5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjU0XSAgIGdm
+bjogMDAwMDVkOGEgIG1mbjogMDAwMDVkOGENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6
+NTRdICAgZ2ZuOiAwMDAwNWQ4YiAgbWZuOiAwMDAwNWQ4Yg0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMzo1NF0gICBnZm46IDAwMDA1ZDhjICBtZm46IDAwMDA1ZDhjDQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMzOjU0XSAgIGdmbjogMDAwMDVkOGQgIG1mbjogMDAwMDVkOGQNCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTRdICAgZ2ZuOiAwMDAwNWQ4ZSAgbWZuOiAwMDAw
+NWQ4ZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1NF0gICBnZm46IDAwMDA1ZDhmICBt
+Zm46IDAwMDA1ZDhmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjU0XSAgIGdmbjogMDAw
+MDVkOTAgIG1mbjogMDAwMDVkOTANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTRdICAg
+Z2ZuOiAwMDAwNWQ5MSAgbWZuOiAwMDAwNWQ5MQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+Mzo1NF0gICBnZm46IDAwMDA1ZDkyICBtZm46IDAwMDA1ZDkyDQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMzOjU0XSAgIGdmbjogMDAwMDVkOTMgIG1mbjogMDAwMDVkOTMNCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzM6NTRdICAgZ2ZuOiAwMDAwNWQ5NCAgbWZuOiAwMDAwNWQ5NA0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1NF0gICBnZm46IDAwMDA1ZDk1ICBtZm46IDAw
+MDA1ZDk1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjU0XSAgIGdmbjogMDAwMDVkOTYg
+IG1mbjogMDAwMDVkOTYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTRdICAgZ2ZuOiAw
+MDAwNWQ5NyAgbWZuOiAwMDAwNWQ5Nw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1NF0g
+ICBnZm46IDAwMDA1ZDk4ICBtZm46IDAwMDA1ZDk4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMzOjU0XSAgIGdmbjogMDAwMDVkOTkgIG1mbjogMDAwMDVkOTkNCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzM6NTRdICAgZ2ZuOiAwMDAwNWQ5YSAgbWZuOiAwMDAwNWQ5YQ0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMzo1NF0gICBnZm46IDAwMDA1ZDliICBtZm46IDAwMDA1ZDli
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjU0XSAgIGdmbjogMDAwMDVkOWMgIG1mbjog
+MDAwMDVkOWMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTRdICAgZ2ZuOiAwMDAwNWQ5
+ZCAgbWZuOiAwMDAwNWQ5ZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1NF0gICBnZm46
+IDAwMDA1ZDllICBtZm46IDAwMDA1ZDllDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjU0
+XSAgIGdmbjogMDAwMDVkOWYgIG1mbjogMDAwMDVkOWYNCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzM6NTRdICAgZ2ZuOiAwMDAwNWRhMCAgbWZuOiAwMDAwNWRhMA0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMzo1NF0gICBnZm46IDAwMDA1ZGExICBtZm46IDAwMDA1ZGExDQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMzOjU0XSAgIGdmbjogMDAwMDVkYTIgIG1mbjogMDAwMDVk
+YTINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTRdICAgZ2ZuOiAwMDAwNWRhMyAgbWZu
+OiAwMDAwNWRhMw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1NF0gICBnZm46IDAwMDA1
+ZGE0ICBtZm46IDAwMDA1ZGE0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjU0XSAgIGdm
+bjogMDAwMDVkYTUgIG1mbjogMDAwMDVkYTUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6
+NTRdICAgZ2ZuOiAwMDAwNWRhNiAgbWZuOiAwMDAwNWRhNg0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMzo1NF0gICBnZm46IDAwMDA1ZGE3ICBtZm46IDAwMDA1ZGE3DQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMzOjU0XSAgIGdmbjogMDAwMDVkYTggIG1mbjogMDAwMDVkYTgNCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTRdICAgZ2ZuOiAwMDAwNWRhOSAgbWZuOiAwMDAw
+NWRhOQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1NF0gICBnZm46IDAwMDA1ZGFhICBt
+Zm46IDAwMDA1ZGFhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjU0XSAgIGdmbjogMDAw
+MDVkYWIgIG1mbjogMDAwMDVkYWINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTRdICAg
+Z2ZuOiAwMDAwNWRhYyAgbWZuOiAwMDAwNWRhYw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+Mzo1NF0gICBnZm46IDAwMDA1ZGFkICBtZm46IDAwMDA1ZGFkDQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMzOjU0XSAgIGdmbjogMDAwMDVkYWUgIG1mbjogMDAwMDVkYWUNCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzM6NTRdICAgZ2ZuOiAwMDAwNWRhZiAgbWZuOiAwMDAwNWRhZg0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1NF0gICBnZm46IDAwMDA1ZGIwICBtZm46IDAw
+MDA1ZGIwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjU0XSAgIGdmbjogMDAwMDVkYjEg
+IG1mbjogMDAwMDVkYjENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTRdICAgZ2ZuOiAw
+MDAwNWRiMiAgbWZuOiAwMDAwNWRiMg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1NF0g
+ICBnZm46IDAwMDA1ZGIzICBtZm46IDAwMDA1ZGIzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMzOjU0XSAgIGdmbjogMDAwMDVkYjQgIG1mbjogMDAwMDVkYjQNCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzM6NTRdICAgZ2ZuOiAwMDAwNWRiNSAgbWZuOiAwMDAwNWRiNQ0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMzo1NF0gICBnZm46IDAwMDA1ZGI2ICBtZm46IDAwMDA1ZGI2
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjU0XSAgIGdmbjogMDAwMDVkYjcgIG1mbjog
+MDAwMDVkYjcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTRdICAgZ2ZuOiAwMDAwNWRi
+OCAgbWZuOiAwMDAwNWRiOA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1NF0gICBnZm46
+IDAwMDA1ZGI5ICBtZm46IDAwMDA1ZGI5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjU0
+XSAgIGdmbjogMDAwMDVkYmEgIG1mbjogMDAwMDVkYmENCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzM6NTRdICAgZ2ZuOiAwMDAwNWRiYiAgbWZuOiAwMDAwNWRiYg0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMzo1NF0gICBnZm46IDAwMDA1ZGJjICBtZm46IDAwMDA1ZGJjDQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMzOjU0XSAgIGdmbjogMDAwMDVkYmQgIG1mbjogMDAwMDVk
+YmQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTRdICAgZ2ZuOiAwMDAwNWRiZSAgbWZu
+OiAwMDAwNWRiZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1NF0gICBnZm46IDAwMDA1
+ZGJmICBtZm46IDAwMDA1ZGJmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjU0XSAgIGdm
+bjogMDAwMDVkYzAgIG1mbjogMDAwMDVkYzANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6
+NTVdICAgZ2ZuOiAwMDAwNWRjMSAgbWZuOiAwMDAwNWRjMQ0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMzo1NV0gICBnZm46IDAwMDA1ZGMyICBtZm46IDAwMDA1ZGMyDQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMzOjU1XSAgIGdmbjogMDAwMDVkYzMgIG1mbjogMDAwMDVkYzMNCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTVdICAgZ2ZuOiAwMDAwNWRjNCAgbWZuOiAwMDAw
+NWRjNA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1NV0gICBnZm46IDAwMDA1ZGM1ICBt
+Zm46IDAwMDA1ZGM1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjU1XSAgIGdmbjogMDAw
+MDVkYzYgIG1mbjogMDAwMDVkYzYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTVdICAg
+Z2ZuOiAwMDAwNWRjNyAgbWZuOiAwMDAwNWRjNw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+Mzo1NV0gICBnZm46IDAwMDA1ZGM4ICBtZm46IDAwMDA1ZGM4DQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMzOjU1XSAgIGdmbjogMDAwMDVkYzkgIG1mbjogMDAwMDVkYzkNCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzM6NTVdICAgZ2ZuOiAwMDAwNWRjYSAgbWZuOiAwMDAwNWRjYQ0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1NV0gICBnZm46IDAwMDA1ZGNiICBtZm46IDAw
+MDA1ZGNiDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjU1XSAgIGdmbjogMDAwMDVkY2Mg
+IG1mbjogMDAwMDVkY2MNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTVdICAgZ2ZuOiAw
+MDAwNWRjZCAgbWZuOiAwMDAwNWRjZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1NV0g
+ICBnZm46IDAwMDA1ZGNlICBtZm46IDAwMDA1ZGNlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMzOjU1XSAgIGdmbjogMDAwMDVkY2YgIG1mbjogMDAwMDVkY2YNCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzM6NTVdICAgZ2ZuOiAwMDAwNWRkMCAgbWZuOiAwMDAwNWRkMA0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMzo1NV0gICBnZm46IDAwMDA1ZGQxICBtZm46IDAwMDA1ZGQx
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjU1XSAgIGdmbjogMDAwMDVkZDIgIG1mbjog
+MDAwMDVkZDINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTVdICAgZ2ZuOiAwMDAwNWRk
+MyAgbWZuOiAwMDAwNWRkMw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1NV0gICBnZm46
+IDAwMDA1ZGQ0ICBtZm46IDAwMDA1ZGQ0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjU1
+XSAgIGdmbjogMDAwMDVkZDUgIG1mbjogMDAwMDVkZDUNCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzM6NTVdICAgZ2ZuOiAwMDAwNWRkNiAgbWZuOiAwMDAwNWRkNg0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMzo1NV0gICBnZm46IDAwMDA1ZGQ3ICBtZm46IDAwMDA1ZGQ3DQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMzOjU1XSAgIGdmbjogMDAwMDVkZDggIG1mbjogMDAwMDVk
+ZDgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTVdICAgZ2ZuOiAwMDAwNWRkOSAgbWZu
+OiAwMDAwNWRkOQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1NV0gICBnZm46IDAwMDA1
+ZGRhICBtZm46IDAwMDA1ZGRhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjU1XSAgIGdm
+bjogMDAwMDVkZGIgIG1mbjogMDAwMDVkZGINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6
+NTVdICAgZ2ZuOiAwMDAwNWRkYyAgbWZuOiAwMDAwNWRkYw0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMzo1NV0gICBnZm46IDAwMDA1ZGRkICBtZm46IDAwMDA1ZGRkDQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMzOjU1XSAgIGdmbjogMDAwMDVkZGUgIG1mbjogMDAwMDVkZGUNCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTVdICAgZ2ZuOiAwMDAwNWRkZiAgbWZuOiAwMDAw
+NWRkZg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1NV0gICBnZm46IDAwMDA1ZGUwICBt
+Zm46IDAwMDA1ZGUwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjU1XSAgIGdmbjogMDAw
+MDVkZTEgIG1mbjogMDAwMDVkZTENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTVdICAg
+Z2ZuOiAwMDAwNWRlMiAgbWZuOiAwMDAwNWRlMg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+Mzo1NV0gICBnZm46IDAwMDA1ZGUzICBtZm46IDAwMDA1ZGUzDQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMzOjU1XSAgIGdmbjogMDAwMDVkZTQgIG1mbjogMDAwMDVkZTQNCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzM6NTVdICAgZ2ZuOiAwMDAwNWRlNSAgbWZuOiAwMDAwNWRlNQ0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1NV0gICBnZm46IDAwMDA1ZGU2ICBtZm46IDAw
+MDA1ZGU2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjU1XSAgIGdmbjogMDAwMDVkZTcg
+IG1mbjogMDAwMDVkZTcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTVdICAgZ2ZuOiAw
+MDAwNWRlOCAgbWZuOiAwMDAwNWRlOA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1NV0g
+ICBnZm46IDAwMDA1ZGU5ICBtZm46IDAwMDA1ZGU5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMzOjU1XSAgIGdmbjogMDAwMDVkZWEgIG1mbjogMDAwMDVkZWENCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzM6NTVdICAgZ2ZuOiAwMDAwNWRlYiAgbWZuOiAwMDAwNWRlYg0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMzo1NV0gICBnZm46IDAwMDA1ZGVjICBtZm46IDAwMDA1ZGVj
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjU1XSAgIGdmbjogMDAwMDVkZWQgIG1mbjog
+MDAwMDVkZWQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTVdICAgZ2ZuOiAwMDAwNWRl
+ZSAgbWZuOiAwMDAwNWRlZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1NV0gICBnZm46
+IDAwMDA1ZGVmICBtZm46IDAwMDA1ZGVmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjU1
+XSAgIGdmbjogMDAwMDVkZjAgIG1mbjogMDAwMDVkZjANCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzM6NTVdICAgZ2ZuOiAwMDAwNWRmMSAgbWZuOiAwMDAwNWRmMQ0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMzo1NV0gICBnZm46IDAwMDA1ZGYyICBtZm46IDAwMDA1ZGYyDQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMzOjU1XSAgIGdmbjogMDAwMDVkZjMgIG1mbjogMDAwMDVk
+ZjMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTVdICAgZ2ZuOiAwMDAwNWRmNCAgbWZu
+OiAwMDAwNWRmNA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1NV0gICBnZm46IDAwMDA1
+ZGY1ICBtZm46IDAwMDA1ZGY1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjU1XSAgIGdm
+bjogMDAwMDVkZjYgIG1mbjogMDAwMDVkZjYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6
+NTVdICAgZ2ZuOiAwMDAwNWRmNyAgbWZuOiAwMDAwNWRmNw0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMzo1NV0gICBnZm46IDAwMDA1ZGY4ICBtZm46IDAwMDA1ZGY4DQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMzOjU1XSAgIGdmbjogMDAwMDVkZjkgIG1mbjogMDAwMDVkZjkNCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTVdICAgZ2ZuOiAwMDAwNWRmYSAgbWZuOiAwMDAw
+NWRmYQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1NV0gICBnZm46IDAwMDA1ZGZiICBt
+Zm46IDAwMDA1ZGZiDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjU1XSAgIGdmbjogMDAw
+MDVkZmMgIG1mbjogMDAwMDVkZmMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTVdICAg
+Z2ZuOiAwMDAwNWRmZCAgbWZuOiAwMDAwNWRmZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+Mzo1NV0gICBnZm46IDAwMDA1ZGZlICBtZm46IDAwMDA1ZGZlDQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMzOjU1XSAgIGdmbjogMDAwMDVkZmYgIG1mbjogMDAwMDVkZmYNCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzM6NTVdICAgZ2ZuOiAwMDAwNWUwMCAgbWZuOiAwMDAwNWUwMA0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1Nl0gICBnZm46IDAwMDA1ZTAxICBtZm46IDAw
+MDA1ZTAxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjU2XSAgIGdmbjogMDAwMDVlMDIg
+IG1mbjogMDAwMDVlMDINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTZdICAgZ2ZuOiAw
+MDAwNWUwMyAgbWZuOiAwMDAwNWUwMw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1Nl0g
+ICBnZm46IDAwMDA1ZTA0ICBtZm46IDAwMDA1ZTA0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMzOjU2XSAgIGdmbjogMDAwMDVlMDUgIG1mbjogMDAwMDVlMDUNCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzM6NTZdICAgZ2ZuOiAwMDAwNWUwNiAgbWZuOiAwMDAwNWUwNg0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMzo1Nl0gICBnZm46IDAwMDA1ZTA3ICBtZm46IDAwMDA1ZTA3
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjU2XSAgIGdmbjogMDAwMDVlMDggIG1mbjog
+MDAwMDVlMDgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTZdICAgZ2ZuOiAwMDAwNWUw
+OSAgbWZuOiAwMDAwNWUwOQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1Nl0gICBnZm46
+IDAwMDA1ZTBhICBtZm46IDAwMDA1ZTBhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjU2
+XSAgIGdmbjogMDAwMDVlMGIgIG1mbjogMDAwMDVlMGINCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzM6NTZdICAgZ2ZuOiAwMDAwNWUwYyAgbWZuOiAwMDAwNWUwYw0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMzo1Nl0gICBnZm46IDAwMDA1ZTBkICBtZm46IDAwMDA1ZTBkDQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMzOjU2XSAgIGdmbjogMDAwMDVlMGUgIG1mbjogMDAwMDVl
+MGUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTZdICAgZ2ZuOiAwMDAwNWUwZiAgbWZu
+OiAwMDAwNWUwZg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1Nl0gICBnZm46IDAwMDA1
+ZTEwICBtZm46IDAwMDA1ZTEwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjU2XSAgIGdm
+bjogMDAwMDVlMTEgIG1mbjogMDAwMDVlMTENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6
+NTZdICAgZ2ZuOiAwMDAwNWUxMiAgbWZuOiAwMDAwNWUxMg0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMzo1Nl0gICBnZm46IDAwMDA1ZTEzICBtZm46IDAwMDA1ZTEzDQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMzOjU2XSAgIGdmbjogMDAwMDVlMTQgIG1mbjogMDAwMDVlMTQNCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTZdICAgZ2ZuOiAwMDAwNWUxNSAgbWZuOiAwMDAw
+NWUxNQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1Nl0gICBnZm46IDAwMDA1ZTE2ICBt
+Zm46IDAwMDA1ZTE2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjU2XSAgIGdmbjogMDAw
+MDVlMTcgIG1mbjogMDAwMDVlMTcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTZdICAg
+Z2ZuOiAwMDAwNWUxOCAgbWZuOiAwMDAwNWUxOA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+Mzo1Nl0gICBnZm46IDAwMDA1ZTE5ICBtZm46IDAwMDA1ZTE5DQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMzOjU2XSAgIGdmbjogMDAwMDVlMWEgIG1mbjogMDAwMDVlMWENCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzM6NTZdICAgZ2ZuOiAwMDAwNWUxYiAgbWZuOiAwMDAwNWUxYg0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1Nl0gICBnZm46IDAwMDA1ZTFjICBtZm46IDAw
+MDA1ZTFjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjU2XSAgIGdmbjogMDAwMDVlMWQg
+IG1mbjogMDAwMDVlMWQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTZdICAgZ2ZuOiAw
+MDAwNWUxZSAgbWZuOiAwMDAwNWUxZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1Nl0g
+ICBnZm46IDAwMDA1ZTFmICBtZm46IDAwMDA1ZTFmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMzOjU2XSAgIGdmbjogMDAwMDVlMjAgIG1mbjogMDAwMDVlMjANCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzM6NTZdICAgZ2ZuOiAwMDAwNWUyMSAgbWZuOiAwMDAwNWUyMQ0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMzo1Nl0gICBnZm46IDAwMDA1ZTIyICBtZm46IDAwMDA1ZTIy
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjU2XSAgIGdmbjogMDAwMDVlMjMgIG1mbjog
+MDAwMDVlMjMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTZdICAgZ2ZuOiAwMDAwNWUy
+NCAgbWZuOiAwMDAwNWUyNA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1Nl0gICBnZm46
+IDAwMDA1ZTI1ICBtZm46IDAwMDA1ZTI1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjU2
+XSAgIGdmbjogMDAwMDVlMjYgIG1mbjogMDAwMDVlMjYNCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzM6NTZdICAgZ2ZuOiAwMDAwNWUyNyAgbWZuOiAwMDAwNWUyNw0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMzo1Nl0gICBnZm46IDAwMDA1ZTI4ICBtZm46IDAwMDA1ZTI4DQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMzOjU2XSAgIGdmbjogMDAwMDVlMjkgIG1mbjogMDAwMDVl
+MjkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTZdICAgZ2ZuOiAwMDAwNWUyYSAgbWZu
+OiAwMDAwNWUyYQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1Nl0gICBnZm46IDAwMDA1
+ZTJiICBtZm46IDAwMDA1ZTJiDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjU2XSAgIGdm
+bjogMDAwMDVlMmMgIG1mbjogMDAwMDVlMmMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6
+NTZdICAgZ2ZuOiAwMDAwNWUyZCAgbWZuOiAwMDAwNWUyZA0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMzo1Nl0gICBnZm46IDAwMDA1ZTJlICBtZm46IDAwMDA1ZTJlDQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMzOjU2XSAgIGdmbjogMDAwMDVlMmYgIG1mbjogMDAwMDVlMmYNCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTZdICAgZ2ZuOiAwMDAwNWUzMCAgbWZuOiAwMDAw
+NWUzMA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1Nl0gICBnZm46IDAwMDA1ZTMxICBt
+Zm46IDAwMDA1ZTMxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjU2XSAgIGdmbjogMDAw
+MDVlMzIgIG1mbjogMDAwMDVlMzINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTZdICAg
+Z2ZuOiAwMDAwNWUzMyAgbWZuOiAwMDAwNWUzMw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+Mzo1Nl0gICBnZm46IDAwMDA1ZTM0ICBtZm46IDAwMDA1ZTM0DQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMzOjU2XSAgIGdmbjogMDAwMDVlMzUgIG1mbjogMDAwMDVlMzUNCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzM6NTZdICAgZ2ZuOiAwMDAwNWUzNiAgbWZuOiAwMDAwNWUzNg0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1Nl0gICBnZm46IDAwMDA1ZTM3ICBtZm46IDAw
+MDA1ZTM3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjU2XSAgIGdmbjogMDAwMDVlMzgg
+IG1mbjogMDAwMDVlMzgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTZdICAgZ2ZuOiAw
+MDAwNWUzOSAgbWZuOiAwMDAwNWUzOQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1Nl0g
+ICBnZm46IDAwMDA1ZTNhICBtZm46IDAwMDA1ZTNhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMzOjU2XSAgIGdmbjogMDAwMDVlM2IgIG1mbjogMDAwMDVlM2INCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzM6NTZdICAgZ2ZuOiAwMDAwNWUzYyAgbWZuOiAwMDAwNWUzYw0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMzo1Nl0gICBnZm46IDAwMDA1ZTNkICBtZm46IDAwMDA1ZTNk
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjU2XSAgIGdmbjogMDAwMDVlM2UgIG1mbjog
+MDAwMDVlM2UNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTZdICAgZ2ZuOiAwMDAwNWUz
+ZiAgbWZuOiAwMDAwNWUzZg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1Nl0gICBnZm46
+IDAwMDA1ZTQwICBtZm46IDAwMDA1ZTQwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjU2
+XSAgIGdmbjogMDAwMDVlNDEgIG1mbjogMDAwMDVlNDENCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzM6NTddICAgZ2ZuOiAwMDAwNWU0MiAgbWZuOiAwMDAwNWU0Mg0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMzo1N10gICBnZm46IDAwMDA1ZTQzICBtZm46IDAwMDA1ZTQzDQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMzOjU3XSAgIGdmbjogMDAwMDVlNDQgIG1mbjogMDAwMDVl
+NDQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTddICAgZ2ZuOiAwMDAwNWU0NSAgbWZu
+OiAwMDAwNWU0NQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1N10gICBnZm46IDAwMDA1
+ZTQ2ICBtZm46IDAwMDA1ZTQ2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjU3XSAgIGdm
+bjogMDAwMDVlNDcgIG1mbjogMDAwMDVlNDcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6
+NTddICAgZ2ZuOiAwMDAwNWU0OCAgbWZuOiAwMDAwNWU0OA0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMzo1N10gICBnZm46IDAwMDA1ZTQ5ICBtZm46IDAwMDA1ZTQ5DQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMzOjU3XSAgIGdmbjogMDAwMDVlNGEgIG1mbjogMDAwMDVlNGENCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTddICAgZ2ZuOiAwMDAwNWU0YiAgbWZuOiAwMDAw
+NWU0Yg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1N10gICBnZm46IDAwMDA1ZTRjICBt
+Zm46IDAwMDA1ZTRjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjU3XSAgIGdmbjogMDAw
+MDVlNGQgIG1mbjogMDAwMDVlNGQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTddICAg
+Z2ZuOiAwMDAwNWU0ZSAgbWZuOiAwMDAwNWU0ZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+Mzo1N10gICBnZm46IDAwMDA1ZTRmICBtZm46IDAwMDA1ZTRmDQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMzOjU3XSAgIGdmbjogMDAwMDVlNTAgIG1mbjogMDAwMDVlNTANCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzM6NTddICAgZ2ZuOiAwMDAwNWU1MSAgbWZuOiAwMDAwNWU1MQ0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1N10gICBnZm46IDAwMDA1ZTUyICBtZm46IDAw
+MDA1ZTUyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjU3XSAgIGdmbjogMDAwMDVlNTMg
+IG1mbjogMDAwMDVlNTMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTddICAgZ2ZuOiAw
+MDAwNWU1NCAgbWZuOiAwMDAwNWU1NA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1N10g
+ICBnZm46IDAwMDA1ZTU1ICBtZm46IDAwMDA1ZTU1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMzOjU3XSAgIGdmbjogMDAwMDVlNTYgIG1mbjogMDAwMDVlNTYNCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzM6NTddICAgZ2ZuOiAwMDAwNWU1NyAgbWZuOiAwMDAwNWU1Nw0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMzo1N10gICBnZm46IDAwMDA1ZTU4ICBtZm46IDAwMDA1ZTU4
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjU3XSAgIGdmbjogMDAwMDVlNTkgIG1mbjog
+MDAwMDVlNTkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTddICAgZ2ZuOiAwMDAwNWU1
+YSAgbWZuOiAwMDAwNWU1YQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1N10gICBnZm46
+IDAwMDA1ZTViICBtZm46IDAwMDA1ZTViDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjU3
+XSAgIGdmbjogMDAwMDVlNWMgIG1mbjogMDAwMDVlNWMNCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzM6NTddICAgZ2ZuOiAwMDAwNWU1ZCAgbWZuOiAwMDAwNWU1ZA0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMzo1N10gICBnZm46IDAwMDA1ZTVlICBtZm46IDAwMDA1ZTVlDQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMzOjU3XSAgIGdmbjogMDAwMDVlNWYgIG1mbjogMDAwMDVl
+NWYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTddICAgZ2ZuOiAwMDAwNWU2MCAgbWZu
+OiAwMDAwNWU2MA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1N10gICBnZm46IDAwMDA1
+ZTYxICBtZm46IDAwMDA1ZTYxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjU3XSAgIGdm
+bjogMDAwMDVlNjIgIG1mbjogMDAwMDVlNjINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6
+NTddICAgZ2ZuOiAwMDAwNWU2MyAgbWZuOiAwMDAwNWU2Mw0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMzo1N10gICBnZm46IDAwMDA1ZTY0ICBtZm46IDAwMDA1ZTY0DQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMzOjU3XSAgIGdmbjogMDAwMDVlNjUgIG1mbjogMDAwMDVlNjUNCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTddICAgZ2ZuOiAwMDAwNWU2NiAgbWZuOiAwMDAw
+NWU2Ng0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1N10gICBnZm46IDAwMDA1ZTY3ICBt
+Zm46IDAwMDA1ZTY3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjU3XSAgIGdmbjogMDAw
+MDVlNjggIG1mbjogMDAwMDVlNjgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTddICAg
+Z2ZuOiAwMDAwNWU2OSAgbWZuOiAwMDAwNWU2OQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+Mzo1N10gICBnZm46IDAwMDA1ZTZhICBtZm46IDAwMDA1ZTZhDQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMzOjU3XSAgIGdmbjogMDAwMDVlNmIgIG1mbjogMDAwMDVlNmINCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzM6NTddICAgZ2ZuOiAwMDAwNWU2YyAgbWZuOiAwMDAwNWU2Yw0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1N10gICBnZm46IDAwMDA1ZTZkICBtZm46IDAw
+MDA1ZTZkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjU3XSAgIGdmbjogMDAwMDVlNmUg
+IG1mbjogMDAwMDVlNmUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTddICAgZ2ZuOiAw
+MDAwNWU2ZiAgbWZuOiAwMDAwNWU2Zg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1N10g
+ICBnZm46IDAwMDA1ZTcwICBtZm46IDAwMDA1ZTcwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
+OjMzOjU3XSAgIGdmbjogMDAwMDVlNzEgIG1mbjogMDAwMDVlNzENCg0KKFhFTikgWzIwMTIt
+MDgtMzEgMjE6MzM6NTddICAgZ2ZuOiAwMDAwNWU3MiAgbWZuOiAwMDAwNWU3Mg0KDQooWEVO
+KSBbMjAxMi0wOC0zMSAyMTozMzo1N10gICBnZm46IDAwMDA1ZTczICBtZm46IDAwMDA1ZTcz
+DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjU3XSAgIGdmbjogMDAwMDVlNzQgIG1mbjog
+MDAwMDVlNzQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTddICAgZ2ZuOiAwMDAwNWU3
+NSAgbWZuOiAwMDAwNWU3NQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1N10gICBnZm46
+IDAwMDA1ZTc2ICBtZm46IDAwMDA1ZTc2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjU3
+XSAgIGdmbjogMDAwMDVlNzcgIG1mbjogMDAwMDVlNzcNCg0KKFhFTikgWzIwMTItMDgtMzEg
+MjE6MzM6NTddICAgZ2ZuOiAwMDAwNWU3OCAgbWZuOiAwMDAwNWU3OA0KDQooWEVOKSBbMjAx
+Mi0wOC0zMSAyMTozMzo1N10gICBnZm46IDAwMDA1ZTc5ICBtZm46IDAwMDA1ZTc5DQoNCihY
+RU4pIFsyMDEyLTA4LTMxIDIxOjMzOjU3XSAgIGdmbjogMDAwMDVlN2EgIG1mbjogMDAwMDVl
+N2ENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTddICAgZ2ZuOiAwMDAwNWU3YiAgbWZu
+OiAwMDAwNWU3Yg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1N10gICBnZm46IDAwMDA1
+ZTdjICBtZm46IDAwMDA1ZTdjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjU3XSAgIGdm
+bjogMDAwMDVlN2QgIG1mbjogMDAwMDVlN2QNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6
+NTddICAgZ2ZuOiAwMDAwNWU3ZSAgbWZuOiAwMDAwNWU3ZQ0KDQooWEVOKSBbMjAxMi0wOC0z
+MSAyMTozMzo1N10gICBnZm46IDAwMDA1ZTdmICBtZm46IDAwMDA1ZTdmDQoNCihYRU4pIFsy
+MDEyLTA4LTMxIDIxOjMzOjU3XSAgIGdmbjogMDAwMDVlODAgIG1mbjogMDAwMDVlODANCg0K
+KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTddICAgZ2ZuOiAwMDAwNWU4MSAgbWZuOiAwMDAw
+NWU4MQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1OF0gICBnZm46IDAwMDA1ZTgyICBt
+Zm46IDAwMDA1ZTgyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjU4XSAgIGdmbjogMDAw
+MDVlODMgIG1mbjogMDAwMDVlODMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NThdICAg
+Z2ZuOiAwMDAwNWU4NCAgbWZuOiAwMDAwNWU4NA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
+Mzo1OF0gICBnZm46IDAwMDA1ZTg1ICBtZm46IDAwMDA1ZTg1DQoNCihYRU4pIFsyMDEyLTA4
+LTMxIDIxOjMzOjU4XSAgIGdmbjogMDAwMDVlODYgIG1mbjogMDAwMDVlODYNCg0KKFhFTikg
+WzIwMTItMDgtMzEgMjE6MzM6NThdICAgZ2ZuOiAwMDAwNWU4NyAgbWZuOiAwMDAwNWU4Nw0K
+DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1OF0gICBnZm46IDAwMDA1ZTg4ICBtZm46IDAw
+MDA1ZTg4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjU4XSAgIGdmbjogMDAwMDVlODkg
+IG1mbjogMDAwMDVlODk=
+------------03F05B075321531C3
+Content-Type: text/plain; charset="us-ascii"
+MIME-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Content-Disposition: inline
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
+------------03F05B075321531C3--
+
+
+
diff --git a/config/examples/test/corpus/<7392D0E0-02A4-48D7-8B16-4F93EA01F3AF@gridcentric.ca> b/config/examples/test/corpus/<7392D0E0-02A4-48D7-8B16-4F93EA01F3AF@gridcentric.ca>
new file mode 100644 (file)
index 0000000..af7b0ab
--- /dev/null
@@ -0,0 +1,337 @@
+From xen-devel-bounces@lists.xen.org Wed Aug 29 17:19:41 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 29 Aug 2012 17:19:41 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T6kzS-0008Dh-4M
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 29 Aug 2012 17:19:41 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T6kul-0008Px-NG; Wed, 29 Aug 2012 16:14:47 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <andreslc@gridcentric.ca>) id 1T6kuj-0008Pn-10
+       for xen-devel@lists.xensource.com; Wed, 29 Aug 2012 16:14:47 +0000
+Received: from [85.158.138.51:20076] by server-4.bemta-3.messagelabs.com id
+       96/81-04276-9EF3E305; Wed, 29 Aug 2012 16:14:33 +0000
+X-Env-Sender: andreslc@gridcentric.ca
+X-Msg-Ref: server-11.tower-174.messagelabs.com!1346256870!27503437!1
+X-Originating-IP: [209.85.160.43]
+X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 24107 invoked from network); 29 Aug 2012 16:14:32 -0000
+Received: from mail-pb0-f43.google.com (HELO mail-pb0-f43.google.com)
+       (209.85.160.43)
+       by server-11.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
+       29 Aug 2012 16:14:32 -0000
+Received: by pbbrq2 with SMTP id rq2so1673319pbb.30
+       for <xen-devel@lists.xensource.com>;
+       Wed, 29 Aug 2012 09:14:16 -0700 (PDT)
+X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
+       d=google.com; s=20120113;
+       h=subject:mime-version:content-type:from:in-reply-to:date:cc
+       :content-transfer-encoding:message-id:references:to:x-mailer
+       :x-gm-message-state;
+       bh=hkcsOj/tMbYR9O6C7NWOBt9CHga7CV0h95unRSZpM3g=;
+       b=lldPlFyePMAnO+k9IABsUV5Fo9qNYygIXHYE24GDCDRfJjpX26KIdxnPxVsKEIxFwK
+       M63eFiNQxWgr52N05he5LDMRvYy2sbtbSL5RW8HYTWNts4RuUkqksdUvdchI0TIvuX4p
+       zYlcRZwtldh0oyA2ocz064u4UE2nl581LvyadghQeJL/cc/RmrbgHbLmPzibtkCGw/2A
+       8eqD6a2AjLiCIQsZkC84QZpaVYFBrI9TkblwVSKTkBfGCMYQqMI7YciGw3Alt1hmaksR
+       TUdK7M0kqQz56BBvwE38IbbjRry1ecfEM3H3IILRzm33Re7uZTz1JlJahL0F8B6ALjuC
+       djBA==
+Received: by 10.68.141.46 with SMTP id rl14mr5825640pbb.2.1346256855750;
+       Wed, 29 Aug 2012 09:14:15 -0700 (PDT)
+Received: from [10.10.4.42] (0127ahost2.starwoodbroadband.com. [12.105.246.2])
+       by mx.google.com with ESMTPS id
+       gv1sm19578177pbc.38.2012.08.29.09.14.14
+       (version=TLSv1/SSLv3 cipher=OTHER);
+       Wed, 29 Aug 2012 09:14:15 -0700 (PDT)
+Mime-Version: 1.0 (Apple Message framework v1278)
+From: Andres Lagar-Cavilla <andreslc@gridcentric.ca>
+In-Reply-To: <1346246116-29999-3-git-send-email-david.vrabel@citrix.com>
+Date: Wed, 29 Aug 2012 12:14:17 -0400
+Message-Id: <7392D0E0-02A4-48D7-8B16-4F93EA01F3AF@gridcentric.ca>
+References: <1346246116-29999-1-git-send-email-david.vrabel@citrix.com>
+       <1346246116-29999-3-git-send-email-david.vrabel@citrix.com>
+To: David Vrabel <david.vrabel@citrix.com>
+X-Mailer: Apple Mail (2.1278)
+X-Gm-Message-State: ALoCoQl9bNZRiT6go1FTHwxTiz3hqeuK6eQgtRCC9iJTLrPn9aJ4vAdtb/cKKMOLzboWqaI1pmi3
+Cc: xen-devel@lists.xensource.com,
+       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="windows-1252"
+Content-Transfer-Encoding: quoted-printable
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 2/2] xen/privcmd: add PRIVCMD_MMAPBATCH_V2
+       ioctl
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+
+On Aug 29, 2012, at 9:15 AM, David Vrabel wrote:
+
+> From: David Vrabel <david.vrabel@citrix.com>
+> =
+
+> PRIVCMD_MMAPBATCH_V2 extends PRIVCMD_MMAPBATCH with an additional
+> field for reporting the error code for every frame that could not be
+> mapped.  libxc prefers PRIVCMD_MMAPBATCH_V2 over PRIVCMD_MMAPBATCH.
+> =
+
+> Signed-off-by: David Vrabel <david.vrabel@citrix.com>
+> ---
+> drivers/xen/privcmd.c |   78 +++++++++++++++++++++++++++++++++++++-------=
+----
+> include/xen/privcmd.h |   21 ++++++++++++-
+> 2 files changed, 80 insertions(+), 19 deletions(-)
+> =
+
+> diff --git a/drivers/xen/privcmd.c b/drivers/xen/privcmd.c
+> index ccee0f1..ddd32cf 100644
+> --- a/drivers/xen/privcmd.c
+> +++ b/drivers/xen/privcmd.c
+> @@ -248,18 +248,23 @@ struct mmap_batch_state {
+>      struct vm_area_struct *vma;
+>      int err;
+> =
+
+> -    xen_pfn_t __user *user;
+> +    xen_pfn_t __user *user_mfn;
+> +    int __user *user_err;
+> };
+> =
+
+> static int mmap_batch_fn(void *data, void *state)
+> {
+>      xen_pfn_t *mfnp =3D data;
+> +    int *err =3D data;
+Am I missing something or is there an aliasing here? Both mfnp and err poin=
+t to data?
+>      struct mmap_batch_state *st =3D state;
+> +    int ret;
+> =
+
+> -    if (xen_remap_domain_mfn_range(st->vma, st->va & PAGE_MASK, *mfnp, 1,
+> -                                   st->vma->vm_page_prot, st->domain) < 0) {
+> -            *mfnp |=3D 0xf0000000U;
+> -            st->err++;
+> +    ret =3D xen_remap_domain_mfn_range(st->vma, st->va & PAGE_MASK, *mfnp, =
+1,
+> +                                     st->vma->vm_page_prot, st->domain);
+> +    if (ret < 0) {
+> +            *err =3D ret;
+> +            if (st->err =3D=3D 0 || st->err =3D=3D -ENOENT)
+> +                    st->err =3D ret;
+This will unset -ENOENT if a frame after an ENOENT error fails differently.
+
+>      }
+>      st->va +=3D PAGE_SIZE;
+> =
+
+> @@ -268,18 +273,30 @@ static int mmap_batch_fn(void *data, void *state)
+> =
+
+> static int mmap_return_errors(void *data, void *state)
+> {
+> -    xen_pfn_t *mfnp =3D data;
+> +    int *err =3D data;
+>      struct mmap_batch_state *st =3D state;
+> +    int ret;
+> +
+> +    if (st->user_err)
+> +            return __put_user(*err, st->user_err++);
+> +    else {
+> +            xen_pfn_t mfn;
+> =
+
+> -    return put_user(*mfnp, st->user++);
+> +            ret =3D __get_user(mfn, st->user_mfn);
+> +            if (ret < 0)
+> +                    return ret;
+> +
+> +            mfn |=3D PRIVCMD_MMAPBATCH_MFN_ERROR;
+> +            return __put_user(mfn, st->user_mfn++);
+> +    }
+> }
+> =
+
+> static struct vm_operations_struct privcmd_vm_ops;
+> =
+
+> -static long privcmd_ioctl_mmap_batch(void __user *udata)
+> +static long privcmd_ioctl_mmap_batch(void __user *udata, int version)
+> {
+>      int ret;
+> -    struct privcmd_mmapbatch m;
+> +    struct privcmd_mmapbatch_v2 m;
+>      struct mm_struct *mm =3D current->mm;
+>      struct vm_area_struct *vma;
+>      unsigned long nr_pages;
+> @@ -289,15 +306,32 @@ static long privcmd_ioctl_mmap_batch(void __user *u=
+data)
+>      if (!xen_initial_domain())
+>              return -EPERM;
+> =
+
+> -    if (copy_from_user(&m, udata, sizeof(m)))
+> -            return -EFAULT;
+> +    switch (version) {
+> +    case 1:
+> +            if (copy_from_user(&m, udata, sizeof(struct privcmd_mmapbatch)))
+> +                    return -EFAULT;
+> +            /* Returns per-frame error in m.arr. */
+> +            m.err =3D NULL;
+> +            if (!access_ok(VERIFY_WRITE, m.arr, m.num * sizeof(*m.arr)))
+> +                    return -EFAULT;
+> +            break;
+> +    case 2:
+> +            if (copy_from_user(&m, udata, sizeof(struct privcmd_mmapbatch_v2)))
+> +                    return -EFAULT;
+> +            /* Returns per-frame error code in m.err. */
+> +            if (!access_ok(VERIFY_WRITE, m.err, m.num * (sizeof(*m.err))))
+> +                    return -EFAULT;
+> +            break;
+> +    default:
+> +            return -EINVAL;
+> +    }
+> =
+
+>      nr_pages =3D m.num;
+>      if ((m.num <=3D 0) || (nr_pages > (LONG_MAX >> PAGE_SHIFT)))
+>              return -EINVAL;
+> =
+
+>      ret =3D gather_array(&pagelist, m.num, sizeof(xen_pfn_t),
+> -                       m.arr);
+> +                       (xen_pfn_t *)m.arr);
+> =
+
+>      if (ret || list_empty(&pagelist))
+>              goto out;
+> @@ -325,12 +359,16 @@ static long privcmd_ioctl_mmap_batch(void __user *u=
+data)
+> =
+
+>      up_write(&mm->mmap_sem);
+> =
+
+> -    if (state.err > 0) {
+> -            state.user =3D m.arr;
+> +    if (state.err) {
+> +            state.user_mfn =3D (xen_pfn_t *)m.arr;
+> +            state.user_err =3D m.err;
+>              ret =3D traverse_pages(m.num, sizeof(xen_pfn_t),
+> -                           &pagelist,
+> -                           mmap_return_errors, &state);
+> -    }
+> +                                 &pagelist,
+> +                                 mmap_return_errors, &state);
+The callback now maps data to err (instead of mfnp =85 but I see no change =
+to the gather_array other than a cast =85am I missing something?
+
+Thanks
+Andres
+> +            if (!ret)
+> +                    ret =3D state.err;
+> +    } else if (m.err)
+> +            __clear_user(m.err, m.num * sizeof(*m.err));
+> =
+
+> out:
+>      free_page_list(&pagelist);
+> @@ -354,7 +392,11 @@ static long privcmd_ioctl(struct file *file,
+>              break;
+> =
+
+>      case IOCTL_PRIVCMD_MMAPBATCH:
+> -            ret =3D privcmd_ioctl_mmap_batch(udata);
+> +            ret =3D privcmd_ioctl_mmap_batch(udata, 1);
+> +            break;
+> +
+> +    case IOCTL_PRIVCMD_MMAPBATCH_V2:
+> +            ret =3D privcmd_ioctl_mmap_batch(udata, 2);
+>              break;
+> =
+
+>      default:
+> diff --git a/include/xen/privcmd.h b/include/xen/privcmd.h
+> index 17857fb..37e5255 100644
+> --- a/include/xen/privcmd.h
+> +++ b/include/xen/privcmd.h
+> @@ -59,13 +59,30 @@ struct privcmd_mmapbatch {
+>      int num;     /* number of pages to populate */
+>      domid_t dom; /* target domain */
+>      __u64 addr;  /* virtual address */
+> -    xen_pfn_t __user *arr; /* array of mfns - top nibble set on err */
+> +    xen_pfn_t __user *arr; /* array of mfns - or'd with
+> +                              PRIVCMD_MMAPBATCH_MFN_ERROR on err */
+> +};
+> +
+> +#define PRIVCMD_MMAPBATCH_MFN_ERROR 0xf0000000U
+> +
+> +struct privcmd_mmapbatch_v2 {
+> +    unsigned int num; /* number of pages to populate */
+> +    domid_t dom;      /* target domain */
+> +    __u64 addr;       /* virtual address */
+> +    const xen_pfn_t __user *arr; /* array of mfns */
+> +    int __user *err;  /* array of error codes */
+> };
+> =
+
+> /*
+>  * @cmd: IOCTL_PRIVCMD_HYPERCALL
+>  * @arg: &privcmd_hypercall_t
+>  * Return: Value returned from execution of the specified hypercall.
+> + *
+> + * @cmd: IOCTL_PRIVCMD_MMAPBATCH_V2
+> + * @arg: &struct privcmd_mmapbatch_v2
+> + * Return: 0 if all pages were mapped successfully. -ENOENT if all
+> + * failed mappings returned -ENOENT, otherwise the error code of the
+> + * first failed mapping.
+>  */
+> #define IOCTL_PRIVCMD_HYPERCALL                                      \
+>      _IOC(_IOC_NONE, 'P', 0, sizeof(struct privcmd_hypercall))
+> @@ -73,5 +90,7 @@ struct privcmd_mmapbatch {
+>      _IOC(_IOC_NONE, 'P', 2, sizeof(struct privcmd_mmap))
+> #define IOCTL_PRIVCMD_MMAPBATCH                                      \
+>      _IOC(_IOC_NONE, 'P', 3, sizeof(struct privcmd_mmapbatch))
+> +#define IOCTL_PRIVCMD_MMAPBATCH_V2                          \
+> +    _IOC(_IOC_NONE, 'P', 4, sizeof(struct privcmd_mmapbatch_v2))
+> =
+
+> #endif /* __LINUX_PUBLIC_PRIVCMD_H__ */
+> -- =
+
+> 1.7.2.5
+> =
+
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<768327829.20120904102146@eikelenboom.it> b/config/examples/test/corpus/<768327829.20120904102146@eikelenboom.it>
new file mode 100644 (file)
index 0000000..d13b35e
--- /dev/null
@@ -0,0 +1,151 @@
+From xen-devel-bounces@lists.xen.org Tue Sep 04 09:26:00 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Tue, 04 Sep 2012 09:26:00 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T8oSI-0001VJ-An
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 04 Sep 2012 09:26:00 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T8oPC-0005Ft-57; Tue, 04 Sep 2012 08:22:42 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <linux@eikelenboom.it>) id 1T8oPB-0005Fg-CN
+       for xen-devel@lists.xen.org; Tue, 04 Sep 2012 08:22:41 +0000
+Received: from [85.158.143.99:48403] by server-3.bemta-4.messagelabs.com id
+       2A/A5-08232-05AB5405; Tue, 04 Sep 2012 08:22:40 +0000
+X-Env-Sender: linux@eikelenboom.it
+X-Msg-Ref: server-10.tower-216.messagelabs.com!1346746908!21996902!1
+X-Originating-IP: [188.40.164.121]
+X-SpamReason: No, hits=0.0 required=7.0 tests=
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 20228 invoked from network); 4 Sep 2012 08:21:49 -0000
+Received: from static.121.164.40.188.clients.your-server.de (HELO
+       smtp.eikelenboom.it) (188.40.164.121)
+       by server-10.tower-216.messagelabs.com with AES256-SHA encrypted SMTP;
+       4 Sep 2012 08:21:49 -0000
+Received: from 26-69-ftth.onsneteindhoven.nl ([88.159.69.26]:49734
+       helo=[172.16.1.20])
+       by smtp.eikelenboom.it with esmtpsa (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72) (envelope-from <linux@eikelenboom.it>)
+       id 1T8oLH-0002Se-Hy; Tue, 04 Sep 2012 10:18:39 +0200
+Date: Tue, 4 Sep 2012 10:21:46 +0200
+From: Sander Eikelenboom <linux@eikelenboom.it>
+Organization: Eikelenboom IT services
+X-Priority: 3 (Normal)
+Message-ID: <768327829.20120904102146@eikelenboom.it>
+To: Wei Wang <wei.wang2@amd.com>
+In-Reply-To: <5044CAD7.8030800@amd.com>
+References: <40501859.20120902104331@eikelenboom.it>
+       <CC6932C2.3D99D%keir.xen@gmail.com>
+       <217459398.20120902171441@eikelenboom.it>
+       <5044CAD7.8030800@amd.com>
+MIME-Version: 1.0
+Cc: Keir Fraser <keir.xen@gmail.com>, Santosh Jodh <Santosh.Jodh@citrix.com>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] Using debug-key 'o:  Dump IOMMU p2m table,
+       locks up machine
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+Hello Wei,
+
+Monday, September 3, 2012, 5:20:55 PM, you wrote:
+
+> On 09/02/2012 05:14 PM, Sander Eikelenboom wrote:
+>> Sunday, September 2, 2012, 4:58:58 PM, you wrote:
+>>
+>>> On 02/09/2012 09:43, "Sander Eikelenboom"<linux@eikelenboom.it>  wrote:
+>>
+>>>>> Quite simply, there likely needs to be more tracing on the IOMMU fault path.
+>>>>> That's a separate concern from your keyhandler of course, but just saying
+>>>>> I'd be looking for the former rather than the latter, for diagnosing
+>>>>> Sander's bug.
+>>>>
+>>>> Are there any printk's I could add to get more relevant info about the AMD-Vi:
+>>>> IO_PAGE_FAULT ?
+>>
+>>> No really straightforward one. I think we need a per-IOMMU-type handler to
+>>> walk the IOMMU page table for a given virtual address, and dump every
+>>> page-table-entry on the path. Like an IOMMU version of show_page_walk().
+>>> Personally I would suspect this is more useful than the dump-everything
+>>> handlers: just give a *full* *detailed* walk for the actually interesting
+>>> virtual address (the one faulted on).
+>>
+>>>> I have attached new output from xl dmesg, this time with iommu=debug on (the
+>>>> option changed from 4.1 to 4.2).
+>>
+>>> Not easy to glean any more from that, without extra tracing such as
+>>> described above, and/or digging into the guest to find what driver-side
+>>> actions are causing the faults.
+>>
+>> OK, too bad!
+>> With xen 4.1 i haven't experienced those page faults, but a diff between /xen/drivers/passthrough/amd in both trees show quite some changes :(
+
+> Did you also update xen tools accordingly? Sometime I also saw a few 
+> IO_PAGE_FAULTs came from nic if my tools version and HV version did not 
+> match. But using recent 4.2 and corresponding xl, my tests went well.
+> BTW: You could also try iommu=no-sharept to see if it helps.
+
+I have done a make world && make install, after that checked the date on (most of) the binaries and libs.
+All should be 4.2, will try the iommu=no-sharept, but as said, this wasn't necessary with 4.1.3.
+
+
+> Thanks,
+> Wei
+
+>>>   -- Keir
+>>
+>>>>
+>>>>
+>>>>>   -- Keir
+>>>>
+>>
+>>
+>>
+>>
+>>
+>>
+
+
+
+
+
+
+-- 
+Best regards,
+ Sander                            mailto:linux@eikelenboom.it
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<7914B38A4445B34AA16EB9F1352942F1012F0F6F4AE2@SJCPMAILBOX01.citrite.net> b/config/examples/test/corpus/<7914B38A4445B34AA16EB9F1352942F1012F0F6F4AE2@SJCPMAILBOX01.citrite.net>
new file mode 100644 (file)
index 0000000..3f6df23
--- /dev/null
@@ -0,0 +1,121 @@
+From xen-devel-bounces@lists.xen.org Fri Aug 31 23:28:48 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 31 Aug 2012 23:28:48 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T7Zhm-0008Ss-A1
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 31 Aug 2012 23:28:48 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T7Ze7-0007or-IG; Fri, 31 Aug 2012 22:24:59 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Santosh.Jodh@citrix.com>) id 1T7Ze5-0007oj-1p
+       for xen-devel@lists.xen.org; Fri, 31 Aug 2012 22:24:57 +0000
+Received: from [85.158.143.99:50160] by server-1.bemta-4.messagelabs.com id
+       FB/82-12504-8B931405; Fri, 31 Aug 2012 22:24:56 +0000
+X-Env-Sender: Santosh.Jodh@citrix.com
+X-Msg-Ref: server-2.tower-216.messagelabs.com!1346451891!22594600!1
+X-Originating-IP: [66.165.176.63]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyNzU0NjM=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 32714 invoked from network); 31 Aug 2012 22:24:54 -0000
+Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
+       by server-2.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
+       31 Aug 2012 22:24:54 -0000
+X-IronPort-AV: E=Sophos;i="4.80,349,1344211200"; d="scan'208";a="206834383"
+Received: from sjcpmailmx01.citrite.net ([10.216.14.74])
+       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       31 Aug 2012 22:24:50 +0000
+Received: from SJCPMAILBOX01.citrite.net ([10.216.4.72]) by
+       SJCPMAILMX01.citrite.net ([10.216.14.74]) with mapi; Fri, 31 Aug 2012
+       15:24:50 -0700
+From: Santosh Jodh <Santosh.Jodh@citrix.com>
+To: Sander Eikelenboom <linux@eikelenboom.it>, "wei.wang2@amd.com"
+       <wei.wang2@amd.com>
+Date: Fri, 31 Aug 2012 15:24:32 -0700
+Thread-Topic: Using debug-key 'o:  Dump IOMMU p2m table, locks up machine
+Thread-Index: Ac2HweyIv5hYCE9zTGOx/ZCh1l3JGQAAw+qw
+Message-ID: <7914B38A4445B34AA16EB9F1352942F1012F0F6F4AE2@SJCPMAILBOX01.citrite.net>
+References: <647712821.20120831234512@eikelenboom.it>
+In-Reply-To: <647712821.20120831234512@eikelenboom.it>
+Accept-Language: en-US
+Content-Language: en-US
+X-MS-Has-Attach: 
+X-MS-TNEF-Correlator: 
+acceptlanguage: en-US
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] Using debug-key 'o:  Dump IOMMU p2m table,
+       locks up machine
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+Depending on how many VMs you have and the size of the IOMMU p2m table, it can take a while. It should not be infinite though. 
+
+How many VMs do you have running?
+
+Can you please send the serial output when you press 'o'?
+
+Santosh
+
+> -----Original Message-----
+> From: Sander Eikelenboom [mailto:linux@eikelenboom.it]
+> Sent: Friday, August 31, 2012 2:45 PM
+> To: Santosh Jodh; wei.wang2@amd.com
+> Cc: xen-devel@lists.xen.org
+> Subject: Using debug-key 'o: Dump IOMMU p2m table, locks up machine
+> 
+> 
+> I was trying to use the 'o' debug key to make a bug report about an "AMD-Vi:
+> IO_PAGE_FAULT".
+> 
+> The result:
+> - When using "xl debug-keys o", the machine seems in a infinite loop, can
+> hardly login, eventually resulting in a kernel RCU stall and complete lockup.
+> - When using serial console: I get a infinite stream of "gfn:  mfn: " lines, mean
+> while on the normal console, S-ATA devices are starting to give errors.
+> 
+> So either option trashes the machine, other debug-keys work fine.
+> 
+> Machine has a 890-fx chipset and AMD phenom x6 proc.
+> 
+> xl dmesg with bootup and output from some other debug-keys is attached.
+> 
+> --
+> 
+> Sander
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<7914B38A4445B34AA16EB9F1352942F1012F0F6F4B01@SJCPMAILBOX01.citrite.net> b/config/examples/test/corpus/<7914B38A4445B34AA16EB9F1352942F1012F0F6F4B01@SJCPMAILBOX01.citrite.net>
new file mode 100644 (file)
index 0000000..017e4ea
--- /dev/null
@@ -0,0 +1,156 @@
+From xen-devel-bounces@lists.xen.org Sat Sep 01 00:03:12 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Sat, 01 Sep 2012 00:03:12 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T7aF4-00006r-88
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Sat, 01 Sep 2012 00:03:12 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T7aAD-0008HA-8J; Fri, 31 Aug 2012 22:58:09 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Santosh.Jodh@citrix.com>) id 1T7aAB-0008H5-KM
+       for xen-devel@lists.xen.org; Fri, 31 Aug 2012 22:58:07 +0000
+Received: from [85.158.143.35:41071] by server-1.bemta-4.messagelabs.com id
+       22/8C-12504-E7141405; Fri, 31 Aug 2012 22:58:06 +0000
+X-Env-Sender: Santosh.Jodh@citrix.com
+X-Msg-Ref: server-16.tower-21.messagelabs.com!1346453883!13621648!1
+X-Originating-IP: [66.165.176.89]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNjc1NTc=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 4582 invoked from network); 31 Aug 2012 22:58:04 -0000
+Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
+       by server-16.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
+       31 Aug 2012 22:58:04 -0000
+X-IronPort-AV: E=Sophos;i="4.80,349,1344211200"; d="scan'208";a="36489112"
+Received: from sjcpmailmx01.citrite.net ([10.216.14.74])
+       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       31 Aug 2012 22:58:02 +0000
+Received: from SJCPMAILBOX01.citrite.net ([10.216.4.72]) by
+       SJCPMAILMX01.citrite.net ([10.216.14.74]) with mapi; Fri, 31 Aug 2012
+       15:58:02 -0700
+From: Santosh Jodh <Santosh.Jodh@citrix.com>
+To: Sander Eikelenboom <linux@eikelenboom.it>
+Date: Fri, 31 Aug 2012 15:57:45 -0700
+Thread-Topic: Using debug-key 'o:  Dump IOMMU p2m table, locks up machine
+Thread-Index: Ac2HygBemrKmdBKQSXeAP3wUbiv4UQAATdbA
+Message-ID: <7914B38A4445B34AA16EB9F1352942F1012F0F6F4B01@SJCPMAILBOX01.citrite.net>
+References: <647712821.20120831234512@eikelenboom.it>
+       <7914B38A4445B34AA16EB9F1352942F1012F0F6F4AE2@SJCPMAILBOX01.citrite.net>
+       <723041396.20120901004249@eikelenboom.it>
+In-Reply-To: <723041396.20120901004249@eikelenboom.it>
+Accept-Language: en-US
+Content-Language: en-US
+X-MS-Has-Attach: 
+X-MS-TNEF-Correlator: 
+acceptlanguage: en-US
+MIME-Version: 1.0
+Cc: "wei.wang2@amd.com" <wei.wang2@amd.com>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] Using debug-key 'o:  Dump IOMMU p2m table,
+       locks up machine
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+The dump should complete - would be curious to see how long it takes on serial console. What baudrate is the console running at?
+
+The code does allow processing of pending softirqs quite frequently. I am not sure why you are still seeing SATA errors.
+
+> -----Original Message-----
+> From: Sander Eikelenboom [mailto:linux@eikelenboom.it]
+> Sent: Friday, August 31, 2012 3:43 PM
+> To: Santosh Jodh
+> Cc: wei.wang2@amd.com; xen-devel@lists.xen.org
+> Subject: Re: Using debug-key 'o: Dump IOMMU p2m table, locks up machine
+> 
+> 
+> Saturday, September 1, 2012, 12:24:32 AM, you wrote:
+> 
+> > Depending on how many VMs you have and the size of the IOMMU p2m
+> table, it can take a while. It should not be infinite though.
+> 
+> > How many VMs do you have running?
+> 
+> 15
+> 
+> > Can you please send the serial output when you press 'o'?
+> 
+> Attached, to the end you will see the s-ata errors coming through while the
+> dump still runs.
+> This is not a complete dump, only a few minutes after which i did a hard
+> reset.
+> 
+> > Santosh
+> 
+> >> -----Original Message-----
+> >> From: Sander Eikelenboom [mailto:linux@eikelenboom.it]
+> >> Sent: Friday, August 31, 2012 2:45 PM
+> >> To: Santosh Jodh; wei.wang2@amd.com
+> >> Cc: xen-devel@lists.xen.org
+> >> Subject: Using debug-key 'o: Dump IOMMU p2m table, locks up machine
+> >>
+> >>
+> >> I was trying to use the 'o' debug key to make a bug report about an "AMD-
+> Vi:
+> >> IO_PAGE_FAULT".
+> >>
+> >> The result:
+> >> - When using "xl debug-keys o", the machine seems in a infinite loop,
+> >> can hardly login, eventually resulting in a kernel RCU stall and complete
+> lockup.
+> >> - When using serial console: I get a infinite stream of "gfn:  mfn: "
+> >> lines, mean while on the normal console, S-ATA devices are starting to
+> give errors.
+> >>
+> >> So either option trashes the machine, other debug-keys work fine.
+> >>
+> >> Machine has a 890-fx chipset and AMD phenom x6 proc.
+> >>
+> >> xl dmesg with bootup and output from some other debug-keys is
+> attached.
+> >>
+> >> --
+> >>
+> >> Sander
+> 
+> 
+> 
+> 
+> --
+> Best regards,
+>  Sander                            mailto:linux@eikelenboom.it
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<7914B38A4445B34AA16EB9F1352942F1012F0F6F4B3C@SJCPMAILBOX01.citrite.net> b/config/examples/test/corpus/<7914B38A4445B34AA16EB9F1352942F1012F0F6F4B3C@SJCPMAILBOX01.citrite.net>
new file mode 100644 (file)
index 0000000..4b7cc2e
--- /dev/null
@@ -0,0 +1,201 @@
+From xen-devel-bounces@lists.xen.org Sat Sep 01 01:03:39 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Sat, 01 Sep 2012 01:03:39 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T7bBX-0000GN-Bx
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Sat, 01 Sep 2012 01:03:39 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T7b6w-0000aE-HS; Fri, 31 Aug 2012 23:58:50 +0000
+Received: from mail27.messagelabs.com ([193.109.254.147])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Santosh.Jodh@citrix.com>) id 1T7b6u-0000a6-0d
+       for xen-devel@lists.xen.org; Fri, 31 Aug 2012 23:58:48 +0000
+X-Env-Sender: Santosh.Jodh@citrix.com
+X-Msg-Ref: server-15.tower-27.messagelabs.com!1346457518!2083090!1
+X-Originating-IP: [66.165.176.89]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNjc1NTc=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 15166 invoked from network); 31 Aug 2012 23:58:40 -0000
+Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
+       by server-15.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
+       31 Aug 2012 23:58:40 -0000
+X-IronPort-AV: E=Sophos;i="4.80,351,1344211200"; d="scan'208";a="36491518"
+Received: from sjcpmailmx01.citrite.net ([10.216.14.74])
+       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       31 Aug 2012 23:58:38 +0000
+Received: from SJCPMAILBOX01.citrite.net ([10.216.4.72]) by
+       SJCPMAILMX01.citrite.net ([10.216.14.74]) with mapi; Fri, 31 Aug 2012
+       16:58:37 -0700
+From: Santosh Jodh <Santosh.Jodh@citrix.com>
+To: Sander Eikelenboom <linux@eikelenboom.it>
+Date: Fri, 31 Aug 2012 16:58:20 -0700
+Thread-Topic: Using debug-key 'o:  Dump IOMMU p2m table, locks up machine
+Thread-Index: Ac2Hzqq+LRXFiknsRxabJDC8y7W61AAALreg
+Message-ID: <7914B38A4445B34AA16EB9F1352942F1012F0F6F4B3C@SJCPMAILBOX01.citrite.net>
+References: <647712821.20120831234512@eikelenboom.it>
+       <7914B38A4445B34AA16EB9F1352942F1012F0F6F4AE2@SJCPMAILBOX01.citrite.net>
+       <723041396.20120901004249@eikelenboom.it>
+       <7914B38A4445B34AA16EB9F1352942F1012F0F6F4B01@SJCPMAILBOX01.citrite.net>
+       <1377403931.20120901011625@eikelenboom.it>
+In-Reply-To: <1377403931.20120901011625@eikelenboom.it>
+Accept-Language: en-US
+Content-Language: en-US
+X-MS-Has-Attach: 
+X-MS-TNEF-Correlator: 
+acceptlanguage: en-US
+MIME-Version: 1.0
+Cc: "wei.wang2@amd.com" <wei.wang2@amd.com>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] Using debug-key 'o:  Dump IOMMU p2m table,
+       locks up machine
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+1:1 mapping is not the common case for gfn-mfn. It is hard to say how much output would shrink by dumping contiguous ranges instead of individual pfns in the general case.
+
+> -----Original Message-----
+> From: Sander Eikelenboom [mailto:linux@eikelenboom.it]
+> Sent: Friday, August 31, 2012 4:16 PM
+> To: Santosh Jodh
+> Cc: wei.wang2@amd.com; xen-devel@lists.xen.org
+> Subject: Re: Using debug-key 'o: Dump IOMMU p2m table, locks up machine
+> 
+> 
+> Saturday, September 1, 2012, 12:57:45 AM, you wrote:
+> 
+> > The dump should complete - would be curious to see how long it takes on
+> serial console. What baudrate is the console running at?
+> 
+> I think for ages, this part seems only to cover a bit of the first of 3 pv guests
+> which have devices passed through.
+> 38400
+> 
+> And i wonder if the information is very valuable, gfn == mfn for every line ...
+> at an increment of 1 ...
+> Perhaps a uhmmm more compact way of getting the interesting data would
+> be handy ?
+> Or is this the intended output ?
+> 
+> > The code does allow processing of pending softirqs quite frequently. I am
+> not sure why you are still seeing SATA errors.
+> 
+> The machine is completely unresponsive in every way.
+> 
+> And using it with "xl debug-keys o" is never going to work i guess, since the
+> information flood is far larger than "xl dmesg" keeps ?
+> 
+> 
+> 
+> >> -----Original Message-----
+> >> From: Sander Eikelenboom [mailto:linux@eikelenboom.it]
+> >> Sent: Friday, August 31, 2012 3:43 PM
+> >> To: Santosh Jodh
+> >> Cc: wei.wang2@amd.com; xen-devel@lists.xen.org
+> >> Subject: Re: Using debug-key 'o: Dump IOMMU p2m table, locks up
+> >> machine
+> >>
+> >>
+> >> Saturday, September 1, 2012, 12:24:32 AM, you wrote:
+> >>
+> >> > Depending on how many VMs you have and the size of the IOMMU
+> p2m
+> >> table, it can take a while. It should not be infinite though.
+> >>
+> >> > How many VMs do you have running?
+> >>
+> >> 15
+> >>
+> >> > Can you please send the serial output when you press 'o'?
+> >>
+> >> Attached, to the end you will see the s-ata errors coming through
+> >> while the dump still runs.
+> >> This is not a complete dump, only a few minutes after which i did a
+> >> hard reset.
+> >>
+> >> > Santosh
+> >>
+> >> >> -----Original Message-----
+> >> >> From: Sander Eikelenboom [mailto:linux@eikelenboom.it]
+> >> >> Sent: Friday, August 31, 2012 2:45 PM
+> >> >> To: Santosh Jodh; wei.wang2@amd.com
+> >> >> Cc: xen-devel@lists.xen.org
+> >> >> Subject: Using debug-key 'o: Dump IOMMU p2m table, locks up
+> >> >> machine
+> >> >>
+> >> >>
+> >> >> I was trying to use the 'o' debug key to make a bug report about
+> >> >> an "AMD-
+> >> Vi:
+> >> >> IO_PAGE_FAULT".
+> >> >>
+> >> >> The result:
+> >> >> - When using "xl debug-keys o", the machine seems in a infinite
+> >> >> loop, can hardly login, eventually resulting in a kernel RCU stall
+> >> >> and complete
+> >> lockup.
+> >> >> - When using serial console: I get a infinite stream of "gfn:  mfn: "
+> >> >> lines, mean while on the normal console, S-ATA devices are
+> >> >> starting to
+> >> give errors.
+> >> >>
+> >> >> So either option trashes the machine, other debug-keys work fine.
+> >> >>
+> >> >> Machine has a 890-fx chipset and AMD phenom x6 proc.
+> >> >>
+> >> >> xl dmesg with bootup and output from some other debug-keys is
+> >> attached.
+> >> >>
+> >> >> --
+> >> >>
+> >> >> Sander
+> >>
+> >>
+> >>
+> >>
+> >> --
+> >> Best regards,
+> >>  Sander                            mailto:linux@eikelenboom.it
+> 
+> 
+> 
+> 
+> --
+> Best regards,
+>  Sander                            mailto:linux@eikelenboom.it
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<7914B38A4445B34AA16EB9F1352942F1012F0F6F4B5B@SJCPMAILBOX01.citrite.net> b/config/examples/test/corpus/<7914B38A4445B34AA16EB9F1352942F1012F0F6F4B5B@SJCPMAILBOX01.citrite.net>
new file mode 100644 (file)
index 0000000..45d243f
--- /dev/null
@@ -0,0 +1,218 @@
+From xen-devel-bounces@lists.xen.org Sat Sep 01 01:48:06 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Sat, 01 Sep 2012 01:48:06 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T7bsZ-0000LZ-CC
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Sat, 01 Sep 2012 01:48:06 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T7bnk-0001Ms-4I; Sat, 01 Sep 2012 00:43:04 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Santosh.Jodh@citrix.com>) id 1T7bni-0001Mn-0I
+       for xen-devel@lists.xen.org; Sat, 01 Sep 2012 00:43:02 +0000
+Received: from [85.158.139.83:34915] by server-11.bemta-5.messagelabs.com id
+       6B/92-24658-51A51405; Sat, 01 Sep 2012 00:43:01 +0000
+X-Env-Sender: Santosh.Jodh@citrix.com
+X-Msg-Ref: server-11.tower-182.messagelabs.com!1346460179!20768308!1
+X-Originating-IP: [66.165.176.89]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNjc1NTc=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 20832 invoked from network); 1 Sep 2012 00:43:00 -0000
+Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
+       by server-11.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
+       1 Sep 2012 00:43:00 -0000
+X-IronPort-AV: E=Sophos;i="4.80,351,1344211200"; d="scan'208";a="36493191"
+Received: from sjcpmailmx02.citrite.net ([10.216.14.75])
+       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       01 Sep 2012 00:42:31 +0000
+Received: from SJCPMAILBOX01.citrite.net ([10.216.4.72]) by
+       SJCPMAILMX02.citrite.net ([10.216.14.75]) with mapi; Fri, 31 Aug 2012
+       17:42:29 -0700
+From: Santosh Jodh <Santosh.Jodh@citrix.com>
+To: Sander Eikelenboom <linux@eikelenboom.it>
+Date: Fri, 31 Aug 2012 17:42:06 -0700
+Thread-Topic: Using debug-key 'o:  Dump IOMMU p2m table, locks up machine
+Thread-Index: Ac2Hzqq+LRXFiknsRxabJDC8y7W61AAALregAAK8FuA=
+Message-ID: <7914B38A4445B34AA16EB9F1352942F1012F0F6F4B5B@SJCPMAILBOX01.citrite.net>
+References: <647712821.20120831234512@eikelenboom.it>
+       <7914B38A4445B34AA16EB9F1352942F1012F0F6F4AE2@SJCPMAILBOX01.citrite.net>
+       <723041396.20120901004249@eikelenboom.it>
+       <7914B38A4445B34AA16EB9F1352942F1012F0F6F4B01@SJCPMAILBOX01.citrite.net>
+       <1377403931.20120901011625@eikelenboom.it> 
+Accept-Language: en-US
+Content-Language: en-US
+X-MS-Has-Attach: 
+X-MS-TNEF-Correlator: 
+acceptlanguage: en-US
+MIME-Version: 1.0
+Cc: "wei.wang2@amd.com" <wei.wang2@amd.com>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] Using debug-key 'o:  Dump IOMMU p2m table,
+       locks up machine
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+BTW, I should add that 1:1 mapping for the VM seems very suspicious. Wei can comment for sure.
+
+> -----Original Message-----
+> From: Santosh Jodh
+> Sent: Friday, August 31, 2012 4:58 PM
+> To: 'Sander Eikelenboom'
+> Cc: wei.wang2@amd.com; xen-devel@lists.xen.org
+> Subject: RE: Using debug-key 'o: Dump IOMMU p2m table, locks up machine
+> 
+> 1:1 mapping is not the common case for gfn-mfn. It is hard to say how much
+> output would shrink by dumping contiguous ranges instead of individual pfns
+> in the general case.
+> 
+> > -----Original Message-----
+> > From: Sander Eikelenboom [mailto:linux@eikelenboom.it]
+> > Sent: Friday, August 31, 2012 4:16 PM
+> > To: Santosh Jodh
+> > Cc: wei.wang2@amd.com; xen-devel@lists.xen.org
+> > Subject: Re: Using debug-key 'o: Dump IOMMU p2m table, locks up
+> > machine
+> >
+> >
+> > Saturday, September 1, 2012, 12:57:45 AM, you wrote:
+> >
+> > > The dump should complete - would be curious to see how long it takes
+> > > on
+> > serial console. What baudrate is the console running at?
+> >
+> > I think for ages, this part seems only to cover a bit of the first of
+> > 3 pv guests which have devices passed through.
+> > 38400
+> >
+> > And i wonder if the information is very valuable, gfn == mfn for every line
+> ...
+> > at an increment of 1 ...
+> > Perhaps a uhmmm more compact way of getting the interesting data
+> would
+> > be handy ?
+> > Or is this the intended output ?
+> >
+> > > The code does allow processing of pending softirqs quite frequently.
+> > > I am
+> > not sure why you are still seeing SATA errors.
+> >
+> > The machine is completely unresponsive in every way.
+> >
+> > And using it with "xl debug-keys o" is never going to work i guess,
+> > since the information flood is far larger than "xl dmesg" keeps ?
+> >
+> >
+> >
+> > >> -----Original Message-----
+> > >> From: Sander Eikelenboom [mailto:linux@eikelenboom.it]
+> > >> Sent: Friday, August 31, 2012 3:43 PM
+> > >> To: Santosh Jodh
+> > >> Cc: wei.wang2@amd.com; xen-devel@lists.xen.org
+> > >> Subject: Re: Using debug-key 'o: Dump IOMMU p2m table, locks up
+> > >> machine
+> > >>
+> > >>
+> > >> Saturday, September 1, 2012, 12:24:32 AM, you wrote:
+> > >>
+> > >> > Depending on how many VMs you have and the size of the IOMMU
+> > p2m
+> > >> table, it can take a while. It should not be infinite though.
+> > >>
+> > >> > How many VMs do you have running?
+> > >>
+> > >> 15
+> > >>
+> > >> > Can you please send the serial output when you press 'o'?
+> > >>
+> > >> Attached, to the end you will see the s-ata errors coming through
+> > >> while the dump still runs.
+> > >> This is not a complete dump, only a few minutes after which i did a
+> > >> hard reset.
+> > >>
+> > >> > Santosh
+> > >>
+> > >> >> -----Original Message-----
+> > >> >> From: Sander Eikelenboom [mailto:linux@eikelenboom.it]
+> > >> >> Sent: Friday, August 31, 2012 2:45 PM
+> > >> >> To: Santosh Jodh; wei.wang2@amd.com
+> > >> >> Cc: xen-devel@lists.xen.org
+> > >> >> Subject: Using debug-key 'o: Dump IOMMU p2m table, locks up
+> > >> >> machine
+> > >> >>
+> > >> >>
+> > >> >> I was trying to use the 'o' debug key to make a bug report about
+> > >> >> an "AMD-
+> > >> Vi:
+> > >> >> IO_PAGE_FAULT".
+> > >> >>
+> > >> >> The result:
+> > >> >> - When using "xl debug-keys o", the machine seems in a infinite
+> > >> >> loop, can hardly login, eventually resulting in a kernel RCU
+> > >> >> stall and complete
+> > >> lockup.
+> > >> >> - When using serial console: I get a infinite stream of "gfn:  mfn: "
+> > >> >> lines, mean while on the normal console, S-ATA devices are
+> > >> >> starting to
+> > >> give errors.
+> > >> >>
+> > >> >> So either option trashes the machine, other debug-keys work fine.
+> > >> >>
+> > >> >> Machine has a 890-fx chipset and AMD phenom x6 proc.
+> > >> >>
+> > >> >> xl dmesg with bootup and output from some other debug-keys is
+> > >> attached.
+> > >> >>
+> > >> >> --
+> > >> >>
+> > >> >> Sander
+> > >>
+> > >>
+> > >>
+> > >>
+> > >> --
+> > >> Best regards,
+> > >>  Sander                            mailto:linux@eikelenboom.it
+> >
+> >
+> >
+> >
+> > --
+> > Best regards,
+> >  Sander                            mailto:linux@eikelenboom.it
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<7914B38A4445B34AA16EB9F1352942F1012F0F6F4B98@SJCPMAILBOX01.citrite.net> b/config/examples/test/corpus/<7914B38A4445B34AA16EB9F1352942F1012F0F6F4B98@SJCPMAILBOX01.citrite.net>
new file mode 100644 (file)
index 0000000..5d14c00
--- /dev/null
@@ -0,0 +1,136 @@
+From xen-devel-bounces@lists.xen.org Sat Sep 01 18:10:36 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Sat, 01 Sep 2012 18:10:36 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T7rDO-0006Lw-Bv
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Sat, 01 Sep 2012 18:10:36 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T7r7O-0002OV-73; Sat, 01 Sep 2012 17:04:22 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Santosh.Jodh@citrix.com>) id 1T7r7M-0002OQ-7B
+       for xen-devel@lists.xen.org; Sat, 01 Sep 2012 17:04:20 +0000
+Received: from [85.158.143.99:13942] by server-3.bemta-4.messagelabs.com id
+       21/54-08232-31042405; Sat, 01 Sep 2012 17:04:19 +0000
+X-Env-Sender: Santosh.Jodh@citrix.com
+X-Msg-Ref: server-2.tower-216.messagelabs.com!1346519057!22671298!1
+X-Originating-IP: [66.165.176.89]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNjc3MTY=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 17739 invoked from network); 1 Sep 2012 17:04:18 -0000
+Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
+       by server-2.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
+       1 Sep 2012 17:04:18 -0000
+X-IronPort-AV: E=Sophos;i="4.80,353,1344211200"; d="scan'208";a="36519459"
+Received: from sjcpmailmx02.citrite.net ([10.216.14.75])
+       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       01 Sep 2012 17:04:13 +0000
+Received: from SJCPMAILBOX01.citrite.net ([10.216.4.72]) by
+       SJCPMAILMX02.citrite.net ([10.216.14.75]) with mapi;
+       Sat, 1 Sep 2012 10:04:12 -0700
+From: Santosh Jodh <Santosh.Jodh@citrix.com>
+To: Keir Fraser <keir.xen@gmail.com>, Sander Eikelenboom <linux@eikelenboom.it>
+Date: Sat, 1 Sep 2012 10:03:54 -0700
+Thread-Topic: [Xen-devel] Using debug-key 'o:  Dump IOMMU p2m table, locks
+       up machine
+Thread-Index: Ac2H5anSA9JOwrAdv0yUGY6DtFwLdQAfNVTw
+Message-ID: <7914B38A4445B34AA16EB9F1352942F1012F0F6F4B98@SJCPMAILBOX01.citrite.net>
+References: <1377403931.20120901011625@eikelenboom.it>
+       <CC672AF9.3D8E2%keir.xen@gmail.com>
+In-Reply-To: <CC672AF9.3D8E2%keir.xen@gmail.com>
+Accept-Language: en-US
+Content-Language: en-US
+X-MS-Has-Attach: 
+X-MS-TNEF-Correlator: 
+acceptlanguage: en-US
+MIME-Version: 1.0
+Cc: "wei.wang2@amd.com" <wei.wang2@amd.com>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] Using debug-key 'o:  Dump IOMMU p2m table,
+ locks up machine
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+
+
+> -----Original Message-----
+> From: Keir Fraser [mailto:keir.xen@gmail.com]
+> Sent: Friday, August 31, 2012 7:01 PM
+> To: Sander Eikelenboom; Santosh Jodh
+> Cc: wei.wang2@amd.com; xen-devel@lists.xen.org
+> Subject: Re: [Xen-devel] Using debug-key 'o: Dump IOMMU p2m table, locks
+> up machine
+> 
+> On 01/09/2012 00:16, "Sander Eikelenboom" <linux@eikelenboom.it> wrote:
+> 
+> >
+> > Saturday, September 1, 2012, 12:57:45 AM, you wrote:
+> >
+> >> The dump should complete - would be curious to see how long it takes
+> >> on serial console. What baudrate is the console running at?
+> >
+> > I think for ages, this part seems only to cover a bit of the first of
+> > 3 pv guests which have devices passed through.
+> > 38400
+> >
+> > And i wonder if the information is very valuable, gfn == mfn for every
+> > line ... at an increment of 1 ...
+> > Perhaps a uhmmm more compact way of getting the interesting data
+> would
+> > be handy ?
+> > Or is this the intended output ?
+> >
+> >> The code does allow processing of pending softirqs quite frequently.
+> >> I am not sure why you are still seeing SATA errors.
+> >
+> > The machine is completely unresponsive in every way.
+> 
+> It might schedule softirqs but that won't include scheduling or running any
+> guest vcpus. The vcpu that happens to be running on that cpu at the time the
+> debug dump starts, will be stuck unrunnable until the dump completes.
+
+Why does'nt that vCPU get scheduled on some other pCPU? Is there  a way to yield the CPU from the key handler?
+
+> 
+> Well, anyway, I don't know how useful a massive dump of the entire p2m is
+> going to be for debugging anyway. If investigating an IOMMU page fault, I'd
+> just want the info pertaining to that fault, and all the mapping information for
+> that IO virtual address, dumped. :)
+
+It is not a generically useful command - its usefulness is in the same category as dumping the MMU table. Unfortunately, there is no way to pass arguments to the key handler - to say provide the VM and or starting gfn and length for a more selective output.
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<7914B38A4445B34AA16EB9F1352942F1012F0F6F4BA7@SJCPMAILBOX01.citrite.net> b/config/examples/test/corpus/<7914B38A4445B34AA16EB9F1352942F1012F0F6F4BA7@SJCPMAILBOX01.citrite.net>
new file mode 100644 (file)
index 0000000..f893fea
--- /dev/null
@@ -0,0 +1,119 @@
+From xen-devel-bounces@lists.xen.org Sun Sep 02 03:14:15 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Sun, 02 Sep 2012 03:14:15 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T7zhU-00077T-NK
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Sun, 02 Sep 2012 03:14:15 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T7zcc-0003Pt-JZ; Sun, 02 Sep 2012 02:09:10 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Santosh.Jodh@citrix.com>) id 1T7zcb-0003Pl-4h
+       for xen-devel@lists.xen.org; Sun, 02 Sep 2012 02:09:09 +0000
+Received: from [85.158.138.51:60626] by server-4.bemta-3.messagelabs.com id
+       95/5B-24831-FBFB2405; Sun, 02 Sep 2012 02:09:03 +0000
+X-Env-Sender: Santosh.Jodh@citrix.com
+X-Msg-Ref: server-13.tower-174.messagelabs.com!1346551739!9419520!1
+X-Originating-IP: [66.165.176.89]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNjc3NDQ=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 902 invoked from network); 2 Sep 2012 02:09:01 -0000
+Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
+       by server-13.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
+       2 Sep 2012 02:09:01 -0000
+X-IronPort-AV: E=Sophos;i="4.80,354,1344211200"; d="scan'208";a="36532845"
+Received: from sjcpmailmx02.citrite.net ([10.216.14.75])
+       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       02 Sep 2012 02:08:59 +0000
+Received: from SJCPMAILBOX01.citrite.net ([10.216.4.72]) by
+       SJCPMAILMX02.citrite.net ([10.216.14.75]) with mapi;
+       Sat, 1 Sep 2012 19:08:58 -0700
+From: Santosh Jodh <Santosh.Jodh@citrix.com>
+To: Keir Fraser <keir.xen@gmail.com>, Sander Eikelenboom <linux@eikelenboom.it>
+Date: Sat, 1 Sep 2012 19:08:39 -0700
+Thread-Topic: [Xen-devel] Using debug-key 'o:  Dump IOMMU p2m table, locks
+       up machine
+Thread-Index: Ac2H5anSA9JOwrAdv0yUGY6DtFwLdQAfNVTwAATWEUoADm300A==
+Message-ID: <7914B38A4445B34AA16EB9F1352942F1012F0F6F4BA7@SJCPMAILBOX01.citrite.net>
+References: <7914B38A4445B34AA16EB9F1352942F1012F0F6F4B98@SJCPMAILBOX01.citrite.net>
+       <CC681CDD.3D966%keir.xen@gmail.com>
+In-Reply-To: <CC681CDD.3D966%keir.xen@gmail.com>
+Accept-Language: en-US
+Content-Language: en-US
+X-MS-Has-Attach: 
+X-MS-TNEF-Correlator: 
+acceptlanguage: en-US
+MIME-Version: 1.0
+Cc: "wei.wang2@amd.com" <wei.wang2@amd.com>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] Using debug-key 'o:  Dump IOMMU p2m table,
+ locks up machine
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+
+> -----Original Message-----
+> From: Keir Fraser [mailto:keir.xen@gmail.com]
+> Sent: Saturday, September 01, 2012 12:13 PM
+> To: Santosh Jodh; Sander Eikelenboom
+> Cc: wei.wang2@amd.com; xen-devel@lists.xen.org
+> Subject: Re: [Xen-devel] Using debug-key 'o: Dump IOMMU p2m table, locks
+> up machine
+> 
+> On 01/09/2012 18:03, "Santosh Jodh" <Santosh.Jodh@citrix.com> wrote:
+> 
+> >> It might schedule softirqs but that won't include scheduling or
+> >> running any guest vcpus. The vcpu that happens to be running on that
+> >> cpu at the time the debug dump starts, will be stuck unrunnable until the
+> dump completes.
+> >
+> > Why does'nt that vCPU get scheduled on some other pCPU? Is there  a
+> > way to yield the CPU from the key handler?
+> 
+> It can't be descheduled from this pCPU without running through the
+> scheduler. You could try running the handler in a tasklet -- a tasklet causes
+> other vCPUs to be descheduled from that pCPU, before it starts running.
+> 
+> So you'd register a keyhandler which does a tasklet_schedule(), and do your
+> logging work in the tasklet handler.
+> 
+> Worth a shot maybe?
+
+Yes - certainly. Is there a reason why all key handlers should not be tasklets?
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<814436011.20120905141155@eikelenboom.it> b/config/examples/test/corpus/<814436011.20120905141155@eikelenboom.it>
new file mode 100644 (file)
index 0000000..1f988f8
--- /dev/null
@@ -0,0 +1,130 @@
+From xen-devel-bounces@lists.xen.org Wed Sep 05 13:16:29 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 05 Sep 2012 13:16:29 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T9EWt-0002eS-30
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 05 Sep 2012 13:16:28 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T9ESr-0002h3-T7; Wed, 05 Sep 2012 12:12:13 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <linux@eikelenboom.it>) id 1T9ESq-0002gt-1L
+       for xen-devel@lists.xen.org; Wed, 05 Sep 2012 12:12:12 +0000
+Received: from [85.158.143.35:57916] by server-3.bemta-4.messagelabs.com id
+       1E/86-08232-B9147405; Wed, 05 Sep 2012 12:12:11 +0000
+X-Env-Sender: linux@eikelenboom.it
+X-Msg-Ref: server-9.tower-21.messagelabs.com!1346847120!5732020!1
+X-Originating-IP: [188.40.164.121]
+X-SpamReason: No, hits=0.0 required=7.0 tests=
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 12279 invoked from network); 5 Sep 2012 12:12:09 -0000
+Received: from static.121.164.40.188.clients.your-server.de (HELO
+       smtp.eikelenboom.it) (188.40.164.121)
+       by server-9.tower-21.messagelabs.com with AES256-SHA encrypted SMTP;
+       5 Sep 2012 12:12:09 -0000
+Received: from 128-64-ftth.onsneteindhoven.nl ([88.159.64.128]:52179
+       helo=[172.16.1.20])
+       by smtp.eikelenboom.it with esmtpsa (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72) (envelope-from <linux@eikelenboom.it>)
+       id 1T9EPa-0008GL-IU; Wed, 05 Sep 2012 14:08:50 +0200
+Date: Wed, 5 Sep 2012 14:11:55 +0200
+From: Sander Eikelenboom <linux@eikelenboom.it>
+Organization: Eikelenboom IT services
+X-Priority: 3 (Normal)
+Message-ID: <814436011.20120905141155@eikelenboom.it>
+To: "Jan Beulich" <JBeulich@suse.com>
+In-Reply-To: <504756850200007800098D1A@nat28.tlf.novell.com>
+References: <40501859.20120902104331@eikelenboom.it>
+       <CC6932C2.3D99D%keir.xen@gmail.com>
+       <217459398.20120902171441@eikelenboom.it>
+       <5044CAD7.8030800@amd.com>
+       <1144695277.20120904184345@eikelenboom.it>
+       <5047420A0200007800098BB1@nat28.tlf.novell.com>
+       <348297741.20120905122542@eikelenboom.it>
+       <5047483F0200007800098C18@nat28.tlf.novell.com>
+       <88861335.20120905124810@eikelenboom.it>
+       <504756850200007800098D1A@nat28.tlf.novell.com>
+MIME-Version: 1.0
+Cc: Wei Wang <wei.wang2@amd.com>, Keir Fraser <keir.xen@gmail.com>,
+       Santosh Jodh <Santosh.Jodh@citrix.com>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="utf-8"
+Content-Transfer-Encoding: base64
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] Using debug-key 'o:  Dump IOMMU p2m table,
+       locks up machine
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+DQpXZWRuZXNkYXksIFNlcHRlbWJlciA1LCAyMDEyLCAxOjQxOjI1IFBNLCB5b3Ugd3JvdGU6Cgo+
+Pj4+IE9uIDA1LjA5LjEyIGF0IDEyOjQ4LCBTYW5kZXIgRWlrZWxlbmJvb20gPGxpbnV4QGVpa2Vs
+ZW5ib29tLml0PiB3cm90ZToKCj4+IFdlZG5lc2RheSwgU2VwdGVtYmVyIDUsIDIwMTIsIDEyOjQw
+OjMxIFBNLCB5b3Ugd3JvdGU6Cj4+IAo+Pj4+Pj4gT24gMDUuMDkuMTIgYXQgMTI6MjUsIFNhbmRl
+ciBFaWtlbGVuYm9vbSA8bGludXhAZWlrZWxlbmJvb20uaXQ+IHdyb3RlOgo+Pj4+IFdlZG5lc2Rh
+eSwgU2VwdGVtYmVyIDUsIDIwMTIsIDEyOjE0OjAyIFBNLCB5b3Ugd3JvdGU6Cj4+Pj4+Pj4+IE9u
+IDA0LjA5LjEyIGF0IDE4OjQzLCBTYW5kZXIgRWlrZWxlbmJvb20gPGxpbnV4QGVpa2VsZW5ib29t
+Lml0PiB3cm90ZToKPj4+Pj4+IC4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLjwwPkFNRC1WaTog
+SU9fUEFHRV9GQVVMVDogZG9tYWluID0gMCwgZGV2aWNlIGlkID0gCj4+Pj4+PiAweDBhMDYsIGZh
+dWx0IGFkZHJlc3MgPSAweGMyYzJjMmMwCj4+Pj4gCj4+Pj4+IExvb2tzIGxpa2UgdXNlIG9mIHVu
+aW5pdGlhbGl6ZWQgbWVtb3J5IChhc3N1bWluZyB5b3UncmUgdXNpbmcgYQo+Pj4+PiBkZWJ1ZyBo
+eXBlcnZpc29yLCB0aGF0J3MgdGhlIHBhdHRlcm4gc2NydWJfb25lX3BhZ2UoKSBwdXRzCj4+Pj4+
+IHRoZXJlKS4gQnV0IGl0J3MgdW5jbGVhciB0byBtZSB3aGF0IGRldmljZSBzaG91bGQgYmUgZG9p
+bmcgYW55Cj4+Pj4+IEkvTyBhdCB0aGF0IHBvaW50IChhbmQgZXZlbiBpZiBvbmUgZG9lcywgaG93
+IGl0IHdvdWxkIGdldCB0aGUKPj4+Pj4gYmFkIGFkZHJlc3MgbG9hZGVkKS4gV2hhdCBpcyAwYTow
+MC42Pwo+Pj4+IAo+Pj4+IHNpbmNlIDQuMi1yYzQgaXMgc3RpbGwgdW5zdGFibGUgaXQgaGFzIGRl
+YnVnPXkgZm9yIHdoYXQgaSBrbm93LCBzbyB5ZXMuCj4+Pj4gVGhpcyBwYXJ0aWN1bGFyIElPX1BB
+R0VfRkFVTFQgaGFwcGVuZWQgYmVmb3JlIHRoZSBrZXJuZWwgbG9hZHMsIHNvIHRoZSAKPj4+PiBr
+ZXJuZWwgYW5kIHBjaWJhY2sgc2hvdWxkbid0IGJlIGNhdXNpbmcgdGhlIGlzc3VlIG9uZSB3b3Vs
+ZCBzYXkuCj4+Pj4gV2l0aCBwY2liYWNrIGknbSBoaWRpbmcgMDM6MDYuMCwgMDQ6MDAuKiwgMDU6
+MDAuMCwgMGE6MDAuKiBhbmQgMDc6MDAuMCBhdCAKPj4+PiBib290Lgo+Pj4+IAo+Pj4+IElzIHRo
+ZXJlIGFueSBjb2RlIGkgY291bGQgYWRkIHRvIGdldCBtb3JlIGluZm8gd2hlcmUgaXQgY29tZXMg
+ZnJvbSA/Cj4+IAo+Pj4gSGFyZGx5LCBzaW5jZSB0aG9zZSBhY2Nlc3NlcyBhcmUgYXN5bmNocm9u
+b3VzIHRvIHdoYXQgdGhlIENQVXMKPj4+IGRvLiBCdXQgLi4uCj4+IAo+Pj4+IDBhOjAwLjYgVVNC
+IGNvbnRyb2xsZXI6IE5ldE1vcyBUZWNobm9sb2d5IE1DUzk5OTAgUENJZSB0byA0w6JQb3J0IFVT
+QiAyLjAgCj4+IEhvc3QgQ29udHJvbGxlcgo+PiAKPj4+IC4uLiBhcmUgeW91ciBrZXlib2FyZC9t
+b3VzZSBwZXJoYXBzIGNvbm5lY3RlZCB0byB0aGlzIG9uZT8gSW4KPj4+IHdoaWNoIGNhc2UgSSdk
+IHN1cHBvc2UgdGhlIDE6MSB0YWJsZXMgc2V0IHVwIGZvciBEb20wIG1pZ2h0IG5vdAo+Pj4gYmUg
+Y29tcGxldGUuIFdlaT8KPj4gCj4+IE5vcGUgdGhpcyBtYWNoaW5lIGlzIHJ1bm5pbmcgd2l0aG91
+dCBhbnkga2V5Ym9hcmQvbW91c2UsIHRoZSBVU0IgY29udHJvbGxlciAKPj4gYXQgcHJlc2VudCBo
+YXMgb25seSBvbmUgZGV2aWNlIGNvbm5lY3RlZCB0byBpdDoKPj4gaW4gdGhlIHB2IGd1ZXN0IGxz
+dXNiOgo+PiBCdXMgMDA3IERldmljZSAwMDI6IElEIDEwY2Y6NTUwMCBWZWxsZW1hbiBDb21wb25l
+bnRzLCBJbmMuIDgwNTUgRXhwZXJpbWVudCAKPj4gSW50ZXJmYWNlIEJvYXJkIChhZGRyZXNzPTAp
+Cgo+IEFuZCB0aGlzIGlzIG5vdCBieSBjaGFuY2UgaGFuZ2luZyBvZmYgdGhlIGNvbnRyb2xsZXIg
+dGhhdCB0aGUgZmF1bHQKPiB3YXMgcmVwb3J0ZWQgZm9yPwoKWWVzIGJ1dCBpIGFsc28gZ2V0IGZh
+dWx0cyBmb3IgdGhlIDA3OjAwLjAgbGF0ZXIgb24gYm9vdGluZy4KCj4+IEFuZCBhcyBpIHNhaWQs
+IHRoZSBoYXJkd2FyZSBkaWRuJ3QgY2hhbmdlIGJldHdlZW4gbXkgc3dpdGNoIGZyb20geGVuLTQu
+MS4zIAo+PiB0byB4ZW4tNC4yLgoKPiBJIHVuZGVyc3RhbmQgdGhhdCwgYnV0IHRoZSBwcm9ibGVt
+IGhlcmUgc2hvd2VkIHVwIG9ubHkgYWZ0ZXIKPiB0b2dnbGluZyB0aGUgcGFnZSB0YWJsZSBzaGFy
+aW5nIG9wdGlvbiBpaXJjLgoKWW91IG1lYW4gdGhhdCB0aGUgZmF1bHQgb2NjdXJyaW5nIHRoaXMg
+ZWFybHkgZHVyaW5nIGJvb3QsIG9ubHkgaGFwcGVuZWQgYWZ0ZXIgZW5hYmxpbmcgdGhlICJpb21t
+dT1uby1zaGFyZXB0IiA/ClRoYXQncyBjb3JyZWN0IGFsdGhvdWdoIGl0J3Mgbm90IGNsZWFyIGlm
+IHRoYXQgaXMgY29pbmNpZGVuY2Ugb3Igbm90LgoKPiBKYW4KCgoKX19fX19fX19fX19fX19fX19f
+X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4t
+ZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK
+
diff --git a/config/examples/test/corpus/<85F40D8D-2FBE-4F5A-A895-E299DA20C445@gridcentric.ca> b/config/examples/test/corpus/<85F40D8D-2FBE-4F5A-A895-E299DA20C445@gridcentric.ca>
new file mode 100644 (file)
index 0000000..a9e2cb4
--- /dev/null
@@ -0,0 +1,220 @@
+From xen-devel-bounces@lists.xen.org Wed Aug 29 19:14:49 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 29 Aug 2012 19:14:49 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T6mms-00007w-AO
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 29 Aug 2012 19:14:49 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T6mit-0001SB-8E; Wed, 29 Aug 2012 18:10:39 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <andreslc@gridcentric.ca>) id 1T6mir-0001Rz-Jg
+       for xen-devel@lists.xensource.com; Wed, 29 Aug 2012 18:10:37 +0000
+Received: from [85.158.138.51:60845] by server-1.bemta-3.messagelabs.com id
+       92/42-09327-C1B5E305; Wed, 29 Aug 2012 18:10:36 +0000
+X-Env-Sender: andreslc@gridcentric.ca
+X-Msg-Ref: server-12.tower-174.messagelabs.com!1346263832!19576389!1
+X-Originating-IP: [209.85.160.43]
+X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 22618 invoked from network); 29 Aug 2012 18:10:34 -0000
+Received: from mail-pb0-f43.google.com (HELO mail-pb0-f43.google.com)
+       (209.85.160.43)
+       by server-12.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
+       29 Aug 2012 18:10:34 -0000
+Received: by pbbrq2 with SMTP id rq2so1862756pbb.30
+       for <xen-devel@lists.xensource.com>;
+       Wed, 29 Aug 2012 11:10:32 -0700 (PDT)
+X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
+       d=google.com; s=20120113;
+       h=subject:mime-version:content-type:from:in-reply-to:date:cc
+       :content-transfer-encoding:message-id:references:to:x-mailer
+       :x-gm-message-state;
+       bh=HzyGisBMJwa8kXRFzpHEQqhrKcH1y4aZZAaeXO/RgLs=;
+       b=jM6sC7ihNVRWn/JfP/FVLfjkHLJ6XOhFYHlpd86vkAKwWp2kJvPxebDePjTmkNp2Ww
+       jsE8E1Z9zKiI5kcoSRnvXQrEjH68CBy23lTHzyycCM+07TjiGtvZo2QjZFCNsIp3JsIl
+       OITRnEWtVM9HeQOZz2Obj0LTDHzDVI1qGf9knKOD+4Vk3vSQ3WjhWjaX236X5Hv5I0zJ
+       nq5x8Y61jxSEISRO7uCmLUi9Uy+7/Y+v8PRoTNHMdBkkJGMimRyg/RmP6hV0PSChVYJ6
+       4oPrLjC1txni3mVCOMtdvUXmPLcosmDQmOA9d43ngvz40Vy4GU11bfwL1uVCx4jwbuYi
+       C+0Q==
+Received: by 10.68.239.103 with SMTP id vr7mr6412811pbc.0.1346263832123;
+       Wed, 29 Aug 2012 11:10:32 -0700 (PDT)
+Received: from [192.168.1.130] (wsip-174-79-253-34.sd.sd.cox.net.
+       [174.79.253.34])
+       by mx.google.com with ESMTPS id sj5sm19729355pbc.30.2012.08.29.11.10.30
+       (version=TLSv1/SSLv3 cipher=OTHER);
+       Wed, 29 Aug 2012 11:10:31 -0700 (PDT)
+Mime-Version: 1.0 (Apple Message framework v1278)
+From: Andres Lagar-Cavilla <andreslc@gridcentric.ca>
+In-Reply-To: <503E451A.20107@citrix.com>
+Date: Wed, 29 Aug 2012 14:10:34 -0400
+Message-Id: <85F40D8D-2FBE-4F5A-A895-E299DA20C445@gridcentric.ca>
+References: <1346246116-29999-1-git-send-email-david.vrabel@citrix.com>
+       <1346246116-29999-3-git-send-email-david.vrabel@citrix.com>
+       <7392D0E0-02A4-48D7-8B16-4F93EA01F3AF@gridcentric.ca>
+       <503E451A.20107@citrix.com>
+To: David Vrabel <david.vrabel@citrix.com>
+X-Mailer: Apple Mail (2.1278)
+X-Gm-Message-State: ALoCoQlTuzWFS8IL3QfQuP9j+KFcYSAVc4rleddayIJSyZQnytNj8CM8NIEpn9ny28zCTb0ESVVx
+Cc: Andres Lagar-Cavilla <andreslc@gridcentric.ca>,
+       "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
+       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="windows-1252"
+Content-Transfer-Encoding: quoted-printable
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 2/2] xen/privcmd: add PRIVCMD_MMAPBATCH_V2
+       ioctl
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+
+On Aug 29, 2012, at 12:36 PM, David Vrabel wrote:
+
+> On 29/08/12 17:14, Andres Lagar-Cavilla wrote:
+>> =
+
+>> On Aug 29, 2012, at 9:15 AM, David Vrabel wrote:
+>> =
+
+>>> From: David Vrabel <david.vrabel@citrix.com>
+>>> =
+
+>>> PRIVCMD_MMAPBATCH_V2 extends PRIVCMD_MMAPBATCH with an additional
+>>> field for reporting the error code for every frame that could not be
+>>> mapped.  libxc prefers PRIVCMD_MMAPBATCH_V2 over PRIVCMD_MMAPBATCH.
+> [...]
+>>> diff --git a/drivers/xen/privcmd.c b/drivers/xen/privcmd.c
+>>> index ccee0f1..ddd32cf 100644
+>>> --- a/drivers/xen/privcmd.c
+>>> +++ b/drivers/xen/privcmd.c
+>>> @@ -248,18 +248,23 @@ struct mmap_batch_state {
+>>>    struct vm_area_struct *vma;
+>>>    int err;
+>>> =
+
+>>> -  xen_pfn_t __user *user;
+>>> +  xen_pfn_t __user *user_mfn;
+>>> +  int __user *user_err;
+>>> };
+>>> =
+
+>>> static int mmap_batch_fn(void *data, void *state)
+>>> {
+>>>    xen_pfn_t *mfnp =3D data;
+>>> +  int *err =3D data;
+>> Am I missing something or is there an aliasing here? Both mfnp and err p=
+oint to data?
+> =
+
+> There is deliberate aliasing here.  We use the mfn array to save the
+> error codes for later processing.
+
+May I suggest a comment to clarify this here? Are xen_pfn_t and int the sam=
+e size in both bitnesses? The very fact that I raise the question is an arg=
+ument against this black-magic aliasing. Imho.
+
+A explicit union for each slot in the *data, or passing both arrays to the =
+callback looks better to me.
+
+> =
+
+>>>    struct mmap_batch_state *st =3D state;
+>>> +  int ret;
+>>> =
+
+>>> -  if (xen_remap_domain_mfn_range(st->vma, st->va & PAGE_MASK, *mfnp, 1,
+>>> -                                 st->vma->vm_page_prot, st->domain) < 0) {
+>>> -          *mfnp |=3D 0xf0000000U;
+>>> -          st->err++;
+>>> +  ret =3D xen_remap_domain_mfn_range(st->vma, st->va & PAGE_MASK, *mfnp=
+, 1,
+>>> +                                   st->vma->vm_page_prot, st->domain);
+>>> +  if (ret < 0) {
+>>> +          *err =3D ret;
+>>> +          if (st->err =3D=3D 0 || st->err =3D=3D -ENOENT)
+>>> +                  st->err =3D ret;
+>> This will unset -ENOENT if a frame after an ENOENT error fails different=
+ly.
+> =
+
+> I thought that was what the original implementation did but it seems it
+> does not
+I think the best way to do this is:
+
+if ((ret =3D=3D -ENOENT) && (st->err =3D=3D 0))
+       st->err =3D -ENOENT;
+
+Then st->err is -ENOENT if at least there was one individual -ENOENT or zer=
+o otherwise. Which is the expectation of libxc (barring an EFAULT or some o=
+ther higher-level whole-operation error).
+
+Andres
+
+> .
+> =
+
+>>> @@ -325,12 +359,16 @@ static long privcmd_ioctl_mmap_batch(void __user =
+*udata)
+>>> =
+
+>>>    up_write(&mm->mmap_sem);
+>>> =
+
+>>> -  if (state.err > 0) {
+>>> -          state.user =3D m.arr;
+>>> +  if (state.err) {
+>>> +          state.user_mfn =3D (xen_pfn_t *)m.arr;
+>>> +          state.user_err =3D m.err;
+>>>            ret =3D traverse_pages(m.num, sizeof(xen_pfn_t),
+>>> -                         &pagelist,
+>>> -                         mmap_return_errors, &state);
+>>> -  }
+>>> +                               &pagelist,
+>>> +                               mmap_return_errors, &state);
+> =
+
+>> The callback now maps data to err (instead of mfnp =85 but I see no
+>> change to the gather_array other than a cast =85am I missing something?
+> =
+
+> The kernel mfn and the err array are aliased.
+> =
+
+> I could have made gather_array() allow the kernel array to have larger
+> elements than the user array but that looked like too much work.
+> =
+
+> David
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<8747cb48d50a10784df56904db29ca8b6e8c5d80.1345552068.git.julien.grall@citrix.com> b/config/examples/test/corpus/<8747cb48d50a10784df56904db29ca8b6e8c5d80.1345552068.git.julien.grall@citrix.com>
new file mode 100644 (file)
index 0000000..8185599
--- /dev/null
@@ -0,0 +1,288 @@
+From xen-devel-bounces@lists.xen.org Wed Aug 22 19:59:04 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 22 Aug 2012 19:59:04 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T4G8o-0002qI-N5
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 22 Aug 2012 19:59:04 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T4G5O-0006uL-6a; Wed, 22 Aug 2012 18:55:26 +0000
+Received: from mail27.messagelabs.com ([193.109.254.147])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <julien.grall@citrix.com>) id 1T4G5L-0006jm-RX
+       for xen-devel@lists.xen.org; Wed, 22 Aug 2012 18:55:24 +0000
+X-Env-Sender: julien.grall@citrix.com
+X-Msg-Ref: server-12.tower-27.messagelabs.com!1345661712!9781420!4
+X-Originating-IP: [66.165.176.89]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNjU4OTQ=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 7403 invoked from network); 22 Aug 2012 18:55:17 -0000
+Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
+       by server-12.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
+       22 Aug 2012 18:55:17 -0000
+X-IronPort-AV: E=Sophos;i="4.80,809,1344225600"; d="scan'208";a="35484799"
+Received: from ftlpmailmx01.citrite.net ([10.13.107.65])
+       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       22 Aug 2012 14:55:16 -0400
+Received: from meteora.cam.xci-test.com (10.80.248.22) by smtprelay.citrix.com
+       (10.13.107.65) with Microsoft SMTP Server id 8.3.213.0;
+       Wed, 22 Aug 2012 14:55:16 -0400
+From: Julien Grall <julien.grall@citrix.com>
+To: qemu-devel@nongnu.org
+Date: Wed, 22 Aug 2012 13:31:55 +0100
+Message-ID: <8747cb48d50a10784df56904db29ca8b6e8c5d80.1345552068.git.julien.grall@citrix.com>
+X-Mailer: git-send-email 1.7.2.5
+In-Reply-To: <cover.1345552068.git.julien.grall@citrix.com>
+References: <cover.1345552068.git.julien.grall@citrix.com>
+MIME-Version: 1.0
+Cc: Julien Grall <julien.grall@citrix.com>, christian.limpach@gmail.com,
+       Stefano.Stabellini@eu.citrix.com, xen-devel@lists.xen.org
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DATE_IN_PAST_06_12,
+       RCVD_IN_DNSWL_MED,RP_MATCHES_RCVD autolearn=ham version=3.3.1
+Subject: [Xen-devel] [XEN][RFC PATCH V2 09/17] xc: Add the hypercall for
+       multiple servers
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+This patch add 5 hypercalls to register server, io range and PCI.
+
+Signed-off-by: Julien Grall <julien.grall@citrix.com>
+---
+ tools/libxc/xc_domain.c |  155 +++++++++++++++++++++++++++++++++++++++++++++++
+ tools/libxc/xenctrl.h   |   21 ++++++
+ 2 files changed, 176 insertions(+), 0 deletions(-)
+
+diff --git a/tools/libxc/xc_domain.c b/tools/libxc/xc_domain.c
+index d98e68b..cb186c1 100644
+--- a/tools/libxc/xc_domain.c
++++ b/tools/libxc/xc_domain.c
+@@ -1514,6 +1514,161 @@ int xc_domain_set_virq_handler(xc_interface *xch, uint32_t domid, int virq)
+     return do_domctl(xch, &domctl);
+ }
++ioservid_or_error_t xc_hvm_register_ioreq_server(xc_interface *xch,
++                                                 domid_t dom)
++{
++    DECLARE_HYPERCALL;
++    DECLARE_HYPERCALL_BUFFER(xen_hvm_register_ioreq_server_t, arg);
++    ioservid_or_error_t rc = -1;
++
++    arg = xc_hypercall_buffer_alloc(xch, arg, sizeof (*arg));
++    if ( !arg )
++    {
++        PERROR("Could not allocate memory for xc_hvm_register_ioreq_server hypercall");
++        goto out;
++    }
++
++    hypercall.op        = __HYPERVISOR_hvm_op;
++    hypercall.arg[0]    = HVMOP_register_ioreq_server;
++    hypercall.arg[1]    = HYPERCALL_BUFFER_AS_ARG(arg);
++
++    arg->domid = dom;
++    rc = do_xen_hypercall(xch, &hypercall);
++    if ( !rc )
++        rc = arg->id;
++
++    xc_hypercall_buffer_free(xch, arg);
++out:
++    return rc;
++}
++
++evtchn_port_or_error_t xc_hvm_get_ioreq_server_buf_channel(xc_interface *xch,
++                                                           domid_t dom,
++                                                           ioservid_t id)
++{
++    DECLARE_HYPERCALL;
++    DECLARE_HYPERCALL_BUFFER(xen_hvm_get_ioreq_server_buf_channel_t, arg);
++    evtchn_port_or_error_t rc = -1;
++
++    arg = xc_hypercall_buffer_alloc(xch, arg, sizeof (*arg));
++    if ( !arg )
++    {
++        PERROR("Could not allocate memory for xc_hvm_get_ioreq_servr_buf_channel");
++        goto out;
++    }
++
++    hypercall.op        = __HYPERVISOR_hvm_op;
++    hypercall.arg[0]    = HVMOP_get_ioreq_server_buf_channel;
++    hypercall.arg[1]    = HYPERCALL_BUFFER_AS_ARG(arg);
++
++    arg->domid = dom;
++    arg->id = id;
++    rc = do_xen_hypercall(xch, &hypercall);
++
++    if ( !rc )
++        rc = arg->channel;
++
++    xc_hypercall_buffer_free(xch, arg);
++
++out:
++    return rc;
++}
++
++int xc_hvm_map_io_range_to_ioreq_server(xc_interface *xch, domid_t dom,
++                                        ioservid_t id, int is_mmio,
++                                        uint64_t start, uint64_t end)
++{
++    DECLARE_HYPERCALL;
++    DECLARE_HYPERCALL_BUFFER(xen_hvm_map_io_range_to_ioreq_server_t, arg);
++    int rc = -1;
++
++    arg = xc_hypercall_buffer_alloc(xch, arg, sizeof (*arg));
++    if ( !arg )
++    {
++        PERROR("Could not allocate memory for xc_hvm_map_io_range_to_ioreq_server hypercall");
++        goto out;
++    }
++
++    hypercall.op        = __HYPERVISOR_hvm_op;
++    hypercall.arg[0]    = HVMOP_map_io_range_to_ioreq_server;
++    hypercall.arg[1]    = HYPERCALL_BUFFER_AS_ARG(arg);
++
++    arg->domid = dom;
++    arg->id = id;
++    arg->is_mmio = is_mmio;
++    arg->s = start;
++    arg->e = end;
++
++    rc = do_xen_hypercall(xch, &hypercall);
++
++    xc_hypercall_buffer_free(xch, arg);
++out:
++    return rc;
++}
++
++int xc_hvm_unmap_io_range_from_ioreq_server(xc_interface *xch, domid_t dom,
++                                            ioservid_t id, int is_mmio,
++                                            uint64_t addr)
++{
++    DECLARE_HYPERCALL;
++    DECLARE_HYPERCALL_BUFFER(xen_hvm_unmap_io_range_from_ioreq_server_t, arg);
++    int rc = -1;
++
++    arg = xc_hypercall_buffer_alloc(xch, arg, sizeof (*arg));
++    if ( !arg )
++    {
++        PERROR("Could not allocate memory for xc_hvm_unmap_io_range_from_ioreq_server hypercall");
++        goto out;
++    }
++
++    hypercall.op        = __HYPERVISOR_hvm_op;
++    hypercall.arg[0]    = HVMOP_unmap_io_range_from_ioreq_server;
++    hypercall.arg[1]    = HYPERCALL_BUFFER_AS_ARG(arg);
++
++    arg->domid = dom;
++    arg->id = id;
++    arg->is_mmio = is_mmio;
++    arg->addr = addr;
++    rc = do_xen_hypercall(xch, &hypercall);
++
++    xc_hypercall_buffer_free(xch, arg);
++out:
++    return rc;
++}
++
++int xc_hvm_register_pcidev(xc_interface *xch, domid_t dom, ioservid_t id,
++                           uint8_t domain, uint8_t bus, uint8_t device,
++                           uint8_t function)
++{
++    DECLARE_HYPERCALL;
++    DECLARE_HYPERCALL_BUFFER(xen_hvm_register_pcidev_t, arg);
++    int rc = -1;
++
++    arg = xc_hypercall_buffer_alloc(xch, arg, sizeof (*arg));
++    if ( !arg )
++    {
++        PERROR("Could not allocate memory for xc_hvm_create_pci hypercall");
++        goto out;
++    }
++
++    hypercall.op        = __HYPERVISOR_hvm_op;
++    hypercall.arg[0]    = HVMOP_register_pcidev;
++    hypercall.arg[1]    = HYPERCALL_BUFFER_AS_ARG(arg);
++
++    arg->domid = dom;
++    arg->id = id;
++    arg->domain = domain;
++    arg->bus = bus;
++    arg->device = device;
++    arg->function = function;
++    rc = do_xen_hypercall(xch, &hypercall);
++
++    xc_hypercall_buffer_free(xch, arg);
++out:
++    return rc;
++}
++
++
+ /*
+  * Local variables:
+  * mode: C
+diff --git a/tools/libxc/xenctrl.h b/tools/libxc/xenctrl.h
+index b7741ca..65a950e 100644
+--- a/tools/libxc/xenctrl.h
++++ b/tools/libxc/xenctrl.h
+@@ -1659,6 +1659,27 @@ void xc_clear_last_error(xc_interface *xch);
+ int xc_set_hvm_param(xc_interface *handle, domid_t dom, int param, unsigned long value);
+ int xc_get_hvm_param(xc_interface *handle, domid_t dom, int param, unsigned long *value);
++/* A IO server identifier is guaranteed to fit in 31 bits. */
++typedef int ioservid_or_error_t;
++
++ioservid_or_error_t xc_hvm_register_ioreq_server(xc_interface *xch,
++                                                 domid_t dom);
++evtchn_port_or_error_t xc_hvm_get_ioreq_server_buf_channel(xc_interface *xch,
++                                                           domid_t dom,
++                                                           ioservid_t id);
++int xc_hvm_map_io_range_to_ioreq_server(xc_interface *xch, domid_t dom,
++                                        ioservid_t id, int is_mmio,
++                                        uint64_t start, uint64_t end);
++int xc_hvm_unmap_io_range_from_ioreq_server(xc_interface *xch, domid_t dom,
++                                            ioservid_t id, int is_mmio,
++                                            uint64_t addr);
++/*
++ * Register a PCI device
++ */
++int xc_hvm_register_pcidev(xc_interface *xch, domid_t dom, unsigned int id,
++                           uint8_t domain, uint8_t bus, uint8_t device,
++                           uint8_t function);
++
+ /* IA64 specific, nvram save */
+ int xc_ia64_save_to_nvram(xc_interface *xch, uint32_t dom);
+-- 
+Julien Grall
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<88861335.20120905124810@eikelenboom.it> b/config/examples/test/corpus/<88861335.20120905124810@eikelenboom.it>
new file mode 100644 (file)
index 0000000..df13b5d
--- /dev/null
@@ -0,0 +1,118 @@
+From xen-devel-bounces@lists.xen.org Wed Sep 05 11:52:13 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 05 Sep 2012 11:52:13 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T9DDL-0002L7-GN
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 05 Sep 2012 11:52:13 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T9D9e-0002iW-29; Wed, 05 Sep 2012 10:48:18 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <linux@eikelenboom.it>) id 1T9D9c-0002iO-5N
+       for xen-devel@lists.xen.org; Wed, 05 Sep 2012 10:48:16 +0000
+Received: from [85.158.139.83:60036] by server-6.bemta-5.messagelabs.com id
+       0A/69-21336-FED27405; Wed, 05 Sep 2012 10:48:15 +0000
+X-Env-Sender: linux@eikelenboom.it
+X-Msg-Ref: server-11.tower-182.messagelabs.com!1346842094!21455358!1
+X-Originating-IP: [188.40.164.121]
+X-SpamReason: No, hits=0.0 required=7.0 tests=
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 5596 invoked from network); 5 Sep 2012 10:48:14 -0000
+Received: from static.121.164.40.188.clients.your-server.de (HELO
+       smtp.eikelenboom.it) (188.40.164.121)
+       by server-11.tower-182.messagelabs.com with AES256-SHA encrypted SMTP;
+       5 Sep 2012 10:48:14 -0000
+Received: from 128-64-ftth.onsneteindhoven.nl ([88.159.64.128]:51876
+       helo=[172.16.1.20])
+       by smtp.eikelenboom.it with esmtpsa (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72) (envelope-from <linux@eikelenboom.it>)
+       id 1T9D6X-0007si-Cj; Wed, 05 Sep 2012 12:45:05 +0200
+Date: Wed, 5 Sep 2012 12:48:10 +0200
+From: Sander Eikelenboom <linux@eikelenboom.it>
+Organization: Eikelenboom IT services
+X-Priority: 3 (Normal)
+Message-ID: <88861335.20120905124810@eikelenboom.it>
+To: "Jan Beulich" <JBeulich@suse.com>
+In-Reply-To: <5047483F0200007800098C18@nat28.tlf.novell.com>
+References: <40501859.20120902104331@eikelenboom.it>
+       <CC6932C2.3D99D%keir.xen@gmail.com>
+       <217459398.20120902171441@eikelenboom.it>
+       <5044CAD7.8030800@amd.com>
+       <1144695277.20120904184345@eikelenboom.it>
+       <5047420A0200007800098BB1@nat28.tlf.novell.com>
+       <348297741.20120905122542@eikelenboom.it>
+       <5047483F0200007800098C18@nat28.tlf.novell.com>
+MIME-Version: 1.0
+Cc: Wei Wang <wei.wang2@amd.com>, Keir Fraser <keir.xen@gmail.com>,
+       Santosh Jodh <Santosh.Jodh@citrix.com>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="utf-8"
+Content-Transfer-Encoding: base64
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] Using debug-key 'o:  Dump IOMMU p2m table,
+       locks up machine
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+DQpXZWRuZXNkYXksIFNlcHRlbWJlciA1LCAyMDEyLCAxMjo0MDozMSBQTSwgeW91IHdyb3RlOgoK
+Pj4+PiBPbiAwNS4wOS4xMiBhdCAxMjoyNSwgU2FuZGVyIEVpa2VsZW5ib29tIDxsaW51eEBlaWtl
+bGVuYm9vbS5pdD4gd3JvdGU6Cj4+IFdlZG5lc2RheSwgU2VwdGVtYmVyIDUsIDIwMTIsIDEyOjE0
+OjAyIFBNLCB5b3Ugd3JvdGU6Cj4+Pj4+PiBPbiAwNC4wOS4xMiBhdCAxODo0MywgU2FuZGVyIEVp
+a2VsZW5ib29tIDxsaW51eEBlaWtlbGVuYm9vbS5pdD4gd3JvdGU6Cj4+Pj4gLi4uLi4uLi4uLi4u
+Li4uLi4uLi4uLi4uLi4uPDA+QU1ELVZpOiBJT19QQUdFX0ZBVUxUOiBkb21haW4gPSAwLCBkZXZp
+Y2UgaWQgPSAKPj4+PiAweDBhMDYsIGZhdWx0IGFkZHJlc3MgPSAweGMyYzJjMmMwCj4+IAo+Pj4g
+TG9va3MgbGlrZSB1c2Ugb2YgdW5pbml0aWFsaXplZCBtZW1vcnkgKGFzc3VtaW5nIHlvdSdyZSB1
+c2luZyBhCj4+PiBkZWJ1ZyBoeXBlcnZpc29yLCB0aGF0J3MgdGhlIHBhdHRlcm4gc2NydWJfb25l
+X3BhZ2UoKSBwdXRzCj4+PiB0aGVyZSkuIEJ1dCBpdCdzIHVuY2xlYXIgdG8gbWUgd2hhdCBkZXZp
+Y2Ugc2hvdWxkIGJlIGRvaW5nIGFueQo+Pj4gSS9PIGF0IHRoYXQgcG9pbnQgKGFuZCBldmVuIGlm
+IG9uZSBkb2VzLCBob3cgaXQgd291bGQgZ2V0IHRoZQo+Pj4gYmFkIGFkZHJlc3MgbG9hZGVkKS4g
+V2hhdCBpcyAwYTowMC42Pwo+PiAKPj4gc2luY2UgNC4yLXJjNCBpcyBzdGlsbCB1bnN0YWJsZSBp
+dCBoYXMgZGVidWc9eSBmb3Igd2hhdCBpIGtub3csIHNvIHllcy4KPj4gVGhpcyBwYXJ0aWN1bGFy
+IElPX1BBR0VfRkFVTFQgaGFwcGVuZWQgYmVmb3JlIHRoZSBrZXJuZWwgbG9hZHMsIHNvIHRoZSAK
+Pj4ga2VybmVsIGFuZCBwY2liYWNrIHNob3VsZG4ndCBiZSBjYXVzaW5nIHRoZSBpc3N1ZSBvbmUg
+d291bGQgc2F5Lgo+PiBXaXRoIHBjaWJhY2sgaSdtIGhpZGluZyAwMzowNi4wLCAwNDowMC4qLCAw
+NTowMC4wLCAwYTowMC4qIGFuZCAwNzowMC4wIGF0IAo+PiBib290Lgo+PiAKPj4gSXMgdGhlcmUg
+YW55IGNvZGUgaSBjb3VsZCBhZGQgdG8gZ2V0IG1vcmUgaW5mbyB3aGVyZSBpdCBjb21lcyBmcm9t
+ID8KCj4gSGFyZGx5LCBzaW5jZSB0aG9zZSBhY2Nlc3NlcyBhcmUgYXN5bmNocm9ub3VzIHRvIHdo
+YXQgdGhlIENQVXMKPiBkby4gQnV0IC4uLgoKPj4gMGE6MDAuNiBVU0IgY29udHJvbGxlcjogTmV0
+TW9zIFRlY2hub2xvZ3kgTUNTOTk5MCBQQ0llIHRvIDTDolBvcnQgVVNCIDIuMCBIb3N0IENvbnRy
+b2xsZXIKCj4gLi4uIGFyZSB5b3VyIGtleWJvYXJkL21vdXNlIHBlcmhhcHMgY29ubmVjdGVkIHRv
+IHRoaXMgb25lPyBJbgo+IHdoaWNoIGNhc2UgSSdkIHN1cHBvc2UgdGhlIDE6MSB0YWJsZXMgc2V0
+IHVwIGZvciBEb20wIG1pZ2h0IG5vdAo+IGJlIGNvbXBsZXRlLiBXZWk/CgpOb3BlIHRoaXMgbWFj
+aGluZSBpcyBydW5uaW5nIHdpdGhvdXQgYW55IGtleWJvYXJkL21vdXNlLCB0aGUgVVNCIGNvbnRy
+b2xsZXIgYXQgcHJlc2VudCBoYXMgb25seSBvbmUgZGV2aWNlIGNvbm5lY3RlZCB0byBpdDoKaW4g
+dGhlIHB2IGd1ZXN0IGxzdXNiOgpCdXMgMDA3IERldmljZSAwMDI6IElEIDEwY2Y6NTUwMCBWZWxs
+ZW1hbiBDb21wb25lbnRzLCBJbmMuIDgwNTUgRXhwZXJpbWVudCBJbnRlcmZhY2UgQm9hcmQgKGFk
+ZHJlc3M9MCkKCkFuZCBhcyBpIHNhaWQsIHRoZSBoYXJkd2FyZSBkaWRuJ3QgY2hhbmdlIGJldHdl
+ZW4gbXkgc3dpdGNoIGZyb20geGVuLTQuMS4zIHRvIHhlbi00LjIuCgpCdXQgaSB3aWxsIHJldmVy
+dCB0byA0LjEgYW5kIHNlZSBpZiBpIGNhbiBzcG90IGFueSBkaWZmZXJlbmNlIGluIHhsIGRtZXNn
+IGJldHdlZW4gdGhlIHR3by4KCgo+IEphbgoKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19f
+X19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0
+cy54ZW4ub3JnCmh0dHA6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=
+
diff --git a/config/examples/test/corpus/<89b7274240cda4511d4e7e11fc9c21a53ba23887.1345552068.git.julien.grall@citrix.com> b/config/examples/test/corpus/<89b7274240cda4511d4e7e11fc9c21a53ba23887.1345552068.git.julien.grall@citrix.com>
new file mode 100644 (file)
index 0000000..f57b64e
--- /dev/null
@@ -0,0 +1,242 @@
+From xen-devel-bounces@lists.xen.org Wed Aug 22 19:58:54 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 22 Aug 2012 19:58:54 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T4G8d-0002nC-KA
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 22 Aug 2012 19:58:54 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T4G5M-0006rq-Mq; Wed, 22 Aug 2012 18:55:24 +0000
+Received: from mail27.messagelabs.com ([193.109.254.147])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <julien.grall@citrix.com>) id 1T4G5K-0006hc-3u
+       for xen-devel@lists.xen.org; Wed, 22 Aug 2012 18:55:22 +0000
+X-Env-Sender: julien.grall@citrix.com
+X-Msg-Ref: server-12.tower-27.messagelabs.com!1345661712!9781420!2
+X-Originating-IP: [66.165.176.89]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNjU4OTQ=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 7320 invoked from network); 22 Aug 2012 18:55:14 -0000
+Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
+       by server-12.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
+       22 Aug 2012 18:55:14 -0000
+X-IronPort-AV: E=Sophos;i="4.80,809,1344225600"; d="scan'208";a="35484789"
+Received: from ftlpmailmx01.citrite.net ([10.13.107.65])
+       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       22 Aug 2012 14:55:13 -0400
+Received: from meteora.cam.xci-test.com (10.80.248.22) by smtprelay.citrix.com
+       (10.13.107.65) with Microsoft SMTP Server id 8.3.213.0;
+       Wed, 22 Aug 2012 14:55:12 -0400
+From: Julien Grall <julien.grall@citrix.com>
+To: qemu-devel@nongnu.org
+Date: Wed, 22 Aug 2012 13:31:52 +0100
+Message-ID: <89b7274240cda4511d4e7e11fc9c21a53ba23887.1345552068.git.julien.grall@citrix.com>
+X-Mailer: git-send-email 1.7.2.5
+In-Reply-To: <cover.1345552068.git.julien.grall@citrix.com>
+References: <cover.1345552068.git.julien.grall@citrix.com>
+MIME-Version: 1.0
+Cc: Julien Grall <julien.grall@citrix.com>, christian.limpach@gmail.com,
+       Stefano.Stabellini@eu.citrix.com, xen-devel@lists.xen.org
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DATE_IN_PAST_06_12,
+       RCVD_IN_DNSWL_MED,RP_MATCHES_RCVD autolearn=unavailable version=3.3.1
+Subject: [Xen-devel] [XEN][RFC PATCH V2 06/17] hvm-io: IO refactoring with
+       ioreq server
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+Modification of several parts of the IO handle.
+Each vcpu now contain a pointer to the current IO shared page.
+A default shared page has been created for IO handle by Xen.
+Each time that Xen receives an ioreq, it will use the default
+shared page and set the right shared page when it's able to
+know the server.
+
+Moreover, all IO which are unhandleabled by Xen or by a server
+will be directly discard inside Xen.
+
+Signed-off-by: Julien Grall <julien.grall@citrix.com>
+---
+ xen/arch/x86/hvm/emulate.c        |   56 +++++++++++++++++++++++++++++++++++++
+ xen/arch/x86/hvm/hvm.c            |    5 ++-
+ xen/include/asm-x86/hvm/support.h |   26 ++++++++++++++--
+ 3 files changed, 81 insertions(+), 6 deletions(-)
+
+diff --git a/xen/arch/x86/hvm/emulate.c b/xen/arch/x86/hvm/emulate.c
+index 9bfba48..9e636b6 100644
+--- a/xen/arch/x86/hvm/emulate.c
++++ b/xen/arch/x86/hvm/emulate.c
+@@ -49,6 +49,55 @@ static void hvmtrace_io_assist(int is_mmio, ioreq_t *p)
+     trace_var(event, 0/*!cycles*/, size, buffer);
+ }
++static int hvmemul_prepare_assist(ioreq_t *p)
++{
++    struct vcpu *v = current;
++    struct hvm_ioreq_server *s;
++    int i;
++    int sign;
++    uint32_t data = ~0;
++
++    if ( p->type == IOREQ_TYPE_PCI_CONFIG )
++        return X86EMUL_UNHANDLEABLE;
++
++    spin_lock(&v->domain->arch.hvm_domain.ioreq_server_lock);
++    for ( s = v->domain->arch.hvm_domain.ioreq_server_list; s; s = s->next )
++    {
++        struct hvm_io_range *x = (p->type == IOREQ_TYPE_COPY)
++            ? s->mmio_range_list : s->portio_range_list;
++
++        for ( ; x; x = x->next )
++        {
++            if ( (p->addr >= x->s) && (p->addr <= x->e) )
++                goto done_server_scan;
++        }
++    }
++
++    spin_unlock(&v->domain->arch.hvm_domain.ioreq_server_lock);
++
++    sign = p->df ? -1 : 1;
++
++    if ( p->dir != IOREQ_WRITE )
++    {
++        if ( !p->data_is_ptr )
++            p->data = ~0;
++        else
++        {
++            for ( i = 0; i < p->count; i++ )
++                hvm_copy_to_guest_phys(p->data + sign * i * p->size, &data,
++                                       p->size);
++        }
++    }
++
++    return X86EMUL_OKAY;
++
++  done_server_scan:
++    set_ioreq(v, &s->ioreq, p);
++    spin_unlock(&v->domain->arch.hvm_domain.ioreq_server_lock);
++
++    return X86EMUL_UNHANDLEABLE;
++}
++
+ static int hvmemul_do_io(
+     int is_mmio, paddr_t addr, unsigned long *reps, int size,
+     paddr_t ram_gpa, int dir, int df, void *p_data)
+@@ -173,6 +222,10 @@ static int hvmemul_do_io(
+         (p_data == NULL) ? HVMIO_dispatched : HVMIO_awaiting_completion;
+     vio->io_size = size;
++    /* Use the default shared page */
++    current->arch.hvm_vcpu.ioreq = &curr->domain->arch.hvm_domain.ioreq;
++    p = get_ioreq(current);
++
+     p->dir = dir;
+     p->data_is_ptr = value_is_ptr;
+     p->type = is_mmio ? IOREQ_TYPE_COPY : IOREQ_TYPE_PIO;
+@@ -196,6 +249,9 @@ static int hvmemul_do_io(
+         rc = hvm_portio_intercept(p);
+     }
++    if ( rc == X86EMUL_UNHANDLEABLE )
++        rc = hvmemul_prepare_assist(p);
++
+     switch ( rc )
+     {
+     case X86EMUL_OKAY:
+diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
+index a2cd9b3..33ef0f2 100644
+--- a/xen/arch/x86/hvm/hvm.c
++++ b/xen/arch/x86/hvm/hvm.c
+@@ -1223,14 +1223,15 @@ bool_t hvm_send_assist_req(struct vcpu *v)
+         return 0;
+     }
+-    prepare_wait_on_xen_event_channel(v->arch.hvm_vcpu.xen_port);
++    prepare_wait_on_xen_event_channel(p->vp_eport);
+     /*
+      * Following happens /after/ blocking and setting up ioreq contents.
+      * prepare_wait_on_xen_event_channel() is an implicit barrier.
+      */
+     p->state = STATE_IOREQ_READY;
+-    notify_via_xen_event_channel(v->domain, v->arch.hvm_vcpu.xen_port);
++
++    notify_via_xen_event_channel(v->domain, p->vp_eport);
+     return 1;
+ }
+diff --git a/xen/include/asm-x86/hvm/support.h b/xen/include/asm-x86/hvm/support.h
+index f9b102f..44acd37 100644
+--- a/xen/include/asm-x86/hvm/support.h
++++ b/xen/include/asm-x86/hvm/support.h
+@@ -29,13 +29,31 @@
+ static inline ioreq_t *get_ioreq(struct vcpu *v)
+ {
+-    struct domain *d = v->domain;
+-    shared_iopage_t *p = d->arch.hvm_domain.ioreq.va;
+-    ASSERT((v == current) || spin_is_locked(&d->arch.hvm_domain.ioreq.lock));
+-    ASSERT(d->arch.hvm_domain.ioreq.va != NULL);
++    shared_iopage_t *p = v->arch.hvm_vcpu.ioreq->va;
++    ASSERT((v == current) || spin_is_locked(&v->arch.hvm_vcpu.ioreq->lock));
++    ASSERT(v->arch.hvm_vcpu.ioreq->va != NULL);
+     return &p->vcpu_ioreq[v->vcpu_id];
+ }
++static inline void set_ioreq(struct vcpu *v, struct hvm_ioreq_page *page,
++                           ioreq_t *p)
++{
++    ioreq_t *np;
++
++    v->arch.hvm_vcpu.ioreq = page;
++    spin_lock(&v->arch.hvm_vcpu.ioreq->lock);
++    np = get_ioreq(v);
++    np->dir = p->dir;
++    np->data_is_ptr = p->data_is_ptr;
++    np->type = p->type;
++    np->size = p->size;
++    np->addr = p->addr;
++    np->count = p->count;
++    np->df = p->df;
++    np->data = p->data;
++    spin_unlock(&v->arch.hvm_vcpu.ioreq->lock);
++}
++
+ #define HVM_DELIVER_NO_ERROR_CODE  -1
+ #ifndef NDEBUG
+-- 
+Julien Grall
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<9522ee398a1fd3cdce48cfe883b307336ae6674f.1345552068.git.julien.grall@citrix.com> b/config/examples/test/corpus/<9522ee398a1fd3cdce48cfe883b307336ae6674f.1345552068.git.julien.grall@citrix.com>
new file mode 100644 (file)
index 0000000..aed2ceb
--- /dev/null
@@ -0,0 +1,1260 @@
+From xen-devel-bounces@lists.xen.org Wed Aug 22 19:59:24 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 22 Aug 2012 19:59:24 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T4G98-0002sn-Bz
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 22 Aug 2012 19:59:24 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T4G5U-00077j-QE; Wed, 22 Aug 2012 18:55:32 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <julien.grall@citrix.com>) id 1T4G5R-00070A-6s
+       for xen-devel@lists.xen.org; Wed, 22 Aug 2012 18:55:30 +0000
+Received: from [85.158.138.51:26672] by server-7.bemta-3.messagelabs.com id
+       77/79-01906-02B25305; Wed, 22 Aug 2012 18:55:28 +0000
+X-Env-Sender: julien.grall@citrix.com
+X-Msg-Ref: server-5.tower-174.messagelabs.com!1345661707!27566656!7
+X-Originating-IP: [66.165.176.63]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyNzMzNjM=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 10498 invoked from network); 22 Aug 2012 18:55:25 -0000
+Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
+       by server-5.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
+       22 Aug 2012 18:55:25 -0000
+X-IronPort-AV: E=Sophos;i="4.80,809,1344225600"; d="scan'208";a="205943138"
+Received: from ftlpmailmx01.citrite.net ([10.13.107.65])
+       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       22 Aug 2012 14:55:24 -0400
+Received: from meteora.cam.xci-test.com (10.80.248.22) by smtprelay.citrix.com
+       (10.13.107.65) with Microsoft SMTP Server id 8.3.213.0;
+       Wed, 22 Aug 2012 14:55:23 -0400
+From: Julien Grall <julien.grall@citrix.com>
+To: qemu-devel@nongnu.org
+Date: Wed, 22 Aug 2012 13:32:01 +0100
+Message-ID: <9522ee398a1fd3cdce48cfe883b307336ae6674f.1345552068.git.julien.grall@citrix.com>
+X-Mailer: git-send-email 1.7.2.5
+In-Reply-To: <cover.1345552068.git.julien.grall@citrix.com>
+References: <cover.1345552068.git.julien.grall@citrix.com>
+MIME-Version: 1.0
+Cc: Julien Grall <julien.grall@citrix.com>, christian.limpach@gmail.com,
+       Stefano.Stabellini@eu.citrix.com, xen-devel@lists.xen.org
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DATE_IN_PAST_06_12,
+       RCVD_IN_DNSWL_MED,RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham
+       version=3.3.1
+Subject: [Xen-devel] [XEN][RFC PATCH V2 15/17] xl: support spawn/destroy on
+       multiple device model
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+Old configuration file is still working with qemu disaggregation.
+Before to spawn any QEMU, the toolstack will fill correctly, if needed,
+configuration structure.
+
+For the moment, the toolstack spawns device models one by one.
+
+Signed-off-by: Julien Grall <julien.grall@citrix.com>
+---
+ tools/libxl/libxl.c          |   16 ++-
+ tools/libxl/libxl_create.c   |  150 +++++++++++++-----
+ tools/libxl/libxl_device.c   |    7 +-
+ tools/libxl/libxl_dm.c       |  369 ++++++++++++++++++++++++++++++------------
+ tools/libxl/libxl_dom.c      |    4 +-
+ tools/libxl/libxl_internal.h |   36 +++--
+ 6 files changed, 421 insertions(+), 161 deletions(-)
+
+diff --git a/tools/libxl/libxl.c b/tools/libxl/libxl.c
+index 8ea3478..60718b6 100644
+--- a/tools/libxl/libxl.c
++++ b/tools/libxl/libxl.c
+@@ -1330,7 +1330,8 @@ static void stubdom_destroy_callback(libxl__egc *egc,
+     }
+     dds->stubdom_finished = 1;
+-    savefile = libxl__device_model_savefile(gc, dis->domid);
++    /* FIXME: get dmid */
++    savefile = libxl__device_model_savefile(gc, dis->domid, 0);
+     rc = libxl__remove_file(gc, savefile);
+     /*
+      * On suspend libxl__domain_save_device_model will have already
+@@ -1423,10 +1424,8 @@ void libxl__destroy_domid(libxl__egc *egc, libxl__destroy_domid_state *dis)
+         LIBXL__LOG_ERRNOVAL(ctx, LIBXL__LOG_ERROR, rc, "xc_domain_pause failed for %d", domid);
+     }
+     if (dm_present) {
+-        if (libxl__destroy_device_model(gc, domid) < 0)
+-            LIBXL__LOG(ctx, LIBXL__LOG_ERROR, "libxl__destroy_device_model failed for %d", domid);
+-
+-        libxl__qmp_cleanup(gc, domid);
++        if (libxl__destroy_device_models(gc, domid) < 0)
++            LIBXL__LOG(ctx, LIBXL__LOG_ERROR, "libxl__destroy_device_models failed for %d", domid);
+     }
+     dis->drs.ao = ao;
+     dis->drs.domid = domid;
+@@ -1725,6 +1724,13 @@ out:
+ /******************************************************************************/
++int libxl__dm_setdefault(libxl__gc *gc, libxl_dm *dm)
++{
++    return 0;
++}
++
++/******************************************************************************/
++
+ int libxl__device_disk_setdefault(libxl__gc *gc, libxl_device_disk *disk)
+ {
+     int rc;
+diff --git a/tools/libxl/libxl_create.c b/tools/libxl/libxl_create.c
+index 5f0d26f..7160c78 100644
+--- a/tools/libxl/libxl_create.c
++++ b/tools/libxl/libxl_create.c
+@@ -35,6 +35,10 @@ void libxl_domain_config_dispose(libxl_domain_config *d_config)
+ {
+     int i;
++    for (i=0; i<d_config->num_dms; i++)
++        libxl_dm_dispose(&d_config->dms[i]);
++    free(d_config->dms);
++
+     for (i=0; i<d_config->num_disks; i++)
+         libxl_device_disk_dispose(&d_config->disks[i]);
+     free(d_config->disks);
+@@ -59,6 +63,50 @@ void libxl_domain_config_dispose(libxl_domain_config *d_config)
+     libxl_domain_build_info_dispose(&d_config->b_info);
+ }
++static int libxl__domain_config_setdefault(libxl__gc *gc,
++                                           libxl_domain_config *d_config)
++{
++    libxl_domain_build_info *b_info = &d_config->b_info;
++    uint64_t cap = 0;
++    int i = 0;
++    int ret = 0;
++    libxl_dm *default_dm = NULL;
++
++    if (b_info->device_model_version == LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN_TRADITIONAL
++        && (d_config->num_dms > 1))
++        return ERROR_INVAL;
++
++    if (!d_config->num_dms) {
++        d_config->dms = malloc(sizeof (*d_config->dms));
++        if (!d_config->dms)
++            return ERROR_NOMEM;
++        libxl_dm_init(d_config->dms);
++        d_config->num_dms = 1;
++    }
++
++    for (i = 0; i < d_config->num_dms; i++)
++    {
++        ret = libxl__dm_setdefault(gc, &d_config->dms[i]);
++        if (ret) return ret;
++
++        if (cap & d_config->dms[i].capabilities)
++            /* Some capabilities are already emulated */
++            return ERROR_INVAL;
++
++        cap |= d_config->dms[i].capabilities;
++        if (d_config->dms[i].capabilities & LIBXL_DM_CAP_UI)
++            default_dm = &d_config->dms[i];
++    }
++
++    if (!default_dm)
++        default_dm = &d_config->dms[0];
++
++    /* The default device model emulates all that the others don't emulate */
++    default_dm->capabilities |= ~cap;
++
++    return ret;
++}
++
+ int libxl__domain_create_info_setdefault(libxl__gc *gc,
+                                          libxl_domain_create_info *c_info)
+ {
+@@ -145,11 +193,11 @@ int libxl__domain_build_info_setdefault(libxl__gc *gc,
+                 LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN_TRADITIONAL;
+         else {
+             const char *dm;
+-            int rc;
++            int rc = 0;
+             b_info->device_model_version =
+                 LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN;
+-            dm = libxl__domain_device_model(gc, b_info);
++            dm = libxl__domain_device_model(gc, ~0, b_info);
+             rc = access(dm, X_OK);
+             if (rc < 0) {
+                 /* qemu-xen unavailable, use qemu-xen-traditional */
+@@ -651,11 +699,13 @@ static void initiate_domain_create(libxl__egc *egc,
+     }
+     dcs->guest_domid = domid;
+-    dcs->dmss.dm.guest_domid = 0; /* means we haven't spawned */
+     ret = libxl__domain_build_info_setdefault(gc, &d_config->b_info);
+     if (ret) goto error_out;
++    ret = libxl__domain_config_setdefault(gc, d_config);
++    if (ret) goto error_out;
++
+     if (!sched_params_valid(gc, domid, &d_config->b_info.sched_params)) {
+         LOG(ERROR, "Invalid scheduling parameters\n");
+         ret = ERROR_INVAL;
+@@ -667,6 +717,15 @@ static void initiate_domain_create(libxl__egc *egc,
+         if (ret) goto error_out;
+     }
++    dcs->current_dmid = 0;
++    dcs->build_state.num_dms = d_config->num_dms;
++    GCNEW_ARRAY(dcs->dmss, d_config->num_dms);
++
++    for (i = 0; i < d_config->num_dms; i++) {
++        dcs->dmss[i].dm.guest_domid = 0; /* Means we haven't spawned */
++        dcs->dmss[i].dm.dcs = dcs;
++    }
++
+     dcs->bl.ao = ao;
+     libxl_device_disk *bootdisk =
+         d_config->num_disks > 0 ? &d_config->disks[0] : NULL;
+@@ -709,6 +768,26 @@ static void domcreate_console_available(libxl__egc *egc,
+                                         dcs->guest_domid));
+ }
++static void domcreate_spawn_devmodel(libxl__egc *egc,
++                                    libxl__domain_create_state *dcs,
++                                    libxl_dmid dmid)
++{
++    libxl__stub_dm_spawn_state *dmss = &dcs->dmss[dmid];
++    STATE_AO_GC(dcs->ao);
++
++    /* We might be going to call libxl__spawn_local_dm, or _spawn_stub_dm.
++     * Fill in any field required by either, including both relevant
++     * callbacks (_spawn_stub_dm will overwrite our trespass if needed). */
++    dmss->dm.spawn.ao = ao;
++    dmss->dm.guest_config = dcs->guest_config;
++    dmss->dm.build_state = &dcs->build_state;
++    dmss->dm.callback = domcreate_devmodel_started;
++    dmss->callback = domcreate_devmodel_started;
++    dmss->dm.dmid = dmid;
++
++    libxl__spawn_dm(egc, dmss);
++}
++
+ static void domcreate_bootloader_done(libxl__egc *egc,
+                                       libxl__bootloader_state *bl,
+                                       int rc)
+@@ -735,15 +814,6 @@ static void domcreate_bootloader_done(libxl__egc *egc,
+      */
+     state->pv_cmdline = bl->cmdline;
+-    /* We might be going to call libxl__spawn_local_dm, or _spawn_stub_dm.
+-     * Fill in any field required by either, including both relevant
+-     * callbacks (_spawn_stub_dm will overwrite our trespass if needed). */
+-    dcs->dmss.dm.spawn.ao = ao;
+-    dcs->dmss.dm.guest_config = dcs->guest_config;
+-    dcs->dmss.dm.build_state = &dcs->build_state;
+-    dcs->dmss.dm.callback = domcreate_devmodel_started;
+-    dcs->dmss.callback = domcreate_devmodel_started;
+-
+     if ( restore_fd < 0 ) {
+         rc = libxl__domain_build(gc, &d_config->b_info, domid, state);
+         domcreate_rebuild_done(egc, dcs, rc);
+@@ -962,11 +1032,7 @@ static void domcreate_launch_dm(libxl__egc *egc, libxl__multidev *multidev,
+         libxl__device_vkb_add(gc, domid, &vkb);
+         libxl_device_vkb_dispose(&vkb);
+-        dcs->dmss.dm.guest_domid = domid;
+-        if (libxl_defbool_val(d_config->b_info.device_model_stubdomain))
+-            libxl__spawn_stub_dm(egc, &dcs->dmss);
+-        else
+-            libxl__spawn_local_dm(egc, &dcs->dmss.dm);
++        domcreate_spawn_devmodel(egc, dcs, dcs->current_dmid);
+         return;
+     }
+     case LIBXL_DOMAIN_TYPE_PV:
+@@ -991,12 +1057,11 @@ static void domcreate_launch_dm(libxl__egc *egc, libxl__multidev *multidev,
+         libxl__device_console_dispose(&console);
+         if (need_qemu) {
+-            dcs->dmss.dm.guest_domid = domid;
+-            libxl__spawn_local_dm(egc, &dcs->dmss.dm);
++            assert(dcs->dmss);
++            domcreate_spawn_devmodel(egc, dcs, dcs->current_dmid);
+             return;
+         } else {
+-            assert(!dcs->dmss.dm.guest_domid);
+-            domcreate_devmodel_started(egc, &dcs->dmss.dm, 0);
++            assert(!dcs->dmss);
+             return;
+         }
+     }
+@@ -1015,7 +1080,7 @@ static void domcreate_devmodel_started(libxl__egc *egc,
+                                        libxl__dm_spawn_state *dmss,
+                                        int ret)
+ {
+-    libxl__domain_create_state *dcs = CONTAINER_OF(dmss, *dcs, dmss.dm);
++    libxl__domain_create_state *dcs = dmss->dcs;
+     STATE_AO_GC(dmss->spawn.ao);
+     libxl_ctx *ctx = CTX;
+     int domid = dcs->guest_domid;
+@@ -1029,15 +1094,15 @@ static void domcreate_devmodel_started(libxl__egc *egc,
+         goto error_out;
+     }
+-    if (dcs->dmss.dm.guest_domid) {
++    if (dmss->guest_domid) {
+         if (d_config->b_info.device_model_version
+             == LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN) {
+-            libxl__qmp_initializations(gc, domid, d_config);
++            libxl__qmp_initializations(gc, domid, dmss->dmid, d_config);
+         }
+     }
+     /* Plug nic interfaces */
+-    if (d_config->num_nics > 0) {
++    if (d_config->num_nics > 0 && dmss->dmid == 0) {
+         /* Attach nics */
+         libxl__multidev_begin(ao, &dcs->multidev);
+         dcs->multidev.callback = domcreate_attach_pci;
+@@ -1071,23 +1136,34 @@ static void domcreate_attach_pci(libxl__egc *egc, libxl__multidev *multidev,
+         goto error_out;
+     }
+-    for (i = 0; i < d_config->num_pcidevs; i++)
+-        libxl__device_pci_add(gc, domid, &d_config->pcidevs[i], 1);
++    /* TO FIX: for the moment only add to device model 0 */
+-    if (d_config->num_pcidevs > 0) {
+-        ret = libxl__create_pci_backend(gc, domid, d_config->pcidevs,
+-            d_config->num_pcidevs);
+-        if (ret < 0) {
+-            LIBXL__LOG(ctx, LIBXL__LOG_ERROR,
+-                "libxl_create_pci_backend failed: %d", ret);
+-            goto error_out;
++    if (dcs->current_dmid == 0) {
++        for (i = 0; i < d_config->num_pcidevs; i++)
++            libxl__device_pci_add(gc, domid,
++                                  &d_config->pcidevs[i], 1);
++
++        if (d_config->num_pcidevs > 0) {
++            ret = libxl__create_pci_backend(gc, domid, d_config->pcidevs,
++                d_config->num_pcidevs);
++            if (ret < 0) {
++                LIBXL__LOG(ctx, LIBXL__LOG_ERROR,
++                    "libxl_create_pci_backend failed: %d", ret);
++                goto error_out;
++            }
+         }
+     }
+-    libxl__arch_domain_create(gc, d_config, domid);
+-    domcreate_console_available(egc, dcs);
++    dcs->current_dmid++;
++
++    if (dcs->current_dmid >= dcs->guest_config->num_dms) {
++        libxl__arch_domain_create(gc, d_config, domid);
++        domcreate_console_available(egc, dcs);
++        domcreate_complete(egc, dcs, 0);
++    } else {
++        domcreate_spawn_devmodel(egc, dcs, dcs->current_dmid);
++    }
+-    domcreate_complete(egc, dcs, 0);
+     return;
+ error_out:
+diff --git a/tools/libxl/libxl_device.c b/tools/libxl/libxl_device.c
+index 8e8410e..798665e 100644
+--- a/tools/libxl/libxl_device.c
++++ b/tools/libxl/libxl_device.c
+@@ -1034,8 +1034,8 @@ static void devices_remove_callback(libxl__egc *egc,
+     return;
+ }
+-int libxl__wait_for_device_model(libxl__gc *gc,
+-                                 uint32_t domid, char *state,
++int libxl__wait_for_device_model(libxl__gc *gc, libxl_domid domid,
++                                 libxl_dmid dmid, char *state,
+                                  libxl__spawn_starting *spawning,
+                                  int (*check_callback)(libxl__gc *gc,
+                                                        uint32_t domid,
+@@ -1044,7 +1044,8 @@ int libxl__wait_for_device_model(libxl__gc *gc,
+                                  void *check_callback_userdata)
+ {
+     char *path;
+-    path = libxl__sprintf(gc, "/local/domain/0/device-model/%d/state", domid);
++    path = libxl__sprintf(gc, "/local/domain/0/dms/%u/%u/state",
++                          domid, dmid);
+     return libxl__wait_for_offspring(gc, domid,
+                                      LIBXL_DEVICE_MODEL_START_TIMEOUT,
+                                      "Device Model", path, state, spawning,
+diff --git a/tools/libxl/libxl_dm.c b/tools/libxl/libxl_dm.c
+index 0c0084f..de7138f 100644
+--- a/tools/libxl/libxl_dm.c
++++ b/tools/libxl/libxl_dm.c
+@@ -28,24 +28,30 @@ static const char *libxl_tapif_script(libxl__gc *gc)
+ #endif
+ }
+-const char *libxl__device_model_savefile(libxl__gc *gc, uint32_t domid)
++const char *libxl__device_model_savefile(libxl__gc *gc, libxl_domid domid,
++                                         libxl_dmid dmid)
+ {
+-    return libxl__sprintf(gc, "/var/lib/xen/qemu-save.%d", domid);
++    return libxl__sprintf(gc, "/var/lib/xen/qemu-save.%u.%u", domid, dmid);
+ }
+ const char *libxl__domain_device_model(libxl__gc *gc,
+-                                       const libxl_domain_build_info *info)
++                                       uint32_t dmid,
++                                       const libxl_domain_build_info *b_info)
+ {
+     libxl_ctx *ctx = libxl__gc_owner(gc);
+     const char *dm;
++    libxl_domain_config *guest_config = CONTAINER_OF(b_info, *guest_config,
++                                                     b_info);
+-    if (libxl_defbool_val(info->device_model_stubdomain))
++    if (libxl_defbool_val(guest_config->b_info.device_model_stubdomain))
+         return NULL;
+-    if (info->device_model) {
+-        dm = libxl__strdup(gc, info->device_model);
++    if (dmid < guest_config->num_dms && guest_config->dms[dmid].path) {
++        dm = libxl__strdup(gc, guest_config->dms[dmid].path);
++    } else if (guest_config->b_info.device_model) {
++        dm = libxl__strdup(gc, guest_config->b_info.device_model);
+     } else {
+-        switch (info->device_model_version) {
++        switch (guest_config->b_info.device_model_version) {
+         case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN_TRADITIONAL:
+             dm = libxl__abs_path(gc, "qemu-dm", libxl__libexec_path());
+             break;
+@@ -55,7 +61,7 @@ const char *libxl__domain_device_model(libxl__gc *gc,
+         default:
+             LIBXL__LOG(ctx, LIBXL__LOG_ERROR,
+                        "invalid device model version %d\n",
+-                       info->device_model_version);
++                       guest_config->b_info.device_model_version);
+             dm = NULL;
+             break;
+         }
+@@ -63,7 +69,8 @@ const char *libxl__domain_device_model(libxl__gc *gc,
+     return dm;
+ }
+-const libxl_vnc_info *libxl__dm_vnc(const libxl_domain_config *guest_config)
++const libxl_vnc_info *libxl__dm_vnc(libxl_dmid dmid,
++                                    const libxl_domain_config *guest_config)
+ {
+     const libxl_vnc_info *vnc = NULL;
+     if (guest_config->b_info.type == LIBXL_DOMAIN_TYPE_HVM) {
+@@ -103,7 +110,7 @@ static char ** libxl__build_device_model_args_old(libxl__gc *gc,
+     const libxl_domain_create_info *c_info = &guest_config->c_info;
+     const libxl_domain_build_info *b_info = &guest_config->b_info;
+     const libxl_device_nic *nics = guest_config->nics;
+-    const libxl_vnc_info *vnc = libxl__dm_vnc(guest_config);
++    const libxl_vnc_info *vnc = libxl__dm_vnc(0, guest_config);
+     const libxl_sdl_info *sdl = dm_sdl(guest_config);
+     const int num_nics = guest_config->num_nics;
+     const char *keymap = dm_keymap(guest_config);
+@@ -321,24 +328,58 @@ static char *dm_spice_options(libxl__gc *gc,
+     return opt;
+ }
++static int libxl__dm_has_vif(const char *vifname, libxl_dmid dmid,
++                             const libxl_domain_config *guest_config)
++{
++    const libxl_dm *dm_config = &guest_config->dms[dmid];
++    int i = 0;
++
++    if (!vifname && (dm_config->capabilities & LIBXL_DM_CAP_UI))
++        return 1;
++
++    if (!dm_config->vifs)
++        return 0;
++
++    for (i = 0; dm_config->vifs[i]; i++) {
++        if (!strcmp(dm_config->vifs[i], vifname))
++            return 1;
++    }
++
++    return 0;
++}
++
+ static char ** libxl__build_device_model_args_new(libxl__gc *gc,
+-                                        const char *dm, int guest_domid,
++                                        const char *dm, libxl_dmid guest_domid,
++                                        libxl_dmid dmid,
+                                         const libxl_domain_config *guest_config,
+                                         const libxl__domain_build_state *state)
+ {
++    /**
++     * PCI device number. Before 3, we have IDE, ISA, SouthBridge and
++     * XEN PCI. Theses devices will be emulate in each QEMU, but only
++     * one QEMU (the one which emulates default device) will register
++     * these devices through Xen PCI hypercall.
++     */
++    static unsigned int bdf = 3;
++
+     libxl_ctx *ctx = libxl__gc_owner(gc);
+     const libxl_domain_create_info *c_info = &guest_config->c_info;
+     const libxl_domain_build_info *b_info = &guest_config->b_info;
++    const libxl_dm *dm_config = &guest_config->dms[dmid];
+     const libxl_device_disk *disks = guest_config->disks;
+     const libxl_device_nic *nics = guest_config->nics;
+     const int num_disks = guest_config->num_disks;
+     const int num_nics = guest_config->num_nics;
+-    const libxl_vnc_info *vnc = libxl__dm_vnc(guest_config);
++    const libxl_vnc_info *vnc = libxl__dm_vnc(dmid, guest_config);
+     const libxl_sdl_info *sdl = dm_sdl(guest_config);
+     const char *keymap = dm_keymap(guest_config);
+     flexarray_t *dm_args;
+     int i;
+     uint64_t ram_size;
++    uint32_t cap_ui = dm_config->capabilities & LIBXL_DM_CAP_UI;
++    uint32_t cap_ide = dm_config->capabilities & LIBXL_DM_CAP_IDE;
++    uint32_t cap_serial = dm_config->capabilities & LIBXL_DM_CAP_SERIAL;
++    uint32_t cap_audio = dm_config->capabilities & LIBXL_DM_CAP_AUDIO;
+     dm_args = flexarray_make(16, 1);
+     if (!dm_args)
+@@ -348,11 +389,12 @@ static char ** libxl__build_device_model_args_new(libxl__gc *gc,
+                       "-xen-domid",
+                       libxl__sprintf(gc, "%d", guest_domid), NULL);
++    flexarray_append(dm_args, "-nodefaults");
+     flexarray_append(dm_args, "-chardev");
+     flexarray_append(dm_args,
+                      libxl__sprintf(gc, "socket,id=libxl-cmd,"
+-                                    "path=%s/qmp-libxl-%d,server,nowait",
+-                                    libxl__run_dir_path(), guest_domid));
++                                    "path=%s/qmp-libxl-%u-%u,server,nowait",
++                                    libxl__run_dir_path(), guest_domid, dmid));
+     flexarray_append(dm_args, "-mon");
+     flexarray_append(dm_args, "chardev=libxl-cmd,mode=control");
+@@ -364,7 +406,8 @@ static char ** libxl__build_device_model_args_new(libxl__gc *gc,
+     if (c_info->name) {
+         flexarray_vappend(dm_args, "-name", c_info->name, NULL);
+     }
+-    if (vnc) {
++
++    if (vnc && cap_ui) {
+         int display = 0;
+         const char *listen = "127.0.0.1";
+         char *vncarg = NULL;
+@@ -395,7 +438,7 @@ static char ** libxl__build_device_model_args_new(libxl__gc *gc,
+         }
+         flexarray_append(dm_args, vncarg);
+     }
+-    if (sdl) {
++    if (sdl && cap_ui) {
+         flexarray_append(dm_args, "-sdl");
+         /* XXX sdl->{display,xauthority} into $DISPLAY/$XAUTHORITY */
+     }
+@@ -411,13 +454,27 @@ static char ** libxl__build_device_model_args_new(libxl__gc *gc,
+     if (b_info->type == LIBXL_DOMAIN_TYPE_HVM) {
+         int ioemu_nics = 0;
+-        if (b_info->u.hvm.serial) {
++        if (b_info->u.hvm.serial && cap_serial) {
+             flexarray_vappend(dm_args, "-serial", b_info->u.hvm.serial, NULL);
+         }
+-        if (libxl_defbool_val(b_info->u.hvm.nographic) && (!sdl && !vnc)) {
++        if ((libxl_defbool_val(b_info->u.hvm.nographic) && (!sdl && !vnc))
++            || !cap_ui) {
+             flexarray_append(dm_args, "-nographic");
+         }
++        else {
++            switch (b_info->u.hvm.vga.kind) {
++            case LIBXL_VGA_INTERFACE_TYPE_STD:
++                flexarray_vappend(dm_args, "-device",
++                                  GCSPRINTF("VGA,addr=%u", bdf++), NULL);
++                break;
++            case LIBXL_VGA_INTERFACE_TYPE_CIRRUS:
++                flexarray_vappend(dm_args, "-device",
++                                  GCSPRINTF("cirrus-vga,addr=%u", bdf++),
++                                  NULL);
++                break;
++            }
++        }
+         if (libxl_defbool_val(b_info->u.hvm.spice.enable)) {
+             const libxl_spice_info *spice = &b_info->u.hvm.spice;
+@@ -429,27 +486,19 @@ static char ** libxl__build_device_model_args_new(libxl__gc *gc,
+             flexarray_append(dm_args, spiceoptions);
+         }
+-        switch (b_info->u.hvm.vga.kind) {
+-        case LIBXL_VGA_INTERFACE_TYPE_STD:
+-            flexarray_vappend(dm_args, "-vga", "std", NULL);
+-            break;
+-        case LIBXL_VGA_INTERFACE_TYPE_CIRRUS:
+-            flexarray_vappend(dm_args, "-vga", "cirrus", NULL);
+-            break;
+-        }
+-
+         if (b_info->u.hvm.boot) {
+             flexarray_vappend(dm_args, "-boot",
+                     libxl__sprintf(gc, "order=%s", b_info->u.hvm.boot), NULL);
+         }
+-        if (libxl_defbool_val(b_info->u.hvm.usb) || b_info->u.hvm.usbdevice) {
++        if ((libxl_defbool_val(b_info->u.hvm.usb) || b_info->u.hvm.usbdevice)
++            && cap_ui) {
+             flexarray_append(dm_args, "-usb");
+             if (b_info->u.hvm.usbdevice) {
+                 flexarray_vappend(dm_args,
+                                   "-usbdevice", b_info->u.hvm.usbdevice, NULL);
+             }
+         }
+-        if (b_info->u.hvm.soundhw) {
++        if (b_info->u.hvm.soundhw && cap_audio) {
+             flexarray_vappend(dm_args, "-soundhw", b_info->u.hvm.soundhw, NULL);
+         }
+         if (!libxl_defbool_val(b_info->u.hvm.acpi)) {
+@@ -469,7 +518,8 @@ static char ** libxl__build_device_model_args_new(libxl__gc *gc,
+                                                          b_info->max_vcpus));
+         }
+         for (i = 0; i < num_nics; i++) {
+-            if (nics[i].nictype == LIBXL_NIC_TYPE_VIF_IOEMU) {
++            if (nics[i].nictype == LIBXL_NIC_TYPE_VIF_IOEMU
++                && libxl__dm_has_vif(nics[i].id, dmid, guest_config)) {
+                 char *smac = libxl__sprintf(gc,
+                                 LIBXL_MAC_FMT, LIBXL_MAC_BYTES(nics[i].mac));
+                 const char *ifname = libxl__device_nic_devname(gc,
+@@ -477,9 +527,9 @@ static char ** libxl__build_device_model_args_new(libxl__gc *gc,
+                                                 LIBXL_NIC_TYPE_VIF_IOEMU);
+                 flexarray_append(dm_args, "-device");
+                 flexarray_append(dm_args,
+-                   libxl__sprintf(gc, "%s,id=nic%d,netdev=net%d,mac=%s",
+-                                                nics[i].model, nics[i].devid,
+-                                                nics[i].devid, smac));
++                            GCSPRINTF("%s,id=nic%d,netdev=net%d,mac=%s,addr=%u",
++                                      nics[i].model, nics[i].devid,
++                                      nics[i].devid, smac, bdf++));
+                 flexarray_append(dm_args, "-netdev");
+                 flexarray_append(dm_args, GCSPRINTF(
+                                           "type=tap,id=net%d,ifname=%s,"
+@@ -495,7 +545,7 @@ static char ** libxl__build_device_model_args_new(libxl__gc *gc,
+             flexarray_append(dm_args, "-net");
+             flexarray_append(dm_args, "none");
+         }
+-        if (libxl_defbool_val(b_info->u.hvm.gfx_passthru)) {
++        if (libxl_defbool_val(b_info->u.hvm.gfx_passthru) && cap_ui) {
+             flexarray_append(dm_args, "-gfx_passthru");
+         }
+     } else {
+@@ -506,13 +556,14 @@ static char ** libxl__build_device_model_args_new(libxl__gc *gc,
+     if (state->saved_state) {
+         /* This file descriptor is meant to be used by QEMU */
+-        int migration_fd = open(state->saved_state, O_RDONLY);
++        int migration_fd = open(libxl__sprintf(gc, "%s.%u", state->saved_state,
++                                               dmid), O_RDONLY);
+         flexarray_append(dm_args, "-incoming");
+         flexarray_append(dm_args, libxl__sprintf(gc, "fd:%d", migration_fd));
+     }
+     for (i = 0; b_info->extra && b_info->extra[i] != NULL; i++)
+         flexarray_append(dm_args, b_info->extra[i]);
+-    flexarray_append(dm_args, "-M");
++    flexarray_append(dm_args, "-machine");
+     switch (b_info->type) {
+     case LIBXL_DOMAIN_TYPE_PV:
+         flexarray_append(dm_args, "xenpv");
+@@ -520,7 +571,11 @@ static char ** libxl__build_device_model_args_new(libxl__gc *gc,
+             flexarray_append(dm_args, b_info->extra_pv[i]);
+         break;
+     case LIBXL_DOMAIN_TYPE_HVM:
+-        flexarray_append(dm_args, "xenfv");
++        flexarray_append(dm_args,
++                         libxl__sprintf(gc,
++                                        "xenfv,xen_dmid=%u,xen_default_dev=%s,xen_emulate_ide=%s",
++                                        dmid, (cap_ui) ? "on" : "off",
++                                        (cap_ide) ? "on" : "off"));
+         for (i = 0; b_info->extra_hvm && b_info->extra_hvm[i] != NULL; i++)
+             flexarray_append(dm_args, b_info->extra_hvm[i]);
+         break;
+@@ -528,65 +583,69 @@ static char ** libxl__build_device_model_args_new(libxl__gc *gc,
+         abort();
+     }
+-    ram_size = libxl__sizekb_to_mb(b_info->max_memkb - b_info->video_memkb);
++    // Allocate ram space of 32Mo per previous device model to store rom
++    ram_size = libxl__sizekb_to_mb(b_info->max_memkb - b_info->video_memkb)
++        + 32 * dmid;
+     flexarray_append(dm_args, "-m");
+     flexarray_append(dm_args, libxl__sprintf(gc, "%"PRId64, ram_size));
+     if (b_info->type == LIBXL_DOMAIN_TYPE_HVM) {
+-        for (i = 0; i < num_disks; i++) {
+-            int disk, part;
+-            int dev_number =
+-                libxl__device_disk_dev_number(disks[i].vdev, &disk, &part);
+-            const char *format = qemu_disk_format_string(disks[i].format);
+-            char *drive;
+-
+-            if (dev_number == -1) {
+-                LIBXL__LOG(ctx, LIBXL__LOG_WARNING, "unable to determine"
+-                           " disk number for %s", disks[i].vdev);
+-                continue;
+-            }
+-
+-            if (disks[i].is_cdrom) {
+-                if (disks[i].format == LIBXL_DISK_FORMAT_EMPTY)
+-                    drive = libxl__sprintf
+-                        (gc, "if=ide,index=%d,media=cdrom", disk);
+-                else
+-                    drive = libxl__sprintf
+-                        (gc, "file=%s,if=ide,index=%d,media=cdrom,format=%s",
+-                         disks[i].pdev_path, disk, format);
+-            } else {
+-                if (disks[i].format == LIBXL_DISK_FORMAT_EMPTY) {
+-                    LIBXL__LOG(ctx, LIBXL__LOG_WARNING, "cannot support"
+-                               " empty disk format for %s", disks[i].vdev);
++        if (cap_ide) {
++            for (i = 0; i < num_disks; i++) {
++                int disk, part;
++                int dev_number =
++                    libxl__device_disk_dev_number(disks[i].vdev, &disk, &part);
++                const char *format = qemu_disk_format_string(disks[i].format);
++                char *drive;
++
++                if (dev_number == -1) {
++                    LIBXL__LOG(ctx, LIBXL__LOG_WARNING, "unable to determine"
++                               " disk number for %s", disks[i].vdev);
+                     continue;
+                 }
+-                if (format == NULL) {
+-                    LIBXL__LOG(ctx, LIBXL__LOG_WARNING, "unable to determine"
+-                               " disk image format %s", disks[i].vdev);
+-                    continue;
++                if (disks[i].is_cdrom) {
++                    if (disks[i].format == LIBXL_DISK_FORMAT_EMPTY)
++                        drive = libxl__sprintf
++                            (gc, "if=ide,index=%d,media=cdrom", disk);
++                    else
++                        drive = libxl__sprintf
++                            (gc, "file=%s,if=ide,index=%d,media=cdrom,format=%s",
++                             disks[i].pdev_path, disk, format);
++                } else {
++                    if (disks[i].format == LIBXL_DISK_FORMAT_EMPTY) {
++                        LIBXL__LOG(ctx, LIBXL__LOG_WARNING, "cannot support"
++                                   " empty disk format for %s", disks[i].vdev);
++                        continue;
++                    }
++
++                    if (format == NULL) {
++                        LIBXL__LOG(ctx, LIBXL__LOG_WARNING, "unable to determine"
++                                   " disk image format %s", disks[i].vdev);
++                        continue;
++                    }
++
++                    /*
++                     * Explicit sd disks are passed through as is.
++                     *
++                     * For other disks we translate devices 0..3 into
++                     * hd[a-d] and ignore the rest.
++                     */
++                    if (strncmp(disks[i].vdev, "sd", 2) == 0)
++                        drive = libxl__sprintf
++                            (gc, "file=%s,if=scsi,bus=0,unit=%d,format=%s",
++                             disks[i].pdev_path, disk, format);
++                    else if (disk < 4)
++                        drive = libxl__sprintf
++                            (gc, "file=%s,if=ide,index=%d,media=disk,format=%s",
++                             disks[i].pdev_path, disk, format);
++                    else
++                        continue; /* Do not emulate this disk */
+                 }
+-                /*
+-                 * Explicit sd disks are passed through as is.
+-                 *
+-                 * For other disks we translate devices 0..3 into
+-                 * hd[a-d] and ignore the rest.
+-                 */
+-                if (strncmp(disks[i].vdev, "sd", 2) == 0)
+-                    drive = libxl__sprintf
+-                        (gc, "file=%s,if=scsi,bus=0,unit=%d,format=%s",
+-                         disks[i].pdev_path, disk, format);
+-                else if (disk < 4)
+-                    drive = libxl__sprintf
+-                        (gc, "file=%s,if=ide,index=%d,media=disk,format=%s",
+-                         disks[i].pdev_path, disk, format);
+-                else
+-                    continue; /* Do not emulate this disk */
++                flexarray_append(dm_args, "-drive");
++                flexarray_append(dm_args, drive);
+             }
+-
+-            flexarray_append(dm_args, "-drive");
+-            flexarray_append(dm_args, drive);
+         }
+     }
+     flexarray_append(dm_args, NULL);
+@@ -594,7 +653,9 @@ static char ** libxl__build_device_model_args_new(libxl__gc *gc,
+ }
+ static char ** libxl__build_device_model_args(libxl__gc *gc,
+-                                        const char *dm, int guest_domid,
++                                        const char *dm,
++                                        libxl_domid guest_domid,
++                                        libxl_dmid dmid,
+                                         const libxl_domain_config *guest_config,
+                                         const libxl__domain_build_state *state)
+ {
+@@ -607,8 +668,8 @@ static char ** libxl__build_device_model_args(libxl__gc *gc,
+                                                   state);
+     case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN:
+         return libxl__build_device_model_args_new(gc, dm,
+-                                                  guest_domid, guest_config,
+-                                                  state);
++                                                  guest_domid, dmid,
++                                                  guest_config, state);
+     default:
+         LIBXL__LOG_ERRNO(ctx, LIBXL__LOG_ERROR, "unknown device model version %d",
+                          guest_config->b_info.device_model_version);
+@@ -729,7 +790,8 @@ char *libxl__stub_dm_name(libxl__gc *gc, const char *guest_name)
+     return libxl__sprintf(gc, "%s-dm", guest_name);
+ }
+-void libxl__spawn_stub_dm(libxl__egc *egc, libxl__stub_dm_spawn_state *sdss)
++static void libxl__spawn_stub_dm(libxl__egc *egc,
++                                 libxl__stub_dm_spawn_state *sdss)
+ {
+     STATE_AO_GC(sdss->dm.spawn.ao);
+     libxl_ctx *ctx = libxl__gc_owner(gc);
+@@ -815,7 +877,7 @@ void libxl__spawn_stub_dm(libxl__egc *egc, libxl__stub_dm_spawn_state *sdss)
+     if (ret)
+         goto out;
+-    args = libxl__build_device_model_args(gc, "stubdom-dm", guest_domid,
++    args = libxl__build_device_model_args(gc, "stubdom-dm", guest_domid, 0,
+                                           guest_config, d_state);
+     if (!args) {
+         ret = ERROR_FAIL;
+@@ -871,12 +933,16 @@ out:
+     spawn_stubdom_pvqemu_cb(egc, &sdss->pvqemu, ret);
+ }
++static void libxl__spawn_local_dm(libxl__egc *egc,
++                                  libxl__dm_spawn_state *sdss);
++
+ static void spawn_stub_launch_dm(libxl__egc *egc,
+                                  libxl__multidev *multidev, int ret)
+ {
+     libxl__stub_dm_spawn_state *sdss = CONTAINER_OF(multidev, *sdss, multidev);
+     STATE_AO_GC(sdss->dm.spawn.ao);
+     libxl_ctx *ctx = libxl__gc_owner(gc);
++    libxl_dmid dmid = sdss->dm.dmid;
+     int i, num_console = STUBDOM_SPECIAL_CONSOLES;
+     libxl__device_console *console;
+@@ -937,7 +1003,8 @@ static void spawn_stub_launch_dm(libxl__egc *egc,
+                 break;
+             case STUBDOM_CONSOLE_SAVE:
+                 console[i].output = libxl__sprintf(gc, "file:%s",
+-                                libxl__device_model_savefile(gc, guest_domid));
++                                libxl__device_model_savefile(gc, guest_domid,
++                                                             dmid));
+                 break;
+             case STUBDOM_CONSOLE_RESTORE:
+                 if (d_state->saved_state)
+@@ -1049,10 +1116,11 @@ static void device_model_spawn_outcome(libxl__egc *egc,
+                                        libxl__dm_spawn_state *dmss,
+                                        int rc);
+-void libxl__spawn_local_dm(libxl__egc *egc, libxl__dm_spawn_state *dmss)
++static void libxl__spawn_local_dm(libxl__egc *egc, libxl__dm_spawn_state *dmss)
+ {
+     /* convenience aliases */
+     const int domid = dmss->guest_domid;
++    const libxl_dmid dmid = dmss->dmid;
+     libxl__domain_build_state *const state = dmss->build_state;
+     libxl__spawn_state *const spawn = &dmss->spawn;
+@@ -1062,7 +1130,8 @@ void libxl__spawn_local_dm(libxl__egc *egc, libxl__dm_spawn_state *dmss)
+     libxl_domain_config *guest_config = dmss->guest_config;
+     const libxl_domain_create_info *c_info = &guest_config->c_info;
+     const libxl_domain_build_info *b_info = &guest_config->b_info;
+-    const libxl_vnc_info *vnc = libxl__dm_vnc(guest_config);
++    const libxl_vnc_info *vnc = libxl__dm_vnc(dmid, guest_config);
++    const libxl_dm *dm_config = &guest_config->dms[dmid];
+     char *path, *logfile;
+     int logfile_w, null;
+     int rc;
+@@ -1071,12 +1140,13 @@ void libxl__spawn_local_dm(libxl__egc *egc, libxl__dm_spawn_state *dmss)
+     char *vm_path;
+     char **pass_stuff;
+     const char *dm;
++    const char *name;
+     if (libxl_defbool_val(b_info->device_model_stubdomain)) {
+         abort();
+     }
+-    dm = libxl__domain_device_model(gc, b_info);
++    dm = libxl__domain_device_model(gc, dmid, b_info);
+     if (!dm) {
+         rc = ERROR_FAIL;
+         goto out;
+@@ -1087,7 +1157,7 @@ void libxl__spawn_local_dm(libxl__egc *egc, libxl__dm_spawn_state *dmss)
+         rc = ERROR_FAIL;
+         goto out;
+     }
+-    args = libxl__build_device_model_args(gc, dm, domid, guest_config, state);
++    args = libxl__build_device_model_args(gc, dm, domid, dmid, guest_config, state);
+     if (!args) {
+         rc = ERROR_FAIL;
+         goto out;
+@@ -1101,7 +1171,7 @@ void libxl__spawn_local_dm(libxl__egc *egc, libxl__dm_spawn_state *dmss)
+         free(path);
+     }
+-    path = libxl__sprintf(gc, "/local/domain/0/device-model/%d", domid);
++    path = libxl__sprintf(gc, "/local/domain/0/dms/%u/%u", domid, dmid);
+     xs_mkdir(ctx->xsh, XBT_NULL, path);
+     if (b_info->type == LIBXL_DOMAIN_TYPE_HVM &&
+@@ -1110,8 +1180,13 @@ void libxl__spawn_local_dm(libxl__egc *egc, libxl__dm_spawn_state *dmss)
+         libxl__xs_write(gc, XBT_NULL, libxl__sprintf(gc, "%s/disable_pf", path),
+                     "%d", !libxl_defbool_val(b_info->u.hvm.xen_platform_pci));
++
++    name = dm_config->name;
++    if (!name)
++        name = libxl__sprintf(gc, "%u", dmid);
++
+     libxl_create_logfile(ctx,
+-                         libxl__sprintf(gc, "qemu-dm-%s", c_info->name),
++                         libxl__sprintf(gc, "qemu-%s-%s", name, c_info->name),
+                          &logfile);
+     logfile_w = open(logfile, O_WRONLY|O_CREAT|O_APPEND, 0644);
+     free(logfile);
+@@ -1143,10 +1218,10 @@ retry_transaction:
+     for (arg = args; *arg; arg++)
+         LIBXL__LOG(CTX, XTL_DEBUG, "  %s", *arg);
+-    spawn->what = GCSPRINTF("domain %d device model", domid);
+-    spawn->xspath = GCSPRINTF("/local/domain/0/device-model/%d/state", domid);
++    spawn->what = GCSPRINTF("domain %d device model %s", domid, name);
++    spawn->xspath = GCSPRINTF("/local/domain/0/dms/%u/%u/state", domid, dmid);
+     spawn->timeout_ms = LIBXL_DEVICE_MODEL_START_TIMEOUT * 1000;
+-    spawn->pidpath = GCSPRINTF("%s/image/device-model-pid", dom_path);
++    spawn->pidpath = GCSPRINTF("%s/image/dms/%u-pid", dom_path, dmid);
+     spawn->midproc_cb = libxl__spawn_record_pid;
+     spawn->confirm_cb = device_model_confirm;
+     spawn->failure_cb = device_model_startup_failed;
+@@ -1171,6 +1246,32 @@ out:
+         device_model_spawn_outcome(egc, dmss, rc);
+ }
++void libxl__spawn_dm(libxl__egc *egc, libxl__stub_dm_spawn_state *dmss)
++{
++    libxl__domain_create_state *dcs = dmss->dm.dcs;
++    libxl_domain_config *const d_config = dcs->guest_config;
++    STATE_AO_GC(dmss->dm.spawn.ao);
++
++    switch (d_config->c_info.type) {
++    case LIBXL_DOMAIN_TYPE_HVM:
++    {
++        dmss->dm.guest_domid = dcs->guest_domid;
++        if (libxl_defbool_val(d_config->b_info.device_model_stubdomain))
++            libxl__spawn_stub_dm(egc, dmss);
++        else
++            libxl__spawn_local_dm(egc, &dmss->dm);
++        break;
++    }
++    case LIBXL_DOMAIN_TYPE_PV:
++    {
++        dmss->dm.guest_domid = dcs->guest_domid;
++        libxl__spawn_local_dm(egc, &dmss->dm);
++        break;
++    }
++    default:
++        LIBXL__LOG(CTX, XTL_ERROR, "Unknow type %u", d_config->c_info.type);
++    }
++}
+ static void device_model_confirm(libxl__egc *egc, libxl__spawn_state *spawn,
+                                  const char *xsdata)
+@@ -1207,6 +1308,7 @@ static void device_model_spawn_outcome(libxl__egc *egc,
+ {
+     STATE_AO_GC(dmss->spawn.ao);
+     int ret2;
++    char *filename;
+     if (rc)
+         LOG(ERROR, "%s: spawn failed (rc=%d)", dmss->spawn.what, rc);
+@@ -1214,10 +1316,11 @@ static void device_model_spawn_outcome(libxl__egc *egc,
+     libxl__domain_build_state *state = dmss->build_state;
+     if (state->saved_state) {
+-        ret2 = unlink(state->saved_state);
++        filename = GCSPRINTF("%s.%u", state->saved_state, dmss->dmid);
++        ret2 = unlink(filename);
+         if (ret2) {
+             LOGE(ERROR, "%s: failed to remove device-model state %s",
+-                 dmss->spawn.what, state->saved_state);
++                 dmss->spawn.what, filename);
+             rc = ERROR_FAIL;
+             goto out;
+         }
+@@ -1229,12 +1332,14 @@ static void device_model_spawn_outcome(libxl__egc *egc,
+     dmss->callback(egc, dmss, rc);
+ }
+-int libxl__destroy_device_model(libxl__gc *gc, uint32_t domid)
++static int libxl__destroy_device_model(libxl__gc *gc, libxl_domid domid,
++                                       libxl_dmid dmid)
+ {
+     char *pid;
+     int ret;
+-    pid = libxl__xs_read(gc, XBT_NULL, libxl__sprintf(gc, "/local/domain/%d/image/device-model-pid", domid));
++    pid = libxl__xs_read(gc, XBT_NULL, GCSPRINTF("/local/domain/%u/image/dms/%u-pid",
++                                                 domid, dmid));
+     if (!pid || !atoi(pid)) {
+         LOG(ERROR, "could not find device-model's pid for dom %u", domid);
+         ret = ERROR_FAIL;
+@@ -1300,6 +1405,60 @@ out:
+     return ret;
+ }
++libxl_dmid *libxl__list_device_models(libxl__gc *gc, libxl_domid domid,
++                                      unsigned *num_dms)
++{
++    unsigned int i = 0;
++    char **dir = NULL;
++    libxl_dmid *dms = NULL;
++    unsigned int num = 0;
++
++    dir = libxl__xs_directory(gc, XBT_NULL,
++                              GCSPRINTF("/local/domain/0/dms/%u", domid),
++                              &num);
++    if (dir) {
++        GCNEW_ARRAY(dms, num);
++
++        if (num_dms)
++            *num_dms = num;
++
++        for (i = 0; i < num; i++) {
++            dms[i] = atoi(dir[i]);
++        }
++
++        return dms;
++    }
++    else
++        return NULL;
++}
++
++int libxl__destroy_device_models(libxl__gc *gc,
++                                 libxl_domid domid)
++{
++    libxl_ctx *ctx = libxl__gc_owner(gc);
++    int ret = 0;
++    libxl_dmid *dms = NULL;
++    unsigned int num_dms;
++    unsigned int i;
++
++    dms = libxl__list_device_models(gc, domid, &num_dms);
++
++    if (!dms)
++        return ERROR_FAIL;
++
++    for (i = 0; i < num_dms; i++)
++        ret |= libxl__destroy_device_model(gc, domid, dms[i]);
++
++    if (!ret) {
++        xs_rm(ctx->xsh, XBT_NULL, libxl__sprintf(gc, "/local/domain/0/dms/%u",
++                                                 domid));
++        xs_rm(ctx->xsh, XBT_NULL, libxl__sprintf(gc, "/local/domain/0/device-model/%u",
++                                                 domid));
++    }
++
++    return ret;
++ }
++
+ /*
+  * Local variables:
+  * mode: C
+diff --git a/tools/libxl/libxl_dom.c b/tools/libxl/libxl_dom.c
+index 06d5e4f..475fea8 100644
+--- a/tools/libxl/libxl_dom.c
++++ b/tools/libxl/libxl_dom.c
+@@ -544,6 +544,7 @@ int libxl__build_hvm(libxl__gc *gc, uint32_t domid,
+     libxl_ctx *ctx = libxl__gc_owner(gc);
+     int ret, rc = ERROR_FAIL;
+     const char *firmware = libxl__domain_firmware(gc, info);
++    libxl_domain_config *d_config = CONTAINER_OF(info, *d_config, b_info);
+     if (!firmware)
+         goto out;
+@@ -552,7 +553,8 @@ int libxl__build_hvm(libxl__gc *gc, uint32_t domid,
+         domid,
+         (info->max_memkb - info->video_memkb) / 1024,
+         (info->target_memkb - info->video_memkb) / 1024,
+-        firmware);
++        firmware,
++        state->num_dms * 2 + 1);
+     if (ret) {
+         LIBXL__LOG_ERRNOVAL(ctx, LIBXL__LOG_ERROR, ret, "hvm building failed");
+         goto out;
+diff --git a/tools/libxl/libxl_internal.h b/tools/libxl/libxl_internal.h
+index 71e4970..2e6eedc 100644
+--- a/tools/libxl/libxl_internal.h
++++ b/tools/libxl/libxl_internal.h
+@@ -867,6 +867,7 @@ typedef struct {
+     unsigned long console_mfn;
+     unsigned long vm_generationid_addr;
++    unsigned long num_dms;
+     char *saved_state;
+@@ -887,7 +888,7 @@ _hidden int libxl__build_hvm(libxl__gc *gc, uint32_t domid,
+               libxl_domain_build_info *info,
+               libxl__domain_build_state *state);
+-_hidden int libxl__qemu_traditional_cmd(libxl__gc *gc, uint32_t domid,
++_hidden int libxl__qemu_traditional_cmd(libxl__gc *gc, libxl_domid domid,
+                                         const char *cmd);
+ _hidden int libxl__domain_rename(libxl__gc *gc, uint32_t domid,
+                                  const char *old_name, const char *new_name,
+@@ -947,6 +948,8 @@ _hidden int libxl__domain_create_info_setdefault(libxl__gc *gc,
+                                         libxl_domain_create_info *c_info);
+ _hidden int libxl__domain_build_info_setdefault(libxl__gc *gc,
+                                         libxl_domain_build_info *b_info);
++_hidden int libxl__dm_setdefault(libxl__gc *gc,
++                                 libxl_dm *dm);
+ _hidden int libxl__device_disk_setdefault(libxl__gc *gc,
+                                           libxl_device_disk *disk);
+ _hidden int libxl__device_nic_setdefault(libxl__gc *gc, libxl_device_nic *nic,
+@@ -1042,7 +1045,9 @@ _hidden char *libxl__devid_to_localdev(libxl__gc *gc, int devid);
+ /* from libxl_pci */
+-_hidden int libxl__device_pci_add(libxl__gc *gc, uint32_t domid, libxl_device_pci *pcidev, int starting);
++_hidden int libxl__device_pci_add(libxl__gc *gc, libxl_domid domid,
++                                  libxl_device_pci *pcidev,
++                                  int starting);
+ _hidden int libxl__create_pci_backend(libxl__gc *gc, uint32_t domid,
+                                       libxl_device_pci *pcidev, int num);
+ _hidden int libxl__device_pci_destroy_all(libxl__gc *gc, uint32_t domid);
+@@ -1272,6 +1277,7 @@ _hidden int libxl__domain_build(libxl__gc *gc,
+ /* for device model creation */
+ _hidden const char *libxl__domain_device_model(libxl__gc *gc,
++                                        libxl_dmid dmid,
+                                         const libxl_domain_build_info *info);
+ _hidden int libxl__need_xenpv_qemu(libxl__gc *gc,
+         int nr_consoles, libxl__device_console *consoles,
+@@ -1281,7 +1287,9 @@ _hidden int libxl__need_xenpv_qemu(libxl__gc *gc,
+    * return pass *starting_r (which will be non-0) to
+    * libxl__confirm_device_model_startup or libxl__detach_device_model. */
+ _hidden int libxl__wait_for_device_model(libxl__gc *gc,
+-                                uint32_t domid, char *state,
++                                libxl_domid domid,
++                                libxl_dmid dmid,
++                                char *state,
+                                 libxl__spawn_starting *spawning,
+                                 int (*check_callback)(libxl__gc *gc,
+                                                       uint32_t domid,
+@@ -1289,9 +1297,14 @@ _hidden int libxl__wait_for_device_model(libxl__gc *gc,
+                                                       void *userdata),
+                                 void *check_callback_userdata);
+-_hidden int libxl__destroy_device_model(libxl__gc *gc, uint32_t domid);
++_hidden libxl_dmid *libxl__list_device_models(libxl__gc *gc,
++                                              libxl_domid domid,
++                                              unsigned int *num_dms);
+-_hidden const libxl_vnc_info *libxl__dm_vnc(const libxl_domain_config *g_cfg);
++_hidden int libxl__destroy_device_models(libxl__gc *gc, libxl_domid domid);
++
++_hidden const libxl_vnc_info *libxl__dm_vnc(libxl_dmid dmid,
++                                            const libxl_domain_config *g_cfg);
+ _hidden char *libxl__abs_path(libxl__gc *gc, const char *s, const char *path);
+@@ -2427,10 +2440,10 @@ struct libxl__dm_spawn_state {
+     libxl_domain_config *guest_config;
+     libxl__domain_build_state *build_state; /* relates to guest_domid */
+     libxl__dm_spawn_cb *callback;
++    libxl_dmid dmid;
++    struct libxl__domain_create_state *dcs;
+ };
+-_hidden void libxl__spawn_local_dm(libxl__egc *egc, libxl__dm_spawn_state*);
+-
+ /* Stubdom device models. */
+ typedef struct {
+@@ -2447,7 +2460,7 @@ typedef struct {
+     libxl__multidev multidev;
+ } libxl__stub_dm_spawn_state;
+-_hidden void libxl__spawn_stub_dm(libxl__egc *egc, libxl__stub_dm_spawn_state*);
++_hidden void libxl__spawn_dm(libxl__egc *egc, libxl__stub_dm_spawn_state*);
+ _hidden char *libxl__stub_dm_name(libxl__gc *gc, const char * guest_name);
+@@ -2470,7 +2483,8 @@ struct libxl__domain_create_state {
+     int guest_domid;
+     libxl__domain_build_state build_state;
+     libxl__bootloader_state bl;
+-    libxl__stub_dm_spawn_state dmss;
++    libxl_dmid current_dmid;
++    libxl__stub_dm_spawn_state* dmss;
+         /* If we're not doing stubdom, we use only dmss.dm,
+          * for the non-stubdom device model. */
+     libxl__save_helper_state shs;
+@@ -2527,7 +2541,9 @@ _hidden void libxl__domain_save_device_model(libxl__egc *egc,
+                                      libxl__domain_suspend_state *dss,
+                                      libxl__save_device_model_cb *callback);
+-_hidden const char *libxl__device_model_savefile(libxl__gc *gc, uint32_t domid);
++_hidden const char *libxl__device_model_savefile(libxl__gc *gc,
++                                                 libxl_domid domid,
++                                                 libxl_dmid dmid);
+ /*
+-- 
+Julien Grall
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<96d6442c911f6ed7f6cb24670901b151fa1570d6.1345552068.git.julien.grall@citrix.com> b/config/examples/test/corpus/<96d6442c911f6ed7f6cb24670901b151fa1570d6.1345552068.git.julien.grall@citrix.com>
new file mode 100644 (file)
index 0000000..037cb20
--- /dev/null
@@ -0,0 +1,316 @@
+From xen-devel-bounces@lists.xen.org Wed Aug 22 19:58:50 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 22 Aug 2012 19:58:50 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T4G8Y-0002lf-D8
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 22 Aug 2012 19:58:50 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T4G5A-0006eT-GN; Wed, 22 Aug 2012 18:55:12 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <julien.grall@citrix.com>) id 1T4G58-0006d8-Mc
+       for xen-devel@lists.xen.org; Wed, 22 Aug 2012 18:55:11 +0000
+Received: from [85.158.138.51:25959] by server-10.bemta-3.messagelabs.com id
+       3A/4C-20518-D0B25305; Wed, 22 Aug 2012 18:55:09 +0000
+X-Env-Sender: julien.grall@citrix.com
+X-Msg-Ref: server-5.tower-174.messagelabs.com!1345661707!27566656!1
+X-Originating-IP: [66.165.176.63]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyNzMzNjM=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 9650 invoked from network); 22 Aug 2012 18:55:08 -0000
+Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
+       by server-5.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
+       22 Aug 2012 18:55:08 -0000
+X-IronPort-AV: E=Sophos;i="4.80,809,1344225600"; d="scan'208";a="205943108"
+Received: from ftlpmailmx01.citrite.net ([10.13.107.65])
+       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       22 Aug 2012 14:55:06 -0400
+Received: from meteora.cam.xci-test.com (10.80.248.22) by smtprelay.citrix.com
+       (10.13.107.65) with Microsoft SMTP Server id 8.3.213.0;
+       Wed, 22 Aug 2012 14:55:06 -0400
+From: Julien Grall <julien.grall@citrix.com>
+To: qemu-devel@nongnu.org
+Date: Wed, 22 Aug 2012 13:31:47 +0100
+Message-ID: <96d6442c911f6ed7f6cb24670901b151fa1570d6.1345552068.git.julien.grall@citrix.com>
+X-Mailer: git-send-email 1.7.2.5
+In-Reply-To: <cover.1345552068.git.julien.grall@citrix.com>
+References: <cover.1345552068.git.julien.grall@citrix.com>
+MIME-Version: 1.0
+Cc: Julien Grall <julien.grall@citrix.com>, christian.limpach@gmail.com,
+       Stefano.Stabellini@eu.citrix.com, xen-devel@lists.xen.org
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DATE_IN_PAST_06_12,
+       RCVD_IN_DNSWL_MED,RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham
+       version=3.3.1
+Subject: [Xen-devel] [XEN][RFC PATCH V2 01/17] hvm: Modify interface to
+       support multiple ioreq server
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+Add structure to handle ioreq server. It's a server which can
+handle a range of IO (MMIO and/or PIO) and emulate a PCI device.
+Each server has its own shared page to receive ioreq. So
+we have introduced to HVM PARAM to set/get the first and
+the last shared page used for ioreq. With this id, the server
+is able to retrieve its page.
+
+Introduce a new kind of ioreq type IOREQ_TYPE_PCICONFIG
+which permits to forward easily PCI config space access.
+
+Signed-off-by: Julien Grall <julien.grall@citrix.com>
+---
+ xen/include/asm-x86/hvm/domain.h |   25 ++++++++++++++++++-
+ xen/include/asm-x86/hvm/vcpu.h   |    4 ++-
+ xen/include/public/hvm/hvm_op.h  |   51 ++++++++++++++++++++++++++++++++++++++
+ xen/include/public/hvm/ioreq.h   |    1 +
+ xen/include/public/hvm/params.h  |    6 +++-
+ xen/include/public/xen.h         |    1 +
+ xen/include/xen/hvm/pci_emul.h   |   29 +++++++++++++++++++++
+ 7 files changed, 114 insertions(+), 3 deletions(-)
+ create mode 100644 xen/include/xen/hvm/pci_emul.h
+
+diff --git a/xen/include/asm-x86/hvm/domain.h b/xen/include/asm-x86/hvm/domain.h
+index 27b3de5..49d1ca0 100644
+--- a/xen/include/asm-x86/hvm/domain.h
++++ b/xen/include/asm-x86/hvm/domain.h
+@@ -28,6 +28,7 @@
+ #include <asm/hvm/vioapic.h>
+ #include <asm/hvm/io.h>
+ #include <xen/hvm/iommu.h>
++#include <xen/hvm/pci_emul.h>
+ #include <asm/hvm/viridian.h>
+ #include <asm/hvm/vmx/vmcs.h>
+ #include <asm/hvm/svm/vmcb.h>
+@@ -41,14 +42,36 @@ struct hvm_ioreq_page {
+     void *va;
+ };
++struct hvm_io_range {
++    uint64_t s, e;
++    struct hvm_io_range *next;
++};
++
++struct hvm_ioreq_server {
++    unsigned int id;
++    domid_t domid;
++    struct hvm_io_range *mmio_range_list;
++    struct hvm_io_range *portio_range_list;
++    struct hvm_ioreq_server *next;
++    struct hvm_ioreq_page ioreq;
++    struct hvm_ioreq_page buf_ioreq;
++    unsigned int buf_ioreq_evtchn;
++};
++
+ struct hvm_domain {
++    /* Use for the IO handles by Xen */
+     struct hvm_ioreq_page  ioreq;
+-    struct hvm_ioreq_page  buf_ioreq;
++    struct hvm_ioreq_server *ioreq_server_list;
++    uint32_t               nr_ioreq_server;
++    spinlock_t               ioreq_server_lock;
+     struct pl_time         pl_time;
+     struct hvm_io_handler *io_handler;
++    /* PCI Information */
++    struct pci_root_emul pci_root;
++
+     /* Lock protects access to irq, vpic and vioapic. */
+     spinlock_t             irq_lock;
+     struct hvm_irq         irq;
+diff --git a/xen/include/asm-x86/hvm/vcpu.h b/xen/include/asm-x86/hvm/vcpu.h
+index 9d68ed2..812b16e 100644
+--- a/xen/include/asm-x86/hvm/vcpu.h
++++ b/xen/include/asm-x86/hvm/vcpu.h
+@@ -125,7 +125,9 @@ struct hvm_vcpu {
+     spinlock_t          tm_lock;
+     struct list_head    tm_list;
+-    int                 xen_port;
++    struct hvm_ioreq_page     *ioreq;
++    /* PCI Information */
++    uint32_t          pci_cf8;
+     bool_t              flag_dr_dirty;
+     bool_t              debug_state_latch;
+diff --git a/xen/include/public/hvm/hvm_op.h b/xen/include/public/hvm/hvm_op.h
+index a9aab4b..6b17c5f 100644
+--- a/xen/include/public/hvm/hvm_op.h
++++ b/xen/include/public/hvm/hvm_op.h
+@@ -23,6 +23,9 @@
+ #include "../xen.h"
+ #include "../trace.h"
++#include "../event_channel.h"
++
++#include "hvm_info_table.h" /* HVM_MAX_VCPUS */
+ /* Get/set subcommands: extra argument == pointer to xen_hvm_param struct. */
+ #define HVMOP_set_param           0
+@@ -238,6 +241,54 @@ struct xen_hvm_inject_trap {
+ typedef struct xen_hvm_inject_trap xen_hvm_inject_trap_t;
+ DEFINE_XEN_GUEST_HANDLE(xen_hvm_inject_trap_t);
++#define HVMOP_register_ioreq_server 20
++struct xen_hvm_register_ioreq_server {
++    domid_t domid;  /* IN - domain to be serviced */
++    ioservid_t id;  /* OUT - handle for identifying this server */
++};
++typedef struct xen_hvm_register_ioreq_server xen_hvm_register_ioreq_server_t;
++DEFINE_XEN_GUEST_HANDLE(xen_hvm_register_ioreq_server_t);
++
++#define HVMOP_get_ioreq_server_buf_channel 21
++struct xen_hvm_get_ioreq_server_buf_channel {
++    domid_t domid;            /* IN - domain to be serviced */
++    ioservid_t id;            /* IN - handle from HVMOP_register_ioreq_server */
++    evtchn_port_t channel;  /* OUT - buf ioreq channel */
++};
++typedef struct xen_hvm_get_ioreq_server_buf_channel xen_hvm_get_ioreq_server_buf_channel_t;
++DEFINE_XEN_GUEST_HANDLE(xen_hvm_get_ioreq_server_buf_channel_t);
++
++#define HVMOP_map_io_range_to_ioreq_server 22
++struct xen_hvm_map_io_range_to_ioreq_server {
++    domid_t domid;          /* IN - domain to be serviced */
++    int is_mmio;         /* IN - MMIO or port IO? */
++    ioservid_t id;          /* IN - handle from HVMOP_register_ioreq_server */
++    uint64_aligned_t s, e;  /* IN - inclusive start and end of range */
++};
++typedef struct xen_hvm_map_io_range_to_ioreq_server xen_hvm_map_io_range_to_ioreq_server_t;
++DEFINE_XEN_GUEST_HANDLE(xen_hvm_map_io_range_to_ioreq_server_t);
++
++#define HVMOP_unmap_io_range_from_ioreq_server 23
++struct xen_hvm_unmap_io_range_from_ioreq_server {
++    domid_t domid;          /* IN - domain to be serviced */
++    uint8_t is_mmio;        /* IN - MMIO or port IO? */
++    ioservid_t id;          /* IN - handle from HVMOP_register_ioreq_server */
++    uint64_aligned_t addr;  /* IN - address inside the range to remove */
++};
++typedef struct xen_hvm_unmap_io_range_from_ioreq_server xen_hvm_unmap_io_range_from_ioreq_server_t;
++DEFINE_XEN_GUEST_HANDLE(xen_hvm_unmap_io_range_from_ioreq_server_t);
++
++#define HVMOP_register_pcidev 24
++struct xen_hvm_register_pcidev {
++    domid_t domid;       /* IN - domain to be serviced */
++    ioservid_t id;       /* IN - handle from HVMOP_register_ioreq_server */
++    /* IN - PCI identification in PCI topology (domain:bus:device:function) */
++    uint8_t domain, bus, device, function;
++};
++typedef struct xen_hvm_register_pcidev xen_hvm_register_pcidev_t;
++DEFINE_XEN_GUEST_HANDLE(xen_hvm_register_pcidev_t);
++
++
+ #endif /* defined(__XEN__) || defined(__XEN_TOOLS__) */
+ #define HVMOP_get_mem_type    15
+diff --git a/xen/include/public/hvm/ioreq.h b/xen/include/public/hvm/ioreq.h
+index 4022a1d..87aacd3 100644
+--- a/xen/include/public/hvm/ioreq.h
++++ b/xen/include/public/hvm/ioreq.h
+@@ -34,6 +34,7 @@
+ #define IOREQ_TYPE_PIO          0 /* pio */
+ #define IOREQ_TYPE_COPY         1 /* mmio ops */
++#define IOREQ_TYPE_PCI_CONFIG   2 /* pci config space ops */
+ #define IOREQ_TYPE_TIMEOFFSET   7
+ #define IOREQ_TYPE_INVALIDATE   8 /* mapcache */
+diff --git a/xen/include/public/hvm/params.h b/xen/include/public/hvm/params.h
+index 55c1b57..309ac1b 100644
+--- a/xen/include/public/hvm/params.h
++++ b/xen/include/public/hvm/params.h
+@@ -147,6 +147,10 @@
+ #define HVM_PARAM_ACCESS_RING_PFN   28
+ #define HVM_PARAM_SHARING_RING_PFN  29
+-#define HVM_NR_PARAMS          30
++/* Param for ioreq servers */
++#define HVM_PARAM_IO_PFN_FIRST        30
++#define HVM_PARAM_IO_PFN_LAST 31
++
++#define HVM_NR_PARAMS          32
+ #endif /* __XEN_PUBLIC_HVM_PARAMS_H__ */
+diff --git a/xen/include/public/xen.h b/xen/include/public/xen.h
+index b2f6c50..0de17b2 100644
+--- a/xen/include/public/xen.h
++++ b/xen/include/public/xen.h
+@@ -466,6 +466,7 @@ DEFINE_XEN_GUEST_HANDLE(mmuext_op_t);
+ #ifndef __ASSEMBLY__
+ typedef uint16_t domid_t;
++typedef uint32_t ioservid_t;
+ /* Domain ids >= DOMID_FIRST_RESERVED cannot be used for ordinary domains. */
+ #define DOMID_FIRST_RESERVED (0x7FF0U)
+diff --git a/xen/include/xen/hvm/pci_emul.h b/xen/include/xen/hvm/pci_emul.h
+new file mode 100644
+index 0000000..4dfb577
+--- /dev/null
++++ b/xen/include/xen/hvm/pci_emul.h
+@@ -0,0 +1,29 @@
++#ifndef PCI_EMUL_H_
++# define PCI_EMUL_H_
++
++# include <xen/radix-tree.h>
++# include <xen/spinlock.h>
++# include <xen/types.h>
++
++void hvm_init_pci_emul(struct domain *d);
++void hvm_destroy_pci_emul(struct domain *d);
++int hvm_register_pcidev(domid_t domid, ioservid_t id,
++                        uint8_t domain, uint8_t bus,
++                        uint8_t device, uint8_t function);
++
++struct pci_root_emul {
++    spinlock_t pci_lock;
++    struct radix_tree_root pci_list;
++};
++
++#endif /* !PCI_EMUL_H_ */
++
++/*
++ * Local variables:
++ * mode: C
++ * c-set-style: "BSD"
++ * c-basic-offset: 4
++ * tab-width: 4
++ * indent-tabs-mode: nil
++ * End:
++ */
+-- 
+Julien Grall
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<A8575D3216834DFCAA86F5B2B3546613@LarryE6400> b/config/examples/test/corpus/<A8575D3216834DFCAA86F5B2B3546613@LarryE6400>
new file mode 100644 (file)
index 0000000..0bee902
--- /dev/null
@@ -0,0 +1,251 @@
+From xen-devel-bounces@lists.xen.org Sat Jul 21 02:04:58 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Sat, 21 Jul 2012 02:04:58 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SsO7r-0001bL-Ke
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Sat, 21 Jul 2012 02:04:58 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SsO25-0005pw-FF; Sat, 21 Jul 2012 00:58:57 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <lmw@satx.rr.com>) id 1SsO24-0005pr-BQ
+       for xen-devel@lists.xen.org; Sat, 21 Jul 2012 00:58:56 +0000
+Received: from [85.158.139.83:21328] by server-3.bemta-5.messagelabs.com id
+       4A/4F-03367-FCEF9005; Sat, 21 Jul 2012 00:58:55 +0000
+X-Env-Sender: lmw@satx.rr.com
+X-Msg-Ref: server-7.tower-182.messagelabs.com!1342832334!23936985!1
+X-Originating-IP: [75.180.132.120]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       QmFkIElQOiA3NS4xODAuMTMyLjEyMCA9PiA4OTUwMA==\n,sa_preprocessor: 
+       QmFkIElQOiA3NS4xODAuMTMyLjEyMCA9PiA4OTUwMA==\n,HTML_MESSAGE
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.2; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 14553 invoked from network); 21 Jul 2012 00:58:54 -0000
+Received: from cdptpa-omtalb.mail.rr.com (HELO cdptpa-omtalb.mail.rr.com)
+       (75.180.132.120) by server-7.tower-182.messagelabs.com with SMTP;
+       21 Jul 2012 00:58:54 -0000
+X-Authority-Analysis: v=2.0 cv=QrvcLCOd c=1 sm=0 a=r1aGfrPin9q3IVjnGKu9DA==:17
+       a=mkDZTsCubmwA:10 a=nmTPCi7FtckA:10 a=05ChyHeVI94A:10
+       a=ayC55rCoAAAA:8 a=wRPtPBoL2NLJFthSNDMA:9 a=CjuIK1q_8ugA:10
+       a=SSmOFEACAAAA:8 a=hR34-ut9ZwHx7xY_JFUA:9 a=gKO2Hq4RSVkA:10
+       a=UiCQ7L4-1S4A:10 a=hTZeC7Yk6K0A:10
+       a=r1aGfrPin9q3IVjnGKu9DA==:117
+X-Cloudmark-Score: 0
+X-Originating-IP: 66.69.0.49
+Received: from [66.69.0.49] ([66.69.0.49:49569] helo=LarryE6400)
+       by cdptpa-oedge04.mail.rr.com (envelope-from <lmw@satx.rr.com>)
+       (ecelerity 2.2.3.46 r()) with ESMTP
+       id E3/DA-28917-ECEF9005; Sat, 21 Jul 2012 00:58:54 +0000
+From: "Larry White" <lmw@satx.rr.com>
+To: <xen-devel@lists.xen.org>
+Date: Fri, 20 Jul 2012 19:58:49 -0500
+Message-ID: <A8575D3216834DFCAA86F5B2B3546613@LarryE6400>
+MIME-Version: 1.0
+X-Mailer: Microsoft Office Outlook 11
+X-MimeOLE: Produced By Microsoft MimeOLE V6.1.7601.17609
+Thread-Index: Ac1m2/yuJJyO+ROQQxKMLV1mGoHskA==
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: multipart/mixed; boundary="===============2993385947562903206=="
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,HTML_MESSAGE,
+       RCVD_IN_DNSWL_MED,T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham
+       version=3.3.1
+Subject: [Xen-devel] XenStore as a data transfer path?
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+This is a multi-part message in MIME format.
+
+--===============2993385947562903206==
+Content-Type: multipart/alternative;
+       boundary="----=_NextPart_000_0003_01CD66B2.146DE290"
+
+This is a multi-part message in MIME format.
+
+------=_NextPart_000_0003_01CD66B2.146DE290
+Content-Type: text/plain;
+       charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+
+Can the XenStore database be accessed by domU's?  
+
+
+If so, could it be used to pass small amounts of data back and forth between
+dom0 and domU's using XenStore key entries?  If this is possible, it would
+seem that this could eliminate the need to create a "device" driver for a
+simple communication path.
+
+
+Also, what type of Guest Fedora Kernel would be needed to perform this type
+of Xen functionality in a HVM domU guest configuration?  I assume that a
+normal Fedora kernel would not work.  However, I have read the Fedora 14 and
+later has some type of Xen support out of the box.  Not sure what type of
+support.
+
+
+Thanks,
+
+Larry
+
+
+
+------=_NextPart_000_0003_01CD66B2.146DE290
+Content-Type: text/html;
+       charset="us-ascii"
+Content-Transfer-Encoding: quoted-printable
+
+<html xmlns:v=3D"urn:schemas-microsoft-com:vml" =
+xmlns:o=3D"urn:schemas-microsoft-com:office:office" =
+xmlns:w=3D"urn:schemas-microsoft-com:office:word" =
+xmlns=3D"http://www.w3.org/TR/REC-html40">
+
+<head>
+<meta http-equiv=3DContent-Type content=3D"text/html; =
+charset=3Dus-ascii">
+<meta name=3DGenerator content=3D"Microsoft Word 11 (filtered medium)">
+<style>
+<!--
+ /* Style Definitions */
+ p.MsoNormal, li.MsoNormal, div.MsoNormal
+       {margin:0in;
+       margin-bottom:.0001pt;
+       font-size:12.0pt;
+       font-family:"Times New Roman";}
+a:link, span.MsoHyperlink
+       {color:blue;
+       text-decoration:underline;}
+a:visited, span.MsoHyperlinkFollowed
+       {color:purple;
+       text-decoration:underline;}
+span.EmailStyle17
+       {mso-style-type:personal-compose;
+       font-family:Arial;
+       color:windowtext;}
+@page Section1
+       {size:8.5in 11.0in;
+       margin:1.0in 1.25in 1.0in 1.25in;}
+div.Section1
+       {page:Section1;}
+-->
+</style>
+<!--[if gte mso 9]><xml>
+ <o:shapedefaults v:ext=3D"edit" spidmax=3D"1026" />
+</xml><![endif]--><!--[if gte mso 9]><xml>
+ <o:shapelayout v:ext=3D"edit">
+  <o:idmap v:ext=3D"edit" data=3D"1" />
+ </o:shapelayout></xml><![endif]-->
+</head>
+
+<body lang=3DEN-US link=3Dblue vlink=3Dpurple>
+
+<div class=3DSection1>
+
+<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
+style=3D'font-size:10.0pt;
+font-family:Arial'>Can the XenStore database be accessed by =
+domU&#8217;s?&nbsp;
+<o:p></o:p></span></font></p>
+
+<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
+style=3D'font-size:10.0pt;
+font-family:Arial'><o:p>&nbsp;</o:p></span></font></p>
+
+<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
+style=3D'font-size:10.0pt;
+font-family:Arial'>If so, could it be used to pass small amounts of data =
+back
+and forth between dom0 and domU&#8217;s using XenStore key =
+entries?&nbsp; If
+this is possible, it would seem that this could eliminate the need to =
+create a &#8220;device&#8221;
+driver for a simple communication path.<o:p></o:p></span></font></p>
+
+<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
+style=3D'font-size:10.0pt;
+font-family:Arial'><o:p>&nbsp;</o:p></span></font></p>
+
+<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
+style=3D'font-size:10.0pt;
+font-family:Arial'>Also, what type of Guest Fedora Kernel would be =
+needed to perform
+this type of Xen functionality in a HVM domU guest configuration?&nbsp; =
+I
+assume that a normal Fedora kernel would not work.&nbsp; However, I have =
+read
+the Fedora 14 and later has some type of Xen support out of the =
+box.&nbsp; Not
+sure what type of support.<o:p></o:p></span></font></p>
+
+<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
+style=3D'font-size:10.0pt;
+font-family:Arial'><o:p>&nbsp;</o:p></span></font></p>
+
+<div>
+
+<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
+style=3D'font-size:10.0pt;
+font-family:Arial'>Thanks,</span></font><o:p></o:p></p>
+
+<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
+style=3D'font-size:10.0pt;
+font-family:Arial'>Larry</span></font><o:p></o:p></p>
+
+</div>
+
+<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
+style=3D'font-size:
+12.0pt'><o:p>&nbsp;</o:p></span></font></p>
+
+</div>
+
+</body>
+
+</html>
+
+------=_NextPart_000_0003_01CD66B2.146DE290--
+
+
+
+
+--===============2993385947562903206==
+Content-Type: text/plain; charset="us-ascii"
+MIME-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Content-Disposition: inline
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
+--===============2993385947562903206==--
+
+
+
+
diff --git a/config/examples/test/corpus/<C96058547A5A42DDB1A89B2F8880BCE2@LarryE6400> b/config/examples/test/corpus/<C96058547A5A42DDB1A89B2F8880BCE2@LarryE6400>
new file mode 100644 (file)
index 0000000..6c5080a
--- /dev/null
@@ -0,0 +1,122 @@
+From xen-devel-bounces@lists.xen.org Sat Jul 21 19:05:42 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Sat, 21 Jul 2012 19:05:42 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1Sse3f-0007mJ-SR
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Sat, 21 Jul 2012 19:05:42 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1Ssdxr-0007Ps-K5; Sat, 21 Jul 2012 17:59:39 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <lmw@satx.rr.com>) id 1Ssdxq-0007Pn-H5
+       for xen-devel@lists.xen.org; Sat, 21 Jul 2012 17:59:38 +0000
+Received: from [85.158.139.83:22641] by server-1.bemta-5.messagelabs.com id
+       78/95-29759-90EEA005; Sat, 21 Jul 2012 17:59:37 +0000
+X-Env-Sender: lmw@satx.rr.com
+X-Msg-Ref: server-14.tower-182.messagelabs.com!1342893576!23216271!1
+X-Originating-IP: [75.180.132.120]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       QmFkIElQOiA3NS4xODAuMTMyLjEyMCA9PiA4OTE1OA==\n,sa_preprocessor: 
+       QmFkIElQOiA3NS4xODAuMTMyLjEyMCA9PiA4OTE1OA==\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.2; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 8410 invoked from network); 21 Jul 2012 17:59:36 -0000
+Received: from cdptpa-omtalb.mail.rr.com (HELO cdptpa-omtalb.mail.rr.com)
+       (75.180.132.120) by server-14.tower-182.messagelabs.com with SMTP;
+       21 Jul 2012 17:59:36 -0000
+X-Authority-Analysis: v=2.0 cv=OtDNOlDt c=1 sm=0 a=r1aGfrPin9q3IVjnGKu9DA==:17
+       a=mkDZTsCubmwA:10 a=YIV_H7EphM0A:10 a=05ChyHeVI94A:10
+       a=kj9zAlcOel0A:10 a=ayC55rCoAAAA:8 a=P3U7S8cuHsd9lTPnzQwA:9
+       a=CjuIK1q_8ugA:10 a=r1aGfrPin9q3IVjnGKu9DA==:117
+X-Cloudmark-Score: 0
+X-Originating-IP: 66.69.0.49
+Received: from [66.69.0.49] ([66.69.0.49:51488] helo=LarryE6400)
+       by cdptpa-oedge01.mail.rr.com (envelope-from <lmw@satx.rr.com>)
+       (ecelerity 2.2.3.46 r()) with ESMTP
+       id FC/33-29356-80EEA005; Sat, 21 Jul 2012 17:59:36 +0000
+From: "Larry White" <lmw@satx.rr.com>
+To: "'Konrad Rzeszutek Wilk'" <konrad.wilk@oracle.com>,
+       <xen-devel@lists.xen.org>
+References: <A8575D3216834DFCAA86F5B2B3546613@LarryE6400>
+       <6035A0D088A63A46850C3988ED045A4B299B8A95@BITCOM1.int.sbss.com.au>
+       <1E8F546AD8E64BF1B2D68D24F3BD4050@LarryE6400>
+       <6035A0D088A63A46850C3988ED045A4B299B8F9D@BITCOM1.int.sbss.com.au>
+In-Reply-To: <6035A0D088A63A46850C3988ED045A4B299B8F9D@BITCOM1.int.sbss.com.au>
+Date: Sat, 21 Jul 2012 12:59:31 -0500
+Message-ID: <C96058547A5A42DDB1A89B2F8880BCE2@LarryE6400>
+MIME-Version: 1.0
+X-Mailer: Microsoft Office Outlook 11
+X-MimeOLE: Produced By Microsoft MimeOLE V6.1.7601.17609
+Thread-Index: Ac1m2/yuJJyO+ROQQxKMLV1mGoHskAABhbjAAABDEwAAAe6rkAAfoGxA
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] XenStore as a data transfer path?
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+Hi Konrad,
+
+>On Tue, Jul 17, 2012 at 11:22:28PM -0500, LarryWhite wrote:
+>I am new to Xen and want to provide simple communication between my DomU
+>and
+>Dom0 environments.  I just need to be able to pass a few bytes of
+>information back and forth between DomU and Dom0 while using some form of
+>event management to know when an update occurs so I can act on it.  At
+>first, it appeared that using XenBus and XenStore might be the right
+>solution for this.  However, after looking over the documentation, it seems
+>that XenBus and XenStore should only be used in a PVM Xen configuration,
+>not
+>a HVM model like mine.  Is this true?  
+
+>>It can be done in HVM.
+
+>What would be the best way to accomplish this?  Is there any sample code
+>which demonstrates this for a HVM Xen environment?
+
+>>libvchan is your best bet.
+
+Have been looking at libvchan as you suggested.  An additional bit of
+information that I left out on my original post was that I would like to do
+this in a "one to many" environment.  In other words, I want to support data
+transfer from dom0 to a number of different domU's.  Would an approach such
+as libvchan allow for this or would I need a separate process in dom0 for
+each of the different domU channels?  I was really hoping to have a single
+process running in dom0 to manage this. 
+
+Thanks,
+Larry
+
+
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<CACJDEmr3V71cSdV3+i-n7=wfOnDBza04Lk+6+B6Fyx7LhQrdEg@mail.gmail.com> b/config/examples/test/corpus/<CACJDEmr3V71cSdV3+i-n7=wfOnDBza04Lk+6+B6Fyx7LhQrdEg@mail.gmail.com>
new file mode 100644 (file)
index 0000000..56fbcac
--- /dev/null
@@ -0,0 +1,127 @@
+From xen-devel-bounces@lists.xen.org Fri Oct 12 15:34:51 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 12 Oct 2012 15:34:51 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TMgK5-0002Eh-Mg
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 12 Oct 2012 15:34:51 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TMgFM-0001kV-Rd; Fri, 12 Oct 2012 14:29:52 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <ketuzsezr@gmail.com>) id 1TMgFL-0001kQ-7P
+       for xen-devel@lists.xen.org; Fri, 12 Oct 2012 14:29:51 +0000
+Received: from [85.158.139.211:16434] by server-6.bemta-5.messagelabs.com id
+       97/28-08519-E5928705; Fri, 12 Oct 2012 14:29:50 +0000
+X-Env-Sender: ketuzsezr@gmail.com
+X-Msg-Ref: server-10.tower-206.messagelabs.com!1350052188!22070941!1
+X-Originating-IP: [209.85.219.45]
+X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 435 invoked from network); 12 Oct 2012 14:29:49 -0000
+Received: from mail-oa0-f45.google.com (HELO mail-oa0-f45.google.com)
+       (209.85.219.45)
+       by server-10.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
+       12 Oct 2012 14:29:49 -0000
+Received: by mail-oa0-f45.google.com with SMTP id i18so3851210oag.32
+       for <xen-devel@lists.xen.org>; Fri, 12 Oct 2012 07:29:48 -0700 (PDT)
+DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
+       h=mime-version:sender:in-reply-to:references:date
+       :x-google-sender-auth:message-id:subject:from:to:cc:content-type;
+       bh=f6C0a0cv0vuPrx0NsQt5HsMcMweaxzVjBMFkwJF0s6g=;
+       b=SBjJBskgvOB2zCILjf0xzeg58d/VmrunNAGFk3JOmmLVpHG0aKQB6IlhU+DCNWowAn
+       zZMfz20To26/RqxZh+M/YmXVK+bnwhYg/gBtLVmhkIST4yske/Ke6UTGRL+6biWhoQFL
+       yW8sLdKBrWpfmRDZS5BfeWsOfOnGt5q1w2sjCY3jhRssT8tYhZvdYcvjqCPMkExg6xu6
+       sDc20J9rbdtNCB+Z05J5VCE9jUatiZWiw080MwcH6QJzhpUoV5Y6AvF+0A4rh5gWMVzh
+       rwjkkuqRl8mdLATDwuzJZxvJQ8WjzRWQEhR/UNqGwuOjbommn8xcuH7daHtWGgHi6WLK
+       e7gA==
+MIME-Version: 1.0
+Received: by 10.182.110.67 with SMTP id hy3mr3676157obb.52.1350052187944; Fri,
+       12 Oct 2012 07:29:47 -0700 (PDT)
+Received: by 10.60.47.227 with HTTP; Fri, 12 Oct 2012 07:29:47 -0700 (PDT)
+In-Reply-To: <507822ED.2090900@citrix.com>
+References: <1350046634-2462-1-git-send-email-david.vrabel@citrix.com>
+       <1350046634-2462-4-git-send-email-david.vrabel@citrix.com>
+       <20121012134147.GA11778@phenom.dumpdata.com>
+       <507822ED.2090900@citrix.com>
+Date: Fri, 12 Oct 2012 10:29:47 -0400
+X-Google-Sender-Auth: k7q6yjotedHEfE5LIENqJm8mVd0
+Message-ID: <CACJDEmr3V71cSdV3+i-n7=wfOnDBza04Lk+6+B6Fyx7LhQrdEg@mail.gmail.com>
+From: Konrad Rzeszutek Wilk <konrad@kernel.org>
+To: David Vrabel <david.vrabel@citrix.com>
+Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
+       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,T_DKIM_INVALID,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 3/3] xen/privcmd: add
+ IOCTL_PRIVCMD_SYNC_WALLCLOCK to sync Xen's wallclock
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Fri, Oct 12, 2012 at 10:02 AM, David Vrabel <david.vrabel@citrix.com> wrote:
+> On 12/10/12 14:41, Konrad Rzeszutek Wilk wrote:
+>> On Fri, Oct 12, 2012 at 01:57:14PM +0100, David Vrabel wrote:
+>>> From: David Vrabel <david.vrabel@citrix.com>
+>>>
+>>> Add a new ioctl to synchronize Xen's wallclock with the current system
+>>> time.
+>>>
+>>> This may be used by the tools to ensure that newly created domains see
+>>> the correct wallclock time if NTP is not used in dom0 or if domains
+>>> are started before NTP has synchronized.
+>>
+>> So... how does this work with NTPD? As in does ntpd _not_ update the
+>> hwclock enough?
+>
+> Once NTPD is synchronized then the kernel updates the wallclock (and the
+> RTC with patch #1) every 11 mins.  I assume this is often enough given
+> how NTP adjusts the system time.
+>
+> You only really need the tools to sync wallclock if system time was
+> stepped at start of day.  e.g., init scripts could do something like:
+>
+> ntpdate pool.ntp.org
+> hwclock --systohc
+> xen-wallclock --systowc
+
+I think I am missing something. The hwclock should end up in the
+xen_set_wallclock call. And from there on, the ntpd would update the
+wallclock if it got skewed enough? Or is the system time not calling
+the wall-clock enough? If that is the case, would just adding this in
+the crontab be enough:
+
+*/11 * * * * hwclock --systohc
+
+?
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<CAFLBxZYx4HdsR6-AbgybpTyEjZyN5n=QuuT_rmMbhpfRHHOEzg@mail.gmail.com> b/config/examples/test/corpus/<CAFLBxZYx4HdsR6-AbgybpTyEjZyN5n=QuuT_rmMbhpfRHHOEzg@mail.gmail.com>
new file mode 100644 (file)
index 0000000..91cfd02
--- /dev/null
@@ -0,0 +1,114 @@
+From xen-devel-bounces@lists.xen.org Wed Jul 25 11:15:35 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 25 Jul 2012 11:15:35 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1Stycv-0008P0-8U
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 25 Jul 2012 11:15:35 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1StyYF-0000dH-9V; Wed, 25 Jul 2012 10:10:43 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <dunlapg@gmail.com>) id 1StyYD-0000dC-3L
+       for xen-devel@lists.xen.org; Wed, 25 Jul 2012 10:10:41 +0000
+Received: from [85.158.143.99:12430] by server-2.bemta-4.messagelabs.com id
+       08/B7-17938-026CF005; Wed, 25 Jul 2012 10:10:40 +0000
+X-Env-Sender: dunlapg@gmail.com
+X-Msg-Ref: server-5.tower-216.messagelabs.com!1343211038!28254641!1
+X-Originating-IP: [209.85.217.173]
+X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.2; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 16854 invoked from network); 25 Jul 2012 10:10:39 -0000
+Received: from mail-lb0-f173.google.com (HELO mail-lb0-f173.google.com)
+       (209.85.217.173)
+       by server-5.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
+       25 Jul 2012 10:10:39 -0000
+Received: by lbok6 with SMTP id k6so577361lbo.32
+       for <xen-devel@lists.xen.org>; Wed, 25 Jul 2012 03:10:38 -0700 (PDT)
+DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
+       h=mime-version:sender:in-reply-to:references:date
+       :x-google-sender-auth:message-id:subject:from:to:cc:content-type;
+       bh=qt9s11ZcDlj69W+6zFanwBZ4PbzYWPQ+1y/AbE9Z1Nc=;
+       b=nezjKpiXmKGAE4ZaDbsKChw3QiSYMKmK6unnFpTk+49ahtFGJhO2B7XmY0siQM8e8o
+       q95V6pVHR5YpCuekrH+T+tRChJ8upy+dwQcQOv6LWUQJ9TlwBDKDLlbH6qbIq83WwUOb
+       KaXxcL0Du7DsIJEO7/Ezql/7167R49cBTaZTEr3T/5g+DIcC2v9ORTD4gPO0W07/A92U
+       EerVJVujVih3qlYVr3mFl4TeIdNc7vfEZGSmZTyFfvZAw3afLe9og3FtXdYVblidBOK3
+       fLqUflTmvU7VzVSCfBqFlUlx9L6YoxMuSG8hy7md0FvOo0FBnX/hOcxYiZ/xmVbHBRaz
+       9K4Q==
+MIME-Version: 1.0
+Received: by 10.112.30.226 with SMTP id v2mr11369141lbh.103.1343211038136;
+       Wed, 25 Jul 2012 03:10:38 -0700 (PDT)
+Received: by 10.112.24.42 with HTTP; Wed, 25 Jul 2012 03:10:38 -0700 (PDT)
+In-Reply-To: <C96058547A5A42DDB1A89B2F8880BCE2@LarryE6400>
+References: <A8575D3216834DFCAA86F5B2B3546613@LarryE6400>
+       <6035A0D088A63A46850C3988ED045A4B299B8A95@BITCOM1.int.sbss.com.au>
+       <1E8F546AD8E64BF1B2D68D24F3BD4050@LarryE6400>
+       <6035A0D088A63A46850C3988ED045A4B299B8F9D@BITCOM1.int.sbss.com.au>
+       <C96058547A5A42DDB1A89B2F8880BCE2@LarryE6400>
+Date: Wed, 25 Jul 2012 11:10:38 +0100
+X-Google-Sender-Auth: lFh4RzT8IYY4VTGOEEICQKANXqs
+Message-ID: <CAFLBxZYx4HdsR6-AbgybpTyEjZyN5n=QuuT_rmMbhpfRHHOEzg@mail.gmail.com>
+From: George Dunlap <George.Dunlap@eu.citrix.com>
+To: Larry White <lmw@satx.rr.com>
+Cc: xen-devel@lists.xen.org, Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_DKIM_INVALID,T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] XenStore as a data transfer path?
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Sat, Jul 21, 2012 at 6:59 PM, Larry White <lmw@satx.rr.com> wrote:
+>>>libvchan is your best bet.
+>
+> Have been looking at libvchan as you suggested.  An additional bit of
+> information that I left out on my original post was that I would like to do
+> this in a "one to many" environment.  In other words, I want to support data
+> transfer from dom0 to a number of different domU's.  Would an approach such
+> as libvchan allow for this or would I need a separate process in dom0 for
+> each of the different domU channels?  I was really hoping to have a single
+> process running in dom0 to manage this.
+
+Depending on how "bleeding edge" you want to be, you may want to look
+at the v4v patchset as well (currently under discussion).  I believe
+one of the features of v4v was the ability to do one-to-many.
+
+Regarding using XenStore for data transfer: it is, of course,
+technically possible; but I think we want to discourage people from
+doing that, as xenstore wasn't really designed for that purpose. I
+don't think it should be relied on for latency, and using it as a
+communication channel may have unfortunate side-effects on other users
+of xenstore.
+
+ -George
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<CAFLBxZbP2d=0gj7DqAc9nXga3H8Rv+RZPPSHHNbrbUv_=wzORA@mail.gmail.com> b/config/examples/test/corpus/<CAFLBxZbP2d=0gj7DqAc9nXga3H8Rv+RZPPSHHNbrbUv_=wzORA@mail.gmail.com>
new file mode 100644 (file)
index 0000000..20816b6
--- /dev/null
@@ -0,0 +1,188 @@
+From xen-devel-bounces@lists.xen.org Wed Aug 15 16:51:42 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 15 Aug 2012 16:51:42 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T1fsh-0006xh-BO
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 15 Aug 2012 16:51:42 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T1fo9-0000RG-B2; Wed, 15 Aug 2012 15:46:57 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <dunlapg@gmail.com>) id 1T1fo7-0000R7-KD
+       for xen-devel@lists.xen.org; Wed, 15 Aug 2012 15:46:55 +0000
+Received: from [85.158.143.99:64617] by server-3.bemta-4.messagelabs.com id
+       07/87-09529-E64CB205; Wed, 15 Aug 2012 15:46:54 +0000
+X-Env-Sender: dunlapg@gmail.com
+X-Msg-Ref: server-7.tower-216.messagelabs.com!1345045613!24964250!1
+X-Originating-IP: [209.85.215.173]
+X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 26872 invoked from network); 15 Aug 2012 15:46:54 -0000
+Received: from mail-ey0-f173.google.com (HELO mail-ey0-f173.google.com)
+       (209.85.215.173)
+       by server-7.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
+       15 Aug 2012 15:46:54 -0000
+Received: by eaac13 with SMTP id c13so535564eaa.32
+       for <multiple recipients>; Wed, 15 Aug 2012 08:46:53 -0700 (PDT)
+DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
+       h=mime-version:sender:in-reply-to:references:date
+       :x-google-sender-auth:message-id:subject:from:to:cc:content-type
+       :content-transfer-encoding;
+       bh=GynLBU0JXm8OTAlwK2i8Nd7S/JzaCrvaqJWC06Feges=;
+       b=cyYfD1F7sJ5GIE3dCoMNmBhzEvD7z4KOvrxptA3et7iUMGJ+djaUt7K6jbW3g6Hiln
+       n6nLvnAzEjPT28THxQzepX8Xp8GAO8tRGiXTPJ7QpUB4sXTPby95cMMgEE9ABudrPpxs
+       RMfWA0ZUYLDs9ebvdaJ5BIyEPTlR6ZT01JTgKILx1sp4mIaFRwheDhcSKsEl2/bAbABJ
+       4TcA3TKe0tiC/GbjmUjiJjT8IsTEDM0UY/vBHiKTLBNyiUYXpnMGaPIzdjNxK7bVvZjP
+       97nDCyZPDDDWDsukyFDFIOnswX+WwAIpE8x4dR6xscqI5mojTvuTopIgjViC03dEI1+u
+       zs7w==
+MIME-Version: 1.0
+Received: by 10.14.4.201 with SMTP id 49mr15380785eej.0.1345045613717; Wed, 15
+       Aug 2012 08:46:53 -0700 (PDT)
+Received: by 10.14.215.195 with HTTP; Wed, 15 Aug 2012 08:46:53 -0700 (PDT)
+In-Reply-To: <1344935141.5926.6.camel@zakaz.uk.xensource.com>
+References: <1344935141.5926.6.camel@zakaz.uk.xensource.com>
+Date: Wed, 15 Aug 2012 16:46:53 +0100
+X-Google-Sender-Auth: IsYJOc8F5r5sFCPSxTruqYEq0WI
+Message-ID: <CAFLBxZbP2d=0gj7DqAc9nXga3H8Rv+RZPPSHHNbrbUv_=wzORA@mail.gmail.com>
+From: George Dunlap <George.Dunlap@eu.citrix.com>
+To: Ian Campbell <Ian.Campbell@citrix.com>
+Cc: xen-users <xen-users@lists.xen.org>, xen-devel <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="iso-8859-1"
+Content-Transfer-Encoding: quoted-printable
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_DKIM_INVALID,T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] Xen 4.2 TODO / Release Plan
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Tue, Aug 14, 2012 at 10:05 AM, Ian Campbell <Ian.Campbell@citrix.com> wr=
+ote:
+> tools, blockers:
+    * qemu-traditional has 50% cpu utilization on an idle Windows
+system if USB is enabled
+       Not 100% clear whether this is Xen or qemu.  George is seeing
+if any XenServer patches
+      address the issue.
+
+>
+>     * libxl stable API -- we would like 4.2 to define a stable API
+>       which downstream's can start to rely on not changing. Aspects of
+>       this are:
+>
+>         * None known
+>
+>     * xl compatibility with xm:
+>
+>         * No known issues
+>
+>     * [CHECK] More formally deprecate xm/xend. Manpage patches already
+>       in tree. Needs release noting and communication around -rc1 to
+>       remind people to test xl.
+>
+>     * [CHECK] Confirm that migration from Xen 4.1 -> 4.2 works.
+>
+>     * Bump library SONAMES as necessary.
+>       <20502.39440.969619.824976@mariner.uk.xensource.com>
+>
+> hypervisor, nice to have:
+>
+>     * vMCE save/restore changes, to simplify migration 4.2->4.3 with
+>       new vMCE in 4.3. (Jinsong Liu, Jan Beulich, DONE for 4.2)
+>
+>     * [BUG(?)] Under certain conditions, the p2m_pod_sweep code will
+>       stop halfway through searching, causing a guest to crash even if
+>       there was zeroed memory available.  This is NOT a regression
+>       from 4.1, and is a very rare case, so probably shouldn't be a
+>       blocker.  (In fact, I'd be open to the idea that it should wait
+>       until after the release to get more testing.)
+>             (George Dunlap)
+>
+>     * S3 regression(s?) reported by Ben Guthro (Ben & Jan Beulich)
+>
+>     * address PoD problems with early host side accesses to guest
+>       address space (draft patch for 4.0.x exists, needs to be ported
+>       over to -unstable, which I'll expect to get to today, Jan
+>       Beulich)
+>
+>     * fix high change rate to CMOS RTC periodic interrupt causing
+>       guest wall clock time to lag (possible fix outlined, needs to be
+>       put in patch form and thoroughly reviewed/tested for unwanted
+>       side effects, Jan Beulich)
+>
+> tools, nice to have:
+>
+>     * xl compatibility with xm:
+>
+>         * None
+>
+>     * xl.cfg(5) documentation patch for qemu-upstream
+>       videoram/videomem support:
+>       http://lists.xen.org/archives/html/xen-devel/2012-05/msg00250.html
+>       qemu-upstream doesn't support specifying videomem size for the
+>       HVM guest cirrus/stdvga.  (but this works with
+>       qemu-xen-traditional). (Pasi K=E4rkk=E4inen)
+>
+>     * [BUG] long stop during the guest boot process with qcow image,
+>       reported by Intel: http://bugzilla.xen.org/bugzilla/show_bug.cgi?id=
+=3D1821
+>
+>     * [BUG] vcpu-set doesn't take effect on guest, reported by Intel:
+>       http://bugzilla.xen.org/bugzilla/show_bug.cgi?id=3D1822
+>
+>     * Load blktap driver from xencommons initscript if available, thread =
+at:
+>       <db614e92faf743e20b3f.1337096977@kodo2>. To be fixed more
+>       properly in 4.3. (Patch posted, discussion, plan to take simple
+>       xencommons patch for 4.2 and revist for 4.3. Ping sent)
+>
+>     * [BUG] xl allows same PCI device to be assigned to multiple
+>       guests. http://bugzilla.xen.org/bugzilla/show_bug.cgi?id=3D1826
+>       (<E4558C0C96688748837EB1B05BEED75A0FD5574A@SHSMSX102.ccr.corp.intel=
+.com>)
+>
+>     * [BUG(?)] If domain 0 attempts to access a guests' memory before
+>       it is finished being built, and it is being built in PoD mode,
+>       this may cause the guest to crash.  Again, this is NOT a
+>       regression from 4.1.  Furthermore, it's only been reported
+>       (AIUI) by a customer of SuSE; so it shoudn't be a blocker.
+>       (Again, I'd be open to the idea that it should wait until after
+>       the release to get more testing.)
+>           (George Dunlap / Jan Beulich)
+>
+>
+>
+> _______________________________________________
+> Xen-devel mailing list
+> Xen-devel@lists.xen.org
+> http://lists.xen.org/xen-devel
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<CAJ75kXYG3uPmMhUwB9ivHt0w5gm14aqAynSWQwooWg65xLTzPw@mail.gmail.com> b/config/examples/test/corpus/<CAJ75kXYG3uPmMhUwB9ivHt0w5gm14aqAynSWQwooWg65xLTzPw@mail.gmail.com>
new file mode 100644 (file)
index 0000000..8c6913f
--- /dev/null
@@ -0,0 +1,103 @@
+From xen-devel-bounces@lists.xen.org Mon Sep 17 19:11:31 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Mon, 17 Sep 2012 19:11:31 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TDfn7-0001fT-2i
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Mon, 17 Sep 2012 19:11:31 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TDfif-0004YE-KN; Mon, 17 Sep 2012 18:06:53 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <wdauchy@gmail.com>) id 1TDfid-0004Y9-I3
+       for xen-devel@lists.xensource.com; Mon, 17 Sep 2012 18:06:51 +0000
+Received: from [85.158.138.51:55195] by server-1.bemta-3.messagelabs.com id
+       FB/7C-05884-AB667505; Mon, 17 Sep 2012 18:06:50 +0000
+X-Env-Sender: wdauchy@gmail.com
+X-Msg-Ref: server-9.tower-174.messagelabs.com!1347905208!29225680!1
+X-Originating-IP: [209.85.160.43]
+X-SpamReason: No, hits=0.3 required=7.0 tests=ML_RADAR_SPEW_LINKS_14,
+       RCVD_BY_IP,spamassassin: 
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 32751 invoked from network); 17 Sep 2012 18:06:50 -0000
+Received: from mail-pb0-f43.google.com (HELO mail-pb0-f43.google.com)
+       (209.85.160.43)
+       by server-9.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
+       17 Sep 2012 18:06:50 -0000
+Received: by pbbrq2 with SMTP id rq2so11963253pbb.30
+       for <xen-devel@lists.xensource.com>;
+       Mon, 17 Sep 2012 11:06:48 -0700 (PDT)
+DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
+       h=mime-version:in-reply-to:references:from:date:message-id:subject:to
+       :cc:content-type;
+       bh=tMRkgwN8hflDSeN3f3sYe5ZQk2zYuKnR8dX8TSS3BoA=;
+       b=nbMa8UbVV2uW9fHUJg39m4TVPugBiNgW9r9KRpHHsnrMfP9EH5Ir36YhZdBRZNAd7f
+       AXpsqdAwCn7NFzV0uIgqR73sbeJ/sZPc/xbPLtY7iBDBbc6/6k3SHygpvZunDtzfTgHP
+       F5cggVKo6edHmDD/Of5MCK2U1Y1aC0k1IGYBPpcympJis0FicpSiTBtktEHTg9Y70Opn
+       KaarMLZOF4lXvCBNGtUQiCUzujawe6S/XpjljdNiONS6b5GYn1mSGhQ8vEwwlz1OZiJa
+       Vred94gpuXVovoMTwtw6TNksKiBX6DdSFKFdSZSAmO6OJSm0VaHSjXfnKka/1Nk0OyQJ
+       351w==
+Received: by 10.68.193.194 with SMTP id hq2mr23982679pbc.93.1347905207817;
+       Mon, 17 Sep 2012 11:06:47 -0700 (PDT)
+MIME-Version: 1.0
+Received: by 10.68.135.42 with HTTP; Mon, 17 Sep 2012 11:06:26 -0700 (PDT)
+In-Reply-To: <1345133009-21941-12-git-send-email-konrad.wilk@oracle.com>
+References: <1345133009-21941-1-git-send-email-konrad.wilk@oracle.com>
+       <1345133009-21941-12-git-send-email-konrad.wilk@oracle.com>
+From: William Dauchy <wdauchy@gmail.com>
+Date: Mon, 17 Sep 2012 20:06:26 +0200
+Message-ID: <CAJ75kXYG3uPmMhUwB9ivHt0w5gm14aqAynSWQwooWg65xLTzPw@mail.gmail.com>
+To: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+Cc: xen-devel@lists.xensource.com, linux-kernel@vger.kernel.org
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.7 required=5.0 tests=BAYES_00,FREEMAIL_FROM,
+       RCVD_IN_DNSWL_MED,RP_MATCHES_RCVD,T_DKIM_INVALID,UNPARSEABLE_RELAY
+       autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 11/11] xen/mmu: Release just the MFN list,
+ not MFN list and part of pagetables.
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+Hello Konrad,
+
+On Thu, Aug 16, 2012 at 6:03 PM, Konrad Rzeszutek Wilk
+<konrad.wilk@oracle.com> wrote:
+> (XEN) mm.c:908:d0 Error getting mfn 116a83 (pfn 14e2a) from L1 entry 8000000116a83067 for l1e_owner=0, pg_owner=0
+> (XEN) mm.c:908:d0 Error getting mfn 4040 (pfn 5555555555555555) from L1 entry 0000000004040601 for l1e_owner=0, pg_owner=0
+
+This is something I also have on my 3.4.x branch. Since then mmu.c has
+change a lot; is there an easy fix to make a backport for 3.4.x?
+
+-- 
+William
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<CAOzFzEhh7pfpcq+0X-g7BXGAyNqgb8dZT4=Ys=Pmu1dFqH+46A@mail.gmail.com> b/config/examples/test/corpus/<CAOzFzEhh7pfpcq+0X-g7BXGAyNqgb8dZT4=Ys=Pmu1dFqH+46A@mail.gmail.com>
new file mode 100644 (file)
index 0000000..9ab23a8
--- /dev/null
@@ -0,0 +1,133 @@
+From xen-devel-bounces@lists.xen.org Sun Sep 16 10:05:39 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Sun, 16 Sep 2012 10:05:39 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TDAnI-0000Dy-W1
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Sun, 16 Sep 2012 10:05:39 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TDAiP-00084m-I4; Sun, 16 Sep 2012 09:00:33 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <joseph.glanville@orionvm.com.au>) id 1TDAiM-00084h-PD
+       for xen-devel@lists.xen.org; Sun, 16 Sep 2012 09:00:31 +0000
+Received: from [85.158.138.51:59913] by server-7.bemta-3.messagelabs.com id
+       A5/96-32000-E2595505; Sun, 16 Sep 2012 09:00:30 +0000
+X-Env-Sender: joseph.glanville@orionvm.com.au
+X-Msg-Ref: server-8.tower-174.messagelabs.com!1347786027!30685642!1
+X-Originating-IP: [209.85.214.173]
+X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 26250 invoked from network); 16 Sep 2012 09:00:28 -0000
+Received: from mail-ob0-f173.google.com (HELO mail-ob0-f173.google.com)
+       (209.85.214.173)
+       by server-8.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
+       16 Sep 2012 09:00:28 -0000
+Received: by obbta14 with SMTP id ta14so9950580obb.32
+       for <xen-devel@lists.xen.org>; Sun, 16 Sep 2012 02:00:26 -0700 (PDT)
+X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
+       d=google.com; s=20120113;
+       h=mime-version:x-originating-ip:in-reply-to:references:date
+       :message-id:subject:from:to:cc:content-type:x-gm-message-state;
+       bh=B9h40DwTy3mUZbuiyF6xhoOqAJ4jjgu5vZuU7X6WUWw=;
+       b=C2Xb2L8awmGEO0dWSbMsi8QO8U0k/XmlwASIZ9627dG4MrvjrDGI9ldh+MQ5mpRF4w
+       unZlP2sDZd86XwZQRpzqdZh4IJeuyqOwKfirtnidNMPOrzMJjsAncu0P697b5SwixMCa
+       vbU1fKqlC84yhhZh17bQ8QWziAqdsUTY94aZUlOr1JIFV1w9VN8mkUXp5g32BFjEunDk
+       sIDasfgGVfUlvWOK1zrVnx2G56XGQvy8P/WuQdj94GlnAZLazwHBFiPoy6i9WYif0Kpt
+       NENTnmjImFmurkuo2jlMEvhDeyAXCyWKq2M0FUAjleDnqkjGeFWUqOItpLzRlSi8MgYv
+       FPkg==
+MIME-Version: 1.0
+Received: by 10.60.5.234 with SMTP id v10mr8780176oev.59.1347786026732; Sun,
+       16 Sep 2012 02:00:26 -0700 (PDT)
+Received: by 10.182.80.200 with HTTP; Sun, 16 Sep 2012 02:00:26 -0700 (PDT)
+X-Originating-IP: [121.44.24.60]
+In-Reply-To: <CC7B4CE4.3EE74%keir.xen@gmail.com>
+References: <CAOzFzEiZopdFQuZkUcSWWre9b=NeZpJM9n2VtEoZcRo=ejYQPA@mail.gmail.com>
+       <CC7B4CE4.3EE74%keir.xen@gmail.com>
+Date: Sun, 16 Sep 2012 19:00:26 +1000
+Message-ID: <CAOzFzEhh7pfpcq+0X-g7BXGAyNqgb8dZT4=Ys=Pmu1dFqH+46A@mail.gmail.com>
+From: Joseph Glanville <joseph.glanville@orionvm.com.au>
+To: Keir Fraser <keir.xen@gmail.com>
+X-Gm-Message-State: ALoCoQkaVKtffZAi2rOdXx4ISzFXIqbUojXAQ1sZbeErnG0ozRX/kD3ilN+X//oDjsRqub1TYGaV
+Cc: James Harper <james.harper@bendigoit.com.au>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
+       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.7 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] bug when using 4K sectors?
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On 16 September 2012 18:31, Keir Fraser <keir.xen@gmail.com> wrote:
+> On 16/09/2012 08:00, "Joseph Glanville" <joseph.glanville@orionvm.com.au>
+> wrote:
+>
+>> After reading through blkback it appears that it can only support 512
+>> byte sector sizes and removing this limitation would take quite abit
+>> of work.
+>> It uses hard coded bitshifts pervasively to convert between number of
+>> requests/pages and size of sectors etc. (that is all the >> 9
+>> everywhere)
+>>
+>> I am going to see what I can about working on getting it to support 4k
+>> sectors too and eventually uncoupled logical/physical sizes but that
+>> would take even more work as far as I can tell.
+>>
+>> Being able to use 4k sectors seems like it would provide pretty
+>> massive gains in performance just by being more efficient let alone
+>> increasing byte aligned writes to the underlying block storage system.
+>
+> The PV blk transport may be based on 512-byte sectors, but the real sector
+> size is communicated between blkfront and blkback via xenbus (field
+> 'sector-size') and blkfront is expected to only make requests that are
+> multiple of, and aligned according to, that real 'sector-size'.
+>
+> I would kind of expect it to work, as CD-ROMs have a larger sector size (2kB
+> IIRC) and we support those...
+>
+> Bashing your head against the PV blk transport code may be premature. ;)
+>
+>  -- Keir
+>
+>
+
+Understood, still have a fair bit of reading to do. :)
+
+Thanks,
+Joseph.
+
+-- 
+CTO | Orion Virtualisation Solutions | www.orionvm.com.au
+Phone: 1300 56 99 52 | Mobile: 0428 754 846
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<CAOzFzEiZopdFQuZkUcSWWre9b=NeZpJM9n2VtEoZcRo=ejYQPA@mail.gmail.com> b/config/examples/test/corpus/<CAOzFzEiZopdFQuZkUcSWWre9b=NeZpJM9n2VtEoZcRo=ejYQPA@mail.gmail.com>
new file mode 100644 (file)
index 0000000..c0adccc
--- /dev/null
@@ -0,0 +1,154 @@
+From xen-devel-bounces@lists.xen.org Sun Sep 16 08:05:46 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Sun, 16 Sep 2012 08:05:46 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TD8vI-0005ru-1c
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Sun, 16 Sep 2012 08:05:46 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TD8q5-0006i8-OB; Sun, 16 Sep 2012 07:00:21 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <joseph.glanville@orionvm.com.au>) id 1TD8q3-0006i3-Jc
+       for xen-devel@lists.xen.org; Sun, 16 Sep 2012 07:00:19 +0000
+Received: from [85.158.137.99:62906] by server-8.bemta-3.messagelabs.com id
+       BB/04-24700-20975505; Sun, 16 Sep 2012 07:00:18 +0000
+X-Env-Sender: joseph.glanville@orionvm.com.au
+X-Msg-Ref: server-6.tower-217.messagelabs.com!1347778816!12718239!1
+X-Originating-IP: [209.85.219.45]
+X-SpamReason: No, hits=0.8 required=7.0 tests=BODY_RANDOM_LONG,
+  RCVD_BY_IP
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 25291 invoked from network); 16 Sep 2012 07:00:17 -0000
+Received: from mail-oa0-f45.google.com (HELO mail-oa0-f45.google.com)
+       (209.85.219.45)
+       by server-6.tower-217.messagelabs.com with RC4-SHA encrypted SMTP;
+       16 Sep 2012 07:00:17 -0000
+Received: by oagn12 with SMTP id n12so4883633oag.32
+       for <xen-devel@lists.xen.org>; Sun, 16 Sep 2012 00:00:15 -0700 (PDT)
+X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
+       d=google.com; s=20120113;
+       h=mime-version:x-originating-ip:in-reply-to:references:date
+       :message-id:subject:from:to:cc:content-type:x-gm-message-state;
+       bh=WRrYdlau8GQa7+LppKNuiUkOYrKbFruC7Yez6ZVUluY=;
+       b=YlW4hD7TZaQmDuyAJkbwDVcTCLogB1AVxy5YzHZYxRV9xnQILBSlGdsCqqOdjp/pjv
+       WlSaeRRJvv6Ajh/DGwzn0Dm3manWoIA1ubyhIcOfi54ajasgh3zGQm8IYgWpUo6n+LCh
+       IJUVcv2++FKIA2D6wgmRN9StcCJxGyxcyVt6rE2S4V60zbq+59DIMv4Lc2DEGFjVYhgJ
+       jWdNy2LMqy8bUW6DyhEULCURJgx2sRMDVav9QWob+0O6npTGwNUuaQRcO1SGgt1lNDHR
+       hFnFtyNgh5c9SyGrMzaOAooUNKIlX3m2T5UYncgSvdN0qj/XE9HMuKMy10Cf0M8R53Nb
+       raVQ==
+MIME-Version: 1.0
+Received: by 10.60.24.7 with SMTP id q7mr8611338oef.54.1347778815406; Sun, 16
+       Sep 2012 00:00:15 -0700 (PDT)
+Received: by 10.182.80.200 with HTTP; Sun, 16 Sep 2012 00:00:15 -0700 (PDT)
+X-Originating-IP: [121.44.24.60]
+In-Reply-To: <20120906105822.GB3668@phenom.dumpdata.com>
+References: <6035A0D088A63A46850C3988ED045A4B299F74F8@BITCOM1.int.sbss.com.au>
+       <20120905202927.GD27814@phenom.dumpdata.com>
+       <6035A0D088A63A46850C3988ED045A4B29B5D23E@BITCOM1.int.sbss.com.au>
+       <20120906105822.GB3668@phenom.dumpdata.com>
+Date: Sun, 16 Sep 2012 17:00:15 +1000
+Message-ID: <CAOzFzEiZopdFQuZkUcSWWre9b=NeZpJM9n2VtEoZcRo=ejYQPA@mail.gmail.com>
+From: Joseph Glanville <joseph.glanville@orionvm.com.au>
+To: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+X-Gm-Message-State: ALoCoQm/KSwEtHyJnXtqU3YmApZWDugg1Nfa7uiw9ylbc0am+Qg2KUG2Qk9Hdl84gp0MH0zdFFia
+Cc: James Harper <james.harper@bendigoit.com.au>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.7 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] bug when using 4K sectors?
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On 6 September 2012 20:58, Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> wrote:
+> On Wed, Sep 05, 2012 at 11:56:08PM +0000, James Harper wrote:
+>> > On Mon, Aug 13, 2012 at 02:12:58PM +0000, James Harper wrote:
+>> > > I notice this code in drivers/block/xen-blkback/common.h
+>> > >
+>> > > #define vbd_sz(_v)      ((_v)->bdev->bd_part ? \
+>> > >                          (_v)->bdev->bd_part->nr_sects : \
+>> > >                           get_capacity((_v)->bdev->bd_disk))
+>> > >
+>> > > is the value returned by vbd_sz(_v) the number of sectors in the Linux
+>> > > device (eg size / 4096), or the number of 512 byte sectors? I suspect
+>> > > the former which is causing block requests beyond 1/8th the size of
+>> > > the device to fail (assuming 4K sectors are expected to work at all -
+>> > > I can't quite get my head around how it would be expected to work -
+>> > > does Linux do the read-modify-write if required?)
+>> >
+>> > I think you need to instrument it to be sure.. But more interesting, do you
+>> > actually have a disk that exposes a 4KB hardware and logical sector? So far
+>> > I've only found SSDs that expose a 512kB logical sector but also expose the
+>> > 4KB hardware.
+>> >
+>> > Never could figure out how that is all suppose to work as the blkback is filled
+>> > with << 9 on a bunch of things.
+>> >
+>>
+>> I was using bcache which does expose a 4K block size, by default. I changed it to 512 and it all works now, although I haven't tested if there is any loss of performance.
+>
+> OK, let me see how I can setup bcache and play with that.
+>>
+>> Does Xen provide a way to tell Windows that the underlying device is 512e (4K sector with 512 byte emulated interface)? This would keep everything working as is but allow windows to align writes to 4K boundaries where possible.
+>
+> We can certainly expose that via the XenBus interface.
+>>
+>> James
+>
+> _______________________________________________
+> Xen-devel mailing list
+> Xen-devel@lists.xen.org
+> http://lists.xen.org/xen-devel
+
+After reading through blkback it appears that it can only support 512
+byte sector sizes and removing this limitation would take quite abit
+of work.
+It uses hard coded bitshifts pervasively to convert between number of
+requests/pages and size of sectors etc. (that is all the >> 9
+everywhere)
+
+I am going to see what I can about working on getting it to support 4k
+sectors too and eventually uncoupled logical/physical sizes but that
+would take even more work as far as I can tell.
+
+Being able to use 4k sectors seems like it would provide pretty
+massive gains in performance just by being more efficient let alone
+increasing byte aligned writes to the underlying block storage system.
+
+Joseph.
+
+-- 
+CTO | Orion Virtualisation Solutions | www.orionvm.com.au
+Phone: 1300 56 99 52 | Mobile: 0428 754 846
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<CC501EBB.48C47%keir@xen.org> b/config/examples/test/corpus/<CC501EBB.48C47%keir@xen.org>
new file mode 100644 (file)
index 0000000..2b91562
--- /dev/null
@@ -0,0 +1,110 @@
+From xen-devel-bounces@lists.xen.org Tue Aug 14 15:30:28 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Tue, 14 Aug 2012 15:30:28 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T1I8X-0005tJ-69
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 14 Aug 2012 15:30:28 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T1I5C-0003v0-KP; Tue, 14 Aug 2012 14:26:58 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <keir.xen@gmail.com>) id 1T1I5A-0003ua-R0
+       for xen-devel@lists.xen.org; Tue, 14 Aug 2012 14:26:56 +0000
+Received: from [85.158.143.99:19479] by server-3.bemta-4.messagelabs.com id
+       E1/F4-09529-0306A205; Tue, 14 Aug 2012 14:26:56 +0000
+X-Env-Sender: keir.xen@gmail.com
+X-Msg-Ref: server-11.tower-216.messagelabs.com!1344954415!20607447!1
+X-Originating-IP: [74.125.83.45]
+X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 1756 invoked from network); 14 Aug 2012 14:26:56 -0000
+Received: from mail-ee0-f45.google.com (HELO mail-ee0-f45.google.com)
+       (74.125.83.45)
+       by server-11.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
+       14 Aug 2012 14:26:56 -0000
+Received: by eeke53 with SMTP id e53so180902eek.32
+       for <xen-devel@lists.xen.org>; Tue, 14 Aug 2012 07:26:55 -0700 (PDT)
+DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
+       h=sender:user-agent:date:subject:from:to:cc:message-id:thread-topic
+       :thread-index:in-reply-to:mime-version:content-type
+       :content-transfer-encoding;
+       bh=c//g6wABO+tzXOxhTWq24SBdGnN1VRsE1iI2Nt0FPnw=;
+       b=y/l7nrTm3N5jlgi7K++B2Ya4bmaOr6c8VvxB09k5ZDbrTfjgnOX1HvpkovP4wUPTOH
+       arKDDE5uu+Biy6HNMRuF3UhBG0jppbWPqKOXOWTTyila4uNm1lHYt+aKloX9B97Xl03a
+       iOB4X+3fvzmVk1lMg3h+4PIGXh2VVFyB3Vs7iciC8KK4e5TNwTHP+v7Zr0u/921xGGf4
+       CeDVjR0D4sI4DmrMAKuT4dm00q4E85NMl+WIah0XrogleWitYqI2ZkLU40+kMP9u+YrF
+       3cYHF/p2p42eqLjFyWs4WNjT769v5pVXeMww2aqC2KpN4J3vL3fUGCAQMsofSzTWofsc
+       Zg+A==
+Received: by 10.14.179.200 with SMTP id h48mr19877670eem.12.1344954415831;
+       Tue, 14 Aug 2012 07:26:55 -0700 (PDT)
+Received: from [192.168.1.3] (host86-157-166-190.range86-157.btcentralplus.com.
+       [86.157.166.190])
+       by mx.google.com with ESMTPS id a7sm7296187eep.14.2012.08.14.07.26.54
+       (version=SSLv3 cipher=OTHER); Tue, 14 Aug 2012 07:26:55 -0700 (PDT)
+User-Agent: Microsoft-Entourage/12.33.0.120411
+Date: Tue, 14 Aug 2012 15:26:51 +0100
+From: Keir Fraser <keir@xen.org>
+To: Ian Campbell <Ian.Campbell@citrix.com>,
+       Pasi =?ISO-8859-1?B?S+Rya2vkaW5lbg==?= <pasik@iki.fi>
+Message-ID: <CC501EBB.48C47%keir@xen.org>
+Thread-Topic: [Xen-devel] Xen 4.2 TODO / Release Plan / ipxe gcc 4.7
+Thread-Index: Ac16KNhPy3azBAy8W0KZW/VVpzdOGg==
+In-Reply-To: <1344949140.5926.30.camel@zakaz.uk.xensource.com>
+Mime-version: 1.0
+Cc: xen-devel <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_DKIM_INVALID,T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] Xen 4.2 TODO / Release Plan / ipxe gcc 4.7
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On 14/08/2012 13:59, "Ian Campbell" <Ian.Campbell@citrix.com> wrote:
+
+>> And the needed patches are listed here:
+>> http://lists.xen.org/archives/html/xen-devel/2012-08/msg01048.html
+> 
+> I think taking the individual patches would be more sensible than a
+> wholesale refresh at this stage, Keir?
+> 
+> NB: I didn't actually look at the patches...
+
+Yes, I will do the work to integrate the patches into the tree (simple job).
+
+We can nudge ourselves up to tip of ipxe after 4.2.
+
+ -- Keir
+
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<CC5BEE01.3CBD1%keir.xen@gmail.com> b/config/examples/test/corpus/<CC5BEE01.3CBD1%keir.xen@gmail.com>
new file mode 100644 (file)
index 0000000..7f29421
--- /dev/null
@@ -0,0 +1,125 @@
+From xen-devel-bounces@lists.xen.org Thu Aug 23 14:30:41 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 23 Aug 2012 14:30:41 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T4XUc-0002L7-U4
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 23 Aug 2012 14:30:41 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T4XQZ-00079s-OT; Thu, 23 Aug 2012 13:26:27 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <keir.xen@gmail.com>) id 1T4XQX-00079h-JR
+       for xen-devel@lists.xen.org; Thu, 23 Aug 2012 13:26:25 +0000
+Received: from [85.158.143.99:50648] by server-3.bemta-4.messagelabs.com id
+       46/FD-08232-08F26305; Thu, 23 Aug 2012 13:26:24 +0000
+X-Env-Sender: keir.xen@gmail.com
+X-Msg-Ref: server-10.tower-216.messagelabs.com!1345728380!21203716!1
+X-Originating-IP: [209.85.213.173]
+X-SpamReason: No, hits=0.3 required=7.0 tests=ML_RADAR_SPEW_LINKS_14,
+       RCVD_BY_IP,spamassassin: 
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 4278 invoked from network); 23 Aug 2012 13:26:21 -0000
+Received: from mail-yx0-f173.google.com (HELO mail-yx0-f173.google.com)
+       (209.85.213.173)
+       by server-10.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
+       23 Aug 2012 13:26:21 -0000
+Received: by yenm4 with SMTP id m4so176561yen.32
+       for <xen-devel@lists.xen.org>; Thu, 23 Aug 2012 06:26:19 -0700 (PDT)
+DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
+       h=user-agent:date:subject:from:to:cc:message-id:thread-topic
+       :thread-index:in-reply-to:mime-version:content-type
+       :content-transfer-encoding;
+       bh=+DJMWrtWOFFUiunw5mecPWy5Xiszeu8+raQt2YSGPdQ=;
+       b=0pNcrspoYV/3KT/Bncj50iW2yB3S15V5QxwD+rEihLC96gR1Fvaf34qPKjGwBO9Cgg
+       1AFjOaSsMAY8XRqYc2vWuSKTApAXXLVEQX5XwvYDntRUben7iid8Gts2QoXOBcLfZX7J
+       ZNJIez8DkG4rP6NzN8kPQ3zGU7Q3HOOgGMrdzLPGexO5Nl/Naqs4w/zNlmemZSoQbnPK
+       MdKHSSou8/Tl9tqDj+TexdvuN0A+CHcXJYBIQ6PEcZJlJq9NZ9o2PbBKRJBhEgiDxweS
+       7jdmp0WqOI0GGQ9Y2Mq0currjiMRXbOUOmQZHYcicGTsLqFtqC7G3TfOrbVZi5nY4ez0
+       I9dg==
+Received: by 10.100.84.18 with SMTP id h18mr365971anb.57.1345728379832;
+       Thu, 23 Aug 2012 06:26:19 -0700 (PDT)
+Received: from [10.80.114.52] (firewall.ctxuk.citrix.com. [62.200.22.2])
+       by mx.google.com with ESMTPS id h8sm6751651ank.9.2012.08.23.06.26.16
+       (version=SSLv3 cipher=OTHER); Thu, 23 Aug 2012 06:26:18 -0700 (PDT)
+User-Agent: Microsoft-Entourage/12.32.0.111121
+Date: Thu, 23 Aug 2012 14:26:09 +0100
+From: Keir Fraser <keir.xen@gmail.com>
+To: Ian Campbell <Ian.Campbell@citrix.com>,
+       Julien Grall <julien.grall@citrix.com>
+Message-ID: <CC5BEE01.3CBD1%keir.xen@gmail.com>
+Thread-Topic: [Xen-devel] [XEN][RFC PATCH V2 01/17] hvm: Modify interface to
+       support multiple ioreq server
+Thread-Index: Ac2BMts6OtxgIZ01IU21qAuqa9Ijjw==
+In-Reply-To: <1345727912.12501.83.camel@zakaz.uk.xensource.com>
+Mime-version: 1.0
+Cc: "christian.limpach@gmail.com" <christian.limpach@gmail.com>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>,
+       "qemu-devel@nongnu.org" <qemu-devel@nongnu.org>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,FREEMAIL_FROM,
+       RCVD_IN_DNSWL_MED,RP_MATCHES_RCVD,T_DKIM_INVALID,UNPARSEABLE_RELAY
+       autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [XEN][RFC PATCH V2 01/17] hvm: Modify interface to
+ support multiple ioreq server
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On 23/08/2012 14:18, "Ian Campbell" <Ian.Campbell@citrix.com> wrote:
+
+>> diff --git a/xen/include/public/hvm/ioreq.h b/xen/include/public/hvm/ioreq.h
+>> index 4022a1d..87aacd3 100644
+>> --- a/xen/include/public/hvm/ioreq.h
+>> +++ b/xen/include/public/hvm/ioreq.h
+>> @@ -34,6 +34,7 @@
+>>  
+>>  #define IOREQ_TYPE_PIO          0 /* pio */
+>>  #define IOREQ_TYPE_COPY         1 /* mmio ops */
+>> +#define IOREQ_TYPE_PCI_CONFIG   2 /* pci config space ops */
+>>  #define IOREQ_TYPE_TIMEOFFSET   7
+>>  #define IOREQ_TYPE_INVALIDATE   8 /* mapcache */
+> 
+> I wonder why we skip 2-6 now -- perhaps they used to be something else
+> and we are avoiding them to avoid strange errors? In which case adding
+> the new on as 9 might be a good idea.
+
+They were almost certainly used for representing R-M-W ALU operations back
+in the days of the old IO emulator, very long ago. Still, there's no harm in
+leaving them unused.
+
+ -- Keir
+
+
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<CC672AF9.3D8E2%keir.xen@gmail.com> b/config/examples/test/corpus/<CC672AF9.3D8E2%keir.xen@gmail.com>
new file mode 100644 (file)
index 0000000..9190e66
--- /dev/null
@@ -0,0 +1,204 @@
+From xen-devel-bounces@lists.xen.org Sat Sep 01 03:06:49 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Sat, 01 Sep 2012 03:06:49 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T7d6l-0000Vm-4T
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Sat, 01 Sep 2012 03:06:49 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T7d1k-0008RF-4P; Sat, 01 Sep 2012 02:01:36 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <keir.xen@gmail.com>) id 1T7d1g-0007q4-Rq
+       for xen-devel@lists.xen.org; Sat, 01 Sep 2012 02:01:33 +0000
+Received: from [85.158.139.83:21971] by server-11.bemta-5.messagelabs.com id
+       95/C4-24658-C7C61405; Sat, 01 Sep 2012 02:01:32 +0000
+X-Env-Sender: keir.xen@gmail.com
+X-Msg-Ref: server-16.tower-182.messagelabs.com!1346464887!20653542!1
+X-Originating-IP: [209.85.210.45]
+X-SpamReason: No, hits=0.3 required=7.0 tests=ML_RADAR_SPEW_LINKS_14,
+       RCVD_BY_IP,spamassassin: 
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 15837 invoked from network); 1 Sep 2012 02:01:29 -0000
+Received: from mail-pz0-f45.google.com (HELO mail-pz0-f45.google.com)
+       (209.85.210.45)
+       by server-16.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
+       1 Sep 2012 02:01:29 -0000
+Received: by dadn15 with SMTP id n15so2190608dad.32
+       for <xen-devel@lists.xen.org>; Fri, 31 Aug 2012 19:01:27 -0700 (PDT)
+DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
+       h=user-agent:date:subject:from:to:cc:message-id:thread-topic
+       :thread-index:in-reply-to:mime-version:content-type
+       :content-transfer-encoding;
+       bh=UXb5GfLrw9FZGF5G4fVaAVaTnPRdlVjPi0oSItOxV+g=;
+       b=rhmTKZvMnvHaoH3cVkCB+kG6bi+qALxRF7/1gxfZVj5ALo0eZ4gIEQ81+9lCEWowOj
+       Q7tBQ2URodIM1LfAPe8wjRZV7iRHCnGivkNP17qdIMX2kcQo/JG6Jqh5CiR53HVE42Ho
+       fSYECI9/M00iTlgmVV49e6ChZhEpIJ6c8lx6uUf5nYtTEbsKp8XCl4ujBvLkXrbUM6aQ
+       Fu5Ermk0WO8qr1nkyTaUnphoWxw24J6pXMDDAWzeM1urVe7pWrwqMW087txKa7EBYRqu
+       emSH9Q/DBzoEb7/NIGADvp5SRGKtBoXt/01XHpx9Ts7p1yYvzb/tDTxlLVvkYmrrXoxI
+       2qJw==
+Received: by 10.68.218.72 with SMTP id pe8mr21328756pbc.33.1346464887085;
+       Fri, 31 Aug 2012 19:01:27 -0700 (PDT)
+Received: from [10.20.235.159] ([204.239.250.1])
+       by mx.google.com with ESMTPS id wh7sm4602909pbc.33.2012.08.31.19.01.23
+       (version=SSLv3 cipher=OTHER); Fri, 31 Aug 2012 19:01:25 -0700 (PDT)
+User-Agent: Microsoft-Entourage/12.32.0.111121
+Date: Sat, 01 Sep 2012 03:01:13 +0100
+From: Keir Fraser <keir.xen@gmail.com>
+To: Sander Eikelenboom <linux@eikelenboom.it>,
+       Santosh Jodh <Santosh.Jodh@citrix.com>
+Message-ID: <CC672AF9.3D8E2%keir.xen@gmail.com>
+Thread-Topic: [Xen-devel] Using debug-key 'o:  Dump IOMMU p2m table, locks up
+       machine
+Thread-Index: Ac2H5anSA9JOwrAdv0yUGY6DtFwLdQ==
+In-Reply-To: <1377403931.20120901011625@eikelenboom.it>
+Mime-version: 1.0
+Cc: "wei.wang2@amd.com" <wei.wang2@amd.com>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-3.6 required=5.0 tests=BAYES_00,FREEMAIL_FROM,
+       RCVD_IN_DNSWL_MED,RCVD_IN_SORBS_WEB,RP_MATCHES_RCVD,T_DKIM_INVALID,
+       UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] Using debug-key 'o:  Dump IOMMU p2m table,
+ locks up machine
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On 01/09/2012 00:16, "Sander Eikelenboom" <linux@eikelenboom.it> wrote:
+
+> 
+> Saturday, September 1, 2012, 12:57:45 AM, you wrote:
+> 
+>> The dump should complete - would be curious to see how long it takes on
+>> serial console. What baudrate is the console running at?
+> 
+> I think for ages, this part seems only to cover a bit of the first of 3 pv
+> guests which have devices passed through.
+> 38400
+> 
+> And i wonder if the information is very valuable, gfn == mfn for every line
+> ... at an increment of 1 ...
+> Perhaps a uhmmm more compact way of getting the interesting data would be
+> handy ?
+> Or is this the intended output ?
+> 
+>> The code does allow processing of pending softirqs quite frequently. I am not
+>> sure why you are still seeing SATA errors.
+> 
+> The machine is completely unresponsive in every way.
+
+It might schedule softirqs but that won't include scheduling or running any
+guest vcpus. The vcpu that happens to be running on that cpu at the time the
+debug dump starts, will be stuck unrunnable until the dump completes.
+
+Well, anyway, I don't know how useful a massive dump of the entire p2m is
+going to be for debugging anyway. If investigating an IOMMU page fault, I'd
+just want the info pertaining to that fault, and all the mapping information
+for that IO virtual address, dumped. :)
+
+ -- Keir
+
+> And using it with "xl debug-keys o" is never going to work i guess, since the
+> information flood is far larger than "xl dmesg" keeps ?
+> 
+> 
+> 
+>>> -----Original Message-----
+>>> From: Sander Eikelenboom [mailto:linux@eikelenboom.it]
+>>> Sent: Friday, August 31, 2012 3:43 PM
+>>> To: Santosh Jodh
+>>> Cc: wei.wang2@amd.com; xen-devel@lists.xen.org
+>>> Subject: Re: Using debug-key 'o: Dump IOMMU p2m table, locks up machine
+>>> 
+>>> 
+>>> Saturday, September 1, 2012, 12:24:32 AM, you wrote:
+>>> 
+>>>> Depending on how many VMs you have and the size of the IOMMU p2m
+>>> table, it can take a while. It should not be infinite though.
+>>> 
+>>>> How many VMs do you have running?
+>>> 
+>>> 15
+>>> 
+>>>> Can you please send the serial output when you press 'o'?
+>>> 
+>>> Attached, to the end you will see the s-ata errors coming through while the
+>>> dump still runs.
+>>> This is not a complete dump, only a few minutes after which i did a hard
+>>> reset.
+>>> 
+>>>> Santosh
+>>> 
+>>>>> -----Original Message-----
+>>>>> From: Sander Eikelenboom [mailto:linux@eikelenboom.it]
+>>>>> Sent: Friday, August 31, 2012 2:45 PM
+>>>>> To: Santosh Jodh; wei.wang2@amd.com
+>>>>> Cc: xen-devel@lists.xen.org
+>>>>> Subject: Using debug-key 'o: Dump IOMMU p2m table, locks up machine
+>>>>> 
+>>>>> 
+>>>>> I was trying to use the 'o' debug key to make a bug report about an "AMD-
+>>> Vi:
+>>>>> IO_PAGE_FAULT".
+>>>>> 
+>>>>> The result:
+>>>>> - When using "xl debug-keys o", the machine seems in a infinite loop,
+>>>>> can hardly login, eventually resulting in a kernel RCU stall and complete
+>>> lockup.
+>>>>> - When using serial console: I get a infinite stream of "gfn:  mfn: "
+>>>>> lines, mean while on the normal console, S-ATA devices are starting to
+>>> give errors.
+>>>>> 
+>>>>> So either option trashes the machine, other debug-keys work fine.
+>>>>> 
+>>>>> Machine has a 890-fx chipset and AMD phenom x6 proc.
+>>>>> 
+>>>>> xl dmesg with bootup and output from some other debug-keys is
+>>> attached.
+>>>>> 
+>>>>> --
+>>>>> 
+>>>>> Sander
+>>> 
+>>> 
+>>> 
+>>> 
+>>> --
+>>> Best regards,
+>>>  Sander                            mailto:linux@eikelenboom.it
+> 
+> 
+> 
+
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<CC681CDD.3D966%keir.xen@gmail.com> b/config/examples/test/corpus/<CC681CDD.3D966%keir.xen@gmail.com>
new file mode 100644 (file)
index 0000000..2876b65
--- /dev/null
@@ -0,0 +1,137 @@
+From xen-devel-bounces@lists.xen.org Sat Sep 01 20:19:19 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Sat, 01 Sep 2012 20:19:19 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T7tDx-0006Xe-1s
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Sat, 01 Sep 2012 20:19:19 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T7t8P-00030e-2X; Sat, 01 Sep 2012 19:13:33 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <keir.xen@gmail.com>) id 1T7t8M-00030Z-L3
+       for xen-devel@lists.xen.org; Sat, 01 Sep 2012 19:13:30 +0000
+Received: from [85.158.143.99:32629] by server-1.bemta-4.messagelabs.com id
+       2E/6E-12504-95E52405; Sat, 01 Sep 2012 19:13:29 +0000
+X-Env-Sender: keir.xen@gmail.com
+X-Msg-Ref: server-15.tower-216.messagelabs.com!1346526808!27989165!1
+X-Originating-IP: [209.85.212.173]
+X-SpamReason: No, hits=0.3 required=7.0 tests=ML_RADAR_SPEW_LINKS_14,
+       RCVD_BY_IP,spamassassin: 
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 6535 invoked from network); 1 Sep 2012 19:13:29 -0000
+Received: from mail-wi0-f173.google.com (HELO mail-wi0-f173.google.com)
+       (209.85.212.173)
+       by server-15.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
+       1 Sep 2012 19:13:29 -0000
+Received: by wibhm6 with SMTP id hm6so2184431wib.14
+       for <xen-devel@lists.xen.org>; Sat, 01 Sep 2012 12:13:28 -0700 (PDT)
+DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
+       h=user-agent:date:subject:from:to:cc:message-id:thread-topic
+       :thread-index:in-reply-to:mime-version:content-type
+       :content-transfer-encoding;
+       bh=lo6cFGjdF41uFen0A+xHuluh0Gzs+ifvMqxG5T/rKTk=;
+       b=HVcRLDBtxAxgESlk6ZFpXD9zZkHyqx9+hN9OX7GyoY7CUpFcc8nClWiwznfTd2Thls
+       sFOUR5a/2iWNG+U5TqOToKhrwrYahC6LbUn+77rzo/YvNBkUJmDhfLTPmQNSZ+y7HSmP
+       TvvkNol506Sx3/lVmcyZwyqLUaQ/CQqoQNyi2nEAo9tJubzAgiPaxhgZxs6ylj8d0MDa
+       NF9hqT4eS1P6JUFlI2wV+44UqFud4dQlF36HVAnfIK+kS3uLvjU6jwL9X+azdeugo3Me
+       nbIkZrHPxCKvZRGjWAjzHTCQDXWvzHA4FKxDeNHktpHxUQg9Y8MoxKfMZDPImr3Lm8hH
+       CwvA==
+Received: by 10.180.20.204 with SMTP id p12mr12550432wie.7.1346526808585;
+       Sat, 01 Sep 2012 12:13:28 -0700 (PDT)
+Received: from [192.168.1.69] (host86-184-74-117.range86-184.btcentralplus.com.
+       [86.184.74.117])
+       by mx.google.com with ESMTPS id cu1sm8715755wib.6.2012.09.01.12.13.24
+       (version=SSLv3 cipher=OTHER); Sat, 01 Sep 2012 12:13:27 -0700 (PDT)
+User-Agent: Microsoft-Entourage/12.32.0.111121
+Date: Sat, 01 Sep 2012 20:13:17 +0100
+From: Keir Fraser <keir.xen@gmail.com>
+To: Santosh Jodh <Santosh.Jodh@citrix.com>,
+       Sander Eikelenboom <linux@eikelenboom.it>
+Message-ID: <CC681CDD.3D966%keir.xen@gmail.com>
+Thread-Topic: [Xen-devel] Using debug-key 'o:  Dump IOMMU p2m table, locks up
+       machine
+Thread-Index: Ac2H5anSA9JOwrAdv0yUGY6DtFwLdQAfNVTwAATWEUo=
+In-Reply-To: <7914B38A4445B34AA16EB9F1352942F1012F0F6F4B98@SJCPMAILBOX01.citrite.net>
+Mime-version: 1.0
+Cc: "wei.wang2@amd.com" <wei.wang2@amd.com>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,FREEMAIL_FROM,
+       RCVD_IN_DNSWL_MED,RP_MATCHES_RCVD,T_DKIM_INVALID,UNPARSEABLE_RELAY
+       autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] Using debug-key 'o:  Dump IOMMU p2m table,
+ locks up machine
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On 01/09/2012 18:03, "Santosh Jodh" <Santosh.Jodh@citrix.com> wrote:
+
+>> It might schedule softirqs but that won't include scheduling or running any
+>> guest vcpus. The vcpu that happens to be running on that cpu at the time the
+>> debug dump starts, will be stuck unrunnable until the dump completes.
+> 
+> Why does'nt that vCPU get scheduled on some other pCPU? Is there  a way to
+> yield the CPU from the key handler?
+
+It can't be descheduled from this pCPU without running through the
+scheduler. You could try running the handler in a tasklet -- a tasklet
+causes other vCPUs to be descheduled from that pCPU, before it starts
+running.
+
+So you'd register a keyhandler which does a tasklet_schedule(), and do your
+logging work in the tasklet handler.
+
+Worth a shot maybe?
+
+>> 
+>> Well, anyway, I don't know how useful a massive dump of the entire p2m is
+>> going to be for debugging anyway. If investigating an IOMMU page fault, I'd
+>> just want the info pertaining to that fault, and all the mapping information
+>> for
+>> that IO virtual address, dumped. :)
+> 
+> It is not a generically useful command - its usefulness is in the same
+> category as dumping the MMU table. Unfortunately, there is no way to pass
+> arguments to the key handler - to say provide the VM and or starting gfn and
+> length for a more selective output.
+
+Quite simply, there likely needs to be more tracing on the IOMMU fault path.
+That's a separate concern from your keyhandler of course, but just saying
+I'd be looking for the former rather than the latter, for diagnosing
+Sander's bug.
+
+ -- Keir
+
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<CC68C5A1.3D97A%keir.xen@gmail.com> b/config/examples/test/corpus/<CC68C5A1.3D97A%keir.xen@gmail.com>
new file mode 100644 (file)
index 0000000..65a9d8f
--- /dev/null
@@ -0,0 +1,129 @@
+From xen-devel-bounces@lists.xen.org Sun Sep 02 08:18:40 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Sun, 02 Sep 2012 08:18:40 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T84S5-0004kG-Gd
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Sun, 02 Sep 2012 08:18:39 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T84N7-0005iA-2M; Sun, 02 Sep 2012 07:13:29 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <keir.xen@gmail.com>) id 1T84N5-0005i5-7F
+       for xen-devel@lists.xen.org; Sun, 02 Sep 2012 07:13:27 +0000
+Received: from [85.158.143.99:54387] by server-2.bemta-4.messagelabs.com id
+       94/3E-21239-61703405; Sun, 02 Sep 2012 07:13:26 +0000
+X-Env-Sender: keir.xen@gmail.com
+X-Msg-Ref: server-5.tower-216.messagelabs.com!1346570005!27723670!1
+X-Originating-IP: [209.85.212.179]
+X-SpamReason: No, hits=0.3 required=7.0 tests=ML_RADAR_SPEW_LINKS_14,
+       RCVD_BY_IP,spamassassin: 
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 23954 invoked from network); 2 Sep 2012 07:13:26 -0000
+Received: from mail-wi0-f179.google.com (HELO mail-wi0-f179.google.com)
+       (209.85.212.179)
+       by server-5.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
+       2 Sep 2012 07:13:26 -0000
+Received: by wibhq4 with SMTP id hq4so2333328wib.14
+       for <xen-devel@lists.xen.org>; Sun, 02 Sep 2012 00:13:25 -0700 (PDT)
+DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
+       h=user-agent:date:subject:from:to:cc:message-id:thread-topic
+       :thread-index:in-reply-to:mime-version:content-type
+       :content-transfer-encoding;
+       bh=VPjLZPtzsJv4Uh5RNI6HPNZqalZ+Cc5A8XxFaFo6DX8=;
+       b=0sQb0mWUWfAZ6+3Gja7OE2N6l8kNRw4kT/UrR+aRQZ9sw0lR9F3J3edVXQF4c4dnN6
+       lGVa6rY7RdCmb3wFfcJdqQb0WoSNDby8F8Zi61Bsx4sl0cGVjcGpxmyPDsNfj71Cp5gH
+       /7PB9TDuckYgKyBZ5CxFhB/4z7QH1RCWvpYgHWcnk2SuOmFsQ4wxr4cNsQh4ZC44EIj5
+       RslUhJRIbCqBneJbH7H3FPlxAcIuLdyJEAUUXhcQkFs4H8skYD3UCXEHAg4Y8Gi2qGk5
+       buZduiyVcCsly33Rdk3gBKEzp7Wb2q/HuYht71pKi8h3yWjXcnKp/0LST7vHU0Nns1Y0
+       wmsw==
+Received: by 10.216.3.85 with SMTP id 63mr788664weg.134.1346570005747;
+       Sun, 02 Sep 2012 00:13:25 -0700 (PDT)
+Received: from [192.168.1.69] (host86-184-74-117.range86-184.btcentralplus.com.
+       [86.184.74.117])
+       by mx.google.com with ESMTPS id k2sm16990259wiz.7.2012.09.02.00.13.24
+       (version=SSLv3 cipher=OTHER); Sun, 02 Sep 2012 00:13:25 -0700 (PDT)
+User-Agent: Microsoft-Entourage/12.32.0.111121
+Date: Sun, 02 Sep 2012 08:13:21 +0100
+From: Keir Fraser <keir.xen@gmail.com>
+To: Santosh Jodh <Santosh.Jodh@citrix.com>,
+       Sander Eikelenboom <linux@eikelenboom.it>
+Message-ID: <CC68C5A1.3D97A%keir.xen@gmail.com>
+Thread-Topic: [Xen-devel] Using debug-key 'o:  Dump IOMMU p2m table, locks up
+       machine
+Thread-Index: Ac2H5anSA9JOwrAdv0yUGY6DtFwLdQAfNVTwAATWEUoADm300AAKt/F2
+In-Reply-To: <7914B38A4445B34AA16EB9F1352942F1012F0F6F4BA7@SJCPMAILBOX01.citrite.net>
+Mime-version: 1.0
+Cc: "wei.wang2@amd.com" <wei.wang2@amd.com>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,FREEMAIL_FROM,
+       RCVD_IN_DNSWL_MED,RP_MATCHES_RCVD,T_DKIM_INVALID,UNPARSEABLE_RELAY
+       autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] Using debug-key 'o:  Dump IOMMU p2m table,
+ locks up machine
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On 02/09/2012 03:08, "Santosh Jodh" <Santosh.Jodh@citrix.com> wrote:
+
+>>>> It might schedule softirqs but that won't include scheduling or
+>>>> running any guest vcpus. The vcpu that happens to be running on that
+>>>> cpu at the time the debug dump starts, will be stuck unrunnable until the
+>> dump completes.
+>>> 
+>>> Why does'nt that vCPU get scheduled on some other pCPU? Is there  a
+>>> way to yield the CPU from the key handler?
+>> 
+>> It can't be descheduled from this pCPU without running through the
+>> scheduler. You could try running the handler in a tasklet -- a tasklet causes
+>> other vCPUs to be descheduled from that pCPU, before it starts running.
+>> 
+>> So you'd register a keyhandler which does a tasklet_schedule(), and do your
+>> logging work in the tasklet handler.
+>> 
+>> Worth a shot maybe?
+> 
+> Yes - certainly. Is there a reason why all key handlers should not be
+> tasklets?
+
+Some keys you want to print immediately (stack trace), or you are using them
+when the system is in a bad way, and deferring the tracing may cause you to
+get no tracing at all. There may be a few informational keys, for irqs and
+the like, that could be moved to tasklet context though, yes. It's just the
+tasklet-in-hypervisor-thread mechanism is newer than the key handlers. ;-)
+
+ -- Keir
+
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<CC68C71C.3D981%keir.xen@gmail.com> b/config/examples/test/corpus/<CC68C71C.3D981%keir.xen@gmail.com>
new file mode 100644 (file)
index 0000000..988454c
--- /dev/null
@@ -0,0 +1,145 @@
+From xen-devel-bounces@lists.xen.org Sun Sep 02 08:24:40 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Sun, 02 Sep 2012 08:24:40 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T84Xt-0004kn-Dy
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Sun, 02 Sep 2012 08:24:40 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T84TD-0005qh-Sg; Sun, 02 Sep 2012 07:19:47 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <keir.xen@gmail.com>) id 1T84TC-0005qY-DO
+       for xen-devel@lists.xen.org; Sun, 02 Sep 2012 07:19:46 +0000
+Received: from [85.158.143.99:6182] by server-3.bemta-4.messagelabs.com id
+       AA/F5-08232-19803405; Sun, 02 Sep 2012 07:19:45 +0000
+X-Env-Sender: keir.xen@gmail.com
+X-Msg-Ref: server-5.tower-216.messagelabs.com!1346570384!27724122!1
+X-Originating-IP: [74.125.82.173]
+X-SpamReason: No, hits=0.3 required=7.0 tests=ML_RADAR_SPEW_LINKS_14,
+       RCVD_BY_IP,spamassassin: 
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 6446 invoked from network); 2 Sep 2012 07:19:44 -0000
+Received: from mail-we0-f173.google.com (HELO mail-we0-f173.google.com)
+       (74.125.82.173)
+       by server-5.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
+       2 Sep 2012 07:19:44 -0000
+Received: by weyz53 with SMTP id z53so2821277wey.32
+       for <xen-devel@lists.xen.org>; Sun, 02 Sep 2012 00:19:44 -0700 (PDT)
+DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
+       h=user-agent:date:subject:from:to:cc:message-id:thread-topic
+       :thread-index:in-reply-to:mime-version:content-type
+       :content-transfer-encoding;
+       bh=kfKFA2B7rxAhmbReoBU47bDede3hRnCJS0/bTFkazAw=;
+       b=Y3ajfsPJEEVvpRrnwa8OFP1vl2awIjSpRtGQKbE03NhdDWbItHMXtNlUble3985yxA
+       akOjx6ccYBQZ9N+I+i6xhNc2Z4BStsrjyFEYtXl+19Uh5cwBO9V7uk+5I3ha4fxjkeCt
+       SBGw5FKvizebJOWuFo/nx+221gQjzZNm70Un70EQOqgcdotM+KIoG1Wdg4Ek4aTVJKQ5
+       Bo4i27lQJtz/92cJGrh92BOagWpmoGWhIuLm4bBCeGA7ZueS5/x4PntB2dwpDi+YaoNJ
+       njRQCwgpJRDJQlJdGP/JQAyjO8A41PX1irHE0N6mfXEWdmFf+ydoUl+SbCIgE9PXVzWf
+       1B4Q==
+Received: by 10.217.1.206 with SMTP id n56mr7323407wes.151.1346570384337;
+       Sun, 02 Sep 2012 00:19:44 -0700 (PDT)
+Received: from [192.168.1.69] (host86-184-74-117.range86-184.btcentralplus.com.
+       [86.184.74.117])
+       by mx.google.com with ESMTPS id bc2sm17041325wib.0.2012.09.02.00.19.42
+       (version=SSLv3 cipher=OTHER); Sun, 02 Sep 2012 00:19:43 -0700 (PDT)
+User-Agent: Microsoft-Entourage/12.32.0.111121
+Date: Sun, 02 Sep 2012 08:19:40 +0100
+From: Keir Fraser <keir.xen@gmail.com>
+To: Santosh Jodh <Santosh.Jodh@citrix.com>,
+       Sander Eikelenboom <linux@eikelenboom.it>
+Message-ID: <CC68C71C.3D981%keir.xen@gmail.com>
+Thread-Topic: [Xen-devel] Using debug-key 'o:  Dump IOMMU p2m table, locks up
+       machine
+Thread-Index: Ac2H5anSA9JOwrAdv0yUGY6DtFwLdQAfNVTwAATWEUoADm300AAKt/F2AAA4elk=
+In-Reply-To: <CC68C5A1.3D97A%keir.xen@gmail.com>
+Mime-version: 1.0
+Cc: "wei.wang2@amd.com" <wei.wang2@amd.com>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,FREEMAIL_FROM,
+       RCVD_IN_DNSWL_MED,RP_MATCHES_RCVD,T_DKIM_INVALID,UNPARSEABLE_RELAY
+       autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] Using debug-key 'o:  Dump IOMMU p2m table,
+ locks up machine
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On 02/09/2012 08:13, "Keir Fraser" <keir.xen@gmail.com> wrote:
+
+> On 02/09/2012 03:08, "Santosh Jodh" <Santosh.Jodh@citrix.com> wrote:
+> 
+>>>>> It might schedule softirqs but that won't include scheduling or
+>>>>> running any guest vcpus. The vcpu that happens to be running on that
+>>>>> cpu at the time the debug dump starts, will be stuck unrunnable until the
+>>> dump completes.
+>>>> 
+>>>> Why does'nt that vCPU get scheduled on some other pCPU? Is there  a
+>>>> way to yield the CPU from the key handler?
+>>> 
+>>> It can't be descheduled from this pCPU without running through the
+>>> scheduler. You could try running the handler in a tasklet -- a tasklet
+>>> causes
+>>> other vCPUs to be descheduled from that pCPU, before it starts running.
+>>> 
+>>> So you'd register a keyhandler which does a tasklet_schedule(), and do your
+>>> logging work in the tasklet handler.
+>>> 
+>>> Worth a shot maybe?
+>> 
+>> Yes - certainly. Is there a reason why all key handlers should not be
+>> tasklets?
+> 
+> Some keys you want to print immediately (stack trace), or you are using them
+> when the system is in a bad way, and deferring the tracing may cause you to
+> get no tracing at all. There may be a few informational keys, for irqs and
+> the like, that could be moved to tasklet context though, yes. It's just the
+> tasklet-in-hypervisor-thread mechanism is newer than the key handlers. ;-)
+
+Actually, ignore me, most keyhandlers are getting deferred to a tasklet
+context already. At least when triggered from a serial irq. See
+common/keyhandler.c:handle_keypress().
+
+So your handler, when triggered by 'o' over the serial line, will be running
+in tasklet context already. So vCPU execution is getting stalled just
+because, I'm not sure, not running through the scheduler softirq for ages on
+that pCPU is maybe confusing the scheduler? :(
+
+ -- Ker
+
+>  -- Keir
+> 
+> 
+
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<CC68CC67.3D984%keir.xen@gmail.com> b/config/examples/test/corpus/<CC68CC67.3D984%keir.xen@gmail.com>
new file mode 100644 (file)
index 0000000..5a71d6e
--- /dev/null
@@ -0,0 +1,139 @@
+From xen-devel-bounces@lists.xen.org Sun Sep 02 08:47:30 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Sun, 02 Sep 2012 08:47:30 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T84u0-0004nA-6K
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Sun, 02 Sep 2012 08:47:30 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T84pA-00064X-38; Sun, 02 Sep 2012 07:42:28 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <keir.xen@gmail.com>) id 1T84p8-00064S-GL
+       for xen-devel@lists.xen.org; Sun, 02 Sep 2012 07:42:26 +0000
+Received: from [85.158.139.83:26732] by server-1.bemta-5.messagelabs.com id
+       B7/8D-32692-1ED03405; Sun, 02 Sep 2012 07:42:25 +0000
+X-Env-Sender: keir.xen@gmail.com
+X-Msg-Ref: server-12.tower-182.messagelabs.com!1346571743!27935380!1
+X-Originating-IP: [74.125.82.51]
+X-SpamReason: No, hits=0.3 required=7.0 tests=ML_RADAR_SPEW_LINKS_14,
+       RCVD_BY_IP,spamassassin: 
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 31598 invoked from network); 2 Sep 2012 07:42:23 -0000
+Received: from mail-wg0-f51.google.com (HELO mail-wg0-f51.google.com)
+       (74.125.82.51)
+       by server-12.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
+       2 Sep 2012 07:42:23 -0000
+Received: by wgbed3 with SMTP id ed3so2564131wgb.32
+       for <xen-devel@lists.xen.org>; Sun, 02 Sep 2012 00:42:23 -0700 (PDT)
+DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
+       h=user-agent:date:subject:from:to:cc:message-id:thread-topic
+       :thread-index:in-reply-to:mime-version:content-type
+       :content-transfer-encoding;
+       bh=w9blQ7PuytmUt7yPAZBUqRok/xzKICKZ8fwlvU954QY=;
+       b=hElaZu8TY8D5iTgvxxPoCW/disitX8m9ipGA0nHVHh2BkgY74X9KYyOybJlBrkjJHy
+       pWlo4yuKUOfBi8qyL+BtR+TzhjPAjdh6JTcydVAGQVpda7uEf8/6Eo/tLxTxzcHCyodg
+       bvvDg6zA15tEeaysSilpTxT4ddnfiLKU5+yE9Zr656n9ZDNWKQ+loQG4hD0iISetnFmB
+       aEDI6fN2e/cQgsb99fZHHk+9buOmrJfroKfbhIODnyWyrgyBemNzB/Juu0SjPeyoNJK2
+       EI+usMRfTraFo8gzQ5X5nhalwJszCkLDylKFclVcPl8FJPv3pHyoS1tVz/1/+2IMSzkM
+       Py+A==
+Received: by 10.217.1.79 with SMTP id m57mr7361500wes.121.1346571742957;
+       Sun, 02 Sep 2012 00:42:22 -0700 (PDT)
+Received: from [192.168.1.69] (host86-184-74-117.range86-184.btcentralplus.com.
+       [86.184.74.117])
+       by mx.google.com with ESMTPS id k20sm11657483wiv.11.2012.09.02.00.42.20
+       (version=SSLv3 cipher=OTHER); Sun, 02 Sep 2012 00:42:22 -0700 (PDT)
+User-Agent: Microsoft-Entourage/12.32.0.111121
+Date: Sun, 02 Sep 2012 08:42:15 +0100
+From: Keir Fraser <keir.xen@gmail.com>
+To: Sander Eikelenboom <linux@eikelenboom.it>,
+       Santosh Jodh <santosh.jodh@citrix.com>, <wei.wang2@amd.com>
+Message-ID: <CC68CC67.3D984%keir.xen@gmail.com>
+Thread-Topic: [Xen-devel] Using debug-key 'o:  Dump IOMMU p2m table, locks up
+       machine
+Thread-Index: Ac2I3niJ0Q4uQqsNykiQU+v9bEIzQw==
+In-Reply-To: <647712821.20120831234512@eikelenboom.it>
+Mime-version: 1.0
+Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,FREEMAIL_FROM,
+       RCVD_IN_DNSWL_MED,RP_MATCHES_RCVD,T_DKIM_INVALID,UNPARSEABLE_RELAY
+       autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] Using debug-key 'o:  Dump IOMMU p2m table,
+ locks up machine
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On 31/08/2012 22:45, "Sander Eikelenboom" <linux@eikelenboom.it> wrote:
+
+> 
+> I was trying to use the 'o' debug key to make a bug report about an "AMD-Vi:
+> IO_PAGE_FAULT".
+> 
+> The result:
+> - When using "xl debug-keys o", the machine seems in a infinite loop, can
+> hardly login, eventually resulting in a kernel RCU stall and complete lockup.
+
+We don't defer the key handler to tasklet context in this case (because of
+'if !in_irq()' check in keyhandler.c:handle_keypress()). Hence the dom0 vCPU
+gets 'stuck' while the handler executes. Possibly we should always defer
+non-irq keyhandlers to tasklet context, even when executed via sysctl.
+
+> - When using serial console: I get a infinite stream of "gfn:  mfn: " lines,
+> mean while on the normal console, S-ATA devices are starting to give errors.
+
+In this case the handler must be running in tasklet context. Not sure why
+SATA interrupts would be affected as hardirq and softirq work will still be
+carried out during execution of the keyhandler (the handler voluntarily
+preempts itself for softirq work).
+
+Would need more investigation. :)
+
+ -- Keir
+
+> So either option trashes the machine, other debug-keys work fine.
+> 
+> Machine has a 890-fx chipset and AMD phenom x6 proc.
+> 
+> xl dmesg with bootup and output from some other debug-keys is attached.
+> 
+> --
+> 
+> Sander
+> _______________________________________________
+> Xen-devel mailing list
+> Xen-devel@lists.xen.org
+> http://lists.xen.org/xen-devel
+
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<CC6932C2.3D99D%keir.xen@gmail.com> b/config/examples/test/corpus/<CC6932C2.3D99D%keir.xen@gmail.com>
new file mode 100644 (file)
index 0000000..588e12f
--- /dev/null
@@ -0,0 +1,130 @@
+From xen-devel-bounces@lists.xen.org Sun Sep 02 16:04:57 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Sun, 02 Sep 2012 16:04:57 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T8BjK-0005T7-JK
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Sun, 02 Sep 2012 16:04:57 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T8Bdn-00089b-Sj; Sun, 02 Sep 2012 14:59:11 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <keir.xen@gmail.com>) id 1T8Bdl-00089T-RI
+       for xen-devel@lists.xen.org; Sun, 02 Sep 2012 14:59:10 +0000
+Received: from [85.158.139.83:9817] by server-5.bemta-5.messagelabs.com id
+       4A/54-30514-D3473405; Sun, 02 Sep 2012 14:59:09 +0000
+X-Env-Sender: keir.xen@gmail.com
+X-Msg-Ref: server-14.tower-182.messagelabs.com!1346597946!23871711!1
+X-Originating-IP: [74.125.83.45]
+X-SpamReason: No, hits=0.3 required=7.0 tests=ML_RADAR_SPEW_LINKS_14,
+       RCVD_BY_IP,spamassassin: 
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 1183 invoked from network); 2 Sep 2012 14:59:07 -0000
+Received: from mail-ee0-f45.google.com (HELO mail-ee0-f45.google.com)
+       (74.125.83.45)
+       by server-14.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
+       2 Sep 2012 14:59:07 -0000
+Received: by eeke53 with SMTP id e53so1822412eek.32
+       for <xen-devel@lists.xen.org>; Sun, 02 Sep 2012 07:59:06 -0700 (PDT)
+DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
+       h=user-agent:date:subject:from:to:cc:message-id:thread-topic
+       :thread-index:in-reply-to:mime-version:content-type
+       :content-transfer-encoding;
+       bh=cxbObWqzfKpGgJQIedRktVC+MyWwal42nEHioXLnv4U=;
+       b=s6p0GnX8a9op8Vom9G5bcv0EQwgmqP02sUIE74gAil+3q9GesSMng163pur3uz+T+6
+       mBUN9LaxrH4kN/Ozn3x8zzxi1dPnwPb5YQVHus9MZi1V5Fq9VmD9GWLyQyCQKSwaub1B
+       YymMXrH0+hhiDz+wjh1mGbImVL0S/BcCjsEI1Z/frjmxjlJB1aLl9abY10lLZZKqKW10
+       AsrmkwWpb2FMY1w6axLhEsrTY5XNGPEd63zA1gxKrGP1nl22VHnhTjGTRJoUD05cgYRf
+       DCdP3INd78sqGDlZXVorWFSPoCQm0OQTrmByPL5niSGF/I/pd6O7H5/GIlgSaXoRawYs
+       +A2w==
+Received: by 10.14.4.201 with SMTP id 49mr17953608eej.0.1346597946743;
+       Sun, 02 Sep 2012 07:59:06 -0700 (PDT)
+Received: from [192.168.1.69] (host86-184-74-117.range86-184.btcentralplus.com.
+       [86.184.74.117])
+       by mx.google.com with ESMTPS id 45sm28739266eeb.8.2012.09.02.07.59.02
+       (version=SSLv3 cipher=OTHER); Sun, 02 Sep 2012 07:59:06 -0700 (PDT)
+User-Agent: Microsoft-Entourage/12.32.0.111121
+Date: Sun, 02 Sep 2012 15:58:58 +0100
+From: Keir Fraser <keir.xen@gmail.com>
+To: Sander Eikelenboom <linux@eikelenboom.it>
+Message-ID: <CC6932C2.3D99D%keir.xen@gmail.com>
+Thread-Topic: [Xen-devel] Using debug-key 'o:  Dump IOMMU p2m table, locks up
+       machine
+Thread-Index: Ac2JG3q9vAd49JMnbUy0lmDWqo6J3w==
+In-Reply-To: <40501859.20120902104331@eikelenboom.it>
+Mime-version: 1.0
+Cc: "wei.wang2@amd.com" <wei.wang2@amd.com>,
+       Santosh Jodh <Santosh.Jodh@citrix.com>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,FREEMAIL_FROM,
+       RCVD_IN_DNSWL_MED,RP_MATCHES_RCVD,T_DKIM_INVALID,UNPARSEABLE_RELAY
+       autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] Using debug-key 'o:  Dump IOMMU p2m table,
+ locks up machine
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On 02/09/2012 09:43, "Sander Eikelenboom" <linux@eikelenboom.it> wrote:
+
+>> Quite simply, there likely needs to be more tracing on the IOMMU fault path.
+>> That's a separate concern from your keyhandler of course, but just saying
+>> I'd be looking for the former rather than the latter, for diagnosing
+>> Sander's bug.
+> 
+> Are there any printk's I could add to get more relevant info about the AMD-Vi:
+> IO_PAGE_FAULT ?
+
+No really straightforward one. I think we need a per-IOMMU-type handler to
+walk the IOMMU page table for a given virtual address, and dump every
+page-table-entry on the path. Like an IOMMU version of show_page_walk().
+Personally I would suspect this is more useful than the dump-everything
+handlers: just give a *full* *detailed* walk for the actually interesting
+virtual address (the one faulted on).
+
+> I have attached new output from xl dmesg, this time with iommu=debug on (the
+> option changed from 4.1 to 4.2).
+
+Not easy to glean any more from that, without extra tracing such as
+described above, and/or digging into the guest to find what driver-side
+actions are causing the faults.
+
+ -- Keir
+
+> 
+> 
+>>  -- Keir
+> 
+
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<CC6B6568.3DAAD%keir.xen@gmail.com> b/config/examples/test/corpus/<CC6B6568.3DAAD%keir.xen@gmail.com>
new file mode 100644 (file)
index 0000000..9b52d67
--- /dev/null
@@ -0,0 +1,130 @@
+From xen-devel-bounces@lists.xen.org Tue Sep 04 08:04:30 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Tue, 04 Sep 2012 08:04:30 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T8nBQ-0001EP-1H
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 04 Sep 2012 08:04:30 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T8n6z-0000zT-IB; Tue, 04 Sep 2012 06:59:49 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <keir.xen@gmail.com>) id 1T8n6x-0000zO-P6
+       for xen-devel@lists.xen.org; Tue, 04 Sep 2012 06:59:47 +0000
+Received: from [85.158.143.35:13915] by server-1.bemta-4.messagelabs.com id
+       D5/CC-12504-2E6A5405; Tue, 04 Sep 2012 06:59:46 +0000
+X-Env-Sender: keir.xen@gmail.com
+X-Msg-Ref: server-11.tower-21.messagelabs.com!1346741985!11381864!1
+X-Originating-IP: [209.85.215.173]
+X-SpamReason: No, hits=0.3 required=7.0 tests=ML_RADAR_SPEW_LINKS_14,
+       RCVD_BY_IP,spamassassin: 
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 4718 invoked from network); 4 Sep 2012 06:59:46 -0000
+Received: from mail-ey0-f173.google.com (HELO mail-ey0-f173.google.com)
+       (209.85.215.173)
+       by server-11.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
+       4 Sep 2012 06:59:46 -0000
+Received: by eaac13 with SMTP id c13so1954112eaa.32
+       for <xen-devel@lists.xen.org>; Mon, 03 Sep 2012 23:59:45 -0700 (PDT)
+DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
+       h=user-agent:date:subject:from:to:cc:message-id:thread-topic
+       :thread-index:in-reply-to:mime-version:content-type
+       :content-transfer-encoding;
+       bh=+dKocxMSLwymvf2YptnMx5FF4tHmPlfcOOodFO7BMUk=;
+       b=jZGtponIaOY3uiMxbuAkKHVCad6FNi5FImNZcS+rVq9v07Qxvzar973nGFFoMUvVcB
+       UN/Gvk/Xt4FZyFDFXVra5eJc+GYBwL7eHr1TRuc0/79M7XtriF3G5BzSjle1hHyZrina
+       SS6i0h37VYrzGkEkIQPGW2LT1XxwoIUfuQqzE4q+DzOXTaY20RQ2bEYR9z/8KKkGpGrI
+       AKozl9JdKlshZ4gJVNX623z8zxk5fJzIpdokd4rIfZa2NdFUQPgUQdHDpWmTrAjpMr3v
+       uxiqs8J7tZhtz6GdRKClOhLymUCdoD5BRoCKirZdGYVrTiArm8AtNNhDD8pa9/r3wL2I
+       ARSg==
+Received: by 10.14.207.9 with SMTP id m9mr24718169eeo.5.1346741985825;
+       Mon, 03 Sep 2012 23:59:45 -0700 (PDT)
+Received: from [192.168.1.69] (host86-184-74-117.range86-184.btcentralplus.com.
+       [86.184.74.117])
+       by mx.google.com with ESMTPS id v3sm42636318eep.10.2012.09.03.23.59.42
+       (version=SSLv3 cipher=OTHER); Mon, 03 Sep 2012 23:59:45 -0700 (PDT)
+User-Agent: Microsoft-Entourage/12.32.0.111121
+Date: Tue, 04 Sep 2012 07:59:36 +0100
+From: Keir Fraser <keir.xen@gmail.com>
+To: Jan Beulich <JBeulich@suse.com>, Sander Eikelenboom <linux@eikelenboom.it>,
+       George Dunlap <George.Dunlap@eu.citrix.com>
+Message-ID: <CC6B6568.3DAAD%keir.xen@gmail.com>
+Thread-Topic: [Xen-devel] Using debug-key 'o:  Dump IOMMU p2m table, locks up
+       machine
+Thread-Index: Ac2KatgUGFZFxbeHDkeffgybugnEcA==
+In-Reply-To: <5045BD5C02000078000985A7@nat28.tlf.novell.com>
+Mime-version: 1.0
+Cc: wei.wang2@amd.com, Santosh Jodh <santosh.jodh@citrix.com>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,FREEMAIL_FROM,
+       RCVD_IN_DNSWL_MED,RP_MATCHES_RCVD,T_DKIM_INVALID,UNPARSEABLE_RELAY
+       autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] Using debug-key 'o:  Dump IOMMU p2m table,
+ locks up machine
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On 04/09/2012 07:35, "Jan Beulich" <JBeulich@suse.com> wrote:
+
+>>>> On 02.09.12 at 09:42, Keir Fraser <keir.xen@gmail.com> wrote:
+>> On 31/08/2012 22:45, "Sander Eikelenboom" <linux@eikelenboom.it> wrote:
+>>> - When using serial console: I get a infinite stream of "gfn:  mfn: " lines,
+>>> mean while on the normal console, S-ATA devices are starting to give errors.
+>> 
+>> In this case the handler must be running in tasklet context. Not sure why
+>> SATA interrupts would be affected as hardirq and softirq work will still be
+>> carried out during execution of the keyhandler (the handler voluntarily
+>> preempts itself for softirq work).
+>> 
+>> Would need more investigation. :)
+> 
+> Isn't that because tasklets (i.e. idle vCPU-s with tasklets active)
+> get preferred in the schedulers? Some compensation might be
+> needed for the penalized vCPU, at least if that one is pinned
+> (not sure whether load balancing would be able to steal the
+> head of the run queue from a remote CPU). Sander - are you
+> by chance pinning Dom0 vCPU-s? And how many of them does
+> your Dom0 have?
+
+Jan, Yes you could be right, if Sander is pinning CPUs. Anyway, I wasn't
+going to expend too much brain power on this situation. The case of spending
+a few minutes in one key handler is not one I think is particularly sane.
+
+ -- Keir
+
+> Jan
+> 
+
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<CC6B65F2.3DAAF%keir.xen@gmail.com> b/config/examples/test/corpus/<CC6B65F2.3DAAF%keir.xen@gmail.com>
new file mode 100644 (file)
index 0000000..0029f62
--- /dev/null
@@ -0,0 +1,113 @@
+From xen-devel-bounces@lists.xen.org Tue Sep 04 08:06:18 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Tue, 04 Sep 2012 08:06:18 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T8nDA-0001Ez-2I
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 04 Sep 2012 08:06:17 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T8n9A-0001G7-WF; Tue, 04 Sep 2012 07:02:05 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <keir.xen@gmail.com>) id 1T8n98-0001Fz-LZ
+       for xen-devel@lists.xen.org; Tue, 04 Sep 2012 07:02:02 +0000
+Received: from [85.158.139.83:62087] by server-5.bemta-5.messagelabs.com id
+       6E/05-30514-967A5405; Tue, 04 Sep 2012 07:02:01 +0000
+X-Env-Sender: keir.xen@gmail.com
+X-Msg-Ref: server-4.tower-182.messagelabs.com!1346742121!25685685!1
+X-Originating-IP: [209.85.215.173]
+X-SpamReason: No, hits=0.3 required=7.0 tests=ML_RADAR_SPEW_LINKS_14,
+       RCVD_BY_IP,spamassassin: 
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 2100 invoked from network); 4 Sep 2012 07:02:01 -0000
+Received: from mail-ey0-f173.google.com (HELO mail-ey0-f173.google.com)
+       (209.85.215.173)
+       by server-4.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
+       4 Sep 2012 07:02:01 -0000
+Received: by eaac13 with SMTP id c13so1954977eaa.32
+       for <xen-devel@lists.xen.org>; Tue, 04 Sep 2012 00:02:01 -0700 (PDT)
+DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
+       h=user-agent:date:subject:from:to:cc:message-id:thread-topic
+       :thread-index:in-reply-to:mime-version:content-type
+       :content-transfer-encoding;
+       bh=oHvtHbLWPl7Dyx7z1l4Vx/Kbf4nkhTVV4Rqr9nI93eM=;
+       b=d1wFG9qgKbmY6jt02GVhJUVtvg3Cl1L559u+uWMdMKvUtPhd5kzRKiISKrKI9U5wGN
+       pgHTF6zBkT7Kq3w8N4EAaGk9utRrJ5TJhW6vrnetoRowd1ik7jJ942Hb4ANccxkuuLbY
+       Znz8krUsbgbtsuhktId8GDnnZ4DWiJvA55sKJib2+7noQB5EMQZniKDBu2oEo8j1klT2
+       YugVxrZPqRbJZ6HzjpgcRMduuF6Vu5uCMLopmU9k8TK9P58Ga2WvQHGxCmzhbiMn54ea
+       dfbk6UqCQiYgDR44kPb3/ftj35G/AfQ6cAagtXfmFHtylcTh3ryYG6Q9Tf4BuvVhWBiO
+       Vj5Q==
+Received: by 10.14.211.3 with SMTP id v3mr24637561eeo.43.1346742121180;
+       Tue, 04 Sep 2012 00:02:01 -0700 (PDT)
+Received: from [192.168.1.69] (host86-184-74-117.range86-184.btcentralplus.com.
+       [86.184.74.117])
+       by mx.google.com with ESMTPS id v3sm42652597eep.10.2012.09.04.00.01.58
+       (version=SSLv3 cipher=OTHER); Tue, 04 Sep 2012 00:02:00 -0700 (PDT)
+User-Agent: Microsoft-Entourage/12.32.0.111121
+Date: Tue, 04 Sep 2012 08:01:54 +0100
+From: Keir Fraser <keir.xen@gmail.com>
+To: Sander Eikelenboom <linux@eikelenboom.it>, Jan Beulich <JBeulich@suse.com>
+Message-ID: <CC6B65F2.3DAAF%keir.xen@gmail.com>
+Thread-Topic: [Xen-devel] Using debug-key 'o:  Dump IOMMU p2m table, locks up
+       machine
+Thread-Index: Ac2KaypVHnBMx0Z6PkKEs6UxLRYpGw==
+In-Reply-To: <1576173912.20120904085238@eikelenboom.it>
+Mime-version: 1.0
+Cc: George Dunlap <George.Dunlap@eu.citrix.com>, wei.wang2@amd.com,
+       Santosh Jodh <santosh.jodh@citrix.com>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,FREEMAIL_FROM,
+       RCVD_IN_DNSWL_MED,RP_MATCHES_RCVD,T_DKIM_INVALID,UNPARSEABLE_RELAY
+       autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] Using debug-key 'o:  Dump IOMMU p2m table,
+ locks up machine
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On 04/09/2012 07:52, "Sander Eikelenboom" <linux@eikelenboom.it> wrote:
+
+>> Isn't that because tasklets (i.e. idle vCPU-s with tasklets active)
+>> get preferred in the schedulers? Some compensation might be
+>> needed for the penalized vCPU, at least if that one is pinned
+>> (not sure whether load balancing would be able to steal the
+>> head of the run queue from a remote CPU). Sander - are you
+>> by chance pinning Dom0 vCPU-s? And how many of them does
+>> your Dom0 have?
+>
+> Yes i do, could perhaps be the pinning of CPU0 ?
+
+Yeah. :) Case closed?
+
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<CC6B74A7.3DAC1%keir.xen@gmail.com> b/config/examples/test/corpus/<CC6B74A7.3DAC1%keir.xen@gmail.com>
new file mode 100644 (file)
index 0000000..4b3dac9
--- /dev/null
@@ -0,0 +1,125 @@
+From xen-devel-bounces@lists.xen.org Tue Sep 04 09:13:11 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Tue, 04 Sep 2012 09:13:11 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T8oFs-0001Qg-Qo
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 04 Sep 2012 09:13:11 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T8oBa-00042x-Px; Tue, 04 Sep 2012 08:08:38 +0000
+Received: from mail27.messagelabs.com ([193.109.254.147])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <keir.xen@gmail.com>) id 1T8oBZ-00042W-6W
+       for xen-devel@lists.xen.org; Tue, 04 Sep 2012 08:08:37 +0000
+X-Env-Sender: keir.xen@gmail.com
+X-Msg-Ref: server-10.tower-27.messagelabs.com!1346745885!4296471!1
+X-Originating-IP: [74.125.83.45]
+X-SpamReason: No, hits=0.3 required=7.0 tests=ML_RADAR_SPEW_LINKS_14,
+       RCVD_BY_IP,spamassassin: 
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 7946 invoked from network); 4 Sep 2012 08:04:45 -0000
+Received: from mail-ee0-f45.google.com (HELO mail-ee0-f45.google.com)
+       (74.125.83.45)
+       by server-10.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
+       4 Sep 2012 08:04:45 -0000
+Received: by eeke53 with SMTP id e53so2488847eek.32
+       for <xen-devel@lists.xen.org>; Tue, 04 Sep 2012 01:04:45 -0700 (PDT)
+DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
+       h=user-agent:date:subject:from:to:cc:message-id:thread-topic
+       :thread-index:in-reply-to:mime-version:content-type
+       :content-transfer-encoding;
+       bh=axV4W47eX7/ByDKtExRW86JYEt3N714aqk8zGKPU5YE=;
+       b=hV1HpUXZ0w9H7ogVO2qiltSjI33cUcjVDCvuQ1t1Fkxqcx6USnKlJixzXGPfDMgyhp
+       3/8x6pgwLx3bMsd/6W4Kar55Zp00IizqApex8dz9icEXi75jw+w/wHnrkv3ObOzuokoR
+       PIEmZySAmPi8+zzNsdt0NvScfuJpADWEDL841LBo0+R9/SDoPkU7vjPQc4xIVF58T3LN
+       ypXnBm+fjkD52r3JoZozsurYr0jVtSuJMgALbRb517ZXXpTeth41xkLzCVUerrHVCG+g
+       4yEwUQiHLfxgD+SZtM2hH1N0tE8ArdqG/mgPGzHthLVcx8OH7BYoHNbm45mj8qLU3evc
+       ZBpA==
+Received: by 10.14.213.137 with SMTP id a9mr24912372eep.38.1346745885046;
+       Tue, 04 Sep 2012 01:04:45 -0700 (PDT)
+Received: from [192.168.1.69] (host86-184-74-117.range86-184.btcentralplus.com.
+       [86.184.74.117])
+       by mx.google.com with ESMTPS id k49sm43147200een.4.2012.09.04.01.04.43
+       (version=SSLv3 cipher=OTHER); Tue, 04 Sep 2012 01:04:44 -0700 (PDT)
+User-Agent: Microsoft-Entourage/12.32.0.111121
+Date: Tue, 04 Sep 2012 09:04:39 +0100
+From: Keir Fraser <keir.xen@gmail.com>
+To: Jan Beulich <JBeulich@suse.com>,
+       George Dunlap <George.Dunlap@eu.citrix.com>
+Message-ID: <CC6B74A7.3DAC1%keir.xen@gmail.com>
+Thread-Topic: [Xen-devel] Using debug-key 'o:  Dump IOMMU p2m table, locks up
+       machine
+Thread-Index: Ac2Kc+5zmAQer1s5wU6OpsJ21FMcnA==
+In-Reply-To: <5045D0190200007800098608@nat28.tlf.novell.com>
+Mime-version: 1.0
+Cc: wei.wang2@amd.com, Sander Eikelenboom <linux@eikelenboom.it>,
+       Santosh Jodh <santosh.jodh@citrix.com>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,FREEMAIL_FROM,
+       RCVD_IN_DNSWL_MED,RP_MATCHES_RCVD,T_DKIM_INVALID autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] Using debug-key 'o:  Dump IOMMU p2m table,
+ locks up machine
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On 04/09/2012 08:55, "Jan Beulich" <JBeulich@suse.com> wrote:
+
+>> Jan, Yes you could be right, if Sander is pinning CPUs. Anyway, I wasn't
+>> going to expend too much brain power on this situation. The case of spending
+>> a few minutes in one key handler is not one I think is particularly sane.
+> 
+> Which imo would call for reverting the patch. But then again, other
+> key handlers can easily take pretty long too (particularly on large
+> systems, albeit it is clear that the one here is particularly bad), and
+> declaring all of them pretty much useless probably isn't the best
+> choice (as then we could as well rip them all out).
+> 
+> Bottom line - _I_ think we should try to do something about this.
+> An apparent option would be to have low priority tasklets (for
+> just this purpose, as all others we certainly want to take priority),
+> if that can reasonably be integrated with the schedulers.
+
+Do you expect to be able to use the log-running key handlers and still need
+a running system afterwards (rather than using them as a final
+dump-everything when the system has already gone bad)? Then I suppose you
+would need something like this, with voluntary preemption in the key
+handlers. You then need to be able to recommence the keyhandlers where they
+left off, retaking locks, finding their place in lists, trees, etc, even
+when state of the system has significantly changed between preemption and
+resumption. Well, I'm sure it can be done, but can anyone be bothered.
+
+ -- Keir
+
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<CC6B764E.3DACF%keir.xen@gmail.com> b/config/examples/test/corpus/<CC6B764E.3DACF%keir.xen@gmail.com>
new file mode 100644 (file)
index 0000000..f7dc5ae
--- /dev/null
@@ -0,0 +1,139 @@
+From xen-devel-bounces@lists.xen.org Tue Sep 04 09:15:57 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Tue, 04 Sep 2012 09:15:57 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T8oIc-0001ST-3X
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 04 Sep 2012 09:15:57 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T8oEj-0004Gz-Is; Tue, 04 Sep 2012 08:11:53 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <keir.xen@gmail.com>) id 1T8oEh-0004Gk-LP
+       for xen-devel@lists.xen.org; Tue, 04 Sep 2012 08:11:51 +0000
+Received: from [85.158.143.99:16483] by server-1.bemta-4.messagelabs.com id
+       EC/77-12504-6C7B5405; Tue, 04 Sep 2012 08:11:50 +0000
+X-Env-Sender: keir.xen@gmail.com
+X-Msg-Ref: server-6.tower-216.messagelabs.com!1346746310!21351303!1
+X-Originating-IP: [209.85.215.173]
+X-SpamReason: No, hits=0.3 required=7.0 tests=ML_RADAR_SPEW_LINKS_14,
+       RCVD_BY_IP,spamassassin: 
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 9946 invoked from network); 4 Sep 2012 08:11:50 -0000
+Received: from mail-ey0-f173.google.com (HELO mail-ey0-f173.google.com)
+       (209.85.215.173)
+       by server-6.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
+       4 Sep 2012 08:11:50 -0000
+Received: by eaac13 with SMTP id c13so1979690eaa.32
+       for <xen-devel@lists.xen.org>; Tue, 04 Sep 2012 01:11:50 -0700 (PDT)
+DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
+       h=user-agent:date:subject:from:to:cc:message-id:thread-topic
+       :thread-index:in-reply-to:mime-version:content-type
+       :content-transfer-encoding;
+       bh=6HvvyS+mhfR45jJLqt5w+C0iIQxeYgOMyYfg1myQtkI=;
+       b=GSzTKUH11gnDDdjxvPQytHOep6K/H8ubiq4AuEachNX8kkV8ZF2+x7WPxfoTCcCb2L
+       zA8UblaB3dnKTprlqe1dg+lLYD3LDyNCTbeIEeHkRSCCIHT9Hat2+LzUieCXf/oen59J
+       q3LOM4Tcv7yytrxHT/DAXdapKLhrmINmzG61L1SszpQSj3bgR7ZYvxue88cLulhPJTY2
+       4TlflHj7I1OVHEpkoY3sSEc2VGWufHz/QiSlEargV63NqimgXUT9RaC0j7UO5AjijBq9
+       rlXwKdiufCHMUl/yLIfwEC6yLrKUtQm0RA4HHevbZPBBr9q7j8DpRxs748CEgS/VRm3r
+       KQBQ==
+Received: by 10.14.184.133 with SMTP id s5mr25108562eem.31.1346746310075;
+       Tue, 04 Sep 2012 01:11:50 -0700 (PDT)
+Received: from [192.168.1.69] (host86-184-74-117.range86-184.btcentralplus.com.
+       [86.184.74.117])
+       by mx.google.com with ESMTPS id y1sm43216469eel.0.2012.09.04.01.11.47
+       (version=SSLv3 cipher=OTHER); Tue, 04 Sep 2012 01:11:49 -0700 (PDT)
+User-Agent: Microsoft-Entourage/12.32.0.111121
+Date: Tue, 04 Sep 2012 09:11:42 +0100
+From: Keir Fraser <keir.xen@gmail.com>
+To: Jan Beulich <JBeulich@suse.com>,
+       George Dunlap <George.Dunlap@eu.citrix.com>
+Message-ID: <CC6B764E.3DACF%keir.xen@gmail.com>
+Thread-Topic: [Xen-devel] Using debug-key 'o:  Dump IOMMU p2m table, locks up
+       machine
+Thread-Index: Ac2Kc+5zmAQer1s5wU6OpsJ21FMcnAAAPwgG
+In-Reply-To: <CC6B74A7.3DAC1%keir.xen@gmail.com>
+Mime-version: 1.0
+Cc: wei.wang2@amd.com, Sander Eikelenboom <linux@eikelenboom.it>,
+       Santosh Jodh <santosh.jodh@citrix.com>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,FREEMAIL_FROM,
+       RCVD_IN_DNSWL_MED,RP_MATCHES_RCVD,T_DKIM_INVALID,UNPARSEABLE_RELAY
+       autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] Using debug-key 'o:  Dump IOMMU p2m table,
+ locks up machine
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On 04/09/2012 09:04, "Keir Fraser" <keir.xen@gmail.com> wrote:
+
+> On 04/09/2012 08:55, "Jan Beulich" <JBeulich@suse.com> wrote:
+> 
+>>> Jan, Yes you could be right, if Sander is pinning CPUs. Anyway, I wasn't
+>>> going to expend too much brain power on this situation. The case of spending
+>>> a few minutes in one key handler is not one I think is particularly sane.
+>> 
+>> Which imo would call for reverting the patch. But then again, other
+>> key handlers can easily take pretty long too (particularly on large
+>> systems, albeit it is clear that the one here is particularly bad), and
+>> declaring all of them pretty much useless probably isn't the best
+>> choice (as then we could as well rip them all out).
+>> 
+>> Bottom line - _I_ think we should try to do something about this.
+>> An apparent option would be to have low priority tasklets (for
+>> just this purpose, as all others we certainly want to take priority),
+>> if that can reasonably be integrated with the schedulers.
+> 
+> Do you expect to be able to use the log-running key handlers and still need
+> a running system afterwards (rather than using them as a final
+> dump-everything when the system has already gone bad)? Then I suppose you
+> would need something like this, with voluntary preemption in the key
+> handlers. You then need to be able to recommence the keyhandlers where they
+> left off, retaking locks, finding their place in lists, trees, etc, even
+> when state of the system has significantly changed between preemption and
+> resumption. Well, I'm sure it can be done, but can anyone be bothered.
+
+My pragmatic take would be that: (a) Really long-running handlers that want
+to dump every page mapping of every domain are pretty bloody stupid, and yes
+we should consider if they are worthwhile at all; (b) moderately
+long-running but useful handlers which nonetheless take a long time to dump
+to Xen's console, I would consider a sysctl to allow dom0 to request dump
+into a supplied memory buffer.
+
+>  -- Keir
+> 
+> 
+
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<CC6B803A.4A8E0%keir@xen.org> b/config/examples/test/corpus/<CC6B803A.4A8E0%keir@xen.org>
new file mode 100644 (file)
index 0000000..f3431e8
--- /dev/null
@@ -0,0 +1,120 @@
+From xen-devel-bounces@lists.xen.org Tue Sep 04 09:58:29 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Tue, 04 Sep 2012 09:58:29 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T8oxj-0001bC-2b
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 04 Sep 2012 09:58:28 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T8otk-0006fH-Gz; Tue, 04 Sep 2012 08:54:16 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <keir.xen@gmail.com>) id 1T8oti-0006f6-Py
+       for xen-devel@lists.xen.org; Tue, 04 Sep 2012 08:54:15 +0000
+Received: from [85.158.139.83:31117] by server-9.bemta-5.messagelabs.com id
+       59/0F-20529-6B1C5405; Tue, 04 Sep 2012 08:54:14 +0000
+X-Env-Sender: keir.xen@gmail.com
+X-Msg-Ref: server-3.tower-182.messagelabs.com!1346748853!28414139!1
+X-Originating-IP: [209.85.215.173]
+X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 28419 invoked from network); 4 Sep 2012 08:54:13 -0000
+Received: from mail-ey0-f173.google.com (HELO mail-ey0-f173.google.com)
+       (209.85.215.173)
+       by server-3.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
+       4 Sep 2012 08:54:13 -0000
+Received: by eaac13 with SMTP id c13so1996606eaa.32
+       for <xen-devel@lists.xen.org>; Tue, 04 Sep 2012 01:54:13 -0700 (PDT)
+DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
+       h=sender:user-agent:date:subject:from:to:cc:message-id:thread-topic
+       :thread-index:in-reply-to:mime-version:content-type
+       :content-transfer-encoding;
+       bh=ZmdxEKaNiqfz1zaTf2RgHJ66iQhYTz3+1B8bGgL+h+s=;
+       b=wljSap92C+LlaThL2Fy4f/nUQ5JYAsy5kQPf5+KXF2p+WbrlDe7YkKlove2k+Sz+hG
+       qSR54+BkpMx7ROL3gLLUHVLNbMEdK9cMgmyCP0IBtus9E0szZ8rYmFwUC9IDkoqwsQw8
+       BxIPK+L5NsCE1OGmiibqq95Fl8M7HEs+KGT+CRsZS91bhw+//HBEb5hGQTU5SbXEa/xi
+       csHC2wG3Bj/A5GP4IxyP4s1TM+6ftIVWAe4HVD94n4YkqcNvdzUZefw/onsW9I7uL6Xn
+       vNktS7McSPipgmyRtC40ikoOUj7GT+BDCwveZ4rsiYgK7EWcpXj8Vnve76jFs4K6kbwL
+       V//w==
+Received: by 10.14.223.9 with SMTP id u9mr25160745eep.10.1346748853365;
+       Tue, 04 Sep 2012 01:54:13 -0700 (PDT)
+Received: from [192.168.1.3] (host86-184-74-117.range86-184.btcentralplus.com.
+       [86.184.74.117])
+       by mx.google.com with ESMTPS id h42sm43510644eem.5.2012.09.04.01.54.10
+       (version=SSLv3 cipher=OTHER); Tue, 04 Sep 2012 01:54:12 -0700 (PDT)
+User-Agent: Microsoft-Entourage/12.33.0.120411
+Date: Tue, 04 Sep 2012 09:54:02 +0100
+From: Keir Fraser <keir@xen.org>
+To: Jan Beulich <JBeulich@suse.com>,
+       George Dunlap <George.Dunlap@eu.citrix.com>
+Message-ID: <CC6B803A.4A8E0%keir@xen.org>
+Thread-Topic: [Xen-devel] Using debug-key 'o:  Dump IOMMU p2m table, locks up
+       machine
+Thread-Index: Ac2KetSIIXAo9+QaXE+y6WvmNgbl1A==
+In-Reply-To: <5045DA360200007800098688@nat28.tlf.novell.com>
+Mime-version: 1.0
+Cc: wei.wang2@amd.com, Sander Eikelenboom <linux@eikelenboom.it>,
+       Santosh Jodh <santosh.jodh@citrix.com>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,T_DKIM_INVALID,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] Using debug-key 'o:  Dump IOMMU p2m table,
+ locks up machine
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On 04/09/2012 09:38, "Jan Beulich" <JBeulich@suse.com> wrote:
+
+>> My pragmatic take would be that: (a) Really long-running handlers that want
+>> to dump every page mapping of every domain are pretty bloody stupid, and yes
+>> we should consider if they are worthwhile at all; (b) moderately
+>> long-running but useful handlers which nonetheless take a long time to dump
+>> to Xen's console, I would consider a sysctl to allow dom0 to request dump
+>> into a supplied memory buffer.
+> 
+> At a first glance that sounds like a viable option, assuming that
+> the bulk of the time otherwise is being spent actually getting the
+> data out through the serial line. But if the long-running-ness is
+> in the nature of the keyhandler itself, then this wouldn't help
+> much though. And I'd be afraid that ought to be the common
+> case when not running with sync_console, since actual serial
+> output happens asynchronously and hence shouldn't affect the
+> latency of the keyhandler's completion too much.
+
+Well then, have we actually seen problems with async serial output, a
+decent-sized serial output buffer, and the 'd'/'0' handlers? Because if not,
+we don't have a problem to be solved. :)
+
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<CC7B4CE4.3EE74%keir.xen@gmail.com> b/config/examples/test/corpus/<CC7B4CE4.3EE74%keir.xen@gmail.com>
new file mode 100644 (file)
index 0000000..8338cfd
--- /dev/null
@@ -0,0 +1,127 @@
+From xen-devel-bounces@lists.xen.org Sun Sep 16 09:36:56 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Sun, 16 Sep 2012 09:36:56 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TDALU-0000Bs-4m
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Sun, 16 Sep 2012 09:36:55 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TDAGJ-0007qB-PB; Sun, 16 Sep 2012 08:31:31 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <keir.xen@gmail.com>) id 1TDAGI-0007q6-DG
+       for xen-devel@lists.xen.org; Sun, 16 Sep 2012 08:31:30 +0000
+Received: from [85.158.143.35:21260] by server-3.bemta-4.messagelabs.com id
+       FF/44-08232-16E85505; Sun, 16 Sep 2012 08:31:29 +0000
+X-Env-Sender: keir.xen@gmail.com
+X-Msg-Ref: server-15.tower-21.messagelabs.com!1347784285!14843324!1
+X-Originating-IP: [74.125.82.41]
+X-SpamReason: No, hits=0.3 required=7.0 tests=ML_RADAR_SPEW_LINKS_14,
+       RCVD_BY_IP,spamassassin: 
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 18031 invoked from network); 16 Sep 2012 08:31:25 -0000
+Received: from mail-wg0-f41.google.com (HELO mail-wg0-f41.google.com)
+       (74.125.82.41)
+       by server-15.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
+       16 Sep 2012 08:31:25 -0000
+Received: by wgbds1 with SMTP id ds1so2158575wgb.2
+       for <xen-devel@lists.xen.org>; Sun, 16 Sep 2012 01:31:25 -0700 (PDT)
+DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
+       h=user-agent:date:subject:from:to:cc:message-id:thread-topic
+       :thread-index:in-reply-to:mime-version:content-type
+       :content-transfer-encoding;
+       bh=IDf4hD1mhdG/EOTUdT+Y7I1E31hMeo+17ETZIxM1zA8=;
+       b=N1WQpPo0hU76BlyE2oU/gf7f8xseNTLNOcZTXudR8kVQoW4lIUGOFosQ/zN60iUds0
+       fnYVpJ9+nGxPG7EDZLt62RWjozycvp2ik6lb6j85eyfOazMm7iSG7mwqxWCXhM3h2Op4
+       BhaPX0v5BMxc++GaiMiQ5TF+An9IzEwxdEMFx7P+T11+P1R8K7N7STN/5h5jsyoHCKYq
+       tU9pEpb9W2wQ0JbIxMq3I7Pjn7IkVV362CAFtWxMBBrKtZWyM/4L+1piniwfD0sp/esW
+       lAnzaKv9U5wu5dzWxdY9ErqPa+NMmeyryrNdZAQhMzETqKTBo08/NbifQUgcA3w/0NAs
+       u1pQ==
+Received: by 10.180.98.200 with SMTP id ek8mr8836495wib.0.1347784285087;
+       Sun, 16 Sep 2012 01:31:25 -0700 (PDT)
+Received: from [192.168.1.69] (host86-183-251-65.range86-183.btcentralplus.com.
+       [86.183.251.65])
+       by mx.google.com with ESMTPS id hv8sm14704673wib.0.2012.09.16.01.31.23
+       (version=SSLv3 cipher=OTHER); Sun, 16 Sep 2012 01:31:24 -0700 (PDT)
+User-Agent: Microsoft-Entourage/12.32.0.111121
+Date: Sun, 16 Sep 2012 09:31:16 +0100
+From: Keir Fraser <keir.xen@gmail.com>
+To: Joseph Glanville <joseph.glanville@orionvm.com.au>,
+       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+Message-ID: <CC7B4CE4.3EE74%keir.xen@gmail.com>
+Thread-Topic: [Xen-devel] bug when using 4K sectors?
+Thread-Index: Ac2T5aNKxk0Xqe8BtEqgMpw2Z20LZA==
+In-Reply-To: <CAOzFzEiZopdFQuZkUcSWWre9b=NeZpJM9n2VtEoZcRo=ejYQPA@mail.gmail.com>
+Mime-version: 1.0
+Cc: James Harper <james.harper@bendigoit.com.au>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.7 required=5.0 tests=BAYES_00,FREEMAIL_FROM,
+       RCVD_IN_DNSWL_MED,RP_MATCHES_RCVD,T_DKIM_INVALID,UNPARSEABLE_RELAY
+       autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] bug when using 4K sectors?
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On 16/09/2012 08:00, "Joseph Glanville" <joseph.glanville@orionvm.com.au>
+wrote:
+
+> After reading through blkback it appears that it can only support 512
+> byte sector sizes and removing this limitation would take quite abit
+> of work.
+> It uses hard coded bitshifts pervasively to convert between number of
+> requests/pages and size of sectors etc. (that is all the >> 9
+> everywhere)
+> 
+> I am going to see what I can about working on getting it to support 4k
+> sectors too and eventually uncoupled logical/physical sizes but that
+> would take even more work as far as I can tell.
+> 
+> Being able to use 4k sectors seems like it would provide pretty
+> massive gains in performance just by being more efficient let alone
+> increasing byte aligned writes to the underlying block storage system.
+
+The PV blk transport may be based on 512-byte sectors, but the real sector
+size is communicated between blkfront and blkback via xenbus (field
+'sector-size') and blkfront is expected to only make requests that are
+multiple of, and aligned according to, that real 'sector-size'.
+
+I would kind of expect it to work, as CD-ROMs have a larger sector size (2kB
+IIRC) and we support those...
+
+Bashing your head against the PV blk transport code may be premature. ;)
+
+ -- Keir
+
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<CC7B740A.3EE89%keir.xen@gmail.com> b/config/examples/test/corpus/<CC7B740A.3EE89%keir.xen@gmail.com>
new file mode 100644 (file)
index 0000000..184d909
--- /dev/null
@@ -0,0 +1,129 @@
+From xen-devel-bounces@lists.xen.org Sun Sep 16 12:23:54 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Sun, 16 Sep 2012 12:23:54 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TDCx5-0000eP-EW
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Sun, 16 Sep 2012 12:23:54 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TDCru-0000LD-LY; Sun, 16 Sep 2012 11:18:30 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <keir.xen@gmail.com>) id 1TDCrs-0000L8-Ls
+       for xen-devel@lists.xen.org; Sun, 16 Sep 2012 11:18:28 +0000
+Received: from [85.158.139.211:34213] by server-5.bemta-5.messagelabs.com id
+       2D/C1-30514-385B5505; Sun, 16 Sep 2012 11:18:27 +0000
+X-Env-Sender: keir.xen@gmail.com
+X-Msg-Ref: server-9.tower-206.messagelabs.com!1347794307!17232549!1
+X-Originating-IP: [74.125.82.173]
+X-SpamReason: No, hits=0.3 required=7.0 tests=ML_RADAR_SPEW_LINKS_14,
+       RCVD_BY_IP,spamassassin: 
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 25870 invoked from network); 16 Sep 2012 11:18:27 -0000
+Received: from mail-we0-f173.google.com (HELO mail-we0-f173.google.com)
+       (74.125.82.173)
+       by server-9.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
+       16 Sep 2012 11:18:27 -0000
+Received: by weyz53 with SMTP id z53so3935678wey.32
+       for <xen-devel@lists.xen.org>; Sun, 16 Sep 2012 04:18:27 -0700 (PDT)
+DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
+       h=user-agent:date:subject:from:to:cc:message-id:thread-topic
+       :thread-index:in-reply-to:mime-version:content-type
+       :content-transfer-encoding;
+       bh=pROnYNd7qiDjtLddakQicLeKE5/G+3m6hGvwdQDW0Oc=;
+       b=HOzufG6feosp6vD3mXy28I6+QPfNXjCJowoO/wKQr2QJj4k3MXqgTt8qtF6fMepQ6o
+       XYU1JLXTQ+6rmMHN0m9RSidXAawKhupIpM9iZhaWU7FdAmezn9VqWr23TIGZU/ZEFkAf
+       Ucm2bgAhNzhTOb4yV354R7nL+DPm5gbmQxIu+XAH/WFyl/1hy/M8RR2dVK2qzRMcwVNN
+       tTVGBb9gw3kZ+HMLhbLQvmBaHjLPPY4UmBw9NBh0BZFnM6wlRbT0XhGkcqLfjhIlORMN
+       uckdJJhxKFUCjOqxlIcBPOFayslx9csgo962uMGMFyw0zdJZXnTtYyud9XVx7jXOc2cv
+       gHHQ==
+Received: by 10.216.194.223 with SMTP id m73mr4606315wen.144.1347794306972;
+       Sun, 16 Sep 2012 04:18:26 -0700 (PDT)
+Received: from [192.168.1.69] (host86-183-251-65.range86-183.btcentralplus.com.
+       [86.183.251.65])
+       by mx.google.com with ESMTPS id t8sm11156407wiy.3.2012.09.16.04.18.24
+       (version=SSLv3 cipher=OTHER); Sun, 16 Sep 2012 04:18:26 -0700 (PDT)
+User-Agent: Microsoft-Entourage/12.32.0.111121
+Date: Sun, 16 Sep 2012 12:18:18 +0100
+From: Keir Fraser <keir.xen@gmail.com>
+To: James Harper <james.harper@bendigoit.com.au>,
+       Joseph Glanville <joseph.glanville@orionvm.com.au>,
+       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+Message-ID: <CC7B740A.3EE89%keir.xen@gmail.com>
+Thread-Topic: [Xen-devel] bug when using 4K sectors?
+Thread-Index: Ac15XJ9mOEWrLpZlQnymzekcRdWXAQR9LPqAABwcDwAAAjyqAAHumRqAAAMtwQAAGTSEYAABlUzV
+In-Reply-To: <6035A0D088A63A46850C3988ED045A4B29B96FA1@BITCOM1.int.sbss.com.au>
+Mime-version: 1.0
+Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.7 required=5.0 tests=BAYES_00,FREEMAIL_FROM,
+       RCVD_IN_DNSWL_MED,RP_MATCHES_RCVD,T_DKIM_INVALID,UNPARSEABLE_RELAY
+       autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] bug when using 4K sectors?
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On 16/09/2012 11:37, "James Harper" <james.harper@bendigoit.com.au> wrote:
+
+>>> Being able to use 4k sectors seems like it would provide pretty
+>>> massive gains in performance just by being more efficient let alone
+>>> increasing byte aligned writes to the underlying block storage system.
+>> 
+>> The PV blk transport may be based on 512-byte sectors, but the real sector
+>> size is communicated between blkfront and blkback via xenbus (field
+>> 'sector-size') and blkfront is expected to only make requests that are
+>> multiple of, and aligned according to, that real 'sector-size'.
+>> 
+>> I would kind of expect it to work, as CD-ROMs have a larger sector size (2kB
+>> IIRC) and we support those...
+>> 
+>> Bashing your head against the PV blk transport code may be premature. ;)
+>> 
+> 
+> So a sector-size of 4096 would basically be a 512e device, allowing the
+> underlying OS to communicate in 512 byte blocks but knowing that things will
+> work best in 4096 byte sized transfers aligned to multiples of 4096 bytes,
+> right?
+
+My recollection is that blkfront is required to submit only appropriately
+-sized and -aligned requests; i.e. it's not merely advisory. I remember this
+got added for CD-ROM support and if they had worked without this, I'm sure
+we wouldn't have bothered!
+
+ -- Keir
+
+> James
+> 
+
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<D42A53061A72429CA5138077DF2BDC0C@LarryE6400> b/config/examples/test/corpus/<D42A53061A72429CA5138077DF2BDC0C@LarryE6400>
new file mode 100644 (file)
index 0000000..83dadaa
--- /dev/null
@@ -0,0 +1,123 @@
+From xen-devel-bounces@lists.xen.org Sat Jul 21 19:07:31 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Sat, 21 Jul 2012 19:07:31 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1Sse5Q-0007mc-SZ
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Sat, 21 Jul 2012 19:07:31 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1Sse0T-0007Yi-59; Sat, 21 Jul 2012 18:02:21 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <lmw@satx.rr.com>) id 1Sse0Q-0007YZ-WF
+       for xen-devel@lists.xen.org; Sat, 21 Jul 2012 18:02:19 +0000
+Received: from [85.158.138.51:3288] by server-4.bemta-3.messagelabs.com id
+       43/C9-29069-AAEEA005; Sat, 21 Jul 2012 18:02:18 +0000
+X-Env-Sender: lmw@satx.rr.com
+X-Msg-Ref: server-8.tower-174.messagelabs.com!1342893737!28062593!1
+X-Originating-IP: [75.180.132.120]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       QmFkIElQOiA3NS4xODAuMTMyLjEyMCA9PiA4OTE1OA==\n,sa_preprocessor: 
+       QmFkIElQOiA3NS4xODAuMTMyLjEyMCA9PiA4OTE1OA==\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.2; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 13653 invoked from network); 21 Jul 2012 18:02:17 -0000
+Received: from cdptpa-omtalb.mail.rr.com (HELO cdptpa-omtalb.mail.rr.com)
+       (75.180.132.120) by server-8.tower-174.messagelabs.com with SMTP;
+       21 Jul 2012 18:02:17 -0000
+X-Authority-Analysis: v=2.0 cv=OtDNOlDt c=1 sm=0 a=r1aGfrPin9q3IVjnGKu9DA==:17
+       a=mkDZTsCubmwA:10 a=n0q2T-vHkU8A:10 a=05ChyHeVI94A:10
+       a=kj9zAlcOel0A:10 a=ayC55rCoAAAA:8 a=P3U7S8cuHsd9lTPnzQwA:9
+       a=CjuIK1q_8ugA:10 a=r1aGfrPin9q3IVjnGKu9DA==:117
+X-Cloudmark-Score: 0
+X-Originating-IP: 66.69.0.49
+Received: from [66.69.0.49] ([66.69.0.49:51518] helo=LarryE6400)
+       by cdptpa-oedge01.mail.rr.com (envelope-from <lmw@satx.rr.com>)
+       (ecelerity 2.2.3.46 r()) with ESMTP
+       id CE/56-29356-8AEEA005; Sat, 21 Jul 2012 18:02:16 +0000
+From: "Larry White" <lmw@satx.rr.com>
+To: "'Konrad Rzeszutek Wilk'" <konrad.wilk@oracle.com>,
+       <xen-devel@lists.xen.org>
+References: <A8575D3216834DFCAA86F5B2B3546613@LarryE6400>
+       <6035A0D088A63A46850C3988ED045A4B299B8A95@BITCOM1.int.sbss.com.au>
+       <1E8F546AD8E64BF1B2D68D24F3BD4050@LarryE6400>
+       <6035A0D088A63A46850C3988ED045A4B299B8F9D@BITCOM1.int.sbss.com.au>
+In-Reply-To: 
+Date: Sat, 21 Jul 2012 13:02:11 -0500
+Message-ID: <D42A53061A72429CA5138077DF2BDC0C@LarryE6400>
+MIME-Version: 1.0
+X-Mailer: Microsoft Office Outlook 11
+X-MimeOLE: Produced By Microsoft MimeOLE V6.1.7601.17609
+Thread-Index: Ac1m2/yuJJyO+ROQQxKMLV1mGoHskAABhbjAAABDEwAAAe6rkAAfoGxAAABgKpA=
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] DomU to Dom0 Communication in Xen HVM?
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+
+Hi Konrad,
+
+>On Tue, Jul 17, 2012 at 11:22:28PM -0500, LarryWhite wrote:
+>I am new to Xen and want to provide simple communication between my DomU
+>and
+>Dom0 environments.  I just need to be able to pass a few bytes of
+>information back and forth between DomU and Dom0 while using some form of
+>event management to know when an update occurs so I can act on it.  At
+>first, it appeared that using XenBus and XenStore might be the right
+>solution for this.  However, after looking over the documentation, it seems
+>that XenBus and XenStore should only be used in a PVM Xen configuration,
+>not
+>a HVM model like mine.  Is this true?  
+
+>>It can be done in HVM.
+
+>What would be the best way to accomplish this?  Is there any sample code
+>which demonstrates this for a HVM Xen environment?
+
+>>libvchan is your best bet.
+
+Have been looking at libvchan as you suggested.  An additional bit of
+information that I left out on my original post was that I would like to do
+this in a "one to many" environment.  In other words, I want to support data
+transfer from dom0 to a number of different domU's.  Would an approach such
+as libvchan allow for this or would I need a separate process in dom0 for
+each of the different domU channels?  I was really hoping to have a single
+process running in dom0 to manage this. 
+
+Thanks,
+Larry
+
+
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<E1T9C4K-0003Su-2p@mariner.uk.xensource.com> b/config/examples/test/corpus/<E1T9C4K-0003Su-2p@mariner.uk.xensource.com>
new file mode 100644 (file)
index 0000000..31b627c
--- /dev/null
@@ -0,0 +1,196 @@
+From xen-devel-bounces@lists.xen.org Wed Sep 05 10:45:15 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 05 Sep 2012 10:45:15 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T9CAa-00023w-PL
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 05 Sep 2012 10:45:15 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T9C6B-0007R2-QN; Wed, 05 Sep 2012 09:40:39 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Ian.Jackson@eu.citrix.com>) id 1T9C6A-0007Qt-Re
+       for xen-devel@lists.xen.org; Wed, 05 Sep 2012 09:40:39 +0000
+Received: from [85.158.139.83:61115] by server-11.bemta-5.messagelabs.com id
+       1F/C8-24658-51E17405; Wed, 05 Sep 2012 09:40:37 +0000
+X-Env-Sender: Ian.Jackson@eu.citrix.com
+X-Msg-Ref: server-13.tower-182.messagelabs.com!1346837936!28122186!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTE5ODY=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 19268 invoked from network); 5 Sep 2012 09:38:57 -0000
+Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-13.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
+       5 Sep 2012 09:38:57 -0000
+X-IronPort-AV: E=Sophos;i="4.80,372,1344211200"; d="scan'208";a="14353051"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       05 Sep 2012 09:38:44 +0000
+Received: from norwich.cam.xci-test.com (10.80.248.129) by
+       smtprelay.citrix.com (10.30.203.162) with Microsoft SMTP Server id
+       8.3.279.1; Wed, 5 Sep 2012 10:38:44 +0100
+Received: from mariner.cam.xci-test.com        ([10.80.2.22]
+       helo=mariner.uk.xensource.com ident=Debian-exim)        by
+       norwich.cam.xci-test.com
+       with esmtp (Exim 4.72)  (envelope-from <Ian.Jackson@eu.citrix.com>)     id
+       1T9C4K-0001aP-6p; Wed, 05 Sep 2012 09:38:44 +0000
+Received: from iwj by mariner.uk.xensource.com with local (Exim 4.72)
+       (envelope-from <Ian.Jackson@eu.citrix.com>)     id 1T9C4K-0003Su-2p;
+       Wed, 05 Sep 2012 10:38:44 +0100
+Date: Wed, 5 Sep 2012 10:38:44 +0100
+Message-ID: <E1T9C4K-0003Su-2p@mariner.uk.xensource.com>
+Content-Type: multipart/mixed; boundary="=separator"; charset="utf-8"
+MIME-Version: 1.0
+X-Mailer: MIME-tools 5.428 (Entity 5.428)
+To: xen-announce@lists.xen.org, xen-devel@lists.xen.org,
+       xen-users@lists.xen.org, oss-security@lists.openwall.com
+From: Xen.org security team <security@xen.org>
+Cc: "Xen.org security team" <security@xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: [Xen-devel] Xen Security Advisory 12 (CVE-2012-3494) - hypercall
+ set_debugreg vulnerability
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+--=separator
+Content-Type: text/plain; charset="utf-8"
+Content-Disposition: inline
+Content-Transfer-Encoding: 7bit
+
+-----BEGIN PGP SIGNED MESSAGE-----
+Hash: SHA1
+
+            Xen Security Advisory CVE-2012-3494 / XSA-12
+                             version 3
+
+             hypercall set_debugreg vulnerability
+
+UPDATES IN VERSION 3
+====================
+
+Public release.
+
+ISSUE DESCRIPTION
+=================
+
+set_debugreg allows writes to reserved bits of the DR7 debug control
+register on x86-64.
+
+IMPACT
+======
+
+A malicious guest can cause the host to crash, leading to a DoS.
+
+If the vulnerable hypervisor is run on future hardware, the impact of
+the vulnerability might be widened depending on the future assignment
+of the currently-reserved debug register bits.
+
+VULNERABLE SYSTEMS
+==================
+
+All systems running 64-bit paravirtualised guests.
+
+The vulnerability dates back to at least Xen 4.0.  4.0, 4.1, the 4.2
+RCs, and xen-unstable.hg are all vulnerable.
+
+MITIGATION
+==========
+
+This issue can be mitigated by ensuring (inside the guest) that the
+kernel is trustworthy, or by running only 32-bit or HVM guests.
+
+RESOLUTION
+==========
+
+Applying the appropriate attached patch will resolve the issue.
+
+PATCH INFORMATION
+=================
+
+The attached patch resolves this issue:
+
+ Xen unstable, 4.1 and 4.0             xsa12-all.patch
+
+$ sha256sum xsa12-all.patch
+2415ee133e28b1c848c5ae3ce766cc2a67009bad8d026879030a6511b85dbc13  xsa12-all.patch
+-----BEGIN PGP SIGNATURE-----
+Version: GnuPG v1.4.10 (GNU/Linux)
+
+iQEcBAEBAgAGBQJQRx0+AAoJEIP+FMlX6CvZnMAH/0fcm9nfiChokydCyqXgdKtJ
+U2NqeqKzEP6emwLE+cvc+2EBP40fiBXsNATVdXc6Vx15eyzSMfJD3ndYF9OaKMVH
+MVP6KU/tyK1G/9WgQK9PHBj/Kzp8hwrY0Qw45od7z+R7XMGieLH9l1O1xwkNCYDw
+R8Xy2GI9IqsXLNpwy3BFYSyGYIX9o8/aBx4ZxHCV8H0OYUWv5hDGZZVXPDqGm11c
+N+qmUaPV2QlW8Aoww1SiwW5E+/CpyJT5+awEMgZ4IOHPbCBXJfyXbw4aMM2q5Soe
+mStqvPKL4H10SahaygdjxO+e4NqCHao0rYUXXpUr+aikIXvEearukp3FezR5IUE=
+=/LmZ
+-----END PGP SIGNATURE-----
+
+--=separator
+Content-Type: application/octet-stream; name="xsa12-all.patch"
+Content-Disposition: attachment; filename="xsa12-all.patch"
+Content-Transfer-Encoding: base64
+
+eGVuOiBwcmV2ZW50IGEgNjQgYml0IGd1ZXN0IHNldHRpbmcgcmVzZXJ2ZWQg
+Yml0cyBpbiBEUjcKClRoZSB1cHBlciAzMiBiaXRzIG9mIHRoaXMgcmVnaXN0
+ZXIgYXJlIHJlc2VydmVkIGFuZCBzaG91bGQgYmUgd3JpdHRlbiBhcwp6ZXJv
+LgoKVGhpcyBpcyBYU0EtMTIgLyBDVkUtMjAxMi0zNDk0CgpTaWduZWQtb2Zm
+LWJ5OiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+ClJldmlld2Vk
+LWJ5OiBJYW4gQ2FtcGJlbGwgPGlhbi5jYW1wYmVsbEBjaXRyaXguY29tPgoK
+ZGlmZiAtciAzNTNiYzA4MDFiMTEgeGVuL2luY2x1ZGUvYXNtLXg4Ni9kZWJ1
+Z3JlZy5oCi0tLSBhL3hlbi9pbmNsdWRlL2FzbS14ODYvZGVidWdyZWcuaAlN
+b24gQXVnIDA2IDEyOjI4OjAzIDIwMTIgKzAxMDAKKysrIGIveGVuL2luY2x1
+ZGUvYXNtLXg4Ni9kZWJ1Z3JlZy5oCVdlZCBBdWcgMTUgMTI6MDA6MjEgMjAx
+MiArMDEwMApAQCAtNTgsNyArNTgsNyBAQAogICAgV2UgY2FuIHNsb3cgdGhl
+IGluc3RydWN0aW9uIHBpcGVsaW5lIGZvciBpbnN0cnVjdGlvbnMgY29taW5n
+IHZpYSB0aGUKICAgIGdkdCBvciB0aGUgbGR0IGlmIHdlIHdhbnQgdG8uICBJ
+IGFtIG5vdCBzdXJlIHdoeSB0aGlzIGlzIGFuIGFkdmFudGFnZSAqLwogCi0j
+ZGVmaW5lIERSX0NPTlRST0xfUkVTRVJWRURfWkVSTyAoMHgwMDAwZDgwMHVs
+KSAvKiBSZXNlcnZlZCwgcmVhZCBhcyB6ZXJvICovCisjZGVmaW5lIERSX0NP
+TlRST0xfUkVTRVJWRURfWkVSTyAofjB4ZmZmZjI3ZmZ1bCkgLyogUmVzZXJ2
+ZWQsIHJlYWQgYXMgemVybyAqLwogI2RlZmluZSBEUl9DT05UUk9MX1JFU0VS
+VkVEX09ORSAgKDB4MDAwMDA0MDB1bCkgLyogUmVzZXJ2ZWQsIHJlYWQgYXMg
+b25lICovCiAjZGVmaW5lIERSX0xPQ0FMX0VYQUNUX0VOQUJMRSAgICAoMHgw
+MDAwMDEwMHVsKSAvKiBMb2NhbCBleGFjdCBlbmFibGUgKi8KICNkZWZpbmUg
+RFJfR0xPQkFMX0VYQUNUX0VOQUJMRSAgICgweDAwMDAwMjAwdWwpIC8qIEds
+b2JhbCBleGFjdCBlbmFibGUgKi8K
+
+--=separator
+Content-Type: text/plain; charset="us-ascii"
+MIME-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Content-Disposition: inline
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
+--=separator--
+
+
diff --git a/config/examples/test/corpus/<alpine.DEB.2.00.1205281439080.26786@kaball-desktop> b/config/examples/test/corpus/<alpine.DEB.2.00.1205281439080.26786@kaball-desktop>
new file mode 100644 (file)
index 0000000..75f30c4
--- /dev/null
@@ -0,0 +1,207 @@
+From xen-devel-bounces@lists.xen.org Tue May 29 11:42:51 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Tue, 29 May 2012 11:42:51 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SZJt0-00033T-UO
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 29 May 2012 11:42:51 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SZJp5-0005Tk-Ow; Tue, 29 May 2012 10:38:43 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1SZJp3-0005Tf-Jv
+       for xen-devel@lists.xensource.com; Tue, 29 May 2012 10:38:41 +0000
+Received: from [85.158.139.83:15985] by server-11.bemta-5.messagelabs.com id
+       7A/E7-12711-037A4CF4; Tue, 29 May 2012 10:38:40 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-7.tower-182.messagelabs.com!1338287919!26944363!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiA5OTk2Nw==\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 24347 invoked from network); 29 May 2012 10:38:40 -0000
+Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-7.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
+       29 May 2012 10:38:40 -0000
+X-IronPort-AV: E=Sophos;i="4.75,677,1330905600"; d="scan'208";a="12708694"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       29 May 2012 10:38:35 +0000
+Received: from kaball.uk.xensource.com (10.80.2.59) by
+       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
+       8.3.213.0; Tue, 29 May 2012 11:38:35 +0100
+Date: Tue, 29 May 2012 11:38:30 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-X-Sender: sstabellini@kaball-desktop
+To: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>
+Message-ID: <alpine.DEB.2.00.1205281439080.26786@kaball-desktop>
+User-Agent: Alpine 2.00 (DEB 1167 2008-08-23)
+MIME-Version: 1.0
+Cc: Ian Jackson <Ian.Jackson@eu.citrix.com>,
+       Ian Campbell <Ian.Campbell@citrix.com>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: [Xen-devel] [PATCH v8 0/11] qdisk local attach
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+Hi all,
+this patch implements local_attach support for QDISK: that means that
+you can use qcow2 as disk format for your PV guests disks and use
+pygrub to retrieve the kernel and initrd in dom0.
+
+The idea is that we start a QEMU instance at boot time to listen to
+local_attach requests. When libxl_device_disk_local_attach is called on
+a QDISK images, libxl sets up a backend/frontend pair in dom0 for the disk
+so that blkfront in dom0 will create a new xvd device for it.
+Then pygrub can be pointed at this device to retrieve kernel and
+initrd.
+
+
+Changes in v8:
+- keep libxl__device_disk_local_attach/detach in libxl.c;
+- free pdev_path and script in local_detach;
+- use libxl__strdup instead of strdup.
+
+
+Changes in v7:
+- rename tmpdisk to localdisk;
+- add a comment in libxl__bootloader_state about localdisk;
+- keep libxl__device_from_disk in libxl.c;
+- implement libxl__device_disk_add in libxl.c;
+- remove the upper bound in libxl__devid_to_localdev and document why.
+
+
+Changes in v6:
+- rebase on "nstore: rename public xenstore headers";
+- new patch: "libxl_string_to_backend: add qdisk";
+- new patch: "main_blockdetach: destroy the disk on successful removal";
+- split "libxl: introduce libxl__device_disk_add" in two patches;
+- return error in case pdev_path is NULL;
+- libxl__device_disk_local_attach update the new disk, the caller
+allocates it;
+- remove \n from logs;
+- document blkdev_start;
+- use libxl__strdup to allocate blkdev_start; 
+- more comments in libxl__devid_to_localdev;
+- inline GCSPRINTF;
+- introduce ret for xs_* error codes.
+
+
+Changes in v5:
+- remove _hidden from the libxl_device_disk_local_attach/detach
+  implementation;
+- libxl__device_disk_local_attach: rename disk to in_disk;
+- libxl__device_disk_local_attach: rename tmpdisk to disk;
+- libxl__device_disk_local_attach: copy disk to new_disk only on success;
+- libxl__device_disk_local_attach: remove check on libxl__zalloc success.
+- rename libxl__device_generic_add_t to libxl__device_generic_add;
+- change the type of the blkdev_start parameter to
+  libxl__device_disk_local_attach to const char *;
+- remove domid paramter to libxl__alloc_vdev (assume
+  LIBXL_TOOLSTACK_DOMID);
+- remove scaling limit from libxl__alloc_vdev;
+- libxl__device_disk_local_attach: replace LIBXL__LOG with LOG;
+- libxl__device_disk_local_attach: unify error paths.
+
+
+Changes in v4:
+- split the first patch into 2 patches: the first is a simple move, the
+  second one adds a new parameter;
+- libxl__device_generic_add: do not end the transaction is the caller
+  provided it;
+- libxl__device_generic_add: fix success exit path;
+- pass blkdev_start in libxl_domain_build_info;
+- rename libxl__devid_to_vdev to libxl__devid_to_localdev;
+- introduce upper bound for encode_disk_name;
+- improve error handling and exit paths in libxl__alloc_vdev and
+  libxl__device_disk_local_attach.
+
+
+Changes in v3:
+- libxl__device_disk_local_attach: wait for the backend to be
+"connected" before returning.
+
+
+Changes in v2:
+- make libxl_device_disk_local_(de)attach internal functions;
+- allocate the new disk in libxl_device_disk_local_attatch on the GC;
+- remove libxl__device_generic_add_t, add a transaction parameter to
+libxl__device_generic_add instead;
+- add a new patch to introduce a blkdev_start option to xl.conf;
+- reimplement libxl__alloc_vdev checking for the frontend path and
+starting from blkdev_start;
+- introduce a Linux specific libxl__devid_to_vdev function based on last
+Jan's patch to blkfront.
+
+
+Stefano Stabellini (11):
+      libxl: make libxl_device_disk_local_attach/detach internal functions
+      libxl: libxl__device_disk_local_attach return a new libxl_device_disk
+      libxl: add a transaction parameter to libxl__device_generic_add
+      libxl: export libxl__device_from_disk
+      libxl: introduce libxl__device_disk_add
+      xl/libxl: add a blkdev_start parameter
+      libxl: introduce libxl__alloc_vdev
+      xl/libxl: implement QDISK libxl_device_disk_local_attach
+      libxl__device_disk_local_attach: wait for state "connected"
+      libxl_string_to_backend: add qdisk
+      main_blockdetach: destroy the disk on successful removal
+ docs/man/xl.conf.pod.5                          |    6 +
+ tools/examples/xl.conf                          |    3 +
+ tools/hotplug/Linux/init.d/sysconfig.xencommons |    3 +
+ tools/hotplug/Linux/init.d/xencommons           |    3 +
+ tools/libxl/libxl.c                             |  163 ++++++++++++++++++-----
+ tools/libxl/libxl.h                             |    7 -
+ tools/libxl/libxl_bootloader.c                  |    5 +-
+ tools/libxl/libxl_create.c                      |    3 +
+ tools/libxl/libxl_device.c                      |   17 ++-
+ tools/libxl/libxl_internal.h                    |   32 ++++-
+ tools/libxl/libxl_linux.c                       |   52 +++++++
+ tools/libxl/libxl_netbsd.c                      |    6 +
+ tools/libxl/libxl_pci.c                         |    2 +-
+ tools/libxl/libxl_types.idl                     |    1 +
+ tools/libxl/libxl_utils.c                       |    2 +
+ tools/libxl/xl.c                                |    3 +
+ tools/libxl/xl.h                                |    1 +
+ tools/libxl/xl_cmdimpl.c                        |    5 +-
+ 18 files changed, 264 insertions(+), 50 deletions(-)
+
+
+Cheers,
+
+Stefano
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<alpine.DEB.2.00.1205291511560.26786@kaball-desktop> b/config/examples/test/corpus/<alpine.DEB.2.00.1205291511560.26786@kaball-desktop>
new file mode 100644 (file)
index 0000000..30252e2
--- /dev/null
@@ -0,0 +1,185 @@
+From xen-devel-bounces@lists.xen.org Tue May 29 15:34:20 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Tue, 29 May 2012 15:34:20 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SZNV0-0003lR-4g
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 29 May 2012 15:34:20 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SZNQn-0004UP-P4; Tue, 29 May 2012 14:29:53 +0000
+Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1SZNQl-0004UF-S2
+       for xen-devel@lists.xensource.com; Tue, 29 May 2012 14:29:52 +0000
+Received: from [193.109.254.147:53638] by server-7.bemta-14.messagelabs.com id
+       7F/2E-20336-E5DD4CF4; Tue, 29 May 2012 14:29:50 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-16.tower-27.messagelabs.com!1338301790!11623118!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiA5OTk2Nw==\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 4616 invoked from network); 29 May 2012 14:29:50 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-16.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
+       29 May 2012 14:29:50 -0000
+X-IronPort-AV: E=Sophos;i="4.75,677,1330905600"; d="scan'208";a="12717572"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       29 May 2012 14:29:49 +0000
+Received: from kaball.uk.xensource.com (10.80.2.59) by
+       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
+       8.3.213.0; Tue, 29 May 2012 15:29:49 +0100
+Date: Tue, 29 May 2012 15:29:43 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-X-Sender: sstabellini@kaball-desktop
+To: Ian Campbell <Ian.Campbell@citrix.com>
+In-Reply-To: <1338300632.14158.115.camel@zakaz.uk.xensource.com>
+Message-ID: <alpine.DEB.2.00.1205291511560.26786@kaball-desktop>
+References: <alpine.DEB.2.00.1205281439080.26786@kaball-desktop>
+       <1338287956-24691-2-git-send-email-stefano.stabellini@eu.citrix.com>
+       <1338300632.14158.115.camel@zakaz.uk.xensource.com>
+User-Agent: Alpine 2.00 (DEB 1167 2008-08-23)
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
+       Ian Jackson <Ian.Jackson@eu.citrix.com>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH v8 02/11] libxl:
+ libxl__device_disk_local_attach return a new libxl_device_disk
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Tue, 29 May 2012, Ian Campbell wrote:
+> On Tue, 2012-05-29 at 11:39 +0100, Stefano Stabellini wrote:
+> > Introduce a new libxl_device_disk* parameter to
+> > libxl__device_disk_local_attach, the parameter is allocated by the
+> > caller. libxl__device_disk_local_attach is going to fill the new disk
+> > with informations about the new locally attached disk.  The new
+> > libxl_device_disk should be passed to libxl_device_disk_local_detach
+> > afterwards.
+> > 
+> > Changes in v8:
+> > - free pdev_path and script in local_detach;
+> > - use libxl__strdup instead of strdup.
+> > 
+> > Changes in v7:
+> > - rename tmpdisk to localdisk;
+> > - add a comment in libxl__bootloader_state about localdisk.
+> > 
+> > Changes in v6:
+> > - return error in case pdev_path is NULL;
+> > - libxl__device_disk_local_attach update the new disk, the caller
+> > allocates it;
+> > - remove \n from logs.
+> > 
+> > Changes in v5:
+> > - rename disk to in_disk;
+> > - rename tmpdisk to disk;
+> > - copy disk to new_disk only on success;
+> > - remove check on libxl__zalloc success.
+> > 
+> > Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+> > ---
+> >  tools/libxl/libxl.c            |   18 +++++++++++++++---
+> >  tools/libxl/libxl_bootloader.c |    4 ++--
+> >  tools/libxl/libxl_internal.h   |   10 +++++++++-
+> >  3 files changed, 26 insertions(+), 6 deletions(-)
+> > 
+> > diff --git a/tools/libxl/libxl.c b/tools/libxl/libxl.c
+> > index cd870c4..762e72a 100644
+> > --- a/tools/libxl/libxl.c
+> > +++ b/tools/libxl/libxl.c
+> > @@ -1735,13 +1735,24 @@ out:
+> >      return ret;
+> >  }
+> >  
+> > -char * libxl__device_disk_local_attach(libxl__gc *gc, libxl_device_disk *disk)
+> > +char * libxl__device_disk_local_attach(libxl__gc *gc,
+> > +        const libxl_device_disk *in_disk,
+> > +        libxl_device_disk *disk)
+> 
+> Why the weird indent?
+
+Uhm.. I don't know, I think it was just the default on vim.
+
+
+> >  {
+> >      libxl_ctx *ctx = gc->owner;
+> >      char *dev = NULL;
+> >      char *ret = NULL;
+> >      int rc;
+> >  
+> > +    if (in_disk->pdev_path == NULL)
+> > +        return NULL;
+> > +
+> > +    memcpy(disk, in_disk, sizeof(libxl_device_disk));
+> > +    disk->pdev_path = libxl__strdup(NULL, in_disk->pdev_path);
+> > +    if (in_disk->script != NULL)
+> > +        disk->script = libxl__strdup(NULL, in_disk->script);
+> > +    disk->vdev = NULL;
+> > +
+> >      rc = libxl__device_disk_setdefault(gc, disk);
+> >      if (rc) goto out;
+> >  
+> > @@ -1779,8 +1790,7 @@ char * libxl__device_disk_local_attach(libxl__gc *gc, libxl_device_disk *disk)
+> >                             " attach a qdisk image if the format is not raw");
+> >                  break;
+> >              }
+> > -            LIBXL__LOG(ctx, LIBXL__LOG_DEBUG, "locally attaching qdisk %s\n",
+> > -                       disk->pdev_path);
+> > +            LOG(DEBUG, "locally attaching qdisk %s", in_disk->pdev_path);
+> >              dev = disk->pdev_path;
+> >              break;
+> >          default:
+> > @@ -1804,6 +1814,8 @@ int libxl__device_disk_local_detach(libxl__gc *gc, libxl_device_disk *disk)
+> >       * needed by the soon to be started domain and do nothing.
+> >       */
+> >  
+> > +    free(disk->pdev_path);
+> > +    free(disk->script);
+> 
+> This is open coding libxl_device_disk_dispose(disk) but missed the vdev
+> member, is that deliberate?
+
+I think it is a mistake: all these strings used to be allocated on the
+gc, on previous versions of the series. However meanwhile the event
+series went in, changing completely libxl__bootloader_run (that is the
+caller of libxl__device_disk_local_attach).
+Allocating stuff on the gc is not correct anymore, so now they need to
+be explicitly freed. I think I should call libxl_device_disk_dispose
+here and strdup in libxl__device_disk_local_attach to make sure vdev is
+not on the gc.
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<alpine.DEB.2.00.1205291540590.26786@kaball-desktop> b/config/examples/test/corpus/<alpine.DEB.2.00.1205291540590.26786@kaball-desktop>
new file mode 100644 (file)
index 0000000..9237148
--- /dev/null
@@ -0,0 +1,319 @@
+From xen-devel-bounces@lists.xen.org Tue May 29 15:53:20 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Tue, 29 May 2012 15:53:20 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SZNnO-0003qO-CZ
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 29 May 2012 15:53:20 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SZNj1-0005oE-UT; Tue, 29 May 2012 14:48:43 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1SZNj0-0005o4-3h
+       for xen-devel@lists.xensource.com; Tue, 29 May 2012 14:48:42 +0000
+Received: from [85.158.138.51:21031] by server-10.bemta-3.messagelabs.com id
+       87/09-01101-9C1E4CF4; Tue, 29 May 2012 14:48:41 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-4.tower-174.messagelabs.com!1338302919!29680189!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiA5OTk2Nw==\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 20242 invoked from network); 29 May 2012 14:48:40 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-4.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
+       29 May 2012 14:48:40 -0000
+X-IronPort-AV: E=Sophos;i="4.75,677,1330905600"; d="scan'208";a="12718207"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       29 May 2012 14:48:39 +0000
+Received: from kaball.uk.xensource.com (10.80.2.59) by
+       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
+       8.3.213.0; Tue, 29 May 2012 15:48:39 +0100
+Date: Tue, 29 May 2012 15:48:34 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-X-Sender: sstabellini@kaball-desktop
+To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+In-Reply-To: <alpine.DEB.2.00.1205291511560.26786@kaball-desktop>
+Message-ID: <alpine.DEB.2.00.1205291540590.26786@kaball-desktop>
+References: <alpine.DEB.2.00.1205281439080.26786@kaball-desktop>
+       <1338287956-24691-2-git-send-email-stefano.stabellini@eu.citrix.com>
+       <1338300632.14158.115.camel@zakaz.uk.xensource.com>
+       <alpine.DEB.2.00.1205291511560.26786@kaball-desktop>
+User-Agent: Alpine 2.00 (DEB 1167 2008-08-23)
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
+       Ian Jackson <Ian.Jackson@eu.citrix.com>,
+       Ian Campbell <Ian.Campbell@citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH v8 02/11] libxl:
+ libxl__device_disk_local_attach return a new libxl_device_disk
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Tue, 29 May 2012, Stefano Stabellini wrote:
+> On Tue, 29 May 2012, Ian Campbell wrote:
+> > On Tue, 2012-05-29 at 11:39 +0100, Stefano Stabellini wrote:
+> > > Introduce a new libxl_device_disk* parameter to
+> > > libxl__device_disk_local_attach, the parameter is allocated by the
+> > > caller. libxl__device_disk_local_attach is going to fill the new disk
+> > > with informations about the new locally attached disk.  The new
+> > > libxl_device_disk should be passed to libxl_device_disk_local_detach
+> > > afterwards.
+> > > 
+> > > Changes in v8:
+> > > - free pdev_path and script in local_detach;
+> > > - use libxl__strdup instead of strdup.
+> > > 
+> > > Changes in v7:
+> > > - rename tmpdisk to localdisk;
+> > > - add a comment in libxl__bootloader_state about localdisk.
+> > > 
+> > > Changes in v6:
+> > > - return error in case pdev_path is NULL;
+> > > - libxl__device_disk_local_attach update the new disk, the caller
+> > > allocates it;
+> > > - remove \n from logs.
+> > > 
+> > > Changes in v5:
+> > > - rename disk to in_disk;
+> > > - rename tmpdisk to disk;
+> > > - copy disk to new_disk only on success;
+> > > - remove check on libxl__zalloc success.
+> > > 
+> > > Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+> > > ---
+> > >  tools/libxl/libxl.c            |   18 +++++++++++++++---
+> > >  tools/libxl/libxl_bootloader.c |    4 ++--
+> > >  tools/libxl/libxl_internal.h   |   10 +++++++++-
+> > >  3 files changed, 26 insertions(+), 6 deletions(-)
+> > > 
+> > > diff --git a/tools/libxl/libxl.c b/tools/libxl/libxl.c
+> > > index cd870c4..762e72a 100644
+> > > --- a/tools/libxl/libxl.c
+> > > +++ b/tools/libxl/libxl.c
+> > > @@ -1735,13 +1735,24 @@ out:
+> > >      return ret;
+> > >  }
+> > >  
+> > > -char * libxl__device_disk_local_attach(libxl__gc *gc, libxl_device_disk *disk)
+> > > +char * libxl__device_disk_local_attach(libxl__gc *gc,
+> > > +        const libxl_device_disk *in_disk,
+> > > +        libxl_device_disk *disk)
+> > 
+> > Why the weird indent?
+> 
+> Uhm.. I don't know, I think it was just the default on vim.
+> 
+> 
+> > >  {
+> > >      libxl_ctx *ctx = gc->owner;
+> > >      char *dev = NULL;
+> > >      char *ret = NULL;
+> > >      int rc;
+> > >  
+> > > +    if (in_disk->pdev_path == NULL)
+> > > +        return NULL;
+> > > +
+> > > +    memcpy(disk, in_disk, sizeof(libxl_device_disk));
+> > > +    disk->pdev_path = libxl__strdup(NULL, in_disk->pdev_path);
+> > > +    if (in_disk->script != NULL)
+> > > +        disk->script = libxl__strdup(NULL, in_disk->script);
+> > > +    disk->vdev = NULL;
+> > > +
+> > >      rc = libxl__device_disk_setdefault(gc, disk);
+> > >      if (rc) goto out;
+> > >  
+> > > @@ -1779,8 +1790,7 @@ char * libxl__device_disk_local_attach(libxl__gc *gc, libxl_device_disk *disk)
+> > >                             " attach a qdisk image if the format is not raw");
+> > >                  break;
+> > >              }
+> > > -            LIBXL__LOG(ctx, LIBXL__LOG_DEBUG, "locally attaching qdisk %s\n",
+> > > -                       disk->pdev_path);
+> > > +            LOG(DEBUG, "locally attaching qdisk %s", in_disk->pdev_path);
+> > >              dev = disk->pdev_path;
+> > >              break;
+> > >          default:
+> > > @@ -1804,6 +1814,8 @@ int libxl__device_disk_local_detach(libxl__gc *gc, libxl_device_disk *disk)
+> > >       * needed by the soon to be started domain and do nothing.
+> > >       */
+> > >  
+> > > +    free(disk->pdev_path);
+> > > +    free(disk->script);
+> > 
+> > This is open coding libxl_device_disk_dispose(disk) but missed the vdev
+> > member, is that deliberate?
+> 
+> I think it is a mistake: all these strings used to be allocated on the
+> gc, on previous versions of the series. However meanwhile the event
+> series went in, changing completely libxl__bootloader_run (that is the
+> caller of libxl__device_disk_local_attach).
+> Allocating stuff on the gc is not correct anymore, so now they need to
+> be explicitly freed. I think I should call libxl_device_disk_dispose
+> here and strdup in libxl__device_disk_local_attach to make sure vdev is
+> not on the gc.
+
+The appended patch switches back the behavior to what we had in v5 and
+before: pdev_path, script, and vdev are all allocated on the gc,
+therefore freed automatically.
+
+
+---
+
+libxl: libxl__device_disk_local_attach return a new libxl_device_disk
+
+Introduce a new libxl_device_disk* parameter to
+libxl__device_disk_local_attach, the parameter is allocated by the
+caller. libxl__device_disk_local_attach is going to fill the new disk
+with informations about the new locally attached disk.  The new
+libxl_device_disk should be passed to libxl_device_disk_local_detach
+afterwards.
+
+Changes in v9:
+- allocate pdev_path, script, and vdev on the gc.
+
+Changes in v8:
+- free pdev_path and script in local_detach;
+- use libxl__strdup instead of strdup.
+
+Changes in v7:
+- rename tmpdisk to localdisk;
+- add a comment in libxl__bootloader_state about localdisk.
+
+Changes in v6:
+- return error in case pdev_path is NULL;
+- libxl__device_disk_local_attach update the new disk, the caller
+allocates it;
+- remove \n from logs.
+
+Changes in v5:
+- rename disk to in_disk;
+- rename tmpdisk to disk;
+- copy disk to new_disk only on success;
+- remove check on libxl__zalloc success.
+
+Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+
+diff --git a/tools/libxl/libxl.c b/tools/libxl/libxl.c
+index cd870c4..be1c900 100644
+--- a/tools/libxl/libxl.c
++++ b/tools/libxl/libxl.c
+@@ -1735,13 +1735,24 @@ out:
+     return ret;
+ }
+-char * libxl__device_disk_local_attach(libxl__gc *gc, libxl_device_disk *disk)
++char * libxl__device_disk_local_attach(libxl__gc *gc,
++        const libxl_device_disk *in_disk,
++        libxl_device_disk *disk)
+ {
+     libxl_ctx *ctx = gc->owner;
+     char *dev = NULL;
+     char *ret = NULL;
+     int rc;
++    if (in_disk->pdev_path == NULL)
++        return NULL;
++
++    memcpy(disk, in_disk, sizeof(libxl_device_disk));
++    disk->pdev_path = libxl__strdup(gc, in_disk->pdev_path);
++    if (in_disk->script != NULL)
++        disk->script = libxl__strdup(gc, in_disk->script);
++    disk->vdev = NULL;
++
+     rc = libxl__device_disk_setdefault(gc, disk);
+     if (rc) goto out;
+@@ -1779,8 +1790,7 @@ char * libxl__device_disk_local_attach(libxl__gc *gc, libxl_device_disk *disk)
+                            " attach a qdisk image if the format is not raw");
+                 break;
+             }
+-            LIBXL__LOG(ctx, LIBXL__LOG_DEBUG, "locally attaching qdisk %s\n",
+-                       disk->pdev_path);
++            LOG(DEBUG, "locally attaching qdisk %s", in_disk->pdev_path);
+             dev = disk->pdev_path;
+             break;
+         default:
+diff --git a/tools/libxl/libxl_bootloader.c b/tools/libxl/libxl_bootloader.c
+index e8950b1..82371f1 100644
+--- a/tools/libxl/libxl_bootloader.c
++++ b/tools/libxl/libxl_bootloader.c
+@@ -228,7 +228,7 @@ static void bootloader_cleanup(libxl__egc *egc, libxl__bootloader_state *bl)
+     if (bl->outputdir) libxl__remove_directory(gc, bl->outputdir);
+     if (bl->diskpath) {
+-        libxl__device_disk_local_detach(gc, bl->disk);
++        libxl__device_disk_local_detach(gc, &bl->localdisk);
+         free(bl->diskpath);
+         bl->diskpath = 0;
+     }
+@@ -330,7 +330,7 @@ void libxl__bootloader_run(libxl__egc *egc, libxl__bootloader_state *bl)
+         goto out;
+     }
+-    bl->diskpath = libxl__device_disk_local_attach(gc, bl->disk);
++    bl->diskpath = libxl__device_disk_local_attach(gc, bl->disk, &bl->localdisk);
+     if (!bl->diskpath) {
+         rc = ERROR_FAIL;
+         goto out;
+diff --git a/tools/libxl/libxl_internal.h b/tools/libxl/libxl_internal.h
+index d34e561..21b8b54 100644
+--- a/tools/libxl/libxl_internal.h
++++ b/tools/libxl/libxl_internal.h
+@@ -1265,7 +1265,8 @@ _hidden void libxl__device_destroy_tapdisk(libxl__gc *gc, char *be_path);
+  * a device.
+  */
+ _hidden char * libxl__device_disk_local_attach(libxl__gc *gc,
+-        libxl_device_disk *disk);
++        const libxl_device_disk *in_disk,
++        libxl_device_disk *new_disk);
+ _hidden int libxl__device_disk_local_detach(libxl__gc *gc,
+         libxl_device_disk *disk);
+@@ -1803,6 +1804,13 @@ struct libxl__bootloader_state {
+     libxl__bootloader_console_callback *console_available;
+     libxl_domain_build_info *info; /* u.pv.{kernel,ramdisk,cmdline} updated */
+     libxl_device_disk *disk;
++    /* Should be zeroed by caller on entry.  Will be filled in by
++     * bootloader machinery; represents the local attachment of the
++     * disk for the benefit of the bootloader.  Must be detached by
++     * the caller using libxl__device_disk_local_detach, but only
++     * after the domain's kernel and initramfs have been loaded into
++     * memory and the file references disposed of. */
++    libxl_device_disk localdisk;
+     uint32_t domid;
+     /* private to libxl__run_bootloader */
+     char *outputpath, *outputdir, *logfile;
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<alpine.DEB.2.00.1205291608430.26786@kaball-desktop> b/config/examples/test/corpus/<alpine.DEB.2.00.1205291608430.26786@kaball-desktop>
new file mode 100644 (file)
index 0000000..037fee4
--- /dev/null
@@ -0,0 +1,125 @@
+From xen-devel-bounces@lists.xen.org Tue May 29 16:14:57 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Tue, 29 May 2012 16:14:57 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SZO8K-0003xZ-CW
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 29 May 2012 16:14:57 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SZO42-0007ab-HR; Tue, 29 May 2012 15:10:26 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1SZO40-0007aL-QS
+       for xen-devel@lists.xensource.com; Tue, 29 May 2012 15:10:24 +0000
+Received: from [85.158.143.35:36483] by server-3.bemta-4.messagelabs.com id
+       AA/E2-05853-0E6E4CF4; Tue, 29 May 2012 15:10:24 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-2.tower-21.messagelabs.com!1338304222!6881286!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiA5OTk2Nw==\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 8946 invoked from network); 29 May 2012 15:10:22 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-2.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
+       29 May 2012 15:10:22 -0000
+X-IronPort-AV: E=Sophos;i="4.75,677,1330905600"; d="scan'208";a="12718842"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       29 May 2012 15:10:21 +0000
+Received: from kaball.uk.xensource.com (10.80.2.59) by
+       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
+       8.3.213.0; Tue, 29 May 2012 16:10:21 +0100
+Date: Tue, 29 May 2012 16:10:16 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-X-Sender: sstabellini@kaball-desktop
+To: Ian Campbell <Ian.Campbell@citrix.com>
+In-Reply-To: <1338303814.14158.125.camel@zakaz.uk.xensource.com>
+Message-ID: <alpine.DEB.2.00.1205291608430.26786@kaball-desktop>
+References: <alpine.DEB.2.00.1205281439080.26786@kaball-desktop>
+       <1338287956-24691-2-git-send-email-stefano.stabellini@eu.citrix.com>
+       <1338300632.14158.115.camel@zakaz.uk.xensource.com>
+       <alpine.DEB.2.00.1205291511560.26786@kaball-desktop> 
+       <alpine.DEB.2.00.1205291540590.26786@kaball-desktop>
+       <1338303814.14158.125.camel@zakaz.uk.xensource.com>
+User-Agent: Alpine 2.00 (DEB 1167 2008-08-23)
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
+       Ian Jackson <Ian.Jackson@eu.citrix.com>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH v8 02/11] libxl:
+ libxl__device_disk_local_attach return a new libxl_device_disk
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Tue, 29 May 2012, Ian Campbell wrote:
+> On Tue, 2012-05-29 at 15:48 +0100, Stefano Stabellini wrote:
+> > On Tue, 29 May 2012, Stefano Stabellini wrote:
+> > > On Tue, 29 May 2012, Ian Campbell wrote:
+> > > > On Tue, 2012-05-29 at 11:39 +0100, Stefano Stabellini wrote:
+> > > > > @@ -1804,6 +1814,8 @@ int libxl__device_disk_local_detach(libxl__gc *gc, libxl_device_disk *disk)
+> > > > >       * needed by the soon to be started domain and do nothing.
+> > > > >       */
+> > > > >  
+> > > > > +    free(disk->pdev_path);
+> > > > > +    free(disk->script);
+> > > > 
+> > > > This is open coding libxl_device_disk_dispose(disk) but missed the vdev
+> > > > member, is that deliberate?
+> > > 
+> > > I think it is a mistake: all these strings used to be allocated on the
+> > > gc, on previous versions of the series. However meanwhile the event
+> > > series went in, changing completely libxl__bootloader_run (that is the
+> > > caller of libxl__device_disk_local_attach).
+> > > Allocating stuff on the gc is not correct anymore, so now they need to
+> > > be explicitly freed. I think I should call libxl_device_disk_dispose
+> > > here and strdup in libxl__device_disk_local_attach to make sure vdev is
+> > > not on the gc.
+> > 
+> > The appended patch switches back the behavior to what we had in v5 and
+> > before: pdev_path, script, and vdev are all allocated on the gc,
+> > therefore freed automatically.
+> 
+> Thanks, this looks good to me.
+> 
+> If I slot this in in the place of the original will the rest of the
+> series apply or shall I wait for a resend/retest?
+
+I have already tested the patch before sending it.
+I think you might find that 1 hunk of patch #8 won't apply automatically
+but it should be trivial to fix the conflict.
+Let me know if I need to resend.
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<alpine.DEB.2.02.1206051810270.6030@kaball.uk.xensource.com> b/config/examples/test/corpus/<alpine.DEB.2.02.1206051810270.6030@kaball.uk.xensource.com>
new file mode 100644 (file)
index 0000000..3401918
--- /dev/null
@@ -0,0 +1,120 @@
+From xen-devel-bounces@lists.xen.org Tue Jun 05 18:16:49 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Tue, 05 Jun 2012 18:16:49 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SbxN8-0001S2-RE
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 05 Jun 2012 18:16:49 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SbxIf-0004bZ-E1; Tue, 05 Jun 2012 17:12:09 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1SbxId-0004bO-4d
+       for xen-devel@lists.xen.org; Tue, 05 Jun 2012 17:12:07 +0000
+Received: from [85.158.139.83:56543] by server-8.bemta-5.messagelabs.com id
+       C3/4C-02058-6ED3ECF4; Tue, 05 Jun 2012 17:12:06 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-4.tower-182.messagelabs.com!1338916325!29410047!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDExNDU=\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 15730 invoked from network); 5 Jun 2012 17:12:05 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-4.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
+       5 Jun 2012 17:12:05 -0000
+X-IronPort-AV: E=Sophos;i="4.75,718,1330905600"; d="scan'208";a="12844376"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       05 Jun 2012 17:12:04 +0000
+Received: from sstabellini-Precision-WorkStation-T3500.local (10.80.238.169)
+       by smtprelay.citrix.com (10.30.203.162) with Microsoft SMTP Server id
+       8.3.213.0; Tue, 5 Jun 2012 18:12:04 +0100
+Date: Tue, 5 Jun 2012 18:11:58 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-X-Sender: sstabellini@kaball.uk.xensource.com
+To: Ian Campbell <ian.campbell@citrix.com>
+In-Reply-To: <1338565207-2888-19-git-send-email-ian.campbell@citrix.com>
+Message-ID: <alpine.DEB.2.02.1206051810270.6030@kaball.uk.xensource.com>
+References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
+       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+       <1338565207-2888-19-git-send-email-ian.campbell@citrix.com>
+User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 19/38] arm: context switch a bunch of guest
+ state.
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Fri, 1 Jun 2012, Ian Campbell wrote:
+> diff --git a/xen/arch/arm/gic.c b/xen/arch/arm/gic.c
+> index 1a2b95f..339c327 100644
+> --- a/xen/arch/arm/gic.c
+> +++ b/xen/arch/arm/gic.c
+> @@ -61,6 +61,30 @@ static struct {
+>  irq_desc_t irq_desc[NR_IRQS];
+>  unsigned nr_lrs;
+> 
+> +void gic_save_state(struct vcpu *v)
+> +{
+> +    int i;
+> +
+> +    for ( i=0; i<nr_lrs; i++)
+> +        v->arch.gic_lr[i] = GICH[GICH_LR + i];
+> +    /* Disable until next VCPU scheduled */
+> +    GICH[GICH_HCR] = 0;
+> +    isb();
+> +}
+> +
+> +void gic_restore_state(struct vcpu *v)
+> +{
+> +    int i;
+> +
+> +    if ( is_idle_vcpu(v) )
+> +        return;
+> +
+> +    for ( i=0; i<nr_lrs; i++)
+> +        GICH[GICH_LR + i] = v->arch.gic_lr[i];
+> +    GICH[GICH_HCR] = GICH_HCR_EN;
+> +    isb();
+> +}
+> +
+
+it is still missing a bunch of stuff from the gic state but it is a step
+in the right direction, so I'll send out patches to complete the gic
+context switch separately, based on this one.
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<alpine.DEB.2.02.1206061345230.6030@kaball.uk.xensource.com> b/config/examples/test/corpus/<alpine.DEB.2.02.1206061345230.6030@kaball.uk.xensource.com>
new file mode 100644 (file)
index 0000000..e53f366
--- /dev/null
@@ -0,0 +1,131 @@
+From xen-devel-bounces@lists.xen.org Wed Jun 06 13:50:22 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 06 Jun 2012 13:50:22 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1ScFgp-0002mZ-Ci
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 06 Jun 2012 13:50:21 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1ScFcQ-0006U9-8l; Wed, 06 Jun 2012 12:45:46 +0000
+Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1ScFcN-0006U4-TK
+       for xen-devel@lists.xen.org; Wed, 06 Jun 2012 12:45:44 +0000
+Received: from [193.109.254.147:10281] by server-2.bemta-14.messagelabs.com id
+       FE/4E-27740-7F05FCF4; Wed, 06 Jun 2012 12:45:43 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-14.tower-27.messagelabs.com!1338986742!5146448!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDExMjA=\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 13058 invoked from network); 6 Jun 2012 12:45:42 -0000
+Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-14.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
+       6 Jun 2012 12:45:42 -0000
+X-IronPort-AV: E=Sophos;i="4.75,724,1330905600"; d="scan'208";a="12858596"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       06 Jun 2012 12:45:42 +0000
+Received: from sstabellini-Precision-WorkStation-T3500.local (10.80.238.169)
+       by smtprelay.citrix.com (10.30.203.162) with Microsoft SMTP Server id
+       8.3.213.0; Wed, 6 Jun 2012 13:45:42 +0100
+Date: Wed, 6 Jun 2012 13:45:35 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-X-Sender: sstabellini@kaball.uk.xensource.com
+To: Ian Campbell <ian.campbell@citrix.com>
+In-Reply-To: <1338565207-2888-4-git-send-email-ian.campbell@citrix.com>
+Message-ID: <alpine.DEB.2.02.1206061345230.6030@kaball.uk.xensource.com>
+References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
+       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+       <1338565207-2888-4-git-send-email-ian.campbell@citrix.com>
+User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 04/38] arm: correct and expand TLB flush
+ CP15 registers
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Fri, 1 Jun 2012, Ian Campbell wrote:
+> Correct spelling of TLBIALLHIS and correct definition of TLBIALLNSNHIS.
+> 
+> Add a few more.
+>
+> Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+> ---
+
+Acked-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+
+>  xen/include/asm-arm/cpregs.h |   11 +++++++++--
+>  1 files changed, 9 insertions(+), 2 deletions(-)
+> 
+> diff --git a/xen/include/asm-arm/cpregs.h b/xen/include/asm-arm/cpregs.h
+> index ee8a287..7a0b49a 100644
+> --- a/xen/include/asm-arm/cpregs.h
+> +++ b/xen/include/asm-arm/cpregs.h
+> @@ -172,12 +172,19 @@
+>  #define TLBIMVAIS       p15,0,c8,c3,1   /* Invalidate unified TLB entry by MVA inner shareable */
+>  #define TLBIASIDIS      p15,0,c8,c3,2   /* Invalidate unified TLB by ASID match inner shareable */
+>  #define TLBIMVAAIS      p15,0,c8,c3,3   /* Invalidate unified TLB entry by MVA all ASID inner shareable */
+> +#define ITLBIALL        p15,0,c8,c5,0   /* Invalidate instruction TLB */
+> +#define ITLBIMVA        p15,0,c8,c5,1   /* Invalidate instruction TLB entry by MVA */
+> +#define ITLBIASID       p15,0,c8,c5,2   /* Invalidate instruction TLB by ASID match */
+>  #define DTLBIALL        p15,0,c8,c6,0   /* Invalidate data TLB */
+>  #define DTLBIMVA        p15,0,c8,c6,1   /* Invalidate data TLB entry by MVA */
+>  #define DTLBIASID       p15,0,c8,c6,2   /* Invalidate data TLB by ASID match */
+> -#define TLBILLHIS       p15,4,c8,c3,0   /* Invalidate Entire Hyp. Unified TLB inner shareable */
+> +#define TLBIALL         p15,0,c8,c7,0   /* invalidate unified TLB */
+> +#define TLBIMVA         p15,0,c8,c7,1   /* invalidate unified TLB entry by MVA */
+> +#define TLBIASID        p15,0,c8,c7,2   /* invalid unified TLB by ASID match */
+> +#define TLBIMVAA        p15,0,c8,c7,3   /* invalidate unified TLB entries by MVA all ASID */
+> +#define TLBIALLHIS      p15,4,c8,c3,0   /* Invalidate Entire Hyp. Unified TLB inner shareable */
+>  #define TLBIMVAHIS      p15,4,c8,c3,1   /* Invalidate Unified Hyp. TLB by MVA inner shareable */
+> -#define TLBIALLNSNHIS   p15,4,c8,c7,4   /* Invalidate Entire Non-Secure Non-Hyp. Unified TLB inner shareable */
+> +#define TLBIALLNSNHIS   p15,4,c8,c3,4   /* Invalidate Entire Non-Secure Non-Hyp. Unified TLB inner shareable */
+>  #define TLBIALLH        p15,4,c8,c7,0   /* Invalidate Entire Hyp. Unified TLB */
+>  #define TLBIMVAH        p15,4,c8,c7,1   /* Invalidate Unified Hyp. TLB by MVA */
+>  #define TLBIALLNSNH     p15,4,c8,c7,4   /* Invalidate Entire Non-Secure Non-Hyp. Unified TLB */
+> -- 
+> 1.7.9.1
+> 
+> 
+> _______________________________________________
+> Xen-devel mailing list
+> Xen-devel@lists.xen.org
+> http://lists.xen.org/xen-devel
+> 
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<alpine.DEB.2.02.1206061403450.6030@kaball.uk.xensource.com> b/config/examples/test/corpus/<alpine.DEB.2.02.1206061403450.6030@kaball.uk.xensource.com>
new file mode 100644 (file)
index 0000000..8c2fbf6
--- /dev/null
@@ -0,0 +1,165 @@
+From xen-devel-bounces@lists.xen.org Wed Jun 06 14:07:48 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 06 Jun 2012 14:07:48 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1ScFxi-0002qP-3f
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 06 Jun 2012 14:07:48 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1ScFu5-0007Qe-Rc; Wed, 06 Jun 2012 13:04:01 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1ScFu3-0007QS-VG
+       for xen-devel@lists.xen.org; Wed, 06 Jun 2012 13:04:00 +0000
+Received: from [85.158.139.83:17534] by server-11.bemta-5.messagelabs.com id
+       E7/65-25194-F355FCF4; Wed, 06 Jun 2012 13:03:59 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-15.tower-182.messagelabs.com!1338987838!32167764!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDExMjA=\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 16160 invoked from network); 6 Jun 2012 13:03:58 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-15.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
+       6 Jun 2012 13:03:58 -0000
+X-IronPort-AV: E=Sophos;i="4.75,724,1330905600"; d="scan'208";a="12859111"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       06 Jun 2012 13:03:58 +0000
+Received: from sstabellini-Precision-WorkStation-T3500.local (10.80.238.169)
+       by smtprelay.citrix.com (10.30.203.162) with Microsoft SMTP Server id
+       8.3.213.0; Wed, 6 Jun 2012 14:03:58 +0100
+Date: Wed, 6 Jun 2012 14:03:51 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-X-Sender: sstabellini@kaball.uk.xensource.com
+To: Ian Campbell <ian.campbell@citrix.com>
+In-Reply-To: <1338565207-2888-5-git-send-email-ian.campbell@citrix.com>
+Message-ID: <alpine.DEB.2.02.1206061403450.6030@kaball.uk.xensource.com>
+References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
+       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+       <1338565207-2888-5-git-send-email-ian.campbell@citrix.com>
+User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 05/38] arm: restore stack on return from
+ trap.
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Fri, 1 Jun 2012, Ian Campbell wrote:
+> We align the stack before calling into C code but we weren't undoing this on
+> return.
+> 
+> Collapse continue_(non)idle_domain into continue_new_vcpu.
+> 
+> Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+
+
+Acked-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+
+>  xen/arch/arm/domain.c |   16 +++-------------
+>  xen/arch/arm/entry.S  |    5 ++++-
+>  2 files changed, 7 insertions(+), 14 deletions(-)
+> 
+> diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
+> index 4b38790..9339a11 100644
+> --- a/xen/arch/arm/domain.c
+> +++ b/xen/arch/arm/domain.c
+> @@ -16,17 +16,6 @@
+>  
+>  DEFINE_PER_CPU(struct vcpu *, curr_vcpu);
+>  
+> -static void continue_idle_domain(struct vcpu *v)
+> -{
+> -    reset_stack_and_jump(idle_loop);
+> -}
+> -
+> -static void continue_nonidle_domain(struct vcpu *v)
+> -{
+> -    /* check_wakeup_from_wait(); */
+> -    reset_stack_and_jump(return_from_trap);
+> -}
+> -
+>  void idle_loop(void)
+>  {
+>      for ( ; ; )
+> @@ -72,9 +61,10 @@ static void continue_new_vcpu(struct vcpu *prev)
+>      schedule_tail(prev);
+>  
+>      if ( is_idle_vcpu(current) )
+> -        continue_idle_domain(current);
+> +        reset_stack_and_jump(idle_loop);
+>      else
+> -        continue_nonidle_domain(current);
+> +        /* check_wakeup_from_wait(); */
+> +        reset_stack_and_jump(return_to_new_vcpu);
+>  }
+>  
+>  void context_switch(struct vcpu *prev, struct vcpu *next)
+> diff --git a/xen/arch/arm/entry.S b/xen/arch/arm/entry.S
+> index f261a9f..7a22e2d 100644
+> --- a/xen/arch/arm/entry.S
+> +++ b/xen/arch/arm/entry.S
+> @@ -72,7 +72,9 @@ DEFINE_TRAP_ENTRY(hypervisor)
+>  DEFINE_TRAP_ENTRY(irq)
+>  DEFINE_TRAP_ENTRY(fiq)
+>  
+> -ENTRY(return_from_trap)
+> +return_from_trap:
+> +    mov sp, r11
+> +ENTRY(return_to_new_vcpu)
+>      ldr r11, [sp, #UREGS_cpsr]
+>      and r11, #PSR_MODE_MASK
+>      cmp r11, #PSR_MODE_HYP
+> @@ -82,6 +84,7 @@ ENTRY(return_to_guest)
+>      mov r11, sp
+>      bic sp, #7 /* Align the stack pointer */
+>      bl leave_hypervisor_tail
+> +    mov sp, r11
+>      RESTORE_ONE_BANKED(SP_usr)
+>      /* LR_usr is the same physical register as lr and is restored below */
+>      RESTORE_BANKED(svc)
+> -- 
+> 1.7.9.1
+> 
+> 
+> _______________________________________________
+> Xen-devel mailing list
+> Xen-devel@lists.xen.org
+> http://lists.xen.org/xen-devel
+> 
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<alpine.DEB.2.02.1206061438000.6030@kaball.uk.xensource.com> b/config/examples/test/corpus/<alpine.DEB.2.02.1206061438000.6030@kaball.uk.xensource.com>
new file mode 100644 (file)
index 0000000..8a08bc3
--- /dev/null
@@ -0,0 +1,173 @@
+From xen-devel-bounces@lists.xen.org Wed Jun 06 14:42:34 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 06 Jun 2012 14:42:34 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1ScGVI-00030c-FD
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 06 Jun 2012 14:42:34 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1ScGRK-0000Wv-Ao; Wed, 06 Jun 2012 13:38:22 +0000
+Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1ScGRI-0000Wm-5f
+       for xen-devel@lists.xen.org; Wed, 06 Jun 2012 13:38:20 +0000
+Received: from [193.109.254.147:16926] by server-11.bemta-14.messagelabs.com
+       id 63/FC-02727-B4D5FCF4; Wed, 06 Jun 2012 13:38:19 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-6.tower-27.messagelabs.com!1338989898!5132841!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDExMjA=\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 14090 invoked from network); 6 Jun 2012 13:38:19 -0000
+Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-6.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
+       6 Jun 2012 13:38:19 -0000
+X-IronPort-AV: E=Sophos;i="4.75,724,1330905600"; d="scan'208";a="12859977"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       06 Jun 2012 13:38:18 +0000
+Received: from sstabellini-Precision-WorkStation-T3500.local (10.80.238.169)
+       by smtprelay.citrix.com (10.30.203.162) with Microsoft SMTP Server id
+       8.3.213.0; Wed, 6 Jun 2012 14:38:18 +0100
+Date: Wed, 6 Jun 2012 14:38:11 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-X-Sender: sstabellini@kaball.uk.xensource.com
+To: Ian Campbell <ian.campbell@citrix.com>
+In-Reply-To: <1338565207-2888-6-git-send-email-ian.campbell@citrix.com>
+Message-ID: <alpine.DEB.2.02.1206061438000.6030@kaball.uk.xensource.com>
+References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
+       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+       <1338565207-2888-6-git-send-email-ian.campbell@citrix.com>
+User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 06/38] arm: enable interrupts while handling
+ traps
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Fri, 1 Jun 2012, Ian Campbell wrote:
+> For most traps we can do this as soon as we have saved the necessary state.
+> For IRQs and FIQs we must wait until we have acked the interrupt with the GIC.
+> 
+> Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+
+
+Acked-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+
+>  xen/arch/arm/entry.S |   17 ++++++++++++++---
+>  xen/arch/arm/gic.c   |    2 ++
+>  xen/arch/arm/traps.c |    1 -
+>  3 files changed, 16 insertions(+), 4 deletions(-)
+> 
+> diff --git a/xen/arch/arm/entry.S b/xen/arch/arm/entry.S
+> index 7a22e2d..5bc3906 100644
+> --- a/xen/arch/arm/entry.S
+> +++ b/xen/arch/arm/entry.S
+> @@ -46,6 +46,17 @@ save_guest_regs:
+>      ALIGN;                                                                                          \
+>  trap_##trap:                                                                                                \
+>      SAVE_ALL;                                                                                       \
+> +    cpsie i;        /* local_irq_enable */                                                          \
+> +    adr lr, return_from_trap;                                                                       \
+> +    mov r0, sp;                                                                                     \
+> +    mov r11, sp;                                                                                    \
+> +    bic sp, #7; /* Align the stack pointer (noop on guest trap) */                                  \
+> +    b do_trap_##trap
+> +
+> +#define DEFINE_TRAP_ENTRY_NOIRQ(trap)                                                                       \
+> +    ALIGN;                                                                                          \
+> +trap_##trap:                                                                                                \
+> +    SAVE_ALL;                                                                                       \
+>      adr lr, return_from_trap;                                                                       \
+>      mov r0, sp;                                                                                     \
+>      mov r11, sp;                                                                                    \
+> @@ -69,8 +80,8 @@ DEFINE_TRAP_ENTRY(supervisor_call)
+>  DEFINE_TRAP_ENTRY(prefetch_abort)
+>  DEFINE_TRAP_ENTRY(data_abort)
+>  DEFINE_TRAP_ENTRY(hypervisor)
+> -DEFINE_TRAP_ENTRY(irq)
+> -DEFINE_TRAP_ENTRY(fiq)
+> +DEFINE_TRAP_ENTRY_NOIRQ(irq)
+> +DEFINE_TRAP_ENTRY_NOIRQ(fiq)
+>  
+>  return_from_trap:
+>      mov sp, r11
+> @@ -83,7 +94,7 @@ ENTRY(return_to_new_vcpu)
+>  ENTRY(return_to_guest)
+>      mov r11, sp
+>      bic sp, #7 /* Align the stack pointer */
+> -    bl leave_hypervisor_tail
+> +    bl leave_hypervisor_tail /* Disables interrupts on return */
+>      mov sp, r11
+>      RESTORE_ONE_BANKED(SP_usr)
+>      /* LR_usr is the same physical register as lr and is restored below */
+> diff --git a/xen/arch/arm/gic.c b/xen/arch/arm/gic.c
+> index cc9d37b..1a2b95f 100644
+> --- a/xen/arch/arm/gic.c
+> +++ b/xen/arch/arm/gic.c
+> @@ -509,6 +509,8 @@ void gic_interrupt(struct cpu_user_regs *regs, int is_fiq)
+>      uint32_t intack = GICC[GICC_IAR];
+>      unsigned int irq = intack & GICC_IA_IRQ;
+>  
+> +    local_irq_enable();
+> +
+>      if ( irq == 1023 )
+>          /* Spurious interrupt */
+>          return;
+> diff --git a/xen/arch/arm/traps.c b/xen/arch/arm/traps.c
+> index abc26a3..5ed754f 100644
+> --- a/xen/arch/arm/traps.c
+> +++ b/xen/arch/arm/traps.c
+> @@ -412,7 +412,6 @@ static void do_debug_trap(struct cpu_user_regs *regs, unsigned int code)
+>  static void do_trap_hypercall(struct cpu_user_regs *regs, unsigned long iss)
+>  {
+>      arm_hypercall_t *call = NULL;
+> -    local_irq_enable();
+>  
+>      if ( iss != XEN_HYPERCALL_TAG )
+>      {
+> -- 
+> 1.7.9.1
+> 
+> 
+> _______________________________________________
+> Xen-devel mailing list
+> Xen-devel@lists.xen.org
+> http://lists.xen.org/xen-devel
+> 
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<alpine.DEB.2.02.1206061438560.6030@kaball.uk.xensource.com> b/config/examples/test/corpus/<alpine.DEB.2.02.1206061438560.6030@kaball.uk.xensource.com>
new file mode 100644 (file)
index 0000000..bb0ba7a
--- /dev/null
@@ -0,0 +1,113 @@
+From xen-devel-bounces@lists.xen.org Wed Jun 06 14:42:36 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 06 Jun 2012 14:42:36 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1ScGVL-00030e-Ew
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 06 Jun 2012 14:42:36 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1ScGS7-0000ar-Oa; Wed, 06 Jun 2012 13:39:11 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1ScGS6-0000aZ-5a
+       for xen-devel@lists.xen.org; Wed, 06 Jun 2012 13:39:10 +0000
+Received: from [85.158.143.35:31336] by server-1.bemta-4.messagelabs.com id
+       EF/53-10042-D7D5FCF4; Wed, 06 Jun 2012 13:39:09 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-6.tower-21.messagelabs.com!1338989948!19039253!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDExMjA=\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 26091 invoked from network); 6 Jun 2012 13:39:09 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-6.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
+       6 Jun 2012 13:39:09 -0000
+X-IronPort-AV: E=Sophos;i="4.75,724,1330905600"; d="scan'208";a="12860000"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       06 Jun 2012 13:39:08 +0000
+Received: from sstabellini-Precision-WorkStation-T3500.local (10.80.238.169)
+       by smtprelay.citrix.com (10.30.203.162) with Microsoft SMTP Server id
+       8.3.213.0; Wed, 6 Jun 2012 14:39:08 +0100
+Date: Wed, 6 Jun 2012 14:39:02 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-X-Sender: sstabellini@kaball.uk.xensource.com
+To: Ian Campbell <ian.campbell@citrix.com>
+In-Reply-To: <1338565207-2888-7-git-send-email-ian.campbell@citrix.com>
+Message-ID: <alpine.DEB.2.02.1206061438560.6030@kaball.uk.xensource.com>
+References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
+       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+       <1338565207-2888-7-git-send-email-ian.campbell@citrix.com>
+User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 07/38] arm: hook up domctl and memory_op
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Fri, 1 Jun 2012, Ian Campbell wrote:
+> Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+
+
+Acked-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+
+>  xen/arch/arm/traps.c |    2 ++
+>  1 files changed, 2 insertions(+), 0 deletions(-)
+> 
+> diff --git a/xen/arch/arm/traps.c b/xen/arch/arm/traps.c
+> index 5ed754f..5d8b7f9 100644
+> --- a/xen/arch/arm/traps.c
+> +++ b/xen/arch/arm/traps.c
+> @@ -373,6 +373,8 @@ typedef unsigned long arm_hypercall_t(
+>      [ __HYPERVISOR_ ## x ] = (arm_hypercall_t *) do_ ## x
+>  
+>  static arm_hypercall_t *arm_hypercall_table[] = {
+> +    HYPERCALL(memory_op),
+> +    HYPERCALL(domctl),
+>      HYPERCALL(arch_0),
+>      HYPERCALL(sched_op),
+>      HYPERCALL(console_io),
+> -- 
+> 1.7.9.1
+> 
+> 
+> _______________________________________________
+> Xen-devel mailing list
+> Xen-devel@lists.xen.org
+> http://lists.xen.org/xen-devel
+> 
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<alpine.DEB.2.02.1206061443300.6030@kaball.uk.xensource.com> b/config/examples/test/corpus/<alpine.DEB.2.02.1206061443300.6030@kaball.uk.xensource.com>
new file mode 100644 (file)
index 0000000..0aedbbe
--- /dev/null
@@ -0,0 +1,237 @@
+From xen-devel-bounces@lists.xen.org Wed Jun 06 14:51:44 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 06 Jun 2012 14:51:44 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1ScGe5-000336-4B
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 06 Jun 2012 14:51:44 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1ScGaP-00014f-L7; Wed, 06 Jun 2012 13:47:45 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1ScGaO-00014N-6d
+       for xen-devel@lists.xen.org; Wed, 06 Jun 2012 13:47:44 +0000
+Received: from [85.158.143.35:25532] by server-2.bemta-4.messagelabs.com id
+       82/3A-17938-F7F5FCF4; Wed, 06 Jun 2012 13:47:43 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-5.tower-21.messagelabs.com!1338990458!7336433!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDExMjA=\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 16920 invoked from network); 6 Jun 2012 13:47:42 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-5.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
+       6 Jun 2012 13:47:42 -0000
+X-IronPort-AV: E=Sophos;i="4.75,724,1330905600"; d="scan'208";a="12860206"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       06 Jun 2012 13:46:40 +0000
+Received: from sstabellini-Precision-WorkStation-T3500.local (10.80.238.169)
+       by smtprelay.citrix.com (10.30.203.162) with Microsoft SMTP Server id
+       8.3.213.0; Wed, 6 Jun 2012 14:46:40 +0100
+Date: Wed, 6 Jun 2012 14:46:33 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-X-Sender: sstabellini@kaball.uk.xensource.com
+To: Ian Campbell <ian.campbell@citrix.com>
+In-Reply-To: <1338565207-2888-8-git-send-email-ian.campbell@citrix.com>
+Message-ID: <alpine.DEB.2.02.1206061443300.6030@kaball.uk.xensource.com>
+References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
+       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+       <1338565207-2888-8-git-send-email-ian.campbell@citrix.com>
+User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 08/38] arm: allocate and setup a guest vcpu.
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Fri, 1 Jun 2012, Ian Campbell wrote:
+> Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+> ---
+>  xen/arch/arm/domain.c         |   68 +++++++++++++++++++++++++++++++++++++++++
+>  xen/arch/arm/dummy.S          |    3 --
+>  xen/include/public/arch-arm.h |    9 -----
+>  3 files changed, 68 insertions(+), 12 deletions(-)
+> 
+> diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
+> index 9339a11..62a2f3a 100644
+> --- a/xen/arch/arm/domain.c
+> +++ b/xen/arch/arm/domain.c
+> @@ -144,6 +144,17 @@ void free_vcpu_struct(struct vcpu *v)
+>      free_xenheap_page(v);
+>  }
+>  
+> +struct vcpu_guest_context *alloc_vcpu_guest_context(void)
+> +{
+> +    return xmalloc(struct vcpu_guest_context);
+> +
+> +}
+> +
+> +void free_vcpu_guest_context(struct vcpu_guest_context *vgc)
+> +{
+> +    xfree(vgc);
+> +}
+> +
+>  int vcpu_initialise(struct vcpu *v)
+>  {
+>      int rc = 0;
+> @@ -182,6 +193,9 @@ int arch_domain_create(struct domain *d, unsigned int domcr_flags)
+>      if ( (rc = p2m_init(d)) != 0 )
+>          goto fail;
+>  
+> +    if ( (rc = domain_vgic_init(d)) != 0 )
+> +        goto fail;
+> +
+
+there is a call to domain_vgic_init already in arch_domain_create
+
+
+>      if ( !is_idle_domain(d) )
+>      {
+>          rc = -ENOMEM;
+> @@ -212,6 +226,60 @@ void arch_domain_destroy(struct domain *d)
+>      /* domain_vgic_destroy */
+>  }
+>  
+> +static int is_guest_psr(uint32_t psr)
+> +{
+> +    switch (psr & PSR_MODE_MASK)
+> +    {
+> +    case PSR_MODE_USR:
+> +    case PSR_MODE_FIQ:
+> +    case PSR_MODE_IRQ:
+> +    case PSR_MODE_SVC:
+> +    case PSR_MODE_ABT:
+> +    case PSR_MODE_UND:
+> +    case PSR_MODE_SYS:
+> +        return 1;
+> +    case PSR_MODE_MON:
+> +    case PSR_MODE_HYP:
+> +    default:
+> +        return 0;
+> +    }
+> +}
+> +
+> +int arch_set_info_guest(
+> +    struct vcpu *v, vcpu_guest_context_u c)
+> +{
+> +    struct cpu_user_regs *regs = &c.nat->user_regs;
+> +
+> +    if ( !is_guest_psr(regs->cpsr) )
+> +        return -EINVAL;
+> +
+> +    if ( regs->spsr_svc && !is_guest_psr(regs->spsr_svc) )
+> +        return -EINVAL;
+> +    if ( regs->spsr_abt && !is_guest_psr(regs->spsr_abt) )
+> +        return -EINVAL;
+> +    if ( regs->spsr_und && !is_guest_psr(regs->spsr_und) )
+> +        return -EINVAL;
+> +    if ( regs->spsr_irq && !is_guest_psr(regs->spsr_irq) )
+> +        return -EINVAL;
+> +    if ( regs->spsr_fiq && !is_guest_psr(regs->spsr_fiq) )
+> +        return -EINVAL;
+> +
+> +    v->arch.cpu_info->guest_cpu_user_regs = *regs;
+> +
+> +    /* XXX other state:
+> +     * - SCTLR
+> +     * - TTBR0/1
+> +     * - TTBCR
+> +     */
+> +
+> +    //if ( flags & VGCF_online )
+> +        clear_bit(_VPF_down, &v->pause_flags);
+> +    //else
+> +    //    set_bit(_VPF_down, &v->pause_flags);
+> +
+> +    return 0;
+> +}
+
+Do we really need to add commented out code like this?
+Also arch_set_info_guest could benefit by a couple of lines of comments
+to explain what it is supposed to do.
+
+
+>  void arch_dump_domain_info(struct domain *d)
+>  {
+>  }
+> diff --git a/xen/arch/arm/dummy.S b/xen/arch/arm/dummy.S
+> index 016340c..3b48917 100644
+> --- a/xen/arch/arm/dummy.S
+> +++ b/xen/arch/arm/dummy.S
+> @@ -20,11 +20,8 @@ DUMMY(pirq_guest_unbind);
+>  DUMMY(pirq_set_affinity);
+>  
+>  /* VCPU */
+> -DUMMY(alloc_vcpu_guest_context);
+>  DUMMY(arch_get_info_guest);
+> -DUMMY(arch_set_info_guest);
+>  DUMMY(arch_vcpu_reset);
+> -DUMMY(free_vcpu_guest_context);
+>  DUMMY(sync_vcpu_execstate);
+>  NOP(update_vcpu_system_time);
+>  DUMMY(vcpu_show_execution_state);
+> diff --git a/xen/include/public/arch-arm.h b/xen/include/public/arch-arm.h
+> index 1b1bcf3..e439727 100644
+> --- a/xen/include/public/arch-arm.h
+> +++ b/xen/include/public/arch-arm.h
+> @@ -124,15 +124,6 @@ typedef uint32_t xen_ulong_t;
+>  
+>  struct vcpu_guest_context {
+>      struct cpu_user_regs user_regs;         /* User-level CPU registers     */
+> -    union {
+> -        uint32_t reg[16];
+> -        struct {
+> -            uint32_t __pad[12];
+> -            uint32_t sp; /* r13 */
+> -            uint32_t lr; /* r14 */
+> -            uint32_t pc; /* r15 */
+> -        };
+> -    };
+>  };
+>  typedef struct vcpu_guest_context vcpu_guest_context_t;
+>  DEFINE_XEN_GUEST_HANDLE(vcpu_guest_context_t);
+> -- 
+> 1.7.9.1
+> 
+> 
+> _______________________________________________
+> Xen-devel mailing list
+> Xen-devel@lists.xen.org
+> http://lists.xen.org/xen-devel
+> 
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<alpine.DEB.2.02.1206061446590.6030@kaball.uk.xensource.com> b/config/examples/test/corpus/<alpine.DEB.2.02.1206061446590.6030@kaball.uk.xensource.com>
new file mode 100644 (file)
index 0000000..554ac8d
--- /dev/null
@@ -0,0 +1,137 @@
+From xen-devel-bounces@lists.xen.org Wed Jun 06 14:51:38 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 06 Jun 2012 14:51:38 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1ScGe4-000335-Ic
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 06 Jun 2012 14:51:38 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1ScGaO-00014P-90; Wed, 06 Jun 2012 13:47:44 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1ScGaM-00014H-AJ
+       for xen-devel@lists.xen.org; Wed, 06 Jun 2012 13:47:42 +0000
+Received: from [85.158.143.35:25396] by server-3.bemta-4.messagelabs.com id
+       FF/7D-29237-D7F5FCF4; Wed, 06 Jun 2012 13:47:41 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-9.tower-21.messagelabs.com!1338990460!4613255!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDExMjA=\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 28954 invoked from network); 6 Jun 2012 13:47:41 -0000
+Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-9.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
+       6 Jun 2012 13:47:41 -0000
+X-IronPort-AV: E=Sophos;i="4.75,724,1330905600"; d="scan'208";a="12860214"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       06 Jun 2012 13:47:11 +0000
+Received: from sstabellini-Precision-WorkStation-T3500.local (10.80.238.169)
+       by smtprelay.citrix.com (10.30.203.162) with Microsoft SMTP Server id
+       8.3.213.0; Wed, 6 Jun 2012 14:47:11 +0100
+Date: Wed, 6 Jun 2012 14:47:05 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-X-Sender: sstabellini@kaball.uk.xensource.com
+To: Ian Campbell <ian.campbell@citrix.com>
+In-Reply-To: <1338565207-2888-9-git-send-email-ian.campbell@citrix.com>
+Message-ID: <alpine.DEB.2.02.1206061446590.6030@kaball.uk.xensource.com>
+References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
+       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+       <1338565207-2888-9-git-send-email-ian.campbell@citrix.com>
+User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 09/38] arm: print domid as part of debug trap
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Fri, 1 Jun 2012, Ian Campbell wrote:
+> Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+
+
+Acked-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+
+
+>  xen/arch/arm/traps.c |   11 ++++++-----
+>  1 files changed, 6 insertions(+), 5 deletions(-)
+> 
+> diff --git a/xen/arch/arm/traps.c b/xen/arch/arm/traps.c
+> index 5d8b7f9..40bb375 100644
+> --- a/xen/arch/arm/traps.c
+> +++ b/xen/arch/arm/traps.c
+> @@ -388,25 +388,26 @@ static arm_hypercall_t *arm_hypercall_table[] = {
+>  static void do_debug_trap(struct cpu_user_regs *regs, unsigned int code)
+>  {
+>      uint32_t reg, *r;
+> -
+> +    uint32_t domid = current->domain->domain_id;
+>      switch ( code ) {
+>      case 0xe0 ... 0xef:
+>          reg = code - 0xe0;
+>          r = &regs->r0 + reg;
+> -        printk("R%d = %#010"PRIx32" at %#010"PRIx32"\n", reg, *r, regs->pc);
+> +        printk("DOM%d: R%d = %#010"PRIx32" at %#010"PRIx32"\n",
+> +               domid, reg, *r, regs->pc);
+>          break;
+>      case 0xfd:
+> -        printk("Reached %08"PRIx32"\n", regs->pc);
+> +        printk("DOM%d: Reached %#010"PRIx32"\n", domid, regs->pc);
+>          break;
+>      case 0xfe:
+>          printk("%c", (char)(regs->r0 & 0xff));
+>          break;
+>      case 0xff:
+> -        printk("DEBUG\n");
+> +        printk("DOM%d: DEBUG\n", domid);
+>          show_execution_state(regs);
+>          break;
+>      default:
+> -        panic("Unhandled debug trap %#x\n", code);
+> +        panic("DOM%d: Unhandled debug trap %#x\n", domid, code);
+>          break;
+>      }
+>  }
+> -- 
+> 1.7.9.1
+> 
+> 
+> _______________________________________________
+> Xen-devel mailing list
+> Xen-devel@lists.xen.org
+> http://lists.xen.org/xen-devel
+> 
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<alpine.DEB.2.02.1206061447180.6030@kaball.uk.xensource.com> b/config/examples/test/corpus/<alpine.DEB.2.02.1206061447180.6030@kaball.uk.xensource.com>
new file mode 100644 (file)
index 0000000..00bb903
--- /dev/null
@@ -0,0 +1,114 @@
+From xen-devel-bounces@lists.xen.org Wed Jun 06 14:51:38 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 06 Jun 2012 14:51:38 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1ScGe4-000334-9o
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 06 Jun 2012 14:51:38 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1ScGaT-00015I-1t; Wed, 06 Jun 2012 13:47:49 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1ScGaR-00014H-0X
+       for xen-devel@lists.xen.org; Wed, 06 Jun 2012 13:47:47 +0000
+Received: from [85.158.143.35:63381] by server-3.bemta-4.messagelabs.com id
+       68/AD-29237-28F5FCF4; Wed, 06 Jun 2012 13:47:46 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-15.tower-21.messagelabs.com!1338990466!14298542!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDExMjA=\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 6651 invoked from network); 6 Jun 2012 13:47:46 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-15.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
+       6 Jun 2012 13:47:46 -0000
+X-IronPort-AV: E=Sophos;i="4.75,724,1330905600"; d="scan'208";a="12860226"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       06 Jun 2012 13:47:32 +0000
+Received: from sstabellini-Precision-WorkStation-T3500.local (10.80.238.169)
+       by smtprelay.citrix.com (10.30.203.162) with Microsoft SMTP Server id
+       8.3.213.0; Wed, 6 Jun 2012 14:47:32 +0100
+Date: Wed, 6 Jun 2012 14:47:26 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-X-Sender: sstabellini@kaball.uk.xensource.com
+To: Ian Campbell <ian.campbell@citrix.com>
+In-Reply-To: <1338565207-2888-10-git-send-email-ian.campbell@citrix.com>
+Message-ID: <alpine.DEB.2.02.1206061447180.6030@kaball.uk.xensource.com>
+References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
+       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+       <1338565207-2888-10-git-send-email-ian.campbell@citrix.com>
+User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 10/38] arm: remove unnecessarily verbose
+ print from p2m_load_VTTBR
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Fri, 1 Jun 2012, Ian Campbell wrote:
+> Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+
+
+Acked-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+
+>  xen/arch/arm/p2m.c |    2 --
+>  1 files changed, 0 insertions(+), 2 deletions(-)
+> 
+> diff --git a/xen/arch/arm/p2m.c b/xen/arch/arm/p2m.c
+> index fdbecbc..095e608 100644
+> --- a/xen/arch/arm/p2m.c
+> +++ b/xen/arch/arm/p2m.c
+> @@ -47,8 +47,6 @@ void p2m_load_VTTBR(struct domain *d)
+>  
+>      vttbr |= ((uint64_t)p2m->vmid&0xff)<<48;
+>  
+> -    printk("VTTBR dom%d = %"PRIx64"\n", d->domain_id, vttbr);
+> -
+>      WRITE_CP64(vttbr, VTTBR);
+>      isb(); /* Ensure update is visible */
+>  }
+> -- 
+> 1.7.9.1
+> 
+> 
+> _______________________________________________
+> Xen-devel mailing list
+> Xen-devel@lists.xen.org
+> http://lists.xen.org/xen-devel
+> 
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<alpine.DEB.2.02.1206061452530.6030@kaball.uk.xensource.com> b/config/examples/test/corpus/<alpine.DEB.2.02.1206061452530.6030@kaball.uk.xensource.com>
new file mode 100644 (file)
index 0000000..928c924
--- /dev/null
@@ -0,0 +1,224 @@
+From xen-devel-bounces@lists.xen.org Wed Jun 06 15:06:12 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 06 Jun 2012 15:06:12 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1ScGs9-00037F-Uu
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 06 Jun 2012 15:06:12 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1ScGod-0002AD-MQ; Wed, 06 Jun 2012 14:02:27 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1ScGoc-00029v-10
+       for xen-devel@lists.xen.org; Wed, 06 Jun 2012 14:02:26 +0000
+Received: from [85.158.138.51:19110] by server-1.bemta-3.messagelabs.com id
+       E3/D2-01327-1F26FCF4; Wed, 06 Jun 2012 14:02:25 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-5.tower-174.messagelabs.com!1338991344!31156714!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDExMjA=\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 28044 invoked from network); 6 Jun 2012 14:02:24 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-5.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
+       6 Jun 2012 14:02:24 -0000
+X-IronPort-AV: E=Sophos;i="4.75,724,1330905600"; d="scan'208";a="12860619"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       06 Jun 2012 14:01:37 +0000
+Received: from sstabellini-Precision-WorkStation-T3500.local (10.80.238.169)
+       by smtprelay.citrix.com (10.30.203.162) with Microsoft SMTP Server id
+       8.3.213.0; Wed, 6 Jun 2012 15:01:37 +0100
+Date: Wed, 6 Jun 2012 15:01:31 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-X-Sender: sstabellini@kaball.uk.xensource.com
+To: Ian Campbell <ian.campbell@citrix.com>
+In-Reply-To: <1338565207-2888-11-git-send-email-ian.campbell@citrix.com>
+Message-ID: <alpine.DEB.2.02.1206061452530.6030@kaball.uk.xensource.com>
+References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
+       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+       <1338565207-2888-11-git-send-email-ian.campbell@citrix.com>
+User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 11/38] arm: implement p2m lookup
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Fri, 1 Jun 2012, Ian Campbell wrote:
+> Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+> ---
+>  xen/arch/arm/p2m.c        |   71 ++++++++++++++++++++++++++++++++++++++++++--
+>  xen/include/asm-arm/p2m.h |    3 ++
+>  2 files changed, 70 insertions(+), 4 deletions(-)
+> 
+> diff --git a/xen/arch/arm/p2m.c b/xen/arch/arm/p2m.c
+> index 095e608..9b40e93 100644
+> --- a/xen/arch/arm/p2m.c
+> +++ b/xen/arch/arm/p2m.c
+> @@ -10,10 +10,20 @@ void dump_p2m_lookup(struct domain *d, paddr_t addr)
+>      struct p2m_domain *p2m = &d->arch.p2m;
+>      lpae_t *first = NULL, *second = NULL, *third = NULL;
+>  
+> -    printk("dom%d IPA %#016llx\n", d->domain_id, addr);
+> +    printk("dom%d IPA %#"PRIpaddr"\n", d->domain_id, addr);
+> +
+> +    printk("P2M @ %p mfn:%#lx (%#03llx,%#03llx,%#03llx)\n",
+> +           p2m->first_level,
+> +           page_to_mfn(p2m->first_level),
+> +           first_table_offset(addr),
+> +           second_table_offset(addr),
+> +           third_table_offset(addr));
+> +
+> +    if ( first_table_offset(addr) >= LPAE_ENTRIES )
+> +        goto done;
+>  
+>      first = __map_domain_page(p2m->first_level);
+> -    printk("1ST[%#03llx] = %#016llx\n",
+> +    printk("1ST[%#03llx] = %#"PRIpaddr"\n",
+>             first_table_offset(addr),
+>             first[first_table_offset(addr)].bits);
+>      if ( !first[first_table_offset(addr)].p2m.valid ||
+> @@ -21,7 +31,7 @@ void dump_p2m_lookup(struct domain *d, paddr_t addr)
+>          goto done;
+>  
+>      second = map_domain_page(first[first_table_offset(addr)].p2m.base);
+> -    printk("2ND[%#03llx] = %#016llx\n",
+> +    printk("2ND[%#03llx] = %#"PRIpaddr"\n",
+>             second_table_offset(addr),
+>             second[second_table_offset(addr)].bits);
+>      if ( !second[second_table_offset(addr)].p2m.valid ||
+> @@ -29,7 +39,7 @@ void dump_p2m_lookup(struct domain *d, paddr_t addr)
+>          goto done;
+>  
+>      third = map_domain_page(second[second_table_offset(addr)].p2m.base);
+> -    printk("3RD[%#03llx] = %#016llx\n",
+> +    printk("3RD[%#03llx] = %#"PRIpaddr"\n",
+>             third_table_offset(addr),
+>             third[third_table_offset(addr)].bits);
+>  
+> @@ -51,6 +61,59 @@ void p2m_load_VTTBR(struct domain *d)
+>      isb(); /* Ensure update is visible */
+>  }
+
+there is no need to introduce p2m_lookup in the same patch you do these
+unrelated printk adjustments, correct?
+
+
+> +/*
+> + * Lookup the MFN corresponding to a domain's PFN.
+> + *
+> + * There are no processor functions to do a stage 2 only lookup therefore we
+> + * do a a software walk.
+> + */
+> +paddr_t p2m_lookup(struct domain *d, paddr_t paddr)
+> +{
+> +    struct p2m_domain *p2m = &d->arch.p2m;
+> +    lpae_t pte, *first = NULL, *second = NULL, *third = NULL;
+> +    paddr_t maddr = INVALID_PADDR;
+> +
+> +    spin_lock(&p2m->lock);
+> +
+> +    first = __map_domain_page(p2m->first_level);
+> +    if ( !first[first_table_offset(paddr)].p2m.valid )
+> +        goto done_err;
+> +    if ( !first[first_table_offset(paddr)].p2m.table )
+> +    {
+> +        pte = first[first_table_offset(paddr)];
+> +        goto done;
+> +    }
+> +
+> +    second = map_domain_page(first[first_table_offset(paddr)].p2m.base);
+> +    if ( !second[second_table_offset(paddr)].p2m.valid )
+> +        goto done_err;
+> +    if ( !second[second_table_offset(paddr)].p2m.table )
+> +    {
+> +        pte = second[second_table_offset(paddr)];
+> +        goto done;
+> +    }
+> +
+> +    third = map_domain_page(second[second_table_offset(paddr)].p2m.base);
+> +    if ( !third[third_table_offset(paddr)].p2m.valid )
+> +        goto done_err;
+> +    if ( !third[third_table_offset(paddr)].p2m.table )
+> +        goto done_err;
+> +
+> +    pte = third[third_table_offset(paddr)];
+> +
+> +done:
+> +
+> +    maddr = (pte.bits & PADDR_MASK & PAGE_MASK) | (paddr & ~PAGE_MASK);
+> +done_err:
+> +    if (third) unmap_domain_page(third);
+> +    if (second) unmap_domain_page(second);
+> +    if (first) unmap_domain_page(first);
+> +
+> +    spin_unlock(&p2m->lock);
+> +
+> +    return maddr;
+> +}
+> +
+
+this function looks correct though
+
+>  int guest_physmap_mark_populate_on_demand(struct domain *d,
+>                                            unsigned long gfn,
+>                                            unsigned int order)
+> diff --git a/xen/include/asm-arm/p2m.h b/xen/include/asm-arm/p2m.h
+> index 349923a..1afd5cb 100644
+> --- a/xen/include/asm-arm/p2m.h
+> +++ b/xen/include/asm-arm/p2m.h
+> @@ -32,6 +32,9 @@ int p2m_alloc_table(struct domain *d);
+>  /* */
+>  void p2m_load_VTTBR(struct domain *d);
+>  
+> +/* */
+> +paddr_t p2m_lookup(struct domain *d, paddr_t gpfn);
+> +
+>  /* Setup p2m RAM mapping for domain d from start-end. */
+>  int p2m_populate_ram(struct domain *d, paddr_t start, paddr_t end);
+>  /* Map MMIO regions in the p2m: start_gaddr and end_gaddr is the range
+> -- 
+> 1.7.9.1
+> 
+> 
+> _______________________________________________
+> Xen-devel mailing list
+> Xen-devel@lists.xen.org
+> http://lists.xen.org/xen-devel
+> 
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<alpine.DEB.2.02.1206061613210.6030@kaball.uk.xensource.com> b/config/examples/test/corpus/<alpine.DEB.2.02.1206061613210.6030@kaball.uk.xensource.com>
new file mode 100644 (file)
index 0000000..fa6bdf8
--- /dev/null
@@ -0,0 +1,118 @@
+From xen-devel-bounces@lists.xen.org Wed Jun 06 16:19:07 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 06 Jun 2012 16:19:07 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1ScI0j-0003SA-LI
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 06 Jun 2012 16:19:06 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1ScHvh-0005eJ-DM; Wed, 06 Jun 2012 15:13:49 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1ScHvf-0005eB-1F
+       for xen-devel@lists.xen.org; Wed, 06 Jun 2012 15:13:47 +0000
+Received: from [85.158.143.35:50818] by server-2.bemta-4.messagelabs.com id
+       39/F9-17938-AA37FCF4; Wed, 06 Jun 2012 15:13:46 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-2.tower-21.messagelabs.com!1338995625!8147596!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDExMjA=\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 30803 invoked from network); 6 Jun 2012 15:13:46 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-2.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
+       6 Jun 2012 15:13:46 -0000
+X-IronPort-AV: E=Sophos;i="4.75,724,1330905600"; d="scan'208";a="12862564"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       06 Jun 2012 15:13:45 +0000
+Received: from sstabellini-Precision-WorkStation-T3500.local (10.80.238.169)
+       by smtprelay.citrix.com (10.30.203.162) with Microsoft SMTP Server id
+       8.3.213.0; Wed, 6 Jun 2012 16:13:45 +0100
+Date: Wed, 6 Jun 2012 16:13:38 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-X-Sender: sstabellini@kaball.uk.xensource.com
+To: Ian Campbell <ian.campbell@citrix.com>
+In-Reply-To: <1338565207-2888-12-git-send-email-ian.campbell@citrix.com>
+Message-ID: <alpine.DEB.2.02.1206061613210.6030@kaball.uk.xensource.com>
+References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
+       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+       <1338565207-2888-12-git-send-email-ian.campbell@citrix.com>
+User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 12/38] arm: remove hard tabs from
+ init_idle_domain
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Fri, 1 Jun 2012, Ian Campbell wrote:
+> Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+
+
+Acked-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+
+>  xen/arch/arm/setup.c |    6 +++---
+>  1 files changed, 3 insertions(+), 3 deletions(-)
+> 
+> diff --git a/xen/arch/arm/setup.c b/xen/arch/arm/setup.c
+> index 0df3c1a..81ababb 100644
+> --- a/xen/arch/arm/setup.c
+> +++ b/xen/arch/arm/setup.c
+> @@ -47,9 +47,9 @@ static __attribute_used__ void init_done(void)
+>  
+>  static void __init init_idle_domain(void)
+>  {
+> -        scheduler_init();
+> -        set_current(idle_vcpu[0]);
+> -        /* TODO: setup_idle_pagetable(); */
+> +    scheduler_init();
+> +    set_current(idle_vcpu[0]);
+> +    /* TODO: setup_idle_pagetable(); */
+>  }
+>  
+>  static void __init processor_id(void)
+> -- 
+> 1.7.9.1
+> 
+> 
+> _______________________________________________
+> Xen-devel mailing list
+> Xen-devel@lists.xen.org
+> http://lists.xen.org/xen-devel
+> 
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<alpine.DEB.2.02.1206061615110.6030@kaball.uk.xensource.com> b/config/examples/test/corpus/<alpine.DEB.2.02.1206061615110.6030@kaball.uk.xensource.com>
new file mode 100644 (file)
index 0000000..17087eb
--- /dev/null
@@ -0,0 +1,130 @@
+From xen-devel-bounces@lists.xen.org Wed Jun 06 16:19:11 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 06 Jun 2012 16:19:11 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1ScI0q-0003SS-M1
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 06 Jun 2012 16:19:11 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1ScHxK-0005iM-T7; Wed, 06 Jun 2012 15:15:30 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1ScHxJ-0005iG-5D
+       for xen-devel@lists.xen.org; Wed, 06 Jun 2012 15:15:29 +0000
+Received: from [85.158.139.83:56085] by server-3.bemta-5.messagelabs.com id
+       85/81-17554-0147FCF4; Wed, 06 Jun 2012 15:15:28 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-8.tower-182.messagelabs.com!1338995727!18452879!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDExMjA=\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 8452 invoked from network); 6 Jun 2012 15:15:28 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-8.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
+       6 Jun 2012 15:15:28 -0000
+X-IronPort-AV: E=Sophos;i="4.75,724,1330905600"; d="scan'208";a="12862611"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       06 Jun 2012 15:15:27 +0000
+Received: from sstabellini-Precision-WorkStation-T3500.local (10.80.238.169)
+       by smtprelay.citrix.com (10.30.203.162) with Microsoft SMTP Server id
+       8.3.213.0; Wed, 6 Jun 2012 16:15:27 +0100
+Date: Wed, 6 Jun 2012 16:15:21 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-X-Sender: sstabellini@kaball.uk.xensource.com
+To: Ian Campbell <ian.campbell@citrix.com>
+In-Reply-To: <1338565207-2888-13-git-send-email-ian.campbell@citrix.com>
+Message-ID: <alpine.DEB.2.02.1206061615110.6030@kaball.uk.xensource.com>
+References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
+       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+       <1338565207-2888-13-git-send-email-ian.campbell@citrix.com>
+User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 13/38] arm: stub out sync_vcpu_execstate
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Fri, 1 Jun 2012, Ian Campbell wrote:
+> We don't do lazy exec state switching so there isn't actually anything to do.
+> 
+> Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+
+Acked-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+
+>  xen/arch/arm/domain.c |    5 +++++
+>  xen/arch/arm/dummy.S  |    1 -
+>  2 files changed, 5 insertions(+), 1 deletions(-)
+> 
+> diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
+> index 62a2f3a..bd900f9 100644
+> --- a/xen/arch/arm/domain.c
+> +++ b/xen/arch/arm/domain.c
+> @@ -96,6 +96,11 @@ void sync_local_execstate(void)
+>      /* Nothing to do -- no lazy switching */
+>  }
+>  
+> +void sync_vcpu_execstate(struct vcpu *v)
+> +{
+> +    /* Nothing to do -- no lazy switching */
+> +}
+> +
+>  void startup_cpu_idle_loop(void)
+>  {
+>      struct vcpu *v = current;
+> diff --git a/xen/arch/arm/dummy.S b/xen/arch/arm/dummy.S
+> index 3b48917..8eddd15 100644
+> --- a/xen/arch/arm/dummy.S
+> +++ b/xen/arch/arm/dummy.S
+> @@ -22,7 +22,6 @@ DUMMY(pirq_set_affinity);
+>  /* VCPU */
+>  DUMMY(arch_get_info_guest);
+>  DUMMY(arch_vcpu_reset);
+> -DUMMY(sync_vcpu_execstate);
+>  NOP(update_vcpu_system_time);
+>  DUMMY(vcpu_show_execution_state);
+>  
+> -- 
+> 1.7.9.1
+> 
+> 
+> _______________________________________________
+> Xen-devel mailing list
+> Xen-devel@lists.xen.org
+> http://lists.xen.org/xen-devel
+> 
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<alpine.DEB.2.02.1206061620040.6030@kaball.uk.xensource.com> b/config/examples/test/corpus/<alpine.DEB.2.02.1206061620040.6030@kaball.uk.xensource.com>
new file mode 100644 (file)
index 0000000..132457a
--- /dev/null
@@ -0,0 +1,129 @@
+From xen-devel-bounces@lists.xen.org Wed Jun 06 16:23:59 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 06 Jun 2012 16:23:59 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1ScI5V-0003UK-AN
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 06 Jun 2012 16:23:59 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1ScI2D-0005yA-0i; Wed, 06 Jun 2012 15:20:33 +0000
+Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1ScI2B-0005xx-E9
+       for xen-devel@lists.xen.org; Wed, 06 Jun 2012 15:20:31 +0000
+Received: from [193.109.254.147:11493] by server-7.bemta-14.messagelabs.com id
+       28/F9-29165-E357FCF4; Wed, 06 Jun 2012 15:20:30 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-16.tower-27.messagelabs.com!1338996022!12905102!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDExMjA=\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 792 invoked from network); 6 Jun 2012 15:20:23 -0000
+Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-16.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
+       6 Jun 2012 15:20:23 -0000
+X-IronPort-AV: E=Sophos;i="4.75,724,1330905600"; d="scan'208";a="12862716"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       06 Jun 2012 15:20:22 +0000
+Received: from sstabellini-Precision-WorkStation-T3500.local (10.80.238.169)
+       by smtprelay.citrix.com (10.30.203.162) with Microsoft SMTP Server id
+       8.3.213.0; Wed, 6 Jun 2012 16:20:22 +0100
+Date: Wed, 6 Jun 2012 16:20:16 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-X-Sender: sstabellini@kaball.uk.xensource.com
+To: Ian Campbell <Ian.Campbell@citrix.com>
+In-Reply-To: <1338995969.32319.139.camel@zakaz.uk.xensource.com>
+Message-ID: <alpine.DEB.2.02.1206061620040.6030@kaball.uk.xensource.com>
+References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
+       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+       <1338565207-2888-19-git-send-email-ian.campbell@citrix.com>
+       <alpine.DEB.2.02.1206051810270.6030@kaball.uk.xensource.com>
+       <1338995969.32319.139.camel@zakaz.uk.xensource.com>
+User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 19/38] arm: context switch a bunch of guest
+ state.
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Wed, 6 Jun 2012, Ian Campbell wrote:
+> On Tue, 2012-06-05 at 18:11 +0100, Stefano Stabellini wrote:
+> > On Fri, 1 Jun 2012, Ian Campbell wrote:
+> > > diff --git a/xen/arch/arm/gic.c b/xen/arch/arm/gic.c
+> > > index 1a2b95f..339c327 100644
+> > > --- a/xen/arch/arm/gic.c
+> > > +++ b/xen/arch/arm/gic.c
+> > > @@ -61,6 +61,30 @@ static struct {
+> > >  irq_desc_t irq_desc[NR_IRQS];
+> > >  unsigned nr_lrs;
+> > > 
+> > > +void gic_save_state(struct vcpu *v)
+> > > +{
+> > > +    int i;
+> > > +
+> > > +    for ( i=0; i<nr_lrs; i++)
+> > > +        v->arch.gic_lr[i] = GICH[GICH_LR + i];
+> > > +    /* Disable until next VCPU scheduled */
+> > > +    GICH[GICH_HCR] = 0;
+> > > +    isb();
+> > > +}
+> > > +
+> > > +void gic_restore_state(struct vcpu *v)
+> > > +{
+> > > +    int i;
+> > > +
+> > > +    if ( is_idle_vcpu(v) )
+> > > +        return;
+> > > +
+> > > +    for ( i=0; i<nr_lrs; i++)
+> > > +        GICH[GICH_LR + i] = v->arch.gic_lr[i];
+> > > +    GICH[GICH_HCR] = GICH_HCR_EN;
+> > > +    isb();
+> > > +}
+> > > +
+> > 
+> > it is still missing a bunch of stuff from the gic state but it is a step
+> > in the right direction, so I'll send out patches to complete the gic
+> > context switch separately, based on this one.
+> 
+> Can I take this as an Ack for this patch for what it does?
+
+yes
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<alpine.DEB.2.02.1206061623240.6030@kaball.uk.xensource.com> b/config/examples/test/corpus/<alpine.DEB.2.02.1206061623240.6030@kaball.uk.xensource.com>
new file mode 100644 (file)
index 0000000..1c8368d
--- /dev/null
@@ -0,0 +1,144 @@
+From xen-devel-bounces@lists.xen.org Wed Jun 06 16:31:06 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 06 Jun 2012 16:31:06 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1ScICK-0003Vy-Ee
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 06 Jun 2012 16:31:06 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1ScI86-0006C2-QF; Wed, 06 Jun 2012 15:26:38 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1ScI85-0006Bx-Gm
+       for xen-devel@lists.xen.org; Wed, 06 Jun 2012 15:26:37 +0000
+Received: from [85.158.143.35:30057] by server-2.bemta-4.messagelabs.com id
+       07/EC-17938-CA67FCF4; Wed, 06 Jun 2012 15:26:36 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-14.tower-21.messagelabs.com!1338996392!19140032!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDExMjA=\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 12678 invoked from network); 6 Jun 2012 15:26:32 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-14.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
+       6 Jun 2012 15:26:32 -0000
+X-IronPort-AV: E=Sophos;i="4.75,724,1330905600"; d="scan'208";a="12862831"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       06 Jun 2012 15:26:31 +0000
+Received: from sstabellini-Precision-WorkStation-T3500.local (10.80.238.169)
+       by smtprelay.citrix.com (10.30.203.162) with Microsoft SMTP Server id
+       8.3.213.0; Wed, 6 Jun 2012 16:26:31 +0100
+Date: Wed, 6 Jun 2012 16:26:25 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-X-Sender: sstabellini@kaball.uk.xensource.com
+To: Ian Campbell <ian.campbell@citrix.com>
+In-Reply-To: <1338565207-2888-14-git-send-email-ian.campbell@citrix.com>
+Message-ID: <alpine.DEB.2.02.1206061623240.6030@kaball.uk.xensource.com>
+References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
+       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+       <1338565207-2888-14-git-send-email-ian.campbell@citrix.com>
+User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 14/38] arm: do not set max_vcpus = 8 in
+ arch_domain_create.
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Fri, 1 Jun 2012, Ian Campbell wrote:
+> XEN_DOMCTL_max_vcpus cannot reduce max_vcpus and therefore we can't create a
+> smaller guest.
+> 
+> The limit of 8 (due to GIC limits) should be expressed elsewhere, likely in
+> MAX_VIRT_CPUS -- but making that change caused:
+
+Are you sure? I made that change and I didn't see the error.
+I think this patch should set MAX_VIRT_CPUS to 8 as well as removing
+max_vcpus = 8.
+
+
+>     (XEN) Unexpected Trap: Data Abort
+>     (XEN) ----[ Xen-4.2-unstable  x86_64  debug=y  Not tainted ]----
+>     (XEN) CPU:    0
+>     (XEN) PC:     00222e48 _spin_lock+0x28/0x6c
+>     (XEN) CPSR:   600001da MODE:HYP
+>     (XEN)      R0: 002c4389 R1: 800001da R2: 00000001 R3: 0000ffff
+>     (XEN)      R4: 002c4381 R5: 00000080 R6: 002c4380 R7: 002c4000
+>     (XEN)      R8: 002c4380 R9: 4000015a R10:00000080 R11:40017d6c R12:00000000
+>     (XEN)      SP: 40017d5c LR: 00222e34
+>     (XEN)
+>     [...]
+>     (XEN) Xen call trace:
+>     (XEN)    [<00222e48>] _spin_lock+0x28/0x6c
+>     (XEN)    [<0022623c>] init_timer+0xbc/0x160
+>     (XEN)    [<0021fbdc>] sched_init_vcpu+0x94/0x200
+>     (XEN)    [<002061a4>] alloc_vcpu+0x124/0x210
+>     (XEN)    [<00204890>] do_domctl+0xaa4/0x14e4
+>     (XEN)    [<00241ab8>] do_trap_hypervisor+0x588/0x8cc
+>     (XEN)    [<0023bbb0>] return_from_trap+0x0/0x4
+> 
+> so punt on that for now.
+> 
+> Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+> ---
+>  xen/arch/arm/domain.c |    2 --
+>  1 files changed, 0 insertions(+), 2 deletions(-)
+> 
+> diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
+> index bd900f9..e867cb2 100644
+> --- a/xen/arch/arm/domain.c
+> +++ b/xen/arch/arm/domain.c
+> @@ -215,8 +215,6 @@ int arch_domain_create(struct domain *d, unsigned int domcr_flags)
+>              goto fail;
+>      }
+>  
+> -    d->max_vcpus = 8;
+> -
+>      if ( (rc = domain_vgic_init(d)) != 0 )
+>          goto fail;
+>  
+> -- 
+> 1.7.9.1
+> 
+> 
+> _______________________________________________
+> Xen-devel mailing list
+> Xen-devel@lists.xen.org
+> http://lists.xen.org/xen-devel
+> 
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<alpine.DEB.2.02.1206061627380.6030@kaball.uk.xensource.com> b/config/examples/test/corpus/<alpine.DEB.2.02.1206061627380.6030@kaball.uk.xensource.com>
new file mode 100644 (file)
index 0000000..eb687ad
--- /dev/null
@@ -0,0 +1,132 @@
+From xen-devel-bounces@lists.xen.org Wed Jun 06 16:31:45 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 06 Jun 2012 16:31:45 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1ScICx-0003WN-93
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 06 Jun 2012 16:31:44 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1ScI9Q-0006Fv-8e; Wed, 06 Jun 2012 15:28:00 +0000
+Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1ScI9O-0006Fm-Oh
+       for xen-devel@lists.xen.org; Wed, 06 Jun 2012 15:27:58 +0000
+Received: from [193.109.254.147:57454] by server-7.bemta-14.messagelabs.com id
+       17/41-29165-EF67FCF4; Wed, 06 Jun 2012 15:27:58 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-15.tower-27.messagelabs.com!1338996477!6251332!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDExMjA=\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 17829 invoked from network); 6 Jun 2012 15:27:57 -0000
+Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-15.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
+       6 Jun 2012 15:27:57 -0000
+X-IronPort-AV: E=Sophos;i="4.75,724,1330905600"; d="scan'208";a="12862863"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       06 Jun 2012 15:27:57 +0000
+Received: from sstabellini-Precision-WorkStation-T3500.local (10.80.238.169)
+       by smtprelay.citrix.com (10.30.203.162) with Microsoft SMTP Server id
+       8.3.213.0; Wed, 6 Jun 2012 16:27:57 +0100
+Date: Wed, 6 Jun 2012 16:27:50 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-X-Sender: sstabellini@kaball.uk.xensource.com
+To: Ian Campbell <ian.campbell@citrix.com>
+In-Reply-To: <1338565207-2888-15-git-send-email-ian.campbell@citrix.com>
+Message-ID: <alpine.DEB.2.02.1206061627380.6030@kaball.uk.xensource.com>
+References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
+       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+       <1338565207-2888-15-git-send-email-ian.campbell@citrix.com>
+User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 15/38] arm: implement stub version of
+ flush_tlb_mask.
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Fri, 1 Jun 2012, Ian Campbell wrote:
+> Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+
+Acked-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+
+>  xen/arch/arm/dummy.S |    1 -
+>  xen/arch/arm/smp.c   |    9 +++++++++
+>  2 files changed, 9 insertions(+), 1 deletions(-)
+> 
+> diff --git a/xen/arch/arm/dummy.S b/xen/arch/arm/dummy.S
+> index 8eddd15..c001e8d 100644
+> --- a/xen/arch/arm/dummy.S
+> +++ b/xen/arch/arm/dummy.S
+> @@ -48,7 +48,6 @@ DUMMY(domain_get_maximum_gpfn);
+>  DUMMY(domain_relinquish_resources);
+>  DUMMY(domain_set_time_offset);
+>  DUMMY(dom_cow);
+> -DUMMY(flush_tlb_mask);
+>  DUMMY(gmfn_to_mfn);
+>  DUMMY(hypercall_create_continuation);
+>  DUMMY(send_timer_event);
+> diff --git a/xen/arch/arm/smp.c b/xen/arch/arm/smp.c
+> index cad84f5..824c8c8 100644
+> --- a/xen/arch/arm/smp.c
+> +++ b/xen/arch/arm/smp.c
+> @@ -1,5 +1,14 @@
+>  #include <xen/config.h>
+> +#include <asm/system.h>
+>  #include <asm/smp.h>
+> +#include <asm/cpregs.h>
+> +#include <asm/page.h>
+> +
+> +void flush_tlb_mask(const cpumask_t *mask)
+> +{
+> +    /* XXX IPI other processors */
+> +    flush_xen_data_tlb();
+> +}
+>  
+>  void smp_call_function(
+>      void (*func) (void *info),
+> -- 
+> 1.7.9.1
+> 
+> 
+> _______________________________________________
+> Xen-devel mailing list
+> Xen-devel@lists.xen.org
+> http://lists.xen.org/xen-devel
+> 
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<alpine.DEB.2.02.1206061713410.6030@kaball.uk.xensource.com> b/config/examples/test/corpus/<alpine.DEB.2.02.1206061713410.6030@kaball.uk.xensource.com>
new file mode 100644 (file)
index 0000000..b19bdb6
--- /dev/null
@@ -0,0 +1,150 @@
+From xen-devel-bounces@lists.xen.org Wed Jun 06 17:17:38 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 06 Jun 2012 17:17:38 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1ScIvQ-0003im-Bj
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 06 Jun 2012 17:17:38 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1ScIrx-0000Yq-JI; Wed, 06 Jun 2012 16:14:01 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1ScIrw-0000Yh-6D
+       for xen-devel@lists.xen.org; Wed, 06 Jun 2012 16:14:00 +0000
+Received: from [85.158.143.35:8295] by server-1.bemta-4.messagelabs.com id
+       9E/09-10042-7C18FCF4; Wed, 06 Jun 2012 16:13:59 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-6.tower-21.messagelabs.com!1338999238!19066721!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDExMjA=\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 22818 invoked from network); 6 Jun 2012 16:13:59 -0000
+Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-6.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
+       6 Jun 2012 16:13:59 -0000
+X-IronPort-AV: E=Sophos;i="4.75,725,1330905600"; d="scan'208";a="12863982"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       06 Jun 2012 16:13:58 +0000
+Received: from sstabellini-Precision-WorkStation-T3500.local (10.80.238.169)
+       by smtprelay.citrix.com (10.30.203.162) with Microsoft SMTP Server id
+       8.3.213.0; Wed, 6 Jun 2012 17:13:59 +0100
+Date: Wed, 6 Jun 2012 17:13:52 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-X-Sender: sstabellini@kaball.uk.xensource.com
+To: Ian Campbell <ian.campbell@citrix.com>
+In-Reply-To: <1338565207-2888-16-git-send-email-ian.campbell@citrix.com>
+Message-ID: <alpine.DEB.2.02.1206061713410.6030@kaball.uk.xensource.com>
+References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
+       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+       <1338565207-2888-16-git-send-email-ian.campbell@citrix.com>
+User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 16/38] arm: Add simple cpu_{sibling,
+ core}_mask
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Fri, 1 Jun 2012, Ian Campbell wrote:
+> Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+
+
+Acked-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+
+>  xen/arch/arm/dummy.S   |    2 --
+>  xen/arch/arm/setup.c   |    7 +++++++
+>  xen/arch/arm/smpboot.c |    5 +++++
+>  3 files changed, 12 insertions(+), 2 deletions(-)
+> 
+> diff --git a/xen/arch/arm/dummy.S b/xen/arch/arm/dummy.S
+> index c001e8d..03f7489 100644
+> --- a/xen/arch/arm/dummy.S
+> +++ b/xen/arch/arm/dummy.S
+> @@ -7,8 +7,6 @@ x:   .word 0xe7f000f0 /* Undefined instruction */
+>  x:  mov pc, lr
+>      
+>  /* SMP support */
+> -DUMMY(per_cpu__cpu_core_mask);
+> -DUMMY(per_cpu__cpu_sibling_mask);
+>  DUMMY(node_online_map);
+>  DUMMY(smp_send_state_dump);
+>  
+> diff --git a/xen/arch/arm/setup.c b/xen/arch/arm/setup.c
+> index 81ababb..b0cfacc 100644
+> --- a/xen/arch/arm/setup.c
+> +++ b/xen/arch/arm/setup.c
+> @@ -230,6 +230,13 @@ void __init start_xen(unsigned long boot_phys_offset,
+>          }
+>      }
+>  
+> +    if ( !zalloc_cpumask_var(&per_cpu(cpu_sibling_mask, 0)) ||
+> +         !zalloc_cpumask_var(&per_cpu(cpu_core_mask, 0)) )
+> +        BUG();
+> +
+> +    cpumask_clear(per_cpu(cpu_sibling_mask, 0));
+> +    cpumask_clear(per_cpu(cpu_core_mask, 0));
+> +
+>      printk("Brought up %ld CPUs\n", (long)num_online_cpus());
+>      /* TODO: smp_cpus_done(); */
+>  
+> diff --git a/xen/arch/arm/smpboot.c b/xen/arch/arm/smpboot.c
+> index ea05afc..8517d86 100644
+> --- a/xen/arch/arm/smpboot.c
+> +++ b/xen/arch/arm/smpboot.c
+> @@ -52,6 +52,11 @@ unsigned long __initdata ready_cpus = 0;
+>  
+>  /* ID of the PCPU we're running on */
+>  DEFINE_PER_CPU(unsigned int, cpu_id);
+> +/* XXX these seem awefully x86ish... */
+> +/* representing HT siblings of each logical CPU */
+> +DEFINE_PER_CPU_READ_MOSTLY(cpumask_var_t, cpu_sibling_mask);
+> +/* representing HT and core siblings of each logical CPU */
+> +DEFINE_PER_CPU_READ_MOSTLY(cpumask_var_t, cpu_core_mask);
+>  
+>  void __init
+>  smp_prepare_cpus (unsigned int max_cpus)
+> -- 
+> 1.7.9.1
+> 
+> 
+> _______________________________________________
+> Xen-devel mailing list
+> Xen-devel@lists.xen.org
+> http://lists.xen.org/xen-devel
+> 
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<alpine.DEB.2.02.1206061725020.6030@kaball.uk.xensource.com> b/config/examples/test/corpus/<alpine.DEB.2.02.1206061725020.6030@kaball.uk.xensource.com>
new file mode 100644 (file)
index 0000000..542f64c
--- /dev/null
@@ -0,0 +1,194 @@
+From xen-devel-bounces@lists.xen.org Wed Jun 06 17:32:58 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 06 Jun 2012 17:32:58 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1ScJAF-0003mw-TS
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 06 Jun 2012 17:32:58 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1ScJ58-0000ze-9c; Wed, 06 Jun 2012 16:27:38 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1ScJ56-0000zY-BM
+       for xen-devel@lists.xen.org; Wed, 06 Jun 2012 16:27:36 +0000
+Received: from [85.158.143.35:51423] by server-2.bemta-4.messagelabs.com id
+       BB/8E-17938-7F48FCF4; Wed, 06 Jun 2012 16:27:35 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-4.tower-21.messagelabs.com!1339000055!8664610!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDExMjA=\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 27494 invoked from network); 6 Jun 2012 16:27:35 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-4.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
+       6 Jun 2012 16:27:35 -0000
+X-IronPort-AV: E=Sophos;i="4.75,725,1330905600"; d="scan'208";a="12864315"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       06 Jun 2012 16:27:32 +0000
+Received: from sstabellini-Precision-WorkStation-T3500.local (10.80.238.169)
+       by smtprelay.citrix.com (10.30.203.162) with Microsoft SMTP Server id
+       8.3.213.0; Wed, 6 Jun 2012 17:27:32 +0100
+Date: Wed, 6 Jun 2012 17:27:25 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-X-Sender: sstabellini@kaball.uk.xensource.com
+To: Ian Campbell <ian.campbell@citrix.com>
+In-Reply-To: <1338565207-2888-17-git-send-email-ian.campbell@citrix.com>
+Message-ID: <alpine.DEB.2.02.1206061725020.6030@kaball.uk.xensource.com>
+References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
+       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+       <1338565207-2888-17-git-send-email-ian.campbell@citrix.com>
+User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 17/38] arm: allow p2m to be created with
+ specific MATTR.
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Fri, 1 Jun 2012, Ian Campbell wrote:
+> Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+> ---
+>  xen/arch/arm/p2m.c         |   15 ++++++++-------
+>  xen/include/asm-arm/page.h |    6 ++++--
+>  2 files changed, 12 insertions(+), 9 deletions(-)
+> 
+> diff --git a/xen/arch/arm/p2m.c b/xen/arch/arm/p2m.c
+> index 9b40e93..46c6f17 100644
+> --- a/xen/arch/arm/p2m.c
+> +++ b/xen/arch/arm/p2m.c
+> @@ -148,7 +148,7 @@ static int p2m_create_entry(struct domain *d,
+>      clear_page(p);
+>      unmap_domain_page(p);
+>  
+> -    pte = mfn_to_p2m_entry(page_to_mfn(page));
+> +    pte = mfn_to_p2m_entry(page_to_mfn(page), MATTR_MEM);
+>  
+>      write_pte(entry, pte);
+>  
+
+This works because p2m_create_entry is always called to create first or
+second level entries only.
+Maybe we should rename p2m_create_entry to p2m_create_table_entry for
+clarity? Or add a comment?
+
+
+> @@ -159,7 +159,8 @@ static int create_p2m_entries(struct domain *d,
+>                       int alloc,
+>                       paddr_t start_gpaddr,
+>                       paddr_t end_gpaddr,
+> -                     paddr_t maddr)
+> +                     paddr_t maddr,
+> +                     int mattr)
+>  {
+>      int rc;
+>      struct p2m_domain *p2m = &d->arch.p2m;
+> @@ -235,11 +236,11 @@ static int create_p2m_entries(struct domain *d,
+>                  goto out;
+>              }
+>  
+> -            pte = mfn_to_p2m_entry(page_to_mfn(page));
+> +            pte = mfn_to_p2m_entry(page_to_mfn(page), mattr);
+>  
+>              write_pte(&third[third_table_offset(addr)], pte);
+>          } else {
+> -            lpae_t pte = mfn_to_p2m_entry(maddr >> PAGE_SHIFT);
+> +            lpae_t pte = mfn_to_p2m_entry(maddr >> PAGE_SHIFT, mattr);
+>              write_pte(&third[third_table_offset(addr)], pte);
+>              maddr += PAGE_SIZE;
+>          }
+> @@ -263,7 +264,7 @@ int p2m_populate_ram(struct domain *d,
+>                       paddr_t start,
+>                       paddr_t end)
+>  {
+> -    return create_p2m_entries(d, 1, start, end, 0);
+> +    return create_p2m_entries(d, 1, start, end, 0, MATTR_MEM);
+>  }
+>  
+>  int map_mmio_regions(struct domain *d,
+> @@ -271,7 +272,7 @@ int map_mmio_regions(struct domain *d,
+>                       paddr_t end_gaddr,
+>                       paddr_t maddr)
+>  {
+> -    return create_p2m_entries(d, 0, start_gaddr, end_gaddr, maddr);
+> +    return create_p2m_entries(d, 0, start_gaddr, end_gaddr, maddr, MATTR_DEV);
+>  }
+>  
+>  int guest_physmap_add_page(struct domain *d,
+> @@ -281,7 +282,7 @@ int guest_physmap_add_page(struct domain *d,
+>  {
+>      return create_p2m_entries(d, 0, gpfn << PAGE_SHIFT,
+>                                (gpfn + (1<<page_order)) << PAGE_SHIFT,
+> -                              mfn << PAGE_SHIFT);
+> +                              mfn << PAGE_SHIFT, MATTR_MEM);
+>  }
+>  
+>  void guest_physmap_remove_page(struct domain *d,
+> diff --git a/xen/include/asm-arm/page.h b/xen/include/asm-arm/page.h
+> index c7b6530..bb1729a 100644
+> --- a/xen/include/asm-arm/page.h
+> +++ b/xen/include/asm-arm/page.h
+> @@ -46,6 +46,8 @@
+>  #define DEV_WC        BUFFERABLE
+>  #define DEV_CACHED    WRITEBACK
+>  
+> +#define MATTR_DEV     0x1
+> +#define MATTR_MEM     0xf
+>  
+>  #ifndef __ASSEMBLY__
+>  
+> @@ -169,7 +171,7 @@ static inline lpae_t mfn_to_xen_entry(unsigned long mfn)
+>      return e;
+>  }
+>  
+> -static inline lpae_t mfn_to_p2m_entry(unsigned long mfn)
+> +static inline lpae_t mfn_to_p2m_entry(unsigned long mfn, unsigned int mattr)
+>  {
+>      paddr_t pa = ((paddr_t) mfn) << PAGE_SHIFT;
+>      lpae_t e = (lpae_t) {
+> @@ -178,7 +180,7 @@ static inline lpae_t mfn_to_p2m_entry(unsigned long mfn)
+>          .p2m.sh = LPAE_SH_OUTER,
+>          .p2m.write = 1,
+>          .p2m.read = 1,
+> -        .p2m.mattr = 0xf,
+> +        .p2m.mattr = mattr,
+>          .p2m.table = 1,
+>          .p2m.valid = 1,
+>      };
+
+the rest of the patch is fine
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<alpine.DEB.2.02.1206061739130.6030@kaball.uk.xensource.com> b/config/examples/test/corpus/<alpine.DEB.2.02.1206061739130.6030@kaball.uk.xensource.com>
new file mode 100644 (file)
index 0000000..d8c10c7
--- /dev/null
@@ -0,0 +1,255 @@
+From xen-devel-bounces@lists.xen.org Wed Jun 06 18:03:13 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 06 Jun 2012 18:03:13 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1ScJdT-0003rK-0J
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 06 Jun 2012 18:03:13 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1ScJYQ-0001io-KJ; Wed, 06 Jun 2012 16:57:54 +0000
+Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1ScJYO-0001ij-KO
+       for xen-devel@lists.xen.org; Wed, 06 Jun 2012 16:57:52 +0000
+Received: from [193.109.254.147:23280] by server-4.bemta-14.messagelabs.com id
+       3E/9A-27598-F0C8FCF4; Wed, 06 Jun 2012 16:57:51 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-15.tower-27.messagelabs.com!1339001871!6265353!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDExMjA=\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 31521 invoked from network); 6 Jun 2012 16:57:51 -0000
+Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-15.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
+       6 Jun 2012 16:57:51 -0000
+X-IronPort-AV: E=Sophos;i="4.75,725,1330905600"; d="scan'208";a="12864769"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       06 Jun 2012 16:57:34 +0000
+Received: from sstabellini-Precision-WorkStation-T3500.local (10.80.238.169)
+       by smtprelay.citrix.com (10.30.203.162) with Microsoft SMTP Server id
+       8.3.213.0; Wed, 6 Jun 2012 17:57:34 +0100
+Date: Wed, 6 Jun 2012 17:57:27 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-X-Sender: sstabellini@kaball.uk.xensource.com
+To: Ian Campbell <ian.campbell@citrix.com>
+In-Reply-To: <1338565207-2888-18-git-send-email-ian.campbell@citrix.com>
+Message-ID: <alpine.DEB.2.02.1206061739130.6030@kaball.uk.xensource.com>
+References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
+       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+       <1338565207-2888-18-git-send-email-ian.campbell@citrix.com>
+User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 18/38] arm: implement vpl011 (UART) emulator.
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Fri, 1 Jun 2012, Ian Campbell wrote:
+> This is not interended to provide a full emulation, but rather just enough to
+> satisfy the use made by Linux' boot time decompressor code (which is too early
+> for DT etc)
+> 
+> Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+> ---
+>  xen/arch/arm/Makefile        |    1 +
+>  xen/arch/arm/domain.c        |    4 +
+>  xen/arch/arm/io.c            |    1 +
+>  xen/arch/arm/io.h            |    1 +
+>  xen/arch/arm/vpl011.c        |  155 ++++++++++++++++++++++++++++++++++++++++++
+>  xen/arch/arm/vpl011.h        |   34 +++++++++
+>  xen/include/asm-arm/domain.h |    8 ++
+>  7 files changed, 204 insertions(+), 0 deletions(-)
+>  create mode 100644 xen/arch/arm/vpl011.c
+>  create mode 100644 xen/arch/arm/vpl011.h
+> 
+> diff --git a/xen/arch/arm/Makefile b/xen/arch/arm/Makefile
+> index 9440a21..5a87ba6 100644
+> --- a/xen/arch/arm/Makefile
+> +++ b/xen/arch/arm/Makefile
+> @@ -25,6 +25,7 @@ obj-y += shutdown.o
+>  obj-y += traps.o
+>  obj-y += vgic.o
+>  obj-y += vtimer.o
+> +obj-y += vpl011.o
+>  
+>  #obj-bin-y += ....o
+>  
+> diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
+> index e867cb2..d830980 100644
+> --- a/xen/arch/arm/domain.c
+> +++ b/xen/arch/arm/domain.c
+> @@ -13,6 +13,7 @@
+>  
+>  #include "gic.h"
+>  #include "vtimer.h"
+> +#include "vpl011.h"
+>  
+>  DEFINE_PER_CPU(struct vcpu *, curr_vcpu);
+>  
+> @@ -201,6 +202,9 @@ int arch_domain_create(struct domain *d, unsigned int domcr_flags)
+>      if ( (rc = domain_vgic_init(d)) != 0 )
+>          goto fail;
+>  
+> +    if ( (rc = domain_uart0_init(d)) != 0 )
+> +        goto fail;
+> +
+>      if ( !is_idle_domain(d) )
+>      {
+>          rc = -ENOMEM;
+> diff --git a/xen/arch/arm/io.c b/xen/arch/arm/io.c
+> index 4461225..18f6164 100644
+> --- a/xen/arch/arm/io.c
+> +++ b/xen/arch/arm/io.c
+> @@ -25,6 +25,7 @@
+>  static const struct mmio_handler *const mmio_handlers[] =
+>  {
+>      &vgic_distr_mmio_handler,
+> +    &uart0_mmio_handler,
+>  };
+>  #define MMIO_HANDLER_NR ARRAY_SIZE(mmio_handlers)
+>  
+> diff --git a/xen/arch/arm/io.h b/xen/arch/arm/io.h
+> index 8cc5ca7..9a507f5 100644
+> --- a/xen/arch/arm/io.h
+> +++ b/xen/arch/arm/io.h
+> @@ -40,6 +40,7 @@ struct mmio_handler {
+>  };
+>  
+>  extern const struct mmio_handler vgic_distr_mmio_handler;
+> +extern const struct mmio_handler uart0_mmio_handler;
+>  
+>  extern int handle_mmio(mmio_info_t *info);
+>  
+> diff --git a/xen/arch/arm/vpl011.c b/xen/arch/arm/vpl011.c
+> new file mode 100644
+> index 0000000..1491dcc
+> --- /dev/null
+> +++ b/xen/arch/arm/vpl011.c
+> @@ -0,0 +1,155 @@
+> +/*
+> + * xen/arch/arm/vpl011.c
+> + *
+> + * ARM PL011 UART Emulator (DEBUG)
+> + *
+> + * Ian Campbell <ian.campbell@citrix.com>
+> + * Copyright (c) 2012 Citrix Systems.
+> + *
+> + * This program is free software; you can redistribute it and/or modify
+> + * it under the terms of the GNU General Public License as published by
+> + * the Free Software Foundation; either version 2 of the License, or
+> + * (at your option) any later version.
+> + *
+> + * This program is distributed in the hope that it will be useful,
+> + * but WITHOUT ANY WARRANTY; without even the implied warranty of
+> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+> + * GNU General Public License for more details.
+> + */
+> +
+> +/*
+> + * This is not intended to be a full emulation of a PL011
+> + * device. Rather it is intended to provide a sufficient veneer of one
+> + * that early code (such as Linux's boot time decompressor) which
+> + * hardcodes output directly to such a device are able to make progress.
+> + *
+> + * This device is not intended to be enumerable or exposed to the OS
+> + * (e.g. via Device Tree).
+> + */
+> +
+> +#include <xen/config.h>
+> +#include <xen/lib.h>
+> +#include <xen/sched.h>
+> +#include <xen/errno.h>
+> +#include <xen/ctype.h>
+> +
+> +#include "io.h"
+> +
+> +#define UART0_BASE_ADDRESS 0x1c090000
+> +
+> +#define UARTDR 0x000
+> +#define UARTFR 0x018
+> +
+> +int domain_uart0_init(struct domain *d)
+> +{
+> +    int rc;
+> +    if ( d->domain_id == 0 )
+> +        return 0;
+> +
+> +    spin_lock_init(&d->arch.uart0.lock);
+> +    d->arch.uart0.idx = 0;
+> +
+> +    rc = -ENOMEM;
+> +    d->arch.uart0.buf = xzalloc_array(char, VPL011_BUF_SIZE);
+> +    if ( !d->arch.uart0.buf )
+> +        goto out;
+> +
+> +    rc = 0;
+> +out:
+> +    return rc;
+> +}
+> +
+> +static void uart0_print_char(char c)
+> +{
+> +    struct vpl011 *uart = &current->domain->arch.uart0;
+> +
+> +    /* Accept only printable characters, newline, and horizontal tab. */
+> +    if ( !isprint(c) && (c != '\n') && (c != '\t') )
+> +        return ;
+> +
+> +    spin_lock(&uart->lock);
+> +    uart->buf[uart->idx++] = c;
+> +    if ( (uart->idx == (VPL011_BUF_SIZE - 2)) || (c == '\n') )
+> +    {
+> +        if ( c != '\n' )
+> +            uart->buf[uart->idx++] = '\n';
+> +        uart->buf[uart->idx] = '\0';
+> +        printk(XENLOG_G_DEBUG "DOM%u: %s",
+> +               current->domain->domain_id, uart->buf);
+> +        uart->idx = 0;
+> +    }
+> +    spin_unlock(&uart->lock);
+> +}
+> +
+> +static int uart0_mmio_check(struct vcpu *v, paddr_t addr)
+> +{
+> +    return v->domain->domain_id && addr >= UART0_BASE_ADDRESS && addr < (UART0_BASE_ADDRESS+65536);
+> +}
+
+maybe we need UART0_BASE_ADDRESS_START and UART0_BASE_ADDRESS_END
+instead of having an arbitrary +65536
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<alpine.DEB.2.02.1206061825480.2415@kaball.uk.xensource.com> b/config/examples/test/corpus/<alpine.DEB.2.02.1206061825480.2415@kaball.uk.xensource.com>
new file mode 100644 (file)
index 0000000..8034466
--- /dev/null
@@ -0,0 +1,207 @@
+From xen-devel-bounces@lists.xen.org Wed Jun 06 18:33:49 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 06 Jun 2012 18:33:49 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1ScK75-0003xY-44
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 06 Jun 2012 18:33:48 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1ScK1a-0002Nw-0h; Wed, 06 Jun 2012 17:28:02 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1ScK1X-0002Nr-WA
+       for xen-devel@lists.xen.org; Wed, 06 Jun 2012 17:28:00 +0000
+Received: from [85.158.143.35:45760] by server-3.bemta-4.messagelabs.com id
+       AB/F8-29237-F139FCF4; Wed, 06 Jun 2012 17:27:59 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-2.tower-21.messagelabs.com!1339003678!8166234!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDExMjA=\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 25572 invoked from network); 6 Jun 2012 17:27:58 -0000
+Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-2.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
+       6 Jun 2012 17:27:58 -0000
+X-IronPort-AV: E=Sophos;i="4.75,725,1330905600"; d="scan'208";a="12865213"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       06 Jun 2012 17:27:08 +0000
+Received: from kaball.uk.xensource.com (10.80.2.59) by
+       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
+       8.3.213.0; Wed, 6 Jun 2012 18:27:08 +0100
+Date: Wed, 6 Jun 2012 18:26:53 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-X-Sender: sstabellini@kaball.uk.xensource.com
+To: Ian Campbell <ian.campbell@citrix.com>
+In-Reply-To: <1338565207-2888-22-git-send-email-ian.campbell@citrix.com>
+Message-ID: <alpine.DEB.2.02.1206061825480.2415@kaball.uk.xensource.com>
+References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
+       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+       <1338565207-2888-22-git-send-email-ian.campbell@citrix.com>
+User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 22/38] arm: implement
+ vcpu_show_execution_state
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Fri, 1 Jun 2012, Ian Campbell wrote:
+> Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+> ---
+>  xen/arch/arm/dummy.S |    1 -
+>  xen/arch/arm/traps.c |   56 +++++++++++++++++++++++++++++++++++++++++++++----
+>  2 files changed, 51 insertions(+), 6 deletions(-)
+> 
+> diff --git a/xen/arch/arm/dummy.S b/xen/arch/arm/dummy.S
+> index 03f7489..cab9522 100644
+> --- a/xen/arch/arm/dummy.S
+> +++ b/xen/arch/arm/dummy.S
+> @@ -21,7 +21,6 @@ DUMMY(pirq_set_affinity);
+>  DUMMY(arch_get_info_guest);
+>  DUMMY(arch_vcpu_reset);
+>  NOP(update_vcpu_system_time);
+> -DUMMY(vcpu_show_execution_state);
+>  
+>  /* Page Reference & Type Maintenance */
+>  DUMMY(get_page);
+> diff --git a/xen/arch/arm/traps.c b/xen/arch/arm/traps.c
+> index 35907ee..ec74298 100644
+> --- a/xen/arch/arm/traps.c
+> +++ b/xen/arch/arm/traps.c
+> @@ -170,7 +170,13 @@ void panic_PAR(uint64_t par, const char *when)
+>      panic("Error during %s-to-physical address translation\n", when);
+>  }
+>  
+> -void show_registers(struct cpu_user_regs *regs)
+> +struct reg_ctxt {
+> +    uint32_t sctlr;
+> +    uint32_t ttbr0, ttbr1, ttbcr;
+> +};
+> +static void _show_registers(struct cpu_user_regs *regs,
+> +                            struct reg_ctxt *ctxt,
+> +                            int guest_mode)
+>  {
+>      static const char *mode_strings[] = {
+>         [PSR_MODE_USR] = "USR",
+> @@ -187,7 +193,7 @@ void show_registers(struct cpu_user_regs *regs)
+>      print_xen_info();
+>      printk("CPU:    %d\n", smp_processor_id());
+>      printk("PC:     %08"PRIx32, regs->pc);
+> -    if ( !guest_mode(regs) )
+> +    if ( !guest_mode )
+>              print_symbol(" %s", regs->pc);
+>      printk("\n");
+>      printk("CPSR:   %08"PRIx32" MODE:%s\n", regs->cpsr,
+> @@ -199,7 +205,7 @@ void show_registers(struct cpu_user_regs *regs)
+>      printk("     R8: %08"PRIx32" R9: %08"PRIx32" R10:%08"PRIx32" R11:%08"PRIx32" R12:%08"PRIx32"\n",
+>             regs->r8, regs->r9, regs->r10, regs->r11, regs->r12);
+>  
+> -    if ( guest_mode(regs) )
+> +    if ( guest_mode )
+>      {
+>          printk("USR: SP: %08"PRIx32" LR: %08"PRIx32" CPSR:%08"PRIx32"\n",
+>                 regs->sp_usr, regs->lr_usr, regs->cpsr);
+> @@ -217,8 +223,8 @@ void show_registers(struct cpu_user_regs *regs)
+>                 regs->r8_fiq, regs->r9_fiq, regs->r10_fiq, regs->r11_fiq, regs->r11_fiq);
+>          printk("\n");
+>          printk("TTBR0 %08"PRIx32" TTBR1 %08"PRIx32" TTBCR %08"PRIx32"\n",
+> -               READ_CP32(TTBR0), READ_CP32(TTBR1), READ_CP32(TTBCR));
+> -        printk("SCTLR %08"PRIx32"\n", READ_CP32(SCTLR));
+> +               ctxt->ttbr0, ctxt->ttbr1, ctxt->ttbcr);
+> +        printk("SCTLR %08"PRIx32"\n", ctxt->sctlr);
+>          printk("VTTBR %010"PRIx64"\n", READ_CP64(VTTBR));
+>          printk("\n");
+>      }
+> @@ -241,6 +247,26 @@ void show_registers(struct cpu_user_regs *regs)
+>      printk("\n");
+>  }
+>  
+> +void show_registers(struct cpu_user_regs *regs)
+> +{
+> +    struct reg_ctxt ctxt;
+> +    ctxt.sctlr = READ_CP32(SCTLR);
+> +    ctxt.ttbcr = READ_CP32(TTBCR);
+> +    ctxt.ttbr0 = READ_CP32(TTBR0);
+> +    ctxt.ttbr1 = READ_CP32(TTBR1);
+> +    _show_registers(regs, &ctxt, guest_mode(regs));
+> +}
+> +
+> +void vcpu_show_registers(const struct vcpu *v)
+> +{
+> +    struct reg_ctxt ctxt;
+> +    ctxt.sctlr = v->arch.sctlr;
+> +    ctxt.ttbcr = v->arch.ttbcr;
+> +    ctxt.ttbr0 = v->arch.ttbr0;
+> +    ctxt.ttbr1 = v->arch.ttbr1;
+> +    _show_registers(&v->arch.cpu_info->guest_cpu_user_regs, &ctxt, 1);
+> +}
+> +
+>  static void show_guest_stack(struct cpu_user_regs *regs)
+>  {
+>      printk("GUEST STACK GOES HERE\n");
+> @@ -334,6 +360,26 @@ void show_execution_state(struct cpu_user_regs *regs)
+>      show_stack(regs);
+>  }
+>  
+> +void vcpu_show_execution_state(struct vcpu *v)
+> +{
+> +    printk("*** Dumping Dom%d vcpu#%d state: ***\n",
+> +           v->domain->domain_id, v->vcpu_id);
+> +
+> +    if ( v == current )
+> +    {
+> +        show_execution_state(guest_cpu_user_regs());
+> +        return;
+> +    }
+> +
+> +    vcpu_pause(v); /* acceptably dangerous */
+> +
+> +    vcpu_show_registers(v);
+> +    if ( !usr_mode(&v->arch.cpu_info->guest_cpu_user_regs) )
+> +        show_guest_stack(&v->arch.cpu_info->guest_cpu_user_regs);
+
+isn't the if condition inverted?
+
+> +    vcpu_unpause(v);
+> +}
+> +
+>  static void do_unexpected_trap(const char *msg, struct cpu_user_regs *regs)
+>  {
+>      printk("Unexpected Trap: %s\n", msg);
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<alpine.DEB.2.02.1206061833290.2415@kaball.uk.xensource.com> b/config/examples/test/corpus/<alpine.DEB.2.02.1206061833290.2415@kaball.uk.xensource.com>
new file mode 100644 (file)
index 0000000..628e8ff
--- /dev/null
@@ -0,0 +1,165 @@
+From xen-devel-bounces@lists.xen.org Wed Jun 06 18:43:38 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 06 Jun 2012 18:43:38 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1ScKGd-000408-9M
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 06 Jun 2012 18:43:38 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1ScKBz-0002kS-B3; Wed, 06 Jun 2012 17:38:47 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1ScKBx-0002jg-Mf
+       for xen-devel@lists.xen.org; Wed, 06 Jun 2012 17:38:45 +0000
+Received: from [85.158.138.51:26508] by server-8.bemta-3.messagelabs.com id
+       BD/FB-22118-4A59FCF4; Wed, 06 Jun 2012 17:38:44 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-4.tower-174.messagelabs.com!1339004324!31072848!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDExMjA=\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 3548 invoked from network); 6 Jun 2012 17:38:44 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-4.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
+       6 Jun 2012 17:38:44 -0000
+X-IronPort-AV: E=Sophos;i="4.75,725,1330905600"; d="scan'208";a="12865382"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       06 Jun 2012 17:38:44 +0000
+Received: from kaball.uk.xensource.com (10.80.2.59) by
+       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
+       8.3.213.0; Wed, 6 Jun 2012 18:38:43 +0100
+Date: Wed, 6 Jun 2012 18:38:28 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-X-Sender: sstabellini@kaball.uk.xensource.com
+To: Ian Campbell <ian.campbell@citrix.com>
+In-Reply-To: <1338565207-2888-23-git-send-email-ian.campbell@citrix.com>
+Message-ID: <alpine.DEB.2.02.1206061833290.2415@kaball.uk.xensource.com>
+References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
+       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+       <1338565207-2888-23-git-send-email-ian.campbell@citrix.com>
+User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 23/38] arm: use correct attributes for
+ mappings in copy_from_paddr()
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Fri, 1 Jun 2012, Ian Campbell wrote:
+> The DTB is in RAM (hence bufferable), kernel is in flash and therefor requires
+> a device type mapping (hence dev shared).
+> 
+> Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+> ---
+>  xen/arch/arm/kernel.c       |    8 ++++----
+>  xen/arch/arm/setup.c        |    2 +-
+>  xen/include/asm-arm/setup.h |    2 +-
+>  3 files changed, 6 insertions(+), 6 deletions(-)
+> 
+> diff --git a/xen/arch/arm/kernel.c b/xen/arch/arm/kernel.c
+> index 130d488..1a705c9 100644
+> --- a/xen/arch/arm/kernel.c
+> +++ b/xen/arch/arm/kernel.c
+> @@ -39,7 +39,7 @@ struct minimal_dtb_header {
+>   * @paddr: source physical address
+>   * @len: length to copy
+>   */
+> -void copy_from_paddr(void *dst, paddr_t paddr, unsigned long len)
+> +void copy_from_paddr(void *dst, paddr_t paddr, unsigned long len, int mattr)
+>  {
+>      void *src = (void *)FIXMAP_ADDR(FIXMAP_MISC);
+>  
+> @@ -51,7 +51,7 @@ void copy_from_paddr(void *dst, paddr_t paddr, unsigned long len)
+>          s = paddr & (PAGE_SIZE-1);
+>          l = min(PAGE_SIZE - s, len);
+>  
+> -        set_fixmap(FIXMAP_MISC, p, DEV_SHARED);
+> +        set_fixmap(FIXMAP_MISC, p, mattr);
+>          memcpy(dst, src + s, l);
+>  
+>          paddr += l;
+> @@ -111,7 +111,7 @@ static int kernel_try_zimage_prepare(struct kernel_info *info)
+>      /*
+>       * Check for an appended DTB.
+>       */
+> -    copy_from_paddr(&dtb_hdr, KERNEL_FLASH_ADDRESS + end - start, sizeof(dtb_hdr));
+> +    copy_from_paddr(&dtb_hdr, KERNEL_FLASH_ADDRESS + end - start, sizeof(dtb_hdr), DEV_SHARED);
+>      if (be32_to_cpu(dtb_hdr.magic) == DTB_MAGIC) {
+>          end += be32_to_cpu(dtb_hdr.total_size);
+>      }
+> @@ -151,7 +151,7 @@ static int kernel_try_elf_prepare(struct kernel_info *info)
+>      if ( info->kernel_img == NULL )
+>          panic("Cannot allocate temporary buffer for kernel.\n");
+>  
+> -    copy_from_paddr(info->kernel_img, KERNEL_FLASH_ADDRESS, KERNEL_FLASH_SIZE);
+> +    copy_from_paddr(info->kernel_img, KERNEL_FLASH_ADDRESS, KERNEL_FLASH_SIZE, DEV_SHARED);
+>  
+>      if ( (rc = elf_init(&info->elf.elf, info->kernel_img, KERNEL_FLASH_SIZE )) != 0 )
+>          return rc;
+> diff --git a/xen/arch/arm/setup.c b/xen/arch/arm/setup.c
+> index b0cfacc..f5473cd 100644
+> --- a/xen/arch/arm/setup.c
+> +++ b/xen/arch/arm/setup.c
+> @@ -122,7 +122,7 @@ static void __init setup_mm(unsigned long dtb_paddr, size_t dtb_size)
+>       * TODO: handle other payloads too.
+>       */
+>      device_tree_flattened = mfn_to_virt(alloc_boot_pages(dtb_pages, 1));
+> -    copy_from_paddr(device_tree_flattened, dtb_paddr, dtb_size);
+> +    copy_from_paddr(device_tree_flattened, dtb_paddr, dtb_size, BUFFERABLE);
+>  
+>      /* Add non-xenheap memory */
+>      init_boot_pages(pfn_to_paddr(xenheap_mfn_start + xenheap_pages),
+> diff --git a/xen/include/asm-arm/setup.h b/xen/include/asm-arm/setup.h
+> index 05ff89e..faadccc 100644
+> --- a/xen/include/asm-arm/setup.h
+> +++ b/xen/include/asm-arm/setup.h
+> @@ -3,7 +3,7 @@
+>  
+>  #include <public/version.h>
+>  
+> -void copy_from_paddr(void *dst, paddr_t paddr, unsigned long len);
+> +void copy_from_paddr(void *dst, paddr_t paddr, unsigned long len, int mattr);
+>  
+>  void arch_get_xen_caps(xen_capabilities_info_t *info);
+>  
+
+The patch is correct, but it shouldn't call the new parameter mattr
+because it can easily be confused with the memattr bits (see
+http://marc.info/?l=xen-devel&m=133856578918985).
+I would call it "int attrindx" instead.
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<alpine.DEB.2.02.1206061839560.2415@kaball.uk.xensource.com> b/config/examples/test/corpus/<alpine.DEB.2.02.1206061839560.2415@kaball.uk.xensource.com>
new file mode 100644 (file)
index 0000000..64ec673
--- /dev/null
@@ -0,0 +1,111 @@
+From xen-devel-bounces@lists.xen.org Wed Jun 06 18:44:37 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 06 Jun 2012 18:44:37 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1ScKHa-00040T-N3
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 06 Jun 2012 18:44:37 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1ScKDj-0002pt-RB; Wed, 06 Jun 2012 17:40:35 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1ScKDh-0002pm-Pa
+       for xen-devel@lists.xen.org; Wed, 06 Jun 2012 17:40:33 +0000
+Received: from [85.158.143.35:29578] by server-3.bemta-4.messagelabs.com id
+       20/C1-29237-1169FCF4; Wed, 06 Jun 2012 17:40:33 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-15.tower-21.messagelabs.com!1339004432!14333116!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDExMjA=\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 19650 invoked from network); 6 Jun 2012 17:40:32 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-15.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
+       6 Jun 2012 17:40:32 -0000
+X-IronPort-AV: E=Sophos;i="4.75,725,1330905600"; d="scan'208";a="12865396"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       06 Jun 2012 17:40:32 +0000
+Received: from kaball.uk.xensource.com (10.80.2.59) by
+       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
+       8.3.213.0; Wed, 6 Jun 2012 18:40:32 +0100
+Date: Wed, 6 Jun 2012 18:40:16 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-X-Sender: sstabellini@kaball.uk.xensource.com
+To: Ian Campbell <ian.campbell@citrix.com>
+In-Reply-To: <1338565207-2888-24-git-send-email-ian.campbell@citrix.com>
+Message-ID: <alpine.DEB.2.02.1206061839560.2415@kaball.uk.xensource.com>
+References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
+       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+       <1338565207-2888-24-git-send-email-ian.campbell@citrix.com>
+User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 24/38] arm: map fixmaps non-executable.
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Fri, 1 Jun 2012, Ian Campbell wrote:
+> Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+
+Acked-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+
+>  xen/arch/arm/mm.c |    1 +
+>  1 files changed, 1 insertions(+), 0 deletions(-)
+> 
+> diff --git a/xen/arch/arm/mm.c b/xen/arch/arm/mm.c
+> index c332e4c..160a4e9 100644
+> --- a/xen/arch/arm/mm.c
+> +++ b/xen/arch/arm/mm.c
+> @@ -108,6 +108,7 @@ void set_fixmap(unsigned map, unsigned long mfn, unsigned attributes)
+>      lpae_t pte = mfn_to_xen_entry(mfn);
+>      pte.pt.table = 1; /* 4k mappings always have this bit set */
+>      pte.pt.ai = attributes;
+> +    pte.pt.xn = 1;
+>      write_pte(xen_fixmap + third_table_offset(FIXMAP_ADDR(map)), pte);
+>      flush_xen_data_tlb_va(FIXMAP_ADDR(map));
+>  }
+> -- 
+> 1.7.9.1
+> 
+> 
+> _______________________________________________
+> Xen-devel mailing list
+> Xen-devel@lists.xen.org
+> http://lists.xen.org/xen-devel
+> 
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<alpine.DEB.2.02.1206061846260.2415@kaball.uk.xensource.com> b/config/examples/test/corpus/<alpine.DEB.2.02.1206061846260.2415@kaball.uk.xensource.com>
new file mode 100644 (file)
index 0000000..b78896c
--- /dev/null
@@ -0,0 +1,110 @@
+From xen-devel-bounces@lists.xen.org Wed Jun 06 19:08:39 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 06 Jun 2012 19:08:39 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1ScKeo-00044y-0l
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 06 Jun 2012 19:08:39 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1ScKbE-0003Cq-95; Wed, 06 Jun 2012 18:04:52 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1ScKbC-0003Ch-Tk
+       for xen-devel@lists.xen.org; Wed, 06 Jun 2012 18:04:51 +0000
+Received: from [85.158.143.99:25609] by server-3.bemta-4.messagelabs.com id
+       03/02-29237-2CB9FCF4; Wed, 06 Jun 2012 18:04:50 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-10.tower-216.messagelabs.com!1339005889!25065969!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDExMjA=\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 23620 invoked from network); 6 Jun 2012 18:04:49 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-10.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
+       6 Jun 2012 18:04:49 -0000
+X-IronPort-AV: E=Sophos;i="4.75,725,1330905600"; d="scan'208";a="12865694"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       06 Jun 2012 18:04:49 +0000
+Received: from kaball.uk.xensource.com (10.80.2.59) by
+       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
+       8.3.213.0; Wed, 6 Jun 2012 19:04:48 +0100
+Date: Wed, 6 Jun 2012 19:04:33 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-X-Sender: sstabellini@kaball.uk.xensource.com
+To: Ian Campbell <ian.campbell@citrix.com>
+In-Reply-To: <1338565207-2888-25-git-send-email-ian.campbell@citrix.com>
+Message-ID: <alpine.DEB.2.02.1206061846260.2415@kaball.uk.xensource.com>
+References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
+       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+       <1338565207-2888-25-git-send-email-ian.campbell@citrix.com>
+User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 25/38] arm: remove old identity map of boot
+ paddr when we are done with it.
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Fri, 1 Jun 2012, Ian Campbell wrote:
+> Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+> ---
+>  xen/arch/arm/mm.c |    8 ++++++++
+>  1 files changed, 8 insertions(+), 0 deletions(-)
+> 
+> diff --git a/xen/arch/arm/mm.c b/xen/arch/arm/mm.c
+> index 160a4e9..ab52171 100644
+> --- a/xen/arch/arm/mm.c
+> +++ b/xen/arch/arm/mm.c
+> @@ -214,6 +214,14 @@ void __init setup_pagetables(unsigned long boot_phys_offset)
+>      lpae_t pte, *p;
+>      int i;
+>  
+> +    if ( boot_phys_offset != 0 )
+> +    {
+> +        /* Remove the old identity mapping of the boot paddr */
+> +        pte.bits = 0;
+> +        dest_va = (unsigned long)_start + boot_phys_offset;
+> +        write_pte(xen_second + second_linear_offset(dest_va), pte);
+> +    }
+
+It looks like we are already doing this few lines below.
+Also now that I am thinking about it, considering that bits is a 64 bit
+field, shouldn't this be:
+
+pte.bits = 0ULL;
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<alpine.DEB.2.02.1206071126490.2415@kaball.uk.xensource.com> b/config/examples/test/corpus/<alpine.DEB.2.02.1206071126490.2415@kaball.uk.xensource.com>
new file mode 100644 (file)
index 0000000..2a4ce46
--- /dev/null
@@ -0,0 +1,128 @@
+From xen-devel-bounces@lists.xen.org Thu Jun 07 11:31:17 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 07 Jun 2012 11:31:17 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1ScZzj-0003z3-Qv
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 07 Jun 2012 11:31:17 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1ScZvv-0002zV-Pe; Thu, 07 Jun 2012 10:27:15 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1ScZvt-0002zM-Vi
+       for xen-devel@lists.xen.org; Thu, 07 Jun 2012 10:27:14 +0000
+Received: from [85.158.138.51:64123] by server-2.bemta-3.messagelabs.com id
+       00/35-16299-10280DF4; Thu, 07 Jun 2012 10:27:13 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-16.tower-174.messagelabs.com!1339064832!28367720!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDE0Nzk=\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 3501 invoked from network); 7 Jun 2012 10:27:12 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-16.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
+       7 Jun 2012 10:27:12 -0000
+X-IronPort-AV: E=Sophos;i="4.75,730,1330905600"; d="scan'208";a="12877643"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       07 Jun 2012 10:27:11 +0000
+Received: from kaball.uk.xensource.com (10.80.2.59) by
+       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
+       8.3.213.0; Thu, 7 Jun 2012 11:27:11 +0100
+Date: Thu, 7 Jun 2012 11:26:55 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-X-Sender: sstabellini@kaball.uk.xensource.com
+To: Ian Campbell <ian.campbell@citrix.com>
+In-Reply-To: <1338565207-2888-26-git-send-email-ian.campbell@citrix.com>
+Message-ID: <alpine.DEB.2.02.1206071126490.2415@kaball.uk.xensource.com>
+References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
+       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+       <1338565207-2888-26-git-send-email-ian.campbell@citrix.com>
+User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 26/38] arm: fix locking in create_p2m_entries
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Fri, 1 Jun 2012, Ian Campbell wrote:
+> For some reason we were holding the lock over only the unmaps at the end of
+> the function, rather than for the whole walk.
+> 
+> We might want to be more clever in the future, but for now lets just lock for
+> the whole walk+create process.
+> 
+> Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+
+
+Acked-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+
+>  xen/arch/arm/p2m.c |    4 ++--
+>  1 files changed, 2 insertions(+), 2 deletions(-)
+> 
+> diff --git a/xen/arch/arm/p2m.c b/xen/arch/arm/p2m.c
+> index 46c6f17..c4daf83 100644
+> --- a/xen/arch/arm/p2m.c
+> +++ b/xen/arch/arm/p2m.c
+> @@ -168,6 +168,8 @@ static int create_p2m_entries(struct domain *d,
+>      paddr_t addr;
+>      unsigned long cur_first_offset = ~0, cur_second_offset = ~0;
+>  
+> +    spin_lock(&p2m->lock);
+> +
+>      /* XXX Don't actually handle 40 bit guest physical addresses */
+>      BUG_ON(start_gpaddr & 0x8000000000ULL);
+>      BUG_ON(end_gpaddr   & 0x8000000000ULL);
+> @@ -249,8 +251,6 @@ static int create_p2m_entries(struct domain *d,
+>      rc = 0;
+>  
+>  out:
+> -    spin_lock(&p2m->lock);
+> -
+>      if (third) unmap_domain_page(third);
+>      if (second) unmap_domain_page(second);
+>      if (first) unmap_domain_page(first);
+> -- 
+> 1.7.9.1
+> 
+> 
+> _______________________________________________
+> Xen-devel mailing list
+> Xen-devel@lists.xen.org
+> http://lists.xen.org/xen-devel
+> 
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<alpine.DEB.2.02.1206071131370.2415@kaball.uk.xensource.com> b/config/examples/test/corpus/<alpine.DEB.2.02.1206071131370.2415@kaball.uk.xensource.com>
new file mode 100644 (file)
index 0000000..a3102df
--- /dev/null
@@ -0,0 +1,200 @@
+From xen-devel-bounces@lists.xen.org Thu Jun 07 11:39:16 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 07 Jun 2012 11:39:16 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1Sca7S-00041A-MI
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 07 Jun 2012 11:39:16 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1Sca3v-0003HI-8V; Thu, 07 Jun 2012 10:35:31 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1Sca3t-0003Gt-DZ
+       for xen-devel@lists.xen.org; Thu, 07 Jun 2012 10:35:29 +0000
+Received: from [85.158.143.99:29188] by server-3.bemta-4.messagelabs.com id
+       DA/CE-29237-0F380DF4; Thu, 07 Jun 2012 10:35:28 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-7.tower-216.messagelabs.com!1339065327!28348489!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDE0Nzk=\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 18009 invoked from network); 7 Jun 2012 10:35:27 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-7.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
+       7 Jun 2012 10:35:27 -0000
+X-IronPort-AV: E=Sophos;i="4.75,730,1330905600"; d="scan'208";a="12877844"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       07 Jun 2012 10:35:27 +0000
+Received: from kaball.uk.xensource.com (10.80.2.59) by
+       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
+       8.3.213.0; Thu, 7 Jun 2012 11:35:27 +0100
+Date: Thu, 7 Jun 2012 11:35:10 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-X-Sender: sstabellini@kaball.uk.xensource.com
+To: Ian Campbell <ian.campbell@citrix.com>
+In-Reply-To: <1338565207-2888-27-git-send-email-ian.campbell@citrix.com>
+Message-ID: <alpine.DEB.2.02.1206071131370.2415@kaball.uk.xensource.com>
+References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
+       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+       <1338565207-2888-27-git-send-email-ian.campbell@citrix.com>
+User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 27/38] arm: split pending SPIs (global) out
+ from pending PPIs and SGIs (per CPU)
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Fri, 1 Jun 2012, Ian Campbell wrote:
+> This tracks SPIs in struct arch_domain and PPIs+SGIs in struct arch_vcpu which
+> seems more logical.
+> 
+> Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+> ---
+>  xen/arch/arm/vgic.c          |   17 ++++++++++-------
+>  xen/include/asm-arm/domain.h |   10 ++++++++++
+>  2 files changed, 20 insertions(+), 7 deletions(-)
+> 
+> diff --git a/xen/arch/arm/vgic.c b/xen/arch/arm/vgic.c
+> index 629a0da..91d6166 100644
+> --- a/xen/arch/arm/vgic.c
+> +++ b/xen/arch/arm/vgic.c
+> @@ -82,9 +82,8 @@ int domain_vgic_init(struct domain *d)
+>      d->arch.vgic.shared_irqs =
+>          xmalloc_array(struct vgic_irq_rank, DOMAIN_NR_RANKS(d));
+>      d->arch.vgic.pending_irqs =
+> -        xmalloc_array(struct pending_irq,
+> -                d->arch.vgic.nr_lines + (32 * d->max_vcpus));
+> -    for (i=0; i<d->arch.vgic.nr_lines + (32 * d->max_vcpus); i++)
+> +        xzalloc_array(struct pending_irq, d->arch.vgic.nr_lines);
+> +    for (i=0; i<d->arch.vgic.nr_lines; i++)
+>          INIT_LIST_HEAD(&d->arch.vgic.pending_irqs[i].inflight);
+>      for (i=0; i<DOMAIN_NR_RANKS(d); i++)
+>          spin_lock_init(&d->arch.vgic.shared_irqs[i].lock);
+> @@ -98,6 +97,10 @@ int vcpu_vgic_init(struct vcpu *v)
+>  
+>      spin_lock_init(&v->arch.vgic.private_irqs.lock);
+>  
+> +    memset(&v->arch.vgic.pending_irqs, 0, sizeof(v->arch.vgic.pending_irqs));
+> +    for (i = 0; i < 32; i++)
+> +        INIT_LIST_HEAD(&v->arch.vgic.pending_irqs[i].inflight);
+> +
+>      /* For SGI and PPI the target is always this CPU */
+>      for ( i = 0 ; i < 8 ; i++ )
+>          v->arch.vgic.private_irqs.itargets[i] =
+> @@ -535,8 +538,7 @@ struct pending_irq *irq_to_pending(struct vcpu *v, unsigned int irq)
+>      /* Pending irqs allocation strategy: the first vgic.nr_lines irqs
+>       * are used for SPIs; the rests are used for per cpu irqs */
+>      if ( irq < 32 )
+> -        n = &v->domain->arch.vgic.pending_irqs[irq + (v->vcpu_id * 32)
+> -            + v->domain->arch.vgic.nr_lines];
+> +        n = &v->arch.vgic.pending_irqs[irq];
+>      else
+>          n = &v->domain->arch.vgic.pending_irqs[irq - 32];
+>      return n;
+> @@ -548,6 +550,7 @@ void vgic_vcpu_inject_irq(struct vcpu *v, unsigned int irq, int virtual)
+>      uint8_t priority;
+>      struct vgic_irq_rank *rank = vgic_irq_rank(v, 8, idx);
+>      struct pending_irq *iter, *n = irq_to_pending(v, irq);
+> +    unsigned long flags;
+>  
+>      /* irq still pending */
+>      if (!list_empty(&n->inflight))
+> @@ -564,7 +567,7 @@ void vgic_vcpu_inject_irq(struct vcpu *v, unsigned int irq, int virtual)
+>  
+>      gic_set_guest_irq(irq, GICH_LR_PENDING, priority);
+>  
+> -    spin_lock(&v->arch.vgic.lock);
+> +    spin_lock_irqsave(&v->arch.vgic.lock, flags);
+>      list_for_each_entry ( iter, &v->arch.vgic.inflight_irqs, inflight )
+>      {
+>          if ( iter->priority > priority )
+> @@ -575,7 +578,7 @@ void vgic_vcpu_inject_irq(struct vcpu *v, unsigned int irq, int virtual)
+>          }
+>      }
+>      list_add_tail(&n->inflight, &v->arch.vgic.inflight_irqs);
+> -    spin_unlock(&v->arch.vgic.lock);
+> +    spin_unlock_irqrestore(&v->arch.vgic.lock, flags);
+>      /* we have a new higher priority irq, inject it into the guest */
+>  }
+
+Besides moving PPIs and SGIs to struct vcpu, this patch also turns
+spin_lock into spin_lock_irqsave in vgic_vcpu_inject_irq: I think it is
+correct because it can be called in IRQ context, but it needs to be
+explicitly stated in the commit message.
+
+
+> diff --git a/xen/include/asm-arm/domain.h b/xen/include/asm-arm/domain.h
+> index 620b26e..32deb52 100644
+> --- a/xen/include/asm-arm/domain.h
+> +++ b/xen/include/asm-arm/domain.h
+> @@ -46,6 +46,10 @@ struct arch_domain
+>          int ctlr;
+>          int nr_lines;
+>          struct vgic_irq_rank *shared_irqs;
+> +        /*
+> +         * SPIs are domain global, SGIs and PPIs are per-VCPU and stored in
+> +         * struct arch_vcpu.
+> +         */
+>          struct pending_irq *pending_irqs;
+>      } vgic;
+>  
+> @@ -114,7 +118,13 @@ struct arch_vcpu
+>      uint32_t gic_lr[64];
+>  
+>      struct {
+> +        /*
+> +         * SGIs and PPIs are per-VCPU, SPIs are domain global and in
+> +         * struct arch_domain.
+> +         */
+> +        struct pending_irq pending_irqs[32];
+>          struct vgic_irq_rank private_irqs;
+> +
+>          /* This list is ordered by IRQ priority and it is used to keep
+>           * track of the IRQs that the VGIC injected into the guest.
+>           * Depending on the availability of LR registers, the IRQs might
+> -- 
+> 1.7.9.1
+> 
+> 
+> _______________________________________________
+> Xen-devel mailing list
+> Xen-devel@lists.xen.org
+> http://lists.xen.org/xen-devel
+> 
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<alpine.DEB.2.02.1206071138250.2415@kaball.uk.xensource.com> b/config/examples/test/corpus/<alpine.DEB.2.02.1206071138250.2415@kaball.uk.xensource.com>
new file mode 100644 (file)
index 0000000..290e295
--- /dev/null
@@ -0,0 +1,218 @@
+From xen-devel-bounces@lists.xen.org Thu Jun 07 11:43:26 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 07 Jun 2012 11:43:26 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1ScaBU-000423-JP
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 07 Jun 2012 11:43:26 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1Sca7x-0003aN-TZ; Thu, 07 Jun 2012 10:39:41 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1Sca7v-0003aG-VV
+       for xen-devel@lists.xen.org; Thu, 07 Jun 2012 10:39:40 +0000
+Received: from [85.158.139.83:30939] by server-9.bemta-5.messagelabs.com id
+       15/BA-29678-BE480DF4; Thu, 07 Jun 2012 10:39:39 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-3.tower-182.messagelabs.com!1339065578!30908547!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDE0Nzk=\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 12602 invoked from network); 7 Jun 2012 10:39:38 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-3.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
+       7 Jun 2012 10:39:38 -0000
+X-IronPort-AV: E=Sophos;i="4.75,730,1330905600"; d="scan'208";a="12877972"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       07 Jun 2012 10:39:38 +0000
+Received: from kaball.uk.xensource.com (10.80.2.59) by
+       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
+       8.3.213.0; Thu, 7 Jun 2012 11:39:38 +0100
+Date: Thu, 7 Jun 2012 11:39:22 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-X-Sender: sstabellini@kaball.uk.xensource.com
+To: Ian Campbell <ian.campbell@citrix.com>
+In-Reply-To: <1338565207-2888-28-git-send-email-ian.campbell@citrix.com>
+Message-ID: <alpine.DEB.2.02.1206071138250.2415@kaball.uk.xensource.com>
+References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
+       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+       <1338565207-2888-28-git-send-email-ian.campbell@citrix.com>
+User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 28/38] arm: map GICV in all domains,
+ not just dom0.
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Fri, 1 Jun 2012, Ian Campbell wrote:
+> This requires that we allocate all p2m pages from domheap without a particular
+> dom because max pages is not setup yet so there is no allocation available to
+> us.
+> 
+> At some point we should create a separate p2m allocation (similar to x86's shadow allocation) and use that.
+> 
+> Also we seem to have been calling p2m_alloc_table twice for dom0.
+> 
+> Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+
+
+Acked-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+
+>  xen/arch/arm/domain.c       |   10 +++++++---
+>  xen/arch/arm/domain_build.c |    5 -----
+>  xen/arch/arm/gic.c          |    9 ++++-----
+>  xen/arch/arm/gic.h          |    2 +-
+>  xen/arch/arm/p2m.c          |    3 ++-
+>  5 files changed, 14 insertions(+), 15 deletions(-)
+> 
+> diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
+> index a7fb227..e15c1e8 100644
+> --- a/xen/arch/arm/domain.c
+> +++ b/xen/arch/arm/domain.c
+> @@ -329,13 +329,17 @@ int arch_domain_create(struct domain *d, unsigned int domcr_flags)
+>  
+>          if ( (rc = p2m_alloc_table(d)) != 0 )
+>              goto fail;
+> -    }
+>  
+> -    if ( (rc = domain_vgic_init(d)) != 0 )
+> -        goto fail;
+> +        if ( (rc = gicv_setup(d)) != 0 )
+> +            goto fail;
+> +
+> +        if ( (rc = domain_vgic_init(d)) != 0 )
+> +            goto fail;
+> +    }
+>  
+>      rc = 0;
+>  fail:
+> +    /*XXX unwind allocations etc */
+>      return rc;
+>  }
+>  
+> diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
+> index 72e775c..1b19e54 100644
+> --- a/xen/arch/arm/domain_build.c
+> +++ b/xen/arch/arm/domain_build.c
+> @@ -270,9 +270,6 @@ int construct_dom0(struct domain *d)
+>  
+>      d->max_pages = ~0U;
+>  
+> -    if ( (rc = p2m_alloc_table(d)) != 0 )
+> -        return rc;
+> -
+>      rc = prepare_dtb(d, &kinfo);
+>      if ( rc < 0 )
+>          return rc;
+> @@ -288,8 +285,6 @@ int construct_dom0(struct domain *d)
+>      printk("Map VGIC MMIO regions 1:1 in the P2M %#llx->%#llx\n", 0x2C008000ULL, 0x2DFFFFFFULL);
+>      map_mmio_regions(d, 0x2C008000, 0x2DFFFFFF, 0x2C008000);
+>  
+> -    gicv_setup(d);
+> -
+>      printk("Routing peripheral interrupts to guest\n");
+>      /* TODO Get from device tree */
+>      gic_route_irq_to_guest(d, 34, "timer0");
+> diff --git a/xen/arch/arm/gic.c b/xen/arch/arm/gic.c
+> index 339c327..a398f92 100644
+> --- a/xen/arch/arm/gic.c
+> +++ b/xen/arch/arm/gic.c
+> @@ -541,14 +541,13 @@ void gic_interrupt(struct cpu_user_regs *regs, int is_fiq)
+>      do_IRQ(regs, irq, is_fiq);
+>  }
+>  
+> -void gicv_setup(struct domain *d)
+> +int gicv_setup(struct domain *d)
+>  {
+> +    printk("GICV setup for DOM%d\n", d->domain_id);
+> +
+>      /* map the gic virtual cpu interface in the gic cpu interface region of
+>       * the guest */
+> -    printk("mapping GICC at %#"PRIx32" to %#"PRIx32"\n",
+> -           GIC_BASE_ADDRESS + GIC_CR_OFFSET,
+> -           GIC_BASE_ADDRESS + GIC_VR_OFFSET);
+> -    map_mmio_regions(d, GIC_BASE_ADDRESS + GIC_CR_OFFSET,
+> +    return map_mmio_regions(d, GIC_BASE_ADDRESS + GIC_CR_OFFSET,
+>                          GIC_BASE_ADDRESS + GIC_CR_OFFSET + (2 * PAGE_SIZE) - 1,
+>                          GIC_BASE_ADDRESS + GIC_VR_OFFSET);
+>  }
+> diff --git a/xen/arch/arm/gic.h b/xen/arch/arm/gic.h
+> index ac9cf3a..018d820 100644
+> --- a/xen/arch/arm/gic.h
+> +++ b/xen/arch/arm/gic.h
+> @@ -148,7 +148,7 @@ extern void gic_init_secondary_cpu(void);
+>  /* Take down a CPU's per-CPU GIC interface */
+>  extern void gic_disable_cpu(void);
+>  /* setup the gic virtual interface for a guest */
+> -extern void gicv_setup(struct domain *d);
+> +extern int gicv_setup(struct domain *d);
+>  
+>  /* Context switch */
+>  extern void gic_save_state(struct vcpu *v);
+> diff --git a/xen/arch/arm/p2m.c b/xen/arch/arm/p2m.c
+> index c4daf83..0665445 100644
+> --- a/xen/arch/arm/p2m.c
+> +++ b/xen/arch/arm/p2m.c
+> @@ -4,6 +4,7 @@
+>  #include <xen/errno.h>
+>  #include <xen/domain_page.h>
+>  #include <asm/flushtlb.h>
+> +#include "gic.h"
+>  
+>  void dump_p2m_lookup(struct domain *d, paddr_t addr)
+>  {
+> @@ -138,7 +139,7 @@ static int p2m_create_entry(struct domain *d,
+>  
+>      BUG_ON(entry->p2m.valid);
+>  
+> -    page = alloc_domheap_page(d, 0);
+> +    page = alloc_domheap_page(NULL, 0);
+>      if ( page == NULL )
+>          return -ENOMEM;
+>  
+> -- 
+> 1.7.9.1
+> 
+> 
+> _______________________________________________
+> Xen-devel mailing list
+> Xen-devel@lists.xen.org
+> http://lists.xen.org/xen-devel
+> 
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<alpine.DEB.2.02.1206071140160.2415@kaball.uk.xensource.com> b/config/examples/test/corpus/<alpine.DEB.2.02.1206071140160.2415@kaball.uk.xensource.com>
new file mode 100644 (file)
index 0000000..0f0db89
--- /dev/null
@@ -0,0 +1,132 @@
+From xen-devel-bounces@lists.xen.org Thu Jun 07 11:45:31 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 07 Jun 2012 11:45:31 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1ScaDV-00042o-71
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 07 Jun 2012 11:45:30 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1ScaA7-0003jJ-FG; Thu, 07 Jun 2012 10:41:55 +0000
+Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1ScaA5-0003j9-Fk
+       for xen-devel@lists.xen.org; Thu, 07 Jun 2012 10:41:53 +0000
+Received: from [193.109.254.147:49178] by server-10.bemta-14.messagelabs.com
+       id C5/C7-25709-07580DF4; Thu, 07 Jun 2012 10:41:52 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-5.tower-27.messagelabs.com!1339065712!6130838!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDE0Nzk=\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 27676 invoked from network); 7 Jun 2012 10:41:52 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-5.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
+       7 Jun 2012 10:41:52 -0000
+X-IronPort-AV: E=Sophos;i="4.75,730,1330905600"; d="scan'208";a="12878042"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       07 Jun 2012 10:41:41 +0000
+Received: from kaball.uk.xensource.com (10.80.2.59) by
+       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
+       8.3.213.0; Thu, 7 Jun 2012 11:41:41 +0100
+Date: Thu, 7 Jun 2012 11:41:25 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-X-Sender: sstabellini@kaball.uk.xensource.com
+To: Ian Campbell <ian.campbell@citrix.com>
+In-Reply-To: <1338565207-2888-29-git-send-email-ian.campbell@citrix.com>
+Message-ID: <alpine.DEB.2.02.1206071140160.2415@kaball.uk.xensource.com>
+References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
+       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+       <1338565207-2888-29-git-send-email-ian.campbell@citrix.com>
+User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 29/38] arm: delay enabling data-cache until
+ paging enabled.
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Fri, 1 Jun 2012, Ian Campbell wrote:
+> cached before paging was enabled had been mapped with to inconsistent sets of
+> attributes. I'm not convinced that isn't a model issue, nor am I convinced
+> this has really fixed anything, but it seems sensible enough.
+> 
+> Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+> ---
+>  xen/arch/arm/head.S |    9 +++++++--
+>  1 files changed, 7 insertions(+), 2 deletions(-)
+> 
+> diff --git a/xen/arch/arm/head.S b/xen/arch/arm/head.S
+> index 9a7714a..71197af 100644
+> --- a/xen/arch/arm/head.S
+> +++ b/xen/arch/arm/head.S
+> @@ -148,10 +148,11 @@ hyp:
+>       * Exceptions in LE ARM,
+>       * Low-latency IRQs disabled,
+>       * Write-implies-XN disabled (for now),
+> -     * I-cache and d-cache enabled,
+> +     * D-cache diabled (for now),
+                 ^ misspell
+> +     * I-cache enabled,
+>       * Alignment checking enabled,
+>       * MMU translation disabled (for now). */
+> -    ldr   r0, =(HSCTLR_BASE|SCTLR_A|SCTLR_C)
+> +    ldr   r0, =(HSCTLR_BASE|SCTLR_A)
+>      mcr   CP32(r0, HSCTLR)
+>  
+>      /* Write Xen's PT's paddr into the HTTBR */
+> @@ -217,6 +218,10 @@ pt_ready:
+>      mov   pc, r1                 /* Get a proper vaddr into PC */
+>  paging:
+>  
+> +    mrc   CP32(r0, HSCTLR)       /* Now enable data cache */
+> +    orr   r0, r0, #(SCTLR_C)
+> +    mcr   CP32(r0, HSCTLR)
+> +
+>  #ifdef EARLY_UART_ADDRESS
+>      /* Recover the UART address in the new address space. */
+>      lsl   r11, #11
+> -- 
+> 1.7.9.1
+> 
+> 
+> _______________________________________________
+> Xen-devel mailing list
+> Xen-devel@lists.xen.org
+> http://lists.xen.org/xen-devel
+> 
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<alpine.DEB.2.02.1206071146180.2415@kaball.uk.xensource.com> b/config/examples/test/corpus/<alpine.DEB.2.02.1206071146180.2415@kaball.uk.xensource.com>
new file mode 100644 (file)
index 0000000..95451c3
--- /dev/null
@@ -0,0 +1,175 @@
+From xen-devel-bounces@lists.xen.org Thu Jun 07 11:53:32 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 07 Jun 2012 11:53:32 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1ScaLK-00044b-2w
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 07 Jun 2012 11:53:32 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1ScaHy-000449-S3; Thu, 07 Jun 2012 10:50:02 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1ScaHx-000442-8z
+       for xen-devel@lists.xen.org; Thu, 07 Jun 2012 10:50:01 +0000
+Received: from [85.158.139.83:16635] by server-3.bemta-5.messagelabs.com id
+       CA/79-17554-85780DF4; Thu, 07 Jun 2012 10:50:00 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-7.tower-182.messagelabs.com!1339066199!28471347!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDE0Nzk=\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 8031 invoked from network); 7 Jun 2012 10:50:00 -0000
+Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-7.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
+       7 Jun 2012 10:50:00 -0000
+X-IronPort-AV: E=Sophos;i="4.75,730,1330905600"; d="scan'208";a="12878244"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       07 Jun 2012 10:49:59 +0000
+Received: from kaball.uk.xensource.com (10.80.2.59) by
+       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
+       8.3.213.0; Thu, 7 Jun 2012 11:50:00 +0100
+Date: Thu, 7 Jun 2012 11:49:43 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-X-Sender: sstabellini@kaball.uk.xensource.com
+To: Ian Campbell <ian.campbell@citrix.com>
+In-Reply-To: <1338565207-2888-31-git-send-email-ian.campbell@citrix.com>
+Message-ID: <alpine.DEB.2.02.1206071146180.2415@kaball.uk.xensource.com>
+References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
+       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+       <1338565207-2888-31-git-send-email-ian.campbell@citrix.com>
+User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 31/38] arm: gic.lock can be taken in
+ interrupt context, so lock appropriately.
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Fri, 1 Jun 2012, Ian Campbell wrote:
+> In particular it is taken by gic_set_guest_irq which is called by
+> vgic_vcpu_inject_irq
+> 
+> Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+> ---
+>  xen/arch/arm/gic.c |   20 ++++++++++----------
+>  1 files changed, 10 insertions(+), 10 deletions(-)
+> 
+> diff --git a/xen/arch/arm/gic.c b/xen/arch/arm/gic.c
+> index a398f92..ededa99 100644
+> --- a/xen/arch/arm/gic.c
+> +++ b/xen/arch/arm/gic.c
+> @@ -329,19 +329,19 @@ int __init gic_init(void)
+>  /* Set up the per-CPU parts of the GIC for a secondary CPU */
+>  void __cpuinit gic_init_secondary_cpu(void)
+>  {
+> -    spin_lock(&gic.lock);
+> +    spin_lock_irq(&gic.lock);
+>      gic_cpu_init();
+>      gic_hyp_init();
+> -    spin_unlock(&gic.lock);
+> +    spin_unlock_irq(&gic.lock);
+>  }
+>  
+>  /* Shut down the per-CPU GIC interface */
+>  void gic_disable_cpu(void)
+>  {
+> -    spin_lock(&gic.lock);
+> +    spin_lock_irq(&gic.lock);
+>      gic_cpu_disable();
+>      gic_hyp_disable();
+> -    spin_unlock(&gic.lock);
+> +    spin_unlock_irq(&gic.lock);
+>  }
+>  
+>  void gic_route_irqs(void)
+> @@ -439,7 +439,7 @@ void gic_set_guest_irq(unsigned int virtual_irq,
+>  
+>      events_maintenance(current);
+>  
+> -    spin_lock(&gic.lock);
+> +    spin_lock_irq(&gic.lock);
+>  
+>      if ( list_empty(&gic.lr_pending) )
+>      {
+> @@ -465,7 +465,7 @@ void gic_set_guest_irq(unsigned int virtual_irq,
+>      list_add_tail(&n->lr_queue, &gic.lr_pending);
+>  
+>  out:
+> -    spin_unlock(&gic.lock);
+> +    spin_unlock_irq(&gic.lock);
+>      return;
+>  }
+>  
+> @@ -559,7 +559,7 @@ static void events_maintenance(struct vcpu *v)
+>              (unsigned long *)&vcpu_info(v, evtchn_upcall_pending));
+>  
+>      if (!already_pending && gic.event_mask != 0) {
+> -        spin_lock(&gic.lock);
+> +        spin_lock_irq(&gic.lock);
+>          while ((i = find_next_bit((const long unsigned int *) &gic.event_mask,
+>                          sizeof(uint64_t), i)) < sizeof(uint64_t)) {
+>  
+> @@ -569,7 +569,7 @@ static void events_maintenance(struct vcpu *v)
+>  
+>              i++;
+>          }
+> -        spin_unlock(&gic.lock);
+> +        spin_unlock_irq(&gic.lock);
+>      }
+>  }
+>  
+> @@ -585,7 +585,7 @@ static void maintenance_interrupt(int irq, void *dev_id, struct cpu_user_regs *r
+>                                sizeof(eisr), i)) < sizeof(eisr)) {
+>          struct pending_irq *p;
+>  
+> -        spin_lock(&gic.lock);
+> +        spin_lock_irq(&gic.lock);
+>          lr = GICH[GICH_LR + i];
+>          virq = lr & GICH_LR_VIRTUAL_MASK;
+>          GICH[GICH_LR + i] = 0;
+> @@ -601,7 +601,7 @@ static void maintenance_interrupt(int irq, void *dev_id, struct cpu_user_regs *r
+>          } else {
+>              gic_inject_irq_stop();
+>          }
+> -        spin_unlock(&gic.lock);
+> +        spin_unlock_irq(&gic.lock);
+>  
+>          spin_lock(&current->arch.vgic.lock);
+               ^
+shouldn't you change this into spin_lock_irq too?
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<alpine.DEB.2.02.1206071154420.2415@kaball.uk.xensource.com> b/config/examples/test/corpus/<alpine.DEB.2.02.1206071154420.2415@kaball.uk.xensource.com>
new file mode 100644 (file)
index 0000000..a3db4de
--- /dev/null
@@ -0,0 +1,167 @@
+From xen-devel-bounces@lists.xen.org Thu Jun 07 12:01:38 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 07 Jun 2012 12:01:38 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1ScaT5-00046j-D5
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 07 Jun 2012 12:01:38 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1ScaPH-0004gv-Nf; Thu, 07 Jun 2012 10:57:35 +0000
+Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1ScaPF-0004gg-Jg
+       for xen-devel@lists.xen.org; Thu, 07 Jun 2012 10:57:33 +0000
+Received: from [193.109.254.147:16687] by server-11.bemta-14.messagelabs.com
+       id D0/21-02727-C1980DF4; Thu, 07 Jun 2012 10:57:32 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-9.tower-27.messagelabs.com!1339066635!8550059!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDE0Nzk=\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 20197 invoked from network); 7 Jun 2012 10:57:15 -0000
+Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-9.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
+       7 Jun 2012 10:57:15 -0000
+X-IronPort-AV: E=Sophos;i="4.75,730,1330905600"; d="scan'208";a="12878438"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       07 Jun 2012 10:57:14 +0000
+Received: from kaball.uk.xensource.com (10.80.2.59) by
+       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
+       8.3.213.0; Thu, 7 Jun 2012 11:57:14 +0100
+Date: Thu, 7 Jun 2012 11:56:58 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-X-Sender: sstabellini@kaball.uk.xensource.com
+To: Ian Campbell <ian.campbell@citrix.com>
+In-Reply-To: <1338565207-2888-34-git-send-email-ian.campbell@citrix.com>
+Message-ID: <alpine.DEB.2.02.1206071154420.2415@kaball.uk.xensource.com>
+References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
+       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+       <1338565207-2888-34-git-send-email-ian.campbell@citrix.com>
+User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 34/38] HACK: arm: initial
+ XENMAPSPACE_gmfn_foreign
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Fri, 1 Jun 2012, Ian Campbell wrote:
+> Should use same interface as hybrid x86.
+> ---
+>  xen/arch/arm/mm.c             |   32 ++++++++++++++++++++++++++------
+>  xen/arch/x86/mm.c             |    2 ++
+>  xen/include/public/arch-arm.h |    1 +
+>  xen/include/public/memory.h   |   12 +++++++-----
+>  4 files changed, 36 insertions(+), 11 deletions(-)
+> 
+> diff --git a/xen/arch/arm/mm.c b/xen/arch/arm/mm.c
+> index ab52171..1832e7f 100644
+> --- a/xen/arch/arm/mm.c
+> +++ b/xen/arch/arm/mm.c
+> @@ -480,12 +480,32 @@ static int xenmem_add_to_physmap_once(
+>  
+>      switch ( xatp->space )
+>      {
+> -        case XENMAPSPACE_shared_info:
+> -            if ( xatp->idx == 0 )
+> -                mfn = virt_to_mfn(d->shared_info);
+> -            break;
+> -        default:
+> -            return -ENOSYS;
+> +    case XENMAPSPACE_shared_info:
+> +        if ( xatp->idx == 0 )
+> +            mfn = virt_to_mfn(d->shared_info);
+> +        break;
+> +    case XENMAPSPACE_gmfn_foreign:
+> +    {
+> +        paddr_t maddr;
+> +        struct domain *od;
+> +
+> +        rc = rcu_lock_target_domain_by_id(xatp->foreign_domid, &od);
+> +        if ( rc < 0 )
+> +            return rc;
+> +        maddr = p2m_lookup(od, xatp->idx << PAGE_SHIFT);
+> +        if ( maddr == INVALID_PADDR )
+> +        {
+> +            printk("bad p2m lookup\n");
+> +            dump_p2m_lookup(od, xatp->idx << PAGE_SHIFT);
+> +            rcu_unlock_domain(od);
+> +            return -EINVAL;
+> +        }
+> +        mfn = maddr >> PAGE_SHIFT;
+> +        rcu_unlock_domain(od);
+> +        break;
+> +    }
+
+It is probably a good idea at least to test xatp->size and WARN if it is
+not 1 page.
+
+
+> +    default:
+> +        return -ENOSYS;
+>      }
+>  
+>      domain_lock(d);
+> diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c
+> index 876e1ef..d6c90f9 100644
+> --- a/xen/arch/x86/mm.c
+> +++ b/xen/arch/x86/mm.c
+> @@ -4572,6 +4572,8 @@ static int xenmem_add_to_physmap_once(
+>              mfn = idx;
+>              page = mfn_to_page(mfn);
+>              break;
+> +        case XENMAPSPACE_gmfn_foreign:
+> +            return -ENOSYS;
+>          }
+>          default:
+>              break;
+> diff --git a/xen/include/public/arch-arm.h b/xen/include/public/arch-arm.h
+> index e915cbf..b52bfc7 100644
+> --- a/xen/include/public/arch-arm.h
+> +++ b/xen/include/public/arch-arm.h
+> @@ -121,6 +121,7 @@ typedef uint64_t xen_pfn_t;
+>  #define XEN_LEGACY_MAX_VCPUS 1
+>  
+>  typedef uint32_t xen_ulong_t;
+> +#define PRI_xen_ulong PRIx32
+>  
+>  struct vcpu_guest_context {
+>      struct cpu_user_regs user_regs;         /* User-level CPU registers     */
+
+Why did you need to define this here?
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<alpine.DEB.2.02.1206071159120.2415@kaball.uk.xensource.com> b/config/examples/test/corpus/<alpine.DEB.2.02.1206071159120.2415@kaball.uk.xensource.com>
new file mode 100644 (file)
index 0000000..cdbdb0a
--- /dev/null
@@ -0,0 +1,108 @@
+From xen-devel-bounces@lists.xen.org Thu Jun 07 12:04:43 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 07 Jun 2012 12:04:43 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1ScaW9-00047d-Ke
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 07 Jun 2012 12:04:43 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1ScaSB-0004xr-C6; Thu, 07 Jun 2012 11:00:35 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1ScaS9-0004xj-Ow
+       for xen-devel@lists.xen.org; Thu, 07 Jun 2012 11:00:33 +0000
+Received: from [85.158.143.99:24202] by server-3.bemta-4.messagelabs.com id
+       4D/EB-29237-0D980DF4; Thu, 07 Jun 2012 11:00:32 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-5.tower-216.messagelabs.com!1339066831!31399469!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDE0Nzk=\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 3373 invoked from network); 7 Jun 2012 11:00:32 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-5.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
+       7 Jun 2012 11:00:32 -0000
+X-IronPort-AV: E=Sophos;i="4.75,730,1330905600"; d="scan'208";a="12878506"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       07 Jun 2012 11:00:30 +0000
+Received: from kaball.uk.xensource.com (10.80.2.59) by
+       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
+       8.3.213.0; Thu, 7 Jun 2012 12:00:31 +0100
+Date: Thu, 7 Jun 2012 12:00:14 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-X-Sender: sstabellini@kaball.uk.xensource.com
+To: Ian Campbell <ian.campbell@citrix.com>
+In-Reply-To: <1338565207-2888-38-git-send-email-ian.campbell@citrix.com>
+Message-ID: <alpine.DEB.2.02.1206071159120.2415@kaball.uk.xensource.com>
+References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
+       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+       <1338565207-2888-38-git-send-email-ian.campbell@citrix.com>
+User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 38/38] HACK: arm: disable hypercall
+ continuations.
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Fri, 1 Jun 2012, Ian Campbell wrote:
+> Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+>  xen/include/xen/sched.h |    4 ++++
+>  1 files changed, 4 insertions(+), 0 deletions(-)
+> 
+> diff --git a/xen/include/xen/sched.h b/xen/include/xen/sched.h
+> index 53804c8..15fa6b4 100644
+> --- a/xen/include/xen/sched.h
+> +++ b/xen/include/xen/sched.h
+> @@ -577,10 +577,14 @@ unsigned long hypercall_create_continuation(
+>      unsigned int op, const char *format, ...);
+>  void hypercall_cancel_continuation(void);
+>  
+> +#ifdef CONFIG_ARM
+> +#define hypercall_preempt_check() (0)
+> +#else
+>  #define hypercall_preempt_check() (unlikely(    \
+>          softirq_pending(smp_processor_id()) |   \
+>          local_events_need_delivery()            \
+>      ))
+> +#endif
+
+
+I think it is fine for now, but could we add a TODO comment on it?
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<alpine.DEB.2.02.1206071214020.2415@kaball.uk.xensource.com> b/config/examples/test/corpus/<alpine.DEB.2.02.1206071214020.2415@kaball.uk.xensource.com>
new file mode 100644 (file)
index 0000000..a507d84
--- /dev/null
@@ -0,0 +1,553 @@
+From xen-devel-bounces@lists.xen.org Thu Jun 07 12:42:35 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 07 Jun 2012 12:42:35 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1Scb6l-0004Ht-G5
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 07 Jun 2012 12:42:35 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1Scb3U-0006li-80; Thu, 07 Jun 2012 11:39:08 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1Scb3S-0006lF-K6
+       for xen-devel@lists.xen.org; Thu, 07 Jun 2012 11:39:07 +0000
+Received: from [85.158.138.51:12717] by server-4.bemta-3.messagelabs.com id
+       DE/12-13598-9D290DF4; Thu, 07 Jun 2012 11:39:05 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-4.tower-174.messagelabs.com!1339069144!31209603!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDE0Nzk=\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 26786 invoked from network); 7 Jun 2012 11:39:04 -0000
+Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-4.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
+       7 Jun 2012 11:39:04 -0000
+X-IronPort-AV: E=Sophos;i="4.75,730,1330905600"; d="scan'208";a="12879406"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       07 Jun 2012 11:39:04 +0000
+Received: from kaball.uk.xensource.com (10.80.2.59) by
+       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
+       8.3.213.0; Thu, 7 Jun 2012 12:39:04 +0100
+Date: Thu, 7 Jun 2012 12:38:45 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-X-Sender: sstabellini@kaball.uk.xensource.com
+To: Ian Campbell <ian.campbell@citrix.com>
+In-Reply-To: <1338565207-2888-36-git-send-email-ian.campbell@citrix.com>
+Message-ID: <alpine.DEB.2.02.1206071214020.2415@kaball.uk.xensource.com>
+References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
+       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+       <1338565207-2888-36-git-send-email-ian.campbell@citrix.com>
+User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 36/38] libxc: add ARM support to xc_dom (PV
+ domain building)
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Fri, 1 Jun 2012, Ian Campbell wrote:
+> Includes ARM zImage support.
+> 
+> Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+> ---
+>  tools/libxc/Makefile                 |    1 +
+>  tools/libxc/xc_dom.h                 |    5 +-
+>  tools/libxc/xc_dom_arm.c             |  135 +++++++++++++++++++++++++++-
+>  tools/libxc/xc_dom_armzimageloader.c |  167 ++++++++++++++++++++++++++++++++++
+>  tools/libxc/xc_dom_core.c            |   12 ++-
+>  tools/libxc/xg_private.h             |    4 +
+>  6 files changed, 315 insertions(+), 9 deletions(-)
+>  create mode 100644 tools/libxc/xc_dom_armzimageloader.c
+> 
+> diff --git a/tools/libxc/Makefile b/tools/libxc/Makefile
+> index ca38cbd..a01d457 100644
+> --- a/tools/libxc/Makefile
+> +++ b/tools/libxc/Makefile
+> @@ -59,6 +59,7 @@ GUEST_SRCS-y += libelf-dominfo.c libelf-relocate.c
+>  GUEST_SRCS-y                 += xc_dom_core.c xc_dom_boot.c
+>  GUEST_SRCS-y                 += xc_dom_elfloader.c
+>  GUEST_SRCS-$(CONFIG_X86)     += xc_dom_bzimageloader.c
+> +GUEST_SRCS-$(CONFIG_ARM)     += xc_dom_armzimageloader.c
+>  GUEST_SRCS-y                 += xc_dom_binloader.c
+>  GUEST_SRCS-y                 += xc_dom_compat_linux.c
+> 
+> diff --git a/tools/libxc/xc_dom.h b/tools/libxc/xc_dom.h
+> index 2aef64a..4db8fad 100644
+> --- a/tools/libxc/xc_dom.h
+> +++ b/tools/libxc/xc_dom.h
+> @@ -93,6 +93,7 @@ struct xc_dom_image {
+>      void *p2m_guest;
+> 
+>      /* physical memory */
+> +    xen_pfn_t rambase_pfn;
+>      xen_pfn_t total_pages;
+>      struct xc_dom_phys *phys_pages;
+>      int realmodearea_log;
+> @@ -286,7 +287,7 @@ static inline xen_pfn_t xc_dom_p2m_host(struct xc_dom_image *dom, xen_pfn_t pfn)
+>  {
+>      if (dom->shadow_enabled)
+>          return pfn;
+> -    return dom->p2m_host[pfn];
+> +    return dom->p2m_host[pfn - dom->rambase_pfn];
+>  }
+> 
+>  static inline xen_pfn_t xc_dom_p2m_guest(struct xc_dom_image *dom,
+> @@ -294,7 +295,7 @@ static inline xen_pfn_t xc_dom_p2m_guest(struct xc_dom_image *dom,
+>  {
+>      if (xc_dom_feature_translated(dom))
+>          return pfn;
+> -    return dom->p2m_host[pfn];
+> +    return dom->p2m_host[pfn - dom->rambase_pfn];
+>  }
+
+I take that rambase_pfn is the offset in the guest physical address
+space where the ram is located. It would be nice to write it down.
+
+
+>  /* --- arch bits --------------------------------------------------- */
+> diff --git a/tools/libxc/xc_dom_arm.c b/tools/libxc/xc_dom_arm.c
+> index 122d0e8..9099cad 100644
+> --- a/tools/libxc/xc_dom_arm.c
+> +++ b/tools/libxc/xc_dom_arm.c
+> @@ -18,14 +18,138 @@
+>   * Copyright (c) 2011, Citrix Systems
+>   */
+>  #include <inttypes.h>
+> +
+>  #include <xen/xen.h>
+> +#include <xen/io/protocols.h>
+> +
+>  #include "xg_private.h"
+>  #include "xc_dom.h"
+> 
+> +/* ------------------------------------------------------------------------ */
+> +/*
+> + * arm guests are hybrid and start off with paging disabled, therefore no
+> + * pagetables and nothing to do here.
+> + */
+> +static int count_pgtables_arm(struct xc_dom_image *dom)
+> +{
+> +    DOMPRINTF_CALLED(dom->xch);
+> +    return 0;
+> +}
+> +
+> +static int setup_pgtables_arm(struct xc_dom_image *dom)
+> +{
+> +    DOMPRINTF_CALLED(dom->xch);
+> +    return 0;
+> +}
+> +
+> +/* ------------------------------------------------------------------------ */
+> +
+> +static int alloc_magic_pages(struct xc_dom_image *dom)
+> +{
+> +    DOMPRINTF_CALLED(dom->xch);
+> +    /* XXX
+> +     *   dom->p2m_guest
+> +     *   dom->start_info_pfn
+> +     *   dom->xenstore_pfn
+> +     *   dom->console_pfn
+> +     */
+> +    return 0;
+> +}
+> +
+> +/* ------------------------------------------------------------------------ */
+> +
+> +static int start_info_arm(struct xc_dom_image *dom)
+> +{
+> +    DOMPRINTF_CALLED(dom->xch);
+> +    /* XXX */
+> +    return 0;
+> +}
+> +
+> +static int shared_info_arm(struct xc_dom_image *dom, void *ptr)
+> +{
+> +    DOMPRINTF_CALLED(dom->xch);
+> +    /* XXX */
+> +    return 0;
+> +}
+> +
+> +/* ------------------------------------------------------------------------ */
+> +
+> +static int vcpu_arm(struct xc_dom_image *dom, void *ptr)
+> +{
+> +    vcpu_guest_context_t *ctxt = ptr;
+> +
+> +    DOMPRINTF_CALLED(dom->xch);
+> +
+> +    /* clear everything */
+> +    memset(ctxt, 0, sizeof(*ctxt));
+> +
+> +    ctxt->user_regs.pc = dom->parms.virt_entry;
+> +    ctxt->user_regs.r0 = 0; /* SBZ */
+> +    ctxt->user_regs.r1 = 2272; /* Machine NR: Versatile Express */
+> +
+> +    ctxt->user_regs.r2 = 0xffffffff; //devicetree_seg //dtb_paddr; //atags or dtb /* XXX using APPEND right now */
+> +    ctxt->user_regs.r3 = 0xdeadbeef;
+> +    ctxt->sctlr = /* #define SCTLR_BASE */0x00c50078;
+> +    ctxt->ttbr0 = 0;
+> +    ctxt->ttbr1 = 0;
+> +    ctxt->ttbcr = 0; /* Defined Reset Value */
+> +
+> +    ctxt->user_regs.cpsr = PSR_ABT_MASK|PSR_FIQ_MASK|PSR_IRQ_MASK|PSR_MODE_SVC;
+> +
+> +    DOMPRINTF("Initial state CPSR %#"PRIx32" PC %#"PRIx32,
+> +           ctxt->user_regs.cpsr, ctxt->user_regs.pc);
+> +
+> +    return 0;
+> +}
+> +
+> +/* ------------------------------------------------------------------------ */
+> +
+> +static struct xc_dom_arch xc_dom_32 = {
+> +    .guest_type = "xen-3.0-armv7l",
+> +    .native_protocol = XEN_IO_PROTO_ABI_ARM,
+> +    .page_shift = PAGE_SHIFT_ARM,
+> +    .sizeof_pfn = 8,
+> +    .alloc_magic_pages = alloc_magic_pages,
+> +    .count_pgtables = count_pgtables_arm,
+> +    .setup_pgtables = setup_pgtables_arm,
+> +    .start_info = start_info_arm,
+> +    .shared_info = shared_info_arm,
+> +    .vcpu = vcpu_arm,
+> +};
+> +
+> +static void __init register_arch_hooks(void)
+> +{
+> +    xc_dom_register_arch_hooks(&xc_dom_32);
+> +}
+> +
+>  int arch_setup_meminit(struct xc_dom_image *dom)
+>  {
+> -    errno = ENOSYS;
+> -    return -1;
+> +    int rc;
+> +    xen_pfn_t pfn, allocsz, i;
+> +
+> +    dom->shadow_enabled = 1;
+> +
+> +    dom->p2m_host = xc_dom_malloc(dom, sizeof(xen_pfn_t) * dom->total_pages);
+> +
+> +    /* setup initial p2m */
+> +    for ( pfn = 0; pfn < dom->total_pages; pfn++ )
+> +        dom->p2m_host[pfn] = pfn + dom->rambase_pfn;
+
+uhm.. so maybe rambase_pfn is the offset in the machine address space where
+the guest ram has been allocated?
+
+
+> +    /* allocate guest memory */
+> +    for ( i = rc = allocsz = 0;
+> +          (i < dom->total_pages) && !rc;
+> +          i += allocsz )
+> +    {
+> +        allocsz = dom->total_pages - i;
+> +        if ( allocsz > 1024*1024 )
+> +            allocsz = 1024*1024;
+> +
+> +        rc = xc_domain_populate_physmap_exact(
+> +            dom->xch, dom->guest_domid, allocsz,
+> +            0, 0, &dom->p2m_host[i]);
+> +    }
+> +
+> +    return 0;
+>  }
+> 
+>  int arch_setup_bootearly(struct xc_dom_image *dom)
+> @@ -36,9 +160,14 @@ int arch_setup_bootearly(struct xc_dom_image *dom)
+> 
+>  int arch_setup_bootlate(struct xc_dom_image *dom)
+>  {
+> -    DOMPRINTF("%s: doing nothing", __FUNCTION__);
+> +    /* XXX
+> +     *   map shared info
+> +     *   map grant tables
+> +     *   setup shared info
+> +     */
+>      return 0;
+>  }
+> +
+>  /*
+>   * Local variables:
+>   * mode: C
+> diff --git a/tools/libxc/xc_dom_armzimageloader.c b/tools/libxc/xc_dom_armzimageloader.c
+> new file mode 100644
+> index 0000000..220176d
+> --- /dev/null
+> +++ b/tools/libxc/xc_dom_armzimageloader.c
+> @@ -0,0 +1,167 @@
+> +/*
+> + * Xen domain builder -- ARM zImage bits
+> + *
+> + * Parse and load ARM zImage kernel images.
+> + *
+> + * Copyright (C) 2012, Citrix Systems.
+> + *
+> + * This library is free software; you can redistribute it and/or
+> + * modify it under the terms of the GNU Lesser General Public
+> + * License as published by the Free Software Foundation;
+> + * version 2.1 of the License.
+> + *
+> + * This library is distributed in the hope that it will be useful,
+> + * but WITHOUT ANY WARRANTY; without even the implied warranty of
+> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+> + * Lesser General Public License for more details.
+> + *
+> + * You should have received a copy of the GNU Lesser General Public
+> + * License along with this library; if not, write to the Free Software
+> + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
+> + *
+> + */
+> +
+> +#include <stdio.h>
+> +#include <stdlib.h>
+> +#include <inttypes.h>
+> +
+> +#include "xg_private.h"
+> +#include "xc_dom.h"
+> +
+> +#include <arpa/inet.h> /* XXX ntohl is not the right function... */
+
+Yes, you are right, we should write a be32_to_cpu (the ones in Xen, QEMU
+and Linux are GPLv2 rather than LGLPv2).
+
+
+> +#define ZIMAGE_MAGIC_OFFSET 0x24
+> +#define ZIMAGE_START_OFFSET 0x28
+> +#define ZIMAGE_END_OFFSET   0x2c
+> +
+> +#define ZIMAGE_MAGIC 0x016f2818
+> +
+> +struct minimal_dtb_header {
+> +    uint32_t magic;
+> +    uint32_t total_size;
+> +    /* There are other fields but we don't use them yet. */
+> +};
+> +
+> +#define DTB_MAGIC 0xd00dfeed
+> +
+> +static int xc_dom_probe_zimage_kernel(struct xc_dom_image *dom)
+> +{
+> +    uint32_t *zimage;
+> +    uint32_t end;
+> +
+> +    if ( dom->kernel_blob == NULL )
+> +    {
+> +        xc_dom_panic(dom->xch, XC_INTERNAL_ERROR,
+> +                     "%s: no kernel image loaded", __FUNCTION__);
+> +        return -EINVAL;
+> +    }
+> +
+> +    if ( dom->kernel_size < 0x30 /*sizeof(struct setup_header)*/ )
+> +    {
+> +        xc_dom_printf(dom->xch, "%s: kernel image too small", __FUNCTION__);
+> +        return -EINVAL;
+> +    }
+> +
+> +    zimage = (uint32_t *)dom->kernel_blob;
+> +    if ( zimage[ZIMAGE_MAGIC_OFFSET/4] != ZIMAGE_MAGIC )
+> +    {
+> +        xc_dom_printf(dom->xch, "%s: kernel is not a bzImage", __FUNCTION__);
+> +        return -EINVAL;
+> +    }
+> +
+> +    end = zimage[ZIMAGE_END_OFFSET/4];
+> +
+> +    /*
+> +     * Check for an appended DTB.
+> +     */
+> +    if ( end + sizeof(struct minimal_dtb_header) < dom->kernel_size ) {
+> +        struct minimal_dtb_header *dtb_hdr;
+> +        dtb_hdr = (struct minimal_dtb_header *)(dom->kernel_blob + end);
+> +        if (ntohl/*be32_to_cpu*/(dtb_hdr->magic) == DTB_MAGIC) {
+> +            xc_dom_printf(dom->xch, "%s: found an appended DTB", __FUNCTION__);
+> +            end += ntohl/*be32_to_cpu*/(dtb_hdr->total_size);
+> +        }
+> +    }
+> +
+> +    dom->kernel_size = end;
+> +
+> +    return 0;
+> +}
+> +
+> +static int xc_dom_parse_zimage_kernel(struct xc_dom_image *dom)
+> +{
+> +    uint32_t *zimage;
+> +    uint32_t start, entry_addr;
+> +    uint64_t v_start, v_end;
+> +    uint64_t rambase = 0x80000000; /* XXX */
+> +
+> +    DOMPRINTF_CALLED(dom->xch);
+> +
+> +    zimage = (uint32_t *)dom->kernel_blob;
+> +
+> +    dom->rambase_pfn = rambase >> XC_PAGE_SHIFT;
+> +
+> +    v_start = rambase + 0x8000; /* XXX */
+> +    v_end = v_start + dom->kernel_size;
+> +
+> +    start = zimage[ZIMAGE_START_OFFSET/4];
+> +
+> +    if (start == 0)
+> +        entry_addr = v_start;
+> +    else
+> +        entry_addr = start;
+> +
+> +    /* find kernel segment */
+> +    dom->kernel_seg.vstart = v_start;
+> +    dom->kernel_seg.vend   = v_end;
+> +
+> +    dom->parms.virt_entry = entry_addr;
+> +
+> +    dom->guest_type = "xen-3.0-armv7l";
+> +    DOMPRINTF("%s: %s: RAM starts at %"PRI_xen_pfn,
+> +              __FUNCTION__, dom->guest_type, dom->rambase_pfn);
+> +    DOMPRINTF("%s: %s: 0x%" PRIx64 " -> 0x%" PRIx64 "",
+> +              __FUNCTION__, dom->guest_type,
+> +              dom->kernel_seg.vstart, dom->kernel_seg.vend);
+> +    return 0;
+> +}
+> +
+> +static int xc_dom_load_zimage_kernel(struct xc_dom_image *dom)
+> +{
+> +    void *dst;
+> +
+> +    DOMPRINTF_CALLED(dom->xch);
+> +
+> +    dst = xc_dom_seg_to_ptr(dom, &dom->kernel_seg);
+> +
+> +    DOMPRINTF("%s: kernel sed %#"PRIx64"-%#"PRIx64,
+> +              __func__, dom->kernel_seg.vstart, dom->kernel_seg.vend);
+> +    DOMPRINTF("%s: copy %zd bytes from blob %p to dst %p",
+> +              __func__, dom->kernel_size, dom->kernel_blob, dst);
+> +
+> +    memcpy(dst, dom->kernel_blob, dom->kernel_size);
+> +
+> +    return 0;
+> +}
+> +
+> +static struct xc_dom_loader zimage_loader = {
+> +    .name = "Linux zImage (ARM)",
+> +    .probe = xc_dom_probe_zimage_kernel,
+> +    .parser = xc_dom_parse_zimage_kernel,
+> +    .loader = xc_dom_load_zimage_kernel,
+> +};
+> +
+> +static void __init register_loader(void)
+> +{
+> +    xc_dom_register_loader(&zimage_loader);
+> +}
+> +
+> +/*
+> + * Local variables:
+> + * mode: C
+> + * c-set-style: "BSD"
+> + * c-basic-offset: 4
+> + * tab-width: 4
+> + * indent-tabs-mode: nil
+> + * End:
+> + */
+> diff --git a/tools/libxc/xc_dom_core.c b/tools/libxc/xc_dom_core.c
+> index fea9de5..b0d48d5 100644
+> --- a/tools/libxc/xc_dom_core.c
+> +++ b/tools/libxc/xc_dom_core.c
+> @@ -307,15 +307,17 @@ void *xc_dom_pfn_to_ptr(struct xc_dom_image *dom, xen_pfn_t pfn,
+>                          xen_pfn_t count)
+>  {
+>      struct xc_dom_phys *phys;
+> +    xen_pfn_t offset;
+>      unsigned int page_shift = XC_DOM_PAGE_SHIFT(dom);
+>      char *mode = "unset";
+> 
+> -    if ( pfn > dom->total_pages ||    /* multiple checks to avoid overflows */
+> +    offset = pfn-dom->rambase_pfn;
+
+spaces around the '-' please
+
+
+> +    if ( offset > dom->total_pages ||    /* multiple checks to avoid overflows */
+>           count > dom->total_pages ||
+> -         pfn > dom->total_pages - count )
+> +         offset > dom->total_pages - count )
+>      {
+> -        DOMPRINTF("%s: pfn out of range (0x%" PRIpfn " > 0x%" PRIpfn ")",
+> -                  __FUNCTION__, pfn, dom->total_pages);
+> +        DOMPRINTF("%s: pfn %"PRI_xen_pfn" out of range (0x%" PRIpfn " > 0x%" PRIpfn ")",
+> +                  __FUNCTION__, pfn, offset, dom->total_pages);
+>          return NULL;
+>      }
+> 
+> @@ -599,6 +601,8 @@ struct xc_dom_image *xc_dom_allocate(xc_interface *xch,
+>      dom->parms.virt_hv_start_low = UNSET_ADDR;
+>      dom->parms.elf_paddr_offset = UNSET_ADDR;
+> 
+> +    dom->rambase_pfn = 0;
+> +
+>      dom->alloc_malloc += sizeof(*dom);
+>      return dom;
+
+There is no need to explicitly set rambase_pfn to 0, because the whole
+dom struct is memset to 0 few lines above.
+
+
+
+> diff --git a/tools/libxc/xg_private.h b/tools/libxc/xg_private.h
+> index a29fa26..a271942 100644
+> --- a/tools/libxc/xg_private.h
+> +++ b/tools/libxc/xg_private.h
+> @@ -148,6 +148,10 @@ typedef l4_pgentry_64_t l4_pgentry_t;
+>  #define l4_table_offset(_a) l4_table_offset_x86_64(_a)
+>  #endif
+> 
+> +#define PAGE_SHIFT_ARM          12
+> +#define PAGE_SIZE_ARM           (1UL << PAGE_SHIFT_ARM)
+> +#define PAGE_MASK_ARM           (~(PAGE_SIZE_ARM-1))
+> +
+>  #define PAGE_SHIFT_X86          12
+>  #define PAGE_SIZE_X86           (1UL << PAGE_SHIFT_X86)
+>  #define PAGE_MASK_X86           (~(PAGE_SIZE_X86-1))
+> --
+> 1.7.9.1
+> 
+> 
+> _______________________________________________
+> Xen-devel mailing list
+> Xen-devel@lists.xen.org
+> http://lists.xen.org/xen-devel
+> 
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<alpine.DEB.2.02.1206071239250.2415@kaball.uk.xensource.com> b/config/examples/test/corpus/<alpine.DEB.2.02.1206071239250.2415@kaball.uk.xensource.com>
new file mode 100644 (file)
index 0000000..6a7b2dd
--- /dev/null
@@ -0,0 +1,232 @@
+From xen-devel-bounces@lists.xen.org Thu Jun 07 12:46:14 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 07 Jun 2012 12:46:14 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1ScbAG-0004JD-VE
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 07 Jun 2012 12:46:14 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1Scb6b-0007AN-6d; Thu, 07 Jun 2012 11:42:21 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1Scb6Z-0007A8-6a
+       for xen-devel@lists.xen.org; Thu, 07 Jun 2012 11:42:19 +0000
+Received: from [85.158.139.83:33311] by server-11.bemta-5.messagelabs.com id
+       9E/DC-25194-A9390DF4; Thu, 07 Jun 2012 11:42:18 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-4.tower-182.messagelabs.com!1339069337!29724425!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDE0Nzk=\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 32593 invoked from network); 7 Jun 2012 11:42:17 -0000
+Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-4.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
+       7 Jun 2012 11:42:17 -0000
+X-IronPort-AV: E=Sophos;i="4.75,730,1330905600"; d="scan'208";a="12879482"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       07 Jun 2012 11:42:17 +0000
+Received: from kaball.uk.xensource.com (10.80.2.59) by
+       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
+       8.3.213.0; Thu, 7 Jun 2012 12:42:17 +0100
+Date: Thu, 7 Jun 2012 12:42:01 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-X-Sender: sstabellini@kaball.uk.xensource.com
+To: Ian Campbell <ian.campbell@citrix.com>
+In-Reply-To: <1338565207-2888-37-git-send-email-ian.campbell@citrix.com>
+Message-ID: <alpine.DEB.2.02.1206071239250.2415@kaball.uk.xensource.com>
+References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
+       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+       <1338565207-2888-37-git-send-email-ian.campbell@citrix.com>
+User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 37/38] HACK: add simple xcbuild
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Fri, 1 Jun 2012, Ian Campbell wrote:
+> Based on init-xenstore-domain.c.
+> 
+> Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+> ---
+>  tools/xcutils/Makefile  |    6 ++-
+>  tools/xcutils/xcbuild.c |  100 +++++++++++++++++++++++++++++++++++++++++++++++
+>  2 files changed, 105 insertions(+), 1 deletions(-)
+>  create mode 100644 tools/xcutils/xcbuild.c
+> 
+> diff --git a/tools/xcutils/Makefile b/tools/xcutils/Makefile
+> index 6c502f1..dcd2c84 100644
+> --- a/tools/xcutils/Makefile
+> +++ b/tools/xcutils/Makefile
+> @@ -11,7 +11,7 @@
+>  XEN_ROOT    = $(CURDIR)/../..
+>  include $(XEN_ROOT)/tools/Rules.mk
+>  
+> -PROGRAMS = xc_restore xc_save readnotes lsevtchn
+> +PROGRAMS = xc_restore xc_save readnotes lsevtchn xcbuild
+>  
+>  CFLAGS += -Werror
+>  
+> @@ -19,6 +19,7 @@ CFLAGS_xc_restore.o := $(CFLAGS_libxenctrl) $(CFLAGS_libxenguest)
+>  CFLAGS_xc_save.o    := $(CFLAGS_libxenctrl) $(CFLAGS_libxenguest) $(CFLAGS_libxenstore)
+>  CFLAGS_readnotes.o  := $(CFLAGS_libxenctrl) $(CFLAGS_libxenguest)
+>  CFLAGS_lsevtchn.o   := $(CFLAGS_libxenctrl)
+> +CFLAGS_xcbuild.o    := $(CFLAGS_libxenctrl) $(CFLAGS_libxenguest)
+>  
+>  .PHONY: all
+>  all: build
+> @@ -32,6 +33,9 @@ xc_restore: xc_restore.o
+>  xc_save: xc_save.o
+>      $(CC) $(LDFLAGS) $^ -o $@ $(LDLIBS_libxenctrl) $(LDLIBS_libxenguest) $(LDLIBS_libxenstore) $(APPEND_LDFLAGS)
+>  
+> +xcbuild: xcbuild.o
+> +    $(CC) $(LDFLAGS) $^ -o $@ $(LDLIBS_libxenctrl) $(LDLIBS_libxenguest) $(APPEND_LDFLAGS)
+> +
+>  readnotes: readnotes.o
+>      $(CC) $(LDFLAGS) $^ -o $@ $(LDLIBS_libxenctrl) $(LDLIBS_libxenguest) $(APPEND_LDFLAGS)
+>  
+> diff --git a/tools/xcutils/xcbuild.c b/tools/xcutils/xcbuild.c
+> new file mode 100644
+> index 0000000..8f8660e
+> --- /dev/null
+> +++ b/tools/xcutils/xcbuild.c
+> @@ -0,0 +1,100 @@
+> +#include <unistd.h>
+> +#include <stdio.h>
+> +#include <stdlib.h>
+> +
+> +#include <errno.h>
+> +
+> +#include <xenctrl.h>
+> +#include <xentoollog.h>
+> +#include <xc_dom.h>
+> +
+> +int main(int argc, char **argv)
+> +{
+> +    xentoollog_logger *logger;
+> +    xc_interface *xch;
+> +    int rv;
+> +    const char *image;
+> +    uint32_t domid;
+> +    xen_domain_handle_t handle;
+> +    int maxmem = 128; /* MB */ //atoi(argv[2]);
+> +    int memory_kb = 2*(maxmem + 1)*1024; /* bit of slack... */
+> +    struct xc_dom_image *dom;
+> +
+> +    image = (argc < 2) ? "guest.img" : argv[1];
+> +    printf("Image: %s\n", image);
+> +    printf("Memory: %dKB\n", memory_kb);
+> +
+> +    logger = (xentoollog_logger*)
+> +            xtl_createlogger_stdiostream(stderr, XTL_DEBUG, 0);
+> +    if ( logger == NULL )
+> +    {
+> +            perror("xtl_createlogger_stdiostream");
+> +            exit(1);
+> +    }
+> +
+> +    xch = xc_interface_open(logger, logger, 0);
+> +    if ( xch == NULL )
+> +    {
+> +            perror("xc_interface_open");
+> +            exit(1);
+> +    }
+> +
+> +    rv = xc_dom_loginit(xch);
+> +    if (rv) return rv;
+> +
+> +    //rv = xc_flask_context_to_sid(xch, argv[3], strlen(argv[3]), &ssid);
+> +    //if (rv) return rv;
+> +
+> +    rv = xc_domain_create(xch, 0 /* ssid */, handle, 0 /* flags */, &domid);
+> +    printf("xc_domain_create: %d (%d)\n", rv, errno);
+> +    if ( rv < 0 )
+> +    {
+> +            perror("xc_domain_create");
+> +            exit(1);
+> +    }
+> +
+> +    printf("building dom%d\n", domid);
+> +
+> +    rv = xc_domain_max_vcpus(xch, domid, 1);
+> +    if ( rv < 0)
+> +    {
+> +            perror("xc_domain_max_vcpus");
+> +            exit(1);
+> +    }
+> +
+> +    rv = xc_domain_setmaxmem(xch, domid, memory_kb);
+> +    if ( rv < 0)
+> +    {
+> +            perror("xc_domain_setmaxmem");
+> +            exit(1);
+> +    }
+> +
+> +    dom = xc_dom_allocate(xch, "", NULL);
+> +    rv = xc_dom_kernel_file(dom, image);
+> +    if (rv) return rv;
+> +    rv = xc_dom_boot_xen_init(dom, xch, domid);
+> +    if (rv) return rv;
+> +    rv = xc_dom_parse_image(dom);
+> +    if (rv) return rv;
+> +    rv = xc_dom_mem_init(dom, 2*maxmem);/* XXX */
+> +    if (rv) return rv;
+> +    rv = xc_dom_boot_mem_init(dom);
+> +    if (rv) return rv;
+> +    rv = xc_dom_build_image(dom);
+> +    if (rv) return rv;
+> +    rv = xc_dom_boot_image(dom);
+> +    if (rv) return rv;
+> +
+> +    xc_dom_release(dom);
+> +
+> +    rv = xc_domain_unpause(xch, domid);
+> +    if ( rv )
+> +    {
+> +            perror("xc_domain_unpause");
+> +            exit(1);
+> +    }
+> +
+> +    xc_interface_close(xch);
+> +
+> +    return 0;
+> +}
+
+It is OK but I would remove the commented out code and add a very basic
+arguments check.
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<alpine.DEB.2.02.1206071759000.2415@kaball.uk.xensource.com> b/config/examples/test/corpus/<alpine.DEB.2.02.1206071759000.2415@kaball.uk.xensource.com>
new file mode 100644 (file)
index 0000000..7da5504
--- /dev/null
@@ -0,0 +1,156 @@
+From xen-devel-bounces@lists.xen.org Thu Jun 07 18:03:31 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 07 Jun 2012 18:03:31 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1Scg7K-0005QS-93
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 07 Jun 2012 18:03:31 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1Scg3S-00030q-QV; Thu, 07 Jun 2012 16:59:26 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1Scg3R-00030h-6L
+       for xen-devel@lists.xen.org; Thu, 07 Jun 2012 16:59:25 +0000
+Received: from [85.158.138.51:10413] by server-1.bemta-3.messagelabs.com id
+       4E/85-01327-CEDD0DF4; Thu, 07 Jun 2012 16:59:24 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-13.tower-174.messagelabs.com!1339088363!12627916!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDE0Nzk=\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 32382 invoked from network); 7 Jun 2012 16:59:24 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-13.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
+       7 Jun 2012 16:59:24 -0000
+X-IronPort-AV: E=Sophos;i="4.75,732,1330905600"; d="scan'208";a="12892701"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       07 Jun 2012 16:59:23 +0000
+Received: from kaball.uk.xensource.com (10.80.2.59) by
+       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
+       8.3.213.0; Thu, 7 Jun 2012 17:59:23 +0100
+Date: Thu, 7 Jun 2012 17:59:07 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-X-Sender: sstabellini@kaball.uk.xensource.com
+To: Ian Campbell <Ian.Campbell@citrix.com>
+In-Reply-To: <1339088221.22331.6.camel@zakaz.uk.xensource.com>
+Message-ID: <alpine.DEB.2.02.1206071759000.2415@kaball.uk.xensource.com>
+References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
+       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+       <1338565207-2888-14-git-send-email-ian.campbell@citrix.com>
+       <alpine.DEB.2.02.1206061623240.6030@kaball.uk.xensource.com>
+       <1339088221.22331.6.camel@zakaz.uk.xensource.com>
+User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 14/38] arm: do not set max_vcpus = 8 in
+ arch_domain_create.
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Thu, 7 Jun 2012, Ian Campbell wrote:
+> On Wed, 2012-06-06 at 16:26 +0100, Stefano Stabellini wrote:
+> > On Fri, 1 Jun 2012, Ian Campbell wrote:
+> > > XEN_DOMCTL_max_vcpus cannot reduce max_vcpus and therefore we can't create a
+> > > smaller guest.
+> > > 
+> > > The limit of 8 (due to GIC limits) should be expressed elsewhere, likely in
+> > > MAX_VIRT_CPUS -- but making that change caused:
+> > 
+> > Are you sure? I made that change and I didn't see the error.
+> > I think this patch should set MAX_VIRT_CPUS to 8 as well as removing
+> > max_vcpus = 8.
+> 
+> This was the same heap corruption again as seen in "[PATCH 16/38] arm:
+> Add simple cpu_{sibling,core}_mask"  and having fixed that I don't see
+> the crash with MAX_VIRT_CPUS == 8 any more...
+> 
+> The patch becomes:
+> 
+> From b68c4abe1dec44f3ed87a0d7ae98f4269043cce3 Mon Sep 17 00:00:00 2001
+> From: Ian Campbell <ian.campbell@citrix.com>
+> Date: Thu, 7 Jun 2012 16:52:46 +0000
+> Subject: [PATCH] arm: do not set max_vcpus = 8 in arch_domain_create.
+> 
+> XEN_DOMCTL_max_vcpus cannot reduce max_vcpus and therefore we can't create a
+> smaller guest.
+> 
+> The limit of 8 (due to GIC limits) should be expressed in MAX_VIRT_CPUS.
+> 
+> Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+
+
+Acked-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+
+>  xen/arch/arm/domain.c        |    2 --
+>  xen/include/asm-arm/config.h |    2 +-
+>  2 files changed, 1 insertions(+), 3 deletions(-)
+> 
+> diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
+> index 1336dc4..040a2ce 100644
+> --- a/xen/arch/arm/domain.c
+> +++ b/xen/arch/arm/domain.c
+> @@ -338,8 +338,6 @@ int arch_domain_create(struct domain *d, unsigned int domcr_flags)
+>              goto fail;
+>      }
+>  
+> -    d->max_vcpus = 8;
+> -
+>      if ( (rc = domain_vgic_init(d)) != 0 )
+>          goto fail;
+>  
+> diff --git a/xen/include/asm-arm/config.h b/xen/include/asm-arm/config.h
+> index 91e87e1..7d02cc7 100644
+> --- a/xen/include/asm-arm/config.h
+> +++ b/xen/include/asm-arm/config.h
+> @@ -27,7 +27,7 @@
+>  #define NR_CPUS 128
+>  #endif
+>  
+> -#define MAX_VIRT_CPUS 128 /* XXX */
+> +#define MAX_VIRT_CPUS 8
+>  #define MAX_HVM_VCPUS MAX_VIRT_CPUS
+>  
+>  #define asmlinkage /* Nothing needed */
+> -- 
+> 1.7.9.1
+> 
+> 
+> 
+> 
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<alpine.DEB.2.02.1206081100050.14957@kaball.uk.xensource.com> b/config/examples/test/corpus/<alpine.DEB.2.02.1206081100050.14957@kaball.uk.xensource.com>
new file mode 100644 (file)
index 0000000..4f6b020
--- /dev/null
@@ -0,0 +1,244 @@
+From xen-devel-bounces@lists.xen.org Fri Jun 08 11:05:57 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 08 Jun 2012 11:05:57 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1Scw4l-0004P4-O4
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 08 Jun 2012 11:05:57 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1Scw0U-000352-Fp; Fri, 08 Jun 2012 10:01:26 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1Scw0S-00034u-JJ
+       for xen-devel@lists.xen.org; Fri, 08 Jun 2012 10:01:24 +0000
+Received: from [85.158.143.35:29284] by server-1.bemta-4.messagelabs.com id
+       31/1F-10042-37DC1DF4; Fri, 08 Jun 2012 10:01:23 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-8.tower-21.messagelabs.com!1339149643!14124250!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDE3NDc=\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 26110 invoked from network); 8 Jun 2012 10:00:44 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-8.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
+       8 Jun 2012 10:00:44 -0000
+X-IronPort-AV: E=Sophos;i="4.75,737,1330905600"; d="scan'208";a="12905299"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       08 Jun 2012 10:00:43 +0000
+Received: from kaball.uk.xensource.com (10.80.2.59) by
+       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
+       8.3.213.0; Fri, 8 Jun 2012 11:00:43 +0100
+Date: Fri, 8 Jun 2012 11:00:26 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-X-Sender: sstabellini@kaball.uk.xensource.com
+To: Ian Campbell <Ian.Campbell@citrix.com>
+In-Reply-To: <1339088579.22331.8.camel@zakaz.uk.xensource.com>
+Message-ID: <alpine.DEB.2.02.1206081100050.14957@kaball.uk.xensource.com>
+References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
+       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+       <1338565207-2888-8-git-send-email-ian.campbell@citrix.com>
+       <alpine.DEB.2.02.1206061443300.6030@kaball.uk.xensource.com> 
+       <1338990925.32319.103.camel@zakaz.uk.xensource.com>
+       <1339062030.15265.53.camel@zakaz.uk.xensource.com>
+       <1339088579.22331.8.camel@zakaz.uk.xensource.com>
+User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 08/38] arm: allocate and setup a guest vcpu.
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Thu, 7 Jun 2012, Ian Campbell wrote:
+> On Thu, 2012-06-07 at 10:40 +0100, Ian Campbell wrote:
+> > More head scratching required I think!
+> 
+> This turned out to be the problem with not initialising cpu_sibling_mask
+> properly, see the thread against "[PATCH 16/38] arm: Add simple
+> cpu_{sibling,core}_mask".
+> 
+> Having fixed that I updated based on your comments to:
+> 
+> 8<-----------------------------------------------------------
+> 
+> From 75cff29f4645dd19d07175109b5891fd44de9d60 Mon Sep 17 00:00:00 2001
+> From: Ian Campbell <ian.campbell@citrix.com>
+> Date: Fri, 13 Apr 2012 16:07:21 +0100
+> Subject: [PATCH] arm: allocate and setup a guest vcpu.
+> 
+> Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+
+It looks OK now.
+
+
+Acked-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+
+
+>  xen/arch/arm/domain.c         |   67 +++++++++++++++++++++++++++++++++++++++++
+>  xen/arch/arm/dummy.S          |    3 --
+>  xen/include/public/arch-arm.h |    9 -----
+>  3 files changed, 67 insertions(+), 12 deletions(-)
+> 
+> diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
+> index 9339a11..b099d91 100644
+> --- a/xen/arch/arm/domain.c
+> +++ b/xen/arch/arm/domain.c
+> @@ -144,6 +144,17 @@ void free_vcpu_struct(struct vcpu *v)
+>      free_xenheap_page(v);
+>  }
+>  
+> +struct vcpu_guest_context *alloc_vcpu_guest_context(void)
+> +{
+> +    return xmalloc(struct vcpu_guest_context);
+> +
+> +}
+> +
+> +void free_vcpu_guest_context(struct vcpu_guest_context *vgc)
+> +{
+> +    xfree(vgc);
+> +}
+> +
+>  int vcpu_initialise(struct vcpu *v)
+>  {
+>      int rc = 0;
+> @@ -212,6 +223,62 @@ void arch_domain_destroy(struct domain *d)
+>      /* domain_vgic_destroy */
+>  }
+>  
+> +static int is_guest_psr(uint32_t psr)
+> +{
+> +    switch (psr & PSR_MODE_MASK)
+> +    {
+> +    case PSR_MODE_USR:
+> +    case PSR_MODE_FIQ:
+> +    case PSR_MODE_IRQ:
+> +    case PSR_MODE_SVC:
+> +    case PSR_MODE_ABT:
+> +    case PSR_MODE_UND:
+> +    case PSR_MODE_SYS:
+> +        return 1;
+> +    case PSR_MODE_MON:
+> +    case PSR_MODE_HYP:
+> +    default:
+> +        return 0;
+> +    }
+> +}
+> +
+> +/*
+> + * Initialise VCPU state. The context can be supplied by either the
+> + * toolstack (XEN_DOMCTL_setvcpucontext) or the guest
+> + * (VCPUOP_initialise) and therefore must be properly validated.
+> + */
+> +int arch_set_info_guest(
+> +    struct vcpu *v, vcpu_guest_context_u c)
+> +{
+> +    struct cpu_user_regs *regs = &c.nat->user_regs;
+> +
+> +    if ( !is_guest_psr(regs->cpsr) )
+> +        return -EINVAL;
+> +
+> +    if ( regs->spsr_svc && !is_guest_psr(regs->spsr_svc) )
+> +        return -EINVAL;
+> +    if ( regs->spsr_abt && !is_guest_psr(regs->spsr_abt) )
+> +        return -EINVAL;
+> +    if ( regs->spsr_und && !is_guest_psr(regs->spsr_und) )
+> +        return -EINVAL;
+> +    if ( regs->spsr_irq && !is_guest_psr(regs->spsr_irq) )
+> +        return -EINVAL;
+> +    if ( regs->spsr_fiq && !is_guest_psr(regs->spsr_fiq) )
+> +        return -EINVAL;
+> +
+> +    v->arch.cpu_info->guest_cpu_user_regs = *regs;
+> +
+> +    /* XXX other state:
+> +     * - SCTLR
+> +     * - TTBR0/1
+> +     * - TTBCR
+> +     */
+> +
+> +    clear_bit(_VPF_down, &v->pause_flags);
+> +
+> +    return 0;
+> +}
+> +
+>  void arch_dump_domain_info(struct domain *d)
+>  {
+>  }
+> diff --git a/xen/arch/arm/dummy.S b/xen/arch/arm/dummy.S
+> index 016340c..3b48917 100644
+> --- a/xen/arch/arm/dummy.S
+> +++ b/xen/arch/arm/dummy.S
+> @@ -20,11 +20,8 @@ DUMMY(pirq_guest_unbind);
+>  DUMMY(pirq_set_affinity);
+>  
+>  /* VCPU */
+> -DUMMY(alloc_vcpu_guest_context);
+>  DUMMY(arch_get_info_guest);
+> -DUMMY(arch_set_info_guest);
+>  DUMMY(arch_vcpu_reset);
+> -DUMMY(free_vcpu_guest_context);
+>  DUMMY(sync_vcpu_execstate);
+>  NOP(update_vcpu_system_time);
+>  DUMMY(vcpu_show_execution_state);
+> diff --git a/xen/include/public/arch-arm.h b/xen/include/public/arch-arm.h
+> index 1b1bcf3..e439727 100644
+> --- a/xen/include/public/arch-arm.h
+> +++ b/xen/include/public/arch-arm.h
+> @@ -124,15 +124,6 @@ typedef uint32_t xen_ulong_t;
+>  
+>  struct vcpu_guest_context {
+>      struct cpu_user_regs user_regs;         /* User-level CPU registers     */
+> -    union {
+> -        uint32_t reg[16];
+> -        struct {
+> -            uint32_t __pad[12];
+> -            uint32_t sp; /* r13 */
+> -            uint32_t lr; /* r14 */
+> -            uint32_t pc; /* r15 */
+> -        };
+> -    };
+>  };
+>  typedef struct vcpu_guest_context vcpu_guest_context_t;
+>  DEFINE_XEN_GUEST_HANDLE(vcpu_guest_context_t);
+> -- 
+> 1.7.9.1
+> 
+> 
+> 
+> 
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<alpine.DEB.2.02.1206261238560.27860@kaball.uk.xensource.com> b/config/examples/test/corpus/<alpine.DEB.2.02.1206261238560.27860@kaball.uk.xensource.com>
new file mode 100644 (file)
index 0000000..d782950
--- /dev/null
@@ -0,0 +1,109 @@
+From xen-devel-bounces@lists.xen.org Tue Jun 26 12:46:47 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Tue, 26 Jun 2012 12:46:47 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SjUEE-00062v-9e
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 26 Jun 2012 12:46:47 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SjU9h-0006Ak-K2; Tue, 26 Jun 2012 11:42:01 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1SjU9g-0006Af-6T
+       for xen-devel@lists.xen.org; Tue, 26 Jun 2012 11:42:00 +0000
+Received: from [85.158.143.99:7715] by server-3.bemta-4.messagelabs.com id
+       E3/8F-05808-700A9EF4; Tue, 26 Jun 2012 11:41:59 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-14.tower-216.messagelabs.com!1340710918!19550201!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDI1OTk=\n
+X-StarScan-Version: 6.5.10; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 19530 invoked from network); 26 Jun 2012 11:41:59 -0000
+Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-14.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
+       26 Jun 2012 11:41:59 -0000
+X-IronPort-AV: E=Sophos;i="4.77,477,1336348800"; d="scan'208";a="13221701"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       26 Jun 2012 11:41:58 +0000
+Received: from kaball.uk.xensource.com (10.80.2.59) by
+       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
+       8.3.213.0; Tue, 26 Jun 2012 12:41:58 +0100
+Date: Tue, 26 Jun 2012 12:41:33 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-X-Sender: sstabellini@kaball.uk.xensource.com
+To: Ian Campbell <Ian.Campbell@citrix.com>
+In-Reply-To: <1340703351.3832.42.camel@zakaz.uk.xensource.com>
+Message-ID: <alpine.DEB.2.02.1206261238560.27860@kaball.uk.xensource.com>
+References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
+       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
+       <1338565207-2888-31-git-send-email-ian.campbell@citrix.com>
+       <alpine.DEB.2.02.1206071146180.2415@kaball.uk.xensource.com>
+       <1340703351.3832.42.camel@zakaz.uk.xensource.com>
+User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 31/38] arm: gic.lock can be taken in
+ interrupt context, so lock appropriately.
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Tue, 26 Jun 2012, Ian Campbell wrote:
+> > > @@ -601,7 +601,7 @@ static void maintenance_interrupt(int irq, void *dev_id, struct cpu_user_regs *r
+> > >          } else {
+> > >              gic_inject_irq_stop();
+> > >          }
+> > > -        spin_unlock(&gic.lock);
+> > > +        spin_unlock_irq(&gic.lock);
+> > >  
+> > >          spin_lock(&current->arch.vgic.lock);
+> >                ^
+> > shouldn't you change this into spin_lock_irq too?
+> 
+> 
+> If so then that should be in "arm: use interrupt safe spin locks in
+> vgic_vcpu_inject_irq" rather than here?
+> 
+> I think you've reworked this stuff a bit in one of your follow up series
+> -- is it worth me changing this here or do you handle it / make it
+> irrelevant?
+No, I am not, I am only removing everything related to
+events_maintenance. I think it is worth fixing it in one of your patches
+or in a follow up patch.
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com> b/config/examples/test/corpus/<alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
new file mode 100644 (file)
index 0000000..db54f9e
--- /dev/null
@@ -0,0 +1,336 @@
+From xen-devel-bounces@lists.xen.org Thu Jul 26 16:37:46 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 26 Jul 2012 16:37:46 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SuQ8F-0001Sj-Qm
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 26 Jul 2012 16:37:46 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SuQ58-0004OO-7i; Thu, 26 Jul 2012 15:34:30 +0000
+Received: from mail27.messagelabs.com ([193.109.254.147])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1SuQ55-0004LO-Fn
+       for xen-devel@lists.xensource.com; Thu, 26 Jul 2012 15:34:27 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-5.tower-27.messagelabs.com!1343316860!8391243!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDY5ODA=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.2; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 9607 invoked from network); 26 Jul 2012 15:34:21 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-5.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
+       26 Jul 2012 15:34:21 -0000
+X-IronPort-AV: E=Sophos;i="4.77,659,1336348800"; 
+       d="dts'?scan'208";a="13718763"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       26 Jul 2012 15:34:20 +0000
+Received: from kaball.uk.xensource.com (10.80.2.59) by
+       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
+       8.3.213.0; Thu, 26 Jul 2012 16:34:20 +0100
+Date: Thu, 26 Jul 2012 16:33:28 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-X-Sender: sstabellini@kaball.uk.xensource.com
+To: <linux-kernel@vger.kernel.org>
+Message-ID: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
+User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
+MIME-Version: 1.0
+Content-Type: multipart/mixed;
+       boundary="1342847746-2057181226-1343316148=:26163"
+Content-ID: <alpine.DEB.2.02.1207261622400.26163@kaball.uk.xensource.com>
+Cc: xen-devel@lists.xensource.com, linaro-dev@lists.linaro.org,
+       Ian Campbell <Ian.Campbell@citrix.com>, arnd@arndb.de,
+       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>, catalin.marinas@arm.com,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>,
+       Tim Deegan <tim@xen.org>, linux-arm-kernel@lists.infradead.org
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD autolearn=unavailable version=3.3.1
+Subject: [Xen-devel] [PATCH 00/24] Introduce Xen support on ARM
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+--1342847746-2057181226-1343316148=:26163
+Content-Type: text/plain; charset="US-ASCII"
+Content-ID: <alpine.DEB.2.02.1207261622401.26163@kaball.uk.xensource.com>
+
+Hi all,
+this patch series implements Xen support for ARMv7 with virtualization
+extensions.  It allows a Linux guest to boot as dom0 and
+as domU on Xen on ARM. PV console, disk and network frontends and
+backends are all working correctly.
+
+It has been tested on a Versatile Express Cortex A15 emulator, using the
+latest Xen, and a simple ad-hoc tool to build guest domains
+(marc.info/?l=xen-devel&m=134089788016546).
+
+The patch marked with [HACK] shouldn't be applied and is part of the
+series only because it is needed to create domUs.
+
+I am also attaching to this email the dts'es that I am currently using
+for dom0 and domU: vexpress-v2p-ca15-tc1.dts is the dts used for dom0
+and it is passed to Linux by Xen, while vexpress-virt.dts is the dts
+used for other domUs and it is appended in binary form to the guest
+kernel image. I am not sure where they are supposed to live yet, so I am
+just attaching them here so that people can actually try out this series
+if they want to.
+
+Comments are very welcome!
+
+
+Ian Campbell (2):
+      ARM: enable earlyprintk=xen
+      [HACK] xen/arm: implement xen_remap_domain_mfn_range
+
+Stefano Stabellini (22):
+      arm: initial Xen support
+      xen/arm: hypercalls
+      xen/arm: page.h definitions
+      xen/arm: sync_bitops
+      xen/arm: empty implementation of grant_table arch specific functions
+      xen: missing includes
+      xen/arm: Xen detection and shared_info page mapping
+      xen/arm: Introduce xen_pfn_t for pfn and mfn types
+      xen/arm: compile and run xenbus
+      xen: do not compile manage, balloon, pci, acpi and cpu_hotplug on ARM
+      xen/arm: introduce CONFIG_XEN on ARM
+      xen/arm: Introduce xen_guest_init
+      xen/arm: get privilege status
+      xen/arm: initialize grant_table on ARM
+      xen/arm: receive Xen events on ARM
+      xen/arm: implement alloc/free_xenballooned_pages with alloc_pages/kfree
+      xen: allow privcmd for HVM guests
+      xen/arm: compile blkfront and blkback
+      xen/arm: compile netback
+      xen: update xen_add_to_physmap interface
+      arm/v2m: initialize arch_timers even if v2m_timer is not present
+      hvc_xen: allow dom0_write_console for HVM guests
+
+ arch/arm/Kconfig                           |   10 ++
+ arch/arm/Makefile                          |    1 +
+ arch/arm/include/asm/hypervisor.h          |    6 +
+ arch/arm/include/asm/sync_bitops.h         |   17 ++
+ arch/arm/include/asm/xen/hypercall.h       |   69 ++++++++
+ arch/arm/include/asm/xen/hypervisor.h      |   19 +++
+ arch/arm/include/asm/xen/interface.h       |   66 ++++++++
+ arch/arm/include/asm/xen/page.h            |   77 +++++++++
+ arch/arm/kernel/early_printk.c             |   11 ++-
+ arch/arm/mach-vexpress/v2m.c               |   11 +-
+ arch/arm/xen/Makefile                      |    1 +
+ arch/arm/xen/enlighten.c                   |  244 ++++++++++++++++++++++++++++
+ arch/arm/xen/grant-table.c                 |   53 ++++++
+ arch/arm/xen/hypercall.S                   |   65 ++++++++
+ arch/ia64/include/asm/xen/interface.h      |    2 +-
+ arch/x86/include/asm/xen/interface.h       |    2 +
+ arch/x86/xen/enlighten.c                   |    9 +
+ arch/x86/xen/irq.c                         |    1 +
+ arch/x86/xen/xen-ops.h                     |    1 -
+ drivers/block/xen-blkback/blkback.c        |    1 +
+ drivers/net/xen-netback/netback.c          |    1 +
+ drivers/net/xen-netfront.c                 |    1 +
+ drivers/tty/hvc/hvc_xen.c                  |   14 +-
+ drivers/xen/Makefile                       |    9 +-
+ drivers/xen/events.c                       |   18 ++-
+ drivers/xen/grant-table.c                  |    3 +-
+ drivers/xen/privcmd.c                      |   20 +--
+ drivers/xen/xenbus/xenbus_comms.c          |    2 +-
+ drivers/xen/xenbus/xenbus_probe.c          |   27 ++--
+ drivers/xen/xenbus/xenbus_probe_frontend.c |    1 +
+ drivers/xen/xenbus/xenbus_xs.c             |    1 +
+ drivers/xen/xenfs/super.c                  |    7 +
+ include/xen/events.h                       |    2 +
+ include/xen/interface/features.h           |    3 +
+ include/xen/interface/grant_table.h        |    4 +-
+ include/xen/interface/io/protocols.h       |    3 +
+ include/xen/interface/memory.h             |   19 ++-
+ include/xen/interface/platform.h           |    4 +-
+ include/xen/interface/xen.h                |    9 +-
+ include/xen/privcmd.h                      |    3 +-
+ include/xen/xen.h                          |    4 +-
+ 41 files changed, 763 insertions(+), 58 deletions(-)
+
+
+A branch based on 3.5-rc7 is available here:
+
+git://xenbits.xen.org/people/sstabellini/linux-pvhvm.git 3.5-rc7-arm-1
+
+Cheers,
+
+Stefano
+--1342847746-2057181226-1343316148=:26163
+Content-Type: text/plain; charset="US-ASCII"; name="vexpress-v2p-ca15-tc1.dts"
+Content-Transfer-Encoding: BASE64
+Content-ID: <alpine.DEB.2.02.1207261622280.26163@kaball.uk.xensource.com>
+Content-Description: 
+Content-Disposition: attachment; filename="vexpress-v2p-ca15-tc1.dts"
+
+LyoNCiAqIEFSTSBMdGQuIFZlcnNhdGlsZSBFeHByZXNzDQogKg0KICogQ29y
+ZVRpbGUgRXhwcmVzcyBBMTV4MiAodmVyc2lvbiB3aXRoIFRlc3QgQ2hpcCAx
+KQ0KICogQ29ydGV4LUExNSBNUENvcmUgKFYyUC1DQTE1KQ0KICoNCiAqIEhC
+SS0wMjM3QQ0KICovDQoNCi9kdHMtdjEvOw0KDQovIHsNCgltb2RlbCA9ICJW
+MlAtQ0ExNSI7DQoJYXJtLGhiaSA9IDwweDIzNz47DQoJY29tcGF0aWJsZSA9
+ICJhcm0sdmV4cHJlc3MsdjJwLWNhMTUsdGMxIiwgImFybSx2ZXhwcmVzcyx2
+MnAtY2ExNSIsICJhcm0sdmV4cHJlc3MiOw0KDQoJI2FkZHJlc3MtY2VsbHMg
+PSA8MT47DQoJI3NpemUtY2VsbHMgPSA8MT47DQoNCglpbnRlcnJ1cHQtcGFy
+ZW50ID0gPCZnaWM+Ow0KDQoJY2hvc2VuIHsNCiAgICAgICAgICAgICAgICAg
+Ym9vdGFyZ3MgPSAiZG9tMF9tZW09MTI4TSI7DQogICAgICAgICAgICAgICAg
+IHhlbixkb20wLWJvb3RhcmdzID0gImVhcmx5cHJpbnRrPXhlbmJvb3QgY29u
+c29sZT10dHlBTUExIHJvb3Q9L2Rldi9tbWNibGswIGRlYnVnIHJ3IjsNCgl9
+Ow0KDQoNCglhbGlhc2VzIHsNCgkJc2VyaWFsMCA9ICZ2Mm1fc2VyaWFsMDsN
+CgkJc2VyaWFsMSA9ICZ2Mm1fc2VyaWFsMTsNCgkJc2VyaWFsMiA9ICZ2Mm1f
+c2VyaWFsMjsNCgkJc2VyaWFsMyA9ICZ2Mm1fc2VyaWFsMzsNCgkJaTJjMCA9
+ICZ2Mm1faTJjX2R2aTsNCgkJaTJjMSA9ICZ2Mm1faTJjX3BjaWU7DQoJfTsN
+Cg0KCWNwdXMgew0KCQkjYWRkcmVzcy1jZWxscyA9IDwxPjsNCgkJI3NpemUt
+Y2VsbHMgPSA8MD47DQoNCgkJY3B1QDAgew0KCQkJZGV2aWNlX3R5cGUgPSAi
+Y3B1IjsNCgkJCWNvbXBhdGlibGUgPSAiYXJtLGNvcnRleC1hMTUiOw0KCQkJ
+cmVnID0gPDA+Ow0KCQl9Ow0KCX07DQoNCgltZW1vcnkgew0KCQlkZXZpY2Vf
+dHlwZSA9ICJtZW1vcnkiOw0KCQlyZWcgPSA8MHg4MDAwMDAwMCAweDgwMDAw
+MDAwPjsNCgl9Ow0KDQoJZ2ljOiBpbnRlcnJ1cHQtY29udHJvbGxlckAyYzAw
+MTAwMCB7DQoJCWNvbXBhdGlibGUgPSAiYXJtLGNvcnRleC1hOS1naWMiOw0K
+CQkjaW50ZXJydXB0LWNlbGxzID0gPDM+Ow0KCQkjYWRkcmVzcy1jZWxscyA9
+IDwwPjsNCgkJaW50ZXJydXB0LWNvbnRyb2xsZXI7DQoJCXJlZyA9IDwweDJj
+MDAxMDAwIDB4MTAwMD4sDQoJCSAgICAgIDwweDJjMDAyMDAwIDB4MTAwPjsN
+Cgl9Ow0KDQoJcG11IHsNCgkJY29tcGF0aWJsZSA9ICJhcm0sY29ydGV4LWE5
+LXBtdSI7DQoJCWludGVycnVwdHMgPSA8MCA2OCA0PiwNCgkJCSAgICAgPDAg
+NjkgND47DQoJfTsNCg0KCXhlbiB7DQoJCWNvbXBhdGlibGUgPSAiYXJtLHhl
+biI7DQoJCXJlZyA9IDwweGIwMDAwMDAwIDB4MjAwMDA+Ow0KCQlpbnRlcnJ1
+cHRzID0gPDEgMTUgMHhmMDg+Ow0KCX07DQoNCgltb3RoZXJib2FyZCB7DQoJ
+CXJhbmdlcyA9IDwwIDAgMHgwODAwMDAwMCAweDA0MDAwMDAwPiwNCgkJCSA8
+MSAwIDB4MTQwMDAwMDAgMHgwNDAwMDAwMD4sDQoJCQkgPDIgMCAweDE4MDAw
+MDAwIDB4MDQwMDAwMDA+LA0KCQkJIDwzIDAgMHgxYzAwMDAwMCAweDA0MDAw
+MDAwPiwNCgkJCSA8NCAwIDB4MGMwMDAwMDAgMHgwNDAwMDAwMD4sDQoJCQkg
+PDUgMCAweDEwMDAwMDAwIDB4MDQwMDAwMDA+Ow0KDQoJCWludGVycnVwdC1t
+YXAtbWFzayA9IDwwIDAgNjM+Ow0KCQlpbnRlcnJ1cHQtbWFwID0gPDAgMCAg
+MCAmZ2ljIDAgIDAgND4sDQoJCQkJPDAgMCAgMSAmZ2ljIDAgIDEgND4sDQoJ
+CQkJPDAgMCAgMiAmZ2ljIDAgIDIgND4sDQoJCQkJPDAgMCAgMyAmZ2ljIDAg
+IDMgND4sDQoJCQkJPDAgMCAgNCAmZ2ljIDAgIDQgND4sDQoJCQkJPDAgMCAg
+NSAmZ2ljIDAgIDUgND4sDQoJCQkJPDAgMCAgNiAmZ2ljIDAgIDYgND4sDQoJ
+CQkJPDAgMCAgNyAmZ2ljIDAgIDcgND4sDQoJCQkJPDAgMCAgOCAmZ2ljIDAg
+IDggND4sDQoJCQkJPDAgMCAgOSAmZ2ljIDAgIDkgND4sDQoJCQkJPDAgMCAx
+MCAmZ2ljIDAgMTAgND4sDQoJCQkJPDAgMCAxMSAmZ2ljIDAgMTEgND4sDQoJ
+CQkJPDAgMCAxMiAmZ2ljIDAgMTIgND4sDQoJCQkJPDAgMCAxMyAmZ2ljIDAg
+MTMgND4sDQoJCQkJPDAgMCAxNCAmZ2ljIDAgMTQgND4sDQoJCQkJPDAgMCAx
+NSAmZ2ljIDAgMTUgND4sDQoJCQkJPDAgMCAxNiAmZ2ljIDAgMTYgND4sDQoJ
+CQkJPDAgMCAxNyAmZ2ljIDAgMTcgND4sDQoJCQkJPDAgMCAxOCAmZ2ljIDAg
+MTggND4sDQoJCQkJPDAgMCAxOSAmZ2ljIDAgMTkgND4sDQoJCQkJPDAgMCAy
+MCAmZ2ljIDAgMjAgND4sDQoJCQkJPDAgMCAyMSAmZ2ljIDAgMjEgND4sDQoJ
+CQkJPDAgMCAyMiAmZ2ljIDAgMjIgND4sDQoJCQkJPDAgMCAyMyAmZ2ljIDAg
+MjMgND4sDQoJCQkJPDAgMCAyNCAmZ2ljIDAgMjQgND4sDQoJCQkJPDAgMCAy
+NSAmZ2ljIDAgMjUgND4sDQoJCQkJPDAgMCAyNiAmZ2ljIDAgMjYgND4sDQoJ
+CQkJPDAgMCAyNyAmZ2ljIDAgMjcgND4sDQoJCQkJPDAgMCAyOCAmZ2ljIDAg
+MjggND4sDQoJCQkJPDAgMCAyOSAmZ2ljIDAgMjkgND4sDQoJCQkJPDAgMCAz
+MCAmZ2ljIDAgMzAgND4sDQoJCQkJPDAgMCAzMSAmZ2ljIDAgMzEgND4sDQoJ
+CQkJPDAgMCAzMiAmZ2ljIDAgMzIgND4sDQoJCQkJPDAgMCAzMyAmZ2ljIDAg
+MzMgND4sDQoJCQkJPDAgMCAzNCAmZ2ljIDAgMzQgND4sDQoJCQkJPDAgMCAz
+NSAmZ2ljIDAgMzUgND4sDQoJCQkJPDAgMCAzNiAmZ2ljIDAgMzYgND4sDQoJ
+CQkJPDAgMCAzNyAmZ2ljIDAgMzcgND4sDQoJCQkJPDAgMCAzOCAmZ2ljIDAg
+MzggND4sDQoJCQkJPDAgMCAzOSAmZ2ljIDAgMzkgND4sDQoJCQkJPDAgMCA0
+MCAmZ2ljIDAgNDAgND4sDQoJCQkJPDAgMCA0MSAmZ2ljIDAgNDEgND4sDQoJ
+CQkJPDAgMCA0MiAmZ2ljIDAgNDIgND47DQoJfTsNCn07DQoNCi9pbmNsdWRl
+LyAidmV4cHJlc3MtdjJtLXJzMS1ydHNtLmR0c2kiDQo=
+
+--1342847746-2057181226-1343316148=:26163
+Content-Type: text/plain; charset="US-ASCII"; name="vexpress-virt.dts"
+Content-Transfer-Encoding: BASE64
+Content-ID: <alpine.DEB.2.02.1207261622281.26163@kaball.uk.xensource.com>
+Content-Description: 
+Content-Disposition: attachment; filename="vexpress-virt.dts"
+
+LyoNCiAqIEFSTSBMdGQuIFZlcnNhdGlsZSBFeHByZXNzDQogKg0KICogQVJN
+IEVudmVsb3BlIE1vZGVsIHY3QSAoc2luZ2xlIENQVSkuDQogKi8NCg0KL2R0
+cy12MS87DQoNCi9pbmNsdWRlLyAic2tlbGV0b24uZHRzaSINCg0KLyB7DQoJ
+bW9kZWwgPSAiVjJQLUFFTXY3QSI7DQoJY29tcGF0aWJsZSA9ICJhcm0sdmV4
+cHJlc3MsdjJwLWFlbSx2N2EiLCAiYXJtLHZleHByZXNzLHYycC1hZW0iLCAi
+YXJtLHZleHByZXNzIjsNCglpbnRlcnJ1cHQtcGFyZW50ID0gPCZnaWM+Ow0K
+DQogICAgICAgIGNob3NlbiB7DQogICAgICAgICAgICAgICAgYm9vdGFyZ3Mg
+PSAiZWFybHlwcmludGs9eGVuIGRlYnVnIGxvZ2xldmVsPTkgY29uc29sZT1o
+dmMwIHJvb3Q9L2Rldi94dmRhIjsNCiAgICAgICAgfTsNCg0KCWNwdXMgew0K
+CQkjYWRkcmVzcy1jZWxscyA9IDwxPjsNCgkJI3NpemUtY2VsbHMgPSA8MD47
+DQoNCgkJY3B1QDAgew0KCQkJZGV2aWNlX3R5cGUgPSAiY3B1IjsNCgkJCWNv
+bXBhdGlibGUgPSAiYXJtLGNvcnRleC1hMTUiOw0KCQkJcmVnID0gPDA+Ow0K
+CQl9Ow0KCX07DQoNCgltZW1vcnkgew0KCQlkZXZpY2VfdHlwZSA9ICJtZW1v
+cnkiOw0KCQlyZWcgPSA8MHg4MDAwMDAwMCAweDA4MDAwMDAwPjsNCgl9Ow0K
+DQoJZ2ljOiBpbnRlcnJ1cHQtY29udHJvbGxlckAyYzAwMTAwMCB7DQoJCWNv
+bXBhdGlibGUgPSAiYXJtLGNvcnRleC1hOS1naWMiOw0KCQkjaW50ZXJydXB0
+LWNlbGxzID0gPDM+Ow0KCQkjYWRkcmVzcy1jZWxscyA9IDwwPjsNCgkJaW50
+ZXJydXB0LWNvbnRyb2xsZXI7DQoJCXJlZyA9IDwweDJjMDAxMDAwIDB4MTAw
+MD4sDQoJCSAgICAgIDwweDJjMDAyMDAwIDB4MTAwPjsNCgl9Ow0KDQoJdGlt
+ZXIgew0KCQljb21wYXRpYmxlID0gImFybSxhcm12Ny10aW1lciI7DQoJCWlu
+dGVycnVwdHMgPSA8MSAxMyAweGYwOD4sDQoJCQkgICAgIDwxIDE0IDB4ZjA4
+PiwNCgkJCSAgICAgPDEgMTEgMHhmMDg+LA0KCQkJICAgICA8MSAxMCAweGYw
+OD47DQoJfTsNCg0KCXhlbiB7DQoJCWNvbXBhdGlibGUgPSAiYXJtLHhlbiI7
+DQoJCXJlZyA9IDwweGIwMDAwMDAwIDB4MjAwMDA+Ow0KCQlpbnRlcnJ1cHRz
+ID0gPDEgMTUgMHhmMDg+Ow0KCX07DQoNCgltb3RoZXJib2FyZCB7DQoJCXJh
+bmdlcyA9IDwwIDAgMHgwODAwMDAwMCAweDA0MDAwMDAwPiwNCgkJCSA8MSAw
+IDB4MTQwMDAwMDAgMHgwNDAwMDAwMD4sDQoJCQkgPDIgMCAweDE4MDAwMDAw
+IDB4MDQwMDAwMDA+LA0KCQkJIDwzIDAgMHgxYzAwMDAwMCAweDA0MDAwMDAw
+PiwNCgkJCSA8NCAwIDB4MGMwMDAwMDAgMHgwNDAwMDAwMD4sDQoJCQkgPDUg
+MCAweDEwMDAwMDAwIDB4MDQwMDAwMDA+Ow0KDQoJCWludGVycnVwdC1tYXAt
+bWFzayA9IDwwIDAgNjM+Ow0KCQlpbnRlcnJ1cHQtbWFwID0gPDAgMCAgMCAm
+Z2ljIDAgIDAgND4sDQoJCQkJPDAgMCAgMSAmZ2ljIDAgIDEgND4sDQoJCQkJ
+PDAgMCAgMiAmZ2ljIDAgIDIgND4sDQoJCQkJPDAgMCAgMyAmZ2ljIDAgIDMg
+ND4sDQoJCQkJPDAgMCAgNCAmZ2ljIDAgIDQgND4sDQoJCQkJPDAgMCAgNSAm
+Z2ljIDAgIDUgND4sDQoJCQkJPDAgMCAgNiAmZ2ljIDAgIDYgND4sDQoJCQkJ
+PDAgMCAgNyAmZ2ljIDAgIDcgND4sDQoJCQkJPDAgMCAgOCAmZ2ljIDAgIDgg
+ND4sDQoJCQkJPDAgMCAgOSAmZ2ljIDAgIDkgND4sDQoJCQkJPDAgMCAxMCAm
+Z2ljIDAgMTAgND4sDQoJCQkJPDAgMCAxMSAmZ2ljIDAgMTEgND4sDQoJCQkJ
+PDAgMCAxMiAmZ2ljIDAgMTIgND4sDQoJCQkJPDAgMCAxMyAmZ2ljIDAgMTMg
+ND4sDQoJCQkJPDAgMCAxNCAmZ2ljIDAgMTQgND4sDQoJCQkJPDAgMCAxNSAm
+Z2ljIDAgMTUgND4sDQoJCQkJPDAgMCAxNiAmZ2ljIDAgMTYgND4sDQoJCQkJ
+PDAgMCAxNyAmZ2ljIDAgMTcgND4sDQoJCQkJPDAgMCAxOCAmZ2ljIDAgMTgg
+ND4sDQoJCQkJPDAgMCAxOSAmZ2ljIDAgMTkgND4sDQoJCQkJPDAgMCAyMCAm
+Z2ljIDAgMjAgND4sDQoJCQkJPDAgMCAyMSAmZ2ljIDAgMjEgND4sDQoJCQkJ
+PDAgMCAyMiAmZ2ljIDAgMjIgND4sDQoJCQkJPDAgMCAyMyAmZ2ljIDAgMjMg
+ND4sDQoJCQkJPDAgMCAyNCAmZ2ljIDAgMjQgND4sDQoJCQkJPDAgMCAyNSAm
+Z2ljIDAgMjUgND4sDQoJCQkJPDAgMCAyNiAmZ2ljIDAgMjYgND4sDQoJCQkJ
+PDAgMCAyNyAmZ2ljIDAgMjcgND4sDQoJCQkJPDAgMCAyOCAmZ2ljIDAgMjgg
+ND4sDQoJCQkJPDAgMCAyOSAmZ2ljIDAgMjkgND4sDQoJCQkJPDAgMCAzMCAm
+Z2ljIDAgMzAgND4sDQoJCQkJPDAgMCAzMSAmZ2ljIDAgMzEgND4sDQoJCQkJ
+PDAgMCAzMiAmZ2ljIDAgMzIgND4sDQoJCQkJPDAgMCAzMyAmZ2ljIDAgMzMg
+ND4sDQoJCQkJPDAgMCAzNCAmZ2ljIDAgMzQgND4sDQoJCQkJPDAgMCAzNSAm
+Z2ljIDAgMzUgND4sDQoJCQkJPDAgMCAzNiAmZ2ljIDAgMzYgND4sDQoJCQkJ
+PDAgMCAzNyAmZ2ljIDAgMzcgND4sDQoJCQkJPDAgMCAzOCAmZ2ljIDAgMzgg
+ND4sDQoJCQkJPDAgMCAzOSAmZ2ljIDAgMzkgND4sDQoJCQkJPDAgMCA0MCAm
+Z2ljIDAgNDAgND4sDQoJCQkJPDAgMCA0MSAmZ2ljIDAgNDEgND4sDQoJCQkJ
+PDAgMCA0MiAmZ2ljIDAgNDIgND47DQoJfTsNCn07DQoNCi8qIC9pbmNsdWRl
+LyAidmV4cHJlc3MtdjJtLXJzMS1ydHNtLmR0c2kiICovDQo=
+
+--1342847746-2057181226-1343316148=:26163
+Content-Type: text/plain; charset="us-ascii"
+MIME-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Content-Disposition: inline
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
+--1342847746-2057181226-1343316148=:26163--
+
+
diff --git a/config/examples/test/corpus/<alpine.DEB.2.02.1207261813080.26163@kaball.uk.xensource.com> b/config/examples/test/corpus/<alpine.DEB.2.02.1207261813080.26163@kaball.uk.xensource.com>
new file mode 100644 (file)
index 0000000..f269257
--- /dev/null
@@ -0,0 +1,103 @@
+From xen-devel-bounces@lists.xen.org Thu Jul 26 18:25:37 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 26 Jul 2012 18:25:37 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SuRoZ-00023T-Mn
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 26 Jul 2012 18:25:37 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SuRjz-0006Gv-FT; Thu, 26 Jul 2012 17:20:47 +0000
+Received: from mail27.messagelabs.com ([193.109.254.147])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1SuRjx-0006Gn-Ad
+       for xen-devel@lists.xensource.com; Thu, 26 Jul 2012 17:20:45 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-8.tower-27.messagelabs.com!1343323239!9391579!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDY5ODA=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.2; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 20233 invoked from network); 26 Jul 2012 17:20:39 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-8.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
+       26 Jul 2012 17:20:39 -0000
+X-IronPort-AV: E=Sophos;i="4.77,660,1336348800"; d="scan'208";a="13721023"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       26 Jul 2012 17:20:38 +0000
+Received: from kaball.uk.xensource.com (10.80.2.59) by
+       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
+       8.3.213.0; Thu, 26 Jul 2012 18:20:38 +0100
+Date: Thu, 26 Jul 2012 18:19:46 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-X-Sender: sstabellini@kaball.uk.xensource.com
+To: David Vrabel <dvrabel@cantab.net>
+In-Reply-To: <501176AF.3000607@cantab.net>
+Message-ID: <alpine.DEB.2.02.1207261813080.26163@kaball.uk.xensource.com>
+References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
+       <1343316846-25860-2-git-send-email-stefano.stabellini@eu.citrix.com>
+       <501176AF.3000607@cantab.net>
+User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
+       "linaro-dev@lists.linaro.org" <linaro-dev@lists.linaro.org>,
+       Ian Campbell <Ian.Campbell@citrix.com>, "arnd@arndb.de" <arnd@arndb.de>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>,
+       "catalin.marinas@arm.com" <catalin.marinas@arm.com>,
+       "konrad.wilk@oracle.com" <konrad.wilk@oracle.com>,
+       "Tim \(Xen.org\)" <tim@xen.org>,
+       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
+       "linux-arm-kernel@lists.infradead.org"
+       <linux-arm-kernel@lists.infradead.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 02/24] xen/arm: hypercalls
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Thu, 26 Jul 2012, David Vrabel wrote:
+> On 26/07/12 16:33, Stefano Stabellini wrote:
+> > 
+> > + * The hvc ISS is required to be 0xEA1, that is the Xen specific ARM
+> > + * hypercall tag.
+> 
+> Is this number, 0xea1, assigned to Xen by some external body?
+
+I am not aware of any "external body" that could assign us such a number
+but it is specified in the Xen hypercall calling convention, documented
+here:
+
+http://xenbits.xensource.com/hg/xen-unstable.hg/file/663eb766cdde/xen/include/public/arch-arm.h
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<alpine.DEB.2.02.1207271246080.26163@kaball.uk.xensource.com> b/config/examples/test/corpus/<alpine.DEB.2.02.1207271246080.26163@kaball.uk.xensource.com>
new file mode 100644 (file)
index 0000000..1b396ce
--- /dev/null
@@ -0,0 +1,344 @@
+From xen-devel-bounces@lists.xen.org Fri Jul 27 13:00:58 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 27 Jul 2012 13:00:58 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SujDz-0001KT-Lr
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 27 Jul 2012 13:00:58 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SujAG-0004ig-Bv; Fri, 27 Jul 2012 11:57:04 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1SujAE-0004ia-BM
+       for xen-devel@lists.xensource.com; Fri, 27 Jul 2012 11:57:02 +0000
+Received: from [85.158.143.99:13572] by server-3.bemta-4.messagelabs.com id
+       7E/B5-01511-D0282105; Fri, 27 Jul 2012 11:57:01 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-8.tower-216.messagelabs.com!1343390221!19251565!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDcxMzQ=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.2; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 30314 invoked from network); 27 Jul 2012 11:57:01 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-8.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
+       27 Jul 2012 11:57:01 -0000
+X-IronPort-AV: E=Sophos;i="4.77,666,1336348800"; d="scan'208";a="13733788"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       27 Jul 2012 11:57:01 +0000
+Received: from kaball.uk.xensource.com (10.80.2.59) by
+       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
+       8.3.213.0; Fri, 27 Jul 2012 12:57:00 +0100
+Date: Fri, 27 Jul 2012 12:56:07 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-X-Sender: sstabellini@kaball.uk.xensource.com
+To: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+In-Reply-To: <20120726163020.GB9222@phenom.dumpdata.com>
+Message-ID: <alpine.DEB.2.02.1207271246080.26163@kaball.uk.xensource.com>
+References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
+       <1343316846-25860-1-git-send-email-stefano.stabellini@eu.citrix.com>
+       <20120726163020.GB9222@phenom.dumpdata.com>
+User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
+       "linaro-dev@lists.linaro.org" <linaro-dev@lists.linaro.org>,
+       Ian Campbell <Ian.Campbell@citrix.com>, "arnd@arndb.de" <arnd@arndb.de>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>,
+       "catalin.marinas@arm.com" <catalin.marinas@arm.com>,
+       "Tim \(Xen.org\)" <tim@xen.org>,
+       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
+       "linux-arm-kernel@lists.infradead.org"
+       <linux-arm-kernel@lists.infradead.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 01/24] arm: initial Xen support
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Thu, 26 Jul 2012, Konrad Rzeszutek Wilk wrote:
+> On Thu, Jul 26, 2012 at 04:33:43PM +0100, Stefano Stabellini wrote:
+> > - Basic hypervisor.h and interface.h definitions.
+> > - Skelethon enlighten.c, set xen_start_info to an empty struct.
+> 
+> Skeleton
+> 
+> > - Do not limit xen_initial_domain to PV guests.
+> 
+> Better wording: Make xen_initial_domain dependent on the SIF_PRIVILIGED_BIT.
+> 
+> Which reminds me - what about PV guests that do PCI passthrough. Aren't
+> they "more" priviligied than normal PV guests? Or not really?
+
+Not really, from the Xen POV.
+
+
+> > The new code only compiles when CONFIG_XEN is set, that is going to be
+> > added to arch/arm/Kconfig in a later patch.
+> 
+> s/later patch/<name of patch>/
+> 
+> > 
+> > Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+> > ---
+> >  arch/arm/Makefile                     |    1 +
+> >  arch/arm/include/asm/hypervisor.h     |    6 +++
+> >  arch/arm/include/asm/xen/hypervisor.h |   19 ++++++++++
+> >  arch/arm/include/asm/xen/interface.h  |   64 +++++++++++++++++++++++++++++++++
+> >  arch/arm/xen/Makefile                 |    1 +
+> >  arch/arm/xen/enlighten.c              |   35 ++++++++++++++++++
+> >  include/xen/xen.h                     |    2 +-
+> >  7 files changed, 127 insertions(+), 1 deletions(-)
+> >  create mode 100644 arch/arm/include/asm/hypervisor.h
+> >  create mode 100644 arch/arm/include/asm/xen/hypervisor.h
+> >  create mode 100644 arch/arm/include/asm/xen/interface.h
+> >  create mode 100644 arch/arm/xen/Makefile
+> >  create mode 100644 arch/arm/xen/enlighten.c
+> > 
+> > diff --git a/arch/arm/Makefile b/arch/arm/Makefile
+> > index 0298b00..70aaa82 100644
+> > --- a/arch/arm/Makefile
+> > +++ b/arch/arm/Makefile
+> > @@ -246,6 +246,7 @@ endif
+> >  core-$(CONFIG_FPE_NWFPE)  += arch/arm/nwfpe/
+> >  core-$(CONFIG_FPE_FASTFPE)        += $(FASTFPE_OBJ)
+> >  core-$(CONFIG_VFP)                += arch/arm/vfp/
+> > +core-$(CONFIG_XEN)                += arch/arm/xen/
+> >  
+> >  # If we have a machine-specific directory, then include it in the build.
+> >  core-y                            += arch/arm/kernel/ arch/arm/mm/ arch/arm/common/
+> > diff --git a/arch/arm/include/asm/hypervisor.h b/arch/arm/include/asm/hypervisor.h
+> > new file mode 100644
+> > index 0000000..b90d9e5
+> > --- /dev/null
+> > +++ b/arch/arm/include/asm/hypervisor.h
+> > @@ -0,0 +1,6 @@
+> > +#ifndef _ASM_ARM_HYPERVISOR_H
+> > +#define _ASM_ARM_HYPERVISOR_H
+> > +
+> > +#include <asm/xen/hypervisor.h>
+> > +
+> > +#endif
+> > diff --git a/arch/arm/include/asm/xen/hypervisor.h b/arch/arm/include/asm/xen/hypervisor.h
+> > new file mode 100644
+> > index 0000000..d7ab99a
+> > --- /dev/null
+> > +++ b/arch/arm/include/asm/xen/hypervisor.h
+> > @@ -0,0 +1,19 @@
+> > +#ifndef _ASM_ARM_XEN_HYPERVISOR_H
+> > +#define _ASM_ARM_XEN_HYPERVISOR_H
+> > +
+> > +extern struct shared_info *HYPERVISOR_shared_info;
+> > +extern struct start_info *xen_start_info;
+> > +
+> > +/* Lazy mode for batching updates / context switch */
+> > +enum paravirt_lazy_mode {
+> > +  PARAVIRT_LAZY_NONE,
+> > +  PARAVIRT_LAZY_MMU,
+> > +  PARAVIRT_LAZY_CPU,
+> > +};
+> > +
+> > +static inline enum paravirt_lazy_mode paravirt_get_lazy_mode(void)
+> > +{
+> > +  return PARAVIRT_LAZY_NONE;
+> > +}
+> > +
+> > +#endif /* _ASM_ARM_XEN_HYPERVISOR_H */
+> > diff --git a/arch/arm/include/asm/xen/interface.h b/arch/arm/include/asm/xen/interface.h
+> > new file mode 100644
+> > index 0000000..6c3ab59
+> > --- /dev/null
+> > +++ b/arch/arm/include/asm/xen/interface.h
+> > @@ -0,0 +1,64 @@
+> > +/******************************************************************************
+> > + * Guest OS interface to ARM Xen.
+> > + *
+> > + * Stefano Stabellini <stefano.stabellini@eu.citrix.com>, Citrix, 2011
+> 
+> 2012
+> 
+> > + */
+> > +
+> > +#ifndef _ASM_ARM_XEN_INTERFACE_H
+> > +#define _ASM_ARM_XEN_INTERFACE_H
+> > +
+> > +#include <linux/types.h>
+> > +
+> > +#define __DEFINE_GUEST_HANDLE(name, type) \
+> > +  typedef type * __guest_handle_ ## name
+> > +
+> > +#define DEFINE_GUEST_HANDLE_STRUCT(name) \
+> > +  __DEFINE_GUEST_HANDLE(name, struct name)
+> > +#define DEFINE_GUEST_HANDLE(name) __DEFINE_GUEST_HANDLE(name, name)
+> > +#define GUEST_HANDLE(name)        __guest_handle_ ## name
+> > +
+> > +#define set_xen_guest_handle(hnd, val)                    \
+> > +  do {                                            \
+> > +          if (sizeof(hnd) == 8)                   \
+> > +                  *(uint64_t *)&(hnd) = 0;        \
+> > +          (hnd) = val;                            \
+> > +  } while (0)
+> > +
+> > +#ifndef __ASSEMBLY__
+> > +/* Guest handles for primitive C types. */
+> > +__DEFINE_GUEST_HANDLE(uchar, unsigned char);
+> > +__DEFINE_GUEST_HANDLE(uint,  unsigned int);
+> > +__DEFINE_GUEST_HANDLE(ulong, unsigned long);
+> > +DEFINE_GUEST_HANDLE(char);
+> > +DEFINE_GUEST_HANDLE(int);
+> > +DEFINE_GUEST_HANDLE(long);
+> > +DEFINE_GUEST_HANDLE(void);
+> > +DEFINE_GUEST_HANDLE(uint64_t);
+> > +DEFINE_GUEST_HANDLE(uint32_t);
+> > +
+> > +/* Maximum number of virtual CPUs in multi-processor guests. */
+> > +#define MAX_VIRT_CPUS 1
+> > +
+> > +struct arch_vcpu_info { };
+> > +struct arch_shared_info { };
+> > +
+> > +/* XXX: Move pvclock definitions some place arch independent */
+> > +struct pvclock_vcpu_time_info {
+> > +  u32   version;
+> > +  u32   pad0;
+> > +  u64   tsc_timestamp;
+> > +  u64   system_time;
+> > +  u32   tsc_to_system_mul;
+> > +  s8    tsc_shift;
+> > +  u8    flags;
+> > +  u8    pad[2];
+> > +} __attribute__((__packed__)); /* 32 bytes */
+> > +
+> > +struct pvclock_wall_clock {
+> > +  u32   version;
+> > +  u32   sec;
+> > +  u32   nsec;
+> > +} __attribute__((__packed__));
+> 
+> That is weird. It is 4+4+4 = 12 bytes? Don't you want it to be 16 bytes?
+
+I agree that 16 bytes would be a better choice, but it needs to match
+the struct in Xen that is defined as follow:
+
+    uint32_t wc_version;      /* Version counter: see vcpu_time_info_t. */
+    uint32_t wc_sec;          /* Secs  00:00:00 UTC, Jan 1, 1970.  */
+    uint32_t wc_nsec;         /* Nsecs 00:00:00 UTC, Jan 1, 1970.  */
+
+in xen/include/public/xen.h.
+
+
+> > +#endif
+> > +
+> > +#endif /* _ASM_ARM_XEN_INTERFACE_H */
+> > diff --git a/arch/arm/xen/Makefile b/arch/arm/xen/Makefile
+> > new file mode 100644
+> > index 0000000..0bad594
+> > --- /dev/null
+> > +++ b/arch/arm/xen/Makefile
+> > @@ -0,0 +1 @@
+> > +obj-y             := enlighten.o
+> > diff --git a/arch/arm/xen/enlighten.c b/arch/arm/xen/enlighten.c
+> > new file mode 100644
+> > index 0000000..d27c2a6
+> > --- /dev/null
+> > +++ b/arch/arm/xen/enlighten.c
+> > @@ -0,0 +1,35 @@
+> > +#include <xen/xen.h>
+> > +#include <xen/interface/xen.h>
+> > +#include <xen/interface/memory.h>
+> > +#include <xen/platform_pci.h>
+> > +#include <asm/xen/hypervisor.h>
+> > +#include <asm/xen/hypercall.h>
+> > +#include <linux/module.h>
+> > +
+> > +struct start_info _xen_start_info;
+> > +struct start_info *xen_start_info = &_xen_start_info;
+> > +EXPORT_SYMBOL_GPL(xen_start_info);
+> > +
+> > +enum xen_domain_type xen_domain_type = XEN_NATIVE;
+> > +EXPORT_SYMBOL_GPL(xen_domain_type);
+> > +
+> > +struct shared_info xen_dummy_shared_info;
+> > +struct shared_info *HYPERVISOR_shared_info = (void *)&xen_dummy_shared_info;
+> > +
+> > +DEFINE_PER_CPU(struct vcpu_info *, xen_vcpu);
+> > +
+> > +/* XXX: to be removed */
+> 
+> In this patch series later on? Or just when you try to collapse the x86 and arm variant
+> together?
+
+The latter.
+It is not harmful but we don't need xen_have_vector_callback on ARM, so it
+would be nice if we didn't have to define it here.
+
+
+> > +__read_mostly int xen_have_vector_callback;
+> > +EXPORT_SYMBOL_GPL(xen_have_vector_callback);
+> > +
+> > +int xen_platform_pci_unplug = XEN_UNPLUG_ALL;
+> > +EXPORT_SYMBOL_GPL(xen_platform_pci_unplug);
+> > +
+> > +int xen_remap_domain_mfn_range(struct vm_area_struct *vma,
+> > +                         unsigned long addr,
+> > +                         unsigned long mfn, int nr,
+> > +                         pgprot_t prot, unsigned domid)
+> > +{
+> > +  return -ENOSYS;
+> > +}
+> > +EXPORT_SYMBOL_GPL(xen_remap_domain_mfn_range);
+> > diff --git a/include/xen/xen.h b/include/xen/xen.h
+> > index a164024..2c0d3a5 100644
+> > --- a/include/xen/xen.h
+> > +++ b/include/xen/xen.h
+> > @@ -23,7 +23,7 @@ extern enum xen_domain_type xen_domain_type;
+> >  #include <xen/interface/xen.h>
+> >  #include <asm/xen/hypervisor.h>
+> >  
+> > -#define xen_initial_domain()      (xen_pv_domain() && \
+> > +#define xen_initial_domain()      (xen_domain() && \
+> >                             xen_start_info->flags & SIF_INITDOMAIN)
+> >  #else  /* !CONFIG_XEN_DOM0 */
+> >  #define xen_initial_domain()      (0)
+> > -- 
+> > 1.7.2.5
+> > 
+> > 
+> > _______________________________________________
+> > Xen-devel mailing list
+> > Xen-devel@lists.xen.org
+> > http://lists.xen.org/xen-devel
+> 
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<alpine.DEB.2.02.1207271350370.26163@kaball.uk.xensource.com> b/config/examples/test/corpus/<alpine.DEB.2.02.1207271350370.26163@kaball.uk.xensource.com>
new file mode 100644 (file)
index 0000000..f14ac91
--- /dev/null
@@ -0,0 +1,319 @@
+From xen-devel-bounces@lists.xen.org Fri Jul 27 14:08:16 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 27 Jul 2012 14:08:16 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SukH4-0001aH-Qr
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 27 Jul 2012 14:08:16 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SukCI-0007iR-Pe; Fri, 27 Jul 2012 13:03:14 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1SukCH-0007iM-6w
+       for xen-devel@lists.xensource.com; Fri, 27 Jul 2012 13:03:13 +0000
+Received: from [85.158.138.51:35890] by server-11.bemta-3.messagelabs.com id
+       7D/62-00679-09192105; Fri, 27 Jul 2012 13:03:12 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-7.tower-174.messagelabs.com!1343394191!20226692!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDcxMzQ=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.2; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 28918 invoked from network); 27 Jul 2012 13:03:11 -0000
+Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-7.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
+       27 Jul 2012 13:03:11 -0000
+X-IronPort-AV: E=Sophos;i="4.77,667,1336348800"; d="scan'208";a="13734970"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       27 Jul 2012 13:03:11 +0000
+Received: from kaball.uk.xensource.com (10.80.2.59) by
+       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
+       8.3.213.0; Fri, 27 Jul 2012 14:03:11 +0100
+Date: Fri, 27 Jul 2012 14:02:18 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-X-Sender: sstabellini@kaball.uk.xensource.com
+To: Ian Campbell <Ian.Campbell@citrix.com>
+In-Reply-To: <1343380659.6812.106.camel@zakaz.uk.xensource.com>
+Message-ID: <alpine.DEB.2.02.1207271350370.26163@kaball.uk.xensource.com>
+References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
+       <1343316846-25860-2-git-send-email-stefano.stabellini@eu.citrix.com>
+       <20120726163352.GC9222@phenom.dumpdata.com>
+       <1343380659.6812.106.camel@zakaz.uk.xensource.com>
+User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
+       "linaro-dev@lists.linaro.org" <linaro-dev@lists.linaro.org>,
+       "arnd@arndb.de" <arnd@arndb.de>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>,
+       "catalin.marinas@arm.com" <catalin.marinas@arm.com>,
+       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
+       "Tim \(Xen.org\)" <tim@xen.org>,
+       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
+       "linux-arm-kernel@lists.infradead.org"
+       <linux-arm-kernel@lists.infradead.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 02/24] xen/arm: hypercalls
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Fri, 27 Jul 2012, Ian Campbell wrote:
+> On Thu, 2012-07-26 at 17:33 +0100, Konrad Rzeszutek Wilk wrote:
+> > On Thu, Jul 26, 2012 at 04:33:44PM +0100, Stefano Stabellini wrote:
+> > > Use r12 to pass the hypercall number to the hypervisor.
+> > > 
+> > > We need a register to pass the hypercall number because we might not
+> > > know it at compile time and HVC only takes an immediate argument.
+> > > 
+> > > Among the available registers r12 seems to be the best choice because it
+> > > is defined as "intra-procedure call scratch register".
+> > > 
+> > > Use the ISS to pass an hypervisor specific tag.
+> > > 
+> > > Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+> > > ---
+> > >  arch/arm/include/asm/xen/hypercall.h |   50 ++++++++++++++++++++++++++
+> > >  arch/arm/xen/Makefile                |    2 +-
+> > >  arch/arm/xen/hypercall.S             |   65 ++++++++++++++++++++++++++++++++++
+> > >  3 files changed, 116 insertions(+), 1 deletions(-)
+> > >  create mode 100644 arch/arm/include/asm/xen/hypercall.h
+> > >  create mode 100644 arch/arm/xen/hypercall.S
+> > > 
+> > > diff --git a/arch/arm/include/asm/xen/hypercall.h b/arch/arm/include/asm/xen/hypercall.h
+> > > new file mode 100644
+> > > index 0000000..4ac0624
+> > > --- /dev/null
+> > > +++ b/arch/arm/include/asm/xen/hypercall.h
+> > > @@ -0,0 +1,50 @@
+> > > +/******************************************************************************
+> > > + * hypercall.h
+> > > + *
+> > > + * Linux-specific hypervisor handling.
+> > > + *
+> > > + * Stefano Stabellini <stefano.stabellini@eu.citrix.com>, Citrix, 2012
+> > > + *
+> > > + * This program is free software; you can redistribute it and/or
+> > > + * modify it under the terms of the GNU General Public License version 2
+> > > + * as published by the Free Software Foundation; or, when distributed
+> > > + * separately from the Linux kernel or incorporated into other
+> > > + * software packages, subject to the following license:
+> > > + *
+> > > + * Permission is hereby granted, free of charge, to any person obtaining a copy
+> > > + * of this source file (the "Software"), to deal in the Software without
+> > > + * restriction, including without limitation the rights to use, copy, modify,
+> > > + * merge, publish, distribute, sublicense, and/or sell copies of the Software,
+> > > + * and to permit persons to whom the Software is furnished to do so, subject to
+> > > + * the following conditions:
+> > > + *
+> > > + * The above copyright notice and this permission notice shall be included in
+> > > + * all copies or substantial portions of the Software.
+> > > + *
+> > > + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+> > > + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+> > > + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+> > > + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+> > > + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+> > > + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+> > > + * IN THE SOFTWARE.
+> > > + */
+> > > +
+> > > +#ifndef _ASM_ARM_XEN_HYPERCALL_H
+> > > +#define _ASM_ARM_XEN_HYPERCALL_H
+> > > +
+> > > +#include <xen/interface/xen.h>
+> > > +
+> > > +long privcmd_call(unsigned call, unsigned long a1,
+> > > +                unsigned long a2, unsigned long a3,
+> > > +                unsigned long a4, unsigned long a5);
+> > > +int HYPERVISOR_xen_version(int cmd, void *arg);
+> > > +int HYPERVISOR_console_io(int cmd, int count, char *str);
+> > > +int HYPERVISOR_grant_table_op(unsigned int cmd, void *uop, unsigned int count);
+> > > +int HYPERVISOR_sched_op(int cmd, void *arg);
+> > > +int HYPERVISOR_event_channel_op(int cmd, void *arg);
+> > > +unsigned long HYPERVISOR_hvm_op(int op, void *arg);
+> > > +int HYPERVISOR_memory_op(unsigned int cmd, void *arg);
+> > > +int HYPERVISOR_physdev_op(int cmd, void *arg);
+> > > +
+> > > +#endif /* _ASM_ARM_XEN_HYPERCALL_H */
+> > > diff --git a/arch/arm/xen/Makefile b/arch/arm/xen/Makefile
+> > > index 0bad594..b9d6acc 100644
+> > > --- a/arch/arm/xen/Makefile
+> > > +++ b/arch/arm/xen/Makefile
+> > > @@ -1 +1 @@
+> > > -obj-y           := enlighten.o
+> > > +obj-y           := enlighten.o hypercall.o
+> > > diff --git a/arch/arm/xen/hypercall.S b/arch/arm/xen/hypercall.S
+> > > new file mode 100644
+> > > index 0000000..038cc5b
+> > > --- /dev/null
+> > > +++ b/arch/arm/xen/hypercall.S
+> > > @@ -0,0 +1,65 @@
+> > > +/******************************************************************************
+> > > + * hypercall.S
+> > > + *
+> > > + * Xen hypercall wrappers
+> > > + *
+> > > + * The Xen hypercall calling convention is very similar to the ARM
+> > > + * procedure calling convention: the first paramter is passed in r0, the
+> > > + * second in r1, the third in r2 and the third in r3. Considering that
+> > 
+> > I think you meant 'and the fourth in r3'.
+> > 
+> > So where does the similarity end?  Just in that we use r12?
+> 
+> The standard ARM function calling convention is arguments 1-4 on r0-r3
+> and arguments 5+ on the stack. r12 is a scratch register which can be
+> clobbered by the *linker* on subroutine call (r12 is also called "ip"
+> the intra-procedure call scratch register).
+> 
+> The hypervisor doesn't want to be accessing hypercall arguments off the
+> guest stack, for obvious reasons, so we use r4 for the fifth argument
+> (and if we even implemented 6 argument hypercalls we'd use r5, etc).
+> There is no equivalent to the hypercall number in the procedure calling
+> convention so we picked r12 because it is up and out of the way and is
+> otherwise a scratch register. Obviously that you must not make a
+> procedure call between setting the hypercall number in r12 and calling
+> the hvc instruction.
+> 
+> > 
+> > > + * Xen hypercalls have 5 arguments at most, the fifth paramter is passed
+> > > + * in r4, differently from the procedure calling convention of using the
+> > 
+> > > + * stack for that case.
+> > > + *
+> > > + * The hypercall number is passed in r12.
+> > > + *
+> > > + * The return value is in r0.
+> > > + *
+> > > + * The hvc ISS is required to be 0xEA1, that is the Xen specific ARM
+> > > + * hypercall tag.
+> > > + *
+> > > + * Stefano Stabellini <stefano.stabellini@eu.citrix.com>, Citrix, 2012
+> > > + */
+> > > +
+> > > +#include <linux/linkage.h>
+> > > +#include <asm/assembler.h>
+> > > +#include <xen/interface/xen.h>
+> > > +
+> > > +
+> > > +/* HVC 0xEA1 */
+> > > +#ifdef CONFIG_THUMB2_KERNEL
+> > > +#define xen_hvc .word 0xf7e08ea1
+> > > +#else
+> > > +#define xen_hvc .word 0xe140ea71
+> > > +#endif
+> > > +
+> > > +/* We need to save and restore r4, because Xen clobbers it. */
+> > 
+> > Hmm, the comment says r4, but right below I see r12?
+> 
+> The ARM procedure calling convention allows a subroutine to clobber
+> r1..r3 (r0 is the return value) but not r4 which must be preserved. But
+> the hypervisor ABI clobbers all argument registers so the caller has to
+> specially preserve r4 in this context whenever there is a 5 argument
+> hypercall.
+> 
+> I presume that none of the hypercalls defined below have 5 arguments and
+> therefore we don't need to preserve r4 except in the generic
+> privcmd_call function. 
+> 
+> To be honest I prefer the style which we use on x86 which is to define
+> hypercall{0,1,2,3,4,5} macros and to wrap those with the specific names
+> using inline functions.
+> 
+> I find the x86 way more self documenting, and being in C prevents errors
+> around the number of arguments. It also allows for better in-lining and
+> exposes to gcc the actual clobbers, which might allow it to avoid saving
+> r4 on the stack at all etc.
+
+Considering that we cannot do the same thing that we do on x86 (see this
+thread http://marc.info/?l=linux-kernel&m=133052035426427&w=2), I
+decided to go for the assembly implementation because it is much shorter
+and easier to understand (for me at least, being just 3 lines of code in
+the generic case and just one macro) and this way we can exploit the
+code generated by gcc to put the arguments in the right registers.
+
+Also I like the fact that it is the same strategy used by libc to issue
+syscalls.
+
+As you can see it results in 3 lines of code for all the hypercalls
+except the ones that might take more than 4 arguments, that right now is
+just privcmd.
+
+
+
+> > Should this comment be by 'privcmd_call'?
+> 
+> When we add a 5 argument hypercall I suppose we'll see the required
+> push/pop of r4 added to this macro too.
+
+For performance and simplicity I would add a second macro that push/pop
+r4, only required for hypercalls with more than 4 arguments.
+
+
+> > > +#define HYPERCALL(hypercall)                    \
+> > > +ENTRY(HYPERVISOR_##hypercall)                   \
+> > > +        mov r12, #__HYPERVISOR_##hypercall;     \
+> > > +        xen_hvc;                                                        \
+> > > +        mov pc, lr;                                                     \
+> > > +ENDPROC(HYPERVISOR_##hypercall)
+> > > +
+> > > +                .text
+> > > +
+> > > +HYPERCALL(xen_version);
+> > > +HYPERCALL(console_io);
+> > > +HYPERCALL(grant_table_op);
+> > > +HYPERCALL(sched_op);
+> > > +HYPERCALL(event_channel_op);
+> > > +HYPERCALL(hvm_op);
+> > > +HYPERCALL(memory_op);
+> > > +HYPERCALL(physdev_op);
+> > > +
+> > > +ENTRY(privcmd_call)
+> > > +        stmdb   sp!, {r4}
+> > > +        mov r12, r0
+> > > +        mov r0, r1
+> > > +        mov r1, r2
+> > > +        mov r2, r3
+> > > +        ldr r3, [sp, #8]
+> > > +        ldr r4, [sp, #4]
+> > > +        xen_hvc
+> > > +        pop {r4}
+> 
+> Why not ldmdb for symmetry?
+
+Yep, I can do that.
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<alpine.DEB.2.02.1207271431320.26163@kaball.uk.xensource.com> b/config/examples/test/corpus/<alpine.DEB.2.02.1207271431320.26163@kaball.uk.xensource.com>
new file mode 100644 (file)
index 0000000..e57a2a8
--- /dev/null
@@ -0,0 +1,145 @@
+From xen-devel-bounces@lists.xen.org Fri Jul 27 14:47:33 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 27 Jul 2012 14:47:33 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1Sukt5-0001jD-B2
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 27 Jul 2012 14:47:33 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SukoG-0000Ro-Dh; Fri, 27 Jul 2012 13:42:28 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1SukoE-0000Rh-8a
+       for xen-devel@lists.xensource.com; Fri, 27 Jul 2012 13:42:26 +0000
+Received: from [85.158.138.51:31149] by server-1.bemta-3.messagelabs.com id
+       38/CE-31934-1CA92105; Fri, 27 Jul 2012 13:42:25 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-3.tower-174.messagelabs.com!1343396544!21059973!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDcxMzQ=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.2; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 15587 invoked from network); 27 Jul 2012 13:42:25 -0000
+Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-3.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
+       27 Jul 2012 13:42:25 -0000
+X-IronPort-AV: E=Sophos;i="4.77,667,1336348800"; d="scan'208";a="13735886"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       27 Jul 2012 13:42:24 +0000
+Received: from kaball.uk.xensource.com (10.80.2.59) by
+       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
+       8.3.213.0; Fri, 27 Jul 2012 14:42:24 +0100
+Date: Fri, 27 Jul 2012 14:41:31 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-X-Sender: sstabellini@kaball.uk.xensource.com
+To: Ian Campbell <Ian.Campbell@citrix.com>
+In-Reply-To: <1343395134.6812.162.camel@zakaz.uk.xensource.com>
+Message-ID: <alpine.DEB.2.02.1207271431320.26163@kaball.uk.xensource.com>
+References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
+       <1343316846-25860-2-git-send-email-stefano.stabellini@eu.citrix.com>
+       <20120726163352.GC9222@phenom.dumpdata.com>
+       <1343380659.6812.106.camel@zakaz.uk.xensource.com> 
+       <alpine.DEB.2.02.1207271350370.26163@kaball.uk.xensource.com>
+       <1343395134.6812.162.camel@zakaz.uk.xensource.com>
+User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
+       "linaro-dev@lists.linaro.org" <linaro-dev@lists.linaro.org>,
+       "arnd@arndb.de" <arnd@arndb.de>,
+       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
+       "catalin.marinas@arm.com" <catalin.marinas@arm.com>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>,
+       "Tim \(Xen.org\)" <tim@xen.org>,
+       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
+       "linux-arm-kernel@lists.infradead.org"
+       <linux-arm-kernel@lists.infradead.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 02/24] xen/arm: hypercalls
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Fri, 27 Jul 2012, Ian Campbell wrote:
+> > > > Should this comment be by 'privcmd_call'?
+> > > 
+> > > When we add a 5 argument hypercall I suppose we'll see the required
+> > > push/pop of r4 added to this macro too.
+> > 
+> > For performance and simplicity I would add a second macro that push/pop
+> > r4, only required for hypercalls with more than 4 arguments.
+> 
+> For clarity / documentation purposes it might actually be worthwhile to
+> define all of HYPERCALL{0,1,2,3,4} even if the {0,1,2,3} cases are all
+> just:
+>         #define HYPERCALL0(x) HYPERCALL_SIMPLE(x)
+
+I agree
+
+> > > > > +#define HYPERCALL(hypercall)                        \
+> > > > > +ENTRY(HYPERVISOR_##hypercall)                       \
+> > > > > +    mov r12, #__HYPERVISOR_##hypercall;     \
+> > > > > +    xen_hvc;                                                        \
+> > > > > +    mov pc, lr;                                                     \
+> > > > > +ENDPROC(HYPERVISOR_##hypercall)
+> > > > > +
+> > > > > +                .text
+> > > > > +
+> > > > > +HYPERCALL(xen_version);
+> > > > > +HYPERCALL(console_io);
+> > > > > +HYPERCALL(grant_table_op);
+> > > > > +HYPERCALL(sched_op);
+> > > > > +HYPERCALL(event_channel_op);
+> > > > > +HYPERCALL(hvm_op);
+> > > > > +HYPERCALL(memory_op);
+> > > > > +HYPERCALL(physdev_op);
+> > > > > +
+> > > > > +ENTRY(privcmd_call)
+> > > > > +    stmdb   sp!, {r4}
+> > > > > +    mov r12, r0
+> > > > > +    mov r0, r1
+> > > > > +    mov r1, r2
+> > > > > +    mov r2, r3
+> > > > > +    ldr r3, [sp, #8]
+> > > > > +    ldr r4, [sp, #4]
+> > > > > +    xen_hvc
+> > > > > +    pop {r4}
+> > > 
+> > > Why not ldmdb for symmetry?
+> > 
+> > Yep, I can do that.
+
+Actually it is just ldm or ldmia
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<alpine.DEB.2.02.1207271442380.26163@kaball.uk.xensource.com> b/config/examples/test/corpus/<alpine.DEB.2.02.1207271442380.26163@kaball.uk.xensource.com>
new file mode 100644 (file)
index 0000000..bddb371
--- /dev/null
@@ -0,0 +1,208 @@
+From xen-devel-bounces@lists.xen.org Fri Jul 27 14:53:19 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 27 Jul 2012 14:53:19 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1Sukyj-0001l6-6R
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 27 Jul 2012 14:53:19 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1Suktr-0000li-Pn; Fri, 27 Jul 2012 13:48:15 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1Suktp-0000lc-JX
+       for xen-devel@lists.xensource.com; Fri, 27 Jul 2012 13:48:13 +0000
+Received: from [85.158.139.83:19278] by server-7.bemta-5.messagelabs.com id
+       40/6A-28276-C1C92105; Fri, 27 Jul 2012 13:48:12 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-3.tower-182.messagelabs.com!1343396891!28971560!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDcxMzQ=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.2; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 31294 invoked from network); 27 Jul 2012 13:48:12 -0000
+Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-3.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
+       27 Jul 2012 13:48:12 -0000
+X-IronPort-AV: E=Sophos;i="4.77,667,1336348800"; d="scan'208";a="13735994"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       27 Jul 2012 13:48:11 +0000
+Received: from kaball.uk.xensource.com (10.80.2.59) by
+       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
+       8.3.213.0; Fri, 27 Jul 2012 14:48:11 +0100
+Date: Fri, 27 Jul 2012 14:47:18 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-X-Sender: sstabellini@kaball.uk.xensource.com
+To: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+In-Reply-To: <20120726163655.GD9222@phenom.dumpdata.com>
+Message-ID: <alpine.DEB.2.02.1207271442380.26163@kaball.uk.xensource.com>
+References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
+       <1343316846-25860-3-git-send-email-stefano.stabellini@eu.citrix.com>
+       <20120726163655.GD9222@phenom.dumpdata.com>
+User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
+       "linaro-dev@lists.linaro.org" <linaro-dev@lists.linaro.org>,
+       Ian Campbell <Ian.Campbell@citrix.com>, "arnd@arndb.de" <arnd@arndb.de>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>,
+       "catalin.marinas@arm.com" <catalin.marinas@arm.com>,
+       "Tim \(Xen.org\)" <tim@xen.org>,
+       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
+       "linux-arm-kernel@lists.infradead.org"
+       <linux-arm-kernel@lists.infradead.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 03/24] xen/arm: page.h definitions
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Thu, 26 Jul 2012, Konrad Rzeszutek Wilk wrote:
+> On Thu, Jul 26, 2012 at 04:33:45PM +0100, Stefano Stabellini wrote:
+> > ARM Xen guests always use paging in hardware, like PV on HVM guests in
+> > the X86 world.
+> 
+> Nice, so no dealing with the P2M at all in the guest?
+
+Nope ;-)
+
+
+> > Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+> > ---
+> >  arch/arm/include/asm/xen/page.h |   77 +++++++++++++++++++++++++++++++++++++++
+> >  1 files changed, 77 insertions(+), 0 deletions(-)
+> >  create mode 100644 arch/arm/include/asm/xen/page.h
+> > 
+> > diff --git a/arch/arm/include/asm/xen/page.h b/arch/arm/include/asm/xen/page.h
+> > new file mode 100644
+> > index 0000000..6cfe9a1
+> > --- /dev/null
+> > +++ b/arch/arm/include/asm/xen/page.h
+> > @@ -0,0 +1,77 @@
+> > +#ifndef _ASM_ARM_XEN_PAGE_H
+> > +#define _ASM_ARM_XEN_PAGE_H
+> > +
+> > +#include <asm/page.h>
+> > +#include <linux/pfn.h>
+> > +#include <linux/types.h>
+> > +#include <asm/pgtable.h>
+> > +#include <xen/interface/grant_table.h>
+> 
+> I don't if it makes such a difference, but putting the headers in sorted
+> order is sometimes nicer than just randomly.. But that might be just
+> me liking an orderly world nowadays :-)
+
+I can do that
+
+
+> > +
+> > +#define pfn_to_mfn(pfn)                   (pfn)
+> > +#define phys_to_machine_mapping_valid     (1)
+> > +#define mfn_to_pfn(mfn)                   (mfn)
+> > +#define mfn_to_virt(m)                    (__va(mfn_to_pfn(m) << PAGE_SHIFT))
+> > +
+> > +#define pte_mfn       pte_pfn
+> > +#define mfn_pte       pfn_pte
+> > +
+> > +/* Xen machine address */
+> > +typedef struct xmaddr {
+> > +  phys_addr_t maddr;
+> > +} xmaddr_t;
+> > +
+> > +/* Xen pseudo-physical address */
+> > +typedef struct xpaddr {
+> > +  phys_addr_t paddr;
+> > +} xpaddr_t;
+> > +
+> > +#define XMADDR(x) ((xmaddr_t) { .maddr = (x) })
+> > +#define XPADDR(x) ((xpaddr_t) { .paddr = (x) })
+> > +
+> > +static inline xmaddr_t phys_to_machine(xpaddr_t phys)
+> > +{
+> > +  unsigned offset = phys.paddr & ~PAGE_MASK;
+> > +  return XMADDR(PFN_PHYS(pfn_to_mfn(PFN_DOWN(phys.paddr))) | offset);
+> > +}
+> > +
+> > +static inline xpaddr_t machine_to_phys(xmaddr_t machine)
+> > +{
+> > +  unsigned offset = machine.maddr & ~PAGE_MASK;
+> > +  return XPADDR(PFN_PHYS(mfn_to_pfn(PFN_DOWN(machine.maddr))) | offset);
+> > +}
+> > +/* VIRT <-> MACHINE conversion */
+> > +#define virt_to_machine(v)        (phys_to_machine(XPADDR(__pa(v))))
+> > +#define virt_to_pfn(v)          (PFN_DOWN(__pa(v)))
+> > +#define virt_to_mfn(v)            (pfn_to_mfn(virt_to_pfn(v)))
+> > +#define mfn_to_virt(m)            (__va(mfn_to_pfn(m) << PAGE_SHIFT))
+> > +
+> > +static inline xmaddr_t arbitrary_virt_to_machine(void *vaddr)
+> > +{
+> > +  /* XXX: assuming it is mapped in the kernel 1:1 */
+> > +  return virt_to_machine(vaddr);
+> > +}
+> > +
+> > +/* XXX: this shouldn't be here */
+> 
+> So why is it here?
+
+lookup_address shouldn't be here because it is an x86-only interface.
+However both gntdev.c and xenbus_client.c call it (in PV only code paths
+that are never taken in a PV on HVM guest), so in order to compile them
+I have to define lookup_address.
+
+
+> > +static inline pte_t *lookup_address(unsigned long address, unsigned int *level)
+> > +{
+> > +  BUG();
+> > +  return NULL;
+> > +}
+> > +
+> > +static inline int m2p_add_override(unsigned long mfn, struct page *page,
+> > +          struct gnttab_map_grant_ref *kmap_op)
+> > +{
+> > +  return 0;
+> > +}
+> > +
+> > +static inline int m2p_remove_override(struct page *page, bool clear_pte)
+> > +{
+> > +  return 0;
+> > +}
+> > +
+> > +static inline bool set_phys_to_machine(unsigned long pfn, unsigned long mfn)
+> > +{
+> > +  BUG();
+> > +  return false;
+> > +}
+> > +#endif /* _ASM_ARM_XEN_PAGE_H */
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<alpine.DEB.2.02.1207271454470.26163@kaball.uk.xensource.com> b/config/examples/test/corpus/<alpine.DEB.2.02.1207271454470.26163@kaball.uk.xensource.com>
new file mode 100644 (file)
index 0000000..7c548f6
--- /dev/null
@@ -0,0 +1,138 @@
+From xen-devel-bounces@lists.xen.org Fri Jul 27 15:04:24 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 27 Jul 2012 15:04:24 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1Sul9O-0001nj-Vi
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 27 Jul 2012 15:04:24 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1Sul45-00010i-65; Fri, 27 Jul 2012 13:58:49 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1Sul43-00010a-4N
+       for xen-devel@lists.xensource.com; Fri, 27 Jul 2012 13:58:47 +0000
+Received: from [85.158.143.35:3509] by server-2.bemta-4.messagelabs.com id
+       9E/D5-17938-69E92105; Fri, 27 Jul 2012 13:58:46 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-6.tower-21.messagelabs.com!1343397525!17407375!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDcxMzQ=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.2; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 11485 invoked from network); 27 Jul 2012 13:58:45 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-6.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
+       27 Jul 2012 13:58:45 -0000
+X-IronPort-AV: E=Sophos;i="4.77,667,1336348800"; d="scan'208";a="13736267"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       27 Jul 2012 13:58:45 +0000
+Received: from kaball.uk.xensource.com (10.80.2.59) by
+       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
+       8.3.213.0; Fri, 27 Jul 2012 14:58:44 +0100
+Date: Fri, 27 Jul 2012 14:57:52 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-X-Sender: sstabellini@kaball.uk.xensource.com
+To: Christopher Covington <cov@codeaurora.org>
+In-Reply-To: <50128FE6.5070109@codeaurora.org>
+Message-ID: <alpine.DEB.2.02.1207271454470.26163@kaball.uk.xensource.com>
+References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
+       <1343316846-25860-2-git-send-email-stefano.stabellini@eu.citrix.com>
+       <50119856.2020206@codeaurora.org>
+       <1343380764.6812.108.camel@zakaz.uk.xensource.com>
+       <50128FE6.5070109@codeaurora.org>
+User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
+       "linaro-dev@lists.linaro.org" <linaro-dev@lists.linaro.org>,
+       Ian Campbell <Ian.Campbell@citrix.com>, "arnd@arndb.de" <arnd@arndb.de>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>,
+       "catalin.marinas@arm.com" <catalin.marinas@arm.com>,
+       "konrad.wilk@oracle.com" <konrad.wilk@oracle.com>,
+       "Tim \(Xen.org\)" <tim@xen.org>,
+       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
+       "linux-arm-kernel@lists.infradead.org"
+       <linux-arm-kernel@lists.infradead.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 02/24] xen/arm: hypercalls
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Fri, 27 Jul 2012, Christopher Covington wrote:
+> On 07/27/2012 05:19 AM, Ian Campbell wrote:
+> > On Thu, 2012-07-26 at 20:19 +0100, Christopher Covington wrote:
+> >> Hi Stefano,
+> >>
+> >> On 07/26/2012 11:33 AM, Stefano Stabellini wrote:
+> >>> Use r12 to pass the hypercall number to the hypervisor.
+> >>>
+> >>> We need a register to pass the hypercall number because we might not
+> >>> know it at compile time and HVC only takes an immediate argument.
+> >>
+> >> You're not going to JIT assemble the appropriate HVC instruction? Darn.
+> > 
+> > ;-)
+> > 
+
+I admit having spent few hours thinking about how to implement a
+self-modifying function able to change the ISS at run time. Fortunately
+few hours later I was struck by common sense and I decided to follow a
+different direction ;-)
+
+
+> > The maximum currently defined hypercall number is 55, although there are
+> > some small gaps so there's actually more like 45 in total.
+> > 
+> >>  It seems like it'd be
+> >> reasonable to take the approach that seems to be favored for MRC/MCR
+> >> instructions, using a function containing switch statement that chooses
+> >> between several inline assembly instructions based off an enum passed to
+> >> the function. See for example arch_timer_reg_read in
+> >> arch/arm/kernel/arch_timer.c.
+> > 
+> > I don't think it is feasible with this number of hypercalls, even
+> > accepting that in many cases the number will be a constant so gcc can
+> > likely optimise almost all of it away.
+> > 
+> > Is there something wrong with the r12 based approach?
+> 
+> Only that you're defining a custom interface for something that there is
+> a potentially more standard interface for. I just wanted to double check
+> that all the ways of using the potentially more standard interface had
+> been explored and found to be unreasonable.
+
+Yep, thanks for helping us reviewing the code.
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<alpine.DEB.2.02.1207271502480.26163@kaball.uk.xensource.com> b/config/examples/test/corpus/<alpine.DEB.2.02.1207271502480.26163@kaball.uk.xensource.com>
new file mode 100644 (file)
index 0000000..5e66914
--- /dev/null
@@ -0,0 +1,150 @@
+From xen-devel-bounces@lists.xen.org Fri Jul 27 15:16:07 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 27 Jul 2012 15:16:07 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SulKn-0001rz-F6
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 27 Jul 2012 15:16:07 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SulG1-0001So-EO; Fri, 27 Jul 2012 14:11:09 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1SulG0-0001Sj-7n
+       for xen-devel@lists.xensource.com; Fri, 27 Jul 2012 14:11:08 +0000
+Received: from [85.158.139.83:22185] by server-5.bemta-5.messagelabs.com id
+       0E/F3-02722-B71A2105; Fri, 27 Jul 2012 14:11:07 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-9.tower-182.messagelabs.com!1343398266!28323533!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDcxMzQ=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.2; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 15561 invoked from network); 27 Jul 2012 14:11:06 -0000
+Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-9.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
+       27 Jul 2012 14:11:06 -0000
+X-IronPort-AV: E=Sophos;i="4.77,667,1336348800"; d="scan'208";a="13736617"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       27 Jul 2012 14:11:06 +0000
+Received: from kaball.uk.xensource.com (10.80.2.59) by
+       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
+       8.3.213.0; Fri, 27 Jul 2012 15:11:06 +0100
+Date: Fri, 27 Jul 2012 15:10:13 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-X-Sender: sstabellini@kaball.uk.xensource.com
+To: Jan Beulich <JBeulich@suse.com>
+In-Reply-To: <5012598C0200007800090DB9@nat28.tlf.novell.com>
+Message-ID: <alpine.DEB.2.02.1207271502480.26163@kaball.uk.xensource.com>
+References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
+       <1343316846-25860-17-git-send-email-stefano.stabellini@eu.citrix.com>
+       <5012598C0200007800090DB9@nat28.tlf.novell.com>
+User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
+       "linaro-dev@lists.linaro.org" <linaro-dev@lists.linaro.org>,
+       Ian Campbell <Ian.Campbell@citrix.com>, "arnd@arndb.de" <arnd@arndb.de>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>,
+       "catalin.marinas@arm.com" <catalin.marinas@arm.com>,
+       "konrad.wilk@oracle.com" <konrad.wilk@oracle.com>,
+       "Tim \(Xen.org\)" <tim@xen.org>,
+       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
+       "linux-arm-kernel@lists.infradead.org"
+       <linux-arm-kernel@lists.infradead.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 17/24] xen: allow privcmd for HVM guests
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Fri, 27 Jul 2012, Jan Beulich wrote:
+> >>> On 26.07.12 at 17:33, Stefano Stabellini <stefano.stabellini@eu.citrix.com> wrote:
+> > In order for privcmd mmap to work correctly, xen_remap_domain_mfn_range
+> > needs to be implemented for HVM guests.
+> > If it is not, mmap is going to fail later on.
+> 
+> Somehow, for me at least, this description doesn't connect to the
+> actual change.
+
+We can remove the "return -ENOSYS" from privcmd_mmap but the actual mmap
+is still not going to work unless xen_remap_domain_mfn_range is
+implemented correctly.
+The x86 implementation of xen_remap_domain_mfn_range is PV only so it is
+not going to work for HVM or auto_translated_physmap guests.
+As a result mmap_batch_fn is going to fail.
+
+
+> > Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+> > ---
+> >  drivers/xen/privcmd.c |    4 ----
+> >  1 files changed, 0 insertions(+), 4 deletions(-)
+> > 
+> > diff --git a/drivers/xen/privcmd.c b/drivers/xen/privcmd.c
+> > index ccee0f1..85226cb 100644
+> > --- a/drivers/xen/privcmd.c
+> > +++ b/drivers/xen/privcmd.c
+> > @@ -380,10 +380,6 @@ static struct vm_operations_struct privcmd_vm_ops = {
+> >  
+> >  static int privcmd_mmap(struct file *file, struct vm_area_struct *vma)
+> >  {
+> > -  /* Unsupported for auto-translate guests. */
+> > -  if (xen_feature(XENFEAT_auto_translated_physmap))
+> > -          return -ENOSYS;
+> > -
+> 
+> Is this safe on x86?
+> 
+
+It is safe in the sense that is not going to crash dom0 or the
+hypervisor, but it is not going to work.
+
+Actually in order for it to be safe we need this additional change:
+
+diff --git a/arch/x86/xen/mmu.c b/arch/x86/xen/mmu.c
+index 3a73785..885a223 100644
+--- a/arch/x86/xen/mmu.c
++++ b/arch/x86/xen/mmu.c
+@@ -2310,6 +2310,9 @@ int xen_remap_domain_mfn_range(struct vm_area_struct *vma,
+       unsigned long range;
+       int err = 0;
++      if (xen_feature(XENFEAT_auto_translated_physmap))
++              return -EINVAL;
++
+       prot = __pgprot(pgprot_val(prot) | _PAGE_IOMAP);
+       BUG_ON(!((vma->vm_flags & (VM_PFNMAP | VM_RESERVED | VM_IO)) ==
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<alpine.DEB.2.02.1207271514140.26163@kaball.uk.xensource.com> b/config/examples/test/corpus/<alpine.DEB.2.02.1207271514140.26163@kaball.uk.xensource.com>
new file mode 100644 (file)
index 0000000..b591838
--- /dev/null
@@ -0,0 +1,133 @@
+From xen-devel-bounces@lists.xen.org Fri Jul 27 15:30:22 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 27 Jul 2012 15:30:22 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SulYW-0001vc-NY
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 27 Jul 2012 15:30:22 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SulV9-00026B-9K; Fri, 27 Jul 2012 14:26:47 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1SulV7-00025u-KP
+       for xen-devel@lists.xensource.com; Fri, 27 Jul 2012 14:26:45 +0000
+Received: from [85.158.138.51:57992] by server-4.bemta-3.messagelabs.com id
+       14/0F-29069-425A2105; Fri, 27 Jul 2012 14:26:44 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-2.tower-174.messagelabs.com!1343399201!29167380!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDcxMzQ=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.2; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 17375 invoked from network); 27 Jul 2012 14:26:42 -0000
+Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-2.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
+       27 Jul 2012 14:26:42 -0000
+X-IronPort-AV: E=Sophos;i="4.77,667,1336348800"; d="scan'208";a="13737083"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       27 Jul 2012 14:26:41 +0000
+Received: from kaball.uk.xensource.com (10.80.2.59) by
+       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
+       8.3.213.0; Fri, 27 Jul 2012 15:26:41 +0100
+Date: Fri, 27 Jul 2012 15:25:47 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-X-Sender: sstabellini@kaball.uk.xensource.com
+To: Ian Campbell <Ian.Campbell@citrix.com>
+In-Reply-To: <1343382276.6812.126.camel@zakaz.uk.xensource.com>
+Message-ID: <alpine.DEB.2.02.1207271514140.26163@kaball.uk.xensource.com>
+References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
+       <1343316846-25860-13-git-send-email-stefano.stabellini@eu.citrix.com>
+       <1343382276.6812.126.camel@zakaz.uk.xensource.com>
+User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
+       "linaro-dev@lists.linaro.org" <linaro-dev@lists.linaro.org>,
+       "arnd@arndb.de" <arnd@arndb.de>,
+       "konrad.wilk@oracle.com" <konrad.wilk@oracle.com>,
+       "catalin.marinas@arm.com" <catalin.marinas@arm.com>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>,
+       "Tim \(Xen.org\)" <tim@xen.org>,
+       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
+       "linux-arm-kernel@lists.infradead.org"
+       <linux-arm-kernel@lists.infradead.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 13/24] xen/arm: get privilege status
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Fri, 27 Jul 2012, Ian Campbell wrote:
+> On Thu, 2012-07-26 at 16:33 +0100, Stefano Stabellini wrote:
+> > Use Xen features to figure out if we are privileged.
+> > 
+> > XENFEAT_dom0 was introduced by 23735 in xen-unstable.hg.
+> > 
+> > Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+> > ---
+> >  arch/arm/xen/enlighten.c         |    7 +++++++
+> >  include/xen/interface/features.h |    3 +++
+> >  2 files changed, 10 insertions(+), 0 deletions(-)
+> > 
+> > diff --git a/arch/arm/xen/enlighten.c b/arch/arm/xen/enlighten.c
+> > index dc68074..2e013cf 100644
+> > --- a/arch/arm/xen/enlighten.c
+> > +++ b/arch/arm/xen/enlighten.c
+> > @@ -2,6 +2,7 @@
+> >  #include <xen/interface/xen.h>
+> >  #include <xen/interface/memory.h>
+> >  #include <xen/platform_pci.h>
+> > +#include <xen/features.h>
+> >  #include <asm/xen/hypervisor.h>
+> >  #include <asm/xen/hypercall.h>
+> >  #include <linux/module.h>
+> > @@ -58,6 +59,12 @@ int __init xen_guest_init(void)
+> >    }
+> >    xen_domain_type = XEN_HVM_DOMAIN;
+> >  
+> > +  xen_setup_features();
+> > +  if (xen_feature(XENFEAT_dom0))
+> > +          xen_start_info->flags |= SIF_INITDOMAIN|SIF_PRIVILEGED;
+> > +  else
+> > +          xen_start_info->flags &= ~(SIF_INITDOMAIN|SIF_PRIVILEGED);
+> 
+> What happens here on platforms prior to hypervisor changeset 23735?
+
+It wouldn't work.
+Considering that we are certainly not going to backport ARM support to
+Xen 4.1, and that both ARM and XENFEAT_dom0 will be present in Xen 4.2,
+do we really need to support the Xen unstable changesets between ARM was
+introduced and XENFEAT_dom0 appeared?
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<alpine.DEB.2.02.1207271526420.26163@kaball.uk.xensource.com> b/config/examples/test/corpus/<alpine.DEB.2.02.1207271526420.26163@kaball.uk.xensource.com>
new file mode 100644 (file)
index 0000000..94cd6de
--- /dev/null
@@ -0,0 +1,125 @@
+From xen-devel-bounces@lists.xen.org Fri Jul 27 15:42:30 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 27 Jul 2012 15:42:30 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SulkH-0001zV-1R
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 27 Jul 2012 15:42:30 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SulgK-0003J9-2O; Fri, 27 Jul 2012 14:38:20 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1SulgH-0003ID-K9
+       for xen-devel@lists.xensource.com; Fri, 27 Jul 2012 14:38:17 +0000
+Received: from [85.158.138.51:23976] by server-11.bemta-3.messagelabs.com id
+       A0/3C-00679-8D7A2105; Fri, 27 Jul 2012 14:38:16 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-15.tower-174.messagelabs.com!1343399896!27402056!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDcxMzQ=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.2; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 7564 invoked from network); 27 Jul 2012 14:38:16 -0000
+Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-15.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
+       27 Jul 2012 14:38:16 -0000
+X-IronPort-AV: E=Sophos;i="4.77,667,1336348800"; d="scan'208";a="13737344"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       27 Jul 2012 14:37:19 +0000
+Received: from kaball.uk.xensource.com (10.80.2.59) by
+       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
+       8.3.213.0; Fri, 27 Jul 2012 15:37:18 +0100
+Date: Fri, 27 Jul 2012 15:36:25 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-X-Sender: sstabellini@kaball.uk.xensource.com
+To: Russell King - ARM Linux <linux@arm.linux.org.uk>
+In-Reply-To: <20120727142101.GA6802@n2100.arm.linux.org.uk>
+Message-ID: <alpine.DEB.2.02.1207271526420.26163@kaball.uk.xensource.com>
+References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
+       <1343316846-25860-2-git-send-email-stefano.stabellini@eu.citrix.com>
+       <20120726163352.GC9222@phenom.dumpdata.com>
+       <1343380659.6812.106.camel@zakaz.uk.xensource.com>
+       <alpine.DEB.2.02.1207271350370.26163@kaball.uk.xensource.com>
+       <20120727142101.GA6802@n2100.arm.linux.org.uk>
+User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
+       "linaro-dev@lists.linaro.org" <linaro-dev@lists.linaro.org>,
+       Ian Campbell <Ian.Campbell@citrix.com>, "arnd@arndb.de" <arnd@arndb.de>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>,
+       "catalin.marinas@arm.com" <catalin.marinas@arm.com>,
+       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
+       "Tim \(Xen.org\)" <tim@xen.org>,
+       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
+       "linux-arm-kernel@lists.infradead.org"
+       <linux-arm-kernel@lists.infradead.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 02/24] xen/arm: hypercalls
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Fri, 27 Jul 2012, Russell King - ARM Linux wrote:
+> On Fri, Jul 27, 2012 at 02:02:18PM +0100, Stefano Stabellini wrote:
+> > > > > +/******************************************************************************
+> > > > > + * hypercall.h
+> > > > > + *
+> > > > > + * Linux-specific hypervisor handling.
+> > > > > + *
+> > > > > + * Stefano Stabellini <stefano.stabellini@eu.citrix.com>, Citrix, 2012
+> > > > > + *
+> > > > > + * This program is free software; you can redistribute it and/or
+> > > > > + * modify it under the terms of the GNU General Public License version 2
+> > > > > + * as published by the Free Software Foundation; or, when distributed
+> > > > > + * separately from the Linux kernel or incorporated into other
+> > > > > + * software packages, subject to the following license:
+> > > > > + *
+> > > > > + * Permission is hereby granted, free of charge, to any person obtaining a copy
+> > > > > + * of this source file (the "Software"), to deal in the Software without
+> 
+> Erm, is that an additional restriction on the GPL which prevents me from
+> shipping this code on a CD and charging for the act of creating the CD
+> and shipping it?  That would technically make the above statement
+> incompatible with the GPL.
+
+IMNAL but this is just an alternative, less strict, MIT license for this
+file, same as the x86 counterpart
+(arch/x86/include/asm/xen/hypercall.h). The intent is to allow other
+operating systems, the BSDs for example, to be able to use it if they
+want to.
+Actually, given that the ARM implementation is not inline, I should
+remember to add this copyright header to the assembly source file too.
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<alpine.DEB.2.02.1207271545440.26163@kaball.uk.xensource.com> b/config/examples/test/corpus/<alpine.DEB.2.02.1207271545440.26163@kaball.uk.xensource.com>
new file mode 100644 (file)
index 0000000..6c37f46
--- /dev/null
@@ -0,0 +1,192 @@
+From xen-devel-bounces@lists.xen.org Fri Jul 27 15:52:58 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 27 Jul 2012 15:52:58 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SuluR-00022M-QT
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 27 Jul 2012 15:52:58 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1Sulqu-0004F6-Ly; Fri, 27 Jul 2012 14:49:16 +0000
+Received: from mail27.messagelabs.com ([193.109.254.147])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1Sulqs-0004Ei-Vj
+       for xen-devel@lists.xensource.com; Fri, 27 Jul 2012 14:49:15 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-5.tower-27.messagelabs.com!1343400548!8581473!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDcxMzQ=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.2; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 14615 invoked from network); 27 Jul 2012 14:49:08 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-5.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
+       27 Jul 2012 14:49:08 -0000
+X-IronPort-AV: E=Sophos;i="4.77,667,1336348800"; d="scan'208";a="13737612"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       27 Jul 2012 14:49:08 +0000
+Received: from kaball.uk.xensource.com (10.80.2.59) by
+       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
+       8.3.213.0; Fri, 27 Jul 2012 15:49:08 +0100
+Date: Fri, 27 Jul 2012 15:48:15 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-X-Sender: sstabellini@kaball.uk.xensource.com
+To: Ian Campbell <Ian.Campbell@citrix.com>
+In-Reply-To: <1343381813.6812.120.camel@zakaz.uk.xensource.com>
+Message-ID: <alpine.DEB.2.02.1207271545440.26163@kaball.uk.xensource.com>
+References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
+       <1343316846-25860-7-git-send-email-stefano.stabellini@eu.citrix.com>
+       <1343381813.6812.120.camel@zakaz.uk.xensource.com>
+User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
+       "linaro-dev@lists.linaro.org" <linaro-dev@lists.linaro.org>,
+       "arnd@arndb.de" <arnd@arndb.de>,
+       "konrad.wilk@oracle.com" <konrad.wilk@oracle.com>,
+       "catalin.marinas@arm.com" <catalin.marinas@arm.com>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>,
+       "Tim \(Xen.org\)" <tim@xen.org>,
+       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
+       "linux-arm-kernel@lists.infradead.org"
+       <linux-arm-kernel@lists.infradead.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD autolearn=unavailable version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 07/24] xen/arm: Xen detection and
+ shared_info page mapping
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Fri, 27 Jul 2012, Ian Campbell wrote:
+> On Thu, 2012-07-26 at 16:33 +0100, Stefano Stabellini wrote:
+> > Check for a "/xen" node in the device tree, if it is present set
+> > xen_domain_type to XEN_HVM_DOMAIN and continue initialization.
+> > 
+> > Map the real shared info page using XENMEM_add_to_physmap with
+> > XENMAPSPACE_shared_info.
+> > 
+> > Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+> > ---
+> >  arch/arm/xen/enlighten.c |   56 ++++++++++++++++++++++++++++++++++++++++++++++
+> >  1 files changed, 56 insertions(+), 0 deletions(-)
+> > 
+> > diff --git a/arch/arm/xen/enlighten.c b/arch/arm/xen/enlighten.c
+> > index d27c2a6..8c923af 100644
+> > --- a/arch/arm/xen/enlighten.c
+> > +++ b/arch/arm/xen/enlighten.c
+> > @@ -5,6 +5,9 @@
+> >  #include <asm/xen/hypervisor.h>
+> >  #include <asm/xen/hypercall.h>
+> >  #include <linux/module.h>
+> > +#include <linux/of.h>
+> > +#include <linux/of_irq.h>
+> > +#include <linux/of_address.h>
+> >  
+> >  struct start_info _xen_start_info;
+> >  struct start_info *xen_start_info = &_xen_start_info;
+> > @@ -33,3 +36,56 @@ int xen_remap_domain_mfn_range(struct vm_area_struct *vma,
+> >    return -ENOSYS;
+> >  }
+> >  EXPORT_SYMBOL_GPL(xen_remap_domain_mfn_range);
+> > +
+> > +/*
+> > + * == Xen Device Tree format ==
+> > + * - /xen node;
+> > + * - compatible "arm,xen";
+> > + * - one interrupt for Xen event notifications;
+> > + * - one memory region to map the grant_table.
+> > + */
+> > +static int __init xen_guest_init(void)
+> > +{
+> > +  int cpu;
+> > +  struct xen_add_to_physmap xatp;
+> > +  static struct shared_info *shared_info_page = 0;
+> > +  struct device_node *node;
+> > +
+> > +  node = of_find_compatible_node(NULL, NULL, "arm,xen");
+> > +  if (!node) {
+> > +          pr_info("No Xen support\n");
+> > +          return 0;
+> > +  }
+> 
+> This should either only print in the success case (to avoid spamming
+> everyone) or we need a little bit of infrastructure like on x86 so that
+> we print exactly one of:
+>      "Booting natively on bearmetal"
+>      "Booting paravirtualised on %s", hypervisor->name
+
+This function is only going to be called once (actually it might be
+called twice with the change introduced by "xen/arm: Introduce
+xen_guest_init").
+
+I thought that it would be an acceptible level of verbosity for pr_info.
+Maybe I should just turn the pr_info into pr_debug?
+
+
+> > +  xen_domain_type = XEN_HVM_DOMAIN;
+> > +
+> > +  if (!shared_info_page)
+> > +          shared_info_page = (struct shared_info *)
+> > +                  get_zeroed_page(GFP_KERNEL);
+> > +  if (!shared_info_page) {
+> > +          pr_err("not enough memory");
+> > +          return -ENOMEM;
+> > +  }
+> > +  xatp.domid = DOMID_SELF;
+> > +  xatp.idx = 0;
+> > +  xatp.space = XENMAPSPACE_shared_info;
+> > +  xatp.gpfn = __pa(shared_info_page) >> PAGE_SHIFT;
+> > +  if (HYPERVISOR_memory_op(XENMEM_add_to_physmap, &xatp))
+> > +          BUG();
+> > +
+> > +  HYPERVISOR_shared_info = (struct shared_info *)shared_info_page;
+> > +
+> > +  /* xen_vcpu is a pointer to the vcpu_info struct in the shared_info
+> > +   * page, we use it in the event channel upcall and in some pvclock
+> > +   * related functions. We don't need the vcpu_info placement
+> > +   * optimizations because we don't use any pv_mmu or pv_irq op on
+> > +   * HVM.
+> > +   * When xen_hvm_init_shared_info is run at boot time only vcpu 0 is
+> > +   * online but xen_hvm_init_shared_info is run at resume time too and
+> > +   * in that case multiple vcpus might be online. */
+> > +  for_each_online_cpu(cpu) {
+> > +          per_cpu(xen_vcpu, cpu) =
+> > +                  &HYPERVISOR_shared_info->vcpu_info[cpu];
+> 
+> On ARM the shared info contains exactly 1 CPU (the boot CPU). The guest
+> is required to use VCPUOP_register_vcpu_info to place vcpu info for
+> secondary CPUs as they are brought up.
+
+OK
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<alpine.DEB.2.02.1207271613200.26163@kaball.uk.xensource.com> b/config/examples/test/corpus/<alpine.DEB.2.02.1207271613200.26163@kaball.uk.xensource.com>
new file mode 100644 (file)
index 0000000..db8001f
--- /dev/null
@@ -0,0 +1,123 @@
+From xen-devel-bounces@lists.xen.org Fri Jul 27 16:59:39 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 27 Jul 2012 16:59:39 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1Sumwv-0002IP-LN
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 27 Jul 2012 16:59:39 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1Sumsx-0006xL-LR; Fri, 27 Jul 2012 15:55:27 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1Sumsv-0006xE-VA
+       for xen-devel@lists.xensource.com; Fri, 27 Jul 2012 15:55:26 +0000
+Received: from [85.158.143.99:12941] by server-3.bemta-4.messagelabs.com id
+       B4/EA-01511-DE9B2105; Fri, 27 Jul 2012 15:55:25 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-9.tower-216.messagelabs.com!1343404524!29090957!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDcxMzQ=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.2; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 17863 invoked from network); 27 Jul 2012 15:55:24 -0000
+Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-9.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
+       27 Jul 2012 15:55:24 -0000
+X-IronPort-AV: E=Sophos;i="4.77,667,1336348800"; d="scan'208";a="13738808"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       27 Jul 2012 15:55:10 +0000
+Received: from kaball.uk.xensource.com (10.80.2.59) by
+       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
+       8.3.213.0; Fri, 27 Jul 2012 16:55:10 +0100
+Date: Fri, 27 Jul 2012 16:54:17 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-X-Sender: sstabellini@kaball.uk.xensource.com
+To: Ian Campbell <Ian.Campbell@citrix.com>
+In-Reply-To: <1343382151.6812.124.camel@zakaz.uk.xensource.com>
+Message-ID: <alpine.DEB.2.02.1207271613200.26163@kaball.uk.xensource.com>
+References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
+       <1343316846-25860-12-git-send-email-stefano.stabellini@eu.citrix.com>
+       <1343382151.6812.124.camel@zakaz.uk.xensource.com>
+User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
+       "linaro-dev@lists.linaro.org" <linaro-dev@lists.linaro.org>,
+       "arnd@arndb.de" <arnd@arndb.de>,
+       "konrad.wilk@oracle.com" <konrad.wilk@oracle.com>,
+       "catalin.marinas@arm.com" <catalin.marinas@arm.com>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>,
+       "Tim \(Xen.org\)" <tim@xen.org>,
+       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
+       "linux-arm-kernel@lists.infradead.org"
+       <linux-arm-kernel@lists.infradead.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 12/24] xen/arm: Introduce xen_guest_init
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Fri, 27 Jul 2012, Ian Campbell wrote:
+> On Thu, 2012-07-26 at 16:33 +0100, Stefano Stabellini wrote:
+> > We used to rely on a core_initcall to initialize Xen on ARM, however
+> > core_initcalls are actually called after early consoles are initialized.
+> > That means that hvc_xen.c is going to be initialized before Xen.
+> > 
+> > Given the lack of a better alternative, just call a new Xen
+> > initialization function (xen_guest_init) from xen_cons_init.
+> 
+> Can't we just arrange for this to be called super early on from
+> setup_arch? That's got to be better than calling it from some random
+> function which happens to get called early enough.
+
+While I agree with you that an explicit call to xen_guest_init from
+generic code might be better, xen_cons_init is not just a random
+function: it is a console_initcall and therefore we know for sure that
+it is going be the first one to be called.
+
+In fact if we didn't want the PV console to work so early we could just
+rely on a core_initcall to initialize everything and we wouldn't have
+any issues.
+
+
+In any case if the ARM maintainers agree I could add a generic
+hypervisor initialization call the end of setup_arch.
+
+
+
+> I presume that KVM is going to want some similarly early init hooks etc
+> and therefore ARM could benefit from the same sort of infrastructure as
+> is in arch/x86/include/asm/hypervisor.h?
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<alpine.DEB.2.02.1207271618310.26163@kaball.uk.xensource.com> b/config/examples/test/corpus/<alpine.DEB.2.02.1207271618310.26163@kaball.uk.xensource.com>
new file mode 100644 (file)
index 0000000..1e055a3
--- /dev/null
@@ -0,0 +1,105 @@
+From xen-devel-bounces@lists.xen.org Fri Jul 27 17:29:57 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 27 Jul 2012 17:29:57 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SunQF-0002R0-LT
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 27 Jul 2012 17:29:57 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SunMj-0000NF-IT; Fri, 27 Jul 2012 16:26:13 +0000
+Received: from mail27.messagelabs.com ([193.109.254.147])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1SunMh-0000My-IF
+       for xen-devel@lists.xensource.com; Fri, 27 Jul 2012 16:26:11 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-5.tower-27.messagelabs.com!1343406363!8598636!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDcxMzQ=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.2; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 28923 invoked from network); 27 Jul 2012 16:26:04 -0000
+Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-5.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
+       27 Jul 2012 16:26:04 -0000
+X-IronPort-AV: E=Sophos;i="4.77,668,1336348800"; d="scan'208";a="13739250"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       27 Jul 2012 16:26:03 +0000
+Received: from kaball.uk.xensource.com (10.80.2.59) by
+       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
+       8.3.213.0; Fri, 27 Jul 2012 17:26:03 +0100
+Date: Fri, 27 Jul 2012 17:25:09 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-X-Sender: sstabellini@kaball.uk.xensource.com
+To: Ian Campbell <Ian.Campbell@citrix.com>
+In-Reply-To: <1343382495.6812.127.camel@zakaz.uk.xensource.com>
+Message-ID: <alpine.DEB.2.02.1207271618310.26163@kaball.uk.xensource.com>
+References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
+       <1343316846-25860-18-git-send-email-stefano.stabellini@eu.citrix.com>
+       <1343382495.6812.127.camel@zakaz.uk.xensource.com>
+User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
+       "linaro-dev@lists.linaro.org" <linaro-dev@lists.linaro.org>,
+       "arnd@arndb.de" <arnd@arndb.de>,
+       "konrad.wilk@oracle.com" <konrad.wilk@oracle.com>,
+       "catalin.marinas@arm.com" <catalin.marinas@arm.com>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>,
+       "Tim \(Xen.org\)" <tim@xen.org>,
+       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
+       "linux-arm-kernel@lists.infradead.org"
+       <linux-arm-kernel@lists.infradead.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 18/24] xen/arm: compile blkfront and blkback
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Fri, 27 Jul 2012, Ian Campbell wrote:
+> On Thu, 2012-07-26 at 16:34 +0100, Stefano Stabellini wrote:
+> > 
+> > +#define XEN_IO_PROTO_ABI_ARM        "arm-abi" 
+> 
+> I wonder if we ought to call this arm-aarch32-abi or something?
+
+So aarch64 has just been renamed to arm64 and you want to rename arm-abi
+to aarch32-abi? :-)
+
+
+> I wonder if we can also take the opportunity to fix the ABI cockup for
+> disks on ARM and make the structs the same for both 32 and 64 bit?
+
+I think it should be a separate patch, but I'll try to come up with one
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<alpine.DEB.2.02.1207271739550.26163@kaball.uk.xensource.com> b/config/examples/test/corpus/<alpine.DEB.2.02.1207271739550.26163@kaball.uk.xensource.com>
new file mode 100644 (file)
index 0000000..60e7a4c
--- /dev/null
@@ -0,0 +1,116 @@
+From xen-devel-bounces@lists.xen.org Fri Jul 27 17:52:50 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 27 Jul 2012 17:52:50 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SunmR-0002US-Uz
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 27 Jul 2012 17:52:50 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SuniJ-0001C0-5z; Fri, 27 Jul 2012 16:48:31 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1SuniH-0001Bv-SB
+       for xen-devel@lists.xensource.com; Fri, 27 Jul 2012 16:48:30 +0000
+Received: from [85.158.143.35:51665] by server-1.bemta-4.messagelabs.com id
+       89/BB-24392-D56C2105; Fri, 27 Jul 2012 16:48:29 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-3.tower-21.messagelabs.com!1343407708!14911076!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDcxMzQ=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.2; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 6723 invoked from network); 27 Jul 2012 16:48:28 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-3.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
+       27 Jul 2012 16:48:28 -0000
+X-IronPort-AV: E=Sophos;i="4.77,668,1336348800"; d="scan'208";a="13739492"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       27 Jul 2012 16:48:23 +0000
+Received: from kaball.uk.xensource.com (10.80.2.59) by
+       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
+       8.3.213.0; Fri, 27 Jul 2012 17:48:23 +0100
+Date: Fri, 27 Jul 2012 17:47:30 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-X-Sender: sstabellini@kaball.uk.xensource.com
+To: Jan Beulich <JBeulich@suse.com>
+In-Reply-To: <501257F30200007800090D9E@nat28.tlf.novell.com>
+Message-ID: <alpine.DEB.2.02.1207271739550.26163@kaball.uk.xensource.com>
+References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
+       <1343316846-25860-6-git-send-email-stefano.stabellini@eu.citrix.com>
+       <501257F30200007800090D9E@nat28.tlf.novell.com>
+User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
+       "linaro-dev@lists.linaro.org" <linaro-dev@lists.linaro.org>,
+       Ian Campbell <Ian.Campbell@citrix.com>, "arnd@arndb.de" <arnd@arndb.de>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>,
+       "catalin.marinas@arm.com" <catalin.marinas@arm.com>,
+       "konrad.wilk@oracle.com" <konrad.wilk@oracle.com>,
+       "Tim \(Xen.org\)" <tim@xen.org>,
+       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
+       "linux-arm-kernel@lists.infradead.org"
+       <linux-arm-kernel@lists.infradead.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 06/24] xen: missing includes
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Fri, 27 Jul 2012, Jan Beulich wrote:
+> >>> On 26.07.12 at 17:33, Stefano Stabellini <stefano.stabellini@eu.citrix.com> wrote:
+> > --- a/include/xen/interface/xen.h
+> > +++ b/include/xen/interface/xen.h
+> > @@ -10,7 +10,10 @@
+> >  #define __XEN_PUBLIC_XEN_H__
+> >  
+> >  #include <asm/xen/interface.h>
+> > +#include <linux/types.h>
+> > +#ifdef CONFIG_X86
+> >  #include <asm/pvclock-abi.h>
+> > +#endif
+> 
+> Rather than hacking around this, why not clean it up:
+> asm/pvclock-abi.h clearly isn't intended to be included here
+> (from the perspective of the origin of xen/interface/xen.h, at
+> least), nor is linux/types.h.
+> 
+> Or if it is really needed to deviate from the original header in
+> this respect, then clearly the inclusion ought to not be arch
+> specific or be moved to an arch specific header.
+
+I think you are right: linux/types.h is not actually needed and
+pvclock-abi.h should probably be included by asm/xen/interface.h.
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<alpine.DEB.2.02.1207271749420.26163@kaball.uk.xensource.com> b/config/examples/test/corpus/<alpine.DEB.2.02.1207271749420.26163@kaball.uk.xensource.com>
new file mode 100644 (file)
index 0000000..752743e
--- /dev/null
@@ -0,0 +1,113 @@
+From xen-devel-bounces@lists.xen.org Fri Jul 27 17:56:23 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 27 Jul 2012 17:56:23 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1Sunpt-0002W1-Jl
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 27 Jul 2012 17:56:23 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SunmO-0001Jc-Ro; Fri, 27 Jul 2012 16:52:44 +0000
+Received: from mail27.messagelabs.com ([193.109.254.147])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1SunmM-0001JU-U9
+       for xen-devel@lists.xensource.com; Fri, 27 Jul 2012 16:52:43 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-7.tower-27.messagelabs.com!1343407956!2592246!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDcxMzQ=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.2; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 32704 invoked from network); 27 Jul 2012 16:52:37 -0000
+Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-7.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
+       27 Jul 2012 16:52:37 -0000
+X-IronPort-AV: E=Sophos;i="4.77,668,1336348800"; d="scan'208";a="13739578"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       27 Jul 2012 16:52:33 +0000
+Received: from kaball.uk.xensource.com (10.80.2.59) by
+       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
+       8.3.213.0; Fri, 27 Jul 2012 17:52:33 +0100
+Date: Fri, 27 Jul 2012 17:51:40 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-X-Sender: sstabellini@kaball.uk.xensource.com
+To: Jan Beulich <JBeulich@suse.com>
+In-Reply-To: <501258FB0200007800090DB6@nat28.tlf.novell.com>
+Message-ID: <alpine.DEB.2.02.1207271749420.26163@kaball.uk.xensource.com>
+References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
+       <1343316846-25860-10-git-send-email-stefano.stabellini@eu.citrix.com>
+       <501258FB0200007800090DB6@nat28.tlf.novell.com>
+User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
+       "linaro-dev@lists.linaro.org" <linaro-dev@lists.linaro.org>,
+       Ian Campbell <Ian.Campbell@citrix.com>, "arnd@arndb.de" <arnd@arndb.de>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>,
+       "catalin.marinas@arm.com" <catalin.marinas@arm.com>,
+       "konrad.wilk@oracle.com" <konrad.wilk@oracle.com>,
+       "Tim \(Xen.org\)" <tim@xen.org>,
+       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
+       "linux-arm-kernel@lists.infradead.org"
+       <linux-arm-kernel@lists.infradead.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 10/24] xen: do not compile manage, balloon,
+ pci, acpi and cpu_hotplug on ARM
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Fri, 27 Jul 2012, Jan Beulich wrote:
+> >>> On 26.07.12 at 17:33, Stefano Stabellini <stefano.stabellini@eu.citrix.com> wrote:
+> > --- a/drivers/xen/Makefile
+> > +++ b/drivers/xen/Makefile
+> > @@ -1,11 +1,15 @@
+> > -obj-y     += grant-table.o features.o events.o manage.o balloon.o
+> > +ifneq ($(CONFIG_ARM),y)
+> > +obj-y     += manage.o balloon.o
+> 
+> While I assume that this part (and the cpu_hotplug one below) is
+> temporary, ...
+> 
+> > +obj-$(CONFIG_XEN_DOM0)                    += pci.o acpi.o
+> 
+> ... at least this one should imo be solved with a proper long term
+> mechanism, i.e. the usual var-$(CONFIG_...) approach, i.e.
+> 
+> dom0-$(CONFIG_PCI) := pci.o
+> dom0-$(CONFIG_ACPI) := acpi.o
+> obj-$(CONFIG_XEN_DOM0)                       += $(dom0-y)
+
+That's a good suggestion, thanks!
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<alpine.DEB.2.02.1208011641110.4645@kaball.uk.xensource.com> b/config/examples/test/corpus/<alpine.DEB.2.02.1208011641110.4645@kaball.uk.xensource.com>
new file mode 100644 (file)
index 0000000..71569f7
--- /dev/null
@@ -0,0 +1,172 @@
+From xen-devel-bounces@lists.xen.org Wed Aug 01 16:50:24 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 01 Aug 2012 16:50:24 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SwbBj-00072t-2R
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 01 Aug 2012 16:50:24 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1Swb7v-0004ok-IR; Wed, 01 Aug 2012 15:46:23 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1Swb7u-0004oc-M0
+       for xen-devel@lists.xensource.com; Wed, 01 Aug 2012 15:46:22 +0000
+Received: from [85.158.139.83:19764] by server-3.bemta-5.messagelabs.com id
+       E1/FF-03367-D4F49105; Wed, 01 Aug 2012 15:46:21 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-9.tower-182.messagelabs.com!1343835980!29072295!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDc3NDk=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.2; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 9250 invoked from network); 1 Aug 2012 15:46:21 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-9.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
+       1 Aug 2012 15:46:21 -0000
+X-IronPort-AV: E=Sophos;i="4.77,694,1336348800"; d="scan'208";a="13807333"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       01 Aug 2012 15:46:20 +0000
+Received: from kaball.uk.xensource.com (10.80.2.59) by
+       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
+       8.3.213.0; Wed, 1 Aug 2012 16:46:20 +0100
+Date: Wed, 1 Aug 2012 16:46:02 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-X-Sender: sstabellini@kaball.uk.xensource.com
+To: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+In-Reply-To: <20120801141624.GD7227@phenom.dumpdata.com>
+Message-ID: <alpine.DEB.2.02.1208011641110.4645@kaball.uk.xensource.com>
+References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
+       <1343316846-25860-5-git-send-email-stefano.stabellini@eu.citrix.com>
+       <20120801141624.GD7227@phenom.dumpdata.com>
+User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
+       "linaro-dev@lists.linaro.org" <linaro-dev@lists.linaro.org>,
+       Ian Campbell <Ian.Campbell@citrix.com>, "arnd@arndb.de" <arnd@arndb.de>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>,
+       "catalin.marinas@arm.com" <catalin.marinas@arm.com>,
+       "Tim \(Xen.org\)" <tim@xen.org>,
+       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
+       "linux-arm-kernel@lists.infradead.org"
+       <linux-arm-kernel@lists.infradead.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 05/24] xen/arm: empty implementation of
+ grant_table arch specific functions
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Wed, 1 Aug 2012, Konrad Rzeszutek Wilk wrote:
+> On Thu, Jul 26, 2012 at 04:33:47PM +0100, Stefano Stabellini wrote:
+> > Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+> > ---
+> >  arch/arm/xen/Makefile      |    2 +-
+> >  arch/arm/xen/grant-table.c |   53 ++++++++++++++++++++++++++++++++++++++++++++
+> >  2 files changed, 54 insertions(+), 1 deletions(-)
+> >  create mode 100644 arch/arm/xen/grant-table.c
+> > 
+> > diff --git a/arch/arm/xen/Makefile b/arch/arm/xen/Makefile
+> > index b9d6acc..4384103 100644
+> > --- a/arch/arm/xen/Makefile
+> > +++ b/arch/arm/xen/Makefile
+> > @@ -1 +1 @@
+> > -obj-y             := enlighten.o hypercall.o
+> > +obj-y             := enlighten.o hypercall.o grant-table.o
+> > diff --git a/arch/arm/xen/grant-table.c b/arch/arm/xen/grant-table.c
+> > new file mode 100644
+> > index 0000000..0a4ee80
+> > --- /dev/null
+> > +++ b/arch/arm/xen/grant-table.c
+> > @@ -0,0 +1,53 @@
+> > +/******************************************************************************
+> > + * grant_table.c
+> > + * ARM specific part
+> > + *
+> > + * Granting foreign access to our memory reservation.
+> > + *
+> > + * This program is free software; you can redistribute it and/or
+> > + * modify it under the terms of the GNU General Public License version 2
+> > + * as published by the Free Software Foundation; or, when distributed
+> > + * separately from the Linux kernel or incorporated into other
+> > + * software packages, subject to the following license:
+> > + *
+> > + * Permission is hereby granted, free of charge, to any person obtaining a copy
+> > + * of this source file (the "Software"), to deal in the Software without
+> > + * restriction, including without limitation the rights to use, copy, modify,
+> > + * merge, publish, distribute, sublicense, and/or sell copies of the Software,
+> > + * and to permit persons to whom the Software is furnished to do so, subject to
+> > + * the following conditions:
+> > + *
+> > + * The above copyright notice and this permission notice shall be included in
+> > + * all copies or substantial portions of the Software.
+> > + *
+> > + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+> > + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+> > + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+> > + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+> > + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+> > + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+> > + * IN THE SOFTWARE.
+> > + */
+> > +
+> > +#include <xen/interface/xen.h>
+> > +#include <xen/page.h>
+> > +#include <xen/grant_table.h>
+> > +
+> > +int arch_gnttab_map_shared(unsigned long *frames, unsigned long nr_gframes,
+> > +                     unsigned long max_nr_gframes,
+> > +                     void **__shared)
+> > +{
+> > +  return -1;
+> 
+> -ENOSYS
+> > +}
+> > +
+> > +void arch_gnttab_unmap(void *shared, unsigned long nr_gframes)
+> > +{
+> > +  return;
+> > +}
+> > +
+> > +int arch_gnttab_map_status(uint64_t *frames, unsigned long nr_gframes,
+> > +                     unsigned long max_nr_gframes,
+> > +                     grant_status_t **__shared)
+> > +{
+> > +  return -1;
+> 
+> Same here -ENOSYS
+
+OK, I'll do that
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<alpine.DEB.2.02.1208011641410.4645@kaball.uk.xensource.com> b/config/examples/test/corpus/<alpine.DEB.2.02.1208011641410.4645@kaball.uk.xensource.com>
new file mode 100644 (file)
index 0000000..2bced9b
--- /dev/null
@@ -0,0 +1,199 @@
+From xen-devel-bounces@lists.xen.org Wed Aug 01 16:50:03 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 01 Aug 2012 16:50:03 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SwbBR-00072R-Dl
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 01 Aug 2012 16:50:03 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1Swb7e-0004nZ-5u; Wed, 01 Aug 2012 15:46:06 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1Swb7c-0004nU-0D
+       for xen-devel@lists.xensource.com; Wed, 01 Aug 2012 15:46:04 +0000
+Received: from [85.158.143.35:6211] by server-3.bemta-4.messagelabs.com id
+       CD/D4-01511-B3F49105; Wed, 01 Aug 2012 15:46:03 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-7.tower-21.messagelabs.com!1343835957!12992150!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDc3NDk=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.2; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 6389 invoked from network); 1 Aug 2012 15:46:00 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-7.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
+       1 Aug 2012 15:46:00 -0000
+X-IronPort-AV: E=Sophos;i="4.77,694,1336348800"; d="scan'208";a="13807298"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       01 Aug 2012 15:45:57 +0000
+Received: from kaball.uk.xensource.com (10.80.2.59) by
+       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
+       8.3.213.0; Wed, 1 Aug 2012 16:45:57 +0100
+Date: Wed, 1 Aug 2012 16:45:40 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-X-Sender: sstabellini@kaball.uk.xensource.com
+To: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+In-Reply-To: <20120801141959.GE7227@phenom.dumpdata.com>
+Message-ID: <alpine.DEB.2.02.1208011641410.4645@kaball.uk.xensource.com>
+References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
+       <1343316846-25860-7-git-send-email-stefano.stabellini@eu.citrix.com>
+       <20120801141959.GE7227@phenom.dumpdata.com>
+User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
+       "linaro-dev@lists.linaro.org" <linaro-dev@lists.linaro.org>,
+       Ian Campbell <Ian.Campbell@citrix.com>, "arnd@arndb.de" <arnd@arndb.de>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>,
+       "catalin.marinas@arm.com" <catalin.marinas@arm.com>,
+       "Tim \(Xen.org\)" <tim@xen.org>,
+       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
+       "linux-arm-kernel@lists.infradead.org"
+       <linux-arm-kernel@lists.infradead.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 07/24] xen/arm: Xen detection and
+ shared_info page mapping
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Wed, 1 Aug 2012, Konrad Rzeszutek Wilk wrote:
+> On Thu, Jul 26, 2012 at 04:33:49PM +0100, Stefano Stabellini wrote:
+> > Check for a "/xen" node in the device tree, if it is present set
+> > xen_domain_type to XEN_HVM_DOMAIN and continue initialization.
+> > 
+> > Map the real shared info page using XENMEM_add_to_physmap with
+> > XENMAPSPACE_shared_info.
+> > 
+> > Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+> > ---
+> >  arch/arm/xen/enlighten.c |   56 ++++++++++++++++++++++++++++++++++++++++++++++
+> >  1 files changed, 56 insertions(+), 0 deletions(-)
+> > 
+> > diff --git a/arch/arm/xen/enlighten.c b/arch/arm/xen/enlighten.c
+> > index d27c2a6..8c923af 100644
+> > --- a/arch/arm/xen/enlighten.c
+> > +++ b/arch/arm/xen/enlighten.c
+> > @@ -5,6 +5,9 @@
+> >  #include <asm/xen/hypervisor.h>
+> >  #include <asm/xen/hypercall.h>
+> >  #include <linux/module.h>
+> > +#include <linux/of.h>
+> > +#include <linux/of_irq.h>
+> > +#include <linux/of_address.h>
+> >  
+> >  struct start_info _xen_start_info;
+> >  struct start_info *xen_start_info = &_xen_start_info;
+> > @@ -33,3 +36,56 @@ int xen_remap_domain_mfn_range(struct vm_area_struct *vma,
+> >    return -ENOSYS;
+> >  }
+> >  EXPORT_SYMBOL_GPL(xen_remap_domain_mfn_range);
+> > +
+> > +/*
+> > + * == Xen Device Tree format ==
+> > + * - /xen node;
+> > + * - compatible "arm,xen";
+> > + * - one interrupt for Xen event notifications;
+> > + * - one memory region to map the grant_table.
+> > + */
+> > +static int __init xen_guest_init(void)
+> > +{
+> > +  int cpu;
+> > +  struct xen_add_to_physmap xatp;
+> > +  static struct shared_info *shared_info_page = 0;
+> > +  struct device_node *node;
+> > +
+> > +  node = of_find_compatible_node(NULL, NULL, "arm,xen");
+> > +  if (!node) {
+> > +          pr_info("No Xen support\n");
+> 
+> I don't think the pr_info is appropiate here?
+
+Yes, you are right. In fact I had already turned it into a pr_debug.
+
+> > +          return 0;
+> 
+> Should this be -ENODEV?
+
+Considering that xen_guest_init is called by a core_initcall, I didn't
+want to return an error just because Xen is not present on the platform.
+
+
+> > +  }
+> > +  xen_domain_type = XEN_HVM_DOMAIN;
+> > +
+> > +  if (!shared_info_page)
+> > +          shared_info_page = (struct shared_info *)
+> > +                  get_zeroed_page(GFP_KERNEL);
+> > +  if (!shared_info_page) {
+> > +          pr_err("not enough memory");
+> 
+> \n
+
+OK
+
+> > +          return -ENOMEM;
+> > +  }
+> > +  xatp.domid = DOMID_SELF;
+> > +  xatp.idx = 0;
+> > +  xatp.space = XENMAPSPACE_shared_info;
+> > +  xatp.gpfn = __pa(shared_info_page) >> PAGE_SHIFT;
+> > +  if (HYPERVISOR_memory_op(XENMEM_add_to_physmap, &xatp))
+> > +          BUG();
+> > +
+> > +  HYPERVISOR_shared_info = (struct shared_info *)shared_info_page;
+> > +
+> > +  /* xen_vcpu is a pointer to the vcpu_info struct in the shared_info
+> > +   * page, we use it in the event channel upcall and in some pvclock
+> > +   * related functions. We don't need the vcpu_info placement
+> > +   * optimizations because we don't use any pv_mmu or pv_irq op on
+> > +   * HVM.
+> > +   * When xen_hvm_init_shared_info is run at boot time only vcpu 0 is
+> > +   * online but xen_hvm_init_shared_info is run at resume time too and
+> > +   * in that case multiple vcpus might be online. */
+> > +  for_each_online_cpu(cpu) {
+> > +          per_cpu(xen_vcpu, cpu) =
+> > +                  &HYPERVISOR_shared_info->vcpu_info[cpu];
+> > +  }
+> > +  return 0;
+> 
+> This above looks stringly similar to the x86 one. Could it be
+> abstracted away to share the same code? Or is that something that
+> ought to be done later on when there is more meat on the bone?
+
+Actually I had to remove these three lines because on ARM we are going
+to have just one vcpu_info struct in the shared_info page and then rely
+on VCPUOP_register_vcpu_info.
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<alpine.DEB.2.02.1208011646560.4645@kaball.uk.xensource.com> b/config/examples/test/corpus/<alpine.DEB.2.02.1208011646560.4645@kaball.uk.xensource.com>
new file mode 100644 (file)
index 0000000..186f38c
--- /dev/null
@@ -0,0 +1,112 @@
+From xen-devel-bounces@lists.xen.org Wed Aug 01 16:55:44 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 01 Aug 2012 16:55:44 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SwbGw-00074r-Hc
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 01 Aug 2012 16:55:44 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SwbCn-00057T-9l; Wed, 01 Aug 2012 15:51:25 +0000
+Received: from mail27.messagelabs.com ([193.109.254.147])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1SwbCl-00057D-E2
+       for xen-devel@lists.xensource.com; Wed, 01 Aug 2012 15:51:23 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-3.tower-27.messagelabs.com!1343836277!10361212!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDc3NDk=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.2; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 23641 invoked from network); 1 Aug 2012 15:51:17 -0000
+Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-3.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
+       1 Aug 2012 15:51:17 -0000
+X-IronPort-AV: E=Sophos;i="4.77,694,1336348800"; d="scan'208";a="13807442"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       01 Aug 2012 15:51:17 +0000
+Received: from kaball.uk.xensource.com (10.80.2.59) by
+       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
+       8.3.213.0; Wed, 1 Aug 2012 16:51:16 +0100
+Date: Wed, 1 Aug 2012 16:50:59 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-X-Sender: sstabellini@kaball.uk.xensource.com
+To: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+In-Reply-To: <20120801142249.GF7227@phenom.dumpdata.com>
+Message-ID: <alpine.DEB.2.02.1208011646560.4645@kaball.uk.xensource.com>
+References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
+       <1343316846-25860-8-git-send-email-stefano.stabellini@eu.citrix.com>
+       <20120801142249.GF7227@phenom.dumpdata.com>
+User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
+       "linaro-dev@lists.linaro.org" <linaro-dev@lists.linaro.org>,
+       Ian Campbell <Ian.Campbell@citrix.com>, "arnd@arndb.de" <arnd@arndb.de>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>,
+       "catalin.marinas@arm.com" <catalin.marinas@arm.com>,
+       "Tim \(Xen.org\)" <tim@xen.org>,
+       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
+       "linux-arm-kernel@lists.infradead.org"
+       <linux-arm-kernel@lists.infradead.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 08/24] xen/arm: Introduce xen_pfn_t for pfn
+ and mfn types
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Wed, 1 Aug 2012, Konrad Rzeszutek Wilk wrote:
+> On Thu, Jul 26, 2012 at 04:33:50PM +0100, Stefano Stabellini wrote:
+> > All the original Xen headers have xen_pfn_t as mfn and pfn type, however
+> > when they have been imported in Linux, xen_pfn_t has been replaced with
+> > unsigned long. That might work for x86 and ia64 but it does not for arm.
+> 
+> How come?
+
+see below
+
+> > Bring back xen_pfn_t and let each architecture define xen_pfn_t as they
+> > see fit.
+> 
+> I am OK with this as long as your include a comment in both of the
+> interface.h saying why this is needed. I am curious why 'unsinged long'
+> won't work? Is it b/c on ARM you always want a 64-bit type?
+
+Yes, we would like to make the same interface work for 32 and 64
+bit guests, without any need for a "compat layer" as we currently have
+on x86.
+In fact I am going to add another patch to explicitly size all the
+other unsigned long that we have in the public interface.
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<alpine.DEB.2.02.1208011704000.4645@kaball.uk.xensource.com> b/config/examples/test/corpus/<alpine.DEB.2.02.1208011704000.4645@kaball.uk.xensource.com>
new file mode 100644 (file)
index 0000000..aa4919a
--- /dev/null
@@ -0,0 +1,129 @@
+From xen-devel-bounces@lists.xen.org Wed Aug 01 17:09:30 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 01 Aug 2012 17:09:30 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SwbUG-0007B0-9F
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 01 Aug 2012 17:09:30 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SwbQL-00068V-Vg; Wed, 01 Aug 2012 16:05:25 +0000
+Received: from mail27.messagelabs.com ([193.109.254.147])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1SwbQJ-000689-TB
+       for xen-devel@lists.xensource.com; Wed, 01 Aug 2012 16:05:24 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-4.tower-27.messagelabs.com!1343837117!8649861!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDc3NDk=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.2; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 24093 invoked from network); 1 Aug 2012 16:05:17 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-4.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
+       1 Aug 2012 16:05:17 -0000
+X-IronPort-AV: E=Sophos;i="4.77,694,1336348800"; d="scan'208";a="13807715"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       01 Aug 2012 16:05:02 +0000
+Received: from kaball.uk.xensource.com (10.80.2.59) by
+       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
+       8.3.213.0; Wed, 1 Aug 2012 17:05:02 +0100
+Date: Wed, 1 Aug 2012 17:04:45 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-X-Sender: sstabellini@kaball.uk.xensource.com
+To: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+In-Reply-To: <20120801145413.GR7227@phenom.dumpdata.com>
+Message-ID: <alpine.DEB.2.02.1208011704000.4645@kaball.uk.xensource.com>
+References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
+       <1343316846-25860-23-git-send-email-stefano.stabellini@eu.citrix.com>
+       <20120801145413.GR7227@phenom.dumpdata.com>
+User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
+       "linaro-dev@lists.linaro.org" <linaro-dev@lists.linaro.org>,
+       Ian Campbell <Ian.Campbell@citrix.com>, "arnd@arndb.de" <arnd@arndb.de>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>,
+       "catalin.marinas@arm.com" <catalin.marinas@arm.com>,
+       "Tim \(Xen.org\)" <tim@xen.org>,
+       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
+       "linux-arm-kernel@lists.infradead.org"
+       <linux-arm-kernel@lists.infradead.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 23/24] hvc_xen: allow dom0_write_console for
+       HVM guests
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Wed, 1 Aug 2012, Konrad Rzeszutek Wilk wrote:
+> On Thu, Jul 26, 2012 at 04:34:05PM +0100, Stefano Stabellini wrote:
+> > On ARM all guests are HVM guests, including Dom0.
+> > Allow dom0_write_console to be called by an HVM domain.
+> 
+> Um, but xen_hvm_domain() != xen_pv_domain() so won't this return without
+> printing anything?
+
+Nope, it would call dom0_write_console that issues a console hypercall.
+However I am going to remove this patch and rely on the simple serial
+emulator we have in Xen for early_printk stuff
+
+> > 
+> > Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+> > ---
+> >  drivers/tty/hvc/hvc_xen.c |    5 +----
+> >  1 files changed, 1 insertions(+), 4 deletions(-)
+> > 
+> > diff --git a/drivers/tty/hvc/hvc_xen.c b/drivers/tty/hvc/hvc_xen.c
+> > index 3c04fb8..949edc2 100644
+> > --- a/drivers/tty/hvc/hvc_xen.c
+> > +++ b/drivers/tty/hvc/hvc_xen.c
+> > @@ -616,12 +616,9 @@ static void xenboot_write_console(struct console *console, const char *string,
+> >    unsigned int linelen, off = 0;
+> >    const char *pos;
+> >  
+> > -  if (!xen_pv_domain())
+> > -          return;
+> > -
+> >    dom0_write_console(0, string, len);
+> >  
+> > -  if (xen_initial_domain())
+> > +  if (!xen_pv_domain())
+> >            return;
+> >  
+> >    domU_write_console(0, "(early) ", 8);
+> > -- 
+> > 1.7.2.5
+> 
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<alpine.DEB.2.02.1208011705100.4645@kaball.uk.xensource.com> b/config/examples/test/corpus/<alpine.DEB.2.02.1208011705100.4645@kaball.uk.xensource.com>
new file mode 100644 (file)
index 0000000..b260ded
--- /dev/null
@@ -0,0 +1,135 @@
+From xen-devel-bounces@lists.xen.org Wed Aug 01 17:10:43 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 01 Aug 2012 17:10:43 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SwbVQ-0007C0-OM
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 01 Aug 2012 17:10:43 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SwbS9-0006Jy-S3; Wed, 01 Aug 2012 16:07:17 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1SwbS8-0006Jm-MI
+       for xen-devel@lists.xensource.com; Wed, 01 Aug 2012 16:07:16 +0000
+Received: from [85.158.143.35:8213] by server-2.bemta-4.messagelabs.com id
+       9C/7C-17938-43459105; Wed, 01 Aug 2012 16:07:16 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-4.tower-21.messagelabs.com!1343837222!5505951!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDc3NDk=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.2; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 32016 invoked from network); 1 Aug 2012 16:07:08 -0000
+Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-4.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
+       1 Aug 2012 16:07:08 -0000
+X-IronPort-AV: E=Sophos;i="4.77,694,1336348800"; d="scan'208";a="13807760"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       01 Aug 2012 16:07:00 +0000
+Received: from kaball.uk.xensource.com (10.80.2.59) by
+       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
+       8.3.213.0; Wed, 1 Aug 2012 17:07:00 +0100
+Date: Wed, 1 Aug 2012 17:06:42 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-X-Sender: sstabellini@kaball.uk.xensource.com
+To: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+In-Reply-To: <20120801145257.GQ7227@phenom.dumpdata.com>
+Message-ID: <alpine.DEB.2.02.1208011705100.4645@kaball.uk.xensource.com>
+References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
+       <1343316846-25860-21-git-send-email-stefano.stabellini@eu.citrix.com>
+       <20120801145257.GQ7227@phenom.dumpdata.com>
+User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
+       "linaro-dev@lists.linaro.org" <linaro-dev@lists.linaro.org>,
+       Ian Campbell <Ian.Campbell@citrix.com>, "arnd@arndb.de" <arnd@arndb.de>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>,
+       "catalin.marinas@arm.com" <catalin.marinas@arm.com>,
+       "Tim \(Xen.org\)" <tim@xen.org>,
+       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
+       "linux-arm-kernel@lists.infradead.org"
+       <linux-arm-kernel@lists.infradead.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 21/24] arm/v2m: initialize arch_timers even
+ if v2m_timer is not present
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Wed, 1 Aug 2012, Konrad Rzeszutek Wilk wrote:
+> On Thu, Jul 26, 2012 at 04:34:03PM +0100, Stefano Stabellini wrote:
+> > Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+> 
+> Should the maintainer of the v2m be CC-ed here?
+> This looks like a bug-fix of itself?
+
+I think so. I'll CC Russell King next time.
+
+> > ---
+> >  arch/arm/mach-vexpress/v2m.c |   11 ++++++-----
+> >  1 files changed, 6 insertions(+), 5 deletions(-)
+> > 
+> > diff --git a/arch/arm/mach-vexpress/v2m.c b/arch/arm/mach-vexpress/v2m.c
+> > index fde26ad..dee1451 100644
+> > --- a/arch/arm/mach-vexpress/v2m.c
+> > +++ b/arch/arm/mach-vexpress/v2m.c
+> > @@ -637,16 +637,17 @@ static void __init v2m_dt_timer_init(void)
+> >    node = of_find_compatible_node(NULL, NULL, "arm,sp810");
+> >    v2m_sysctl_init(of_iomap(node, 0));
+> >  
+> > -  err = of_property_read_string(of_aliases, "arm,v2m_timer", &path);
+> > -  if (WARN_ON(err))
+> > -          return;
+> > -  node = of_find_node_by_path(path);
+> > -  v2m_sp804_init(of_iomap(node, 0), irq_of_parse_and_map(node, 0));
+> >    if (arch_timer_of_register() != 0)
+> >            twd_local_timer_of_register();
+> >  
+> >    if (arch_timer_sched_clock_init() != 0)
+> >            versatile_sched_clock_init(v2m_sysreg_base + V2M_SYS_24MHZ, 24000000);
+> > +
+> > +  err = of_property_read_string(of_aliases, "arm,v2m_timer", &path);
+> > +  if (WARN_ON(err))
+> > +          return;
+> > +  node = of_find_node_by_path(path);
+> > +  v2m_sp804_init(of_iomap(node, 0), irq_of_parse_and_map(node, 0));
+> >  }
+> >  
+> >  static struct sys_timer v2m_dt_timer = {
+> > -- 
+> > 1.7.2.5
+> 
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<alpine.DEB.2.02.1208011707280.4645@kaball.uk.xensource.com> b/config/examples/test/corpus/<alpine.DEB.2.02.1208011707280.4645@kaball.uk.xensource.com>
new file mode 100644 (file)
index 0000000..e15b5a9
--- /dev/null
@@ -0,0 +1,118 @@
+From xen-devel-bounces@lists.xen.org Wed Aug 01 17:11:23 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 01 Aug 2012 17:11:23 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SwbW5-0007CI-37
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 01 Aug 2012 17:11:23 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SwbSt-0006P4-9x; Wed, 01 Aug 2012 16:08:03 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1SwbSr-0006Om-GQ
+       for xen-devel@lists.xensource.com; Wed, 01 Aug 2012 16:08:01 +0000
+Received: from [85.158.139.83:30889] by server-5.bemta-5.messagelabs.com id
+       08/E6-02722-06459105; Wed, 01 Aug 2012 16:08:00 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-15.tower-182.messagelabs.com!1343837280!29698775!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDc3NDk=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.2; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 29663 invoked from network); 1 Aug 2012 16:08:00 -0000
+Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-15.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
+       1 Aug 2012 16:08:00 -0000
+X-IronPort-AV: E=Sophos;i="4.77,694,1336348800"; d="scan'208";a="13807782"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       01 Aug 2012 16:07:59 +0000
+Received: from kaball.uk.xensource.com (10.80.2.59) by
+       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
+       8.3.213.0; Wed, 1 Aug 2012 17:08:00 +0100
+Date: Wed, 1 Aug 2012 17:07:42 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-X-Sender: sstabellini@kaball.uk.xensource.com
+To: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+In-Reply-To: <20120801143551.GI7227@phenom.dumpdata.com>
+Message-ID: <alpine.DEB.2.02.1208011707280.4645@kaball.uk.xensource.com>
+References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
+       <1343316846-25860-4-git-send-email-stefano.stabellini@eu.citrix.com>
+       <20120726163759.GE9222@phenom.dumpdata.com>
+       <1343381305.6812.116.camel@zakaz.uk.xensource.com>
+       <20120801143551.GI7227@phenom.dumpdata.com>
+User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
+       "linaro-dev@lists.linaro.org" <linaro-dev@lists.linaro.org>,
+       Ian Campbell <Ian.Campbell@citrix.com>, "arnd@arndb.de" <arnd@arndb.de>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>,
+       "catalin.marinas@arm.com" <catalin.marinas@arm.com>,
+       "Tim \(Xen.org\)" <tim@xen.org>,
+       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
+       "linux-arm-kernel@lists.infradead.org"
+       <linux-arm-kernel@lists.infradead.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 04/24] xen/arm: sync_bitops
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Wed, 1 Aug 2012, Konrad Rzeszutek Wilk wrote:
+> On Fri, Jul 27, 2012 at 10:28:25AM +0100, Ian Campbell wrote:
+> > On Thu, 2012-07-26 at 17:37 +0100, Konrad Rzeszutek Wilk wrote:
+> > > On Thu, Jul 26, 2012 at 04:33:46PM +0100, Stefano Stabellini wrote:
+> > > > sync_bitops functions are equivalent to the SMP implementation of the
+> > > > original functions, independently from CONFIG_SMP being defined.
+> > > 
+> > > So why can't the code be changed to use that? Is it that
+> > > the _set_bit, _clear_bit, etc are not available with !CONFIG_SMP?
+> > 
+> > _set_bit etc are not SMP safe if !CONFIG_SMP. But under Xen you might be
+> > communicating with a completely external entity who might be on another
+> > CPU (e.g. two uniprocessor guests communicating via event channels and
+> > grant tables). So we need a variant of the bit ops which are SMP safe
+> > even on a UP kernel.
+> > 
+> > The users are common code and the sync_foo vs foo distinction matters on
+> > some platforms (e.g. x86 where a UP kernel would omit the LOCK prefix
+> > for the normal ones).
+> 
+> OK, that makes sense. Stefano can you include that comment in the git
+> commit description and in the sync_bitops.h file please?
+
+Yep, I'll do that.
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<alpine.DEB.2.02.1208011716040.4645@kaball.uk.xensource.com> b/config/examples/test/corpus/<alpine.DEB.2.02.1208011716040.4645@kaball.uk.xensource.com>
new file mode 100644 (file)
index 0000000..4f83df4
--- /dev/null
@@ -0,0 +1,123 @@
+From xen-devel-bounces@lists.xen.org Wed Aug 01 17:22:49 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 01 Aug 2012 17:22:49 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1Swbh8-0007GV-LG
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 01 Aug 2012 17:22:48 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SwbdN-00078q-PI; Wed, 01 Aug 2012 16:18:53 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1SwbdL-00078W-8z
+       for xen-devel@lists.xensource.com; Wed, 01 Aug 2012 16:18:51 +0000
+Received: from [85.158.139.83:5488] by server-9.bemta-5.messagelabs.com id
+       3C/73-01069-8E659105; Wed, 01 Aug 2012 16:18:48 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-8.tower-182.messagelabs.com!1343837927!18500504!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDc3NDk=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.2; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 27104 invoked from network); 1 Aug 2012 16:18:47 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-8.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
+       1 Aug 2012 16:18:47 -0000
+X-IronPort-AV: E=Sophos;i="4.77,695,1336348800"; d="scan'208";a="13807950"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       01 Aug 2012 16:18:47 +0000
+Received: from kaball.uk.xensource.com (10.80.2.59) by
+       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
+       8.3.213.0; Wed, 1 Aug 2012 17:18:47 +0100
+Date: Wed, 1 Aug 2012 17:18:29 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-X-Sender: sstabellini@kaball.uk.xensource.com
+To: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+In-Reply-To: <20120801145215.GP7227@phenom.dumpdata.com>
+Message-ID: <alpine.DEB.2.02.1208011716040.4645@kaball.uk.xensource.com>
+References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
+       <1343316846-25860-20-git-send-email-stefano.stabellini@eu.citrix.com>
+       <20120801145215.GP7227@phenom.dumpdata.com>
+User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
+       "linaro-dev@lists.linaro.org" <linaro-dev@lists.linaro.org>,
+       Ian Campbell <Ian.Campbell@citrix.com>, "arnd@arndb.de" <arnd@arndb.de>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>,
+       "catalin.marinas@arm.com" <catalin.marinas@arm.com>,
+       "Tim \(Xen.org\)" <tim@xen.org>,
+       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
+       "linux-arm-kernel@lists.infradead.org"
+       <linux-arm-kernel@lists.infradead.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 20/24] xen: update xen_add_to_physmap
+       interface
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Wed, 1 Aug 2012, Konrad Rzeszutek Wilk wrote:
+> On Thu, Jul 26, 2012 at 04:34:02PM +0100, Stefano Stabellini wrote:
+> > Update struct xen_add_to_physmap to be in sync with Xen's version of the
+> > structure.
+> > The size field was introduced by:
+> > 
+> > changeset:   24164:707d27fe03e7
+> > user:        Jean Guyader <jean.guyader@eu.citrix.com>
+> > date:        Fri Nov 18 13:42:08 2011 +0000
+> > summary:     mm: New XENMEM space, XENMAPSPACE_gmfn_range
+> > 
+> > According to the comment:
+> > 
+> > "This new field .size is located in the 16 bits padding between .domid
+> > and .space in struct xen_add_to_physmap to stay compatible with older
+> > versions."
+> > 
+> > This is not true on ARM where there is not padding, but it is valid on
+> > X86, so introducing size is safe on X86 and it is going to fix the
+> > interace for ARM.
+> 
+> Has this been checked actually for backwards compatibility? It sounds
+> like it should work just fine with Xen 4.0 right?
+> 
+> I believe this also helps Mukesh's patches, so CC-ing him here for
+> his Ack.
+> 
+> I can put this in right now in tree if we are 100% sure its compatiblie with 4.0.
+
+Yes, it is: 4 bytes integers are 4-byte aligned on 32 bit and 64 bit
+on x86.
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<alpine.DEB.2.02.1208011719050.4645@kaball.uk.xensource.com> b/config/examples/test/corpus/<alpine.DEB.2.02.1208011719050.4645@kaball.uk.xensource.com>
new file mode 100644 (file)
index 0000000..38d3dd3
--- /dev/null
@@ -0,0 +1,139 @@
+From xen-devel-bounces@lists.xen.org Wed Aug 01 17:23:12 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 01 Aug 2012 17:23:12 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SwbhW-0007Gn-8w
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 01 Aug 2012 17:23:12 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SwbeJ-0007DW-74; Wed, 01 Aug 2012 16:19:51 +0000
+Received: from mail27.messagelabs.com ([193.109.254.147])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1SwbeI-0007D1-8P
+       for xen-devel@lists.xensource.com; Wed, 01 Aug 2012 16:19:50 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-12.tower-27.messagelabs.com!1343837984!11014579!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDc3NDk=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.2; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 17688 invoked from network); 1 Aug 2012 16:19:44 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-12.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
+       1 Aug 2012 16:19:44 -0000
+X-IronPort-AV: E=Sophos;i="4.77,695,1336348800"; d="scan'208";a="13807960"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       01 Aug 2012 16:19:44 +0000
+Received: from kaball.uk.xensource.com (10.80.2.59) by
+       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
+       8.3.213.0; Wed, 1 Aug 2012 17:19:44 +0100
+Date: Wed, 1 Aug 2012 17:19:26 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-X-Sender: sstabellini@kaball.uk.xensource.com
+To: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+In-Reply-To: <20120801144818.GO7227@phenom.dumpdata.com>
+Message-ID: <alpine.DEB.2.02.1208011719050.4645@kaball.uk.xensource.com>
+References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
+       <1343316846-25860-18-git-send-email-stefano.stabellini@eu.citrix.com>
+       <20120801144818.GO7227@phenom.dumpdata.com>
+User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
+       "linaro-dev@lists.linaro.org" <linaro-dev@lists.linaro.org>,
+       Ian Campbell <Ian.Campbell@citrix.com>, "arnd@arndb.de" <arnd@arndb.de>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>,
+       "catalin.marinas@arm.com" <catalin.marinas@arm.com>,
+       "Tim \(Xen.org\)" <tim@xen.org>,
+       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
+       "linux-arm-kernel@lists.infradead.org"
+       <linux-arm-kernel@lists.infradead.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 18/24] xen/arm: compile blkfront and blkback
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Wed, 1 Aug 2012, Konrad Rzeszutek Wilk wrote:
+> On Thu, Jul 26, 2012 at 04:34:00PM +0100, Stefano Stabellini wrote:
+> > Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+> > ---
+> >  drivers/block/xen-blkback/blkback.c  |    1 +
+> >  include/xen/interface/io/protocols.h |    3 +++
+> >  2 files changed, 4 insertions(+), 0 deletions(-)
+> > 
+> > diff --git a/drivers/block/xen-blkback/blkback.c b/drivers/block/xen-blkback/blkback.c
+> > index 73f196c..63dd5b9 100644
+> > --- a/drivers/block/xen-blkback/blkback.c
+> > +++ b/drivers/block/xen-blkback/blkback.c
+> > @@ -42,6 +42,7 @@
+> >  
+> >  #include <xen/events.h>
+> >  #include <xen/page.h>
+> > +#include <xen/xen.h>
+> >  #include <asm/xen/hypervisor.h>
+> >  #include <asm/xen/hypercall.h>
+> >  #include "common.h"
+> > diff --git a/include/xen/interface/io/protocols.h b/include/xen/interface/io/protocols.h
+> > index 01fc8ae..0eafaf2 100644
+> > --- a/include/xen/interface/io/protocols.h
+> > +++ b/include/xen/interface/io/protocols.h
+> > @@ -5,6 +5,7 @@
+> >  #define XEN_IO_PROTO_ABI_X86_64     "x86_64-abi"
+> >  #define XEN_IO_PROTO_ABI_IA64       "ia64-abi"
+> >  #define XEN_IO_PROTO_ABI_POWERPC64  "powerpc64-abi"
+> > +#define XEN_IO_PROTO_ABI_ARM        "arm-abi"
+> 
+> So one that has all of the 32/64 issues worked out? Nice.
+
+Yes, that is the idea, but it needs another patch to actually achieve
+the goal :)
+
+> >  
+> >  #if defined(__i386__)
+> >  # define XEN_IO_PROTO_ABI_NATIVE XEN_IO_PROTO_ABI_X86_32
+> > @@ -14,6 +15,8 @@
+> >  # define XEN_IO_PROTO_ABI_NATIVE XEN_IO_PROTO_ABI_IA64
+> >  #elif defined(__powerpc64__)
+> >  # define XEN_IO_PROTO_ABI_NATIVE XEN_IO_PROTO_ABI_POWERPC64
+> > +#elif defined(__arm__)
+> > +# define XEN_IO_PROTO_ABI_NATIVE XEN_IO_PROTO_ABI_ARM
+> >  #else
+> >  # error arch fixup needed here
+> >  #endif
+> > -- 
+> > 1.7.2.5
+> 
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<alpine.DEB.2.02.1208011719570.4645@kaball.uk.xensource.com> b/config/examples/test/corpus/<alpine.DEB.2.02.1208011719570.4645@kaball.uk.xensource.com>
new file mode 100644 (file)
index 0000000..2d4cdf5
--- /dev/null
@@ -0,0 +1,143 @@
+From xen-devel-bounces@lists.xen.org Wed Aug 01 17:24:59 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 01 Aug 2012 17:24:59 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SwbjB-0007HB-CC
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 01 Aug 2012 17:24:59 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1Swbfl-0007MX-NT; Wed, 01 Aug 2012 16:21:21 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1Swbfj-0007MI-LU
+       for xen-devel@lists.xensource.com; Wed, 01 Aug 2012 16:21:19 +0000
+Received: from [85.158.138.51:37696] by server-1.bemta-3.messagelabs.com id
+       71/2E-31934-E7759105; Wed, 01 Aug 2012 16:21:18 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-15.tower-174.messagelabs.com!1343838078!28174258!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDc3NDk=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.2; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 11961 invoked from network); 1 Aug 2012 16:21:18 -0000
+Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-15.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
+       1 Aug 2012 16:21:18 -0000
+X-IronPort-AV: E=Sophos;i="4.77,695,1336348800"; d="scan'208";a="13807986"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       01 Aug 2012 16:21:17 +0000
+Received: from kaball.uk.xensource.com (10.80.2.59) by
+       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
+       8.3.213.0; Wed, 1 Aug 2012 17:21:17 +0100
+Date: Wed, 1 Aug 2012 17:21:00 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-X-Sender: sstabellini@kaball.uk.xensource.com
+To: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+In-Reply-To: <20120801143946.GK7227@phenom.dumpdata.com>
+Message-ID: <alpine.DEB.2.02.1208011719570.4645@kaball.uk.xensource.com>
+References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
+       <1343316846-25860-13-git-send-email-stefano.stabellini@eu.citrix.com>
+       <1343382276.6812.126.camel@zakaz.uk.xensource.com>
+       <alpine.DEB.2.02.1207271514140.26163@kaball.uk.xensource.com>
+       <1343399630.25096.4.camel@zakaz.uk.xensource.com>
+       <20120801143946.GK7227@phenom.dumpdata.com>
+User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
+       "linaro-dev@lists.linaro.org" <linaro-dev@lists.linaro.org>,
+       Ian Campbell <Ian.Campbell@citrix.com>, "arnd@arndb.de" <arnd@arndb.de>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>,
+       "catalin.marinas@arm.com" <catalin.marinas@arm.com>,
+       "Tim \(Xen.org\)" <tim@xen.org>,
+       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
+       "linux-arm-kernel@lists.infradead.org"
+       <linux-arm-kernel@lists.infradead.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 13/24] xen/arm: get privilege status
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Wed, 1 Aug 2012, Konrad Rzeszutek Wilk wrote:
+> On Fri, Jul 27, 2012 at 03:33:50PM +0100, Ian Campbell wrote:
+> > On Fri, 2012-07-27 at 15:25 +0100, Stefano Stabellini wrote:
+> > > On Fri, 27 Jul 2012, Ian Campbell wrote:
+> > > > On Thu, 2012-07-26 at 16:33 +0100, Stefano Stabellini wrote:
+> > > > > Use Xen features to figure out if we are privileged.
+> > > > > 
+> > > > > XENFEAT_dom0 was introduced by 23735 in xen-unstable.hg.
+> > > > > 
+> > > > > Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+> > > > > ---
+> > > > >  arch/arm/xen/enlighten.c         |    7 +++++++
+> > > > >  include/xen/interface/features.h |    3 +++
+> > > > >  2 files changed, 10 insertions(+), 0 deletions(-)
+> > > > > 
+> > > > > diff --git a/arch/arm/xen/enlighten.c b/arch/arm/xen/enlighten.c
+> > > > > index dc68074..2e013cf 100644
+> > > > > --- a/arch/arm/xen/enlighten.c
+> > > > > +++ b/arch/arm/xen/enlighten.c
+> > > > > @@ -2,6 +2,7 @@
+> > > > >  #include <xen/interface/xen.h>
+> > > > >  #include <xen/interface/memory.h>
+> > > > >  #include <xen/platform_pci.h>
+> > > > > +#include <xen/features.h>
+> > > > >  #include <asm/xen/hypervisor.h>
+> > > > >  #include <asm/xen/hypercall.h>
+> > > > >  #include <linux/module.h>
+> > > > > @@ -58,6 +59,12 @@ int __init xen_guest_init(void)
+> > > > >      }
+> > > > >      xen_domain_type = XEN_HVM_DOMAIN;
+> > > > >  
+> > > > > +    xen_setup_features();
+> > > > > +    if (xen_feature(XENFEAT_dom0))
+> > > > > +            xen_start_info->flags |= SIF_INITDOMAIN|SIF_PRIVILEGED;
+> > > > > +    else
+> > > > > +            xen_start_info->flags &= ~(SIF_INITDOMAIN|SIF_PRIVILEGED);
+> > > > 
+> > > > What happens here on platforms prior to hypervisor changeset 23735?
+> > > 
+> > > It wouldn't work.
+> > > Considering that we are certainly not going to backport ARM support to
+> > > Xen 4.1, and that both ARM and XENFEAT_dom0 will be present in Xen 4.2,
+> > > do we really need to support the Xen unstable changesets between ARM was
+> > > introduced and XENFEAT_dom0 appeared?
+> 
+> So should it just panic and say "AAAAAAH"?
+
+I could panic if I find out that XENFEAT_dom0 is unimplemented but
+actually I only get to know if it is available...
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<alpine.DEB.2.02.1208011752020.4645@kaball.uk.xensource.com> b/config/examples/test/corpus/<alpine.DEB.2.02.1208011752020.4645@kaball.uk.xensource.com>
new file mode 100644 (file)
index 0000000..9a1cd83
--- /dev/null
@@ -0,0 +1,168 @@
+From xen-devel-bounces@lists.xen.org Wed Aug 01 18:13:23 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 01 Aug 2012 18:13:23 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SwcU5-0007VX-75
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 01 Aug 2012 18:13:23 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SwcQA-0003Xf-6s; Wed, 01 Aug 2012 17:09:18 +0000
+Received: from mail27.messagelabs.com ([193.109.254.147])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1SwcQ7-0003XP-TG
+       for xen-devel@lists.xensource.com; Wed, 01 Aug 2012 17:09:16 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-3.tower-27.messagelabs.com!1343840947!10371587!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDc3NDk=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.2; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 31079 invoked from network); 1 Aug 2012 17:09:08 -0000
+Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-3.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
+       1 Aug 2012 17:09:08 -0000
+X-IronPort-AV: E=Sophos;i="4.77,695,1336348800"; d="scan'208";a="13808668"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       01 Aug 2012 17:09:07 +0000
+Received: from kaball.uk.xensource.com (10.80.2.59) by
+       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
+       8.3.213.0; Wed, 1 Aug 2012 18:09:07 +0100
+Date: Wed, 1 Aug 2012 18:08:50 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-X-Sender: sstabellini@kaball.uk.xensource.com
+To: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+In-Reply-To: <20120801144059.GL7227@phenom.dumpdata.com>
+Message-ID: <alpine.DEB.2.02.1208011752020.4645@kaball.uk.xensource.com>
+References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
+       <1343316846-25860-14-git-send-email-stefano.stabellini@eu.citrix.com>
+       <20120801144059.GL7227@phenom.dumpdata.com>
+User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
+       "linaro-dev@lists.linaro.org" <linaro-dev@lists.linaro.org>,
+       Ian Campbell <Ian.Campbell@citrix.com>, "arnd@arndb.de" <arnd@arndb.de>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>,
+       "catalin.marinas@arm.com" <catalin.marinas@arm.com>,
+       "Tim \(Xen.org\)" <tim@xen.org>,
+       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
+       "linux-arm-kernel@lists.infradead.org"
+       <linux-arm-kernel@lists.infradead.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD autolearn=unavailable version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 14/24] xen/arm: initialize grant_table on ARM
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Wed, 1 Aug 2012, Konrad Rzeszutek Wilk wrote:
+> On Thu, Jul 26, 2012 at 04:33:56PM +0100, Stefano Stabellini wrote:
+> > Initialize the grant table mapping at the address specified at index 0
+> > in the DT under the /xen node.
+> 
+> Is it always index 0? If so, should it have a #define for the
+> other index values?
+
+There are no other values at the moment but I'll add an #define.
+
+
+> > After the grant table is initialized, call xenbus_probe (if not dom0).
+> > 
+> > Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+> > ---
+> >  arch/arm/xen/enlighten.c  |   13 +++++++++++++
+> >  drivers/xen/grant-table.c |    2 +-
+> >  2 files changed, 14 insertions(+), 1 deletions(-)
+> > 
+> > diff --git a/arch/arm/xen/enlighten.c b/arch/arm/xen/enlighten.c
+> > index 2e013cf..854af1e 100644
+> > --- a/arch/arm/xen/enlighten.c
+> > +++ b/arch/arm/xen/enlighten.c
+> > @@ -1,8 +1,12 @@
+> >  #include <xen/xen.h>
+> >  #include <xen/interface/xen.h>
+> >  #include <xen/interface/memory.h>
+> > +#include <xen/interface/hvm/params.h>
+> >  #include <xen/platform_pci.h>
+> >  #include <xen/features.h>
+> > +#include <xen/grant_table.h>
+> > +#include <xen/hvm.h>
+> > +#include <xen/xenbus.h>
+> >  #include <asm/xen/hypervisor.h>
+> >  #include <asm/xen/hypercall.h>
+> >  #include <linux/module.h>
+> > @@ -51,12 +55,16 @@ int __init xen_guest_init(void)
+> >    struct xen_add_to_physmap xatp;
+> >    static struct shared_info *shared_info_page = 0;
+> >    struct device_node *node;
+> > +  struct resource res;
+> >  
+> >    node = of_find_compatible_node(NULL, NULL, "arm,xen");
+> >    if (!node) {
+> >            pr_info("No Xen support\n");
+> >            return 0;
+> >    }
+> > +  if (of_address_to_resource(node, 0, &res))
+> > +          return -EINVAL;
+> > +  xen_hvm_resume_frames = res.start >> PAGE_SHIFT;
+> >    xen_domain_type = XEN_HVM_DOMAIN;
+> >  
+> >    xen_setup_features();
+> > @@ -97,6 +105,11 @@ int __init xen_guest_init(void)
+> >            per_cpu(xen_vcpu, cpu) =
+> >                    &HYPERVISOR_shared_info->vcpu_info[cpu];
+> >    }
+> > +
+> > +  gnttab_init();
+> > +  if (!xen_initial_domain())
+> > +          xenbus_probe(NULL);
+> > +
+> >    return 0;
+> >  }
+> >  EXPORT_SYMBOL_GPL(xen_guest_init);
+> > diff --git a/drivers/xen/grant-table.c b/drivers/xen/grant-table.c
+> > index 1d0d95e..fd2137a 100644
+> > --- a/drivers/xen/grant-table.c
+> > +++ b/drivers/xen/grant-table.c
+> > @@ -62,7 +62,7 @@
+> >  
+> >  static grant_ref_t **gnttab_list;
+> >  static unsigned int nr_grant_frames;
+> > -static unsigned int boot_max_nr_grant_frames;
+> > +static unsigned int boot_max_nr_grant_frames = 1;
+> 
+> Is this going to impact x86 version?
+
+It is not needed so I'll remove this change
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<alpine.DEB.2.02.1208061127440.4645@kaball.uk.xensource.com> b/config/examples/test/corpus/<alpine.DEB.2.02.1208061127440.4645@kaball.uk.xensource.com>
new file mode 100644 (file)
index 0000000..e86ac40
--- /dev/null
@@ -0,0 +1,283 @@
+From xen-devel-bounces@lists.xen.org Mon Aug 06 11:35:45 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Mon, 06 Aug 2012 11:35:45 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SyKez-0006HP-3d
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Mon, 06 Aug 2012 11:35:44 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SyKaw-0004bn-9K; Mon, 06 Aug 2012 10:31:30 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1SyKau-0004ba-DT
+       for xen-devel@lists.xensource.com; Mon, 06 Aug 2012 10:31:28 +0000
+Received: from [85.158.143.99:45713] by server-2.bemta-4.messagelabs.com id
+       9E/D8-17938-FFC9F105; Mon, 06 Aug 2012 10:31:27 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-2.tower-216.messagelabs.com!1344249086!25131372!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDgxNjY=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.2; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 4225 invoked from network); 6 Aug 2012 10:31:27 -0000
+Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-2.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
+       6 Aug 2012 10:31:27 -0000
+X-IronPort-AV: E=Sophos;i="4.77,718,1336348800"; d="scan'208";a="13863086"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       06 Aug 2012 10:31:26 +0000
+Received: from kaball.uk.xensource.com (10.80.2.59) by
+       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
+       8.3.213.0; Mon, 6 Aug 2012 11:31:26 +0100
+Date: Mon, 6 Aug 2012 11:31:04 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-X-Sender: sstabellini@kaball.uk.xensource.com
+To: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+In-Reply-To: <20120801144418.GM7227@phenom.dumpdata.com>
+Message-ID: <alpine.DEB.2.02.1208061127440.4645@kaball.uk.xensource.com>
+References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
+       <1343316846-25860-15-git-send-email-stefano.stabellini@eu.citrix.com>
+       <20120801144418.GM7227@phenom.dumpdata.com>
+User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
+       "linaro-dev@lists.linaro.org" <linaro-dev@lists.linaro.org>,
+       Ian Campbell <Ian.Campbell@citrix.com>, "arnd@arndb.de" <arnd@arndb.de>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>,
+       "catalin.marinas@arm.com" <catalin.marinas@arm.com>,
+       "Tim \(Xen.org\)" <tim@xen.org>,
+       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
+       "linux-arm-kernel@lists.infradead.org"
+       <linux-arm-kernel@lists.infradead.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 15/24] xen/arm: receive Xen events on ARM
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Wed, 1 Aug 2012, Konrad Rzeszutek Wilk wrote:
+> On Thu, Jul 26, 2012 at 04:33:57PM +0100, Stefano Stabellini wrote:
+> > Compile events.c on ARM.
+> > Parse, map and enable the IRQ to get event notifications from the device
+> > tree (node "/xen").
+> > 
+> > On ARM Linux irqs are not enabled by default:
+> > 
+> > - call enable_percpu_irq for xen_events_irq (drivers are supposed
+> > to call enable_irq after request_irq);
+> > 
+> > - reset the IRQ_NOAUTOEN and IRQ_NOREQUEST flags that are enabled by
+> > default on ARM. If IRQ_NOAUTOEN is set, __setup_irq doesn't call
+> > irq_startup, that is responsible for calling irq_unmask at startup time.
+> > As a result event channels remain masked.
+> > 
+> > Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+> > ---
+> >  arch/arm/xen/enlighten.c |   33 +++++++++++++++++++++++++++++++++
+> >  arch/x86/xen/enlighten.c |    1 +
+> >  arch/x86/xen/irq.c       |    1 +
+> >  arch/x86/xen/xen-ops.h   |    1 -
+> >  drivers/xen/events.c     |   18 +++++++++++++++---
+> >  include/xen/events.h     |    2 ++
+> >  6 files changed, 52 insertions(+), 4 deletions(-)
+> > 
+> > diff --git a/arch/arm/xen/enlighten.c b/arch/arm/xen/enlighten.c
+> > index 854af1e..60d6d36 100644
+> > --- a/arch/arm/xen/enlighten.c
+> > +++ b/arch/arm/xen/enlighten.c
+> > @@ -7,8 +7,11 @@
+> >  #include <xen/grant_table.h>
+> >  #include <xen/hvm.h>
+> >  #include <xen/xenbus.h>
+> > +#include <xen/events.h>
+> >  #include <asm/xen/hypervisor.h>
+> >  #include <asm/xen/hypercall.h>
+> > +#include <linux/interrupt.h>
+> > +#include <linux/irqreturn.h>
+> >  #include <linux/module.h>
+> >  #include <linux/of.h>
+> >  #include <linux/of_irq.h>
+> > @@ -33,6 +36,8 @@ EXPORT_SYMBOL_GPL(xen_have_vector_callback);
+> >  int xen_platform_pci_unplug = XEN_UNPLUG_ALL;
+> >  EXPORT_SYMBOL_GPL(xen_platform_pci_unplug);
+> >  
+> > +static __read_mostly int xen_events_irq = -1;
+> > +
+> >  int xen_remap_domain_mfn_range(struct vm_area_struct *vma,
+> >                           unsigned long addr,
+> >                           unsigned long mfn, int nr,
+> > @@ -65,6 +70,9 @@ int __init xen_guest_init(void)
+> >    if (of_address_to_resource(node, 0, &res))
+> >            return -EINVAL;
+> >    xen_hvm_resume_frames = res.start >> PAGE_SHIFT;
+> > +  xen_events_irq = irq_of_parse_and_map(node, 0);
+> > +  pr_info("Xen support found, events_irq=%d gnttab_frame_pfn=%lx\n",
+> > +                  xen_events_irq, xen_hvm_resume_frames);
+> >    xen_domain_type = XEN_HVM_DOMAIN;
+> >  
+> >    xen_setup_features();
+> > @@ -114,3 +122,28 @@ int __init xen_guest_init(void)
+> >  }
+> >  EXPORT_SYMBOL_GPL(xen_guest_init);
+> >  core_initcall(xen_guest_init);
+> > +
+> > +static irqreturn_t xen_arm_callback(int irq, void *arg)
+> > +{
+> > +  xen_hvm_evtchn_do_upcall();
+> > +  return 0;
+> 
+> Um, IRQ_HANDLED?
+
+Yep
+
+
+> > +}
+> > +
+> > +static int __init xen_init_events(void)
+> > +{
+> > +  if (!xen_domain() || xen_events_irq < 0)
+> > +          return -ENODEV;
+> > +
+> > +  xen_init_IRQ();
+> > +
+> > +  if (request_percpu_irq(xen_events_irq, xen_arm_callback,
+> > +                  "events", xen_vcpu)) {
+> > +          pr_err("Error requesting IRQ %d\n", xen_events_irq);
+> > +          return -EINVAL;
+> > +  }
+> > +
+> > +  enable_percpu_irq(xen_events_irq, 0);
+> > +
+> > +  return 0;
+> > +}
+> > +postcore_initcall(xen_init_events);
+> > diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c
+> > index 6131d43..5a30502 100644
+> > --- a/arch/x86/xen/enlighten.c
+> > +++ b/arch/x86/xen/enlighten.c
+> > @@ -33,6 +33,7 @@
+> >  #include <linux/memblock.h>
+> >  
+> >  #include <xen/xen.h>
+> > +#include <xen/events.h>
+> >  #include <xen/interface/xen.h>
+> >  #include <xen/interface/version.h>
+> >  #include <xen/interface/physdev.h>
+> > diff --git a/arch/x86/xen/irq.c b/arch/x86/xen/irq.c
+> > index 1573376..01a4dc0 100644
+> > --- a/arch/x86/xen/irq.c
+> > +++ b/arch/x86/xen/irq.c
+> > @@ -5,6 +5,7 @@
+> >  #include <xen/interface/xen.h>
+> >  #include <xen/interface/sched.h>
+> >  #include <xen/interface/vcpu.h>
+> > +#include <xen/events.h>
+> >  
+> >  #include <asm/xen/hypercall.h>
+> >  #include <asm/xen/hypervisor.h>
+> > diff --git a/arch/x86/xen/xen-ops.h b/arch/x86/xen/xen-ops.h
+> > index 202d4c1..2368295 100644
+> > --- a/arch/x86/xen/xen-ops.h
+> > +++ b/arch/x86/xen/xen-ops.h
+> > @@ -35,7 +35,6 @@ void xen_set_pat(u64);
+> >  
+> >  char * __init xen_memory_setup(void);
+> >  void __init xen_arch_setup(void);
+> > -void __init xen_init_IRQ(void);
+> >  void xen_enable_sysenter(void);
+> >  void xen_enable_syscall(void);
+> >  void xen_vcpu_restore(void);
+> > diff --git a/drivers/xen/events.c b/drivers/xen/events.c
+> > index 7da65d3..9b506b2 100644
+> > --- a/drivers/xen/events.c
+> > +++ b/drivers/xen/events.c
+> > @@ -31,14 +31,16 @@
+> >  #include <linux/irqnr.h>
+> >  #include <linux/pci.h>
+> >  
+> > +#ifdef CONFIG_X86
+> >  #include <asm/desc.h>
+> >  #include <asm/ptrace.h>
+> >  #include <asm/irq.h>
+> >  #include <asm/idle.h>
+> >  #include <asm/io_apic.h>
+> > -#include <asm/sync_bitops.h>
+> >  #include <asm/xen/page.h>
+> >  #include <asm/xen/pci.h>
+> > +#endif
+> > +#include <asm/sync_bitops.h>
+> >  #include <asm/xen/hypercall.h>
+> >  #include <asm/xen/hypervisor.h>
+> >  
+> > @@ -50,6 +52,9 @@
+> >  #include <xen/interface/event_channel.h>
+> >  #include <xen/interface/hvm/hvm_op.h>
+> >  #include <xen/interface/hvm/params.h>
+> > +#include <xen/interface/physdev.h>
+> > +#include <xen/interface/sched.h>
+> > +#include <asm/hw_irq.h>
+> >  
+> >  /*
+> >   * This lock protects updates to the following mapping and reference-count
+> > @@ -834,6 +839,7 @@ int bind_evtchn_to_irq(unsigned int evtchn)
+> >            struct irq_info *info = info_for_irq(irq);
+> >            WARN_ON(info == NULL || info->type != IRQT_EVTCHN);
+> >    }
+> > +  irq_clear_status_flags(irq, IRQ_NOREQUEST|IRQ_NOAUTOEN);
+> 
+> I feel that this should be its own commit by itself. I am not certain
+> of the implication of this on x86 and I think it deserves some explanation.
+
+OK. It shouldn't have any effects on x86, considering that both
+IRQ_NOREQUEST and IRQ_NOAUTOEN are not set there.
+
+
+> >  
+> >  out:
+> >    mutex_unlock(&irq_mapping_update_lock);
+> > @@ -1377,7 +1383,9 @@ void xen_evtchn_do_upcall(struct pt_regs *regs)
+> >  {
+> >    struct pt_regs *old_regs = set_irq_regs(regs);
+> >  
+> > +#ifdef CONFIG_X86
+> >    exit_idle();
+> > +#endif
+> 
+> Doesn't exist? Or is that it does not need it?
+
+It does not exist.
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<alpine.DEB.2.02.1208061142070.4645@kaball.uk.xensource.com> b/config/examples/test/corpus/<alpine.DEB.2.02.1208061142070.4645@kaball.uk.xensource.com>
new file mode 100644 (file)
index 0000000..524bfb3
--- /dev/null
@@ -0,0 +1,136 @@
+From xen-devel-bounces@lists.xen.org Mon Aug 06 11:51:30 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Mon, 06 Aug 2012 11:51:30 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SyKuD-0006M2-10
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Mon, 06 Aug 2012 11:51:30 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SyKpc-0004v4-Nd; Mon, 06 Aug 2012 10:46:40 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1SyKpa-0004uz-Sd
+       for xen-devel@lists.xensource.com; Mon, 06 Aug 2012 10:46:39 +0000
+Received: from [85.158.139.83:54280] by server-12.bemta-5.messagelabs.com id
+       F1/7A-26304-E80AF105; Mon, 06 Aug 2012 10:46:38 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-5.tower-182.messagelabs.com!1344249995!30493266!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDgxNjY=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.2; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 25980 invoked from network); 6 Aug 2012 10:46:36 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-5.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
+       6 Aug 2012 10:46:36 -0000
+X-IronPort-AV: E=Sophos;i="4.77,718,1336348800"; d="scan'208";a="13863580"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       06 Aug 2012 10:46:35 +0000
+Received: from kaball.uk.xensource.com (10.80.2.59) by
+       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
+       8.3.213.0; Mon, 6 Aug 2012 11:46:35 +0100
+Date: Mon, 6 Aug 2012 11:46:14 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-X-Sender: sstabellini@kaball.uk.xensource.com
+To: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+In-Reply-To: <20120802141341.GE16749@phenom.dumpdata.com>
+Message-ID: <alpine.DEB.2.02.1208061142070.4645@kaball.uk.xensource.com>
+References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
+       <1343316846-25860-1-git-send-email-stefano.stabellini@eu.citrix.com>
+       <50197527.3070007@gmail.com>
+       <1343892951.7571.50.camel@dagon.hellion.org.uk>
+       <20120802141341.GE16749@phenom.dumpdata.com>
+User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
+       "linaro-dev@lists.linaro.org" <linaro-dev@lists.linaro.org>,
+       Ian Campbell <Ian.Campbell@citrix.com>, "arnd@arndb.de" <arnd@arndb.de>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>,
+       "catalin.marinas@arm.com" <catalin.marinas@arm.com>,
+       "Tim \(Xen.org\)" <tim@xen.org>,
+       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
+       Rob Herring <robherring2@gmail.com>, "linux-arm-kernel@lists.infradead.org"
+       <linux-arm-kernel@lists.infradead.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 01/24] arm: initial Xen support
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Thu, 2 Aug 2012, Konrad Rzeszutek Wilk wrote:
+> On Thu, Aug 02, 2012 at 08:35:51AM +0100, Ian Campbell wrote:
+> > On Wed, 2012-08-01 at 19:27 +0100, Rob Herring wrote:
+> > > On 07/26/2012 10:33 AM, Stefano Stabellini wrote:
+> > > > - Basic hypervisor.h and interface.h definitions.
+> > > > - Skelethon enlighten.c, set xen_start_info to an empty struct.
+> > > > - Do not limit xen_initial_domain to PV guests.
+> > > > 
+> > > > The new code only compiles when CONFIG_XEN is set, that is going to be
+> > > > added to arch/arm/Kconfig in a later patch.
+> > > > 
+> > > > Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+> > > > ---
+> > > >  arch/arm/Makefile                     |    1 +
+> > > >  arch/arm/include/asm/hypervisor.h     |    6 +++
+> > > >  arch/arm/include/asm/xen/hypervisor.h |   19 ++++++++++
+> > > >  arch/arm/include/asm/xen/interface.h  |   64 +++++++++++++++++++++++++++++++++
+> > > 
+> > > These headers don't seem particularly ARM specific. Could they be moved
+> > > to asm-generic or include/linux?
+> > 
+> > Or perhaps include/xen.
+> > 
+> > A bunch of it also looks like x86 specific stuff which has crept in.
+> > e.g. PARAVIRT_LAZY_FOO and paravirt_get_lazy_mode() are arch/x86
+> > specific and shouldn't be called from common code (and aren't, AFAICT).
+> 
+> The could be moved out..
+> 
+
+they are called from grant-table.c; sigh, I was the one to add them there :-(
+
+interface.h is ARM specific, except for the pvclock structs, that in
+fact are marked "XXX".
+
+hypervisor.h is almost empty but I guess I could move out the following two
+lines:
+
+extern struct shared_info *HYPERVISOR_shared_info;
+extern struct start_info *xen_start_info;
+
+Considering that each arch is free to map them (or not) the way it
+wants, I don't think is a good idea.
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<alpine.DEB.2.02.1208061146480.4645@kaball.uk.xensource.com> b/config/examples/test/corpus/<alpine.DEB.2.02.1208061146480.4645@kaball.uk.xensource.com>
new file mode 100644 (file)
index 0000000..ee2616d
--- /dev/null
@@ -0,0 +1,118 @@
+From xen-devel-bounces@lists.xen.org Mon Aug 06 12:00:47 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Mon, 06 Aug 2012 12:00:47 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SyL3F-0006Nv-E9
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Mon, 06 Aug 2012 12:00:47 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SyKyh-00054Q-Oy; Mon, 06 Aug 2012 10:56:03 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1SyKyg-00054L-1X
+       for xen-devel@lists.xensource.com; Mon, 06 Aug 2012 10:56:02 +0000
+Received: from [85.158.143.99:44551] by server-2.bemta-4.messagelabs.com id
+       8F/01-17938-1C2AF105; Mon, 06 Aug 2012 10:56:01 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-16.tower-216.messagelabs.com!1344250560!18765197!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDgxNjY=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.2; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 11057 invoked from network); 6 Aug 2012 10:56:00 -0000
+Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-16.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
+       6 Aug 2012 10:56:00 -0000
+X-IronPort-AV: E=Sophos;i="4.77,718,1336348800"; d="scan'208";a="13863791"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       06 Aug 2012 10:56:00 +0000
+Received: from kaball.uk.xensource.com (10.80.2.59) by
+       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
+       8.3.213.0; Mon, 6 Aug 2012 11:56:00 +0100
+Date: Mon, 6 Aug 2012 11:55:38 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-X-Sender: sstabellini@kaball.uk.xensource.com
+To: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+In-Reply-To: <20120801104237.GB7227@phenom.dumpdata.com>
+Message-ID: <alpine.DEB.2.02.1208061146480.4645@kaball.uk.xensource.com>
+References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
+       <1343316846-25860-1-git-send-email-stefano.stabellini@eu.citrix.com>
+       <20120726163020.GB9222@phenom.dumpdata.com>
+       <alpine.DEB.2.02.1207271246080.26163@kaball.uk.xensource.com>
+       <20120801104237.GB7227@phenom.dumpdata.com>
+User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
+       "linaro-dev@lists.linaro.org" <linaro-dev@lists.linaro.org>,
+       Ian Campbell <Ian.Campbell@citrix.com>, "arnd@arndb.de" <arnd@arndb.de>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>,
+       "catalin.marinas@arm.com" <catalin.marinas@arm.com>,
+       "Tim \(Xen.org\)" <tim@xen.org>,
+       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
+       "linux-arm-kernel@lists.infradead.org"
+       <linux-arm-kernel@lists.infradead.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 01/24] arm: initial Xen support
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Wed, 1 Aug 2012, Konrad Rzeszutek Wilk wrote:
+> > > > +struct pvclock_wall_clock {
+> > > > +      u32   version;
+> > > > +      u32   sec;
+> > > > +      u32   nsec;
+> > > > +} __attribute__((__packed__));
+> > > 
+> > > That is weird. It is 4+4+4 = 12 bytes? Don't you want it to be 16 bytes?
+> > 
+> > I agree that 16 bytes would be a better choice, but it needs to match
+> > the struct in Xen that is defined as follow:
+> > 
+> >     uint32_t wc_version;      /* Version counter: see vcpu_time_info_t. */
+> >     uint32_t wc_sec;          /* Secs  00:00:00 UTC, Jan 1, 1970.  */
+> >     uint32_t wc_nsec;         /* Nsecs 00:00:00 UTC, Jan 1, 1970.  */
+> 
+> Would it make sense to add some paddigin then at least? In both
+> cases? Or is it too late for this?
+
+I can see why adding some padding would be useful if the structs were
+not packed and we wanted to enforce 32/64 bit compatibility on x86.
+However on ARM the field alignments on 32 and 64 bits are the same for
+integer values so the padding wouldn't make a difference.
+In any case both structs are packed, so the alignment is forced to be the
+same by the compiler.
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<alpine.DEB.2.02.1208061200130.4645@kaball.uk.xensource.com> b/config/examples/test/corpus/<alpine.DEB.2.02.1208061200130.4645@kaball.uk.xensource.com>
new file mode 100644 (file)
index 0000000..bb07513
--- /dev/null
@@ -0,0 +1,185 @@
+From xen-devel-bounces@lists.xen.org Mon Aug 06 12:22:54 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Mon, 06 Aug 2012 12:22:54 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SyLOe-0006SB-7I
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Mon, 06 Aug 2012 12:22:54 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1SyLJz-0005Im-Nq; Mon, 06 Aug 2012 11:18:03 +0000
+Received: from mail27.messagelabs.com ([193.109.254.147])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1SyLJy-0005Ih-31
+       for xen-devel@lists.xensource.com; Mon, 06 Aug 2012 11:18:02 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-7.tower-27.messagelabs.com!1344251868!4015807!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDgxNjY=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.2; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 10543 invoked from network); 6 Aug 2012 11:17:49 -0000
+Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-7.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
+       6 Aug 2012 11:17:49 -0000
+X-IronPort-AV: E=Sophos;i="4.77,718,1336348800"; d="scan'208";a="13864255"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       06 Aug 2012 11:17:32 +0000
+Received: from kaball.uk.xensource.com (10.80.2.59) by
+       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
+       8.3.213.0; Mon, 6 Aug 2012 12:17:32 +0100
+Date: Mon, 6 Aug 2012 12:17:10 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-X-Sender: sstabellini@kaball.uk.xensource.com
+To: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+In-Reply-To: <20120801142840.GG7227@phenom.dumpdata.com>
+Message-ID: <alpine.DEB.2.02.1208061200130.4645@kaball.uk.xensource.com>
+References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
+       <1343316846-25860-9-git-send-email-stefano.stabellini@eu.citrix.com>
+       <20120801142840.GG7227@phenom.dumpdata.com>
+User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
+       "linaro-dev@lists.linaro.org" <linaro-dev@lists.linaro.org>,
+       Ian Campbell <Ian.Campbell@citrix.com>, "arnd@arndb.de" <arnd@arndb.de>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>,
+       "catalin.marinas@arm.com" <catalin.marinas@arm.com>,
+       "Tim \(Xen.org\)" <tim@xen.org>,
+       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
+       "linux-arm-kernel@lists.infradead.org"
+       <linux-arm-kernel@lists.infradead.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD autolearn=unavailable version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 09/24] xen/arm: compile and run xenbus
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Wed, 1 Aug 2012, Konrad Rzeszutek Wilk wrote:
+> On Thu, Jul 26, 2012 at 04:33:51PM +0100, Stefano Stabellini wrote:
+> > bind_evtchn_to_irqhandler can legitimately return 0 (irq 0): it is not
+> > an error.
+> > 
+> > If Linux is running as an HVM domain and is running as Dom0, use
+> > xenstored_local_init to initialize the xenstore page and event channel.
+> > 
+> > Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+> > ---
+> >  drivers/xen/xenbus/xenbus_comms.c |    2 +-
+> >  drivers/xen/xenbus/xenbus_probe.c |   27 +++++++++++++++++----------
+> >  drivers/xen/xenbus/xenbus_xs.c    |    1 +
+> >  3 files changed, 19 insertions(+), 11 deletions(-)
+> > 
+> > diff --git a/drivers/xen/xenbus/xenbus_comms.c b/drivers/xen/xenbus/xenbus_comms.c
+> > index 52fe7ad..c5aa55c 100644
+> > --- a/drivers/xen/xenbus/xenbus_comms.c
+> > +++ b/drivers/xen/xenbus/xenbus_comms.c
+> > @@ -224,7 +224,7 @@ int xb_init_comms(void)
+> >            int err;
+> >            err = bind_evtchn_to_irqhandler(xen_store_evtchn, wake_waiting,
+> >                                            0, "xenbus", &xb_waitq);
+> > -          if (err <= 0) {
+> > +          if (err < 0) {
+> >                    printk(KERN_ERR "XENBUS request irq failed %i\n", err);
+> >                    return err;
+> >            }
+> > diff --git a/drivers/xen/xenbus/xenbus_probe.c b/drivers/xen/xenbus/xenbus_probe.c
+> > index b793723..3ae47c2 100644
+> > --- a/drivers/xen/xenbus/xenbus_probe.c
+> > +++ b/drivers/xen/xenbus/xenbus_probe.c
+> > @@ -729,16 +729,23 @@ static int __init xenbus_init(void)
+> >    xenbus_ring_ops_init();
+> >  
+> >    if (xen_hvm_domain()) {
+> > -          uint64_t v = 0;
+> > -          err = hvm_get_parameter(HVM_PARAM_STORE_EVTCHN, &v);
+> > -          if (err)
+> > -                  goto out_error;
+> > -          xen_store_evtchn = (int)v;
+> > -          err = hvm_get_parameter(HVM_PARAM_STORE_PFN, &v);
+> > -          if (err)
+> > -                  goto out_error;
+> > -          xen_store_mfn = (unsigned long)v;
+> > -          xen_store_interface = ioremap(xen_store_mfn << PAGE_SHIFT, PAGE_SIZE);
+> > +          if (xen_initial_domain()) {
+> > +                  err = xenstored_local_init();
+> > +                  xen_store_interface =
+> > +                          phys_to_virt(xen_store_mfn << PAGE_SHIFT);
+> > +          } else {
+> > +                  uint64_t v = 0;
+> > +                  err = hvm_get_parameter(HVM_PARAM_STORE_EVTCHN, &v);
+> > +                  if (err)
+> > +                          goto out_error;
+> > +                  xen_store_evtchn = (int)v;
+> > +                  err = hvm_get_parameter(HVM_PARAM_STORE_PFN, &v);
+> > +                  if (err)
+> > +                          goto out_error;
+> > +                  xen_store_mfn = (unsigned long)v;
+> > +                  xen_store_interface =
+> > +                          ioremap(xen_store_mfn << PAGE_SHIFT, PAGE_SIZE);
+> > +          }
+> 
+> This, and along with the Hybrid PV dom0 (not yet posted, but it was doing
+> similar manipulation here) is getting more and more like a rat-mess.
+> 
+> 
+> Any chance we can just abstract the three different XenStore access
+> ways and just have something like this:
+> 
+>      enum {
+>              USE_UNKNOWN
+>              USE_HVM,
+>              USE_PV,
+>              USE_LOCAL
+>              USE_ALREADY_INIT
+>      };
+>      int usage = USE_UNKNOWN;
+>      if (xen_pv_domain())
+>              usage = USE_PV;
+>      if (xen_hvm_domain())
+>              usage = USE_HVM;
+>      if (xen_initial_domain())
+>              usage = USE_LOCAL;
+> 
+>      if (xen_start_info->store_evtchn)
+>              usage = USE_ALREADY_INIT;
+>      
+>      .. other overwrites..
+> 
+>      switch (usage) {
+>              .. blah blah.
+>      }
+
+I'll give it a try.
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<alpine.DEB.2.02.1208151418380.2278@kaball.uk.xensource.com> b/config/examples/test/corpus/<alpine.DEB.2.02.1208151418380.2278@kaball.uk.xensource.com>
new file mode 100644 (file)
index 0000000..40529c9
--- /dev/null
@@ -0,0 +1,342 @@
+From xen-devel-bounces@lists.xen.org Wed Aug 15 15:01:00 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 15 Aug 2012 15:01:00 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T1e9Y-0006QU-Vu
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 15 Aug 2012 15:01:00 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T1e4y-0005g8-Vl; Wed, 15 Aug 2012 13:56:12 +0000
+Received: from mail27.messagelabs.com ([193.109.254.147])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1T1e4x-0005fs-Qs
+       for xen-devel@lists.xen.org; Wed, 15 Aug 2012 13:56:12 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-5.tower-27.messagelabs.com!1345038962!6996963!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDkxOTE=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 17318 invoked from network); 15 Aug 2012 13:56:03 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-5.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
+       15 Aug 2012 13:56:03 -0000
+X-IronPort-AV: E=Sophos;i="4.77,773,1336348800"; d="scan'208";a="14021752"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       15 Aug 2012 13:56:02 +0000
+Received: from kaball.uk.xensource.com (10.80.2.59) by
+       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
+       8.3.213.0; Wed, 15 Aug 2012 14:56:02 +0100
+Date: Wed, 15 Aug 2012 14:55:46 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-X-Sender: sstabellini@kaball.uk.xensource.com
+To: David Vrabel <david.vrabel@citrix.com>
+In-Reply-To: <502B85D1.8000606@citrix.com>
+Message-ID: <alpine.DEB.2.02.1208151418380.2278@kaball.uk.xensource.com>
+References: <1344947062-4796-1-git-send-email-attilio.rao@citrix.com>
+       <1344947062-4796-3-git-send-email-attilio.rao@citrix.com>
+       <502A5964.2080509@citrix.com> <502A5CD0.8000201@citrix.com>
+       <502B85D1.8000606@citrix.com>
+User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
+MIME-Version: 1.0
+Cc: Attilio Rao <attilio.rao@citrix.com>,
+       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH v2 2/2] Xen: Document the semantic of the
+ pagetable_reserve PVOPS
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Wed, 15 Aug 2012, David Vrabel wrote:
+> On 14/08/12 15:12, Attilio Rao wrote:
+> > On 14/08/12 14:57, David Vrabel wrote:
+> >> On 14/08/12 13:24, Attilio Rao wrote:
+> >> 
+> >>> The informations added on the hook are: - Native behaviour - Xen 
+> >>> specific behaviour - Logic behind the Xen specific behaviour
+> >>> 
+> >> These are implementation details and should be documented with the
+> >>  implementations (if necessary).
+> >> 
+> > 
+> > In this specific case, implementation details are very valuable to 
+> > understand the semantic of operations, this is why I added them 
+> > there. I think, at least for this case, this is the best trade-off.
+> 
+> Documenting the implementation details will be useful for reviewing or
+> refactoring the pv-ops but I don't think it useful in the longer term
+> for it to be included in the API documentation upstream.
+> 
+> >>> - PVOPS semantic
+> >>> 
+> >> This is the interesting stuff.
+> >> 
+> >> This particular pvop seems a little odd really.  It might make more
+> >> sense if it took a third parameter for pgt_buf_top.
+> > 
+> > The thing is that this work (documenting PVOPS) should help in 
+> > understanding the logic behind some PVOPS and possibly
+> > improve/rework them. For this stage, I agreed with Konrad to keep the
+> > changes as small as possible. Once the documentation about the
+> > semantic is in place we can think about ways to improve things more
+> > effectively (for example, in some cases we may want to rewrite the
+> > PVOP completely).
+> 
+> After looking at it some more, I think this pv-ops is unnecessary. How
+> about the following patch to just remove it completely?
+> 
+> I've only smoke-tested 32-bit and 64-bit dom0 but I think the reasoning
+> is sound.
+
+Do you have more then 4G to dom0 on those boxes?
+It certainly fixed a serious crash at the time it was introduced, see
+http://marc.info/?l=linux-kernel&m=129901609503574 and
+http://marc.info/?l=linux-kernel&m=130133909408229. Unless something big
+changed in kernel_physical_mapping_init, I think we still need it.
+Depending on the e820 of your test box, the kernel could crash (or not),
+possibly in different places.
+
+
+> >> "@pagetable_reserve is used to reserve a range of PFNs used for the
+> >> kernel direct mapping page tables and cleans-up any PFNs that ended
+> >> up not being used for the tables.
+> >> 
+> >> It shall reserve the range (start, end] with memblock_reserve(). It
+> >> shall prepare PFNs in the range (end, pgt_buf_top] for general (non
+> >> page table) use.
+> >> 
+> >> It shall only be called in init_memory_mapping() after the direct 
+> >> mapping tables have been constructed."
+> >> 
+> >> Having said that, I couldn't immediately see where pages in (end, 
+> >> pgt_buf_top] was getting set RO.  Can you point me to where it's 
+> >> done?
+> >> 
+> > 
+> > As mentioned in the comment, please look at xen_set_pte_init().
+> 
+> xen_set_pte_init() only ensures it doesn't set the PTE as writable if it
+> is already present and read-only.
+
+look at mask_rw_pte and read the threads linked above, unfortunately it
+is not that simple.
+
+
+> David
+> 
+> 8<----------------------
+> x86: remove x86_init.mapping.pagetable_reserve paravirt op
+> 
+> The x86_init.mapping.pagetable_reserve paravirt op is used for Xen
+> guests to set the writable flag for the mapping of (pgt_buf_end,
+> pgt_buf_top].  This is not necessary as these pages are never set as
+> read-only as they have never contained page tables.
+
+Is this actually true? It is possible when pagetable pages are
+allocated by alloc_low_page.
+
+
+> When running as a Xen guest, the initial page tables are provided by
+> Xen (these are reserved with memblock_reserve() in
+> xen_setup_kernel_pagetable()) and constructed in brk space (for 32-bit
+> guests) or in the kernel's .data section (for 64-bit guests, see
+> head_64.S).
+> 
+> Since these are all marked as reserved, (pgt_buf_start, pgt_buf_top]
+> does not overlap with them and the mappings for these PFNs will be
+> read-write.
+
+We are talking about pagetable pages built by
+kernel_physical_mapping_init.
+
+
+> Since Xen doesn't need to change the mapping its implementation
+> becomes the same as a native and we can simply remove this pv-op
+> completely.
+
+I don't think so.
+
+
+
+> Signed-off-by: David Vrabel <david.vrabel@citrix.com>
+> ---
+>  arch/x86/include/asm/pgtable_types.h |    1 -
+>  arch/x86/include/asm/x86_init.h      |   12 ------------
+>  arch/x86/kernel/x86_init.c           |    4 ----
+>  arch/x86/mm/init.c                   |   22 +++-------------------
+>  arch/x86/xen/mmu.c                   |   19 ++-----------------
+>  5 files changed, 5 insertions(+), 53 deletions(-)
+> 
+> diff --git a/arch/x86/include/asm/pgtable_types.h b/arch/x86/include/asm/pgtable_types.h
+> index 013286a..0a11293 100644
+> --- a/arch/x86/include/asm/pgtable_types.h
+> +++ b/arch/x86/include/asm/pgtable_types.h
+> @@ -301,7 +301,6 @@ int phys_mem_access_prot_allowed(struct file *file, unsigned long pfn,
+>  /* Install a pte for a particular vaddr in kernel space. */
+>  void set_pte_vaddr(unsigned long vaddr, pte_t pte);
+>  
+> -extern void native_pagetable_reserve(u64 start, u64 end);
+>  #ifdef CONFIG_X86_32
+>  extern void native_pagetable_setup_start(pgd_t *base);
+>  extern void native_pagetable_setup_done(pgd_t *base);
+> diff --git a/arch/x86/include/asm/x86_init.h b/arch/x86/include/asm/x86_init.h
+> index 38155f6..b527dd4 100644
+> --- a/arch/x86/include/asm/x86_init.h
+> +++ b/arch/x86/include/asm/x86_init.h
+> @@ -69,17 +69,6 @@ struct x86_init_oem {
+>  };
+>  
+>  /**
+> - * struct x86_init_mapping - platform specific initial kernel pagetable setup
+> - * @pagetable_reserve:      reserve a range of addresses for kernel pagetable usage
+> - *
+> - * For more details on the purpose of this hook, look in
+> - * init_memory_mapping and the commit that added it.
+> - */
+> -struct x86_init_mapping {
+> -    void (*pagetable_reserve)(u64 start, u64 end);
+> -};
+> -
+> -/**
+>   * struct x86_init_paging - platform specific paging functions
+>   * @pagetable_setup_start:  platform specific pre paging_init() call
+>   * @pagetable_setup_done:   platform specific post paging_init() call
+> @@ -135,7 +124,6 @@ struct x86_init_ops {
+>      struct x86_init_mpparse         mpparse;
+>      struct x86_init_irqs            irqs;
+>      struct x86_init_oem             oem;
+> -    struct x86_init_mapping         mapping;
+>      struct x86_init_paging          paging;
+>      struct x86_init_timers          timers;
+>      struct x86_init_iommu           iommu;
+> diff --git a/arch/x86/kernel/x86_init.c b/arch/x86/kernel/x86_init.c
+> index 9f3167e..040c05f 100644
+> --- a/arch/x86/kernel/x86_init.c
+> +++ b/arch/x86/kernel/x86_init.c
+> @@ -63,10 +63,6 @@ struct x86_init_ops x86_init __initdata = {
+>              .banner                 = default_banner,
+>      },
+>  
+> -    .mapping = {
+> -            .pagetable_reserve              = native_pagetable_reserve,
+> -    },
+> -
+>      .paging = {
+>              .pagetable_setup_start  = native_pagetable_setup_start,
+>              .pagetable_setup_done   = native_pagetable_setup_done,
+> diff --git a/arch/x86/mm/init.c b/arch/x86/mm/init.c
+> index e0e6990..c449873 100644
+> --- a/arch/x86/mm/init.c
+> +++ b/arch/x86/mm/init.c
+> @@ -90,11 +90,6 @@ static void __init find_early_table_space(struct map_range *mr, unsigned long en
+>              (pgt_buf_top << PAGE_SHIFT) - 1);
+>  }
+>  
+> -void __init native_pagetable_reserve(u64 start, u64 end)
+> -{
+> -    memblock_reserve(start, end - start);
+> -}
+> -
+>  #ifdef CONFIG_X86_32
+>  #define NR_RANGE_MR 3
+>  #else /* CONFIG_X86_64 */
+> @@ -283,22 +278,11 @@ unsigned long __init_refok init_memory_mapping(unsigned long start,
+>  
+>      /*
+>       * Reserve the kernel pagetable pages we used (pgt_buf_start -
+> -     * pgt_buf_end) and free the other ones (pgt_buf_end - pgt_buf_top)
+> -     * so that they can be reused for other purposes.
+> -     *
+> -     * On native it just means calling memblock_reserve, on Xen it also
+> -     * means marking RW the pagetable pages that we allocated before
+> -     * but that haven't been used.
+> -     *
+> -     * In fact on xen we mark RO the whole range pgt_buf_start -
+> -     * pgt_buf_top, because we have to make sure that when
+> -     * init_memory_mapping reaches the pagetable pages area, it maps
+> -     * RO all the pagetable pages, including the ones that are beyond
+> -     * pgt_buf_end at that time.
+> +     * pgt_buf_end).
+>       */
+>      if (!after_bootmem && pgt_buf_end > pgt_buf_start)
+> -            x86_init.mapping.pagetable_reserve(PFN_PHYS(pgt_buf_start),
+> -                            PFN_PHYS(pgt_buf_end));
+> +            memblock_reserve(PFN_PHYS(pgt_buf_start),
+> +                             PFN_PHYS(pgt_buf_end) - PFN_PHYS(pgt_buf_start));
+>  
+>      if (!after_bootmem)
+>              early_memtest(start, end);
+> diff --git a/arch/x86/xen/mmu.c b/arch/x86/xen/mmu.c
+> index b65a761..e55dfc0 100644
+> --- a/arch/x86/xen/mmu.c
+> +++ b/arch/x86/xen/mmu.c
+> @@ -1178,20 +1178,6 @@ static void __init xen_pagetable_setup_start(pgd_t *base)
+>  {
+>  }
+>  
+> -static __init void xen_mapping_pagetable_reserve(u64 start, u64 end)
+> -{
+> -    /* reserve the range used */
+> -    native_pagetable_reserve(start, end);
+> -
+> -    /* set as RW the rest */
+> -    printk(KERN_DEBUG "xen: setting RW the range %llx - %llx\n", end,
+> -                    PFN_PHYS(pgt_buf_top));
+> -    while (end < PFN_PHYS(pgt_buf_top)) {
+> -            make_lowmem_page_readwrite(__va(end));
+> -            end += PAGE_SIZE;
+> -    }
+> -}
+> -
+>  static void xen_post_allocator_init(void);
+>  
+>  static void __init xen_pagetable_setup_done(pgd_t *base)
+> @@ -2067,7 +2053,6 @@ static const struct pv_mmu_ops xen_mmu_ops __initconst = {
+>  
+>  void __init xen_init_mmu_ops(void)
+>  {
+> -    x86_init.mapping.pagetable_reserve = xen_mapping_pagetable_reserve;
+>      x86_init.paging.pagetable_setup_start = xen_pagetable_setup_start;
+>      x86_init.paging.pagetable_setup_done = xen_pagetable_setup_done;
+>      pv_mmu_ops = xen_mmu_ops;
+> -- 
+> 1.7.2.5
+> 
+> 
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<alpine.DEB.2.02.1208151824250.2278@kaball.uk.xensource.com> b/config/examples/test/corpus/<alpine.DEB.2.02.1208151824250.2278@kaball.uk.xensource.com>
new file mode 100644 (file)
index 0000000..6a0d57c
--- /dev/null
@@ -0,0 +1,164 @@
+From xen-devel-bounces@lists.xen.org Wed Aug 15 18:30:39 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 15 Aug 2012 18:30:39 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T1hQT-0007Pl-7V
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 15 Aug 2012 18:30:39 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T1hM8-0004Av-NF; Wed, 15 Aug 2012 17:26:08 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1T1hM7-0004Ap-ED
+       for xen-devel@lists.xen.org; Wed, 15 Aug 2012 17:26:07 +0000
+Received: from [85.158.139.83:32309] by server-10.bemta-5.messagelabs.com id
+       2F/9C-13125-EABDB205; Wed, 15 Aug 2012 17:26:06 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-4.tower-182.messagelabs.com!1345051566!25595208!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDkxOTE=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 21747 invoked from network); 15 Aug 2012 17:26:06 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-4.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
+       15 Aug 2012 17:26:06 -0000
+X-IronPort-AV: E=Sophos;i="4.77,774,1336348800"; d="scan'208";a="14024949"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       15 Aug 2012 17:26:05 +0000
+Received: from kaball.uk.xensource.com (10.80.2.59) by
+       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
+       8.3.213.0; Wed, 15 Aug 2012 18:26:05 +0100
+Date: Wed, 15 Aug 2012 18:25:49 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-X-Sender: sstabellini@kaball.uk.xensource.com
+To: Attilio Rao <attilio.rao@citrix.com>
+In-Reply-To: <1344947062-4796-2-git-send-email-attilio.rao@citrix.com>
+Message-ID: <alpine.DEB.2.02.1208151824250.2278@kaball.uk.xensource.com>
+References: <1344947062-4796-1-git-send-email-attilio.rao@citrix.com>
+       <1344947062-4796-2-git-send-email-attilio.rao@citrix.com>
+User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
+MIME-Version: 1.0
+Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH v2 1/2] XEN,
+ X86: Improve semantic support for pagetable_reserve PVOPS
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Tue, 14 Aug 2012, Attilio Rao wrote:
+> - Allow xen_mapping_pagetable_reserve() to handle a start different from
+>   pgt_buf_start, but still bigger than it.
+> - Add checks to xen_mapping_pagetable_reserve() and native_pagetable_reserve()
+>   for verifying start and end are contained in the range
+>   [pgt_buf_start, pgt_buf_top].
+> - In xen_mapping_pagetable_reserve(), change printk into pr_debug.
+> - In xen_mapping_pagetable_reserve(), print out diagnostic only if there is
+>   an actual need to do that (or, in other words, if there are actually some
+>   pages going to switch from RO to RW).
+> 
+> Signed-off-by: Attilio Rao <attilio.rao@citrix.com>
+> ---
+>  arch/x86/mm/init.c |    4 ++++
+>  arch/x86/xen/mmu.c |   22 ++++++++++++++++++++--
+>  2 files changed, 24 insertions(+), 2 deletions(-)
+> 
+> diff --git a/arch/x86/mm/init.c b/arch/x86/mm/init.c
+> index e0e6990..c5849b6 100644
+> --- a/arch/x86/mm/init.c
+> +++ b/arch/x86/mm/init.c
+> @@ -92,6 +92,10 @@ static void __init find_early_table_space(struct map_range *mr, unsigned long en
+>  
+>  void __init native_pagetable_reserve(u64 start, u64 end)
+>  {
+> +    if (start < PFN_PHYS(pgt_buf_start) || end > PFN_PHYS(pgt_buf_top))
+> +            panic("Invalid address range: [%llu - %llu] should be a subset of [%llu - %llu]\n"
+
+code style (you can check whether your patch breaks the code style with
+scripts/checkpatch.pl)
+
+> +                    start, end, PFN_PHYS(pgt_buf_start),
+> +                    PFN_PHYS(pgt_buf_top));
+>      memblock_reserve(start, end - start);
+>  }
+>  
+> diff --git a/arch/x86/xen/mmu.c b/arch/x86/xen/mmu.c
+> index b65a761..66d73a2 100644
+> --- a/arch/x86/xen/mmu.c
+> +++ b/arch/x86/xen/mmu.c
+> @@ -1180,12 +1180,30 @@ static void __init xen_pagetable_setup_start(pgd_t *base)
+>  
+>  static __init void xen_mapping_pagetable_reserve(u64 start, u64 end)
+>  {
+> +    u64 begin;
+> +
+> +    begin = PFN_PHYS(pgt_buf_start);
+> +
+> +    if (start < begin || end > PFN_PHYS(pgt_buf_top))
+> +            panic("Invalid address range: [%llu - %llu] should be a subset of [%llu - %llu]\n"
+
+code style
+
+> +                    start, end, begin, PFN_PHYS(pgt_buf_top));
+> +
+> +    /* set RW the initial range */
+> +    if  (start != begin)
+> +            pr_debug("xen: setting RW the range %llx - %llx\n",
+> +                    begin, start);
+> +    while (begin < start) {
+> +            make_lowmem_page_readwrite(__va(begin));
+> +            begin += PAGE_SIZE;
+> +    }
+> +
+>      /* reserve the range used */
+>      native_pagetable_reserve(start, end);
+>  
+>      /* set as RW the rest */
+> -    printk(KERN_DEBUG "xen: setting RW the range %llx - %llx\n", end,
+> -                    PFN_PHYS(pgt_buf_top));
+> +    if (end != PFN_PHYS(pgt_buf_top))
+> +            pr_debug("xen: setting RW the range %llx - %llx\n",
+> +                    end, PFN_PHYS(pgt_buf_top));
+>      while (end < PFN_PHYS(pgt_buf_top)) {
+>              make_lowmem_page_readwrite(__va(end));
+>              end += PAGE_SIZE;
+> -- 
+> 1.7.2.5
+> 
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<alpine.DEB.2.02.1208151833110.2278@kaball.uk.xensource.com> b/config/examples/test/corpus/<alpine.DEB.2.02.1208151833110.2278@kaball.uk.xensource.com>
new file mode 100644 (file)
index 0000000..011bb32
--- /dev/null
@@ -0,0 +1,166 @@
+From xen-devel-bounces@lists.xen.org Wed Aug 15 18:37:57 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 15 Aug 2012 18:37:57 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T1hXX-0007RP-Bh
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 15 Aug 2012 18:37:57 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T1hTe-0004Ty-0M; Wed, 15 Aug 2012 17:33:54 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1T1hTb-0004Tt-Dl
+       for xen-devel@lists.xen.org; Wed, 15 Aug 2012 17:33:51 +0000
+Received: from [85.158.143.99:32396] by server-3.bemta-4.messagelabs.com id
+       4F/FF-09529-E7DDB205; Wed, 15 Aug 2012 17:33:50 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-4.tower-216.messagelabs.com!1345052028!23073282!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDkxOTE=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 14253 invoked from network); 15 Aug 2012 17:33:49 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-4.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
+       15 Aug 2012 17:33:49 -0000
+X-IronPort-AV: E=Sophos;i="4.77,774,1336348800"; d="scan'208";a="14025024"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       15 Aug 2012 17:33:48 +0000
+Received: from kaball.uk.xensource.com (10.80.2.59) by
+       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
+       8.3.213.0; Wed, 15 Aug 2012 18:33:48 +0100
+Date: Wed, 15 Aug 2012 18:33:33 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-X-Sender: sstabellini@kaball.uk.xensource.com
+To: Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+In-Reply-To: <alpine.DEB.2.02.1208151824250.2278@kaball.uk.xensource.com>
+Message-ID: <alpine.DEB.2.02.1208151833110.2278@kaball.uk.xensource.com>
+References: <1344947062-4796-1-git-send-email-attilio.rao@citrix.com>
+       <1344947062-4796-2-git-send-email-attilio.rao@citrix.com>
+       <alpine.DEB.2.02.1208151824250.2278@kaball.uk.xensource.com>
+User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
+MIME-Version: 1.0
+Cc: Attilio Rao <attilio.rao@citrix.com>,
+       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH v2 1/2] XEN,
+ X86: Improve semantic support for pagetable_reserve PVOPS
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+You can add me acked-by, once you do these changes
+
+On Wed, 15 Aug 2012, Stefano Stabellini wrote:
+> On Tue, 14 Aug 2012, Attilio Rao wrote:
+> > - Allow xen_mapping_pagetable_reserve() to handle a start different from
+> >   pgt_buf_start, but still bigger than it.
+> > - Add checks to xen_mapping_pagetable_reserve() and native_pagetable_reserve()
+> >   for verifying start and end are contained in the range
+> >   [pgt_buf_start, pgt_buf_top].
+> > - In xen_mapping_pagetable_reserve(), change printk into pr_debug.
+> > - In xen_mapping_pagetable_reserve(), print out diagnostic only if there is
+> >   an actual need to do that (or, in other words, if there are actually some
+> >   pages going to switch from RO to RW).
+> > 
+> > Signed-off-by: Attilio Rao <attilio.rao@citrix.com>
+> > ---
+> >  arch/x86/mm/init.c |    4 ++++
+> >  arch/x86/xen/mmu.c |   22 ++++++++++++++++++++--
+> >  2 files changed, 24 insertions(+), 2 deletions(-)
+> > 
+> > diff --git a/arch/x86/mm/init.c b/arch/x86/mm/init.c
+> > index e0e6990..c5849b6 100644
+> > --- a/arch/x86/mm/init.c
+> > +++ b/arch/x86/mm/init.c
+> > @@ -92,6 +92,10 @@ static void __init find_early_table_space(struct map_range *mr, unsigned long en
+> >  
+> >  void __init native_pagetable_reserve(u64 start, u64 end)
+> >  {
+> > +  if (start < PFN_PHYS(pgt_buf_start) || end > PFN_PHYS(pgt_buf_top))
+> > +          panic("Invalid address range: [%llu - %llu] should be a subset of [%llu - %llu]\n"
+> 
+> code style (you can check whether your patch breaks the code style with
+> scripts/checkpatch.pl)
+> 
+> > +                  start, end, PFN_PHYS(pgt_buf_start),
+> > +                  PFN_PHYS(pgt_buf_top));
+> >    memblock_reserve(start, end - start);
+> >  }
+> >  
+> > diff --git a/arch/x86/xen/mmu.c b/arch/x86/xen/mmu.c
+> > index b65a761..66d73a2 100644
+> > --- a/arch/x86/xen/mmu.c
+> > +++ b/arch/x86/xen/mmu.c
+> > @@ -1180,12 +1180,30 @@ static void __init xen_pagetable_setup_start(pgd_t *base)
+> >  
+> >  static __init void xen_mapping_pagetable_reserve(u64 start, u64 end)
+> >  {
+> > +  u64 begin;
+> > +
+> > +  begin = PFN_PHYS(pgt_buf_start);
+> > +
+> > +  if (start < begin || end > PFN_PHYS(pgt_buf_top))
+> > +          panic("Invalid address range: [%llu - %llu] should be a subset of [%llu - %llu]\n"
+> 
+> code style
+> 
+> > +                  start, end, begin, PFN_PHYS(pgt_buf_top));
+> > +
+> > +  /* set RW the initial range */
+> > +  if  (start != begin)
+> > +          pr_debug("xen: setting RW the range %llx - %llx\n",
+> > +                  begin, start);
+> > +  while (begin < start) {
+> > +          make_lowmem_page_readwrite(__va(begin));
+> > +          begin += PAGE_SIZE;
+> > +  }
+> > +
+> >    /* reserve the range used */
+> >    native_pagetable_reserve(start, end);
+> >  
+> >    /* set as RW the rest */
+> > -  printk(KERN_DEBUG "xen: setting RW the range %llx - %llx\n", end,
+> > -                  PFN_PHYS(pgt_buf_top));
+> > +  if (end != PFN_PHYS(pgt_buf_top))
+> > +          pr_debug("xen: setting RW the range %llx - %llx\n",
+> > +                  end, PFN_PHYS(pgt_buf_top));
+> >    while (end < PFN_PHYS(pgt_buf_top)) {
+> >            make_lowmem_page_readwrite(__va(end));
+> >            end += PAGE_SIZE;
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<alpine.DEB.2.02.1208151844230.2278@kaball.uk.xensource.com> b/config/examples/test/corpus/<alpine.DEB.2.02.1208151844230.2278@kaball.uk.xensource.com>
new file mode 100644 (file)
index 0000000..f0e6f4a
--- /dev/null
@@ -0,0 +1,131 @@
+From xen-devel-bounces@lists.xen.org Wed Aug 15 18:50:59 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 15 Aug 2012 18:50:59 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T1hk8-0007TF-RK
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 15 Aug 2012 18:50:59 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T1hgG-0004mA-Lx; Wed, 15 Aug 2012 17:46:56 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1T1hgE-0004m5-Ld
+       for xen-devel@lists.xen.org; Wed, 15 Aug 2012 17:46:54 +0000
+Received: from [85.158.139.83:11774] by server-12.bemta-5.messagelabs.com id
+       83/9F-22359-D80EB205; Wed, 15 Aug 2012 17:46:53 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-11.tower-182.messagelabs.com!1345052813!21087712!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDkxOTE=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 4979 invoked from network); 15 Aug 2012 17:46:53 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-11.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
+       15 Aug 2012 17:46:53 -0000
+X-IronPort-AV: E=Sophos;i="4.77,774,1336348800"; d="scan'208";a="14025129"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       15 Aug 2012 17:46:30 +0000
+Received: from kaball.uk.xensource.com (10.80.2.59) by
+       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
+       8.3.213.0; Wed, 15 Aug 2012 18:46:30 +0100
+Date: Wed, 15 Aug 2012 18:46:14 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-X-Sender: sstabellini@kaball.uk.xensource.com
+To: Attilio Rao <attilio.rao@citrix.com>
+In-Reply-To: <502BD943.8030701@citrix.com>
+Message-ID: <alpine.DEB.2.02.1208151844230.2278@kaball.uk.xensource.com>
+References: <1344947062-4796-1-git-send-email-attilio.rao@citrix.com>
+       <1344947062-4796-2-git-send-email-attilio.rao@citrix.com>
+       <alpine.DEB.2.02.1208151824250.2278@kaball.uk.xensource.com>
+       <502BD943.8030701@citrix.com>
+User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
+       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH v2 1/2] XEN,
+ X86: Improve semantic support for pagetable_reserve PVOPS
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Wed, 15 Aug 2012, Attilio Rao wrote:
+> On 15/08/12 18:25, Stefano Stabellini wrote:
+> > On Tue, 14 Aug 2012, Attilio Rao wrote:
+> >    
+> >> - Allow xen_mapping_pagetable_reserve() to handle a start different from
+> >>    pgt_buf_start, but still bigger than it.
+> >> - Add checks to xen_mapping_pagetable_reserve() and native_pagetable_reserve()
+> >>    for verifying start and end are contained in the range
+> >>    [pgt_buf_start, pgt_buf_top].
+> >> - In xen_mapping_pagetable_reserve(), change printk into pr_debug.
+> >> - In xen_mapping_pagetable_reserve(), print out diagnostic only if there is
+> >>    an actual need to do that (or, in other words, if there are actually some
+> >>    pages going to switch from RO to RW).
+> >>
+> >> Signed-off-by: Attilio Rao<attilio.rao@citrix.com>
+> >> ---
+> >>   arch/x86/mm/init.c |    4 ++++
+> >>   arch/x86/xen/mmu.c |   22 ++++++++++++++++++++--
+> >>   2 files changed, 24 insertions(+), 2 deletions(-)
+> >>
+> >> diff --git a/arch/x86/mm/init.c b/arch/x86/mm/init.c
+> >> index e0e6990..c5849b6 100644
+> >> --- a/arch/x86/mm/init.c
+> >> +++ b/arch/x86/mm/init.c
+> >> @@ -92,6 +92,10 @@ static void __init find_early_table_space(struct map_range *mr, unsigned long en
+> >>
+> >>   void __init native_pagetable_reserve(u64 start, u64 end)
+> >>   {
+> >> + if (start<  PFN_PHYS(pgt_buf_start) || end>  PFN_PHYS(pgt_buf_top))
+> >> +         panic("Invalid address range: [%llu - %llu] should be a subset of [%llu - %llu]\n"
+> >>      
+> > code style (you can check whether your patch breaks the code style with
+> > scripts/checkpatch.pl)
+> >    
+> 
+> I actually did before to submit, it reported 0 errors/warning.
+
+strange, that really looks like a line over 80 chars
+
+
+> Do you have an handy link on where I can find a style guide for Linux 
+> kernel? I tried to follow what other parts of the code do.
+
+Documentation/CodingStyle
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<alpine.DEB.2.02.1208151846410.2278@kaball.uk.xensource.com> b/config/examples/test/corpus/<alpine.DEB.2.02.1208151846410.2278@kaball.uk.xensource.com>
new file mode 100644 (file)
index 0000000..9fe2c43
--- /dev/null
@@ -0,0 +1,132 @@
+From xen-devel-bounces@lists.xen.org Wed Aug 15 18:51:02 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 15 Aug 2012 18:51:02 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T1hkC-0007Tb-8e
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 15 Aug 2012 18:51:02 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T1hgT-0004nJ-9y; Wed, 15 Aug 2012 17:47:09 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1T1hgR-0004n6-D4
+       for xen-devel@lists.xen.org; Wed, 15 Aug 2012 17:47:07 +0000
+Received: from [85.158.143.99:48525] by server-3.bemta-4.messagelabs.com id
+       65/98-09529-A90EB205; Wed, 15 Aug 2012 17:47:06 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-4.tower-216.messagelabs.com!1345052826!23074472!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDkxOTE=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 32552 invoked from network); 15 Aug 2012 17:47:06 -0000
+Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-4.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
+       15 Aug 2012 17:47:06 -0000
+X-IronPort-AV: E=Sophos;i="4.77,774,1336348800"; d="scan'208";a="14025132"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       15 Aug 2012 17:47:06 +0000
+Received: from kaball.uk.xensource.com (10.80.2.59) by
+       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
+       8.3.213.0; Wed, 15 Aug 2012 18:47:06 +0100
+Date: Wed, 15 Aug 2012 18:46:50 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-X-Sender: sstabellini@kaball.uk.xensource.com
+To: Attilio Rao <attilio.rao@citrix.com>
+In-Reply-To: <1344947062-4796-3-git-send-email-attilio.rao@citrix.com>
+Message-ID: <alpine.DEB.2.02.1208151846410.2278@kaball.uk.xensource.com>
+References: <1344947062-4796-1-git-send-email-attilio.rao@citrix.com>
+       <1344947062-4796-3-git-send-email-attilio.rao@citrix.com>
+User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
+MIME-Version: 1.0
+Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH v2 2/2] Xen: Document the semantic of the
+ pagetable_reserve PVOPS
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Tue, 14 Aug 2012, Attilio Rao wrote:
+> The informations added on the hook are:
+> - Native behaviour
+> - Xen specific behaviour
+> - Logic behind the Xen specific behaviour
+> - PVOPS semantic
+> 
+> Signed-off-by: Attilio Rao <attilio.rao@citrix.com>
+
+Acked-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+
+>  arch/x86/include/asm/x86_init.h |   19 +++++++++++++++++--
+>  1 files changed, 17 insertions(+), 2 deletions(-)
+> 
+> diff --git a/arch/x86/include/asm/x86_init.h b/arch/x86/include/asm/x86_init.h
+> index 38155f6..b22093c 100644
+> --- a/arch/x86/include/asm/x86_init.h
+> +++ b/arch/x86/include/asm/x86_init.h
+> @@ -72,8 +72,23 @@ struct x86_init_oem {
+>   * struct x86_init_mapping - platform specific initial kernel pagetable setup
+>   * @pagetable_reserve:      reserve a range of addresses for kernel pagetable usage
+>   *
+> - * For more details on the purpose of this hook, look in
+> - * init_memory_mapping and the commit that added it.
+> + * It does reserve a range of pages, to be used as pagetable pages.
+> + * The start and end parameters are expected to be contained in the
+> + * [pgt_buf_start, pgt_buf_top] range.
+> + * The native implementation reserves the pages via the memblock_reserve()
+> + * interface.
+> + * The Xen implementation, besides reserving the range via memblock_reserve(),
+> + * also sets RW the remaining pages contained in the ranges
+> + * [pgt_buf_start, start) and [end, pgt_buf_top).
+> + * This is needed because the range [pgt_buf_start, pgt_buf_top] was
+> + * previously mapped read-only by xen_set_pte_init: when running
+> + * on Xen all the pagetable pages need to be mapped read-only in order to
+> + * avoid protection faults from the hypervisor. However, once the correct
+> + * amount of pages is reserved for the pagetables, all the others contained
+> + * in the range must be set to RW so that they can be correctly recycled by
+> + * the VM subsystem.
+> + * This operation is meant to be performed only during init_memory_mapping(),
+> + * just after space for the kernel direct mapping tables is found.
+>   */
+>  struct x86_init_mapping {
+>      void (*pagetable_reserve)(u64 start, u64 end);
+> -- 
+> 1.7.2.5
+> 
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<alpine.DEB.2.02.1208161053350.2278@kaball.uk.xensource.com> b/config/examples/test/corpus/<alpine.DEB.2.02.1208161053350.2278@kaball.uk.xensource.com>
new file mode 100644 (file)
index 0000000..c6d3cfa
--- /dev/null
@@ -0,0 +1,144 @@
+From xen-devel-bounces@lists.xen.org Thu Aug 16 10:58:45 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 16 Aug 2012 10:58:45 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T1wqh-0006K9-4e
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 16 Aug 2012 10:58:45 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T1wmH-0004fe-Na; Thu, 16 Aug 2012 09:54:09 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1T1wmF-0004fZ-PW
+       for xen-devel@lists.xen.org; Thu, 16 Aug 2012 09:54:08 +0000
+Received: from [85.158.138.51:25904] by server-5.bemta-3.messagelabs.com id
+       0A/6F-08865-E33CC205; Thu, 16 Aug 2012 09:54:06 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-11.tower-174.messagelabs.com!1345110846!28578127!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDkxOTE=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 25408 invoked from network); 16 Aug 2012 09:54:06 -0000
+Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-11.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
+       16 Aug 2012 09:54:06 -0000
+X-IronPort-AV: E=Sophos;i="4.77,778,1336348800"; d="scan'208";a="14035485"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       16 Aug 2012 09:54:06 +0000
+Received: from kaball.uk.xensource.com (10.80.2.59) by
+       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
+       8.3.213.0; Thu, 16 Aug 2012 10:54:05 +0100
+Date: Thu, 16 Aug 2012 10:53:49 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-X-Sender: sstabellini@kaball.uk.xensource.com
+To: Attilio Rao <attilio.rao@citrix.com>
+In-Reply-To: <502BEEAD.7030906@citrix.com>
+Message-ID: <alpine.DEB.2.02.1208161053350.2278@kaball.uk.xensource.com>
+References: <1344947062-4796-1-git-send-email-attilio.rao@citrix.com>
+       <1344947062-4796-2-git-send-email-attilio.rao@citrix.com>
+       <alpine.DEB.2.02.1208151824250.2278@kaball.uk.xensource.com>
+       <502BD943.8030701@citrix.com>
+       <alpine.DEB.2.02.1208151844230.2278@kaball.uk.xensource.com>
+       <502BEEAD.7030906@citrix.com>
+User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
+       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH v2 1/2] XEN,
+ X86: Improve semantic support for pagetable_reserve PVOPS
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Wed, 15 Aug 2012, Attilio Rao wrote:
+> On 15/08/12 18:46, Stefano Stabellini wrote:
+> > On Wed, 15 Aug 2012, Attilio Rao wrote:
+> >    
+> >> On 15/08/12 18:25, Stefano Stabellini wrote:
+> >>      
+> >>> On Tue, 14 Aug 2012, Attilio Rao wrote:
+> >>>
+> >>>        
+> >>>> - Allow xen_mapping_pagetable_reserve() to handle a start different from
+> >>>>     pgt_buf_start, but still bigger than it.
+> >>>> - Add checks to xen_mapping_pagetable_reserve() and native_pagetable_reserve()
+> >>>>     for verifying start and end are contained in the range
+> >>>>     [pgt_buf_start, pgt_buf_top].
+> >>>> - In xen_mapping_pagetable_reserve(), change printk into pr_debug.
+> >>>> - In xen_mapping_pagetable_reserve(), print out diagnostic only if there is
+> >>>>     an actual need to do that (or, in other words, if there are actually some
+> >>>>     pages going to switch from RO to RW).
+> >>>>
+> >>>> Signed-off-by: Attilio Rao<attilio.rao@citrix.com>
+> >>>> ---
+> >>>>    arch/x86/mm/init.c |    4 ++++
+> >>>>    arch/x86/xen/mmu.c |   22 ++++++++++++++++++++--
+> >>>>    2 files changed, 24 insertions(+), 2 deletions(-)
+> >>>>
+> >>>> diff --git a/arch/x86/mm/init.c b/arch/x86/mm/init.c
+> >>>> index e0e6990..c5849b6 100644
+> >>>> --- a/arch/x86/mm/init.c
+> >>>> +++ b/arch/x86/mm/init.c
+> >>>> @@ -92,6 +92,10 @@ static void __init find_early_table_space(struct map_range *mr, unsigned long en
+> >>>>
+> >>>>    void __init native_pagetable_reserve(u64 start, u64 end)
+> >>>>    {
+> >>>> +       if (start<   PFN_PHYS(pgt_buf_start) || end>   PFN_PHYS(pgt_buf_top))
+> >>>> +               panic("Invalid address range: [%llu - %llu] should be a subset of [%llu - %llu]\n"
+> >>>>
+> >>>>          
+> >>> code style (you can check whether your patch breaks the code style with
+> >>> scripts/checkpatch.pl)
+> >>>
+> >>>        
+> >> I actually did before to submit, it reported 0 errors/warning.
+> >>      
+> > strange, that really looks like a line over 80 chars
+> >
+> >    
+> 
+> Actually code style explicitely says to not break strings because they 
+> want to retain the ability to grep. In FreeBSD this is the same and I 
+> think this is why checkpatch doesn't whine. I don't think there is a bug 
+> here.
+> 
+> Can I submit the patch as it is, then?
+
+it is ok for me
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<alpine.DEB.2.02.1208161200200.2278@kaball.uk.xensource.com> b/config/examples/test/corpus/<alpine.DEB.2.02.1208161200200.2278@kaball.uk.xensource.com>
new file mode 100644 (file)
index 0000000..918d4b3
--- /dev/null
@@ -0,0 +1,218 @@
+From xen-devel-bounces@lists.xen.org Thu Aug 16 12:12:33 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 16 Aug 2012 12:12:33 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T1y06-0006d1-Rr
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 16 Aug 2012 12:12:33 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T1xwW-0008CU-Dm; Thu, 16 Aug 2012 11:08:48 +0000
+Received: from mail27.messagelabs.com ([193.109.254.147])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1T1xwU-0008Bu-Et
+       for xen-devel@lists.xen.org; Thu, 16 Aug 2012 11:08:46 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-15.tower-27.messagelabs.com!1345115278!2213343!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDkyODE=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 22029 invoked from network); 16 Aug 2012 11:07:58 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-15.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
+       16 Aug 2012 11:07:58 -0000
+X-IronPort-AV: E=Sophos;i="4.77,778,1336348800"; d="scan'208";a="14037330"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       16 Aug 2012 11:07:58 +0000
+Received: from kaball.uk.xensource.com (10.80.2.59) by
+       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
+       8.3.213.0; Thu, 16 Aug 2012 12:07:58 +0100
+Date: Thu, 16 Aug 2012 12:07:41 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-X-Sender: sstabellini@kaball.uk.xensource.com
+To: David Vrabel <david.vrabel@citrix.com>
+In-Reply-To: <502BF563.8010902@citrix.com>
+Message-ID: <alpine.DEB.2.02.1208161200200.2278@kaball.uk.xensource.com>
+References: <1344947062-4796-1-git-send-email-attilio.rao@citrix.com>
+       <1344947062-4796-3-git-send-email-attilio.rao@citrix.com>
+       <502A5964.2080509@citrix.com> <502A5CD0.8000201@citrix.com>
+       <502B85D1.8000606@citrix.com>
+       <alpine.DEB.2.02.1208151418380.2278@kaball.uk.xensource.com>
+       <502BF563.8010902@citrix.com>
+User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
+MIME-Version: 1.0
+Cc: Attilio Rao <attilio.rao@citrix.com>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
+       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH v2 2/2] Xen: Document the semantic of the
+ pagetable_reserve PVOPS
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Wed, 15 Aug 2012, David Vrabel wrote:
+> On 15/08/12 14:55, Stefano Stabellini wrote:
+> > On Wed, 15 Aug 2012, David Vrabel wrote:
+> >> On 14/08/12 15:12, Attilio Rao wrote:
+> >>> On 14/08/12 14:57, David Vrabel wrote:
+> >>>> On 14/08/12 13:24, Attilio Rao wrote:
+> >> After looking at it some more, I think this pv-ops is unnecessary. How
+> >> about the following patch to just remove it completely?
+> >>
+> >> I've only smoke-tested 32-bit and 64-bit dom0 but I think the reasoning
+> >> is sound.
+> > 
+> > Do you have more then 4G to dom0 on those boxes?
+> 
+> I've tested with 6G now, both 64-bit and 32-bit with HIGHPTE.
+> 
+> > It certainly fixed a serious crash at the time it was introduced, see
+> > http://marc.info/?l=linux-kernel&m=129901609503574 and
+> > http://marc.info/?l=linux-kernel&m=130133909408229. Unless something big
+> > changed in kernel_physical_mapping_init, I think we still need it.
+> > Depending on the e820 of your test box, the kernel could crash (or not),
+> > possibly in different places.
+> >
+> >>>> Having said that, I couldn't immediately see where pages in (end, 
+> >>>> pgt_buf_top] was getting set RO.  Can you point me to where it's 
+> >>>> done?
+> >>>>
+> >>>
+> >>> As mentioned in the comment, please look at xen_set_pte_init().
+> >>
+> >> xen_set_pte_init() only ensures it doesn't set the PTE as writable if it
+> >> is already present and read-only.
+> > 
+> > look at mask_rw_pte and read the threads linked above, unfortunately it
+> > is not that simple.
+> 
+> Yes, I was remembering what 32-bit did here.
+> 
+> The 64-bit version is a bit confused and it often ends up /not/ clearing
+> RW for the direct mapping of the pages in the pgt_buf because any
+> existing RW mappings will be used as-is.  See phys_pte_init() which
+> checks for an existing mapping and only sets the PTE if it is not
+> already set.
+
+not all the pagetable pages might be already mapped, even if they are
+already hooked into the pagetable
+
+
+> pgd_populate(), pud_populate(), and pmd_populate() take care of clearing
+> RW for the newly allocated page table pages, so mask_rw_pte() only needs
+> to consider clearing RW for mappings of the the existing page table PFNs
+> which all lie outside the range (pt_buf_start, pt_buf_top].
+> 
+> This patch makes it more sensible, and makes removal of the pv-op safe
+> if pgt_buf lies outside the initial mapping.
+> 
+> index 04c1f61..2fd5e86 100644
+> --- a/arch/x86/xen/mmu.c
+> +++ b/arch/x86/xen/mmu.c
+> @@ -1400,14 +1400,13 @@ static pte_t __init mask_rw_pte(pte_t *ptep,
+> pte_t pte)
+>      unsigned long pfn = pte_pfn(pte);
+> 
+>      /*
+> -     * If the new pfn is within the range of the newly allocated
+> -     * kernel pagetable, and it isn't being mapped into an
+> -     * early_ioremap fixmap slot as a freshly allocated page, make sure
+> -     * it is RO.
+> +     * If this is a PTE of an early_ioremap fixmap slot but
+> +     * outside the range (pgt_buf_start, pgt_buf_top], then this
+> +     * PTE is mapping a PFN in the current page table.  Make
+> +     * sure it is RO.
+>       */
+> -    if (((!is_early_ioremap_ptep(ptep) &&
+> -                    pfn >= pgt_buf_start && pfn < pgt_buf_top)) ||
+> -                    (is_early_ioremap_ptep(ptep) && pfn != (pgt_buf_end - 1)))
+> +    if (is_early_ioremap_ptep(ptep)
+> +        && (pfn < pgt_buf_start || pfn >= pgt_buf_top))
+>              pte = pte_wrprotect(pte);
+> 
+>      return pte;
+> 
+
+That's a mistake, you just inverted the condition!
+What if map_low_page is used to map a page already hooked into the
+pagetable? It should be RO while with your change it would be RW.
+Also you don't handle the case when map_low_page is used to map the very
+latest page, allocated and mapped by alloc_low_page, but
+still not hooked into the pagetable: that page needs to be RW.
+
+I believe you need more RAM than 6G to see all these issues.
+
+
+> >> 8<----------------------
+> >> x86: remove x86_init.mapping.pagetable_reserve paravirt op
+> >>
+> >> The x86_init.mapping.pagetable_reserve paravirt op is used for Xen
+> >> guests to set the writable flag for the mapping of (pgt_buf_end,
+> >> pgt_buf_top].  This is not necessary as these pages are never set as
+> >> read-only as they have never contained page tables.
+> > 
+> > Is this actually true? It is possible when pagetable pages are
+> > allocated by alloc_low_page.
+> 
+> These newly allocated page table pages will be set read-only when they
+> are linked into the page tables with pgd_populate(), pud_populate() and
+> friends.
+> 
+> >> When running as a Xen guest, the initial page tables are provided by
+> >> Xen (these are reserved with memblock_reserve() in
+> >> xen_setup_kernel_pagetable()) and constructed in brk space (for 32-bit
+> >> guests) or in the kernel's .data section (for 64-bit guests, see
+> >> head_64.S).
+> >>
+> >> Since these are all marked as reserved, (pgt_buf_start, pgt_buf_top]
+> >> does not overlap with them and the mappings for these PFNs will be
+> >> read-write.
+> > 
+> > We are talking about pagetable pages built by
+> > kernel_physical_mapping_init.
+> > 
+> > 
+> >> Since Xen doesn't need to change the mapping its implementation
+> >> becomes the same as a native and we can simply remove this pv-op
+> >> completely.
+> > 
+> > I don't think so.
+> 
+> David
+> 
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<alpine.DEB.2.02.1208161523420.4850@kaball.uk.xensource.com> b/config/examples/test/corpus/<alpine.DEB.2.02.1208161523420.4850@kaball.uk.xensource.com>
new file mode 100644 (file)
index 0000000..5b1f563
--- /dev/null
@@ -0,0 +1,276 @@
+From xen-devel-bounces@lists.xen.org Thu Aug 16 15:52:51 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 16 Aug 2012 15:52:51 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T21RE-0007YV-Jw
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 16 Aug 2012 15:52:50 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T21N3-0005vW-Bn; Thu, 16 Aug 2012 14:48:25 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1T21N2-0005vR-33
+       for xen-devel@lists.xensource.com; Thu, 16 Aug 2012 14:48:24 +0000
+Received: from [85.158.138.51:23432] by server-3.bemta-3.messagelabs.com id
+       FC/EF-13809-7380D205; Thu, 16 Aug 2012 14:48:23 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-13.tower-174.messagelabs.com!1345128501!9954665!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDkyODE=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 723 invoked from network); 16 Aug 2012 14:48:22 -0000
+Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-13.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
+       16 Aug 2012 14:48:22 -0000
+X-IronPort-AV: E=Sophos;i="4.77,778,1336348800"; d="scan'208";a="14043273"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       16 Aug 2012 14:48:21 +0000
+Received: from kaball.uk.xensource.com (10.80.2.59) by
+       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
+       8.3.213.0; Thu, 16 Aug 2012 15:48:21 +0100
+Date: Thu, 16 Aug 2012 15:48:04 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-X-Sender: sstabellini@kaball.uk.xensource.com
+To: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>
+Message-ID: <alpine.DEB.2.02.1208161523420.4850@kaball.uk.xensource.com>
+User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
+MIME-Version: 1.0
+Content-Type: multipart/mixed;
+       boundary="1342847746-1591267471-1345128021=:4850"
+Content-ID: <alpine.DEB.2.02.1208161541090.4850@kaball.uk.xensource.com>
+Cc: "Tim Deegan \(3P\)" <Tim.Deegan@citrix.com>,
+       Ian Campbell <Ian.Campbell@citrix.com>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: [Xen-devel] [PATCH v3 0/6] ARM hypercall ABI: 64 bit ready
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+--1342847746-1591267471-1345128021=:4850
+Content-Type: text/plain; charset="US-ASCII"
+Content-ID: <alpine.DEB.2.02.1208161541091.4850@kaball.uk.xensource.com>
+
+Hi all,
+this patch series makes the necessary changes to make sure that the
+current ARM hypercall ABI can be used as-is on 64 bit ARM platforms:
+
+- it defines xen_ulong_t as uint64_t on ARM;
+- it introduces a new macro to handle guest pointers, called
+XEN_GUEST_HANDLE_PARAM (that has size 4 bytes on aarch and is going to
+have size 8 bytes on aarch64);
+- it replaces all the occurrences of XEN_GUEST_HANDLE in hypercall
+parameters with XEN_GUEST_HANDLE_PARAM.
+
+
+On x86 and ia64 things should stay exactly the same.
+
+On ARM all the unsigned long and the guest pointers that are members of
+a struct become size 8 byte (both aarch and aarch64).
+However guest pointers that are passed as hypercall arguments in
+registers are going to be 4 bytes on aarch and 8 bytes on aarch64.
+
+In this version of the patch series I have introduced conversion macros
+to convert a XEN_GUEST_HANDLE_PARAM into a XEN_GUEST_HANDLE a vice
+versa. Most of the problematic cases come from xen/arch/x86 code, in
+order to spot them I wrote a simple debug patch that change the
+definition of XEN_GUEST_HANDLE_PARAM to be different from
+XEN_GUEST_HANDLE on x86 too. I am attaching the debug patch to this
+email.
+
+
+
+It is based on Ian's arm-for-4.3 branch. 
+
+
+Changes in v3:
+- default all the guest_handle_* conversion macros to
+  XEN_GUEST_HANDLE_PARAM as return type;
+- add two new guest_handle_to_param and guest_handle_from_param macros
+  to do conversions.
+
+Changes in v2:
+
+- do not use an anonymous union in struct xen_add_to_physmap; 
+- do not replace the unsigned long in x86 specific calls;
+- do not replace the unsigned long in multicall_entry;
+- add missing include "xen.h" in version.h;
+- use proper printf flag for xen_ulong_t in python/xen/lowlevel/xc/xc;
+- add 2 missing #define _XEN_GUEST_HANDLE_PARAM for the compilation of
+the compat code;
+- add a patch to limit the maximum number of extents handled by
+do_memory_op;
+- remove the patch "introduce __lshrdi3 and __aeabi_llsr" that is
+already in the for-4.3 branch.
+
+
+
+Stefano Stabellini (6):
+      xen: improve changes to xen_add_to_physmap
+      xen: xen_ulong_t substitution
+      xen: change the limit of nr_extents to UINT_MAX >> MEMOP_EXTENT_SHIFT
+      xen: introduce XEN_GUEST_HANDLE_PARAM
+      xen: replace XEN_GUEST_HANDLE with XEN_GUEST_HANDLE_PARAM when appropriate
+      xen: more substitutions
+
+ tools/firmware/hvmloader/pci.c           |    2 +-
+ tools/python/xen/lowlevel/xc/xc.c        |    2 +-
+ xen/arch/arm/domain.c                    |    2 +-
+ xen/arch/arm/domctl.c                    |    2 +-
+ xen/arch/arm/hvm.c                       |    2 +-
+ xen/arch/arm/mm.c                        |    4 +-
+ xen/arch/arm/physdev.c                   |    2 +-
+ xen/arch/arm/sysctl.c                    |    2 +-
+ xen/arch/x86/compat.c                    |    2 +-
+ xen/arch/x86/cpu/mcheck/mce.c            |    2 +-
+ xen/arch/x86/domain.c                    |    2 +-
+ xen/arch/x86/domctl.c                    |    2 +-
+ xen/arch/x86/efi/runtime.c               |    2 +-
+ xen/arch/x86/hvm/hvm.c                   |   26 +++++++-------
+ xen/arch/x86/microcode.c                 |    2 +-
+ xen/arch/x86/mm.c                        |   36 ++++++++++++--------
+ xen/arch/x86/mm/hap/hap.c                |    2 +-
+ xen/arch/x86/mm/mem_event.c              |    2 +-
+ xen/arch/x86/mm/paging.c                 |    2 +-
+ xen/arch/x86/mm/shadow/common.c          |    2 +-
+ xen/arch/x86/oprofile/backtrace.c        |    4 ++-
+ xen/arch/x86/oprofile/xenoprof.c         |    6 ++--
+ xen/arch/x86/physdev.c                   |    2 +-
+ xen/arch/x86/platform_hypercall.c        |   10 ++++--
+ xen/arch/x86/sysctl.c                    |    2 +-
+ xen/arch/x86/traps.c                     |    2 +-
+ xen/arch/x86/x86_32/mm.c                 |    2 +-
+ xen/arch/x86/x86_32/traps.c              |    2 +-
+ xen/arch/x86/x86_64/compat/mm.c          |   16 ++++++---
+ xen/arch/x86/x86_64/cpu_idle.c           |    4 ++-
+ xen/arch/x86/x86_64/cpufreq.c            |    4 ++-
+ xen/arch/x86/x86_64/domain.c             |    2 +-
+ xen/arch/x86/x86_64/mm.c                 |    2 +-
+ xen/arch/x86/x86_64/platform_hypercall.c |    1 +
+ xen/arch/x86/x86_64/traps.c              |    2 +-
+ xen/common/compat/domain.c               |    2 +-
+ xen/common/compat/grant_table.c          |    8 ++--
+ xen/common/compat/memory.c               |    4 +-
+ xen/common/compat/multicall.c            |    1 +
+ xen/common/domain.c                      |    2 +-
+ xen/common/domctl.c                      |    2 +-
+ xen/common/event_channel.c               |    2 +-
+ xen/common/grant_table.c                 |   36 ++++++++++----------
+ xen/common/kernel.c                      |    4 +-
+ xen/common/kexec.c                       |   16 ++++----
+ xen/common/memory.c                      |    6 ++--
+ xen/common/multicall.c                   |    2 +-
+ xen/common/schedule.c                    |    2 +-
+ xen/common/sysctl.c                      |    2 +-
+ xen/common/xenoprof.c                    |    8 ++--
+ xen/drivers/acpi/pmstat.c                |    2 +-
+ xen/drivers/char/console.c               |    6 ++--
+ xen/drivers/passthrough/iommu.c          |    2 +-
+ xen/include/asm-arm/guest_access.h       |   19 +++++++++--
+ xen/include/asm-arm/hypercall.h          |    2 +-
+ xen/include/asm-arm/mm.h                 |    2 +-
+ xen/include/asm-x86/guest_access.h       |   19 +++++++++--
+ xen/include/asm-x86/hap.h                |    2 +-
+ xen/include/asm-x86/hypercall.h          |   24 +++++++-------
+ xen/include/asm-x86/mem_event.h          |    2 +-
+ xen/include/asm-x86/mm.h                 |    8 ++--
+ xen/include/asm-x86/paging.h             |    2 +-
+ xen/include/asm-x86/processor.h          |    2 +-
+ xen/include/asm-x86/shadow.h             |    2 +-
+ xen/include/asm-x86/xenoprof.h           |    6 ++--
+ xen/include/public/arch-arm.h            |   30 +++++++++++++----
+ xen/include/public/arch-ia64.h           |    9 +++++
+ xen/include/public/arch-x86/xen.h        |    9 +++++
+ xen/include/public/memory.h              |   11 ++++--
+ xen/include/public/version.h             |    4 ++-
+ xen/include/xen/acpi.h                   |    4 +-
+ xen/include/xen/hypercall.h              |   52 +++++++++++++++---------------
+ xen/include/xen/iommu.h                  |    2 +-
+ xen/include/xen/tmem_xen.h               |    2 +-
+ xen/include/xsm/xsm.h                    |    4 +-
+ xen/xsm/dummy.c                          |    2 +-
+ xen/xsm/flask/flask_op.c                 |    4 +-
+ xen/xsm/flask/hooks.c                    |    2 +-
+ xen/xsm/xsm_core.c                       |    2 +-
+ 79 files changed, 292 insertions(+), 203 deletions(-)
+
+
+Cheers,
+
+Stefano
+--1342847746-1591267471-1345128021=:4850
+Content-Type: text/plain; charset="US-ASCII"; name="debug"
+Content-Transfer-Encoding: BASE64
+Content-ID: <alpine.DEB.2.02.1208161540210.4850@kaball.uk.xensource.com>
+Content-Description: 
+Content-Disposition: attachment; filename="debug"
+
+ZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3B1YmxpYy9hcmNoLXg4Ni94ZW4u
+aCBiL3hlbi9pbmNsdWRlL3B1YmxpYy9hcmNoLXg4Ni94ZW4uaA0KaW5kZXgg
+MGUxMDI2MC4uMDhhNzg4ZSAxMDA2NDQNCi0tLSBhL3hlbi9pbmNsdWRlL3B1
+YmxpYy9hcmNoLXg4Ni94ZW4uaA0KKysrIGIveGVuL2luY2x1ZGUvcHVibGlj
+L2FyY2gteDg2L3hlbi5oDQpAQCAtMzIsNyArMzIsOCBAQA0KIC8qIFN0cnVj
+dHVyYWwgZ3Vlc3QgaGFuZGxlcyBpbnRyb2R1Y2VkIGluIDB4MDAwMzAyMDEu
+ICovDQogI2lmIF9fWEVOX0lOVEVSRkFDRV9WRVJTSU9OX18gPj0gMHgwMDAz
+MDIwMQ0KICNkZWZpbmUgX19fREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUobmFt
+ZSwgdHlwZSkgXA0KLSAgICB0eXBlZGVmIHN0cnVjdCB7IHR5cGUgKnA7IH0g
+X19ndWVzdF9oYW5kbGVfICMjIG5hbWUNCisgICAgdHlwZWRlZiBzdHJ1Y3Qg
+eyB0eXBlICpwOyB9IF9fZ3Vlc3RfaGFuZGxlXyAjIyBuYW1lOyBcDQorICAg
+IHR5cGVkZWYgc3RydWN0IHsgdHlwZSAqcDsgfSBfX2d1ZXN0X2hhbmRsZV9w
+YXJhbV8gIyMgbmFtZQ0KICNlbHNlDQogI2RlZmluZSBfX19ERUZJTkVfWEVO
+X0dVRVNUX0hBTkRMRShuYW1lLCB0eXBlKSBcDQogICAgIHR5cGVkZWYgdHlw
+ZSAqIF9fZ3Vlc3RfaGFuZGxlXyAjIyBuYW1lDQpAQCAtNTIsNyArNTMsNyBA
+QA0KICNkZWZpbmUgREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUobmFtZSkgICBf
+X0RFRklORV9YRU5fR1VFU1RfSEFORExFKG5hbWUsIG5hbWUpDQogI2RlZmlu
+ZSBfX1hFTl9HVUVTVF9IQU5ETEUobmFtZSkgICAgICAgIF9fZ3Vlc3RfaGFu
+ZGxlXyAjIyBuYW1lDQogI2RlZmluZSBYRU5fR1VFU1RfSEFORExFKG5hbWUp
+ICAgICAgICAgIF9fWEVOX0dVRVNUX0hBTkRMRShuYW1lKQ0KLSNkZWZpbmUg
+WEVOX0dVRVNUX0hBTkRMRV9QQVJBTShuYW1lKSAgICBYRU5fR1VFU1RfSEFO
+RExFKG5hbWUpDQorI2RlZmluZSBYRU5fR1VFU1RfSEFORExFX1BBUkFNKG5h
+bWUpICAgIF9fZ3Vlc3RfaGFuZGxlX3BhcmFtXyAjIyBuYW1lDQogI2RlZmlu
+ZSBzZXRfeGVuX2d1ZXN0X2hhbmRsZV9yYXcoaG5kLCB2YWwpICBkbyB7ICho
+bmQpLnAgPSB2YWw7IH0gd2hpbGUgKDApDQogI2lmZGVmIF9fWEVOX1RPT0xT
+X18NCiAjZGVmaW5lIGdldF94ZW5fZ3Vlc3RfaGFuZGxlKHZhbCwgaG5kKSAg
+ZG8geyB2YWwgPSAoaG5kKS5wOyB9IHdoaWxlICgwKQ0K
+
+--1342847746-1591267471-1345128021=:4850
+Content-Type: text/plain; charset="us-ascii"
+MIME-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Content-Disposition: inline
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
+--1342847746-1591267471-1345128021=:4850--
+
+
diff --git a/config/examples/test/corpus/<alpine.DEB.2.02.1208161756140.15568@kaball.uk.xensource.com> b/config/examples/test/corpus/<alpine.DEB.2.02.1208161756140.15568@kaball.uk.xensource.com>
new file mode 100644 (file)
index 0000000..f97e2b8
--- /dev/null
@@ -0,0 +1,163 @@
+From xen-devel-bounces@lists.xen.org Thu Aug 16 18:13:26 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 16 Aug 2012 18:13:26 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T23dJ-0008Vg-1e
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 16 Aug 2012 18:13:26 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T23Yz-0002Yj-PJ; Thu, 16 Aug 2012 17:08:53 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1T23Yy-0002Ye-0Q
+       for xen-devel@lists.xensource.com; Thu, 16 Aug 2012 17:08:52 +0000
+Received: from [85.158.139.83:5122] by server-9.bemta-5.messagelabs.com id
+       FB/34-26123-3292D205; Thu, 16 Aug 2012 17:08:51 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-12.tower-182.messagelabs.com!1345136930!28510343!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDkyODE=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 14545 invoked from network); 16 Aug 2012 17:08:50 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-12.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
+       16 Aug 2012 17:08:50 -0000
+X-IronPort-AV: E=Sophos;i="4.77,780,1336348800"; d="scan'208";a="14046235"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       16 Aug 2012 17:08:50 +0000
+Received: from kaball.uk.xensource.com (10.80.2.59) by
+       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
+       8.3.213.0; Thu, 16 Aug 2012 18:08:50 +0100
+Date: Thu, 16 Aug 2012 18:08:33 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-X-Sender: sstabellini@kaball.uk.xensource.com
+To: Jan Beulich <JBeulich@suse.com>
+In-Reply-To: <502D33B8020000780009596B@nat28.tlf.novell.com>
+Message-ID: <alpine.DEB.2.02.1208161756140.15568@kaball.uk.xensource.com>
+References: <alpine.DEB.2.02.1208161523420.4850@kaball.uk.xensource.com>
+       <1345128612-10323-4-git-send-email-stefano.stabellini@eu.citrix.com>
+       <502D33B8020000780009596B@nat28.tlf.novell.com>
+User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
+       "Tim \(Xen.org\)" <tim@xen.org>, Ian Campbell <Ian.Campbell@citrix.com>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH v3 4/6] xen: introduce XEN_GUEST_HANDLE_PARAM
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Thu, 16 Aug 2012, Jan Beulich wrote:
+> >>> On 16.08.12 at 16:50, Stefano Stabellini <stefano.stabellini@eu.citrix.com> wrote:
+> > --- a/xen/include/public/arch-arm.h
+> > +++ b/xen/include/public/arch-arm.h
+> > @@ -51,18 +51,34 @@
+> >  
+> >  #define XEN_HYPERCALL_TAG   0XEA1
+> >  
+> > +#define uint64_aligned_t uint64_t __attribute__((aligned(8)))
+> >  
+> >  #ifndef __ASSEMBLY__
+> > -#define ___DEFINE_XEN_GUEST_HANDLE(name, type) \
+> > -    typedef struct { type *p; } __guest_handle_ ## name
+> > +#define ___DEFINE_XEN_GUEST_HANDLE(name, type)                  \
+> > +    typedef struct { type *p; }                                 \
+> > +        __guest_handle_ ## name;                                \
+> > +    typedef struct { union { type *p; uint64_aligned_t q; }; }  \
+> > +        __guest_handle_64_ ## name;
+> 
+> Why struct { union { ... } } instead of just union { ... }?
+
+good point :)
+
+
+> > +/*
+> > + * XEN_GUEST_HANDLE represents a guest pointer, when passed as a field
+> > + * in a struct in memory. On ARM is always 8 bytes sizes and 8 bytes
+> > + * aligned.
+> > + * XEN_GUEST_HANDLE_PARAM represent a guest pointer, when passed as an
+> > + * hypercall argument. It is 4 bytes on aarch and 8 bytes on aarch64.
+> > + */
+> >  #define __DEFINE_XEN_GUEST_HANDLE(name, type) \
+> >      ___DEFINE_XEN_GUEST_HANDLE(name, type);   \
+> >      ___DEFINE_XEN_GUEST_HANDLE(const_##name, const type)
+> >  #define DEFINE_XEN_GUEST_HANDLE(name)   __DEFINE_XEN_GUEST_HANDLE(name, name)
+> > -#define __XEN_GUEST_HANDLE(name)        __guest_handle_ ## name
+> > +#define __XEN_GUEST_HANDLE(name)        __guest_handle_64_ ## name
+> >  #define XEN_GUEST_HANDLE(name)          __XEN_GUEST_HANDLE(name)
+> > -#define set_xen_guest_handle_raw(hnd, val)  do { (hnd).p = val; } while (0)
+> > +/* this is going to be changes on 64 bit */
+> > +#define XEN_GUEST_HANDLE_PARAM(name)    __guest_handle_ ## name
+> > +#define set_xen_guest_handle_raw(hnd, val)                  \
+> > +    do { if ( sizeof(hnd) == 8 ) *(uint64_t *)&(hnd) = 0;   \
+> 
+> If you made the "normal" handle a union too, you could avoid
+> the explicit cast (which e.g. gcc, when not passed
+> -fno-strict-aliasing, will choke on) and instead use (hnd).q (and
+> at once avoid the double initialization of the low half).
+> 
+> Also, the condition to do this could be "sizeof(hnd) > sizeof((hnd).p)",
+> usable at once for 64-bit avoiding a full double initialization there.
+> 
+> > +         (hnd).p = val;                                     \
+> 
+> In a public header you certainly want to avoid evaluating a
+> macro argument twice.
+
+That's a really good suggestion.
+I am going to make both handles unions and therefore
+set_xen_guest_handle_raw becomes:
+
+#define set_xen_guest_handle_raw(hnd, val)                  \
+    do { (hnd).q = 0;                                       \
+         (hnd).p = val;                                     \
+    } while ( 0 )
+
+
+> > +    } while ( 0 )
+> >  #ifdef __XEN_TOOLS__
+> >  #define get_xen_guest_handle(val, hnd)  do { val = (hnd).p; } while (0)
+> >  #endif
+> 
+> Seeing the patch I btw realized that there's no easy way to
+> avoid having the type as a second argument in the conversion
+> macros. Nevertheless I still don't like the explicitly specified type
+> there.
+
+I agree, I don't like it either but I couldn't find anything better.
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<alpine.DEB.2.02.1208161801210.15568@kaball.uk.xensource.com> b/config/examples/test/corpus/<alpine.DEB.2.02.1208161801210.15568@kaball.uk.xensource.com>
new file mode 100644 (file)
index 0000000..a96b9c4
--- /dev/null
@@ -0,0 +1,97 @@
+From xen-devel-bounces@lists.xen.org Thu Aug 16 18:14:42 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 16 Aug 2012 18:14:42 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T23eZ-00005T-OO
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 16 Aug 2012 18:14:42 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T23b9-0002e5-9v; Thu, 16 Aug 2012 17:11:07 +0000
+Received: from mail27.messagelabs.com ([193.109.254.147])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1T23b7-0002dr-AH
+       for xen-devel@lists.xen.org; Thu, 16 Aug 2012 17:11:05 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-7.tower-27.messagelabs.com!1345137057!1982603!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDkyODE=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 23769 invoked from network); 16 Aug 2012 17:10:57 -0000
+Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-7.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
+       16 Aug 2012 17:10:57 -0000
+X-IronPort-AV: E=Sophos;i="4.77,780,1336348800"; d="scan'208";a="14046284"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       16 Aug 2012 17:10:57 +0000
+Received: from kaball.uk.xensource.com (10.80.2.59) by
+       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
+       8.3.213.0; Thu, 16 Aug 2012 18:10:57 +0100
+Date: Thu, 16 Aug 2012 18:10:40 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-X-Sender: sstabellini@kaball.uk.xensource.com
+To: Jan Beulich <JBeulich@suse.com>
+In-Reply-To: <502D37D702000078000959F7@nat28.tlf.novell.com>
+Message-ID: <alpine.DEB.2.02.1208161801210.15568@kaball.uk.xensource.com>
+References: <alpine.DEB.2.02.1208161523420.4850@kaball.uk.xensource.com>
+       <1345128612-10323-4-git-send-email-stefano.stabellini@eu.citrix.com>
+       <502D33B8020000780009596B@nat28.tlf.novell.com>
+       <502D37D702000078000959F7@nat28.tlf.novell.com>
+User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
+MIME-Version: 1.0
+Cc: xen-devel <xen-devel@lists.xen.org>, "Tim
+       \(Xen.org\)" <tim@xen.org>, Ian Campbell <Ian.Campbell@citrix.com>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH v3 4/6] xen: introduce XEN_GUEST_HANDLE_PARAM
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Thu, 16 Aug 2012, Jan Beulich wrote:
+> >>> On 16.08.12 at 17:54, "Jan Beulich" <JBeulich@suse.com> wrote:
+> > Seeing the patch I btw realized that there's no easy way to
+> > avoid having the type as a second argument in the conversion
+> > macros. Nevertheless I still don't like the explicitly specified type
+> > there.
+> 
+> Btw - on the architecture(s) where the two handles are identical
+> I would prefer you to make the conversion functions trivial (and
+> thus avoid making use of the "type" parameter), thus allowing
+> the type checking to occur that you currently circumvent.
+
+OK, I can do that.
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<alpine.DEB.2.02.1208171443580.15568@kaball.uk.xensource.com> b/config/examples/test/corpus/<alpine.DEB.2.02.1208171443580.15568@kaball.uk.xensource.com>
new file mode 100644 (file)
index 0000000..05eefc7
--- /dev/null
@@ -0,0 +1,142 @@
+From xen-devel-bounces@lists.xen.org Fri Aug 17 14:51:26 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 17 Aug 2012 14:51:26 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T2MxQ-00082G-48
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 17 Aug 2012 14:51:26 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T2Mtw-00084Q-Ld; Fri, 17 Aug 2012 13:47:48 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1T2Mtu-00084E-Qi
+       for xen-devel@lists.xen.org; Fri, 17 Aug 2012 13:47:47 +0000
+Received: from [85.158.138.51:54366] by server-11.bemta-3.messagelabs.com id
+       AF/A7-23152-18B4E205; Fri, 17 Aug 2012 13:47:45 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-12.tower-174.messagelabs.com!1345211264!20886032!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDk0MzU=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 7826 invoked from network); 17 Aug 2012 13:47:45 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-12.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
+       17 Aug 2012 13:47:45 -0000
+X-IronPort-AV: E=Sophos;i="4.77,784,1336348800"; d="scan'208";a="14061073"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       17 Aug 2012 13:47:44 +0000
+Received: from kaball.uk.xensource.com (10.80.2.59) by
+       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
+       8.3.213.0; Fri, 17 Aug 2012 14:47:44 +0100
+Date: Fri, 17 Aug 2012 14:47:27 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-X-Sender: sstabellini@kaball.uk.xensource.com
+To: Jan Beulich <JBeulich@suse.com>
+In-Reply-To: <502E2F090200007800095D62@nat28.tlf.novell.com>
+Message-ID: <alpine.DEB.2.02.1208171443580.15568@kaball.uk.xensource.com>
+References: <alpine.DEB.2.02.1208161523420.4850@kaball.uk.xensource.com>
+       <1345128612-10323-4-git-send-email-stefano.stabellini@eu.citrix.com>
+       <502D33B8020000780009596B@nat28.tlf.novell.com>
+       <502D37D702000078000959F7@nat28.tlf.novell.com>
+       <alpine.DEB.2.02.1208161801210.15568@kaball.uk.xensource.com>
+       <1345190532.30865.67.camel@zakaz.uk.xensource.com>
+       <502E2F090200007800095D62@nat28.tlf.novell.com>
+User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
+MIME-Version: 1.0
+Cc: xen-devel <xen-devel@lists.xen.org>, "Tim \(Xen.org\)" <tim@xen.org>,
+       Ian Campbell <Ian.Campbell@citrix.com>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH v3 4/6] xen: introduce XEN_GUEST_HANDLE_PARAM
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Fri, 17 Aug 2012, Jan Beulich wrote:
+> >>> On 17.08.12 at 10:02, Ian Campbell <Ian.Campbell@citrix.com> wrote:
+> > On Thu, 2012-08-16 at 18:10 +0100, Stefano Stabellini wrote:
+> >> On Thu, 16 Aug 2012, Jan Beulich wrote:
+> >> > >>> On 16.08.12 at 17:54, "Jan Beulich" <JBeulich@suse.com> wrote:
+> >> > > Seeing the patch I btw realized that there's no easy way to
+> >> > > avoid having the type as a second argument in the conversion
+> >> > > macros. Nevertheless I still don't like the explicitly specified type
+> >> > > there.
+> >> > 
+> >> > Btw - on the architecture(s) where the two handles are identical
+> >> > I would prefer you to make the conversion functions trivial (and
+> >> > thus avoid making use of the "type" parameter), thus allowing
+> >> > the type checking to occur that you currently circumvent.
+> >> 
+> >> OK, I can do that.
+> > 
+> > Will this result in the type parameter potentially becoming stale?
+> > 
+> > Adding a redundant pointer compare is a good way to get the compiler to
+> > catch this. Smth like;
+> > 
+> >         /* Cast a XEN_GUEST_HANDLE_PARAM to XEN_GUEST_HANDLE */
+> >         #define guest_handle_from_param(hnd, type) ({
+> >             typeof((hnd).p) _x = (hnd).p;
+> >             XEN_GUEST_HANDLE(type) _y;
+> >             &_y == &_x;
+> >             hnd;
+> >          })
+> 
+> Ah yes, that's a good suggestion.
+> 
+> > I'm not sure which two pointers of members of the various structs need
+> > to be compared, maybe it's actually &_y.p and &hnd.p, but you get the
+> > idea...
+> 
+> Right, comparing (hnd).p with _y.p would be the right thing; no
+> need for _x, but some other (mechanical) adjustments would be
+> necessary.
+
+The _x variable is still useful to avoid multiple evaluations of hnd,
+even though I know that this is not a public header.
+
+What about the following:
+
+/* Cast a XEN_GUEST_HANDLE to XEN_GUEST_HANDLE_PARAM */
+#define guest_handle_to_param(hnd, type) ({                \
+    typeof((hnd).p) _x = (hnd).p;                          \
+    XEN_GUEST_HANDLE_PARAM(type) _y = { _x };              \
+    if (&_x != &_y.p) BUG();                               \
+    _y;                                                    \
+})
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<alpine.DEB.2.02.1208171450420.15568@kaball.uk.xensource.com> b/config/examples/test/corpus/<alpine.DEB.2.02.1208171450420.15568@kaball.uk.xensource.com>
new file mode 100644 (file)
index 0000000..51c080d
--- /dev/null
@@ -0,0 +1,119 @@
+From xen-devel-bounces@lists.xen.org Fri Aug 17 14:54:52 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 17 Aug 2012 14:54:52 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T2N0j-00083c-TC
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 17 Aug 2012 14:54:52 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T2MxS-0000Bu-1X; Fri, 17 Aug 2012 13:51:26 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1T2MxQ-0000Bg-Cm
+       for xen-devel@lists.xensource.com; Fri, 17 Aug 2012 13:51:24 +0000
+Received: from [85.158.139.83:24763] by server-11.bemta-5.messagelabs.com id
+       D0/48-29296-B5C4E205; Fri, 17 Aug 2012 13:51:23 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-6.tower-182.messagelabs.com!1345211483!24818175!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDk0MzU=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 1696 invoked from network); 17 Aug 2012 13:51:23 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-6.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
+       17 Aug 2012 13:51:23 -0000
+X-IronPort-AV: E=Sophos;i="4.77,785,1336348800"; d="scan'208";a="14061162"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       17 Aug 2012 13:51:22 +0000
+Received: from kaball.uk.xensource.com (10.80.2.59) by
+       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
+       8.3.213.0; Fri, 17 Aug 2012 14:51:22 +0100
+Date: Fri, 17 Aug 2012 14:51:05 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-X-Sender: sstabellini@kaball.uk.xensource.com
+To: Jan Beulich <JBeulich@suse.com>
+In-Reply-To: <502E285A0200007800095D04@nat28.tlf.novell.com>
+Message-ID: <alpine.DEB.2.02.1208171450420.15568@kaball.uk.xensource.com>
+References: <alpine.DEB.2.02.1208161523420.4850@kaball.uk.xensource.com>
+       <1345128612-10323-4-git-send-email-stefano.stabellini@eu.citrix.com>
+       <502D33B8020000780009596B@nat28.tlf.novell.com>
+       <alpine.DEB.2.02.1208161756140.15568@kaball.uk.xensource.com>
+       <502E285A0200007800095D04@nat28.tlf.novell.com>
+User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
+       "Tim \(Xen.org\)" <tim@xen.org>, Ian Campbell <Ian.Campbell@citrix.com>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH v3 4/6] xen: introduce XEN_GUEST_HANDLE_PARAM
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Fri, 17 Aug 2012, Jan Beulich wrote:
+> >>> On 16.08.12 at 19:08, Stefano Stabellini <stefano.stabellini@eu.citrix.com> wrote:
+> > On Thu, 16 Aug 2012, Jan Beulich wrote:
+> >> >>> On 16.08.12 at 16:50, Stefano Stabellini <stefano.stabellini@eu.citrix.com>  wrote:
+> >> > +#define set_xen_guest_handle_raw(hnd, val)                  \
+> >> > +    do { if ( sizeof(hnd) == 8 ) *(uint64_t *)&(hnd) = 0;   \
+> >> 
+> >> If you made the "normal" handle a union too, you could avoid
+> >> the explicit cast (which e.g. gcc, when not passed
+> >> -fno-strict-aliasing, will choke on) and instead use (hnd).q (and
+> >> at once avoid the double initialization of the low half).
+> >> 
+> >> Also, the condition to do this could be "sizeof(hnd) > sizeof((hnd).p)",
+> >> usable at once for 64-bit avoiding a full double initialization there.
+> >> 
+> >> > +         (hnd).p = val;                                     \
+> >> 
+> >> In a public header you certainly want to avoid evaluating a
+> >> macro argument twice.
+> > 
+> > That's a really good suggestion.
+> > I am going to make both handles unions and therefore
+> > set_xen_guest_handle_raw becomes:
+> > 
+> > #define set_xen_guest_handle_raw(hnd, val)                  \
+> >     do { (hnd).q = 0;                                       \
+> >          (hnd).p = val;                                     \
+> >     } while ( 0 )
+> 
+> But that still doesn't eliminate the double evaluation of "hnd".
+
+Yes, you are right. I'll use a temporary pointer.
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<alpine.DEB.2.02.1208171453060.15568@kaball.uk.xensource.com> b/config/examples/test/corpus/<alpine.DEB.2.02.1208171453060.15568@kaball.uk.xensource.com>
new file mode 100644 (file)
index 0000000..2f8ea97
--- /dev/null
@@ -0,0 +1,153 @@
+From xen-devel-bounces@lists.xen.org Fri Aug 17 14:59:18 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 17 Aug 2012 14:59:18 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T2N52-000857-5A
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 17 Aug 2012 14:59:18 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T2N1p-0000g7-7T; Fri, 17 Aug 2012 13:55:57 +0000
+Received: from mail27.messagelabs.com ([193.109.254.147])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1T2N1m-0000ff-WB
+       for xen-devel@lists.xen.org; Fri, 17 Aug 2012 13:55:55 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-6.tower-27.messagelabs.com!1345211748!3422300!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDk0MzU=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 29510 invoked from network); 17 Aug 2012 13:55:48 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-6.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
+       17 Aug 2012 13:55:48 -0000
+X-IronPort-AV: E=Sophos;i="4.77,785,1336348800"; d="scan'208";a="14061272"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       17 Aug 2012 13:55:48 +0000
+Received: from kaball.uk.xensource.com (10.80.2.59) by
+       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
+       8.3.213.0; Fri, 17 Aug 2012 14:55:48 +0100
+Date: Fri, 17 Aug 2012 14:55:31 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-X-Sender: sstabellini@kaball.uk.xensource.com
+To: Ian Campbell <Ian.Campbell@citrix.com>
+In-Reply-To: <1345211486.10161.31.camel@zakaz.uk.xensource.com>
+Message-ID: <alpine.DEB.2.02.1208171453060.15568@kaball.uk.xensource.com>
+References: <alpine.DEB.2.02.1208161523420.4850@kaball.uk.xensource.com>
+       <1345128612-10323-4-git-send-email-stefano.stabellini@eu.citrix.com>
+       <502D33B8020000780009596B@nat28.tlf.novell.com>
+       <502D37D702000078000959F7@nat28.tlf.novell.com> 
+       <alpine.DEB.2.02.1208161801210.15568@kaball.uk.xensource.com>
+       <1345190532.30865.67.camel@zakaz.uk.xensource.com>
+       <502E2F090200007800095D62@nat28.tlf.novell.com>
+       <alpine.DEB.2.02.1208171443580.15568@kaball.uk.xensource.com>
+       <1345211486.10161.31.camel@zakaz.uk.xensource.com>
+User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
+MIME-Version: 1.0
+Cc: xen-devel <xen-devel@lists.xen.org>, "Tim \(Xen.org\)" <tim@xen.org>,
+       Jan Beulich <JBeulich@suse.com>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH v3 4/6] xen: introduce XEN_GUEST_HANDLE_PARAM
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Fri, 17 Aug 2012, Ian Campbell wrote:
+> On Fri, 2012-08-17 at 14:47 +0100, Stefano Stabellini wrote:
+> > On Fri, 17 Aug 2012, Jan Beulich wrote:
+> > > >>> On 17.08.12 at 10:02, Ian Campbell <Ian.Campbell@citrix.com> wrote:
+> > > > On Thu, 2012-08-16 at 18:10 +0100, Stefano Stabellini wrote:
+> > > >> On Thu, 16 Aug 2012, Jan Beulich wrote:
+> > > >> > >>> On 16.08.12 at 17:54, "Jan Beulich" <JBeulich@suse.com> wrote:
+> > > >> > > Seeing the patch I btw realized that there's no easy way to
+> > > >> > > avoid having the type as a second argument in the conversion
+> > > >> > > macros. Nevertheless I still don't like the explicitly specified type
+> > > >> > > there.
+> > > >> > 
+> > > >> > Btw - on the architecture(s) where the two handles are identical
+> > > >> > I would prefer you to make the conversion functions trivial (and
+> > > >> > thus avoid making use of the "type" parameter), thus allowing
+> > > >> > the type checking to occur that you currently circumvent.
+> > > >> 
+> > > >> OK, I can do that.
+> > > > 
+> > > > Will this result in the type parameter potentially becoming stale?
+> > > > 
+> > > > Adding a redundant pointer compare is a good way to get the compiler to
+> > > > catch this. Smth like;
+> > > > 
+> > > >         /* Cast a XEN_GUEST_HANDLE_PARAM to XEN_GUEST_HANDLE */
+> > > >         #define guest_handle_from_param(hnd, type) ({
+> > > >             typeof((hnd).p) _x = (hnd).p;
+> > > >             XEN_GUEST_HANDLE(type) _y;
+> > > >             &_y == &_x;
+> > > >             hnd;
+> > > >          })
+> > > 
+> > > Ah yes, that's a good suggestion.
+> > > 
+> > > > I'm not sure which two pointers of members of the various structs need
+> > > > to be compared, maybe it's actually &_y.p and &hnd.p, but you get the
+> > > > idea...
+> > > 
+> > > Right, comparing (hnd).p with _y.p would be the right thing; no
+> > > need for _x, but some other (mechanical) adjustments would be
+> > > necessary.
+> > 
+> > The _x variable is still useful to avoid multiple evaluations of hnd,
+> > even though I know that this is not a public header.
+> > 
+> > What about the following:
+> > 
+> > /* Cast a XEN_GUEST_HANDLE to XEN_GUEST_HANDLE_PARAM */
+> > #define guest_handle_to_param(hnd, type) ({                \
+> >     typeof((hnd).p) _x = (hnd).p;                          \
+> >     XEN_GUEST_HANDLE_PARAM(type) _y = { _x };              \
+> >     if (&_x != &_y.p) BUG();                               \
+> 
+> &_x and &_y.p will always be different => this will always BUG().
+>
+> You just need "(&_x == &_y.p)" if the types of _x and _y.p are different
+> then the compiler will error out due to the comparison of differently
+> typed pointers.
+
+I know what you mean, but we cannot do that because the compiler will
+complain with "statement has no effects".
+So we have to do something like:
+
+if ((&_x == &_y.p) && 0) BUG();
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<alpine.DEB.2.02.1208171540350.15568@kaball.uk.xensource.com> b/config/examples/test/corpus/<alpine.DEB.2.02.1208171540350.15568@kaball.uk.xensource.com>
new file mode 100644 (file)
index 0000000..63add58
--- /dev/null
@@ -0,0 +1,187 @@
+From xen-devel-bounces@lists.xen.org Fri Aug 17 15:48:57 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 17 Aug 2012 15:48:57 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T2Nr4-0008Ky-Cp
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 17 Aug 2012 15:48:56 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T2Nnk-0003Jl-NH; Fri, 17 Aug 2012 14:45:28 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1T2Nnj-0003Jd-1I
+       for xen-devel@lists.xen.org; Fri, 17 Aug 2012 14:45:27 +0000
+Received: from [85.158.138.51:63458] by server-3.bemta-3.messagelabs.com id
+       35/06-13809-6095E205; Fri, 17 Aug 2012 14:45:26 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-4.tower-174.messagelabs.com!1345214725!28795919!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDk0MzU=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 1044 invoked from network); 17 Aug 2012 14:45:25 -0000
+Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-4.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
+       17 Aug 2012 14:45:25 -0000
+X-IronPort-AV: E=Sophos;i="4.77,785,1336348800"; d="scan'208";a="14062371"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       17 Aug 2012 14:45:24 +0000
+Received: from kaball.uk.xensource.com (10.80.2.59) by
+       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
+       8.3.213.0; Fri, 17 Aug 2012 15:45:24 +0100
+Date: Fri, 17 Aug 2012 15:45:07 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-X-Sender: sstabellini@kaball.uk.xensource.com
+To: Jan Beulich <JBeulich@suse.com>
+In-Reply-To: <502E6A200200007800095E9A@nat28.tlf.novell.com>
+Message-ID: <alpine.DEB.2.02.1208171540350.15568@kaball.uk.xensource.com>
+References: <alpine.DEB.2.02.1208161523420.4850@kaball.uk.xensource.com>
+       <1345128612-10323-4-git-send-email-stefano.stabellini@eu.citrix.com>
+       <502D33B8020000780009596B@nat28.tlf.novell.com>
+       <502D37D702000078000959F7@nat28.tlf.novell.com>
+       <alpine.DEB.2.02.1208161801210.15568@kaball.uk.xensource.com>
+       <1345190532.30865.67.camel@zakaz.uk.xensource.com>
+       <502E2F090200007800095D62@nat28.tlf.novell.com>
+       <alpine.DEB.2.02.1208171443580.15568@kaball.uk.xensource.com>
+       <502E6A200200007800095E9A@nat28.tlf.novell.com>
+User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
+MIME-Version: 1.0
+Cc: xen-devel <xen-devel@lists.xen.org>, "Tim
+       \(Xen.org\)" <tim@xen.org>, Ian Campbell <Ian.Campbell@citrix.com>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH v3 4/6] xen: introduce XEN_GUEST_HANDLE_PARAM
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Fri, 17 Aug 2012, Jan Beulich wrote:
+> >>> On 17.08.12 at 15:47, Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+> wrote:
+> > On Fri, 17 Aug 2012, Jan Beulich wrote:
+> >> >>> On 17.08.12 at 10:02, Ian Campbell <Ian.Campbell@citrix.com> wrote:
+> >> > On Thu, 2012-08-16 at 18:10 +0100, Stefano Stabellini wrote:
+> >> >> On Thu, 16 Aug 2012, Jan Beulich wrote:
+> >> >> > >>> On 16.08.12 at 17:54, "Jan Beulich" <JBeulich@suse.com> wrote:
+> >> >> > > Seeing the patch I btw realized that there's no easy way to
+> >> >> > > avoid having the type as a second argument in the conversion
+> >> >> > > macros. Nevertheless I still don't like the explicitly specified type
+> >> >> > > there.
+> >> >> > 
+> >> >> > Btw - on the architecture(s) where the two handles are identical
+> >> >> > I would prefer you to make the conversion functions trivial (and
+> >> >> > thus avoid making use of the "type" parameter), thus allowing
+> >> >> > the type checking to occur that you currently circumvent.
+> >> >> 
+> >> >> OK, I can do that.
+> >> > 
+> >> > Will this result in the type parameter potentially becoming stale?
+> >> > 
+> >> > Adding a redundant pointer compare is a good way to get the compiler to
+> >> > catch this. Smth like;
+> >> > 
+> >> >         /* Cast a XEN_GUEST_HANDLE_PARAM to XEN_GUEST_HANDLE */
+> >> >         #define guest_handle_from_param(hnd, type) ({
+> >> >             typeof((hnd).p) _x = (hnd).p;
+> >> >             XEN_GUEST_HANDLE(type) _y;
+> >> >             &_y == &_x;
+> >> >             hnd;
+> >> >          })
+> >> 
+> >> Ah yes, that's a good suggestion.
+> >> 
+> >> > I'm not sure which two pointers of members of the various structs need
+> >> > to be compared, maybe it's actually &_y.p and &hnd.p, but you get the
+> >> > idea...
+> >> 
+> >> Right, comparing (hnd).p with _y.p would be the right thing; no
+> >> need for _x, but some other (mechanical) adjustments would be
+> >> necessary.
+> > 
+> > The _x variable is still useful to avoid multiple evaluations of hnd,
+> > even though I know that this is not a public header.
+> 
+> But we had settled on returning hnd unmodified when both
+> handle types are the same.
+> 
+> > What about the following:
+> > 
+> > /* Cast a XEN_GUEST_HANDLE to XEN_GUEST_HANDLE_PARAM */
+> > #define guest_handle_to_param(hnd, type) ({                \
+> >     typeof((hnd).p) _x = (hnd).p;                          \
+> >     XEN_GUEST_HANDLE_PARAM(type) _y = { _x };              \
+> >     if (&_x != &_y.p) BUG();                               \
+> >     _y;                                                    \
+> > })
+> 
+> Since this is not a public header, something like this (untested,
+> so may not compile as is)
+> 
+> #define guest_handle_to_param(hnd, type) ({                \
+>     (void)(typeof((hnd).p)0 == (XEN_GUEST_HANDLE_PARAM(type){}).p); \
+>     (hnd);                                                    \
+> })
+> 
+> is what I was thinking of.
+> 
+
+this is how it would look like:
+
+#define guest_handle_to_param(hnd, type) ({                  \
+    /* type checking: make sure that the pointers inside     \
+     * XEN_GUEST_HANDLE and XEN_GUEST_HANDLE_PARAM are of    \
+     * the same type, than return hnd */                     \
+    (void)((typeof(&(hnd).p)) 0 ==                           \
+        (typeof(&((XEN_GUEST_HANDLE_PARAM(type)) {}).p)) 0); \
+    (hnd);                                                   \
+})
+
+
+Honestly I have very rarely seen anything less readable, but at least is
+very compact.
+For ARM I was going to go with the following, that is only slightly more
+readable:
+
+#define guest_handle_to_param(hnd, type) ({                  \
+    typeof((hnd).p) _x = (hnd).p;                            \
+    XEN_GUEST_HANDLE_PARAM(type) _y = { _x };                \
+    /* type checking: make sure that the pointers inside     \
+     * XEN_GUEST_HANDLE and XEN_GUEST_HANDLE_PARAM are of    \
+     * the same type, than return hnd */                     \
+    (void)(&_x == &_y.p);                                    \
+    _y;                                                      \
+})
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<alpine.DEB.2.02.1208171553060.15568@kaball.uk.xensource.com> b/config/examples/test/corpus/<alpine.DEB.2.02.1208171553060.15568@kaball.uk.xensource.com>
new file mode 100644 (file)
index 0000000..a1ceeb0
--- /dev/null
@@ -0,0 +1,167 @@
+From xen-devel-bounces@lists.xen.org Fri Aug 17 15:57:31 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 17 Aug 2012 15:57:31 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T2NzM-0008Mo-W6
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 17 Aug 2012 15:57:31 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T2Nvz-0003eA-GF; Fri, 17 Aug 2012 14:53:59 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1T2Nvy-0003e2-1L
+       for xen-devel@lists.xen.org; Fri, 17 Aug 2012 14:53:58 +0000
+Received: from [85.158.138.51:16810] by server-11.bemta-3.messagelabs.com id
+       1C/E2-23152-50B5E205; Fri, 17 Aug 2012 14:53:57 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-13.tower-174.messagelabs.com!1345215236!10151316!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDk0MzU=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 12506 invoked from network); 17 Aug 2012 14:53:56 -0000
+Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-13.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
+       17 Aug 2012 14:53:56 -0000
+X-IronPort-AV: E=Sophos;i="4.77,785,1336348800"; d="scan'208";a="14062524"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       17 Aug 2012 14:53:56 +0000
+Received: from kaball.uk.xensource.com (10.80.2.59) by
+       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
+       8.3.213.0; Fri, 17 Aug 2012 15:53:56 +0100
+Date: Fri, 17 Aug 2012 15:53:38 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-X-Sender: sstabellini@kaball.uk.xensource.com
+To: Ian Campbell <Ian.Campbell@citrix.com>
+In-Reply-To: <1345215020.10161.64.camel@zakaz.uk.xensource.com>
+Message-ID: <alpine.DEB.2.02.1208171553060.15568@kaball.uk.xensource.com>
+References: <alpine.DEB.2.02.1208161523420.4850@kaball.uk.xensource.com>
+       <1345128612-10323-4-git-send-email-stefano.stabellini@eu.citrix.com>
+       <502D33B8020000780009596B@nat28.tlf.novell.com>
+       <502D37D702000078000959F7@nat28.tlf.novell.com> 
+       <alpine.DEB.2.02.1208161801210.15568@kaball.uk.xensource.com>
+       <1345190532.30865.67.camel@zakaz.uk.xensource.com>
+       <502E2F090200007800095D62@nat28.tlf.novell.com>
+       <alpine.DEB.2.02.1208171443580.15568@kaball.uk.xensource.com>
+       <502E6A200200007800095E9A@nat28.tlf.novell.com>
+       <1345215020.10161.64.camel@zakaz.uk.xensource.com>
+User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
+MIME-Version: 1.0
+Cc: xen-devel <xen-devel@lists.xen.org>, "Tim \(Xen.org\)" <tim@xen.org>,
+       Jan Beulich <JBeulich@suse.com>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH v3 4/6] xen: introduce XEN_GUEST_HANDLE_PARAM
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Fri, 17 Aug 2012, Ian Campbell wrote:
+> On Fri, 2012-08-17 at 14:58 +0100, Jan Beulich wrote:
+> > >>> On 17.08.12 at 15:47, Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+> > wrote:
+> > > On Fri, 17 Aug 2012, Jan Beulich wrote:
+> > >> >>> On 17.08.12 at 10:02, Ian Campbell <Ian.Campbell@citrix.com> wrote:
+> > >> > On Thu, 2012-08-16 at 18:10 +0100, Stefano Stabellini wrote:
+> > >> >> On Thu, 16 Aug 2012, Jan Beulich wrote:
+> > >> >> > >>> On 16.08.12 at 17:54, "Jan Beulich" <JBeulich@suse.com> wrote:
+> > >> >> > > Seeing the patch I btw realized that there's no easy way to
+> > >> >> > > avoid having the type as a second argument in the conversion
+> > >> >> > > macros. Nevertheless I still don't like the explicitly specified type
+> > >> >> > > there.
+> > >> >> > 
+> > >> >> > Btw - on the architecture(s) where the two handles are identical
+> > >> >> > I would prefer you to make the conversion functions trivial (and
+> > >> >> > thus avoid making use of the "type" parameter), thus allowing
+> > >> >> > the type checking to occur that you currently circumvent.
+> > >> >> 
+> > >> >> OK, I can do that.
+> > >> > 
+> > >> > Will this result in the type parameter potentially becoming stale?
+> > >> > 
+> > >> > Adding a redundant pointer compare is a good way to get the compiler to
+> > >> > catch this. Smth like;
+> > >> > 
+> > >> >         /* Cast a XEN_GUEST_HANDLE_PARAM to XEN_GUEST_HANDLE */
+> > >> >         #define guest_handle_from_param(hnd, type) ({
+> > >> >             typeof((hnd).p) _x = (hnd).p;
+> > >> >             XEN_GUEST_HANDLE(type) _y;
+> > >> >             &_y == &_x;
+> > >> >             hnd;
+> > >> >          })
+> > >> 
+> > >> Ah yes, that's a good suggestion.
+> > >> 
+> > >> > I'm not sure which two pointers of members of the various structs need
+> > >> > to be compared, maybe it's actually &_y.p and &hnd.p, but you get the
+> > >> > idea...
+> > >> 
+> > >> Right, comparing (hnd).p with _y.p would be the right thing; no
+> > >> need for _x, but some other (mechanical) adjustments would be
+> > >> necessary.
+> > > 
+> > > The _x variable is still useful to avoid multiple evaluations of hnd,
+> > > even though I know that this is not a public header.
+> > 
+> > But we had settled on returning hnd unmodified when both
+> > handle types are the same.
+> > 
+> > > What about the following:
+> > > 
+> > > /* Cast a XEN_GUEST_HANDLE to XEN_GUEST_HANDLE_PARAM */
+> > > #define guest_handle_to_param(hnd, type) ({                \
+> > >     typeof((hnd).p) _x = (hnd).p;                          \
+> > >     XEN_GUEST_HANDLE_PARAM(type) _y = { _x };              \
+> > >     if (&_x != &_y.p) BUG();                               \
+> > >     _y;                                                    \
+> > > })
+> > 
+> > Since this is not a public header, something like this (untested,
+> > so may not compile as is)
+> > 
+> > #define guest_handle_to_param(hnd, type) ({                \
+> >     (void)(typeof((hnd).p)0 == (XEN_GUEST_HANDLE_PARAM(type){}).p); \
+> >     (hnd);                                                    \
+> > })
+> > 
+> > is what I was thinking of.
+> 
+> This evaluates hnd twice, or do we only care about that in public
+> headers for some reason? (personally I think principal of least surprise
+> suggests avoiding it wherever possible)
+
+the ARM version evaluates hnd only once and would work for x86 too
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<alpine.DEB.2.02.1208171829230.15568@kaball.uk.xensource.com> b/config/examples/test/corpus/<alpine.DEB.2.02.1208171829230.15568@kaball.uk.xensource.com>
new file mode 100644 (file)
index 0000000..03d7d9d
--- /dev/null
@@ -0,0 +1,144 @@
+From xen-devel-bounces@lists.xen.org Fri Aug 17 18:33:58 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 17 Aug 2012 18:33:58 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T2QQm-0000Y7-0x
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 17 Aug 2012 18:33:58 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T2QMr-0000ck-QP; Fri, 17 Aug 2012 17:29:53 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1T2QMp-0000cc-NS
+       for xen-devel@lists.xensource.com; Fri, 17 Aug 2012 17:29:51 +0000
+Received: from [85.158.138.51:37912] by server-12.bemta-3.messagelabs.com id
+       7B/70-04073-E8F7E205; Fri, 17 Aug 2012 17:29:50 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-15.tower-174.messagelabs.com!1345224590!27099786!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDk0MzU=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 6060 invoked from network); 17 Aug 2012 17:29:50 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-15.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
+       17 Aug 2012 17:29:50 -0000
+X-IronPort-AV: E=Sophos;i="4.77,785,1336348800"; d="scan'208";a="14064774"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       17 Aug 2012 17:29:50 +0000
+Received: from kaball.uk.xensource.com (10.80.2.59) by
+       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
+       8.3.213.0; Fri, 17 Aug 2012 18:29:50 +0100
+Date: Fri, 17 Aug 2012 18:29:32 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-X-Sender: sstabellini@kaball.uk.xensource.com
+To: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+In-Reply-To: <1345133009-21941-2-git-send-email-konrad.wilk@oracle.com>
+Message-ID: <alpine.DEB.2.02.1208171829230.15568@kaball.uk.xensource.com>
+References: <1345133009-21941-1-git-send-email-konrad.wilk@oracle.com>
+       <1345133009-21941-2-git-send-email-konrad.wilk@oracle.com>
+User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
+       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 01/11] xen/p2m: Fix the comment describing
+ the P2M tree.
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Thu, 16 Aug 2012, Konrad Rzeszutek Wilk wrote:
+> It mixed up the p2m_mid_missing with p2m_missing. Also
+> remove some extra spaces.
+> 
+> Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+
+
+Acked-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+
+>  arch/x86/xen/p2m.c |   14 +++++++-------
+>  1 files changed, 7 insertions(+), 7 deletions(-)
+> 
+> diff --git a/arch/x86/xen/p2m.c b/arch/x86/xen/p2m.c
+> index 64effdc..e4adbfb 100644
+> --- a/arch/x86/xen/p2m.c
+> +++ b/arch/x86/xen/p2m.c
+> @@ -22,7 +22,7 @@
+>   *
+>   * P2M_PER_PAGE depends on the architecture, as a mfn is always
+>   * unsigned long (8 bytes on 64-bit, 4 bytes on 32), leading to
+> - * 512 and 1024 entries respectively. 
+> + * 512 and 1024 entries respectively.
+>   *
+>   * In short, these structures contain the Machine Frame Number (MFN) of the PFN.
+>   *
+> @@ -139,11 +139,11 @@
+>   *      /    | ~0, ~0, ....  |
+>   *     |     \---------------/
+>   *     |
+> - *     p2m_missing             p2m_missing
+> - * /------------------\     /------------\
+> - * | [p2m_mid_missing]+---->| ~0, ~0, ~0 |
+> - * | [p2m_mid_missing]+---->| ..., ~0    |
+> - * \------------------/     \------------/
+> + *   p2m_mid_missing           p2m_missing
+> + * /-----------------\     /------------\
+> + * | [p2m_missing]   +---->| ~0, ~0, ~0 |
+> + * | [p2m_missing]   +---->| ..., ~0    |
+> + * \-----------------/     \------------/
+>   *
+>   * where ~0 is INVALID_P2M_ENTRY. IDENTITY is (PFN | IDENTITY_BIT)
+>   */
+> @@ -423,7 +423,7 @@ static void free_p2m_page(void *p)
+>      free_page((unsigned long)p);
+>  }
+>  
+> -/* 
+> +/*
+>   * Fully allocate the p2m structure for a given pfn.  We need to check
+>   * that both the top and mid levels are allocated, and make sure the
+>   * parallel mfn tree is kept in sync.  We may race with other cpus, so
+> -- 
+> 1.7.7.6
+> 
+> 
+> _______________________________________________
+> Xen-devel mailing list
+> Xen-devel@lists.xen.org
+> http://lists.xen.org/xen-devel
+> 
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<alpine.DEB.2.02.1208171835010.15568@kaball.uk.xensource.com> b/config/examples/test/corpus/<alpine.DEB.2.02.1208171835010.15568@kaball.uk.xensource.com>
new file mode 100644 (file)
index 0000000..6bb28b0
--- /dev/null
@@ -0,0 +1,212 @@
+From xen-devel-bounces@lists.xen.org Fri Aug 17 18:39:43 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 17 Aug 2012 18:39:43 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T2QWL-0000ZB-8d
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 17 Aug 2012 18:39:43 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T2QSL-0000qA-Il; Fri, 17 Aug 2012 17:35:33 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1T2QSJ-0000q5-VF
+       for xen-devel@lists.xensource.com; Fri, 17 Aug 2012 17:35:32 +0000
+Received: from [85.158.143.99:10962] by server-3.bemta-4.messagelabs.com id
+       1B/8B-09529-3E08E205; Fri, 17 Aug 2012 17:35:31 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-2.tower-216.messagelabs.com!1345224930!23426277!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDk0MzU=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 953 invoked from network); 17 Aug 2012 17:35:30 -0000
+Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-2.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
+       17 Aug 2012 17:35:30 -0000
+X-IronPort-AV: E=Sophos;i="4.77,785,1336348800"; d="scan'208";a="14064812"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       17 Aug 2012 17:35:29 +0000
+Received: from kaball.uk.xensource.com (10.80.2.59) by
+       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
+       8.3.213.0; Fri, 17 Aug 2012 18:35:29 +0100
+Date: Fri, 17 Aug 2012 18:35:12 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-X-Sender: sstabellini@kaball.uk.xensource.com
+To: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+In-Reply-To: <1345133009-21941-3-git-send-email-konrad.wilk@oracle.com>
+Message-ID: <alpine.DEB.2.02.1208171835010.15568@kaball.uk.xensource.com>
+References: <1345133009-21941-1-git-send-email-konrad.wilk@oracle.com>
+       <1345133009-21941-3-git-send-email-konrad.wilk@oracle.com>
+User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
+       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 02/11] xen/x86: Use memblock_reserve for
+ sensitive areas.
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Thu, 16 Aug 2012, Konrad Rzeszutek Wilk wrote:
+> instead of a big memblock_reserve. This way we can be more
+> selective in freeing regions (and it also makes it easier
+> to understand where is what).
+> 
+> [v1: Move the auto_translate_physmap to proper line]
+> [v2: Per Stefano suggestion add more comments]
+> Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+
+much better now!
+
+>  arch/x86/xen/enlighten.c |   48 ++++++++++++++++++++++++++++++++++++++++++++++
+>  arch/x86/xen/p2m.c       |    5 ++++
+>  arch/x86/xen/setup.c     |    9 --------
+>  3 files changed, 53 insertions(+), 9 deletions(-)
+> 
+> diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c
+> index ff962d4..e532eb5 100644
+> --- a/arch/x86/xen/enlighten.c
+> +++ b/arch/x86/xen/enlighten.c
+> @@ -998,7 +998,54 @@ static int xen_write_msr_safe(unsigned int msr, unsigned low, unsigned high)
+>  
+>      return ret;
+>  }
+> +/*
+> + * If the MFN is not in the m2p (provided to us by the hypervisor) this
+> + * function won't do anything. In practice this means that the XenBus
+> + * MFN won't be available for the initial domain. */
+> +static void __init xen_reserve_mfn(unsigned long mfn)
+> +{
+> +    unsigned long pfn;
+> +
+> +    if (!mfn)
+> +            return;
+> +    pfn = mfn_to_pfn(mfn);
+> +    if (phys_to_machine_mapping_valid(pfn))
+> +            memblock_reserve(PFN_PHYS(pfn), PAGE_SIZE);
+> +}
+> +static void __init xen_reserve_internals(void)
+> +{
+> +    unsigned long size;
+> +
+> +    if (!xen_pv_domain())
+> +            return;
+> +
+> +    /* xen_start_info does not exist in the M2P, hence can't use
+> +     * xen_reserve_mfn. */
+> +    memblock_reserve(__pa(xen_start_info), PAGE_SIZE);
+> +
+> +    xen_reserve_mfn(PFN_DOWN(xen_start_info->shared_info));
+> +    xen_reserve_mfn(xen_start_info->store_mfn);
+>  
+> +    if (!xen_initial_domain())
+> +            xen_reserve_mfn(xen_start_info->console.domU.mfn);
+> +
+> +    if (xen_feature(XENFEAT_auto_translated_physmap))
+> +            return;
+> +
+> +    /*
+> +     * ALIGN up to compensate for the p2m_page pointing to an array that
+> +     * can partially filled (look in xen_build_dynamic_phys_to_machine).
+> +     */
+> +
+> +    size = PAGE_ALIGN(xen_start_info->nr_pages * sizeof(unsigned long));
+> +
+> +    /* We could use xen_reserve_mfn here, but would end up looping quite
+> +     * a lot (and call memblock_reserve for each PAGE), so lets just use
+> +     * the easy way and reserve it wholesale. */
+> +    memblock_reserve(__pa(xen_start_info->mfn_list), size);
+> +
+> +    /* The pagetables are reserved in mmu.c */
+> +}
+>  void xen_setup_shared_info(void)
+>  {
+>      if (!xen_feature(XENFEAT_auto_translated_physmap)) {
+> @@ -1362,6 +1409,7 @@ asmlinkage void __init xen_start_kernel(void)
+>      xen_raw_console_write("mapping kernel into physical memory\n");
+>      pgd = xen_setup_kernel_pagetable(pgd, xen_start_info->nr_pages);
+>  
+> +    xen_reserve_internals();
+>      /* Allocate and initialize top and mid mfn levels for p2m structure */
+>      xen_build_mfn_list_list();
+>  
+> diff --git a/arch/x86/xen/p2m.c b/arch/x86/xen/p2m.c
+> index e4adbfb..6a2bfa4 100644
+> --- a/arch/x86/xen/p2m.c
+> +++ b/arch/x86/xen/p2m.c
+> @@ -388,6 +388,11 @@ void __init xen_build_dynamic_phys_to_machine(void)
+>      }
+>  
+>      m2p_override_init();
+> +
+> +    /* NOTE: We cannot call memblock_reserve here for the mfn_list as there
+> +     * isn't enough pieces to make it work (for one - we are still using the
+> +     * Xen provided pagetable). Do it later in xen_reserve_internals.
+> +     */
+>  }
+>  
+>  unsigned long get_phys_to_machine(unsigned long pfn)
+> diff --git a/arch/x86/xen/setup.c b/arch/x86/xen/setup.c
+> index a4790bf..9efca75 100644
+> --- a/arch/x86/xen/setup.c
+> +++ b/arch/x86/xen/setup.c
+> @@ -424,15 +424,6 @@ char * __init xen_memory_setup(void)
+>      e820_add_region(ISA_START_ADDRESS, ISA_END_ADDRESS - ISA_START_ADDRESS,
+>                      E820_RESERVED);
+>  
+> -    /*
+> -     * Reserve Xen bits:
+> -     *  - mfn_list
+> -     *  - xen_start_info
+> -     * See comment above "struct start_info" in <xen/interface/xen.h>
+> -     */
+> -    memblock_reserve(__pa(xen_start_info->mfn_list),
+> -                     xen_start_info->pt_base - xen_start_info->mfn_list);
+> -
+>      sanitize_e820_map(e820.map, ARRAY_SIZE(e820.map), &e820.nr_map);
+>  
+>      return "Xen";
+> -- 
+> 1.7.7.6
+> 
+> 
+> _______________________________________________
+> Xen-devel mailing list
+> Xen-devel@lists.xen.org
+> http://lists.xen.org/xen-devel
+> 
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<alpine.DEB.2.02.1208171839590.15568@kaball.uk.xensource.com> b/config/examples/test/corpus/<alpine.DEB.2.02.1208171839590.15568@kaball.uk.xensource.com>
new file mode 100644 (file)
index 0000000..824980c
--- /dev/null
@@ -0,0 +1,163 @@
+From xen-devel-bounces@lists.xen.org Fri Aug 17 18:45:53 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 17 Aug 2012 18:45:53 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T2QcI-0000aK-Sz
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 17 Aug 2012 18:45:53 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T2QYK-00013d-Ci; Fri, 17 Aug 2012 17:41:44 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1T2QYJ-00013Y-3N
+       for xen-devel@lists.xensource.com; Fri, 17 Aug 2012 17:41:43 +0000
+Received: from [85.158.138.51:30139] by server-11.bemta-3.messagelabs.com id
+       0E/AF-23152-6528E205; Fri, 17 Aug 2012 17:41:42 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-3.tower-174.messagelabs.com!1345225301!20773995!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDk0MzU=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 16683 invoked from network); 17 Aug 2012 17:41:41 -0000
+Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-3.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
+       17 Aug 2012 17:41:41 -0000
+X-IronPort-AV: E=Sophos;i="4.77,785,1336348800"; d="scan'208";a="14064852"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       17 Aug 2012 17:41:41 +0000
+Received: from kaball.uk.xensource.com (10.80.2.59) by
+       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
+       8.3.213.0; Fri, 17 Aug 2012 18:41:41 +0100
+Date: Fri, 17 Aug 2012 18:41:23 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-X-Sender: sstabellini@kaball.uk.xensource.com
+To: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+In-Reply-To: <1345133009-21941-7-git-send-email-konrad.wilk@oracle.com>
+Message-ID: <alpine.DEB.2.02.1208171839590.15568@kaball.uk.xensource.com>
+References: <1345133009-21941-1-git-send-email-konrad.wilk@oracle.com>
+       <1345133009-21941-7-git-send-email-konrad.wilk@oracle.com>
+User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
+       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 06/11] xen/mmu: For 64-bit do not call
+ xen_map_identity_early
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Thu, 16 Aug 2012, Konrad Rzeszutek Wilk wrote:
+> B/c we do not need it. During the startup the Xen provides
+> us with all the memory mapped that we need to function.
+
+Shouldn't we check to make sure that is actually true (I am thinking at
+nr_pt_frames)?
+Or is it actually stated somewhere in the Xen headers?
+
+
+
+> Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+> ---
+>  arch/x86/xen/mmu.c |   11 +++++------
+>  1 files changed, 5 insertions(+), 6 deletions(-)
+> 
+> diff --git a/arch/x86/xen/mmu.c b/arch/x86/xen/mmu.c
+> index 7247e5a..a59070b 100644
+> --- a/arch/x86/xen/mmu.c
+> +++ b/arch/x86/xen/mmu.c
+> @@ -84,6 +84,7 @@
+>   */
+>  DEFINE_SPINLOCK(xen_reservation_lock);
+>  
+> +#ifdef CONFIG_X86_32
+>  /*
+>   * Identity map, in addition to plain kernel map.  This needs to be
+>   * large enough to allocate page table pages to allocate the rest.
+> @@ -91,7 +92,7 @@ DEFINE_SPINLOCK(xen_reservation_lock);
+>   */
+>  #define LEVEL1_IDENT_ENTRIES        (PTRS_PER_PTE * 4)
+>  static RESERVE_BRK_ARRAY(pte_t, level1_ident_pgt, LEVEL1_IDENT_ENTRIES);
+> -
+> +#endif
+>  #ifdef CONFIG_X86_64
+>  /* l3 pud for userspace vsyscall mapping */
+>  static pud_t level3_user_vsyscall[PTRS_PER_PUD] __page_aligned_bss;
+> @@ -1628,7 +1629,7 @@ static void set_page_prot(void *addr, pgprot_t prot)
+>      if (HYPERVISOR_update_va_mapping((unsigned long)addr, pte, 0))
+>              BUG();
+>  }
+> -
+> +#ifdef CONFIG_X86_32
+>  static void __init xen_map_identity_early(pmd_t *pmd, unsigned long max_pfn)
+>  {
+>      unsigned pmdidx, pteidx;
+> @@ -1679,7 +1680,7 @@ static void __init xen_map_identity_early(pmd_t *pmd, unsigned long max_pfn)
+>  
+>      set_page_prot(pmd, PAGE_KERNEL_RO);
+>  }
+> -
+> +#endif
+>  void __init xen_setup_machphys_mapping(void)
+>  {
+>      struct xen_machphys_mapping mapping;
+> @@ -1765,14 +1766,12 @@ void __init xen_setup_kernel_pagetable(pgd_t *pgd, unsigned long max_pfn)
+>      /* Note that we don't do anything with level1_fixmap_pgt which
+>       * we don't need. */
+>  
+> -    /* Set up identity map */
+> -    xen_map_identity_early(level2_ident_pgt, max_pfn);
+> -
+>      /* Make pagetable pieces RO */
+>      set_page_prot(init_level4_pgt, PAGE_KERNEL_RO);
+>      set_page_prot(level3_ident_pgt, PAGE_KERNEL_RO);
+>      set_page_prot(level3_kernel_pgt, PAGE_KERNEL_RO);
+>      set_page_prot(level3_user_vsyscall, PAGE_KERNEL_RO);
+> +    set_page_prot(level2_ident_pgt, PAGE_KERNEL_RO);
+>      set_page_prot(level2_kernel_pgt, PAGE_KERNEL_RO);
+>      set_page_prot(level2_fixmap_pgt, PAGE_KERNEL_RO);
+>  
+> -- 
+> 1.7.7.6
+> 
+> 
+> _______________________________________________
+> Xen-devel mailing list
+> Xen-devel@lists.xen.org
+> http://lists.xen.org/xen-devel
+> 
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<alpine.DEB.2.02.1208171902320.15568@kaball.uk.xensource.com> b/config/examples/test/corpus/<alpine.DEB.2.02.1208171902320.15568@kaball.uk.xensource.com>
new file mode 100644 (file)
index 0000000..cc061bf
--- /dev/null
@@ -0,0 +1,200 @@
+From xen-devel-bounces@lists.xen.org Fri Aug 17 19:12:26 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 17 Aug 2012 19:12:26 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T2R1z-0000ff-Tl
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 17 Aug 2012 19:12:26 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T2Qxe-0001sH-2v; Fri, 17 Aug 2012 18:07:54 +0000
+Received: from mail27.messagelabs.com ([193.109.254.147])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1T2Qxc-0001sA-2R
+       for xen-devel@lists.xensource.com; Fri, 17 Aug 2012 18:07:52 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-4.tower-27.messagelabs.com!1345226865!9651684!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDk0MzU=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 19202 invoked from network); 17 Aug 2012 18:07:46 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-4.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
+       17 Aug 2012 18:07:46 -0000
+X-IronPort-AV: E=Sophos;i="4.77,785,1336348800"; d="scan'208";a="14065042"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       17 Aug 2012 18:07:45 +0000
+Received: from kaball.uk.xensource.com (10.80.2.59) by
+       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
+       8.3.213.0; Fri, 17 Aug 2012 19:07:45 +0100
+Date: Fri, 17 Aug 2012 19:07:28 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-X-Sender: sstabellini@kaball.uk.xensource.com
+To: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+In-Reply-To: <1345133009-21941-8-git-send-email-konrad.wilk@oracle.com>
+Message-ID: <alpine.DEB.2.02.1208171902320.15568@kaball.uk.xensource.com>
+References: <1345133009-21941-1-git-send-email-konrad.wilk@oracle.com>
+       <1345133009-21941-8-git-send-email-konrad.wilk@oracle.com>
+User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
+       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD autolearn=unavailable version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 07/11] xen/mmu: Recycle the Xen provided L4,
+ L3, and L2 pages
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Thu, 16 Aug 2012, Konrad Rzeszutek Wilk wrote:
+> As we are not using them. We end up only using the L1 pagetables
+> and grafting those to our page-tables.
+> 
+> [v1: Per Stefano's suggestion squashed two commits]
+> [v2: Per Stefano's suggestion simplified loop]
+> [v3: Fix smatch warnings]
+> Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+> ---
+>  arch/x86/xen/mmu.c |   40 +++++++++++++++++++++++++++++++++-------
+>  1 files changed, 33 insertions(+), 7 deletions(-)
+> 
+> diff --git a/arch/x86/xen/mmu.c b/arch/x86/xen/mmu.c
+> index a59070b..bd92c82 100644
+> --- a/arch/x86/xen/mmu.c
+> +++ b/arch/x86/xen/mmu.c
+> @@ -1708,7 +1708,20 @@ static void convert_pfn_mfn(void *v)
+>      for (i = 0; i < PTRS_PER_PTE; i++)
+>              pte[i] = xen_make_pte(pte[i].pte);
+>  }
+> -
+> +static void __init check_pt_base(unsigned long *pt_base, unsigned long *pt_end,
+> +                             unsigned long addr)
+> +{
+> +    if (*pt_base == PFN_DOWN(__pa(addr))) {
+> +            set_page_prot((void *)addr, PAGE_KERNEL);
+> +            clear_page((void *)addr);
+> +            (*pt_base)++;
+> +    }
+> +    if (*pt_end == PFN_DOWN(__pa(addr))) {
+> +            set_page_prot((void *)addr, PAGE_KERNEL);
+> +            clear_page((void *)addr);
+> +            (*pt_end)--;
+> +    }
+> +}
+>  /*
+>   * Set up the initial kernel pagetable.
+>   *
+> @@ -1724,6 +1737,9 @@ void __init xen_setup_kernel_pagetable(pgd_t *pgd, unsigned long max_pfn)
+>  {
+>      pud_t *l3;
+>      pmd_t *l2;
+> +    unsigned long addr[3];
+> +    unsigned long pt_base, pt_end;
+> +    unsigned i;
+>  
+>      /* max_pfn_mapped is the last pfn mapped in the initial memory
+>       * mappings. Considering that on Xen after the kernel mappings we
+> @@ -1731,6 +1747,9 @@ void __init xen_setup_kernel_pagetable(pgd_t *pgd, unsigned long max_pfn)
+>       * set max_pfn_mapped to the last real pfn mapped. */
+>      max_pfn_mapped = PFN_DOWN(__pa(xen_start_info->mfn_list));
+>  
+> +    pt_base = PFN_DOWN(__pa(xen_start_info->pt_base));
+> +    pt_end = PFN_DOWN(__pa(xen_start_info->pt_base + (xen_start_info->nr_pt_frames * PAGE_SIZE)));
+
+code style
+
+>      /* Zap identity mapping */
+>      init_level4_pgt[0] = __pgd(0);
+>  
+> @@ -1749,6 +1768,9 @@ void __init xen_setup_kernel_pagetable(pgd_t *pgd, unsigned long max_pfn)
+>      l3 = m2v(pgd[pgd_index(__START_KERNEL_map)].pgd);
+>      l2 = m2v(l3[pud_index(__START_KERNEL_map)].pud);
+>  
+> +    addr[0] = (unsigned long)pgd;
+> +    addr[1] = (unsigned long)l3;
+> +    addr[2] = (unsigned long)l2;
+>      /* Graft it onto L4[272][0]. Note that we creating an aliasing problem:
+>       * Both L4[272][0] and L4[511][511] have entries that point to the same
+>       * L2 (PMD) tables. Meaning that if you modify it in __va space
+> @@ -1782,20 +1804,24 @@ void __init xen_setup_kernel_pagetable(pgd_t *pgd, unsigned long max_pfn)
+>      /* Unpin Xen-provided one */
+>      pin_pagetable_pfn(MMUEXT_UNPIN_TABLE, PFN_DOWN(__pa(pgd)));
+>  
+> -    /* Switch over */
+> -    pgd = init_level4_pgt;
+> -
+>      /*
+>       * At this stage there can be no user pgd, and no page
+>       * structure to attach it to, so make sure we just set kernel
+>       * pgd.
+>       */
+>      xen_mc_batch();
+> -    __xen_write_cr3(true, __pa(pgd));
+> +    __xen_write_cr3(true, __pa(init_level4_pgt));
+>      xen_mc_issue(PARAVIRT_LAZY_CPU);
+>  
+> -    memblock_reserve(__pa(xen_start_info->pt_base),
+> -                     xen_start_info->nr_pt_frames * PAGE_SIZE);
+> +    /* We can't that easily rip out L3 and L2, as the Xen pagetables are
+> +     * set out this way: [L4], [L1], [L2], [L3], [L1], [L1] ...  for
+> +     * the initial domain. For guests using the toolstack, they are in:
+> +     * [L4], [L3], [L2], [L1], [L1], order .. */
+> +    for (i = 0; i < ARRAY_SIZE(addr); i++)
+> +            check_pt_base(&pt_base, &pt_end, addr[i]);
+
+It is much clearer now, but if the comment is correct, doesn't it mean
+that we are going to be able to free pgd, l3 and l2 only in the non-dom0
+case?
+If so it might be worth saying it explicitly.
+
+Other than that, it is fine by me.
+
+
+> +    /* Our (by three pages) smaller Xen pagetable that we are using */
+> +    memblock_reserve(PFN_PHYS(pt_base), (pt_end - pt_base) * PAGE_SIZE);
+>  }
+>  #else       /* !CONFIG_X86_64 */
+>  static RESERVE_BRK_ARRAY(pmd_t, initial_kernel_pmd, PTRS_PER_PMD);
+> -- 
+> 1.7.7.6
+> 
+> 
+> _______________________________________________
+> Xen-devel mailing list
+> Xen-devel@lists.xen.org
+> http://lists.xen.org/xen-devel
+> 
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<alpine.DEB.2.02.1208201243180.15568@kaball.uk.xensource.com> b/config/examples/test/corpus/<alpine.DEB.2.02.1208201243180.15568@kaball.uk.xensource.com>
new file mode 100644 (file)
index 0000000..6034898
--- /dev/null
@@ -0,0 +1,114 @@
+From xen-devel-bounces@lists.xen.org Mon Aug 20 12:50:04 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Mon, 20 Aug 2012 12:50:04 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T3QUc-0000Cc-0Q
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Mon, 20 Aug 2012 12:50:04 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T3QR8-0000k9-1f; Mon, 20 Aug 2012 11:46:26 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1T3QR6-0000jz-S5
+       for xen-devel@lists.xensource.com; Mon, 20 Aug 2012 11:46:25 +0000
+Received: from [85.158.143.35:17559] by server-3.bemta-4.messagelabs.com id
+       6D/D3-09529-09322305; Mon, 20 Aug 2012 11:46:24 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-12.tower-21.messagelabs.com!1345463165!14261204!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDk2MTE=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 17798 invoked from network); 20 Aug 2012 11:46:07 -0000
+Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-12.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
+       20 Aug 2012 11:46:07 -0000
+X-IronPort-AV: E=Sophos;i="4.77,796,1336348800"; d="scan'208";a="14082988"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       20 Aug 2012 11:46:05 +0000
+Received: from kaball.uk.xensource.com (10.80.2.59) by
+       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
+       8.3.213.0; Mon, 20 Aug 2012 12:46:05 +0100
+Date: Mon, 20 Aug 2012 12:45:45 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-X-Sender: sstabellini@kaball.uk.xensource.com
+To: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+In-Reply-To: <20120817174549.GA14257@phenom.dumpdata.com>
+Message-ID: <alpine.DEB.2.02.1208201243180.15568@kaball.uk.xensource.com>
+References: <1345133009-21941-1-git-send-email-konrad.wilk@oracle.com>
+       <1345133009-21941-7-git-send-email-konrad.wilk@oracle.com>
+       <alpine.DEB.2.02.1208171839590.15568@kaball.uk.xensource.com>
+       <20120817174549.GA14257@phenom.dumpdata.com>
+User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
+       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 06/11] xen/mmu: For 64-bit do not call
+ xen_map_identity_early
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Fri, 17 Aug 2012, Konrad Rzeszutek Wilk wrote:
+> On Fri, Aug 17, 2012 at 06:41:23PM +0100, Stefano Stabellini wrote:
+> > On Thu, 16 Aug 2012, Konrad Rzeszutek Wilk wrote:
+> > > B/c we do not need it. During the startup the Xen provides
+> > > us with all the memory mapped that we need to function.
+> > 
+> > Shouldn't we check to make sure that is actually true (I am thinking at
+> > nr_pt_frames)?
+> 
+> I was looking at the source code (hypervisor) to figure it out and
+> that is certainly true.
+> 
+> 
+> > Or is it actually stated somewhere in the Xen headers?
+> 
+> Couldn't find it, but after looking so long at the source code
+> I didn't even bother looking for it.
+> 
+> Thought to be honest - I only looked at how the 64-bit pagetables
+> were set up, so I didn't dare to touch the 32-bit. Hence the #ifdef
+
+I think that we need to involve some Xen maintainers and get this
+written down somewhere in the public headers, otherwise we have no
+guarantees that it is going to stay as it is in the next Xen versions.
+
+Maybe we just need to add a couple of lines of comment to
+xen/include/public/xen.h.
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<alpine.DEB.2.02.1208201257420.15568@kaball.uk.xensource.com> b/config/examples/test/corpus/<alpine.DEB.2.02.1208201257420.15568@kaball.uk.xensource.com>
new file mode 100644 (file)
index 0000000..2b2e9c9
--- /dev/null
@@ -0,0 +1,129 @@
+From xen-devel-bounces@lists.xen.org Mon Aug 20 13:03:06 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Mon, 20 Aug 2012 13:03:06 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T3QhE-0000GA-9o
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Mon, 20 Aug 2012 13:03:06 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T3QdM-0001L0-5p; Mon, 20 Aug 2012 11:59:04 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1T3QdK-0001Ku-UG
+       for xen-devel@lists.xensource.com; Mon, 20 Aug 2012 11:59:03 +0000
+Received: from [85.158.143.35:3256] by server-1.bemta-4.messagelabs.com id
+       D8/F8-07754-68622305; Mon, 20 Aug 2012 11:59:02 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-8.tower-21.messagelabs.com!1345463937!14391474!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDk2MTE=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 25666 invoked from network); 20 Aug 2012 11:58:57 -0000
+Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-8.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
+       20 Aug 2012 11:58:57 -0000
+X-IronPort-AV: E=Sophos;i="4.77,796,1336348800"; d="scan'208";a="14083372"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       20 Aug 2012 11:58:57 +0000
+Received: from kaball.uk.xensource.com (10.80.2.59) by
+       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
+       8.3.213.0; Mon, 20 Aug 2012 12:58:57 +0100
+Date: Mon, 20 Aug 2012 12:58:37 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-X-Sender: sstabellini@kaball.uk.xensource.com
+To: Ian Campbell <Ian.Campbell@citrix.com>
+In-Reply-To: <1345463624.28762.67.camel@zakaz.uk.xensource.com>
+Message-ID: <alpine.DEB.2.02.1208201257420.15568@kaball.uk.xensource.com>
+References: <1345133009-21941-1-git-send-email-konrad.wilk@oracle.com>
+       <1345133009-21941-7-git-send-email-konrad.wilk@oracle.com>
+       <alpine.DEB.2.02.1208171839590.15568@kaball.uk.xensource.com>
+       <20120817174549.GA14257@phenom.dumpdata.com> 
+       <alpine.DEB.2.02.1208201243180.15568@kaball.uk.xensource.com>
+       <1345463624.28762.67.camel@zakaz.uk.xensource.com>
+User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
+MIME-Version: 1.0
+Cc: "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
+       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
+       "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 06/11] xen/mmu: For 64-bit do not call
+ xen_map_identity_early
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Mon, 20 Aug 2012, Ian Campbell wrote:
+> On Mon, 2012-08-20 at 12:45 +0100, Stefano Stabellini wrote:
+> > On Fri, 17 Aug 2012, Konrad Rzeszutek Wilk wrote:
+> > > On Fri, Aug 17, 2012 at 06:41:23PM +0100, Stefano Stabellini wrote:
+> > > > On Thu, 16 Aug 2012, Konrad Rzeszutek Wilk wrote:
+> > > > > B/c we do not need it. During the startup the Xen provides
+> > > > > us with all the memory mapped that we need to function.
+> > > > 
+> > > > Shouldn't we check to make sure that is actually true (I am thinking at
+> > > > nr_pt_frames)?
+> > > 
+> > > I was looking at the source code (hypervisor) to figure it out and
+> > > that is certainly true.
+> > > 
+> > > 
+> > > > Or is it actually stated somewhere in the Xen headers?
+> > > 
+> > > Couldn't find it, but after looking so long at the source code
+> > > I didn't even bother looking for it.
+> > > 
+> > > Thought to be honest - I only looked at how the 64-bit pagetables
+> > > were set up, so I didn't dare to touch the 32-bit. Hence the #ifdef
+> > 
+> > I think that we need to involve some Xen maintainers and get this
+> > written down somewhere in the public headers, otherwise we have no
+> > guarantees that it is going to stay as it is in the next Xen versions.
+> > 
+> > Maybe we just need to add a couple of lines of comment to
+> > xen/include/public/xen.h.
+> 
+> The start of day memory layout for PV guests is written down in the
+> comment just before struct start_info at
+> http://xenbits.xen.org/docs/unstable/hypercall/include,public,xen.h.html#Struct_start_info
+> 
+> (I haven't read this thread to determine if what is documented matches
+> what you guys are talking about relying on)
+
+but it is not written down how much physical memory is going to be
+mapped in the bootstrap page tables.
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<alpine.DEB.2.02.1208201318240.15568@kaball.uk.xensource.com> b/config/examples/test/corpus/<alpine.DEB.2.02.1208201318240.15568@kaball.uk.xensource.com>
new file mode 100644 (file)
index 0000000..ba2bb79
--- /dev/null
@@ -0,0 +1,139 @@
+From xen-devel-bounces@lists.xen.org Mon Aug 20 13:24:23 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Mon, 20 Aug 2012 13:24:23 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T3R1l-0000NK-W1
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Mon, 20 Aug 2012 13:24:23 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T3Qy8-0001xW-Jt; Mon, 20 Aug 2012 12:20:32 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1T3Qy6-0001xQ-VM
+       for xen-devel@lists.xensource.com; Mon, 20 Aug 2012 12:20:31 +0000
+Received: from [85.158.143.35:37037] by server-3.bemta-4.messagelabs.com id
+       69/BD-09529-E8B22305; Mon, 20 Aug 2012 12:20:30 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-2.tower-21.messagelabs.com!1345465225!6639132!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDk2MTE=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 26377 invoked from network); 20 Aug 2012 12:20:26 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-2.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
+       20 Aug 2012 12:20:26 -0000
+X-IronPort-AV: E=Sophos;i="4.77,796,1336348800"; d="scan'208";a="14084201"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       20 Aug 2012 12:19:42 +0000
+Received: from kaball.uk.xensource.com (10.80.2.59) by
+       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
+       8.3.213.0; Mon, 20 Aug 2012 13:19:41 +0100
+Date: Mon, 20 Aug 2012 13:19:22 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-X-Sender: sstabellini@kaball.uk.xensource.com
+To: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+In-Reply-To: <20120820120649.GI13755@localhost.localdomain>
+Message-ID: <alpine.DEB.2.02.1208201318240.15568@kaball.uk.xensource.com>
+References: <1345133009-21941-1-git-send-email-konrad.wilk@oracle.com>
+       <1345133009-21941-7-git-send-email-konrad.wilk@oracle.com>
+       <alpine.DEB.2.02.1208171839590.15568@kaball.uk.xensource.com>
+       <20120817174549.GA14257@phenom.dumpdata.com>
+       <alpine.DEB.2.02.1208201243180.15568@kaball.uk.xensource.com>
+       <1345463624.28762.67.camel@zakaz.uk.xensource.com>
+       <alpine.DEB.2.02.1208201257420.15568@kaball.uk.xensource.com>
+       <20120820120649.GI13755@localhost.localdomain>
+User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
+MIME-Version: 1.0
+Cc: "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
+       "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
+       Ian Campbell <Ian.Campbell@citrix.com>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 06/11] xen/mmu: For 64-bit do not call
+ xen_map_identity_early
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Mon, 20 Aug 2012, Konrad Rzeszutek Wilk wrote:
+> On Mon, Aug 20, 2012 at 12:58:37PM +0100, Stefano Stabellini wrote:
+> > On Mon, 20 Aug 2012, Ian Campbell wrote:
+> > > On Mon, 2012-08-20 at 12:45 +0100, Stefano Stabellini wrote:
+> > > > On Fri, 17 Aug 2012, Konrad Rzeszutek Wilk wrote:
+> > > > > On Fri, Aug 17, 2012 at 06:41:23PM +0100, Stefano Stabellini wrote:
+> > > > > > On Thu, 16 Aug 2012, Konrad Rzeszutek Wilk wrote:
+> > > > > > > B/c we do not need it. During the startup the Xen provides
+> > > > > > > us with all the memory mapped that we need to function.
+> > > > > > 
+> > > > > > Shouldn't we check to make sure that is actually true (I am thinking at
+> > > > > > nr_pt_frames)?
+> > > > > 
+> > > > > I was looking at the source code (hypervisor) to figure it out and
+> > > > > that is certainly true.
+> > > > > 
+> > > > > 
+> > > > > > Or is it actually stated somewhere in the Xen headers?
+> > > > > 
+> > > > > Couldn't find it, but after looking so long at the source code
+> > > > > I didn't even bother looking for it.
+> > > > > 
+> > > > > Thought to be honest - I only looked at how the 64-bit pagetables
+> > > > > were set up, so I didn't dare to touch the 32-bit. Hence the #ifdef
+> > > > 
+> > > > I think that we need to involve some Xen maintainers and get this
+> > > > written down somewhere in the public headers, otherwise we have no
+> > > > guarantees that it is going to stay as it is in the next Xen versions.
+> > > > 
+> > > > Maybe we just need to add a couple of lines of comment to
+> > > > xen/include/public/xen.h.
+> > > 
+> > > The start of day memory layout for PV guests is written down in the
+> > > comment just before struct start_info at
+> > > http://xenbits.xen.org/docs/unstable/hypercall/include,public,xen.h.html#Struct_start_info
+> > > 
+> > > (I haven't read this thread to determine if what is documented matches
+> > > what you guys are talking about relying on)
+> > 
+> > but it is not written down how much physical memory is going to be
+> > mapped in the bootstrap page tables.
+> 
+> Considering that only pvops kernel has this change I think we are ok?
+
+We are OK if we write it down :)
+Otherwise it might change in the future and we won't even know what the
+correct behavior is supposed to be.
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<alpine.DEB.2.02.1208211514130.15568@kaball.uk.xensource.com> b/config/examples/test/corpus/<alpine.DEB.2.02.1208211514130.15568@kaball.uk.xensource.com>
new file mode 100644 (file)
index 0000000..f4a0a68
--- /dev/null
@@ -0,0 +1,143 @@
+From xen-devel-bounces@lists.xen.org Tue Aug 21 15:24:32 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Tue, 21 Aug 2012 15:24:32 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T3pNa-00019b-9t
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 21 Aug 2012 15:24:32 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T3pID-0003OS-Ac; Tue, 21 Aug 2012 14:18:53 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1T3pI9-0003OJ-Pz
+       for xen-devel@lists.xensource.com; Tue, 21 Aug 2012 14:18:51 +0000
+Received: from [85.158.138.51:57035] by server-11.bemta-3.messagelabs.com id
+       30/F1-23152-8C893305; Tue, 21 Aug 2012 14:18:48 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-10.tower-174.messagelabs.com!1345558728!23406160!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDk4OTY=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 20634 invoked from network); 21 Aug 2012 14:18:48 -0000
+Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-10.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
+       21 Aug 2012 14:18:48 -0000
+X-IronPort-AV: E=Sophos;i="4.77,802,1336348800"; d="scan'208";a="14108281"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       21 Aug 2012 14:18:47 +0000
+Received: from kaball.uk.xensource.com (10.80.2.59) by
+       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
+       8.3.213.0; Tue, 21 Aug 2012 15:18:47 +0100
+Date: Tue, 21 Aug 2012 15:18:26 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-X-Sender: sstabellini@kaball.uk.xensource.com
+To: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+In-Reply-To: <1345133009-21941-12-git-send-email-konrad.wilk@oracle.com>
+Message-ID: <alpine.DEB.2.02.1208211514130.15568@kaball.uk.xensource.com>
+References: <1345133009-21941-1-git-send-email-konrad.wilk@oracle.com>
+       <1345133009-21941-12-git-send-email-konrad.wilk@oracle.com>
+User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
+       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 11/11] xen/mmu: Release just the MFN list,
+ not MFN list and part of pagetables.
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Thu, 16 Aug 2012, Konrad Rzeszutek Wilk wrote:
+> We call memblock_reserve for [start of mfn list] -> [PMD aligned end
+> of mfn list] instead of <start of mfn list> -> <page aligned end of mfn list].
+> 
+> This has the disastrous effect that if at bootup the end of mfn_list is
+> not PMD aligned we end up returning to memblock parts of the region
+> past the mfn_list array. And those parts are the PTE tables with
+> the disastrous effect of seeing this at bootup:
+
+This patch looks wrong to me.
+
+Aren't you changing the way mfn_list is reserved using memblock in patch
+#3? Moreover it really seems to me that you are PAGE_ALIGN'ing size
+rather than PMD_ALIGN'ing it there.
+
+
+> Write protecting the kernel read-only data: 10240k
+> Freeing unused kernel memory: 1860k freed
+> Freeing unused kernel memory: 200k freed
+> (XEN) mm.c:2429:d0 Bad type (saw 1400000000000002 != exp 7000000000000000) for mfn 116a80 (pfn 14e26)
+> ...
+> (XEN) mm.c:908:d0 Error getting mfn 116a83 (pfn 14e2a) from L1 entry 8000000116a83067 for l1e_owner=0, pg_owner=0
+> (XEN) mm.c:908:d0 Error getting mfn 4040 (pfn 5555555555555555) from L1 entry 0000000004040601 for l1e_owner=0, pg_owner=0
+> .. and so on.
+>
+> Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+> ---
+>  arch/x86/xen/mmu.c |    2 +-
+>  1 files changed, 1 insertions(+), 1 deletions(-)
+> 
+> diff --git a/arch/x86/xen/mmu.c b/arch/x86/xen/mmu.c
+> index 5a880b8..6019c22 100644
+> --- a/arch/x86/xen/mmu.c
+> +++ b/arch/x86/xen/mmu.c
+> @@ -1227,7 +1227,6 @@ static void __init xen_pagetable_setup_done(pgd_t *base)
+>                      /* We should be in __ka space. */
+>                      BUG_ON(xen_start_info->mfn_list < __START_KERNEL_map);
+>                      addr = xen_start_info->mfn_list;
+> -                    size = PAGE_ALIGN(xen_start_info->nr_pages * sizeof(unsigned long));
+>                      /* We roundup to the PMD, which means that if anybody at this stage is
+>                       * using the __ka address of xen_start_info or xen_start_info->shared_info
+>                       * they are in going to crash. Fortunatly we have already revectored
+> @@ -1235,6 +1234,7 @@ static void __init xen_pagetable_setup_done(pgd_t *base)
+>                      size = roundup(size, PMD_SIZE);
+>                      xen_cleanhighmap(addr, addr + size);
+>  
+> +                    size = PAGE_ALIGN(xen_start_info->nr_pages * sizeof(unsigned long));
+>                      memblock_free(__pa(xen_start_info->mfn_list), size);
+>                      /* And revector! Bye bye old array */
+>                      xen_start_info->mfn_list = new_mfn_list;
+> -- 
+> 1.7.7.6
+> 
+> 
+> _______________________________________________
+> Xen-devel mailing list
+> Xen-devel@lists.xen.org
+> http://lists.xen.org/xen-devel
+> 
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<alpine.DEB.2.02.1208211626470.15568@kaball.uk.xensource.com> b/config/examples/test/corpus/<alpine.DEB.2.02.1208211626470.15568@kaball.uk.xensource.com>
new file mode 100644 (file)
index 0000000..3123b91
--- /dev/null
@@ -0,0 +1,104 @@
+From xen-devel-bounces@lists.xen.org Tue Aug 21 16:32:05 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Tue, 21 Aug 2012 16:32:05 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T3qQy-0001Tl-3i
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 21 Aug 2012 16:32:05 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T3qNO-0005Q2-Iu; Tue, 21 Aug 2012 15:28:18 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1T3qNM-0005Pj-FC
+       for xen-devel@lists.xensource.com; Tue, 21 Aug 2012 15:28:16 +0000
+Received: from [85.158.143.35:17566] by server-3.bemta-4.messagelabs.com id
+       D8/36-09529-F09A3305; Tue, 21 Aug 2012 15:28:15 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-11.tower-21.messagelabs.com!1345562895!13441933!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDk4OTY=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 17755 invoked from network); 21 Aug 2012 15:28:15 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-11.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
+       21 Aug 2012 15:28:15 -0000
+X-IronPort-AV: E=Sophos;i="4.77,802,1336348800"; d="scan'208";a="14110072"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       21 Aug 2012 15:28:14 +0000
+Received: from kaball.uk.xensource.com (10.80.2.59) by
+       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
+       8.3.213.0; Tue, 21 Aug 2012 16:28:14 +0100
+Date: Tue, 21 Aug 2012 16:27:53 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-X-Sender: sstabellini@kaball.uk.xensource.com
+To: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+In-Reply-To: <20120821145713.GG20289@phenom.dumpdata.com>
+Message-ID: <alpine.DEB.2.02.1208211626470.15568@kaball.uk.xensource.com>
+References: <1345133009-21941-1-git-send-email-konrad.wilk@oracle.com>
+       <1345133009-21941-12-git-send-email-konrad.wilk@oracle.com>
+       <alpine.DEB.2.02.1208211514130.15568@kaball.uk.xensource.com>
+       <20120821145713.GG20289@phenom.dumpdata.com>
+User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
+       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 11/11] xen/mmu: Release just the MFN list,
+ not MFN list and part of pagetables.
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Tue, 21 Aug 2012, Konrad Rzeszutek Wilk wrote:
+> On Tue, Aug 21, 2012 at 03:18:26PM +0100, Stefano Stabellini wrote:
+> > On Thu, 16 Aug 2012, Konrad Rzeszutek Wilk wrote:
+> > > We call memblock_reserve for [start of mfn list] -> [PMD aligned end
+> > > of mfn list] instead of <start of mfn list> -> <page aligned end of mfn list].
+> > > 
+> > > This has the disastrous effect that if at bootup the end of mfn_list is
+> > > not PMD aligned we end up returning to memblock parts of the region
+> > > past the mfn_list array. And those parts are the PTE tables with
+> > > the disastrous effect of seeing this at bootup:
+> > 
+> > This patch looks wrong to me.
+> 
+> Its easier to see if you stick the patch in the code. The size = part
+> was actually also done earlier.
+
+Yes, you are right, I see that know.
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<alpine.DEB.2.02.1208221146230.15568@kaball.uk.xensource.com> b/config/examples/test/corpus/<alpine.DEB.2.02.1208221146230.15568@kaball.uk.xensource.com>
new file mode 100644 (file)
index 0000000..408a70c
--- /dev/null
@@ -0,0 +1,267 @@
+From xen-devel-bounces@lists.xen.org Wed Aug 22 11:55:49 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 22 Aug 2012 11:55:49 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T48b9-0000tm-1i
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 22 Aug 2012 11:55:49 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T48W8-0000p4-Qb; Wed, 22 Aug 2012 10:50:32 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1T48W6-0000oz-PL
+       for xen-devel@lists.xensource.com; Wed, 22 Aug 2012 10:50:31 +0000
+Received: from [85.158.139.83:20257] by server-4.bemta-5.messagelabs.com id
+       BC/9D-12386-579B4305; Wed, 22 Aug 2012 10:50:29 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-8.tower-182.messagelabs.com!1345632628!18184919!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTAzMzU=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 8852 invoked from network); 22 Aug 2012 10:50:29 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-8.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
+       22 Aug 2012 10:50:29 -0000
+X-IronPort-AV: E=Sophos;i="4.77,808,1336348800"; d="scan'208";a="14122906"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       22 Aug 2012 10:49:02 +0000
+Received: from kaball.uk.xensource.com (10.80.2.59) by
+       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
+       8.3.213.0; Wed, 22 Aug 2012 11:49:02 +0100
+Date: Wed, 22 Aug 2012 11:48:40 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-X-Sender: sstabellini@kaball.uk.xensource.com
+To: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+In-Reply-To: <20120821190317.GA13035@phenom.dumpdata.com>
+Message-ID: <alpine.DEB.2.02.1208221146230.15568@kaball.uk.xensource.com>
+References: <1345133009-21941-1-git-send-email-konrad.wilk@oracle.com>
+       <1345133009-21941-3-git-send-email-konrad.wilk@oracle.com>
+       <alpine.DEB.2.02.1208171835010.15568@kaball.uk.xensource.com>
+       <20120820141305.GA2713@phenom.dumpdata.com>
+       <20120821172732.GA23715@phenom.dumpdata.com>
+       <20120821190317.GA13035@phenom.dumpdata.com>
+User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
+       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
+       "JBeulich@suse.com" <JBeulich@suse.com>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
+Subject: Re: [Xen-devel] Q:pt_base in COMPAT mode offset by two pages.
+ Was:Re: [PATCH 02/11] xen/x86: Use memblock_reserve for sensitive areas.
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Tue, 21 Aug 2012, Konrad Rzeszutek Wilk wrote:
+> On Tue, Aug 21, 2012 at 01:27:32PM -0400, Konrad Rzeszutek Wilk wrote:
+> > On Mon, Aug 20, 2012 at 10:13:05AM -0400, Konrad Rzeszutek Wilk wrote:
+> > > On Fri, Aug 17, 2012 at 06:35:12PM +0100, Stefano Stabellini wrote:
+> > > > On Thu, 16 Aug 2012, Konrad Rzeszutek Wilk wrote:
+> > > > > instead of a big memblock_reserve. This way we can be more
+> > > > > selective in freeing regions (and it also makes it easier
+> > > > > to understand where is what).
+> > > > > 
+> > > > > [v1: Move the auto_translate_physmap to proper line]
+> > > > > [v2: Per Stefano suggestion add more comments]
+> > > > > Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+> > > > 
+> > > > much better now!
+> > > 
+> > > Thought interestingly enough it breaks 32-bit dom0s (and only dom0s).
+> > > Will have a revised patch posted shortly.
+> > 
+> > Jan, I thought something odd. Part of this code replaces this:
+> > 
+> >    memblock_reserve(__pa(xen_start_info->mfn_list),
+> >            xen_start_info->pt_base - xen_start_info->mfn_list);
+> > 
+> > with a more region-by-region area. What I found out that if I boot this
+> > as 32-bit guest with a 64-bit hypervisor the xen_start_info->pt_base is
+> > actually wrong.
+> > 
+> > Specifically this is what bootup says:
+> > 
+> > (good working case - 32bit hypervisor with 32-bit dom0):
+> > (XEN)  Loaded kernel: c1000000->c1a23000
+> > (XEN)  Init. ramdisk: c1a23000->cf730e00
+> > (XEN)  Phys-Mach map: cf731000->cf831000
+> > (XEN)  Start info:    cf831000->cf83147c
+> > (XEN)  Page tables:   cf832000->cf8b5000
+> > (XEN)  Boot stack:    cf8b5000->cf8b6000
+> > (XEN)  TOTAL:         c0000000->cfc00000
+> > 
+> > [    0.000000] PT: cf832000 (f832000)
+> > [    0.000000] Reserving PT: f832000->f8b5000
+> > 
+> > And with a 64-bit hypervisor:
+> > 
+> > XEN) VIRTUAL MEMORY ARRANGEMENT:
+> > (XEN)  Loaded kernel: 00000000c1000000->00000000c1a23000
+> > (XEN)  Init. ramdisk: 00000000c1a23000->00000000cf730e00
+> > (XEN)  Phys-Mach map: 00000000cf731000->00000000cf831000
+> > (XEN)  Start info:    00000000cf831000->00000000cf8314b4
+> > (XEN)  Page tables:   00000000cf832000->00000000cf8b6000
+> > (XEN)  Boot stack:    00000000cf8b6000->00000000cf8b7000
+> > (XEN)  TOTAL:         00000000c0000000->00000000cfc00000
+> > (XEN)  ENTRY ADDRESS: 00000000c16bb22c
+> > 
+> > [    0.000000] PT: cf834000 (f834000)
+> > [    0.000000] Reserving PT: f834000->f8b8000
+> > 
+> > So the pt_base is offset by two pages. And looking at c/s 13257
+> > its not clear to me why this two page offset was added?
+> > 
+> > The toolstack works fine - so launching 32-bit guests either
+> > under a 32-bit hypervisor or 64-bit works fine:
+> > ] domainbuilder: detail: xc_dom_alloc_segment:   page tables  : 0xcf805000 -> 0xcf885000  (pfn 0xf805 + 0x80 pages)
+> > [    0.000000] PT: cf805000 (f805000)
+> > 
+> 
+> And this patch on top of the others fixes this..
+> 
+> 
+> >From 806c312e50f122c47913145cf884f53dd09d9199 Mon Sep 17 00:00:00 2001
+> From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+> Date: Tue, 21 Aug 2012 14:31:24 -0400
+> Subject: [PATCH] xen/x86: Workaround 64-bit hypervisor and 32-bit initial
+>  domain.
+> 
+> If a 64-bit hypervisor is booted with a 32-bit initial domain,
+> the hypervisor deals with the initial domain as "compat" and
+> does some extra adjustments (like pagetables are 4 bytes instead
+> of 8). It also adjusts the xen_start_info->pt_base incorrectly.
+> 
+> When booted with a 32-bit hypervisor (32-bit initial domain):
+> ..
+> (XEN)  Start info:    cf831000->cf83147c
+> (XEN)  Page tables:   cf832000->cf8b5000
+> ..
+> [    0.000000] PT: cf832000 (f832000)
+> [    0.000000] Reserving PT: f832000->f8b5000
+> 
+> And with a 64-bit hypervisor:
+> (XEN)  Start info:    00000000cf831000->00000000cf8314b4
+> (XEN)  Page tables:   00000000cf832000->00000000cf8b6000
+> 
+> [    0.000000] PT: cf834000 (f834000)
+> [    0.000000] Reserving PT: f834000->f8b8000
+> 
+> To deal with this, we keep keep track of the highest physical
+> address we have reserved via memblock_reserve. If that address
+> does not overlap with pt_base, we have a gap which we reserve.
+> 
+> Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+> ---
+>  arch/x86/xen/enlighten.c |   30 +++++++++++++++++++++---------
+>  1 files changed, 21 insertions(+), 9 deletions(-)
+> 
+> diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c
+> index e532eb5..511f92d 100644
+> --- a/arch/x86/xen/enlighten.c
+> +++ b/arch/x86/xen/enlighten.c
+> @@ -1002,19 +1002,24 @@ static int xen_write_msr_safe(unsigned int msr, unsigned low, unsigned high)
+>   * If the MFN is not in the m2p (provided to us by the hypervisor) this
+>   * function won't do anything. In practice this means that the XenBus
+>   * MFN won't be available for the initial domain. */
+> -static void __init xen_reserve_mfn(unsigned long mfn)
+> +static unsigned long __init xen_reserve_mfn(unsigned long mfn)
+>  {
+> -    unsigned long pfn;
+> +    unsigned long pfn, end_pfn = 0;
+>  
+>      if (!mfn)
+> -            return;
+> +            return end_pfn;
+> +
+>      pfn = mfn_to_pfn(mfn);
+> -    if (phys_to_machine_mapping_valid(pfn))
+> -            memblock_reserve(PFN_PHYS(pfn), PAGE_SIZE);
+> +    if (phys_to_machine_mapping_valid(pfn)) {
+> +            end_pfn = PFN_PHYS(pfn) + PAGE_SIZE;
+> +            memblock_reserve(PFN_PHYS(pfn), end_pfn);
+> +    }
+> +    return end_pfn;
+>  }
+>  static void __init xen_reserve_internals(void)
+>  {
+>      unsigned long size;
+> +    unsigned long last_phys = 0;
+>  
+>      if (!xen_pv_domain())
+>              return;
+> @@ -1022,12 +1027,13 @@ static void __init xen_reserve_internals(void)
+>      /* xen_start_info does not exist in the M2P, hence can't use
+>       * xen_reserve_mfn. */
+>      memblock_reserve(__pa(xen_start_info), PAGE_SIZE);
+> +    last_phys = __pa(xen_start_info) + PAGE_SIZE;
+>  
+> -    xen_reserve_mfn(PFN_DOWN(xen_start_info->shared_info));
+> -    xen_reserve_mfn(xen_start_info->store_mfn);
+> +    last_phys = max(xen_reserve_mfn(PFN_DOWN(xen_start_info->shared_info)), last_phys);
+> +    last_phys = max(xen_reserve_mfn(xen_start_info->store_mfn), last_phys);
+>  
+>      if (!xen_initial_domain())
+> -            xen_reserve_mfn(xen_start_info->console.domU.mfn);
+> +            last_phys = max(xen_reserve_mfn(xen_start_info->console.domU.mfn), last_phys);
+>  
+>      if (xen_feature(XENFEAT_auto_translated_physmap))
+>              return;
+> @@ -1043,8 +1049,14 @@ static void __init xen_reserve_internals(void)
+>       * a lot (and call memblock_reserve for each PAGE), so lets just use
+>       * the easy way and reserve it wholesale. */
+>      memblock_reserve(__pa(xen_start_info->mfn_list), size);
+> -
+> +    last_phys = max(__pa(xen_start_info->mfn_list) + size, last_phys);
+>      /* The pagetables are reserved in mmu.c */
+> +
+> +    /* Under 64-bit hypervisor with a 32-bit domain, the hypervisor
+> +     * offsets the pt_base by two pages. Hence the reservation that is done
+> +     * in mmu.c misses two pages. We correct it here if we detect this. */
+> +    if (last_phys < __pa(xen_start_info->pt_base))
+> +            memblock_reserve(last_phys, __pa(xen_start_info->pt_base) - last_phys);
+>  }
+
+What are these two pages used for? They are not documented in xen.h, why
+should we reserve them?
+
+After all we still have:
+
+memblock_reserve(PFN_PHYS(pt_base), (pt_end - pt_base) * PAGE_SIZE);
+
+that should protect what we are interested in anyway...
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<alpine.DEB.2.02.1208221159560.15568@kaball.uk.xensource.com> b/config/examples/test/corpus/<alpine.DEB.2.02.1208221159560.15568@kaball.uk.xensource.com>
new file mode 100644 (file)
index 0000000..13e5ac5
--- /dev/null
@@ -0,0 +1,223 @@
+From xen-devel-bounces@lists.xen.org Wed Aug 22 12:12:45 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 22 Aug 2012 12:12:45 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T48rW-0000w5-VW
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 22 Aug 2012 12:12:45 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T48mq-0001BP-QJ; Wed, 22 Aug 2012 11:07:48 +0000
+Received: from mail27.messagelabs.com ([193.109.254.147])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1T48mp-0001BH-5n
+       for xen-devel@lists.xensource.com; Wed, 22 Aug 2012 11:07:47 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-3.tower-27.messagelabs.com!1345633647!10176431!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTAzMzU=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 2207 invoked from network); 22 Aug 2012 11:07:27 -0000
+Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-3.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
+       22 Aug 2012 11:07:27 -0000
+X-IronPort-AV: E=Sophos;i="4.77,808,1336348800"; d="scan'208";a="14123292"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       22 Aug 2012 11:07:27 +0000
+Received: from kaball.uk.xensource.com (10.80.2.59) by
+       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
+       8.3.213.0; Wed, 22 Aug 2012 12:07:27 +0100
+Date: Wed, 22 Aug 2012 12:07:05 +0100
+From: Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+X-X-Sender: sstabellini@kaball.uk.xensource.com
+To: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>
+Message-ID: <alpine.DEB.2.02.1208221159560.15568@kaball.uk.xensource.com>
+User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
+MIME-Version: 1.0
+Content-ID: <alpine.DEB.2.02.1208221159562.15568@kaball.uk.xensource.com>
+Cc: Tim Deegan <tim@xen.org>, Ian Campbell <Ian.Campbell@citrix.com>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD autolearn=ham version=3.3.1
+Subject: [Xen-devel] [PATCH v4 0/6] ARM hypercall ABI: 64 bit ready
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+Hi all,
+this patch series makes the necessary changes to make sure that the
+current ARM hypercall ABI can be used as-is on 64 bit ARM platforms:
+
+- it defines xen_ulong_t as uint64_t on ARM;
+- it introduces a new macro to handle guest pointers, called
+XEN_GUEST_HANDLE_PARAM (that has size 4 bytes on aarch and is going to
+have size 8 bytes on aarch64);
+- it introduces two new macros to convert XEN_GUEST_HANDLE_PARAM to
+XEN_GUEST_HANDLE and vice versa;
+- it replaces all the occurrences of XEN_GUEST_HANDLE in hypercall
+parameters with XEN_GUEST_HANDLE_PARAM.
+
+
+On x86 and ia64 things should stay exactly the same.
+
+On ARM all the unsigned long and the guest pointers that are members of
+a struct become size 8 byte (both aarch and aarch64).
+However guest pointers that are passed as hypercall arguments in
+registers are going to be 4 bytes on aarch and 8 bytes on aarch64.
+
+It is based on Ian's arm-for-4.3 branch. 
+
+
+Changes in v4:
+- make both XEN_GUEST_HANDLE and XEN_GUEST_HANDLE_PARAM unions on ARM;
+- simplify set_xen_guest_handle_raw on ARM;
+- add type checking in guest_handle_to_param and guest_handle_from_param
+(all architectures).
+
+Changes in v3:
+- default all the guest_handle_* conversion macros to
+  XEN_GUEST_HANDLE_PARAM as return type;
+- add two new guest_handle_to_param and guest_handle_from_param macros
+  to do conversions.
+
+Changes in v2:
+- do not use an anonymous union in struct xen_add_to_physmap; 
+- do not replace the unsigned long in x86 specific calls;
+- do not replace the unsigned long in multicall_entry;
+- add missing include "xen.h" in version.h;
+- use proper printf flag for xen_ulong_t in python/xen/lowlevel/xc/xc;
+- add 2 missing #define _XEN_GUEST_HANDLE_PARAM for the compilation of
+the compat code;
+- add a patch to limit the maximum number of extents handled by
+do_memory_op;
+- remove the patch "introduce __lshrdi3 and __aeabi_llsr" that is
+already in the for-4.3 branch.
+
+
+
+Stefano Stabellini (6):
+      xen: improve changes to xen_add_to_physmap
+      xen: xen_ulong_t substitution
+      xen: change the limit of nr_extents to UINT_MAX >> MEMOP_EXTENT_SHIFT
+      xen: introduce XEN_GUEST_HANDLE_PARAM
+      xen: replace XEN_GUEST_HANDLE with XEN_GUEST_HANDLE_PARAM when appropriate
+      xen: more substitutions
+
+ tools/firmware/hvmloader/pci.c           |    2 +-
+ tools/python/xen/lowlevel/xc/xc.c        |    2 +-
+ xen/arch/arm/domain.c                    |    2 +-
+ xen/arch/arm/domctl.c                    |    2 +-
+ xen/arch/arm/hvm.c                       |    2 +-
+ xen/arch/arm/mm.c                        |    4 +-
+ xen/arch/arm/physdev.c                   |    2 +-
+ xen/arch/arm/sysctl.c                    |    2 +-
+ xen/arch/x86/compat.c                    |    2 +-
+ xen/arch/x86/cpu/mcheck/mce.c            |    2 +-
+ xen/arch/x86/domain.c                    |    2 +-
+ xen/arch/x86/domctl.c                    |    2 +-
+ xen/arch/x86/efi/runtime.c               |    2 +-
+ xen/arch/x86/hvm/hvm.c                   |   26 +++++++-------
+ xen/arch/x86/microcode.c                 |    2 +-
+ xen/arch/x86/mm.c                        |   36 ++++++++++++--------
+ xen/arch/x86/mm/hap/hap.c                |    2 +-
+ xen/arch/x86/mm/mem_event.c              |    2 +-
+ xen/arch/x86/mm/paging.c                 |    2 +-
+ xen/arch/x86/mm/shadow/common.c          |    2 +-
+ xen/arch/x86/oprofile/backtrace.c        |    4 ++-
+ xen/arch/x86/oprofile/xenoprof.c         |    6 ++--
+ xen/arch/x86/physdev.c                   |    2 +-
+ xen/arch/x86/platform_hypercall.c        |   10 ++++--
+ xen/arch/x86/sysctl.c                    |    2 +-
+ xen/arch/x86/traps.c                     |    2 +-
+ xen/arch/x86/x86_32/mm.c                 |    2 +-
+ xen/arch/x86/x86_32/traps.c              |    2 +-
+ xen/arch/x86/x86_64/compat/mm.c          |   16 ++++++---
+ xen/arch/x86/x86_64/cpu_idle.c           |    4 ++-
+ xen/arch/x86/x86_64/cpufreq.c            |    4 ++-
+ xen/arch/x86/x86_64/domain.c             |    2 +-
+ xen/arch/x86/x86_64/mm.c                 |    2 +-
+ xen/arch/x86/x86_64/platform_hypercall.c |    1 +
+ xen/arch/x86/x86_64/traps.c              |    2 +-
+ xen/common/compat/domain.c               |    2 +-
+ xen/common/compat/grant_table.c          |    8 ++--
+ xen/common/compat/memory.c               |    4 +-
+ xen/common/compat/multicall.c            |    1 +
+ xen/common/domain.c                      |    2 +-
+ xen/common/domctl.c                      |    2 +-
+ xen/common/event_channel.c               |    2 +-
+ xen/common/grant_table.c                 |   36 ++++++++++----------
+ xen/common/kernel.c                      |    4 +-
+ xen/common/kexec.c                       |   16 ++++----
+ xen/common/memory.c                      |    6 ++--
+ xen/common/multicall.c                   |    2 +-
+ xen/common/schedule.c                    |    2 +-
+ xen/common/sysctl.c                      |    2 +-
+ xen/common/xenoprof.c                    |    8 ++--
+ xen/drivers/acpi/pmstat.c                |    2 +-
+ xen/drivers/char/console.c               |    6 ++--
+ xen/drivers/passthrough/iommu.c          |    2 +-
+ xen/include/asm-arm/guest_access.h       |   32 ++++++++++++++++--
+ xen/include/asm-arm/hypercall.h          |    2 +-
+ xen/include/asm-arm/mm.h                 |    2 +-
+ xen/include/asm-x86/guest_access.h       |   29 ++++++++++++++--
+ xen/include/asm-x86/hap.h                |    2 +-
+ xen/include/asm-x86/hypercall.h          |   24 +++++++-------
+ xen/include/asm-x86/mem_event.h          |    2 +-
+ xen/include/asm-x86/mm.h                 |    8 ++--
+ xen/include/asm-x86/paging.h             |    2 +-
+ xen/include/asm-x86/processor.h          |    2 +-
+ xen/include/asm-x86/shadow.h             |    2 +-
+ xen/include/asm-x86/xenoprof.h           |    6 ++--
+ xen/include/public/arch-arm.h            |   32 ++++++++++++++----
+ xen/include/public/arch-ia64.h           |    9 +++++
+ xen/include/public/arch-x86/xen.h        |    9 +++++
+ xen/include/public/memory.h              |   11 ++++--
+ xen/include/public/version.h             |    4 ++-
+ xen/include/xen/acpi.h                   |    4 +-
+ xen/include/xen/hypercall.h              |   52 +++++++++++++++---------------
+ xen/include/xen/iommu.h                  |    2 +-
+ xen/include/xen/tmem_xen.h               |    2 +-
+ xen/include/xen/xencomm.h                |   22 ++++++++++++-
+ xen/include/xsm/xsm.h                    |    4 +-
+ xen/xsm/dummy.c                          |    2 +-
+ xen/xsm/flask/flask_op.c                 |    4 +-
+ xen/xsm/flask/hooks.c                    |    2 +-
+ xen/xsm/xsm_core.c                       |    2 +-
+ 80 files changed, 336 insertions(+), 206 deletions(-)
+
+Cheers,
+
+Stefano
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<alpine.DEB.2.02.1208221540570.15568@kaball.uk.xensource.com> b/config/examples/test/corpus/<alpine.DEB.2.02.1208221540570.15568@kaball.uk.xensource.com>
new file mode 100644 (file)
index 0000000..08b5761
--- /dev/null
@@ -0,0 +1,108 @@
+From xen-devel-bounces@lists.xen.org Wed Aug 22 15:46:09 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 22 Aug 2012 15:46:09 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T4CC3-0001lL-Lx
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 22 Aug 2012 15:46:09 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T4C8U-0000Cl-V8; Wed, 22 Aug 2012 14:42:22 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1T4C8S-0000CU-M4
+       for xen-devel@lists.xensource.com; Wed, 22 Aug 2012 14:42:20 +0000
+Received: from [85.158.143.35:53519] by server-3.bemta-4.messagelabs.com id
+       94/8E-09529-CCFE4305; Wed, 22 Aug 2012 14:42:20 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-16.tower-21.messagelabs.com!1345646538!13193740!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTAzMzU=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 26310 invoked from network); 22 Aug 2012 14:42:18 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-16.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
+       22 Aug 2012 14:42:18 -0000
+X-IronPort-AV: E=Sophos;i="4.77,808,1336348800"; d="scan'208";a="14128934"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       22 Aug 2012 14:41:34 +0000
+Received: from kaball.uk.xensource.com (10.80.2.59) by
+       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
+       8.3.213.0; Wed, 22 Aug 2012 15:41:34 +0100
+Date: Wed, 22 Aug 2012 15:41:12 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-X-Sender: sstabellini@kaball.uk.xensource.com
+To: Jan Beulich <JBeulich@suse.com>
+In-Reply-To: <503504FE0200007800096F08@nat28.tlf.novell.com>
+Message-ID: <alpine.DEB.2.02.1208221540570.15568@kaball.uk.xensource.com>
+References: <1345133009-21941-1-git-send-email-konrad.wilk@oracle.com>
+       <1345133009-21941-3-git-send-email-konrad.wilk@oracle.com>
+       <alpine.DEB.2.02.1208171835010.15568@kaball.uk.xensource.com>
+       <20120820141305.GA2713@phenom.dumpdata.com>
+       <20120821172732.GA23715@phenom.dumpdata.com>
+       <20120821190317.GA13035@phenom.dumpdata.com>
+       <503504FE0200007800096F08@nat28.tlf.novell.com>
+User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
+MIME-Version: 1.0
+Cc: "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>,
+       "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
+       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] Q:pt_base in COMPAT mode offset by two pages.
+ Was:Re: [PATCH 02/11] xen/x86: Use memblock_reserve for sensitive areas.
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Wed, 22 Aug 2012, Jan Beulich wrote:
+> >> The toolstack works fine - so launching 32-bit guests either
+> >> under a 32-bit hypervisor or 64-bit works fine:
+> >> ] domainbuilder: detail: xc_dom_alloc_segment:   page tables  : 0xcf805000 -> 
+> > 0xcf885000  (pfn 0xf805 + 0x80 pages)
+> >> [    0.000000] PT: cf805000 (f805000)
+> >> 
+> > 
+> > And this patch on top of the others fixes this..
+> 
+> I didn't look at this in too close detail, but I started to get
+> afraid that you might be making the code dependent on
+> many hypervisor implementation details. And should the
+> above turn out to be a bug in the hypervisor, I hope your
+> kernel side changes won't make it impossible to fix that bug.
+
+I agree
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<alpine.DEB.2.02.1208231656160.15568@kaball.uk.xensource.com> b/config/examples/test/corpus/<alpine.DEB.2.02.1208231656160.15568@kaball.uk.xensource.com>
new file mode 100644 (file)
index 0000000..06c3709
--- /dev/null
@@ -0,0 +1,187 @@
+From xen-devel-bounces@lists.xen.org Thu Aug 23 17:01:58 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 23 Aug 2012 17:01:58 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T4Zr1-0002y5-SX
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 23 Aug 2012 17:01:58 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T4ZnA-0006W5-Jj; Thu, 23 Aug 2012 15:57:56 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1T4Zn8-0006W0-Kw
+       for xen-devel@lists.xensource.com; Thu, 23 Aug 2012 15:57:54 +0000
+Received: from [85.158.138.51:47612] by server-8.bemta-3.messagelabs.com id
+       3A/31-29583-10356305; Thu, 23 Aug 2012 15:57:53 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-12.tower-174.messagelabs.com!1345737473!19738322!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTA0MjY=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 18803 invoked from network); 23 Aug 2012 15:57:53 -0000
+Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-12.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
+       23 Aug 2012 15:57:53 -0000
+X-IronPort-AV: E=Sophos;i="4.80,300,1344211200"; d="scan'208";a="14151314"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       23 Aug 2012 15:57:52 +0000
+Received: from kaball.uk.xensource.com (10.80.2.59) by
+       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
+       8.3.213.0; Thu, 23 Aug 2012 16:57:52 +0100
+Date: Thu, 23 Aug 2012 16:57:29 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-X-Sender: sstabellini@kaball.uk.xensource.com
+To: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+In-Reply-To: <20120823154012.GA18845@phenom.dumpdata.com>
+Message-ID: <alpine.DEB.2.02.1208231656160.15568@kaball.uk.xensource.com>
+References: <1345133009-21941-1-git-send-email-konrad.wilk@oracle.com>
+       <1345133009-21941-7-git-send-email-konrad.wilk@oracle.com>
+       <alpine.DEB.2.02.1208171839590.15568@kaball.uk.xensource.com>
+       <20120817174549.GA14257@phenom.dumpdata.com>
+       <alpine.DEB.2.02.1208201243180.15568@kaball.uk.xensource.com>
+       <1345463624.28762.67.camel@zakaz.uk.xensource.com>
+       <alpine.DEB.2.02.1208201257420.15568@kaball.uk.xensource.com>
+       <20120823154012.GA18845@phenom.dumpdata.com>
+User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
+MIME-Version: 1.0
+Cc: "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
+       "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
+       Ian Campbell <Ian.Campbell@citrix.com>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 06/11] xen/mmu: For 64-bit do not call
+ xen_map_identity_early
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Thu, 23 Aug 2012, Konrad Rzeszutek Wilk wrote:
+> >From 43fd7a5d9ecd31c2fc26851523cd4b5f7650fb39 Mon Sep 17 00:00:00 2001
+> From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+> Date: Thu, 12 Jul 2012 13:59:36 -0400
+> Subject: [PATCH] xen/mmu: For 64-bit do not call xen_map_identity_early
+> 
+> B/c we do not need it. During the startup the Xen provides
+                                            ^ remove the
+> us with all the initial memory mapped that we need to function.
+> 
+> The initial memory mapped is up to the bootstack, which means
+> we can reference using __ka up to 4.f):
+
+Thanks, that is what I was looking for.
+
+> (from xen/interface/xen.h):
+> 
+>  4. This the order of bootstrap elements in the initial virtual region:
+>    a. relocated kernel image
+>    b. initial ram disk              [mod_start, mod_len]
+>    c. list of allocated page frames [mfn_list, nr_pages]
+>    d. start_info_t structure        [register ESI (x86)]
+>    e. bootstrap page tables         [pt_base, CR3 (x86)]
+>    f. bootstrap stack               [register ESP (x86)]
+> 
+> (initial ram disk may be ommitted).
+> 
+> [v1: More comments in git commit]
+> Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+
+Acked-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+
+
+> ---
+>  arch/x86/xen/mmu.c |   11 +++++------
+>  1 files changed, 5 insertions(+), 6 deletions(-)
+> 
+> diff --git a/arch/x86/xen/mmu.c b/arch/x86/xen/mmu.c
+> index 7247e5a..a59070b 100644
+> --- a/arch/x86/xen/mmu.c
+> +++ b/arch/x86/xen/mmu.c
+> @@ -84,6 +84,7 @@
+>   */
+>  DEFINE_SPINLOCK(xen_reservation_lock);
+>  
+> +#ifdef CONFIG_X86_32
+>  /*
+>   * Identity map, in addition to plain kernel map.  This needs to be
+>   * large enough to allocate page table pages to allocate the rest.
+> @@ -91,7 +92,7 @@ DEFINE_SPINLOCK(xen_reservation_lock);
+>   */
+>  #define LEVEL1_IDENT_ENTRIES        (PTRS_PER_PTE * 4)
+>  static RESERVE_BRK_ARRAY(pte_t, level1_ident_pgt, LEVEL1_IDENT_ENTRIES);
+> -
+> +#endif
+>  #ifdef CONFIG_X86_64
+>  /* l3 pud for userspace vsyscall mapping */
+>  static pud_t level3_user_vsyscall[PTRS_PER_PUD] __page_aligned_bss;
+> @@ -1628,7 +1629,7 @@ static void set_page_prot(void *addr, pgprot_t prot)
+>      if (HYPERVISOR_update_va_mapping((unsigned long)addr, pte, 0))
+>              BUG();
+>  }
+> -
+> +#ifdef CONFIG_X86_32
+>  static void __init xen_map_identity_early(pmd_t *pmd, unsigned long max_pfn)
+>  {
+>      unsigned pmdidx, pteidx;
+> @@ -1679,7 +1680,7 @@ static void __init xen_map_identity_early(pmd_t *pmd, unsigned long max_pfn)
+>  
+>      set_page_prot(pmd, PAGE_KERNEL_RO);
+>  }
+> -
+> +#endif
+>  void __init xen_setup_machphys_mapping(void)
+>  {
+>      struct xen_machphys_mapping mapping;
+> @@ -1765,14 +1766,12 @@ void __init xen_setup_kernel_pagetable(pgd_t *pgd, unsigned long max_pfn)
+>      /* Note that we don't do anything with level1_fixmap_pgt which
+>       * we don't need. */
+>  
+> -    /* Set up identity map */
+> -    xen_map_identity_early(level2_ident_pgt, max_pfn);
+> -
+>      /* Make pagetable pieces RO */
+>      set_page_prot(init_level4_pgt, PAGE_KERNEL_RO);
+>      set_page_prot(level3_ident_pgt, PAGE_KERNEL_RO);
+>      set_page_prot(level3_kernel_pgt, PAGE_KERNEL_RO);
+>      set_page_prot(level3_user_vsyscall, PAGE_KERNEL_RO);
+> +    set_page_prot(level2_ident_pgt, PAGE_KERNEL_RO);
+>      set_page_prot(level2_kernel_pgt, PAGE_KERNEL_RO);
+>      set_page_prot(level2_fixmap_pgt, PAGE_KERNEL_RO);
+>  
+> -- 
+> 1.7.7.6
+> 
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<alpine.DEB.2.02.1209141631200.29232@kaball.uk.xensource.com> b/config/examples/test/corpus/<alpine.DEB.2.02.1209141631200.29232@kaball.uk.xensource.com>
new file mode 100644 (file)
index 0000000..5f30258
--- /dev/null
@@ -0,0 +1,112 @@
+From xen-devel-bounces@lists.xen.org Fri Sep 14 16:48:45 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 14 Sep 2012 16:48:45 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TCY8I-0005zJ-MK
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 14 Sep 2012 16:48:44 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TCY4s-0004Ip-KL; Fri, 14 Sep 2012 15:45:10 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1TCY4q-0004Ig-UK
+       for xen-devel@lists.xensource.com; Fri, 14 Sep 2012 15:45:09 +0000
+Received: from [85.158.143.35:54286] by server-2.bemta-4.messagelabs.com id
+       99/05-21239-40153505; Fri, 14 Sep 2012 15:45:08 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-3.tower-21.messagelabs.com!1347637506!13708711!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDkyOTU=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 16735 invoked from network); 14 Sep 2012 15:45:06 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-3.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
+       14 Sep 2012 15:45:06 -0000
+X-IronPort-AV: E=Sophos;i="4.80,423,1344211200"; d="scan'208";a="14551048"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       14 Sep 2012 15:45:05 +0000
+Received: from kaball.uk.xensource.com (10.80.2.59) by
+       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
+       8.3.279.1; Fri, 14 Sep 2012 16:45:05 +0100
+Date: Fri, 14 Sep 2012 16:44:23 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-X-Sender: sstabellini@kaball.uk.xensource.com
+To: Jan Beulich <JBeulich@suse.com>
+In-Reply-To: <50535AFA020000780009B7C4@nat28.tlf.novell.com>
+Message-ID: <alpine.DEB.2.02.1209141631200.29232@kaball.uk.xensource.com>
+References: <alpine.DEB.2.02.1208221159560.15568@kaball.uk.xensource.com>
+       <1345633688-31684-1-git-send-email-stefano.stabellini@eu.citrix.com>
+       <1347627587.24226.192.camel@zakaz.uk.xensource.com>
+       <1347628660.24226.197.camel@zakaz.uk.xensource.com>
+       <1347630442.24226.211.camel@zakaz.uk.xensource.com>
+       <1347630971.24226.214.camel@zakaz.uk.xensource.com>
+       <50535AFA020000780009B7C4@nat28.tlf.novell.com>
+User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
+       "Tim \(Xen.org\)" <tim@xen.org>, Ian Campbell <Ian.Campbell@citrix.com>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.7 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH v4 1/6] xen: improve changes to
+ xen_add_to_physmap
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Fri, 14 Sep 2012, Jan Beulich wrote:
+> >>> On 14.09.12 at 15:56, Ian Campbell <Ian.Campbell@citrix.com> wrote:
+> >> > > Might we prefer to have a batched version of this call? I don't think
+> >> > > we can shoehorn the necessary fields into xen_add_to_physmap_t though.
+> >> > 
+> >> > Actually, talking about this we Stefano we think we can. Since both idx
+> >> > and gpfn are unsigned longs they can become unions with a GUEST_HANDLE
+> >> > without changing the ABI on x86_32 or x86_64.
+> > 
+> > Except we need both foreign_domid and size, which currently overlap, and
+> > there's no other spare bits. Damn.
+> > 
+> > Looks like XENMEM_add_to_physmap_range is the only option :-(
+> 
+> You could use the first entry in each array to specify the counts,
+> which would at once allow mixed granularity on each list (should
+> that ever turn out useful); initially you would certainly want both
+> counts to match.
+
+I think it would be better from the interface point of view to have idx
+become the number of frames, and gpfn a pointer (a GUEST_HANDLE) to a
+struct that contains both arrays.
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<alpine.DEB.2.02.1209141652440.29232@kaball.uk.xensource.com> b/config/examples/test/corpus/<alpine.DEB.2.02.1209141652440.29232@kaball.uk.xensource.com>
new file mode 100644 (file)
index 0000000..c40da28
--- /dev/null
@@ -0,0 +1,129 @@
+From xen-devel-bounces@lists.xen.org Fri Sep 14 16:58:50 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 14 Sep 2012 16:58:50 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TCYI4-00061m-0b
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 14 Sep 2012 16:58:50 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TCYEG-0004k1-FI; Fri, 14 Sep 2012 15:54:52 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1TCYEE-0004jp-Lo
+       for xen-devel@lists.xensource.com; Fri, 14 Sep 2012 15:54:50 +0000
+Received: from [85.158.143.99:18121] by server-3.bemta-4.messagelabs.com id
+       FB/B5-08232-94353505; Fri, 14 Sep 2012 15:54:49 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-2.tower-216.messagelabs.com!1347638089!22196856!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDkyOTU=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 18642 invoked from network); 14 Sep 2012 15:54:49 -0000
+Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-2.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
+       14 Sep 2012 15:54:49 -0000
+X-IronPort-AV: E=Sophos;i="4.80,423,1344211200"; d="scan'208";a="14551236"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       14 Sep 2012 15:54:49 +0000
+Received: from kaball.uk.xensource.com (10.80.2.59) by
+       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
+       8.3.279.1; Fri, 14 Sep 2012 16:54:49 +0100
+Date: Fri, 14 Sep 2012 16:54:06 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-X-Sender: sstabellini@kaball.uk.xensource.com
+To: Ian Campbell <Ian.Campbell@citrix.com>
+In-Reply-To: <1347637953.14977.10.camel@zakaz.uk.xensource.com>
+Message-ID: <alpine.DEB.2.02.1209141652440.29232@kaball.uk.xensource.com>
+References: <alpine.DEB.2.02.1208221159560.15568@kaball.uk.xensource.com>
+       <1345633688-31684-1-git-send-email-stefano.stabellini@eu.citrix.com>
+       <1347627587.24226.192.camel@zakaz.uk.xensource.com>
+       <1347628660.24226.197.camel@zakaz.uk.xensource.com> 
+       <1347630442.24226.211.camel@zakaz.uk.xensource.com>
+       <1347630971.24226.214.camel@zakaz.uk.xensource.com>
+       <50535AFA020000780009B7C4@nat28.tlf.novell.com>
+       <alpine.DEB.2.02.1209141631200.29232@kaball.uk.xensource.com>
+       <1347637953.14977.10.camel@zakaz.uk.xensource.com>
+User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
+       "Keir \(Xen.org\)" <keir@xen.org>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>,
+       "Tim \(Xen.org\)" <tim@xen.org>,
+       "ijackson@chiark.greenend.org.uk" <ijackson@chiark.greenend.org.uk>,
+       Jan Beulich <JBeulich@suse.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.7 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH v4 1/6] xen: improve changes to
+ xen_add_to_physmap
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Fri, 14 Sep 2012, Ian Campbell wrote:
+> On Fri, 2012-09-14 at 16:44 +0100, Stefano Stabellini wrote:
+> > On Fri, 14 Sep 2012, Jan Beulich wrote:
+> > > >>> On 14.09.12 at 15:56, Ian Campbell <Ian.Campbell@citrix.com> wrote:
+> > > >> > > Might we prefer to have a batched version of this call? I don't think
+> > > >> > > we can shoehorn the necessary fields into xen_add_to_physmap_t though.
+> > > >> > 
+> > > >> > Actually, talking about this we Stefano we think we can. Since both idx
+> > > >> > and gpfn are unsigned longs they can become unions with a GUEST_HANDLE
+> > > >> > without changing the ABI on x86_32 or x86_64.
+> > > > 
+> > > > Except we need both foreign_domid and size, which currently overlap, and
+> > > > there's no other spare bits. Damn.
+> > > > 
+> > > > Looks like XENMEM_add_to_physmap_range is the only option :-(
+> > > 
+> > > You could use the first entry in each array to specify the counts,
+> > > which would at once allow mixed granularity on each list (should
+> > > that ever turn out useful); initially you would certainly want both
+> > > counts to match.
+> > 
+> > I think it would be better from the interface point of view to have idx
+> > become the number of frames, and gpfn a pointer (a GUEST_HANDLE) to a
+> > struct that contains both arrays.
+> 
+> We'd need to slip in enough info to allow continuations too. Perhaps
+> that can be done by manipulating the size and the handle to keep track
+> of progress. Or maybe we can get away with just just frobbing the size
+> if we process the array backwards.
+> 
+> Which is all sounding pretty gross. I'm very temped to add
+> add_to_physmap2...
+
+Yeah, I am OK with that.
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<alpine.DEB.2.02.1209171153350.29232@kaball.uk.xensource.com> b/config/examples/test/corpus/<alpine.DEB.2.02.1209171153350.29232@kaball.uk.xensource.com>
new file mode 100644 (file)
index 0000000..d6a7d71
--- /dev/null
@@ -0,0 +1,113 @@
+From xen-devel-bounces@lists.xen.org Mon Sep 17 11:59:58 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Mon, 17 Sep 2012 11:59:58 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TDZ3Q-000861-LW
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Mon, 17 Sep 2012 11:59:58 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TDYz9-0003lN-V4; Mon, 17 Sep 2012 10:55:27 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1TDYz8-0003lG-Bk
+       for xen-devel@lists.xensource.com; Mon, 17 Sep 2012 10:55:26 +0000
+Received: from [85.158.143.99:5013] by server-3.bemta-4.messagelabs.com id
+       94/A7-08232-D9107505; Mon, 17 Sep 2012 10:55:25 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-5.tower-216.messagelabs.com!1347879324!30314842!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDk2NDU=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 23941 invoked from network); 17 Sep 2012 10:55:24 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-5.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
+       17 Sep 2012 10:55:24 -0000
+X-IronPort-AV: E=Sophos;i="4.80,434,1344211200"; d="scan'208";a="14576972"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       17 Sep 2012 10:55:24 +0000
+Received: from kaball.uk.xensource.com (10.80.2.59) by
+       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
+       8.3.279.1; Mon, 17 Sep 2012 11:55:24 +0100
+Date: Mon, 17 Sep 2012 11:54:38 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-X-Sender: sstabellini@kaball.uk.xensource.com
+To: Mukesh Rathor <mukesh.rathor@oracle.com>
+In-Reply-To: <20120914160727.1ff41de2@mantra.us.oracle.com>
+Message-ID: <alpine.DEB.2.02.1209171153350.29232@kaball.uk.xensource.com>
+References: <alpine.DEB.2.02.1208221159560.15568@kaball.uk.xensource.com>
+       <1345633688-31684-1-git-send-email-stefano.stabellini@eu.citrix.com>
+       <1347627587.24226.192.camel@zakaz.uk.xensource.com>
+       <20120914160727.1ff41de2@mantra.us.oracle.com>
+User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
+       "Tim \(Xen.org\)" <tim@xen.org>, Ian Campbell <Ian.Campbell@citrix.com>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.7 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH v4 1/6] xen: improve changes to
+       xen_add_to_physmap
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Sat, 15 Sep 2012, Mukesh Rathor wrote:
+> On Fri, 14 Sep 2012 13:59:47 +0100
+> Ian Campbell <Ian.Campbell@citrix.com> wrote:
+> 
+> > 
+> > On Wed, 2012-08-22 at 12:08 +0100, Stefano Stabellini wrote:
+> > > This is an incremental patch on top of
+> > > c0bc926083b5987a3e9944eec2c12ad0580100e2: in order to retain binary
+> > > compatibility, it is better to introduce foreign_domid as part of a
+> > > union containing both size and foreign_domid.
+> > [...]
+> > > -    domid_t foreign_domid; /* IFF gmfn_foreign */
+> > > +    unsigned int space;
+> > >  
+> > >  #define XENMAPIDX_grant_table_status 0x80000000
+> > 
+> > Was this the final consensus on what this interface ought to look
+> > like?
+> > 
+> > Does it work for PVH too (Mukesh CCd)?
+> 
+> Yes it does. Please lmk if the final version asap so I can put in
+> my patch, and also test it.
+
+It the final version. I think it should go in, unless we want to drop it
+entirely in favor of xen_add_to_physmap_range.
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<alpine.DEB.2.02.1209191408460.29232@kaball.uk.xensource.com> b/config/examples/test/corpus/<alpine.DEB.2.02.1209191408460.29232@kaball.uk.xensource.com>
new file mode 100644 (file)
index 0000000..be9cffb
--- /dev/null
@@ -0,0 +1,376 @@
+From xen-devel-bounces@lists.xen.org Wed Sep 19 14:22:15 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 19 Sep 2012 14:22:15 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TEKEG-0001Yz-4A
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 19 Sep 2012 14:22:15 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TEKAT-00065O-TQ; Wed, 19 Sep 2012 13:18:17 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1TEKAR-000659-Mi
+       for xen-devel@lists.xensource.com; Wed, 19 Sep 2012 13:18:16 +0000
+Received: from [85.158.138.51:32312] by server-5.bemta-3.messagelabs.com id
+       66/BF-13133-616C9505; Wed, 19 Sep 2012 13:18:14 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-3.tower-174.messagelabs.com!1348060693!23100871!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTAxNzU=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 3147 invoked from network); 19 Sep 2012 13:18:14 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-3.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
+       19 Sep 2012 13:18:14 -0000
+X-IronPort-AV: E=Sophos;i="4.80,447,1344211200"; d="scan'208";a="14631692"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       19 Sep 2012 13:18:13 +0000
+Received: from kaball.uk.xensource.com (10.80.2.59) by
+       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
+       8.3.279.1; Wed, 19 Sep 2012 14:18:13 +0100
+Date: Wed, 19 Sep 2012 14:17:26 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-X-Sender: sstabellini@kaball.uk.xensource.com
+To: Ian Campbell <Ian.Campbell@citrix.com>
+In-Reply-To: <1348059789.14977.119.camel@zakaz.uk.xensource.com>
+Message-ID: <alpine.DEB.2.02.1209191408460.29232@kaball.uk.xensource.com>
+References: <alpine.DEB.2.02.1208221159560.15568@kaball.uk.xensource.com>
+       <1345633688-31684-1-git-send-email-stefano.stabellini@eu.citrix.com>
+       <1347627587.24226.192.camel@zakaz.uk.xensource.com>
+       <20120914160727.1ff41de2@mantra.us.oracle.com> 
+       <alpine.DEB.2.02.1209171153350.29232@kaball.uk.xensource.com>
+       <1348059789.14977.119.camel@zakaz.uk.xensource.com>
+User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
+       "Tim \(Xen.org\)" <tim@xen.org>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.8 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH v4 1/6] xen: improve changes to
+       xen_add_to_physmap
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Wed, 19 Sep 2012, Ian Campbell wrote:
+> Here is what I came up with on the ARM side. I'd image the X86 version
+> would not be that different.
+> 
+> Processing the batch in reverse order allows for continuations without
+> needing an explicit pdone type thing. Still seems a bit wrong somehow.
+> 
+> diff --git a/xen/arch/arm/mm.c b/xen/arch/arm/mm.c
+> index aec57e5..7d6101c 100644
+> --- a/xen/arch/arm/mm.c
+> +++ b/xen/arch/arm/mm.c
+> @@ -26,6 +26,8 @@
+>  #include <xen/preempt.h>
+>  #include <xen/errno.h>
+>  #include <xen/grant_table.h>
+> +#include <xen/softirq.h>
+> +#include <xen/event.h>
+>  #include <xen/guest_access.h>
+>  #include <xen/domain_page.h>
+>  #include <asm/page.h>
+> @@ -462,14 +464,17 @@ void share_xen_page_with_guest(struct page_info *page,
+>      spin_unlock(&d->page_alloc_lock);
+>  }
+>  
+> -static int xenmem_add_to_physmap_once(
+> +static int xenmem_add_to_physmap_one(
+>      struct domain *d,
+> -    const struct xen_add_to_physmap *xatp)
+> +    uint16_t space,
+> +    domid_t foreign_domid,
+> +    unsigned long idx,
+> +    xen_pfn_t gpfn)
+>  {
+> -    unsigned long mfn = 0, idx = 0;
+> +    unsigned long mfn = 0;
+>      int rc;
+>  
+> -    switch ( xatp->space )
+> +    switch ( space )
+>      {
+>      case XENMAPSPACE_grant_table:
+>          spin_lock(&d->grant_table->lock);
+> @@ -477,9 +482,8 @@ static int xenmem_add_to_physmap_once(
+>          if ( d->grant_table->gt_version == 0 )
+>              d->grant_table->gt_version = 1;
+>  
+> -        idx = xatp->idx;
+>          if ( d->grant_table->gt_version == 2 &&
+> -                (xatp->idx & XENMAPIDX_grant_table_status) )
+> +                (idx & XENMAPIDX_grant_table_status) )
+>          {
+>              idx &= ~XENMAPIDX_grant_table_status;
+>              if ( idx < nr_status_frames(d->grant_table) )
+> @@ -498,33 +502,31 @@ static int xenmem_add_to_physmap_once(
+>          spin_unlock(&d->grant_table->lock);
+>          break;
+>      case XENMAPSPACE_shared_info:
+> -        if ( xatp->idx == 0 )
+> +        if ( idx == 0 )
+>              mfn = virt_to_mfn(d->shared_info);
+>          break;
+>      case XENMAPSPACE_gmfn_foreign:
+>      {
+>          paddr_t maddr;
+>          struct domain *od;
+> -        static int x = 0;
+> -        rc = rcu_lock_target_domain_by_id(xatp->foreign_domid, &od);
+> +        rc = rcu_lock_target_domain_by_id(foreign_domid, &od);
+>          if ( rc < 0 )
+>              return rc;
+> -        maddr = p2m_lookup(od, xatp->idx << PAGE_SHIFT);
+> +
+> +        maddr = p2m_lookup(od, idx << PAGE_SHIFT);
+>          if ( maddr == INVALID_PADDR )
+>          {
+> -            printk("bad p2m lookup\n");
+> -            dump_p2m_lookup(od, xatp->idx << PAGE_SHIFT);
+> +            dump_p2m_lookup(od, idx << PAGE_SHIFT);
+>              rcu_unlock_domain(od);
+>              return -EINVAL;
+>          }
+> +
+>          mfn = maddr >> PAGE_SHIFT;
+> -    if (x && x--) {
+> -            printk("Mapping dom%d mfn 0x%lx to dom%d mfn 0x%"PRIpaddr"\n",
+> -                   od->domain_id, mfn, d->domain_id, xatp->gpfn);
+> -        }
+
+why remove the printk here?
+
+
+>          rcu_unlock_domain(od);
+>          break;
+>      }
+> +
+>      default:
+>          return -ENOSYS;
+>      }
+> @@ -532,19 +534,51 @@ static int xenmem_add_to_physmap_once(
+>      domain_lock(d);
+>  
+>      /* Map at new location. */
+> -    rc = guest_physmap_add_page(d, xatp->gpfn, mfn, 0);
+> -    if ( 0 && xatp->space == XENMAPSPACE_gmfn_foreign )
+> -        dump_p2m_lookup(d, xatp->gpfn << PAGE_SHIFT);
+> +    rc = guest_physmap_add_page(d, gpfn, mfn, 0);
+>  
+>      domain_unlock(d);
+>  
+>      return rc;
+>  }
+>  
+> -static int xenmem_add_to_physmap(struct domain *d,
+> -                                 struct xen_add_to_physmap *xatp)
+> +static int xenmem_add_to_physmap_range(struct domain *d,
+> +                                       struct xen_add_to_physmap_range *xatpr)
+>  {
+> -    return xenmem_add_to_physmap_once(d, xatp);
+> +    int rc;
+> +
+> +    /* Process entries in reverse order to allow continuations */
+> +    while ( xatpr->size > 0 )
+> +    {
+> +        xen_ulong_t idx;
+> +        xen_pfn_t gpfn;
+> +
+> +        rc = copy_from_guest_offset(&idx, xatpr->idxs, xatpr->size-1, 1);
+> +        if ( rc < 0 )
+> +            goto out;
+> +
+> +        rc = copy_from_guest_offset(&gpfn, xatpr->gpfns, xatpr->size-1, 1);
+> +        if ( rc < 0 )
+> +            goto out;
+> +
+> +        rc = xenmem_add_to_physmap_one(d, xatpr->space,
+> +                                       xatpr->foreign_domid,
+> +                                       idx, gpfn);
+> +
+> +        xatpr->size--;
+> +
+> +        /* Check for continuation if it's not the last interation */
+> +        if ( xatpr->size > 0 && hypercall_preempt_check() )
+> +        {
+> +            rc = -EAGAIN;
+> +            goto out;
+> +        }
+> +    }
+> +
+> +    rc = 0;
+> +
+> +out:
+> +    return rc;
+> +
+>  }
+>  
+>  long arch_memory_op(int op, XEN_GUEST_HANDLE(void) arg)
+> @@ -565,13 +599,41 @@ long arch_memory_op(int op, XEN_GUEST_HANDLE(void) arg)
+>          if ( rc != 0 )
+>              return rc;
+>  
+> -        rc = xenmem_add_to_physmap(d, &xatp);
+> +        rc = xenmem_add_to_physmap_one(d, xatp.space,
+> +                                       xatp.foreign_domid,
+> +                                       xatp.idx, xatp.gpfn);
+>  
+>          rcu_unlock_domain(d);
+>  
+>          return rc;
+>      }
+>  
+> +    case XENMEM_add_to_physmap_range:
+> +    {
+> +        struct xen_add_to_physmap_range xatpr;
+> +        struct domain *d;
+> +
+> +        if ( copy_from_guest(&xatpr, arg, 1) )
+> +            return -EFAULT;
+> +
+> +        rc = rcu_lock_target_domain_by_id(xatpr.domid, &d);
+> +        if ( rc != 0 )
+> +            return rc;
+> +
+> +        rc = xenmem_add_to_physmap_range(d, &xatpr);
+> +
+> +        rcu_unlock_domain(d);
+> +
+> +        if ( rc && copy_to_guest(arg, &xatpr, 1) )
+> +            rc = -EFAULT;
+> +
+> +        if ( rc == -EAGAIN )
+> +            rc = hypercall_create_continuation(
+> +                __HYPERVISOR_memory_op, "ih", op, arg);
+> +
+> +        return rc;
+> +    }
+> +
+>      default:
+>          return -ENOSYS;
+>      }
+> diff --git a/xen/include/public/memory.h b/xen/include/public/memory.h
+> index b2adfbe..1cc7a80 100644
+> --- a/xen/include/public/memory.h
+> +++ b/xen/include/public/memory.h
+> @@ -198,6 +198,15 @@ struct xen_machphys_mapping {
+>  typedef struct xen_machphys_mapping xen_machphys_mapping_t;
+>  DEFINE_XEN_GUEST_HANDLE(xen_machphys_mapping_t);
+>  
+> +/* Source mapping space. */
+> +/* ` enum phys_map_space { */
+> +#define XENMAPSPACE_shared_info  0 /* shared info page */
+> +#define XENMAPSPACE_grant_table  1 /* grant table page */
+> +#define XENMAPSPACE_gmfn         2 /* GMFN */
+> +#define XENMAPSPACE_gmfn_range   3 /* GMFN range */
+> +#define XENMAPSPACE_gmfn_foreign 4 /* GMFN from another dom */
+> +/* ` } */
+>  /*
+>   * Sets the GPFN at which a particular page appears in the specified guest's
+>   * pseudophysical address space.
+> @@ -211,26 +220,40 @@ struct xen_add_to_physmap {
+>      /* Number of pages to go through for gmfn_range */
+>      uint16_t    size;
+>  
+> -    /* Source mapping space. */
+> -#define XENMAPSPACE_shared_info  0 /* shared info page */
+> -#define XENMAPSPACE_grant_table  1 /* grant table page */
+> -#define XENMAPSPACE_gmfn         2 /* GMFN */
+> -#define XENMAPSPACE_gmfn_range   3 /* GMFN range */
+> -#define XENMAPSPACE_gmfn_foreign 4 /* GMFN from another guest */
+> -    uint16_t space;
+> +    uint16_t space; /* => enum phys_map_space */
+>      domid_t foreign_domid; /* IFF gmfn_foreign */
+
+I don't like very much that you have a uint16_t in the struct that
+actually represents a union
+
+
+>  #define XENMAPIDX_grant_table_status 0x80000000
+>  
+> -    /* Index into source mapping space. */
+> +    /* Index into space being mapped. */
+>      xen_ulong_t idx;
+>  
+> -    /* GPFN where the source mapping page should appear. */
+> +    /* GPFN in domid where the source mapping page should appear. */
+>      xen_pfn_t     gpfn;
+>  };
+>  typedef struct xen_add_to_physmap xen_add_to_physmap_t;
+>  DEFINE_XEN_GUEST_HANDLE(xen_add_to_physmap_t);
+>  
+> +/* A batched version of add_to_physmap. */
+> +#define XENMEM_add_to_physmap_range 23
+> +struct xen_add_to_physmap_range {
+> +    /* Which domain to change the mapping for. */
+> +    domid_t domid;
+> +    uint16_t space; /* => enum phys_map_space */
+> +
+> +    /* Number of pages to go through */
+> +    uint16_t size;
+> +    domid_t foreign_domid; /* IFF gmfn_foreign */
+> +
+> +    /* Indexes into space being mapped. */
+> +    XEN_GUEST_HANDLE(xen_ulong_t) idxs;
+> +
+> +    /* GPFN in domdwhere the source mapping page should appear. */
+                     ^ domid where
+
+> +    XEN_GUEST_HANDLE(xen_pfn_t) gpfns;
+> +};
+> +typedef struct xen_add_to_physmap_range xen_add_to_physmap_range_t;
+> +DEFINE_XEN_GUEST_HANDLE(xen_add_to_physmap_range_t);
+> +
+>  /*
+>   * Unmaps the page appearing at a particular GPFN from the specified guest's
+>   * pseudophysical address space.
+> diff --git a/xen/include/public/xen.h b/xen/include/public/xen.h
+> index b2f6c50..9425520 100644
+> --- a/xen/include/public/xen.h
+> +++ b/xen/include/public/xen.h
+> @@ -51,6 +51,7 @@ DEFINE_XEN_GUEST_HANDLE(void);
+>  
+>  DEFINE_XEN_GUEST_HANDLE(uint64_t);
+>  DEFINE_XEN_GUEST_HANDLE(xen_pfn_t);
+> +DEFINE_XEN_GUEST_HANDLE(xen_ulong_t);
+>  #endif
+
+You shouldn't need that: xen_ulong_t is already defined in arch-arm.h
+(and arch-x86/xen.h)
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<alpine.DEB.2.02.1209191420290.29232@kaball.uk.xensource.com> b/config/examples/test/corpus/<alpine.DEB.2.02.1209191420290.29232@kaball.uk.xensource.com>
new file mode 100644 (file)
index 0000000..f228e70
--- /dev/null
@@ -0,0 +1,171 @@
+From xen-devel-bounces@lists.xen.org Wed Sep 19 14:25:44 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 19 Sep 2012 14:25:44 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TEKHb-0001a8-1j
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 19 Sep 2012 14:25:44 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TEKDo-0006M5-H8; Wed, 19 Sep 2012 13:21:44 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1TEKDm-0006Lw-3t
+       for xen-devel@lists.xensource.com; Wed, 19 Sep 2012 13:21:42 +0000
+Received: from [85.158.138.51:5145] by server-6.bemta-3.messagelabs.com id
+       C4/3D-29694-5E6C9505; Wed, 19 Sep 2012 13:21:41 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-8.tower-174.messagelabs.com!1348060900!31137999!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTAxNzU=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 23446 invoked from network); 19 Sep 2012 13:21:40 -0000
+Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-8.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
+       19 Sep 2012 13:21:40 -0000
+X-IronPort-AV: E=Sophos;i="4.80,447,1344211200"; d="scan'208";a="14631793"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       19 Sep 2012 13:21:38 +0000
+Received: from kaball.uk.xensource.com (10.80.2.59) by
+       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
+       8.3.279.1; Wed, 19 Sep 2012 14:21:38 +0100
+Date: Wed, 19 Sep 2012 14:20:51 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-X-Sender: sstabellini@kaball.uk.xensource.com
+To: Ian Campbell <Ian.Campbell@citrix.com>
+In-Reply-To: <1348060180.14977.123.camel@zakaz.uk.xensource.com>
+Message-ID: <alpine.DEB.2.02.1209191420290.29232@kaball.uk.xensource.com>
+References: <alpine.DEB.2.02.1208221159560.15568@kaball.uk.xensource.com>
+       <1345633688-31684-1-git-send-email-stefano.stabellini@eu.citrix.com>
+       <1347627587.24226.192.camel@zakaz.uk.xensource.com>
+       <20120914160727.1ff41de2@mantra.us.oracle.com> 
+       <alpine.DEB.2.02.1209171153350.29232@kaball.uk.xensource.com>
+       <1348059789.14977.119.camel@zakaz.uk.xensource.com>
+       <1348060180.14977.123.camel@zakaz.uk.xensource.com>
+User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>, "Tim
+       \(Xen.org\)" <tim@xen.org>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.8 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH v4 1/6] xen: improve changes to
+ xen_add_to_physmap
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Wed, 19 Sep 2012, Ian Campbell wrote:
+> On Wed, 2012-09-19 at 14:03 +0100, Ian Campbell wrote:
+> 
+> > > It the final version. I think it should go in, unless we want to drop it
+> > > entirely in favor of xen_add_to_physmap_range.
+> > 
+> > Here is what I came up with on the ARM side. I'd image the X86 version
+> > would not be that different.
+> 
+> Here the (obvious) Linux side, for reference. No actual use of batching
+> just yet. It's based on top of a somewhat bastardized version of
+> Mukesh's PVH patches for privcmd.
+> 
+
+we also need the xen_remap_domain_mfn_range arm implementation
+
+> 
+> diff --git a/arch/arm/xen/enlighten.c b/arch/arm/xen/enlighten.c
+> index 43277f8..f01120a 100644
+> --- a/arch/arm/xen/enlighten.c
+> +++ b/arch/arm/xen/enlighten.c
+> @@ -88,13 +88,20 @@ static int pvh_add_to_xen_p2m(unsigned long lpfn, unsigned long fgmfn,
+>                            unsigned int domid)
+>  {
+>      int rc;
+> -    struct xen_add_to_physmap pmb = {.foreign_domid = domid};
+> -
+> -    pmb.gpfn = lpfn;
+> -    pmb.idx = fgmfn;
+> -    pmb.space = XENMAPSPACE_gmfn_foreign;
+> -
+> -    rc = HYPERVISOR_memory_op(XENMEM_add_to_physmap, &pmb);
+> +    struct xen_add_to_physmap_range xatp = {
+> +            .domid = DOMID_SELF,
+> +            .foreign_domid = domid,
+> +            .size = 1,
+> +            .space = XENMAPSPACE_gmfn_foreign,
+> +    };
+> +    unsigned long idx = fgmfn;
+> +    xen_pfn_t gpfn = lpfn;
+> +
+> +    set_xen_guest_handle(xatp.idxs, &idx);
+> +    set_xen_guest_handle(xatp.gpfns, &gpfn);
+> +                   domid, fgmfn, lpfn);
+> +
+> +    rc = HYPERVISOR_memory_op(XENMEM_add_to_physmap_range, &xatp);
+>      if (rc) {
+>              pr_warn("Failed to map pfn to mfn rc:%d pfn:%lx mfn:%lx\n",
+>                      rc, lpfn, fgmfn);
+> diff --git a/include/xen/interface/memory.h b/include/xen/interface/memory.h
+> index 8728330..64cabbb 100644
+> --- a/include/xen/interface/memory.h
+> +++ b/include/xen/interface/memory.h
+> @@ -183,6 +183,24 @@ struct xen_add_to_physmap {
+>  };
+>  DEFINE_GUEST_HANDLE_STRUCT(xen_add_to_physmap);
+>  
+> +#define XENMEM_add_to_physmap_range 23
+> +struct xen_add_to_physmap_range {
+> +    /* Which domain to change the mapping for. */
+> +    domid_t domid;
+> +    uint16_t space; /* => enum phys_map_space */
+> +
+> +    /* Number of pages to go through */
+> +    uint16_t size;
+> +    domid_t foreign_domid; /* IFF gmfn_foreign */
+> +
+> +    /* Indexes into space being mapped. */
+> +    GUEST_HANDLE(ulong) idxs;
+> +
+> +    /* GPFN in domdwhere the source mapping page should appear. */
+> +    GUEST_HANDLE(xen_pfn_t) gpfns;
+> +};
+> +DEFINE_GUEST_HANDLE_STRUCT(xen_add_to_physmap_range);
+> +
+>  /*
+>   * Translates a list of domain-specific GPFNs into MFNs. Returns a -ve error
+>   * code on failure. This call only works for auto-translated guests.
+> 
+> 
+> 
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<alpine.DEB.2.02.1209241257440.29232@kaball.uk.xensource.com> b/config/examples/test/corpus/<alpine.DEB.2.02.1209241257440.29232@kaball.uk.xensource.com>
new file mode 100644 (file)
index 0000000..65adb73
--- /dev/null
@@ -0,0 +1,191 @@
+From xen-devel-bounces@lists.xen.org Mon Sep 24 13:15:42 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Mon, 24 Sep 2012 13:15:42 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TG7Zc-0001or-DC
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Mon, 24 Sep 2012 13:15:42 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TG7VO-0006Jo-GO; Mon, 24 Sep 2012 12:11:18 +0000
+Received: from mail27.messagelabs.com ([193.109.254.147])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1TG7VM-0006JZ-SD
+       for Xen-devel@lists.xensource.com; Mon, 24 Sep 2012 12:11:17 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-4.tower-27.messagelabs.com!1348488491!11572617!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTA4NDk=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 19591 invoked from network); 24 Sep 2012 12:08:12 -0000
+Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-4.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
+       24 Sep 2012 12:08:12 -0000
+X-IronPort-AV: E=Sophos;i="4.80,474,1344211200"; d="scan'208";a="14722324"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       24 Sep 2012 12:08:11 +0000
+Received: from kaball.uk.xensource.com (10.80.2.59) by
+       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
+       8.3.279.1; Mon, 24 Sep 2012 13:08:11 +0100
+Date: Mon, 24 Sep 2012 13:07:19 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-X-Sender: sstabellini@kaball.uk.xensource.com
+To: Mukesh Rathor <mukesh.rathor@oracle.com>
+In-Reply-To: <20120921121659.5a723de9@mantra.us.oracle.com>
+Message-ID: <alpine.DEB.2.02.1209241257440.29232@kaball.uk.xensource.com>
+References: <20120921121659.5a723de9@mantra.us.oracle.com>
+User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
+MIME-Version: 1.0
+Cc: "Xen-devel@lists.xensource.com" <Xen-devel@lists.xensource.com>,
+       Ian Campbell <Ian.Campbell@citrix.com>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>,
+       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-5.0 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH v1 3/8]: PVH startup changes (enlighten.c)
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Fri, 21 Sep 2012, Mukesh Rathor wrote:
+> ---
+>  arch/x86/xen/enlighten.c |   99 ++++++++++++++++++++++++++++++++++++---------
+>  1 files changed, 79 insertions(+), 20 deletions(-)
+> 
+> diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c
+> index bf4bda6..98f1798 100644
+> --- a/arch/x86/xen/enlighten.c
+> +++ b/arch/x86/xen/enlighten.c
+> @@ -45,6 +45,7 @@
+>  #include <xen/hvm.h>
+>  #include <xen/hvc-console.h>
+>  #include <xen/acpi.h>
+> +#include <xen/features.h>
+>  
+>  #include <asm/paravirt.h>
+>  #include <asm/apic.h>
+> @@ -105,6 +106,9 @@ RESERVE_BRK(shared_info_page_brk, PAGE_SIZE);
+>  __read_mostly int xen_have_vector_callback;
+>  EXPORT_SYMBOL_GPL(xen_have_vector_callback);
+>  
+> +#define xen_pvh_domain() (xen_pv_domain() && \
+> +                      xen_feature(XENFEAT_auto_translated_physmap) && \
+> +                      xen_have_vector_callback)
+>  /*
+>   * Point at some empty memory to start with. We map the real shared_info
+>   * page as soon as fixmap is up and running.
+> @@ -139,6 +143,8 @@ struct tls_descs {
+>   */
+>  static DEFINE_PER_CPU(struct tls_descs, shadow_tls_desc);
+>  
+> +static void __init xen_hvm_init_shared_info(void);
+> +
+>  static void clamp_max_cpus(void)
+>  {
+>  #ifdef CONFIG_SMP
+> @@ -217,8 +223,9 @@ static void __init xen_banner(void)
+>      struct xen_extraversion extra;
+>      HYPERVISOR_xen_version(XENVER_extraversion, &extra);
+>  
+> -    printk(KERN_INFO "Booting paravirtualized kernel on %s\n",
+> -           pv_info.name);
+> +    printk(KERN_INFO "Booting paravirtualized kernel %son %s\n",
+> +            xen_feature(XENFEAT_auto_translated_physmap) ?
+> +                    "with PVH extensions " : "", pv_info.name);
+>      printk(KERN_INFO "Xen version: %d.%d%s%s\n",
+>             version >> 16, version & 0xffff, extra.extraversion,
+>             xen_feature(XENFEAT_mmu_pt_update_preserve_ad) ? " (preserve-AD)" : "");
+> @@ -271,12 +278,15 @@ static void xen_cpuid(unsigned int *ax, unsigned int *bx,
+>              break;
+>      }
+>  
+> -    asm(XEN_EMULATE_PREFIX "cpuid"
+> -            : "=a" (*ax),
+> -              "=b" (*bx),
+> -              "=c" (*cx),
+> -              "=d" (*dx)
+> -            : "0" (*ax), "2" (*cx));
+> +    if (xen_pvh_domain())
+> +            native_cpuid(ax, bx, cx, dx);
+> +    else
+> +            asm(XEN_EMULATE_PREFIX "cpuid"
+> +                    : "=a" (*ax),
+> +                    "=b" (*bx),
+> +                    "=c" (*cx),
+> +                    "=d" (*dx)
+> +                    : "0" (*ax), "2" (*cx));
+
+can't we just set the cpuid pvop to native_cpuid?
+
+
+>      *bx &= maskebx;
+>      *cx &= maskecx;
+> @@ -1034,6 +1044,10 @@ static int xen_write_msr_safe(unsigned int msr, unsigned low, unsigned high)
+>  
+>  void xen_setup_shared_info(void)
+>  {
+> +    /* do later in xen_pvh_guest_init() when extend_brk is properly setup*/
+
+Which one is the function that is going to get called later to do the
+initialization? It cannot be this one because it would still return
+immediately.
+
+
+> +    if (xen_pvh_domain() && xen_initial_domain())
+> +            return;
+> +
+>      if (!xen_feature(XENFEAT_auto_translated_physmap)) {
+>              set_fixmap(FIX_PARAVIRT_BOOTMAP,
+>                         xen_start_info->shared_info);
+>
+> @@ -1044,6 +1058,10 @@ void xen_setup_shared_info(void)
+>              HYPERVISOR_shared_info =
+>                      (struct shared_info *)__va(xen_start_info->shared_info);
+>  
+> +    /* PVH TBD/FIXME: vcpu info placement in phase 2 */
+> +    if (xen_pvh_domain())
+> +            return;
+
+It seems that if xen_initial_domain we always skip the initialization
+while if !xen_initial_domain we only initialize HYPERVISOR_shared_info.
+I don't understand why we have this difference.
+
+Also it might be worth refactoring xen_setup_shared_info moving out the
+call to xen_setup_vcpu_info_placement and xen_setup_mfn_list_list in
+order to avoid all these
+
+if ([!]xen_pvh_domain())
+    return;
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<alpine.DEB.2.02.1209251054140.29232@kaball.uk.xensource.com> b/config/examples/test/corpus/<alpine.DEB.2.02.1209251054140.29232@kaball.uk.xensource.com>
new file mode 100644 (file)
index 0000000..a57ebe4
--- /dev/null
@@ -0,0 +1,162 @@
+From xen-devel-bounces@lists.xen.org Tue Sep 25 11:08:57 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Tue, 25 Sep 2012 11:08:57 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TGS4R-0002KJ-PS
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 25 Sep 2012 11:08:57 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TGRzv-0002uZ-SS; Tue, 25 Sep 2012 10:04:11 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1TGRzt-0002u8-RR
+       for Xen-devel@lists.xensource.com; Tue, 25 Sep 2012 10:04:10 +0000
+Received: from [85.158.143.35:13440] by server-2.bemta-4.messagelabs.com id
+       6C/79-06610-99181605; Tue, 25 Sep 2012 10:04:09 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-3.tower-21.messagelabs.com!1348567446!13650659!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTEwNzk=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 25938 invoked from network); 25 Sep 2012 10:04:07 -0000
+Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-3.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
+       25 Sep 2012 10:04:07 -0000
+X-IronPort-AV: E=Sophos;i="4.80,481,1344211200"; d="scan'208";a="14744858"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       25 Sep 2012 10:04:06 +0000
+Received: from kaball.uk.xensource.com (10.80.2.59) by
+       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
+       8.3.279.1; Tue, 25 Sep 2012 11:04:06 +0100
+Date: Tue, 25 Sep 2012 11:03:13 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-X-Sender: sstabellini@kaball.uk.xensource.com
+To: Mukesh Rathor <mukesh.rathor@oracle.com>
+In-Reply-To: <20120924154335.097d3fb9@mantra.us.oracle.com>
+Message-ID: <alpine.DEB.2.02.1209251054140.29232@kaball.uk.xensource.com>
+References: <20120921121659.5a723de9@mantra.us.oracle.com>
+       <alpine.DEB.2.02.1209241257440.29232@kaball.uk.xensource.com>
+       <20120924154335.097d3fb9@mantra.us.oracle.com>
+User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
+MIME-Version: 1.0
+Cc: Ian Campbell <Ian.Campbell@citrix.com>,
+       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
+       "Xen-devel@lists.xensource.com" <Xen-devel@lists.xensource.com>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-5.0 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH v1 3/8]: PVH startup changes (enlighten.c)
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Mon, 24 Sep 2012, Mukesh Rathor wrote:
+> On Mon, 24 Sep 2012 13:07:19 +0100
+> Stefano Stabellini <stefano.stabellini@eu.citrix.com> wrote:
+> 
+> > On Fri, 21 Sep 2012, Mukesh Rathor wrote:
+> > > ---
+> > >  arch/x86/xen/enlighten.c |   99
+> > > ++++++++++++++++++++++++++++++++++++--------- 1 files changed, 79
+> > > insertions(+), 20 deletions(-)
+> > > 
+> > > +                        "with PVH extensions " : "", pv_info.name);
+> > >          printk(KERN_INFO "Xen version: %d.%d%s%s\n",
+> > >                 version >> 16, version & 0xffff, extra.extraversion,
+> > >                 xen_feature(XENFEAT_mmu_pt_update_preserve_ad) ?
+> > > " (preserve-AD)" : ""); @@ -271,12 +278,15 @@ static void
+> > > xen_cpuid(unsigned int *ax, unsigned int *bx, break;
+> > >          }
+> > >  
+> > > -        asm(XEN_EMULATE_PREFIX "cpuid"
+> > > -                : "=a" (*ax),
+> > > -                  "=b" (*bx),
+> > > -                  "=c" (*cx),
+> > > -                  "=d" (*dx)
+> > > -                : "0" (*ax), "2" (*cx));
+> > > +        if (xen_pvh_domain())
+> > > +                native_cpuid(ax, bx, cx, dx);
+> > > +        else
+> > > +                asm(XEN_EMULATE_PREFIX "cpuid"
+> > > +                        : "=a" (*ax),
+> > > +                        "=b" (*bx),
+> > > +                        "=c" (*cx),
+> > > +                        "=d" (*dx)
+> > > +                        : "0" (*ax), "2" (*cx));
+> > 
+> > can't we just set the cpuid pvop to native_cpuid?
+> 
+> We had talked about this a bit at code review. There is some massaging
+> before and after that goes on, and so we thought we should just leave 
+> it like that.
+
+Ah I see, are you talking about all the masks, correct?
+
+> > > +        if (xen_pvh_domain() && xen_initial_domain())
+> > > +                return;
+> > > +
+> > >          if (!xen_feature(XENFEAT_auto_translated_physmap)) {
+> > >                  set_fixmap(FIX_PARAVIRT_BOOTMAP,
+> > >                             xen_start_info->shared_info);
+> > >
+> > > @@ -1044,6 +1058,10 @@ void xen_setup_shared_info(void)
+> > >                  HYPERVISOR_shared_info =
+> > >                          (struct shared_info
+> > > *)__va(xen_start_info->shared_info); 
+> > > +        /* PVH TBD/FIXME: vcpu info placement in phase 2 */
+> > > +        if (xen_pvh_domain())
+> > > +                return;
+> > 
+> > It seems that if xen_initial_domain we always skip the initialization
+> > while if !xen_initial_domain we only initialize
+> > HYPERVISOR_shared_info. I don't understand why we have this
+> > difference.
+> 
+> The comment in xen_pvh_guest_init() explains it. For domU the library
+> maps the pfn at shared_info, ie, shared_info is pfn. For dom0, it's the
+> mfn. Dom0 then allocates a pfn via extend_brk, and maps the mfn to it. This
+> happens in the commond hvm code, xen_hvm_init_shared_info().
+
+This difference is really subtle, it would be nice to get rid of it.
+Could Xen allocate a pfn for dom0?
+Otherwise could we have the tools allocate an mfn instead of a pfn?
+In fact looking at xc_dom_x86.c, alloc_magic_pages is explicitly having
+a different behavior for xc_dom_feature_translated guests and allocates
+pfn instead of an mfn. Maybe we could get rid of that special case: less
+code in libxc, a common way of allocating the shared_info page for domU
+and dom0 => win.
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<alpine.DEB.2.02.1209261225340.29232@kaball.uk.xensource.com> b/config/examples/test/corpus/<alpine.DEB.2.02.1209261225340.29232@kaball.uk.xensource.com>
new file mode 100644 (file)
index 0000000..6eca024
--- /dev/null
@@ -0,0 +1,161 @@
+From xen-devel-bounces@lists.xen.org Wed Sep 26 12:39:37 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 26 Sep 2012 12:39:37 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TGpxm-00036G-BE
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 26 Sep 2012 12:39:37 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TGpsy-0001RR-Nt; Wed, 26 Sep 2012 11:34:36 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1TGpsx-0001RM-0J
+       for Xen-devel@lists.xensource.com; Wed, 26 Sep 2012 11:34:35 +0000
+Received: from [85.158.139.211:47626] by server-8.bemta-5.messagelabs.com id
+       C7/AC-18073-A48E2605; Wed, 26 Sep 2012 11:34:34 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-4.tower-206.messagelabs.com!1348659273!20040844!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTE1NzQ=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 14059 invoked from network); 26 Sep 2012 11:34:33 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-4.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
+       26 Sep 2012 11:34:33 -0000
+X-IronPort-AV: E=Sophos;i="4.80,490,1344211200"; d="scan'208";a="14774539"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       26 Sep 2012 11:34:33 +0000
+Received: from kaball.uk.xensource.com (10.80.2.59) by
+       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
+       8.3.279.1; Wed, 26 Sep 2012 12:34:33 +0100
+Date: Wed, 26 Sep 2012 12:33:39 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-X-Sender: sstabellini@kaball.uk.xensource.com
+To: Mukesh Rathor <mukesh.rathor@oracle.com>
+In-Reply-To: <20120925180416.0137d61a@mantra.us.oracle.com>
+Message-ID: <alpine.DEB.2.02.1209261225340.29232@kaball.uk.xensource.com>
+References: <20120921121659.5a723de9@mantra.us.oracle.com>
+       <alpine.DEB.2.02.1209241257440.29232@kaball.uk.xensource.com>
+       <20120924154335.097d3fb9@mantra.us.oracle.com>
+       <alpine.DEB.2.02.1209251054140.29232@kaball.uk.xensource.com>
+       <20120925180416.0137d61a@mantra.us.oracle.com>
+User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
+MIME-Version: 1.0
+Cc: Ian Campbell <Ian.Campbell@citrix.com>,
+       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
+       "Xen-devel@lists.xensource.com" <Xen-devel@lists.xensource.com>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-5.0 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH v1 3/8]: PVH startup changes (enlighten.c)
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Wed, 26 Sep 2012, Mukesh Rathor wrote:
+> On Tue, 25 Sep 2012 11:03:13 +0100
+> Stefano Stabellini <stefano.stabellini@eu.citrix.com> wrote:
+> 
+> > On Mon, 24 Sep 2012, Mukesh Rathor wrote:
+> > > On Mon, 24 Sep 2012 13:07:19 +0100
+> > > Stefano Stabellini <stefano.stabellini@eu.citrix.com> wrote:
+> > > 
+> > > > On Fri, 21 Sep 2012, Mukesh Rathor wrote:
+> > > > > +            return;
+> > > > > +
+> > > > >      if (!xen_feature(XENFEAT_auto_translated_physmap)) {
+> > > > >              set_fixmap(FIX_PARAVIRT_BOOTMAP,
+> > > > >                         xen_start_info->shared_info);
+> > > > >
+> > > > > @@ -1044,6 +1058,10 @@ void xen_setup_shared_info(void)
+> > > > >              HYPERVISOR_shared_info =
+> > > > >                      (struct shared_info
+> > > > > *)__va(xen_start_info->shared_info); 
+> > > > > +    /* PVH TBD/FIXME: vcpu info placement in phase 2 */
+> > > > > +    if (xen_pvh_domain())
+> > > > > +            return;
+> > > > 
+> > > > It seems that if xen_initial_domain we always skip the
+> > > > initialization while if !xen_initial_domain we only initialize
+> > > > HYPERVISOR_shared_info. I don't understand why we have this
+> > > > difference.
+> > > 
+> > > The comment in xen_pvh_guest_init() explains it. For domU the
+> > > library maps the pfn at shared_info, ie, shared_info is pfn. For
+> > > dom0, it's the mfn. Dom0 then allocates a pfn via extend_brk, and
+> > > maps the mfn to it. This happens in the commond hvm code,
+> > > xen_hvm_init_shared_info().
+> > 
+> > This difference is really subtle, it would be nice to get rid of it.
+> > Could Xen allocate a pfn for dom0?
+> 
+> Not easily.
+> 
+> > Otherwise could we have the tools allocate an mfn instead of a pfn?
+> > In fact looking at xc_dom_x86.c, alloc_magic_pages is explicitly
+> > having a different behavior for xc_dom_feature_translated guests and
+> > allocates pfn instead of an mfn. Maybe we could get rid of that
+> > special case: less code in libxc, a common way of allocating the
+> > shared_info page for domU and dom0 => win.
+> 
+> Wish it was simple. But for PV and PVH, domU, it's already setup the 
+> shared page. All we need to do is __va(shared_info). But for HVM domUs 
+> and PVH dom0, we need to hcall with pfn to get it remapped.
+
+For PVH domU is already setup as a pfn only because in
+tools/libxc/xc_dom_x86.c:alloc_magic_pages we have this code:
+
+    if ( xc_dom_feature_translated(dom) )
+        dom->shared_info_pfn = xc_dom_alloc_page(dom, "shared info");
+
+and in tools/libxc/xc_dom_x86.c:start_info_x86_64 we have:
+
+    xen_pfn_t shinfo =
+        xc_dom_feature_translated(dom) ? dom->shared_info_pfn : dom->
+        shared_info_mfn;
+
+if we simply get rid of the two "if xc_dom_feature_translated(dom)"
+wouldn't we get an mfn for PVH domU too? AFAICT all the other cases would
+remain unmodified, but PVH domU would start getting an mfn for shared_info.
+
+> Changing the
+> tool to map pfn, would result in unnecessary hcall for all PV and PVH
+> domUs. It's only two lines of code, so lets just leave it. I'll make the
+> comment better.
+
+Yes, there would be one more unnecessary hypercall but we would get rid
+of 4 "if". I think is a good trade off.
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<alpine.DEB.2.02.1210031242180.29232@kaball.uk.xensource.com> b/config/examples/test/corpus/<alpine.DEB.2.02.1210031242180.29232@kaball.uk.xensource.com>
new file mode 100644 (file)
index 0000000..f204d4e
--- /dev/null
@@ -0,0 +1,160 @@
+From xen-devel-bounces@lists.xen.org Wed Oct 03 13:04:01 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 03 Oct 2012 13:04:01 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TJNgE-0005iq-QF
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 03 Oct 2012 13:04:01 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TJNbq-0000ac-Fk; Wed, 03 Oct 2012 11:59:26 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1TJNbp-0000aT-1B
+       for Xen-devel@lists.xensource.com; Wed, 03 Oct 2012 11:59:25 +0000
+Received: from [85.158.138.51:14234] by server-7.bemta-3.messagelabs.com id
+       26/DA-15765-C982C605; Wed, 03 Oct 2012 11:59:24 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-3.tower-174.messagelabs.com!1349265563!24857654!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTMxMDE=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 26166 invoked from network); 3 Oct 2012 11:59:23 -0000
+Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-3.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
+       3 Oct 2012 11:59:23 -0000
+X-IronPort-AV: E=Sophos;i="4.80,527,1344211200"; d="scan'208";a="14913570"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       03 Oct 2012 11:59:22 +0000
+Received: from kaball.uk.xensource.com (10.80.2.59) by
+       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
+       8.3.279.1; Wed, 3 Oct 2012 12:59:22 +0100
+Date: Wed, 3 Oct 2012 12:58:22 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-X-Sender: sstabellini@kaball.uk.xensource.com
+To: Mukesh Rathor <mukesh.rathor@oracle.com>
+In-Reply-To: <20121002190323.2e16f6ff@mantra.us.oracle.com>
+Message-ID: <alpine.DEB.2.02.1210031242180.29232@kaball.uk.xensource.com>
+References: <20120921121659.5a723de9@mantra.us.oracle.com>
+       <alpine.DEB.2.02.1209241257440.29232@kaball.uk.xensource.com>
+       <20120924154335.097d3fb9@mantra.us.oracle.com>
+       <alpine.DEB.2.02.1209251054140.29232@kaball.uk.xensource.com>
+       <20120925180416.0137d61a@mantra.us.oracle.com>
+       <alpine.DEB.2.02.1209261225340.29232@kaball.uk.xensource.com>
+       <20121002183619.70734b7a@mantra.us.oracle.com>
+       <20121002190323.2e16f6ff@mantra.us.oracle.com>
+User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
+MIME-Version: 1.0
+Cc: "Xen-devel@lists.xensource.com" <Xen-devel@lists.xensource.com>,
+       Ian Campbell <Ian.Campbell@citrix.com>,
+       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH v1 3/8]: PVH startup changes (enlighten.c)
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Wed, 3 Oct 2012, Mukesh Rathor wrote:
+> On Tue, 2 Oct 2012 18:36:19 -0700
+> Mukesh Rathor <mukesh.rathor@oracle.com> wrote:
+> 
+> > On Wed, 26 Sep 2012 12:33:39 +0100
+> > Stefano Stabellini <stefano.stabellini@eu.citrix.com> wrote:
+> > 
+> > > > Wish it was simple. But for PV and PVH, domU, it's already setup
+> > > > the shared page. All we need to do is __va(shared_info). But for
+> > > > HVM domUs and PVH dom0, we need to hcall with pfn to get it
+> > > > remapped.
+> > > 
+> > > For PVH domU is already setup as a pfn only because in
+> > > tools/libxc/xc_dom_x86.c:alloc_magic_pages we have this code:
+> > > 
+> > >     if ( xc_dom_feature_translated(dom) )
+> > >         dom->shared_info_pfn = xc_dom_alloc_page(dom, "shared
+> > > info");
+> > > 
+> > > and in tools/libxc/xc_dom_x86.c:start_info_x86_64 we have:
+> > > 
+> > >     xen_pfn_t shinfo =
+> > >         xc_dom_feature_translated(dom) ? dom->shared_info_pfn :
+> > > dom-> shared_info_mfn;
+> > > 
+> > > if we simply get rid of the two "if xc_dom_feature_translated(dom)"
+> > > wouldn't we get an mfn for PVH domU too? AFAICT all the other cases
+> > > would remain unmodified, but PVH domU would start getting an mfn for
+> > > shared_info.
+> > > 
+> > > > Changing the
+> > > > tool to map pfn, would result in unnecessary hcall for all PV and
+> > > > PVH domUs. It's only two lines of code, so lets just leave it.
+> > > > I'll make the comment better.
+> > > 
+> > > Yes, there would be one more unnecessary hypercall but we would get
+> > > rid of 4 "if". I think is a good trade off.
+> > 
+> > Well, not really unfortunately! There are two fields in the library 
+> > shared_info_mfn and shared_info_pfn in struct xc_dom_image. For
+> > xlated, pfn is set, otherwise, mfn is set. If I set mfn for auto 
+> > xlated also, I end up changing/adding  more code in the library where
+> > it tries to map the shared page. Moreover, it's better to stick with
+> > the library assumption that for auto xlated, pfn is set, otherwise,
+> > mfn is set.
+> > 
+> > Hope that makes sense. I tried it, btw.
+> > 
+> 
+> I'm not able to make a quick change to xen to just put pfn for dom0
+> also. get_gpfn_from_mfn() is crashing.
+
+Did you add the newly allocated shared_info page to dom0's p2m?
+If not, the page doesn't actually belong to the domain (from the p2m
+POV), so get_gpfn_from_mfn might not behave correctly.
+
+
+> So for now, how about, lets go
+> with what I've got. I'll make a note, and when I do xen patch, I'll
+> figure it out, and would be a very small linux patch. I want to get
+> linux patch in soon before the window closes.
+
+We can leave page special as it is for now with very little
+consequences, because it is not part of the interface with Xen. However
+this is part of the interface, so whatever we choose here is going to be
+hard to change later on.
+
+I think it would be good if we could either make dom0 use a pfn or domU
+use mfn, whatever is easier for you.
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<alpine.DEB.2.02.1210031336210.29232@kaball.uk.xensource.com> b/config/examples/test/corpus/<alpine.DEB.2.02.1210031336210.29232@kaball.uk.xensource.com>
new file mode 100644 (file)
index 0000000..fcad95a
--- /dev/null
@@ -0,0 +1,111 @@
+From xen-devel-bounces@lists.xen.org Wed Oct 03 13:41:47 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 03 Oct 2012 13:41:47 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TJOGj-0005r8-9C
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 03 Oct 2012 13:41:46 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TJODB-0002HY-QU; Wed, 03 Oct 2012 12:38:01 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1TJOD9-0002HR-Ef
+       for Xen-devel@lists.xensource.com; Wed, 03 Oct 2012 12:37:59 +0000
+Received: from [85.158.138.51:55102] by server-14.bemta-3.messagelabs.com id
+       74/B0-25886-6A13C605; Wed, 03 Oct 2012 12:37:58 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-11.tower-174.messagelabs.com!1349267877!32924204!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTMxMDE=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 4592 invoked from network); 3 Oct 2012 12:37:58 -0000
+Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-11.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
+       3 Oct 2012 12:37:58 -0000
+X-IronPort-AV: E=Sophos;i="4.80,527,1344211200"; d="scan'208";a="14914854"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       03 Oct 2012 12:37:50 +0000
+Received: from kaball.uk.xensource.com (10.80.2.59) by
+       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
+       8.3.279.1; Wed, 3 Oct 2012 13:37:50 +0100
+Date: Wed, 3 Oct 2012 13:36:50 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-X-Sender: sstabellini@kaball.uk.xensource.com
+To: Ian Campbell <Ian.Campbell@citrix.com>
+In-Reply-To: <1349265914.650.136.camel@zakaz.uk.xensource.com>
+Message-ID: <alpine.DEB.2.02.1210031336210.29232@kaball.uk.xensource.com>
+References: <20120921121659.5a723de9@mantra.us.oracle.com>
+       <alpine.DEB.2.02.1209241257440.29232@kaball.uk.xensource.com>
+       <20120924154335.097d3fb9@mantra.us.oracle.com>
+       <alpine.DEB.2.02.1209251054140.29232@kaball.uk.xensource.com> 
+       <20120925180416.0137d61a@mantra.us.oracle.com>
+       <alpine.DEB.2.02.1209261225340.29232@kaball.uk.xensource.com>
+       <20121002183619.70734b7a@mantra.us.oracle.com>
+       <20121002190323.2e16f6ff@mantra.us.oracle.com>
+       <alpine.DEB.2.02.1210031242180.29232@kaball.uk.xensource.com>
+       <1349265914.650.136.camel@zakaz.uk.xensource.com>
+User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
+MIME-Version: 1.0
+Cc: "Xen-devel@lists.xensource.com" <Xen-devel@lists.xensource.com>,
+       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH v1 3/8]: PVH startup changes (enlighten.c)
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Wed, 3 Oct 2012, Ian Campbell wrote:
+> On Wed, 2012-10-03 at 12:58 +0100, Stefano Stabellini wrote:
+> > > So for now, how about, lets go
+> > > with what I've got. I'll make a note, and when I do xen patch, I'll
+> > > figure it out, and would be a very small linux patch. I want to get
+> > > linux patch in soon before the window closes.
+> > 
+> > We can leave page special as it is for now with very little
+> > consequences, because it is not part of the interface with Xen. However
+> > this is part of the interface, so whatever we choose here is going to be
+> > hard to change later on.
+> 
+> I suggested that until we have seen and reviewed the hypervisor side
+> patches this guest side functionality all needs to be under an option
+> which has CONFIG_EXPERIMENTAL as a dependency and a comment explaining
+> that the ABI is not fixed yet, similar to what we did for the ARM port.
+
+OK. In that case we can also keep the pfn/mfn issue as it is and change
+it later.
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<alpine.DEB.2.02.1210031431080.29232@kaball.uk.xensource.com> b/config/examples/test/corpus/<alpine.DEB.2.02.1210031431080.29232@kaball.uk.xensource.com>
new file mode 100644 (file)
index 0000000..8e28be6
--- /dev/null
@@ -0,0 +1,112 @@
+From xen-devel-bounces@lists.xen.org Wed Oct 03 14:42:56 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 03 Oct 2012 14:42:56 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TJPDu-00066E-T5
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 03 Oct 2012 14:42:56 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TJPAZ-0005QL-EK; Wed, 03 Oct 2012 13:39:23 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1TJPAX-0005QB-Kp
+       for xen-devel@lists.xensource.com; Wed, 03 Oct 2012 13:39:21 +0000
+Received: from [85.158.143.99:5045] by server-1.bemta-4.messagelabs.com id
+       EC/5E-05684-9004C605; Wed, 03 Oct 2012 13:39:21 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-14.tower-216.messagelabs.com!1349271560!23101827!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTMxMDE=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 16225 invoked from network); 3 Oct 2012 13:39:20 -0000
+Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-14.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
+       3 Oct 2012 13:39:20 -0000
+X-IronPort-AV: E=Sophos;i="4.80,528,1344211200"; d="scan'208";a="14916519"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       03 Oct 2012 13:38:53 +0000
+Received: from kaball.uk.xensource.com (10.80.2.59) by
+       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
+       8.3.279.1; Wed, 3 Oct 2012 14:38:53 +0100
+Date: Wed, 3 Oct 2012 14:37:53 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-X-Sender: sstabellini@kaball.uk.xensource.com
+To: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+Message-ID: <alpine.DEB.2.02.1210031431080.29232@kaball.uk.xensource.com>
+User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
+MIME-Version: 1.0
+Cc: xen-devel@lists.xensource.com, linux-kernel@vger.kernel.org,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: [Xen-devel] [PATCH] xen: point xen_start_info to a dummy struct for
+ PV on HVM guests
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+PV on HVM guests don't have a start_info page mapped by Xen, so
+xen_start_info is just NULL for them.
+That is problem because other parts of the code expect xen_start_info to
+point to something valid, for example xen_initial_domain() is defined as
+follow:
+
+#define xen_initial_domain()    (xen_domain() && \
+                 xen_start_info->flags & SIF_INITDOMAIN)
+
+
+Allocate a dummy start_info struct and point xen_start_info to it, as we
+do on ARM.
+This is not going to change things for PV guests because
+xen_start_info is set by arch/x86/xen/xen-head.S:startup_xen.
+
+Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+
+diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c
+index bf788d3..5f242cb 100644
+--- a/arch/x86/xen/enlighten.c
++++ b/arch/x86/xen/enlighten.c
+@@ -96,7 +96,8 @@ EXPORT_SYMBOL(machine_to_phys_mapping);
+ unsigned long  machine_to_phys_nr;
+ EXPORT_SYMBOL(machine_to_phys_nr);
+-struct start_info *xen_start_info;
++static struct start_info _xen_start_info;
++struct start_info *xen_start_info = &_xen_start_info;
+ EXPORT_SYMBOL_GPL(xen_start_info);
+ struct shared_info xen_dummy_shared_info;
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<alpine.DEB.2.02.1210031450220.29232@kaball.uk.xensource.com> b/config/examples/test/corpus/<alpine.DEB.2.02.1210031450220.29232@kaball.uk.xensource.com>
new file mode 100644 (file)
index 0000000..8e534c4
--- /dev/null
@@ -0,0 +1,107 @@
+From xen-devel-bounces@lists.xen.org Wed Oct 03 14:56:58 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 03 Oct 2012 14:56:58 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TJPRU-0006AZ-JA
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 03 Oct 2012 14:56:58 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TJPO9-0006NU-2U; Wed, 03 Oct 2012 13:53:25 +0000
+Received: from mail27.messagelabs.com ([193.109.254.147])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1TJPO7-0006NG-4I
+       for xen-devel@lists.xensource.com; Wed, 03 Oct 2012 13:53:23 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-13.tower-27.messagelabs.com!1349272380!8611597!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTMxMDE=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 17149 invoked from network); 3 Oct 2012 13:53:02 -0000
+Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-13.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
+       3 Oct 2012 13:53:02 -0000
+X-IronPort-AV: E=Sophos;i="4.80,528,1344211200"; d="scan'208";a="14916885"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       03 Oct 2012 13:52:59 +0000
+Received: from kaball.uk.xensource.com (10.80.2.59) by
+       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
+       8.3.279.1; Wed, 3 Oct 2012 14:52:59 +0100
+Date: Wed, 3 Oct 2012 14:51:59 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-X-Sender: sstabellini@kaball.uk.xensource.com
+To: Ian Campbell <Ian.Campbell@citrix.com>
+In-Reply-To: <1349272182.650.150.camel@zakaz.uk.xensource.com>
+Message-ID: <alpine.DEB.2.02.1210031450220.29232@kaball.uk.xensource.com>
+References: <alpine.DEB.2.02.1210031431080.29232@kaball.uk.xensource.com>
+       <1349272182.650.150.camel@zakaz.uk.xensource.com>
+User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
+MIME-Version: 1.0
+Cc: "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
+       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
+       "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH] xen: point xen_start_info to a dummy struct
+ for PV on HVM guests
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Wed, 3 Oct 2012, Ian Campbell wrote:
+> On Wed, 2012-10-03 at 14:37 +0100, Stefano Stabellini wrote:
+> > PV on HVM guests don't have a start_info page mapped by Xen, so
+> > xen_start_info is just NULL for them.
+> > That is problem because other parts of the code expect xen_start_info to
+> > point to something valid, for example xen_initial_domain() is defined as
+> > follow:
+> > 
+> > #define xen_initial_domain()    (xen_domain() && \
+> >                  xen_start_info->flags & SIF_INITDOMAIN)
+> 
+> But anyone who calls this before xen_start_info is setup is going to get
+> a bogus result, specifically in this case they will think they are domU
+> when in reality they are dom0 -- wouldn't it be better to fix those
+> callsites?
+
+That cannot be the case because setting up xen_start_info is the very
+first thing that is done, before even calling to C.
+
+
+> Perhaps turn this into a static inline with a BUG_ON(!xen_start_info) to
+> make catching these cases easier?
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<alpine.DEB.2.02.1210031641050.29232@kaball.uk.xensource.com> b/config/examples/test/corpus/<alpine.DEB.2.02.1210031641050.29232@kaball.uk.xensource.com>
new file mode 100644 (file)
index 0000000..8912582
--- /dev/null
@@ -0,0 +1,158 @@
+From xen-devel-bounces@lists.xen.org Wed Oct 03 16:53:34 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 03 Oct 2012 16:53:34 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TJRGK-0006hw-FX
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 03 Oct 2012 16:53:34 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TJRC4-0001qB-Di; Wed, 03 Oct 2012 15:49:04 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1TJRC2-0001q6-H7
+       for xen-devel@lists.xensource.com; Wed, 03 Oct 2012 15:49:02 +0000
+Received: from [85.158.139.211:12712] by server-16.bemta-5.messagelabs.com id
+       5E/BF-05998-D6E5C605; Wed, 03 Oct 2012 15:49:01 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-14.tower-206.messagelabs.com!1349279341!20884515!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTMxMDE=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 16396 invoked from network); 3 Oct 2012 15:49:01 -0000
+Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-14.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
+       3 Oct 2012 15:49:01 -0000
+X-IronPort-AV: E=Sophos;i="4.80,528,1344211200"; d="scan'208";a="14920034"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       03 Oct 2012 15:49:00 +0000
+Received: from kaball.uk.xensource.com (10.80.2.59) by
+       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
+       8.3.279.1; Wed, 3 Oct 2012 16:49:00 +0100
+Date: Wed, 3 Oct 2012 16:48:00 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-X-Sender: sstabellini@kaball.uk.xensource.com
+To: Ian Campbell <Ian.Campbell@citrix.com>
+In-Reply-To: <1349276431.650.156.camel@zakaz.uk.xensource.com>
+Message-ID: <alpine.DEB.2.02.1210031641050.29232@kaball.uk.xensource.com>
+References: <alpine.DEB.2.02.1210031431080.29232@kaball.uk.xensource.com>
+       <1349272182.650.150.camel@zakaz.uk.xensource.com>
+       <alpine.DEB.2.02.1210031450220.29232@kaball.uk.xensource.com>
+       <1349272482.650.151.camel@zakaz.uk.xensource.com> 
+       <20121003141116.GA10633@phenom.dumpdata.com>
+       <1349276431.650.156.camel@zakaz.uk.xensource.com>
+User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
+MIME-Version: 1.0
+Cc: "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>,
+       "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
+       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
+Subject: Re: [Xen-devel] [PATCH] xen: point xen_start_info to a dummy struct
+ for PV on HVM guests
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Wed, 3 Oct 2012, Ian Campbell wrote:
+> On Wed, 2012-10-03 at 15:11 +0100, Konrad Rzeszutek Wilk wrote:
+> > On Wed, Oct 03, 2012 at 02:54:42PM +0100, Ian Campbell wrote:
+> > > On Wed, 2012-10-03 at 14:51 +0100, Stefano Stabellini wrote:
+> > > > On Wed, 3 Oct 2012, Ian Campbell wrote:
+> > > > > On Wed, 2012-10-03 at 14:37 +0100, Stefano Stabellini wrote:
+> > > > > > PV on HVM guests don't have a start_info page mapped by Xen, so
+> > > > > > xen_start_info is just NULL for them.
+> > > > > > That is problem because other parts of the code expect xen_start_info to
+> > > > > > point to something valid, for example xen_initial_domain() is defined as
+> > > > > > follow:
+> > > > > > 
+> > > > > > #define xen_initial_domain()    (xen_domain() && \
+> > > > > >                  xen_start_info->flags & SIF_INITDOMAIN)
+> > > > > 
+> > > > > But anyone who calls this before xen_start_info is setup is going to get
+> > > > > a bogus result, specifically in this case they will think they are domU
+> > > > > when in reality they are dom0 -- wouldn't it be better to fix those
+> > > > > callsites?
+> > > > 
+> > > > That cannot be the case because setting up xen_start_info is the very
+> > > > first thing that is done, before even calling to C.
+> > > 
+> > > On PV, yes, but you are trying to fix PVHVM here, no?
+> > > 
+> > > Otherwise if this is always set before calling into C then what is the
+> > > purpose of this patch?
+> > 
+> > to fix this - as PVHVM has it set to NULL and we end up de-referencing
+> > the xen_start_info and crashing. As so::
+> > 
+> 
+> Right, so returning to my original point: The caller here is calling
+> xen_initial_domain() *before* start info is setup. This is bogus and is
+> your actual bug, all this patch does is hide that real issue.
+
+That is because xen_start_info wasn't setup at all for PV on HVM guests.
+
+The real reason is that PV on HVM guests don't have one, but that is
+another matter. Until we get rid of all the references to xen_start_info
+outside of PV specific code, we should just assume that there is one,
+and that is already setup.
+
+One day not too far from now, we might refactor the code to never
+reference xen_start_info directly, but I don't think that now is the
+time for that. Also consider that this is the same thing we do on ARM.
+
+
+> With this "fix" the caller of xen_initial_domain shown in this trace now
+> gets a rubbish result based on the content of a dummy shared info
+> instead of the real answer from that actual shared info.
+
+That is not true. The caller gets a zero result, that is completely
+appropriate in this case, given that a PV on HVM guest doesn't have a
+start_info.
+
+
+> The right fix is to fix the caller to not call xen_initial_domain()
+> until after the shared info has been setup. Maybe that means moving
+> shinfo setup earlier, or maybe it means deferring this call until later
+> in the PVHVM case.
+
+I don't think so, we should be able to call xen_initial_domain() at any
+point in the code.
+
+The best course of action is taking this fix now (making PVHVM x86
+guests behave the same way as ARM guests) and refactor all the callers to
+xen_start_info later.
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<alpine.DEB.2.02.1210031648330.29232@kaball.uk.xensource.com> b/config/examples/test/corpus/<alpine.DEB.2.02.1210031648330.29232@kaball.uk.xensource.com>
new file mode 100644 (file)
index 0000000..ce10de0
--- /dev/null
@@ -0,0 +1,140 @@
+From xen-devel-bounces@lists.xen.org Wed Oct 03 16:53:35 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 03 Oct 2012 16:53:35 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TJRGM-0006hy-2G
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 03 Oct 2012 16:53:35 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TJRCy-0001tY-S6; Wed, 03 Oct 2012 15:50:00 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1TJRCx-0001tN-D9
+       for xen-devel@lists.xensource.com; Wed, 03 Oct 2012 15:49:59 +0000
+Received: from [85.158.143.99:26360] by server-3.bemta-4.messagelabs.com id
+       80/4F-10986-6AE5C605; Wed, 03 Oct 2012 15:49:58 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-3.tower-216.messagelabs.com!1349279397!32130207!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTMxMDE=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 20249 invoked from network); 3 Oct 2012 15:49:58 -0000
+Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-3.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
+       3 Oct 2012 15:49:58 -0000
+X-IronPort-AV: E=Sophos;i="4.80,528,1344211200"; d="scan'208";a="14920059"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       03 Oct 2012 15:49:57 +0000
+Received: from kaball.uk.xensource.com (10.80.2.59) by
+       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
+       8.3.279.1; Wed, 3 Oct 2012 16:49:57 +0100
+Date: Wed, 3 Oct 2012 16:48:57 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-X-Sender: sstabellini@kaball.uk.xensource.com
+To: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+In-Reply-To: <20121003134323.GA31270@phenom.dumpdata.com>
+Message-ID: <alpine.DEB.2.02.1210031648330.29232@kaball.uk.xensource.com>
+References: <alpine.DEB.2.02.1210031431080.29232@kaball.uk.xensource.com>
+       <20121003134323.GA31270@phenom.dumpdata.com>
+User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
+       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
+Subject: Re: [Xen-devel] [PATCH] xen: point xen_start_info to a dummy struct
+ for PV on HVM guests
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Wed, 3 Oct 2012, Konrad Rzeszutek Wilk wrote:
+> On Wed, Oct 03, 2012 at 02:37:53PM +0100, Stefano Stabellini wrote:
+> > PV on HVM guests don't have a start_info page mapped by Xen, so
+> > xen_start_info is just NULL for them.
+> > That is problem because other parts of the code expect xen_start_info to
+> > point to something valid, for example xen_initial_domain() is defined as
+> > follow:
+> > 
+> > #define xen_initial_domain()    (xen_domain() && \
+> >                  xen_start_info->flags & SIF_INITDOMAIN)
+> > 
+> 
+> .. introduced by commit 4c071ee5268f7234c3d084b6093bebccc28cdcba
+> ("arm: initial Xen support)
+> 
+> > 
+> > Allocate a dummy start_info struct and point xen_start_info to it, as we
+> > do on ARM.
+> > This is not going to change things for PV guests because
+> > xen_start_info is set by arch/x86/xen/xen-head.S:startup_xen.
+> > 
+> > Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+> 
+> Reported-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+> > 
+> > diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c
+> > index bf788d3..5f242cb 100644
+> > --- a/arch/x86/xen/enlighten.c
+> > +++ b/arch/x86/xen/enlighten.c
+> > @@ -96,7 +96,8 @@ EXPORT_SYMBOL(machine_to_phys_mapping);
+> >  unsigned long  machine_to_phys_nr;
+> >  EXPORT_SYMBOL(machine_to_phys_nr);
+> >  
+> > -struct start_info *xen_start_info;
+> > +static struct start_info _xen_start_info;
+> 
+> And lets change that to
+> 'xen_dummy_start_info' to keep in sync with the other dummy one.
+> 
+> And also add a commnt:
+> 
+> /*
+>  * Since 'xen_initial_domain' dereferences the xen_start_info we need
+>  * a dummy structure filled with zeros (for PVHVM guests which initialize
+>  * this late). For PV guests we do not have to worry about this as the first
+>  * few instructions (startup_xen) set it  properly.
+>  */
+
+I agree with all the changes, I'll repost soon
+
+> > +struct start_info *xen_start_info = &_xen_start_info;
+> >  EXPORT_SYMBOL_GPL(xen_start_info);
+> >  
+> >  struct shared_info xen_dummy_shared_info;
+> 
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<alpine.DEB.2.02.1210031658120.29232@kaball.uk.xensource.com> b/config/examples/test/corpus/<alpine.DEB.2.02.1210031658120.29232@kaball.uk.xensource.com>
new file mode 100644 (file)
index 0000000..980680f
--- /dev/null
@@ -0,0 +1,180 @@
+From xen-devel-bounces@lists.xen.org Wed Oct 03 17:11:50 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 03 Oct 2012 17:11:50 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TJRY0-0006m7-ED
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 03 Oct 2012 17:11:50 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TJRTJ-00035m-Io; Wed, 03 Oct 2012 16:06:53 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1TJRTH-00035a-QK
+       for xen-devel@lists.xensource.com; Wed, 03 Oct 2012 16:06:52 +0000
+Received: from [85.158.143.99:9121] by server-3.bemta-4.messagelabs.com id
+       23/04-10986-B926C605; Wed, 03 Oct 2012 16:06:51 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-6.tower-216.messagelabs.com!1349280409!25728796!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTMxMDE=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 28948 invoked from network); 3 Oct 2012 16:06:50 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-6.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
+       3 Oct 2012 16:06:50 -0000
+X-IronPort-AV: E=Sophos;i="4.80,528,1344211200"; d="scan'208";a="14920536"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       03 Oct 2012 16:06:47 +0000
+Received: from kaball.uk.xensource.com (10.80.2.59) by
+       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
+       8.3.279.1; Wed, 3 Oct 2012 17:06:47 +0100
+Date: Wed, 3 Oct 2012 17:05:47 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-X-Sender: sstabellini@kaball.uk.xensource.com
+To: Ian Campbell <Ian.Campbell@citrix.com>
+In-Reply-To: <1349279862.650.171.camel@zakaz.uk.xensource.com>
+Message-ID: <alpine.DEB.2.02.1210031658120.29232@kaball.uk.xensource.com>
+References: <alpine.DEB.2.02.1210031431080.29232@kaball.uk.xensource.com>
+       <1349272182.650.150.camel@zakaz.uk.xensource.com>
+       <alpine.DEB.2.02.1210031450220.29232@kaball.uk.xensource.com>
+       <1349272482.650.151.camel@zakaz.uk.xensource.com> 
+       <20121003141116.GA10633@phenom.dumpdata.com>
+       <1349276431.650.156.camel@zakaz.uk.xensource.com>
+       <alpine.DEB.2.02.1210031641050.29232@kaball.uk.xensource.com>
+       <1349279862.650.171.camel@zakaz.uk.xensource.com>
+User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
+MIME-Version: 1.0
+Cc: "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
+       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
+       "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
+Subject: Re: [Xen-devel] [PATCH] xen: point xen_start_info to a dummy struct
+ for PV on HVM guests
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Wed, 3 Oct 2012, Ian Campbell wrote:
+> On Wed, 2012-10-03 at 16:48 +0100, Stefano Stabellini wrote:
+> > On Wed, 3 Oct 2012, Ian Campbell wrote:
+> > > On Wed, 2012-10-03 at 15:11 +0100, Konrad Rzeszutek Wilk wrote:
+> > > > On Wed, Oct 03, 2012 at 02:54:42PM +0100, Ian Campbell wrote:
+> > > > > On Wed, 2012-10-03 at 14:51 +0100, Stefano Stabellini wrote:
+> > > > > > On Wed, 3 Oct 2012, Ian Campbell wrote:
+> > > > > > > On Wed, 2012-10-03 at 14:37 +0100, Stefano Stabellini wrote:
+> > > > > > > > PV on HVM guests don't have a start_info page mapped by Xen, so
+> > > > > > > > xen_start_info is just NULL for them.
+> > > > > > > > That is problem because other parts of the code expect xen_start_info to
+> > > > > > > > point to something valid, for example xen_initial_domain() is defined as
+> > > > > > > > follow:
+> > > > > > > > 
+> > > > > > > > #define xen_initial_domain()    (xen_domain() && \
+> > > > > > > >                  xen_start_info->flags & SIF_INITDOMAIN)
+> > > > > > > 
+> > > > > > > But anyone who calls this before xen_start_info is setup is going to get
+> > > > > > > a bogus result, specifically in this case they will think they are domU
+> > > > > > > when in reality they are dom0 -- wouldn't it be better to fix those
+> > > > > > > callsites?
+> > > > > > 
+> > > > > > That cannot be the case because setting up xen_start_info is the very
+> > > > > > first thing that is done, before even calling to C.
+> > > > > 
+> > > > > On PV, yes, but you are trying to fix PVHVM here, no?
+> > > > > 
+> > > > > Otherwise if this is always set before calling into C then what is the
+> > > > > purpose of this patch?
+> > > > 
+> > > > to fix this - as PVHVM has it set to NULL and we end up de-referencing
+> > > > the xen_start_info and crashing. As so::
+> > > > 
+> > > 
+> > > Right, so returning to my original point: The caller here is calling
+> > > xen_initial_domain() *before* start info is setup. This is bogus and is
+> > > your actual bug, all this patch does is hide that real issue.
+> > 
+> > That is because xen_start_info wasn't setup at all for PV on HVM guests.
+> > 
+> > The real reason is that PV on HVM guests don't have one, but that is
+> > another matter. Until we get rid of all the references to xen_start_info
+> > outside of PV specific code, we should just assume that there is one,
+> > and that is already setup.
+> > 
+> > One day not too far from now, we might refactor the code to never
+> > reference xen_start_info directly, but I don't think that now is the
+> > time for that. Also consider that this is the same thing we do on ARM.
+> 
+> We actual fill in the dummy start info with valid information on ARM
+> though, we don't just leave it full of zeroes.
+> 
+> If we do start out with start_info pointing to an uninitialised
+> start_info on ARM too then I would argue that this is also a mistake.
+
+Yes, we do point xen_start_info to an uninitialised start_info on ARM
+too (I don't think is a mistake). Then when and if we have more
+information we write them to start_info.
+
+
+> We
+> should leave the NULL pointer in place until we setup the content of the
+> dummy start info -- exactly because the resulting crash indicates to us
+> that someone has accessed the si before we've initialised it.
+
+I don't think so. It is initialized to zero, that is the right thing to
+do.
+
+
+> > > With this "fix" the caller of xen_initial_domain shown in this trace now
+> > > gets a rubbish result based on the content of a dummy shared info
+> > > instead of the real answer from that actual shared info.
+> > 
+> > That is not true. The caller gets a zero result, that is completely
+> > appropriate in this case, given that a PV on HVM guest doesn't have a
+> > start_info.
+> 
+> It's just a side effect of Linux zeroing its bss though and zero
+> happening to be the right answer for a PVHVM guest in this case.
+
+well, I would call that "by design" ;-)
+
+
+> Is it true that zero is an appropriate result for all uses of fields in
+> start_info on PVHVM?
+
+I think so. In fact, if we wanted to, we could have the dummy struct
+initialized to something different, but I don't think that we should.
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<alpine.DEB.2.02.1210031758310.29232@kaball.uk.xensource.com> b/config/examples/test/corpus/<alpine.DEB.2.02.1210031758310.29232@kaball.uk.xensource.com>
new file mode 100644 (file)
index 0000000..7ef977c
--- /dev/null
@@ -0,0 +1,214 @@
+From xen-devel-bounces@lists.xen.org Wed Oct 03 18:11:33 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 03 Oct 2012 18:11:33 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TJSTq-00072D-Av
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 03 Oct 2012 18:11:32 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TJSQS-0005Ec-4P; Wed, 03 Oct 2012 17:08:00 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1TJSQQ-0005EU-V3
+       for xen-devel@lists.xensource.com; Wed, 03 Oct 2012 17:07:59 +0000
+Received: from [85.158.139.211:50729] by server-3.bemta-5.messagelabs.com id
+       44/DF-16108-EE07C605; Wed, 03 Oct 2012 17:07:58 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-3.tower-206.messagelabs.com!1349284077!20935670!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTMxMDE=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 20152 invoked from network); 3 Oct 2012 17:07:57 -0000
+Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-3.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
+       3 Oct 2012 17:07:57 -0000
+X-IronPort-AV: E=Sophos;i="4.80,528,1344211200"; d="scan'208";a="14921858"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       03 Oct 2012 17:07:56 +0000
+Received: from kaball.uk.xensource.com (10.80.2.59) by
+       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
+       8.3.279.1; Wed, 3 Oct 2012 18:07:56 +0100
+Date: Wed, 3 Oct 2012 18:06:56 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-X-Sender: sstabellini@kaball.uk.xensource.com
+To: Ian Campbell <Ian.Campbell@citrix.com>
+In-Reply-To: <1349282492.650.185.camel@zakaz.uk.xensource.com>
+Message-ID: <alpine.DEB.2.02.1210031758310.29232@kaball.uk.xensource.com>
+References: <alpine.DEB.2.02.1210031431080.29232@kaball.uk.xensource.com>
+       <1349272182.650.150.camel@zakaz.uk.xensource.com>
+       <alpine.DEB.2.02.1210031450220.29232@kaball.uk.xensource.com>
+       <1349272482.650.151.camel@zakaz.uk.xensource.com> 
+       <20121003141116.GA10633@phenom.dumpdata.com>
+       <1349276431.650.156.camel@zakaz.uk.xensource.com>
+       <alpine.DEB.2.02.1210031641050.29232@kaball.uk.xensource.com>
+       <1349279862.650.171.camel@zakaz.uk.xensource.com>
+       <alpine.DEB.2.02.1210031658120.29232@kaball.uk.xensource.com>
+       <1349280814.650.178.camel@zakaz.uk.xensource.com>
+       <1349282492.650.185.camel@zakaz.uk.xensource.com>
+User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
+       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
+       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
+Subject: Re: [Xen-devel] [PATCH] xen: point xen_start_info to a dummy struct
+ for PV on HVM guests
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Wed, 3 Oct 2012, Ian Campbell wrote:
+> On Wed, 2012-10-03 at 17:13 +0100, Ian Campbell wrote:
+> > On Wed, 2012-10-03 at 17:05 +0100, Stefano Stabellini wrote:
+> > > On Wed, 3 Oct 2012, Ian Campbell wrote:
+> > > > On Wed, 2012-10-03 at 16:48 +0100, Stefano Stabellini wrote:
+> > > > > On Wed, 3 Oct 2012, Ian Campbell wrote:
+> > > > > > On Wed, 2012-10-03 at 15:11 +0100, Konrad Rzeszutek Wilk wrote:
+> > > > > > > On Wed, Oct 03, 2012 at 02:54:42PM +0100, Ian Campbell wrote:
+> > > > > > > > On Wed, 2012-10-03 at 14:51 +0100, Stefano Stabellini wrote:
+> > > > > > > > > On Wed, 3 Oct 2012, Ian Campbell wrote:
+> > > > > > > > > > On Wed, 2012-10-03 at 14:37 +0100, Stefano Stabellini wrote:
+> > > > > > > > > > > PV on HVM guests don't have a start_info page mapped by Xen, so
+> > > > > > > > > > > xen_start_info is just NULL for them.
+> > > > > > > > > > > That is problem because other parts of the code expect xen_start_info to
+> > > > > > > > > > > point to something valid, for example xen_initial_domain() is defined as
+> > > > > > > > > > > follow:
+> > > > > > > > > > > 
+> > > > > > > > > > > #define xen_initial_domain()    (xen_domain() && \
+> > > > > > > > > > >                  xen_start_info->flags & SIF_INITDOMAIN)
+> > > > > > > > > > 
+> > > > > > > > > > But anyone who calls this before xen_start_info is setup is going to get
+> > > > > > > > > > a bogus result, specifically in this case they will think they are domU
+> > > > > > > > > > when in reality they are dom0 -- wouldn't it be better to fix those
+> > > > > > > > > > callsites?
+> > > > > > > > > 
+> > > > > > > > > That cannot be the case because setting up xen_start_info is the very
+> > > > > > > > > first thing that is done, before even calling to C.
+> > > > > > > > 
+> > > > > > > > On PV, yes, but you are trying to fix PVHVM here, no?
+> > > > > > > > 
+> > > > > > > > Otherwise if this is always set before calling into C then what is the
+> > > > > > > > purpose of this patch?
+> > > > > > > 
+> > > > > > > to fix this - as PVHVM has it set to NULL and we end up de-referencing
+> > > > > > > the xen_start_info and crashing. As so::
+> > > > > > > 
+> > > > > > 
+> > > > > > Right, so returning to my original point: The caller here is calling
+> > > > > > xen_initial_domain() *before* start info is setup. This is bogus and is
+> > > > > > your actual bug, all this patch does is hide that real issue.
+> > > > > 
+> > > > > That is because xen_start_info wasn't setup at all for PV on HVM guests.
+> > > > > 
+> > > > > The real reason is that PV on HVM guests don't have one, but that is
+> > > > > another matter. Until we get rid of all the references to xen_start_info
+> > > > > outside of PV specific code, we should just assume that there is one,
+> > > > > and that is already setup.
+> > > > > 
+> > > > > One day not too far from now, we might refactor the code to never
+> > > > > reference xen_start_info directly, but I don't think that now is the
+> > > > > time for that. Also consider that this is the same thing we do on ARM.
+> > > > 
+> > > > We actual fill in the dummy start info with valid information on ARM
+> > > > though, we don't just leave it full of zeroes.
+> > > > 
+> > > > If we do start out with start_info pointing to an uninitialised
+> > > > start_info on ARM too then I would argue that this is also a mistake.
+> > > 
+> > > Yes, we do point xen_start_info to an uninitialised start_info on ARM
+> > > too (I don't think is a mistake). Then when and if we have more
+> > > information we write them to start_info.
+> > 
+> > So callers of xen_initial_domain in dom0 before xen_guest_init is called
+> > get the wrong result?
+> > 
+> > That sounds like a mistake to me.
+> 
+> How about (modulo my not having looked up the actual names of the
+> constants etc):
+> 
+>      #define xen_initial_domain() (xen_domain() && arch_is_initial_domain())
+> 
+> on x86:
+>      int arch_is_initial_domain(void)
+>      {
+>              /* The initial domain is always PV and
+>               * therefore start_info is always set for it.
+>               */
+>              return start_info && start_info->flags & SIF_INITDOMAIN;
+>      }
+> on ARM:
+>      int arch_is_initial_domain(void)
+>      {
+>              static is_initial = -1;
+>              if (is_initial == -1)
+>                      is_initial = HVM_param_get(HVMPARAM_DOM0)
+>              return is_initial;
+>      }
+
+What about the appended patch as a fix for the moment, then we can do
+the refactoring that you are suggesting, that is very similar to what I
+had in mind when I said that we shouldn't access xen_start_info
+directly.
+
+---
+
+xen/xen_initial_domain: check that xen_start_info is initialized
+
+Since commit commit 4c071ee5268f7234c3d084b6093bebccc28cdcba ("arm:
+initial Xen support") PV on HVM guests can be xen_initial_domain.
+However PV on HVM guests might have an unitialized xen_start_info, so
+check before accessing its fields.
+
+Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+Reported-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+
+diff --git a/include/xen/xen.h b/include/xen/xen.h
+index 9a39ca5..e7101bb 100644
+--- a/include/xen/xen.h
++++ b/include/xen/xen.h
+@@ -28,7 +28,7 @@ extern enum xen_domain_type xen_domain_type;
+ #include <asm/xen/hypervisor.h>
+ #define xen_initial_domain()  (xen_domain() && \
+-                               xen_start_info->flags & SIF_INITDOMAIN)
++                               xen_start_info && xen_start_info->flags & SIF_INITDOMAIN)
+ #else  /* !CONFIG_XEN_DOM0 */
+ #define xen_initial_domain()  (0)
+ #endif        /* CONFIG_XEN_DOM0 */
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<alpine.DEB.2.02.1210031807340.29232@kaball.uk.xensource.com> b/config/examples/test/corpus/<alpine.DEB.2.02.1210031807340.29232@kaball.uk.xensource.com>
new file mode 100644 (file)
index 0000000..6c106b0
--- /dev/null
@@ -0,0 +1,117 @@
+From xen-devel-bounces@lists.xen.org Wed Oct 03 18:13:35 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 03 Oct 2012 18:13:35 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TJSVl-000731-Ll
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 03 Oct 2012 18:13:35 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TJSSK-0005Yo-J5; Wed, 03 Oct 2012 17:09:56 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1TJSSI-0005YN-J2
+       for xen-devel@lists.xensource.com; Wed, 03 Oct 2012 17:09:54 +0000
+Received: from [85.158.143.99:52891] by server-2.bemta-4.messagelabs.com id
+       A8/FB-06610-1617C605; Wed, 03 Oct 2012 17:09:53 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-14.tower-216.messagelabs.com!1349284193!23130410!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTMxMDE=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 8805 invoked from network); 3 Oct 2012 17:09:53 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-14.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
+       3 Oct 2012 17:09:53 -0000
+X-IronPort-AV: E=Sophos;i="4.80,528,1344211200"; d="scan'208";a="14921893"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       03 Oct 2012 17:09:52 +0000
+Received: from kaball.uk.xensource.com (10.80.2.59) by
+       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
+       8.3.279.1; Wed, 3 Oct 2012 18:09:52 +0100
+Date: Wed, 3 Oct 2012 18:08:52 +0100
+From: Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+X-X-Sender: sstabellini@kaball.uk.xensource.com
+To: Ian Campbell <Ian.Campbell@citrix.com>
+In-Reply-To: <1349282492.650.185.camel@zakaz.uk.xensource.com>
+Message-ID: <alpine.DEB.2.02.1210031807340.29232@kaball.uk.xensource.com>
+References: <alpine.DEB.2.02.1210031431080.29232@kaball.uk.xensource.com>
+       <1349272182.650.150.camel@zakaz.uk.xensource.com>
+       <alpine.DEB.2.02.1210031450220.29232@kaball.uk.xensource.com>
+       <1349272482.650.151.camel@zakaz.uk.xensource.com> 
+       <20121003141116.GA10633@phenom.dumpdata.com>
+       <1349276431.650.156.camel@zakaz.uk.xensource.com>
+       <alpine.DEB.2.02.1210031641050.29232@kaball.uk.xensource.com>
+       <1349279862.650.171.camel@zakaz.uk.xensource.com>
+       <alpine.DEB.2.02.1210031658120.29232@kaball.uk.xensource.com>
+       <1349280814.650.178.camel@zakaz.uk.xensource.com>
+       <1349282492.650.185.camel@zakaz.uk.xensource.com>
+User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
+       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
+       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: [Xen-devel] [PATCH] xen/xen_initial_domain: check that
+ xen_start_info is initialized
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+Since commit commit 4c071ee5268f7234c3d084b6093bebccc28cdcba ("arm:
+initial Xen support") PV on HVM guests can be xen_initial_domain.
+However PV on HVM guests might have an unitialized xen_start_info, so
+check before accessing its fields.
+
+Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+Acked-by: Ian Campbell <Ian.Campbell@citrix.com>
+Reported-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+
+diff --git a/include/xen/xen.h b/include/xen/xen.h
+index 9a39ca5..e7101bb 100644
+--- a/include/xen/xen.h
++++ b/include/xen/xen.h
+@@ -28,7 +28,7 @@ extern enum xen_domain_type xen_domain_type;
+ #include <asm/xen/hypervisor.h>
+ #define xen_initial_domain()  (xen_domain() && \
+-                               xen_start_info->flags & SIF_INITDOMAIN)
++                               xen_start_info && xen_start_info->flags & SIF_INITDOMAIN)
+ #else  /* !CONFIG_XEN_DOM0 */
+ #define xen_initial_domain()  (0)
+ #endif        /* CONFIG_XEN_DOM0 */
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<alpine.DEB.2.02.1210041106560.29232@kaball.uk.xensource.com> b/config/examples/test/corpus/<alpine.DEB.2.02.1210041106560.29232@kaball.uk.xensource.com>
new file mode 100644 (file)
index 0000000..dfcc630
--- /dev/null
@@ -0,0 +1,128 @@
+From xen-devel-bounces@lists.xen.org Thu Oct 04 11:12:43 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Thu, 04 Oct 2012 11:12:43 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TJiQ0-00064J-Se
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 04 Oct 2012 11:12:43 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TJiMW-0007Et-Eu; Thu, 04 Oct 2012 10:09:00 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1TJiMU-0007Eh-Ko
+       for xen-devel@lists.xensource.com; Thu, 04 Oct 2012 10:08:58 +0000
+Received: from [85.158.138.51:36941] by server-4.bemta-3.messagelabs.com id
+       0A/5E-14155-9306D605; Thu, 04 Oct 2012 10:08:57 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-12.tower-174.messagelabs.com!1349345337!25138935!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTMxNjA=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 20623 invoked from network); 4 Oct 2012 10:08:57 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-12.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
+       4 Oct 2012 10:08:57 -0000
+X-IronPort-AV: E=Sophos;i="4.80,533,1344211200"; d="scan'208";a="14935981"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       04 Oct 2012 10:08:46 +0000
+Received: from kaball.uk.xensource.com (10.80.2.59) by
+       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
+       8.3.279.1; Thu, 4 Oct 2012 11:08:46 +0100
+Date: Thu, 4 Oct 2012 11:07:46 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-X-Sender: sstabellini@kaball.uk.xensource.com
+To: Jan Beulich <JBeulich@suse.com>
+In-Reply-To: <506D5A53020000780009F8B7@nat28.tlf.novell.com>
+Message-ID: <alpine.DEB.2.02.1210041106560.29232@kaball.uk.xensource.com>
+References: <alpine.DEB.2.02.1210031431080.29232@kaball.uk.xensource.com>
+       <1349272182.650.150.camel@zakaz.uk.xensource.com>
+       <alpine.DEB.2.02.1210031450220.29232@kaball.uk.xensource.com>
+       <1349272482.650.151.camel@zakaz.uk.xensource.com>
+       <20121003141116.GA10633@phenom.dumpdata.com>
+       <1349276431.650.156.camel@zakaz.uk.xensource.com>
+       <alpine.DEB.2.02.1210031641050.29232@kaball.uk.xensource.com>
+       <1349279862.650.171.camel@zakaz.uk.xensource.com>
+       <alpine.DEB.2.02.1210031658120.29232@kaball.uk.xensource.com>
+       <1349280814.650.178.camel@zakaz.uk.xensource.com>
+       <1349282492.650.185.camel@zakaz.uk.xensource.com>
+       <alpine.DEB.2.02.1210031807340.29232@kaball.uk.xensource.com>
+       <506D5A53020000780009F8B7@nat28.tlf.novell.com>
+User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
+MIME-Version: 1.0
+Cc: "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
+       "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
+       Ian Campbell <Ian.Campbell@citrix.com>,
+       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH] xen/xen_initial_domain: check that
+ xen_start_info is initialized
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Thu, 4 Oct 2012, Jan Beulich wrote:
+> >>> On 03.10.12 at 19:08, Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+> wrote:
+> > Since commit commit 4c071ee5268f7234c3d084b6093bebccc28cdcba ("arm:
+> > initial Xen support") PV on HVM guests can be xen_initial_domain.
+> > However PV on HVM guests might have an unitialized xen_start_info, so
+> > check before accessing its fields.
+> > 
+> > Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+> > Acked-by: Ian Campbell <Ian.Campbell@citrix.com>
+> > Reported-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+> > 
+> > diff --git a/include/xen/xen.h b/include/xen/xen.h
+> > index 9a39ca5..e7101bb 100644
+> > --- a/include/xen/xen.h
+> > +++ b/include/xen/xen.h
+> > @@ -28,7 +28,7 @@ extern enum xen_domain_type xen_domain_type;
+> >  #include <asm/xen/hypervisor.h>
+> >  
+> >  #define xen_initial_domain()      (xen_domain() && \
+> > -                           xen_start_info->flags & SIF_INITDOMAIN)
+> > +                           xen_start_info && xen_start_info->flags & SIF_INITDOMAIN)
+> >  #else  /* !CONFIG_XEN_DOM0 */
+> >  #define xen_initial_domain()      (0)
+> >  #endif    /* CONFIG_XEN_DOM0 */
+> 
+> Didn't your other patch statically initialize it?
+
+Yes. Even though both patches can safely coexist, I wrote this one as an
+alternative solution.
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<alpine.DEB.2.02.1210051239100.29232@kaball.uk.xensource.com> b/config/examples/test/corpus/<alpine.DEB.2.02.1210051239100.29232@kaball.uk.xensource.com>
new file mode 100644 (file)
index 0000000..90a63bc
--- /dev/null
@@ -0,0 +1,120 @@
+From xen-devel-bounces@lists.xen.org Fri Oct 05 12:47:31 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 05 Oct 2012 12:47:31 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TK6NJ-0007SV-NP
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 05 Oct 2012 12:47:31 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TK6KH-0007UG-68; Fri, 05 Oct 2012 11:44:17 +0000
+Received: from mail27.messagelabs.com ([193.109.254.147])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1TK6KF-0007TD-Da
+       for xen-devel@lists.xen.org; Fri, 05 Oct 2012 11:44:15 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-10.tower-27.messagelabs.com!1349437449!3784938!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTMxNTE=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 7798 invoked from network); 5 Oct 2012 11:44:09 -0000
+Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-10.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
+       5 Oct 2012 11:44:09 -0000
+X-IronPort-AV: E=Sophos;i="4.80,541,1344211200"; d="scan'208";a="14961323"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       05 Oct 2012 11:44:09 +0000
+Received: from kaball.uk.xensource.com (10.80.2.59) by
+       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
+       8.3.279.1; Fri, 5 Oct 2012 12:44:09 +0100
+Date: Fri, 5 Oct 2012 12:43:07 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-X-Sender: sstabellini@kaball.uk.xensource.com
+To: Ian Campbell <ian.campbell@citrix.com>
+In-Reply-To: <1349363515-26190-3-git-send-email-ian.campbell@citrix.com>
+Message-ID: <alpine.DEB.2.02.1210051239100.29232@kaball.uk.xensource.com>
+References: <1349363496.866.49.camel@zakaz.uk.xensource.com>
+       <1349363515-26190-3-git-send-email-ian.campbell@citrix.com>
+User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
+MIME-Version: 1.0
+Cc: Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
+       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 03/14] xen events: xen_callback_vector is
+       x86 specific
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Thu, 4 Oct 2012, Ian Campbell wrote:
+> Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+> ---
+> Should instead move somewhere arch specific?
+
+This shouldn't be needed: it should be already protected by
+CONFIG_XEN_PVHVM (that is x86 specific).
+
+
+>  drivers/xen/events.c |    4 ++++
+>  1 files changed, 4 insertions(+), 0 deletions(-)
+> 
+> diff --git a/drivers/xen/events.c b/drivers/xen/events.c
+> index 6f55ef2..2508981 100644
+> --- a/drivers/xen/events.c
+> +++ b/drivers/xen/events.c
+> @@ -1775,6 +1775,7 @@ int xen_set_callback_via(uint64_t via)
+>  EXPORT_SYMBOL_GPL(xen_set_callback_via);
+>  
+>  
+> +#ifdef CONFIG_X86
+>  /* Vector callbacks are better than PCI interrupts to receive event
+>   * channel notifications because we can receive vector callbacks on any
+>   * vcpu and we don't need PCI support or APIC interactions. */
+> @@ -1798,6 +1799,9 @@ void xen_callback_vector(void)
+>                      alloc_intr_gate(XEN_HVM_EVTCHN_CALLBACK, xen_hvm_callback_vector);
+>      }
+>  }
+> +#else
+> +void xen_callback_vector(void) {}
+> +#endif
+>  
+>  void xen_init_IRQ(void)
+>  {
+> -- 
+> 1.7.2.5
+> 
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<alpine.DEB.2.02.1210051243480.29232@kaball.uk.xensource.com> b/config/examples/test/corpus/<alpine.DEB.2.02.1210051243480.29232@kaball.uk.xensource.com>
new file mode 100644 (file)
index 0000000..521f46a
--- /dev/null
@@ -0,0 +1,112 @@
+From xen-devel-bounces@lists.xen.org Fri Oct 05 12:52:31 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 05 Oct 2012 12:52:31 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TK6SA-0007UB-3j
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 05 Oct 2012 12:52:31 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TK6Ov-00082Y-UH; Fri, 05 Oct 2012 11:49:05 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1TK6Ot-00082M-Q4
+       for xen-devel@lists.xen.org; Fri, 05 Oct 2012 11:49:03 +0000
+Received: from [85.158.143.99:44944] by server-1.bemta-4.messagelabs.com id
+       7D/96-05684-F29CE605; Fri, 05 Oct 2012 11:49:03 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-14.tower-216.messagelabs.com!1349437742!23382648!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTMxNTE=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 11879 invoked from network); 5 Oct 2012 11:49:02 -0000
+Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-14.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
+       5 Oct 2012 11:49:02 -0000
+X-IronPort-AV: E=Sophos;i="4.80,541,1344211200"; d="scan'208";a="14961422"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       05 Oct 2012 11:49:01 +0000
+Received: from kaball.uk.xensource.com (10.80.2.59) by
+       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
+       8.3.279.1; Fri, 5 Oct 2012 12:49:01 +0100
+Date: Fri, 5 Oct 2012 12:48:00 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-X-Sender: sstabellini@kaball.uk.xensource.com
+To: Ian Campbell <ian.campbell@citrix.com>
+In-Reply-To: <1349363515-26190-5-git-send-email-ian.campbell@citrix.com>
+Message-ID: <alpine.DEB.2.02.1210051243480.29232@kaball.uk.xensource.com>
+References: <1349363496.866.49.camel@zakaz.uk.xensource.com>
+       <1349363515-26190-5-git-send-email-ian.campbell@citrix.com>
+User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
+MIME-Version: 1.0
+Cc: Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
+       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 05/14] xen: balloon: use correct type for
+       frame_list
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Thu, 4 Oct 2012, Ian Campbell wrote:
+> This is now a xen_pfn_t.
+> 
+> Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+> ---
+>  drivers/xen/balloon.c |    2 +-
+>  1 files changed, 1 insertions(+), 1 deletions(-)
+> 
+> diff --git a/drivers/xen/balloon.c b/drivers/xen/balloon.c
+> index 85ef7e7..4625560 100644
+> --- a/drivers/xen/balloon.c
+> +++ b/drivers/xen/balloon.c
+> @@ -87,7 +87,7 @@ struct balloon_stats balloon_stats;
+>  EXPORT_SYMBOL_GPL(balloon_stats);
+>  
+>  /* We increase/decrease in batches which fit in a page */
+> -static unsigned long frame_list[PAGE_SIZE / sizeof(unsigned long)];
+> +static xen_pfn_t frame_list[PAGE_SIZE / sizeof(unsigned long)];
+>  
+>  #ifdef CONFIG_HIGHMEM
+>  #define inc_totalhigh_pages() (totalhigh_pages++)
+While I think is a good change, frame_list[i] is used as an argument to
+set_phys_to_machine, that takes an unsigned long. Also unsigned long are
+assigned to members of the array via page_to_pfn.
+I think that we should take care of these cases, either introducing
+explicit casts or changing the argument types.
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<alpine.DEB.2.02.1210051253140.29232@kaball.uk.xensource.com> b/config/examples/test/corpus/<alpine.DEB.2.02.1210051253140.29232@kaball.uk.xensource.com>
new file mode 100644 (file)
index 0000000..d24b935
--- /dev/null
@@ -0,0 +1,161 @@
+From xen-devel-bounces@lists.xen.org Fri Oct 05 12:58:42 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 05 Oct 2012 12:58:42 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TK6YB-0007W1-GV
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 05 Oct 2012 12:58:42 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TK6U5-0008VW-MV; Fri, 05 Oct 2012 11:54:25 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1TK6U3-0008VA-EN
+       for xen-devel@lists.xen.org; Fri, 05 Oct 2012 11:54:23 +0000
+Received: from [85.158.139.83:20406] by server-6.bemta-5.messagelabs.com id
+       00/E5-14717-E6ACE605; Fri, 05 Oct 2012 11:54:22 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-9.tower-182.messagelabs.com!1349438062!32900264!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTMxNTE=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 27639 invoked from network); 5 Oct 2012 11:54:22 -0000
+Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-9.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
+       5 Oct 2012 11:54:22 -0000
+X-IronPort-AV: E=Sophos;i="4.80,541,1344211200"; d="scan'208";a="14961557"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       05 Oct 2012 11:54:22 +0000
+Received: from kaball.uk.xensource.com (10.80.2.59) by
+       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
+       8.3.279.1; Fri, 5 Oct 2012 12:54:21 +0100
+Date: Fri, 5 Oct 2012 12:53:20 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-X-Sender: sstabellini@kaball.uk.xensource.com
+To: Ian Campbell <ian.campbell@citrix.com>
+In-Reply-To: <1349363515-26190-6-git-send-email-ian.campbell@citrix.com>
+Message-ID: <alpine.DEB.2.02.1210051253140.29232@kaball.uk.xensource.com>
+References: <1349363496.866.49.camel@zakaz.uk.xensource.com>
+       <1349363515-26190-6-git-send-email-ian.campbell@citrix.com>
+User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
+MIME-Version: 1.0
+Cc: Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
+       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 06/14] arm: make p2m operations NOPs
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Thu, 4 Oct 2012, Ian Campbell wrote:
+> This makes common code less ifdef-y and is consistent with PVHVM on
+> x86.
+> 
+> Also note that phys_to_machine_mapping_valid should take a pfn
+> argument and make it do so.
+> 
+> Add __set_phys_to_machine, make set_phys_to_machine a simple wrapper
+> (on systems with non-nop implementations the outer one can allocate
+> new p2m pages).
+> 
+> Make __set_phys_to_machine check for identity mapping or invalid only.
+> 
+> Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+
+
+Acked-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+
+>  arch/arm/include/asm/xen/page.h |   13 ++++++++++---
+>  drivers/xen/balloon.c           |    2 +-
+>  2 files changed, 11 insertions(+), 4 deletions(-)
+> 
+> diff --git a/arch/arm/include/asm/xen/page.h b/arch/arm/include/asm/xen/page.h
+> index 1742023..c6b9096 100644
+> --- a/arch/arm/include/asm/xen/page.h
+> +++ b/arch/arm/include/asm/xen/page.h
+> @@ -10,7 +10,7 @@
+>  #include <xen/interface/grant_table.h>
+>  
+>  #define pfn_to_mfn(pfn)                     (pfn)
+> -#define phys_to_machine_mapping_valid       (1)
+> +#define phys_to_machine_mapping_valid(pfn) (1)
+>  #define mfn_to_pfn(mfn)                     (mfn)
+>  #define mfn_to_virt(m)                      (__va(mfn_to_pfn(m) << PAGE_SHIFT))
+>  
+> @@ -30,6 +30,8 @@ typedef struct xpaddr {
+>  #define XMADDR(x)   ((xmaddr_t) { .maddr = (x) })
+>  #define XPADDR(x)   ((xpaddr_t) { .paddr = (x) })
+>  
+> +#define INVALID_P2M_ENTRY      (~0UL)
+> +
+>  static inline xmaddr_t phys_to_machine(xpaddr_t phys)
+>  {
+>      unsigned offset = phys.paddr & ~PAGE_MASK;
+> @@ -74,9 +76,14 @@ static inline int m2p_remove_override(struct page *page, bool clear_pte)
+>      return 0;
+>  }
+>  
+> +static inline bool __set_phys_to_machine(unsigned long pfn, unsigned long mfn)
+> +{
+> +    BUG_ON(pfn != mfn && mfn != INVALID_P2M_ENTRY);
+> +    return true;
+> +}
+> +
+>  static inline bool set_phys_to_machine(unsigned long pfn, unsigned long mfn)
+>  {
+> -    BUG();
+> -    return false;
+> +    return __set_phys_to_machine(pfn, mfn);
+>  }
+>  #endif /* _ASM_ARM_XEN_PAGE_H */
+> diff --git a/drivers/xen/balloon.c b/drivers/xen/balloon.c
+> index 4625560..7885a19 100644
+> --- a/drivers/xen/balloon.c
+> +++ b/drivers/xen/balloon.c
+> @@ -452,7 +452,7 @@ static enum bp_state decrease_reservation(unsigned long nr_pages, gfp_t gfp)
+>      /* No more mappings: invalidate P2M and add to balloon. */
+>      for (i = 0; i < nr_pages; i++) {
+>              pfn = mfn_to_pfn(frame_list[i]);
+> -            /* PVH note: following will noop for auto translated */
+> +            /* The following is a noop for auto translated */
+>              __set_phys_to_machine(pfn, INVALID_P2M_ENTRY);
+>              balloon_append(pfn_to_page(pfn));
+>      }
+> -- 
+> 1.7.2.5
+> 
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<alpine.DEB.2.02.1210051302160.29232@kaball.uk.xensource.com> b/config/examples/test/corpus/<alpine.DEB.2.02.1210051302160.29232@kaball.uk.xensource.com>
new file mode 100644 (file)
index 0000000..3621ee7
--- /dev/null
@@ -0,0 +1,151 @@
+From xen-devel-bounces@lists.xen.org Fri Oct 05 13:10:18 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 05 Oct 2012 13:10:18 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TK6jM-0007ZB-G5
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 05 Oct 2012 13:10:18 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TK6g2-0000zy-Sj; Fri, 05 Oct 2012 12:06:46 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1TK6g1-0000zb-DC
+       for xen-devel@lists.xen.org; Fri, 05 Oct 2012 12:06:45 +0000
+Received: from [85.158.143.99:56560] by server-3.bemta-4.messagelabs.com id
+       29/81-10986-45DCE605; Fri, 05 Oct 2012 12:06:44 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-7.tower-216.messagelabs.com!1349438803!26878741!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTMxNTE=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 30571 invoked from network); 5 Oct 2012 12:06:44 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-7.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
+       5 Oct 2012 12:06:44 -0000
+X-IronPort-AV: E=Sophos;i="4.80,541,1344211200"; d="scan'208";a="14961886"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       05 Oct 2012 12:06:03 +0000
+Received: from kaball.uk.xensource.com (10.80.2.59) by
+       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
+       8.3.279.1; Fri, 5 Oct 2012 13:06:03 +0100
+Date: Fri, 5 Oct 2012 13:05:01 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-X-Sender: sstabellini@kaball.uk.xensource.com
+To: Ian Campbell <ian.campbell@citrix.com>
+In-Reply-To: <1349363515-26190-7-git-send-email-ian.campbell@citrix.com>
+Message-ID: <alpine.DEB.2.02.1210051302160.29232@kaball.uk.xensource.com>
+References: <1349363496.866.49.camel@zakaz.uk.xensource.com>
+       <1349363515-26190-7-git-send-email-ian.campbell@citrix.com>
+User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
+MIME-Version: 1.0
+Cc: Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
+       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 07/14] xen: balloon: do not update stage 1
+ pagetable for autotranslated guests
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Thu, 4 Oct 2012, Ian Campbell wrote:
+> This is unnecessary (since the page will be removed from the p2m) and
+> can be tricky if the page is in the middle of a superpage, as it is on
+> ARM.
+> 
+
+I think that this patch is correct. I'll leave to Konrad whether we
+should carry the original incorrect PVH patch and this separate fix or
+just merge the two of them.
+
+
+> Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+> ---
+> Also effects PVH but in a benign way I think.
+>
+>  drivers/xen/balloon.c |   23 +++--------------------
+>  1 files changed, 3 insertions(+), 20 deletions(-)
+> 
+> diff --git a/drivers/xen/balloon.c b/drivers/xen/balloon.c
+> index 7885a19..1b56ae0 100644
+> --- a/drivers/xen/balloon.c
+> +++ b/drivers/xen/balloon.c
+> @@ -357,15 +357,7 @@ static enum bp_state increase_reservation(unsigned long nr_pages)
+>              BUG_ON(!xen_feature(XENFEAT_auto_translated_physmap) &&
+>                     phys_to_machine_mapping_valid(pfn));
+>  
+> -            if (xen_pv_domain() && 
+> -                xen_feature(XENFEAT_auto_translated_physmap)) {
+> -                    /* PVH: we just need to update native page table */
+> -                    pte_t *ptep;
+> -                    unsigned int level;
+> -                    void *addr = __va(pfn << PAGE_SHIFT);
+> -                    ptep = lookup_address((unsigned long)addr, &level);
+> -                    set_pte(ptep, pfn_pte(pfn, PAGE_KERNEL));
+> -            } else
+> +            if (!xen_feature(XENFEAT_auto_translated_physmap))
+>                      set_phys_to_machine(pfn, frame_list[i]);
+>  
+>              /* Link back into the page tables if not highmem. */
+> @@ -427,21 +419,12 @@ static enum bp_state decrease_reservation(unsigned long nr_pages, gfp_t gfp)
+>  
+>              scrub_page(page);
+>  
+> -            if (xen_pv_domain() && !PageHighMem(page)) {
+> -                    if (xen_feature(XENFEAT_auto_translated_physmap)) {
+> -                            unsigned int level;
+> -                            pte_t *ptep;
+> -                            void *addr = __va(pfn << PAGE_SHIFT);
+> -                            ptep = lookup_address((unsigned long)addr, 
+> -                                                    &level);
+> -                            set_pte(ptep, __pte(0));
+> -
+> -                    } else {
+> +            if (xen_pv_domain() && !PageHighMem(page) &&
+> +                !xen_feature(XENFEAT_auto_translated_physmap)) {
+>                              ret = HYPERVISOR_update_va_mapping(
+>                                      (unsigned long)__va(pfn << PAGE_SHIFT),
+>                                      __pte_ma(0), 0);
+>                              BUG_ON(ret);
+> -                    }
+>              }
+>      }
+>  
+> -- 
+> 1.7.2.5
+> 
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<alpine.DEB.2.02.1210051417110.29232@kaball.uk.xensource.com> b/config/examples/test/corpus/<alpine.DEB.2.02.1210051417110.29232@kaball.uk.xensource.com>
new file mode 100644 (file)
index 0000000..3c40561
--- /dev/null
@@ -0,0 +1,195 @@
+From xen-devel-bounces@lists.xen.org Fri Oct 05 14:23:18 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 05 Oct 2012 14:23:18 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TK7s3-0007tJ-Lj
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 05 Oct 2012 14:23:18 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TK7oY-0004Ek-1N; Fri, 05 Oct 2012 13:19:38 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1TK7oV-0004EP-RY
+       for xen-devel@lists.xen.org; Fri, 05 Oct 2012 13:19:36 +0000
+Received: from [85.158.139.211:8270] by server-1.bemta-5.messagelabs.com id
+       0E/69-09825-76EDE605; Fri, 05 Oct 2012 13:19:35 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-10.tower-206.messagelabs.com!1349443174!21183891!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTMxNTE=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 14035 invoked from network); 5 Oct 2012 13:19:34 -0000
+Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-10.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
+       5 Oct 2012 13:19:34 -0000
+X-IronPort-AV: E=Sophos;i="4.80,541,1344211200"; d="scan'208";a="14964001"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       05 Oct 2012 13:19:34 +0000
+Received: from kaball.uk.xensource.com (10.80.2.59) by
+       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
+       8.3.279.1; Fri, 5 Oct 2012 14:19:33 +0100
+Date: Fri, 5 Oct 2012 14:18:31 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-X-Sender: sstabellini@kaball.uk.xensource.com
+To: Ian Campbell <ian.campbell@citrix.com>
+In-Reply-To: <1349363515-26190-9-git-send-email-ian.campbell@citrix.com>
+Message-ID: <alpine.DEB.2.02.1210051417110.29232@kaball.uk.xensource.com>
+References: <1349363496.866.49.camel@zakaz.uk.xensource.com>
+       <1349363515-26190-9-git-send-email-ian.campbell@citrix.com>
+User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
+MIME-Version: 1.0
+Cc: Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
+       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 09/14] xen: arm: enable balloon driver
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Thu, 4 Oct 2012, Ian Campbell wrote:
+> Drop the *_xenballloned_pages duplicates since these are now supplied
+> by the balloon code.
+> 
+> Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+
+
+Acked-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+
+>  arch/arm/xen/enlighten.c |   23 +++++------------------
+>  drivers/xen/Makefile     |    4 ++--
+>  drivers/xen/privcmd.c    |    9 ++++-----
+>  3 files changed, 11 insertions(+), 25 deletions(-)
+> 
+> diff --git a/arch/arm/xen/enlighten.c b/arch/arm/xen/enlighten.c
+> index 59bcb96..ba5cc13 100644
+> --- a/arch/arm/xen/enlighten.c
+> +++ b/arch/arm/xen/enlighten.c
+> @@ -8,6 +8,7 @@
+>  #include <xen/features.h>
+>  #include <xen/platform_pci.h>
+>  #include <xen/xenbus.h>
+> +#include <xen/page.h>
+>  #include <asm/xen/hypervisor.h>
+>  #include <asm/xen/hypercall.h>
+>  #include <linux/interrupt.h>
+> @@ -29,6 +30,10 @@ struct shared_info *HYPERVISOR_shared_info = (void *)&xen_dummy_shared_info;
+>  
+>  DEFINE_PER_CPU(struct vcpu_info *, xen_vcpu);
+>  
+> +/* These are unused until we support booting "pre-ballooned" */
+> +unsigned long xen_released_pages;
+> +struct xen_memory_region xen_extra_mem[XEN_EXTRA_MEM_MAX_REGIONS] __initdata;
+> +
+>  /* TODO: to be removed */
+>  __read_mostly int xen_have_vector_callback;
+>  EXPORT_SYMBOL_GPL(xen_have_vector_callback);
+> @@ -148,21 +153,3 @@ static int __init xen_init_events(void)
+>      return 0;
+>  }
+>  postcore_initcall(xen_init_events);
+> -
+> -/* XXX: only until balloon is properly working */
+> -int alloc_xenballooned_pages(int nr_pages, struct page **pages, bool highmem)
+> -{
+> -    *pages = alloc_pages(highmem ? GFP_HIGHUSER : GFP_KERNEL,
+> -                    get_order(nr_pages));
+> -    if (*pages == NULL)
+> -            return -ENOMEM;
+> -    return 0;
+> -}
+> -EXPORT_SYMBOL_GPL(alloc_xenballooned_pages);
+> -
+> -void free_xenballooned_pages(int nr_pages, struct page **pages)
+> -{
+> -    kfree(*pages);
+> -    *pages = NULL;
+> -}
+> -EXPORT_SYMBOL_GPL(free_xenballooned_pages);
+> diff --git a/drivers/xen/Makefile b/drivers/xen/Makefile
+> index 275abfc..9a7896f 100644
+> --- a/drivers/xen/Makefile
+> +++ b/drivers/xen/Makefile
+> @@ -1,8 +1,8 @@
+>  ifneq ($(CONFIG_ARM),y)
+> -obj-y       += manage.o balloon.o
+> +obj-y       += manage.o
+>  obj-$(CONFIG_HOTPLUG_CPU)           += cpu_hotplug.o
+>  endif
+> -obj-y       += grant-table.o features.o events.o
+> +obj-y       += grant-table.o features.o events.o balloon.o
+>  obj-y       += xenbus/
+>  
+>  nostackp := $(call cc-option, -fno-stack-protector)
+> diff --git a/drivers/xen/privcmd.c b/drivers/xen/privcmd.c
+> index 1010bf7..bf4d62a 100644
+> --- a/drivers/xen/privcmd.c
+> +++ b/drivers/xen/privcmd.c
+> @@ -200,8 +200,8 @@ static long privcmd_ioctl_mmap(void __user *udata)
+>      if (!xen_initial_domain())
+>              return -EPERM;
+>  
+> -    /* PVH: TBD/FIXME. For now we only support privcmd_ioctl_mmap_batch */
+> -    if (xen_pv_domain() && xen_feature(XENFEAT_auto_translated_physmap))
+> +    /* We only support privcmd_ioctl_mmap_batch for auto translated. */
+> +    if (xen_feature(XENFEAT_auto_translated_physmap))
+>              return -ENOSYS;
+>  
+>      if (copy_from_user(&mmapcmd, udata, sizeof(mmapcmd)))
+> @@ -413,7 +413,7 @@ static long privcmd_ioctl_mmap_batch(void __user *udata, int version)
+>              up_write(&mm->mmap_sem);
+>              goto out;
+>      }
+> -    if (xen_pv_domain() && xen_feature(XENFEAT_auto_translated_physmap)) {
+> +    if (xen_feature(XENFEAT_auto_translated_physmap)) {
+>              if ((ret = pvh_privcmd_resv_pfns(vma, m.num))) {
+>                      up_write(&mm->mmap_sem);
+>                      goto out;
+> @@ -492,8 +492,7 @@ static void privcmd_close(struct vm_area_struct *vma)
+>      int count;
+>      struct xen_pvh_pfn_info *pvhp = vma ? vma->vm_private_data : NULL;
+>  
+> -    if (!xen_pv_domain()  || !pvhp ||
+> -        !xen_feature(XENFEAT_auto_translated_physmap))
+> +    if (!pvhp || !xen_feature(XENFEAT_auto_translated_physmap))
+>              return;
+>  
+>      count = xen_unmap_domain_mfn_range(vma, pvhp);
+> -- 
+> 1.7.2.5
+> 
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<alpine.DEB.2.02.1210051419030.29232@kaball.uk.xensource.com> b/config/examples/test/corpus/<alpine.DEB.2.02.1210051419030.29232@kaball.uk.xensource.com>
new file mode 100644 (file)
index 0000000..39beccf
--- /dev/null
@@ -0,0 +1,163 @@
+From xen-devel-bounces@lists.xen.org Fri Oct 05 14:24:09 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 05 Oct 2012 14:24:09 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TK7sp-0007tb-Ik
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 05 Oct 2012 14:24:09 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TK7pP-0004My-GQ; Fri, 05 Oct 2012 13:20:31 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1TK7pN-0004Ma-5R
+       for xen-devel@lists.xen.org; Fri, 05 Oct 2012 13:20:29 +0000
+Received: from [85.158.139.211:17830] by server-5.bemta-5.messagelabs.com id
+       69/76-21075-C9EDE605; Fri, 05 Oct 2012 13:20:28 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-10.tower-206.messagelabs.com!1349443227!21184016!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTMxNTE=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 17572 invoked from network); 5 Oct 2012 13:20:27 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-10.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
+       5 Oct 2012 13:20:27 -0000
+X-IronPort-AV: E=Sophos;i="4.80,541,1344211200"; d="scan'208";a="14964033"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       05 Oct 2012 13:20:27 +0000
+Received: from kaball.uk.xensource.com (10.80.2.59) by
+       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
+       8.3.279.1; Fri, 5 Oct 2012 14:20:27 +0100
+Date: Fri, 5 Oct 2012 14:19:25 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-X-Sender: sstabellini@kaball.uk.xensource.com
+To: Ian Campbell <ian.campbell@citrix.com>
+In-Reply-To: <1349363515-26190-8-git-send-email-ian.campbell@citrix.com>
+Message-ID: <alpine.DEB.2.02.1210051419030.29232@kaball.uk.xensource.com>
+References: <1349363496.866.49.camel@zakaz.uk.xensource.com>
+       <1349363515-26190-8-git-send-email-ian.campbell@citrix.com>
+User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
+MIME-Version: 1.0
+Cc: Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
+       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 08/14] xen: balloon: allow PVMMU interfaces
+ to be compiled out
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Thu, 4 Oct 2012, Ian Campbell wrote:
+> The ARM platform has no concept of PVMMU and therefor no
+> HYPERVISOR_update_va_mapping et al. Allow this code to be compiled out
+> when not required.
+> 
+> Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+
+I am unsure whether it is worth a new symbol and two ifdef's
+
+
+>  arch/x86/xen/Kconfig  |    1 +
+>  drivers/xen/Kconfig   |    3 +++
+>  drivers/xen/balloon.c |    4 ++++
+>  3 files changed, 8 insertions(+), 0 deletions(-)
+> 
+> diff --git a/arch/x86/xen/Kconfig b/arch/x86/xen/Kconfig
+> index fdce49c..c31ee77 100644
+> --- a/arch/x86/xen/Kconfig
+> +++ b/arch/x86/xen/Kconfig
+> @@ -6,6 +6,7 @@ config XEN
+>      bool "Xen guest support"
+>      select PARAVIRT
+>      select PARAVIRT_CLOCK
+> +    select XEN_HAVE_PVMMU
+>      depends on X86_64 || (X86_32 && X86_PAE && !X86_VISWS)
+>      depends on X86_CMPXCHG && X86_TSC
+>      help
+> diff --git a/drivers/xen/Kconfig b/drivers/xen/Kconfig
+> index d4dffcd..9c00652 100644
+> --- a/drivers/xen/Kconfig
+> +++ b/drivers/xen/Kconfig
+> @@ -204,4 +204,7 @@ config XEN_MCE_LOG
+>        Allow kernel fetching MCE error from Xen platform and
+>        converting it into Linux mcelog format for mcelog tools
+>  
+> +config XEN_HAVE_PVMMU
+> +       bool
+> +
+>  endmenu
+> diff --git a/drivers/xen/balloon.c b/drivers/xen/balloon.c
+> index 1b56ae0..cfe47dae 100644
+> --- a/drivers/xen/balloon.c
+> +++ b/drivers/xen/balloon.c
+> @@ -360,6 +360,7 @@ static enum bp_state increase_reservation(unsigned long nr_pages)
+>              if (!xen_feature(XENFEAT_auto_translated_physmap))
+>                      set_phys_to_machine(pfn, frame_list[i]);
+>  
+> +#ifdef CONFIG_XEN_HAVE_PVMMU
+>              /* Link back into the page tables if not highmem. */
+>              if (xen_pv_domain() && !PageHighMem(page) && 
+>                  !xen_feature(XENFEAT_auto_translated_physmap)) {
+> @@ -371,6 +372,7 @@ static enum bp_state increase_reservation(unsigned long nr_pages)
+>                              0);
+>                      BUG_ON(ret);
+>              }
+> +#endif
+>  
+>              /* Relinquish the page back to the allocator. */
+>              ClearPageReserved(page);
+> @@ -419,6 +421,7 @@ static enum bp_state decrease_reservation(unsigned long nr_pages, gfp_t gfp)
+>  
+>              scrub_page(page);
+>  
+> +#ifdef CONFIG_XEN_HAVE_PVMMU
+>              if (xen_pv_domain() && !PageHighMem(page) &&
+>                  !xen_feature(XENFEAT_auto_translated_physmap)) {
+>                              ret = HYPERVISOR_update_va_mapping(
+> @@ -426,6 +429,7 @@ static enum bp_state decrease_reservation(unsigned long nr_pages, gfp_t gfp)
+>                                      __pte_ma(0), 0);
+>                              BUG_ON(ret);
+>              }
+> +#endif
+>      }
+>  
+>      /* Ensure that ballooned highmem pages don't have kmaps. */
+> -- 
+> 1.7.2.5
+> 
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<alpine.DEB.2.02.1210051420260.29232@kaball.uk.xensource.com> b/config/examples/test/corpus/<alpine.DEB.2.02.1210051420260.29232@kaball.uk.xensource.com>
new file mode 100644 (file)
index 0000000..c4d2244
--- /dev/null
@@ -0,0 +1,112 @@
+From xen-devel-bounces@lists.xen.org Fri Oct 05 14:25:39 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 05 Oct 2012 14:25:39 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TK7uI-0007uS-3f
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 05 Oct 2012 14:25:39 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TK7r7-0004cS-L8; Fri, 05 Oct 2012 13:22:17 +0000
+Received: from mail27.messagelabs.com ([193.109.254.147])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1TK7r5-0004bC-AJ
+       for xen-devel@lists.xen.org; Fri, 05 Oct 2012 13:22:15 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-7.tower-27.messagelabs.com!1349443328!5905594!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTMxNTE=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 28574 invoked from network); 5 Oct 2012 13:22:09 -0000
+Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-7.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
+       5 Oct 2012 13:22:09 -0000
+X-IronPort-AV: E=Sophos;i="4.80,541,1344211200"; d="scan'208";a="14964077"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       05 Oct 2012 13:22:08 +0000
+Received: from kaball.uk.xensource.com (10.80.2.59) by
+       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
+       8.3.279.1; Fri, 5 Oct 2012 14:22:08 +0100
+Date: Fri, 5 Oct 2012 14:21:06 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-X-Sender: sstabellini@kaball.uk.xensource.com
+To: Ian Campbell <ian.campbell@citrix.com>
+In-Reply-To: <1349363515-26190-12-git-send-email-ian.campbell@citrix.com>
+Message-ID: <alpine.DEB.2.02.1210051420260.29232@kaball.uk.xensource.com>
+References: <1349363496.866.49.camel@zakaz.uk.xensource.com>
+       <1349363515-26190-12-git-send-email-ian.campbell@citrix.com>
+User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
+MIME-Version: 1.0
+Cc: Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
+       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 12/14] arm: xen: explain the EXPERIMENTAL
+ dependency in the Kconfig help
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Thu, 4 Oct 2012, Ian Campbell wrote:
+> Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+> ---
+>  arch/arm/Kconfig |    8 ++++++++
+>  1 files changed, 8 insertions(+), 0 deletions(-)
+> 
+> diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
+> index 3361466..b171c46 100644
+> --- a/arch/arm/Kconfig
+> +++ b/arch/arm/Kconfig
+> @@ -1907,6 +1907,14 @@ config XEN
+>      help
+>        Say Y if you want to run Linux in a Virtual Machine on Xen on ARM.
+>  
+> +
+> +      This option is EXPERIMETNAL because the hypervisor
+                         ^ EXPERIMENTAL
+> +      interfaces which it uses are not yet considered stable
+> +      therefore backwards and forwards compatibility is not yet
+> +      guaranteed.
+> +
+> +      If unsure, say N.
+> +
+>  endmenu
+>  
+>  menu "Boot options"
+> -- 
+> 1.7.2.5
+> 
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<alpine.DEB.2.02.1210051421530.29232@kaball.uk.xensource.com> b/config/examples/test/corpus/<alpine.DEB.2.02.1210051421530.29232@kaball.uk.xensource.com>
new file mode 100644 (file)
index 0000000..6b86ae7
--- /dev/null
@@ -0,0 +1,113 @@
+From xen-devel-bounces@lists.xen.org Fri Oct 05 14:26:43 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 05 Oct 2012 14:26:43 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TK7vJ-0007vR-Dw
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 05 Oct 2012 14:26:43 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TK7s7-0004mZ-3M; Fri, 05 Oct 2012 13:23:19 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1TK7s5-0004mE-Cb
+       for xen-devel@lists.xen.org; Fri, 05 Oct 2012 13:23:17 +0000
+Received: from [85.158.143.35:21456] by server-2.bemta-4.messagelabs.com id
+       62/0E-06610-44FDE605; Fri, 05 Oct 2012 13:23:16 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-3.tower-21.messagelabs.com!1349443395!13490577!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTMxNTE=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 16405 invoked from network); 5 Oct 2012 13:23:16 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-3.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
+       5 Oct 2012 13:23:16 -0000
+X-IronPort-AV: E=Sophos;i="4.80,541,1344211200"; d="scan'208";a="14964125"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       05 Oct 2012 13:23:13 +0000
+Received: from kaball.uk.xensource.com (10.80.2.59) by
+       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
+       8.3.279.1; Fri, 5 Oct 2012 14:23:13 +0100
+Date: Fri, 5 Oct 2012 14:22:12 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-X-Sender: sstabellini@kaball.uk.xensource.com
+To: Ian Campbell <ian.campbell@citrix.com>
+In-Reply-To: <1349363515-26190-13-git-send-email-ian.campbell@citrix.com>
+Message-ID: <alpine.DEB.2.02.1210051421530.29232@kaball.uk.xensource.com>
+References: <1349363496.866.49.camel@zakaz.uk.xensource.com>
+       <1349363515-26190-13-git-send-email-ian.campbell@citrix.com>
+User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
+MIME-Version: 1.0
+Cc: Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
+       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 13/14] xen: use xen_pft_t in struct
+ xen_remove_from_physmap
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Thu, 4 Oct 2012, Ian Campbell wrote:
+> 4a6c2b4 "PVH basic and hader file changes" and bd3f79b "xen: Introduce
+> xen_pfn_t for pfn and mfn types" passed like ships in the night.
+> 
+> Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+
+
+Acked-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+
+>  include/xen/interface/memory.h |    2 +-
+>  1 files changed, 1 insertions(+), 1 deletions(-)
+> 
+> diff --git a/include/xen/interface/memory.h b/include/xen/interface/memory.h
+> index 6d74c47..d38bdc1 100644
+> --- a/include/xen/interface/memory.h
+> +++ b/include/xen/interface/memory.h
+> @@ -258,7 +258,7 @@ struct xen_remove_from_physmap {
+>      domid_t domid;
+>  
+>      /* GPFN of the current mapping of the page. */
+> -    unsigned long     gpfn;
+> +    xen_pfn_t gpfn;
+>  };
+>  DEFINE_GUEST_HANDLE_STRUCT(xen_remove_from_physmap);
+>  
+> -- 
+> 1.7.2.5
+> 
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<alpine.DEB.2.02.1210051430200.29232@kaball.uk.xensource.com> b/config/examples/test/corpus/<alpine.DEB.2.02.1210051430200.29232@kaball.uk.xensource.com>
new file mode 100644 (file)
index 0000000..87db904
--- /dev/null
@@ -0,0 +1,165 @@
+From xen-devel-bounces@lists.xen.org Fri Oct 05 14:41:21 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 05 Oct 2012 14:41:21 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TK89T-0007zl-JR
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 05 Oct 2012 14:41:21 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TK85u-0005jq-AH; Fri, 05 Oct 2012 13:37:34 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1TK85s-0005jX-7c
+       for xen-devel@lists.xen.org; Fri, 05 Oct 2012 13:37:32 +0000
+Received: from [85.158.139.211:50857] by server-4.bemta-5.messagelabs.com id
+       98/5A-20767-B92EE605; Fri, 05 Oct 2012 13:37:31 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-7.tower-206.messagelabs.com!1349444250!20766468!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTMxNTE=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 29914 invoked from network); 5 Oct 2012 13:37:30 -0000
+Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-7.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
+       5 Oct 2012 13:37:30 -0000
+X-IronPort-AV: E=Sophos;i="4.80,541,1344211200"; d="scan'208";a="14964679"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       05 Oct 2012 13:37:29 +0000
+Received: from kaball.uk.xensource.com (10.80.2.59) by
+       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
+       8.3.279.1; Fri, 5 Oct 2012 14:37:30 +0100
+Date: Fri, 5 Oct 2012 14:36:28 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-X-Sender: sstabellini@kaball.uk.xensource.com
+To: Ian Campbell <ian.campbell@citrix.com>
+In-Reply-To: <1349363515-26190-14-git-send-email-ian.campbell@citrix.com>
+Message-ID: <alpine.DEB.2.02.1210051430200.29232@kaball.uk.xensource.com>
+References: <1349363496.866.49.camel@zakaz.uk.xensource.com>
+       <1349363515-26190-14-git-send-email-ian.campbell@citrix.com>
+User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
+MIME-Version: 1.0
+Cc: Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
+       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 14/14] arm: implement foreign mapping using
+ XENMEM_add_to_physmap_range
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Thu, 4 Oct 2012, Ian Campbell wrote:
+> This interface is prefered for foreign mappings.
+
+So now we have XENMEM_add_to_physmap_range but we only have
+XENMEM_remove_from_physmap. Would it be worth to introduce a
+XENMEM_remove_from_physmap_range too?
+
+
+> Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+> ---
+>  arch/arm/xen/enlighten.c       |   14 +++++++++-----
+>  include/xen/interface/memory.h |   18 ++++++++++++++++++
+>  2 files changed, 27 insertions(+), 5 deletions(-)
+> 
+> diff --git a/arch/arm/xen/enlighten.c b/arch/arm/xen/enlighten.c
+> index 9956af5..a9946aa 100644
+> --- a/arch/arm/xen/enlighten.c
+> +++ b/arch/arm/xen/enlighten.c
+> @@ -51,15 +51,19 @@ static int map_foreign_page(unsigned long lpfn, unsigned long fgmfn,
+>                          unsigned int domid)
+>  {
+>      int rc;
+> -    struct xen_add_to_physmap xatp = {
+> +    struct xen_add_to_physmap_range xatp = {
+>              .domid = DOMID_SELF,
+> -            .u.foreign_domid = domid,
+> +            .foreign_domid = domid,
+> +            .size = 1,
+>              .space = XENMAPSPACE_gmfn_foreign,
+> -            .idx = fgmfn,
+> -            .gpfn = lpfn,
+>      };
+> +    unsigned long idx = fgmfn;
+> +    xen_pfn_t gpfn = lpfn;
+>  
+> -    rc = HYPERVISOR_memory_op(XENMEM_add_to_physmap, &xatp);
+> +    set_xen_guest_handle(xatp.idxs, &idx);
+> +    set_xen_guest_handle(xatp.gpfns, &gpfn);
+> +
+> +    rc = HYPERVISOR_memory_op(XENMEM_add_to_physmap_range, &xatp);
+>      if (rc) {
+>              pr_warn("Failed to map pfn to mfn rc:%d pfn:%lx mfn:%lx\n",
+>                      rc, lpfn, fgmfn);
+
+Wouldn't it make sense to call XENMEM_add_to_physmap_range only once for
+the whole range, rather than once per page?
+
+
+> diff --git a/include/xen/interface/memory.h b/include/xen/interface/memory.h
+> index d38bdc1..e5675bc 100644
+> --- a/include/xen/interface/memory.h
+> +++ b/include/xen/interface/memory.h
+> @@ -188,6 +188,24 @@ struct xen_add_to_physmap {
+>  };
+>  DEFINE_GUEST_HANDLE_STRUCT(xen_add_to_physmap);
+>  
+> +#define XENMEM_add_to_physmap_range 23
+> +struct xen_add_to_physmap_range {
+> +    /* Which domain to change the mapping for. */
+> +    domid_t domid;
+> +    uint16_t space; /* => enum phys_map_space */
+> +
+> +    /* Number of pages to go through */
+> +    uint16_t size;
+> +    domid_t foreign_domid; /* IFF gmfn_foreign */
+> +
+> +    /* Indexes into space being mapped. */
+> +    GUEST_HANDLE(ulong) idxs;
+> +
+> +    /* GPFN in domid where the source mapping page should appear. */
+> +    GUEST_HANDLE(xen_pfn_t) gpfns;
+> +};
+> +DEFINE_GUEST_HANDLE_STRUCT(xen_add_to_physmap_range);
+> +
+>  /*
+>   * Translates a list of domain-specific GPFNs into MFNs. Returns a -ve error
+>   * code on failure. This call only works for auto-translated guests.
+> -- 
+> 1.7.2.5
+> 
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<alpine.DEB.2.02.1210051432010.29232@kaball.uk.xensource.com> b/config/examples/test/corpus/<alpine.DEB.2.02.1210051432010.29232@kaball.uk.xensource.com>
new file mode 100644 (file)
index 0000000..b78b4f7
--- /dev/null
@@ -0,0 +1,222 @@
+From xen-devel-bounces@lists.xen.org Fri Oct 05 14:41:05 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 05 Oct 2012 14:41:05 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TK89G-0007zT-NE
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 05 Oct 2012 14:41:05 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TK85b-0005hR-Pf; Fri, 05 Oct 2012 13:37:15 +0000
+Received: from mail27.messagelabs.com ([193.109.254.147])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1TK85Z-0005hG-TP
+       for xen-devel@lists.xen.org; Fri, 05 Oct 2012 13:37:14 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-13.tower-27.messagelabs.com!1349444227!8887286!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTMxNTE=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 21141 invoked from network); 5 Oct 2012 13:37:07 -0000
+Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-13.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
+       5 Oct 2012 13:37:07 -0000
+X-IronPort-AV: E=Sophos;i="4.80,541,1344211200"; d="scan'208";a="14964673"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       05 Oct 2012 13:37:06 +0000
+Received: from kaball.uk.xensource.com (10.80.2.59) by
+       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
+       8.3.279.1; Fri, 5 Oct 2012 14:37:06 +0100
+Date: Fri, 5 Oct 2012 14:36:05 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-X-Sender: sstabellini@kaball.uk.xensource.com
+To: Ian Campbell <ian.campbell@citrix.com>
+In-Reply-To: <1349363515-26190-11-git-send-email-ian.campbell@citrix.com>
+Message-ID: <alpine.DEB.2.02.1210051432010.29232@kaball.uk.xensource.com>
+References: <1349363496.866.49.camel@zakaz.uk.xensource.com>
+       <1349363515-26190-11-git-send-email-ian.campbell@citrix.com>
+User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
+MIME-Version: 1.0
+Cc: Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
+       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 11/14] arm: implement remap interfaces
+ needed for privcmd mappings.
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Thu, 4 Oct 2012, Ian Campbell wrote:
+> Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+> ---
+>  arch/arm/xen/enlighten.c |   94 +++++++++++++++++++++++++++++++++++++++++++++-
+>  1 files changed, 92 insertions(+), 2 deletions(-)
+> 
+> diff --git a/arch/arm/xen/enlighten.c b/arch/arm/xen/enlighten.c
+> index ba5cc13..9956af5 100644
+> --- a/arch/arm/xen/enlighten.c
+> +++ b/arch/arm/xen/enlighten.c
+> @@ -9,6 +9,7 @@
+>  #include <xen/platform_pci.h>
+>  #include <xen/xenbus.h>
+>  #include <xen/page.h>
+> +#include <xen/xen-ops.h>
+>  #include <asm/xen/hypervisor.h>
+>  #include <asm/xen/hypercall.h>
+>  #include <linux/interrupt.h>
+> @@ -18,6 +19,8 @@
+>  #include <linux/of_irq.h>
+>  #include <linux/of_address.h>
+>  
+> +#include <linux/mm.h>
+> +
+>  struct start_info _xen_start_info;
+>  struct start_info *xen_start_info = &_xen_start_info;
+>  EXPORT_SYMBOL_GPL(xen_start_info);
+> @@ -43,15 +46,102 @@ EXPORT_SYMBOL_GPL(xen_platform_pci_unplug);
+>  
+>  static __read_mostly int xen_events_irq = -1;
+>  
+> +/* map fgmfn of domid to lpfn in the current domain */
+> +static int map_foreign_page(unsigned long lpfn, unsigned long fgmfn,
+> +                        unsigned int domid)
+> +{
+> +    int rc;
+> +    struct xen_add_to_physmap xatp = {
+> +            .domid = DOMID_SELF,
+> +            .u.foreign_domid = domid,
+> +            .space = XENMAPSPACE_gmfn_foreign,
+> +            .idx = fgmfn,
+> +            .gpfn = lpfn,
+> +    };
+> +
+> +    rc = HYPERVISOR_memory_op(XENMEM_add_to_physmap, &xatp);
+> +    if (rc) {
+> +            pr_warn("Failed to map pfn to mfn rc:%d pfn:%lx mfn:%lx\n",
+> +                    rc, lpfn, fgmfn);
+> +            return 1;
+> +    }
+> +    return 0;
+> +}
+> +
+> +struct remap_data {
+> +    unsigned long fgmfn; /* foreign domain's gmfn */
+> +    pgprot_t prot;
+> +    domid_t  domid;
+> +    struct vm_area_struct *vma;
+> +    struct xen_remap_mfn_info *info;
+> +};
+> +
+> +static int remap_pte_fn(pte_t *ptep, pgtable_t token, unsigned long addr,
+> +                    void *data)
+> +{
+> +    struct remap_data *info = data;
+> +    struct xen_remap_mfn_info *savp = info->info;
+> +    struct page *page = savp->pi_paga[savp->pi_next_todo++];
+> +    unsigned long pfn = page_to_pfn(page);
+> +    pte_t pte = pfn_pte(pfn, info->prot);
+> +
+> +    if (map_foreign_page(pfn, info->fgmfn, info->domid))
+> +            return -EFAULT;
+> +    set_pte_at(info->vma->vm_mm, addr, ptep, pte);
+> +
+> +    return 0;
+> +}
+> +
+>  int xen_remap_domain_mfn_range(struct vm_area_struct *vma,
+>                             unsigned long addr,
+>                             unsigned long mfn, int nr,
+> -                           pgprot_t prot, unsigned domid)
+> +                           pgprot_t prot, unsigned domid,
+> +                           struct xen_remap_mfn_info *info)
+>  {
+> -    return -ENOSYS;
+> +    int err;
+> +    struct remap_data data;
+> +
+> +    /* TBD: Batching, current sole caller only does page at a time */
+> +    if (nr > 1)
+> +            return -EINVAL;
+
+It looks like that this implementation of xen_remap_domain_mfn_range is
+capable of handling nr > 1, so why this return -EINVAL?
+
+
+> +    data.fgmfn = mfn;
+> +    data.prot = prot;
+> +    data.domid = domid;
+> +    data.vma = vma;
+> +    data.info = info;
+> +    err = apply_to_page_range(vma->vm_mm, addr, nr << PAGE_SHIFT,
+> +                              remap_pte_fn, &data);
+> +    return err;
+>  }
+>  EXPORT_SYMBOL_GPL(xen_remap_domain_mfn_range);
+>  
+> +/* Returns: Number of pages unmapped */
+> +int xen_unmap_domain_mfn_range(struct vm_area_struct *vma,
+> +                           struct xen_remap_mfn_info *info)
+> +{
+> +    int count = 0;
+> +
+> +    while (info->pi_next_todo--) {
+> +            struct xen_remove_from_physmap xrp;
+> +            unsigned long rc, pfn;
+> +
+> +            pfn = page_to_pfn(info->pi_paga[info->pi_next_todo]);
+> +
+> +            xrp.domid = DOMID_SELF;
+> +            xrp.gpfn = pfn;
+> +            rc = HYPERVISOR_memory_op(XENMEM_remove_from_physmap, &xrp);
+> +            if (rc) {
+> +                    pr_warn("Failed to unmap pfn:%lx rc:%ld\n",
+> +                            pfn, rc);
+> +                    return count;
+> +            }
+> +            count++;
+> +    }
+> +    return count;
+> +}
+> +EXPORT_SYMBOL_GPL(xen_unmap_domain_mfn_range);
+> +
+>  /*
+>   * see Documentation/devicetree/bindings/arm/xen.txt for the
+>   * documentation of the Xen Device Tree format.
+> -- 
+> 1.7.2.5
+> 
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<alpine.DEB.2.02.1210051437110.29232@kaball.uk.xensource.com> b/config/examples/test/corpus/<alpine.DEB.2.02.1210051437110.29232@kaball.uk.xensource.com>
new file mode 100644 (file)
index 0000000..58b4fa6
--- /dev/null
@@ -0,0 +1,279 @@
+From xen-devel-bounces@lists.xen.org Fri Oct 05 14:42:59 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 05 Oct 2012 14:42:59 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TK8B6-000803-3a
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 05 Oct 2012 14:42:59 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TK870-0005sb-P9; Fri, 05 Oct 2012 13:38:42 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1TK86y-0005sT-Ij
+       for xen-devel@lists.xen.org; Fri, 05 Oct 2012 13:38:40 +0000
+Received: from [85.158.143.35:22811] by server-2.bemta-4.messagelabs.com id
+       DE/7C-06610-FD2EE605; Fri, 05 Oct 2012 13:38:39 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-12.tower-21.messagelabs.com!1349444317!13185481!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTMxNTE=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 1392 invoked from network); 5 Oct 2012 13:38:37 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-12.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
+       5 Oct 2012 13:38:37 -0000
+X-IronPort-AV: E=Sophos;i="4.80,541,1344211200"; d="scan'208";a="14964722"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       05 Oct 2012 13:38:36 +0000
+Received: from kaball.uk.xensource.com (10.80.2.59) by
+       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
+       8.3.279.1; Fri, 5 Oct 2012 14:38:37 +0100
+Date: Fri, 5 Oct 2012 14:37:35 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-X-Sender: sstabellini@kaball.uk.xensource.com
+To: Ian Campbell <ian.campbell@citrix.com>
+In-Reply-To: <1349363515-26190-10-git-send-email-ian.campbell@citrix.com>
+Message-ID: <alpine.DEB.2.02.1210051437110.29232@kaball.uk.xensource.com>
+References: <1349363496.866.49.camel@zakaz.uk.xensource.com>
+       <1349363515-26190-10-git-send-email-ian.campbell@citrix.com>
+User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
+MIME-Version: 1.0
+Cc: Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
+       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 10/14] privcmd: refer to autotranslate not
+ PVH in arch interfaces / comments.
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Thu, 4 Oct 2012, Ian Campbell wrote:
+> PVH is X86 specific while this functionality is also used on ARM.
+
+I really think that this should be merged with the orignal PVH patch
+
+
+> Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+> ---
+>  arch/x86/xen/mmu.c    |   10 +++++-----
+>  drivers/xen/privcmd.c |   46 ++++++++++++++++++++++------------------------
+>  include/xen/xen-ops.h |    8 ++++----
+>  3 files changed, 31 insertions(+), 33 deletions(-)
+> 
+> diff --git a/arch/x86/xen/mmu.c b/arch/x86/xen/mmu.c
+> index 26097cb..3e781f9 100644
+> --- a/arch/x86/xen/mmu.c
+> +++ b/arch/x86/xen/mmu.c
+> @@ -2506,7 +2506,7 @@ struct pvh_remap_data {
+>      unsigned long fgmfn;            /* foreign domain's gmfn */
+>      pgprot_t prot;
+>      domid_t  domid;
+> -    struct xen_pvh_pfn_info *pvhinfop;
+> +    struct xen_remap_mfn_info *pvhinfop;
+>  };
+>  
+>  static int pvh_map_pte_fn(pte_t *ptep, pgtable_t token, unsigned long addr, 
+> @@ -2514,7 +2514,7 @@ static int pvh_map_pte_fn(pte_t *ptep, pgtable_t token, unsigned long addr,
+>  {
+>      int rc;
+>      struct pvh_remap_data *remapp = data;
+> -    struct xen_pvh_pfn_info *pvhp = remapp->pvhinfop;
+> +    struct xen_remap_mfn_info *pvhp = remapp->pvhinfop;
+>      unsigned long pfn = page_to_pfn(pvhp->pi_paga[pvhp->pi_next_todo++]);
+>      pte_t pteval = pte_mkspecial(pfn_pte(pfn, remapp->prot));
+>  
+> @@ -2531,7 +2531,7 @@ static int pvh_map_pte_fn(pte_t *ptep, pgtable_t token, unsigned long addr,
+>  static int pvh_remap_gmfn_range(struct vm_area_struct *vma,
+>                              unsigned long addr, unsigned long mfn, int nr,
+>                              pgprot_t prot, unsigned domid,
+> -                            struct xen_pvh_pfn_info *pvhp)
+> +                            struct xen_remap_mfn_info *pvhp)
+>  {
+>      int err;
+>      struct pvh_remap_data pvhdata;
+> @@ -2574,7 +2574,7 @@ int xen_remap_domain_mfn_range(struct vm_area_struct *vma,
+>                             unsigned long addr,
+>                             unsigned long mfn, int nr,
+>                             pgprot_t prot, unsigned domid,
+> -                           struct xen_pvh_pfn_info *pvhp)
+> +                           struct xen_remap_mfn_info *pvhp)
+>  
+>  {
+>      struct remap_data rmd;
+> @@ -2629,7 +2629,7 @@ EXPORT_SYMBOL_GPL(xen_remap_domain_mfn_range);
+>  
+>  /* Returns: Number of pages unmapped */
+>  int xen_unmap_domain_mfn_range(struct vm_area_struct *vma,
+> -                           struct xen_pvh_pfn_info *pvhp)
+> +                           struct xen_remap_mfn_info *pvhp)
+>  {
+>      int count = 0;
+>  
+> diff --git a/drivers/xen/privcmd.c b/drivers/xen/privcmd.c
+> index bf4d62a..ebf3c8d 100644
+> --- a/drivers/xen/privcmd.c
+> +++ b/drivers/xen/privcmd.c
+> @@ -265,18 +265,16 @@ struct mmap_batch_state {
+>      xen_pfn_t __user *user_mfn;
+>  };
+>  
+> -/* PVH dom0 fyi: if domU being created is PV, then mfn is mfn(addr on bus). If
+> - * it's PVH then mfn is pfn (input to HAP). */
+>  static int mmap_batch_fn(void *data, void *state)
+>  {
+>      xen_pfn_t *mfnp = data;
+>      struct mmap_batch_state *st = state;
+>      struct vm_area_struct *vma = st->vma;
+> -    struct xen_pvh_pfn_info *pvhp = vma ? vma->vm_private_data : NULL;
+> +    struct xen_remap_mfn_info *info = vma ? vma->vm_private_data : NULL;
+>      int ret;
+>  
+>      ret = xen_remap_domain_mfn_range(st->vma, st->va & PAGE_MASK, *mfnp, 1,
+> -                                     st->vma->vm_page_prot, st->domain, pvhp);
+> +                                     st->vma->vm_page_prot, st->domain, info);
+>  
+>      /* Store error code for second pass. */
+>      *(st->err++) = ret;
+> @@ -315,33 +313,33 @@ static int mmap_return_errors_v1(void *data, void *state)
+>  /* Allocate pfns that are then mapped with gmfns from foreign domid. Update
+>   * the vma with the page info to use later.
+>   * Returns: 0 if success, otherwise -errno
+> - */ 
+> -static int pvh_privcmd_resv_pfns(struct vm_area_struct *vma, int numpgs)
+> + */
+> +static int alloc_empty_pages(struct vm_area_struct *vma, int numpgs)
+>  {
+>      int rc;
+> -    struct xen_pvh_pfn_info *pvhp;
+> +    struct xen_remap_mfn_info *info;
+>  
+> -    pvhp = kzalloc(sizeof(struct xen_pvh_pfn_info), GFP_KERNEL);
+> -    if (pvhp == NULL)
+> +    info = kzalloc(sizeof(struct xen_remap_mfn_info), GFP_KERNEL);
+> +    if (info == NULL)
+>              return -ENOMEM;
+>  
+> -    pvhp->pi_paga = kcalloc(numpgs, sizeof(pvhp->pi_paga[0]), GFP_KERNEL);
+> -    if (pvhp->pi_paga == NULL) {
+> -            kfree(pvhp);
+> +    info->pi_paga = kcalloc(numpgs, sizeof(info->pi_paga[0]), GFP_KERNEL);
+> +    if (info->pi_paga == NULL) {
+> +            kfree(info);
+>              return -ENOMEM;
+>      }
+>  
+> -    rc = alloc_xenballooned_pages(numpgs, pvhp->pi_paga, 0);
+> +    rc = alloc_xenballooned_pages(numpgs, info->pi_paga, 0);
+>      if (rc != 0) {
+>              pr_warn("%s Could not alloc %d pfns rc:%d\n", __FUNCTION__, 
+>                      numpgs, rc);
+> -            kfree(pvhp->pi_paga);
+> -            kfree(pvhp);
+> +            kfree(info->pi_paga);
+> +            kfree(info);
+>              return -ENOMEM;
+>      }
+> -    pvhp->pi_num_pgs = numpgs;
+> +    info->pi_num_pgs = numpgs;
+>      BUG_ON(vma->vm_private_data != (void *)1);
+> -    vma->vm_private_data = pvhp;
+> +    vma->vm_private_data = info;
+>  
+>      return 0;
+>  }
+> @@ -414,7 +412,7 @@ static long privcmd_ioctl_mmap_batch(void __user *udata, int version)
+>              goto out;
+>      }
+>      if (xen_feature(XENFEAT_auto_translated_physmap)) {
+> -            if ((ret = pvh_privcmd_resv_pfns(vma, m.num))) {
+> +            if ((ret = alloc_empty_pages(vma, m.num))) {
+>                      up_write(&mm->mmap_sem);
+>                      goto out;
+>              }
+> @@ -490,16 +488,16 @@ static long privcmd_ioctl(struct file *file,
+>  static void privcmd_close(struct vm_area_struct *vma)
+>  {
+>      int count;
+> -    struct xen_pvh_pfn_info *pvhp = vma ? vma->vm_private_data : NULL;
+> +    struct xen_remap_mfn_info *info = vma ? vma->vm_private_data : NULL;
+>  
+> -    if (!pvhp || !xen_feature(XENFEAT_auto_translated_physmap))
+> +    if (!info || !xen_feature(XENFEAT_auto_translated_physmap))
+>              return;
+>  
+> -    count = xen_unmap_domain_mfn_range(vma, pvhp);
+> +    count = xen_unmap_domain_mfn_range(vma, info);
+>      while (count--)
+> -            free_xenballooned_pages(1, &pvhp->pi_paga[count]);
+> -    kfree(pvhp->pi_paga);
+> -    kfree(pvhp);
+> +            free_xenballooned_pages(1, &info->pi_paga[count]);
+> +    kfree(info->pi_paga);
+> +    kfree(info);
+>  }
+>  
+>  static int privcmd_fault(struct vm_area_struct *vma, struct vm_fault *vmf)
+> diff --git a/include/xen/xen-ops.h b/include/xen/xen-ops.h
+> index 6c5ad83..2f3cb06 100644
+> --- a/include/xen/xen-ops.h
+> +++ b/include/xen/xen-ops.h
+> @@ -24,16 +24,16 @@ int xen_create_contiguous_region(unsigned long vstart, unsigned int order,
+>  void xen_destroy_contiguous_region(unsigned long vstart, unsigned int order);
+>  
+>  struct vm_area_struct;
+> -struct xen_pvh_pfn_info;
+> +struct xen_remap_mfn_info;
+>  int xen_remap_domain_mfn_range(struct vm_area_struct *vma,
+>                             unsigned long addr,
+>                             unsigned long mfn, int nr,
+>                             pgprot_t prot, unsigned domid,
+> -                           struct xen_pvh_pfn_info *pvhp);
+> +                           struct xen_remap_mfn_info *pvhp);
+>  int xen_unmap_domain_mfn_range(struct vm_area_struct *vma,
+> -                           struct xen_pvh_pfn_info *pvhp);
+> +                           struct xen_remap_mfn_info *pvhp);
+>  
+> -struct xen_pvh_pfn_info {
+> +struct xen_remap_mfn_info {
+>      struct page **pi_paga;          /* pfn info page array */
+>      int           pi_num_pgs;
+>      int           pi_next_todo;
+> -- 
+> 1.7.2.5
+> 
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<alpine.DEB.2.02.1210051438340.29232@kaball.uk.xensource.com> b/config/examples/test/corpus/<alpine.DEB.2.02.1210051438340.29232@kaball.uk.xensource.com>
new file mode 100644 (file)
index 0000000..ecdd992
--- /dev/null
@@ -0,0 +1,152 @@
+From xen-devel-bounces@lists.xen.org Fri Oct 05 15:08:07 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 05 Oct 2012 15:08:07 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TK8ZQ-00086K-Mm
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 05 Oct 2012 15:08:07 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TK8V7-0007Z6-Vq; Fri, 05 Oct 2012 14:03:37 +0000
+Received: from mail27.messagelabs.com ([193.109.254.147])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1TK8V7-0007Z1-06
+       for xen-devel@lists.xen.org; Fri, 05 Oct 2012 14:03:37 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-13.tower-27.messagelabs.com!1349445810!8890875!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTMxNTE=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 9222 invoked from network); 5 Oct 2012 14:03:30 -0000
+Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-13.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
+       5 Oct 2012 14:03:30 -0000
+X-IronPort-AV: E=Sophos;i="4.80,541,1344211200"; d="scan'208";a="14965491"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       05 Oct 2012 14:03:29 +0000
+Received: from kaball.uk.xensource.com (10.80.2.59) by
+       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
+       8.3.279.1; Fri, 5 Oct 2012 15:03:29 +0100
+Date: Fri, 5 Oct 2012 15:02:27 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-X-Sender: sstabellini@kaball.uk.xensource.com
+To: Ian Campbell <Ian.Campbell@citrix.com>
+In-Reply-To: <1349440338.20946.83.camel@zakaz.uk.xensource.com>
+Message-ID: <alpine.DEB.2.02.1210051438340.29232@kaball.uk.xensource.com>
+References: <1349363496.866.49.camel@zakaz.uk.xensource.com>
+       <1349363515-26190-5-git-send-email-ian.campbell@citrix.com>
+       <alpine.DEB.2.02.1210051243480.29232@kaball.uk.xensource.com>
+       <1349440338.20946.83.camel@zakaz.uk.xensource.com>
+User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
+MIME-Version: 1.0
+Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 05/14] xen: balloon: use correct type for
+       frame_list
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Fri, 5 Oct 2012, Ian Campbell wrote:
+> On Fri, 2012-10-05 at 12:48 +0100, Stefano Stabellini wrote:
+> > On Thu, 4 Oct 2012, Ian Campbell wrote:
+> > > This is now a xen_pfn_t.
+> > > 
+> > > Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+> > > ---
+> > >  drivers/xen/balloon.c |    2 +-
+> > >  1 files changed, 1 insertions(+), 1 deletions(-)
+> > > 
+> > > diff --git a/drivers/xen/balloon.c b/drivers/xen/balloon.c
+> > > index 85ef7e7..4625560 100644
+> > > --- a/drivers/xen/balloon.c
+> > > +++ b/drivers/xen/balloon.c
+> > > @@ -87,7 +87,7 @@ struct balloon_stats balloon_stats;
+> > >  EXPORT_SYMBOL_GPL(balloon_stats);
+> > >  
+> > >  /* We increase/decrease in batches which fit in a page */
+> > > -static unsigned long frame_list[PAGE_SIZE / sizeof(unsigned long)];
+> > > +static xen_pfn_t frame_list[PAGE_SIZE / sizeof(unsigned long)];
+> > >  
+> > >  #ifdef CONFIG_HIGHMEM
+> > >  #define inc_totalhigh_pages() (totalhigh_pages++)
+> >  
+> > While I think is a good change, frame_list[i] is used as an argument to
+> > set_phys_to_machine, that takes an unsigned long. Also unsigned long are
+> > assigned to members of the array via page_to_pfn.
+> > I think that we should take care of these cases, either introducing
+> > explicit casts or changing the argument types.
+> 
+> frame_list is used at the Xen interface, and so the pfn type has to be
+> sized for the largest pfn the hypervisor will use (aka xen_pfn_t). Those
+> unsigned longs are really "linux_pfn_t", that is they are the size of
+> the largest pfn the guest is itself prepared to deal with.
+> 
+> So long as sizeof(unsigned long) <= sizeof(xen_pfn_t) (which it is) then
+> we are ok.
+
+I think that we are playing with fire here.
+
+Let's imaging a future where physical addresses are actually 64 bit.
+Let's imaging that Xen is supporting them perfectly fine and returns to
+this balloon driver a pfn > ULONG_MAX (already possible on ARM).
+
+That is a perfectly valid value for Xen to give us and we should be able
+to handle it. If we are not we should return an error.
+With this change we would trimmer the pfn returned by Xen to 32 bit so we
+would actually have an incorrect behaviour instead.
+
+If we assume sizeof(unsigned long) <= sizeof(xen_pfn_t), we only need a
+macro like this:
+
+#define LINUX_PFN_MAX ULONG_MAX
+#define linux_pfn_t unsigned long
+#define xen_pfn_to_linux_pfn(pfn)    ({BUG_ON(pfn > LINUX_PFN_MAX); (linux_pfn_t)pfn;})
+
+that is called in the right places.
+
+
+> If and when Linux wants to use pfn's which are not unsigned longs then
+> the uses of unsigned long will need to be audited (globally, not just
+> here) to become whatever type Linux then defines to contain a pfn. In
+> the absence of that type being defined in the core Linux code I think it
+> is correct for us to keep using unsigned long in those contexts.
+
+I think is OK using unsigned long for linux_pfn, the problem is the
+conversion between what Xen gives us and linux_pfns.
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<alpine.DEB.2.02.1210051503160.29232@kaball.uk.xensource.com> b/config/examples/test/corpus/<alpine.DEB.2.02.1210051503160.29232@kaball.uk.xensource.com>
new file mode 100644 (file)
index 0000000..691e308
--- /dev/null
@@ -0,0 +1,105 @@
+From xen-devel-bounces@lists.xen.org Fri Oct 05 15:10:00 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 05 Oct 2012 15:10:00 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TK8bC-00086f-Qg
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 05 Oct 2012 15:10:00 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TK8X9-0007kz-Ay; Fri, 05 Oct 2012 14:05:43 +0000
+Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1TK8X7-0007kf-D7
+       for xen-devel@lists.xen.org; Fri, 05 Oct 2012 14:05:41 +0000
+Received: from [85.158.143.99:23421] by server-3.bemta-4.messagelabs.com id
+       74/EE-10986-339EE605; Fri, 05 Oct 2012 14:05:39 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-13.tower-216.messagelabs.com!1349445938!26760639!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTMxNTE=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 16869 invoked from network); 5 Oct 2012 14:05:38 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-13.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
+       5 Oct 2012 14:05:38 -0000
+X-IronPort-AV: E=Sophos;i="4.80,541,1344211200"; d="scan'208";a="14965561"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       05 Oct 2012 14:05:38 +0000
+Received: from kaball.uk.xensource.com (10.80.2.59) by
+       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
+       8.3.279.1; Fri, 5 Oct 2012 15:05:38 +0100
+Date: Fri, 5 Oct 2012 15:04:36 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-X-Sender: sstabellini@kaball.uk.xensource.com
+To: Ian Campbell <Ian.Campbell@citrix.com>
+In-Reply-To: <1349443982.20946.100.camel@zakaz.uk.xensource.com>
+Message-ID: <alpine.DEB.2.02.1210051503160.29232@kaball.uk.xensource.com>
+References: <1349363496.866.49.camel@zakaz.uk.xensource.com>
+       <1349363515-26190-8-git-send-email-ian.campbell@citrix.com>
+       <alpine.DEB.2.02.1210051419030.29232@kaball.uk.xensource.com>
+       <1349443982.20946.100.camel@zakaz.uk.xensource.com>
+User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
+MIME-Version: 1.0
+Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 08/14] xen: balloon: allow PVMMU interfaces
+ to be compiled out
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Fri, 5 Oct 2012, Ian Campbell wrote:
+> On Fri, 2012-10-05 at 14:19 +0100, Stefano Stabellini wrote:
+> > On Thu, 4 Oct 2012, Ian Campbell wrote:
+> > > The ARM platform has no concept of PVMMU and therefor no
+> > > HYPERVISOR_update_va_mapping et al. Allow this code to be compiled out
+> > > when not required.
+> > > 
+> > > Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+> > 
+> > I am unsure whether it is worth a new symbol and two ifdef's
+> 
+> ARM doesn't compile without it, since HYPERVISOR_update_va_mapping
+> doesn't exist. Do you have a preferable alternative?
+> 
+> I'm not sure how much more of this sort of thing there will be as we
+> enable more features on the ARM port.
+
+#define HYPERVISOR_update_va_mapping(va, new_val, flags) (0)
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<alpine.DEB.2.02.1210051505380.29232@kaball.uk.xensource.com> b/config/examples/test/corpus/<alpine.DEB.2.02.1210051505380.29232@kaball.uk.xensource.com>
new file mode 100644 (file)
index 0000000..e104a89
--- /dev/null
@@ -0,0 +1,110 @@
+From xen-devel-bounces@lists.xen.org Fri Oct 05 15:10:56 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 05 Oct 2012 15:10:56 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TK8c6-000879-LM
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 05 Oct 2012 15:10:56 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TK8YM-0007w0-QE; Fri, 05 Oct 2012 14:06:58 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1TK8YL-0007vj-3G
+       for xen-devel@lists.xen.org; Fri, 05 Oct 2012 14:06:57 +0000
+Received: from [85.158.138.51:2170] by server-12.bemta-3.messagelabs.com id
+       4F/F1-23730-089EE605; Fri, 05 Oct 2012 14:06:56 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-8.tower-174.messagelabs.com!1349446015!33201395!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTMxNTE=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 7398 invoked from network); 5 Oct 2012 14:06:55 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-8.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
+       5 Oct 2012 14:06:55 -0000
+X-IronPort-AV: E=Sophos;i="4.80,541,1344211200"; d="scan'208";a="14965597"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       05 Oct 2012 14:06:55 +0000
+Received: from kaball.uk.xensource.com (10.80.2.59) by
+       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
+       8.3.279.1; Fri, 5 Oct 2012 15:06:55 +0100
+Date: Fri, 5 Oct 2012 15:05:53 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-X-Sender: sstabellini@kaball.uk.xensource.com
+To: Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+In-Reply-To: <alpine.DEB.2.02.1210051503160.29232@kaball.uk.xensource.com>
+Message-ID: <alpine.DEB.2.02.1210051505380.29232@kaball.uk.xensource.com>
+References: <1349363496.866.49.camel@zakaz.uk.xensource.com>
+       <1349363515-26190-8-git-send-email-ian.campbell@citrix.com>
+       <alpine.DEB.2.02.1210051419030.29232@kaball.uk.xensource.com>
+       <1349443982.20946.100.camel@zakaz.uk.xensource.com>
+       <alpine.DEB.2.02.1210051503160.29232@kaball.uk.xensource.com>
+User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
+       Ian Campbell <Ian.Campbell@citrix.com>,
+       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 08/14] xen: balloon: allow PVMMU interfaces
+ to be compiled out
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Fri, 5 Oct 2012, Stefano Stabellini wrote:
+> On Fri, 5 Oct 2012, Ian Campbell wrote:
+> > On Fri, 2012-10-05 at 14:19 +0100, Stefano Stabellini wrote:
+> > > On Thu, 4 Oct 2012, Ian Campbell wrote:
+> > > > The ARM platform has no concept of PVMMU and therefor no
+> > > > HYPERVISOR_update_va_mapping et al. Allow this code to be compiled out
+> > > > when not required.
+> > > > 
+> > > > Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
+> > > 
+> > > I am unsure whether it is worth a new symbol and two ifdef's
+> > 
+> > ARM doesn't compile without it, since HYPERVISOR_update_va_mapping
+> > doesn't exist. Do you have a preferable alternative?
+> > 
+> > I'm not sure how much more of this sort of thing there will be as we
+> > enable more features on the ARM port.
+> 
+> #define HYPERVISOR_update_va_mapping(va, new_val, flags) (0)
+> 
+
+actually a proper static line with a BUG would be better
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<alpine.DEB.2.02.1210051553430.29539@kaball.uk.xensource.com> b/config/examples/test/corpus/<alpine.DEB.2.02.1210051553430.29539@kaball.uk.xensource.com>
new file mode 100644 (file)
index 0000000..d0405a5
--- /dev/null
@@ -0,0 +1,97 @@
+From xen-devel-bounces@lists.xen.org Fri Oct 05 15:58:50 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Fri, 05 Oct 2012 15:58:50 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TK9MS-0008TQ-Re
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 05 Oct 2012 15:58:50 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TK9JA-0005I7-3l; Fri, 05 Oct 2012 14:55:20 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1TK9J8-0005Hv-Cs
+       for xen-devel@lists.xen.org; Fri, 05 Oct 2012 14:55:18 +0000
+Received: from [85.158.137.99:32619] by server-3.bemta-3.messagelabs.com id
+       1A/94-25962-5D4FE605; Fri, 05 Oct 2012 14:55:17 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-7.tower-217.messagelabs.com!1349448912!15637449!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTMxNTE=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 30292 invoked from network); 5 Oct 2012 14:55:16 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-7.tower-217.messagelabs.com with RC4-SHA encrypted SMTP;
+       5 Oct 2012 14:55:16 -0000
+X-IronPort-AV: E=Sophos;i="4.80,541,1344211200"; d="scan'208";a="14966996"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       05 Oct 2012 14:55:11 +0000
+Received: from kaball.uk.xensource.com (10.80.2.59) by
+       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
+       8.3.279.1; Fri, 5 Oct 2012 15:55:11 +0100
+Date: Fri, 5 Oct 2012 15:54:09 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-X-Sender: sstabellini@kaball.uk.xensource.com
+To: Ian Campbell <Ian.Campbell@citrix.com>
+In-Reply-To: <1349447625.20946.130.camel@zakaz.uk.xensource.com>
+Message-ID: <alpine.DEB.2.02.1210051553430.29539@kaball.uk.xensource.com>
+References: <1349363496.866.49.camel@zakaz.uk.xensource.com>
+       <1349363515-26190-5-git-send-email-ian.campbell@citrix.com>
+       <alpine.DEB.2.02.1210051243480.29232@kaball.uk.xensource.com>
+       <1349440338.20946.83.camel@zakaz.uk.xensource.com> 
+       <alpine.DEB.2.02.1210051438340.29232@kaball.uk.xensource.com>
+       <1349447625.20946.130.camel@zakaz.uk.xensource.com>
+User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
+MIME-Version: 1.0
+Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
+       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 05/14] xen: balloon: use correct type for
+       frame_list
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Fri, 5 Oct 2012, Ian Campbell wrote:
+> In theory there might be a problem for a PV guest, but in the only case
+> which matters:
+>         arch/x86/include/asm/xen/interface.h:typedef unsigned long xen_pfn_t;
+> and furthermore 32 bit PV guests are limited to 160G of MFN space (which
+> is less than 2^32) for other reasons already.
+
+Well, we should at least write that in a comment
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<alpine.DEB.2.02.1210091330560.29539@kaball.uk.xensource.com> b/config/examples/test/corpus/<alpine.DEB.2.02.1210091330560.29539@kaball.uk.xensource.com>
new file mode 100644 (file)
index 0000000..23590a8
--- /dev/null
@@ -0,0 +1,196 @@
+From xen-devel-bounces@lists.xen.org Tue Oct 09 13:37:25 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Tue, 09 Oct 2012 13:37:25 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TLZ3m-0003vm-Un
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 09 Oct 2012 13:37:24 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TLYz1-0003Hw-Rf; Tue, 09 Oct 2012 12:32:23 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1TLYz0-0003Hr-EB
+       for xen-devel@lists.xen.org; Tue, 09 Oct 2012 12:32:22 +0000
+Received: from [85.158.138.51:24817] by server-1.bemta-3.messagelabs.com id
+       28/C6-16425-55914705; Tue, 09 Oct 2012 12:32:21 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-4.tower-174.messagelabs.com!1349785940!33168744!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTM0MjQ=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 13522 invoked from network); 9 Oct 2012 12:32:20 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-4.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
+       9 Oct 2012 12:32:20 -0000
+X-IronPort-AV: E=Sophos;i="4.80,560,1344211200"; d="scan'208";a="15036613"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       09 Oct 2012 12:32:19 +0000
+Received: from kaball.uk.xensource.com (10.80.2.59) by
+       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
+       8.3.279.1; Tue, 9 Oct 2012 13:32:20 +0100
+Date: Tue, 9 Oct 2012 13:31:14 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-X-Sender: sstabellini@kaball.uk.xensource.com
+To: Ian Campbell <Ian.Campbell@citrix.com>
+In-Reply-To: <1349453467.20946.142.camel@zakaz.uk.xensource.com>
+Message-ID: <alpine.DEB.2.02.1210091330560.29539@kaball.uk.xensource.com>
+References: <1349363496.866.49.camel@zakaz.uk.xensource.com>
+       <1349363515-26190-5-git-send-email-ian.campbell@citrix.com>
+       <alpine.DEB.2.02.1210051243480.29232@kaball.uk.xensource.com>
+       <1349440338.20946.83.camel@zakaz.uk.xensource.com> 
+       <alpine.DEB.2.02.1210051438340.29232@kaball.uk.xensource.com>
+       <1349447625.20946.130.camel@zakaz.uk.xensource.com>
+       <1349453467.20946.142.camel@zakaz.uk.xensource.com>
+User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
+       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH 05/14] xen: balloon: use correct type for
+ frame_list
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Fri, 5 Oct 2012, Ian Campbell wrote:
+> On Fri, 2012-10-05 at 15:33 +0100, Ian Campbell wrote:
+> > The issue you describe could only happen for a 32 bit HAP guest if the
+> > guests was given > 16GB (2^(32+PAGE_SHIFT) bytes) of RAM and it was
+> > explicitly trying to balloon memory over that limit, but in order for
+> > that to even be possible it would already need to have made its concept
+> > of a pfn larger than 32 bits.
+> 
+> The one place this might matter is in the privcmd
+> IOCTL_PRIVCMD_MMAPBATCH interface for the *foreign* pfn (since a small
+> dom0 needs to be able to build a big domU). Luckily that interface
+> already uses xen_pfn_t, we just need to be a bit careful in the
+> xen_remap_domain_mfn_range case, which Konrad tried to tell me already
+> and he was right...
+> 
+> On ARM that meant the following (built but not executed) patch, I
+> suspect the PVH variant needs similar treatment.
+
+I think you are right
+
+
+> 
+> diff --git a/arch/arm/include/asm/xen/interface.h b/arch/arm/include/asm/xen/interface.h
+> index ae05e56..ad87917 100644
+> --- a/arch/arm/include/asm/xen/interface.h
+> +++ b/arch/arm/include/asm/xen/interface.h
+> @@ -43,6 +43,7 @@ DEFINE_GUEST_HANDLE(void);
+>  DEFINE_GUEST_HANDLE(uint64_t);
+>  DEFINE_GUEST_HANDLE(uint32_t);
+>  DEFINE_GUEST_HANDLE(xen_pfn_t);
+> +DEFINE_GUEST_HANDLE(xen_ulong_t);
+>  
+>  /* Maximum number of virtual CPUs in multi-processor guests. */
+>  #define MAX_VIRT_CPUS 1
+> diff --git a/arch/arm/xen/enlighten.c b/arch/arm/xen/enlighten.c
+> index a9946aa..1d64c02 100644
+> --- a/arch/arm/xen/enlighten.c
+> +++ b/arch/arm/xen/enlighten.c
+> @@ -57,7 +57,7 @@ static int map_foreign_page(unsigned long lpfn, unsigned long fgmfn,
+>              .size = 1,
+>              .space = XENMAPSPACE_gmfn_foreign,
+>      };
+> -    unsigned long idx = fgmfn;
+> +    xen_ulong_t idx = fgmfn;
+>      xen_pfn_t gpfn = lpfn;
+>  
+>      set_xen_guest_handle(xatp.idxs, &idx);
+> @@ -73,7 +73,7 @@ static int map_foreign_page(unsigned long lpfn, unsigned long fgmfn,
+>  }
+>  
+>  struct remap_data {
+> -    unsigned long fgmfn; /* foreign domain's gmfn */
+> +    xen_pfn_t fgmfn; /* foreign domain's gmfn */
+>      pgprot_t prot;
+>      domid_t  domid;
+>      struct vm_area_struct *vma;
+> @@ -98,7 +98,7 @@ static int remap_pte_fn(pte_t *ptep, pgtable_t token, unsigned long addr,
+>  
+>  int xen_remap_domain_mfn_range(struct vm_area_struct *vma,
+>                             unsigned long addr,
+> -                           unsigned long mfn, int nr,
+> +                           xen_pfn_t mfn, int nr,
+>                             pgprot_t prot, unsigned domid,
+>                             struct xen_remap_mfn_info *info)
+>  {
+> diff --git a/arch/x86/include/asm/xen/interface.h b/arch/x86/include/asm/xen/interface.h
+> index 250c254..d67f3c6 100644
+> --- a/arch/x86/include/asm/xen/interface.h
+> +++ b/arch/x86/include/asm/xen/interface.h
+> @@ -63,6 +63,7 @@ DEFINE_GUEST_HANDLE(void);
+>  DEFINE_GUEST_HANDLE(uint64_t);
+>  DEFINE_GUEST_HANDLE(uint32_t);
+>  DEFINE_GUEST_HANDLE(xen_pfn_t);
+> +DEFINE_GUEST_HANDLE(xen_ulong_t);
+>  #endif
+>  
+>  #ifndef HYPERVISOR_VIRT_START
+> diff --git a/include/xen/interface/memory.h b/include/xen/interface/memory.h
+> index e5675bc..24e5731 100644
+> --- a/include/xen/interface/memory.h
+> +++ b/include/xen/interface/memory.h
+> @@ -199,7 +199,7 @@ struct xen_add_to_physmap_range {
+>      domid_t foreign_domid; /* IFF gmfn_foreign */
+>  
+>      /* Indexes into space being mapped. */
+> -    GUEST_HANDLE(ulong) idxs;
+> +    GUEST_HANDLE(xen_ulong_t) idxs;
+>  
+>      /* GPFN in domid where the source mapping page should appear. */
+>      GUEST_HANDLE(xen_pfn_t) gpfns;
+> diff --git a/include/xen/xen-ops.h b/include/xen/xen-ops.h
+> index 2f3cb06..59309f3 100644
+> --- a/include/xen/xen-ops.h
+> +++ b/include/xen/xen-ops.h
+> @@ -27,7 +27,7 @@ struct vm_area_struct;
+>  struct xen_remap_mfn_info;
+>  int xen_remap_domain_mfn_range(struct vm_area_struct *vma,
+>                             unsigned long addr,
+> -                           unsigned long mfn, int nr,
+> +                           xen_pfn_t mfn, int nr,
+>                             pgprot_t prot, unsigned domid,
+>                             struct xen_remap_mfn_info *pvhp);
+>  int xen_unmap_domain_mfn_range(struct vm_area_struct *vma,
+> 
+> 
+> 
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<alpine.DEB.2.02.1210091506030.29539@kaball.uk.xensource.com> b/config/examples/test/corpus/<alpine.DEB.2.02.1210091506030.29539@kaball.uk.xensource.com>
new file mode 100644 (file)
index 0000000..fe9f2d8
--- /dev/null
@@ -0,0 +1,143 @@
+From xen-devel-bounces@lists.xen.org Tue Oct 09 15:15:30 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Tue, 09 Oct 2012 15:15:30 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TLaai-0004Pi-Tj
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 09 Oct 2012 15:15:30 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TLaWp-000798-Ul; Tue, 09 Oct 2012 14:11:23 +0000
+Received: from mail27.messagelabs.com ([193.109.254.147])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1TLaWo-000771-9j
+       for xen-devel@lists.xensource.com; Tue, 09 Oct 2012 14:11:22 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-5.tower-27.messagelabs.com!1349791876!7927139!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTM0MjQ=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 28847 invoked from network); 9 Oct 2012 14:11:16 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-5.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
+       9 Oct 2012 14:11:16 -0000
+X-IronPort-AV: E=Sophos;i="4.80,560,1344211200"; d="scan'208";a="15040117"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       09 Oct 2012 14:11:16 +0000
+Received: from kaball.uk.xensource.com (10.80.2.59) by
+       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
+       8.3.279.1; Tue, 9 Oct 2012 15:11:15 +0100
+Date: Tue, 9 Oct 2012 15:10:10 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-X-Sender: sstabellini@kaball.uk.xensource.com
+To: Ian Campbell <Ian.Campbell@citrix.com>
+In-Reply-To: <1349428386.20946.15.camel@zakaz.uk.xensource.com>
+Message-ID: <alpine.DEB.2.02.1210091506030.29539@kaball.uk.xensource.com>
+References: <alpine.DEB.2.02.1208221159560.15568@kaball.uk.xensource.com>
+       <1345633688-31684-4-git-send-email-stefano.stabellini@eu.citrix.com>
+       <1349428386.20946.15.camel@zakaz.uk.xensource.com>
+User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
+MIME-Version: 1.0
+Content-Type: multipart/mixed;
+       boundary="1342847746-615481255-1349791585=:29539"
+Content-ID: <alpine.DEB.2.02.1210091509060.29539@kaball.uk.xensource.com>
+Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
+       "Tim \(Xen.org\)" <tim@xen.org>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH v4 4/6] xen: introduce XEN_GUEST_HANDLE_PARAM
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+--1342847746-615481255-1349791585=:29539
+Content-Type: text/plain; charset="UTF-8"
+Content-Transfer-Encoding: 8BIT
+Content-ID: <alpine.DEB.2.02.1210091509061.29539@kaball.uk.xensource.com>
+
+On Fri, 5 Oct 2012, Ian Campbell wrote:
+> On Wed, 2012-08-22 at 12:08 +0100, Stefano Stabellini wrote:
+> > diff --git a/xen/include/asm-arm/guest_access.h b/xen/include/asm-arm/guest_access.h
+> > index 0fceae6..5686217 100644
+> > --- a/xen/include/asm-arm/guest_access.h
+> > +++ b/xen/include/asm-arm/guest_access.h
+> > @@ -27,16 +27,40 @@ unsigned long raw_clear_guest(void *to, unsigned len);
+> >  #define guest_handle_add_offset(hnd, nr) ((hnd).p += (nr))
+> >  #define guest_handle_subtract_offset(hnd, nr) ((hnd).p -= (nr))
+> >  
+> > -/* Cast a guest handle to the specified type of handle. */
+> > +/* Cast a guest handle (either XEN_GUEST_HANDLE or XEN_GUEST_HANDLE_PARAM)
+> > + * to the specified type of XEN_GUEST_HANDLE_PARAM. */
+> >  #define guest_handle_cast(hnd, type) ({         \
+> >      type *_x = (hnd).p;                         \
+> > -    (XEN_GUEST_HANDLE(type)) { _x };            \
+> > +    (XEN_GUEST_HANDLE_PARAM(type)) { _x };            \
+> [...]
+> >  #define guest_handle_from_ptr(ptr, type)        \
+> > -    ((XEN_GUEST_HANDLE(type)) { (type *)ptr })
+> > +    ((XEN_GUEST_HANDLE_PARAM(type)) { (type *)ptr })
+> >  #define const_guest_handle_from_ptr(ptr, type)  \
+> > -    ((XEN_GUEST_HANDLE(const_##type)) { (const type *)ptr })
+> > +    ((XEN_GUEST_HANDLE_PARAM(const_##type)) { (const type *)ptr })
+> 
+> These little bits cause build breakage if you only apply to this point
+> in the series (i.e. breaks bisectability):
+>         grant_table.c: In function â€˜do_grant_table_op’:
+>         grant_table.c:2449:13: error: invalid initializer
+>         grant_table.c:2456:17: error: incompatible types when assigning to type â€˜__guest_handle_64_void’ from type â€˜__guest_handle_void’
+>         [lots more of the same]
+> 
+> I think this is because you have changed guest_handle_cast but you
+> haven't yet changed the type of the parameter.
+> 
+> I haven't tried x86 but I can't see why the same problem wouldn't exist
+> there also.
+> 
+> The obvious answer is to move these hunks into the next patch, but I
+> think because of the split into patches 5/6 and 6/6 this will still
+> cause problems. I'll try it though but I suspect we might end up having
+> to squash 5+6 together?
+
+You are right, I realize now that the series is not bisectable :(
+It makes sense to squash 4, 5 and 6 together, the only reason why I kept
+them separate is for readability.
+--1342847746-615481255-1349791585=:29539
+Content-Type: text/plain; charset="us-ascii"
+MIME-Version: 1.0
+Content-Transfer-Encoding: 7bit
+Content-Disposition: inline
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
+--1342847746-615481255-1349791585=:29539--
+
+
diff --git a/config/examples/test/corpus/<alpine.DEB.2.02.1210171749000.2689@kaball.uk.xensource.com> b/config/examples/test/corpus/<alpine.DEB.2.02.1210171749000.2689@kaball.uk.xensource.com>
new file mode 100644 (file)
index 0000000..17b8b09
--- /dev/null
@@ -0,0 +1,148 @@
+From xen-devel-bounces@lists.xen.org Wed Oct 17 17:55:20 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 17 Oct 2012 17:55:20 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TOWtn-00049a-7F
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 17 Oct 2012 17:55:20 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1TOWqR-0001Lj-Nq; Wed, 17 Oct 2012 16:51:47 +0000
+Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
+       id 1TOWqP-0001LY-J0
+       for xen-devel@lists.xensource.com; Wed, 17 Oct 2012 16:51:45 +0000
+Received: from [85.158.139.211:26421] by server-13.bemta-5.messagelabs.com id
+       E3/C5-30674-022EE705; Wed, 17 Oct 2012 16:51:44 +0000
+X-Env-Sender: Stefano.Stabellini@eu.citrix.com
+X-Msg-Ref: server-15.tower-206.messagelabs.com!1350492704!22758673!1
+X-Originating-IP: [62.200.22.115]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTQ2NDQ=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 28133 invoked from network); 17 Oct 2012 16:51:44 -0000
+Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
+       by server-15.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
+       17 Oct 2012 16:51:44 -0000
+X-IronPort-AV: E=Sophos;i="4.80,602,1344211200"; d="scan'208";a="15232669"
+Received: from lonpmailmx01.citrite.net ([10.30.203.162])
+       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       17 Oct 2012 16:51:44 +0000
+Received: from kaball.uk.xensource.com (10.80.2.59) by
+       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
+       8.3.279.1; Wed, 17 Oct 2012 17:51:44 +0100
+Date: Wed, 17 Oct 2012 17:51:21 +0100
+From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
+X-X-Sender: sstabellini@kaball.uk.xensource.com
+To: Ian Campbell <Ian.Campbell@citrix.com>
+In-Reply-To: <1350383800.18058.114.camel@zakaz.uk.xensource.com>
+Message-ID: <alpine.DEB.2.02.1210171749000.2689@kaball.uk.xensource.com>
+References: <alpine.DEB.2.02.1208161523420.4850@kaball.uk.xensource.com>
+       <1350383800.18058.114.camel@zakaz.uk.xensource.com>
+User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
+MIME-Version: 1.0
+Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>, "Keir
+       \(Xen.org\)" <keir@xen.org>, "Tim Deegan \(3P\)" <Tim.Deegan@citrix.com>,
+       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-4.6 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
+       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
+Subject: Re: [Xen-devel] [PATCH v3 0/6] ARM hypercall ABI: 64 bit ready
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+On Tue, 16 Oct 2012, Ian Campbell wrote:
+> On Thu, 2012-08-16 at 15:48 +0100, Stefano Stabellini wrote:
+> > In this version of the patch series I have introduced conversion macros
+> > to convert a XEN_GUEST_HANDLE_PARAM into a XEN_GUEST_HANDLE a vice
+> > versa. Most of the problematic cases come from xen/arch/x86 code, in
+> > order to spot them I wrote a simple debug patch that change the
+> > definition of XEN_GUEST_HANDLE_PARAM to be different from
+> > XEN_GUEST_HANDLE on x86 too. I am attaching the debug patch to this
+> > email. 
+> 
+> This (quoted below) seems like a useful patch from the PoV of catching
+> these sorts of things early on x86 before they break ARM.
+> 
+> It doesn't seem like it should have any impact on the generated code,
+> should we perhaps apply it?
+
+Nope, it shouldn't have any impact.
+Having it in the tree would be a clear improvement!
+
+
+> I needed the addition of the following to actually make it work though.
+> 
+> diff --git a/xen/include/asm-x86/guest_access.h b/xen/include/asm-x86/guest_acce
+> index ca700c9..33b4afd 100644
+> --- a/xen/include/asm-x86/guest_access.h
+> +++ b/xen/include/asm-x86/guest_access.h
+> @@ -54,22 +54,24 @@
+>  
+>  /* Cast a XEN_GUEST_HANDLE to XEN_GUEST_HANDLE_PARAM */
+>  #define guest_handle_to_param(hnd, type) ({                  \
+> +    typeof((hnd).p) _x = (hnd).p;                            \
+> +    XEN_GUEST_HANDLE_PARAM(type) _y = { _x };                \
+>      /* type checking: make sure that the pointers inside     \
+>       * XEN_GUEST_HANDLE and XEN_GUEST_HANDLE_PARAM are of    \
+>       * the same type, then return hnd */                     \
+> -    (void)((typeof(&(hnd).p)) 0 ==                           \
+> -        (typeof(&((XEN_GUEST_HANDLE_PARAM(type)) {}).p)) 0); \
+> -    (hnd);                                                   \
+> +    (void)(&_x == &_y.p);                                    \
+> +    _y;                                                      \
+>  })
+>  
+>  /* Cast a XEN_GUEST_HANDLE_PARAM to XEN_GUEST_HANDLE */
+> -#define guest_handle_from_param(hnd, type) ({                \
+> -    /* type checking: make sure that the pointers inside     \
+> -     * XEN_GUEST_HANDLE and XEN_GUEST_HANDLE_PARAM are of    \
+> -     * the same type, then return hnd */                     \
+> -    (void)((typeof(&(hnd).p)) 0 ==                           \
+> -        (typeof(&((XEN_GUEST_HANDLE_PARAM(type)) {}).p)) 0); \
+> -    (hnd);                                                   \
+> +#define guest_handle_from_param(hnd, type) ({               \
+> +    typeof((hnd).p) _x = (hnd).p;                           \
+> +    XEN_GUEST_HANDLE(type) _y = { _x };                     \
+> +    /* type checking: make sure that the pointers inside    \
+> +     * XEN_GUEST_HANDLE and XEN_GUEST_HANDLE_PARAM are of   \
+> +     * the same type, then return hnd */                    \
+> +    (void)(&_x == &_y.p);                                   \
+> +    _y;                                                     \
+>  })
+>  
+>  #define guest_handle_for_field(hnd, type, fld)          \
+
+I would argue that these changes are the right thing to do anyway.
+The original code is unreadable.
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<c378b04ee29071c1d6d68bd3ef48fedadb493b10.1345552068.git.julien.grall@citrix.com> b/config/examples/test/corpus/<c378b04ee29071c1d6d68bd3ef48fedadb493b10.1345552068.git.julien.grall@citrix.com>
new file mode 100644 (file)
index 0000000..323b27e
--- /dev/null
@@ -0,0 +1,320 @@
+From xen-devel-bounces@lists.xen.org Wed Aug 22 19:58:44 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 22 Aug 2012 19:58:44 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T4G8S-0002kv-EN
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 22 Aug 2012 19:58:44 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T4G5F-0006hb-3D; Wed, 22 Aug 2012 18:55:17 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <julien.grall@citrix.com>) id 1T4G5C-0006fp-G3
+       for xen-devel@lists.xen.org; Wed, 22 Aug 2012 18:55:14 +0000
+Received: from [85.158.138.51:37610] by server-7.bemta-3.messagelabs.com id
+       5C/49-01906-11B25305; Wed, 22 Aug 2012 18:55:13 +0000
+X-Env-Sender: julien.grall@citrix.com
+X-Msg-Ref: server-5.tower-174.messagelabs.com!1345661707!27566656!3
+X-Originating-IP: [66.165.176.63]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyNzMzNjM=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 9724 invoked from network); 22 Aug 2012 18:55:12 -0000
+Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
+       by server-5.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
+       22 Aug 2012 18:55:12 -0000
+X-IronPort-AV: E=Sophos;i="4.80,809,1344225600"; d="scan'208";a="205943118"
+Received: from ftlpmailmx01.citrite.net ([10.13.107.65])
+       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       22 Aug 2012 14:55:12 -0400
+Received: from meteora.cam.xci-test.com (10.80.248.22) by smtprelay.citrix.com
+       (10.13.107.65) with Microsoft SMTP Server id 8.3.213.0;
+       Wed, 22 Aug 2012 14:55:11 -0400
+From: Julien Grall <julien.grall@citrix.com>
+To: qemu-devel@nongnu.org
+Date: Wed, 22 Aug 2012 13:31:51 +0100
+Message-ID: <c378b04ee29071c1d6d68bd3ef48fedadb493b10.1345552068.git.julien.grall@citrix.com>
+X-Mailer: git-send-email 1.7.2.5
+In-Reply-To: <cover.1345552068.git.julien.grall@citrix.com>
+References: <cover.1345552068.git.julien.grall@citrix.com>
+MIME-Version: 1.0
+Cc: Julien Grall <julien.grall@citrix.com>, christian.limpach@gmail.com,
+       Stefano.Stabellini@eu.citrix.com, xen-devel@lists.xen.org
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DATE_IN_PAST_06_12,
+       RCVD_IN_DNSWL_MED,RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham
+       version=3.3.1
+Subject: [Xen-devel] [XEN][RFC PATCH V2 05/17] hvm: Modify hvm_op
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+This patch removes useless hvm_param due to structure modification
+and bind new hypercalls to handle ioreq servers and PCI.
+
+Signed-off-by: Julien Grall <julien.grall@citrix.com>
+---
+ xen/arch/x86/hvm/hvm.c          |  150 +++++++++++++++++++++------------------
+ xen/include/public/hvm/params.h |    5 --
+ 2 files changed, 81 insertions(+), 74 deletions(-)
+
+diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
+index 292d57b..a2cd9b3 100644
+--- a/xen/arch/x86/hvm/hvm.c
++++ b/xen/arch/x86/hvm/hvm.c
+@@ -571,8 +571,7 @@ int hvm_domain_initialise(struct domain *d)
+     register_portio_handler(d, 0xe9, 1, hvm_print_line);
+-    if ( hvm_init_pci_emul(d) )
+-        goto fail2;
++    hvm_init_pci_emul(d);
+     rc = hvm_funcs.domain_initialise(d);
+     if ( rc != 0 )
+@@ -650,6 +649,7 @@ void hvm_domain_relinquish_resources(struct domain *d)
+ {
+     hvm_destroy_ioreq_servers(d);
+     hvm_destroy_pci_emul(d);
++    hvm_destroy_ioreq_page(d, &d->arch.hvm_domain.ioreq);
+     msixtbl_pt_cleanup(d);
+@@ -3742,21 +3742,6 @@ static int hvmop_flush_tlb_all(void)
+     return 0;
+ }
+-static int hvm_replace_event_channel(struct vcpu *v, domid_t remote_domid,
+-                                     int *p_port)
+-{
+-    int old_port, new_port;
+-
+-    new_port = alloc_unbound_xen_event_channel(v, remote_domid, NULL);
+-    if ( new_port < 0 )
+-        return new_port;
+-
+-    /* xchg() ensures that only we call free_xen_event_channel(). */
+-    old_port = xchg(p_port, new_port);
+-    free_xen_event_channel(v, old_port);
+-    return 0;
+-}
+-
+ static int hvm_alloc_ioreq_server_page(struct domain *d,
+                                        struct hvm_ioreq_server *s,
+                                        struct hvm_ioreq_page *pfn,
+@@ -4041,7 +4026,6 @@ long do_hvm_op(unsigned long op, XEN_GUEST_HANDLE(void) arg)
+     case HVMOP_get_param:
+     {
+         struct xen_hvm_param a;
+-        struct hvm_ioreq_page *iorp;
+         struct domain *d;
+         struct vcpu *v;
+@@ -4069,20 +4053,12 @@ long do_hvm_op(unsigned long op, XEN_GUEST_HANDLE(void) arg)
+             switch ( a.index )
+             {
+-            case HVM_PARAM_IOREQ_PFN:
+-                iorp = &d->arch.hvm_domain.ioreq;
+-                if ( (rc = hvm_set_ioreq_page(d, iorp, a.value)) != 0 )
+-                    break;
+-                spin_lock(&iorp->lock);
+-                if ( iorp->va != NULL )
+-                    /* Initialise evtchn port info if VCPUs already created. */
+-                    for_each_vcpu ( d, v )
+-                        get_ioreq(v)->vp_eport = v->arch.hvm_vcpu.xen_port;
+-                spin_unlock(&iorp->lock);
++            case HVM_PARAM_IO_PFN_FIRST:
++                rc = hvm_set_ioreq_page(d, &d->arch.hvm_domain.ioreq, a.value);
+                 break;
+-            case HVM_PARAM_BUFIOREQ_PFN: 
+-                iorp = &d->arch.hvm_domain.buf_ioreq;
+-                rc = hvm_set_ioreq_page(d, iorp, a.value);
++            case HVM_PARAM_IO_PFN_LAST:
++                if ( (d->arch.hvm_domain.params[HVM_PARAM_IO_PFN_LAST]) )
++                    rc = -EINVAL;
+                 break;
+             case HVM_PARAM_CALLBACK_IRQ:
+                 hvm_set_callback_via(d, a.value);
+@@ -4128,41 +4104,6 @@ long do_hvm_op(unsigned long op, XEN_GUEST_HANDLE(void) arg)
+                 domctl_lock_release();
+                 break;
+-            case HVM_PARAM_DM_DOMAIN:
+-                /* Not reflexive, as we must domain_pause(). */
+-                rc = -EPERM;
+-                if ( curr_d == d )
+-                    break;
+-
+-                if ( a.value == DOMID_SELF )
+-                    a.value = curr_d->domain_id;
+-
+-                rc = 0;
+-                domain_pause(d); /* safe to change per-vcpu xen_port */
+-                if ( d->vcpu[0] )
+-                    rc = hvm_replace_event_channel(d->vcpu[0], a.value,
+-                             (int *)&d->vcpu[0]->domain->arch.hvm_domain.params
+-                                     [HVM_PARAM_BUFIOREQ_EVTCHN]);
+-                if ( rc )
+-                {
+-                    domain_unpause(d);
+-                    break;
+-                }
+-                iorp = &d->arch.hvm_domain.ioreq;
+-                for_each_vcpu ( d, v )
+-                {
+-                    rc = hvm_replace_event_channel(v, a.value,
+-                                                   &v->arch.hvm_vcpu.xen_port);
+-                    if ( rc )
+-                        break;
+-
+-                    spin_lock(&iorp->lock);
+-                    if ( iorp->va != NULL )
+-                        get_ioreq(v)->vp_eport = v->arch.hvm_vcpu.xen_port;
+-                    spin_unlock(&iorp->lock);
+-                }
+-                domain_unpause(d);
+-                break;
+             case HVM_PARAM_ACPI_S_STATE:
+                 /* Not reflexive, as we must domain_pause(). */
+                 rc = -EPERM;
+@@ -4213,9 +4154,6 @@ long do_hvm_op(unsigned long op, XEN_GUEST_HANDLE(void) arg)
+                         if ( rc == 0 )
+                             rc = nestedhvm_vcpu_initialise(v);
+                 break;
+-            case HVM_PARAM_BUFIOREQ_EVTCHN:
+-                rc = -EINVAL;
+-                break;
+             }
+             if ( rc == 0 ) 
+@@ -4669,6 +4607,80 @@ long do_hvm_op(unsigned long op, XEN_GUEST_HANDLE(void) arg)
+         break;
+     }
++    case HVMOP_register_ioreq_server:
++    {
++        struct xen_hvm_register_ioreq_server a;
++
++        if ( copy_from_guest(&a, arg, 1) )
++            return -EFAULT;
++
++        rc = hvmop_register_ioreq_server(&a);
++        if ( rc != 0 )
++            return rc;
++
++        rc = copy_to_guest(arg, &a, 1) ? -EFAULT : 0;
++        break;
++    }
++
++    case HVMOP_get_ioreq_server_buf_channel:
++    {
++        struct xen_hvm_get_ioreq_server_buf_channel a;
++
++        if ( copy_from_guest(&a, arg, 1) )
++            return -EFAULT;
++
++        rc = hvmop_get_ioreq_server_buf_channel(&a);
++        if ( rc != 0 )
++            return rc;
++
++        rc = copy_to_guest(arg, &a, 1) ? -EFAULT : 0;
++
++        break;
++    }
++
++    case HVMOP_map_io_range_to_ioreq_server:
++    {
++        struct xen_hvm_map_io_range_to_ioreq_server a;
++
++        if ( copy_from_guest(&a, arg, 1) )
++            return -EFAULT;
++
++        rc = hvmop_map_io_range_to_ioreq_server(&a);
++        if ( rc != 0 )
++            return rc;
++
++        break;
++    }
++
++    case HVMOP_unmap_io_range_from_ioreq_server:
++    {
++        struct xen_hvm_unmap_io_range_from_ioreq_server a;
++
++        if ( copy_from_guest(&a, arg, 1) )
++            return -EFAULT;
++
++        rc = hvmop_unmap_io_range_from_ioreq_server(&a);
++        if ( rc != 0 )
++            return rc;
++
++        break;
++    }
++
++    case HVMOP_register_pcidev:
++    {
++        struct xen_hvm_register_pcidev a;
++
++        if ( copy_from_guest(&a, arg, 1) )
++            return -EFAULT;
++
++        rc = hvm_register_pcidev(a.domid, a.id, a.domain,
++                                 a.bus, a.device, a.function);
++        if ( rc != 0 )
++            return rc;
++
++        break;
++    }
++
+     default:
+     {
+         gdprintk(XENLOG_DEBUG, "Bad HVM op %ld.\n", op);
+diff --git a/xen/include/public/hvm/params.h b/xen/include/public/hvm/params.h
+index 309ac1b..017493b 100644
+--- a/xen/include/public/hvm/params.h
++++ b/xen/include/public/hvm/params.h
+@@ -49,11 +49,6 @@
+ #define HVM_PARAM_PAE_ENABLED  4
+-#define HVM_PARAM_IOREQ_PFN    5
+-
+-#define HVM_PARAM_BUFIOREQ_PFN 6
+-#define HVM_PARAM_BUFIOREQ_EVTCHN 26
+-
+ #ifdef __ia64__
+ #define HVM_PARAM_NVRAM_FD     7
+-- 
+Julien Grall
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<cc44fbd3e6bc6d252367bc7ee77151de5ac8d2d5.1345552068.git.julien.grall@citrix.com> b/config/examples/test/corpus/<cc44fbd3e6bc6d252367bc7ee77151de5ac8d2d5.1345552068.git.julien.grall@citrix.com>
new file mode 100644 (file)
index 0000000..117e7a1
--- /dev/null
@@ -0,0 +1,151 @@
+From xen-devel-bounces@lists.xen.org Wed Aug 22 19:58:58 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 22 Aug 2012 19:58:58 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T4G8e-0002nS-DH
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 22 Aug 2012 19:58:58 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T4G5J-0006mV-8p; Wed, 22 Aug 2012 18:55:21 +0000
+Received: from mail27.messagelabs.com ([193.109.254.147])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <julien.grall@citrix.com>) id 1T4G5H-0006fw-Jd
+       for xen-devel@lists.xen.org; Wed, 22 Aug 2012 18:55:19 +0000
+X-Env-Sender: julien.grall@citrix.com
+X-Msg-Ref: server-12.tower-27.messagelabs.com!1345661712!9781420!1
+X-Originating-IP: [66.165.176.89]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNjU4OTQ=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 7308 invoked from network); 22 Aug 2012 18:55:13 -0000
+Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
+       by server-12.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
+       22 Aug 2012 18:55:13 -0000
+X-IronPort-AV: E=Sophos;i="4.80,809,1344225600"; d="scan'208";a="35484787"
+Received: from ftlpmailmx01.citrite.net ([10.13.107.65])
+       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       22 Aug 2012 14:55:10 -0400
+Received: from meteora.cam.xci-test.com (10.80.248.22) by smtprelay.citrix.com
+       (10.13.107.65) with Microsoft SMTP Server id 8.3.213.0;
+       Wed, 22 Aug 2012 14:55:10 -0400
+From: Julien Grall <julien.grall@citrix.com>
+To: qemu-devel@nongnu.org
+Date: Wed, 22 Aug 2012 13:31:50 +0100
+Message-ID: <cc44fbd3e6bc6d252367bc7ee77151de5ac8d2d5.1345552068.git.julien.grall@citrix.com>
+X-Mailer: git-send-email 1.7.2.5
+In-Reply-To: <cover.1345552068.git.julien.grall@citrix.com>
+References: <cover.1345552068.git.julien.grall@citrix.com>
+MIME-Version: 1.0
+Cc: Julien Grall <julien.grall@citrix.com>, christian.limpach@gmail.com,
+       Stefano.Stabellini@eu.citrix.com, xen-devel@lists.xen.org
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DATE_IN_PAST_06_12,
+       RCVD_IN_DNSWL_MED,RP_MATCHES_RCVD autolearn=ham version=3.3.1
+Subject: [Xen-devel] [XEN][RFC PATCH V2 04/17] hvm: Change
+       initialization/destruction of an hvm
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+Prepare/Release structure for multiple ioreq servers.
+
+Signed-off-by: Julien Grall <julien.grall@citrix.com>
+---
+ xen/arch/x86/hvm/hvm.c |   33 ++++++++++-----------------------
+ 1 files changed, 10 insertions(+), 23 deletions(-)
+
+diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
+index 687e480..292d57b 100644
+--- a/xen/arch/x86/hvm/hvm.c
++++ b/xen/arch/x86/hvm/hvm.c
+@@ -567,10 +567,13 @@ int hvm_domain_initialise(struct domain *d)
+     rtc_init(d);
+     hvm_init_ioreq_page(d, &d->arch.hvm_domain.ioreq);
+-    hvm_init_ioreq_page(d, &d->arch.hvm_domain.buf_ioreq);
++    hvm_init_ioreq_servers(d);
+     register_portio_handler(d, 0xe9, 1, hvm_print_line);
++    if ( hvm_init_pci_emul(d) )
++        goto fail2;
++
+     rc = hvm_funcs.domain_initialise(d);
+     if ( rc != 0 )
+         goto fail2;
+@@ -645,8 +648,8 @@ static void hvm_destroy_ioreq_servers(struct domain *d)
+ void hvm_domain_relinquish_resources(struct domain *d)
+ {
+-    hvm_destroy_ioreq_page(d, &d->arch.hvm_domain.ioreq);
+-    hvm_destroy_ioreq_page(d, &d->arch.hvm_domain.buf_ioreq);
++    hvm_destroy_ioreq_servers(d);
++    hvm_destroy_pci_emul(d);
+     msixtbl_pt_cleanup(d);
+@@ -1104,27 +1107,11 @@ int hvm_vcpu_initialise(struct vcpu *v)
+          && (rc = nestedhvm_vcpu_initialise(v)) < 0 ) 
+         goto fail3;
+-    /* Create ioreq event channel. */
+-    rc = alloc_unbound_xen_event_channel(v, 0, NULL);
+-    if ( rc < 0 )
+-        goto fail4;
+-
+-    /* Register ioreq event channel. */
+-    v->arch.hvm_vcpu.xen_port = rc;
+-
+-    if ( v->vcpu_id == 0 )
+-    {
+-        /* Create bufioreq event channel. */
+-        rc = alloc_unbound_xen_event_channel(v, 0, NULL);
+-        if ( rc < 0 )
+-            goto fail2;
+-        v->domain->arch.hvm_domain.params[HVM_PARAM_BUFIOREQ_EVTCHN] = rc;
+-    }
++    rc = hvm_ioreq_servers_new_vcpu(v);
++    if ( rc != 0 )
++        goto fail3;
+-    spin_lock(&v->domain->arch.hvm_domain.ioreq.lock);
+-    if ( v->domain->arch.hvm_domain.ioreq.va != NULL )
+-        get_ioreq(v)->vp_eport = v->arch.hvm_vcpu.xen_port;
+-    spin_unlock(&v->domain->arch.hvm_domain.ioreq.lock);
++    v->arch.hvm_vcpu.ioreq = &v->domain->arch.hvm_domain.ioreq;
+     spin_lock_init(&v->arch.hvm_vcpu.tm_lock);
+     INIT_LIST_HEAD(&v->arch.hvm_vcpu.tm_list);
+-- 
+Julien Grall
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<ceab22f2150107af78fd8134b4dee9020a1aaf41.1345552068.git.julien.grall@citrix.com> b/config/examples/test/corpus/<ceab22f2150107af78fd8134b4dee9020a1aaf41.1345552068.git.julien.grall@citrix.com>
new file mode 100644 (file)
index 0000000..2403927
--- /dev/null
@@ -0,0 +1,201 @@
+From xen-devel-bounces@lists.xen.org Wed Aug 22 19:58:58 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 22 Aug 2012 19:58:58 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T4G8j-0002or-3G
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 22 Aug 2012 19:58:58 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T4G5H-0006ko-SP; Wed, 22 Aug 2012 18:55:19 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <julien.grall@citrix.com>) id 1T4G5G-0006iH-09
+       for xen-devel@lists.xen.org; Wed, 22 Aug 2012 18:55:18 +0000
+Received: from [85.158.138.51:39729] by server-9.bemta-3.messagelabs.com id
+       11/24-23952-51B25305; Wed, 22 Aug 2012 18:55:17 +0000
+X-Env-Sender: julien.grall@citrix.com
+X-Msg-Ref: server-5.tower-174.messagelabs.com!1345661707!27566656!4
+X-Originating-IP: [66.165.176.63]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyNzMzNjM=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 9836 invoked from network); 22 Aug 2012 18:55:16 -0000
+Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
+       by server-5.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
+       22 Aug 2012 18:55:16 -0000
+X-IronPort-AV: E=Sophos;i="4.80,809,1344225600"; d="scan'208";a="205943123"
+Received: from ftlpmailmx01.citrite.net ([10.13.107.65])
+       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       22 Aug 2012 14:55:15 -0400
+Received: from meteora.cam.xci-test.com (10.80.248.22) by smtprelay.citrix.com
+       (10.13.107.65) with Microsoft SMTP Server id 8.3.213.0;
+       Wed, 22 Aug 2012 14:55:15 -0400
+From: Julien Grall <julien.grall@citrix.com>
+To: qemu-devel@nongnu.org
+Date: Wed, 22 Aug 2012 13:31:54 +0100
+Message-ID: <ceab22f2150107af78fd8134b4dee9020a1aaf41.1345552068.git.julien.grall@citrix.com>
+X-Mailer: git-send-email 1.7.2.5
+In-Reply-To: <cover.1345552068.git.julien.grall@citrix.com>
+References: <cover.1345552068.git.julien.grall@citrix.com>
+MIME-Version: 1.0
+Cc: Julien Grall <julien.grall@citrix.com>, christian.limpach@gmail.com,
+       Stefano.Stabellini@eu.citrix.com, xen-devel@lists.xen.org
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DATE_IN_PAST_06_12,
+       RCVD_IN_DNSWL_MED,RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable
+       version=3.3.1
+Subject: [Xen-devel] [XEN][RFC PATCH V2 08/17] hvm-io: Handle server in
+       buffered IO
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+As for the normal IO, Xen browses the ranges to find which server
+is able to handle the IO.
+There is a special case for IOREQ_TYPE_TIMEOFFSET. Indeed,
+this IO must be send to all servers.
+For this purpose, a new function hvm_buffered_io_send_server was introduced.
+It sends an IO to a specific server.
+
+Signed-off-by: Julien Grall <julien.grall@citrix.com>
+---
+ xen/arch/x86/hvm/io.c |   75 +++++++++++++++++++++++++++++++++++++-----------
+ 1 files changed, 58 insertions(+), 17 deletions(-)
+
+diff --git a/xen/arch/x86/hvm/io.c b/xen/arch/x86/hvm/io.c
+index b73a462..6e0160c 100644
+--- a/xen/arch/x86/hvm/io.c
++++ b/xen/arch/x86/hvm/io.c
+@@ -46,28 +46,17 @@
+ #include <xen/iocap.h>
+ #include <public/hvm/ioreq.h>
+-int hvm_buffered_io_send(ioreq_t *p)
++static int hvm_buffered_io_send_to_server(ioreq_t *p, struct hvm_ioreq_server *s)
+ {
+     struct vcpu *v = current;
+-    struct hvm_ioreq_page *iorp = &v->domain->arch.hvm_domain.buf_ioreq;
+-    buffered_iopage_t *pg = iorp->va;
++    struct hvm_ioreq_page *iorp;
++    buffered_iopage_t *pg;
+     buf_ioreq_t bp;
+     /* Timeoffset sends 64b data, but no address. Use two consecutive slots. */
+     int qw = 0;
+-    /* Ensure buffered_iopage fits in a page */
+-    BUILD_BUG_ON(sizeof(buffered_iopage_t) > PAGE_SIZE);
+-
+-    /*
+-     * Return 0 for the cases we can't deal with:
+-     *  - 'addr' is only a 20-bit field, so we cannot address beyond 1MB
+-     *  - we cannot buffer accesses to guest memory buffers, as the guest
+-     *    may expect the memory buffer to be synchronously accessed
+-     *  - the count field is usually used with data_is_ptr and since we don't
+-     *    support data_is_ptr we do not waste space for the count field either
+-     */
+-    if ( (p->addr > 0xffffful) || p->data_is_ptr || (p->count != 1) )
+-        return 0;
++    iorp = &s->buf_ioreq;
++    pg = iorp->va;
+     bp.type = p->type;
+     bp.dir  = p->dir;
+@@ -119,12 +108,64 @@ int hvm_buffered_io_send(ioreq_t *p)
+     pg->write_pointer += qw ? 2 : 1;
+     notify_via_xen_event_channel(v->domain,
+-            v->domain->arch.hvm_domain.params[HVM_PARAM_BUFIOREQ_EVTCHN]);
++                                 s->buf_ioreq_evtchn);
+     spin_unlock(&iorp->lock);
+     
+     return 1;
+ }
++int hvm_buffered_io_send(ioreq_t *p)
++{
++    struct vcpu *v = current;
++    struct hvm_ioreq_server *s;
++    int rc = 1;
++
++    /* Ensure buffered_iopage fits in a page */
++    BUILD_BUG_ON(sizeof(buffered_iopage_t) > PAGE_SIZE);
++
++    /*
++     * Return 0 for the cases we can't deal with:
++     *  - 'addr' is only a 20-bit field, so we cannot address beyond 1MB
++     *  - we cannot buffer accesses to guest memory buffers, as the guest
++     *    may expect the memory buffer to be synchronously accessed
++     *  - the count field is usually used with data_is_ptr and since we don't
++     *    support data_is_ptr we do not waste space for the count field either
++     */
++    if ( (p->addr > 0xffffful) || p->data_is_ptr || (p->count != 1) )
++        return 0;
++
++    spin_lock(&v->domain->arch.hvm_domain.ioreq_server_lock);
++    if ( p->type == IOREQ_TYPE_TIMEOFFSET )
++    {
++        /* Send TIME OFFSET to all servers */
++        for ( s = v->domain->arch.hvm_domain.ioreq_server_list; s; s = s->next )
++            rc = hvm_buffered_io_send_to_server(p, s) && rc;
++    }
++    else
++    {
++        for ( s = v->domain->arch.hvm_domain.ioreq_server_list; s; s = s->next )
++        {
++            struct hvm_io_range *x = (p->type == IOREQ_TYPE_COPY)
++                ? s->mmio_range_list : s->portio_range_list;
++            for ( ; x; x = x->next )
++            {
++                if ( (p->addr >= x->s) && (p->addr <= x->e) )
++                {
++                    rc = hvm_buffered_io_send_to_server(p, s);
++                    spin_unlock(&v->domain->arch.hvm_domain.ioreq_server_lock);
++
++                    return rc;
++                }
++            }
++        }
++        rc = 0;
++    }
++
++    spin_unlock(&v->domain->arch.hvm_domain.ioreq_server_lock);
++
++    return rc;
++}
++
+ void send_timeoffset_req(unsigned long timeoff)
+ {
+     ioreq_t p[1];
+-- 
+Julien Grall
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<cover.1345552068.git.julien.grall@citrix.com> b/config/examples/test/corpus/<cover.1345552068.git.julien.grall@citrix.com>
new file mode 100644 (file)
index 0000000..666c8fb
--- /dev/null
@@ -0,0 +1,210 @@
+From xen-devel-bounces@lists.xen.org Wed Aug 22 19:59:01 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 22 Aug 2012 19:59:01 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T4G8k-0002pR-VV
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 22 Aug 2012 19:59:01 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T4G5F-0006iN-S8; Wed, 22 Aug 2012 18:55:17 +0000
+Received: from mail27.messagelabs.com ([193.109.254.147])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <julien.grall@citrix.com>) id 1T4G5D-0006dC-HU
+       for xen-devel@lists.xen.org; Wed, 22 Aug 2012 18:55:15 +0000
+X-Env-Sender: julien.grall@citrix.com
+X-Msg-Ref: server-4.tower-27.messagelabs.com!1345661706!10440772!1
+X-Originating-IP: [66.165.176.89]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNjU4OTQ=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 10268 invoked from network); 22 Aug 2012 18:55:07 -0000
+Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
+       by server-4.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
+       22 Aug 2012 18:55:07 -0000
+X-IronPort-AV: E=Sophos;i="4.80,809,1344225600"; d="scan'208";a="35484777"
+Received: from ftlpmailmx01.citrite.net ([10.13.107.65])
+       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       22 Aug 2012 14:55:05 -0400
+Received: from meteora.cam.xci-test.com (10.80.248.22) by smtprelay.citrix.com
+       (10.13.107.65) with Microsoft SMTP Server id 8.3.213.0;
+       Wed, 22 Aug 2012 14:55:05 -0400
+From: Julien Grall <julien.grall@citrix.com>
+To: qemu-devel@nongnu.org
+Date: Wed, 22 Aug 2012 13:31:46 +0100
+Message-ID: <cover.1345552068.git.julien.grall@citrix.com>
+X-Mailer: git-send-email 1.7.2.5
+MIME-Version: 1.0
+Cc: Julien Grall <julien.grall@citrix.com>, christian.limpach@gmail.com,
+       Stefano.Stabellini@eu.citrix.com, xen-devel@lists.xen.org
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DATE_IN_PAST_06_12,
+       RCVD_IN_DNSWL_MED,RP_MATCHES_RCVD autolearn=ham version=3.3.1
+Subject: [Xen-devel] [XEN][RFC PATCH V2 00/17] QEMU disaggregation in Xen
+       environment
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+Hello,
+
+This patch series only concerns Xen. Another serie will come for QEMU.
+
+I'm currently working on QEMU disaggregation in Xen environment. The
+goal is to be able to running multiple QEMU for a same domain
+(http://lists.xen.org/archives/html/xen-devel/2012-03/msg00299.html).
+
+I have already sent a version of patch series few months ago:
+    - QEMU: https://lists.gnu.org/archive/html/qemu-devel/2012-03/msg04401.html
+    - Xen: http://lists.xen.org/archives/html/xen-devel/2012-03/msg01947.html
+With the different feedbacks, I have improved both QEMU and Xen modifications.
+As before, I will sent two patch series, one for QEMU the other for Xen.
+
+Full disaggregation is not possible (one device = one QEMU) because lots
+of device depends on each others. With the help of Stefano, I have defined
+as possible disaggregation:
+    - ui: emulate default devices (root bridge, south bridge), VGA,
+    keyboard, mouse and USB
+    - audio: emulate audio
+    - ide: emulate disks
+    - serial: emulate serial port
+    - net: it possible to have multiple QEMU that emulates one or more
+    network card
+
+Of course, a same QEMU can emulate both ui and audio. Old configuration
+file with qemu-xen still works.
+The patch series adds an option "device_models".
+
+Example:
+
+builder='hvm'
+memory = 1024
+name = "Debian"
+vcpus=1
+vif = [ 'type=ioemu, bridge=eth0, mac=00:16:3e:0e:f5:ef, id=nic1' ]
+disk = [ 'tap:tapdisk:qcow2:/home/xentest/works/vms/debian.img,xvda,w' ]
+device_model_override = '/home/xentest/works/qemu-devel/qemu-wrapper'
+device_model_version = 'qemu-xen'
+device_models = [ 'name=qnet,vifs=nic1',
+                  'name=qall,ui,ide' ]
+
+It possible to override device model path for each device model. It could be
+useful for debugging. For instance, 'name=qnet,vifs=nic1,path=/my/path/wrapper'.
+The option "name" is used for logging filename or debugging, if it's not
+specify, a number is used.
+
+Modifications between V1 and V2:
+    - rewrite libxl patch according to the new API
+    - improve user experience with configuration file (avoid to specify
+      bdf)
+    - improve PCI hypercall: use bus, domain, device, function instead of
+    bdf.
+    - fix PCI config space handler
+    - remove unused HVM paramaters
+    - handle save/restore
+
+Drawbacks:
+    - PCI hotplug doesn't works
+    - stubdomain doesn't works because old QEMU is not modify for
+    disaggregation. By the way it's works on XenClient stubdomain
+    - Which QEMU need to emulate Xen Platform ? It's mainly used
+    to unplug network cards and disks
+
+Possible improvements:
+    - Like hvm get parameters, introduce an hypercall to retrieve shared
+    pages. For the moment the server id is used
+    - Specify if we want buffered I/O shared page or not (It was an idea
+    of Christian Limpach)
+
+I don't test all configurations. Comments, bug reports, ... are welcome.
+
+Julien Grall (17):
+  hvm: Modify interface to support multiple ioreq server
+  hvm: Add functions to handle ioreq servers
+  hvm-pci: Handle PCI config space in Xen
+  hvm: Change initialization/destruction of an hvm
+  hvm: Modify hvm_op
+  hvm-io: IO refactoring with ioreq server
+  hvm-io: send invalidate map cache to each registered servers
+  hvm-io: Handle server in buffered IO
+  xc: Add the hypercall for multiple servers
+  xc: Add argument to allocate more special pages
+  xc: modify save/restore to support multiple device models
+  xl: Add interface to handle qemu disaggregation
+  xl: add device model id to qmp functions
+  xl-parsing: Parse new device_models option
+  xl: support spawn/destroy on multiple device model
+  xl: Fix PCI library
+  xl: implement save/restore for multiple device models
+
+ tools/libxc/xc_domain.c           |  155 ++++++++++
+ tools/libxc/xc_domain_restore.c   |  150 ++++++++---
+ tools/libxc/xc_domain_save.c      |    6 +-
+ tools/libxc/xc_hvm_build_x86.c    |   59 ++--
+ tools/libxc/xenctrl.h             |   21 ++
+ tools/libxc/xenguest.h            |    4 +-
+ tools/libxl/Makefile              |    2 +-
+ tools/libxl/libxl.c               |   21 +-
+ tools/libxl/libxl.h               |    3 +
+ tools/libxl/libxl_create.c        |  150 ++++++++---
+ tools/libxl/libxl_device.c        |    7 +-
+ tools/libxl/libxl_dm.c            |  369 +++++++++++++++++-------
+ tools/libxl/libxl_dom.c           |  147 ++++++++--
+ tools/libxl/libxl_internal.h      |   76 ++++--
+ tools/libxl/libxl_pci.c           |   19 +-
+ tools/libxl/libxl_qmp.c           |   49 ++--
+ tools/libxl/libxl_types.idl       |   15 +
+ tools/libxl/libxlu_dm.c           |   96 +++++++
+ tools/libxl/libxlutil.h           |    5 +
+ tools/libxl/xl_cmdimpl.c          |   29 ++-
+ tools/python/xen/lowlevel/xc/xc.c |    3 +-
+ xen/arch/x86/hvm/Makefile         |    1 +
+ xen/arch/x86/hvm/emulate.c        |   56 ++++
+ xen/arch/x86/hvm/hvm.c            |  567 +++++++++++++++++++++++++++++++------
+ xen/arch/x86/hvm/io.c             |   90 +++++--
+ xen/arch/x86/hvm/pci_emul.c       |  168 +++++++++++
+ xen/include/asm-x86/hvm/domain.h  |   25 ++-
+ xen/include/asm-x86/hvm/support.h |   26 ++-
+ xen/include/asm-x86/hvm/vcpu.h    |    4 +-
+ xen/include/public/hvm/hvm_op.h   |   51 ++++
+ xen/include/public/hvm/ioreq.h    |    1 +
+ xen/include/public/hvm/params.h   |   11 +-
+ xen/include/public/xen.h          |    1 +
+ xen/include/xen/hvm/pci_emul.h    |   29 ++
+ 34 files changed, 1986 insertions(+), 430 deletions(-)
+ create mode 100644 tools/libxl/libxlu_dm.c
+ create mode 100644 xen/arch/x86/hvm/pci_emul.c
+ create mode 100644 xen/include/xen/hvm/pci_emul.h
+
+-- 
+Julien Grall
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<d481c7657e727bbd67f762244fc3b1383a0ee037.1345552068.git.julien.grall@citrix.com> b/config/examples/test/corpus/<d481c7657e727bbd67f762244fc3b1383a0ee037.1345552068.git.julien.grall@citrix.com>
new file mode 100644 (file)
index 0000000..45ac855
--- /dev/null
@@ -0,0 +1,300 @@
+From xen-devel-bounces@lists.xen.org Wed Aug 22 19:58:57 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 22 Aug 2012 19:58:57 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T4G8h-0002oC-EZ
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 22 Aug 2012 19:58:57 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T4G5N-0006tE-GL; Wed, 22 Aug 2012 18:55:25 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <julien.grall@citrix.com>) id 1T4G5L-0006iH-Lp
+       for xen-devel@lists.xen.org; Wed, 22 Aug 2012 18:55:23 +0000
+Received: from [85.158.138.51:40019] by server-9.bemta-3.messagelabs.com id
+       14/34-23952-B1B25305; Wed, 22 Aug 2012 18:55:23 +0000
+X-Env-Sender: julien.grall@citrix.com
+X-Msg-Ref: server-5.tower-174.messagelabs.com!1345661707!27566656!6
+X-Originating-IP: [66.165.176.63]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyNzMzNjM=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 10412 invoked from network); 22 Aug 2012 18:55:22 -0000
+Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
+       by server-5.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
+       22 Aug 2012 18:55:22 -0000
+X-IronPort-AV: E=Sophos;i="4.80,809,1344225600"; d="scan'208";a="205943131"
+Received: from ftlpmailmx01.citrite.net ([10.13.107.65])
+       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       22 Aug 2012 14:55:21 -0400
+Received: from meteora.cam.xci-test.com (10.80.248.22) by smtprelay.citrix.com
+       (10.13.107.65) with Microsoft SMTP Server id 8.3.213.0;
+       Wed, 22 Aug 2012 14:55:21 -0400
+From: Julien Grall <julien.grall@citrix.com>
+To: qemu-devel@nongnu.org
+Date: Wed, 22 Aug 2012 13:31:59 +0100
+Message-ID: <d481c7657e727bbd67f762244fc3b1383a0ee037.1345552068.git.julien.grall@citrix.com>
+X-Mailer: git-send-email 1.7.2.5
+In-Reply-To: <cover.1345552068.git.julien.grall@citrix.com>
+References: <cover.1345552068.git.julien.grall@citrix.com>
+MIME-Version: 1.0
+Cc: Julien Grall <julien.grall@citrix.com>, christian.limpach@gmail.com,
+       Stefano.Stabellini@eu.citrix.com, xen-devel@lists.xen.org
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DATE_IN_PAST_06_12,
+       RCVD_IN_DNSWL_MED,RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham
+       version=3.3.1
+Subject: [Xen-devel] [XEN][RFC PATCH V2 13/17] xl: add device model id to
+       qmp functions
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+With the support of multiple device model, the qmp library need to know
+which device models is currently used.
+
+Signed-off-by: Julien Grall <julien.grall@citrix.com>
+---
+ tools/libxl/libxl_internal.h |   24 ++++++++++++-------
+ tools/libxl/libxl_qmp.c      |   49 ++++++++++++++++++++++++------------------
+ 2 files changed, 43 insertions(+), 30 deletions(-)
+
+diff --git a/tools/libxl/libxl_internal.h b/tools/libxl/libxl_internal.h
+index 7c3b179..71e4970 100644
+--- a/tools/libxl/libxl_internal.h
++++ b/tools/libxl/libxl_internal.h
+@@ -1384,26 +1384,32 @@ typedef struct libxl__qmp_handler libxl__qmp_handler;
+  *   Return an handler or NULL if there is an error
+  */
+ _hidden libxl__qmp_handler *libxl__qmp_initialize(libxl__gc *gc,
+-                                                  uint32_t domid);
++                                                  libxl_domid domid,
++                                                  libxl_dmid dmid);
+ /* ask to QEMU the serial port information and store it in xenstore. */
+ _hidden int libxl__qmp_query_serial(libxl__qmp_handler *qmp);
+-_hidden int libxl__qmp_pci_add(libxl__gc *gc, int d, libxl_device_pci *pcidev);
+-_hidden int libxl__qmp_pci_del(libxl__gc *gc, int domid,
+-                               libxl_device_pci *pcidev);
++_hidden int libxl__qmp_pci_add(libxl__gc *gc, libxl_domid d,
++                               libxl_dmid dmid, libxl_device_pci *pcidev);
++_hidden int libxl__qmp_pci_del(libxl__gc *gc, libxl_domid domid,
++                               libxl_dmid dmid, libxl_device_pci *pcidev);
+ /* Suspend QEMU. */
+-_hidden int libxl__qmp_stop(libxl__gc *gc, int domid);
++_hidden int libxl__qmp_stop(libxl__gc *gc, libxl_domid domid, libxl_dmid dmid);
+ /* Resume QEMU. */
+-_hidden int libxl__qmp_resume(libxl__gc *gc, int domid);
++_hidden int libxl__qmp_resume(libxl__gc *gc, libxl_domid domid,
++                              libxl_dmid dmid);
+ /* Save current QEMU state into fd. */
+-_hidden int libxl__qmp_save(libxl__gc *gc, int domid, const char *filename);
++_hidden int libxl__qmp_save(libxl__gc *gc, libxl_domid domid,
++                            libxl_dmid dmid, const char *filename);
+ /* close and free the QMP handler */
+ _hidden void libxl__qmp_close(libxl__qmp_handler *qmp);
+ /* remove the socket file, if the file has already been removed,
+  * nothing happen */
+-_hidden void libxl__qmp_cleanup(libxl__gc *gc, uint32_t domid);
++_hidden void libxl__qmp_cleanup(libxl__gc *gc, libxl_domid domid,
++                                libxl_dmid dmid);
+ /* this helper calls qmp_initialize, query_serial and qmp_close */
+-_hidden int libxl__qmp_initializations(libxl__gc *gc, uint32_t domid,
++_hidden int libxl__qmp_initializations(libxl__gc *gc, libxl_domid domid,
++                                       libxl_dmid dmid,
+                                        const libxl_domain_config *guest_config);
+ /* on failure, logs */
+diff --git a/tools/libxl/libxl_qmp.c b/tools/libxl/libxl_qmp.c
+index e33b130..3c3cccf 100644
+--- a/tools/libxl/libxl_qmp.c
++++ b/tools/libxl/libxl_qmp.c
+@@ -627,7 +627,8 @@ static void qmp_free_handler(libxl__qmp_handler *qmp)
+  * API
+  */
+-libxl__qmp_handler *libxl__qmp_initialize(libxl__gc *gc, uint32_t domid)
++libxl__qmp_handler *libxl__qmp_initialize(libxl__gc *gc, libxl_domid domid,
++                                          libxl_dmid dmid)
+ {
+     int ret = 0;
+     libxl__qmp_handler *qmp = NULL;
+@@ -635,8 +636,8 @@ libxl__qmp_handler *libxl__qmp_initialize(libxl__gc *gc, uint32_t domid)
+     qmp = qmp_init_handler(gc, domid);
+-    qmp_socket = libxl__sprintf(gc, "%s/qmp-libxl-%d",
+-                                libxl__run_dir_path(), domid);
++    qmp_socket = libxl__sprintf(gc, "%s/qmp-libxl-%u-%u",
++                                libxl__run_dir_path(), domid, dmid);
+     if ((ret = qmp_open(qmp, qmp_socket, QMP_SOCKET_CONNECT_TIMEOUT)) < 0) {
+         LIBXL__LOG_ERRNO(qmp->ctx, LIBXL__LOG_ERROR, "Connection error");
+         qmp_free_handler(qmp);
+@@ -668,13 +669,13 @@ void libxl__qmp_close(libxl__qmp_handler *qmp)
+     qmp_free_handler(qmp);
+ }
+-void libxl__qmp_cleanup(libxl__gc *gc, uint32_t domid)
++void libxl__qmp_cleanup(libxl__gc *gc, libxl_domid domid, libxl_dmid dmid)
+ {
+     libxl_ctx *ctx = libxl__gc_owner(gc);
+     char *qmp_socket;
+-    qmp_socket = libxl__sprintf(gc, "%s/qmp-libxl-%d",
+-                                libxl__run_dir_path(), domid);
++    qmp_socket = libxl__sprintf(gc, "%s/qmp-libxl-%u-%u",
++                                libxl__run_dir_path(), domid, dmid);
+     if (unlink(qmp_socket) == -1) {
+         if (errno != ENOENT) {
+             LIBXL__LOG_ERRNO(ctx, LIBXL__LOG_ERROR,
+@@ -746,7 +747,9 @@ out:
+     return rc;
+ }
+-int libxl__qmp_pci_add(libxl__gc *gc, int domid, libxl_device_pci *pcidev)
++int libxl__qmp_pci_add(libxl__gc *gc, libxl_domid domid,
++                       libxl_dmid dmid,
++                       libxl_device_pci *pcidev)
+ {
+     libxl__qmp_handler *qmp = NULL;
+     flexarray_t *parameters = NULL;
+@@ -754,7 +757,7 @@ int libxl__qmp_pci_add(libxl__gc *gc, int domid, libxl_device_pci *pcidev)
+     char *hostaddr = NULL;
+     int rc = 0;
+-    qmp = libxl__qmp_initialize(gc, domid);
++    qmp = libxl__qmp_initialize(gc, domid, 0);
+     if (!qmp)
+         return -1;
+@@ -792,14 +795,15 @@ int libxl__qmp_pci_add(libxl__gc *gc, int domid, libxl_device_pci *pcidev)
+     return rc;
+ }
+-static int qmp_device_del(libxl__gc *gc, int domid, char *id)
++static int qmp_device_del(libxl__gc *gc, libxl_domid domid,
++                          libxl_dmid dmid, char *id)
+ {
+     libxl__qmp_handler *qmp = NULL;
+     flexarray_t *parameters = NULL;
+     libxl_key_value_list args = NULL;
+     int rc = 0;
+-    qmp = libxl__qmp_initialize(gc, domid);
++    qmp = libxl__qmp_initialize(gc, domid, 0);
+     if (!qmp)
+         return ERROR_FAIL;
+@@ -817,24 +821,26 @@ static int qmp_device_del(libxl__gc *gc, int domid, char *id)
+     return rc;
+ }
+-int libxl__qmp_pci_del(libxl__gc *gc, int domid, libxl_device_pci *pcidev)
++int libxl__qmp_pci_del(libxl__gc *gc, libxl_domid domid,
++                       libxl_domid dmid, libxl_device_pci *pcidev)
+ {
+     char *id = NULL;
+     id = libxl__sprintf(gc, PCI_PT_QDEV_ID,
+                         pcidev->bus, pcidev->dev, pcidev->func);
+-    return qmp_device_del(gc, domid, id);
++    return qmp_device_del(gc, domid, dmid, id);
+ }
+-int libxl__qmp_save(libxl__gc *gc, int domid, const char *filename)
++int libxl__qmp_save(libxl__gc *gc, libxl_domid domid,
++                    libxl_dmid dmid, const char *filename)
+ {
+     libxl__qmp_handler *qmp = NULL;
+     flexarray_t *parameters = NULL;
+     libxl_key_value_list args = NULL;
+     int rc = 0;
+-    qmp = libxl__qmp_initialize(gc, domid);
++    qmp = libxl__qmp_initialize(gc, domid, dmid);
+     if (!qmp)
+         return ERROR_FAIL;
+@@ -883,12 +889,12 @@ static int qmp_change(libxl__gc *gc, libxl__qmp_handler *qmp,
+     return rc;
+ }
+-int libxl__qmp_stop(libxl__gc *gc, int domid)
++int libxl__qmp_stop(libxl__gc *gc, libxl_domid domid, libxl_dmid dmid)
+ {
+     libxl__qmp_handler *qmp = NULL;
+     int rc = 0;
+-    qmp = libxl__qmp_initialize(gc, domid);
++    qmp = libxl__qmp_initialize(gc, domid, dmid);
+     if (!qmp)
+         return ERROR_FAIL;
+@@ -899,12 +905,12 @@ int libxl__qmp_stop(libxl__gc *gc, int domid)
+     return rc;
+ }
+-int libxl__qmp_resume(libxl__gc *gc, int domid)
++int libxl__qmp_resume(libxl__gc *gc, libxl_domid domid, libxl_dmid dmid)
+ {
+     libxl__qmp_handler *qmp = NULL;
+     int rc = 0;
+-    qmp = libxl__qmp_initialize(gc, domid);
++    qmp = libxl__qmp_initialize(gc, domid, dmid);
+     if (!qmp)
+         return ERROR_FAIL;
+@@ -915,14 +921,15 @@ int libxl__qmp_resume(libxl__gc *gc, int domid)
+     return rc;
+ }
+-int libxl__qmp_initializations(libxl__gc *gc, uint32_t domid,
++int libxl__qmp_initializations(libxl__gc *gc, libxl_domid domid,
++                               libxl_dmid dmid,
+                                const libxl_domain_config *guest_config)
+ {
+-    const libxl_vnc_info *vnc = libxl__dm_vnc(guest_config);
++    const libxl_vnc_info *vnc = libxl__dm_vnc(dmid, guest_config);
+     libxl__qmp_handler *qmp = NULL;
+     int ret = 0;
+-    qmp = libxl__qmp_initialize(gc, domid);
++    qmp = libxl__qmp_initialize(gc, domid, dmid);
+     if (!qmp)
+         return -1;
+     ret = libxl__qmp_query_serial(qmp);
+-- 
+Julien Grall
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<dd493399678c6eee3b5b0a08eb790b73fba1a678.1345552068.git.julien.grall@citrix.com> b/config/examples/test/corpus/<dd493399678c6eee3b5b0a08eb790b73fba1a678.1345552068.git.julien.grall@citrix.com>
new file mode 100644 (file)
index 0000000..6cb546c
--- /dev/null
@@ -0,0 +1,472 @@
+From xen-devel-bounces@lists.xen.org Wed Aug 22 19:59:05 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 22 Aug 2012 19:59:05 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T4G8p-0002qp-Qq
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 22 Aug 2012 19:59:04 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T4G5G-0006ig-7o; Wed, 22 Aug 2012 18:55:18 +0000
+Received: from mail27.messagelabs.com ([193.109.254.147])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <julien.grall@citrix.com>) id 1T4G5E-0006dZ-9T
+       for xen-devel@lists.xen.org; Wed, 22 Aug 2012 18:55:16 +0000
+X-Env-Sender: julien.grall@citrix.com
+X-Msg-Ref: server-4.tower-27.messagelabs.com!1345661706!10440772!2
+X-Originating-IP: [66.165.176.89]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNjU4OTQ=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 10282 invoked from network); 22 Aug 2012 18:55:09 -0000
+Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
+       by server-4.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
+       22 Aug 2012 18:55:09 -0000
+X-IronPort-AV: E=Sophos;i="4.80,809,1344225600"; d="scan'208";a="35484781"
+Received: from ftlpmailmx01.citrite.net ([10.13.107.65])
+       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       22 Aug 2012 14:55:08 -0400
+Received: from meteora.cam.xci-test.com (10.80.248.22) by smtprelay.citrix.com
+       (10.13.107.65) with Microsoft SMTP Server id 8.3.213.0;
+       Wed, 22 Aug 2012 14:55:07 -0400
+From: Julien Grall <julien.grall@citrix.com>
+To: qemu-devel@nongnu.org
+Date: Wed, 22 Aug 2012 13:31:48 +0100
+Message-ID: <dd493399678c6eee3b5b0a08eb790b73fba1a678.1345552068.git.julien.grall@citrix.com>
+X-Mailer: git-send-email 1.7.2.5
+In-Reply-To: <cover.1345552068.git.julien.grall@citrix.com>
+References: <cover.1345552068.git.julien.grall@citrix.com>
+MIME-Version: 1.0
+Cc: Julien Grall <julien.grall@citrix.com>, christian.limpach@gmail.com,
+       Stefano.Stabellini@eu.citrix.com, xen-devel@lists.xen.org
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DATE_IN_PAST_06_12,
+       RCVD_IN_DNSWL_MED,RP_MATCHES_RCVD autolearn=unavailable version=3.3.1
+Subject: [Xen-devel] [XEN][RFC PATCH V2 02/17] hvm: Add functions to handle
+       ioreq servers
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+This patch adds functions to :
+  - create/destroy server
+  - map/unmap IO range to a server
+
+Signed-off-by: Julien Grall <julien.grall@citrix.com>
+---
+ xen/arch/x86/hvm/hvm.c |  356 ++++++++++++++++++++++++++++++++++++++++++++++++
+ 1 files changed, 356 insertions(+), 0 deletions(-)
+
+diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
+index 7f8a025c..687e480 100644
+--- a/xen/arch/x86/hvm/hvm.c
++++ b/xen/arch/x86/hvm/hvm.c
+@@ -354,6 +354,37 @@ void hvm_do_resume(struct vcpu *v)
+     }
+ }
++static void hvm_init_ioreq_servers(struct domain *d)
++{
++    spin_lock_init(&d->arch.hvm_domain.ioreq_server_lock);
++    d->arch.hvm_domain.nr_ioreq_server = 0;
++}
++
++static int hvm_ioreq_servers_new_vcpu(struct vcpu *v)
++{
++    struct hvm_ioreq_server *s;
++    struct domain *d = v->domain;
++    shared_iopage_t *p;
++    int rc = 0;
++
++    spin_lock(&d->arch.hvm_domain.ioreq_server_lock);
++
++    for ( s = d->arch.hvm_domain.ioreq_server_list; s != NULL; s = s->next )
++    {
++        p = s->ioreq.va;
++        ASSERT(p != NULL);
++
++        rc = alloc_unbound_xen_event_channel(v, s->domid, NULL);
++        if ( rc < 0 )
++            break;
++        p->vcpu_ioreq[v->vcpu_id].vp_eport = rc;
++    }
++
++    spin_unlock(&d->arch.hvm_domain.ioreq_server_lock);
++
++    return (rc < 0) ? rc : 0;
++}
++
+ static void hvm_init_ioreq_page(
+     struct domain *d, struct hvm_ioreq_page *iorp)
+ {
+@@ -559,6 +590,59 @@ int hvm_domain_initialise(struct domain *d)
+     return rc;
+ }
++static void hvm_destroy_ioreq_server(struct domain *d,
++                                     struct hvm_ioreq_server *s)
++{
++    struct hvm_io_range *x;
++    shared_iopage_t *p;
++    int i;
++
++    while ( (x = s->mmio_range_list) != NULL )
++    {
++        s->mmio_range_list = x->next;
++        xfree(x);
++    }
++    while ( (x = s->portio_range_list) != NULL )
++    {
++        s->portio_range_list = x->next;
++        xfree(x);
++    }
++
++    p = s->ioreq.va;
++
++    for ( i = 0; i < MAX_HVM_VCPUS; i++ )
++    {
++        if ( p->vcpu_ioreq[i].vp_eport )
++        {
++            free_xen_event_channel(d->vcpu[i], p->vcpu_ioreq[i].vp_eport);
++        }
++    }
++
++    free_xen_event_channel(d->vcpu[0], s->buf_ioreq_evtchn);
++
++    hvm_destroy_ioreq_page(d, &s->ioreq);
++    hvm_destroy_ioreq_page(d, &s->buf_ioreq);
++
++    xfree(s);
++}
++
++static void hvm_destroy_ioreq_servers(struct domain *d)
++{
++    struct hvm_ioreq_server *s;
++
++    spin_lock(&d->arch.hvm_domain.ioreq_server_lock);
++
++    ASSERT(d->is_dying);
++
++    while ( (s = d->arch.hvm_domain.ioreq_server_list) != NULL )
++    {
++        d->arch.hvm_domain.ioreq_server_list = s->next;
++        hvm_destroy_ioreq_server(d, s);
++    }
++
++    spin_unlock(&d->arch.hvm_domain.ioreq_server_lock);
++}
++
+ void hvm_domain_relinquish_resources(struct domain *d)
+ {
+     hvm_destroy_ioreq_page(d, &d->arch.hvm_domain.ioreq);
+@@ -3686,6 +3770,278 @@ static int hvm_replace_event_channel(struct vcpu *v, domid_t remote_domid,
+     return 0;
+ }
++static int hvm_alloc_ioreq_server_page(struct domain *d,
++                                       struct hvm_ioreq_server *s,
++                                       struct hvm_ioreq_page *pfn,
++                                       int i)
++{
++    int rc = 0;
++    unsigned long gmfn;
++
++    if (i < 0 || i > 1)
++        return -EINVAL;
++
++    hvm_init_ioreq_page(d, pfn);
++
++    gmfn = d->arch.hvm_domain.params[HVM_PARAM_IO_PFN_FIRST]
++        + (s->id - 1) * 2 + i + 1;
++
++    if (gmfn > d->arch.hvm_domain.params[HVM_PARAM_IO_PFN_LAST])
++        return -EINVAL;
++
++    rc = hvm_set_ioreq_page(d, pfn, gmfn);
++
++    if (!rc && pfn->va == NULL)
++        rc = -ENOMEM;
++
++    return rc;
++}
++
++static int hvmop_register_ioreq_server(
++    struct xen_hvm_register_ioreq_server *a)
++{
++    struct hvm_ioreq_server *s, **pp;
++    struct domain *d;
++    shared_iopage_t *p;
++    struct vcpu *v;
++    int i;
++    int rc = 0;
++
++    if ( current->domain->domain_id == a->domid )
++        return -EINVAL;
++
++    rc = rcu_lock_target_domain_by_id(a->domid, &d);
++    if ( rc != 0 )
++        return rc;
++
++    if ( !is_hvm_domain(d) )
++    {
++        rcu_unlock_domain(d);
++        return -EINVAL;
++    }
++
++    s = xmalloc(struct hvm_ioreq_server);
++    if ( s == NULL )
++    {
++        rcu_unlock_domain(d);
++        return -ENOMEM;
++    }
++    memset(s, 0, sizeof(*s));
++
++    if ( d->is_dying)
++    {
++        rc = -EINVAL;
++        goto register_died;
++    }
++
++    spin_lock(&d->arch.hvm_domain.ioreq_server_lock);
++
++    s->id = d->arch.hvm_domain.nr_ioreq_server + 1;
++    s->domid = current->domain->domain_id;
++
++    /* Initialize shared pages */
++    if ( (rc = hvm_alloc_ioreq_server_page(d, s, &s->ioreq, 0)) )
++        goto register_ioreq;
++    if ( (rc = hvm_alloc_ioreq_server_page(d, s, &s->buf_ioreq, 1)) )
++        goto register_buf_ioreq;
++
++    p = s->ioreq.va;
++
++    for_each_vcpu ( d, v )
++    {
++        rc = alloc_unbound_xen_event_channel(v, s->domid, NULL);
++        if ( rc < 0 )
++            goto register_ports;
++        p->vcpu_ioreq[v->vcpu_id].vp_eport = rc;
++    }
++
++    /* Allocate buffer event channel */
++    rc = alloc_unbound_xen_event_channel(d->vcpu[0], s->domid, NULL);
++
++    if (rc < 0)
++        goto register_ports;
++    s->buf_ioreq_evtchn = rc;
++
++    pp = &d->arch.hvm_domain.ioreq_server_list;
++    while ( *pp != NULL )
++        pp = &(*pp)->next;
++    *pp = s;
++
++    d->arch.hvm_domain.nr_ioreq_server += 1;
++    a->id = s->id;
++
++    spin_unlock(&d->arch.hvm_domain.ioreq_server_lock);
++    rcu_unlock_domain(d);
++
++    goto register_done;
++
++register_ports:
++    p = s->ioreq.va;
++    for ( i = 0; i < MAX_HVM_VCPUS; i++ )
++    {
++        if ( p->vcpu_ioreq[i].vp_eport )
++            free_xen_event_channel(d->vcpu[i], p->vcpu_ioreq[i].vp_eport);
++    }
++    hvm_destroy_ioreq_page(d, &s->buf_ioreq);
++register_buf_ioreq:
++    hvm_destroy_ioreq_page(d, &s->ioreq);
++register_ioreq:
++    spin_unlock(&d->arch.hvm_domain.ioreq_server_lock);
++register_died:
++    xfree(s);
++    rcu_unlock_domain(d);
++register_done:
++    return 0;
++}
++
++static int hvmop_get_ioreq_server_buf_channel(
++    struct xen_hvm_get_ioreq_server_buf_channel *a)
++{
++    struct domain *d;
++    struct hvm_ioreq_server *s;
++    int rc;
++
++    rc = rcu_lock_target_domain_by_id(a->domid, &d);
++
++    if ( rc != 0 )
++        return rc;
++
++    if ( !is_hvm_domain(d) )
++    {
++        rcu_unlock_domain(d);
++        return -EINVAL;
++    }
++
++    spin_lock(&d->arch.hvm_domain.ioreq_server_lock);
++    s = d->arch.hvm_domain.ioreq_server_list;
++
++    while ( (s != NULL) && (s->id != a->id) )
++        s = s->next;
++
++    if ( s == NULL )
++    {
++        spin_unlock(&d->arch.hvm_domain.ioreq_server_lock);
++        rcu_unlock_domain(d);
++        return -ENOENT;
++    }
++
++    a->channel = s->buf_ioreq_evtchn;
++
++    spin_unlock(&d->arch.hvm_domain.ioreq_server_lock);
++    rcu_unlock_domain(d);
++
++    return 0;
++}
++
++static int hvmop_map_io_range_to_ioreq_server(
++    struct xen_hvm_map_io_range_to_ioreq_server *a)
++{
++    struct hvm_ioreq_server *s;
++    struct hvm_io_range *x;
++    struct domain *d;
++    int rc;
++
++    rc = rcu_lock_target_domain_by_id(a->domid, &d);
++    if ( rc != 0 )
++        return rc;
++
++    if ( !is_hvm_domain(d) )
++    {
++        rcu_unlock_domain(d);
++        return -EINVAL;
++    }
++
++    spin_lock(&d->arch.hvm_domain.ioreq_server_lock);
++
++    x = xmalloc(struct hvm_io_range);
++    s = d->arch.hvm_domain.ioreq_server_list;
++    while ( (s != NULL) && (s->id != a->id) )
++        s = s->next;
++    if ( (s == NULL) || (x == NULL) )
++    {
++        xfree(x);
++        spin_unlock(&d->arch.hvm_domain.ioreq_server_lock);
++        rcu_unlock_domain(d);
++        return x ? -ENOENT : -ENOMEM;
++    }
++
++    x->s = a->s;
++    x->e = a->e;
++    if ( a->is_mmio )
++    {
++        x->next = s->mmio_range_list;
++        s->mmio_range_list = x;
++    }
++    else
++    {
++        x->next = s->portio_range_list;
++        s->portio_range_list = x;
++    }
++
++    spin_unlock(&d->arch.hvm_domain.ioreq_server_lock);
++    rcu_unlock_domain(d);
++    return 0;
++}
++
++static int hvmop_unmap_io_range_from_ioreq_server(
++    struct xen_hvm_unmap_io_range_from_ioreq_server *a)
++{
++    struct hvm_ioreq_server *s;
++    struct hvm_io_range *x, **xp;
++    struct domain *d;
++    int rc;
++
++    rc = rcu_lock_target_domain_by_id(a->domid, &d);
++    if ( rc != 0 )
++        return rc;
++
++    if ( !is_hvm_domain(d) )
++    {
++        rcu_unlock_domain(d);
++        return -EINVAL;
++    }
++
++    spin_lock(&d->arch.hvm_domain.ioreq_server_lock);
++
++    s = d->arch.hvm_domain.ioreq_server_list;
++    while ( (s != NULL) && (s->id != a->id) )
++        s = s->next;
++    if ( (s == NULL) )
++    {
++        spin_unlock(&d->arch.hvm_domain.ioreq_server_lock);
++        rcu_unlock_domain(d);
++        return -ENOENT;
++    }
++
++    if ( a->is_mmio )
++    {
++        x = s->mmio_range_list;
++        xp = &s->mmio_range_list;
++    }
++    else
++    {
++        x = s->portio_range_list;
++        xp = &s->portio_range_list;
++    }
++    while ( (x != NULL) && (a->addr < x->s || a->addr > x->e) )
++    {
++      xp = &x->next;
++      x = x->next;
++    }
++    if ( (x != NULL) )
++    {
++      *xp = x->next;
++      xfree(x);
++      rc = 0;
++    }
++    else
++      rc = -ENOENT;
++
++    spin_unlock(&d->arch.hvm_domain.ioreq_server_lock);
++    rcu_unlock_domain(d);
++    return rc;
++}
++
+ long do_hvm_op(unsigned long op, XEN_GUEST_HANDLE(void) arg)
+ {
+-- 
+Julien Grall
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/corpus/<fcf046ea782dda6cacb3bf11813bf1d16e531e6b.1345552068.git.julien.grall@citrix.com> b/config/examples/test/corpus/<fcf046ea782dda6cacb3bf11813bf1d16e531e6b.1345552068.git.julien.grall@citrix.com>
new file mode 100644 (file)
index 0000000..ff8d3d1
--- /dev/null
@@ -0,0 +1,381 @@
+From xen-devel-bounces@lists.xen.org Wed Aug 22 19:58:48 2012
+Return-path: <xen-devel-bounces@lists.xen.org>
+Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
+Delivery-date: Wed, 22 Aug 2012 19:58:48 +0100
+Received: from lists.xen.org ([50.57.142.19])
+       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
+       (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T4G8W-0002lb-3H
+       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 22 Aug 2012 19:58:48 +0100
+Received: from localhost ([127.0.0.1] helo=lists.xen.org)
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <xen-devel-bounces@lists.xen.org>)
+       id 1T4G5M-0006r9-8W; Wed, 22 Aug 2012 18:55:24 +0000
+Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
+       by lists.xen.org with esmtp (Exim 4.72)
+       (envelope-from <julien.grall@citrix.com>) id 1T4G5J-0006iH-FR
+       for xen-devel@lists.xen.org; Wed, 22 Aug 2012 18:55:21 +0000
+Received: from [85.158.138.51:39910] by server-9.bemta-3.messagelabs.com id
+       BC/24-23952-91B25305; Wed, 22 Aug 2012 18:55:21 +0000
+X-Env-Sender: julien.grall@citrix.com
+X-Msg-Ref: server-5.tower-174.messagelabs.com!1345661707!27566656!5
+X-Originating-IP: [66.165.176.63]
+X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
+       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyNzMzNjM=\n
+X-StarScan-Received: 
+X-StarScan-Version: 6.6.1.3; banners=-,-,-
+X-VirusChecked: Checked
+Received: (qmail 10195 invoked from network); 22 Aug 2012 18:55:19 -0000
+Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
+       by server-5.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
+       22 Aug 2012 18:55:19 -0000
+X-IronPort-AV: E=Sophos;i="4.80,809,1344225600"; d="scan'208";a="205943126"
+Received: from ftlpmailmx01.citrite.net ([10.13.107.65])
+       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
+       22 Aug 2012 14:55:19 -0400
+Received: from meteora.cam.xci-test.com (10.80.248.22) by smtprelay.citrix.com
+       (10.13.107.65) with Microsoft SMTP Server id 8.3.213.0;
+       Wed, 22 Aug 2012 14:55:19 -0400
+From: Julien Grall <julien.grall@citrix.com>
+To: qemu-devel@nongnu.org
+Date: Wed, 22 Aug 2012 13:31:57 +0100
+Message-ID: <fcf046ea782dda6cacb3bf11813bf1d16e531e6b.1345552068.git.julien.grall@citrix.com>
+X-Mailer: git-send-email 1.7.2.5
+In-Reply-To: <cover.1345552068.git.julien.grall@citrix.com>
+References: <cover.1345552068.git.julien.grall@citrix.com>
+MIME-Version: 1.0
+Cc: Julien Grall <julien.grall@citrix.com>, christian.limpach@gmail.com,
+       Stefano.Stabellini@eu.citrix.com, xen-devel@lists.xen.org
+X-BeenThere: xen-devel@lists.xen.org
+X-Mailman-Version: 2.1.13
+Precedence: list
+List-Id: Xen developer discussion <xen-devel.lists.xen.org>
+List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
+List-Post: <mailto:xen-devel@lists.xen.org>
+List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
+List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
+       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
+Content-Type: text/plain; charset="us-ascii"
+Content-Transfer-Encoding: 7bit
+Sender: xen-devel-bounces@lists.xen.org
+Errors-To: xen-devel-bounces@lists.xen.org
+X-SA-Exim-Connect-IP: 50.57.142.19
+X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
+X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
+       hopkins.hellion.org.uk
+X-Spam-Level: 
+X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DATE_IN_PAST_06_12,
+       RCVD_IN_DNSWL_MED,RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham
+       version=3.3.1
+Subject: [Xen-devel] [XEN][RFC PATCH V2 11/17] xc: modify save/restore to
+       support multiple device models
+X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
+X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
+
+    - add save/restore new special pages and remove unused
+    - modify save file structure to allow multiple qemu states
+
+Signed-off-by: Julien Grall <julien.grall@citrix.com>
+---
+ tools/libxc/xc_domain_restore.c |  150 +++++++++++++++++++++++++++++----------
+ tools/libxc/xc_domain_save.c    |    6 +-
+ 2 files changed, 116 insertions(+), 40 deletions(-)
+
+diff --git a/tools/libxc/xc_domain_restore.c b/tools/libxc/xc_domain_restore.c
+index 3fe2b12..9a49ee2 100644
+--- a/tools/libxc/xc_domain_restore.c
++++ b/tools/libxc/xc_domain_restore.c
+@@ -103,6 +103,9 @@ static ssize_t rdexact(xc_interface *xch, struct restore_ctx *ctx,
+ #else
+ #define RDEXACT read_exact
+ #endif
++
++#define QEMUSIG_SIZE 21
++
+ /*
+ ** In the state file (or during transfer), all page-table pages are
+ ** converted into a 'canonical' form where references to actual mfns
+@@ -342,8 +345,11 @@ typedef struct {
+                 uint32_t version;
+                 uint64_t len;
+             } qemuhdr;
+-            uint32_t qemubufsize;
+-            uint8_t* qemubuf;
++            uint32_t num_dms;
++            struct devmodel_buffer {
++                uint32_t size;
++                uint8_t* buf;
++            } *dmsbuf;
+         } hvm;
+     } u;
+ } tailbuf_t;
+@@ -392,63 +398,112 @@ static int compat_buffer_qemu(xc_interface *xch, struct restore_ctx *ctx,
+         return -1;
+     }
+-    buf->qemubuf = qbuf;
+-    buf->qemubufsize = dlen;
++    if ( !(buf->dmsbuf = calloc(1, sizeof(*buf->dmsbuf))) ) {
++        ERROR("Error allocating Device Model buffer");
++        free(qbuf);
++        return -1;
++    }
++
++    buf->dmsbuf[0].buf = qbuf;
++    buf->dmsbuf[0].size = dlen;
++    buf->num_dms = 1;
+     return 0;
+ }
+ static int buffer_qemu(xc_interface *xch, struct restore_ctx *ctx,
+-                       int fd, struct tailbuf_hvm *buf)
++                       uint32_t dmid, int fd, struct tailbuf_hvm *buf)
+ {
+     uint32_t qlen;
+     uint8_t *tmp;
++    struct devmodel_buffer *dmb = &buf->dmsbuf[dmid];
+     if ( RDEXACT(fd, &qlen, sizeof(qlen)) ) {
+-        PERROR("Error reading QEMU header length");
++        PERROR("Error reading Device Model %u header length", dmid);
+         return -1;
+     }
+-    if ( qlen > buf->qemubufsize ) {
+-        if ( buf->qemubuf) {
+-            tmp = realloc(buf->qemubuf, qlen);
++    if ( qlen > dmb->size ) {
++        if ( dmb->buf ) {
++            tmp = realloc(dmb->buf, qlen);
+             if ( tmp )
+-                buf->qemubuf = tmp;
++                dmb->buf = tmp;
+             else {
+-                ERROR("Error reallocating QEMU state buffer");
++                ERROR("Error reallocating Device Model %u state buffer", dmid);
+                 return -1;
+             }
+         } else {
+-            buf->qemubuf = malloc(qlen);
+-            if ( !buf->qemubuf ) {
+-                ERROR("Error allocating QEMU state buffer");
++            dmb->buf = malloc(qlen);
++            if ( !dmb->buf ) {
++                ERROR("Error allocating Device Model %u state buffer", dmid);
+                 return -1;
+             }
+         }
+     }
+-    buf->qemubufsize = qlen;
++    dmb->size = qlen;
+-    if ( RDEXACT(fd, buf->qemubuf, buf->qemubufsize) ) {
+-        PERROR("Error reading QEMU state");
++    if ( RDEXACT(fd, dmb->buf, dmb->size) ) {
++        PERROR("Error reading Device Model %u state", dmid);
+         return -1;
+     }
+     return 0;
+ }
+-static int dump_qemu(xc_interface *xch, uint32_t dom, struct tailbuf_hvm *buf)
++static int buffer_device_models(xc_interface *xch, struct restore_ctx *ctx,
++                                int fd, struct tailbuf_hvm *buf)
++{
++    uint32_t i, num_dms;
++    unsigned char qemusig[QEMUSIG_SIZE + 1];
++    int ret = 0;
++
++    if ( RDEXACT(fd, &num_dms, sizeof(num_dms)) ) {
++        PERROR("Error reading num dms");
++        return -1;
++    }
++
++    if ( !(buf->dmsbuf = calloc(num_dms, sizeof (*buf->dmsbuf))) ) {
++        PERROR("Error allocating Device Model buffers");
++        return -1;
++    }
++
++    buf->num_dms = num_dms;
++
++    for ( i = 0; i < num_dms; i++ ) {
++        if ( RDEXACT(fd, qemusig, QEMUSIG_SIZE) ) {
++            PERROR("Error reading Device Model %u signature", i);
++            return -1;
++        }
++
++        if ( memcmp(qemusig, "DeviceModelRecord0002", QEMUSIG_SIZE) ) {
++            qemusig[QEMUSIG_SIZE] = '\0';
++            ERROR("Invalid Device Model %u signature: %s", i, qemusig);
++            return -1;
++        }
++
++        ret = buffer_qemu(xch, ctx, i, fd, buf);
++        if ( ret )
++            return ret;
++    }
++
++    return 0;
++}
++
++static int dump_qemu(xc_interface *xch, uint32_t dom,
++                     uint32_t dmid, struct tailbuf_hvm *buf)
+ {
+     int saved_errno;
+     char path[256];
+     FILE *fp;
++    struct devmodel_buffer *dmb = &buf->dmsbuf[dmid];
+-    sprintf(path, XC_DEVICE_MODEL_RESTORE_FILE".%u", dom);
++    sprintf(path, XC_DEVICE_MODEL_RESTORE_FILE".%u.%u", dom, dmid);
+     fp = fopen(path, "wb");
+     if ( !fp )
+         return -1;
+-    DPRINTF("Writing %d bytes of QEMU data\n", buf->qemubufsize);
+-    if ( fwrite(buf->qemubuf, 1, buf->qemubufsize, fp) != buf->qemubufsize) {
++    DPRINTF("Writing %d bytes of Device Model %u data\n", dmb->size, dmid);
++    if ( fwrite(dmb->buf, 1, dmb->size, fp) != dmb->size ) {
+         saved_errno = errno;
+         fclose(fp);
+         errno = saved_errno;
+@@ -467,7 +522,7 @@ static int buffer_tail_hvm(xc_interface *xch, struct restore_ctx *ctx,
+                            int vcpuextstate, uint32_t vcpuextstate_size)
+ {
+     uint8_t *tmp;
+-    unsigned char qemusig[21];
++    unsigned char qemusig[QEMUSIG_SIZE + 1];
+     if ( RDEXACT(fd, buf->magicpfns, sizeof(buf->magicpfns)) ) {
+         PERROR("Error reading magic PFNs");
+@@ -504,7 +559,7 @@ static int buffer_tail_hvm(xc_interface *xch, struct restore_ctx *ctx,
+         return -1;
+     }
+-    if ( RDEXACT(fd, qemusig, sizeof(qemusig)) ) {
++    if ( RDEXACT(fd, qemusig, QEMUSIG_SIZE) ) {
+         PERROR("Error reading QEMU signature");
+         return -1;
+     }
+@@ -517,13 +572,22 @@ static int buffer_tail_hvm(xc_interface *xch, struct restore_ctx *ctx,
+      * live-migration QEMU record and Remus which includes a length
+      * prefix
+      */
+-    if ( !memcmp(qemusig, "QemuDeviceModelRecord", sizeof(qemusig)) )
++    if ( !memcmp(qemusig, "QemuDeviceModelRecord", QEMUSIG_SIZE) )
+         return compat_buffer_qemu(xch, ctx, fd, buf);
+-    else if ( !memcmp(qemusig, "DeviceModelRecord0002", sizeof(qemusig)) ||
+-              !memcmp(qemusig, "RemusDeviceModelState", sizeof(qemusig)) )
+-        return buffer_qemu(xch, ctx, fd, buf);
++    else if ( !memcmp(qemusig, "DeviceModelRecord0002", QEMUSIG_SIZE) ||
++              !memcmp(qemusig, "RemusDeviceModelState", QEMUSIG_SIZE) )
++    {
++        if ( !(buf->dmsbuf = calloc(1, sizeof (*buf->dmsbuf))) ) {
++            PERROR("Error allocating Device Model buffer");
++            return -1;
++        }
++        return buffer_qemu(xch, ctx, 0, fd, buf);
++    }
++    else if ( !memcmp(qemusig, "DeviceModelRecords001", QEMUSIG_SIZE) ) {
++        return buffer_device_models(xch, ctx, fd, buf);
++   }
+-    qemusig[20] = '\0';
++    qemusig[QEMUSIG_SIZE] = '\0';
+     ERROR("Invalid QEMU signature: %s", qemusig);
+     return -1;
+ }
+@@ -629,13 +693,18 @@ static int buffer_tail(xc_interface *xch, struct restore_ctx *ctx,
+ static void tailbuf_free_hvm(struct tailbuf_hvm *buf)
+ {
++    uint32_t i;
++
+     if ( buf->hvmbuf ) {
+         free(buf->hvmbuf);
+         buf->hvmbuf = NULL;
+     }
+-    if ( buf->qemubuf ) {
+-        free(buf->qemubuf);
+-        buf->qemubuf = NULL;
++
++    for (i = 0; i < buf->num_dms; i++)
++    {
++        if (buf->dmsbuf[i].buf)
++            free(buf->dmsbuf[i].buf);
++        buf->dmsbuf[i].buf = NULL;
+     }
+ }
+@@ -2137,10 +2206,17 @@ int xc_domain_restore(xc_interface *xch, int io_fd, uint32_t dom,
+         }
+     }
+-    /* Dump the QEMU state to a state file for QEMU to load */
+-    if ( dump_qemu(xch, dom, &tailbuf.u.hvm) ) {
+-        PERROR("Error dumping QEMU state to file");
+-        goto out;
++    /**
++     * Dump the each Device Model state to a state file for the Device
++     * Model to load
++     */
++    for ( i = 0; i < tailbuf.u.hvm.num_dms; i++)
++    {
++        if ( dump_qemu(xch, dom, i, &tailbuf.u.hvm) )
++        {
++            PERROR("Error dumping Device Model %u state to file", i);
++            goto out;
++        }
+     }
+     /* These comms pages need to be zeroed at the start of day */
+@@ -2153,9 +2229,9 @@ int xc_domain_restore(xc_interface *xch, int io_fd, uint32_t dom,
+     }
+     if ( (frc = xc_set_hvm_param(xch, dom,
+-                                 HVM_PARAM_IOREQ_PFN, tailbuf.u.hvm.magicpfns[0]))
++                                 HVM_PARAM_IO_PFN_FIRST, tailbuf.u.hvm.magicpfns[0]))
+          || (frc = xc_set_hvm_param(xch, dom,
+-                                    HVM_PARAM_BUFIOREQ_PFN, tailbuf.u.hvm.magicpfns[1]))
++                                    HVM_PARAM_IO_PFN_LAST, tailbuf.u.hvm.magicpfns[1]))
+          || (frc = xc_set_hvm_param(xch, dom,
+                                     HVM_PARAM_STORE_PFN, tailbuf.u.hvm.magicpfns[2]))
+          || (frc = xc_set_hvm_param(xch, dom,
+diff --git a/tools/libxc/xc_domain_save.c b/tools/libxc/xc_domain_save.c
+index c359649..2aa7a28 100644
+--- a/tools/libxc/xc_domain_save.c
++++ b/tools/libxc/xc_domain_save.c
+@@ -862,7 +862,7 @@ int xc_domain_save(xc_interface *xch, int io_fd, uint32_t dom, uint32_t max_iter
+     uint8_t *hvm_buf = NULL;
+     /* HVM: magic frames for ioreqs and xenstore comms. */
+-    uint64_t magic_pfns[3]; /* ioreq_pfn, bufioreq_pfn, store_pfn */
++    uint64_t magic_pfns[3]; /* io_pfn_first , io_pfn_last, store_pfn */
+     unsigned long mfn;
+@@ -1787,9 +1787,9 @@ int xc_domain_save(xc_interface *xch, int io_fd, uint32_t dom, uint32_t max_iter
+         /* Save magic-page locations. */
+         memset(magic_pfns, 0, sizeof(magic_pfns));
+-        xc_get_hvm_param(xch, dom, HVM_PARAM_IOREQ_PFN,
++        xc_get_hvm_param(xch, dom, HVM_PARAM_IO_PFN_FIRST,
+                          (unsigned long *)&magic_pfns[0]);
+-        xc_get_hvm_param(xch, dom, HVM_PARAM_BUFIOREQ_PFN,
++        xc_get_hvm_param(xch, dom, HVM_PARAM_IO_PFN_LAST,
+                          (unsigned long *)&magic_pfns[1]);
+         xc_get_hvm_param(xch, dom, HVM_PARAM_STORE_PFN,
+                          (unsigned long *)&magic_pfns[2]);
+-- 
+Julien Grall
+
+
+_______________________________________________
+Xen-devel mailing list
+Xen-devel@lists.xen.org
+http://lists.xen.org/xen-devel
+
diff --git a/config/examples/test/emesinae.conf b/config/examples/test/emesinae.conf
new file mode 100644 (file)
index 0000000..8327934
--- /dev/null
@@ -0,0 +1,60 @@
+$c{Mailer} = "exim";
+
+#$c{DB}          = "/opt/emesinae/var/db.sqlite";
+$c{DB}          = "/tmp/emesinae.db"; # RAM
+$c{RawMailBase} = "/opt/emesinae/var/raw/";
+
+$c{TrackerName} = "Emesinae Bug Tracker";
+$c{TrackerHost} = "localhost";
+
+$c{StyleSheet} = "/css/style.css";
+
+$c{MailDomain} = "hellion.org.uk";
+
+# Bug tracker owner, within $c{MailDomain}
+$c{OwnerAddress}       = "ijc+emesinae-owner;
+# Bug control address, within $c{MailDomain}
+$c{ControlAddress}     = "ijc+emesinae-control";
+# Maildrop address, subscribed to the list
+$c{ListDropAddress} = "emesinae-maildrop-address";
+
+# (optional) Address to send a copy of all control replies too. Need not be
+# within $c{MailDomain}
+$c{ControlDistAddress} = "control-bugs-dist\@" . $c{MailDomain};
+
+# The mailing list address
+$c{ListAddress} = "emesinae-test\@list.example.com";
+# Aliases for the mailing list address
+$c{ListAliases} = qw/emesinae-test\@list.example.org/;
+
+# Set to 1 to send control replies to the list.
+$c{ControlReplyToList} = 0;
+
+# Set to 1 to send control replies to the requestor.
+#$c{ControlReplyToRequestor} = 1
+
+# If unset replies go to $c{ListAddress}
+$c{ControlReplyOverride} = "ijc+emesinae-control-test\@hellion.org.uk";
+
+$c{SpoolDir}        = "/opt/emesinae/var/spool/";
+# Set to 1 to save all incoming mail to YYYY-MM under SpoolDir
+$c{ArchiveIncoming} = 1;
+
+# Path component of the CGI URL
+$c{CGIPath}         = "/cgi-bin/";
+
+$c{LockDir}  = "/opt/emesinae/var/locks/";
+
+$c{ReportingURL} = "http://bugs.example.com/Howto_Report_Bugs.html";
+
+# <MSGID> is replaced by the real message id.
+%{ $c{Archives} } = (
+    "marc.info" => "http://marc.info/?i=<MSGID>",
+    "gmane"     => "http://mid.gmane.org/<MSGID>",
+);
+
+@{ $c{ControlAllow} } = qw/admin@example.com ijc@hellion.org.uk/;
+
+# Severity levels, in decending order of criticality
+@{ $c{SeverityLevels} } = qw/blocker critical normal wishlist/;
+$c{DefaultSeverity} = "normal";
diff --git a/config/examples/test/fakereceive.sh b/config/examples/test/fakereceive.sh
new file mode 100755 (executable)
index 0000000..ae4dcd4
--- /dev/null
@@ -0,0 +1,26 @@
+#!/bin/bash
+
+#
+# Simulate receiving a mail.
+#
+
+set -e
+
+if [ $# -lt 2 ] ; then
+    echo "usage: need a prefix and and local part" 1>&2
+    exit 1
+fi
+
+D=$1/lib/emesinae ; shift
+export LOCAL_PART="$1"; shift
+
+for msg in $@ ; do
+
+    t=`stat -c%Y "$msg"`
+    cat "$msg" | env FAKE_RECEIVE_TIME=$t $D/receive.pl;
+    ret=$?;
+    if [ $ret -gt 0 ] ; then
+       echo "ERROR: Receiver exited with code $ret";
+       exit $ret
+    fi
+done
diff --git a/config/examples/test/insertcorpus.sh b/config/examples/test/insertcorpus.sh
new file mode 100755 (executable)
index 0000000..8ebce6b
--- /dev/null
@@ -0,0 +1,22 @@
+#!/bin/bash
+
+set -e
+
+if [ $# -ne 1 ] ; then
+    echo "usage: need a prefix" 1>&2
+    exit 1
+fi
+
+PREFIX=$1
+FAKE_LOCAL_PART="emesinae-maildrop-address"
+
+IFS='
+'
+find corpus -type f | while read msg ; do
+    ./fakereceive.sh "$PREFIX" "$FAKE_LOCAL_PART" "$msg"
+    ret=$?;
+    if [ $ret -gt 0 ] ; then
+        echo "ERROR: Receiver exited with code $ret";
+        exit $ret
+    fi
+done
diff --git a/config/examples/test/test.sh b/config/examples/test/test.sh
new file mode 100755 (executable)
index 0000000..a9a504d
--- /dev/null
@@ -0,0 +1,46 @@
+#!/bin/bash
+
+if [ $# -lt 2 -a $# -gt 3 ] ; then
+    echo "usage: test.sh <db> <prefix> [corpus|test|both]" 1>&2
+    exit 1
+fi
+
+set -e
+
+db=$1
+prefix=$2
+mode=${3:-both}
+
+libexec=$prefix/lib/emesinae/
+spool=$prefix/var/spool
+
+if [ "${mode}" = "corpus" -o "${mode}" = "both" ] ; then
+    echo Removing existing spool and db
+    rm -rf $spool/incoming/* $spool/201* $db $prefix/var/raw/*
+
+    echo Recreating DB
+
+    ../db/createdb.sh -d $1
+
+    echo Inserting corpus
+    ./insertcorpus.sh $prefix
+
+    echo Queue run 1
+    $libexec/queuerunner.pl
+
+    cp $db $db.corpus
+else
+    cp $db.corpus $db
+fi
+
+if [ "${mode}" = "test" -o "${mode}" = "both" ] ; then
+    echo Inserting control messages
+    for i in control.*.test ; do
+       ./fakereceive.sh $prefix control $i
+       #./fakereceive.sh $prefix emesinae-maildrop-address $i
+    done
+
+    echo Queue run 2
+    $libexec/queuerunner.pl
+
+fi
diff --git a/test/README b/test/README
deleted file mode 100644 (file)
index 2ac16d1..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-Test corpus taken from xen-devel@lists.xen.org
-
-test.sh inserts the corpus and runs all control tests.
-
-emesinae.conf is setup for my local environment.
diff --git a/test/control.1.test b/test/control.1.test
deleted file mode 100644 (file)
index a7243ce..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-From: Ian Campbell <ijc@hellion.org.uk>
-Subject: Re: [Xen-devel] bug when using 4K
-       sectors?
-Message-id: <control.1.test@emesinae.example.com>
-In-Reply-To: <6035A0D088A63A46850C3988ED045A4B299F74F8@BITCOM1.int.sbss.com.au>
-To: emesinae-test@list.example.com
-Cc: ijc@hellion.org.uk, control@bugs.example.com
-
-create ^
-title -1 Linux does something weird with sector size
-# Trim an interesting but unrelated subthread...
-prune -1 <20120916122704.4ea05b45@pyramind.ukuu.org.uk>
-thanks
-
-On xx blah blah wrote:
-> xx xxx xx 
-> xx xx 
diff --git a/test/control.2.test b/test/control.2.test
deleted file mode 100644 (file)
index ff18950..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-From: Ian Campbell <ijc@hellion.org.uk>
-Subject: Creating Pretend bug, multiple bugs
-Message-id: <control.2.test@emesinae.example.com>
-To: emesinae-test@list.example.com
-Cc: ijc@hellion.org.uk, control@bugs.example.com
-
-create !
-title -1 A bug with a mail which does not exist
-graft -1 <This.Is.Not.Real@example.com>
-owner -1 M A Dup <foo@example.com>
-severity -1 wishlist
-
-create <CC6B764E.3DACF%keir.xen@gmail.com>
-title -2 A bug which is reopened
-close -2
-reopen -2
-thanks
diff --git a/test/control.3.test b/test/control.3.test
deleted file mode 100644 (file)
index adce544..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-From: Ian Campbell <ijc@hellion.org.uk>
-Subject: Message with no To line
-Message-id: <control.3.test@emesinae.example.com>
-To: emesinae-test@list.example.com
-Cc: ijc@hellion.org.uk, control@bugs.example.com
-
-create <20120629120738.425781e5@mantra.us.oracle.com>
-title -3 Message with no To line
-thanks
diff --git a/test/control.4.test b/test/control.4.test
deleted file mode 100644 (file)
index 69d5bac..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-From: Ian Campbell <ijc@hellion.org.uk>
-Subject: Change owner
-Message-id: <control.4.test@emesinae.example.com>
-To: emesinae-test@list.example.com
-Cc: ijc@hellion.org.uk, control@bugs.example.com
-
-create <20120629120738.425781e5@mantra.us.oracle.com>
-title -1 Owner changed
-owner -1 nobody@example.com
-owner -1 !
-
-thanks
diff --git a/test/control.5.test b/test/control.5.test
deleted file mode 100644 (file)
index c5d43fd..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
-From: Ian Campbell <ijc@hellion.org.uk>
-Subject: Bugs with odd content parts
-Message-id: <control.5.test@emesinae.example.com>
-In-Reply-To: <20397.14624.57140.518016@mariner.uk.xensource.com>
-References: <1334928211-29856-1-git-send-email-roger.pau@citrix.com>
-        <1334928211-29856-4-git-send-email-roger.pau@citrix.com>
-        <20373.34767.584624.953798@mariner.uk.xensource.com>
-        <4F982F18.2080902@citrix.com>   <4F99360E.2010201@citrix.com>
-        <20377.18296.235567.918003@mariner.uk.xensource.com>
-        <1335445762.28015.141.camel@zakaz.uk.xensource.com>
-        <20397.14624.57140.518016@mariner.uk.xensource.com>
-To: emesinae-test@list.example.com
-Cc: control@bugs.example.com
-
-create <002301cd590c$49aee250$dd0ca6f0$@brice-amiard.Fr>
-title -1 "With text/html part"
-create <1346834000.17325.4.camel@zakaz.uk.xensource.com>
-title -2 "With base64 stuff"
-create <50806C0B.1060504@canonical.com>
-title -3 "With PGP signature as attachment"
-create <E1T9C4K-0003Su-2p@mariner.uk.xensource.com>
-title -4 "With inline PGP signature"
-create <002301cd590c$49aee250$dd0ca6f0$@brice-amiard.Fr>
-title -5 "Attachments"
-thanks
-
-For authenticity the In-Reply-To and References are taken from
-<1336753602.23818.133.camel@zakaz.uk.xensource.com>.
-
-On xx blah blah wrote:
-> xx xxx xx 
-> xx xx 
diff --git a/test/control.6.test b/test/control.6.test
deleted file mode 100644 (file)
index a9e490e..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-From: Ian Campbell <ijc@hellion.org.uk>
-Subject: Control with no message id
-To: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-Cc: control@bugs.example.com
-
-thanks
-
-On xx blah blah wrote:
-> xx xxx xx 
-> xx xx 
diff --git a/test/control.7.test b/test/control.7.test
deleted file mode 100644 (file)
index 36aba5b..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-Subject: Control with no from
-To: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-In-Reply-To: <20120629120738.425781e5@mantra.us.oracle.com>
-Message-Id: <control.7.test@fake.hellion.org.uk>
-
-# Should be disallowed
-create <alpine.DEB.2.00.1205281439080.26786@kaball-desktop>
-thanks
-
-On xx blah blah wrote:
-> xx xxx xx 
-> xx xx 
diff --git a/test/control.8.test b/test/control.8.test
deleted file mode 100644 (file)
index df4cbce..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-From: ijc@hellion.org.uk
-Message-ID: 1359410450@hellion.org.uk
-Subject: control to just me and control, not list
-To: ijc@hellion.org.uk, control@bugs.example.com
-Message-Id: <control.test.6@fake.hellion.org.uk>
-
-create <1338287956-24691-6-git-send-email-stefano.stabellini@eu.citrix.com>
-thanks
-
-On xx blah blah wrote:
-> xx xxx xx 
-> xx xx 
diff --git a/test/corpus/<001301cd5fc1$818953c0$849bfb40$@core.kaist.ac.kr> b/test/corpus/<001301cd5fc1$818953c0$849bfb40$@core.kaist.ac.kr>
deleted file mode 100644 (file)
index 5bc2079..0000000
+++ /dev/null
@@ -1,142 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Jul 12 01:07:14 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 12 Jul 2012 01:07:14 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1Sp6w3-0006cw-Pp
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 12 Jul 2012 01:07:14 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1Sp6r8-000661-HG; Thu, 12 Jul 2012 00:02:06 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <cmkim@core.kaist.ac.kr>) id 1Sp6r6-00065u-L6
-       for xen-devel@lists.xen.org; Thu, 12 Jul 2012 00:02:04 +0000
-Received: from [85.158.143.35:35213] by server-2.bemta-4.messagelabs.com id
-       5D/95-17938-BF31EFF4; Thu, 12 Jul 2012 00:02:03 +0000
-X-Env-Sender: cmkim@core.kaist.ac.kr
-X-Msg-Ref: server-9.tower-21.messagelabs.com!1342051319!5741973!1
-X-Originating-IP: [143.248.147.118]
-X-SpamReason: No, hits=0.0 required=7.0 tests=
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.2; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 10395 invoked from network); 12 Jul 2012 00:02:02 -0000
-Received: from core.kaist.ac.kr (HELO core.kaist.ac.kr) (143.248.147.118)
-       by server-9.tower-21.messagelabs.com with DHE-RSA-AES256-SHA encrypted
-       SMTP; 12 Jul 2012 00:02:02 -0000
-Received: from CHULMINKIMPC (az.kaist.ac.kr [143.248.165.115])
-       by core.kaist.ac.kr (8.14.4/8.14.4) with ESMTP id q6C00rLI017464;
-       Thu, 12 Jul 2012 09:00:53 +0900
-From: "Chulmin Kim" <cmkim@core.kaist.ac.kr>
-To: "'Andrew Cooper'" <andrew.cooper3@citrix.com>
-References: <008601cd5f45$6eff7530$4cfe5f90$@core.kaist.ac.kr>
-       <4FFD4C06.7090403@citrix.com>
-In-Reply-To: <4FFD4C06.7090403@citrix.com>
-Date: Thu, 12 Jul 2012 09:01:36 +0900
-Message-ID: <001301cd5fc1$818953c0$849bfb40$@core.kaist.ac.kr>
-MIME-Version: 1.0
-X-Mailer: Microsoft Outlook 14.0
-Thread-Index: AQHi8tnKuE7rNn5GUJad1LRMsZtYjQI/riFrlueelNA=
-Content-Language: ko
-Cc: xen-devel@lists.xen.org
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] maximum memory size allocated by _xmalloc
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-> On 11/07/12 10:13, Chulmin Kim wrote:
-> > Hi all,
-> >
-> > I'm currently inserting my own code to adjust the several existing
-> > memory ballooning works.
-> >
-> > To accomplish it, I manage some kind of statistics in Xen memory area.
-> >
-> > Using _xmalloc, I've allocated certain size of memory chunk for the
-> > data structure. ( I varied it from 10kb to 24 MB.)
-> >
-> > When the size is equal to 24 MB, xen won't boot anymore.  (stuck
-> > during the xmalloc, according to my debugging. _xmalloc returns NULL.)
-> > There was no problem when the size is below 12MB.
-> >
-> > Is there any limitation such as max memory size for _xmalloc?
-> >
-> > I suspected xen heap size, but, it is no longer adjustable. Right?
-> >
-> > I hope somebody can give me a clue.  Thanks.
-> 
-> _xmalloc will first try to use the size pools for allocation, and failing
-that, try to
-> allocate full pages.
-> 
-> As it is returning NULL, this probably means you no longer have 24MB of
-free
-> contiguous RAM to allocate.
-> 
-> ~Andrew
-> 
-
-Thanks for the reply, Andrew.
-
-I have to check the contiguity. 
-
-If it is the cause of the problem, then, how can I detour this problem? 
-
-Other xen part calling xmalloc_array does not handle this problem as far as
-I know. (only consider it as an error)
-
-Should I split the data structure into two or more chunks? 
-
-
-
-> >
-> >
-> >
-> > _______________________________________________
-> > Xen-devel mailing list
-> > Xen-devel@lists.xen.org
-> > http://lists.xen.org/xen-devel
-> 
-> --
-> Andrew Cooper - Dom0 Kernel Engineer, Citrix XenServer
-> T: +44 (0)1223 225 900, http://www.citrix.com
-> 
-> 
-> 
-> 
-> _______________________________________________
-> Xen-devel mailing list
-> Xen-devel@lists.xen.org
-> http://lists.xen.org/xen-devel
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<002301cd590c$49aee250$dd0ca6f0$@brice-amiard.Fr> b/test/corpus/<002301cd590c$49aee250$dd0ca6f0$@brice-amiard.Fr>
deleted file mode 100644 (file)
index 21f923a..0000000
+++ /dev/null
@@ -1,1409 +0,0 @@
-From xen-devel-bounces@lists.xen.org Tue Jul 03 12:16:02 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Tue, 03 Jul 2012 12:16:02 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1Sm153-0003lN-W4
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 03 Jul 2012 12:16:02 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1Sm0yg-0002rT-HY; Tue, 03 Jul 2012 11:09:06 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <perso@brice-amiard.fr>) id 1Sm0ye-0002rO-Ho
-       for xen-devel@lists.xen.org; Tue, 03 Jul 2012 11:09:05 +0000
-Received: from [85.158.138.51:11323] by server-12.bemta-3.messagelabs.com id
-       BE/D2-30206-FC2D2FF4; Tue, 03 Jul 2012 11:09:03 +0000
-X-Env-Sender: perso@brice-amiard.fr
-X-Msg-Ref: server-9.tower-174.messagelabs.com!1341313741!30827923!1
-X-Originating-IP: [178.33.110.239]
-X-SpamReason: No, hits=0.5 required=7.0 tests=BODY_RANDOM_LONG, HTML_MESSAGE
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 19645 invoked from network); 3 Jul 2012 11:09:01 -0000
-Received: from 8.mo1.mail-out.ovh.net (HELO mo1.mail-out.ovh.net)
-       (178.33.110.239) by server-9.tower-174.messagelabs.com with SMTP;
-       3 Jul 2012 11:09:01 -0000
-Received: from mail625.ha.ovh.net (b7.ovh.net [213.186.33.57])
-       by mo1.mail-out.ovh.net (Postfix) with SMTP id 0DE1F1010400
-       for <xen-devel@lists.xen.org>; Tue,  3 Jul 2012 13:13:49 +0200 (CEST)
-Received: from b0.ovh.net (HELO queueout) (213.186.33.50)
-       by b0.ovh.net with SMTP; 3 Jul 2012 13:09:00 +0200
-Received: from unknown (HELO bricelaptop) (perso%brice-amiard.fr@92.90.21.1)
-       by ns0.ovh.net with SMTP; 3 Jul 2012 13:08:57 +0200
-From: "amiard brice" <perso@brice-amiard.Fr>
-To: <xen-devel@lists.xen.org>
-References: 
-In-Reply-To: 
-X-Ovh-Mailout: 178.32.228.1 (mo1.mail-out.ovh.net)
-Date: Tue, 3 Jul 2012 13:09:15 +0200
-Message-ID: <002301cd590c$49aee250$dd0ca6f0$@brice-amiard.Fr>
-MIME-Version: 1.0
-Content-Type: multipart/mixed;
-       boundary="----=_NextPart_000_0024_01CD591D.0D3DCCD0"
-X-Mailer: Microsoft Outlook 14.0
-Thread-Index: Ac1YQ6ip6DjfhtQhSiKyn9pet1/2EgAyJX1w
-Content-Language: fr
-X-Ovh-Tracer-Id: 15188671219066179367
-X-Ovh-Remote: 92.90.21.1 ()
-X-Ovh-Local: 213.186.33.20 (ns0.ovh.net)
-X-OVH-SPAMSTATE: OK
-X-OVH-SPAMSCORE: 0
-X-OVH-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrfeegkedriedvucetufdoteggodetrfdofgetucfrrhhofhhilhgvmecuqfggjfenuceurghilhhouhhtmecufedttdenucenucfhrhhomhepfdgrmhhirghrugcusghrihgtvgdfuceophgvrhhsohessghrihgtvgdqrghmihgrrhgurdfhrheqnecujfgurhephffvfhgjufffkfggtgfothesmhdtreepvddtvd
-X-VR-SPAMSTATE: OK
-X-VR-SPAMSCORE: 0
-X-VR-SPAMCAUSE: gggruggvucftvghtrhhoucdtuddrfeegkedriedvucetufdoteggodetrfdofgetucfrrhhofhhilhgvmecuqfggjfenuceurghilhhouhhtmecufedttdenucenucfhrhhomhepfdgrmhhirghrugcusghrihgtvgdfuceophgvrhhsohessghrihgtvgdqrghmihgrrhgurdfhrheqnecujfgurhephffvfhgjufffkfggtgfothesmhdtreepvddtvd
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,HTML_MESSAGE,
-       RCVD_IN_BL_SPAMCOP_NET,RCVD_IN_DNSWL_MED,RCVD_IN_SORBS_WEB,T_RP_MATCHES_RCVD,
-       UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: [Xen-devel] VT-D CPU ressources
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-This is a multipart message in MIME format.
-
-------=_NextPart_000_0024_01CD591D.0D3DCCD0
-Content-Type: multipart/alternative;
-       boundary="----=_NextPart_001_0025_01CD591D.0D3DCCD0"
-
-
-------=_NextPart_001_0025_01CD591D.0D3DCCD0
-Content-Type: text/plain;
-       charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-
-Hi
-
-
-I've post a message on  <mailto:xen-users@list.xen.org>
-xen-users@list.xen.org , according to a member of this list, I've decide to
-post it on xen-devel.
-
-
-See mailing-list copy above : 
-
-
-This sounds like a question it would be useful to ask on xen-devel.
-
-(Unfortuantely I'm not familiar enough with PCIe-to-PCI bridges to give you
-a good answer.)
-
-
--George
-
-
-
-> In my opinion it could be due to the EPT table. In my "xm dmesg" I 
-
-> could see "EPT not enable" and "CPU capabilities :  EPT table 2Mo", 
-
-> but I can't active it (I've try different options in default/grub 
-
-> without succes)
-
-> 
-
-> (if devices behind the same pci bridges could not be allocated to 
-
-> different VMs, it' simply because VT-d use specific interruption 
-
-> command call MSI-X in aim to identify a domU, and those interruptions 
-
-> commands  could be possible only with PCIe, you can have more information
-in the pdf intel VT-d).
-
-> 
-
-> thank you for your help in advance
-
-> Amiard Brice
-
-
-
->> 2012/6/22 amiard brice <perso@brice-amiard.fr>:
-
-
->> I want create four domU with 2 PCI device per dom.
-
-> 
-
->> I've bought a backplane ("motherboard extension") with 4 bridges PCIe 1x
-to PCI 
-
->> directly connected to the PCH (Q67).
-
->>And I have one domU for each "PCI-e to PCI 
-
->> bridge", so according to the intel_VT-d pdf, it could be possible in 
-
->> my case to have 4 domU (one for each PCIe to PCI bridges).
-
-
->> 
-
->> (Moreover PCI card (ethernet card) are composed with a PCI bridge)
-
->> 
-
->> 
-
->> 
-
->> I've succefuly created 4 domU with bakend devices, with option 
-
->> "pci-backend-strict-check" disable.
-
->> 
-
->> I've try with it but even if all PCI ports behind "PCIe to PCI bridge "
-
->> appears in  pci-list-assignable-devices, domU won't start, with an 
-
->> error message "device XX:XX.X need to be co-assigned with XX:XX.X, 
-
->> but it's not owned by pci-backend
-
->> 
-
->> 
-
->> 
-
->> The probleme is :  even if my domU are configuer with 1 VCPUs for 
-
->> each of them, when domU acces to I/O devices, VCPUs aren't separated 
-
->> (I've notice this using virt-manager charts). During a basic CPU 
-
->> benchmark on a domU, VCPUs are isolated.
-
->> 
-
->> 
-
->> 
-
->> I Have attached "lspci-v", "xm dmesg", "xm 
-
->> pci-list-assignable-devices", "default-grub", "xm info" and a "domU 
-
->> cfg file"
-
-
->> For example when I transfer some file between
-
->> a other PC and a domU through the Ethernet card
-
->> connected using VT-d, VCPU's charts are identical between each
-
->> domU (it's like if I/O instruction aren't separated between CPU cores,
-
->> I think XEN can't determine CPU cores assignation for d'I/O, 
-
->>so it execute instruction on each CPU, 
-
->>and after DMA remapping transfer data to the correct domU).
-
-
->> 
-
->> 
-
->> 
-
->> A share core is very problematic my RT application
-
->> 
-
->> 
-
->> 
-
->> thank you for your help in advance
-
-
-
-
-------=_NextPart_001_0025_01CD591D.0D3DCCD0
-Content-Type: text/html;
-       charset="us-ascii"
-Content-Transfer-Encoding: quoted-printable
-
-<html xmlns:v=3D"urn:schemas-microsoft-com:vml" =
-xmlns:o=3D"urn:schemas-microsoft-com:office:office" =
-xmlns:w=3D"urn:schemas-microsoft-com:office:word" =
-xmlns:m=3D"http://schemas.microsoft.com/office/2004/12/omml" =
-xmlns=3D"http://www.w3.org/TR/REC-html40"><head><META =
-HTTP-EQUIV=3D"Content-Type" CONTENT=3D"text/html; =
-charset=3Dus-ascii"><meta name=3DGenerator content=3D"Microsoft Word 14 =
-(filtered medium)"><style><!--
-/* Font Definitions */
-@font-face
-       {font-family:Calibri;
-       panose-1:2 15 5 2 2 2 4 3 2 4;}
-/* Style Definitions */
-p.MsoNormal, li.MsoNormal, div.MsoNormal
-       {margin:0cm;
-       margin-bottom:.0001pt;
-       font-size:11.0pt;
-       font-family:"Calibri","sans-serif";
-       mso-fareast-language:EN-US;}
-a:link, span.MsoHyperlink
-       {mso-style-priority:99;
-       color:blue;
-       text-decoration:underline;}
-a:visited, span.MsoHyperlinkFollowed
-       {mso-style-priority:99;
-       color:purple;
-       text-decoration:underline;}
-p.MsoPlainText, li.MsoPlainText, div.MsoPlainText
-       {mso-style-priority:99;
-       mso-style-link:"Texte brut Car";
-       margin:0cm;
-       margin-bottom:.0001pt;
-       font-size:11.0pt;
-       font-family:"Calibri","sans-serif";
-       mso-fareast-language:EN-US;}
-span.TextebrutCar
-       {mso-style-name:"Texte brut Car";
-       mso-style-priority:99;
-       mso-style-link:"Texte brut";
-       font-family:"Calibri","sans-serif";}
-span.EmailStyle19
-       {mso-style-type:personal;
-       font-family:"Calibri","sans-serif";
-       color:windowtext;}
-span.EmailStyle20
-       {mso-style-type:personal-reply;
-       font-family:"Calibri","sans-serif";
-       color:#1F497D;}
-.MsoChpDefault
-       {mso-style-type:export-only;
-       font-size:10.0pt;}
-@page WordSection1
-       {size:612.0pt 792.0pt;
-       margin:70.85pt 70.85pt 70.85pt 70.85pt;}
-div.WordSection1
-       {page:WordSection1;}
---></style><!--[if gte mso 9]><xml>
-<o:shapedefaults v:ext=3D"edit" spidmax=3D"1026" />
-</xml><![endif]--><!--[if gte mso 9]><xml>
-<o:shapelayout v:ext=3D"edit">
-<o:idmap v:ext=3D"edit" data=3D"1" />
-</o:shapelayout></xml><![endif]--></head><body lang=3DFR link=3Dblue =
-vlink=3Dpurple><div class=3DWordSection1><p =
-class=3DMsoNormal>Hi<o:p></o:p></p><p =
-class=3DMsoNormal><o:p>&nbsp;</o:p></p><p class=3DMsoNormal><span =
-lang=3DEN-US>I&#8217;ve post a message on </span><a =
-href=3D"mailto:xen-users@list.xen.org"><span =
-lang=3DEN-US>xen-users@list.xen.org</span></a><span lang=3DEN-US> , =
-according to a member of this list, I&#8217;ve decide to post it on =
-xen-devel.<o:p></o:p></span></p><p class=3DMsoNormal><span =
-lang=3DEN-US><o:p>&nbsp;</o:p></span></p><p class=3DMsoNormal><span =
-lang=3DEN-US>See mailing-list copy above : <o:p></o:p></span></p><p =
-class=3DMsoNormal><span lang=3DEN-US><o:p>&nbsp;</o:p></span></p><p =
-class=3DMsoPlainText><span lang=3DEN-US>This sounds like a question it =
-would be useful to ask on xen-devel.<o:p></o:p></span></p><p =
-class=3DMsoPlainText><span lang=3DEN-US>(Unfortuantely I'm not familiar =
-enough with PCIe-to-PCI bridges to give you a good =
-answer.)<o:p></o:p></span></p><p class=3DMsoPlainText><span =
-lang=3DEN-US><o:p>&nbsp;</o:p></span></p><p =
-class=3DMsoPlainText>-George<o:p></o:p></p><p class=3DMsoNormal><span =
-lang=3DEN-US><o:p>&nbsp;</o:p></span></p><p class=3DMsoNormal><span =
-lang=3DEN-US><o:p>&nbsp;</o:p></span></p><p class=3DMsoPlainText><span =
-lang=3DEN-US>&gt; In my opinion it could be due to the EPT table. In my =
-&quot;xm dmesg&quot; I <o:p></o:p></span></p><p =
-class=3DMsoPlainText><span lang=3DEN-US>&gt; could see &quot;EPT not =
-enable&quot; and &quot;CPU capabilities : &nbsp;EPT table 2Mo&quot;, =
-<o:p></o:p></span></p><p class=3DMsoPlainText><span lang=3DEN-US>&gt; =
-but I can't active it (I've try different options in default/grub =
-<o:p></o:p></span></p><p class=3DMsoPlainText><span lang=3DEN-US>&gt; =
-without succes)<o:p></o:p></span></p><p class=3DMsoPlainText><span =
-lang=3DEN-US>&gt;<o:p>&nbsp;</o:p></span></p><p =
-class=3DMsoPlainText><span lang=3DEN-US>&gt; (if devices behind the same =
-pci bridges could not be allocated to <o:p></o:p></span></p><p =
-class=3DMsoPlainText><span lang=3DEN-US>&gt; different VMs, it' simply =
-because VT-d use specific interruption <o:p></o:p></span></p><p =
-class=3DMsoPlainText><span lang=3DEN-US>&gt; command call MSI-X in aim =
-to identify a domU, and those interruptions <o:p></o:p></span></p><p =
-class=3DMsoPlainText><span lang=3DEN-US>&gt; commands &nbsp;could be =
-possible only with PCIe, you can have more information in the pdf intel =
-VT-d).<o:p></o:p></span></p><p class=3DMsoPlainText><span =
-lang=3DEN-US>&gt;<o:p>&nbsp;</o:p></span></p><p =
-class=3DMsoPlainText><span lang=3DEN-US>&gt; thank you for your help in =
-advance<o:p></o:p></span></p><p class=3DMsoNormal><span =
-lang=3DEN-US>&gt; Amiard Brice<o:p></o:p></span></p><p =
-class=3DMsoNormal><span lang=3DEN-US><o:p>&nbsp;</o:p></span></p><p =
-class=3DMsoPlainText><span lang=3DEN-US><o:p>&nbsp;</o:p></span></p><p =
-class=3DMsoPlainText>&gt;&gt; 2012/6/22 amiard brice &lt;<a =
-href=3D"mailto:perso@brice-amiard.fr">perso@brice-amiard.fr</a>&gt;:<o:p>=
-</o:p></p><p class=3DMsoPlainText><span =
-lang=3DEN-US><o:p>&nbsp;</o:p></span></p><p class=3DMsoPlainText><span =
-lang=3DEN-US>&gt;&gt; I want create four domU with 2 PCI device per =
-dom.<o:p></o:p></span></p><p class=3DMsoPlainText><span =
-lang=3DEN-US>&gt;<o:p>&nbsp;</o:p></span></p><p =
-class=3DMsoPlainText><span lang=3DEN-US>&gt;&gt; I've bought a backplane =
-(&quot;motherboard extension&quot;) with 4 bridges PCIe 1x to PCI =
-<o:p></o:p></span></p><p class=3DMsoPlainText><span =
-lang=3DEN-US>&gt;&gt; directly connected to the PCH =
-(Q67).<o:p></o:p></span></p><p class=3DMsoPlainText><span =
-lang=3DEN-US>&gt;&gt;And I have one domU for each &quot;PCI-e to PCI =
-<o:p></o:p></span></p><p class=3DMsoPlainText><span =
-lang=3DEN-US>&gt;&gt; bridge&quot;, so according to the intel_VT-d pdf, =
-it could be possible in <o:p></o:p></span></p><p =
-class=3DMsoPlainText><span lang=3DEN-US>&gt;&gt; my case to have 4 domU =
-(one for each PCIe to PCI bridges).<o:p></o:p></span></p><p =
-class=3DMsoPlainText><span lang=3DEN-US><o:p>&nbsp;</o:p></span></p><p =
-class=3DMsoPlainText><span =
-lang=3DEN-US>&gt;&gt;<o:p>&nbsp;</o:p></span></p><p =
-class=3DMsoPlainText><span lang=3DEN-US>&gt;&gt; (Moreover PCI card =
-(ethernet card) are composed with a PCI bridge)<o:p></o:p></span></p><p =
-class=3DMsoPlainText><span =
-lang=3DEN-US>&gt;&gt;<o:p>&nbsp;</o:p></span></p><p =
-class=3DMsoPlainText><span =
-lang=3DEN-US>&gt;&gt;<o:p>&nbsp;</o:p></span></p><p =
-class=3DMsoPlainText><span =
-lang=3DEN-US>&gt;&gt;<o:p>&nbsp;</o:p></span></p><p =
-class=3DMsoPlainText><span lang=3DEN-US>&gt;&gt; I've succefuly created =
-4 domU with bakend devices, with option <o:p></o:p></span></p><p =
-class=3DMsoPlainText><span lang=3DEN-US>&gt;&gt; =
-&quot;pci-backend-strict-check&quot; disable.<o:p></o:p></span></p><p =
-class=3DMsoPlainText><span =
-lang=3DEN-US>&gt;&gt;<o:p>&nbsp;</o:p></span></p><p =
-class=3DMsoPlainText><span lang=3DEN-US>&gt;&gt; I&#8217;ve try with it =
-but even if all PCI ports behind &#8220;PCIe to PCI bridge =
-&#8220;<o:p></o:p></span></p><p class=3DMsoPlainText><span =
-lang=3DEN-US>&gt;&gt; appears in&nbsp; pci-list-assignable-devices, domU =
-won&#8217;t start, with an <o:p></o:p></span></p><p =
-class=3DMsoPlainText><span lang=3DEN-US>&gt;&gt; error message =
-&quot;device XX:XX.X need to be co-assigned with XX:XX.X, =
-<o:p></o:p></span></p><p class=3DMsoPlainText><span =
-lang=3DEN-US>&gt;&gt; but it's not owned by =
-pci-backend<o:p></o:p></span></p><p class=3DMsoPlainText><span =
-lang=3DEN-US>&gt;&gt;<o:p>&nbsp;</o:p></span></p><p =
-class=3DMsoPlainText><span =
-lang=3DEN-US>&gt;&gt;<o:p>&nbsp;</o:p></span></p><p =
-class=3DMsoPlainText><span =
-lang=3DEN-US>&gt;&gt;<o:p>&nbsp;</o:p></span></p><p =
-class=3DMsoPlainText><span lang=3DEN-US>&gt;&gt; The probleme is :&nbsp; =
-even if my domU are configuer with 1 VCPUs for <o:p></o:p></span></p><p =
-class=3DMsoPlainText><span lang=3DEN-US>&gt;&gt; each of them, when domU =
-acces to I/O devices, VCPUs aren't separated <o:p></o:p></span></p><p =
-class=3DMsoPlainText><span lang=3DEN-US>&gt;&gt; (I've notice this using =
-virt-manager charts). During a basic CPU <o:p></o:p></span></p><p =
-class=3DMsoPlainText><span lang=3DEN-US>&gt;&gt; benchmark on a domU, =
-VCPUs are isolated.<o:p></o:p></span></p><p class=3DMsoPlainText><span =
-lang=3DEN-US>&gt;&gt;<o:p>&nbsp;</o:p></span></p><p =
-class=3DMsoPlainText><span =
-lang=3DEN-US>&gt;&gt;<o:p>&nbsp;</o:p></span></p><p =
-class=3DMsoPlainText><span =
-lang=3DEN-US>&gt;&gt;<o:p>&nbsp;</o:p></span></p><p =
-class=3DMsoPlainText><span lang=3DEN-US>&gt;&gt; I Have attached =
-&quot;lspci-v&quot;, &quot;xm dmesg&quot;, &quot;xm =
-<o:p></o:p></span></p><p class=3DMsoPlainText><span =
-lang=3DEN-US>&gt;&gt; pci-list-assignable-devices&quot;, =
-&quot;default-grub&quot;, &quot;xm info&quot; and a &#8220;domU =
-<o:p></o:p></span></p><p class=3DMsoPlainText><span =
-lang=3DEN-US>&gt;&gt; cfg file&#8221;<o:p></o:p></span></p><p =
-class=3DMsoPlainText><span lang=3DEN-US><o:p>&nbsp;</o:p></span></p><p =
-class=3DMsoPlainText><span lang=3DEN-US>&gt;&gt; For example when I =
-transfer some file between<o:p></o:p></span></p><p =
-class=3DMsoPlainText><span lang=3DEN-US>&gt;&gt; a other PC and a domU =
-through the Ethernet card<o:p></o:p></span></p><p =
-class=3DMsoPlainText><span lang=3DEN-US>&gt;&gt; connected using VT-d, =
-VCPU's charts are identical between each<o:p></o:p></span></p><p =
-class=3DMsoPlainText><span lang=3DEN-US>&gt;&gt; domU (it's like if I/O =
-instruction aren't separated between CPU cores,<o:p></o:p></span></p><p =
-class=3DMsoPlainText><span lang=3DEN-US>&gt;&gt; I think XEN can't =
-determine CPU cores assignation for d'I/O, <o:p></o:p></span></p><p =
-class=3DMsoPlainText><span lang=3DEN-US>&gt;&gt;so it execute =
-instruction on each CPU, <o:p></o:p></span></p><p =
-class=3DMsoPlainText><span lang=3DEN-US>&gt;&gt;and after DMA remapping =
-transfer data to the correct domU).<o:p></o:p></span></p><p =
-class=3DMsoPlainText><span lang=3DEN-US><o:p>&nbsp;</o:p></span></p><p =
-class=3DMsoPlainText><span =
-lang=3DEN-US>&gt;&gt;<o:p>&nbsp;</o:p></span></p><p =
-class=3DMsoPlainText><span =
-lang=3DEN-US>&gt;&gt;<o:p>&nbsp;</o:p></span></p><p =
-class=3DMsoPlainText><span =
-lang=3DEN-US>&gt;&gt;<o:p>&nbsp;</o:p></span></p><p =
-class=3DMsoPlainText><span lang=3DEN-US>&gt;&gt; A share core is very =
-problematic my RT application<o:p></o:p></span></p><p =
-class=3DMsoPlainText><span =
-lang=3DEN-US>&gt;&gt;<o:p>&nbsp;</o:p></span></p><p =
-class=3DMsoPlainText><span =
-lang=3DEN-US>&gt;&gt;<o:p>&nbsp;</o:p></span></p><p =
-class=3DMsoPlainText><span =
-lang=3DEN-US>&gt;&gt;<o:p>&nbsp;</o:p></span></p><p =
-class=3DMsoPlainText><span lang=3DEN-US>&gt;&gt; thank you for your help =
-in advance<o:p></o:p></span></p><p class=3DMsoNormal><span =
-lang=3DEN-US><o:p>&nbsp;</o:p></span></p><p class=3DMsoNormal><span =
-lang=3DEN-US><o:p>&nbsp;</o:p></span></p></div></body></html>
-------=_NextPart_001_0025_01CD591D.0D3DCCD0--
-
-------=_NextPart_000_0024_01CD591D.0D3DCCD0
-Content-Type: text/plain;
-       name="default_grub.txt"
-Content-Transfer-Encoding: quoted-printable
-Content-Disposition: attachment;
-       filename="default_grub.txt"
-
-# If you change this file, run 'update-grub' afterwards to update=0A=
-# /boot/grub/grub.cfg.=0A=
-# For full documentation of the options in this file, see:=0A=
-#   info -f grub -n 'Simple configuration'=0A=
-=0A=
-GRUB_DEFAULT=3D"2"=0A=
-#GRUB_HIDDEN_TIMEOUT=3D"0"=0A=
-GRUB_HIDDEN_TIMEOUT_QUIET=3D"true"=0A=
-GRUB_TIMEOUT=3D"4"=0A=
-GRUB_DISTRIBUTOR=3D"`lsb_release -i -s 2> /dev/null || echo Debian`"=0A=
-#GRUB_CMDLINE_LINUX_DEFAULT=3D"quiet"=0A=
-=0A=
-GRUB_CMDLINE_LINUX=3D"xen-pciback.permissive =
-xen-pciback.hide=3D(0c:0f.0)(02:02.0)(03:0c.0)(03:0d.0)(03:0e.0)(03:0f.0)=
-(05:01.0)(06:0c.0)(06:0d.0)(06:0e.0)(06:0f.0)(08:00.0)(09:0c.0)(09:0d.0)(=
-09:0e.0)(09:0f.0)(0c:0c.0)(0d:0c.0)(0d:0d.0)(0d:0e.0)(0d:0f.0) =
-'pci=3Dresource_alignment=3D0c:0f.0;02:02.0;03:0c.0;03:0d.0;03:0e.0;03:0f=
-.0;05:01.0;06:0c.0;06:0d.0;06:0e.0;06:0f.0;08:00.0;09:0c.0;09:0d.0;09:0e.=
-0;09:0f.0;0c:0c.0;0d:0c.0;0d:0d.0;0d:0e.0;0d:0f.0'"=0A=
-=0A=
-# Uncomment to enable BadRAM filtering, modify to suit your needs=0A=
-# This works with Linux (no patch required) and with any kernel that =
-obtains=0A=
-# the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...)=0A=
-#GRUB_BADRAM=3D"0x01234567,0xfefefefe,0x89abcdef,0xefefefef"=0A=
-=0A=
-# Uncomment to disable graphical terminal (grub-pc only)=0A=
-#GRUB_TERMINAL=3D"console"=0A=
-=0A=
-# The resolution used on graphical terminal=0A=
-# note that you can use only modes which your graphic card supports via =
-VBE=0A=
-# you can see them in real GRUB with the command `vbeinfo'=0A=
-#GRUB_GFXMODE=3D"640x480"=0A=
-=0A=
-# Uncomment if you don't want GRUB to pass "root=3DUUID=3Dxxx" parameter =
-to Linux=0A=
-#GRUB_DISABLE_LINUX_UUID=3D"true"=0A=
-=0A=
-# Uncomment to disable generation of recovery mode menu entries=0A=
-#GRUB_DISABLE_RECOVERY=3D"true"=0A=
-=0A=
-# Uncomment to get a beep at grub start=0A=
-#GRUB_INIT_TUNE=3D"480 440 1"=0A=
-=0A=
-#configuration de vt_d pour les devices=0A=
-=0A=
-GRUB_CMDLINE_XEN=3D"dom0_mem=3D2G,max:2G dom0_max_vcpus=3D4 =
-dom0_vcpus_pin=3Dtrue loglevel=3Dall guest_lvl=3Dall =
-iommu=3Dpass-through"=0A=
-=0A=
-GRUB_SAVEDEFAULT=3D"false"=0A=
-
-------=_NextPart_000_0024_01CD591D.0D3DCCD0
-Content-Type: text/plain;
-       name="lspci_v.txt"
-Content-Transfer-Encoding: quoted-printable
-Content-Disposition: attachment;
-       filename="lspci_v.txt"
-
-00:00.0 Host bridge: Intel Corporation 2nd Generation Core Processor =
-Family DRAM Controller (rev 09)=0A=
-       Subsystem: Intel Corporation 2nd Generation Core Processor Family DRAM =
-Controller=0A=
-       Flags: bus master, fast devsel, latency 0=0A=
-       Capabilities: [e0] Vendor Specific Information: Len=3D0c <?>=0A=
-       Kernel driver in use: agpgart-intel=0A=
-=0A=
-00:02.0 VGA compatible controller: Intel Corporation 2nd Generation Core =
-Processor Family Integrated Graphics Controller (rev 09) (prog-if 00 =
-[VGA controller])=0A=
-       Subsystem: Intel Corporation 2nd Generation Core Processor Family =
-Integrated Graphics Controller=0A=
-       Flags: bus master, fast devsel, latency 0, IRQ 303=0A=
-       Memory at f9c00000 (64-bit, non-prefetchable) [size=3D4M]=0A=
-       Memory at d0000000 (64-bit, prefetchable) [size=3D256M]=0A=
-       I/O ports at f000 [size=3D64]=0A=
-       Expansion ROM at <unassigned> [disabled]=0A=
-       Capabilities: [90] MSI: Enable+ Count=3D1/1 Maskable- 64bit-=0A=
-       Capabilities: [d0] Power Management version 2=0A=
-       Capabilities: [a4] PCI Advanced Features=0A=
-       Kernel driver in use: i915=0A=
-       Kernel modules: i915=0A=
-=0A=
-00:16.0 Communication controller: Intel Corporation 6 Series/C200 Series =
-Chipset Family MEI Controller #1 (rev 04)=0A=
-       Subsystem: Intel Corporation 6 Series/C200 Series Chipset Family MEI =
-Controller #1=0A=
-       Flags: bus master, fast devsel, latency 0, IRQ 302=0A=
-       Memory at fbc29000 (64-bit, non-prefetchable) [size=3D16]=0A=
-       Capabilities: [50] Power Management version 3=0A=
-       Capabilities: [8c] MSI: Enable+ Count=3D1/1 Maskable- 64bit+=0A=
-       Kernel driver in use: mei=0A=
-       Kernel modules: mei=0A=
-=0A=
-00:16.2 IDE interface: Intel Corporation 6 Series/C200 Series Chipset =
-Family IDE-r Controller (rev 04) (prog-if 85 [Master SecO PriO])=0A=
-       Subsystem: Intel Corporation 6 Series/C200 Series Chipset Family IDE-r =
-Controller=0A=
-       Flags: bus master, 66MHz, fast devsel, latency 0, IRQ 18=0A=
-       I/O ports at f190 [size=3D8]=0A=
-       I/O ports at f180 [size=3D4]=0A=
-       I/O ports at f170 [size=3D8]=0A=
-       I/O ports at f160 [size=3D4]=0A=
-       I/O ports at f150 [size=3D16]=0A=
-       Capabilities: [c8] Power Management version 3=0A=
-       Capabilities: [d0] MSI: Enable- Count=3D1/1 Maskable- 64bit+=0A=
-       Kernel driver in use: ata_generic=0A=
-=0A=
-00:16.3 Serial controller: Intel Corporation 6 Series/C200 Series =
-Chipset Family KT Controller (rev 04) (prog-if 02 [16550])=0A=
-       Subsystem: Intel Corporation 6 Series/C200 Series Chipset Family KT =
-Controller=0A=
-       Flags: bus master, 66MHz, fast devsel, latency 0, IRQ 17=0A=
-       I/O ports at f140 [size=3D8]=0A=
-       Memory at fbc28000 (32-bit, non-prefetchable) [size=3D4K]=0A=
-       Capabilities: [c8] Power Management version 3=0A=
-       Capabilities: [d0] MSI: Enable- Count=3D1/1 Maskable- 64bit+=0A=
-       Kernel driver in use: serial=0A=
-=0A=
-00:19.0 Ethernet controller: Intel Corporation 82579LM Gigabit Network =
-Connection (rev 05)=0A=
-       Subsystem: Intel Corporation Device 0000=0A=
-       Flags: bus master, fast devsel, latency 0, IRQ 301=0A=
-       Memory at fbc00000 (32-bit, non-prefetchable) [size=3D128K]=0A=
-       Memory at fbc27000 (32-bit, non-prefetchable) [size=3D4K]=0A=
-       I/O ports at f060 [size=3D32]=0A=
-       Capabilities: [c8] Power Management version 2=0A=
-       Capabilities: [d0] MSI: Enable+ Count=3D1/1 Maskable- 64bit+=0A=
-       Capabilities: [e0] PCI Advanced Features=0A=
-       Kernel driver in use: e1000e=0A=
-       Kernel modules: e1000e=0A=
-=0A=
-00:1a.0 USB Controller: Intel Corporation 6 Series/C200 Series Chipset =
-Family USB Enhanced Host Controller #2 (rev 05) (prog-if 20 [EHCI])=0A=
-       Subsystem: Intel Corporation 6 Series/C200 Series Chipset Family USB =
-Enhanced Host Controller #2=0A=
-       Flags: bus master, medium devsel, latency 0, IRQ 16=0A=
-       Memory at fbc26000 (32-bit, non-prefetchable) [size=3D1K]=0A=
-       Capabilities: [50] Power Management version 2=0A=
-       Capabilities: [58] Debug port: BAR=3D1 offset=3D00a0=0A=
-       Capabilities: [98] PCI Advanced Features=0A=
-       Kernel driver in use: ehci_hcd=0A=
-=0A=
-00:1b.0 Audio device: Intel Corporation 6 Series/C200 Series Chipset =
-Family High Definition Audio Controller (rev 05)=0A=
-       Subsystem: Intel Corporation 6 Series/C200 Series Chipset Family High =
-Definition Audio Controller=0A=
-       Flags: fast devsel, IRQ 22=0A=
-       Memory at fbc20000 (64-bit, non-prefetchable) [size=3D16K]=0A=
-       Capabilities: [50] Power Management version 2=0A=
-       Capabilities: [60] MSI: Enable- Count=3D1/1 Maskable- 64bit+=0A=
-       Capabilities: [70] Express Root Complex Integrated Endpoint, MSI 00=0A=
-       Capabilities: [100] Virtual Channel=0A=
-       Capabilities: [130] Root Complex Link=0A=
-       Kernel modules: snd-hda-intel=0A=
-=0A=
-00:1c.0 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset =
-Family PCI Express Root Port 1 (rev b5) (prog-if 00 [Normal decode])=0A=
-       Flags: bus master, fast devsel, latency 0=0A=
-       Bus: primary=3D00, secondary=3D01, subordinate=3D03, sec-latency=3D0=0A=
-       I/O behind bridge: 0000e000-0000efff=0A=
-       Memory behind bridge: fb500000-fbbfffff=0A=
-       Prefetchable memory behind bridge: 00000000cfa00000-00000000cfafffff=0A=
-       Capabilities: [40] Express Root Port (Slot+), MSI 00=0A=
-       Capabilities: [80] MSI: Enable+ Count=3D1/1 Maskable- 64bit-=0A=
-       Capabilities: [90] Subsystem: Intel Corporation 6 Series/C200 Series =
-Chipset Family PCI Express Root Port 1=0A=
-       Capabilities: [a0] Power Management version 2=0A=
-       Kernel driver in use: pcieport=0A=
-       Kernel modules: shpchp=0A=
-=0A=
-00:1c.1 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset =
-Family PCI Express Root Port 2 (rev b5) (prog-if 00 [Normal decode])=0A=
-       Flags: bus master, fast devsel, latency 0=0A=
-       Bus: primary=3D00, secondary=3D04, subordinate=3D06, sec-latency=3D0=0A=
-       I/O behind bridge: 0000d000-0000dfff=0A=
-       Memory behind bridge: fae00000-fb4fffff=0A=
-       Prefetchable memory behind bridge: 00000000cfb00000-00000000cfbfffff=0A=
-       Capabilities: [40] Express Root Port (Slot+), MSI 00=0A=
-       Capabilities: [80] MSI: Enable+ Count=3D1/1 Maskable- 64bit-=0A=
-       Capabilities: [90] Subsystem: Intel Corporation 6 Series/C200 Series =
-Chipset Family PCI Express Root Port 2=0A=
-       Capabilities: [a0] Power Management version 2=0A=
-       Kernel driver in use: pcieport=0A=
-       Kernel modules: shpchp=0A=
-=0A=
-00:1c.2 PCI bridge: Intel Corporation 6 Series/C200 Series Chipset =
-Family PCI Express Root Port 3 (rev b5) (prog-if 00 [Normal decode])=0A=
-       Flags: bus master, fast devsel, latency 0=0A=
-       Bus: primary=3D00, secondary=3D07, subordinate=3D09, sec-latency=3D0=0A=
-       I/O behind bridge: 0000c000-0000cfff=0A=
-       Memory behind bridge: fa700000-fadfffff=0A=
-       Prefetchable memory behind bridge: 00000000cfc00000-00000000cfcfffff=0A=
-       Capabilities: [40] Express Root Port (Slot+), MSI 00=0A=
-       Capabilities: [80] MSI: Enable+ Count=3D1/1 Maskable- 64bit-=0A=
-       Capabilities: [90] Subsystem: Intel Corporation 6 Series/C200 Series =
-Chipset Family PCI Express Root Port 3=0A=
-       Capabilities: [a0] Power Management version 2=0A=
-       Kernel driver in use: pcieport=0A=
-       Kernel modules: shpchp=0A=
-=0A=
-00:1d.0 USB Controller: Intel Corporation 6 Series/C200 Series Chipset =
-Family USB Enhanced Host Controller #1 (rev 05) (prog-if 20 [EHCI])=0A=
-       Subsystem: Intel Corporation 6 Series/C200 Series Chipset Family USB =
-Enhanced Host Controller #1=0A=
-       Flags: bus master, medium devsel, latency 0, IRQ 23=0A=
-       Memory at fbc25000 (32-bit, non-prefetchable) [size=3D1K]=0A=
-       Capabilities: [50] Power Management version 2=0A=
-       Capabilities: [58] Debug port: BAR=3D1 offset=3D00a0=0A=
-       Capabilities: [98] PCI Advanced Features=0A=
-       Kernel driver in use: ehci_hcd=0A=
-=0A=
-00:1e.0 PCI bridge: Intel Corporation 82801 PCI Bridge (rev a5) (prog-if =
-01 [Subtractive decode])=0A=
-       Flags: bus master, fast devsel, latency 0=0A=
-       Bus: primary=3D00, secondary=3D0a, subordinate=3D0b, sec-latency=3D32=0A=
-       I/O behind bridge: 0000b000-0000bfff=0A=
-       Memory behind bridge: fa000000-fa6fffff=0A=
-       Capabilities: [50] Subsystem: Intel Corporation 82801 PCI Bridge=0A=
-=0A=
-00:1f.0 ISA bridge: Intel Corporation Q67 Express Chipset Family LPC =
-Controller (rev 05)=0A=
-       Subsystem: Intel Corporation Q67 Express Chipset Family LPC Controller=0A=
-       Flags: bus master, medium devsel, latency 0=0A=
-       Capabilities: [e0] Vendor Specific Information: Len=3D0c <?>=0A=
-       Kernel modules: iTCO_wdt=0A=
-=0A=
-00:1f.2 IDE interface: Intel Corporation 6 Series/C200 Series Chipset =
-Family 4 port SATA IDE Controller (rev 05) (prog-if 8a [Master SecP =
-PriP])=0A=
-       Subsystem: Intel Corporation 6 Series/C200 Series Chipset Family 4 port =
-SATA IDE Controller=0A=
-       Flags: bus master, 66MHz, medium devsel, latency 0, IRQ 19=0A=
-       I/O ports at 01f0 [size=3D8]=0A=
-       I/O ports at 03f4 [size=3D1]=0A=
-       I/O ports at 0170 [size=3D8]=0A=
-       I/O ports at 0374 [size=3D1]=0A=
-       I/O ports at f0f0 [size=3D16]=0A=
-       I/O ports at f0e0 [size=3D16]=0A=
-       Capabilities: [70] Power Management version 3=0A=
-       Capabilities: [b0] PCI Advanced Features=0A=
-       Kernel driver in use: ata_piix=0A=
-=0A=
-00:1f.3 SMBus: Intel Corporation 6 Series/C200 Series Chipset Family =
-SMBus Controller (rev 05)=0A=
-       Subsystem: Intel Corporation 6 Series/C200 Series Chipset Family SMBus =
-Controller=0A=
-       Flags: medium devsel, IRQ 10=0A=
-       Memory at fbc24000 (64-bit, non-prefetchable) [size=3D256]=0A=
-       I/O ports at f040 [size=3D32]=0A=
-       Kernel modules: i2c-i801=0A=
-=0A=
-00:1f.5 IDE interface: Intel Corporation 6 Series/C200 Series Chipset =
-Family 2 port SATA IDE Controller (rev 05) (prog-if 85 [Master SecO =
-PriO])=0A=
-       Subsystem: Intel Corporation 6 Series/C200 Series Chipset Family 2 port =
-SATA IDE Controller=0A=
-       Flags: bus master, 66MHz, medium devsel, latency 0, IRQ 19=0A=
-       I/O ports at f0d0 [size=3D8]=0A=
-       I/O ports at f0c0 [size=3D4]=0A=
-       I/O ports at f0b0 [size=3D8]=0A=
-       I/O ports at f0a0 [size=3D4]=0A=
-       I/O ports at f090 [size=3D16]=0A=
-       I/O ports at f080 [size=3D16]=0A=
-       Capabilities: [70] Power Management version 3=0A=
-       Capabilities: [b0] PCI Advanced Features=0A=
-       Kernel driver in use: ata_piix=0A=
-=0A=
-01:00.0 PCI bridge: PLX Technology, Inc. PEX 8111 PCI Express-to-PCI =
-Bridge (rev 21) (prog-if 00 [Normal decode])=0A=
-       Flags: bus master, fast devsel, latency 0=0A=
-       Bus: primary=3D01, secondary=3D02, subordinate=3D03, sec-latency=3D32=0A=
-       I/O behind bridge: 0000e000-0000efff=0A=
-       Memory behind bridge: fb500000-fbbfffff=0A=
-       Prefetchable memory behind bridge: cfa00000-cfafffff=0A=
-       Capabilities: [50] MSI: Enable- Count=3D1/1 Maskable- 64bit+=0A=
-       Capabilities: [60] Express PCI/PCI-X Bridge, MSI 00=0A=
-       Capabilities: [100] Power Budgeting <?>=0A=
-       Kernel modules: shpchp=0A=
-=0A=
-02:02.0 Unassigned class [ff00]: National Instruments PCI-DIO-96=0A=
-       Flags: bus master, medium devsel, latency 32, IRQ 18=0A=
-       Memory at fbb00000 (32-bit, non-prefetchable) [size=3D4K]=0A=
-       Memory at fbb01000 (32-bit, non-prefetchable) [size=3D4K]=0A=
-       Kernel driver in use: pciback=0A=
-       Kernel modules: ni_pcidio=0A=
-=0A=
-02:03.0 PCI bridge: Intel Corporation 21154 PCI-to-PCI Bridge (prog-if =
-00 [Normal decode])=0A=
-       Flags: bus master, medium devsel, latency 32=0A=
-       Bus: primary=3D02, secondary=3D03, subordinate=3D03, sec-latency=3D32=0A=
-       I/O behind bridge: 0000e000-0000efff=0A=
-       Memory behind bridge: fb500000-fbafffff=0A=
-       Prefetchable memory behind bridge: 00000000cfa00000-00000000cfafffff=0A=
-       Capabilities: [dc] Power Management version 1=0A=
-       Kernel modules: shpchp=0A=
-=0A=
-03:0c.0 Ethernet controller: Intel Corporation 82557/8/9/0/1 Ethernet =
-Pro 100 (rev 08)=0A=
-       Subsystem: Intel Corporation EtherExpress PRO/100B (TX)=0A=
-       Flags: bus master, medium devsel, latency 32, IRQ 19=0A=
-       Memory at fb900000 (32-bit, non-prefetchable) [size=3D4K]=0A=
-       I/O ports at e0c0 [size=3D64]=0A=
-       Memory at fb500000 (32-bit, non-prefetchable) [size=3D1M]=0A=
-       Expansion ROM at cfa00000 [disabled] [size=3D1M]=0A=
-       Capabilities: [dc] Power Management version 2=0A=
-       Kernel driver in use: pciback=0A=
-       Kernel modules: e100=0A=
-=0A=
-03:0d.0 Ethernet controller: Intel Corporation 82557/8/9/0/1 Ethernet =
-Pro 100 (rev 08)=0A=
-       Subsystem: Intel Corporation EtherExpress PRO/100B (TX)=0A=
-       Flags: bus master, medium devsel, latency 32, IRQ 16=0A=
-       Memory at fb901000 (32-bit, non-prefetchable) [size=3D4K]=0A=
-       I/O ports at e080 [size=3D64]=0A=
-       Memory at fb600000 (32-bit, non-prefetchable) [size=3D1M]=0A=
-       Capabilities: [dc] Power Management version 2=0A=
-       Kernel driver in use: pciback=0A=
-       Kernel modules: e100=0A=
-=0A=
-03:0e.0 Ethernet controller: Intel Corporation 82557/8/9/0/1 Ethernet =
-Pro 100 (rev 08)=0A=
-       Subsystem: Intel Corporation EtherExpress PRO/100B (TX)=0A=
-       Flags: bus master, medium devsel, latency 32, IRQ 17=0A=
-       Memory at fb902000 (32-bit, non-prefetchable) [size=3D4K]=0A=
-       I/O ports at e040 [size=3D64]=0A=
-       Memory at fb700000 (32-bit, non-prefetchable) [size=3D1M]=0A=
-       Capabilities: [dc] Power Management version 2=0A=
-       Kernel driver in use: pciback=0A=
-       Kernel modules: e100=0A=
-=0A=
-03:0f.0 Ethernet controller: Intel Corporation 82557/8/9/0/1 Ethernet =
-Pro 100 (rev 08)=0A=
-       Subsystem: Intel Corporation EtherExpress PRO/100B (TX)=0A=
-       Flags: bus master, medium devsel, latency 32, IRQ 18=0A=
-       Memory at fb903000 (32-bit, non-prefetchable) [size=3D4K]=0A=
-       I/O ports at e000 [size=3D64]=0A=
-       Memory at fb800000 (32-bit, non-prefetchable) [size=3D1M]=0A=
-       Capabilities: [dc] Power Management version 2=0A=
-       Kernel driver in use: pciback=0A=
-       Kernel modules: e100=0A=
-=0A=
-04:00.0 PCI bridge: PLX Technology, Inc. PEX 8111 PCI Express-to-PCI =
-Bridge (rev 21) (prog-if 00 [Normal decode])=0A=
-       Flags: bus master, fast devsel, latency 0=0A=
-       Bus: primary=3D04, secondary=3D05, subordinate=3D06, sec-latency=3D32=0A=
-       I/O behind bridge: 0000d000-0000dfff=0A=
-       Memory behind bridge: fae00000-fb4fffff=0A=
-       Prefetchable memory behind bridge: cfb00000-cfbfffff=0A=
-       Capabilities: [50] MSI: Enable- Count=3D1/1 Maskable- 64bit+=0A=
-       Capabilities: [60] Express PCI/PCI-X Bridge, MSI 00=0A=
-       Capabilities: [100] Power Budgeting <?>=0A=
-       Kernel modules: shpchp=0A=
-=0A=
-05:01.0 Unassigned class [ff00]: National Instruments PCI-DIO-96=0A=
-       Flags: bus master, medium devsel, latency 32, IRQ 18=0A=
-       Memory at fb400000 (32-bit, non-prefetchable) [size=3D4K]=0A=
-       Memory at fb401000 (32-bit, non-prefetchable) [size=3D4K]=0A=
-       Kernel driver in use: pciback=0A=
-       Kernel modules: ni_pcidio=0A=
-=0A=
-05:02.0 PCI bridge: Intel Corporation 21154 PCI-to-PCI Bridge (prog-if =
-00 [Normal decode])=0A=
-       Flags: bus master, medium devsel, latency 32=0A=
-       Bus: primary=3D05, secondary=3D06, subordinate=3D06, sec-latency=3D32=0A=
-       I/O behind bridge: 0000d000-0000dfff=0A=
-       Memory behind bridge: fae00000-fb3fffff=0A=
-       Prefetchable memory behind bridge: 00000000cfb00000-00000000cfbfffff=0A=
-       Capabilities: [dc] Power Management version 1=0A=
-       Kernel modules: shpchp=0A=
-=0A=
-06:0c.0 Ethernet controller: Intel Corporation 82557/8/9/0/1 Ethernet =
-Pro 100 (rev 08)=0A=
-       Subsystem: Intel Corporation EtherExpress PRO/100B (TX)=0A=
-       Flags: bus master, medium devsel, latency 32, IRQ 19=0A=
-       Memory at fb200000 (32-bit, non-prefetchable) [size=3D4K]=0A=
-       I/O ports at d0c0 [size=3D64]=0A=
-       Memory at fae00000 (32-bit, non-prefetchable) [size=3D1M]=0A=
-       Expansion ROM at cfb00000 [disabled] [size=3D1M]=0A=
-       Capabilities: [dc] Power Management version 2=0A=
-       Kernel driver in use: pciback=0A=
-       Kernel modules: e100=0A=
-=0A=
-06:0d.0 Ethernet controller: Intel Corporation 82557/8/9/0/1 Ethernet =
-Pro 100 (rev 08)=0A=
-       Subsystem: Intel Corporation EtherExpress PRO/100B (TX)=0A=
-       Flags: bus master, medium devsel, latency 32, IRQ 16=0A=
-       Memory at fb201000 (32-bit, non-prefetchable) [size=3D4K]=0A=
-       I/O ports at d080 [size=3D64]=0A=
-       Memory at faf00000 (32-bit, non-prefetchable) [size=3D1M]=0A=
-       Capabilities: [dc] Power Management version 2=0A=
-       Kernel driver in use: pciback=0A=
-       Kernel modules: e100=0A=
-=0A=
-06:0e.0 Ethernet controller: Intel Corporation 82557/8/9/0/1 Ethernet =
-Pro 100 (rev 08)=0A=
-       Subsystem: Intel Corporation EtherExpress PRO/100B (TX)=0A=
-       Flags: bus master, medium devsel, latency 32, IRQ 17=0A=
-       Memory at fb202000 (32-bit, non-prefetchable) [size=3D4K]=0A=
-       I/O ports at d040 [size=3D64]=0A=
-       Memory at fb000000 (32-bit, non-prefetchable) [size=3D1M]=0A=
-       Capabilities: [dc] Power Management version 2=0A=
-       Kernel driver in use: pciback=0A=
-       Kernel modules: e100=0A=
-=0A=
-06:0f.0 Ethernet controller: Intel Corporation 82557/8/9/0/1 Ethernet =
-Pro 100 (rev 08)=0A=
-       Subsystem: Intel Corporation EtherExpress PRO/100B (TX)=0A=
-       Flags: bus master, medium devsel, latency 32, IRQ 18=0A=
-       Memory at fb203000 (32-bit, non-prefetchable) [size=3D4K]=0A=
-       I/O ports at d000 [size=3D64]=0A=
-       Memory at fb100000 (32-bit, non-prefetchable) [size=3D1M]=0A=
-       Capabilities: [dc] Power Management version 2=0A=
-       Kernel driver in use: pciback=0A=
-       Kernel modules: e100=0A=
-=0A=
-07:00.0 PCI bridge: PLX Technology, Inc. PEX 8111 PCI Express-to-PCI =
-Bridge (rev 21) (prog-if 00 [Normal decode])=0A=
-       Flags: bus master, fast devsel, latency 0=0A=
-       Bus: primary=3D07, secondary=3D08, subordinate=3D09, sec-latency=3D32=0A=
-       I/O behind bridge: 0000c000-0000cfff=0A=
-       Memory behind bridge: fa700000-fadfffff=0A=
-       Prefetchable memory behind bridge: cfc00000-cfcfffff=0A=
-       Capabilities: [50] MSI: Enable- Count=3D1/1 Maskable- 64bit+=0A=
-       Capabilities: [60] Express PCI/PCI-X Bridge, MSI 00=0A=
-       Capabilities: [100] Power Budgeting <?>=0A=
-       Kernel modules: shpchp=0A=
-=0A=
-08:00.0 Unassigned class [ff00]: National Instruments PCI-DIO-96=0A=
-       Flags: medium devsel, IRQ 18=0A=
-       Memory at fad00000 (32-bit, non-prefetchable) [disabled] [size=3D4K]=0A=
-       Memory at fad01000 (32-bit, non-prefetchable) [disabled] [size=3D4K]=0A=
-       Kernel driver in use: pciback=0A=
-       Kernel modules: ni_pcidio=0A=
-=0A=
-08:02.0 PCI bridge: Intel Corporation 21154 PCI-to-PCI Bridge (prog-if =
-00 [Normal decode])=0A=
-       Flags: bus master, medium devsel, latency 32=0A=
-       Bus: primary=3D08, secondary=3D09, subordinate=3D09, sec-latency=3D32=0A=
-       I/O behind bridge: 0000c000-0000cfff=0A=
-       Memory behind bridge: fa700000-facfffff=0A=
-       Prefetchable memory behind bridge: 00000000cfc00000-00000000cfcfffff=0A=
-       Capabilities: [dc] Power Management version 1=0A=
-       Kernel modules: shpchp=0A=
-=0A=
-09:0c.0 Ethernet controller: Intel Corporation 82557/8/9/0/1 Ethernet =
-Pro 100 (rev 08)=0A=
-       Subsystem: Intel Corporation EtherExpress PRO/100B (TX)=0A=
-       Flags: medium devsel, IRQ 16=0A=
-       Memory at fab00000 (32-bit, non-prefetchable) [disabled] [size=3D4K]=0A=
-       I/O ports at c0c0 [disabled] [size=3D64]=0A=
-       Memory at fa700000 (32-bit, non-prefetchable) [disabled] [size=3D1M]=0A=
-       Expansion ROM at cfc00000 [disabled] [size=3D1M]=0A=
-       Capabilities: [dc] Power Management version 2=0A=
-       Kernel driver in use: pciback=0A=
-       Kernel modules: e100=0A=
-=0A=
-09:0d.0 Ethernet controller: Intel Corporation 82557/8/9/0/1 Ethernet =
-Pro 100 (rev 08)=0A=
-       Subsystem: Intel Corporation EtherExpress PRO/100B (TX)=0A=
-       Flags: medium devsel, IRQ 17=0A=
-       Memory at fab01000 (32-bit, non-prefetchable) [disabled] [size=3D4K]=0A=
-       I/O ports at c080 [disabled] [size=3D64]=0A=
-       Memory at fa800000 (32-bit, non-prefetchable) [disabled] [size=3D1M]=0A=
-       Capabilities: [dc] Power Management version 2=0A=
-       Kernel driver in use: pciback=0A=
-       Kernel modules: e100=0A=
-=0A=
-09:0e.0 Ethernet controller: Intel Corporation 82557/8/9/0/1 Ethernet =
-Pro 100 (rev 08)=0A=
-       Subsystem: Intel Corporation EtherExpress PRO/100B (TX)=0A=
-       Flags: medium devsel, IRQ 18=0A=
-       Memory at fab02000 (32-bit, non-prefetchable) [disabled] [size=3D4K]=0A=
-       I/O ports at c040 [disabled] [size=3D64]=0A=
-       Memory at fa900000 (32-bit, non-prefetchable) [disabled] [size=3D1M]=0A=
-       Capabilities: [dc] Power Management version 2=0A=
-       Kernel driver in use: pciback=0A=
-       Kernel modules: e100=0A=
-=0A=
-09:0f.0 Ethernet controller: Intel Corporation 82557/8/9/0/1 Ethernet =
-Pro 100 (rev 08)=0A=
-       Subsystem: Intel Corporation EtherExpress PRO/100B (TX)=0A=
-       Flags: medium devsel, IRQ 19=0A=
-       Memory at fab03000 (32-bit, non-prefetchable) [disabled] [size=3D4K]=0A=
-       I/O ports at c000 [disabled] [size=3D64]=0A=
-       Memory at faa00000 (32-bit, non-prefetchable) [disabled] [size=3D1M]=0A=
-       Capabilities: [dc] Power Management version 2=0A=
-       Kernel driver in use: pciback=0A=
-       Kernel modules: e100=0A=
-=0A=
-0a:0c.0 Unassigned class [ff00]: National Instruments PCI-DIO-96=0A=
-       Flags: bus master, medium devsel, latency 32, IRQ 20=0A=
-       Memory at fa601000 (32-bit, non-prefetchable) [size=3D4K]=0A=
-       Memory at fa600000 (32-bit, non-prefetchable) [size=3D4K]=0A=
-       Kernel driver in use: ni_pcidio=0A=
-       Kernel modules: ni_pcidio=0A=
-=0A=
-0a:0f.0 PCI bridge: Intel Corporation 21154 PCI-to-PCI Bridge (prog-if =
-00 [Normal decode])=0A=
-       Flags: bus master, medium devsel, latency 32=0A=
-       Bus: primary=3D0a, secondary=3D0b, subordinate=3D0b, sec-latency=3D32=0A=
-       I/O behind bridge: 0000b000-0000bfff=0A=
-       Memory behind bridge: fa000000-fa5fffff=0A=
-       Capabilities: [dc] Power Management version 1=0A=
-       Kernel modules: shpchp=0A=
-=0A=
-0b:0c.0 Ethernet controller: Intel Corporation 82557/8/9/0/1 Ethernet =
-Pro 100 (rev 08)=0A=
-       Subsystem: Intel Corporation EtherExpress PRO/100B (TX)=0A=
-       Flags: medium devsel, IRQ 21=0A=
-       Memory at fa503000 (32-bit, non-prefetchable) [size=3D4K]=0A=
-       I/O ports at b0c0 [size=3D64]=0A=
-       Memory at fa400000 (32-bit, non-prefetchable) [size=3D1M]=0A=
-       Expansion ROM at fa300000 [disabled] [size=3D1M]=0A=
-       Capabilities: [dc] Power Management version 2=0A=
-       Kernel modules: e100=0A=
-=0A=
-0b:0d.0 Ethernet controller: Intel Corporation 82557/8/9/0/1 Ethernet =
-Pro 100 (rev 08)=0A=
-       Subsystem: Intel Corporation EtherExpress PRO/100B (TX)=0A=
-       Flags: medium devsel, IRQ 22=0A=
-       Memory at fa502000 (32-bit, non-prefetchable) [size=3D4K]=0A=
-       I/O ports at b080 [size=3D64]=0A=
-       Memory at fa200000 (32-bit, non-prefetchable) [size=3D1M]=0A=
-       Capabilities: [dc] Power Management version 2=0A=
-       Kernel modules: e100=0A=
-=0A=
-0b:0e.0 Ethernet controller: Intel Corporation 82557/8/9/0/1 Ethernet =
-Pro 100 (rev 08)=0A=
-       Subsystem: Intel Corporation EtherExpress PRO/100B (TX)=0A=
-       Flags: bus master, medium devsel, latency 32, IRQ 23=0A=
-       Memory at fa501000 (32-bit, non-prefetchable) [size=3D4K]=0A=
-       I/O ports at b040 [size=3D64]=0A=
-       Memory at fa100000 (32-bit, non-prefetchable) [size=3D1M]=0A=
-       Capabilities: [dc] Power Management version 2=0A=
-       Kernel driver in use: e100=0A=
-       Kernel modules: e100=0A=
-=0A=
-0b:0f.0 Ethernet controller: Intel Corporation 82557/8/9/0/1 Ethernet =
-Pro 100 (rev 08)=0A=
-       Subsystem: Intel Corporation EtherExpress PRO/100B (TX)=0A=
-       Flags: bus master, medium devsel, latency 32, IRQ 20=0A=
-       Memory at fa500000 (32-bit, non-prefetchable) [size=3D4K]=0A=
-       I/O ports at b000 [size=3D64]=0A=
-       Memory at fa000000 (32-bit, non-prefetchable) [size=3D1M]=0A=
-       Capabilities: [dc] Power Management version 2=0A=
-       Kernel driver in use: e100=0A=
-       Kernel modules: e100=0A=
-=0A=
-
-------=_NextPart_000_0024_01CD591D.0D3DCCD0
-Content-Type: application/octet-stream;
-       name="qnx_1.config"
-Content-Transfer-Encoding: quoted-printable
-Content-Disposition: attachment;
-       filename="qnx_1.config"
-
-name         =3D 'QNX_1'=0A=
-builder      =3D 'hvm'=0A=
-kernel       =3D '/usr/lib/xen-default/boot/hvmloader'=0A=
-boot=3D"c" =0A=
-memory =3D 1024 =0A=
-vcpus        =3D '1'=0A=
-cpus         =3D '4'=0A=
-=0A=
-on_poweroff =3D 'destroy' =0A=
-on_reboot =3D 'restart' =0A=
-on_crash =3D 'restart'=0A=
-=0A=
-pae=3D1 =0A=
-acpi=3D1 =0A=
-apic=3D1  =0A=
-device_model =3D '/usr/lib64/xen/bin/qemu-dm' =0A=
-disk =3D ['file:/mnt/img_gum/QNX_1.img,hda,w']=0A=
-usbdevice=3D'mouse' =0A=
-serial=3D'pty'=0A=
-vnc=3D1 =0A=
-vncpasswd=3D''=0A=
-pci =3D ['0c:0c.0','0d:0c.0','0d:0d.0','0d:0e.0','0d:0f.0']=0A=
-=0A=
-=0A=
-=0A=
-=0A=
-
-------=_NextPart_000_0024_01CD591D.0D3DCCD0
-Content-Type: text/plain;
-       name="xm_dmesg.txt"
-Content-Transfer-Encoding: quoted-printable
-Content-Disposition: attachment;
-       filename="xm_dmesg.txt"
-
-(XEN) Xen version 4.1.1 (Ubuntu 4.1.1-2ubuntu4.1) (zulcss@ubuntu.com) =
-(gcc version 4.6.1 (Ubuntu/Linaro 4.6.1-9ubuntu3) ) Tue Oct 11 07:31:13 =
-UTC 2011=0A=
-(XEN) Bootloader: GRUB 1.99-12ubuntu5-1linuxmint1=0A=
-(XEN) Command line: placeholder dom0_mem=3D2G,max:2G dom0_max_vcpus=3D4 =
-dom0_vcpus_pin=3Dtrue loglevel=3Dall guest_lvl=3Dall iommu=3Dverbose=0A=
-(XEN) Video information:=0A=
-(XEN)  VGA is text mode 80x25, font 8x16=0A=
-(XEN)  VBE/DDC methods: V2; EDID transfer time: 1 seconds=0A=
-(XEN) Disc information:=0A=
-(XEN)  Found 4 MBR signatures=0A=
-(XEN)  Found 4 EDD information structures=0A=
-(XEN) Xen-e820 RAM map:=0A=
-(XEN)  0000000000000000 - 000000000009ec00 (usable)=0A=
-(XEN)  000000000009ec00 - 00000000000a0000 (reserved)=0A=
-(XEN)  00000000000e0000 - 0000000000100000 (reserved)=0A=
-(XEN)  0000000000100000 - 0000000020000000 (usable)=0A=
-(XEN)  0000000020000000 - 0000000020200000 (reserved)=0A=
-(XEN)  0000000020200000 - 0000000040000000 (usable)=0A=
-(XEN)  0000000040000000 - 0000000040200000 (reserved)=0A=
-(XEN)  0000000040200000 - 00000000cad18000 (usable)=0A=
-(XEN)  00000000cad18000 - 00000000cad21000 (ACPI data)=0A=
-(XEN)  00000000cad21000 - 00000000cad6e000 (ACPI NVS)=0A=
-(XEN)  00000000cad6e000 - 00000000cad76000 (usable)=0A=
-(XEN)  00000000cad76000 - 00000000cad89000 (reserved)=0A=
-(XEN)  00000000cad89000 - 00000000cad8a000 (ACPI NVS)=0A=
-(XEN)  00000000cad8a000 - 00000000cad9b000 (reserved)=0A=
-(XEN)  00000000cad9b000 - 00000000cad9e000 (ACPI NVS)=0A=
-(XEN)  00000000cad9e000 - 00000000cadc8000 (reserved)=0A=
-(XEN)  00000000cadc8000 - 00000000cadca000 (usable)=0A=
-(XEN)  00000000cadca000 - 00000000cae06000 (reserved)=0A=
-(XEN)  00000000cae06000 - 00000000cae14000 (ACPI NVS)=0A=
-(XEN)  00000000cae14000 - 00000000cae39000 (reserved)=0A=
-(XEN)  00000000cae39000 - 00000000cae7c000 (ACPI NVS)=0A=
-(XEN)  00000000cae7c000 - 00000000cb000000 (usable)=0A=
-(XEN)  00000000cb800000 - 00000000cfa00000 (reserved)=0A=
-(XEN)  00000000fed1c000 - 00000000fed40000 (reserved)=0A=
-(XEN)  00000000ff000000 - 0000000100000000 (reserved)=0A=
-(XEN)  0000000100000000 - 000000022e600000 (usable)=0A=
-(XEN) ACPI: RSDP 000F0450, 0024 (r2 ALASKA)=0A=
-(XEN) ACPI: XSDT CAD18080, 007C (r1 ALASKA    A M I  1072009 AMI     =
-10013)=0A=
-(XEN) ACPI: FACP CAD1F9F8, 00F4 (r4 ALASKA    A M I  1072009 AMI     =
-10013)=0A=
-(XEN) ACPI: DSDT CAD18188, 786D (r2 ALASKA    A M I       16 INTL =
-20051117)=0A=
-(XEN) ACPI: FACS CAE0BF80, 0040=0A=
-(XEN) ACPI: APIC CAD1FAF0, 0092 (r3 ALASKA    A M I  1072009 AMI     =
-10013)=0A=
-(XEN) ACPI: SSDT CAD1FB88, 01D6 (r1 AMICPU     PROC        1 MSFT  =
-3000001)=0A=
-(XEN) ACPI: MCFG CAD1FD60, 003C (r1 ALASKA    A M I  1072009 MSFT       =
-97)=0A=
-(XEN) ACPI: HPET CAD1FDA0, 0038 (r1 ALASKA    A M I  1072009 AMI.        =
-4)=0A=
-(XEN) ACPI: ASF! CAD1FDD8, 00A0 (r32 INTEL       HCG        1 TFSM    =
-F4240)=0A=
-(XEN) ACPI: DMAR CAD1FE78, 00E8 (r1 ALASKA    A M I        1 INTL        =
-1)=0A=
-(XEN) ACPI: EINJ CAD1FF60, 0130 (r1    AMI AMI EINJ        0             =
-0)=0A=
-(XEN) ACPI: ERST CAD20090, 0210 (r1  AMIER AMI ERST        0             =
-0)=0A=
-(XEN) ACPI: HEST CAD202A0, 00A8 (r1    AMI AMI HEST        0             =
-0)=0A=
-(XEN) ACPI: BERT CAD20348, 0030 (r1    AMI AMI BERT        0             =
-0)=0A=
-(XEN) System RAM: 8080MB (8274192kB)=0A=
-(XEN) Domain heap initialised=0A=
-(XEN) ACPI: 32/64X FACS address mismatch in FADT - =
-cae0bf80/0000000000000000, using 32=0A=
-(XEN) Processor #0 6:10 APIC version 21=0A=
-(XEN) Processor #2 6:10 APIC version 21=0A=
-(XEN) Processor #4 6:10 APIC version 21=0A=
-(XEN) Processor #6 6:10 APIC version 21=0A=
-(XEN) Processor #1 6:10 APIC version 21=0A=
-(XEN) Processor #3 6:10 APIC version 21=0A=
-(XEN) Processor #5 6:10 APIC version 21=0A=
-(XEN) Processor #7 6:10 APIC version 21=0A=
-(XEN) IOAPIC[0]: apic_id 0, version 32, address 0xfec00000, GSI 0-23=0A=
-(XEN) Enabling APIC mode:  Flat.  Using 1 I/O APICs=0A=
-(XEN) [VT-D]dmar.c:702: Host address width 36=0A=
-(XEN) [VT-D]dmar.c:717: found ACPI_DMAR_DRHD:=0A=
-(XEN) [VT-D]dmar.c:413:   dmaru->address =3D fed90000=0A=
-(XEN) [VT-D]iommu.c:1114: drhd->address =3D fed90000 iommu->reg =3D =
-ffff82c3fff57000=0A=
-(XEN) [VT-D]iommu.c:1116: cap =3D c0000020e60262 ecap =3D f0101a=0A=
-(XEN) [VT-D]dmar.c:341:   endpoint: 0:2.0=0A=
-(XEN) [VT-D]dmar.c:717: found ACPI_DMAR_DRHD:=0A=
-(XEN) [VT-D]dmar.c:413:   dmaru->address =3D fed91000=0A=
-(XEN) [VT-D]iommu.c:1114: drhd->address =3D fed91000 iommu->reg =3D =
-ffff82c3fff56000=0A=
-(XEN) [VT-D]iommu.c:1116: cap =3D c9008020660262 ecap =3D f0105a=0A=
-(XEN) [VT-D]dmar.c:356:   IOAPIC: f0:1f.0=0A=
-(XEN) [VT-D]dmar.c:335:   MSI HPET: f0:f.0=0A=
-(XEN) [VT-D]dmar.c:335:   MSI HPET: f0:f.1=0A=
-(XEN) [VT-D]dmar.c:335:   MSI HPET: f0:f.2=0A=
-(XEN) [VT-D]dmar.c:335:   MSI HPET: f0:f.3=0A=
-(XEN) [VT-D]dmar.c:335:   MSI HPET: f0:f.4=0A=
-(XEN) [VT-D]dmar.c:335:   MSI HPET: f0:f.5=0A=
-(XEN) [VT-D]dmar.c:335:   MSI HPET: f0:f.6=0A=
-(XEN) [VT-D]dmar.c:335:   MSI HPET: f0:f.7=0A=
-(XEN) [VT-D]dmar.c:427:   flags: INCLUDE_ALL=0A=
-(XEN) [VT-D]dmar.c:722: found ACPI_DMAR_RMRR:=0A=
-(XEN) [VT-D]dmar.c:341:   endpoint: 0:1d.0=0A=
-(XEN) [VT-D]dmar.c:341:   endpoint: 0:1a.0=0A=
-(XEN) [VT-D]dmar.c:594:   RMRR region: base_addr cada0000 end_address =
-cadbefff=0A=
-(XEN) [VT-D]dmar.c:722: found ACPI_DMAR_RMRR:=0A=
-(XEN) [VT-D]dmar.c:341:   endpoint: 0:2.0=0A=
-(XEN) [VT-D]dmar.c:594:   RMRR region: base_addr cb800000 end_address =
-cf9fffff=0A=
-(XEN) ERST table is invalid=0A=
-(XEN) Switched to APIC driver x2apic_cluster.=0A=
-(XEN) Using scheduler: SMP Credit Scheduler (credit)=0A=
-(XEN) Detected 3392.357 MHz processor.=0A=
-(XEN) Initing memory sharing.=0A=
-(XEN) Intel VT-d Snoop Control not enabled.=0A=
-(XEN) Intel VT-d Dom0 DMA Passthrough not enabled.=0A=
-(XEN) Intel VT-d Queued Invalidation enabled.=0A=
-(XEN) Intel VT-d Interrupt Remapping enabled.=0A=
-(XEN) Intel VT-d Shared EPT tables not enabled.=0A=
-(XEN) I/O virtualisation enabled=0A=
-(XEN)  - Dom0 mode: Relaxed=0A=
-(XEN) Enabled directed EOI with ioapic_ack_old on!=0A=
-(XEN) ENABLING IO-APIC IRQs=0A=
-(XEN)  -> Using old ACK method=0A=
-(XEN) Platform timer is 14.318MHz HPET=0A=
-(XEN) Allocated console ring of 16 KiB.=0A=
-(XEN) VMX: Supported advanced features:=0A=
-(XEN)  - APIC MMIO access virtualisation=0A=
-(XEN)  - APIC TPR shadow=0A=
-(XEN)  - Extended Page Tables (EPT)=0A=
-(XEN)  - Virtual-Processor Identifiers (VPID)=0A=
-(XEN)  - Virtual NMI=0A=
-(XEN)  - MSR direct-access bitmap=0A=
-(XEN)  - Unrestricted Guest=0A=
-(XEN) EPT supports 2MB super page.=0A=
-(XEN) HVM: ASIDs enabled.=0A=
-(XEN) HVM: VMX enabled=0A=
-(XEN) HVM: Hardware Assisted Paging detected.=0A=
-(XEN) Brought up 8 CPUs=0A=
-(XEN) *** LOADING DOMAIN 0 ***=0A=
-(XEN)  Xen  kernel: 64-bit, lsb, compat32=0A=
-(XEN)  Dom0 kernel: 64-bit, PAE, lsb, paddr 0x1000000 -> 0x204e000=0A=
-(XEN) PHYSICAL MEMORY ARRANGEMENT:=0A=
-(XEN)  Dom0 alloc.:   0000000220000000->0000000224000000 (498822 pages =
-to be allocated)=0A=
-(XEN)  Init. ramdisk: 000000022c286000->000000022e5ff800=0A=
-(XEN) VIRTUAL MEMORY ARRANGEMENT:=0A=
-(XEN)  Loaded kernel: ffffffff81000000->ffffffff8204e000=0A=
-(XEN)  Init. ramdisk: ffffffff8204e000->ffffffff843c7800=0A=
-(XEN)  Phys-Mach map: ffffffff843c8000->ffffffff847c8000=0A=
-(XEN)  Start info:    ffffffff847c8000->ffffffff847c84b4=0A=
-(XEN)  Page tables:   ffffffff847c9000->ffffffff847f2000=0A=
-(XEN)  Boot stack:    ffffffff847f2000->ffffffff847f3000=0A=
-(XEN)  TOTAL:         ffffffff80000000->ffffffff84c00000=0A=
-(XEN)  ENTRY ADDRESS: ffffffff81cde200=0A=
-(XEN) Dom0 has maximum 4 VCPUs=0A=
-(XEN) [VT-D]iommu.c:1376: d0:PCI: map bdf =3D 0:0.0=0A=
-(XEN) [VT-D]iommu.c:1376: d0:PCI: map bdf =3D 0:2.0=0A=
-(XEN) [VT-D]iommu.c:1376: d0:PCI: map bdf =3D 0:16.0=0A=
-(XEN) [VT-D]iommu.c:1376: d0:PCI: map bdf =3D 0:16.2=0A=
-(XEN) [VT-D]iommu.c:1376: d0:PCI: map bdf =3D 0:16.3=0A=
-(XEN) [VT-D]iommu.c:1376: d0:PCI: map bdf =3D 0:19.0=0A=
-(XEN) [VT-D]iommu.c:1376: d0:PCI: map bdf =3D 0:1a.0=0A=
-(XEN) [VT-D]iommu.c:1366: d0:PCIe: map bdf =3D 0:1b.0=0A=
-(XEN) [VT-D]iommu.c:1376: d0:PCI: map bdf =3D 0:1d.0=0A=
-(XEN) [VT-D]iommu.c:1376: d0:PCI: map bdf =3D 0:1f.0=0A=
-(XEN) [VT-D]iommu.c:1376: d0:PCI: map bdf =3D 0:1f.2=0A=
-(XEN) [VT-D]iommu.c:1376: d0:PCI: map bdf =3D 0:1f.3=0A=
-(XEN) [VT-D]iommu.c:1376: d0:PCI: map bdf =3D 0:1f.5=0A=
-(XEN) [VT-D]iommu.c:1376: d0:PCI: map bdf =3D 2:2.0=0A=
-(XEN) [VT-D]iommu.c:1376: d0:PCI: map bdf =3D 3:c.0=0A=
-(XEN) [VT-D]iommu.c:1376: d0:PCI: map bdf =3D 3:d.0=0A=
-(XEN) [VT-D]iommu.c:1376: d0:PCI: map bdf =3D 3:e.0=0A=
-(XEN) [VT-D]iommu.c:1376: d0:PCI: map bdf =3D 3:f.0=0A=
-(XEN) [VT-D]iommu.c:1376: d0:PCI: map bdf =3D 5:1.0=0A=
-(XEN) [VT-D]iommu.c:1376: d0:PCI: map bdf =3D 6:c.0=0A=
-(XEN) [VT-D]iommu.c:1376: d0:PCI: map bdf =3D 6:d.0=0A=
-(XEN) [VT-D]iommu.c:1376: d0:PCI: map bdf =3D 6:e.0=0A=
-(XEN) [VT-D]iommu.c:1376: d0:PCI: map bdf =3D 6:f.0=0A=
-(XEN) [VT-D]iommu.c:1376: d0:PCI: map bdf =3D 8:0.0=0A=
-(XEN) [VT-D]iommu.c:1376: d0:PCI: map bdf =3D 9:c.0=0A=
-(XEN) [VT-D]iommu.c:1376: d0:PCI: map bdf =3D 9:d.0=0A=
-(XEN) [VT-D]iommu.c:1376: d0:PCI: map bdf =3D 9:e.0=0A=
-(XEN) [VT-D]iommu.c:1376: d0:PCI: map bdf =3D 9:f.0=0A=
-(XEN) [VT-D]iommu.c:1376: d0:PCI: map bdf =3D a:c.0=0A=
-(XEN) [VT-D]iommu.c:1376: d0:PCI: map bdf =3D b:c.0=0A=
-(XEN) [VT-D]iommu.c:1376: d0:PCI: map bdf =3D b:d.0=0A=
-(XEN) [VT-D]iommu.c:1376: d0:PCI: map bdf =3D b:e.0=0A=
-(XEN) [VT-D]iommu.c:1376: d0:PCI: map bdf =3D b:f.0=0A=
-(XEN) [VT-D]iommu.c:721: iommu_enable_translation: iommu->reg =3D =
-ffff82c3fff57000=0A=
-(XEN) [VT-D]iommu.c:721: iommu_enable_translation: iommu->reg =3D =
-ffff82c3fff56000=0A=
-(XEN) Scrubbing Free RAM: =
-...........................................................done.=0A=
-(XEN) Xen trace buffers: disabled=0A=
-(XEN) Std. Loglevel: Errors and warnings=0A=
-(XEN) Guest Loglevel: Nothing (Rate-limited: Errors and warnings)=0A=
-(XEN) Xen is relinquishing VGA console.=0A=
-(XEN) *** Serial input -> DOM0 (type 'CTRL-a' three times to switch =
-input to Xen)=0A=
-(XEN) Freed 224kB init memory.=0A=
-(XEN) physdev.c:155: dom0: wrong map_pirq type 3=0A=
-(XEN) [VT-D]iommu.c:1503: d0:PCI: unmap bdf =3D 2:2.0=0A=
-(XEN) [VT-D]iommu.c:1376: d10:PCI: map bdf =3D 2:2.0=0A=
-(XEN) [VT-D]io.c:303: d10: bind: m_gsi=3D16 g_gsi=3D32 device=3D4 =
-intx=3D0=0A=
-(XEN) [VT-D]iommu.c:1503: d0:PCI: unmap bdf =3D 3:c.0=0A=
-(XEN) [VT-D]iommu.c:1376: d10:PCI: map bdf =3D 3:c.0=0A=
-(XEN) [VT-D]io.c:303: d10: bind: m_gsi=3D17 g_gsi=3D36 device=3D5 =
-intx=3D0=0A=
-(XEN) [VT-D]iommu.c:1503: d0:PCI: unmap bdf =3D 3:d.0=0A=
-(XEN) [VT-D]iommu.c:1376: d10:PCI: map bdf =3D 3:d.0=0A=
-(XEN) [VT-D]io.c:303: d10: bind: m_gsi=3D18 g_gsi=3D40 device=3D6 =
-intx=3D0=0A=
-(XEN) [VT-D]iommu.c:1503: d0:PCI: unmap bdf =3D 3:e.0=0A=
-(XEN) [VT-D]iommu.c:1376: d10:PCI: map bdf =3D 3:e.0=0A=
-(XEN) [VT-D]io.c:303: d10: bind: m_gsi=3D19 g_gsi=3D44 device=3D7 =
-intx=3D0=0A=
-(XEN) [VT-D]iommu.c:1503: d0:PCI: unmap bdf =3D 3:f.0=0A=
-(XEN) [VT-D]iommu.c:1376: d10:PCI: map bdf =3D 3:f.0=0A=
-(XEN) physdev.c:170: dom10: 18:-1 already mapped to 16=0A=
-(XEN) [VT-D]io.c:303: d10: bind: m_gsi=3D16 g_gsi=3D17 device=3D8 =
-intx=3D0=0A=
-(XEN) [VT-D]iommu.c:1503: d0:PCI: unmap bdf =3D 5:1.0=0A=
-(XEN) [VT-D]iommu.c:1376: d11:PCI: map bdf =3D 5:1.0=0A=
-(XEN) [VT-D]io.c:303: d11: bind: m_gsi=3D16 g_gsi=3D32 device=3D4 =
-intx=3D0=0A=
-(XEN) [VT-D]iommu.c:1503: d0:PCI: unmap bdf =3D 6:c.0=0A=
-(XEN) [VT-D]iommu.c:1376: d11:PCI: map bdf =3D 6:c.0=0A=
-(XEN) [VT-D]io.c:303: d11: bind: m_gsi=3D17 g_gsi=3D36 device=3D5 =
-intx=3D0=0A=
-(XEN) [VT-D]iommu.c:1503: d0:PCI: unmap bdf =3D 6:d.0=0A=
-(XEN) [VT-D]iommu.c:1376: d11:PCI: map bdf =3D 6:d.0=0A=
-(XEN) [VT-D]io.c:303: d11: bind: m_gsi=3D18 g_gsi=3D40 device=3D6 =
-intx=3D0=0A=
-(XEN) [VT-D]iommu.c:1503: d0:PCI: unmap bdf =3D 6:e.0=0A=
-(XEN) [VT-D]iommu.c:1376: d11:PCI: map bdf =3D 6:e.0=0A=
-(XEN) [VT-D]io.c:303: d11: bind: m_gsi=3D19 g_gsi=3D44 device=3D7 =
-intx=3D0=0A=
-(XEN) [VT-D]iommu.c:1503: d0:PCI: unmap bdf =3D 6:f.0=0A=
-(XEN) [VT-D]iommu.c:1376: d11:PCI: map bdf =3D 6:f.0=0A=
-(XEN) physdev.c:170: dom11: 18:-1 already mapped to 16=0A=
-(XEN) [VT-D]io.c:303: d11: bind: m_gsi=3D16 g_gsi=3D17 device=3D8 =
-intx=3D0=0A=
-
-------=_NextPart_000_0024_01CD591D.0D3DCCD0
-Content-Type: text/plain;
-       name="xm_info.txt"
-Content-Transfer-Encoding: quoted-printable
-Content-Disposition: attachment;
-       filename="xm_info.txt"
-
-host                   : perso=0A=
-release                : 3.2.16-perso=0A=
-version                : #1 SMP Wed Apr 25 15:58:53 CEST 2012=0A=
-machine                : x86_64=0A=
-nr_cpus                : 8=0A=
-nr_nodes               : 1=0A=
-cores_per_socket       : 4=0A=
-threads_per_core       : 2=0A=
-cpu_mhz                : 3392=0A=
-hw_caps                : =
-bfebfbff:28100800:00000000:00003f40:13bae3ff:00000000:00000001:00000000=0A=
-virt_caps              : hvm hvm_directio=0A=
-total_memory           : 8079=0A=
-free_memory            : 5920=0A=
-free_cpus              : 0=0A=
-xen_major              : 4=0A=
-xen_minor              : 1=0A=
-xen_extra              : .1=0A=
-xen_caps               : xen-3.0-x86_64 xen-3.0-x86_32p hvm-3.0-x86_32 =
-hvm-3.0-x86_32p hvm-3.0-x86_64 =0A=
-xen_scheduler          : credit=0A=
-xen_pagesize           : 4096=0A=
-platform_params        : virt_start=3D0xffff800000000000=0A=
-xen_changeset          : unavailable=0A=
-xen_commandline        : placeholder dom0_mem=3D2G,max:2G =
-dom0_max_vcpus=3D4 dom0_vcpus_pin=3Dtrue=0A=
-cc_compiler            : gcc version 4.6.1 (Ubuntu/Linaro =
-4.6.1-9ubuntu3) =0A=
-cc_compile_by          : zulcss=0A=
-cc_compile_domain      : ubuntu.com=0A=
-cc_compile_date        : Tue Oct 11 07:31:13 UTC 2011=0A=
-xend_config_format     : 4=0A=
-
-------=_NextPart_000_0024_01CD591D.0D3DCCD0
-Content-Type: text/plain;
-       name="xm_pci_list_assi.txt"
-Content-Transfer-Encoding: quoted-printable
-Content-Disposition: attachment;
-       filename="xm_pci_list_assi.txt"
-
-0000:0c:0c.0=0A=
-0000:0d:0c.0=0A=
-0000:0d:0d.0=0A=
-0000:0d:0e.0=0A=
-0000:0d:0f.0=0A=
-0000:08:00.0=0A=
-0000:09:0c.0=0A=
-0000:09:0d.0=0A=
-0000:09:0e.0=0A=
-0000:09:0f.0=0A=
-0000:05:01.0=0A=
-0000:06:0c.0=0A=
-0000:06:0d.0=0A=
-0000:06:0e.0=0A=
-0000:06:0f.0=0A=
-0000:02:02.0=0A=
-0000:03:0c.0=0A=
-0000:03:0d.0=0A=
-0000:03:0e.0=0A=
-0000:03:0f.0=0A=
-
-------=_NextPart_000_0024_01CD591D.0D3DCCD0
-Content-Type: text/plain; charset="us-ascii"
-MIME-Version: 1.0
-Content-Transfer-Encoding: 7bit
-Content-Disposition: inline
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
-------=_NextPart_000_0024_01CD591D.0D3DCCD0--
-
-
-
diff --git a/test/corpus/<003501cd6010$224d58d0$66e80a70$@core.kaist.ac.kr> b/test/corpus/<003501cd6010$224d58d0$66e80a70$@core.kaist.ac.kr>
deleted file mode 100644 (file)
index 5081749..0000000
+++ /dev/null
@@ -1,150 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Jul 12 10:29:44 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 12 Jul 2012 10:29:44 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SpFiM-0004Dc-RS
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 12 Jul 2012 10:29:44 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SpFdj-0006zB-9o; Thu, 12 Jul 2012 09:24:51 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <cmkim@core.kaist.ac.kr>) id 1SpFdg-0006z6-PV
-       for xen-devel@lists.xen.org; Thu, 12 Jul 2012 09:24:48 +0000
-Received: from [85.158.143.99:64740] by server-1.bemta-4.messagelabs.com id
-       01/8E-24392-0E79EFF4; Thu, 12 Jul 2012 09:24:48 +0000
-X-Env-Sender: cmkim@core.kaist.ac.kr
-X-Msg-Ref: server-9.tower-216.messagelabs.com!1342085083!28456064!1
-X-Originating-IP: [143.248.147.118]
-X-SpamReason: No, hits=0.0 required=7.0 tests=
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.2; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 8603 invoked from network); 12 Jul 2012 09:24:47 -0000
-Received: from core.kaist.ac.kr (HELO core.kaist.ac.kr) (143.248.147.118)
-       by server-9.tower-216.messagelabs.com with DHE-RSA-AES256-SHA encrypted
-       SMTP; 12 Jul 2012 09:24:47 -0000
-Received: from CHULMINKIMPC (az.kaist.ac.kr [143.248.165.115])
-       by core.kaist.ac.kr (8.14.4/8.14.4) with ESMTP id q6C9NfOB023758
-       for <xen-devel@lists.xen.org>; Thu, 12 Jul 2012 18:23:41 +0900
-From: "Chulmin Kim" <cmkim@core.kaist.ac.kr>
-To: <xen-devel@lists.xen.org>
-References: <008601cd5f45$6eff7530$4cfe5f90$@core.kaist.ac.kr>
-       <4FFD4C06.7090403@citrix.com>
-       <001301cd5fc1$818953c0$849bfb40$@core.kaist.ac.kr>
-       <4FFE93DE.5020608@citrix.com> 
-In-Reply-To: 
-Date: Thu, 12 Jul 2012 18:24:26 +0900
-Message-ID: <003501cd6010$224d58d0$66e80a70$@core.kaist.ac.kr>
-MIME-Version: 1.0
-X-Mailer: Microsoft Outlook 14.0
-Thread-Index: AQHi8tnKuE7rNn5GUJad1LRMsZtYjQI/riFrAgtScjICNUoge5bGNoyggAABlnA=
-Content-Language: ko
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: [Xen-devel] FW:  maximum memory size allocated by _xmalloc
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-> On 12/07/12 01:01, Chulmin Kim wrote:
-> >> On 11/07/12 10:13, Chulmin Kim wrote:
-> >>> Hi all,
-> >>>
-> >>> I'm currently inserting my own code to adjust the several existing 
-> >>> memory ballooning works.
-> >>>
-> >>> To accomplish it, I manage some kind of statistics in Xen memory area.
-> >>>
-> >>> Using _xmalloc, I've allocated certain size of memory chunk for 
-> >>> the data structure. ( I varied it from 10kb to 24 MB.)
-> >>>
-> >>> When the size is equal to 24 MB, xen won't boot anymore.  (stuck 
-> >>> during the xmalloc, according to my debugging. _xmalloc returns
-> >>> NULL.) There was no problem when the size is below 12MB.
-> >>>
-> >>> Is there any limitation such as max memory size for _xmalloc?
-> >>>
-> >>> I suspected xen heap size, but, it is no longer adjustable. Right?
-> >>>
-> >>> I hope somebody can give me a clue.  Thanks.
-> >> _xmalloc will first try to use the size pools for allocation, and 
-> >> failing
-> > that, try to
-> >> allocate full pages.
-> >>
-> >> As it is returning NULL, this probably means you no longer have 
-> >> 24MB of
-> > free
-> >> contiguous RAM to allocate.
-> >>
-> >> ~Andrew
-> >>
-> > Thanks for the reply, Andrew.
-> >
-> > I have to check the contiguity.
-> >
-> > If it is the cause of the problem, then, how can I detour this problem?
-> >
-> > Other xen part calling xmalloc_array does not handle this problem as 
-> > far as I know. (only consider it as an error)
-> >
-> > Should I split the data structure into two or more chunks?
-> 
-> Personally, I would think that 24M is a stupidly large amount to be 
-> trying to allocate with xmalloc and friends.
-> 
-> If you are using that much memory, it might be worth using
-> alloc_xenheap_pages() and working with full pages instead.
-> 
-> Why do you need so much space for memory statistics?
-> 
-> ~Andrew
-
-OK. I will try alloc_xenheap_pages(). 
-
-I am following up a research work (Dynamic Memory Balncing ~~), and it
-maintains  a table which has an entry per page in the machine. 
-
-My machine has large memory (different from that in the research work), so
-it needs that amount of memory. 
-
-Thanks!
-
-
-
-> 
-> --
-> Andrew Cooper - Dom0 Kernel Engineer, Citrix XenServer
-> T: +44 (0)1223 225 900, http://www.citrix.com
-
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<008601cd5f45$6eff7530$4cfe5f90$@core.kaist.ac.kr> b/test/corpus/<008601cd5f45$6eff7530$4cfe5f90$@core.kaist.ac.kr>
deleted file mode 100644 (file)
index 96e8a7d..0000000
+++ /dev/null
@@ -1,94 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Jul 11 10:19:07 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 11 Jul 2012 10:19:07 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1Sot4b-0003tF-Ci
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 11 Jul 2012 10:19:07 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SoszS-0001bo-H2; Wed, 11 Jul 2012 09:13:46 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <cmkim@core.kaist.ac.kr>) id 1SoszQ-0001bh-N4
-       for xen-devel@lists.xen.org; Wed, 11 Jul 2012 09:13:44 +0000
-Received: from [85.158.143.99:31491] by server-2.bemta-4.messagelabs.com id
-       C1/7F-17938-7C34DFF4; Wed, 11 Jul 2012 09:13:43 +0000
-X-Env-Sender: cmkim@core.kaist.ac.kr
-X-Msg-Ref: server-3.tower-216.messagelabs.com!1341998020!27658661!1
-X-Originating-IP: [143.248.147.118]
-X-SpamReason: No, hits=0.0 required=7.0 tests=
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.2; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 15685 invoked from network); 11 Jul 2012 09:13:42 -0000
-Received: from core.kaist.ac.kr (HELO core.kaist.ac.kr) (143.248.147.118)
-       by server-3.tower-216.messagelabs.com with DHE-RSA-AES256-SHA encrypted
-       SMTP; 11 Jul 2012 09:13:42 -0000
-Received: from CHULMINKIMPC (az.kaist.ac.kr [143.248.165.115])
-       by core.kaist.ac.kr (8.14.4/8.14.4) with ESMTP id q6B9CkXR014193
-       for <xen-devel@lists.xen.org>; Wed, 11 Jul 2012 18:12:47 +0900
-From: "Chulmin Kim" <cmkim@core.kaist.ac.kr>
-To: <xen-devel@lists.xen.org>
-Date: Wed, 11 Jul 2012 18:13:27 +0900
-Message-ID: <008601cd5f45$6eff7530$4cfe5f90$@core.kaist.ac.kr>
-MIME-Version: 1.0
-X-Mailer: Microsoft Outlook 14.0
-Thread-Index: Ac1fRAsR9B4iQYF2TZWWP5+GEQsXJw==
-Content-Language: ko
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: [Xen-devel] maximum memory size allocated by _xmalloc
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-Hi all, 
-
-I'm currently inserting my own code to adjust the several existing memory
-ballooning works. 
-
-To accomplish it, I manage some kind of statistics in Xen memory area. 
-
-Using _xmalloc, I've allocated certain size of memory chunk for the data
-structure. ( I varied it from 10kb to 24 MB.)
-
-When the size is equal to 24 MB, xen won't boot anymore.  (stuck during the
-xmalloc, according to my debugging. _xmalloc returns NULL.)
-There was no problem when the size is below 12MB.
-
-Is there any limitation such as max memory size for _xmalloc? 
-
-I suspected xen heap size, but, it is no longer adjustable. Right? 
-
-I hope somebody can give me a clue.  Thanks.
-
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<05f8b1f47b42aaf2430490453a2b783eabbe9bfb.1345552068.git.julien.grall@citrix.com> b/test/corpus/<05f8b1f47b42aaf2430490453a2b783eabbe9bfb.1345552068.git.julien.grall@citrix.com>
deleted file mode 100644 (file)
index 8669842..0000000
+++ /dev/null
@@ -1,266 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Aug 22 19:58:55 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 22 Aug 2012 19:58:55 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T4G8g-0002o1-RT
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 22 Aug 2012 19:58:55 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T4G5R-0006zb-51; Wed, 22 Aug 2012 18:55:29 +0000
-Received: from mail27.messagelabs.com ([193.109.254.147])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <julien.grall@citrix.com>) id 1T4G5N-0006lR-Gx
-       for xen-devel@lists.xen.org; Wed, 22 Aug 2012 18:55:25 +0000
-X-Env-Sender: julien.grall@citrix.com
-X-Msg-Ref: server-12.tower-27.messagelabs.com!1345661712!9781420!5
-X-Originating-IP: [66.165.176.89]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNjU4OTQ=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 7437 invoked from network); 22 Aug 2012 18:55:18 -0000
-Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
-       by server-12.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
-       22 Aug 2012 18:55:18 -0000
-X-IronPort-AV: E=Sophos;i="4.80,809,1344225600"; d="scan'208";a="35484803"
-Received: from ftlpmailmx01.citrite.net ([10.13.107.65])
-       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       22 Aug 2012 14:55:18 -0400
-Received: from meteora.cam.xci-test.com (10.80.248.22) by smtprelay.citrix.com
-       (10.13.107.65) with Microsoft SMTP Server id 8.3.213.0;
-       Wed, 22 Aug 2012 14:55:17 -0400
-From: Julien Grall <julien.grall@citrix.com>
-To: qemu-devel@nongnu.org
-Date: Wed, 22 Aug 2012 13:31:56 +0100
-Message-ID: <05f8b1f47b42aaf2430490453a2b783eabbe9bfb.1345552068.git.julien.grall@citrix.com>
-X-Mailer: git-send-email 1.7.2.5
-In-Reply-To: <cover.1345552068.git.julien.grall@citrix.com>
-References: <cover.1345552068.git.julien.grall@citrix.com>
-MIME-Version: 1.0
-Cc: Julien Grall <julien.grall@citrix.com>, christian.limpach@gmail.com,
-       Stefano.Stabellini@eu.citrix.com, xen-devel@lists.xen.org
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DATE_IN_PAST_06_12,
-       RCVD_IN_DNSWL_MED,RP_MATCHES_RCVD autolearn=unavailable version=3.3.1
-Subject: [Xen-devel] [XEN][RFC PATCH V2 10/17] xc: Add argument to allocate
-       more special pages
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-This patch permits to allocate more special pages. Indeed, for multiple
-ioreq server, we need to have 2 shared pages by server.
-
-Signed-off-by: Julien Grall <julien.grall@citrix.com>
----
- tools/libxc/xc_hvm_build_x86.c    |   59 +++++++++++++++++++-----------------
- tools/libxc/xenguest.h            |    4 ++-
- tools/python/xen/lowlevel/xc/xc.c |    3 +-
- 3 files changed, 36 insertions(+), 30 deletions(-)
-
-diff --git a/tools/libxc/xc_hvm_build_x86.c b/tools/libxc/xc_hvm_build_x86.c
-index cf5d7fb..b98536b 100644
---- a/tools/libxc/xc_hvm_build_x86.c
-+++ b/tools/libxc/xc_hvm_build_x86.c
-@@ -41,16 +41,15 @@
- #define SPECIALPAGE_PAGING   0
- #define SPECIALPAGE_ACCESS   1
- #define SPECIALPAGE_SHARING  2
--#define SPECIALPAGE_BUFIOREQ 3
--#define SPECIALPAGE_XENSTORE 4
--#define SPECIALPAGE_IOREQ    5
--#define SPECIALPAGE_IDENT_PT 6
--#define SPECIALPAGE_CONSOLE  7
--#define NR_SPECIAL_PAGES     8
--#define special_pfn(x) (0xff000u - NR_SPECIAL_PAGES + (x))
-+#define SPECIALPAGE_XENSTORE 3
-+#define SPECIALPAGE_IDENT_PT 4
-+#define SPECIALPAGE_CONSOLE  5
-+#define NR_SPECIAL_PAGES     6
-+#define special_pfn(x, add) (0xff000u - (NR_SPECIAL_PAGES + (add)) + (x))
- static void build_hvm_info(void *hvm_info_page, uint64_t mem_size,
--                           uint64_t mmio_start, uint64_t mmio_size)
-+                           uint64_t mmio_start, uint64_t mmio_size,
-+                           uint32_t nr_special_pages)
- {
-     struct hvm_info_table *hvm_info = (struct hvm_info_table *)
-         (((unsigned char *)hvm_info_page) + HVM_INFO_OFFSET);
-@@ -78,7 +77,7 @@ static void build_hvm_info(void *hvm_info_page, uint64_t mem_size,
-     /* Memory parameters. */
-     hvm_info->low_mem_pgend = lowmem_end >> PAGE_SHIFT;
-     hvm_info->high_mem_pgend = highmem_end >> PAGE_SHIFT;
--    hvm_info->reserved_mem_pgstart = special_pfn(0);
-+    hvm_info->reserved_mem_pgstart = special_pfn(0, nr_special_pages);
-     /* Finish with the checksum. */
-     for ( i = 0, sum = 0; i < hvm_info->length; i++ )
-@@ -148,6 +147,7 @@ static int setup_guest(xc_interface *xch,
-     unsigned long target_pages = args->mem_target >> PAGE_SHIFT;
-     uint64_t mmio_start = (1ull << 32) - args->mmio_size;
-     uint64_t mmio_size = args->mmio_size;
-+    uint32_t nr_special_pages = args->nr_special_pages;
-     unsigned long entry_eip, cur_pages, cur_pfn;
-     void *hvm_info_page;
-     uint32_t *ident_pt;
-@@ -341,37 +341,38 @@ static int setup_guest(xc_interface *xch,
-               xch, dom, PAGE_SIZE, PROT_READ | PROT_WRITE,
-               HVM_INFO_PFN)) == NULL )
-         goto error_out;
--    build_hvm_info(hvm_info_page, v_end, mmio_start, mmio_size);
-+    build_hvm_info(hvm_info_page, v_end, mmio_start, mmio_size, nr_special_pages);
-     munmap(hvm_info_page, PAGE_SIZE);
-     /* Allocate and clear special pages. */
--    for ( i = 0; i < NR_SPECIAL_PAGES; i++ )
-+    for ( i = 0; i < (NR_SPECIAL_PAGES + nr_special_pages); i++ )
-     {
--        xen_pfn_t pfn = special_pfn(i);
-+        xen_pfn_t pfn = special_pfn(i, nr_special_pages);
-         rc = xc_domain_populate_physmap_exact(xch, dom, 1, 0, 0, &pfn);
-         if ( rc != 0 )
-         {
-             PERROR("Could not allocate %d'th special page.", i);
-             goto error_out;
-         }
--        if ( xc_clear_domain_page(xch, dom, special_pfn(i)) )
-+        if ( xc_clear_domain_page(xch, dom, special_pfn(i, nr_special_pages)) )
-             goto error_out;
-     }
-     xc_set_hvm_param(xch, dom, HVM_PARAM_STORE_PFN,
--                     special_pfn(SPECIALPAGE_XENSTORE));
--    xc_set_hvm_param(xch, dom, HVM_PARAM_BUFIOREQ_PFN,
--                     special_pfn(SPECIALPAGE_BUFIOREQ));
--    xc_set_hvm_param(xch, dom, HVM_PARAM_IOREQ_PFN,
--                     special_pfn(SPECIALPAGE_IOREQ));
-+                     special_pfn(SPECIALPAGE_XENSTORE, nr_special_pages));
-     xc_set_hvm_param(xch, dom, HVM_PARAM_CONSOLE_PFN,
--                     special_pfn(SPECIALPAGE_CONSOLE));
-+                     special_pfn(SPECIALPAGE_CONSOLE, nr_special_pages));
-     xc_set_hvm_param(xch, dom, HVM_PARAM_PAGING_RING_PFN,
--                     special_pfn(SPECIALPAGE_PAGING));
-+                     special_pfn(SPECIALPAGE_PAGING, nr_special_pages));
-     xc_set_hvm_param(xch, dom, HVM_PARAM_ACCESS_RING_PFN,
--                     special_pfn(SPECIALPAGE_ACCESS));
-+                     special_pfn(SPECIALPAGE_ACCESS, nr_special_pages));
-     xc_set_hvm_param(xch, dom, HVM_PARAM_SHARING_RING_PFN,
--                     special_pfn(SPECIALPAGE_SHARING));
-+                     special_pfn(SPECIALPAGE_SHARING, nr_special_pages));
-+    xc_set_hvm_param(xch, dom, HVM_PARAM_IO_PFN_FIRST,
-+                     special_pfn(NR_SPECIAL_PAGES, nr_special_pages));
-+    xc_set_hvm_param(xch, dom, HVM_PARAM_IO_PFN_LAST,
-+                     special_pfn(NR_SPECIAL_PAGES + nr_special_pages - 1,
-+                                 nr_special_pages));
-     /*
-      * Identity-map page table is required for running with CR0.PG=0 when
-@@ -379,14 +380,14 @@ static int setup_guest(xc_interface *xch,
-      */
-     if ( (ident_pt = xc_map_foreign_range(
-               xch, dom, PAGE_SIZE, PROT_READ | PROT_WRITE,
--              special_pfn(SPECIALPAGE_IDENT_PT))) == NULL )
-+              special_pfn(SPECIALPAGE_IDENT_PT, nr_special_pages))) == NULL )
-         goto error_out;
-     for ( i = 0; i < PAGE_SIZE / sizeof(*ident_pt); i++ )
-         ident_pt[i] = ((i << 22) | _PAGE_PRESENT | _PAGE_RW | _PAGE_USER |
-                        _PAGE_ACCESSED | _PAGE_DIRTY | _PAGE_PSE);
-     munmap(ident_pt, PAGE_SIZE);
-     xc_set_hvm_param(xch, dom, HVM_PARAM_IDENT_PT,
--                     special_pfn(SPECIALPAGE_IDENT_PT) << PAGE_SHIFT);
-+                     special_pfn(SPECIALPAGE_IDENT_PT, nr_special_pages) << PAGE_SHIFT);
-     /* Insert JMP <rel32> instruction at address 0x0 to reach entry point. */
-     entry_eip = elf_uval(&elf, elf.ehdr, e_entry);
-@@ -454,16 +455,18 @@ int xc_hvm_build(xc_interface *xch, uint32_t domid,
-  * If target == memsize, pages are populated normally.
-  */
- int xc_hvm_build_target_mem(xc_interface *xch,
--                           uint32_t domid,
--                           int memsize,
--                           int target,
--                           const char *image_name)
-+                            uint32_t domid,
-+                            int memsize,
-+                            int target,
-+                            const char *image_name,
-+                            uint32_t nr_special_pages)
- {
-     struct xc_hvm_build_args args = {};
-     args.mem_size = (uint64_t)memsize << 20;
-     args.mem_target = (uint64_t)target << 20;
-     args.image_file_name = image_name;
-+    args.nr_special_pages = nr_special_pages;
-     return xc_hvm_build(xch, domid, &args);
- }
-diff --git a/tools/libxc/xenguest.h b/tools/libxc/xenguest.h
-index 707e31c..9a0d38f 100644
---- a/tools/libxc/xenguest.h
-+++ b/tools/libxc/xenguest.h
-@@ -216,6 +216,7 @@ struct xc_hvm_build_args {
-     uint64_t mem_target;         /* Memory target in bytes. */
-     uint64_t mmio_size;          /* Size of the MMIO hole in bytes. */
-     const char *image_file_name; /* File name of the image to load. */
-+    uint32_t nr_special_pages;   /* Additional special pages for io daemon */
- };
- /**
-@@ -234,7 +235,8 @@ int xc_hvm_build_target_mem(xc_interface *xch,
-                             uint32_t domid,
-                             int memsize,
-                             int target,
--                            const char *image_name);
-+                            const char *image_name,
-+                            uint32_t nr_special_pages);
- int xc_suspend_evtchn_release(xc_interface *xch, xc_evtchn *xce, int domid, int suspend_evtchn);
-diff --git a/tools/python/xen/lowlevel/xc/xc.c b/tools/python/xen/lowlevel/xc/xc.c
-index 7c89756..eb004b6 100644
---- a/tools/python/xen/lowlevel/xc/xc.c
-+++ b/tools/python/xen/lowlevel/xc/xc.c
-@@ -984,8 +984,9 @@ static PyObject *pyxc_hvm_build(XcObject *self,
-     if ( target == -1 )
-         target = memsize;
-+    // Ugly fix : we must retrieve the number of servers
-     if ( xc_hvm_build_target_mem(self->xc_handle, dom, memsize,
--                                 target, image) != 0 )
-+                                 target, image, 0) != 0 )
-         return pyxc_error_to_exception(self->xc_handle);
- #if !defined(__ia64__)
--- 
-Julien Grall
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<0616f810ead8fa9d2beb8dc3b7306724a0e39ca1.1345552068.git.julien.grall@citrix.com> b/test/corpus/<0616f810ead8fa9d2beb8dc3b7306724a0e39ca1.1345552068.git.julien.grall@citrix.com>
deleted file mode 100644 (file)
index 9602281..0000000
+++ /dev/null
@@ -1,194 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Aug 22 19:58:56 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 22 Aug 2012 19:58:56 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T4G8a-0002mb-Ni
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 22 Aug 2012 19:58:56 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T4G5L-0006qL-QG; Wed, 22 Aug 2012 18:55:23 +0000
-Received: from mail27.messagelabs.com ([193.109.254.147])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <julien.grall@citrix.com>) id 1T4G5J-0006gz-4w
-       for xen-devel@lists.xen.org; Wed, 22 Aug 2012 18:55:21 +0000
-X-Env-Sender: julien.grall@citrix.com
-X-Msg-Ref: server-12.tower-27.messagelabs.com!1345661712!9781420!3
-X-Originating-IP: [66.165.176.89]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNjU4OTQ=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 7343 invoked from network); 22 Aug 2012 18:55:15 -0000
-Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
-       by server-12.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
-       22 Aug 2012 18:55:15 -0000
-X-IronPort-AV: E=Sophos;i="4.80,809,1344225600"; d="scan'208";a="35484792"
-Received: from ftlpmailmx01.citrite.net ([10.13.107.65])
-       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       22 Aug 2012 14:55:14 -0400
-Received: from meteora.cam.xci-test.com (10.80.248.22) by smtprelay.citrix.com
-       (10.13.107.65) with Microsoft SMTP Server id 8.3.213.0;
-       Wed, 22 Aug 2012 14:55:14 -0400
-From: Julien Grall <julien.grall@citrix.com>
-To: qemu-devel@nongnu.org
-Date: Wed, 22 Aug 2012 13:31:53 +0100
-Message-ID: <0616f810ead8fa9d2beb8dc3b7306724a0e39ca1.1345552068.git.julien.grall@citrix.com>
-X-Mailer: git-send-email 1.7.2.5
-In-Reply-To: <cover.1345552068.git.julien.grall@citrix.com>
-References: <cover.1345552068.git.julien.grall@citrix.com>
-MIME-Version: 1.0
-Cc: Julien Grall <julien.grall@citrix.com>, christian.limpach@gmail.com,
-       Stefano.Stabellini@eu.citrix.com, xen-devel@lists.xen.org
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DATE_IN_PAST_06_12,
-       RCVD_IN_DNSWL_MED,RP_MATCHES_RCVD autolearn=ham version=3.3.1
-Subject: [Xen-devel] [XEN][RFC PATCH V2 07/17] hvm-io: send invalidate map
-       cache to each registered servers
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-When an invalidate mapcache cache occurs, Xen need to send and
-IOREQ_TYPE_INVALIDATE to each server and wait that all IO is completed.
-We introduce a new function hvm_wait_on_io to wait until an IO is completed.
-
-Signed-off-by: Julien Grall <julien.grall@citrix.com>
----
- xen/arch/x86/hvm/hvm.c |   41 ++++++++++++++++++++++++++++++++---------
- xen/arch/x86/hvm/io.c  |   15 +++++++++++++--
- 2 files changed, 45 insertions(+), 11 deletions(-)
-
-diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
-index 33ef0f2..fdb2515 100644
---- a/xen/arch/x86/hvm/hvm.c
-+++ b/xen/arch/x86/hvm/hvm.c
-@@ -316,16 +316,9 @@ void hvm_migrate_pirqs(struct vcpu *v)
-     spin_unlock(&d->event_lock);
- }
--void hvm_do_resume(struct vcpu *v)
-+static void hvm_wait_on_io(struct vcpu *v, ioreq_t *p)
- {
--    ioreq_t *p;
--
--    pt_restore_timer(v);
--
--    check_wakeup_from_wait();
--
-     /* NB. Optimised for common case (p->state == STATE_IOREQ_NONE). */
--    p = get_ioreq(v);
-     while ( p->state != STATE_IOREQ_NONE )
-     {
-         switch ( p->state )
-@@ -335,7 +328,7 @@ void hvm_do_resume(struct vcpu *v)
-             break;
-         case STATE_IOREQ_READY:  /* IOREQ_{READY,INPROCESS} -> IORESP_READY */
-         case STATE_IOREQ_INPROCESS:
--            wait_on_xen_event_channel(v->arch.hvm_vcpu.xen_port,
-+            wait_on_xen_event_channel(p->vp_eport,
-                                       (p->state != STATE_IOREQ_READY) &&
-                                       (p->state != STATE_IOREQ_INPROCESS));
-             break;
-@@ -345,6 +338,36 @@ void hvm_do_resume(struct vcpu *v)
-             return; /* bail */
-         }
-     }
-+}
-+
-+void hvm_do_resume(struct vcpu *v)
-+{
-+    ioreq_t *p;
-+    struct hvm_ioreq_server *s;
-+    shared_iopage_t *page;
-+
-+    pt_restore_timer(v);
-+
-+    check_wakeup_from_wait();
-+
-+    p = get_ioreq(v);
-+
-+    if ( p->type == IOREQ_TYPE_INVALIDATE )
-+    {
-+        spin_lock(&v->domain->arch.hvm_domain.ioreq_server_lock);
-+        /* Wait all servers */
-+        for ( s = v->domain->arch.hvm_domain.ioreq_server_list; s; s = s->next )
-+        {
-+            page = s->ioreq.va;
-+            ASSERT((v == current) || spin_is_locked(&s->ioreq.lock));
-+            ASSERT(s->ioreq.va != NULL);
-+            v->arch.hvm_vcpu.ioreq = &s->ioreq;
-+            hvm_wait_on_io(v, &page->vcpu_ioreq[v->vcpu_id]);
-+        }
-+        spin_unlock(&v->domain->arch.hvm_domain.ioreq_server_lock);
-+    }
-+    else
-+        hvm_wait_on_io(v, p);
-     /* Inject pending hw/sw trap */
-     if ( v->arch.hvm_vcpu.inject_trap.vector != -1 ) 
-diff --git a/xen/arch/x86/hvm/io.c b/xen/arch/x86/hvm/io.c
-index c20f4e8..b73a462 100644
---- a/xen/arch/x86/hvm/io.c
-+++ b/xen/arch/x86/hvm/io.c
-@@ -150,7 +150,8 @@ void send_timeoffset_req(unsigned long timeoff)
- void send_invalidate_req(void)
- {
-     struct vcpu *v = current;
--    ioreq_t *p = get_ioreq(v);
-+    ioreq_t p[1];
-+    struct hvm_ioreq_server *s;
-     if ( p->state != STATE_IOREQ_NONE )
-     {
-@@ -164,8 +165,18 @@ void send_invalidate_req(void)
-     p->size = 4;
-     p->dir = IOREQ_WRITE;
-     p->data = ~0UL; /* flush all */
-+    p->count = 0;
-+    p->addr = 0;
-+
-+    spin_lock(&v->domain->arch.hvm_domain.ioreq_server_lock);
-+    for ( s = v->domain->arch.hvm_domain.ioreq_server_list; s; s = s->next )
-+    {
-+        set_ioreq(v, &s->ioreq, p);
-+        (void)hvm_send_assist_req(v);
-+    }
-+    spin_unlock(&v->domain->arch.hvm_domain.ioreq_server_lock);
--    (void)hvm_send_assist_req(v);
-+    set_ioreq(v, &v->domain->arch.hvm_domain.ioreq, p);
- }
- int handle_mmio(void)
--- 
-Julien Grall
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<0c0e65af87b2e86b62d82565c2e363ddfb8acfc6.1345552068.git.julien.grall@citrix.com> b/test/corpus/<0c0e65af87b2e86b62d82565c2e363ddfb8acfc6.1345552068.git.julien.grall@citrix.com>
deleted file mode 100644 (file)
index 107bc8d..0000000
+++ /dev/null
@@ -1,172 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Aug 22 19:58:52 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 22 Aug 2012 19:58:52 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T4G8a-0002mJ-ET
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 22 Aug 2012 19:58:52 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T4G5S-00073Q-SZ; Wed, 22 Aug 2012 18:55:30 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <julien.grall@citrix.com>) id 1T4G5Q-0006zL-Mt
-       for xen-devel@lists.xen.org; Wed, 22 Aug 2012 18:55:28 +0000
-Received: from [85.158.138.51:40259] by server-5.bemta-3.messagelabs.com id
-       82/A8-08865-F1B25305; Wed, 22 Aug 2012 18:55:27 +0000
-X-Env-Sender: julien.grall@citrix.com
-X-Msg-Ref: server-5.tower-174.messagelabs.com!1345661707!27566656!8
-X-Originating-IP: [66.165.176.63]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyNzMzNjM=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 10561 invoked from network); 22 Aug 2012 18:55:27 -0000
-Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
-       by server-5.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
-       22 Aug 2012 18:55:27 -0000
-X-IronPort-AV: E=Sophos;i="4.80,809,1344225600"; d="scan'208";a="205943141"
-Received: from ftlpmailmx01.citrite.net ([10.13.107.65])
-       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       22 Aug 2012 14:55:25 -0400
-Received: from meteora.cam.xci-test.com (10.80.248.22) by smtprelay.citrix.com
-       (10.13.107.65) with Microsoft SMTP Server id 8.3.213.0;
-       Wed, 22 Aug 2012 14:55:25 -0400
-From: Julien Grall <julien.grall@citrix.com>
-To: qemu-devel@nongnu.org
-Date: Wed, 22 Aug 2012 13:32:02 +0100
-Message-ID: <0c0e65af87b2e86b62d82565c2e363ddfb8acfc6.1345552068.git.julien.grall@citrix.com>
-X-Mailer: git-send-email 1.7.2.5
-In-Reply-To: <cover.1345552068.git.julien.grall@citrix.com>
-References: <cover.1345552068.git.julien.grall@citrix.com>
-MIME-Version: 1.0
-Cc: Julien Grall <julien.grall@citrix.com>, christian.limpach@gmail.com,
-       Stefano.Stabellini@eu.citrix.com, xen-devel@lists.xen.org
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DATE_IN_PAST_06_12,
-       RCVD_IN_DNSWL_MED,RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham
-       version=3.3.1
-Subject: [Xen-devel] [XEN][RFC PATCH V2 16/17] xl: Fix PCI library
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-Quickly fix for PCI library. For the moment each hotplug PCI are add to
-QEMU 0. We need to find a best way to specify which qemu handle the PCI.
-
-Signed-off-by: Julien Grall <julien.grall@citrix.com>
----
- tools/libxl/libxl_pci.c |   19 +++++++++++--------
- 1 files changed, 11 insertions(+), 8 deletions(-)
-
-diff --git a/tools/libxl/libxl_pci.c b/tools/libxl/libxl_pci.c
-index 48986f3..fe02ccd 100644
---- a/tools/libxl/libxl_pci.c
-+++ b/tools/libxl/libxl_pci.c
-@@ -834,13 +834,12 @@ static int qemu_pci_add_xenstore(libxl__gc *gc, uint32_t domid,
-     }
-     libxl__qemu_traditional_cmd(gc, domid, "pci-ins");
--    rc = libxl__wait_for_device_model(gc, domid, NULL, NULL,
-+    rc = libxl__wait_for_device_model(gc, domid, 0, NULL, NULL,
-                                       pci_ins_check, state);
-     path = libxl__sprintf(gc, "/local/domain/0/device-model/%d/parameter",
-                           domid);
-     vdevfn = libxl__xs_read(gc, XBT_NULL, path);
--    path = libxl__sprintf(gc, "/local/domain/0/device-model/%d/state",
--                          domid);
-+    path = libxl__sprintf(gc, "/local/domain/0/dms/%d/state", domid);
-     if ( rc < 0 )
-         LIBXL__LOG(ctx, LIBXL__LOG_ERROR,
-                    "qemu refused to add device: %s", vdevfn);
-@@ -858,11 +857,13 @@ static int do_pci_add(libxl__gc *gc, uint32_t domid, libxl_device_pci *pcidev, i
- {
-     libxl_ctx *ctx = libxl__gc_owner(gc);
-     int rc, hvm = 0;
-+    /* FIXME: handle multiple device model */
-+    libxl_dmid dmid = 0;
-     switch (libxl__domain_type(gc, domid)) {
-     case LIBXL_DOMAIN_TYPE_HVM:
-         hvm = 1;
--        if (libxl__wait_for_device_model(gc, domid, "running",
-+        if (libxl__wait_for_device_model(gc, domid, dmid, "running",
-                                          NULL, NULL, NULL) < 0) {
-             return ERROR_FAIL;
-         }
-@@ -871,7 +872,7 @@ static int do_pci_add(libxl__gc *gc, uint32_t domid, libxl_device_pci *pcidev, i
-                 rc = qemu_pci_add_xenstore(gc, domid, pcidev);
-                 break;
-             case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN:
--                rc = libxl__qmp_pci_add(gc, domid, pcidev);
-+                rc = libxl__qmp_pci_add(gc, domid, dmid, pcidev);
-                 break;
-             default:
-                 return ERROR_INVAL;
-@@ -1136,7 +1137,7 @@ static int qemu_pci_remove_xenstore(libxl__gc *gc, uint32_t domid,
-      * device-model for function 0 */
-     if ( !force && (pcidev->vdevfn & 0x7) == 0 ) {
-         libxl__qemu_traditional_cmd(gc, domid, "pci-rem");
--        if (libxl__wait_for_device_model(gc, domid, "pci-removed",
-+        if (libxl__wait_for_device_model(gc, domid, 0, "pci-removed",
-                                          NULL, NULL, NULL) < 0) {
-             LIBXL__LOG(ctx, LIBXL__LOG_ERROR, "Device Model didn't respond in time");
-             /* This depends on guest operating system acknowledging the
-@@ -1162,6 +1163,8 @@ static int do_pci_remove(libxl__gc *gc, uint32_t domid,
-     libxl_device_pci *assigned;
-     int hvm = 0, rc, num;
-     int stubdomid = 0;
-+    /* FIXME: Handle multiple device model */
-+    libxl_dmid dmid = 0;
-     assigned = libxl_device_pci_list(ctx, domid, &num);
-     if ( assigned == NULL )
-@@ -1178,7 +1181,7 @@ static int do_pci_remove(libxl__gc *gc, uint32_t domid,
-     switch (libxl__domain_type(gc, domid)) {
-     case LIBXL_DOMAIN_TYPE_HVM:
-         hvm = 1;
--        if (libxl__wait_for_device_model(gc, domid, "running",
-+        if (libxl__wait_for_device_model(gc, domid, dmid, "running",
-                                          NULL, NULL, NULL) < 0)
-             goto out_fail;
-@@ -1187,7 +1190,7 @@ static int do_pci_remove(libxl__gc *gc, uint32_t domid,
-             rc = qemu_pci_remove_xenstore(gc, domid, pcidev, force);
-             break;
-         case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN:
--            rc = libxl__qmp_pci_del(gc, domid, pcidev);
-+            rc = libxl__qmp_pci_del(gc, domid, dmid, pcidev);
-             break;
-         default:
-             rc = ERROR_INVAL;
--- 
-Julien Grall
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<0daed9ef86102101bbc23a26ac887d751aa8f8ae.1345552068.git.julien.grall@citrix.com> b/test/corpus/<0daed9ef86102101bbc23a26ac887d751aa8f8ae.1345552068.git.julien.grall@citrix.com>
deleted file mode 100644 (file)
index f37dd81..0000000
+++ /dev/null
@@ -1,471 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Aug 22 19:59:04 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 22 Aug 2012 19:59:04 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T4G8l-0002pS-D6
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 22 Aug 2012 19:59:04 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T4G5Y-0007Fy-LQ; Wed, 22 Aug 2012 18:55:36 +0000
-Received: from mail27.messagelabs.com ([193.109.254.147])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <julien.grall@citrix.com>) id 1T4G5W-00070k-C3
-       for xen-devel@lists.xen.org; Wed, 22 Aug 2012 18:55:34 +0000
-X-Env-Sender: julien.grall@citrix.com
-X-Msg-Ref: server-12.tower-27.messagelabs.com!1345661712!9781420!8
-X-Originating-IP: [66.165.176.89]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNjU4OTQ=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 8053 invoked from network); 22 Aug 2012 18:55:27 -0000
-Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
-       by server-12.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
-       22 Aug 2012 18:55:27 -0000
-X-IronPort-AV: E=Sophos;i="4.80,809,1344225600"; d="scan'208";a="35484818"
-Received: from ftlpmailmx01.citrite.net ([10.13.107.65])
-       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       22 Aug 2012 14:55:27 -0400
-Received: from meteora.cam.xci-test.com (10.80.248.22) by smtprelay.citrix.com
-       (10.13.107.65) with Microsoft SMTP Server id 8.3.213.0;
-       Wed, 22 Aug 2012 14:55:26 -0400
-From: Julien Grall <julien.grall@citrix.com>
-To: qemu-devel@nongnu.org
-Date: Wed, 22 Aug 2012 13:32:03 +0100
-Message-ID: <0daed9ef86102101bbc23a26ac887d751aa8f8ae.1345552068.git.julien.grall@citrix.com>
-X-Mailer: git-send-email 1.7.2.5
-In-Reply-To: <cover.1345552068.git.julien.grall@citrix.com>
-References: <cover.1345552068.git.julien.grall@citrix.com>
-MIME-Version: 1.0
-Cc: Julien Grall <julien.grall@citrix.com>, christian.limpach@gmail.com,
-       Stefano.Stabellini@eu.citrix.com, xen-devel@lists.xen.org
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DATE_IN_PAST_06_12,
-       RCVD_IN_DNSWL_MED,RP_MATCHES_RCVD autolearn=ham version=3.3.1
-Subject: [Xen-devel] [XEN][RFC PATCH V2 17/17] xl: implement save/restore
-       for multiple device models
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-Each device model will be save/restore one by one.
-
-Signed-off-by: Julien Grall <julien.grall@citrix.com>
----
- tools/libxl/libxl.c          |    5 +-
- tools/libxl/libxl_dom.c      |  143 ++++++++++++++++++++++++++++++++++--------
- tools/libxl/libxl_internal.h |   16 +++--
- 3 files changed, 130 insertions(+), 34 deletions(-)
-
-diff --git a/tools/libxl/libxl.c b/tools/libxl/libxl.c
-index 60718b6..e9d14e8 100644
---- a/tools/libxl/libxl.c
-+++ b/tools/libxl/libxl.c
-@@ -416,7 +416,7 @@ int libxl_domain_resume(libxl_ctx *ctx, uint32_t domid, int suspend_cancel)
-     }
-     if (type == LIBXL_DOMAIN_TYPE_HVM) {
--        rc = libxl__domain_resume_device_model(gc, domid);
-+        rc = libxl__domain_resume_device_models(gc, domid);
-         if (rc) {
-             LIBXL__LOG(ctx, LIBXL__LOG_ERROR,
-                        "failed to resume device model for domain %u:%d",
-@@ -852,8 +852,9 @@ int libxl_domain_unpause(libxl_ctx *ctx, uint32_t domid)
-         path = libxl__sprintf(gc, "/local/domain/0/device-model/%d/state", domid);
-         state = libxl__xs_read(gc, XBT_NULL, path);
-         if (state != NULL && !strcmp(state, "paused")) {
-+            /* FIXME: handle multiple qemu */
-             libxl__qemu_traditional_cmd(gc, domid, "continue");
--            libxl__wait_for_device_model(gc, domid, "running",
-+            libxl__wait_for_device_model(gc, domid, 0, "running",
-                                          NULL, NULL, NULL);
-         }
-     }
-diff --git a/tools/libxl/libxl_dom.c b/tools/libxl/libxl_dom.c
-index 475fea8..cd07140 100644
---- a/tools/libxl/libxl_dom.c
-+++ b/tools/libxl/libxl_dom.c
-@@ -582,6 +582,7 @@ int libxl__qemu_traditional_cmd(libxl__gc *gc, uint32_t domid,
- }
- struct libxl__physmap_info {
-+    libxl_dmid device_model;
-     uint64_t phys_offset;
-     uint64_t start_addr;
-     uint64_t size;
-@@ -640,6 +641,10 @@ int libxl__toolstack_restore(uint32_t domid, const uint8_t *buf,
-         pi = (struct libxl__physmap_info*) ptr;
-         ptr += sizeof(struct libxl__physmap_info) + pi->namelen;
-+        xs_path = restore_helper(gc, domid, pi->phys_offset, "device_model");
-+        ret = libxl__xs_write(gc, 0, xs_path, "%u", pi->device_model);
-+        if (ret)
-+            return -1;
-         xs_path = restore_helper(gc, domid, pi->phys_offset, "start_addr");
-         ret = libxl__xs_write(gc, 0, xs_path, "%"PRIx64, pi->start_addr);
-         if (ret)
-@@ -839,27 +844,28 @@ static void switch_logdirty_done(libxl__egc *egc,
- /*----- callbacks, called by xc_domain_save -----*/
--int libxl__domain_suspend_device_model(libxl__gc *gc,
--                                       libxl__domain_suspend_state *dss)
-+static int libxl__domain_suspend_device_model(libxl__gc *gc,
-+                                              libxl_dmid dmid,
-+                                              libxl__domain_suspend_state *dss)
- {
-     libxl_ctx *ctx = libxl__gc_owner(gc);
-     int ret = 0;
-     uint32_t const domid = dss->domid;
--    const char *const filename = dss->dm_savefile;
-+    const char *const filename = libxl__device_model_savefile(gc, domid, dmid);
-     switch (libxl__device_model_version_running(gc, domid)) {
-     case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN_TRADITIONAL: {
-         LIBXL__LOG(ctx, LIBXL__LOG_DEBUG,
-                    "Saving device model state to %s", filename);
-         libxl__qemu_traditional_cmd(gc, domid, "save");
--        libxl__wait_for_device_model(gc, domid, "paused", NULL, NULL, NULL);
-+        libxl__wait_for_device_model(gc, domid, 0, "paused", NULL, NULL, NULL);
-         break;
-     }
-     case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN:
--        if (libxl__qmp_stop(gc, domid))
-+        if (libxl__qmp_stop(gc, domid, dmid))
-             return ERROR_FAIL;
-         /* Save DM state into filename */
--        ret = libxl__qmp_save(gc, domid, filename);
-+        ret = libxl__qmp_save(gc, domid, dmid, filename);
-         if (ret)
-             unlink(filename);
-         break;
-@@ -870,21 +876,67 @@ int libxl__domain_suspend_device_model(libxl__gc *gc,
-     return ret;
- }
--int libxl__domain_resume_device_model(libxl__gc *gc, uint32_t domid)
-+int libxl__domain_suspend_device_models(libxl__gc *gc,
-+                                        libxl__domain_suspend_state *dss)
- {
-+    libxl_dmid *dms = NULL;
-+    unsigned int num_dms = 0;
-+    unsigned int i;
-+    int ret;
-+
-+    dms = libxl__list_device_models(gc, dss->domid, &num_dms);
-+
-+    if (!dms)
-+        return ERROR_FAIL;
-+
-+    for (i = 0; i < num_dms; i++)
-+    {
-+        ret = libxl__domain_suspend_device_model(gc, dms[i], dss);
-+        if (ret)
-+            return ret;
-+    }
-+
-+    return 0;
-+}
-+static int libxl__domain_resume_device_model(libxl__gc *gc, libxl_domid domid,
-+                                             libxl_dmid dmid)
-+{
-     switch (libxl__device_model_version_running(gc, domid)) {
-     case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN_TRADITIONAL: {
-         libxl__qemu_traditional_cmd(gc, domid, "continue");
--        libxl__wait_for_device_model(gc, domid, "running", NULL, NULL, NULL);
-+        libxl__wait_for_device_model(gc, domid, dmid, "running", NULL, NULL,
-+                                     NULL);
-         break;
-     }
-     case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN:
--        if (libxl__qmp_resume(gc, domid))
-+        if (libxl__qmp_resume(gc, domid, dmid))
-             return ERROR_FAIL;
-     default:
-         return ERROR_INVAL;
-     }
-+    return 0;
-+}
-+
-+int libxl__domain_resume_device_models(libxl__gc *gc,
-+                                       libxl_domid domid)
-+{
-+    libxl_dmid *dms = NULL;
-+    unsigned int num_dms = 0;
-+    unsigned int i = 0;
-+    int ret = 0;
-+
-+    dms = libxl__list_device_models(gc, domid, &num_dms);
-+
-+    if (!dms)
-+        return ERROR_FAIL;
-+
-+    for (i = 0; i < num_dms; i++)
-+    {
-+        ret = libxl__domain_resume_device_model(gc, domid, dms[i]);
-+        if (ret)
-+            return ret;
-+    }
-     return 0;
- }
-@@ -1014,9 +1066,10 @@ int libxl__domain_suspend_common_callback(void *user)
-  guest_suspended:
-     if (dss->hvm) {
--        ret = libxl__domain_suspend_device_model(gc, dss);
-+        ret = libxl__domain_suspend_device_models(gc, dss);
-         if (ret) {
--            LOG(ERROR, "libxl__domain_suspend_device_model failed ret=%d", ret);
-+            LOG(ERROR, "libxl__domain_suspend_device_models failed ret=%d",
-+                ret);
-             return 0;
-         }
-     }
-@@ -1038,6 +1091,7 @@ int libxl__toolstack_save(uint32_t domid, uint8_t **buf,
-     STATE_AO_GC(dss->ao);
-     int i = 0;
-     char *start_addr = NULL, *size = NULL, *phys_offset = NULL, *name = NULL;
-+    char *device_model = NULL;
-     unsigned int num = 0;
-     uint32_t count = 0, version = TOOLSTACK_SAVE_VERSION, namelen = 0;
-     uint8_t *ptr = NULL;
-@@ -1068,6 +1122,13 @@ int libxl__toolstack_save(uint32_t domid, uint8_t **buf,
-             return -1;
-         }
-+        xs_path = physmap_path(gc, domid, phys_offset, "device_model");
-+        device_model = libxl__xs_read(gc, 0, xs_path);
-+        if (device_model == NULL) {
-+            LOG(ERROR, "%s is NULL", xs_path);
-+            return -1;
-+        }
-+
-         xs_path = physmap_path(gc, domid, phys_offset, "start_addr");
-         start_addr = libxl__xs_read(gc, 0, xs_path);
-         if (start_addr == NULL) {
-@@ -1095,6 +1156,7 @@ int libxl__toolstack_save(uint32_t domid, uint8_t **buf,
-             return -1;
-         ptr = (*buf) + offset;
-         pi = (struct libxl__physmap_info *) ptr;
-+        pi->device_model = strtol(device_model, NULL, 10);
-         pi->phys_offset = strtoll(phys_offset, NULL, 16);
-         pi->start_addr = strtoll(start_addr, NULL, 16);
-         pi->size = strtoll(size, NULL, 16);
-@@ -1144,7 +1206,7 @@ static void libxl__remus_domain_checkpoint_callback(void *data)
-     /* This would go into tailbuf. */
-     if (dss->hvm) {
--        libxl__domain_save_device_model(egc, dss, remus_checkpoint_dm_saved);
-+        libxl__domain_save_device_models(egc, dss, remus_checkpoint_dm_saved);
-     } else {
-         remus_checkpoint_dm_saved(egc, dss, 0);
-     }
-@@ -1207,7 +1269,6 @@ void libxl__domain_suspend(libxl__egc *egc, libxl__domain_suspend_state *dss)
-     dss->suspend_eventchn = -1;
-     dss->guest_responded = 0;
--    dss->dm_savefile = libxl__device_model_savefile(gc, domid);
-     if (r_info != NULL) {
-         dss->interval = r_info->interval;
-@@ -1274,10 +1335,10 @@ void libxl__xc_domain_save_done(libxl__egc *egc, void *dss_void,
-     }
-     if (type == LIBXL_DOMAIN_TYPE_HVM) {
--        rc = libxl__domain_suspend_device_model(gc, dss);
-+        rc = libxl__domain_suspend_device_models(gc, dss);
-         if (rc) goto out;
-         
--        libxl__domain_save_device_model(egc, dss, domain_suspend_done);
-+        libxl__domain_save_device_models(egc, dss, domain_suspend_done);
-         return;
-     }
-@@ -1290,29 +1351,30 @@ out:
- static void save_device_model_datacopier_done(libxl__egc *egc,
-      libxl__datacopier_state *dc, int onwrite, int errnoval);
--void libxl__domain_save_device_model(libxl__egc *egc,
--                                     libxl__domain_suspend_state *dss,
--                                     libxl__save_device_model_cb *callback)
-+static void libxl__domain_save_device_model(libxl__egc *egc,
-+                                            libxl__domain_suspend_state *dss)
- {
-     STATE_AO_GC(dss->ao);
-     struct stat st;
-     uint32_t qemu_state_len;
-+    uint32_t num_dms = dss->num_dms;
-     int rc;
--
--    dss->save_dm_callback = callback;
-+    libxl_dmid dmid = dss->dms[dss->current_dm];
-     /* Convenience aliases */
--    const char *const filename = dss->dm_savefile;
-+    const char *const filename = libxl__device_model_savefile(gc, dss->domid,
-+                                                              dmid);
-     const int fd = dss->fd;
-     libxl__datacopier_state *dc = &dss->save_dm_datacopier;
-     memset(dc, 0, sizeof(*dc));
--    dc->readwhat = GCSPRINTF("qemu save file %s", filename);
-+    dc->readwhat = GCSPRINTF("qemu %u save file %s", dmid, filename);
-     dc->ao = ao;
-     dc->readfd = -1;
-     dc->writefd = fd;
-     dc->maxsz = INT_MAX;
--    dc->copywhat = GCSPRINTF("qemu save file for domain %"PRIu32, dss->domid);
-+    dc->copywhat = GCSPRINTF("qemu %u save file for domain %"PRIu32,
-+                             dmid, dss->domid);
-     dc->writewhat = "save/migration stream";
-     dc->callback = save_device_model_datacopier_done;
-@@ -1339,8 +1401,16 @@ void libxl__domain_save_device_model(libxl__egc *egc,
-     rc = libxl__datacopier_start(dc);
-     if (rc) goto out;
-+    /* FIXME: Ugly fix to add DMS_SIGNATURE */
-+    if (dss->current_dm == 0) {
-+        libxl__datacopier_prefixdata(egc, dc,
-+                                     DMS_SIGNATURE, strlen(DMS_SIGNATURE));
-+        libxl__datacopier_prefixdata(egc, dc,
-+                                     &num_dms, sizeof (num_dms));
-+    }
-+
-     libxl__datacopier_prefixdata(egc, dc,
--                                 QEMU_SIGNATURE, strlen(QEMU_SIGNATURE));
-+                                 DM_SIGNATURE, strlen(DM_SIGNATURE));
-     libxl__datacopier_prefixdata(egc, dc,
-                                  &qemu_state_len, sizeof(qemu_state_len));
-@@ -1350,6 +1420,20 @@ void libxl__domain_save_device_model(libxl__egc *egc,
-     save_device_model_datacopier_done(egc, dc, -1, 0);
- }
-+void libxl__domain_save_device_models(libxl__egc *egc,
-+                                libxl__domain_suspend_state *dss,
-+                                libxl__save_device_model_cb *callback)
-+{
-+    STATE_AO_GC(dss->ao);
-+
-+    dss->save_dm_callback = callback;
-+    dss->num_dms = 0;
-+    dss->current_dm = 0;
-+    dss->dms = libxl__list_device_models(gc, dss->domid, &dss->num_dms);
-+
-+    libxl__domain_save_device_model(egc, dss);
-+}
-+
- static void save_device_model_datacopier_done(libxl__egc *egc,
-      libxl__datacopier_state *dc, int onwrite, int errnoval)
- {
-@@ -1358,7 +1442,9 @@ static void save_device_model_datacopier_done(libxl__egc *egc,
-     STATE_AO_GC(dss->ao);
-     /* Convenience aliases */
--    const char *const filename = dss->dm_savefile;
-+    libxl_dmid dmid = dss->dms[dss->current_dm];
-+    const char *const filename = libxl__device_model_savefile(gc, dss->domid,
-+                                                              dmid);
-     int our_rc = 0;
-     int rc;
-@@ -1375,7 +1461,12 @@ static void save_device_model_datacopier_done(libxl__egc *egc,
-     rc = libxl__remove_file(gc, filename);
-     if (!our_rc) our_rc = rc;
--    dss->save_dm_callback(egc, dss, our_rc);
-+    dss->current_dm++;
-+
-+    if (!our_rc && dss->num_dms != dss->current_dm)
-+        libxl__domain_save_device_model(egc, dss);
-+    else
-+        dss->save_dm_callback(egc, dss, our_rc);
- }
- static void domain_suspend_done(libxl__egc *egc,
-diff --git a/tools/libxl/libxl_internal.h b/tools/libxl/libxl_internal.h
-index 2e6eedc..9de1465 100644
---- a/tools/libxl/libxl_internal.h
-+++ b/tools/libxl/libxl_internal.h
-@@ -93,7 +93,8 @@
- #define LIBXL_MIN_DOM0_MEM (128*1024)
- /* use 0 as the domid of the toolstack domain for now */
- #define LIBXL_TOOLSTACK_DOMID 0
--#define QEMU_SIGNATURE "DeviceModelRecord0002"
-+#define DMS_SIGNATURE "DeviceModelRecords001"
-+#define DM_SIGNATURE "DeviceModelRecord0002"
- #define STUBDOM_CONSOLE_LOGGING 0
- #define STUBDOM_CONSOLE_SAVE 1
- #define STUBDOM_CONSOLE_RESTORE 2
-@@ -896,7 +897,8 @@ _hidden int libxl__domain_rename(libxl__gc *gc, uint32_t domid,
- _hidden int libxl__toolstack_restore(uint32_t domid, const uint8_t *buf,
-                                      uint32_t size, void *data);
--_hidden int libxl__domain_resume_device_model(libxl__gc *gc, uint32_t domid);
-+_hidden int libxl__domain_resume_device_models(libxl__gc *gc,
-+                                               libxl_domid domid);
- _hidden void libxl__userdata_destroyall(libxl__gc *gc, uint32_t domid);
-@@ -2230,10 +2232,12 @@ struct libxl__domain_suspend_state {
-     int hvm;
-     int xcflags;
-     int guest_responded;
--    const char *dm_savefile;
-     int interval; /* checkpoint interval (for Remus) */
-     libxl__save_helper_state shs;
-     libxl__logdirty_switch logdirty;
-+    unsigned int num_dms;
-+    unsigned int current_dm;
-+    libxl_dmid *dms;
-     /* private for libxl__domain_save_device_model */
-     libxl__save_device_model_cb *save_dm_callback;
-     libxl__datacopier_state save_dm_datacopier;
-@@ -2535,9 +2539,9 @@ _hidden void libxl__xc_domain_restore_done(libxl__egc *egc, void *dcs_void,
-                                            int rc, int retval, int errnoval);
- /* Each time the dm needs to be saved, we must call suspend and then save */
--_hidden int libxl__domain_suspend_device_model(libxl__gc *gc,
--                                           libxl__domain_suspend_state *dss);
--_hidden void libxl__domain_save_device_model(libxl__egc *egc,
-+_hidden int libxl__domain_suspend_device_models(libxl__gc *gc,
-+                                            libxl__domain_suspend_state *dss);
-+_hidden void libxl__domain_save_device_models(libxl__egc *egc,
-                                      libxl__domain_suspend_state *dss,
-                                      libxl__save_device_model_cb *callback);
--- 
-Julien Grall
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1144695277.20120904184345@eikelenboom.it> b/test/corpus/<1144695277.20120904184345@eikelenboom.it>
deleted file mode 100644 (file)
index ecae113..0000000
+++ /dev/null
@@ -1,1123 +0,0 @@
-From xen-devel-bounces@lists.xen.org Tue Sep 04 17:50:09 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Tue, 04 Sep 2012 17:50:09 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T8wK8-00031c-9m
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 04 Sep 2012 17:50:09 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T8wEo-0005NJ-7n; Tue, 04 Sep 2012 16:44:30 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <linux@eikelenboom.it>) id 1T8wEm-0005N6-3A
-       for xen-devel@lists.xen.org; Tue, 04 Sep 2012 16:44:28 +0000
-Received: from [85.158.143.35:52476] by server-2.bemta-4.messagelabs.com id
-       19/FB-21239-BEF26405; Tue, 04 Sep 2012 16:44:27 +0000
-X-Env-Sender: linux@eikelenboom.it
-X-Msg-Ref: server-2.tower-21.messagelabs.com!1346777054!5703510!1
-X-Originating-IP: [188.40.164.121]
-X-SpamReason: No, hits=0.5 required=7.0 tests=BODY_RANDOM_LONG
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 20215 invoked from network); 4 Sep 2012 16:44:16 -0000
-Received: from static.121.164.40.188.clients.your-server.de (HELO
-       smtp.eikelenboom.it) (188.40.164.121)
-       by server-2.tower-21.messagelabs.com with AES256-SHA encrypted SMTP;
-       4 Sep 2012 16:44:16 -0000
-Received: from 128-64-ftth.onsneteindhoven.nl ([88.159.64.128]:55637
-       helo=[172.16.1.20])
-       by smtp.eikelenboom.it with esmtpsa (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72) (envelope-from <linux@eikelenboom.it>)
-       id 1T8wB5-0004jo-8A; Tue, 04 Sep 2012 18:40:39 +0200
-Date: Tue, 4 Sep 2012 18:43:45 +0200
-From: Sander Eikelenboom <linux@eikelenboom.it>
-Organization: Eikelenboom IT services
-X-Priority: 3 (Normal)
-Message-ID: <1144695277.20120904184345@eikelenboom.it>
-To: Wei Wang <wei.wang2@amd.com>
-In-Reply-To: <5044CAD7.8030800@amd.com>
-References: <40501859.20120902104331@eikelenboom.it>
-       <CC6932C2.3D99D%keir.xen@gmail.com>
-       <217459398.20120902171441@eikelenboom.it>
-       <5044CAD7.8030800@amd.com>
-MIME-Version: 1.0
-Content-Type: multipart/mixed;
- boundary="----------0C30E31DB2590EB56"
-Cc: Keir Fraser <keir.xen@gmail.com>, Jan Beulich <JBeulich@suse.com>,
-       Santosh Jodh <Santosh.Jodh@citrix.com>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] Using debug-key 'o:  Dump IOMMU p2m table,
-       locks up machine
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-------------0C30E31DB2590EB56
-Content-Type: text/plain; charset=us-ascii
-Content-Transfer-Encoding: 7bit
-
-Hello Wei,
-
-Monday, September 3, 2012, 5:20:55 PM, you wrote:
-
-> On 09/02/2012 05:14 PM, Sander Eikelenboom wrote:
->> Sunday, September 2, 2012, 4:58:58 PM, you wrote:
->>
->>> On 02/09/2012 09:43, "Sander Eikelenboom"<linux@eikelenboom.it>  wrote:
->>
->>>>> Quite simply, there likely needs to be more tracing on the IOMMU fault path.
->>>>> That's a separate concern from your keyhandler of course, but just saying
->>>>> I'd be looking for the former rather than the latter, for diagnosing
->>>>> Sander's bug.
->>>>
->>>> Are there any printk's I could add to get more relevant info about the AMD-Vi:
->>>> IO_PAGE_FAULT ?
->>
->>> No really straightforward one. I think we need a per-IOMMU-type handler to
->>> walk the IOMMU page table for a given virtual address, and dump every
->>> page-table-entry on the path. Like an IOMMU version of show_page_walk().
->>> Personally I would suspect this is more useful than the dump-everything
->>> handlers: just give a *full* *detailed* walk for the actually interesting
->>> virtual address (the one faulted on).
->>
->>>> I have attached new output from xl dmesg, this time with iommu=debug on (the
->>>> option changed from 4.1 to 4.2).
->>
->>> Not easy to glean any more from that, without extra tracing such as
->>> described above, and/or digging into the guest to find what driver-side
->>> actions are causing the faults.
->>
->> OK, too bad!
->> With xen 4.1 i haven't experienced those page faults, but a diff between /xen/drivers/passthrough/amd in both trees show quite some changes :(
-
-> Did you also update xen tools accordingly? Sometime I also saw a few 
-> IO_PAGE_FAULTs came from nic if my tools version and HV version did not 
-> match. But using recent 4.2 and corresponding xl, my tests went well.
-> BTW: You could also try iommu=no-sharept to see if it helps.
-
-Tried it and it doesn't help.
-I now even got a "xl dmesg" which shows a IO_PAGE_FAULT occuring very early, before any toolstack or guest can be involved:
-
-(XEN) [2012-09-04 15:51:17] AMD-Vi: Setup I/O page table: device id = 0x0a05, root table = 0x24d84b000, domain = 0, paging mode = 3
-(XEN) [2012-09-04 15:51:17] AMD-Vi: Setup I/O page table: device id = 0x0a06, root table = 0x24d84b000, domain = 0, paging mode = 3
-(XEN) [2012-09-04 15:51:17] AMD-Vi: Setup I/O page table: device id = 0x0a07, root table = 0x24d84b000, domain = 0, paging mode = 3
-(XEN) [2012-09-04 15:51:17] AMD-Vi: Setup I/O page table: device id = 0x0b00, root table = 0x24d84b000, domain = 0, paging mode = 3
-(XEN) [2012-09-04 15:51:17] Scrubbing Free RAM: ...........................<0>AMD-Vi: IO_PAGE_FAULT: domain = 0, device id = 0x0a06, fault address = 0xc2c2c2c0
-(XEN) [2012-09-04 15:51:18] ............................................done.
-(XEN) [2012-09-04 15:51:19] Initial low memory virq threshold set at 0x4000 pages.
-(XEN) [2012-09-04 15:51:19] Std. Loglevel: All
-(XEN) [2012-09-04 15:51:19] Guest Loglevel: All
-(XEN) [2012-09-04 15:51:19] Xen is relinquishing VGA console.
-
-
-Complete dmesg attached.
-
-> Thanks,
-> Wei
-
->>>   -- Keir
->>
->>>>
->>>>
->>>>>   -- Keir
->>>>
->>
->>
->>
->>
->>
->>
-
-
-
-
-
-
--- 
-Best regards,
- Sander                            mailto:linux@eikelenboom.it
-------------0C30E31DB2590EB56
-Content-Type: text/plain;
- name="xl-dmesg.txt"
-Content-transfer-encoding: base64
-Content-Disposition: attachment;
- filename="xl-dmesg.txt"
-
-IF9fICBfXyAgICAgICAgICAgIF8gIF8gICAgX19fXyAgICBfX18gICAgICAgICAgICAgIF8g
-IF8gICAgICAgICAgICAgICAgICAgICANCiBcIFwvIC9fX18gXyBfXyAgIHwgfHwgfCAgfF9f
-XyBcICAvIF8gXCAgICBfIF9fIF9fX3wgfHwgfCAgICAgXyBfXyAgXyBfXyBfX18gDQogIFwg
-IC8vIF8gXCAnXyBcICB8IHx8IHxfICAgX18pIHx8IHwgfCB8X198ICdfXy8gX198IHx8IHxf
-IF9ffCAnXyBcfCAnX18vIF8gXA0KICAvICBcICBfXy8gfCB8IHwgfF9fICAgX3wgLyBfXy8g
-fCB8X3wgfF9ffCB8IHwgKF9ffF9fICAgX3xfX3wgfF8pIHwgfCB8ICBfXy8NCiAvXy9cX1xf
-X198X3wgfF98ICAgIHxffChfKV9fX19fKF8pX19fLyAgIHxffCAgXF9fX3wgIHxffCAgICB8
-IC5fXy98X3wgIFxfX198DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
-ICAgICAgICAgICAgICAgICAgICAgICAgfF98ICAgICAgICAgICAgIA0KKFhFTikgWGVuIHZl
-cnNpb24gNC4yLjAtcmM0LXByZSAocm9vdEBkeW5kbnMub3JnKSAoZ2NjIChEZWJpYW4gNC40
-LjUtOCkgNC40LjUpIE1vbiBTZXAgIDMgMjI6MzY6MzAgQ0VTVCAyMDEyDQooWEVOKSBMYXRl
-c3QgQ2hhbmdlU2V0OiBUdWUgQXVnIDI4IDIyOjQwOjQ1IDIwMTIgKzAxMDAgMjU3ODY6YTBi
-NWY4MTAyYTAwDQooWEVOKSBCb290bG9hZGVyOiBHUlVCIDEuOTgrMjAxMDA4MDQtMTQrc3F1
-ZWV6ZTENCihYRU4pIENvbW1hbmQgbGluZTogZG9tMF9tZW09MTAyNE0sbWF4OjEwMjRNIGxv
-Z2x2bD1hbGwgbG9nbHZsX2d1ZXN0PWFsbCBjb25zb2xlX3RpbWVzdGFtcHMgdmdhPWdmeC0x
-MjgweDEwMjR4MzIgY3B1aWRsZSBjcHVmcmVxPXhlbiBub3JlYm9vdCBkZWJ1ZyBsYXBpYz1k
-ZWJ1ZyBhcGljX3ZlcmJvc2l0eT1kZWJ1ZyBhcGljPWRlYnVnIGlvbW11PW9uLHZlcmJvc2Us
-ZGVidWcsbm8tc2hhcmVwdCBjb20xPTM4NDAwLDhuMSBjb25zb2xlPXZnYSxjb20xDQooWEVO
-KSBWaWRlbyBpbmZvcm1hdGlvbjoNCihYRU4pICBWR0EgaXMgZ3JhcGhpY3MgbW9kZSAxMjgw
-eDEwMjQsIDMyIGJwcA0KKFhFTikgIFZCRS9EREMgbWV0aG9kczogVjI7IEVESUQgdHJhbnNm
-ZXIgdGltZTogMSBzZWNvbmRzDQooWEVOKSBEaXNjIGluZm9ybWF0aW9uOg0KKFhFTikgIEZv
-dW5kIDIgTUJSIHNpZ25hdHVyZXMNCihYRU4pICBGb3VuZCAyIEVERCBpbmZvcm1hdGlvbiBz
-dHJ1Y3R1cmVzDQooWEVOKSBYZW4tZTgyMCBSQU0gbWFwOg0KKFhFTikgIDAwMDAwMDAwMDAw
-MDAwMDAgLSAwMDAwMDAwMDAwMDliMDAwICh1c2FibGUpDQooWEVOKSAgMDAwMDAwMDAwMDA5
-YjAwMCAtIDAwMDAwMDAwMDAwYTAwMDAgKHJlc2VydmVkKQ0KKFhFTikgIDAwMDAwMDAwMDAw
-ZTQwMDAgLSAwMDAwMDAwMDAwMTAwMDAwIChyZXNlcnZlZCkNCihYRU4pICAwMDAwMDAwMDAw
-MTAwMDAwIC0gMDAwMDAwMDBhZmU5MDAwMCAodXNhYmxlKQ0KKFhFTikgIDAwMDAwMDAwYWZl
-OTAwMDAgLSAwMDAwMDAwMGFmZTllMDAwIChBQ1BJIGRhdGEpDQooWEVOKSAgMDAwMDAwMDBh
-ZmU5ZTAwMCAtIDAwMDAwMDAwYWZlZTAwMDAgKEFDUEkgTlZTKQ0KKFhFTikgIDAwMDAwMDAw
-YWZlZTAwMDAgLSAwMDAwMDAwMGFmZjAwMDAwIChyZXNlcnZlZCkNCihYRU4pICAwMDAwMDAw
-MGZmZTAwMDAwIC0gMDAwMDAwMDEwMDAwMDAwMCAocmVzZXJ2ZWQpDQooWEVOKSAgMDAwMDAw
-MDEwMDAwMDAwMCAtIDAwMDAwMDAyNTAwMDAwMDAgKHVzYWJsZSkNCihYRU4pIEFDUEk6IFJT
-RFAgMDAwRkIxMjAsIDAwMTQgKHIwIEFDUElBTSkNCihYRU4pIEFDUEk6IFJTRFQgQUZFOTAw
-MDAsIDAwNDggKHIxIE1TSSAgICBPRU1TTElDICAyMDEwMDYyMiBNU0ZUICAgICAgIDk3KQ0K
-KFhFTikgQUNQSTogRkFDUCBBRkU5MDIwMCwgMDA4NCAocjEgNzY0ME1TIEE3NjQwMTAwIDIw
-MTAwNjIyIE1TRlQgICAgICAgOTcpDQooWEVOKSBBQ1BJOiBEU0RUIEFGRTkwNUUwLCA5NDQ5
-IChyMSAgQTc2NDAgQTc2NDAxMDAgICAgICAxMDAgSU5UTCAyMDA1MTExNykNCihYRU4pIEFD
-UEk6IEZBQ1MgQUZFOUUwMDAsIDAwNDANCihYRU4pIEFDUEk6IEFQSUMgQUZFOTAzOTAsIDAw
-ODggKHIxIDc2NDBNUyBBNzY0MDEwMCAyMDEwMDYyMiBNU0ZUICAgICAgIDk3KQ0KKFhFTikg
-QUNQSTogTUNGRyBBRkU5MDQyMCwgMDAzQyAocjEgNzY0ME1TIE9FTU1DRkcgIDIwMTAwNjIy
-IE1TRlQgICAgICAgOTcpDQooWEVOKSBBQ1BJOiBTTElDIEFGRTkwNDYwLCAwMTc2IChyMSBN
-U0kgICAgT0VNU0xJQyAgMjAxMDA2MjIgTVNGVCAgICAgICA5NykNCihYRU4pIEFDUEk6IE9F
-TUIgQUZFOUUwNDAsIDAwNzIgKHIxIDc2NDBNUyBBNzY0MDEwMCAyMDEwMDYyMiBNU0ZUICAg
-ICAgIDk3KQ0KKFhFTikgQUNQSTogU1JBVCBBRkU5QTVFMCwgMDEwOCAocjMgQU1EICAgIEZB
-TV9GXzEwICAgICAgICAyIEFNRCAgICAgICAgIDEpDQooWEVOKSBBQ1BJOiBIUEVUIEFGRTlB
-NkYwLCAwMDM4IChyMSA3NjQwTVMgT0VNSFBFVCAgMjAxMDA2MjIgTVNGVCAgICAgICA5NykN
-CihYRU4pIEFDUEk6IElWUlMgQUZFOUE3MzAsIDAwRjggKHIxICBBTUQgICAgIFJEODkwUyAg
-IDIwMjAzMSBBTUQgICAgICAgICAwKQ0KKFhFTikgQUNQSTogU1NEVCBBRkU5QTgzMCwgMERB
-NCAocjEgQSBNIEkgIFBPV0VSTk9XICAgICAgICAxIEFNRCAgICAgICAgIDEpDQooWEVOKSBT
-eXN0ZW0gUkFNOiA4MTkwTUIgKDgzODY3MzJrQikNCihYRU4pIFNSQVQ6IFBYTSAwIC0+IEFQ
-SUMgMCAtPiBOb2RlIDANCihYRU4pIFNSQVQ6IFBYTSAwIC0+IEFQSUMgMSAtPiBOb2RlIDAN
-CihYRU4pIFNSQVQ6IFBYTSAwIC0+IEFQSUMgMiAtPiBOb2RlIDANCihYRU4pIFNSQVQ6IFBY
-TSAwIC0+IEFQSUMgMyAtPiBOb2RlIDANCihYRU4pIFNSQVQ6IFBYTSAwIC0+IEFQSUMgNCAt
-PiBOb2RlIDANCihYRU4pIFNSQVQ6IFBYTSAwIC0+IEFQSUMgNSAtPiBOb2RlIDANCihYRU4p
-IFNSQVQ6IE5vZGUgMCBQWE0gMCAwLWEwMDAwDQooWEVOKSBTUkFUOiBOb2RlIDAgUFhNIDAg
-MTAwMDAwLWIwMDAwMDAwDQooWEVOKSBTUkFUOiBOb2RlIDAgUFhNIDAgMTAwMDAwMDAwLTI1
-MDAwMDAwMA0KKFhFTikgTlVNQTogQWxsb2NhdGVkIG1lbW5vZGVtYXAgZnJvbSAyNGQ5YTQw
-MDAgLSAyNGQ5YTcwMDANCihYRU4pIE5VTUE6IFVzaW5nIDggZm9yIHRoZSBoYXNoIHNoaWZ0
-Lg0KKFhFTikgRG9tYWluIGhlYXAgaW5pdGlhbGlzZWQNCihYRU4pIHZlc2FmYjogZnJhbWVi
-dWZmZXIgYXQgMHhmYjAwMDAwMCwgbWFwcGVkIHRvIDB4ZmZmZjgyYzAwMDAwMDAwMCwgdXNp
-bmcgNjE0NGssIHRvdGFsIDE0MzM2aw0KKFhFTikgdmVzYWZiOiBtb2RlIGlzIDEyODB4MTAy
-NHgzMiwgbGluZWxlbmd0aD01MTIwLCBmb250IDh4MTYNCihYRU4pIHZlc2FmYjogVHJ1ZWNv
-bG9yOiBzaXplPTg6ODo4OjgsIHNoaWZ0PTI0OjE2Ojg6MA0KKFhFTikgZm91bmQgU01QIE1Q
-LXRhYmxlIGF0IDAwMGZmNzgwDQooWEVOKSBETUkgcHJlc2VudC4NCihYRU4pIEFQSUMgYm9v
-dCBzdGF0ZSBpcyAneGFwaWMnDQooWEVOKSBVc2luZyBBUElDIGRyaXZlciBkZWZhdWx0DQoo
-WEVOKSBBQ1BJOiBQTS1UaW1lciBJTyBQb3J0OiAweDgwOA0KKFhFTikgQUNQSTogQUNQSSBT
-TEVFUCBJTkZPOiBwbTF4X2NudFs4MDQsMF0sIHBtMXhfZXZ0WzgwMCwwXQ0KKFhFTikgQUNQ
-STogICAgICAgICAgICAgICAgICB3YWtldXBfdmVjW2FmZTllMDBjXSwgdmVjX3NpemVbMjBd
-DQooWEVOKSBBQ1BJOiBMb2NhbCBBUElDIGFkZHJlc3MgMHhmZWUwMDAwMA0KKFhFTikgQUNQ
-STogTEFQSUMgKGFjcGlfaWRbMHgwMV0gbGFwaWNfaWRbMHgwMF0gZW5hYmxlZCkNCihYRU4p
-IFByb2Nlc3NvciAjMCAwOjEwIEFQSUMgdmVyc2lvbiAxNg0KKFhFTikgQUNQSTogTEFQSUMg
-KGFjcGlfaWRbMHgwMl0gbGFwaWNfaWRbMHgwMV0gZW5hYmxlZCkNCihYRU4pIFByb2Nlc3Nv
-ciAjMSAwOjEwIEFQSUMgdmVyc2lvbiAxNg0KKFhFTikgQUNQSTogTEFQSUMgKGFjcGlfaWRb
-MHgwM10gbGFwaWNfaWRbMHgwMl0gZW5hYmxlZCkNCihYRU4pIFByb2Nlc3NvciAjMiAwOjEw
-IEFQSUMgdmVyc2lvbiAxNg0KKFhFTikgQUNQSTogTEFQSUMgKGFjcGlfaWRbMHgwNF0gbGFw
-aWNfaWRbMHgwM10gZW5hYmxlZCkNCihYRU4pIFByb2Nlc3NvciAjMyAwOjEwIEFQSUMgdmVy
-c2lvbiAxNg0KKFhFTikgQUNQSTogTEFQSUMgKGFjcGlfaWRbMHgwNV0gbGFwaWNfaWRbMHgw
-NF0gZW5hYmxlZCkNCihYRU4pIFByb2Nlc3NvciAjNCAwOjEwIEFQSUMgdmVyc2lvbiAxNg0K
-KFhFTikgQUNQSTogTEFQSUMgKGFjcGlfaWRbMHgwNl0gbGFwaWNfaWRbMHgwNV0gZW5hYmxl
-ZCkNCihYRU4pIFByb2Nlc3NvciAjNSAwOjEwIEFQSUMgdmVyc2lvbiAxNg0KKFhFTikgQUNQ
-STogSU9BUElDIChpZFsweDA2XSBhZGRyZXNzWzB4ZmVjMDAwMDBdIGdzaV9iYXNlWzBdKQ0K
-KFhFTikgSU9BUElDWzBdOiBhcGljX2lkIDYsIHZlcnNpb24gMzMsIGFkZHJlc3MgMHhmZWMw
-MDAwMCwgR1NJIDAtMjMNCihYRU4pIEFDUEk6IElPQVBJQyAoaWRbMHgwN10gYWRkcmVzc1sw
-eGZlYzIwMDAwXSBnc2lfYmFzZVsyNF0pDQooWEVOKSBJT0FQSUNbMV06IGFwaWNfaWQgNywg
-dmVyc2lvbiAzMywgYWRkcmVzcyAweGZlYzIwMDAwLCBHU0kgMjQtNTUNCihYRU4pIEFDUEk6
-IElOVF9TUkNfT1ZSIChidXMgMCBidXNfaXJxIDAgZ2xvYmFsX2lycSAyIGRmbCBkZmwpDQoo
-WEVOKSBBQ1BJOiBJTlRfU1JDX09WUiAoYnVzIDAgYnVzX2lycSA5IGdsb2JhbF9pcnEgOSBs
-b3cgbGV2ZWwpDQooWEVOKSBBQ1BJOiBJUlEwIHVzZWQgYnkgb3ZlcnJpZGUuDQooWEVOKSBB
-Q1BJOiBJUlEyIHVzZWQgYnkgb3ZlcnJpZGUuDQooWEVOKSBBQ1BJOiBJUlE5IHVzZWQgYnkg
-b3ZlcnJpZGUuDQooWEVOKSBFbmFibGluZyBBUElDIG1vZGU6ICBGbGF0LiAgVXNpbmcgMiBJ
-L08gQVBJQ3MNCihYRU4pIEFDUEk6IEhQRVQgaWQ6IDB4ODMwMCBiYXNlOiAweGZlZDAwMDAw
-DQooWEVOKSBUYWJsZSBpcyBub3QgZm91bmQhDQooWEVOKSBVc2luZyBBQ1BJIChNQURUKSBm
-b3IgU01QIGNvbmZpZ3VyYXRpb24gaW5mb3JtYXRpb24NCihYRU4pIFNNUDogQWxsb3dpbmcg
-NiBDUFVzICgwIGhvdHBsdWcgQ1BVcykNCihYRU4pIG1hcHBlZCBBUElDIHRvIGZmZmY4MmMz
-ZmZkZmUwMDAgKGZlZTAwMDAwKQ0KKFhFTikgbWFwcGVkIElPQVBJQyB0byBmZmZmODJjM2Zm
-ZGZkMDAwIChmZWMwMDAwMCkNCihYRU4pIG1hcHBlZCBJT0FQSUMgdG8gZmZmZjgyYzNmZmRm
-YzAwMCAoZmVjMjAwMDApDQooWEVOKSBJUlEgbGltaXRzOiA1NiBHU0ksIDExMTIgTVNJL01T
-SS1YDQooWEVOKSBVc2luZyBzY2hlZHVsZXI6IFNNUCBDcmVkaXQgU2NoZWR1bGVyIChjcmVk
-aXQpDQooWEVOKSBEZXRlY3RlZCAzMjAwLjE0OCBNSHogcHJvY2Vzc29yLg0KKFhFTikgSW5p
-dGluZyBtZW1vcnkgc2hhcmluZy4NCihYRU4pIEFNRCBGYW0xMGggbWFjaGluZSBjaGVjayBy
-ZXBvcnRpbmcgZW5hYmxlZA0KKFhFTikgUENJOiBNQ0ZHIGNvbmZpZ3VyYXRpb24gMDogYmFz
-ZSBlMDAwMDAwMCBzZWdtZW50IDAwMDAgYnVzZXMgMDAgLSBmZg0KKFhFTikgUENJOiBOb3Qg
-dXNpbmcgTUNGRyBmb3Igc2VnbWVudCAwMDAwIGJ1cyAwMC1mZg0KKFhFTikgQU1ELVZpOiBG
-b3VuZCBNU0kgY2FwYWJpbGl0eSBibG9jayBhdCAweDU0DQooWEVOKSBBTUQtVmk6IEFDUEkg
-VGFibGU6DQooWEVOKSBBTUQtVmk6ICBTaWduYXR1cmUgSVZSUw0KKFhFTikgQU1ELVZpOiAg
-TGVuZ3RoIDB4ZjgNCihYRU4pIEFNRC1WaTogIFJldmlzaW9uIDB4MQ0KKFhFTikgQU1ELVZp
-OiAgQ2hlY2tTdW0gMHg2ZQ0KKFhFTikgQU1ELVZpOiAgT0VNX0lkIEFNRCAgDQooWEVOKSBB
-TUQtVmk6ICBPRU1fVGFibGVfSWQgUkQ4OTBTDQooWEVOKSBBTUQtVmk6ICBPRU1fUmV2aXNp
-b24gMHgyMDIwMzENCihYRU4pIEFNRC1WaTogIENyZWF0b3JfSWQgQU1EIA0KKFhFTikgQU1E
-LVZpOiAgQ3JlYXRvcl9SZXZpc2lvbiAweDANCihYRU4pIEFNRC1WaTogSVZSUyBCbG9jazoN
-CihYRU4pIEFNRC1WaTogIFR5cGUgMHgxMA0KKFhFTikgQU1ELVZpOiAgRmxhZ3MgMHgzZQ0K
-KFhFTikgQU1ELVZpOiAgTGVuZ3RoIDB4YzgNCihYRU4pIEFNRC1WaTogIERldl9JZCAweDIN
-CihYRU4pIEFNRC1WaTogSVZIRCBEZXZpY2UgRW50cnk6DQooWEVOKSBBTUQtVmk6ICBUeXBl
-IDB4Mw0KKFhFTikgQU1ELVZpOiAgRGV2X0lkIDB4MA0KKFhFTikgQU1ELVZpOiAgRmxhZ3Mg
-MHgwDQooWEVOKSBBTUQtVmk6ICBEZXZfSWQgUmFuZ2U6IDB4MCAtPiAweDINCihYRU4pIEFN
-RC1WaTogSVZIRCBEZXZpY2UgRW50cnk6DQooWEVOKSBBTUQtVmk6ICBUeXBlIDB4Mg0KKFhF
-TikgQU1ELVZpOiAgRGV2X0lkIDB4MTANCihYRU4pIEFNRC1WaTogIEZsYWdzIDB4MA0KKFhF
-TikgQU1ELVZpOiBJVkhEIERldmljZSBFbnRyeToNCihYRU4pIEFNRC1WaTogIFR5cGUgMHgy
-DQooWEVOKSBBTUQtVmk6ICBEZXZfSWQgMHhiMDANCihYRU4pIEFNRC1WaTogIEZsYWdzIDB4
-MA0KKFhFTikgQU1ELVZpOiBJVkhEIERldmljZSBFbnRyeToNCihYRU4pIEFNRC1WaTogIFR5
-cGUgMHgyDQooWEVOKSBBTUQtVmk6ICBEZXZfSWQgMHgxOA0KKFhFTikgQU1ELVZpOiAgRmxh
-Z3MgMHgwDQooWEVOKSBBTUQtVmk6IElWSEQgRGV2aWNlIEVudHJ5Og0KKFhFTikgQU1ELVZp
-OiAgVHlwZSAweDMNCihYRU4pIEFNRC1WaTogIERldl9JZCAweGEwMA0KKFhFTikgQU1ELVZp
-OiAgRmxhZ3MgMHgwDQooWEVOKSBBTUQtVmk6ICBEZXZfSWQgUmFuZ2U6IDB4YTAwIC0+IDB4
-YTA3DQooWEVOKSBBTUQtVmk6IElWSEQgRGV2aWNlIEVudHJ5Og0KKFhFTikgQU1ELVZpOiAg
-VHlwZSAweDINCihYRU4pIEFNRC1WaTogIERldl9JZCAweDI4DQooWEVOKSBBTUQtVmk6ICBG
-bGFncyAweDANCihYRU4pIEFNRC1WaTogSVZIRCBEZXZpY2UgRW50cnk6DQooWEVOKSBBTUQt
-Vmk6ICBUeXBlIDB4Mg0KKFhFTikgQU1ELVZpOiAgRGV2X0lkIDB4OTAwDQooWEVOKSBBTUQt
-Vmk6ICBGbGFncyAweDANCihYRU4pIEFNRC1WaTogSVZIRCBEZXZpY2UgRW50cnk6DQooWEVO
-KSBBTUQtVmk6ICBUeXBlIDB4Mg0KKFhFTikgQU1ELVZpOiAgRGV2X0lkIDB4MzANCihYRU4p
-IEFNRC1WaTogIEZsYWdzIDB4MA0KKFhFTikgQU1ELVZpOiBJVkhEIERldmljZSBFbnRyeToN
-CihYRU4pIEFNRC1WaTogIFR5cGUgMHgyDQooWEVOKSBBTUQtVmk6ICBEZXZfSWQgMHg4MDAN
-CihYRU4pIEFNRC1WaTogIEZsYWdzIDB4MA0KKFhFTikgQU1ELVZpOiBJVkhEIERldmljZSBF
-bnRyeToNCihYRU4pIEFNRC1WaTogIFR5cGUgMHgyDQooWEVOKSBBTUQtVmk6ICBEZXZfSWQg
-MHg1MA0KKFhFTikgQU1ELVZpOiAgRmxhZ3MgMHgwDQooWEVOKSBBTUQtVmk6IElWSEQgRGV2
-aWNlIEVudHJ5Og0KKFhFTikgQU1ELVZpOiAgVHlwZSAweDINCihYRU4pIEFNRC1WaTogIERl
-dl9JZCAweDcwMA0KKFhFTikgQU1ELVZpOiAgRmxhZ3MgMHgwDQooWEVOKSBBTUQtVmk6IElW
-SEQgRGV2aWNlIEVudHJ5Og0KKFhFTikgQU1ELVZpOiAgVHlwZSAweDINCihYRU4pIEFNRC1W
-aTogIERldl9JZCAweDU4DQooWEVOKSBBTUQtVmk6ICBGbGFncyAweDANCihYRU4pIEFNRC1W
-aTogSVZIRCBEZXZpY2UgRW50cnk6DQooWEVOKSBBTUQtVmk6ICBUeXBlIDB4Mw0KKFhFTikg
-QU1ELVZpOiAgRGV2X0lkIDB4NjAwDQooWEVOKSBBTUQtVmk6ICBGbGFncyAweDANCihYRU4p
-IEFNRC1WaTogIERldl9JZCBSYW5nZTogMHg2MDAgLT4gMHg2MDENCihYRU4pIEFNRC1WaTog
-SVZIRCBEZXZpY2UgRW50cnk6DQooWEVOKSBBTUQtVmk6ICBUeXBlIDB4Mg0KKFhFTikgQU1E
-LVZpOiAgRGV2X0lkIDB4NjANCihYRU4pIEFNRC1WaTogIEZsYWdzIDB4MA0KKFhFTikgQU1E
-LVZpOiBJVkhEIERldmljZSBFbnRyeToNCihYRU4pIEFNRC1WaTogIFR5cGUgMHgyDQooWEVO
-KSBBTUQtVmk6ICBEZXZfSWQgMHg1MDANCihYRU4pIEFNRC1WaTogIEZsYWdzIDB4MA0KKFhF
-TikgQU1ELVZpOiBJVkhEIERldmljZSBFbnRyeToNCihYRU4pIEFNRC1WaTogIFR5cGUgMHgy
-DQooWEVOKSBBTUQtVmk6ICBEZXZfSWQgMHg2OA0KKFhFTikgQU1ELVZpOiAgRmxhZ3MgMHgw
-DQooWEVOKSBBTUQtVmk6IElWSEQgRGV2aWNlIEVudHJ5Og0KKFhFTikgQU1ELVZpOiAgVHlw
-ZSAweDMNCihYRU4pIEFNRC1WaTogIERldl9JZCAweDQwMA0KKFhFTikgQU1ELVZpOiAgRmxh
-Z3MgMHgwDQooWEVOKSBBTUQtVmk6ICBEZXZfSWQgUmFuZ2U6IDB4NDAwIC0+IDB4NDA3DQoo
-WEVOKSBBTUQtVmk6IElWSEQgRGV2aWNlIEVudHJ5Og0KKFhFTikgQU1ELVZpOiAgVHlwZSAw
-eDINCihYRU4pIEFNRC1WaTogIERldl9JZCAweDg4DQooWEVOKSBBTUQtVmk6ICBGbGFncyAw
-eDANCihYRU4pIEFNRC1WaTogSVZIRCBEZXZpY2UgRW50cnk6DQooWEVOKSBBTUQtVmk6ICBU
-eXBlIDB4Mw0KKFhFTikgQU1ELVZpOiAgRGV2X0lkIDB4OTANCihYRU4pIEFNRC1WaTogIEZs
-YWdzIDB4MA0KKFhFTikgQU1ELVZpOiAgRGV2X0lkIFJhbmdlOiAweDkwIC0+IDB4OTINCihY
-RU4pIEFNRC1WaTogSVZIRCBEZXZpY2UgRW50cnk6DQooWEVOKSBBTUQtVmk6ICBUeXBlIDB4
-Mw0KKFhFTikgQU1ELVZpOiAgRGV2X0lkIDB4OTgNCihYRU4pIEFNRC1WaTogIEZsYWdzIDB4
-MA0KKFhFTikgQU1ELVZpOiAgRGV2X0lkIFJhbmdlOiAweDk4IC0+IDB4OWENCihYRU4pIEFN
-RC1WaTogSVZIRCBEZXZpY2UgRW50cnk6DQooWEVOKSBBTUQtVmk6ICBUeXBlIDB4Mg0KKFhF
-TikgQU1ELVZpOiAgRGV2X0lkIDB4YTANCihYRU4pIEFNRC1WaTogIEZsYWdzIDB4ZDcNCihY
-RU4pIEFNRC1WaTogSVZIRCBEZXZpY2UgRW50cnk6DQooWEVOKSBBTUQtVmk6ICBUeXBlIDB4
-Mg0KKFhFTikgQU1ELVZpOiAgRGV2X0lkIDB4YTMNCihYRU4pIEFNRC1WaTogIEZsYWdzIDB4
-MA0KKFhFTikgQU1ELVZpOiBJVkhEIERldmljZSBFbnRyeToNCihYRU4pIEFNRC1WaTogIFR5
-cGUgMHgyDQooWEVOKSBBTUQtVmk6ICBEZXZfSWQgMHhhNA0KKFhFTikgQU1ELVZpOiAgRmxh
-Z3MgMHgwDQooWEVOKSBBTUQtVmk6IElWSEQgRGV2aWNlIEVudHJ5Og0KKFhFTikgQU1ELVZp
-OiAgVHlwZSAweDANCihYRU4pIEFNRC1WaTogIERldl9JZCAweDANCihYRU4pIEFNRC1WaTog
-IEZsYWdzIDB4MA0KKFhFTikgQU1ELVZpOiBJVkhEIERldmljZSBFbnRyeToNCihYRU4pIEFN
-RC1WaTogIFR5cGUgMHg0Mw0KKFhFTikgQU1ELVZpOiAgRGV2X0lkIDB4MzAwDQooWEVOKSBB
-TUQtVmk6ICBGbGFncyAweDANCihYRU4pIEFNRC1WaTogIERldl9JZCBSYW5nZTogMHgzMDAg
-LT4gMHgzZmYNCihYRU4pIEFNRC1WaTogIERldl9JZCBBbGlhczogMHhhNA0KKFhFTikgQU1E
-LVZpOiBJVkhEIERldmljZSBFbnRyeToNCihYRU4pIEFNRC1WaTogIFR5cGUgMHgyDQooWEVO
-KSBBTUQtVmk6ICBEZXZfSWQgMHhhNQ0KKFhFTikgQU1ELVZpOiAgRmxhZ3MgMHgwDQooWEVO
-KSBBTUQtVmk6IElWSEQgRGV2aWNlIEVudHJ5Og0KKFhFTikgQU1ELVZpOiAgVHlwZSAweDIN
-CihYRU4pIEFNRC1WaTogIERldl9JZCAweGE4DQooWEVOKSBBTUQtVmk6ICBGbGFncyAweDAN
-CihYRU4pIEFNRC1WaTogSVZIRCBEZXZpY2UgRW50cnk6DQooWEVOKSBBTUQtVmk6ICBUeXBl
-IDB4Mg0KKFhFTikgQU1ELVZpOiAgRGV2X0lkIDB4YTkNCihYRU4pIEFNRC1WaTogIEZsYWdz
-IDB4MA0KKFhFTikgQU1ELVZpOiBJVkhEIERldmljZSBFbnRyeToNCihYRU4pIEFNRC1WaTog
-IFR5cGUgMHgyDQooWEVOKSBBTUQtVmk6ICBEZXZfSWQgMHgxMDANCihYRU4pIEFNRC1WaTog
-IEZsYWdzIDB4MA0KKFhFTikgQU1ELVZpOiBJVkhEIERldmljZSBFbnRyeToNCihYRU4pIEFN
-RC1WaTogIFR5cGUgMHgzDQooWEVOKSBBTUQtVmk6ICBEZXZfSWQgMHhiMA0KKFhFTikgQU1E
-LVZpOiAgRmxhZ3MgMHgwDQooWEVOKSBBTUQtVmk6ICBEZXZfSWQgUmFuZ2U6IDB4YjAgLT4g
-MHhiMg0KKFhFTikgQU1ELVZpOiBJVkhEIERldmljZSBFbnRyeToNCihYRU4pIEFNRC1WaTog
-IFR5cGUgMHgwDQooWEVOKSBBTUQtVmk6ICBEZXZfSWQgMHgwDQooWEVOKSBBTUQtVmk6ICBG
-bGFncyAweDANCihYRU4pIEFNRC1WaTogSVZIRCBEZXZpY2UgRW50cnk6DQooWEVOKSBBTUQt
-Vmk6ICBUeXBlIDB4NDgNCihYRU4pIEFNRC1WaTogIERldl9JZCAweDANCihYRU4pIEFNRC1W
-aTogIEZsYWdzIDB4ZDcNCihYRU4pIEFNRC1WaTogSVZIRCBEZXZpY2UgRW50cnk6DQooWEVO
-KSBBTUQtVmk6ICBUeXBlIDB4NDgNCihYRU4pIEFNRC1WaTogIERldl9JZCAweDANCihYRU4p
-IEFNRC1WaTogIEZsYWdzIDB4MA0KKFhFTikgQU1ELVZpOiBJT01NVSAwIEVuYWJsZWQuDQoo
-WEVOKSBBTUQtVmk6IEVuYWJsaW5nIGdsb2JhbCB2ZWN0b3IgbWFwDQooWEVOKSBJL08gdmly
-dHVhbGlzYXRpb24gZW5hYmxlZA0KKFhFTikgIC0gRG9tMCBtb2RlOiBSZWxheGVkDQooWEVO
-KSBHZXR0aW5nIFZFUlNJT046IDgwMDUwMDEwDQooWEVOKSBHZXR0aW5nIFZFUlNJT046IDgw
-MDUwMDEwDQooWEVOKSBHZXR0aW5nIElEOiAwDQooWEVOKSBHZXR0aW5nIExWVDA6IDcwMA0K
-KFhFTikgR2V0dGluZyBMVlQxOiA0MDANCihYRU4pIGVuYWJsZWQgRXh0SU5UIG9uIENQVSMw
-DQooWEVOKSBFU1IgdmFsdWUgYmVmb3JlIGVuYWJsaW5nIHZlY3RvcjogMHgwMDAwMDAwNCAg
-YWZ0ZXI6IDB4MDAwMDAwMDANCihYRU4pIEVOQUJMSU5HIElPLUFQSUMgSVJRcw0KKFhFTikg
-IC0+IFVzaW5nIG5ldyBBQ0sgbWV0aG9kDQooWEVOKSBpbml0IElPX0FQSUMgSVJRcw0KKFhF
-TikgIElPLUFQSUMgKGFwaWNpZC1waW4pIDYtMCwgNi0xNiwgNi0xNywgNi0xOCwgNi0xOSwg
-Ni0yMCwgNi0yMSwgNi0yMiwgNi0yMywgNy0wLCA3LTEsIDctMiwgNy0zLCA3LTQsIDctNSwg
-Ny02LCA3LTcsIDctOCwgNy05LCA3LTEwLCA3LTExLCA3LTEyLCA3LTEzLCA3LTE0LCA3LTE1
-LCA3LTE2LCA3LTE3LCA3LTE4LCA3LTE5LCA3LTIwLCA3LTIxLCA3LTIyLCA3LTIzLCA3LTI0
-LCA3LTI1LCA3LTI2LCA3LTI3LCA3LTI4LCA3LTI5LCA3LTMwLCA3LTMxIG5vdCBjb25uZWN0
-ZWQuDQooWEVOKSAuLlRJTUVSOiB2ZWN0b3I9MHhGMCBhcGljMT0wIHBpbjE9MiBhcGljMj0t
-MSBwaW4yPS0xDQooWEVOKSBudW1iZXIgb2YgTVAgSVJRIHNvdXJjZXM6IDE1Lg0KKFhFTikg
-bnVtYmVyIG9mIElPLUFQSUMgIzYgcmVnaXN0ZXJzOiAyNC4NCihYRU4pIG51bWJlciBvZiBJ
-Ty1BUElDICM3IHJlZ2lzdGVyczogMzIuDQooWEVOKSB0ZXN0aW5nIHRoZSBJTyBBUElDLi4u
-Li4uLi4uLi4uLi4uLi4uLi4uLi4NCihYRU4pIElPIEFQSUMgIzYuLi4uLi4NCihYRU4pIC4u
-Li4gcmVnaXN0ZXIgIzAwOiAwNjAwMDAwMA0KKFhFTikgLi4uLi4uLiAgICA6IHBoeXNpY2Fs
-IEFQSUMgaWQ6IDA2DQooWEVOKSAuLi4uLi4uICAgIDogRGVsaXZlcnkgVHlwZTogMA0KKFhF
-TikgLi4uLi4uLiAgICA6IExUUyAgICAgICAgICA6IDANCihYRU4pIC4uLi4gcmVnaXN0ZXIg
-IzAxOiAwMDE3ODAyMQ0KKFhFTikgLi4uLi4uLiAgICAgOiBtYXggcmVkaXJlY3Rpb24gZW50
-cmllczogMDAxNw0KKFhFTikgLi4uLi4uLiAgICAgOiBQUlEgaW1wbGVtZW50ZWQ6IDENCihY
-RU4pIC4uLi4uLi4gICAgIDogSU8gQVBJQyB2ZXJzaW9uOiAwMDIxDQooWEVOKSAuLi4uIHJl
-Z2lzdGVyICMwMjogMDYwMDAwMDANCihYRU4pIC4uLi4uLi4gICAgIDogYXJiaXRyYXRpb246
-IDA2DQooWEVOKSAuLi4uIHJlZ2lzdGVyICMwMzogMDcwMDAwMDANCihYRU4pIC4uLi4uLi4g
-ICAgIDogQm9vdCBEVCAgICA6IDANCihYRU4pIC4uLi4gSVJRIHJlZGlyZWN0aW9uIHRhYmxl
-Og0KKFhFTikgIE5SIExvZyBQaHkgTWFzayBUcmlnIElSUiBQb2wgU3RhdCBEZXN0IERlbGkg
-VmVjdDogICANCihYRU4pICAwMCAwMDAgMDAgIDEgICAgMCAgICAwICAgMCAgIDAgICAgMCAg
-ICAwICAgIDAwDQooWEVOKSAgMDEgMDAxIDAxICAwICAgIDAgICAgMCAgIDAgICAwICAgIDEg
-ICAgMSAgICAzMA0KKFhFTikgIDAyIDAwMSAwMSAgMCAgICAwICAgIDAgICAwICAgMCAgICAx
-ICAgIDEgICAgRjANCihYRU4pICAwMyAwMDEgMDEgIDAgICAgMCAgICAwICAgMCAgIDAgICAg
-MSAgICAxICAgIDM4DQooWEVOKSAgMDQgMDAxIDAxICAwICAgIDAgICAgMCAgIDAgICAwICAg
-IDEgICAgMSAgICBGMQ0KKFhFTikgIDA1IDAwMSAwMSAgMCAgICAwICAgIDAgICAwICAgMCAg
-ICAxICAgIDEgICAgNDANCihYRU4pICAwNiAwMDEgMDEgIDAgICAgMCAgICAwICAgMCAgIDAg
-ICAgMSAgICAxICAgIDQ4DQooWEVOKSAgMDcgMDAxIDAxICAwICAgIDAgICAgMCAgIDAgICAw
-ICAgIDEgICAgMSAgICA1MA0KKFhFTikgIDA4IDAwMSAwMSAgMCAgICAwICAgIDAgICAwICAg
-MCAgICAxICAgIDEgICAgNTgNCihYRU4pICAwOSAwMDEgMDEgIDEgICAgMSAgICAwICAgMSAg
-IDAgICAgMSAgICAxICAgIDYwDQooWEVOKSAgMGEgMDAxIDAxICAwICAgIDAgICAgMCAgIDAg
-ICAwICAgIDEgICAgMSAgICA2OA0KKFhFTikgIDBiIDAwMSAwMSAgMCAgICAwICAgIDAgICAw
-ICAgMCAgICAxICAgIDEgICAgNzANCihYRU4pICAwYyAwMDEgMDEgIDAgICAgMCAgICAwICAg
-MCAgIDAgICAgMSAgICAxICAgIDc4DQooWEVOKSAgMGQgMDAxIDAxICAwICAgIDAgICAgMCAg
-IDAgICAwICAgIDEgICAgMSAgICA4OA0KKFhFTikgIDBlIDAwMSAwMSAgMCAgICAwICAgIDAg
-ICAwICAgMCAgICAxICAgIDEgICAgOTANCihYRU4pICAwZiAwMDEgMDEgIDAgICAgMCAgICAw
-ICAgMCAgIDAgICAgMSAgICAxICAgIDk4DQooWEVOKSAgMTAgMDAwIDAwICAxICAgIDAgICAg
-MCAgIDAgICAwICAgIDAgICAgMCAgICAwMA0KKFhFTikgIDExIDAwMCAwMCAgMSAgICAwICAg
-IDAgICAwICAgMCAgICAwICAgIDAgICAgMDANCihYRU4pICAxMiAwMDAgMDAgIDEgICAgMCAg
-ICAwICAgMCAgIDAgICAgMCAgICAwICAgIDAwDQooWEVOKSAgMTMgMDAwIDAwICAxICAgIDAg
-ICAgMCAgIDAgICAwICAgIDAgICAgMCAgICAwMA0KKFhFTikgIDE0IDAwMCAwMCAgMSAgICAw
-ICAgIDAgICAwICAgMCAgICAwICAgIDAgICAgMDANCihYRU4pICAxNSAwMDAgMDAgIDEgICAg
-MCAgICAwICAgMCAgIDAgICAgMCAgICAwICAgIDAwDQooWEVOKSAgMTYgMDAwIDAwICAxICAg
-IDAgICAgMCAgIDAgICAwICAgIDAgICAgMCAgICAwMA0KKFhFTikgIDE3IDAwMCAwMCAgMSAg
-ICAwICAgIDAgICAwICAgMCAgICAwICAgIDAgICAgMDANCihYRU4pIElPIEFQSUMgIzcuLi4u
-Li4NCihYRU4pIC4uLi4gcmVnaXN0ZXIgIzAwOiAwNzAwMDAwMA0KKFhFTikgLi4uLi4uLiAg
-ICA6IHBoeXNpY2FsIEFQSUMgaWQ6IDA3DQooWEVOKSAuLi4uLi4uICAgIDogRGVsaXZlcnkg
-VHlwZTogMA0KKFhFTikgLi4uLi4uLiAgICA6IExUUyAgICAgICAgICA6IDANCihYRU4pIC4u
-Li4gcmVnaXN0ZXIgIzAxOiAwMDFGODAyMQ0KKFhFTikgLi4uLi4uLiAgICAgOiBtYXggcmVk
-aXJlY3Rpb24gZW50cmllczogMDAxRg0KKFhFTikgLi4uLi4uLiAgICAgOiBQUlEgaW1wbGVt
-ZW50ZWQ6IDENCihYRU4pIC4uLi4uLi4gICAgIDogSU8gQVBJQyB2ZXJzaW9uOiAwMDIxDQoo
-WEVOKSAuLi4uIHJlZ2lzdGVyICMwMjogMDAwMDAwMDANCihYRU4pIC4uLi4uLi4gICAgIDog
-YXJiaXRyYXRpb246IDAwDQooWEVOKSAuLi4uIElSUSByZWRpcmVjdGlvbiB0YWJsZToNCihY
-RU4pICBOUiBMb2cgUGh5IE1hc2sgVHJpZyBJUlIgUG9sIFN0YXQgRGVzdCBEZWxpIFZlY3Q6
-ICAgDQooWEVOKSAgMDAgMDAwIDAwICAxICAgIDAgICAgMCAgIDAgICAwICAgIDAgICAgMCAg
-ICAwMA0KKFhFTikgIDAxIDAwMCAwMCAgMSAgICAwICAgIDAgICAwICAgMCAgICAwICAgIDAg
-ICAgMDANCihYRU4pICAwMiAwMDAgMDAgIDEgICAgMCAgICAwICAgMCAgIDAgICAgMCAgICAw
-ICAgIDAwDQooWEVOKSAgMDMgMDAwIDAwICAxICAgIDAgICAgMCAgIDAgICAwICAgIDAgICAg
-MCAgICAwMA0KKFhFTikgIDA0IDAwMCAwMCAgMSAgICAwICAgIDAgICAwICAgMCAgICAwICAg
-IDAgICAgMDANCihYRU4pICAwNSAwMDAgMDAgIDEgICAgMCAgICAwICAgMCAgIDAgICAgMCAg
-ICAwICAgIDAwDQooWEVOKSAgMDYgMDAwIDAwICAxICAgIDAgICAgMCAgIDAgICAwICAgIDAg
-ICAgMCAgICAwMA0KKFhFTikgIDA3IDAwMCAwMCAgMSAgICAwICAgIDAgICAwICAgMCAgICAw
-ICAgIDAgICAgMDANCihYRU4pICAwOCAwMDAgMDAgIDEgICAgMCAgICAwICAgMCAgIDAgICAg
-MCAgICAwICAgIDAwDQooWEVOKSAgMDkgMDAwIDAwICAxICAgIDAgICAgMCAgIDAgICAwICAg
-IDAgICAgMCAgICAwMA0KKFhFTikgIDBhIDAwMCAwMCAgMSAgICAwICAgIDAgICAwICAgMCAg
-ICAwICAgIDAgICAgMDANCihYRU4pICAwYiAwMDAgMDAgIDEgICAgMCAgICAwICAgMCAgIDAg
-ICAgMCAgICAwICAgIDAwDQooWEVOKSAgMGMgMDAwIDAwICAxICAgIDAgICAgMCAgIDAgICAw
-ICAgIDAgICAgMCAgICAwMA0KKFhFTikgIDBkIDAwMCAwMCAgMSAgICAwICAgIDAgICAwICAg
-MCAgICAwICAgIDAgICAgMDANCihYRU4pICAwZSAwMDAgMDAgIDEgICAgMCAgICAwICAgMCAg
-IDAgICAgMCAgICAwICAgIDAwDQooWEVOKSAgMGYgMDAwIDAwICAxICAgIDAgICAgMCAgIDAg
-ICAwICAgIDAgICAgMCAgICAwMA0KKFhFTikgIDEwIDAwMCAwMCAgMSAgICAwICAgIDAgICAw
-ICAgMCAgICAwICAgIDAgICAgMDANCihYRU4pICAxMSAwMDAgMDAgIDEgICAgMCAgICAwICAg
-MCAgIDAgICAgMCAgICAwICAgIDAwDQooWEVOKSAgMTIgMDAwIDAwICAxICAgIDAgICAgMCAg
-IDAgICAwICAgIDAgICAgMCAgICAwMA0KKFhFTikgIDEzIDAwMCAwMCAgMSAgICAwICAgIDAg
-ICAwICAgMCAgICAwICAgIDAgICAgMDANCihYRU4pICAxNCAwMDAgMDAgIDEgICAgMCAgICAw
-ICAgMCAgIDAgICAgMCAgICAwICAgIDAwDQooWEVOKSAgMTUgMDAwIDAwICAxICAgIDAgICAg
-MCAgIDAgICAwICAgIDAgICAgMCAgICAwMA0KKFhFTikgIDE2IDAwMCAwMCAgMSAgICAwICAg
-IDAgICAwICAgMCAgICAwICAgIDAgICAgMDANCihYRU4pICAxNyAwMDAgMDAgIDEgICAgMCAg
-ICAwICAgMCAgIDAgICAgMCAgICAwICAgIDAwDQooWEVOKSAgMTggMDAwIDAwICAxICAgIDAg
-ICAgMCAgIDAgICAwICAgIDAgICAgMCAgICAwMA0KKFhFTikgIDE5IDAwMCAwMCAgMSAgICAw
-ICAgIDAgICAwICAgMCAgICAwICAgIDAgICAgMDANCihYRU4pICAxYSAwMDAgMDAgIDEgICAg
-MCAgICAwICAgMCAgIDAgICAgMCAgICAwICAgIDAwDQooWEVOKSAgMWIgMDAwIDAwICAxICAg
-IDAgICAgMCAgIDAgICAwICAgIDAgICAgMCAgICAwMA0KKFhFTikgIDFjIDAwMCAwMCAgMSAg
-ICAwICAgIDAgICAwICAgMCAgICAwICAgIDAgICAgMDANCihYRU4pICAxZCAwMDAgMDAgIDEg
-ICAgMCAgICAwICAgMCAgIDAgICAgMCAgICAwICAgIDAwDQooWEVOKSAgMWUgMDAwIDAwICAx
-ICAgIDAgICAgMCAgIDAgICAwICAgIDAgICAgMCAgICAwMA0KKFhFTikgIDFmIDAwMCAwMCAg
-MSAgICAwICAgIDAgICAwICAgMCAgICAwICAgIDAgICAgMDANCihYRU4pIFVzaW5nIHZlY3Rv
-ci1iYXNlZCBpbmRleGluZw0KKFhFTikgSVJRIHRvIHBpbiBtYXBwaW5nczoNCihYRU4pIElS
-UTI0MCAtPiAwOjINCihYRU4pIElSUTQ4IC0+IDA6MQ0KKFhFTikgSVJRNTYgLT4gMDozDQoo
-WEVOKSBJUlEyNDEgLT4gMDo0DQooWEVOKSBJUlE2NCAtPiAwOjUNCihYRU4pIElSUTcyIC0+
-IDA6Ng0KKFhFTikgSVJRODAgLT4gMDo3DQooWEVOKSBJUlE4OCAtPiAwOjgNCihYRU4pIElS
-UTk2IC0+IDA6OQ0KKFhFTikgSVJRMTA0IC0+IDA6MTANCihYRU4pIElSUTExMiAtPiAwOjEx
-DQooWEVOKSBJUlExMjAgLT4gMDoxMg0KKFhFTikgSVJRMTM2IC0+IDA6MTMNCihYRU4pIElS
-UTE0NCAtPiAwOjE0DQooWEVOKSBJUlExNTIgLT4gMDoxNQ0KKFhFTikgLi4uLi4uLi4uLi4u
-Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uIGRvbmUuDQooWEVOKSBVc2luZyBsb2NhbCBBUElD
-IHRpbWVyIGludGVycnVwdHMuDQooWEVOKSBjYWxpYnJhdGluZyBBUElDIHRpbWVyIC4uLg0K
-KFhFTikgLi4uLi4gQ1BVIGNsb2NrIHNwZWVkIGlzIDMyMDAuMTM1NyBNSHouDQooWEVOKSAu
-Li4uLiBob3N0IGJ1cyBjbG9jayBzcGVlZCBpcyAyMDAuMDA4MyBNSHouDQooWEVOKSAuLi4u
-LiBidXNfc2NhbGUgPSAweDAwMDBDQ0Q3DQooWEVOKSBbMjAxMi0wOS0wNCAxNTo1MToxNV0g
-UGxhdGZvcm0gdGltZXIgaXMgMTQuMzE4TUh6IEhQRVQNCihYRU4pIFsyMDEyLTA5LTA0IDE1
-OjUxOjE1XSBBbGxvY2F0ZWQgY29uc29sZSByaW5nIG9mIDY0IEtpQi4NCihYRU4pIFsyMDEy
-LTA5LTA0IDE1OjUxOjE1XSBIVk06IEFTSURzIGVuYWJsZWQuDQooWEVOKSBbMjAxMi0wOS0w
-NCAxNTo1MToxNV0gU1ZNOiBTdXBwb3J0ZWQgYWR2YW5jZWQgZmVhdHVyZXM6DQooWEVOKSBb
-MjAxMi0wOS0wNCAxNTo1MToxNV0gIC0gTmVzdGVkIFBhZ2UgVGFibGVzIChOUFQpDQooWEVO
-KSBbMjAxMi0wOS0wNCAxNTo1MToxNV0gIC0gTGFzdCBCcmFuY2ggUmVjb3JkIChMQlIpIFZp
-cnR1YWxpc2F0aW9uDQooWEVOKSBbMjAxMi0wOS0wNCAxNTo1MToxNV0gIC0gTmV4dC1SSVAg
-U2F2ZWQgb24gI1ZNRVhJVA0KKFhFTikgWzIwMTItMDktMDQgMTU6NTE6MTVdICAtIFBhdXNl
-LUludGVyY2VwdCBGaWx0ZXINCihYRU4pIFsyMDEyLTA5LTA0IDE1OjUxOjE1XSBIVk06IFNW
-TSBlbmFibGVkDQooWEVOKSBbMjAxMi0wOS0wNCAxNTo1MToxNV0gSFZNOiBIYXJkd2FyZSBB
-c3Npc3RlZCBQYWdpbmcgKEhBUCkgZGV0ZWN0ZWQNCihYRU4pIFsyMDEyLTA5LTA0IDE1OjUx
-OjE1XSBIVk06IEhBUCBwYWdlIHNpemVzOiA0a0IsIDJNQiwgMUdCDQooWEVOKSBbMjAxMi0w
-OS0wNCAxNTo1MToxNF0gbWFza2VkIEV4dElOVCBvbiBDUFUjMQ0KKFhFTikgWzIwMTItMDkt
-MDQgMTU6NTE6MTVdIG1pY3JvY29kZTogY29sbGVjdF9jcHVfaW5mbzogcGF0Y2hfaWQ9MHgx
-MDAwMGJmDQooWEVOKSBbMjAxMi0wOS0wNCAxNTo1MToxNF0gbWFza2VkIEV4dElOVCBvbiBD
-UFUjMg0KKFhFTikgWzIwMTItMDktMDQgMTU6NTE6MTVdIG1pY3JvY29kZTogY29sbGVjdF9j
-cHVfaW5mbzogcGF0Y2hfaWQ9MHgxMDAwMGJmDQooWEVOKSBbMjAxMi0wOS0wNCAxNTo1MTox
-NF0gbWFza2VkIEV4dElOVCBvbiBDUFUjMw0KKFhFTikgWzIwMTItMDktMDQgMTU6NTE6MTVd
-IG1pY3JvY29kZTogY29sbGVjdF9jcHVfaW5mbzogcGF0Y2hfaWQ9MHgxMDAwMGJmDQooWEVO
-KSBbMjAxMi0wOS0wNCAxNTo1MToxNF0gbWFza2VkIEV4dElOVCBvbiBDUFUjNA0KKFhFTikg
-WzIwMTItMDktMDQgMTU6NTE6MTVdIG1pY3JvY29kZTogY29sbGVjdF9jcHVfaW5mbzogcGF0
-Y2hfaWQ9MHgxMDAwMGJmDQooWEVOKSBbMjAxMi0wOS0wNCAxNTo1MToxNF0gbWFza2VkIEV4
-dElOVCBvbiBDUFUjNQ0KKFhFTikgWzIwMTItMDktMDQgMTU6NTE6MTVdIEJyb3VnaHQgdXAg
-NiBDUFVzDQooWEVOKSBbMjAxMi0wOS0wNCAxNTo1MToxNV0gbWljcm9jb2RlOiBjb2xsZWN0
-X2NwdV9pbmZvOiBwYXRjaF9pZD0weDEwMDAwYmYNCihYRU4pIFsyMDEyLTA5LTA0IDE1OjUx
-OjE1XSBIUEVUJ3MgTVNJIG1vZGUgaGFzbid0IGJlZW4gc3VwcG9ydGVkIHdoZW4gSW50ZXJy
-dXB0IFJlbWFwcGluZyBpcyBlbmFibGVkLg0KKFhFTikgWzIwMTItMDktMDQgMTU6NTE6MTVd
-IEFDUEkgc2xlZXAgbW9kZXM6IFMzDQooWEVOKSBbMjAxMi0wOS0wNCAxNTo1MToxNV0gTUNB
-OiBVc2UgaHcgdGhyZXNob2xkaW5nIHRvIGFkanVzdCBwb2xsaW5nIGZyZXF1ZW5jeQ0KKFhF
-TikgWzIwMTItMDktMDQgMTU6NTE6MTVdIG1jaGVja19wb2xsOiBNYWNoaW5lIGNoZWNrIHBv
-bGxpbmcgdGltZXIgc3RhcnRlZC4NCihYRU4pIFsyMDEyLTA5LTA0IDE1OjUxOjE1XSBYZW5v
-cHJvZmlsZTogRmFpbGVkIHRvIHNldHVwIElCUyBMVlQgb2Zmc2V0LCBJQlNDVEwgPSAweGZm
-ZmZmZmZmDQooWEVOKSBbMjAxMi0wOS0wNCAxNTo1MToxNV0gKioqIExPQURJTkcgRE9NQUlO
-IDAgKioqDQooWEVOKSBbMjAxMi0wOS0wNCAxNTo1MToxNl0gZWxmX3BhcnNlX2JpbmFyeTog
-cGhkcjogcGFkZHI9MHgxMDAwMDAwIG1lbXN6PTB4ZDZhMDAwDQooWEVOKSBbMjAxMi0wOS0w
-NCAxNTo1MToxNl0gZWxmX3BhcnNlX2JpbmFyeTogcGhkcjogcGFkZHI9MHgxZTAwMDAwIG1l
-bXN6PTB4ZGIwZTgNCihYRU4pIFsyMDEyLTA5LTA0IDE1OjUxOjE2XSBlbGZfcGFyc2VfYmlu
-YXJ5OiBwaGRyOiBwYWRkcj0weDFlZGMwMDAgbWVtc3o9MHgxM2MwMA0KKFhFTikgWzIwMTIt
-MDktMDQgMTU6NTE6MTZdIGVsZl9wYXJzZV9iaW5hcnk6IHBoZHI6IHBhZGRyPTB4MWVmMDAw
-MCBtZW1zej0weGRlNTAwMA0KKFhFTikgWzIwMTItMDktMDQgMTU6NTE6MTZdIGVsZl9wYXJz
-ZV9iaW5hcnk6IG1lbW9yeTogMHgxMDAwMDAwIC0+IDB4MmNkNTAwMA0KKFhFTikgWzIwMTIt
-MDktMDQgMTU6NTE6MTZdIGVsZl94ZW5fcGFyc2Vfbm90ZTogR1VFU1RfT1MgPSAibGludXgi
-DQooWEVOKSBbMjAxMi0wOS0wNCAxNTo1MToxNl0gZWxmX3hlbl9wYXJzZV9ub3RlOiBHVUVT
-VF9WRVJTSU9OID0gIjIuNiINCihYRU4pIFsyMDEyLTA5LTA0IDE1OjUxOjE2XSBlbGZfeGVu
-X3BhcnNlX25vdGU6IFhFTl9WRVJTSU9OID0gInhlbi0zLjAiDQooWEVOKSBbMjAxMi0wOS0w
-NCAxNTo1MToxNl0gZWxmX3hlbl9wYXJzZV9ub3RlOiBWSVJUX0JBU0UgPSAweGZmZmZmZmZm
-ODAwMDAwMDANCihYRU4pIFsyMDEyLTA5LTA0IDE1OjUxOjE2XSBlbGZfeGVuX3BhcnNlX25v
-dGU6IEVOVFJZID0gMHhmZmZmZmZmZjgxZWYwMjEwDQooWEVOKSBbMjAxMi0wOS0wNCAxNTo1
-MToxNl0gZWxmX3hlbl9wYXJzZV9ub3RlOiBIWVBFUkNBTExfUEFHRSA9IDB4ZmZmZmZmZmY4
-MTAwMTAwMA0KKFhFTikgWzIwMTItMDktMDQgMTU6NTE6MTZdIGVsZl94ZW5fcGFyc2Vfbm90
-ZTogRkVBVFVSRVMgPSAiIXdyaXRhYmxlX3BhZ2VfdGFibGVzfHBhZV9wZ2Rpcl9hYm92ZV80
-Z2IiDQooWEVOKSBbMjAxMi0wOS0wNCAxNTo1MToxNl0gZWxmX3hlbl9wYXJzZV9ub3RlOiBQ
-QUVfTU9ERSA9ICJ5ZXMiDQooWEVOKSBbMjAxMi0wOS0wNCAxNTo1MToxNl0gZWxmX3hlbl9w
-YXJzZV9ub3RlOiBMT0FERVIgPSAiZ2VuZXJpYyINCihYRU4pIFsyMDEyLTA5LTA0IDE1OjUx
-OjE2XSBlbGZfeGVuX3BhcnNlX25vdGU6IHVua25vd24geGVuIGVsZiBub3RlICgweGQpDQoo
-WEVOKSBbMjAxMi0wOS0wNCAxNTo1MToxNl0gZWxmX3hlbl9wYXJzZV9ub3RlOiBTVVNQRU5E
-X0NBTkNFTCA9IDB4MQ0KKFhFTikgWzIwMTItMDktMDQgMTU6NTE6MTZdIGVsZl94ZW5fcGFy
-c2Vfbm90ZTogSFZfU1RBUlRfTE9XID0gMHhmZmZmODAwMDAwMDAwMDAwDQooWEVOKSBbMjAx
-Mi0wOS0wNCAxNTo1MToxNl0gZWxmX3hlbl9wYXJzZV9ub3RlOiBQQUREUl9PRkZTRVQgPSAw
-eDANCihYRU4pIFsyMDEyLTA5LTA0IDE1OjUxOjE2XSBlbGZfeGVuX2FkZHJfY2FsY19jaGVj
-azogYWRkcmVzc2VzOg0KKFhFTikgWzIwMTItMDktMDQgMTU6NTE6MTZdICAgICB2aXJ0X2Jh
-c2UgICAgICAgID0gMHhmZmZmZmZmZjgwMDAwMDAwDQooWEVOKSBbMjAxMi0wOS0wNCAxNTo1
-MToxNl0gICAgIGVsZl9wYWRkcl9vZmZzZXQgPSAweDANCihYRU4pIFsyMDEyLTA5LTA0IDE1
-OjUxOjE2XSAgICAgdmlydF9vZmZzZXQgICAgICA9IDB4ZmZmZmZmZmY4MDAwMDAwMA0KKFhF
-TikgWzIwMTItMDktMDQgMTU6NTE6MTZdICAgICB2aXJ0X2tzdGFydCAgICAgID0gMHhmZmZm
-ZmZmZjgxMDAwMDAwDQooWEVOKSBbMjAxMi0wOS0wNCAxNTo1MToxNl0gICAgIHZpcnRfa2Vu
-ZCAgICAgICAgPSAweGZmZmZmZmZmODJjZDUwMDANCihYRU4pIFsyMDEyLTA5LTA0IDE1OjUx
-OjE2XSAgICAgdmlydF9lbnRyeSAgICAgICA9IDB4ZmZmZmZmZmY4MWVmMDIxMA0KKFhFTikg
-WzIwMTItMDktMDQgMTU6NTE6MTZdICAgICBwMm1fYmFzZSAgICAgICAgID0gMHhmZmZmZmZm
-ZmZmZmZmZmZmDQooWEVOKSBbMjAxMi0wOS0wNCAxNTo1MToxNl0gIFhlbiAga2VybmVsOiA2
-NC1iaXQsIGxzYiwgY29tcGF0MzINCihYRU4pIFsyMDEyLTA5LTA0IDE1OjUxOjE2XSAgRG9t
-MCBrZXJuZWw6IDY0LWJpdCwgUEFFLCBsc2IsIHBhZGRyIDB4MTAwMDAwMCAtPiAweDJjZDUw
-MDANCihYRU4pIFsyMDEyLTA5LTA0IDE1OjUxOjE2XSBQSFlTSUNBTCBNRU1PUlkgQVJSQU5H
-RU1FTlQ6DQooWEVOKSBbMjAxMi0wOS0wNCAxNTo1MToxNl0gIERvbTAgYWxsb2MuOiAgIDAw
-MDAwMDAyNDAwMDAwMDAtPjAwMDAwMDAyNDQwMDAwMDAgKDI0MjQyOCBwYWdlcyB0byBiZSBh
-bGxvY2F0ZWQpDQooWEVOKSBbMjAxMi0wOS0wNCAxNTo1MToxNl0gIEluaXQuIHJhbWRpc2s6
-IDAwMDAwMDAyNGYyZmMwMDAtPjAwMDAwMDAyNGZmZmY4MDANCihYRU4pIFsyMDEyLTA5LTA0
-IDE1OjUxOjE2XSBWSVJUVUFMIE1FTU9SWSBBUlJBTkdFTUVOVDoNCihYRU4pIFsyMDEyLTA5
-LTA0IDE1OjUxOjE2XSAgTG9hZGVkIGtlcm5lbDogZmZmZmZmZmY4MTAwMDAwMC0+ZmZmZmZm
-ZmY4MmNkNTAwMA0KKFhFTikgWzIwMTItMDktMDQgMTU6NTE6MTZdICBJbml0LiByYW1kaXNr
-OiBmZmZmZmZmZjgyY2Q1MDAwLT5mZmZmZmZmZjgzOWQ4ODAwDQooWEVOKSBbMjAxMi0wOS0w
-NCAxNTo1MToxNl0gIFBoeXMtTWFjaCBtYXA6IGZmZmZmZmZmODM5ZDkwMDAtPmZmZmZmZmZm
-ODNiZDkwMDANCihYRU4pIFsyMDEyLTA5LTA0IDE1OjUxOjE2XSAgU3RhcnQgaW5mbzogICAg
-ZmZmZmZmZmY4M2JkOTAwMC0+ZmZmZmZmZmY4M2JkOTRiNA0KKFhFTikgWzIwMTItMDktMDQg
-MTU6NTE6MTZdICBQYWdlIHRhYmxlczogICBmZmZmZmZmZjgzYmRhMDAwLT5mZmZmZmZmZjgz
-YmZkMDAwDQooWEVOKSBbMjAxMi0wOS0wNCAxNTo1MToxNl0gIEJvb3Qgc3RhY2s6ICAgIGZm
-ZmZmZmZmODNiZmQwMDAtPmZmZmZmZmZmODNiZmUwMDANCihYRU4pIFsyMDEyLTA5LTA0IDE1
-OjUxOjE2XSAgVE9UQUw6ICAgICAgICAgZmZmZmZmZmY4MDAwMDAwMC0+ZmZmZmZmZmY4NDAw
-MDAwMA0KKFhFTikgWzIwMTItMDktMDQgMTU6NTE6MTZdICBFTlRSWSBBRERSRVNTOiBmZmZm
-ZmZmZjgxZWYwMjEwDQooWEVOKSBbMjAxMi0wOS0wNCAxNTo1MToxNl0gRG9tMCBoYXMgbWF4
-aW11bSA2IFZDUFVzDQooWEVOKSBbMjAxMi0wOS0wNCAxNTo1MToxNl0gZWxmX2xvYWRfYmlu
-YXJ5OiBwaGRyIDAgYXQgMHhmZmZmZmZmZjgxMDAwMDAwIC0+IDB4ZmZmZmZmZmY4MWQ2YTAw
-MA0KKFhFTikgWzIwMTItMDktMDQgMTU6NTE6MTZdIGVsZl9sb2FkX2JpbmFyeTogcGhkciAx
-IGF0IDB4ZmZmZmZmZmY4MWUwMDAwMCAtPiAweGZmZmZmZmZmODFlZGIwZTgNCihYRU4pIFsy
-MDEyLTA5LTA0IDE1OjUxOjE2XSBlbGZfbG9hZF9iaW5hcnk6IHBoZHIgMiBhdCAweGZmZmZm
-ZmZmODFlZGMwMDAgLT4gMHhmZmZmZmZmZjgxZWVmYzAwDQooWEVOKSBbMjAxMi0wOS0wNCAx
-NTo1MToxNl0gZWxmX2xvYWRfYmluYXJ5OiBwaGRyIDMgYXQgMHhmZmZmZmZmZjgxZWYwMDAw
-IC0+IDB4ZmZmZmZmZmY4MWY4OTAwMA0KKFhFTikgWzIwMTItMDktMDQgMTU6NTE6MTZdIEFN
-RC1WaTogTUUgSEVSRSAhPDI+QU1ELVZpOiBTZXR1cCBJL08gcGFnZSB0YWJsZTogZGV2aWNl
-IGlkID0gMHgwMDAwLCByb290IHRhYmxlID0gMHgyNGQ4NGIwMDAsIGRvbWFpbiA9IDAsIHBh
-Z2luZyBtb2RlID0gMw0KKFhFTikgWzIwMTItMDktMDQgMTU6NTE6MTZdIEFNRC1WaTogU2V0
-dXAgSS9PIHBhZ2UgdGFibGU6IGRldmljZSBpZCA9IDB4MDAwMiwgcm9vdCB0YWJsZSA9IDB4
-MjRkODRiMDAwLCBkb21haW4gPSAwLCBwYWdpbmcgbW9kZSA9IDMNCihYRU4pIFsyMDEyLTA5
-LTA0IDE1OjUxOjE2XSBBTUQtVmk6IFNldHVwIEkvTyBwYWdlIHRhYmxlOiBkZXZpY2UgaWQg
-PSAweDAwMTAsIHJvb3QgdGFibGUgPSAweDI0ZDg0YjAwMCwgZG9tYWluID0gMCwgcGFnaW5n
-IG1vZGUgPSAzDQooWEVOKSBbMjAxMi0wOS0wNCAxNTo1MToxNl0gQU1ELVZpOiBTZXR1cCBJ
-L08gcGFnZSB0YWJsZTogZGV2aWNlIGlkID0gMHgwMDE4LCByb290IHRhYmxlID0gMHgyNGQ4
-NGIwMDAsIGRvbWFpbiA9IDAsIHBhZ2luZyBtb2RlID0gMw0KKFhFTikgWzIwMTItMDktMDQg
-MTU6NTE6MTZdIEFNRC1WaTogU2V0dXAgSS9PIHBhZ2UgdGFibGU6IGRldmljZSBpZCA9IDB4
-MDAyOCwgcm9vdCB0YWJsZSA9IDB4MjRkODRiMDAwLCBkb21haW4gPSAwLCBwYWdpbmcgbW9k
-ZSA9IDMNCihYRU4pIFsyMDEyLTA5LTA0IDE1OjUxOjE2XSBBTUQtVmk6IFNldHVwIEkvTyBw
-YWdlIHRhYmxlOiBkZXZpY2UgaWQgPSAweDAwMzAsIHJvb3QgdGFibGUgPSAweDI0ZDg0YjAw
-MCwgZG9tYWluID0gMCwgcGFnaW5nIG1vZGUgPSAzDQooWEVOKSBbMjAxMi0wOS0wNCAxNTo1
-MToxNl0gQU1ELVZpOiBTZXR1cCBJL08gcGFnZSB0YWJsZTogZGV2aWNlIGlkID0gMHgwMDUw
-LCByb290IHRhYmxlID0gMHgyNGQ4NGIwMDAsIGRvbWFpbiA9IDAsIHBhZ2luZyBtb2RlID0g
-Mw0KKFhFTikgWzIwMTItMDktMDQgMTU6NTE6MTZdIEFNRC1WaTogU2V0dXAgSS9PIHBhZ2Ug
-dGFibGU6IGRldmljZSBpZCA9IDB4MDA1OCwgcm9vdCB0YWJsZSA9IDB4MjRkODRiMDAwLCBk
-b21haW4gPSAwLCBwYWdpbmcgbW9kZSA9IDMNCihYRU4pIFsyMDEyLTA5LTA0IDE1OjUxOjE2
-XSBBTUQtVmk6IFNldHVwIEkvTyBwYWdlIHRhYmxlOiBkZXZpY2UgaWQgPSAweDAwNjAsIHJv
-b3QgdGFibGUgPSAweDI0ZDg0YjAwMCwgZG9tYWluID0gMCwgcGFnaW5nIG1vZGUgPSAzDQoo
-WEVOKSBbMjAxMi0wOS0wNCAxNTo1MToxNl0gQU1ELVZpOiBTZXR1cCBJL08gcGFnZSB0YWJs
-ZTogZGV2aWNlIGlkID0gMHgwMDY4LCByb290IHRhYmxlID0gMHgyNGQ4NGIwMDAsIGRvbWFp
-biA9IDAsIHBhZ2luZyBtb2RlID0gMw0KKFhFTikgWzIwMTItMDktMDQgMTU6NTE6MTZdIEFN
-RC1WaTogU2V0dXAgSS9PIHBhZ2UgdGFibGU6IGRldmljZSBpZCA9IDB4MDA4OCwgcm9vdCB0
-YWJsZSA9IDB4MjRkODRiMDAwLCBkb21haW4gPSAwLCBwYWdpbmcgbW9kZSA9IDMNCihYRU4p
-IFsyMDEyLTA5LTA0IDE1OjUxOjE2XSBBTUQtVmk6IFNldHVwIEkvTyBwYWdlIHRhYmxlOiBk
-ZXZpY2UgaWQgPSAweDAwOTAsIHJvb3QgdGFibGUgPSAweDI0ZDg0YjAwMCwgZG9tYWluID0g
-MCwgcGFnaW5nIG1vZGUgPSAzDQooWEVOKSBbMjAxMi0wOS0wNCAxNTo1MToxNl0gQU1ELVZp
-OiBTZXR1cCBJL08gcGFnZSB0YWJsZTogZGV2aWNlIGlkID0gMHgwMDkyLCByb290IHRhYmxl
-ID0gMHgyNGQ4NGIwMDAsIGRvbWFpbiA9IDAsIHBhZ2luZyBtb2RlID0gMw0KKFhFTikgWzIw
-MTItMDktMDQgMTU6NTE6MTZdIEFNRC1WaTogU2V0dXAgSS9PIHBhZ2UgdGFibGU6IGRldmlj
-ZSBpZCA9IDB4MDA5OCwgcm9vdCB0YWJsZSA9IDB4MjRkODRiMDAwLCBkb21haW4gPSAwLCBw
-YWdpbmcgbW9kZSA9IDMNCihYRU4pIFsyMDEyLTA5LTA0IDE1OjUxOjE2XSBBTUQtVmk6IFNl
-dHVwIEkvTyBwYWdlIHRhYmxlOiBkZXZpY2UgaWQgPSAweDAwOWEsIHJvb3QgdGFibGUgPSAw
-eDI0ZDg0YjAwMCwgZG9tYWluID0gMCwgcGFnaW5nIG1vZGUgPSAzDQooWEVOKSBbMjAxMi0w
-OS0wNCAxNTo1MToxNl0gQU1ELVZpOiBTZXR1cCBJL08gcGFnZSB0YWJsZTogZGV2aWNlIGlk
-ID0gMHgwMGEwLCByb290IHRhYmxlID0gMHgyNGQ4NGIwMDAsIGRvbWFpbiA9IDAsIHBhZ2lu
-ZyBtb2RlID0gMw0KKFhFTikgWzIwMTItMDktMDQgMTU6NTE6MTZdIEFNRC1WaTogU2V0dXAg
-SS9PIHBhZ2UgdGFibGU6IGRldmljZSBpZCA9IDB4MDBhMywgcm9vdCB0YWJsZSA9IDB4MjRk
-ODRiMDAwLCBkb21haW4gPSAwLCBwYWdpbmcgbW9kZSA9IDMNCihYRU4pIFsyMDEyLTA5LTA0
-IDE1OjUxOjE2XSBBTUQtVmk6IFNldHVwIEkvTyBwYWdlIHRhYmxlOiBkZXZpY2UgaWQgPSAw
-eDAwYTQsIHJvb3QgdGFibGUgPSAweDI0ZDg0YjAwMCwgZG9tYWluID0gMCwgcGFnaW5nIG1v
-ZGUgPSAzDQooWEVOKSBbMjAxMi0wOS0wNCAxNTo1MToxNl0gQU1ELVZpOiBTZXR1cCBJL08g
-cGFnZSB0YWJsZTogZGV2aWNlIGlkID0gMHgwMGE1LCByb290IHRhYmxlID0gMHgyNGQ4NGIw
-MDAsIGRvbWFpbiA9IDAsIHBhZ2luZyBtb2RlID0gMw0KKFhFTikgWzIwMTItMDktMDQgMTU6
-NTE6MTZdIEFNRC1WaTogU2V0dXAgSS9PIHBhZ2UgdGFibGU6IGRldmljZSBpZCA9IDB4MDBh
-OCwgcm9vdCB0YWJsZSA9IDB4MjRkODRiMDAwLCBkb21haW4gPSAwLCBwYWdpbmcgbW9kZSA9
-IDMNCihYRU4pIFsyMDEyLTA5LTA0IDE1OjUxOjE2XSBBTUQtVmk6IFNldHVwIEkvTyBwYWdl
-IHRhYmxlOiBkZXZpY2UgaWQgPSAweDAwYjAsIHJvb3QgdGFibGUgPSAweDI0ZDg0YjAwMCwg
-ZG9tYWluID0gMCwgcGFnaW5nIG1vZGUgPSAzDQooWEVOKSBbMjAxMi0wOS0wNCAxNTo1MTox
-Nl0gQU1ELVZpOiBTZXR1cCBJL08gcGFnZSB0YWJsZTogZGV2aWNlIGlkID0gMHgwMGIyLCBy
-b290IHRhYmxlID0gMHgyNGQ4NGIwMDAsIGRvbWFpbiA9IDAsIHBhZ2luZyBtb2RlID0gMw0K
-KFhFTikgWzIwMTItMDktMDQgMTU6NTE6MTZdIEFNRC1WaTogTm8gaW9tbXUgZm9yIGRldmlj
-ZSAwMDAwOjAwOjE4LjANCihYRU4pIFsyMDEyLTA5LTA0IDE1OjUxOjE2XSBBTUQtVmk6IE5v
-IGlvbW11IGZvciBkZXZpY2UgMDAwMDowMDoxOC4xDQooWEVOKSBbMjAxMi0wOS0wNCAxNTo1
-MToxNl0gQU1ELVZpOiBObyBpb21tdSBmb3IgZGV2aWNlIDAwMDA6MDA6MTguMg0KKFhFTikg
-WzIwMTItMDktMDQgMTU6NTE6MTZdIEFNRC1WaTogTm8gaW9tbXUgZm9yIGRldmljZSAwMDAw
-OjAwOjE4LjMNCihYRU4pIFsyMDEyLTA5LTA0IDE1OjUxOjE2XSBBTUQtVmk6IE5vIGlvbW11
-IGZvciBkZXZpY2UgMDAwMDowMDoxOC40DQooWEVOKSBbMjAxMi0wOS0wNCAxNTo1MToxNl0g
-QU1ELVZpOiBTZXR1cCBJL08gcGFnZSB0YWJsZTogZGV2aWNlIGlkID0gMHgwNDAwLCByb290
-IHRhYmxlID0gMHgyNGQ4NGIwMDAsIGRvbWFpbiA9IDAsIHBhZ2luZyBtb2RlID0gMw0KKFhF
-TikgWzIwMTItMDktMDQgMTU6NTE6MTddIEFNRC1WaTogU2V0dXAgSS9PIHBhZ2UgdGFibGU6
-IGRldmljZSBpZCA9IDB4MDQwMSwgcm9vdCB0YWJsZSA9IDB4MjRkODRiMDAwLCBkb21haW4g
-PSAwLCBwYWdpbmcgbW9kZSA9IDMNCihYRU4pIFsyMDEyLTA5LTA0IDE1OjUxOjE3XSBBTUQt
-Vmk6IFNldHVwIEkvTyBwYWdlIHRhYmxlOiBkZXZpY2UgaWQgPSAweDA0MDIsIHJvb3QgdGFi
-bGUgPSAweDI0ZDg0YjAwMCwgZG9tYWluID0gMCwgcGFnaW5nIG1vZGUgPSAzDQooWEVOKSBb
-MjAxMi0wOS0wNCAxNTo1MToxN10gQU1ELVZpOiBTZXR1cCBJL08gcGFnZSB0YWJsZTogZGV2
-aWNlIGlkID0gMHgwNDAzLCByb290IHRhYmxlID0gMHgyNGQ4NGIwMDAsIGRvbWFpbiA9IDAs
-IHBhZ2luZyBtb2RlID0gMw0KKFhFTikgWzIwMTItMDktMDQgMTU6NTE6MTddIEFNRC1WaTog
-U2V0dXAgSS9PIHBhZ2UgdGFibGU6IGRldmljZSBpZCA9IDB4MDQwNCwgcm9vdCB0YWJsZSA9
-IDB4MjRkODRiMDAwLCBkb21haW4gPSAwLCBwYWdpbmcgbW9kZSA9IDMNCihYRU4pIFsyMDEy
-LTA5LTA0IDE1OjUxOjE3XSBBTUQtVmk6IFNldHVwIEkvTyBwYWdlIHRhYmxlOiBkZXZpY2Ug
-aWQgPSAweDA0MDUsIHJvb3QgdGFibGUgPSAweDI0ZDg0YjAwMCwgZG9tYWluID0gMCwgcGFn
-aW5nIG1vZGUgPSAzDQooWEVOKSBbMjAxMi0wOS0wNCAxNTo1MToxN10gQU1ELVZpOiBTZXR1
-cCBJL08gcGFnZSB0YWJsZTogZGV2aWNlIGlkID0gMHgwNDA2LCByb290IHRhYmxlID0gMHgy
-NGQ4NGIwMDAsIGRvbWFpbiA9IDAsIHBhZ2luZyBtb2RlID0gMw0KKFhFTikgWzIwMTItMDkt
-MDQgMTU6NTE6MTddIEFNRC1WaTogU2V0dXAgSS9PIHBhZ2UgdGFibGU6IGRldmljZSBpZCA9
-IDB4MDQwNywgcm9vdCB0YWJsZSA9IDB4MjRkODRiMDAwLCBkb21haW4gPSAwLCBwYWdpbmcg
-bW9kZSA9IDMNCihYRU4pIFsyMDEyLTA5LTA0IDE1OjUxOjE3XSBBTUQtVmk6IFNldHVwIEkv
-TyBwYWdlIHRhYmxlOiBkZXZpY2UgaWQgPSAweDA1MDAsIHJvb3QgdGFibGUgPSAweDI0ZDg0
-YjAwMCwgZG9tYWluID0gMCwgcGFnaW5nIG1vZGUgPSAzDQooWEVOKSBbMjAxMi0wOS0wNCAx
-NTo1MToxN10gQU1ELVZpOiBTZXR1cCBJL08gcGFnZSB0YWJsZTogZGV2aWNlIGlkID0gMHgw
-NjAwLCByb290IHRhYmxlID0gMHgyNGQ4NGIwMDAsIGRvbWFpbiA9IDAsIHBhZ2luZyBtb2Rl
-ID0gMw0KKFhFTikgWzIwMTItMDktMDQgMTU6NTE6MTddIEFNRC1WaTogU2V0dXAgSS9PIHBh
-Z2UgdGFibGU6IGRldmljZSBpZCA9IDB4MDYwMSwgcm9vdCB0YWJsZSA9IDB4MjRkODRiMDAw
-LCBkb21haW4gPSAwLCBwYWdpbmcgbW9kZSA9IDMNCihYRU4pIFsyMDEyLTA5LTA0IDE1OjUx
-OjE3XSBBTUQtVmk6IFNldHVwIEkvTyBwYWdlIHRhYmxlOiBkZXZpY2UgaWQgPSAweDA3MDAs
-IHJvb3QgdGFibGUgPSAweDI0ZDg0YjAwMCwgZG9tYWluID0gMCwgcGFnaW5nIG1vZGUgPSAz
-DQooWEVOKSBbMjAxMi0wOS0wNCAxNTo1MToxN10gQU1ELVZpOiBTZXR1cCBJL08gcGFnZSB0
-YWJsZTogZGV2aWNlIGlkID0gMHgwODAwLCByb290IHRhYmxlID0gMHgyNGQ4NGIwMDAsIGRv
-bWFpbiA9IDAsIHBhZ2luZyBtb2RlID0gMw0KKFhFTikgWzIwMTItMDktMDQgMTU6NTE6MTdd
-IEFNRC1WaTogU2V0dXAgSS9PIHBhZ2UgdGFibGU6IGRldmljZSBpZCA9IDB4MDkwMCwgcm9v
-dCB0YWJsZSA9IDB4MjRkODRiMDAwLCBkb21haW4gPSAwLCBwYWdpbmcgbW9kZSA9IDMNCihY
-RU4pIFsyMDEyLTA5LTA0IDE1OjUxOjE3XSBBTUQtVmk6IFNldHVwIEkvTyBwYWdlIHRhYmxl
-OiBkZXZpY2UgaWQgPSAweDBhMDAsIHJvb3QgdGFibGUgPSAweDI0ZDg0YjAwMCwgZG9tYWlu
-ID0gMCwgcGFnaW5nIG1vZGUgPSAzDQooWEVOKSBbMjAxMi0wOS0wNCAxNTo1MToxN10gQU1E
-LVZpOiBTZXR1cCBJL08gcGFnZSB0YWJsZTogZGV2aWNlIGlkID0gMHgwYTAxLCByb290IHRh
-YmxlID0gMHgyNGQ4NGIwMDAsIGRvbWFpbiA9IDAsIHBhZ2luZyBtb2RlID0gMw0KKFhFTikg
-WzIwMTItMDktMDQgMTU6NTE6MTddIEFNRC1WaTogU2V0dXAgSS9PIHBhZ2UgdGFibGU6IGRl
-dmljZSBpZCA9IDB4MGEwMiwgcm9vdCB0YWJsZSA9IDB4MjRkODRiMDAwLCBkb21haW4gPSAw
-LCBwYWdpbmcgbW9kZSA9IDMNCihYRU4pIFsyMDEyLTA5LTA0IDE1OjUxOjE3XSBBTUQtVmk6
-IFNldHVwIEkvTyBwYWdlIHRhYmxlOiBkZXZpY2UgaWQgPSAweDBhMDMsIHJvb3QgdGFibGUg
-PSAweDI0ZDg0YjAwMCwgZG9tYWluID0gMCwgcGFnaW5nIG1vZGUgPSAzDQooWEVOKSBbMjAx
-Mi0wOS0wNCAxNTo1MToxN10gQU1ELVZpOiBTZXR1cCBJL08gcGFnZSB0YWJsZTogZGV2aWNl
-IGlkID0gMHgwYTA0LCByb290IHRhYmxlID0gMHgyNGQ4NGIwMDAsIGRvbWFpbiA9IDAsIHBh
-Z2luZyBtb2RlID0gMw0KKFhFTikgWzIwMTItMDktMDQgMTU6NTE6MTddIEFNRC1WaTogU2V0
-dXAgSS9PIHBhZ2UgdGFibGU6IGRldmljZSBpZCA9IDB4MGEwNSwgcm9vdCB0YWJsZSA9IDB4
-MjRkODRiMDAwLCBkb21haW4gPSAwLCBwYWdpbmcgbW9kZSA9IDMNCihYRU4pIFsyMDEyLTA5
-LTA0IDE1OjUxOjE3XSBBTUQtVmk6IFNldHVwIEkvTyBwYWdlIHRhYmxlOiBkZXZpY2UgaWQg
-PSAweDBhMDYsIHJvb3QgdGFibGUgPSAweDI0ZDg0YjAwMCwgZG9tYWluID0gMCwgcGFnaW5n
-IG1vZGUgPSAzDQooWEVOKSBbMjAxMi0wOS0wNCAxNTo1MToxN10gQU1ELVZpOiBTZXR1cCBJ
-L08gcGFnZSB0YWJsZTogZGV2aWNlIGlkID0gMHgwYTA3LCByb290IHRhYmxlID0gMHgyNGQ4
-NGIwMDAsIGRvbWFpbiA9IDAsIHBhZ2luZyBtb2RlID0gMw0KKFhFTikgWzIwMTItMDktMDQg
-MTU6NTE6MTddIEFNRC1WaTogU2V0dXAgSS9PIHBhZ2UgdGFibGU6IGRldmljZSBpZCA9IDB4
-MGIwMCwgcm9vdCB0YWJsZSA9IDB4MjRkODRiMDAwLCBkb21haW4gPSAwLCBwYWdpbmcgbW9k
-ZSA9IDMNCihYRU4pIFsyMDEyLTA5LTA0IDE1OjUxOjE3XSBTY3J1YmJpbmcgRnJlZSBSQU06
-IC4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLjwwPkFNRC1WaTogSU9fUEFHRV9GQVVMVDog
-ZG9tYWluID0gMCwgZGV2aWNlIGlkID0gMHgwYTA2LCBmYXVsdCBhZGRyZXNzID0gMHhjMmMy
-YzJjMA0KKFhFTikgWzIwMTItMDktMDQgMTU6NTE6MThdIC4uLi4uLi4uLi4uLi4uLi4uLi4u
-Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uZG9uZS4NCihYRU4pIFsyMDEyLTA5LTA0IDE1OjUx
-OjE5XSBJbml0aWFsIGxvdyBtZW1vcnkgdmlycSB0aHJlc2hvbGQgc2V0IGF0IDB4NDAwMCBw
-YWdlcy4NCihYRU4pIFsyMDEyLTA5LTA0IDE1OjUxOjE5XSBTdGQuIExvZ2xldmVsOiBBbGwN
-CihYRU4pIFsyMDEyLTA5LTA0IDE1OjUxOjE5XSBHdWVzdCBMb2dsZXZlbDogQWxsDQooWEVO
-KSBbMjAxMi0wOS0wNCAxNTo1MToxOV0gWGVuIGlzIHJlbGlucXVpc2hpbmcgVkdBIGNvbnNv
-bGUuDQooWEVOKSBbMjAxMi0wOS0wNCAxNTo1MToxOV0gKioqIFNlcmlhbCBpbnB1dCAtPiBE
-T00wICh0eXBlICdDVFJMLWEnIHRocmVlIHRpbWVzIHRvIHN3aXRjaCBpbnB1dCB0byBYZW4p
-DQooWEVOKSBbMjAxMi0wOS0wNCAxNTo1MToxOV0gRnJlZWQgMjU2a0IgaW5pdCBtZW1vcnku
-DQooWEVOKSBbMjAxMi0wOS0wNCAxNTo1MToxOV0gSU9BUElDWzBdOiBTZXQgUENJIHJvdXRp
-bmcgZW50cnkgKDYtOSAtPiAweDYwIC0+IElSUSA5IE1vZGU6MSBBY3RpdmU6MSkNCihYRU4p
-IFsyMDEyLTA5LTA0IDE1OjUxOjE5XSB0cmFwcy5jOjI1ODQ6ZDAgRG9tYWluIGF0dGVtcHRl
-ZCBXUk1TUiAwMDAwMDAwMGMwMDAwNDA4IGZyb20gMHhjMDAwMDAwMDAxMDAwMDAwIHRvIDB4
-YzAwODAwMDAwMTAwMDAwMC4NCihYRU4pIFsyMDEyLTA5LTA0IDE1OjUxOjE5XSB0cmFwcy5j
-OjI1ODQ6ZDAgRG9tYWluIGF0dGVtcHRlZCBXUk1TUiAwMDAwMDAwMGMwMDAwNDA5IGZyb20g
-MHhjMDAwMDAwMDAxMDAwMDAwIHRvIDB4YzAwODAwMDAwMTAwMDAwMC4NCihYRU4pIFsyMDEy
-LTA5LTA0IDE1OjUxOjE5XSB0cmFwcy5jOjI1ODQ6ZDAgRG9tYWluIGF0dGVtcHRlZCBXUk1T
-UiAwMDAwMDAwMGMwMDEwMDA0IGZyb20gMHgwMDAwZWZmMGJkZmIxZmNlIHRvIDB4MDAwMDAw
-MDAwMDAwYWJjZC4NCihYRU4pIFsyMDEyLTA5LTA0IDE1OjUxOjE5XSB0cmFwcy5jOjI1ODQ6
-ZDAgRG9tYWluIGF0dGVtcHRlZCBXUk1TUiAwMDAwMDAwMGMwMDAwNDA4IGZyb20gMHhjMDAw
-MDAwMDAxMDAwMDAwIHRvIDB4YzAwODAwMDAwMTAwMDAwMC4NCihYRU4pIFsyMDEyLTA5LTA0
-IDE1OjUxOjE5XSB0cmFwcy5jOjI1ODQ6ZDAgRG9tYWluIGF0dGVtcHRlZCBXUk1TUiAwMDAw
-MDAwMGMwMDAwNDA5IGZyb20gMHhjMDAwMDAwMDAxMDAwMDAwIHRvIDB4YzAwODAwMDAwMTAw
-MDAwMC4NCihYRU4pIFsyMDEyLTA5LTA0IDE1OjUxOjE5XSB0cmFwcy5jOjI1ODQ6ZDAgRG9t
-YWluIGF0dGVtcHRlZCBXUk1TUiAwMDAwMDAwMGMwMDAwNDA4IGZyb20gMHhjMDAwMDAwMDAx
-MDAwMDAwIHRvIDB4YzAwODAwMDAwMTAwMDAwMC4NCihYRU4pIFsyMDEyLTA5LTA0IDE1OjUx
-OjE5XSB0cmFwcy5jOjI1ODQ6ZDAgRG9tYWluIGF0dGVtcHRlZCBXUk1TUiAwMDAwMDAwMGMw
-MDAwNDA5IGZyb20gMHhjMDAwMDAwMDAxMDAwMDAwIHRvIDB4YzAwODAwMDAwMTAwMDAwMC4N
-CihYRU4pIFsyMDEyLTA5LTA0IDE1OjUxOjE5XSB0cmFwcy5jOjI1ODQ6ZDAgRG9tYWluIGF0
-dGVtcHRlZCBXUk1TUiAwMDAwMDAwMGMwMDAwNDA4IGZyb20gMHhjMDAwMDAwMDAxMDAwMDAw
-IHRvIDB4YzAwODAwMDAwMTAwMDAwMC4NCihYRU4pIFsyMDEyLTA5LTA0IDE1OjUxOjE5XSB0
-cmFwcy5jOjI1ODQ6ZDAgRG9tYWluIGF0dGVtcHRlZCBXUk1TUiAwMDAwMDAwMGMwMDAwNDA5
-IGZyb20gMHhjMDAwMDAwMDAxMDAwMDAwIHRvIDB4YzAwODAwMDAwMTAwMDAwMC4NCihYRU4p
-IFsyMDEyLTA5LTA0IDE1OjUxOjE5XSB0cmFwcy5jOjI1ODQ6ZDAgRG9tYWluIGF0dGVtcHRl
-ZCBXUk1TUiAwMDAwMDAwMGMwMDAwNDA4IGZyb20gMHhjMDAwMDAwMDAxMDAwMDAwIHRvIDB4
-YzAwODAwMDAwMTAwMDAwMC4NCihYRU4pIFsyMDEyLTA5LTA0IDE1OjUxOjE5XSB0cmFwcy5j
-OjI1ODQ6ZDAgRG9tYWluIGF0dGVtcHRlZCBXUk1TUiAwMDAwMDAwMGMwMDAwNDA5IGZyb20g
-MHhjMDAwMDAwMDAxMDAwMDAwIHRvIDB4YzAwODAwMDAwMTAwMDAwMC4NCihYRU4pIFsyMDEy
-LTA5LTA0IDE1OjUxOjE5XSB0cmFwcy5jOjI1ODQ6ZDAgRG9tYWluIGF0dGVtcHRlZCBXUk1T
-UiAwMDAwMDAwMGMwMDAwNDA4IGZyb20gMHhjMDAwMDAwMDAxMDAwMDAwIHRvIDB4YzAwODAw
-MDAwMTAwMDAwMC4NCihYRU4pIFsyMDEyLTA5LTA0IDE1OjUxOjE5XSB0cmFwcy5jOjI1ODQ6
-ZDAgRG9tYWluIGF0dGVtcHRlZCBXUk1TUiAwMDAwMDAwMGMwMDAwNDA5IGZyb20gMHhjMDAw
-MDAwMDAxMDAwMDAwIHRvIDB4YzAwODAwMDAwMTAwMDAwMC4NCihYRU4pIFsyMDEyLTA5LTA0
-IDE1OjUxOjE5XSBQQ0kgYWRkIGRldmljZSAwMDAwOjAwOjAwLjANCihYRU4pIFsyMDEyLTA5
-LTA0IDE1OjUxOjE5XSBQQ0kgYWRkIGRldmljZSAwMDAwOjAwOjAwLjINCihYRU4pIFsyMDEy
-LTA5LTA0IDE1OjUxOjE5XSBQQ0kgYWRkIGRldmljZSAwMDAwOjAwOjAyLjANCihYRU4pIFsy
-MDEyLTA5LTA0IDE1OjUxOjE5XSBQQ0kgYWRkIGRldmljZSAwMDAwOjAwOjAzLjANCihYRU4p
-IFsyMDEyLTA5LTA0IDE1OjUxOjE5XSBQQ0kgYWRkIGRldmljZSAwMDAwOjAwOjA1LjANCihY
-RU4pIFsyMDEyLTA5LTA0IDE1OjUxOjE5XSBQQ0kgYWRkIGRldmljZSAwMDAwOjAwOjA2LjAN
-CihYRU4pIFsyMDEyLTA5LTA0IDE1OjUxOjE5XSBQQ0kgYWRkIGRldmljZSAwMDAwOjAwOjBh
-LjANCihYRU4pIFsyMDEyLTA5LTA0IDE1OjUxOjE5XSBQQ0kgYWRkIGRldmljZSAwMDAwOjAw
-OjBiLjANCihYRU4pIFsyMDEyLTA5LTA0IDE1OjUxOjE5XSBQQ0kgYWRkIGRldmljZSAwMDAw
-OjAwOjBjLjANCihYRU4pIFsyMDEyLTA5LTA0IDE1OjUxOjE5XSBQQ0kgYWRkIGRldmljZSAw
-MDAwOjAwOjBkLjANCihYRU4pIFsyMDEyLTA5LTA0IDE1OjUxOjE5XSBQQ0kgYWRkIGRldmlj
-ZSAwMDAwOjAwOjExLjANCihYRU4pIFsyMDEyLTA5LTA0IDE1OjUxOjE5XSBQQ0kgYWRkIGRl
-dmljZSAwMDAwOjAwOjEyLjANCihYRU4pIFsyMDEyLTA5LTA0IDE1OjUxOjE5XSBQQ0kgYWRk
-IGRldmljZSAwMDAwOjAwOjEyLjINCihYRU4pIFsyMDEyLTA5LTA0IDE1OjUxOjE5XSBQQ0kg
-YWRkIGRldmljZSAwMDAwOjAwOjEzLjANCihYRU4pIFsyMDEyLTA5LTA0IDE1OjUxOjE5XSBQ
-Q0kgYWRkIGRldmljZSAwMDAwOjAwOjEzLjINCihYRU4pIFsyMDEyLTA5LTA0IDE1OjUxOjE5
-XSBQQ0kgYWRkIGRldmljZSAwMDAwOjAwOjE0LjANCihYRU4pIFsyMDEyLTA5LTA0IDE1OjUx
-OjE5XSBQQ0kgYWRkIGRldmljZSAwMDAwOjAwOjE0LjMNCihYRU4pIFsyMDEyLTA5LTA0IDE1
-OjUxOjE5XSBQQ0kgYWRkIGRldmljZSAwMDAwOjAwOjE0LjQNCihYRU4pIFsyMDEyLTA5LTA0
-IDE1OjUxOjE5XSBQQ0kgYWRkIGRldmljZSAwMDAwOjAwOjE0LjUNCihYRU4pIFsyMDEyLTA5
-LTA0IDE1OjUxOjE5XSBQQ0kgYWRkIGRldmljZSAwMDAwOjAwOjE1LjANCihYRU4pIFsyMDEy
-LTA5LTA0IDE1OjUxOjE5XSBQQ0kgYWRkIGRldmljZSAwMDAwOjAwOjE2LjANCihYRU4pIFsy
-MDEyLTA5LTA0IDE1OjUxOjE5XSBQQ0kgYWRkIGRldmljZSAwMDAwOjAwOjE2LjINCihYRU4p
-IFsyMDEyLTA5LTA0IDE1OjUxOjE5XSBQQ0kgYWRkIGRldmljZSAwMDAwOjAwOjE4LjANCihY
-RU4pIFsyMDEyLTA5LTA0IDE1OjUxOjE5XSBQQ0kgYWRkIGRldmljZSAwMDAwOjAwOjE4LjEN
-CihYRU4pIFsyMDEyLTA5LTA0IDE1OjUxOjE5XSBQQ0kgYWRkIGRldmljZSAwMDAwOjAwOjE4
-LjINCihYRU4pIFsyMDEyLTA5LTA0IDE1OjUxOjE5XSBQQ0kgYWRkIGRldmljZSAwMDAwOjAw
-OjE4LjMNCihYRU4pIFsyMDEyLTA5LTA0IDE1OjUxOjE5XSBQQ0kgYWRkIGRldmljZSAwMDAw
-OjAwOjE4LjQNCihYRU4pIFsyMDEyLTA5LTA0IDE1OjUxOjE5XSBQQ0kgYWRkIGRldmljZSAw
-MDAwOjBiOjAwLjANCihYRU4pIFsyMDEyLTA5LTA0IDE1OjUxOjE5XSBQQ0kgYWRkIGRldmlj
-ZSAwMDAwOjBhOjAwLjANCihYRU4pIFsyMDEyLTA5LTA0IDE1OjUxOjE5XSBQQ0kgYWRkIGRl
-dmljZSAwMDAwOjBhOjAwLjENCihYRU4pIFsyMDEyLTA5LTA0IDE1OjUxOjE5XSBQQ0kgYWRk
-IGRldmljZSAwMDAwOjBhOjAwLjINCihYRU4pIFsyMDEyLTA5LTA0IDE1OjUxOjE5XSBQQ0kg
-YWRkIGRldmljZSAwMDAwOjBhOjAwLjMNCihYRU4pIFsyMDEyLTA5LTA0IDE1OjUxOjE5XSBQ
-Q0kgYWRkIGRldmljZSAwMDAwOjBhOjAwLjQNCihYRU4pIFsyMDEyLTA5LTA0IDE1OjUxOjE5
-XSBQQ0kgYWRkIGRldmljZSAwMDAwOjBhOjAwLjUNCihYRU4pIFsyMDEyLTA5LTA0IDE1OjUx
-OjE5XSBQQ0kgYWRkIGRldmljZSAwMDAwOjBhOjAwLjYNCihYRU4pIFsyMDEyLTA5LTA0IDE1
-OjUxOjE5XSBQQ0kgYWRkIGRldmljZSAwMDAwOjBhOjAwLjcNCihYRU4pIFsyMDEyLTA5LTA0
-IDE1OjUxOjE5XSBQQ0kgYWRkIGRldmljZSAwMDAwOjA5OjAwLjANCihYRU4pIFsyMDEyLTA5
-LTA0IDE1OjUxOjE5XSBQQ0kgYWRkIGRldmljZSAwMDAwOjA4OjAwLjANCihYRU4pIFsyMDEy
-LTA5LTA0IDE1OjUxOjE5XSBQQ0kgYWRkIGRldmljZSAwMDAwOjA3OjAwLjANCihYRU4pIFsy
-MDEyLTA5LTA0IDE1OjUxOjE5XSBQQ0kgYWRkIGRldmljZSAwMDAwOjA2OjAwLjANCihYRU4p
-IFsyMDEyLTA5LTA0IDE1OjUxOjE5XSBQQ0kgYWRkIGRldmljZSAwMDAwOjA2OjAwLjENCihY
-RU4pIFsyMDEyLTA5LTA0IDE1OjUxOjE5XSBQQ0kgYWRkIGRldmljZSAwMDAwOjA1OjAwLjAN
-CihYRU4pIFsyMDEyLTA5LTA0IDE1OjUxOjE5XSBQQ0kgYWRkIGRldmljZSAwMDAwOjA0OjAw
-LjANCihYRU4pIFsyMDEyLTA5LTA0IDE1OjUxOjE5XSBQQ0kgYWRkIGRldmljZSAwMDAwOjA0
-OjAwLjENCihYRU4pIFsyMDEyLTA5LTA0IDE1OjUxOjE5XSBQQ0kgYWRkIGRldmljZSAwMDAw
-OjA0OjAwLjINCihYRU4pIFsyMDEyLTA5LTA0IDE1OjUxOjE5XSBQQ0kgYWRkIGRldmljZSAw
-MDAwOjA0OjAwLjMNCihYRU4pIFsyMDEyLTA5LTA0IDE1OjUxOjE5XSBQQ0kgYWRkIGRldmlj
-ZSAwMDAwOjA0OjAwLjQNCihYRU4pIFsyMDEyLTA5LTA0IDE1OjUxOjE5XSBQQ0kgYWRkIGRl
-dmljZSAwMDAwOjA0OjAwLjUNCihYRU4pIFsyMDEyLTA5LTA0IDE1OjUxOjE5XSBQQ0kgYWRk
-IGRldmljZSAwMDAwOjA0OjAwLjYNCihYRU4pIFsyMDEyLTA5LTA0IDE1OjUxOjE5XSBQQ0kg
-YWRkIGRldmljZSAwMDAwOjA0OjAwLjcNCihYRU4pIFsyMDEyLTA5LTA0IDE1OjUxOjE5XSBQ
-Q0kgYWRkIGRldmljZSAwMDAwOjAzOjA2LjANCihYRU4pIFsyMDEyLTA5LTA0IDE1OjUxOjE5
-XSBJT0FQSUNbMF06IFNldCBQQ0kgcm91dGluZyBlbnRyeSAoNi04IC0+IDB4NTggLT4gSVJR
-IDggTW9kZTowIEFjdGl2ZTowKQ0KKFhFTikgWzIwMTItMDktMDQgMTU6NTE6MTldIElPQVBJ
-Q1swXTogU2V0IFBDSSByb3V0aW5nIGVudHJ5ICg2LTEzIC0+IDB4ODggLT4gSVJRIDEzIE1v
-ZGU6MCBBY3RpdmU6MCkNCihYRU4pIFsyMDEyLTA5LTA0IDE1OjUxOjE5XSBJT0FQSUNbMV06
-IFNldCBQQ0kgcm91dGluZyBlbnRyeSAoNy0yOCAtPiAweGEwIC0+IElSUSA1MiBNb2RlOjEg
-QWN0aXZlOjEpDQooWEVOKSBbMjAxMi0wOS0wNCAxNTo1MToxOV0gSU9BUElDWzFdOiBTZXQg
-UENJIHJvdXRpbmcgZW50cnkgKDctMjkgLT4gMHhhOCAtPiBJUlEgNTMgTW9kZToxIEFjdGl2
-ZToxKQ0KKFhFTikgWzIwMTItMDktMDQgMTU6NTE6MTldIElPQVBJQ1sxXTogU2V0IFBDSSBy
-b3V0aW5nIGVudHJ5ICg3LTMwIC0+IDB4YjAgLT4gSVJRIDU0IE1vZGU6MSBBY3RpdmU6MSkN
-CihYRU4pIFsyMDEyLTA5LTA0IDE1OjUxOjE5XSBJT0FQSUNbMF06IFNldCBQQ0kgcm91dGlu
-ZyBlbnRyeSAoNi0xNiAtPiAweGI4IC0+IElSUSAxNiBNb2RlOjEgQWN0aXZlOjEpDQooWEVO
-KSBbMjAxMi0wOS0wNCAxNTo1MToxOV0gSU9BUElDWzBdOiBTZXQgUENJIHJvdXRpbmcgZW50
-cnkgKDYtMTggLT4gMHhjMCAtPiBJUlEgMTggTW9kZToxIEFjdGl2ZToxKQ0KKFhFTikgWzIw
-MTItMDktMDQgMTU6NTE6MTldIElPQVBJQ1swXTogU2V0IFBDSSByb3V0aW5nIGVudHJ5ICg2
-LTE3IC0+IDB4YzggLT4gSVJRIDE3IE1vZGU6MSBBY3RpdmU6MSkNCihYRU4pIFsyMDEyLTA5
-LTA0IDE1OjUxOjIwXSBJT0FQSUNbMV06IFNldCBQQ0kgcm91dGluZyBlbnRyeSAoNy00IC0+
-IDB4ZDAgLT4gSVJRIDI4IE1vZGU6MSBBY3RpdmU6MSkNCihYRU4pIFsyMDEyLTA5LTA0IDE1
-OjUxOjIwXSBJT0FQSUNbMV06IFNldCBQQ0kgcm91dGluZyBlbnRyeSAoNy01IC0+IDB4ZDgg
-LT4gSVJRIDI5IE1vZGU6MSBBY3RpdmU6MSkNCihYRU4pIFsyMDEyLTA5LTA0IDE1OjUxOjIw
-XSBJT0FQSUNbMV06IFNldCBQQ0kgcm91dGluZyBlbnRyeSAoNy02IC0+IDB4MjEgLT4gSVJR
-IDMwIE1vZGU6MSBBY3RpdmU6MSkNCihYRU4pIFsyMDEyLTA5LTA0IDE1OjUxOjIwXSBJT0FQ
-SUNbMV06IFNldCBQQ0kgcm91dGluZyBlbnRyeSAoNy03IC0+IDB4MjkgLT4gSVJRIDMxIE1v
-ZGU6MSBBY3RpdmU6MSkNCihYRU4pIFsyMDEyLTA5LTA0IDE1OjUxOjIwXSBJT0FQSUNbMV06
-IFNldCBQQ0kgcm91dGluZyBlbnRyeSAoNy0xNiAtPiAweDMxIC0+IElSUSA0MCBNb2RlOjEg
-QWN0aXZlOjEpDQooWEVOKSBbMjAxMi0wOS0wNCAxNTo1MToyMF0gSU9BUElDWzFdOiBTZXQg
-UENJIHJvdXRpbmcgZW50cnkgKDctMTcgLT4gMHgzOSAtPiBJUlEgNDEgTW9kZToxIEFjdGl2
-ZToxKQ0KKFhFTikgWzIwMTItMDktMDQgMTU6NTE6MjBdIElPQVBJQ1sxXTogU2V0IFBDSSBy
-b3V0aW5nIGVudHJ5ICg3LTE4IC0+IDB4NDEgLT4gSVJRIDQyIE1vZGU6MSBBY3RpdmU6MSkN
-CihYRU4pIFsyMDEyLTA5LTA0IDE1OjUxOjIwXSBJT0FQSUNbMV06IFNldCBQQ0kgcm91dGlu
-ZyBlbnRyeSAoNy0xOSAtPiAweDQ5IC0+IElSUSA0MyBNb2RlOjEgQWN0aXZlOjEpDQooWEVO
-KSBbMjAxMi0wOS0wNCAxNTo1MToyMF0gSU9BUElDWzBdOiBTZXQgUENJIHJvdXRpbmcgZW50
-cnkgKDYtMjIgLT4gMHg5OSAtPiBJUlEgMjIgTW9kZToxIEFjdGl2ZToxKQ0KKFhFTikgWzIw
-MTItMDktMDQgMTU6NTE6MjBdIElPQVBJQ1sxXTogU2V0IFBDSSByb3V0aW5nIGVudHJ5ICg3
-LTEyIC0+IDB4YTEgLT4gSVJRIDM2IE1vZGU6MSBBY3RpdmU6MSkNCihYRU4pIFsyMDEyLTA5
-LTA0IDE1OjUxOjIwXSBJT0FQSUNbMV06IFNldCBQQ0kgcm91dGluZyBlbnRyeSAoNy0yMyAt
-PiAweGE5IC0+IElSUSA0NyBNb2RlOjEgQWN0aXZlOjEpDQooWEVOKSBbMjAxMi0wOS0wNCAx
-NTo1MToyMV0gSU9BUElDWzBdOiBTZXQgUENJIHJvdXRpbmcgZW50cnkgKDYtMTkgLT4gMHhi
-MSAtPiBJUlEgMTkgTW9kZToxIEFjdGl2ZToxKQ0KKFhFTikgWzIwMTItMDktMDQgMTU6NTE6
-MjFdIElPQVBJQ1sxXTogU2V0IFBDSSByb3V0aW5nIGVudHJ5ICg3LTIyIC0+IDB4YzEgLT4g
-SVJRIDQ2IE1vZGU6MSBBY3RpdmU6MSkNCihYRU4pIFsyMDEyLTA5LTA0IDE1OjUxOjIxXSBJ
-T0FQSUNbMV06IFNldCBQQ0kgcm91dGluZyBlbnRyeSAoNy0yNyAtPiAweGQxIC0+IElSUSA1
-MSBNb2RlOjEgQWN0aXZlOjEpDQooWEVOKSBbMjAxMi0wOS0wNCAxNTo1MToyM10gSU9BUElD
-WzFdOiBTZXQgUENJIHJvdXRpbmcgZW50cnkgKDctOSAtPiAweDIyIC0+IElSUSAzMyBNb2Rl
-OjEgQWN0aXZlOjEpDQooWEVOKSBbMjAxMi0wOS0wNCAxNTo1MjoyMl0gdHJhcHMuYzoyNTg0
-OmQxIERvbWFpbiBhdHRlbXB0ZWQgV1JNU1IgMDAwMDAwMDBjMDAxMDAwNCBmcm9tIDB4MDAw
-MDg2NzljMDJiNDE2NSB0byAweDAwMDAwMDAwMDAwMGFiY2QuDQooWEVOKSBbMjAxMi0wOS0w
-NCAxNTo1MjoyOF0gdHJhcHMuYzoyNTg0OmQyIERvbWFpbiBhdHRlbXB0ZWQgV1JNU1IgMDAw
-MDAwMDBjMDAxMDAwNCBmcm9tIDB4MDAwMDQyMzQ1YTBkYTU0NSB0byAweDAwMDAwMDAwMDAw
-MGFiY2QuDQooWEVOKSBbMjAxMi0wOS0wNCAxNTo1MjozNF0gdHJhcHMuYzoyNTg0OmQzIERv
-bWFpbiBhdHRlbXB0ZWQgV1JNU1IgMDAwMDAwMDBjMDAxMDAwNCBmcm9tIDB4MDAwMDg2Nzlj
-MDJiNDE2NSB0byAweDAwMDAwMDAwMDAwMGFiY2QuDQooWEVOKSBbMjAxMi0wOS0wNCAxNTo1
-Mjo0MV0gdHJhcHMuYzoyNTg0OmQ0IERvbWFpbiBhdHRlbXB0ZWQgV1JNU1IgMDAwMDAwMDBj
-MDAxMDAwNCBmcm9tIDB4MDAwMDZmYjAzOWRlNzkwMCB0byAweDAwMDAwMDAwMDAwMGFiY2Qu
-DQooWEVOKSBbMjAxMi0wOS0wNCAxNTo1Mjo0N10gdHJhcHMuYzoyNTg0OmQ1IERvbWFpbiBh
-dHRlbXB0ZWQgV1JNU1IgMDAwMDAwMDBjMDAxMDAwNCBmcm9tIDB4MDAwMDZmYjAzOWRlNzkw
-MCB0byAweDAwMDAwMDAwMDAwMGFiY2QuDQooWEVOKSBbMjAxMi0wOS0wNCAxNTo1Mjo1M10g
-dHJhcHMuYzoyNTg0OmQ2IERvbWFpbiBhdHRlbXB0ZWQgV1JNU1IgMDAwMDAwMDBjMDAxMDAw
-NCBmcm9tIDB4MDAwMGExOTVjNDBmNjE4ZiB0byAweDAwMDAwMDAwMDAwMGFiY2QuDQooWEVO
-KSBbMjAxMi0wOS0wNCAxNTo1Mjo1OV0gdHJhcHMuYzoyNTg0OmQ3IERvbWFpbiBhdHRlbXB0
-ZWQgV1JNU1IgMDAwMDAwMDBjMDAxMDAwNCBmcm9tIDB4MDAwMGExOTVjNDBmNjE4ZiB0byAw
-eDAwMDAwMDAwMDAwMGFiY2QuDQooWEVOKSBbMjAxMi0wOS0wNCAxNTo1MzowOF0gdHJhcHMu
-YzoyNTg0OmQ4IERvbWFpbiBhdHRlbXB0ZWQgV1JNU1IgMDAwMDAwMDBjMDAxMDAwNCBmcm9t
-IDB4MDAwMDg2NzljMDJiNDE2NSB0byAweDAwMDAwMDAwMDAwMGFiY2QuDQooWEVOKSBbMjAx
-Mi0wOS0wNCAxNTo1MzoxNF0gdHJhcHMuYzoyNTg0OmQ5IERvbWFpbiBhdHRlbXB0ZWQgV1JN
-U1IgMDAwMDAwMDBjMDAxMDAwNCBmcm9tIDB4MDAwMGExOTVjNDBmNjE4ZiB0byAweDAwMDAw
-MDAwMDAwMGFiY2QuDQooWEVOKSBbMjAxMi0wOS0wNCAxNTo1MzoyMF0gdHJhcHMuYzoyNTg0
-OmQxMCBEb21haW4gYXR0ZW1wdGVkIFdSTVNSIDAwMDAwMDAwYzAwMTAwMDQgZnJvbSAweDAw
-MDBhMTk1YzQwZjYxOGYgdG8gMHgwMDAwMDAwMDAwMDBhYmNkLg0KKFhFTikgWzIwMTItMDkt
-MDQgMTU6NTM6MjddIEFNRC1WaTogRGlzYWJsZTogZGV2aWNlIGlkID0gMHgwMGE0LCBkb21h
-aW4gPSAwLCBwYWdpbmcgbW9kZSA9IDMNCihYRU4pIFsyMDEyLTA5LTA0IDE1OjUzOjI3XSBB
-TUQtVmk6IFNldHVwIEkvTyBwYWdlIHRhYmxlOiBkZXZpY2UgaWQgPSAweDAwYTQsIHJvb3Qg
-dGFibGUgPSAweDE4ZTBhMTAwMCwgZG9tYWluID0gMTEsIHBhZ2luZyBtb2RlID0gMw0KKFhF
-TikgWzIwMTItMDktMDQgMTU6NTM6MjddIEFNRC1WaTogUmUtYXNzaWduIDAwMDA6MDM6MDYu
-MCBmcm9tIGRvbTAgdG8gZG9tMTENCihYRU4pIFsyMDEyLTA5LTA0IDE1OjUzOjI3XSB0cmFw
-cy5jOjI1ODQ6ZDExIERvbWFpbiBhdHRlbXB0ZWQgV1JNU1IgMDAwMDAwMDBjMDAxMDAwNCBm
-cm9tIDB4MDAwMGExOTVjNDBmNjE4ZiB0byAweDAwMDAwMDAwMDAwMGFiY2QuDQooWEVOKSBb
-MjAxMi0wOS0wNCAxNTo1MzozOF0gdHJhcHMuYzoyNTg0OmQxMiBEb21haW4gYXR0ZW1wdGVk
-IFdSTVNSIDAwMDAwMDAwYzAwMTAwMDQgZnJvbSAweDAwMDA0MjM0NWEwZGE1NDUgdG8gMHgw
-MDAwMDAwMDAwMDBhYmNkLg0KKFhFTikgWzIwMTItMDktMDQgMTU6NTM6NDRdIHRyYXBzLmM6
-MjU4NDpkMTMgRG9tYWluIGF0dGVtcHRlZCBXUk1TUiAwMDAwMDAwMGMwMDEwMDA0IGZyb20g
-MHgwMDAwODY3OWMwMmI0MTY1IHRvIDB4MDAwMDAwMDAwMDAwYWJjZC4NCihYRU4pIFsyMDEy
-LTA5LTA0IDE1OjUzOjUxXSBBTUQtVmk6IERpc2FibGU6IGRldmljZSBpZCA9IDB4MGEwMCwg
-ZG9tYWluID0gMCwgcGFnaW5nIG1vZGUgPSAzDQooWEVOKSBbMjAxMi0wOS0wNCAxNTo1Mzo1
-MV0gQU1ELVZpOiBTZXR1cCBJL08gcGFnZSB0YWJsZTogZGV2aWNlIGlkID0gMHgwYTAwLCBy
-b290IHRhYmxlID0gMHgxZTFmYzAwMDAsIGRvbWFpbiA9IDE0LCBwYWdpbmcgbW9kZSA9IDMN
-CihYRU4pIFsyMDEyLTA5LTA0IDE1OjUzOjUxXSBBTUQtVmk6IFJlLWFzc2lnbiAwMDAwOjBh
-OjAwLjAgZnJvbSBkb20wIHRvIGRvbTE0DQooWEVOKSBbMjAxMi0wOS0wNCAxNTo1Mzo1MV0g
-QU1ELVZpOiBEaXNhYmxlOiBkZXZpY2UgaWQgPSAweDBhMDEsIGRvbWFpbiA9IDAsIHBhZ2lu
-ZyBtb2RlID0gMw0KKFhFTikgWzIwMTItMDktMDQgMTU6NTM6NTFdIEFNRC1WaTogU2V0dXAg
-SS9PIHBhZ2UgdGFibGU6IGRldmljZSBpZCA9IDB4MGEwMSwgcm9vdCB0YWJsZSA9IDB4MWUx
-ZmMwMDAwLCBkb21haW4gPSAxNCwgcGFnaW5nIG1vZGUgPSAzDQooWEVOKSBbMjAxMi0wOS0w
-NCAxNTo1Mzo1MV0gQU1ELVZpOiBSZS1hc3NpZ24gMDAwMDowYTowMC4xIGZyb20gZG9tMCB0
-byBkb20xNA0KKFhFTikgWzIwMTItMDktMDQgMTU6NTM6NTFdIEFNRC1WaTogRGlzYWJsZTog
-ZGV2aWNlIGlkID0gMHgwYTAyLCBkb21haW4gPSAwLCBwYWdpbmcgbW9kZSA9IDMNCihYRU4p
-IFsyMDEyLTA5LTA0IDE1OjUzOjUxXSBBTUQtVmk6IFNldHVwIEkvTyBwYWdlIHRhYmxlOiBk
-ZXZpY2UgaWQgPSAweDBhMDIsIHJvb3QgdGFibGUgPSAweDFlMWZjMDAwMCwgZG9tYWluID0g
-MTQsIHBhZ2luZyBtb2RlID0gMw0KKFhFTikgWzIwMTItMDktMDQgMTU6NTM6NTFdIEFNRC1W
-aTogUmUtYXNzaWduIDAwMDA6MGE6MDAuMiBmcm9tIGRvbTAgdG8gZG9tMTQNCihYRU4pIFsy
-MDEyLTA5LTA0IDE1OjUzOjUxXSBBTUQtVmk6IERpc2FibGU6IGRldmljZSBpZCA9IDB4MGEw
-MywgZG9tYWluID0gMCwgcGFnaW5nIG1vZGUgPSAzDQooWEVOKSBbMjAxMi0wOS0wNCAxNTo1
-Mzo1MV0gQU1ELVZpOiBTZXR1cCBJL08gcGFnZSB0YWJsZTogZGV2aWNlIGlkID0gMHgwYTAz
-LCByb290IHRhYmxlID0gMHgxZTFmYzAwMDAsIGRvbWFpbiA9IDE0LCBwYWdpbmcgbW9kZSA9
-IDMNCihYRU4pIFsyMDEyLTA5LTA0IDE1OjUzOjUxXSBBTUQtVmk6IFJlLWFzc2lnbiAwMDAw
-OjBhOjAwLjMgZnJvbSBkb20wIHRvIGRvbTE0DQooWEVOKSBbMjAxMi0wOS0wNCAxNTo1Mzo1
-MV0gQU1ELVZpOiBEaXNhYmxlOiBkZXZpY2UgaWQgPSAweDBhMDQsIGRvbWFpbiA9IDAsIHBh
-Z2luZyBtb2RlID0gMw0KKFhFTikgWzIwMTItMDktMDQgMTU6NTM6NTFdIEFNRC1WaTogU2V0
-dXAgSS9PIHBhZ2UgdGFibGU6IGRldmljZSBpZCA9IDB4MGEwNCwgcm9vdCB0YWJsZSA9IDB4
-MWUxZmMwMDAwLCBkb21haW4gPSAxNCwgcGFnaW5nIG1vZGUgPSAzDQooWEVOKSBbMjAxMi0w
-OS0wNCAxNTo1Mzo1MV0gQU1ELVZpOiBSZS1hc3NpZ24gMDAwMDowYTowMC40IGZyb20gZG9t
-MCB0byBkb20xNA0KKFhFTikgWzIwMTItMDktMDQgMTU6NTM6NTFdIEFNRC1WaTogRGlzYWJs
-ZTogZGV2aWNlIGlkID0gMHgwYTA1LCBkb21haW4gPSAwLCBwYWdpbmcgbW9kZSA9IDMNCihY
-RU4pIFsyMDEyLTA5LTA0IDE1OjUzOjUxXSBBTUQtVmk6IFNldHVwIEkvTyBwYWdlIHRhYmxl
-OiBkZXZpY2UgaWQgPSAweDBhMDUsIHJvb3QgdGFibGUgPSAweDFlMWZjMDAwMCwgZG9tYWlu
-ID0gMTQsIHBhZ2luZyBtb2RlID0gMw0KKFhFTikgWzIwMTItMDktMDQgMTU6NTM6NTFdIEFN
-RC1WaTogUmUtYXNzaWduIDAwMDA6MGE6MDAuNSBmcm9tIGRvbTAgdG8gZG9tMTQNCihYRU4p
-IFsyMDEyLTA5LTA0IDE1OjUzOjUxXSBBTUQtVmk6IERpc2FibGU6IGRldmljZSBpZCA9IDB4
-MGEwNiwgZG9tYWluID0gMCwgcGFnaW5nIG1vZGUgPSAzDQooWEVOKSBbMjAxMi0wOS0wNCAx
-NTo1Mzo1MV0gQU1ELVZpOiBTZXR1cCBJL08gcGFnZSB0YWJsZTogZGV2aWNlIGlkID0gMHgw
-YTA2LCByb290IHRhYmxlID0gMHgxZTFmYzAwMDAsIGRvbWFpbiA9IDE0LCBwYWdpbmcgbW9k
-ZSA9IDMNCihYRU4pIFsyMDEyLTA5LTA0IDE1OjUzOjUxXSBBTUQtVmk6IFJlLWFzc2lnbiAw
-MDAwOjBhOjAwLjYgZnJvbSBkb20wIHRvIGRvbTE0DQooWEVOKSBbMjAxMi0wOS0wNCAxNTo1
-Mzo1MV0gQU1ELVZpOiBEaXNhYmxlOiBkZXZpY2UgaWQgPSAweDBhMDcsIGRvbWFpbiA9IDAs
-IHBhZ2luZyBtb2RlID0gMw0KKFhFTikgWzIwMTItMDktMDQgMTU6NTM6NTFdIEFNRC1WaTog
-U2V0dXAgSS9PIHBhZ2UgdGFibGU6IGRldmljZSBpZCA9IDB4MGEwNywgcm9vdCB0YWJsZSA9
-IDB4MWUxZmMwMDAwLCBkb21haW4gPSAxNCwgcGFnaW5nIG1vZGUgPSAzDQooWEVOKSBbMjAx
-Mi0wOS0wNCAxNTo1Mzo1MV0gQU1ELVZpOiBSZS1hc3NpZ24gMDAwMDowYTowMC43IGZyb20g
-ZG9tMCB0byBkb20xNA0KKFhFTikgWzIwMTItMDktMDQgMTU6NTM6NTFdIEFNRC1WaTogRGlz
-YWJsZTogZGV2aWNlIGlkID0gMHgwNzAwLCBkb21haW4gPSAwLCBwYWdpbmcgbW9kZSA9IDMN
-CihYRU4pIFsyMDEyLTA5LTA0IDE1OjUzOjUxXSBBTUQtVmk6IFNldHVwIEkvTyBwYWdlIHRh
-YmxlOiBkZXZpY2UgaWQgPSAweDA3MDAsIHJvb3QgdGFibGUgPSAweDFlMWZjMDAwMCwgZG9t
-YWluID0gMTQsIHBhZ2luZyBtb2RlID0gMw0KKFhFTikgWzIwMTItMDktMDQgMTU6NTM6NTFd
-IEFNRC1WaTogUmUtYXNzaWduIDAwMDA6MDc6MDAuMCBmcm9tIGRvbTAgdG8gZG9tMTQNCihY
-RU4pIFsyMDEyLTA5LTA0IDE1OjUzOjUxXSB0cmFwcy5jOjI1ODQ6ZDE0IERvbWFpbiBhdHRl
-bXB0ZWQgV1JNU1IgMDAwMDAwMDBjMDAxMDAwNCBmcm9tIDB4MDAwMDQyMzQ1YTBkYTU0NSB0
-byAweDAwMDAwMDAwMDAwMGFiY2QuDQooWEVOKSBbMjAxMi0wOS0wNCAxNTo1NDowMF0gSFZN
-MTU6IEhWTSBMb2FkZXINCihYRU4pIFsyMDEyLTA5LTA0IDE1OjU0OjAwXSBIVk0xNTogRGV0
-ZWN0ZWQgWGVuIHY0LjIuMC1yYzQtcHJlDQooWEVOKSBbMjAxMi0wOS0wNCAxNTo1NDowMF0g
-SFZNMTU6IFhlbmJ1cyByaW5ncyBAMHhmZWZmYzAwMCwgZXZlbnQgY2hhbm5lbCA0DQooWEVO
-KSBbMjAxMi0wOS0wNCAxNTo1NDowMF0gSFZNMTU6IFN5c3RlbSByZXF1ZXN0ZWQgUk9NQklP
-Uw0KKFhFTikgWzIwMTItMDktMDQgMTU6NTQ6MDBdIEhWTTE1OiBDUFUgc3BlZWQgaXMgMzIw
-MCBNSHoNCihYRU4pIFsyMDEyLTA5LTA0IDE1OjU0OjAwXSBpcnEuYzoyNzA6IERvbTE1IFBD
-SSBsaW5rIDAgY2hhbmdlZCAwIC0+IDUNCihYRU4pIFsyMDEyLTA5LTA0IDE1OjU0OjAwXSBI
-Vk0xNTogUENJLUlTQSBsaW5rIDAgcm91dGVkIHRvIElSUTUNCihYRU4pIFsyMDEyLTA5LTA0
-IDE1OjU0OjAwXSBpcnEuYzoyNzA6IERvbTE1IFBDSSBsaW5rIDEgY2hhbmdlZCAwIC0+IDEw
-DQooWEVOKSBbMjAxMi0wOS0wNCAxNTo1NDowMF0gSFZNMTU6IFBDSS1JU0EgbGluayAxIHJv
-dXRlZCB0byBJUlExMA0KKFhFTikgWzIwMTItMDktMDQgMTU6NTQ6MDBdIGlycS5jOjI3MDog
-RG9tMTUgUENJIGxpbmsgMiBjaGFuZ2VkIDAgLT4gMTENCihYRU4pIFsyMDEyLTA5LTA0IDE1
-OjU0OjAwXSBIVk0xNTogUENJLUlTQSBsaW5rIDIgcm91dGVkIHRvIElSUTExDQooWEVOKSBb
-MjAxMi0wOS0wNCAxNTo1NDowMF0gaXJxLmM6MjcwOiBEb20xNSBQQ0kgbGluayAzIGNoYW5n
-ZWQgMCAtPiA1DQooWEVOKSBbMjAxMi0wOS0wNCAxNTo1NDowMF0gSFZNMTU6IFBDSS1JU0Eg
-bGluayAzIHJvdXRlZCB0byBJUlE1DQooWEVOKSBbMjAxMi0wOS0wNCAxNTo1NDowMF0gSFZN
-MTU6IHBjaSBkZXYgMDE6MiBJTlRELT5JUlE1DQooWEVOKSBbMjAxMi0wOS0wNCAxNTo1NDow
-MF0gSFZNMTU6IHBjaSBkZXYgMDE6MyBJTlRBLT5JUlExMA0KKFhFTikgWzIwMTItMDktMDQg
-MTU6NTQ6MDBdIEhWTTE1OiBwY2kgZGV2IDAzOjAgSU5UQS0+SVJRNQ0KKFhFTikgWzIwMTIt
-MDktMDQgMTU6NTQ6MDBdIEhWTTE1OiBwY2kgZGV2IDA0OjAgSU5UQS0+SVJRNQ0KKFhFTikg
-WzIwMTItMDktMDQgMTU6NTQ6MDFdIEhWTTE1OiBwY2kgZGV2IDAyOjAgYmFyIDEwIHNpemUg
-MDIwMDAwMDA6IGYwMDAwMDA4DQooWEVOKSBbMjAxMi0wOS0wNCAxNTo1NDowMV0gSFZNMTU6
-IHBjaSBkZXYgMDM6MCBiYXIgMTQgc2l6ZSAwMTAwMDAwMDogZjIwMDAwMDgNCihYRU4pIFsy
-MDEyLTA5LTA0IDE1OjU0OjAxXSBIVk0xNTogcGNpIGRldiAwNDowIGJhciAxMCBzaXplIDAw
-MDIwMDAwOiBmMzAwMDAwMA0KKFhFTikgWzIwMTItMDktMDQgMTU6NTQ6MDFdIEhWTTE1OiBw
-Y2kgZGV2IDAyOjAgYmFyIDE0IHNpemUgMDAwMDEwMDA6IGYzMDIwMDAwDQooWEVOKSBbMjAx
-Mi0wOS0wNCAxNTo1NDowMV0gSFZNMTU6IHBjaSBkZXYgMDM6MCBiYXIgMTAgc2l6ZSAwMDAw
-MDEwMDogMDAwMGMwMDENCihYRU4pIFsyMDEyLTA5LTA0IDE1OjU0OjAxXSBIVk0xNTogcGNp
-IGRldiAwNDowIGJhciAxNCBzaXplIDAwMDAwMDQwOiAwMDAwYzEwMQ0KKFhFTikgWzIwMTIt
-MDktMDQgMTU6NTQ6MDFdIEhWTTE1OiBwY2kgZGV2IDAxOjIgYmFyIDIwIHNpemUgMDAwMDAw
-MjA6IDAwMDBjMTQxDQooWEVOKSBbMjAxMi0wOS0wNCAxNTo1NDowMV0gSFZNMTU6IHBjaSBk
-ZXYgMDE6MSBiYXIgMjAgc2l6ZSAwMDAwMDAxMDogMDAwMGMxNjENCihYRU4pIFsyMDEyLTA5
-LTA0IDE1OjU0OjAxXSBIVk0xNTogTXVsdGlwcm9jZXNzb3IgaW5pdGlhbGlzYXRpb246DQoo
-WEVOKSBbMjAxMi0wOS0wNCAxNTo1NDowMV0gSFZNMTU6ICAtIENQVTAgLi4uIDQ4LWJpdCBw
-aHlzIC4uLiBmaXhlZCBNVFJScyAuLi4gdmFyIE1UUlJzIFsyLzhdIC4uLiBkb25lLg0KKFhF
-TikgWzIwMTItMDktMDQgMTU6NTQ6MDFdIEhWTTE1OiAgLSBDUFUxIC4uLiA0OC1iaXQgcGh5
-cyAuLi4gZml4ZWQgTVRSUnMgLi4uIHZhciBNVFJScyBbMi84XSAuLi4gZG9uZS4NCihYRU4p
-IFsyMDEyLTA5LTA0IDE1OjU0OjAxXSBIVk0xNTogVGVzdGluZyBIVk0gZW52aXJvbm1lbnQ6
-DQooWEVOKSBbMjAxMi0wOS0wNCAxNTo1NDowMV0gSFZNMTU6ICAtIFJFUCBJTlNCIGFjcm9z
-cyBwYWdlIGJvdW5kYXJpZXMgLi4uIHBhc3NlZA0KKFhFTikgWzIwMTItMDktMDQgMTU6NTQ6
-MDFdIEhWTTE1OiAgLSBHUyBiYXNlIE1TUnMgYW5kIFNXQVBHUyAuLi4gcGFzc2VkDQooWEVO
-KSBbMjAxMi0wOS0wNCAxNTo1NDowMV0gSFZNMTU6IFBhc3NlZCAyIG9mIDIgdGVzdHMNCihY
-RU4pIFsyMDEyLTA5LTA0IDE1OjU0OjAxXSBIVk0xNTogV3JpdGluZyBTTUJJT1MgdGFibGVz
-IC4uLg0KKFhFTikgWzIwMTItMDktMDQgMTU6NTQ6MDFdIEhWTTE1OiBMb2FkaW5nIFJPTUJJ
-T1MgLi4uDQooWEVOKSBbMjAxMi0wOS0wNCAxNTo1NDowMV0gSFZNMTU6IDk2NjAgYnl0ZXMg
-b2YgUk9NQklPUyBoaWdoLW1lbW9yeSBleHRlbnNpb25zOg0KKFhFTikgWzIwMTItMDktMDQg
-MTU6NTQ6MDFdIEhWTTE1OiAgIFJlbG9jYXRpbmcgdG8gMHhmYzAwMTAwMC0weGZjMDAzNWJj
-IC4uLiBkb25lDQooWEVOKSBbMjAxMi0wOS0wNCAxNTo1NDowMV0gSFZNMTU6IENyZWF0aW5n
-IE1QIHRhYmxlcyAuLi4NCihYRU4pIFsyMDEyLTA5LTA0IDE1OjU0OjAxXSBIVk0xNTogTG9h
-ZGluZyBDaXJydXMgVkdBQklPUyAuLi4NCihYRU4pIFsyMDEyLTA5LTA0IDE1OjU0OjAxXSBI
-Vk0xNTogTG9hZGluZyBQQ0kgT3B0aW9uIFJPTSAuLi4NCihYRU4pIFsyMDEyLTA5LTA0IDE1
-OjU0OjAxXSBIVk0xNTogIC0gTWFudWZhY3R1cmVyOiBodHRwOi8vaXB4ZS5vcmcNCihYRU4p
-IFsyMDEyLTA5LTA0IDE1OjU0OjAxXSBIVk0xNTogIC0gUHJvZHVjdCBuYW1lOiBpUFhFDQoo
-WEVOKSBbMjAxMi0wOS0wNCAxNTo1NDowMV0gSFZNMTU6IE9wdGlvbiBST01zOg0KKFhFTikg
-WzIwMTItMDktMDQgMTU6NTQ6MDFdIEhWTTE1OiAgYzAwMDAtYzhmZmY6IFZHQSBCSU9TDQoo
-WEVOKSBbMjAxMi0wOS0wNCAxNTo1NDowMV0gSFZNMTU6ICBjOTAwMC1kOWZmZjogRXRoZXJi
-b290IFJPTQ0KKFhFTikgWzIwMTItMDktMDQgMTU6NTQ6MDFdIEhWTTE1OiBMb2FkaW5nIEFD
-UEkgLi4uDQooWEVOKSBbMjAxMi0wOS0wNCAxNTo1NDowMV0gSFZNMTU6IHZtODYgVFNTIGF0
-IGZjMDBmNjgwDQooWEVOKSBbMjAxMi0wOS0wNCAxNTo1NDowMV0gSFZNMTU6IEJJT1MgbWFw
-Og0KKFhFTikgWzIwMTItMDktMDQgMTU6NTQ6MDFdIEhWTTE1OiAgZjAwMDAtZmZmZmY6IE1h
-aW4gQklPUw0KKFhFTikgWzIwMTItMDktMDQgMTU6NTQ6MDFdIEhWTTE1OiBFODIwIHRhYmxl
-Og0KKFhFTikgWzIwMTItMDktMDQgMTU6NTQ6MDFdIEhWTTE1OiAgWzAwXTogMDAwMDAwMDA6
-MDAwMDAwMDAgLSAwMDAwMDAwMDowMDA5ZTAwMDogUkFNDQooWEVOKSBbMjAxMi0wOS0wNCAx
-NTo1NDowMV0gSFZNMTU6ICBbMDFdOiAwMDAwMDAwMDowMDA5ZTAwMCAtIDAwMDAwMDAwOjAw
-MGEwMDAwOiBSRVNFUlZFRA0KKFhFTikgWzIwMTItMDktMDQgMTU6NTQ6MDFdIEhWTTE1OiAg
-SE9MRTogMDAwMDAwMDA6MDAwYTAwMDAgLSAwMDAwMDAwMDowMDBlMDAwMA0KKFhFTikgWzIw
-MTItMDktMDQgMTU6NTQ6MDFdIEhWTTE1OiAgWzAyXTogMDAwMDAwMDA6MDAwZTAwMDAgLSAw
-MDAwMDAwMDowMDEwMDAwMDogUkVTRVJWRUQNCihYRU4pIFsyMDEyLTA5LTA0IDE1OjU0OjAx
-XSBIVk0xNTogIFswM106IDAwMDAwMDAwOjAwMTAwMDAwIC0gMDAwMDAwMDA6MWY4MDAwMDA6
-IFJBTQ0KKFhFTikgWzIwMTItMDktMDQgMTU6NTQ6MDFdIEhWTTE1OiAgSE9MRTogMDAwMDAw
-MDA6MWY4MDAwMDAgLSAwMDAwMDAwMDpmYzAwMDAwMA0KKFhFTikgWzIwMTItMDktMDQgMTU6
-NTQ6MDFdIEhWTTE1OiAgWzA0XTogMDAwMDAwMDA6ZmMwMDAwMDAgLSAwMDAwMDAwMTowMDAw
-MDAwMDogUkVTRVJWRUQNCihYRU4pIFsyMDEyLTA5LTA0IDE1OjU0OjAxXSBIVk0xNTogSW52
-b2tpbmcgUk9NQklPUyAuLi4NCihYRU4pIFsyMDEyLTA5LTA0IDE1OjU0OjAxXSBIVk0xNTog
-JFJldmlzaW9uOiAxLjIyMSAkICREYXRlOiAyMDA4LzEyLzA3IDE3OjMyOjI5ICQNCihYRU4p
-IFsyMDEyLTA5LTA0IDE1OjU0OjAxXSBzdGR2Z2EuYzoxNDc6ZDE1IGVudGVyaW5nIHN0ZHZn
-YSBhbmQgY2FjaGluZyBtb2Rlcw0KKFhFTikgWzIwMTItMDktMDQgMTU6NTQ6MDFdIEhWTTE1
-OiBWR0FCaW9zICRJZDogdmdhYmlvcy5jLHYgMS42NyAyMDA4LzAxLzI3IDA5OjQ0OjEyIHZy
-dXBwZXJ0IEV4cCAkDQooWEVOKSBbMjAxMi0wOS0wNCAxNTo1NDowMV0gSFZNMTU6IEJvY2hz
-IEJJT1MgLSBidWlsZDogMDYvMjMvOTkNCihYRU4pIFsyMDEyLTA5LTA0IDE1OjU0OjAxXSBI
-Vk0xNTogJFJldmlzaW9uOiAxLjIyMSAkICREYXRlOiAyMDA4LzEyLzA3IDE3OjMyOjI5ICQN
-CihYRU4pIFsyMDEyLTA5LTA0IDE1OjU0OjAxXSBIVk0xNTogT3B0aW9uczogYXBtYmlvcyBw
-Y2liaW9zIGVsdG9yaXRvIFBNTSANCihYRU4pIFsyMDEyLTA5LTA0IDE1OjU0OjAxXSBIVk0x
-NTogDQooWEVOKSBbMjAxMi0wOS0wNCAxNTo1NDowMV0gSFZNMTU6IGF0YTAtMDogUENIUz0x
-NjM4My8xNi82MyB0cmFuc2xhdGlvbj1sYmEgTENIUz0xMDI0LzI1NS82Mw0KKFhFTikgWzIw
-MTItMDktMDQgMTU6NTQ6MDFdIEhWTTE1OiBhdGEwIG1hc3RlcjogUUVNVSBIQVJERElTSyBB
-VEEtNyBIYXJkLURpc2sgKDU3MjQ0IE1CeXRlcykNCihYRU4pIFsyMDEyLTA5LTA0IDE1OjU0
-OjAyXSBIVk0xNTogSURFIHRpbWUgb3V0DQooWEVOKSBbMjAxMi0wOS0wNCAxNTo1NDowMl0g
-SFZNMTU6IGF0YTEgbWFzdGVyOiBRRU1VIERWRC1ST00gQVRBUEktNCBDRC1Sb20vRFZELVJv
-bQ0KKFhFTikgWzIwMTItMDktMDQgMTU6NTQ6MDRdIEhWTTE1OiBJREUgdGltZSBvdXQNCihY
-RU4pIFsyMDEyLTA5LTA0IDE1OjU0OjA0XSBIVk0xNTogDQooWEVOKSBbMjAxMi0wOS0wNCAx
-NTo1NDowNF0gSFZNMTU6IA0KKFhFTikgWzIwMTItMDktMDQgMTU6NTQ6MDRdIEhWTTE1OiAN
-CihYRU4pIFsyMDEyLTA5LTA0IDE1OjU0OjA0XSBIVk0xNTogUHJlc3MgRjEyIGZvciBib290
-IG1lbnUuDQooWEVOKSBbMjAxMi0wOS0wNCAxNTo1NDowNF0gSFZNMTU6IA0KKFhFTikgWzIw
-MTItMDktMDQgMTU6NTQ6MDRdIEhWTTE1OiBCb290aW5nIGZyb20gSGFyZCBEaXNrLi4uDQoo
-WEVOKSBbMjAxMi0wOS0wNCAxNTo1NDowNF0gSFZNMTU6IEJvb3RpbmcgZnJvbSAwMDAwOjdj
-MDANCihYRU4pIFsyMDEyLTA5LTA0IDE1OjU0OjMyXSBpcnEuYzoyNzA6IERvbTE1IFBDSSBs
-aW5rIDAgY2hhbmdlZCA1IC0+IDANCihYRU4pIFsyMDEyLTA5LTA0IDE1OjU0OjMyXSBpcnEu
-YzoyNzA6IERvbTE1IFBDSSBsaW5rIDEgY2hhbmdlZCAxMCAtPiAwDQooWEVOKSBbMjAxMi0w
-OS0wNCAxNTo1NDozMl0gaXJxLmM6MjcwOiBEb20xNSBQQ0kgbGluayAyIGNoYW5nZWQgMTEg
-LT4gMA0KKFhFTikgWzIwMTItMDktMDQgMTU6NTQ6MzJdIGlycS5jOjI3MDogRG9tMTUgUENJ
-IGxpbmsgMyBjaGFuZ2VkIDUgLT4gMA0KKFhFTikgWzIwMTItMDktMDQgMTU6NTQ6MzNdIGh2
-bS5jOjI0MzU6ZDE1IGd1ZXN0IGF0dGVtcHRlZCB3cml0ZSB0byByZWFkLW9ubHkgbWVtb3J5
-IHBhZ2UuIGdmbj0weGRjLCBtZm49MHhhNGEwYQ0KKFhFTikgWzIwMTItMDktMDQgMTU6NTQ6
-MzNdIGh2bS5jOjI0MzU6ZDE1IGd1ZXN0IGF0dGVtcHRlZCB3cml0ZSB0byByZWFkLW9ubHkg
-bWVtb3J5IHBhZ2UuIGdmbj0weGRkLCBtZm49MHhhNGEwOQ0KKFhFTikgWzIwMTItMDktMDQg
-MTU6NTQ6MzNdIGh2bS5jOjI0MzU6ZDE1IGd1ZXN0IGF0dGVtcHRlZCB3cml0ZSB0byByZWFk
-LW9ubHkgbWVtb3J5IHBhZ2UuIGdmbj0weGRlLCBtZm49MHhhNGEwOA0KKFhFTikgWzIwMTIt
-MDktMDQgMTU6NTQ6MzNdIGh2bS5jOjI0MzU6ZDE1IGd1ZXN0IGF0dGVtcHRlZCB3cml0ZSB0
-byByZWFkLW9ubHkgbWVtb3J5IHBhZ2UuIGdmbj0weGRkLCBtZm49MHhhNGEwOQ0KKFhFTikg
-WzIwMTItMDktMDQgMTU6NTQ6MzNdIGh2bS5jOjI0MzU6ZDE1IGd1ZXN0IGF0dGVtcHRlZCB3
-cml0ZSB0byByZWFkLW9ubHkgbWVtb3J5IHBhZ2UuIGdmbj0weGRjLCBtZm49MHhhNGEwYQ0K
-KFhFTikgWzIwMTItMDktMDQgMTU6NTQ6MzNdIGh2bS5jOjI0MzU6ZDE1IGd1ZXN0IGF0dGVt
-cHRlZCB3cml0ZSB0byByZWFkLW9ubHkgbWVtb3J5IHBhZ2UuIGdmbj0weGRlLCBtZm49MHhh
-NGEwOA0KKFhFTikgWzIwMTItMDktMDQgMTU6NTQ6MzNdIGh2bS5jOjI0MzU6ZDE1IGd1ZXN0
-IGF0dGVtcHRlZCB3cml0ZSB0byByZWFkLW9ubHkgbWVtb3J5IHBhZ2UuIGdmbj0weGRkLCBt
-Zm49MHhhNGEwOQ0KKFhFTikgWzIwMTItMDktMDQgMTU6NTQ6MzNdIGh2bS5jOjI0MzU6ZDE1
-IGd1ZXN0IGF0dGVtcHRlZCB3cml0ZSB0byByZWFkLW9ubHkgbWVtb3J5IHBhZ2UuIGdmbj0w
-eGRlLCBtZm49MHhhNGEwOA0KKFhFTikgWzIwMTItMDktMDQgMTU6NTQ6MzNdIGh2bS5jOjI0
-MzU6ZDE1IGd1ZXN0IGF0dGVtcHRlZCB3cml0ZSB0byByZWFkLW9ubHkgbWVtb3J5IHBhZ2Uu
-IGdmbj0weGRjLCBtZm49MHhhNGEwYQ0KKFhFTikgWzIwMTItMDktMDQgMTU6NTQ6MzNdIGh2
-bS5jOjI0MzU6ZDE1IGd1ZXN0IGF0dGVtcHRlZCB3cml0ZSB0byByZWFkLW9ubHkgbWVtb3J5
-IHBhZ2UuIGdmbj0weGRkLCBtZm49MHhhNGEwOQ0KKFhFTikgWzIwMTItMDktMDQgMTU6NTQ6
-MzNdIGh2bS5jOjI0MzU6ZDE1IGd1ZXN0IGF0dGVtcHRlZCB3cml0ZSB0byByZWFkLW9ubHkg
-bWVtb3J5IHBhZ2UuIGdmbj0weGRjLCBtZm49MHhhNGEwYQ0KKFhFTikgWzIwMTItMDktMDQg
-MTU6NTQ6MzNdIGh2bS5jOjI0MzU6ZDE1IGd1ZXN0IGF0dGVtcHRlZCB3cml0ZSB0byByZWFk
-LW9ubHkgbWVtb3J5IHBhZ2UuIGdmbj0weGRkLCBtZm49MHhhNGEwOQ0KKFhFTikgWzIwMTIt
-MDktMDQgMTU6NTQ6MzNdIGh2bS5jOjI0MzU6ZDE1IGd1ZXN0IGF0dGVtcHRlZCB3cml0ZSB0
-byByZWFkLW9ubHkgbWVtb3J5IHBhZ2UuIGdmbj0weGRlLCBtZm49MHhhNGEwOA0KKFhFTikg
-WzIwMTItMDktMDQgMTU6NTQ6MzNdIGh2bS5jOjI0MzU6ZDE1IGd1ZXN0IGF0dGVtcHRlZCB3
-cml0ZSB0byByZWFkLW9ubHkgbWVtb3J5IHBhZ2UuIGdmbj0weGRkLCBtZm49MHhhNGEwOQ0K
-KFhFTikgWzIwMTItMDktMDQgMTU6NTQ6MzNdIGh2bS5jOjI0MzU6ZDE1IGd1ZXN0IGF0dGVt
-cHRlZCB3cml0ZSB0byByZWFkLW9ubHkgbWVtb3J5IHBhZ2UuIGdmbj0weGRjLCBtZm49MHhh
-NGEwYQ0KKFhFTikgWzIwMTItMDktMDQgMTU6NTQ6MzNdIGh2bS5jOjI0MzU6ZDE1IGd1ZXN0
-IGF0dGVtcHRlZCB3cml0ZSB0byByZWFkLW9ubHkgbWVtb3J5IHBhZ2UuIGdmbj0weGRkLCBt
-Zm49MHhhNGEwOQ0KKFhFTikgWzIwMTItMDktMDQgMTU6NTQ6MzNdIGh2bS5jOjI0MzU6ZDE1
-IGd1ZXN0IGF0dGVtcHRlZCB3cml0ZSB0byByZWFkLW9ubHkgbWVtb3J5IHBhZ2UuIGdmbj0w
-eGRjLCBtZm49MHhhNGEwYQ0KKFhFTikgWzIwMTItMDktMDQgMTU6NTQ6MzNdIGh2bS5jOjI0
-MzU6ZDE1IGd1ZXN0IGF0dGVtcHRlZCB3cml0ZSB0byByZWFkLW9ubHkgbWVtb3J5IHBhZ2Uu
-IGdmbj0weGRkLCBtZm49MHhhNGEwOQ0KKFhFTikgWzIwMTItMDktMDQgMTU6NTQ6MzVdIGh2
-bS5jOjI0MzU6ZDE1IGd1ZXN0IGF0dGVtcHRlZCB3cml0ZSB0byByZWFkLW9ubHkgbWVtb3J5
-IHBhZ2UuIGdmbj0weGM5LCBtZm49MHhhNGExZA0KKFhFTikgWzIwMTItMDktMDQgMTU6NTQ6
-MzVdIGh2bS5jOjI0MzU6ZDE1IGd1ZXN0IGF0dGVtcHRlZCB3cml0ZSB0byByZWFkLW9ubHkg
-bWVtb3J5IHBhZ2UuIGdmbj0weGNiLCBtZm49MHhhNGExYg0KKFhFTikgWzIwMTItMDktMDQg
-MTU6NTQ6MzVdIGh2bS5jOjI0MzU6ZDE1IGd1ZXN0IGF0dGVtcHRlZCB3cml0ZSB0byByZWFk
-LW9ubHkgbWVtb3J5IHBhZ2UuIGdmbj0weGNkLCBtZm49MHhhNGExOQ0KKFhFTikgWzIwMTIt
-MDktMDQgMTU6NTQ6MzVdIGh2bS5jOjI0MzU6ZDE1IGd1ZXN0IGF0dGVtcHRlZCB3cml0ZSB0
-byByZWFkLW9ubHkgbWVtb3J5IHBhZ2UuIGdmbj0weGNmLCBtZm49MHhhNGExNw0KKFhFTikg
-WzIwMTItMDktMDQgMTU6NTQ6MzVdIGh2bS5jOjI0MzU6ZDE1IGd1ZXN0IGF0dGVtcHRlZCB3
-cml0ZSB0byByZWFkLW9ubHkgbWVtb3J5IHBhZ2UuIGdmbj0weGQxLCBtZm49MHhhNGExNQ0K
-KFhFTikgWzIwMTItMDktMDQgMTU6NTQ6MzVdIGh2bS5jOjI0MzU6ZDE1IGd1ZXN0IGF0dGVt
-cHRlZCB3cml0ZSB0byByZWFkLW9ubHkgbWVtb3J5IHBhZ2UuIGdmbj0weGQzLCBtZm49MHhh
-NGExMw0KKFhFTikgWzIwMTItMDktMDQgMTU6NTQ6MzVdIGh2bS5jOjI0MzU6ZDE1IGd1ZXN0
-IGF0dGVtcHRlZCB3cml0ZSB0byByZWFkLW9ubHkgbWVtb3J5IHBhZ2UuIGdmbj0weGQ1LCBt
-Zm49MHhhNGExMQ0KKFhFTikgWzIwMTItMDktMDQgMTU6NTQ6MzVdIGh2bS5jOjI0MzU6ZDE1
-IGd1ZXN0IGF0dGVtcHRlZCB3cml0ZSB0byByZWFkLW9ubHkgbWVtb3J5IHBhZ2UuIGdmbj0w
-eGQ3LCBtZm49MHhhNGEwZg0KKFhFTikgWzIwMTItMDktMDQgMTU6NTQ6MzVdIGh2bS5jOjI0
-MzU6ZDE1IGd1ZXN0IGF0dGVtcHRlZCB3cml0ZSB0byByZWFkLW9ubHkgbWVtb3J5IHBhZ2Uu
-IGdmbj0weGQ5LCBtZm49MHhhNGEwZA0KKFhFTikgWzIwMTItMDktMDQgMTU6NTQ6MzVdIGh2
-bS5jOjI0MzU6ZDE1IGd1ZXN0IGF0dGVtcHRlZCB3cml0ZSB0byByZWFkLW9ubHkgbWVtb3J5
-IHBhZ2UuIGdmbj0weGRiLCBtZm49MHhhNGEwYg0KKFhFTikgWzIwMTItMDktMDQgMTU6NTQ6
-MzVdIGh2bS5jOjI0MzU6ZDE1IGd1ZXN0IGF0dGVtcHRlZCB3cml0ZSB0byByZWFkLW9ubHkg
-bWVtb3J5IHBhZ2UuIGdmbj0weGRkLCBtZm49MHhhNGEwOQ0KKFhFTikgWzIwMTItMDktMDQg
-MTU6NTQ6MzVdIGh2bS5jOjI0MzU6ZDE1IGd1ZXN0IGF0dGVtcHRlZCB3cml0ZSB0byByZWFk
-LW9ubHkgbWVtb3J5IHBhZ2UuIGdmbj0weGRmLCBtZm49MHhhNGEwNw0KKFhFTikgWzIwMTIt
-MDktMDQgMTU6NTQ6MzVdIGh2bS5jOjI0MzU6ZDE1IGd1ZXN0IGF0dGVtcHRlZCB3cml0ZSB0
-byByZWFkLW9ubHkgbWVtb3J5IHBhZ2UuIGdmbj0weGUxLCBtZm49MHhhNGEwNQ0KKFhFTikg
-WzIwMTItMDktMDQgMTU6NTQ6MzVdIGh2bS5jOjI0MzU6ZDE1IGd1ZXN0IGF0dGVtcHRlZCB3
-cml0ZSB0byByZWFkLW9ubHkgbWVtb3J5IHBhZ2UuIGdmbj0weGUzLCBtZm49MHhhNGEwMw0K
-KFhFTikgWzIwMTItMDktMDQgMTU6NTQ6MzVdIGh2bS5jOjI0MzU6ZDE1IGd1ZXN0IGF0dGVt
-cHRlZCB3cml0ZSB0byByZWFkLW9ubHkgbWVtb3J5IHBhZ2UuIGdmbj0weGU1LCBtZm49MHhh
-NGEwMQ0KKFhFTikgWzIwMTItMDktMDQgMTU6NTQ6MzVdIGh2bS5jOjI0MzU6ZDE1IGd1ZXN0
-IGF0dGVtcHRlZCB3cml0ZSB0byByZWFkLW9ubHkgbWVtb3J5IHBhZ2UuIGdmbj0weGU3LCBt
-Zm49MHhhNDYzZg0KKFhFTikgWzIwMTItMDktMDQgMTU6NTQ6MzVdIGh2bS5jOjI0MzU6ZDE1
-IGd1ZXN0IGF0dGVtcHRlZCB3cml0ZSB0byByZWFkLW9ubHkgbWVtb3J5IHBhZ2UuIGdmbj0w
-eGU5LCBtZm49MHhhNDYzZA0KKFhFTikgWzIwMTItMDktMDQgMTU6NTQ6MzVdIGh2bS5jOjI0
-MzU6ZDE1IGd1ZXN0IGF0dGVtcHRlZCB3cml0ZSB0byByZWFkLW9ubHkgbWVtb3J5IHBhZ2Uu
-IGdmbj0weGViLCBtZm49MHhhNDYzYg0KKFhFTikgWzIwMTItMDktMDQgMTU6NTQ6MzVdIGh2
-bS5jOjI0MzU6ZDE1IGd1ZXN0IGF0dGVtcHRlZCB3cml0ZSB0byByZWFkLW9ubHkgbWVtb3J5
-IHBhZ2UuIGdmbj0weGVkLCBtZm49MHhhNDYzOQ0KKFhFTikgWzIwMTItMDktMDQgMTU6NTQ6
-MzVdIGh2bS5jOjI0MzU6ZDE1IGd1ZXN0IGF0dGVtcHRlZCB3cml0ZSB0byByZWFkLW9ubHkg
-bWVtb3J5IHBhZ2UuIGdmbj0weGVmLCBtZm49MHhhNDYzNw0KKFhFTikgWzIwMTItMDktMDQg
-MTY6MTM6NTZdIEFNRC1WaTogSU9fUEFHRV9GQVVMVDogZG9tYWluID0gMCwgZGV2aWNlIGlk
-ID0gMHgwYTA2LCBmYXVsdCBhZGRyZXNzID0gMHhjMmMyYzJjMA0KKFhFTikgWzIwMTItMDkt
-MDQgMTY6MTM6NTZdIEFNRC1WaTogSU9fUEFHRV9GQVVMVDogZG9tYWluID0gMTQsIGRldmlj
-ZSBpZCA9IDB4MDcwMCwgZmF1bHQgYWRkcmVzcyA9IDB4YTkwZjgzMDANCihYRU4pIFsyMDEy
-LTA5LTA0IDE2OjEzOjU2XSBBTUQtVmk6IElPX1BBR0VfRkFVTFQ6IGRvbWFpbiA9IDE0LCBk
-ZXZpY2UgaWQgPSAweDA3MDAsIGZhdWx0IGFkZHJlc3MgPSAweGE5MGY4MzQwDQooWEVOKSBb
-MjAxMi0wOS0wNCAxNjoxMzo1Nl0gQU1ELVZpOiBJT19QQUdFX0ZBVUxUOiBkb21haW4gPSAx
-NCwgZGV2aWNlIGlkID0gMHgwNzAwLCBmYXVsdCBhZGRyZXNzID0gMHhhOTBmODM4MA0KKFhF
-TikgWzIwMTItMDktMDQgMTY6MTM6NTZdIEFNRC1WaTogSU9fUEFHRV9GQVVMVDogZG9tYWlu
-ID0gMTQsIGRldmljZSBpZCA9IDB4MDcwMCwgZmF1bHQgYWRkcmVzcyA9IDB4YTkwZjgzYzAN
-Cg==
-------------0C30E31DB2590EB56
-Content-Type: text/plain; charset="us-ascii"
-MIME-Version: 1.0
-Content-Transfer-Encoding: 7bit
-Content-Disposition: inline
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
-------------0C30E31DB2590EB56--
-
-
-
diff --git a/test/corpus/<1336753602.23818.133.camel@zakaz.uk.xensource.com> b/test/corpus/<1336753602.23818.133.camel@zakaz.uk.xensource.com>
deleted file mode 100644 (file)
index bac9689..0000000
+++ /dev/null
@@ -1,127 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri May 11 17:31:13 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 11 May 2012 17:31:13 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SSskF-0006J8-LX
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 11 May 2012 17:31:13 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SSsg4-0000di-7x; Fri, 11 May 2012 16:26:48 +0000
-Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1SSsg1-0000dE-Rd
-       for xen-devel@lists.xen.org; Fri, 11 May 2012 16:26:46 +0000
-Received: from [193.109.254.147:59489] by server-10.bemta-14.messagelabs.com
-       id A6/D7-05847-5CD3DAF4; Fri, 11 May 2012 16:26:45 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-2.tower-27.messagelabs.com!1336753604!8791247!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiA5ODU1MQ==\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 17209 invoked from network); 11 May 2012 16:26:44 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-2.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
-       11 May 2012 16:26:44 -0000
-X-IronPort-AV: E=Sophos;i="4.75,572,1330905600"; d="scan'208";a="12434396"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       11 May 2012 16:26:44 +0000
-Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0;
-       Fri, 11 May 2012 17:26:43 +0100
-Message-ID: <1336753602.23818.133.camel@zakaz.uk.xensource.com>
-From: Ian Campbell <Ian.Campbell@citrix.com>
-To: Ian Jackson <Ian.Jackson@eu.citrix.com>
-Date: Fri, 11 May 2012 17:26:42 +0100
-In-Reply-To: <20397.14624.57140.518016@mariner.uk.xensource.com>
-References: <1334928211-29856-1-git-send-email-roger.pau@citrix.com>
-       <1334928211-29856-4-git-send-email-roger.pau@citrix.com>
-       <20373.34767.584624.953798@mariner.uk.xensource.com>
-       <4F982F18.2080902@citrix.com>   <4F99360E.2010201@citrix.com>
-       <20377.18296.235567.918003@mariner.uk.xensource.com>
-       <1335445762.28015.141.camel@zakaz.uk.xensource.com>
-       <20397.14624.57140.518016@mariner.uk.xensource.com>
-Organization: Citrix Systems, Inc.
-X-Mailer: Evolution 3.2.2-1 
-MIME-Version: 1.0
-Cc: Roger Pau Monne <roger.pau@citrix.com>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] Fwd: Re: [PATCH v3 3/5] libxl: call hotplug scripts
- from libxl for vbd
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Fri, 2012-05-11 at 17:06 +0100, Ian Jackson wrote:
-> Ian Campbell writes ("Re: [Xen-devel] Fwd: Re: [PATCH v3 3/5] libxl: call hotplug scripts from libxl for vbd"):
-> > On Thu, 2012-04-26 at 14:02 +0100, Ian Jackson wrote:
-> > > I think we need to think about these timeouts.  At the very least
-> > > they're policy which should probably not be hardcoded in libxl; and
-> > > arguably people might want to be able to specify infinite ("I trust my
-> > > guest or driver domain and never want to pull the rug out from under
-> > > its feet") or zero ("this guest or driver domain has gone wrong and I
-> > > want it killed, now").
-> > 
-> > Unless the same is going to be true of the eventual solution (which I
-> > suppose it may well be?) we should be wary of over engineering the
-> > interim solution for 4.2.
-> 
-> I guess.  Also xend's poor behaviour in this area (failing hotplug
-> timeouts) provides something of an excuse...
-> 
-> > > Perhaps it would be better to do things the other way around, and have
-> > > an env var for the case where we're _not_ calling the script from
-> > > udev ?  After all, udev config is configuration (at least on my
-> > > distros) which the user may not update when the software is updated.
-> > 
-> > It was my suggestion to do it this way so that we don't end up with a
-> > vestigial env var which must always be set for no real reason after
-> > we've removed the udev path altogether.
-> 
-> When we have "removed the udev path altogether" we will still need to
-> have something to prevent trouble if the udev rules remain for some
-> reason.
-> 
-> > I don't really mind though, we could live with that vestigial thing, or
-> > have another, easier, transition a few releases down the line.
-> 
-> The vestigial thing can indeed eventually go away.
-
-I'm happy for Roger and you to agree whichever sense you think best for
-the flag.
-
-Ian.
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1338287956-24691-1-git-send-email-stefano.stabellini@eu.citrix.com> b/test/corpus/<1338287956-24691-1-git-send-email-stefano.stabellini@eu.citrix.com>
deleted file mode 100644 (file)
index 371736e..0000000
+++ /dev/null
@@ -1,205 +0,0 @@
-From xen-devel-bounces@lists.xen.org Tue May 29 11:42:58 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Tue, 29 May 2012 11:42:58 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SZJt6-00034O-BB
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 29 May 2012 11:42:58 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SZJpq-0005aZ-AY; Tue, 29 May 2012 10:39:30 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1SZJpn-0005ZK-NF
-       for xen-devel@lists.xensource.com; Tue, 29 May 2012 10:39:28 +0000
-Received: from [85.158.139.83:45474] by server-4.bemta-5.messagelabs.com id
-       C4/8E-16506-F57A4CF4; Tue, 29 May 2012 10:39:27 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-5.tower-182.messagelabs.com!1338287963!30934701!3
-X-Originating-IP: [66.165.176.63]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyNTU4MTE=\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 17643 invoked from network); 29 May 2012 10:39:26 -0000
-Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
-       by server-5.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
-       29 May 2012 10:39:26 -0000
-X-IronPort-AV: E=Sophos;i="4.75,677,1330923600"; d="scan'208";a="196722667"
-Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
-       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       29 May 2012 06:39:23 -0400
-Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
-       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
-       Tue, 29 May 2012 06:39:23 -0400
-Received: from kaball.uk.xensource.com ([10.80.2.59]
-       helo=localhost.localdomain)     by ukmail1.uk.xensource.com with esmtp
-       (Exim 4.69)     (envelope-from <stefano.stabellini@eu.citrix.com>)      id
-       1SZJpd-0003cq-Gi; Tue, 29 May 2012 11:39:17 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-To: xen-devel@lists.xensource.com
-Date: Tue, 29 May 2012 11:39:06 +0100
-Message-ID: <1338287956-24691-1-git-send-email-stefano.stabellini@eu.citrix.com>
-X-Mailer: git-send-email 1.7.0.4
-In-Reply-To: <alpine.DEB.2.00.1205281439080.26786@kaball-desktop>
-References: <alpine.DEB.2.00.1205281439080.26786@kaball-desktop>
-MIME-Version: 1.0
-Cc: Ian.Jackson@eu.citrix.com, Ian.Campbell@citrix.com,
-       Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: [Xen-devel] [PATCH v8 01/11] libxl: make
-       libxl_device_disk_local_attach/detach internal functions
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-Changes in v8:
-- keep libxl__device_disk_local_attach/detach in libxl.c.
-
-Changes in v5:
-
-- remove _hidden from the implementation.
-
-Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-Acked-by: Ian Campbell <ian.campbell@citrix.com>
-Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
----
- tools/libxl/libxl.c            |   11 +++--------
- tools/libxl/libxl.h            |    7 -------
- tools/libxl/libxl_bootloader.c |    4 ++--
- tools/libxl/libxl_internal.h   |    9 +++++++++
- 4 files changed, 14 insertions(+), 17 deletions(-)
-
-diff --git a/tools/libxl/libxl.c b/tools/libxl/libxl.c
-index e3d05c2..cd870c4 100644
---- a/tools/libxl/libxl.c
-+++ b/tools/libxl/libxl.c
-@@ -1735,9 +1735,9 @@ out:
-     return ret;
- }
--char * libxl_device_disk_local_attach(libxl_ctx *ctx, libxl_device_disk *disk)
-+char * libxl__device_disk_local_attach(libxl__gc *gc, libxl_device_disk *disk)
- {
--    GC_INIT(ctx);
-+    libxl_ctx *ctx = gc->owner;
-     char *dev = NULL;
-     char *ret = NULL;
-     int rc;
-@@ -1792,11 +1792,10 @@ char * libxl_device_disk_local_attach(libxl_ctx *ctx, libxl_device_disk *disk)
-  out:
-     if (dev != NULL)
-         ret = strdup(dev);
--    GC_FREE;
-     return ret;
- }
--int libxl_device_disk_local_detach(libxl_ctx *ctx, libxl_device_disk *disk)
-+int libxl__device_disk_local_detach(libxl__gc *gc, libxl_device_disk *disk)
- {
-     /* Nothing to do for PHYSTYPE_PHY. */
-@@ -1804,10 +1803,6 @@ int libxl_device_disk_local_detach(libxl_ctx *ctx, libxl_device_disk *disk)
-      * For other device types assume that the blktap2 process is
-      * needed by the soon to be started domain and do nothing.
-      */
--    /*
--     * FIXME
--     * This appears to leak the disk in failure paths
--     */
-     return 0;
- }
-diff --git a/tools/libxl/libxl.h b/tools/libxl/libxl.h
-index 316d290..21e6510 100644
---- a/tools/libxl/libxl.h
-+++ b/tools/libxl/libxl.h
-@@ -686,13 +686,6 @@ int libxl_device_disk_getinfo(libxl_ctx *ctx, uint32_t domid,
-  */
- int libxl_cdrom_insert(libxl_ctx *ctx, uint32_t domid, libxl_device_disk *disk);
--/*
-- * Make a disk available in this (the control) domain. Returns path to
-- * a device.
-- */
--char * libxl_device_disk_local_attach(libxl_ctx *ctx, libxl_device_disk *disk);
--int libxl_device_disk_local_detach(libxl_ctx *ctx, libxl_device_disk *disk);
--
- /* Network Interfaces */
- int libxl_device_nic_add(libxl_ctx *ctx, uint32_t domid, libxl_device_nic *nic);
- int libxl_device_nic_remove(libxl_ctx *ctx, uint32_t domid,
-diff --git a/tools/libxl/libxl_bootloader.c b/tools/libxl/libxl_bootloader.c
-index f3a590b..e8950b1 100644
---- a/tools/libxl/libxl_bootloader.c
-+++ b/tools/libxl/libxl_bootloader.c
-@@ -228,7 +228,7 @@ static void bootloader_cleanup(libxl__egc *egc, libxl__bootloader_state *bl)
-     if (bl->outputdir) libxl__remove_directory(gc, bl->outputdir);
-     if (bl->diskpath) {
--        libxl_device_disk_local_detach(CTX, bl->disk);
-+        libxl__device_disk_local_detach(gc, bl->disk);
-         free(bl->diskpath);
-         bl->diskpath = 0;
-     }
-@@ -330,7 +330,7 @@ void libxl__bootloader_run(libxl__egc *egc, libxl__bootloader_state *bl)
-         goto out;
-     }
--    bl->diskpath = libxl_device_disk_local_attach(CTX, bl->disk);
-+    bl->diskpath = libxl__device_disk_local_attach(gc, bl->disk);
-     if (!bl->diskpath) {
-         rc = ERROR_FAIL;
-         goto out;
-diff --git a/tools/libxl/libxl_internal.h b/tools/libxl/libxl_internal.h
-index 52f5435..d34e561 100644
---- a/tools/libxl/libxl_internal.h
-+++ b/tools/libxl/libxl_internal.h
-@@ -1260,6 +1260,15 @@ _hidden char *libxl__blktap_devpath(libxl__gc *gc,
-  */
- _hidden void libxl__device_destroy_tapdisk(libxl__gc *gc, char *be_path);
-+/*
-+ * Make a disk available in this (the control) domain. Returns path to
-+ * a device.
-+ */
-+_hidden char * libxl__device_disk_local_attach(libxl__gc *gc,
-+        libxl_device_disk *disk);
-+_hidden int libxl__device_disk_local_detach(libxl__gc *gc,
-+        libxl_device_disk *disk);
-+
- _hidden char *libxl__uuid2string(libxl__gc *gc, const libxl_uuid uuid);
- struct libxl__xen_console_reader {
--- 
-1.7.2.5
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1338287956-24691-10-git-send-email-stefano.stabellini@eu.citrix.com> b/test/corpus/<1338287956-24691-10-git-send-email-stefano.stabellini@eu.citrix.com>
deleted file mode 100644 (file)
index 3e63183..0000000
+++ /dev/null
@@ -1,106 +0,0 @@
-From xen-devel-bounces@lists.xen.org Tue May 29 11:42:55 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Tue, 29 May 2012 11:42:55 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SZJt4-000342-3A
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 29 May 2012 11:42:55 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SZJpu-0005d4-6T; Tue, 29 May 2012 10:39:34 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1SZJpr-0005bG-Ry
-       for xen-devel@lists.xensource.com; Tue, 29 May 2012 10:39:31 +0000
-Received: from [85.158.138.51:49549] by server-1.bemta-3.messagelabs.com id
-       9E/48-18759-367A4CF4; Tue, 29 May 2012 10:39:31 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-10.tower-174.messagelabs.com!1338287969!25615647!1
-X-Originating-IP: [66.165.176.89]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNDY2MDQ=\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 3876 invoked from network); 29 May 2012 10:39:30 -0000
-Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
-       by server-10.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
-       29 May 2012 10:39:30 -0000
-X-IronPort-AV: E=Sophos;i="4.75,677,1330923600"; d="scan'208";a="26032814"
-Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
-       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       29 May 2012 06:39:28 -0400
-Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
-       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
-       Tue, 29 May 2012 06:39:28 -0400
-Received: from kaball.uk.xensource.com ([10.80.2.59]
-       helo=localhost.localdomain)     by ukmail1.uk.xensource.com with esmtp
-       (Exim 4.69)     (envelope-from <stefano.stabellini@eu.citrix.com>)      id
-       1SZJpd-0003cq-QF; Tue, 29 May 2012 11:39:17 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-To: xen-devel@lists.xensource.com
-Date: Tue, 29 May 2012 11:39:15 +0100
-Message-ID: <1338287956-24691-10-git-send-email-stefano.stabellini@eu.citrix.com>
-X-Mailer: git-send-email 1.7.0.4
-In-Reply-To: <alpine.DEB.2.00.1205281439080.26786@kaball-desktop>
-References: <alpine.DEB.2.00.1205281439080.26786@kaball-desktop>
-MIME-Version: 1.0
-Cc: Ian.Jackson@eu.citrix.com, Ian.Campbell@citrix.com,
-       Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: [Xen-devel] [PATCH v8 10/11] libxl_string_to_backend: add qdisk
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
----
- tools/libxl/libxl_utils.c |    2 ++
- 1 files changed, 2 insertions(+), 0 deletions(-)
-
-diff --git a/tools/libxl/libxl_utils.c b/tools/libxl/libxl_utils.c
-index 73b00b3..4cf403d 100644
---- a/tools/libxl/libxl_utils.c
-+++ b/tools/libxl/libxl_utils.c
-@@ -240,6 +240,8 @@ int libxl_string_to_backend(libxl_ctx *ctx, char *s, libxl_disk_backend *backend
-         *backend = LIBXL_DISK_BACKEND_PHY;
-     } else if (!strcmp(s, "file")) {
-         *backend = LIBXL_DISK_BACKEND_TAP;
-+    } else if (!strcmp(s, "qdisk")) {
-+        *backend = LIBXL_DISK_BACKEND_QDISK;
-     } else if (!strcmp(s, "tap")) {
-         p = strchr(s, ':');
-         if (!p) {
--- 
-1.7.2.5
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1338287956-24691-11-git-send-email-stefano.stabellini@eu.citrix.com> b/test/corpus/<1338287956-24691-11-git-send-email-stefano.stabellini@eu.citrix.com>
deleted file mode 100644 (file)
index 6f09a88..0000000
+++ /dev/null
@@ -1,111 +0,0 @@
-From xen-devel-bounces@lists.xen.org Tue May 29 11:49:30 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Tue, 29 May 2012 11:49:30 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SZJzQ-00037b-Iv
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 29 May 2012 11:49:30 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SZJw4-0007Bb-KG; Tue, 29 May 2012 10:45:56 +0000
-Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1SZJw3-0007BW-8i
-       for xen-devel@lists.xensource.com; Tue, 29 May 2012 10:45:55 +0000
-Received: from [193.109.254.147:20752] by server-10.bemta-14.messagelabs.com
-       id 3D/82-12925-2E8A4CF4; Tue, 29 May 2012 10:45:54 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-6.tower-27.messagelabs.com!1338288352!3820323!1
-X-Originating-IP: [66.165.176.63]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyNTU4MTE=\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 15312 invoked from network); 29 May 2012 10:45:53 -0000
-Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
-       by server-6.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
-       29 May 2012 10:45:53 -0000
-X-IronPort-AV: E=Sophos;i="4.75,677,1330923600"; d="scan'208";a="196723254"
-Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
-       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       29 May 2012 06:45:52 -0400
-Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
-       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
-       Tue, 29 May 2012 06:45:52 -0400
-Received: from kaball.uk.xensource.com ([10.80.2.59]
-       helo=localhost.localdomain)     by ukmail1.uk.xensource.com with esmtp
-       (Exim 4.69)     (envelope-from <stefano.stabellini@eu.citrix.com>)      id
-       1SZJpd-0003cq-S2; Tue, 29 May 2012 11:39:17 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-To: xen-devel@lists.xensource.com
-Date: Tue, 29 May 2012 11:39:16 +0100
-Message-ID: <1338287956-24691-11-git-send-email-stefano.stabellini@eu.citrix.com>
-X-Mailer: git-send-email 1.7.0.4
-In-Reply-To: <alpine.DEB.2.00.1205281439080.26786@kaball-desktop>
-References: <alpine.DEB.2.00.1205281439080.26786@kaball-desktop>
-MIME-Version: 1.0
-Cc: Ian.Jackson@eu.citrix.com, Ian.Campbell@citrix.com,
-       Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: [Xen-devel] [PATCH v8 11/11] main_blockdetach: destroy the disk on
-       successful removal
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-main_blockdetach needs to call libxl_device_disk_destroy so that all the
-disk related entries are properly removed from xenstore.
-
-Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
----
- tools/libxl/xl_cmdimpl.c |    3 ++-
- 1 files changed, 2 insertions(+), 1 deletions(-)
-
-diff --git a/tools/libxl/xl_cmdimpl.c b/tools/libxl/xl_cmdimpl.c
-index ce9237b..1167ed0 100644
---- a/tools/libxl/xl_cmdimpl.c
-+++ b/tools/libxl/xl_cmdimpl.c
-@@ -5396,7 +5396,8 @@ int main_blockdetach(int argc, char **argv)
-     }
-     if (libxl_device_disk_remove(ctx, domid, &disk, 0)) {
-         fprintf(stderr, "libxl_device_disk_remove failed.\n");
--    }
-+    } else
-+        libxl_device_disk_destroy(ctx, domid, &disk);
-     return 0;
- }
--- 
-1.7.2.5
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1338287956-24691-2-git-send-email-stefano.stabellini@eu.citrix.com> b/test/corpus/<1338287956-24691-2-git-send-email-stefano.stabellini@eu.citrix.com>
deleted file mode 100644 (file)
index 60a669d..0000000
+++ /dev/null
@@ -1,221 +0,0 @@
-From xen-devel-bounces@lists.xen.org Tue May 29 11:43:03 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Tue, 29 May 2012 11:43:03 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SZJt7-00034S-KO
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 29 May 2012 11:43:03 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SZJpo-0005Zh-Oj; Tue, 29 May 2012 10:39:28 +0000
-Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1SZJpm-0005Z1-Ga
-       for xen-devel@lists.xensource.com; Tue, 29 May 2012 10:39:26 +0000
-Received: from [193.109.254.147:8370] by server-7.bemta-14.messagelabs.com id
-       6D/A1-20336-D57A4CF4; Tue, 29 May 2012 10:39:25 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-16.tower-27.messagelabs.com!1338287963!11570865!1
-X-Originating-IP: [66.165.176.89]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNDY2MDQ=\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 11790 invoked from network); 29 May 2012 10:39:25 -0000
-Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
-       by server-16.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
-       29 May 2012 10:39:25 -0000
-X-IronPort-AV: E=Sophos;i="4.75,677,1330923600"; d="scan'208";a="26032803"
-Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
-       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       29 May 2012 06:39:23 -0400
-Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
-       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
-       Tue, 29 May 2012 06:39:23 -0400
-Received: from kaball.uk.xensource.com ([10.80.2.59]
-       helo=localhost.localdomain)     by ukmail1.uk.xensource.com with esmtp
-       (Exim 4.69)     (envelope-from <stefano.stabellini@eu.citrix.com>)      id
-       1SZJpd-0003cq-HH; Tue, 29 May 2012 11:39:17 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-To: xen-devel@lists.xensource.com
-Date: Tue, 29 May 2012 11:39:07 +0100
-Message-ID: <1338287956-24691-2-git-send-email-stefano.stabellini@eu.citrix.com>
-X-Mailer: git-send-email 1.7.0.4
-In-Reply-To: <alpine.DEB.2.00.1205281439080.26786@kaball-desktop>
-References: <alpine.DEB.2.00.1205281439080.26786@kaball-desktop>
-MIME-Version: 1.0
-Cc: Ian.Jackson@eu.citrix.com, Ian.Campbell@citrix.com,
-       Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: [Xen-devel] [PATCH v8 02/11] libxl: libxl__device_disk_local_attach
-       return a new libxl_device_disk
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-Introduce a new libxl_device_disk* parameter to
-libxl__device_disk_local_attach, the parameter is allocated by the
-caller. libxl__device_disk_local_attach is going to fill the new disk
-with informations about the new locally attached disk.  The new
-libxl_device_disk should be passed to libxl_device_disk_local_detach
-afterwards.
-
-Changes in v8:
-- free pdev_path and script in local_detach;
-- use libxl__strdup instead of strdup.
-
-Changes in v7:
-- rename tmpdisk to localdisk;
-- add a comment in libxl__bootloader_state about localdisk.
-
-Changes in v6:
-- return error in case pdev_path is NULL;
-- libxl__device_disk_local_attach update the new disk, the caller
-allocates it;
-- remove \n from logs.
-
-Changes in v5:
-- rename disk to in_disk;
-- rename tmpdisk to disk;
-- copy disk to new_disk only on success;
-- remove check on libxl__zalloc success.
-
-Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
----
- tools/libxl/libxl.c            |   18 +++++++++++++++---
- tools/libxl/libxl_bootloader.c |    4 ++--
- tools/libxl/libxl_internal.h   |   10 +++++++++-
- 3 files changed, 26 insertions(+), 6 deletions(-)
-
-diff --git a/tools/libxl/libxl.c b/tools/libxl/libxl.c
-index cd870c4..762e72a 100644
---- a/tools/libxl/libxl.c
-+++ b/tools/libxl/libxl.c
-@@ -1735,13 +1735,24 @@ out:
-     return ret;
- }
--char * libxl__device_disk_local_attach(libxl__gc *gc, libxl_device_disk *disk)
-+char * libxl__device_disk_local_attach(libxl__gc *gc,
-+        const libxl_device_disk *in_disk,
-+        libxl_device_disk *disk)
- {
-     libxl_ctx *ctx = gc->owner;
-     char *dev = NULL;
-     char *ret = NULL;
-     int rc;
-+    if (in_disk->pdev_path == NULL)
-+        return NULL;
-+
-+    memcpy(disk, in_disk, sizeof(libxl_device_disk));
-+    disk->pdev_path = libxl__strdup(NULL, in_disk->pdev_path);
-+    if (in_disk->script != NULL)
-+        disk->script = libxl__strdup(NULL, in_disk->script);
-+    disk->vdev = NULL;
-+
-     rc = libxl__device_disk_setdefault(gc, disk);
-     if (rc) goto out;
-@@ -1779,8 +1790,7 @@ char * libxl__device_disk_local_attach(libxl__gc *gc, libxl_device_disk *disk)
-                            " attach a qdisk image if the format is not raw");
-                 break;
-             }
--            LIBXL__LOG(ctx, LIBXL__LOG_DEBUG, "locally attaching qdisk %s\n",
--                       disk->pdev_path);
-+            LOG(DEBUG, "locally attaching qdisk %s", in_disk->pdev_path);
-             dev = disk->pdev_path;
-             break;
-         default:
-@@ -1804,6 +1814,8 @@ int libxl__device_disk_local_detach(libxl__gc *gc, libxl_device_disk *disk)
-      * needed by the soon to be started domain and do nothing.
-      */
-+    free(disk->pdev_path);
-+    free(disk->script);
-     return 0;
- }
-diff --git a/tools/libxl/libxl_bootloader.c b/tools/libxl/libxl_bootloader.c
-index e8950b1..82371f1 100644
---- a/tools/libxl/libxl_bootloader.c
-+++ b/tools/libxl/libxl_bootloader.c
-@@ -228,7 +228,7 @@ static void bootloader_cleanup(libxl__egc *egc, libxl__bootloader_state *bl)
-     if (bl->outputdir) libxl__remove_directory(gc, bl->outputdir);
-     if (bl->diskpath) {
--        libxl__device_disk_local_detach(gc, bl->disk);
-+        libxl__device_disk_local_detach(gc, &bl->localdisk);
-         free(bl->diskpath);
-         bl->diskpath = 0;
-     }
-@@ -330,7 +330,7 @@ void libxl__bootloader_run(libxl__egc *egc, libxl__bootloader_state *bl)
-         goto out;
-     }
--    bl->diskpath = libxl__device_disk_local_attach(gc, bl->disk);
-+    bl->diskpath = libxl__device_disk_local_attach(gc, bl->disk, &bl->localdisk);
-     if (!bl->diskpath) {
-         rc = ERROR_FAIL;
-         goto out;
-diff --git a/tools/libxl/libxl_internal.h b/tools/libxl/libxl_internal.h
-index d34e561..21b8b54 100644
---- a/tools/libxl/libxl_internal.h
-+++ b/tools/libxl/libxl_internal.h
-@@ -1265,7 +1265,8 @@ _hidden void libxl__device_destroy_tapdisk(libxl__gc *gc, char *be_path);
-  * a device.
-  */
- _hidden char * libxl__device_disk_local_attach(libxl__gc *gc,
--        libxl_device_disk *disk);
-+        const libxl_device_disk *in_disk,
-+        libxl_device_disk *new_disk);
- _hidden int libxl__device_disk_local_detach(libxl__gc *gc,
-         libxl_device_disk *disk);
-@@ -1803,6 +1804,13 @@ struct libxl__bootloader_state {
-     libxl__bootloader_console_callback *console_available;
-     libxl_domain_build_info *info; /* u.pv.{kernel,ramdisk,cmdline} updated */
-     libxl_device_disk *disk;
-+    /* Should be zeroed by caller on entry.  Will be filled in by
-+     * bootloader machinery; represents the local attachment of the
-+     * disk for the benefit of the bootloader.  Must be detached by
-+     * the caller using libxl__device_disk_local_detach, but only
-+     * after the domain's kernel and initramfs have been loaded into
-+     * memory and the file references disposed of. */
-+    libxl_device_disk localdisk;
-     uint32_t domid;
-     /* private to libxl__run_bootloader */
-     char *outputpath, *outputdir, *logfile;
--- 
-1.7.2.5
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1338287956-24691-3-git-send-email-stefano.stabellini@eu.citrix.com> b/test/corpus/<1338287956-24691-3-git-send-email-stefano.stabellini@eu.citrix.com>
deleted file mode 100644 (file)
index fb0bdc3..0000000
+++ /dev/null
@@ -1,240 +0,0 @@
-From xen-devel-bounces@lists.xen.org Tue May 29 11:43:04 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Tue, 29 May 2012 11:43:04 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SZJt6-00034P-Nr
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 29 May 2012 11:43:04 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SZJps-0005bk-Bs; Tue, 29 May 2012 10:39:32 +0000
-Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1SZJpo-0005ZU-6j
-       for xen-devel@lists.xensource.com; Tue, 29 May 2012 10:39:28 +0000
-Received: from [193.109.254.147:26569] by server-8.bemta-14.messagelabs.com id
-       8C/59-17829-F57A4CF4; Tue, 29 May 2012 10:39:27 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-16.tower-27.messagelabs.com!1338287963!11570865!3
-X-Originating-IP: [66.165.176.89]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNDY2MDQ=\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 11876 invoked from network); 29 May 2012 10:39:26 -0000
-Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
-       by server-16.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
-       29 May 2012 10:39:26 -0000
-X-IronPort-AV: E=Sophos;i="4.75,677,1330923600"; d="scan'208";a="26032805"
-Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
-       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       29 May 2012 06:39:23 -0400
-Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
-       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
-       Tue, 29 May 2012 06:39:23 -0400
-Received: from kaball.uk.xensource.com ([10.80.2.59]
-       helo=localhost.localdomain)     by ukmail1.uk.xensource.com with esmtp
-       (Exim 4.69)     (envelope-from <stefano.stabellini@eu.citrix.com>)      id
-       1SZJpd-0003cq-Hn; Tue, 29 May 2012 11:39:17 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-To: xen-devel@lists.xensource.com
-Date: Tue, 29 May 2012 11:39:08 +0100
-Message-ID: <1338287956-24691-3-git-send-email-stefano.stabellini@eu.citrix.com>
-X-Mailer: git-send-email 1.7.0.4
-In-Reply-To: <alpine.DEB.2.00.1205281439080.26786@kaball-desktop>
-References: <alpine.DEB.2.00.1205281439080.26786@kaball-desktop>
-MIME-Version: 1.0
-Cc: Ian.Jackson@eu.citrix.com, Ian.Campbell@citrix.com,
-       Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: [Xen-devel] [PATCH v8 03/11] libxl: add a transaction parameter to
-       libxl__device_generic_add
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-Add a xs_transaction_t parameter to libxl__device_generic_add, if it is
-XBT_NULL, allocate a proper one.
-
-Update all the callers.
-
-This patch contains a large number of unchecked xenstore operations, we
-might want to fix this in the future.
-
-Changes in v4:
-- libxl__device_generic_add: do not end the transaction is the caller
-provided it;
-- libxl__device_generic_add: fix success exit path.
-
-Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
-Acked-by: Ian Campbell <ian.campbell@citrix.com>
----
- tools/libxl/libxl.c          |   10 +++++-----
- tools/libxl/libxl_device.c   |   17 +++++++++++------
- tools/libxl/libxl_internal.h |    4 ++--
- tools/libxl/libxl_pci.c      |    2 +-
- 4 files changed, 19 insertions(+), 14 deletions(-)
-
-diff --git a/tools/libxl/libxl.c b/tools/libxl/libxl.c
-index 762e72a..987086d 100644
---- a/tools/libxl/libxl.c
-+++ b/tools/libxl/libxl.c
-@@ -1472,7 +1472,7 @@ int libxl_device_disk_add(libxl_ctx *ctx, uint32_t domid, libxl_device_disk *dis
-     flexarray_append(front, "device-type");
-     flexarray_append(front, disk->is_cdrom ? "cdrom" : "disk");
--    libxl__device_generic_add(gc, &device,
-+    libxl__device_generic_add(gc, XBT_NULL, &device,
-                              libxl__xs_kvs_of_flexarray(gc, back, back->count),
-                              libxl__xs_kvs_of_flexarray(gc, front, front->count));
-@@ -1957,7 +1957,7 @@ int libxl_device_nic_add(libxl_ctx *ctx, uint32_t domid, libxl_device_nic *nic)
-     flexarray_append(front, "mac");
-     flexarray_append(front, libxl__sprintf(gc,
-                                     LIBXL_MAC_FMT, LIBXL_MAC_BYTES(nic->mac)));
--    libxl__device_generic_add(gc, &device,
-+    libxl__device_generic_add(gc, XBT_NULL, &device,
-                              libxl__xs_kvs_of_flexarray(gc, back, back->count),
-                              libxl__xs_kvs_of_flexarray(gc, front, front->count));
-@@ -2250,7 +2250,7 @@ int libxl__device_console_add(libxl__gc *gc, uint32_t domid,
-         flexarray_append(front, LIBXL_XENCONSOLE_PROTOCOL);
-     }
--    libxl__device_generic_add(gc, &device,
-+    libxl__device_generic_add(gc, XBT_NULL, &device,
-                              libxl__xs_kvs_of_flexarray(gc, back, back->count),
-                              libxl__xs_kvs_of_flexarray(gc, front, front->count));
-     rc = 0;
-@@ -2321,7 +2321,7 @@ int libxl_device_vkb_add(libxl_ctx *ctx, uint32_t domid, libxl_device_vkb *vkb)
-     flexarray_append(front, "state");
-     flexarray_append(front, libxl__sprintf(gc, "%d", 1));
--    libxl__device_generic_add(gc, &device,
-+    libxl__device_generic_add(gc, XBT_NULL, &device,
-                              libxl__xs_kvs_of_flexarray(gc, back, back->count),
-                              libxl__xs_kvs_of_flexarray(gc, front, front->count));
-     rc = 0;
-@@ -2454,7 +2454,7 @@ int libxl_device_vfb_add(libxl_ctx *ctx, uint32_t domid, libxl_device_vfb *vfb)
-                           libxl__sprintf(gc, "%d", vfb->backend_domid));
-     flexarray_append_pair(front, "state", libxl__sprintf(gc, "%d", 1));
--    libxl__device_generic_add(gc, &device,
-+    libxl__device_generic_add(gc, XBT_NULL, &device,
-                              libxl__xs_kvs_of_flexarray(gc, back, back->count),
-                              libxl__xs_kvs_of_flexarray(gc, front, front->count));
-     rc = 0;
-diff --git a/tools/libxl/libxl_device.c b/tools/libxl/libxl_device.c
-index 2006406..3da60e1 100644
---- a/tools/libxl/libxl_device.c
-+++ b/tools/libxl/libxl_device.c
-@@ -58,14 +58,14 @@ int libxl__parse_backend_path(libxl__gc *gc,
-     return libxl__device_kind_from_string(strkind, &dev->backend_kind);
- }
--int libxl__device_generic_add(libxl__gc *gc, libxl__device *device,
--                             char **bents, char **fents)
-+int libxl__device_generic_add(libxl__gc *gc, xs_transaction_t t,
-+        libxl__device *device, char **bents, char **fents)
- {
-     libxl_ctx *ctx = libxl__gc_owner(gc);
-     char *frontend_path, *backend_path;
--    xs_transaction_t t;
-     struct xs_permissions frontend_perms[2];
-     struct xs_permissions backend_perms[2];
-+    int create_transaction = t == XBT_NULL;
-     frontend_path = libxl__device_frontend_path(gc, device);
-     backend_path = libxl__device_backend_path(gc, device);
-@@ -81,7 +81,8 @@ int libxl__device_generic_add(libxl__gc *gc, libxl__device *device,
-     backend_perms[1].perms = XS_PERM_READ;
- retry_transaction:
--    t = xs_transaction_start(ctx->xsh);
-+    if (create_transaction)
-+        t = xs_transaction_start(ctx->xsh);
-     /* FIXME: read frontend_path and check state before removing stuff */
-     if (fents) {
-@@ -100,13 +101,17 @@ retry_transaction:
-         libxl__xs_writev(gc, t, backend_path, bents);
-     }
-+    if (!create_transaction)
-+        return 0;
-+
-     if (!xs_transaction_end(ctx->xsh, t, 0)) {
-         if (errno == EAGAIN)
-             goto retry_transaction;
--        else
-+        else {
-             LIBXL__LOG_ERRNO(ctx, LIBXL__LOG_ERROR, "xs transaction failed");
-+            return ERROR_FAIL;
-+        }
-     }
--
-     return 0;
- }
-diff --git a/tools/libxl/libxl_internal.h b/tools/libxl/libxl_internal.h
-index 21b8b54..03fba22 100644
---- a/tools/libxl/libxl_internal.h
-+++ b/tools/libxl/libxl_internal.h
-@@ -792,8 +792,8 @@ _hidden int libxl__device_console_add(libxl__gc *gc, uint32_t domid,
-                                       libxl__device_console *console,
-                                       libxl__domain_build_state *state);
--_hidden int libxl__device_generic_add(libxl__gc *gc, libxl__device *device,
--                             char **bents, char **fents);
-+_hidden int libxl__device_generic_add(libxl__gc *gc, xs_transaction_t t,
-+        libxl__device *device, char **bents, char **fents);
- _hidden char *libxl__device_backend_path(libxl__gc *gc, libxl__device *device);
- _hidden char *libxl__device_frontend_path(libxl__gc *gc, libxl__device *device);
- _hidden int libxl__parse_backend_path(libxl__gc *gc, const char *path,
-diff --git a/tools/libxl/libxl_pci.c b/tools/libxl/libxl_pci.c
-index e980995..92764fc 100644
---- a/tools/libxl/libxl_pci.c
-+++ b/tools/libxl/libxl_pci.c
-@@ -103,7 +103,7 @@ int libxl__create_pci_backend(libxl__gc *gc, uint32_t domid,
-     flexarray_append_pair(front, "backend-id", libxl__sprintf(gc, "%d", 0));
-     flexarray_append_pair(front, "state", libxl__sprintf(gc, "%d", 1));
--    libxl__device_generic_add(gc, &device,
-+    libxl__device_generic_add(gc, XBT_NULL, &device,
-                               libxl__xs_kvs_of_flexarray(gc, back, back->count),
-                               libxl__xs_kvs_of_flexarray(gc, front, front->count));
--- 
-1.7.2.5
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1338287956-24691-4-git-send-email-stefano.stabellini@eu.citrix.com> b/test/corpus/<1338287956-24691-4-git-send-email-stefano.stabellini@eu.citrix.com>
deleted file mode 100644 (file)
index 42a7baf..0000000
+++ /dev/null
@@ -1,122 +0,0 @@
-From xen-devel-bounces@lists.xen.org Tue May 29 11:42:56 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Tue, 29 May 2012 11:42:56 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SZJt4-000343-BR
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 29 May 2012 11:42:56 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SZJpp-0005a0-3i; Tue, 29 May 2012 10:39:29 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1SZJpm-0005Yy-H2
-       for xen-devel@lists.xensource.com; Tue, 29 May 2012 10:39:26 +0000
-Received: from [85.158.139.83:23165] by server-7.bemta-5.messagelabs.com id
-       3F/AB-15932-D57A4CF4; Tue, 29 May 2012 10:39:25 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-5.tower-182.messagelabs.com!1338287963!30934701!1
-X-Originating-IP: [66.165.176.63]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyNTU4MTE=\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 17582 invoked from network); 29 May 2012 10:39:25 -0000
-Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
-       by server-5.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
-       29 May 2012 10:39:25 -0000
-X-IronPort-AV: E=Sophos;i="4.75,677,1330923600"; d="scan'208";a="196722665"
-Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
-       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       29 May 2012 06:39:23 -0400
-Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
-       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
-       Tue, 29 May 2012 06:39:23 -0400
-Received: from kaball.uk.xensource.com ([10.80.2.59]
-       helo=localhost.localdomain)     by ukmail1.uk.xensource.com with esmtp
-       (Exim 4.69)     (envelope-from <stefano.stabellini@eu.citrix.com>)      id
-       1SZJpd-0003cq-IJ; Tue, 29 May 2012 11:39:17 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-To: xen-devel@lists.xensource.com
-Date: Tue, 29 May 2012 11:39:09 +0100
-Message-ID: <1338287956-24691-4-git-send-email-stefano.stabellini@eu.citrix.com>
-X-Mailer: git-send-email 1.7.0.4
-In-Reply-To: <alpine.DEB.2.00.1205281439080.26786@kaball-desktop>
-References: <alpine.DEB.2.00.1205281439080.26786@kaball-desktop>
-MIME-Version: 1.0
-Cc: Ian.Jackson@eu.citrix.com, Ian.Campbell@citrix.com,
-       Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: [Xen-devel] [PATCH v8 04/11] libxl: export libxl__device_from_disk
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
----
- tools/libxl/libxl.c          |    2 +-
- tools/libxl/libxl_internal.h |    4 ++++
- 2 files changed, 5 insertions(+), 1 deletions(-)
-
-diff --git a/tools/libxl/libxl.c b/tools/libxl/libxl.c
-index 987086d..eb1ad4f 100644
---- a/tools/libxl/libxl.c
-+++ b/tools/libxl/libxl.c
-@@ -1327,7 +1327,7 @@ int libxl__device_disk_setdefault(libxl__gc *gc, libxl_device_disk *disk)
-     return rc;
- }
--static int libxl__device_from_disk(libxl__gc *gc, uint32_t domid,
-+int libxl__device_from_disk(libxl__gc *gc, uint32_t domid,
-                                    libxl_device_disk *disk,
-                                    libxl__device *device)
- {
-diff --git a/tools/libxl/libxl_internal.h b/tools/libxl/libxl_internal.h
-index 03fba22..32eb09c 100644
---- a/tools/libxl/libxl_internal.h
-+++ b/tools/libxl/libxl_internal.h
-@@ -1260,6 +1260,10 @@ _hidden char *libxl__blktap_devpath(libxl__gc *gc,
-  */
- _hidden void libxl__device_destroy_tapdisk(libxl__gc *gc, char *be_path);
-+_hidden int libxl__device_from_disk(libxl__gc *gc, uint32_t domid,
-+                                   libxl_device_disk *disk,
-+                                   libxl__device *device);
-+
- /*
-  * Make a disk available in this (the control) domain. Returns path to
-  * a device.
--- 
-1.7.2.5
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1338287956-24691-5-git-send-email-stefano.stabellini@eu.citrix.com> b/test/corpus/<1338287956-24691-5-git-send-email-stefano.stabellini@eu.citrix.com>
deleted file mode 100644 (file)
index c43efeb..0000000
+++ /dev/null
@@ -1,162 +0,0 @@
-From xen-devel-bounces@lists.xen.org Tue May 29 11:42:48 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Tue, 29 May 2012 11:42:48 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SZJsz-00033Q-Mt
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 29 May 2012 11:42:48 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SZJpp-0005aC-Gp; Tue, 29 May 2012 10:39:29 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1SZJpn-0005Z6-2f
-       for xen-devel@lists.xensource.com; Tue, 29 May 2012 10:39:27 +0000
-Received: from [85.158.139.83:45429] by server-2.bemta-5.messagelabs.com id
-       24/9F-09957-E57A4CF4; Tue, 29 May 2012 10:39:26 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-5.tower-182.messagelabs.com!1338287963!30934701!2
-X-Originating-IP: [66.165.176.63]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyNTU4MTE=\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 17602 invoked from network); 29 May 2012 10:39:25 -0000
-Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
-       by server-5.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
-       29 May 2012 10:39:25 -0000
-X-IronPort-AV: E=Sophos;i="4.75,677,1330923600"; d="scan'208";a="196722666"
-Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
-       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       29 May 2012 06:39:23 -0400
-Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
-       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
-       Tue, 29 May 2012 06:39:23 -0400
-Received: from kaball.uk.xensource.com ([10.80.2.59]
-       helo=localhost.localdomain)     by ukmail1.uk.xensource.com with esmtp
-       (Exim 4.69)     (envelope-from <stefano.stabellini@eu.citrix.com>)      id
-       1SZJpd-0003cq-Iw; Tue, 29 May 2012 11:39:17 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-To: xen-devel@lists.xensource.com
-Date: Tue, 29 May 2012 11:39:10 +0100
-Message-ID: <1338287956-24691-5-git-send-email-stefano.stabellini@eu.citrix.com>
-X-Mailer: git-send-email 1.7.0.4
-In-Reply-To: <alpine.DEB.2.00.1205281439080.26786@kaball-desktop>
-References: <alpine.DEB.2.00.1205281439080.26786@kaball-desktop>
-MIME-Version: 1.0
-Cc: Ian.Jackson@eu.citrix.com, Ian.Campbell@citrix.com,
-       Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: [Xen-devel] [PATCH v8 05/11] libxl: introduce libxl__device_disk_add
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-Introduce libxl__device_disk_add that takes an additional
-xs_transaction_t paramter.
-Implement libxl_device_disk_add using libxl__device_disk_add.
-
-
-Changes in v7:
-
-- implement libxl__device_disk_add in libxl.c.
-
-
-Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
----
- tools/libxl/libxl.c          |   14 +++++++++++---
- tools/libxl/libxl_internal.h |    2 ++
- 2 files changed, 13 insertions(+), 3 deletions(-)
-
-diff --git a/tools/libxl/libxl.c b/tools/libxl/libxl.c
-index eb1ad4f..8d128a6 100644
---- a/tools/libxl/libxl.c
-+++ b/tools/libxl/libxl.c
-@@ -1367,14 +1367,15 @@ int libxl__device_from_disk(libxl__gc *gc, uint32_t domid,
-     return 0;
- }
--int libxl_device_disk_add(libxl_ctx *ctx, uint32_t domid, libxl_device_disk *disk)
-+int libxl__device_disk_add(libxl__gc *gc, uint32_t domid,
-+        xs_transaction_t t, libxl_device_disk *disk)
- {
--    GC_INIT(ctx);
-     flexarray_t *front;
-     flexarray_t *back;
-     char *dev;
-     libxl__device device;
-     int major, minor, rc;
-+    libxl_ctx *ctx = gc->owner;
-     rc = libxl__device_disk_setdefault(gc, disk);
-     if (rc) goto out;
-@@ -1472,7 +1473,7 @@ int libxl_device_disk_add(libxl_ctx *ctx, uint32_t domid, libxl_device_disk *dis
-     flexarray_append(front, "device-type");
-     flexarray_append(front, disk->is_cdrom ? "cdrom" : "disk");
--    libxl__device_generic_add(gc, XBT_NULL, &device,
-+    libxl__device_generic_add(gc, t, &device,
-                              libxl__xs_kvs_of_flexarray(gc, back, back->count),
-                              libxl__xs_kvs_of_flexarray(gc, front, front->count));
-@@ -1482,6 +1483,13 @@ out_free:
-     flexarray_free(back);
-     flexarray_free(front);
- out:
-+    return rc;
-+}
-+
-+int libxl_device_disk_add(libxl_ctx *ctx, uint32_t domid, libxl_device_disk *disk)
-+{
-+    GC_INIT(ctx);
-+    int rc = libxl__device_disk_add(gc, domid, XBT_NULL, disk);
-     GC_FREE;
-     return rc;
- }
-diff --git a/tools/libxl/libxl_internal.h b/tools/libxl/libxl_internal.h
-index 32eb09c..b917553 100644
---- a/tools/libxl/libxl_internal.h
-+++ b/tools/libxl/libxl_internal.h
-@@ -1263,6 +1263,8 @@ _hidden void libxl__device_destroy_tapdisk(libxl__gc *gc, char *be_path);
- _hidden int libxl__device_from_disk(libxl__gc *gc, uint32_t domid,
-                                    libxl_device_disk *disk,
-                                    libxl__device *device);
-+_hidden int libxl__device_disk_add(libxl__gc *gc, uint32_t domid,
-+        xs_transaction_t t, libxl_device_disk *disk);
- /*
-  * Make a disk available in this (the control) domain. Returns path to
--- 
-1.7.2.5
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1338287956-24691-6-git-send-email-stefano.stabellini@eu.citrix.com> b/test/corpus/<1338287956-24691-6-git-send-email-stefano.stabellini@eu.citrix.com>
deleted file mode 100644 (file)
index 2124eb0..0000000
+++ /dev/null
@@ -1,265 +0,0 @@
-From xen-devel-bounces@lists.xen.org Tue May 29 11:43:05 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Tue, 29 May 2012 11:43:05 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SZJtB-00034n-3o
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 29 May 2012 11:43:04 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SZJpp-0005aM-UX; Tue, 29 May 2012 10:39:29 +0000
-Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1SZJpn-0005ZE-9H
-       for xen-devel@lists.xensource.com; Tue, 29 May 2012 10:39:27 +0000
-Received: from [193.109.254.147:53176] by server-2.bemta-14.messagelabs.com id
-       CC/E7-12884-E57A4CF4; Tue, 29 May 2012 10:39:26 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-16.tower-27.messagelabs.com!1338287963!11570865!2
-X-Originating-IP: [66.165.176.89]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNDY2MDQ=\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 11824 invoked from network); 29 May 2012 10:39:25 -0000
-Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
-       by server-16.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
-       29 May 2012 10:39:25 -0000
-X-IronPort-AV: E=Sophos;i="4.75,677,1330923600"; d="scan'208";a="26032804"
-Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
-       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       29 May 2012 06:39:23 -0400
-Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
-       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
-       Tue, 29 May 2012 06:39:23 -0400
-Received: from kaball.uk.xensource.com ([10.80.2.59]
-       helo=localhost.localdomain)     by ukmail1.uk.xensource.com with esmtp
-       (Exim 4.69)     (envelope-from <stefano.stabellini@eu.citrix.com>)      id
-       1SZJpd-0003cq-Kb; Tue, 29 May 2012 11:39:17 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-To: xen-devel@lists.xensource.com
-Date: Tue, 29 May 2012 11:39:11 +0100
-Message-ID: <1338287956-24691-6-git-send-email-stefano.stabellini@eu.citrix.com>
-X-Mailer: git-send-email 1.7.0.4
-In-Reply-To: <alpine.DEB.2.00.1205281439080.26786@kaball-desktop>
-References: <alpine.DEB.2.00.1205281439080.26786@kaball-desktop>
-MIME-Version: 1.0
-Cc: Ian.Jackson@eu.citrix.com, Ian.Campbell@citrix.com,
-       Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: [Xen-devel] [PATCH v8 06/11] xl/libxl: add a blkdev_start parameter
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-Introduce a blkdev_start in xl.conf and a corresponding string in
-libxl_domain_build_info.
-
-Add a blkdev_start parameter to libxl__device_disk_local_attach: it is
-going to be used in a following patch.
-
-blkdev_start specifies the first block device to be used for temporary
-block device allocations by the toolstack.
-
-Changes in v6:
-- document blkdev_start;
-- use libxl__strdup to allocate blkdev_start.
-
-Changes in v5:
-- change the type of the blkdev_start parameter to
-libxl__device_disk_local_attach to const char *.
-
-Changes in v4:
-- pass blkdev_start in libxl_domain_build_info.
-
-Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
-Acked-by: Ian Campbell <ian.campbell@citrix.com>
----
- docs/man/xl.conf.pod.5         |    6 ++++++
- tools/examples/xl.conf         |    3 +++
- tools/libxl/libxl.c            |    3 ++-
- tools/libxl/libxl_bootloader.c |    3 ++-
- tools/libxl/libxl_create.c     |    3 +++
- tools/libxl/libxl_internal.h   |    3 ++-
- tools/libxl/libxl_types.idl    |    1 +
- tools/libxl/xl.c               |    3 +++
- tools/libxl/xl.h               |    1 +
- tools/libxl/xl_cmdimpl.c       |    2 ++
- 10 files changed, 25 insertions(+), 3 deletions(-)
-
-diff --git a/docs/man/xl.conf.pod.5 b/docs/man/xl.conf.pod.5
-index 8bd45ea..149430c 100644
---- a/docs/man/xl.conf.pod.5
-+++ b/docs/man/xl.conf.pod.5
-@@ -84,6 +84,12 @@ previous C<xm> toolstack this can be configured to use the old C<SXP>
- Default: C<json>
-+=item B<blkdev_start="NAME">
-+
-+Configures the name of the first block device to be used for temporary
-+block device allocations by the toolstack.
-+The default choice is "xvda".
-+
- =back
- =head1 SEE ALSO
-diff --git a/tools/examples/xl.conf b/tools/examples/xl.conf
-index 56d3b3b..ebf057c 100644
---- a/tools/examples/xl.conf
-+++ b/tools/examples/xl.conf
-@@ -12,3 +12,6 @@
- # default output format used by "xl list -l"
- #output_format="json"
-+
-+# first block device to be used for temporary VM disk mounts
-+#blkdev_start="xvda"
-diff --git a/tools/libxl/libxl.c b/tools/libxl/libxl.c
-index 8d128a6..1a01b24 100644
---- a/tools/libxl/libxl.c
-+++ b/tools/libxl/libxl.c
-@@ -1745,7 +1745,8 @@ out:
- char * libxl__device_disk_local_attach(libxl__gc *gc,
-         const libxl_device_disk *in_disk,
--        libxl_device_disk *disk)
-+        libxl_device_disk *disk,
-+        const char *blkdev_start)
- {
-     libxl_ctx *ctx = gc->owner;
-     char *dev = NULL;
-diff --git a/tools/libxl/libxl_bootloader.c b/tools/libxl/libxl_bootloader.c
-index 82371f1..4e1100d 100644
---- a/tools/libxl/libxl_bootloader.c
-+++ b/tools/libxl/libxl_bootloader.c
-@@ -330,7 +330,8 @@ void libxl__bootloader_run(libxl__egc *egc, libxl__bootloader_state *bl)
-         goto out;
-     }
--    bl->diskpath = libxl__device_disk_local_attach(gc, bl->disk, &bl->localdisk);
-+    bl->diskpath = libxl__device_disk_local_attach(gc, bl->disk, &bl->localdisk,
-+            info->blkdev_start);
-     if (!bl->diskpath) {
-         rc = ERROR_FAIL;
-         goto out;
-diff --git a/tools/libxl/libxl_create.c b/tools/libxl/libxl_create.c
-index 14721eb..9fb4b81 100644
---- a/tools/libxl/libxl_create.c
-+++ b/tools/libxl/libxl_create.c
-@@ -107,6 +107,9 @@ int libxl__domain_build_info_setdefault(libxl__gc *gc,
-         }
-     }
-+    if (b_info->blkdev_start == NULL)
-+        b_info->blkdev_start = libxl__strdup(0, "xvda");
-+
-     if (b_info->type == LIBXL_DOMAIN_TYPE_HVM) {
-         if (!b_info->u.hvm.bios)
-             switch (b_info->device_model_version) {
-diff --git a/tools/libxl/libxl_internal.h b/tools/libxl/libxl_internal.h
-index b917553..4be99ca 100644
---- a/tools/libxl/libxl_internal.h
-+++ b/tools/libxl/libxl_internal.h
-@@ -1272,7 +1272,8 @@ _hidden int libxl__device_disk_add(libxl__gc *gc, uint32_t domid,
-  */
- _hidden char * libxl__device_disk_local_attach(libxl__gc *gc,
-         const libxl_device_disk *in_disk,
--        libxl_device_disk *new_disk);
-+        libxl_device_disk *new_disk,
-+        const char *blkdev_start);
- _hidden int libxl__device_disk_local_detach(libxl__gc *gc,
-         libxl_device_disk *disk);
-diff --git a/tools/libxl/libxl_types.idl b/tools/libxl/libxl_types.idl
-index a21bd85..2dc2b68 100644
---- a/tools/libxl/libxl_types.idl
-+++ b/tools/libxl/libxl_types.idl
-@@ -253,6 +253,7 @@ libxl_domain_build_info = Struct("domain_build_info",[
-     ("localtime",       libxl_defbool),
-     ("disable_migrate", libxl_defbool),
-     ("cpuid",           libxl_cpuid_policy_list),
-+    ("blkdev_start",    string),
-     
-     ("device_model_version", libxl_device_model_version),
-     ("device_model_stubdomain", libxl_defbool),
-diff --git a/tools/libxl/xl.c b/tools/libxl/xl.c
-index 750a61c..827f3f8 100644
---- a/tools/libxl/xl.c
-+++ b/tools/libxl/xl.c
-@@ -38,6 +38,7 @@ xentoollog_logger_stdiostream *logger;
- int dryrun_only;
- int force_execution;
- int autoballoon = 1;
-+char *blkdev_start;
- char *lockfile;
- char *default_vifscript = NULL;
- char *default_bridge = NULL;
-@@ -94,6 +95,8 @@ static void parse_global_config(const char *configfile,
-             fprintf(stderr, "invalid default output format \"%s\"\n", buf);
-         }
-     }
-+    if (!xlu_cfg_get_string (config, "blkdev_start", &buf, 0))
-+        blkdev_start = strdup(buf);
-     xlu_cfg_destroy(config);
- }
-diff --git a/tools/libxl/xl.h b/tools/libxl/xl.h
-index b7eacaa..74a8a1a 100644
---- a/tools/libxl/xl.h
-+++ b/tools/libxl/xl.h
-@@ -117,6 +117,7 @@ extern int dryrun_only;
- extern char *lockfile;
- extern char *default_vifscript;
- extern char *default_bridge;
-+extern char *blkdev_start;
- enum output_format {
-     OUTPUT_FORMAT_JSON,
-diff --git a/tools/libxl/xl_cmdimpl.c b/tools/libxl/xl_cmdimpl.c
-index 3c55a69..ce9237b 100644
---- a/tools/libxl/xl_cmdimpl.c
-+++ b/tools/libxl/xl_cmdimpl.c
-@@ -626,6 +626,8 @@ static void parse_config_data(const char *config_source,
-     }
-     libxl_domain_build_info_init_type(b_info, c_info->type);
-+    if (blkdev_start)
-+        b_info->blkdev_start = strdup(blkdev_start);
-     /* the following is the actual config parsing with overriding values in the structures */
-     if (!xlu_cfg_get_long (config, "cpu_weight", &l, 0))
--- 
-1.7.2.5
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1338287956-24691-7-git-send-email-stefano.stabellini@eu.citrix.com> b/test/corpus/<1338287956-24691-7-git-send-email-stefano.stabellini@eu.citrix.com>
deleted file mode 100644 (file)
index 21b5c80..0000000
+++ /dev/null
@@ -1,256 +0,0 @@
-From xen-devel-bounces@lists.xen.org Tue May 29 11:43:10 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Tue, 29 May 2012 11:43:10 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SZJtH-00035S-P3
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 29 May 2012 11:43:10 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SZJpr-0005bP-Ug; Tue, 29 May 2012 10:39:31 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1SZJpo-0005ZV-9S
-       for xen-devel@lists.xensource.com; Tue, 29 May 2012 10:39:28 +0000
-Received: from [85.158.139.83:45535] by server-11.bemta-5.messagelabs.com id
-       8A/7A-12711-F57A4CF4; Tue, 29 May 2012 10:39:27 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-14.tower-182.messagelabs.com!1338287965!26634251!1
-X-Originating-IP: [66.165.176.63]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyNTU4MTE=\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 27976 invoked from network); 29 May 2012 10:39:26 -0000
-Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
-       by server-14.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
-       29 May 2012 10:39:26 -0000
-X-IronPort-AV: E=Sophos;i="4.75,677,1330923600"; d="scan'208";a="196722668"
-Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
-       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       29 May 2012 06:39:23 -0400
-Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
-       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
-       Tue, 29 May 2012 06:39:23 -0400
-Received: from kaball.uk.xensource.com ([10.80.2.59]
-       helo=localhost.localdomain)     by ukmail1.uk.xensource.com with esmtp
-       (Exim 4.69)     (envelope-from <stefano.stabellini@eu.citrix.com>)      id
-       1SZJpd-0003cq-MO; Tue, 29 May 2012 11:39:17 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-To: xen-devel@lists.xensource.com
-Date: Tue, 29 May 2012 11:39:12 +0100
-Message-ID: <1338287956-24691-7-git-send-email-stefano.stabellini@eu.citrix.com>
-X-Mailer: git-send-email 1.7.0.4
-In-Reply-To: <alpine.DEB.2.00.1205281439080.26786@kaball-desktop>
-References: <alpine.DEB.2.00.1205281439080.26786@kaball-desktop>
-MIME-Version: 1.0
-Cc: Ian.Jackson@eu.citrix.com, Ian.Campbell@citrix.com,
-       Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: [Xen-devel] [PATCH v8 07/11] libxl: introduce libxl__alloc_vdev
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-Introduce libxl__alloc_vdev: find a spare virtual block device in the
-domain passed as argument.
-
-
-Changes in v7:
-- remove the upper bound and document why.
-
-Changes in v6:
-- more comments in libxl__devid_to_localdev;
-- inline GCSPRINTF.
-
-Changes in v5:
-- remove domid paramter to libxl__alloc_vdev (assume
-  LIBXL_TOOLSTACK_DOMID);
-- remove scaling limit from libxl__alloc_vdev.
-
-Changes in v4:
-- rename libxl__devid_to_vdev to libxl__devid_to_localdev;
-- introduce upper bound for encode_disk_name;
-- better error handling;
-
-Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
----
- tools/libxl/libxl.c          |   32 +++++++++++++++++++++++++
- tools/libxl/libxl_internal.h |    4 +++
- tools/libxl/libxl_linux.c    |   52 ++++++++++++++++++++++++++++++++++++++++++
- tools/libxl/libxl_netbsd.c   |    6 +++++
- 4 files changed, 94 insertions(+), 0 deletions(-)
-
-diff --git a/tools/libxl/libxl.c b/tools/libxl/libxl.c
-index 1a01b24..3cf0d53 100644
---- a/tools/libxl/libxl.c
-+++ b/tools/libxl/libxl.c
-@@ -1743,6 +1743,38 @@ out:
-     return ret;
- }
-+/* libxl__alloc_vdev only works on the local domain, that is the domain
-+ * where the toolstack is running */
-+static char * libxl__alloc_vdev(libxl__gc *gc, const char *blkdev_start,
-+        xs_transaction_t t)
-+{
-+    int devid = 0, disk = 0, part = 0;
-+    char *dompath = libxl__xs_get_dompath(gc, LIBXL_TOOLSTACK_DOMID);
-+
-+    libxl__device_disk_dev_number(blkdev_start, &disk, &part);
-+    if (part != 0) {
-+        LOG(ERROR, "blkdev_start is invalid");
-+        return NULL;
-+    }
-+
-+    do {
-+        devid = libxl__device_disk_dev_number(GCSPRINTF("d%dp0", disk),
-+                NULL, NULL);
-+        if (devid < 0)
-+            return NULL;
-+        if (libxl__xs_read(gc, t,
-+                    libxl__sprintf(gc, "%s/device/vbd/%d/backend",
-+                        dompath, devid)) == NULL) {
-+            if (errno == ENOENT)
-+                return libxl__devid_to_localdev(gc, devid);
-+            else
-+                return NULL;
-+        }
-+        disk++;
-+    } while (1);
-+    return NULL;
-+}
-+
- char * libxl__device_disk_local_attach(libxl__gc *gc,
-         const libxl_device_disk *in_disk,
-         libxl_device_disk *disk,
-diff --git a/tools/libxl/libxl_internal.h b/tools/libxl/libxl_internal.h
-index 4be99ca..337ce28 100644
---- a/tools/libxl/libxl_internal.h
-+++ b/tools/libxl/libxl_internal.h
-@@ -78,6 +78,8 @@
- #define LIBXL_PV_EXTRA_MEMORY 1024
- #define LIBXL_HVM_EXTRA_MEMORY 2048
- #define LIBXL_MIN_DOM0_MEM (128*1024)
-+/* use 0 as the domid of the toolstack domain for now */
-+#define LIBXL_TOOLSTACK_DOMID 0
- #define QEMU_SIGNATURE "DeviceModelRecord0002"
- #define STUBDOM_CONSOLE_LOGGING 0
- #define STUBDOM_CONSOLE_SAVE 1
-@@ -915,6 +917,8 @@ static inline void libxl__domaindeathcheck_stop(libxl__gc *gc,
- _hidden int libxl__try_phy_backend(mode_t st_mode);
-+_hidden char *libxl__devid_to_localdev(libxl__gc *gc, int devid);
-+
- /* from libxl_pci */
- _hidden int libxl__device_pci_add(libxl__gc *gc, uint32_t domid, libxl_device_pci *pcidev, int starting);
-diff --git a/tools/libxl/libxl_linux.c b/tools/libxl/libxl_linux.c
-index 925248b..0169b2f 100644
---- a/tools/libxl/libxl_linux.c
-+++ b/tools/libxl/libxl_linux.c
-@@ -25,3 +25,55 @@ int libxl__try_phy_backend(mode_t st_mode)
-     return 1;
- }
-+
-+#define EXT_SHIFT 28
-+#define EXTENDED (1<<EXT_SHIFT)
-+#define VDEV_IS_EXTENDED(dev) ((dev)&(EXTENDED))
-+#define BLKIF_MINOR_EXT(dev) ((dev)&(~EXTENDED))
-+/* the size of the buffer to store the device name is 32 bytes to match the
-+ * equivalent buffer in the Linux kernel code */
-+#define BUFFER_SIZE 32
-+
-+/* Same as in Linux.
-+ * encode_disk_name might end up using up to 29 bytes (BUFFER_SIZE - 3)
-+ * including the trailing \0.
-+ *
-+ * The code is safe because 26 raised to the power of 28 (that is the
-+ * maximum offset that can be stored in the allocated buffer as a
-+ * string) is far greater than UINT_MAX on 64 bits so offset cannot be
-+ * big enough to exhaust the available bytes in ret. */
-+static char *encode_disk_name(char *ptr, unsigned int n)
-+{
-+    if (n >= 26)
-+        ptr = encode_disk_name(ptr, n / 26 - 1);
-+    *ptr = 'a' + n % 26;
-+    return ptr + 1;
-+}
-+
-+char *libxl__devid_to_localdev(libxl__gc *gc, int devid)
-+{
-+    unsigned int minor;
-+    int offset;
-+    int nr_parts;
-+    char *ptr = NULL;
-+    char *ret = libxl__zalloc(gc, BUFFER_SIZE);
-+
-+    if (!VDEV_IS_EXTENDED(devid)) {
-+        minor = devid & 0xff;
-+        nr_parts = 16;
-+    } else {
-+        minor = BLKIF_MINOR_EXT(devid);
-+        nr_parts = 256;
-+    }
-+    offset = minor / nr_parts;
-+
-+    strcpy(ret, "xvd");
-+    ptr = encode_disk_name(ret + 3, offset);
-+    if (minor % nr_parts == 0)
-+        *ptr = 0;
-+    else
-+        /* overflow cannot happen, thanks to the upper bound */
-+        snprintf(ptr, ret + 32 - ptr,
-+                "%d", minor & (nr_parts - 1));
-+    return ret;
-+}
-diff --git a/tools/libxl/libxl_netbsd.c b/tools/libxl/libxl_netbsd.c
-index 9e0ed6d..dbf5f71 100644
---- a/tools/libxl/libxl_netbsd.c
-+++ b/tools/libxl/libxl_netbsd.c
-@@ -24,3 +24,9 @@ int libxl__try_phy_backend(mode_t st_mode)
-     return 0;
- }
-+
-+char *libxl__devid_to_localdev(libxl__gc *gc, int devid)
-+{
-+    /* TODO */
-+    return NULL;
-+}
--- 
-1.7.2.5
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1338287956-24691-8-git-send-email-stefano.stabellini@eu.citrix.com> b/test/corpus/<1338287956-24691-8-git-send-email-stefano.stabellini@eu.citrix.com>
deleted file mode 100644 (file)
index 16e64c7..0000000
+++ /dev/null
@@ -1,238 +0,0 @@
-From xen-devel-bounces@lists.xen.org Tue May 29 11:43:05 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Tue, 29 May 2012 11:43:05 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SZJtB-000355-VN
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 29 May 2012 11:43:05 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SZJpu-0005dP-IP; Tue, 29 May 2012 10:39:34 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1SZJps-0005bG-Af
-       for xen-devel@lists.xensource.com; Tue, 29 May 2012 10:39:32 +0000
-Received: from [85.158.138.51:8949] by server-1.bemta-3.messagelabs.com id
-       56/58-18759-467A4CF4; Tue, 29 May 2012 10:39:32 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-10.tower-174.messagelabs.com!1338287969!25615647!2
-X-Originating-IP: [66.165.176.89]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNDY2MDQ=\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 3933 invoked from network); 29 May 2012 10:39:31 -0000
-Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
-       by server-10.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
-       29 May 2012 10:39:31 -0000
-X-IronPort-AV: E=Sophos;i="4.75,677,1330923600"; d="scan'208";a="26032815"
-Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
-       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       29 May 2012 06:39:28 -0400
-Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
-       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
-       Tue, 29 May 2012 06:39:28 -0400
-Received: from kaball.uk.xensource.com ([10.80.2.59]
-       helo=localhost.localdomain)     by ukmail1.uk.xensource.com with esmtp
-       (Exim 4.69)     (envelope-from <stefano.stabellini@eu.citrix.com>)      id
-       1SZJpd-0003cq-O7; Tue, 29 May 2012 11:39:17 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-To: xen-devel@lists.xensource.com
-Date: Tue, 29 May 2012 11:39:13 +0100
-Message-ID: <1338287956-24691-8-git-send-email-stefano.stabellini@eu.citrix.com>
-X-Mailer: git-send-email 1.7.0.4
-In-Reply-To: <alpine.DEB.2.00.1205281439080.26786@kaball-desktop>
-References: <alpine.DEB.2.00.1205281439080.26786@kaball-desktop>
-MIME-Version: 1.0
-Cc: Ian.Jackson@eu.citrix.com, Ian.Campbell@citrix.com,
-       Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: [Xen-devel] [PATCH v8 08/11] xl/libxl: implement QDISK
-       libxl_device_disk_local_attach
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-- Spawn a QEMU instance at boot time to handle disk local attach
-requests.
-
-- Implement libxl_device_disk_local_attach for QDISKs in terms of a
-regular disk attach with the frontend and backend running in the same
-domain.
-
-Changes in v6:
-- introduce xs_ret for xs_* error codes.
-
-Changes in v5:
-- replace LIBXL__LOG with LOG.
-
-Changes on v4:
-- improve error handling and exit paths in libxl__device_disk_local_attach.
-
-Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-Acked-by:Ian Campbell <ian.campbell@citrix.com>
-Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
----
- tools/hotplug/Linux/init.d/sysconfig.xencommons |    3 +
- tools/hotplug/Linux/init.d/xencommons           |    3 +
- tools/libxl/libxl.c                             |   63 ++++++++++++++++++----
- 3 files changed, 57 insertions(+), 12 deletions(-)
-
-diff --git a/tools/hotplug/Linux/init.d/sysconfig.xencommons b/tools/hotplug/Linux/init.d/sysconfig.xencommons
-index 6543204..38ea85a 100644
---- a/tools/hotplug/Linux/init.d/sysconfig.xencommons
-+++ b/tools/hotplug/Linux/init.d/sysconfig.xencommons
-@@ -12,3 +12,6 @@
- # Running xenbackendd in debug mode
- #XENBACKENDD_DEBUG=[yes|on|1]
-+
-+# qemu path
-+#QEMU_XEN=/usr/lib/xen/bin/qemu-system-i386
-diff --git a/tools/hotplug/Linux/init.d/xencommons b/tools/hotplug/Linux/init.d/xencommons
-index 2f81ea2..9dda6e2 100644
---- a/tools/hotplug/Linux/init.d/xencommons
-+++ b/tools/hotplug/Linux/init.d/xencommons
-@@ -104,6 +104,9 @@ do_start () {
-       xenconsoled --pid-file=$XENCONSOLED_PIDFILE $XENCONSOLED_ARGS
-       test -z "$XENBACKENDD_DEBUG" || XENBACKENDD_ARGS="-d"
-       test "`uname`" != "NetBSD" || xenbackendd $XENBACKENDD_ARGS
-+      echo Starting QEMU as disk backend for dom0
-+      test -z "$QEMU_XEN" && QEMU_XEN=/usr/lib/xen/bin/qemu-system-i386
-+      $QEMU_XEN -xen-domid 0 -xen-attach -name dom0 -nographic -M xenpv -daemonize -monitor /dev/null
- }
- do_stop () {
-         echo Stopping xenconsoled
-diff --git a/tools/libxl/libxl.c b/tools/libxl/libxl.c
-index 3cf0d53..223ae40 100644
---- a/tools/libxl/libxl.c
-+++ b/tools/libxl/libxl.c
-@@ -1783,7 +1783,8 @@ char * libxl__device_disk_local_attach(libxl__gc *gc,
-     libxl_ctx *ctx = gc->owner;
-     char *dev = NULL;
-     char *ret = NULL;
--    int rc;
-+    int rc, xs_ret;
-+    xs_transaction_t t = XBT_NULL;
-     if (in_disk->pdev_path == NULL)
-         return NULL;
-@@ -1827,12 +1828,34 @@ char * libxl__device_disk_local_attach(libxl__gc *gc,
-             break;
-         case LIBXL_DISK_BACKEND_QDISK:
-             if (disk->format != LIBXL_DISK_FORMAT_RAW) {
--                LIBXL__LOG(ctx, LIBXL__LOG_ERROR, "cannot locally"
--                           " attach a qdisk image if the format is not raw");
--                break;
-+                do {
-+                    t = xs_transaction_start(ctx->xsh);
-+                    if (t == XBT_NULL) {
-+                        LOG(ERROR, "failed to start a xenstore transaction");
-+                        goto out;
-+                    }
-+                    disk->vdev = libxl__alloc_vdev(gc, blkdev_start, t);
-+                    if (disk->vdev == NULL) {
-+                        LOG(ERROR, "libxl__alloc_vdev failed");
-+                        goto out;
-+                    }
-+                    if (libxl__device_disk_add(gc, LIBXL_TOOLSTACK_DOMID,
-+                                t, disk)) {
-+                        LOG(ERROR, "libxl_device_disk_add failed");
-+                        goto out;
-+                    }
-+                    xs_ret = xs_transaction_end(ctx->xsh, t, 0);
-+                } while (xs_ret == 0 && errno == EAGAIN);
-+                t = XBT_NULL;
-+                if (xs_ret == 0) {
-+                    LOGE(ERROR, "xenstore transaction failed");
-+                    goto out;
-+                }
-+                dev = GCSPRINTF("/dev/%s", disk->vdev);
-+            } else {
-+                dev = disk->pdev_path;
-             }
--            LOG(DEBUG, "locally attaching qdisk %s", in_disk->pdev_path);
--            dev = disk->pdev_path;
-+            LOG(DEBUG, "locally attaching qdisk %s", dev);
-             break;
-         default:
-             LIBXL__LOG(ctx, LIBXL__LOG_ERROR, "unrecognized disk backend "
-@@ -1841,6 +1864,8 @@ char * libxl__device_disk_local_attach(libxl__gc *gc,
-     }
-  out:
-+    if (t != XBT_NULL)
-+        xs_transaction_end(ctx->xsh, t, 1);
-     if (dev != NULL)
-         ret = strdup(dev);
-     return ret;
-@@ -1848,16 +1873,30 @@ char * libxl__device_disk_local_attach(libxl__gc *gc,
- int libxl__device_disk_local_detach(libxl__gc *gc, libxl_device_disk *disk)
- {
--    /* Nothing to do for PHYSTYPE_PHY. */
-+    int rc = 0;
--    /*
--     * For other device types assume that the blktap2 process is
--     * needed by the soon to be started domain and do nothing.
--     */
-+    switch (disk->backend) {
-+        case LIBXL_DISK_BACKEND_QDISK:
-+            if (disk->vdev != NULL) {
-+                libxl_device_disk_remove(gc->owner, LIBXL_TOOLSTACK_DOMID,
-+                        disk, 0);
-+                rc = libxl_device_disk_destroy(gc->owner,
-+                        LIBXL_TOOLSTACK_DOMID, disk);
-+            }
-+            break;
-+        default:
-+            /*
-+             * Nothing to do for PHYSTYPE_PHY.
-+             * For other device types assume that the blktap2 process is
-+             * needed by the soon to be started domain and do nothing.
-+             */
-+            break;
-+    }
-     free(disk->pdev_path);
-     free(disk->script);
--    return 0;
-+
-+    return rc;
- }
- /******************************************************************************/
--- 
-1.7.2.5
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1338287956-24691-9-git-send-email-stefano.stabellini@eu.citrix.com> b/test/corpus/<1338287956-24691-9-git-send-email-stefano.stabellini@eu.citrix.com>
deleted file mode 100644 (file)
index 4c62082..0000000
+++ /dev/null
@@ -1,150 +0,0 @@
-From xen-devel-bounces@lists.xen.org Tue May 29 11:43:03 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Tue, 29 May 2012 11:43:03 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SZJtA-00034V-GG
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 29 May 2012 11:43:03 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SZJps-0005c3-PO; Tue, 29 May 2012 10:39:32 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1SZJpr-0005ay-6S
-       for xen-devel@lists.xensource.com; Tue, 29 May 2012 10:39:31 +0000
-Received: from [85.158.143.35:57232] by server-1.bemta-4.messagelabs.com id
-       94/05-00342-267A4CF4; Tue, 29 May 2012 10:39:30 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-6.tower-21.messagelabs.com!1338287968!17731697!1
-X-Originating-IP: [66.165.176.63]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyNTU4MTE=\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 10953 invoked from network); 29 May 2012 10:39:29 -0000
-Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
-       by server-6.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
-       29 May 2012 10:39:29 -0000
-X-IronPort-AV: E=Sophos;i="4.75,677,1330923600"; d="scan'208";a="196722675"
-Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
-       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       29 May 2012 06:39:28 -0400
-Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
-       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
-       Tue, 29 May 2012 06:39:28 -0400
-Received: from kaball.uk.xensource.com ([10.80.2.59]
-       helo=localhost.localdomain)     by ukmail1.uk.xensource.com with esmtp
-       (Exim 4.69)     (envelope-from <stefano.stabellini@eu.citrix.com>)      id
-       1SZJpd-0003cq-Pm; Tue, 29 May 2012 11:39:17 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-To: xen-devel@lists.xensource.com
-Date: Tue, 29 May 2012 11:39:14 +0100
-Message-ID: <1338287956-24691-9-git-send-email-stefano.stabellini@eu.citrix.com>
-X-Mailer: git-send-email 1.7.0.4
-In-Reply-To: <alpine.DEB.2.00.1205281439080.26786@kaball-desktop>
-References: <alpine.DEB.2.00.1205281439080.26786@kaball-desktop>
-MIME-Version: 1.0
-Cc: Ian.Jackson@eu.citrix.com, Ian.Campbell@citrix.com,
-       Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: [Xen-devel] [PATCH v8 09/11] libxl__device_disk_local_attach: wait
-       for state "connected"
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-In order to make sure that the block device is available and ready to be
-used, wait for state "connected" in the backend before returning.
-
-Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-
-Changes in v5:
-- unify error paths.
-
-Changes in v4:
-- improve exit paths.
-
-Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
----
- tools/libxl/libxl.c |   22 ++++++++++++++++++----
- 1 files changed, 18 insertions(+), 4 deletions(-)
-
-diff --git a/tools/libxl/libxl.c b/tools/libxl/libxl.c
-index 223ae40..626abde 100644
---- a/tools/libxl/libxl.c
-+++ b/tools/libxl/libxl.c
-@@ -1781,9 +1781,10 @@ char * libxl__device_disk_local_attach(libxl__gc *gc,
-         const char *blkdev_start)
- {
-     libxl_ctx *ctx = gc->owner;
--    char *dev = NULL;
-+    char *dev = NULL, *be_path = NULL;
-     char *ret = NULL;
-     int rc, xs_ret;
-+    libxl__device device;
-     xs_transaction_t t = XBT_NULL;
-     if (in_disk->pdev_path == NULL)
-@@ -1863,12 +1864,25 @@ char * libxl__device_disk_local_attach(libxl__gc *gc,
-             break;
-     }
-- out:
--    if (t != XBT_NULL)
--        xs_transaction_end(ctx->xsh, t, 1);
-+    if (disk->vdev != NULL) {
-+        rc = libxl__device_from_disk(gc, LIBXL_TOOLSTACK_DOMID, disk, &device);
-+        if (rc < 0)
-+            goto out;
-+        be_path = libxl__device_backend_path(gc, &device);
-+        rc = libxl__wait_for_backend(gc, be_path, "4");
-+        if (rc < 0)
-+            goto out;
-+    }
-     if (dev != NULL)
-         ret = strdup(dev);
-     return ret;
-+
-+ out:
-+    if (t != XBT_NULL)
-+        xs_transaction_end(ctx->xsh, t, 1);
-+    else
-+        libxl__device_disk_local_detach(gc, disk);
-+    return NULL;
- }
- int libxl__device_disk_local_detach(libxl__gc *gc, libxl_device_disk *disk)
--- 
-1.7.2.5
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1338300632.14158.115.camel@zakaz.uk.xensource.com> b/test/corpus/<1338300632.14158.115.camel@zakaz.uk.xensource.com>
deleted file mode 100644 (file)
index 04ce423..0000000
+++ /dev/null
@@ -1,225 +0,0 @@
-From xen-devel-bounces@lists.xen.org Tue May 29 15:16:00 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Tue, 29 May 2012 15:16:00 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SZNDJ-0003iT-Pv
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 29 May 2012 15:16:00 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SZN8h-00046U-7Q; Tue, 29 May 2012 14:11:11 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1SZN8g-00046P-5Z
-       for xen-devel@lists.xensource.com; Tue, 29 May 2012 14:11:10 +0000
-Received: from [85.158.138.51:7863] by server-3.bemta-3.messagelabs.com id
-       AE/25-08380-DF8D4CF4; Tue, 29 May 2012 14:11:09 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-9.tower-174.messagelabs.com!1338300667!29759793!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiA5OTk2Nw==\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 16723 invoked from network); 29 May 2012 14:11:08 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-9.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
-       29 May 2012 14:11:08 -0000
-X-IronPort-AV: E=Sophos;i="4.75,677,1330905600"; d="scan'208";a="12716996"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       29 May 2012 14:10:33 +0000
-Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0;
-       Tue, 29 May 2012 15:10:33 +0100
-Message-ID: <1338300632.14158.115.camel@zakaz.uk.xensource.com>
-From: Ian Campbell <Ian.Campbell@citrix.com>
-To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-Date: Tue, 29 May 2012 15:10:32 +0100
-In-Reply-To: <1338287956-24691-2-git-send-email-stefano.stabellini@eu.citrix.com>
-References: <alpine.DEB.2.00.1205281439080.26786@kaball-desktop>
-       <1338287956-24691-2-git-send-email-stefano.stabellini@eu.citrix.com>
-Organization: Citrix Systems, Inc.
-X-Mailer: Evolution 3.2.2-1 
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>, Ian
-       Jackson <Ian.Jackson@eu.citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH v8 02/11] libxl:
- libxl__device_disk_local_attach return a new libxl_device_disk
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Tue, 2012-05-29 at 11:39 +0100, Stefano Stabellini wrote:
-> Introduce a new libxl_device_disk* parameter to
-> libxl__device_disk_local_attach, the parameter is allocated by the
-> caller. libxl__device_disk_local_attach is going to fill the new disk
-> with informations about the new locally attached disk.  The new
-> libxl_device_disk should be passed to libxl_device_disk_local_detach
-> afterwards.
-> 
-> Changes in v8:
-> - free pdev_path and script in local_detach;
-> - use libxl__strdup instead of strdup.
-> 
-> Changes in v7:
-> - rename tmpdisk to localdisk;
-> - add a comment in libxl__bootloader_state about localdisk.
-> 
-> Changes in v6:
-> - return error in case pdev_path is NULL;
-> - libxl__device_disk_local_attach update the new disk, the caller
-> allocates it;
-> - remove \n from logs.
-> 
-> Changes in v5:
-> - rename disk to in_disk;
-> - rename tmpdisk to disk;
-> - copy disk to new_disk only on success;
-> - remove check on libxl__zalloc success.
-> 
-> Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-> ---
->  tools/libxl/libxl.c            |   18 +++++++++++++++---
->  tools/libxl/libxl_bootloader.c |    4 ++--
->  tools/libxl/libxl_internal.h   |   10 +++++++++-
->  3 files changed, 26 insertions(+), 6 deletions(-)
-> 
-> diff --git a/tools/libxl/libxl.c b/tools/libxl/libxl.c
-> index cd870c4..762e72a 100644
-> --- a/tools/libxl/libxl.c
-> +++ b/tools/libxl/libxl.c
-> @@ -1735,13 +1735,24 @@ out:
->      return ret;
->  }
->  
-> -char * libxl__device_disk_local_attach(libxl__gc *gc, libxl_device_disk *disk)
-> +char * libxl__device_disk_local_attach(libxl__gc *gc,
-> +        const libxl_device_disk *in_disk,
-> +        libxl_device_disk *disk)
-
-Why the weird indent?
-
->  {
->      libxl_ctx *ctx = gc->owner;
->      char *dev = NULL;
->      char *ret = NULL;
->      int rc;
->  
-> +    if (in_disk->pdev_path == NULL)
-> +        return NULL;
-> +
-> +    memcpy(disk, in_disk, sizeof(libxl_device_disk));
-> +    disk->pdev_path = libxl__strdup(NULL, in_disk->pdev_path);
-> +    if (in_disk->script != NULL)
-> +        disk->script = libxl__strdup(NULL, in_disk->script);
-> +    disk->vdev = NULL;
-> +
->      rc = libxl__device_disk_setdefault(gc, disk);
->      if (rc) goto out;
->  
-> @@ -1779,8 +1790,7 @@ char * libxl__device_disk_local_attach(libxl__gc *gc, libxl_device_disk *disk)
->                             " attach a qdisk image if the format is not raw");
->                  break;
->              }
-> -            LIBXL__LOG(ctx, LIBXL__LOG_DEBUG, "locally attaching qdisk %s\n",
-> -                       disk->pdev_path);
-> +            LOG(DEBUG, "locally attaching qdisk %s", in_disk->pdev_path);
->              dev = disk->pdev_path;
->              break;
->          default:
-> @@ -1804,6 +1814,8 @@ int libxl__device_disk_local_detach(libxl__gc *gc, libxl_device_disk *disk)
->       * needed by the soon to be started domain and do nothing.
->       */
->  
-> +    free(disk->pdev_path);
-> +    free(disk->script);
-
-This is open coding libxl_device_disk_dispose(disk) but missed the vdev
-member, is that deliberate?
-
->      return 0;
->  }
->  
-> diff --git a/tools/libxl/libxl_bootloader.c b/tools/libxl/libxl_bootloader.c
-> index e8950b1..82371f1 100644
-> --- a/tools/libxl/libxl_bootloader.c
-> +++ b/tools/libxl/libxl_bootloader.c
-> @@ -228,7 +228,7 @@ static void bootloader_cleanup(libxl__egc *egc, libxl__bootloader_state *bl)
->      if (bl->outputdir) libxl__remove_directory(gc, bl->outputdir);
->  
->      if (bl->diskpath) {
-> -        libxl__device_disk_local_detach(gc, bl->disk);
-> +        libxl__device_disk_local_detach(gc, &bl->localdisk);
->          free(bl->diskpath);
->          bl->diskpath = 0;
->      }
-> @@ -330,7 +330,7 @@ void libxl__bootloader_run(libxl__egc *egc, libxl__bootloader_state *bl)
->          goto out;
->      }
->  
-> -    bl->diskpath = libxl__device_disk_local_attach(gc, bl->disk);
-> +    bl->diskpath = libxl__device_disk_local_attach(gc, bl->disk, &bl->localdisk);
->      if (!bl->diskpath) {
->          rc = ERROR_FAIL;
->          goto out;
-> diff --git a/tools/libxl/libxl_internal.h b/tools/libxl/libxl_internal.h
-> index d34e561..21b8b54 100644
-> --- a/tools/libxl/libxl_internal.h
-> +++ b/tools/libxl/libxl_internal.h
-> @@ -1265,7 +1265,8 @@ _hidden void libxl__device_destroy_tapdisk(libxl__gc *gc, char *be_path);
->   * a device.
->   */
->  _hidden char * libxl__device_disk_local_attach(libxl__gc *gc,
-> -        libxl_device_disk *disk);
-> +        const libxl_device_disk *in_disk,
-> +        libxl_device_disk *new_disk);
->  _hidden int libxl__device_disk_local_detach(libxl__gc *gc,
->          libxl_device_disk *disk);
->  
-> @@ -1803,6 +1804,13 @@ struct libxl__bootloader_state {
->      libxl__bootloader_console_callback *console_available;
->      libxl_domain_build_info *info; /* u.pv.{kernel,ramdisk,cmdline} updated */
->      libxl_device_disk *disk;
-> +    /* Should be zeroed by caller on entry.  Will be filled in by
-> +     * bootloader machinery; represents the local attachment of the
-> +     * disk for the benefit of the bootloader.  Must be detached by
-> +     * the caller using libxl__device_disk_local_detach, but only
-> +     * after the domain's kernel and initramfs have been loaded into
-> +     * memory and the file references disposed of. */
-> +    libxl_device_disk localdisk;
->      uint32_t domid;
->      /* private to libxl__run_bootloader */
->      char *outputpath, *outputdir, *logfile;
-
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1338303814.14158.125.camel@zakaz.uk.xensource.com> b/test/corpus/<1338303814.14158.125.camel@zakaz.uk.xensource.com>
deleted file mode 100644 (file)
index 776a72e..0000000
+++ /dev/null
@@ -1,249 +0,0 @@
-From xen-devel-bounces@lists.xen.org Tue May 29 16:07:48 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Tue, 29 May 2012 16:07:48 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SZO1R-0003ud-KL
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 29 May 2012 16:07:48 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SZNxT-0006zY-Ns; Tue, 29 May 2012 15:03:39 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1SZNxR-0006z8-QJ
-       for xen-devel@lists.xensource.com; Tue, 29 May 2012 15:03:38 +0000
-Received: from [85.158.143.35:56464] by server-2.bemta-4.messagelabs.com id
-       AB/00-12211-945E4CF4; Tue, 29 May 2012 15:03:37 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-3.tower-21.messagelabs.com!1338303815!14638888!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiA5OTk2Nw==\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 26298 invoked from network); 29 May 2012 15:03:36 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-3.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
-       29 May 2012 15:03:36 -0000
-X-IronPort-AV: E=Sophos;i="4.75,677,1330905600"; d="scan'208";a="12718643"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       29 May 2012 15:03:35 +0000
-Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0;
-       Tue, 29 May 2012 16:03:35 +0100
-Message-ID: <1338303814.14158.125.camel@zakaz.uk.xensource.com>
-From: Ian Campbell <Ian.Campbell@citrix.com>
-To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-Date: Tue, 29 May 2012 16:03:34 +0100
-In-Reply-To: <alpine.DEB.2.00.1205291540590.26786@kaball-desktop>
-References: <alpine.DEB.2.00.1205281439080.26786@kaball-desktop>
-       <1338287956-24691-2-git-send-email-stefano.stabellini@eu.citrix.com>
-       <1338300632.14158.115.camel@zakaz.uk.xensource.com>
-       <alpine.DEB.2.00.1205291511560.26786@kaball-desktop>
-       <alpine.DEB.2.00.1205291540590.26786@kaball-desktop>
-Organization: Citrix Systems, Inc.
-X-Mailer: Evolution 3.2.2-1 
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>, Ian
-       Jackson <Ian.Jackson@eu.citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH v8 02/11] libxl:
- libxl__device_disk_local_attach return a new libxl_device_disk
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Tue, 2012-05-29 at 15:48 +0100, Stefano Stabellini wrote:
-> On Tue, 29 May 2012, Stefano Stabellini wrote:
-> > On Tue, 29 May 2012, Ian Campbell wrote:
-> > > On Tue, 2012-05-29 at 11:39 +0100, Stefano Stabellini wrote:
-> > > > @@ -1804,6 +1814,8 @@ int libxl__device_disk_local_detach(libxl__gc *gc, libxl_device_disk *disk)
-> > > >       * needed by the soon to be started domain and do nothing.
-> > > >       */
-> > > >  
-> > > > +    free(disk->pdev_path);
-> > > > +    free(disk->script);
-> > > 
-> > > This is open coding libxl_device_disk_dispose(disk) but missed the vdev
-> > > member, is that deliberate?
-> > 
-> > I think it is a mistake: all these strings used to be allocated on the
-> > gc, on previous versions of the series. However meanwhile the event
-> > series went in, changing completely libxl__bootloader_run (that is the
-> > caller of libxl__device_disk_local_attach).
-> > Allocating stuff on the gc is not correct anymore, so now they need to
-> > be explicitly freed. I think I should call libxl_device_disk_dispose
-> > here and strdup in libxl__device_disk_local_attach to make sure vdev is
-> > not on the gc.
-> 
-> The appended patch switches back the behavior to what we had in v5 and
-> before: pdev_path, script, and vdev are all allocated on the gc,
-> therefore freed automatically.
-
-Thanks, this looks good to me.
-
-If I slot this in in the place of the original will the rest of the
-series apply or shall I wait for a resend/retest?
-
-Ian.
-
-> 
-> 
-> ---
-> 
-> libxl: libxl__device_disk_local_attach return a new libxl_device_disk
-> 
-> Introduce a new libxl_device_disk* parameter to
-> libxl__device_disk_local_attach, the parameter is allocated by the
-> caller. libxl__device_disk_local_attach is going to fill the new disk
-> with informations about the new locally attached disk.  The new
-> libxl_device_disk should be passed to libxl_device_disk_local_detach
-> afterwards.
-> 
-> Changes in v9:
-> - allocate pdev_path, script, and vdev on the gc.
-> 
-> Changes in v8:
-> - free pdev_path and script in local_detach;
-> - use libxl__strdup instead of strdup.
-> 
-> Changes in v7:
-> - rename tmpdisk to localdisk;
-> - add a comment in libxl__bootloader_state about localdisk.
-> 
-> Changes in v6:
-> - return error in case pdev_path is NULL;
-> - libxl__device_disk_local_attach update the new disk, the caller
-> allocates it;
-> - remove \n from logs.
-> 
-> Changes in v5:
-> - rename disk to in_disk;
-> - rename tmpdisk to disk;
-> - copy disk to new_disk only on success;
-> - remove check on libxl__zalloc success.
-> 
-> Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-> 
-> diff --git a/tools/libxl/libxl.c b/tools/libxl/libxl.c
-> index cd870c4..be1c900 100644
-> --- a/tools/libxl/libxl.c
-> +++ b/tools/libxl/libxl.c
-> @@ -1735,13 +1735,24 @@ out:
->      return ret;
->  }
->  
-> -char * libxl__device_disk_local_attach(libxl__gc *gc, libxl_device_disk *disk)
-> +char * libxl__device_disk_local_attach(libxl__gc *gc,
-> +        const libxl_device_disk *in_disk,
-> +        libxl_device_disk *disk)
->  {
->      libxl_ctx *ctx = gc->owner;
->      char *dev = NULL;
->      char *ret = NULL;
->      int rc;
->  
-> +    if (in_disk->pdev_path == NULL)
-> +        return NULL;
-> +
-> +    memcpy(disk, in_disk, sizeof(libxl_device_disk));
-> +    disk->pdev_path = libxl__strdup(gc, in_disk->pdev_path);
-> +    if (in_disk->script != NULL)
-> +        disk->script = libxl__strdup(gc, in_disk->script);
-> +    disk->vdev = NULL;
-> +
->      rc = libxl__device_disk_setdefault(gc, disk);
->      if (rc) goto out;
->  
-> @@ -1779,8 +1790,7 @@ char * libxl__device_disk_local_attach(libxl__gc *gc, libxl_device_disk *disk)
->                             " attach a qdisk image if the format is not raw");
->                  break;
->              }
-> -            LIBXL__LOG(ctx, LIBXL__LOG_DEBUG, "locally attaching qdisk %s\n",
-> -                       disk->pdev_path);
-> +            LOG(DEBUG, "locally attaching qdisk %s", in_disk->pdev_path);
->              dev = disk->pdev_path;
->              break;
->          default:
-> diff --git a/tools/libxl/libxl_bootloader.c b/tools/libxl/libxl_bootloader.c
-> index e8950b1..82371f1 100644
-> --- a/tools/libxl/libxl_bootloader.c
-> +++ b/tools/libxl/libxl_bootloader.c
-> @@ -228,7 +228,7 @@ static void bootloader_cleanup(libxl__egc *egc, libxl__bootloader_state *bl)
->      if (bl->outputdir) libxl__remove_directory(gc, bl->outputdir);
->  
->      if (bl->diskpath) {
-> -        libxl__device_disk_local_detach(gc, bl->disk);
-> +        libxl__device_disk_local_detach(gc, &bl->localdisk);
->          free(bl->diskpath);
->          bl->diskpath = 0;
->      }
-> @@ -330,7 +330,7 @@ void libxl__bootloader_run(libxl__egc *egc, libxl__bootloader_state *bl)
->          goto out;
->      }
->  
-> -    bl->diskpath = libxl__device_disk_local_attach(gc, bl->disk);
-> +    bl->diskpath = libxl__device_disk_local_attach(gc, bl->disk, &bl->localdisk);
->      if (!bl->diskpath) {
->          rc = ERROR_FAIL;
->          goto out;
-> diff --git a/tools/libxl/libxl_internal.h b/tools/libxl/libxl_internal.h
-> index d34e561..21b8b54 100644
-> --- a/tools/libxl/libxl_internal.h
-> +++ b/tools/libxl/libxl_internal.h
-> @@ -1265,7 +1265,8 @@ _hidden void libxl__device_destroy_tapdisk(libxl__gc *gc, char *be_path);
->   * a device.
->   */
->  _hidden char * libxl__device_disk_local_attach(libxl__gc *gc,
-> -        libxl_device_disk *disk);
-> +        const libxl_device_disk *in_disk,
-> +        libxl_device_disk *new_disk);
->  _hidden int libxl__device_disk_local_detach(libxl__gc *gc,
->          libxl_device_disk *disk);
->  
-> @@ -1803,6 +1804,13 @@ struct libxl__bootloader_state {
->      libxl__bootloader_console_callback *console_available;
->      libxl_domain_build_info *info; /* u.pv.{kernel,ramdisk,cmdline} updated */
->      libxl_device_disk *disk;
-> +    /* Should be zeroed by caller on entry.  Will be filled in by
-> +     * bootloader machinery; represents the local attachment of the
-> +     * disk for the benefit of the bootloader.  Must be detached by
-> +     * the caller using libxl__device_disk_local_detach, but only
-> +     * after the domain's kernel and initramfs have been loaded into
-> +     * memory and the file references disposed of. */
-> +    libxl_device_disk localdisk;
->      uint32_t domid;
->      /* private to libxl__run_bootloader */
->      char *outputpath, *outputdir, *logfile;
-
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1338305560.31698.2.camel@zakaz.uk.xensource.com> b/test/corpus/<1338305560.31698.2.camel@zakaz.uk.xensource.com>
deleted file mode 100644 (file)
index 8269289..0000000
+++ /dev/null
@@ -1,98 +0,0 @@
-From xen-devel-bounces@lists.xen.org Tue May 29 16:37:03 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Tue, 29 May 2012 16:37:03 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SZOTl-000426-4l
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 29 May 2012 16:37:03 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SZOPc-000055-K9; Tue, 29 May 2012 15:32:44 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1SZOPb-00004z-3k
-       for xen-devel@lists.xensource.com; Tue, 29 May 2012 15:32:43 +0000
-Received: from [85.158.138.51:24292] by server-3.bemta-3.messagelabs.com id
-       A4/43-08380-A1CE4CF4; Tue, 29 May 2012 15:32:42 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-4.tower-174.messagelabs.com!1338305561!29689740!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiA5OTk2Nw==\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 28945 invoked from network); 29 May 2012 15:32:42 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-4.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
-       29 May 2012 15:32:42 -0000
-X-IronPort-AV: E=Sophos;i="4.75,677,1330905600"; d="scan'208";a="12719446"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       29 May 2012 15:32:41 +0000
-Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0;
-       Tue, 29 May 2012 16:32:41 +0100
-Message-ID: <1338305560.31698.2.camel@zakaz.uk.xensource.com>
-From: Ian Campbell <Ian.Campbell@citrix.com>
-To: Ian Jackson <Ian.Jackson@eu.citrix.com>
-Date: Tue, 29 May 2012 16:32:40 +0100
-In-Reply-To: <20420.59991.541173.849526@mariner.uk.xensource.com>
-References: <alpine.DEB.2.00.1205281439080.26786@kaball-desktop>
-       <1338287956-24691-2-git-send-email-stefano.stabellini@eu.citrix.com>
-       <1338300632.14158.115.camel@zakaz.uk.xensource.com>
-       <alpine.DEB.2.00.1205291511560.26786@kaball-desktop>
-       <alpine.DEB.2.00.1205291540590.26786@kaball-desktop>
-       <20420.59991.541173.849526@mariner.uk.xensource.com>
-Organization: Citrix Systems, Inc.
-X-Mailer: Evolution 3.2.2-1 
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH v8 02/11] libxl:
- libxl__device_disk_local_attach return a new libxl_device_disk
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Tue, 2012-05-29 at 16:25 +0100, Ian Jackson wrote:
-> Stefano Stabellini writes ("Re: [PATCH v8 02/11] libxl: libxl__device_disk_local_attach return a new libxl_device_disk"):
-> ...
-> > The appended patch switches back the behavior to what we had in v5 and
-> > before: pdev_path, script, and vdev are all allocated on the gc,
-> > therefore freed automatically.
-> 
-> With the revised version of 02/11, I have now acked all 11 of these.
-
-Thanks, I'm about to apply...
-
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1338305856.31698.5.camel@zakaz.uk.xensource.com> b/test/corpus/<1338305856.31698.5.camel@zakaz.uk.xensource.com>
deleted file mode 100644 (file)
index ccaa3a7..0000000
+++ /dev/null
@@ -1,90 +0,0 @@
-From xen-devel-bounces@lists.xen.org Tue May 29 16:42:10 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Tue, 29 May 2012 16:42:10 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SZOYi-000436-H1
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 29 May 2012 16:42:10 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SZOUP-0000N8-12; Tue, 29 May 2012 15:37:41 +0000
-Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1SZOUM-0000N1-Vv
-       for xen-devel@lists.xensource.com; Tue, 29 May 2012 15:37:39 +0000
-Received: from [193.109.254.147:22020] by server-8.bemta-14.messagelabs.com id
-       05/0F-17829-24DE4CF4; Tue, 29 May 2012 15:37:38 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-7.tower-27.messagelabs.com!1338305857!4139497!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiA5OTk2Nw==\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 30863 invoked from network); 29 May 2012 15:37:37 -0000
-Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-7.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
-       29 May 2012 15:37:37 -0000
-X-IronPort-AV: E=Sophos;i="4.75,677,1330905600"; d="scan'208";a="12719547"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       29 May 2012 15:37:37 +0000
-Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0;
-       Tue, 29 May 2012 16:37:37 +0100
-Message-ID: <1338305856.31698.5.camel@zakaz.uk.xensource.com>
-From: Ian Campbell <Ian.Campbell@citrix.com>
-To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-Date: Tue, 29 May 2012 16:37:36 +0100
-In-Reply-To: <alpine.DEB.2.00.1205281439080.26786@kaball-desktop>
-References: <alpine.DEB.2.00.1205281439080.26786@kaball-desktop>
-Organization: Citrix Systems, Inc.
-X-Mailer: Evolution 3.2.2-1 
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>, Ian
-       Jackson <Ian.Jackson@eu.citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH v8 0/11] qdisk local attach
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Tue, 2012-05-29 at 11:38 +0100, Stefano Stabellini wrote:
-> this patch implements local_attach support for QDISK: 
-
-Applied, thanks!
-
-I reworked some of the later commit summaries to be "libxl:..." or
-"xl:...." in line with our normal convention, hope that's ok.
-
-Ian.
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1338565113.17466.141.camel@zakaz.uk.xensource.com> b/test/corpus/<1338565113.17466.141.camel@zakaz.uk.xensource.com>
deleted file mode 100644 (file)
index b5557c3..0000000
+++ /dev/null
@@ -1,239 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Jun 01 16:43:25 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 01 Jun 2012 16:43:25 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SaU0Y-0004t9-1e
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 01 Jun 2012 16:43:25 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SaTwH-0006af-PU; Fri, 01 Jun 2012 15:38:57 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1SaTwF-0006aa-UN
-       for xen-devel@lists.xen.org; Fri, 01 Jun 2012 15:38:56 +0000
-Received: from [85.158.139.83:40366] by server-11.bemta-5.messagelabs.com id
-       27/4E-12711-F02E8CF4; Fri, 01 Jun 2012 15:38:55 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-2.tower-182.messagelabs.com!1338565134!27633678!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDA3ODg=\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 26833 invoked from network); 1 Jun 2012 15:38:54 -0000
-Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-2.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
-       1 Jun 2012 15:38:54 -0000
-X-IronPort-AV: E=Sophos;i="4.75,698,1330905600"; d="scan'208";a="12791291"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       01 Jun 2012 15:38:34 +0000
-Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0; Fri, 1 Jun 2012
-       16:38:34 +0100
-Message-ID: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
-From: Ian Campbell <Ian.Campbell@citrix.com>
-To: xen-devel <xen-devel@lists.xen.org>
-Date: Fri, 1 Jun 2012 16:38:33 +0100
-Organization: Citrix Systems, Inc.
-X-Mailer: Evolution 3.2.2-1 
-MIME-Version: 1.0
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: [Xen-devel] [PATCH 0/38] arm: boot a dom1 to "Calibrating delay
-       loop" then hang
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-Sorry for the enormous dump, I seem to have accumulated a boat load of
-stuff in my tree...
-
-There's actually a bunch of random guff in here, but the main bit is
-xc_dom code in libxc to build a dom1 from a ARM zImage and enough
-hypervisor support to run it to:
-        [    0.000000] Linux version 3.2.0-rc5-arm-native+ (ianc@drall) (gcc version 4.6.0 (GCC) ) #174 Thu May 24 15:44:30 BST 2012
-        [    0.000000] CPU: ARMv7 Processor [410fc0f0] revision 0 (ARMv7), cr=10c53c7d
-        [    0.000000] CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
-        [    0.000000] Machine: ARM Versatile Express, model: V2P-AEMv7A
-        [    0.000000] bootconsole [xenboot0] enabled
-        [    0.000000] Memory policy: ECC disabled, Data cache writeback
-        [    0.000000] Architected local timer running at 100.00MHz.
-        [    0.000000] sched_clock: 32 bits at 100MHz, resolution 10ns, wraps every 42949ms
-        [    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 32512
-        [    0.000000] Kernel command line: earlyprintk=xen console=hvc0
-        [    0.000000] PID hash table entries: 512 (order: -1, 2048 bytes)
-        [    0.000000] Dentry cache hash table entries: 16384 (order: 4, 65536 bytes)
-        [    0.000000] Inode-cache hash table entries: 8192 (order: 3, 32768 bytes)
-        [    0.000000] Memory: 128MB = 128MB total
-        [    0.000000] Memory: 126256k/126256k available, 4816k reserved, 0K highmem
-        [    0.000000] Virtual kernel memory layout:
-        [    0.000000]     vector  : 0xffff0000 - 0xffff1000   (   4 kB)
-        [    0.000000]     fixmap  : 0xfff00000 - 0xfffe0000   ( 896 kB)
-        [    0.000000]     vmalloc : 0xc8800000 - 0xf8000000   ( 760 MB)
-        [    0.000000]     lowmem  : 0xc0000000 - 0xc8000000   ( 128 MB)
-        [    0.000000]     pkmap   : 0xbfe00000 - 0xc0000000   (   2 MB)
-        [    0.000000]     modules : 0xbf000000 - 0xbfe00000   (  14 MB)
-        [    0.000000]       .text : 0xc0008000 - 0xc032cce0   (3220 kB)
-        [    0.000000]       .init : 0xc032d000 - 0xc034e000   ( 132 kB)
-        [    0.000000]       .data : 0xc034e000 - 0xc036f400   ( 133 kB)
-        [    0.000000]        .bss : 0xc036f424 - 0xc038e0ec   ( 124 kB)
-        [    0.000000] NR_IRQS:256
-        [    0.000000] Console: colour dummy device 80x30
-        [    0.191514] Calibrating delay loop... 
-
-(Stefano is looking at virtual timers and interrupt injection as we
-speak...)
-
-There is some non-ARM impact, specifically teaching xc_dom_* about the
-idea that RAM might not start at 0x000 (on the ARM platform we are
-similar too RAM starts at 0x80000000), I think that makes at least the
-libxc parts non-4.2 material at this stage.
-
-There are also three (more than usually) hacky patches needed to get to
-this point:
-        HACK: arm: initial XENMAPSPACE_gmfn_foreign
-        HACK: add simple xcbuild
-        HACK: arm: disable hypercall continuations.
-which I'm not proposing but I'm including because it doesn't work
-without them ;-).
-
-The rest I think is fair game for acking and cherry-picking the
-acceptable bits for commit.
-
-I still need to cleanup the Linux side of this, that probably won't
-happen today and these patches probably don't work without those
-changes... FWIW the XENMAPSPACE_gmfn_foreign thing is an even bigger
-hack there. Ultimately we should do the same thing as hybrid x86
-
-Ian.
-
-The following changes since commit 5fcec8e92ea02240c2737c4fa982027cef053401:
-
-  libxl: fix typos in libxl_cpuid_parse_config (2012-06-01 12:06:22 +0100)
-
-are available in the git repository at:
-
-  git://xenbits.xen.org/people/ianc/xen-unstable.git devel/arm
-
-for you to fetch changes up to 5177d39f17feb3d5ccdedb976074cb0eee62ee69:
-
-  HACK: arm: disable hypercall continuations. (2012-06-01 15:14:28 +0000)
-
-----------------------------------------------------------------
-Ian Campbell (38):
-      arm: allocate top level p2m page for all non-idle domains
-      arm: handy function to print a walk of the hypervisor page tables
-      arm: handy function to print a walk of a domain's p2m.
-      arm: correct and expand TLB flush CP15 registers
-      arm: restore stack on return from trap.
-      arm: enable interrupts while handling traps
-      arm: hook up domctl and memory_op
-      arm: allocate and setup a guest vcpu.
-      arm: print domid as part of debug trap
-      arm: remove unnecessarily verbose print from p2m_load_VTTBR
-      arm: implement p2m lookup
-      arm: remove hard tabs from init_idle_domain
-      arm: stub out sync_vcpu_execstate
-      arm: do not set max_vcpus = 8 in arch_domain_create.
-      arm: implement stub version of flush_tlb_mask.
-      arm: Add simple cpu_{sibling,core}_mask
-      arm: allow p2m to be created with specific MATTR.
-      arm: implement vpl011 (UART) emulator.
-      arm: context switch a bunch of guest state.
-      arm: dump a page table walk when va_to_par fails.
-      arm: dump guest s1 walk on data abort which is not a stage 2 issue.
-      arm: implement vcpu_show_execution_state
-      arm: use correct attributes for mappings in copy_from_paddr()
-      arm: map fixmaps non-executable.
-      arm: remove old identity map of boot paddr when we are done with it.
-      arm: fix locking in create_p2m_entries
-      arm: split pending SPIs (global) out from pending PPIs and SGIs (per CPU)
-      arm: map GICV in all domains, not just dom0.
-      arm: delay enabling data-cache until paging enabled.
-      arm: Upgrade guest barriers to Outer-Shareable. Enable Protected Table Walk.
-      arm: gic.lock can be taken in interrupt context, so lock appropriately.
-      arm: context switch virtual timer registers
-      arm: the hyp timer seems to work now,  default to using it.
-      HACK: arm: initial XENMAPSPACE_gmfn_foreign
-      arm: move PSR flag definitions into interface, for tools use.
-      libxc: add ARM support to xc_dom (PV domain building)
-      HACK: add simple xcbuild
-      HACK: arm: disable hypercall continuations.
-
- tools/libxc/Makefile                 |    1 +
- tools/libxc/xc_dom.h                 |    5 +-
- tools/libxc/xc_dom_arm.c             |  135 +++++++++++++++++++-
- tools/libxc/xc_dom_armzimageloader.c |  167 ++++++++++++++++++++++++
- tools/libxc/xc_dom_core.c            |   12 ++-
- tools/libxc/xg_private.h             |    4 +
- tools/xcutils/Makefile               |    6 +-
- tools/xcutils/xcbuild.c              |  100 +++++++++++++++
- xen/arch/arm/Makefile                |    1 +
- xen/arch/arm/domain.c                |  232 +++++++++++++++++++++++++++++++---
- xen/arch/arm/domain_build.c          |    7 +-
- xen/arch/arm/dummy.S                 |    8 --
- xen/arch/arm/entry.S                 |   23 +++-
- xen/arch/arm/gic.c                   |   56 ++++++---
- xen/arch/arm/gic.h                   |   11 ++-
- xen/arch/arm/head.S                  |    9 +-
- xen/arch/arm/io.c                    |    1 +
- xen/arch/arm/io.h                    |    1 +
- xen/arch/arm/kernel.c                |    8 +-
- xen/arch/arm/mm.c                    |   94 +++++++++++++--
- xen/arch/arm/p2m.c                   |  123 ++++++++++++++++--
- xen/arch/arm/setup.c                 |   15 ++-
- xen/arch/arm/smp.c                   |    9 ++
- xen/arch/arm/smpboot.c               |    5 +
- xen/arch/arm/time.c                  |    8 +-
- xen/arch/arm/traps.c                 |  145 +++++++++++++++++++---
- xen/arch/arm/vgic.c                  |   17 ++-
- xen/arch/arm/vpl011.c                |  155 +++++++++++++++++++++++
- xen/arch/arm/vpl011.h                |   34 +++++
- xen/arch/x86/mm.c                    |    2 +
- xen/include/asm-arm/cpregs.h         |   43 ++++++-
- xen/include/asm-arm/domain.h         |   56 ++++++++-
- xen/include/asm-arm/p2m.h            |    3 +
- xen/include/asm-arm/page.h           |   17 ++-
- xen/include/asm-arm/processor.h      |   26 +---
- xen/include/asm-arm/setup.h          |    2 +-
- xen/include/asm-arm/system.h         |    2 +-
- xen/include/public/arch-arm.h        |   36 ++++--
- xen/include/public/memory.h          |   12 +-
- xen/include/xen/sched.h              |    4 +
- 40 files changed, 1426 insertions(+), 169 deletions(-)
- create mode 100644 tools/libxc/xc_dom_armzimageloader.c
- create mode 100644 tools/xcutils/xcbuild.c
- create mode 100644 xen/arch/arm/vpl011.c
- create mode 100644 xen/arch/arm/vpl011.h
-
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1338565207-2888-1-git-send-email-ian.campbell@citrix.com> b/test/corpus/<1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
deleted file mode 100644 (file)
index 521171e..0000000
+++ /dev/null
@@ -1,122 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Jun 01 16:43:49 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 01 Jun 2012 16:43:49 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SaU0p-0004tc-5s
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 01 Jun 2012 16:43:49 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SaTxV-0006e4-Df; Fri, 01 Jun 2012 15:40:13 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1SaTxT-0006dq-Jg
-       for xen-devel@lists.xen.org; Fri, 01 Jun 2012 15:40:11 +0000
-Received: from [85.158.139.83:48892] by server-9.bemta-5.messagelabs.com id
-       C5/D2-27779-A52E8CF4; Fri, 01 Jun 2012 15:40:10 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-8.tower-182.messagelabs.com!1338565208!17780788!1
-X-Originating-IP: [66.165.176.63]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyNTY3NTA=\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 1441 invoked from network); 1 Jun 2012 15:40:09 -0000
-Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
-       by server-8.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
-       1 Jun 2012 15:40:09 -0000
-X-IronPort-AV: E=Sophos;i="4.75,698,1330923600"; d="scan'208";a="197206650"
-Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
-       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       01 Jun 2012 11:40:08 -0400
-Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
-       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
-       Fri, 1 Jun 2012 11:40:08 -0400
-Received: from [10.80.246.74] (helo=army.uk.xensource.com)     by
-       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
-       <ian.campbell@citrix.com>)      id 1SaTxP-0006I5-Kc;
-       Fri, 01 Jun 2012 16:40:07 +0100
-From: Ian Campbell <ian.campbell@citrix.com>
-To: xen-devel@lists.xen.org
-Date: Fri, 1 Jun 2012 15:39:30 +0000
-Message-ID: <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-X-Mailer: git-send-email 1.7.9.1
-In-Reply-To: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
-References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
-MIME-Version: 1.0
-Cc: Ian Campbell <ian.campbell@citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: [Xen-devel] [PATCH 01/38] arm: allocate top level p2m page for all
-       non-idle domains
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-Not just dom0.
-
-Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
-Acked-by: Tim Deegan <tim@xen.org>
----
- xen/arch/arm/domain.c |    3 +++
- xen/arch/arm/p2m.c    |    2 +-
- 2 files changed, 4 insertions(+), 1 deletions(-)
-
-diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
-index 5702399..4b38790 100644
---- a/xen/arch/arm/domain.c
-+++ b/xen/arch/arm/domain.c
-@@ -201,6 +201,9 @@ int arch_domain_create(struct domain *d, unsigned int domcr_flags)
-         clear_page(d->shared_info);
-         share_xen_page_with_guest(
-                 virt_to_page(d->shared_info), d, XENSHARE_writable);
-+
-+        if ( (rc = p2m_alloc_table(d)) != 0 )
-+            goto fail;
-     }
-     d->max_vcpus = 8;
-diff --git a/xen/arch/arm/p2m.c b/xen/arch/arm/p2m.c
-index 051a0e8..4f624d8 100644
---- a/xen/arch/arm/p2m.c
-+++ b/xen/arch/arm/p2m.c
-@@ -203,7 +203,7 @@ int p2m_alloc_table(struct domain *d)
-     void *p;
-     /* First level P2M is 2 consecutive pages */
--    page = alloc_domheap_pages(d, 1, 0);
-+    page = alloc_domheap_pages(NULL, 1, 0);
-     if ( page == NULL )
-         return -ENOMEM;
--- 
-1.7.9.1
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1338565207-2888-10-git-send-email-ian.campbell@citrix.com> b/test/corpus/<1338565207-2888-10-git-send-email-ian.campbell@citrix.com>
deleted file mode 100644 (file)
index 0660b88..0000000
+++ /dev/null
@@ -1,105 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Jun 01 16:43:48 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 01 Jun 2012 16:43:48 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SaU0m-0004tU-0o
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 01 Jun 2012 16:43:47 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SaTxa-0006fx-8T; Fri, 01 Jun 2012 15:40:18 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1SaTxX-0006eW-3e
-       for xen-devel@lists.xen.org; Fri, 01 Jun 2012 15:40:15 +0000
-Received: from [85.158.138.51:38264] by server-7.bemta-3.messagelabs.com id
-       36/B4-22601-E52E8CF4; Fri, 01 Jun 2012 15:40:14 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-16.tower-174.messagelabs.com!1338565210!27520903!2
-X-Originating-IP: [66.165.176.89]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNDc3NzE=\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 7172 invoked from network); 1 Jun 2012 15:40:13 -0000
-Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
-       by server-16.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
-       1 Jun 2012 15:40:13 -0000
-X-IronPort-AV: E=Sophos;i="4.75,698,1330923600"; d="scan'208";a="26547684"
-Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
-       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       01 Jun 2012 11:40:08 -0400
-Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
-       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
-       Fri, 1 Jun 2012 11:40:08 -0400
-Received: from [10.80.246.74] (helo=army.uk.xensource.com)     by
-       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
-       <ian.campbell@citrix.com>)      id 1SaTxQ-0006I5-6S;
-       Fri, 01 Jun 2012 16:40:08 +0100
-From: Ian Campbell <ian.campbell@citrix.com>
-To: xen-devel@lists.xen.org
-Date: Fri, 1 Jun 2012 15:39:39 +0000
-Message-ID: <1338565207-2888-10-git-send-email-ian.campbell@citrix.com>
-X-Mailer: git-send-email 1.7.9.1
-In-Reply-To: <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
-       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-MIME-Version: 1.0
-Cc: Ian Campbell <ian.campbell@citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: [Xen-devel] [PATCH 10/38] arm: remove unnecessarily verbose print
-       from p2m_load_VTTBR
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
----
- xen/arch/arm/p2m.c |    2 --
- 1 files changed, 0 insertions(+), 2 deletions(-)
-
-diff --git a/xen/arch/arm/p2m.c b/xen/arch/arm/p2m.c
-index fdbecbc..095e608 100644
---- a/xen/arch/arm/p2m.c
-+++ b/xen/arch/arm/p2m.c
-@@ -47,8 +47,6 @@ void p2m_load_VTTBR(struct domain *d)
-     vttbr |= ((uint64_t)p2m->vmid&0xff)<<48;
--    printk("VTTBR dom%d = %"PRIx64"\n", d->domain_id, vttbr);
--
-     WRITE_CP64(vttbr, VTTBR);
-     isb(); /* Ensure update is visible */
- }
--- 
-1.7.9.1
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1338565207-2888-11-git-send-email-ian.campbell@citrix.com> b/test/corpus/<1338565207-2888-11-git-send-email-ian.campbell@citrix.com>
deleted file mode 100644 (file)
index c579aec..0000000
+++ /dev/null
@@ -1,211 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Jun 01 16:49:40 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 01 Jun 2012 16:49:40 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SaU6T-00051u-7S
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 01 Jun 2012 16:49:40 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SaU3C-0008Ki-IK; Fri, 01 Jun 2012 15:46:06 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1SaU39-0008DC-3l
-       for xen-devel@lists.xen.org; Fri, 01 Jun 2012 15:46:03 +0000
-Received: from [85.158.138.51:33644] by server-9.bemta-3.messagelabs.com id
-       11/72-21565-AB3E8CF4; Fri, 01 Jun 2012 15:46:02 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-13.tower-174.messagelabs.com!1338565560!11696972!1
-X-Originating-IP: [66.165.176.89]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNDc3NzE=\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 19553 invoked from network); 1 Jun 2012 15:46:01 -0000
-Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
-       by server-13.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
-       1 Jun 2012 15:46:01 -0000
-X-IronPort-AV: E=Sophos;i="4.75,698,1330923600"; d="scan'208";a="26548518"
-Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
-       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       01 Jun 2012 11:45:59 -0400
-Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
-       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
-       Fri, 1 Jun 2012 11:45:59 -0400
-Received: from [10.80.246.74] (helo=army.uk.xensource.com)     by
-       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
-       <ian.campbell@citrix.com>)      id 1SaTxQ-0006I5-95;
-       Fri, 01 Jun 2012 16:40:08 +0100
-From: Ian Campbell <ian.campbell@citrix.com>
-To: xen-devel@lists.xen.org
-Date: Fri, 1 Jun 2012 15:39:40 +0000
-Message-ID: <1338565207-2888-11-git-send-email-ian.campbell@citrix.com>
-X-Mailer: git-send-email 1.7.9.1
-In-Reply-To: <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
-       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-MIME-Version: 1.0
-Cc: Ian Campbell <ian.campbell@citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: [Xen-devel] [PATCH 11/38] arm: implement p2m lookup
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
----
- xen/arch/arm/p2m.c        |   71 ++++++++++++++++++++++++++++++++++++++++++--
- xen/include/asm-arm/p2m.h |    3 ++
- 2 files changed, 70 insertions(+), 4 deletions(-)
-
-diff --git a/xen/arch/arm/p2m.c b/xen/arch/arm/p2m.c
-index 095e608..9b40e93 100644
---- a/xen/arch/arm/p2m.c
-+++ b/xen/arch/arm/p2m.c
-@@ -10,10 +10,20 @@ void dump_p2m_lookup(struct domain *d, paddr_t addr)
-     struct p2m_domain *p2m = &d->arch.p2m;
-     lpae_t *first = NULL, *second = NULL, *third = NULL;
--    printk("dom%d IPA %#016llx\n", d->domain_id, addr);
-+    printk("dom%d IPA %#"PRIpaddr"\n", d->domain_id, addr);
-+
-+    printk("P2M @ %p mfn:%#lx (%#03llx,%#03llx,%#03llx)\n",
-+           p2m->first_level,
-+           page_to_mfn(p2m->first_level),
-+           first_table_offset(addr),
-+           second_table_offset(addr),
-+           third_table_offset(addr));
-+
-+    if ( first_table_offset(addr) >= LPAE_ENTRIES )
-+        goto done;
-     first = __map_domain_page(p2m->first_level);
--    printk("1ST[%#03llx] = %#016llx\n",
-+    printk("1ST[%#03llx] = %#"PRIpaddr"\n",
-            first_table_offset(addr),
-            first[first_table_offset(addr)].bits);
-     if ( !first[first_table_offset(addr)].p2m.valid ||
-@@ -21,7 +31,7 @@ void dump_p2m_lookup(struct domain *d, paddr_t addr)
-         goto done;
-     second = map_domain_page(first[first_table_offset(addr)].p2m.base);
--    printk("2ND[%#03llx] = %#016llx\n",
-+    printk("2ND[%#03llx] = %#"PRIpaddr"\n",
-            second_table_offset(addr),
-            second[second_table_offset(addr)].bits);
-     if ( !second[second_table_offset(addr)].p2m.valid ||
-@@ -29,7 +39,7 @@ void dump_p2m_lookup(struct domain *d, paddr_t addr)
-         goto done;
-     third = map_domain_page(second[second_table_offset(addr)].p2m.base);
--    printk("3RD[%#03llx] = %#016llx\n",
-+    printk("3RD[%#03llx] = %#"PRIpaddr"\n",
-            third_table_offset(addr),
-            third[third_table_offset(addr)].bits);
-@@ -51,6 +61,59 @@ void p2m_load_VTTBR(struct domain *d)
-     isb(); /* Ensure update is visible */
- }
-+/*
-+ * Lookup the MFN corresponding to a domain's PFN.
-+ *
-+ * There are no processor functions to do a stage 2 only lookup therefore we
-+ * do a a software walk.
-+ */
-+paddr_t p2m_lookup(struct domain *d, paddr_t paddr)
-+{
-+    struct p2m_domain *p2m = &d->arch.p2m;
-+    lpae_t pte, *first = NULL, *second = NULL, *third = NULL;
-+    paddr_t maddr = INVALID_PADDR;
-+
-+    spin_lock(&p2m->lock);
-+
-+    first = __map_domain_page(p2m->first_level);
-+    if ( !first[first_table_offset(paddr)].p2m.valid )
-+        goto done_err;
-+    if ( !first[first_table_offset(paddr)].p2m.table )
-+    {
-+        pte = first[first_table_offset(paddr)];
-+        goto done;
-+    }
-+
-+    second = map_domain_page(first[first_table_offset(paddr)].p2m.base);
-+    if ( !second[second_table_offset(paddr)].p2m.valid )
-+        goto done_err;
-+    if ( !second[second_table_offset(paddr)].p2m.table )
-+    {
-+        pte = second[second_table_offset(paddr)];
-+        goto done;
-+    }
-+
-+    third = map_domain_page(second[second_table_offset(paddr)].p2m.base);
-+    if ( !third[third_table_offset(paddr)].p2m.valid )
-+        goto done_err;
-+    if ( !third[third_table_offset(paddr)].p2m.table )
-+        goto done_err;
-+
-+    pte = third[third_table_offset(paddr)];
-+
-+done:
-+
-+    maddr = (pte.bits & PADDR_MASK & PAGE_MASK) | (paddr & ~PAGE_MASK);
-+done_err:
-+    if (third) unmap_domain_page(third);
-+    if (second) unmap_domain_page(second);
-+    if (first) unmap_domain_page(first);
-+
-+    spin_unlock(&p2m->lock);
-+
-+    return maddr;
-+}
-+
- int guest_physmap_mark_populate_on_demand(struct domain *d,
-                                           unsigned long gfn,
-                                           unsigned int order)
-diff --git a/xen/include/asm-arm/p2m.h b/xen/include/asm-arm/p2m.h
-index 349923a..1afd5cb 100644
---- a/xen/include/asm-arm/p2m.h
-+++ b/xen/include/asm-arm/p2m.h
-@@ -32,6 +32,9 @@ int p2m_alloc_table(struct domain *d);
- /* */
- void p2m_load_VTTBR(struct domain *d);
-+/* */
-+paddr_t p2m_lookup(struct domain *d, paddr_t gpfn);
-+
- /* Setup p2m RAM mapping for domain d from start-end. */
- int p2m_populate_ram(struct domain *d, paddr_t start, paddr_t end);
- /* Map MMIO regions in the p2m: start_gaddr and end_gaddr is the range
--- 
-1.7.9.1
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1338565207-2888-12-git-send-email-ian.campbell@citrix.com> b/test/corpus/<1338565207-2888-12-git-send-email-ian.campbell@citrix.com>
deleted file mode 100644 (file)
index fbce8a1..0000000
+++ /dev/null
@@ -1,109 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Jun 01 16:49:15 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 01 Jun 2012 16:49:15 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SaU68-0004ww-8e
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 01 Jun 2012 16:49:15 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SaU36-0008Ad-FV; Fri, 01 Jun 2012 15:46:00 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1SaU34-00088P-MW
-       for xen-devel@lists.xen.org; Fri, 01 Jun 2012 15:45:58 +0000
-Received: from [85.158.138.51:34758] by server-10.bemta-3.messagelabs.com id
-       F3/5B-12071-6B3E8CF4; Fri, 01 Jun 2012 15:45:58 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-4.tower-174.messagelabs.com!1338565552!30346150!4
-X-Originating-IP: [66.165.176.89]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNDc3NzE=\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 25618 invoked from network); 1 Jun 2012 15:45:57 -0000
-Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
-       by server-4.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
-       1 Jun 2012 15:45:57 -0000
-X-IronPort-AV: E=Sophos;i="4.75,698,1330923600"; d="scan'208";a="26548509"
-Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
-       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       01 Jun 2012 11:45:56 -0400
-Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
-       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
-       Fri, 1 Jun 2012 11:45:56 -0400
-Received: from [10.80.246.74] (helo=army.uk.xensource.com)     by
-       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
-       <ian.campbell@citrix.com>)      id 1SaTxQ-0006I5-AY;
-       Fri, 01 Jun 2012 16:40:08 +0100
-From: Ian Campbell <ian.campbell@citrix.com>
-To: xen-devel@lists.xen.org
-Date: Fri, 1 Jun 2012 15:39:41 +0000
-Message-ID: <1338565207-2888-12-git-send-email-ian.campbell@citrix.com>
-X-Mailer: git-send-email 1.7.9.1
-In-Reply-To: <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
-       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-MIME-Version: 1.0
-Cc: Ian Campbell <ian.campbell@citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: [Xen-devel] [PATCH 12/38] arm: remove hard tabs from
-       init_idle_domain
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
----
- xen/arch/arm/setup.c |    6 +++---
- 1 files changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/xen/arch/arm/setup.c b/xen/arch/arm/setup.c
-index 0df3c1a..81ababb 100644
---- a/xen/arch/arm/setup.c
-+++ b/xen/arch/arm/setup.c
-@@ -47,9 +47,9 @@ static __attribute_used__ void init_done(void)
- static void __init init_idle_domain(void)
- {
--        scheduler_init();
--        set_current(idle_vcpu[0]);
--        /* TODO: setup_idle_pagetable(); */
-+    scheduler_init();
-+    set_current(idle_vcpu[0]);
-+    /* TODO: setup_idle_pagetable(); */
- }
- static void __init processor_id(void)
--- 
-1.7.9.1
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1338565207-2888-13-git-send-email-ian.campbell@citrix.com> b/test/corpus/<1338565207-2888-13-git-send-email-ian.campbell@citrix.com>
deleted file mode 100644 (file)
index efba698..0000000
+++ /dev/null
@@ -1,122 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Jun 01 16:49:23 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 01 Jun 2012 16:49:23 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SaU6E-0004xh-JS
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 01 Jun 2012 16:49:23 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SaU3C-0008Jf-5C; Fri, 01 Jun 2012 15:46:06 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1SaU38-0008D3-Pw
-       for xen-devel@lists.xen.org; Fri, 01 Jun 2012 15:46:02 +0000
-Received: from [85.158.143.99:65385] by server-1.bemta-4.messagelabs.com id
-       C9/F9-27869-AB3E8CF4; Fri, 01 Jun 2012 15:46:02 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-5.tower-216.messagelabs.com!1338565558!30625361!2
-X-Originating-IP: [66.165.176.63]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyNTY3NTA=\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 9152 invoked from network); 1 Jun 2012 15:46:00 -0000
-Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
-       by server-5.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
-       1 Jun 2012 15:46:00 -0000
-X-IronPort-AV: E=Sophos;i="4.75,698,1330923600"; d="scan'208";a="197207453"
-Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
-       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       01 Jun 2012 11:45:57 -0400
-Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
-       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
-       Fri, 1 Jun 2012 11:45:57 -0400
-Received: from [10.80.246.74] (helo=army.uk.xensource.com)     by
-       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
-       <ian.campbell@citrix.com>)      id 1SaTxQ-0006I5-DN;
-       Fri, 01 Jun 2012 16:40:08 +0100
-From: Ian Campbell <ian.campbell@citrix.com>
-To: xen-devel@lists.xen.org
-Date: Fri, 1 Jun 2012 15:39:42 +0000
-Message-ID: <1338565207-2888-13-git-send-email-ian.campbell@citrix.com>
-X-Mailer: git-send-email 1.7.9.1
-In-Reply-To: <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
-       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-MIME-Version: 1.0
-Cc: Ian Campbell <ian.campbell@citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: [Xen-devel] [PATCH 13/38] arm: stub out sync_vcpu_execstate
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-We don't do lazy exec state switching so there isn't actually anything to do.
-
-Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
----
- xen/arch/arm/domain.c |    5 +++++
- xen/arch/arm/dummy.S  |    1 -
- 2 files changed, 5 insertions(+), 1 deletions(-)
-
-diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
-index 62a2f3a..bd900f9 100644
---- a/xen/arch/arm/domain.c
-+++ b/xen/arch/arm/domain.c
-@@ -96,6 +96,11 @@ void sync_local_execstate(void)
-     /* Nothing to do -- no lazy switching */
- }
-+void sync_vcpu_execstate(struct vcpu *v)
-+{
-+    /* Nothing to do -- no lazy switching */
-+}
-+
- void startup_cpu_idle_loop(void)
- {
-     struct vcpu *v = current;
-diff --git a/xen/arch/arm/dummy.S b/xen/arch/arm/dummy.S
-index 3b48917..8eddd15 100644
---- a/xen/arch/arm/dummy.S
-+++ b/xen/arch/arm/dummy.S
-@@ -22,7 +22,6 @@ DUMMY(pirq_set_affinity);
- /* VCPU */
- DUMMY(arch_get_info_guest);
- DUMMY(arch_vcpu_reset);
--DUMMY(sync_vcpu_execstate);
- NOP(update_vcpu_system_time);
- DUMMY(vcpu_show_execution_state);
--- 
-1.7.9.1
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1338565207-2888-14-git-send-email-ian.campbell@citrix.com> b/test/corpus/<1338565207-2888-14-git-send-email-ian.campbell@citrix.com>
deleted file mode 100644 (file)
index 405747d..0000000
+++ /dev/null
@@ -1,132 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Jun 01 16:49:12 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 01 Jun 2012 16:49:12 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SaU66-0004wt-7W
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 01 Jun 2012 16:49:12 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SaU34-00088N-0v; Fri, 01 Jun 2012 15:45:58 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1SaU30-000869-W2
-       for xen-devel@lists.xen.org; Fri, 01 Jun 2012 15:45:55 +0000
-Received: from [85.158.143.99:64894] by server-1.bemta-4.messagelabs.com id
-       F6/C9-27869-2B3E8CF4; Fri, 01 Jun 2012 15:45:54 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-11.tower-216.messagelabs.com!1338565550!23414785!2
-X-Originating-IP: [66.165.176.89]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNDc3NzE=\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 18514 invoked from network); 1 Jun 2012 15:45:52 -0000
-Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
-       by server-11.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
-       1 Jun 2012 15:45:52 -0000
-X-IronPort-AV: E=Sophos;i="4.75,698,1330923600"; d="scan'208";a="26548428"
-Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
-       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       01 Jun 2012 11:45:51 -0400
-Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
-       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
-       Fri, 1 Jun 2012 11:45:51 -0400
-Received: from [10.80.246.74] (helo=army.uk.xensource.com)     by
-       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
-       <ian.campbell@citrix.com>)      id 1SaTxQ-0006I5-Eh;
-       Fri, 01 Jun 2012 16:40:08 +0100
-From: Ian Campbell <ian.campbell@citrix.com>
-To: xen-devel@lists.xen.org
-Date: Fri, 1 Jun 2012 15:39:43 +0000
-Message-ID: <1338565207-2888-14-git-send-email-ian.campbell@citrix.com>
-X-Mailer: git-send-email 1.7.9.1
-In-Reply-To: <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
-       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-MIME-Version: 1.0
-Cc: Ian Campbell <ian.campbell@citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: [Xen-devel] [PATCH 14/38] arm: do not set max_vcpus = 8 in
-       arch_domain_create.
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-XEN_DOMCTL_max_vcpus cannot reduce max_vcpus and therefore we can't create a
-smaller guest.
-
-The limit of 8 (due to GIC limits) should be expressed elsewhere, likely in
-MAX_VIRT_CPUS -- but making that change caused:
-    (XEN) Unexpected Trap: Data Abort
-    (XEN) ----[ Xen-4.2-unstable  x86_64  debug=y  Not tainted ]----
-    (XEN) CPU:    0
-    (XEN) PC:     00222e48 _spin_lock+0x28/0x6c
-    (XEN) CPSR:   600001da MODE:HYP
-    (XEN)      R0: 002c4389 R1: 800001da R2: 00000001 R3: 0000ffff
-    (XEN)      R4: 002c4381 R5: 00000080 R6: 002c4380 R7: 002c4000
-    (XEN)      R8: 002c4380 R9: 4000015a R10:00000080 R11:40017d6c R12:00000000
-    (XEN)      SP: 40017d5c LR: 00222e34
-    (XEN)
-    [...]
-    (XEN) Xen call trace:
-    (XEN)    [<00222e48>] _spin_lock+0x28/0x6c
-    (XEN)    [<0022623c>] init_timer+0xbc/0x160
-    (XEN)    [<0021fbdc>] sched_init_vcpu+0x94/0x200
-    (XEN)    [<002061a4>] alloc_vcpu+0x124/0x210
-    (XEN)    [<00204890>] do_domctl+0xaa4/0x14e4
-    (XEN)    [<00241ab8>] do_trap_hypervisor+0x588/0x8cc
-    (XEN)    [<0023bbb0>] return_from_trap+0x0/0x4
-
-so punt on that for now.
-
-Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
----
- xen/arch/arm/domain.c |    2 --
- 1 files changed, 0 insertions(+), 2 deletions(-)
-
-diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
-index bd900f9..e867cb2 100644
---- a/xen/arch/arm/domain.c
-+++ b/xen/arch/arm/domain.c
-@@ -215,8 +215,6 @@ int arch_domain_create(struct domain *d, unsigned int domcr_flags)
-             goto fail;
-     }
--    d->max_vcpus = 8;
--
-     if ( (rc = domain_vgic_init(d)) != 0 )
-         goto fail;
--- 
-1.7.9.1
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1338565207-2888-15-git-send-email-ian.campbell@citrix.com> b/test/corpus/<1338565207-2888-15-git-send-email-ian.campbell@citrix.com>
deleted file mode 100644 (file)
index 7e46066..0000000
+++ /dev/null
@@ -1,124 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Jun 01 16:49:30 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 01 Jun 2012 16:49:30 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SaU6K-0004z0-CT
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 01 Jun 2012 16:49:30 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SaU3J-00006V-89; Fri, 01 Jun 2012 15:46:13 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1SaU3D-0008E8-60
-       for xen-devel@lists.xen.org; Fri, 01 Jun 2012 15:46:07 +0000
-Received: from [85.158.138.51:37887] by server-8.bemta-3.messagelabs.com id
-       07/A0-01456-EB3E8CF4; Fri, 01 Jun 2012 15:46:06 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-13.tower-174.messagelabs.com!1338565560!11696972!4
-X-Originating-IP: [66.165.176.89]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNDc3NzE=\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 19870 invoked from network); 1 Jun 2012 15:46:06 -0000
-Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
-       by server-13.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
-       1 Jun 2012 15:46:06 -0000
-X-IronPort-AV: E=Sophos;i="4.75,698,1330923600"; d="scan'208";a="26548563"
-Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
-       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       01 Jun 2012 11:46:05 -0400
-Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
-       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
-       Fri, 1 Jun 2012 11:46:05 -0400
-Received: from [10.80.246.74] (helo=army.uk.xensource.com)     by
-       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
-       <ian.campbell@citrix.com>)      id 1SaTxQ-0006I5-G0;
-       Fri, 01 Jun 2012 16:40:08 +0100
-From: Ian Campbell <ian.campbell@citrix.com>
-To: xen-devel@lists.xen.org
-Date: Fri, 1 Jun 2012 15:39:44 +0000
-Message-ID: <1338565207-2888-15-git-send-email-ian.campbell@citrix.com>
-X-Mailer: git-send-email 1.7.9.1
-In-Reply-To: <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
-       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-MIME-Version: 1.0
-Cc: Ian Campbell <ian.campbell@citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: [Xen-devel] [PATCH 15/38] arm: implement stub version of
-       flush_tlb_mask.
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
----
- xen/arch/arm/dummy.S |    1 -
- xen/arch/arm/smp.c   |    9 +++++++++
- 2 files changed, 9 insertions(+), 1 deletions(-)
-
-diff --git a/xen/arch/arm/dummy.S b/xen/arch/arm/dummy.S
-index 8eddd15..c001e8d 100644
---- a/xen/arch/arm/dummy.S
-+++ b/xen/arch/arm/dummy.S
-@@ -48,7 +48,6 @@ DUMMY(domain_get_maximum_gpfn);
- DUMMY(domain_relinquish_resources);
- DUMMY(domain_set_time_offset);
- DUMMY(dom_cow);
--DUMMY(flush_tlb_mask);
- DUMMY(gmfn_to_mfn);
- DUMMY(hypercall_create_continuation);
- DUMMY(send_timer_event);
-diff --git a/xen/arch/arm/smp.c b/xen/arch/arm/smp.c
-index cad84f5..824c8c8 100644
---- a/xen/arch/arm/smp.c
-+++ b/xen/arch/arm/smp.c
-@@ -1,5 +1,14 @@
- #include <xen/config.h>
-+#include <asm/system.h>
- #include <asm/smp.h>
-+#include <asm/cpregs.h>
-+#include <asm/page.h>
-+
-+void flush_tlb_mask(const cpumask_t *mask)
-+{
-+    /* XXX IPI other processors */
-+    flush_xen_data_tlb();
-+}
- void smp_call_function(
-     void (*func) (void *info),
--- 
-1.7.9.1
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1338565207-2888-16-git-send-email-ian.campbell@citrix.com> b/test/corpus/<1338565207-2888-16-git-send-email-ian.campbell@citrix.com>
deleted file mode 100644 (file)
index f4cc469..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Jun 01 16:49:31 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 01 Jun 2012 16:49:31 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SaU6M-0004zq-OT
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 01 Jun 2012 16:49:31 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SaU3F-0008Pn-Jh; Fri, 01 Jun 2012 15:46:09 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1SaU3B-0008D3-7W
-       for xen-devel@lists.xen.org; Fri, 01 Jun 2012 15:46:05 +0000
-Received: from [85.158.143.99:5997] by server-1.bemta-4.messagelabs.com id
-       C7/0A-27869-CB3E8CF4; Fri, 01 Jun 2012 15:46:04 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-5.tower-216.messagelabs.com!1338565558!30625361!6
-X-Originating-IP: [66.165.176.63]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyNTY3NTA=\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 9354 invoked from network); 1 Jun 2012 15:46:03 -0000
-Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
-       by server-5.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
-       1 Jun 2012 15:46:03 -0000
-X-IronPort-AV: E=Sophos;i="4.75,698,1330923600"; d="scan'208";a="197207475"
-Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
-       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       01 Jun 2012 11:46:02 -0400
-Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
-       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
-       Fri, 1 Jun 2012 11:46:02 -0400
-Received: from [10.80.246.74] (helo=army.uk.xensource.com)     by
-       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
-       <ian.campbell@citrix.com>)      id 1SaTxQ-0006I5-HM;
-       Fri, 01 Jun 2012 16:40:08 +0100
-From: Ian Campbell <ian.campbell@citrix.com>
-To: xen-devel@lists.xen.org
-Date: Fri, 1 Jun 2012 15:39:45 +0000
-Message-ID: <1338565207-2888-16-git-send-email-ian.campbell@citrix.com>
-X-Mailer: git-send-email 1.7.9.1
-In-Reply-To: <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
-       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-MIME-Version: 1.0
-Cc: Ian Campbell <ian.campbell@citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: [Xen-devel] [PATCH 16/38] arm: Add simple cpu_{sibling,core}_mask
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
----
- xen/arch/arm/dummy.S   |    2 --
- xen/arch/arm/setup.c   |    7 +++++++
- xen/arch/arm/smpboot.c |    5 +++++
- 3 files changed, 12 insertions(+), 2 deletions(-)
-
-diff --git a/xen/arch/arm/dummy.S b/xen/arch/arm/dummy.S
-index c001e8d..03f7489 100644
---- a/xen/arch/arm/dummy.S
-+++ b/xen/arch/arm/dummy.S
-@@ -7,8 +7,6 @@ x:     .word 0xe7f000f0 /* Undefined instruction */
- x:    mov pc, lr
-       
- /* SMP support */
--DUMMY(per_cpu__cpu_core_mask);
--DUMMY(per_cpu__cpu_sibling_mask);
- DUMMY(node_online_map);
- DUMMY(smp_send_state_dump);
-diff --git a/xen/arch/arm/setup.c b/xen/arch/arm/setup.c
-index 81ababb..b0cfacc 100644
---- a/xen/arch/arm/setup.c
-+++ b/xen/arch/arm/setup.c
-@@ -230,6 +230,13 @@ void __init start_xen(unsigned long boot_phys_offset,
-         }
-     }
-+    if ( !zalloc_cpumask_var(&per_cpu(cpu_sibling_mask, 0)) ||
-+         !zalloc_cpumask_var(&per_cpu(cpu_core_mask, 0)) )
-+        BUG();
-+
-+    cpumask_clear(per_cpu(cpu_sibling_mask, 0));
-+    cpumask_clear(per_cpu(cpu_core_mask, 0));
-+
-     printk("Brought up %ld CPUs\n", (long)num_online_cpus());
-     /* TODO: smp_cpus_done(); */
-diff --git a/xen/arch/arm/smpboot.c b/xen/arch/arm/smpboot.c
-index ea05afc..8517d86 100644
---- a/xen/arch/arm/smpboot.c
-+++ b/xen/arch/arm/smpboot.c
-@@ -52,6 +52,11 @@ unsigned long __initdata ready_cpus = 0;
- /* ID of the PCPU we're running on */
- DEFINE_PER_CPU(unsigned int, cpu_id);
-+/* XXX these seem awefully x86ish... */
-+/* representing HT siblings of each logical CPU */
-+DEFINE_PER_CPU_READ_MOSTLY(cpumask_var_t, cpu_sibling_mask);
-+/* representing HT and core siblings of each logical CPU */
-+DEFINE_PER_CPU_READ_MOSTLY(cpumask_var_t, cpu_core_mask);
- void __init
- smp_prepare_cpus (unsigned int max_cpus)
--- 
-1.7.9.1
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1338565207-2888-17-git-send-email-ian.campbell@citrix.com> b/test/corpus/<1338565207-2888-17-git-send-email-ian.campbell@citrix.com>
deleted file mode 100644 (file)
index 70ea055..0000000
+++ /dev/null
@@ -1,188 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Jun 01 16:49:20 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 01 Jun 2012 16:49:20 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SaU6B-0004x2-Tl
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 01 Jun 2012 16:49:20 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SaU3C-0008LF-Vm; Fri, 01 Jun 2012 15:46:06 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1SaU39-0008F2-T9
-       for xen-devel@lists.xen.org; Fri, 01 Jun 2012 15:46:04 +0000
-Received: from [85.158.143.99:51500] by server-2.bemta-4.messagelabs.com id
-       51/59-11595-BB3E8CF4; Fri, 01 Jun 2012 15:46:03 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-5.tower-216.messagelabs.com!1338565558!30625361!3
-X-Originating-IP: [66.165.176.63]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyNTY3NTA=\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 9201 invoked from network); 1 Jun 2012 15:46:01 -0000
-Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
-       by server-5.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
-       1 Jun 2012 15:46:01 -0000
-X-IronPort-AV: E=Sophos;i="4.75,698,1330923600"; d="scan'208";a="197207456"
-Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
-       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       01 Jun 2012 11:45:58 -0400
-Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
-       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
-       Fri, 1 Jun 2012 11:45:58 -0400
-Received: from [10.80.246.74] (helo=army.uk.xensource.com)     by
-       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
-       <ian.campbell@citrix.com>)      id 1SaTxQ-0006I5-Ig;
-       Fri, 01 Jun 2012 16:40:08 +0100
-From: Ian Campbell <ian.campbell@citrix.com>
-To: xen-devel@lists.xen.org
-Date: Fri, 1 Jun 2012 15:39:46 +0000
-Message-ID: <1338565207-2888-17-git-send-email-ian.campbell@citrix.com>
-X-Mailer: git-send-email 1.7.9.1
-In-Reply-To: <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
-       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-MIME-Version: 1.0
-Cc: Ian Campbell <ian.campbell@citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: [Xen-devel] [PATCH 17/38] arm: allow p2m to be created with
-       specific MATTR.
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
----
- xen/arch/arm/p2m.c         |   15 ++++++++-------
- xen/include/asm-arm/page.h |    6 ++++--
- 2 files changed, 12 insertions(+), 9 deletions(-)
-
-diff --git a/xen/arch/arm/p2m.c b/xen/arch/arm/p2m.c
-index 9b40e93..46c6f17 100644
---- a/xen/arch/arm/p2m.c
-+++ b/xen/arch/arm/p2m.c
-@@ -148,7 +148,7 @@ static int p2m_create_entry(struct domain *d,
-     clear_page(p);
-     unmap_domain_page(p);
--    pte = mfn_to_p2m_entry(page_to_mfn(page));
-+    pte = mfn_to_p2m_entry(page_to_mfn(page), MATTR_MEM);
-     write_pte(entry, pte);
-@@ -159,7 +159,8 @@ static int create_p2m_entries(struct domain *d,
-                      int alloc,
-                      paddr_t start_gpaddr,
-                      paddr_t end_gpaddr,
--                     paddr_t maddr)
-+                     paddr_t maddr,
-+                     int mattr)
- {
-     int rc;
-     struct p2m_domain *p2m = &d->arch.p2m;
-@@ -235,11 +236,11 @@ static int create_p2m_entries(struct domain *d,
-                 goto out;
-             }
--            pte = mfn_to_p2m_entry(page_to_mfn(page));
-+            pte = mfn_to_p2m_entry(page_to_mfn(page), mattr);
-             write_pte(&third[third_table_offset(addr)], pte);
-         } else {
--            lpae_t pte = mfn_to_p2m_entry(maddr >> PAGE_SHIFT);
-+            lpae_t pte = mfn_to_p2m_entry(maddr >> PAGE_SHIFT, mattr);
-             write_pte(&third[third_table_offset(addr)], pte);
-             maddr += PAGE_SIZE;
-         }
-@@ -263,7 +264,7 @@ int p2m_populate_ram(struct domain *d,
-                      paddr_t start,
-                      paddr_t end)
- {
--    return create_p2m_entries(d, 1, start, end, 0);
-+    return create_p2m_entries(d, 1, start, end, 0, MATTR_MEM);
- }
- int map_mmio_regions(struct domain *d,
-@@ -271,7 +272,7 @@ int map_mmio_regions(struct domain *d,
-                      paddr_t end_gaddr,
-                      paddr_t maddr)
- {
--    return create_p2m_entries(d, 0, start_gaddr, end_gaddr, maddr);
-+    return create_p2m_entries(d, 0, start_gaddr, end_gaddr, maddr, MATTR_DEV);
- }
- int guest_physmap_add_page(struct domain *d,
-@@ -281,7 +282,7 @@ int guest_physmap_add_page(struct domain *d,
- {
-     return create_p2m_entries(d, 0, gpfn << PAGE_SHIFT,
-                               (gpfn + (1<<page_order)) << PAGE_SHIFT,
--                              mfn << PAGE_SHIFT);
-+                              mfn << PAGE_SHIFT, MATTR_MEM);
- }
- void guest_physmap_remove_page(struct domain *d,
-diff --git a/xen/include/asm-arm/page.h b/xen/include/asm-arm/page.h
-index c7b6530..bb1729a 100644
---- a/xen/include/asm-arm/page.h
-+++ b/xen/include/asm-arm/page.h
-@@ -46,6 +46,8 @@
- #define DEV_WC        BUFFERABLE
- #define DEV_CACHED    WRITEBACK
-+#define MATTR_DEV     0x1
-+#define MATTR_MEM     0xf
- #ifndef __ASSEMBLY__
-@@ -169,7 +171,7 @@ static inline lpae_t mfn_to_xen_entry(unsigned long mfn)
-     return e;
- }
--static inline lpae_t mfn_to_p2m_entry(unsigned long mfn)
-+static inline lpae_t mfn_to_p2m_entry(unsigned long mfn, unsigned int mattr)
- {
-     paddr_t pa = ((paddr_t) mfn) << PAGE_SHIFT;
-     lpae_t e = (lpae_t) {
-@@ -178,7 +180,7 @@ static inline lpae_t mfn_to_p2m_entry(unsigned long mfn)
-         .p2m.sh = LPAE_SH_OUTER,
-         .p2m.write = 1,
-         .p2m.read = 1,
--        .p2m.mattr = 0xf,
-+        .p2m.mattr = mattr,
-         .p2m.table = 1,
-         .p2m.valid = 1,
-     };
--- 
-1.7.9.1
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1338565207-2888-18-git-send-email-ian.campbell@citrix.com> b/test/corpus/<1338565207-2888-18-git-send-email-ian.campbell@citrix.com>
deleted file mode 100644 (file)
index cef8da4..0000000
+++ /dev/null
@@ -1,381 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Jun 01 16:49:27 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 01 Jun 2012 16:49:27 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SaU6J-0004yz-VM
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 01 Jun 2012 16:49:27 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SaU3I-0008VM-8d; Fri, 01 Jun 2012 15:46:12 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1SaU3C-0008Kf-SB
-       for xen-devel@lists.xen.org; Fri, 01 Jun 2012 15:46:07 +0000
-Received: from [85.158.138.51:35296] by server-2.bemta-3.messagelabs.com id
-       88/E3-17140-DB3E8CF4; Fri, 01 Jun 2012 15:46:05 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-13.tower-174.messagelabs.com!1338565560!11696972!3
-X-Originating-IP: [66.165.176.89]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNDc3NzE=\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 19803 invoked from network); 1 Jun 2012 15:46:05 -0000
-Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
-       by server-13.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
-       1 Jun 2012 15:46:05 -0000
-X-IronPort-AV: E=Sophos;i="4.75,698,1330923600"; d="scan'208";a="26548559"
-Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
-       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       01 Jun 2012 11:46:04 -0400
-Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
-       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
-       Fri, 1 Jun 2012 11:46:04 -0400
-Received: from [10.80.246.74] (helo=army.uk.xensource.com)     by
-       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
-       <ian.campbell@citrix.com>)      id 1SaTxQ-0006I5-LL;
-       Fri, 01 Jun 2012 16:40:08 +0100
-From: Ian Campbell <ian.campbell@citrix.com>
-To: xen-devel@lists.xen.org
-Date: Fri, 1 Jun 2012 15:39:47 +0000
-Message-ID: <1338565207-2888-18-git-send-email-ian.campbell@citrix.com>
-X-Mailer: git-send-email 1.7.9.1
-In-Reply-To: <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
-       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-MIME-Version: 1.0
-Cc: Ian Campbell <ian.campbell@citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: [Xen-devel] [PATCH 18/38] arm: implement vpl011 (UART) emulator.
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-This is not interended to provide a full emulation, but rather just enough to
-satisfy the use made by Linux' boot time decompressor code (which is too early
-for DT etc)
-
-Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
----
- xen/arch/arm/Makefile        |    1 +
- xen/arch/arm/domain.c        |    4 +
- xen/arch/arm/io.c            |    1 +
- xen/arch/arm/io.h            |    1 +
- xen/arch/arm/vpl011.c        |  155 ++++++++++++++++++++++++++++++++++++++++++
- xen/arch/arm/vpl011.h        |   34 +++++++++
- xen/include/asm-arm/domain.h |    8 ++
- 7 files changed, 204 insertions(+), 0 deletions(-)
- create mode 100644 xen/arch/arm/vpl011.c
- create mode 100644 xen/arch/arm/vpl011.h
-
-diff --git a/xen/arch/arm/Makefile b/xen/arch/arm/Makefile
-index 9440a21..5a87ba6 100644
---- a/xen/arch/arm/Makefile
-+++ b/xen/arch/arm/Makefile
-@@ -25,6 +25,7 @@ obj-y += shutdown.o
- obj-y += traps.o
- obj-y += vgic.o
- obj-y += vtimer.o
-+obj-y += vpl011.o
- #obj-bin-y += ....o
-diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
-index e867cb2..d830980 100644
---- a/xen/arch/arm/domain.c
-+++ b/xen/arch/arm/domain.c
-@@ -13,6 +13,7 @@
- #include "gic.h"
- #include "vtimer.h"
-+#include "vpl011.h"
- DEFINE_PER_CPU(struct vcpu *, curr_vcpu);
-@@ -201,6 +202,9 @@ int arch_domain_create(struct domain *d, unsigned int domcr_flags)
-     if ( (rc = domain_vgic_init(d)) != 0 )
-         goto fail;
-+    if ( (rc = domain_uart0_init(d)) != 0 )
-+        goto fail;
-+
-     if ( !is_idle_domain(d) )
-     {
-         rc = -ENOMEM;
-diff --git a/xen/arch/arm/io.c b/xen/arch/arm/io.c
-index 4461225..18f6164 100644
---- a/xen/arch/arm/io.c
-+++ b/xen/arch/arm/io.c
-@@ -25,6 +25,7 @@
- static const struct mmio_handler *const mmio_handlers[] =
- {
-     &vgic_distr_mmio_handler,
-+    &uart0_mmio_handler,
- };
- #define MMIO_HANDLER_NR ARRAY_SIZE(mmio_handlers)
-diff --git a/xen/arch/arm/io.h b/xen/arch/arm/io.h
-index 8cc5ca7..9a507f5 100644
---- a/xen/arch/arm/io.h
-+++ b/xen/arch/arm/io.h
-@@ -40,6 +40,7 @@ struct mmio_handler {
- };
- extern const struct mmio_handler vgic_distr_mmio_handler;
-+extern const struct mmio_handler uart0_mmio_handler;
- extern int handle_mmio(mmio_info_t *info);
-diff --git a/xen/arch/arm/vpl011.c b/xen/arch/arm/vpl011.c
-new file mode 100644
-index 0000000..1491dcc
---- /dev/null
-+++ b/xen/arch/arm/vpl011.c
-@@ -0,0 +1,155 @@
-+/*
-+ * xen/arch/arm/vpl011.c
-+ *
-+ * ARM PL011 UART Emulator (DEBUG)
-+ *
-+ * Ian Campbell <ian.campbell@citrix.com>
-+ * Copyright (c) 2012 Citrix Systems.
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+ * GNU General Public License for more details.
-+ */
-+
-+/*
-+ * This is not intended to be a full emulation of a PL011
-+ * device. Rather it is intended to provide a sufficient veneer of one
-+ * that early code (such as Linux's boot time decompressor) which
-+ * hardcodes output directly to such a device are able to make progress.
-+ *
-+ * This device is not intended to be enumerable or exposed to the OS
-+ * (e.g. via Device Tree).
-+ */
-+
-+#include <xen/config.h>
-+#include <xen/lib.h>
-+#include <xen/sched.h>
-+#include <xen/errno.h>
-+#include <xen/ctype.h>
-+
-+#include "io.h"
-+
-+#define UART0_BASE_ADDRESS 0x1c090000
-+
-+#define UARTDR 0x000
-+#define UARTFR 0x018
-+
-+int domain_uart0_init(struct domain *d)
-+{
-+    int rc;
-+    if ( d->domain_id == 0 )
-+        return 0;
-+
-+    spin_lock_init(&d->arch.uart0.lock);
-+    d->arch.uart0.idx = 0;
-+
-+    rc = -ENOMEM;
-+    d->arch.uart0.buf = xzalloc_array(char, VPL011_BUF_SIZE);
-+    if ( !d->arch.uart0.buf )
-+        goto out;
-+
-+    rc = 0;
-+out:
-+    return rc;
-+}
-+
-+static void uart0_print_char(char c)
-+{
-+    struct vpl011 *uart = &current->domain->arch.uart0;
-+
-+    /* Accept only printable characters, newline, and horizontal tab. */
-+    if ( !isprint(c) && (c != '\n') && (c != '\t') )
-+        return ;
-+
-+    spin_lock(&uart->lock);
-+    uart->buf[uart->idx++] = c;
-+    if ( (uart->idx == (VPL011_BUF_SIZE - 2)) || (c == '\n') )
-+    {
-+        if ( c != '\n' )
-+            uart->buf[uart->idx++] = '\n';
-+        uart->buf[uart->idx] = '\0';
-+        printk(XENLOG_G_DEBUG "DOM%u: %s",
-+               current->domain->domain_id, uart->buf);
-+        uart->idx = 0;
-+    }
-+    spin_unlock(&uart->lock);
-+}
-+
-+static int uart0_mmio_check(struct vcpu *v, paddr_t addr)
-+{
-+    return v->domain->domain_id && addr >= UART0_BASE_ADDRESS && addr < (UART0_BASE_ADDRESS+65536);
-+}
-+
-+static int uart0_mmio_read(struct vcpu *v, mmio_info_t *info)
-+{
-+    struct hsr_dabt dabt = info->dabt;
-+    struct cpu_user_regs *regs = guest_cpu_user_regs();
-+    uint32_t *r = &regs->r0 + dabt.reg;
-+    int offset = (int)(info->gpa - UART0_BASE_ADDRESS);
-+
-+    switch ( offset )
-+    {
-+    case UARTDR:
-+        *r = 0;
-+        return 1;
-+    case UARTFR:
-+        *r = 0x87; /* All holding registers empty, ready to send etc */
-+        return 1;
-+    default:
-+        printk("VPL011: unhandled read r%d offset %#08x\n",
-+               dabt.reg, offset);
-+        domain_crash_synchronous();
-+    }
-+}
-+
-+static int uart0_mmio_write(struct vcpu *v, mmio_info_t *info)
-+{
-+    struct hsr_dabt dabt = info->dabt;
-+    struct cpu_user_regs *regs = guest_cpu_user_regs();
-+    uint32_t *r = &regs->r0 + dabt.reg;
-+    int offset = (int)(info->gpa - UART0_BASE_ADDRESS);
-+    int val = (int)((*r) & 0xFF);
-+
-+    if ( dabt.size != 0 )
-+    {
-+        printk("VPL011: Invalid %d-byte write to offset %#x\n",
-+               1<<dabt.size, offset);
-+        domain_crash_synchronous();
-+    }
-+
-+    switch ( offset )
-+    {
-+    case UARTDR:
-+        uart0_print_char(val);
-+        return 1;
-+    case UARTFR:
-+        /* Silently ignore */
-+        return 1;
-+    default:
-+        printk("VPL011: unhandled write r%d=%"PRIx32" offset %#08x\n",
-+               dabt.reg, *r, offset);
-+        domain_crash_synchronous();
-+    }
-+}
-+
-+const struct mmio_handler uart0_mmio_handler = {
-+    .check_handler = uart0_mmio_check,
-+    .read_handler  = uart0_mmio_read,
-+    .write_handler = uart0_mmio_write,
-+};
-+
-+/*
-+ * Local variables:
-+ * mode: C
-+ * c-set-style: "BSD"
-+ * c-basic-offset: 4
-+ * indent-tabs-mode: nil
-+ * End:
-+ */
-+
-diff --git a/xen/arch/arm/vpl011.h b/xen/arch/arm/vpl011.h
-new file mode 100644
-index 0000000..952d812
---- /dev/null
-+++ b/xen/arch/arm/vpl011.h
-@@ -0,0 +1,34 @@
-+/*
-+ * xen/arch/arm/vpl011.h
-+ *
-+ * ARM PL011 Emulation Support
-+ *
-+ * Ian Campbell <ian.campbell@citrix.com>
-+ * Copyright (c) 2012 Citrix Systems.
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+ * GNU General Public License for more details.
-+ */
-+
-+#ifndef __ARCH_ARM_VPL011_H__
-+#define __ARCH_ARM_VPL011_H__
-+
-+extern int domain_uart0_init(struct domain *d);
-+
-+#endif
-+
-+/*
-+ * Local variables:
-+ * mode: C
-+ * c-set-style: "BSD"
-+ * c-basic-offset: 4
-+ * indent-tabs-mode: nil
-+ * End:
-+ */
-diff --git a/xen/include/asm-arm/domain.h b/xen/include/asm-arm/domain.h
-index 10ed540..f295a82 100644
---- a/xen/include/asm-arm/domain.h
-+++ b/xen/include/asm-arm/domain.h
-@@ -48,6 +48,14 @@ struct arch_domain
-         struct vgic_irq_rank *shared_irqs;
-         struct pending_irq *pending_irqs;
-     } vgic;
-+
-+    struct vpl011 {
-+#define VPL011_BUF_SIZE 128
-+        char                  *buf;
-+        int                    idx;
-+        spinlock_t             lock;
-+    } uart0;
-+
- }  __cacheline_aligned;
- struct arch_vcpu
--- 
-1.7.9.1
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1338565207-2888-19-git-send-email-ian.campbell@citrix.com> b/test/corpus/<1338565207-2888-19-git-send-email-ian.campbell@citrix.com>
deleted file mode 100644 (file)
index eda8165..0000000
+++ /dev/null
@@ -1,466 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Jun 01 16:49:43 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 01 Jun 2012 16:49:43 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SaU6W-00052l-6J
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 01 Jun 2012 16:49:43 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SaU32-00087T-Nj; Fri, 01 Jun 2012 15:45:56 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1SaU2z-000869-WD
-       for xen-devel@lists.xen.org; Fri, 01 Jun 2012 15:45:54 +0000
-Received: from [85.158.143.35:58684] by server-1.bemta-4.messagelabs.com id
-       83/C9-27869-1B3E8CF4; Fri, 01 Jun 2012 15:45:53 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-8.tower-21.messagelabs.com!1338565548!13156336!3
-X-Originating-IP: [66.165.176.63]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyNTY3NTA=\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 23433 invoked from network); 1 Jun 2012 15:45:51 -0000
-Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
-       by server-8.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
-       1 Jun 2012 15:45:51 -0000
-X-IronPort-AV: E=Sophos;i="4.75,698,1330923600"; d="scan'208";a="197207432"
-Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
-       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       01 Jun 2012 11:45:51 -0400
-Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
-       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
-       Fri, 1 Jun 2012 11:45:51 -0400
-Received: from [10.80.246.74] (helo=army.uk.xensource.com)     by
-       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
-       <ian.campbell@citrix.com>)      id 1SaTxQ-0006I5-O2;
-       Fri, 01 Jun 2012 16:40:08 +0100
-From: Ian Campbell <ian.campbell@citrix.com>
-To: xen-devel@lists.xen.org
-Date: Fri, 1 Jun 2012 15:39:48 +0000
-Message-ID: <1338565207-2888-19-git-send-email-ian.campbell@citrix.com>
-X-Mailer: git-send-email 1.7.9.1
-In-Reply-To: <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
-       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-MIME-Version: 1.0
-Cc: Ian Campbell <ian.campbell@citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: [Xen-devel] [PATCH 19/38] arm: context switch a bunch of guest
-       state.
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-I haven't investigated what if any of this could be done lazily.
-
-Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
----
- xen/arch/arm/domain.c         |  122 ++++++++++++++++++++++++++++++++++++++++-
- xen/arch/arm/gic.c            |   25 ++++++++-
- xen/arch/arm/gic.h            |    9 ++-
- xen/include/asm-arm/cpregs.h  |   29 +++++++++-
- xen/include/asm-arm/domain.h  |   33 ++++++++++-
- xen/include/public/arch-arm.h |    3 +
- 6 files changed, 210 insertions(+), 11 deletions(-)
-
-diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
-index d830980..a7fb227 100644
---- a/xen/arch/arm/domain.c
-+++ b/xen/arch/arm/domain.c
-@@ -36,12 +36,124 @@ void idle_loop(void)
- static void ctxt_switch_from(struct vcpu *p)
- {
-+    /* CP 15 */
-+    p->arch.csselr = READ_CP32(CSSELR);
-+
-+    /* Control Registers */
-+    p->arch.actlr = READ_CP32(ACTLR);
-+    p->arch.sctlr = READ_CP32(SCTLR);
-+    p->arch.cpacr = READ_CP32(CPACR);
-+
-+    p->arch.contextidr = READ_CP32(CONTEXTIDR);
-+    p->arch.tpidrurw = READ_CP32(TPIDRURW);
-+    p->arch.tpidruro = READ_CP32(TPIDRURO);
-+    p->arch.tpidrprw = READ_CP32(TPIDRPRW);
-+
-+    /* XXX only save these if ThumbEE e.g. ID_PFR0.THUMB_EE_SUPPORT */
-+    p->arch.teecr = READ_CP32(TEECR);
-+    p->arch.teehbr = READ_CP32(TEEHBR);
-+
-+    p->arch.joscr = READ_CP32(JOSCR);
-+    p->arch.jmcr = READ_CP32(JMCR);
-+
-+    isb();
-+
-+    /* MMU */
-+    p->arch.vbar = READ_CP32(VBAR);
-+    p->arch.ttbcr = READ_CP32(TTBCR);
-+    /* XXX save 64 bit TTBR if guest is LPAE */
-+    p->arch.ttbr0 = READ_CP32(TTBR0);
-+    p->arch.ttbr1 = READ_CP32(TTBR1);
-+
-+    p->arch.dacr = READ_CP32(DACR);
-+    p->arch.par = READ_CP64(PAR);
-+    p->arch.mair0 = READ_CP32(MAIR0);
-+    p->arch.mair1 = READ_CP32(MAIR1);
-+
-+    /* Fault Status */
-+    p->arch.dfar = READ_CP32(DFAR);
-+    p->arch.ifar = READ_CP32(IFAR);
-+    p->arch.dfsr = READ_CP32(DFSR);
-+    p->arch.ifsr = READ_CP32(IFSR);
-+    p->arch.adfsr = READ_CP32(ADFSR);
-+    p->arch.aifsr = READ_CP32(AIFSR);
-+
-+    /* XXX MPU */
-+
-+    /* XXX VFP */
-+
-+    /* XXX VGIC */
-+    gic_save_state(p);
-+
-+    isb();
-     context_saved(p);
- }
- static void ctxt_switch_to(struct vcpu *n)
- {
-+    uint32_t hcr;
-+
-+    hcr = READ_CP32(HCR);
-+    WRITE_CP32(hcr & ~HCR_VM, HCR);
-+    isb();
-+
-     p2m_load_VTTBR(n->domain);
-+    isb();
-+
-+    /* XXX VGIC */
-+    gic_restore_state(n);
-+
-+    /* XXX VFP */
-+
-+    /* XXX MPU */
-+
-+    /* Fault Status */
-+    WRITE_CP32(n->arch.dfar, DFAR);
-+    WRITE_CP32(n->arch.ifar, IFAR);
-+    WRITE_CP32(n->arch.dfsr, DFSR);
-+    WRITE_CP32(n->arch.ifsr, IFSR);
-+    WRITE_CP32(n->arch.adfsr, ADFSR);
-+    WRITE_CP32(n->arch.aifsr, AIFSR);
-+
-+    /* MMU */
-+    WRITE_CP32(n->arch.vbar, VBAR);
-+    WRITE_CP32(n->arch.ttbcr, TTBCR);
-+    /* XXX restore 64 bit TTBR if guest is LPAE */
-+    WRITE_CP32(n->arch.ttbr0, TTBR0);
-+    WRITE_CP32(n->arch.ttbr1, TTBR1);
-+
-+    WRITE_CP32(n->arch.dacr, DACR);
-+    WRITE_CP64(n->arch.par, PAR);
-+    WRITE_CP32(n->arch.mair0, MAIR0);
-+    WRITE_CP32(n->arch.mair1, MAIR1);
-+    isb();
-+
-+    /* Control Registers */
-+    WRITE_CP32(n->arch.actlr, ACTLR);
-+    WRITE_CP32(n->arch.sctlr, SCTLR);
-+    WRITE_CP32(n->arch.cpacr, CPACR);
-+
-+    WRITE_CP32(n->arch.contextidr, CONTEXTIDR);
-+    WRITE_CP32(n->arch.tpidrurw, TPIDRURW);
-+    WRITE_CP32(n->arch.tpidruro, TPIDRURO);
-+    WRITE_CP32(n->arch.tpidrprw, TPIDRPRW);
-+
-+    /* XXX only restore these if ThumbEE e.g. ID_PFR0.THUMB_EE_SUPPORT */
-+    WRITE_CP32(n->arch.teecr, TEECR);
-+    WRITE_CP32(n->arch.teehbr, TEEHBR);
-+
-+    WRITE_CP32(n->arch.joscr, JOSCR);
-+    WRITE_CP32(n->arch.jmcr, JMCR);
-+
-+    isb();
-+
-+    /* CP 15 */
-+    WRITE_CP32(n->arch.csselr, CSSELR);
-+
-+    isb();
-+
-+    WRITE_CP32(hcr, HCR);
-+    isb();
- }
- static void schedule_tail(struct vcpu *prev)
-@@ -255,6 +367,7 @@ static int is_guest_psr(uint32_t psr)
- int arch_set_info_guest(
-     struct vcpu *v, vcpu_guest_context_u c)
- {
-+    struct vcpu_guest_context *ctxt = c.nat;
-     struct cpu_user_regs *regs = &c.nat->user_regs;
-     if ( !is_guest_psr(regs->cpsr) )
-@@ -273,10 +386,13 @@ int arch_set_info_guest(
-     v->arch.cpu_info->guest_cpu_user_regs = *regs;
-+    v->arch.sctlr = ctxt->sctlr;
-+    v->arch.ttbr0 = ctxt->ttbr0;
-+    v->arch.ttbr1 = ctxt->ttbr1;
-+    v->arch.ttbcr = ctxt->ttbcr;
-+
-     /* XXX other state:
--     * - SCTLR
--     * - TTBR0/1
--     * - TTBCR
-+     * -
-      */
-     //if ( flags & VGCF_online )
-diff --git a/xen/arch/arm/gic.c b/xen/arch/arm/gic.c
-index 1a2b95f..339c327 100644
---- a/xen/arch/arm/gic.c
-+++ b/xen/arch/arm/gic.c
-@@ -61,6 +61,30 @@ static struct {
- irq_desc_t irq_desc[NR_IRQS];
- unsigned nr_lrs;
-+void gic_save_state(struct vcpu *v)
-+{
-+    int i;
-+
-+    for ( i=0; i<nr_lrs; i++)
-+        v->arch.gic_lr[i] = GICH[GICH_LR + i];
-+    /* Disable until next VCPU scheduled */
-+    GICH[GICH_HCR] = 0;
-+    isb();
-+}
-+
-+void gic_restore_state(struct vcpu *v)
-+{
-+    int i;
-+
-+    if ( is_idle_vcpu(v) )
-+        return;
-+
-+    for ( i=0; i<nr_lrs; i++)
-+        GICH[GICH_LR + i] = v->arch.gic_lr[i];
-+    GICH[GICH_HCR] = GICH_HCR_EN;
-+    isb();
-+}
-+
- static unsigned int gic_irq_startup(struct irq_desc *desc)
- {
-     uint32_t enabler;
-@@ -263,7 +287,6 @@ static void __cpuinit gic_hyp_init(void)
-     vtr = GICH[GICH_VTR];
-     nr_lrs  = (vtr & GICH_VTR_NRLRGS) + 1;
--    GICH[GICH_HCR] = GICH_HCR_EN;
-     GICH[GICH_MISR] = GICH_MISR_EOI;
- }
-diff --git a/xen/arch/arm/gic.h b/xen/arch/arm/gic.h
-index ff8d0a2..ac9cf3a 100644
---- a/xen/arch/arm/gic.h
-+++ b/xen/arch/arm/gic.h
-@@ -70,8 +70,8 @@
- #define GICH_MISR       (0x10/4)
- #define GICH_EISR0      (0x20/4)
- #define GICH_EISR1      (0x24/4)
--#define GICH_ELRSR0     (0x30/4)
--#define GICH_ELRSR1     (0x34/4)
-+#define GICH_ELSR0      (0x30/4)
-+#define GICH_ELSR1      (0x34/4)
- #define GICH_APR        (0xF0/4)
- #define GICH_LR         (0x100/4)
-@@ -149,6 +149,11 @@ extern void gic_init_secondary_cpu(void);
- extern void gic_disable_cpu(void);
- /* setup the gic virtual interface for a guest */
- extern void gicv_setup(struct domain *d);
-+
-+/* Context switch */
-+extern void gic_save_state(struct vcpu *v);
-+extern void gic_restore_state(struct vcpu *v);
-+
- #endif
- /*
-diff --git a/xen/include/asm-arm/cpregs.h b/xen/include/asm-arm/cpregs.h
-index 7a0b49a..bd46942 100644
---- a/xen/include/asm-arm/cpregs.h
-+++ b/xen/include/asm-arm/cpregs.h
-@@ -88,6 +88,19 @@
-  * arguments, which are cp,opc1,crn,crm,opc2.
-  */
-+/* Coprocessor 14 */
-+
-+/* CP14 CR0: */
-+#define TEECR           p14,6,c0,c0,0   /* ThumbEE Configuration Register */
-+
-+/* CP14 CR1: */
-+#define TEEHBR          p14,6,c1,c0,0   /* ThumbEE Handler Base Register */
-+#define JOSCR           p14,7,c1,c0,0   /* Jazelle OS Control Register */
-+
-+/* CP14 CR2: */
-+#define JMCR            p14,7,c2,c0,0   /* Jazelle Main Configuration Register */
-+
-+
- /* Coprocessor 15 */
- /* CP15 CR0: CPUID and Cache Type Registers */
-@@ -112,6 +125,8 @@
- /* CP15 CR1: System Control Registers */
- #define SCTLR           p15,0,c1,c0,0   /* System Control Register */
-+#define ACTLR           p15,0,c1,c0,1   /* Auxiliary Control Register */
-+#define CPACR           p15,0,c1,c0,2   /* Coprocessor Access Control Register */
- #define SCR             p15,0,c1,c1,0   /* Secure Configuration Register */
- #define NSACR           p15,0,c1,c1,2   /* Non-Secure Access Control Register */
- #define HSCTLR          p15,4,c1,c0,0   /* Hyp. System Control Register */
-@@ -127,12 +142,15 @@
- #define VTTBR           p15,6,c2        /* Virtualization Translation Table Base Register */
- /* CP15 CR3: Domain Access Control Register */
-+#define DACR            p15,0,c3,c0,0   /* Domain Access Control Register */
- /* CP15 CR4: */
- /* CP15 CR5: Fault Status Registers */
- #define DFSR            p15,0,c5,c0,0   /* Data Fault Status Register */
- #define IFSR            p15,0,c5,c0,1   /* Instruction Fault Status Register */
-+#define ADFSR           p15,0,c5,c1,0   /* Auxiliary Data Fault Status Register */
-+#define AIFSR           p15,0,c5,c1,1   /* Auxiliary Instruction Fault Status Register */
- #define HSR             p15,4,c5,c2,0   /* Hyp. Syndrome Register */
- /* CP15 CR6: Fault Address Registers */
-@@ -144,6 +162,7 @@
- /* CP15 CR7: Cache and address translation operations */
- #define PAR             p15,0,c7        /* Physical Address Register */
-+
- #define ICIALLUIS       p15,0,c7,c1,0   /* Invalidate all instruction caches to PoU inner shareable */
- #define BPIALLIS        p15,0,c7,c1,6   /* Invalidate entire branch predictor array inner shareable */
- #define ICIALLU         p15,0,c7,c5,0   /* Invalidate all instruction caches to PoU */
-@@ -192,20 +211,24 @@
- /* CP15 CR9: */
- /* CP15 CR10: */
--#define MAIR0           p15,0,c10,c2,0  /* Memory Attribute Indirection Register 0 */
--#define MAIR1           p15,0,c10,c2,1  /* Memory Attribute Indirection Register 1 */
-+#define MAIR0           p15,0,c10,c2,0  /* Memory Attribute Indirection Register 0 AKA PRRR */
-+#define MAIR1           p15,0,c10,c2,1  /* Memory Attribute Indirection Register 1 AKA NMRR */
- #define HMAIR0          p15,4,c10,c2,0  /* Hyp. Memory Attribute Indirection Register 0 */
- #define HMAIR1          p15,4,c10,c2,1  /* Hyp. Memory Attribute Indirection Register 1 */
- /* CP15 CR11: DMA Operations for TCM Access */
- /* CP15 CR12:  */
-+#define VBAR            p15,0,c12,c0,0  /* Vector Base Address Register */
- #define HVBAR           p15,4,c12,c0,0  /* Hyp. Vector Base Address Register */
- /* CP15 CR13:  */
- #define FCSEIDR         p15,0,c13,c0,0  /* FCSE Process ID Register */
- #define CONTEXTIDR      p15,0,c13,c0,1  /* Context ID Register */
--#define HTPIDR          p15,4,c13,c0,2  /* Hyp. Software Thread ID Register */
-+#define TPIDRURW        p15,0,c13,c0,2  /* Software Thread ID, User, R/W */
-+#define TPIDRURO        p15,0,c13,c0,3  /* Software Thread ID, User, R/O */
-+#define TPIDRPRW        p15,0,c13,c0,4  /* Software Thread ID, Priveleged */
-+#define HTPIDR          p15,4,c13,c0,2  /* HYp Software Thread Id Register */
- /* CP15 CR14:  */
- #define CNTPCT          p15,0,c14       /* Time counter value */
-diff --git a/xen/include/asm-arm/domain.h b/xen/include/asm-arm/domain.h
-index f295a82..620b26e 100644
---- a/xen/include/asm-arm/domain.h
-+++ b/xen/include/asm-arm/domain.h
-@@ -81,8 +81,37 @@ struct arch_vcpu
-      */
-     struct cpu_info *cpu_info;
--    uint32_t sctlr;
--    uint32_t ttbr0, ttbr1, ttbcr;
-+    /* Fault Status */
-+    uint32_t dfar, ifar;
-+    uint32_t dfsr, ifsr;
-+    uint32_t adfsr, aifsr;
-+
-+    /* MMU */
-+    uint32_t vbar;
-+    uint32_t ttbcr;
-+    uint32_t ttbr0, ttbr1;
-+
-+    uint32_t dacr;
-+    uint64_t par;
-+    uint32_t mair0, mair1;
-+
-+    /* Control Registers */
-+    uint32_t actlr, sctlr;
-+    uint32_t cpacr;
-+
-+    uint32_t contextidr;
-+    uint32_t tpidrurw;
-+    uint32_t tpidruro;
-+    uint32_t tpidrprw;
-+
-+    uint32_t teecr, teehbr;
-+    uint32_t joscr, jmcr;
-+
-+    /* CP 15 */
-+    uint32_t csselr;
-+
-+    uint32_t gic_hcr, gic_vmcr, gic_apr;
-+    uint32_t gic_lr[64];
-     struct {
-         struct vgic_irq_rank private_irqs;
-diff --git a/xen/include/public/arch-arm.h b/xen/include/public/arch-arm.h
-index e439727..e915cbf 100644
---- a/xen/include/public/arch-arm.h
-+++ b/xen/include/public/arch-arm.h
-@@ -124,6 +124,9 @@ typedef uint32_t xen_ulong_t;
- struct vcpu_guest_context {
-     struct cpu_user_regs user_regs;         /* User-level CPU registers     */
-+
-+    uint32_t sctlr;
-+    uint32_t ttbr0, ttbr1, ttbcr;
- };
- typedef struct vcpu_guest_context vcpu_guest_context_t;
- DEFINE_XEN_GUEST_HANDLE(vcpu_guest_context_t);
--- 
-1.7.9.1
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1338565207-2888-2-git-send-email-ian.campbell@citrix.com> b/test/corpus/<1338565207-2888-2-git-send-email-ian.campbell@citrix.com>
deleted file mode 100644 (file)
index 9ab299f..0000000
+++ /dev/null
@@ -1,186 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Jun 01 16:43:49 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 01 Jun 2012 16:43:49 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SaU0r-0004te-GC
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 01 Jun 2012 16:43:49 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SaTxV-0006eC-QI; Fri, 01 Jun 2012 15:40:13 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1SaTxU-0006dq-5x
-       for xen-devel@lists.xen.org; Fri, 01 Jun 2012 15:40:12 +0000
-Received: from [85.158.139.83:45040] by server-9.bemta-5.messagelabs.com id
-       EC/D2-27779-B52E8CF4; Fri, 01 Jun 2012 15:40:11 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-8.tower-182.messagelabs.com!1338565208!17780788!2
-X-Originating-IP: [66.165.176.63]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyNTY3NTA=\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 1508 invoked from network); 1 Jun 2012 15:40:10 -0000
-Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
-       by server-8.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
-       1 Jun 2012 15:40:10 -0000
-X-IronPort-AV: E=Sophos;i="4.75,698,1330923600"; d="scan'208";a="197206651"
-Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
-       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       01 Jun 2012 11:40:08 -0400
-Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
-       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
-       Fri, 1 Jun 2012 11:40:08 -0400
-Received: from [10.80.246.74] (helo=army.uk.xensource.com)     by
-       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
-       <ian.campbell@citrix.com>)      id 1SaTxP-0006I5-MA;
-       Fri, 01 Jun 2012 16:40:07 +0100
-From: Ian Campbell <ian.campbell@citrix.com>
-To: xen-devel@lists.xen.org
-Date: Fri, 1 Jun 2012 15:39:31 +0000
-Message-ID: <1338565207-2888-2-git-send-email-ian.campbell@citrix.com>
-X-Mailer: git-send-email 1.7.9.1
-In-Reply-To: <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
-       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-MIME-Version: 1.0
-Cc: Ian Campbell <ian.campbell@citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: [Xen-devel] [PATCH 02/38] arm: handy function to print a walk of
-       the hypervisor page tables
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-Useful for debug but not actually used in this patch.
-
-Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
----
- xen/arch/arm/mm.c          |   53 ++++++++++++++++++++++++++++++++++++++++++-
- xen/include/asm-arm/page.h |    2 +
- 2 files changed, 53 insertions(+), 2 deletions(-)
-
-diff --git a/xen/arch/arm/mm.c b/xen/arch/arm/mm.c
-index 10ff883..c332e4c 100644
---- a/xen/arch/arm/mm.c
-+++ b/xen/arch/arm/mm.c
-@@ -42,6 +42,8 @@ static lpae_t xen_xenmap[LPAE_ENTRIES] __attribute__((__aligned__(4096)));
- /* Non-boot CPUs use this to find the correct pagetables. */
- uint64_t boot_httbr;
-+static paddr_t xen_phys_offset;
-+
- /* Limits of the Xen heap */
- unsigned long xenheap_mfn_start, xenheap_mfn_end;
- unsigned long xenheap_virt_end;
-@@ -53,6 +55,53 @@ unsigned long max_page;
- extern char __init_begin[], __init_end[];
-+void dump_pt_walk(uint32_t addr)
-+{
-+    paddr_t second_ma, third_ma;
-+    lpae_t *first = NULL, *second = NULL, *third = NULL;
-+    uint64_t httbr = READ_CP64(HTTBR);
-+
-+    printk("Walking Hypervisor VA %#"PRIx32" via HTTBR %#"PRIx64"\n",
-+           addr, httbr);
-+
-+    BUG_ON( (lpae_t *)(unsigned long)(httbr - xen_phys_offset) != xen_pgtable );
-+    first = xen_pgtable;
-+    printk("1ST[%#03"PRIx32"] = %p[%#03"PRIx32"] = %#llx = %#016llx\n",
-+           first_table_offset(addr),
-+           first, first_table_offset(addr),
-+           virt_to_maddr(&first[first_table_offset(addr)]),
-+           first[first_table_offset(addr)].bits);
-+
-+    if ( !first[first_table_offset(addr)].pt.valid ||
-+         !first[first_table_offset(addr)].pt.table )
-+        goto done;
-+
-+    second_ma = (paddr_t)first[first_table_offset(addr)].pt.base << PAGE_SHIFT;
-+    second = (lpae_t *)(unsigned long)(second_ma - xen_phys_offset);
-+    printk("2ND[%#03"PRIx32"] = %p[%#03"PRIx32"] = %#llx = %#016llx\n",
-+           second_table_offset(addr),
-+           second, second_table_offset(addr),
-+           virt_to_maddr(&second[second_table_offset(addr)]),
-+           second[second_table_offset(addr)].bits);
-+    if ( !second[second_table_offset(addr)].pt.valid ||
-+         !second[second_table_offset(addr)].pt.table )
-+        goto done;
-+
-+    third_ma = (paddr_t)second[second_table_offset(addr)].pt.base << PAGE_SHIFT;
-+    third = (lpae_t *)(unsigned long)(third_ma - xen_phys_offset);
-+    printk("3RD[%#03"PRIx32"] = %p[%#03"PRIx32"] = %#llx = %#016llx\n",
-+           third_table_offset(addr),
-+           third, third_table_offset(addr),
-+           virt_to_maddr(&third[third_table_offset(addr)]),
-+           third[third_table_offset(addr)].bits);
-+    if ( !third[third_table_offset(addr)].pt.valid ||
-+         !third[third_table_offset(addr)].pt.table )
-+        goto done;
-+
-+done:
-+    return;
-+}
-+
- /* Map a 4k page in a fixmap entry */
- void set_fixmap(unsigned map, unsigned long mfn, unsigned attributes)
- {
-@@ -173,8 +222,8 @@ void __init setup_pagetables(unsigned long boot_phys_offset)
-     flush_xen_data_tlb_va(dest_va);
-     /* Calculate virt-to-phys offset for the new location */
--    phys_offset = xen_paddr - (unsigned long) _start;
--
-+    xen_phys_offset = phys_offset = xen_paddr - (unsigned long) _start;
-+    
-     /* Copy */
-     memcpy((void *) dest_va, _start, _end - _start);
-diff --git a/xen/include/asm-arm/page.h b/xen/include/asm-arm/page.h
-index b6df64e..22c56b5 100644
---- a/xen/include/asm-arm/page.h
-+++ b/xen/include/asm-arm/page.h
-@@ -312,6 +312,8 @@ static inline uint64_t gva_to_ipa(uint32_t va)
- /* Bits in the PAR returned by va_to_par */
- #define PAR_FAULT 0x1
-+extern void dump_pt_walk(uint32_t addr);
-+
- #endif /* __ASSEMBLY__ */
- /* These numbers add up to a 39-bit input address space.  The  ARMv7-A
--- 
-1.7.9.1
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1338565207-2888-20-git-send-email-ian.campbell@citrix.com> b/test/corpus/<1338565207-2888-20-git-send-email-ian.campbell@citrix.com>
deleted file mode 100644 (file)
index a95c94d..0000000
+++ /dev/null
@@ -1,129 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Jun 01 16:49:35 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 01 Jun 2012 16:49:35 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SaU6O-00050R-DN
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 01 Jun 2012 16:49:35 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SaU3D-0008M4-C0; Fri, 01 Jun 2012 15:46:07 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1SaU39-0008D3-Jb
-       for xen-devel@lists.xen.org; Fri, 01 Jun 2012 15:46:03 +0000
-Received: from [85.158.143.99:51510] by server-1.bemta-4.messagelabs.com id
-       7F/F9-27869-BB3E8CF4; Fri, 01 Jun 2012 15:46:03 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-5.tower-216.messagelabs.com!1338565558!30625361!4
-X-Originating-IP: [66.165.176.63]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyNTY3NTA=\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 9266 invoked from network); 1 Jun 2012 15:46:01 -0000
-Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
-       by server-5.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
-       1 Jun 2012 15:46:01 -0000
-X-IronPort-AV: E=Sophos;i="4.75,698,1330923600"; d="scan'208";a="197207466"
-Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
-       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       01 Jun 2012 11:46:00 -0400
-Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
-       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
-       Fri, 1 Jun 2012 11:46:00 -0400
-Received: from [10.80.246.74] (helo=army.uk.xensource.com)     by
-       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
-       <ian.campbell@citrix.com>)      id 1SaTxQ-0006I5-PT;
-       Fri, 01 Jun 2012 16:40:08 +0100
-From: Ian Campbell <ian.campbell@citrix.com>
-To: xen-devel@lists.xen.org
-Date: Fri, 1 Jun 2012 15:39:49 +0000
-Message-ID: <1338565207-2888-20-git-send-email-ian.campbell@citrix.com>
-X-Mailer: git-send-email 1.7.9.1
-In-Reply-To: <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
-       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-MIME-Version: 1.0
-Cc: Ian Campbell <ian.campbell@citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: [Xen-devel] [PATCH 20/38] arm: dump a page table walk when
-       va_to_par fails.
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
----
- xen/include/asm-arm/page.h |   12 ++++++++----
- 1 files changed, 8 insertions(+), 4 deletions(-)
-
-diff --git a/xen/include/asm-arm/page.h b/xen/include/asm-arm/page.h
-index bb1729a..f36bf6f 100644
---- a/xen/include/asm-arm/page.h
-+++ b/xen/include/asm-arm/page.h
-@@ -254,6 +254,9 @@ static inline void flush_guest_tlb(void)
-     WRITE_CP32(r0 /* dummy */, TLBIALLNSNH);
- }
-+extern void dump_pt_walk(uint32_t addr);
-+extern void dump_p2m_lookup(struct domain *d, paddr_t addr);
-+
- /* Ask the MMU to translate a VA for us */
- static inline uint64_t __va_to_par(uint32_t va)
- {
-@@ -270,7 +273,11 @@ static inline uint64_t va_to_par(uint32_t va)
- {
-     uint64_t par = __va_to_par(va);
-     /* It is not OK to call this with an invalid VA */
--    if ( par & PAR_F ) panic_PAR(par, "Hypervisor");
-+    if ( par & PAR_F )
-+    {
-+        dump_pt_walk(va);
-+        panic_PAR(par, "Hypervisor");
-+    }
-     return par;
- }
-@@ -314,9 +321,6 @@ static inline uint64_t gva_to_ipa(uint32_t va)
- /* Bits in the PAR returned by va_to_par */
- #define PAR_FAULT 0x1
--extern void dump_pt_walk(uint32_t addr);
--extern void dump_p2m_lookup(struct domain *d, paddr_t addr);
--
- #endif /* __ASSEMBLY__ */
- /* These numbers add up to a 39-bit input address space.  The  ARMv7-A
--- 
-1.7.9.1
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1338565207-2888-21-git-send-email-ian.campbell@citrix.com> b/test/corpus/<1338565207-2888-21-git-send-email-ian.campbell@citrix.com>
deleted file mode 100644 (file)
index c76ba3d..0000000
+++ /dev/null
@@ -1,223 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Jun 01 16:49:34 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 01 Jun 2012 16:49:34 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SaU6O-000509-5X
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 01 Jun 2012 16:49:34 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SaU35-00089Z-I4; Fri, 01 Jun 2012 15:45:59 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1SaU32-00087S-S6
-       for xen-devel@lists.xen.org; Fri, 01 Jun 2012 15:45:57 +0000
-Received: from [85.158.138.51:33247] by server-12.bemta-3.messagelabs.com id
-       0E/1D-29860-4B3E8CF4; Fri, 01 Jun 2012 15:45:56 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-4.tower-174.messagelabs.com!1338565552!30346150!2
-X-Originating-IP: [66.165.176.89]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNDc3NzE=\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 25470 invoked from network); 1 Jun 2012 15:45:55 -0000
-Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
-       by server-4.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
-       1 Jun 2012 15:45:55 -0000
-X-IronPort-AV: E=Sophos;i="4.75,698,1330923600"; d="scan'208";a="26548473"
-Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
-       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       01 Jun 2012 11:45:54 -0400
-Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
-       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
-       Fri, 1 Jun 2012 11:45:54 -0400
-Received: from [10.80.246.74] (helo=army.uk.xensource.com)     by
-       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
-       <ian.campbell@citrix.com>)      id 1SaTxQ-0006I5-Qj;
-       Fri, 01 Jun 2012 16:40:08 +0100
-From: Ian Campbell <ian.campbell@citrix.com>
-To: xen-devel@lists.xen.org
-Date: Fri, 1 Jun 2012 15:39:50 +0000
-Message-ID: <1338565207-2888-21-git-send-email-ian.campbell@citrix.com>
-X-Mailer: git-send-email 1.7.9.1
-In-Reply-To: <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
-       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-MIME-Version: 1.0
-Cc: Ian Campbell <ian.campbell@citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: [Xen-devel] [PATCH 21/38] arm: dump guest s1 walk on data abort
-       which is not a stage 2 issue.
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
----
- xen/arch/arm/traps.c            |   75 +++++++++++++++++++++++++++++++++++---
- xen/include/asm-arm/processor.h |    1 +
- 2 files changed, 70 insertions(+), 6 deletions(-)
-
-diff --git a/xen/arch/arm/traps.c b/xen/arch/arm/traps.c
-index 40bb375..35907ee 100644
---- a/xen/arch/arm/traps.c
-+++ b/xen/arch/arm/traps.c
-@@ -28,6 +28,7 @@
- #include <xen/errno.h>
- #include <xen/hypercall.h>
- #include <xen/softirq.h>
-+#include <xen/domain_page.h>
- #include <public/xen.h>
- #include <asm/regs.h>
- #include <asm/cpregs.h>
-@@ -528,6 +529,62 @@ static void do_cp15_64(struct cpu_user_regs *regs,
- }
-+void dump_guest_s1_walk(struct domain *d, uint32_t addr)
-+{
-+    uint32_t ttbcr = READ_CP32(TTBCR);
-+    uint32_t ttbr0 = READ_CP32(TTBR0);
-+    paddr_t paddr;
-+    uint32_t offset;
-+    uint32_t *first = NULL, *second = NULL;
-+
-+    printk("dom%d VA %#010"PRIx32"\n", d->domain_id, addr);
-+    printk("    TTBCR: %#010"PRIx32"\n", ttbcr);
-+    printk("    TTBR0: %#010"PRIx32" = %#"PRIpaddr"\n",
-+           ttbr0, p2m_lookup(d, ttbr0 & PAGE_MASK));
-+
-+    if ( ttbcr & TTBCR_EAE )
-+    {
-+        printk("Cannot handle LPAE guest PT walk\n");
-+        return;
-+    }
-+    if ( (ttbcr & TTBCR_N_MASK) != 0 )
-+    {
-+        printk("Cannot handle TTBR1 guest walks\n");
-+        return;
-+    }
-+
-+    paddr = p2m_lookup(d, ttbr0 & PAGE_MASK);
-+    if ( paddr == INVALID_PADDR )
-+    {
-+        printk("Failed TTBR0 maddr lookup\n");
-+        goto done;
-+    }
-+    first = map_domain_page(paddr>>PAGE_SHIFT);
-+
-+    offset = addr >> (12+10);
-+    printk("1ST[%#03"PRIx32"] (%#"PRIpaddr") = %#010"PRIx32"\n",
-+           offset, paddr, first[offset]);
-+    if ( !(first[offset] & 0x1) ||
-+         !(first[offset] & 0x2) )
-+        goto done;
-+
-+    paddr = p2m_lookup(d, first[offset] & PAGE_MASK);
-+
-+    if ( paddr == INVALID_PADDR )
-+    {
-+        printk("Failed L1 entry maddr lookup\n");
-+        goto done;
-+    }
-+    second = map_domain_page(paddr>>PAGE_SHIFT);
-+    offset = (addr >> 12) & 0x3FF;
-+    printk("2ND[%#03"PRIx32"] (%#"PRIpaddr") = %#010"PRIx32"\n",
-+           offset, paddr, second[offset]);
-+
-+done:
-+    if (second) unmap_domain_page(second);
-+    if (first) unmap_domain_page(first);
-+}
-+
- static void do_trap_data_abort_guest(struct cpu_user_regs *regs,
-                                      struct hsr_dabt dabt)
- {
-@@ -535,11 +592,12 @@ static void do_trap_data_abort_guest(struct cpu_user_regs *regs,
-     int level = -1;
-     mmio_info_t info;
-+    info.dabt = dabt;
-+    info.gva = READ_CP32(HDFAR);
-+
-     if (dabt.s1ptw)
-         goto bad_data_abort;
--    info.dabt = dabt;
--    info.gva = READ_CP32(HDFAR);
-     info.gpa = gva_to_ipa(info.gva);
-     if (handle_mmio(&info))
-@@ -553,18 +611,23 @@ bad_data_abort:
-     msg = decode_fsc( dabt.dfsc, &level);
-     printk("Guest data abort: %s%s%s\n"
--           "    gva=%"PRIx32" gpa=%"PRIpaddr"\n",
-+           "    gva=%"PRIx32"\n",
-            msg, dabt.s1ptw ? " S2 during S1" : "",
-            fsc_level_str(level),
--           info.gva, info.gpa);
--    if (dabt.valid)
-+           info.gva);
-+    if ( !dabt.s1ptw )
-+        printk("    gpa=%"PRIpaddr"\n", info.gpa);
-+    if ( dabt.valid )
-         printk("    size=%d sign=%d write=%d reg=%d\n",
-                dabt.size, dabt.sign, dabt.write, dabt.reg);
-     else
-         printk("    instruction syndrome invalid\n");
-     printk("    eat=%d cm=%d s1ptw=%d dfsc=%d\n",
-            dabt.eat, dabt.cache, dabt.s1ptw, dabt.dfsc);
--
-+    if ( !dabt.s1ptw )
-+        dump_p2m_lookup(current->domain, info.gpa);
-+    else
-+        dump_guest_s1_walk(current->domain, info.gva);
-     show_execution_state(regs);
-     panic("Unhandled guest data abort\n");
- }
-diff --git a/xen/include/asm-arm/processor.h b/xen/include/asm-arm/processor.h
-index ec6fb48..81924a4 100644
---- a/xen/include/asm-arm/processor.h
-+++ b/xen/include/asm-arm/processor.h
-@@ -25,6 +25,7 @@
- #define PSR_JAZELLE     (1<<24)       /* Jazelle Mode */
- /* TTBCR Translation Table Base Control Register */
-+#define TTBCR_EAE    0x80000000
- #define TTBCR_N_MASK 0x07
- #define TTBCR_N_16KB 0x00
- #define TTBCR_N_8KB  0x01
--- 
-1.7.9.1
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1338565207-2888-22-git-send-email-ian.campbell@citrix.com> b/test/corpus/<1338565207-2888-22-git-send-email-ian.campbell@citrix.com>
deleted file mode 100644 (file)
index 3320a82..0000000
+++ /dev/null
@@ -1,206 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Jun 01 16:49:21 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 01 Jun 2012 16:49:21 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SaU6D-0004xQ-R4
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 01 Jun 2012 16:49:21 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SaU3G-0008Rb-GB; Fri, 01 Jun 2012 15:46:10 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1SaU3C-0008D3-44
-       for xen-devel@lists.xen.org; Fri, 01 Jun 2012 15:46:06 +0000
-Received: from [85.158.143.99:6058] by server-1.bemta-4.messagelabs.com id
-       9C/0A-27869-DB3E8CF4; Fri, 01 Jun 2012 15:46:05 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-5.tower-216.messagelabs.com!1338565558!30625361!8
-X-Originating-IP: [66.165.176.63]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyNTY3NTA=\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 9430 invoked from network); 1 Jun 2012 15:46:04 -0000
-Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
-       by server-5.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
-       1 Jun 2012 15:46:04 -0000
-X-IronPort-AV: E=Sophos;i="4.75,698,1330923600"; d="scan'208";a="197207485"
-Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
-       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       01 Jun 2012 11:46:03 -0400
-Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
-       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
-       Fri, 1 Jun 2012 11:46:03 -0400
-Received: from [10.80.246.74] (helo=army.uk.xensource.com)     by
-       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
-       <ian.campbell@citrix.com>)      id 1SaTxQ-0006I5-S2;
-       Fri, 01 Jun 2012 16:40:08 +0100
-From: Ian Campbell <ian.campbell@citrix.com>
-To: xen-devel@lists.xen.org
-Date: Fri, 1 Jun 2012 15:39:51 +0000
-Message-ID: <1338565207-2888-22-git-send-email-ian.campbell@citrix.com>
-X-Mailer: git-send-email 1.7.9.1
-In-Reply-To: <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
-       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-MIME-Version: 1.0
-Cc: Ian Campbell <ian.campbell@citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: [Xen-devel] [PATCH 22/38] arm: implement vcpu_show_execution_state
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
----
- xen/arch/arm/dummy.S |    1 -
- xen/arch/arm/traps.c |   56 +++++++++++++++++++++++++++++++++++++++++++++----
- 2 files changed, 51 insertions(+), 6 deletions(-)
-
-diff --git a/xen/arch/arm/dummy.S b/xen/arch/arm/dummy.S
-index 03f7489..cab9522 100644
---- a/xen/arch/arm/dummy.S
-+++ b/xen/arch/arm/dummy.S
-@@ -21,7 +21,6 @@ DUMMY(pirq_set_affinity);
- DUMMY(arch_get_info_guest);
- DUMMY(arch_vcpu_reset);
- NOP(update_vcpu_system_time);
--DUMMY(vcpu_show_execution_state);
- /* Page Reference & Type Maintenance */
- DUMMY(get_page);
-diff --git a/xen/arch/arm/traps.c b/xen/arch/arm/traps.c
-index 35907ee..ec74298 100644
---- a/xen/arch/arm/traps.c
-+++ b/xen/arch/arm/traps.c
-@@ -170,7 +170,13 @@ void panic_PAR(uint64_t par, const char *when)
-     panic("Error during %s-to-physical address translation\n", when);
- }
--void show_registers(struct cpu_user_regs *regs)
-+struct reg_ctxt {
-+    uint32_t sctlr;
-+    uint32_t ttbr0, ttbr1, ttbcr;
-+};
-+static void _show_registers(struct cpu_user_regs *regs,
-+                            struct reg_ctxt *ctxt,
-+                            int guest_mode)
- {
-     static const char *mode_strings[] = {
-        [PSR_MODE_USR] = "USR",
-@@ -187,7 +193,7 @@ void show_registers(struct cpu_user_regs *regs)
-     print_xen_info();
-     printk("CPU:    %d\n", smp_processor_id());
-     printk("PC:     %08"PRIx32, regs->pc);
--    if ( !guest_mode(regs) )
-+    if ( !guest_mode )
-             print_symbol(" %s", regs->pc);
-     printk("\n");
-     printk("CPSR:   %08"PRIx32" MODE:%s\n", regs->cpsr,
-@@ -199,7 +205,7 @@ void show_registers(struct cpu_user_regs *regs)
-     printk("     R8: %08"PRIx32" R9: %08"PRIx32" R10:%08"PRIx32" R11:%08"PRIx32" R12:%08"PRIx32"\n",
-            regs->r8, regs->r9, regs->r10, regs->r11, regs->r12);
--    if ( guest_mode(regs) )
-+    if ( guest_mode )
-     {
-         printk("USR: SP: %08"PRIx32" LR: %08"PRIx32" CPSR:%08"PRIx32"\n",
-                regs->sp_usr, regs->lr_usr, regs->cpsr);
-@@ -217,8 +223,8 @@ void show_registers(struct cpu_user_regs *regs)
-                regs->r8_fiq, regs->r9_fiq, regs->r10_fiq, regs->r11_fiq, regs->r11_fiq);
-         printk("\n");
-         printk("TTBR0 %08"PRIx32" TTBR1 %08"PRIx32" TTBCR %08"PRIx32"\n",
--               READ_CP32(TTBR0), READ_CP32(TTBR1), READ_CP32(TTBCR));
--        printk("SCTLR %08"PRIx32"\n", READ_CP32(SCTLR));
-+               ctxt->ttbr0, ctxt->ttbr1, ctxt->ttbcr);
-+        printk("SCTLR %08"PRIx32"\n", ctxt->sctlr);
-         printk("VTTBR %010"PRIx64"\n", READ_CP64(VTTBR));
-         printk("\n");
-     }
-@@ -241,6 +247,26 @@ void show_registers(struct cpu_user_regs *regs)
-     printk("\n");
- }
-+void show_registers(struct cpu_user_regs *regs)
-+{
-+    struct reg_ctxt ctxt;
-+    ctxt.sctlr = READ_CP32(SCTLR);
-+    ctxt.ttbcr = READ_CP32(TTBCR);
-+    ctxt.ttbr0 = READ_CP32(TTBR0);
-+    ctxt.ttbr1 = READ_CP32(TTBR1);
-+    _show_registers(regs, &ctxt, guest_mode(regs));
-+}
-+
-+void vcpu_show_registers(const struct vcpu *v)
-+{
-+    struct reg_ctxt ctxt;
-+    ctxt.sctlr = v->arch.sctlr;
-+    ctxt.ttbcr = v->arch.ttbcr;
-+    ctxt.ttbr0 = v->arch.ttbr0;
-+    ctxt.ttbr1 = v->arch.ttbr1;
-+    _show_registers(&v->arch.cpu_info->guest_cpu_user_regs, &ctxt, 1);
-+}
-+
- static void show_guest_stack(struct cpu_user_regs *regs)
- {
-     printk("GUEST STACK GOES HERE\n");
-@@ -334,6 +360,26 @@ void show_execution_state(struct cpu_user_regs *regs)
-     show_stack(regs);
- }
-+void vcpu_show_execution_state(struct vcpu *v)
-+{
-+    printk("*** Dumping Dom%d vcpu#%d state: ***\n",
-+           v->domain->domain_id, v->vcpu_id);
-+
-+    if ( v == current )
-+    {
-+        show_execution_state(guest_cpu_user_regs());
-+        return;
-+    }
-+
-+    vcpu_pause(v); /* acceptably dangerous */
-+
-+    vcpu_show_registers(v);
-+    if ( !usr_mode(&v->arch.cpu_info->guest_cpu_user_regs) )
-+        show_guest_stack(&v->arch.cpu_info->guest_cpu_user_regs);
-+
-+    vcpu_unpause(v);
-+}
-+
- static void do_unexpected_trap(const char *msg, struct cpu_user_regs *regs)
- {
-     printk("Unexpected Trap: %s\n", msg);
--- 
-1.7.9.1
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1338565207-2888-23-git-send-email-ian.campbell@citrix.com> b/test/corpus/<1338565207-2888-23-git-send-email-ian.campbell@citrix.com>
deleted file mode 100644 (file)
index 0efe844..0000000
+++ /dev/null
@@ -1,163 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Jun 01 16:49:36 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 01 Jun 2012 16:49:36 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SaU6R-00051M-Ca
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 01 Jun 2012 16:49:36 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SaU3H-0008TG-6s; Fri, 01 Jun 2012 15:46:11 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1SaU3C-0008D3-JX
-       for xen-devel@lists.xen.org; Fri, 01 Jun 2012 15:46:06 +0000
-Received: from [85.158.143.99:55669] by server-1.bemta-4.messagelabs.com id
-       2E/0A-27869-EB3E8CF4; Fri, 01 Jun 2012 15:46:06 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-5.tower-216.messagelabs.com!1338565558!30625361!7
-X-Originating-IP: [66.165.176.63]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyNTY3NTA=\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 9405 invoked from network); 1 Jun 2012 15:46:03 -0000
-Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
-       by server-5.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
-       1 Jun 2012 15:46:03 -0000
-X-IronPort-AV: E=Sophos;i="4.75,698,1330923600"; d="scan'208";a="197207477"
-Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
-       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       01 Jun 2012 11:46:02 -0400
-Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
-       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
-       Fri, 1 Jun 2012 11:46:02 -0400
-Received: from [10.80.246.74] (helo=army.uk.xensource.com)     by
-       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
-       <ian.campbell@citrix.com>)      id 1SaTxQ-0006I5-TN;
-       Fri, 01 Jun 2012 16:40:08 +0100
-From: Ian Campbell <ian.campbell@citrix.com>
-To: xen-devel@lists.xen.org
-Date: Fri, 1 Jun 2012 15:39:52 +0000
-Message-ID: <1338565207-2888-23-git-send-email-ian.campbell@citrix.com>
-X-Mailer: git-send-email 1.7.9.1
-In-Reply-To: <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
-       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-MIME-Version: 1.0
-Cc: Ian Campbell <ian.campbell@citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: [Xen-devel] [PATCH 23/38] arm: use correct attributes for mappings
-       in copy_from_paddr()
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-The DTB is in RAM (hence bufferable), kernel is in flash and therefor requires
-a device type mapping (hence dev shared).
-
-Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
----
- xen/arch/arm/kernel.c       |    8 ++++----
- xen/arch/arm/setup.c        |    2 +-
- xen/include/asm-arm/setup.h |    2 +-
- 3 files changed, 6 insertions(+), 6 deletions(-)
-
-diff --git a/xen/arch/arm/kernel.c b/xen/arch/arm/kernel.c
-index 130d488..1a705c9 100644
---- a/xen/arch/arm/kernel.c
-+++ b/xen/arch/arm/kernel.c
-@@ -39,7 +39,7 @@ struct minimal_dtb_header {
-  * @paddr: source physical address
-  * @len: length to copy
-  */
--void copy_from_paddr(void *dst, paddr_t paddr, unsigned long len)
-+void copy_from_paddr(void *dst, paddr_t paddr, unsigned long len, int mattr)
- {
-     void *src = (void *)FIXMAP_ADDR(FIXMAP_MISC);
-@@ -51,7 +51,7 @@ void copy_from_paddr(void *dst, paddr_t paddr, unsigned long len)
-         s = paddr & (PAGE_SIZE-1);
-         l = min(PAGE_SIZE - s, len);
--        set_fixmap(FIXMAP_MISC, p, DEV_SHARED);
-+        set_fixmap(FIXMAP_MISC, p, mattr);
-         memcpy(dst, src + s, l);
-         paddr += l;
-@@ -111,7 +111,7 @@ static int kernel_try_zimage_prepare(struct kernel_info *info)
-     /*
-      * Check for an appended DTB.
-      */
--    copy_from_paddr(&dtb_hdr, KERNEL_FLASH_ADDRESS + end - start, sizeof(dtb_hdr));
-+    copy_from_paddr(&dtb_hdr, KERNEL_FLASH_ADDRESS + end - start, sizeof(dtb_hdr), DEV_SHARED);
-     if (be32_to_cpu(dtb_hdr.magic) == DTB_MAGIC) {
-         end += be32_to_cpu(dtb_hdr.total_size);
-     }
-@@ -151,7 +151,7 @@ static int kernel_try_elf_prepare(struct kernel_info *info)
-     if ( info->kernel_img == NULL )
-         panic("Cannot allocate temporary buffer for kernel.\n");
--    copy_from_paddr(info->kernel_img, KERNEL_FLASH_ADDRESS, KERNEL_FLASH_SIZE);
-+    copy_from_paddr(info->kernel_img, KERNEL_FLASH_ADDRESS, KERNEL_FLASH_SIZE, DEV_SHARED);
-     if ( (rc = elf_init(&info->elf.elf, info->kernel_img, KERNEL_FLASH_SIZE )) != 0 )
-         return rc;
-diff --git a/xen/arch/arm/setup.c b/xen/arch/arm/setup.c
-index b0cfacc..f5473cd 100644
---- a/xen/arch/arm/setup.c
-+++ b/xen/arch/arm/setup.c
-@@ -122,7 +122,7 @@ static void __init setup_mm(unsigned long dtb_paddr, size_t dtb_size)
-      * TODO: handle other payloads too.
-      */
-     device_tree_flattened = mfn_to_virt(alloc_boot_pages(dtb_pages, 1));
--    copy_from_paddr(device_tree_flattened, dtb_paddr, dtb_size);
-+    copy_from_paddr(device_tree_flattened, dtb_paddr, dtb_size, BUFFERABLE);
-     /* Add non-xenheap memory */
-     init_boot_pages(pfn_to_paddr(xenheap_mfn_start + xenheap_pages),
-diff --git a/xen/include/asm-arm/setup.h b/xen/include/asm-arm/setup.h
-index 05ff89e..faadccc 100644
---- a/xen/include/asm-arm/setup.h
-+++ b/xen/include/asm-arm/setup.h
-@@ -3,7 +3,7 @@
- #include <public/version.h>
--void copy_from_paddr(void *dst, paddr_t paddr, unsigned long len);
-+void copy_from_paddr(void *dst, paddr_t paddr, unsigned long len, int mattr);
- void arch_get_xen_caps(xen_capabilities_info_t *info);
--- 
-1.7.9.1
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1338565207-2888-24-git-send-email-ian.campbell@citrix.com> b/test/corpus/<1338565207-2888-24-git-send-email-ian.campbell@citrix.com>
deleted file mode 100644 (file)
index 8a15b9f..0000000
+++ /dev/null
@@ -1,103 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Jun 01 16:49:19 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 01 Jun 2012 16:49:19 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SaU69-0004wx-DA
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 01 Jun 2012 16:49:19 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SaU32-00087C-Ah; Fri, 01 Jun 2012 15:45:56 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1SaU2z-00086C-V5
-       for xen-devel@lists.xen.org; Fri, 01 Jun 2012 15:45:54 +0000
-Received: from [85.158.139.83:42171] by server-10.bemta-5.messagelabs.com id
-       E7/2A-22179-1B3E8CF4; Fri, 01 Jun 2012 15:45:53 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-15.tower-182.messagelabs.com!1338565550!31523018!1
-X-Originating-IP: [66.165.176.89]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNDc3NzE=\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 30124 invoked from network); 1 Jun 2012 15:45:52 -0000
-Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
-       by server-15.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
-       1 Jun 2012 15:45:52 -0000
-X-IronPort-AV: E=Sophos;i="4.75,698,1330923600"; d="scan'208";a="26548418"
-Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
-       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       01 Jun 2012 11:45:50 -0400
-Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
-       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
-       Fri, 1 Jun 2012 11:45:50 -0400
-Received: from [10.80.246.74] (helo=army.uk.xensource.com)     by
-       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
-       <ian.campbell@citrix.com>)      id 1SaTxQ-0006I5-Vx;
-       Fri, 01 Jun 2012 16:40:09 +0100
-From: Ian Campbell <ian.campbell@citrix.com>
-To: xen-devel@lists.xen.org
-Date: Fri, 1 Jun 2012 15:39:53 +0000
-Message-ID: <1338565207-2888-24-git-send-email-ian.campbell@citrix.com>
-X-Mailer: git-send-email 1.7.9.1
-In-Reply-To: <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
-       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-MIME-Version: 1.0
-Cc: Ian Campbell <ian.campbell@citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: [Xen-devel] [PATCH 24/38] arm: map fixmaps non-executable.
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
----
- xen/arch/arm/mm.c |    1 +
- 1 files changed, 1 insertions(+), 0 deletions(-)
-
-diff --git a/xen/arch/arm/mm.c b/xen/arch/arm/mm.c
-index c332e4c..160a4e9 100644
---- a/xen/arch/arm/mm.c
-+++ b/xen/arch/arm/mm.c
-@@ -108,6 +108,7 @@ void set_fixmap(unsigned map, unsigned long mfn, unsigned attributes)
-     lpae_t pte = mfn_to_xen_entry(mfn);
-     pte.pt.table = 1; /* 4k mappings always have this bit set */
-     pte.pt.ai = attributes;
-+    pte.pt.xn = 1;
-     write_pte(xen_fixmap + third_table_offset(FIXMAP_ADDR(map)), pte);
-     flush_xen_data_tlb_va(FIXMAP_ADDR(map));
- }
--- 
-1.7.9.1
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1338565207-2888-25-git-send-email-ian.campbell@citrix.com> b/test/corpus/<1338565207-2888-25-git-send-email-ian.campbell@citrix.com>
deleted file mode 100644 (file)
index 9dbcd72..0000000
+++ /dev/null
@@ -1,111 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Jun 01 16:49:26 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 01 Jun 2012 16:49:26 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SaU6J-0004yy-VU
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 01 Jun 2012 16:49:26 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SaU31-00086n-IR; Fri, 01 Jun 2012 15:45:55 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1SaU2z-000864-JV
-       for xen-devel@lists.xen.org; Fri, 01 Jun 2012 15:45:53 +0000
-Received: from [85.158.143.99:64862] by server-2.bemta-4.messagelabs.com id
-       10/19-11595-1B3E8CF4; Fri, 01 Jun 2012 15:45:53 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-11.tower-216.messagelabs.com!1338565550!23414785!1
-X-Originating-IP: [66.165.176.89]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNDc3NzE=\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 18486 invoked from network); 1 Jun 2012 15:45:51 -0000
-Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
-       by server-11.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
-       1 Jun 2012 15:45:51 -0000
-X-IronPort-AV: E=Sophos;i="4.75,698,1330923600"; d="scan'208";a="26548413"
-Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
-       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       01 Jun 2012 11:45:49 -0400
-Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
-       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
-       Fri, 1 Jun 2012 11:45:49 -0400
-Received: from [10.80.246.74] (helo=army.uk.xensource.com)     by
-       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
-       <ian.campbell@citrix.com>)      id 1SaTxR-0006I5-2K;
-       Fri, 01 Jun 2012 16:40:09 +0100
-From: Ian Campbell <ian.campbell@citrix.com>
-To: xen-devel@lists.xen.org
-Date: Fri, 1 Jun 2012 15:39:54 +0000
-Message-ID: <1338565207-2888-25-git-send-email-ian.campbell@citrix.com>
-X-Mailer: git-send-email 1.7.9.1
-In-Reply-To: <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
-       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-MIME-Version: 1.0
-Cc: Ian Campbell <ian.campbell@citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: [Xen-devel] [PATCH 25/38] arm: remove old identity map of boot
-       paddr when we are done with it.
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
----
- xen/arch/arm/mm.c |    8 ++++++++
- 1 files changed, 8 insertions(+), 0 deletions(-)
-
-diff --git a/xen/arch/arm/mm.c b/xen/arch/arm/mm.c
-index 160a4e9..ab52171 100644
---- a/xen/arch/arm/mm.c
-+++ b/xen/arch/arm/mm.c
-@@ -214,6 +214,14 @@ void __init setup_pagetables(unsigned long boot_phys_offset)
-     lpae_t pte, *p;
-     int i;
-+    if ( boot_phys_offset != 0 )
-+    {
-+        /* Remove the old identity mapping of the boot paddr */
-+        pte.bits = 0;
-+        dest_va = (unsigned long)_start + boot_phys_offset;
-+        write_pte(xen_second + second_linear_offset(dest_va), pte);
-+    }
-+
-     xen_paddr = device_tree_get_xen_paddr();
-     /* Map the destination in the boot misc area. */
--- 
-1.7.9.1
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1338565207-2888-26-git-send-email-ian.campbell@citrix.com> b/test/corpus/<1338565207-2888-26-git-send-email-ian.campbell@citrix.com>
deleted file mode 100644 (file)
index 31026c9..0000000
+++ /dev/null
@@ -1,119 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Jun 01 16:49:17 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 01 Jun 2012 16:49:17 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SaU6B-0004x0-1O
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 01 Jun 2012 16:49:17 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SaU36-0008B1-Qr; Fri, 01 Jun 2012 15:46:00 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1SaU35-00086h-JW
-       for xen-devel@lists.xen.org; Fri, 01 Jun 2012 15:45:59 +0000
-Received: from [85.158.138.51:34833] by server-4.bemta-3.messagelabs.com id
-       38/54-32504-7B3E8CF4; Fri, 01 Jun 2012 15:45:59 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-4.tower-174.messagelabs.com!1338565552!30346150!5
-X-Originating-IP: [66.165.176.89]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNDc3NzE=\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 25671 invoked from network); 1 Jun 2012 15:45:58 -0000
-Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
-       by server-4.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
-       1 Jun 2012 15:45:58 -0000
-X-IronPort-AV: E=Sophos;i="4.75,698,1330923600"; d="scan'208";a="26548513"
-Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
-       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       01 Jun 2012 11:45:58 -0400
-Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
-       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
-       Fri, 1 Jun 2012 11:45:58 -0400
-Received: from [10.80.246.74] (helo=army.uk.xensource.com)     by
-       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
-       <ian.campbell@citrix.com>)      id 1SaTxR-0006I5-55;
-       Fri, 01 Jun 2012 16:40:09 +0100
-From: Ian Campbell <ian.campbell@citrix.com>
-To: xen-devel@lists.xen.org
-Date: Fri, 1 Jun 2012 15:39:55 +0000
-Message-ID: <1338565207-2888-26-git-send-email-ian.campbell@citrix.com>
-X-Mailer: git-send-email 1.7.9.1
-In-Reply-To: <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
-       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-MIME-Version: 1.0
-Cc: Ian Campbell <ian.campbell@citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: [Xen-devel] [PATCH 26/38] arm: fix locking in create_p2m_entries
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-For some reason we were holding the lock over only the unmaps at the end of
-the function, rather than for the whole walk.
-
-We might want to be more clever in the future, but for now lets just lock for
-the whole walk+create process.
-
-Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
----
- xen/arch/arm/p2m.c |    4 ++--
- 1 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/xen/arch/arm/p2m.c b/xen/arch/arm/p2m.c
-index 46c6f17..c4daf83 100644
---- a/xen/arch/arm/p2m.c
-+++ b/xen/arch/arm/p2m.c
-@@ -168,6 +168,8 @@ static int create_p2m_entries(struct domain *d,
-     paddr_t addr;
-     unsigned long cur_first_offset = ~0, cur_second_offset = ~0;
-+    spin_lock(&p2m->lock);
-+
-     /* XXX Don't actually handle 40 bit guest physical addresses */
-     BUG_ON(start_gpaddr & 0x8000000000ULL);
-     BUG_ON(end_gpaddr   & 0x8000000000ULL);
-@@ -249,8 +251,6 @@ static int create_p2m_entries(struct domain *d,
-     rc = 0;
- out:
--    spin_lock(&p2m->lock);
--
-     if (third) unmap_domain_page(third);
-     if (second) unmap_domain_page(second);
-     if (first) unmap_domain_page(first);
--- 
-1.7.9.1
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1338565207-2888-27-git-send-email-ian.campbell@citrix.com> b/test/corpus/<1338565207-2888-27-git-send-email-ian.campbell@citrix.com>
deleted file mode 100644 (file)
index cc686a1..0000000
+++ /dev/null
@@ -1,188 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Jun 01 16:49:24 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 01 Jun 2012 16:49:24 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SaU6H-0004yM-VN
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 01 Jun 2012 16:49:24 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SaU3E-0008Ny-NR; Fri, 01 Jun 2012 15:46:08 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1SaU39-0008E8-MN
-       for xen-devel@lists.xen.org; Fri, 01 Jun 2012 15:46:03 +0000
-Received: from [85.158.138.51:35122] by server-8.bemta-3.messagelabs.com id
-       0F/80-01456-AB3E8CF4; Fri, 01 Jun 2012 15:46:02 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-13.tower-174.messagelabs.com!1338565560!11696972!2
-X-Originating-IP: [66.165.176.89]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNDc3NzE=\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 19594 invoked from network); 1 Jun 2012 15:46:02 -0000
-Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
-       by server-13.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
-       1 Jun 2012 15:46:02 -0000
-X-IronPort-AV: E=Sophos;i="4.75,698,1330923600"; d="scan'208";a="26548526"
-Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
-       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       01 Jun 2012 11:46:01 -0400
-Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
-       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
-       Fri, 1 Jun 2012 11:46:01 -0400
-Received: from [10.80.246.74] (helo=army.uk.xensource.com)     by
-       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
-       <ian.campbell@citrix.com>)      id 1SaTxR-0006I5-6S;
-       Fri, 01 Jun 2012 16:40:09 +0100
-From: Ian Campbell <ian.campbell@citrix.com>
-To: xen-devel@lists.xen.org
-Date: Fri, 1 Jun 2012 15:39:56 +0000
-Message-ID: <1338565207-2888-27-git-send-email-ian.campbell@citrix.com>
-X-Mailer: git-send-email 1.7.9.1
-In-Reply-To: <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
-       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-MIME-Version: 1.0
-Cc: Ian Campbell <ian.campbell@citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: [Xen-devel] [PATCH 27/38] arm: split pending SPIs (global) out from
-       pending PPIs and SGIs (per CPU)
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-This tracks SPIs in struct arch_domain and PPIs+SGIs in struct arch_vcpu which
-seems more logical.
-
-Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
----
- xen/arch/arm/vgic.c          |   17 ++++++++++-------
- xen/include/asm-arm/domain.h |   10 ++++++++++
- 2 files changed, 20 insertions(+), 7 deletions(-)
-
-diff --git a/xen/arch/arm/vgic.c b/xen/arch/arm/vgic.c
-index 629a0da..91d6166 100644
---- a/xen/arch/arm/vgic.c
-+++ b/xen/arch/arm/vgic.c
-@@ -82,9 +82,8 @@ int domain_vgic_init(struct domain *d)
-     d->arch.vgic.shared_irqs =
-         xmalloc_array(struct vgic_irq_rank, DOMAIN_NR_RANKS(d));
-     d->arch.vgic.pending_irqs =
--        xmalloc_array(struct pending_irq,
--                d->arch.vgic.nr_lines + (32 * d->max_vcpus));
--    for (i=0; i<d->arch.vgic.nr_lines + (32 * d->max_vcpus); i++)
-+        xzalloc_array(struct pending_irq, d->arch.vgic.nr_lines);
-+    for (i=0; i<d->arch.vgic.nr_lines; i++)
-         INIT_LIST_HEAD(&d->arch.vgic.pending_irqs[i].inflight);
-     for (i=0; i<DOMAIN_NR_RANKS(d); i++)
-         spin_lock_init(&d->arch.vgic.shared_irqs[i].lock);
-@@ -98,6 +97,10 @@ int vcpu_vgic_init(struct vcpu *v)
-     spin_lock_init(&v->arch.vgic.private_irqs.lock);
-+    memset(&v->arch.vgic.pending_irqs, 0, sizeof(v->arch.vgic.pending_irqs));
-+    for (i = 0; i < 32; i++)
-+        INIT_LIST_HEAD(&v->arch.vgic.pending_irqs[i].inflight);
-+
-     /* For SGI and PPI the target is always this CPU */
-     for ( i = 0 ; i < 8 ; i++ )
-         v->arch.vgic.private_irqs.itargets[i] =
-@@ -535,8 +538,7 @@ struct pending_irq *irq_to_pending(struct vcpu *v, unsigned int irq)
-     /* Pending irqs allocation strategy: the first vgic.nr_lines irqs
-      * are used for SPIs; the rests are used for per cpu irqs */
-     if ( irq < 32 )
--        n = &v->domain->arch.vgic.pending_irqs[irq + (v->vcpu_id * 32)
--            + v->domain->arch.vgic.nr_lines];
-+        n = &v->arch.vgic.pending_irqs[irq];
-     else
-         n = &v->domain->arch.vgic.pending_irqs[irq - 32];
-     return n;
-@@ -548,6 +550,7 @@ void vgic_vcpu_inject_irq(struct vcpu *v, unsigned int irq, int virtual)
-     uint8_t priority;
-     struct vgic_irq_rank *rank = vgic_irq_rank(v, 8, idx);
-     struct pending_irq *iter, *n = irq_to_pending(v, irq);
-+    unsigned long flags;
-     /* irq still pending */
-     if (!list_empty(&n->inflight))
-@@ -564,7 +567,7 @@ void vgic_vcpu_inject_irq(struct vcpu *v, unsigned int irq, int virtual)
-     gic_set_guest_irq(irq, GICH_LR_PENDING, priority);
--    spin_lock(&v->arch.vgic.lock);
-+    spin_lock_irqsave(&v->arch.vgic.lock, flags);
-     list_for_each_entry ( iter, &v->arch.vgic.inflight_irqs, inflight )
-     {
-         if ( iter->priority > priority )
-@@ -575,7 +578,7 @@ void vgic_vcpu_inject_irq(struct vcpu *v, unsigned int irq, int virtual)
-         }
-     }
-     list_add_tail(&n->inflight, &v->arch.vgic.inflight_irqs);
--    spin_unlock(&v->arch.vgic.lock);
-+    spin_unlock_irqrestore(&v->arch.vgic.lock, flags);
-     /* we have a new higher priority irq, inject it into the guest */
- }
-diff --git a/xen/include/asm-arm/domain.h b/xen/include/asm-arm/domain.h
-index 620b26e..32deb52 100644
---- a/xen/include/asm-arm/domain.h
-+++ b/xen/include/asm-arm/domain.h
-@@ -46,6 +46,10 @@ struct arch_domain
-         int ctlr;
-         int nr_lines;
-         struct vgic_irq_rank *shared_irqs;
-+        /*
-+         * SPIs are domain global, SGIs and PPIs are per-VCPU and stored in
-+         * struct arch_vcpu.
-+         */
-         struct pending_irq *pending_irqs;
-     } vgic;
-@@ -114,7 +118,13 @@ struct arch_vcpu
-     uint32_t gic_lr[64];
-     struct {
-+        /*
-+         * SGIs and PPIs are per-VCPU, SPIs are domain global and in
-+         * struct arch_domain.
-+         */
-+        struct pending_irq pending_irqs[32];
-         struct vgic_irq_rank private_irqs;
-+
-         /* This list is ordered by IRQ priority and it is used to keep
-          * track of the IRQs that the VGIC injected into the guest.
-          * Depending on the availability of LR registers, the IRQs might
--- 
-1.7.9.1
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1338565207-2888-28-git-send-email-ian.campbell@citrix.com> b/test/corpus/<1338565207-2888-28-git-send-email-ian.campbell@citrix.com>
deleted file mode 100644 (file)
index 09a2b6b..0000000
+++ /dev/null
@@ -1,209 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Jun 01 16:49:29 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 01 Jun 2012 16:49:29 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SaU6N-0004zr-07
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 01 Jun 2012 16:49:29 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SaU30-00086L-6N; Fri, 01 Jun 2012 15:45:54 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1SaU2y-000864-F8
-       for xen-devel@lists.xen.org; Fri, 01 Jun 2012 15:45:52 +0000
-Received: from [85.158.143.35:58587] by server-2.bemta-4.messagelabs.com id
-       F5/09-11595-FA3E8CF4; Fri, 01 Jun 2012 15:45:51 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-8.tower-21.messagelabs.com!1338565548!13156336!1
-X-Originating-IP: [66.165.176.63]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyNTY3NTA=\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 23310 invoked from network); 1 Jun 2012 15:45:50 -0000
-Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
-       by server-8.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
-       1 Jun 2012 15:45:50 -0000
-X-IronPort-AV: E=Sophos;i="4.75,698,1330923600"; d="scan'208";a="197207417"
-Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
-       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       01 Jun 2012 11:45:47 -0400
-Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
-       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
-       Fri, 1 Jun 2012 11:45:47 -0400
-Received: from [10.80.246.74] (helo=army.uk.xensource.com)     by
-       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
-       <ian.campbell@citrix.com>)      id 1SaTxR-0006I5-7o;
-       Fri, 01 Jun 2012 16:40:09 +0100
-From: Ian Campbell <ian.campbell@citrix.com>
-To: xen-devel@lists.xen.org
-Date: Fri, 1 Jun 2012 15:39:57 +0000
-Message-ID: <1338565207-2888-28-git-send-email-ian.campbell@citrix.com>
-X-Mailer: git-send-email 1.7.9.1
-In-Reply-To: <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
-       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-MIME-Version: 1.0
-Cc: Ian Campbell <ian.campbell@citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: [Xen-devel] [PATCH 28/38] arm: map GICV in all domains,
-       not just dom0.
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-This requires that we allocate all p2m pages from domheap without a particular
-dom because max pages is not setup yet so there is no allocation available to
-us.
-
-At some point we should create a separate p2m allocation (similar to x86's shadow allocation) and use that.
-
-Also we seem to have been calling p2m_alloc_table twice for dom0.
-
-Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
----
- xen/arch/arm/domain.c       |   10 +++++++---
- xen/arch/arm/domain_build.c |    5 -----
- xen/arch/arm/gic.c          |    9 ++++-----
- xen/arch/arm/gic.h          |    2 +-
- xen/arch/arm/p2m.c          |    3 ++-
- 5 files changed, 14 insertions(+), 15 deletions(-)
-
-diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
-index a7fb227..e15c1e8 100644
---- a/xen/arch/arm/domain.c
-+++ b/xen/arch/arm/domain.c
-@@ -329,13 +329,17 @@ int arch_domain_create(struct domain *d, unsigned int domcr_flags)
-         if ( (rc = p2m_alloc_table(d)) != 0 )
-             goto fail;
--    }
--    if ( (rc = domain_vgic_init(d)) != 0 )
--        goto fail;
-+        if ( (rc = gicv_setup(d)) != 0 )
-+            goto fail;
-+
-+        if ( (rc = domain_vgic_init(d)) != 0 )
-+            goto fail;
-+    }
-     rc = 0;
- fail:
-+    /*XXX unwind allocations etc */
-     return rc;
- }
-diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
-index 72e775c..1b19e54 100644
---- a/xen/arch/arm/domain_build.c
-+++ b/xen/arch/arm/domain_build.c
-@@ -270,9 +270,6 @@ int construct_dom0(struct domain *d)
-     d->max_pages = ~0U;
--    if ( (rc = p2m_alloc_table(d)) != 0 )
--        return rc;
--
-     rc = prepare_dtb(d, &kinfo);
-     if ( rc < 0 )
-         return rc;
-@@ -288,8 +285,6 @@ int construct_dom0(struct domain *d)
-     printk("Map VGIC MMIO regions 1:1 in the P2M %#llx->%#llx\n", 0x2C008000ULL, 0x2DFFFFFFULL);
-     map_mmio_regions(d, 0x2C008000, 0x2DFFFFFF, 0x2C008000);
--    gicv_setup(d);
--
-     printk("Routing peripheral interrupts to guest\n");
-     /* TODO Get from device tree */
-     gic_route_irq_to_guest(d, 34, "timer0");
-diff --git a/xen/arch/arm/gic.c b/xen/arch/arm/gic.c
-index 339c327..a398f92 100644
---- a/xen/arch/arm/gic.c
-+++ b/xen/arch/arm/gic.c
-@@ -541,14 +541,13 @@ void gic_interrupt(struct cpu_user_regs *regs, int is_fiq)
-     do_IRQ(regs, irq, is_fiq);
- }
--void gicv_setup(struct domain *d)
-+int gicv_setup(struct domain *d)
- {
-+    printk("GICV setup for DOM%d\n", d->domain_id);
-+
-     /* map the gic virtual cpu interface in the gic cpu interface region of
-      * the guest */
--    printk("mapping GICC at %#"PRIx32" to %#"PRIx32"\n",
--           GIC_BASE_ADDRESS + GIC_CR_OFFSET,
--           GIC_BASE_ADDRESS + GIC_VR_OFFSET);
--    map_mmio_regions(d, GIC_BASE_ADDRESS + GIC_CR_OFFSET,
-+    return map_mmio_regions(d, GIC_BASE_ADDRESS + GIC_CR_OFFSET,
-                         GIC_BASE_ADDRESS + GIC_CR_OFFSET + (2 * PAGE_SIZE) - 1,
-                         GIC_BASE_ADDRESS + GIC_VR_OFFSET);
- }
-diff --git a/xen/arch/arm/gic.h b/xen/arch/arm/gic.h
-index ac9cf3a..018d820 100644
---- a/xen/arch/arm/gic.h
-+++ b/xen/arch/arm/gic.h
-@@ -148,7 +148,7 @@ extern void gic_init_secondary_cpu(void);
- /* Take down a CPU's per-CPU GIC interface */
- extern void gic_disable_cpu(void);
- /* setup the gic virtual interface for a guest */
--extern void gicv_setup(struct domain *d);
-+extern int gicv_setup(struct domain *d);
- /* Context switch */
- extern void gic_save_state(struct vcpu *v);
-diff --git a/xen/arch/arm/p2m.c b/xen/arch/arm/p2m.c
-index c4daf83..0665445 100644
---- a/xen/arch/arm/p2m.c
-+++ b/xen/arch/arm/p2m.c
-@@ -4,6 +4,7 @@
- #include <xen/errno.h>
- #include <xen/domain_page.h>
- #include <asm/flushtlb.h>
-+#include "gic.h"
- void dump_p2m_lookup(struct domain *d, paddr_t addr)
- {
-@@ -138,7 +139,7 @@ static int p2m_create_entry(struct domain *d,
-     BUG_ON(entry->p2m.valid);
--    page = alloc_domheap_page(d, 0);
-+    page = alloc_domheap_page(NULL, 0);
-     if ( page == NULL )
-         return -ENOMEM;
--- 
-1.7.9.1
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1338565207-2888-29-git-send-email-ian.campbell@citrix.com> b/test/corpus/<1338565207-2888-29-git-send-email-ian.campbell@citrix.com>
deleted file mode 100644 (file)
index 8fc6aff..0000000
+++ /dev/null
@@ -1,126 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Jun 01 16:49:28 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 01 Jun 2012 16:49:28 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SaU6I-0004yO-5x
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 01 Jun 2012 16:49:28 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SaU34-00088d-Cf; Fri, 01 Jun 2012 15:45:58 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1SaU31-00086h-Mb
-       for xen-devel@lists.xen.org; Fri, 01 Jun 2012 15:45:55 +0000
-Received: from [85.158.138.51:33173] by server-4.bemta-3.messagelabs.com id
-       2F/24-32504-2B3E8CF4; Fri, 01 Jun 2012 15:45:54 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-4.tower-174.messagelabs.com!1338565552!30346150!1
-X-Originating-IP: [66.165.176.89]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNDc3NzE=\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 25444 invoked from network); 1 Jun 2012 15:45:54 -0000
-Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
-       by server-4.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
-       1 Jun 2012 15:45:54 -0000
-X-IronPort-AV: E=Sophos;i="4.75,698,1330923600"; d="scan'208";a="26548450"
-Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
-       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       01 Jun 2012 11:45:53 -0400
-Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
-       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
-       Fri, 1 Jun 2012 11:45:53 -0400
-Received: from [10.80.246.74] (helo=army.uk.xensource.com)     by
-       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
-       <ian.campbell@citrix.com>)      id 1SaTxR-0006I5-9A;
-       Fri, 01 Jun 2012 16:40:09 +0100
-From: Ian Campbell <ian.campbell@citrix.com>
-To: xen-devel@lists.xen.org
-Date: Fri, 1 Jun 2012 15:39:58 +0000
-Message-ID: <1338565207-2888-29-git-send-email-ian.campbell@citrix.com>
-X-Mailer: git-send-email 1.7.9.1
-In-Reply-To: <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
-       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-MIME-Version: 1.0
-Cc: Ian Campbell <ian.campbell@citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: [Xen-devel] [PATCH 29/38] arm: delay enabling data-cache until
-       paging enabled.
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-With enough warnings enabled the model seemed to be complaining that pages
-cached before paging was enabled had been mapped with to inconsistent sets of
-attributes. I'm not convinced that isn't a model issue, nor am I convinced
-this has really fixed anything, but it seems sensible enough.
-
-Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
----
- xen/arch/arm/head.S |    9 +++++++--
- 1 files changed, 7 insertions(+), 2 deletions(-)
-
-diff --git a/xen/arch/arm/head.S b/xen/arch/arm/head.S
-index 9a7714a..71197af 100644
---- a/xen/arch/arm/head.S
-+++ b/xen/arch/arm/head.S
-@@ -148,10 +148,11 @@ hyp:
-        * Exceptions in LE ARM,
-        * Low-latency IRQs disabled,
-        * Write-implies-XN disabled (for now),
--       * I-cache and d-cache enabled,
-+       * D-cache diabled (for now),
-+       * I-cache enabled,
-        * Alignment checking enabled,
-        * MMU translation disabled (for now). */
--      ldr   r0, =(HSCTLR_BASE|SCTLR_A|SCTLR_C)
-+      ldr   r0, =(HSCTLR_BASE|SCTLR_A)
-       mcr   CP32(r0, HSCTLR)
-       /* Write Xen's PT's paddr into the HTTBR */
-@@ -217,6 +218,10 @@ pt_ready:
-       mov   pc, r1                 /* Get a proper vaddr into PC */
- paging:
-+      mrc   CP32(r0, HSCTLR)       /* Now enable data cache */
-+      orr   r0, r0, #(SCTLR_C)
-+      mcr   CP32(r0, HSCTLR)
-+
- #ifdef EARLY_UART_ADDRESS
-       /* Recover the UART address in the new address space. */
-       lsl   r11, #11
--- 
-1.7.9.1
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1338565207-2888-3-git-send-email-ian.campbell@citrix.com> b/test/corpus/<1338565207-2888-3-git-send-email-ian.campbell@citrix.com>
deleted file mode 100644 (file)
index 4b0fc30..0000000
+++ /dev/null
@@ -1,152 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Jun 01 16:43:48 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 01 Jun 2012 16:43:48 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SaU0s-0004tf-Ut
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 01 Jun 2012 16:43:48 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SaTxZ-0006fh-PR; Fri, 01 Jun 2012 15:40:17 +0000
-Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1SaTxW-0006eV-Ma
-       for xen-devel@lists.xen.org; Fri, 01 Jun 2012 15:40:14 +0000
-Received: from [193.109.254.147:18269] by server-4.bemta-14.messagelabs.com id
-       DA/00-03148-E52E8CF4; Fri, 01 Jun 2012 15:40:14 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-2.tower-27.messagelabs.com!1338565208!12347274!1
-X-Originating-IP: [66.165.176.89]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNDc3NzE=\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 19021 invoked from network); 1 Jun 2012 15:40:10 -0000
-Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
-       by server-2.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
-       1 Jun 2012 15:40:10 -0000
-X-IronPort-AV: E=Sophos;i="4.75,698,1330923600"; d="scan'208";a="26547679"
-Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
-       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       01 Jun 2012 11:40:08 -0400
-Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
-       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
-       Fri, 1 Jun 2012 11:40:08 -0400
-Received: from [10.80.246.74] (helo=army.uk.xensource.com)     by
-       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
-       <ian.campbell@citrix.com>)      id 1SaTxP-0006I5-Nb;
-       Fri, 01 Jun 2012 16:40:07 +0100
-From: Ian Campbell <ian.campbell@citrix.com>
-To: xen-devel@lists.xen.org
-Date: Fri, 1 Jun 2012 15:39:32 +0000
-Message-ID: <1338565207-2888-3-git-send-email-ian.campbell@citrix.com>
-X-Mailer: git-send-email 1.7.9.1
-In-Reply-To: <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
-       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-MIME-Version: 1.0
-Cc: Ian Campbell <ian.campbell@citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: [Xen-devel] [PATCH 03/38] arm: handy function to print a walk of a
-       domain's p2m.
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-Useful for debug but not actually used in this patch.
-
-Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
----
- xen/arch/arm/p2m.c         |   34 ++++++++++++++++++++++++++++++++++
- xen/include/asm-arm/page.h |    1 +
- 2 files changed, 35 insertions(+), 0 deletions(-)
-
-diff --git a/xen/arch/arm/p2m.c b/xen/arch/arm/p2m.c
-index 4f624d8..fdbecbc 100644
---- a/xen/arch/arm/p2m.c
-+++ b/xen/arch/arm/p2m.c
-@@ -5,6 +5,40 @@
- #include <xen/domain_page.h>
- #include <asm/flushtlb.h>
-+void dump_p2m_lookup(struct domain *d, paddr_t addr)
-+{
-+    struct p2m_domain *p2m = &d->arch.p2m;
-+    lpae_t *first = NULL, *second = NULL, *third = NULL;
-+
-+    printk("dom%d IPA %#016llx\n", d->domain_id, addr);
-+
-+    first = __map_domain_page(p2m->first_level);
-+    printk("1ST[%#03llx] = %#016llx\n",
-+           first_table_offset(addr),
-+           first[first_table_offset(addr)].bits);
-+    if ( !first[first_table_offset(addr)].p2m.valid ||
-+         !first[first_table_offset(addr)].p2m.table )
-+        goto done;
-+
-+    second = map_domain_page(first[first_table_offset(addr)].p2m.base);
-+    printk("2ND[%#03llx] = %#016llx\n",
-+           second_table_offset(addr),
-+           second[second_table_offset(addr)].bits);
-+    if ( !second[second_table_offset(addr)].p2m.valid ||
-+         !second[second_table_offset(addr)].p2m.table )
-+        goto done;
-+
-+    third = map_domain_page(second[second_table_offset(addr)].p2m.base);
-+    printk("3RD[%#03llx] = %#016llx\n",
-+           third_table_offset(addr),
-+           third[third_table_offset(addr)].bits);
-+
-+done:
-+    if (third) unmap_domain_page(third);
-+    if (second) unmap_domain_page(second);
-+    if (first) unmap_domain_page(first);
-+}
-+
- void p2m_load_VTTBR(struct domain *d)
- {
-     struct p2m_domain *p2m = &d->arch.p2m;
-diff --git a/xen/include/asm-arm/page.h b/xen/include/asm-arm/page.h
-index 22c56b5..c7b6530 100644
---- a/xen/include/asm-arm/page.h
-+++ b/xen/include/asm-arm/page.h
-@@ -313,6 +313,7 @@ static inline uint64_t gva_to_ipa(uint32_t va)
- #define PAR_FAULT 0x1
- extern void dump_pt_walk(uint32_t addr);
-+extern void dump_p2m_lookup(struct domain *d, paddr_t addr);
- #endif /* __ASSEMBLY__ */
--- 
-1.7.9.1
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1338565207-2888-30-git-send-email-ian.campbell@citrix.com> b/test/corpus/<1338565207-2888-30-git-send-email-ian.campbell@citrix.com>
deleted file mode 100644 (file)
index 32bf4cc..0000000
+++ /dev/null
@@ -1,128 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Jun 01 16:49:33 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 01 Jun 2012 16:49:33 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SaU6Q-000514-2w
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 01 Jun 2012 16:49:33 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SaU3L-0000CS-4H; Fri, 01 Jun 2012 15:46:15 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1SaU3E-0008NS-Bg
-       for xen-devel@lists.xen.org; Fri, 01 Jun 2012 15:46:08 +0000
-Received: from [85.158.138.51:35420] by server-4.bemta-3.messagelabs.com id
-       21/94-32504-FB3E8CF4; Fri, 01 Jun 2012 15:46:07 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-13.tower-174.messagelabs.com!1338565560!11696972!5
-X-Originating-IP: [66.165.176.89]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNDc3NzE=\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 19911 invoked from network); 1 Jun 2012 15:46:06 -0000
-Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
-       by server-13.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
-       1 Jun 2012 15:46:06 -0000
-X-IronPort-AV: E=Sophos;i="4.75,698,1330923600"; d="scan'208";a="26548565"
-Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
-       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       01 Jun 2012 11:46:06 -0400
-Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
-       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
-       Fri, 1 Jun 2012 11:46:06 -0400
-Received: from [10.80.246.74] (helo=army.uk.xensource.com)     by
-       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
-       <ian.campbell@citrix.com>)      id 1SaTxR-0006I5-AU;
-       Fri, 01 Jun 2012 16:40:09 +0100
-From: Ian Campbell <ian.campbell@citrix.com>
-To: xen-devel@lists.xen.org
-Date: Fri, 1 Jun 2012 15:39:59 +0000
-Message-ID: <1338565207-2888-30-git-send-email-ian.campbell@citrix.com>
-X-Mailer: git-send-email 1.7.9.1
-In-Reply-To: <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
-       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-MIME-Version: 1.0
-Cc: Ian Campbell <ian.campbell@citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: [Xen-devel] [PATCH 30/38] arm: Upgrade guest barriers to
-       Outer-Shareable. Enable Protected Table Walk.
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-Upgrading barriers is conservative and may not be necessary.
-
-Protected Table Walk traps stage 1 page tables which refer to device memory
-(per stage 2) using a non-device mapping. This generally indicates a guest
-error but trapping it as a fault for now helps us know if something odd is
-going on.
-
-Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
----
- xen/arch/arm/domain_build.c     |    2 +-
- xen/include/asm-arm/processor.h |    4 ++++
- 2 files changed, 5 insertions(+), 1 deletions(-)
-
-diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
-index 1b19e54..a9e7f43 100644
---- a/xen/arch/arm/domain_build.c
-+++ b/xen/arch/arm/domain_build.c
-@@ -333,7 +333,7 @@ int construct_dom0(struct domain *d)
-     WRITE_CP32(SCTLR_BASE, SCTLR);
--    WRITE_CP32(HCR_AMO|HCR_IMO|HCR_VM, HCR);
-+    WRITE_CP32(HCR_PTW|HCR_BSU_OUTER|HCR_AMO|HCR_IMO|HCR_VM, HCR);
-     isb();
-     local_abort_enable();
-diff --git a/xen/include/asm-arm/processor.h b/xen/include/asm-arm/processor.h
-index 81924a4..9b3c9dd 100644
---- a/xen/include/asm-arm/processor.h
-+++ b/xen/include/asm-arm/processor.h
-@@ -76,6 +76,10 @@
- #define HCR_TWI         (1<<13)
- #define HCR_DC          (1<<12)
- #define HCR_BSU_MASK    (3<<10)
-+#define HCR_BSU_NONE     (0<<10)
-+#define HCR_BSU_INNER    (1<<10)
-+#define HCR_BSU_OUTER    (2<<10)
-+#define HCR_BSU_FULL     (3<<10)
- #define HCR_FB          (1<<9)
- #define HCR_VA          (1<<8)
- #define HCR_VI          (1<<7)
--- 
-1.7.9.1
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1338565207-2888-31-git-send-email-ian.campbell@citrix.com> b/test/corpus/<1338565207-2888-31-git-send-email-ian.campbell@citrix.com>
deleted file mode 100644 (file)
index 0cb9170..0000000
+++ /dev/null
@@ -1,177 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Jun 01 16:49:25 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 01 Jun 2012 16:49:25 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SaU6F-0004xl-Gj
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 01 Jun 2012 16:49:25 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SaU33-00087f-5b; Fri, 01 Jun 2012 15:45:57 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1SaU30-000869-Go
-       for xen-devel@lists.xen.org; Fri, 01 Jun 2012 15:45:54 +0000
-Received: from [85.158.143.99:51051] by server-1.bemta-4.messagelabs.com id
-       05/C9-27869-1B3E8CF4; Fri, 01 Jun 2012 15:45:53 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-15.tower-216.messagelabs.com!1338565550!30932364!1
-X-Originating-IP: [66.165.176.63]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyNTY3NTA=\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 673 invoked from network); 1 Jun 2012 15:45:52 -0000
-Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
-       by server-15.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
-       1 Jun 2012 15:45:52 -0000
-X-IronPort-AV: E=Sophos;i="4.75,698,1330923600"; d="scan'208";a="197207422"
-Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
-       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       01 Jun 2012 11:45:49 -0400
-Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
-       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
-       Fri, 1 Jun 2012 11:45:49 -0400
-Received: from [10.80.246.74] (helo=army.uk.xensource.com)     by
-       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
-       <ian.campbell@citrix.com>)      id 1SaTxR-0006I5-Bm;
-       Fri, 01 Jun 2012 16:40:09 +0100
-From: Ian Campbell <ian.campbell@citrix.com>
-To: xen-devel@lists.xen.org
-Date: Fri, 1 Jun 2012 15:40:00 +0000
-Message-ID: <1338565207-2888-31-git-send-email-ian.campbell@citrix.com>
-X-Mailer: git-send-email 1.7.9.1
-In-Reply-To: <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
-       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-MIME-Version: 1.0
-Cc: Ian Campbell <ian.campbell@citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: [Xen-devel] [PATCH 31/38] arm: gic.lock can be taken in interrupt
-       context, so lock appropriately.
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-In particular it is taken by gic_set_guest_irq which is called by
-vgic_vcpu_inject_irq
-
-Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
----
- xen/arch/arm/gic.c |   20 ++++++++++----------
- 1 files changed, 10 insertions(+), 10 deletions(-)
-
-diff --git a/xen/arch/arm/gic.c b/xen/arch/arm/gic.c
-index a398f92..ededa99 100644
---- a/xen/arch/arm/gic.c
-+++ b/xen/arch/arm/gic.c
-@@ -329,19 +329,19 @@ int __init gic_init(void)
- /* Set up the per-CPU parts of the GIC for a secondary CPU */
- void __cpuinit gic_init_secondary_cpu(void)
- {
--    spin_lock(&gic.lock);
-+    spin_lock_irq(&gic.lock);
-     gic_cpu_init();
-     gic_hyp_init();
--    spin_unlock(&gic.lock);
-+    spin_unlock_irq(&gic.lock);
- }
- /* Shut down the per-CPU GIC interface */
- void gic_disable_cpu(void)
- {
--    spin_lock(&gic.lock);
-+    spin_lock_irq(&gic.lock);
-     gic_cpu_disable();
-     gic_hyp_disable();
--    spin_unlock(&gic.lock);
-+    spin_unlock_irq(&gic.lock);
- }
- void gic_route_irqs(void)
-@@ -439,7 +439,7 @@ void gic_set_guest_irq(unsigned int virtual_irq,
-     events_maintenance(current);
--    spin_lock(&gic.lock);
-+    spin_lock_irq(&gic.lock);
-     if ( list_empty(&gic.lr_pending) )
-     {
-@@ -465,7 +465,7 @@ void gic_set_guest_irq(unsigned int virtual_irq,
-     list_add_tail(&n->lr_queue, &gic.lr_pending);
- out:
--    spin_unlock(&gic.lock);
-+    spin_unlock_irq(&gic.lock);
-     return;
- }
-@@ -559,7 +559,7 @@ static void events_maintenance(struct vcpu *v)
-             (unsigned long *)&vcpu_info(v, evtchn_upcall_pending));
-     if (!already_pending && gic.event_mask != 0) {
--        spin_lock(&gic.lock);
-+        spin_lock_irq(&gic.lock);
-         while ((i = find_next_bit((const long unsigned int *) &gic.event_mask,
-                         sizeof(uint64_t), i)) < sizeof(uint64_t)) {
-@@ -569,7 +569,7 @@ static void events_maintenance(struct vcpu *v)
-             i++;
-         }
--        spin_unlock(&gic.lock);
-+        spin_unlock_irq(&gic.lock);
-     }
- }
-@@ -585,7 +585,7 @@ static void maintenance_interrupt(int irq, void *dev_id, struct cpu_user_regs *r
-                               sizeof(eisr), i)) < sizeof(eisr)) {
-         struct pending_irq *p;
--        spin_lock(&gic.lock);
-+        spin_lock_irq(&gic.lock);
-         lr = GICH[GICH_LR + i];
-         virq = lr & GICH_LR_VIRTUAL_MASK;
-         GICH[GICH_LR + i] = 0;
-@@ -601,7 +601,7 @@ static void maintenance_interrupt(int irq, void *dev_id, struct cpu_user_regs *r
-         } else {
-             gic_inject_irq_stop();
-         }
--        spin_unlock(&gic.lock);
-+        spin_unlock_irq(&gic.lock);
-         spin_lock(&current->arch.vgic.lock);
-         p = irq_to_pending(current, virq);
--- 
-1.7.9.1
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1338565207-2888-32-git-send-email-ian.campbell@citrix.com> b/test/corpus/<1338565207-2888-32-git-send-email-ian.campbell@citrix.com>
deleted file mode 100644 (file)
index ee5a3d5..0000000
+++ /dev/null
@@ -1,156 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Jun 01 16:49:33 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 01 Jun 2012 16:49:33 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SaU6O-00050A-5Z
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 01 Jun 2012 16:49:33 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SaU34-00088y-Pc; Fri, 01 Jun 2012 15:45:58 +0000
-Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1SaU31-00086o-Od
-       for xen-devel@lists.xen.org; Fri, 01 Jun 2012 15:45:55 +0000
-Received: from [193.109.254.147:34525] by server-11.bemta-14.messagelabs.com
-       id BF/9D-01965-3B3E8CF4; Fri, 01 Jun 2012 15:45:55 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-11.tower-27.messagelabs.com!1338565553!5577259!1
-X-Originating-IP: [66.165.176.63]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyNTY3NTA=\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 3435 invoked from network); 1 Jun 2012 15:45:54 -0000
-Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
-       by server-11.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
-       1 Jun 2012 15:45:54 -0000
-X-IronPort-AV: E=Sophos;i="4.75,698,1330923600"; d="scan'208";a="197207437"
-Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
-       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       01 Jun 2012 11:45:52 -0400
-Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
-       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
-       Fri, 1 Jun 2012 11:45:52 -0400
-Received: from [10.80.246.74] (helo=army.uk.xensource.com)     by
-       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
-       <ian.campbell@citrix.com>)      id 1SaTxR-0006I5-EO;
-       Fri, 01 Jun 2012 16:40:09 +0100
-From: Ian Campbell <ian.campbell@citrix.com>
-To: xen-devel@lists.xen.org
-Date: Fri, 1 Jun 2012 15:40:01 +0000
-Message-ID: <1338565207-2888-32-git-send-email-ian.campbell@citrix.com>
-X-Mailer: git-send-email 1.7.9.1
-In-Reply-To: <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
-       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-MIME-Version: 1.0
-Cc: Ian Campbell <ian.campbell@citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: [Xen-devel] [PATCH 32/38] arm: context switch virtual timer
-       registers
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
----
- xen/arch/arm/domain.c        |   10 ++++++++++
- xen/include/asm-arm/cpregs.h |    3 +++
- xen/include/asm-arm/domain.h |    5 +++++
- 3 files changed, 18 insertions(+), 0 deletions(-)
-
-diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
-index e15c1e8..893a169 100644
---- a/xen/arch/arm/domain.c
-+++ b/xen/arch/arm/domain.c
-@@ -49,6 +49,11 @@ static void ctxt_switch_from(struct vcpu *p)
-     p->arch.tpidruro = READ_CP32(TPIDRURO);
-     p->arch.tpidrprw = READ_CP32(TPIDRPRW);
-+    /* Arch timer */
-+    p->arch.cntvoff = READ_CP64(CNTVOFF);
-+    p->arch.cntv_cval = READ_CP64(CNTV_CVAL);
-+    p->arch.cntv_ctl = READ_CP32(CNTV_CTL);
-+
-     /* XXX only save these if ThumbEE e.g. ID_PFR0.THUMB_EE_SUPPORT */
-     p->arch.teecr = READ_CP32(TEECR);
-     p->arch.teehbr = READ_CP32(TEEHBR);
-@@ -128,6 +133,11 @@ static void ctxt_switch_to(struct vcpu *n)
-     WRITE_CP32(n->arch.mair1, MAIR1);
-     isb();
-+    /* Arch timer */
-+    WRITE_CP64(n->arch.cntvoff, CNTVOFF);
-+    WRITE_CP64(n->arch.cntv_cval, CNTV_CVAL);
-+    WRITE_CP32(n->arch.cntv_ctl, CNTV_CTL);
-+
-     /* Control Registers */
-     WRITE_CP32(n->arch.actlr, ACTLR);
-     WRITE_CP32(n->arch.sctlr, SCTLR);
-diff --git a/xen/include/asm-arm/cpregs.h b/xen/include/asm-arm/cpregs.h
-index bd46942..34a9e93 100644
---- a/xen/include/asm-arm/cpregs.h
-+++ b/xen/include/asm-arm/cpregs.h
-@@ -238,10 +238,13 @@
- #define CNTP_CTL        p15,0,c14,c2,1  /* Physical Timer control register */
- #define CNTVCT          p15,1,c14       /* Time counter value + offset */
- #define CNTP_CVAL       p15,2,c14       /* Physical Timer comparator */
-+#define CNTV_CVAL       p15,3,c14       /* Virt. Timer comparator */
- #define CNTVOFF         p15,4,c14       /* Time counter offset */
- #define CNTHCTL         p15,4,c14,c1,0  /* Time counter hyp. control */
- #define CNTHP_TVAL      p15,4,c14,c2,0  /* Hyp. Timer value */
- #define CNTHP_CTL       p15,4,c14,c2,1  /* Hyp. Timer control register */
-+#define CNTV_TVAL       p15,0,c14,c3,0  /* Virt. Timer value */
-+#define CNTV_CTL        p15,0,c14,c3,1  /* Virt. TImer control register */
- #define CNTHP_CVAL      p15,6,c14       /* Hyp. Timer comparator */
- /* CP15 CR15: Implementation Defined Registers */
-diff --git a/xen/include/asm-arm/domain.h b/xen/include/asm-arm/domain.h
-index 32deb52..230ea8c 100644
---- a/xen/include/asm-arm/domain.h
-+++ b/xen/include/asm-arm/domain.h
-@@ -111,6 +111,11 @@ struct arch_vcpu
-     uint32_t teecr, teehbr;
-     uint32_t joscr, jmcr;
-+    /* Arch timers */
-+    uint64_t cntvoff;
-+    uint64_t cntv_cval;
-+    uint32_t cntv_ctl;
-+
-     /* CP 15 */
-     uint32_t csselr;
--- 
-1.7.9.1
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1338565207-2888-33-git-send-email-ian.campbell@citrix.com> b/test/corpus/<1338565207-2888-33-git-send-email-ian.campbell@citrix.com>
deleted file mode 100644 (file)
index fe25667..0000000
+++ /dev/null
@@ -1,111 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Jun 01 16:49:11 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 01 Jun 2012 16:49:11 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SaU66-0004ws-7g
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 01 Jun 2012 16:49:11 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SaU36-0008AB-2R; Fri, 01 Jun 2012 15:46:00 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1SaU34-00088P-8V
-       for xen-devel@lists.xen.org; Fri, 01 Jun 2012 15:45:58 +0000
-Received: from [85.158.138.51:33366] by server-10.bemta-3.messagelabs.com id
-       AC/4B-12071-5B3E8CF4; Fri, 01 Jun 2012 15:45:57 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-4.tower-174.messagelabs.com!1338565552!30346150!3
-X-Originating-IP: [66.165.176.89]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNDc3NzE=\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 25575 invoked from network); 1 Jun 2012 15:45:56 -0000
-Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
-       by server-4.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
-       1 Jun 2012 15:45:56 -0000
-X-IronPort-AV: E=Sophos;i="4.75,698,1330923600"; d="scan'208";a="26548500"
-Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
-       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       01 Jun 2012 11:45:56 -0400
-Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
-       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
-       Fri, 1 Jun 2012 11:45:56 -0400
-Received: from [10.80.246.74] (helo=army.uk.xensource.com)     by
-       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
-       <ian.campbell@citrix.com>)      id 1SaTxR-0006I5-Gx;
-       Fri, 01 Jun 2012 16:40:09 +0100
-From: Ian Campbell <ian.campbell@citrix.com>
-To: xen-devel@lists.xen.org
-Date: Fri, 1 Jun 2012 15:40:02 +0000
-Message-ID: <1338565207-2888-33-git-send-email-ian.campbell@citrix.com>
-X-Mailer: git-send-email 1.7.9.1
-In-Reply-To: <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
-       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-MIME-Version: 1.0
-Cc: Ian Campbell <ian.campbell@citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: [Xen-devel] [PATCH 33/38] arm: the hyp timer seems to work now,
-       default to using it.
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
----
- xen/arch/arm/time.c |    8 ++++++--
- 1 files changed, 6 insertions(+), 2 deletions(-)
-
-diff --git a/xen/arch/arm/time.c b/xen/arch/arm/time.c
-index 437dc71..1587fa2 100644
---- a/xen/arch/arm/time.c
-+++ b/xen/arch/arm/time.c
-@@ -27,8 +27,12 @@
- #include <xen/time.h>
- #include <asm/system.h>
--/* Unfortunately the hypervisor timer interrupt appears to be buggy */
--#define USE_HYP_TIMER 0
-+/*
-+ * Unfortunately the hypervisor timer interrupt appears to be buggy in
-+ * some versions of the model. Disable this to use the physical timer
-+ * instead.
-+ */
-+#define USE_HYP_TIMER 1
- /* For fine-grained timekeeping, we use the ARM "Generic Timer", a
-  * register-mapped time source in the SoC. */
--- 
-1.7.9.1
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1338565207-2888-34-git-send-email-ian.campbell@citrix.com> b/test/corpus/<1338565207-2888-34-git-send-email-ian.campbell@citrix.com>
deleted file mode 100644 (file)
index 33e622a..0000000
+++ /dev/null
@@ -1,186 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Jun 01 16:49:16 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 01 Jun 2012 16:49:16 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SaU6B-0004x1-P4
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 01 Jun 2012 16:49:16 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SaU35-00089H-5t; Fri, 01 Jun 2012 15:45:59 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1SaU32-000872-7f
-       for xen-devel@lists.xen.org; Fri, 01 Jun 2012 15:45:56 +0000
-Received: from [85.158.138.51:33209] by server-2.bemta-3.messagelabs.com id
-       1E/93-17140-3B3E8CF4; Fri, 01 Jun 2012 15:45:55 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-13.tower-174.messagelabs.com!1338565553!11696954!1
-X-Originating-IP: [66.165.176.63]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyNTY3NTA=\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 18903 invoked from network); 1 Jun 2012 15:45:54 -0000
-Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
-       by server-13.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
-       1 Jun 2012 15:45:54 -0000
-X-IronPort-AV: E=Sophos;i="4.75,698,1330923600"; d="scan'208";a="197207441"
-Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
-       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       01 Jun 2012 11:45:53 -0400
-Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
-       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
-       Fri, 1 Jun 2012 11:45:53 -0400
-Received: from [10.80.246.74] (helo=army.uk.xensource.com)     by
-       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
-       <ian.campbell@citrix.com>)      id 1SaTxR-0006I5-JW;
-       Fri, 01 Jun 2012 16:40:09 +0100
-From: Ian Campbell <ian.campbell@citrix.com>
-To: xen-devel@lists.xen.org
-Date: Fri, 1 Jun 2012 15:40:03 +0000
-Message-ID: <1338565207-2888-34-git-send-email-ian.campbell@citrix.com>
-X-Mailer: git-send-email 1.7.9.1
-In-Reply-To: <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
-       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-MIME-Version: 1.0
-Cc: Ian Campbell <ian.campbell@citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: [Xen-devel] [PATCH 34/38] HACK: arm: initial
-       XENMAPSPACE_gmfn_foreign
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-Should use same interface as hybrid x86.
----
- xen/arch/arm/mm.c             |   32 ++++++++++++++++++++++++++------
- xen/arch/x86/mm.c             |    2 ++
- xen/include/public/arch-arm.h |    1 +
- xen/include/public/memory.h   |   12 +++++++-----
- 4 files changed, 36 insertions(+), 11 deletions(-)
-
-diff --git a/xen/arch/arm/mm.c b/xen/arch/arm/mm.c
-index ab52171..1832e7f 100644
---- a/xen/arch/arm/mm.c
-+++ b/xen/arch/arm/mm.c
-@@ -480,12 +480,32 @@ static int xenmem_add_to_physmap_once(
-     switch ( xatp->space )
-     {
--        case XENMAPSPACE_shared_info:
--            if ( xatp->idx == 0 )
--                mfn = virt_to_mfn(d->shared_info);
--            break;
--        default:
--            return -ENOSYS;
-+    case XENMAPSPACE_shared_info:
-+        if ( xatp->idx == 0 )
-+            mfn = virt_to_mfn(d->shared_info);
-+        break;
-+    case XENMAPSPACE_gmfn_foreign:
-+    {
-+        paddr_t maddr;
-+        struct domain *od;
-+
-+        rc = rcu_lock_target_domain_by_id(xatp->foreign_domid, &od);
-+        if ( rc < 0 )
-+            return rc;
-+        maddr = p2m_lookup(od, xatp->idx << PAGE_SHIFT);
-+        if ( maddr == INVALID_PADDR )
-+        {
-+            printk("bad p2m lookup\n");
-+            dump_p2m_lookup(od, xatp->idx << PAGE_SHIFT);
-+            rcu_unlock_domain(od);
-+            return -EINVAL;
-+        }
-+        mfn = maddr >> PAGE_SHIFT;
-+        rcu_unlock_domain(od);
-+        break;
-+    }
-+    default:
-+        return -ENOSYS;
-     }
-     domain_lock(d);
-diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c
-index 876e1ef..d6c90f9 100644
---- a/xen/arch/x86/mm.c
-+++ b/xen/arch/x86/mm.c
-@@ -4572,6 +4572,8 @@ static int xenmem_add_to_physmap_once(
-             mfn = idx;
-             page = mfn_to_page(mfn);
-             break;
-+        case XENMAPSPACE_gmfn_foreign:
-+            return -ENOSYS;
-         }
-         default:
-             break;
-diff --git a/xen/include/public/arch-arm.h b/xen/include/public/arch-arm.h
-index e915cbf..b52bfc7 100644
---- a/xen/include/public/arch-arm.h
-+++ b/xen/include/public/arch-arm.h
-@@ -121,6 +121,7 @@ typedef uint64_t xen_pfn_t;
- #define XEN_LEGACY_MAX_VCPUS 1
- typedef uint32_t xen_ulong_t;
-+#define PRI_xen_ulong PRIx32
- struct vcpu_guest_context {
-     struct cpu_user_regs user_regs;         /* User-level CPU registers     */
-diff --git a/xen/include/public/memory.h b/xen/include/public/memory.h
-index 86d02c8..b2adfbe 100644
---- a/xen/include/public/memory.h
-+++ b/xen/include/public/memory.h
-@@ -212,11 +212,13 @@ struct xen_add_to_physmap {
-     uint16_t    size;
-     /* Source mapping space. */
--#define XENMAPSPACE_shared_info 0 /* shared info page */
--#define XENMAPSPACE_grant_table 1 /* grant table page */
--#define XENMAPSPACE_gmfn        2 /* GMFN */
--#define XENMAPSPACE_gmfn_range  3 /* GMFN range */
--    unsigned int space;
-+#define XENMAPSPACE_shared_info  0 /* shared info page */
-+#define XENMAPSPACE_grant_table  1 /* grant table page */
-+#define XENMAPSPACE_gmfn         2 /* GMFN */
-+#define XENMAPSPACE_gmfn_range   3 /* GMFN range */
-+#define XENMAPSPACE_gmfn_foreign 4 /* GMFN from another guest */
-+    uint16_t space;
-+    domid_t foreign_domid; /* IFF gmfn_foreign */
- #define XENMAPIDX_grant_table_status 0x80000000
--- 
-1.7.9.1
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1338565207-2888-35-git-send-email-ian.campbell@citrix.com> b/test/corpus/<1338565207-2888-35-git-send-email-ian.campbell@citrix.com>
deleted file mode 100644 (file)
index f23adac..0000000
+++ /dev/null
@@ -1,199 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Jun 01 16:49:18 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 01 Jun 2012 16:49:18 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SaU6D-0004xP-NJ
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 01 Jun 2012 16:49:18 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SaU3B-0008H3-A1; Fri, 01 Jun 2012 15:46:05 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1SaU38-0008Cl-Gm
-       for xen-devel@lists.xen.org; Fri, 01 Jun 2012 15:46:02 +0000
-Received: from [85.158.143.99:65367] by server-3.bemta-4.messagelabs.com id
-       A1/31-04252-9B3E8CF4; Fri, 01 Jun 2012 15:46:01 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-5.tower-216.messagelabs.com!1338565558!30625361!1
-X-Originating-IP: [66.165.176.63]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyNTY3NTA=\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 9127 invoked from network); 1 Jun 2012 15:46:00 -0000
-Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
-       by server-5.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
-       1 Jun 2012 15:46:00 -0000
-X-IronPort-AV: E=Sophos;i="4.75,698,1330923600"; d="scan'208";a="197207444"
-Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
-       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       01 Jun 2012 11:45:55 -0400
-Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
-       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
-       Fri, 1 Jun 2012 11:45:55 -0400
-Received: from [10.80.246.74] (helo=army.uk.xensource.com)     by
-       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
-       <ian.campbell@citrix.com>)      id 1SaTxR-0006I5-Mb;
-       Fri, 01 Jun 2012 16:40:09 +0100
-From: Ian Campbell <ian.campbell@citrix.com>
-To: xen-devel@lists.xen.org
-Date: Fri, 1 Jun 2012 15:40:04 +0000
-Message-ID: <1338565207-2888-35-git-send-email-ian.campbell@citrix.com>
-X-Mailer: git-send-email 1.7.9.1
-In-Reply-To: <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
-       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-MIME-Version: 1.0
-Cc: Ian Campbell <ian.campbell@citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: [Xen-devel] [PATCH 35/38] arm: move PSR flag definitions into
-       interface, for tools use.
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
----
- xen/arch/arm/entry.S            |    1 +
- xen/include/asm-arm/page.h      |    2 ++
- xen/include/asm-arm/processor.h |   21 ---------------------
- xen/include/asm-arm/system.h    |    2 +-
- xen/include/public/arch-arm.h   |   23 ++++++++++++++++++++++-
- 5 files changed, 26 insertions(+), 23 deletions(-)
-
-diff --git a/xen/arch/arm/entry.S b/xen/arch/arm/entry.S
-index 5bc3906..2ff32a1 100644
---- a/xen/arch/arm/entry.S
-+++ b/xen/arch/arm/entry.S
-@@ -1,5 +1,6 @@
- #include <xen/config.h>
- #include <asm/asm_defns.h>
-+#include <public/xen.h>
- #define SAVE_ONE_BANKED(reg)  mrs r11, reg; str r11, [sp, #UREGS_##reg]
- #define RESTORE_ONE_BANKED(reg)       ldr r11, [sp, #UREGS_##reg]; msr reg, r11
-diff --git a/xen/include/asm-arm/page.h b/xen/include/asm-arm/page.h
-index f36bf6f..12ab2e8 100644
---- a/xen/include/asm-arm/page.h
-+++ b/xen/include/asm-arm/page.h
-@@ -2,6 +2,8 @@
- #define __ARM_PAGE_H__
- #include <xen/config.h>
-+#include <public/xen.h>
-+#include <asm/processor.h>
- #define PADDR_BITS              40
- #define PADDR_MASK              ((1ULL << PADDR_BITS)-1)
-diff --git a/xen/include/asm-arm/processor.h b/xen/include/asm-arm/processor.h
-index 9b3c9dd..3849b23 100644
---- a/xen/include/asm-arm/processor.h
-+++ b/xen/include/asm-arm/processor.h
-@@ -3,27 +3,6 @@
- #include <asm/cpregs.h>
--/* PSR bits (CPSR, SPSR)*/
--
--/* 0-4: Mode */
--#define PSR_MODE_MASK 0x1f
--#define PSR_MODE_USR 0x10
--#define PSR_MODE_FIQ 0x11
--#define PSR_MODE_IRQ 0x12
--#define PSR_MODE_SVC 0x13
--#define PSR_MODE_MON 0x16
--#define PSR_MODE_ABT 0x17
--#define PSR_MODE_HYP 0x1a
--#define PSR_MODE_UND 0x1b
--#define PSR_MODE_SYS 0x1f
--
--#define PSR_THUMB       (1<<5)        /* Thumb Mode enable */
--#define PSR_FIQ_MASK    (1<<6)        /* Fast Interrupt mask */
--#define PSR_IRQ_MASK    (1<<7)        /* Interrupt mask */
--#define PSR_ABT_MASK    (1<<8)        /* Asynchronous Abort mask */
--#define PSR_BIG_ENDIAN  (1<<9)        /* Big Endian Mode */
--#define PSR_JAZELLE     (1<<24)       /* Jazelle Mode */
--
- /* TTBCR Translation Table Base Control Register */
- #define TTBCR_EAE    0x80000000
- #define TTBCR_N_MASK 0x07
-diff --git a/xen/include/asm-arm/system.h b/xen/include/asm-arm/system.h
-index 7963ea5..216ef1f 100644
---- a/xen/include/asm-arm/system.h
-+++ b/xen/include/asm-arm/system.h
-@@ -3,7 +3,7 @@
- #define __ASM_SYSTEM_H
- #include <xen/lib.h>
--#include <asm/processor.h>
-+#include <public/arch-arm.h>
- #define nop() \
-     asm volatile ( "nop" )
-diff --git a/xen/include/public/arch-arm.h b/xen/include/public/arch-arm.h
-index b52bfc7..7ebe966 100644
---- a/xen/include/public/arch-arm.h
-+++ b/xen/include/public/arch-arm.h
-@@ -139,7 +139,28 @@ struct arch_shared_info { };
- typedef struct arch_shared_info arch_shared_info_t;
- typedef uint64_t xen_callback_t;
--#endif
-+#endif /* ifndef __ASSEMBLY __ */
-+
-+/* PSR bits (CPSR, SPSR)*/
-+
-+/* 0-4: Mode */
-+#define PSR_MODE_MASK 0x1f
-+#define PSR_MODE_USR 0x10
-+#define PSR_MODE_FIQ 0x11
-+#define PSR_MODE_IRQ 0x12
-+#define PSR_MODE_SVC 0x13
-+#define PSR_MODE_MON 0x16
-+#define PSR_MODE_ABT 0x17
-+#define PSR_MODE_HYP 0x1a
-+#define PSR_MODE_UND 0x1b
-+#define PSR_MODE_SYS 0x1f
-+
-+#define PSR_THUMB       (1<<5)        /* Thumb Mode enable */
-+#define PSR_FIQ_MASK    (1<<6)        /* Fast Interrupt mask */
-+#define PSR_IRQ_MASK    (1<<7)        /* Interrupt mask */
-+#define PSR_ABT_MASK    (1<<8)        /* Asynchronous Abort mask */
-+#define PSR_BIG_ENDIAN  (1<<9)        /* Big Endian Mode */
-+#define PSR_JAZELLE     (1<<24)       /* Jazelle Mode */
- #endif /*  __XEN_PUBLIC_ARCH_ARM_H__ */
--- 
-1.7.9.1
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1338565207-2888-36-git-send-email-ian.campbell@citrix.com> b/test/corpus/<1338565207-2888-36-git-send-email-ian.campbell@citrix.com>
deleted file mode 100644 (file)
index afcdae8..0000000
+++ /dev/null
@@ -1,526 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Jun 01 16:49:44 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 01 Jun 2012 16:49:44 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SaU6W-000530-P9
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 01 Jun 2012 16:49:44 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SaU31-00086y-U7; Fri, 01 Jun 2012 15:45:55 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1SaU2z-000869-D0
-       for xen-devel@lists.xen.org; Fri, 01 Jun 2012 15:45:53 +0000
-Received: from [85.158.143.35:58647] by server-1.bemta-4.messagelabs.com id
-       80/C9-27869-0B3E8CF4; Fri, 01 Jun 2012 15:45:52 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-8.tower-21.messagelabs.com!1338565548!13156336!2
-X-Originating-IP: [66.165.176.63]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyNTY3NTA=\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 23382 invoked from network); 1 Jun 2012 15:45:51 -0000
-Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
-       by server-8.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
-       1 Jun 2012 15:45:50 -0000
-X-IronPort-AV: E=Sophos;i="4.75,698,1330923600"; d="scan'208";a="197207418"
-Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
-       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       01 Jun 2012 11:45:48 -0400
-Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
-       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
-       Fri, 1 Jun 2012 11:45:48 -0400
-Received: from [10.80.246.74] (helo=army.uk.xensource.com)     by
-       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
-       <ian.campbell@citrix.com>)      id 1SaTxR-0006I5-OE;
-       Fri, 01 Jun 2012 16:40:09 +0100
-From: Ian Campbell <ian.campbell@citrix.com>
-To: xen-devel@lists.xen.org
-Date: Fri, 1 Jun 2012 15:40:05 +0000
-Message-ID: <1338565207-2888-36-git-send-email-ian.campbell@citrix.com>
-X-Mailer: git-send-email 1.7.9.1
-In-Reply-To: <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
-       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-MIME-Version: 1.0
-Cc: Ian Campbell <ian.campbell@citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: [Xen-devel] [PATCH 36/38] libxc: add ARM support to xc_dom (PV
-       domain building)
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-Includes ARM zImage support.
-
-Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
----
- tools/libxc/Makefile                 |    1 +
- tools/libxc/xc_dom.h                 |    5 +-
- tools/libxc/xc_dom_arm.c             |  135 +++++++++++++++++++++++++++-
- tools/libxc/xc_dom_armzimageloader.c |  167 ++++++++++++++++++++++++++++++++++
- tools/libxc/xc_dom_core.c            |   12 ++-
- tools/libxc/xg_private.h             |    4 +
- 6 files changed, 315 insertions(+), 9 deletions(-)
- create mode 100644 tools/libxc/xc_dom_armzimageloader.c
-
-diff --git a/tools/libxc/Makefile b/tools/libxc/Makefile
-index ca38cbd..a01d457 100644
---- a/tools/libxc/Makefile
-+++ b/tools/libxc/Makefile
-@@ -59,6 +59,7 @@ GUEST_SRCS-y += libelf-dominfo.c libelf-relocate.c
- GUEST_SRCS-y                 += xc_dom_core.c xc_dom_boot.c
- GUEST_SRCS-y                 += xc_dom_elfloader.c
- GUEST_SRCS-$(CONFIG_X86)     += xc_dom_bzimageloader.c
-+GUEST_SRCS-$(CONFIG_ARM)     += xc_dom_armzimageloader.c
- GUEST_SRCS-y                 += xc_dom_binloader.c
- GUEST_SRCS-y                 += xc_dom_compat_linux.c
-diff --git a/tools/libxc/xc_dom.h b/tools/libxc/xc_dom.h
-index 2aef64a..4db8fad 100644
---- a/tools/libxc/xc_dom.h
-+++ b/tools/libxc/xc_dom.h
-@@ -93,6 +93,7 @@ struct xc_dom_image {
-     void *p2m_guest;
-     /* physical memory */
-+    xen_pfn_t rambase_pfn;
-     xen_pfn_t total_pages;
-     struct xc_dom_phys *phys_pages;
-     int realmodearea_log;
-@@ -286,7 +287,7 @@ static inline xen_pfn_t xc_dom_p2m_host(struct xc_dom_image *dom, xen_pfn_t pfn)
- {
-     if (dom->shadow_enabled)
-         return pfn;
--    return dom->p2m_host[pfn];
-+    return dom->p2m_host[pfn - dom->rambase_pfn];
- }
- static inline xen_pfn_t xc_dom_p2m_guest(struct xc_dom_image *dom,
-@@ -294,7 +295,7 @@ static inline xen_pfn_t xc_dom_p2m_guest(struct xc_dom_image *dom,
- {
-     if (xc_dom_feature_translated(dom))
-         return pfn;
--    return dom->p2m_host[pfn];
-+    return dom->p2m_host[pfn - dom->rambase_pfn];
- }
- /* --- arch bits --------------------------------------------------- */
-diff --git a/tools/libxc/xc_dom_arm.c b/tools/libxc/xc_dom_arm.c
-index 122d0e8..9099cad 100644
---- a/tools/libxc/xc_dom_arm.c
-+++ b/tools/libxc/xc_dom_arm.c
-@@ -18,14 +18,138 @@
-  * Copyright (c) 2011, Citrix Systems
-  */
- #include <inttypes.h>
-+
- #include <xen/xen.h>
-+#include <xen/io/protocols.h>
-+
- #include "xg_private.h"
- #include "xc_dom.h"
-+/* ------------------------------------------------------------------------ */
-+/*
-+ * arm guests are hybrid and start off with paging disabled, therefore no
-+ * pagetables and nothing to do here.
-+ */
-+static int count_pgtables_arm(struct xc_dom_image *dom)
-+{
-+    DOMPRINTF_CALLED(dom->xch);
-+    return 0;
-+}
-+
-+static int setup_pgtables_arm(struct xc_dom_image *dom)
-+{
-+    DOMPRINTF_CALLED(dom->xch);
-+    return 0;
-+}
-+
-+/* ------------------------------------------------------------------------ */
-+
-+static int alloc_magic_pages(struct xc_dom_image *dom)
-+{
-+    DOMPRINTF_CALLED(dom->xch);
-+    /* XXX
-+     *   dom->p2m_guest
-+     *   dom->start_info_pfn
-+     *   dom->xenstore_pfn
-+     *   dom->console_pfn
-+     */
-+    return 0;
-+}
-+
-+/* ------------------------------------------------------------------------ */
-+
-+static int start_info_arm(struct xc_dom_image *dom)
-+{
-+    DOMPRINTF_CALLED(dom->xch);
-+    /* XXX */
-+    return 0;
-+}
-+
-+static int shared_info_arm(struct xc_dom_image *dom, void *ptr)
-+{
-+    DOMPRINTF_CALLED(dom->xch);
-+    /* XXX */
-+    return 0;
-+}
-+
-+/* ------------------------------------------------------------------------ */
-+
-+static int vcpu_arm(struct xc_dom_image *dom, void *ptr)
-+{
-+    vcpu_guest_context_t *ctxt = ptr;
-+
-+    DOMPRINTF_CALLED(dom->xch);
-+
-+    /* clear everything */
-+    memset(ctxt, 0, sizeof(*ctxt));
-+
-+    ctxt->user_regs.pc = dom->parms.virt_entry;
-+    ctxt->user_regs.r0 = 0; /* SBZ */
-+    ctxt->user_regs.r1 = 2272; /* Machine NR: Versatile Express */
-+
-+    ctxt->user_regs.r2 = 0xffffffff; //devicetree_seg //dtb_paddr; //atags or dtb /* XXX using APPEND right now */
-+    ctxt->user_regs.r3 = 0xdeadbeef;
-+    ctxt->sctlr = /* #define SCTLR_BASE */0x00c50078;
-+    ctxt->ttbr0 = 0;
-+    ctxt->ttbr1 = 0;
-+    ctxt->ttbcr = 0; /* Defined Reset Value */
-+
-+    ctxt->user_regs.cpsr = PSR_ABT_MASK|PSR_FIQ_MASK|PSR_IRQ_MASK|PSR_MODE_SVC;
-+
-+    DOMPRINTF("Initial state CPSR %#"PRIx32" PC %#"PRIx32,
-+           ctxt->user_regs.cpsr, ctxt->user_regs.pc);
-+
-+    return 0;
-+}
-+
-+/* ------------------------------------------------------------------------ */
-+
-+static struct xc_dom_arch xc_dom_32 = {
-+    .guest_type = "xen-3.0-armv7l",
-+    .native_protocol = XEN_IO_PROTO_ABI_ARM,
-+    .page_shift = PAGE_SHIFT_ARM,
-+    .sizeof_pfn = 8,
-+    .alloc_magic_pages = alloc_magic_pages,
-+    .count_pgtables = count_pgtables_arm,
-+    .setup_pgtables = setup_pgtables_arm,
-+    .start_info = start_info_arm,
-+    .shared_info = shared_info_arm,
-+    .vcpu = vcpu_arm,
-+};
-+
-+static void __init register_arch_hooks(void)
-+{
-+    xc_dom_register_arch_hooks(&xc_dom_32);
-+}
-+
- int arch_setup_meminit(struct xc_dom_image *dom)
- {
--    errno = ENOSYS;
--    return -1;
-+    int rc;
-+    xen_pfn_t pfn, allocsz, i;
-+
-+    dom->shadow_enabled = 1;
-+
-+    dom->p2m_host = xc_dom_malloc(dom, sizeof(xen_pfn_t) * dom->total_pages);
-+
-+    /* setup initial p2m */
-+    for ( pfn = 0; pfn < dom->total_pages; pfn++ )
-+        dom->p2m_host[pfn] = pfn + dom->rambase_pfn;
-+
-+    /* allocate guest memory */
-+    for ( i = rc = allocsz = 0;
-+          (i < dom->total_pages) && !rc;
-+          i += allocsz )
-+    {
-+        allocsz = dom->total_pages - i;
-+        if ( allocsz > 1024*1024 )
-+            allocsz = 1024*1024;
-+
-+        rc = xc_domain_populate_physmap_exact(
-+            dom->xch, dom->guest_domid, allocsz,
-+            0, 0, &dom->p2m_host[i]);
-+    }
-+
-+    return 0;
- }
- int arch_setup_bootearly(struct xc_dom_image *dom)
-@@ -36,9 +160,14 @@ int arch_setup_bootearly(struct xc_dom_image *dom)
- int arch_setup_bootlate(struct xc_dom_image *dom)
- {
--    DOMPRINTF("%s: doing nothing", __FUNCTION__);
-+    /* XXX
-+     *   map shared info
-+     *   map grant tables
-+     *   setup shared info
-+     */
-     return 0;
- }
-+
- /*
-  * Local variables:
-  * mode: C
-diff --git a/tools/libxc/xc_dom_armzimageloader.c b/tools/libxc/xc_dom_armzimageloader.c
-new file mode 100644
-index 0000000..220176d
---- /dev/null
-+++ b/tools/libxc/xc_dom_armzimageloader.c
-@@ -0,0 +1,167 @@
-+/*
-+ * Xen domain builder -- ARM zImage bits
-+ *
-+ * Parse and load ARM zImage kernel images.
-+ *
-+ * Copyright (C) 2012, Citrix Systems.
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License as published by the Free Software Foundation;
-+ * version 2.1 of the License.
-+ *
-+ * This library is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-+ * Lesser General Public License for more details.
-+ *
-+ * You should have received a copy of the GNU Lesser General Public
-+ * License along with this library; if not, write to the Free Software
-+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
-+ *
-+ */
-+
-+#include <stdio.h>
-+#include <stdlib.h>
-+#include <inttypes.h>
-+
-+#include "xg_private.h"
-+#include "xc_dom.h"
-+
-+#include <arpa/inet.h> /* XXX ntohl is not the right function... */
-+
-+#define ZIMAGE_MAGIC_OFFSET 0x24
-+#define ZIMAGE_START_OFFSET 0x28
-+#define ZIMAGE_END_OFFSET   0x2c
-+
-+#define ZIMAGE_MAGIC 0x016f2818
-+
-+struct minimal_dtb_header {
-+    uint32_t magic;
-+    uint32_t total_size;
-+    /* There are other fields but we don't use them yet. */
-+};
-+
-+#define DTB_MAGIC 0xd00dfeed
-+
-+static int xc_dom_probe_zimage_kernel(struct xc_dom_image *dom)
-+{
-+    uint32_t *zimage;
-+    uint32_t end;
-+
-+    if ( dom->kernel_blob == NULL )
-+    {
-+        xc_dom_panic(dom->xch, XC_INTERNAL_ERROR,
-+                     "%s: no kernel image loaded", __FUNCTION__);
-+        return -EINVAL;
-+    }
-+
-+    if ( dom->kernel_size < 0x30 /*sizeof(struct setup_header)*/ )
-+    {
-+        xc_dom_printf(dom->xch, "%s: kernel image too small", __FUNCTION__);
-+        return -EINVAL;
-+    }
-+
-+    zimage = (uint32_t *)dom->kernel_blob;
-+    if ( zimage[ZIMAGE_MAGIC_OFFSET/4] != ZIMAGE_MAGIC )
-+    {
-+        xc_dom_printf(dom->xch, "%s: kernel is not a bzImage", __FUNCTION__);
-+        return -EINVAL;
-+    }
-+
-+    end = zimage[ZIMAGE_END_OFFSET/4];
-+
-+    /*
-+     * Check for an appended DTB.
-+     */
-+    if ( end + sizeof(struct minimal_dtb_header) < dom->kernel_size ) {
-+        struct minimal_dtb_header *dtb_hdr;
-+        dtb_hdr = (struct minimal_dtb_header *)(dom->kernel_blob + end);
-+        if (ntohl/*be32_to_cpu*/(dtb_hdr->magic) == DTB_MAGIC) {
-+            xc_dom_printf(dom->xch, "%s: found an appended DTB", __FUNCTION__);
-+            end += ntohl/*be32_to_cpu*/(dtb_hdr->total_size);
-+        }
-+    }
-+
-+    dom->kernel_size = end;
-+
-+    return 0;
-+}
-+
-+static int xc_dom_parse_zimage_kernel(struct xc_dom_image *dom)
-+{
-+    uint32_t *zimage;
-+    uint32_t start, entry_addr;
-+    uint64_t v_start, v_end;
-+    uint64_t rambase = 0x80000000; /* XXX */
-+
-+    DOMPRINTF_CALLED(dom->xch);
-+
-+    zimage = (uint32_t *)dom->kernel_blob;
-+
-+    dom->rambase_pfn = rambase >> XC_PAGE_SHIFT;
-+
-+    v_start = rambase + 0x8000; /* XXX */
-+    v_end = v_start + dom->kernel_size;
-+
-+    start = zimage[ZIMAGE_START_OFFSET/4];
-+
-+    if (start == 0)
-+        entry_addr = v_start;
-+    else
-+        entry_addr = start;
-+
-+    /* find kernel segment */
-+    dom->kernel_seg.vstart = v_start;
-+    dom->kernel_seg.vend   = v_end;
-+
-+    dom->parms.virt_entry = entry_addr;
-+
-+    dom->guest_type = "xen-3.0-armv7l";
-+    DOMPRINTF("%s: %s: RAM starts at %"PRI_xen_pfn,
-+              __FUNCTION__, dom->guest_type, dom->rambase_pfn);
-+    DOMPRINTF("%s: %s: 0x%" PRIx64 " -> 0x%" PRIx64 "",
-+              __FUNCTION__, dom->guest_type,
-+              dom->kernel_seg.vstart, dom->kernel_seg.vend);
-+    return 0;
-+}
-+
-+static int xc_dom_load_zimage_kernel(struct xc_dom_image *dom)
-+{
-+    void *dst;
-+
-+    DOMPRINTF_CALLED(dom->xch);
-+
-+    dst = xc_dom_seg_to_ptr(dom, &dom->kernel_seg);
-+
-+    DOMPRINTF("%s: kernel sed %#"PRIx64"-%#"PRIx64,
-+              __func__, dom->kernel_seg.vstart, dom->kernel_seg.vend);
-+    DOMPRINTF("%s: copy %zd bytes from blob %p to dst %p",
-+              __func__, dom->kernel_size, dom->kernel_blob, dst);
-+
-+    memcpy(dst, dom->kernel_blob, dom->kernel_size);
-+
-+    return 0;
-+}
-+
-+static struct xc_dom_loader zimage_loader = {
-+    .name = "Linux zImage (ARM)",
-+    .probe = xc_dom_probe_zimage_kernel,
-+    .parser = xc_dom_parse_zimage_kernel,
-+    .loader = xc_dom_load_zimage_kernel,
-+};
-+
-+static void __init register_loader(void)
-+{
-+    xc_dom_register_loader(&zimage_loader);
-+}
-+
-+/*
-+ * Local variables:
-+ * mode: C
-+ * c-set-style: "BSD"
-+ * c-basic-offset: 4
-+ * tab-width: 4
-+ * indent-tabs-mode: nil
-+ * End:
-+ */
-diff --git a/tools/libxc/xc_dom_core.c b/tools/libxc/xc_dom_core.c
-index fea9de5..b0d48d5 100644
---- a/tools/libxc/xc_dom_core.c
-+++ b/tools/libxc/xc_dom_core.c
-@@ -307,15 +307,17 @@ void *xc_dom_pfn_to_ptr(struct xc_dom_image *dom, xen_pfn_t pfn,
-                         xen_pfn_t count)
- {
-     struct xc_dom_phys *phys;
-+    xen_pfn_t offset;
-     unsigned int page_shift = XC_DOM_PAGE_SHIFT(dom);
-     char *mode = "unset";
--    if ( pfn > dom->total_pages ||    /* multiple checks to avoid overflows */
-+    offset = pfn-dom->rambase_pfn;
-+    if ( offset > dom->total_pages ||    /* multiple checks to avoid overflows */
-          count > dom->total_pages ||
--         pfn > dom->total_pages - count )
-+         offset > dom->total_pages - count )
-     {
--        DOMPRINTF("%s: pfn out of range (0x%" PRIpfn " > 0x%" PRIpfn ")",
--                  __FUNCTION__, pfn, dom->total_pages);
-+        DOMPRINTF("%s: pfn %"PRI_xen_pfn" out of range (0x%" PRIpfn " > 0x%" PRIpfn ")",
-+                  __FUNCTION__, pfn, offset, dom->total_pages);
-         return NULL;
-     }
-@@ -599,6 +601,8 @@ struct xc_dom_image *xc_dom_allocate(xc_interface *xch,
-     dom->parms.virt_hv_start_low = UNSET_ADDR;
-     dom->parms.elf_paddr_offset = UNSET_ADDR;
-+    dom->rambase_pfn = 0;
-+
-     dom->alloc_malloc += sizeof(*dom);
-     return dom;
-diff --git a/tools/libxc/xg_private.h b/tools/libxc/xg_private.h
-index a29fa26..a271942 100644
---- a/tools/libxc/xg_private.h
-+++ b/tools/libxc/xg_private.h
-@@ -148,6 +148,10 @@ typedef l4_pgentry_64_t l4_pgentry_t;
- #define l4_table_offset(_a) l4_table_offset_x86_64(_a)
- #endif
-+#define PAGE_SHIFT_ARM          12
-+#define PAGE_SIZE_ARM           (1UL << PAGE_SHIFT_ARM)
-+#define PAGE_MASK_ARM           (~(PAGE_SIZE_ARM-1))
-+
- #define PAGE_SHIFT_X86          12
- #define PAGE_SIZE_X86           (1UL << PAGE_SHIFT_X86)
- #define PAGE_MASK_X86           (~(PAGE_SIZE_X86-1))
--- 
-1.7.9.1
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1338565207-2888-37-git-send-email-ian.campbell@citrix.com> b/test/corpus/<1338565207-2888-37-git-send-email-ian.campbell@citrix.com>
deleted file mode 100644 (file)
index e948a12..0000000
+++ /dev/null
@@ -1,232 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Jun 01 16:49:36 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 01 Jun 2012 16:49:36 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SaU6O-00050j-Qs
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 01 Jun 2012 16:49:36 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SaU3K-00009K-88; Fri, 01 Jun 2012 15:46:14 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1SaU3D-0008Cl-8I
-       for xen-devel@lists.xen.org; Fri, 01 Jun 2012 15:46:07 +0000
-Received: from [85.158.143.99:6147] by server-3.bemta-4.messagelabs.com id
-       C5/51-04252-FB3E8CF4; Fri, 01 Jun 2012 15:46:07 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-5.tower-216.messagelabs.com!1338565558!30625361!9
-X-Originating-IP: [66.165.176.63]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyNTY3NTA=\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 9508 invoked from network); 1 Jun 2012 15:46:05 -0000
-Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
-       by server-5.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
-       1 Jun 2012 15:46:05 -0000
-X-IronPort-AV: E=Sophos;i="4.75,698,1330923600"; d="scan'208";a="197207494"
-Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
-       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       01 Jun 2012 11:46:05 -0400
-Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
-       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
-       Fri, 1 Jun 2012 11:46:05 -0400
-Received: from [10.80.246.74] (helo=army.uk.xensource.com)     by
-       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
-       <ian.campbell@citrix.com>)      id 1SaTxR-0006I5-Q4;
-       Fri, 01 Jun 2012 16:40:09 +0100
-From: Ian Campbell <ian.campbell@citrix.com>
-To: xen-devel@lists.xen.org
-Date: Fri, 1 Jun 2012 15:40:06 +0000
-Message-ID: <1338565207-2888-37-git-send-email-ian.campbell@citrix.com>
-X-Mailer: git-send-email 1.7.9.1
-In-Reply-To: <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
-       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-MIME-Version: 1.0
-Cc: Ian Campbell <ian.campbell@citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: [Xen-devel] [PATCH 37/38] HACK: add simple xcbuild
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-Based on init-xenstore-domain.c.
-
-Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
----
- tools/xcutils/Makefile  |    6 ++-
- tools/xcutils/xcbuild.c |  100 +++++++++++++++++++++++++++++++++++++++++++++++
- 2 files changed, 105 insertions(+), 1 deletions(-)
- create mode 100644 tools/xcutils/xcbuild.c
-
-diff --git a/tools/xcutils/Makefile b/tools/xcutils/Makefile
-index 6c502f1..dcd2c84 100644
---- a/tools/xcutils/Makefile
-+++ b/tools/xcutils/Makefile
-@@ -11,7 +11,7 @@
- XEN_ROOT      = $(CURDIR)/../..
- include $(XEN_ROOT)/tools/Rules.mk
--PROGRAMS = xc_restore xc_save readnotes lsevtchn
-+PROGRAMS = xc_restore xc_save readnotes lsevtchn xcbuild
- CFLAGS += -Werror
-@@ -19,6 +19,7 @@ CFLAGS_xc_restore.o := $(CFLAGS_libxenctrl) $(CFLAGS_libxenguest)
- CFLAGS_xc_save.o    := $(CFLAGS_libxenctrl) $(CFLAGS_libxenguest) $(CFLAGS_libxenstore)
- CFLAGS_readnotes.o  := $(CFLAGS_libxenctrl) $(CFLAGS_libxenguest)
- CFLAGS_lsevtchn.o   := $(CFLAGS_libxenctrl)
-+CFLAGS_xcbuild.o    := $(CFLAGS_libxenctrl) $(CFLAGS_libxenguest)
- .PHONY: all
- all: build
-@@ -32,6 +33,9 @@ xc_restore: xc_restore.o
- xc_save: xc_save.o
-       $(CC) $(LDFLAGS) $^ -o $@ $(LDLIBS_libxenctrl) $(LDLIBS_libxenguest) $(LDLIBS_libxenstore) $(APPEND_LDFLAGS)
-+xcbuild: xcbuild.o
-+      $(CC) $(LDFLAGS) $^ -o $@ $(LDLIBS_libxenctrl) $(LDLIBS_libxenguest) $(APPEND_LDFLAGS)
-+
- readnotes: readnotes.o
-       $(CC) $(LDFLAGS) $^ -o $@ $(LDLIBS_libxenctrl) $(LDLIBS_libxenguest) $(APPEND_LDFLAGS)
-diff --git a/tools/xcutils/xcbuild.c b/tools/xcutils/xcbuild.c
-new file mode 100644
-index 0000000..8f8660e
---- /dev/null
-+++ b/tools/xcutils/xcbuild.c
-@@ -0,0 +1,100 @@
-+#include <unistd.h>
-+#include <stdio.h>
-+#include <stdlib.h>
-+
-+#include <errno.h>
-+
-+#include <xenctrl.h>
-+#include <xentoollog.h>
-+#include <xc_dom.h>
-+
-+int main(int argc, char **argv)
-+{
-+      xentoollog_logger *logger;
-+      xc_interface *xch;
-+      int rv;
-+      const char *image;
-+      uint32_t domid;
-+      xen_domain_handle_t handle;
-+      int maxmem = 128; /* MB */ //atoi(argv[2]);
-+      int memory_kb = 2*(maxmem + 1)*1024; /* bit of slack... */
-+      struct xc_dom_image *dom;
-+
-+      image = (argc < 2) ? "guest.img" : argv[1];
-+      printf("Image: %s\n", image);
-+      printf("Memory: %dKB\n", memory_kb);
-+
-+      logger = (xentoollog_logger*)
-+              xtl_createlogger_stdiostream(stderr, XTL_DEBUG, 0);
-+      if ( logger == NULL )
-+      {
-+              perror("xtl_createlogger_stdiostream");
-+              exit(1);
-+      }
-+
-+      xch = xc_interface_open(logger, logger, 0);
-+      if ( xch == NULL )
-+      {
-+              perror("xc_interface_open");
-+              exit(1);
-+      }
-+
-+      rv = xc_dom_loginit(xch);
-+      if (rv) return rv;
-+
-+      //rv = xc_flask_context_to_sid(xch, argv[3], strlen(argv[3]), &ssid);
-+      //if (rv) return rv;
-+
-+      rv = xc_domain_create(xch, 0 /* ssid */, handle, 0 /* flags */, &domid);
-+      printf("xc_domain_create: %d (%d)\n", rv, errno);
-+      if ( rv < 0 )
-+      {
-+              perror("xc_domain_create");
-+              exit(1);
-+      }
-+
-+      printf("building dom%d\n", domid);
-+
-+      rv = xc_domain_max_vcpus(xch, domid, 1);
-+      if ( rv < 0)
-+      {
-+              perror("xc_domain_max_vcpus");
-+              exit(1);
-+      }
-+
-+      rv = xc_domain_setmaxmem(xch, domid, memory_kb);
-+      if ( rv < 0)
-+      {
-+              perror("xc_domain_setmaxmem");
-+              exit(1);
-+      }
-+
-+      dom = xc_dom_allocate(xch, "", NULL);
-+      rv = xc_dom_kernel_file(dom, image);
-+      if (rv) return rv;
-+      rv = xc_dom_boot_xen_init(dom, xch, domid);
-+      if (rv) return rv;
-+      rv = xc_dom_parse_image(dom);
-+      if (rv) return rv;
-+      rv = xc_dom_mem_init(dom, 2*maxmem);/* XXX */
-+      if (rv) return rv;
-+      rv = xc_dom_boot_mem_init(dom);
-+      if (rv) return rv;
-+      rv = xc_dom_build_image(dom);
-+      if (rv) return rv;
-+      rv = xc_dom_boot_image(dom);
-+      if (rv) return rv;
-+
-+      xc_dom_release(dom);
-+
-+      rv = xc_domain_unpause(xch, domid);
-+      if ( rv )
-+      {
-+              perror("xc_domain_unpause");
-+              exit(1);
-+      }
-+
-+      xc_interface_close(xch);
-+
-+      return 0;
-+}
--- 
-1.7.9.1
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1338565207-2888-38-git-send-email-ian.campbell@citrix.com> b/test/corpus/<1338565207-2888-38-git-send-email-ian.campbell@citrix.com>
deleted file mode 100644 (file)
index 0e0d246..0000000
+++ /dev/null
@@ -1,111 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Jun 01 16:49:22 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 01 Jun 2012 16:49:22 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SaU6H-0004y5-8P
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 01 Jun 2012 16:49:22 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SaU3D-0008Mi-VP; Fri, 01 Jun 2012 15:46:07 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1SaU3A-0008D3-BT
-       for xen-devel@lists.xen.org; Fri, 01 Jun 2012 15:46:04 +0000
-Received: from [85.158.143.99:65476] by server-1.bemta-4.messagelabs.com id
-       F3/0A-27869-CB3E8CF4; Fri, 01 Jun 2012 15:46:04 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-5.tower-216.messagelabs.com!1338565558!30625361!5
-X-Originating-IP: [66.165.176.63]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyNTY3NTA=\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 9288 invoked from network); 1 Jun 2012 15:46:02 -0000
-Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
-       by server-5.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
-       1 Jun 2012 15:46:02 -0000
-X-IronPort-AV: E=Sophos;i="4.75,698,1330923600"; d="scan'208";a="197207473"
-Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
-       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       01 Jun 2012 11:46:01 -0400
-Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
-       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
-       Fri, 1 Jun 2012 11:46:01 -0400
-Received: from [10.80.246.74] (helo=army.uk.xensource.com)     by
-       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
-       <ian.campbell@citrix.com>)      id 1SaTxR-0006I5-RY;
-       Fri, 01 Jun 2012 16:40:09 +0100
-From: Ian Campbell <ian.campbell@citrix.com>
-To: xen-devel@lists.xen.org
-Date: Fri, 1 Jun 2012 15:40:07 +0000
-Message-ID: <1338565207-2888-38-git-send-email-ian.campbell@citrix.com>
-X-Mailer: git-send-email 1.7.9.1
-In-Reply-To: <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
-       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-MIME-Version: 1.0
-Cc: Ian Campbell <ian.campbell@citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: [Xen-devel] [PATCH 38/38] HACK: arm: disable hypercall
-       continuations.
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
----
- xen/include/xen/sched.h |    4 ++++
- 1 files changed, 4 insertions(+), 0 deletions(-)
-
-diff --git a/xen/include/xen/sched.h b/xen/include/xen/sched.h
-index 53804c8..15fa6b4 100644
---- a/xen/include/xen/sched.h
-+++ b/xen/include/xen/sched.h
-@@ -577,10 +577,14 @@ unsigned long hypercall_create_continuation(
-     unsigned int op, const char *format, ...);
- void hypercall_cancel_continuation(void);
-+#ifdef CONFIG_ARM
-+#define hypercall_preempt_check() (0)
-+#else
- #define hypercall_preempt_check() (unlikely(    \
-         softirq_pending(smp_processor_id()) |   \
-         local_events_need_delivery()            \
-     ))
-+#endif
- extern struct domain *domain_list;
--- 
-1.7.9.1
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1338565207-2888-4-git-send-email-ian.campbell@citrix.com> b/test/corpus/<1338565207-2888-4-git-send-email-ian.campbell@citrix.com>
deleted file mode 100644 (file)
index 435c6f5..0000000
+++ /dev/null
@@ -1,122 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Jun 01 16:43:54 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 01 Jun 2012 16:43:54 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SaU0v-0004uH-3W
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 01 Jun 2012 16:43:54 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SaTxq-0006pw-Qo; Fri, 01 Jun 2012 15:40:34 +0000
-Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1SaTxo-0006ok-QJ
-       for xen-devel@lists.xen.org; Fri, 01 Jun 2012 15:40:33 +0000
-Received: from [193.109.254.147:5396] by server-3.bemta-14.messagelabs.com id
-       24/02-15022-072E8CF4; Fri, 01 Jun 2012 15:40:32 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-2.tower-27.messagelabs.com!1338565208!12347274!2
-X-Originating-IP: [66.165.176.89]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNDc3NzE=\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 19095 invoked from network); 1 Jun 2012 15:40:10 -0000
-Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
-       by server-2.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
-       1 Jun 2012 15:40:10 -0000
-X-IronPort-AV: E=Sophos;i="4.75,698,1330923600"; d="scan'208";a="26547680"
-Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
-       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       01 Jun 2012 11:40:08 -0400
-Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
-       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
-       Fri, 1 Jun 2012 11:40:08 -0400
-Received: from [10.80.246.74] (helo=army.uk.xensource.com)     by
-       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
-       <ian.campbell@citrix.com>)      id 1SaTxP-0006I5-QL;
-       Fri, 01 Jun 2012 16:40:07 +0100
-From: Ian Campbell <ian.campbell@citrix.com>
-To: xen-devel@lists.xen.org
-Date: Fri, 1 Jun 2012 15:39:33 +0000
-Message-ID: <1338565207-2888-4-git-send-email-ian.campbell@citrix.com>
-X-Mailer: git-send-email 1.7.9.1
-In-Reply-To: <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
-       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-MIME-Version: 1.0
-Cc: Ian Campbell <ian.campbell@citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: [Xen-devel] [PATCH 04/38] arm: correct and expand TLB flush CP15
-       registers
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-Correct spelling of TLBIALLHIS and correct definition of TLBIALLNSNHIS.
-
-Add a few more.
-
-Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
----
- xen/include/asm-arm/cpregs.h |   11 +++++++++--
- 1 files changed, 9 insertions(+), 2 deletions(-)
-
-diff --git a/xen/include/asm-arm/cpregs.h b/xen/include/asm-arm/cpregs.h
-index ee8a287..7a0b49a 100644
---- a/xen/include/asm-arm/cpregs.h
-+++ b/xen/include/asm-arm/cpregs.h
-@@ -172,12 +172,19 @@
- #define TLBIMVAIS       p15,0,c8,c3,1   /* Invalidate unified TLB entry by MVA inner shareable */
- #define TLBIASIDIS      p15,0,c8,c3,2   /* Invalidate unified TLB by ASID match inner shareable */
- #define TLBIMVAAIS      p15,0,c8,c3,3   /* Invalidate unified TLB entry by MVA all ASID inner shareable */
-+#define ITLBIALL        p15,0,c8,c5,0   /* Invalidate instruction TLB */
-+#define ITLBIMVA        p15,0,c8,c5,1   /* Invalidate instruction TLB entry by MVA */
-+#define ITLBIASID       p15,0,c8,c5,2   /* Invalidate instruction TLB by ASID match */
- #define DTLBIALL        p15,0,c8,c6,0   /* Invalidate data TLB */
- #define DTLBIMVA        p15,0,c8,c6,1   /* Invalidate data TLB entry by MVA */
- #define DTLBIASID       p15,0,c8,c6,2   /* Invalidate data TLB by ASID match */
--#define TLBILLHIS       p15,4,c8,c3,0   /* Invalidate Entire Hyp. Unified TLB inner shareable */
-+#define TLBIALL         p15,0,c8,c7,0   /* invalidate unified TLB */
-+#define TLBIMVA         p15,0,c8,c7,1   /* invalidate unified TLB entry by MVA */
-+#define TLBIASID        p15,0,c8,c7,2   /* invalid unified TLB by ASID match */
-+#define TLBIMVAA        p15,0,c8,c7,3   /* invalidate unified TLB entries by MVA all ASID */
-+#define TLBIALLHIS      p15,4,c8,c3,0   /* Invalidate Entire Hyp. Unified TLB inner shareable */
- #define TLBIMVAHIS      p15,4,c8,c3,1   /* Invalidate Unified Hyp. TLB by MVA inner shareable */
--#define TLBIALLNSNHIS   p15,4,c8,c7,4   /* Invalidate Entire Non-Secure Non-Hyp. Unified TLB inner shareable */
-+#define TLBIALLNSNHIS   p15,4,c8,c3,4   /* Invalidate Entire Non-Secure Non-Hyp. Unified TLB inner shareable */
- #define TLBIALLH        p15,4,c8,c7,0   /* Invalidate Entire Hyp. Unified TLB */
- #define TLBIMVAH        p15,4,c8,c7,1   /* Invalidate Unified Hyp. TLB by MVA */
- #define TLBIALLNSNH     p15,4,c8,c7,4   /* Invalidate Entire Non-Secure Non-Hyp. Unified TLB */
--- 
-1.7.9.1
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1338565207-2888-5-git-send-email-ian.campbell@citrix.com> b/test/corpus/<1338565207-2888-5-git-send-email-ian.campbell@citrix.com>
deleted file mode 100644 (file)
index 830f31a..0000000
+++ /dev/null
@@ -1,155 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Jun 01 16:43:54 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 01 Jun 2012 16:43:54 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SaU0w-0004uI-59
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 01 Jun 2012 16:43:54 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SaTxX-0006em-6g; Fri, 01 Jun 2012 15:40:15 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1SaTxV-0006e2-9e
-       for xen-devel@lists.xen.org; Fri, 01 Jun 2012 15:40:13 +0000
-Received: from [85.158.139.83:45100] by server-10.bemta-5.messagelabs.com id
-       4A/FA-22179-C52E8CF4; Fri, 01 Jun 2012 15:40:12 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-8.tower-182.messagelabs.com!1338565208!17780788!3
-X-Originating-IP: [66.165.176.63]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyNTY3NTA=\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 1820 invoked from network); 1 Jun 2012 15:40:11 -0000
-Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
-       by server-8.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
-       1 Jun 2012 15:40:11 -0000
-X-IronPort-AV: E=Sophos;i="4.75,698,1330923600"; d="scan'208";a="197206652"
-Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
-       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       01 Jun 2012 11:40:08 -0400
-Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
-       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
-       Fri, 1 Jun 2012 11:40:08 -0400
-Received: from [10.80.246.74] (helo=army.uk.xensource.com)     by
-       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
-       <ian.campbell@citrix.com>)      id 1SaTxP-0006I5-T0;
-       Fri, 01 Jun 2012 16:40:07 +0100
-From: Ian Campbell <ian.campbell@citrix.com>
-To: xen-devel@lists.xen.org
-Date: Fri, 1 Jun 2012 15:39:34 +0000
-Message-ID: <1338565207-2888-5-git-send-email-ian.campbell@citrix.com>
-X-Mailer: git-send-email 1.7.9.1
-In-Reply-To: <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
-       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-MIME-Version: 1.0
-Cc: Ian Campbell <ian.campbell@citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: [Xen-devel] [PATCH 05/38] arm: restore stack on return from trap.
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-We align the stack before calling into C code but we weren't undoing this on
-return.
-
-Collapse continue_(non)idle_domain into continue_new_vcpu.
-
-Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
----
- xen/arch/arm/domain.c |   16 +++-------------
- xen/arch/arm/entry.S  |    5 ++++-
- 2 files changed, 7 insertions(+), 14 deletions(-)
-
-diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
-index 4b38790..9339a11 100644
---- a/xen/arch/arm/domain.c
-+++ b/xen/arch/arm/domain.c
-@@ -16,17 +16,6 @@
- DEFINE_PER_CPU(struct vcpu *, curr_vcpu);
--static void continue_idle_domain(struct vcpu *v)
--{
--    reset_stack_and_jump(idle_loop);
--}
--
--static void continue_nonidle_domain(struct vcpu *v)
--{
--    /* check_wakeup_from_wait(); */
--    reset_stack_and_jump(return_from_trap);
--}
--
- void idle_loop(void)
- {
-     for ( ; ; )
-@@ -72,9 +61,10 @@ static void continue_new_vcpu(struct vcpu *prev)
-     schedule_tail(prev);
-     if ( is_idle_vcpu(current) )
--        continue_idle_domain(current);
-+        reset_stack_and_jump(idle_loop);
-     else
--        continue_nonidle_domain(current);
-+        /* check_wakeup_from_wait(); */
-+        reset_stack_and_jump(return_to_new_vcpu);
- }
- void context_switch(struct vcpu *prev, struct vcpu *next)
-diff --git a/xen/arch/arm/entry.S b/xen/arch/arm/entry.S
-index f261a9f..7a22e2d 100644
---- a/xen/arch/arm/entry.S
-+++ b/xen/arch/arm/entry.S
-@@ -72,7 +72,9 @@ DEFINE_TRAP_ENTRY(hypervisor)
- DEFINE_TRAP_ENTRY(irq)
- DEFINE_TRAP_ENTRY(fiq)
--ENTRY(return_from_trap)
-+return_from_trap:
-+      mov sp, r11
-+ENTRY(return_to_new_vcpu)
-       ldr r11, [sp, #UREGS_cpsr]
-       and r11, #PSR_MODE_MASK
-       cmp r11, #PSR_MODE_HYP
-@@ -82,6 +84,7 @@ ENTRY(return_to_guest)
-       mov r11, sp
-       bic sp, #7 /* Align the stack pointer */
-       bl leave_hypervisor_tail
-+      mov sp, r11
-       RESTORE_ONE_BANKED(SP_usr)
-       /* LR_usr is the same physical register as lr and is restored below */
-       RESTORE_BANKED(svc)
--- 
-1.7.9.1
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1338565207-2888-6-git-send-email-ian.campbell@citrix.com> b/test/corpus/<1338565207-2888-6-git-send-email-ian.campbell@citrix.com>
deleted file mode 100644 (file)
index 0f27fe6..0000000
+++ /dev/null
@@ -1,164 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Jun 01 16:43:42 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 01 Jun 2012 16:43:42 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SaU0l-0004tS-Ns
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 01 Jun 2012 16:43:41 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SaTxY-0006fJ-Vn; Fri, 01 Jun 2012 15:40:16 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1SaTxW-0006eR-F4
-       for xen-devel@lists.xen.org; Fri, 01 Jun 2012 15:40:14 +0000
-Received: from [85.158.139.83:45173] by server-5.bemta-5.messagelabs.com id
-       CD/54-16141-D52E8CF4; Fri, 01 Jun 2012 15:40:13 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-8.tower-182.messagelabs.com!1338565208!17780788!4
-X-Originating-IP: [66.165.176.63]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyNTY3NTA=\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 1862 invoked from network); 1 Jun 2012 15:40:12 -0000
-Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
-       by server-8.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
-       1 Jun 2012 15:40:12 -0000
-X-IronPort-AV: E=Sophos;i="4.75,698,1330923600"; d="scan'208";a="197206654"
-Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
-       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       01 Jun 2012 11:40:08 -0400
-Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
-       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
-       Fri, 1 Jun 2012 11:40:08 -0400
-Received: from [10.80.246.74] (helo=army.uk.xensource.com)     by
-       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
-       <ian.campbell@citrix.com>)      id 1SaTxP-0006I5-UR;
-       Fri, 01 Jun 2012 16:40:07 +0100
-From: Ian Campbell <ian.campbell@citrix.com>
-To: xen-devel@lists.xen.org
-Date: Fri, 1 Jun 2012 15:39:35 +0000
-Message-ID: <1338565207-2888-6-git-send-email-ian.campbell@citrix.com>
-X-Mailer: git-send-email 1.7.9.1
-In-Reply-To: <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
-       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-MIME-Version: 1.0
-Cc: Ian Campbell <ian.campbell@citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: [Xen-devel] [PATCH 06/38] arm: enable interrupts while handling
-       traps
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-For most traps we can do this as soon as we have saved the necessary state.
-For IRQs and FIQs we must wait until we have acked the interrupt with the GIC.
-
-Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
----
- xen/arch/arm/entry.S |   17 ++++++++++++++---
- xen/arch/arm/gic.c   |    2 ++
- xen/arch/arm/traps.c |    1 -
- 3 files changed, 16 insertions(+), 4 deletions(-)
-
-diff --git a/xen/arch/arm/entry.S b/xen/arch/arm/entry.S
-index 7a22e2d..5bc3906 100644
---- a/xen/arch/arm/entry.S
-+++ b/xen/arch/arm/entry.S
-@@ -46,6 +46,17 @@ save_guest_regs:
-       ALIGN;                                                                                          \
- trap_##trap:                                                                                          \
-       SAVE_ALL;                                                                                       \
-+      cpsie i;        /* local_irq_enable */                                                          \
-+      adr lr, return_from_trap;                                                                       \
-+      mov r0, sp;                                                                                     \
-+      mov r11, sp;                                                                                    \
-+      bic sp, #7; /* Align the stack pointer (noop on guest trap) */                                  \
-+      b do_trap_##trap
-+
-+#define DEFINE_TRAP_ENTRY_NOIRQ(trap)                                                                 \
-+      ALIGN;                                                                                          \
-+trap_##trap:                                                                                          \
-+      SAVE_ALL;                                                                                       \
-       adr lr, return_from_trap;                                                                       \
-       mov r0, sp;                                                                                     \
-       mov r11, sp;                                                                                    \
-@@ -69,8 +80,8 @@ DEFINE_TRAP_ENTRY(supervisor_call)
- DEFINE_TRAP_ENTRY(prefetch_abort)
- DEFINE_TRAP_ENTRY(data_abort)
- DEFINE_TRAP_ENTRY(hypervisor)
--DEFINE_TRAP_ENTRY(irq)
--DEFINE_TRAP_ENTRY(fiq)
-+DEFINE_TRAP_ENTRY_NOIRQ(irq)
-+DEFINE_TRAP_ENTRY_NOIRQ(fiq)
- return_from_trap:
-       mov sp, r11
-@@ -83,7 +94,7 @@ ENTRY(return_to_new_vcpu)
- ENTRY(return_to_guest)
-       mov r11, sp
-       bic sp, #7 /* Align the stack pointer */
--      bl leave_hypervisor_tail
-+      bl leave_hypervisor_tail /* Disables interrupts on return */
-       mov sp, r11
-       RESTORE_ONE_BANKED(SP_usr)
-       /* LR_usr is the same physical register as lr and is restored below */
-diff --git a/xen/arch/arm/gic.c b/xen/arch/arm/gic.c
-index cc9d37b..1a2b95f 100644
---- a/xen/arch/arm/gic.c
-+++ b/xen/arch/arm/gic.c
-@@ -509,6 +509,8 @@ void gic_interrupt(struct cpu_user_regs *regs, int is_fiq)
-     uint32_t intack = GICC[GICC_IAR];
-     unsigned int irq = intack & GICC_IA_IRQ;
-+    local_irq_enable();
-+
-     if ( irq == 1023 )
-         /* Spurious interrupt */
-         return;
-diff --git a/xen/arch/arm/traps.c b/xen/arch/arm/traps.c
-index abc26a3..5ed754f 100644
---- a/xen/arch/arm/traps.c
-+++ b/xen/arch/arm/traps.c
-@@ -412,7 +412,6 @@ static void do_debug_trap(struct cpu_user_regs *regs, unsigned int code)
- static void do_trap_hypercall(struct cpu_user_regs *regs, unsigned long iss)
- {
-     arm_hypercall_t *call = NULL;
--    local_irq_enable();
-     if ( iss != XEN_HYPERCALL_TAG )
-     {
--- 
-1.7.9.1
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1338565207-2888-7-git-send-email-ian.campbell@citrix.com> b/test/corpus/<1338565207-2888-7-git-send-email-ian.campbell@citrix.com>
deleted file mode 100644 (file)
index b28e826..0000000
+++ /dev/null
@@ -1,104 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Jun 01 16:43:50 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 01 Jun 2012 16:43:50 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SaU0m-0004tV-AS
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 01 Jun 2012 16:43:50 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SaTxZ-0006fX-CH; Fri, 01 Jun 2012 15:40:17 +0000
-Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1SaTxW-0006eU-Lf
-       for xen-devel@lists.xen.org; Fri, 01 Jun 2012 15:40:14 +0000
-Received: from [193.109.254.147:18261] by server-12.bemta-14.messagelabs.com
-       id A9/82-12643-D52E8CF4; Fri, 01 Jun 2012 15:40:13 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-10.tower-27.messagelabs.com!1338565210!7252174!1
-X-Originating-IP: [66.165.176.63]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyNTY3NTA=\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 16146 invoked from network); 1 Jun 2012 15:40:12 -0000
-Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
-       by server-10.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
-       1 Jun 2012 15:40:12 -0000
-X-IronPort-AV: E=Sophos;i="4.75,698,1330923600"; d="scan'208";a="197206653"
-Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
-       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       01 Jun 2012 11:40:08 -0400
-Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
-       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
-       Fri, 1 Jun 2012 11:40:08 -0400
-Received: from [10.80.246.74] (helo=army.uk.xensource.com)     by
-       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
-       <ian.campbell@citrix.com>)      id 1SaTxQ-0006I5-0n;
-       Fri, 01 Jun 2012 16:40:08 +0100
-From: Ian Campbell <ian.campbell@citrix.com>
-To: xen-devel@lists.xen.org
-Date: Fri, 1 Jun 2012 15:39:36 +0000
-Message-ID: <1338565207-2888-7-git-send-email-ian.campbell@citrix.com>
-X-Mailer: git-send-email 1.7.9.1
-In-Reply-To: <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
-       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-MIME-Version: 1.0
-Cc: Ian Campbell <ian.campbell@citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: [Xen-devel] [PATCH 07/38] arm: hook up domctl and memory_op
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
----
- xen/arch/arm/traps.c |    2 ++
- 1 files changed, 2 insertions(+), 0 deletions(-)
-
-diff --git a/xen/arch/arm/traps.c b/xen/arch/arm/traps.c
-index 5ed754f..5d8b7f9 100644
---- a/xen/arch/arm/traps.c
-+++ b/xen/arch/arm/traps.c
-@@ -373,6 +373,8 @@ typedef unsigned long arm_hypercall_t(
-     [ __HYPERVISOR_ ## x ] = (arm_hypercall_t *) do_ ## x
- static arm_hypercall_t *arm_hypercall_table[] = {
-+    HYPERCALL(memory_op),
-+    HYPERCALL(domctl),
-     HYPERCALL(arch_0),
-     HYPERCALL(sched_op),
-     HYPERCALL(console_io),
--- 
-1.7.9.1
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1338565207-2888-8-git-send-email-ian.campbell@citrix.com> b/test/corpus/<1338565207-2888-8-git-send-email-ian.campbell@citrix.com>
deleted file mode 100644 (file)
index e33ca3a..0000000
+++ /dev/null
@@ -1,222 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Jun 01 16:43:43 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 01 Jun 2012 16:43:43 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SaU0l-0004tT-QV
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 01 Jun 2012 16:43:43 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SaTxr-0006qJ-8l; Fri, 01 Jun 2012 15:40:35 +0000
-Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1SaTxp-0006ok-9Z
-       for xen-devel@lists.xen.org; Fri, 01 Jun 2012 15:40:33 +0000
-Received: from [193.109.254.147:5428] by server-3.bemta-14.messagelabs.com id
-       A4/02-15022-072E8CF4; Fri, 01 Jun 2012 15:40:32 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-2.tower-27.messagelabs.com!1338565208!12347274!3
-X-Originating-IP: [66.165.176.89]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNDc3NzE=\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 19171 invoked from network); 1 Jun 2012 15:40:12 -0000
-Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
-       by server-2.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
-       1 Jun 2012 15:40:12 -0000
-X-IronPort-AV: E=Sophos;i="4.75,698,1330923600"; d="scan'208";a="26547681"
-Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
-       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       01 Jun 2012 11:40:08 -0400
-Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
-       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
-       Fri, 1 Jun 2012 11:40:08 -0400
-Received: from [10.80.246.74] (helo=army.uk.xensource.com)     by
-       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
-       <ian.campbell@citrix.com>)      id 1SaTxQ-0006I5-3V;
-       Fri, 01 Jun 2012 16:40:08 +0100
-From: Ian Campbell <ian.campbell@citrix.com>
-To: xen-devel@lists.xen.org
-Date: Fri, 1 Jun 2012 15:39:37 +0000
-Message-ID: <1338565207-2888-8-git-send-email-ian.campbell@citrix.com>
-X-Mailer: git-send-email 1.7.9.1
-In-Reply-To: <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
-       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-MIME-Version: 1.0
-Cc: Ian Campbell <ian.campbell@citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: [Xen-devel] [PATCH 08/38] arm: allocate and setup a guest vcpu.
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
----
- xen/arch/arm/domain.c         |   68 +++++++++++++++++++++++++++++++++++++++++
- xen/arch/arm/dummy.S          |    3 --
- xen/include/public/arch-arm.h |    9 -----
- 3 files changed, 68 insertions(+), 12 deletions(-)
-
-diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
-index 9339a11..62a2f3a 100644
---- a/xen/arch/arm/domain.c
-+++ b/xen/arch/arm/domain.c
-@@ -144,6 +144,17 @@ void free_vcpu_struct(struct vcpu *v)
-     free_xenheap_page(v);
- }
-+struct vcpu_guest_context *alloc_vcpu_guest_context(void)
-+{
-+    return xmalloc(struct vcpu_guest_context);
-+
-+}
-+
-+void free_vcpu_guest_context(struct vcpu_guest_context *vgc)
-+{
-+    xfree(vgc);
-+}
-+
- int vcpu_initialise(struct vcpu *v)
- {
-     int rc = 0;
-@@ -182,6 +193,9 @@ int arch_domain_create(struct domain *d, unsigned int domcr_flags)
-     if ( (rc = p2m_init(d)) != 0 )
-         goto fail;
-+    if ( (rc = domain_vgic_init(d)) != 0 )
-+        goto fail;
-+
-     if ( !is_idle_domain(d) )
-     {
-         rc = -ENOMEM;
-@@ -212,6 +226,60 @@ void arch_domain_destroy(struct domain *d)
-     /* domain_vgic_destroy */
- }
-+static int is_guest_psr(uint32_t psr)
-+{
-+    switch (psr & PSR_MODE_MASK)
-+    {
-+    case PSR_MODE_USR:
-+    case PSR_MODE_FIQ:
-+    case PSR_MODE_IRQ:
-+    case PSR_MODE_SVC:
-+    case PSR_MODE_ABT:
-+    case PSR_MODE_UND:
-+    case PSR_MODE_SYS:
-+        return 1;
-+    case PSR_MODE_MON:
-+    case PSR_MODE_HYP:
-+    default:
-+        return 0;
-+    }
-+}
-+
-+int arch_set_info_guest(
-+    struct vcpu *v, vcpu_guest_context_u c)
-+{
-+    struct cpu_user_regs *regs = &c.nat->user_regs;
-+
-+    if ( !is_guest_psr(regs->cpsr) )
-+        return -EINVAL;
-+
-+    if ( regs->spsr_svc && !is_guest_psr(regs->spsr_svc) )
-+        return -EINVAL;
-+    if ( regs->spsr_abt && !is_guest_psr(regs->spsr_abt) )
-+        return -EINVAL;
-+    if ( regs->spsr_und && !is_guest_psr(regs->spsr_und) )
-+        return -EINVAL;
-+    if ( regs->spsr_irq && !is_guest_psr(regs->spsr_irq) )
-+        return -EINVAL;
-+    if ( regs->spsr_fiq && !is_guest_psr(regs->spsr_fiq) )
-+        return -EINVAL;
-+
-+    v->arch.cpu_info->guest_cpu_user_regs = *regs;
-+
-+    /* XXX other state:
-+     * - SCTLR
-+     * - TTBR0/1
-+     * - TTBCR
-+     */
-+
-+    //if ( flags & VGCF_online )
-+        clear_bit(_VPF_down, &v->pause_flags);
-+    //else
-+    //    set_bit(_VPF_down, &v->pause_flags);
-+
-+    return 0;
-+}
-+
- void arch_dump_domain_info(struct domain *d)
- {
- }
-diff --git a/xen/arch/arm/dummy.S b/xen/arch/arm/dummy.S
-index 016340c..3b48917 100644
---- a/xen/arch/arm/dummy.S
-+++ b/xen/arch/arm/dummy.S
-@@ -20,11 +20,8 @@ DUMMY(pirq_guest_unbind);
- DUMMY(pirq_set_affinity);
- /* VCPU */
--DUMMY(alloc_vcpu_guest_context);
- DUMMY(arch_get_info_guest);
--DUMMY(arch_set_info_guest);
- DUMMY(arch_vcpu_reset);
--DUMMY(free_vcpu_guest_context);
- DUMMY(sync_vcpu_execstate);
- NOP(update_vcpu_system_time);
- DUMMY(vcpu_show_execution_state);
-diff --git a/xen/include/public/arch-arm.h b/xen/include/public/arch-arm.h
-index 1b1bcf3..e439727 100644
---- a/xen/include/public/arch-arm.h
-+++ b/xen/include/public/arch-arm.h
-@@ -124,15 +124,6 @@ typedef uint32_t xen_ulong_t;
- struct vcpu_guest_context {
-     struct cpu_user_regs user_regs;         /* User-level CPU registers     */
--    union {
--        uint32_t reg[16];
--        struct {
--            uint32_t __pad[12];
--            uint32_t sp; /* r13 */
--            uint32_t lr; /* r14 */
--            uint32_t pc; /* r15 */
--        };
--    };
- };
- typedef struct vcpu_guest_context vcpu_guest_context_t;
- DEFINE_XEN_GUEST_HANDLE(vcpu_guest_context_t);
--- 
-1.7.9.1
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1338565207-2888-9-git-send-email-ian.campbell@citrix.com> b/test/corpus/<1338565207-2888-9-git-send-email-ian.campbell@citrix.com>
deleted file mode 100644 (file)
index 75f760e..0000000
+++ /dev/null
@@ -1,127 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Jun 01 16:43:45 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 01 Jun 2012 16:43:45 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SaU0n-0004ta-UE
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 01 Jun 2012 16:43:45 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SaTxY-0006f9-J5; Fri, 01 Jun 2012 15:40:16 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1SaTxW-0006eL-CF
-       for xen-devel@lists.xen.org; Fri, 01 Jun 2012 15:40:14 +0000
-Received: from [85.158.138.51:57883] by server-12.bemta-3.messagelabs.com id
-       AF/90-29860-D52E8CF4; Fri, 01 Jun 2012 15:40:13 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-16.tower-174.messagelabs.com!1338565210!27520903!1
-X-Originating-IP: [66.165.176.89]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNDc3NzE=\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 7146 invoked from network); 1 Jun 2012 15:40:12 -0000
-Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
-       by server-16.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
-       1 Jun 2012 15:40:12 -0000
-X-IronPort-AV: E=Sophos;i="4.75,698,1330923600"; d="scan'208";a="26547683"
-Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
-       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       01 Jun 2012 11:40:08 -0400
-Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
-       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
-       Fri, 1 Jun 2012 11:40:08 -0400
-Received: from [10.80.246.74] (helo=army.uk.xensource.com)     by
-       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
-       <ian.campbell@citrix.com>)      id 1SaTxQ-0006I5-55;
-       Fri, 01 Jun 2012 16:40:08 +0100
-From: Ian Campbell <ian.campbell@citrix.com>
-To: xen-devel@lists.xen.org
-Date: Fri, 1 Jun 2012 15:39:38 +0000
-Message-ID: <1338565207-2888-9-git-send-email-ian.campbell@citrix.com>
-X-Mailer: git-send-email 1.7.9.1
-In-Reply-To: <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
-       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-MIME-Version: 1.0
-Cc: Ian Campbell <ian.campbell@citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: [Xen-devel] [PATCH 09/38] arm: print domid as part of debug trap
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
----
- xen/arch/arm/traps.c |   11 ++++++-----
- 1 files changed, 6 insertions(+), 5 deletions(-)
-
-diff --git a/xen/arch/arm/traps.c b/xen/arch/arm/traps.c
-index 5d8b7f9..40bb375 100644
---- a/xen/arch/arm/traps.c
-+++ b/xen/arch/arm/traps.c
-@@ -388,25 +388,26 @@ static arm_hypercall_t *arm_hypercall_table[] = {
- static void do_debug_trap(struct cpu_user_regs *regs, unsigned int code)
- {
-     uint32_t reg, *r;
--
-+    uint32_t domid = current->domain->domain_id;
-     switch ( code ) {
-     case 0xe0 ... 0xef:
-         reg = code - 0xe0;
-         r = &regs->r0 + reg;
--        printk("R%d = %#010"PRIx32" at %#010"PRIx32"\n", reg, *r, regs->pc);
-+        printk("DOM%d: R%d = %#010"PRIx32" at %#010"PRIx32"\n",
-+               domid, reg, *r, regs->pc);
-         break;
-     case 0xfd:
--        printk("Reached %08"PRIx32"\n", regs->pc);
-+        printk("DOM%d: Reached %#010"PRIx32"\n", domid, regs->pc);
-         break;
-     case 0xfe:
-         printk("%c", (char)(regs->r0 & 0xff));
-         break;
-     case 0xff:
--        printk("DEBUG\n");
-+        printk("DOM%d: DEBUG\n", domid);
-         show_execution_state(regs);
-         break;
-     default:
--        panic("Unhandled debug trap %#x\n", code);
-+        panic("DOM%d: Unhandled debug trap %#x\n", domid, code);
-         break;
-     }
- }
--- 
-1.7.9.1
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1338569170.1077.36.camel@zakaz.uk.xensource.com> b/test/corpus/<1338569170.1077.36.camel@zakaz.uk.xensource.com>
deleted file mode 100644 (file)
index 4561135..0000000
+++ /dev/null
@@ -1,105 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Jun 01 17:50:23 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 01 Jun 2012 17:50:23 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SaV3M-0005GI-Gm
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 01 Jun 2012 17:50:23 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SaUzV-0006Ib-6K; Fri, 01 Jun 2012 16:46:21 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1SaUzT-0006IV-DV
-       for xen-devel@lists.xen.org; Fri, 01 Jun 2012 16:46:19 +0000
-Received: from [85.158.143.99:13192] by server-3.bemta-4.messagelabs.com id
-       68/A2-04252-AD1F8CF4; Fri, 01 Jun 2012 16:46:18 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-7.tower-216.messagelabs.com!1338569175!27586796!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDA3ODg=\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 12704 invoked from network); 1 Jun 2012 16:46:15 -0000
-Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-7.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
-       1 Jun 2012 16:46:15 -0000
-X-IronPort-AV: E=Sophos;i="4.75,698,1330905600"; d="scan'208";a="12792530"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       01 Jun 2012 16:46:12 +0000
-Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0; Fri, 1 Jun 2012
-       17:46:12 +0100
-Message-ID: <1338569170.1077.36.camel@zakaz.uk.xensource.com>
-From: Ian Campbell <Ian.Campbell@citrix.com>
-To: xen-devel <xen-devel@lists.xen.org>
-Date: Fri, 1 Jun 2012 17:46:10 +0100
-In-Reply-To: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
-References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
-Organization: Citrix Systems, Inc.
-X-Mailer: Evolution 3.2.2-1 
-MIME-Version: 1.0
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 0/38] arm: boot a dom1 to "Calibrating delay
- loop" then hang
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Fri, 2012-06-01 at 16:38 +0100, Ian Campbell wrote:
-> I still need to cleanup the Linux side of this, that probably won't
-> happen today and these patches probably don't work without those
-> changes... 
-
-I've pushed my dev tree, which contains several hacks and lots of stuff
-to cleanup, to:
-        git://xenbits.xen.org/people/ianc/linux-2.6.git devel/arm-hacks
-
-It's based of David's[0] vexpress-dt branch + Stefanos's[1]
-vexpress-dt-privcmd branch.
-
-It contains a backport of some old version of Mark Zynger's arch_timers
-stuff, a very hacky XENMAPSPACE_gmfn_foreign, loads of mess around UARTs
-and device tree stuff which make no sense etc etc.
-
-At the moment you need CONFIG_ARM_ARCH_TIMER=y for domU and =n for
-dom0... 
-
-Nobody look too closely ;-)
-
-Ian.
-
-[0] git://xenbits.xen.org/people/dvrabel/linux.git
-[1] git://xenbits.xen.org/people/sstabellini/linux-pvhvm.git
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1338577461.14877.61.camel@dagon.hellion.org.uk> b/test/corpus/<1338577461.14877.61.camel@dagon.hellion.org.uk>
deleted file mode 100644 (file)
index 311751d..0000000
+++ /dev/null
@@ -1,158 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Jun 01 20:09:31 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 01 Jun 2012 20:09:31 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SaXE0-0005eP-BA
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 01 Jun 2012 20:09:31 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SaX9O-0002CN-0n; Fri, 01 Jun 2012 19:04:42 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1SaX9M-0002CI-3u
-       for xen-devel@lists.xen.org; Fri, 01 Jun 2012 19:04:40 +0000
-Received: from [85.158.139.83:63656] by server-12.bemta-5.messagelabs.com id
-       4C/D2-18374-74219CF4; Fri, 01 Jun 2012 19:04:39 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-13.tower-182.messagelabs.com!1338577478!31094563!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDA3ODg=\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 24540 invoked from network); 1 Jun 2012 19:04:38 -0000
-Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-13.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
-       1 Jun 2012 19:04:38 -0000
-X-IronPort-AV: E=Sophos;i="4.75,698,1330905600"; d="scan'208";a="12793966"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       01 Jun 2012 19:04:22 +0000
-Received: from [127.0.0.1] (10.80.16.67) by smtprelay.citrix.com
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0; Fri, 1 Jun 2012
-       20:04:22 +0100
-Message-ID: <1338577461.14877.61.camel@dagon.hellion.org.uk>
-From: Ian Campbell <Ian.Campbell@citrix.com>
-To: Tim Deegan <tim@xen.org>
-Date: Fri, 1 Jun 2012 20:04:21 +0100
-In-Reply-To: <20120601170514.GD77921@ocelot.phlegethon.org>
-References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
-       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-       <1338565207-2888-29-git-send-email-ian.campbell@citrix.com>
-       <20120601170514.GD77921@ocelot.phlegethon.org>
-Organization: Citrix Systems, Inc.
-X-Mailer: Evolution 3.2.2-1 
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 29/38] arm: delay enabling data-cache until
- paging enabled.
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Fri, 2012-06-01 at 18:05 +0100, Tim Deegan wrote:
-> At 15:39 +0000 on 01 Jun (1338565198), Ian Campbell wrote:
-> > With enough warnings enabled the model seemed to be complaining that pages
-> > cached before paging was enabled had been mapped with to inconsistent sets of
-> > attributes. I'm not convinced that isn't a model issue, nor am I convinced
-> > this has really fixed anything, but it seems sensible enough.
-> 
-> This might be what breaks secondary CPU bringup: pagetables built by CPU
-> 0 may not have been flushed all the way to RAM when CPU 1 comes up, and
-> CPU 1 isn't participating in cache coherence protocols when it
-> starts to need them.
-
-The issue here is the lack of the necessary flush, rather than this
-change particularly, right?
-
-> OTOH, if that's the case, it's surprising that CPU 1 passes the boot
-> gate.  I'll look into it next week, x86/mm workload permitting. 
-
-Sounds good!
-
-I tried to test SMP yesterday but ut turned out all the models I thought
-were SMP enabled were actual UP Only, not sure how/when that happened!
-
-Cheers,
-Ian.
-
-> 
-> Cheers,
-> 
-> Tim.
-> 
-> > Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
-> > ---
-> >  xen/arch/arm/head.S |    9 +++++++--
-> >  1 files changed, 7 insertions(+), 2 deletions(-)
-> > 
-> > diff --git a/xen/arch/arm/head.S b/xen/arch/arm/head.S
-> > index 9a7714a..71197af 100644
-> > --- a/xen/arch/arm/head.S
-> > +++ b/xen/arch/arm/head.S
-> > @@ -148,10 +148,11 @@ hyp:
-> >     * Exceptions in LE ARM,
-> >     * Low-latency IRQs disabled,
-> >     * Write-implies-XN disabled (for now),
-> > -   * I-cache and d-cache enabled,
-> > +   * D-cache diabled (for now),
-> > +   * I-cache enabled,
-> >     * Alignment checking enabled,
-> >     * MMU translation disabled (for now). */
-> > -  ldr   r0, =(HSCTLR_BASE|SCTLR_A|SCTLR_C)
-> > +  ldr   r0, =(HSCTLR_BASE|SCTLR_A)
-> >    mcr   CP32(r0, HSCTLR)
-> >  
-> >    /* Write Xen's PT's paddr into the HTTBR */
-> > @@ -217,6 +218,10 @@ pt_ready:
-> >    mov   pc, r1                 /* Get a proper vaddr into PC */
-> >  paging:
-> >  
-> > +  mrc   CP32(r0, HSCTLR)       /* Now enable data cache */
-> > +  orr   r0, r0, #(SCTLR_C)
-> > +  mcr   CP32(r0, HSCTLR)
-> > +
-> >  #ifdef EARLY_UART_ADDRESS
-> >    /* Recover the UART address in the new address space. */
-> >    lsl   r11, #11
-> > -- 
-> > 1.7.9.1
-> > 
-> > 
-> > _______________________________________________
-> > Xen-devel mailing list
-> > Xen-devel@lists.xen.org
-> > http://lists.xen.org/xen-devel
-
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1338990925.32319.103.camel@zakaz.uk.xensource.com> b/test/corpus/<1338990925.32319.103.camel@zakaz.uk.xensource.com>
deleted file mode 100644 (file)
index 766891e..0000000
+++ /dev/null
@@ -1,176 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Jun 06 14:59:37 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 06 Jun 2012 14:59:37 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1ScGln-00034e-GB
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 06 Jun 2012 14:59:37 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1ScGhv-0001UN-0w; Wed, 06 Jun 2012 13:55:31 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1ScGht-0001UI-AD
-       for xen-devel@lists.xen.org; Wed, 06 Jun 2012 13:55:29 +0000
-Received: from [85.158.143.99:10417] by server-1.bemta-4.messagelabs.com id
-       0F/7E-10042-0516FCF4; Wed, 06 Jun 2012 13:55:28 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-12.tower-216.messagelabs.com!1338990927!26305160!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDExMjA=\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 5681 invoked from network); 6 Jun 2012 13:55:27 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-12.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
-       6 Jun 2012 13:55:27 -0000
-X-IronPort-AV: E=Sophos;i="4.75,724,1330905600"; d="scan'208";a="12860458"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       06 Jun 2012 13:55:26 +0000
-Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0; Wed, 6 Jun 2012
-       14:55:26 +0100
-Message-ID: <1338990925.32319.103.camel@zakaz.uk.xensource.com>
-From: Ian Campbell <Ian.Campbell@citrix.com>
-To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-Date: Wed, 6 Jun 2012 14:55:25 +0100
-In-Reply-To: <alpine.DEB.2.02.1206061443300.6030@kaball.uk.xensource.com>
-References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
-       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-       <1338565207-2888-8-git-send-email-ian.campbell@citrix.com>
-       <alpine.DEB.2.02.1206061443300.6030@kaball.uk.xensource.com>
-Organization: Citrix Systems, Inc.
-X-Mailer: Evolution 3.2.2-1 
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 08/38] arm: allocate and setup a guest vcpu.
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Wed, 2012-06-06 at 14:46 +0100, Stefano Stabellini wrote:
-> On Fri, 1 Jun 2012, Ian Campbell wrote:
-> > Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
-> > ---
-> >  xen/arch/arm/domain.c         |   68 +++++++++++++++++++++++++++++++++++++++++
-> >  xen/arch/arm/dummy.S          |    3 --
-> >  xen/include/public/arch-arm.h |    9 -----
-> >  3 files changed, 68 insertions(+), 12 deletions(-)
-> > 
-> > diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
-> > index 9339a11..62a2f3a 100644
-> > --- a/xen/arch/arm/domain.c
-> > +++ b/xen/arch/arm/domain.c
-> > @@ -144,6 +144,17 @@ void free_vcpu_struct(struct vcpu *v)
-> >      free_xenheap_page(v);
-> >  }
-> >  
-> > +struct vcpu_guest_context *alloc_vcpu_guest_context(void)
-> > +{
-> > +    return xmalloc(struct vcpu_guest_context);
-> > +
-> > +}
-> > +
-> > +void free_vcpu_guest_context(struct vcpu_guest_context *vgc)
-> > +{
-> > +    xfree(vgc);
-> > +}
-> > +
-> >  int vcpu_initialise(struct vcpu *v)
-> >  {
-> >      int rc = 0;
-> > @@ -182,6 +193,9 @@ int arch_domain_create(struct domain *d, unsigned int domcr_flags)
-> >      if ( (rc = p2m_init(d)) != 0 )
-> >          goto fail;
-> >  
-> > +    if ( (rc = domain_vgic_init(d)) != 0 )
-> > +        goto fail;
-> > +
-> 
-> there is a call to domain_vgic_init already in arch_domain_create
-
-So there is!
-
-I notice while checking that a bunch of stuff can/should be pushed under
-the !idle_domain conditional, or better the idle domain case should bail
-early.
-
-> > +int arch_set_info_guest(
-> > +    struct vcpu *v, vcpu_guest_context_u c)
-> > +{
-> > +    struct cpu_user_regs *regs = &c.nat->user_regs;
-> > +
-> > +    if ( !is_guest_psr(regs->cpsr) )
-> > +        return -EINVAL;
-> > +
-> > +    if ( regs->spsr_svc && !is_guest_psr(regs->spsr_svc) )
-> > +        return -EINVAL;
-> > +    if ( regs->spsr_abt && !is_guest_psr(regs->spsr_abt) )
-> > +        return -EINVAL;
-> > +    if ( regs->spsr_und && !is_guest_psr(regs->spsr_und) )
-> > +        return -EINVAL;
-> > +    if ( regs->spsr_irq && !is_guest_psr(regs->spsr_irq) )
-> > +        return -EINVAL;
-> > +    if ( regs->spsr_fiq && !is_guest_psr(regs->spsr_fiq) )
-> > +        return -EINVAL;
-> > +
-> > +    v->arch.cpu_info->guest_cpu_user_regs = *regs;
-> > +
-> > +    /* XXX other state:
-> > +     * - SCTLR
-> > +     * - TTBR0/1
-> > +     * - TTBCR
-> > +     */
-> > +
-> > +    //if ( flags & VGCF_online )
-> > +        clear_bit(_VPF_down, &v->pause_flags);
-> > +    //else
-> > +    //    set_bit(_VPF_down, &v->pause_flags);
-> > +
-> > +    return 0;
-> > +}
-> 
-> Do we really need to add commented out code like this?
-
-Yeah, you're right, I copied from x86 which has this but we haven't
-implemented it for ARM yet. I suppose an XXX would be better. Or maybe I
-should just implement the flags...
-
-> Also arch_set_info_guest could benefit by a couple of lines of comments
-> to explain what it is supposed to do.
-
-I'll add something.
-
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1338993031.32319.107.camel@zakaz.uk.xensource.com> b/test/corpus/<1338993031.32319.107.camel@zakaz.uk.xensource.com>
deleted file mode 100644 (file)
index e38d1d6..0000000
+++ /dev/null
@@ -1,230 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Jun 06 15:34:52 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 06 Jun 2012 15:34:52 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1ScHJu-0003FP-Ho
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 06 Jun 2012 15:34:52 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1ScHG2-00036Y-Hx; Wed, 06 Jun 2012 14:30:46 +0000
-Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1ScHG0-00036N-EX
-       for xen-devel@lists.xen.org; Wed, 06 Jun 2012 14:30:44 +0000
-Received: from [193.109.254.147:33953] by server-1.bemta-14.messagelabs.com id
-       01/52-08067-3996FCF4; Wed, 06 Jun 2012 14:30:43 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-6.tower-27.messagelabs.com!1338993033!5144151!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDExMjA=\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 18844 invoked from network); 6 Jun 2012 14:30:33 -0000
-Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-6.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
-       6 Jun 2012 14:30:33 -0000
-X-IronPort-AV: E=Sophos;i="4.75,724,1330905600"; d="scan'208";a="12861353"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       06 Jun 2012 14:30:33 +0000
-Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0; Wed, 6 Jun 2012
-       15:30:33 +0100
-Message-ID: <1338993031.32319.107.camel@zakaz.uk.xensource.com>
-From: Ian Campbell <Ian.Campbell@citrix.com>
-To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-Date: Wed, 6 Jun 2012 15:30:31 +0100
-In-Reply-To: <alpine.DEB.2.02.1206061452530.6030@kaball.uk.xensource.com>
-References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
-       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-       <1338565207-2888-11-git-send-email-ian.campbell@citrix.com>
-       <alpine.DEB.2.02.1206061452530.6030@kaball.uk.xensource.com>
-Organization: Citrix Systems, Inc.
-X-Mailer: Evolution 3.2.2-1 
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 11/38] arm: implement p2m lookup
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Wed, 2012-06-06 at 15:01 +0100, Stefano Stabellini wrote:
-> On Fri, 1 Jun 2012, Ian Campbell wrote:
-> > Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
-> > ---
-> >  xen/arch/arm/p2m.c        |   71 ++++++++++++++++++++++++++++++++++++++++++--
-> >  xen/include/asm-arm/p2m.h |    3 ++
-> >  2 files changed, 70 insertions(+), 4 deletions(-)
-> > 
-> > diff --git a/xen/arch/arm/p2m.c b/xen/arch/arm/p2m.c
-> > index 095e608..9b40e93 100644
-> > --- a/xen/arch/arm/p2m.c
-> > +++ b/xen/arch/arm/p2m.c
-> > @@ -10,10 +10,20 @@ void dump_p2m_lookup(struct domain *d, paddr_t addr)
-> >      struct p2m_domain *p2m = &d->arch.p2m;
-> >      lpae_t *first = NULL, *second = NULL, *third = NULL;
-> >  
-> > -    printk("dom%d IPA %#016llx\n", d->domain_id, addr);
-> > +    printk("dom%d IPA %#"PRIpaddr"\n", d->domain_id, addr);
-> > +
-> > +    printk("P2M @ %p mfn:%#lx (%#03llx,%#03llx,%#03llx)\n",
-> > +           p2m->first_level,
-> > +           page_to_mfn(p2m->first_level),
-> > +           first_table_offset(addr),
-> > +           second_table_offset(addr),
-> > +           third_table_offset(addr));
-> > +
-> > +    if ( first_table_offset(addr) >= LPAE_ENTRIES )
-> > +        goto done;
-> >  
-> >      first = __map_domain_page(p2m->first_level);
-> > -    printk("1ST[%#03llx] = %#016llx\n",
-> > +    printk("1ST[%#03llx] = %#"PRIpaddr"\n",
-> >             first_table_offset(addr),
-> >             first[first_table_offset(addr)].bits);
-> >      if ( !first[first_table_offset(addr)].p2m.valid ||
-> > @@ -21,7 +31,7 @@ void dump_p2m_lookup(struct domain *d, paddr_t addr)
-> >          goto done;
-> >  
-> >      second = map_domain_page(first[first_table_offset(addr)].p2m.base);
-> > -    printk("2ND[%#03llx] = %#016llx\n",
-> > +    printk("2ND[%#03llx] = %#"PRIpaddr"\n",
-> >             second_table_offset(addr),
-> >             second[second_table_offset(addr)].bits);
-> >      if ( !second[second_table_offset(addr)].p2m.valid ||
-> > @@ -29,7 +39,7 @@ void dump_p2m_lookup(struct domain *d, paddr_t addr)
-> >          goto done;
-> >  
-> >      third = map_domain_page(second[second_table_offset(addr)].p2m.base);
-> > -    printk("3RD[%#03llx] = %#016llx\n",
-> > +    printk("3RD[%#03llx] = %#"PRIpaddr"\n",
-> >             third_table_offset(addr),
-> >             third[third_table_offset(addr)].bits);
-> >  
-> > @@ -51,6 +61,59 @@ void p2m_load_VTTBR(struct domain *d)
-> >      isb(); /* Ensure update is visible */
-> >  }
-> 
-> there is no need to introduce p2m_lookup in the same patch you do these
-> unrelated printk adjustments, correct?
-> 
-
-Right, I think I've just put them in the wrong patch by mistake, I'll
-figure out what I meant to do ...
-> 
-> > +/*
-> > + * Lookup the MFN corresponding to a domain's PFN.
-> > + *
-> > + * There are no processor functions to do a stage 2 only lookup therefore we
-> > + * do a a software walk.
-> > + */
-> > +paddr_t p2m_lookup(struct domain *d, paddr_t paddr)
-> > +{
-> > +    struct p2m_domain *p2m = &d->arch.p2m;
-> > +    lpae_t pte, *first = NULL, *second = NULL, *third = NULL;
-> > +    paddr_t maddr = INVALID_PADDR;
-> > +
-> > +    spin_lock(&p2m->lock);
-> > +
-> > +    first = __map_domain_page(p2m->first_level);
-> > +    if ( !first[first_table_offset(paddr)].p2m.valid )
-> > +        goto done_err;
-> > +    if ( !first[first_table_offset(paddr)].p2m.table )
-> > +    {
-> > +        pte = first[first_table_offset(paddr)];
-> > +        goto done;
-> > +    }
-> > +
-> > +    second = map_domain_page(first[first_table_offset(paddr)].p2m.base);
-> > +    if ( !second[second_table_offset(paddr)].p2m.valid )
-> > +        goto done_err;
-> > +    if ( !second[second_table_offset(paddr)].p2m.table )
-> > +    {
-> > +        pte = second[second_table_offset(paddr)];
-> > +        goto done;
-> > +    }
-> > +
-> > +    third = map_domain_page(second[second_table_offset(paddr)].p2m.base);
-> > +    if ( !third[third_table_offset(paddr)].p2m.valid )
-> > +        goto done_err;
-> > +    if ( !third[third_table_offset(paddr)].p2m.table )
-> > +        goto done_err;
-> > +
-> > +    pte = third[third_table_offset(paddr)];
-> > +
-> > +done:
-> > +
-> > +    maddr = (pte.bits & PADDR_MASK & PAGE_MASK) | (paddr & ~PAGE_MASK);
-> > +done_err:
-> > +    if (third) unmap_domain_page(third);
-> > +    if (second) unmap_domain_page(second);
-> > +    if (first) unmap_domain_page(first);
-> > +
-> > +    spin_unlock(&p2m->lock);
-> > +
-> > +    return maddr;
-> > +}
-> > +
-> 
-> this function looks correct though
-> 
-> >  int guest_physmap_mark_populate_on_demand(struct domain *d,
-> >                                            unsigned long gfn,
-> >                                            unsigned int order)
-> > diff --git a/xen/include/asm-arm/p2m.h b/xen/include/asm-arm/p2m.h
-> > index 349923a..1afd5cb 100644
-> > --- a/xen/include/asm-arm/p2m.h
-> > +++ b/xen/include/asm-arm/p2m.h
-> > @@ -32,6 +32,9 @@ int p2m_alloc_table(struct domain *d);
-> >  /* */
-> >  void p2m_load_VTTBR(struct domain *d);
-> >  
-> > +/* */
-> > +paddr_t p2m_lookup(struct domain *d, paddr_t gpfn);
-> > +
-> >  /* Setup p2m RAM mapping for domain d from start-end. */
-> >  int p2m_populate_ram(struct domain *d, paddr_t start, paddr_t end);
-> >  /* Map MMIO regions in the p2m: start_gaddr and end_gaddr is the range
-> > -- 
-> > 1.7.9.1
-> > 
-> > 
-> > _______________________________________________
-> > Xen-devel mailing list
-> > Xen-devel@lists.xen.org
-> > http://lists.xen.org/xen-devel
-> > 
-
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1338995969.32319.139.camel@zakaz.uk.xensource.com> b/test/corpus/<1338995969.32319.139.camel@zakaz.uk.xensource.com>
deleted file mode 100644 (file)
index 21a1d05..0000000
+++ /dev/null
@@ -1,127 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Jun 06 16:23:20 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 06 Jun 2012 16:23:20 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1ScI4o-0003U2-Lc
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 06 Jun 2012 16:23:20 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1ScI1G-0005tt-IP; Wed, 06 Jun 2012 15:19:34 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1ScI1E-0005tk-CM
-       for xen-devel@lists.xen.org; Wed, 06 Jun 2012 15:19:32 +0000
-Received: from [85.158.143.35:49353] by server-2.bemta-4.messagelabs.com id
-       06/82-17938-3057FCF4; Wed, 06 Jun 2012 15:19:31 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-15.tower-21.messagelabs.com!1338995971!14315070!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDExMjA=\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 2511 invoked from network); 6 Jun 2012 15:19:31 -0000
-Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-15.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
-       6 Jun 2012 15:19:31 -0000
-X-IronPort-AV: E=Sophos;i="4.75,724,1330905600"; d="scan'208";a="12862703"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       06 Jun 2012 15:19:31 +0000
-Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0; Wed, 6 Jun 2012
-       16:19:31 +0100
-Message-ID: <1338995969.32319.139.camel@zakaz.uk.xensource.com>
-From: Ian Campbell <Ian.Campbell@citrix.com>
-To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-Date: Wed, 6 Jun 2012 16:19:29 +0100
-In-Reply-To: <alpine.DEB.2.02.1206051810270.6030@kaball.uk.xensource.com>
-References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
-       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-       <1338565207-2888-19-git-send-email-ian.campbell@citrix.com>
-       <alpine.DEB.2.02.1206051810270.6030@kaball.uk.xensource.com>
-Organization: Citrix Systems, Inc.
-X-Mailer: Evolution 3.2.2-1 
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 19/38] arm: context switch a bunch of guest
- state.
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Tue, 2012-06-05 at 18:11 +0100, Stefano Stabellini wrote:
-> On Fri, 1 Jun 2012, Ian Campbell wrote:
-> > diff --git a/xen/arch/arm/gic.c b/xen/arch/arm/gic.c
-> > index 1a2b95f..339c327 100644
-> > --- a/xen/arch/arm/gic.c
-> > +++ b/xen/arch/arm/gic.c
-> > @@ -61,6 +61,30 @@ static struct {
-> >  irq_desc_t irq_desc[NR_IRQS];
-> >  unsigned nr_lrs;
-> > 
-> > +void gic_save_state(struct vcpu *v)
-> > +{
-> > +    int i;
-> > +
-> > +    for ( i=0; i<nr_lrs; i++)
-> > +        v->arch.gic_lr[i] = GICH[GICH_LR + i];
-> > +    /* Disable until next VCPU scheduled */
-> > +    GICH[GICH_HCR] = 0;
-> > +    isb();
-> > +}
-> > +
-> > +void gic_restore_state(struct vcpu *v)
-> > +{
-> > +    int i;
-> > +
-> > +    if ( is_idle_vcpu(v) )
-> > +        return;
-> > +
-> > +    for ( i=0; i<nr_lrs; i++)
-> > +        GICH[GICH_LR + i] = v->arch.gic_lr[i];
-> > +    GICH[GICH_HCR] = GICH_HCR_EN;
-> > +    isb();
-> > +}
-> > +
-> 
-> it is still missing a bunch of stuff from the gic state but it is a step
-> in the right direction, so I'll send out patches to complete the gic
-> context switch separately, based on this one.
-
-Can I take this as an Ack for this patch for what it does?
-
-Ian.
-
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1338996592.32319.141.camel@zakaz.uk.xensource.com> b/test/corpus/<1338996592.32319.141.camel@zakaz.uk.xensource.com>
deleted file mode 100644 (file)
index 80d037a..0000000
+++ /dev/null
@@ -1,160 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Jun 06 16:33:28 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 06 Jun 2012 16:33:28 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1ScIEc-0003Wo-6l
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 06 Jun 2012 16:33:27 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1ScIBI-0006Mr-Ot; Wed, 06 Jun 2012 15:29:56 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1ScIBH-0006Me-6E
-       for xen-devel@lists.xen.org; Wed, 06 Jun 2012 15:29:55 +0000
-Received: from [85.158.143.35:48372] by server-1.bemta-4.messagelabs.com id
-       0F/9B-10042-2777FCF4; Wed, 06 Jun 2012 15:29:54 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-2.tower-21.messagelabs.com!1338996593!8150357!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDExMjA=\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 507 invoked from network); 6 Jun 2012 15:29:54 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-2.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
-       6 Jun 2012 15:29:54 -0000
-X-IronPort-AV: E=Sophos;i="4.75,724,1330905600"; d="scan'208";a="12862905"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       06 Jun 2012 15:29:53 +0000
-Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0; Wed, 6 Jun 2012
-       16:29:53 +0100
-Message-ID: <1338996592.32319.141.camel@zakaz.uk.xensource.com>
-From: Ian Campbell <Ian.Campbell@citrix.com>
-To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-Date: Wed, 6 Jun 2012 16:29:52 +0100
-In-Reply-To: <alpine.DEB.2.02.1206061623240.6030@kaball.uk.xensource.com>
-References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
-       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-       <1338565207-2888-14-git-send-email-ian.campbell@citrix.com>
-       <alpine.DEB.2.02.1206061623240.6030@kaball.uk.xensource.com>
-Organization: Citrix Systems, Inc.
-X-Mailer: Evolution 3.2.2-1 
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 14/38] arm: do not set max_vcpus = 8 in
- arch_domain_create.
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Wed, 2012-06-06 at 16:26 +0100, Stefano Stabellini wrote:
-> On Fri, 1 Jun 2012, Ian Campbell wrote:
-> > XEN_DOMCTL_max_vcpus cannot reduce max_vcpus and therefore we can't create a
-> > smaller guest.
-> > 
-> > The limit of 8 (due to GIC limits) should be expressed elsewhere, likely in
-> > MAX_VIRT_CPUS -- but making that change caused:
-> 
-> Are you sure?
-
-Reasonably.
-
->  I made that change and I didn't see the error.
-
-Let me try it again.
-
-> I think this patch should set MAX_VIRT_CPUS to 8 as well as removing
-> max_vcpus = 8.
-
-Yes, that would be ideal, but in the interim just removing the max_vcpus
-= 8 is an improvement in its own right if changing MAX_VIRT_CPUS causes
-grief.
-
-Ian.
-> 
-> 
-> >     (XEN) Unexpected Trap: Data Abort
-> >     (XEN) ----[ Xen-4.2-unstable  x86_64  debug=y  Not tainted ]----
-> >     (XEN) CPU:    0
-> >     (XEN) PC:     00222e48 _spin_lock+0x28/0x6c
-> >     (XEN) CPSR:   600001da MODE:HYP
-> >     (XEN)      R0: 002c4389 R1: 800001da R2: 00000001 R3: 0000ffff
-> >     (XEN)      R4: 002c4381 R5: 00000080 R6: 002c4380 R7: 002c4000
-> >     (XEN)      R8: 002c4380 R9: 4000015a R10:00000080 R11:40017d6c R12:00000000
-> >     (XEN)      SP: 40017d5c LR: 00222e34
-> >     (XEN)
-> >     [...]
-> >     (XEN) Xen call trace:
-> >     (XEN)    [<00222e48>] _spin_lock+0x28/0x6c
-> >     (XEN)    [<0022623c>] init_timer+0xbc/0x160
-> >     (XEN)    [<0021fbdc>] sched_init_vcpu+0x94/0x200
-> >     (XEN)    [<002061a4>] alloc_vcpu+0x124/0x210
-> >     (XEN)    [<00204890>] do_domctl+0xaa4/0x14e4
-> >     (XEN)    [<00241ab8>] do_trap_hypervisor+0x588/0x8cc
-> >     (XEN)    [<0023bbb0>] return_from_trap+0x0/0x4
-> > 
-> > so punt on that for now.
-> > 
-> > Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
-> > ---
-> >  xen/arch/arm/domain.c |    2 --
-> >  1 files changed, 0 insertions(+), 2 deletions(-)
-> > 
-> > diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
-> > index bd900f9..e867cb2 100644
-> > --- a/xen/arch/arm/domain.c
-> > +++ b/xen/arch/arm/domain.c
-> > @@ -215,8 +215,6 @@ int arch_domain_create(struct domain *d, unsigned int domcr_flags)
-> >              goto fail;
-> >      }
-> >  
-> > -    d->max_vcpus = 8;
-> > -
-> >      if ( (rc = domain_vgic_init(d)) != 0 )
-> >          goto fail;
-> >  
-> > -- 
-> > 1.7.9.1
-> > 
-> > 
-> > _______________________________________________
-> > Xen-devel mailing list
-> > Xen-devel@lists.xen.org
-> > http://lists.xen.org/xen-devel
-> > 
-
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1339061691.15265.49.camel@zakaz.uk.xensource.com> b/test/corpus/<1339061691.15265.49.camel@zakaz.uk.xensource.com>
deleted file mode 100644 (file)
index 05af6a5..0000000
+++ /dev/null
@@ -1,141 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Jun 07 10:38:20 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 07 Jun 2012 10:38:20 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1ScZAU-0003jL-OK
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 07 Jun 2012 10:38:20 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1ScZ7H-0006tf-Sb; Thu, 07 Jun 2012 09:34:55 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1ScZ7G-0006tQ-DU
-       for xen-devel@lists.xen.org; Thu, 07 Jun 2012 09:34:54 +0000
-Received: from [85.158.143.99:12529] by server-3.bemta-4.messagelabs.com id
-       17/3B-29237-DB570DF4; Thu, 07 Jun 2012 09:34:53 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-11.tower-216.messagelabs.com!1339061692!24175677!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDE0Nzk=\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 5212 invoked from network); 7 Jun 2012 09:34:53 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-11.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
-       7 Jun 2012 09:34:53 -0000
-X-IronPort-AV: E=Sophos;i="4.75,730,1330905600"; d="scan'208";a="12876396"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       07 Jun 2012 09:34:52 +0000
-Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0; Thu, 7 Jun 2012
-       10:34:52 +0100
-Message-ID: <1339061691.15265.49.camel@zakaz.uk.xensource.com>
-From: Ian Campbell <Ian.Campbell@citrix.com>
-To: Tim Deegan <tim@xen.org>
-Date: Thu, 7 Jun 2012 10:34:51 +0100
-In-Reply-To: <20120607092951.GE70339@ocelot.phlegethon.org>
-References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
-       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-       <1338565207-2888-18-git-send-email-ian.campbell@citrix.com>
-       <20120607092951.GE70339@ocelot.phlegethon.org>
-Organization: Citrix Systems, Inc.
-X-Mailer: Evolution 3.2.2-1 
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 18/38] arm: implement vpl011 (UART) emulator.
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Thu, 2012-06-07 at 10:29 +0100, Tim Deegan wrote:
-> > +int domain_uart0_init(struct domain *d)
-> > +{
-> > +    int rc;
-> > +    if ( d->domain_id == 0 )
-> > +        return 0;
-> 
-> Why?  There's no equivalent gate on the MMIO handlers.
-
-dom0 has the actual uart mapped at this address, not the emulated one.
-Maybe that should be written at the caller instead?
-
-> 
-> > +    spin_lock_init(&d->arch.uart0.lock);
-> > +    d->arch.uart0.idx = 0;
-> > +
-> > +    rc = -ENOMEM;
-> > +    d->arch.uart0.buf = xzalloc_array(char, VPL011_BUF_SIZE);
-> > +    if ( !d->arch.uart0.buf )
-> > +        goto out;
-> 
-> Just return ENOMEM here - the 'rc=foo; goto out' is overkill.
-
-ok.
-
-> > +
-> > +    rc = 0;
-> > +out:
-> > +    return rc;
-> > +}
-> 
-> > +static int uart0_mmio_check(struct vcpu *v, paddr_t addr)
-> > +{
-> > +    return v->domain->domain_id && addr >= UART0_BASE_ADDRESS && addr < (UART0_BASE_ADDRESS+65536);
-> > +}
-> 
-> linewrap?
-
-yes, Stefano also suggests a better #define than 65536...
-
-> 
-> > +
-> > +static int uart0_mmio_read(struct vcpu *v, mmio_info_t *info)
-> > +{
-> > +    struct hsr_dabt dabt = info->dabt;
-> > +    struct cpu_user_regs *regs = guest_cpu_user_regs();
-> > +    uint32_t *r = &regs->r0 + dabt.reg;
-> > +    int offset = (int)(info->gpa - UART0_BASE_ADDRESS);
-> > +
-> 
-> Need to check dabt.size != 0 here too?
-
-IIRC I was seeing reads of different sizes. To be honest I mostly
-tailored this for the specific behaviour of the Linux decompression
-code, it didn't really want to write a full & correct UART emulation...
-
-Ian.
-
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1339062030.15265.53.camel@zakaz.uk.xensource.com> b/test/corpus/<1339062030.15265.53.camel@zakaz.uk.xensource.com>
deleted file mode 100644 (file)
index 8a44e1a..0000000
+++ /dev/null
@@ -1,172 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Jun 07 10:44:00 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 07 Jun 2012 10:44:00 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1ScZFy-0003ki-6b
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 07 Jun 2012 10:44:00 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1ScZCm-0007r2-Jb; Thu, 07 Jun 2012 09:40:36 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1ScZCl-0007qk-2Q
-       for xen-devel@lists.xen.org; Thu, 07 Jun 2012 09:40:35 +0000
-Received: from [85.158.143.99:14529] by server-1.bemta-4.messagelabs.com id
-       74/1B-10042-21770DF4; Thu, 07 Jun 2012 09:40:34 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-15.tower-216.messagelabs.com!1339062032!31695791!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDE0Nzk=\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 10698 invoked from network); 7 Jun 2012 09:40:33 -0000
-Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-15.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
-       7 Jun 2012 09:40:33 -0000
-X-IronPort-AV: E=Sophos;i="4.75,730,1330905600"; d="scan'208";a="12876548"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       07 Jun 2012 09:40:32 +0000
-Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0; Thu, 7 Jun 2012
-       10:40:32 +0100
-Message-ID: <1339062030.15265.53.camel@zakaz.uk.xensource.com>
-From: Ian Campbell <Ian.Campbell@citrix.com>
-To: Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-Date: Thu, 7 Jun 2012 10:40:30 +0100
-In-Reply-To: <1338990925.32319.103.camel@zakaz.uk.xensource.com>
-References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
-       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-       <1338565207-2888-8-git-send-email-ian.campbell@citrix.com>
-       <alpine.DEB.2.02.1206061443300.6030@kaball.uk.xensource.com>
-       <1338990925.32319.103.camel@zakaz.uk.xensource.com>
-Organization: Citrix Systems, Inc.
-X-Mailer: Evolution 3.2.2-1 
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 08/38] arm: allocate and setup a guest vcpu.
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Wed, 2012-06-06 at 14:55 +0100, Ian Campbell wrote:
-> On Wed, 2012-06-06 at 14:46 +0100, Stefano Stabellini wrote:
-> > On Fri, 1 Jun 2012, Ian Campbell wrote:
-> > > Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
-> > > ---
-> > >  xen/arch/arm/domain.c         |   68 +++++++++++++++++++++++++++++++++++++++++
-> > >  xen/arch/arm/dummy.S          |    3 --
-> > >  xen/include/public/arch-arm.h |    9 -----
-> > >  3 files changed, 68 insertions(+), 12 deletions(-)
-> > > 
-> > > diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
-> > > index 9339a11..62a2f3a 100644
-> > > --- a/xen/arch/arm/domain.c
-> > > +++ b/xen/arch/arm/domain.c
-> > > @@ -144,6 +144,17 @@ void free_vcpu_struct(struct vcpu *v)
-> > >      free_xenheap_page(v);
-> > >  }
-> > >  
-> > > +struct vcpu_guest_context *alloc_vcpu_guest_context(void)
-> > > +{
-> > > +    return xmalloc(struct vcpu_guest_context);
-> > > +
-> > > +}
-> > > +
-> > > +void free_vcpu_guest_context(struct vcpu_guest_context *vgc)
-> > > +{
-> > > +    xfree(vgc);
-> > > +}
-> > > +
-> > >  int vcpu_initialise(struct vcpu *v)
-> > >  {
-> > >      int rc = 0;
-> > > @@ -182,6 +193,9 @@ int arch_domain_create(struct domain *d, unsigned int domcr_flags)
-> > >      if ( (rc = p2m_init(d)) != 0 )
-> > >          goto fail;
-> > >  
-> > > +    if ( (rc = domain_vgic_init(d)) != 0 )
-> > > +        goto fail;
-> > > +
-> > 
-> > there is a call to domain_vgic_init already in arch_domain_create
-> 
-> So there is!
-
-Rather inexplicably removing either one of those two domain_vgic_init
-calls causes:
-        (XEN) Unexpected Trap: Data Abort
-        (XEN) ----[ Xen-4.2-unstable  x86_64  debug=y  Not tainted ]----
-        (XEN) CPU:    0
-        (XEN) PC:     00222e7c _spin_lock+0x28/0x6c
-        (XEN) CPSR:   600001da MODE:HYP
-        (XEN)      R0: 002c4389 R1: 800001da R2: 00000001 R3: 0000ffff
-        (XEN)      R4: 002c4381 R5: 00000080 R6: 002c4380 R7: 002c4000
-        (XEN)      R8: 002c4380 R9: 4000015a R10:00000080 R11:40017d6c R12:00000000
-        (XEN)      SP: 40017d5c LR: 00222e68
-        (XEN) 
-        (XEN) HTTBR ffec1000
-        (XEN) HDFAR 2c4381
-        (XEN) HIFAR 0
-        (XEN) HPFAR 0
-        (XEN) HCR 00000835
-        (XEN) HSR   94000021
-        (XEN) 
-        (XEN) DFSR 817 DFAR 134bc
-        (XEN) IFSR 7 IFAR 4024c224
-        (XEN) 
-        (XEN) Xen stack trace from sp=40017d5c:
-        [...]
-        (XEN) Xen call trace:
-        (XEN)    [<00222e7c>] _spin_lock+0x28/0x6c
-        (XEN)    [<00226270>] init_timer+0xbc/0x160
-        (XEN)    [<0021fc14>] sched_init_vcpu+0x94/0x200
-        (XEN)    [<002061a4>] alloc_vcpu+0x124/0x210
-        (XEN)    [<00204890>] do_domctl+0xaa4/0x14e4
-        (XEN)    [<00241aec>] do_trap_hypervisor+0x588/0x8cc
-        (XEN)    [<0023bbf0>] return_from_trap+0x0/0x4
-
-I'm totally at a loss to explain that. domain_vgic_init allocates two
-arrays so it is possible we have some sort of overrun error, although I
-can't for the life of me see it in there (it could be elsewhere though).
-
-As an experiment I tried doubling the size of both allocations in that
-function (and calling it once) but that didn't help so no hints from
-that...
-
-More head scratching required I think!
-
-Ian.
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1339068947.18523.10.camel@zakaz.uk.xensource.com> b/test/corpus/<1339068947.18523.10.camel@zakaz.uk.xensource.com>
deleted file mode 100644 (file)
index 9db5085..0000000
+++ /dev/null
@@ -1,235 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Jun 07 12:39:45 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 07 Jun 2012 12:39:45 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1Scb3z-0004GP-Ht
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 07 Jun 2012 12:39:45 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1Scb0K-0006R5-Kw; Thu, 07 Jun 2012 11:35:52 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1Scb0I-0006Qq-Uw
-       for xen-devel@lists.xen.org; Thu, 07 Jun 2012 11:35:51 +0000
-Received: from [85.158.143.99:55928] by server-1.bemta-4.messagelabs.com id
-       CA/57-10042-61290DF4; Thu, 07 Jun 2012 11:35:50 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-11.tower-216.messagelabs.com!1339068948!24200794!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDE0Nzk=\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 27336 invoked from network); 7 Jun 2012 11:35:49 -0000
-Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-11.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
-       7 Jun 2012 11:35:49 -0000
-X-IronPort-AV: E=Sophos;i="4.75,730,1330905600"; d="scan'208";a="12879343"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       07 Jun 2012 11:35:48 +0000
-Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0; Thu, 7 Jun 2012
-       12:35:48 +0100
-Message-ID: <1339068947.18523.10.camel@zakaz.uk.xensource.com>
-From: Ian Campbell <Ian.Campbell@citrix.com>
-To: Tim Deegan <tim@xen.org>, Keir Fraser <keir@xen.org>
-Date: Thu, 7 Jun 2012 12:35:47 +0100
-In-Reply-To: <20120607090808.GD70339@ocelot.phlegethon.org>
-References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
-       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-       <1338565207-2888-16-git-send-email-ian.campbell@citrix.com>
-       <20120607090808.GD70339@ocelot.phlegethon.org>
-Organization: Citrix Systems, Inc.
-X-Mailer: Evolution 3.2.2-1 
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 16/38] arm: Add simple cpu_{sibling,
- core}_mask
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-(Keir, this slightly touches common code...)
-
-On Thu, 2012-06-07 at 10:08 +0100, Tim Deegan wrote:
-> At 15:39 +0000 on 01 Jun (1338565185), Ian Campbell wrote:
-> > @@ -230,6 +230,13 @@ void __init start_xen(unsigned long boot_phys_offset,
-> >          }
-> >      }
-> >  
-> > +    if ( !zalloc_cpumask_var(&per_cpu(cpu_sibling_mask, 0)) ||
-> > +         !zalloc_cpumask_var(&per_cpu(cpu_core_mask, 0)) )
-> > +        BUG();
-> > +
-> > +    cpumask_clear(per_cpu(cpu_sibling_mask, 0));
-> > +    cpumask_clear(per_cpu(cpu_core_mask, 0));
-> 
-> Aren't these clear()s noops?  
-
-Yes, they were also incorrect since a CPU is it's own sibling and shares
-a core with itself. Otherwise all manner of weirdness ensues (see commit
-message). These also need to be setup on all CPUs.
-
-I replaced this patch with the following.
-
-Ian.
-
-8<------------------------------------------------------
-
->From e980ca1ec9bf92b2f1255ac5222b1da1292f9f72 Mon Sep 17 00:00:00 2001
-From: Ian Campbell <ian.campbell@citrix.com>
-Date: Mon, 14 May 2012 12:25:31 +0100
-Subject: [PATCH] arm: Add simple cpu_{sibling,core}_mask
-
-This needs to be done for all cpus. The allocations require smp_prepare_cpus
-to be called a bit later on.
-
-In a previous version of this patch these maps were being zeroed (instead of
-setting the CPU itself in them). This in turn causes cpumask_first to return
-NR_CPUS, which in turn was causing default_vcpu0_location to misbehave and
-read off the end of its cnt array. Add a couple of asserts to catch this in
-the future.
-
-Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
----
- xen/arch/arm/dummy.S   |    2 --
- xen/arch/arm/setup.c   |    4 ++--
- xen/arch/arm/smpboot.c |   21 +++++++++++++++++++++
- xen/common/domctl.c    |    2 ++
- 4 files changed, 25 insertions(+), 4 deletions(-)
-
-diff --git a/xen/arch/arm/dummy.S b/xen/arch/arm/dummy.S
-index c001e8d..03f7489 100644
---- a/xen/arch/arm/dummy.S
-+++ b/xen/arch/arm/dummy.S
-@@ -7,8 +7,6 @@ x:     .word 0xe7f000f0 /* Undefined instruction */
- x:    mov pc, lr
-       
- /* SMP support */
--DUMMY(per_cpu__cpu_core_mask);
--DUMMY(per_cpu__cpu_sibling_mask);
- DUMMY(node_online_map);
- DUMMY(smp_send_state_dump);
-diff --git a/xen/arch/arm/setup.c b/xen/arch/arm/setup.c
-index 81ababb..d6c0178 100644
---- a/xen/arch/arm/setup.c
-+++ b/xen/arch/arm/setup.c
-@@ -173,8 +173,6 @@ void __init start_xen(unsigned long boot_phys_offset,
-     set_current((struct vcpu *)0xfffff000); /* debug sanity */
-     idle_vcpu[0] = current;
--    smp_prepare_cpus(cpus);
--
-     init_xen_time();
-     setup_mm(atag_paddr, fdt_size);
-@@ -214,6 +212,8 @@ void __init start_xen(unsigned long boot_phys_offset,
-     local_irq_enable();
-+    smp_prepare_cpus(cpus);
-+
-     initialize_keytable();
-     console_init_postirq();
-diff --git a/xen/arch/arm/smpboot.c b/xen/arch/arm/smpboot.c
-index ea05afc..6463a8d 100644
---- a/xen/arch/arm/smpboot.c
-+++ b/xen/arch/arm/smpboot.c
-@@ -52,6 +52,23 @@ unsigned long __initdata ready_cpus = 0;
- /* ID of the PCPU we're running on */
- DEFINE_PER_CPU(unsigned int, cpu_id);
-+/* XXX these seem awfully x86ish... */
-+/* representing HT siblings of each logical CPU */
-+DEFINE_PER_CPU_READ_MOSTLY(cpumask_var_t, cpu_sibling_mask);
-+/* representing HT and core siblings of each logical CPU */
-+DEFINE_PER_CPU_READ_MOSTLY(cpumask_var_t, cpu_core_mask);
-+
-+static void setup_cpu_sibling_map(int cpu)
-+{
-+    if ( !zalloc_cpumask_var(&per_cpu(cpu_sibling_mask, cpu)) ||
-+         !zalloc_cpumask_var(&per_cpu(cpu_core_mask, cpu)) )
-+        panic("No memory for CPU sibling/core maps\n");
-+
-+    /* A CPU is a sibling with itself and is always on its own core. */
-+    cpumask_set_cpu(cpu, per_cpu(cpu_sibling_mask, cpu));
-+    cpumask_set_cpu(cpu, per_cpu(cpu_core_mask, cpu));
-+}
-+
- void __init
- smp_prepare_cpus (unsigned int max_cpus)
-@@ -65,6 +82,8 @@ smp_prepare_cpus (unsigned int max_cpus)
-     for ( i = 0; i < max_cpus; i++ )
-         cpumask_set_cpu(i, &cpu_possible_map);
-     cpumask_copy(&cpu_present_map, &cpu_possible_map);
-+
-+    setup_cpu_sibling_map(0);
- }
- void __init
-@@ -115,6 +134,8 @@ void __cpuinit start_secondary(unsigned long boot_phys_offset,
-     set_current(idle_vcpu[cpuid]);
-+    setup_cpu_sibling_map(cpuid);
-+
-     /* Run local notifiers */
-     notify_cpu_starting(cpuid);
-     wmb();
-diff --git a/xen/common/domctl.c b/xen/common/domctl.c
-index 9f1a9ad..c1acd1d 100644
---- a/xen/common/domctl.c
-+++ b/xen/common/domctl.c
-@@ -190,10 +190,12 @@ static unsigned int default_vcpu0_location(cpumask_t *online)
-      */
-     cpumask_copy(&cpu_exclude_map, per_cpu(cpu_sibling_mask, 0));
-     cpu = cpumask_first(&cpu_exclude_map);
-+    ASSERT(cpu < nr_cpus);
-     if ( cpumask_weight(&cpu_exclude_map) > 1 )
-         cpu = cpumask_next(cpu, &cpu_exclude_map);
-     for_each_cpu(i, online)
-     {
-+        ASSERT(i < nr_cpus);
-         if ( cpumask_test_cpu(i, &cpu_exclude_map) )
-             continue;
-         if ( (i == cpumask_first(per_cpu(cpu_sibling_mask, i))) &&
--- 
-1.7.9.1
-
-
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1339070260.18523.14.camel@zakaz.uk.xensource.com> b/test/corpus/<1339070260.18523.14.camel@zakaz.uk.xensource.com>
deleted file mode 100644 (file)
index ef72433..0000000
+++ /dev/null
@@ -1,184 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Jun 07 13:02:07 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 07 Jun 2012 13:02:07 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1ScbPd-0004LP-9s
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 07 Jun 2012 13:02:07 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1ScbLW-0007an-8o; Thu, 07 Jun 2012 11:57:46 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1ScbLU-0007ai-8J
-       for xen-devel@lists.xen.org; Thu, 07 Jun 2012 11:57:44 +0000
-Received: from [85.158.143.35:24306] by server-2.bemta-4.messagelabs.com id
-       25/4A-17938-73790DF4; Thu, 07 Jun 2012 11:57:43 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-14.tower-21.messagelabs.com!1339070262!19281735!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDE0Nzk=\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 14503 invoked from network); 7 Jun 2012 11:57:43 -0000
-Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-14.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
-       7 Jun 2012 11:57:43 -0000
-X-IronPort-AV: E=Sophos;i="4.75,730,1330905600"; d="scan'208";a="12879769"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       07 Jun 2012 11:57:42 +0000
-Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0; Thu, 7 Jun 2012
-       12:57:41 +0100
-Message-ID: <1339070260.18523.14.camel@zakaz.uk.xensource.com>
-From: Ian Campbell <Ian.Campbell@citrix.com>
-To: Tim Deegan <tim@xen.org>
-Date: Thu, 7 Jun 2012 12:57:40 +0100
-In-Reply-To: <20120607084517.GA70339@ocelot.phlegethon.org>
-References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
-       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-       <1338565207-2888-2-git-send-email-ian.campbell@citrix.com>
-       <20120607084517.GA70339@ocelot.phlegethon.org>
-Organization: Citrix Systems, Inc.
-X-Mailer: Evolution 3.2.2-1 
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 02/38] arm: handy function to print a walk
- of the hypervisor page tables
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Thu, 2012-06-07 at 09:45 +0100, Tim Deegan wrote:
-> Hi,
-> 
-> At 15:39 +0000 on 01 Jun (1338565171), Ian Campbell wrote:
-> > +void dump_pt_walk(uint32_t addr)
-> > +{
-> > +    paddr_t second_ma, third_ma;
-> > +    lpae_t *first = NULL, *second = NULL, *third = NULL;
-> > +    uint64_t httbr = READ_CP64(HTTBR);
-> > +
-> > +    printk("Walking Hypervisor VA %#"PRIx32" via HTTBR %#"PRIx64"\n",
-> > +           addr, httbr);
-> > +
-> > +    BUG_ON( (lpae_t *)(unsigned long)(httbr - xen_phys_offset) != xen_pgtable );
-> > +    first = xen_pgtable;
-> > +    printk("1ST[%#03"PRIx32"] = %p[%#03"PRIx32"] = %#llx = %#016llx\n",
-> > +           first_table_offset(addr),
-> > +           first, first_table_offset(addr),
-> > +           virt_to_maddr(&first[first_table_offset(addr)]),
-> > +           first[first_table_offset(addr)].bits);
-> > +
-> > +    if ( !first[first_table_offset(addr)].pt.valid ||
-> > +         !first[first_table_offset(addr)].pt.table )
-> > +        goto done;
-> 
-> This could probably be a for loop rather than open-coding three
-> almost-identical printks.
-
-The *_table_offsets macro names are different at each stage, I suppose I
-could open code the equivalent shifts, but I'd rather keep using the
-access macros.
-
-> > +
-> > +    second_ma = (paddr_t)first[first_table_offset(addr)].pt.base << PAGE_SHIFT;
-> > +    second = (lpae_t *)(unsigned long)(second_ma - xen_phys_offset);
-> > +    printk("2ND[%#03"PRIx32"] = %p[%#03"PRIx32"] = %#llx = %#016llx\n",
-> > +           second_table_offset(addr),
-> > +           second, second_table_offset(addr),
-> > +           virt_to_maddr(&second[second_table_offset(addr)]),
-> > +           second[second_table_offset(addr)].bits);
-> > +    if ( !second[second_table_offset(addr)].pt.valid ||
-> > +         !second[second_table_offset(addr)].pt.table )
-> > +        goto done;
-> > +
-> > +    third_ma = (paddr_t)second[second_table_offset(addr)].pt.base << PAGE_SHIFT;
-> > +    third = (lpae_t *)(unsigned long)(third_ma - xen_phys_offset);
-> > +    printk("3RD[%#03"PRIx32"] = %p[%#03"PRIx32"] = %#llx = %#016llx\n",
-> > +           third_table_offset(addr),
-> > +           third, third_table_offset(addr),
-> > +           virt_to_maddr(&third[third_table_offset(addr)]),
-> > +           third[third_table_offset(addr)].bits);
-> > +    if ( !third[third_table_offset(addr)].pt.valid ||
-> > +         !third[third_table_offset(addr)].pt.table )
-> > +        goto done;
-> > +
-> > +done:
-> > +    return;
-> 
-> Maybe use return above instead of goto?
-
-Yes, good idea.
-
-> 
-> > +}
-> > +
-> >  /* Map a 4k page in a fixmap entry */
-> >  void set_fixmap(unsigned map, unsigned long mfn, unsigned attributes)
-> >  {
-> > @@ -173,8 +222,8 @@ void __init setup_pagetables(unsigned long boot_phys_offset)
-> >      flush_xen_data_tlb_va(dest_va);
-> >  
-> >      /* Calculate virt-to-phys offset for the new location */
-> > -    phys_offset = xen_paddr - (unsigned long) _start;
-> > -
-> > +    xen_phys_offset = phys_offset = xen_paddr - (unsigned long) _start;
-> > +    
-> 
-> Just make phys_offset file-scope static; no need to add a new variable
-> for this.
-
-Will do.
-
-> 
-> >      /* Copy */
-> >      memcpy((void *) dest_va, _start, _end - _start);
-> >  
-> > diff --git a/xen/include/asm-arm/page.h b/xen/include/asm-arm/page.h
-> > index b6df64e..22c56b5 100644
-> > --- a/xen/include/asm-arm/page.h
-> > +++ b/xen/include/asm-arm/page.h
-> > @@ -312,6 +312,8 @@ static inline uint64_t gva_to_ipa(uint32_t va)
-> >  /* Bits in the PAR returned by va_to_par */
-> >  #define PAR_FAULT 0x1
-> >  
-> > +extern void dump_pt_walk(uint32_t addr);
-> > +
-> 
-> Maybe a comment?
-
-Yes, good idea.
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1339070809.18523.15.camel@zakaz.uk.xensource.com> b/test/corpus/<1339070809.18523.15.camel@zakaz.uk.xensource.com>
deleted file mode 100644 (file)
index 7dfd4c6..0000000
+++ /dev/null
@@ -1,94 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Jun 07 13:11:39 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 07 Jun 2012 13:11:39 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1ScbYr-0004MJ-GB
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 07 Jun 2012 13:11:39 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1ScbUk-00085x-0k; Thu, 07 Jun 2012 12:07:18 +0000
-Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1ScbUi-00085s-MA
-       for xen-devel@lists.xen.org; Thu, 07 Jun 2012 12:07:16 +0000
-Received: from [193.109.254.147:37036] by server-7.bemta-14.messagelabs.com id
-       C4/3F-29165-37990DF4; Thu, 07 Jun 2012 12:07:15 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-4.tower-27.messagelabs.com!1339070820!8545175!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDE0Nzk=\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 24374 invoked from network); 7 Jun 2012 12:07:00 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-4.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
-       7 Jun 2012 12:07:00 -0000
-X-IronPort-AV: E=Sophos;i="4.75,731,1330905600"; d="scan'208";a="12879989"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       07 Jun 2012 12:06:50 +0000
-Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0; Thu, 7 Jun 2012
-       13:06:50 +0100
-Message-ID: <1339070809.18523.15.camel@zakaz.uk.xensource.com>
-From: Ian Campbell <Ian.Campbell@citrix.com>
-To: Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-Date: Thu, 7 Jun 2012 13:06:49 +0100
-In-Reply-To: <alpine.DEB.2.02.1206071239250.2415@kaball.uk.xensource.com>
-References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
-       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-       <1338565207-2888-37-git-send-email-ian.campbell@citrix.com>
-       <alpine.DEB.2.02.1206071239250.2415@kaball.uk.xensource.com>
-Organization: Citrix Systems, Inc.
-X-Mailer: Evolution 3.2.2-1 
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 37/38] HACK: add simple xcbuild
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Thu, 2012-06-07 at 12:42 +0100, Stefano Stabellini wrote:
-> It is OK but I would remove the commented out code and add a very basic
-> arguments check.
-
-Thanks, but this one was just for testing etc rather than commit
-
-In general the things with HACK in them were just for illustration and
-or to allow you to exercise the non-HACK patches.
-
-Ian.
-
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1339072005.18523.18.camel@zakaz.uk.xensource.com> b/test/corpus/<1339072005.18523.18.camel@zakaz.uk.xensource.com>
deleted file mode 100644 (file)
index 8315893..0000000
+++ /dev/null
@@ -1,145 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Jun 07 13:31:40 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 07 Jun 2012 13:31:40 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1ScbsH-0004Pe-OA
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 07 Jun 2012 13:31:40 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1Scbo0-0008GQ-TP; Thu, 07 Jun 2012 12:27:12 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1Scbny-0008GL-PZ
-       for xen-devel@lists.xen.org; Thu, 07 Jun 2012 12:27:11 +0000
-Received: from [85.158.138.51:49065] by server-6.bemta-3.messagelabs.com id
-       E0/A0-05063-E1E90DF4; Thu, 07 Jun 2012 12:27:10 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-2.tower-174.messagelabs.com!1339072029!31289214!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDE0Nzk=\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 28679 invoked from network); 7 Jun 2012 12:27:09 -0000
-Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-2.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
-       7 Jun 2012 12:27:09 -0000
-X-IronPort-AV: E=Sophos;i="4.75,731,1330905600"; d="scan'208";a="12880511"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       07 Jun 2012 12:26:46 +0000
-Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0; Thu, 7 Jun 2012
-       13:26:46 +0100
-Message-ID: <1339072005.18523.18.camel@zakaz.uk.xensource.com>
-From: Ian Campbell <Ian.Campbell@citrix.com>
-To: Tim Deegan <tim@xen.org>
-Date: Thu, 7 Jun 2012 13:26:45 +0100
-In-Reply-To: <20120607084917.GB70339@ocelot.phlegethon.org>
-References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
-       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-       <1338565207-2888-3-git-send-email-ian.campbell@citrix.com>
-       <20120607084917.GB70339@ocelot.phlegethon.org>
-Organization: Citrix Systems, Inc.
-X-Mailer: Evolution 3.2.2-1 
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 03/38] arm: handy function to print a walk
- of a domain's p2m.
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Thu, 2012-06-07 at 09:49 +0100, Tim Deegan wrote:
-> At 15:39 +0000 on 01 Jun (1338565172), Ian Campbell wrote:
-> > Useful for debug but not actually used in this patch.
-> > 
-> > Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
-> > ---
-> >  xen/arch/arm/p2m.c         |   34 ++++++++++++++++++++++++++++++++++
-> >  xen/include/asm-arm/page.h |    1 +
-> >  2 files changed, 35 insertions(+), 0 deletions(-)
-> > 
-> > diff --git a/xen/arch/arm/p2m.c b/xen/arch/arm/p2m.c
-> > index 4f624d8..fdbecbc 100644
-> > --- a/xen/arch/arm/p2m.c
-> > +++ b/xen/arch/arm/p2m.c
-> > @@ -5,6 +5,40 @@
-> >  #include <xen/domain_page.h>
-> >  #include <asm/flushtlb.h>
-> >  
-> > +void dump_p2m_lookup(struct domain *d, paddr_t addr)
-> > +{
-> > +    struct p2m_domain *p2m = &d->arch.p2m;
-> > +    lpae_t *first = NULL, *second = NULL, *third = NULL;
-> > +
-> > +    printk("dom%d IPA %#016llx\n", d->domain_id, addr);
-> > +
-> > +    first = __map_domain_page(p2m->first_level);
-> > +    printk("1ST[%#03llx] = %#016llx\n",
-> > +           first_table_offset(addr),
-> > +           first[first_table_offset(addr)].bits);
-> > +    if ( !first[first_table_offset(addr)].p2m.valid ||
-> > +         !first[first_table_offset(addr)].p2m.table )
-> > +        goto done;
-> > +
-> > +    second = map_domain_page(first[first_table_offset(addr)].p2m.base);
-> > +    printk("2ND[%#03llx] = %#016llx\n",
-> > +           second_table_offset(addr),
-> > +           second[second_table_offset(addr)].bits);
-> > +    if ( !second[second_table_offset(addr)].p2m.valid ||
-> > +         !second[second_table_offset(addr)].p2m.table )
-> > +        goto done;
-> > +
-> > +    third = map_domain_page(second[second_table_offset(addr)].p2m.base);
-> > +    printk("3RD[%#03llx] = %#016llx\n",
-> > +           third_table_offset(addr),
-> > +           third[third_table_offset(addr)].bits);
-> > +
-> > +done:
-> > +    if (third) unmap_domain_page(third);
-> > +    if (second) unmap_domain_page(second);
-> > +    if (first) unmap_domain_page(first);
-> > +}
-> 
-> Can this be unified with dump_pt_walk?
-
-Not all that easily, mainly because dump_pt_walk walks xenheap pages
-(which don't need mapping) while dump_p2m_walk dumps domheap pages
-(which need mapping as we go). I probably could write something generic
-enough but I fear that it would be a mass of if's.
-
-Ian.
-
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1339077263.18523.19.camel@zakaz.uk.xensource.com> b/test/corpus/<1339077263.18523.19.camel@zakaz.uk.xensource.com>
deleted file mode 100644 (file)
index dc9d1fc..0000000
+++ /dev/null
@@ -1,155 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Jun 07 14:57:54 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 07 Jun 2012 14:57:54 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1ScdDk-0004oF-9L
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 07 Jun 2012 14:57:54 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1ScdAR-00038W-ML; Thu, 07 Jun 2012 13:54:27 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1ScdAQ-00038N-9z
-       for xen-devel@lists.xen.org; Thu, 07 Jun 2012 13:54:26 +0000
-Received: from [85.158.143.35:22376] by server-2.bemta-4.messagelabs.com id
-       C0/1B-17938-192B0DF4; Thu, 07 Jun 2012 13:54:25 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-5.tower-21.messagelabs.com!1339077264!7520987!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDE0Nzk=\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 10958 invoked from network); 7 Jun 2012 13:54:25 -0000
-Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-5.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
-       7 Jun 2012 13:54:25 -0000
-X-IronPort-AV: E=Sophos;i="4.75,731,1330905600"; d="scan'208";a="12885370"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       07 Jun 2012 13:54:24 +0000
-Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0; Thu, 7 Jun 2012
-       14:54:24 +0100
-Message-ID: <1339077263.18523.19.camel@zakaz.uk.xensource.com>
-From: Ian Campbell <Ian.Campbell@citrix.com>
-To: Tim Deegan <tim@xen.org>
-Date: Thu, 7 Jun 2012 14:54:23 +0100
-In-Reply-To: <20120607124033.GS70339@ocelot.phlegethon.org>
-References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
-       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-       <1338565207-2888-3-git-send-email-ian.campbell@citrix.com>
-       <20120607084917.GB70339@ocelot.phlegethon.org>
-       <1339072005.18523.18.camel@zakaz.uk.xensource.com>
-       <20120607124033.GS70339@ocelot.phlegethon.org>
-Organization: Citrix Systems, Inc.
-X-Mailer: Evolution 3.2.2-1 
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 03/38] arm: handy function to print a walk
- of a domain's p2m.
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Thu, 2012-06-07 at 13:40 +0100, Tim Deegan wrote:
-> At 13:26 +0100 on 07 Jun (1339075605), Ian Campbell wrote:
-> > On Thu, 2012-06-07 at 09:49 +0100, Tim Deegan wrote:
-> > > At 15:39 +0000 on 01 Jun (1338565172), Ian Campbell wrote:
-> > > > Useful for debug but not actually used in this patch.
-> > > > 
-> > > > Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
-> > > > ---
-> > > >  xen/arch/arm/p2m.c         |   34 ++++++++++++++++++++++++++++++++++
-> > > >  xen/include/asm-arm/page.h |    1 +
-> > > >  2 files changed, 35 insertions(+), 0 deletions(-)
-> > > > 
-> > > > diff --git a/xen/arch/arm/p2m.c b/xen/arch/arm/p2m.c
-> > > > index 4f624d8..fdbecbc 100644
-> > > > --- a/xen/arch/arm/p2m.c
-> > > > +++ b/xen/arch/arm/p2m.c
-> > > > @@ -5,6 +5,40 @@
-> > > >  #include <xen/domain_page.h>
-> > > >  #include <asm/flushtlb.h>
-> > > >  
-> > > > +void dump_p2m_lookup(struct domain *d, paddr_t addr)
-> > > > +{
-> > > > +    struct p2m_domain *p2m = &d->arch.p2m;
-> > > > +    lpae_t *first = NULL, *second = NULL, *third = NULL;
-> > > > +
-> > > > +    printk("dom%d IPA %#016llx\n", d->domain_id, addr);
-> > > > +
-> > > > +    first = __map_domain_page(p2m->first_level);
-> > > > +    printk("1ST[%#03llx] = %#016llx\n",
-> > > > +           first_table_offset(addr),
-> > > > +           first[first_table_offset(addr)].bits);
-> > > > +    if ( !first[first_table_offset(addr)].p2m.valid ||
-> > > > +         !first[first_table_offset(addr)].p2m.table )
-> > > > +        goto done;
-> > > > +
-> > > > +    second = map_domain_page(first[first_table_offset(addr)].p2m.base);
-> > > > +    printk("2ND[%#03llx] = %#016llx\n",
-> > > > +           second_table_offset(addr),
-> > > > +           second[second_table_offset(addr)].bits);
-> > > > +    if ( !second[second_table_offset(addr)].p2m.valid ||
-> > > > +         !second[second_table_offset(addr)].p2m.table )
-> > > > +        goto done;
-> > > > +
-> > > > +    third = map_domain_page(second[second_table_offset(addr)].p2m.base);
-> > > > +    printk("3RD[%#03llx] = %#016llx\n",
-> > > > +           third_table_offset(addr),
-> > > > +           third[third_table_offset(addr)].bits);
-> > > > +
-> > > > +done:
-> > > > +    if (third) unmap_domain_page(third);
-> > > > +    if (second) unmap_domain_page(second);
-> > > > +    if (first) unmap_domain_page(first);
-> > > > +}
-> > > 
-> > > Can this be unified with dump_pt_walk?
-> > 
-> > Not all that easily, mainly because dump_pt_walk walks xenheap pages
-> > (which don't need mapping) while dump_p2m_walk dumps domheap pages
-> > (which need mapping as we go). I probably could write something generic
-> > enough but I fear that it would be a mass of if's.
-> 
-> Is there any harm in mapping xenheap pages?  Since this is only invoked
-> on error paths, we don't particularly need it to be fast. 
-
-For some reason I thought it just didn't work -- I'll give it a go
-though.
-
-Ian.
-
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1339086867.18523.36.camel@zakaz.uk.xensource.com> b/test/corpus/<1339086867.18523.36.camel@zakaz.uk.xensource.com>
deleted file mode 100644 (file)
index 2cda569..0000000
+++ /dev/null
@@ -1,294 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Jun 07 17:38:24 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 07 Jun 2012 17:38:24 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1Scfj0-0005KM-B2
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 07 Jun 2012 17:38:24 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1ScffM-0001hI-P6; Thu, 07 Jun 2012 16:34:32 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1ScffK-0001hB-PC
-       for xen-devel@lists.xen.org; Thu, 07 Jun 2012 16:34:31 +0000
-Received: from [85.158.139.83:16932] by server-5.bemta-5.messagelabs.com id
-       4C/0D-04481-518D0DF4; Thu, 07 Jun 2012 16:34:29 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-8.tower-182.messagelabs.com!1339086869!18660235!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDE0Nzk=\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 12332 invoked from network); 7 Jun 2012 16:34:29 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-8.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
-       7 Jun 2012 16:34:29 -0000
-X-IronPort-AV: E=Sophos;i="4.75,732,1330905600"; d="scan'208";a="12892000"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       07 Jun 2012 16:34:29 +0000
-Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0; Thu, 7 Jun 2012
-       17:34:29 +0100
-Message-ID: <1339086867.18523.36.camel@zakaz.uk.xensource.com>
-From: Ian Campbell <Ian.Campbell@citrix.com>
-To: "Tim (Xen.org)" <tim@xen.org>
-Date: Thu, 7 Jun 2012 17:34:27 +0100
-In-Reply-To: <1339077263.18523.19.camel@zakaz.uk.xensource.com>
-References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
-       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-       <1338565207-2888-3-git-send-email-ian.campbell@citrix.com>
-       <20120607084917.GB70339@ocelot.phlegethon.org>
-       <1339072005.18523.18.camel@zakaz.uk.xensource.com>
-       <20120607124033.GS70339@ocelot.phlegethon.org>
-       <1339077263.18523.19.camel@zakaz.uk.xensource.com>
-Organization: Citrix Systems, Inc.
-X-Mailer: Evolution 3.2.2-1 
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 03/38] arm: handy function to print a walk
- of a domain's p2m.
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-> > > > > diff --git a/xen/arch/arm/p2m.c b/xen/arch/arm/p2m.c
-> > > > > index 4f624d8..fdbecbc 100644
-> > > > > --- a/xen/arch/arm/p2m.c
-> > > > > +++ b/xen/arch/arm/p2m.c
-> > > > > @@ -5,6 +5,40 @@
-> > > > >  #include <xen/domain_page.h>
-> > > > >  #include <asm/flushtlb.h>
-> > > > >  
-> > > > > +void dump_p2m_lookup(struct domain *d, paddr_t addr)
-> > > > > +{
-[...]
-> > > > > +}
-> > > > 
-> > > > Can this be unified with dump_pt_walk?
-> > > 
-> > > Not all that easily, mainly because dump_pt_walk walks xenheap pages
-> > > (which don't need mapping) while dump_p2m_walk dumps domheap pages
-> > > (which need mapping as we go). I probably could write something generic
-> > > enough but I fear that it would be a mass of if's.
-> > 
-> > Is there any harm in mapping xenheap pages?  Since this is only invoked
-> > on error paths, we don't particularly need it to be fast. 
-> 
-> For some reason I thought it just didn't work -- I'll give it a go
-> though.
-
-Well it works, this means that this patch and the previous patch then
-collapse down into a single patch:
-
-8<-------------------------------------------------------
-
->From 055fe5f4a3a77f292d5a2a6b9f56a4d14dad3519 Mon Sep 17 00:00:00 2001
-From: Ian Campbell <ian.campbell@citrix.com>
-Date: Fri, 2 Mar 2012 12:02:42 +0000
-Subject: [PATCH] arm: handy function to print a walk of a page table
-
-Include helpers for dumping hypervisor walks and guest p2m walks.
-
-Useful for debug but not actually used in this patch.
-
-Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
----
- xen/arch/arm/mm.c          |   49 +++++++++++++++++++++++++++++++++++++++++++-
- xen/arch/arm/p2m.c         |   15 +++++++++++++
- xen/include/asm-arm/page.h |   26 +++++++++++++++++++++++
- 3 files changed, 89 insertions(+), 1 deletions(-)
-
-diff --git a/xen/arch/arm/mm.c b/xen/arch/arm/mm.c
-index 10ff883..715a98a 100644
---- a/xen/arch/arm/mm.c
-+++ b/xen/arch/arm/mm.c
-@@ -26,6 +26,7 @@
- #include <xen/preempt.h>
- #include <xen/errno.h>
- #include <xen/guest_access.h>
-+#include <xen/domain_page.h>
- #include <asm/page.h>
- #include <asm/current.h>
- #include <public/memory.h>
-@@ -42,6 +43,8 @@ static lpae_t xen_xenmap[LPAE_ENTRIES] __attribute__((__aligned__(4096)));
- /* Non-boot CPUs use this to find the correct pagetables. */
- uint64_t boot_httbr;
-+static paddr_t phys_offset;
-+
- /* Limits of the Xen heap */
- unsigned long xenheap_mfn_start, xenheap_mfn_end;
- unsigned long xenheap_virt_end;
-@@ -53,6 +56,50 @@ unsigned long max_page;
- extern char __init_begin[], __init_end[];
-+void dump_pt_walk(lpae_t *first, paddr_t addr)
-+{
-+    lpae_t *second = NULL, *third = NULL;
-+
-+    if ( first_table_offset(addr) >= LPAE_ENTRIES )
-+        return;
-+
-+    printk("1ST[0x%llx] = 0x%"PRIpaddr"\n",
-+           first_table_offset(addr),
-+           first[first_table_offset(addr)].bits);
-+    if ( !first[first_table_offset(addr)].walk.valid ||
-+         !first[first_table_offset(addr)].walk.table )
-+        goto done;
-+
-+    second = map_domain_page(first[first_table_offset(addr)].walk.base);
-+    printk("2ND[0x%llx] = 0x%"PRIpaddr"\n",
-+           second_table_offset(addr),
-+           second[second_table_offset(addr)].bits);
-+    if ( !second[second_table_offset(addr)].walk.valid ||
-+         !second[second_table_offset(addr)].walk.table )
-+        goto done;
-+
-+    third = map_domain_page(second[second_table_offset(addr)].walk.base);
-+    printk("3RD[0x%llx] = 0x%"PRIpaddr"\n",
-+           third_table_offset(addr),
-+           third[third_table_offset(addr)].bits);
-+
-+done:
-+    if (third) unmap_domain_page(third);
-+    if (second) unmap_domain_page(second);
-+
-+}
-+
-+void dump_hyp_walk(uint32_t addr)
-+{
-+    uint64_t httbr = READ_CP64(HTTBR);
-+
-+    printk("Walking Hypervisor VA 0x%08"PRIx32" via HTTBR 0x%016"PRIx64"\n",
-+           addr, httbr);
-+
-+    BUG_ON( (lpae_t *)(unsigned long)(httbr - phys_offset) != xen_pgtable );
-+    dump_pt_walk(xen_pgtable, addr);
-+}
-+
- /* Map a 4k page in a fixmap entry */
- void set_fixmap(unsigned map, unsigned long mfn, unsigned attributes)
- {
-@@ -159,7 +206,7 @@ void unmap_domain_page(const void *va)
-  * Changes here may need matching changes in head.S */
- void __init setup_pagetables(unsigned long boot_phys_offset)
- {
--    paddr_t xen_paddr, phys_offset;
-+    paddr_t xen_paddr;
-     unsigned long dest_va;
-     lpae_t pte, *p;
-     int i;
-diff --git a/xen/arch/arm/p2m.c b/xen/arch/arm/p2m.c
-index 4f624d8..ea385a6 100644
---- a/xen/arch/arm/p2m.c
-+++ b/xen/arch/arm/p2m.c
-@@ -5,6 +5,21 @@
- #include <xen/domain_page.h>
- #include <asm/flushtlb.h>
-+void dump_p2m_lookup(struct domain *d, paddr_t addr)
-+{
-+    struct p2m_domain *p2m = &d->arch.p2m;
-+    lpae_t *first;
-+
-+    printk("dom%d IPA 0x%"PRIpaddr"\n", d->domain_id, addr);
-+
-+    printk("P2M @ %p mfn:0x%lx\n",
-+           p2m->first_level, page_to_mfn(p2m->first_level));
-+
-+    first = __map_domain_page(p2m->first_level);
-+    dump_pt_walk(first, addr);
-+    unmap_domain_page(first);
-+}
-+
- void p2m_load_VTTBR(struct domain *d)
- {
-     struct p2m_domain *p2m = &d->arch.p2m;
-diff --git a/xen/include/asm-arm/page.h b/xen/include/asm-arm/page.h
-index b6df64e..183ba5f 100644
---- a/xen/include/asm-arm/page.h
-+++ b/xen/include/asm-arm/page.h
-@@ -132,10 +132,28 @@ typedef struct {
-     unsigned long sbz1:5;
- } __attribute__((__packed__)) lpae_p2m_t;
-+/*
-+ * Walk is the common bits of p2m and pt entries which are needed to
-+ * simply walk the table (e.g. for debug).
-+ */
-+typedef struct {
-+    /* These are used in all kinds of entry. */
-+    unsigned long valid:1;      /* Valid mapping */
-+    unsigned long table:1;      /* == 1 in 4k map entries too */
-+
-+    unsigned long pad2:10;
-+
-+    /* The base address must be appropriately aligned for Block entries */
-+    unsigned long base:28;      /* Base address of block or next table */
-+
-+    unsigned long pad1:24;
-+} __attribute__((__packed__)) lpae_walk_t;
-+
- typedef union {
-     uint64_t bits;
-     lpae_pt_t pt;
-     lpae_p2m_t p2m;
-+    lpae_walk_t walk;
- } lpae_t;
- /* Standard entry type that we'll use to build Xen's own pagetables.
-@@ -252,6 +270,14 @@ static inline void flush_guest_tlb(void)
-     WRITE_CP32(r0 /* dummy */, TLBIALLNSNH);
- }
-+/* Print a walk of an arbitrary page table */
-+void dump_pt_walk(lpae_t *table, paddr_t addr);
-+
-+/* Print a walk of the hypervisor's page tables for a virtual addr. */
-+extern void dump_hyp_walk(uint32_t addr);
-+/* Print a walk of the p2m for a domain for a physical address. */
-+extern void dump_p2m_lookup(struct domain *d, paddr_t addr);
-+
- /* Ask the MMU to translate a VA for us */
- static inline uint64_t __va_to_par(uint32_t va)
- {
--- 
-1.7.9.1
-
-
-
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1339087181.22331.2.camel@zakaz.uk.xensource.com> b/test/corpus/<1339087181.22331.2.camel@zakaz.uk.xensource.com>
deleted file mode 100644 (file)
index 74fa7f9..0000000
+++ /dev/null
@@ -1,143 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Jun 07 17:43:47 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 07 Jun 2012 17:43:47 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1ScfoG-0005LI-Sv
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 07 Jun 2012 17:43:47 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1ScfkP-0001uC-Gu; Thu, 07 Jun 2012 16:39:45 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1ScfkO-0001u5-6d
-       for xen-devel@lists.xen.org; Thu, 07 Jun 2012 16:39:44 +0000
-Received: from [85.158.143.35:64067] by server-2.bemta-4.messagelabs.com id
-       9F/C8-17938-F49D0DF4; Thu, 07 Jun 2012 16:39:43 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-6.tower-21.messagelabs.com!1339087182!19254639!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDE0Nzk=\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 1812 invoked from network); 7 Jun 2012 16:39:43 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-6.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
-       7 Jun 2012 16:39:43 -0000
-X-IronPort-AV: E=Sophos;i="4.75,732,1330905600"; d="scan'208";a="12892079"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       07 Jun 2012 16:39:42 +0000
-Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0; Thu, 7 Jun 2012
-       17:39:42 +0100
-Message-ID: <1339087181.22331.2.camel@zakaz.uk.xensource.com>
-From: Ian Campbell <Ian.Campbell@citrix.com>
-To: "Tim (Xen.org)" <tim@xen.org>
-Date: Thu, 7 Jun 2012 17:39:41 +0100
-In-Reply-To: <1339086867.18523.36.camel@zakaz.uk.xensource.com>
-References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
-       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-       <1338565207-2888-3-git-send-email-ian.campbell@citrix.com>
-       <20120607084917.GB70339@ocelot.phlegethon.org>
-       <1339072005.18523.18.camel@zakaz.uk.xensource.com>
-       <20120607124033.GS70339@ocelot.phlegethon.org>
-       <1339077263.18523.19.camel@zakaz.uk.xensource.com>
-       <1339086867.18523.36.camel@zakaz.uk.xensource.com>
-Organization: Citrix Systems, Inc.
-X-Mailer: Evolution 3.2.2-1 
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 03/38] arm: handy function to print a walk
- of a domain's p2m.
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Thu, 2012-06-07 at 17:34 +0100, Ian Campbell wrote:
-
-> +    /* The base address must be appropriately aligned for Block entries */
-
-I fixed upo a typo in this in my mail client, but when I went to fix it
-in my tree I noticed I'd just cut-n-pasted it from some other places, so
-I actually just added to my series:
-
-8<----------------------
-
->From 7a04d5c045df2afee7a9302c26b007e6f1901e01 Mon Sep 17 00:00:00 2001
-From: Ian Campbell <ian.campbell@citrix.com>
-Date: Thu, 7 Jun 2012 16:35:12 +0000
-Subject: [PATCH] arm: fix typo s/approprately/appropriately/g
-
-Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
----
- xen/include/asm-arm/page.h |    6 +++---
- 1 files changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/xen/include/asm-arm/page.h b/xen/include/asm-arm/page.h
-index 20de411..3c59923 100644
---- a/xen/include/asm-arm/page.h
-+++ b/xen/include/asm-arm/page.h
-@@ -87,7 +87,7 @@ typedef struct {
-     unsigned long af:1;         /* Access Flag */
-     unsigned long ng:1;         /* Not-Global */
--    /* The base address must be approprately aligned for Block entries */
-+    /* The base address must be appropriately aligned for Block entries */
-     unsigned long base:28;      /* Base address of block or next table */
-     unsigned long sbz:12;       /* Must be zero */
-@@ -122,7 +122,7 @@ typedef struct {
-     unsigned long af:1;         /* Access Flag */
-     unsigned long sbz4:1;
--    /* The base address must be approprately aligned for Block entries */
-+    /* The base address must be appropriately aligned for Block entries */
-     unsigned long base:28;      /* Base address of block or next table */
-     unsigned long sbz3:12;
-@@ -147,7 +147,7 @@ typedef struct {
-     unsigned long pad2:10;
--    /* The base address must be approprately aligned for Block entries */
-+    /* The base address must be appropriately aligned for Block entries */
-     unsigned long base:28;      /* Base address of block or next table */
-     unsigned long pad1:24;
--- 
-1.7.9.1
-
-
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1339088221.22331.6.camel@zakaz.uk.xensource.com> b/test/corpus/<1339088221.22331.6.camel@zakaz.uk.xensource.com>
deleted file mode 100644 (file)
index ec0ad45..0000000
+++ /dev/null
@@ -1,148 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Jun 07 18:00:59 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 07 Jun 2012 18:00:59 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1Scg4s-0005Pc-HV
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 07 Jun 2012 18:00:59 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1Scg1C-0002s9-7w; Thu, 07 Jun 2012 16:57:06 +0000
-Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1Scg1B-0002s4-Ds
-       for xen-devel@lists.xen.org; Thu, 07 Jun 2012 16:57:05 +0000
-Received: from [193.109.254.147:18381] by server-11.bemta-14.messagelabs.com
-       id A1/C8-02727-06DD0DF4; Thu, 07 Jun 2012 16:57:04 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-10.tower-27.messagelabs.com!1339088223!3477100!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDE0Nzk=\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 1528 invoked from network); 7 Jun 2012 16:57:04 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-10.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
-       7 Jun 2012 16:57:04 -0000
-X-IronPort-AV: E=Sophos;i="4.75,732,1330905600"; d="scan'208";a="12892674"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       07 Jun 2012 16:57:03 +0000
-Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0; Thu, 7 Jun 2012
-       17:57:03 +0100
-Message-ID: <1339088221.22331.6.camel@zakaz.uk.xensource.com>
-From: Ian Campbell <Ian.Campbell@citrix.com>
-To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-Date: Thu, 7 Jun 2012 17:57:01 +0100
-In-Reply-To: <alpine.DEB.2.02.1206061623240.6030@kaball.uk.xensource.com>
-References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
-       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-       <1338565207-2888-14-git-send-email-ian.campbell@citrix.com>
-       <alpine.DEB.2.02.1206061623240.6030@kaball.uk.xensource.com>
-Organization: Citrix Systems, Inc.
-X-Mailer: Evolution 3.2.2-1 
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 14/38] arm: do not set max_vcpus = 8 in
- arch_domain_create.
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Wed, 2012-06-06 at 16:26 +0100, Stefano Stabellini wrote:
-> On Fri, 1 Jun 2012, Ian Campbell wrote:
-> > XEN_DOMCTL_max_vcpus cannot reduce max_vcpus and therefore we can't create a
-> > smaller guest.
-> > 
-> > The limit of 8 (due to GIC limits) should be expressed elsewhere, likely in
-> > MAX_VIRT_CPUS -- but making that change caused:
-> 
-> Are you sure? I made that change and I didn't see the error.
-> I think this patch should set MAX_VIRT_CPUS to 8 as well as removing
-> max_vcpus = 8.
-
-This was the same heap corruption again as seen in "[PATCH 16/38] arm:
-Add simple cpu_{sibling,core}_mask"  and having fixed that I don't see
-the crash with MAX_VIRT_CPUS == 8 any more...
-
-The patch becomes:
-
->From b68c4abe1dec44f3ed87a0d7ae98f4269043cce3 Mon Sep 17 00:00:00 2001
-From: Ian Campbell <ian.campbell@citrix.com>
-Date: Thu, 7 Jun 2012 16:52:46 +0000
-Subject: [PATCH] arm: do not set max_vcpus = 8 in arch_domain_create.
-
-XEN_DOMCTL_max_vcpus cannot reduce max_vcpus and therefore we can't create a
-smaller guest.
-
-The limit of 8 (due to GIC limits) should be expressed in MAX_VIRT_CPUS.
-
-Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
----
- xen/arch/arm/domain.c        |    2 --
- xen/include/asm-arm/config.h |    2 +-
- 2 files changed, 1 insertions(+), 3 deletions(-)
-
-diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
-index 1336dc4..040a2ce 100644
---- a/xen/arch/arm/domain.c
-+++ b/xen/arch/arm/domain.c
-@@ -338,8 +338,6 @@ int arch_domain_create(struct domain *d, unsigned int domcr_flags)
-             goto fail;
-     }
--    d->max_vcpus = 8;
--
-     if ( (rc = domain_vgic_init(d)) != 0 )
-         goto fail;
-diff --git a/xen/include/asm-arm/config.h b/xen/include/asm-arm/config.h
-index 91e87e1..7d02cc7 100644
---- a/xen/include/asm-arm/config.h
-+++ b/xen/include/asm-arm/config.h
-@@ -27,7 +27,7 @@
- #define NR_CPUS 128
- #endif
--#define MAX_VIRT_CPUS 128 /* XXX */
-+#define MAX_VIRT_CPUS 8
- #define MAX_HVM_VCPUS MAX_VIRT_CPUS
- #define asmlinkage /* Nothing needed */
--- 
-1.7.9.1
-
-
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1339088579.22331.8.camel@zakaz.uk.xensource.com> b/test/corpus/<1339088579.22331.8.camel@zakaz.uk.xensource.com>
deleted file mode 100644 (file)
index 194cd5c..0000000
+++ /dev/null
@@ -1,233 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Jun 07 18:06:55 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 07 Jun 2012 18:06:55 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1ScgAe-0005RJ-UY
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 07 Jun 2012 18:06:55 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1Scg7J-0003KZ-RC; Thu, 07 Jun 2012 17:03:25 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1Scg7H-0003KQ-7h
-       for xen-devel@lists.xen.org; Thu, 07 Jun 2012 17:03:23 +0000
-Received: from [85.158.143.35:47092] by server-3.bemta-4.messagelabs.com id
-       42/B1-29237-ADED0DF4; Thu, 07 Jun 2012 17:03:22 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-5.tower-21.messagelabs.com!1339088601!7552666!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDE0Nzk=\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 8445 invoked from network); 7 Jun 2012 17:03:22 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-5.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
-       7 Jun 2012 17:03:22 -0000
-X-IronPort-AV: E=Sophos;i="4.75,732,1330905600"; d="scan'208";a="12892747"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       07 Jun 2012 17:03:00 +0000
-Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0; Thu, 7 Jun 2012
-       18:03:00 +0100
-Message-ID: <1339088579.22331.8.camel@zakaz.uk.xensource.com>
-From: Ian Campbell <Ian.Campbell@citrix.com>
-To: Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-Date: Thu, 7 Jun 2012 18:02:59 +0100
-In-Reply-To: <1339062030.15265.53.camel@zakaz.uk.xensource.com>
-References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
-       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-       <1338565207-2888-8-git-send-email-ian.campbell@citrix.com>
-       <alpine.DEB.2.02.1206061443300.6030@kaball.uk.xensource.com>
-       <1338990925.32319.103.camel@zakaz.uk.xensource.com>
-       <1339062030.15265.53.camel@zakaz.uk.xensource.com>
-Organization: Citrix Systems, Inc.
-X-Mailer: Evolution 3.2.2-1 
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 08/38] arm: allocate and setup a guest vcpu.
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Thu, 2012-06-07 at 10:40 +0100, Ian Campbell wrote:
-> More head scratching required I think!
-
-This turned out to be the problem with not initialising cpu_sibling_mask
-properly, see the thread against "[PATCH 16/38] arm: Add simple
-cpu_{sibling,core}_mask".
-
-Having fixed that I updated based on your comments to:
-
-8<-----------------------------------------------------------
-
->From 75cff29f4645dd19d07175109b5891fd44de9d60 Mon Sep 17 00:00:00 2001
-From: Ian Campbell <ian.campbell@citrix.com>
-Date: Fri, 13 Apr 2012 16:07:21 +0100
-Subject: [PATCH] arm: allocate and setup a guest vcpu.
-
-Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
----
- xen/arch/arm/domain.c         |   67 +++++++++++++++++++++++++++++++++++++++++
- xen/arch/arm/dummy.S          |    3 --
- xen/include/public/arch-arm.h |    9 -----
- 3 files changed, 67 insertions(+), 12 deletions(-)
-
-diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
-index 9339a11..b099d91 100644
---- a/xen/arch/arm/domain.c
-+++ b/xen/arch/arm/domain.c
-@@ -144,6 +144,17 @@ void free_vcpu_struct(struct vcpu *v)
-     free_xenheap_page(v);
- }
-+struct vcpu_guest_context *alloc_vcpu_guest_context(void)
-+{
-+    return xmalloc(struct vcpu_guest_context);
-+
-+}
-+
-+void free_vcpu_guest_context(struct vcpu_guest_context *vgc)
-+{
-+    xfree(vgc);
-+}
-+
- int vcpu_initialise(struct vcpu *v)
- {
-     int rc = 0;
-@@ -212,6 +223,62 @@ void arch_domain_destroy(struct domain *d)
-     /* domain_vgic_destroy */
- }
-+static int is_guest_psr(uint32_t psr)
-+{
-+    switch (psr & PSR_MODE_MASK)
-+    {
-+    case PSR_MODE_USR:
-+    case PSR_MODE_FIQ:
-+    case PSR_MODE_IRQ:
-+    case PSR_MODE_SVC:
-+    case PSR_MODE_ABT:
-+    case PSR_MODE_UND:
-+    case PSR_MODE_SYS:
-+        return 1;
-+    case PSR_MODE_MON:
-+    case PSR_MODE_HYP:
-+    default:
-+        return 0;
-+    }
-+}
-+
-+/*
-+ * Initialise VCPU state. The context can be supplied by either the
-+ * toolstack (XEN_DOMCTL_setvcpucontext) or the guest
-+ * (VCPUOP_initialise) and therefore must be properly validated.
-+ */
-+int arch_set_info_guest(
-+    struct vcpu *v, vcpu_guest_context_u c)
-+{
-+    struct cpu_user_regs *regs = &c.nat->user_regs;
-+
-+    if ( !is_guest_psr(regs->cpsr) )
-+        return -EINVAL;
-+
-+    if ( regs->spsr_svc && !is_guest_psr(regs->spsr_svc) )
-+        return -EINVAL;
-+    if ( regs->spsr_abt && !is_guest_psr(regs->spsr_abt) )
-+        return -EINVAL;
-+    if ( regs->spsr_und && !is_guest_psr(regs->spsr_und) )
-+        return -EINVAL;
-+    if ( regs->spsr_irq && !is_guest_psr(regs->spsr_irq) )
-+        return -EINVAL;
-+    if ( regs->spsr_fiq && !is_guest_psr(regs->spsr_fiq) )
-+        return -EINVAL;
-+
-+    v->arch.cpu_info->guest_cpu_user_regs = *regs;
-+
-+    /* XXX other state:
-+     * - SCTLR
-+     * - TTBR0/1
-+     * - TTBCR
-+     */
-+
-+    clear_bit(_VPF_down, &v->pause_flags);
-+
-+    return 0;
-+}
-+
- void arch_dump_domain_info(struct domain *d)
- {
- }
-diff --git a/xen/arch/arm/dummy.S b/xen/arch/arm/dummy.S
-index 016340c..3b48917 100644
---- a/xen/arch/arm/dummy.S
-+++ b/xen/arch/arm/dummy.S
-@@ -20,11 +20,8 @@ DUMMY(pirq_guest_unbind);
- DUMMY(pirq_set_affinity);
- /* VCPU */
--DUMMY(alloc_vcpu_guest_context);
- DUMMY(arch_get_info_guest);
--DUMMY(arch_set_info_guest);
- DUMMY(arch_vcpu_reset);
--DUMMY(free_vcpu_guest_context);
- DUMMY(sync_vcpu_execstate);
- NOP(update_vcpu_system_time);
- DUMMY(vcpu_show_execution_state);
-diff --git a/xen/include/public/arch-arm.h b/xen/include/public/arch-arm.h
-index 1b1bcf3..e439727 100644
---- a/xen/include/public/arch-arm.h
-+++ b/xen/include/public/arch-arm.h
-@@ -124,15 +124,6 @@ typedef uint32_t xen_ulong_t;
- struct vcpu_guest_context {
-     struct cpu_user_regs user_regs;         /* User-level CPU registers     */
--    union {
--        uint32_t reg[16];
--        struct {
--            uint32_t __pad[12];
--            uint32_t sp; /* r13 */
--            uint32_t lr; /* r14 */
--            uint32_t pc; /* r15 */
--        };
--    };
- };
- typedef struct vcpu_guest_context vcpu_guest_context_t;
- DEFINE_XEN_GUEST_HANDLE(vcpu_guest_context_t);
--- 
-1.7.9.1
-
-
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1339594843.24104.218.camel@zakaz.uk.xensource.com> b/test/corpus/<1339594843.24104.218.camel@zakaz.uk.xensource.com>
deleted file mode 100644 (file)
index 007b61f..0000000
+++ /dev/null
@@ -1,96 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Jun 13 14:45:06 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 13 Jun 2012 14:45:06 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1Sense-0008TL-DA
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 13 Jun 2012 14:45:06 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SenoW-0000Vf-1i; Wed, 13 Jun 2012 13:40:48 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1SenoU-0000Va-Op
-       for xen-devel@lists.xen.org; Wed, 13 Jun 2012 13:40:46 +0000
-Received: from [85.158.139.83:10573] by server-4.bemta-5.messagelabs.com id
-       BB/DA-27831-D5898DF4; Wed, 13 Jun 2012 13:40:45 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-12.tower-182.messagelabs.com!1339594844!27485865!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDI0NzA=\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 19376 invoked from network); 13 Jun 2012 13:40:45 -0000
-Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-12.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
-       13 Jun 2012 13:40:45 -0000
-X-IronPort-AV: E=Sophos;i="4.75,763,1330905600"; d="scan'208";a="12997692"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       13 Jun 2012 13:40:44 +0000
-Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0;
-       Wed, 13 Jun 2012 14:40:44 +0100
-Message-ID: <1339594843.24104.218.camel@zakaz.uk.xensource.com>
-From: Ian Campbell <Ian.Campbell@citrix.com>
-To: Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-Date: Wed, 13 Jun 2012 14:40:43 +0100
-In-Reply-To: <1338993031.32319.107.camel@zakaz.uk.xensource.com>
-References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
-       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-       <1338565207-2888-11-git-send-email-ian.campbell@citrix.com>
-       <alpine.DEB.2.02.1206061452530.6030@kaball.uk.xensource.com>
-       <1338993031.32319.107.camel@zakaz.uk.xensource.com>
-Organization: Citrix Systems, Inc.
-X-Mailer: Evolution 3.2.2-1 
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 11/38] arm: implement p2m lookup
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Wed, 2012-06-06 at 15:30 +0100, Ian Campbell wrote:
-> > there is no need to introduce p2m_lookup in the same patch you do these
-> > unrelated printk adjustments, correct?
-> > 
-> 
-> Right, I think I've just put them in the wrong patch by mistake, I'll
-> figure out what I meant to do ...
-
-These ended up in my combined replacement for patches #2 and #3 which
-was posted in <1339086867.18523.36.camel@zakaz.uk.xensource.com>.
-
-Ian.
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1339600416.24104.228.camel@zakaz.uk.xensource.com> b/test/corpus/<1339600416.24104.228.camel@zakaz.uk.xensource.com>
deleted file mode 100644 (file)
index 05d5460..0000000
+++ /dev/null
@@ -1,213 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Jun 13 16:18:36 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 13 Jun 2012 16:18:36 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SepL4-0000M1-L6
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 13 Jun 2012 16:18:36 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SepGR-0003m2-MI; Wed, 13 Jun 2012 15:13:43 +0000
-Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1SepGP-0003lx-Vy
-       for xen-devel@lists.xen.org; Wed, 13 Jun 2012 15:13:42 +0000
-Received: from [193.109.254.147:22299] by server-3.bemta-14.messagelabs.com id
-       10/0D-05653-42EA8DF4; Wed, 13 Jun 2012 15:13:40 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-14.tower-27.messagelabs.com!1339600419!2701575!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDI0NzA=\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 13865 invoked from network); 13 Jun 2012 15:13:40 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-14.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
-       13 Jun 2012 15:13:40 -0000
-X-IronPort-AV: E=Sophos;i="4.75,763,1330905600"; d="scan'208";a="13000875"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       13 Jun 2012 15:13:38 +0000
-Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0;
-       Wed, 13 Jun 2012 16:13:38 +0100
-Message-ID: <1339600416.24104.228.camel@zakaz.uk.xensource.com>
-From: Ian Campbell <Ian.Campbell@citrix.com>
-To: Tim Deegan <tim@xen.org>
-Date: Wed, 13 Jun 2012 16:13:36 +0100
-In-Reply-To: <20120607090334.GC70339@ocelot.phlegethon.org>
-References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
-       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-       <1338565207-2888-11-git-send-email-ian.campbell@citrix.com>
-       <20120607090334.GC70339@ocelot.phlegethon.org>
-Organization: Citrix Systems, Inc.
-X-Mailer: Evolution 3.2.2-1 
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 11/38] arm: implement p2m lookup
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Thu, 2012-06-07 at 10:03 +0100, Tim Deegan wrote:
-> At 15:39 +0000 on 01 Jun (1338565180), Ian Campbell wrote:
-> > +/*
-> > + * Lookup the MFN corresponding to a domain's PFN.
-> > + *
-> > + * There are no processor functions to do a stage 2 only lookup therefore we
-> > + * do a a software walk.
-> > + */
-> > +paddr_t p2m_lookup(struct domain *d, paddr_t paddr)
-> > +{
-> > +    struct p2m_domain *p2m = &d->arch.p2m;
-> > +    lpae_t pte, *first = NULL, *second = NULL, *third = NULL;
-> > +    paddr_t maddr = INVALID_PADDR;
-> > +
-> > +    spin_lock(&p2m->lock);
-> > +
-> > +    first = __map_domain_page(p2m->first_level);
-> > +    if ( !first[first_table_offset(paddr)].p2m.valid )
-> > +        goto done_err;
-> > +    if ( !first[first_table_offset(paddr)].p2m.table )
-> > +    {
-> > +        pte = first[first_table_offset(paddr)];
-> > +        goto done;
-> > +    }
-> 
-> This would be neater as: 
->        pte = first[first_table_offset(paddr)];
->        if ( !pte.p2m.valid || !pte.p2m.table )
->            goto done;
-> 
-> and test for pte.valid at 'done'.
-
-Yes, that looks nice, although you still need a bit of a quirk for the
-third level table bit. Patch below.
-
-> It would be nice to do the three levels in a loop as well, but the weird
-> way the table bit behaves in third-level entries might make that more
-> confusing than the straight-line version.
-
-This also has the same issue as with *_table_offset as the other similar
-functions discussed earlier.
-
-8<-----------------------------------------------------------
-
->From 347855d863303720cbf5ceb0f1e067660108d3f1 Mon Sep 17 00:00:00 2001
-From: Ian Campbell <ian.campbell@citrix.com>
-Date: Fri, 13 Apr 2012 16:24:58 +0100
-Subject: [PATCH] arm: implement p2m lookup
-
-Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
----
- xen/arch/arm/p2m.c        |   45 +++++++++++++++++++++++++++++++++++++++++++++
- xen/include/asm-arm/p2m.h |    3 +++
- 2 files changed, 48 insertions(+), 0 deletions(-)
-
-diff --git a/xen/arch/arm/p2m.c b/xen/arch/arm/p2m.c
-index 6df5b62..145d9fe 100644
---- a/xen/arch/arm/p2m.c
-+++ b/xen/arch/arm/p2m.c
-@@ -32,6 +32,51 @@ void p2m_load_VTTBR(struct domain *d)
-     isb(); /* Ensure update is visible */
- }
-+/*
-+ * Lookup the MFN corresponding to a domain's PFN.
-+ *
-+ * There are no processor functions to do a stage 2 only lookup therefore we
-+ * do a a software walk.
-+ */
-+paddr_t p2m_lookup(struct domain *d, paddr_t paddr)
-+{
-+    struct p2m_domain *p2m = &d->arch.p2m;
-+    lpae_t pte, *first = NULL, *second = NULL, *third = NULL;
-+    paddr_t maddr = INVALID_PADDR;
-+
-+    spin_lock(&p2m->lock);
-+
-+    first = __map_domain_page(p2m->first_level);
-+
-+    pte = first[first_table_offset(paddr)];
-+    if ( !pte.p2m.valid || !pte.p2m.table )
-+        goto done;
-+
-+    second = map_domain_page(first[first_table_offset(paddr)].p2m.base);
-+    pte = second[second_table_offset(paddr)];
-+    if ( !pte.p2m.valid || !pte.p2m.table )
-+        goto done;
-+
-+    third = map_domain_page(second[second_table_offset(paddr)].p2m.base);
-+    pte = third[third_table_offset(paddr)];
-+
-+    /* This bit must be one in the level 3 entry */
-+    if ( !pte.p2m.table )
-+        pte.bits = 0;
-+
-+done:
-+    if ( pte.p2m.valid )
-+        maddr = (pte.bits & PADDR_MASK & PAGE_MASK) | (paddr & ~PAGE_MASK);
-+
-+    if (third) unmap_domain_page(third);
-+    if (second) unmap_domain_page(second);
-+    if (first) unmap_domain_page(first);
-+
-+    spin_unlock(&p2m->lock);
-+
-+    return maddr;
-+}
-+
- int guest_physmap_mark_populate_on_demand(struct domain *d,
-                                           unsigned long gfn,
-                                           unsigned int order)
-diff --git a/xen/include/asm-arm/p2m.h b/xen/include/asm-arm/p2m.h
-index 349923a..1afd5cb 100644
---- a/xen/include/asm-arm/p2m.h
-+++ b/xen/include/asm-arm/p2m.h
-@@ -32,6 +32,9 @@ int p2m_alloc_table(struct domain *d);
- /* */
- void p2m_load_VTTBR(struct domain *d);
-+/* */
-+paddr_t p2m_lookup(struct domain *d, paddr_t gpfn);
-+
- /* Setup p2m RAM mapping for domain d from start-end. */
- int p2m_populate_ram(struct domain *d, paddr_t start, paddr_t end);
- /* Map MMIO regions in the p2m: start_gaddr and end_gaddr is the range
--- 
-1.7.9.1
-
-
-
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1339600735.24104.230.camel@zakaz.uk.xensource.com> b/test/corpus/<1339600735.24104.230.camel@zakaz.uk.xensource.com>
deleted file mode 100644 (file)
index a0cd089..0000000
+++ /dev/null
@@ -1,130 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Jun 13 16:23:31 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 13 Jun 2012 16:23:31 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SepPp-0000NK-QQ
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 13 Jun 2012 16:23:31 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SepLY-00040e-2K; Wed, 13 Jun 2012 15:19:00 +0000
-Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1SepLW-00040S-4D
-       for xen-devel@lists.xen.org; Wed, 13 Jun 2012 15:18:58 +0000
-Received: from [193.109.254.147:30084] by server-7.bemta-14.messagelabs.com id
-       B5/36-29165-16FA8DF4; Wed, 13 Jun 2012 15:18:57 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-12.tower-27.messagelabs.com!1339600736!9582585!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDI0NzA=\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 11186 invoked from network); 13 Jun 2012 15:18:57 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-12.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
-       13 Jun 2012 15:18:57 -0000
-X-IronPort-AV: E=Sophos;i="4.75,763,1330905600"; d="scan'208";a="13001146"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       13 Jun 2012 15:18:56 +0000
-Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0;
-       Wed, 13 Jun 2012 16:18:56 +0100
-Message-ID: <1339600735.24104.230.camel@zakaz.uk.xensource.com>
-From: Ian Campbell <Ian.Campbell@citrix.com>
-To: "Tim (Xen.org)" <tim@xen.org>
-Date: Wed, 13 Jun 2012 16:18:55 +0100
-In-Reply-To: <1339068947.18523.10.camel@zakaz.uk.xensource.com>
-References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
-       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-       <1338565207-2888-16-git-send-email-ian.campbell@citrix.com>
-       <20120607090808.GD70339@ocelot.phlegethon.org>
-       <1339068947.18523.10.camel@zakaz.uk.xensource.com>
-Organization: Citrix Systems, Inc.
-X-Mailer: Evolution 3.2.2-1 
-MIME-Version: 1.0
-Cc: "Keir \(Xen.org\)" <keir@xen.org>, Jan Beulich <JBeulich@suse.com>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 16/38] arm: Add simple cpu_{sibling,
- core}_mask
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-Keir, Jan: Any objection/ack for the generic part of this commit?
-
-> 8<------------------------------------------------------
-> 
-> From e980ca1ec9bf92b2f1255ac5222b1da1292f9f72 Mon Sep 17 00:00:00 2001
-> From: Ian Campbell <ian.campbell@citrix.com>
-> Date: Mon, 14 May 2012 12:25:31 +0100
-> Subject: [PATCH] arm: Add simple cpu_{sibling,core}_mask
-> 
-> This needs to be done for all cpus. The allocations require smp_prepare_cpus
-> to be called a bit later on.
-> 
-> In a previous version of this patch these maps were being zeroed (instead of
-> setting the CPU itself in them). This in turn causes cpumask_first to return
-> NR_CPUS, which in turn was causing default_vcpu0_location to misbehave and
-> read off the end of its cnt array. Add a couple of asserts to catch this in
-> the future.
-> 
-> Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
-> ---
->  xen/arch/arm/dummy.S   |    2 --
->  xen/arch/arm/setup.c   |    4 ++--
->  xen/arch/arm/smpboot.c |   21 +++++++++++++++++++++
->  xen/common/domctl.c    |    2 ++
->  4 files changed, 25 insertions(+), 4 deletions(-)
-[...]
-> diff --git a/xen/common/domctl.c b/xen/common/domctl.c
-> index 9f1a9ad..c1acd1d 100644
-> --- a/xen/common/domctl.c
-> +++ b/xen/common/domctl.c
-> @@ -190,10 +190,12 @@ static unsigned int default_vcpu0_location(cpumask_t *online)
->       */
->      cpumask_copy(&cpu_exclude_map, per_cpu(cpu_sibling_mask, 0));
->      cpu = cpumask_first(&cpu_exclude_map);
-> +    ASSERT(cpu < nr_cpus);
->      if ( cpumask_weight(&cpu_exclude_map) > 1 )
->          cpu = cpumask_next(cpu, &cpu_exclude_map);
->      for_each_cpu(i, online)
->      {
-> +        ASSERT(i < nr_cpus);
->          if ( cpumask_test_cpu(i, &cpu_exclude_map) )
->              continue;
->          if ( (i == cpumask_first(per_cpu(cpu_sibling_mask, i))) &&
-
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1339601583.24104.237.camel@zakaz.uk.xensource.com> b/test/corpus/<1339601583.24104.237.camel@zakaz.uk.xensource.com>
deleted file mode 100644 (file)
index e928175..0000000
+++ /dev/null
@@ -1,257 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Jun 13 16:38:02 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 13 Jun 2012 16:38:02 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1Sepds-0000Si-T0
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 13 Jun 2012 16:38:02 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SepZj-0004hZ-AW; Wed, 13 Jun 2012 15:33:39 +0000
-Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1SepZh-0004hS-H2
-       for xen-devel@lists.xen.org; Wed, 13 Jun 2012 15:33:37 +0000
-Received: from [193.109.254.147:33195] by server-12.bemta-14.messagelabs.com
-       id 9E/A2-12998-0D2B8DF4; Wed, 13 Jun 2012 15:33:36 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-6.tower-27.messagelabs.com!1339601615!3919496!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDI0NzA=\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 25227 invoked from network); 13 Jun 2012 15:33:36 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-6.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
-       13 Jun 2012 15:33:36 -0000
-X-IronPort-AV: E=Sophos;i="4.75,765,1330905600"; d="scan'208";a="13001555"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       13 Jun 2012 15:33:04 +0000
-Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0;
-       Wed, 13 Jun 2012 16:33:05 +0100
-Message-ID: <1339601583.24104.237.camel@zakaz.uk.xensource.com>
-From: Ian Campbell <Ian.Campbell@citrix.com>
-To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-Date: Wed, 13 Jun 2012 16:33:03 +0100
-In-Reply-To: <alpine.DEB.2.02.1206061725020.6030@kaball.uk.xensource.com>
-References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
-       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-       <1338565207-2888-17-git-send-email-ian.campbell@citrix.com>
-       <alpine.DEB.2.02.1206061725020.6030@kaball.uk.xensource.com>
-Organization: Citrix Systems, Inc.
-X-Mailer: Evolution 3.2.2-1 
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 17/38] arm: allow p2m to be created with
- specific MATTR.
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Wed, 2012-06-06 at 17:27 +0100, Stefano Stabellini wrote:
-> On Fri, 1 Jun 2012, Ian Campbell wrote:
-> > Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
-> > ---
-> >  xen/arch/arm/p2m.c         |   15 ++++++++-------
-> >  xen/include/asm-arm/page.h |    6 ++++--
-> >  2 files changed, 12 insertions(+), 9 deletions(-)
-> > 
-> > diff --git a/xen/arch/arm/p2m.c b/xen/arch/arm/p2m.c
-> > index 9b40e93..46c6f17 100644
-> > --- a/xen/arch/arm/p2m.c
-> > +++ b/xen/arch/arm/p2m.c
-> > @@ -148,7 +148,7 @@ static int p2m_create_entry(struct domain *d,
-> >      clear_page(p);
-> >      unmap_domain_page(p);
-> >  
-> > -    pte = mfn_to_p2m_entry(page_to_mfn(page));
-> > +    pte = mfn_to_p2m_entry(page_to_mfn(page), MATTR_MEM);
-> >  
-> >      write_pte(entry, pte);
-> >  
-> 
-> This works because p2m_create_entry is always called to create first or
-> second level entries only.
-> Maybe we should rename p2m_create_entry to p2m_create_table_entry for
-> clarity? Or add a comment?
-
-I think p2m_create_table would be a fine name for this function. I've
-also added a comment.
-
-8<------------------------------
-
->From 33d7d69b95ed016542631e2daca55d5cd9969627 Mon Sep 17 00:00:00 2001
-From: Ian Campbell <ian.campbell@citrix.com>
-Date: Mon, 14 May 2012 12:30:04 +0100
-Subject: [PATCH] arm: allow p2m to be created with specific MATTR.
-
-Rename p2m_create_entry to p2m_create_table since it can now only be used to
-insert non-leaf entries into the page table.
-
-Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
----
- xen/arch/arm/p2m.c         |   22 ++++++++++++----------
- xen/include/asm-arm/page.h |    6 ++++--
- 2 files changed, 16 insertions(+), 12 deletions(-)
-
-diff --git a/xen/arch/arm/p2m.c b/xen/arch/arm/p2m.c
-index 145d9fe..b411fe7 100644
---- a/xen/arch/arm/p2m.c
-+++ b/xen/arch/arm/p2m.c
-@@ -91,7 +91,8 @@ int p2m_pod_decrease_reservation(struct domain *d,
-     return -ENOSYS;
- }
--static int p2m_create_entry(struct domain *d,
-+/* Allocate a new page table page and hook it in via the given entry */
-+static int p2m_create_table(struct domain *d,
-                             lpae_t *entry)
- {
-     struct p2m_domain *p2m = &d->arch.p2m;
-@@ -111,7 +112,7 @@ static int p2m_create_entry(struct domain *d,
-     clear_page(p);
-     unmap_domain_page(p);
--    pte = mfn_to_p2m_entry(page_to_mfn(page));
-+    pte = mfn_to_p2m_entry(page_to_mfn(page), MATTR_MEM);
-     write_pte(entry, pte);
-@@ -122,7 +123,8 @@ static int create_p2m_entries(struct domain *d,
-                      int alloc,
-                      paddr_t start_gpaddr,
-                      paddr_t end_gpaddr,
--                     paddr_t maddr)
-+                     paddr_t maddr,
-+                     int mattr)
- {
-     int rc;
-     struct p2m_domain *p2m = &d->arch.p2m;
-@@ -140,7 +142,7 @@ static int create_p2m_entries(struct domain *d,
-     {
-         if ( !first[first_table_offset(addr)].p2m.valid )
-         {
--            rc = p2m_create_entry(d, &first[first_table_offset(addr)]);
-+            rc = p2m_create_table(d, &first[first_table_offset(addr)]);
-             if ( rc < 0 ) {
-                 printk("p2m_populate_ram: L1 failed\n");
-                 goto out;
-@@ -159,7 +161,7 @@ static int create_p2m_entries(struct domain *d,
-         if ( !second[second_table_offset(addr)].p2m.valid )
-         {
--            rc = p2m_create_entry(d, &second[second_table_offset(addr)]);
-+            rc = p2m_create_table(d, &second[second_table_offset(addr)]);
-             if ( rc < 0 ) {
-                 printk("p2m_populate_ram: L2 failed\n");
-                 goto out;
-@@ -198,11 +200,11 @@ static int create_p2m_entries(struct domain *d,
-                 goto out;
-             }
--            pte = mfn_to_p2m_entry(page_to_mfn(page));
-+            pte = mfn_to_p2m_entry(page_to_mfn(page), mattr);
-             write_pte(&third[third_table_offset(addr)], pte);
-         } else {
--            lpae_t pte = mfn_to_p2m_entry(maddr >> PAGE_SHIFT);
-+            lpae_t pte = mfn_to_p2m_entry(maddr >> PAGE_SHIFT, mattr);
-             write_pte(&third[third_table_offset(addr)], pte);
-             maddr += PAGE_SIZE;
-         }
-@@ -226,7 +228,7 @@ int p2m_populate_ram(struct domain *d,
-                      paddr_t start,
-                      paddr_t end)
- {
--    return create_p2m_entries(d, 1, start, end, 0);
-+    return create_p2m_entries(d, 1, start, end, 0, MATTR_MEM);
- }
- int map_mmio_regions(struct domain *d,
-@@ -234,7 +236,7 @@ int map_mmio_regions(struct domain *d,
-                      paddr_t end_gaddr,
-                      paddr_t maddr)
- {
--    return create_p2m_entries(d, 0, start_gaddr, end_gaddr, maddr);
-+    return create_p2m_entries(d, 0, start_gaddr, end_gaddr, maddr, MATTR_DEV);
- }
- int guest_physmap_add_page(struct domain *d,
-@@ -244,7 +246,7 @@ int guest_physmap_add_page(struct domain *d,
- {
-     return create_p2m_entries(d, 0, gpfn << PAGE_SHIFT,
-                               (gpfn + (1<<page_order)) << PAGE_SHIFT,
--                              mfn << PAGE_SHIFT);
-+                              mfn << PAGE_SHIFT, MATTR_MEM);
- }
- void guest_physmap_remove_page(struct domain *d,
-diff --git a/xen/include/asm-arm/page.h b/xen/include/asm-arm/page.h
-index 183ba5f..2783c30 100644
---- a/xen/include/asm-arm/page.h
-+++ b/xen/include/asm-arm/page.h
-@@ -46,6 +46,8 @@
- #define DEV_WC        BUFFERABLE
- #define DEV_CACHED    WRITEBACK
-+#define MATTR_DEV     0x1
-+#define MATTR_MEM     0xf
- #ifndef __ASSEMBLY__
-@@ -187,7 +189,7 @@ static inline lpae_t mfn_to_xen_entry(unsigned long mfn)
-     return e;
- }
--static inline lpae_t mfn_to_p2m_entry(unsigned long mfn)
-+static inline lpae_t mfn_to_p2m_entry(unsigned long mfn, unsigned int mattr)
- {
-     paddr_t pa = ((paddr_t) mfn) << PAGE_SHIFT;
-     lpae_t e = (lpae_t) {
-@@ -196,7 +198,7 @@ static inline lpae_t mfn_to_p2m_entry(unsigned long mfn)
-         .p2m.sh = LPAE_SH_OUTER,
-         .p2m.write = 1,
-         .p2m.read = 1,
--        .p2m.mattr = 0xf,
-+        .p2m.mattr = mattr,
-         .p2m.table = 1,
-         .p2m.valid = 1,
-     };
--- 
-1.7.9.1
-
-
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1340098989.16742.2.camel@zakaz.uk.xensource.com> b/test/corpus/<1340098989.16742.2.camel@zakaz.uk.xensource.com>
deleted file mode 100644 (file)
index 4ff048e..0000000
+++ /dev/null
@@ -1,96 +0,0 @@
-From xen-devel-bounces@lists.xen.org Tue Jun 19 10:48:23 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Tue, 19 Jun 2012 10:48:23 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1Sgv2n-0006DB-Rt
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 19 Jun 2012 10:48:23 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1Sguxu-0004w1-Kq; Tue, 19 Jun 2012 09:43:14 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1Sguxs-0004vr-Un
-       for xen-devel@lists.xen.org; Tue, 19 Jun 2012 09:43:13 +0000
-Received: from [85.158.143.35:20569] by server-2.bemta-4.messagelabs.com id
-       64/01-17938-0B940EF4; Tue, 19 Jun 2012 09:43:12 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-16.tower-21.messagelabs.com!1340098991!14464280!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDEyOTQ=\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 24623 invoked from network); 19 Jun 2012 09:43:11 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-16.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
-       19 Jun 2012 09:43:11 -0000
-X-IronPort-AV: E=Sophos;i="4.75,797,1330905600"; d="scan'208";a="13096083"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       19 Jun 2012 09:43:11 +0000
-Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0;
-       Tue, 19 Jun 2012 10:43:11 +0100
-Message-ID: <1340098989.16742.2.camel@zakaz.uk.xensource.com>
-From: Ian Campbell <Ian.Campbell@citrix.com>
-To: Tim Deegan <tim@xen.org>
-Date: Tue, 19 Jun 2012 10:43:09 +0100
-In-Reply-To: <20120614084732.GA82539@ocelot.phlegethon.org>
-References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
-       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-       <1338565207-2888-11-git-send-email-ian.campbell@citrix.com>
-       <20120607090334.GC70339@ocelot.phlegethon.org>
-       <1339600416.24104.228.camel@zakaz.uk.xensource.com>
-       <20120614084732.GA82539@ocelot.phlegethon.org>
-Organization: Citrix Systems, Inc.
-X-Mailer: Evolution 3.2.2-1 
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 11/38] arm: implement p2m lookup
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Thu, 2012-06-14 at 09:47 +0100, Tim Deegan wrote:
-> At 16:13 +0100 on 13 Jun (1339604016), Ian Campbell wrote:
-> > Yes, that looks nice, although you still need a bit of a quirk for the
-> > third level table bit. Patch below.
-> 
-> Much nicer.   One more round of nits below if you feel keen; in any case,
-> Acked-by: Tim Deegan <tim@xen.org>
-
-Thanks. Your nits were sensible so I have folded them in.
-
-
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1340199444.4906.54.camel@zakaz.uk.xensource.com> b/test/corpus/<1340199444.4906.54.camel@zakaz.uk.xensource.com>
deleted file mode 100644 (file)
index 35156e4..0000000
+++ /dev/null
@@ -1,410 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Jun 20 14:41:55 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 20 Jun 2012 14:41:55 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1ShLAK-00088Y-El
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 20 Jun 2012 14:41:55 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1ShL6H-0004CG-MM; Wed, 20 Jun 2012 13:37:37 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1ShL6F-0004CB-Iw
-       for xen-devel@lists.xen.org; Wed, 20 Jun 2012 13:37:35 +0000
-Received: from [85.158.143.99:16206] by server-2.bemta-4.messagelabs.com id
-       9C/0A-17938-E12D1EF4; Wed, 20 Jun 2012 13:37:34 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-8.tower-216.messagelabs.com!1340199452!18495804!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDE1ODM=\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 5728 invoked from network); 20 Jun 2012 13:37:32 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-8.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
-       20 Jun 2012 13:37:32 -0000
-X-IronPort-AV: E=Sophos;i="4.77,444,1336348800"; d="scan'208";a="13125368"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       20 Jun 2012 13:37:26 +0000
-Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0;
-       Wed, 20 Jun 2012 14:37:26 +0100
-Message-ID: <1340199444.4906.54.camel@zakaz.uk.xensource.com>
-From: Ian Campbell <Ian.Campbell@citrix.com>
-To: Tim Deegan <tim@xen.org>
-Date: Wed, 20 Jun 2012 14:37:24 +0100
-In-Reply-To: <20120607101826.GJ70339@ocelot.phlegethon.org>
-References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
-       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-       <1338565207-2888-18-git-send-email-ian.campbell@citrix.com>
-       <20120607092951.GE70339@ocelot.phlegethon.org>
-       <1339061691.15265.49.camel@zakaz.uk.xensource.com>
-       <20120607101826.GJ70339@ocelot.phlegethon.org>
-Organization: Citrix Systems, Inc.
-X-Mailer: Evolution 3.2.2-1 
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 18/38] arm: implement vpl011 (UART) emulator.
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Thu, 2012-06-07 at 11:18 +0100, Tim Deegan wrote:
-> At 10:34 +0100 on 07 Jun (1339065291), Ian Campbell wrote:
-> > On Thu, 2012-06-07 at 10:29 +0100, Tim Deegan wrote:
-> > > > +int domain_uart0_init(struct domain *d)
-> > > > +{
-> > > > +    int rc;
-> > > > +    if ( d->domain_id == 0 )
-> > > > +        return 0;
-> > > 
-> > > Why?  There's no equivalent gate on the MMIO handlers.
-> > 
-> > dom0 has the actual uart mapped at this address, not the emulated one.
-> > Maybe that should be written at the caller instead?
-> 
-> Yes - ideally in the same place that puts the MMIO hooks in that will
-> call the other functions in this file. 
-
-Turns out that there isn't actually such a place, these are part of a
-global list of mmio handlers which is traversed for any guest dabt.
-
-This might be something we want to improve (using bits in not-present
-p2m entries to identify specific handlers or whatever) but not right now
-I think.
-
-I've pulled the dom0 check out into the caller of the init function, but
-left an ASSERT behind. I also shortened that long line by using a
-#define for the end and removing the dom0 check from there too.
-
-8<------------------------------------------------------------
-
->From 401e861ff99860d07e758c8d6e3260b8fb847fc5 Mon Sep 17 00:00:00 2001
-From: Ian Campbell <ian.campbell@citrix.com>
-Date: Mon, 14 May 2012 12:55:31 +0100
-Subject: [PATCH] arm: implement vpl011 (UART) emulator.
-
-This is not interended to provide a full emulation, but rather just enough to
-satisfy the use made by Linux' boot time decompressor code (which is too early
-for DT etc)
-
-Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
----
- xen/arch/arm/Makefile        |    1 +
- xen/arch/arm/domain.c        |    5 ++
- xen/arch/arm/io.c            |    1 +
- xen/arch/arm/io.h            |    1 +
- xen/arch/arm/vpl011.c        |  145 ++++++++++++++++++++++++++++++++++++++++++
- xen/arch/arm/vpl011.h        |   34 ++++++++++
- xen/include/asm-arm/domain.h |    8 ++
- 7 files changed, 195 insertions(+), 0 deletions(-)
- create mode 100644 xen/arch/arm/vpl011.c
- create mode 100644 xen/arch/arm/vpl011.h
-
-diff --git a/xen/arch/arm/Makefile b/xen/arch/arm/Makefile
-index 9440a21..5a87ba6 100644
---- a/xen/arch/arm/Makefile
-+++ b/xen/arch/arm/Makefile
-@@ -25,6 +25,7 @@ obj-y += shutdown.o
- obj-y += traps.o
- obj-y += vgic.o
- obj-y += vtimer.o
-+obj-y += vpl011.o
- #obj-bin-y += ....o
-diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
-index 63bad07..931261b 100644
---- a/xen/arch/arm/domain.c
-+++ b/xen/arch/arm/domain.c
-@@ -13,6 +13,7 @@
- #include "gic.h"
- #include "vtimer.h"
-+#include "vpl011.h"
- DEFINE_PER_CPU(struct vcpu *, curr_vcpu);
-@@ -215,6 +216,10 @@ int arch_domain_create(struct domain *d, unsigned int domcr_flags)
-     if ( (rc = domain_vgic_init(d)) != 0 )
-         goto fail;
-+    /* Domain 0 gets a real UART not an emulated one */
-+    if ( d->domain_id && (rc = domain_uart0_init(d)) != 0 )
-+        goto fail;
-+
-     rc = 0;
- fail:
-     return rc;
-diff --git a/xen/arch/arm/io.c b/xen/arch/arm/io.c
-index 4461225..18f6164 100644
---- a/xen/arch/arm/io.c
-+++ b/xen/arch/arm/io.c
-@@ -25,6 +25,7 @@
- static const struct mmio_handler *const mmio_handlers[] =
- {
-     &vgic_distr_mmio_handler,
-+    &uart0_mmio_handler,
- };
- #define MMIO_HANDLER_NR ARRAY_SIZE(mmio_handlers)
-diff --git a/xen/arch/arm/io.h b/xen/arch/arm/io.h
-index 8cc5ca7..9a507f5 100644
---- a/xen/arch/arm/io.h
-+++ b/xen/arch/arm/io.h
-@@ -40,6 +40,7 @@ struct mmio_handler {
- };
- extern const struct mmio_handler vgic_distr_mmio_handler;
-+extern const struct mmio_handler uart0_mmio_handler;
- extern int handle_mmio(mmio_info_t *info);
-diff --git a/xen/arch/arm/vpl011.c b/xen/arch/arm/vpl011.c
-new file mode 100644
-index 0000000..5dc8b28
---- /dev/null
-+++ b/xen/arch/arm/vpl011.c
-@@ -0,0 +1,145 @@
-+/*
-+ * xen/arch/arm/vpl011.c
-+ *
-+ * ARM PL011 UART Emulator (DEBUG)
-+ *
-+ * Ian Campbell <ian.campbell@citrix.com>
-+ * Copyright (c) 2012 Citrix Systems.
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+ * GNU General Public License for more details.
-+ */
-+
-+/*
-+ * This is not intended to be a full emulation of a PL011
-+ * device. Rather it is intended to provide a sufficient veneer of one
-+ * that early code (such as Linux's boot time decompressor) which
-+ * hardcodes output directly to such a device are able to make progress.
-+ *
-+ * This device is not intended to be enumerable or exposed to the OS
-+ * (e.g. via Device Tree).
-+ */
-+
-+#include <xen/config.h>
-+#include <xen/lib.h>
-+#include <xen/sched.h>
-+#include <xen/errno.h>
-+#include <xen/ctype.h>
-+
-+#include "io.h"
-+
-+#define UART0_START 0x1c090000
-+#define UART0_END   (UART0_START+65536)
-+
-+#define UARTDR 0x000
-+#define UARTFR 0x018
-+
-+int domain_uart0_init(struct domain *d)
-+{
-+    ASSERT( d->domain_id );
-+
-+    spin_lock_init(&d->arch.uart0.lock);
-+    d->arch.uart0.idx = 0;
-+
-+    d->arch.uart0.buf = xzalloc_array(char, VPL011_BUF_SIZE);
-+    if ( !d->arch.uart0.buf )
-+        return -ENOMEM;
-+
-+    return 0;
-+
-+}
-+
-+static void uart0_print_char(char c)
-+{
-+    struct vpl011 *uart = &current->domain->arch.uart0;
-+
-+    /* Accept only printable characters, newline, and horizontal tab. */
-+    if ( !isprint(c) && (c != '\n') && (c != '\t') )
-+        return ;
-+
-+    spin_lock(&uart->lock);
-+    uart->buf[uart->idx++] = c;
-+    if ( (uart->idx == (VPL011_BUF_SIZE - 2)) || (c == '\n') )
-+    {
-+        if ( c != '\n' )
-+            uart->buf[uart->idx++] = '\n';
-+        uart->buf[uart->idx] = '\0';
-+        printk(XENLOG_G_DEBUG "DOM%u: %s",
-+               current->domain->domain_id, uart->buf);
-+        uart->idx = 0;
-+    }
-+    spin_unlock(&uart->lock);
-+}
-+
-+static int uart0_mmio_check(struct vcpu *v, paddr_t addr)
-+{
-+    return addr >= UART0_START && addr < UART0_END;
-+}
-+
-+static int uart0_mmio_read(struct vcpu *v, mmio_info_t *info)
-+{
-+    struct hsr_dabt dabt = info->dabt;
-+    struct cpu_user_regs *regs = guest_cpu_user_regs();
-+    uint32_t *r = &regs->r0 + dabt.reg;
-+    int offset = (int)(info->gpa - UART0_START);
-+
-+    switch ( offset )
-+    {
-+    case UARTDR:
-+        *r = 0;
-+        return 1;
-+    case UARTFR:
-+        *r = 0x87; /* All holding registers empty, ready to send etc */
-+        return 1;
-+    default:
-+        printk("VPL011: unhandled read r%d offset %#08x\n",
-+               dabt.reg, offset);
-+        domain_crash_synchronous();
-+    }
-+}
-+
-+static int uart0_mmio_write(struct vcpu *v, mmio_info_t *info)
-+{
-+    struct hsr_dabt dabt = info->dabt;
-+    struct cpu_user_regs *regs = guest_cpu_user_regs();
-+    uint32_t *r = &regs->r0 + dabt.reg;
-+    int offset = (int)(info->gpa - UART0_START);
-+
-+    switch ( offset )
-+    {
-+    case UARTDR:
-+        /* ignore any status bits */
-+        uart0_print_char((int)((*r) & 0xFF));
-+        return 1;
-+    case UARTFR:
-+        /* Silently ignore */
-+        return 1;
-+    default:
-+        printk("VPL011: unhandled write r%d=%"PRIx32" offset %#08x\n",
-+               dabt.reg, *r, offset);
-+        domain_crash_synchronous();
-+    }
-+}
-+
-+const struct mmio_handler uart0_mmio_handler = {
-+    .check_handler = uart0_mmio_check,
-+    .read_handler  = uart0_mmio_read,
-+    .write_handler = uart0_mmio_write,
-+};
-+
-+/*
-+ * Local variables:
-+ * mode: C
-+ * c-set-style: "BSD"
-+ * c-basic-offset: 4
-+ * indent-tabs-mode: nil
-+ * End:
-+ */
-+
-diff --git a/xen/arch/arm/vpl011.h b/xen/arch/arm/vpl011.h
-new file mode 100644
-index 0000000..952d812
---- /dev/null
-+++ b/xen/arch/arm/vpl011.h
-@@ -0,0 +1,34 @@
-+/*
-+ * xen/arch/arm/vpl011.h
-+ *
-+ * ARM PL011 Emulation Support
-+ *
-+ * Ian Campbell <ian.campbell@citrix.com>
-+ * Copyright (c) 2012 Citrix Systems.
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+ * GNU General Public License for more details.
-+ */
-+
-+#ifndef __ARCH_ARM_VPL011_H__
-+#define __ARCH_ARM_VPL011_H__
-+
-+extern int domain_uart0_init(struct domain *d);
-+
-+#endif
-+
-+/*
-+ * Local variables:
-+ * mode: C
-+ * c-set-style: "BSD"
-+ * c-basic-offset: 4
-+ * indent-tabs-mode: nil
-+ * End:
-+ */
-diff --git a/xen/include/asm-arm/domain.h b/xen/include/asm-arm/domain.h
-index 10ed540..f295a82 100644
---- a/xen/include/asm-arm/domain.h
-+++ b/xen/include/asm-arm/domain.h
-@@ -48,6 +48,14 @@ struct arch_domain
-         struct vgic_irq_rank *shared_irqs;
-         struct pending_irq *pending_irqs;
-     } vgic;
-+
-+    struct vpl011 {
-+#define VPL011_BUF_SIZE 128
-+        char                  *buf;
-+        int                    idx;
-+        spinlock_t             lock;
-+    } uart0;
-+
- }  __cacheline_aligned;
- struct arch_vcpu
--- 
-1.7.9.1
-
-
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1340200126.4906.56.camel@zakaz.uk.xensource.com> b/test/corpus/<1340200126.4906.56.camel@zakaz.uk.xensource.com>
deleted file mode 100644 (file)
index 5bf1449..0000000
+++ /dev/null
@@ -1,247 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Jun 20 14:52:42 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 20 Jun 2012 14:52:42 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1ShLKm-0008Au-2c
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 20 Jun 2012 14:52:42 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1ShLHA-0004ig-0O; Wed, 20 Jun 2012 13:48:52 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1ShLH7-0004iY-Ue
-       for xen-devel@lists.xen.org; Wed, 20 Jun 2012 13:48:50 +0000
-Received: from [85.158.139.83:61001] by server-2.bemta-5.messagelabs.com id
-       98/E0-04598-1C4D1EF4; Wed, 20 Jun 2012 13:48:49 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-7.tower-182.messagelabs.com!1340200128!24686627!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDE1ODM=\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 21231 invoked from network); 20 Jun 2012 13:48:48 -0000
-Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-7.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
-       20 Jun 2012 13:48:48 -0000
-X-IronPort-AV: E=Sophos;i="4.77,444,1336348800"; d="scan'208";a="13125664"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       20 Jun 2012 13:48:48 +0000
-Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0;
-       Wed, 20 Jun 2012 14:48:47 +0100
-Message-ID: <1340200126.4906.56.camel@zakaz.uk.xensource.com>
-From: Ian Campbell <Ian.Campbell@citrix.com>
-To: Tim Deegan <tim@xen.org>
-Date: Wed, 20 Jun 2012 14:48:46 +0100
-In-Reply-To: <20120607094152.GG70339@ocelot.phlegethon.org>
-References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
-       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-       <1338565207-2888-21-git-send-email-ian.campbell@citrix.com>
-       <20120607094152.GG70339@ocelot.phlegethon.org>
-Organization: Citrix Systems, Inc.
-X-Mailer: Evolution 3.2.2-1 
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 21/38] arm: dump guest s1 walk on data abort
- which is not a stage 2 issue.
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Thu, 2012-06-07 at 10:41 +0100, Tim Deegan wrote:
-> At 15:39 +0000 on 01 Jun (1338565190), Ian Campbell wrote:
-> > +    offset = addr >> (12+10);
-> > +    printk("1ST[%#03"PRIx32"] (%#"PRIpaddr") = %#010"PRIx32"\n",
-> 
-> Nit: 0x%08 prints '0' as '0x00000000', which is nicer I think.
-
-Agreed, I wasn't aware of this nit of the printf formatting strings
-until you told me.
-
-> Otherwise: ack.
-
-Thanks, update patch is below.
-
-8<---------------------------------------------------------------
-
->From e045b07e1509482e66333a9300668b4d24c33d13 Mon Sep 17 00:00:00 2001
-From: Ian Campbell <ian.campbell@citrix.com>
-Date: Mon, 14 May 2012 14:19:41 +0100
-Subject: [PATCH] arm: dump guest s1 walk on data abort which is not a stage 2
- issue.
-
-Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
-Acked-by: Tim Deegan <tim@xen.org>
----
- xen/arch/arm/traps.c            |   75 +++++++++++++++++++++++++++++++++++---
- xen/include/asm-arm/processor.h |    1 +
- 2 files changed, 70 insertions(+), 6 deletions(-)
-
-diff --git a/xen/arch/arm/traps.c b/xen/arch/arm/traps.c
-index 40bb375..d8eb5a9 100644
---- a/xen/arch/arm/traps.c
-+++ b/xen/arch/arm/traps.c
-@@ -28,6 +28,7 @@
- #include <xen/errno.h>
- #include <xen/hypercall.h>
- #include <xen/softirq.h>
-+#include <xen/domain_page.h>
- #include <public/xen.h>
- #include <asm/regs.h>
- #include <asm/cpregs.h>
-@@ -528,6 +529,62 @@ static void do_cp15_64(struct cpu_user_regs *regs,
- }
-+void dump_guest_s1_walk(struct domain *d, uint32_t addr)
-+{
-+    uint32_t ttbcr = READ_CP32(TTBCR);
-+    uint32_t ttbr0 = READ_CP32(TTBR0);
-+    paddr_t paddr;
-+    uint32_t offset;
-+    uint32_t *first = NULL, *second = NULL;
-+
-+    printk("dom%d VA 0x%08"PRIx32"\n", d->domain_id, addr);
-+    printk("    TTBCR: 0x%08"PRIx32"\n", ttbcr);
-+    printk("    TTBR0: 0x%08"PRIx32" = 0x%"PRIpaddr"\n",
-+           ttbr0, p2m_lookup(d, ttbr0 & PAGE_MASK));
-+
-+    if ( ttbcr & TTBCR_EAE )
-+    {
-+        printk("Cannot handle LPAE guest PT walk\n");
-+        return;
-+    }
-+    if ( (ttbcr & TTBCR_N_MASK) != 0 )
-+    {
-+        printk("Cannot handle TTBR1 guest walks\n");
-+        return;
-+    }
-+
-+    paddr = p2m_lookup(d, ttbr0 & PAGE_MASK);
-+    if ( paddr == INVALID_PADDR )
-+    {
-+        printk("Failed TTBR0 maddr lookup\n");
-+        goto done;
-+    }
-+    first = map_domain_page(paddr>>PAGE_SHIFT);
-+
-+    offset = addr >> (12+10);
-+    printk("1ST[0x%"PRIx32"] (0x%"PRIpaddr") = 0x%08"PRIx32"\n",
-+           offset, paddr, first[offset]);
-+    if ( !(first[offset] & 0x1) ||
-+         !(first[offset] & 0x2) )
-+        goto done;
-+
-+    paddr = p2m_lookup(d, first[offset] & PAGE_MASK);
-+
-+    if ( paddr == INVALID_PADDR )
-+    {
-+        printk("Failed L1 entry maddr lookup\n");
-+        goto done;
-+    }
-+    second = map_domain_page(paddr>>PAGE_SHIFT);
-+    offset = (addr >> 12) & 0x3FF;
-+    printk("2ND[0x%"PRIx32"] (0x%"PRIpaddr") = 0x%08"PRIx32"\n",
-+           offset, paddr, second[offset]);
-+
-+done:
-+    if (second) unmap_domain_page(second);
-+    if (first) unmap_domain_page(first);
-+}
-+
- static void do_trap_data_abort_guest(struct cpu_user_regs *regs,
-                                      struct hsr_dabt dabt)
- {
-@@ -535,11 +592,12 @@ static void do_trap_data_abort_guest(struct cpu_user_regs *regs,
-     int level = -1;
-     mmio_info_t info;
-+    info.dabt = dabt;
-+    info.gva = READ_CP32(HDFAR);
-+
-     if (dabt.s1ptw)
-         goto bad_data_abort;
--    info.dabt = dabt;
--    info.gva = READ_CP32(HDFAR);
-     info.gpa = gva_to_ipa(info.gva);
-     if (handle_mmio(&info))
-@@ -553,18 +611,23 @@ bad_data_abort:
-     msg = decode_fsc( dabt.dfsc, &level);
-     printk("Guest data abort: %s%s%s\n"
--           "    gva=%"PRIx32" gpa=%"PRIpaddr"\n",
-+           "    gva=%"PRIx32"\n",
-            msg, dabt.s1ptw ? " S2 during S1" : "",
-            fsc_level_str(level),
--           info.gva, info.gpa);
--    if (dabt.valid)
-+           info.gva);
-+    if ( !dabt.s1ptw )
-+        printk("    gpa=%"PRIpaddr"\n", info.gpa);
-+    if ( dabt.valid )
-         printk("    size=%d sign=%d write=%d reg=%d\n",
-                dabt.size, dabt.sign, dabt.write, dabt.reg);
-     else
-         printk("    instruction syndrome invalid\n");
-     printk("    eat=%d cm=%d s1ptw=%d dfsc=%d\n",
-            dabt.eat, dabt.cache, dabt.s1ptw, dabt.dfsc);
--
-+    if ( !dabt.s1ptw )
-+        dump_p2m_lookup(current->domain, info.gpa);
-+    else
-+        dump_guest_s1_walk(current->domain, info.gva);
-     show_execution_state(regs);
-     panic("Unhandled guest data abort\n");
- }
-diff --git a/xen/include/asm-arm/processor.h b/xen/include/asm-arm/processor.h
-index ec6fb48..81924a4 100644
---- a/xen/include/asm-arm/processor.h
-+++ b/xen/include/asm-arm/processor.h
-@@ -25,6 +25,7 @@
- #define PSR_JAZELLE     (1<<24)       /* Jazelle Mode */
- /* TTBCR Translation Table Base Control Register */
-+#define TTBCR_EAE    0x80000000
- #define TTBCR_N_MASK 0x07
- #define TTBCR_N_16KB 0x00
- #define TTBCR_N_8KB  0x01
--- 
-1.7.9.1
-
-
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1340200398.4906.60.camel@zakaz.uk.xensource.com> b/test/corpus/<1340200398.4906.60.camel@zakaz.uk.xensource.com>
deleted file mode 100644 (file)
index c4d94d6..0000000
+++ /dev/null
@@ -1,131 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Jun 20 14:56:52 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 20 Jun 2012 14:56:52 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1ShLOo-0008Bw-Iu
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 20 Jun 2012 14:56:52 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1ShLLd-0004vO-7n; Wed, 20 Jun 2012 13:53:29 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1ShLLb-0004vI-Uj
-       for xen-devel@lists.xen.org; Wed, 20 Jun 2012 13:53:28 +0000
-Received: from [85.158.138.51:37041] by server-8.bemta-3.messagelabs.com id
-       AD/44-06157-2D5D1EF4; Wed, 20 Jun 2012 13:53:22 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-5.tower-174.messagelabs.com!1340200400!28736181!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDE1ODM=\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 10533 invoked from network); 20 Jun 2012 13:53:20 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-5.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
-       20 Jun 2012 13:53:20 -0000
-X-IronPort-AV: E=Sophos;i="4.77,444,1336348800"; d="scan'208";a="13125778"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       20 Jun 2012 13:53:20 +0000
-Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0;
-       Wed, 20 Jun 2012 14:53:19 +0100
-Message-ID: <1340200398.4906.60.camel@zakaz.uk.xensource.com>
-From: Ian Campbell <Ian.Campbell@citrix.com>
-To: Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-Date: Wed, 20 Jun 2012 14:53:18 +0100
-In-Reply-To: <alpine.DEB.2.02.1206061825480.2415@kaball.uk.xensource.com>
-References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
-       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-       <1338565207-2888-22-git-send-email-ian.campbell@citrix.com>
-       <alpine.DEB.2.02.1206061825480.2415@kaball.uk.xensource.com>
-Organization: Citrix Systems, Inc.
-X-Mailer: Evolution 3.2.2-1 
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 22/38] arm: implement
- vcpu_show_execution_state
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Wed, 2012-06-06 at 18:26 +0100, Stefano Stabellini wrote:
-> > @@ -334,6 +360,26 @@ void show_execution_state(struct cpu_user_regs *regs)
-> >      show_stack(regs);
-> >  }
-> >  
-> > +void vcpu_show_execution_state(struct vcpu *v)
-> > +{
-> > +    printk("*** Dumping Dom%d vcpu#%d state: ***\n",
-> > +           v->domain->domain_id, v->vcpu_id);
-> > +
-> > +    if ( v == current )
-> > +    {
-> > +        show_execution_state(guest_cpu_user_regs());
-> > +        return;
-> > +    }
-> > +
-> > +    vcpu_pause(v); /* acceptably dangerous */
-> > +
-> > +    vcpu_show_registers(v);
-> > +    if ( !usr_mode(&v->arch.cpu_info->guest_cpu_user_regs) )
-> > +        show_guest_stack(&v->arch.cpu_info->guest_cpu_user_regs);
-> 
-> isn't the if condition inverted?
-
-I think what I'm trying to do here is only dump the stack if the guest
-was in one of the privileged modes (i.e. not user mode). 
-
-I don't really recall why -- I guess I figured the usermode stack was
-not likely to be all that useful. Unless there's some reason (which I've
-forgotten) why we can't walk guest userspace stacks, but given that the
-entirety of the implementation of show_guest_stack() is:
-        static void show_guest_stack(struct cpu_user_regs *regs)
-        {
-            printk("GUEST STACK GOES HERE\n");
-        }
-I guess it doesn't really matter ;-)
-
-Ian.
-> 
-> > +    vcpu_unpause(v);
-> > +}
-> > +
-> >  static void do_unexpected_trap(const char *msg, struct cpu_user_regs *regs)
-> >  {
-> >      printk("Unexpected Trap: %s\n", msg);
-> 
-
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1340200564.4906.61.camel@zakaz.uk.xensource.com> b/test/corpus/<1340200564.4906.61.camel@zakaz.uk.xensource.com>
deleted file mode 100644 (file)
index 8c34952..0000000
+++ /dev/null
@@ -1,122 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Jun 20 15:00:36 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 20 Jun 2012 15:00:36 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1ShLST-0008Cy-Fr
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 20 Jun 2012 15:00:35 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1ShLOp-00055w-R3; Wed, 20 Jun 2012 13:56:47 +0000
-Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1ShLOn-00055m-RZ
-       for xen-devel@lists.xen.org; Wed, 20 Jun 2012 13:56:46 +0000
-Received: from [193.109.254.147:22216] by server-1.bemta-14.messagelabs.com id
-       18/23-24612-D96D1EF4; Wed, 20 Jun 2012 13:56:45 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-16.tower-27.messagelabs.com!1340200566!8567576!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDE1ODM=\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 30156 invoked from network); 20 Jun 2012 13:56:06 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-16.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
-       20 Jun 2012 13:56:06 -0000
-X-IronPort-AV: E=Sophos;i="4.77,444,1336348800"; d="scan'208";a="13125858"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       20 Jun 2012 13:56:06 +0000
-Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0;
-       Wed, 20 Jun 2012 14:56:05 +0100
-Message-ID: <1340200564.4906.61.camel@zakaz.uk.xensource.com>
-From: Ian Campbell <Ian.Campbell@citrix.com>
-To: Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-Date: Wed, 20 Jun 2012 14:56:04 +0100
-In-Reply-To: <1340200398.4906.60.camel@zakaz.uk.xensource.com>
-References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
-       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-       <1338565207-2888-22-git-send-email-ian.campbell@citrix.com>
-       <alpine.DEB.2.02.1206061825480.2415@kaball.uk.xensource.com>
-       <1340200398.4906.60.camel@zakaz.uk.xensource.com>
-Organization: Citrix Systems, Inc.
-X-Mailer: Evolution 3.2.2-1 
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 22/38] arm: implement
- vcpu_show_execution_state
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Wed, 2012-06-20 at 14:53 +0100, Ian Campbell wrote:
-> On Wed, 2012-06-06 at 18:26 +0100, Stefano Stabellini wrote:
-> > > @@ -334,6 +360,26 @@ void show_execution_state(struct cpu_user_regs *regs)
-> > >      show_stack(regs);
-> > >  }
-> > >  
-> > > +void vcpu_show_execution_state(struct vcpu *v)
-> > > +{
-> > > +    printk("*** Dumping Dom%d vcpu#%d state: ***\n",
-> > > +           v->domain->domain_id, v->vcpu_id);
-> > > +
-> > > +    if ( v == current )
-> > > +    {
-> > > +        show_execution_state(guest_cpu_user_regs());
-> > > +        return;
-> > > +    }
-> > > +
-> > > +    vcpu_pause(v); /* acceptably dangerous */
-> > > +
-> > > +    vcpu_show_registers(v);
-> > > +    if ( !usr_mode(&v->arch.cpu_info->guest_cpu_user_regs) )
-> > > +        show_guest_stack(&v->arch.cpu_info->guest_cpu_user_regs);
-> > 
-> > isn't the if condition inverted?
-> 
-> I think what I'm trying to do here is only dump the stack if the guest
-> was in one of the privileged modes (i.e. not user mode). 
-> 
-> I don't really recall why -- I guess I figured the usermode stack was
-> not likely to be all that useful.
-
-It looks like I just copied the behaviour of x86, which has:
-   if ( guest_kernel_mode(v, &v->arch.user_regs) )
-        show_guest_stack(v, &v->arch.user_regs);
-
-Ian.
-
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1340206729.4906.74.camel@zakaz.uk.xensource.com> b/test/corpus/<1340206729.4906.74.camel@zakaz.uk.xensource.com>
deleted file mode 100644 (file)
index 8c7e087..0000000
+++ /dev/null
@@ -1,298 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Jun 20 16:42:51 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 20 Jun 2012 16:42:51 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1ShN3M-0000Ad-PB
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 20 Jun 2012 16:42:51 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1ShMze-0007En-3H; Wed, 20 Jun 2012 15:38:54 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1ShMzc-0007Eg-4v
-       for xen-devel@lists.xen.org; Wed, 20 Jun 2012 15:38:52 +0000
-Received: from [85.158.143.35:52475] by server-2.bemta-4.messagelabs.com id
-       41/EC-17938-B8EE1EF4; Wed, 20 Jun 2012 15:38:51 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-12.tower-21.messagelabs.com!1340206730!12541139!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDE1ODM=\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 18635 invoked from network); 20 Jun 2012 15:38:51 -0000
-Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-12.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
-       20 Jun 2012 15:38:51 -0000
-X-IronPort-AV: E=Sophos;i="4.77,444,1336348800"; d="scan'208";a="13129081"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       20 Jun 2012 15:38:50 +0000
-Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0;
-       Wed, 20 Jun 2012 16:38:50 +0100
-Message-ID: <1340206729.4906.74.camel@zakaz.uk.xensource.com>
-From: Ian Campbell <Ian.Campbell@citrix.com>
-To: Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-Date: Wed, 20 Jun 2012 16:38:49 +0100
-In-Reply-To: <alpine.DEB.2.02.1206061833290.2415@kaball.uk.xensource.com>
-References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
-       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-       <1338565207-2888-23-git-send-email-ian.campbell@citrix.com>
-       <alpine.DEB.2.02.1206061833290.2415@kaball.uk.xensource.com>
-Organization: Citrix Systems, Inc.
-X-Mailer: Evolution 3.2.2-1 
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 23/38] arm: use correct attributes for
- mappings in copy_from_paddr()
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Wed, 2012-06-06 at 18:38 +0100, Stefano Stabellini wrote:
-> On Fri, 1 Jun 2012, Ian Campbell wrote:
-> > The DTB is in RAM (hence bufferable), kernel is in flash and therefor requires
-> > a device type mapping (hence dev shared).
-> > 
-> > Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
-> > ---
-> >  xen/arch/arm/kernel.c       |    8 ++++----
-> >  xen/arch/arm/setup.c        |    2 +-
-> >  xen/include/asm-arm/setup.h |    2 +-
-> >  3 files changed, 6 insertions(+), 6 deletions(-)
-> > 
-> > diff --git a/xen/arch/arm/kernel.c b/xen/arch/arm/kernel.c
-> > index 130d488..1a705c9 100644
-> > --- a/xen/arch/arm/kernel.c
-> > +++ b/xen/arch/arm/kernel.c
-> > @@ -39,7 +39,7 @@ struct minimal_dtb_header {
-> >   * @paddr: source physical address
-> >   * @len: length to copy
-> >   */
-> > -void copy_from_paddr(void *dst, paddr_t paddr, unsigned long len)
-> > +void copy_from_paddr(void *dst, paddr_t paddr, unsigned long len, int mattr)
-> >  {
-> >      void *src = (void *)FIXMAP_ADDR(FIXMAP_MISC);
-> >  
-> > @@ -51,7 +51,7 @@ void copy_from_paddr(void *dst, paddr_t paddr, unsigned long len)
-> >          s = paddr & (PAGE_SIZE-1);
-> >          l = min(PAGE_SIZE - s, len);
-> >  
-> > -        set_fixmap(FIXMAP_MISC, p, DEV_SHARED);
-> > +        set_fixmap(FIXMAP_MISC, p, mattr);
-> >          memcpy(dst, src + s, l);
-> >  
-> >          paddr += l;
-> > @@ -111,7 +111,7 @@ static int kernel_try_zimage_prepare(struct kernel_info *info)
-> >      /*
-> >       * Check for an appended DTB.
-> >       */
-> > -    copy_from_paddr(&dtb_hdr, KERNEL_FLASH_ADDRESS + end - start, sizeof(dtb_hdr));
-> > +    copy_from_paddr(&dtb_hdr, KERNEL_FLASH_ADDRESS + end - start, sizeof(dtb_hdr), DEV_SHARED);
-> >      if (be32_to_cpu(dtb_hdr.magic) == DTB_MAGIC) {
-> >          end += be32_to_cpu(dtb_hdr.total_size);
-> >      }
-> > @@ -151,7 +151,7 @@ static int kernel_try_elf_prepare(struct kernel_info *info)
-> >      if ( info->kernel_img == NULL )
-> >          panic("Cannot allocate temporary buffer for kernel.\n");
-> >  
-> > -    copy_from_paddr(info->kernel_img, KERNEL_FLASH_ADDRESS, KERNEL_FLASH_SIZE);
-> > +    copy_from_paddr(info->kernel_img, KERNEL_FLASH_ADDRESS, KERNEL_FLASH_SIZE, DEV_SHARED);
-> >  
-> >      if ( (rc = elf_init(&info->elf.elf, info->kernel_img, KERNEL_FLASH_SIZE )) != 0 )
-> >          return rc;
-> > diff --git a/xen/arch/arm/setup.c b/xen/arch/arm/setup.c
-> > index b0cfacc..f5473cd 100644
-> > --- a/xen/arch/arm/setup.c
-> > +++ b/xen/arch/arm/setup.c
-> > @@ -122,7 +122,7 @@ static void __init setup_mm(unsigned long dtb_paddr, size_t dtb_size)
-> >       * TODO: handle other payloads too.
-> >       */
-> >      device_tree_flattened = mfn_to_virt(alloc_boot_pages(dtb_pages, 1));
-> > -    copy_from_paddr(device_tree_flattened, dtb_paddr, dtb_size);
-> > +    copy_from_paddr(device_tree_flattened, dtb_paddr, dtb_size, BUFFERABLE);
-> >  
-> >      /* Add non-xenheap memory */
-> >      init_boot_pages(pfn_to_paddr(xenheap_mfn_start + xenheap_pages),
-> > diff --git a/xen/include/asm-arm/setup.h b/xen/include/asm-arm/setup.h
-> > index 05ff89e..faadccc 100644
-> > --- a/xen/include/asm-arm/setup.h
-> > +++ b/xen/include/asm-arm/setup.h
-> > @@ -3,7 +3,7 @@
-> >  
-> >  #include <public/version.h>
-> >  
-> > -void copy_from_paddr(void *dst, paddr_t paddr, unsigned long len);
-> > +void copy_from_paddr(void *dst, paddr_t paddr, unsigned long len, int mattr);
-> >  
-> >  void arch_get_xen_caps(xen_capabilities_info_t *info);
-> >  
-> 
-> The patch is correct, but it shouldn't call the new parameter mattr
-> because it can easily be confused with the memattr bits (see
-> http://marc.info/?l=xen-devel&m=133856578918985).
-> I would call it "int attrindx" instead.
-
-Yes, this is a good point and attrindx is a good name, I'll make that
-change.
-
-I also added a comment to the two sets of #defines explaining which they
-are. Updated patch is:
-
-8<------------------------------------------------
-
->From 08f78c5b7e31ed0f6533ff6a378c586c0db58276 Mon Sep 17 00:00:00 2001
-From: Ian Campbell <ian.campbell@citrix.com>
-Date: Mon, 14 May 2012 14:02:26 +0100
-Subject: [PATCH] arm: use correct attributes for mappings in
- copy_from_paddr()
-
-The DTB is in RAM (hence bufferable), kernel is in flash and therefor requires
-a device type mapping (hence dev shared).
-
-Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
-Acked-by: David Vrabel <david.vrabel@citrix.com>
----
- xen/arch/arm/kernel.c       |    8 ++++----
- xen/arch/arm/setup.c        |    2 +-
- xen/include/asm-arm/page.h  |   15 +++++++++++++++
- xen/include/asm-arm/setup.h |    2 +-
- 4 files changed, 21 insertions(+), 6 deletions(-)
-
-diff --git a/xen/arch/arm/kernel.c b/xen/arch/arm/kernel.c
-index 130d488..2d56130 100644
---- a/xen/arch/arm/kernel.c
-+++ b/xen/arch/arm/kernel.c
-@@ -39,7 +39,7 @@ struct minimal_dtb_header {
-  * @paddr: source physical address
-  * @len: length to copy
-  */
--void copy_from_paddr(void *dst, paddr_t paddr, unsigned long len)
-+void copy_from_paddr(void *dst, paddr_t paddr, unsigned long len, int attrindx)
- {
-     void *src = (void *)FIXMAP_ADDR(FIXMAP_MISC);
-@@ -51,7 +51,7 @@ void copy_from_paddr(void *dst, paddr_t paddr, unsigned long len)
-         s = paddr & (PAGE_SIZE-1);
-         l = min(PAGE_SIZE - s, len);
--        set_fixmap(FIXMAP_MISC, p, DEV_SHARED);
-+        set_fixmap(FIXMAP_MISC, p, attrindx);
-         memcpy(dst, src + s, l);
-         paddr += l;
-@@ -111,7 +111,7 @@ static int kernel_try_zimage_prepare(struct kernel_info *info)
-     /*
-      * Check for an appended DTB.
-      */
--    copy_from_paddr(&dtb_hdr, KERNEL_FLASH_ADDRESS + end - start, sizeof(dtb_hdr));
-+    copy_from_paddr(&dtb_hdr, KERNEL_FLASH_ADDRESS + end - start, sizeof(dtb_hdr), DEV_SHARED);
-     if (be32_to_cpu(dtb_hdr.magic) == DTB_MAGIC) {
-         end += be32_to_cpu(dtb_hdr.total_size);
-     }
-@@ -151,7 +151,7 @@ static int kernel_try_elf_prepare(struct kernel_info *info)
-     if ( info->kernel_img == NULL )
-         panic("Cannot allocate temporary buffer for kernel.\n");
--    copy_from_paddr(info->kernel_img, KERNEL_FLASH_ADDRESS, KERNEL_FLASH_SIZE);
-+    copy_from_paddr(info->kernel_img, KERNEL_FLASH_ADDRESS, KERNEL_FLASH_SIZE, DEV_SHARED);
-     if ( (rc = elf_init(&info->elf.elf, info->kernel_img, KERNEL_FLASH_SIZE )) != 0 )
-         return rc;
-diff --git a/xen/arch/arm/setup.c b/xen/arch/arm/setup.c
-index d6c0178..fd70553 100644
---- a/xen/arch/arm/setup.c
-+++ b/xen/arch/arm/setup.c
-@@ -122,7 +122,7 @@ static void __init setup_mm(unsigned long dtb_paddr, size_t dtb_size)
-      * TODO: handle other payloads too.
-      */
-     device_tree_flattened = mfn_to_virt(alloc_boot_pages(dtb_pages, 1));
--    copy_from_paddr(device_tree_flattened, dtb_paddr, dtb_size);
-+    copy_from_paddr(device_tree_flattened, dtb_paddr, dtb_size, BUFFERABLE);
-     /* Add non-xenheap memory */
-     init_boot_pages(pfn_to_paddr(xenheap_mfn_start + xenheap_pages),
-diff --git a/xen/include/asm-arm/page.h b/xen/include/asm-arm/page.h
-index 6efe23c..2b6c1780 100644
---- a/xen/include/asm-arm/page.h
-+++ b/xen/include/asm-arm/page.h
-@@ -36,6 +36,14 @@
- #define MAIR0VAL 0xeeaa4400
- #define MAIR1VAL 0xff000004
-+/*
-+ * Attribute Indexes.
-+ *
-+ * These are valid in the AttrIndx[2:0] field of an LPAE stage 1 page
-+ * table entry. They are indexes into the bytes of the MAIR*
-+ * registers, as defined above.
-+ *
-+ */
- #define UNCACHED      0x0
- #define BUFFERABLE    0x1
- #define WRITETHROUGH  0x2
-@@ -46,6 +54,13 @@
- #define DEV_WC        BUFFERABLE
- #define DEV_CACHED    WRITEBACK
-+/*
-+ * Stage 2 Memory Type.
-+ *
-+ * These are valid in the MemAttr[3:0] field of an LPAE stage 2 page
-+ * table entry.
-+ *
-+ */
- #define MATTR_DEV     0x1
- #define MATTR_MEM     0xf
-diff --git a/xen/include/asm-arm/setup.h b/xen/include/asm-arm/setup.h
-index 05ff89e..6433b4e 100644
---- a/xen/include/asm-arm/setup.h
-+++ b/xen/include/asm-arm/setup.h
-@@ -3,7 +3,7 @@
- #include <public/version.h>
--void copy_from_paddr(void *dst, paddr_t paddr, unsigned long len);
-+void copy_from_paddr(void *dst, paddr_t paddr, unsigned long len, int attrindx);
- void arch_get_xen_caps(xen_capabilities_info_t *info);
--- 
-1.7.9.1
-
-
-
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1340266524.21872.2.camel@zakaz.uk.xensource.com> b/test/corpus/<1340266524.21872.2.camel@zakaz.uk.xensource.com>
deleted file mode 100644 (file)
index bbcb399..0000000
+++ /dev/null
@@ -1,132 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Jun 21 09:25:58 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 21 Jun 2012 09:25:58 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1Shci8-0008Ry-DJ
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 21 Jun 2012 09:25:58 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1Shccj-0008CK-O9; Thu, 21 Jun 2012 08:20:17 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1Shcch-0008CF-Bv
-       for xen-devel@lists.xen.org; Thu, 21 Jun 2012 08:20:15 +0000
-Received: from [85.158.143.35:10686] by server-3.bemta-4.messagelabs.com id
-       92/92-05808-E39D2EF4; Thu, 21 Jun 2012 08:20:14 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-4.tower-21.messagelabs.com!1340266810!5633649!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDE3MDQ=\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 2770 invoked from network); 21 Jun 2012 08:20:11 -0000
-Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-4.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
-       21 Jun 2012 08:20:11 -0000
-X-IronPort-AV: E=Sophos;i="4.77,449,1336348800"; d="scan'208";a="13139440"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       21 Jun 2012 08:20:10 +0000
-Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0;
-       Thu, 21 Jun 2012 09:20:10 +0100
-Message-ID: <1340266524.21872.2.camel@zakaz.uk.xensource.com>
-From: Ian Campbell <Ian.Campbell@citrix.com>
-To: Tim Deegan <tim@xen.org>
-In-Reply-To: <20120606181852.GB38649@ocelot.phlegethon.org>
-References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
-       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-       <1338565207-2888-25-git-send-email-ian.campbell@citrix.com>
-       <alpine.DEB.2.02.1206061846260.2415@kaball.uk.xensource.com>
-       <20120606181852.GB38649@ocelot.phlegethon.org>
-Organization: Citrix Systems, Inc.
-Date: Thu, 21 Jun 2012 09:15:24 +0100
-MIME-Version: 1.0
-X-Mailer: Evolution 3.2.2-1 
-Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 25/38] arm: remove old identity map of boot
- paddr when we are done with it.
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Wed, 2012-06-06 at 19:18 +0100, Tim Deegan wrote:
-> At 19:04 +0100 on 06 Jun (1339009473), Stefano Stabellini wrote:
-> > On Fri, 1 Jun 2012, Ian Campbell wrote:
-> > > Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
-> > > ---
-> > >  xen/arch/arm/mm.c |    8 ++++++++
-> > >  1 files changed, 8 insertions(+), 0 deletions(-)
-> > > 
-> > > diff --git a/xen/arch/arm/mm.c b/xen/arch/arm/mm.c
-> > > index 160a4e9..ab52171 100644
-> > > --- a/xen/arch/arm/mm.c
-> > > +++ b/xen/arch/arm/mm.c
-> > > @@ -214,6 +214,14 @@ void __init setup_pagetables(unsigned long boot_phys_offset)
-> > >      lpae_t pte, *p;
-> > >      int i;
-> > >  
-> > > +    if ( boot_phys_offset != 0 )
-> > > +    {
-> > > +        /* Remove the old identity mapping of the boot paddr */
-> > > +        pte.bits = 0;
-> > > +        dest_va = (unsigned long)_start + boot_phys_offset;
-> > > +        write_pte(xen_second + second_linear_offset(dest_va), pte);
-> > > +    }
-> > 
-> > It looks like we are already doing this few lines below.
-> 
-> We used to do this here and now we do it futher down, after the copy.
-> That way the secondary CPUs can come up on the pre-copy tables where
-> the identity map still exists.
-
-I think I wrote this patch before your SMP series went in, but since
-there was no textual conflict I didn't notice that I should nuke it.
-
-Hrm... I was about to do the nuking but without it I see:
-
-        At 0x00000000, Error: Pagetable properties were remapped while
-        MMU was enabled, may be stale translations
-
-from the model. I use 
-        cluster.messages.ignore_warning_level=0x1
-in my cfg which I think is a bit more verbose than the default.
-
-I need to re-figure out what lead me to this change...
-
-Ian.
-
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1340270809.21872.35.camel@zakaz.uk.xensource.com> b/test/corpus/<1340270809.21872.35.camel@zakaz.uk.xensource.com>
deleted file mode 100644 (file)
index 8efb129..0000000
+++ /dev/null
@@ -1,133 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Jun 21 10:31:39 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 21 Jun 2012 10:31:39 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1Shdjh-0000Hb-AG
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 21 Jun 2012 10:31:39 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1ShdfR-0002Fb-MN; Thu, 21 Jun 2012 09:27:09 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1ShdfP-0002FV-KJ
-       for xen-devel@lists.xen.org; Thu, 21 Jun 2012 09:27:07 +0000
-Received: from [85.158.143.99:19200] by server-1.bemta-4.messagelabs.com id
-       8D/01-24392-AE8E2EF4; Thu, 21 Jun 2012 09:27:06 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-11.tower-216.messagelabs.com!1340270826!20712748!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDE4MTk=\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 5509 invoked from network); 21 Jun 2012 09:27:06 -0000
-Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-11.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
-       21 Jun 2012 09:27:06 -0000
-X-IronPort-AV: E=Sophos;i="4.77,450,1336348800"; d="scan'208";a="13141308"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       21 Jun 2012 09:26:50 +0000
-Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0;
-       Thu, 21 Jun 2012 10:26:50 +0100
-Message-ID: <1340270809.21872.35.camel@zakaz.uk.xensource.com>
-From: Ian Campbell <Ian.Campbell@citrix.com>
-To: "Tim (Xen.org)" <tim@xen.org>
-Date: Thu, 21 Jun 2012 10:26:49 +0100
-In-Reply-To: <1340266524.21872.2.camel@zakaz.uk.xensource.com>
-References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
-       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-       <1338565207-2888-25-git-send-email-ian.campbell@citrix.com>
-       <alpine.DEB.2.02.1206061846260.2415@kaball.uk.xensource.com>
-       <20120606181852.GB38649@ocelot.phlegethon.org>
-       <1340266524.21872.2.camel@zakaz.uk.xensource.com>
-Organization: Citrix Systems, Inc.
-X-Mailer: Evolution 3.2.2-1 
-MIME-Version: 1.0
-Cc: Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 25/38] arm: remove old identity map of boot
- paddr when we are done with it.
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Thu, 2012-06-21 at 09:15 +0100, Ian Campbell wrote:
-> On Wed, 2012-06-06 at 19:18 +0100, Tim Deegan wrote:
-> > At 19:04 +0100 on 06 Jun (1339009473), Stefano Stabellini wrote:
-> > > On Fri, 1 Jun 2012, Ian Campbell wrote:
-> > > > Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
-> > > > ---
-> > > >  xen/arch/arm/mm.c |    8 ++++++++
-> > > >  1 files changed, 8 insertions(+), 0 deletions(-)
-> > > > 
-> > > > diff --git a/xen/arch/arm/mm.c b/xen/arch/arm/mm.c
-> > > > index 160a4e9..ab52171 100644
-> > > > --- a/xen/arch/arm/mm.c
-> > > > +++ b/xen/arch/arm/mm.c
-> > > > @@ -214,6 +214,14 @@ void __init setup_pagetables(unsigned long boot_phys_offset)
-> > > >      lpae_t pte, *p;
-> > > >      int i;
-> > > >  
-> > > > +    if ( boot_phys_offset != 0 )
-> > > > +    {
-> > > > +        /* Remove the old identity mapping of the boot paddr */
-> > > > +        pte.bits = 0;
-> > > > +        dest_va = (unsigned long)_start + boot_phys_offset;
-> > > > +        write_pte(xen_second + second_linear_offset(dest_va), pte);
-> > > > +    }
-> > > 
-> > > It looks like we are already doing this few lines below.
-> > 
-> > We used to do this here and now we do it futher down, after the copy.
-> > That way the secondary CPUs can come up on the pre-copy tables where
-> > the identity map still exists.
-> 
-> I think I wrote this patch before your SMP series went in, but since
-> there was no textual conflict I didn't notice that I should nuke it.
-> 
-> Hrm... I was about to do the nuking but without it I see:
-> 
->         At 0x00000000, Error: Pagetable properties were remapped while
->         MMU was enabled, may be stale translations
-
-I must've been running a stale hypervisor image because now I don't see
-this even with the patch removed.
-
-So I've now nuked the patch from my queue.
-
-Ian.
-
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1340701380.3832.36.camel@zakaz.uk.xensource.com> b/test/corpus/<1340701380.3832.36.camel@zakaz.uk.xensource.com>
deleted file mode 100644 (file)
index 47648a3..0000000
+++ /dev/null
@@ -1,216 +0,0 @@
-From xen-devel-bounces@lists.xen.org Tue Jun 26 10:08:10 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Tue, 26 Jun 2012 10:08:10 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SjRkl-0005LY-Qc
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 26 Jun 2012 10:08:10 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SjRgc-0002Yu-Ie; Tue, 26 Jun 2012 09:03:50 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1SjRgb-0002Yo-JV
-       for xen-devel@lists.xen.org; Tue, 26 Jun 2012 09:03:49 +0000
-Received: from [85.158.139.83:25895] by server-12.bemta-5.messagelabs.com id
-       0E/BC-25233-4FA79EF4; Tue, 26 Jun 2012 09:03:48 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-6.tower-182.messagelabs.com!1340701427!24379471!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDI0NTE=\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 28966 invoked from network); 26 Jun 2012 09:03:48 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-6.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
-       26 Jun 2012 09:03:48 -0000
-X-IronPort-AV: E=Sophos;i="4.77,476,1336348800"; d="scan'208";a="13216814"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       26 Jun 2012 09:03:02 +0000
-Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0;
-       Tue, 26 Jun 2012 10:03:01 +0100
-Message-ID: <1340701380.3832.36.camel@zakaz.uk.xensource.com>
-From: Ian Campbell <Ian.Campbell@citrix.com>
-To: Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-Date: Tue, 26 Jun 2012 10:03:00 +0100
-In-Reply-To: <alpine.DEB.2.02.1206071131370.2415@kaball.uk.xensource.com>
-References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
-       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-       <1338565207-2888-27-git-send-email-ian.campbell@citrix.com>
-       <alpine.DEB.2.02.1206071131370.2415@kaball.uk.xensource.com>
-Organization: Citrix Systems, Inc.
-X-Mailer: Evolution 3.2.2-1 
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 27/38] arm: split pending SPIs (global) out
- from pending PPIs and SGIs (per CPU)
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Thu, 2012-06-07 at 11:35 +0100, Stefano Stabellini wrote:
-> On Fri, 1 Jun 2012, Ian Campbell wrote:
-> > This tracks SPIs in struct arch_domain and PPIs+SGIs in struct arch_vcpu which
-> > seems more logical.
-> > 
-> > Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
-> > ---
-> >  xen/arch/arm/vgic.c          |   17 ++++++++++-------
-> >  xen/include/asm-arm/domain.h |   10 ++++++++++
-> >  2 files changed, 20 insertions(+), 7 deletions(-)
-> > 
-> > diff --git a/xen/arch/arm/vgic.c b/xen/arch/arm/vgic.c
-> > index 629a0da..91d6166 100644
-> > --- a/xen/arch/arm/vgic.c
-> > +++ b/xen/arch/arm/vgic.c
-> > @@ -82,9 +82,8 @@ int domain_vgic_init(struct domain *d)
-> >      d->arch.vgic.shared_irqs =
-> >          xmalloc_array(struct vgic_irq_rank, DOMAIN_NR_RANKS(d));
-> >      d->arch.vgic.pending_irqs =
-> > -        xmalloc_array(struct pending_irq,
-> > -                d->arch.vgic.nr_lines + (32 * d->max_vcpus));
-> > -    for (i=0; i<d->arch.vgic.nr_lines + (32 * d->max_vcpus); i++)
-> > +        xzalloc_array(struct pending_irq, d->arch.vgic.nr_lines);
-> > +    for (i=0; i<d->arch.vgic.nr_lines; i++)
-> >          INIT_LIST_HEAD(&d->arch.vgic.pending_irqs[i].inflight);
-> >      for (i=0; i<DOMAIN_NR_RANKS(d); i++)
-> >          spin_lock_init(&d->arch.vgic.shared_irqs[i].lock);
-> > @@ -98,6 +97,10 @@ int vcpu_vgic_init(struct vcpu *v)
-> >  
-> >      spin_lock_init(&v->arch.vgic.private_irqs.lock);
-> >  
-> > +    memset(&v->arch.vgic.pending_irqs, 0, sizeof(v->arch.vgic.pending_irqs));
-> > +    for (i = 0; i < 32; i++)
-> > +        INIT_LIST_HEAD(&v->arch.vgic.pending_irqs[i].inflight);
-> > +
-> >      /* For SGI and PPI the target is always this CPU */
-> >      for ( i = 0 ; i < 8 ; i++ )
-> >          v->arch.vgic.private_irqs.itargets[i] =
-> > @@ -535,8 +538,7 @@ struct pending_irq *irq_to_pending(struct vcpu *v, unsigned int irq)
-> >      /* Pending irqs allocation strategy: the first vgic.nr_lines irqs
-> >       * are used for SPIs; the rests are used for per cpu irqs */
-> >      if ( irq < 32 )
-> > -        n = &v->domain->arch.vgic.pending_irqs[irq + (v->vcpu_id * 32)
-> > -            + v->domain->arch.vgic.nr_lines];
-> > +        n = &v->arch.vgic.pending_irqs[irq];
-> >      else
-> >          n = &v->domain->arch.vgic.pending_irqs[irq - 32];
-> >      return n;
-> > @@ -548,6 +550,7 @@ void vgic_vcpu_inject_irq(struct vcpu *v, unsigned int irq, int virtual)
-> >      uint8_t priority;
-> >      struct vgic_irq_rank *rank = vgic_irq_rank(v, 8, idx);
-> >      struct pending_irq *iter, *n = irq_to_pending(v, irq);
-> > +    unsigned long flags;
-> >  
-> >      /* irq still pending */
-> >      if (!list_empty(&n->inflight))
-> > @@ -564,7 +567,7 @@ void vgic_vcpu_inject_irq(struct vcpu *v, unsigned int irq, int virtual)
-> >  
-> >      gic_set_guest_irq(irq, GICH_LR_PENDING, priority);
-> >  
-> > -    spin_lock(&v->arch.vgic.lock);
-> > +    spin_lock_irqsave(&v->arch.vgic.lock, flags);
-> >      list_for_each_entry ( iter, &v->arch.vgic.inflight_irqs, inflight )
-> >      {
-> >          if ( iter->priority > priority )
-> > @@ -575,7 +578,7 @@ void vgic_vcpu_inject_irq(struct vcpu *v, unsigned int irq, int virtual)
-> >          }
-> >      }
-> >      list_add_tail(&n->inflight, &v->arch.vgic.inflight_irqs);
-> > -    spin_unlock(&v->arch.vgic.lock);
-> > +    spin_unlock_irqrestore(&v->arch.vgic.lock, flags);
-> >      /* we have a new higher priority irq, inject it into the guest */
-> >  }
-> 
-> Besides moving PPIs and SGIs to struct vcpu, this patch also turns
-> spin_lock into spin_lock_irqsave in vgic_vcpu_inject_irq: I think it is
-> correct because it can be called in IRQ context,
-
-good point.
-
-> but it needs to be explicitly stated in the commit message.
-
-I've split it into its own patch instead:
-
-8<----------------------------------------
-
->From 6d4f199127488480f9a9cc2a94bb73734a75ff88 Mon Sep 17 00:00:00 2001
-From: Ian Campbell <ian.campbell@citrix.com>
-Date: Tue, 26 Jun 2012 09:00:55 +0000
-Subject: [PATCH] arm: use interrupt safe spin locks in vgic_vcpu_inject_irq
-
-This function can be called in both interrupt and regular context.
-
-Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
----
- xen/arch/arm/vgic.c |    5 +++--
- 1 files changed, 3 insertions(+), 2 deletions(-)
-
-diff --git a/xen/arch/arm/vgic.c b/xen/arch/arm/vgic.c
-index af3523f..91d6166 100644
---- a/xen/arch/arm/vgic.c
-+++ b/xen/arch/arm/vgic.c
-@@ -550,6 +550,7 @@ void vgic_vcpu_inject_irq(struct vcpu *v, unsigned int irq, int virtual)
-     uint8_t priority;
-     struct vgic_irq_rank *rank = vgic_irq_rank(v, 8, idx);
-     struct pending_irq *iter, *n = irq_to_pending(v, irq);
-+    unsigned long flags;
-     /* irq still pending */
-     if (!list_empty(&n->inflight))
-@@ -566,7 +567,7 @@ void vgic_vcpu_inject_irq(struct vcpu *v, unsigned int irq, int virtual)
-     gic_set_guest_irq(irq, GICH_LR_PENDING, priority);
--    spin_lock(&v->arch.vgic.lock);
-+    spin_lock_irqsave(&v->arch.vgic.lock, flags);
-     list_for_each_entry ( iter, &v->arch.vgic.inflight_irqs, inflight )
-     {
-         if ( iter->priority > priority )
-@@ -577,7 +578,7 @@ void vgic_vcpu_inject_irq(struct vcpu *v, unsigned int irq, int virtual)
-         }
-     }
-     list_add_tail(&n->inflight, &v->arch.vgic.inflight_irqs);
--    spin_unlock(&v->arch.vgic.lock);
-+    spin_unlock_irqrestore(&v->arch.vgic.lock, flags);
-     /* we have a new higher priority irq, inject it into the guest */
- }
--- 
-1.7.9.1
-
-
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1340702747.3832.37.camel@zakaz.uk.xensource.com> b/test/corpus/<1340702747.3832.37.camel@zakaz.uk.xensource.com>
deleted file mode 100644 (file)
index a2efccd..0000000
+++ /dev/null
@@ -1,308 +0,0 @@
-From xen-devel-bounces@lists.xen.org Tue Jun 26 10:30:58 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Tue, 26 Jun 2012 10:30:58 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SjS6m-0005SQ-00
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 26 Jun 2012 10:30:58 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SjS1w-0002pq-Ol; Tue, 26 Jun 2012 09:25:52 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1SjS1v-0002pl-6v
-       for xen-devel@lists.xen.org; Tue, 26 Jun 2012 09:25:51 +0000
-Received: from [85.158.139.83:35995] by server-11.bemta-5.messagelabs.com id
-       23/DB-20400-E1089EF4; Tue, 26 Jun 2012 09:25:50 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-3.tower-182.messagelabs.com!1340702749!29532568!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDI1OTk=\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 6316 invoked from network); 26 Jun 2012 09:25:50 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-3.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
-       26 Jun 2012 09:25:50 -0000
-X-IronPort-AV: E=Sophos;i="4.77,476,1336348800"; d="scan'208";a="13217586"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       26 Jun 2012 09:25:49 +0000
-Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0;
-       Tue, 26 Jun 2012 10:25:49 +0100
-Message-ID: <1340702747.3832.37.camel@zakaz.uk.xensource.com>
-From: Ian Campbell <Ian.Campbell@citrix.com>
-To: Tim Deegan <tim@xen.org>
-Date: Tue, 26 Jun 2012 10:25:47 +0100
-In-Reply-To: <20120607095128.GI70339@ocelot.phlegethon.org>
-References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
-       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-       <1338565207-2888-28-git-send-email-ian.campbell@citrix.com>
-       <20120607095128.GI70339@ocelot.phlegethon.org>
-Organization: Citrix Systems, Inc.
-X-Mailer: Evolution 3.2.2-1 
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 28/38] arm: map GICV in all domains,
- not just dom0.
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Thu, 2012-06-07 at 10:51 +0100, Tim Deegan wrote:
-> At 15:39 +0000 on 01 Jun (1338565197), Ian Campbell wrote:
-> > diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
-> > index a7fb227..e15c1e8 100644
-> > --- a/xen/arch/arm/domain.c
-> > +++ b/xen/arch/arm/domain.c
-> > @@ -329,13 +329,17 @@ int arch_domain_create(struct domain *d, unsigned int domcr_flags)
-> >  
-> >          if ( (rc = p2m_alloc_table(d)) != 0 )
-> >              goto fail;
-> > -    }
-> >  
-> > -    if ( (rc = domain_vgic_init(d)) != 0 )
-> > -        goto fail;
-> > +        if ( (rc = gicv_setup(d)) != 0 )
-> > +            goto fail;
-> > +
-> > +        if ( (rc = domain_vgic_init(d)) != 0 )
-> > +            goto fail;
-> > +    }
-> >  
-> >      rc = 0;
-> >  fail:
-> > +    /*XXX unwind allocations etc */
-> 
-> Ahem. :)
-
-Indeed ;-)
-
-I've added the following to the end of the series:
-
-8<------------------------------------------------
-
->From 9b12490d654683b1c3c65eb41ab35e20cd7682db Mon Sep 17 00:00:00 2001
-From: Ian Campbell <ian.campbell@citrix.com>
-Date: Thu, 7 Jun 2012 16:59:57 +0000
-Subject: [PATCH] arm: unwind allocations etc on arch_domain_create_failure
-
-This involves adding the necessary teardown/free functions for some modules.
-
-Don't initialise full arch domain state for the idle domain, it's not needed.
-
-Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
----
- xen/arch/arm/domain.c     |   42 +++++++++++++++++++++++++-----------------
- xen/arch/arm/gic.h        |    3 +++
- xen/arch/arm/p2m.c        |   15 +++++++++++++++
- xen/arch/arm/vgic.c       |    6 ++++++
- xen/arch/arm/vpl011.c     |    5 +++++
- xen/arch/arm/vpl011.h     |    1 +
- xen/include/asm-arm/p2m.h |    3 +++
- 7 files changed, 58 insertions(+), 17 deletions(-)
-
-diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
-index c16fa02..f61568b 100644
---- a/xen/arch/arm/domain.c
-+++ b/xen/arch/arm/domain.c
-@@ -317,37 +317,45 @@ int arch_domain_create(struct domain *d, unsigned int domcr_flags)
- {
-     int rc;
-+    /* Idle domains do not need this setup */
-+    if ( is_idle_domain(d) )
-+        return 0;
-+
-     rc = -ENOMEM;
-     if ( (rc = p2m_init(d)) != 0 )
-         goto fail;
--    if ( !is_idle_domain(d) )
--    {
--        rc = -ENOMEM;
--        if ( (d->shared_info = alloc_xenheap_pages(0, 0)) == NULL )
--            goto fail;
-+    if ( (d->shared_info = alloc_xenheap_pages(0, 0)) == NULL )
-+        goto fail;
--        clear_page(d->shared_info);
--        share_xen_page_with_guest(
--                virt_to_page(d->shared_info), d, XENSHARE_writable);
-+    clear_page(d->shared_info);
-+    share_xen_page_with_guest(
-+        virt_to_page(d->shared_info), d, XENSHARE_writable);
--        if ( (rc = p2m_alloc_table(d)) != 0 )
--            goto fail;
-+    if ( (rc = p2m_alloc_table(d)) != 0 )
-+        goto fail;
--        if ( (rc = gicv_setup(d)) != 0 )
--            goto fail;
-+    if ( (rc = gicv_setup(d)) != 0 )
-+        goto fail;
--        if ( (rc = domain_vgic_init(d)) != 0 )
--            goto fail;
--    }
-+    if ( (rc = domain_vgic_init(d)) != 0 )
-+        goto fail;
-     /* Domain 0 gets a real UART not an emulated one */
-     if ( d->domain_id && (rc = domain_uart0_init(d)) != 0 )
-         goto fail;
--    rc = 0;
-+    return 0;
-+
- fail:
--    /*XXX unwind allocations etc */
-+    d->is_dying = DOMDYING_dead;
-+    free_xenheap_page(d->shared_info);
-+
-+    p2m_teardown(d);
-+
-+    domain_vgic_free(d);
-+    domain_uart0_free(d);
-+
-     return rc;
- }
-diff --git a/xen/arch/arm/gic.h b/xen/arch/arm/gic.h
-index 018d820..e36d6ad 100644
---- a/xen/arch/arm/gic.h
-+++ b/xen/arch/arm/gic.h
-@@ -125,7 +125,10 @@
- #define VGIC_IRQ_EVTCHN_CALLBACK 31
- extern int domain_vgic_init(struct domain *d);
-+extern void domain_vgic_free(struct domain *d);
-+
- extern int vcpu_vgic_init(struct vcpu *v);
-+
- extern void vgic_vcpu_inject_irq(struct vcpu *v, unsigned int irq,int virtual);
- extern struct pending_irq *irq_to_pending(struct vcpu *v, unsigned int irq);
-diff --git a/xen/arch/arm/p2m.c b/xen/arch/arm/p2m.c
-index 67bfeba..073216b 100644
---- a/xen/arch/arm/p2m.c
-+++ b/xen/arch/arm/p2m.c
-@@ -288,6 +288,21 @@ int p2m_alloc_table(struct domain *d)
-     return 0;
- }
-+void p2m_teardown(struct domain *d)
-+{
-+    struct p2m_domain *p2m = &d->arch.p2m;
-+    struct page_info *pg;
-+
-+    spin_lock(&p2m->lock);
-+
-+    while ( (pg = page_list_remove_head(&p2m->pages)) )
-+        free_domheap_page(pg);
-+
-+    p2m->first_level = NULL;
-+
-+    spin_unlock(&p2m->lock);
-+}
-+
- int p2m_init(struct domain *d)
- {
-     struct p2m_domain *p2m = &d->arch.p2m;
-diff --git a/xen/arch/arm/vgic.c b/xen/arch/arm/vgic.c
-index 91d6166..06bbd0c 100644
---- a/xen/arch/arm/vgic.c
-+++ b/xen/arch/arm/vgic.c
-@@ -90,6 +90,12 @@ int domain_vgic_init(struct domain *d)
-     return 0;
- }
-+void domain_vgic_free(struct domain *d)
-+{
-+    xfree(d->arch.vgic.shared_irqs);
-+    xfree(d->arch.vgic.pending_irqs);
-+}
-+
- int vcpu_vgic_init(struct vcpu *v)
- {
-     int i;
-diff --git a/xen/arch/arm/vpl011.c b/xen/arch/arm/vpl011.c
-index 5dc8b28..1522667 100644
---- a/xen/arch/arm/vpl011.c
-+++ b/xen/arch/arm/vpl011.c
-@@ -56,6 +56,11 @@ int domain_uart0_init(struct domain *d)
- }
-+void domain_uart0_free(struct domain *d)
-+{
-+    xfree(d->arch.uart0.buf);
-+}
-+
- static void uart0_print_char(char c)
- {
-     struct vpl011 *uart = &current->domain->arch.uart0;
-diff --git a/xen/arch/arm/vpl011.h b/xen/arch/arm/vpl011.h
-index 952d812..eabd99d 100644
---- a/xen/arch/arm/vpl011.h
-+++ b/xen/arch/arm/vpl011.h
-@@ -21,6 +21,7 @@
- #define __ARCH_ARM_VPL011_H__
- extern int domain_uart0_init(struct domain *d);
-+extern void domain_uart0_free(struct domain *d);
- #endif
-diff --git a/xen/include/asm-arm/p2m.h b/xen/include/asm-arm/p2m.h
-index 666bb88..14e71bf 100644
---- a/xen/include/asm-arm/p2m.h
-+++ b/xen/include/asm-arm/p2m.h
-@@ -23,6 +23,9 @@ struct p2m_domain {
- /* Init the datastructures for later use by the p2m code */
- int p2m_init(struct domain *d);
-+/* Return all the p2m resources to Xen. */
-+void p2m_teardown(struct domain *d);
-+
- /* Allocate a new p2m table for a domain.
-  *
-  * Returns 0 for success or -errno.
--- 
-1.7.9.1
-
-
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1340703036.3832.38.camel@zakaz.uk.xensource.com> b/test/corpus/<1340703036.3832.38.camel@zakaz.uk.xensource.com>
deleted file mode 100644 (file)
index 87d7b75..0000000
+++ /dev/null
@@ -1,157 +0,0 @@
-From xen-devel-bounces@lists.xen.org Tue Jun 26 10:34:46 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Tue, 26 Jun 2012 10:34:46 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SjSAT-0005Sy-1V
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 26 Jun 2012 10:34:46 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SjS6f-0002xa-FA; Tue, 26 Jun 2012 09:30:45 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1SjS6d-0002xT-Nr
-       for xen-devel@lists.xen.org; Tue, 26 Jun 2012 09:30:43 +0000
-Received: from [85.158.143.35:62774] by server-2.bemta-4.messagelabs.com id
-       8E/87-17938-34189EF4; Tue, 26 Jun 2012 09:30:43 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-12.tower-21.messagelabs.com!1340703038!13416038!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDI1OTk=\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 6817 invoked from network); 26 Jun 2012 09:30:39 -0000
-Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-12.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
-       26 Jun 2012 09:30:39 -0000
-X-IronPort-AV: E=Sophos;i="4.77,476,1336348800"; d="scan'208";a="13217708"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       26 Jun 2012 09:30:38 +0000
-Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0;
-       Tue, 26 Jun 2012 10:30:37 +0100
-Message-ID: <1340703036.3832.38.camel@zakaz.uk.xensource.com>
-From: Ian Campbell <Ian.Campbell@citrix.com>
-To: Tim Deegan <tim@xen.org>
-Date: Tue, 26 Jun 2012 10:30:36 +0100
-In-Reply-To: <20120607135930.GW70339@ocelot.phlegethon.org>
-References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
-       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-       <1338565207-2888-29-git-send-email-ian.campbell@citrix.com>
-       <20120601170514.GD77921@ocelot.phlegethon.org>
-       <1338577461.14877.61.camel@dagon.hellion.org.uk>
-       <20120607135930.GW70339@ocelot.phlegethon.org>
-Organization: Citrix Systems, Inc.
-X-Mailer: Evolution 3.2.2-1 
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 29/38] arm: delay enabling data-cache until
- paging enabled.
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Thu, 2012-06-07 at 14:59 +0100, Tim Deegan wrote:
-> At 20:04 +0100 on 01 Jun (1338581061), Ian Campbell wrote:
-> > On Fri, 2012-06-01 at 18:05 +0100, Tim Deegan wrote:
-> > > At 15:39 +0000 on 01 Jun (1338565198), Ian Campbell wrote:
-> > > > With enough warnings enabled the model seemed to be complaining that pages
-> > > > cached before paging was enabled had been mapped with to inconsistent sets of
-> > > > attributes. I'm not convinced that isn't a model issue, nor am I convinced
-> > > > this has really fixed anything, but it seems sensible enough.
-> > > 
-> > > This might be what breaks secondary CPU bringup: pagetables built by CPU
-> > > 0 may not have been flushed all the way to RAM when CPU 1 comes up, and
-> > > CPU 1 isn't participating in cache coherence protocols when it
-> > > starts to need them.
-> > 
-> > The issue here is the lack of the necessary flush, rather than this
-> > change particularly, right?
-> 
-> It turns out to be much more prosaic - the patch to delete the identity
-> mapping from the boot pagetables was scuppering non-boot CPUs.
-> 
-> So this is OK, but can I suggest this to tidy it up?
-
-Seems sensible. With this and Stefano's spelling fix it becomes:
-
->From fe5304fb1d1e6e607b125ccfbdc59b25e1d84b34 Mon Sep 17 00:00:00 2001
-From: Ian Campbell <ian.campbell@citrix.com>
-Date: Mon, 14 May 2012 15:49:27 +0100
-Subject: [PATCH] arm: enable data-cache at the same time as enabling the MMU,
- not before
-
-With enough warnings enabled the model seemed to be complaining that pages
-cached before paging was enabled had been mapped with to inconsistent sets of
-attributes. I'm not convinced that isn't a model issue, nor am I convinced
-this has really fixed anything, but it seems sensible enough.
-
-Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
----
- xen/arch/arm/head.S |    7 ++++---
- 1 files changed, 4 insertions(+), 3 deletions(-)
-
-diff --git a/xen/arch/arm/head.S b/xen/arch/arm/head.S
-index 9a7714a..cdbe011 100644
---- a/xen/arch/arm/head.S
-+++ b/xen/arch/arm/head.S
-@@ -148,10 +148,11 @@ hyp:
-        * Exceptions in LE ARM,
-        * Low-latency IRQs disabled,
-        * Write-implies-XN disabled (for now),
--       * I-cache and d-cache enabled,
-+       * D-cache disabled (for now),
-+       * I-cache enabled,
-        * Alignment checking enabled,
-        * MMU translation disabled (for now). */
--      ldr   r0, =(HSCTLR_BASE|SCTLR_A|SCTLR_C)
-+      ldr   r0, =(HSCTLR_BASE|SCTLR_A)
-       mcr   CP32(r0, HSCTLR)
-       /* Write Xen's PT's paddr into the HTTBR */
-@@ -210,7 +211,7 @@ pt_ready:
-       ldr   r1, =paging            /* Explicit vaddr, not RIP-relative */
-       mrc   CP32(r0, HSCTLR)
--      orr   r0, r0, #0x1           /* Add in the MMU enable bit */
-+      orr   r0, r0, #(SCTLR_M|SCTLR_C) /* Enable MMU and D-cache */
-       dsb                          /* Flush PTE writes and finish reads */
-       mcr   CP32(r0, HSCTLR)       /* now paging is enabled */
-       isb                          /* Now, flush the icache */
--- 
-1.7.9.1
-
-
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1340703351.3832.42.camel@zakaz.uk.xensource.com> b/test/corpus/<1340703351.3832.42.camel@zakaz.uk.xensource.com>
deleted file mode 100644 (file)
index af3ce8f..0000000
+++ /dev/null
@@ -1,188 +0,0 @@
-From xen-devel-bounces@lists.xen.org Tue Jun 26 10:40:33 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Tue, 26 Jun 2012 10:40:33 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SjSG3-0005UO-Ax
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 26 Jun 2012 10:40:33 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SjSBh-0003B8-6Q; Tue, 26 Jun 2012 09:35:57 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1SjSBf-0003B2-NE
-       for xen-devel@lists.xen.org; Tue, 26 Jun 2012 09:35:55 +0000
-Received: from [85.158.143.99:30698] by server-1.bemta-4.messagelabs.com id
-       DD/C9-24392-B7289EF4; Tue, 26 Jun 2012 09:35:55 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-7.tower-216.messagelabs.com!1340703353!25784853!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDI1OTk=\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 6342 invoked from network); 26 Jun 2012 09:35:53 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-7.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
-       26 Jun 2012 09:35:53 -0000
-X-IronPort-AV: E=Sophos;i="4.77,476,1336348800"; d="scan'208";a="13217877"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       26 Jun 2012 09:35:53 +0000
-Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0;
-       Tue, 26 Jun 2012 10:35:52 +0100
-Message-ID: <1340703351.3832.42.camel@zakaz.uk.xensource.com>
-From: Ian Campbell <Ian.Campbell@citrix.com>
-To: Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-Date: Tue, 26 Jun 2012 10:35:51 +0100
-In-Reply-To: <alpine.DEB.2.02.1206071146180.2415@kaball.uk.xensource.com>
-References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
-       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-       <1338565207-2888-31-git-send-email-ian.campbell@citrix.com>
-       <alpine.DEB.2.02.1206071146180.2415@kaball.uk.xensource.com>
-Organization: Citrix Systems, Inc.
-X-Mailer: Evolution 3.2.2-1 
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 31/38] arm: gic.lock can be taken in
- interrupt context, so lock appropriately.
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Thu, 2012-06-07 at 11:49 +0100, Stefano Stabellini wrote:
-> On Fri, 1 Jun 2012, Ian Campbell wrote:
-> > In particular it is taken by gic_set_guest_irq which is called by
-> > vgic_vcpu_inject_irq
-> > 
-> > Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
-> > ---
-> >  xen/arch/arm/gic.c |   20 ++++++++++----------
-> >  1 files changed, 10 insertions(+), 10 deletions(-)
-> > 
-> > diff --git a/xen/arch/arm/gic.c b/xen/arch/arm/gic.c
-> > index a398f92..ededa99 100644
-> > --- a/xen/arch/arm/gic.c
-> > +++ b/xen/arch/arm/gic.c
-> > @@ -329,19 +329,19 @@ int __init gic_init(void)
-> >  /* Set up the per-CPU parts of the GIC for a secondary CPU */
-> >  void __cpuinit gic_init_secondary_cpu(void)
-> >  {
-> > -    spin_lock(&gic.lock);
-> > +    spin_lock_irq(&gic.lock);
-> >      gic_cpu_init();
-> >      gic_hyp_init();
-> > -    spin_unlock(&gic.lock);
-> > +    spin_unlock_irq(&gic.lock);
-> >  }
-> >  
-> >  /* Shut down the per-CPU GIC interface */
-> >  void gic_disable_cpu(void)
-> >  {
-> > -    spin_lock(&gic.lock);
-> > +    spin_lock_irq(&gic.lock);
-> >      gic_cpu_disable();
-> >      gic_hyp_disable();
-> > -    spin_unlock(&gic.lock);
-> > +    spin_unlock_irq(&gic.lock);
-> >  }
-> >  
-> >  void gic_route_irqs(void)
-> > @@ -439,7 +439,7 @@ void gic_set_guest_irq(unsigned int virtual_irq,
-> >  
-> >      events_maintenance(current);
-> >  
-> > -    spin_lock(&gic.lock);
-> > +    spin_lock_irq(&gic.lock);
-> >  
-> >      if ( list_empty(&gic.lr_pending) )
-> >      {
-> > @@ -465,7 +465,7 @@ void gic_set_guest_irq(unsigned int virtual_irq,
-> >      list_add_tail(&n->lr_queue, &gic.lr_pending);
-> >  
-> >  out:
-> > -    spin_unlock(&gic.lock);
-> > +    spin_unlock_irq(&gic.lock);
-> >      return;
-> >  }
-> >  
-> > @@ -559,7 +559,7 @@ static void events_maintenance(struct vcpu *v)
-> >              (unsigned long *)&vcpu_info(v, evtchn_upcall_pending));
-> >  
-> >      if (!already_pending && gic.event_mask != 0) {
-> > -        spin_lock(&gic.lock);
-> > +        spin_lock_irq(&gic.lock);
-> >          while ((i = find_next_bit((const long unsigned int *) &gic.event_mask,
-> >                          sizeof(uint64_t), i)) < sizeof(uint64_t)) {
-> >  
-> > @@ -569,7 +569,7 @@ static void events_maintenance(struct vcpu *v)
-> >  
-> >              i++;
-> >          }
-> > -        spin_unlock(&gic.lock);
-> > +        spin_unlock_irq(&gic.lock);
-> >      }
-> >  }
-> >  
-> > @@ -585,7 +585,7 @@ static void maintenance_interrupt(int irq, void *dev_id, struct cpu_user_regs *r
-> >                                sizeof(eisr), i)) < sizeof(eisr)) {
-> >          struct pending_irq *p;
-> >  
-> > -        spin_lock(&gic.lock);
-> > +        spin_lock_irq(&gic.lock);
-> >          lr = GICH[GICH_LR + i];
-> >          virq = lr & GICH_LR_VIRTUAL_MASK;
-> >          GICH[GICH_LR + i] = 0;
-> > @@ -601,7 +601,7 @@ static void maintenance_interrupt(int irq, void *dev_id, struct cpu_user_regs *r
-> >          } else {
-> >              gic_inject_irq_stop();
-> >          }
-> > -        spin_unlock(&gic.lock);
-> > +        spin_unlock_irq(&gic.lock);
-> >  
-> >          spin_lock(&current->arch.vgic.lock);
->                ^
-> shouldn't you change this into spin_lock_irq too?
-
-
-If so then that should be in "arm: use interrupt safe spin locks in
-vgic_vcpu_inject_irq" rather than here?
-
-I think you've reworked this stuff a bit in one of your follow up series
--- is it worth me changing this here or do you handle it / make it
-irrelevant?
-
-Ian.
-
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1340705906.3832.49.camel@zakaz.uk.xensource.com> b/test/corpus/<1340705906.3832.49.camel@zakaz.uk.xensource.com>
deleted file mode 100644 (file)
index a733b63..0000000
+++ /dev/null
@@ -1,101 +0,0 @@
-From xen-devel-bounces@lists.xen.org Tue Jun 26 11:22:58 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Tue, 26 Jun 2012 11:22:58 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SjSv6-0005as-H6
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 26 Jun 2012 11:22:58 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SjSrI-0003lw-OC; Tue, 26 Jun 2012 10:18:56 +0000
-Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1SjSrH-0003lq-MP
-       for xen-devel@lists.xen.org; Tue, 26 Jun 2012 10:18:55 +0000
-Received: from [193.109.254.147:55395] by server-3.bemta-14.messagelabs.com id
-       97/80-08687-E8C89EF4; Tue, 26 Jun 2012 10:18:54 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-10.tower-27.messagelabs.com!1340705934!3418837!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDI1OTk=\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 4678 invoked from network); 26 Jun 2012 10:18:54 -0000
-Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-10.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
-       26 Jun 2012 10:18:54 -0000
-X-IronPort-AV: E=Sophos;i="4.77,476,1336348800"; d="scan'208";a="13219160"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       26 Jun 2012 10:18:27 +0000
-Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0;
-       Tue, 26 Jun 2012 11:18:27 +0100
-Message-ID: <1340705906.3832.49.camel@zakaz.uk.xensource.com>
-From: Ian Campbell <Ian.Campbell@citrix.com>
-To: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-Date: Tue, 26 Jun 2012 11:18:26 +0100
-In-Reply-To: <1338565207-2888-28-git-send-email-ian.campbell@citrix.com>
-References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
-       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-       <1338565207-2888-28-git-send-email-ian.campbell@citrix.com>
-Organization: Citrix Systems, Inc.
-X-Mailer: Evolution 3.2.2-1 
-MIME-Version: 1.0
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 28/38] arm: map GICV in all domains,
-       not just dom0.
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Fri, 2012-06-01 at 16:39 +0100, Ian Campbell wrote:
-> diff --git a/xen/arch/arm/gic.c b/xen/arch/arm/gic.c
-> index 339c327..a398f92 100644
-> --- a/xen/arch/arm/gic.c
-> +++ b/xen/arch/arm/gic.c
-> @@ -541,14 +541,13 @@ void gic_interrupt(struct cpu_user_regs *regs,
-> int is_fiq)
->      do_IRQ(regs, irq, is_fiq);
->  }
->  
-> -void gicv_setup(struct domain *d)
-> +int gicv_setup(struct domain *d)
->  {
-> +    printk("GICV setup for DOM%d\n", d->domain_id);
-
-This print was a bit verbose/pointless -- I've removed it.
-
-Ian.
-
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1340713538.3832.72.camel@zakaz.uk.xensource.com> b/test/corpus/<1340713538.3832.72.camel@zakaz.uk.xensource.com>
deleted file mode 100644 (file)
index ea6cfe3..0000000
+++ /dev/null
@@ -1,115 +0,0 @@
-From xen-devel-bounces@lists.xen.org Tue Jun 26 13:31:04 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Tue, 26 Jun 2012 13:31:04 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SjUv7-00069Y-Vy
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 26 Jun 2012 13:31:04 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SjUq0-0006py-Vb; Tue, 26 Jun 2012 12:25:44 +0000
-Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1SjUpy-0006pt-VI
-       for xen-devel@lists.xen.org; Tue, 26 Jun 2012 12:25:43 +0000
-Received: from [193.109.254.147:53212] by server-11.bemta-14.messagelabs.com
-       id D8/DB-24843-64AA9EF4; Tue, 26 Jun 2012 12:25:42 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-16.tower-27.messagelabs.com!1340713540!8454529!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDI1OTk=\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 30253 invoked from network); 26 Jun 2012 12:25:40 -0000
-Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-16.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
-       26 Jun 2012 12:25:40 -0000
-X-IronPort-AV: E=Sophos;i="4.77,477,1336348800"; d="scan'208";a="13222914"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       26 Jun 2012 12:25:39 +0000
-Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0;
-       Tue, 26 Jun 2012 13:25:39 +0100
-Message-ID: <1340713538.3832.72.camel@zakaz.uk.xensource.com>
-From: Ian Campbell <Ian.Campbell@citrix.com>
-To: Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-Date: Tue, 26 Jun 2012 13:25:38 +0100
-In-Reply-To: <alpine.DEB.2.02.1206261238560.27860@kaball.uk.xensource.com>
-References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
-       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-       <1338565207-2888-31-git-send-email-ian.campbell@citrix.com>
-       <alpine.DEB.2.02.1206071146180.2415@kaball.uk.xensource.com>
-       <1340703351.3832.42.camel@zakaz.uk.xensource.com>
-       <alpine.DEB.2.02.1206261238560.27860@kaball.uk.xensource.com>
-Organization: Citrix Systems, Inc.
-X-Mailer: Evolution 3.2.2-1 
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 31/38] arm: gic.lock can be taken in
- interrupt context, so lock appropriately.
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Tue, 2012-06-26 at 12:41 +0100, Stefano Stabellini wrote:
-> On Tue, 26 Jun 2012, Ian Campbell wrote:
-> > > > @@ -601,7 +601,7 @@ static void maintenance_interrupt(int irq, void *dev_id, struct cpu_user_regs *r
-> > > >          } else {
-> > > >              gic_inject_irq_stop();
-> > > >          }
-> > > > -        spin_unlock(&gic.lock);
-> > > > +        spin_unlock_irq(&gic.lock);
-> > > >  
-> > > >          spin_lock(&current->arch.vgic.lock);
-> > >                ^
-> > > shouldn't you change this into spin_lock_irq too?
-> > 
-> > 
-> > If so then that should be in "arm: use interrupt safe spin locks in
-> > vgic_vcpu_inject_irq" rather than here?
-> > 
-> > I think you've reworked this stuff a bit in one of your follow up series
-> > -- is it worth me changing this here or do you handle it / make it
-> > irrelevant?
->  
-> No, I am not, I am only removing everything related to
-> events_maintenance. I think it is worth fixing it in one of your patches
-> or in a follow up patch.
-
-OK, I'll do it in another patch.
-
-Ian.
-
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1340718320.3832.116.camel@zakaz.uk.xensource.com> b/test/corpus/<1340718320.3832.116.camel@zakaz.uk.xensource.com>
deleted file mode 100644 (file)
index 3b1a5c1..0000000
+++ /dev/null
@@ -1,209 +0,0 @@
-From xen-devel-bounces@lists.xen.org Tue Jun 26 14:49:52 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Tue, 26 Jun 2012 14:49:52 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SjW9N-0006M6-7b
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 26 Jun 2012 14:49:51 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SjW59-0000Fw-ML; Tue, 26 Jun 2012 13:45:27 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1SjW57-0000Fk-78
-       for xen-devel@lists.xen.org; Tue, 26 Jun 2012 13:45:25 +0000
-Received: from [85.158.143.35:48989] by server-1.bemta-4.messagelabs.com id
-       82/9C-24392-4FCB9EF4; Tue, 26 Jun 2012 13:45:24 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-10.tower-21.messagelabs.com!1340718321!11059332!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDI1OTk=\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 19611 invoked from network); 26 Jun 2012 13:45:22 -0000
-Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-10.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
-       26 Jun 2012 13:45:22 -0000
-X-IronPort-AV: E=Sophos;i="4.77,477,1336348800"; d="scan'208";a="13225411"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       26 Jun 2012 13:45:21 +0000
-Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0;
-       Tue, 26 Jun 2012 14:45:21 +0100
-Message-ID: <1340718320.3832.116.camel@zakaz.uk.xensource.com>
-From: Ian Campbell <Ian.Campbell@citrix.com>
-To: Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-Date: Tue, 26 Jun 2012 14:45:20 +0100
-In-Reply-To: <1340713538.3832.72.camel@zakaz.uk.xensource.com>
-References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
-       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-       <1338565207-2888-31-git-send-email-ian.campbell@citrix.com>
-       <alpine.DEB.2.02.1206071146180.2415@kaball.uk.xensource.com>
-       <1340703351.3832.42.camel@zakaz.uk.xensource.com>
-       <alpine.DEB.2.02.1206261238560.27860@kaball.uk.xensource.com>
-       <1340713538.3832.72.camel@zakaz.uk.xensource.com>
-Organization: Citrix Systems, Inc.
-X-Mailer: Evolution 3.2.2-1 
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 31/38] arm: gic.lock can be taken in
- interrupt context, so lock appropriately.
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Tue, 2012-06-26 at 13:25 +0100, Ian Campbell wrote:
-> On Tue, 2012-06-26 at 12:41 +0100, Stefano Stabellini wrote:
-> > On Tue, 26 Jun 2012, Ian Campbell wrote:
-> > > > > @@ -601,7 +601,7 @@ static void maintenance_interrupt(int irq, void *dev_id, struct cpu_user_regs *r
-> > > > >          } else {
-> > > > >              gic_inject_irq_stop();
-> > > > >          }
-> > > > > -        spin_unlock(&gic.lock);
-> > > > > +        spin_unlock_irq(&gic.lock);
-> > > > >  
-> > > > >          spin_lock(&current->arch.vgic.lock);
-> > > >                ^
-> > > > shouldn't you change this into spin_lock_irq too?
-> > > 
-> > > 
-> > > If so then that should be in "arm: use interrupt safe spin locks in
-> > > vgic_vcpu_inject_irq" rather than here?
-> > > 
-> > > I think you've reworked this stuff a bit in one of your follow up series
-> > > -- is it worth me changing this here or do you handle it / make it
-> > > irrelevant?
-> >  
-> > No, I am not, I am only removing everything related to
-> > events_maintenance. I think it is worth fixing it in one of your patches
-> > or in a follow up patch.
-> 
-> OK, I'll do it in another patch.
-
-Actually, this should have been in "arm: use interrupt safe spin locks
-in vgic_vcpu_inject_irq" after all. I also noticed a bug in that patch
-(using spin_unlock_irq not irqrestore in one exit path from
-vgic_vcpu_inject_irq).
-
-The new combined patch is (this is against my v2 series and replaces
-"arm: use interrupt safe spin locks in vgic_vcpu_inject_irq" there):
-
-8<--------------------------------------------------------------
-
->From 33832172c77d72cd87505f4926f380ee800ff0c7 Mon Sep 17 00:00:00 2001
-From: Ian Campbell <ian.campbell@citrix.com>
-Date: Tue, 26 Jun 2012 09:00:55 +0000
-Subject: [PATCH] arm: make vgic lock safe for use in interrupt context.
-
-In particular vgic_vcpu_inject_irq can be called in both interupt and regular
-context.
-
-Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
----
- xen/arch/arm/gic.c  |    4 ++--
- xen/arch/arm/vgic.c |   11 ++++++-----
- 2 files changed, 8 insertions(+), 7 deletions(-)
-
-diff --git a/xen/arch/arm/gic.c b/xen/arch/arm/gic.c
-index 339c327..1e60d3b 100644
---- a/xen/arch/arm/gic.c
-+++ b/xen/arch/arm/gic.c
-@@ -604,14 +604,14 @@ static void maintenance_interrupt(int irq, void *dev_id, struct cpu_user_regs *r
-         }
-         spin_unlock(&gic.lock);
--        spin_lock(&current->arch.vgic.lock);
-+        spin_lock_irq(&current->arch.vgic.lock);
-         p = irq_to_pending(current, virq);
-         if ( p->desc != NULL ) {
-             p->desc->status &= ~IRQ_INPROGRESS;
-             GICC[GICC_DIR] = virq;
-         }
-         list_del_init(&p->inflight);
--        spin_unlock(&current->arch.vgic.lock);
-+        spin_unlock_irq(&current->arch.vgic.lock);
-         i++;
-     }
-diff --git a/xen/arch/arm/vgic.c b/xen/arch/arm/vgic.c
-index af3523f..a217151 100644
---- a/xen/arch/arm/vgic.c
-+++ b/xen/arch/arm/vgic.c
-@@ -114,8 +114,8 @@ int vcpu_vgic_init(struct vcpu *v)
-     return 0;
- }
--#define vgic_lock(v)   spin_lock(&(v)->domain->arch.vgic.lock)
--#define vgic_unlock(v) spin_unlock(&(v)->domain->arch.vgic.lock)
-+#define vgic_lock(v)   spin_lock_irq(&(v)->domain->arch.vgic.lock)
-+#define vgic_unlock(v) spin_unlock_irq(&(v)->domain->arch.vgic.lock)
- #define vgic_lock_rank(v, r) spin_lock(&(r)->lock)
- #define vgic_unlock_rank(v, r) spin_unlock(&(r)->lock)
-@@ -550,6 +550,7 @@ void vgic_vcpu_inject_irq(struct vcpu *v, unsigned int irq, int virtual)
-     uint8_t priority;
-     struct vgic_irq_rank *rank = vgic_irq_rank(v, 8, idx);
-     struct pending_irq *iter, *n = irq_to_pending(v, irq);
-+    unsigned long flags;
-     /* irq still pending */
-     if (!list_empty(&n->inflight))
-@@ -566,18 +567,18 @@ void vgic_vcpu_inject_irq(struct vcpu *v, unsigned int irq, int virtual)
-     gic_set_guest_irq(irq, GICH_LR_PENDING, priority);
--    spin_lock(&v->arch.vgic.lock);
-+    spin_lock_irqsave(&v->arch.vgic.lock, flags);
-     list_for_each_entry ( iter, &v->arch.vgic.inflight_irqs, inflight )
-     {
-         if ( iter->priority > priority )
-         {
-             list_add_tail(&n->inflight, &iter->inflight);
--            spin_unlock(&v->arch.vgic.lock);
-+            spin_unlock_irqrestore(&v->arch.vgic.lock, flags);
-             return;
-         }
-     }
-     list_add_tail(&n->inflight, &v->arch.vgic.inflight_irqs);
--    spin_unlock(&v->arch.vgic.lock);
-+    spin_unlock_irqrestore(&v->arch.vgic.lock, flags);
-     /* we have a new higher priority irq, inject it into the guest */
- }
--- 
-1.7.9.1
-
-
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1340957235.10942.72.camel@zakaz.uk.xensource.com> b/test/corpus/<1340957235.10942.72.camel@zakaz.uk.xensource.com>
deleted file mode 100644 (file)
index 0e483f4..0000000
+++ /dev/null
@@ -1,99 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Jun 29 09:11:32 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 29 Jun 2012 09:11:32 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SkWIZ-0000qT-HZ
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 29 Jun 2012 09:11:32 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SkWEa-0005y8-7p; Fri, 29 Jun 2012 08:07:20 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1SkWEY-0005xy-RK
-       for Xen-devel@lists.xensource.com; Fri, 29 Jun 2012 08:07:18 +0000
-Received: from [85.158.139.83:38764] by server-11.bemta-5.messagelabs.com id
-       D9/E3-20400-5326DEF4; Fri, 29 Jun 2012 08:07:17 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-6.tower-182.messagelabs.com!1340957237!24964402!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDM1Nzk=\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 15147 invoked from network); 29 Jun 2012 08:07:17 -0000
-Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-6.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
-       29 Jun 2012 08:07:17 -0000
-X-IronPort-AV: E=Sophos;i="4.77,497,1336348800"; d="scan'208";a="13283398"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       29 Jun 2012 08:07:17 +0000
-Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0;
-       Fri, 29 Jun 2012 09:07:17 +0100
-Message-ID: <1340957235.10942.72.camel@zakaz.uk.xensource.com>
-From: Ian Campbell <Ian.Campbell@citrix.com>
-To: Jan Beulich <JBeulich@suse.com>
-Date: Fri, 29 Jun 2012 09:07:15 +0100
-In-Reply-To: <4FED7BD7020000780008CBFB@nat28.tlf.novell.com>
-References: <20120628180007.06bb3fd3@mantra.us.oracle.com>
-       <4FED7BD7020000780008CBFB@nat28.tlf.novell.com>
-Organization: Citrix Systems, Inc.
-X-Mailer: Evolution 3.2.2-1 
-MIME-Version: 1.0
-Cc: "Xen-devel@lists.xensource.com" <Xen-devel@lists.xensource.com>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [HYBRID]: XEN_EMULATE_PREFIX in user process
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Fri, 2012-06-29 at 08:56 +0100, Jan Beulich wrote:
-> >>> On 29.06.12 at 03:00, Mukesh Rathor <mukesh.rathor@oracle.com> wrote:
-> > BTW, for cpuid vmexit, if kernel mode I call pv_cpuid, if user mode, I
-> > just return cpuid values, as that's what would happen without the HVM
-> > container.
-> 
-> Which means you're not leveraging one of the things you could
-> gain from hybrid (after all, returning the native value to user
-> mode is one of the weaknesses of PV).
-
-cpuid masking could happen in the HVM layer too, couldn't it?
-
-Probably "XEN_EMULATE_PREFIX cpuid" and raw "cpuid" ought to return the
-same set of PV values in hybrid?
-
-Ian.
-
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1340957369.10942.74.camel@zakaz.uk.xensource.com> b/test/corpus/<1340957369.10942.74.camel@zakaz.uk.xensource.com>
deleted file mode 100644 (file)
index a322bf8..0000000
+++ /dev/null
@@ -1,160 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Jun 29 09:13:08 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 29 Jun 2012 09:13:08 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SkWKA-0000r4-1m
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 29 Jun 2012 09:13:08 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SkWGj-0006Ar-Or; Fri, 29 Jun 2012 08:09:33 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1SkWGi-0006Al-9p
-       for Xen-devel@lists.xensource.com; Fri, 29 Jun 2012 08:09:32 +0000
-Received: from [85.158.143.99:11811] by server-3.bemta-4.messagelabs.com id
-       19/B1-05808-BB26DEF4; Fri, 29 Jun 2012 08:09:31 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-14.tower-216.messagelabs.com!1340957370!20091207!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDM1Nzk=\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 4113 invoked from network); 29 Jun 2012 08:09:31 -0000
-Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-14.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
-       29 Jun 2012 08:09:31 -0000
-X-IronPort-AV: E=Sophos;i="4.77,497,1336348800"; d="scan'208";a="13283450"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       29 Jun 2012 08:09:30 +0000
-Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0;
-       Fri, 29 Jun 2012 09:09:30 +0100
-Message-ID: <1340957369.10942.74.camel@zakaz.uk.xensource.com>
-From: Ian Campbell <Ian.Campbell@citrix.com>
-To: Mukesh Rathor <mukesh.rathor@oracle.com>
-Date: Fri, 29 Jun 2012 09:09:29 +0100
-In-Reply-To: <20120628182602.6cc9b432@mantra.us.oracle.com>
-References: <20120628180007.06bb3fd3@mantra.us.oracle.com>
-       <20120629010903.GC4902@phenom.dumpdata.com>
-       <20120628182602.6cc9b432@mantra.us.oracle.com>
-Organization: Citrix Systems, Inc.
-X-Mailer: Evolution 3.2.2-1 
-MIME-Version: 1.0
-Cc: "Xen-devel@lists.xensource.com" <Xen-devel@lists.xensource.com>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>,
-       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [HYBRID]: XEN_EMULATE_PREFIX in user process
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Fri, 2012-06-29 at 02:26 +0100, Mukesh Rathor wrote:
-> On Thu, 28 Jun 2012 21:09:03 -0400
-> Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> wrote:
-> 
-> > On Thu, Jun 28, 2012 at 06:00:07PM -0700, Mukesh Rathor wrote:
-> > > Hi,
-> > > 
-> > > Booting latest upstream pv linux as dom0, I noticed dm_mapper, user
-> > > level process, is running with XEN_EMULATE_PREFIX cpuid. I am
-> > > wondering if the prefix is statically put there, or how its put
-> > > there?
-> > 
-> > That is impressive. It should be only be in the kernel via the pvops
-> > cpuid call which does this:
-> > 
-> >  252         asm(XEN_EMULATE_PREFIX "cpuid"
-> >  253                 : "=a" (*ax),
-> >  254                   "=b" (*bx),
-> >  255                   "=c" (*cx),
-> >  256                   "=d" (*dx)
-> >  257                 : "0" (*ax), "2" (*cx));
-> >  258 
-> > 
-> > 
-> > > 
-> > > For hybrid, the hvm container traps cpuid, so we don't need to
-> > > prefix cpuid. Less code if I don't have to worry about trapping the
-> > > invalid op. There seems places where the cpuid is run without the
-> > > xen prefix in user mode.
-> > 
-> > Right, you can make the .cpuid pvops call point to the native.
-> 
-> Yup. In the kernel I do that already.
-> 
-> > > 
-> > > BTW, for cpuid vmexit, if kernel mode I call pv_cpuid, if user
-> > > mode, I just return cpuid values, as that's what would happen
-> > > without the HVM container.
-> > 
-> > You mean in PV mode in user-space you would get the unfiltered cpuid
-> > value? Yes, that is true. Which is why I am surprised that dm_mapper
-> > (are you sure it is not a kernel thread?) is doing that.
-> 
-> User mode:
-> 
-> RIP: 0x0000000000400692 CS: 0x0033
-
-CS 0x033 could still be kernel mode on regular PV 64 bit, but I suppose
-not on hybrid?
-
-It's unlikely but not impossible for a userspace developer to have done
-some "Xen magic" and used the prefix in userspace.
-
-What version of dm_mapper do you have? I checked the version in Debian
-Sid and it doesn't do this (at least not directly).
-
-Are you able to run the dm_mapper process under gdb and inspect it to
-find the prefix?
-
-Ian.
-
-> 
-> [0]xkdb> dd 0x0000000000400680 32 0
-> 0000000000400680:  89f88953e5894855 db8500000000b9d3
-> 0000000000400690:  0f6e65780b0f0574 4e89045e890689a2
-> 
-> thanks,
-> Mukesh
-> 
-> 
-> 
-> _______________________________________________
-> Xen-devel mailing list
-> Xen-devel@lists.xen.org
-> http://lists.xen.org/xen-devel
-
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1341007454.5953.18.camel@dagon.hellion.org.uk> b/test/corpus/<1341007454.5953.18.camel@dagon.hellion.org.uk>
deleted file mode 100644 (file)
index 2e26d39..0000000
+++ /dev/null
@@ -1,115 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Jun 29 23:10:05 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 29 Jun 2012 23:10:05 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SkjO7-0003hF-1T
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 29 Jun 2012 23:10:05 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SkjIq-0000BZ-1y; Fri, 29 Jun 2012 22:04:36 +0000
-Received: from mail27.messagelabs.com ([193.109.254.147])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1SkjIo-0000BT-Rh
-       for Xen-devel@lists.xensource.com; Fri, 29 Jun 2012 22:04:35 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-12.tower-27.messagelabs.com!1341007468!9329632!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDM4NDg=\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 29174 invoked from network); 29 Jun 2012 22:04:29 -0000
-Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-12.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
-       29 Jun 2012 22:04:29 -0000
-X-IronPort-AV: E=Sophos;i="4.77,500,1336348800"; d="scan'208";a="13300620"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       29 Jun 2012 22:04:14 +0000
-Received: from [127.0.0.1] (10.80.16.67) by smtprelay.citrix.com
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0;
-       Fri, 29 Jun 2012 23:04:14 +0100
-Message-ID: <1341007454.5953.18.camel@dagon.hellion.org.uk>
-From: Ian Campbell <Ian.Campbell@citrix.com>
-To: Mukesh Rathor <mukesh.rathor@oracle.com>
-Date: Fri, 29 Jun 2012 23:04:14 +0100
-In-Reply-To: <20120629120738.425781e5@mantra.us.oracle.com>
-References: <20120628180007.06bb3fd3@mantra.us.oracle.com>
-       <20120629010903.GC4902@phenom.dumpdata.com>
-       <20120628182602.6cc9b432@mantra.us.oracle.com>
-       <1340957369.10942.74.camel@zakaz.uk.xensource.com>
-       <20120629111546.50e36f52@mantra.us.oracle.com>
-       <20120629120738.425781e5@mantra.us.oracle.com>
-Organization: Citrix Systems, Inc.
-X-Mailer: Evolution 3.2.2-1+b1 
-MIME-Version: 1.0
-Cc: "Xen-devel@lists.xensource.com" <Xen-devel@lists.xensource.com>,
-       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [HYBRID]: XEN_EMULATE_PREFIX in user process
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Fri, 2012-06-29 at 20:07 +0100, Mukesh Rathor wrote:
-> On Fri, 29 Jun 2012 11:15:46 -0700
-> Mukesh Rathor <mukesh.rathor@oracle.com> wrote:
-> > > It's unlikely but not impossible for a userspace developer to have
-> > > done some "Xen magic" and used the prefix in userspace.
-> > > 
-> > > What version of dm_mapper do you have? I checked the version in
-> > > Debian Sid and it doesn't do this (at least not directly).
-> > > 
-> > > Are you able to run the dm_mapper process under gdb and inspect it
-> > > to find the prefix?
-> > 
-> > Well, let me take that back. dm_mapper is the last printk, but it
-> > could be anything after that or that. 
-> > 
-> > Unfortunately, it's dom0 and during boot, so can't run gdb on it. I am
-> > hacking the kernel now to print every user process name in schedule.
-> 
-> Ah, it's "xen-detect" coming in right after dm_mapper. I see the
-> xen prefix in it. Hmm... let me see if I can add some run time check
-> for hybrid dom0, then won't have to worry about invalid_op trap. Less
-> code that way. That's the end goal anyways...
-
-I don't think reducing code should come at the expense of adding special
-cases for hybrid to userspace programs...
-
-I think you'll have to handle the invalid op, it can't be that much
-code, can it?
-
-Ian
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1341221345.4625.8.camel@zakaz.uk.xensource.com> b/test/corpus/<1341221345.4625.8.camel@zakaz.uk.xensource.com>
deleted file mode 100644 (file)
index 9c6c994..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-From xen-devel-bounces@lists.xen.org Mon Jul 02 10:34:08 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Mon, 02 Jul 2012 10:34:08 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1Sld18-0003IV-0h
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Mon, 02 Jul 2012 10:34:08 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SlcwQ-0003WQ-7k; Mon, 02 Jul 2012 09:29:10 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1SlcwO-0003WG-D6
-       for Xen-devel@lists.xensource.com; Mon, 02 Jul 2012 09:29:08 +0000
-Received: from [85.158.143.35:63694] by server-1.bemta-4.messagelabs.com id
-       E9/B0-24392-3E961FF4; Mon, 02 Jul 2012 09:29:07 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-15.tower-21.messagelabs.com!1341221346!13852451!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDQxMzk=\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 2616 invoked from network); 2 Jul 2012 09:29:07 -0000
-Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-15.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
-       2 Jul 2012 09:29:07 -0000
-X-IronPort-AV: E=Sophos;i="4.77,509,1336348800"; d="scan'208";a="13316741"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       02 Jul 2012 09:29:06 +0000
-Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0; Mon, 2 Jul 2012
-       10:29:06 +0100
-Message-ID: <1341221345.4625.8.camel@zakaz.uk.xensource.com>
-From: Ian Campbell <Ian.Campbell@citrix.com>
-To: Jan Beulich <JBeulich@suse.com>
-Date: Mon, 2 Jul 2012 10:29:05 +0100
-In-Reply-To: <4FF177A3020000780008D091@nat28.tlf.novell.com>
-References: <20120628180007.06bb3fd3@mantra.us.oracle.com>
-       <20120629010903.GC4902@phenom.dumpdata.com>
-       <20120628182602.6cc9b432@mantra.us.oracle.com>
-       <1340957369.10942.74.camel@zakaz.uk.xensource.com>
-       <20120629111546.50e36f52@mantra.us.oracle.com>
-       <20120629120738.425781e5@mantra.us.oracle.com>
-       <1341007454.5953.18.camel@dagon.hellion.org.uk>
-       <20120629155000.5152d544@mantra.us.oracle.com>
-       <4FF177A3020000780008D091@nat28.tlf.novell.com>
-Organization: Citrix Systems, Inc.
-X-Mailer: Evolution 3.2.2-1 
-MIME-Version: 1.0
-Cc: "Xen-devel@lists.xensource.com" <Xen-devel@lists.xensource.com>,
-       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [HYBRID]: XEN_EMULATE_PREFIX in user process
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Mon, 2012-07-02 at 09:27 +0100, Jan Beulich wrote:
-> >>> On 30.06.12 at 00:50, Mukesh Rathor <mukesh.rathor@oracle.com> wrote:
-> > On Fri, 29 Jun 2012 15:04:14 -0700 (PDT)
-> > Ian Campbell <Ian.Campbell@citrix.com> wrote:
-> > 
-> >> On Fri, 2012-06-29 at 20:07 +0100, Mukesh Rathor wrote:
-> >> 
-> >> I don't think reducing code should come at the expense of adding
-> >> special cases for hybrid to userspace programs...
-> >> 
-> >> I think you'll have to handle the invalid op, it can't be that much
-> >> code, can it?
-> > 
-> > Not a whole lot of code, but other than xen-detect, just curious,
-> > what is the possibility of any user level using XEN_EMULATE_PREFIX cpuid?
-> 
-> Obviously any code cloned from xen-detect could, i.e. anything
-> that tries to be Xen-PV-aware.
-
-Which shouldn't be all that much code but we can't really just declare
-it to be wrong...
-
-Ian.
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1343051870.5797.36.camel@zakaz.uk.xensource.com> b/test/corpus/<1343051870.5797.36.camel@zakaz.uk.xensource.com>
deleted file mode 100644 (file)
index e4382e2..0000000
+++ /dev/null
@@ -1,197 +0,0 @@
-From xen-devel-bounces@lists.xen.org Mon Jul 23 15:03:44 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Mon, 23 Jul 2012 15:03:44 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1StJEY-00007n-GV
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Mon, 23 Jul 2012 15:03:44 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1StJ9i-0007Vj-7B; Mon, 23 Jul 2012 13:58:38 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1StJ9g-0007Vd-Fi
-       for xen-devel@lists.xen.org; Mon, 23 Jul 2012 13:58:36 +0000
-Received: from [85.158.143.35:7524] by server-3.bemta-4.messagelabs.com id
-       4A/D7-01511-B885D005; Mon, 23 Jul 2012 13:58:35 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-16.tower-21.messagelabs.com!1343051914!14090064!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDY0MDM=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.2; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 13964 invoked from network); 23 Jul 2012 13:58:34 -0000
-Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-16.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
-       23 Jul 2012 13:58:34 -0000
-X-IronPort-AV: E=Sophos;i="4.77,639,1336348800"; d="scan'208";a="13655797"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       23 Jul 2012 13:57:52 +0000
-Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0;
-       Mon, 23 Jul 2012 14:57:52 +0100
-Message-ID: <1343051870.5797.36.camel@zakaz.uk.xensource.com>
-From: Ian Campbell <Ian.Campbell@citrix.com>
-To: Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-Date: Mon, 23 Jul 2012 14:57:50 +0100
-In-Reply-To: <alpine.DEB.2.02.1206071214020.2415@kaball.uk.xensource.com>
-References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
-       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-       <1338565207-2888-36-git-send-email-ian.campbell@citrix.com>
-       <alpine.DEB.2.02.1206071214020.2415@kaball.uk.xensource.com>
-Organization: Citrix Systems, Inc.
-X-Mailer: Evolution 3.4.3-1 
-MIME-Version: 1.0
-Cc: Tim Deegan <tim@xen.org>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 36/38] libxc: add ARM support to xc_dom (PV
- domain building)
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Thu, 2012-06-07 at 12:38 +0100, Stefano Stabellini wrote:
-> > @@ -294,7 +295,7 @@ static inline xen_pfn_t xc_dom_p2m_guest(struct xc_dom_image *dom,
-> >  {
-> >      if (xc_dom_feature_translated(dom))
-> >          return pfn;
-> > -    return dom->p2m_host[pfn];
-> > +    return dom->p2m_host[pfn - dom->rambase_pfn];
-> >  }
-> 
-> I take that rambase_pfn is the offset in the guest physical address
-> space where the ram is located. It would be nice to write it down.
-
-I've added this comment to the struct where rambase_pfn is defined:
-     * A PV guest has a single contiguous block of physical RAM,
-     * consisting of total_pages starting at rambase_pfn.
-
-[...]
-
-> > +    /* setup initial p2m */
-> > +    for ( pfn = 0; pfn < dom->total_pages; pfn++ )
-> > +        dom->p2m_host[pfn] = pfn + dom->rambase_pfn;
-> 
-> uhm.. so maybe rambase_pfn is the offset in the machine address space where
-> the guest ram has been allocated?
-
-ARM guests are hybrid so there isn't really a distinction between MFN
-and PFN space as seen by the tools. We always deal in guest PFNs in the
-tools (only the hypervisor can see the MFNs).
-
-This is a bit confusing for a hybrid guest because the generic xc_dom_*
-stuff expects to have a p2m, so we setup this weird 1:1 thing (actually
-1:rambase_pfn+1 just to add to the confusion).
-
-I've added a comment next to the definition of p2m_host:
-    /*
-     * p2m_host maps guest physical addresses an offset from
-     * rambase_pfn (see below) into gfns.
-     *
-     * For a pure PV guest this means that it maps GPFNs into MFNs for
-     * a hybrid guest this means that it maps GPFNs to GPFNS.
-     *
-     * Note that the input is offset by rambase.
-     */
-
-I'm not sure this doesn't just add to the confusion.
-
-Also I fully expect Tim to complain that I've got my *FN terminology all
-wrong :-P.
-
-> > diff --git a/tools/libxc/xc_dom_armzimageloader.c b/tools/libxc/xc_dom_armzimageloader.c
-> > new file mode 100644
-> > index 0000000..220176d
-> > --- /dev/null
-> > +++ b/tools/libxc/xc_dom_armzimageloader.c
-[...]
-> > +#include "xg_private.h"
-> > +#include "xc_dom.h"
-> > +
-> > +#include <arpa/inet.h> /* XXX ntohl is not the right function... */
-> 
-> Yes, you are right, we should write a be32_to_cpu (the ones in Xen, QEMU
-> and Linux are GPLv2 rather than LGLPv2).
-
-I wonder if we can/should just declare that we handle only native endian
-zImages.
-
-> > diff --git a/tools/libxc/xc_dom_core.c b/tools/libxc/xc_dom_core.c
-> > index fea9de5..b0d48d5 100644
-> > --- a/tools/libxc/xc_dom_core.c
-> > +++ b/tools/libxc/xc_dom_core.c
-> > @@ -307,15 +307,17 @@ void *xc_dom_pfn_to_ptr(struct xc_dom_image *dom, xen_pfn_t pfn,
-> >                          xen_pfn_t count)
-> >  {
-> >      struct xc_dom_phys *phys;
-> > +    xen_pfn_t offset;
-> >      unsigned int page_shift = XC_DOM_PAGE_SHIFT(dom);
-> >      char *mode = "unset";
-> >
-> > -    if ( pfn > dom->total_pages ||    /* multiple checks to avoid overflows */
-> > +    offset = pfn-dom->rambase_pfn;
-> 
-> spaces around the '-' please
-
-Done.
-
-> > +    if ( offset > dom->total_pages ||    /* multiple checks to avoid overflows */
-> >           count > dom->total_pages ||
-> > -         pfn > dom->total_pages - count )
-> > +         offset > dom->total_pages - count )
-> >      {
-> > -        DOMPRINTF("%s: pfn out of range (0x%" PRIpfn " > 0x%" PRIpfn ")",
-> > -                  __FUNCTION__, pfn, dom->total_pages);
-> > +        DOMPRINTF("%s: pfn %"PRI_xen_pfn" out of range (0x%" PRIpfn " > 0x%" PRIpfn ")",
-> > +                  __FUNCTION__, pfn, offset, dom->total_pages);
-> >          return NULL;
-> >      }
-> >
-> > @@ -599,6 +601,8 @@ struct xc_dom_image *xc_dom_allocate(xc_interface *xch,
-> >      dom->parms.virt_hv_start_low = UNSET_ADDR;
-> >      dom->parms.elf_paddr_offset = UNSET_ADDR;
-> >
-> > +    dom->rambase_pfn = 0;
-> > +
-> >      dom->alloc_malloc += sizeof(*dom);
-> >      return dom;
-> 
-> There is no need to explicitly set rambase_pfn to 0, because the whole
-> dom struct is memset to 0 few lines above.
-
-Removed.
-
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1343052688.5797.38.camel@zakaz.uk.xensource.com> b/test/corpus/<1343052688.5797.38.camel@zakaz.uk.xensource.com>
deleted file mode 100644 (file)
index e5f025a..0000000
+++ /dev/null
@@ -1,114 +0,0 @@
-From xen-devel-bounces@lists.xen.org Mon Jul 23 15:16:30 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Mon, 23 Jul 2012 15:16:30 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1StJQy-0000BP-0K
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Mon, 23 Jul 2012 15:16:30 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1StJMD-0007qS-MG; Mon, 23 Jul 2012 14:11:33 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1StJMC-0007qN-CR
-       for xen-devel@lists.xen.org; Mon, 23 Jul 2012 14:11:32 +0000
-Received: from [85.158.139.83:33653] by server-7.bemta-5.messagelabs.com id
-       C0/BC-28276-39B5D005; Mon, 23 Jul 2012 14:11:31 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-3.tower-182.messagelabs.com!1343052690!28188844!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDY0MDM=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.2; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 1886 invoked from network); 23 Jul 2012 14:11:30 -0000
-Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-3.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
-       23 Jul 2012 14:11:30 -0000
-X-IronPort-AV: E=Sophos;i="4.77,639,1336348800"; d="scan'208";a="13656090"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       23 Jul 2012 14:11:30 +0000
-Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0;
-       Mon, 23 Jul 2012 15:11:30 +0100
-Message-ID: <1343052688.5797.38.camel@zakaz.uk.xensource.com>
-From: Ian Campbell <Ian.Campbell@citrix.com>
-To: Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-Date: Mon, 23 Jul 2012 15:11:28 +0100
-In-Reply-To: <1343051870.5797.36.camel@zakaz.uk.xensource.com>
-References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
-       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-       <1338565207-2888-36-git-send-email-ian.campbell@citrix.com>
-       <alpine.DEB.2.02.1206071214020.2415@kaball.uk.xensource.com>
-       <1343051870.5797.36.camel@zakaz.uk.xensource.com>
-Organization: Citrix Systems, Inc.
-X-Mailer: Evolution 3.4.3-1 
-MIME-Version: 1.0
-Cc: "Tim \(Xen.org\)" <tim@xen.org>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 36/38] libxc: add ARM support to xc_dom (PV
- domain building)
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-
-> > > diff --git a/tools/libxc/xc_dom_armzimageloader.c b/tools/libxc/xc_dom_armzimageloader.c
-> > > new file mode 100644
-> > > index 0000000..220176d
-> > > --- /dev/null
-> > > +++ b/tools/libxc/xc_dom_armzimageloader.c
-> [...]
-> > > +#include "xg_private.h"
-> > > +#include "xc_dom.h"
-> > > +
-> > > +#include <arpa/inet.h> /* XXX ntohl is not the right function... */
-> > 
-> > Yes, you are right, we should write a be32_to_cpu (the ones in Xen, QEMU
-> > and Linux are GPLv2 rather than LGLPv2).
-> 
-> I wonder if we can/should just declare that we handle only native endian
-> zImages.
-
-Except this is used with the DTB and that is what it is. :-(
-
-We have ./tools/blktap2/drivers/bswap.h already which maybe we can make
-more generic?
-
-TBH, given this is internal to this one loader I'm very tempted to just
-keep using ntohl and friends.
-
-Ian
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1343054850.5797.40.camel@zakaz.uk.xensource.com> b/test/corpus/<1343054850.5797.40.camel@zakaz.uk.xensource.com>
deleted file mode 100644 (file)
index 1b463e7..0000000
+++ /dev/null
@@ -1,99 +0,0 @@
-From xen-devel-bounces@lists.xen.org Mon Jul 23 15:51:44 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Mon, 23 Jul 2012 15:51:44 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1StJz1-0000IS-Dx
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Mon, 23 Jul 2012 15:51:44 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1StJv4-0000qY-4W; Mon, 23 Jul 2012 14:47:34 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1StJv2-0000qO-Po
-       for xen-devel@lists.xen.org; Mon, 23 Jul 2012 14:47:32 +0000
-Received: from [85.158.143.35:54903] by server-1.bemta-4.messagelabs.com id
-       24/1A-24392-4046D005; Mon, 23 Jul 2012 14:47:32 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-9.tower-21.messagelabs.com!1343054851!5585059!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDY0MDM=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.2; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 8777 invoked from network); 23 Jul 2012 14:47:31 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-9.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
-       23 Jul 2012 14:47:31 -0000
-X-IronPort-AV: E=Sophos;i="4.77,639,1336348800"; d="scan'208";a="13657092"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       23 Jul 2012 14:47:31 +0000
-Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0;
-       Mon, 23 Jul 2012 15:47:31 +0100
-Message-ID: <1343054850.5797.40.camel@zakaz.uk.xensource.com>
-From: Ian Campbell <Ian.Campbell@citrix.com>
-To: David Vrabel <dvrabel@cantab.net>
-Date: Mon, 23 Jul 2012 15:47:30 +0100
-In-Reply-To: <500D61BF.4080508@cantab.net>
-References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
-       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-       <1338565207-2888-36-git-send-email-ian.campbell@citrix.com>
-       <alpine.DEB.2.02.1206071214020.2415@kaball.uk.xensource.com>
-       <1343051870.5797.36.camel@zakaz.uk.xensource.com>
-       <1343052688.5797.38.camel@zakaz.uk.xensource.com>
-       <500D61BF.4080508@cantab.net>
-Organization: Citrix Systems, Inc.
-X-Mailer: Evolution 3.4.3-1 
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
-       "Tim \(Xen.org\)" <tim@xen.org>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 36/38] libxc: add ARM support to xc_dom (PV
- domain building)
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Mon, 2012-07-23 at 15:37 +0100, David Vrabel wrote:
-> You will likely need to link to libfdt in the future and you will need
-> to provide cpu_to_fdt32() and fdt32_to_cpu() etc. implementations (like
-> include/xen/libfdt/libfdt_env.h for Xen itself).
-
-Good point.
-
-I'm now more tempted to defer this until then ;-)
-
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1343316846-25860-1-git-send-email-stefano.stabellini@eu.citrix.com> b/test/corpus/<1343316846-25860-1-git-send-email-stefano.stabellini@eu.citrix.com>
deleted file mode 100644 (file)
index c8d92c5..0000000
+++ /dev/null
@@ -1,294 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Jul 26 16:38:19 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 26 Jul 2012 16:38:19 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SuQ8m-0001T1-Il
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 26 Jul 2012 16:38:19 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SuQ5a-0004aA-MS; Thu, 26 Jul 2012 15:34:58 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1SuQ5Y-0004YZ-2Z
-       for xen-devel@lists.xensource.com; Thu, 26 Jul 2012 15:34:56 +0000
-Received: from [85.158.143.35:10664] by server-3.bemta-4.messagelabs.com id
-       7F/A9-01511-F9361105; Thu, 26 Jul 2012 15:34:55 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-3.tower-21.messagelabs.com!1343316891!14677221!3
-X-Originating-IP: [66.165.176.89]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNTk5NzY=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.2; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 14438 invoked from network); 26 Jul 2012 15:34:55 -0000
-Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
-       by server-3.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
-       26 Jul 2012 15:34:55 -0000
-X-IronPort-AV: E=Sophos;i="4.77,659,1336363200"; d="scan'208";a="32688370"
-Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
-       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       26 Jul 2012 11:34:50 -0400
-Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
-       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
-       Thu, 26 Jul 2012 11:34:50 -0400
-Received: from kaball.uk.xensource.com ([10.80.2.59])  by
-       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
-       <stefano.stabellini@eu.citrix.com>)     id 1SuQ5M-0006qa-K1;
-       Thu, 26 Jul 2012 16:34:44 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-To: <linux-kernel@vger.kernel.org>
-Date: Thu, 26 Jul 2012 16:33:43 +0100
-Message-ID: <1343316846-25860-1-git-send-email-stefano.stabellini@eu.citrix.com>
-X-Mailer: git-send-email 1.7.9.5
-In-Reply-To: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
-References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
-MIME-Version: 1.0
-Cc: xen-devel@lists.xensource.com, linaro-dev@lists.linaro.org,
-       Ian.Campbell@citrix.com, arnd@arndb.de, konrad.wilk@oracle.com,
-       catalin.marinas@arm.com,
-       Stefano Stabellini <stefano.stabellini@eu.citrix.com>,
-       tim@xen.org, linux-arm-kernel@lists.infradead.org
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
-Subject: [Xen-devel] [PATCH 01/24] arm: initial Xen support
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-- Basic hypervisor.h and interface.h definitions.
-- Skelethon enlighten.c, set xen_start_info to an empty struct.
-- Do not limit xen_initial_domain to PV guests.
-
-The new code only compiles when CONFIG_XEN is set, that is going to be
-added to arch/arm/Kconfig in a later patch.
-
-Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
----
- arch/arm/Makefile                     |    1 +
- arch/arm/include/asm/hypervisor.h     |    6 +++
- arch/arm/include/asm/xen/hypervisor.h |   19 ++++++++++
- arch/arm/include/asm/xen/interface.h  |   64 +++++++++++++++++++++++++++++++++
- arch/arm/xen/Makefile                 |    1 +
- arch/arm/xen/enlighten.c              |   35 ++++++++++++++++++
- include/xen/xen.h                     |    2 +-
- 7 files changed, 127 insertions(+), 1 deletions(-)
- create mode 100644 arch/arm/include/asm/hypervisor.h
- create mode 100644 arch/arm/include/asm/xen/hypervisor.h
- create mode 100644 arch/arm/include/asm/xen/interface.h
- create mode 100644 arch/arm/xen/Makefile
- create mode 100644 arch/arm/xen/enlighten.c
-
-diff --git a/arch/arm/Makefile b/arch/arm/Makefile
-index 0298b00..70aaa82 100644
---- a/arch/arm/Makefile
-+++ b/arch/arm/Makefile
-@@ -246,6 +246,7 @@ endif
- core-$(CONFIG_FPE_NWFPE)      += arch/arm/nwfpe/
- core-$(CONFIG_FPE_FASTFPE)    += $(FASTFPE_OBJ)
- core-$(CONFIG_VFP)            += arch/arm/vfp/
-+core-$(CONFIG_XEN)            += arch/arm/xen/
- # If we have a machine-specific directory, then include it in the build.
- core-y                                += arch/arm/kernel/ arch/arm/mm/ arch/arm/common/
-diff --git a/arch/arm/include/asm/hypervisor.h b/arch/arm/include/asm/hypervisor.h
-new file mode 100644
-index 0000000..b90d9e5
---- /dev/null
-+++ b/arch/arm/include/asm/hypervisor.h
-@@ -0,0 +1,6 @@
-+#ifndef _ASM_ARM_HYPERVISOR_H
-+#define _ASM_ARM_HYPERVISOR_H
-+
-+#include <asm/xen/hypervisor.h>
-+
-+#endif
-diff --git a/arch/arm/include/asm/xen/hypervisor.h b/arch/arm/include/asm/xen/hypervisor.h
-new file mode 100644
-index 0000000..d7ab99a
---- /dev/null
-+++ b/arch/arm/include/asm/xen/hypervisor.h
-@@ -0,0 +1,19 @@
-+#ifndef _ASM_ARM_XEN_HYPERVISOR_H
-+#define _ASM_ARM_XEN_HYPERVISOR_H
-+
-+extern struct shared_info *HYPERVISOR_shared_info;
-+extern struct start_info *xen_start_info;
-+
-+/* Lazy mode for batching updates / context switch */
-+enum paravirt_lazy_mode {
-+      PARAVIRT_LAZY_NONE,
-+      PARAVIRT_LAZY_MMU,
-+      PARAVIRT_LAZY_CPU,
-+};
-+
-+static inline enum paravirt_lazy_mode paravirt_get_lazy_mode(void)
-+{
-+      return PARAVIRT_LAZY_NONE;
-+}
-+
-+#endif /* _ASM_ARM_XEN_HYPERVISOR_H */
-diff --git a/arch/arm/include/asm/xen/interface.h b/arch/arm/include/asm/xen/interface.h
-new file mode 100644
-index 0000000..6c3ab59
---- /dev/null
-+++ b/arch/arm/include/asm/xen/interface.h
-@@ -0,0 +1,64 @@
-+/******************************************************************************
-+ * Guest OS interface to ARM Xen.
-+ *
-+ * Stefano Stabellini <stefano.stabellini@eu.citrix.com>, Citrix, 2011
-+ */
-+
-+#ifndef _ASM_ARM_XEN_INTERFACE_H
-+#define _ASM_ARM_XEN_INTERFACE_H
-+
-+#include <linux/types.h>
-+
-+#define __DEFINE_GUEST_HANDLE(name, type) \
-+      typedef type * __guest_handle_ ## name
-+
-+#define DEFINE_GUEST_HANDLE_STRUCT(name) \
-+      __DEFINE_GUEST_HANDLE(name, struct name)
-+#define DEFINE_GUEST_HANDLE(name) __DEFINE_GUEST_HANDLE(name, name)
-+#define GUEST_HANDLE(name)        __guest_handle_ ## name
-+
-+#define set_xen_guest_handle(hnd, val)                        \
-+      do {                                            \
-+              if (sizeof(hnd) == 8)                   \
-+                      *(uint64_t *)&(hnd) = 0;        \
-+              (hnd) = val;                            \
-+      } while (0)
-+
-+#ifndef __ASSEMBLY__
-+/* Guest handles for primitive C types. */
-+__DEFINE_GUEST_HANDLE(uchar, unsigned char);
-+__DEFINE_GUEST_HANDLE(uint,  unsigned int);
-+__DEFINE_GUEST_HANDLE(ulong, unsigned long);
-+DEFINE_GUEST_HANDLE(char);
-+DEFINE_GUEST_HANDLE(int);
-+DEFINE_GUEST_HANDLE(long);
-+DEFINE_GUEST_HANDLE(void);
-+DEFINE_GUEST_HANDLE(uint64_t);
-+DEFINE_GUEST_HANDLE(uint32_t);
-+
-+/* Maximum number of virtual CPUs in multi-processor guests. */
-+#define MAX_VIRT_CPUS 1
-+
-+struct arch_vcpu_info { };
-+struct arch_shared_info { };
-+
-+/* XXX: Move pvclock definitions some place arch independent */
-+struct pvclock_vcpu_time_info {
-+      u32   version;
-+      u32   pad0;
-+      u64   tsc_timestamp;
-+      u64   system_time;
-+      u32   tsc_to_system_mul;
-+      s8    tsc_shift;
-+      u8    flags;
-+      u8    pad[2];
-+} __attribute__((__packed__)); /* 32 bytes */
-+
-+struct pvclock_wall_clock {
-+      u32   version;
-+      u32   sec;
-+      u32   nsec;
-+} __attribute__((__packed__));
-+#endif
-+
-+#endif /* _ASM_ARM_XEN_INTERFACE_H */
-diff --git a/arch/arm/xen/Makefile b/arch/arm/xen/Makefile
-new file mode 100644
-index 0000000..0bad594
---- /dev/null
-+++ b/arch/arm/xen/Makefile
-@@ -0,0 +1 @@
-+obj-y         := enlighten.o
-diff --git a/arch/arm/xen/enlighten.c b/arch/arm/xen/enlighten.c
-new file mode 100644
-index 0000000..d27c2a6
---- /dev/null
-+++ b/arch/arm/xen/enlighten.c
-@@ -0,0 +1,35 @@
-+#include <xen/xen.h>
-+#include <xen/interface/xen.h>
-+#include <xen/interface/memory.h>
-+#include <xen/platform_pci.h>
-+#include <asm/xen/hypervisor.h>
-+#include <asm/xen/hypercall.h>
-+#include <linux/module.h>
-+
-+struct start_info _xen_start_info;
-+struct start_info *xen_start_info = &_xen_start_info;
-+EXPORT_SYMBOL_GPL(xen_start_info);
-+
-+enum xen_domain_type xen_domain_type = XEN_NATIVE;
-+EXPORT_SYMBOL_GPL(xen_domain_type);
-+
-+struct shared_info xen_dummy_shared_info;
-+struct shared_info *HYPERVISOR_shared_info = (void *)&xen_dummy_shared_info;
-+
-+DEFINE_PER_CPU(struct vcpu_info *, xen_vcpu);
-+
-+/* XXX: to be removed */
-+__read_mostly int xen_have_vector_callback;
-+EXPORT_SYMBOL_GPL(xen_have_vector_callback);
-+
-+int xen_platform_pci_unplug = XEN_UNPLUG_ALL;
-+EXPORT_SYMBOL_GPL(xen_platform_pci_unplug);
-+
-+int xen_remap_domain_mfn_range(struct vm_area_struct *vma,
-+                             unsigned long addr,
-+                             unsigned long mfn, int nr,
-+                             pgprot_t prot, unsigned domid)
-+{
-+      return -ENOSYS;
-+}
-+EXPORT_SYMBOL_GPL(xen_remap_domain_mfn_range);
-diff --git a/include/xen/xen.h b/include/xen/xen.h
-index a164024..2c0d3a5 100644
---- a/include/xen/xen.h
-+++ b/include/xen/xen.h
-@@ -23,7 +23,7 @@ extern enum xen_domain_type xen_domain_type;
- #include <xen/interface/xen.h>
- #include <asm/xen/hypervisor.h>
--#define xen_initial_domain()  (xen_pv_domain() && \
-+#define xen_initial_domain()  (xen_domain() && \
-                                xen_start_info->flags & SIF_INITDOMAIN)
- #else  /* !CONFIG_XEN_DOM0 */
- #define xen_initial_domain()  (0)
--- 
-1.7.2.5
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1343316846-25860-10-git-send-email-stefano.stabellini@eu.citrix.com> b/test/corpus/<1343316846-25860-10-git-send-email-stefano.stabellini@eu.citrix.com>
deleted file mode 100644 (file)
index 44cd1c4..0000000
+++ /dev/null
@@ -1,127 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Jul 26 16:39:07 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 26 Jul 2012 16:39:07 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SuQ9W-0001V3-1d
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 26 Jul 2012 16:39:07 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SuQ5f-0004fH-Pa; Thu, 26 Jul 2012 15:35:03 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1SuQ5c-0004bw-W6
-       for xen-devel@lists.xensource.com; Thu, 26 Jul 2012 15:35:01 +0000
-Received: from [85.158.139.83:17907] by server-12.bemta-5.messagelabs.com id
-       A6/A4-25233-4A361105; Thu, 26 Jul 2012 15:35:00 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-8.tower-182.messagelabs.com!1343316896!17525940!2
-X-Originating-IP: [66.165.176.63]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyNjczNDY=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.2; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 26664 invoked from network); 26 Jul 2012 15:34:59 -0000
-Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
-       by server-8.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
-       26 Jul 2012 15:34:59 -0000
-X-IronPort-AV: E=Sophos;i="4.77,659,1336363200"; d="scan'208";a="203308474"
-Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
-       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       26 Jul 2012 11:34:55 -0400
-Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
-       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
-       Thu, 26 Jul 2012 11:34:56 -0400
-Received: from kaball.uk.xensource.com ([10.80.2.59])  by
-       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
-       <stefano.stabellini@eu.citrix.com>)     id 1SuQ5N-0006qa-1j;
-       Thu, 26 Jul 2012 16:34:45 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-To: <linux-kernel@vger.kernel.org>
-Date: Thu, 26 Jul 2012 16:33:52 +0100
-Message-ID: <1343316846-25860-10-git-send-email-stefano.stabellini@eu.citrix.com>
-X-Mailer: git-send-email 1.7.9.5
-In-Reply-To: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
-References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
-MIME-Version: 1.0
-Cc: xen-devel@lists.xensource.com, linaro-dev@lists.linaro.org,
-       Ian.Campbell@citrix.com, arnd@arndb.de, konrad.wilk@oracle.com,
-       catalin.marinas@arm.com,
-       Stefano Stabellini <stefano.stabellini@eu.citrix.com>,
-       tim@xen.org, linux-arm-kernel@lists.infradead.org
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: [Xen-devel] [PATCH 10/24] xen: do not compile manage, balloon, pci,
-       acpi and cpu_hotplug on ARM
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
----
- drivers/xen/Makefile |    9 ++++++---
- 1 files changed, 6 insertions(+), 3 deletions(-)
-
-diff --git a/drivers/xen/Makefile b/drivers/xen/Makefile
-index fc34886..0cfa6c47 100644
---- a/drivers/xen/Makefile
-+++ b/drivers/xen/Makefile
-@@ -1,11 +1,15 @@
--obj-y += grant-table.o features.o events.o manage.o balloon.o
-+ifneq ($(CONFIG_ARM),y)
-+obj-y += manage.o balloon.o
-+obj-$(CONFIG_XEN_DOM0)                        += pci.o acpi.o
-+obj-$(CONFIG_HOTPLUG_CPU)             += cpu_hotplug.o
-+endif
-+obj-y += grant-table.o features.o events.o
- obj-y += xenbus/
- nostackp := $(call cc-option, -fno-stack-protector)
- CFLAGS_features.o                     := $(nostackp)
- obj-$(CONFIG_BLOCK)                   += biomerge.o
--obj-$(CONFIG_HOTPLUG_CPU)             += cpu_hotplug.o
- obj-$(CONFIG_XEN_XENCOMM)             += xencomm.o
- obj-$(CONFIG_XEN_BALLOON)             += xen-balloon.o
- obj-$(CONFIG_XEN_SELFBALLOONING)      += xen-selfballoon.o
-@@ -17,7 +21,6 @@ obj-$(CONFIG_XEN_SYS_HYPERVISOR)     += sys-hypervisor.o
- obj-$(CONFIG_XEN_PVHVM)                       += platform-pci.o
- obj-$(CONFIG_XEN_TMEM)                        += tmem.o
- obj-$(CONFIG_SWIOTLB_XEN)             += swiotlb-xen.o
--obj-$(CONFIG_XEN_DOM0)                        += pci.o acpi.o
- obj-$(CONFIG_XEN_PCIDEV_BACKEND)      += xen-pciback/
- obj-$(CONFIG_XEN_PRIVCMD)             += xen-privcmd.o
- obj-$(CONFIG_XEN_ACPI_PROCESSOR)      += xen-acpi-processor.o
--- 
-1.7.2.5
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1343316846-25860-11-git-send-email-stefano.stabellini@eu.citrix.com> b/test/corpus/<1343316846-25860-11-git-send-email-stefano.stabellini@eu.citrix.com>
deleted file mode 100644 (file)
index f185b31..0000000
+++ /dev/null
@@ -1,117 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Jul 26 17:00:22 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 26 Jul 2012 17:00:22 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SuQTz-0001g1-Dq
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 26 Jul 2012 17:00:22 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SuQR1-0007wd-2z; Thu, 26 Jul 2012 15:57:07 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1SuQQy-0007vO-Tf
-       for xen-devel@lists.xensource.com; Thu, 26 Jul 2012 15:57:05 +0000
-Received: from [85.158.139.83:53029] by server-10.bemta-5.messagelabs.com id
-       07/E8-02190-0D861105; Thu, 26 Jul 2012 15:57:04 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-5.tower-182.messagelabs.com!1343318222!28861239!1
-X-Originating-IP: [66.165.176.89]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNTk5NzY=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.2; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 16681 invoked from network); 26 Jul 2012 15:57:03 -0000
-Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
-       by server-5.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
-       26 Jul 2012 15:57:03 -0000
-X-IronPort-AV: E=Sophos;i="4.77,659,1336363200"; d="scan'208";a="32691208"
-Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
-       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       26 Jul 2012 11:57:01 -0400
-Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
-       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
-       Thu, 26 Jul 2012 11:57:01 -0400
-Received: from kaball.uk.xensource.com ([10.80.2.59])  by
-       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
-       <stefano.stabellini@eu.citrix.com>)     id 1SuQ5N-0006qa-2M;
-       Thu, 26 Jul 2012 16:34:45 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-To: <linux-kernel@vger.kernel.org>
-Date: Thu, 26 Jul 2012 16:33:53 +0100
-Message-ID: <1343316846-25860-11-git-send-email-stefano.stabellini@eu.citrix.com>
-X-Mailer: git-send-email 1.7.9.5
-In-Reply-To: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
-References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
-MIME-Version: 1.0
-Cc: xen-devel@lists.xensource.com, linaro-dev@lists.linaro.org,
-       Ian.Campbell@citrix.com, arnd@arndb.de, konrad.wilk@oracle.com,
-       catalin.marinas@arm.com,
-       Stefano Stabellini <stefano.stabellini@eu.citrix.com>,
-       tim@xen.org, linux-arm-kernel@lists.infradead.org
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: [Xen-devel] [PATCH 11/24] xen/arm: introduce CONFIG_XEN on ARM
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
----
- arch/arm/Kconfig |   10 ++++++++++
- 1 files changed, 10 insertions(+), 0 deletions(-)
-
-diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
-index a91009c..9c54cb4 100644
---- a/arch/arm/Kconfig
-+++ b/arch/arm/Kconfig
-@@ -2228,6 +2228,16 @@ config NEON
-         Say Y to include support code for NEON, the ARMv7 Advanced SIMD
-         Extension.
-+config XEN_DOM0
-+      def_bool y
-+
-+config XEN
-+      bool "Xen guest support on ARM"
-+      depends on ARM && OF
-+      select XEN_DOM0
-+      help
-+        Say Y if you want to run Linux in a Virtual Machine on Xen on ARM.
-+
- endmenu
- menu "Userspace binary formats"
--- 
-1.7.2.5
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1343316846-25860-12-git-send-email-stefano.stabellini@eu.citrix.com> b/test/corpus/<1343316846-25860-12-git-send-email-stefano.stabellini@eu.citrix.com>
deleted file mode 100644 (file)
index ebb5aec..0000000
+++ /dev/null
@@ -1,197 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Jul 26 17:00:15 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 26 Jul 2012 17:00:15 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SuQTx-0001fx-QA
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 26 Jul 2012 17:00:15 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SuQR3-0007yC-Vw; Thu, 26 Jul 2012 15:57:09 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1SuQR1-0007wZ-68
-       for xen-devel@lists.xensource.com; Thu, 26 Jul 2012 15:57:07 +0000
-Received: from [85.158.138.51:35910] by server-5.bemta-3.messagelabs.com id
-       FB/05-28237-2D861105; Thu, 26 Jul 2012 15:57:06 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-5.tower-174.messagelabs.com!1343318221!29038721!2
-X-Originating-IP: [66.165.176.63]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyNjczNDY=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.2; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 24327 invoked from network); 26 Jul 2012 15:57:05 -0000
-Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
-       by server-5.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
-       26 Jul 2012 15:57:05 -0000
-X-IronPort-AV: E=Sophos;i="4.77,659,1336363200"; d="scan'208";a="203311712"
-Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
-       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       26 Jul 2012 11:56:55 -0400
-Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
-       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
-       Thu, 26 Jul 2012 11:56:55 -0400
-Received: from kaball.uk.xensource.com ([10.80.2.59])  by
-       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
-       <stefano.stabellini@eu.citrix.com>)     id 1SuQ5N-0006qa-34;
-       Thu, 26 Jul 2012 16:34:45 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-To: <linux-kernel@vger.kernel.org>
-Date: Thu, 26 Jul 2012 16:33:54 +0100
-Message-ID: <1343316846-25860-12-git-send-email-stefano.stabellini@eu.citrix.com>
-X-Mailer: git-send-email 1.7.9.5
-In-Reply-To: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
-References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
-MIME-Version: 1.0
-Cc: xen-devel@lists.xensource.com, linaro-dev@lists.linaro.org,
-       Ian.Campbell@citrix.com, arnd@arndb.de, konrad.wilk@oracle.com,
-       catalin.marinas@arm.com,
-       Stefano Stabellini <stefano.stabellini@eu.citrix.com>,
-       tim@xen.org, linux-arm-kernel@lists.infradead.org
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
-Subject: [Xen-devel] [PATCH 12/24] xen/arm: Introduce xen_guest_init
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-We used to rely on a core_initcall to initialize Xen on ARM, however
-core_initcalls are actually called after early consoles are initialized.
-That means that hvc_xen.c is going to be initialized before Xen.
-
-Given the lack of a better alternative, just call a new Xen
-initialization function (xen_guest_init) from xen_cons_init.
-
-xen_guest_init has to be arch independent, so write both an ARM and an
-x86 implementation. The x86 implementation is currently empty because we
-can be sure that xen_hvm_guest_init is called early enough.
-
-Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
----
- arch/arm/xen/enlighten.c  |    7 ++++++-
- arch/x86/xen/enlighten.c  |    8 ++++++++
- drivers/tty/hvc/hvc_xen.c |    7 ++++++-
- include/xen/xen.h         |    2 ++
- 4 files changed, 22 insertions(+), 2 deletions(-)
-
-diff --git a/arch/arm/xen/enlighten.c b/arch/arm/xen/enlighten.c
-index 8c923af..dc68074 100644
---- a/arch/arm/xen/enlighten.c
-+++ b/arch/arm/xen/enlighten.c
-@@ -44,7 +44,7 @@ EXPORT_SYMBOL_GPL(xen_remap_domain_mfn_range);
-  * - one interrupt for Xen event notifications;
-  * - one memory region to map the grant_table.
-  */
--static int __init xen_guest_init(void)
-+int __init xen_guest_init(void)
- {
-       int cpu;
-       struct xen_add_to_physmap xatp;
-@@ -58,6 +58,10 @@ static int __init xen_guest_init(void)
-       }
-       xen_domain_type = XEN_HVM_DOMAIN;
-+      /* already setup */
-+      if (shared_info_page != 0 && HYPERVISOR_shared_info == shared_info_page)
-+              return 0;
-+
-       if (!shared_info_page)
-               shared_info_page = (struct shared_info *)
-                       get_zeroed_page(GFP_KERNEL);
-@@ -88,4 +92,5 @@ static int __init xen_guest_init(void)
-       }
-       return 0;
- }
-+EXPORT_SYMBOL_GPL(xen_guest_init);
- core_initcall(xen_guest_init);
-diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c
-index ff962d4..6131d43 100644
---- a/arch/x86/xen/enlighten.c
-+++ b/arch/x86/xen/enlighten.c
-@@ -1567,4 +1567,12 @@ const struct hypervisor_x86 x86_hyper_xen_hvm __refconst = {
-       .init_platform          = xen_hvm_guest_init,
- };
- EXPORT_SYMBOL(x86_hyper_xen_hvm);
-+
-+int __init xen_guest_init(void)
-+{
-+      /* do nothing: rely on x86_hyper_xen_hvm for the initialization */
-+      return 0;
-+      
-+}
-+EXPORT_SYMBOL_GPL(xen_guest_init);
- #endif
-diff --git a/drivers/tty/hvc/hvc_xen.c b/drivers/tty/hvc/hvc_xen.c
-index dc07f56..3c04fb8 100644
---- a/drivers/tty/hvc/hvc_xen.c
-+++ b/drivers/tty/hvc/hvc_xen.c
-@@ -577,6 +577,12 @@ static void __exit xen_hvc_fini(void)
- static int xen_cons_init(void)
- {
-       const struct hv_ops *ops;
-+      int r;
-+
-+      /* retrieve xen infos  */
-+      r = xen_guest_init();
-+      if (r < 0)
-+              return r;
-       if (!xen_domain())
-               return 0;
-@@ -584,7 +590,6 @@ static int xen_cons_init(void)
-       if (xen_initial_domain())
-               ops = &dom0_hvc_ops;
-       else {
--              int r;
-               ops = &domU_hvc_ops;
-               if (xen_hvm_domain())
-diff --git a/include/xen/xen.h b/include/xen/xen.h
-index 2c0d3a5..792a4d2 100644
---- a/include/xen/xen.h
-+++ b/include/xen/xen.h
-@@ -9,8 +9,10 @@ enum xen_domain_type {
- #ifdef CONFIG_XEN
- extern enum xen_domain_type xen_domain_type;
-+int xen_guest_init(void);
- #else
- #define xen_domain_type               XEN_NATIVE
-+static inline int xen_guest_init(void) { return 0; }
- #endif
- #define xen_domain()          (xen_domain_type != XEN_NATIVE)
--- 
-1.7.2.5
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1343316846-25860-13-git-send-email-stefano.stabellini@eu.citrix.com> b/test/corpus/<1343316846-25860-13-git-send-email-stefano.stabellini@eu.citrix.com>
deleted file mode 100644 (file)
index 9342710..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Jul 26 17:00:23 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 26 Jul 2012 17:00:23 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SuQU0-0001g2-73
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 26 Jul 2012 17:00:23 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SuQR1-0007x2-J8; Thu, 26 Jul 2012 15:57:07 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1SuQQz-0007vs-EX
-       for xen-devel@lists.xensource.com; Thu, 26 Jul 2012 15:57:05 +0000
-Received: from [85.158.143.35:21488] by server-1.bemta-4.messagelabs.com id
-       B2/0E-24392-0D861105; Thu, 26 Jul 2012 15:57:04 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-2.tower-21.messagelabs.com!1343318198!6257028!1
-X-Originating-IP: [66.165.176.89]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNTk5NzY=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.2; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 3215 invoked from network); 26 Jul 2012 15:56:39 -0000
-Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
-       by server-2.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
-       26 Jul 2012 15:56:39 -0000
-X-IronPort-AV: E=Sophos;i="4.77,659,1336363200"; d="scan'208";a="32691171"
-Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
-       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       26 Jul 2012 11:56:37 -0400
-Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
-       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
-       Thu, 26 Jul 2012 11:56:37 -0400
-Received: from kaball.uk.xensource.com ([10.80.2.59])  by
-       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
-       <stefano.stabellini@eu.citrix.com>)     id 1SuQ5N-0006qa-51;
-       Thu, 26 Jul 2012 16:34:45 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-To: <linux-kernel@vger.kernel.org>
-Date: Thu, 26 Jul 2012 16:33:55 +0100
-Message-ID: <1343316846-25860-13-git-send-email-stefano.stabellini@eu.citrix.com>
-X-Mailer: git-send-email 1.7.9.5
-In-Reply-To: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
-References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
-MIME-Version: 1.0
-Cc: xen-devel@lists.xensource.com, linaro-dev@lists.linaro.org,
-       Ian.Campbell@citrix.com, arnd@arndb.de, konrad.wilk@oracle.com,
-       catalin.marinas@arm.com,
-       Stefano Stabellini <stefano.stabellini@eu.citrix.com>,
-       tim@xen.org, linux-arm-kernel@lists.infradead.org
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: [Xen-devel] [PATCH 13/24] xen/arm: get privilege status
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-Use Xen features to figure out if we are privileged.
-
-XENFEAT_dom0 was introduced by 23735 in xen-unstable.hg.
-
-Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
----
- arch/arm/xen/enlighten.c         |    7 +++++++
- include/xen/interface/features.h |    3 +++
- 2 files changed, 10 insertions(+), 0 deletions(-)
-
-diff --git a/arch/arm/xen/enlighten.c b/arch/arm/xen/enlighten.c
-index dc68074..2e013cf 100644
---- a/arch/arm/xen/enlighten.c
-+++ b/arch/arm/xen/enlighten.c
-@@ -2,6 +2,7 @@
- #include <xen/interface/xen.h>
- #include <xen/interface/memory.h>
- #include <xen/platform_pci.h>
-+#include <xen/features.h>
- #include <asm/xen/hypervisor.h>
- #include <asm/xen/hypercall.h>
- #include <linux/module.h>
-@@ -58,6 +59,12 @@ int __init xen_guest_init(void)
-       }
-       xen_domain_type = XEN_HVM_DOMAIN;
-+      xen_setup_features();
-+      if (xen_feature(XENFEAT_dom0))
-+              xen_start_info->flags |= SIF_INITDOMAIN|SIF_PRIVILEGED;
-+      else
-+              xen_start_info->flags &= ~(SIF_INITDOMAIN|SIF_PRIVILEGED);
-+
-       /* already setup */
-       if (shared_info_page != 0 && HYPERVISOR_shared_info == shared_info_page)
-               return 0;
-diff --git a/include/xen/interface/features.h b/include/xen/interface/features.h
-index b6ca39a..131a6cc 100644
---- a/include/xen/interface/features.h
-+++ b/include/xen/interface/features.h
-@@ -50,6 +50,9 @@
- /* x86: pirq can be used by HVM guests */
- #define XENFEAT_hvm_pirqs           10
-+/* operation as Dom0 is supported */
-+#define XENFEAT_dom0                      11
-+
- #define XENFEAT_NR_SUBMAPS 1
- #endif /* __XEN_PUBLIC_FEATURES_H__ */
--- 
-1.7.2.5
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1343316846-25860-14-git-send-email-stefano.stabellini@eu.citrix.com> b/test/corpus/<1343316846-25860-14-git-send-email-stefano.stabellini@eu.citrix.com>
deleted file mode 100644 (file)
index cfcabc0..0000000
+++ /dev/null
@@ -1,160 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Jul 26 17:00:16 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 26 Jul 2012 17:00:16 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SuQTy-0001fy-0z
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 26 Jul 2012 17:00:16 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SuQR5-0007zZ-Cw; Thu, 26 Jul 2012 15:57:11 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1SuQR3-0007xr-MY
-       for xen-devel@lists.xensource.com; Thu, 26 Jul 2012 15:57:09 +0000
-Received: from [85.158.139.83:56528] by server-2.bemta-5.messagelabs.com id
-       88/AD-04598-4D861105; Thu, 26 Jul 2012 15:57:08 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-5.tower-182.messagelabs.com!1343318222!28861239!2
-X-Originating-IP: [66.165.176.89]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNTk5NzY=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.2; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 17148 invoked from network); 26 Jul 2012 15:57:08 -0000
-Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
-       by server-5.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
-       26 Jul 2012 15:57:08 -0000
-X-IronPort-AV: E=Sophos;i="4.77,659,1336363200"; d="scan'208";a="32691226"
-Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
-       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       26 Jul 2012 11:57:07 -0400
-Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
-       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
-       Thu, 26 Jul 2012 11:57:07 -0400
-Received: from kaball.uk.xensource.com ([10.80.2.59])  by
-       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
-       <stefano.stabellini@eu.citrix.com>)     id 1SuQ5N-0006qa-5d;
-       Thu, 26 Jul 2012 16:34:45 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-To: <linux-kernel@vger.kernel.org>
-Date: Thu, 26 Jul 2012 16:33:56 +0100
-Message-ID: <1343316846-25860-14-git-send-email-stefano.stabellini@eu.citrix.com>
-X-Mailer: git-send-email 1.7.9.5
-In-Reply-To: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
-References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
-MIME-Version: 1.0
-Cc: xen-devel@lists.xensource.com, linaro-dev@lists.linaro.org,
-       Ian.Campbell@citrix.com, arnd@arndb.de, konrad.wilk@oracle.com,
-       catalin.marinas@arm.com,
-       Stefano Stabellini <stefano.stabellini@eu.citrix.com>,
-       tim@xen.org, linux-arm-kernel@lists.infradead.org
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
-Subject: [Xen-devel] [PATCH 14/24] xen/arm: initialize grant_table on ARM
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-Initialize the grant table mapping at the address specified at index 0
-in the DT under the /xen node.
-After the grant table is initialized, call xenbus_probe (if not dom0).
-
-Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
----
- arch/arm/xen/enlighten.c  |   13 +++++++++++++
- drivers/xen/grant-table.c |    2 +-
- 2 files changed, 14 insertions(+), 1 deletions(-)
-
-diff --git a/arch/arm/xen/enlighten.c b/arch/arm/xen/enlighten.c
-index 2e013cf..854af1e 100644
---- a/arch/arm/xen/enlighten.c
-+++ b/arch/arm/xen/enlighten.c
-@@ -1,8 +1,12 @@
- #include <xen/xen.h>
- #include <xen/interface/xen.h>
- #include <xen/interface/memory.h>
-+#include <xen/interface/hvm/params.h>
- #include <xen/platform_pci.h>
- #include <xen/features.h>
-+#include <xen/grant_table.h>
-+#include <xen/hvm.h>
-+#include <xen/xenbus.h>
- #include <asm/xen/hypervisor.h>
- #include <asm/xen/hypercall.h>
- #include <linux/module.h>
-@@ -51,12 +55,16 @@ int __init xen_guest_init(void)
-       struct xen_add_to_physmap xatp;
-       static struct shared_info *shared_info_page = 0;
-       struct device_node *node;
-+      struct resource res;
-       node = of_find_compatible_node(NULL, NULL, "arm,xen");
-       if (!node) {
-               pr_info("No Xen support\n");
-               return 0;
-       }
-+      if (of_address_to_resource(node, 0, &res))
-+              return -EINVAL;
-+      xen_hvm_resume_frames = res.start >> PAGE_SHIFT;
-       xen_domain_type = XEN_HVM_DOMAIN;
-       xen_setup_features();
-@@ -97,6 +105,11 @@ int __init xen_guest_init(void)
-               per_cpu(xen_vcpu, cpu) =
-                       &HYPERVISOR_shared_info->vcpu_info[cpu];
-       }
-+
-+      gnttab_init();
-+      if (!xen_initial_domain())
-+              xenbus_probe(NULL);
-+
-       return 0;
- }
- EXPORT_SYMBOL_GPL(xen_guest_init);
-diff --git a/drivers/xen/grant-table.c b/drivers/xen/grant-table.c
-index 1d0d95e..fd2137a 100644
---- a/drivers/xen/grant-table.c
-+++ b/drivers/xen/grant-table.c
-@@ -62,7 +62,7 @@
- static grant_ref_t **gnttab_list;
- static unsigned int nr_grant_frames;
--static unsigned int boot_max_nr_grant_frames;
-+static unsigned int boot_max_nr_grant_frames = 1;
- static int gnttab_free_count;
- static grant_ref_t gnttab_free_head;
- static DEFINE_SPINLOCK(gnttab_list_lock);
--- 
-1.7.2.5
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1343316846-25860-15-git-send-email-stefano.stabellini@eu.citrix.com> b/test/corpus/<1343316846-25860-15-git-send-email-stefano.stabellini@eu.citrix.com>
deleted file mode 100644 (file)
index c8b6c09..0000000
+++ /dev/null
@@ -1,309 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Jul 26 17:00:24 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 26 Jul 2012 17:00:24 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SuQU6-0001gj-D0
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 26 Jul 2012 17:00:24 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SuQQt-0007tV-7o; Thu, 26 Jul 2012 15:56:59 +0000
-Received: from mail27.messagelabs.com ([193.109.254.147])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1SuQQr-0007rI-M4
-       for xen-devel@lists.xensource.com; Thu, 26 Jul 2012 15:56:57 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-13.tower-27.messagelabs.com!1343318210!10840632!1
-X-Originating-IP: [66.165.176.89]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNTk5NzY=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.2; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 30607 invoked from network); 26 Jul 2012 15:56:51 -0000
-Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
-       by server-13.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
-       26 Jul 2012 15:56:51 -0000
-X-IronPort-AV: E=Sophos;i="4.77,659,1336363200"; d="scan'208";a="32691187"
-Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
-       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       26 Jul 2012 11:56:49 -0400
-Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
-       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
-       Thu, 26 Jul 2012 11:56:49 -0400
-Received: from kaball.uk.xensource.com ([10.80.2.59])  by
-       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
-       <stefano.stabellini@eu.citrix.com>)     id 1SuQ5N-0006qa-7a;
-       Thu, 26 Jul 2012 16:34:45 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-To: <linux-kernel@vger.kernel.org>
-Date: Thu, 26 Jul 2012 16:33:57 +0100
-Message-ID: <1343316846-25860-15-git-send-email-stefano.stabellini@eu.citrix.com>
-X-Mailer: git-send-email 1.7.9.5
-In-Reply-To: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
-References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
-MIME-Version: 1.0
-Cc: xen-devel@lists.xensource.com, linaro-dev@lists.linaro.org,
-       Ian.Campbell@citrix.com, arnd@arndb.de, konrad.wilk@oracle.com,
-       catalin.marinas@arm.com,
-       Stefano Stabellini <stefano.stabellini@eu.citrix.com>,
-       tim@xen.org, linux-arm-kernel@lists.infradead.org
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD autolearn=unavailable version=3.3.1
-Subject: [Xen-devel] [PATCH 15/24] xen/arm: receive Xen events on ARM
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-Compile events.c on ARM.
-Parse, map and enable the IRQ to get event notifications from the device
-tree (node "/xen").
-
-On ARM Linux irqs are not enabled by default:
-
-- call enable_percpu_irq for xen_events_irq (drivers are supposed
-to call enable_irq after request_irq);
-
-- reset the IRQ_NOAUTOEN and IRQ_NOREQUEST flags that are enabled by
-default on ARM. If IRQ_NOAUTOEN is set, __setup_irq doesn't call
-irq_startup, that is responsible for calling irq_unmask at startup time.
-As a result event channels remain masked.
-
-Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
----
- arch/arm/xen/enlighten.c |   33 +++++++++++++++++++++++++++++++++
- arch/x86/xen/enlighten.c |    1 +
- arch/x86/xen/irq.c       |    1 +
- arch/x86/xen/xen-ops.h   |    1 -
- drivers/xen/events.c     |   18 +++++++++++++++---
- include/xen/events.h     |    2 ++
- 6 files changed, 52 insertions(+), 4 deletions(-)
-
-diff --git a/arch/arm/xen/enlighten.c b/arch/arm/xen/enlighten.c
-index 854af1e..60d6d36 100644
---- a/arch/arm/xen/enlighten.c
-+++ b/arch/arm/xen/enlighten.c
-@@ -7,8 +7,11 @@
- #include <xen/grant_table.h>
- #include <xen/hvm.h>
- #include <xen/xenbus.h>
-+#include <xen/events.h>
- #include <asm/xen/hypervisor.h>
- #include <asm/xen/hypercall.h>
-+#include <linux/interrupt.h>
-+#include <linux/irqreturn.h>
- #include <linux/module.h>
- #include <linux/of.h>
- #include <linux/of_irq.h>
-@@ -33,6 +36,8 @@ EXPORT_SYMBOL_GPL(xen_have_vector_callback);
- int xen_platform_pci_unplug = XEN_UNPLUG_ALL;
- EXPORT_SYMBOL_GPL(xen_platform_pci_unplug);
-+static __read_mostly int xen_events_irq = -1;
-+
- int xen_remap_domain_mfn_range(struct vm_area_struct *vma,
-                              unsigned long addr,
-                              unsigned long mfn, int nr,
-@@ -65,6 +70,9 @@ int __init xen_guest_init(void)
-       if (of_address_to_resource(node, 0, &res))
-               return -EINVAL;
-       xen_hvm_resume_frames = res.start >> PAGE_SHIFT;
-+      xen_events_irq = irq_of_parse_and_map(node, 0);
-+      pr_info("Xen support found, events_irq=%d gnttab_frame_pfn=%lx\n",
-+                      xen_events_irq, xen_hvm_resume_frames);
-       xen_domain_type = XEN_HVM_DOMAIN;
-       xen_setup_features();
-@@ -114,3 +122,28 @@ int __init xen_guest_init(void)
- }
- EXPORT_SYMBOL_GPL(xen_guest_init);
- core_initcall(xen_guest_init);
-+
-+static irqreturn_t xen_arm_callback(int irq, void *arg)
-+{
-+      xen_hvm_evtchn_do_upcall();
-+      return 0;
-+}
-+
-+static int __init xen_init_events(void)
-+{
-+      if (!xen_domain() || xen_events_irq < 0)
-+              return -ENODEV;
-+
-+      xen_init_IRQ();
-+
-+      if (request_percpu_irq(xen_events_irq, xen_arm_callback,
-+                      "events", xen_vcpu)) {
-+              pr_err("Error requesting IRQ %d\n", xen_events_irq);
-+              return -EINVAL;
-+      }
-+
-+      enable_percpu_irq(xen_events_irq, 0);
-+
-+      return 0;
-+}
-+postcore_initcall(xen_init_events);
-diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c
-index 6131d43..5a30502 100644
---- a/arch/x86/xen/enlighten.c
-+++ b/arch/x86/xen/enlighten.c
-@@ -33,6 +33,7 @@
- #include <linux/memblock.h>
- #include <xen/xen.h>
-+#include <xen/events.h>
- #include <xen/interface/xen.h>
- #include <xen/interface/version.h>
- #include <xen/interface/physdev.h>
-diff --git a/arch/x86/xen/irq.c b/arch/x86/xen/irq.c
-index 1573376..01a4dc0 100644
---- a/arch/x86/xen/irq.c
-+++ b/arch/x86/xen/irq.c
-@@ -5,6 +5,7 @@
- #include <xen/interface/xen.h>
- #include <xen/interface/sched.h>
- #include <xen/interface/vcpu.h>
-+#include <xen/events.h>
- #include <asm/xen/hypercall.h>
- #include <asm/xen/hypervisor.h>
-diff --git a/arch/x86/xen/xen-ops.h b/arch/x86/xen/xen-ops.h
-index 202d4c1..2368295 100644
---- a/arch/x86/xen/xen-ops.h
-+++ b/arch/x86/xen/xen-ops.h
-@@ -35,7 +35,6 @@ void xen_set_pat(u64);
- char * __init xen_memory_setup(void);
- void __init xen_arch_setup(void);
--void __init xen_init_IRQ(void);
- void xen_enable_sysenter(void);
- void xen_enable_syscall(void);
- void xen_vcpu_restore(void);
-diff --git a/drivers/xen/events.c b/drivers/xen/events.c
-index 7da65d3..9b506b2 100644
---- a/drivers/xen/events.c
-+++ b/drivers/xen/events.c
-@@ -31,14 +31,16 @@
- #include <linux/irqnr.h>
- #include <linux/pci.h>
-+#ifdef CONFIG_X86
- #include <asm/desc.h>
- #include <asm/ptrace.h>
- #include <asm/irq.h>
- #include <asm/idle.h>
- #include <asm/io_apic.h>
--#include <asm/sync_bitops.h>
- #include <asm/xen/page.h>
- #include <asm/xen/pci.h>
-+#endif
-+#include <asm/sync_bitops.h>
- #include <asm/xen/hypercall.h>
- #include <asm/xen/hypervisor.h>
-@@ -50,6 +52,9 @@
- #include <xen/interface/event_channel.h>
- #include <xen/interface/hvm/hvm_op.h>
- #include <xen/interface/hvm/params.h>
-+#include <xen/interface/physdev.h>
-+#include <xen/interface/sched.h>
-+#include <asm/hw_irq.h>
- /*
-  * This lock protects updates to the following mapping and reference-count
-@@ -834,6 +839,7 @@ int bind_evtchn_to_irq(unsigned int evtchn)
-               struct irq_info *info = info_for_irq(irq);
-               WARN_ON(info == NULL || info->type != IRQT_EVTCHN);
-       }
-+      irq_clear_status_flags(irq, IRQ_NOREQUEST|IRQ_NOAUTOEN);
- out:
-       mutex_unlock(&irq_mapping_update_lock);
-@@ -1377,7 +1383,9 @@ void xen_evtchn_do_upcall(struct pt_regs *regs)
- {
-       struct pt_regs *old_regs = set_irq_regs(regs);
-+#ifdef CONFIG_X86
-       exit_idle();
-+#endif
-       irq_enter();
-       __xen_evtchn_do_upcall();
-@@ -1786,9 +1794,9 @@ void xen_callback_vector(void)
- void xen_callback_vector(void) {}
- #endif
--void __init xen_init_IRQ(void)
-+void xen_init_IRQ(void)
- {
--      int i, rc;
-+      int i;
-       evtchn_to_irq = kcalloc(NR_EVENT_CHANNELS, sizeof(*evtchn_to_irq),
-                                   GFP_KERNEL);
-@@ -1804,6 +1812,7 @@ void __init xen_init_IRQ(void)
-       pirq_needs_eoi = pirq_needs_eoi_flag;
-+#ifdef CONFIG_X86
-       if (xen_hvm_domain()) {
-               xen_callback_vector();
-               native_init_IRQ();
-@@ -1811,6 +1820,7 @@ void __init xen_init_IRQ(void)
-                * __acpi_register_gsi can point at the right function */
-               pci_xen_hvm_init();
-       } else {
-+              int rc;
-               struct physdev_pirq_eoi_gmfn eoi_gmfn;
-               irq_ctx_init(smp_processor_id());
-@@ -1826,4 +1836,6 @@ void __init xen_init_IRQ(void)
-               } else
-                       pirq_needs_eoi = pirq_check_eoi_map;
-       }
-+#endif
- }
-+EXPORT_SYMBOL_GPL(xen_init_IRQ);
-diff --git a/include/xen/events.h b/include/xen/events.h
-index 04399b2..c6bfe01 100644
---- a/include/xen/events.h
-+++ b/include/xen/events.h
-@@ -109,4 +109,6 @@ int xen_irq_from_gsi(unsigned gsi);
- /* Determine whether to ignore this IRQ if it is passed to a guest. */
- int xen_test_irq_shared(int irq);
-+/* initialize Xen IRQ subsystem */
-+void xen_init_IRQ(void);
- #endif        /* _XEN_EVENTS_H */
--- 
-1.7.2.5
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1343316846-25860-16-git-send-email-stefano.stabellini@eu.citrix.com> b/test/corpus/<1343316846-25860-16-git-send-email-stefano.stabellini@eu.citrix.com>
deleted file mode 100644 (file)
index d3677aa..0000000
+++ /dev/null
@@ -1,128 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Jul 26 17:00:25 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 26 Jul 2012 17:00:25 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SuQU9-0001gm-Mg
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 26 Jul 2012 17:00:25 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SuQRd-0008NC-AD; Thu, 26 Jul 2012 15:57:45 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1SuQRa-0008Ls-Vf
-       for xen-devel@lists.xensource.com; Thu, 26 Jul 2012 15:57:43 +0000
-Received: from [85.158.143.35:11150] by server-1.bemta-4.messagelabs.com id
-       CC/FE-24392-6F861105; Thu, 26 Jul 2012 15:57:42 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-12.tower-21.messagelabs.com!1343318212!13917081!1
-X-Originating-IP: [66.165.176.63]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyNjczNDY=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.2; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 27537 invoked from network); 26 Jul 2012 15:56:53 -0000
-Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
-       by server-12.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
-       26 Jul 2012 15:56:53 -0000
-X-IronPort-AV: E=Sophos;i="4.77,659,1336363200"; d="scan'208";a="203311682"
-Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
-       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       26 Jul 2012 11:56:31 -0400
-Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
-       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
-       Thu, 26 Jul 2012 11:56:31 -0400
-Received: from kaball.uk.xensource.com ([10.80.2.59])  by
-       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
-       <stefano.stabellini@eu.citrix.com>)     id 1SuQ5N-0006qa-8F;
-       Thu, 26 Jul 2012 16:34:45 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-To: <linux-kernel@vger.kernel.org>
-Date: Thu, 26 Jul 2012 16:33:58 +0100
-Message-ID: <1343316846-25860-16-git-send-email-stefano.stabellini@eu.citrix.com>
-X-Mailer: git-send-email 1.7.9.5
-In-Reply-To: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
-References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
-MIME-Version: 1.0
-Cc: xen-devel@lists.xensource.com, linaro-dev@lists.linaro.org,
-       Ian.Campbell@citrix.com, arnd@arndb.de, konrad.wilk@oracle.com,
-       catalin.marinas@arm.com,
-       Stefano Stabellini <stefano.stabellini@eu.citrix.com>,
-       tim@xen.org, linux-arm-kernel@lists.infradead.org
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: [Xen-devel] [PATCH 16/24] xen/arm: implement
-       alloc/free_xenballooned_pages with alloc_pages/kfree
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-Only until we get the balloon driver to work.
-
-Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
----
- arch/arm/xen/enlighten.c |   18 ++++++++++++++++++
- 1 files changed, 18 insertions(+), 0 deletions(-)
-
-diff --git a/arch/arm/xen/enlighten.c b/arch/arm/xen/enlighten.c
-index 60d6d36..1476b0b 100644
---- a/arch/arm/xen/enlighten.c
-+++ b/arch/arm/xen/enlighten.c
-@@ -121,6 +121,24 @@ int __init xen_guest_init(void)
-       return 0;
- }
- EXPORT_SYMBOL_GPL(xen_guest_init);
-+
-+/* XXX: only until balloon is properly working */
-+int alloc_xenballooned_pages(int nr_pages, struct page **pages, bool highmem)
-+{
-+      *pages = alloc_pages(highmem ? GFP_HIGHUSER : GFP_KERNEL,
-+                      get_order(nr_pages));
-+      if (*pages == NULL)
-+              return -ENOMEM;
-+      return 0;
-+}
-+EXPORT_SYMBOL_GPL(alloc_xenballooned_pages);
-+
-+void free_xenballooned_pages(int nr_pages, struct page **pages)
-+{
-+      kfree(*pages);
-+      *pages = NULL;
-+}
-+EXPORT_SYMBOL_GPL(free_xenballooned_pages);
- core_initcall(xen_guest_init);
- static irqreturn_t xen_arm_callback(int irq, void *arg)
--- 
-1.7.2.5
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1343316846-25860-17-git-send-email-stefano.stabellini@eu.citrix.com> b/test/corpus/<1343316846-25860-17-git-send-email-stefano.stabellini@eu.citrix.com>
deleted file mode 100644 (file)
index f8c9849..0000000
+++ /dev/null
@@ -1,115 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Jul 26 16:59:59 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 26 Jul 2012 16:59:59 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SuQTj-0001e5-C3
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 26 Jul 2012 16:59:59 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SuQQE-0007dR-Dt; Thu, 26 Jul 2012 15:56:18 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1SuQQD-0007d4-AY
-       for xen-devel@lists.xensource.com; Thu, 26 Jul 2012 15:56:17 +0000
-Received: from [85.158.138.51:30222] by server-8.bemta-3.messagelabs.com id
-       1C/08-30925-0A861105; Thu, 26 Jul 2012 15:56:16 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-14.tower-174.messagelabs.com!1343318174!22605118!1
-X-Originating-IP: [66.165.176.89]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNTk5NzY=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.2; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 874 invoked from network); 26 Jul 2012 15:56:15 -0000
-Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
-       by server-14.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
-       26 Jul 2012 15:56:15 -0000
-X-IronPort-AV: E=Sophos;i="4.77,659,1336363200"; d="scan'208";a="32691132"
-Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
-       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       26 Jul 2012 11:56:14 -0400
-Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
-       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
-       Thu, 26 Jul 2012 11:56:14 -0400
-Received: from kaball.uk.xensource.com ([10.80.2.59])  by
-       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
-       <stefano.stabellini@eu.citrix.com>)     id 1SuQ5N-0006qa-8u;
-       Thu, 26 Jul 2012 16:34:45 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-To: <linux-kernel@vger.kernel.org>
-Date: Thu, 26 Jul 2012 16:33:59 +0100
-Message-ID: <1343316846-25860-17-git-send-email-stefano.stabellini@eu.citrix.com>
-X-Mailer: git-send-email 1.7.9.5
-In-Reply-To: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
-References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
-MIME-Version: 1.0
-Cc: xen-devel@lists.xensource.com, linaro-dev@lists.linaro.org,
-       Ian.Campbell@citrix.com, arnd@arndb.de, konrad.wilk@oracle.com,
-       catalin.marinas@arm.com,
-       Stefano Stabellini <stefano.stabellini@eu.citrix.com>,
-       tim@xen.org, linux-arm-kernel@lists.infradead.org
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: [Xen-devel] [PATCH 17/24] xen: allow privcmd for HVM guests
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-In order for privcmd mmap to work correctly, xen_remap_domain_mfn_range
-needs to be implemented for HVM guests.
-If it is not, mmap is going to fail later on.
-
-Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
----
- drivers/xen/privcmd.c |    4 ----
- 1 files changed, 0 insertions(+), 4 deletions(-)
-
-diff --git a/drivers/xen/privcmd.c b/drivers/xen/privcmd.c
-index ccee0f1..85226cb 100644
---- a/drivers/xen/privcmd.c
-+++ b/drivers/xen/privcmd.c
-@@ -380,10 +380,6 @@ static struct vm_operations_struct privcmd_vm_ops = {
- static int privcmd_mmap(struct file *file, struct vm_area_struct *vma)
- {
--      /* Unsupported for auto-translate guests. */
--      if (xen_feature(XENFEAT_auto_translated_physmap))
--              return -ENOSYS;
--
-       /* DONTCOPY is essential for Xen because copy_page_range doesn't know
-        * how to recreate these mappings */
-       vma->vm_flags |= VM_RESERVED | VM_IO | VM_DONTCOPY | VM_PFNMAP;
--- 
-1.7.2.5
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1343316846-25860-18-git-send-email-stefano.stabellini@eu.citrix.com> b/test/corpus/<1343316846-25860-18-git-send-email-stefano.stabellini@eu.citrix.com>
deleted file mode 100644 (file)
index 433400c..0000000
+++ /dev/null
@@ -1,130 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Jul 26 17:00:07 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 26 Jul 2012 17:00:07 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SuQTq-0001fH-7a
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 26 Jul 2012 17:00:07 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SuQQK-0007g6-Qa; Thu, 26 Jul 2012 15:56:24 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1SuQQJ-0007f7-Dq
-       for xen-devel@lists.xensource.com; Thu, 26 Jul 2012 15:56:23 +0000
-Received: from [85.158.139.83:48279] by server-9.bemta-5.messagelabs.com id
-       DC/9C-01069-6A861105; Thu, 26 Jul 2012 15:56:22 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-9.tower-182.messagelabs.com!1343318180!28126673!1
-X-Originating-IP: [66.165.176.63]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyNjczNDY=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.2; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 3292 invoked from network); 26 Jul 2012 15:56:21 -0000
-Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
-       by server-9.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
-       26 Jul 2012 15:56:21 -0000
-X-IronPort-AV: E=Sophos;i="4.77,659,1336363200"; d="scan'208";a="203311662"
-Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
-       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       26 Jul 2012 11:56:20 -0400
-Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
-       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
-       Thu, 26 Jul 2012 11:56:20 -0400
-Received: from kaball.uk.xensource.com ([10.80.2.59])  by
-       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
-       <stefano.stabellini@eu.citrix.com>)     id 1SuQ5N-0006qa-9Y;
-       Thu, 26 Jul 2012 16:34:45 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-To: <linux-kernel@vger.kernel.org>
-Date: Thu, 26 Jul 2012 16:34:00 +0100
-Message-ID: <1343316846-25860-18-git-send-email-stefano.stabellini@eu.citrix.com>
-X-Mailer: git-send-email 1.7.9.5
-In-Reply-To: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
-References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
-MIME-Version: 1.0
-Cc: xen-devel@lists.xensource.com, linaro-dev@lists.linaro.org,
-       Ian.Campbell@citrix.com, arnd@arndb.de, konrad.wilk@oracle.com,
-       catalin.marinas@arm.com,
-       Stefano Stabellini <stefano.stabellini@eu.citrix.com>,
-       tim@xen.org, linux-arm-kernel@lists.infradead.org
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: [Xen-devel] [PATCH 18/24] xen/arm: compile blkfront and blkback
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
----
- drivers/block/xen-blkback/blkback.c  |    1 +
- include/xen/interface/io/protocols.h |    3 +++
- 2 files changed, 4 insertions(+), 0 deletions(-)
-
-diff --git a/drivers/block/xen-blkback/blkback.c b/drivers/block/xen-blkback/blkback.c
-index 73f196c..63dd5b9 100644
---- a/drivers/block/xen-blkback/blkback.c
-+++ b/drivers/block/xen-blkback/blkback.c
-@@ -42,6 +42,7 @@
- #include <xen/events.h>
- #include <xen/page.h>
-+#include <xen/xen.h>
- #include <asm/xen/hypervisor.h>
- #include <asm/xen/hypercall.h>
- #include "common.h"
-diff --git a/include/xen/interface/io/protocols.h b/include/xen/interface/io/protocols.h
-index 01fc8ae..0eafaf2 100644
---- a/include/xen/interface/io/protocols.h
-+++ b/include/xen/interface/io/protocols.h
-@@ -5,6 +5,7 @@
- #define XEN_IO_PROTO_ABI_X86_64     "x86_64-abi"
- #define XEN_IO_PROTO_ABI_IA64       "ia64-abi"
- #define XEN_IO_PROTO_ABI_POWERPC64  "powerpc64-abi"
-+#define XEN_IO_PROTO_ABI_ARM        "arm-abi"
- #if defined(__i386__)
- # define XEN_IO_PROTO_ABI_NATIVE XEN_IO_PROTO_ABI_X86_32
-@@ -14,6 +15,8 @@
- # define XEN_IO_PROTO_ABI_NATIVE XEN_IO_PROTO_ABI_IA64
- #elif defined(__powerpc64__)
- # define XEN_IO_PROTO_ABI_NATIVE XEN_IO_PROTO_ABI_POWERPC64
-+#elif defined(__arm__)
-+# define XEN_IO_PROTO_ABI_NATIVE XEN_IO_PROTO_ABI_ARM
- #else
- # error arch fixup needed here
- #endif
--- 
-1.7.2.5
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1343316846-25860-19-git-send-email-stefano.stabellini@eu.citrix.com> b/test/corpus/<1343316846-25860-19-git-send-email-stefano.stabellini@eu.citrix.com>
deleted file mode 100644 (file)
index 90f4518..0000000
+++ /dev/null
@@ -1,148 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Jul 26 17:00:23 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 26 Jul 2012 17:00:23 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SuQU1-0001g6-Nc
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 26 Jul 2012 17:00:23 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SuQR8-00082r-R5; Thu, 26 Jul 2012 15:57:14 +0000
-Received: from mail27.messagelabs.com ([193.109.254.147])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1SuQR7-0007xQ-BD
-       for xen-devel@lists.xensource.com; Thu, 26 Jul 2012 15:57:13 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-2.tower-27.messagelabs.com!1343318213!10859250!1
-X-Originating-IP: [66.165.176.63]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyNjczNDY=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.2; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 29206 invoked from network); 26 Jul 2012 15:56:54 -0000
-Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
-       by server-2.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
-       26 Jul 2012 15:56:54 -0000
-X-IronPort-AV: E=Sophos;i="4.77,659,1336363200"; d="scan'208";a="203311668"
-Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
-       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       26 Jul 2012 11:56:25 -0400
-Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
-       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
-       Thu, 26 Jul 2012 11:56:26 -0400
-Received: from kaball.uk.xensource.com ([10.80.2.59])  by
-       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
-       <stefano.stabellini@eu.citrix.com>)     id 1SuQ5N-0006qa-AB;
-       Thu, 26 Jul 2012 16:34:45 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-To: <linux-kernel@vger.kernel.org>
-Date: Thu, 26 Jul 2012 16:34:01 +0100
-Message-ID: <1343316846-25860-19-git-send-email-stefano.stabellini@eu.citrix.com>
-X-Mailer: git-send-email 1.7.9.5
-In-Reply-To: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
-References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
-MIME-Version: 1.0
-Cc: xen-devel@lists.xensource.com, linaro-dev@lists.linaro.org,
-       Ian.Campbell@citrix.com, arnd@arndb.de, konrad.wilk@oracle.com,
-       catalin.marinas@arm.com,
-       Stefano Stabellini <stefano.stabellini@eu.citrix.com>,
-       tim@xen.org, linux-arm-kernel@lists.infradead.org
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD autolearn=ham version=3.3.1
-Subject: [Xen-devel] [PATCH 19/24] xen/arm: compile netback
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
----
- arch/arm/include/asm/xen/hypercall.h |   19 +++++++++++++++++++
- drivers/net/xen-netback/netback.c    |    1 +
- drivers/net/xen-netfront.c           |    1 +
- 3 files changed, 21 insertions(+), 0 deletions(-)
-
-diff --git a/arch/arm/include/asm/xen/hypercall.h b/arch/arm/include/asm/xen/hypercall.h
-index 4ac0624..8a82325 100644
---- a/arch/arm/include/asm/xen/hypercall.h
-+++ b/arch/arm/include/asm/xen/hypercall.h
-@@ -47,4 +47,23 @@ unsigned long HYPERVISOR_hvm_op(int op, void *arg);
- int HYPERVISOR_memory_op(unsigned int cmd, void *arg);
- int HYPERVISOR_physdev_op(int cmd, void *arg);
-+static inline void
-+MULTI_update_va_mapping(struct multicall_entry *mcl, unsigned long va,
-+                      unsigned int new_val, unsigned long flags)
-+{
-+      BUG();
-+}
-+
-+static inline void
-+MULTI_mmu_update(struct multicall_entry *mcl, struct mmu_update *req,
-+               int count, int *success_count, domid_t domid)
-+{
-+      BUG();
-+}
-+
-+static inline int
-+HYPERVISOR_multicall(void *call_list, int nr_calls)
-+{
-+      BUG();
-+}
- #endif /* _ASM_ARM_XEN_HYPERCALL_H */
-diff --git a/drivers/net/xen-netback/netback.c b/drivers/net/xen-netback/netback.c
-index f4a6fca..ab4f81c 100644
---- a/drivers/net/xen-netback/netback.c
-+++ b/drivers/net/xen-netback/netback.c
-@@ -40,6 +40,7 @@
- #include <net/tcp.h>
-+#include <xen/xen.h>
- #include <xen/events.h>
- #include <xen/interface/memory.h>
-diff --git a/drivers/net/xen-netfront.c b/drivers/net/xen-netfront.c
-index 3089990..bf4ba2b 100644
---- a/drivers/net/xen-netfront.c
-+++ b/drivers/net/xen-netfront.c
-@@ -43,6 +43,7 @@
- #include <linux/slab.h>
- #include <net/ip.h>
-+#include <asm/xen/page.h>
- #include <xen/xen.h>
- #include <xen/xenbus.h>
- #include <xen/events.h>
--- 
-1.7.2.5
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1343316846-25860-2-git-send-email-stefano.stabellini@eu.citrix.com> b/test/corpus/<1343316846-25860-2-git-send-email-stefano.stabellini@eu.citrix.com>
deleted file mode 100644 (file)
index fee793b..0000000
+++ /dev/null
@@ -1,244 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Jul 26 16:39:05 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 26 Jul 2012 16:39:05 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SuQ9W-0001V4-GN
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 26 Jul 2012 16:39:05 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SuQ5b-0004aT-54; Thu, 26 Jul 2012 15:34:59 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1SuQ5Y-0004Yo-TV
-       for xen-devel@lists.xensource.com; Thu, 26 Jul 2012 15:34:57 +0000
-Received: from [85.158.143.35:10724] by server-1.bemta-4.messagelabs.com id
-       41/D7-24392-0A361105; Thu, 26 Jul 2012 15:34:56 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-3.tower-21.messagelabs.com!1343316891!14677221!4
-X-Originating-IP: [66.165.176.89]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNTk5NzY=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.2; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 14492 invoked from network); 26 Jul 2012 15:34:55 -0000
-Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
-       by server-3.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
-       26 Jul 2012 15:34:55 -0000
-X-IronPort-AV: E=Sophos;i="4.77,659,1336363200"; d="scan'208";a="32688371"
-Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
-       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       26 Jul 2012 11:34:50 -0400
-Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
-       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
-       Thu, 26 Jul 2012 11:34:50 -0400
-Received: from kaball.uk.xensource.com ([10.80.2.59])  by
-       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
-       <stefano.stabellini@eu.citrix.com>)     id 1SuQ5M-0006qa-Kt;
-       Thu, 26 Jul 2012 16:34:44 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-To: <linux-kernel@vger.kernel.org>
-Date: Thu, 26 Jul 2012 16:33:44 +0100
-Message-ID: <1343316846-25860-2-git-send-email-stefano.stabellini@eu.citrix.com>
-X-Mailer: git-send-email 1.7.9.5
-In-Reply-To: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
-References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
-MIME-Version: 1.0
-Cc: xen-devel@lists.xensource.com, linaro-dev@lists.linaro.org,
-       Ian.Campbell@citrix.com, arnd@arndb.de, konrad.wilk@oracle.com,
-       catalin.marinas@arm.com,
-       Stefano Stabellini <stefano.stabellini@eu.citrix.com>,
-       tim@xen.org, linux-arm-kernel@lists.infradead.org
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
-Subject: [Xen-devel] [PATCH 02/24] xen/arm: hypercalls
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-Use r12 to pass the hypercall number to the hypervisor.
-
-We need a register to pass the hypercall number because we might not
-know it at compile time and HVC only takes an immediate argument.
-
-Among the available registers r12 seems to be the best choice because it
-is defined as "intra-procedure call scratch register".
-
-Use the ISS to pass an hypervisor specific tag.
-
-Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
----
- arch/arm/include/asm/xen/hypercall.h |   50 ++++++++++++++++++++++++++
- arch/arm/xen/Makefile                |    2 +-
- arch/arm/xen/hypercall.S             |   65 ++++++++++++++++++++++++++++++++++
- 3 files changed, 116 insertions(+), 1 deletions(-)
- create mode 100644 arch/arm/include/asm/xen/hypercall.h
- create mode 100644 arch/arm/xen/hypercall.S
-
-diff --git a/arch/arm/include/asm/xen/hypercall.h b/arch/arm/include/asm/xen/hypercall.h
-new file mode 100644
-index 0000000..4ac0624
---- /dev/null
-+++ b/arch/arm/include/asm/xen/hypercall.h
-@@ -0,0 +1,50 @@
-+/******************************************************************************
-+ * hypercall.h
-+ *
-+ * Linux-specific hypervisor handling.
-+ *
-+ * Stefano Stabellini <stefano.stabellini@eu.citrix.com>, Citrix, 2012
-+ *
-+ * This program is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU General Public License version 2
-+ * as published by the Free Software Foundation; or, when distributed
-+ * separately from the Linux kernel or incorporated into other
-+ * software packages, subject to the following license:
-+ *
-+ * Permission is hereby granted, free of charge, to any person obtaining a copy
-+ * of this source file (the "Software"), to deal in the Software without
-+ * restriction, including without limitation the rights to use, copy, modify,
-+ * merge, publish, distribute, sublicense, and/or sell copies of the Software,
-+ * and to permit persons to whom the Software is furnished to do so, subject to
-+ * the following conditions:
-+ *
-+ * The above copyright notice and this permission notice shall be included in
-+ * all copies or substantial portions of the Software.
-+ *
-+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
-+ * IN THE SOFTWARE.
-+ */
-+
-+#ifndef _ASM_ARM_XEN_HYPERCALL_H
-+#define _ASM_ARM_XEN_HYPERCALL_H
-+
-+#include <xen/interface/xen.h>
-+
-+long privcmd_call(unsigned call, unsigned long a1,
-+              unsigned long a2, unsigned long a3,
-+              unsigned long a4, unsigned long a5);
-+int HYPERVISOR_xen_version(int cmd, void *arg);
-+int HYPERVISOR_console_io(int cmd, int count, char *str);
-+int HYPERVISOR_grant_table_op(unsigned int cmd, void *uop, unsigned int count);
-+int HYPERVISOR_sched_op(int cmd, void *arg);
-+int HYPERVISOR_event_channel_op(int cmd, void *arg);
-+unsigned long HYPERVISOR_hvm_op(int op, void *arg);
-+int HYPERVISOR_memory_op(unsigned int cmd, void *arg);
-+int HYPERVISOR_physdev_op(int cmd, void *arg);
-+
-+#endif /* _ASM_ARM_XEN_HYPERCALL_H */
-diff --git a/arch/arm/xen/Makefile b/arch/arm/xen/Makefile
-index 0bad594..b9d6acc 100644
---- a/arch/arm/xen/Makefile
-+++ b/arch/arm/xen/Makefile
-@@ -1 +1 @@
--obj-y         := enlighten.o
-+obj-y         := enlighten.o hypercall.o
-diff --git a/arch/arm/xen/hypercall.S b/arch/arm/xen/hypercall.S
-new file mode 100644
-index 0000000..038cc5b
---- /dev/null
-+++ b/arch/arm/xen/hypercall.S
-@@ -0,0 +1,65 @@
-+/******************************************************************************
-+ * hypercall.S
-+ *
-+ * Xen hypercall wrappers
-+ *
-+ * The Xen hypercall calling convention is very similar to the ARM
-+ * procedure calling convention: the first paramter is passed in r0, the
-+ * second in r1, the third in r2 and the third in r3. Considering that
-+ * Xen hypercalls have 5 arguments at most, the fifth paramter is passed
-+ * in r4, differently from the procedure calling convention of using the
-+ * stack for that case.
-+ *
-+ * The hypercall number is passed in r12.
-+ *
-+ * The return value is in r0.
-+ *
-+ * The hvc ISS is required to be 0xEA1, that is the Xen specific ARM
-+ * hypercall tag.
-+ *
-+ * Stefano Stabellini <stefano.stabellini@eu.citrix.com>, Citrix, 2012
-+ */
-+
-+#include <linux/linkage.h>
-+#include <asm/assembler.h>
-+#include <xen/interface/xen.h>
-+
-+
-+/* HVC 0xEA1 */
-+#ifdef CONFIG_THUMB2_KERNEL
-+#define xen_hvc .word 0xf7e08ea1
-+#else
-+#define xen_hvc .word 0xe140ea71
-+#endif
-+
-+/* We need to save and restore r4, because Xen clobbers it. */
-+#define HYPERCALL(hypercall)                  \
-+ENTRY(HYPERVISOR_##hypercall)                 \
-+      mov r12, #__HYPERVISOR_##hypercall;     \
-+      xen_hvc;                                                        \
-+      mov pc, lr;                                                     \
-+ENDPROC(HYPERVISOR_##hypercall)
-+
-+                .text
-+
-+HYPERCALL(xen_version);
-+HYPERCALL(console_io);
-+HYPERCALL(grant_table_op);
-+HYPERCALL(sched_op);
-+HYPERCALL(event_channel_op);
-+HYPERCALL(hvm_op);
-+HYPERCALL(memory_op);
-+HYPERCALL(physdev_op);
-+
-+ENTRY(privcmd_call)
-+      stmdb   sp!, {r4}
-+      mov r12, r0
-+      mov r0, r1
-+      mov r1, r2
-+      mov r2, r3
-+      ldr r3, [sp, #8]
-+      ldr r4, [sp, #4]
-+      xen_hvc
-+      pop {r4}
-+      mov pc, lr
-+ENDPROC(privcmd_call);
--- 
-1.7.2.5
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1343316846-25860-20-git-send-email-stefano.stabellini@eu.citrix.com> b/test/corpus/<1343316846-25860-20-git-send-email-stefano.stabellini@eu.citrix.com>
deleted file mode 100644 (file)
index 3734bb7..0000000
+++ /dev/null
@@ -1,129 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Jul 26 17:00:00 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 26 Jul 2012 17:00:00 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SuQTl-0001e9-2I
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 26 Jul 2012 17:00:00 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SuQPt-0007Yc-Ji; Thu, 26 Jul 2012 15:55:57 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1SuQPr-0007YW-Lp
-       for xen-devel@lists.xensource.com; Thu, 26 Jul 2012 15:55:55 +0000
-Received: from [85.158.143.35:9703] by server-2.bemta-4.messagelabs.com id
-       E9/03-17938-B8861105; Thu, 26 Jul 2012 15:55:55 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-12.tower-21.messagelabs.com!1343318146!13916888!1
-X-Originating-IP: [66.165.176.63]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyNjczNDY=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.2; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 24422 invoked from network); 26 Jul 2012 15:55:48 -0000
-Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
-       by server-12.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
-       26 Jul 2012 15:55:48 -0000
-X-IronPort-AV: E=Sophos;i="4.77,659,1336363200"; d="scan'208";a="203311594"
-Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
-       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       26 Jul 2012 11:55:45 -0400
-Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
-       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
-       Thu, 26 Jul 2012 11:55:45 -0400
-Received: from kaball.uk.xensource.com ([10.80.2.59])  by
-       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
-       <stefano.stabellini@eu.citrix.com>)     id 1SuQ5N-0006qa-Aq;
-       Thu, 26 Jul 2012 16:34:45 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-To: <linux-kernel@vger.kernel.org>
-Date: Thu, 26 Jul 2012 16:34:02 +0100
-Message-ID: <1343316846-25860-20-git-send-email-stefano.stabellini@eu.citrix.com>
-X-Mailer: git-send-email 1.7.9.5
-In-Reply-To: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
-References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
-MIME-Version: 1.0
-Cc: xen-devel@lists.xensource.com, linaro-dev@lists.linaro.org,
-       Ian.Campbell@citrix.com, arnd@arndb.de, konrad.wilk@oracle.com,
-       catalin.marinas@arm.com,
-       Stefano Stabellini <stefano.stabellini@eu.citrix.com>,
-       tim@xen.org, linux-arm-kernel@lists.infradead.org
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: [Xen-devel] [PATCH 20/24] xen: update xen_add_to_physmap interface
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-Update struct xen_add_to_physmap to be in sync with Xen's version of the
-structure.
-The size field was introduced by:
-
-changeset:   24164:707d27fe03e7
-user:        Jean Guyader <jean.guyader@eu.citrix.com>
-date:        Fri Nov 18 13:42:08 2011 +0000
-summary:     mm: New XENMEM space, XENMAPSPACE_gmfn_range
-
-According to the comment:
-
-"This new field .size is located in the 16 bits padding between .domid
-and .space in struct xen_add_to_physmap to stay compatible with older
-versions."
-
-This is not true on ARM where there is not padding, but it is valid on
-X86, so introducing size is safe on X86 and it is going to fix the
-interace for ARM.
-
-Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
----
- include/xen/interface/memory.h |    3 +++
- 1 files changed, 3 insertions(+), 0 deletions(-)
-
-diff --git a/include/xen/interface/memory.h b/include/xen/interface/memory.h
-index abbbff0..d8e33a9 100644
---- a/include/xen/interface/memory.h
-+++ b/include/xen/interface/memory.h
-@@ -163,6 +163,9 @@ struct xen_add_to_physmap {
-     /* Which domain to change the mapping for. */
-     domid_t domid;
-+    /* Number of pages to go through for gmfn_range */
-+    uint16_t    size;
-+
-     /* Source mapping space. */
- #define XENMAPSPACE_shared_info 0 /* shared info page */
- #define XENMAPSPACE_grant_table 1 /* grant table page */
--- 
-1.7.2.5
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1343316846-25860-21-git-send-email-stefano.stabellini@eu.citrix.com> b/test/corpus/<1343316846-25860-21-git-send-email-stefano.stabellini@eu.citrix.com>
deleted file mode 100644 (file)
index 16c559d..0000000
+++ /dev/null
@@ -1,124 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Jul 26 16:59:58 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 26 Jul 2012 16:59:58 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SuQTg-0001e2-0z
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 26 Jul 2012 16:59:58 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SuQPx-0007Z8-Cp; Thu, 26 Jul 2012 15:56:01 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1SuQPw-0007Z0-6F
-       for xen-devel@lists.xensource.com; Thu, 26 Jul 2012 15:56:00 +0000
-Received: from [85.158.138.51:28814] by server-5.bemta-3.messagelabs.com id
-       D0/F2-28237-F8861105; Thu, 26 Jul 2012 15:55:59 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-5.tower-174.messagelabs.com!1343318152!29038537!2
-X-Originating-IP: [66.165.176.89]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNTk5NzY=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.2; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 17028 invoked from network); 26 Jul 2012 15:55:58 -0000
-Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
-       by server-5.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
-       26 Jul 2012 15:55:58 -0000
-X-IronPort-AV: E=Sophos;i="4.77,659,1336363200"; d="scan'208";a="32691104"
-Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
-       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       26 Jul 2012 11:55:57 -0400
-Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
-       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
-       Thu, 26 Jul 2012 11:55:57 -0400
-Received: from kaball.uk.xensource.com ([10.80.2.59])  by
-       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
-       <stefano.stabellini@eu.citrix.com>)     id 1SuQ5N-0006qa-BV;
-       Thu, 26 Jul 2012 16:34:45 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-To: <linux-kernel@vger.kernel.org>
-Date: Thu, 26 Jul 2012 16:34:03 +0100
-Message-ID: <1343316846-25860-21-git-send-email-stefano.stabellini@eu.citrix.com>
-X-Mailer: git-send-email 1.7.9.5
-In-Reply-To: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
-References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
-MIME-Version: 1.0
-Cc: xen-devel@lists.xensource.com, linaro-dev@lists.linaro.org,
-       Ian.Campbell@citrix.com, arnd@arndb.de, konrad.wilk@oracle.com,
-       catalin.marinas@arm.com,
-       Stefano Stabellini <stefano.stabellini@eu.citrix.com>,
-       tim@xen.org, linux-arm-kernel@lists.infradead.org
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: [Xen-devel] [PATCH 21/24] arm/v2m: initialize arch_timers even if
-       v2m_timer is not present
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
----
- arch/arm/mach-vexpress/v2m.c |   11 ++++++-----
- 1 files changed, 6 insertions(+), 5 deletions(-)
-
-diff --git a/arch/arm/mach-vexpress/v2m.c b/arch/arm/mach-vexpress/v2m.c
-index fde26ad..dee1451 100644
---- a/arch/arm/mach-vexpress/v2m.c
-+++ b/arch/arm/mach-vexpress/v2m.c
-@@ -637,16 +637,17 @@ static void __init v2m_dt_timer_init(void)
-       node = of_find_compatible_node(NULL, NULL, "arm,sp810");
-       v2m_sysctl_init(of_iomap(node, 0));
--      err = of_property_read_string(of_aliases, "arm,v2m_timer", &path);
--      if (WARN_ON(err))
--              return;
--      node = of_find_node_by_path(path);
--      v2m_sp804_init(of_iomap(node, 0), irq_of_parse_and_map(node, 0));
-       if (arch_timer_of_register() != 0)
-               twd_local_timer_of_register();
-       if (arch_timer_sched_clock_init() != 0)
-               versatile_sched_clock_init(v2m_sysreg_base + V2M_SYS_24MHZ, 24000000);
-+
-+      err = of_property_read_string(of_aliases, "arm,v2m_timer", &path);
-+      if (WARN_ON(err))
-+              return;
-+      node = of_find_node_by_path(path);
-+      v2m_sp804_init(of_iomap(node, 0), irq_of_parse_and_map(node, 0));
- }
- static struct sys_timer v2m_dt_timer = {
--- 
-1.7.2.5
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1343316846-25860-22-git-send-email-stefano.stabellini@eu.citrix.com> b/test/corpus/<1343316846-25860-22-git-send-email-stefano.stabellini@eu.citrix.com>
deleted file mode 100644 (file)
index 041dc29..0000000
+++ /dev/null
@@ -1,133 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Jul 26 17:00:03 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 26 Jul 2012 17:00:03 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SuQTj-0001e6-LG
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 26 Jul 2012 17:00:03 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SuQQ9-0007cM-Vy; Thu, 26 Jul 2012 15:56:13 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1SuQQ7-0007bs-MY
-       for xen-devel@lists.xensource.com; Thu, 26 Jul 2012 15:56:11 +0000
-Received: from [85.158.143.99:53851] by server-3.bemta-4.messagelabs.com id
-       2A/40-01511-B9861105; Thu, 26 Jul 2012 15:56:11 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-2.tower-216.messagelabs.com!1343318168!23540123!1
-X-Originating-IP: [66.165.176.63]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyNjczNDY=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.2; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 21769 invoked from network); 26 Jul 2012 15:56:09 -0000
-Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
-       by server-2.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
-       26 Jul 2012 15:56:09 -0000
-X-IronPort-AV: E=Sophos;i="4.77,659,1336363200"; d="scan'208";a="203311643"
-Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
-       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       26 Jul 2012 11:56:08 -0400
-Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
-       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
-       Thu, 26 Jul 2012 11:56:08 -0400
-Received: from kaball.uk.xensource.com ([10.80.2.59])  by
-       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
-       <stefano.stabellini@eu.citrix.com>)     id 1SuQ5N-0006qa-CB;
-       Thu, 26 Jul 2012 16:34:45 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-To: <linux-kernel@vger.kernel.org>
-Date: Thu, 26 Jul 2012 16:34:04 +0100
-Message-ID: <1343316846-25860-22-git-send-email-stefano.stabellini@eu.citrix.com>
-X-Mailer: git-send-email 1.7.9.5
-In-Reply-To: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
-References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
-MIME-Version: 1.0
-Cc: xen-devel@lists.xensource.com, linaro-dev@lists.linaro.org,
-       Ian Campbell <ian.campbell@citrix.com>, arnd@arndb.de,
-       konrad.wilk@oracle.com, catalin.marinas@arm.com,
-       Stefano Stabellini <stefano.stabellini@eu.citrix.com>,
-       tim@xen.org, linux-arm-kernel@lists.infradead.org
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: [Xen-devel] [PATCH 22/24] ARM: enable earlyprintk=xen
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-From: Ian Campbell <ian.campbell@citrix.com>
-
-Currently ARM setup_early_printk does not support alternative early
-consoles and it always registers early_console only.
-
-This patch adds support for xenboot_console.
-
-Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
-Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
----
- arch/arm/kernel/early_printk.c |   11 ++++++++++-
- 1 files changed, 10 insertions(+), 1 deletions(-)
-
-diff --git a/arch/arm/kernel/early_printk.c b/arch/arm/kernel/early_printk.c
-index 85aa2b2..eecfa21 100644
---- a/arch/arm/kernel/early_printk.c
-+++ b/arch/arm/kernel/early_printk.c
-@@ -11,6 +11,8 @@
- #include <linux/kernel.h>
- #include <linux/console.h>
- #include <linux/init.h>
-+#include <linux/string.h>
-+#include <xen/hvc-console.h>
- extern void printch(int);
-@@ -50,7 +52,14 @@ asmlinkage void early_printk(const char *fmt, ...)
- static int __init setup_early_printk(char *buf)
- {
--      register_console(&early_console);
-+      if (!buf || !strncmp(buf, "serial", 6))
-+              register_console(&early_console);
-+
-+#ifdef CONFIG_HVC_XEN
-+      if (!strncmp(buf, "xen", 3))
-+              register_console(&xenboot_console);
-+#endif
-+
-       return 0;
- }
--- 
-1.7.2.5
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1343316846-25860-23-git-send-email-stefano.stabellini@eu.citrix.com> b/test/corpus/<1343316846-25860-23-git-send-email-stefano.stabellini@eu.citrix.com>
deleted file mode 100644 (file)
index 4ec242f..0000000
+++ /dev/null
@@ -1,118 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Jul 26 16:59:57 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 26 Jul 2012 16:59:57 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SuQTf-0001e1-QZ
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 26 Jul 2012 16:59:57 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SuQPu-0007Yn-Vs; Thu, 26 Jul 2012 15:55:58 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1SuQPt-0007Yb-QJ
-       for xen-devel@lists.xensource.com; Thu, 26 Jul 2012 15:55:58 +0000
-Received: from [85.158.138.51:4757] by server-7.bemta-3.messagelabs.com id
-       5D/82-21158-C8861105; Thu, 26 Jul 2012 15:55:56 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-5.tower-174.messagelabs.com!1343318152!29038537!1
-X-Originating-IP: [66.165.176.89]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNTk5NzY=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.2; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 16597 invoked from network); 26 Jul 2012 15:55:53 -0000
-Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
-       by server-5.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
-       26 Jul 2012 15:55:53 -0000
-X-IronPort-AV: E=Sophos;i="4.77,659,1336363200"; d="scan'208";a="32691093"
-Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
-       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       26 Jul 2012 11:55:51 -0400
-Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
-       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
-       Thu, 26 Jul 2012 11:55:51 -0400
-Received: from kaball.uk.xensource.com ([10.80.2.59])  by
-       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
-       <stefano.stabellini@eu.citrix.com>)     id 1SuQ5N-0006qa-Cq;
-       Thu, 26 Jul 2012 16:34:45 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-To: <linux-kernel@vger.kernel.org>
-Date: Thu, 26 Jul 2012 16:34:05 +0100
-Message-ID: <1343316846-25860-23-git-send-email-stefano.stabellini@eu.citrix.com>
-X-Mailer: git-send-email 1.7.9.5
-In-Reply-To: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
-References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
-MIME-Version: 1.0
-Cc: xen-devel@lists.xensource.com, linaro-dev@lists.linaro.org,
-       Ian.Campbell@citrix.com, arnd@arndb.de, konrad.wilk@oracle.com,
-       catalin.marinas@arm.com,
-       Stefano Stabellini <stefano.stabellini@eu.citrix.com>,
-       tim@xen.org, linux-arm-kernel@lists.infradead.org
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: [Xen-devel] [PATCH 23/24] hvc_xen: allow dom0_write_console for HVM
-       guests
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On ARM all guests are HVM guests, including Dom0.
-Allow dom0_write_console to be called by an HVM domain.
-
-Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
----
- drivers/tty/hvc/hvc_xen.c |    5 +----
- 1 files changed, 1 insertions(+), 4 deletions(-)
-
-diff --git a/drivers/tty/hvc/hvc_xen.c b/drivers/tty/hvc/hvc_xen.c
-index 3c04fb8..949edc2 100644
---- a/drivers/tty/hvc/hvc_xen.c
-+++ b/drivers/tty/hvc/hvc_xen.c
-@@ -616,12 +616,9 @@ static void xenboot_write_console(struct console *console, const char *string,
-       unsigned int linelen, off = 0;
-       const char *pos;
--      if (!xen_pv_domain())
--              return;
--
-       dom0_write_console(0, string, len);
--      if (xen_initial_domain())
-+      if (!xen_pv_domain())
-               return;
-       domU_write_console(0, "(early) ", 8);
--- 
-1.7.2.5
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1343316846-25860-24-git-send-email-stefano.stabellini@eu.citrix.com> b/test/corpus/<1343316846-25860-24-git-send-email-stefano.stabellini@eu.citrix.com>
deleted file mode 100644 (file)
index 1f955b6..0000000
+++ /dev/null
@@ -1,320 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Jul 26 17:00:23 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 26 Jul 2012 17:00:23 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SuQU1-0001g4-6V
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 26 Jul 2012 17:00:23 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SuQR0-0007wN-Lr; Thu, 26 Jul 2012 15:57:06 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1SuQQy-0007vJ-F2
-       for xen-devel@lists.xensource.com; Thu, 26 Jul 2012 15:57:04 +0000
-Received: from [85.158.138.51:35741] by server-8.bemta-3.messagelabs.com id
-       7B/49-30925-FC861105; Thu, 26 Jul 2012 15:57:03 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-5.tower-174.messagelabs.com!1343318221!29038721!1
-X-Originating-IP: [66.165.176.63]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyNjczNDY=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.2; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 24124 invoked from network); 26 Jul 2012 15:57:02 -0000
-Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
-       by server-5.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
-       26 Jul 2012 15:57:02 -0000
-X-IronPort-AV: E=Sophos;i="4.77,659,1336363200"; d="scan'208";a="203311698"
-Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
-       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       26 Jul 2012 11:56:43 -0400
-Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
-       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
-       Thu, 26 Jul 2012 11:56:43 -0400
-Received: from kaball.uk.xensource.com ([10.80.2.59])  by
-       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
-       <stefano.stabellini@eu.citrix.com>)     id 1SuQ5N-0006qa-DT;
-       Thu, 26 Jul 2012 16:34:45 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-To: <linux-kernel@vger.kernel.org>
-Date: Thu, 26 Jul 2012 16:34:06 +0100
-Message-ID: <1343316846-25860-24-git-send-email-stefano.stabellini@eu.citrix.com>
-X-Mailer: git-send-email 1.7.9.5
-In-Reply-To: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
-References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
-MIME-Version: 1.0
-Cc: xen-devel@lists.xensource.com, linaro-dev@lists.linaro.org,
-       Ian.Campbell@citrix.com, arnd@arndb.de, konrad.wilk@oracle.com,
-       catalin.marinas@arm.com,
-       Stefano Stabellini <stefano.stabellini@eu.citrix.com>,
-       tim@xen.org, linux-arm-kernel@lists.infradead.org
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
-Subject: [Xen-devel] [PATCH 24/24] [HACK] xen/arm: implement
-       xen_remap_domain_mfn_range
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-From: Ian Campbell <Ian.Campbell@citrix.com>
-
-Do not apply!
-
-This is a simple, hacky implementation of xen_remap_domain_mfn_range,
-using XENMAPSPACE_gmfn_foreign.
-
-It should use same interface as hybrid x86.
-
-Signed-off-by: Ian Campbell <Ian.Campbell@citrix.com>
-Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
----
- arch/arm/xen/enlighten.c       |   79 +++++++++++++++++++++++++++++++++++++++-
- drivers/xen/privcmd.c          |   16 +++++----
- drivers/xen/xenfs/super.c      |    7 ++++
- include/xen/interface/memory.h |   10 ++++--
- 4 files changed, 101 insertions(+), 11 deletions(-)
-
-diff --git a/arch/arm/xen/enlighten.c b/arch/arm/xen/enlighten.c
-index 1476b0b..7092015 100644
---- a/arch/arm/xen/enlighten.c
-+++ b/arch/arm/xen/enlighten.c
-@@ -16,6 +16,10 @@
- #include <linux/of.h>
- #include <linux/of_irq.h>
- #include <linux/of_address.h>
-+#include <linux/mm.h>
-+#include <linux/ioport.h>
-+
-+#include <asm/pgtable.h>
- struct start_info _xen_start_info;
- struct start_info *xen_start_info = &_xen_start_info;
-@@ -38,12 +42,85 @@ EXPORT_SYMBOL_GPL(xen_platform_pci_unplug);
- static __read_mostly int xen_events_irq = -1;
-+#define FOREIGN_MAP_BUFFER 0x90000000UL
-+#define FOREIGN_MAP_BUFFER_SIZE 0x10000000UL
-+struct resource foreign_map_resource = {
-+      .start = FOREIGN_MAP_BUFFER,
-+      .end = FOREIGN_MAP_BUFFER + FOREIGN_MAP_BUFFER_SIZE,
-+      .name = "Xen foreign map buffer",
-+      .flags = 0,
-+};
-+
-+static unsigned long foreign_map_buffer_pfn = FOREIGN_MAP_BUFFER >> PAGE_SHIFT;
-+
-+struct remap_data {
-+      struct mm_struct *mm;
-+      unsigned long mfn;
-+      pgprot_t prot;
-+};
-+
-+static int remap_area_mfn_pte_fn(pte_t *ptep, pgtable_t token,
-+                               unsigned long addr, void *data)
-+{
-+      struct remap_data *rmd = data;
-+      pte_t pte = pfn_pte(rmd->mfn, rmd->prot);
-+
-+      if (rmd->mfn < 0x90010)
-+              pr_crit("%s: ptep %p addr %#lx => %#x / %#lx\n",
-+                     __func__, ptep, addr, pte_val(pte), rmd->mfn);
-+
-+      set_pte_at(rmd->mm, addr, ptep, pte);
-+
-+      rmd->mfn++;
-+      return 0;
-+}
-+
- int xen_remap_domain_mfn_range(struct vm_area_struct *vma,
-                              unsigned long addr,
-                              unsigned long mfn, int nr,
-                              pgprot_t prot, unsigned domid)
- {
--      return -ENOSYS;
-+      int i, rc = 0;
-+      struct remap_data rmd = {
-+              .mm = vma->vm_mm,
-+              .prot = prot,
-+      };
-+      struct xen_add_to_physmap xatp = {
-+              .domid = DOMID_SELF,
-+              .space = XENMAPSPACE_gmfn_foreign,
-+
-+              .foreign_domid = domid,
-+      };
-+
-+      if (foreign_map_buffer_pfn + nr > ((FOREIGN_MAP_BUFFER +
-+                                      FOREIGN_MAP_BUFFER_SIZE)>>PAGE_SHIFT)) {
-+              pr_crit("RAM out of foreign map buffers...\n");
-+              return -EBUSY;
-+      }
-+
-+      for (i = 0; i < nr; i++) {
-+              xatp.idx = mfn + i;
-+              xatp.gpfn = foreign_map_buffer_pfn + i;
-+              rc = HYPERVISOR_memory_op(XENMEM_add_to_physmap, &xatp);
-+              if (rc != 0) {
-+                      pr_crit("foreign map add_to_physmap failed, err=%d\n", rc);
-+                      goto out;
-+              }
-+      }
-+
-+      rmd.mfn = foreign_map_buffer_pfn;
-+      rc = apply_to_page_range(vma->vm_mm,
-+                               addr,
-+                               (unsigned long)nr << PAGE_SHIFT,
-+                               remap_area_mfn_pte_fn, &rmd);
-+      if (rc != 0) {
-+              pr_crit("apply_to_page_range failed rc=%d\n", rc);
-+              goto out;
-+      }
-+
-+      foreign_map_buffer_pfn += nr;
-+out:
-+      return rc;
- }
- EXPORT_SYMBOL_GPL(xen_remap_domain_mfn_range);
-diff --git a/drivers/xen/privcmd.c b/drivers/xen/privcmd.c
-index 85226cb..3e15c22 100644
---- a/drivers/xen/privcmd.c
-+++ b/drivers/xen/privcmd.c
-@@ -20,6 +20,8 @@
- #include <linux/pagemap.h>
- #include <linux/seq_file.h>
- #include <linux/miscdevice.h>
-+#include <linux/resource.h>
-+#include <linux/ioport.h>
- #include <asm/pgalloc.h>
- #include <asm/pgtable.h>
-@@ -196,9 +198,6 @@ static long privcmd_ioctl_mmap(void __user *udata)
-       LIST_HEAD(pagelist);
-       struct mmap_mfn_state state;
--      if (!xen_initial_domain())
--              return -EPERM;
--
-       if (copy_from_user(&mmapcmd, udata, sizeof(mmapcmd)))
-               return -EFAULT;
-@@ -286,9 +285,6 @@ static long privcmd_ioctl_mmap_batch(void __user *udata)
-       LIST_HEAD(pagelist);
-       struct mmap_batch_state state;
--      if (!xen_initial_domain())
--              return -EPERM;
--
-       if (copy_from_user(&m, udata, sizeof(m)))
-               return -EFAULT;
-@@ -365,6 +361,11 @@ static long privcmd_ioctl(struct file *file,
-       return ret;
- }
-+static void privcmd_close(struct vm_area_struct *vma)
-+{
-+      /* TODO: unmap VMA */
-+}
-+
- static int privcmd_fault(struct vm_area_struct *vma, struct vm_fault *vmf)
- {
-       printk(KERN_DEBUG "privcmd_fault: vma=%p %lx-%lx, pgoff=%lx, uv=%p\n",
-@@ -375,7 +376,8 @@ static int privcmd_fault(struct vm_area_struct *vma, struct vm_fault *vmf)
- }
- static struct vm_operations_struct privcmd_vm_ops = {
--      .fault = privcmd_fault
-+      .fault = privcmd_fault,
-+      .close = privcmd_close,
- };
- static int privcmd_mmap(struct file *file, struct vm_area_struct *vma)
-diff --git a/drivers/xen/xenfs/super.c b/drivers/xen/xenfs/super.c
-index a84b53c..edbe22f 100644
---- a/drivers/xen/xenfs/super.c
-+++ b/drivers/xen/xenfs/super.c
-@@ -12,6 +12,7 @@
- #include <linux/module.h>
- #include <linux/fs.h>
- #include <linux/magic.h>
-+#include <linux/ioport.h>
- #include <xen/xen.h>
-@@ -80,6 +81,8 @@ static const struct file_operations capabilities_file_ops = {
-       .llseek = default_llseek,
- };
-+extern struct resource foreign_map_resource;
-+
- static int xenfs_fill_super(struct super_block *sb, void *data, int silent)
- {
-       static struct tree_descr xenfs_files[] = {
-@@ -100,6 +103,10 @@ static int xenfs_fill_super(struct super_block *sb, void *data, int silent)
-                                 &xsd_kva_file_ops, NULL, S_IRUSR|S_IWUSR);
-               xenfs_create_file(sb, sb->s_root, "xsd_port",
-                                 &xsd_port_file_ops, NULL, S_IRUSR|S_IWUSR);
-+              rc = request_resource(&iomem_resource, &foreign_map_resource);
-+              if (rc < 0)
-+                      pr_crit("failed to register foreign map resource\n");
-+              rc = 0; /* ignore */
-       }
-       return rc;
-diff --git a/include/xen/interface/memory.h b/include/xen/interface/memory.h
-index d8e33a9..ec68945 100644
---- a/include/xen/interface/memory.h
-+++ b/include/xen/interface/memory.h
-@@ -167,9 +167,13 @@ struct xen_add_to_physmap {
-     uint16_t    size;
-     /* Source mapping space. */
--#define XENMAPSPACE_shared_info 0 /* shared info page */
--#define XENMAPSPACE_grant_table 1 /* grant table page */
--    unsigned int space;
-+#define XENMAPSPACE_shared_info  0 /* shared info page */
-+#define XENMAPSPACE_grant_table  1 /* grant table page */
-+#define XENMAPSPACE_gmfn         2 /* GMFN */
-+#define XENMAPSPACE_gmfn_range   3 /* GMFN range */
-+#define XENMAPSPACE_gmfn_foreign 4 /* GMFN from another guest */
-+    uint16_t space;
-+    domid_t foreign_domid; /* IFF gmfn_foreign */
-     /* Index into source mapping space. */
-     unsigned long idx;
--- 
-1.7.2.5
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1343316846-25860-3-git-send-email-stefano.stabellini@eu.citrix.com> b/test/corpus/<1343316846-25860-3-git-send-email-stefano.stabellini@eu.citrix.com>
deleted file mode 100644 (file)
index 02de19b..0000000
+++ /dev/null
@@ -1,183 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Jul 26 16:39:17 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 26 Jul 2012 16:39:17 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SuQ9f-0001Vd-SP
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 26 Jul 2012 16:39:17 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SuQ5a-0004Zr-AA; Thu, 26 Jul 2012 15:34:58 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1SuQ5X-0004Yo-S3
-       for xen-devel@lists.xensource.com; Thu, 26 Jul 2012 15:34:56 +0000
-Received: from [85.158.143.35:10620] by server-1.bemta-4.messagelabs.com id
-       77/C7-24392-F9361105; Thu, 26 Jul 2012 15:34:55 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-3.tower-21.messagelabs.com!1343316891!14677221!2
-X-Originating-IP: [66.165.176.89]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNTk5NzY=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.2; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 14409 invoked from network); 26 Jul 2012 15:34:54 -0000
-Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
-       by server-3.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
-       26 Jul 2012 15:34:54 -0000
-X-IronPort-AV: E=Sophos;i="4.77,659,1336363200"; d="scan'208";a="32688369"
-Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
-       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       26 Jul 2012 11:34:50 -0400
-Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
-       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
-       Thu, 26 Jul 2012 11:34:50 -0400
-Received: from kaball.uk.xensource.com ([10.80.2.59])  by
-       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
-       <stefano.stabellini@eu.citrix.com>)     id 1SuQ5M-0006qa-Mo;
-       Thu, 26 Jul 2012 16:34:44 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-To: <linux-kernel@vger.kernel.org>
-Date: Thu, 26 Jul 2012 16:33:45 +0100
-Message-ID: <1343316846-25860-3-git-send-email-stefano.stabellini@eu.citrix.com>
-X-Mailer: git-send-email 1.7.9.5
-In-Reply-To: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
-References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
-MIME-Version: 1.0
-Cc: xen-devel@lists.xensource.com, linaro-dev@lists.linaro.org,
-       Ian.Campbell@citrix.com, arnd@arndb.de, konrad.wilk@oracle.com,
-       catalin.marinas@arm.com,
-       Stefano Stabellini <stefano.stabellini@eu.citrix.com>,
-       tim@xen.org, linux-arm-kernel@lists.infradead.org
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
-Subject: [Xen-devel] [PATCH 03/24] xen/arm: page.h definitions
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-ARM Xen guests always use paging in hardware, like PV on HVM guests in
-the X86 world.
-
-Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
----
- arch/arm/include/asm/xen/page.h |   77 +++++++++++++++++++++++++++++++++++++++
- 1 files changed, 77 insertions(+), 0 deletions(-)
- create mode 100644 arch/arm/include/asm/xen/page.h
-
-diff --git a/arch/arm/include/asm/xen/page.h b/arch/arm/include/asm/xen/page.h
-new file mode 100644
-index 0000000..6cfe9a1
---- /dev/null
-+++ b/arch/arm/include/asm/xen/page.h
-@@ -0,0 +1,77 @@
-+#ifndef _ASM_ARM_XEN_PAGE_H
-+#define _ASM_ARM_XEN_PAGE_H
-+
-+#include <asm/page.h>
-+#include <linux/pfn.h>
-+#include <linux/types.h>
-+#include <asm/pgtable.h>
-+#include <xen/interface/grant_table.h>
-+
-+#define pfn_to_mfn(pfn)                       (pfn)
-+#define phys_to_machine_mapping_valid (1)
-+#define mfn_to_pfn(mfn)                       (mfn)
-+#define mfn_to_virt(m)                        (__va(mfn_to_pfn(m) << PAGE_SHIFT))
-+
-+#define pte_mfn           pte_pfn
-+#define mfn_pte           pfn_pte
-+
-+/* Xen machine address */
-+typedef struct xmaddr {
-+      phys_addr_t maddr;
-+} xmaddr_t;
-+
-+/* Xen pseudo-physical address */
-+typedef struct xpaddr {
-+      phys_addr_t paddr;
-+} xpaddr_t;
-+
-+#define XMADDR(x)     ((xmaddr_t) { .maddr = (x) })
-+#define XPADDR(x)     ((xpaddr_t) { .paddr = (x) })
-+
-+static inline xmaddr_t phys_to_machine(xpaddr_t phys)
-+{
-+      unsigned offset = phys.paddr & ~PAGE_MASK;
-+      return XMADDR(PFN_PHYS(pfn_to_mfn(PFN_DOWN(phys.paddr))) | offset);
-+}
-+
-+static inline xpaddr_t machine_to_phys(xmaddr_t machine)
-+{
-+      unsigned offset = machine.maddr & ~PAGE_MASK;
-+      return XPADDR(PFN_PHYS(mfn_to_pfn(PFN_DOWN(machine.maddr))) | offset);
-+}
-+/* VIRT <-> MACHINE conversion */
-+#define virt_to_machine(v)    (phys_to_machine(XPADDR(__pa(v))))
-+#define virt_to_pfn(v)          (PFN_DOWN(__pa(v)))
-+#define virt_to_mfn(v)                (pfn_to_mfn(virt_to_pfn(v)))
-+#define mfn_to_virt(m)                (__va(mfn_to_pfn(m) << PAGE_SHIFT))
-+
-+static inline xmaddr_t arbitrary_virt_to_machine(void *vaddr)
-+{
-+      /* XXX: assuming it is mapped in the kernel 1:1 */
-+      return virt_to_machine(vaddr);
-+}
-+
-+/* XXX: this shouldn't be here */
-+static inline pte_t *lookup_address(unsigned long address, unsigned int *level)
-+{
-+      BUG();
-+      return NULL;
-+}
-+
-+static inline int m2p_add_override(unsigned long mfn, struct page *page,
-+              struct gnttab_map_grant_ref *kmap_op)
-+{
-+      return 0;
-+}
-+
-+static inline int m2p_remove_override(struct page *page, bool clear_pte)
-+{
-+      return 0;
-+}
-+
-+static inline bool set_phys_to_machine(unsigned long pfn, unsigned long mfn)
-+{
-+      BUG();
-+      return false;
-+}
-+#endif /* _ASM_ARM_XEN_PAGE_H */
--- 
-1.7.2.5
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1343316846-25860-4-git-send-email-stefano.stabellini@eu.citrix.com> b/test/corpus/<1343316846-25860-4-git-send-email-stefano.stabellini@eu.citrix.com>
deleted file mode 100644 (file)
index 4f38b83..0000000
+++ /dev/null
@@ -1,123 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Jul 26 16:38:26 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 26 Jul 2012 16:38:26 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SuQ8t-0001TJ-O0
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 26 Jul 2012 16:38:26 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SuQ5Y-0004ZJ-T7; Thu, 26 Jul 2012 15:34:56 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1SuQ5X-0004YZ-5P
-       for xen-devel@lists.xensource.com; Thu, 26 Jul 2012 15:34:55 +0000
-Received: from [85.158.143.35:9474] by server-3.bemta-4.messagelabs.com id
-       C4/A9-01511-E9361105; Thu, 26 Jul 2012 15:34:54 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-3.tower-21.messagelabs.com!1343316891!14677221!1
-X-Originating-IP: [66.165.176.89]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNTk5NzY=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.2; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 14370 invoked from network); 26 Jul 2012 15:34:53 -0000
-Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
-       by server-3.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
-       26 Jul 2012 15:34:53 -0000
-X-IronPort-AV: E=Sophos;i="4.77,659,1336363200"; d="scan'208";a="32688368"
-Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
-       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       26 Jul 2012 11:34:50 -0400
-Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
-       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
-       Thu, 26 Jul 2012 11:34:50 -0400
-Received: from kaball.uk.xensource.com ([10.80.2.59])  by
-       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
-       <stefano.stabellini@eu.citrix.com>)     id 1SuQ5M-0006qa-Oj;
-       Thu, 26 Jul 2012 16:34:44 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-To: <linux-kernel@vger.kernel.org>
-Date: Thu, 26 Jul 2012 16:33:46 +0100
-Message-ID: <1343316846-25860-4-git-send-email-stefano.stabellini@eu.citrix.com>
-X-Mailer: git-send-email 1.7.9.5
-In-Reply-To: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
-References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
-MIME-Version: 1.0
-Cc: xen-devel@lists.xensource.com, linaro-dev@lists.linaro.org,
-       Ian.Campbell@citrix.com, arnd@arndb.de, konrad.wilk@oracle.com,
-       catalin.marinas@arm.com,
-       Stefano Stabellini <stefano.stabellini@eu.citrix.com>,
-       tim@xen.org, linux-arm-kernel@lists.infradead.org
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: [Xen-devel] [PATCH 04/24] xen/arm: sync_bitops
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-sync_bitops functions are equivalent to the SMP implementation of the
-original functions, independently from CONFIG_SMP being defined.
-
-Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
----
- arch/arm/include/asm/sync_bitops.h |   17 +++++++++++++++++
- 1 files changed, 17 insertions(+), 0 deletions(-)
- create mode 100644 arch/arm/include/asm/sync_bitops.h
-
-diff --git a/arch/arm/include/asm/sync_bitops.h b/arch/arm/include/asm/sync_bitops.h
-new file mode 100644
-index 0000000..d975092903
---- /dev/null
-+++ b/arch/arm/include/asm/sync_bitops.h
-@@ -0,0 +1,17 @@
-+#ifndef __ASM_SYNC_BITOPS_H__
-+#define __ASM_SYNC_BITOPS_H__
-+
-+#include <asm/bitops.h>
-+#include <asm/system.h>
-+
-+#define sync_set_bit(nr, p)           _set_bit(nr, p)
-+#define sync_clear_bit(nr, p)         _clear_bit(nr, p)
-+#define sync_change_bit(nr, p)                _change_bit(nr, p)
-+#define sync_test_and_set_bit(nr, p)  _test_and_set_bit(nr, p)
-+#define sync_test_and_clear_bit(nr, p)        _test_and_clear_bit(nr, p)
-+#define sync_test_and_change_bit(nr, p)       _test_and_change_bit(nr, p)
-+#define sync_test_bit(nr, addr)               test_bit(nr, addr)
-+#define sync_cmpxchg                  cmpxchg
-+
-+
-+#endif
--- 
-1.7.2.5
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1343316846-25860-5-git-send-email-stefano.stabellini@eu.citrix.com> b/test/corpus/<1343316846-25860-5-git-send-email-stefano.stabellini@eu.citrix.com>
deleted file mode 100644 (file)
index 50da20a..0000000
+++ /dev/null
@@ -1,165 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Jul 26 16:38:59 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 26 Jul 2012 16:38:59 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SuQ9N-0001Ul-BH
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 26 Jul 2012 16:38:58 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SuQ5b-0004as-J2; Thu, 26 Jul 2012 15:34:59 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1SuQ5Z-0004Zf-UI
-       for xen-devel@lists.xensource.com; Thu, 26 Jul 2012 15:34:58 +0000
-Received: from [85.158.143.35:10779] by server-2.bemta-4.messagelabs.com id
-       49/CE-17938-1A361105; Thu, 26 Jul 2012 15:34:57 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-16.tower-21.messagelabs.com!1343316894!14686643!1
-X-Originating-IP: [66.165.176.89]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNTk5NzY=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.2; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 19040 invoked from network); 26 Jul 2012 15:34:55 -0000
-Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
-       by server-16.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
-       26 Jul 2012 15:34:55 -0000
-X-IronPort-AV: E=Sophos;i="4.77,659,1336363200"; d="scan'208";a="32688372"
-Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
-       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       26 Jul 2012 11:34:50 -0400
-Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
-       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
-       Thu, 26 Jul 2012 11:34:50 -0400
-Received: from kaball.uk.xensource.com ([10.80.2.59])  by
-       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
-       <stefano.stabellini@eu.citrix.com>)     id 1SuQ5M-0006qa-PY;
-       Thu, 26 Jul 2012 16:34:44 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-To: <linux-kernel@vger.kernel.org>
-Date: Thu, 26 Jul 2012 16:33:47 +0100
-Message-ID: <1343316846-25860-5-git-send-email-stefano.stabellini@eu.citrix.com>
-X-Mailer: git-send-email 1.7.9.5
-In-Reply-To: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
-References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
-MIME-Version: 1.0
-Cc: xen-devel@lists.xensource.com, linaro-dev@lists.linaro.org,
-       Ian.Campbell@citrix.com, arnd@arndb.de, konrad.wilk@oracle.com,
-       catalin.marinas@arm.com,
-       Stefano Stabellini <stefano.stabellini@eu.citrix.com>,
-       tim@xen.org, linux-arm-kernel@lists.infradead.org
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
-Subject: [Xen-devel] [PATCH 05/24] xen/arm: empty implementation of
-       grant_table arch specific functions
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
----
- arch/arm/xen/Makefile      |    2 +-
- arch/arm/xen/grant-table.c |   53 ++++++++++++++++++++++++++++++++++++++++++++
- 2 files changed, 54 insertions(+), 1 deletions(-)
- create mode 100644 arch/arm/xen/grant-table.c
-
-diff --git a/arch/arm/xen/Makefile b/arch/arm/xen/Makefile
-index b9d6acc..4384103 100644
---- a/arch/arm/xen/Makefile
-+++ b/arch/arm/xen/Makefile
-@@ -1 +1 @@
--obj-y         := enlighten.o hypercall.o
-+obj-y         := enlighten.o hypercall.o grant-table.o
-diff --git a/arch/arm/xen/grant-table.c b/arch/arm/xen/grant-table.c
-new file mode 100644
-index 0000000..0a4ee80
---- /dev/null
-+++ b/arch/arm/xen/grant-table.c
-@@ -0,0 +1,53 @@
-+/******************************************************************************
-+ * grant_table.c
-+ * ARM specific part
-+ *
-+ * Granting foreign access to our memory reservation.
-+ *
-+ * This program is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU General Public License version 2
-+ * as published by the Free Software Foundation; or, when distributed
-+ * separately from the Linux kernel or incorporated into other
-+ * software packages, subject to the following license:
-+ *
-+ * Permission is hereby granted, free of charge, to any person obtaining a copy
-+ * of this source file (the "Software"), to deal in the Software without
-+ * restriction, including without limitation the rights to use, copy, modify,
-+ * merge, publish, distribute, sublicense, and/or sell copies of the Software,
-+ * and to permit persons to whom the Software is furnished to do so, subject to
-+ * the following conditions:
-+ *
-+ * The above copyright notice and this permission notice shall be included in
-+ * all copies or substantial portions of the Software.
-+ *
-+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-+ * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-+ * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
-+ * IN THE SOFTWARE.
-+ */
-+
-+#include <xen/interface/xen.h>
-+#include <xen/page.h>
-+#include <xen/grant_table.h>
-+
-+int arch_gnttab_map_shared(unsigned long *frames, unsigned long nr_gframes,
-+                         unsigned long max_nr_gframes,
-+                         void **__shared)
-+{
-+      return -1;
-+}
-+
-+void arch_gnttab_unmap(void *shared, unsigned long nr_gframes)
-+{
-+      return;
-+}
-+
-+int arch_gnttab_map_status(uint64_t *frames, unsigned long nr_gframes,
-+                         unsigned long max_nr_gframes,
-+                         grant_status_t **__shared)
-+{
-+      return -1;
-+}
--- 
-1.7.2.5
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1343316846-25860-6-git-send-email-stefano.stabellini@eu.citrix.com> b/test/corpus/<1343316846-25860-6-git-send-email-stefano.stabellini@eu.citrix.com>
deleted file mode 100644 (file)
index 3cc0ab4..0000000
+++ /dev/null
@@ -1,171 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Jul 26 16:40:16 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 26 Jul 2012 16:40:16 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SuQAc-0001WF-Lo
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 26 Jul 2012 16:40:16 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SuQ5c-0004bP-4i; Thu, 26 Jul 2012 15:35:00 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1SuQ5a-0004Zf-FT
-       for xen-devel@lists.xensource.com; Thu, 26 Jul 2012 15:34:58 +0000
-Received: from [85.158.143.35:9653] by server-2.bemta-4.messagelabs.com id
-       59/CE-17938-1A361105; Thu, 26 Jul 2012 15:34:57 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-16.tower-21.messagelabs.com!1343316894!14686643!2
-X-Originating-IP: [66.165.176.89]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNTk5NzY=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.2; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 19101 invoked from network); 26 Jul 2012 15:34:56 -0000
-Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
-       by server-16.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
-       26 Jul 2012 15:34:56 -0000
-X-IronPort-AV: E=Sophos;i="4.77,659,1336363200"; d="scan'208";a="32688376"
-Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
-       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       26 Jul 2012 11:34:55 -0400
-Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
-       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
-       Thu, 26 Jul 2012 11:34:55 -0400
-Received: from kaball.uk.xensource.com ([10.80.2.59])  by
-       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
-       <stefano.stabellini@eu.citrix.com>)     id 1SuQ5M-0006qa-RT;
-       Thu, 26 Jul 2012 16:34:44 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-To: <linux-kernel@vger.kernel.org>
-Date: Thu, 26 Jul 2012 16:33:48 +0100
-Message-ID: <1343316846-25860-6-git-send-email-stefano.stabellini@eu.citrix.com>
-X-Mailer: git-send-email 1.7.9.5
-In-Reply-To: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
-References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
-MIME-Version: 1.0
-Cc: xen-devel@lists.xensource.com, linaro-dev@lists.linaro.org,
-       Ian.Campbell@citrix.com, arnd@arndb.de, konrad.wilk@oracle.com,
-       catalin.marinas@arm.com,
-       Stefano Stabellini <stefano.stabellini@eu.citrix.com>,
-       tim@xen.org, linux-arm-kernel@lists.infradead.org
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
-Subject: [Xen-devel] [PATCH 06/24] xen: missing includes
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
----
- drivers/tty/hvc/hvc_xen.c                  |    2 ++
- drivers/xen/grant-table.c                  |    1 +
- drivers/xen/xenbus/xenbus_probe_frontend.c |    1 +
- include/xen/interface/xen.h                |    3 +++
- include/xen/privcmd.h                      |    1 +
- 5 files changed, 8 insertions(+), 0 deletions(-)
-
-diff --git a/drivers/tty/hvc/hvc_xen.c b/drivers/tty/hvc/hvc_xen.c
-index 944eaeb..dc07f56 100644
---- a/drivers/tty/hvc/hvc_xen.c
-+++ b/drivers/tty/hvc/hvc_xen.c
-@@ -21,6 +21,7 @@
- #include <linux/console.h>
- #include <linux/delay.h>
- #include <linux/err.h>
-+#include <linux/irq.h>
- #include <linux/init.h>
- #include <linux/types.h>
- #include <linux/list.h>
-@@ -35,6 +36,7 @@
- #include <xen/page.h>
- #include <xen/events.h>
- #include <xen/interface/io/console.h>
-+#include <xen/interface/sched.h>
- #include <xen/hvc-console.h>
- #include <xen/xenbus.h>
-diff --git a/drivers/xen/grant-table.c b/drivers/xen/grant-table.c
-index 0bfc1ef..1d0d95e 100644
---- a/drivers/xen/grant-table.c
-+++ b/drivers/xen/grant-table.c
-@@ -47,6 +47,7 @@
- #include <xen/interface/memory.h>
- #include <xen/hvc-console.h>
- #include <asm/xen/hypercall.h>
-+#include <asm/xen/interface.h>
- #include <asm/pgtable.h>
- #include <asm/sync_bitops.h>
-diff --git a/drivers/xen/xenbus/xenbus_probe_frontend.c b/drivers/xen/xenbus/xenbus_probe_frontend.c
-index a31b54d..3159a37 100644
---- a/drivers/xen/xenbus/xenbus_probe_frontend.c
-+++ b/drivers/xen/xenbus/xenbus_probe_frontend.c
-@@ -21,6 +21,7 @@
- #include <xen/xenbus.h>
- #include <xen/events.h>
- #include <xen/page.h>
-+#include <xen/xen.h>
- #include <xen/platform_pci.h>
-diff --git a/include/xen/interface/xen.h b/include/xen/interface/xen.h
-index a890804..4f29f33 100644
---- a/include/xen/interface/xen.h
-+++ b/include/xen/interface/xen.h
-@@ -10,7 +10,10 @@
- #define __XEN_PUBLIC_XEN_H__
- #include <asm/xen/interface.h>
-+#include <linux/types.h>
-+#ifdef CONFIG_X86
- #include <asm/pvclock-abi.h>
-+#endif
- /*
-  * XEN "SYSTEM CALLS" (a.k.a. HYPERCALLS).
-diff --git a/include/xen/privcmd.h b/include/xen/privcmd.h
-index 17857fb..4d58881 100644
---- a/include/xen/privcmd.h
-+++ b/include/xen/privcmd.h
-@@ -35,6 +35,7 @@
- #include <linux/types.h>
- #include <linux/compiler.h>
-+#include <xen/interface/xen.h>
- typedef unsigned long xen_pfn_t;
--- 
-1.7.2.5
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1343316846-25860-7-git-send-email-stefano.stabellini@eu.citrix.com> b/test/corpus/<1343316846-25860-7-git-send-email-stefano.stabellini@eu.citrix.com>
deleted file mode 100644 (file)
index 1cd91d5..0000000
+++ /dev/null
@@ -1,174 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Jul 26 16:38:36 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 26 Jul 2012 16:38:36 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SuQ90-0001Tb-Ld
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 26 Jul 2012 16:38:36 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SuQ5d-0004cR-L6; Thu, 26 Jul 2012 15:35:01 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1SuQ5b-0004Yo-LC
-       for xen-devel@lists.xensource.com; Thu, 26 Jul 2012 15:34:59 +0000
-Received: from [85.158.143.35:10897] by server-1.bemta-4.messagelabs.com id
-       F7/E7-24392-3A361105; Thu, 26 Jul 2012 15:34:59 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-3.tower-21.messagelabs.com!1343316891!14677221!5
-X-Originating-IP: [66.165.176.89]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNTk5NzY=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.2; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 14515 invoked from network); 26 Jul 2012 15:34:56 -0000
-Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
-       by server-3.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
-       26 Jul 2012 15:34:56 -0000
-X-IronPort-AV: E=Sophos;i="4.77,659,1336363200"; d="scan'208";a="32688377"
-Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
-       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       26 Jul 2012 11:34:55 -0400
-Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
-       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
-       Thu, 26 Jul 2012 11:34:55 -0400
-Received: from kaball.uk.xensource.com ([10.80.2.59])  by
-       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
-       <stefano.stabellini@eu.citrix.com>)     id 1SuQ5M-0006qa-TM;
-       Thu, 26 Jul 2012 16:34:44 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-To: <linux-kernel@vger.kernel.org>
-Date: Thu, 26 Jul 2012 16:33:49 +0100
-Message-ID: <1343316846-25860-7-git-send-email-stefano.stabellini@eu.citrix.com>
-X-Mailer: git-send-email 1.7.9.5
-In-Reply-To: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
-References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
-MIME-Version: 1.0
-Cc: xen-devel@lists.xensource.com, linaro-dev@lists.linaro.org,
-       Ian.Campbell@citrix.com, arnd@arndb.de, konrad.wilk@oracle.com,
-       catalin.marinas@arm.com,
-       Stefano Stabellini <stefano.stabellini@eu.citrix.com>,
-       tim@xen.org, linux-arm-kernel@lists.infradead.org
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
-Subject: [Xen-devel] [PATCH 07/24] xen/arm: Xen detection and shared_info
-       page mapping
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-Check for a "/xen" node in the device tree, if it is present set
-xen_domain_type to XEN_HVM_DOMAIN and continue initialization.
-
-Map the real shared info page using XENMEM_add_to_physmap with
-XENMAPSPACE_shared_info.
-
-Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
----
- arch/arm/xen/enlighten.c |   56 ++++++++++++++++++++++++++++++++++++++++++++++
- 1 files changed, 56 insertions(+), 0 deletions(-)
-
-diff --git a/arch/arm/xen/enlighten.c b/arch/arm/xen/enlighten.c
-index d27c2a6..8c923af 100644
---- a/arch/arm/xen/enlighten.c
-+++ b/arch/arm/xen/enlighten.c
-@@ -5,6 +5,9 @@
- #include <asm/xen/hypervisor.h>
- #include <asm/xen/hypercall.h>
- #include <linux/module.h>
-+#include <linux/of.h>
-+#include <linux/of_irq.h>
-+#include <linux/of_address.h>
- struct start_info _xen_start_info;
- struct start_info *xen_start_info = &_xen_start_info;
-@@ -33,3 +36,56 @@ int xen_remap_domain_mfn_range(struct vm_area_struct *vma,
-       return -ENOSYS;
- }
- EXPORT_SYMBOL_GPL(xen_remap_domain_mfn_range);
-+
-+/*
-+ * == Xen Device Tree format ==
-+ * - /xen node;
-+ * - compatible "arm,xen";
-+ * - one interrupt for Xen event notifications;
-+ * - one memory region to map the grant_table.
-+ */
-+static int __init xen_guest_init(void)
-+{
-+      int cpu;
-+      struct xen_add_to_physmap xatp;
-+      static struct shared_info *shared_info_page = 0;
-+      struct device_node *node;
-+
-+      node = of_find_compatible_node(NULL, NULL, "arm,xen");
-+      if (!node) {
-+              pr_info("No Xen support\n");
-+              return 0;
-+      }
-+      xen_domain_type = XEN_HVM_DOMAIN;
-+
-+      if (!shared_info_page)
-+              shared_info_page = (struct shared_info *)
-+                      get_zeroed_page(GFP_KERNEL);
-+      if (!shared_info_page) {
-+              pr_err("not enough memory");
-+              return -ENOMEM;
-+      }
-+      xatp.domid = DOMID_SELF;
-+      xatp.idx = 0;
-+      xatp.space = XENMAPSPACE_shared_info;
-+      xatp.gpfn = __pa(shared_info_page) >> PAGE_SHIFT;
-+      if (HYPERVISOR_memory_op(XENMEM_add_to_physmap, &xatp))
-+              BUG();
-+
-+      HYPERVISOR_shared_info = (struct shared_info *)shared_info_page;
-+
-+      /* xen_vcpu is a pointer to the vcpu_info struct in the shared_info
-+       * page, we use it in the event channel upcall and in some pvclock
-+       * related functions. We don't need the vcpu_info placement
-+       * optimizations because we don't use any pv_mmu or pv_irq op on
-+       * HVM.
-+       * When xen_hvm_init_shared_info is run at boot time only vcpu 0 is
-+       * online but xen_hvm_init_shared_info is run at resume time too and
-+       * in that case multiple vcpus might be online. */
-+      for_each_online_cpu(cpu) {
-+              per_cpu(xen_vcpu, cpu) =
-+                      &HYPERVISOR_shared_info->vcpu_info[cpu];
-+      }
-+      return 0;
-+}
-+core_initcall(xen_guest_init);
--- 
-1.7.2.5
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1343316846-25860-8-git-send-email-stefano.stabellini@eu.citrix.com> b/test/corpus/<1343316846-25860-8-git-send-email-stefano.stabellini@eu.citrix.com>
deleted file mode 100644 (file)
index b13d26b..0000000
+++ /dev/null
@@ -1,285 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Jul 26 16:38:40 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 26 Jul 2012 16:38:40 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SuQ95-0001Tv-54
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 26 Jul 2012 16:38:40 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SuQ5h-0004gj-5q; Thu, 26 Jul 2012 15:35:05 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1SuQ5e-0004cz-3T
-       for xen-devel@lists.xensource.com; Thu, 26 Jul 2012 15:35:02 +0000
-Received: from [85.158.139.83:17969] by server-6.bemta-5.messagelabs.com id
-       C0/88-11348-5A361105; Thu, 26 Jul 2012 15:35:01 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-8.tower-182.messagelabs.com!1343316896!17525940!3
-X-Originating-IP: [66.165.176.63]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyNjczNDY=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.2; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 26717 invoked from network); 26 Jul 2012 15:35:00 -0000
-Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
-       by server-8.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
-       26 Jul 2012 15:35:00 -0000
-X-IronPort-AV: E=Sophos;i="4.77,659,1336363200"; d="scan'208";a="203308475"
-Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
-       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       26 Jul 2012 11:34:55 -0400
-Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
-       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
-       Thu, 26 Jul 2012 11:34:55 -0400
-Received: from kaball.uk.xensource.com ([10.80.2.59])  by
-       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
-       <stefano.stabellini@eu.citrix.com>)     id 1SuQ5M-0006qa-VI;
-       Thu, 26 Jul 2012 16:34:44 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-To: <linux-kernel@vger.kernel.org>
-Date: Thu, 26 Jul 2012 16:33:50 +0100
-Message-ID: <1343316846-25860-8-git-send-email-stefano.stabellini@eu.citrix.com>
-X-Mailer: git-send-email 1.7.9.5
-In-Reply-To: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
-References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
-MIME-Version: 1.0
-Cc: xen-devel@lists.xensource.com, linaro-dev@lists.linaro.org,
-       Ian.Campbell@citrix.com, arnd@arndb.de, konrad.wilk@oracle.com,
-       catalin.marinas@arm.com,
-       Stefano Stabellini <stefano.stabellini@eu.citrix.com>,
-       tim@xen.org, linux-arm-kernel@lists.infradead.org
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
-Subject: [Xen-devel] [PATCH 08/24] xen/arm: Introduce xen_pfn_t for pfn and
-       mfn types
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-All the original Xen headers have xen_pfn_t as mfn and pfn type, however
-when they have been imported in Linux, xen_pfn_t has been replaced with
-unsigned long. That might work for x86 and ia64 but it does not for arm.
-Bring back xen_pfn_t and let each architecture define xen_pfn_t as they
-see fit.
-
-Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
----
- arch/arm/include/asm/xen/interface.h  |    2 ++
- arch/ia64/include/asm/xen/interface.h |    2 +-
- arch/x86/include/asm/xen/interface.h  |    2 ++
- include/xen/interface/grant_table.h   |    4 ++--
- include/xen/interface/memory.h        |    6 +++---
- include/xen/interface/platform.h      |    4 ++--
- include/xen/interface/xen.h           |    6 +++---
- include/xen/privcmd.h                 |    2 --
- 8 files changed, 15 insertions(+), 13 deletions(-)
-
-diff --git a/arch/arm/include/asm/xen/interface.h b/arch/arm/include/asm/xen/interface.h
-index 6c3ab59..76b1ebe 100644
---- a/arch/arm/include/asm/xen/interface.h
-+++ b/arch/arm/include/asm/xen/interface.h
-@@ -25,6 +25,7 @@
-       } while (0)
- #ifndef __ASSEMBLY__
-+typedef uint64_t xen_pfn_t;
- /* Guest handles for primitive C types. */
- __DEFINE_GUEST_HANDLE(uchar, unsigned char);
- __DEFINE_GUEST_HANDLE(uint,  unsigned int);
-@@ -35,6 +36,7 @@ DEFINE_GUEST_HANDLE(long);
- DEFINE_GUEST_HANDLE(void);
- DEFINE_GUEST_HANDLE(uint64_t);
- DEFINE_GUEST_HANDLE(uint32_t);
-+DEFINE_GUEST_HANDLE(xen_pfn_t);
- /* Maximum number of virtual CPUs in multi-processor guests. */
- #define MAX_VIRT_CPUS 1
-diff --git a/arch/ia64/include/asm/xen/interface.h b/arch/ia64/include/asm/xen/interface.h
-index 09d5f7f..9efa068 100644
---- a/arch/ia64/include/asm/xen/interface.h
-+++ b/arch/ia64/include/asm/xen/interface.h
-@@ -67,6 +67,7 @@
- #define set_xen_guest_handle(hnd, val)        do { (hnd).p = val; } while (0)
- #ifndef __ASSEMBLY__
-+typedef unsigned long xen_pfn_t;
- /* Guest handles for primitive C types. */
- __DEFINE_GUEST_HANDLE(uchar, unsigned char);
- __DEFINE_GUEST_HANDLE(uint, unsigned int);
-@@ -79,7 +80,6 @@ DEFINE_GUEST_HANDLE(void);
- DEFINE_GUEST_HANDLE(uint64_t);
- DEFINE_GUEST_HANDLE(uint32_t);
--typedef unsigned long xen_pfn_t;
- DEFINE_GUEST_HANDLE(xen_pfn_t);
- #define PRI_xen_pfn   "lx"
- #endif
-diff --git a/arch/x86/include/asm/xen/interface.h b/arch/x86/include/asm/xen/interface.h
-index cbf0c9d..24c1b07 100644
---- a/arch/x86/include/asm/xen/interface.h
-+++ b/arch/x86/include/asm/xen/interface.h
-@@ -47,6 +47,7 @@
- #endif
- #ifndef __ASSEMBLY__
-+typedef unsigned long xen_pfn_t;
- /* Guest handles for primitive C types. */
- __DEFINE_GUEST_HANDLE(uchar, unsigned char);
- __DEFINE_GUEST_HANDLE(uint,  unsigned int);
-@@ -57,6 +58,7 @@ DEFINE_GUEST_HANDLE(long);
- DEFINE_GUEST_HANDLE(void);
- DEFINE_GUEST_HANDLE(uint64_t);
- DEFINE_GUEST_HANDLE(uint32_t);
-+DEFINE_GUEST_HANDLE(xen_pfn_t);
- #endif
- #ifndef HYPERVISOR_VIRT_START
-diff --git a/include/xen/interface/grant_table.h b/include/xen/interface/grant_table.h
-index a17d844..7da811b 100644
---- a/include/xen/interface/grant_table.h
-+++ b/include/xen/interface/grant_table.h
-@@ -338,7 +338,7 @@ DEFINE_GUEST_HANDLE_STRUCT(gnttab_dump_table);
- #define GNTTABOP_transfer                4
- struct gnttab_transfer {
-     /* IN parameters. */
--    unsigned long mfn;
-+    xen_pfn_t mfn;
-     domid_t       domid;
-     grant_ref_t   ref;
-     /* OUT parameters. */
-@@ -375,7 +375,7 @@ struct gnttab_copy {
-       struct {
-               union {
-                       grant_ref_t ref;
--                      unsigned long   gmfn;
-+                      xen_pfn_t   gmfn;
-               } u;
-               domid_t  domid;
-               uint16_t offset;
-diff --git a/include/xen/interface/memory.h b/include/xen/interface/memory.h
-index eac3ce1..abbbff0 100644
---- a/include/xen/interface/memory.h
-+++ b/include/xen/interface/memory.h
-@@ -31,7 +31,7 @@ struct xen_memory_reservation {
-      *   OUT: GMFN bases of extents that were allocated
-      *   (NB. This command also updates the mach_to_phys translation table)
-      */
--    GUEST_HANDLE(ulong) extent_start;
-+    GUEST_HANDLE(xen_pfn_t) extent_start;
-     /* Number of extents, and size/alignment of each (2^extent_order pages). */
-     unsigned long  nr_extents;
-@@ -130,7 +130,7 @@ struct xen_machphys_mfn_list {
-      * any large discontiguities in the machine address space, 2MB gaps in
-      * the machphys table will be represented by an MFN base of zero.
-      */
--    GUEST_HANDLE(ulong) extent_start;
-+    GUEST_HANDLE(xen_pfn_t) extent_start;
-     /*
-      * Number of extents written to the above array. This will be smaller
-@@ -172,7 +172,7 @@ struct xen_add_to_physmap {
-     unsigned long idx;
-     /* GPFN where the source mapping page should appear. */
--    unsigned long gpfn;
-+    xen_pfn_t gpfn;
- };
- DEFINE_GUEST_HANDLE_STRUCT(xen_add_to_physmap);
-diff --git a/include/xen/interface/platform.h b/include/xen/interface/platform.h
-index 486653f..0bea470 100644
---- a/include/xen/interface/platform.h
-+++ b/include/xen/interface/platform.h
-@@ -54,7 +54,7 @@ DEFINE_GUEST_HANDLE_STRUCT(xenpf_settime_t);
- #define XENPF_add_memtype         31
- struct xenpf_add_memtype {
-       /* IN variables. */
--      unsigned long mfn;
-+      xen_pfn_t mfn;
-       uint64_t nr_mfns;
-       uint32_t type;
-       /* OUT variables. */
-@@ -84,7 +84,7 @@ struct xenpf_read_memtype {
-       /* IN variables. */
-       uint32_t reg;
-       /* OUT variables. */
--      unsigned long mfn;
-+      xen_pfn_t mfn;
-       uint64_t nr_mfns;
-       uint32_t type;
- };
-diff --git a/include/xen/interface/xen.h b/include/xen/interface/xen.h
-index 4f29f33..d59a991 100644
---- a/include/xen/interface/xen.h
-+++ b/include/xen/interface/xen.h
-@@ -192,7 +192,7 @@ struct mmuext_op {
-       unsigned int cmd;
-       union {
-               /* [UN]PIN_TABLE, NEW_BASEPTR, NEW_USER_BASEPTR */
--              unsigned long mfn;
-+              xen_pfn_t mfn;
-               /* INVLPG_LOCAL, INVLPG_ALL, SET_LDT */
-               unsigned long linear_addr;
-       } arg1;
-@@ -432,11 +432,11 @@ struct start_info {
-       unsigned long nr_pages;     /* Total pages allocated to this domain.  */
-       unsigned long shared_info;  /* MACHINE address of shared info struct. */
-       uint32_t flags;             /* SIF_xxx flags.                         */
--      unsigned long store_mfn;    /* MACHINE page number of shared page.    */
-+      xen_pfn_t store_mfn;        /* MACHINE page number of shared page.    */
-       uint32_t store_evtchn;      /* Event channel for store communication. */
-       union {
-               struct {
--                      unsigned long mfn;  /* MACHINE page number of console page.   */
-+                      xen_pfn_t mfn;      /* MACHINE page number of console page.   */
-                       uint32_t  evtchn;   /* Event channel for console page.        */
-               } domU;
-               struct {
-diff --git a/include/xen/privcmd.h b/include/xen/privcmd.h
-index 4d58881..45c1aa1 100644
---- a/include/xen/privcmd.h
-+++ b/include/xen/privcmd.h
-@@ -37,8 +37,6 @@
- #include <linux/compiler.h>
- #include <xen/interface/xen.h>
--typedef unsigned long xen_pfn_t;
--
- struct privcmd_hypercall {
-       __u64 op;
-       __u64 arg[5];
--- 
-1.7.2.5
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1343316846-25860-9-git-send-email-stefano.stabellini@eu.citrix.com> b/test/corpus/<1343316846-25860-9-git-send-email-stefano.stabellini@eu.citrix.com>
deleted file mode 100644 (file)
index 0d7966d..0000000
+++ /dev/null
@@ -1,167 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Jul 26 16:38:33 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 26 Jul 2012 16:38:33 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SuQ90-0001Tc-Nd
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 26 Jul 2012 16:38:33 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SuQ5f-0004eX-5t; Thu, 26 Jul 2012 15:35:03 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1SuQ5c-0004bM-FB
-       for xen-devel@lists.xensource.com; Thu, 26 Jul 2012 15:35:00 +0000
-Received: from [85.158.139.83:17842] by server-1.bemta-5.messagelabs.com id
-       AD/2F-29759-3A361105; Thu, 26 Jul 2012 15:34:59 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-8.tower-182.messagelabs.com!1343316896!17525940!1
-X-Originating-IP: [66.165.176.63]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyNjczNDY=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.2; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 26624 invoked from network); 26 Jul 2012 15:34:58 -0000
-Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
-       by server-8.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
-       26 Jul 2012 15:34:58 -0000
-X-IronPort-AV: E=Sophos;i="4.77,659,1336363200"; d="scan'208";a="203308473"
-Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
-       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       26 Jul 2012 11:34:55 -0400
-Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
-       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
-       Thu, 26 Jul 2012 11:34:56 -0400
-Received: from kaball.uk.xensource.com ([10.80.2.59])  by
-       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
-       <stefano.stabellini@eu.citrix.com>)     id 1SuQ5M-0006qa-W0;
-       Thu, 26 Jul 2012 16:34:45 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-To: <linux-kernel@vger.kernel.org>
-Date: Thu, 26 Jul 2012 16:33:51 +0100
-Message-ID: <1343316846-25860-9-git-send-email-stefano.stabellini@eu.citrix.com>
-X-Mailer: git-send-email 1.7.9.5
-In-Reply-To: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
-References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
-MIME-Version: 1.0
-Cc: xen-devel@lists.xensource.com, linaro-dev@lists.linaro.org,
-       Ian.Campbell@citrix.com, arnd@arndb.de, konrad.wilk@oracle.com,
-       catalin.marinas@arm.com,
-       Stefano Stabellini <stefano.stabellini@eu.citrix.com>,
-       tim@xen.org, linux-arm-kernel@lists.infradead.org
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
-Subject: [Xen-devel] [PATCH 09/24] xen/arm: compile and run xenbus
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-bind_evtchn_to_irqhandler can legitimately return 0 (irq 0): it is not
-an error.
-
-If Linux is running as an HVM domain and is running as Dom0, use
-xenstored_local_init to initialize the xenstore page and event channel.
-
-Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
----
- drivers/xen/xenbus/xenbus_comms.c |    2 +-
- drivers/xen/xenbus/xenbus_probe.c |   27 +++++++++++++++++----------
- drivers/xen/xenbus/xenbus_xs.c    |    1 +
- 3 files changed, 19 insertions(+), 11 deletions(-)
-
-diff --git a/drivers/xen/xenbus/xenbus_comms.c b/drivers/xen/xenbus/xenbus_comms.c
-index 52fe7ad..c5aa55c 100644
---- a/drivers/xen/xenbus/xenbus_comms.c
-+++ b/drivers/xen/xenbus/xenbus_comms.c
-@@ -224,7 +224,7 @@ int xb_init_comms(void)
-               int err;
-               err = bind_evtchn_to_irqhandler(xen_store_evtchn, wake_waiting,
-                                               0, "xenbus", &xb_waitq);
--              if (err <= 0) {
-+              if (err < 0) {
-                       printk(KERN_ERR "XENBUS request irq failed %i\n", err);
-                       return err;
-               }
-diff --git a/drivers/xen/xenbus/xenbus_probe.c b/drivers/xen/xenbus/xenbus_probe.c
-index b793723..3ae47c2 100644
---- a/drivers/xen/xenbus/xenbus_probe.c
-+++ b/drivers/xen/xenbus/xenbus_probe.c
-@@ -729,16 +729,23 @@ static int __init xenbus_init(void)
-       xenbus_ring_ops_init();
-       if (xen_hvm_domain()) {
--              uint64_t v = 0;
--              err = hvm_get_parameter(HVM_PARAM_STORE_EVTCHN, &v);
--              if (err)
--                      goto out_error;
--              xen_store_evtchn = (int)v;
--              err = hvm_get_parameter(HVM_PARAM_STORE_PFN, &v);
--              if (err)
--                      goto out_error;
--              xen_store_mfn = (unsigned long)v;
--              xen_store_interface = ioremap(xen_store_mfn << PAGE_SHIFT, PAGE_SIZE);
-+              if (xen_initial_domain()) {
-+                      err = xenstored_local_init();
-+                      xen_store_interface =
-+                              phys_to_virt(xen_store_mfn << PAGE_SHIFT);
-+              } else {
-+                      uint64_t v = 0;
-+                      err = hvm_get_parameter(HVM_PARAM_STORE_EVTCHN, &v);
-+                      if (err)
-+                              goto out_error;
-+                      xen_store_evtchn = (int)v;
-+                      err = hvm_get_parameter(HVM_PARAM_STORE_PFN, &v);
-+                      if (err)
-+                              goto out_error;
-+                      xen_store_mfn = (unsigned long)v;
-+                      xen_store_interface =
-+                              ioremap(xen_store_mfn << PAGE_SHIFT, PAGE_SIZE);
-+              }
-       } else {
-               xen_store_evtchn = xen_start_info->store_evtchn;
-               xen_store_mfn = xen_start_info->store_mfn;
-diff --git a/drivers/xen/xenbus/xenbus_xs.c b/drivers/xen/xenbus/xenbus_xs.c
-index d1c217b..f7feb3d 100644
---- a/drivers/xen/xenbus/xenbus_xs.c
-+++ b/drivers/xen/xenbus/xenbus_xs.c
-@@ -44,6 +44,7 @@
- #include <linux/rwsem.h>
- #include <linux/module.h>
- #include <linux/mutex.h>
-+#include <asm/xen/hypervisor.h>
- #include <xen/xenbus.h>
- #include <xen/xen.h>
- #include "xenbus_comms.h"
--- 
-1.7.2.5
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1343379653.6812.92.camel@zakaz.uk.xensource.com> b/test/corpus/<1343379653.6812.92.camel@zakaz.uk.xensource.com>
deleted file mode 100644 (file)
index ca7c2bf..0000000
+++ /dev/null
@@ -1,111 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Jul 27 10:05:15 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 27 Jul 2012 10:05:15 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SugTu-0000es-5P
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 27 Jul 2012 10:05:15 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SugPs-0004ZD-K1; Fri, 27 Jul 2012 09:01:00 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1SugPq-0004Z6-Us
-       for xen-devel@lists.xensource.com; Fri, 27 Jul 2012 09:00:59 +0000
-Received: from [85.158.143.99:51189] by server-3.bemta-4.messagelabs.com id
-       B6/EF-01511-AC852105; Fri, 27 Jul 2012 09:00:58 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-7.tower-216.messagelabs.com!1343379657!25619756!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDcwNjg=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.2; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 16110 invoked from network); 27 Jul 2012 09:00:57 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-7.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
-       27 Jul 2012 09:00:57 -0000
-X-IronPort-AV: E=Sophos;i="4.77,666,1336348800"; d="scan'208";a="13729848"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       27 Jul 2012 09:00:56 +0000
-Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0;
-       Fri, 27 Jul 2012 10:00:56 +0100
-Message-ID: <1343379653.6812.92.camel@zakaz.uk.xensource.com>
-From: Ian Campbell <Ian.Campbell@citrix.com>
-To: David Vrabel <dvrabel@cantab.net>
-Date: Fri, 27 Jul 2012 10:00:53 +0100
-In-Reply-To: <501176AF.3000607@cantab.net>
-References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
-       <1343316846-25860-2-git-send-email-stefano.stabellini@eu.citrix.com>
-       <501176AF.3000607@cantab.net>
-Organization: Citrix Systems, Inc.
-X-Mailer: Evolution 3.4.3-1 
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
-       "linaro-dev@lists.linaro.org" <linaro-dev@lists.linaro.org>,
-       "arnd@arndb.de" <arnd@arndb.de>,
-       "konrad.wilk@oracle.com" <konrad.wilk@oracle.com>,
-       "catalin.marinas@arm.com" <catalin.marinas@arm.com>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>,
-       "Tim \(Xen.org\)" <tim@xen.org>,
-       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
-       "linux-arm-kernel@lists.infradead.org"
-       <linux-arm-kernel@lists.infradead.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 02/24] xen/arm: hypercalls
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Thu, 2012-07-26 at 17:56 +0100, David Vrabel wrote:
-> On 26/07/12 16:33, Stefano Stabellini wrote:
-> > 
-> > + * The hvc ISS is required to be 0xEA1, that is the Xen specific ARM
-> > + * hypercall tag.
-> 
-> Is this number, 0xea1, assigned to Xen by some external body?
-
-The value and semantics of the hvc instructions immediate operand is
-entirely up to the hypervisor authors. We could have chosen 0 or some
-random number, we went for the latter because it increases the chances,
-by some tiny amount, that we won't clash with some other hypervisors ABI
-which makes supporting "foreign" guests that bit easier should it even
-come to it.
-
-IOW it's arbitrary in the same way that a Linux system calls used to use
-int 0x80.
-
-Ian.
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1343380659.6812.106.camel@zakaz.uk.xensource.com> b/test/corpus/<1343380659.6812.106.camel@zakaz.uk.xensource.com>
deleted file mode 100644 (file)
index 2993633..0000000
+++ /dev/null
@@ -1,306 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Jul 27 10:25:22 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 27 Jul 2012 10:25:22 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SugnM-0000il-G8
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 27 Jul 2012 10:25:22 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SuggI-0005QG-VC; Fri, 27 Jul 2012 09:17:58 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1SuggH-0005QA-VX
-       for xen-devel@lists.xensource.com; Fri, 27 Jul 2012 09:17:58 +0000
-Received: from [85.158.143.35:63312] by server-3.bemta-4.messagelabs.com id
-       57/6E-01511-5CC52105; Fri, 27 Jul 2012 09:17:57 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-3.tower-21.messagelabs.com!1343380675!14818925!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDcxMzQ=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.2; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 21255 invoked from network); 27 Jul 2012 09:17:55 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-3.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
-       27 Jul 2012 09:17:55 -0000
-X-IronPort-AV: E=Sophos;i="4.77,666,1336348800"; d="scan'208";a="13730245"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       27 Jul 2012 09:17:40 +0000
-Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0;
-       Fri, 27 Jul 2012 10:17:40 +0100
-Message-ID: <1343380659.6812.106.camel@zakaz.uk.xensource.com>
-From: Ian Campbell <Ian.Campbell@citrix.com>
-To: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-Date: Fri, 27 Jul 2012 10:17:39 +0100
-In-Reply-To: <20120726163352.GC9222@phenom.dumpdata.com>
-References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
-       <1343316846-25860-2-git-send-email-stefano.stabellini@eu.citrix.com>
-       <20120726163352.GC9222@phenom.dumpdata.com>
-Organization: Citrix Systems, Inc.
-X-Mailer: Evolution 3.4.3-1 
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
-       "linaro-dev@lists.linaro.org" <linaro-dev@lists.linaro.org>,
-       "arnd@arndb.de" <arnd@arndb.de>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>,
-       "catalin.marinas@arm.com" <catalin.marinas@arm.com>, "Tim
-       \(Xen.org\)" <tim@xen.org>,
-       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
-       "linux-arm-kernel@lists.infradead.org"
-       <linux-arm-kernel@lists.infradead.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 02/24] xen/arm: hypercalls
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Thu, 2012-07-26 at 17:33 +0100, Konrad Rzeszutek Wilk wrote:
-> On Thu, Jul 26, 2012 at 04:33:44PM +0100, Stefano Stabellini wrote:
-> > Use r12 to pass the hypercall number to the hypervisor.
-> > 
-> > We need a register to pass the hypercall number because we might not
-> > know it at compile time and HVC only takes an immediate argument.
-> > 
-> > Among the available registers r12 seems to be the best choice because it
-> > is defined as "intra-procedure call scratch register".
-> > 
-> > Use the ISS to pass an hypervisor specific tag.
-> > 
-> > Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-> > ---
-> >  arch/arm/include/asm/xen/hypercall.h |   50 ++++++++++++++++++++++++++
-> >  arch/arm/xen/Makefile                |    2 +-
-> >  arch/arm/xen/hypercall.S             |   65 ++++++++++++++++++++++++++++++++++
-> >  3 files changed, 116 insertions(+), 1 deletions(-)
-> >  create mode 100644 arch/arm/include/asm/xen/hypercall.h
-> >  create mode 100644 arch/arm/xen/hypercall.S
-> > 
-> > diff --git a/arch/arm/include/asm/xen/hypercall.h b/arch/arm/include/asm/xen/hypercall.h
-> > new file mode 100644
-> > index 0000000..4ac0624
-> > --- /dev/null
-> > +++ b/arch/arm/include/asm/xen/hypercall.h
-> > @@ -0,0 +1,50 @@
-> > +/******************************************************************************
-> > + * hypercall.h
-> > + *
-> > + * Linux-specific hypervisor handling.
-> > + *
-> > + * Stefano Stabellini <stefano.stabellini@eu.citrix.com>, Citrix, 2012
-> > + *
-> > + * This program is free software; you can redistribute it and/or
-> > + * modify it under the terms of the GNU General Public License version 2
-> > + * as published by the Free Software Foundation; or, when distributed
-> > + * separately from the Linux kernel or incorporated into other
-> > + * software packages, subject to the following license:
-> > + *
-> > + * Permission is hereby granted, free of charge, to any person obtaining a copy
-> > + * of this source file (the "Software"), to deal in the Software without
-> > + * restriction, including without limitation the rights to use, copy, modify,
-> > + * merge, publish, distribute, sublicense, and/or sell copies of the Software,
-> > + * and to permit persons to whom the Software is furnished to do so, subject to
-> > + * the following conditions:
-> > + *
-> > + * The above copyright notice and this permission notice shall be included in
-> > + * all copies or substantial portions of the Software.
-> > + *
-> > + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-> > + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-> > + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-> > + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-> > + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-> > + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
-> > + * IN THE SOFTWARE.
-> > + */
-> > +
-> > +#ifndef _ASM_ARM_XEN_HYPERCALL_H
-> > +#define _ASM_ARM_XEN_HYPERCALL_H
-> > +
-> > +#include <xen/interface/xen.h>
-> > +
-> > +long privcmd_call(unsigned call, unsigned long a1,
-> > +          unsigned long a2, unsigned long a3,
-> > +          unsigned long a4, unsigned long a5);
-> > +int HYPERVISOR_xen_version(int cmd, void *arg);
-> > +int HYPERVISOR_console_io(int cmd, int count, char *str);
-> > +int HYPERVISOR_grant_table_op(unsigned int cmd, void *uop, unsigned int count);
-> > +int HYPERVISOR_sched_op(int cmd, void *arg);
-> > +int HYPERVISOR_event_channel_op(int cmd, void *arg);
-> > +unsigned long HYPERVISOR_hvm_op(int op, void *arg);
-> > +int HYPERVISOR_memory_op(unsigned int cmd, void *arg);
-> > +int HYPERVISOR_physdev_op(int cmd, void *arg);
-> > +
-> > +#endif /* _ASM_ARM_XEN_HYPERCALL_H */
-> > diff --git a/arch/arm/xen/Makefile b/arch/arm/xen/Makefile
-> > index 0bad594..b9d6acc 100644
-> > --- a/arch/arm/xen/Makefile
-> > +++ b/arch/arm/xen/Makefile
-> > @@ -1 +1 @@
-> > -obj-y             := enlighten.o
-> > +obj-y             := enlighten.o hypercall.o
-> > diff --git a/arch/arm/xen/hypercall.S b/arch/arm/xen/hypercall.S
-> > new file mode 100644
-> > index 0000000..038cc5b
-> > --- /dev/null
-> > +++ b/arch/arm/xen/hypercall.S
-> > @@ -0,0 +1,65 @@
-> > +/******************************************************************************
-> > + * hypercall.S
-> > + *
-> > + * Xen hypercall wrappers
-> > + *
-> > + * The Xen hypercall calling convention is very similar to the ARM
-> > + * procedure calling convention: the first paramter is passed in r0, the
-> > + * second in r1, the third in r2 and the third in r3. Considering that
-> 
-> I think you meant 'and the fourth in r3'.
-> 
-> So where does the similarity end?  Just in that we use r12?
-
-The standard ARM function calling convention is arguments 1-4 on r0-r3
-and arguments 5+ on the stack. r12 is a scratch register which can be
-clobbered by the *linker* on subroutine call (r12 is also called "ip"
-the intra-procedure call scratch register).
-
-The hypervisor doesn't want to be accessing hypercall arguments off the
-guest stack, for obvious reasons, so we use r4 for the fifth argument
-(and if we even implemented 6 argument hypercalls we'd use r5, etc).
-There is no equivalent to the hypercall number in the procedure calling
-convention so we picked r12 because it is up and out of the way and is
-otherwise a scratch register. Obviously that you must not make a
-procedure call between setting the hypercall number in r12 and calling
-the hvc instruction.
-
-> 
-> > + * Xen hypercalls have 5 arguments at most, the fifth paramter is passed
-> > + * in r4, differently from the procedure calling convention of using the
-> 
-> > + * stack for that case.
-> > + *
-> > + * The hypercall number is passed in r12.
-> > + *
-> > + * The return value is in r0.
-> > + *
-> > + * The hvc ISS is required to be 0xEA1, that is the Xen specific ARM
-> > + * hypercall tag.
-> > + *
-> > + * Stefano Stabellini <stefano.stabellini@eu.citrix.com>, Citrix, 2012
-> > + */
-> > +
-> > +#include <linux/linkage.h>
-> > +#include <asm/assembler.h>
-> > +#include <xen/interface/xen.h>
-> > +
-> > +
-> > +/* HVC 0xEA1 */
-> > +#ifdef CONFIG_THUMB2_KERNEL
-> > +#define xen_hvc .word 0xf7e08ea1
-> > +#else
-> > +#define xen_hvc .word 0xe140ea71
-> > +#endif
-> > +
-> > +/* We need to save and restore r4, because Xen clobbers it. */
-> 
-> Hmm, the comment says r4, but right below I see r12?
-
-The ARM procedure calling convention allows a subroutine to clobber
-r1..r3 (r0 is the return value) but not r4 which must be preserved. But
-the hypervisor ABI clobbers all argument registers so the caller has to
-specially preserve r4 in this context whenever there is a 5 argument
-hypercall.
-
-I presume that none of the hypercalls defined below have 5 arguments and
-therefore we don't need to preserve r4 except in the generic
-privcmd_call function. 
-
-To be honest I prefer the style which we use on x86 which is to define
-hypercall{0,1,2,3,4,5} macros and to wrap those with the specific names
-using inline functions.
-
-I find the x86 way more self documenting, and being in C prevents errors
-around the number of arguments. It also allows for better in-lining and
-exposes to gcc the actual clobbers, which might allow it to avoid saving
-r4 on the stack at all etc.
-
-> Should this comment be by 'privcmd_call'?
-
-When we add a 5 argument hypercall I suppose we'll see the required
-push/pop of r4 added to this macro too.
-
-> > +#define HYPERCALL(hypercall)                      \
-> > +ENTRY(HYPERVISOR_##hypercall)                     \
-> > +  mov r12, #__HYPERVISOR_##hypercall;     \
-> > +  xen_hvc;                                                        \
-> > +  mov pc, lr;                                                     \
-> > +ENDPROC(HYPERVISOR_##hypercall)
-> > +
-> > +                .text
-> > +
-> > +HYPERCALL(xen_version);
-> > +HYPERCALL(console_io);
-> > +HYPERCALL(grant_table_op);
-> > +HYPERCALL(sched_op);
-> > +HYPERCALL(event_channel_op);
-> > +HYPERCALL(hvm_op);
-> > +HYPERCALL(memory_op);
-> > +HYPERCALL(physdev_op);
-> > +
-> > +ENTRY(privcmd_call)
-> > +  stmdb   sp!, {r4}
-> > +  mov r12, r0
-> > +  mov r0, r1
-> > +  mov r1, r2
-> > +  mov r2, r3
-> > +  ldr r3, [sp, #8]
-> > +  ldr r4, [sp, #4]
-> > +  xen_hvc
-> > +  pop {r4}
-
-Why not ldmdb for symmetry?
-
-> > +  mov pc, lr
-> > +ENDPROC(privcmd_call);
-> > -- 
-> > 1.7.2.5
-> > 
-> > 
-> > _______________________________________________
-> > Xen-devel mailing list
-> > Xen-devel@lists.xen.org
-> > http://lists.xen.org/xen-devel
-
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1343380764.6812.108.camel@zakaz.uk.xensource.com> b/test/corpus/<1343380764.6812.108.camel@zakaz.uk.xensource.com>
deleted file mode 100644 (file)
index 97e3919..0000000
+++ /dev/null
@@ -1,124 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Jul 27 10:26:02 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 27 Jul 2012 10:26:02 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1Sugo1-0000jG-33
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 27 Jul 2012 10:26:02 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SugiH-0005Wv-FS; Fri, 27 Jul 2012 09:20:01 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1SugiF-0005Wj-Bq
-       for xen-devel@lists.xensource.com; Fri, 27 Jul 2012 09:19:59 +0000
-Received: from [85.158.143.35:7099] by server-2.bemta-4.messagelabs.com id
-       A7/C3-17938-E3D52105; Fri, 27 Jul 2012 09:19:58 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-8.tower-21.messagelabs.com!1343380797!14172214!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDcxMzQ=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.2; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 9343 invoked from network); 27 Jul 2012 09:19:57 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-8.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
-       27 Jul 2012 09:19:57 -0000
-X-IronPort-AV: E=Sophos;i="4.77,666,1336348800"; d="scan'208";a="13730295"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       27 Jul 2012 09:19:25 +0000
-Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0;
-       Fri, 27 Jul 2012 10:19:25 +0100
-Message-ID: <1343380764.6812.108.camel@zakaz.uk.xensource.com>
-From: Ian Campbell <Ian.Campbell@citrix.com>
-To: Christopher Covington <cov@codeaurora.org>
-Date: Fri, 27 Jul 2012 10:19:24 +0100
-In-Reply-To: <50119856.2020206@codeaurora.org>
-References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
-       <1343316846-25860-2-git-send-email-stefano.stabellini@eu.citrix.com>
-       <50119856.2020206@codeaurora.org>
-Organization: Citrix Systems, Inc.
-X-Mailer: Evolution 3.4.3-1 
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
-       "linaro-dev@lists.linaro.org" <linaro-dev@lists.linaro.org>,
-       "arnd@arndb.de" <arnd@arndb.de>,
-       "konrad.wilk@oracle.com" <konrad.wilk@oracle.com>,
-       "catalin.marinas@arm.com" <catalin.marinas@arm.com>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>,
-       "Tim \(Xen.org\)" <tim@xen.org>,
-       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
-       "linux-arm-kernel@lists.infradead.org"
-       <linux-arm-kernel@lists.infradead.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 02/24] xen/arm: hypercalls
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Thu, 2012-07-26 at 20:19 +0100, Christopher Covington wrote:
-> Hi Stefano,
-> 
-> On 07/26/2012 11:33 AM, Stefano Stabellini wrote:
-> > Use r12 to pass the hypercall number to the hypervisor.
-> > 
-> > We need a register to pass the hypercall number because we might not
-> > know it at compile time and HVC only takes an immediate argument.
-> 
-> You're not going to JIT assemble the appropriate HVC instruction? Darn.
-
-;-)
-
-> How many call numbers are there, though? 8?
-
-The maximum currently defined hypercall number is 55, although there are
-some small gaps so there's actually more like 45 in total.
-
->  It seems like it'd be
-> reasonable to take the approach that seems to be favored for MRC/MCR
-> instructions, using a function containing switch statement that chooses
-> between several inline assembly instructions based off an enum passed to
-> the function. See for example arch_timer_reg_read in
-> arch/arm/kernel/arch_timer.c.
-
-I don't think it is feasible with this number of hypercalls, even
-accepting that in many cases the number will be a constant so gcc can
-likely optimise almost all of it away.
-
-Is there something wrong with the r12 based approach?
-
-Ian.
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1343381305.6812.116.camel@zakaz.uk.xensource.com> b/test/corpus/<1343381305.6812.116.camel@zakaz.uk.xensource.com>
deleted file mode 100644 (file)
index 3216d96..0000000
+++ /dev/null
@@ -1,149 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Jul 27 10:32:56 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 27 Jul 2012 10:32:56 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1Suguj-0000kg-Ut
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 27 Jul 2012 10:32:56 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SugqU-0005rM-Rn; Fri, 27 Jul 2012 09:28:30 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1SugqT-0005rH-3G
-       for xen-devel@lists.xensource.com; Fri, 27 Jul 2012 09:28:29 +0000
-Received: from [85.158.139.83:46627] by server-1.bemta-5.messagelabs.com id
-       FF/11-29759-C3F52105; Fri, 27 Jul 2012 09:28:28 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-11.tower-182.messagelabs.com!1343381307!21729373!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDcxMzQ=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.2; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 18540 invoked from network); 27 Jul 2012 09:28:27 -0000
-Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-11.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
-       27 Jul 2012 09:28:27 -0000
-X-IronPort-AV: E=Sophos;i="4.77,666,1336348800"; d="scan'208";a="13730505"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       27 Jul 2012 09:28:27 +0000
-Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0;
-       Fri, 27 Jul 2012 10:28:27 +0100
-Message-ID: <1343381305.6812.116.camel@zakaz.uk.xensource.com>
-From: Ian Campbell <Ian.Campbell@citrix.com>
-To: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-Date: Fri, 27 Jul 2012 10:28:25 +0100
-In-Reply-To: <20120726163759.GE9222@phenom.dumpdata.com>
-References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
-       <1343316846-25860-4-git-send-email-stefano.stabellini@eu.citrix.com>
-       <20120726163759.GE9222@phenom.dumpdata.com>
-Organization: Citrix Systems, Inc.
-X-Mailer: Evolution 3.4.3-1 
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
-       "linaro-dev@lists.linaro.org" <linaro-dev@lists.linaro.org>,
-       "arnd@arndb.de" <arnd@arndb.de>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>,
-       "catalin.marinas@arm.com" <catalin.marinas@arm.com>, "Tim
-       \(Xen.org\)" <tim@xen.org>,
-       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
-       "linux-arm-kernel@lists.infradead.org"
-       <linux-arm-kernel@lists.infradead.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 04/24] xen/arm: sync_bitops
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Thu, 2012-07-26 at 17:37 +0100, Konrad Rzeszutek Wilk wrote:
-> On Thu, Jul 26, 2012 at 04:33:46PM +0100, Stefano Stabellini wrote:
-> > sync_bitops functions are equivalent to the SMP implementation of the
-> > original functions, independently from CONFIG_SMP being defined.
-> 
-> So why can't the code be changed to use that? Is it that
-> the _set_bit, _clear_bit, etc are not available with !CONFIG_SMP?
-
-_set_bit etc are not SMP safe if !CONFIG_SMP. But under Xen you might be
-communicating with a completely external entity who might be on another
-CPU (e.g. two uniprocessor guests communicating via event channels and
-grant tables). So we need a variant of the bit ops which are SMP safe
-even on a UP kernel.
-
-The users are common code and the sync_foo vs foo distinction matters on
-some platforms (e.g. x86 where a UP kernel would omit the LOCK prefix
-for the normal ones).
-
-> 
-> > 
-> > Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-> > ---
-> >  arch/arm/include/asm/sync_bitops.h |   17 +++++++++++++++++
-> >  1 files changed, 17 insertions(+), 0 deletions(-)
-> >  create mode 100644 arch/arm/include/asm/sync_bitops.h
-> > 
-> > diff --git a/arch/arm/include/asm/sync_bitops.h b/arch/arm/include/asm/sync_bitops.h
-> > new file mode 100644
-> > index 0000000..d975092903
-> > --- /dev/null
-> > +++ b/arch/arm/include/asm/sync_bitops.h
-> > @@ -0,0 +1,17 @@
-> > +#ifndef __ASM_SYNC_BITOPS_H__
-> > +#define __ASM_SYNC_BITOPS_H__
-> > +
-> > +#include <asm/bitops.h>
-> > +#include <asm/system.h>
-> > +
-> > +#define sync_set_bit(nr, p)               _set_bit(nr, p)
-> > +#define sync_clear_bit(nr, p)             _clear_bit(nr, p)
-> > +#define sync_change_bit(nr, p)            _change_bit(nr, p)
-> > +#define sync_test_and_set_bit(nr, p)      _test_and_set_bit(nr, p)
-> > +#define sync_test_and_clear_bit(nr, p)    _test_and_clear_bit(nr, p)
-> > +#define sync_test_and_change_bit(nr, p)   _test_and_change_bit(nr, p)
-> > +#define sync_test_bit(nr, addr)           test_bit(nr, addr)
-> > +#define sync_cmpxchg                      cmpxchg
-> > +
-> > +
-> > +#endif
-> > -- 
-> > 1.7.2.5
-> > 
-> > 
-> > _______________________________________________
-> > Xen-devel mailing list
-> > Xen-devel@lists.xen.org
-> > http://lists.xen.org/xen-devel
-
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1343381813.6812.120.camel@zakaz.uk.xensource.com> b/test/corpus/<1343381813.6812.120.camel@zakaz.uk.xensource.com>
deleted file mode 100644 (file)
index 0391b47..0000000
+++ /dev/null
@@ -1,183 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Jul 27 10:41:51 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 27 Jul 2012 10:41:51 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1Suh3K-0000mG-4R
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 27 Jul 2012 10:41:51 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1Sugyt-00067K-V8; Fri, 27 Jul 2012 09:37:11 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1Sugyr-00067F-TV
-       for xen-devel@lists.xensource.com; Fri, 27 Jul 2012 09:37:10 +0000
-Received: from [85.158.139.83:58381] by server-4.bemta-5.messagelabs.com id
-       A8/7D-27831-54162105; Fri, 27 Jul 2012 09:37:09 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-9.tower-182.messagelabs.com!1343381828!28266841!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDcxMzQ=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.2; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 17680 invoked from network); 27 Jul 2012 09:37:08 -0000
-Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-9.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
-       27 Jul 2012 09:37:08 -0000
-X-IronPort-AV: E=Sophos;i="4.77,666,1336348800"; d="scan'208";a="13730707"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       27 Jul 2012 09:36:54 +0000
-Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0;
-       Fri, 27 Jul 2012 10:36:54 +0100
-Message-ID: <1343381813.6812.120.camel@zakaz.uk.xensource.com>
-From: Ian Campbell <Ian.Campbell@citrix.com>
-To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-Date: Fri, 27 Jul 2012 10:36:53 +0100
-In-Reply-To: <1343316846-25860-7-git-send-email-stefano.stabellini@eu.citrix.com>
-References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
-       <1343316846-25860-7-git-send-email-stefano.stabellini@eu.citrix.com>
-Organization: Citrix Systems, Inc.
-X-Mailer: Evolution 3.4.3-1 
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
-       "linaro-dev@lists.linaro.org" <linaro-dev@lists.linaro.org>,
-       "arnd@arndb.de" <arnd@arndb.de>,
-       "konrad.wilk@oracle.com" <konrad.wilk@oracle.com>,
-       "catalin.marinas@arm.com" <catalin.marinas@arm.com>,
-       "Tim \(Xen.org\)" <tim@xen.org>,
-       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
-       "linux-arm-kernel@lists.infradead.org"
-       <linux-arm-kernel@lists.infradead.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 07/24] xen/arm: Xen detection and
- shared_info page mapping
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Thu, 2012-07-26 at 16:33 +0100, Stefano Stabellini wrote:
-> Check for a "/xen" node in the device tree, if it is present set
-> xen_domain_type to XEN_HVM_DOMAIN and continue initialization.
-> 
-> Map the real shared info page using XENMEM_add_to_physmap with
-> XENMAPSPACE_shared_info.
-> 
-> Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-> ---
->  arch/arm/xen/enlighten.c |   56 ++++++++++++++++++++++++++++++++++++++++++++++
->  1 files changed, 56 insertions(+), 0 deletions(-)
-> 
-> diff --git a/arch/arm/xen/enlighten.c b/arch/arm/xen/enlighten.c
-> index d27c2a6..8c923af 100644
-> --- a/arch/arm/xen/enlighten.c
-> +++ b/arch/arm/xen/enlighten.c
-> @@ -5,6 +5,9 @@
->  #include <asm/xen/hypervisor.h>
->  #include <asm/xen/hypercall.h>
->  #include <linux/module.h>
-> +#include <linux/of.h>
-> +#include <linux/of_irq.h>
-> +#include <linux/of_address.h>
->  
->  struct start_info _xen_start_info;
->  struct start_info *xen_start_info = &_xen_start_info;
-> @@ -33,3 +36,56 @@ int xen_remap_domain_mfn_range(struct vm_area_struct *vma,
->      return -ENOSYS;
->  }
->  EXPORT_SYMBOL_GPL(xen_remap_domain_mfn_range);
-> +
-> +/*
-> + * == Xen Device Tree format ==
-> + * - /xen node;
-> + * - compatible "arm,xen";
-> + * - one interrupt for Xen event notifications;
-> + * - one memory region to map the grant_table.
-> + */
-> +static int __init xen_guest_init(void)
-> +{
-> +    int cpu;
-> +    struct xen_add_to_physmap xatp;
-> +    static struct shared_info *shared_info_page = 0;
-> +    struct device_node *node;
-> +
-> +    node = of_find_compatible_node(NULL, NULL, "arm,xen");
-> +    if (!node) {
-> +            pr_info("No Xen support\n");
-> +            return 0;
-> +    }
-
-This should either only print in the success case (to avoid spamming
-everyone) or we need a little bit of infrastructure like on x86 so that
-we print exactly one of:
-       "Booting natively on bearmetal"
-       "Booting paravirtualised on %s", hypervisor->name
-
-> +    xen_domain_type = XEN_HVM_DOMAIN;
-> +
-> +    if (!shared_info_page)
-> +            shared_info_page = (struct shared_info *)
-> +                    get_zeroed_page(GFP_KERNEL);
-> +    if (!shared_info_page) {
-> +            pr_err("not enough memory");
-> +            return -ENOMEM;
-> +    }
-> +    xatp.domid = DOMID_SELF;
-> +    xatp.idx = 0;
-> +    xatp.space = XENMAPSPACE_shared_info;
-> +    xatp.gpfn = __pa(shared_info_page) >> PAGE_SHIFT;
-> +    if (HYPERVISOR_memory_op(XENMEM_add_to_physmap, &xatp))
-> +            BUG();
-> +
-> +    HYPERVISOR_shared_info = (struct shared_info *)shared_info_page;
-> +
-> +    /* xen_vcpu is a pointer to the vcpu_info struct in the shared_info
-> +     * page, we use it in the event channel upcall and in some pvclock
-> +     * related functions. We don't need the vcpu_info placement
-> +     * optimizations because we don't use any pv_mmu or pv_irq op on
-> +     * HVM.
-> +     * When xen_hvm_init_shared_info is run at boot time only vcpu 0 is
-> +     * online but xen_hvm_init_shared_info is run at resume time too and
-> +     * in that case multiple vcpus might be online. */
-> +    for_each_online_cpu(cpu) {
-> +            per_cpu(xen_vcpu, cpu) =
-> +                    &HYPERVISOR_shared_info->vcpu_info[cpu];
-
-On ARM the shared info contains exactly 1 CPU (the boot CPU). The guest
-is required to use VCPUOP_register_vcpu_info to place vcpu info for
-secondary CPUs as they are brought up.
-
-Ian.
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1343382151.6812.124.camel@zakaz.uk.xensource.com> b/test/corpus/<1343382151.6812.124.camel@zakaz.uk.xensource.com>
deleted file mode 100644 (file)
index 834e500..0000000
+++ /dev/null
@@ -1,208 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Jul 27 10:48:12 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 27 Jul 2012 10:48:12 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1Suh9W-0000nS-Bc
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 27 Jul 2012 10:48:12 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1Suh4F-0006Ps-SE; Fri, 27 Jul 2012 09:42:43 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1Suh4D-0006Pn-Ur
-       for xen-devel@lists.xensource.com; Fri, 27 Jul 2012 09:42:42 +0000
-Received: from [85.158.143.35:4629] by server-2.bemta-4.messagelabs.com id
-       91/24-17938-19262105; Fri, 27 Jul 2012 09:42:41 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-14.tower-21.messagelabs.com!1343382152!17448163!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDcxMzQ=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.2; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 22022 invoked from network); 27 Jul 2012 09:42:33 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-14.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
-       27 Jul 2012 09:42:33 -0000
-X-IronPort-AV: E=Sophos;i="4.77,666,1336348800"; d="scan'208";a="13730846"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       27 Jul 2012 09:42:32 +0000
-Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0;
-       Fri, 27 Jul 2012 10:42:32 +0100
-Message-ID: <1343382151.6812.124.camel@zakaz.uk.xensource.com>
-From: Ian Campbell <Ian.Campbell@citrix.com>
-To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-Date: Fri, 27 Jul 2012 10:42:31 +0100
-In-Reply-To: <1343316846-25860-12-git-send-email-stefano.stabellini@eu.citrix.com>
-References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
-       <1343316846-25860-12-git-send-email-stefano.stabellini@eu.citrix.com>
-Organization: Citrix Systems, Inc.
-X-Mailer: Evolution 3.4.3-1 
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
-       "linaro-dev@lists.linaro.org" <linaro-dev@lists.linaro.org>,
-       "arnd@arndb.de" <arnd@arndb.de>,
-       "konrad.wilk@oracle.com" <konrad.wilk@oracle.com>,
-       "catalin.marinas@arm.com" <catalin.marinas@arm.com>,
-       "Tim \(Xen.org\)" <tim@xen.org>,
-       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
-       "linux-arm-kernel@lists.infradead.org"
-       <linux-arm-kernel@lists.infradead.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 12/24] xen/arm: Introduce xen_guest_init
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Thu, 2012-07-26 at 16:33 +0100, Stefano Stabellini wrote:
-> We used to rely on a core_initcall to initialize Xen on ARM, however
-> core_initcalls are actually called after early consoles are initialized.
-> That means that hvc_xen.c is going to be initialized before Xen.
-> 
-> Given the lack of a better alternative, just call a new Xen
-> initialization function (xen_guest_init) from xen_cons_init.
-
-Can't we just arrange for this to be called super early on from
-setup_arch? That's got to be better than calling it from some random
-function which happens to get called early enough.
-
-I presume that KVM is going to want some similarly early init hooks etc
-and therefore ARM could benefit from the same sort of infrastructure as
-is in arch/x86/include/asm/hypervisor.h?
-
-
-> 
-> xen_guest_init has to be arch independent, so write both an ARM and an
-> x86 implementation. The x86 implementation is currently empty because we
-> can be sure that xen_hvm_guest_init is called early enough.
-> 
-> Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-> ---
->  arch/arm/xen/enlighten.c  |    7 ++++++-
->  arch/x86/xen/enlighten.c  |    8 ++++++++
->  drivers/tty/hvc/hvc_xen.c |    7 ++++++-
->  include/xen/xen.h         |    2 ++
->  4 files changed, 22 insertions(+), 2 deletions(-)
-> 
-> diff --git a/arch/arm/xen/enlighten.c b/arch/arm/xen/enlighten.c
-> index 8c923af..dc68074 100644
-> --- a/arch/arm/xen/enlighten.c
-> +++ b/arch/arm/xen/enlighten.c
-> @@ -44,7 +44,7 @@ EXPORT_SYMBOL_GPL(xen_remap_domain_mfn_range);
->   * - one interrupt for Xen event notifications;
->   * - one memory region to map the grant_table.
->   */
-> -static int __init xen_guest_init(void)
-> +int __init xen_guest_init(void)
->  {
->      int cpu;
->      struct xen_add_to_physmap xatp;
-> @@ -58,6 +58,10 @@ static int __init xen_guest_init(void)
->      }
->      xen_domain_type = XEN_HVM_DOMAIN;
->  
-> +    /* already setup */
-> +    if (shared_info_page != 0 && HYPERVISOR_shared_info == shared_info_page)
-> +            return 0;
-> +
->      if (!shared_info_page)
->              shared_info_page = (struct shared_info *)
->                      get_zeroed_page(GFP_KERNEL);
-> @@ -88,4 +92,5 @@ static int __init xen_guest_init(void)
->      }
->      return 0;
->  }
-> +EXPORT_SYMBOL_GPL(xen_guest_init);
->  core_initcall(xen_guest_init);
-> diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c
-> index ff962d4..6131d43 100644
-> --- a/arch/x86/xen/enlighten.c
-> +++ b/arch/x86/xen/enlighten.c
-> @@ -1567,4 +1567,12 @@ const struct hypervisor_x86 x86_hyper_xen_hvm __refconst = {
->      .init_platform          = xen_hvm_guest_init,
->  };
->  EXPORT_SYMBOL(x86_hyper_xen_hvm);
-> +
-> +int __init xen_guest_init(void)
-> +{
-> +    /* do nothing: rely on x86_hyper_xen_hvm for the initialization */
-> +    return 0;
-> +    
-> +}
-> +EXPORT_SYMBOL_GPL(xen_guest_init);
->  #endif
-> diff --git a/drivers/tty/hvc/hvc_xen.c b/drivers/tty/hvc/hvc_xen.c
-> index dc07f56..3c04fb8 100644
-> --- a/drivers/tty/hvc/hvc_xen.c
-> +++ b/drivers/tty/hvc/hvc_xen.c
-> @@ -577,6 +577,12 @@ static void __exit xen_hvc_fini(void)
->  static int xen_cons_init(void)
->  {
->      const struct hv_ops *ops;
-> +    int r;
-> +
-> +    /* retrieve xen infos  */
-> +    r = xen_guest_init();
-> +    if (r < 0)
-> +            return r;
->  
->      if (!xen_domain())
->              return 0;
-> @@ -584,7 +590,6 @@ static int xen_cons_init(void)
->      if (xen_initial_domain())
->              ops = &dom0_hvc_ops;
->      else {
-> -            int r;
->              ops = &domU_hvc_ops;
->  
->              if (xen_hvm_domain())
-> diff --git a/include/xen/xen.h b/include/xen/xen.h
-> index 2c0d3a5..792a4d2 100644
-> --- a/include/xen/xen.h
-> +++ b/include/xen/xen.h
-> @@ -9,8 +9,10 @@ enum xen_domain_type {
->  
->  #ifdef CONFIG_XEN
->  extern enum xen_domain_type xen_domain_type;
-> +int xen_guest_init(void);
->  #else
->  #define xen_domain_type             XEN_NATIVE
-> +static inline int xen_guest_init(void) { return 0; }
->  #endif
->  
->  #define xen_domain()                (xen_domain_type != XEN_NATIVE)
-
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1343382276.6812.126.camel@zakaz.uk.xensource.com> b/test/corpus/<1343382276.6812.126.camel@zakaz.uk.xensource.com>
deleted file mode 100644 (file)
index a256b25..0000000
+++ /dev/null
@@ -1,142 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Jul 27 10:49:19 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 27 Jul 2012 10:49:19 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SuhAX-0000o3-MJ
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 27 Jul 2012 10:49:18 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1Suh76-0006YQ-G6; Fri, 27 Jul 2012 09:45:40 +0000
-Received: from mail27.messagelabs.com ([193.109.254.147])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1Suh75-0006XQ-AJ
-       for xen-devel@lists.xensource.com; Fri, 27 Jul 2012 09:45:39 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-7.tower-27.messagelabs.com!1343382330!2511402!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDcxMzQ=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.2; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 11911 invoked from network); 27 Jul 2012 09:45:30 -0000
-Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-7.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
-       27 Jul 2012 09:45:30 -0000
-X-IronPort-AV: E=Sophos;i="4.77,666,1336348800"; d="scan'208";a="13730930"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       27 Jul 2012 09:44:38 +0000
-Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0;
-       Fri, 27 Jul 2012 10:44:37 +0100
-Message-ID: <1343382276.6812.126.camel@zakaz.uk.xensource.com>
-From: Ian Campbell <Ian.Campbell@citrix.com>
-To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-Date: Fri, 27 Jul 2012 10:44:36 +0100
-In-Reply-To: <1343316846-25860-13-git-send-email-stefano.stabellini@eu.citrix.com>
-References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
-       <1343316846-25860-13-git-send-email-stefano.stabellini@eu.citrix.com>
-Organization: Citrix Systems, Inc.
-X-Mailer: Evolution 3.4.3-1 
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
-       "linaro-dev@lists.linaro.org" <linaro-dev@lists.linaro.org>,
-       "arnd@arndb.de" <arnd@arndb.de>,
-       "konrad.wilk@oracle.com" <konrad.wilk@oracle.com>,
-       "catalin.marinas@arm.com" <catalin.marinas@arm.com>,
-       "Tim \(Xen.org\)" <tim@xen.org>,
-       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
-       "linux-arm-kernel@lists.infradead.org"
-       <linux-arm-kernel@lists.infradead.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 13/24] xen/arm: get privilege status
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Thu, 2012-07-26 at 16:33 +0100, Stefano Stabellini wrote:
-> Use Xen features to figure out if we are privileged.
-> 
-> XENFEAT_dom0 was introduced by 23735 in xen-unstable.hg.
-> 
-> Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-> ---
->  arch/arm/xen/enlighten.c         |    7 +++++++
->  include/xen/interface/features.h |    3 +++
->  2 files changed, 10 insertions(+), 0 deletions(-)
-> 
-> diff --git a/arch/arm/xen/enlighten.c b/arch/arm/xen/enlighten.c
-> index dc68074..2e013cf 100644
-> --- a/arch/arm/xen/enlighten.c
-> +++ b/arch/arm/xen/enlighten.c
-> @@ -2,6 +2,7 @@
->  #include <xen/interface/xen.h>
->  #include <xen/interface/memory.h>
->  #include <xen/platform_pci.h>
-> +#include <xen/features.h>
->  #include <asm/xen/hypervisor.h>
->  #include <asm/xen/hypercall.h>
->  #include <linux/module.h>
-> @@ -58,6 +59,12 @@ int __init xen_guest_init(void)
->      }
->      xen_domain_type = XEN_HVM_DOMAIN;
->  
-> +    xen_setup_features();
-> +    if (xen_feature(XENFEAT_dom0))
-> +            xen_start_info->flags |= SIF_INITDOMAIN|SIF_PRIVILEGED;
-> +    else
-> +            xen_start_info->flags &= ~(SIF_INITDOMAIN|SIF_PRIVILEGED);
-
-What happens here on platforms prior to hypervisor changeset 23735?
-
-> +
->      /* already setup */
->      if (shared_info_page != 0 && HYPERVISOR_shared_info == shared_info_page)
->              return 0;
-> diff --git a/include/xen/interface/features.h b/include/xen/interface/features.h
-> index b6ca39a..131a6cc 100644
-> --- a/include/xen/interface/features.h
-> +++ b/include/xen/interface/features.h
-> @@ -50,6 +50,9 @@
->  /* x86: pirq can be used by HVM guests */
->  #define XENFEAT_hvm_pirqs           10
->  
-> +/* operation as Dom0 is supported */
-> +#define XENFEAT_dom0                      11
-> +
->  #define XENFEAT_NR_SUBMAPS 1
->  
->  #endif /* __XEN_PUBLIC_FEATURES_H__ */
-
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1343382495.6812.127.camel@zakaz.uk.xensource.com> b/test/corpus/<1343382495.6812.127.camel@zakaz.uk.xensource.com>
deleted file mode 100644 (file)
index dfc8119..0000000
+++ /dev/null
@@ -1,100 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Jul 27 10:51:48 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 27 Jul 2012 10:51:48 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SuhCw-0000pk-An
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 27 Jul 2012 10:51:48 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1Suh9g-0006rN-22; Fri, 27 Jul 2012 09:48:20 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1Suh9e-0006qK-ND
-       for xen-devel@lists.xensource.com; Fri, 27 Jul 2012 09:48:18 +0000
-Received: from [85.158.139.83:42413] by server-6.bemta-5.messagelabs.com id
-       20/C0-11348-1E362105; Fri, 27 Jul 2012 09:48:17 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-11.tower-182.messagelabs.com!1343382497!21733848!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDcxMzQ=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.2; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 5793 invoked from network); 27 Jul 2012 09:48:17 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-11.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
-       27 Jul 2012 09:48:17 -0000
-X-IronPort-AV: E=Sophos;i="4.77,666,1336348800"; d="scan'208";a="13731015"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       27 Jul 2012 09:48:16 +0000
-Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0;
-       Fri, 27 Jul 2012 10:48:16 +0100
-Message-ID: <1343382495.6812.127.camel@zakaz.uk.xensource.com>
-From: Ian Campbell <Ian.Campbell@citrix.com>
-To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-Date: Fri, 27 Jul 2012 10:48:15 +0100
-In-Reply-To: <1343316846-25860-18-git-send-email-stefano.stabellini@eu.citrix.com>
-References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
-       <1343316846-25860-18-git-send-email-stefano.stabellini@eu.citrix.com>
-Organization: Citrix Systems, Inc.
-X-Mailer: Evolution 3.4.3-1 
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
-       "linaro-dev@lists.linaro.org" <linaro-dev@lists.linaro.org>,
-       "arnd@arndb.de" <arnd@arndb.de>,
-       "konrad.wilk@oracle.com" <konrad.wilk@oracle.com>,
-       "catalin.marinas@arm.com" <catalin.marinas@arm.com>,
-       "Tim \(Xen.org\)" <tim@xen.org>,
-       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
-       "linux-arm-kernel@lists.infradead.org"
-       <linux-arm-kernel@lists.infradead.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 18/24] xen/arm: compile blkfront and blkback
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Thu, 2012-07-26 at 16:34 +0100, Stefano Stabellini wrote:
-> 
-> +#define XEN_IO_PROTO_ABI_ARM        "arm-abi" 
-
-I wonder if we ought to call this arm-aarch32-abi or something?
-
-I wonder if we can also take the opportunity to fix the ABI cockup for
-disks on ARM and make the structs the same for both 32 and 64 bit?
-
-Ian.
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1343395134.6812.162.camel@zakaz.uk.xensource.com> b/test/corpus/<1343395134.6812.162.camel@zakaz.uk.xensource.com>
deleted file mode 100644 (file)
index e57a52a..0000000
+++ /dev/null
@@ -1,331 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Jul 27 14:24:04 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 27 Jul 2012 14:24:04 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SukWL-0001dy-OJ
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 27 Jul 2012 14:24:04 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SukRY-0008Eq-7M; Fri, 27 Jul 2012 13:19:00 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1SukRW-0008El-MZ
-       for xen-devel@lists.xensource.com; Fri, 27 Jul 2012 13:18:59 +0000
-Received: from [85.158.143.35:32679] by server-3.bemta-4.messagelabs.com id
-       A5/89-01511-14592105; Fri, 27 Jul 2012 13:18:57 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-6.tower-21.messagelabs.com!1343395136!17399026!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDcxMzQ=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.2; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 8135 invoked from network); 27 Jul 2012 13:18:56 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-6.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
-       27 Jul 2012 13:18:56 -0000
-X-IronPort-AV: E=Sophos;i="4.77,667,1336348800"; d="scan'208";a="13735386"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       27 Jul 2012 13:18:56 +0000
-Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0;
-       Fri, 27 Jul 2012 14:18:56 +0100
-Message-ID: <1343395134.6812.162.camel@zakaz.uk.xensource.com>
-From: Ian Campbell <Ian.Campbell@citrix.com>
-To: Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-Date: Fri, 27 Jul 2012 14:18:54 +0100
-In-Reply-To: <alpine.DEB.2.02.1207271350370.26163@kaball.uk.xensource.com>
-References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
-       <1343316846-25860-2-git-send-email-stefano.stabellini@eu.citrix.com>
-       <20120726163352.GC9222@phenom.dumpdata.com>
-       <1343380659.6812.106.camel@zakaz.uk.xensource.com>
-       <alpine.DEB.2.02.1207271350370.26163@kaball.uk.xensource.com>
-Organization: Citrix Systems, Inc.
-X-Mailer: Evolution 3.4.3-1 
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
-       "linaro-dev@lists.linaro.org" <linaro-dev@lists.linaro.org>,
-       "arnd@arndb.de" <arnd@arndb.de>,
-       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
-       "catalin.marinas@arm.com" <catalin.marinas@arm.com>, "Tim
-       \(Xen.org\)" <tim@xen.org>,
-       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
-       "linux-arm-kernel@lists.infradead.org"
-       <linux-arm-kernel@lists.infradead.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 02/24] xen/arm: hypercalls
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Fri, 2012-07-27 at 14:02 +0100, Stefano Stabellini wrote:
-> On Fri, 27 Jul 2012, Ian Campbell wrote:
-> > On Thu, 2012-07-26 at 17:33 +0100, Konrad Rzeszutek Wilk wrote:
-> > > On Thu, Jul 26, 2012 at 04:33:44PM +0100, Stefano Stabellini wrote:
-> > > > Use r12 to pass the hypercall number to the hypervisor.
-> > > > 
-> > > > We need a register to pass the hypercall number because we might not
-> > > > know it at compile time and HVC only takes an immediate argument.
-> > > > 
-> > > > Among the available registers r12 seems to be the best choice because it
-> > > > is defined as "intra-procedure call scratch register".
-> > > > 
-> > > > Use the ISS to pass an hypervisor specific tag.
-> > > > 
-> > > > Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-> > > > ---
-> > > >  arch/arm/include/asm/xen/hypercall.h |   50 ++++++++++++++++++++++++++
-> > > >  arch/arm/xen/Makefile                |    2 +-
-> > > >  arch/arm/xen/hypercall.S             |   65 ++++++++++++++++++++++++++++++++++
-> > > >  3 files changed, 116 insertions(+), 1 deletions(-)
-> > > >  create mode 100644 arch/arm/include/asm/xen/hypercall.h
-> > > >  create mode 100644 arch/arm/xen/hypercall.S
-> > > > 
-> > > > diff --git a/arch/arm/include/asm/xen/hypercall.h b/arch/arm/include/asm/xen/hypercall.h
-> > > > new file mode 100644
-> > > > index 0000000..4ac0624
-> > > > --- /dev/null
-> > > > +++ b/arch/arm/include/asm/xen/hypercall.h
-> > > > @@ -0,0 +1,50 @@
-> > > > +/******************************************************************************
-> > > > + * hypercall.h
-> > > > + *
-> > > > + * Linux-specific hypervisor handling.
-> > > > + *
-> > > > + * Stefano Stabellini <stefano.stabellini@eu.citrix.com>, Citrix, 2012
-> > > > + *
-> > > > + * This program is free software; you can redistribute it and/or
-> > > > + * modify it under the terms of the GNU General Public License version 2
-> > > > + * as published by the Free Software Foundation; or, when distributed
-> > > > + * separately from the Linux kernel or incorporated into other
-> > > > + * software packages, subject to the following license:
-> > > > + *
-> > > > + * Permission is hereby granted, free of charge, to any person obtaining a copy
-> > > > + * of this source file (the "Software"), to deal in the Software without
-> > > > + * restriction, including without limitation the rights to use, copy, modify,
-> > > > + * merge, publish, distribute, sublicense, and/or sell copies of the Software,
-> > > > + * and to permit persons to whom the Software is furnished to do so, subject to
-> > > > + * the following conditions:
-> > > > + *
-> > > > + * The above copyright notice and this permission notice shall be included in
-> > > > + * all copies or substantial portions of the Software.
-> > > > + *
-> > > > + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-> > > > + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-> > > > + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-> > > > + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-> > > > + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-> > > > + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
-> > > > + * IN THE SOFTWARE.
-> > > > + */
-> > > > +
-> > > > +#ifndef _ASM_ARM_XEN_HYPERCALL_H
-> > > > +#define _ASM_ARM_XEN_HYPERCALL_H
-> > > > +
-> > > > +#include <xen/interface/xen.h>
-> > > > +
-> > > > +long privcmd_call(unsigned call, unsigned long a1,
-> > > > +              unsigned long a2, unsigned long a3,
-> > > > +              unsigned long a4, unsigned long a5);
-> > > > +int HYPERVISOR_xen_version(int cmd, void *arg);
-> > > > +int HYPERVISOR_console_io(int cmd, int count, char *str);
-> > > > +int HYPERVISOR_grant_table_op(unsigned int cmd, void *uop, unsigned int count);
-> > > > +int HYPERVISOR_sched_op(int cmd, void *arg);
-> > > > +int HYPERVISOR_event_channel_op(int cmd, void *arg);
-> > > > +unsigned long HYPERVISOR_hvm_op(int op, void *arg);
-> > > > +int HYPERVISOR_memory_op(unsigned int cmd, void *arg);
-> > > > +int HYPERVISOR_physdev_op(int cmd, void *arg);
-> > > > +
-> > > > +#endif /* _ASM_ARM_XEN_HYPERCALL_H */
-> > > > diff --git a/arch/arm/xen/Makefile b/arch/arm/xen/Makefile
-> > > > index 0bad594..b9d6acc 100644
-> > > > --- a/arch/arm/xen/Makefile
-> > > > +++ b/arch/arm/xen/Makefile
-> > > > @@ -1 +1 @@
-> > > > -obj-y         := enlighten.o
-> > > > +obj-y         := enlighten.o hypercall.o
-> > > > diff --git a/arch/arm/xen/hypercall.S b/arch/arm/xen/hypercall.S
-> > > > new file mode 100644
-> > > > index 0000000..038cc5b
-> > > > --- /dev/null
-> > > > +++ b/arch/arm/xen/hypercall.S
-> > > > @@ -0,0 +1,65 @@
-> > > > +/******************************************************************************
-> > > > + * hypercall.S
-> > > > + *
-> > > > + * Xen hypercall wrappers
-> > > > + *
-> > > > + * The Xen hypercall calling convention is very similar to the ARM
-> > > > + * procedure calling convention: the first paramter is passed in r0, the
-> > > > + * second in r1, the third in r2 and the third in r3. Considering that
-> > > 
-> > > I think you meant 'and the fourth in r3'.
-> > > 
-> > > So where does the similarity end?  Just in that we use r12?
-> > 
-> > The standard ARM function calling convention is arguments 1-4 on r0-r3
-> > and arguments 5+ on the stack. r12 is a scratch register which can be
-> > clobbered by the *linker* on subroutine call (r12 is also called "ip"
-> > the intra-procedure call scratch register).
-> > 
-> > The hypervisor doesn't want to be accessing hypercall arguments off the
-> > guest stack, for obvious reasons, so we use r4 for the fifth argument
-> > (and if we even implemented 6 argument hypercalls we'd use r5, etc).
-> > There is no equivalent to the hypercall number in the procedure calling
-> > convention so we picked r12 because it is up and out of the way and is
-> > otherwise a scratch register. Obviously that you must not make a
-> > procedure call between setting the hypercall number in r12 and calling
-> > the hvc instruction.
-> > 
-> > > 
-> > > > + * Xen hypercalls have 5 arguments at most, the fifth paramter is passed
-> > > > + * in r4, differently from the procedure calling convention of using the
-> > > 
-> > > > + * stack for that case.
-> > > > + *
-> > > > + * The hypercall number is passed in r12.
-> > > > + *
-> > > > + * The return value is in r0.
-> > > > + *
-> > > > + * The hvc ISS is required to be 0xEA1, that is the Xen specific ARM
-> > > > + * hypercall tag.
-> > > > + *
-> > > > + * Stefano Stabellini <stefano.stabellini@eu.citrix.com>, Citrix, 2012
-> > > > + */
-> > > > +
-> > > > +#include <linux/linkage.h>
-> > > > +#include <asm/assembler.h>
-> > > > +#include <xen/interface/xen.h>
-> > > > +
-> > > > +
-> > > > +/* HVC 0xEA1 */
-> > > > +#ifdef CONFIG_THUMB2_KERNEL
-> > > > +#define xen_hvc .word 0xf7e08ea1
-> > > > +#else
-> > > > +#define xen_hvc .word 0xe140ea71
-> > > > +#endif
-> > > > +
-> > > > +/* We need to save and restore r4, because Xen clobbers it. */
-> > > 
-> > > Hmm, the comment says r4, but right below I see r12?
-> > 
-> > The ARM procedure calling convention allows a subroutine to clobber
-> > r1..r3 (r0 is the return value) but not r4 which must be preserved. But
-> > the hypervisor ABI clobbers all argument registers so the caller has to
-> > specially preserve r4 in this context whenever there is a 5 argument
-> > hypercall.
-> > 
-> > I presume that none of the hypercalls defined below have 5 arguments and
-> > therefore we don't need to preserve r4 except in the generic
-> > privcmd_call function. 
-> > 
-> > To be honest I prefer the style which we use on x86 which is to define
-> > hypercall{0,1,2,3,4,5} macros and to wrap those with the specific names
-> > using inline functions.
-> > 
-> > I find the x86 way more self documenting, and being in C prevents errors
-> > around the number of arguments. It also allows for better in-lining and
-> > exposes to gcc the actual clobbers, which might allow it to avoid saving
-> > r4 on the stack at all etc.
-> 
-> Considering that we cannot do the same thing that we do on x86 (see this
-> thread http://marc.info/?l=linux-kernel&m=133052035426427&w=2),
-
-I'd forgotten all about this arm-gcc braindamage.
-
->  I
-> decided to go for the assembly implementation because it is much shorter
-> and easier to understand (for me at least, being just 3 lines of code in
-> the generic case and just one macro) and this way we can exploit the
-> code generated by gcc to put the arguments in the right registers.
-> 
-> Also I like the fact that it is the same strategy used by libc to issue
-> syscalls.
-
-Fair enough.
-
-> As you can see it results in 3 lines of code for all the hypercalls
-> except the ones that might take more than 4 arguments, that right now is
-> just privcmd.
-> 
-> 
-> 
-> > > Should this comment be by 'privcmd_call'?
-> > 
-> > When we add a 5 argument hypercall I suppose we'll see the required
-> > push/pop of r4 added to this macro too.
-> 
-> For performance and simplicity I would add a second macro that push/pop
-> r4, only required for hypercalls with more than 4 arguments.
-
-For clarity / documentation purposes it might actually be worthwhile to
-define all of HYPERCALL{0,1,2,3,4} even if the {0,1,2,3} cases are all
-just:
-        #define HYPERCALL0(x) HYPERCALL_SIMPLE(x)
-
-> > > > +#define HYPERCALL(hypercall)                  \
-> > > > +ENTRY(HYPERVISOR_##hypercall)                 \
-> > > > +      mov r12, #__HYPERVISOR_##hypercall;     \
-> > > > +      xen_hvc;                                                        \
-> > > > +      mov pc, lr;                                                     \
-> > > > +ENDPROC(HYPERVISOR_##hypercall)
-> > > > +
-> > > > +                .text
-> > > > +
-> > > > +HYPERCALL(xen_version);
-> > > > +HYPERCALL(console_io);
-> > > > +HYPERCALL(grant_table_op);
-> > > > +HYPERCALL(sched_op);
-> > > > +HYPERCALL(event_channel_op);
-> > > > +HYPERCALL(hvm_op);
-> > > > +HYPERCALL(memory_op);
-> > > > +HYPERCALL(physdev_op);
-> > > > +
-> > > > +ENTRY(privcmd_call)
-> > > > +      stmdb   sp!, {r4}
-> > > > +      mov r12, r0
-> > > > +      mov r0, r1
-> > > > +      mov r1, r2
-> > > > +      mov r2, r3
-> > > > +      ldr r3, [sp, #8]
-> > > > +      ldr r4, [sp, #4]
-> > > > +      xen_hvc
-> > > > +      pop {r4}
-> > 
-> > Why not ldmdb for symmetry?
-> 
-> Yep, I can do that.
-
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1343399630.25096.4.camel@zakaz.uk.xensource.com> b/test/corpus/<1343399630.25096.4.camel@zakaz.uk.xensource.com>
deleted file mode 100644 (file)
index c10ebbd..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Jul 27 15:38:40 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 27 Jul 2012 15:38:40 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SulgY-0001yQ-LW
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 27 Jul 2012 15:38:40 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SulcS-0002zN-DR; Fri, 27 Jul 2012 14:34:20 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1SulcR-0002zG-5x
-       for xen-devel@lists.xensource.com; Fri, 27 Jul 2012 14:34:19 +0000
-Received: from [85.158.143.35:8400] by server-2.bemta-4.messagelabs.com id
-       78/01-17938-AE6A2105; Fri, 27 Jul 2012 14:34:18 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-3.tower-21.messagelabs.com!1343399632!14886860!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDcxMzQ=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.2; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 19537 invoked from network); 27 Jul 2012 14:33:52 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-3.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
-       27 Jul 2012 14:33:52 -0000
-X-IronPort-AV: E=Sophos;i="4.77,667,1336348800"; d="scan'208";a="13737256"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       27 Jul 2012 14:33:52 +0000
-Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0;
-       Fri, 27 Jul 2012 15:33:51 +0100
-Message-ID: <1343399630.25096.4.camel@zakaz.uk.xensource.com>
-From: Ian Campbell <Ian.Campbell@citrix.com>
-To: Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-Date: Fri, 27 Jul 2012 15:33:50 +0100
-In-Reply-To: <alpine.DEB.2.02.1207271514140.26163@kaball.uk.xensource.com>
-References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
-       <1343316846-25860-13-git-send-email-stefano.stabellini@eu.citrix.com>
-       <1343382276.6812.126.camel@zakaz.uk.xensource.com>
-       <alpine.DEB.2.02.1207271514140.26163@kaball.uk.xensource.com>
-Organization: Citrix Systems, Inc.
-X-Mailer: Evolution 3.4.3-1 
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
-       "linaro-dev@lists.linaro.org" <linaro-dev@lists.linaro.org>,
-       "arnd@arndb.de" <arnd@arndb.de>,
-       "konrad.wilk@oracle.com" <konrad.wilk@oracle.com>,
-       "catalin.marinas@arm.com" <catalin.marinas@arm.com>,
-       "Tim \(Xen.org\)" <tim@xen.org>,
-       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
-       "linux-arm-kernel@lists.infradead.org"
-       <linux-arm-kernel@lists.infradead.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 13/24] xen/arm: get privilege status
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Fri, 2012-07-27 at 15:25 +0100, Stefano Stabellini wrote:
-> On Fri, 27 Jul 2012, Ian Campbell wrote:
-> > On Thu, 2012-07-26 at 16:33 +0100, Stefano Stabellini wrote:
-> > > Use Xen features to figure out if we are privileged.
-> > > 
-> > > XENFEAT_dom0 was introduced by 23735 in xen-unstable.hg.
-> > > 
-> > > Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-> > > ---
-> > >  arch/arm/xen/enlighten.c         |    7 +++++++
-> > >  include/xen/interface/features.h |    3 +++
-> > >  2 files changed, 10 insertions(+), 0 deletions(-)
-> > > 
-> > > diff --git a/arch/arm/xen/enlighten.c b/arch/arm/xen/enlighten.c
-> > > index dc68074..2e013cf 100644
-> > > --- a/arch/arm/xen/enlighten.c
-> > > +++ b/arch/arm/xen/enlighten.c
-> > > @@ -2,6 +2,7 @@
-> > >  #include <xen/interface/xen.h>
-> > >  #include <xen/interface/memory.h>
-> > >  #include <xen/platform_pci.h>
-> > > +#include <xen/features.h>
-> > >  #include <asm/xen/hypervisor.h>
-> > >  #include <asm/xen/hypercall.h>
-> > >  #include <linux/module.h>
-> > > @@ -58,6 +59,12 @@ int __init xen_guest_init(void)
-> > >          }
-> > >          xen_domain_type = XEN_HVM_DOMAIN;
-> > >  
-> > > +        xen_setup_features();
-> > > +        if (xen_feature(XENFEAT_dom0))
-> > > +                xen_start_info->flags |= SIF_INITDOMAIN|SIF_PRIVILEGED;
-> > > +        else
-> > > +                xen_start_info->flags &= ~(SIF_INITDOMAIN|SIF_PRIVILEGED);
-> > 
-> > What happens here on platforms prior to hypervisor changeset 23735?
-> 
-> It wouldn't work.
-> Considering that we are certainly not going to backport ARM support to
-> Xen 4.1, and that both ARM and XENFEAT_dom0 will be present in Xen 4.2,
-> do we really need to support the Xen unstable changesets between ARM was
-> introduced and XENFEAT_dom0 appeared?
-
-Sorry, I missed the "arm" in the path.
-
-Ian.
-
-
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1343399971.25096.8.camel@zakaz.uk.xensource.com> b/test/corpus/<1343399971.25096.8.camel@zakaz.uk.xensource.com>
deleted file mode 100644 (file)
index 470c8bc..0000000
+++ /dev/null
@@ -1,132 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Jul 27 15:43:35 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 27 Jul 2012 15:43:35 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SullJ-00020B-NL
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 27 Jul 2012 15:43:35 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SulhY-0003So-OI; Fri, 27 Jul 2012 14:39:36 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1SulhX-0003SB-7T
-       for xen-devel@lists.xensource.com; Fri, 27 Jul 2012 14:39:35 +0000
-Received: from [85.158.139.83:65059] by server-1.bemta-5.messagelabs.com id
-       58/5D-29759-628A2105; Fri, 27 Jul 2012 14:39:34 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-6.tower-182.messagelabs.com!1343399973!25147290!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDcxMzQ=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.2; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 11827 invoked from network); 27 Jul 2012 14:39:33 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-6.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
-       27 Jul 2012 14:39:33 -0000
-X-IronPort-AV: E=Sophos;i="4.77,667,1336348800"; d="scan'208";a="13737399"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       27 Jul 2012 14:39:33 +0000
-Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0;
-       Fri, 27 Jul 2012 15:39:33 +0100
-Message-ID: <1343399971.25096.8.camel@zakaz.uk.xensource.com>
-From: Ian Campbell <Ian.Campbell@citrix.com>
-To: Russell King - ARM Linux <linux@arm.linux.org.uk>
-Date: Fri, 27 Jul 2012 15:39:31 +0100
-In-Reply-To: <20120727142101.GA6802@n2100.arm.linux.org.uk>
-References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
-       <1343316846-25860-2-git-send-email-stefano.stabellini@eu.citrix.com>
-       <20120726163352.GC9222@phenom.dumpdata.com>
-       <1343380659.6812.106.camel@zakaz.uk.xensource.com>
-       <alpine.DEB.2.02.1207271350370.26163@kaball.uk.xensource.com>
-       <20120727142101.GA6802@n2100.arm.linux.org.uk>
-Organization: Citrix Systems, Inc.
-X-Mailer: Evolution 3.4.3-1 
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
-       "linaro-dev@lists.linaro.org" <linaro-dev@lists.linaro.org>,
-       "arnd@arndb.de" <arnd@arndb.de>,
-       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
-       "catalin.marinas@arm.com" <catalin.marinas@arm.com>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>,
-       "Tim \(Xen.org\)" <tim@xen.org>,
-       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
-       "linux-arm-kernel@lists.infradead.org"
-       <linux-arm-kernel@lists.infradead.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 02/24] xen/arm: hypercalls
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Fri, 2012-07-27 at 15:21 +0100, Russell King - ARM Linux wrote:
-> On Fri, Jul 27, 2012 at 02:02:18PM +0100, Stefano Stabellini wrote:
-> > > > > +/******************************************************************************
-> > > > > + * hypercall.h
-> > > > > + *
-> > > > > + * Linux-specific hypervisor handling.
-> > > > > + *
-> > > > > + * Stefano Stabellini <stefano.stabellini@eu.citrix.com>, Citrix, 2012
-> > > > > + *
-> > > > > + * This program is free software; you can redistribute it and/or
-> > > > > + * modify it under the terms of the GNU General Public License version 2
-> > > > > + * as published by the Free Software Foundation; or, when distributed
-> > > > > + * separately from the Linux kernel or incorporated into other
-> > > > > + * software packages, subject to the following license:
-> > > > > + *
-> > > > > + * Permission is hereby granted, free of charge, to any person obtaining a copy
-> > > > > + * of this source file (the "Software"), to deal in the Software without
-> 
-> Erm, is that an additional restriction on the GPL which prevents me from
-> shipping this code on a CD and charging for the act of creating the CD
-> and shipping it?  That would technically make the above statement
-> incompatible with the GPL.
-
-There's an "or" in there.
-
-The non-GPL alternative license is the standard one applied by upstream
-Xen to the interface headers:
-        http://xenbits.xen.org/hg/xen-unstable.hg/file/tip/xen/include/public/COPYING
-
-It's the X11/MIT license IIRC, which the FSF say is GPL compatible.
-http://www.gnu.org/licenses/license-list.html#X11License
-
-The same license is used a few other places in the kernel, e.g. the DRM
-code.
-
-Ian.
-
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1343400685.25096.15.camel@zakaz.uk.xensource.com> b/test/corpus/<1343400685.25096.15.camel@zakaz.uk.xensource.com>
deleted file mode 100644 (file)
index 1f3674f..0000000
+++ /dev/null
@@ -1,159 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Jul 27 15:55:28 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 27 Jul 2012 15:55:28 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1Sulws-00023D-Ks
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 27 Jul 2012 15:55:28 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1Sult3-0004Nm-71; Fri, 27 Jul 2012 14:51:29 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1Sult2-0004Ng-5F
-       for xen-devel@lists.xensource.com; Fri, 27 Jul 2012 14:51:28 +0000
-Received: from [85.158.143.99:29340] by server-3.bemta-4.messagelabs.com id
-       E5/54-01511-FEAA2105; Fri, 27 Jul 2012 14:51:27 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-8.tower-216.messagelabs.com!1343400686!19285975!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDcxMzQ=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.2; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 23198 invoked from network); 27 Jul 2012 14:51:26 -0000
-Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-8.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
-       27 Jul 2012 14:51:26 -0000
-X-IronPort-AV: E=Sophos;i="4.77,667,1336348800"; d="scan'208";a="13737659"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       27 Jul 2012 14:51:26 +0000
-Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0;
-       Fri, 27 Jul 2012 15:51:26 +0100
-Message-ID: <1343400685.25096.15.camel@zakaz.uk.xensource.com>
-From: Ian Campbell <Ian.Campbell@citrix.com>
-To: Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-Date: Fri, 27 Jul 2012 15:51:25 +0100
-In-Reply-To: <alpine.DEB.2.02.1207271545440.26163@kaball.uk.xensource.com>
-References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
-       <1343316846-25860-7-git-send-email-stefano.stabellini@eu.citrix.com>
-       <1343381813.6812.120.camel@zakaz.uk.xensource.com>
-       <alpine.DEB.2.02.1207271545440.26163@kaball.uk.xensource.com>
-Organization: Citrix Systems, Inc.
-X-Mailer: Evolution 3.4.3-1 
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
-       "linaro-dev@lists.linaro.org" <linaro-dev@lists.linaro.org>,
-       "arnd@arndb.de" <arnd@arndb.de>,
-       "konrad.wilk@oracle.com" <konrad.wilk@oracle.com>,
-       "catalin.marinas@arm.com" <catalin.marinas@arm.com>,
-       "Tim \(Xen.org\)" <tim@xen.org>,
-       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
-       "linux-arm-kernel@lists.infradead.org"
-       <linux-arm-kernel@lists.infradead.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 07/24] xen/arm: Xen detection and
- shared_info page mapping
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Fri, 2012-07-27 at 15:48 +0100, Stefano Stabellini wrote:
-> On Fri, 27 Jul 2012, Ian Campbell wrote:
-> > On Thu, 2012-07-26 at 16:33 +0100, Stefano Stabellini wrote:
-> > > Check for a "/xen" node in the device tree, if it is present set
-> > > xen_domain_type to XEN_HVM_DOMAIN and continue initialization.
-> > > 
-> > > Map the real shared info page using XENMEM_add_to_physmap with
-> > > XENMAPSPACE_shared_info.
-> > > 
-> > > Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-> > > ---
-> > >  arch/arm/xen/enlighten.c |   56 ++++++++++++++++++++++++++++++++++++++++++++++
-> > >  1 files changed, 56 insertions(+), 0 deletions(-)
-> > > 
-> > > diff --git a/arch/arm/xen/enlighten.c b/arch/arm/xen/enlighten.c
-> > > index d27c2a6..8c923af 100644
-> > > --- a/arch/arm/xen/enlighten.c
-> > > +++ b/arch/arm/xen/enlighten.c
-> > > @@ -5,6 +5,9 @@
-> > >  #include <asm/xen/hypervisor.h>
-> > >  #include <asm/xen/hypercall.h>
-> > >  #include <linux/module.h>
-> > > +#include <linux/of.h>
-> > > +#include <linux/of_irq.h>
-> > > +#include <linux/of_address.h>
-> > >  
-> > >  struct start_info _xen_start_info;
-> > >  struct start_info *xen_start_info = &_xen_start_info;
-> > > @@ -33,3 +36,56 @@ int xen_remap_domain_mfn_range(struct vm_area_struct *vma,
-> > >          return -ENOSYS;
-> > >  }
-> > >  EXPORT_SYMBOL_GPL(xen_remap_domain_mfn_range);
-> > > +
-> > > +/*
-> > > + * == Xen Device Tree format ==
-> > > + * - /xen node;
-> > > + * - compatible "arm,xen";
-> > > + * - one interrupt for Xen event notifications;
-> > > + * - one memory region to map the grant_table.
-> > > + */
-> > > +static int __init xen_guest_init(void)
-> > > +{
-> > > +        int cpu;
-> > > +        struct xen_add_to_physmap xatp;
-> > > +        static struct shared_info *shared_info_page = 0;
-> > > +        struct device_node *node;
-> > > +
-> > > +        node = of_find_compatible_node(NULL, NULL, "arm,xen");
-> > > +        if (!node) {
-> > > +                pr_info("No Xen support\n");
-> > > +                return 0;
-> > > +        }
-> > 
-> > This should either only print in the success case (to avoid spamming
-> > everyone) or we need a little bit of infrastructure like on x86 so that
-> > we print exactly one of:
-> >    "Booting natively on bearmetal"
-> >    "Booting paravirtualised on %s", hypervisor->name
-> 
-> This function is only going to be called once (actually it might be
-> called twice with the change introduced by "xen/arm: Introduce
-> xen_guest_init").
-
-Once (or twice), per boot, per ARM system running Linux in the world...
-
-Ian.
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1343405479.25096.25.camel@zakaz.uk.xensource.com> b/test/corpus/<1343405479.25096.25.camel@zakaz.uk.xensource.com>
deleted file mode 100644 (file)
index 322061c..0000000
+++ /dev/null
@@ -1,129 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Jul 27 17:15:40 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 27 Jul 2012 17:15:40 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SunCU-0002NQ-4z
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 27 Jul 2012 17:15:40 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1Sun93-0008FE-3z; Fri, 27 Jul 2012 16:12:05 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1Sun91-0008F5-Jb
-       for xen-devel@lists.xensource.com; Fri, 27 Jul 2012 16:12:03 +0000
-Received: from [85.158.138.51:33902] by server-12.bemta-3.messagelabs.com id
-       B5/DB-15259-2DDB2105; Fri, 27 Jul 2012 16:12:02 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-11.tower-174.messagelabs.com!1343405522!29171549!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDcxMzQ=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.2; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 22809 invoked from network); 27 Jul 2012 16:12:02 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-11.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
-       27 Jul 2012 16:12:02 -0000
-X-IronPort-AV: E=Sophos;i="4.77,667,1336348800"; d="scan'208";a="13739072"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       27 Jul 2012 16:11:21 +0000
-Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0;
-       Fri, 27 Jul 2012 17:11:21 +0100
-Message-ID: <1343405479.25096.25.camel@zakaz.uk.xensource.com>
-From: Ian Campbell <Ian.Campbell@citrix.com>
-To: Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-Date: Fri, 27 Jul 2012 17:11:19 +0100
-In-Reply-To: <alpine.DEB.2.02.1207271613200.26163@kaball.uk.xensource.com>
-References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
-       <1343316846-25860-12-git-send-email-stefano.stabellini@eu.citrix.com>
-       <1343382151.6812.124.camel@zakaz.uk.xensource.com>
-       <alpine.DEB.2.02.1207271613200.26163@kaball.uk.xensource.com>
-Organization: Citrix Systems, Inc.
-X-Mailer: Evolution 3.4.3-1 
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
-       "linaro-dev@lists.linaro.org" <linaro-dev@lists.linaro.org>,
-       "arnd@arndb.de" <arnd@arndb.de>,
-       "konrad.wilk@oracle.com" <konrad.wilk@oracle.com>,
-       "catalin.marinas@arm.com" <catalin.marinas@arm.com>,
-       "Tim \(Xen.org\)" <tim@xen.org>,
-       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
-       "linux-arm-kernel@lists.infradead.org"
-       <linux-arm-kernel@lists.infradead.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 12/24] xen/arm: Introduce xen_guest_init
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Fri, 2012-07-27 at 16:54 +0100, Stefano Stabellini wrote:
-> On Fri, 27 Jul 2012, Ian Campbell wrote:
-> > On Thu, 2012-07-26 at 16:33 +0100, Stefano Stabellini wrote:
-> > > We used to rely on a core_initcall to initialize Xen on ARM, however
-> > > core_initcalls are actually called after early consoles are initialized.
-> > > That means that hvc_xen.c is going to be initialized before Xen.
-> > > 
-> > > Given the lack of a better alternative, just call a new Xen
-> > > initialization function (xen_guest_init) from xen_cons_init.
-> > 
-> > Can't we just arrange for this to be called super early on from
-> > setup_arch? That's got to be better than calling it from some random
-> > function which happens to get called early enough.
-> 
-> While I agree with you that an explicit call to xen_guest_init from
-> generic code might be better, xen_cons_init is not just a random
-> function: it is a console_initcall and therefore we know for sure that
-> it is going be the first one to be called.
-
-Initialising something != console in a console_initcall just because it
-happens to be called early enough meets my definition of calling it from
-a random place.
-
-> In fact if we didn't want the PV console to work so early we could just
-> rely on a core_initcall to initialize everything and we wouldn't have
-> any issues.
-> 
-> 
-> In any case if the ARM maintainers agree I could add a generic
-> hypervisor initialization call the end of setup_arch.
-> 
-> 
-> 
-> > I presume that KVM is going to want some similarly early init hooks etc
-> > and therefore ARM could benefit from the same sort of infrastructure as
-> > is in arch/x86/include/asm/hypervisor.h?
-
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1343892951.7571.50.camel@dagon.hellion.org.uk> b/test/corpus/<1343892951.7571.50.camel@dagon.hellion.org.uk>
deleted file mode 100644 (file)
index fc52b1d..0000000
+++ /dev/null
@@ -1,118 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Aug 02 08:40:50 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 02 Aug 2012 08:40:50 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1Swq1U-0005aM-Fk
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 02 Aug 2012 08:40:50 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1Swpwr-0003zn-6S; Thu, 02 Aug 2012 07:35:57 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1Swpwo-0003zi-E6
-       for xen-devel@lists.xensource.com; Thu, 02 Aug 2012 07:35:54 +0000
-Received: from [85.158.138.51:16454] by server-11.bemta-3.messagelabs.com id
-       2A/C5-00679-9DD2A105; Thu, 02 Aug 2012 07:35:53 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-6.tower-174.messagelabs.com!1343892953!21979936!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDc3ODA=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.2; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 17349 invoked from network); 2 Aug 2012 07:35:53 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-6.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
-       2 Aug 2012 07:35:53 -0000
-X-IronPort-AV: E=Sophos;i="4.77,699,1336348800"; d="scan'208";a="13815371"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       02 Aug 2012 07:35:52 +0000
-Received: from [127.0.0.1] (10.80.16.67) by smtprelay.citrix.com
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0; Thu, 2 Aug 2012
-       08:35:52 +0100
-Message-ID: <1343892951.7571.50.camel@dagon.hellion.org.uk>
-From: Ian Campbell <Ian.Campbell@citrix.com>
-To: Rob Herring <robherring2@gmail.com>
-Date: Thu, 2 Aug 2012 08:35:51 +0100
-In-Reply-To: <50197527.3070007@gmail.com>
-References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
-       <1343316846-25860-1-git-send-email-stefano.stabellini@eu.citrix.com>
-       <50197527.3070007@gmail.com>
-Organization: Citrix Systems, Inc.
-X-Mailer: Evolution 3.4.3-1 
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
-       "linaro-dev@lists.linaro.org" <linaro-dev@lists.linaro.org>,
-       "arnd@arndb.de" <arnd@arndb.de>,
-       "konrad.wilk@oracle.com" <konrad.wilk@oracle.com>,
-       "catalin.marinas@arm.com" <catalin.marinas@arm.com>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>,
-       "Tim \(Xen.org\)" <tim@xen.org>,
-       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
-       "linux-arm-kernel@lists.infradead.org"
-       <linux-arm-kernel@lists.infradead.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 01/24] arm: initial Xen support
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Wed, 2012-08-01 at 19:27 +0100, Rob Herring wrote:
-> On 07/26/2012 10:33 AM, Stefano Stabellini wrote:
-> > - Basic hypervisor.h and interface.h definitions.
-> > - Skelethon enlighten.c, set xen_start_info to an empty struct.
-> > - Do not limit xen_initial_domain to PV guests.
-> > 
-> > The new code only compiles when CONFIG_XEN is set, that is going to be
-> > added to arch/arm/Kconfig in a later patch.
-> > 
-> > Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-> > ---
-> >  arch/arm/Makefile                     |    1 +
-> >  arch/arm/include/asm/hypervisor.h     |    6 +++
-> >  arch/arm/include/asm/xen/hypervisor.h |   19 ++++++++++
-> >  arch/arm/include/asm/xen/interface.h  |   64 +++++++++++++++++++++++++++++++++
-> 
-> These headers don't seem particularly ARM specific. Could they be moved
-> to asm-generic or include/linux?
-
-Or perhaps include/xen.
-
-A bunch of it also looks like x86 specific stuff which has crept in.
-e.g. PARAVIRT_LAZY_FOO and paravirt_get_lazy_mode() are arch/x86
-specific and shouldn't be called from common code (and aren't, AFAICT).
-
-
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1344935141.5926.6.camel@zakaz.uk.xensource.com> b/test/corpus/<1344935141.5926.6.camel@zakaz.uk.xensource.com>
deleted file mode 100644 (file)
index ea6e8f7..0000000
+++ /dev/null
@@ -1,148 +0,0 @@
-From xen-devel-bounces@lists.xen.org Tue Aug 14 10:14:24 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Tue, 14 Aug 2012 10:14:24 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T1DCe-0004bR-3w
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 14 Aug 2012 10:14:24 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T1D7B-0007YU-U4; Tue, 14 Aug 2012 09:08:41 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1T1D7A-0007Wi-1e
-       for xen-devel@lists.xen.org; Tue, 14 Aug 2012 09:08:40 +0000
-Received: from [85.158.143.35:37976] by server-1.bemta-4.messagelabs.com id
-       5D/28-07754-7951A205; Tue, 14 Aug 2012 09:08:39 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-15.tower-21.messagelabs.com!1344935143!14669374!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDkwNzc=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 17534 invoked from network); 14 Aug 2012 09:05:43 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-15.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
-       14 Aug 2012 09:05:43 -0000
-X-IronPort-AV: E=Sophos;i="4.77,765,1336348800"; d="scan'208";a="13997185"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       14 Aug 2012 09:05:42 +0000
-Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0;
-       Tue, 14 Aug 2012 10:05:43 +0100
-Message-ID: <1344935141.5926.6.camel@zakaz.uk.xensource.com>
-From: Ian Campbell <Ian.Campbell@citrix.com>
-To: xen-devel <xen-devel@lists.xen.org>, xen-users <xen-users@lists.xen.org>
-Date: Tue, 14 Aug 2012 10:05:41 +0100
-Organization: Citrix Systems, Inc.
-X-Mailer: Evolution 3.4.3-1 
-MIME-Version: 1.0
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="utf-8"
-Content-Transfer-Encoding: base64
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: [Xen-devel] Xen 4.2 TODO / Release Plan
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-SW5jbHVkaW5nIHhlbi11c2Vyc0AgYXMgd2VsbCBhcyB4ZW4tZGV2ZWxAIG5vdyB0aGF0IHdlIGFy
-ZSBpbnRvIHRoZSByYwpwaGFzZXMuIEFsc28gc2VlIGJlbG93IGZvciBhIHJlbWluZGVyIGFib3V0
-IHRoZSBYZW4gVGVzdCBEYXkgd2hpY2ggaXMKaGFwcGVuaW5nIHJpZ2h0IG5vdy4KClBsYW4gZm9y
-IGEgNC4yIHJlbGVhc2U6Cmh0dHA6Ly9saXN0cy54ZW4ub3JnL2FyY2hpdmVzL2h0bWwveGVuLWRl
-dmVsLzIwMTItMDMvbXNnMDA3OTMuaHRtbAoKVGhlIHRpbWUgbGluZSBpcyBhcyBmb2xsb3dzOgoK
-MTkgTWFyY2ggICAgICAgIC0tIFRPRE8gbGlzdCBsb2NrZWQgZG93bgoyIEFwcmlsICAgICAgICAg
-LS0gRmVhdHVyZSBGcmVlemUKMzAgSnVseSAgICAgICAgIC0tIEZpcnN0IHJlbGVhc2UgY2FuZGlk
-YXRlCldlZWtseSAgICAgICAgICAtLSBSQ04rMSB1bnRpbCByZWxlYXNlICAgICAgICAgIDw8IFdF
-IEFSRSBIRVJFCgpXZSByZWxlYXNlZCBSQzIgbGFzdCB3ZWVrICh0YWcgIjQuMi4wLXJjMiIgaW4g
-eGVuLXVuc3RhYmxlLmhnKS4gVGhlCmZpcnN0IFhlbiB0ZXN0IGRheSBpcyBoYXBwZW5pbmcgcmln
-aHQgbm93IG9uIHRoZSAjeGVudGVzdCBjaGFubmVsIG9uCkZyZWVub2RlLiBUaGUgYWltIG9mIHRo
-aXMgZmlyc3QgdGVzdCBkYXkgaXMgdG8gdGVzdCB0aGUgeGwKdG9vbHN0YWNrLiBTZWUgZm9yIG1v
-cmUgZGV0YWlscyBodHRwOi8vd2lraS54ZW4ub3JnL3dpa2kvWGVuX1Rlc3RfRGF5cwoKVGhlIHVw
-ZGF0ZWQgVE9ETyBsaXN0IGZvbGxvd3MuCgpoeXBlcnZpc29yLCBibG9ja2VyczoKCiAgICAqIE5v
-bmUKCnRvb2xzLCBibG9ja2VyczoKCiAgICAqIGxpYnhsIHN0YWJsZSBBUEkgLS0gd2Ugd291bGQg
-bGlrZSA0LjIgdG8gZGVmaW5lIGEgc3RhYmxlIEFQSQogICAgICB3aGljaCBkb3duc3RyZWFtJ3Mg
-Y2FuIHN0YXJ0IHRvIHJlbHkgb24gbm90IGNoYW5naW5nLiBBc3BlY3RzIG9mCiAgICAgIHRoaXMg
-YXJlOgoKICAgICAgICAqIE5vbmUga25vd24KCiAgICAqIHhsIGNvbXBhdGliaWxpdHkgd2l0aCB4
-bToKCiAgICAgICAgKiBObyBrbm93biBpc3N1ZXMKCiAgICAqIFtDSEVDS10gTW9yZSBmb3JtYWxs
-eSBkZXByZWNhdGUgeG0veGVuZC4gTWFucGFnZSBwYXRjaGVzIGFscmVhZHkKICAgICAgaW4gdHJl
-ZS4gTmVlZHMgcmVsZWFzZSBub3RpbmcgYW5kIGNvbW11bmljYXRpb24gYXJvdW5kIC1yYzEgdG8K
-ICAgICAgcmVtaW5kIHBlb3BsZSB0byB0ZXN0IHhsLgoKICAgICogW0NIRUNLXSBDb25maXJtIHRo
-YXQgbWlncmF0aW9uIGZyb20gWGVuIDQuMSAtPiA0LjIgd29ya3MuCgogICAgKiBCdW1wIGxpYnJh
-cnkgU09OQU1FUyBhcyBuZWNlc3NhcnkuCiAgICAgIDwyMDUwMi4zOTQ0MC45Njk2MTkuODI0OTc2
-QG1hcmluZXIudWsueGVuc291cmNlLmNvbT4KCmh5cGVydmlzb3IsIG5pY2UgdG8gaGF2ZToKCiAg
-ICAqIHZNQ0Ugc2F2ZS9yZXN0b3JlIGNoYW5nZXMsIHRvIHNpbXBsaWZ5IG1pZ3JhdGlvbiA0LjIt
-PjQuMyB3aXRoCiAgICAgIG5ldyB2TUNFIGluIDQuMy4gKEppbnNvbmcgTGl1LCBKYW4gQmV1bGlj
-aCwgRE9ORSBmb3IgNC4yKQoKICAgICogW0JVRyg/KV0gVW5kZXIgY2VydGFpbiBjb25kaXRpb25z
-LCB0aGUgcDJtX3BvZF9zd2VlcCBjb2RlIHdpbGwKICAgICAgc3RvcCBoYWxmd2F5IHRocm91Z2gg
-c2VhcmNoaW5nLCBjYXVzaW5nIGEgZ3Vlc3QgdG8gY3Jhc2ggZXZlbiBpZgogICAgICB0aGVyZSB3
-YXMgemVyb2VkIG1lbW9yeSBhdmFpbGFibGUuICBUaGlzIGlzIE5PVCBhIHJlZ3Jlc3Npb24KICAg
-ICAgZnJvbSA0LjEsIGFuZCBpcyBhIHZlcnkgcmFyZSBjYXNlLCBzbyBwcm9iYWJseSBzaG91bGRu
-J3QgYmUgYQogICAgICBibG9ja2VyLiAgKEluIGZhY3QsIEknZCBiZSBvcGVuIHRvIHRoZSBpZGVh
-IHRoYXQgaXQgc2hvdWxkIHdhaXQKICAgICAgdW50aWwgYWZ0ZXIgdGhlIHJlbGVhc2UgdG8gZ2V0
-IG1vcmUgdGVzdGluZy4pCiAgICAgIAkgICAgKEdlb3JnZSBEdW5sYXApCgogICAgKiBTMyByZWdy
-ZXNzaW9uKHM/KSByZXBvcnRlZCBieSBCZW4gR3V0aHJvIChCZW4gJiBKYW4gQmV1bGljaCkKCiAg
-ICAqIGFkZHJlc3MgUG9EIHByb2JsZW1zIHdpdGggZWFybHkgaG9zdCBzaWRlIGFjY2Vzc2VzIHRv
-IGd1ZXN0CiAgICAgIGFkZHJlc3Mgc3BhY2UgKGRyYWZ0IHBhdGNoIGZvciA0LjAueCBleGlzdHMs
-IG5lZWRzIHRvIGJlIHBvcnRlZAogICAgICBvdmVyIHRvIC11bnN0YWJsZSwgd2hpY2ggSSdsbCBl
-eHBlY3QgdG8gZ2V0IHRvIHRvZGF5LCBKYW4KICAgICAgQmV1bGljaCkKCiAgICAqIGZpeCBoaWdo
-IGNoYW5nZSByYXRlIHRvIENNT1MgUlRDIHBlcmlvZGljIGludGVycnVwdCBjYXVzaW5nCiAgICAg
-IGd1ZXN0IHdhbGwgY2xvY2sgdGltZSB0byBsYWcgKHBvc3NpYmxlIGZpeCBvdXRsaW5lZCwgbmVl
-ZHMgdG8gYmUKICAgICAgcHV0IGluIHBhdGNoIGZvcm0gYW5kIHRob3JvdWdobHkgcmV2aWV3ZWQv
-dGVzdGVkIGZvciB1bndhbnRlZAogICAgICBzaWRlIGVmZmVjdHMsIEphbiBCZXVsaWNoKQoKdG9v
-bHMsIG5pY2UgdG8gaGF2ZToKCiAgICAqIHhsIGNvbXBhdGliaWxpdHkgd2l0aCB4bToKCiAgICAg
-ICAgKiBOb25lCgogICAgKiB4bC5jZmcoNSkgZG9jdW1lbnRhdGlvbiBwYXRjaCBmb3IgcWVtdS11
-cHN0cmVhbQogICAgICB2aWRlb3JhbS92aWRlb21lbSBzdXBwb3J0OgogICAgICBodHRwOi8vbGlz
-dHMueGVuLm9yZy9hcmNoaXZlcy9odG1sL3hlbi1kZXZlbC8yMDEyLTA1L21zZzAwMjUwLmh0bWwK
-ICAgICAgcWVtdS11cHN0cmVhbSBkb2Vzbid0IHN1cHBvcnQgc3BlY2lmeWluZyB2aWRlb21lbSBz
-aXplIGZvciB0aGUKICAgICAgSFZNIGd1ZXN0IGNpcnJ1cy9zdGR2Z2EuICAoYnV0IHRoaXMgd29y
-a3Mgd2l0aAogICAgICBxZW11LXhlbi10cmFkaXRpb25hbCkuIChQYXNpIEvDpHJra8OkaW5lbikK
-CiAgICAqIFtCVUddIGxvbmcgc3RvcCBkdXJpbmcgdGhlIGd1ZXN0IGJvb3QgcHJvY2VzcyB3aXRo
-IHFjb3cgaW1hZ2UsCiAgICAgIHJlcG9ydGVkIGJ5IEludGVsOiBodHRwOi8vYnVnemlsbGEueGVu
-Lm9yZy9idWd6aWxsYS9zaG93X2J1Zy5jZ2k/aWQ9MTgyMQoKICAgICogW0JVR10gdmNwdS1zZXQg
-ZG9lc24ndCB0YWtlIGVmZmVjdCBvbiBndWVzdCwgcmVwb3J0ZWQgYnkgSW50ZWw6CiAgICAgIGh0
-dHA6Ly9idWd6aWxsYS54ZW4ub3JnL2J1Z3ppbGxhL3Nob3dfYnVnLmNnaT9pZD0xODIyCgogICAg
-KiBMb2FkIGJsa3RhcCBkcml2ZXIgZnJvbSB4ZW5jb21tb25zIGluaXRzY3JpcHQgaWYgYXZhaWxh
-YmxlLCB0aHJlYWQgYXQ6CiAgICAgIDxkYjYxNGU5MmZhZjc0M2UyMGIzZi4xMzM3MDk2OTc3QGtv
-ZG8yPi4gVG8gYmUgZml4ZWQgbW9yZQogICAgICBwcm9wZXJseSBpbiA0LjMuIChQYXRjaCBwb3N0
-ZWQsIGRpc2N1c3Npb24sIHBsYW4gdG8gdGFrZSBzaW1wbGUKICAgICAgeGVuY29tbW9ucyBwYXRj
-aCBmb3IgNC4yIGFuZCByZXZpc3QgZm9yIDQuMy4gUGluZyBzZW50KQoKICAgICogW0JVR10geGwg
-YWxsb3dzIHNhbWUgUENJIGRldmljZSB0byBiZSBhc3NpZ25lZCB0byBtdWx0aXBsZQogICAgICBn
-dWVzdHMuIGh0dHA6Ly9idWd6aWxsYS54ZW4ub3JnL2J1Z3ppbGxhL3Nob3dfYnVnLmNnaT9pZD0x
-ODI2CiAgICAgICg8RTQ1NThDMEM5NjY4ODc0ODgzN0VCMUIwNUJFRUQ3NUEwRkQ1NTc0QUBTSFNN
-U1gxMDIuY2NyLmNvcnAuaW50ZWwuY29tPikKCiAgICAqIFtCVUcoPyldIElmIGRvbWFpbiAwIGF0
-dGVtcHRzIHRvIGFjY2VzcyBhIGd1ZXN0cycgbWVtb3J5IGJlZm9yZQogICAgICBpdCBpcyBmaW5p
-c2hlZCBiZWluZyBidWlsdCwgYW5kIGl0IGlzIGJlaW5nIGJ1aWx0IGluIFBvRCBtb2RlLAogICAg
-ICB0aGlzIG1heSBjYXVzZSB0aGUgZ3Vlc3QgdG8gY3Jhc2guICBBZ2FpbiwgdGhpcyBpcyBOT1Qg
-YQogICAgICByZWdyZXNzaW9uIGZyb20gNC4xLiAgRnVydGhlcm1vcmUsIGl0J3Mgb25seSBiZWVu
-IHJlcG9ydGVkCiAgICAgIChBSVVJKSBieSBhIGN1c3RvbWVyIG9mIFN1U0U7IHNvIGl0IHNob3Vk
-bid0IGJlIGEgYmxvY2tlci4KICAgICAgKEFnYWluLCBJJ2QgYmUgb3BlbiB0byB0aGUgaWRlYSB0
-aGF0IGl0IHNob3VsZCB3YWl0IHVudGlsIGFmdGVyCiAgICAgIHRoZSByZWxlYXNlIHRvIGdldCBt
-b3JlIHRlc3RpbmcuKQogICAgICAJICAoR2VvcmdlIER1bmxhcCAvIEphbiBCZXVsaWNoKQoKCgpf
-X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwg
-bWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHA6Ly9saXN0cy54ZW4ub3Jn
-L3hlbi1kZXZlbAo=
-
diff --git a/test/corpus/<1344947062-4796-1-git-send-email-attilio.rao@citrix.com> b/test/corpus/<1344947062-4796-1-git-send-email-attilio.rao@citrix.com>
deleted file mode 100644 (file)
index c33af87..0000000
+++ /dev/null
@@ -1,104 +0,0 @@
-From xen-devel-bounces@lists.xen.org Tue Aug 14 13:41:05 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Tue, 14 Aug 2012 13:41:05 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T1GQf-0005Jj-Ua
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 14 Aug 2012 13:41:05 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T1GMg-0007zt-8T; Tue, 14 Aug 2012 12:36:54 +0000
-Received: from mail27.messagelabs.com ([193.109.254.147])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <attilio.rao@citrix.com>) id 1T1GMe-0007zW-6U
-       for xen-devel@lists.xen.org; Tue, 14 Aug 2012 12:36:52 +0000
-X-Env-Sender: attilio.rao@citrix.com
-X-Msg-Ref: server-15.tower-27.messagelabs.com!1344947803!1813066!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDkwNzc=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 13977 invoked from network); 14 Aug 2012 12:36:44 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-15.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
-       14 Aug 2012 12:36:44 -0000
-X-IronPort-AV: E=Sophos;i="4.77,766,1336348800"; d="scan'208";a="14002294"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       14 Aug 2012 12:36:43 +0000
-Received: from dhcp-3-145.uk.xensource.com (10.80.3.221) by
-       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
-       8.3.213.0; Tue, 14 Aug 2012 13:36:42 +0100
-From: Attilio Rao <attilio.rao@citrix.com>
-To: <xen-devel@lists.xen.org>, Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>, 
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-Date: Tue, 14 Aug 2012 13:24:20 +0100
-Message-ID: <1344947062-4796-1-git-send-email-attilio.rao@citrix.com>
-X-Mailer: git-send-email 1.7.2.5
-MIME-Version: 1.0
-Cc: Attilio Rao <attilio.rao@citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD autolearn=ham version=3.3.1
-Subject: [Xen-devel] [PATCH v2 0/2] XEN/X86: Document pagetable_reserve
-       PVOPS and enforce a better semantic
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-When looking for documenting the pagetable_reserve PVOPS, I realized that it
-assumes start == pgt_buf_start. I think this is not semantically right
-(even if with the current code this should not be a problem in practice) and
-what we really want is to extend the logic in order to do the RO -> RW
-convertion also for the range [pgt_buf_start, start).
-This patch then implements this missing conversion, adding some smaller
-cleanups and finally provides documentation for the PVOPS.
-Please look at 2/2 for more details on how the comment is structured.
-If we get this right we will have a reference to be used later on for others
-PVOPS.
-
-The difference with v1 is that sh_start local variable in
-xen_mapping_pagetable_reserve() is renamed as begin. Also, the commit messages
-have been tweaked.
-
-Attilio Rao (2):
-  XEN, X86: Improve semantic support for pagetable_reserve PVOPS
-  Xen: Document the semantic of the pagetable_reserve PVOPS
-
- arch/x86/include/asm/x86_init.h |   19 +++++++++++++++++--
- arch/x86/mm/init.c              |    4 ++++
- arch/x86/xen/mmu.c              |   22 ++++++++++++++++++++--
- 3 files changed, 41 insertions(+), 4 deletions(-)
-
--- 
-1.7.2.5
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1344947062-4796-2-git-send-email-attilio.rao@citrix.com> b/test/corpus/<1344947062-4796-2-git-send-email-attilio.rao@citrix.com>
deleted file mode 100644 (file)
index 44a751c..0000000
+++ /dev/null
@@ -1,150 +0,0 @@
-From xen-devel-bounces@lists.xen.org Tue Aug 14 13:41:09 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Tue, 14 Aug 2012 13:41:09 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T1GQk-0005Jm-0R
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 14 Aug 2012 13:41:09 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T1GMe-0007zi-S9; Tue, 14 Aug 2012 12:36:52 +0000
-Received: from mail27.messagelabs.com ([193.109.254.147])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <attilio.rao@citrix.com>) id 1T1GMd-0007zV-4F
-       for xen-devel@lists.xen.org; Tue, 14 Aug 2012 12:36:51 +0000
-X-Env-Sender: attilio.rao@citrix.com
-X-Msg-Ref: server-15.tower-27.messagelabs.com!1344947803!1813066!2
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDkwNzc=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 14045 invoked from network); 14 Aug 2012 12:36:44 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-15.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
-       14 Aug 2012 12:36:44 -0000
-X-IronPort-AV: E=Sophos;i="4.77,766,1336348800"; d="scan'208";a="14002295"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       14 Aug 2012 12:36:44 +0000
-Received: from dhcp-3-145.uk.xensource.com (10.80.3.221) by
-       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
-       8.3.213.0; Tue, 14 Aug 2012 13:36:44 +0100
-From: Attilio Rao <attilio.rao@citrix.com>
-To: <xen-devel@lists.xen.org>, Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>, 
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-Date: Tue, 14 Aug 2012 13:24:21 +0100
-Message-ID: <1344947062-4796-2-git-send-email-attilio.rao@citrix.com>
-X-Mailer: git-send-email 1.7.2.5
-In-Reply-To: <1344947062-4796-1-git-send-email-attilio.rao@citrix.com>
-References: <1344947062-4796-1-git-send-email-attilio.rao@citrix.com>
-MIME-Version: 1.0
-Cc: Attilio Rao <attilio.rao@citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD autolearn=ham version=3.3.1
-Subject: [Xen-devel] [PATCH v2 1/2] XEN,
-       X86: Improve semantic support for pagetable_reserve PVOPS
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-- Allow xen_mapping_pagetable_reserve() to handle a start different from
-  pgt_buf_start, but still bigger than it.
-- Add checks to xen_mapping_pagetable_reserve() and native_pagetable_reserve()
-  for verifying start and end are contained in the range
-  [pgt_buf_start, pgt_buf_top].
-- In xen_mapping_pagetable_reserve(), change printk into pr_debug.
-- In xen_mapping_pagetable_reserve(), print out diagnostic only if there is
-  an actual need to do that (or, in other words, if there are actually some
-  pages going to switch from RO to RW).
-
-Signed-off-by: Attilio Rao <attilio.rao@citrix.com>
----
- arch/x86/mm/init.c |    4 ++++
- arch/x86/xen/mmu.c |   22 ++++++++++++++++++++--
- 2 files changed, 24 insertions(+), 2 deletions(-)
-
-diff --git a/arch/x86/mm/init.c b/arch/x86/mm/init.c
-index e0e6990..c5849b6 100644
---- a/arch/x86/mm/init.c
-+++ b/arch/x86/mm/init.c
-@@ -92,6 +92,10 @@ static void __init find_early_table_space(struct map_range *mr, unsigned long en
- void __init native_pagetable_reserve(u64 start, u64 end)
- {
-+      if (start < PFN_PHYS(pgt_buf_start) || end > PFN_PHYS(pgt_buf_top))
-+              panic("Invalid address range: [%llu - %llu] should be a subset of [%llu - %llu]\n"
-+                      start, end, PFN_PHYS(pgt_buf_start),
-+                      PFN_PHYS(pgt_buf_top));
-       memblock_reserve(start, end - start);
- }
-diff --git a/arch/x86/xen/mmu.c b/arch/x86/xen/mmu.c
-index b65a761..66d73a2 100644
---- a/arch/x86/xen/mmu.c
-+++ b/arch/x86/xen/mmu.c
-@@ -1180,12 +1180,30 @@ static void __init xen_pagetable_setup_start(pgd_t *base)
- static __init void xen_mapping_pagetable_reserve(u64 start, u64 end)
- {
-+      u64 begin;
-+
-+      begin = PFN_PHYS(pgt_buf_start);
-+
-+      if (start < begin || end > PFN_PHYS(pgt_buf_top))
-+              panic("Invalid address range: [%llu - %llu] should be a subset of [%llu - %llu]\n"
-+                      start, end, begin, PFN_PHYS(pgt_buf_top));
-+
-+      /* set RW the initial range */
-+      if  (start != begin)
-+              pr_debug("xen: setting RW the range %llx - %llx\n",
-+                      begin, start);
-+      while (begin < start) {
-+              make_lowmem_page_readwrite(__va(begin));
-+              begin += PAGE_SIZE;
-+      }
-+
-       /* reserve the range used */
-       native_pagetable_reserve(start, end);
-       /* set as RW the rest */
--      printk(KERN_DEBUG "xen: setting RW the range %llx - %llx\n", end,
--                      PFN_PHYS(pgt_buf_top));
-+      if (end != PFN_PHYS(pgt_buf_top))
-+              pr_debug("xen: setting RW the range %llx - %llx\n",
-+                      end, PFN_PHYS(pgt_buf_top));
-       while (end < PFN_PHYS(pgt_buf_top)) {
-               make_lowmem_page_readwrite(__va(end));
-               end += PAGE_SIZE;
--- 
-1.7.2.5
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1344947062-4796-3-git-send-email-attilio.rao@citrix.com> b/test/corpus/<1344947062-4796-3-git-send-email-attilio.rao@citrix.com>
deleted file mode 100644 (file)
index 1b9f2c4..0000000
+++ /dev/null
@@ -1,123 +0,0 @@
-From xen-devel-bounces@lists.xen.org Tue Aug 14 13:41:07 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Tue, 14 Aug 2012 13:41:07 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T1GQj-0005Jl-GD
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 14 Aug 2012 13:41:07 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T1GMg-000800-KZ; Tue, 14 Aug 2012 12:36:54 +0000
-Received: from mail27.messagelabs.com ([193.109.254.147])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <attilio.rao@citrix.com>) id 1T1GMe-0007zX-Ep
-       for xen-devel@lists.xen.org; Tue, 14 Aug 2012 12:36:52 +0000
-X-Env-Sender: attilio.rao@citrix.com
-X-Msg-Ref: server-15.tower-27.messagelabs.com!1344947803!1813066!3
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDkwNzc=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 14233 invoked from network); 14 Aug 2012 12:36:46 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-15.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
-       14 Aug 2012 12:36:46 -0000
-X-IronPort-AV: E=Sophos;i="4.77,766,1336348800"; d="scan'208";a="14002296"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       14 Aug 2012 12:36:46 +0000
-Received: from dhcp-3-145.uk.xensource.com (10.80.3.221) by
-       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
-       8.3.213.0; Tue, 14 Aug 2012 13:36:45 +0100
-From: Attilio Rao <attilio.rao@citrix.com>
-To: <xen-devel@lists.xen.org>, Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>, 
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-Date: Tue, 14 Aug 2012 13:24:22 +0100
-Message-ID: <1344947062-4796-3-git-send-email-attilio.rao@citrix.com>
-X-Mailer: git-send-email 1.7.2.5
-In-Reply-To: <1344947062-4796-1-git-send-email-attilio.rao@citrix.com>
-References: <1344947062-4796-1-git-send-email-attilio.rao@citrix.com>
-MIME-Version: 1.0
-Cc: Attilio Rao <attilio.rao@citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD autolearn=ham version=3.3.1
-Subject: [Xen-devel] [PATCH v2 2/2] Xen: Document the semantic of the
-       pagetable_reserve PVOPS
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-The informations added on the hook are:
-- Native behaviour
-- Xen specific behaviour
-- Logic behind the Xen specific behaviour
-- PVOPS semantic
-
-Signed-off-by: Attilio Rao <attilio.rao@citrix.com>
----
- arch/x86/include/asm/x86_init.h |   19 +++++++++++++++++--
- 1 files changed, 17 insertions(+), 2 deletions(-)
-
-diff --git a/arch/x86/include/asm/x86_init.h b/arch/x86/include/asm/x86_init.h
-index 38155f6..b22093c 100644
---- a/arch/x86/include/asm/x86_init.h
-+++ b/arch/x86/include/asm/x86_init.h
-@@ -72,8 +72,23 @@ struct x86_init_oem {
-  * struct x86_init_mapping - platform specific initial kernel pagetable setup
-  * @pagetable_reserve:        reserve a range of addresses for kernel pagetable usage
-  *
-- * For more details on the purpose of this hook, look in
-- * init_memory_mapping and the commit that added it.
-+ * It does reserve a range of pages, to be used as pagetable pages.
-+ * The start and end parameters are expected to be contained in the
-+ * [pgt_buf_start, pgt_buf_top] range.
-+ * The native implementation reserves the pages via the memblock_reserve()
-+ * interface.
-+ * The Xen implementation, besides reserving the range via memblock_reserve(),
-+ * also sets RW the remaining pages contained in the ranges
-+ * [pgt_buf_start, start) and [end, pgt_buf_top).
-+ * This is needed because the range [pgt_buf_start, pgt_buf_top] was
-+ * previously mapped read-only by xen_set_pte_init: when running
-+ * on Xen all the pagetable pages need to be mapped read-only in order to
-+ * avoid protection faults from the hypervisor. However, once the correct
-+ * amount of pages is reserved for the pagetables, all the others contained
-+ * in the range must be set to RW so that they can be correctly recycled by
-+ * the VM subsystem.
-+ * This operation is meant to be performed only during init_memory_mapping(),
-+ * just after space for the kernel direct mapping tables is found.
-  */
- struct x86_init_mapping {
-       void (*pagetable_reserve)(u64 start, u64 end);
--- 
-1.7.2.5
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1344949075.5926.29.camel@zakaz.uk.xensource.com> b/test/corpus/<1344949075.5926.29.camel@zakaz.uk.xensource.com>
deleted file mode 100644 (file)
index 5b97a08..0000000
+++ /dev/null
@@ -1,106 +0,0 @@
-From xen-devel-bounces@lists.xen.org Tue Aug 14 14:02:24 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Tue, 14 Aug 2012 14:02:24 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T1GlF-0005Pr-PS
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 14 Aug 2012 14:02:24 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T1Ghg-00007K-VR; Tue, 14 Aug 2012 12:58:36 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1T1Ghf-000077-Dt
-       for xen-devel@lists.xen.org; Tue, 14 Aug 2012 12:58:35 +0000
-Received: from [85.158.143.99:26465] by server-1.bemta-4.messagelabs.com id
-       40/DF-07754-A7B4A205; Tue, 14 Aug 2012 12:58:34 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-16.tower-216.messagelabs.com!1344949112!16916815!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDkwNzc=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 18784 invoked from network); 14 Aug 2012 12:58:32 -0000
-Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-16.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
-       14 Aug 2012 12:58:32 -0000
-X-IronPort-AV: E=Sophos;i="4.77,766,1336348800"; d="scan'208";a="14002763"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       14 Aug 2012 12:57:57 +0000
-Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0;
-       Tue, 14 Aug 2012 13:57:57 +0100
-Message-ID: <1344949075.5926.29.camel@zakaz.uk.xensource.com>
-From: Ian Campbell <Ian.Campbell@citrix.com>
-To: Dieter Bloms <xensource.com@bloms.de>
-Date: Tue, 14 Aug 2012 13:57:55 +0100
-In-Reply-To: <20120814100704.GA19704@bloms.de>
-References: <1344935141.5926.6.camel@zakaz.uk.xensource.com>
-       <20120814100704.GA19704@bloms.de>
-Organization: Citrix Systems, Inc.
-X-Mailer: Evolution 3.4.3-1 
-MIME-Version: 1.0
-Cc: "xen-users@lists.xen.org" <xen-users@lists.xen.org>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [Xen-users] Xen 4.2 TODO (io and irq parameter are
- not evaluated by xl)
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Tue, 2012-08-14 at 11:07 +0100, Dieter Bloms wrote:
-> Hi,
-> 
-> On Tue, Aug 14, Ian Campbell wrote:
-> 
-> > tools, blockers:
-> > 
-> >     * xl compatibility with xm:
-> > 
-> >         * No known issues
-> 
-> the parameter io and irq in domU config files are not evaluated by xl.
-> So it is not possible to passthrough a parallel port for my printer to
-> domU when I start the domU with xl command.
-> With xm I have no issue.
-
-Thanks, I have added this as a nice to have issue. I'll try and look at
-it soon unless someone else gets there first.
-
-Ian.
-
-
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1344949140.5926.30.camel@zakaz.uk.xensource.com> b/test/corpus/<1344949140.5926.30.camel@zakaz.uk.xensource.com>
deleted file mode 100644 (file)
index e169be1..0000000
+++ /dev/null
@@ -1,95 +0,0 @@
-From xen-devel-bounces@lists.xen.org Tue Aug 14 14:02:42 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Tue, 14 Aug 2012 14:02:42 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T1GlX-0005QF-U8
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 14 Aug 2012 14:02:42 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T1GiB-0000AW-0W; Tue, 14 Aug 2012 12:59:07 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1T1Gi9-0000AE-93
-       for xen-devel@lists.xen.org; Tue, 14 Aug 2012 12:59:05 +0000
-Received: from [85.158.139.83:4816] by server-2.bemta-5.messagelabs.com id
-       CC/10-10142-89B4A205; Tue, 14 Aug 2012 12:59:04 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-8.tower-182.messagelabs.com!1344949142!16797666!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDkwNzc=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 17262 invoked from network); 14 Aug 2012 12:59:02 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-8.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
-       14 Aug 2012 12:59:02 -0000
-X-IronPort-AV: E=Sophos;i="4.77,766,1336348800"; d="scan'208";a="14002807"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       14 Aug 2012 12:59:02 +0000
-Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0;
-       Tue, 14 Aug 2012 13:59:02 +0100
-Message-ID: <1344949140.5926.30.camel@zakaz.uk.xensource.com>
-From: Ian Campbell <Ian.Campbell@citrix.com>
-To: Pasi =?ISO-8859-1?Q?K=E4rkk=E4inen?= <pasik@iki.fi>
-Date: Tue, 14 Aug 2012 13:59:00 +0100
-In-Reply-To: <20120814102039.GY19851@reaktio.net>
-References: <1344935141.5926.6.camel@zakaz.uk.xensource.com>
-       <20120814101822.GX19851@reaktio.net>
-       <20120814102039.GY19851@reaktio.net>
-Organization: Citrix Systems, Inc.
-X-Mailer: Evolution 3.4.3-1 
-MIME-Version: 1.0
-Cc: Keir Fraser <keir@xen.org>, xen-devel <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="utf-8"
-Content-Transfer-Encoding: base64
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] Xen 4.2 TODO / Release Plan / ipxe gcc 4.7
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-KGFkZGluZyBLZWlyIGFuZCBkcm9wcGluZyB4bmUtdXNlcnNAKQoKT24gVHVlLCAyMDEyLTA4LTE0
-IGF0IDExOjIwICswMTAwLCBQYXNpIEvDpHJra8OkaW5lbiB3cm90ZToKPiBPbiBUdWUsIEF1ZyAx
-NCwgMjAxMiBhdCAwMToxODoyMlBNICswMzAwLCBQYXNpIEvDpHJra8OkaW5lbiB3cm90ZToKPiA+
-IE9uIFR1ZSwgQXVnIDE0LCAyMDEyIGF0IDEwOjA1OjQxQU0gKzAxMDAsIElhbiBDYW1wYmVsbCB3
-cm90ZToKPiA+ID4gCj4gPiA+IHRvb2xzLCBuaWNlIHRvIGhhdmU6Cj4gPiA+IAo+ID4gCj4gPiAq
-IGZpeCBpcHhlIGJ1aWxkIHByb2JsZW1zIHdpdGggZ2NjIDQuNyAoZmVkb3JhIDE3KS4KPiA+ICAg
-VGhlIGZvbGxvd2luZyBmaWxlcyBmYWlsIHRvIGJ1aWxkOgo+ID4gCS0gaXB4ZS9zcmMvZHJpdmVy
-cy9idXMvaXNhLmMKPiA+IAktIGlweGUvc3JjL2RyaXZlcnMvbmV0L215cmkxMGdlLmMKPiA+IAkt
-IGlweGUvc3JjL2RyaXZlcnMvaW5maW5pYmFuZC9xaWI3MzIyLmMKPiA+ICAgUGF0Y2hlcyBoYXZl
-IGJlZW4gcG9zdGVkIHRvIGlweGUtZGV2ZWwgbWFpbGluZ2xpc3QsCj4gPiAgIHNvIHdlIG5lZWQg
-dG8gdXBkYXRlIG91ciBpcHhlIHZlcnNpb24gb3IgZ3JhYiB0aGUgcGF0Y2hlcy4KPiA+IAo+IAo+
-IEFuZCB0aGUgbmVlZGVkIHBhdGNoZXMgYXJlIGxpc3RlZCBoZXJlOiBodHRwOi8vbGlzdHMueGVu
-Lm9yZy9hcmNoaXZlcy9odG1sL3hlbi1kZXZlbC8yMDEyLTA4L21zZzAxMDQ4Lmh0bWwKCkkgdGhp
-bmsgdGFraW5nIHRoZSBpbmRpdmlkdWFsIHBhdGNoZXMgd291bGQgYmUgbW9yZSBzZW5zaWJsZSB0
-aGFuIGEKd2hvbGVzYWxlIHJlZnJlc2ggYXQgdGhpcyBzdGFnZSwgS2Vpcj8KCk5COiBJIGRpZG4n
-dCBhY3R1YWxseSBsb29rIGF0IHRoZSBwYXRjaGVzLi4uCgpJYW4uCgoKX19fX19fX19fX19fX19f
-X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApY
-ZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK
-
diff --git a/test/corpus/<1345056190.12434.34.camel@dagon.hellion.org.uk> b/test/corpus/<1345056190.12434.34.camel@dagon.hellion.org.uk>
deleted file mode 100644 (file)
index fd464dd..0000000
+++ /dev/null
@@ -1,141 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Aug 15 19:48:56 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 15 Aug 2012 19:48:56 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T1ieE-0007dW-Bb
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 15 Aug 2012 19:48:56 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T1iYy-0005ur-2m; Wed, 15 Aug 2012 18:43:28 +0000
-Received: from mail27.messagelabs.com ([193.109.254.147])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1T1iYw-0005um-3T
-       for xen-devel@lists.xen.org; Wed, 15 Aug 2012 18:43:26 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-12.tower-27.messagelabs.com!1345056192!8573061!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDkxOTE=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 20498 invoked from network); 15 Aug 2012 18:43:12 -0000
-Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-12.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
-       15 Aug 2012 18:43:12 -0000
-X-IronPort-AV: E=Sophos;i="4.77,774,1336348800"; d="scan'208";a="14025676"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       15 Aug 2012 18:43:11 +0000
-Received: from [127.0.0.1] (10.80.16.67) by smtprelay.citrix.com
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0;
-       Wed, 15 Aug 2012 19:43:11 +0100
-Message-ID: <1345056190.12434.34.camel@dagon.hellion.org.uk>
-From: Ian Campbell <Ian.Campbell@citrix.com>
-To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-Date: Wed, 15 Aug 2012 19:43:10 +0100
-In-Reply-To: <alpine.DEB.2.02.1208151844230.2278@kaball.uk.xensource.com>
-References: <1344947062-4796-1-git-send-email-attilio.rao@citrix.com>
-       <1344947062-4796-2-git-send-email-attilio.rao@citrix.com>
-       <alpine.DEB.2.02.1208151824250.2278@kaball.uk.xensource.com>
-       <502BD943.8030701@citrix.com>
-       <alpine.DEB.2.02.1208151844230.2278@kaball.uk.xensource.com>
-Organization: Citrix Systems, Inc.
-X-Mailer: Evolution 3.4.3-1 
-MIME-Version: 1.0
-Cc: Attilio Rao <attilio.rao@citrix.com>,
-       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH v2 1/2] XEN,
- X86: Improve semantic support for pagetable_reserve PVOPS
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Wed, 2012-08-15 at 18:46 +0100, Stefano Stabellini wrote:
-> On Wed, 15 Aug 2012, Attilio Rao wrote:
-> > On 15/08/12 18:25, Stefano Stabellini wrote:
-> > > On Tue, 14 Aug 2012, Attilio Rao wrote:
-> > >    
-> > >> - Allow xen_mapping_pagetable_reserve() to handle a start different from
-> > >>    pgt_buf_start, but still bigger than it.
-> > >> - Add checks to xen_mapping_pagetable_reserve() and native_pagetable_reserve()
-> > >>    for verifying start and end are contained in the range
-> > >>    [pgt_buf_start, pgt_buf_top].
-> > >> - In xen_mapping_pagetable_reserve(), change printk into pr_debug.
-> > >> - In xen_mapping_pagetable_reserve(), print out diagnostic only if there is
-> > >>    an actual need to do that (or, in other words, if there are actually some
-> > >>    pages going to switch from RO to RW).
-> > >>
-> > >> Signed-off-by: Attilio Rao<attilio.rao@citrix.com>
-> > >> ---
-> > >>   arch/x86/mm/init.c |    4 ++++
-> > >>   arch/x86/xen/mmu.c |   22 ++++++++++++++++++++--
-> > >>   2 files changed, 24 insertions(+), 2 deletions(-)
-> > >>
-> > >> diff --git a/arch/x86/mm/init.c b/arch/x86/mm/init.c
-> > >> index e0e6990..c5849b6 100644
-> > >> --- a/arch/x86/mm/init.c
-> > >> +++ b/arch/x86/mm/init.c
-> > >> @@ -92,6 +92,10 @@ static void __init find_early_table_space(struct map_range *mr, unsigned long en
-> > >>
-> > >>   void __init native_pagetable_reserve(u64 start, u64 end)
-> > >>   {
-> > >> +       if (start<  PFN_PHYS(pgt_buf_start) || end>  PFN_PHYS(pgt_buf_top))
-> > >> +               panic("Invalid address range: [%llu - %llu] should be a subset of [%llu - %llu]\n"
-> > >>      
-> > > code style (you can check whether your patch breaks the code style with
-> > > scripts/checkpatch.pl)
-> > >    
-> > 
-> > I actually did before to submit, it reported 0 errors/warning.
-> 
-> strange, that really looks like a line over 80 chars
-
-Also there should be one space either side of the "<" and ">" in the
-conditional.
-
-> 
-> 
-> > Do you have an handy link on where I can find a style guide for Linux 
-> > kernel? I tried to follow what other parts of the code do.
-> 
-> Documentation/CodingStyle
-> 
-> _______________________________________________
-> Xen-devel mailing list
-> Xen-devel@lists.xen.org
-> http://lists.xen.org/xen-devel
-
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1345104759.27489.7.camel@zakaz.uk.xensource.com> b/test/corpus/<1345104759.27489.7.camel@zakaz.uk.xensource.com>
deleted file mode 100644 (file)
index ce5bec7..0000000
+++ /dev/null
@@ -1,153 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Aug 16 09:16:54 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 16 Aug 2012 09:16:54 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T1vG4-00061q-5Z
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 16 Aug 2012 09:16:53 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T1vCC-0002Uh-E0; Thu, 16 Aug 2012 08:12:48 +0000
-Received: from mail27.messagelabs.com ([193.109.254.147])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1T1vCA-0002UF-UC
-       for xen-devel@lists.xen.org; Thu, 16 Aug 2012 08:12:47 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-8.tower-27.messagelabs.com!1345104760!9587939!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDkxOTE=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 26412 invoked from network); 16 Aug 2012 08:12:41 -0000
-Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-8.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
-       16 Aug 2012 08:12:41 -0000
-X-IronPort-AV: E=Sophos;i="4.77,778,1336348800"; d="scan'208";a="14033193"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       16 Aug 2012 08:12:40 +0000
-Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0;
-       Thu, 16 Aug 2012 09:12:40 +0100
-Message-ID: <1345104759.27489.7.camel@zakaz.uk.xensource.com>
-From: Ian Campbell <Ian.Campbell@citrix.com>
-To: Attilio Rao <attilio.rao@citrix.com>
-Date: Thu, 16 Aug 2012 09:12:39 +0100
-In-Reply-To: <502BEEAD.7030906@citrix.com>
-References: <1344947062-4796-1-git-send-email-attilio.rao@citrix.com>
-       <1344947062-4796-2-git-send-email-attilio.rao@citrix.com>
-       <alpine.DEB.2.02.1208151824250.2278@kaball.uk.xensource.com>
-       <502BD943.8030701@citrix.com>
-       <alpine.DEB.2.02.1208151844230.2278@kaball.uk.xensource.com>
-       <502BEEAD.7030906@citrix.com>
-Organization: Citrix Systems, Inc.
-X-Mailer: Evolution 3.4.3-1 
-MIME-Version: 1.0
-Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH v2 1/2] XEN,
- X86: Improve semantic support for pagetable_reserve PVOPS
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Wed, 2012-08-15 at 19:47 +0100, Attilio Rao wrote:
-> On 15/08/12 18:46, Stefano Stabellini wrote:
-> > On Wed, 15 Aug 2012, Attilio Rao wrote:
-> >    
-> >> On 15/08/12 18:25, Stefano Stabellini wrote:
-> >>      
-> >>> On Tue, 14 Aug 2012, Attilio Rao wrote:
-> >>>
-> >>>        
-> >>>> - Allow xen_mapping_pagetable_reserve() to handle a start different from
-> >>>>     pgt_buf_start, but still bigger than it.
-> >>>> - Add checks to xen_mapping_pagetable_reserve() and native_pagetable_reserve()
-> >>>>     for verifying start and end are contained in the range
-> >>>>     [pgt_buf_start, pgt_buf_top].
-> >>>> - In xen_mapping_pagetable_reserve(), change printk into pr_debug.
-> >>>> - In xen_mapping_pagetable_reserve(), print out diagnostic only if there is
-> >>>>     an actual need to do that (or, in other words, if there are actually some
-> >>>>     pages going to switch from RO to RW).
-> >>>>
-> >>>> Signed-off-by: Attilio Rao<attilio.rao@citrix.com>
-> >>>> ---
-> >>>>    arch/x86/mm/init.c |    4 ++++
-> >>>>    arch/x86/xen/mmu.c |   22 ++++++++++++++++++++--
-> >>>>    2 files changed, 24 insertions(+), 2 deletions(-)
-> >>>>
-> >>>> diff --git a/arch/x86/mm/init.c b/arch/x86/mm/init.c
-> >>>> index e0e6990..c5849b6 100644
-> >>>> --- a/arch/x86/mm/init.c
-> >>>> +++ b/arch/x86/mm/init.c
-> >>>> @@ -92,6 +92,10 @@ static void __init find_early_table_space(struct map_range *mr, unsigned long en
-> >>>>
-> >>>>    void __init native_pagetable_reserve(u64 start, u64 end)
-> >>>>    {
-> >>>> +       if (start<   PFN_PHYS(pgt_buf_start) || end>   PFN_PHYS(pgt_buf_top))
-> >>>> +               panic("Invalid address range: [%llu - %llu] should be a subset of [%llu - %llu]\n"
-> >>>>
-> >>>>          
-> >>> code style (you can check whether your patch breaks the code style with
-> >>> scripts/checkpatch.pl)
-> >>>
-> >>>        
-> >> I actually did before to submit, it reported 0 errors/warning.
-> >>      
-> > strange, that really looks like a line over 80 chars
-> >
-> >    
-> 
-> Actually code style explicitely says to not break strings because they 
-> want to retain the ability to grep. In FreeBSD this is the same and I 
-> think this is why checkpatch doesn't whine. I don't think there is a bug 
-> here.
-
-Right, CodingStyle changed a little while ago from a strict 80 column
-limit to just strongly preferred 80 columns with an explicit exception
-for user visible strings.
-
-> 
-> Can I submit the patch as it is, then?
-> 
-> Attilio
-> 
-> _______________________________________________
-> Xen-devel mailing list
-> Xen-devel@lists.xen.org
-> http://lists.xen.org/xen-devel
-
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1345128612-10323-1-git-send-email-stefano.stabellini@eu.citrix.com> b/test/corpus/<1345128612-10323-1-git-send-email-stefano.stabellini@eu.citrix.com>
deleted file mode 100644 (file)
index 810b709..0000000
+++ /dev/null
@@ -1,220 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Aug 16 15:54:00 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 16 Aug 2012 15:54:00 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T21SM-0007Zk-68
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 16 Aug 2012 15:53:59 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T21P3-000613-MZ; Thu, 16 Aug 2012 14:50:29 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1T21P1-00060Z-OS
-       for xen-devel@lists.xensource.com; Thu, 16 Aug 2012 14:50:27 +0000
-Received: from [85.158.139.83:45260] by server-2.bemta-5.messagelabs.com id
-       36/88-10142-2B80D205; Thu, 16 Aug 2012 14:50:26 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-7.tower-182.messagelabs.com!1345128622!24543670!3
-X-Originating-IP: [66.165.176.63]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyNzE3OTY=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 25383 invoked from network); 16 Aug 2012 14:50:25 -0000
-Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
-       by server-7.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
-       16 Aug 2012 14:50:25 -0000
-X-IronPort-AV: E=Sophos;i="4.77,778,1336363200"; d="scan'208";a="205378343"
-Received: from ftlpmailmx01.citrite.net ([10.13.107.65])
-       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       16 Aug 2012 10:50:21 -0400
-Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
-       (10.13.107.65) with Microsoft SMTP Server id 8.3.213.0;
-       Thu, 16 Aug 2012 10:50:21 -0400
-Received: from kaball.uk.xensource.com ([10.80.2.59])  by
-       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
-       <stefano.stabellini@eu.citrix.com>)     id 1T21Op-0006Vh-Pk;
-       Thu, 16 Aug 2012 15:50:15 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-To: <xen-devel@lists.xensource.com>
-Date: Thu, 16 Aug 2012 15:50:07 +0100
-Message-ID: <1345128612-10323-1-git-send-email-stefano.stabellini@eu.citrix.com>
-X-Mailer: git-send-email 1.7.9.5
-In-Reply-To: <alpine.DEB.2.02.1208161523420.4850@kaball.uk.xensource.com>
-References: <alpine.DEB.2.02.1208161523420.4850@kaball.uk.xensource.com>
-MIME-Version: 1.0
-Cc: tim@xen.org, Ian.Campbell@citrix.com,
-       Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: [Xen-devel] [PATCH v3 1/6] xen: improve changes to
-       xen_add_to_physmap
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-This is an incremental patch on top of
-c0bc926083b5987a3e9944eec2c12ad0580100e2: in order to retain binary
-compatibility, it is better to introduce foreign_domid as part of a
-union containing both size and foreign_domid.
-
-Changes in v2:
-
-- do not use an anonymous union.
-
-Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
----
- tools/firmware/hvmloader/pci.c  |    2 +-
- xen/arch/arm/mm.c               |    2 +-
- xen/arch/x86/mm.c               |   10 +++++-----
- xen/arch/x86/x86_64/compat/mm.c |    6 ++++++
- xen/include/public/memory.h     |   11 +++++++----
- 5 files changed, 20 insertions(+), 11 deletions(-)
-
-diff --git a/tools/firmware/hvmloader/pci.c b/tools/firmware/hvmloader/pci.c
-index fd56e50..6375989 100644
---- a/tools/firmware/hvmloader/pci.c
-+++ b/tools/firmware/hvmloader/pci.c
-@@ -212,7 +212,7 @@ void pci_setup(void)
-         xatp.space = XENMAPSPACE_gmfn_range;
-         xatp.idx   = hvm_info->low_mem_pgend;
-         xatp.gpfn  = hvm_info->high_mem_pgend;
--        xatp.size  = nr_pages;
-+        xatp.u.size  = nr_pages;
-         if ( hypercall_memory_op(XENMEM_add_to_physmap, &xatp) != 0 )
-             BUG();
-         hvm_info->high_mem_pgend += nr_pages;
-diff --git a/xen/arch/arm/mm.c b/xen/arch/arm/mm.c
-index 08bc55b..2400e1c 100644
---- a/xen/arch/arm/mm.c
-+++ b/xen/arch/arm/mm.c
-@@ -506,7 +506,7 @@ static int xenmem_add_to_physmap_once(
-         paddr_t maddr;
-         struct domain *od;
--        rc = rcu_lock_target_domain_by_id(xatp->foreign_domid, &od);
-+        rc = rcu_lock_target_domain_by_id(xatp->u.foreign_domid, &od);
-         if ( rc < 0 )
-             return rc;
-         maddr = p2m_lookup(od, xatp->idx << PAGE_SHIFT);
-diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c
-index 9f63974..f5c704e 100644
---- a/xen/arch/x86/mm.c
-+++ b/xen/arch/x86/mm.c
-@@ -4630,7 +4630,7 @@ static int xenmem_add_to_physmap(struct domain *d,
-             this_cpu(iommu_dont_flush_iotlb) = 1;
-         start_xatp = *xatp;
--        while ( xatp->size > 0 )
-+        while ( xatp->u.size > 0 )
-         {
-             rc = xenmem_add_to_physmap_once(d, xatp);
-             if ( rc < 0 )
-@@ -4638,10 +4638,10 @@ static int xenmem_add_to_physmap(struct domain *d,
-             xatp->idx++;
-             xatp->gpfn++;
--            xatp->size--;
-+            xatp->u.size--;
-             /* Check for continuation if it's not the last interation */
--            if ( xatp->size > 0 && hypercall_preempt_check() )
-+            if ( xatp->u.size > 0 && hypercall_preempt_check() )
-             {
-                 rc = -EAGAIN;
-                 break;
-@@ -4651,8 +4651,8 @@ static int xenmem_add_to_physmap(struct domain *d,
-         if ( need_iommu(d) )
-         {
-             this_cpu(iommu_dont_flush_iotlb) = 0;
--            iommu_iotlb_flush(d, start_xatp.idx, start_xatp.size - xatp->size);
--            iommu_iotlb_flush(d, start_xatp.gpfn, start_xatp.size - xatp->size);
-+            iommu_iotlb_flush(d, start_xatp.idx, start_xatp.u.size - xatp->u.size);
-+            iommu_iotlb_flush(d, start_xatp.gpfn, start_xatp.u.size - xatp->u.size);
-         }
-         return rc;
-diff --git a/xen/arch/x86/x86_64/compat/mm.c b/xen/arch/x86/x86_64/compat/mm.c
-index f497503..5bcd2fd 100644
---- a/xen/arch/x86/x86_64/compat/mm.c
-+++ b/xen/arch/x86/x86_64/compat/mm.c
-@@ -59,10 +59,16 @@ int compat_arch_memory_op(int op, XEN_GUEST_HANDLE(void) arg)
-     {
-         struct compat_add_to_physmap cmp;
-         struct xen_add_to_physmap *nat = COMPAT_ARG_XLAT_VIRT_BASE;
-+        enum XLAT_add_to_physmap_u u;
-         if ( copy_from_guest(&cmp, arg, 1) )
-             return -EFAULT;
-+        if ( cmp.space == XENMAPSPACE_gmfn_range )
-+            u = XLAT_add_to_physmap_u_size;
-+        if ( cmp.space == XENMAPSPACE_gmfn_foreign )
-+            u = XLAT_add_to_physmap_u_foreign_domid;
-+
-         XLAT_add_to_physmap(nat, &cmp);
-         rc = arch_memory_op(op, guest_handle_from_ptr(nat, void));
-diff --git a/xen/include/public/memory.h b/xen/include/public/memory.h
-index b2adfbe..7d4ee26 100644
---- a/xen/include/public/memory.h
-+++ b/xen/include/public/memory.h
-@@ -208,8 +208,12 @@ struct xen_add_to_physmap {
-     /* Which domain to change the mapping for. */
-     domid_t domid;
--    /* Number of pages to go through for gmfn_range */
--    uint16_t    size;
-+    union {
-+        /* Number of pages to go through for gmfn_range */
-+        uint16_t    size;
-+        /* IFF gmfn_foreign */
-+        domid_t foreign_domid;
-+    } u;
-     /* Source mapping space. */
- #define XENMAPSPACE_shared_info  0 /* shared info page */
-@@ -217,8 +221,7 @@ struct xen_add_to_physmap {
- #define XENMAPSPACE_gmfn         2 /* GMFN */
- #define XENMAPSPACE_gmfn_range   3 /* GMFN range */
- #define XENMAPSPACE_gmfn_foreign 4 /* GMFN from another guest */
--    uint16_t space;
--    domid_t foreign_domid; /* IFF gmfn_foreign */
-+    unsigned int space;
- #define XENMAPIDX_grant_table_status 0x80000000
--- 
-1.7.2.5
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1345128612-10323-2-git-send-email-stefano.stabellini@eu.citrix.com> b/test/corpus/<1345128612-10323-2-git-send-email-stefano.stabellini@eu.citrix.com>
deleted file mode 100644 (file)
index 294ff96..0000000
+++ /dev/null
@@ -1,157 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Aug 16 15:53:51 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 16 Aug 2012 15:53:51 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T21SD-0007Z6-RH
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 16 Aug 2012 15:53:51 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T21P3-00060o-Aa; Thu, 16 Aug 2012 14:50:29 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1T21P0-00060T-OT
-       for xen-devel@lists.xensource.com; Thu, 16 Aug 2012 14:50:26 +0000
-Received: from [85.158.139.83:45173] by server-5.bemta-5.messagelabs.com id
-       77/1A-31019-1B80D205; Thu, 16 Aug 2012 14:50:25 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-7.tower-182.messagelabs.com!1345128622!24543670!2
-X-Originating-IP: [66.165.176.63]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyNzE3OTY=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 25296 invoked from network); 16 Aug 2012 14:50:25 -0000
-Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
-       by server-7.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
-       16 Aug 2012 14:50:25 -0000
-X-IronPort-AV: E=Sophos;i="4.77,778,1336363200"; d="scan'208";a="205378342"
-Received: from ftlpmailmx01.citrite.net ([10.13.107.65])
-       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       16 Aug 2012 10:50:21 -0400
-Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
-       (10.13.107.65) with Microsoft SMTP Server id 8.3.213.0;
-       Thu, 16 Aug 2012 10:50:21 -0400
-Received: from kaball.uk.xensource.com ([10.80.2.59])  by
-       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
-       <stefano.stabellini@eu.citrix.com>)     id 1T21Op-0006Vh-QL;
-       Thu, 16 Aug 2012 15:50:15 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-To: <xen-devel@lists.xensource.com>
-Date: Thu, 16 Aug 2012 15:50:08 +0100
-Message-ID: <1345128612-10323-2-git-send-email-stefano.stabellini@eu.citrix.com>
-X-Mailer: git-send-email 1.7.9.5
-In-Reply-To: <alpine.DEB.2.02.1208161523420.4850@kaball.uk.xensource.com>
-References: <alpine.DEB.2.02.1208161523420.4850@kaball.uk.xensource.com>
-MIME-Version: 1.0
-Cc: tim@xen.org, Ian.Campbell@citrix.com,
-       Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: [Xen-devel] [PATCH v3 2/6] xen: xen_ulong_t substitution
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-There is still an unwanted unsigned long in the xen public interface:
-replace it with xen_ulong_t.
-
-Also typedef xen_ulong_t to uint64_t on ARM.
-
-Changes in v2:
-
-- do not replace the unsigned long in x86 specific calls;
-- do not replace the unsigned long in multicall_entry;
-- add missing include "xen.h" in version.h;
-- use proper printf flag for xen_ulong_t.
-
-Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
----
- tools/python/xen/lowlevel/xc/xc.c |    2 +-
- xen/include/public/arch-arm.h     |    4 ++--
- xen/include/public/version.h      |    4 +++-
- 3 files changed, 6 insertions(+), 4 deletions(-)
-
-diff --git a/tools/python/xen/lowlevel/xc/xc.c b/tools/python/xen/lowlevel/xc/xc.c
-index 7c89756..e220f68 100644
---- a/tools/python/xen/lowlevel/xc/xc.c
-+++ b/tools/python/xen/lowlevel/xc/xc.c
-@@ -1439,7 +1439,7 @@ static PyObject *pyxc_xeninfo(XcObject *self)
-     if ( xc_version(self->xc_handle, XENVER_commandline, &xen_commandline) != 0 )
-         return pyxc_error_to_exception(self->xc_handle);
--    snprintf(str, sizeof(str), "virt_start=0x%lx", p_parms.virt_start);
-+    snprintf(str, sizeof(str), "virt_start=0x%"PRI_xen_ulong, p_parms.virt_start);
-     xen_pagesize = xc_version(self->xc_handle, XENVER_pagesize, NULL);
-     if (xen_pagesize < 0 )
-diff --git a/xen/include/public/arch-arm.h b/xen/include/public/arch-arm.h
-index 14ad0ab..2ae6548 100644
---- a/xen/include/public/arch-arm.h
-+++ b/xen/include/public/arch-arm.h
-@@ -122,8 +122,8 @@ typedef uint64_t xen_pfn_t;
- /* Only one. All other VCPUS must use VCPUOP_register_vcpu_info */
- #define XEN_LEGACY_MAX_VCPUS 1
--typedef uint32_t xen_ulong_t;
--#define PRI_xen_ulong PRIx32
-+typedef uint64_t xen_ulong_t;
-+#define PRI_xen_ulong PRIx64
- struct vcpu_guest_context {
- #define _VGCF_online                   0
-diff --git a/xen/include/public/version.h b/xen/include/public/version.h
-index 8742c2b..c7e6f8c 100644
---- a/xen/include/public/version.h
-+++ b/xen/include/public/version.h
-@@ -28,6 +28,8 @@
- #ifndef __XEN_PUBLIC_VERSION_H__
- #define __XEN_PUBLIC_VERSION_H__
-+#include "xen.h"
-+
- /* NB. All ops return zero on success, except XENVER_{version,pagesize} */
- /* arg == NULL; returns major:minor (16:16). */
-@@ -58,7 +60,7 @@ typedef char xen_changeset_info_t[64];
- #define XENVER_platform_parameters 5
- struct xen_platform_parameters {
--    unsigned long virt_start;
-+    xen_ulong_t virt_start;
- };
- typedef struct xen_platform_parameters xen_platform_parameters_t;
--- 
-1.7.2.5
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1345128612-10323-3-git-send-email-stefano.stabellini@eu.citrix.com> b/test/corpus/<1345128612-10323-3-git-send-email-stefano.stabellini@eu.citrix.com>
deleted file mode 100644 (file)
index 614bb6e..0000000
+++ /dev/null
@@ -1,112 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Aug 16 15:53:49 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 16 Aug 2012 15:53:49 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T21SF-0007ZC-Kc
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 16 Aug 2012 15:53:49 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T21P1-00060a-T5; Thu, 16 Aug 2012 14:50:27 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1T21Oz-00060O-IY
-       for xen-devel@lists.xensource.com; Thu, 16 Aug 2012 14:50:25 +0000
-Received: from [85.158.139.83:16419] by server-3.bemta-5.messagelabs.com id
-       CA/ED-27237-0B80D205; Thu, 16 Aug 2012 14:50:24 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-7.tower-182.messagelabs.com!1345128622!24543670!1
-X-Originating-IP: [66.165.176.63]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyNzE3OTY=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 25213 invoked from network); 16 Aug 2012 14:50:24 -0000
-Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
-       by server-7.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
-       16 Aug 2012 14:50:24 -0000
-X-IronPort-AV: E=Sophos;i="4.77,778,1336363200"; d="scan'208";a="205378341"
-Received: from ftlpmailmx01.citrite.net ([10.13.107.65])
-       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       16 Aug 2012 10:50:21 -0400
-Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
-       (10.13.107.65) with Microsoft SMTP Server id 8.3.213.0;
-       Thu, 16 Aug 2012 10:50:21 -0400
-Received: from kaball.uk.xensource.com ([10.80.2.59])  by
-       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
-       <stefano.stabellini@eu.citrix.com>)     id 1T21Op-0006Vh-S3;
-       Thu, 16 Aug 2012 15:50:15 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-To: <xen-devel@lists.xensource.com>
-Date: Thu, 16 Aug 2012 15:50:09 +0100
-Message-ID: <1345128612-10323-3-git-send-email-stefano.stabellini@eu.citrix.com>
-X-Mailer: git-send-email 1.7.9.5
-In-Reply-To: <alpine.DEB.2.02.1208161523420.4850@kaball.uk.xensource.com>
-References: <alpine.DEB.2.02.1208161523420.4850@kaball.uk.xensource.com>
-MIME-Version: 1.0
-Cc: tim@xen.org, Ian.Campbell@citrix.com,
-       Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: [Xen-devel] [PATCH v3 3/6] xen: change the limit of nr_extents to
-       UINT_MAX >> MEMOP_EXTENT_SHIFT
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-Currently do_memory_op has a different maximum limit for nr_extents on
-32 bit and 64 bit.
-Change the limit to UINT_MAX >> MEMOP_EXTENT_SHIFT, so that it is the
-same in both cases.
-
-Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
----
- xen/common/memory.c |    2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/xen/common/memory.c b/xen/common/memory.c
-index 5d64cb6..7e58cc4 100644
---- a/xen/common/memory.c
-+++ b/xen/common/memory.c
-@@ -553,7 +553,7 @@ long do_memory_op(unsigned long cmd, XEN_GUEST_HANDLE(void) arg)
-             return start_extent;
-         /* Is size too large for us to encode a continuation? */
--        if ( reservation.nr_extents > (ULONG_MAX >> MEMOP_EXTENT_SHIFT) )
-+        if ( reservation.nr_extents > (UINT_MAX >> MEMOP_EXTENT_SHIFT) )
-             return start_extent;
-         if ( unlikely(start_extent >= reservation.nr_extents) )
--- 
-1.7.2.5
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1345128612-10323-4-git-send-email-stefano.stabellini@eu.citrix.com> b/test/corpus/<1345128612-10323-4-git-send-email-stefano.stabellini@eu.citrix.com>
deleted file mode 100644 (file)
index 8bd8a10..0000000
+++ /dev/null
@@ -1,282 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Aug 16 15:54:11 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 16 Aug 2012 15:54:11 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T21SZ-0007a2-Uy
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 16 Aug 2012 15:54:11 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T21P5-00061u-L1; Thu, 16 Aug 2012 14:50:31 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1T21P2-00060m-Qv
-       for xen-devel@lists.xensource.com; Thu, 16 Aug 2012 14:50:29 +0000
-Received: from [85.158.139.83:16798] by server-8.bemta-5.messagelabs.com id
-       24/44-02481-4B80D205; Thu, 16 Aug 2012 14:50:28 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-7.tower-182.messagelabs.com!1345128622!24543670!4
-X-Originating-IP: [66.165.176.63]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyNzE3OTY=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 25439 invoked from network); 16 Aug 2012 14:50:26 -0000
-Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
-       by server-7.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
-       16 Aug 2012 14:50:26 -0000
-X-IronPort-AV: E=Sophos;i="4.77,778,1336363200"; d="scan'208";a="205378345"
-Received: from ftlpmailmx01.citrite.net ([10.13.107.65])
-       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       16 Aug 2012 10:50:21 -0400
-Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
-       (10.13.107.65) with Microsoft SMTP Server id 8.3.213.0;
-       Thu, 16 Aug 2012 10:50:21 -0400
-Received: from kaball.uk.xensource.com ([10.80.2.59])  by
-       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
-       <stefano.stabellini@eu.citrix.com>)     id 1T21Op-0006Vh-SY;
-       Thu, 16 Aug 2012 15:50:15 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-To: <xen-devel@lists.xensource.com>
-Date: Thu, 16 Aug 2012 15:50:10 +0100
-Message-ID: <1345128612-10323-4-git-send-email-stefano.stabellini@eu.citrix.com>
-X-Mailer: git-send-email 1.7.9.5
-In-Reply-To: <alpine.DEB.2.02.1208161523420.4850@kaball.uk.xensource.com>
-References: <alpine.DEB.2.02.1208161523420.4850@kaball.uk.xensource.com>
-MIME-Version: 1.0
-Cc: tim@xen.org, Ian.Campbell@citrix.com,
-       Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: [Xen-devel] [PATCH v3 4/6] xen: introduce XEN_GUEST_HANDLE_PARAM
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-XEN_GUEST_HANDLE_PARAM is going to be used to distinguish guest pointers
-stored in memory from guest pointers as hypercall parameters.
-
-guest_handle_* macros default to XEN_GUEST_HANDLE_PARAM as return type.
-Two new guest_handle_to_param and guest_handle_from_param macros are
-introduced to do conversions.
-
-Changes in v2:
-
-- add 2 missing #define _XEN_GUEST_HANDLE_PARAM for the compilation of
-the compat code.
-
-Changes in v3:
-
-- move the guest_handle_cast change into this patch;
-- add a clear comment on top of guest_handle_cast;
-- also s/XEN_GUEST_HANDLE/XEN_GUEST_HANDLE_PARAM in
-  guest_handle_from_ptr and const_guest_handle_from_ptr;
-- introduce guest_handle_from_param and guest_handle_to_param.
-
-Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
----
- xen/include/asm-arm/guest_access.h |   19 ++++++++++++++++---
- xen/include/asm-x86/guest_access.h |   19 ++++++++++++++++---
- xen/include/public/arch-arm.h      |   24 ++++++++++++++++++++----
- xen/include/public/arch-ia64.h     |    9 +++++++++
- xen/include/public/arch-x86/xen.h  |    9 +++++++++
- 5 files changed, 70 insertions(+), 10 deletions(-)
-
-diff --git a/xen/include/asm-arm/guest_access.h b/xen/include/asm-arm/guest_access.h
-index 0fceae6..28a4b3f 100644
---- a/xen/include/asm-arm/guest_access.h
-+++ b/xen/include/asm-arm/guest_access.h
-@@ -27,16 +27,29 @@ unsigned long raw_clear_guest(void *to, unsigned len);
- #define guest_handle_add_offset(hnd, nr) ((hnd).p += (nr))
- #define guest_handle_subtract_offset(hnd, nr) ((hnd).p -= (nr))
--/* Cast a guest handle to the specified type of handle. */
-+/* Cast a guest handle (either XEN_GUEST_HANDLE or XEN_GUEST_HANDLE_PARAM)
-+ * to the specified type of XEN_GUEST_HANDLE_PARAM. */
- #define guest_handle_cast(hnd, type) ({         \
-     type *_x = (hnd).p;                         \
-+    (XEN_GUEST_HANDLE_PARAM(type)) { _x };            \
-+})
-+
-+/* Cast a XEN_GUEST_HANDLE to XEN_GUEST_HANDLE_PARAM */
-+#define guest_handle_to_param(hnd, type) ({                  \
-+    typeof((hnd).p) _x = (hnd).p;                         \
-+    (XEN_GUEST_HANDLE_PARAM(type)) { _x };            \
-+})
-+
-+/* Cast a XEN_GUEST_HANDLE_PARAM to XEN_GUEST_HANDLE */
-+#define guest_handle_from_param(hnd, type) ({                  \
-+    typeof((hnd).p) _x = (hnd).p;                         \
-     (XEN_GUEST_HANDLE(type)) { _x };            \
- })
- #define guest_handle_from_ptr(ptr, type)        \
--    ((XEN_GUEST_HANDLE(type)) { (type *)ptr })
-+    ((XEN_GUEST_HANDLE_PARAM(type)) { (type *)ptr })
- #define const_guest_handle_from_ptr(ptr, type)  \
--    ((XEN_GUEST_HANDLE(const_##type)) { (const type *)ptr })
-+    ((XEN_GUEST_HANDLE_PARAM(const_##type)) { (const type *)ptr })
- /*
-  * Copy an array of objects to guest context via a guest handle,
-diff --git a/xen/include/asm-x86/guest_access.h b/xen/include/asm-x86/guest_access.h
-index 2b429c2..6d35104 100644
---- a/xen/include/asm-x86/guest_access.h
-+++ b/xen/include/asm-x86/guest_access.h
-@@ -45,16 +45,29 @@
- #define guest_handle_add_offset(hnd, nr) ((hnd).p += (nr))
- #define guest_handle_subtract_offset(hnd, nr) ((hnd).p -= (nr))
--/* Cast a guest handle to the specified type of handle. */
-+/* Cast a guest handle (either XEN_GUEST_HANDLE or XEN_GUEST_HANDLE_PARAM)
-+ * to the specified type of XEN_GUEST_HANDLE_PARAM. */
- #define guest_handle_cast(hnd, type) ({         \
-     type *_x = (hnd).p;                         \
-+    (XEN_GUEST_HANDLE_PARAM(type)) { _x };            \
-+})
-+
-+/* Cast a XEN_GUEST_HANDLE to XEN_GUEST_HANDLE_PARAM */
-+#define guest_handle_to_param(hnd, type) ({                  \
-+    typeof((hnd).p) _x = (hnd).p;                         \
-+    (XEN_GUEST_HANDLE_PARAM(type)) { _x };            \
-+})
-+
-+/* Cast a XEN_GUEST_HANDLE_PARAM to XEN_GUEST_HANDLE */
-+#define guest_handle_from_param(hnd, type) ({                  \
-+    typeof((hnd).p) _x = (hnd).p;                         \
-     (XEN_GUEST_HANDLE(type)) { _x };            \
- })
- #define guest_handle_from_ptr(ptr, type)        \
--    ((XEN_GUEST_HANDLE(type)) { (type *)ptr })
-+    ((XEN_GUEST_HANDLE_PARAM(type)) { (type *)ptr })
- #define const_guest_handle_from_ptr(ptr, type)  \
--    ((XEN_GUEST_HANDLE(const_##type)) { (const type *)ptr })
-+    ((XEN_GUEST_HANDLE_PARAM(const_##type)) { (const type *)ptr })
- /*
-  * Copy an array of objects to guest context via a guest handle,
-diff --git a/xen/include/public/arch-arm.h b/xen/include/public/arch-arm.h
-index 2ae6548..9db3c81 100644
---- a/xen/include/public/arch-arm.h
-+++ b/xen/include/public/arch-arm.h
-@@ -51,18 +51,34 @@
- #define XEN_HYPERCALL_TAG   0XEA1
-+#define uint64_aligned_t uint64_t __attribute__((aligned(8)))
- #ifndef __ASSEMBLY__
--#define ___DEFINE_XEN_GUEST_HANDLE(name, type) \
--    typedef struct { type *p; } __guest_handle_ ## name
-+#define ___DEFINE_XEN_GUEST_HANDLE(name, type)                  \
-+    typedef struct { type *p; }                                 \
-+        __guest_handle_ ## name;                                \
-+    typedef struct { union { type *p; uint64_aligned_t q; }; }  \
-+        __guest_handle_64_ ## name;
-+/*
-+ * XEN_GUEST_HANDLE represents a guest pointer, when passed as a field
-+ * in a struct in memory. On ARM is always 8 bytes sizes and 8 bytes
-+ * aligned.
-+ * XEN_GUEST_HANDLE_PARAM represent a guest pointer, when passed as an
-+ * hypercall argument. It is 4 bytes on aarch and 8 bytes on aarch64.
-+ */
- #define __DEFINE_XEN_GUEST_HANDLE(name, type) \
-     ___DEFINE_XEN_GUEST_HANDLE(name, type);   \
-     ___DEFINE_XEN_GUEST_HANDLE(const_##name, const type)
- #define DEFINE_XEN_GUEST_HANDLE(name)   __DEFINE_XEN_GUEST_HANDLE(name, name)
--#define __XEN_GUEST_HANDLE(name)        __guest_handle_ ## name
-+#define __XEN_GUEST_HANDLE(name)        __guest_handle_64_ ## name
- #define XEN_GUEST_HANDLE(name)          __XEN_GUEST_HANDLE(name)
--#define set_xen_guest_handle_raw(hnd, val)  do { (hnd).p = val; } while (0)
-+/* this is going to be changes on 64 bit */
-+#define XEN_GUEST_HANDLE_PARAM(name)    __guest_handle_ ## name
-+#define set_xen_guest_handle_raw(hnd, val)                  \
-+    do { if ( sizeof(hnd) == 8 ) *(uint64_t *)&(hnd) = 0;   \
-+         (hnd).p = val;                                     \
-+    } while ( 0 )
- #ifdef __XEN_TOOLS__
- #define get_xen_guest_handle(val, hnd)  do { val = (hnd).p; } while (0)
- #endif
-diff --git a/xen/include/public/arch-ia64.h b/xen/include/public/arch-ia64.h
-index c9da5d4..e4e9688 100644
---- a/xen/include/public/arch-ia64.h
-+++ b/xen/include/public/arch-ia64.h
-@@ -45,8 +45,17 @@
-     ___DEFINE_XEN_GUEST_HANDLE(name, type);   \
-     ___DEFINE_XEN_GUEST_HANDLE(const_##name, const type)
-+/*
-+ * XEN_GUEST_HANDLE represents a guest pointer, when passed as a field
-+ * in a struct in memory.
-+ * XEN_GUEST_HANDLE_PARAM represent a guest pointer, when passed as an
-+ * hypercall argument.
-+ * XEN_GUEST_HANDLE_PARAM and XEN_GUEST_HANDLE are the same on ia64 but
-+ * they might not be on other architectures.
-+ */
- #define DEFINE_XEN_GUEST_HANDLE(name)   __DEFINE_XEN_GUEST_HANDLE(name, name)
- #define XEN_GUEST_HANDLE(name)          __guest_handle_ ## name
-+#define XEN_GUEST_HANDLE_PARAM(name)    XEN_GUEST_HANDLE(name)
- #define XEN_GUEST_HANDLE_64(name)       XEN_GUEST_HANDLE(name)
- #define uint64_aligned_t                uint64_t
- #define set_xen_guest_handle_raw(hnd, val)  do { (hnd).p = val; } while (0)
-diff --git a/xen/include/public/arch-x86/xen.h b/xen/include/public/arch-x86/xen.h
-index 1c186d7..0e10260 100644
---- a/xen/include/public/arch-x86/xen.h
-+++ b/xen/include/public/arch-x86/xen.h
-@@ -38,12 +38,21 @@
-     typedef type * __guest_handle_ ## name
- #endif
-+/*
-+ * XEN_GUEST_HANDLE represents a guest pointer, when passed as a field
-+ * in a struct in memory.
-+ * XEN_GUEST_HANDLE_PARAM represent a guest pointer, when passed as an
-+ * hypercall argument.
-+ * XEN_GUEST_HANDLE_PARAM and XEN_GUEST_HANDLE are the same on X86 but
-+ * they might not be on other architectures.
-+ */
- #define __DEFINE_XEN_GUEST_HANDLE(name, type) \
-     ___DEFINE_XEN_GUEST_HANDLE(name, type);   \
-     ___DEFINE_XEN_GUEST_HANDLE(const_##name, const type)
- #define DEFINE_XEN_GUEST_HANDLE(name)   __DEFINE_XEN_GUEST_HANDLE(name, name)
- #define __XEN_GUEST_HANDLE(name)        __guest_handle_ ## name
- #define XEN_GUEST_HANDLE(name)          __XEN_GUEST_HANDLE(name)
-+#define XEN_GUEST_HANDLE_PARAM(name)    XEN_GUEST_HANDLE(name)
- #define set_xen_guest_handle_raw(hnd, val)  do { (hnd).p = val; } while (0)
- #ifdef __XEN_TOOLS__
- #define get_xen_guest_handle(val, hnd)  do { val = (hnd).p; } while (0)
--- 
-1.7.2.5
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1345128612-10323-5-git-send-email-stefano.stabellini@eu.citrix.com> b/test/corpus/<1345128612-10323-5-git-send-email-stefano.stabellini@eu.citrix.com>
deleted file mode 100644 (file)
index 2f563e7..0000000
+++ /dev/null
@@ -1,1771 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Aug 16 15:54:49 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 16 Aug 2012 15:54:49 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T21T4-0007ai-TO
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 16 Aug 2012 15:54:49 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T21P6-00062A-29; Thu, 16 Aug 2012 14:50:32 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1T21P4-000617-28
-       for xen-devel@lists.xensource.com; Thu, 16 Aug 2012 14:50:30 +0000
-Received: from [85.158.138.51:40672] by server-2.bemta-3.messagelabs.com id
-       E2/E7-17748-5B80D205; Thu, 16 Aug 2012 14:50:29 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-3.tower-174.messagelabs.com!1345128623!20556109!1
-X-Originating-IP: [66.165.176.89]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNjQyODA=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 12559 invoked from network); 16 Aug 2012 14:50:24 -0000
-Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
-       by server-3.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
-       16 Aug 2012 14:50:24 -0000
-X-IronPort-AV: E=Sophos;i="4.77,778,1336363200"; d="scan'208";a="34861514"
-Received: from ftlpmailmx01.citrite.net ([10.13.107.65])
-       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       16 Aug 2012 10:50:22 -0400
-Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
-       (10.13.107.65) with Microsoft SMTP Server id 8.3.213.0;
-       Thu, 16 Aug 2012 10:50:21 -0400
-Received: from kaball.uk.xensource.com ([10.80.2.59])  by
-       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
-       <stefano.stabellini@eu.citrix.com>)     id 1T21Op-0006Vh-UH;
-       Thu, 16 Aug 2012 15:50:15 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-To: <xen-devel@lists.xensource.com>
-Date: Thu, 16 Aug 2012 15:50:11 +0100
-Message-ID: <1345128612-10323-5-git-send-email-stefano.stabellini@eu.citrix.com>
-X-Mailer: git-send-email 1.7.9.5
-In-Reply-To: <alpine.DEB.2.02.1208161523420.4850@kaball.uk.xensource.com>
-References: <alpine.DEB.2.02.1208161523420.4850@kaball.uk.xensource.com>
-MIME-Version: 1.0
-Cc: tim@xen.org, Ian.Campbell@citrix.com,
-       Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: [Xen-devel] [PATCH v3 5/6] xen: replace XEN_GUEST_HANDLE with
-       XEN_GUEST_HANDLE_PARAM when appropriate
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-Note: these changes don't make any difference on x86 and ia64.
-
-
-Replace XEN_GUEST_HANDLE with XEN_GUEST_HANDLE_PARAM when it is used as
-an hypercall argument.
-
-Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
----
- xen/arch/arm/domain.c             |    2 +-
- xen/arch/arm/domctl.c             |    2 +-
- xen/arch/arm/hvm.c                |    2 +-
- xen/arch/arm/mm.c                 |    2 +-
- xen/arch/arm/physdev.c            |    2 +-
- xen/arch/arm/sysctl.c             |    2 +-
- xen/arch/x86/compat.c             |    2 +-
- xen/arch/x86/cpu/mcheck/mce.c     |    2 +-
- xen/arch/x86/domain.c             |    2 +-
- xen/arch/x86/domctl.c             |    2 +-
- xen/arch/x86/efi/runtime.c        |    2 +-
- xen/arch/x86/hvm/hvm.c            |   26 +++++++++---------
- xen/arch/x86/microcode.c          |    2 +-
- xen/arch/x86/mm.c                 |   14 +++++-----
- xen/arch/x86/mm/hap/hap.c         |    2 +-
- xen/arch/x86/mm/mem_event.c       |    2 +-
- xen/arch/x86/mm/paging.c          |    2 +-
- xen/arch/x86/mm/shadow/common.c   |    2 +-
- xen/arch/x86/oprofile/xenoprof.c  |    6 ++--
- xen/arch/x86/physdev.c            |    2 +-
- xen/arch/x86/platform_hypercall.c |    2 +-
- xen/arch/x86/sysctl.c             |    2 +-
- xen/arch/x86/traps.c              |    2 +-
- xen/arch/x86/x86_32/mm.c          |    2 +-
- xen/arch/x86/x86_32/traps.c       |    2 +-
- xen/arch/x86/x86_64/compat/mm.c   |   10 +++---
- xen/arch/x86/x86_64/domain.c      |    2 +-
- xen/arch/x86/x86_64/mm.c          |    2 +-
- xen/arch/x86/x86_64/traps.c       |    2 +-
- xen/common/compat/domain.c        |    2 +-
- xen/common/compat/grant_table.c   |    8 +++---
- xen/common/compat/memory.c        |    4 +-
- xen/common/domain.c               |    2 +-
- xen/common/domctl.c               |    2 +-
- xen/common/event_channel.c        |    2 +-
- xen/common/grant_table.c          |   36 +++++++++++++-------------
- xen/common/kernel.c               |    4 +-
- xen/common/kexec.c                |   16 +++++-----
- xen/common/memory.c               |    4 +-
- xen/common/multicall.c            |    2 +-
- xen/common/schedule.c             |    2 +-
- xen/common/sysctl.c               |    2 +-
- xen/common/xenoprof.c             |    8 +++---
- xen/drivers/acpi/pmstat.c         |    2 +-
- xen/drivers/char/console.c        |    6 ++--
- xen/drivers/passthrough/iommu.c   |    2 +-
- xen/include/asm-arm/hypercall.h   |    2 +-
- xen/include/asm-arm/mm.h          |    2 +-
- xen/include/asm-x86/hap.h         |    2 +-
- xen/include/asm-x86/hypercall.h   |   24 ++++++++--------
- xen/include/asm-x86/mem_event.h   |    2 +-
- xen/include/asm-x86/mm.h          |    8 +++---
- xen/include/asm-x86/paging.h      |    2 +-
- xen/include/asm-x86/processor.h   |    2 +-
- xen/include/asm-x86/shadow.h      |    2 +-
- xen/include/asm-x86/xenoprof.h    |    6 ++--
- xen/include/xen/acpi.h            |    4 +-
- xen/include/xen/hypercall.h       |   52 ++++++++++++++++++------------------
- xen/include/xen/iommu.h           |    2 +-
- xen/include/xen/tmem_xen.h        |    2 +-
- xen/include/xsm/xsm.h             |    4 +-
- xen/xsm/dummy.c                   |    2 +-
- xen/xsm/flask/flask_op.c          |    4 +-
- xen/xsm/flask/hooks.c             |    2 +-
- xen/xsm/xsm_core.c                |    2 +-
- 65 files changed, 168 insertions(+), 168 deletions(-)
-
-diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
-index ee58d68..07b50e2 100644
---- a/xen/arch/arm/domain.c
-+++ b/xen/arch/arm/domain.c
-@@ -515,7 +515,7 @@ void arch_dump_domain_info(struct domain *d)
- {
- }
--long arch_do_vcpu_op(int cmd, struct vcpu *v, XEN_GUEST_HANDLE(void) arg)
-+long arch_do_vcpu_op(int cmd, struct vcpu *v, XEN_GUEST_HANDLE_PARAM(void) arg)
- {
-     return -ENOSYS;
- }
-diff --git a/xen/arch/arm/domctl.c b/xen/arch/arm/domctl.c
-index 1a5f79f..cf16791 100644
---- a/xen/arch/arm/domctl.c
-+++ b/xen/arch/arm/domctl.c
-@@ -11,7 +11,7 @@
- #include <public/domctl.h>
- long arch_do_domctl(struct xen_domctl *domctl,
--                    XEN_GUEST_HANDLE(xen_domctl_t) u_domctl)
-+                    XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl)
- {
-     return -ENOSYS;
- }
-diff --git a/xen/arch/arm/hvm.c b/xen/arch/arm/hvm.c
-index c11378d..40f519e 100644
---- a/xen/arch/arm/hvm.c
-+++ b/xen/arch/arm/hvm.c
-@@ -11,7 +11,7 @@
- #include <asm/hypercall.h>
--long do_hvm_op(unsigned long op, XEN_GUEST_HANDLE(void) arg)
-+long do_hvm_op(unsigned long op, XEN_GUEST_HANDLE_PARAM(void) arg)
- {
-     long rc = 0;
-diff --git a/xen/arch/arm/mm.c b/xen/arch/arm/mm.c
-index 2400e1c..3e8b6cc 100644
---- a/xen/arch/arm/mm.c
-+++ b/xen/arch/arm/mm.c
-@@ -541,7 +541,7 @@ static int xenmem_add_to_physmap(struct domain *d,
-     return xenmem_add_to_physmap_once(d, xatp);
- }
--long arch_memory_op(int op, XEN_GUEST_HANDLE(void) arg)
-+long arch_memory_op(int op, XEN_GUEST_HANDLE_PARAM(void) arg)
- {
-     int rc;
-diff --git a/xen/arch/arm/physdev.c b/xen/arch/arm/physdev.c
-index bcf4337..0801e8c 100644
---- a/xen/arch/arm/physdev.c
-+++ b/xen/arch/arm/physdev.c
-@@ -11,7 +11,7 @@
- #include <asm/hypercall.h>
--int do_physdev_op(int cmd, XEN_GUEST_HANDLE(void) arg)
-+int do_physdev_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
- {
-     printk("%s %d cmd=%d: not implemented yet\n", __func__, __LINE__, cmd);
-     return -ENOSYS;
-diff --git a/xen/arch/arm/sysctl.c b/xen/arch/arm/sysctl.c
-index e8e1c0d..a286abe 100644
---- a/xen/arch/arm/sysctl.c
-+++ b/xen/arch/arm/sysctl.c
-@@ -13,7 +13,7 @@
- #include <public/sysctl.h>
- long arch_do_sysctl(struct xen_sysctl *sysctl,
--                    XEN_GUEST_HANDLE(xen_sysctl_t) u_sysctl)
-+                    XEN_GUEST_HANDLE_PARAM(xen_sysctl_t) u_sysctl)
- {
-     return -ENOSYS;
- }
-diff --git a/xen/arch/x86/compat.c b/xen/arch/x86/compat.c
-index a4fda06..2d05867 100644
---- a/xen/arch/x86/compat.c
-+++ b/xen/arch/x86/compat.c
-@@ -27,7 +27,7 @@ ret_t do_physdev_op_compat(XEN_GUEST_HANDLE(physdev_op_t) uop)
- #ifndef COMPAT
- /* Legacy hypercall (as of 0x00030202). */
--long do_event_channel_op_compat(XEN_GUEST_HANDLE(evtchn_op_t) uop)
-+long do_event_channel_op_compat(XEN_GUEST_HANDLE_PARAM(evtchn_op_t) uop)
- {
-     struct evtchn_op op;
-diff --git a/xen/arch/x86/cpu/mcheck/mce.c b/xen/arch/x86/cpu/mcheck/mce.c
-index a89df6d..0f122b3 100644
---- a/xen/arch/x86/cpu/mcheck/mce.c
-+++ b/xen/arch/x86/cpu/mcheck/mce.c
-@@ -1357,7 +1357,7 @@ CHECK_mcinfo_recovery;
- #endif
- /* Machine Check Architecture Hypercall */
--long do_mca(XEN_GUEST_HANDLE(xen_mc_t) u_xen_mc)
-+long do_mca(XEN_GUEST_HANDLE_PARAM(xen_mc_t) u_xen_mc)
- {
-     long ret = 0;
-     struct xen_mc curop, *op = &curop;
-diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
-index 5bba4b9..13ff776 100644
---- a/xen/arch/x86/domain.c
-+++ b/xen/arch/x86/domain.c
-@@ -1138,7 +1138,7 @@ map_vcpu_info(struct vcpu *v, unsigned long gfn, unsigned offset)
- long
- arch_do_vcpu_op(
--    int cmd, struct vcpu *v, XEN_GUEST_HANDLE(void) arg)
-+    int cmd, struct vcpu *v, XEN_GUEST_HANDLE_PARAM(void) arg)
- {
-     long rc = 0;
-diff --git a/xen/arch/x86/domctl.c b/xen/arch/x86/domctl.c
-index 135ea6e..663bfe4 100644
---- a/xen/arch/x86/domctl.c
-+++ b/xen/arch/x86/domctl.c
-@@ -48,7 +48,7 @@ static int gdbsx_guest_mem_io(
- long arch_do_domctl(
-     struct xen_domctl *domctl,
--    XEN_GUEST_HANDLE(xen_domctl_t) u_domctl)
-+    XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl)
- {
-     long ret = 0;
-diff --git a/xen/arch/x86/efi/runtime.c b/xen/arch/x86/efi/runtime.c
-index 1dbe2db..b2ff495 100644
---- a/xen/arch/x86/efi/runtime.c
-+++ b/xen/arch/x86/efi/runtime.c
-@@ -184,7 +184,7 @@ int efi_get_info(uint32_t idx, union xenpf_efi_info *info)
-     return 0;
- }
--static long gwstrlen(XEN_GUEST_HANDLE(CHAR16) str)
-+static long gwstrlen(XEN_GUEST_HANDLE_PARAM(CHAR16) str)
- {
-     unsigned long len;
-diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
-index 7f8a025c..e2bf831 100644
---- a/xen/arch/x86/hvm/hvm.c
-+++ b/xen/arch/x86/hvm/hvm.c
-@@ -3047,14 +3047,14 @@ static int grant_table_op_is_allowed(unsigned int cmd)
- }
- static long hvm_grant_table_op(
--    unsigned int cmd, XEN_GUEST_HANDLE(void) uop, unsigned int count)
-+    unsigned int cmd, XEN_GUEST_HANDLE_PARAM(void) uop, unsigned int count)
- {
-     if ( !grant_table_op_is_allowed(cmd) )
-         return -ENOSYS; /* all other commands need auditing */
-     return do_grant_table_op(cmd, uop, count);
- }
--static long hvm_memory_op(int cmd, XEN_GUEST_HANDLE(void) arg)
-+static long hvm_memory_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
- {
-     long rc;
-@@ -3072,7 +3072,7 @@ static long hvm_memory_op(int cmd, XEN_GUEST_HANDLE(void) arg)
-     return do_memory_op(cmd, arg);
- }
--static long hvm_physdev_op(int cmd, XEN_GUEST_HANDLE(void) arg)
-+static long hvm_physdev_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
- {
-     switch ( cmd )
-     {
-@@ -3088,7 +3088,7 @@ static long hvm_physdev_op(int cmd, XEN_GUEST_HANDLE(void) arg)
- }
- static long hvm_vcpu_op(
--    int cmd, int vcpuid, XEN_GUEST_HANDLE(void) arg)
-+    int cmd, int vcpuid, XEN_GUEST_HANDLE_PARAM(void) arg)
- {
-     long rc;
-@@ -3137,7 +3137,7 @@ static hvm_hypercall_t *hvm_hypercall32_table[NR_hypercalls] = {
- #else /* defined(__x86_64__) */
- static long hvm_grant_table_op_compat32(unsigned int cmd,
--                                        XEN_GUEST_HANDLE(void) uop,
-+                                        XEN_GUEST_HANDLE_PARAM(void) uop,
-                                         unsigned int count)
- {
-     if ( !grant_table_op_is_allowed(cmd) )
-@@ -3145,7 +3145,7 @@ static long hvm_grant_table_op_compat32(unsigned int cmd,
-     return compat_grant_table_op(cmd, uop, count);
- }
--static long hvm_memory_op_compat32(int cmd, XEN_GUEST_HANDLE(void) arg)
-+static long hvm_memory_op_compat32(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
- {
-     int rc;
-@@ -3164,7 +3164,7 @@ static long hvm_memory_op_compat32(int cmd, XEN_GUEST_HANDLE(void) arg)
- }
- static long hvm_vcpu_op_compat32(
--    int cmd, int vcpuid, XEN_GUEST_HANDLE(void) arg)
-+    int cmd, int vcpuid, XEN_GUEST_HANDLE_PARAM(void) arg)
- {
-     long rc;
-@@ -3188,7 +3188,7 @@ static long hvm_vcpu_op_compat32(
- }
- static long hvm_physdev_op_compat32(
--    int cmd, XEN_GUEST_HANDLE(void) arg)
-+    int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
- {
-     switch ( cmd )
-     {
-@@ -3360,7 +3360,7 @@ void hvm_hypercall_page_initialise(struct domain *d,
- }
- static int hvmop_set_pci_intx_level(
--    XEN_GUEST_HANDLE(xen_hvm_set_pci_intx_level_t) uop)
-+    XEN_GUEST_HANDLE_PARAM(xen_hvm_set_pci_intx_level_t) uop)
- {
-     struct xen_hvm_set_pci_intx_level op;
-     struct domain *d;
-@@ -3525,7 +3525,7 @@ static void hvm_s3_resume(struct domain *d)
- }
- static int hvmop_set_isa_irq_level(
--    XEN_GUEST_HANDLE(xen_hvm_set_isa_irq_level_t) uop)
-+    XEN_GUEST_HANDLE_PARAM(xen_hvm_set_isa_irq_level_t) uop)
- {
-     struct xen_hvm_set_isa_irq_level op;
-     struct domain *d;
-@@ -3569,7 +3569,7 @@ static int hvmop_set_isa_irq_level(
- }
- static int hvmop_set_pci_link_route(
--    XEN_GUEST_HANDLE(xen_hvm_set_pci_link_route_t) uop)
-+    XEN_GUEST_HANDLE_PARAM(xen_hvm_set_pci_link_route_t) uop)
- {
-     struct xen_hvm_set_pci_link_route op;
-     struct domain *d;
-@@ -3602,7 +3602,7 @@ static int hvmop_set_pci_link_route(
- }
- static int hvmop_inject_msi(
--    XEN_GUEST_HANDLE(xen_hvm_inject_msi_t) uop)
-+    XEN_GUEST_HANDLE_PARAM(xen_hvm_inject_msi_t) uop)
- {
-     struct xen_hvm_inject_msi op;
-     struct domain *d;
-@@ -3686,7 +3686,7 @@ static int hvm_replace_event_channel(struct vcpu *v, domid_t remote_domid,
-     return 0;
- }
--long do_hvm_op(unsigned long op, XEN_GUEST_HANDLE(void) arg)
-+long do_hvm_op(unsigned long op, XEN_GUEST_HANDLE_PARAM(void) arg)
- {
-     struct domain *curr_d = current->domain;
-diff --git a/xen/arch/x86/microcode.c b/xen/arch/x86/microcode.c
-index bdda3f5..1477481 100644
---- a/xen/arch/x86/microcode.c
-+++ b/xen/arch/x86/microcode.c
-@@ -192,7 +192,7 @@ static long do_microcode_update(void *_info)
-     return error;
- }
--int microcode_update(XEN_GUEST_HANDLE(const_void) buf, unsigned long len)
-+int microcode_update(XEN_GUEST_HANDLE_PARAM(const_void) buf, unsigned long len)
- {
-     int ret;
-     struct microcode_info *info;
-diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c
-index f5c704e..4d72700 100644
---- a/xen/arch/x86/mm.c
-+++ b/xen/arch/x86/mm.c
-@@ -2914,7 +2914,7 @@ static void put_pg_owner(struct domain *pg_owner)
- }
- static inline int vcpumask_to_pcpumask(
--    struct domain *d, XEN_GUEST_HANDLE(const_void) bmap, cpumask_t *pmask)
-+    struct domain *d, XEN_GUEST_HANDLE_PARAM(const_void) bmap, cpumask_t *pmask)
- {
-     unsigned int vcpu_id, vcpu_bias, offs;
-     unsigned long vmask;
-@@ -2974,9 +2974,9 @@ static inline void fixunmap_domain_page(const void *ptr)
- #endif
- int do_mmuext_op(
--    XEN_GUEST_HANDLE(mmuext_op_t) uops,
-+    XEN_GUEST_HANDLE_PARAM(mmuext_op_t) uops,
-     unsigned int count,
--    XEN_GUEST_HANDLE(uint) pdone,
-+    XEN_GUEST_HANDLE_PARAM(uint) pdone,
-     unsigned int foreigndom)
- {
-     struct mmuext_op op;
-@@ -3438,9 +3438,9 @@ int do_mmuext_op(
- }
- int do_mmu_update(
--    XEN_GUEST_HANDLE(mmu_update_t) ureqs,
-+    XEN_GUEST_HANDLE_PARAM(mmu_update_t) ureqs,
-     unsigned int count,
--    XEN_GUEST_HANDLE(uint) pdone,
-+    XEN_GUEST_HANDLE_PARAM(uint) pdone,
-     unsigned int foreigndom)
- {
-     struct mmu_update req;
-@@ -4387,7 +4387,7 @@ long set_gdt(struct vcpu *v,
- }
--long do_set_gdt(XEN_GUEST_HANDLE(ulong) frame_list, unsigned int entries)
-+long do_set_gdt(XEN_GUEST_HANDLE_PARAM(ulong) frame_list, unsigned int entries)
- {
-     int nr_pages = (entries + 511) / 512;
-     unsigned long frames[16];
-@@ -4661,7 +4661,7 @@ static int xenmem_add_to_physmap(struct domain *d,
-     return xenmem_add_to_physmap_once(d, xatp);
- }
--long arch_memory_op(int op, XEN_GUEST_HANDLE(void) arg)
-+long arch_memory_op(int op, XEN_GUEST_HANDLE_PARAM(void) arg)
- {
-     int rc;
-diff --git a/xen/arch/x86/mm/hap/hap.c b/xen/arch/x86/mm/hap/hap.c
-index 13b4be2..67e48a3 100644
---- a/xen/arch/x86/mm/hap/hap.c
-+++ b/xen/arch/x86/mm/hap/hap.c
-@@ -690,7 +690,7 @@ void hap_teardown(struct domain *d)
- }
- int hap_domctl(struct domain *d, xen_domctl_shadow_op_t *sc,
--               XEN_GUEST_HANDLE(void) u_domctl)
-+               XEN_GUEST_HANDLE_PARAM(void) u_domctl)
- {
-     int rc, preempted = 0;
-diff --git a/xen/arch/x86/mm/mem_event.c b/xen/arch/x86/mm/mem_event.c
-index d728889..d3dac14 100644
---- a/xen/arch/x86/mm/mem_event.c
-+++ b/xen/arch/x86/mm/mem_event.c
-@@ -512,7 +512,7 @@ void mem_event_cleanup(struct domain *d)
- }
- int mem_event_domctl(struct domain *d, xen_domctl_mem_event_op_t *mec,
--                     XEN_GUEST_HANDLE(void) u_domctl)
-+                     XEN_GUEST_HANDLE_PARAM(void) u_domctl)
- {
-     int rc;
-diff --git a/xen/arch/x86/mm/paging.c b/xen/arch/x86/mm/paging.c
-index ca879f9..ea44e39 100644
---- a/xen/arch/x86/mm/paging.c
-+++ b/xen/arch/x86/mm/paging.c
-@@ -654,7 +654,7 @@ void paging_vcpu_init(struct vcpu *v)
- int paging_domctl(struct domain *d, xen_domctl_shadow_op_t *sc,
--                  XEN_GUEST_HANDLE(void) u_domctl)
-+                  XEN_GUEST_HANDLE_PARAM(void) u_domctl)
- {
-     int rc;
-diff --git a/xen/arch/x86/mm/shadow/common.c b/xen/arch/x86/mm/shadow/common.c
-index dc245be..bd47f03 100644
---- a/xen/arch/x86/mm/shadow/common.c
-+++ b/xen/arch/x86/mm/shadow/common.c
-@@ -3786,7 +3786,7 @@ out:
- int shadow_domctl(struct domain *d, 
-                   xen_domctl_shadow_op_t *sc,
--                  XEN_GUEST_HANDLE(void) u_domctl)
-+                  XEN_GUEST_HANDLE_PARAM(void) u_domctl)
- {
-     int rc, preempted = 0;
-diff --git a/xen/arch/x86/oprofile/xenoprof.c b/xen/arch/x86/oprofile/xenoprof.c
-index 71f00ef..5d286a2 100644
---- a/xen/arch/x86/oprofile/xenoprof.c
-+++ b/xen/arch/x86/oprofile/xenoprof.c
-@@ -19,7 +19,7 @@
- #include "op_counter.h"
--int xenoprof_arch_counter(XEN_GUEST_HANDLE(void) arg)
-+int xenoprof_arch_counter(XEN_GUEST_HANDLE_PARAM(void) arg)
- {
-     struct xenoprof_counter counter;
-@@ -39,7 +39,7 @@ int xenoprof_arch_counter(XEN_GUEST_HANDLE(void) arg)
-     return 0;
- }
--int xenoprof_arch_ibs_counter(XEN_GUEST_HANDLE(void) arg)
-+int xenoprof_arch_ibs_counter(XEN_GUEST_HANDLE_PARAM(void) arg)
- {
-     struct xenoprof_ibs_counter ibs_counter;
-@@ -57,7 +57,7 @@ int xenoprof_arch_ibs_counter(XEN_GUEST_HANDLE(void) arg)
- }
- #ifdef CONFIG_COMPAT
--int compat_oprof_arch_counter(XEN_GUEST_HANDLE(void) arg)
-+int compat_oprof_arch_counter(XEN_GUEST_HANDLE_PARAM(void) arg)
- {
-     struct compat_oprof_counter counter;
-diff --git a/xen/arch/x86/physdev.c b/xen/arch/x86/physdev.c
-index b0458fd..b6474ef 100644
---- a/xen/arch/x86/physdev.c
-+++ b/xen/arch/x86/physdev.c
-@@ -255,7 +255,7 @@ int physdev_unmap_pirq(domid_t domid, int pirq)
- }
- #endif /* COMPAT */
--ret_t do_physdev_op(int cmd, XEN_GUEST_HANDLE(void) arg)
-+ret_t do_physdev_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
- {
-     int irq;
-     ret_t ret;
-diff --git a/xen/arch/x86/platform_hypercall.c b/xen/arch/x86/platform_hypercall.c
-index 88880b0..a32e0a2 100644
---- a/xen/arch/x86/platform_hypercall.c
-+++ b/xen/arch/x86/platform_hypercall.c
-@@ -60,7 +60,7 @@ long cpu_down_helper(void *data);
- long core_parking_helper(void *data);
- uint32_t get_cur_idle_nums(void);
--ret_t do_platform_op(XEN_GUEST_HANDLE(xen_platform_op_t) u_xenpf_op)
-+ret_t do_platform_op(XEN_GUEST_HANDLE_PARAM(xen_platform_op_t) u_xenpf_op)
- {
-     ret_t ret = 0;
-     struct xen_platform_op curop, *op = &curop;
-diff --git a/xen/arch/x86/sysctl.c b/xen/arch/x86/sysctl.c
-index 379f071..b84dd34 100644
---- a/xen/arch/x86/sysctl.c
-+++ b/xen/arch/x86/sysctl.c
-@@ -58,7 +58,7 @@ long cpu_down_helper(void *data)
- }
- long arch_do_sysctl(
--    struct xen_sysctl *sysctl, XEN_GUEST_HANDLE(xen_sysctl_t) u_sysctl)
-+    struct xen_sysctl *sysctl, XEN_GUEST_HANDLE_PARAM(xen_sysctl_t) u_sysctl)
- {
-     long ret = 0;
-diff --git a/xen/arch/x86/traps.c b/xen/arch/x86/traps.c
-index 767be86..281d9e7 100644
---- a/xen/arch/x86/traps.c
-+++ b/xen/arch/x86/traps.c
-@@ -3700,7 +3700,7 @@ int send_guest_trap(struct domain *d, uint16_t vcpuid, unsigned int trap_nr)
- }
--long do_set_trap_table(XEN_GUEST_HANDLE(const_trap_info_t) traps)
-+long do_set_trap_table(XEN_GUEST_HANDLE_PARAM(const_trap_info_t) traps)
- {
-     struct trap_info cur;
-     struct vcpu *curr = current;
-diff --git a/xen/arch/x86/x86_32/mm.c b/xen/arch/x86/x86_32/mm.c
-index 37efa3c..f6448fb 100644
---- a/xen/arch/x86/x86_32/mm.c
-+++ b/xen/arch/x86/x86_32/mm.c
-@@ -203,7 +203,7 @@ void __init subarch_init_memory(void)
-     }
- }
--long subarch_memory_op(int op, XEN_GUEST_HANDLE(void) arg)
-+long subarch_memory_op(int op, XEN_GUEST_HANDLE_PARAM(void) arg)
- {
-     struct xen_machphys_mfn_list xmml;
-     unsigned long mfn, last_mfn;
-diff --git a/xen/arch/x86/x86_32/traps.c b/xen/arch/x86/x86_32/traps.c
-index 8f68808..0c7c860 100644
---- a/xen/arch/x86/x86_32/traps.c
-+++ b/xen/arch/x86/x86_32/traps.c
-@@ -492,7 +492,7 @@ static long unregister_guest_callback(struct callback_unregister *unreg)
- }
--long do_callback_op(int cmd, XEN_GUEST_HANDLE(const_void) arg)
-+long do_callback_op(int cmd, XEN_GUEST_HANDLE_PARAM(const_void) arg)
- {
-     long ret;
-diff --git a/xen/arch/x86/x86_64/compat/mm.c b/xen/arch/x86/x86_64/compat/mm.c
-index 5bcd2fd..1de93b7 100644
---- a/xen/arch/x86/x86_64/compat/mm.c
-+++ b/xen/arch/x86/x86_64/compat/mm.c
-@@ -5,7 +5,7 @@
- #include <asm/mem_event.h>
- #include <asm/mem_sharing.h>
--int compat_set_gdt(XEN_GUEST_HANDLE(uint) frame_list, unsigned int entries)
-+int compat_set_gdt(XEN_GUEST_HANDLE_PARAM(uint) frame_list, unsigned int entries)
- {
-     unsigned int i, nr_pages = (entries + 511) / 512;
-     unsigned long frames[16];
-@@ -44,7 +44,7 @@ int compat_update_descriptor(u32 pa_lo, u32 pa_hi, u32 desc_lo, u32 desc_hi)
-                                 desc_lo | ((u64)desc_hi << 32));
- }
--int compat_arch_memory_op(int op, XEN_GUEST_HANDLE(void) arg)
-+int compat_arch_memory_op(int op, XEN_GUEST_HANDLE_PARAM(void) arg)
- {
-     struct compat_machphys_mfn_list xmml;
-     l2_pgentry_t l2e;
-@@ -266,14 +266,14 @@ int compat_update_va_mapping_otherdomain(unsigned long va, u32 lo, u32 hi,
- DEFINE_XEN_GUEST_HANDLE(mmuext_op_compat_t);
--int compat_mmuext_op(XEN_GUEST_HANDLE(mmuext_op_compat_t) cmp_uops,
-+int compat_mmuext_op(XEN_GUEST_HANDLE_PARAM(mmuext_op_compat_t) cmp_uops,
-                      unsigned int count,
--                     XEN_GUEST_HANDLE(uint) pdone,
-+                     XEN_GUEST_HANDLE_PARAM(uint) pdone,
-                      unsigned int foreigndom)
- {
-     unsigned int i, preempt_mask;
-     int rc = 0;
--    XEN_GUEST_HANDLE(mmuext_op_t) nat_ops;
-+    XEN_GUEST_HANDLE_PARAM(mmuext_op_t) nat_ops;
-     preempt_mask = count & MMU_UPDATE_PREEMPTED;
-     count ^= preempt_mask;
-diff --git a/xen/arch/x86/x86_64/domain.c b/xen/arch/x86/x86_64/domain.c
-index e746c89..144ca2d 100644
---- a/xen/arch/x86/x86_64/domain.c
-+++ b/xen/arch/x86/x86_64/domain.c
-@@ -23,7 +23,7 @@ CHECK_vcpu_get_physid;
- int
- arch_compat_vcpu_op(
--    int cmd, struct vcpu *v, XEN_GUEST_HANDLE(void) arg)
-+    int cmd, struct vcpu *v, XEN_GUEST_HANDLE_PARAM(void) arg)
- {
-     int rc = -ENOSYS;
-diff --git a/xen/arch/x86/x86_64/mm.c b/xen/arch/x86/x86_64/mm.c
-index 635a499..17c46a1 100644
---- a/xen/arch/x86/x86_64/mm.c
-+++ b/xen/arch/x86/x86_64/mm.c
-@@ -1043,7 +1043,7 @@ void __init subarch_init_memory(void)
-     }
- }
--long subarch_memory_op(int op, XEN_GUEST_HANDLE(void) arg)
-+long subarch_memory_op(int op, XEN_GUEST_HANDLE_PARAM(void) arg)
- {
-     struct xen_machphys_mfn_list xmml;
-     l3_pgentry_t l3e;
-diff --git a/xen/arch/x86/x86_64/traps.c b/xen/arch/x86/x86_64/traps.c
-index 806cf2e..6ead813 100644
---- a/xen/arch/x86/x86_64/traps.c
-+++ b/xen/arch/x86/x86_64/traps.c
-@@ -518,7 +518,7 @@ static long unregister_guest_callback(struct callback_unregister *unreg)
- }
--long do_callback_op(int cmd, XEN_GUEST_HANDLE(const_void) arg)
-+long do_callback_op(int cmd, XEN_GUEST_HANDLE_PARAM(const_void) arg)
- {
-     long ret;
-diff --git a/xen/common/compat/domain.c b/xen/common/compat/domain.c
-index 40a0287..e4c8ceb 100644
---- a/xen/common/compat/domain.c
-+++ b/xen/common/compat/domain.c
-@@ -15,7 +15,7 @@
- CHECK_vcpu_set_periodic_timer;
- #undef xen_vcpu_set_periodic_timer
--int compat_vcpu_op(int cmd, int vcpuid, XEN_GUEST_HANDLE(void) arg)
-+int compat_vcpu_op(int cmd, int vcpuid, XEN_GUEST_HANDLE_PARAM(void) arg)
- {
-     struct domain *d = current->domain;
-     struct vcpu *v;
-diff --git a/xen/common/compat/grant_table.c b/xen/common/compat/grant_table.c
-index edd20c6..b524955 100644
---- a/xen/common/compat/grant_table.c
-+++ b/xen/common/compat/grant_table.c
-@@ -52,12 +52,12 @@ CHECK_gnttab_swap_grant_ref;
- #undef xen_gnttab_swap_grant_ref
- int compat_grant_table_op(unsigned int cmd,
--                          XEN_GUEST_HANDLE(void) cmp_uop,
-+                          XEN_GUEST_HANDLE_PARAM(void) cmp_uop,
-                           unsigned int count)
- {
-     int rc = 0;
-     unsigned int i;
--    XEN_GUEST_HANDLE(void) cnt_uop;
-+    XEN_GUEST_HANDLE_PARAM(void) cnt_uop;
-     set_xen_guest_handle(cnt_uop, NULL);
-     switch ( cmd )
-@@ -206,7 +206,7 @@ int compat_grant_table_op(unsigned int cmd,
-             }
-             if ( rc >= 0 )
-             {
--                XEN_GUEST_HANDLE(gnttab_transfer_compat_t) xfer;
-+                XEN_GUEST_HANDLE_PARAM(gnttab_transfer_compat_t) xfer;
-                 xfer = guest_handle_cast(cmp_uop, gnttab_transfer_compat_t);
-                 guest_handle_add_offset(xfer, i);
-@@ -251,7 +251,7 @@ int compat_grant_table_op(unsigned int cmd,
-             }
-             if ( rc >= 0 )
-             {
--                XEN_GUEST_HANDLE(gnttab_copy_compat_t) copy;
-+                XEN_GUEST_HANDLE_PARAM(gnttab_copy_compat_t) copy;
-                 copy = guest_handle_cast(cmp_uop, gnttab_copy_compat_t);
-                 guest_handle_add_offset(copy, i);
-diff --git a/xen/common/compat/memory.c b/xen/common/compat/memory.c
-index e7257cc..996151c 100644
---- a/xen/common/compat/memory.c
-+++ b/xen/common/compat/memory.c
-@@ -13,7 +13,7 @@ CHECK_TYPE(domid);
- #undef compat_domid_t
- #undef xen_domid_t
--int compat_memory_op(unsigned int cmd, XEN_GUEST_HANDLE(void) compat)
-+int compat_memory_op(unsigned int cmd, XEN_GUEST_HANDLE_PARAM(void) compat)
- {
-     int rc, split, op = cmd & MEMOP_CMD_MASK;
-     unsigned int start_extent = cmd >> MEMOP_EXTENT_SHIFT;
-@@ -22,7 +22,7 @@ int compat_memory_op(unsigned int cmd, XEN_GUEST_HANDLE(void) compat)
-     {
-         unsigned int i, end_extent = 0;
-         union {
--            XEN_GUEST_HANDLE(void) hnd;
-+            XEN_GUEST_HANDLE_PARAM(void) hnd;
-             struct xen_memory_reservation *rsrv;
-             struct xen_memory_exchange *xchg;
-             struct xen_remove_from_physmap *xrfp;
-diff --git a/xen/common/domain.c b/xen/common/domain.c
-index 4c5d241..d7cd135 100644
---- a/xen/common/domain.c
-+++ b/xen/common/domain.c
-@@ -804,7 +804,7 @@ void vcpu_reset(struct vcpu *v)
- }
--long do_vcpu_op(int cmd, int vcpuid, XEN_GUEST_HANDLE(void) arg)
-+long do_vcpu_op(int cmd, int vcpuid, XEN_GUEST_HANDLE_PARAM(void) arg)
- {
-     struct domain *d = current->domain;
-     struct vcpu *v;
-diff --git a/xen/common/domctl.c b/xen/common/domctl.c
-index 7ca6b08..527c5ad 100644
---- a/xen/common/domctl.c
-+++ b/xen/common/domctl.c
-@@ -238,7 +238,7 @@ void domctl_lock_release(void)
-     spin_unlock(&current->domain->hypercall_deadlock_mutex);
- }
--long do_domctl(XEN_GUEST_HANDLE(xen_domctl_t) u_domctl)
-+long do_domctl(XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl)
- {
-     long ret = 0;
-     struct xen_domctl curop, *op = &curop;
-diff --git a/xen/common/event_channel.c b/xen/common/event_channel.c
-index 53777f8..a80a0d1 100644
---- a/xen/common/event_channel.c
-+++ b/xen/common/event_channel.c
-@@ -970,7 +970,7 @@ out:
- }
--long do_event_channel_op(int cmd, XEN_GUEST_HANDLE(void) arg)
-+long do_event_channel_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
- {
-     long rc;
-diff --git a/xen/common/grant_table.c b/xen/common/grant_table.c
-index 9961e83..d780dc6 100644
---- a/xen/common/grant_table.c
-+++ b/xen/common/grant_table.c
-@@ -771,7 +771,7 @@ __gnttab_map_grant_ref(
- static long
- gnttab_map_grant_ref(
--    XEN_GUEST_HANDLE(gnttab_map_grant_ref_t) uop, unsigned int count)
-+    XEN_GUEST_HANDLE_PARAM(gnttab_map_grant_ref_t) uop, unsigned int count)
- {
-     int i;
-     struct gnttab_map_grant_ref op;
-@@ -1040,7 +1040,7 @@ __gnttab_unmap_grant_ref(
- static long
- gnttab_unmap_grant_ref(
--    XEN_GUEST_HANDLE(gnttab_unmap_grant_ref_t) uop, unsigned int count)
-+    XEN_GUEST_HANDLE_PARAM(gnttab_unmap_grant_ref_t) uop, unsigned int count)
- {
-     int i, c, partial_done, done = 0;
-     struct gnttab_unmap_grant_ref op;
-@@ -1102,7 +1102,7 @@ __gnttab_unmap_and_replace(
- static long
- gnttab_unmap_and_replace(
--    XEN_GUEST_HANDLE(gnttab_unmap_and_replace_t) uop, unsigned int count)
-+    XEN_GUEST_HANDLE_PARAM(gnttab_unmap_and_replace_t) uop, unsigned int count)
- {
-     int i, c, partial_done, done = 0;
-     struct gnttab_unmap_and_replace op;
-@@ -1254,7 +1254,7 @@ active_alloc_failed:
- static long 
- gnttab_setup_table(
--    XEN_GUEST_HANDLE(gnttab_setup_table_t) uop, unsigned int count)
-+    XEN_GUEST_HANDLE_PARAM(gnttab_setup_table_t) uop, unsigned int count)
- {
-     struct gnttab_setup_table op;
-     struct domain *d;
-@@ -1348,7 +1348,7 @@ gnttab_setup_table(
- static long 
- gnttab_query_size(
--    XEN_GUEST_HANDLE(gnttab_query_size_t) uop, unsigned int count)
-+    XEN_GUEST_HANDLE_PARAM(gnttab_query_size_t) uop, unsigned int count)
- {
-     struct gnttab_query_size op;
-     struct domain *d;
-@@ -1485,7 +1485,7 @@ gnttab_prepare_for_transfer(
- static long
- gnttab_transfer(
--    XEN_GUEST_HANDLE(gnttab_transfer_t) uop, unsigned int count)
-+    XEN_GUEST_HANDLE_PARAM(gnttab_transfer_t) uop, unsigned int count)
- {
-     struct domain *d = current->domain;
-     struct domain *e;
-@@ -2082,7 +2082,7 @@ __gnttab_copy(
- static long
- gnttab_copy(
--    XEN_GUEST_HANDLE(gnttab_copy_t) uop, unsigned int count)
-+    XEN_GUEST_HANDLE_PARAM(gnttab_copy_t) uop, unsigned int count)
- {
-     int i;
-     struct gnttab_copy op;
-@@ -2101,7 +2101,7 @@ gnttab_copy(
- }
- static long
--gnttab_set_version(XEN_GUEST_HANDLE(gnttab_set_version_t uop))
-+gnttab_set_version(XEN_GUEST_HANDLE_PARAM(gnttab_set_version_t uop))
- {
-     gnttab_set_version_t op;
-     struct domain *d = current->domain;
-@@ -2220,7 +2220,7 @@ out:
- }
- static long
--gnttab_get_status_frames(XEN_GUEST_HANDLE(gnttab_get_status_frames_t) uop,
-+gnttab_get_status_frames(XEN_GUEST_HANDLE_PARAM(gnttab_get_status_frames_t) uop,
-                          int count)
- {
-     gnttab_get_status_frames_t op;
-@@ -2289,7 +2289,7 @@ out1:
- }
- static long
--gnttab_get_version(XEN_GUEST_HANDLE(gnttab_get_version_t uop))
-+gnttab_get_version(XEN_GUEST_HANDLE_PARAM(gnttab_get_version_t uop))
- {
-     gnttab_get_version_t op;
-     struct domain *d;
-@@ -2368,7 +2368,7 @@ out:
- }
- static long
--gnttab_swap_grant_ref(XEN_GUEST_HANDLE(gnttab_swap_grant_ref_t uop),
-+gnttab_swap_grant_ref(XEN_GUEST_HANDLE_PARAM(gnttab_swap_grant_ref_t uop),
-                       unsigned int count)
- {
-     int i;
-@@ -2389,7 +2389,7 @@ gnttab_swap_grant_ref(XEN_GUEST_HANDLE(gnttab_swap_grant_ref_t uop),
- long
- do_grant_table_op(
--    unsigned int cmd, XEN_GUEST_HANDLE(void) uop, unsigned int count)
-+    unsigned int cmd, XEN_GUEST_HANDLE_PARAM(void) uop, unsigned int count)
- {
-     long rc;
-     
-@@ -2401,7 +2401,7 @@ do_grant_table_op(
-     {
-     case GNTTABOP_map_grant_ref:
-     {
--        XEN_GUEST_HANDLE(gnttab_map_grant_ref_t) map =
-+        XEN_GUEST_HANDLE_PARAM(gnttab_map_grant_ref_t) map =
-             guest_handle_cast(uop, gnttab_map_grant_ref_t);
-         if ( unlikely(!guest_handle_okay(map, count)) )
-             goto out;
-@@ -2415,7 +2415,7 @@ do_grant_table_op(
-     }
-     case GNTTABOP_unmap_grant_ref:
-     {
--        XEN_GUEST_HANDLE(gnttab_unmap_grant_ref_t) unmap =
-+        XEN_GUEST_HANDLE_PARAM(gnttab_unmap_grant_ref_t) unmap =
-             guest_handle_cast(uop, gnttab_unmap_grant_ref_t);
-         if ( unlikely(!guest_handle_okay(unmap, count)) )
-             goto out;
-@@ -2429,7 +2429,7 @@ do_grant_table_op(
-     }
-     case GNTTABOP_unmap_and_replace:
-     {
--        XEN_GUEST_HANDLE(gnttab_unmap_and_replace_t) unmap =
-+        XEN_GUEST_HANDLE_PARAM(gnttab_unmap_and_replace_t) unmap =
-             guest_handle_cast(uop, gnttab_unmap_and_replace_t);
-         if ( unlikely(!guest_handle_okay(unmap, count)) )
-             goto out;
-@@ -2453,7 +2453,7 @@ do_grant_table_op(
-     }
-     case GNTTABOP_transfer:
-     {
--        XEN_GUEST_HANDLE(gnttab_transfer_t) transfer =
-+        XEN_GUEST_HANDLE_PARAM(gnttab_transfer_t) transfer =
-             guest_handle_cast(uop, gnttab_transfer_t);
-         if ( unlikely(!guest_handle_okay(transfer, count)) )
-             goto out;
-@@ -2467,7 +2467,7 @@ do_grant_table_op(
-     }
-     case GNTTABOP_copy:
-     {
--        XEN_GUEST_HANDLE(gnttab_copy_t) copy =
-+        XEN_GUEST_HANDLE_PARAM(gnttab_copy_t) copy =
-             guest_handle_cast(uop, gnttab_copy_t);
-         if ( unlikely(!guest_handle_okay(copy, count)) )
-             goto out;
-@@ -2504,7 +2504,7 @@ do_grant_table_op(
-     }
-     case GNTTABOP_swap_grant_ref:
-     {
--        XEN_GUEST_HANDLE(gnttab_swap_grant_ref_t) swap =
-+        XEN_GUEST_HANDLE_PARAM(gnttab_swap_grant_ref_t) swap =
-             guest_handle_cast(uop, gnttab_swap_grant_ref_t);
-         if ( unlikely(!guest_handle_okay(swap, count)) )
-             goto out;
-diff --git a/xen/common/kernel.c b/xen/common/kernel.c
-index c915bbc..55caff6 100644
---- a/xen/common/kernel.c
-+++ b/xen/common/kernel.c
-@@ -204,7 +204,7 @@ void __init do_initcalls(void)
-  * Simple hypercalls.
-  */
--DO(xen_version)(int cmd, XEN_GUEST_HANDLE(void) arg)
-+DO(xen_version)(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
- {
-     switch ( cmd )
-     {
-@@ -332,7 +332,7 @@ DO(xen_version)(int cmd, XEN_GUEST_HANDLE(void) arg)
-     return -ENOSYS;
- }
--DO(nmi_op)(unsigned int cmd, XEN_GUEST_HANDLE(void) arg)
-+DO(nmi_op)(unsigned int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
- {
-     struct xennmi_callback cb;
-     long rc = 0;
-diff --git a/xen/common/kexec.c b/xen/common/kexec.c
-index 09a5624..03389eb 100644
---- a/xen/common/kexec.c
-+++ b/xen/common/kexec.c
-@@ -613,7 +613,7 @@ static int kexec_get_range_internal(xen_kexec_range_t *range)
-     return ret;
- }
--static int kexec_get_range(XEN_GUEST_HANDLE(void) uarg)
-+static int kexec_get_range(XEN_GUEST_HANDLE_PARAM(void) uarg)
- {
-     xen_kexec_range_t range;
-     int ret = -EINVAL;
-@@ -629,7 +629,7 @@ static int kexec_get_range(XEN_GUEST_HANDLE(void) uarg)
-     return ret;
- }
--static int kexec_get_range_compat(XEN_GUEST_HANDLE(void) uarg)
-+static int kexec_get_range_compat(XEN_GUEST_HANDLE_PARAM(void) uarg)
- {
- #ifdef CONFIG_COMPAT
-     xen_kexec_range_t range;
-@@ -777,7 +777,7 @@ static int kexec_load_unload_internal(unsigned long op, xen_kexec_load_t *load)
-     return ret;
- }
--static int kexec_load_unload(unsigned long op, XEN_GUEST_HANDLE(void) uarg)
-+static int kexec_load_unload(unsigned long op, XEN_GUEST_HANDLE_PARAM(void) uarg)
- {
-     xen_kexec_load_t load;
-@@ -788,7 +788,7 @@ static int kexec_load_unload(unsigned long op, XEN_GUEST_HANDLE(void) uarg)
- }
- static int kexec_load_unload_compat(unsigned long op,
--                                    XEN_GUEST_HANDLE(void) uarg)
-+                                    XEN_GUEST_HANDLE_PARAM(void) uarg)
- {
- #ifdef CONFIG_COMPAT
-     compat_kexec_load_t compat_load;
-@@ -813,7 +813,7 @@ static int kexec_load_unload_compat(unsigned long op,
- #endif /* CONFIG_COMPAT */
- }
--static int kexec_exec(XEN_GUEST_HANDLE(void) uarg)
-+static int kexec_exec(XEN_GUEST_HANDLE_PARAM(void) uarg)
- {
-     xen_kexec_exec_t exec;
-     xen_kexec_image_t *image;
-@@ -845,7 +845,7 @@ static int kexec_exec(XEN_GUEST_HANDLE(void) uarg)
-     return -EINVAL; /* never reached */
- }
--int do_kexec_op_internal(unsigned long op, XEN_GUEST_HANDLE(void) uarg,
-+int do_kexec_op_internal(unsigned long op, XEN_GUEST_HANDLE_PARAM(void) uarg,
-                            int compat)
- {
-     unsigned long flags;
-@@ -886,13 +886,13 @@ int do_kexec_op_internal(unsigned long op, XEN_GUEST_HANDLE(void) uarg,
-     return ret;
- }
--long do_kexec_op(unsigned long op, XEN_GUEST_HANDLE(void) uarg)
-+long do_kexec_op(unsigned long op, XEN_GUEST_HANDLE_PARAM(void) uarg)
- {
-     return do_kexec_op_internal(op, uarg, 0);
- }
- #ifdef CONFIG_COMPAT
--int compat_kexec_op(unsigned long op, XEN_GUEST_HANDLE(void) uarg)
-+int compat_kexec_op(unsigned long op, XEN_GUEST_HANDLE_PARAM(void) uarg)
- {
-     return do_kexec_op_internal(op, uarg, 1);
- }
-diff --git a/xen/common/memory.c b/xen/common/memory.c
-index 7e58cc4..a683954 100644
---- a/xen/common/memory.c
-+++ b/xen/common/memory.c
-@@ -277,7 +277,7 @@ static void decrease_reservation(struct memop_args *a)
-     a->nr_done = i;
- }
--static long memory_exchange(XEN_GUEST_HANDLE(xen_memory_exchange_t) arg)
-+static long memory_exchange(XEN_GUEST_HANDLE_PARAM(xen_memory_exchange_t) arg)
- {
-     struct xen_memory_exchange exch;
-     PAGE_LIST_HEAD(in_chunk_list);
-@@ -530,7 +530,7 @@ static long memory_exchange(XEN_GUEST_HANDLE(xen_memory_exchange_t) arg)
-     return rc;
- }
--long do_memory_op(unsigned long cmd, XEN_GUEST_HANDLE(void) arg)
-+long do_memory_op(unsigned long cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
- {
-     struct domain *d;
-     int rc, op;
-diff --git a/xen/common/multicall.c b/xen/common/multicall.c
-index 6c1a9d7..5de5f8d 100644
---- a/xen/common/multicall.c
-+++ b/xen/common/multicall.c
-@@ -21,7 +21,7 @@ typedef long ret_t;
- ret_t
- do_multicall(
--    XEN_GUEST_HANDLE(multicall_entry_t) call_list, unsigned int nr_calls)
-+    XEN_GUEST_HANDLE_PARAM(multicall_entry_t) call_list, unsigned int nr_calls)
- {
-     struct mc_state *mcs = &current->mc_state;
-     unsigned int     i;
-diff --git a/xen/common/schedule.c b/xen/common/schedule.c
-index 0854f55..c26eac4 100644
---- a/xen/common/schedule.c
-+++ b/xen/common/schedule.c
-@@ -836,7 +836,7 @@ typedef long ret_t;
- #endif /* !COMPAT */
--ret_t do_sched_op(int cmd, XEN_GUEST_HANDLE(void) arg)
-+ret_t do_sched_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
- {
-     ret_t ret = 0;
-diff --git a/xen/common/sysctl.c b/xen/common/sysctl.c
-index ea68278..47142f4 100644
---- a/xen/common/sysctl.c
-+++ b/xen/common/sysctl.c
-@@ -27,7 +27,7 @@
- #include <xsm/xsm.h>
- #include <xen/pmstat.h>
--long do_sysctl(XEN_GUEST_HANDLE(xen_sysctl_t) u_sysctl)
-+long do_sysctl(XEN_GUEST_HANDLE_PARAM(xen_sysctl_t) u_sysctl)
- {
-     long ret = 0;
-     struct xen_sysctl curop, *op = &curop;
-diff --git a/xen/common/xenoprof.c b/xen/common/xenoprof.c
-index e571fea..c001b38 100644
---- a/xen/common/xenoprof.c
-+++ b/xen/common/xenoprof.c
-@@ -404,7 +404,7 @@ static int add_active_list(domid_t domid)
-     return 0;
- }
--static int add_passive_list(XEN_GUEST_HANDLE(void) arg)
-+static int add_passive_list(XEN_GUEST_HANDLE_PARAM(void) arg)
- {
-     struct xenoprof_passive passive;
-     struct domain *d;
-@@ -585,7 +585,7 @@ void xenoprof_log_event(struct vcpu *vcpu, const struct cpu_user_regs *regs,
--static int xenoprof_op_init(XEN_GUEST_HANDLE(void) arg)
-+static int xenoprof_op_init(XEN_GUEST_HANDLE_PARAM(void) arg)
- {
-     struct domain *d = current->domain;
-     struct xenoprof_init xenoprof_init;
-@@ -609,7 +609,7 @@ static int xenoprof_op_init(XEN_GUEST_HANDLE(void) arg)
- #endif /* !COMPAT */
--static int xenoprof_op_get_buffer(XEN_GUEST_HANDLE(void) arg)
-+static int xenoprof_op_get_buffer(XEN_GUEST_HANDLE_PARAM(void) arg)
- {
-     struct xenoprof_get_buffer xenoprof_get_buffer;
-     struct domain *d = current->domain;
-@@ -660,7 +660,7 @@ static int xenoprof_op_get_buffer(XEN_GUEST_HANDLE(void) arg)
-                       || (op == XENOPROF_disable_virq)  \
-                       || (op == XENOPROF_get_buffer))
-  
--int do_xenoprof_op(int op, XEN_GUEST_HANDLE(void) arg)
-+int do_xenoprof_op(int op, XEN_GUEST_HANDLE_PARAM(void) arg)
- {
-     int ret = 0;
-     
-diff --git a/xen/drivers/acpi/pmstat.c b/xen/drivers/acpi/pmstat.c
-index 698711e..f8d62f2 100644
---- a/xen/drivers/acpi/pmstat.c
-+++ b/xen/drivers/acpi/pmstat.c
-@@ -515,7 +515,7 @@ int do_pm_op(struct xen_sysctl_pm_op *op)
-     return ret;
- }
--int acpi_set_pdc_bits(u32 acpi_id, XEN_GUEST_HANDLE(uint32) pdc)
-+int acpi_set_pdc_bits(u32 acpi_id, XEN_GUEST_HANDLE_PARAM(uint32) pdc)
- {
-     u32 bits[3];
-     int ret;
-diff --git a/xen/drivers/char/console.c b/xen/drivers/char/console.c
-index e10bed5..b0f2334 100644
---- a/xen/drivers/char/console.c
-+++ b/xen/drivers/char/console.c
-@@ -182,7 +182,7 @@ static void putchar_console_ring(int c)
- long read_console_ring(struct xen_sysctl_readconsole *op)
- {
--    XEN_GUEST_HANDLE(char) str;
-+    XEN_GUEST_HANDLE_PARAM(char) str;
-     uint32_t idx, len, max, sofar, c;
-     str   = guest_handle_cast(op->buffer, char),
-@@ -320,7 +320,7 @@ static void notify_dom0_con_ring(unsigned long unused)
- static DECLARE_SOFTIRQ_TASKLET(notify_dom0_con_ring_tasklet,
-                                notify_dom0_con_ring, 0);
--static long guest_console_write(XEN_GUEST_HANDLE(char) buffer, int count)
-+static long guest_console_write(XEN_GUEST_HANDLE_PARAM(char) buffer, int count)
- {
-     char kbuf[128], *kptr;
-     int kcount;
-@@ -358,7 +358,7 @@ static long guest_console_write(XEN_GUEST_HANDLE(char) buffer, int count)
-     return 0;
- }
--long do_console_io(int cmd, int count, XEN_GUEST_HANDLE(char) buffer)
-+long do_console_io(int cmd, int count, XEN_GUEST_HANDLE_PARAM(char) buffer)
- {
-     long rc;
-     unsigned int idx, len;
-diff --git a/xen/drivers/passthrough/iommu.c b/xen/drivers/passthrough/iommu.c
-index 64f5fd1..396461f 100644
---- a/xen/drivers/passthrough/iommu.c
-+++ b/xen/drivers/passthrough/iommu.c
-@@ -518,7 +518,7 @@ void iommu_crash_shutdown(void)
- int iommu_do_domctl(
-     struct xen_domctl *domctl,
--    XEN_GUEST_HANDLE(xen_domctl_t) u_domctl)
-+    XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl)
- {
-     struct domain *d;
-     u16 seg;
-diff --git a/xen/include/asm-arm/hypercall.h b/xen/include/asm-arm/hypercall.h
-index 454f02e..090e620 100644
---- a/xen/include/asm-arm/hypercall.h
-+++ b/xen/include/asm-arm/hypercall.h
-@@ -2,7 +2,7 @@
- #define __ASM_ARM_HYPERCALL_H__
- #include <public/domctl.h> /* for arch_do_domctl */
--int do_physdev_op(int cmd, XEN_GUEST_HANDLE(void) arg);
-+int do_physdev_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg);
- #endif /* __ASM_ARM_HYPERCALL_H__ */
- /*
-diff --git a/xen/include/asm-arm/mm.h b/xen/include/asm-arm/mm.h
-index b37bd35..8bf45ba 100644
---- a/xen/include/asm-arm/mm.h
-+++ b/xen/include/asm-arm/mm.h
-@@ -267,7 +267,7 @@ static inline int relinquish_shared_pages(struct domain *d)
- /* Arch-specific portion of memory_op hypercall. */
--long arch_memory_op(int op, XEN_GUEST_HANDLE(void) arg);
-+long arch_memory_op(int op, XEN_GUEST_HANDLE_PARAM(void) arg);
- int steal_page(
-     struct domain *d, struct page_info *page, unsigned int memflags);
-diff --git a/xen/include/asm-x86/hap.h b/xen/include/asm-x86/hap.h
-index a2532a4..916a35b 100644
---- a/xen/include/asm-x86/hap.h
-+++ b/xen/include/asm-x86/hap.h
-@@ -51,7 +51,7 @@ hap_unmap_domain_page(void *p)
- /************************************************/
- void  hap_domain_init(struct domain *d);
- int   hap_domctl(struct domain *d, xen_domctl_shadow_op_t *sc,
--                 XEN_GUEST_HANDLE(void) u_domctl);
-+                 XEN_GUEST_HANDLE_PARAM(void) u_domctl);
- int   hap_enable(struct domain *d, u32 mode);
- void  hap_final_teardown(struct domain *d);
- void  hap_teardown(struct domain *d);
-diff --git a/xen/include/asm-x86/hypercall.h b/xen/include/asm-x86/hypercall.h
-index 9e136c3..55b5ca2 100644
---- a/xen/include/asm-x86/hypercall.h
-+++ b/xen/include/asm-x86/hypercall.h
-@@ -18,22 +18,22 @@
- extern long
- do_event_channel_op_compat(
--    XEN_GUEST_HANDLE(evtchn_op_t) uop);
-+    XEN_GUEST_HANDLE_PARAM(evtchn_op_t) uop);
- extern long
- do_set_trap_table(
--    XEN_GUEST_HANDLE(const_trap_info_t) traps);
-+    XEN_GUEST_HANDLE_PARAM(const_trap_info_t) traps);
- extern int
- do_mmu_update(
--    XEN_GUEST_HANDLE(mmu_update_t) ureqs,
-+    XEN_GUEST_HANDLE_PARAM(mmu_update_t) ureqs,
-     unsigned int count,
--    XEN_GUEST_HANDLE(uint) pdone,
-+    XEN_GUEST_HANDLE_PARAM(uint) pdone,
-     unsigned int foreigndom);
- extern long
- do_set_gdt(
--    XEN_GUEST_HANDLE(ulong) frame_list,
-+    XEN_GUEST_HANDLE_PARAM(ulong) frame_list,
-     unsigned int entries);
- extern long
-@@ -60,7 +60,7 @@ do_update_descriptor(
-     u64 desc);
- extern long
--do_mca(XEN_GUEST_HANDLE(xen_mc_t) u_xen_mc);
-+do_mca(XEN_GUEST_HANDLE_PARAM(xen_mc_t) u_xen_mc);
- extern int
- do_update_va_mapping(
-@@ -70,7 +70,7 @@ do_update_va_mapping(
- extern long
- do_physdev_op(
--    int cmd, XEN_GUEST_HANDLE(void) arg);
-+    int cmd, XEN_GUEST_HANDLE_PARAM(void) arg);
- extern int
- do_update_va_mapping_otherdomain(
-@@ -81,9 +81,9 @@ do_update_va_mapping_otherdomain(
- extern int
- do_mmuext_op(
--    XEN_GUEST_HANDLE(mmuext_op_t) uops,
-+    XEN_GUEST_HANDLE_PARAM(mmuext_op_t) uops,
-     unsigned int count,
--    XEN_GUEST_HANDLE(uint) pdone,
-+    XEN_GUEST_HANDLE_PARAM(uint) pdone,
-     unsigned int foreigndom);
- extern unsigned long
-@@ -92,7 +92,7 @@ do_iret(
- extern int
- do_kexec(
--    unsigned long op, unsigned arg1, XEN_GUEST_HANDLE(void) uarg);
-+    unsigned long op, unsigned arg1, XEN_GUEST_HANDLE_PARAM(void) uarg);
- #ifdef __x86_64__
-@@ -110,11 +110,11 @@ do_set_segment_base(
- extern int
- compat_physdev_op(
-     int cmd,
--    XEN_GUEST_HANDLE(void) arg);
-+    XEN_GUEST_HANDLE_PARAM(void) arg);
- extern int
- arch_compat_vcpu_op(
--    int cmd, struct vcpu *v, XEN_GUEST_HANDLE(void) arg);
-+    int cmd, struct vcpu *v, XEN_GUEST_HANDLE_PARAM(void) arg);
- #else
-diff --git a/xen/include/asm-x86/mem_event.h b/xen/include/asm-x86/mem_event.h
-index 23d71c1..e17f36b 100644
---- a/xen/include/asm-x86/mem_event.h
-+++ b/xen/include/asm-x86/mem_event.h
-@@ -65,7 +65,7 @@ int mem_event_get_response(struct domain *d, struct mem_event_domain *med,
- struct domain *get_mem_event_op_target(uint32_t domain, int *rc);
- int do_mem_event_op(int op, uint32_t domain, void *arg);
- int mem_event_domctl(struct domain *d, xen_domctl_mem_event_op_t *mec,
--                     XEN_GUEST_HANDLE(void) u_domctl);
-+                     XEN_GUEST_HANDLE_PARAM(void) u_domctl);
- #endif /* __MEM_EVENT_H__ */
-diff --git a/xen/include/asm-x86/mm.h b/xen/include/asm-x86/mm.h
-index 4cba276..6373b3b 100644
---- a/xen/include/asm-x86/mm.h
-+++ b/xen/include/asm-x86/mm.h
-@@ -604,10 +604,10 @@ void *do_page_walk(struct vcpu *v, unsigned long addr);
- int __sync_local_execstate(void);
- /* Arch-specific portion of memory_op hypercall. */
--long arch_memory_op(int op, XEN_GUEST_HANDLE(void) arg);
--long subarch_memory_op(int op, XEN_GUEST_HANDLE(void) arg);
--int compat_arch_memory_op(int op, XEN_GUEST_HANDLE(void));
--int compat_subarch_memory_op(int op, XEN_GUEST_HANDLE(void));
-+long arch_memory_op(int op, XEN_GUEST_HANDLE_PARAM(void) arg);
-+long subarch_memory_op(int op, XEN_GUEST_HANDLE_PARAM(void) arg);
-+int compat_arch_memory_op(int op, XEN_GUEST_HANDLE_PARAM(void));
-+int compat_subarch_memory_op(int op, XEN_GUEST_HANDLE_PARAM(void));
- int steal_page(
-     struct domain *d, struct page_info *page, unsigned int memflags);
-diff --git a/xen/include/asm-x86/paging.h b/xen/include/asm-x86/paging.h
-index c432a97..1cd0e3f 100644
---- a/xen/include/asm-x86/paging.h
-+++ b/xen/include/asm-x86/paging.h
-@@ -215,7 +215,7 @@ int paging_domain_init(struct domain *d, unsigned int domcr_flags);
-  * and disable ephemeral shadow modes (test mode and log-dirty mode) and
-  * manipulate the log-dirty bitmap. */
- int paging_domctl(struct domain *d, xen_domctl_shadow_op_t *sc,
--                  XEN_GUEST_HANDLE(void) u_domctl);
-+                  XEN_GUEST_HANDLE_PARAM(void) u_domctl);
- /* Call when destroying a domain */
- void paging_teardown(struct domain *d);
-diff --git a/xen/include/asm-x86/processor.h b/xen/include/asm-x86/processor.h
-index 7164a50..efdbddd 100644
---- a/xen/include/asm-x86/processor.h
-+++ b/xen/include/asm-x86/processor.h
-@@ -598,7 +598,7 @@ int rdmsr_hypervisor_regs(uint32_t idx, uint64_t *val);
- int wrmsr_hypervisor_regs(uint32_t idx, uint64_t val);
- void microcode_set_module(unsigned int);
--int microcode_update(XEN_GUEST_HANDLE(const_void), unsigned long len);
-+int microcode_update(XEN_GUEST_HANDLE_PARAM(const_void), unsigned long len);
- int microcode_resume_cpu(int cpu);
- unsigned long *get_x86_gpr(struct cpu_user_regs *regs, unsigned int modrm_reg);
-diff --git a/xen/include/asm-x86/shadow.h b/xen/include/asm-x86/shadow.h
-index 88a8cd2..2eb6efc 100644
---- a/xen/include/asm-x86/shadow.h
-+++ b/xen/include/asm-x86/shadow.h
-@@ -73,7 +73,7 @@ int shadow_track_dirty_vram(struct domain *d,
-  * manipulate the log-dirty bitmap. */
- int shadow_domctl(struct domain *d, 
-                   xen_domctl_shadow_op_t *sc,
--                  XEN_GUEST_HANDLE(void) u_domctl);
-+                  XEN_GUEST_HANDLE_PARAM(void) u_domctl);
- /* Call when destroying a domain */
- void shadow_teardown(struct domain *d);
-diff --git a/xen/include/asm-x86/xenoprof.h b/xen/include/asm-x86/xenoprof.h
-index c03f8c8..3f5ea15 100644
---- a/xen/include/asm-x86/xenoprof.h
-+++ b/xen/include/asm-x86/xenoprof.h
-@@ -40,9 +40,9 @@ int xenoprof_arch_init(int *num_events, char *cpu_type);
- #define xenoprof_arch_disable_virq()            nmi_disable_virq()
- #define xenoprof_arch_release_counters()        nmi_release_counters()
--int xenoprof_arch_counter(XEN_GUEST_HANDLE(void) arg);
--int compat_oprof_arch_counter(XEN_GUEST_HANDLE(void) arg);
--int xenoprof_arch_ibs_counter(XEN_GUEST_HANDLE(void) arg);
-+int xenoprof_arch_counter(XEN_GUEST_HANDLE_PARAM(void) arg);
-+int compat_oprof_arch_counter(XEN_GUEST_HANDLE_PARAM(void) arg);
-+int xenoprof_arch_ibs_counter(XEN_GUEST_HANDLE_PARAM(void) arg);
- struct vcpu;
- struct cpu_user_regs;
-diff --git a/xen/include/xen/acpi.h b/xen/include/xen/acpi.h
-index d7e2f94..8f3cdca 100644
---- a/xen/include/xen/acpi.h
-+++ b/xen/include/xen/acpi.h
-@@ -145,8 +145,8 @@ static inline unsigned int acpi_get_cstate_limit(void) { return 0; }
- static inline void acpi_set_cstate_limit(unsigned int new_limit) { return; }
- #endif
--#ifdef XEN_GUEST_HANDLE
--int acpi_set_pdc_bits(u32 acpi_id, XEN_GUEST_HANDLE(uint32));
-+#ifdef XEN_GUEST_HANDLE_PARAM
-+int acpi_set_pdc_bits(u32 acpi_id, XEN_GUEST_HANDLE_PARAM(uint32));
- #endif
- int arch_acpi_set_pdc_bits(u32 acpi_id, u32 *, u32 mask);
-diff --git a/xen/include/xen/hypercall.h b/xen/include/xen/hypercall.h
-index 73b1598..e335037 100644
---- a/xen/include/xen/hypercall.h
-+++ b/xen/include/xen/hypercall.h
-@@ -29,29 +29,29 @@ do_sched_op_compat(
- extern long
- do_sched_op(
-     int cmd,
--    XEN_GUEST_HANDLE(void) arg);
-+    XEN_GUEST_HANDLE_PARAM(void) arg);
- extern long
- do_domctl(
--    XEN_GUEST_HANDLE(xen_domctl_t) u_domctl);
-+    XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl);
- extern long
- arch_do_domctl(
-     struct xen_domctl *domctl,
--    XEN_GUEST_HANDLE(xen_domctl_t) u_domctl);
-+    XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl);
- extern long
- do_sysctl(
--    XEN_GUEST_HANDLE(xen_sysctl_t) u_sysctl);
-+    XEN_GUEST_HANDLE_PARAM(xen_sysctl_t) u_sysctl);
- extern long
- arch_do_sysctl(
-     struct xen_sysctl *sysctl,
--    XEN_GUEST_HANDLE(xen_sysctl_t) u_sysctl);
-+    XEN_GUEST_HANDLE_PARAM(xen_sysctl_t) u_sysctl);
- extern long
- do_platform_op(
--    XEN_GUEST_HANDLE(xen_platform_op_t) u_xenpf_op);
-+    XEN_GUEST_HANDLE_PARAM(xen_platform_op_t) u_xenpf_op);
- /*
-  * To allow safe resume of do_memory_op() after preemption, we need to know
-@@ -64,11 +64,11 @@ do_platform_op(
- extern long
- do_memory_op(
-     unsigned long cmd,
--    XEN_GUEST_HANDLE(void) arg);
-+    XEN_GUEST_HANDLE_PARAM(void) arg);
- extern long
- do_multicall(
--    XEN_GUEST_HANDLE(multicall_entry_t) call_list,
-+    XEN_GUEST_HANDLE_PARAM(multicall_entry_t) call_list,
-     unsigned int nr_calls);
- extern long
-@@ -77,23 +77,23 @@ do_set_timer_op(
- extern long
- do_event_channel_op(
--    int cmd, XEN_GUEST_HANDLE(void) arg);
-+    int cmd, XEN_GUEST_HANDLE_PARAM(void) arg);
- extern long
- do_xen_version(
-     int cmd,
--    XEN_GUEST_HANDLE(void) arg);
-+    XEN_GUEST_HANDLE_PARAM(void) arg);
- extern long
- do_console_io(
-     int cmd,
-     int count,
--    XEN_GUEST_HANDLE(char) buffer);
-+    XEN_GUEST_HANDLE_PARAM(char) buffer);
- extern long
- do_grant_table_op(
-     unsigned int cmd,
--    XEN_GUEST_HANDLE(void) uop,
-+    XEN_GUEST_HANDLE_PARAM(void) uop,
-     unsigned int count);
- extern long
-@@ -105,72 +105,72 @@ extern long
- do_vcpu_op(
-     int cmd,
-     int vcpuid,
--    XEN_GUEST_HANDLE(void) arg);
-+    XEN_GUEST_HANDLE_PARAM(void) arg);
- struct vcpu;
- extern long
- arch_do_vcpu_op(int cmd,
-     struct vcpu *v,
--    XEN_GUEST_HANDLE(void) arg);
-+    XEN_GUEST_HANDLE_PARAM(void) arg);
- extern long
- do_nmi_op(
-     unsigned int cmd,
--    XEN_GUEST_HANDLE(void) arg);
-+    XEN_GUEST_HANDLE_PARAM(void) arg);
- extern long
- do_hvm_op(
-     unsigned long op,
--    XEN_GUEST_HANDLE(void) arg);
-+    XEN_GUEST_HANDLE_PARAM(void) arg);
- extern long
- do_kexec_op(
-     unsigned long op,
-     int arg1,
--    XEN_GUEST_HANDLE(void) arg);
-+    XEN_GUEST_HANDLE_PARAM(void) arg);
- extern long
- do_xsm_op(
--    XEN_GUEST_HANDLE(xsm_op_t) u_xsm_op);
-+    XEN_GUEST_HANDLE_PARAM(xsm_op_t) u_xsm_op);
- extern long
- do_tmem_op(
--    XEN_GUEST_HANDLE(tmem_op_t) uops);
-+    XEN_GUEST_HANDLE_PARAM(tmem_op_t) uops);
- extern int
--do_xenoprof_op(int op, XEN_GUEST_HANDLE(void) arg);
-+do_xenoprof_op(int op, XEN_GUEST_HANDLE_PARAM(void) arg);
- #ifdef CONFIG_COMPAT
- extern int
- compat_memory_op(
-     unsigned int cmd,
--    XEN_GUEST_HANDLE(void) arg);
-+    XEN_GUEST_HANDLE_PARAM(void) arg);
- extern int
- compat_grant_table_op(
-     unsigned int cmd,
--    XEN_GUEST_HANDLE(void) uop,
-+    XEN_GUEST_HANDLE_PARAM(void) uop,
-     unsigned int count);
- extern int
- compat_vcpu_op(
-     int cmd,
-     int vcpuid,
--    XEN_GUEST_HANDLE(void) arg);
-+    XEN_GUEST_HANDLE_PARAM(void) arg);
- extern int
--compat_xenoprof_op(int op, XEN_GUEST_HANDLE(void) arg);
-+compat_xenoprof_op(int op, XEN_GUEST_HANDLE_PARAM(void) arg);
- extern int
- compat_xen_version(
-     int cmd,
--    XEN_GUEST_HANDLE(void) arg);
-+    XEN_GUEST_HANDLE_PARAM(void) arg);
- extern int
- compat_sched_op(
-     int cmd,
--    XEN_GUEST_HANDLE(void) arg);
-+    XEN_GUEST_HANDLE_PARAM(void) arg);
- extern int
- compat_set_timer_op(
-diff --git a/xen/include/xen/iommu.h b/xen/include/xen/iommu.h
-index 6f7fbf7..bd19e23 100644
---- a/xen/include/xen/iommu.h
-+++ b/xen/include/xen/iommu.h
-@@ -155,7 +155,7 @@ void iommu_crash_shutdown(void);
- void iommu_set_dom0_mapping(struct domain *d);
- void iommu_share_p2m_table(struct domain *d);
--int iommu_do_domctl(struct xen_domctl *, XEN_GUEST_HANDLE(xen_domctl_t));
-+int iommu_do_domctl(struct xen_domctl *, XEN_GUEST_HANDLE_PARAM(xen_domctl_t));
- void iommu_iotlb_flush(struct domain *d, unsigned long gfn, unsigned int page_count);
- void iommu_iotlb_flush_all(struct domain *d);
-diff --git a/xen/include/xen/tmem_xen.h b/xen/include/xen/tmem_xen.h
-index 4a35760..2e7199a 100644
---- a/xen/include/xen/tmem_xen.h
-+++ b/xen/include/xen/tmem_xen.h
-@@ -448,7 +448,7 @@ static inline void tmh_tze_copy_from_pfp(void *tva, pfp_t *pfp, pagesize_t len)
- typedef XEN_GUEST_HANDLE(void) cli_mfn_t;
- typedef XEN_GUEST_HANDLE(char) cli_va_t;
- */
--typedef XEN_GUEST_HANDLE(tmem_op_t) tmem_cli_op_t;
-+typedef XEN_GUEST_HANDLE_PARAM(tmem_op_t) tmem_cli_op_t;
- static inline int tmh_get_tmemop_from_client(tmem_op_t *op, tmem_cli_op_t uops)
- {
-diff --git a/xen/include/xsm/xsm.h b/xen/include/xsm/xsm.h
-index bef79df..3e4a47f 100644
---- a/xen/include/xsm/xsm.h
-+++ b/xen/include/xsm/xsm.h
-@@ -139,7 +139,7 @@ struct xsm_operations {
-     int (*cpupool_op)(void);
-     int (*sched_op)(void);
--    long (*__do_xsm_op) (XEN_GUEST_HANDLE(xsm_op_t) op);
-+    long (*__do_xsm_op) (XEN_GUEST_HANDLE_PARAM(xsm_op_t) op);
- #ifdef CONFIG_X86
-     int (*shadow_control) (struct domain *d, uint32_t op);
-@@ -585,7 +585,7 @@ static inline int xsm_sched_op(void)
-     return xsm_call(sched_op());
- }
--static inline long __do_xsm_op (XEN_GUEST_HANDLE(xsm_op_t) op)
-+static inline long __do_xsm_op (XEN_GUEST_HANDLE_PARAM(xsm_op_t) op)
- {
- #ifdef XSM_ENABLE
-     return xsm_ops->__do_xsm_op(op);
-diff --git a/xen/xsm/dummy.c b/xen/xsm/dummy.c
-index 7027ee7..5ef6529 100644
---- a/xen/xsm/dummy.c
-+++ b/xen/xsm/dummy.c
-@@ -365,7 +365,7 @@ static int dummy_sched_op (void)
-     return 0;
- }
--static long dummy___do_xsm_op(XEN_GUEST_HANDLE(xsm_op_t) op)
-+static long dummy___do_xsm_op(XEN_GUEST_HANDLE_PARAM(xsm_op_t) op)
- {
-     return -ENOSYS;
- }
-diff --git a/xen/xsm/flask/flask_op.c b/xen/xsm/flask/flask_op.c
-index bd4db37..23e7d34 100644
---- a/xen/xsm/flask/flask_op.c
-+++ b/xen/xsm/flask/flask_op.c
-@@ -71,7 +71,7 @@ static int domain_has_security(struct domain *d, u32 perms)
-                         perms, NULL);
- }
--static int flask_copyin_string(XEN_GUEST_HANDLE(char) u_buf, char **buf, uint32_t size)
-+static int flask_copyin_string(XEN_GUEST_HANDLE_PARAM(char) u_buf, char **buf, uint32_t size)
- {
-     char *tmp = xmalloc_bytes(size + 1);
-     if ( !tmp )
-@@ -573,7 +573,7 @@ static int flask_get_peer_sid(struct xen_flask_peersid *arg)
-     return rv;
- }
--long do_flask_op(XEN_GUEST_HANDLE(xsm_op_t) u_flask_op)
-+long do_flask_op(XEN_GUEST_HANDLE_PARAM(xsm_op_t) u_flask_op)
- {
-     xen_flask_op_t op;
-     int rv;
-diff --git a/xen/xsm/flask/hooks.c b/xen/xsm/flask/hooks.c
-index 23b84f3..0fc299c 100644
---- a/xen/xsm/flask/hooks.c
-+++ b/xen/xsm/flask/hooks.c
-@@ -1553,7 +1553,7 @@ static int flask_vcpuextstate (struct domain *d, uint32_t cmd)
- }
- #endif
--long do_flask_op(XEN_GUEST_HANDLE(xsm_op_t) u_flask_op);
-+long do_flask_op(XEN_GUEST_HANDLE_PARAM(xsm_op_t) u_flask_op);
- static struct xsm_operations flask_ops = {
-     .security_domaininfo = flask_security_domaininfo,
-diff --git a/xen/xsm/xsm_core.c b/xen/xsm/xsm_core.c
-index 96c8669..46287cb 100644
---- a/xen/xsm/xsm_core.c
-+++ b/xen/xsm/xsm_core.c
-@@ -111,7 +111,7 @@ int unregister_xsm(struct xsm_operations *ops)
- #endif
--long do_xsm_op (XEN_GUEST_HANDLE(xsm_op_t) op)
-+long do_xsm_op (XEN_GUEST_HANDLE_PARAM(xsm_op_t) op)
- {
-     return __do_xsm_op(op);
- }
--- 
-1.7.2.5
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1345128612-10323-6-git-send-email-stefano.stabellini@eu.citrix.com> b/test/corpus/<1345128612-10323-6-git-send-email-stefano.stabellini@eu.citrix.com>
deleted file mode 100644 (file)
index 6e56484..0000000
+++ /dev/null
@@ -1,255 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Aug 16 15:54:13 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 16 Aug 2012 15:54:13 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T21Sa-0007a3-8O
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 16 Aug 2012 15:54:13 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T21P5-00061i-7y; Thu, 16 Aug 2012 14:50:31 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1T21P2-00060n-UF
-       for xen-devel@lists.xensource.com; Thu, 16 Aug 2012 14:50:29 +0000
-Received: from [85.158.143.35:13502] by server-1.bemta-4.messagelabs.com id
-       58/BA-07754-4B80D205; Thu, 16 Aug 2012 14:50:28 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-10.tower-21.messagelabs.com!1345128624!10863913!1
-X-Originating-IP: [66.165.176.63]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyNzE3OTY=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 7314 invoked from network); 16 Aug 2012 14:50:26 -0000
-Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
-       by server-10.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
-       16 Aug 2012 14:50:26 -0000
-X-IronPort-AV: E=Sophos;i="4.77,778,1336363200"; d="scan'208";a="205378344"
-Received: from ftlpmailmx01.citrite.net ([10.13.107.65])
-       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       16 Aug 2012 10:50:21 -0400
-Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
-       (10.13.107.65) with Microsoft SMTP Server id 8.3.213.0;
-       Thu, 16 Aug 2012 10:50:21 -0400
-Received: from kaball.uk.xensource.com ([10.80.2.59])  by
-       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
-       <stefano.stabellini@eu.citrix.com>)     id 1T21Op-0006Vh-Uw;
-       Thu, 16 Aug 2012 15:50:15 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-To: <xen-devel@lists.xensource.com>
-Date: Thu, 16 Aug 2012 15:50:12 +0100
-Message-ID: <1345128612-10323-6-git-send-email-stefano.stabellini@eu.citrix.com>
-X-Mailer: git-send-email 1.7.9.5
-In-Reply-To: <alpine.DEB.2.02.1208161523420.4850@kaball.uk.xensource.com>
-References: <alpine.DEB.2.02.1208161523420.4850@kaball.uk.xensource.com>
-MIME-Version: 1.0
-Cc: tim@xen.org, Ian.Campbell@citrix.com,
-       Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: [Xen-devel] [PATCH v3 6/6] xen: more substitutions
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-More substitutions in this patch, not as obvious as the ones in the
-previous patch.
-
-Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
----
- xen/arch/x86/mm.c                        |   12 +++++++++---
- xen/arch/x86/oprofile/backtrace.c        |    4 +++-
- xen/arch/x86/platform_hypercall.c        |    8 ++++++--
- xen/arch/x86/x86_64/cpu_idle.c           |    4 +++-
- xen/arch/x86/x86_64/cpufreq.c            |    4 +++-
- xen/arch/x86/x86_64/platform_hypercall.c |    1 +
- xen/common/compat/multicall.c            |    1 +
- 7 files changed, 26 insertions(+), 8 deletions(-)
-
-diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c
-index 4d72700..088db11 100644
---- a/xen/arch/x86/mm.c
-+++ b/xen/arch/x86/mm.c
-@@ -3198,7 +3198,9 @@ int do_mmuext_op(
-         {
-             cpumask_t pmask;
--            if ( unlikely(vcpumask_to_pcpumask(d, op.arg2.vcpumask, &pmask)) )
-+            if ( unlikely(vcpumask_to_pcpumask(d,
-+                            guest_handle_to_param(op.arg2.vcpumask, const_void),
-+                            &pmask)) )
-             {
-                 okay = 0;
-                 break;
-@@ -4484,6 +4486,7 @@ static int handle_iomem_range(unsigned long s, unsigned long e, void *p)
-     if ( s > ctxt->s )
-     {
-         e820entry_t ent;
-+        XEN_GUEST_HANDLE_PARAM(e820entry_t) buffer_t;
-         XEN_GUEST_HANDLE(e820entry_t) buffer;
-         if ( ctxt->n + 1 >= ctxt->map.nr_entries )
-@@ -4491,7 +4494,8 @@ static int handle_iomem_range(unsigned long s, unsigned long e, void *p)
-         ent.addr = (uint64_t)ctxt->s << PAGE_SHIFT;
-         ent.size = (uint64_t)(s - ctxt->s) << PAGE_SHIFT;
-         ent.type = E820_RESERVED;
--        buffer = guest_handle_cast(ctxt->map.buffer, e820entry_t);
-+        buffer_t = guest_handle_cast(ctxt->map.buffer, e820entry_t);
-+        buffer = guest_handle_from_param(buffer_t, e820entry_t);
-         if ( __copy_to_guest_offset(buffer, ctxt->n, &ent, 1) )
-             return -EFAULT;
-         ctxt->n++;
-@@ -4790,6 +4794,7 @@ long arch_memory_op(int op, XEN_GUEST_HANDLE_PARAM(void) arg)
-     {
-         struct memory_map_context ctxt;
-         XEN_GUEST_HANDLE(e820entry_t) buffer;
-+        XEN_GUEST_HANDLE_PARAM(e820entry_t) buffer_t;
-         unsigned int i;
-         if ( !IS_PRIV(current->domain) )
-@@ -4804,7 +4809,8 @@ long arch_memory_op(int op, XEN_GUEST_HANDLE_PARAM(void) arg)
-         if ( ctxt.map.nr_entries < e820.nr_map + 1 )
-             return -EINVAL;
--        buffer = guest_handle_cast(ctxt.map.buffer, e820entry_t);
-+        buffer_t = guest_handle_cast(ctxt.map.buffer, e820entry_t);
-+        buffer = guest_handle_from_param(buffer_t, e820entry_t);
-         if ( !guest_handle_okay(buffer, ctxt.map.nr_entries) )
-             return -EFAULT;
-diff --git a/xen/arch/x86/oprofile/backtrace.c b/xen/arch/x86/oprofile/backtrace.c
-index 33fd142..699cd28 100644
---- a/xen/arch/x86/oprofile/backtrace.c
-+++ b/xen/arch/x86/oprofile/backtrace.c
-@@ -80,8 +80,10 @@ dump_guest_backtrace(struct vcpu *vcpu, const struct frame_head *head,
-     else
- #endif
-     {
--        XEN_GUEST_HANDLE(const_frame_head_t) guest_head =
-+        XEN_GUEST_HANDLE(const_frame_head_t) guest_head;
-+        XEN_GUEST_HANDLE_PARAM(const_frame_head_t) guest_head_t =
-             const_guest_handle_from_ptr(head, frame_head_t);
-+        guest_head = guest_handle_from_param(guest_head_t, const_frame_head_t);
-         /* Also check accessibility of one struct frame_head beyond */
-         if (!guest_handle_okay(guest_head, 2))
-diff --git a/xen/arch/x86/platform_hypercall.c b/xen/arch/x86/platform_hypercall.c
-index a32e0a2..2994b12 100644
---- a/xen/arch/x86/platform_hypercall.c
-+++ b/xen/arch/x86/platform_hypercall.c
-@@ -185,7 +185,9 @@ ret_t do_platform_op(XEN_GUEST_HANDLE_PARAM(xen_platform_op_t) u_xenpf_op)
-             }
-         }
--        ret = microcode_update(data, op->u.microcode.length);
-+        ret = microcode_update(
-+                guest_handle_to_param(data, const_void),
-+                op->u.microcode.length);
-         spin_unlock(&vcpu_alloc_lock);
-     }
-     break;
-@@ -448,7 +450,9 @@ ret_t do_platform_op(XEN_GUEST_HANDLE_PARAM(xen_platform_op_t) u_xenpf_op)
-             XEN_GUEST_HANDLE(uint32) pdc;
-             guest_from_compat_handle(pdc, op->u.set_pminfo.u.pdc);
--            ret = acpi_set_pdc_bits(op->u.set_pminfo.id, pdc);
-+            ret = acpi_set_pdc_bits(
-+                    op->u.set_pminfo.id,
-+                    guest_handle_to_param(pdc, uint32));
-         }
-         break;
-diff --git a/xen/arch/x86/x86_64/cpu_idle.c b/xen/arch/x86/x86_64/cpu_idle.c
-index 3e7422f..1cdaf96 100644
---- a/xen/arch/x86/x86_64/cpu_idle.c
-+++ b/xen/arch/x86/x86_64/cpu_idle.c
-@@ -57,10 +57,12 @@ static int copy_from_compat_state(xen_processor_cx_t *xen_state,
- {
- #define XLAT_processor_cx_HNDL_dp(_d_, _s_) do { \
-     XEN_GUEST_HANDLE(compat_processor_csd_t) dps; \
-+    XEN_GUEST_HANDLE_PARAM(xen_processor_csd_t) dps_t; \
-     if ( unlikely(!compat_handle_okay((_s_)->dp, (_s_)->dpcnt)) ) \
-             return -EFAULT; \
-     guest_from_compat_handle(dps, (_s_)->dp); \
--    (_d_)->dp = guest_handle_cast(dps, xen_processor_csd_t); \
-+    dps_t = guest_handle_cast(dps, xen_processor_csd_t); \
-+    (_d_)->dp = guest_handle_from_param(dps_t, xen_processor_csd_t); \
- } while (0)
-     XLAT_processor_cx(xen_state, state);
- #undef XLAT_processor_cx_HNDL_dp
-diff --git a/xen/arch/x86/x86_64/cpufreq.c b/xen/arch/x86/x86_64/cpufreq.c
-index ce9864e..1956777 100644
---- a/xen/arch/x86/x86_64/cpufreq.c
-+++ b/xen/arch/x86/x86_64/cpufreq.c
-@@ -45,10 +45,12 @@ compat_set_px_pminfo(uint32_t cpu, struct compat_processor_performance *perf)
- #define XLAT_processor_performance_HNDL_states(_d_, _s_) do { \
-     XEN_GUEST_HANDLE(compat_processor_px_t) states; \
-+    XEN_GUEST_HANDLE_PARAM(xen_processor_px_t) states_t; \
-     if ( unlikely(!compat_handle_okay((_s_)->states, (_s_)->state_count)) ) \
-         return -EFAULT; \
-     guest_from_compat_handle(states, (_s_)->states); \
--    (_d_)->states = guest_handle_cast(states, xen_processor_px_t); \
-+    states_t = guest_handle_cast(states, xen_processor_px_t); \
-+    (_d_)->states = guest_handle_from_param(states_t, xen_processor_px_t); \
- } while (0)
-     XLAT_processor_performance(xen_perf, perf);
-diff --git a/xen/arch/x86/x86_64/platform_hypercall.c b/xen/arch/x86/x86_64/platform_hypercall.c
-index 188aa37..f577761 100644
---- a/xen/arch/x86/x86_64/platform_hypercall.c
-+++ b/xen/arch/x86/x86_64/platform_hypercall.c
-@@ -38,6 +38,7 @@ CHECK_pf_pcpu_version;
- #define COMPAT
- #define _XEN_GUEST_HANDLE(t) XEN_GUEST_HANDLE(t)
-+#define _XEN_GUEST_HANDLE_PARAM(t) XEN_GUEST_HANDLE(t)
- typedef int ret_t;
- #include "../platform_hypercall.c"
-diff --git a/xen/common/compat/multicall.c b/xen/common/compat/multicall.c
-index 0eb1212..72db213 100644
---- a/xen/common/compat/multicall.c
-+++ b/xen/common/compat/multicall.c
-@@ -24,6 +24,7 @@ DEFINE_XEN_GUEST_HANDLE(multicall_entry_compat_t);
- #define call                 compat_call
- #define do_multicall(l, n)   compat_multicall(_##l, n)
- #define _XEN_GUEST_HANDLE(t) XEN_GUEST_HANDLE(t)
-+#define _XEN_GUEST_HANDLE_PARAM(t) XEN_GUEST_HANDLE(t)
- #include "../multicall.c"
--- 
-1.7.2.5
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1345133009-21941-1-git-send-email-konrad.wilk@oracle.com> b/test/corpus/<1345133009-21941-1-git-send-email-konrad.wilk@oracle.com>
deleted file mode 100644 (file)
index d8ca0b5..0000000
+++ /dev/null
@@ -1,254 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Aug 16 17:16:32 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 16 Aug 2012 17:16:32 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T22kE-0008Em-Ta
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 16 Aug 2012 17:16:32 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T22hM-0006CB-O9; Thu, 16 Aug 2012 16:13:28 +0000
-Received: from mail27.messagelabs.com ([193.109.254.147])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <konrad.wilk@oracle.com>) id 1T22hK-00067K-KX
-       for xen-devel@lists.xensource.com; Thu, 16 Aug 2012 16:13:26 +0000
-X-Env-Sender: konrad.wilk@oracle.com
-X-Msg-Ref: server-13.tower-27.messagelabs.com!1345133599!9587518!1
-X-Originating-IP: [148.87.113.117]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogMTQ4Ljg3LjExMy4xMTcgPT4gNjk0MzAx\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 30710 invoked from network); 16 Aug 2012 16:13:20 -0000
-Received: from rcsinet15.oracle.com (HELO rcsinet15.oracle.com)
-       (148.87.113.117)
-       by server-13.tower-27.messagelabs.com with DHE-RSA-AES256-SHA encrypted
-       SMTP; 16 Aug 2012 16:13:20 -0000
-Received: from acsinet21.oracle.com (acsinet21.oracle.com [141.146.126.237])
-       by rcsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
-       ESMTP id q7GGDHGt007925
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
-       Thu, 16 Aug 2012 16:13:18 GMT
-Received: from acsmt356.oracle.com (acsmt356.oracle.com [141.146.40.156])
-       by acsinet21.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
-       q7GGDHlf014616
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
-       Thu, 16 Aug 2012 16:13:17 GMT
-Received: from abhmt105.oracle.com (abhmt105.oracle.com [141.146.116.57])
-       by acsmt356.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
-       q7GGDHd7027781; Thu, 16 Aug 2012 11:13:17 -0500
-Received: from phenom.dumpdata.com (/209.6.85.33)
-       by default (Oracle Beehive Gateway v4.0)
-       with ESMTP ; Thu, 16 Aug 2012 09:13:17 -0700
-Received: by phenom.dumpdata.com (Postfix, from userid 1000)
-       id CD1E8402E8; Thu, 16 Aug 2012 12:03:30 -0400 (EDT)
-From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-To: linux-kernel@vger.kernel.org, xen-devel@lists.xensource.com
-Date: Thu, 16 Aug 2012 12:03:18 -0400
-Message-Id: <1345133009-21941-1-git-send-email-konrad.wilk@oracle.com>
-X-Mailer: git-send-email 1.7.7.6
-X-Source-IP: acsinet21.oracle.com [141.146.126.237]
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-MIME-Version: 1.0
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
-Subject: [Xen-devel] [PATCH] Boot PV guests with more than 128GB (v3) for
-       v3.7.
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-Since (v2): http://lists.xen.org/archives/html/xen-devel/2012-07/msg01864.html
- - fixed a bug if guest booted with non-PMD aligned size (say, 899MB).
- - fixed smack warnings
- - moved a memset(xen_start_info->mfn_list, 0xff,.. ) from one patch to another.
-Since v1: [http://lists.xen.org/archives/html/xen-devel/2012-07/msg01561.html]
- - added more comments, and #ifdefs
- - squashed The L4 and L4, L3, and L2 recycle patches together
- - Added Acked-by's
-
-These patches are quite baked by now. If you already looked at this before
-I would just skip over it and just look at the last patch.
-
-The explanation of these patches is exactly what v1 had:
-
-The details of this problem are nicely explained in:
-
- [PATCH 4/6] xen/p2m: Add logic to revector a P2M tree to use __va
- [PATCH 5/6] xen/mmu: Copy and revector the P2M tree.
- [PATCH 6/6] xen/mmu: Remove from __ka space PMD entries for
-
-and the supporting patches are just nice optimizations. Pasting in
-what those patches mentioned:
-
-
-During bootup Xen supplies us with a P2M array. It sticks
-it right after the ramdisk, as can be seen with a 128GB PV guest:
-
-(certain parts removed for clarity):
-xc_dom_build_image: called
-xc_dom_alloc_segment:   kernel       : 0xffffffff81000000 -> 0xffffffff81e43000 
- (pfn 0x1000 + 0xe43 pages)
-xc_dom_pfn_to_ptr: domU mapping: pfn 0x1000+0xe43 at 0x7f097d8bf000
-xc_dom_alloc_segment:   ramdisk      : 0xffffffff81e43000 -> 0xffffffff925c7000 
- (pfn 0x1e43 + 0x10784 pages)
-xc_dom_pfn_to_ptr: domU mapping: pfn 0x1e43+0x10784 at 0x7f0952dd2000
-xc_dom_alloc_segment:   phys2mach    : 0xffffffff925c7000 -> 0xffffffffa25c7000 
- (pfn 0x125c7 + 0x10000 pages)
-xc_dom_pfn_to_ptr: domU mapping: pfn 0x125c7+0x10000 at 0x7f0942dd2000
-xc_dom_alloc_page   :   start info   : 0xffffffffa25c7000 (pfn 0x225c7)
-xc_dom_alloc_page   :   xenstore     : 0xffffffffa25c8000 (pfn 0x225c8)
-xc_dom_alloc_page   :   console      : 0xffffffffa25c9000 (pfn 0x225c9)
-nr_page_tables: 0x0000ffffffffffff/48: 0xffff000000000000 -> 
-0xffffffffffffffff, 1 table(s)
-nr_page_tables: 0x0000007fffffffff/39: 0xffffff8000000000 -> 
-0xffffffffffffffff, 1 table(s)
-nr_page_tables: 0x000000003fffffff/30: 0xffffffff80000000 -> 
-0xffffffffbfffffff, 1 table(s)
-nr_page_tables: 0x00000000001fffff/21: 0xffffffff80000000 -> 
-0xffffffffa27fffff, 276 table(s)
-xc_dom_alloc_segment:   page tables  : 0xffffffffa25ca000 -> 0xffffffffa26e1000 
- (pfn 0x225ca + 0x117 pages)
-xc_dom_pfn_to_ptr: domU mapping: pfn 0x225ca+0x117 at 0x7f097d7a8000
-xc_dom_alloc_page   :   boot stack   : 0xffffffffa26e1000 (pfn 0x226e1)
-xc_dom_build_image  : virt_alloc_end : 0xffffffffa26e2000
-xc_dom_build_image  : virt_pgtab_end : 0xffffffffa2800000
-
-So the physical memory and virtual (using __START_KERNEL_map addresses)
-layout looks as so:
-
-  phys                             __ka
-/------------\                   /-------------------\
-| 0          | empty             | 0xffffffff80000000|
-| ..         |                   | ..                |
-| 16MB       | <= kernel starts  | 0xffffffff81000000|
-| ..         |                   |                   |
-| 30MB       | <= kernel ends => | 0xffffffff81e43000|
-| ..         |  & ramdisk starts | ..                |
-| 293MB      | <= ramdisk ends=> | 0xffffffff925c7000|
-| ..         |  & P2M starts     | ..                |
-| ..         |                   | ..                |
-| 549MB      | <= P2M ends    => | 0xffffffffa25c7000|
-| ..         | start_info        | 0xffffffffa25c7000|
-| ..         | xenstore          | 0xffffffffa25c8000|
-| ..         | cosole            | 0xffffffffa25c9000|
-| 549MB      | <= page tables => | 0xffffffffa25ca000|
-| ..         |                   |                   |
-| 550MB      | <= PGT end     => | 0xffffffffa26e1000|
-| ..         | boot stack        |                   |
-\------------/                   \-------------------/
-
-As can be seen, the ramdisk, P2M and pagetables are taking
-a bit of __ka addresses space. Which is a problem since the
-MODULES_VADDR starts at 0xffffffffa0000000 - and P2M sits
-right in there! This results during bootup with the inability to
-load modules, with this error:
-
-------------[ cut here ]------------
-WARNING: at /home/konrad/ssd/linux/mm/vmalloc.c:106 
-vmap_page_range_noflush+0x2d9/0x370()
-Call Trace:
- [<ffffffff810719fa>] warn_slowpath_common+0x7a/0xb0
- [<ffffffff81030279>] ? __raw_callee_save_xen_pmd_val+0x11/0x1e
- [<ffffffff81071a45>] warn_slowpath_null+0x15/0x20
- [<ffffffff81130b89>] vmap_page_range_noflush+0x2d9/0x370
- [<ffffffff81130c4d>] map_vm_area+0x2d/0x50
- [<ffffffff811326d0>] __vmalloc_node_range+0x160/0x250
- [<ffffffff810c5369>] ? module_alloc_update_bounds+0x19/0x80
- [<ffffffff810c6186>] ? load_module+0x66/0x19c0
- [<ffffffff8105cadc>] module_alloc+0x5c/0x60
- [<ffffffff810c5369>] ? module_alloc_update_bounds+0x19/0x80
- [<ffffffff810c5369>] module_alloc_update_bounds+0x19/0x80
- [<ffffffff810c70c3>] load_module+0xfa3/0x19c0
- [<ffffffff812491f6>] ? security_file_permission+0x86/0x90
- [<ffffffff810c7b3a>] sys_init_module+0x5a/0x220
- [<ffffffff815ce339>] system_call_fastpath+0x16/0x1b
----[ end trace fd8f7704fdea0291 ]---
-vmalloc: allocation failure, allocated 16384 of 20480 bytes
-modprobe: page allocation failure: order:0, mode:0xd2
-
-Since the __va and __ka are 1:1 up to MODULES_VADDR and
-cleanup_highmap rids __ka of the ramdisk mapping, what
-we want to do is similar - get rid of the P2M in the __ka
-address space. There are two ways of fixing this:
-
- 1) All P2M lookups instead of using the __ka address would
-    use the __va address. This means we can safely erase from
-    __ka space the PMD pointers that point to the PFNs for
-    P2M array and be OK.
- 2). Allocate a new array, copy the existing P2M into it,
-    revector the P2M tree to use that, and return the old
-    P2M to the memory allocate. This has the advantage that
-    it sets the stage for using XEN_ELF_NOTE_INIT_P2M
-    feature. That feature allows us to set the exact virtual
-    address space we want for the P2M - and allows us to
-    boot as initial domain on large machines.
-
-So we pick option 2).
-
-This patch only lays the groundwork in the P2M code. The patch
-that modifies the MMU is called "xen/mmu: Copy and revector the P2M tree."
-
--- xen/mmu: Copy and revector the P2M tree:
-
-The 'xen_revector_p2m_tree()' function allocates a new P2M tree
-copies the contents of the old one in it, and returns the new one.
-
-At this stage, the __ka address space (which is what the old
-P2M tree was using) is partially disassembled. The cleanup_highmap
-has removed the PMD entries from 0-16MB and anything past _brk_end
-up to the max_pfn_mapped (which is the end of the ramdisk).
-
-We have revectored the P2M tree (and the one for save/restore as well)
-to use new shiny __va address to new MFNs. The xen_start_info
-has been taken care of already in 'xen_setup_kernel_pagetable()' and
-xen_start_info->shared_info in 'xen_setup_shared_info()', so
-we are free to roam and delete PMD entries - which is exactly what
-we are going to do. We rip out the __ka for the old P2M array.
-
--- xen/mmu:   Remove from __ka space PMD entries for
-
-At this stage, the __ka address space (which is what the old
-P2M tree was using) is partially disassembled. The cleanup_highmap
-has removed the PMD entries from 0-16MB and anything past _brk_end
-up to the max_pfn_mapped (which is the end of the ramdisk).
-
-The xen_remove_p2m_tree and code around has ripped out the __ka for
-the old P2M array.
-
-Here we continue on doing it to where the Xen page-tables were.
-It is safe to do it, as the page-tables are addressed using __va.
-For good measure we delete anything that is within MODULES_VADDR
-and up to the end of the PMD.
-
-At this point the __ka only contains PMD entries for the start
-of the kernel up to __brk.
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1345133009-21941-10-git-send-email-konrad.wilk@oracle.com> b/test/corpus/<1345133009-21941-10-git-send-email-konrad.wilk@oracle.com>
deleted file mode 100644 (file)
index 12629fe..0000000
+++ /dev/null
@@ -1,198 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Aug 16 17:16:46 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 16 Aug 2012 17:16:46 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T22kU-0008GE-Vq
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 16 Aug 2012 17:16:46 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T22hL-0006Am-4N; Thu, 16 Aug 2012 16:13:27 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <konrad.wilk@oracle.com>) id 1T22hH-00067M-N2
-       for xen-devel@lists.xensource.com; Thu, 16 Aug 2012 16:13:23 +0000
-Received: from [85.158.143.99:16134] by server-1.bemta-4.messagelabs.com id
-       49/6A-07754-32C1D205; Thu, 16 Aug 2012 16:13:23 +0000
-X-Env-Sender: konrad.wilk@oracle.com
-X-Msg-Ref: server-14.tower-216.messagelabs.com!1345133601!18920475!1
-X-Originating-IP: [141.146.126.227]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogMTQxLjE0Ni4xMjYuMjI3ID0+IDcwMTY5NA==\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 26957 invoked from network); 16 Aug 2012 16:13:22 -0000
-Received: from acsinet15.oracle.com (HELO acsinet15.oracle.com)
-       (141.146.126.227)
-       by server-14.tower-216.messagelabs.com with DHE-RSA-AES256-SHA
-       encrypted SMTP; 16 Aug 2012 16:13:22 -0000
-Received: from ucsinet21.oracle.com (ucsinet21.oracle.com [156.151.31.93])
-       by acsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
-       ESMTP id q7GGDJuh027567
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
-       Thu, 16 Aug 2012 16:13:20 GMT
-Received: from acsmt358.oracle.com (acsmt358.oracle.com [141.146.40.158])
-       by ucsinet21.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
-       q7GGDIfU007975
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
-       Thu, 16 Aug 2012 16:13:18 GMT
-Received: from abhmt115.oracle.com (abhmt115.oracle.com [141.146.116.67])
-       by acsmt358.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
-       q7GGDH1g006365; Thu, 16 Aug 2012 11:13:17 -0500
-Received: from phenom.dumpdata.com (/209.6.85.33)
-       by default (Oracle Beehive Gateway v4.0)
-       with ESMTP ; Thu, 16 Aug 2012 09:13:17 -0700
-Received: by phenom.dumpdata.com (Postfix, from userid 1000)
-       id 29D9F4035B; Thu, 16 Aug 2012 12:03:31 -0400 (EDT)
-From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-To: linux-kernel@vger.kernel.org, xen-devel@lists.xensource.com
-Date: Thu, 16 Aug 2012 12:03:27 -0400
-Message-Id: <1345133009-21941-10-git-send-email-konrad.wilk@oracle.com>
-X-Mailer: git-send-email 1.7.7.6
-In-Reply-To: <1345133009-21941-1-git-send-email-konrad.wilk@oracle.com>
-References: <1345133009-21941-1-git-send-email-konrad.wilk@oracle.com>
-X-Source-IP: ucsinet21.oracle.com [156.151.31.93]
-Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-MIME-Version: 1.0
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
-Subject: [Xen-devel] [PATCH 09/11] xen/mmu: Copy and revector the P2M tree.
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-Please first read the description in "xen/p2m: Add logic to revector a
-P2M tree to use __va leafs" patch.
-
-The 'xen_revector_p2m_tree()' function allocates a new P2M tree
-copies the contents of the old one in it, and returns the new one.
-
-At this stage, the __ka address space (which is what the old
-P2M tree was using) is partially disassembled. The cleanup_highmap
-has removed the PMD entries from 0-16MB and anything past _brk_end
-up to the max_pfn_mapped (which is the end of the ramdisk).
-
-We have revectored the P2M tree (and the one for save/restore as well)
-to use new shiny __va address to new MFNs. The xen_start_info
-has been taken care of already in 'xen_setup_kernel_pagetable()' and
-xen_start_info->shared_info in 'xen_setup_shared_info()', so
-we are free to roam and delete PMD entries - which is exactly what
-we are going to do. We rip out the __ka for the old P2M array.
-
-[v1: Fix smatch warnings]
-[v2: memset was doing 0 instead of 0xff]
-Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
----
- arch/x86/xen/mmu.c |   57 ++++++++++++++++++++++++++++++++++++++++++++++++++++
- 1 files changed, 57 insertions(+), 0 deletions(-)
-
-diff --git a/arch/x86/xen/mmu.c b/arch/x86/xen/mmu.c
-index bd92c82..e0919c5 100644
---- a/arch/x86/xen/mmu.c
-+++ b/arch/x86/xen/mmu.c
-@@ -1183,9 +1183,64 @@ static __init void xen_mapping_pagetable_reserve(u64 start, u64 end)
- static void xen_post_allocator_init(void);
-+#ifdef CONFIG_X86_64
-+static void __init xen_cleanhighmap(unsigned long vaddr,
-+                                  unsigned long vaddr_end)
-+{
-+      unsigned long kernel_end = roundup((unsigned long)_brk_end, PMD_SIZE) - 1;
-+      pmd_t *pmd = level2_kernel_pgt + pmd_index(vaddr);
-+
-+      /* NOTE: The loop is more greedy than the cleanup_highmap variant.
-+       * We include the PMD passed in on _both_ boundaries. */
-+      for (; vaddr <= vaddr_end && (pmd < (level2_kernel_pgt + PAGE_SIZE));
-+                      pmd++, vaddr += PMD_SIZE) {
-+              if (pmd_none(*pmd))
-+                      continue;
-+              if (vaddr < (unsigned long) _text || vaddr > kernel_end)
-+                      set_pmd(pmd, __pmd(0));
-+      }
-+      /* In case we did something silly, we should crash in this function
-+       * instead of somewhere later and be confusing. */
-+      xen_mc_flush();
-+}
-+#endif
- static void __init xen_pagetable_setup_done(pgd_t *base)
- {
-+#ifdef CONFIG_X86_64
-+      unsigned long size;
-+      unsigned long addr;
-+#endif
-+
-       xen_setup_shared_info();
-+#ifdef CONFIG_X86_64
-+      if (!xen_feature(XENFEAT_auto_translated_physmap)) {
-+              unsigned long new_mfn_list;
-+
-+              size = PAGE_ALIGN(xen_start_info->nr_pages * sizeof(unsigned long));
-+
-+              /* On 32-bit, we get zero so this never gets executed. */
-+              new_mfn_list = xen_revector_p2m_tree();
-+              if (new_mfn_list && new_mfn_list != xen_start_info->mfn_list) {
-+                      /* using __ka address and sticking INVALID_P2M_ENTRY! */
-+                      memset((void *)xen_start_info->mfn_list, 0xff, size);
-+
-+                      /* We should be in __ka space. */
-+                      BUG_ON(xen_start_info->mfn_list < __START_KERNEL_map);
-+                      addr = xen_start_info->mfn_list;
-+                      size = PAGE_ALIGN(xen_start_info->nr_pages * sizeof(unsigned long));
-+                      /* We roundup to the PMD, which means that if anybody at this stage is
-+                       * using the __ka address of xen_start_info or xen_start_info->shared_info
-+                       * they are in going to crash. Fortunatly we have already revectored
-+                       * in xen_setup_kernel_pagetable and in xen_setup_shared_info. */
-+                      size = roundup(size, PMD_SIZE);
-+                      xen_cleanhighmap(addr, addr + size);
-+
-+                      memblock_free(__pa(xen_start_info->mfn_list), size);
-+                      /* And revector! Bye bye old array */
-+                      xen_start_info->mfn_list = new_mfn_list;
-+              }
-+      }
-+#endif
-       xen_post_allocator_init();
- }
-@@ -1822,6 +1877,8 @@ void __init xen_setup_kernel_pagetable(pgd_t *pgd, unsigned long max_pfn)
-       /* Our (by three pages) smaller Xen pagetable that we are using */
-       memblock_reserve(PFN_PHYS(pt_base), (pt_end - pt_base) * PAGE_SIZE);
-+      /* Revector the xen_start_info */
-+      xen_start_info = (struct start_info *)__va(__pa(xen_start_info));
- }
- #else /* !CONFIG_X86_64 */
- static RESERVE_BRK_ARRAY(pmd_t, initial_kernel_pmd, PTRS_PER_PMD);
--- 
-1.7.7.6
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1345133009-21941-11-git-send-email-konrad.wilk@oracle.com> b/test/corpus/<1345133009-21941-11-git-send-email-konrad.wilk@oracle.com>
deleted file mode 100644 (file)
index 6746214..0000000
+++ /dev/null
@@ -1,151 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Aug 16 17:16:50 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 16 Aug 2012 17:16:50 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T22kZ-0008Gc-8P
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 16 Aug 2012 17:16:50 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T22hJ-00069i-Uq; Thu, 16 Aug 2012 16:13:25 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <konrad.wilk@oracle.com>) id 1T22hH-00067M-77
-       for xen-devel@lists.xensource.com; Thu, 16 Aug 2012 16:13:23 +0000
-Received: from [85.158.143.35:42214] by server-1.bemta-4.messagelabs.com id
-       F7/6A-07754-22C1D205; Thu, 16 Aug 2012 16:13:22 +0000
-X-Env-Sender: konrad.wilk@oracle.com
-X-Msg-Ref: server-4.tower-21.messagelabs.com!1345133600!5924381!1
-X-Originating-IP: [141.146.126.227]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogMTQxLjE0Ni4xMjYuMjI3ID0+IDcwMTY5NA==\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 18595 invoked from network); 16 Aug 2012 16:13:22 -0000
-Received: from acsinet15.oracle.com (HELO acsinet15.oracle.com)
-       (141.146.126.227)
-       by server-4.tower-21.messagelabs.com with DHE-RSA-AES256-SHA encrypted
-       SMTP; 16 Aug 2012 16:13:22 -0000
-Received: from acsinet22.oracle.com (acsinet22.oracle.com [141.146.126.238])
-       by acsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
-       ESMTP id q7GGDIiO027563
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
-       Thu, 16 Aug 2012 16:13:19 GMT
-Received: from acsmt357.oracle.com (acsmt357.oracle.com [141.146.40.157])
-       by acsinet22.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
-       q7GGDISJ007174
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
-       Thu, 16 Aug 2012 16:13:18 GMT
-Received: from abhmt102.oracle.com (abhmt102.oracle.com [141.146.116.54])
-       by acsmt357.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
-       q7GGDIpH011316; Thu, 16 Aug 2012 11:13:18 -0500
-Received: from phenom.dumpdata.com (/209.6.85.33)
-       by default (Oracle Beehive Gateway v4.0)
-       with ESMTP ; Thu, 16 Aug 2012 09:13:17 -0700
-Received: by phenom.dumpdata.com (Postfix, from userid 1000)
-       id 3448D4035E; Thu, 16 Aug 2012 12:03:31 -0400 (EDT)
-From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-To: linux-kernel@vger.kernel.org, xen-devel@lists.xensource.com
-Date: Thu, 16 Aug 2012 12:03:28 -0400
-Message-Id: <1345133009-21941-11-git-send-email-konrad.wilk@oracle.com>
-X-Mailer: git-send-email 1.7.7.6
-In-Reply-To: <1345133009-21941-1-git-send-email-konrad.wilk@oracle.com>
-References: <1345133009-21941-1-git-send-email-konrad.wilk@oracle.com>
-X-Source-IP: acsinet22.oracle.com [141.146.126.238]
-Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-MIME-Version: 1.0
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
-Subject: [Xen-devel] [PATCH 10/11] xen/mmu: Remove from __ka space PMD
-       entries for pagetables.
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-Please first read the description in "xen/mmu: Copy and revector the
-P2M tree."
-
-At this stage, the __ka address space (which is what the old
-P2M tree was using) is partially disassembled. The cleanup_highmap
-has removed the PMD entries from 0-16MB and anything past _brk_end
-up to the max_pfn_mapped (which is the end of the ramdisk).
-
-The xen_remove_p2m_tree and code around has ripped out the __ka for
-the old P2M array.
-
-Here we continue on doing it to where the Xen page-tables were.
-It is safe to do it, as the page-tables are addressed using __va.
-For good measure we delete anything that is within MODULES_VADDR
-and up to the end of the PMD.
-
-At this point the __ka only contains PMD entries for the start
-of the kernel up to __brk.
-
-[v1: Per Stefano's suggestion wrapped the MODULES_VADDR in debug]
-Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
----
- arch/x86/xen/mmu.c |   19 +++++++++++++++++++
- 1 files changed, 19 insertions(+), 0 deletions(-)
-
-diff --git a/arch/x86/xen/mmu.c b/arch/x86/xen/mmu.c
-index e0919c5..5a880b8 100644
---- a/arch/x86/xen/mmu.c
-+++ b/arch/x86/xen/mmu.c
-@@ -1240,6 +1240,25 @@ static void __init xen_pagetable_setup_done(pgd_t *base)
-                       xen_start_info->mfn_list = new_mfn_list;
-               }
-       }
-+      /* At this stage, cleanup_highmap has already cleaned __ka space
-+       * from _brk_limit way up to the max_pfn_mapped (which is the end of
-+       * the ramdisk). We continue on, erasing PMD entries that point to page
-+       * tables - do note that they are accessible at this stage via __va.
-+       * For good measure we also round up to the PMD - which means that if
-+       * anybody is using __ka address to the initial boot-stack - and try
-+       * to use it - they are going to crash. The xen_start_info has been
-+       * taken care of already in xen_setup_kernel_pagetable. */
-+      addr = xen_start_info->pt_base;
-+      size = roundup(xen_start_info->nr_pt_frames * PAGE_SIZE, PMD_SIZE);
-+
-+      xen_cleanhighmap(addr, addr + size);
-+      xen_start_info->pt_base = (unsigned long)__va(__pa(xen_start_info->pt_base));
-+#ifdef DEBUG
-+      /* This is superflous and is not neccessary, but you know what
-+       * lets do it. The MODULES_VADDR -> MODULES_END should be clear of
-+       * anything at this stage. */
-+      xen_cleanhighmap(MODULES_VADDR, roundup(MODULES_VADDR, PUD_SIZE) - 1);
-+#endif
- #endif
-       xen_post_allocator_init();
- }
--- 
-1.7.7.6
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1345133009-21941-12-git-send-email-konrad.wilk@oracle.com> b/test/corpus/<1345133009-21941-12-git-send-email-konrad.wilk@oracle.com>
deleted file mode 100644 (file)
index 1c01de1..0000000
+++ /dev/null
@@ -1,138 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Aug 16 17:16:29 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 16 Aug 2012 17:16:29 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T22kE-0008El-R5
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 16 Aug 2012 17:16:29 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T22hJ-00069M-IC; Thu, 16 Aug 2012 16:13:25 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <konrad.wilk@oracle.com>) id 1T22hG-00067V-US
-       for xen-devel@lists.xensource.com; Thu, 16 Aug 2012 16:13:23 +0000
-Received: from [85.158.138.51:15893] by server-9.bemta-3.messagelabs.com id
-       54/77-23952-22C1D205; Thu, 16 Aug 2012 16:13:22 +0000
-X-Env-Sender: konrad.wilk@oracle.com
-X-Msg-Ref: server-12.tower-174.messagelabs.com!1345133599!20717328!1
-X-Originating-IP: [148.87.113.117]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogMTQ4Ljg3LjExMy4xMTcgPT4gNjk0MzAx\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 7359 invoked from network); 16 Aug 2012 16:13:21 -0000
-Received: from rcsinet15.oracle.com (HELO rcsinet15.oracle.com)
-       (148.87.113.117)
-       by server-12.tower-174.messagelabs.com with DHE-RSA-AES256-SHA
-       encrypted SMTP; 16 Aug 2012 16:13:21 -0000
-Received: from acsinet22.oracle.com (acsinet22.oracle.com [141.146.126.238])
-       by rcsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
-       ESMTP id q7GGDIjk007938
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
-       Thu, 16 Aug 2012 16:13:19 GMT
-Received: from acsmt356.oracle.com (acsmt356.oracle.com [141.146.40.156])
-       by acsinet22.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
-       q7GGDIjH007173
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
-       Thu, 16 Aug 2012 16:13:18 GMT
-Received: from abhmt118.oracle.com (abhmt118.oracle.com [141.146.116.70])
-       by acsmt356.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
-       q7GGDIq7027803; Thu, 16 Aug 2012 11:13:18 -0500
-Received: from phenom.dumpdata.com (/209.6.85.33)
-       by default (Oracle Beehive Gateway v4.0)
-       with ESMTP ; Thu, 16 Aug 2012 09:13:17 -0700
-Received: by phenom.dumpdata.com (Postfix, from userid 1000)
-       id 421BB40364; Thu, 16 Aug 2012 12:03:31 -0400 (EDT)
-From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-To: linux-kernel@vger.kernel.org, xen-devel@lists.xensource.com
-Date: Thu, 16 Aug 2012 12:03:29 -0400
-Message-Id: <1345133009-21941-12-git-send-email-konrad.wilk@oracle.com>
-X-Mailer: git-send-email 1.7.7.6
-In-Reply-To: <1345133009-21941-1-git-send-email-konrad.wilk@oracle.com>
-References: <1345133009-21941-1-git-send-email-konrad.wilk@oracle.com>
-X-Source-IP: acsinet22.oracle.com [141.146.126.238]
-Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-MIME-Version: 1.0
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
-Subject: [Xen-devel] [PATCH 11/11] xen/mmu: Release just the MFN list,
-       not MFN list and part of pagetables.
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-We call memblock_reserve for [start of mfn list] -> [PMD aligned end
-of mfn list] instead of <start of mfn list> -> <page aligned end of mfn list].
-
-This has the disastrous effect that if at bootup the end of mfn_list is
-not PMD aligned we end up returning to memblock parts of the region
-past the mfn_list array. And those parts are the PTE tables with
-the disastrous effect of seeing this at bootup:
-
-Write protecting the kernel read-only data: 10240k
-Freeing unused kernel memory: 1860k freed
-Freeing unused kernel memory: 200k freed
-(XEN) mm.c:2429:d0 Bad type (saw 1400000000000002 != exp 7000000000000000) for mfn 116a80 (pfn 14e26)
-...
-(XEN) mm.c:908:d0 Error getting mfn 116a83 (pfn 14e2a) from L1 entry 8000000116a83067 for l1e_owner=0, pg_owner=0
-(XEN) mm.c:908:d0 Error getting mfn 4040 (pfn 5555555555555555) from L1 entry 0000000004040601 for l1e_owner=0, pg_owner=0
-.. and so on.
-
-Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
----
- arch/x86/xen/mmu.c |    2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/arch/x86/xen/mmu.c b/arch/x86/xen/mmu.c
-index 5a880b8..6019c22 100644
---- a/arch/x86/xen/mmu.c
-+++ b/arch/x86/xen/mmu.c
-@@ -1227,7 +1227,6 @@ static void __init xen_pagetable_setup_done(pgd_t *base)
-                       /* We should be in __ka space. */
-                       BUG_ON(xen_start_info->mfn_list < __START_KERNEL_map);
-                       addr = xen_start_info->mfn_list;
--                      size = PAGE_ALIGN(xen_start_info->nr_pages * sizeof(unsigned long));
-                       /* We roundup to the PMD, which means that if anybody at this stage is
-                        * using the __ka address of xen_start_info or xen_start_info->shared_info
-                        * they are in going to crash. Fortunatly we have already revectored
-@@ -1235,6 +1234,7 @@ static void __init xen_pagetable_setup_done(pgd_t *base)
-                       size = roundup(size, PMD_SIZE);
-                       xen_cleanhighmap(addr, addr + size);
-+                      size = PAGE_ALIGN(xen_start_info->nr_pages * sizeof(unsigned long));
-                       memblock_free(__pa(xen_start_info->mfn_list), size);
-                       /* And revector! Bye bye old array */
-                       xen_start_info->mfn_list = new_mfn_list;
--- 
-1.7.7.6
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1345133009-21941-2-git-send-email-konrad.wilk@oracle.com> b/test/corpus/<1345133009-21941-2-git-send-email-konrad.wilk@oracle.com>
deleted file mode 100644 (file)
index ee952d7..0000000
+++ /dev/null
@@ -1,143 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Aug 16 17:16:50 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 16 Aug 2012 17:16:50 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T22kZ-0008Gd-8V
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 16 Aug 2012 17:16:49 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T22hK-00069y-B2; Thu, 16 Aug 2012 16:13:26 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <konrad.wilk@oracle.com>) id 1T22hH-00067j-Dz
-       for xen-devel@lists.xensource.com; Thu, 16 Aug 2012 16:13:23 +0000
-Received: from [85.158.138.51:25201] by server-7.bemta-3.messagelabs.com id
-       3D/0B-01906-22C1D205; Thu, 16 Aug 2012 16:13:22 +0000
-X-Env-Sender: konrad.wilk@oracle.com
-X-Msg-Ref: server-13.tower-174.messagelabs.com!1345133599!9971322!1
-X-Originating-IP: [148.87.113.117]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogMTQ4Ljg3LjExMy4xMTcgPT4gNjk0MzAx\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 22901 invoked from network); 16 Aug 2012 16:13:20 -0000
-Received: from rcsinet15.oracle.com (HELO rcsinet15.oracle.com)
-       (148.87.113.117)
-       by server-13.tower-174.messagelabs.com with DHE-RSA-AES256-SHA
-       encrypted SMTP; 16 Aug 2012 16:13:20 -0000
-Received: from acsinet21.oracle.com (acsinet21.oracle.com [141.146.126.237])
-       by rcsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
-       ESMTP id q7GGDH7v007924
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
-       Thu, 16 Aug 2012 16:13:18 GMT
-Received: from acsmt357.oracle.com (acsmt357.oracle.com [141.146.40.157])
-       by acsinet21.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
-       q7GGDHhd014619
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
-       Thu, 16 Aug 2012 16:13:17 GMT
-Received: from abhmt104.oracle.com (abhmt104.oracle.com [141.146.116.56])
-       by acsmt357.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
-       q7GGDHd6011297; Thu, 16 Aug 2012 11:13:17 -0500
-Received: from phenom.dumpdata.com (/209.6.85.33)
-       by default (Oracle Beehive Gateway v4.0)
-       with ESMTP ; Thu, 16 Aug 2012 09:13:17 -0700
-Received: by phenom.dumpdata.com (Postfix, from userid 1000)
-       id D3678402C0; Thu, 16 Aug 2012 12:03:30 -0400 (EDT)
-From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-To: linux-kernel@vger.kernel.org, xen-devel@lists.xensource.com
-Date: Thu, 16 Aug 2012 12:03:19 -0400
-Message-Id: <1345133009-21941-2-git-send-email-konrad.wilk@oracle.com>
-X-Mailer: git-send-email 1.7.7.6
-In-Reply-To: <1345133009-21941-1-git-send-email-konrad.wilk@oracle.com>
-References: <1345133009-21941-1-git-send-email-konrad.wilk@oracle.com>
-X-Source-IP: acsinet21.oracle.com [141.146.126.237]
-Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-MIME-Version: 1.0
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: [Xen-devel] [PATCH 01/11] xen/p2m: Fix the comment describing the
-       P2M tree.
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-It mixed up the p2m_mid_missing with p2m_missing. Also
-remove some extra spaces.
-
-Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
----
- arch/x86/xen/p2m.c |   14 +++++++-------
- 1 files changed, 7 insertions(+), 7 deletions(-)
-
-diff --git a/arch/x86/xen/p2m.c b/arch/x86/xen/p2m.c
-index 64effdc..e4adbfb 100644
---- a/arch/x86/xen/p2m.c
-+++ b/arch/x86/xen/p2m.c
-@@ -22,7 +22,7 @@
-  *
-  * P2M_PER_PAGE depends on the architecture, as a mfn is always
-  * unsigned long (8 bytes on 64-bit, 4 bytes on 32), leading to
-- * 512 and 1024 entries respectively. 
-+ * 512 and 1024 entries respectively.
-  *
-  * In short, these structures contain the Machine Frame Number (MFN) of the PFN.
-  *
-@@ -139,11 +139,11 @@
-  *      /    | ~0, ~0, ....  |
-  *     |     \---------------/
-  *     |
-- *     p2m_missing             p2m_missing
-- * /------------------\     /------------\
-- * | [p2m_mid_missing]+---->| ~0, ~0, ~0 |
-- * | [p2m_mid_missing]+---->| ..., ~0    |
-- * \------------------/     \------------/
-+ *   p2m_mid_missing           p2m_missing
-+ * /-----------------\     /------------\
-+ * | [p2m_missing]   +---->| ~0, ~0, ~0 |
-+ * | [p2m_missing]   +---->| ..., ~0    |
-+ * \-----------------/     \------------/
-  *
-  * where ~0 is INVALID_P2M_ENTRY. IDENTITY is (PFN | IDENTITY_BIT)
-  */
-@@ -423,7 +423,7 @@ static void free_p2m_page(void *p)
-       free_page((unsigned long)p);
- }
--/* 
-+/*
-  * Fully allocate the p2m structure for a given pfn.  We need to check
-  * that both the top and mid levels are allocated, and make sure the
-  * parallel mfn tree is kept in sync.  We may race with other cpus, so
--- 
-1.7.7.6
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1345133009-21941-3-git-send-email-konrad.wilk@oracle.com> b/test/corpus/<1345133009-21941-3-git-send-email-konrad.wilk@oracle.com>
deleted file mode 100644 (file)
index a23a022..0000000
+++ /dev/null
@@ -1,212 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Aug 16 17:16:36 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 16 Aug 2012 17:16:36 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T22kM-0008Ft-3G
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 16 Aug 2012 17:16:36 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T22hJ-00069A-5O; Thu, 16 Aug 2012 16:13:25 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <konrad.wilk@oracle.com>) id 1T22hG-00067T-Oy
-       for xen-devel@lists.xensource.com; Thu, 16 Aug 2012 16:13:22 +0000
-Received: from [85.158.139.83:3199] by server-12.bemta-5.messagelabs.com id
-       15/5E-22359-22C1D205; Thu, 16 Aug 2012 16:13:22 +0000
-X-Env-Sender: konrad.wilk@oracle.com
-X-Msg-Ref: server-12.tower-182.messagelabs.com!1345133599!28501761!1
-X-Originating-IP: [141.146.126.227]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogMTQxLjE0Ni4xMjYuMjI3ID0+IDcwMTY5NA==\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 18157 invoked from network); 16 Aug 2012 16:13:20 -0000
-Received: from acsinet15.oracle.com (HELO acsinet15.oracle.com)
-       (141.146.126.227)
-       by server-12.tower-182.messagelabs.com with DHE-RSA-AES256-SHA
-       encrypted SMTP; 16 Aug 2012 16:13:20 -0000
-Received: from ucsinet22.oracle.com (ucsinet22.oracle.com [156.151.31.94])
-       by acsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
-       ESMTP id q7GGDIKu027552
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
-       Thu, 16 Aug 2012 16:13:19 GMT
-Received: from acsmt356.oracle.com (acsmt356.oracle.com [141.146.40.156])
-       by ucsinet22.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
-       q7GGDHDC000527
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
-       Thu, 16 Aug 2012 16:13:18 GMT
-Received: from abhmt116.oracle.com (abhmt116.oracle.com [141.146.116.68])
-       by acsmt356.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
-       q7GGDH4H027782; Thu, 16 Aug 2012 11:13:17 -0500
-Received: from phenom.dumpdata.com (/209.6.85.33)
-       by default (Oracle Beehive Gateway v4.0)
-       with ESMTP ; Thu, 16 Aug 2012 09:13:17 -0700
-Received: by phenom.dumpdata.com (Postfix, from userid 1000)
-       id DA338402EF; Thu, 16 Aug 2012 12:03:30 -0400 (EDT)
-From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-To: linux-kernel@vger.kernel.org, xen-devel@lists.xensource.com
-Date: Thu, 16 Aug 2012 12:03:20 -0400
-Message-Id: <1345133009-21941-3-git-send-email-konrad.wilk@oracle.com>
-X-Mailer: git-send-email 1.7.7.6
-In-Reply-To: <1345133009-21941-1-git-send-email-konrad.wilk@oracle.com>
-References: <1345133009-21941-1-git-send-email-konrad.wilk@oracle.com>
-X-Source-IP: ucsinet22.oracle.com [156.151.31.94]
-Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-MIME-Version: 1.0
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
-Subject: [Xen-devel] [PATCH 02/11] xen/x86: Use memblock_reserve for
-       sensitive areas.
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-instead of a big memblock_reserve. This way we can be more
-selective in freeing regions (and it also makes it easier
-to understand where is what).
-
-[v1: Move the auto_translate_physmap to proper line]
-[v2: Per Stefano suggestion add more comments]
-Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
----
- arch/x86/xen/enlighten.c |   48 ++++++++++++++++++++++++++++++++++++++++++++++
- arch/x86/xen/p2m.c       |    5 ++++
- arch/x86/xen/setup.c     |    9 --------
- 3 files changed, 53 insertions(+), 9 deletions(-)
-
-diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c
-index ff962d4..e532eb5 100644
---- a/arch/x86/xen/enlighten.c
-+++ b/arch/x86/xen/enlighten.c
-@@ -998,7 +998,54 @@ static int xen_write_msr_safe(unsigned int msr, unsigned low, unsigned high)
-       return ret;
- }
-+/*
-+ * If the MFN is not in the m2p (provided to us by the hypervisor) this
-+ * function won't do anything. In practice this means that the XenBus
-+ * MFN won't be available for the initial domain. */
-+static void __init xen_reserve_mfn(unsigned long mfn)
-+{
-+      unsigned long pfn;
-+
-+      if (!mfn)
-+              return;
-+      pfn = mfn_to_pfn(mfn);
-+      if (phys_to_machine_mapping_valid(pfn))
-+              memblock_reserve(PFN_PHYS(pfn), PAGE_SIZE);
-+}
-+static void __init xen_reserve_internals(void)
-+{
-+      unsigned long size;
-+
-+      if (!xen_pv_domain())
-+              return;
-+
-+      /* xen_start_info does not exist in the M2P, hence can't use
-+       * xen_reserve_mfn. */
-+      memblock_reserve(__pa(xen_start_info), PAGE_SIZE);
-+
-+      xen_reserve_mfn(PFN_DOWN(xen_start_info->shared_info));
-+      xen_reserve_mfn(xen_start_info->store_mfn);
-+      if (!xen_initial_domain())
-+              xen_reserve_mfn(xen_start_info->console.domU.mfn);
-+
-+      if (xen_feature(XENFEAT_auto_translated_physmap))
-+              return;
-+
-+      /*
-+       * ALIGN up to compensate for the p2m_page pointing to an array that
-+       * can partially filled (look in xen_build_dynamic_phys_to_machine).
-+       */
-+
-+      size = PAGE_ALIGN(xen_start_info->nr_pages * sizeof(unsigned long));
-+
-+      /* We could use xen_reserve_mfn here, but would end up looping quite
-+       * a lot (and call memblock_reserve for each PAGE), so lets just use
-+       * the easy way and reserve it wholesale. */
-+      memblock_reserve(__pa(xen_start_info->mfn_list), size);
-+
-+      /* The pagetables are reserved in mmu.c */
-+}
- void xen_setup_shared_info(void)
- {
-       if (!xen_feature(XENFEAT_auto_translated_physmap)) {
-@@ -1362,6 +1409,7 @@ asmlinkage void __init xen_start_kernel(void)
-       xen_raw_console_write("mapping kernel into physical memory\n");
-       pgd = xen_setup_kernel_pagetable(pgd, xen_start_info->nr_pages);
-+      xen_reserve_internals();
-       /* Allocate and initialize top and mid mfn levels for p2m structure */
-       xen_build_mfn_list_list();
-diff --git a/arch/x86/xen/p2m.c b/arch/x86/xen/p2m.c
-index e4adbfb..6a2bfa4 100644
---- a/arch/x86/xen/p2m.c
-+++ b/arch/x86/xen/p2m.c
-@@ -388,6 +388,11 @@ void __init xen_build_dynamic_phys_to_machine(void)
-       }
-       m2p_override_init();
-+
-+      /* NOTE: We cannot call memblock_reserve here for the mfn_list as there
-+       * isn't enough pieces to make it work (for one - we are still using the
-+       * Xen provided pagetable). Do it later in xen_reserve_internals.
-+       */
- }
- unsigned long get_phys_to_machine(unsigned long pfn)
-diff --git a/arch/x86/xen/setup.c b/arch/x86/xen/setup.c
-index a4790bf..9efca75 100644
---- a/arch/x86/xen/setup.c
-+++ b/arch/x86/xen/setup.c
-@@ -424,15 +424,6 @@ char * __init xen_memory_setup(void)
-       e820_add_region(ISA_START_ADDRESS, ISA_END_ADDRESS - ISA_START_ADDRESS,
-                       E820_RESERVED);
--      /*
--       * Reserve Xen bits:
--       *  - mfn_list
--       *  - xen_start_info
--       * See comment above "struct start_info" in <xen/interface/xen.h>
--       */
--      memblock_reserve(__pa(xen_start_info->mfn_list),
--                       xen_start_info->pt_base - xen_start_info->mfn_list);
--
-       sanitize_e820_map(e820.map, ARRAY_SIZE(e820.map), &e820.nr_map);
-       return "Xen";
--- 
-1.7.7.6
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1345133009-21941-4-git-send-email-konrad.wilk@oracle.com> b/test/corpus/<1345133009-21941-4-git-send-email-konrad.wilk@oracle.com>
deleted file mode 100644 (file)
index ec1242f..0000000
+++ /dev/null
@@ -1,191 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Aug 16 17:17:06 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 16 Aug 2012 17:17:06 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T22kq-0008I8-AI
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 16 Aug 2012 17:17:06 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T22hI-00068J-53; Thu, 16 Aug 2012 16:13:24 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <konrad.wilk@oracle.com>) id 1T22hG-00067L-BC
-       for xen-devel@lists.xensource.com; Thu, 16 Aug 2012 16:13:22 +0000
-Received: from [85.158.143.35:42129] by server-2.bemta-4.messagelabs.com id
-       0B/1E-31966-12C1D205; Thu, 16 Aug 2012 16:13:21 +0000
-X-Env-Sender: konrad.wilk@oracle.com
-X-Msg-Ref: server-12.tower-21.messagelabs.com!1345133599!13695819!1
-X-Originating-IP: [141.146.126.227]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogMTQxLjE0Ni4xMjYuMjI3ID0+IDcwMTY5NA==\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 27523 invoked from network); 16 Aug 2012 16:13:20 -0000
-Received: from acsinet15.oracle.com (HELO acsinet15.oracle.com)
-       (141.146.126.227)
-       by server-12.tower-21.messagelabs.com with DHE-RSA-AES256-SHA encrypted
-       SMTP; 16 Aug 2012 16:13:20 -0000
-Received: from ucsinet21.oracle.com (ucsinet21.oracle.com [156.151.31.93])
-       by acsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
-       ESMTP id q7GGDIxT027551
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
-       Thu, 16 Aug 2012 16:13:19 GMT
-Received: from acsmt357.oracle.com (acsmt357.oracle.com [141.146.40.157])
-       by ucsinet21.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
-       q7GGDHhg007940
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
-       Thu, 16 Aug 2012 16:13:18 GMT
-Received: from abhmt116.oracle.com (abhmt116.oracle.com [141.146.116.68])
-       by acsmt357.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
-       q7GGDH8O011298; Thu, 16 Aug 2012 11:13:17 -0500
-Received: from phenom.dumpdata.com (/209.6.85.33)
-       by default (Oracle Beehive Gateway v4.0)
-       with ESMTP ; Thu, 16 Aug 2012 09:13:17 -0700
-Received: by phenom.dumpdata.com (Postfix, from userid 1000)
-       id E5069402F0; Thu, 16 Aug 2012 12:03:30 -0400 (EDT)
-From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-To: linux-kernel@vger.kernel.org, xen-devel@lists.xensource.com
-Date: Thu, 16 Aug 2012 12:03:21 -0400
-Message-Id: <1345133009-21941-4-git-send-email-konrad.wilk@oracle.com>
-X-Mailer: git-send-email 1.7.7.6
-In-Reply-To: <1345133009-21941-1-git-send-email-konrad.wilk@oracle.com>
-References: <1345133009-21941-1-git-send-email-konrad.wilk@oracle.com>
-X-Source-IP: ucsinet21.oracle.com [156.151.31.93]
-Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-MIME-Version: 1.0
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
-Subject: [Xen-devel] [PATCH 03/11] xen/mmu: The xen_setup_kernel_pagetable
-       doesn't need to return anything.
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-We don't need to return the new PGD - as we do not use it.
-
-Acked-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
----
- arch/x86/xen/enlighten.c |    5 +----
- arch/x86/xen/mmu.c       |   10 ++--------
- arch/x86/xen/xen-ops.h   |    2 +-
- 3 files changed, 4 insertions(+), 13 deletions(-)
-
-diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c
-index e532eb5..993e2a5 100644
---- a/arch/x86/xen/enlighten.c
-+++ b/arch/x86/xen/enlighten.c
-@@ -1305,7 +1305,6 @@ asmlinkage void __init xen_start_kernel(void)
- {
-       struct physdev_set_iopl set_iopl;
-       int rc;
--      pgd_t *pgd;
-       if (!xen_start_info)
-               return;
-@@ -1397,8 +1396,6 @@ asmlinkage void __init xen_start_kernel(void)
-       acpi_numa = -1;
- #endif
--      pgd = (pgd_t *)xen_start_info->pt_base;
--
-       /* Don't do the full vcpu_info placement stuff until we have a
-          possible map and a non-dummy shared_info. */
-       per_cpu(xen_vcpu, 0) = &HYPERVISOR_shared_info->vcpu_info[0];
-@@ -1407,7 +1404,7 @@ asmlinkage void __init xen_start_kernel(void)
-       early_boot_irqs_disabled = true;
-       xen_raw_console_write("mapping kernel into physical memory\n");
--      pgd = xen_setup_kernel_pagetable(pgd, xen_start_info->nr_pages);
-+      xen_setup_kernel_pagetable((pgd_t *)xen_start_info->pt_base, xen_start_info->nr_pages);
-       xen_reserve_internals();
-       /* Allocate and initialize top and mid mfn levels for p2m structure */
-diff --git a/arch/x86/xen/mmu.c b/arch/x86/xen/mmu.c
-index 3a73785..4ac21a4 100644
---- a/arch/x86/xen/mmu.c
-+++ b/arch/x86/xen/mmu.c
-@@ -1719,8 +1719,7 @@ static void convert_pfn_mfn(void *v)
-  * of the physical mapping once some sort of allocator has been set
-  * up.
-  */
--pgd_t * __init xen_setup_kernel_pagetable(pgd_t *pgd,
--                                       unsigned long max_pfn)
-+void __init xen_setup_kernel_pagetable(pgd_t *pgd, unsigned long max_pfn)
- {
-       pud_t *l3;
-       pmd_t *l2;
-@@ -1781,8 +1780,6 @@ pgd_t * __init xen_setup_kernel_pagetable(pgd_t *pgd,
-       memblock_reserve(__pa(xen_start_info->pt_base),
-                        xen_start_info->nr_pt_frames * PAGE_SIZE);
--
--      return pgd;
- }
- #else /* !CONFIG_X86_64 */
- static RESERVE_BRK_ARRAY(pmd_t, initial_kernel_pmd, PTRS_PER_PMD);
-@@ -1825,8 +1822,7 @@ static void __init xen_write_cr3_init(unsigned long cr3)
-       pv_mmu_ops.write_cr3 = &xen_write_cr3;
- }
--pgd_t * __init xen_setup_kernel_pagetable(pgd_t *pgd,
--                                       unsigned long max_pfn)
-+void __init xen_setup_kernel_pagetable(pgd_t *pgd, unsigned long max_pfn)
- {
-       pmd_t *kernel_pmd;
-@@ -1858,8 +1854,6 @@ pgd_t * __init xen_setup_kernel_pagetable(pgd_t *pgd,
-       memblock_reserve(__pa(xen_start_info->pt_base),
-                        xen_start_info->nr_pt_frames * PAGE_SIZE);
--
--      return initial_page_table;
- }
- #endif        /* CONFIG_X86_64 */
-diff --git a/arch/x86/xen/xen-ops.h b/arch/x86/xen/xen-ops.h
-index 202d4c1..2230f57 100644
---- a/arch/x86/xen/xen-ops.h
-+++ b/arch/x86/xen/xen-ops.h
-@@ -27,7 +27,7 @@ void xen_setup_mfn_list_list(void);
- void xen_setup_shared_info(void);
- void xen_build_mfn_list_list(void);
- void xen_setup_machphys_mapping(void);
--pgd_t *xen_setup_kernel_pagetable(pgd_t *pgd, unsigned long max_pfn);
-+void xen_setup_kernel_pagetable(pgd_t *pgd, unsigned long max_pfn);
- void xen_reserve_top(void);
- extern unsigned long xen_max_p2m_pfn;
--- 
-1.7.7.6
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1345133009-21941-5-git-send-email-konrad.wilk@oracle.com> b/test/corpus/<1345133009-21941-5-git-send-email-konrad.wilk@oracle.com>
deleted file mode 100644 (file)
index c77f990..0000000
+++ /dev/null
@@ -1,147 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Aug 16 17:17:12 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 16 Aug 2012 17:17:12 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T22kw-0008IQ-Gu
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 16 Aug 2012 17:17:12 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T22hH-00067k-9k; Thu, 16 Aug 2012 16:13:23 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <konrad.wilk@oracle.com>) id 1T22hF-00067L-S4
-       for xen-devel@lists.xensource.com; Thu, 16 Aug 2012 16:13:22 +0000
-Received: from [85.158.143.35:42112] by server-2.bemta-4.messagelabs.com id
-       57/1E-31966-12C1D205; Thu, 16 Aug 2012 16:13:21 +0000
-X-Env-Sender: konrad.wilk@oracle.com
-X-Msg-Ref: server-16.tower-21.messagelabs.com!1345133599!14478509!1
-X-Originating-IP: [148.87.113.117]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogMTQ4Ljg3LjExMy4xMTcgPT4gNjk0MzAx\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 23684 invoked from network); 16 Aug 2012 16:13:20 -0000
-Received: from rcsinet15.oracle.com (HELO rcsinet15.oracle.com)
-       (148.87.113.117)
-       by server-16.tower-21.messagelabs.com with DHE-RSA-AES256-SHA encrypted
-       SMTP; 16 Aug 2012 16:13:20 -0000
-Received: from ucsinet22.oracle.com (ucsinet22.oracle.com [156.151.31.94])
-       by rcsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
-       ESMTP id q7GGDIhG007928
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
-       Thu, 16 Aug 2012 16:13:18 GMT
-Received: from acsmt358.oracle.com (acsmt358.oracle.com [141.146.40.158])
-       by ucsinet22.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
-       q7GGDHro000530
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
-       Thu, 16 Aug 2012 16:13:18 GMT
-Received: from abhmt110.oracle.com (abhmt110.oracle.com [141.146.116.62])
-       by acsmt358.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
-       q7GGDH06006355; Thu, 16 Aug 2012 11:13:17 -0500
-Received: from phenom.dumpdata.com (/209.6.85.33)
-       by default (Oracle Beehive Gateway v4.0)
-       with ESMTP ; Thu, 16 Aug 2012 09:13:17 -0700
-Received: by phenom.dumpdata.com (Postfix, from userid 1000)
-       id ED6994031E; Thu, 16 Aug 2012 12:03:30 -0400 (EDT)
-From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-To: linux-kernel@vger.kernel.org, xen-devel@lists.xensource.com
-Date: Thu, 16 Aug 2012 12:03:22 -0400
-Message-Id: <1345133009-21941-5-git-send-email-konrad.wilk@oracle.com>
-X-Mailer: git-send-email 1.7.7.6
-In-Reply-To: <1345133009-21941-1-git-send-email-konrad.wilk@oracle.com>
-References: <1345133009-21941-1-git-send-email-konrad.wilk@oracle.com>
-X-Source-IP: ucsinet22.oracle.com [156.151.31.94]
-Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-MIME-Version: 1.0
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
-Subject: [Xen-devel] [PATCH 04/11] xen/mmu: Provide comments describing the
-       _ka and _va aliasing issue
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-Which is that the level2_kernel_pgt (__ka virtual addresses)
-and level2_ident_pgt (__va virtual address) contain the same
-PMD entries. So if you modify a PTE in __ka, it will be reflected
-in __va (and vice-versa).
-
-Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
----
- arch/x86/xen/mmu.c |   17 +++++++++++++++++
- 1 files changed, 17 insertions(+), 0 deletions(-)
-
-diff --git a/arch/x86/xen/mmu.c b/arch/x86/xen/mmu.c
-index 4ac21a4..6ba6100 100644
---- a/arch/x86/xen/mmu.c
-+++ b/arch/x86/xen/mmu.c
-@@ -1734,19 +1734,36 @@ void __init xen_setup_kernel_pagetable(pgd_t *pgd, unsigned long max_pfn)
-       init_level4_pgt[0] = __pgd(0);
-       /* Pre-constructed entries are in pfn, so convert to mfn */
-+      /* L4[272] -> level3_ident_pgt
-+       * L4[511] -> level3_kernel_pgt */
-       convert_pfn_mfn(init_level4_pgt);
-+
-+      /* L3_i[0] -> level2_ident_pgt */
-       convert_pfn_mfn(level3_ident_pgt);
-+      /* L3_k[510] -> level2_kernel_pgt
-+       * L3_i[511] -> level2_fixmap_pgt */
-       convert_pfn_mfn(level3_kernel_pgt);
-+      /* We get [511][511] and have Xen's version of level2_kernel_pgt */
-       l3 = m2v(pgd[pgd_index(__START_KERNEL_map)].pgd);
-       l2 = m2v(l3[pud_index(__START_KERNEL_map)].pud);
-+      /* Graft it onto L4[272][0]. Note that we creating an aliasing problem:
-+       * Both L4[272][0] and L4[511][511] have entries that point to the same
-+       * L2 (PMD) tables. Meaning that if you modify it in __va space
-+       * it will be also modified in the __ka space! (But if you just
-+       * modify the PMD table to point to other PTE's or none, then you
-+       * are OK - which is what cleanup_highmap does) */
-       memcpy(level2_ident_pgt, l2, sizeof(pmd_t) * PTRS_PER_PMD);
-+      /* Graft it onto L4[511][511] */
-       memcpy(level2_kernel_pgt, l2, sizeof(pmd_t) * PTRS_PER_PMD);
-+      /* Get [511][510] and graft that in level2_fixmap_pgt */
-       l3 = m2v(pgd[pgd_index(__START_KERNEL_map + PMD_SIZE)].pgd);
-       l2 = m2v(l3[pud_index(__START_KERNEL_map + PMD_SIZE)].pud);
-       memcpy(level2_fixmap_pgt, l2, sizeof(pmd_t) * PTRS_PER_PMD);
-+      /* Note that we don't do anything with level1_fixmap_pgt which
-+       * we don't need. */
-       /* Set up identity map */
-       xen_map_identity_early(level2_ident_pgt, max_pfn);
--- 
-1.7.7.6
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1345133009-21941-6-git-send-email-konrad.wilk@oracle.com> b/test/corpus/<1345133009-21941-6-git-send-email-konrad.wilk@oracle.com>
deleted file mode 100644 (file)
index bd88928..0000000
+++ /dev/null
@@ -1,149 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Aug 16 17:16:26 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 16 Aug 2012 17:16:26 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T22k8-0008Ee-Q7
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 16 Aug 2012 17:16:25 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T22hK-0006AK-Nx; Thu, 16 Aug 2012 16:13:26 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <konrad.wilk@oracle.com>) id 1T22hH-00067V-JP
-       for xen-devel@lists.xensource.com; Thu, 16 Aug 2012 16:13:23 +0000
-Received: from [85.158.138.51:25253] by server-9.bemta-3.messagelabs.com id
-       4A/77-23952-32C1D205; Thu, 16 Aug 2012 16:13:23 +0000
-X-Env-Sender: konrad.wilk@oracle.com
-X-Msg-Ref: server-12.tower-174.messagelabs.com!1345133601!20717333!1
-X-Originating-IP: [141.146.126.227]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogMTQxLjE0Ni4xMjYuMjI3ID0+IDcwMTY5NA==\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 7428 invoked from network); 16 Aug 2012 16:13:22 -0000
-Received: from acsinet15.oracle.com (HELO acsinet15.oracle.com)
-       (141.146.126.227)
-       by server-12.tower-174.messagelabs.com with DHE-RSA-AES256-SHA
-       encrypted SMTP; 16 Aug 2012 16:13:22 -0000
-Received: from ucsinet22.oracle.com (ucsinet22.oracle.com [156.151.31.94])
-       by acsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
-       ESMTP id q7GGDJdE027566
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
-       Thu, 16 Aug 2012 16:13:19 GMT
-Received: from acsmt356.oracle.com (acsmt356.oracle.com [141.146.40.156])
-       by ucsinet22.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
-       q7GGDIsx000550
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
-       Thu, 16 Aug 2012 16:13:18 GMT
-Received: from abhmt114.oracle.com (abhmt114.oracle.com [141.146.116.66])
-       by acsmt356.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
-       q7GGDHqD027797; Thu, 16 Aug 2012 11:13:17 -0500
-Received: from phenom.dumpdata.com (/209.6.85.33)
-       by default (Oracle Beehive Gateway v4.0)
-       with ESMTP ; Thu, 16 Aug 2012 09:13:17 -0700
-Received: by phenom.dumpdata.com (Postfix, from userid 1000)
-       id 01AA24032C; Thu, 16 Aug 2012 12:03:30 -0400 (EDT)
-From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-To: linux-kernel@vger.kernel.org, xen-devel@lists.xensource.com
-Date: Thu, 16 Aug 2012 12:03:23 -0400
-Message-Id: <1345133009-21941-6-git-send-email-konrad.wilk@oracle.com>
-X-Mailer: git-send-email 1.7.7.6
-In-Reply-To: <1345133009-21941-1-git-send-email-konrad.wilk@oracle.com>
-References: <1345133009-21941-1-git-send-email-konrad.wilk@oracle.com>
-X-Source-IP: ucsinet22.oracle.com [156.151.31.94]
-Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-MIME-Version: 1.0
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
-Subject: [Xen-devel] [PATCH 05/11] xen/mmu: use copy_page instead of memcpy.
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-After all, this is what it is there for.
-
-Acked-by: Jan Beulich <jbeulich@suse.com>
-Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
----
- arch/x86/xen/mmu.c |   13 ++++++-------
- 1 files changed, 6 insertions(+), 7 deletions(-)
-
-diff --git a/arch/x86/xen/mmu.c b/arch/x86/xen/mmu.c
-index 6ba6100..7247e5a 100644
---- a/arch/x86/xen/mmu.c
-+++ b/arch/x86/xen/mmu.c
-@@ -1754,14 +1754,14 @@ void __init xen_setup_kernel_pagetable(pgd_t *pgd, unsigned long max_pfn)
-        * it will be also modified in the __ka space! (But if you just
-        * modify the PMD table to point to other PTE's or none, then you
-        * are OK - which is what cleanup_highmap does) */
--      memcpy(level2_ident_pgt, l2, sizeof(pmd_t) * PTRS_PER_PMD);
-+      copy_page(level2_ident_pgt, l2);
-       /* Graft it onto L4[511][511] */
--      memcpy(level2_kernel_pgt, l2, sizeof(pmd_t) * PTRS_PER_PMD);
-+      copy_page(level2_kernel_pgt, l2);
-       /* Get [511][510] and graft that in level2_fixmap_pgt */
-       l3 = m2v(pgd[pgd_index(__START_KERNEL_map + PMD_SIZE)].pgd);
-       l2 = m2v(l3[pud_index(__START_KERNEL_map + PMD_SIZE)].pud);
--      memcpy(level2_fixmap_pgt, l2, sizeof(pmd_t) * PTRS_PER_PMD);
-+      copy_page(level2_fixmap_pgt, l2);
-       /* Note that we don't do anything with level1_fixmap_pgt which
-        * we don't need. */
-@@ -1821,8 +1821,7 @@ static void __init xen_write_cr3_init(unsigned long cr3)
-        */
-       swapper_kernel_pmd =
-               extend_brk(sizeof(pmd_t) * PTRS_PER_PMD, PAGE_SIZE);
--      memcpy(swapper_kernel_pmd, initial_kernel_pmd,
--             sizeof(pmd_t) * PTRS_PER_PMD);
-+      copy_page(swapper_kernel_pmd, initial_kernel_pmd);
-       swapper_pg_dir[KERNEL_PGD_BOUNDARY] =
-               __pgd(__pa(swapper_kernel_pmd) | _PAGE_PRESENT);
-       set_page_prot(swapper_kernel_pmd, PAGE_KERNEL_RO);
-@@ -1851,11 +1850,11 @@ void __init xen_setup_kernel_pagetable(pgd_t *pgd, unsigned long max_pfn)
-                                 512*1024);
-       kernel_pmd = m2v(pgd[KERNEL_PGD_BOUNDARY].pgd);
--      memcpy(initial_kernel_pmd, kernel_pmd, sizeof(pmd_t) * PTRS_PER_PMD);
-+      copy_page(initial_kernel_pmd, kernel_pmd);
-       xen_map_identity_early(initial_kernel_pmd, max_pfn);
--      memcpy(initial_page_table, pgd, sizeof(pgd_t) * PTRS_PER_PGD);
-+      copy_page(initial_page_table, pgd);
-       initial_page_table[KERNEL_PGD_BOUNDARY] =
-               __pgd(__pa(initial_kernel_pmd) | _PAGE_PRESENT);
--- 
-1.7.7.6
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1345133009-21941-7-git-send-email-konrad.wilk@oracle.com> b/test/corpus/<1345133009-21941-7-git-send-email-konrad.wilk@oracle.com>
deleted file mode 100644 (file)
index 2f47650..0000000
+++ /dev/null
@@ -1,159 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Aug 16 17:16:44 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 16 Aug 2012 17:16:44 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T22kT-0008GB-QB
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 16 Aug 2012 17:16:44 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T22hI-00068q-Po; Thu, 16 Aug 2012 16:13:24 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <konrad.wilk@oracle.com>) id 1T22hG-00067O-IH
-       for xen-devel@lists.xensource.com; Thu, 16 Aug 2012 16:13:22 +0000
-Received: from [85.158.139.83:40635] by server-10.bemta-5.messagelabs.com id
-       86/C6-13125-12C1D205; Thu, 16 Aug 2012 16:13:21 +0000
-X-Env-Sender: konrad.wilk@oracle.com
-X-Msg-Ref: server-4.tower-182.messagelabs.com!1345133600!25790051!1
-X-Originating-IP: [148.87.113.117]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogMTQ4Ljg3LjExMy4xMTcgPT4gNjk0MzAx\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 3748 invoked from network); 16 Aug 2012 16:13:21 -0000
-Received: from rcsinet15.oracle.com (HELO rcsinet15.oracle.com)
-       (148.87.113.117)
-       by server-4.tower-182.messagelabs.com with DHE-RSA-AES256-SHA encrypted
-       SMTP; 16 Aug 2012 16:13:21 -0000
-Received: from ucsinet22.oracle.com (ucsinet22.oracle.com [156.151.31.94])
-       by rcsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
-       ESMTP id q7GGDIQu007944
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
-       Thu, 16 Aug 2012 16:13:19 GMT
-Received: from acsmt357.oracle.com (acsmt357.oracle.com [141.146.40.157])
-       by ucsinet22.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
-       q7GGDIrM000545
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
-       Thu, 16 Aug 2012 16:13:18 GMT
-Received: from abhmt107.oracle.com (abhmt107.oracle.com [141.146.116.59])
-       by acsmt357.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
-       q7GGDI0Z011310; Thu, 16 Aug 2012 11:13:18 -0500
-Received: from phenom.dumpdata.com (/209.6.85.33)
-       by default (Oracle Beehive Gateway v4.0)
-       with ESMTP ; Thu, 16 Aug 2012 09:13:17 -0700
-Received: by phenom.dumpdata.com (Postfix, from userid 1000)
-       id 0BE714032D; Thu, 16 Aug 2012 12:03:31 -0400 (EDT)
-From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-To: linux-kernel@vger.kernel.org, xen-devel@lists.xensource.com
-Date: Thu, 16 Aug 2012 12:03:24 -0400
-Message-Id: <1345133009-21941-7-git-send-email-konrad.wilk@oracle.com>
-X-Mailer: git-send-email 1.7.7.6
-In-Reply-To: <1345133009-21941-1-git-send-email-konrad.wilk@oracle.com>
-References: <1345133009-21941-1-git-send-email-konrad.wilk@oracle.com>
-X-Source-IP: ucsinet22.oracle.com [156.151.31.94]
-Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-MIME-Version: 1.0
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
-Subject: [Xen-devel] [PATCH 06/11] xen/mmu: For 64-bit do not call
-       xen_map_identity_early
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-B/c we do not need it. During the startup the Xen provides
-us with all the memory mapped that we need to function.
-
-Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
----
- arch/x86/xen/mmu.c |   11 +++++------
- 1 files changed, 5 insertions(+), 6 deletions(-)
-
-diff --git a/arch/x86/xen/mmu.c b/arch/x86/xen/mmu.c
-index 7247e5a..a59070b 100644
---- a/arch/x86/xen/mmu.c
-+++ b/arch/x86/xen/mmu.c
-@@ -84,6 +84,7 @@
-  */
- DEFINE_SPINLOCK(xen_reservation_lock);
-+#ifdef CONFIG_X86_32
- /*
-  * Identity map, in addition to plain kernel map.  This needs to be
-  * large enough to allocate page table pages to allocate the rest.
-@@ -91,7 +92,7 @@ DEFINE_SPINLOCK(xen_reservation_lock);
-  */
- #define LEVEL1_IDENT_ENTRIES  (PTRS_PER_PTE * 4)
- static RESERVE_BRK_ARRAY(pte_t, level1_ident_pgt, LEVEL1_IDENT_ENTRIES);
--
-+#endif
- #ifdef CONFIG_X86_64
- /* l3 pud for userspace vsyscall mapping */
- static pud_t level3_user_vsyscall[PTRS_PER_PUD] __page_aligned_bss;
-@@ -1628,7 +1629,7 @@ static void set_page_prot(void *addr, pgprot_t prot)
-       if (HYPERVISOR_update_va_mapping((unsigned long)addr, pte, 0))
-               BUG();
- }
--
-+#ifdef CONFIG_X86_32
- static void __init xen_map_identity_early(pmd_t *pmd, unsigned long max_pfn)
- {
-       unsigned pmdidx, pteidx;
-@@ -1679,7 +1680,7 @@ static void __init xen_map_identity_early(pmd_t *pmd, unsigned long max_pfn)
-       set_page_prot(pmd, PAGE_KERNEL_RO);
- }
--
-+#endif
- void __init xen_setup_machphys_mapping(void)
- {
-       struct xen_machphys_mapping mapping;
-@@ -1765,14 +1766,12 @@ void __init xen_setup_kernel_pagetable(pgd_t *pgd, unsigned long max_pfn)
-       /* Note that we don't do anything with level1_fixmap_pgt which
-        * we don't need. */
--      /* Set up identity map */
--      xen_map_identity_early(level2_ident_pgt, max_pfn);
--
-       /* Make pagetable pieces RO */
-       set_page_prot(init_level4_pgt, PAGE_KERNEL_RO);
-       set_page_prot(level3_ident_pgt, PAGE_KERNEL_RO);
-       set_page_prot(level3_kernel_pgt, PAGE_KERNEL_RO);
-       set_page_prot(level3_user_vsyscall, PAGE_KERNEL_RO);
-+      set_page_prot(level2_ident_pgt, PAGE_KERNEL_RO);
-       set_page_prot(level2_kernel_pgt, PAGE_KERNEL_RO);
-       set_page_prot(level2_fixmap_pgt, PAGE_KERNEL_RO);
--- 
-1.7.7.6
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1345133009-21941-8-git-send-email-konrad.wilk@oracle.com> b/test/corpus/<1345133009-21941-8-git-send-email-konrad.wilk@oracle.com>
deleted file mode 100644 (file)
index ab5a602..0000000
+++ /dev/null
@@ -1,194 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Aug 16 17:16:54 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 16 Aug 2012 17:16:54 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T22kd-0008HS-T7
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 16 Aug 2012 17:16:54 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T22hH-000680-Na; Thu, 16 Aug 2012 16:13:23 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <konrad.wilk@oracle.com>) id 1T22hG-00067M-8B
-       for xen-devel@lists.xensource.com; Thu, 16 Aug 2012 16:13:22 +0000
-Received: from [85.158.143.99:16046] by server-1.bemta-4.messagelabs.com id
-       5E/5A-07754-12C1D205; Thu, 16 Aug 2012 16:13:21 +0000
-X-Env-Sender: konrad.wilk@oracle.com
-X-Msg-Ref: server-6.tower-216.messagelabs.com!1345133599!21510805!1
-X-Originating-IP: [148.87.113.117]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogMTQ4Ljg3LjExMy4xMTcgPT4gNjk0MzAx\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 12320 invoked from network); 16 Aug 2012 16:13:21 -0000
-Received: from rcsinet15.oracle.com (HELO rcsinet15.oracle.com)
-       (148.87.113.117)
-       by server-6.tower-216.messagelabs.com with DHE-RSA-AES256-SHA encrypted
-       SMTP; 16 Aug 2012 16:13:21 -0000
-Received: from acsinet22.oracle.com (acsinet22.oracle.com [141.146.126.238])
-       by rcsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
-       ESMTP id q7GGDI7h007939
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
-       Thu, 16 Aug 2012 16:13:19 GMT
-Received: from acsmt357.oracle.com (acsmt357.oracle.com [141.146.40.157])
-       by acsinet22.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
-       q7GGDI2C007167
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
-       Thu, 16 Aug 2012 16:13:18 GMT
-Received: from abhmt120.oracle.com (abhmt120.oracle.com [141.146.116.72])
-       by acsmt357.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
-       q7GGDIcL011311; Thu, 16 Aug 2012 11:13:18 -0500
-Received: from phenom.dumpdata.com (/209.6.85.33)
-       by default (Oracle Beehive Gateway v4.0)
-       with ESMTP ; Thu, 16 Aug 2012 09:13:17 -0700
-Received: by phenom.dumpdata.com (Postfix, from userid 1000)
-       id 1628640357; Thu, 16 Aug 2012 12:03:31 -0400 (EDT)
-From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-To: linux-kernel@vger.kernel.org, xen-devel@lists.xensource.com
-Date: Thu, 16 Aug 2012 12:03:25 -0400
-Message-Id: <1345133009-21941-8-git-send-email-konrad.wilk@oracle.com>
-X-Mailer: git-send-email 1.7.7.6
-In-Reply-To: <1345133009-21941-1-git-send-email-konrad.wilk@oracle.com>
-References: <1345133009-21941-1-git-send-email-konrad.wilk@oracle.com>
-X-Source-IP: acsinet22.oracle.com [141.146.126.238]
-Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-MIME-Version: 1.0
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
-Subject: [Xen-devel] [PATCH 07/11] xen/mmu: Recycle the Xen provided L4, L3,
-       and L2 pages
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-As we are not using them. We end up only using the L1 pagetables
-and grafting those to our page-tables.
-
-[v1: Per Stefano's suggestion squashed two commits]
-[v2: Per Stefano's suggestion simplified loop]
-[v3: Fix smatch warnings]
-Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
----
- arch/x86/xen/mmu.c |   40 +++++++++++++++++++++++++++++++++-------
- 1 files changed, 33 insertions(+), 7 deletions(-)
-
-diff --git a/arch/x86/xen/mmu.c b/arch/x86/xen/mmu.c
-index a59070b..bd92c82 100644
---- a/arch/x86/xen/mmu.c
-+++ b/arch/x86/xen/mmu.c
-@@ -1708,7 +1708,20 @@ static void convert_pfn_mfn(void *v)
-       for (i = 0; i < PTRS_PER_PTE; i++)
-               pte[i] = xen_make_pte(pte[i].pte);
- }
--
-+static void __init check_pt_base(unsigned long *pt_base, unsigned long *pt_end,
-+                               unsigned long addr)
-+{
-+      if (*pt_base == PFN_DOWN(__pa(addr))) {
-+              set_page_prot((void *)addr, PAGE_KERNEL);
-+              clear_page((void *)addr);
-+              (*pt_base)++;
-+      }
-+      if (*pt_end == PFN_DOWN(__pa(addr))) {
-+              set_page_prot((void *)addr, PAGE_KERNEL);
-+              clear_page((void *)addr);
-+              (*pt_end)--;
-+      }
-+}
- /*
-  * Set up the initial kernel pagetable.
-  *
-@@ -1724,6 +1737,9 @@ void __init xen_setup_kernel_pagetable(pgd_t *pgd, unsigned long max_pfn)
- {
-       pud_t *l3;
-       pmd_t *l2;
-+      unsigned long addr[3];
-+      unsigned long pt_base, pt_end;
-+      unsigned i;
-       /* max_pfn_mapped is the last pfn mapped in the initial memory
-        * mappings. Considering that on Xen after the kernel mappings we
-@@ -1731,6 +1747,9 @@ void __init xen_setup_kernel_pagetable(pgd_t *pgd, unsigned long max_pfn)
-        * set max_pfn_mapped to the last real pfn mapped. */
-       max_pfn_mapped = PFN_DOWN(__pa(xen_start_info->mfn_list));
-+      pt_base = PFN_DOWN(__pa(xen_start_info->pt_base));
-+      pt_end = PFN_DOWN(__pa(xen_start_info->pt_base + (xen_start_info->nr_pt_frames * PAGE_SIZE)));
-+
-       /* Zap identity mapping */
-       init_level4_pgt[0] = __pgd(0);
-@@ -1749,6 +1768,9 @@ void __init xen_setup_kernel_pagetable(pgd_t *pgd, unsigned long max_pfn)
-       l3 = m2v(pgd[pgd_index(__START_KERNEL_map)].pgd);
-       l2 = m2v(l3[pud_index(__START_KERNEL_map)].pud);
-+      addr[0] = (unsigned long)pgd;
-+      addr[1] = (unsigned long)l3;
-+      addr[2] = (unsigned long)l2;
-       /* Graft it onto L4[272][0]. Note that we creating an aliasing problem:
-        * Both L4[272][0] and L4[511][511] have entries that point to the same
-        * L2 (PMD) tables. Meaning that if you modify it in __va space
-@@ -1782,20 +1804,24 @@ void __init xen_setup_kernel_pagetable(pgd_t *pgd, unsigned long max_pfn)
-       /* Unpin Xen-provided one */
-       pin_pagetable_pfn(MMUEXT_UNPIN_TABLE, PFN_DOWN(__pa(pgd)));
--      /* Switch over */
--      pgd = init_level4_pgt;
--
-       /*
-        * At this stage there can be no user pgd, and no page
-        * structure to attach it to, so make sure we just set kernel
-        * pgd.
-        */
-       xen_mc_batch();
--      __xen_write_cr3(true, __pa(pgd));
-+      __xen_write_cr3(true, __pa(init_level4_pgt));
-       xen_mc_issue(PARAVIRT_LAZY_CPU);
--      memblock_reserve(__pa(xen_start_info->pt_base),
--                       xen_start_info->nr_pt_frames * PAGE_SIZE);
-+      /* We can't that easily rip out L3 and L2, as the Xen pagetables are
-+       * set out this way: [L4], [L1], [L2], [L3], [L1], [L1] ...  for
-+       * the initial domain. For guests using the toolstack, they are in:
-+       * [L4], [L3], [L2], [L1], [L1], order .. */
-+      for (i = 0; i < ARRAY_SIZE(addr); i++)
-+              check_pt_base(&pt_base, &pt_end, addr[i]);
-+
-+      /* Our (by three pages) smaller Xen pagetable that we are using */
-+      memblock_reserve(PFN_PHYS(pt_base), (pt_end - pt_base) * PAGE_SIZE);
- }
- #else /* !CONFIG_X86_64 */
- static RESERVE_BRK_ARRAY(pmd_t, initial_kernel_pmd, PTRS_PER_PMD);
--- 
-1.7.7.6
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1345133009-21941-9-git-send-email-konrad.wilk@oracle.com> b/test/corpus/<1345133009-21941-9-git-send-email-konrad.wilk@oracle.com>
deleted file mode 100644 (file)
index 0142b96..0000000
+++ /dev/null
@@ -1,292 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Aug 16 17:16:30 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 16 Aug 2012 17:16:30 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T22kE-0008Ek-Ll
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 16 Aug 2012 17:16:29 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T22hO-0006Fb-NU; Thu, 16 Aug 2012 16:13:30 +0000
-Received: from mail27.messagelabs.com ([193.109.254.147])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <konrad.wilk@oracle.com>) id 1T22hM-00067f-4e
-       for xen-devel@lists.xensource.com; Thu, 16 Aug 2012 16:13:28 +0000
-X-Env-Sender: konrad.wilk@oracle.com
-X-Msg-Ref: server-16.tower-27.messagelabs.com!1345133600!9447666!1
-X-Originating-IP: [141.146.126.227]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogMTQxLjE0Ni4xMjYuMjI3ID0+IDcwMTY5NA==\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 27243 invoked from network); 16 Aug 2012 16:13:21 -0000
-Received: from acsinet15.oracle.com (HELO acsinet15.oracle.com)
-       (141.146.126.227)
-       by server-16.tower-27.messagelabs.com with DHE-RSA-AES256-SHA encrypted
-       SMTP; 16 Aug 2012 16:13:21 -0000
-Received: from acsinet21.oracle.com (acsinet21.oracle.com [141.146.126.237])
-       by acsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
-       ESMTP id q7GGDI4o027562
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
-       Thu, 16 Aug 2012 16:13:19 GMT
-Received: from acsmt357.oracle.com (acsmt357.oracle.com [141.146.40.157])
-       by acsinet21.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
-       q7GGDIY1014645
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
-       Thu, 16 Aug 2012 16:13:18 GMT
-Received: from abhmt105.oracle.com (abhmt105.oracle.com [141.146.116.57])
-       by acsmt357.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
-       q7GGDICj011317; Thu, 16 Aug 2012 11:13:18 -0500
-Received: from phenom.dumpdata.com (/209.6.85.33)
-       by default (Oracle Beehive Gateway v4.0)
-       with ESMTP ; Thu, 16 Aug 2012 09:13:17 -0700
-Received: by phenom.dumpdata.com (Postfix, from userid 1000)
-       id 1F84D4035A; Thu, 16 Aug 2012 12:03:31 -0400 (EDT)
-From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-To: linux-kernel@vger.kernel.org, xen-devel@lists.xensource.com
-Date: Thu, 16 Aug 2012 12:03:26 -0400
-Message-Id: <1345133009-21941-9-git-send-email-konrad.wilk@oracle.com>
-X-Mailer: git-send-email 1.7.7.6
-In-Reply-To: <1345133009-21941-1-git-send-email-konrad.wilk@oracle.com>
-References: <1345133009-21941-1-git-send-email-konrad.wilk@oracle.com>
-X-Source-IP: acsinet21.oracle.com [141.146.126.237]
-Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-MIME-Version: 1.0
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
-Subject: [Xen-devel] [PATCH 08/11] xen/p2m: Add logic to revector a P2M tree
-       to use __va leafs.
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-During bootup Xen supplies us with a P2M array. It sticks
-it right after the ramdisk, as can be seen with a 128GB PV guest:
-
-(certain parts removed for clarity):
-xc_dom_build_image: called
-xc_dom_alloc_segment:   kernel       : 0xffffffff81000000 -> 0xffffffff81e43000  (pfn 0x1000 + 0xe43 pages)
-xc_dom_pfn_to_ptr: domU mapping: pfn 0x1000+0xe43 at 0x7f097d8bf000
-xc_dom_alloc_segment:   ramdisk      : 0xffffffff81e43000 -> 0xffffffff925c7000  (pfn 0x1e43 + 0x10784 pages)
-xc_dom_pfn_to_ptr: domU mapping: pfn 0x1e43+0x10784 at 0x7f0952dd2000
-xc_dom_alloc_segment:   phys2mach    : 0xffffffff925c7000 -> 0xffffffffa25c7000  (pfn 0x125c7 + 0x10000 pages)
-xc_dom_pfn_to_ptr: domU mapping: pfn 0x125c7+0x10000 at 0x7f0942dd2000
-xc_dom_alloc_page   :   start info   : 0xffffffffa25c7000 (pfn 0x225c7)
-xc_dom_alloc_page   :   xenstore     : 0xffffffffa25c8000 (pfn 0x225c8)
-xc_dom_alloc_page   :   console      : 0xffffffffa25c9000 (pfn 0x225c9)
-nr_page_tables: 0x0000ffffffffffff/48: 0xffff000000000000 -> 0xffffffffffffffff, 1 table(s)
-nr_page_tables: 0x0000007fffffffff/39: 0xffffff8000000000 -> 0xffffffffffffffff, 1 table(s)
-nr_page_tables: 0x000000003fffffff/30: 0xffffffff80000000 -> 0xffffffffbfffffff, 1 table(s)
-nr_page_tables: 0x00000000001fffff/21: 0xffffffff80000000 -> 0xffffffffa27fffff, 276 table(s)
-xc_dom_alloc_segment:   page tables  : 0xffffffffa25ca000 -> 0xffffffffa26e1000  (pfn 0x225ca + 0x117 pages)
-xc_dom_pfn_to_ptr: domU mapping: pfn 0x225ca+0x117 at 0x7f097d7a8000
-xc_dom_alloc_page   :   boot stack   : 0xffffffffa26e1000 (pfn 0x226e1)
-xc_dom_build_image  : virt_alloc_end : 0xffffffffa26e2000
-xc_dom_build_image  : virt_pgtab_end : 0xffffffffa2800000
-
-So the physical memory and virtual (using __START_KERNEL_map addresses)
-layout looks as so:
-
-  phys                             __ka
-/------------\                   /-------------------\
-| 0          | empty             | 0xffffffff80000000|
-| ..         |                   | ..                |
-| 16MB       | <= kernel starts  | 0xffffffff81000000|
-| ..         |                   |                   |
-| 30MB       | <= kernel ends => | 0xffffffff81e43000|
-| ..         |  & ramdisk starts | ..                |
-| 293MB      | <= ramdisk ends=> | 0xffffffff925c7000|
-| ..         |  & P2M starts     | ..                |
-| ..         |                   | ..                |
-| 549MB      | <= P2M ends    => | 0xffffffffa25c7000|
-| ..         | start_info        | 0xffffffffa25c7000|
-| ..         | xenstore          | 0xffffffffa25c8000|
-| ..         | cosole            | 0xffffffffa25c9000|
-| 549MB      | <= page tables => | 0xffffffffa25ca000|
-| ..         |                   |                   |
-| 550MB      | <= PGT end     => | 0xffffffffa26e1000|
-| ..         | boot stack        |                   |
-\------------/                   \-------------------/
-
-As can be seen, the ramdisk, P2M and pagetables are taking
-a bit of __ka addresses space. Which is a problem since the
-MODULES_VADDR starts at 0xffffffffa0000000 - and P2M sits
-right in there! This results during bootup with the inability to
-load modules, with this error:
-
-------------[ cut here ]------------
-WARNING: at /home/konrad/ssd/linux/mm/vmalloc.c:106 vmap_page_range_noflush+0x2d9/0x370()
-Call Trace:
- [<ffffffff810719fa>] warn_slowpath_common+0x7a/0xb0
- [<ffffffff81030279>] ? __raw_callee_save_xen_pmd_val+0x11/0x1e
- [<ffffffff81071a45>] warn_slowpath_null+0x15/0x20
- [<ffffffff81130b89>] vmap_page_range_noflush+0x2d9/0x370
- [<ffffffff81130c4d>] map_vm_area+0x2d/0x50
- [<ffffffff811326d0>] __vmalloc_node_range+0x160/0x250
- [<ffffffff810c5369>] ? module_alloc_update_bounds+0x19/0x80
- [<ffffffff810c6186>] ? load_module+0x66/0x19c0
- [<ffffffff8105cadc>] module_alloc+0x5c/0x60
- [<ffffffff810c5369>] ? module_alloc_update_bounds+0x19/0x80
- [<ffffffff810c5369>] module_alloc_update_bounds+0x19/0x80
- [<ffffffff810c70c3>] load_module+0xfa3/0x19c0
- [<ffffffff812491f6>] ? security_file_permission+0x86/0x90
- [<ffffffff810c7b3a>] sys_init_module+0x5a/0x220
- [<ffffffff815ce339>] system_call_fastpath+0x16/0x1b
----[ end trace fd8f7704fdea0291 ]---
-vmalloc: allocation failure, allocated 16384 of 20480 bytes
-modprobe: page allocation failure: order:0, mode:0xd2
-
-Since the __va and __ka are 1:1 up to MODULES_VADDR and
-cleanup_highmap rids __ka of the ramdisk mapping, what
-we want to do is similar - get rid of the P2M in the __ka
-address space. There are two ways of fixing this:
-
- 1) All P2M lookups instead of using the __ka address would
-    use the __va address. This means we can safely erase from
-    __ka space the PMD pointers that point to the PFNs for
-    P2M array and be OK.
- 2). Allocate a new array, copy the existing P2M into it,
-    revector the P2M tree to use that, and return the old
-    P2M to the memory allocate. This has the advantage that
-    it sets the stage for using XEN_ELF_NOTE_INIT_P2M
-    feature. That feature allows us to set the exact virtual
-    address space we want for the P2M - and allows us to
-    boot as initial domain on large machines.
-
-So we pick option 2).
-
-This patch only lays the groundwork in the P2M code. The patch
-that modifies the MMU is called "xen/mmu: Copy and revector the P2M tree."
-
-Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
----
- arch/x86/xen/p2m.c     |   70 ++++++++++++++++++++++++++++++++++++++++++++++++
- arch/x86/xen/xen-ops.h |    1 +
- 2 files changed, 71 insertions(+), 0 deletions(-)
-
-diff --git a/arch/x86/xen/p2m.c b/arch/x86/xen/p2m.c
-index 6a2bfa4..bbfd085 100644
---- a/arch/x86/xen/p2m.c
-+++ b/arch/x86/xen/p2m.c
-@@ -394,7 +394,77 @@ void __init xen_build_dynamic_phys_to_machine(void)
-        * Xen provided pagetable). Do it later in xen_reserve_internals.
-        */
- }
-+#ifdef CONFIG_X86_64
-+#include <linux/bootmem.h>
-+unsigned long __init xen_revector_p2m_tree(void)
-+{
-+      unsigned long va_start;
-+      unsigned long va_end;
-+      unsigned long pfn;
-+      unsigned long *mfn_list = NULL;
-+      unsigned long size;
-+
-+      va_start = xen_start_info->mfn_list;
-+      /*We copy in increments of P2M_PER_PAGE * sizeof(unsigned long),
-+       * so make sure it is rounded up to that */
-+      size = PAGE_ALIGN(xen_start_info->nr_pages * sizeof(unsigned long));
-+      va_end = va_start + size;
-+
-+      /* If we were revectored already, don't do it again. */
-+      if (va_start <= __START_KERNEL_map && va_start >= __PAGE_OFFSET)
-+              return 0;
-+
-+      mfn_list = alloc_bootmem_align(size, PAGE_SIZE);
-+      if (!mfn_list) {
-+              pr_warn("Could not allocate space for a new P2M tree!\n");
-+              return xen_start_info->mfn_list;
-+      }
-+      /* Fill it out with INVALID_P2M_ENTRY value */
-+      memset(mfn_list, 0xFF, size);
-+
-+      for (pfn = 0; pfn < ALIGN(MAX_DOMAIN_PAGES, P2M_PER_PAGE); pfn += P2M_PER_PAGE) {
-+              unsigned topidx = p2m_top_index(pfn);
-+              unsigned mididx;
-+              unsigned long *mid_p;
-+
-+              if (!p2m_top[topidx])
-+                      continue;
-+
-+              if (p2m_top[topidx] == p2m_mid_missing)
-+                      continue;
-+
-+              mididx = p2m_mid_index(pfn);
-+              mid_p = p2m_top[topidx][mididx];
-+              if (!mid_p)
-+                      continue;
-+              if ((mid_p == p2m_missing) || (mid_p == p2m_identity))
-+                      continue;
-+
-+              if ((unsigned long)mid_p == INVALID_P2M_ENTRY)
-+                      continue;
-+
-+              /* The old va. Rebase it on mfn_list */
-+              if (mid_p >= (unsigned long *)va_start && mid_p <= (unsigned long *)va_end) {
-+                      unsigned long *new;
-+
-+                      new = &mfn_list[pfn];
-+
-+                      copy_page(new, mid_p);
-+                      p2m_top[topidx][mididx] = &mfn_list[pfn];
-+                      p2m_top_mfn_p[topidx][mididx] = virt_to_mfn(&mfn_list[pfn]);
-+              }
-+              /* This should be the leafs allocated for identity from _brk. */
-+      }
-+      return (unsigned long)mfn_list;
-+
-+}
-+#else
-+unsigned long __init xen_revector_p2m_tree(void)
-+{
-+      return 0;
-+}
-+#endif
- unsigned long get_phys_to_machine(unsigned long pfn)
- {
-       unsigned topidx, mididx, idx;
-diff --git a/arch/x86/xen/xen-ops.h b/arch/x86/xen/xen-ops.h
-index 2230f57..bb5a810 100644
---- a/arch/x86/xen/xen-ops.h
-+++ b/arch/x86/xen/xen-ops.h
-@@ -45,6 +45,7 @@ void xen_hvm_init_shared_info(void);
- void xen_unplug_emulated_devices(void);
- void __init xen_build_dynamic_phys_to_machine(void);
-+unsigned long __init xen_revector_p2m_tree(void);
- void xen_init_irq_ops(void);
- void xen_setup_timer(int cpu);
--- 
-1.7.7.6
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1345190532.30865.67.camel@zakaz.uk.xensource.com> b/test/corpus/<1345190532.30865.67.camel@zakaz.uk.xensource.com>
deleted file mode 100644 (file)
index f0853a1..0000000
+++ /dev/null
@@ -1,119 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Aug 17 09:07:13 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 17 Aug 2012 09:07:13 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T2HaH-0006r7-C1
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 17 Aug 2012 09:07:13 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T2HVZ-0008TD-3U; Fri, 17 Aug 2012 08:02:17 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1T2HVX-0008T8-68
-       for xen-devel@lists.xen.org; Fri, 17 Aug 2012 08:02:15 +0000
-Received: from [85.158.138.51:51763] by server-11.bemta-3.messagelabs.com id
-       CB/BF-23152-68AFD205; Fri, 17 Aug 2012 08:02:14 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-11.tower-174.messagelabs.com!1345190533!28754520!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDk0Mzk=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 24530 invoked from network); 17 Aug 2012 08:02:14 -0000
-Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-11.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
-       17 Aug 2012 08:02:14 -0000
-X-IronPort-AV: E=Sophos;i="4.77,783,1336348800"; d="scan'208";a="14053966"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       17 Aug 2012 08:02:13 +0000
-Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0;
-       Fri, 17 Aug 2012 09:02:13 +0100
-Message-ID: <1345190532.30865.67.camel@zakaz.uk.xensource.com>
-From: Ian Campbell <Ian.Campbell@citrix.com>
-To: Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-Date: Fri, 17 Aug 2012 09:02:12 +0100
-In-Reply-To: <alpine.DEB.2.02.1208161801210.15568@kaball.uk.xensource.com>
-References: <alpine.DEB.2.02.1208161523420.4850@kaball.uk.xensource.com>
-       <1345128612-10323-4-git-send-email-stefano.stabellini@eu.citrix.com>
-       <502D33B8020000780009596B@nat28.tlf.novell.com>
-       <502D37D702000078000959F7@nat28.tlf.novell.com>
-       <alpine.DEB.2.02.1208161801210.15568@kaball.uk.xensource.com>
-Organization: Citrix Systems, Inc.
-X-Mailer: Evolution 3.4.3-1 
-MIME-Version: 1.0
-Cc: "Tim \(Xen.org\)" <tim@xen.org>, Jan Beulich <JBeulich@suse.com>,
-       xen-devel <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH v3 4/6] xen: introduce XEN_GUEST_HANDLE_PARAM
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Thu, 2012-08-16 at 18:10 +0100, Stefano Stabellini wrote:
-> On Thu, 16 Aug 2012, Jan Beulich wrote:
-> > >>> On 16.08.12 at 17:54, "Jan Beulich" <JBeulich@suse.com> wrote:
-> > > Seeing the patch I btw realized that there's no easy way to
-> > > avoid having the type as a second argument in the conversion
-> > > macros. Nevertheless I still don't like the explicitly specified type
-> > > there.
-> > 
-> > Btw - on the architecture(s) where the two handles are identical
-> > I would prefer you to make the conversion functions trivial (and
-> > thus avoid making use of the "type" parameter), thus allowing
-> > the type checking to occur that you currently circumvent.
-> 
-> OK, I can do that.
-
-Will this result in the type parameter potentially becoming stale?
-
-Adding a redundant pointer compare is a good way to get the compiler to
-catch this. Smth like;
-
-        /* Cast a XEN_GUEST_HANDLE_PARAM to XEN_GUEST_HANDLE */
-        #define guest_handle_from_param(hnd, type) ({
-            typeof((hnd).p) _x = (hnd).p;
-            XEN_GUEST_HANDLE(type) _y;
-            &_y == &_x;
-            hnd;
-         })
-
-I'm not sure which two pointers of members of the various structs need
-to be compared, maybe it's actually &_y.p and &hnd.p, but you get the
-idea...
-
-Ian.
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1345211486.10161.31.camel@zakaz.uk.xensource.com> b/test/corpus/<1345211486.10161.31.camel@zakaz.uk.xensource.com>
deleted file mode 100644 (file)
index 20a9c9e..0000000
+++ /dev/null
@@ -1,149 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Aug 17 14:54:58 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 17 Aug 2012 14:54:58 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T2N0p-00084G-LI
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 17 Aug 2012 14:54:58 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T2MxX-0000DX-FF; Fri, 17 Aug 2012 13:51:31 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1T2MxV-0000Cs-8f
-       for xen-devel@lists.xen.org; Fri, 17 Aug 2012 13:51:29 +0000
-Received: from [85.158.143.99:64352] by server-1.bemta-4.messagelabs.com id
-       A1/AE-07754-06C4E205; Fri, 17 Aug 2012 13:51:28 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-5.tower-216.messagelabs.com!1345211488!28373286!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDk0MzU=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 17748 invoked from network); 17 Aug 2012 13:51:28 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-5.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
-       17 Aug 2012 13:51:28 -0000
-X-IronPort-AV: E=Sophos;i="4.77,785,1336348800"; d="scan'208";a="14061163"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       17 Aug 2012 13:51:27 +0000
-Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0;
-       Fri, 17 Aug 2012 14:51:27 +0100
-Message-ID: <1345211486.10161.31.camel@zakaz.uk.xensource.com>
-From: Ian Campbell <Ian.Campbell@citrix.com>
-To: Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-Date: Fri, 17 Aug 2012 14:51:26 +0100
-In-Reply-To: <alpine.DEB.2.02.1208171443580.15568@kaball.uk.xensource.com>
-References: <alpine.DEB.2.02.1208161523420.4850@kaball.uk.xensource.com>
-       <1345128612-10323-4-git-send-email-stefano.stabellini@eu.citrix.com>
-       <502D33B8020000780009596B@nat28.tlf.novell.com>
-       <502D37D702000078000959F7@nat28.tlf.novell.com>
-       <alpine.DEB.2.02.1208161801210.15568@kaball.uk.xensource.com>
-       <1345190532.30865.67.camel@zakaz.uk.xensource.com>
-       <502E2F090200007800095D62@nat28.tlf.novell.com>
-       <alpine.DEB.2.02.1208171443580.15568@kaball.uk.xensource.com>
-Organization: Citrix Systems, Inc.
-X-Mailer: Evolution 3.4.3-1 
-MIME-Version: 1.0
-Cc: "Tim \(Xen.org\)" <tim@xen.org>, Jan Beulich <JBeulich@suse.com>,
-       xen-devel <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH v3 4/6] xen: introduce XEN_GUEST_HANDLE_PARAM
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Fri, 2012-08-17 at 14:47 +0100, Stefano Stabellini wrote:
-> On Fri, 17 Aug 2012, Jan Beulich wrote:
-> > >>> On 17.08.12 at 10:02, Ian Campbell <Ian.Campbell@citrix.com> wrote:
-> > > On Thu, 2012-08-16 at 18:10 +0100, Stefano Stabellini wrote:
-> > >> On Thu, 16 Aug 2012, Jan Beulich wrote:
-> > >> > >>> On 16.08.12 at 17:54, "Jan Beulich" <JBeulich@suse.com> wrote:
-> > >> > > Seeing the patch I btw realized that there's no easy way to
-> > >> > > avoid having the type as a second argument in the conversion
-> > >> > > macros. Nevertheless I still don't like the explicitly specified type
-> > >> > > there.
-> > >> > 
-> > >> > Btw - on the architecture(s) where the two handles are identical
-> > >> > I would prefer you to make the conversion functions trivial (and
-> > >> > thus avoid making use of the "type" parameter), thus allowing
-> > >> > the type checking to occur that you currently circumvent.
-> > >> 
-> > >> OK, I can do that.
-> > > 
-> > > Will this result in the type parameter potentially becoming stale?
-> > > 
-> > > Adding a redundant pointer compare is a good way to get the compiler to
-> > > catch this. Smth like;
-> > > 
-> > >         /* Cast a XEN_GUEST_HANDLE_PARAM to XEN_GUEST_HANDLE */
-> > >         #define guest_handle_from_param(hnd, type) ({
-> > >             typeof((hnd).p) _x = (hnd).p;
-> > >             XEN_GUEST_HANDLE(type) _y;
-> > >             &_y == &_x;
-> > >             hnd;
-> > >          })
-> > 
-> > Ah yes, that's a good suggestion.
-> > 
-> > > I'm not sure which two pointers of members of the various structs need
-> > > to be compared, maybe it's actually &_y.p and &hnd.p, but you get the
-> > > idea...
-> > 
-> > Right, comparing (hnd).p with _y.p would be the right thing; no
-> > need for _x, but some other (mechanical) adjustments would be
-> > necessary.
-> 
-> The _x variable is still useful to avoid multiple evaluations of hnd,
-> even though I know that this is not a public header.
-> 
-> What about the following:
-> 
-> /* Cast a XEN_GUEST_HANDLE to XEN_GUEST_HANDLE_PARAM */
-> #define guest_handle_to_param(hnd, type) ({                \
->     typeof((hnd).p) _x = (hnd).p;                          \
->     XEN_GUEST_HANDLE_PARAM(type) _y = { _x };              \
->     if (&_x != &_y.p) BUG();                               \
-
-&_x and &_y.p will always be different => this will always BUG().
-
-You just need "(&_x == &_y.p)" if the types of _x and _y.p are different
-then the compiler will error out due to the comparison of differently
-typed pointers.
-
-Ian.
-
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1345215020.10161.64.camel@zakaz.uk.xensource.com> b/test/corpus/<1345215020.10161.64.camel@zakaz.uk.xensource.com>
deleted file mode 100644 (file)
index 3053734..0000000
+++ /dev/null
@@ -1,168 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Aug 17 15:54:42 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 17 Aug 2012 15:54:42 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T2Nwd-0008Lf-I5
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 17 Aug 2012 15:54:41 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T2Nsd-0003WZ-EK; Fri, 17 Aug 2012 14:50:31 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1T2Nsb-0003WU-Lo
-       for xen-devel@lists.xen.org; Fri, 17 Aug 2012 14:50:29 +0000
-Received: from [85.158.143.35:61361] by server-3.bemta-4.messagelabs.com id
-       18/80-09529-53A5E205; Fri, 17 Aug 2012 14:50:29 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-13.tower-21.messagelabs.com!1345215026!15938799!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDk0MzU=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 28877 invoked from network); 17 Aug 2012 14:50:27 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-13.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
-       17 Aug 2012 14:50:27 -0000
-X-IronPort-AV: E=Sophos;i="4.77,785,1336348800"; d="scan'208";a="14062470"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       17 Aug 2012 14:50:21 +0000
-Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0;
-       Fri, 17 Aug 2012 15:50:21 +0100
-Message-ID: <1345215020.10161.64.camel@zakaz.uk.xensource.com>
-From: Ian Campbell <Ian.Campbell@citrix.com>
-To: Jan Beulich <JBeulich@suse.com>
-Date: Fri, 17 Aug 2012 15:50:20 +0100
-In-Reply-To: <502E6A200200007800095E9A@nat28.tlf.novell.com>
-References: <alpine.DEB.2.02.1208161523420.4850@kaball.uk.xensource.com>
-       <1345128612-10323-4-git-send-email-stefano.stabellini@eu.citrix.com>
-       <502D33B8020000780009596B@nat28.tlf.novell.com>
-       <502D37D702000078000959F7@nat28.tlf.novell.com>
-       <alpine.DEB.2.02.1208161801210.15568@kaball.uk.xensource.com>
-       <1345190532.30865.67.camel@zakaz.uk.xensource.com>
-       <502E2F090200007800095D62@nat28.tlf.novell.com>
-       <alpine.DEB.2.02.1208171443580.15568@kaball.uk.xensource.com>
-       <502E6A200200007800095E9A@nat28.tlf.novell.com>
-Organization: Citrix Systems, Inc.
-X-Mailer: Evolution 3.4.3-1 
-MIME-Version: 1.0
-Cc: xen-devel <xen-devel@lists.xen.org>, "Tim \(Xen.org\)" <tim@xen.org>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH v3 4/6] xen: introduce XEN_GUEST_HANDLE_PARAM
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Fri, 2012-08-17 at 14:58 +0100, Jan Beulich wrote:
-> >>> On 17.08.12 at 15:47, Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-> wrote:
-> > On Fri, 17 Aug 2012, Jan Beulich wrote:
-> >> >>> On 17.08.12 at 10:02, Ian Campbell <Ian.Campbell@citrix.com> wrote:
-> >> > On Thu, 2012-08-16 at 18:10 +0100, Stefano Stabellini wrote:
-> >> >> On Thu, 16 Aug 2012, Jan Beulich wrote:
-> >> >> > >>> On 16.08.12 at 17:54, "Jan Beulich" <JBeulich@suse.com> wrote:
-> >> >> > > Seeing the patch I btw realized that there's no easy way to
-> >> >> > > avoid having the type as a second argument in the conversion
-> >> >> > > macros. Nevertheless I still don't like the explicitly specified type
-> >> >> > > there.
-> >> >> > 
-> >> >> > Btw - on the architecture(s) where the two handles are identical
-> >> >> > I would prefer you to make the conversion functions trivial (and
-> >> >> > thus avoid making use of the "type" parameter), thus allowing
-> >> >> > the type checking to occur that you currently circumvent.
-> >> >> 
-> >> >> OK, I can do that.
-> >> > 
-> >> > Will this result in the type parameter potentially becoming stale?
-> >> > 
-> >> > Adding a redundant pointer compare is a good way to get the compiler to
-> >> > catch this. Smth like;
-> >> > 
-> >> >         /* Cast a XEN_GUEST_HANDLE_PARAM to XEN_GUEST_HANDLE */
-> >> >         #define guest_handle_from_param(hnd, type) ({
-> >> >             typeof((hnd).p) _x = (hnd).p;
-> >> >             XEN_GUEST_HANDLE(type) _y;
-> >> >             &_y == &_x;
-> >> >             hnd;
-> >> >          })
-> >> 
-> >> Ah yes, that's a good suggestion.
-> >> 
-> >> > I'm not sure which two pointers of members of the various structs need
-> >> > to be compared, maybe it's actually &_y.p and &hnd.p, but you get the
-> >> > idea...
-> >> 
-> >> Right, comparing (hnd).p with _y.p would be the right thing; no
-> >> need for _x, but some other (mechanical) adjustments would be
-> >> necessary.
-> > 
-> > The _x variable is still useful to avoid multiple evaluations of hnd,
-> > even though I know that this is not a public header.
-> 
-> But we had settled on returning hnd unmodified when both
-> handle types are the same.
-> 
-> > What about the following:
-> > 
-> > /* Cast a XEN_GUEST_HANDLE to XEN_GUEST_HANDLE_PARAM */
-> > #define guest_handle_to_param(hnd, type) ({                \
-> >     typeof((hnd).p) _x = (hnd).p;                          \
-> >     XEN_GUEST_HANDLE_PARAM(type) _y = { _x };              \
-> >     if (&_x != &_y.p) BUG();                               \
-> >     _y;                                                    \
-> > })
-> 
-> Since this is not a public header, something like this (untested,
-> so may not compile as is)
-> 
-> #define guest_handle_to_param(hnd, type) ({                \
->     (void)(typeof((hnd).p)0 == (XEN_GUEST_HANDLE_PARAM(type){}).p); \
->     (hnd);                                                    \
-> })
-> 
-> is what I was thinking of.
-
-This evaluates hnd twice, or do we only care about that in public
-headers for some reason? (personally I think principal of least surprise
-suggests avoiding it wherever possible)
-
-
-> 
-> Jan
-> 
-
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1345215992.10161.77.camel@zakaz.uk.xensource.com> b/test/corpus/<1345215992.10161.77.camel@zakaz.uk.xensource.com>
deleted file mode 100644 (file)
index 8e22da7..0000000
+++ /dev/null
@@ -1,174 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Aug 17 16:11:11 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 17 Aug 2012 16:11:11 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T2OCa-0008Qm-Sf
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 17 Aug 2012 16:11:11 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T2O9G-0004f1-Ts; Fri, 17 Aug 2012 15:07:42 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1T2O9F-0004es-7z
-       for xen-devel@lists.xen.org; Fri, 17 Aug 2012 15:07:41 +0000
-Received: from [85.158.143.35:35502] by server-3.bemta-4.messagelabs.com id
-       09/BA-09529-C3E5E205; Fri, 17 Aug 2012 15:07:40 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-13.tower-21.messagelabs.com!1345216023!15942248!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDk0MzU=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 9219 invoked from network); 17 Aug 2012 15:07:04 -0000
-Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-13.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
-       17 Aug 2012 15:07:04 -0000
-X-IronPort-AV: E=Sophos;i="4.77,785,1336348800"; d="scan'208";a="14062858"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       17 Aug 2012 15:06:33 +0000
-Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0;
-       Fri, 17 Aug 2012 16:06:33 +0100
-Message-ID: <1345215992.10161.77.camel@zakaz.uk.xensource.com>
-From: Ian Campbell <Ian.Campbell@citrix.com>
-To: Jan Beulich <JBeulich@suse.com>
-Date: Fri, 17 Aug 2012 16:06:32 +0100
-In-Reply-To: <502E78010200007800095F56@nat28.tlf.novell.com>
-References: <alpine.DEB.2.02.1208161523420.4850@kaball.uk.xensource.com>
-       <1345128612-10323-4-git-send-email-stefano.stabellini@eu.citrix.com>
-       <502D33B8020000780009596B@nat28.tlf.novell.com>
-       <502D37D702000078000959F7@nat28.tlf.novell.com>
-       <alpine.DEB.2.02.1208161801210.15568@kaball.uk.xensource.com>
-       <1345190532.30865.67.camel@zakaz.uk.xensource.com>
-       <502E2F090200007800095D62@nat28.tlf.novell.com>
-       <alpine.DEB.2.02.1208171443580.15568@kaball.uk.xensource.com>
-       <502E6A200200007800095E9A@nat28.tlf.novell.com>
-       <1345215020.10161.64.camel@zakaz.uk.xensource.com>
-       <502E78010200007800095F56@nat28.tlf.novell.com>
-Organization: Citrix Systems, Inc.
-X-Mailer: Evolution 3.4.3-1 
-MIME-Version: 1.0
-Cc: xen-devel <xen-devel@lists.xen.org>, "Tim \(Xen.org\)" <tim@xen.org>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH v3 4/6] xen: introduce XEN_GUEST_HANDLE_PARAM
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Fri, 2012-08-17 at 15:57 +0100, Jan Beulich wrote:
-> >>> On 17.08.12 at 16:50, Ian Campbell <Ian.Campbell@citrix.com> wrote:
-> > On Fri, 2012-08-17 at 14:58 +0100, Jan Beulich wrote:
-> >> >>> On 17.08.12 at 15:47, Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-> >> wrote:
-> >> > On Fri, 17 Aug 2012, Jan Beulich wrote:
-> >> >> >>> On 17.08.12 at 10:02, Ian Campbell <Ian.Campbell@citrix.com> wrote:
-> >> >> > On Thu, 2012-08-16 at 18:10 +0100, Stefano Stabellini wrote:
-> >> >> >> On Thu, 16 Aug 2012, Jan Beulich wrote:
-> >> >> >> > >>> On 16.08.12 at 17:54, "Jan Beulich" <JBeulich@suse.com> wrote:
-> >> >> >> > > Seeing the patch I btw realized that there's no easy way to
-> >> >> >> > > avoid having the type as a second argument in the conversion
-> >> >> >> > > macros. Nevertheless I still don't like the explicitly specified type
-> >> >> >> > > there.
-> >> >> >> > 
-> >> >> >> > Btw - on the architecture(s) where the two handles are identical
-> >> >> >> > I would prefer you to make the conversion functions trivial (and
-> >> >> >> > thus avoid making use of the "type" parameter), thus allowing
-> >> >> >> > the type checking to occur that you currently circumvent.
-> >> >> >> 
-> >> >> >> OK, I can do that.
-> >> >> > 
-> >> >> > Will this result in the type parameter potentially becoming stale?
-> >> >> > 
-> >> >> > Adding a redundant pointer compare is a good way to get the compiler to
-> >> >> > catch this. Smth like;
-> >> >> > 
-> >> >> >         /* Cast a XEN_GUEST_HANDLE_PARAM to XEN_GUEST_HANDLE */
-> >> >> >         #define guest_handle_from_param(hnd, type) ({
-> >> >> >             typeof((hnd).p) _x = (hnd).p;
-> >> >> >             XEN_GUEST_HANDLE(type) _y;
-> >> >> >             &_y == &_x;
-> >> >> >             hnd;
-> >> >> >          })
-> >> >> 
-> >> >> Ah yes, that's a good suggestion.
-> >> >> 
-> >> >> > I'm not sure which two pointers of members of the various structs need
-> >> >> > to be compared, maybe it's actually &_y.p and &hnd.p, but you get the
-> >> >> > idea...
-> >> >> 
-> >> >> Right, comparing (hnd).p with _y.p would be the right thing; no
-> >> >> need for _x, but some other (mechanical) adjustments would be
-> >> >> necessary.
-> >> > 
-> >> > The _x variable is still useful to avoid multiple evaluations of hnd,
-> >> > even though I know that this is not a public header.
-> >> 
-> >> But we had settled on returning hnd unmodified when both
-> >> handle types are the same.
-> >> 
-> >> > What about the following:
-> >> > 
-> >> > /* Cast a XEN_GUEST_HANDLE to XEN_GUEST_HANDLE_PARAM */
-> >> > #define guest_handle_to_param(hnd, type) ({                \
-> >> >     typeof((hnd).p) _x = (hnd).p;                          \
-> >> >     XEN_GUEST_HANDLE_PARAM(type) _y = { _x };              \
-> >> >     if (&_x != &_y.p) BUG();                               \
-> >> >     _y;                                                    \
-> >> > })
-> >> 
-> >> Since this is not a public header, something like this (untested,
-> >> so may not compile as is)
-> >> 
-> >> #define guest_handle_to_param(hnd, type) ({                \
-> >>     (void)(typeof((hnd).p)0 == (XEN_GUEST_HANDLE_PARAM(type){}).p); \
-> >>     (hnd);                                                    \
-> >> })
-> >> 
-> >> is what I was thinking of.
-> > 
-> > This evaluates hnd twice, or do we only care about that in public
-> > headers for some reason? (personally I think principal of least surprise
-> > suggests avoiding it wherever possible)
-> 
-> No, it doesn't - like sizeof(), typeof() doesn't evaluate its
-> argument.
-
-Right, of course, silly me.
-
-Ian.
-
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1345463624.28762.67.camel@zakaz.uk.xensource.com> b/test/corpus/<1345463624.28762.67.camel@zakaz.uk.xensource.com>
deleted file mode 100644 (file)
index fa030f6..0000000
+++ /dev/null
@@ -1,123 +0,0 @@
-From xen-devel-bounces@lists.xen.org Mon Aug 20 12:58:04 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Mon, 20 Aug 2012 12:58:04 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T3QcM-0000EX-I6
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Mon, 20 Aug 2012 12:58:04 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T3QYR-0001BA-EC; Mon, 20 Aug 2012 11:53:59 +0000
-Received: from mail27.messagelabs.com ([193.109.254.147])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1T3QYP-0001Ay-Nl
-       for xen-devel@lists.xensource.com; Mon, 20 Aug 2012 11:53:57 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-3.tower-27.messagelabs.com!1345463626!9781860!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDk2MTE=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 22630 invoked from network); 20 Aug 2012 11:53:46 -0000
-Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-3.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
-       20 Aug 2012 11:53:46 -0000
-X-IronPort-AV: E=Sophos;i="4.77,796,1336348800"; d="scan'208";a="14083254"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       20 Aug 2012 11:53:46 +0000
-Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0;
-       Mon, 20 Aug 2012 12:53:45 +0100
-Message-ID: <1345463624.28762.67.camel@zakaz.uk.xensource.com>
-From: Ian Campbell <Ian.Campbell@citrix.com>
-To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-Date: Mon, 20 Aug 2012 12:53:44 +0100
-In-Reply-To: <alpine.DEB.2.02.1208201243180.15568@kaball.uk.xensource.com>
-References: <1345133009-21941-1-git-send-email-konrad.wilk@oracle.com>
-       <1345133009-21941-7-git-send-email-konrad.wilk@oracle.com>
-       <alpine.DEB.2.02.1208171839590.15568@kaball.uk.xensource.com>
-       <20120817174549.GA14257@phenom.dumpdata.com>
-       <alpine.DEB.2.02.1208201243180.15568@kaball.uk.xensource.com>
-Organization: Citrix Systems, Inc.
-X-Mailer: Evolution 3.4.3-1 
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
-       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
-       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 06/11] xen/mmu: For 64-bit do not call
- xen_map_identity_early
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Mon, 2012-08-20 at 12:45 +0100, Stefano Stabellini wrote:
-> On Fri, 17 Aug 2012, Konrad Rzeszutek Wilk wrote:
-> > On Fri, Aug 17, 2012 at 06:41:23PM +0100, Stefano Stabellini wrote:
-> > > On Thu, 16 Aug 2012, Konrad Rzeszutek Wilk wrote:
-> > > > B/c we do not need it. During the startup the Xen provides
-> > > > us with all the memory mapped that we need to function.
-> > > 
-> > > Shouldn't we check to make sure that is actually true (I am thinking at
-> > > nr_pt_frames)?
-> > 
-> > I was looking at the source code (hypervisor) to figure it out and
-> > that is certainly true.
-> > 
-> > 
-> > > Or is it actually stated somewhere in the Xen headers?
-> > 
-> > Couldn't find it, but after looking so long at the source code
-> > I didn't even bother looking for it.
-> > 
-> > Thought to be honest - I only looked at how the 64-bit pagetables
-> > were set up, so I didn't dare to touch the 32-bit. Hence the #ifdef
-> 
-> I think that we need to involve some Xen maintainers and get this
-> written down somewhere in the public headers, otherwise we have no
-> guarantees that it is going to stay as it is in the next Xen versions.
-> 
-> Maybe we just need to add a couple of lines of comment to
-> xen/include/public/xen.h.
-
-The start of day memory layout for PV guests is written down in the
-comment just before struct start_info at
-http://xenbits.xen.org/docs/unstable/hypercall/include,public,xen.h.html#Struct_start_info
-
-(I haven't read this thread to determine if what is documented matches
-what you guys are talking about relying on)
-
-Ian.
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1345633688-31684-1-git-send-email-stefano.stabellini@eu.citrix.com> b/test/corpus/<1345633688-31684-1-git-send-email-stefano.stabellini@eu.citrix.com>
deleted file mode 100644 (file)
index ea6c322..0000000
+++ /dev/null
@@ -1,220 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Aug 22 12:12:58 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 22 Aug 2012 12:12:58 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T48rk-0000wi-Js
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 22 Aug 2012 12:12:58 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T48nt-0001Hr-IR; Wed, 22 Aug 2012 11:08:53 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1T48nr-0001HC-Ii
-       for xen-devel@lists.xensource.com; Wed, 22 Aug 2012 11:08:51 +0000
-Received: from [85.158.138.51:63288] by server-9.bemta-3.messagelabs.com id
-       26/54-23952-2CDB4305; Wed, 22 Aug 2012 11:08:50 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-15.tower-174.messagelabs.com!1345633727!25641644!2
-X-Originating-IP: [66.165.176.63]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyNzMzNjM=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 27424 invoked from network); 22 Aug 2012 11:08:50 -0000
-Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
-       by server-15.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
-       22 Aug 2012 11:08:50 -0000
-X-IronPort-AV: E=Sophos;i="4.77,808,1336363200"; d="scan'208";a="205885719"
-Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
-       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       22 Aug 2012 07:08:21 -0400
-Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
-       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
-       Wed, 22 Aug 2012 07:08:21 -0400
-Received: from kaball.uk.xensource.com ([10.80.2.59])  by
-       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
-       <stefano.stabellini@eu.citrix.com>)     id 1T48nH-0003lL-Lx;
-       Wed, 22 Aug 2012 12:08:15 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-To: <xen-devel@lists.xensource.com>
-Date: Wed, 22 Aug 2012 12:08:03 +0100
-Message-ID: <1345633688-31684-1-git-send-email-stefano.stabellini@eu.citrix.com>
-X-Mailer: git-send-email 1.7.9.5
-In-Reply-To: <alpine.DEB.2.02.1208221159560.15568@kaball.uk.xensource.com>
-References: <alpine.DEB.2.02.1208221159560.15568@kaball.uk.xensource.com>
-MIME-Version: 1.0
-Cc: tim@xen.org, Ian.Campbell@citrix.com,
-       Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: [Xen-devel] [PATCH v4 1/6] xen: improve changes to
-       xen_add_to_physmap
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-This is an incremental patch on top of
-c0bc926083b5987a3e9944eec2c12ad0580100e2: in order to retain binary
-compatibility, it is better to introduce foreign_domid as part of a
-union containing both size and foreign_domid.
-
-Changes in v2:
-
-- do not use an anonymous union.
-
-Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
----
- tools/firmware/hvmloader/pci.c  |    2 +-
- xen/arch/arm/mm.c               |    2 +-
- xen/arch/x86/mm.c               |   10 +++++-----
- xen/arch/x86/x86_64/compat/mm.c |    6 ++++++
- xen/include/public/memory.h     |   11 +++++++----
- 5 files changed, 20 insertions(+), 11 deletions(-)
-
-diff --git a/tools/firmware/hvmloader/pci.c b/tools/firmware/hvmloader/pci.c
-index fd56e50..6375989 100644
---- a/tools/firmware/hvmloader/pci.c
-+++ b/tools/firmware/hvmloader/pci.c
-@@ -212,7 +212,7 @@ void pci_setup(void)
-         xatp.space = XENMAPSPACE_gmfn_range;
-         xatp.idx   = hvm_info->low_mem_pgend;
-         xatp.gpfn  = hvm_info->high_mem_pgend;
--        xatp.size  = nr_pages;
-+        xatp.u.size  = nr_pages;
-         if ( hypercall_memory_op(XENMEM_add_to_physmap, &xatp) != 0 )
-             BUG();
-         hvm_info->high_mem_pgend += nr_pages;
-diff --git a/xen/arch/arm/mm.c b/xen/arch/arm/mm.c
-index 08bc55b..2400e1c 100644
---- a/xen/arch/arm/mm.c
-+++ b/xen/arch/arm/mm.c
-@@ -506,7 +506,7 @@ static int xenmem_add_to_physmap_once(
-         paddr_t maddr;
-         struct domain *od;
--        rc = rcu_lock_target_domain_by_id(xatp->foreign_domid, &od);
-+        rc = rcu_lock_target_domain_by_id(xatp->u.foreign_domid, &od);
-         if ( rc < 0 )
-             return rc;
-         maddr = p2m_lookup(od, xatp->idx << PAGE_SHIFT);
-diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c
-index 9f63974..f5c704e 100644
---- a/xen/arch/x86/mm.c
-+++ b/xen/arch/x86/mm.c
-@@ -4630,7 +4630,7 @@ static int xenmem_add_to_physmap(struct domain *d,
-             this_cpu(iommu_dont_flush_iotlb) = 1;
-         start_xatp = *xatp;
--        while ( xatp->size > 0 )
-+        while ( xatp->u.size > 0 )
-         {
-             rc = xenmem_add_to_physmap_once(d, xatp);
-             if ( rc < 0 )
-@@ -4638,10 +4638,10 @@ static int xenmem_add_to_physmap(struct domain *d,
-             xatp->idx++;
-             xatp->gpfn++;
--            xatp->size--;
-+            xatp->u.size--;
-             /* Check for continuation if it's not the last interation */
--            if ( xatp->size > 0 && hypercall_preempt_check() )
-+            if ( xatp->u.size > 0 && hypercall_preempt_check() )
-             {
-                 rc = -EAGAIN;
-                 break;
-@@ -4651,8 +4651,8 @@ static int xenmem_add_to_physmap(struct domain *d,
-         if ( need_iommu(d) )
-         {
-             this_cpu(iommu_dont_flush_iotlb) = 0;
--            iommu_iotlb_flush(d, start_xatp.idx, start_xatp.size - xatp->size);
--            iommu_iotlb_flush(d, start_xatp.gpfn, start_xatp.size - xatp->size);
-+            iommu_iotlb_flush(d, start_xatp.idx, start_xatp.u.size - xatp->u.size);
-+            iommu_iotlb_flush(d, start_xatp.gpfn, start_xatp.u.size - xatp->u.size);
-         }
-         return rc;
-diff --git a/xen/arch/x86/x86_64/compat/mm.c b/xen/arch/x86/x86_64/compat/mm.c
-index f497503..5bcd2fd 100644
---- a/xen/arch/x86/x86_64/compat/mm.c
-+++ b/xen/arch/x86/x86_64/compat/mm.c
-@@ -59,10 +59,16 @@ int compat_arch_memory_op(int op, XEN_GUEST_HANDLE(void) arg)
-     {
-         struct compat_add_to_physmap cmp;
-         struct xen_add_to_physmap *nat = COMPAT_ARG_XLAT_VIRT_BASE;
-+        enum XLAT_add_to_physmap_u u;
-         if ( copy_from_guest(&cmp, arg, 1) )
-             return -EFAULT;
-+        if ( cmp.space == XENMAPSPACE_gmfn_range )
-+            u = XLAT_add_to_physmap_u_size;
-+        if ( cmp.space == XENMAPSPACE_gmfn_foreign )
-+            u = XLAT_add_to_physmap_u_foreign_domid;
-+
-         XLAT_add_to_physmap(nat, &cmp);
-         rc = arch_memory_op(op, guest_handle_from_ptr(nat, void));
-diff --git a/xen/include/public/memory.h b/xen/include/public/memory.h
-index b2adfbe..7d4ee26 100644
---- a/xen/include/public/memory.h
-+++ b/xen/include/public/memory.h
-@@ -208,8 +208,12 @@ struct xen_add_to_physmap {
-     /* Which domain to change the mapping for. */
-     domid_t domid;
--    /* Number of pages to go through for gmfn_range */
--    uint16_t    size;
-+    union {
-+        /* Number of pages to go through for gmfn_range */
-+        uint16_t    size;
-+        /* IFF gmfn_foreign */
-+        domid_t foreign_domid;
-+    } u;
-     /* Source mapping space. */
- #define XENMAPSPACE_shared_info  0 /* shared info page */
-@@ -217,8 +221,7 @@ struct xen_add_to_physmap {
- #define XENMAPSPACE_gmfn         2 /* GMFN */
- #define XENMAPSPACE_gmfn_range   3 /* GMFN range */
- #define XENMAPSPACE_gmfn_foreign 4 /* GMFN from another guest */
--    uint16_t space;
--    domid_t foreign_domid; /* IFF gmfn_foreign */
-+    unsigned int space;
- #define XENMAPIDX_grant_table_status 0x80000000
--- 
-1.7.2.5
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1345633688-31684-2-git-send-email-stefano.stabellini@eu.citrix.com> b/test/corpus/<1345633688-31684-2-git-send-email-stefano.stabellini@eu.citrix.com>
deleted file mode 100644 (file)
index 5defa76..0000000
+++ /dev/null
@@ -1,157 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Aug 22 12:13:06 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 22 Aug 2012 12:13:06 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T48rs-0000xJ-OB
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 22 Aug 2012 12:13:06 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T48nv-0001IQ-0S; Wed, 22 Aug 2012 11:08:55 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1T48ns-0001HH-J1
-       for xen-devel@lists.xensource.com; Wed, 22 Aug 2012 11:08:52 +0000
-Received: from [85.158.138.51:16091] by server-5.bemta-3.messagelabs.com id
-       4C/42-08865-3CDB4305; Wed, 22 Aug 2012 11:08:51 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-15.tower-174.messagelabs.com!1345633727!25641644!3
-X-Originating-IP: [66.165.176.63]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyNzMzNjM=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 27504 invoked from network); 22 Aug 2012 11:08:50 -0000
-Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
-       by server-15.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
-       22 Aug 2012 11:08:50 -0000
-X-IronPort-AV: E=Sophos;i="4.77,808,1336363200"; d="scan'208";a="205885718"
-Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
-       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       22 Aug 2012 07:08:21 -0400
-Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
-       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
-       Wed, 22 Aug 2012 07:08:21 -0400
-Received: from kaball.uk.xensource.com ([10.80.2.59])  by
-       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
-       <stefano.stabellini@eu.citrix.com>)     id 1T48nH-0003lL-MW;
-       Wed, 22 Aug 2012 12:08:15 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-To: <xen-devel@lists.xensource.com>
-Date: Wed, 22 Aug 2012 12:08:04 +0100
-Message-ID: <1345633688-31684-2-git-send-email-stefano.stabellini@eu.citrix.com>
-X-Mailer: git-send-email 1.7.9.5
-In-Reply-To: <alpine.DEB.2.02.1208221159560.15568@kaball.uk.xensource.com>
-References: <alpine.DEB.2.02.1208221159560.15568@kaball.uk.xensource.com>
-MIME-Version: 1.0
-Cc: tim@xen.org, Ian.Campbell@citrix.com,
-       Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: [Xen-devel] [PATCH v4 2/6] xen: xen_ulong_t substitution
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-There is still an unwanted unsigned long in the xen public interface:
-replace it with xen_ulong_t.
-
-Also typedef xen_ulong_t to uint64_t on ARM.
-
-Changes in v2:
-
-- do not replace the unsigned long in x86 specific calls;
-- do not replace the unsigned long in multicall_entry;
-- add missing include "xen.h" in version.h;
-- use proper printf flag for xen_ulong_t.
-
-Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
----
- tools/python/xen/lowlevel/xc/xc.c |    2 +-
- xen/include/public/arch-arm.h     |    4 ++--
- xen/include/public/version.h      |    4 +++-
- 3 files changed, 6 insertions(+), 4 deletions(-)
-
-diff --git a/tools/python/xen/lowlevel/xc/xc.c b/tools/python/xen/lowlevel/xc/xc.c
-index 7c89756..e220f68 100644
---- a/tools/python/xen/lowlevel/xc/xc.c
-+++ b/tools/python/xen/lowlevel/xc/xc.c
-@@ -1439,7 +1439,7 @@ static PyObject *pyxc_xeninfo(XcObject *self)
-     if ( xc_version(self->xc_handle, XENVER_commandline, &xen_commandline) != 0 )
-         return pyxc_error_to_exception(self->xc_handle);
--    snprintf(str, sizeof(str), "virt_start=0x%lx", p_parms.virt_start);
-+    snprintf(str, sizeof(str), "virt_start=0x%"PRI_xen_ulong, p_parms.virt_start);
-     xen_pagesize = xc_version(self->xc_handle, XENVER_pagesize, NULL);
-     if (xen_pagesize < 0 )
-diff --git a/xen/include/public/arch-arm.h b/xen/include/public/arch-arm.h
-index 14ad0ab..2ae6548 100644
---- a/xen/include/public/arch-arm.h
-+++ b/xen/include/public/arch-arm.h
-@@ -122,8 +122,8 @@ typedef uint64_t xen_pfn_t;
- /* Only one. All other VCPUS must use VCPUOP_register_vcpu_info */
- #define XEN_LEGACY_MAX_VCPUS 1
--typedef uint32_t xen_ulong_t;
--#define PRI_xen_ulong PRIx32
-+typedef uint64_t xen_ulong_t;
-+#define PRI_xen_ulong PRIx64
- struct vcpu_guest_context {
- #define _VGCF_online                   0
-diff --git a/xen/include/public/version.h b/xen/include/public/version.h
-index 8742c2b..c7e6f8c 100644
---- a/xen/include/public/version.h
-+++ b/xen/include/public/version.h
-@@ -28,6 +28,8 @@
- #ifndef __XEN_PUBLIC_VERSION_H__
- #define __XEN_PUBLIC_VERSION_H__
-+#include "xen.h"
-+
- /* NB. All ops return zero on success, except XENVER_{version,pagesize} */
- /* arg == NULL; returns major:minor (16:16). */
-@@ -58,7 +60,7 @@ typedef char xen_changeset_info_t[64];
- #define XENVER_platform_parameters 5
- struct xen_platform_parameters {
--    unsigned long virt_start;
-+    xen_ulong_t virt_start;
- };
- typedef struct xen_platform_parameters xen_platform_parameters_t;
--- 
-1.7.2.5
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1345633688-31684-3-git-send-email-stefano.stabellini@eu.citrix.com> b/test/corpus/<1345633688-31684-3-git-send-email-stefano.stabellini@eu.citrix.com>
deleted file mode 100644 (file)
index 680195f..0000000
+++ /dev/null
@@ -1,112 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Aug 22 12:12:44 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 22 Aug 2012 12:12:44 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T48rX-0000w6-0b
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 22 Aug 2012 12:12:44 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T48ns-0001HP-5r; Wed, 22 Aug 2012 11:08:52 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1T48nq-0001Gy-N9
-       for xen-devel@lists.xensource.com; Wed, 22 Aug 2012 11:08:50 +0000
-Received: from [85.158.138.51:13918] by server-2.bemta-3.messagelabs.com id
-       A6/3E-09157-1CDB4305; Wed, 22 Aug 2012 11:08:49 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-15.tower-174.messagelabs.com!1345633727!25641644!1
-X-Originating-IP: [66.165.176.63]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyNzMzNjM=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 27313 invoked from network); 22 Aug 2012 11:08:49 -0000
-Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
-       by server-15.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
-       22 Aug 2012 11:08:49 -0000
-X-IronPort-AV: E=Sophos;i="4.77,808,1336363200"; d="scan'208";a="205885717"
-Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
-       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       22 Aug 2012 07:08:21 -0400
-Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
-       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
-       Wed, 22 Aug 2012 07:08:21 -0400
-Received: from kaball.uk.xensource.com ([10.80.2.59])  by
-       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
-       <stefano.stabellini@eu.citrix.com>)     id 1T48nH-0003lL-OK;
-       Wed, 22 Aug 2012 12:08:15 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-To: <xen-devel@lists.xensource.com>
-Date: Wed, 22 Aug 2012 12:08:05 +0100
-Message-ID: <1345633688-31684-3-git-send-email-stefano.stabellini@eu.citrix.com>
-X-Mailer: git-send-email 1.7.9.5
-In-Reply-To: <alpine.DEB.2.02.1208221159560.15568@kaball.uk.xensource.com>
-References: <alpine.DEB.2.02.1208221159560.15568@kaball.uk.xensource.com>
-MIME-Version: 1.0
-Cc: tim@xen.org, Ian.Campbell@citrix.com,
-       Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: [Xen-devel] [PATCH v4 3/6] xen: change the limit of nr_extents to
-       UINT_MAX >> MEMOP_EXTENT_SHIFT
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-Currently do_memory_op has a different maximum limit for nr_extents on
-32 bit and 64 bit.
-Change the limit to UINT_MAX >> MEMOP_EXTENT_SHIFT, so that it is the
-same in both cases.
-
-Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
----
- xen/common/memory.c |    2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/xen/common/memory.c b/xen/common/memory.c
-index 5d64cb6..7e58cc4 100644
---- a/xen/common/memory.c
-+++ b/xen/common/memory.c
-@@ -553,7 +553,7 @@ long do_memory_op(unsigned long cmd, XEN_GUEST_HANDLE(void) arg)
-             return start_extent;
-         /* Is size too large for us to encode a continuation? */
--        if ( reservation.nr_extents > (ULONG_MAX >> MEMOP_EXTENT_SHIFT) )
-+        if ( reservation.nr_extents > (UINT_MAX >> MEMOP_EXTENT_SHIFT) )
-             return start_extent;
-         if ( unlikely(start_extent >= reservation.nr_extents) )
--- 
-1.7.2.5
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1345633688-31684-4-git-send-email-stefano.stabellini@eu.citrix.com> b/test/corpus/<1345633688-31684-4-git-send-email-stefano.stabellini@eu.citrix.com>
deleted file mode 100644 (file)
index 8631018..0000000
+++ /dev/null
@@ -1,350 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Aug 22 12:12:57 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 22 Aug 2012 12:12:57 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T48ri-0000wg-BF
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 22 Aug 2012 12:12:56 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T48nZ-0001Dr-PG; Wed, 22 Aug 2012 11:08:33 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1T48nX-0001DK-Sl
-       for xen-devel@lists.xensource.com; Wed, 22 Aug 2012 11:08:32 +0000
-Received: from [85.158.143.99:48686] by server-1.bemta-4.messagelabs.com id
-       64/28-07754-FADB4305; Wed, 22 Aug 2012 11:08:31 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-15.tower-216.messagelabs.com!1345633707!27328660!2
-X-Originating-IP: [66.165.176.89]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNjU4OTQ=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 6278 invoked from network); 22 Aug 2012 11:08:30 -0000
-Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
-       by server-15.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
-       22 Aug 2012 11:08:30 -0000
-X-IronPort-AV: E=Sophos;i="4.77,808,1336363200"; d="scan'208";a="35423309"
-Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
-       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       22 Aug 2012 07:08:21 -0400
-Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
-       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
-       Wed, 22 Aug 2012 07:08:21 -0400
-Received: from kaball.uk.xensource.com ([10.80.2.59])  by
-       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
-       <stefano.stabellini@eu.citrix.com>)     id 1T48nH-0003lL-Ou;
-       Wed, 22 Aug 2012 12:08:15 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-To: <xen-devel@lists.xensource.com>
-Date: Wed, 22 Aug 2012 12:08:06 +0100
-Message-ID: <1345633688-31684-4-git-send-email-stefano.stabellini@eu.citrix.com>
-X-Mailer: git-send-email 1.7.9.5
-In-Reply-To: <alpine.DEB.2.02.1208221159560.15568@kaball.uk.xensource.com>
-References: <alpine.DEB.2.02.1208221159560.15568@kaball.uk.xensource.com>
-MIME-Version: 1.0
-Cc: tim@xen.org, Ian.Campbell@citrix.com,
-       Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: [Xen-devel] [PATCH v4 4/6] xen: introduce XEN_GUEST_HANDLE_PARAM
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-XEN_GUEST_HANDLE_PARAM is going to be used to distinguish guest pointers
-stored in memory from guest pointers as hypercall parameters.
-
-guest_handle_* macros default to XEN_GUEST_HANDLE_PARAM as return type.
-Two new guest_handle_to_param and guest_handle_from_param macros are
-introduced to do conversions.
-
-Changes in v2:
-
-- add 2 missing #define _XEN_GUEST_HANDLE_PARAM for the compilation of
-the compat code.
-
-Changes in v3:
-
-- move the guest_handle_cast change into this patch;
-- add a clear comment on top of guest_handle_cast;
-- also s/XEN_GUEST_HANDLE/XEN_GUEST_HANDLE_PARAM in
-  guest_handle_from_ptr and const_guest_handle_from_ptr;
-- introduce guest_handle_from_param and guest_handle_to_param.
-
-Changes in v4:
-
-- make both XEN_GUEST_HANDLE and XEN_GUEST_HANDLE_PARAM unions on ARM;
-- simplify set_xen_guest_handle_raw on ARM;
-- add type checking in guest_handle_to_param and guest_handle_from_param
-trivial.
-
-Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
----
- xen/include/asm-arm/guest_access.h |   32 ++++++++++++++++++++++++++++----
- xen/include/asm-x86/guest_access.h |   29 +++++++++++++++++++++++++----
- xen/include/public/arch-arm.h      |   26 ++++++++++++++++++++++----
- xen/include/public/arch-ia64.h     |    9 +++++++++
- xen/include/public/arch-x86/xen.h  |    9 +++++++++
- xen/include/xen/xencomm.h          |   22 +++++++++++++++++++++-
- 6 files changed, 114 insertions(+), 13 deletions(-)
-
-diff --git a/xen/include/asm-arm/guest_access.h b/xen/include/asm-arm/guest_access.h
-index 0fceae6..5686217 100644
---- a/xen/include/asm-arm/guest_access.h
-+++ b/xen/include/asm-arm/guest_access.h
-@@ -27,16 +27,40 @@ unsigned long raw_clear_guest(void *to, unsigned len);
- #define guest_handle_add_offset(hnd, nr) ((hnd).p += (nr))
- #define guest_handle_subtract_offset(hnd, nr) ((hnd).p -= (nr))
--/* Cast a guest handle to the specified type of handle. */
-+/* Cast a guest handle (either XEN_GUEST_HANDLE or XEN_GUEST_HANDLE_PARAM)
-+ * to the specified type of XEN_GUEST_HANDLE_PARAM. */
- #define guest_handle_cast(hnd, type) ({         \
-     type *_x = (hnd).p;                         \
--    (XEN_GUEST_HANDLE(type)) { _x };            \
-+    (XEN_GUEST_HANDLE_PARAM(type)) { _x };            \
-+})
-+
-+/* Cast a XEN_GUEST_HANDLE to XEN_GUEST_HANDLE_PARAM */
-+#define guest_handle_to_param(hnd, type) ({                  \
-+    typeof((hnd).p) _x = (hnd).p;                            \
-+    XEN_GUEST_HANDLE_PARAM(type) _y = { _x };                \
-+    /* type checking: make sure that the pointers inside     \
-+     * XEN_GUEST_HANDLE and XEN_GUEST_HANDLE_PARAM are of    \
-+     * the same type, then return hnd */                     \
-+    (void)(&_x == &_y.p);                                    \
-+    _y;                                                      \
-+})
-+
-+
-+/* Cast a XEN_GUEST_HANDLE_PARAM to XEN_GUEST_HANDLE */
-+#define guest_handle_from_param(hnd, type) ({               \
-+    typeof((hnd).p) _x = (hnd).p;                           \
-+    XEN_GUEST_HANDLE(type) _y = { _x };                     \
-+    /* type checking: make sure that the pointers inside    \
-+     * XEN_GUEST_HANDLE and XEN_GUEST_HANDLE_PARAM are of   \
-+     * the same type, then return hnd */                    \
-+    (void)(&_x == &_y.p);                                   \
-+    _y;                                                     \
- })
- #define guest_handle_from_ptr(ptr, type)        \
--    ((XEN_GUEST_HANDLE(type)) { (type *)ptr })
-+    ((XEN_GUEST_HANDLE_PARAM(type)) { (type *)ptr })
- #define const_guest_handle_from_ptr(ptr, type)  \
--    ((XEN_GUEST_HANDLE(const_##type)) { (const type *)ptr })
-+    ((XEN_GUEST_HANDLE_PARAM(const_##type)) { (const type *)ptr })
- /*
-  * Copy an array of objects to guest context via a guest handle,
-diff --git a/xen/include/asm-x86/guest_access.h b/xen/include/asm-x86/guest_access.h
-index 2b429c2..e67ed82 100644
---- a/xen/include/asm-x86/guest_access.h
-+++ b/xen/include/asm-x86/guest_access.h
-@@ -45,16 +45,37 @@
- #define guest_handle_add_offset(hnd, nr) ((hnd).p += (nr))
- #define guest_handle_subtract_offset(hnd, nr) ((hnd).p -= (nr))
--/* Cast a guest handle to the specified type of handle. */
-+/* Cast a guest handle (either XEN_GUEST_HANDLE or XEN_GUEST_HANDLE_PARAM)
-+ * to the specified type of XEN_GUEST_HANDLE_PARAM. */
- #define guest_handle_cast(hnd, type) ({         \
-     type *_x = (hnd).p;                         \
--    (XEN_GUEST_HANDLE(type)) { _x };            \
-+    (XEN_GUEST_HANDLE_PARAM(type)) { _x };            \
-+})
-+
-+/* Cast a XEN_GUEST_HANDLE to XEN_GUEST_HANDLE_PARAM */
-+#define guest_handle_to_param(hnd, type) ({                  \
-+    /* type checking: make sure that the pointers inside     \
-+     * XEN_GUEST_HANDLE and XEN_GUEST_HANDLE_PARAM are of    \
-+     * the same type, then return hnd */                     \
-+    (void)((typeof(&(hnd).p)) 0 ==                           \
-+        (typeof(&((XEN_GUEST_HANDLE_PARAM(type)) {}).p)) 0); \
-+    (hnd);                                                   \
-+})
-+
-+/* Cast a XEN_GUEST_HANDLE_PARAM to XEN_GUEST_HANDLE */
-+#define guest_handle_from_param(hnd, type) ({                \
-+    /* type checking: make sure that the pointers inside     \
-+     * XEN_GUEST_HANDLE and XEN_GUEST_HANDLE_PARAM are of    \
-+     * the same type, then return hnd */                     \
-+    (void)((typeof(&(hnd).p)) 0 ==                           \
-+        (typeof(&((XEN_GUEST_HANDLE_PARAM(type)) {}).p)) 0); \
-+    (hnd);                                                   \
- })
- #define guest_handle_from_ptr(ptr, type)        \
--    ((XEN_GUEST_HANDLE(type)) { (type *)ptr })
-+    ((XEN_GUEST_HANDLE_PARAM(type)) { (type *)ptr })
- #define const_guest_handle_from_ptr(ptr, type)  \
--    ((XEN_GUEST_HANDLE(const_##type)) { (const type *)ptr })
-+    ((XEN_GUEST_HANDLE_PARAM(const_##type)) { (const type *)ptr })
- /*
-  * Copy an array of objects to guest context via a guest handle,
-diff --git a/xen/include/public/arch-arm.h b/xen/include/public/arch-arm.h
-index 2ae6548..4c6d607 100644
---- a/xen/include/public/arch-arm.h
-+++ b/xen/include/public/arch-arm.h
-@@ -51,18 +51,36 @@
- #define XEN_HYPERCALL_TAG   0XEA1
-+#define uint64_aligned_t uint64_t __attribute__((aligned(8)))
- #ifndef __ASSEMBLY__
--#define ___DEFINE_XEN_GUEST_HANDLE(name, type) \
--    typedef struct { type *p; } __guest_handle_ ## name
-+#define ___DEFINE_XEN_GUEST_HANDLE(name, type)                  \
-+    typedef union { type *p; unsigned long q; }                 \
-+        __guest_handle_ ## name;                                \
-+    typedef union { type *p; uint64_aligned_t q; }              \
-+        __guest_handle_64_ ## name;
-+/*
-+ * XEN_GUEST_HANDLE represents a guest pointer, when passed as a field
-+ * in a struct in memory. On ARM is always 8 bytes sizes and 8 bytes
-+ * aligned.
-+ * XEN_GUEST_HANDLE_PARAM represent a guest pointer, when passed as an
-+ * hypercall argument. It is 4 bytes on aarch and 8 bytes on aarch64.
-+ */
- #define __DEFINE_XEN_GUEST_HANDLE(name, type) \
-     ___DEFINE_XEN_GUEST_HANDLE(name, type);   \
-     ___DEFINE_XEN_GUEST_HANDLE(const_##name, const type)
- #define DEFINE_XEN_GUEST_HANDLE(name)   __DEFINE_XEN_GUEST_HANDLE(name, name)
--#define __XEN_GUEST_HANDLE(name)        __guest_handle_ ## name
-+#define __XEN_GUEST_HANDLE(name)        __guest_handle_64_ ## name
- #define XEN_GUEST_HANDLE(name)          __XEN_GUEST_HANDLE(name)
--#define set_xen_guest_handle_raw(hnd, val)  do { (hnd).p = val; } while (0)
-+/* this is going to be changes on 64 bit */
-+#define XEN_GUEST_HANDLE_PARAM(name)    __guest_handle_ ## name
-+#define set_xen_guest_handle_raw(hnd, val)                  \
-+    do {                                                    \
-+        typeof(&(hnd)) t = &(hnd);                          \
-+        _t->q = 0;                                          \
-+        _t->p = val;                                        \
-+    } while ( 0 )
- #ifdef __XEN_TOOLS__
- #define get_xen_guest_handle(val, hnd)  do { val = (hnd).p; } while (0)
- #endif
-diff --git a/xen/include/public/arch-ia64.h b/xen/include/public/arch-ia64.h
-index c9da5d4..e4e9688 100644
---- a/xen/include/public/arch-ia64.h
-+++ b/xen/include/public/arch-ia64.h
-@@ -45,8 +45,17 @@
-     ___DEFINE_XEN_GUEST_HANDLE(name, type);   \
-     ___DEFINE_XEN_GUEST_HANDLE(const_##name, const type)
-+/*
-+ * XEN_GUEST_HANDLE represents a guest pointer, when passed as a field
-+ * in a struct in memory.
-+ * XEN_GUEST_HANDLE_PARAM represent a guest pointer, when passed as an
-+ * hypercall argument.
-+ * XEN_GUEST_HANDLE_PARAM and XEN_GUEST_HANDLE are the same on ia64 but
-+ * they might not be on other architectures.
-+ */
- #define DEFINE_XEN_GUEST_HANDLE(name)   __DEFINE_XEN_GUEST_HANDLE(name, name)
- #define XEN_GUEST_HANDLE(name)          __guest_handle_ ## name
-+#define XEN_GUEST_HANDLE_PARAM(name)    XEN_GUEST_HANDLE(name)
- #define XEN_GUEST_HANDLE_64(name)       XEN_GUEST_HANDLE(name)
- #define uint64_aligned_t                uint64_t
- #define set_xen_guest_handle_raw(hnd, val)  do { (hnd).p = val; } while (0)
-diff --git a/xen/include/public/arch-x86/xen.h b/xen/include/public/arch-x86/xen.h
-index 1c186d7..0e10260 100644
---- a/xen/include/public/arch-x86/xen.h
-+++ b/xen/include/public/arch-x86/xen.h
-@@ -38,12 +38,21 @@
-     typedef type * __guest_handle_ ## name
- #endif
-+/*
-+ * XEN_GUEST_HANDLE represents a guest pointer, when passed as a field
-+ * in a struct in memory.
-+ * XEN_GUEST_HANDLE_PARAM represent a guest pointer, when passed as an
-+ * hypercall argument.
-+ * XEN_GUEST_HANDLE_PARAM and XEN_GUEST_HANDLE are the same on X86 but
-+ * they might not be on other architectures.
-+ */
- #define __DEFINE_XEN_GUEST_HANDLE(name, type) \
-     ___DEFINE_XEN_GUEST_HANDLE(name, type);   \
-     ___DEFINE_XEN_GUEST_HANDLE(const_##name, const type)
- #define DEFINE_XEN_GUEST_HANDLE(name)   __DEFINE_XEN_GUEST_HANDLE(name, name)
- #define __XEN_GUEST_HANDLE(name)        __guest_handle_ ## name
- #define XEN_GUEST_HANDLE(name)          __XEN_GUEST_HANDLE(name)
-+#define XEN_GUEST_HANDLE_PARAM(name)    XEN_GUEST_HANDLE(name)
- #define set_xen_guest_handle_raw(hnd, val)  do { (hnd).p = val; } while (0)
- #ifdef __XEN_TOOLS__
- #define get_xen_guest_handle(val, hnd)  do { val = (hnd).p; } while (0)
-diff --git a/xen/include/xen/xencomm.h b/xen/include/xen/xencomm.h
-index 730da7c..3426b8a 100644
---- a/xen/include/xen/xencomm.h
-+++ b/xen/include/xen/xencomm.h
-@@ -66,11 +66,31 @@ static inline unsigned long xencomm_inline_addr(const void *handle)
- /* Cast a guest handle to the specified type of handle. */
- #define guest_handle_cast(hnd, type) ({         \
-     type *_x = (hnd).p;                         \
--    XEN_GUEST_HANDLE(type) _y;                  \
-+    XEN_GUEST_HANDLE_PARAM(type) _y;            \
-     set_xen_guest_handle(_y, _x);               \
-     _y;                                         \
- })
-+/* Cast a XEN_GUEST_HANDLE to XEN_GUEST_HANDLE_PARAM */
-+#define guest_handle_to_param(hnd, type) ({                  \
-+    /* type checking: make sure that the pointers inside     \
-+     * XEN_GUEST_HANDLE and XEN_GUEST_HANDLE_PARAM are of    \
-+     * the same type, then return hnd */                     \
-+    (void)((typeof(&(hnd).p)) 0 ==                           \
-+        (typeof(&((XEN_GUEST_HANDLE_PARAM(type)) {}).p)) 0); \
-+    (hnd);                                                   \
-+})
-+
-+/* Cast a XEN_GUEST_HANDLE_PARAM to XEN_GUEST_HANDLE */
-+#define guest_handle_from_param(hnd, type) ({                \
-+    /* type checking: make sure that the pointers inside     \
-+     * XEN_GUEST_HANDLE and XEN_GUEST_HANDLE_PARAM are of    \
-+     * the same type, then return hnd */                     \
-+    (void)((typeof(&(hnd).p)) 0 ==                           \
-+        (typeof(&((XEN_GUEST_HANDLE_PARAM(type)) {}).p)) 0); \
-+    (hnd);                                                   \
-+})
-+
- /* Since we run in real mode, we can safely access all addresses. That also
-  * means our __routines are identical to our "normal" routines. */
- #define guest_handle_okay(hnd, nr) 1
--- 
-1.7.2.5
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1345633688-31684-5-git-send-email-stefano.stabellini@eu.citrix.com> b/test/corpus/<1345633688-31684-5-git-send-email-stefano.stabellini@eu.citrix.com>
deleted file mode 100644 (file)
index 60a1eb4..0000000
+++ /dev/null
@@ -1,1771 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Aug 22 12:13:44 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 22 Aug 2012 12:13:44 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T48sP-0000xr-Cq
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 22 Aug 2012 12:13:44 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T48nv-0001Iz-JZ; Wed, 22 Aug 2012 11:08:55 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1T48nt-0001Hq-Qq
-       for xen-devel@lists.xensource.com; Wed, 22 Aug 2012 11:08:54 +0000
-Received: from [85.158.139.83:49007] by server-4.bemta-5.messagelabs.com id
-       B4/45-12386-4CDB4305; Wed, 22 Aug 2012 11:08:52 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-5.tower-182.messagelabs.com!1345633729!29499859!1
-X-Originating-IP: [66.165.176.63]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyNzMzNjM=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 32216 invoked from network); 22 Aug 2012 11:08:51 -0000
-Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
-       by server-5.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
-       22 Aug 2012 11:08:51 -0000
-X-IronPort-AV: E=Sophos;i="4.77,808,1336363200"; d="scan'208";a="205885720"
-Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
-       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       22 Aug 2012 07:08:22 -0400
-Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
-       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
-       Wed, 22 Aug 2012 07:08:21 -0400
-Received: from kaball.uk.xensource.com ([10.80.2.59])  by
-       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
-       <stefano.stabellini@eu.citrix.com>)     id 1T48nH-0003lL-Qe;
-       Wed, 22 Aug 2012 12:08:15 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-To: <xen-devel@lists.xensource.com>
-Date: Wed, 22 Aug 2012 12:08:07 +0100
-Message-ID: <1345633688-31684-5-git-send-email-stefano.stabellini@eu.citrix.com>
-X-Mailer: git-send-email 1.7.9.5
-In-Reply-To: <alpine.DEB.2.02.1208221159560.15568@kaball.uk.xensource.com>
-References: <alpine.DEB.2.02.1208221159560.15568@kaball.uk.xensource.com>
-MIME-Version: 1.0
-Cc: tim@xen.org, Ian.Campbell@citrix.com,
-       Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: [Xen-devel] [PATCH v4 5/6] xen: replace XEN_GUEST_HANDLE with
-       XEN_GUEST_HANDLE_PARAM when appropriate
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-Note: these changes don't make any difference on x86 and ia64.
-
-
-Replace XEN_GUEST_HANDLE with XEN_GUEST_HANDLE_PARAM when it is used as
-an hypercall argument.
-
-Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
----
- xen/arch/arm/domain.c             |    2 +-
- xen/arch/arm/domctl.c             |    2 +-
- xen/arch/arm/hvm.c                |    2 +-
- xen/arch/arm/mm.c                 |    2 +-
- xen/arch/arm/physdev.c            |    2 +-
- xen/arch/arm/sysctl.c             |    2 +-
- xen/arch/x86/compat.c             |    2 +-
- xen/arch/x86/cpu/mcheck/mce.c     |    2 +-
- xen/arch/x86/domain.c             |    2 +-
- xen/arch/x86/domctl.c             |    2 +-
- xen/arch/x86/efi/runtime.c        |    2 +-
- xen/arch/x86/hvm/hvm.c            |   26 +++++++++---------
- xen/arch/x86/microcode.c          |    2 +-
- xen/arch/x86/mm.c                 |   14 +++++-----
- xen/arch/x86/mm/hap/hap.c         |    2 +-
- xen/arch/x86/mm/mem_event.c       |    2 +-
- xen/arch/x86/mm/paging.c          |    2 +-
- xen/arch/x86/mm/shadow/common.c   |    2 +-
- xen/arch/x86/oprofile/xenoprof.c  |    6 ++--
- xen/arch/x86/physdev.c            |    2 +-
- xen/arch/x86/platform_hypercall.c |    2 +-
- xen/arch/x86/sysctl.c             |    2 +-
- xen/arch/x86/traps.c              |    2 +-
- xen/arch/x86/x86_32/mm.c          |    2 +-
- xen/arch/x86/x86_32/traps.c       |    2 +-
- xen/arch/x86/x86_64/compat/mm.c   |   10 +++---
- xen/arch/x86/x86_64/domain.c      |    2 +-
- xen/arch/x86/x86_64/mm.c          |    2 +-
- xen/arch/x86/x86_64/traps.c       |    2 +-
- xen/common/compat/domain.c        |    2 +-
- xen/common/compat/grant_table.c   |    8 +++---
- xen/common/compat/memory.c        |    4 +-
- xen/common/domain.c               |    2 +-
- xen/common/domctl.c               |    2 +-
- xen/common/event_channel.c        |    2 +-
- xen/common/grant_table.c          |   36 +++++++++++++-------------
- xen/common/kernel.c               |    4 +-
- xen/common/kexec.c                |   16 +++++-----
- xen/common/memory.c               |    4 +-
- xen/common/multicall.c            |    2 +-
- xen/common/schedule.c             |    2 +-
- xen/common/sysctl.c               |    2 +-
- xen/common/xenoprof.c             |    8 +++---
- xen/drivers/acpi/pmstat.c         |    2 +-
- xen/drivers/char/console.c        |    6 ++--
- xen/drivers/passthrough/iommu.c   |    2 +-
- xen/include/asm-arm/hypercall.h   |    2 +-
- xen/include/asm-arm/mm.h          |    2 +-
- xen/include/asm-x86/hap.h         |    2 +-
- xen/include/asm-x86/hypercall.h   |   24 ++++++++--------
- xen/include/asm-x86/mem_event.h   |    2 +-
- xen/include/asm-x86/mm.h          |    8 +++---
- xen/include/asm-x86/paging.h      |    2 +-
- xen/include/asm-x86/processor.h   |    2 +-
- xen/include/asm-x86/shadow.h      |    2 +-
- xen/include/asm-x86/xenoprof.h    |    6 ++--
- xen/include/xen/acpi.h            |    4 +-
- xen/include/xen/hypercall.h       |   52 ++++++++++++++++++------------------
- xen/include/xen/iommu.h           |    2 +-
- xen/include/xen/tmem_xen.h        |    2 +-
- xen/include/xsm/xsm.h             |    4 +-
- xen/xsm/dummy.c                   |    2 +-
- xen/xsm/flask/flask_op.c          |    4 +-
- xen/xsm/flask/hooks.c             |    2 +-
- xen/xsm/xsm_core.c                |    2 +-
- 65 files changed, 168 insertions(+), 168 deletions(-)
-
-diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
-index ee58d68..07b50e2 100644
---- a/xen/arch/arm/domain.c
-+++ b/xen/arch/arm/domain.c
-@@ -515,7 +515,7 @@ void arch_dump_domain_info(struct domain *d)
- {
- }
--long arch_do_vcpu_op(int cmd, struct vcpu *v, XEN_GUEST_HANDLE(void) arg)
-+long arch_do_vcpu_op(int cmd, struct vcpu *v, XEN_GUEST_HANDLE_PARAM(void) arg)
- {
-     return -ENOSYS;
- }
-diff --git a/xen/arch/arm/domctl.c b/xen/arch/arm/domctl.c
-index 1a5f79f..cf16791 100644
---- a/xen/arch/arm/domctl.c
-+++ b/xen/arch/arm/domctl.c
-@@ -11,7 +11,7 @@
- #include <public/domctl.h>
- long arch_do_domctl(struct xen_domctl *domctl,
--                    XEN_GUEST_HANDLE(xen_domctl_t) u_domctl)
-+                    XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl)
- {
-     return -ENOSYS;
- }
-diff --git a/xen/arch/arm/hvm.c b/xen/arch/arm/hvm.c
-index c11378d..40f519e 100644
---- a/xen/arch/arm/hvm.c
-+++ b/xen/arch/arm/hvm.c
-@@ -11,7 +11,7 @@
- #include <asm/hypercall.h>
--long do_hvm_op(unsigned long op, XEN_GUEST_HANDLE(void) arg)
-+long do_hvm_op(unsigned long op, XEN_GUEST_HANDLE_PARAM(void) arg)
- {
-     long rc = 0;
-diff --git a/xen/arch/arm/mm.c b/xen/arch/arm/mm.c
-index 2400e1c..3e8b6cc 100644
---- a/xen/arch/arm/mm.c
-+++ b/xen/arch/arm/mm.c
-@@ -541,7 +541,7 @@ static int xenmem_add_to_physmap(struct domain *d,
-     return xenmem_add_to_physmap_once(d, xatp);
- }
--long arch_memory_op(int op, XEN_GUEST_HANDLE(void) arg)
-+long arch_memory_op(int op, XEN_GUEST_HANDLE_PARAM(void) arg)
- {
-     int rc;
-diff --git a/xen/arch/arm/physdev.c b/xen/arch/arm/physdev.c
-index bcf4337..0801e8c 100644
---- a/xen/arch/arm/physdev.c
-+++ b/xen/arch/arm/physdev.c
-@@ -11,7 +11,7 @@
- #include <asm/hypercall.h>
--int do_physdev_op(int cmd, XEN_GUEST_HANDLE(void) arg)
-+int do_physdev_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
- {
-     printk("%s %d cmd=%d: not implemented yet\n", __func__, __LINE__, cmd);
-     return -ENOSYS;
-diff --git a/xen/arch/arm/sysctl.c b/xen/arch/arm/sysctl.c
-index e8e1c0d..a286abe 100644
---- a/xen/arch/arm/sysctl.c
-+++ b/xen/arch/arm/sysctl.c
-@@ -13,7 +13,7 @@
- #include <public/sysctl.h>
- long arch_do_sysctl(struct xen_sysctl *sysctl,
--                    XEN_GUEST_HANDLE(xen_sysctl_t) u_sysctl)
-+                    XEN_GUEST_HANDLE_PARAM(xen_sysctl_t) u_sysctl)
- {
-     return -ENOSYS;
- }
-diff --git a/xen/arch/x86/compat.c b/xen/arch/x86/compat.c
-index a4fda06..2d05867 100644
---- a/xen/arch/x86/compat.c
-+++ b/xen/arch/x86/compat.c
-@@ -27,7 +27,7 @@ ret_t do_physdev_op_compat(XEN_GUEST_HANDLE(physdev_op_t) uop)
- #ifndef COMPAT
- /* Legacy hypercall (as of 0x00030202). */
--long do_event_channel_op_compat(XEN_GUEST_HANDLE(evtchn_op_t) uop)
-+long do_event_channel_op_compat(XEN_GUEST_HANDLE_PARAM(evtchn_op_t) uop)
- {
-     struct evtchn_op op;
-diff --git a/xen/arch/x86/cpu/mcheck/mce.c b/xen/arch/x86/cpu/mcheck/mce.c
-index a89df6d..0f122b3 100644
---- a/xen/arch/x86/cpu/mcheck/mce.c
-+++ b/xen/arch/x86/cpu/mcheck/mce.c
-@@ -1357,7 +1357,7 @@ CHECK_mcinfo_recovery;
- #endif
- /* Machine Check Architecture Hypercall */
--long do_mca(XEN_GUEST_HANDLE(xen_mc_t) u_xen_mc)
-+long do_mca(XEN_GUEST_HANDLE_PARAM(xen_mc_t) u_xen_mc)
- {
-     long ret = 0;
-     struct xen_mc curop, *op = &curop;
-diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c
-index 5bba4b9..13ff776 100644
---- a/xen/arch/x86/domain.c
-+++ b/xen/arch/x86/domain.c
-@@ -1138,7 +1138,7 @@ map_vcpu_info(struct vcpu *v, unsigned long gfn, unsigned offset)
- long
- arch_do_vcpu_op(
--    int cmd, struct vcpu *v, XEN_GUEST_HANDLE(void) arg)
-+    int cmd, struct vcpu *v, XEN_GUEST_HANDLE_PARAM(void) arg)
- {
-     long rc = 0;
-diff --git a/xen/arch/x86/domctl.c b/xen/arch/x86/domctl.c
-index 135ea6e..663bfe4 100644
---- a/xen/arch/x86/domctl.c
-+++ b/xen/arch/x86/domctl.c
-@@ -48,7 +48,7 @@ static int gdbsx_guest_mem_io(
- long arch_do_domctl(
-     struct xen_domctl *domctl,
--    XEN_GUEST_HANDLE(xen_domctl_t) u_domctl)
-+    XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl)
- {
-     long ret = 0;
-diff --git a/xen/arch/x86/efi/runtime.c b/xen/arch/x86/efi/runtime.c
-index 1dbe2db..b2ff495 100644
---- a/xen/arch/x86/efi/runtime.c
-+++ b/xen/arch/x86/efi/runtime.c
-@@ -184,7 +184,7 @@ int efi_get_info(uint32_t idx, union xenpf_efi_info *info)
-     return 0;
- }
--static long gwstrlen(XEN_GUEST_HANDLE(CHAR16) str)
-+static long gwstrlen(XEN_GUEST_HANDLE_PARAM(CHAR16) str)
- {
-     unsigned long len;
-diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
-index 7f8a025c..e2bf831 100644
---- a/xen/arch/x86/hvm/hvm.c
-+++ b/xen/arch/x86/hvm/hvm.c
-@@ -3047,14 +3047,14 @@ static int grant_table_op_is_allowed(unsigned int cmd)
- }
- static long hvm_grant_table_op(
--    unsigned int cmd, XEN_GUEST_HANDLE(void) uop, unsigned int count)
-+    unsigned int cmd, XEN_GUEST_HANDLE_PARAM(void) uop, unsigned int count)
- {
-     if ( !grant_table_op_is_allowed(cmd) )
-         return -ENOSYS; /* all other commands need auditing */
-     return do_grant_table_op(cmd, uop, count);
- }
--static long hvm_memory_op(int cmd, XEN_GUEST_HANDLE(void) arg)
-+static long hvm_memory_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
- {
-     long rc;
-@@ -3072,7 +3072,7 @@ static long hvm_memory_op(int cmd, XEN_GUEST_HANDLE(void) arg)
-     return do_memory_op(cmd, arg);
- }
--static long hvm_physdev_op(int cmd, XEN_GUEST_HANDLE(void) arg)
-+static long hvm_physdev_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
- {
-     switch ( cmd )
-     {
-@@ -3088,7 +3088,7 @@ static long hvm_physdev_op(int cmd, XEN_GUEST_HANDLE(void) arg)
- }
- static long hvm_vcpu_op(
--    int cmd, int vcpuid, XEN_GUEST_HANDLE(void) arg)
-+    int cmd, int vcpuid, XEN_GUEST_HANDLE_PARAM(void) arg)
- {
-     long rc;
-@@ -3137,7 +3137,7 @@ static hvm_hypercall_t *hvm_hypercall32_table[NR_hypercalls] = {
- #else /* defined(__x86_64__) */
- static long hvm_grant_table_op_compat32(unsigned int cmd,
--                                        XEN_GUEST_HANDLE(void) uop,
-+                                        XEN_GUEST_HANDLE_PARAM(void) uop,
-                                         unsigned int count)
- {
-     if ( !grant_table_op_is_allowed(cmd) )
-@@ -3145,7 +3145,7 @@ static long hvm_grant_table_op_compat32(unsigned int cmd,
-     return compat_grant_table_op(cmd, uop, count);
- }
--static long hvm_memory_op_compat32(int cmd, XEN_GUEST_HANDLE(void) arg)
-+static long hvm_memory_op_compat32(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
- {
-     int rc;
-@@ -3164,7 +3164,7 @@ static long hvm_memory_op_compat32(int cmd, XEN_GUEST_HANDLE(void) arg)
- }
- static long hvm_vcpu_op_compat32(
--    int cmd, int vcpuid, XEN_GUEST_HANDLE(void) arg)
-+    int cmd, int vcpuid, XEN_GUEST_HANDLE_PARAM(void) arg)
- {
-     long rc;
-@@ -3188,7 +3188,7 @@ static long hvm_vcpu_op_compat32(
- }
- static long hvm_physdev_op_compat32(
--    int cmd, XEN_GUEST_HANDLE(void) arg)
-+    int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
- {
-     switch ( cmd )
-     {
-@@ -3360,7 +3360,7 @@ void hvm_hypercall_page_initialise(struct domain *d,
- }
- static int hvmop_set_pci_intx_level(
--    XEN_GUEST_HANDLE(xen_hvm_set_pci_intx_level_t) uop)
-+    XEN_GUEST_HANDLE_PARAM(xen_hvm_set_pci_intx_level_t) uop)
- {
-     struct xen_hvm_set_pci_intx_level op;
-     struct domain *d;
-@@ -3525,7 +3525,7 @@ static void hvm_s3_resume(struct domain *d)
- }
- static int hvmop_set_isa_irq_level(
--    XEN_GUEST_HANDLE(xen_hvm_set_isa_irq_level_t) uop)
-+    XEN_GUEST_HANDLE_PARAM(xen_hvm_set_isa_irq_level_t) uop)
- {
-     struct xen_hvm_set_isa_irq_level op;
-     struct domain *d;
-@@ -3569,7 +3569,7 @@ static int hvmop_set_isa_irq_level(
- }
- static int hvmop_set_pci_link_route(
--    XEN_GUEST_HANDLE(xen_hvm_set_pci_link_route_t) uop)
-+    XEN_GUEST_HANDLE_PARAM(xen_hvm_set_pci_link_route_t) uop)
- {
-     struct xen_hvm_set_pci_link_route op;
-     struct domain *d;
-@@ -3602,7 +3602,7 @@ static int hvmop_set_pci_link_route(
- }
- static int hvmop_inject_msi(
--    XEN_GUEST_HANDLE(xen_hvm_inject_msi_t) uop)
-+    XEN_GUEST_HANDLE_PARAM(xen_hvm_inject_msi_t) uop)
- {
-     struct xen_hvm_inject_msi op;
-     struct domain *d;
-@@ -3686,7 +3686,7 @@ static int hvm_replace_event_channel(struct vcpu *v, domid_t remote_domid,
-     return 0;
- }
--long do_hvm_op(unsigned long op, XEN_GUEST_HANDLE(void) arg)
-+long do_hvm_op(unsigned long op, XEN_GUEST_HANDLE_PARAM(void) arg)
- {
-     struct domain *curr_d = current->domain;
-diff --git a/xen/arch/x86/microcode.c b/xen/arch/x86/microcode.c
-index bdda3f5..1477481 100644
---- a/xen/arch/x86/microcode.c
-+++ b/xen/arch/x86/microcode.c
-@@ -192,7 +192,7 @@ static long do_microcode_update(void *_info)
-     return error;
- }
--int microcode_update(XEN_GUEST_HANDLE(const_void) buf, unsigned long len)
-+int microcode_update(XEN_GUEST_HANDLE_PARAM(const_void) buf, unsigned long len)
- {
-     int ret;
-     struct microcode_info *info;
-diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c
-index f5c704e..4d72700 100644
---- a/xen/arch/x86/mm.c
-+++ b/xen/arch/x86/mm.c
-@@ -2914,7 +2914,7 @@ static void put_pg_owner(struct domain *pg_owner)
- }
- static inline int vcpumask_to_pcpumask(
--    struct domain *d, XEN_GUEST_HANDLE(const_void) bmap, cpumask_t *pmask)
-+    struct domain *d, XEN_GUEST_HANDLE_PARAM(const_void) bmap, cpumask_t *pmask)
- {
-     unsigned int vcpu_id, vcpu_bias, offs;
-     unsigned long vmask;
-@@ -2974,9 +2974,9 @@ static inline void fixunmap_domain_page(const void *ptr)
- #endif
- int do_mmuext_op(
--    XEN_GUEST_HANDLE(mmuext_op_t) uops,
-+    XEN_GUEST_HANDLE_PARAM(mmuext_op_t) uops,
-     unsigned int count,
--    XEN_GUEST_HANDLE(uint) pdone,
-+    XEN_GUEST_HANDLE_PARAM(uint) pdone,
-     unsigned int foreigndom)
- {
-     struct mmuext_op op;
-@@ -3438,9 +3438,9 @@ int do_mmuext_op(
- }
- int do_mmu_update(
--    XEN_GUEST_HANDLE(mmu_update_t) ureqs,
-+    XEN_GUEST_HANDLE_PARAM(mmu_update_t) ureqs,
-     unsigned int count,
--    XEN_GUEST_HANDLE(uint) pdone,
-+    XEN_GUEST_HANDLE_PARAM(uint) pdone,
-     unsigned int foreigndom)
- {
-     struct mmu_update req;
-@@ -4387,7 +4387,7 @@ long set_gdt(struct vcpu *v,
- }
--long do_set_gdt(XEN_GUEST_HANDLE(ulong) frame_list, unsigned int entries)
-+long do_set_gdt(XEN_GUEST_HANDLE_PARAM(ulong) frame_list, unsigned int entries)
- {
-     int nr_pages = (entries + 511) / 512;
-     unsigned long frames[16];
-@@ -4661,7 +4661,7 @@ static int xenmem_add_to_physmap(struct domain *d,
-     return xenmem_add_to_physmap_once(d, xatp);
- }
--long arch_memory_op(int op, XEN_GUEST_HANDLE(void) arg)
-+long arch_memory_op(int op, XEN_GUEST_HANDLE_PARAM(void) arg)
- {
-     int rc;
-diff --git a/xen/arch/x86/mm/hap/hap.c b/xen/arch/x86/mm/hap/hap.c
-index 13b4be2..67e48a3 100644
---- a/xen/arch/x86/mm/hap/hap.c
-+++ b/xen/arch/x86/mm/hap/hap.c
-@@ -690,7 +690,7 @@ void hap_teardown(struct domain *d)
- }
- int hap_domctl(struct domain *d, xen_domctl_shadow_op_t *sc,
--               XEN_GUEST_HANDLE(void) u_domctl)
-+               XEN_GUEST_HANDLE_PARAM(void) u_domctl)
- {
-     int rc, preempted = 0;
-diff --git a/xen/arch/x86/mm/mem_event.c b/xen/arch/x86/mm/mem_event.c
-index d728889..d3dac14 100644
---- a/xen/arch/x86/mm/mem_event.c
-+++ b/xen/arch/x86/mm/mem_event.c
-@@ -512,7 +512,7 @@ void mem_event_cleanup(struct domain *d)
- }
- int mem_event_domctl(struct domain *d, xen_domctl_mem_event_op_t *mec,
--                     XEN_GUEST_HANDLE(void) u_domctl)
-+                     XEN_GUEST_HANDLE_PARAM(void) u_domctl)
- {
-     int rc;
-diff --git a/xen/arch/x86/mm/paging.c b/xen/arch/x86/mm/paging.c
-index ca879f9..ea44e39 100644
---- a/xen/arch/x86/mm/paging.c
-+++ b/xen/arch/x86/mm/paging.c
-@@ -654,7 +654,7 @@ void paging_vcpu_init(struct vcpu *v)
- int paging_domctl(struct domain *d, xen_domctl_shadow_op_t *sc,
--                  XEN_GUEST_HANDLE(void) u_domctl)
-+                  XEN_GUEST_HANDLE_PARAM(void) u_domctl)
- {
-     int rc;
-diff --git a/xen/arch/x86/mm/shadow/common.c b/xen/arch/x86/mm/shadow/common.c
-index dc245be..bd47f03 100644
---- a/xen/arch/x86/mm/shadow/common.c
-+++ b/xen/arch/x86/mm/shadow/common.c
-@@ -3786,7 +3786,7 @@ out:
- int shadow_domctl(struct domain *d, 
-                   xen_domctl_shadow_op_t *sc,
--                  XEN_GUEST_HANDLE(void) u_domctl)
-+                  XEN_GUEST_HANDLE_PARAM(void) u_domctl)
- {
-     int rc, preempted = 0;
-diff --git a/xen/arch/x86/oprofile/xenoprof.c b/xen/arch/x86/oprofile/xenoprof.c
-index 71f00ef..5d286a2 100644
---- a/xen/arch/x86/oprofile/xenoprof.c
-+++ b/xen/arch/x86/oprofile/xenoprof.c
-@@ -19,7 +19,7 @@
- #include "op_counter.h"
--int xenoprof_arch_counter(XEN_GUEST_HANDLE(void) arg)
-+int xenoprof_arch_counter(XEN_GUEST_HANDLE_PARAM(void) arg)
- {
-     struct xenoprof_counter counter;
-@@ -39,7 +39,7 @@ int xenoprof_arch_counter(XEN_GUEST_HANDLE(void) arg)
-     return 0;
- }
--int xenoprof_arch_ibs_counter(XEN_GUEST_HANDLE(void) arg)
-+int xenoprof_arch_ibs_counter(XEN_GUEST_HANDLE_PARAM(void) arg)
- {
-     struct xenoprof_ibs_counter ibs_counter;
-@@ -57,7 +57,7 @@ int xenoprof_arch_ibs_counter(XEN_GUEST_HANDLE(void) arg)
- }
- #ifdef CONFIG_COMPAT
--int compat_oprof_arch_counter(XEN_GUEST_HANDLE(void) arg)
-+int compat_oprof_arch_counter(XEN_GUEST_HANDLE_PARAM(void) arg)
- {
-     struct compat_oprof_counter counter;
-diff --git a/xen/arch/x86/physdev.c b/xen/arch/x86/physdev.c
-index b0458fd..b6474ef 100644
---- a/xen/arch/x86/physdev.c
-+++ b/xen/arch/x86/physdev.c
-@@ -255,7 +255,7 @@ int physdev_unmap_pirq(domid_t domid, int pirq)
- }
- #endif /* COMPAT */
--ret_t do_physdev_op(int cmd, XEN_GUEST_HANDLE(void) arg)
-+ret_t do_physdev_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
- {
-     int irq;
-     ret_t ret;
-diff --git a/xen/arch/x86/platform_hypercall.c b/xen/arch/x86/platform_hypercall.c
-index 88880b0..a32e0a2 100644
---- a/xen/arch/x86/platform_hypercall.c
-+++ b/xen/arch/x86/platform_hypercall.c
-@@ -60,7 +60,7 @@ long cpu_down_helper(void *data);
- long core_parking_helper(void *data);
- uint32_t get_cur_idle_nums(void);
--ret_t do_platform_op(XEN_GUEST_HANDLE(xen_platform_op_t) u_xenpf_op)
-+ret_t do_platform_op(XEN_GUEST_HANDLE_PARAM(xen_platform_op_t) u_xenpf_op)
- {
-     ret_t ret = 0;
-     struct xen_platform_op curop, *op = &curop;
-diff --git a/xen/arch/x86/sysctl.c b/xen/arch/x86/sysctl.c
-index 379f071..b84dd34 100644
---- a/xen/arch/x86/sysctl.c
-+++ b/xen/arch/x86/sysctl.c
-@@ -58,7 +58,7 @@ long cpu_down_helper(void *data)
- }
- long arch_do_sysctl(
--    struct xen_sysctl *sysctl, XEN_GUEST_HANDLE(xen_sysctl_t) u_sysctl)
-+    struct xen_sysctl *sysctl, XEN_GUEST_HANDLE_PARAM(xen_sysctl_t) u_sysctl)
- {
-     long ret = 0;
-diff --git a/xen/arch/x86/traps.c b/xen/arch/x86/traps.c
-index 767be86..281d9e7 100644
---- a/xen/arch/x86/traps.c
-+++ b/xen/arch/x86/traps.c
-@@ -3700,7 +3700,7 @@ int send_guest_trap(struct domain *d, uint16_t vcpuid, unsigned int trap_nr)
- }
--long do_set_trap_table(XEN_GUEST_HANDLE(const_trap_info_t) traps)
-+long do_set_trap_table(XEN_GUEST_HANDLE_PARAM(const_trap_info_t) traps)
- {
-     struct trap_info cur;
-     struct vcpu *curr = current;
-diff --git a/xen/arch/x86/x86_32/mm.c b/xen/arch/x86/x86_32/mm.c
-index 37efa3c..f6448fb 100644
---- a/xen/arch/x86/x86_32/mm.c
-+++ b/xen/arch/x86/x86_32/mm.c
-@@ -203,7 +203,7 @@ void __init subarch_init_memory(void)
-     }
- }
--long subarch_memory_op(int op, XEN_GUEST_HANDLE(void) arg)
-+long subarch_memory_op(int op, XEN_GUEST_HANDLE_PARAM(void) arg)
- {
-     struct xen_machphys_mfn_list xmml;
-     unsigned long mfn, last_mfn;
-diff --git a/xen/arch/x86/x86_32/traps.c b/xen/arch/x86/x86_32/traps.c
-index 8f68808..0c7c860 100644
---- a/xen/arch/x86/x86_32/traps.c
-+++ b/xen/arch/x86/x86_32/traps.c
-@@ -492,7 +492,7 @@ static long unregister_guest_callback(struct callback_unregister *unreg)
- }
--long do_callback_op(int cmd, XEN_GUEST_HANDLE(const_void) arg)
-+long do_callback_op(int cmd, XEN_GUEST_HANDLE_PARAM(const_void) arg)
- {
-     long ret;
-diff --git a/xen/arch/x86/x86_64/compat/mm.c b/xen/arch/x86/x86_64/compat/mm.c
-index 5bcd2fd..1de93b7 100644
---- a/xen/arch/x86/x86_64/compat/mm.c
-+++ b/xen/arch/x86/x86_64/compat/mm.c
-@@ -5,7 +5,7 @@
- #include <asm/mem_event.h>
- #include <asm/mem_sharing.h>
--int compat_set_gdt(XEN_GUEST_HANDLE(uint) frame_list, unsigned int entries)
-+int compat_set_gdt(XEN_GUEST_HANDLE_PARAM(uint) frame_list, unsigned int entries)
- {
-     unsigned int i, nr_pages = (entries + 511) / 512;
-     unsigned long frames[16];
-@@ -44,7 +44,7 @@ int compat_update_descriptor(u32 pa_lo, u32 pa_hi, u32 desc_lo, u32 desc_hi)
-                                 desc_lo | ((u64)desc_hi << 32));
- }
--int compat_arch_memory_op(int op, XEN_GUEST_HANDLE(void) arg)
-+int compat_arch_memory_op(int op, XEN_GUEST_HANDLE_PARAM(void) arg)
- {
-     struct compat_machphys_mfn_list xmml;
-     l2_pgentry_t l2e;
-@@ -266,14 +266,14 @@ int compat_update_va_mapping_otherdomain(unsigned long va, u32 lo, u32 hi,
- DEFINE_XEN_GUEST_HANDLE(mmuext_op_compat_t);
--int compat_mmuext_op(XEN_GUEST_HANDLE(mmuext_op_compat_t) cmp_uops,
-+int compat_mmuext_op(XEN_GUEST_HANDLE_PARAM(mmuext_op_compat_t) cmp_uops,
-                      unsigned int count,
--                     XEN_GUEST_HANDLE(uint) pdone,
-+                     XEN_GUEST_HANDLE_PARAM(uint) pdone,
-                      unsigned int foreigndom)
- {
-     unsigned int i, preempt_mask;
-     int rc = 0;
--    XEN_GUEST_HANDLE(mmuext_op_t) nat_ops;
-+    XEN_GUEST_HANDLE_PARAM(mmuext_op_t) nat_ops;
-     preempt_mask = count & MMU_UPDATE_PREEMPTED;
-     count ^= preempt_mask;
-diff --git a/xen/arch/x86/x86_64/domain.c b/xen/arch/x86/x86_64/domain.c
-index e746c89..144ca2d 100644
---- a/xen/arch/x86/x86_64/domain.c
-+++ b/xen/arch/x86/x86_64/domain.c
-@@ -23,7 +23,7 @@ CHECK_vcpu_get_physid;
- int
- arch_compat_vcpu_op(
--    int cmd, struct vcpu *v, XEN_GUEST_HANDLE(void) arg)
-+    int cmd, struct vcpu *v, XEN_GUEST_HANDLE_PARAM(void) arg)
- {
-     int rc = -ENOSYS;
-diff --git a/xen/arch/x86/x86_64/mm.c b/xen/arch/x86/x86_64/mm.c
-index 635a499..17c46a1 100644
---- a/xen/arch/x86/x86_64/mm.c
-+++ b/xen/arch/x86/x86_64/mm.c
-@@ -1043,7 +1043,7 @@ void __init subarch_init_memory(void)
-     }
- }
--long subarch_memory_op(int op, XEN_GUEST_HANDLE(void) arg)
-+long subarch_memory_op(int op, XEN_GUEST_HANDLE_PARAM(void) arg)
- {
-     struct xen_machphys_mfn_list xmml;
-     l3_pgentry_t l3e;
-diff --git a/xen/arch/x86/x86_64/traps.c b/xen/arch/x86/x86_64/traps.c
-index 806cf2e..6ead813 100644
---- a/xen/arch/x86/x86_64/traps.c
-+++ b/xen/arch/x86/x86_64/traps.c
-@@ -518,7 +518,7 @@ static long unregister_guest_callback(struct callback_unregister *unreg)
- }
--long do_callback_op(int cmd, XEN_GUEST_HANDLE(const_void) arg)
-+long do_callback_op(int cmd, XEN_GUEST_HANDLE_PARAM(const_void) arg)
- {
-     long ret;
-diff --git a/xen/common/compat/domain.c b/xen/common/compat/domain.c
-index 40a0287..e4c8ceb 100644
---- a/xen/common/compat/domain.c
-+++ b/xen/common/compat/domain.c
-@@ -15,7 +15,7 @@
- CHECK_vcpu_set_periodic_timer;
- #undef xen_vcpu_set_periodic_timer
--int compat_vcpu_op(int cmd, int vcpuid, XEN_GUEST_HANDLE(void) arg)
-+int compat_vcpu_op(int cmd, int vcpuid, XEN_GUEST_HANDLE_PARAM(void) arg)
- {
-     struct domain *d = current->domain;
-     struct vcpu *v;
-diff --git a/xen/common/compat/grant_table.c b/xen/common/compat/grant_table.c
-index edd20c6..b524955 100644
---- a/xen/common/compat/grant_table.c
-+++ b/xen/common/compat/grant_table.c
-@@ -52,12 +52,12 @@ CHECK_gnttab_swap_grant_ref;
- #undef xen_gnttab_swap_grant_ref
- int compat_grant_table_op(unsigned int cmd,
--                          XEN_GUEST_HANDLE(void) cmp_uop,
-+                          XEN_GUEST_HANDLE_PARAM(void) cmp_uop,
-                           unsigned int count)
- {
-     int rc = 0;
-     unsigned int i;
--    XEN_GUEST_HANDLE(void) cnt_uop;
-+    XEN_GUEST_HANDLE_PARAM(void) cnt_uop;
-     set_xen_guest_handle(cnt_uop, NULL);
-     switch ( cmd )
-@@ -206,7 +206,7 @@ int compat_grant_table_op(unsigned int cmd,
-             }
-             if ( rc >= 0 )
-             {
--                XEN_GUEST_HANDLE(gnttab_transfer_compat_t) xfer;
-+                XEN_GUEST_HANDLE_PARAM(gnttab_transfer_compat_t) xfer;
-                 xfer = guest_handle_cast(cmp_uop, gnttab_transfer_compat_t);
-                 guest_handle_add_offset(xfer, i);
-@@ -251,7 +251,7 @@ int compat_grant_table_op(unsigned int cmd,
-             }
-             if ( rc >= 0 )
-             {
--                XEN_GUEST_HANDLE(gnttab_copy_compat_t) copy;
-+                XEN_GUEST_HANDLE_PARAM(gnttab_copy_compat_t) copy;
-                 copy = guest_handle_cast(cmp_uop, gnttab_copy_compat_t);
-                 guest_handle_add_offset(copy, i);
-diff --git a/xen/common/compat/memory.c b/xen/common/compat/memory.c
-index e7257cc..996151c 100644
---- a/xen/common/compat/memory.c
-+++ b/xen/common/compat/memory.c
-@@ -13,7 +13,7 @@ CHECK_TYPE(domid);
- #undef compat_domid_t
- #undef xen_domid_t
--int compat_memory_op(unsigned int cmd, XEN_GUEST_HANDLE(void) compat)
-+int compat_memory_op(unsigned int cmd, XEN_GUEST_HANDLE_PARAM(void) compat)
- {
-     int rc, split, op = cmd & MEMOP_CMD_MASK;
-     unsigned int start_extent = cmd >> MEMOP_EXTENT_SHIFT;
-@@ -22,7 +22,7 @@ int compat_memory_op(unsigned int cmd, XEN_GUEST_HANDLE(void) compat)
-     {
-         unsigned int i, end_extent = 0;
-         union {
--            XEN_GUEST_HANDLE(void) hnd;
-+            XEN_GUEST_HANDLE_PARAM(void) hnd;
-             struct xen_memory_reservation *rsrv;
-             struct xen_memory_exchange *xchg;
-             struct xen_remove_from_physmap *xrfp;
-diff --git a/xen/common/domain.c b/xen/common/domain.c
-index 4c5d241..d7cd135 100644
---- a/xen/common/domain.c
-+++ b/xen/common/domain.c
-@@ -804,7 +804,7 @@ void vcpu_reset(struct vcpu *v)
- }
--long do_vcpu_op(int cmd, int vcpuid, XEN_GUEST_HANDLE(void) arg)
-+long do_vcpu_op(int cmd, int vcpuid, XEN_GUEST_HANDLE_PARAM(void) arg)
- {
-     struct domain *d = current->domain;
-     struct vcpu *v;
-diff --git a/xen/common/domctl.c b/xen/common/domctl.c
-index 7ca6b08..527c5ad 100644
---- a/xen/common/domctl.c
-+++ b/xen/common/domctl.c
-@@ -238,7 +238,7 @@ void domctl_lock_release(void)
-     spin_unlock(&current->domain->hypercall_deadlock_mutex);
- }
--long do_domctl(XEN_GUEST_HANDLE(xen_domctl_t) u_domctl)
-+long do_domctl(XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl)
- {
-     long ret = 0;
-     struct xen_domctl curop, *op = &curop;
-diff --git a/xen/common/event_channel.c b/xen/common/event_channel.c
-index 53777f8..a80a0d1 100644
---- a/xen/common/event_channel.c
-+++ b/xen/common/event_channel.c
-@@ -970,7 +970,7 @@ out:
- }
--long do_event_channel_op(int cmd, XEN_GUEST_HANDLE(void) arg)
-+long do_event_channel_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
- {
-     long rc;
-diff --git a/xen/common/grant_table.c b/xen/common/grant_table.c
-index 9961e83..d780dc6 100644
---- a/xen/common/grant_table.c
-+++ b/xen/common/grant_table.c
-@@ -771,7 +771,7 @@ __gnttab_map_grant_ref(
- static long
- gnttab_map_grant_ref(
--    XEN_GUEST_HANDLE(gnttab_map_grant_ref_t) uop, unsigned int count)
-+    XEN_GUEST_HANDLE_PARAM(gnttab_map_grant_ref_t) uop, unsigned int count)
- {
-     int i;
-     struct gnttab_map_grant_ref op;
-@@ -1040,7 +1040,7 @@ __gnttab_unmap_grant_ref(
- static long
- gnttab_unmap_grant_ref(
--    XEN_GUEST_HANDLE(gnttab_unmap_grant_ref_t) uop, unsigned int count)
-+    XEN_GUEST_HANDLE_PARAM(gnttab_unmap_grant_ref_t) uop, unsigned int count)
- {
-     int i, c, partial_done, done = 0;
-     struct gnttab_unmap_grant_ref op;
-@@ -1102,7 +1102,7 @@ __gnttab_unmap_and_replace(
- static long
- gnttab_unmap_and_replace(
--    XEN_GUEST_HANDLE(gnttab_unmap_and_replace_t) uop, unsigned int count)
-+    XEN_GUEST_HANDLE_PARAM(gnttab_unmap_and_replace_t) uop, unsigned int count)
- {
-     int i, c, partial_done, done = 0;
-     struct gnttab_unmap_and_replace op;
-@@ -1254,7 +1254,7 @@ active_alloc_failed:
- static long 
- gnttab_setup_table(
--    XEN_GUEST_HANDLE(gnttab_setup_table_t) uop, unsigned int count)
-+    XEN_GUEST_HANDLE_PARAM(gnttab_setup_table_t) uop, unsigned int count)
- {
-     struct gnttab_setup_table op;
-     struct domain *d;
-@@ -1348,7 +1348,7 @@ gnttab_setup_table(
- static long 
- gnttab_query_size(
--    XEN_GUEST_HANDLE(gnttab_query_size_t) uop, unsigned int count)
-+    XEN_GUEST_HANDLE_PARAM(gnttab_query_size_t) uop, unsigned int count)
- {
-     struct gnttab_query_size op;
-     struct domain *d;
-@@ -1485,7 +1485,7 @@ gnttab_prepare_for_transfer(
- static long
- gnttab_transfer(
--    XEN_GUEST_HANDLE(gnttab_transfer_t) uop, unsigned int count)
-+    XEN_GUEST_HANDLE_PARAM(gnttab_transfer_t) uop, unsigned int count)
- {
-     struct domain *d = current->domain;
-     struct domain *e;
-@@ -2082,7 +2082,7 @@ __gnttab_copy(
- static long
- gnttab_copy(
--    XEN_GUEST_HANDLE(gnttab_copy_t) uop, unsigned int count)
-+    XEN_GUEST_HANDLE_PARAM(gnttab_copy_t) uop, unsigned int count)
- {
-     int i;
-     struct gnttab_copy op;
-@@ -2101,7 +2101,7 @@ gnttab_copy(
- }
- static long
--gnttab_set_version(XEN_GUEST_HANDLE(gnttab_set_version_t uop))
-+gnttab_set_version(XEN_GUEST_HANDLE_PARAM(gnttab_set_version_t uop))
- {
-     gnttab_set_version_t op;
-     struct domain *d = current->domain;
-@@ -2220,7 +2220,7 @@ out:
- }
- static long
--gnttab_get_status_frames(XEN_GUEST_HANDLE(gnttab_get_status_frames_t) uop,
-+gnttab_get_status_frames(XEN_GUEST_HANDLE_PARAM(gnttab_get_status_frames_t) uop,
-                          int count)
- {
-     gnttab_get_status_frames_t op;
-@@ -2289,7 +2289,7 @@ out1:
- }
- static long
--gnttab_get_version(XEN_GUEST_HANDLE(gnttab_get_version_t uop))
-+gnttab_get_version(XEN_GUEST_HANDLE_PARAM(gnttab_get_version_t uop))
- {
-     gnttab_get_version_t op;
-     struct domain *d;
-@@ -2368,7 +2368,7 @@ out:
- }
- static long
--gnttab_swap_grant_ref(XEN_GUEST_HANDLE(gnttab_swap_grant_ref_t uop),
-+gnttab_swap_grant_ref(XEN_GUEST_HANDLE_PARAM(gnttab_swap_grant_ref_t uop),
-                       unsigned int count)
- {
-     int i;
-@@ -2389,7 +2389,7 @@ gnttab_swap_grant_ref(XEN_GUEST_HANDLE(gnttab_swap_grant_ref_t uop),
- long
- do_grant_table_op(
--    unsigned int cmd, XEN_GUEST_HANDLE(void) uop, unsigned int count)
-+    unsigned int cmd, XEN_GUEST_HANDLE_PARAM(void) uop, unsigned int count)
- {
-     long rc;
-     
-@@ -2401,7 +2401,7 @@ do_grant_table_op(
-     {
-     case GNTTABOP_map_grant_ref:
-     {
--        XEN_GUEST_HANDLE(gnttab_map_grant_ref_t) map =
-+        XEN_GUEST_HANDLE_PARAM(gnttab_map_grant_ref_t) map =
-             guest_handle_cast(uop, gnttab_map_grant_ref_t);
-         if ( unlikely(!guest_handle_okay(map, count)) )
-             goto out;
-@@ -2415,7 +2415,7 @@ do_grant_table_op(
-     }
-     case GNTTABOP_unmap_grant_ref:
-     {
--        XEN_GUEST_HANDLE(gnttab_unmap_grant_ref_t) unmap =
-+        XEN_GUEST_HANDLE_PARAM(gnttab_unmap_grant_ref_t) unmap =
-             guest_handle_cast(uop, gnttab_unmap_grant_ref_t);
-         if ( unlikely(!guest_handle_okay(unmap, count)) )
-             goto out;
-@@ -2429,7 +2429,7 @@ do_grant_table_op(
-     }
-     case GNTTABOP_unmap_and_replace:
-     {
--        XEN_GUEST_HANDLE(gnttab_unmap_and_replace_t) unmap =
-+        XEN_GUEST_HANDLE_PARAM(gnttab_unmap_and_replace_t) unmap =
-             guest_handle_cast(uop, gnttab_unmap_and_replace_t);
-         if ( unlikely(!guest_handle_okay(unmap, count)) )
-             goto out;
-@@ -2453,7 +2453,7 @@ do_grant_table_op(
-     }
-     case GNTTABOP_transfer:
-     {
--        XEN_GUEST_HANDLE(gnttab_transfer_t) transfer =
-+        XEN_GUEST_HANDLE_PARAM(gnttab_transfer_t) transfer =
-             guest_handle_cast(uop, gnttab_transfer_t);
-         if ( unlikely(!guest_handle_okay(transfer, count)) )
-             goto out;
-@@ -2467,7 +2467,7 @@ do_grant_table_op(
-     }
-     case GNTTABOP_copy:
-     {
--        XEN_GUEST_HANDLE(gnttab_copy_t) copy =
-+        XEN_GUEST_HANDLE_PARAM(gnttab_copy_t) copy =
-             guest_handle_cast(uop, gnttab_copy_t);
-         if ( unlikely(!guest_handle_okay(copy, count)) )
-             goto out;
-@@ -2504,7 +2504,7 @@ do_grant_table_op(
-     }
-     case GNTTABOP_swap_grant_ref:
-     {
--        XEN_GUEST_HANDLE(gnttab_swap_grant_ref_t) swap =
-+        XEN_GUEST_HANDLE_PARAM(gnttab_swap_grant_ref_t) swap =
-             guest_handle_cast(uop, gnttab_swap_grant_ref_t);
-         if ( unlikely(!guest_handle_okay(swap, count)) )
-             goto out;
-diff --git a/xen/common/kernel.c b/xen/common/kernel.c
-index c915bbc..55caff6 100644
---- a/xen/common/kernel.c
-+++ b/xen/common/kernel.c
-@@ -204,7 +204,7 @@ void __init do_initcalls(void)
-  * Simple hypercalls.
-  */
--DO(xen_version)(int cmd, XEN_GUEST_HANDLE(void) arg)
-+DO(xen_version)(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
- {
-     switch ( cmd )
-     {
-@@ -332,7 +332,7 @@ DO(xen_version)(int cmd, XEN_GUEST_HANDLE(void) arg)
-     return -ENOSYS;
- }
--DO(nmi_op)(unsigned int cmd, XEN_GUEST_HANDLE(void) arg)
-+DO(nmi_op)(unsigned int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
- {
-     struct xennmi_callback cb;
-     long rc = 0;
-diff --git a/xen/common/kexec.c b/xen/common/kexec.c
-index 09a5624..03389eb 100644
---- a/xen/common/kexec.c
-+++ b/xen/common/kexec.c
-@@ -613,7 +613,7 @@ static int kexec_get_range_internal(xen_kexec_range_t *range)
-     return ret;
- }
--static int kexec_get_range(XEN_GUEST_HANDLE(void) uarg)
-+static int kexec_get_range(XEN_GUEST_HANDLE_PARAM(void) uarg)
- {
-     xen_kexec_range_t range;
-     int ret = -EINVAL;
-@@ -629,7 +629,7 @@ static int kexec_get_range(XEN_GUEST_HANDLE(void) uarg)
-     return ret;
- }
--static int kexec_get_range_compat(XEN_GUEST_HANDLE(void) uarg)
-+static int kexec_get_range_compat(XEN_GUEST_HANDLE_PARAM(void) uarg)
- {
- #ifdef CONFIG_COMPAT
-     xen_kexec_range_t range;
-@@ -777,7 +777,7 @@ static int kexec_load_unload_internal(unsigned long op, xen_kexec_load_t *load)
-     return ret;
- }
--static int kexec_load_unload(unsigned long op, XEN_GUEST_HANDLE(void) uarg)
-+static int kexec_load_unload(unsigned long op, XEN_GUEST_HANDLE_PARAM(void) uarg)
- {
-     xen_kexec_load_t load;
-@@ -788,7 +788,7 @@ static int kexec_load_unload(unsigned long op, XEN_GUEST_HANDLE(void) uarg)
- }
- static int kexec_load_unload_compat(unsigned long op,
--                                    XEN_GUEST_HANDLE(void) uarg)
-+                                    XEN_GUEST_HANDLE_PARAM(void) uarg)
- {
- #ifdef CONFIG_COMPAT
-     compat_kexec_load_t compat_load;
-@@ -813,7 +813,7 @@ static int kexec_load_unload_compat(unsigned long op,
- #endif /* CONFIG_COMPAT */
- }
--static int kexec_exec(XEN_GUEST_HANDLE(void) uarg)
-+static int kexec_exec(XEN_GUEST_HANDLE_PARAM(void) uarg)
- {
-     xen_kexec_exec_t exec;
-     xen_kexec_image_t *image;
-@@ -845,7 +845,7 @@ static int kexec_exec(XEN_GUEST_HANDLE(void) uarg)
-     return -EINVAL; /* never reached */
- }
--int do_kexec_op_internal(unsigned long op, XEN_GUEST_HANDLE(void) uarg,
-+int do_kexec_op_internal(unsigned long op, XEN_GUEST_HANDLE_PARAM(void) uarg,
-                            int compat)
- {
-     unsigned long flags;
-@@ -886,13 +886,13 @@ int do_kexec_op_internal(unsigned long op, XEN_GUEST_HANDLE(void) uarg,
-     return ret;
- }
--long do_kexec_op(unsigned long op, XEN_GUEST_HANDLE(void) uarg)
-+long do_kexec_op(unsigned long op, XEN_GUEST_HANDLE_PARAM(void) uarg)
- {
-     return do_kexec_op_internal(op, uarg, 0);
- }
- #ifdef CONFIG_COMPAT
--int compat_kexec_op(unsigned long op, XEN_GUEST_HANDLE(void) uarg)
-+int compat_kexec_op(unsigned long op, XEN_GUEST_HANDLE_PARAM(void) uarg)
- {
-     return do_kexec_op_internal(op, uarg, 1);
- }
-diff --git a/xen/common/memory.c b/xen/common/memory.c
-index 7e58cc4..a683954 100644
---- a/xen/common/memory.c
-+++ b/xen/common/memory.c
-@@ -277,7 +277,7 @@ static void decrease_reservation(struct memop_args *a)
-     a->nr_done = i;
- }
--static long memory_exchange(XEN_GUEST_HANDLE(xen_memory_exchange_t) arg)
-+static long memory_exchange(XEN_GUEST_HANDLE_PARAM(xen_memory_exchange_t) arg)
- {
-     struct xen_memory_exchange exch;
-     PAGE_LIST_HEAD(in_chunk_list);
-@@ -530,7 +530,7 @@ static long memory_exchange(XEN_GUEST_HANDLE(xen_memory_exchange_t) arg)
-     return rc;
- }
--long do_memory_op(unsigned long cmd, XEN_GUEST_HANDLE(void) arg)
-+long do_memory_op(unsigned long cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
- {
-     struct domain *d;
-     int rc, op;
-diff --git a/xen/common/multicall.c b/xen/common/multicall.c
-index 6c1a9d7..5de5f8d 100644
---- a/xen/common/multicall.c
-+++ b/xen/common/multicall.c
-@@ -21,7 +21,7 @@ typedef long ret_t;
- ret_t
- do_multicall(
--    XEN_GUEST_HANDLE(multicall_entry_t) call_list, unsigned int nr_calls)
-+    XEN_GUEST_HANDLE_PARAM(multicall_entry_t) call_list, unsigned int nr_calls)
- {
-     struct mc_state *mcs = &current->mc_state;
-     unsigned int     i;
-diff --git a/xen/common/schedule.c b/xen/common/schedule.c
-index 0854f55..c26eac4 100644
---- a/xen/common/schedule.c
-+++ b/xen/common/schedule.c
-@@ -836,7 +836,7 @@ typedef long ret_t;
- #endif /* !COMPAT */
--ret_t do_sched_op(int cmd, XEN_GUEST_HANDLE(void) arg)
-+ret_t do_sched_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg)
- {
-     ret_t ret = 0;
-diff --git a/xen/common/sysctl.c b/xen/common/sysctl.c
-index ea68278..47142f4 100644
---- a/xen/common/sysctl.c
-+++ b/xen/common/sysctl.c
-@@ -27,7 +27,7 @@
- #include <xsm/xsm.h>
- #include <xen/pmstat.h>
--long do_sysctl(XEN_GUEST_HANDLE(xen_sysctl_t) u_sysctl)
-+long do_sysctl(XEN_GUEST_HANDLE_PARAM(xen_sysctl_t) u_sysctl)
- {
-     long ret = 0;
-     struct xen_sysctl curop, *op = &curop;
-diff --git a/xen/common/xenoprof.c b/xen/common/xenoprof.c
-index e571fea..c001b38 100644
---- a/xen/common/xenoprof.c
-+++ b/xen/common/xenoprof.c
-@@ -404,7 +404,7 @@ static int add_active_list(domid_t domid)
-     return 0;
- }
--static int add_passive_list(XEN_GUEST_HANDLE(void) arg)
-+static int add_passive_list(XEN_GUEST_HANDLE_PARAM(void) arg)
- {
-     struct xenoprof_passive passive;
-     struct domain *d;
-@@ -585,7 +585,7 @@ void xenoprof_log_event(struct vcpu *vcpu, const struct cpu_user_regs *regs,
--static int xenoprof_op_init(XEN_GUEST_HANDLE(void) arg)
-+static int xenoprof_op_init(XEN_GUEST_HANDLE_PARAM(void) arg)
- {
-     struct domain *d = current->domain;
-     struct xenoprof_init xenoprof_init;
-@@ -609,7 +609,7 @@ static int xenoprof_op_init(XEN_GUEST_HANDLE(void) arg)
- #endif /* !COMPAT */
--static int xenoprof_op_get_buffer(XEN_GUEST_HANDLE(void) arg)
-+static int xenoprof_op_get_buffer(XEN_GUEST_HANDLE_PARAM(void) arg)
- {
-     struct xenoprof_get_buffer xenoprof_get_buffer;
-     struct domain *d = current->domain;
-@@ -660,7 +660,7 @@ static int xenoprof_op_get_buffer(XEN_GUEST_HANDLE(void) arg)
-                       || (op == XENOPROF_disable_virq)  \
-                       || (op == XENOPROF_get_buffer))
-  
--int do_xenoprof_op(int op, XEN_GUEST_HANDLE(void) arg)
-+int do_xenoprof_op(int op, XEN_GUEST_HANDLE_PARAM(void) arg)
- {
-     int ret = 0;
-     
-diff --git a/xen/drivers/acpi/pmstat.c b/xen/drivers/acpi/pmstat.c
-index 698711e..f8d62f2 100644
---- a/xen/drivers/acpi/pmstat.c
-+++ b/xen/drivers/acpi/pmstat.c
-@@ -515,7 +515,7 @@ int do_pm_op(struct xen_sysctl_pm_op *op)
-     return ret;
- }
--int acpi_set_pdc_bits(u32 acpi_id, XEN_GUEST_HANDLE(uint32) pdc)
-+int acpi_set_pdc_bits(u32 acpi_id, XEN_GUEST_HANDLE_PARAM(uint32) pdc)
- {
-     u32 bits[3];
-     int ret;
-diff --git a/xen/drivers/char/console.c b/xen/drivers/char/console.c
-index e10bed5..b0f2334 100644
---- a/xen/drivers/char/console.c
-+++ b/xen/drivers/char/console.c
-@@ -182,7 +182,7 @@ static void putchar_console_ring(int c)
- long read_console_ring(struct xen_sysctl_readconsole *op)
- {
--    XEN_GUEST_HANDLE(char) str;
-+    XEN_GUEST_HANDLE_PARAM(char) str;
-     uint32_t idx, len, max, sofar, c;
-     str   = guest_handle_cast(op->buffer, char),
-@@ -320,7 +320,7 @@ static void notify_dom0_con_ring(unsigned long unused)
- static DECLARE_SOFTIRQ_TASKLET(notify_dom0_con_ring_tasklet,
-                                notify_dom0_con_ring, 0);
--static long guest_console_write(XEN_GUEST_HANDLE(char) buffer, int count)
-+static long guest_console_write(XEN_GUEST_HANDLE_PARAM(char) buffer, int count)
- {
-     char kbuf[128], *kptr;
-     int kcount;
-@@ -358,7 +358,7 @@ static long guest_console_write(XEN_GUEST_HANDLE(char) buffer, int count)
-     return 0;
- }
--long do_console_io(int cmd, int count, XEN_GUEST_HANDLE(char) buffer)
-+long do_console_io(int cmd, int count, XEN_GUEST_HANDLE_PARAM(char) buffer)
- {
-     long rc;
-     unsigned int idx, len;
-diff --git a/xen/drivers/passthrough/iommu.c b/xen/drivers/passthrough/iommu.c
-index 64f5fd1..396461f 100644
---- a/xen/drivers/passthrough/iommu.c
-+++ b/xen/drivers/passthrough/iommu.c
-@@ -518,7 +518,7 @@ void iommu_crash_shutdown(void)
- int iommu_do_domctl(
-     struct xen_domctl *domctl,
--    XEN_GUEST_HANDLE(xen_domctl_t) u_domctl)
-+    XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl)
- {
-     struct domain *d;
-     u16 seg;
-diff --git a/xen/include/asm-arm/hypercall.h b/xen/include/asm-arm/hypercall.h
-index 454f02e..090e620 100644
---- a/xen/include/asm-arm/hypercall.h
-+++ b/xen/include/asm-arm/hypercall.h
-@@ -2,7 +2,7 @@
- #define __ASM_ARM_HYPERCALL_H__
- #include <public/domctl.h> /* for arch_do_domctl */
--int do_physdev_op(int cmd, XEN_GUEST_HANDLE(void) arg);
-+int do_physdev_op(int cmd, XEN_GUEST_HANDLE_PARAM(void) arg);
- #endif /* __ASM_ARM_HYPERCALL_H__ */
- /*
-diff --git a/xen/include/asm-arm/mm.h b/xen/include/asm-arm/mm.h
-index b37bd35..8bf45ba 100644
---- a/xen/include/asm-arm/mm.h
-+++ b/xen/include/asm-arm/mm.h
-@@ -267,7 +267,7 @@ static inline int relinquish_shared_pages(struct domain *d)
- /* Arch-specific portion of memory_op hypercall. */
--long arch_memory_op(int op, XEN_GUEST_HANDLE(void) arg);
-+long arch_memory_op(int op, XEN_GUEST_HANDLE_PARAM(void) arg);
- int steal_page(
-     struct domain *d, struct page_info *page, unsigned int memflags);
-diff --git a/xen/include/asm-x86/hap.h b/xen/include/asm-x86/hap.h
-index a2532a4..916a35b 100644
---- a/xen/include/asm-x86/hap.h
-+++ b/xen/include/asm-x86/hap.h
-@@ -51,7 +51,7 @@ hap_unmap_domain_page(void *p)
- /************************************************/
- void  hap_domain_init(struct domain *d);
- int   hap_domctl(struct domain *d, xen_domctl_shadow_op_t *sc,
--                 XEN_GUEST_HANDLE(void) u_domctl);
-+                 XEN_GUEST_HANDLE_PARAM(void) u_domctl);
- int   hap_enable(struct domain *d, u32 mode);
- void  hap_final_teardown(struct domain *d);
- void  hap_teardown(struct domain *d);
-diff --git a/xen/include/asm-x86/hypercall.h b/xen/include/asm-x86/hypercall.h
-index 9e136c3..55b5ca2 100644
---- a/xen/include/asm-x86/hypercall.h
-+++ b/xen/include/asm-x86/hypercall.h
-@@ -18,22 +18,22 @@
- extern long
- do_event_channel_op_compat(
--    XEN_GUEST_HANDLE(evtchn_op_t) uop);
-+    XEN_GUEST_HANDLE_PARAM(evtchn_op_t) uop);
- extern long
- do_set_trap_table(
--    XEN_GUEST_HANDLE(const_trap_info_t) traps);
-+    XEN_GUEST_HANDLE_PARAM(const_trap_info_t) traps);
- extern int
- do_mmu_update(
--    XEN_GUEST_HANDLE(mmu_update_t) ureqs,
-+    XEN_GUEST_HANDLE_PARAM(mmu_update_t) ureqs,
-     unsigned int count,
--    XEN_GUEST_HANDLE(uint) pdone,
-+    XEN_GUEST_HANDLE_PARAM(uint) pdone,
-     unsigned int foreigndom);
- extern long
- do_set_gdt(
--    XEN_GUEST_HANDLE(ulong) frame_list,
-+    XEN_GUEST_HANDLE_PARAM(ulong) frame_list,
-     unsigned int entries);
- extern long
-@@ -60,7 +60,7 @@ do_update_descriptor(
-     u64 desc);
- extern long
--do_mca(XEN_GUEST_HANDLE(xen_mc_t) u_xen_mc);
-+do_mca(XEN_GUEST_HANDLE_PARAM(xen_mc_t) u_xen_mc);
- extern int
- do_update_va_mapping(
-@@ -70,7 +70,7 @@ do_update_va_mapping(
- extern long
- do_physdev_op(
--    int cmd, XEN_GUEST_HANDLE(void) arg);
-+    int cmd, XEN_GUEST_HANDLE_PARAM(void) arg);
- extern int
- do_update_va_mapping_otherdomain(
-@@ -81,9 +81,9 @@ do_update_va_mapping_otherdomain(
- extern int
- do_mmuext_op(
--    XEN_GUEST_HANDLE(mmuext_op_t) uops,
-+    XEN_GUEST_HANDLE_PARAM(mmuext_op_t) uops,
-     unsigned int count,
--    XEN_GUEST_HANDLE(uint) pdone,
-+    XEN_GUEST_HANDLE_PARAM(uint) pdone,
-     unsigned int foreigndom);
- extern unsigned long
-@@ -92,7 +92,7 @@ do_iret(
- extern int
- do_kexec(
--    unsigned long op, unsigned arg1, XEN_GUEST_HANDLE(void) uarg);
-+    unsigned long op, unsigned arg1, XEN_GUEST_HANDLE_PARAM(void) uarg);
- #ifdef __x86_64__
-@@ -110,11 +110,11 @@ do_set_segment_base(
- extern int
- compat_physdev_op(
-     int cmd,
--    XEN_GUEST_HANDLE(void) arg);
-+    XEN_GUEST_HANDLE_PARAM(void) arg);
- extern int
- arch_compat_vcpu_op(
--    int cmd, struct vcpu *v, XEN_GUEST_HANDLE(void) arg);
-+    int cmd, struct vcpu *v, XEN_GUEST_HANDLE_PARAM(void) arg);
- #else
-diff --git a/xen/include/asm-x86/mem_event.h b/xen/include/asm-x86/mem_event.h
-index 23d71c1..e17f36b 100644
---- a/xen/include/asm-x86/mem_event.h
-+++ b/xen/include/asm-x86/mem_event.h
-@@ -65,7 +65,7 @@ int mem_event_get_response(struct domain *d, struct mem_event_domain *med,
- struct domain *get_mem_event_op_target(uint32_t domain, int *rc);
- int do_mem_event_op(int op, uint32_t domain, void *arg);
- int mem_event_domctl(struct domain *d, xen_domctl_mem_event_op_t *mec,
--                     XEN_GUEST_HANDLE(void) u_domctl);
-+                     XEN_GUEST_HANDLE_PARAM(void) u_domctl);
- #endif /* __MEM_EVENT_H__ */
-diff --git a/xen/include/asm-x86/mm.h b/xen/include/asm-x86/mm.h
-index 4cba276..6373b3b 100644
---- a/xen/include/asm-x86/mm.h
-+++ b/xen/include/asm-x86/mm.h
-@@ -604,10 +604,10 @@ void *do_page_walk(struct vcpu *v, unsigned long addr);
- int __sync_local_execstate(void);
- /* Arch-specific portion of memory_op hypercall. */
--long arch_memory_op(int op, XEN_GUEST_HANDLE(void) arg);
--long subarch_memory_op(int op, XEN_GUEST_HANDLE(void) arg);
--int compat_arch_memory_op(int op, XEN_GUEST_HANDLE(void));
--int compat_subarch_memory_op(int op, XEN_GUEST_HANDLE(void));
-+long arch_memory_op(int op, XEN_GUEST_HANDLE_PARAM(void) arg);
-+long subarch_memory_op(int op, XEN_GUEST_HANDLE_PARAM(void) arg);
-+int compat_arch_memory_op(int op, XEN_GUEST_HANDLE_PARAM(void));
-+int compat_subarch_memory_op(int op, XEN_GUEST_HANDLE_PARAM(void));
- int steal_page(
-     struct domain *d, struct page_info *page, unsigned int memflags);
-diff --git a/xen/include/asm-x86/paging.h b/xen/include/asm-x86/paging.h
-index c432a97..1cd0e3f 100644
---- a/xen/include/asm-x86/paging.h
-+++ b/xen/include/asm-x86/paging.h
-@@ -215,7 +215,7 @@ int paging_domain_init(struct domain *d, unsigned int domcr_flags);
-  * and disable ephemeral shadow modes (test mode and log-dirty mode) and
-  * manipulate the log-dirty bitmap. */
- int paging_domctl(struct domain *d, xen_domctl_shadow_op_t *sc,
--                  XEN_GUEST_HANDLE(void) u_domctl);
-+                  XEN_GUEST_HANDLE_PARAM(void) u_domctl);
- /* Call when destroying a domain */
- void paging_teardown(struct domain *d);
-diff --git a/xen/include/asm-x86/processor.h b/xen/include/asm-x86/processor.h
-index 7164a50..efdbddd 100644
---- a/xen/include/asm-x86/processor.h
-+++ b/xen/include/asm-x86/processor.h
-@@ -598,7 +598,7 @@ int rdmsr_hypervisor_regs(uint32_t idx, uint64_t *val);
- int wrmsr_hypervisor_regs(uint32_t idx, uint64_t val);
- void microcode_set_module(unsigned int);
--int microcode_update(XEN_GUEST_HANDLE(const_void), unsigned long len);
-+int microcode_update(XEN_GUEST_HANDLE_PARAM(const_void), unsigned long len);
- int microcode_resume_cpu(int cpu);
- unsigned long *get_x86_gpr(struct cpu_user_regs *regs, unsigned int modrm_reg);
-diff --git a/xen/include/asm-x86/shadow.h b/xen/include/asm-x86/shadow.h
-index 88a8cd2..2eb6efc 100644
---- a/xen/include/asm-x86/shadow.h
-+++ b/xen/include/asm-x86/shadow.h
-@@ -73,7 +73,7 @@ int shadow_track_dirty_vram(struct domain *d,
-  * manipulate the log-dirty bitmap. */
- int shadow_domctl(struct domain *d, 
-                   xen_domctl_shadow_op_t *sc,
--                  XEN_GUEST_HANDLE(void) u_domctl);
-+                  XEN_GUEST_HANDLE_PARAM(void) u_domctl);
- /* Call when destroying a domain */
- void shadow_teardown(struct domain *d);
-diff --git a/xen/include/asm-x86/xenoprof.h b/xen/include/asm-x86/xenoprof.h
-index c03f8c8..3f5ea15 100644
---- a/xen/include/asm-x86/xenoprof.h
-+++ b/xen/include/asm-x86/xenoprof.h
-@@ -40,9 +40,9 @@ int xenoprof_arch_init(int *num_events, char *cpu_type);
- #define xenoprof_arch_disable_virq()            nmi_disable_virq()
- #define xenoprof_arch_release_counters()        nmi_release_counters()
--int xenoprof_arch_counter(XEN_GUEST_HANDLE(void) arg);
--int compat_oprof_arch_counter(XEN_GUEST_HANDLE(void) arg);
--int xenoprof_arch_ibs_counter(XEN_GUEST_HANDLE(void) arg);
-+int xenoprof_arch_counter(XEN_GUEST_HANDLE_PARAM(void) arg);
-+int compat_oprof_arch_counter(XEN_GUEST_HANDLE_PARAM(void) arg);
-+int xenoprof_arch_ibs_counter(XEN_GUEST_HANDLE_PARAM(void) arg);
- struct vcpu;
- struct cpu_user_regs;
-diff --git a/xen/include/xen/acpi.h b/xen/include/xen/acpi.h
-index d7e2f94..8f3cdca 100644
---- a/xen/include/xen/acpi.h
-+++ b/xen/include/xen/acpi.h
-@@ -145,8 +145,8 @@ static inline unsigned int acpi_get_cstate_limit(void) { return 0; }
- static inline void acpi_set_cstate_limit(unsigned int new_limit) { return; }
- #endif
--#ifdef XEN_GUEST_HANDLE
--int acpi_set_pdc_bits(u32 acpi_id, XEN_GUEST_HANDLE(uint32));
-+#ifdef XEN_GUEST_HANDLE_PARAM
-+int acpi_set_pdc_bits(u32 acpi_id, XEN_GUEST_HANDLE_PARAM(uint32));
- #endif
- int arch_acpi_set_pdc_bits(u32 acpi_id, u32 *, u32 mask);
-diff --git a/xen/include/xen/hypercall.h b/xen/include/xen/hypercall.h
-index 73b1598..e335037 100644
---- a/xen/include/xen/hypercall.h
-+++ b/xen/include/xen/hypercall.h
-@@ -29,29 +29,29 @@ do_sched_op_compat(
- extern long
- do_sched_op(
-     int cmd,
--    XEN_GUEST_HANDLE(void) arg);
-+    XEN_GUEST_HANDLE_PARAM(void) arg);
- extern long
- do_domctl(
--    XEN_GUEST_HANDLE(xen_domctl_t) u_domctl);
-+    XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl);
- extern long
- arch_do_domctl(
-     struct xen_domctl *domctl,
--    XEN_GUEST_HANDLE(xen_domctl_t) u_domctl);
-+    XEN_GUEST_HANDLE_PARAM(xen_domctl_t) u_domctl);
- extern long
- do_sysctl(
--    XEN_GUEST_HANDLE(xen_sysctl_t) u_sysctl);
-+    XEN_GUEST_HANDLE_PARAM(xen_sysctl_t) u_sysctl);
- extern long
- arch_do_sysctl(
-     struct xen_sysctl *sysctl,
--    XEN_GUEST_HANDLE(xen_sysctl_t) u_sysctl);
-+    XEN_GUEST_HANDLE_PARAM(xen_sysctl_t) u_sysctl);
- extern long
- do_platform_op(
--    XEN_GUEST_HANDLE(xen_platform_op_t) u_xenpf_op);
-+    XEN_GUEST_HANDLE_PARAM(xen_platform_op_t) u_xenpf_op);
- /*
-  * To allow safe resume of do_memory_op() after preemption, we need to know
-@@ -64,11 +64,11 @@ do_platform_op(
- extern long
- do_memory_op(
-     unsigned long cmd,
--    XEN_GUEST_HANDLE(void) arg);
-+    XEN_GUEST_HANDLE_PARAM(void) arg);
- extern long
- do_multicall(
--    XEN_GUEST_HANDLE(multicall_entry_t) call_list,
-+    XEN_GUEST_HANDLE_PARAM(multicall_entry_t) call_list,
-     unsigned int nr_calls);
- extern long
-@@ -77,23 +77,23 @@ do_set_timer_op(
- extern long
- do_event_channel_op(
--    int cmd, XEN_GUEST_HANDLE(void) arg);
-+    int cmd, XEN_GUEST_HANDLE_PARAM(void) arg);
- extern long
- do_xen_version(
-     int cmd,
--    XEN_GUEST_HANDLE(void) arg);
-+    XEN_GUEST_HANDLE_PARAM(void) arg);
- extern long
- do_console_io(
-     int cmd,
-     int count,
--    XEN_GUEST_HANDLE(char) buffer);
-+    XEN_GUEST_HANDLE_PARAM(char) buffer);
- extern long
- do_grant_table_op(
-     unsigned int cmd,
--    XEN_GUEST_HANDLE(void) uop,
-+    XEN_GUEST_HANDLE_PARAM(void) uop,
-     unsigned int count);
- extern long
-@@ -105,72 +105,72 @@ extern long
- do_vcpu_op(
-     int cmd,
-     int vcpuid,
--    XEN_GUEST_HANDLE(void) arg);
-+    XEN_GUEST_HANDLE_PARAM(void) arg);
- struct vcpu;
- extern long
- arch_do_vcpu_op(int cmd,
-     struct vcpu *v,
--    XEN_GUEST_HANDLE(void) arg);
-+    XEN_GUEST_HANDLE_PARAM(void) arg);
- extern long
- do_nmi_op(
-     unsigned int cmd,
--    XEN_GUEST_HANDLE(void) arg);
-+    XEN_GUEST_HANDLE_PARAM(void) arg);
- extern long
- do_hvm_op(
-     unsigned long op,
--    XEN_GUEST_HANDLE(void) arg);
-+    XEN_GUEST_HANDLE_PARAM(void) arg);
- extern long
- do_kexec_op(
-     unsigned long op,
-     int arg1,
--    XEN_GUEST_HANDLE(void) arg);
-+    XEN_GUEST_HANDLE_PARAM(void) arg);
- extern long
- do_xsm_op(
--    XEN_GUEST_HANDLE(xsm_op_t) u_xsm_op);
-+    XEN_GUEST_HANDLE_PARAM(xsm_op_t) u_xsm_op);
- extern long
- do_tmem_op(
--    XEN_GUEST_HANDLE(tmem_op_t) uops);
-+    XEN_GUEST_HANDLE_PARAM(tmem_op_t) uops);
- extern int
--do_xenoprof_op(int op, XEN_GUEST_HANDLE(void) arg);
-+do_xenoprof_op(int op, XEN_GUEST_HANDLE_PARAM(void) arg);
- #ifdef CONFIG_COMPAT
- extern int
- compat_memory_op(
-     unsigned int cmd,
--    XEN_GUEST_HANDLE(void) arg);
-+    XEN_GUEST_HANDLE_PARAM(void) arg);
- extern int
- compat_grant_table_op(
-     unsigned int cmd,
--    XEN_GUEST_HANDLE(void) uop,
-+    XEN_GUEST_HANDLE_PARAM(void) uop,
-     unsigned int count);
- extern int
- compat_vcpu_op(
-     int cmd,
-     int vcpuid,
--    XEN_GUEST_HANDLE(void) arg);
-+    XEN_GUEST_HANDLE_PARAM(void) arg);
- extern int
--compat_xenoprof_op(int op, XEN_GUEST_HANDLE(void) arg);
-+compat_xenoprof_op(int op, XEN_GUEST_HANDLE_PARAM(void) arg);
- extern int
- compat_xen_version(
-     int cmd,
--    XEN_GUEST_HANDLE(void) arg);
-+    XEN_GUEST_HANDLE_PARAM(void) arg);
- extern int
- compat_sched_op(
-     int cmd,
--    XEN_GUEST_HANDLE(void) arg);
-+    XEN_GUEST_HANDLE_PARAM(void) arg);
- extern int
- compat_set_timer_op(
-diff --git a/xen/include/xen/iommu.h b/xen/include/xen/iommu.h
-index 6f7fbf7..bd19e23 100644
---- a/xen/include/xen/iommu.h
-+++ b/xen/include/xen/iommu.h
-@@ -155,7 +155,7 @@ void iommu_crash_shutdown(void);
- void iommu_set_dom0_mapping(struct domain *d);
- void iommu_share_p2m_table(struct domain *d);
--int iommu_do_domctl(struct xen_domctl *, XEN_GUEST_HANDLE(xen_domctl_t));
-+int iommu_do_domctl(struct xen_domctl *, XEN_GUEST_HANDLE_PARAM(xen_domctl_t));
- void iommu_iotlb_flush(struct domain *d, unsigned long gfn, unsigned int page_count);
- void iommu_iotlb_flush_all(struct domain *d);
-diff --git a/xen/include/xen/tmem_xen.h b/xen/include/xen/tmem_xen.h
-index 4a35760..2e7199a 100644
---- a/xen/include/xen/tmem_xen.h
-+++ b/xen/include/xen/tmem_xen.h
-@@ -448,7 +448,7 @@ static inline void tmh_tze_copy_from_pfp(void *tva, pfp_t *pfp, pagesize_t len)
- typedef XEN_GUEST_HANDLE(void) cli_mfn_t;
- typedef XEN_GUEST_HANDLE(char) cli_va_t;
- */
--typedef XEN_GUEST_HANDLE(tmem_op_t) tmem_cli_op_t;
-+typedef XEN_GUEST_HANDLE_PARAM(tmem_op_t) tmem_cli_op_t;
- static inline int tmh_get_tmemop_from_client(tmem_op_t *op, tmem_cli_op_t uops)
- {
-diff --git a/xen/include/xsm/xsm.h b/xen/include/xsm/xsm.h
-index bef79df..3e4a47f 100644
---- a/xen/include/xsm/xsm.h
-+++ b/xen/include/xsm/xsm.h
-@@ -139,7 +139,7 @@ struct xsm_operations {
-     int (*cpupool_op)(void);
-     int (*sched_op)(void);
--    long (*__do_xsm_op) (XEN_GUEST_HANDLE(xsm_op_t) op);
-+    long (*__do_xsm_op) (XEN_GUEST_HANDLE_PARAM(xsm_op_t) op);
- #ifdef CONFIG_X86
-     int (*shadow_control) (struct domain *d, uint32_t op);
-@@ -585,7 +585,7 @@ static inline int xsm_sched_op(void)
-     return xsm_call(sched_op());
- }
--static inline long __do_xsm_op (XEN_GUEST_HANDLE(xsm_op_t) op)
-+static inline long __do_xsm_op (XEN_GUEST_HANDLE_PARAM(xsm_op_t) op)
- {
- #ifdef XSM_ENABLE
-     return xsm_ops->__do_xsm_op(op);
-diff --git a/xen/xsm/dummy.c b/xen/xsm/dummy.c
-index 7027ee7..5ef6529 100644
---- a/xen/xsm/dummy.c
-+++ b/xen/xsm/dummy.c
-@@ -365,7 +365,7 @@ static int dummy_sched_op (void)
-     return 0;
- }
--static long dummy___do_xsm_op(XEN_GUEST_HANDLE(xsm_op_t) op)
-+static long dummy___do_xsm_op(XEN_GUEST_HANDLE_PARAM(xsm_op_t) op)
- {
-     return -ENOSYS;
- }
-diff --git a/xen/xsm/flask/flask_op.c b/xen/xsm/flask/flask_op.c
-index bd4db37..23e7d34 100644
---- a/xen/xsm/flask/flask_op.c
-+++ b/xen/xsm/flask/flask_op.c
-@@ -71,7 +71,7 @@ static int domain_has_security(struct domain *d, u32 perms)
-                         perms, NULL);
- }
--static int flask_copyin_string(XEN_GUEST_HANDLE(char) u_buf, char **buf, uint32_t size)
-+static int flask_copyin_string(XEN_GUEST_HANDLE_PARAM(char) u_buf, char **buf, uint32_t size)
- {
-     char *tmp = xmalloc_bytes(size + 1);
-     if ( !tmp )
-@@ -573,7 +573,7 @@ static int flask_get_peer_sid(struct xen_flask_peersid *arg)
-     return rv;
- }
--long do_flask_op(XEN_GUEST_HANDLE(xsm_op_t) u_flask_op)
-+long do_flask_op(XEN_GUEST_HANDLE_PARAM(xsm_op_t) u_flask_op)
- {
-     xen_flask_op_t op;
-     int rv;
-diff --git a/xen/xsm/flask/hooks.c b/xen/xsm/flask/hooks.c
-index 23b84f3..0fc299c 100644
---- a/xen/xsm/flask/hooks.c
-+++ b/xen/xsm/flask/hooks.c
-@@ -1553,7 +1553,7 @@ static int flask_vcpuextstate (struct domain *d, uint32_t cmd)
- }
- #endif
--long do_flask_op(XEN_GUEST_HANDLE(xsm_op_t) u_flask_op);
-+long do_flask_op(XEN_GUEST_HANDLE_PARAM(xsm_op_t) u_flask_op);
- static struct xsm_operations flask_ops = {
-     .security_domaininfo = flask_security_domaininfo,
-diff --git a/xen/xsm/xsm_core.c b/xen/xsm/xsm_core.c
-index 96c8669..46287cb 100644
---- a/xen/xsm/xsm_core.c
-+++ b/xen/xsm/xsm_core.c
-@@ -111,7 +111,7 @@ int unregister_xsm(struct xsm_operations *ops)
- #endif
--long do_xsm_op (XEN_GUEST_HANDLE(xsm_op_t) op)
-+long do_xsm_op (XEN_GUEST_HANDLE_PARAM(xsm_op_t) op)
- {
-     return __do_xsm_op(op);
- }
--- 
-1.7.2.5
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1345633688-31684-6-git-send-email-stefano.stabellini@eu.citrix.com> b/test/corpus/<1345633688-31684-6-git-send-email-stefano.stabellini@eu.citrix.com>
deleted file mode 100644 (file)
index f0c94c6..0000000
+++ /dev/null
@@ -1,255 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Aug 22 12:13:03 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 22 Aug 2012 12:13:03 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T48rn-0000wk-WF
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 22 Aug 2012 12:13:03 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T48nY-0001DN-7l; Wed, 22 Aug 2012 11:08:32 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1T48nW-0001DE-Lh
-       for xen-devel@lists.xensource.com; Wed, 22 Aug 2012 11:08:30 +0000
-Received: from [85.158.143.99:27349] by server-2.bemta-4.messagelabs.com id
-       EF/53-21239-EADB4305; Wed, 22 Aug 2012 11:08:30 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-15.tower-216.messagelabs.com!1345633707!27328660!1
-X-Originating-IP: [66.165.176.89]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNjU4OTQ=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 6188 invoked from network); 22 Aug 2012 11:08:29 -0000
-Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
-       by server-15.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
-       22 Aug 2012 11:08:29 -0000
-X-IronPort-AV: E=Sophos;i="4.77,808,1336363200"; d="scan'208";a="35423308"
-Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
-       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       22 Aug 2012 07:08:21 -0400
-Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
-       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
-       Wed, 22 Aug 2012 07:08:21 -0400
-Received: from kaball.uk.xensource.com ([10.80.2.59])  by
-       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
-       <stefano.stabellini@eu.citrix.com>)     id 1T48nH-0003lL-RK;
-       Wed, 22 Aug 2012 12:08:15 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-To: <xen-devel@lists.xensource.com>
-Date: Wed, 22 Aug 2012 12:08:08 +0100
-Message-ID: <1345633688-31684-6-git-send-email-stefano.stabellini@eu.citrix.com>
-X-Mailer: git-send-email 1.7.9.5
-In-Reply-To: <alpine.DEB.2.02.1208221159560.15568@kaball.uk.xensource.com>
-References: <alpine.DEB.2.02.1208221159560.15568@kaball.uk.xensource.com>
-MIME-Version: 1.0
-Cc: tim@xen.org, Ian.Campbell@citrix.com,
-       Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: [Xen-devel] [PATCH v4 6/6] xen: more substitutions
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-More substitutions in this patch, not as obvious as the ones in the
-previous patch.
-
-Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
----
- xen/arch/x86/mm.c                        |   12 +++++++++---
- xen/arch/x86/oprofile/backtrace.c        |    4 +++-
- xen/arch/x86/platform_hypercall.c        |    8 ++++++--
- xen/arch/x86/x86_64/cpu_idle.c           |    4 +++-
- xen/arch/x86/x86_64/cpufreq.c            |    4 +++-
- xen/arch/x86/x86_64/platform_hypercall.c |    1 +
- xen/common/compat/multicall.c            |    1 +
- 7 files changed, 26 insertions(+), 8 deletions(-)
-
-diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c
-index 4d72700..088db11 100644
---- a/xen/arch/x86/mm.c
-+++ b/xen/arch/x86/mm.c
-@@ -3198,7 +3198,9 @@ int do_mmuext_op(
-         {
-             cpumask_t pmask;
--            if ( unlikely(vcpumask_to_pcpumask(d, op.arg2.vcpumask, &pmask)) )
-+            if ( unlikely(vcpumask_to_pcpumask(d,
-+                            guest_handle_to_param(op.arg2.vcpumask, const_void),
-+                            &pmask)) )
-             {
-                 okay = 0;
-                 break;
-@@ -4484,6 +4486,7 @@ static int handle_iomem_range(unsigned long s, unsigned long e, void *p)
-     if ( s > ctxt->s )
-     {
-         e820entry_t ent;
-+        XEN_GUEST_HANDLE_PARAM(e820entry_t) buffer_t;
-         XEN_GUEST_HANDLE(e820entry_t) buffer;
-         if ( ctxt->n + 1 >= ctxt->map.nr_entries )
-@@ -4491,7 +4494,8 @@ static int handle_iomem_range(unsigned long s, unsigned long e, void *p)
-         ent.addr = (uint64_t)ctxt->s << PAGE_SHIFT;
-         ent.size = (uint64_t)(s - ctxt->s) << PAGE_SHIFT;
-         ent.type = E820_RESERVED;
--        buffer = guest_handle_cast(ctxt->map.buffer, e820entry_t);
-+        buffer_t = guest_handle_cast(ctxt->map.buffer, e820entry_t);
-+        buffer = guest_handle_from_param(buffer_t, e820entry_t);
-         if ( __copy_to_guest_offset(buffer, ctxt->n, &ent, 1) )
-             return -EFAULT;
-         ctxt->n++;
-@@ -4790,6 +4794,7 @@ long arch_memory_op(int op, XEN_GUEST_HANDLE_PARAM(void) arg)
-     {
-         struct memory_map_context ctxt;
-         XEN_GUEST_HANDLE(e820entry_t) buffer;
-+        XEN_GUEST_HANDLE_PARAM(e820entry_t) buffer_t;
-         unsigned int i;
-         if ( !IS_PRIV(current->domain) )
-@@ -4804,7 +4809,8 @@ long arch_memory_op(int op, XEN_GUEST_HANDLE_PARAM(void) arg)
-         if ( ctxt.map.nr_entries < e820.nr_map + 1 )
-             return -EINVAL;
--        buffer = guest_handle_cast(ctxt.map.buffer, e820entry_t);
-+        buffer_t = guest_handle_cast(ctxt.map.buffer, e820entry_t);
-+        buffer = guest_handle_from_param(buffer_t, e820entry_t);
-         if ( !guest_handle_okay(buffer, ctxt.map.nr_entries) )
-             return -EFAULT;
-diff --git a/xen/arch/x86/oprofile/backtrace.c b/xen/arch/x86/oprofile/backtrace.c
-index 33fd142..699cd28 100644
---- a/xen/arch/x86/oprofile/backtrace.c
-+++ b/xen/arch/x86/oprofile/backtrace.c
-@@ -80,8 +80,10 @@ dump_guest_backtrace(struct vcpu *vcpu, const struct frame_head *head,
-     else
- #endif
-     {
--        XEN_GUEST_HANDLE(const_frame_head_t) guest_head =
-+        XEN_GUEST_HANDLE(const_frame_head_t) guest_head;
-+        XEN_GUEST_HANDLE_PARAM(const_frame_head_t) guest_head_t =
-             const_guest_handle_from_ptr(head, frame_head_t);
-+        guest_head = guest_handle_from_param(guest_head_t, const_frame_head_t);
-         /* Also check accessibility of one struct frame_head beyond */
-         if (!guest_handle_okay(guest_head, 2))
-diff --git a/xen/arch/x86/platform_hypercall.c b/xen/arch/x86/platform_hypercall.c
-index a32e0a2..2994b12 100644
---- a/xen/arch/x86/platform_hypercall.c
-+++ b/xen/arch/x86/platform_hypercall.c
-@@ -185,7 +185,9 @@ ret_t do_platform_op(XEN_GUEST_HANDLE_PARAM(xen_platform_op_t) u_xenpf_op)
-             }
-         }
--        ret = microcode_update(data, op->u.microcode.length);
-+        ret = microcode_update(
-+                guest_handle_to_param(data, const_void),
-+                op->u.microcode.length);
-         spin_unlock(&vcpu_alloc_lock);
-     }
-     break;
-@@ -448,7 +450,9 @@ ret_t do_platform_op(XEN_GUEST_HANDLE_PARAM(xen_platform_op_t) u_xenpf_op)
-             XEN_GUEST_HANDLE(uint32) pdc;
-             guest_from_compat_handle(pdc, op->u.set_pminfo.u.pdc);
--            ret = acpi_set_pdc_bits(op->u.set_pminfo.id, pdc);
-+            ret = acpi_set_pdc_bits(
-+                    op->u.set_pminfo.id,
-+                    guest_handle_to_param(pdc, uint32));
-         }
-         break;
-diff --git a/xen/arch/x86/x86_64/cpu_idle.c b/xen/arch/x86/x86_64/cpu_idle.c
-index 3e7422f..1cdaf96 100644
---- a/xen/arch/x86/x86_64/cpu_idle.c
-+++ b/xen/arch/x86/x86_64/cpu_idle.c
-@@ -57,10 +57,12 @@ static int copy_from_compat_state(xen_processor_cx_t *xen_state,
- {
- #define XLAT_processor_cx_HNDL_dp(_d_, _s_) do { \
-     XEN_GUEST_HANDLE(compat_processor_csd_t) dps; \
-+    XEN_GUEST_HANDLE_PARAM(xen_processor_csd_t) dps_t; \
-     if ( unlikely(!compat_handle_okay((_s_)->dp, (_s_)->dpcnt)) ) \
-             return -EFAULT; \
-     guest_from_compat_handle(dps, (_s_)->dp); \
--    (_d_)->dp = guest_handle_cast(dps, xen_processor_csd_t); \
-+    dps_t = guest_handle_cast(dps, xen_processor_csd_t); \
-+    (_d_)->dp = guest_handle_from_param(dps_t, xen_processor_csd_t); \
- } while (0)
-     XLAT_processor_cx(xen_state, state);
- #undef XLAT_processor_cx_HNDL_dp
-diff --git a/xen/arch/x86/x86_64/cpufreq.c b/xen/arch/x86/x86_64/cpufreq.c
-index ce9864e..1956777 100644
---- a/xen/arch/x86/x86_64/cpufreq.c
-+++ b/xen/arch/x86/x86_64/cpufreq.c
-@@ -45,10 +45,12 @@ compat_set_px_pminfo(uint32_t cpu, struct compat_processor_performance *perf)
- #define XLAT_processor_performance_HNDL_states(_d_, _s_) do { \
-     XEN_GUEST_HANDLE(compat_processor_px_t) states; \
-+    XEN_GUEST_HANDLE_PARAM(xen_processor_px_t) states_t; \
-     if ( unlikely(!compat_handle_okay((_s_)->states, (_s_)->state_count)) ) \
-         return -EFAULT; \
-     guest_from_compat_handle(states, (_s_)->states); \
--    (_d_)->states = guest_handle_cast(states, xen_processor_px_t); \
-+    states_t = guest_handle_cast(states, xen_processor_px_t); \
-+    (_d_)->states = guest_handle_from_param(states_t, xen_processor_px_t); \
- } while (0)
-     XLAT_processor_performance(xen_perf, perf);
-diff --git a/xen/arch/x86/x86_64/platform_hypercall.c b/xen/arch/x86/x86_64/platform_hypercall.c
-index 188aa37..f577761 100644
---- a/xen/arch/x86/x86_64/platform_hypercall.c
-+++ b/xen/arch/x86/x86_64/platform_hypercall.c
-@@ -38,6 +38,7 @@ CHECK_pf_pcpu_version;
- #define COMPAT
- #define _XEN_GUEST_HANDLE(t) XEN_GUEST_HANDLE(t)
-+#define _XEN_GUEST_HANDLE_PARAM(t) XEN_GUEST_HANDLE(t)
- typedef int ret_t;
- #include "../platform_hypercall.c"
-diff --git a/xen/common/compat/multicall.c b/xen/common/compat/multicall.c
-index 0eb1212..72db213 100644
---- a/xen/common/compat/multicall.c
-+++ b/xen/common/compat/multicall.c
-@@ -24,6 +24,7 @@ DEFINE_XEN_GUEST_HANDLE(multicall_entry_compat_t);
- #define call                 compat_call
- #define do_multicall(l, n)   compat_multicall(_##l, n)
- #define _XEN_GUEST_HANDLE(t) XEN_GUEST_HANDLE(t)
-+#define _XEN_GUEST_HANDLE_PARAM(t) XEN_GUEST_HANDLE(t)
- #include "../multicall.c"
--- 
-1.7.2.5
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1345727912.12501.83.camel@zakaz.uk.xensource.com> b/test/corpus/<1345727912.12501.83.camel@zakaz.uk.xensource.com>
deleted file mode 100644 (file)
index b0a7812..0000000
+++ /dev/null
@@ -1,119 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Aug 23 14:24:52 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 23 Aug 2012 14:24:52 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T4XOw-0002Ip-BZ
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 23 Aug 2012 14:24:51 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T4XJx-0006k6-5x; Thu, 23 Aug 2012 13:19:37 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1T4XJv-0006k1-A7
-       for xen-devel@lists.xen.org; Thu, 23 Aug 2012 13:19:35 +0000
-Received: from [85.158.138.51:27111] by server-9.bemta-3.messagelabs.com id
-       95/36-23952-6ED26305; Thu, 23 Aug 2012 13:19:34 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-6.tower-174.messagelabs.com!1345727974!19608791!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTA0MjY=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 12782 invoked from network); 23 Aug 2012 13:19:34 -0000
-Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-6.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
-       23 Aug 2012 13:19:34 -0000
-X-IronPort-AV: E=Sophos;i="4.80,300,1344211200"; d="scan'208";a="14147478"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       23 Aug 2012 13:18:33 +0000
-Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0;
-       Thu, 23 Aug 2012 14:18:33 +0100
-Message-ID: <1345727912.12501.83.camel@zakaz.uk.xensource.com>
-From: Ian Campbell <Ian.Campbell@citrix.com>
-To: Julien Grall <julien.grall@citrix.com>
-Date: Thu, 23 Aug 2012 14:18:32 +0100
-In-Reply-To: <96d6442c911f6ed7f6cb24670901b151fa1570d6.1345552068.git.julien.grall@citrix.com>
-References: <cover.1345552068.git.julien.grall@citrix.com>
-       <96d6442c911f6ed7f6cb24670901b151fa1570d6.1345552068.git.julien.grall@citrix.com>
-Organization: Citrix Systems, Inc.
-X-Mailer: Evolution 3.4.3-1 
-MIME-Version: 1.0
-Cc: "christian.limpach@gmail.com" <christian.limpach@gmail.com>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
-       "qemu-devel@nongnu.org" <qemu-devel@nongnu.org>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [XEN][RFC PATCH V2 01/17] hvm: Modify interface to
- support multiple ioreq server
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-> diff --git a/xen/include/asm-x86/hvm/domain.h b/xen/include/asm-x86/hvm/domain.h
-> index 27b3de5..49d1ca0 100644
-> --- a/xen/include/asm-x86/hvm/domain.h
-> +++ b/xen/include/asm-x86/hvm/domain.h
-[...]
->  struct hvm_domain {
-> +    /* Use for the IO handles by Xen */
->      struct hvm_ioreq_page  ioreq;
-> -    struct hvm_ioreq_page  buf_ioreq;
-> +    struct hvm_ioreq_server *ioreq_server_list;
-> +    uint32_t                     nr_ioreq_server;
-> +    spinlock_t               ioreq_server_lock;
-
-There's some whitespace weirdness here plus some in
-xen/include/asm-x86/hvm/vcpu.h and xen/include/public/hvm/hvm_op.h.
-
-> diff --git a/xen/include/public/hvm/ioreq.h b/xen/include/public/hvm/ioreq.h
-> index 4022a1d..87aacd3 100644
-> --- a/xen/include/public/hvm/ioreq.h
-> +++ b/xen/include/public/hvm/ioreq.h
-> @@ -34,6 +34,7 @@
->  
->  #define IOREQ_TYPE_PIO          0 /* pio */
->  #define IOREQ_TYPE_COPY         1 /* mmio ops */
-> +#define IOREQ_TYPE_PCI_CONFIG   2 /* pci config space ops */
->  #define IOREQ_TYPE_TIMEOFFSET   7
->  #define IOREQ_TYPE_INVALIDATE   8 /* mapcache */
-
-I wonder why we skip 2-6 now -- perhaps they used to be something else
-and we are avoiding them to avoid strange errors? In which case adding
-the new on as 9 might be a good idea.
-
-Ian.
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1345728118.12501.86.camel@zakaz.uk.xensource.com> b/test/corpus/<1345728118.12501.86.camel@zakaz.uk.xensource.com>
deleted file mode 100644 (file)
index 99db6ef..0000000
+++ /dev/null
@@ -1,96 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Aug 23 14:25:47 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 23 Aug 2012 14:25:47 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T4XPt-0002Jb-3W
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 23 Aug 2012 14:25:47 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T4XMJ-0006t7-2v; Thu, 23 Aug 2012 13:22:03 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1T4XMH-0006ss-O3
-       for xen-devel@lists.xen.org; Thu, 23 Aug 2012 13:22:01 +0000
-Received: from [85.158.138.51:45956] by server-4.bemta-3.messagelabs.com id
-       A0/FB-04276-87E26305; Thu, 23 Aug 2012 13:22:00 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-5.tower-174.messagelabs.com!1345728119!27722148!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTA0MjY=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 30977 invoked from network); 23 Aug 2012 13:22:00 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-5.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
-       23 Aug 2012 13:22:00 -0000
-X-IronPort-AV: E=Sophos;i="4.80,300,1344211200"; d="scan'208";a="14147553"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       23 Aug 2012 13:21:59 +0000
-Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0;
-       Thu, 23 Aug 2012 14:21:59 +0100
-Message-ID: <1345728118.12501.86.camel@zakaz.uk.xensource.com>
-From: Ian Campbell <Ian.Campbell@citrix.com>
-To: Julien Grall <julien.grall@citrix.com>
-Date: Thu, 23 Aug 2012 14:21:58 +0100
-In-Reply-To: <8747cb48d50a10784df56904db29ca8b6e8c5d80.1345552068.git.julien.grall@citrix.com>
-References: <cover.1345552068.git.julien.grall@citrix.com>
-       <8747cb48d50a10784df56904db29ca8b6e8c5d80.1345552068.git.julien.grall@citrix.com>
-Organization: Citrix Systems, Inc.
-X-Mailer: Evolution 3.4.3-1 
-MIME-Version: 1.0
-Cc: "christian.limpach@gmail.com" <christian.limpach@gmail.com>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
-       "qemu-devel@nongnu.org" <qemu-devel@nongnu.org>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [XEN][RFC PATCH V2 09/17] xc: Add the hypercall for
- multiple servers
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Wed, 2012-08-22 at 13:31 +0100, Julien Grall wrote:
-> This patch add 5 hypercalls to register server, io range and PCI.
-> 
-> Signed-off-by: Julien Grall <julien.grall@citrix.com>
-
-Looks correct to me at least so far as the use of the hypercall buffers
-goes, thanks.
-
-Acked-by: Ian Campbell <ian.campbelL@citrix.com>
-
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1345728471.12501.90.camel@zakaz.uk.xensource.com> b/test/corpus/<1345728471.12501.90.camel@zakaz.uk.xensource.com>
deleted file mode 100644 (file)
index 67765a4..0000000
+++ /dev/null
@@ -1,128 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Aug 23 14:31:59 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 23 Aug 2012 14:31:59 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T4XVq-0002Lh-1t
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 23 Aug 2012 14:31:59 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T4XS1-0007El-6V; Thu, 23 Aug 2012 13:27:57 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1T4XS0-0007Ef-1O
-       for xen-devel@lists.xen.org; Thu, 23 Aug 2012 13:27:56 +0000
-Received: from [85.158.138.51:49060] by server-11.bemta-3.messagelabs.com id
-       72/93-23152-BDF26305; Thu, 23 Aug 2012 13:27:55 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-13.tower-174.messagelabs.com!1345728472!8726516!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTA0MjY=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 28635 invoked from network); 23 Aug 2012 13:27:53 -0000
-Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-13.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
-       23 Aug 2012 13:27:53 -0000
-X-IronPort-AV: E=Sophos;i="4.80,300,1344211200"; d="scan'208";a="14147697"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       23 Aug 2012 13:27:52 +0000
-Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0;
-       Thu, 23 Aug 2012 14:27:52 +0100
-Message-ID: <1345728471.12501.90.camel@zakaz.uk.xensource.com>
-From: Ian Campbell <Ian.Campbell@citrix.com>
-To: Julien Grall <julien.grall@citrix.com>
-Date: Thu, 23 Aug 2012 14:27:51 +0100
-In-Reply-To: <fcf046ea782dda6cacb3bf11813bf1d16e531e6b.1345552068.git.julien.grall@citrix.com>
-References: <cover.1345552068.git.julien.grall@citrix.com>
-       <fcf046ea782dda6cacb3bf11813bf1d16e531e6b.1345552068.git.julien.grall@citrix.com>
-Organization: Citrix Systems, Inc.
-X-Mailer: Evolution 3.4.3-1 
-MIME-Version: 1.0
-Cc: "christian.limpach@gmail.com" <christian.limpach@gmail.com>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
-       "qemu-devel@nongnu.org" <qemu-devel@nongnu.org>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [XEN][RFC PATCH V2 11/17] xc: modify save/restore
- to support multiple device models
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Wed, 2012-08-22 at 13:31 +0100, Julien Grall wrote:
-> - add save/restore new special pages and remove unused
->     - modify save file structure to allow multiple qemu states
-> 
-> Signed-off-by: Julien Grall <julien.grall@citrix.com>
-> ---
->  tools/libxc/xc_domain_restore.c |  150 +++++++++++++++++++++++++++++----------
->  tools/libxc/xc_domain_save.c    |    6 +-
-
-As you've changed the protocol olease can you update the docs in
-xg_save_restore.h.
-
-> @@ -103,6 +103,9 @@ static ssize_t rdexact(xc_interface *xch, struct restore_ctx *ctx,
->  #else
->  #define RDEXACT read_exact
->  #endif
-> +
-> +#define QEMUSIG_SIZE 21
-> +
->  /*
->  ** In the state file (or during transfer), all page-table pages are
->  ** converted into a 'canonical' form where references to actual mfns
-> @@ -467,7 +522,7 @@ static int buffer_tail_hvm(xc_interface *xch, struct restore_ctx *ctx,
->                             int vcpuextstate, uint32_t vcpuextstate_size)
->  {
->      uint8_t *tmp;
-> -    unsigned char qemusig[21];
-> +    unsigned char qemusig[QEMUSIG_SIZE + 1];
-
-An extra + 1 here?
-
-[...]
-> -    qemusig[20] = '\0';
-> +    qemusig[QEMUSIG_SIZE] = '\0';
-
-This is one bigger than it used to be now.
-
-Perhaps this is an unrelated bug fix (I haven't check the real length of
-the sig), in which case please can you split it out and submit
-separately?
-
-Ian.
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1345728617.12501.92.camel@zakaz.uk.xensource.com> b/test/corpus/<1345728617.12501.92.camel@zakaz.uk.xensource.com>
deleted file mode 100644 (file)
index d6f511d..0000000
+++ /dev/null
@@ -1,183 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Aug 23 14:34:32 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 23 Aug 2012 14:34:32 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T4XYI-0002Mz-OJ
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 23 Aug 2012 14:34:32 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T4XUQ-0007NQ-Of; Thu, 23 Aug 2012 13:30:26 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1T4XUP-0007NH-94
-       for xen-devel@lists.xen.org; Thu, 23 Aug 2012 13:30:25 +0000
-Received: from [85.158.139.83:6487] by server-8.bemta-5.messagelabs.com id
-       9B/F4-02481-07036305; Thu, 23 Aug 2012 13:30:24 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-11.tower-182.messagelabs.com!1345728623!20268439!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTA0MjY=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 14275 invoked from network); 23 Aug 2012 13:30:24 -0000
-Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-11.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
-       23 Aug 2012 13:30:24 -0000
-X-IronPort-AV: E=Sophos;i="4.80,300,1344211200"; d="scan'208";a="14147767"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       23 Aug 2012 13:30:18 +0000
-Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0;
-       Thu, 23 Aug 2012 14:30:18 +0100
-Message-ID: <1345728617.12501.92.camel@zakaz.uk.xensource.com>
-From: Ian Campbell <Ian.Campbell@citrix.com>
-To: Julien Grall <julien.grall@citrix.com>
-Date: Thu, 23 Aug 2012 14:30:17 +0100
-In-Reply-To: <51efcbff92f713286b5839884769ef34ab0c39f7.1345552068.git.julien.grall@citrix.com>
-References: <cover.1345552068.git.julien.grall@citrix.com>
-       <51efcbff92f713286b5839884769ef34ab0c39f7.1345552068.git.julien.grall@citrix.com>
-Organization: Citrix Systems, Inc.
-X-Mailer: Evolution 3.4.3-1 
-MIME-Version: 1.0
-Cc: "christian.limpach@gmail.com" <christian.limpach@gmail.com>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
-       "qemu-devel@nongnu.org" <qemu-devel@nongnu.org>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
-Subject: Re: [Xen-devel] [XEN][RFC PATCH V2 12/17] xl: Add interface to
- handle qemu disaggregation
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Wed, 2012-08-22 at 13:31 +0100, Julien Grall wrote:
-> This patch modifies libxl interface for qemu disaggregation.
-
-I'd rather see the interfaces changes in the same patch as the
-implementation of the new interfaces.
-
-> For the moment, due to some dependencies between devices, we
-> can't let the user choose which QEMU emulate a device.
-> 
-> Moreoever this patch adds an "id" field to nic interface.
-> It will be used in config file to specify which QEMU handle
-> the network card.
-
-Is domid+devid not sufficient to identify which nic?
-
-> A possible disaggregation is:
->     - UI: Emulate graphic card, USB, keyboard, mouse, default devices
->     (PIIX4, root bridge, ...)
->     - IDE: Emulate disk
->     - Serial: Emulate serial port
->     - Audio: Emulate audio card
->     - Net: Emulate one or more network cards, multiple QEMU can emulate
->     different card. The emulated card is specified with its nic ID.
-> 
-> Signed-off-by: Julien Grall <julien.grall@citrix.com>
-> ---
->  tools/libxl/libxl.h         |    3 +++
->  tools/libxl/libxl_types.idl |   15 +++++++++++++++
->  2 files changed, 18 insertions(+), 0 deletions(-)
-> 
-> diff --git a/tools/libxl/libxl.h b/tools/libxl/libxl.h
-> index c614d6f..71d4808 100644
-> --- a/tools/libxl/libxl.h
-> +++ b/tools/libxl/libxl.h
-> @@ -307,6 +307,7 @@ void libxl_cpuid_dispose(libxl_cpuid_policy_list *cpuid_list);
->  #define LIBXL_PCI_FUNC_ALL (~0U)
->  
->  typedef uint32_t libxl_domid;
-> +typedef uint32_t libxl_dmid;
->  
->  /*
->   * Formatting Enumerations.
-> @@ -478,12 +479,14 @@ typedef struct {
->      libxl_domain_build_info b_info;
->  
->      int num_disks, num_nics, num_pcidevs, num_vfbs, num_vkbs;
-> +    int num_dms;
->  
->      libxl_device_disk *disks;
->      libxl_device_nic *nics;
->      libxl_device_pci *pcidevs;
->      libxl_device_vfb *vfbs;
->      libxl_device_vkb *vkbs;
-> +    libxl_dm *dms;
->  
->      libxl_action_on_shutdown on_poweroff;
->      libxl_action_on_shutdown on_reboot;
-> diff --git a/tools/libxl/libxl_types.idl b/tools/libxl/libxl_types.idl
-> index daa8c79..36c802a 100644
-> --- a/tools/libxl/libxl_types.idl
-> +++ b/tools/libxl/libxl_types.idl
-> @@ -246,6 +246,20 @@ libxl_domain_sched_params = Struct("domain_sched_params",[
->      ("extratime",    integer, {'init_val': 'LIBXL_DOMAIN_SCHED_PARAM_EXTRATIME_DEFAULT'}),
->      ])
->  
-> +libxl_dm_cap = Enumeration("dm_cap", [
-> +    (1, "UI"), # Emulate all UI + default device
-
-What does "default device" equate too?
-
-> +    (2, "IDE"), # Emulate IDE
-> +    (4, "SERIAL"), # Emulate Serial
-> +    (8, "AUDIO"), # Emulate audio
-> +    ])
-> +
-> +libxl_dm = Struct("dm", [
-> +    ("name",         string),
-> +    ("path",         string),
-> +    ("capabilities",   uint64),
-
-uint64 and not libxl_dm_cap?
-
-> +    ("vifs",         libxl_string_list),
-> +    ])
-> +
->  libxl_domain_build_info = Struct("domain_build_info",[
->      ("max_vcpus",       integer),
->      ("avail_vcpus",     libxl_bitmap),
-> @@ -367,6 +381,7 @@ libxl_device_nic = Struct("device_nic", [
->      ("nictype", libxl_nic_type),
->      ("rate_bytes_per_interval", uint64),
->      ("rate_interval_usecs", uint32),
-> +    ("id", string),
->      ])
->  
->  libxl_device_pci = Struct("device_pci", [
-
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1345728948.12501.98.camel@zakaz.uk.xensource.com> b/test/corpus/<1345728948.12501.98.camel@zakaz.uk.xensource.com>
deleted file mode 100644 (file)
index 6ad4ecd..0000000
+++ /dev/null
@@ -1,270 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Aug 23 14:40:48 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 23 Aug 2012 14:40:48 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T4XeN-0002O6-4L
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 23 Aug 2012 14:40:48 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T4XaK-0007eR-Ms; Thu, 23 Aug 2012 13:36:32 +0000
-Received: from mail27.messagelabs.com ([193.109.254.147])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1T4XaI-0007eM-Rv
-       for xen-devel@lists.xen.org; Thu, 23 Aug 2012 13:36:31 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-14.tower-27.messagelabs.com!1345728950!1678341!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTA0MjY=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 19572 invoked from network); 23 Aug 2012 13:35:50 -0000
-Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-14.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
-       23 Aug 2012 13:35:50 -0000
-X-IronPort-AV: E=Sophos;i="4.80,300,1344211200"; d="scan'208";a="14147920"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       23 Aug 2012 13:35:50 +0000
-Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0;
-       Thu, 23 Aug 2012 14:35:50 +0100
-Message-ID: <1345728948.12501.98.camel@zakaz.uk.xensource.com>
-From: Ian Campbell <Ian.Campbell@citrix.com>
-To: Julien Grall <julien.grall@citrix.com>
-Date: Thu, 23 Aug 2012 14:35:48 +0100
-In-Reply-To: <557fe87e4a6c0defdc6549e23e8e5e7b2ebb7a9f.1345552068.git.julien.grall@citrix.com>
-References: <cover.1345552068.git.julien.grall@citrix.com>
-       <557fe87e4a6c0defdc6549e23e8e5e7b2ebb7a9f.1345552068.git.julien.grall@citrix.com>
-Organization: Citrix Systems, Inc.
-X-Mailer: Evolution 3.4.3-1 
-MIME-Version: 1.0
-Cc: "christian.limpach@gmail.com" <christian.limpach@gmail.com>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
-       "qemu-devel@nongnu.org" <qemu-devel@nongnu.org>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD autolearn=unavailable version=3.3.1
-Subject: Re: [Xen-devel] [XEN][RFC PATCH V2 14/17] xl-parsing: Parse new
- device_models option
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Wed, 2012-08-22 at 13:32 +0100, Julien Grall wrote:
-> Add new option "device_models". The user can specify the capability of the
-> QEMU (ui, vifs, ...). This option only works with QEMU upstream (qemu-xen).
-> 
-> For instance:
-> device_models= [ 'name=all,vifs=nic1', 'name=qvga,ui', 'name=qide,ide' ]
-
-Please can you patch docs/man/xl.cfg.pod.5 with a description of this
-syntax. Possibly just a stub referencing
-docs/man/xl-device-models.markdown in the same manner as
-xl-disk-configuration.txt, xl-numa-placement.markdown,
-xl-network-configuration.markdown etc.
-
-iirc you can give multiple vifs -- what does that syntax look like?
-
-I didn't ask before -- what does naming the dm give you? Is it just used
-for ui things like logging or can you cross reference this in some way?
-
-> Each device model can also take a path argument which override the default one.
-> It's usefull for debugging.
-
-      useful
-> 
-> Signed-off-by: Julien Grall <julien.grall@citrix.com>
-> ---
->  tools/libxl/Makefile     |    2 +-
->  tools/libxl/libxlu_dm.c  |   96 ++++++++++++++++++++++++++++++++++++++++++++++
->  tools/libxl/libxlutil.h  |    5 ++
->  tools/libxl/xl_cmdimpl.c |   29 +++++++++++++-
->  4 files changed, 130 insertions(+), 2 deletions(-)
->  create mode 100644 tools/libxl/libxlu_dm.c
-> 
-> diff --git a/tools/libxl/Makefile b/tools/libxl/Makefile
-> index 47fb110..2b58721 100644
-> --- a/tools/libxl/Makefile
-> +++ b/tools/libxl/Makefile
-> @@ -79,7 +79,7 @@ AUTOINCS= libxlu_cfg_y.h libxlu_cfg_l.h _libxl_list.h _paths.h \
->  AUTOSRCS= libxlu_cfg_y.c libxlu_cfg_l.c
->  AUTOSRCS += _libxl_save_msgs_callout.c _libxl_save_msgs_helper.c
->  LIBXLU_OBJS = libxlu_cfg_y.o libxlu_cfg_l.o libxlu_cfg.o \
-> -    libxlu_disk_l.o libxlu_disk.o libxlu_vif.o libxlu_pci.o
-> +    libxlu_disk_l.o libxlu_disk.o libxlu_vif.o libxlu_pci.o libxlu_dm.o
->  $(LIBXLU_OBJS): CFLAGS += $(CFLAGS_libxenctrl) # For xentoollog.h
->  
->  CLIENTS = xl testidl libxl-save-helper
-> diff --git a/tools/libxl/libxlu_dm.c b/tools/libxl/libxlu_dm.c
-> new file mode 100644
-> index 0000000..9f0a347
-> --- /dev/null
-> +++ b/tools/libxl/libxlu_dm.c
-> @@ -0,0 +1,96 @@
-> +#include "libxl_osdeps.h" /* must come before any other headers */
-> +#include <stdlib.h>
-> +#include "libxlu_internal.h"
-> +#include "libxlu_cfg_i.h"
-> +
-> +static void split_string_into_string_list(const char *str,
-> +                                          const char *delim,
-> +                                          libxl_string_list *psl)
-
-Is this a cut-n-paste of the one in xl_cmdimpl.c or did it change?
-
-Probably better to add this as a common utility function somewhere.
-
-> +{
-> [...]
-> +}
-> +
-> +int xlu_dm_parse(XLU_Config *cfg, const char *spec,
-> +                 libxl_dm *dm)
-> +{
-> +    char *buf = strdup(spec);
-> +    char *p, *p2;
-> +    int rc = 0;
-> +
-> +    p = strtok(buf, ",");
-> +    if (!p)
-> +        goto skip_dm;
-> +    do {
-> +        while (*p == ' ')
-> +            p++;
-> +        if ((p2 = strchr(p, '=')) == NULL) {
-> +            if (!strcmp(p, "ui"))
-
-libxl provides a libxl_BLAH_from_string for enums in the idl, which
-might be helpful here?
-
-> +                dm->capabilities |= LIBXL_DM_CAP_UI;
-> +            else if (!strcmp(p, "ide"))
-> +                dm->capabilities |= LIBXL_DM_CAP_IDE;
-> +            else if (!strcmp(p, "serial"))
-> +                dm->capabilities |= LIBXL_DM_CAP_SERIAL;
-> +            else if (!strcmp(p, "audio"))
-> +                dm->capabilities |= LIBXL_DM_CAP_AUDIO;
-> +        } else {
-> +            *p2 = '\0';
-> +            if (!strcmp(p, "name"))
-> +                dm->name = strdup(p2 + 1);
-> +            else if (!strcmp(p, "path"))
-> +                dm->path = strdup(p2 + 1);
-> +            else if (!strcmp(p, "vifs"))
-> +                split_string_into_string_list(p2 + 1, ";", &dm->vifs);
-> +       }
-> +    } while ((p = strtok(NULL, ",")) != NULL);
-> +
-> +    if (!dm->name && dm->path)
-> +    {
-> +        fprintf(stderr, "xl: Unable to parse device_deamon\n");
-> +        exit(-ERROR_FAIL);
-> +    }
-> +skip_dm:
-> +    free(buf);
-> +
-> +    return rc;
-> +}
-> diff --git a/tools/libxl/libxlutil.h b/tools/libxl/libxlutil.h
-> index 0333e55..db22715 100644
-> --- a/tools/libxl/libxlutil.h
-> +++ b/tools/libxl/libxlutil.h
-> @@ -93,6 +93,11 @@ int xlu_disk_parse(XLU_Config *cfg, int nspecs, const char *const *specs,
->   */
->  int xlu_pci_parse_bdf(XLU_Config *cfg, libxl_device_pci *pcidev, const char *str);
->  
-> +/*
-> + * Daemon specification parsing.
-> + */
-> +int xlu_dm_parse(XLU_Config *cfg, const char *spec,
-> +                 libxl_dm *dm);
->  
->  /*
->   * Vif rate parsing.
-> diff --git a/tools/libxl/xl_cmdimpl.c b/tools/libxl/xl_cmdimpl.c
-> index 138cd72..2a26fa4 100644
-> --- a/tools/libxl/xl_cmdimpl.c
-> +++ b/tools/libxl/xl_cmdimpl.c
-> @@ -561,7 +561,7 @@ static void parse_config_data(const char *config_source,
->      const char *buf;
->      long l;
->      XLU_Config *config;
-> -    XLU_ConfigList *cpus, *vbds, *nics, *pcis, *cvfbs, *cpuids;
-> +    XLU_ConfigList *cpus, *vbds, *nics, *pcis, *cvfbs, *cpuids, *dms;
->      int pci_power_mgmt = 0;
->      int pci_msitranslate = 0;
->      int pci_permissive = 0;
-> @@ -995,6 +995,9 @@ static void parse_config_data(const char *config_source,
->                  } else if (!strcmp(p, "vifname")) {
->                      free(nic->ifname);
->                      nic->ifname = strdup(p2 + 1);
-> +                } else if (!strcmp(p, "id")) {
-> +                    free(nic->id);
-> +                    nic->id = strdup(p2 + 1);
->                  } else if (!strcmp(p, "backend")) {
->                      if(libxl_name_to_domid(ctx, (p2 + 1), &(nic->backend_domid))) {
->                          fprintf(stderr, "Specified backend domain does not exist, defaulting to Dom0\n");
-> @@ -1249,6 +1252,30 @@ skip_vfb:
->              }
->          }
->      }
-> +
-> +    d_config->num_dms = 0;
-> +    d_config->dms = NULL;
-> +
-> +    if (b_info->device_model_version == LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN
-> +        && !xlu_cfg_get_list (config, "device_models", &dms, 0, 0)) {
-> +        while ((buf = xlu_cfg_get_listitem (dms, d_config->num_dms)) != NULL) {
-> +            libxl_dm *dm;
-> +            size_t size = sizeof (libxl_dm) * (d_config->num_dms + 1);
-> +
-> +            d_config->dms = (libxl_dm *)realloc (d_config->dms, size);
-> +            if (!d_config->dms) {
-> +                fprintf(stderr, "Can't realloc d_config->dms\n");
-> +                exit (1);
-> +            }
-> +            dm = d_config->dms + d_config->num_dms;
-> +            libxl_dm_init (dm);
-> +            if (xlu_dm_parse(config, buf, dm)) {
-> +                exit (-ERROR_FAIL);
-> +            }
-> +            d_config->num_dms++;
-> +        }
-> +    }
-> +
->  #define parse_extra_args(type)                                            \
->      e = xlu_cfg_get_list_as_string_list(config, "device_model_args"#type, \
->                                      &b_info->extra##type, 0);            \
-
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1345730172.12501.113.camel@zakaz.uk.xensource.com> b/test/corpus/<1345730172.12501.113.camel@zakaz.uk.xensource.com>
deleted file mode 100644 (file)
index 2763c68..0000000
+++ /dev/null
@@ -1,308 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Aug 23 15:25:32 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 23 Aug 2012 15:25:32 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T4YLh-0002Z6-Ak
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 23 Aug 2012 15:25:32 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T4YIB-000239-KA; Thu, 23 Aug 2012 14:21:51 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1T4YI9-00022u-0L
-       for xen-devel@lists.xen.org; Thu, 23 Aug 2012 14:21:49 +0000
-Received: from [85.158.143.35:40308] by server-2.bemta-4.messagelabs.com id
-       4A/29-21239-C7C36305; Thu, 23 Aug 2012 14:21:48 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-12.tower-21.messagelabs.com!1345730174!12528634!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTA0MjY=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 4908 invoked from network); 23 Aug 2012 13:56:14 -0000
-Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-12.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
-       23 Aug 2012 13:56:14 -0000
-X-IronPort-AV: E=Sophos;i="4.80,300,1344211200"; d="scan'208";a="14148404"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       23 Aug 2012 13:56:13 +0000
-Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0;
-       Thu, 23 Aug 2012 14:56:13 +0100
-Message-ID: <1345730172.12501.113.camel@zakaz.uk.xensource.com>
-From: Ian Campbell <Ian.Campbell@citrix.com>
-To: Julien Grall <julien.grall@citrix.com>
-Date: Thu, 23 Aug 2012 14:56:12 +0100
-In-Reply-To: <9522ee398a1fd3cdce48cfe883b307336ae6674f.1345552068.git.julien.grall@citrix.com>
-References: <cover.1345552068.git.julien.grall@citrix.com>
-       <9522ee398a1fd3cdce48cfe883b307336ae6674f.1345552068.git.julien.grall@citrix.com>
-Organization: Citrix Systems, Inc.
-X-Mailer: Evolution 3.4.3-1 
-MIME-Version: 1.0
-Cc: "christian.limpach@gmail.com" <christian.limpach@gmail.com>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
-       "qemu-devel@nongnu.org" <qemu-devel@nongnu.org>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
-Subject: Re: [Xen-devel] [XEN][RFC PATCH V2 15/17] xl: support spawn/destroy
- on multiple device model
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Wed, 2012-08-22 at 13:32 +0100, Julien Grall wrote:
-> Old configuration file is still working with qemu disaggregation.
-> Before to spawn any QEMU, the toolstack will fill correctly, if needed,
-> configuration structure.
-> 
-> For the moment, the toolstack spawns device models one by one.
-> 
-> Signed-off-by: Julien Grall <julien.grall@citrix.com>
-> ---
->  tools/libxl/libxl.c          |   16 ++-
->  tools/libxl/libxl_create.c   |  150 +++++++++++++-----
->  tools/libxl/libxl_device.c   |    7 +-
->  tools/libxl/libxl_dm.c       |  369 ++++++++++++++++++++++++++++++------------
->  tools/libxl/libxl_dom.c      |    4 +-
->  tools/libxl/libxl_internal.h |   36 +++--
->  6 files changed, 421 insertions(+), 161 deletions(-)
-> 
-> diff --git a/tools/libxl/libxl.c b/tools/libxl/libxl.c
-> index 8ea3478..60718b6 100644
-> --- a/tools/libxl/libxl.c
-> +++ b/tools/libxl/libxl.c
-> @@ -1330,7 +1330,8 @@ static void stubdom_destroy_callback(libxl__egc *egc,
->      }
-> 
->      dds->stubdom_finished = 1;
-> -    savefile = libxl__device_model_savefile(gc, dis->domid);
-> +    /* FIXME: get dmid */
-> +    savefile = libxl__device_model_savefile(gc, dis->domid, 0);
->      rc = libxl__remove_file(gc, savefile);
->      /*
->       * On suspend libxl__domain_save_device_model will have already
-> @@ -1423,10 +1424,8 @@ void libxl__destroy_domid(libxl__egc *egc, libxl__destroy_domid_state *dis)
->          LIBXL__LOG_ERRNOVAL(ctx, LIBXL__LOG_ERROR, rc, "xc_domain_pause failed for %d", domid);
->      }
->      if (dm_present) {
-> -        if (libxl__destroy_device_model(gc, domid) < 0)
-> -            LIBXL__LOG(ctx, LIBXL__LOG_ERROR, "libxl__destroy_device_model failed for %d", domid);
-> -
-> -        libxl__qmp_cleanup(gc, domid);
-> +        if (libxl__destroy_device_models(gc, domid) < 0)
-> +            LIBXL__LOG(ctx, LIBXL__LOG_ERROR, "libxl__destroy_device_models failed for %d", domid);
->      }
->      dis->drs.ao = ao;
->      dis->drs.domid = domid;
-> @@ -1725,6 +1724,13 @@ out:
-> 
->  /******************************************************************************/
-> 
-> +int libxl__dm_setdefault(libxl__gc *gc, libxl_dm *dm)
-> +{
-> +    return 0;
-> +}
-> +
-> +/******************************************************************************/
-> +
->  int libxl__device_disk_setdefault(libxl__gc *gc, libxl_device_disk *disk)
->  {
->      int rc;
-> diff --git a/tools/libxl/libxl_create.c b/tools/libxl/libxl_create.c
-> index 5f0d26f..7160c78 100644
-> --- a/tools/libxl/libxl_create.c
-> +++ b/tools/libxl/libxl_create.c
-> @@ -35,6 +35,10 @@ void libxl_domain_config_dispose(libxl_domain_config *d_config)
->  {
->      int i;
-> 
-> +    for (i=0; i<d_config->num_dms; i++)
-> +        libxl_dm_dispose(&d_config->dms[i]);
-> +    free(d_config->dms);
-
-We are adding libxl_FOO_list_free functions for new ones of these as we
-introduce new ones), can you do that for the dm type please.
-
-> +
->      for (i=0; i<d_config->num_disks; i++)
->          libxl_device_disk_dispose(&d_config->disks[i]);
->      free(d_config->disks);
-> @@ -59,6 +63,50 @@ void libxl_domain_config_dispose(libxl_domain_config *d_config)
->      libxl_domain_build_info_dispose(&d_config->b_info);
->  }
-> 
-> +static int libxl__domain_config_setdefault(libxl__gc *gc,
-> +                                           libxl_domain_config *d_config)
-> +{
-> +    libxl_domain_build_info *b_info = &d_config->b_info;
-> +    uint64_t cap = 0;
-> +    int i = 0;
-> +    int ret = 0;
-> +    libxl_dm *default_dm = NULL;
-> +
-> +    if (b_info->device_model_version == LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN_TRADITIONAL
-> +        && (d_config->num_dms > 1))
-> +        return ERROR_INVAL;
-> +
-> +    if (!d_config->num_dms) {
-> +        d_config->dms = malloc(sizeof (*d_config->dms));
-
-You should use libxl__zalloc or libxl__calloc or something here with the
-NO_GC argument to get the expected error handling.
-> @@ -991,12 +1057,11 @@ static void domcreate_launch_dm(libxl__egc *egc, libxl__multidev *multidev,
->          libxl__device_console_dispose(&console);
-> 
->          if (need_qemu) {
-> -            dcs->dmss.dm.guest_domid = domid;
-> -            libxl__spawn_local_dm(egc, &dcs->dmss.dm);
-> +            assert(dcs->dmss);
-> +            domcreate_spawn_devmodel(egc, dcs, dcs->current_dmid);
->              return;
->          } else {
-> -            assert(!dcs->dmss.dm.guest_domid);
-> -            domcreate_devmodel_started(egc, &dcs->dmss.dm, 0);
-> +            assert(!dcs->dmss);
-
-Doesn't this stop progress in this case meaning we'll never get to the
-end of the async op?
-
->              return;
->          }
->      }
-[..]
-> @@ -1044,7 +1044,8 @@ int libxl__wait_for_device_model(libxl__gc *gc,
->                                   void *check_callback_userdata)
->  {
->      char *path;
-> -    path = libxl__sprintf(gc, "/local/domain/0/device-model/%d/state", domid);
-> +    path = libxl__sprintf(gc, "/local/domain/0/dms/%u/%u/state",
-> +                          domid, dmid);
-
-Isn't this control path shared with qemu? I'm not sure we can just
-change it like that? We need to at least retain compatibility with
-pre-disag qemus.
-
->      return libxl__wait_for_offspring(gc, domid,
->                                       LIBXL_DEVICE_MODEL_START_TIMEOUT,
->                                       "Device Model", path, state, spawning,
-
->  const char *libxl__domain_device_model(libxl__gc *gc,
-> -                                       const libxl_domain_build_info *info)
-> +                                       uint32_t dmid,
-> +                                       const libxl_domain_build_info *b_info)
->  {
->      libxl_ctx *ctx = libxl__gc_owner(gc);
->      const char *dm;
-> +    libxl_domain_config *guest_config = CONTAINER_OF(b_info, *guest_config,
-> +                                                     b_info);
-> 
-> -    if (libxl_defbool_val(info->device_model_stubdomain))
-> +    if (libxl_defbool_val(guest_config->b_info.device_model_stubdomain))
-
-You just extracted guest_config from b_info but you still have the
-b_info point to hand. Why not use it? Likewise a few more times below.
->  {
-> +    /**
-
-The ** implies some sort of automagic comments->doc parsing process
-which we don't have here.
-
-> +     * PCI device number. Before 3, we have IDE, ISA, SouthBridge and
-> +     * XEN PCI. Theses devices will be emulate in each QEMU, but only
-> +     * one QEMU (the one which emulates default device) will register
-> +     * these devices through Xen PCI hypercall.
-> +     */
-> +    static unsigned int bdf = 3;
-
-Do you mean const rather than static?
-
-Isn't this baking in some implementation detail from the current qemu
-version? What happens if it changes?
-
-> +
->      libxl_ctx *ctx = libxl__gc_owner(gc);
->      const libxl_domain_create_info *c_info = &guest_config->c_info;
->      const libxl_domain_build_info *b_info = &guest_config->b_info;
-> +    const libxl_dm *dm_config = &guest_config->dms[dmid];
->      const libxl_device_disk *disks = guest_config->disks;
->      const libxl_device_nic *nics = guest_config->nics;
->      const int num_disks = guest_config->num_disks;
->      const int num_nics = guest_config->num_nics;
-> -    const libxl_vnc_info *vnc = libxl__dm_vnc(guest_config);
-> +    const libxl_vnc_info *vnc = libxl__dm_vnc(dmid, guest_config);
->      const libxl_sdl_info *sdl = dm_sdl(guest_config);
->      const char *keymap = dm_keymap(guest_config);
->      flexarray_t *dm_args;
->      int i;
->      uint64_t ram_size;
-> +    uint32_t cap_ui = dm_config->capabilities & LIBXL_DM_CAP_UI;
-> +    uint32_t cap_ide = dm_config->capabilities & LIBXL_DM_CAP_IDE;
-> +    uint32_t cap_serial = dm_config->capabilities & LIBXL_DM_CAP_SERIAL;
-> +    uint32_t cap_audio = dm_config->capabilities & LIBXL_DM_CAP_AUDIO;
-
-->capabilities is defined as 64 bits, but you use 32 here, which happens
-to work if you know what the actual values of the enum are but whoever
-adds the 33rd capability will probably get it wrong.
-
-     bool cap_foo = !! (dm_....capabiltieis & LIBXL_DM_CAP_FOO)
-
-would probably work?
-
-> 
->      dm_args = flexarray_make(16, 1);
->      if (!dm_args)
-> @@ -348,11 +389,12 @@ static char ** libxl__build_device_model_args_new(libxl__gc *gc,
->                        "-xen-domid",
->                        libxl__sprintf(gc, "%d", guest_domid), NULL);
-> 
-> +    flexarray_append(dm_args, "-nodefaults");
-
-Does this not cause a change in behaviour other than what you've
-accounted for here?
-
-> @@ -528,65 +583,69 @@ static char ** libxl__build_device_model_args_new(libxl__gc *gc,
->          abort();
->      }
-> 
-> -    ram_size = libxl__sizekb_to_mb(b_info->max_memkb - b_info->video_memkb);
-> +    // Allocate ram space of 32Mo per previous device model to store rom
-
-What is this about?
-
-(also that Mo looks a bit odd in among all these mb's)
-
-Ian.
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1345751525.23624.58.camel@dagon.hellion.org.uk> b/test/corpus/<1345751525.23624.58.camel@dagon.hellion.org.uk>
deleted file mode 100644 (file)
index a34fae9..0000000
+++ /dev/null
@@ -1,136 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Aug 23 20:55:31 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 23 Aug 2012 20:55:31 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T4dV2-0003n6-0h
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 23 Aug 2012 20:55:31 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T4dRo-0005OH-Q8; Thu, 23 Aug 2012 19:52:08 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1T4dRn-0005OA-Is
-       for xen-devel@lists.xen.org; Thu, 23 Aug 2012 19:52:07 +0000
-Received: from [85.158.143.99:59772] by server-1.bemta-4.messagelabs.com id
-       AD/03-12504-6E986305; Thu, 23 Aug 2012 19:52:06 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-13.tower-216.messagelabs.com!1345751526!26647759!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTA0MjY=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 10437 invoked from network); 23 Aug 2012 19:52:06 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-13.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
-       23 Aug 2012 19:52:06 -0000
-X-IronPort-AV: E=Sophos;i="4.80,301,1344211200"; d="scan'208";a="14155361"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       23 Aug 2012 19:52:06 +0000
-Received: from [127.0.0.1] (10.80.16.67) by smtprelay.citrix.com
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0;
-       Thu, 23 Aug 2012 20:52:06 +0100
-Message-ID: <1345751525.23624.58.camel@dagon.hellion.org.uk>
-From: Ian Campbell <Ian.Campbell@citrix.com>
-To: Julien Grall <julien.grall@citrix.com>
-Date: Thu, 23 Aug 2012 20:52:05 +0100
-In-Reply-To: <503680C5.6070509@citrix.com>
-References: <cover.1345552068.git.julien.grall@citrix.com>
-       <fcf046ea782dda6cacb3bf11813bf1d16e531e6b.1345552068.git.julien.grall@citrix.com>
-       <1345728471.12501.90.camel@zakaz.uk.xensource.com>
-       <503680C5.6070509@citrix.com>
-Organization: Citrix Systems, Inc.
-X-Mailer: Evolution 3.4.3-1 
-MIME-Version: 1.0
-Cc: "christian.limpach@gmail.com" <christian.limpach@gmail.com>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
-       "qemu-devel@nongnu.org" <qemu-devel@nongnu.org>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [XEN][RFC PATCH V2 11/17] xc: modify save/restore
- to support multiple device models
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Thu, 2012-08-23 at 20:13 +0100, Julien Grall wrote:
-> On 08/23/2012 02:27 PM, Ian Campbell wrote:
-> >
-> >> @@ -103,6 +103,9 @@ static ssize_t rdexact(xc_interface *xch, struct restore_ctx *ctx,
-> >>   #else
-> >>   #define RDEXACT read_exact
-> >>   #endif
-> >> +
-> >> +#define QEMUSIG_SIZE 21
-> >> +
-> >>   /*
-> >>   ** In the state file (or during transfer), all page-table pages are
-> >>   ** converted into a 'canonical' form where references to actual mfns
-> >> @@ -467,7 +522,7 @@ static int buffer_tail_hvm(xc_interface *xch, struct restore_ctx *ctx,
-> >>                              int vcpuextstate, uint32_t vcpuextstate_size)
-> >>   {
-> >>       uint8_t *tmp;
-> >> -    unsigned char qemusig[21];
-> >> +    unsigned char qemusig[QEMUSIG_SIZE + 1];
-> >>      
-> > An extra + 1 here?
-> >    
-> QEMUSIG_SIZE doesn't take into account the '\0'. So we need to add 1.
-> If an error occurred, without +1, the output log lost the last character.
-
-So this is just a bug fix for a pre-existing issue?
-
-> > [...]
-> >    
-> >> -    qemusig[20] = '\0';
-> >> +    qemusig[QEMUSIG_SIZE] = '\0';
-> >>      
-> > This is one bigger than it used to be now.
-> >
-> > Perhaps this is an unrelated bug fix (I haven't check the real length of
-> > the sig), in which case please can you split it out and submit
-> > separately?
-> >    
-> 
-> #define QEMU_SIGNATURE "DeviceModelRecord0002"
-> Just checked, the length seems to be 21. I will send a patch with
-> this change.
-
-Perhaps use either sizeof(QEMU_SIGNATURE) or strlen(QEMU_SIGNATURE)
-(depending on which semantics you want)?
-
-Ian.
-
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1345804516.12501.182.camel@zakaz.uk.xensource.com> b/test/corpus/<1345804516.12501.182.camel@zakaz.uk.xensource.com>
deleted file mode 100644 (file)
index 462c646..0000000
+++ /dev/null
@@ -1,166 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Aug 24 11:40:30 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 24 Aug 2012 11:40:30 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T4rJT-00020K-Px
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 24 Aug 2012 11:40:30 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T4rFf-0002ME-Th; Fri, 24 Aug 2012 10:36:31 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1T4rFe-0002M7-Jy
-       for xen-devel@lists.xen.org; Fri, 24 Aug 2012 10:36:30 +0000
-Received: from [85.158.143.99:51126] by server-1.bemta-4.messagelabs.com id
-       29/5C-12504-D2957305; Fri, 24 Aug 2012 10:36:29 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-3.tower-216.messagelabs.com!1345804518!27163221!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTA2NTk=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 25622 invoked from network); 24 Aug 2012 10:35:19 -0000
-Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-3.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
-       24 Aug 2012 10:35:19 -0000
-X-IronPort-AV: E=Sophos;i="4.80,302,1344211200"; d="scan'208";a="14165881"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       24 Aug 2012 10:35:18 +0000
-Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0;
-       Fri, 24 Aug 2012 11:35:18 +0100
-Message-ID: <1345804516.12501.182.camel@zakaz.uk.xensource.com>
-From: Ian Campbell <Ian.Campbell@citrix.com>
-To: Julien Grall <julien.grall@citrix.com>
-Date: Fri, 24 Aug 2012 11:35:16 +0100
-In-Reply-To: <50375721.7080503@citrix.com>
-References: <cover.1345552068.git.julien.grall@citrix.com>
-       <fcf046ea782dda6cacb3bf11813bf1d16e531e6b.1345552068.git.julien.grall@citrix.com>
-       <1345728471.12501.90.camel@zakaz.uk.xensource.com>
-       <503680C5.6070509@citrix.com>
-       <1345751525.23624.58.camel@dagon.hellion.org.uk>
-       <50375721.7080503@citrix.com>
-Organization: Citrix Systems, Inc.
-X-Mailer: Evolution 3.4.3-1 
-MIME-Version: 1.0
-Cc: "christian.limpach@gmail.com" <christian.limpach@gmail.com>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
-       "qemu-devel@nongnu.org" <qemu-devel@nongnu.org>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
-Subject: Re: [Xen-devel] [XEN][RFC PATCH V2 11/17] xc: modify save/restore
- to support multiple device models
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Fri, 2012-08-24 at 11:27 +0100, Julien Grall wrote:
-> On 08/23/2012 08:52 PM, Ian Campbell wrote:
-> > On Thu, 2012-08-23 at 20:13 +0100, Julien Grall wrote:
-> >    
-> >> On 08/23/2012 02:27 PM, Ian Campbell wrote:
-> >>      
-> >>>        
-> >>>> @@ -103,6 +103,9 @@ static ssize_t rdexact(xc_interface *xch, struct restore_ctx *ctx,
-> >>>>    #else
-> >>>>    #define RDEXACT read_exact
-> >>>>    #endif
-> >>>> +
-> >>>> +#define QEMUSIG_SIZE 21
-> >>>> +
-> >>>>    /*
-> >>>>    ** In the state file (or during transfer), all page-table pages are
-> >>>>    ** converted into a 'canonical' form where references to actual mfns
-> >>>> @@ -467,7 +522,7 @@ static int buffer_tail_hvm(xc_interface *xch, struct restore_ctx *ctx,
-> >>>>                               int vcpuextstate, uint32_t vcpuextstate_size)
-> >>>>    {
-> >>>>        uint8_t *tmp;
-> >>>> -    unsigned char qemusig[21];
-> >>>> +    unsigned char qemusig[QEMUSIG_SIZE + 1];
-> >>>>
-> >>>>          
-> >>> An extra + 1 here?
-> >>>
-> >>>        
-> >> QEMUSIG_SIZE doesn't take into account the '\0'. So we need to add 1.
-> >> If an error occurred, without +1, the output log lost the last character.
-> >>      
-> > So this is just a bug fix for a pre-existing issue?
-> >    
-> Yes.
-
-Can we get it as a separate change?
-
-> 
-> >>> [...]
-> >>>
-> >>>        
-> >>>> -    qemusig[20] = '\0';
-> >>>> +    qemusig[QEMUSIG_SIZE] = '\0';
-> >>>>
-> >>>>          
-> >>> This is one bigger than it used to be now.
-> >>>
-> >>> Perhaps this is an unrelated bug fix (I haven't check the real length of
-> >>> the sig), in which case please can you split it out and submit
-> >>> separately?
-> >>>
-> >>>        
-> >> #define QEMU_SIGNATURE "DeviceModelRecord0002"
-> >> Just checked, the length seems to be 21. I will send a patch with
-> >> this change.
-> >>      
-> > Perhaps use either sizeof(QEMU_SIGNATURE) or strlen(QEMU_SIGNATURE)
-> > (depending on which semantics you want)?
-> >    
-> Here, QEMU_SIZE needs to be define as strlen (QEMU_SIGNATURE),
-> but QEMU_SIGNATURE is not defined in libxc. It's defined
-> in libxl/libxl_internal.h.
-
-Oh, right, this again :-/
-
-> By the way, I'm wondering why QEMU save (libxl__domain_save_device_model)
-> is made in libxl and restore (dump_qemu) in libxc ?
-
-Mostly historical accident, we'd really like to sort this out one way or
-the other but untangling the protocol and the callbacks etc is a pretty
-big job.
-
-In the meantime perhaps libxc could provide a suitable "typedef char
-device_model_signature_t[21]"?
-
-Ian.
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1345813421.19419.11.camel@zakaz.uk.xensource.com> b/test/corpus/<1345813421.19419.11.camel@zakaz.uk.xensource.com>
deleted file mode 100644 (file)
index 0d7dd16..0000000
+++ /dev/null
@@ -1,142 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Aug 24 14:07:51 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 24 Aug 2012 14:07:51 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T4tc4-0002ST-Ru
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 24 Aug 2012 14:07:51 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T4tYF-0007PG-AK; Fri, 24 Aug 2012 13:03:51 +0000
-Received: from mail27.messagelabs.com ([193.109.254.147])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1T4tYD-0007Ov-Iv
-       for xen-devel@lists.xen.org; Fri, 24 Aug 2012 13:03:49 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-3.tower-27.messagelabs.com!1345813423!8786838!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTA2NTk=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 24557 invoked from network); 24 Aug 2012 13:03:43 -0000
-Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-3.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
-       24 Aug 2012 13:03:43 -0000
-X-IronPort-AV: E=Sophos;i="4.80,304,1344211200"; d="scan'208";a="14168898"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       24 Aug 2012 13:03:43 +0000
-Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0;
-       Fri, 24 Aug 2012 14:03:43 +0100
-Message-ID: <1345813421.19419.11.camel@zakaz.uk.xensource.com>
-From: Ian Campbell <Ian.Campbell@citrix.com>
-To: Julien Grall <julien.grall@citrix.com>
-Date: Fri, 24 Aug 2012 14:03:41 +0100
-In-Reply-To: <503779F5.80508@citrix.com>
-References: <cover.1345552068.git.julien.grall@citrix.com>
-       <51efcbff92f713286b5839884769ef34ab0c39f7.1345552068.git.julien.grall@citrix.com>
-       <1345728617.12501.92.camel@zakaz.uk.xensource.com>
-       <503779F5.80508@citrix.com>
-Organization: Citrix Systems, Inc.
-X-Mailer: Evolution 3.4.3-1 
-MIME-Version: 1.0
-Cc: "christian.limpach@gmail.com" <christian.limpach@gmail.com>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
-       "qemu-devel@nongnu.org" <qemu-devel@nongnu.org>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [XEN][RFC PATCH V2 12/17] xl: Add interface to
- handle qemu disaggregation
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Fri, 2012-08-24 at 13:56 +0100, Julien Grall wrote:
-> On 08/23/2012 02:30 PM, Ian Campbell wrote:
-> > On Wed, 2012-08-22 at 13:31 +0100, Julien Grall wrote:
-> >    
-> >> This patch modifies libxl interface for qemu disaggregation.
-> >>      
-> > I'd rather see the interfaces changes in the same patch as the
-> > implementation of the new interfaces.
-> >
-> >    
-> >> For the moment, due to some dependencies between devices, we
-> >> can't let the user choose which QEMU emulate a device.
-> >>
-> >> Moreoever this patch adds an "id" field to nic interface.
-> >> It will be used in config file to specify which QEMU handle
-> >> the network card.
-> >>      
-> > Is domid+devid not sufficient to identify which nic?
-> >    
-> Is the user can specify or find devid easily ?
-> I added "id" because, I would like that the user
-> can identify without any problem a network
-> interface.
-
-At the libxl level the libxl_device_nic struct has a devid in it.
-
-That's not to say that xl can't add a layer of naming and indirection on
-top.
-
-> >> @@ -246,6 +246,20 @@ libxl_domain_sched_params = Struct("domain_sched_params",[
-> >>       ("extratime",    integer, {'init_val': 'LIBXL_DOMAIN_SCHED_PARAM_EXTRATIME_DEFAULT'}),
-> >>       ])
-> >>
-> >> +libxl_dm_cap = Enumeration("dm_cap", [
-> >> +    (1, "UI"), # Emulate all UI + default device
-> >>      
-> > What does "default device" equate too?
-> >    
-> The following devices:
->     - i440fx
->     - piix3
->     - piix4
->     - dma
->     - xen apic
->     - xen platform
-
-So this is more like "CORE" than "UI"?
-
-Is there a reason why UI (which I guess means the VGA, spice and VFB
-devices?) are required to be in the same emulator as these?
-
-> >> +    (2, "IDE"), # Emulate IDE
-> >> +    (4, "SERIAL"), # Emulate Serial
-> >> +    (8, "AUDIO"), # Emulate audio
-> >> +    ])
-> >> +
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1345817370.19419.22.camel@zakaz.uk.xensource.com> b/test/corpus/<1345817370.19419.22.camel@zakaz.uk.xensource.com>
deleted file mode 100644 (file)
index d2292ff..0000000
+++ /dev/null
@@ -1,203 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Aug 24 19:09:31 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 24 Aug 2012 19:09:31 +0100
-Received: from offsite2.bytemark.co.uk ([85.17.170.78])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T4xsC-0000iY-Ot
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 24 Aug 2012 18:40:47 +0100
-Received: from [50.57.142.19] (helo=lists.xen.org)
-       by offsite2.bytemark.co.uk with esmtp (Exim 4.69)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T4ufx-0004rE-GP
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 24 Aug 2012 14:15:54 +0000
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T4uZr-0000eM-0U; Fri, 24 Aug 2012 14:09:35 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1T4uZp-0000eH-5p
-       for xen-devel@lists.xen.org; Fri, 24 Aug 2012 14:09:33 +0000
-Received: from [85.158.143.35:35150] by server-3.bemta-4.messagelabs.com id
-       5A/8B-08232-C1B87305; Fri, 24 Aug 2012 14:09:32 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-2.tower-21.messagelabs.com!1345817372!5055942!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTA2NTk=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 23222 invoked from network); 24 Aug 2012 14:09:32 -0000
-Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-2.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
-       24 Aug 2012 14:09:32 -0000
-X-IronPort-AV: E=Sophos;i="4.80,304,1344211200"; d="scan'208";a="14170460"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       24 Aug 2012 14:09:31 +0000
-Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0;
-       Fri, 24 Aug 2012 15:09:32 +0100
-Message-ID: <1345817370.19419.22.camel@zakaz.uk.xensource.com>
-From: Ian Campbell <Ian.Campbell@citrix.com>
-To: Julien Grall <julien.grall@citrix.com>
-Date: Fri, 24 Aug 2012 15:09:30 +0100
-In-Reply-To: <503786CF.40006@citrix.com>
-References: <cover.1345552068.git.julien.grall@citrix.com>
-       <9522ee398a1fd3cdce48cfe883b307336ae6674f.1345552068.git.julien.grall@citrix.com>
-       <1345730172.12501.113.camel@zakaz.uk.xensource.com>
-       <503786CF.40006@citrix.com>
-Organization: Citrix Systems, Inc.
-X-Mailer: Evolution 3.4.3-1 
-MIME-Version: 1.0
-Cc: "christian.limpach@gmail.com" <christian.limpach@gmail.com>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
-       "qemu-devel@nongnu.org" <qemu-devel@nongnu.org>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 85.17.170.78
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,UNPARSEABLE_RELAY
-       autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [XEN][RFC PATCH V2 15/17] xl: support spawn/destroy
- on multiple device model
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Fri, 2012-08-24 at 14:51 +0100, Julien Grall wrote:
-> >> @@ -1044,7 +1044,8 @@ int libxl__wait_for_device_model(libxl__gc *gc,
-> >>                                    void *check_callback_userdata)
-> >>   {
-> >>       char *path;
-> >> -    path = libxl__sprintf(gc, "/local/domain/0/device-model/%d/state", domid);
-> >> +    path = libxl__sprintf(gc, "/local/domain/0/dms/%u/%u/state",
-> >> +                          domid, dmid);
-> >>      
-> > Isn't this control path shared with qemu? I'm not sure we can just
-> > change it like that? We need to at least retain compatibility with
-> > pre-disag qemus.
-> >
-> >    
-> Indeed, as we have multiple QEMUs for a same domain, we need
-> to have one control path by QEMU.
-> 
-> Pre-disag QEMUs cannot work with my changes inside the Xen.
-> Xen will not forward by default ioreq if there is no ioreq server.
-
-We might need to consider making disagg an opt in feature, with the
-default being to have as we do today.
-
-> >> +     * PCI device number. Before 3, we have IDE, ISA, SouthBridge and
-> >> +     * XEN PCI. Theses devices will be emulate in each QEMU, but only
-> >> +     * one QEMU (the one which emulates default device) will register
-> >> +     * these devices through Xen PCI hypercall.
-> >> +     */
-> >> +    static unsigned int bdf = 3;
-> >>      
-> > Do you mean const rather than static?
-> >
-> >    
-> No static. With QEMU disaggregation, the toolstack allocate
-> BDF incrementaly. QEMU is unable to know if a BDF is already
-> allocated in another QEMU.
-
-This is broken if the toolstack is building multiple domains, since the
-bdf will be preserved across each of them.
-
-You need to put this in some sort of data structure specific to this
-particular iteration of the builder code. We must surely have something
-suitable close to hand in this function. libxl__domain_build_state
-perhaps?
-
-A static variable in a library is almost always a mistake.
-
-> > Isn't this baking in some implementation detail from the current qemu
-> > version? What happens if it changes?
-> >    
-> 
-> I don't have another way for the moment. I would be happy,
-> if someone have a good solution.
-
-Could we at least make the assignments of the 3 prior BDFs explicit on
-the command line too?
-
-> >>       dm_args = flexarray_make(16, 1);
-> >>       if (!dm_args)
-> >> @@ -348,11 +389,12 @@ static char ** libxl__build_device_model_args_new(libxl__gc *gc,
-> >>                         "-xen-domid",
-> >>                         libxl__sprintf(gc, "%d", guest_domid), NULL);
-> >>
-> >> +    flexarray_append(dm_args, "-nodefaults");
-> >>      
-> > Does this not cause a change in behaviour other than what you've
-> > accounted for here?
-> >    
->   By default QEMU emulates VGA card, and a network card. This options,
-> disabled it  and avoid to add "-net none".
-> I added it after a discussion on my first patch series.
-> https://lists.gnu.org/archive/html/qemu-devel/2012-03/msg04767.html
-
-OK. 
-
-> >> @@ -528,65 +583,69 @@ static char ** libxl__build_device_model_args_new(libxl__gc *gc,
-> >>           abort();
-> >>       }
-> >>
-> >> -    ram_size = libxl__sizekb_to_mb(b_info->max_memkb - b_info->video_memkb);
-> >> +    // Allocate ram space of 32Mo per previous device model to store rom
-> >>      
-> > What is this about?
-> >
-> > (also that Mo looks a bit odd in among all these mb's)
-> >
-> >    
-> It's space for ROM allocation, like vga, rtl8139 roms ...
-> Each QEMU can load ROM and memory, but the memory
-> allocator consider that it's alone. It starts to allocate
-> ROM space from the end of memory RAM.
-> 
-> It's a solution suggest by Stefano, it's avoid modification
-> in QEMU. As we don't know the number of ROM and their
-> size per QEMU, we chose a space of 32 Mo to be sure, but in
-> fine most of time memory is not allocated.
-
-"32Mo per previous device model" is the bit which struck me as odd. That
-means the first device model uses 32Mo, the second 64Mo, the third 96Mo
-etc?
-
-Aren't we already modifying qemu quite substantially to implement this
-functionality anyway? so why are we trying to avoid it in this one
-corner? Especially at the cost of doing something which on the face of
-it looks quite strange!
-
-Isn't space for the ROMs allocated by SeaBIOS as part of enumerating the
-PCI bus anyway? Or is this a different per-ROM allocation?
-
-Ian.
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1345819507.19419.29.camel@zakaz.uk.xensource.com> b/test/corpus/<1345819507.19419.29.camel@zakaz.uk.xensource.com>
deleted file mode 100644 (file)
index f09c9ac..0000000
+++ /dev/null
@@ -1,196 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Aug 24 18:39:33 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 24 Aug 2012 18:39:33 +0100
-Received: from offsite2.bytemark.co.uk ([85.17.170.78])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T4xp4-0000lk-Jv
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 24 Aug 2012 18:37:33 +0100
-Received: from [50.57.142.19] (helo=lists.xen.org)
-       by offsite2.bytemark.co.uk with esmtp (Exim 4.69)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T4vDi-0003UE-VF
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 24 Aug 2012 14:50:47 +0000
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T4v8L-00013q-HP; Fri, 24 Aug 2012 14:45:13 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1T4v8K-00013l-Hu
-       for xen-devel@lists.xen.org; Fri, 24 Aug 2012 14:45:12 +0000
-Received: from [85.158.138.51:50188] by server-11.bemta-3.messagelabs.com id
-       55/A0-23152-77397305; Fri, 24 Aug 2012 14:45:11 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-2.tower-174.messagelabs.com!1345819509!27839772!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTA2NTk=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 9483 invoked from network); 24 Aug 2012 14:45:09 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-2.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
-       24 Aug 2012 14:45:09 -0000
-X-IronPort-AV: E=Sophos;i="4.80,304,1344211200"; d="scan'208";a="14171200"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       24 Aug 2012 14:45:08 +0000
-Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0;
-       Fri, 24 Aug 2012 15:45:09 +0100
-Message-ID: <1345819507.19419.29.camel@zakaz.uk.xensource.com>
-From: Ian Campbell <Ian.Campbell@citrix.com>
-To: Julien Grall <julien.grall@citrix.com>
-Date: Fri, 24 Aug 2012 15:45:07 +0100
-In-Reply-To: <50379193.3020600@citrix.com>
-References: <cover.1345552068.git.julien.grall@citrix.com>
-       <9522ee398a1fd3cdce48cfe883b307336ae6674f.1345552068.git.julien.grall@citrix.com>
-       <1345730172.12501.113.camel@zakaz.uk.xensource.com>
-       <503786CF.40006@citrix.com>
-       <1345817370.19419.22.camel@zakaz.uk.xensource.com>
-       <50379193.3020600@citrix.com>
-Organization: Citrix Systems, Inc.
-X-Mailer: Evolution 3.4.3-1 
-MIME-Version: 1.0
-Cc: "christian.limpach@gmail.com" <christian.limpach@gmail.com>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
-       "qemu-devel@nongnu.org" <qemu-devel@nongnu.org>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 85.17.170.78
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,UNPARSEABLE_RELAY
-       autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [XEN][RFC PATCH V2 15/17] xl: support spawn/destroy
- on multiple device model
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Fri, 2012-08-24 at 15:37 +0100, Julien Grall wrote:
-> In case of Xen, it's hard to have a compatibility. We can
-> still spawn only one QEMU, but ioreq handling will not
-> send an io request if no device models registered it.
-> There is no more default QEMU.
-
-This means we've broken existing qemu on a new hypervisor, which now
-that we have Xen support in upstream qemu is something we need to think
-about and decide if we are happy with that or not.
-
-Perhaps it is sufficient for this to be a compile time thing, i.e.
-detect if we are building against a disagg capable hypervisor or not.
-
-Or maybe it has to be a runtime thing with Xen only turning off the
-default QEMU when the first io req region is registered, or something
-like that.
-
-> >>> Isn't this baking in some implementation detail from the current qemu
-> >>> version? What happens if it changes?
-> >>>
-> >>>        
-> >> I don't have another way for the moment. I would be happy,
-> >> if someone have a good solution.
-> >>      
-> > Could we at least make the assignments of the 3 prior BDFs explicit on
-> > the command line too?
-> >    
-> I don't understand your question. Theses 3 priors BDFs can't
-> be modify via QEMU command line (or I don't know how).
-
-Could qemu be modified to allow this?
-
-> >>>> @@ -528,65 +583,69 @@ static char ** libxl__build_device_model_args_new(libxl__gc *gc,
-> >>>>            abort();
-> >>>>        }
-> >>>>
-> >>>> -    ram_size = libxl__sizekb_to_mb(b_info->max_memkb - b_info->video_memkb);
-> >>>> +    // Allocate ram space of 32Mo per previous device model to store rom
-> >>>>
-> >>>>          
-> >>> What is this about?
-> >>>
-> >>> (also that Mo looks a bit odd in among all these mb's)
-> >>>
-> >>>
-> >>>        
-> >> It's space for ROM allocation, like vga, rtl8139 roms ...
-> >> Each QEMU can load ROM and memory, but the memory
-> >> allocator consider that it's alone. It starts to allocate
-> >> ROM space from the end of memory RAM.
-> >>
-> >> It's a solution suggest by Stefano, it's avoid modification
-> >> in QEMU. As we don't know the number of ROM and their
-> >> size per QEMU, we chose a space of 32 Mo to be sure, but in
-> >> fine most of time memory is not allocated.
-> >>      
-> > "32Mo per previous device model" is the bit which struck me as odd. That
-> > means the first device model uses 32Mo, the second 64Mo, the third 96Mo
-> > etc?
-> >    
-> That means:
->      - first QEMU can allocate ROM after ram_size + 0
->      - second after ram_size + 32 mo
->      - ...
-> 
-> It's a hack to avoid modification in QEMU memory allocator
-> (find_ram_offset exec.c in QEMU).
-
-Why don't we enhance the memory allocator instead of adding hacks?
-
-> > Aren't we already modifying qemu quite substantially to implement this
-> > functionality anyway? so why are we trying to avoid it in this one
-> > corner? Especially at the cost of doing something which on the face of
-> > it looks quite strange!
-> >
-> >    
-> It's not possible to made it in QEMU, otherwise QEMU need to
-> be spawn one by one. Indeed, the next QEMU need to know
-> what is the last 'address' used by the previous QEMU.
-
-Or each one needs to be told explicitly where to put its ROMs. Encoding
-a magic 32Mo*N in the interface is just too hacky.
-
-> I made a modification in this way, but it was abandoned. Indeed,
-> it required XenStore.
-> 
-> > Isn't space for the ROMs allocated by SeaBIOS as part of enumerating the
-> > PCI bus anyway? Or is this a different per-ROM allocation?
-> >    
-> It's the rom allocated via pci_add_option_rom in QEMU.
-> QEMU seems to store ROM in memory and then SeaBIOS
-> will copy it, in the right place.
-
-So the ROM binary (the content of the ROM_BAR) is stored in "guest"
-memory? That seems a bit odd to me, I'd have thought it would be stored
-in the host and provided on demand when the ROM BAR was accessed.
-
-Is there any scope for changing this behaviour?
-
-Ian.
-
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1346246116-29999-1-git-send-email-david.vrabel@citrix.com> b/test/corpus/<1346246116-29999-1-git-send-email-david.vrabel@citrix.com>
deleted file mode 100644 (file)
index 50b9f7d..0000000
+++ /dev/null
@@ -1,102 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Aug 29 14:21:11 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 29 Aug 2012 14:21:11 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T6iCf-0007l7-FH
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 29 Aug 2012 14:21:11 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T6i7y-00069S-4Y; Wed, 29 Aug 2012 13:16:14 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <david.vrabel@citrix.com>) id 1T6i7x-00069N-6n
-       for xen-devel@lists.xensource.com; Wed, 29 Aug 2012 13:16:13 +0000
-Received: from [85.158.143.35:28458] by server-1.bemta-4.messagelabs.com id
-       07/2D-12504-C161E305; Wed, 29 Aug 2012 13:16:12 +0000
-X-Env-Sender: david.vrabel@citrix.com
-X-Msg-Ref: server-9.tower-21.messagelabs.com!1346246164!4696063!1
-X-Originating-IP: [66.165.176.63]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyNzQ5MjE=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 12336 invoked from network); 29 Aug 2012 13:16:09 -0000
-Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
-       by server-9.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
-       29 Aug 2012 13:16:09 -0000
-X-IronPort-AV: E=Sophos;i="4.80,334,1344211200"; d="scan'208";a="206535744"
-Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
-       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       29 Aug 2012 13:15:57 +0000
-Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
-       (10.13.107.66) with Microsoft SMTP Server id 8.3.279.1;
-       Wed, 29 Aug 2012 09:15:57 -0400
-Received: from qabil.uk.xensource.com ([10.80.2.76])   by
-       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
-       <david.vrabel@citrix.com>)      id 1T6i7g-0005ii-Da;
-       Wed, 29 Aug 2012 14:15:56 +0100
-From: David Vrabel <david.vrabel@citrix.com>
-To: xen-devel@lists.xensource.com
-Date: Wed, 29 Aug 2012 14:15:14 +0100
-Message-ID: <1346246116-29999-1-git-send-email-david.vrabel@citrix.com>
-X-Mailer: git-send-email 1.7.2.5
-MIME-Version: 1.0
-Cc: Andres Lagar-Cavilla <andres@gridcentric.ca>,
-       David Vrabel <david.vrabel@citrix.com>,
-       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: [Xen-devel] [PATCHv2 0/2] xen/privcmd: support for paged-out frames
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-This series is a straight forward-port of some functionality from
-classic kernels to support Xen hosts that do paging of guests.
-
-This isn't functionality the XenServer makes use of so I've not tested
-these with paging in use.
-
-Changes since v1:
-
-- Don't change PRIVCMD_MMAPBATCH (except to #define a constant for the
-  error).  It's broken and not really fixable sensibly and libxc will
-  use V2 if it is available.
-- Return -ENOENT if all failures were -ENOENT.
-- Clear arg->err on success (libxc expected this).
-
-I think this should probably get a "Tested-by" Andres or someone else
-who uses paging before being applied.
-
-David
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1346246116-29999-2-git-send-email-david.vrabel@citrix.com> b/test/corpus/<1346246116-29999-2-git-send-email-david.vrabel@citrix.com>
deleted file mode 100644 (file)
index c669ea5..0000000
+++ /dev/null
@@ -1,119 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Aug 29 14:21:14 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 29 Aug 2012 14:21:14 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T6iCi-0007l9-2G
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 29 Aug 2012 14:21:13 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T6i81-00069h-Gr; Wed, 29 Aug 2012 13:16:17 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <david.vrabel@citrix.com>) id 1T6i7z-00069Z-C4
-       for xen-devel@lists.xensource.com; Wed, 29 Aug 2012 13:16:15 +0000
-Received: from [85.158.143.35:28586] by server-3.bemta-4.messagelabs.com id
-       EA/43-08232-E161E305; Wed, 29 Aug 2012 13:16:14 +0000
-X-Env-Sender: david.vrabel@citrix.com
-X-Msg-Ref: server-9.tower-21.messagelabs.com!1346246164!4696063!2
-X-Originating-IP: [66.165.176.63]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyNzQ5MjE=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 12441 invoked from network); 29 Aug 2012 13:16:10 -0000
-Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
-       by server-9.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
-       29 Aug 2012 13:16:10 -0000
-X-IronPort-AV: E=Sophos;i="4.80,334,1344211200"; d="scan'208";a="206535745"
-Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
-       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       29 Aug 2012 13:15:57 +0000
-Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
-       (10.13.107.66) with Microsoft SMTP Server id 8.3.279.1;
-       Wed, 29 Aug 2012 09:15:57 -0400
-Received: from qabil.uk.xensource.com ([10.80.2.76])   by
-       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
-       <david.vrabel@citrix.com>)      id 1T6i7g-0005ii-FK;
-       Wed, 29 Aug 2012 14:15:56 +0100
-From: David Vrabel <david.vrabel@citrix.com>
-To: xen-devel@lists.xensource.com
-Date: Wed, 29 Aug 2012 14:15:15 +0100
-Message-ID: <1346246116-29999-2-git-send-email-david.vrabel@citrix.com>
-X-Mailer: git-send-email 1.7.2.5
-In-Reply-To: <1346246116-29999-1-git-send-email-david.vrabel@citrix.com>
-References: <1346246116-29999-1-git-send-email-david.vrabel@citrix.com>
-MIME-Version: 1.0
-Cc: Andres Lagar-Cavilla <andres@gridcentric.ca>,
-       David Vrabel <david.vrabel@citrix.com>,
-       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: [Xen-devel] [PATCH 1/2] xen/mm: return more precise error from
-       xen_remap_domain_range()
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-From: David Vrabel <david.vrabel@citrix.com>
-
-Callers of xen_remap_domain_range() need to know if the remap failed
-because frame is currently paged out.  So they can retry the remap
-later on.  Return -ENOENT in this case.
-
-This assumes that the error codes returned by Xen are a subset of
-those used by the kernel.  It is unclear if this is defined as part of
-the hypercall ABI.
-
-Signed-off-by: David Vrabel <david.vrabel@citrix.com>
----
- arch/x86/xen/mmu.c |    4 ++--
- 1 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/arch/x86/xen/mmu.c b/arch/x86/xen/mmu.c
-index b65a761..fb187ea 100644
---- a/arch/x86/xen/mmu.c
-+++ b/arch/x86/xen/mmu.c
-@@ -2355,8 +2355,8 @@ int xen_remap_domain_mfn_range(struct vm_area_struct *vma,
-               if (err)
-                       goto out;
--              err = -EFAULT;
--              if (HYPERVISOR_mmu_update(mmu_update, batch, NULL, domid) < 0)
-+              err = HYPERVISOR_mmu_update(mmu_update, batch, NULL, domid);
-+              if (err < 0)
-                       goto out;
-               nr -= batch;
--- 
-1.7.2.5
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1346246116-29999-3-git-send-email-david.vrabel@citrix.com> b/test/corpus/<1346246116-29999-3-git-send-email-david.vrabel@citrix.com>
deleted file mode 100644 (file)
index a5f5ec7..0000000
+++ /dev/null
@@ -1,283 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Aug 29 14:21:17 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 29 Aug 2012 14:21:17 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T6iCl-0007lB-Iw
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 29 Aug 2012 14:21:17 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T6i8B-0006AY-TO; Wed, 29 Aug 2012 13:16:27 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <david.vrabel@citrix.com>) id 1T6i89-0006AR-QT
-       for xen-devel@lists.xensource.com; Wed, 29 Aug 2012 13:16:26 +0000
-Received: from [85.158.143.35:29224] by server-1.bemta-4.messagelabs.com id
-       E0/9D-12504-9261E305; Wed, 29 Aug 2012 13:16:25 +0000
-X-Env-Sender: david.vrabel@citrix.com
-X-Msg-Ref: server-15.tower-21.messagelabs.com!1346246169!13924046!1
-X-Originating-IP: [66.165.176.63]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyNzQ5MjE=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 7930 invoked from network); 29 Aug 2012 13:16:11 -0000
-Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
-       by server-15.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
-       29 Aug 2012 13:16:11 -0000
-X-IronPort-AV: E=Sophos;i="4.80,334,1344211200"; d="scan'208";a="206535746"
-Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
-       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       29 Aug 2012 13:15:57 +0000
-Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
-       (10.13.107.66) with Microsoft SMTP Server id 8.3.279.1;
-       Wed, 29 Aug 2012 09:15:57 -0400
-Received: from qabil.uk.xensource.com ([10.80.2.76])   by
-       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
-       <david.vrabel@citrix.com>)      id 1T6i7g-0005ii-Ft;
-       Wed, 29 Aug 2012 14:15:56 +0100
-From: David Vrabel <david.vrabel@citrix.com>
-To: xen-devel@lists.xensource.com
-Date: Wed, 29 Aug 2012 14:15:16 +0100
-Message-ID: <1346246116-29999-3-git-send-email-david.vrabel@citrix.com>
-X-Mailer: git-send-email 1.7.2.5
-In-Reply-To: <1346246116-29999-1-git-send-email-david.vrabel@citrix.com>
-References: <1346246116-29999-1-git-send-email-david.vrabel@citrix.com>
-MIME-Version: 1.0
-Cc: Andres Lagar-Cavilla <andres@gridcentric.ca>,
-       David Vrabel <david.vrabel@citrix.com>,
-       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: [Xen-devel] [PATCH 2/2] xen/privcmd: add PRIVCMD_MMAPBATCH_V2 ioctl
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-From: David Vrabel <david.vrabel@citrix.com>
-
-PRIVCMD_MMAPBATCH_V2 extends PRIVCMD_MMAPBATCH with an additional
-field for reporting the error code for every frame that could not be
-mapped.  libxc prefers PRIVCMD_MMAPBATCH_V2 over PRIVCMD_MMAPBATCH.
-
-Signed-off-by: David Vrabel <david.vrabel@citrix.com>
----
- drivers/xen/privcmd.c |   78 +++++++++++++++++++++++++++++++++++++-----------
- include/xen/privcmd.h |   21 ++++++++++++-
- 2 files changed, 80 insertions(+), 19 deletions(-)
-
-diff --git a/drivers/xen/privcmd.c b/drivers/xen/privcmd.c
-index ccee0f1..ddd32cf 100644
---- a/drivers/xen/privcmd.c
-+++ b/drivers/xen/privcmd.c
-@@ -248,18 +248,23 @@ struct mmap_batch_state {
-       struct vm_area_struct *vma;
-       int err;
--      xen_pfn_t __user *user;
-+      xen_pfn_t __user *user_mfn;
-+      int __user *user_err;
- };
- static int mmap_batch_fn(void *data, void *state)
- {
-       xen_pfn_t *mfnp = data;
-+      int *err = data;
-       struct mmap_batch_state *st = state;
-+      int ret;
--      if (xen_remap_domain_mfn_range(st->vma, st->va & PAGE_MASK, *mfnp, 1,
--                                     st->vma->vm_page_prot, st->domain) < 0) {
--              *mfnp |= 0xf0000000U;
--              st->err++;
-+      ret = xen_remap_domain_mfn_range(st->vma, st->va & PAGE_MASK, *mfnp, 1,
-+                                       st->vma->vm_page_prot, st->domain);
-+      if (ret < 0) {
-+              *err = ret;
-+              if (st->err == 0 || st->err == -ENOENT)
-+                      st->err = ret;
-       }
-       st->va += PAGE_SIZE;
-@@ -268,18 +273,30 @@ static int mmap_batch_fn(void *data, void *state)
- static int mmap_return_errors(void *data, void *state)
- {
--      xen_pfn_t *mfnp = data;
-+      int *err = data;
-       struct mmap_batch_state *st = state;
-+      int ret;
-+
-+      if (st->user_err)
-+              return __put_user(*err, st->user_err++);
-+      else {
-+              xen_pfn_t mfn;
--      return put_user(*mfnp, st->user++);
-+              ret = __get_user(mfn, st->user_mfn);
-+              if (ret < 0)
-+                      return ret;
-+
-+              mfn |= PRIVCMD_MMAPBATCH_MFN_ERROR;
-+              return __put_user(mfn, st->user_mfn++);
-+      }
- }
- static struct vm_operations_struct privcmd_vm_ops;
--static long privcmd_ioctl_mmap_batch(void __user *udata)
-+static long privcmd_ioctl_mmap_batch(void __user *udata, int version)
- {
-       int ret;
--      struct privcmd_mmapbatch m;
-+      struct privcmd_mmapbatch_v2 m;
-       struct mm_struct *mm = current->mm;
-       struct vm_area_struct *vma;
-       unsigned long nr_pages;
-@@ -289,15 +306,32 @@ static long privcmd_ioctl_mmap_batch(void __user *udata)
-       if (!xen_initial_domain())
-               return -EPERM;
--      if (copy_from_user(&m, udata, sizeof(m)))
--              return -EFAULT;
-+      switch (version) {
-+      case 1:
-+              if (copy_from_user(&m, udata, sizeof(struct privcmd_mmapbatch)))
-+                      return -EFAULT;
-+              /* Returns per-frame error in m.arr. */
-+              m.err = NULL;
-+              if (!access_ok(VERIFY_WRITE, m.arr, m.num * sizeof(*m.arr)))
-+                      return -EFAULT;
-+              break;
-+      case 2:
-+              if (copy_from_user(&m, udata, sizeof(struct privcmd_mmapbatch_v2)))
-+                      return -EFAULT;
-+              /* Returns per-frame error code in m.err. */
-+              if (!access_ok(VERIFY_WRITE, m.err, m.num * (sizeof(*m.err))))
-+                      return -EFAULT;
-+              break;
-+      default:
-+              return -EINVAL;
-+      }
-       nr_pages = m.num;
-       if ((m.num <= 0) || (nr_pages > (LONG_MAX >> PAGE_SHIFT)))
-               return -EINVAL;
-       ret = gather_array(&pagelist, m.num, sizeof(xen_pfn_t),
--                         m.arr);
-+                         (xen_pfn_t *)m.arr);
-       if (ret || list_empty(&pagelist))
-               goto out;
-@@ -325,12 +359,16 @@ static long privcmd_ioctl_mmap_batch(void __user *udata)
-       up_write(&mm->mmap_sem);
--      if (state.err > 0) {
--              state.user = m.arr;
-+      if (state.err) {
-+              state.user_mfn = (xen_pfn_t *)m.arr;
-+              state.user_err = m.err;
-               ret = traverse_pages(m.num, sizeof(xen_pfn_t),
--                             &pagelist,
--                             mmap_return_errors, &state);
--      }
-+                                   &pagelist,
-+                                   mmap_return_errors, &state);
-+              if (!ret)
-+                      ret = state.err;
-+      } else if (m.err)
-+              __clear_user(m.err, m.num * sizeof(*m.err));
- out:
-       free_page_list(&pagelist);
-@@ -354,7 +392,11 @@ static long privcmd_ioctl(struct file *file,
-               break;
-       case IOCTL_PRIVCMD_MMAPBATCH:
--              ret = privcmd_ioctl_mmap_batch(udata);
-+              ret = privcmd_ioctl_mmap_batch(udata, 1);
-+              break;
-+
-+      case IOCTL_PRIVCMD_MMAPBATCH_V2:
-+              ret = privcmd_ioctl_mmap_batch(udata, 2);
-               break;
-       default:
-diff --git a/include/xen/privcmd.h b/include/xen/privcmd.h
-index 17857fb..37e5255 100644
---- a/include/xen/privcmd.h
-+++ b/include/xen/privcmd.h
-@@ -59,13 +59,30 @@ struct privcmd_mmapbatch {
-       int num;     /* number of pages to populate */
-       domid_t dom; /* target domain */
-       __u64 addr;  /* virtual address */
--      xen_pfn_t __user *arr; /* array of mfns - top nibble set on err */
-+      xen_pfn_t __user *arr; /* array of mfns - or'd with
-+                                PRIVCMD_MMAPBATCH_MFN_ERROR on err */
-+};
-+
-+#define PRIVCMD_MMAPBATCH_MFN_ERROR 0xf0000000U
-+
-+struct privcmd_mmapbatch_v2 {
-+      unsigned int num; /* number of pages to populate */
-+      domid_t dom;      /* target domain */
-+      __u64 addr;       /* virtual address */
-+      const xen_pfn_t __user *arr; /* array of mfns */
-+      int __user *err;  /* array of error codes */
- };
- /*
-  * @cmd: IOCTL_PRIVCMD_HYPERCALL
-  * @arg: &privcmd_hypercall_t
-  * Return: Value returned from execution of the specified hypercall.
-+ *
-+ * @cmd: IOCTL_PRIVCMD_MMAPBATCH_V2
-+ * @arg: &struct privcmd_mmapbatch_v2
-+ * Return: 0 if all pages were mapped successfully. -ENOENT if all
-+ * failed mappings returned -ENOENT, otherwise the error code of the
-+ * first failed mapping.
-  */
- #define IOCTL_PRIVCMD_HYPERCALL                                       \
-       _IOC(_IOC_NONE, 'P', 0, sizeof(struct privcmd_hypercall))
-@@ -73,5 +90,7 @@ struct privcmd_mmapbatch {
-       _IOC(_IOC_NONE, 'P', 2, sizeof(struct privcmd_mmap))
- #define IOCTL_PRIVCMD_MMAPBATCH                                       \
-       _IOC(_IOC_NONE, 'P', 3, sizeof(struct privcmd_mmapbatch))
-+#define IOCTL_PRIVCMD_MMAPBATCH_V2                            \
-+      _IOC(_IOC_NONE, 'P', 4, sizeof(struct privcmd_mmapbatch_v2))
- #endif /* __LINUX_PUBLIC_PRIVCMD_H__ */
--- 
-1.7.2.5
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1346257402.20019.9.camel@zakaz.uk.xensource.com> b/test/corpus/<1346257402.20019.9.camel@zakaz.uk.xensource.com>
deleted file mode 100644 (file)
index a7855ac..0000000
+++ /dev/null
@@ -1,121 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Aug 29 17:28:17 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 29 Aug 2012 17:28:17 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T6l7n-0008FS-0h
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 29 Aug 2012 17:28:17 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T6l3A-0000DE-Nf; Wed, 29 Aug 2012 16:23:28 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1T6l39-0000D8-9T
-       for xen-devel@lists.xensource.com; Wed, 29 Aug 2012 16:23:27 +0000
-Received: from [85.158.143.99:52708] by server-3.bemta-4.messagelabs.com id
-       47/CA-08232-EF14E305; Wed, 29 Aug 2012 16:23:26 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-2.tower-216.messagelabs.com!1346257404!22130028!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTA3MTY=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 30011 invoked from network); 29 Aug 2012 16:23:24 -0000
-Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-2.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
-       29 Aug 2012 16:23:24 -0000
-X-IronPort-AV: E=Sophos;i="4.80,335,1344211200"; d="scan'208";a="14254795"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       29 Aug 2012 16:23:23 +0000
-Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.279.1;
-       Wed, 29 Aug 2012 17:23:23 +0100
-Message-ID: <1346257402.20019.9.camel@zakaz.uk.xensource.com>
-From: Ian Campbell <Ian.Campbell@citrix.com>
-To: David Vrabel <david.vrabel@citrix.com>
-Date: Wed, 29 Aug 2012 17:23:22 +0100
-In-Reply-To: <1346246116-29999-1-git-send-email-david.vrabel@citrix.com>
-References: <1346246116-29999-1-git-send-email-david.vrabel@citrix.com>
-Organization: Citrix Systems, Inc.
-X-Mailer: Evolution 3.4.3-1 
-MIME-Version: 1.0
-Cc: Andres Lagar-Cavilla <andres@gridcentric.ca>,
-       "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
-       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCHv2 0/2] xen/privcmd: support for paged-out
- frames
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Wed, 2012-08-29 at 14:15 +0100, David Vrabel wrote:
-> This series is a straight forward-port of some functionality from
-> classic kernels to support Xen hosts that do paging of guests.
-> 
-> This isn't functionality the XenServer makes use of so I've not tested
-> these with paging in use.
-> 
-> Changes since v1:
-> 
-> - Don't change PRIVCMD_MMAPBATCH (except to #define a constant for the
->   error).  It's broken and not really fixable sensibly and libxc will
->   use V2 if it is available.
-> - Return -ENOENT if all failures were -ENOENT.
-
-Is this behaviour a requirement from something?
-
-Usually hypercalls of this type return a global error only if something
-went wrong with the general mechanics of the hypercall (e.g. faults
-reading arguments etc) and leave reporting of the individual failures of
-subops to the op specific field, even if all the subops fail in the same
-way.
-
-Ian.
-
-> - Clear arg->err on success (libxc expected this).
-> 
-> I think this should probably get a "Tested-by" Andres or someone else
-> who uses paging before being applied.
-> 
-> David
-> 
-> 
-> _______________________________________________
-> Xen-devel mailing list
-> Xen-devel@lists.xen.org
-> http://lists.xen.org/xen-devel
-
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1346263520.6655.4.camel@dagon.hellion.org.uk> b/test/corpus/<1346263520.6655.4.camel@dagon.hellion.org.uk>
deleted file mode 100644 (file)
index 57f7480..0000000
+++ /dev/null
@@ -1,130 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Aug 29 19:10:03 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 29 Aug 2012 19:10:03 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T6miG-00005j-7I
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 29 Aug 2012 19:10:03 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T6mdp-0001CR-G7; Wed, 29 Aug 2012 18:05:25 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1T6mdn-0001CH-Fy
-       for xen-devel@lists.xensource.com; Wed, 29 Aug 2012 18:05:23 +0000
-Received: from [85.158.143.35:14064] by server-1.bemta-4.messagelabs.com id
-       DB/1F-12504-2E95E305; Wed, 29 Aug 2012 18:05:22 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-3.tower-21.messagelabs.com!1346263521!13206934!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTA3MTY=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 12368 invoked from network); 29 Aug 2012 18:05:22 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-3.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
-       29 Aug 2012 18:05:22 -0000
-X-IronPort-AV: E=Sophos;i="4.80,335,1344211200"; d="scan'208";a="14256174"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       29 Aug 2012 18:05:21 +0000
-Received: from [127.0.0.1] (10.80.16.67) by smtprelay.citrix.com
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.279.1;
-       Wed, 29 Aug 2012 19:05:21 +0100
-Message-ID: <1346263520.6655.4.camel@dagon.hellion.org.uk>
-From: Ian Campbell <Ian.Campbell@citrix.com>
-To: David Vrabel <david.vrabel@citrix.com>
-Date: Wed, 29 Aug 2012 19:05:20 +0100
-In-Reply-To: <503E49BE.7080704@citrix.com>
-References: <1346246116-29999-1-git-send-email-david.vrabel@citrix.com>
-       <1346257402.20019.9.camel@zakaz.uk.xensource.com>
-       <503E49BE.7080704@citrix.com>
-Organization: Citrix Systems, Inc.
-X-Mailer: Evolution 3.4.3-1 
-MIME-Version: 1.0
-Cc: Andres Lagar-Cavilla <andres@gridcentric.ca>,
-       "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
-       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCHv2 0/2] xen/privcmd: support for paged-out
- frames
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Wed, 2012-08-29 at 17:56 +0100, David Vrabel wrote:
-> On 29/08/12 17:23, Ian Campbell wrote:
-> > On Wed, 2012-08-29 at 14:15 +0100, David Vrabel wrote:
-> >> This series is a straight forward-port of some functionality from
-> >> classic kernels to support Xen hosts that do paging of guests.
-> >>
-> >> This isn't functionality the XenServer makes use of so I've not tested
-> >> these with paging in use.
-> >>
-> >> Changes since v1:
-> >>
-> >> - Don't change PRIVCMD_MMAPBATCH (except to #define a constant for the
-> >>   error).  It's broken and not really fixable sensibly and libxc will
-> >>   use V2 if it is available.
-> >> - Return -ENOENT if all failures were -ENOENT.
-> > 
-> > Is this behaviour a requirement from something?
-> 
-> It's the behaviour libxc is expecting.  It doesn't retry unless errno ==
-> ENOENT.
-
-Surely if that is the case you must return -ENOENT if *any* failure was
--ENOENT? That seems to be what the linux-2.6.18-xen.hg implementation
-does.
-
-> > Usually hypercalls of this type return a global error only if something
-> > went wrong with the general mechanics of the hypercall (e.g. faults
-> > reading arguments etc) and leave reporting of the individual failures of
-> > subops to the op specific field, even if all the subops fail in the same
-> > way.
-> 
-> I didn't design this interface...
-
-The interface you described doesn't make any sense so I was trying to
-suggest a way in which you may have misunderstood the interface you were
-trying to implement by pointing out the common pattern. It turns out
-this interface doesn't follow that common pattern, but it's still
-different to what you described AFAICT.
-
-> Feel free to propose (and implement) an alternate MMAPBATCH_V3 interface.
-
-No thanks ;-)
-
-Ian.
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1346421542.27277.218.camel@zakaz.uk.xensource.com> b/test/corpus/<1346421542.27277.218.camel@zakaz.uk.xensource.com>
deleted file mode 100644 (file)
index aa00228..0000000
+++ /dev/null
@@ -1,112 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Aug 31 15:04:15 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 31 Aug 2012 15:04:15 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T7RpR-0006s9-8Z
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 31 Aug 2012 15:04:14 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T7Rka-0000ri-Au; Fri, 31 Aug 2012 13:59:08 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1T7RkY-0000rZ-GD
-       for xen-devel@lists.xen.org; Fri, 31 Aug 2012 13:59:06 +0000
-Received: from [85.158.143.35:31777] by server-3.bemta-4.messagelabs.com id
-       B3/AA-08232-923C0405; Fri, 31 Aug 2012 13:59:05 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-15.tower-21.messagelabs.com!1346421544!14289139!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTEyMzY=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 2135 invoked from network); 31 Aug 2012 13:59:05 -0000
-Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-15.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
-       31 Aug 2012 13:59:05 -0000
-X-IronPort-AV: E=Sophos;i="4.80,347,1344211200"; d="scan'208";a="14290535"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       31 Aug 2012 13:59:04 +0000
-Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.279.1;
-       Fri, 31 Aug 2012 14:59:04 +0100
-Message-ID: <1346421542.27277.218.camel@zakaz.uk.xensource.com>
-From: Ian Campbell <Ian.Campbell@citrix.com>
-To: Dieter Bloms <xensource.com@bloms.de>
-Date: Fri, 31 Aug 2012 14:59:02 +0100
-In-Reply-To: <20120814100704.GA19704@bloms.de>
-References: <1344935141.5926.6.camel@zakaz.uk.xensource.com>
-       <20120814100704.GA19704@bloms.de>
-Organization: Citrix Systems, Inc.
-X-Mailer: Evolution 3.4.3-1 
-MIME-Version: 1.0
-Cc: "xen-users@lists.xen.org" <xen-users@lists.xen.org>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [Xen-users] Xen 4.2 TODO (io and irq parameter are
- not evaluated by xl)
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Tue, 2012-08-14 at 11:07 +0100, Dieter Bloms wrote:
-> Hi,
-> 
-> On Tue, Aug 14, Ian Campbell wrote:
-> 
-> > tools, blockers:
-> > 
-> >     * xl compatibility with xm:
-> > 
-> >         * No known issues
-> 
-> the parameter io and irq in domU config files are not evaluated by xl.
-> So it is not possible to passthrough a parallel port for my printer to
-> domU when I start the domU with xl command.
-> With xm I have no issue.
-
-Do you have a reference to the actual syntax you are using?
-
-As usual with xend this syntax appears to be mostly undocumented...
-
-http://wiki.xen.org/wiki/Xen_Configuration_File_Options seems to suggest
-that you can give the ioports multiple times, rather than the more usual
-approach of using an array. Whereas
-http://cmrg.fifthhorseman.net/wiki/xen seems to suggest that an array is
-how it is done. Perhaps the xen.org wiki is just badly worded and it is
-array based.
-
-Ian.
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1346425278.27277.224.camel@zakaz.uk.xensource.com> b/test/corpus/<1346425278.27277.224.camel@zakaz.uk.xensource.com>
deleted file mode 100644 (file)
index e958b68..0000000
+++ /dev/null
@@ -1,317 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Aug 31 16:05:04 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 31 Aug 2012 16:05:04 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T7SmI-00078E-2m
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 31 Aug 2012 16:05:04 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T7Siw-0003Rn-NM; Fri, 31 Aug 2012 15:01:30 +0000
-Received: from mail27.messagelabs.com ([193.109.254.147])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>)
-       id 1T7Siu-0003Qq-MD; Fri, 31 Aug 2012 15:01:28 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-8.tower-27.messagelabs.com!1346425280!8986924!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTEyMzY=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 11982 invoked from network); 31 Aug 2012 15:01:21 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-8.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
-       31 Aug 2012 15:01:21 -0000
-X-IronPort-AV: E=Sophos;i="4.80,347,1344211200"; d="scan'208";a="14292262"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       31 Aug 2012 15:01:19 +0000
-Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.279.1;
-       Fri, 31 Aug 2012 16:01:19 +0100
-Message-ID: <1346425278.27277.224.camel@zakaz.uk.xensource.com>
-From: Ian Campbell <Ian.Campbell@citrix.com>
-To: Dieter Bloms <xensource.com@bloms.de>
-Date: Fri, 31 Aug 2012 16:01:18 +0100
-In-Reply-To: <1346421542.27277.218.camel@zakaz.uk.xensource.com>
-References: <1344935141.5926.6.camel@zakaz.uk.xensource.com>
-       <20120814100704.GA19704@bloms.de>
-       <1346421542.27277.218.camel@zakaz.uk.xensource.com>
-Organization: Citrix Systems, Inc.
-X-Mailer: Evolution 3.4.3-1 
-MIME-Version: 1.0
-Cc: Ian Jackson <Ian.Jackson@eu.citrix.com>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [Xen-users] Xen 4.2 TODO (io and irq parameter are
- not evaluated by xl)
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-User list to BCC now that we are talking patches etc.
-
-On Fri, 2012-08-31 at 14:59 +0100, Ian Campbell wrote:
-> On Tue, 2012-08-14 at 11:07 +0100, Dieter Bloms wrote:
-> > Hi,
-> > 
-> > On Tue, Aug 14, Ian Campbell wrote:
-> > 
-> > > tools, blockers:
-> > > 
-> > >     * xl compatibility with xm:
-> > > 
-> > >         * No known issues
-> > 
-> > the parameter io and irq in domU config files are not evaluated by xl.
-> > So it is not possible to passthrough a parallel port for my printer to
-> > domU when I start the domU with xl command.
-> > With xm I have no issue.
-> 
-> Do you have a reference to the actual syntax you are using?
-
-Nevermind, I went with the fifthhorseman described syntax, the other one
-isn't useful in python (since only the last would take effect) so it
-won't be what xm is parsing.
-
-Does this work for you? I only tested by observing the sets of
-ports/irqs which are allowed for the domain.
-
-I don't think this can break anything other than the new options
-themselves so I think this patch could be a candidate for 4.2.0.
-
-8<---------------------------------------
-
-# HG changeset patch
-# User Ian Campbell <ian.campbell@citrix.com>
-# Date 1346424882 -3600
-# Node ID d6b418e9e52579a004797781c343734afc244389
-# Parent  ccbee5bcb31b72706497725381f4e6836b9df657
-libxl/xl: implement support for guest iooprt and irq permissions.
-
-This is useful for passing legacy ISA devices (e.g. com ports,
-parallel ports) to guests.
-
-Supported syntax is as described in
-http://cmrg.fifthhorseman.net/wiki/xen#grantingaccesstoserialhardwaretoadomU
-
-I tested this using Xen's 'q' key handler which prints out the I/O
-port and IRQ ranges allowed for each domain. e.g.:
-
-(XEN) Rangesets belonging to domain 31:
-(XEN)     I/O Ports  { 2e8-2ef, 2f8-2ff }
-(XEN)     Interrupts { 3, 5-6 }
-
-Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
-
-diff -r ccbee5bcb31b -r d6b418e9e525 docs/man/xl.cfg.pod.5
---- a/docs/man/xl.cfg.pod.5    Fri Aug 31 12:03:55 2012 +0100
-+++ b/docs/man/xl.cfg.pod.5    Fri Aug 31 15:54:42 2012 +0100
-@@ -402,6 +402,30 @@ for more information on the "permissive"
- =back
-+=item B<ioports=[ "IOPORT_RANGE", "IOPORT_RANGE", ... ]>
-+
-+=over 4
-+
-+Allow guest to access specific legacy I/O ports. Each B<IOPORT_RANGE>
-+is given in hexadecimal and may either a span e.g. C<2f8-2ff>
-+(inclusive) or a single I/O port C<2f8>.
-+
-+It is recommended to use this option only for trusted VMs under
-+administrator control.
-+
-+=back
-+
-+=item B<irqs=[ NUMBER, NUMBER, ... ]>
-+
-+=over 4
-+
-+Allow a guest to access specific physical IRQs.
-+
-+It is recommended to use this option only for trusted VMs under
-+administrator control.
-+
-+=back
-+
- =head2 Paravirtualised (PV) Guest Specific Options
- The following options apply only to Paravirtual guests.
-diff -r ccbee5bcb31b -r d6b418e9e525 tools/libxl/libxl_create.c
---- a/tools/libxl/libxl_create.c       Fri Aug 31 12:03:55 2012 +0100
-+++ b/tools/libxl/libxl_create.c       Fri Aug 31 15:54:42 2012 +0100
-@@ -933,6 +933,36 @@ static void domcreate_launch_dm(libxl__e
-         LOG(ERROR, "unable to add disk devices");
-         goto error_out;
-     }
-+
-+    for (i = 0; i < d_config->b_info.num_ioports; i++) {
-+        libxl_ioport_range *io = &d_config->b_info.ioports[i];
-+
-+        LOG(DEBUG, "dom%d ioports %"PRIx32"-%"PRIx32,
-+            domid, io->first, io->first + io->number - 1);
-+
-+        ret = xc_domain_ioport_permission(CTX->xch, domid,
-+                                          io->first, io->number, 1);
-+        if ( ret<0 ){
-+            LOGE(ERROR,
-+                 "failed give dom%d access to ioports %"PRIx32"-%"PRIx32,
-+                 domid, io->first, io->first + io->number - 1);
-+            ret = ERROR_FAIL;
-+        }
-+    }
-+
-+    for (i = 0; i < d_config->b_info.num_irqs; i++) {
-+        uint32_t irq = d_config->b_info.irqs[i];
-+
-+        LOG(DEBUG, "dom%d irq %"PRIx32, domid, irq);
-+
-+        ret = xc_domain_irq_permission(CTX->xch, domid, irq, 1);
-+        if ( ret<0 ){
-+            LOGE(ERROR,
-+                 "failed give dom%d access to irq %"PRId32, domid, irq);
-+            ret = ERROR_FAIL;
-+        }
-+    }
-+
-     for (i = 0; i < d_config->num_nics; i++) {
-         /* We have to init the nic here, because we still haven't
-          * called libxl_device_nic_add at this point, but qemu needs
-diff -r ccbee5bcb31b -r d6b418e9e525 tools/libxl/libxl_types.idl
---- a/tools/libxl/libxl_types.idl      Fri Aug 31 12:03:55 2012 +0100
-+++ b/tools/libxl/libxl_types.idl      Fri Aug 31 15:54:42 2012 +0100
-@@ -135,6 +135,11 @@ libxl_vga_interface_type = Enumeration("
- # Complex libxl types
- #
-+libxl_ioport_range = Struct("ioport_range", [
-+    ("first", uint32),
-+    ("number", uint32),
-+    ])
-+
- libxl_vga_interface_info = Struct("vga_interface_info", [
-     ("kind",    libxl_vga_interface_type),
-     ])
-@@ -277,6 +282,9 @@ libxl_domain_build_info = Struct("domain
-     #  parameters for all type of scheduler
-     ("sched_params",     libxl_domain_sched_params),
-+    ("ioports",          Array(libxl_ioport_range, "num_ioports")),
-+    ("irqs",             Array(uint32, "num_irqs")),
-+    
-     ("u", KeyedUnion(None, libxl_domain_type, "type",
-                 [("hvm", Struct(None, [("firmware",         string),
-                                        ("bios",             libxl_bios_type),
-diff -r ccbee5bcb31b -r d6b418e9e525 tools/libxl/xl_cmdimpl.c
---- a/tools/libxl/xl_cmdimpl.c Fri Aug 31 12:03:55 2012 +0100
-+++ b/tools/libxl/xl_cmdimpl.c Fri Aug 31 15:54:42 2012 +0100
-@@ -573,10 +573,12 @@ static void parse_config_data(const char
-     long l;
-     XLU_Config *config;
-     XLU_ConfigList *cpus, *vbds, *nics, *pcis, *cvfbs, *cpuids;
-+    XLU_ConfigList *ioports, *irqs;
-+    int num_ioports, num_irqs;
-     int pci_power_mgmt = 0;
-     int pci_msitranslate = 0;
-     int pci_permissive = 0;
--    int e;
-+    int i, e;
-     libxl_domain_create_info *c_info = &d_config->c_info;
-     libxl_domain_build_info *b_info = &d_config->b_info;
-@@ -919,6 +921,61 @@ static void parse_config_data(const char
-         abort();
-     }
-+    if (!xlu_cfg_get_list(config, "ioports", &ioports, &num_ioports, 0)) {
-+        b_info->num_ioports = num_ioports;
-+        b_info->ioports = calloc(num_ioports, sizeof(*b_info->ioports));
-+        for (i = 0; i < num_ioports; i++) {
-+            const char *buf2;
-+            char *ep;
-+            uint32_t s, e;
-+            buf = xlu_cfg_get_listitem (ioports, i);
-+            if (!buf) {
-+                fprintf(stderr,
-+                        "xl: Unable to get element #%d in ioport list\n", i);
-+                exit(1);
-+            }
-+            s = e = strtoul(buf, &ep, 16);
-+            if (ep == buf) {
-+                fprintf(stderr, "xl: Invalid argument parsing ioport: %s\n",
-+                        buf);
-+                exit(1);
-+            }
-+            if (*ep == '-') {
-+                buf2 = ep + 1;
-+                e = strtoul(buf2, &ep, 16);
-+                if (ep == buf2 || s > e) {
-+                    fprintf(stderr,
-+                            "xl: Invalid argument parsion ioport: %s\n", buf);
-+                    exit(1);
-+                }
-+            }
-+            b_info->ioports[i].first = s;
-+            b_info->ioports[i].number = e - s + 1;
-+        }
-+    }
-+
-+    if (!xlu_cfg_get_list(config, "irqs", &irqs, &num_irqs, 0)) {
-+        b_info->num_irqs = num_irqs;
-+        b_info->irqs = calloc(num_irqs, sizeof(*b_info->irqs));
-+        for (i = 0; i < num_irqs; i++) {
-+            char *ep;
-+            uint32_t irq;
-+            buf = xlu_cfg_get_listitem (irqs, i);
-+            if (!buf) {
-+                fprintf(stderr,
-+                        "xl: Unable to get element %d in irq list\n", i);
-+                exit(1);
-+            }
-+            irq = strtoul(buf, &ep, 10);
-+            if (ep == buf) {
-+                fprintf(stderr,
-+                        "xl: Invalid argument parsing irq: %s\n", buf);
-+                exit(1);
-+            }
-+            b_info->irqs[i] = irq;
-+        }
-+    }
-+
-     if (!xlu_cfg_get_list (config, "disk", &vbds, 0, 0)) {
-         d_config->num_disks = 0;
-         d_config->disks = NULL;
-
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1346426619.27277.237.camel@zakaz.uk.xensource.com> b/test/corpus/<1346426619.27277.237.camel@zakaz.uk.xensource.com>
deleted file mode 100644 (file)
index 8186a73..0000000
+++ /dev/null
@@ -1,135 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Aug 31 16:27:46 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 31 Aug 2012 16:27:46 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T7T8K-0007E6-8E
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 31 Aug 2012 16:27:46 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T7T4f-0004uc-Pt; Fri, 31 Aug 2012 15:23:57 +0000
-Received: from mail27.messagelabs.com ([193.109.254.147])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1T7T4e-0004uO-0I
-       for xen-devel@lists.xen.org; Fri, 31 Aug 2012 15:23:56 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-4.tower-27.messagelabs.com!1346426630!8553205!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTEyMzY=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 5706 invoked from network); 31 Aug 2012 15:23:50 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-4.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
-       31 Aug 2012 15:23:50 -0000
-X-IronPort-AV: E=Sophos;i="4.80,347,1344211200"; d="scan'208";a="14292879"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       31 Aug 2012 15:23:41 +0000
-Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.279.1;
-       Fri, 31 Aug 2012 16:23:41 +0100
-Message-ID: <1346426619.27277.237.camel@zakaz.uk.xensource.com>
-From: Ian Campbell <Ian.Campbell@citrix.com>
-To: Ian Jackson <Ian.Jackson@eu.citrix.com>
-Date: Fri, 31 Aug 2012 16:23:39 +0100
-In-Reply-To: <20544.54424.775548.66532@mariner.uk.xensource.com>
-References: <1344935141.5926.6.camel@zakaz.uk.xensource.com>
-       <20120814100704.GA19704@bloms.de>
-       <1346421542.27277.218.camel@zakaz.uk.xensource.com>
-       <1346425278.27277.224.camel@zakaz.uk.xensource.com>
-       <20544.54424.775548.66532@mariner.uk.xensource.com>
-Organization: Citrix Systems, Inc.
-X-Mailer: Evolution 3.4.3-1 
-MIME-Version: 1.0
-Cc: Dieter Bloms <xensource.com@bloms.de>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [Xen-users] Xen 4.2 TODO (io and irq parameter are
- not evaluated by xl)
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Fri, 2012-08-31 at 16:13 +0100, Ian Jackson wrote:
-> Ian Campbell writes ("Re: [Xen-users] Xen 4.2 TODO (io and irq parameter are not evaluated by xl)"):
-> > libxl/xl: implement support for guest iooprt and irq permissions.
-> 
-> Most of this looks good, but:
-> 
-> ...                                       ("bios",             libxl_bios_type),
-> > +            buf = xlu_cfg_get_listitem (ioports, i);
-> > +            if (!buf) {
-> > +                fprintf(stderr,
-> > +                        "xl: Unable to get element #%d in ioport list\n", i);
-> > +                exit(1);
-> > +            }
-> > +            s = e = strtoul(buf, &ep, 16);
-> > +            if (ep == buf) {
-> > +                fprintf(stderr, "xl: Invalid argument parsing ioport: %s\n",
-> > +                        buf);
-> > +                exit(1);
-> > +            }
-> > +            if (*ep == '-') {
-> 
-> This code fails to properly handle (reject)
->    - (*ep!=0 && *ep!='-')
-
-Oops, will fix.
-
->    - value > LONG_MAX
->    - INT_MAX < value <= LONG_MAX
-
-These all get checked inside the (eventual) hypercall. Or were you
-thinking of something else?
-
-BTW the types should be unsigned all the way down, unless I've screwed
-something up.
-
->    - *ep2!=0
-
-Will fix.
-
-> 
-> > +            irq = strtoul(buf, &ep, 10);
-> 
-> Likewise.
-> 
-> I take it we're not worrying about missing malloc failure checks in
-> xl.
-
-Seems like we do elsewhere, so I might as well fix this.
-
-Ian.
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1346428292.27277.243.camel@zakaz.uk.xensource.com> b/test/corpus/<1346428292.27277.243.camel@zakaz.uk.xensource.com>
deleted file mode 100644 (file)
index 2682283..0000000
+++ /dev/null
@@ -1,150 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Aug 31 16:55:26 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 31 Aug 2012 16:55:26 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T7TZ2-0007K8-5v
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 31 Aug 2012 16:55:26 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T7TVV-0005yj-I7; Fri, 31 Aug 2012 15:51:41 +0000
-Received: from mail27.messagelabs.com ([193.109.254.147])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1T7TVU-0005yJ-GT
-       for xen-devel@lists.xen.org; Fri, 31 Aug 2012 15:51:40 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-4.tower-27.messagelabs.com!1346428294!8557067!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTEyMzY=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 31224 invoked from network); 31 Aug 2012 15:51:34 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-4.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
-       31 Aug 2012 15:51:34 -0000
-X-IronPort-AV: E=Sophos;i="4.80,347,1344211200"; d="scan'208";a="14293650"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       31 Aug 2012 15:51:34 +0000
-Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.279.1;
-       Fri, 31 Aug 2012 16:51:34 +0100
-Message-ID: <1346428292.27277.243.camel@zakaz.uk.xensource.com>
-From: Ian Campbell <Ian.Campbell@citrix.com>
-To: Jan Beulich <JBeulich@suse.com>
-Date: Fri, 31 Aug 2012 16:51:32 +0100
-In-Reply-To: <5040F7140200007800097E91@nat28.tlf.novell.com>
-References: <1344935141.5926.6.camel@zakaz.uk.xensource.com>
-       <20120814100704.GA19704@bloms.de>
-       <1346421542.27277.218.camel@zakaz.uk.xensource.com>
-       <1346425278.27277.224.camel@zakaz.uk.xensource.com>
-       <5040F7140200007800097E91@nat28.tlf.novell.com>
-Organization: Citrix Systems, Inc.
-X-Mailer: Evolution 3.4.3-1 
-MIME-Version: 1.0
-Cc: Dieter Bloms <xensource.com@bloms.de>,
-       Ian Jackson <Ian.Jackson@eu.citrix.com>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [Xen-users] Xen 4.2 TODO (io and irq parameter are
- not evaluated by xl)
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Fri, 2012-08-31 at 16:40 +0100, Jan Beulich wrote:
-> >>> On 31.08.12 at 17:01, Ian Campbell <Ian.Campbell@citrix.com> wrote:
-> > --- a/docs/man/xl.cfg.pod.5        Fri Aug 31 12:03:55 2012 +0100
-> > +++ b/docs/man/xl.cfg.pod.5        Fri Aug 31 15:54:42 2012 +0100
-> > @@ -402,6 +402,30 @@ for more information on the "permissive"
-> >  
-> >  =back
-> >  
-> > +=item B<ioports=[ "IOPORT_RANGE", "IOPORT_RANGE", ... ]>
-> 
-> Is this really with quotes, and requiring an array?
-
-I was mostly just following
-http://cmrg.fifthhorseman.net/wiki/xen#grantingaccesstoserialhardwaretoadomU
-which suggested that this is the xm syntax too.
-
-> > +
-> > +=over 4
-> > +
-> > +Allow guest to access specific legacy I/O ports. Each B<IOPORT_RANGE>
-> > +is given in hexadecimal and may either a span e.g. C<2f8-2ff>
-> > +(inclusive) or a single I/O port C<2f8>.
-> > +
-> > +It is recommended to use this option only for trusted VMs under
-> > +administrator control.
-> > +
-> > +=back
-> > +
-> > +=item B<irqs=[ NUMBER, NUMBER, ... ]>
-> 
-> Similarly here - is this really requiring an array? I ask because
-> I had to look at this just last week for a colleague, and what
-> we got out of inspection of examples/code was that a simple
-> number (and a simple range without quotes above) are
-> permitted too.
-
-I had a look in create.py and opts.py and didn't see that, I suppose I
-missed it.
-
-I could implement support for either an array or a simple string/number
-but it would complicate the code quite a bit. Is it really worth it?
-
-Ian.
-
-
-> 
-> Jan
-> 
-> > +
-> > +=over 4
-> > +
-> > +Allow a guest to access specific physical IRQs.
-> > +
-> > +It is recommended to use this option only for trusted VMs under
-> > +administrator control.
-> > +
-> > +=back
-> > +
-> >  =head2 Paravirtualised (PV) Guest Specific Options
-> >  
-> >  The following options apply only to Paravirtual guests.
-> 
-> 
-
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1346428909.27277.246.camel@zakaz.uk.xensource.com> b/test/corpus/<1346428909.27277.246.camel@zakaz.uk.xensource.com>
deleted file mode 100644 (file)
index f1cc259..0000000
+++ /dev/null
@@ -1,119 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Aug 31 17:05:25 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 31 Aug 2012 17:05:25 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T7Tih-0007Ne-Fr
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 31 Aug 2012 17:05:25 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T7TfP-0007I5-6W; Fri, 31 Aug 2012 16:01:55 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1T7TfM-0007HN-Vy
-       for xen-devel@lists.xen.org; Fri, 31 Aug 2012 16:01:53 +0000
-Received: from [85.158.138.51:44511] by server-5.bemta-3.messagelabs.com id
-       EC/AD-13133-0FFD0405; Fri, 31 Aug 2012 16:01:52 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-8.tower-174.messagelabs.com!1346428911!27910889!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTEyMzY=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 17907 invoked from network); 31 Aug 2012 16:01:51 -0000
-Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-8.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
-       31 Aug 2012 16:01:51 -0000
-X-IronPort-AV: E=Sophos;i="4.80,347,1344211200"; d="scan'208";a="14293913"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       31 Aug 2012 16:01:51 +0000
-Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.279.1;
-       Fri, 31 Aug 2012 17:01:51 +0100
-Message-ID: <1346428909.27277.246.camel@zakaz.uk.xensource.com>
-From: Ian Campbell <Ian.Campbell@citrix.com>
-To: Ian Jackson <Ian.Jackson@eu.citrix.com>
-Date: Fri, 31 Aug 2012 17:01:49 +0100
-In-Reply-To: <20544.57061.422450.821411@mariner.uk.xensource.com>
-References: <1344935141.5926.6.camel@zakaz.uk.xensource.com>
-       <20120814100704.GA19704@bloms.de>
-       <1346421542.27277.218.camel@zakaz.uk.xensource.com>
-       <1346425278.27277.224.camel@zakaz.uk.xensource.com>
-       <20544.54424.775548.66532@mariner.uk.xensource.com>
-       <1346426619.27277.237.camel@zakaz.uk.xensource.com>
-       <20544.57061.422450.821411@mariner.uk.xensource.com>
-Organization: Citrix Systems, Inc.
-X-Mailer: Evolution 3.4.3-1 
-MIME-Version: 1.0
-Cc: Dieter Bloms <xensource.com@bloms.de>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [Xen-users] Xen 4.2 TODO (io and irq parameter are
- not evaluated by xl)
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Fri, 2012-08-31 at 16:57 +0100, Ian Jackson wrote:
-> Ian Campbell writes ("Re: [Xen-users] Xen 4.2 TODO (io and irq parameter are not evaluated by xl)"):
-> > On Fri, 2012-08-31 at 16:13 +0100, Ian Jackson wrote:
-> > > This code fails to properly handle (reject)
-> > >    - (*ep!=0 && *ep!='-')
-> > 
-> > Oops, will fix.
-> > 
-> > >    - value > LONG_MAX
-> > >    - INT_MAX < value <= LONG_MAX
-> > 
-> > These all get checked inside the (eventual) hypercall. Or were you
-> > thinking of something else?
-> 
-> Suppose buf contains "1100000055\0".
-> 
-> If a long is 32-bit, strtoul will return ULONG_MAX (0xffffffffUL)
-> setting errno to ERANGE.  Converting that to a 32-bit signed int will
-> do something implementation-defined (C99 6.3.1.3(3)) - in reality,
-> give -1.  Relying on this being rejected later seems poor practice.
-
-The target variable here is an unsigned 32-bit int though.
-
-> If a long is 64-bit and an int 32-bit, strtoul will return
-> 0x1100000055UL.  Converting that to a 32-bit int will again do
-> something implementation-defined - in reality, give 0x55.
-
-I've added checks for this and posted as V2.
-
-Ian.
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1346434547.5820.10.camel@dagon.hellion.org.uk> b/test/corpus/<1346434547.5820.10.camel@dagon.hellion.org.uk>
deleted file mode 100644 (file)
index 3c75c99..0000000
+++ /dev/null
@@ -1,116 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Aug 31 18:39:36 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 31 Aug 2012 18:39:36 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T7VBs-0007hX-I8
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 31 Aug 2012 18:39:36 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T7V8J-00023C-CL; Fri, 31 Aug 2012 17:35:51 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1T7V8H-000234-NK
-       for xen-devel@lists.xen.org; Fri, 31 Aug 2012 17:35:49 +0000
-Received: from [85.158.139.83:12512] by server-4.bemta-5.messagelabs.com id
-       F8/1B-23042-5F5F0405; Fri, 31 Aug 2012 17:35:49 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-15.tower-182.messagelabs.com!1346434548!27880477!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTEyMzY=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 11562 invoked from network); 31 Aug 2012 17:35:48 -0000
-Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-15.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
-       31 Aug 2012 17:35:48 -0000
-X-IronPort-AV: E=Sophos;i="4.80,348,1344211200"; d="scan'208";a="14295337"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       31 Aug 2012 17:35:47 +0000
-Received: from [127.0.0.1] (10.80.16.67) by smtprelay.citrix.com
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.279.1;
-       Fri, 31 Aug 2012 18:35:47 +0100
-Message-ID: <1346434547.5820.10.camel@dagon.hellion.org.uk>
-From: Ian Campbell <Ian.Campbell@citrix.com>
-To: Kirk Allan <kallan@suse.com>
-Date: Fri, 31 Aug 2012 18:35:47 +0100
-In-Reply-To: <50409CE002000076000B3B44@novprvoes0310.provo.novell.com>
-References: <1344935141.5926.6.camel@zakaz.uk.xensource.com>
-       <20120814100704.GA19704@bloms.de>
-       <1346421542.27277.218.camel@zakaz.uk.xensource.com>
-       <1346425278.27277.224.camel@zakaz.uk.xensource.com>
-       <5040F7140200007800097E91@nat28.tlf.novell.com>
-       <1346428292.27277.243.camel@zakaz.uk.xensource.com>
-       <5040FB490200007800097ED2@nat28.tlf.novell.com>
-       <50409CE002000076000B3B44@novprvoes0310.provo.novell.com>
-Organization: Citrix Systems, Inc.
-X-Mailer: Evolution 3.4.3-1 
-MIME-Version: 1.0
-Cc: Charles Arnold <CARNOLD@suse.com>, Dieter Bloms <xensource.com@bloms.de>,
-       Ian Jackson <Ian.Jackson@eu.citrix.com>, Jan Beulich <JBeulich@suse.com>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [Xen-users] Xen 4.2 TODO (io and irq parameter are
- not evaluated by xl)
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Fri, 2012-08-31 at 18:15 +0100, Kirk Allan wrote:
-
-> > Charles, Kirk, could you comment here?
-> 
-> In one of my Window's vm config files, I was able to get the vm to
-> boot using ioports=['3f8-3ff'].  My goal was to do serial debugging of
-> the Windows vm.  I also added irq=[4] to the config file.  However, I
-> was not able to actually get a debug session to work.  The physical
-> machine running windbg received a string from the vm which gave me
-> hope that it was working, but then it never received further data so
-> the vm eventually booted without being attached to the debugger.
-
-Thanks, the question was whether it would be useful to implement the
-       ioports = '3f8-3ff'
-       irq = 4
-syntax as well as the
-       ioports = ['3f8-3ff']
-       irq = [4]
-but it looks like you are actually using the array version anyway?
-
-I think I'd rather avoid implementing both options unless there is a
-strong reason to do so.
-
-Ian.
-
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1346663727.27277.255.camel@zakaz.uk.xensource.com> b/test/corpus/<1346663727.27277.255.camel@zakaz.uk.xensource.com>
deleted file mode 100644 (file)
index b4335c4..0000000
+++ /dev/null
@@ -1,126 +0,0 @@
-From xen-devel-bounces@lists.xen.org Mon Sep 03 10:19:19 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Mon, 03 Sep 2012 10:19:19 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T8SoO-00008Z-OD
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Mon, 03 Sep 2012 10:19:19 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T8Skp-0005tq-7I; Mon, 03 Sep 2012 09:15:35 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1T8Skn-0005th-8t
-       for xen-devel@lists.xen.org; Mon, 03 Sep 2012 09:15:33 +0000
-Received: from [85.158.143.99:26841] by server-3.bemta-4.messagelabs.com id
-       04/F3-08232-43574405; Mon, 03 Sep 2012 09:15:32 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-15.tower-216.messagelabs.com!1346663730!28170160!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTEzODI=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 24515 invoked from network); 3 Sep 2012 09:15:31 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-15.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
-       3 Sep 2012 09:15:31 -0000
-X-IronPort-AV: E=Sophos;i="4.80,359,1344211200"; d="scan'208";a="14312168"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       03 Sep 2012 09:15:30 +0000
-Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.279.1; Mon, 3 Sep 2012
-       10:15:30 +0100
-Message-ID: <1346663727.27277.255.camel@zakaz.uk.xensource.com>
-From: Ian Campbell <Ian.Campbell@citrix.com>
-To: Jan Beulich <JBeulich@suse.com>
-Date: Mon, 3 Sep 2012 10:15:27 +0100
-In-Reply-To: <50447D7802000078000982B4@nat28.tlf.novell.com>
-References: <1344935141.5926.6.camel@zakaz.uk.xensource.com>
-       <20120814100704.GA19704@bloms.de>
-       <1346421542.27277.218.camel@zakaz.uk.xensource.com>
-       <1346425278.27277.224.camel@zakaz.uk.xensource.com>
-       <5040F7140200007800097E91@nat28.tlf.novell.com>
-       <1346428292.27277.243.camel@zakaz.uk.xensource.com>
-       <5040FB490200007800097ED2@nat28.tlf.novell.com>
-       <50409CE002000076000B3B44@novprvoes0310.provo.novell.com>
-       <1346434547.5820.10.camel@dagon.hellion.org.uk>
-       <50447D7802000078000982B4@nat28.tlf.novell.com>
-Organization: Citrix Systems, Inc.
-X-Mailer: Evolution 3.4.3-1 
-MIME-Version: 1.0
-Cc: Charles Arnold <CARNOLD@suse.com>, Kirk Allan <KALLAN@suse.com>,
-       DieterBloms <xensource.com@bloms.de>,
-       Ian Jackson <Ian.Jackson@eu.citrix.com>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [Xen-users] Xen 4.2 TODO (io and irq parameter are
- not evaluated by xl)
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Mon, 2012-09-03 at 08:50 +0100, Jan Beulich wrote:
-> >>> On 31.08.12 at 19:59, Kirk Allan wrote:
-> >>> In one of my Window's vm config files, I was able to get the vm to
-> >>> boot using ioports=['3f8-3ff'].  My goal was to do serial debugging of
-> >>> the Windows vm.  I also added irq=[4] to the config file.  However, I
-> >>> was not able to actually get a debug session to work.  The physical
-> >>> machine running windbg received a string from the vm which gave me
-> >>> hope that it was working, but then it never received further data so
-> >>> the vm eventually booted without being attached to the debugger.
-> >> 
-> >> Thanks, the question was whether it would be useful to implement the
-> >>   ioports = '3f8-3ff'
-> >>   irq = 4
-> >> syntax as well as the
-> >>   ioports = ['3f8-3ff']
-> >>   irq = [4]
-> >> but it looks like you are actually using the array version anyway?
-> > 
-> > I first looked at this last week.  I found reference to both formats so I 
-> > tried both.  I was only able to get the ioports = ['3f8-3ff'] and irq = [4] 
-> > syntax to allow a vm to boot.
-> 
-> So Ian, I guess I got mislead by there being references to the
-> non-array format - no need to alter your patch then in any way.
-> 
-> Sorry for the noise, Jan
-
-No problem, it's a common problem when trying to figure out what xend
-does or doesn't do...
-
-Ian.
-
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1346663746.27277.256.camel@zakaz.uk.xensource.com> b/test/corpus/<1346663746.27277.256.camel@zakaz.uk.xensource.com>
deleted file mode 100644 (file)
index 3b86d7f..0000000
+++ /dev/null
@@ -1,133 +0,0 @@
-From xen-devel-bounces@lists.xen.org Mon Sep 03 10:19:58 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Mon, 03 Sep 2012 10:19:58 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T8Soy-000091-Ci
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Mon, 03 Sep 2012 10:19:58 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T8Sm3-0005yv-MO; Mon, 03 Sep 2012 09:16:51 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1T8Sm1-0005yj-JF
-       for xen-devel@lists.xen.org; Mon, 03 Sep 2012 09:16:49 +0000
-Received: from [85.158.143.99:49868] by server-3.bemta-4.messagelabs.com id
-       D0/27-08232-08574405; Mon, 03 Sep 2012 09:16:48 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-10.tower-216.messagelabs.com!1346663807!21799151!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTEzODI=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 27088 invoked from network); 3 Sep 2012 09:16:48 -0000
-Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-10.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
-       3 Sep 2012 09:16:48 -0000
-X-IronPort-AV: E=Sophos;i="4.80,359,1344211200"; d="scan'208";a="14312183"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       03 Sep 2012 09:15:47 +0000
-Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.279.1; Mon, 3 Sep 2012
-       10:15:47 +0100
-Message-ID: <1346663746.27277.256.camel@zakaz.uk.xensource.com>
-From: Ian Campbell <Ian.Campbell@citrix.com>
-To: Dieter Bloms <dieter@bloms.de>
-Date: Mon, 3 Sep 2012 10:15:46 +0100
-In-Reply-To: <20120831193746.GA13009@bloms.de>
-References: <1344935141.5926.6.camel@zakaz.uk.xensource.com>
-       <20120814100704.GA19704@bloms.de>
-       <1346421542.27277.218.camel@zakaz.uk.xensource.com>
-       <1346425278.27277.224.camel@zakaz.uk.xensource.com>
-       <5040F7140200007800097E91@nat28.tlf.novell.com>
-       <1346428292.27277.243.camel@zakaz.uk.xensource.com>
-       <5040FB490200007800097ED2@nat28.tlf.novell.com>
-       <50409CE002000076000B3B44@novprvoes0310.provo.novell.com>
-       <1346434547.5820.10.camel@dagon.hellion.org.uk>
-       <20120831193746.GA13009@bloms.de>
-Organization: Citrix Systems, Inc.
-X-Mailer: Evolution 3.4.3-1 
-MIME-Version: 1.0
-Cc: Charles Arnold <CARNOLD@suse.com>, Kirk Allan <kallan@suse.com>,
-       Dieter Bloms <xensource.com@bloms.de>, Ian
-       Jackson <Ian.Jackson@eu.citrix.com>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>, Jan
-       Beulich <JBeulich@suse.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [Xen-users] Xen 4.2 TODO (io and irq parameter are
- not evaluated by xl)
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Fri, 2012-08-31 at 20:37 +0100, Dieter Bloms wrote:
-> Hi,
-> 
-> Ian, thank you for implementing this io and irq support.
-> 
-> On Fri, Aug 31, Ian Campbell wrote:
-> 
-> > On Fri, 2012-08-31 at 18:15 +0100, Kirk Allan wrote:
-> > 
-> > > > Charles, Kirk, could you comment here?
-> > > 
-> > > In one of my Window's vm config files, I was able to get the vm to
-> > > boot using ioports=['3f8-3ff'].  My goal was to do serial debugging of
-> > > the Windows vm.  I also added irq=[4] to the config file.  However, I
-> > > was not able to actually get a debug session to work.  The physical
-> > > machine running windbg received a string from the vm which gave me
-> > > hope that it was working, but then it never received further data so
-> > > the vm eventually booted without being attached to the debugger.
-> > 
-> > Thanks, the question was whether it would be useful to implement the
-> >    ioports = '3f8-3ff'
-> >    irq = 4
-> > syntax as well as the
-> >    ioports = ['3f8-3ff']
-> >    irq = [4]
-> > but it looks like you are actually using the array version anyway?
-> 
-> I use this syntax with xm:
-> 
-> ioports=['0378-037a']
-> irq=[5]
-> 
-> and it works good.
-
-Great, thanks for confirming.
-
-Ian.
-
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1346665586.25864.5.camel@zakaz.uk.xensource.com> b/test/corpus/<1346665586.25864.5.camel@zakaz.uk.xensource.com>
deleted file mode 100644 (file)
index f944bfd..0000000
+++ /dev/null
@@ -1,131 +0,0 @@
-From xen-devel-bounces@lists.xen.org Mon Sep 03 10:49:51 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Mon, 03 Sep 2012 10:49:51 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T8THx-0000HF-3s
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Mon, 03 Sep 2012 10:49:51 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T8TEk-0007N7-MF; Mon, 03 Sep 2012 09:46:30 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1T8TEj-0007Mt-9E
-       for xen-devel@lists.xen.org; Mon, 03 Sep 2012 09:46:29 +0000
-Received: from [85.158.143.99:22461] by server-2.bemta-4.messagelabs.com id
-       77/AA-21239-47C74405; Mon, 03 Sep 2012 09:46:28 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-11.tower-216.messagelabs.com!1346665587!20661815!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTEzODI=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 21544 invoked from network); 3 Sep 2012 09:46:28 -0000
-Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-11.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
-       3 Sep 2012 09:46:28 -0000
-X-IronPort-AV: E=Sophos;i="4.80,359,1344211200"; d="scan'208";a="14312946"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       03 Sep 2012 09:46:27 +0000
-Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.279.1; Mon, 3 Sep 2012
-       10:46:27 +0100
-Message-ID: <1346665586.25864.5.camel@zakaz.uk.xensource.com>
-From: Ian Campbell <Ian.Campbell@citrix.com>
-To: Kirk Allan <kallan@suse.com>
-Date: Mon, 3 Sep 2012 10:46:26 +0100
-In-Reply-To: <5040A73502000076000B3B82@novprvoes0310.provo.novell.com>
-References: <1344935141.5926.6.camel@zakaz.uk.xensource.com>
-       <20120814100704.GA19704@bloms.de>
-       <1346421542.27277.218.camel@zakaz.uk.xensource.com>
-       <1346425278.27277.224.camel@zakaz.uk.xensource.com>
-       <5040F7140200007800097E91@nat28.tlf.novell.com>
-       <1346428292.27277.243.camel@zakaz.uk.xensource.com>
-       <5040FB490200007800097ED2@nat28.tlf.novell.com>
-       <50409CE002000076000B3B44@novprvoes0310.provo.novell.com>
-       <1346434547.5820.10.camel@dagon.hellion.org.uk>
-       <5040A73502000076000B3B82@novprvoes0310.provo.novell.com>
-Organization: Citrix Systems, Inc.
-X-Mailer: Evolution 3.4.3-1 
-MIME-Version: 1.0
-Cc: Charles Arnold <CARNOLD@suse.com>, DieterBloms <xensource.com@bloms.de>,
-       Ian Jackson <Ian.Jackson@eu.citrix.com>, Jan Beulich <JBeulich@suse.com>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [Xen-users] Xen 4.2 TODO (io and irq parameter are
- not evaluated by xl)
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Fri, 2012-08-31 at 18:59 +0100, Kirk Allan wrote:
-> 
-> >>> On 8/31/2012 at 11:35 AM, in message
-> <1346434547.5820.10.camel@dagon.hellion.org.uk>, Ian Campbell
-> <Ian.Campbell@citrix.com> wrote: 
-> > On Fri, 2012-08-31 at 18:15 +0100, Kirk Allan wrote:
-> > 
-> >> > Charles, Kirk, could you comment here?
-> >> 
-> >> In one of my Window's vm config files, I was able to get the vm to
-> >> boot using ioports=['3f8-3ff'].  My goal was to do serial debugging of
-> >> the Windows vm.  I also added irq=[4] to the config file.  However, I
-> >> was not able to actually get a debug session to work.  The physical
-> >> machine running windbg received a string from the vm which gave me
-> >> hope that it was working, but then it never received further data so
-> >> the vm eventually booted without being attached to the debugger.
-> > 
-> > Thanks, the question was whether it would be useful to implement the
-> >    ioports = '3f8-3ff'
-> >    irq = 4
-> > syntax as well as the
-> >    ioports = ['3f8-3ff']
-> >    irq = [4]
-> > but it looks like you are actually using the array version anyway?
-> 
-> I first looked at this last week.  I found reference to both formats
-> so I tried both.  I was only able to get the ioports = ['3f8-3ff'] and
-> irq = [4] syntax to allow a vm to boot.
-
-Thanks for confirming.
-
-> > I think I'd rather avoid implementing both options unless there is a
-> > strong reason to do so.
-> 
-> For me, I don't have a strong reason to implement support for both ways.  
-
-I'll happily not bother then ;-)
-
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1346667053.25864.21.camel@zakaz.uk.xensource.com> b/test/corpus/<1346667053.25864.21.camel@zakaz.uk.xensource.com>
deleted file mode 100644 (file)
index baf1c43..0000000
+++ /dev/null
@@ -1,136 +0,0 @@
-From xen-devel-bounces@lists.xen.org Mon Sep 03 11:15:52 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Mon, 03 Sep 2012 11:15:52 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T8Th4-0000N9-Gr
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Mon, 03 Sep 2012 11:15:52 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T8Tca-0007rV-S5; Mon, 03 Sep 2012 10:11:08 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1T8TcY-0007rQ-WC
-       for xen-devel@lists.xen.org; Mon, 03 Sep 2012 10:11:07 +0000
-Received: from [85.158.143.35:49467] by server-2.bemta-4.messagelabs.com id
-       93/3D-21239-A3284405; Mon, 03 Sep 2012 10:11:06 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-3.tower-21.messagelabs.com!1346667054!13822691!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTEzODI=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 31862 invoked from network); 3 Sep 2012 10:10:55 -0000
-Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-3.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
-       3 Sep 2012 10:10:55 -0000
-X-IronPort-AV: E=Sophos;i="4.80,359,1344211200"; d="scan'208";a="14313652"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       03 Sep 2012 10:10:54 +0000
-Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.279.1; Mon, 3 Sep 2012
-       11:10:54 +0100
-Message-ID: <1346667053.25864.21.camel@zakaz.uk.xensource.com>
-From: Ian Campbell <Ian.Campbell@citrix.com>
-To: Pasi =?ISO-8859-1?Q?K=E4rkk=E4inen?= <pasik@iki.fi>
-Date: Mon, 3 Sep 2012 11:10:53 +0100
-In-Reply-To: <20120902053549.GF8912@reaktio.net>
-References: <20120902053549.GF8912@reaktio.net>
-Organization: Citrix Systems, Inc.
-X-Mailer: Evolution 3.4.3-1 
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="utf-8"
-Content-Transfer-Encoding: base64
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH] xl.cfg: gfx_passthru documentation
- improvements
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-T24gU3VuLCAyMDEyLTA5LTAyIGF0IDA2OjM1ICswMTAwLCBQYXNpIEvDpHJra8OkaW5lbiB3cm90
-ZToKPiBIZWxsbywKPiAKPiB4bC5jZmcucG9kLjUgZG9jdW1lbnRhdGlvbiBpbXByb3ZlbWVudHM6
-Cj4gCj4gLSBnZnhfcGFzc3RocnU6IERvY3VtZW50IGdmeF9wYXNzdGhydSBtYWtlcyB0aGUgR1BV
-IGJlY29tZSBwcmltYXJ5IGluIHRoZSBndWVzdAo+ICAgYW5kIG90aGVyIGdlbmVyaWMgaW5mbyBh
-Ym91dCBnZnhfcGFzc3RocnUuCj4gCj4gCj4gU2lnbmVkLW9mZi1ieTogUGFzaSBLw6Rya2vDpGlu
-ZW4gPHBhc2lrQGlraS5maT4KPiAtLS0gZG9jcy9tYW4veGwuY2ZnLnBvZC41Lm9yaWcxIDIwMTIt
-MDktMDIgMDc6MTY6MzkuMzE2NzgyMTU4ICswMzAwCj4gKysrIGRvY3MvbWFuL3hsLmNmZy5wb2Qu
-NSAgICAgICAyMDEyLTA5LTAyIDA4OjI2OjQwLjA4MTYzOTA4NyArMDMwMAo+IEBAIC05NjgsNyAr
-OTY4LDQzIEBACj4gIAo+ICA9aXRlbSBCPGdmeF9wYXNzdGhydT1CT09MRUFOPgo+ICAKPiAtRW5h
-YmxlIGdyYXBoaWNzIGRldmljZSBQQ0kgcGFzc3Rocm91Z2guIFhYWCB3aGljaCBkZXZpY2UgaXMg
-cGFzc2VkIHRocm91Z2ggPwo+ICtFbmFibGUgZ3JhcGhpY3MgZGV2aWNlIFBDSSBwYXNzdGhyb3Vn
-aC4gVGhpcyBvcHRpb24gbWFrZXMgdGhlIHBhc3N0aHJ1Cj4gK2dyYXBoaWNzIGNhcmQgYmVjb21l
-IHByaW1hcnkgZ3JhcGhpY3MgY2FyZCBpbiB0aGUgVk0sCgpUaGUgb3B0aW9uIGlzIHNsaWdodGx5
-IG1pc25hbWVkIHRoZW4gSSBndWVzcywgYSBiZXR0ZXIgbmFtZSB3b3VsZCBoYXZlCmJlZW4gZ2Z4
-X3Bhc3N0aHJ1X3ByaW1hcnk/IG9oIHdlbGwsIHdlIGFyZSBzdHVjayB3aXRoIGl0IG5vdy4KCihB
-bSBJIGFsb25lIGluIHRoaW5raW5nIHRoYXQgInRocnUiIGlzIGEgaG9ycmlibGUgYWx0ZXJuYXRp
-dmUgdG8KdGhyb3VnaD8pCgo+ICBzbyB0aGUgUWVtdSBlbXVsYXRlZCAKPiArZ3JhcGhpY3MgYWRh
-cHRlciBpcyBkaXNhYmxlZCwgYW5kIHRoZSBWTkMgY29uc29sZSBmb3IgdGhlIFZNIHdvbid0IGhh
-dmUKPiArYW55IGdyYXBoaWNzIG91dHB1dC4gQWxsIGdyYXBoaWNzIG91dHB1dCwgaW5jbHVkaW5n
-IGJvb3QgdGltZSBRZW11IEJJT1MKPiArbWVzc2FnZXMgZnJvbSB0aGUgVk0sIHdpbGwgZ28gdG8g
-dGhlIHBoeXNpY2FsIG91dHB1dHMgb2YgdGhlIHBhc3NlZCB0aHJ1Cj4gK3BoeXNpY2FsIGdyYXBo
-aWNzIGNhcmQuCj4gKwo+ICtHcmFwaGljcyBjYXJkIFBDSSBkZXZpY2UgdG8gcGFzc3RocnUgaXMg
-Y2hvc2VuIHdpdGggQjxwY2k+IG9wdGlvbiwgCj4gK2V4YWN0bHkgaW4gdGhlIHNhbWUgd2F5IGFz
-IG5vcm1hbCBYZW4gUENJIGRldmljZSBwYXNzdGhydS9hc3NpZ25tZW50IGlzIGRvbmUuIAo+ICtO
-b3RlIHRoYXQgZ2Z4X3Bhc3N0aHJ1IGRvZXNuJ3QgZG8gYW55IGtpbmQgb2Ygc2hhcmluZwo+ICtv
-ZiB0aGUgR1BVLCBzbyB5b3UgY2FuIG9ubHkgYXNzaWduIHRoZSBHUFUgdG8gb25lIHNpbmdsZSBW
-TSBhdCBhIHRpbWUuCj4gKwo+ICtnZnhfcGFzc3RocnUgYWxzbyBlbmFibGVzIHZhcmlvdXMgbGVn
-YWN5IFZHQSBtZW1vcnkgcmFuZ2VzLCBCQVJzLCBNTUlPcywgCj4gK2FuZCBpb3BvcnRzIHRvIGJl
-IHBhc3NlZCB0aHJ1IHRvIHRoZSBWTSwgc2luY2UgdGhvc2UgYXJlIHJlcXVpcmVkCj4gK2ZvciBj
-b3JyZWN0IG9wZXJhdGlvbiBvZiB0aGluZ3MgbGlrZSBWR0EgQklPUywgdGV4dCBtb2RlLCBWQkUs
-IGV0Yy4KPiArCj4gK0VuYWJsaW5nIGdmeF9wYXNzdGhydSBvcHRpb24gYWxzbyBjb3BpZXMgdGhl
-IHBoeXNpY2FsIGdyYXBoaWNzIGNhcmQgCj4gK3ZpZGVvIGJpb3MgdG8gdGhlIGd1ZXN0IG1lbW9y
-eSwgYW5kIGV4ZWN1dGVzIHRoZSB2YmlvcyBpbiB0aGUgZ3Vlc3QgCgoiQklPUyIgYW5kIChJIGV4
-cGVjdCkgIlZCSU9TIj8KCj4gK3RvIGdldCB0aGUgZ3JhcGhpY3MgY2FyZCBpbml0aWFsaXplZC4K
-PiArCj4gK01vc3QgZ3JhcGhpY3MgYWRhcHRlcnMgcmVxdWlyZSB2ZW5kb3Igc3BlY2lmaWMgdHdl
-YWtzIGZvciBwcm9wZXJseQo+ICt3b3JraW5nIGdyYXBoaWNzIHBhc3N0aHJ1LiBYZW4gY3VycmVu
-dGx5IGluY2x1ZGVzIG5lY2Vzc2FyeSB0d2Vha3MKPiArZm9yIEludGVsIElHRCAoSW50ZWdyYXRl
-ZCBHcmFwaGljcyBEZXZpY2UpIEdQVXMuICAKPiArCj4gK1N1cHBvcnQgZm9yIEFNRC9OdmlkaWEg
-Z2Z4X3Bhc3N0aHJ1IGlzIG5vdCB5ZXQgbWVyZ2VkIHRvIFhlbiwKPiArYnV0IHRoZXJlIGFyZSBv
-dXQtb2YtdHJlZSBwYXRjaGVzIGF2YWlsYWJsZS4KCklmIHRoZXJlIGlzIGEgY29tcHJlaGVuc2l2
-ZSBsaXN0IG9mIHN1cHBvcnRlZC9ub3Qtc3VwcG9ydGVkIGRldmljZXMgb24KdGhlIHdpa2kgdGhl
-biBJIHRoaW5rIGEgcmVmZXJlbmNlIGhlcmUgd291bGQgYmUgbW9yZSB1c2VmdWwgdGhhbiB0aGVz
-ZQp0d28gYnJpZWYgcGFyYWdyYXBocy4KCkluIHBhcnRpY3VsYXIgdGhlIHNlY29uZCBpc24ndCB2
-ZXJ5IHVzZWZ1bCB3aXRob3V0IGxpbmtzIGFuZCB0aG9zZSB0ZW5kCnRvIGJlY29tZSBvdXQgb2Yg
-ZGF0ZSBpbiBkb2NzIElNRSwgSSB3b3VsZCB0ZW5kIHRvIG9taXQgdGhpcyBmcm9tIGhlcmUKYW5k
-IGluc3RlYWQgaW5jbHVkZSB0aGVtIGluIHRoZSB3aWtpIHdoZXJlIHRoZXkgY2FuIGJlIGtlcHQg
-dXAgdG8gZGF0ZQoob3IgYmV0dGVyIHlldCBzb21lYm9keSBjb3VsZCBmaW5hbGx5IHN1Ym1pdCB0
-aGUgcGF0Y2hlcyBmb3IgaW5jbHVzaW9uKS4KCj4gK2dmeF9wYXNzdGhydSBpcyBjdXJyZW50bHkg
-b25seSBzdXBwb3J0ZWQgd2l0aCB0aGUgcWVtdS14ZW4tdHJhZGl0aW9uYWwKPiArZGV2aWNlLW1v
-ZGVsLiBVcHN0cmVhbSBxZW11LXhlbiBkZXZpY2UtbW9kZWwgY3VycmVudGx5IGRvZXNuJ3QgaGF2
-ZQo+ICtzdXBwb3J0IGZvciBnZnhfcGFzc3RocnUuCj4gKwo+ICtOb3RlIHRoYXQgc29tZSBncmFw
-aGljcyBhZGFwdGVycyAoQU1EL0FUSSBjYXJkcywgZm9yIGV4YW1wbGUpIGRvbid0Cj4gK25lY2Vz
-c2FyaWx5IHJlcXVpcmUgZ2Z4X3Bhc3N0aHJ1IG9wdGlvbiwgc28geW91IGNhbiB1c2UgdGhlIG5v
-cm1hbAo+ICtYZW4gUENJIHBhc3N0aHJ1IHRvIGFzc2lnbiB0aGUgZ3JhcGhpY3MgY2FyZCBhcyBh
-IHNlY29uZGFyeSBncmFwaGljcyBjYXJkCj4gK3RvIHRoZSBWTS4gUWVtdSBlbXVsYXRlZCBncmFw
-aGljcyBjYXJkIHN0YXlzIGFzIHRoZSBwcmltYXJ5IGdyYXBoaWNzIGNhcmQsIAo+ICthbmQgeW91
-IGdldCBWTkMgb3V0cHV0IGZyb20gdGhlIFFlbXUtZW11bGF0ZWQgcHJpbWFyeSBhZGFwdGVyLgo+
-ICsKPiAgCj4gID1pdGVtIEI8bm9taWdyYXRlPUJPT0xFQU4+Cj4gCgoKCl9fX19fX19fX19fX19f
-X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QK
-WGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cDovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==
-
diff --git a/test/corpus/<1346834000.17325.4.camel@zakaz.uk.xensource.com> b/test/corpus/<1346834000.17325.4.camel@zakaz.uk.xensource.com>
deleted file mode 100644 (file)
index 86e8419..0000000
+++ /dev/null
@@ -1,144 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Sep 05 09:39:23 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 05 Sep 2012 09:39:23 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T9B8l-0001jQ-06
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 05 Sep 2012 09:39:23 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T9B3A-0004ex-R5; Wed, 05 Sep 2012 08:33:28 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1T9B39-0004es-80
-       for xen-devel@lists.xen.org; Wed, 05 Sep 2012 08:33:27 +0000
-Received: from [85.158.138.51:11803] by server-9.bemta-3.messagelabs.com id
-       1E/41-15390-65E07405; Wed, 05 Sep 2012 08:33:26 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-7.tower-174.messagelabs.com!1346834002!19820524!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTE4NjM=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 21121 invoked from network); 5 Sep 2012 08:33:23 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-7.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
-       5 Sep 2012 08:33:23 -0000
-X-IronPort-AV: E=Sophos;i="4.80,372,1344211200"; d="scan'208";a="14350946"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       05 Sep 2012 08:33:22 +0000
-Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.279.1; Wed, 5 Sep 2012
-       09:33:22 +0100
-Message-ID: <1346834000.17325.4.camel@zakaz.uk.xensource.com>
-From: Ian Campbell <Ian.Campbell@citrix.com>
-To: Pasi =?ISO-8859-1?Q?K=E4rkk=E4inen?= <pasik@iki.fi>
-Date: Wed, 5 Sep 2012 09:33:20 +0100
-In-Reply-To: <20120904191229.GH8912@reaktio.net>
-References: <20120902053549.GF8912@reaktio.net>
-       <1346667053.25864.21.camel@zakaz.uk.xensource.com>
-       <20120904191229.GH8912@reaktio.net>
-Organization: Citrix Systems, Inc.
-X-Mailer: Evolution 3.4.3-1 
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="utf-8"
-Content-Transfer-Encoding: base64
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH] xl.cfg: gfx_passthru documentation
- improvements
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-T24gVHVlLCAyMDEyLTA5LTA0IGF0IDIwOjEyICswMTAwLCBQYXNpIEvDpHJra8OkaW5lbiB3cm90
-ZToKPiBPbiBNb24sIFNlcCAwMywgMjAxMiBhdCAxMToxMDo1M0FNICswMTAwLCBJYW4gQ2FtcGJl
-bGwgd3JvdGU6Cj4gPiBPbiBTdW4sIDIwMTItMDktMDIgYXQgMDY6MzUgKzAxMDAsIFBhc2kgS8Ok
-cmtrw6RpbmVuIHdyb3RlOgo+ID4gPiBIZWxsbywKPiA+ID4gCj4gPiA+IHhsLmNmZy5wb2QuNSBk
-b2N1bWVudGF0aW9uIGltcHJvdmVtZW50czoKPiA+ID4gCj4gPiA+IC0gZ2Z4X3Bhc3N0aHJ1OiBE
-b2N1bWVudCBnZnhfcGFzc3RocnUgbWFrZXMgdGhlIEdQVSBiZWNvbWUgcHJpbWFyeSBpbiB0aGUg
-Z3Vlc3QKPiA+ID4gICBhbmQgb3RoZXIgZ2VuZXJpYyBpbmZvIGFib3V0IGdmeF9wYXNzdGhydS4K
-PiA+ID4gCj4gPiA+IAo+ID4gPiBTaWduZWQtb2ZmLWJ5OiBQYXNpIEvDpHJra8OkaW5lbiA8cGFz
-aWtAaWtpLmZpPgo+ID4gPiAtLS0gZG9jcy9tYW4veGwuY2ZnLnBvZC41Lm9yaWcxIDIwMTItMDkt
-MDIgMDc6MTY6MzkuMzE2NzgyMTU4ICswMzAwCj4gPiA+ICsrKyBkb2NzL21hbi94bC5jZmcucG9k
-LjUgICAgICAgMjAxMi0wOS0wMiAwODoyNjo0MC4wODE2MzkwODcgKzAzMDAKPiA+ID4gQEAgLTk2
-OCw3ICs5NjgsNDMgQEAKPiA+ID4gIAo+ID4gPiAgPWl0ZW0gQjxnZnhfcGFzc3RocnU9Qk9PTEVB
-Tj4KPiA+ID4gIAo+ID4gPiAtRW5hYmxlIGdyYXBoaWNzIGRldmljZSBQQ0kgcGFzc3Rocm91Z2gu
-IFhYWCB3aGljaCBkZXZpY2UgaXMgcGFzc2VkIHRocm91Z2ggPwo+ID4gPiArRW5hYmxlIGdyYXBo
-aWNzIGRldmljZSBQQ0kgcGFzc3Rocm91Z2guIFRoaXMgb3B0aW9uIG1ha2VzIHRoZSBwYXNzdGhy
-dQo+ID4gPiArZ3JhcGhpY3MgY2FyZCBiZWNvbWUgcHJpbWFyeSBncmFwaGljcyBjYXJkIGluIHRo
-ZSBWTSwKPiA+IAo+ID4gVGhlIG9wdGlvbiBpcyBzbGlnaHRseSBtaXNuYW1lZCB0aGVuIEkgZ3Vl
-c3MsIGEgYmV0dGVyIG5hbWUgd291bGQgaGF2ZQo+ID4gYmVlbiBnZnhfcGFzc3RocnVfcHJpbWFy
-eT8gb2ggd2VsbCwgd2UgYXJlIHN0dWNrIHdpdGggaXQgbm93Lgo+ID4gCj4gCj4gWWVhaC4uIEkg
-dGhpbmsgZWFybGllciBnZnhfcGFzc3RocnUgd2Fzbid0IGEgYm9vbGVhbiwgYnV0IGFuIGludGVn
-ZXIsIHRvIGNob29zZSB0aGUgbW9kZS4KCk9oLCBkbyB5b3UgaGFwcGVuIHRvIGtub3cgd2hhdCB0
-aGUgbWVhbmluZ3Mgd2VyZT8KCj4gPiA+ICBzbyB0aGUgUWVtdSBlbXVsYXRlZCAKPiA+ID4gK2dy
-YXBoaWNzIGFkYXB0ZXIgaXMgZGlzYWJsZWQsIGFuZCB0aGUgVk5DIGNvbnNvbGUgZm9yIHRoZSBW
-TSB3b24ndCBoYXZlCj4gPiA+ICthbnkgZ3JhcGhpY3Mgb3V0cHV0LiBBbGwgZ3JhcGhpY3Mgb3V0
-cHV0LCBpbmNsdWRpbmcgYm9vdCB0aW1lIFFlbXUgQklPUwo+ID4gPiArbWVzc2FnZXMgZnJvbSB0
-aGUgVk0sIHdpbGwgZ28gdG8gdGhlIHBoeXNpY2FsIG91dHB1dHMgb2YgdGhlIHBhc3NlZCB0aHJ1
-Cj4gPiA+ICtwaHlzaWNhbCBncmFwaGljcyBjYXJkLgo+ID4gPiArCj4gPiA+ICtHcmFwaGljcyBj
-YXJkIFBDSSBkZXZpY2UgdG8gcGFzc3RocnUgaXMgY2hvc2VuIHdpdGggQjxwY2k+IG9wdGlvbiwg
-Cj4gPiA+ICtleGFjdGx5IGluIHRoZSBzYW1lIHdheSBhcyBub3JtYWwgWGVuIFBDSSBkZXZpY2Ug
-cGFzc3RocnUvYXNzaWdubWVudCBpcyBkb25lLiAKPiA+ID4gK05vdGUgdGhhdCBnZnhfcGFzc3Ro
-cnUgZG9lc24ndCBkbyBhbnkga2luZCBvZiBzaGFyaW5nCj4gPiA+ICtvZiB0aGUgR1BVLCBzbyB5
-b3UgY2FuIG9ubHkgYXNzaWduIHRoZSBHUFUgdG8gb25lIHNpbmdsZSBWTSBhdCBhIHRpbWUuCj4g
-PiA+ICsKPiA+ID4gK2dmeF9wYXNzdGhydSBhbHNvIGVuYWJsZXMgdmFyaW91cyBsZWdhY3kgVkdB
-IG1lbW9yeSByYW5nZXMsIEJBUnMsIE1NSU9zLCAKPiA+ID4gK2FuZCBpb3BvcnRzIHRvIGJlIHBh
-c3NlZCB0aHJ1IHRvIHRoZSBWTSwgc2luY2UgdGhvc2UgYXJlIHJlcXVpcmVkCj4gPiA+ICtmb3Ig
-Y29ycmVjdCBvcGVyYXRpb24gb2YgdGhpbmdzIGxpa2UgVkdBIEJJT1MsIHRleHQgbW9kZSwgVkJF
-LCBldGMuCj4gPiA+ICsKPiA+ID4gK0VuYWJsaW5nIGdmeF9wYXNzdGhydSBvcHRpb24gYWxzbyBj
-b3BpZXMgdGhlIHBoeXNpY2FsIGdyYXBoaWNzIGNhcmQgCj4gPiA+ICt2aWRlbyBiaW9zIHRvIHRo
-ZSBndWVzdCBtZW1vcnksIGFuZCBleGVjdXRlcyB0aGUgdmJpb3MgaW4gdGhlIGd1ZXN0IAo+ID4g
-Cj4gPiAiQklPUyIgYW5kIChJIGV4cGVjdCkgIlZCSU9TIj8KPiA+IAo+IAo+IHZpZGVvIGJpb3Mg
-PT0gdmJpb3MsIG9yIGRpZCB5b3UgYXNrIHNvbWV0aGluZyBlbHNlPyAKCkkgd2FzIGp1c3QgY29t
-bWVudGluZyBvbiB0aGUgY2FwaXRhbGlzYXRpb24gZGlmZmVyaW5nIGZyb20gb3RoZXIKbWVudGlv
-bnMgb2YgdGhlIEJJT1MuCgo+ID4gPiArdG8gZ2V0IHRoZSBncmFwaGljcyBjYXJkIGluaXRpYWxp
-emVkLgo+ID4gPiArCj4gPiA+ICtNb3N0IGdyYXBoaWNzIGFkYXB0ZXJzIHJlcXVpcmUgdmVuZG9y
-IHNwZWNpZmljIHR3ZWFrcyBmb3IgcHJvcGVybHkKPiA+ID4gK3dvcmtpbmcgZ3JhcGhpY3MgcGFz
-c3RocnUuIFhlbiBjdXJyZW50bHkgaW5jbHVkZXMgbmVjZXNzYXJ5IHR3ZWFrcwo+ID4gPiArZm9y
-IEludGVsIElHRCAoSW50ZWdyYXRlZCBHcmFwaGljcyBEZXZpY2UpIEdQVXMuICAKPiA+ID4gKwo+
-ID4gPiArU3VwcG9ydCBmb3IgQU1EL052aWRpYSBnZnhfcGFzc3RocnUgaXMgbm90IHlldCBtZXJn
-ZWQgdG8gWGVuLAo+ID4gPiArYnV0IHRoZXJlIGFyZSBvdXQtb2YtdHJlZSBwYXRjaGVzIGF2YWls
-YWJsZS4KPiA+IAo+ID4gSWYgdGhlcmUgaXMgYSBjb21wcmVoZW5zaXZlIGxpc3Qgb2Ygc3VwcG9y
-dGVkL25vdC1zdXBwb3J0ZWQgZGV2aWNlcyBvbgo+ID4gdGhlIHdpa2kgdGhlbiBJIHRoaW5rIGEg
-cmVmZXJlbmNlIGhlcmUgd291bGQgYmUgbW9yZSB1c2VmdWwgdGhhbiB0aGVzZQo+ID4gdHdvIGJy
-aWVmIHBhcmFncmFwaHMuCj4gPiAKPiAKPiBXZSBoYXZlIGEgbGlzdCwgYnV0IGl0J3Mgbm90IHVw
-LXRvLWRhdGUgdW5mb3J0dW5hdGVseToKPiBodHRwOi8vd2lraS54ZW4ub3JnL3dpa2kvWGVuVkdB
-UGFzc3Rocm91Z2hUZXN0ZWRBZGFwdGVycwoKSSB0aGluayBpdCBpcyB3b3J0aCByZWZlcmVuY2lu
-ZyBpdCwgYW5kIHBlcmhhcHMgYWRkaW5nIGEgbm90ZSB0byB0aGUKcGFnZSBpdHNlbGYgcmVnYXJk
-aW5nIGl0cyBmcmVzaG5lc3MgKGFuZCB0aGVuIHdvcmtpbmcgdG8gaW1wcm92ZSBpdCwgb2YKY291
-cnNlIDstKSkKCj4gPiBJbiBwYXJ0aWN1bGFyIHRoZSBzZWNvbmQgaXNuJ3QgdmVyeSB1c2VmdWwg
-d2l0aG91dCBsaW5rcyBhbmQgdGhvc2UgdGVuZAo+ID4gdG8gYmVjb21lIG91dCBvZiBkYXRlIGlu
-IGRvY3MgSU1FLCBJIHdvdWxkIHRlbmQgdG8gb21pdCB0aGlzIGZyb20gaGVyZQo+ID4gYW5kIGlu
-c3RlYWQgaW5jbHVkZSB0aGVtIGluIHRoZSB3aWtpIHdoZXJlIHRoZXkgY2FuIGJlIGtlcHQgdXAg
-dG8gZGF0ZQo+ID4KPiAKPiBPay4gSSdsbCBmaXggdGhhdCwgYW5kIGFkZCBhIGxpbmsgdG86Cj4g
-aHR0cDovL3dpa2kueGVuLm9yZy93aWtpL1hlblZHQVBhc3N0aHJvdWdoCgpUaGFua3MuCgpJYW4u
-CgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRl
-dmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwOi8vbGlzdHMueGVu
-Lm9yZy94ZW4tZGV2ZWwK
-
diff --git a/test/corpus/<1347272111.5305.52.camel@zakaz.uk.xensource.com> b/test/corpus/<1347272111.5305.52.camel@zakaz.uk.xensource.com>
deleted file mode 100644 (file)
index caca3b4..0000000
+++ /dev/null
@@ -1,135 +0,0 @@
-From xen-devel-bounces@lists.xen.org Mon Sep 10 11:20:10 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Mon, 10 Sep 2012 11:20:10 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TB166-0007Gt-O6
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Mon, 10 Sep 2012 11:20:09 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TB11b-0007zS-H1; Mon, 10 Sep 2012 10:15:27 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1TB11a-0007zE-I5
-       for xen-devel@lists.xen.org; Mon, 10 Sep 2012 10:15:26 +0000
-Received: from [85.158.143.99:32545] by server-1.bemta-4.messagelabs.com id
-       70/EA-12504-DBDBD405; Mon, 10 Sep 2012 10:15:25 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-6.tower-216.messagelabs.com!1347272112!22469026!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTIyODk=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 21720 invoked from network); 10 Sep 2012 10:15:16 -0000
-Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-6.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
-       10 Sep 2012 10:15:16 -0000
-X-IronPort-AV: E=Sophos;i="4.80,396,1344211200"; d="scan'208";a="14438283"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       10 Sep 2012 10:15:12 +0000
-Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.279.1;
-       Mon, 10 Sep 2012 11:15:12 +0100
-Message-ID: <1347272111.5305.52.camel@zakaz.uk.xensource.com>
-From: Ian Campbell <Ian.Campbell@citrix.com>
-To: Pasi =?ISO-8859-1?Q?K=E4rkk=E4inen?= <pasik@iki.fi>
-Date: Mon, 10 Sep 2012 11:15:11 +0100
-In-Reply-To: <20120905200858.GP8912@reaktio.net>
-References: <20120902053549.GF8912@reaktio.net>
-       <1346667053.25864.21.camel@zakaz.uk.xensource.com>
-       <20120904191229.GH8912@reaktio.net>
-       <1346834000.17325.4.camel@zakaz.uk.xensource.com>
-       <20120905200858.GP8912@reaktio.net>
-Organization: Citrix Systems, Inc.
-X-Mailer: Evolution 3.4.3-1 
-MIME-Version: 1.0
-Cc: Jan Beulich <JBeulich@suse.com>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="utf-8"
-Content-Transfer-Encoding: base64
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.6 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH v2] xl.cfg: gfx_passthru documentation
-       improvements
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-T24gV2VkLCAyMDEyLTA5LTA1IGF0IDIxOjA4ICswMTAwLCBQYXNpIEvDpHJra8OkaW5lbiB3cm90
-ZToKPiBIZWxsbywKPiAKPiB2MjogYWRkcmVzcyByZXZpZXcgY29tbWVudHMuCj4gCj4geGwuY2Zn
-LnBvZC41IGRvY3VtZW50YXRpb24gaW1wcm92ZW1lbnRzOgo+IAo+IC0gZ2Z4X3Bhc3N0aHJ1OiBE
-b2N1bWVudCBnZnhfcGFzc3RocnUgbWFrZXMgdGhlIEdQVSBiZWNvbWUgcHJpbWFyeSBpbiB0aGUg
-Z3Vlc3QKPiAgIGFuZCBvdGhlciBnZW5lcmljIGluZm8gYWJvdXQgZ2Z4X3Bhc3N0aHJ1Lgo+IAo+
-IFNpZ25lZC1vZmYtYnk6IFBhc2kgS8Okcmtrw6RpbmVuIDxwYXNpa0Bpa2kuZmk+CgpBY2tlZCAr
-IGFwcGxpZWQsIHRoYW5rcy4KCkphbiwgSSB0aGluayB0aGlzIGRvY3Mgb25seSBjaGFuZ2UgY2Fu
-IGJlIGEgY2FuZGlkYXRlIGZvciA0LjIuMCwgYnV0IGlmCm5vdCB0aGVuIDQuMi4xIHdvdWxkIGJl
-IGdvb2QuIAoKSWFuLgoKPiAKPiAKPiAtLS0geGVuLXVuc3RhYmxlLmhnL2RvY3MvbWFuL3hsLmNm
-Zy5wb2QuNS5vcmlnICAyMDEyLTA5LTA1IDIyOjUxOjM5Ljc0NTEzNzA3NiArMDMwMAo+ICsrKyB4
-ZW4tdW5zdGFibGUuaGcvZG9jcy9tYW4veGwuY2ZnLnBvZC41ICAgICAgIDIwMTItMDktMDUgMjM6
-MDI6MjkuNzQ2MjAzMzY0ICswMzAwCj4gQEAgLTk5Miw3ICs5OTIsNDQgQEAKPiAKPiAgPWl0ZW0g
-QjxnZnhfcGFzc3RocnU9Qk9PTEVBTj4KPiAKPiAtRW5hYmxlIGdyYXBoaWNzIGRldmljZSBQQ0kg
-cGFzc3Rocm91Z2guIFhYWCB3aGljaCBkZXZpY2UgaXMgcGFzc2VkIHRocm91Z2ggPwo+ICtFbmFi
-bGUgZ3JhcGhpY3MgZGV2aWNlIFBDSSBwYXNzdGhyb3VnaC4gVGhpcyBvcHRpb24gbWFrZXMgdGhl
-IHBhc3N0aHJ1Cj4gK2dyYXBoaWNzIGNhcmQgYmVjb21lIHByaW1hcnkgZ3JhcGhpY3MgY2FyZCBp
-biB0aGUgVk0sIHNvIHRoZSBRZW11IGVtdWxhdGVkCj4gK2dyYXBoaWNzIGFkYXB0ZXIgaXMgZGlz
-YWJsZWQsIGFuZCB0aGUgVk5DIGNvbnNvbGUgZm9yIHRoZSBWTSB3b24ndCBoYXZlCj4gK2FueSBn
-cmFwaGljcyBvdXRwdXQuIEFsbCBncmFwaGljcyBvdXRwdXQsIGluY2x1ZGluZyBib290IHRpbWUg
-UWVtdSBCSU9TCj4gK21lc3NhZ2VzIGZyb20gdGhlIFZNLCB3aWxsIGdvIHRvIHRoZSBwaHlzaWNh
-bCBvdXRwdXRzIG9mIHRoZSBwYXNzZWQgdGhydQo+ICtwaHlzaWNhbCBncmFwaGljcyBjYXJkLgo+
-ICsKPiArR3JhcGhpY3MgY2FyZCBQQ0kgZGV2aWNlIHRvIHBhc3N0aHJ1IGlzIGNob3NlbiB3aXRo
-IEI8cGNpPiBvcHRpb24sCj4gK2V4YWN0bHkgaW4gdGhlIHNhbWUgd2F5IGFzIG5vcm1hbCBYZW4g
-UENJIGRldmljZSBwYXNzdGhydS9hc3NpZ25tZW50IGlzIGRvbmUuCj4gK05vdGUgdGhhdCBnZnhf
-cGFzc3RocnUgZG9lc24ndCBkbyBhbnkga2luZCBvZiBzaGFyaW5nCj4gK29mIHRoZSBHUFUsIHNv
-IHlvdSBjYW4gb25seSBhc3NpZ24gdGhlIEdQVSB0byBvbmUgc2luZ2xlIFZNIGF0IGEgdGltZS4K
-PiArCj4gK2dmeF9wYXNzdGhydSBhbHNvIGVuYWJsZXMgdmFyaW91cyBsZWdhY3kgVkdBIG1lbW9y
-eSByYW5nZXMsIEJBUnMsIE1NSU9zLAo+ICthbmQgaW9wb3J0cyB0byBiZSBwYXNzZWQgdGhydSB0
-byB0aGUgVk0sIHNpbmNlIHRob3NlIGFyZSByZXF1aXJlZAo+ICtmb3IgY29ycmVjdCBvcGVyYXRp
-b24gb2YgdGhpbmdzIGxpa2UgVkdBIEJJT1MsIHRleHQgbW9kZSwgVkJFLCBldGMuCj4gKwo+ICtF
-bmFibGluZyBnZnhfcGFzc3RocnUgb3B0aW9uIGFsc28gY29waWVzIHRoZSBwaHlzaWNhbCBncmFw
-aGljcyBjYXJkCj4gK3ZpZGVvIEJJT1MgdG8gdGhlIGd1ZXN0IG1lbW9yeSwgYW5kIGV4ZWN1dGVz
-IHRoZSBWQklPUyBpbiB0aGUgZ3Vlc3QKPiArdG8gZ2V0IHRoZSBncmFwaGljcyBjYXJkIGluaXRp
-YWxpemVkLgo+ICsKPiArTW9zdCBncmFwaGljcyBhZGFwdGVycyByZXF1aXJlIHZlbmRvciBzcGVj
-aWZpYyB0d2Vha3MgZm9yIHByb3Blcmx5Cj4gK3dvcmtpbmcgZ3JhcGhpY3MgcGFzc3RocnUuIFNl
-ZSB0aGUgWGVuVkdBUGFzc3Rocm91Z2hUZXN0ZWRBZGFwdGVycwo+ICtMPGh0dHA6Ly93aWtpLnhl
-bi5vcmcvd2lraS9YZW5WR0FQYXNzdGhyb3VnaFRlc3RlZEFkYXB0ZXJzPgo+ICt3aWtpIHBhZ2Ug
-Zm9yIGN1cnJlbnRseSBzdXBwb3J0ZWQgZ3JhcGhpY3MgY2FyZHMgZm9yIGdmeF9wYXNzdGhydS4K
-PiArCj4gK2dmeF9wYXNzdGhydSBpcyBjdXJyZW50bHkgb25seSBzdXBwb3J0ZWQgd2l0aCB0aGUg
-cWVtdS14ZW4tdHJhZGl0aW9uYWwKPiArZGV2aWNlLW1vZGVsLiBVcHN0cmVhbSBxZW11LXhlbiBk
-ZXZpY2UtbW9kZWwgY3VycmVudGx5IGRvZXNuJ3QgaGF2ZQo+ICtzdXBwb3J0IGZvciBnZnhfcGFz
-c3RocnUuCj4gKwo+ICtOb3RlIHRoYXQgc29tZSBncmFwaGljcyBhZGFwdGVycyAoQU1EL0FUSSBj
-YXJkcywgZm9yIGV4YW1wbGUpIGRvbid0Cj4gK25lY2Vzc2FyaWx5IHJlcXVpcmUgZ2Z4X3Bhc3N0
-aHJ1IG9wdGlvbiwgc28geW91IGNhbiB1c2UgdGhlIG5vcm1hbAo+ICtYZW4gUENJIHBhc3N0aHJ1
-IHRvIGFzc2lnbiB0aGUgZ3JhcGhpY3MgY2FyZCBhcyBhIHNlY29uZGFyeSBncmFwaGljcyBjYXJk
-Cj4gK3RvIHRoZSBWTS4gUWVtdSBlbXVsYXRlZCBncmFwaGljcyBjYXJkIHN0YXlzIGFzIHRoZSBw
-cmltYXJ5IGdyYXBoaWNzIGNhcmQsCj4gK2FuZCB5b3UgZ2V0IFZOQyBvdXRwdXQgZnJvbSB0aGUg
-UWVtdS1lbXVsYXRlZCBwcmltYXJ5IGFkYXB0ZXIuCj4gKwo+ICtNb3JlIGluZm9ybWF0aW9uIGFi
-b3V0IFhlbiBnZnhfcGFzc3RocnUgZmVhdHVyZSBpcyBhdmFpbGFibGUKPiArb24gdGhlIFhlblZH
-QVBhc3N0aHJvdWdoIEw8aHR0cDovL3dpa2kueGVuLm9yZy93aWtpL1hlblZHQVBhc3N0aHJvdWdo
-Pgo+ICt3aWtpIHBhZ2UuCj4gCj4gID1pdGVtIEI8bm9taWdyYXRlPUJPT0xFQU4+Cj4gCgoKCl9f
-X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBt
-YWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cDovL2xpc3RzLnhlbi5vcmcv
-eGVuLWRldmVsCg==
-
diff --git a/test/corpus/<1347627587.24226.192.camel@zakaz.uk.xensource.com> b/test/corpus/<1347627587.24226.192.camel@zakaz.uk.xensource.com>
deleted file mode 100644 (file)
index 79ce4bd..0000000
+++ /dev/null
@@ -1,148 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Sep 14 14:04:56 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 14 Sep 2012 14:04:56 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TCVZj-00055d-AG
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 14 Sep 2012 14:04:56 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TCVVY-0002sR-7q; Fri, 14 Sep 2012 13:00:32 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1TCVVW-0002sM-CS
-       for xen-devel@lists.xensource.com; Fri, 14 Sep 2012 13:00:30 +0000
-Received: from [85.158.143.99:4986] by server-1.bemta-4.messagelabs.com id
-       69/92-12504-D6A23505; Fri, 14 Sep 2012 13:00:29 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-5.tower-216.messagelabs.com!1347627619!30030163!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDkyOTU=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 19038 invoked from network); 14 Sep 2012 13:00:29 -0000
-Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-5.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
-       14 Sep 2012 13:00:29 -0000
-X-IronPort-AV: E=Sophos;i="4.80,422,1344211200"; d="scan'208";a="14546460"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       14 Sep 2012 12:59:48 +0000
-Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.279.1;
-       Fri, 14 Sep 2012 13:59:48 +0100
-Message-ID: <1347627587.24226.192.camel@zakaz.uk.xensource.com>
-From: Ian Campbell <Ian.Campbell@citrix.com>
-To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-Date: Fri, 14 Sep 2012 13:59:47 +0100
-In-Reply-To: <1345633688-31684-1-git-send-email-stefano.stabellini@eu.citrix.com>
-References: <alpine.DEB.2.02.1208221159560.15568@kaball.uk.xensource.com>
-       <1345633688-31684-1-git-send-email-stefano.stabellini@eu.citrix.com>
-Organization: Citrix Systems, Inc.
-X-Mailer: Evolution 3.4.3-1 
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
-       "Tim \(Xen.org\)" <tim@xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.7 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH v4 1/6] xen: improve changes to
-       xen_add_to_physmap
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-
-On Wed, 2012-08-22 at 12:08 +0100, Stefano Stabellini wrote:
-> This is an incremental patch on top of
-> c0bc926083b5987a3e9944eec2c12ad0580100e2: in order to retain binary
-> compatibility, it is better to introduce foreign_domid as part of a
-> union containing both size and foreign_domid.
-[...]
-> diff --git a/xen/include/public/memory.h b/xen/include/public/memory.h
-> index b2adfbe..7d4ee26 100644
-> --- a/xen/include/public/memory.h
-> +++ b/xen/include/public/memory.h
-> @@ -208,8 +208,12 @@ struct xen_add_to_physmap {
->      /* Which domain to change the mapping for. */
->      domid_t domid;
->  
-> -    /* Number of pages to go through for gmfn_range */
-> -    uint16_t    size;
-> +    union {
-> +        /* Number of pages to go through for gmfn_range */
-> +        uint16_t    size;
-> +        /* IFF gmfn_foreign */
-> +        domid_t foreign_domid;
-> +    } u;
->  
->      /* Source mapping space. */
->  #define XENMAPSPACE_shared_info  0 /* shared info page */
-> @@ -217,8 +221,7 @@ struct xen_add_to_physmap {
->  #define XENMAPSPACE_gmfn         2 /* GMFN */
->  #define XENMAPSPACE_gmfn_range   3 /* GMFN range */
->  #define XENMAPSPACE_gmfn_foreign 4 /* GMFN from another guest */
-> -    uint16_t space;
-> -    domid_t foreign_domid; /* IFF gmfn_foreign */
-> +    unsigned int space;
->  
->  #define XENMAPIDX_grant_table_status 0x80000000
-
-Was this the final consensus on what this interface ought to look like?
-
-Does it work for PVH too (Mukesh CCd)?
-
-Might we prefer to have a batched version of this call? I don't think we
-can shoehorn the necessary fields into xen_add_to_physmap_t though.
-
-Do we think libxc will ever want to call a batch version of
-XENMAPSPACE_gmfn_foreign ? If not then we can probably get away using
-multicall batching. If yes then perhaps not -- libxc doesn'tdo
-multicalls.
-
-XENMAPSPACE_gmfn_range was added to avoid an issue with tonnes of
-(iommu?) flushes when remapping large numbers of pages with
-XENMAPSPACE_gmfn. It seems like XENMAPSPACE_gmfn_foreign  could suffer
-the same issue, in which case multicalls won't cut it.
-
-I guess XENMAPSPACE_gmfn_range works only on contiguous ranges in both P
-and M space? That style probably doesn't work for foreign anyway (where
-at least the M isn't going to be contiguous)
-
-Sorry for not thinking about this until after all the faff with unions
-was done...
-
-Ian.
-
-
-
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1347628660.24226.197.camel@zakaz.uk.xensource.com> b/test/corpus/<1347628660.24226.197.camel@zakaz.uk.xensource.com>
deleted file mode 100644 (file)
index f56a3ce..0000000
+++ /dev/null
@@ -1,101 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Sep 14 14:21:23 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 14 Sep 2012 14:21:23 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TCVpd-0005DA-Na
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 14 Sep 2012 14:21:23 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TCVmD-0004BU-Cy; Fri, 14 Sep 2012 13:17:45 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1TCVmB-0004BE-F0
-       for xen-devel@lists.xensource.com; Fri, 14 Sep 2012 13:17:43 +0000
-Received: from [85.158.139.211:60992] by server-11.bemta-5.messagelabs.com id
-       C9/DB-24658-67E23505; Fri, 14 Sep 2012 13:17:42 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-11.tower-206.messagelabs.com!1347628662!18583037!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDkyOTU=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 11808 invoked from network); 14 Sep 2012 13:17:42 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-11.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
-       14 Sep 2012 13:17:42 -0000
-X-IronPort-AV: E=Sophos;i="4.80,422,1344211200"; d="scan'208";a="14546991"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       14 Sep 2012 13:17:42 +0000
-Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.279.1;
-       Fri, 14 Sep 2012 14:17:41 +0100
-Message-ID: <1347628660.24226.197.camel@zakaz.uk.xensource.com>
-From: Ian Campbell <Ian.Campbell@citrix.com>
-To: Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-Date: Fri, 14 Sep 2012 14:17:40 +0100
-In-Reply-To: <1347627587.24226.192.camel@zakaz.uk.xensource.com>
-References: <alpine.DEB.2.02.1208221159560.15568@kaball.uk.xensource.com>
-       <1345633688-31684-1-git-send-email-stefano.stabellini@eu.citrix.com>
-       <1347627587.24226.192.camel@zakaz.uk.xensource.com>
-Organization: Citrix Systems, Inc.
-X-Mailer: Evolution 3.4.3-1 
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>, "Tim
-       \(Xen.org\)" <tim@xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.7 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH v4 1/6] xen: improve changes to
- xen_add_to_physmap
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-(forgot to CC Mukesh on y last mail like I said it would, I've done it
-now and will bounce the last one to you Mukesh)
-
-On Fri, 2012-09-14 at 13:59 +0100, Ian Campbell wrote:
-> 
-> Might we prefer to have a batched version of this call? I don't think
-> we can shoehorn the necessary fields into xen_add_to_physmap_t though.
-
-Actually, talking about this we Stefano we think we can. Since both idx
-and gpfn are unsigned longs they can become unions with a GUEST_HANDLE
-without changing the ABI on x86_32 or x86_64.
-
-If we do this then we should do away with the singleton
-XENMAPSPACE_gmfn_foreign and just make it a batched interface.
-
-Ian.
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1347630442.24226.211.camel@zakaz.uk.xensource.com> b/test/corpus/<1347630442.24226.211.camel@zakaz.uk.xensource.com>
deleted file mode 100644 (file)
index e8c907a..0000000
+++ /dev/null
@@ -1,99 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Sep 14 14:51:30 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 14 Sep 2012 14:51:30 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TCWIm-0005Oj-FE
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 14 Sep 2012 14:51:30 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TCWEw-0006Fg-BU; Fri, 14 Sep 2012 13:47:26 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1TCWEv-0006FX-5n
-       for xen-devel@lists.xensource.com; Fri, 14 Sep 2012 13:47:25 +0000
-Received: from [85.158.143.35:14983] by server-2.bemta-4.messagelabs.com id
-       E4/33-21239-C6533505; Fri, 14 Sep 2012 13:47:24 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-9.tower-21.messagelabs.com!1347630444!7236282!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDkyOTU=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 30382 invoked from network); 14 Sep 2012 13:47:24 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-9.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
-       14 Sep 2012 13:47:24 -0000
-X-IronPort-AV: E=Sophos;i="4.80,423,1344211200"; d="scan'208";a="14547917"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       14 Sep 2012 13:47:23 +0000
-Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.279.1;
-       Fri, 14 Sep 2012 14:47:23 +0100
-Message-ID: <1347630442.24226.211.camel@zakaz.uk.xensource.com>
-From: Ian Campbell <Ian.Campbell@citrix.com>
-To: Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-Date: Fri, 14 Sep 2012 14:47:22 +0100
-In-Reply-To: <1347628660.24226.197.camel@zakaz.uk.xensource.com>
-References: <alpine.DEB.2.02.1208221159560.15568@kaball.uk.xensource.com>
-       <1345633688-31684-1-git-send-email-stefano.stabellini@eu.citrix.com>
-       <1347627587.24226.192.camel@zakaz.uk.xensource.com>
-       <1347628660.24226.197.camel@zakaz.uk.xensource.com>
-Organization: Citrix Systems, Inc.
-X-Mailer: Evolution 3.4.3-1 
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>, "Tim
-       \(Xen.org\)" <tim@xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="utf-8"
-Content-Transfer-Encoding: base64
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.7 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH v4 1/6] xen: improve changes to
- xen_add_to_physmap
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-T24gRnJpLCAyMDEyLTA5LTE0IGF0IDE0OjE3ICswMTAwLCBJYW4gQ2FtcGJlbGwgd3JvdGU6Cj4g
-KGZvcmdvdCB0byBDQyBNdWtlc2ggb24geSBsYXN0IG1haWwgbGlrZSBJIHNhaWQgaXQgd291bGQs
-IEkndmUgZG9uZSBpdAo+IG5vdyBhbmQgd2lsbCBib3VuY2UgdGhlIGxhc3Qgb25lIHRvIHlvdSBN
-dWtlc2gpCgomJSTCoyUgSSd2ZSBkb25lIGl0IGFnYWluLiBBY3R1YWxseSBDQ2luZyBNdWtlc2gg
-dGhpcyB0aW1lIQoKPiAKPiBPbiBGcmksIDIwMTItMDktMTQgYXQgMTM6NTkgKzAxMDAsIElhbiBD
-YW1wYmVsbCB3cm90ZToKPiA+IAo+ID4gTWlnaHQgd2UgcHJlZmVyIHRvIGhhdmUgYSBiYXRjaGVk
-IHZlcnNpb24gb2YgdGhpcyBjYWxsPyBJIGRvbid0IHRoaW5rCj4gPiB3ZSBjYW4gc2hvZWhvcm4g
-dGhlIG5lY2Vzc2FyeSBmaWVsZHMgaW50byB4ZW5fYWRkX3RvX3BoeXNtYXBfdCB0aG91Z2guCj4g
-Cj4gQWN0dWFsbHksIHRhbGtpbmcgYWJvdXQgdGhpcyB3ZSBTdGVmYW5vIHdlIHRoaW5rIHdlIGNh
-bi4gU2luY2UgYm90aCBpZHgKPiBhbmQgZ3BmbiBhcmUgdW5zaWduZWQgbG9uZ3MgdGhleSBjYW4g
-YmVjb21lIHVuaW9ucyB3aXRoIGEgR1VFU1RfSEFORExFCj4gd2l0aG91dCBjaGFuZ2luZyB0aGUg
-QUJJIG9uIHg4Nl8zMiBvciB4ODZfNjQuCj4gCj4gSWYgd2UgZG8gdGhpcyB0aGVuIHdlIHNob3Vs
-ZCBkbyBhd2F5IHdpdGggdGhlIHNpbmdsZXRvbgo+IFhFTk1BUFNQQUNFX2dtZm5fZm9yZWlnbiBh
-bmQganVzdCBtYWtlIGl0IGEgYmF0Y2hlZCBpbnRlcmZhY2UuCj4gCj4gSWFuLgo+IAo+IAo+IF9f
-X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gWGVuLWRldmVs
-IG1haWxpbmcgbGlzdAo+IFhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCj4gaHR0cDovL2xpc3RzLnhl
-bi5vcmcveGVuLWRldmVsCgoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
-X19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcK
-aHR0cDovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==
-
diff --git a/test/corpus/<1347630971.24226.214.camel@zakaz.uk.xensource.com> b/test/corpus/<1347630971.24226.214.camel@zakaz.uk.xensource.com>
deleted file mode 100644 (file)
index 22e8bf2..0000000
+++ /dev/null
@@ -1,109 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Sep 14 15:01:02 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 14 Sep 2012 15:01:02 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TCWS0-0005RS-O7
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 14 Sep 2012 15:01:02 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TCWNl-0006UL-FD; Fri, 14 Sep 2012 13:56:33 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1TCWNj-0006UG-Nd
-       for xen-devel@lists.xensource.com; Fri, 14 Sep 2012 13:56:31 +0000
-Received: from [85.158.137.99:13759] by server-7.bemta-3.messagelabs.com id
-       5A/2F-32000-E8733505; Fri, 14 Sep 2012 13:56:30 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-8.tower-217.messagelabs.com!1347630989!12333626!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDkyOTU=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 16483 invoked from network); 14 Sep 2012 13:56:29 -0000
-Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-8.tower-217.messagelabs.com with RC4-SHA encrypted SMTP;
-       14 Sep 2012 13:56:29 -0000
-X-IronPort-AV: E=Sophos;i="4.80,423,1344211200"; d="scan'208";a="14548138"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       14 Sep 2012 13:56:13 +0000
-Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.279.1;
-       Fri, 14 Sep 2012 14:56:12 +0100
-Message-ID: <1347630971.24226.214.camel@zakaz.uk.xensource.com>
-From: Ian Campbell <Ian.Campbell@citrix.com>
-To: Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-Date: Fri, 14 Sep 2012 14:56:11 +0100
-In-Reply-To: <1347630442.24226.211.camel@zakaz.uk.xensource.com>
-References: <alpine.DEB.2.02.1208221159560.15568@kaball.uk.xensource.com>
-       <1345633688-31684-1-git-send-email-stefano.stabellini@eu.citrix.com>
-       <1347627587.24226.192.camel@zakaz.uk.xensource.com>
-       <1347628660.24226.197.camel@zakaz.uk.xensource.com>
-       <1347630442.24226.211.camel@zakaz.uk.xensource.com>
-Organization: Citrix Systems, Inc.
-X-Mailer: Evolution 3.4.3-1 
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>, "Tim
-       \(Xen.org\)" <tim@xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="utf-8"
-Content-Transfer-Encoding: base64
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.7 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH v4 1/6] xen: improve changes to
- xen_add_to_physmap
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-T24gRnJpLCAyMDEyLTA5LTE0IGF0IDE0OjQ3ICswMTAwLCBJYW4gQ2FtcGJlbGwgd3JvdGU6Cj4g
-T24gRnJpLCAyMDEyLTA5LTE0IGF0IDE0OjE3ICswMTAwLCBJYW4gQ2FtcGJlbGwgd3JvdGU6Cj4g
-PiAoZm9yZ290IHRvIENDIE11a2VzaCBvbiB5IGxhc3QgbWFpbCBsaWtlIEkgc2FpZCBpdCB3b3Vs
-ZCwgSSd2ZSBkb25lIGl0Cj4gPiBub3cgYW5kIHdpbGwgYm91bmNlIHRoZSBsYXN0IG9uZSB0byB5
-b3UgTXVrZXNoKQo+IAo+ICYlJMKjJSBJJ3ZlIGRvbmUgaXQgYWdhaW4uIEFjdHVhbGx5IENDaW5n
-IE11a2VzaCB0aGlzIHRpbWUhCgpPSywgaXQncyBkZWZpbml0ZWx5IG5vdCBtZSwgSSdtIGNlcnRh
-aW4gSSBDQ2QgaGltIHRoaXMgdGltZS4gV2hlcmUgb24KZWFydGggYXJlIHRoZXkgZ29pbmchCgo+
-IAo+ID4gCj4gPiBPbiBGcmksIDIwMTItMDktMTQgYXQgMTM6NTkgKzAxMDAsIElhbiBDYW1wYmVs
-bCB3cm90ZToKPiA+ID4gCj4gPiA+IE1pZ2h0IHdlIHByZWZlciB0byBoYXZlIGEgYmF0Y2hlZCB2
-ZXJzaW9uIG9mIHRoaXMgY2FsbD8gSSBkb24ndCB0aGluawo+ID4gPiB3ZSBjYW4gc2hvZWhvcm4g
-dGhlIG5lY2Vzc2FyeSBmaWVsZHMgaW50byB4ZW5fYWRkX3RvX3BoeXNtYXBfdCB0aG91Z2guCj4g
-PiAKPiA+IEFjdHVhbGx5LCB0YWxraW5nIGFib3V0IHRoaXMgd2UgU3RlZmFubyB3ZSB0aGluayB3
-ZSBjYW4uIFNpbmNlIGJvdGggaWR4Cj4gPiBhbmQgZ3BmbiBhcmUgdW5zaWduZWQgbG9uZ3MgdGhl
-eSBjYW4gYmVjb21lIHVuaW9ucyB3aXRoIGEgR1VFU1RfSEFORExFCj4gPiB3aXRob3V0IGNoYW5n
-aW5nIHRoZSBBQkkgb24geDg2XzMyIG9yIHg4Nl82NC4KCkV4Y2VwdCB3ZSBuZWVkIGJvdGggZm9y
-ZWlnbl9kb21pZCBhbmQgc2l6ZSwgd2hpY2ggY3VycmVudGx5IG92ZXJsYXAsIGFuZAp0aGVyZSdz
-IG5vIG90aGVyIHNwYXJlIGJpdHMuIERhbW4uCgpMb29rcyBsaWtlIFhFTk1FTV9hZGRfdG9fcGh5
-c21hcF9yYW5nZSBpcyB0aGUgb25seSBvcHRpb24gOi0oCgpJYW4uCgo+ID4gCj4gPiBJZiB3ZSBk
-byB0aGlzIHRoZW4gd2Ugc2hvdWxkIGRvIGF3YXkgd2l0aCB0aGUgc2luZ2xldG9uCj4gPiBYRU5N
-QVBTUEFDRV9nbWZuX2ZvcmVpZ24gYW5kIGp1c3QgbWFrZSBpdCBhIGJhdGNoZWQgaW50ZXJmYWNl
-Lgo+ID4gCj4gPiBJYW4uCj4gPiAKPiA+IAo+ID4gX19fX19fX19fX19fX19fX19fX19fX19fX19f
-X19fX19fX19fX19fX19fX19fX18KPiA+IFhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKPiA+IFhlbi1k
-ZXZlbEBsaXN0cy54ZW4ub3JnCj4gPiBodHRwOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwKPiAK
-PiAKPiAKPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+
-IFhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKPiBYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwo+IGh0dHA6
-Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAoKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19f
-X19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0
-cy54ZW4ub3JnCmh0dHA6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=
-
diff --git a/test/corpus/<1347637953.14977.10.camel@zakaz.uk.xensource.com> b/test/corpus/<1347637953.14977.10.camel@zakaz.uk.xensource.com>
deleted file mode 100644 (file)
index 8d2fbd8..0000000
+++ /dev/null
@@ -1,124 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Sep 14 16:56:26 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 14 Sep 2012 16:56:26 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TCYFh-000616-6k
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 14 Sep 2012 16:56:26 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TCYC8-0004bF-UD; Fri, 14 Sep 2012 15:52:40 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1TCYC6-0004az-HW
-       for xen-devel@lists.xensource.com; Fri, 14 Sep 2012 15:52:38 +0000
-Received: from [85.158.139.211:49230] by server-3.bemta-5.messagelabs.com id
-       7A/D2-21836-5C253505; Fri, 14 Sep 2012 15:52:37 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-12.tower-206.messagelabs.com!1347637956!18550826!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDkyOTU=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 24323 invoked from network); 14 Sep 2012 15:52:36 -0000
-Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-12.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
-       14 Sep 2012 15:52:36 -0000
-X-IronPort-AV: E=Sophos;i="4.80,423,1344211200"; d="scan'208";a="14551196"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       14 Sep 2012 15:52:35 +0000
-Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.279.1;
-       Fri, 14 Sep 2012 16:52:35 +0100
-Message-ID: <1347637953.14977.10.camel@zakaz.uk.xensource.com>
-From: Ian Campbell <Ian.Campbell@citrix.com>
-To: Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-Date: Fri, 14 Sep 2012 16:52:33 +0100
-In-Reply-To: <alpine.DEB.2.02.1209141631200.29232@kaball.uk.xensource.com>
-References: <alpine.DEB.2.02.1208221159560.15568@kaball.uk.xensource.com>
-       <1345633688-31684-1-git-send-email-stefano.stabellini@eu.citrix.com>
-       <1347627587.24226.192.camel@zakaz.uk.xensource.com>
-       <1347628660.24226.197.camel@zakaz.uk.xensource.com>
-       <1347630442.24226.211.camel@zakaz.uk.xensource.com>
-       <1347630971.24226.214.camel@zakaz.uk.xensource.com>
-       <50535AFA020000780009B7C4@nat28.tlf.novell.com>
-       <alpine.DEB.2.02.1209141631200.29232@kaball.uk.xensource.com>
-Organization: Citrix Systems, Inc.
-X-Mailer: Evolution 3.4.3-1 
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>, Keir
-       Fraser <keir@xen.org>, "Tim \(Xen.org\)" <tim@xen.org>,
-       ijackson@chiark.greenend.org.uk, Jan Beulich <JBeulich@suse.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.7 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH v4 1/6] xen: improve changes to
- xen_add_to_physmap
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Fri, 2012-09-14 at 16:44 +0100, Stefano Stabellini wrote:
-> On Fri, 14 Sep 2012, Jan Beulich wrote:
-> > >>> On 14.09.12 at 15:56, Ian Campbell <Ian.Campbell@citrix.com> wrote:
-> > >> > > Might we prefer to have a batched version of this call? I don't think
-> > >> > > we can shoehorn the necessary fields into xen_add_to_physmap_t though.
-> > >> > 
-> > >> > Actually, talking about this we Stefano we think we can. Since both idx
-> > >> > and gpfn are unsigned longs they can become unions with a GUEST_HANDLE
-> > >> > without changing the ABI on x86_32 or x86_64.
-> > > 
-> > > Except we need both foreign_domid and size, which currently overlap, and
-> > > there's no other spare bits. Damn.
-> > > 
-> > > Looks like XENMEM_add_to_physmap_range is the only option :-(
-> > 
-> > You could use the first entry in each array to specify the counts,
-> > which would at once allow mixed granularity on each list (should
-> > that ever turn out useful); initially you would certainly want both
-> > counts to match.
-> 
-> I think it would be better from the interface point of view to have idx
-> become the number of frames, and gpfn a pointer (a GUEST_HANDLE) to a
-> struct that contains both arrays.
-
-We'd need to slip in enough info to allow continuations too. Perhaps
-that can be done by manipulating the size and the handle to keep track
-of progress. Or maybe we can get away with just just frobbing the size
-if we process the array backwards.
-
-Which is all sounding pretty gross. I'm very temped to add
-add_to_physmap2...
-
-Ian.
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1348059789.14977.119.camel@zakaz.uk.xensource.com> b/test/corpus/<1348059789.14977.119.camel@zakaz.uk.xensource.com>
deleted file mode 100644 (file)
index 48c9b99..0000000
+++ /dev/null
@@ -1,393 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Sep 19 14:07:27 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 19 Sep 2012 14:07:27 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TEJzs-0001Tn-L7
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 19 Sep 2012 14:07:26 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TEJvv-0004OX-9q; Wed, 19 Sep 2012 13:03:15 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1TEJvt-0004Nz-08
-       for xen-devel@lists.xensource.com; Wed, 19 Sep 2012 13:03:13 +0000
-Received: from [85.158.138.51:32651] by server-10.bemta-3.messagelabs.com id
-       9D/ED-10411-092C9505; Wed, 19 Sep 2012 13:03:12 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-4.tower-174.messagelabs.com!1348059791!30676673!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTAxNzU=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 5141 invoked from network); 19 Sep 2012 13:03:11 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-4.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
-       19 Sep 2012 13:03:11 -0000
-X-IronPort-AV: E=Sophos;i="4.80,447,1344211200"; d="scan'208";a="14631227"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       19 Sep 2012 13:03:11 +0000
-Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.279.1;
-       Wed, 19 Sep 2012 14:03:10 +0100
-Message-ID: <1348059789.14977.119.camel@zakaz.uk.xensource.com>
-From: Ian Campbell <Ian.Campbell@citrix.com>
-To: Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-Date: Wed, 19 Sep 2012 14:03:09 +0100
-In-Reply-To: <alpine.DEB.2.02.1209171153350.29232@kaball.uk.xensource.com>
-References: <alpine.DEB.2.02.1208221159560.15568@kaball.uk.xensource.com>
-       <1345633688-31684-1-git-send-email-stefano.stabellini@eu.citrix.com>
-       <1347627587.24226.192.camel@zakaz.uk.xensource.com>
-       <20120914160727.1ff41de2@mantra.us.oracle.com>
-       <alpine.DEB.2.02.1209171153350.29232@kaball.uk.xensource.com>
-Organization: Citrix Systems, Inc.
-X-Mailer: Evolution 3.4.3-1 
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
-       "Tim \(Xen.org\)" <tim@xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.8 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH v4 1/6] xen: improve changes to
-       xen_add_to_physmap
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Mon, 2012-09-17 at 11:54 +0100, Stefano Stabellini wrote:
-> On Sat, 15 Sep 2012, Mukesh Rathor wrote:
-> > On Fri, 14 Sep 2012 13:59:47 +0100
-> > Ian Campbell <Ian.Campbell@citrix.com> wrote:
-> > 
-> > > 
-> > > On Wed, 2012-08-22 at 12:08 +0100, Stefano Stabellini wrote:
-> > > > This is an incremental patch on top of
-> > > > c0bc926083b5987a3e9944eec2c12ad0580100e2: in order to retain binary
-> > > > compatibility, it is better to introduce foreign_domid as part of a
-> > > > union containing both size and foreign_domid.
-> > > [...]
-> > > > -    domid_t foreign_domid; /* IFF gmfn_foreign */
-> > > > +    unsigned int space;
-> > > >  
-> > > >  #define XENMAPIDX_grant_table_status 0x80000000
-> > > 
-> > > Was this the final consensus on what this interface ought to look
-> > > like?
-> > > 
-> > > Does it work for PVH too (Mukesh CCd)?
-> > 
-> > Yes it does. Please lmk if the final version asap so I can put in
-> > my patch, and also test it.
-> 
-> It the final version. I think it should go in, unless we want to drop it
-> entirely in favor of xen_add_to_physmap_range.
-
-Here is what I came up with on the ARM side. I'd image the X86 version
-would not be that different.
-
-Processing the batch in reverse order allows for continuations without
-needing an explicit pdone type thing. Still seems a bit wrong somehow.
-
-diff --git a/xen/arch/arm/mm.c b/xen/arch/arm/mm.c
-index aec57e5..7d6101c 100644
---- a/xen/arch/arm/mm.c
-+++ b/xen/arch/arm/mm.c
-@@ -26,6 +26,8 @@
- #include <xen/preempt.h>
- #include <xen/errno.h>
- #include <xen/grant_table.h>
-+#include <xen/softirq.h>
-+#include <xen/event.h>
- #include <xen/guest_access.h>
- #include <xen/domain_page.h>
- #include <asm/page.h>
-@@ -462,14 +464,17 @@ void share_xen_page_with_guest(struct page_info *page,
-     spin_unlock(&d->page_alloc_lock);
- }
--static int xenmem_add_to_physmap_once(
-+static int xenmem_add_to_physmap_one(
-     struct domain *d,
--    const struct xen_add_to_physmap *xatp)
-+    uint16_t space,
-+    domid_t foreign_domid,
-+    unsigned long idx,
-+    xen_pfn_t gpfn)
- {
--    unsigned long mfn = 0, idx = 0;
-+    unsigned long mfn = 0;
-     int rc;
--    switch ( xatp->space )
-+    switch ( space )
-     {
-     case XENMAPSPACE_grant_table:
-         spin_lock(&d->grant_table->lock);
-@@ -477,9 +482,8 @@ static int xenmem_add_to_physmap_once(
-         if ( d->grant_table->gt_version == 0 )
-             d->grant_table->gt_version = 1;
--        idx = xatp->idx;
-         if ( d->grant_table->gt_version == 2 &&
--                (xatp->idx & XENMAPIDX_grant_table_status) )
-+                (idx & XENMAPIDX_grant_table_status) )
-         {
-             idx &= ~XENMAPIDX_grant_table_status;
-             if ( idx < nr_status_frames(d->grant_table) )
-@@ -498,33 +502,31 @@ static int xenmem_add_to_physmap_once(
-         spin_unlock(&d->grant_table->lock);
-         break;
-     case XENMAPSPACE_shared_info:
--        if ( xatp->idx == 0 )
-+        if ( idx == 0 )
-             mfn = virt_to_mfn(d->shared_info);
-         break;
-     case XENMAPSPACE_gmfn_foreign:
-     {
-         paddr_t maddr;
-         struct domain *od;
--        static int x = 0;
--        rc = rcu_lock_target_domain_by_id(xatp->foreign_domid, &od);
-+        rc = rcu_lock_target_domain_by_id(foreign_domid, &od);
-         if ( rc < 0 )
-             return rc;
--        maddr = p2m_lookup(od, xatp->idx << PAGE_SHIFT);
-+
-+        maddr = p2m_lookup(od, idx << PAGE_SHIFT);
-         if ( maddr == INVALID_PADDR )
-         {
--            printk("bad p2m lookup\n");
--            dump_p2m_lookup(od, xatp->idx << PAGE_SHIFT);
-+            dump_p2m_lookup(od, idx << PAGE_SHIFT);
-             rcu_unlock_domain(od);
-             return -EINVAL;
-         }
-+
-         mfn = maddr >> PAGE_SHIFT;
--      if (x && x--) {
--            printk("Mapping dom%d mfn 0x%lx to dom%d mfn 0x%"PRIpaddr"\n",
--                   od->domain_id, mfn, d->domain_id, xatp->gpfn);
--        }
-+
-         rcu_unlock_domain(od);
-         break;
-     }
-+
-     default:
-         return -ENOSYS;
-     }
-@@ -532,19 +534,51 @@ static int xenmem_add_to_physmap_once(
-     domain_lock(d);
-     /* Map at new location. */
--    rc = guest_physmap_add_page(d, xatp->gpfn, mfn, 0);
--    if ( 0 && xatp->space == XENMAPSPACE_gmfn_foreign )
--        dump_p2m_lookup(d, xatp->gpfn << PAGE_SHIFT);
-+    rc = guest_physmap_add_page(d, gpfn, mfn, 0);
-     domain_unlock(d);
-     return rc;
- }
--static int xenmem_add_to_physmap(struct domain *d,
--                                 struct xen_add_to_physmap *xatp)
-+static int xenmem_add_to_physmap_range(struct domain *d,
-+                                       struct xen_add_to_physmap_range *xatpr)
- {
--    return xenmem_add_to_physmap_once(d, xatp);
-+    int rc;
-+
-+    /* Process entries in reverse order to allow continuations */
-+    while ( xatpr->size > 0 )
-+    {
-+        xen_ulong_t idx;
-+        xen_pfn_t gpfn;
-+
-+        rc = copy_from_guest_offset(&idx, xatpr->idxs, xatpr->size-1, 1);
-+        if ( rc < 0 )
-+            goto out;
-+
-+        rc = copy_from_guest_offset(&gpfn, xatpr->gpfns, xatpr->size-1, 1);
-+        if ( rc < 0 )
-+            goto out;
-+
-+        rc = xenmem_add_to_physmap_one(d, xatpr->space,
-+                                       xatpr->foreign_domid,
-+                                       idx, gpfn);
-+
-+        xatpr->size--;
-+
-+        /* Check for continuation if it's not the last interation */
-+        if ( xatpr->size > 0 && hypercall_preempt_check() )
-+        {
-+            rc = -EAGAIN;
-+            goto out;
-+        }
-+    }
-+
-+    rc = 0;
-+
-+out:
-+    return rc;
-+
- }
- long arch_memory_op(int op, XEN_GUEST_HANDLE(void) arg)
-@@ -565,13 +599,41 @@ long arch_memory_op(int op, XEN_GUEST_HANDLE(void) arg)
-         if ( rc != 0 )
-             return rc;
--        rc = xenmem_add_to_physmap(d, &xatp);
-+        rc = xenmem_add_to_physmap_one(d, xatp.space,
-+                                       xatp.foreign_domid,
-+                                       xatp.idx, xatp.gpfn);
-         rcu_unlock_domain(d);
-         return rc;
-     }
-+    case XENMEM_add_to_physmap_range:
-+    {
-+        struct xen_add_to_physmap_range xatpr;
-+        struct domain *d;
-+
-+        if ( copy_from_guest(&xatpr, arg, 1) )
-+            return -EFAULT;
-+
-+        rc = rcu_lock_target_domain_by_id(xatpr.domid, &d);
-+        if ( rc != 0 )
-+            return rc;
-+
-+        rc = xenmem_add_to_physmap_range(d, &xatpr);
-+
-+        rcu_unlock_domain(d);
-+
-+        if ( rc && copy_to_guest(arg, &xatpr, 1) )
-+            rc = -EFAULT;
-+
-+        if ( rc == -EAGAIN )
-+            rc = hypercall_create_continuation(
-+                __HYPERVISOR_memory_op, "ih", op, arg);
-+
-+        return rc;
-+    }
-+
-     default:
-         return -ENOSYS;
-     }
-diff --git a/xen/include/public/memory.h b/xen/include/public/memory.h
-index b2adfbe..1cc7a80 100644
---- a/xen/include/public/memory.h
-+++ b/xen/include/public/memory.h
-@@ -198,6 +198,15 @@ struct xen_machphys_mapping {
- typedef struct xen_machphys_mapping xen_machphys_mapping_t;
- DEFINE_XEN_GUEST_HANDLE(xen_machphys_mapping_t);
-+/* Source mapping space. */
-+/* ` enum phys_map_space { */
-+#define XENMAPSPACE_shared_info  0 /* shared info page */
-+#define XENMAPSPACE_grant_table  1 /* grant table page */
-+#define XENMAPSPACE_gmfn         2 /* GMFN */
-+#define XENMAPSPACE_gmfn_range   3 /* GMFN range */
-+#define XENMAPSPACE_gmfn_foreign 4 /* GMFN from another dom */
-+/* ` } */
-+
- /*
-  * Sets the GPFN at which a particular page appears in the specified guest's
-  * pseudophysical address space.
-@@ -211,26 +220,40 @@ struct xen_add_to_physmap {
-     /* Number of pages to go through for gmfn_range */
-     uint16_t    size;
--    /* Source mapping space. */
--#define XENMAPSPACE_shared_info  0 /* shared info page */
--#define XENMAPSPACE_grant_table  1 /* grant table page */
--#define XENMAPSPACE_gmfn         2 /* GMFN */
--#define XENMAPSPACE_gmfn_range   3 /* GMFN range */
--#define XENMAPSPACE_gmfn_foreign 4 /* GMFN from another guest */
--    uint16_t space;
-+    uint16_t space; /* => enum phys_map_space */
-     domid_t foreign_domid; /* IFF gmfn_foreign */
- #define XENMAPIDX_grant_table_status 0x80000000
--    /* Index into source mapping space. */
-+    /* Index into space being mapped. */
-     xen_ulong_t idx;
--    /* GPFN where the source mapping page should appear. */
-+    /* GPFN in domid where the source mapping page should appear. */
-     xen_pfn_t     gpfn;
- };
- typedef struct xen_add_to_physmap xen_add_to_physmap_t;
- DEFINE_XEN_GUEST_HANDLE(xen_add_to_physmap_t);
-+/* A batched version of add_to_physmap. */
-+#define XENMEM_add_to_physmap_range 23
-+struct xen_add_to_physmap_range {
-+    /* Which domain to change the mapping for. */
-+    domid_t domid;
-+    uint16_t space; /* => enum phys_map_space */
-+
-+    /* Number of pages to go through */
-+    uint16_t size;
-+    domid_t foreign_domid; /* IFF gmfn_foreign */
-+
-+    /* Indexes into space being mapped. */
-+    XEN_GUEST_HANDLE(xen_ulong_t) idxs;
-+
-+    /* GPFN in domdwhere the source mapping page should appear. */
-+    XEN_GUEST_HANDLE(xen_pfn_t) gpfns;
-+};
-+typedef struct xen_add_to_physmap_range xen_add_to_physmap_range_t;
-+DEFINE_XEN_GUEST_HANDLE(xen_add_to_physmap_range_t);
-+
- /*
-  * Unmaps the page appearing at a particular GPFN from the specified guest's
-  * pseudophysical address space.
-diff --git a/xen/include/public/xen.h b/xen/include/public/xen.h
-index b2f6c50..9425520 100644
---- a/xen/include/public/xen.h
-+++ b/xen/include/public/xen.h
-@@ -51,6 +51,7 @@ DEFINE_XEN_GUEST_HANDLE(void);
- DEFINE_XEN_GUEST_HANDLE(uint64_t);
- DEFINE_XEN_GUEST_HANDLE(xen_pfn_t);
-+DEFINE_XEN_GUEST_HANDLE(xen_ulong_t);
- #endif
- /*
-
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1348060180.14977.123.camel@zakaz.uk.xensource.com> b/test/corpus/<1348060180.14977.123.camel@zakaz.uk.xensource.com>
deleted file mode 100644 (file)
index 7a953d7..0000000
+++ /dev/null
@@ -1,164 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Sep 19 14:13:36 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 19 Sep 2012 14:13:36 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TEK5q-0001Vb-4Z
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 19 Sep 2012 14:13:36 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TEK2F-0005Ea-Os; Wed, 19 Sep 2012 13:09:47 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1TEK2D-0005E8-Pm
-       for xen-devel@lists.xensource.com; Wed, 19 Sep 2012 13:09:46 +0000
-Received: from [85.158.138.51:42016] by server-10.bemta-3.messagelabs.com id
-       46/60-10411-914C9505; Wed, 19 Sep 2012 13:09:45 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-7.tower-174.messagelabs.com!1348060183!22303494!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTAxNzU=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 8751 invoked from network); 19 Sep 2012 13:09:44 -0000
-Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-7.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
-       19 Sep 2012 13:09:44 -0000
-X-IronPort-AV: E=Sophos;i="4.80,447,1344211200"; d="scan'208";a="14631447"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       19 Sep 2012 13:09:42 +0000
-Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.279.1;
-       Wed, 19 Sep 2012 14:09:42 +0100
-Message-ID: <1348060180.14977.123.camel@zakaz.uk.xensource.com>
-From: Ian Campbell <Ian.Campbell@citrix.com>
-To: Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-Date: Wed, 19 Sep 2012 14:09:40 +0100
-In-Reply-To: <1348059789.14977.119.camel@zakaz.uk.xensource.com>
-References: <alpine.DEB.2.02.1208221159560.15568@kaball.uk.xensource.com>
-       <1345633688-31684-1-git-send-email-stefano.stabellini@eu.citrix.com>
-       <1347627587.24226.192.camel@zakaz.uk.xensource.com>
-       <20120914160727.1ff41de2@mantra.us.oracle.com>
-       <alpine.DEB.2.02.1209171153350.29232@kaball.uk.xensource.com>
-       <1348059789.14977.119.camel@zakaz.uk.xensource.com>
-Organization: Citrix Systems, Inc.
-X-Mailer: Evolution 3.4.3-1 
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>, "Tim
-       \(Xen.org\)" <tim@xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.8 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH v4 1/6] xen: improve changes to
- xen_add_to_physmap
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Wed, 2012-09-19 at 14:03 +0100, Ian Campbell wrote:
-
-> > It the final version. I think it should go in, unless we want to drop it
-> > entirely in favor of xen_add_to_physmap_range.
-> 
-> Here is what I came up with on the ARM side. I'd image the X86 version
-> would not be that different.
-
-Here the (obvious) Linux side, for reference. No actual use of batching
-just yet. It's based on top of a somewhat bastardized version of
-Mukesh's PVH patches for privcmd.
-
-Ian.
-
-diff --git a/arch/arm/xen/enlighten.c b/arch/arm/xen/enlighten.c
-index 43277f8..f01120a 100644
---- a/arch/arm/xen/enlighten.c
-+++ b/arch/arm/xen/enlighten.c
-@@ -88,13 +88,20 @@ static int pvh_add_to_xen_p2m(unsigned long lpfn, unsigned long fgmfn,
-                             unsigned int domid)
- {
-       int rc;
--      struct xen_add_to_physmap pmb = {.foreign_domid = domid};
--
--      pmb.gpfn = lpfn;
--      pmb.idx = fgmfn;
--      pmb.space = XENMAPSPACE_gmfn_foreign;
--
--      rc = HYPERVISOR_memory_op(XENMEM_add_to_physmap, &pmb);
-+      struct xen_add_to_physmap_range xatp = {
-+              .domid = DOMID_SELF,
-+              .foreign_domid = domid,
-+              .size = 1,
-+              .space = XENMAPSPACE_gmfn_foreign,
-+      };
-+      unsigned long idx = fgmfn;
-+      xen_pfn_t gpfn = lpfn;
-+
-+      set_xen_guest_handle(xatp.idxs, &idx);
-+      set_xen_guest_handle(xatp.gpfns, &gpfn);
-+                     domid, fgmfn, lpfn);
-+
-+      rc = HYPERVISOR_memory_op(XENMEM_add_to_physmap_range, &xatp);
-       if (rc) {
-               pr_warn("Failed to map pfn to mfn rc:%d pfn:%lx mfn:%lx\n",
-                       rc, lpfn, fgmfn);
-diff --git a/include/xen/interface/memory.h b/include/xen/interface/memory.h
-index 8728330..64cabbb 100644
---- a/include/xen/interface/memory.h
-+++ b/include/xen/interface/memory.h
-@@ -183,6 +183,24 @@ struct xen_add_to_physmap {
- };
- DEFINE_GUEST_HANDLE_STRUCT(xen_add_to_physmap);
-+#define XENMEM_add_to_physmap_range 23
-+struct xen_add_to_physmap_range {
-+    /* Which domain to change the mapping for. */
-+    domid_t domid;
-+    uint16_t space; /* => enum phys_map_space */
-+
-+    /* Number of pages to go through */
-+    uint16_t size;
-+    domid_t foreign_domid; /* IFF gmfn_foreign */
-+
-+    /* Indexes into space being mapped. */
-+    GUEST_HANDLE(ulong) idxs;
-+
-+    /* GPFN in domdwhere the source mapping page should appear. */
-+    GUEST_HANDLE(xen_pfn_t) gpfns;
-+};
-+DEFINE_GUEST_HANDLE_STRUCT(xen_add_to_physmap_range);
-+
- /*
-  * Translates a list of domain-specific GPFNs into MFNs. Returns a -ve error
-  * code on failure. This call only works for auto-translated guests.
-
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1348062615.14977.127.camel@zakaz.uk.xensource.com> b/test/corpus/<1348062615.14977.127.camel@zakaz.uk.xensource.com>
deleted file mode 100644 (file)
index ff6c656..0000000
+++ /dev/null
@@ -1,180 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Sep 19 14:56:06 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 19 Sep 2012 14:56:06 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TEKky-0001h2-Cw
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 19 Sep 2012 14:56:06 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TEKgK-0006vk-J7; Wed, 19 Sep 2012 13:51:12 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1TEKgI-0006vf-H4
-       for xen-devel@lists.xensource.com; Wed, 19 Sep 2012 13:51:10 +0000
-Received: from [85.158.139.83:15600] by server-12.bemta-5.messagelabs.com id
-       C3/20-22167-DCDC9505; Wed, 19 Sep 2012 13:51:09 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-5.tower-182.messagelabs.com!1348062669!30884954!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTAxNzU=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 14628 invoked from network); 19 Sep 2012 13:51:09 -0000
-Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-5.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
-       19 Sep 2012 13:51:09 -0000
-X-IronPort-AV: E=Sophos;i="4.80,447,1344211200"; d="scan'208";a="14632527"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       19 Sep 2012 13:50:17 +0000
-Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.279.1;
-       Wed, 19 Sep 2012 14:50:17 +0100
-Message-ID: <1348062615.14977.127.camel@zakaz.uk.xensource.com>
-From: Ian Campbell <Ian.Campbell@citrix.com>
-To: Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-Date: Wed, 19 Sep 2012 14:50:15 +0100
-In-Reply-To: <alpine.DEB.2.02.1209191420290.29232@kaball.uk.xensource.com>
-References: <alpine.DEB.2.02.1208221159560.15568@kaball.uk.xensource.com>
-       <1345633688-31684-1-git-send-email-stefano.stabellini@eu.citrix.com>
-       <1347627587.24226.192.camel@zakaz.uk.xensource.com>
-       <20120914160727.1ff41de2@mantra.us.oracle.com>
-       <alpine.DEB.2.02.1209171153350.29232@kaball.uk.xensource.com>
-       <1348059789.14977.119.camel@zakaz.uk.xensource.com>
-       <1348060180.14977.123.camel@zakaz.uk.xensource.com>
-       <alpine.DEB.2.02.1209191420290.29232@kaball.uk.xensource.com>
-Organization: Citrix Systems, Inc.
-X-Mailer: Evolution 3.4.3-1 
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>, "Tim
-       \(Xen.org\)" <tim@xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.8 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH v4 1/6] xen: improve changes to
- xen_add_to_physmap
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Wed, 2012-09-19 at 14:20 +0100, Stefano Stabellini wrote:
-> On Wed, 19 Sep 2012, Ian Campbell wrote:
-> > On Wed, 2012-09-19 at 14:03 +0100, Ian Campbell wrote:
-> > 
-> > > > It the final version. I think it should go in, unless we want to drop it
-> > > > entirely in favor of xen_add_to_physmap_range.
-> > > 
-> > > Here is what I came up with on the ARM side. I'd image the X86 version
-> > > would not be that different.
-> > 
-> > Here the (obvious) Linux side, for reference. No actual use of batching
-> > just yet. It's based on top of a somewhat bastardized version of
-> > Mukesh's PVH patches for privcmd.
-> > 
-> 
-> we also need the xen_remap_domain_mfn_range arm implementation
-
-I have that, it calls this pvh_add_to_xen_p2m. I just didn't include it
-here since I was just illustrating the change of the API.
-
-I have a set of patches to reimplement the hacky foreign mapping stuff
-on top of Mukesh's PVH privmd stuff, I'm just waiting for him to repost
-so I can rebase and post.
-
-> > 
-> > diff --git a/arch/arm/xen/enlighten.c b/arch/arm/xen/enlighten.c
-> > index 43277f8..f01120a 100644
-> > --- a/arch/arm/xen/enlighten.c
-> > +++ b/arch/arm/xen/enlighten.c
-> > @@ -88,13 +88,20 @@ static int pvh_add_to_xen_p2m(unsigned long lpfn, unsigned long fgmfn,
-> >                          unsigned int domid)
-> >  {
-> >    int rc;
-> > -  struct xen_add_to_physmap pmb = {.foreign_domid = domid};
-> > -
-> > -  pmb.gpfn = lpfn;
-> > -  pmb.idx = fgmfn;
-> > -  pmb.space = XENMAPSPACE_gmfn_foreign;
-> > -
-> > -  rc = HYPERVISOR_memory_op(XENMEM_add_to_physmap, &pmb);
-> > +  struct xen_add_to_physmap_range xatp = {
-> > +          .domid = DOMID_SELF,
-> > +          .foreign_domid = domid,
-> > +          .size = 1,
-> > +          .space = XENMAPSPACE_gmfn_foreign,
-> > +  };
-> > +  unsigned long idx = fgmfn;
-> > +  xen_pfn_t gpfn = lpfn;
-> > +
-> > +  set_xen_guest_handle(xatp.idxs, &idx);
-> > +  set_xen_guest_handle(xatp.gpfns, &gpfn);
-> > +                 domid, fgmfn, lpfn);
-> > +
-> > +  rc = HYPERVISOR_memory_op(XENMEM_add_to_physmap_range, &xatp);
-> >    if (rc) {
-> >            pr_warn("Failed to map pfn to mfn rc:%d pfn:%lx mfn:%lx\n",
-> >                    rc, lpfn, fgmfn);
-> > diff --git a/include/xen/interface/memory.h b/include/xen/interface/memory.h
-> > index 8728330..64cabbb 100644
-> > --- a/include/xen/interface/memory.h
-> > +++ b/include/xen/interface/memory.h
-> > @@ -183,6 +183,24 @@ struct xen_add_to_physmap {
-> >  };
-> >  DEFINE_GUEST_HANDLE_STRUCT(xen_add_to_physmap);
-> >  
-> > +#define XENMEM_add_to_physmap_range 23
-> > +struct xen_add_to_physmap_range {
-> > +    /* Which domain to change the mapping for. */
-> > +    domid_t domid;
-> > +    uint16_t space; /* => enum phys_map_space */
-> > +
-> > +    /* Number of pages to go through */
-> > +    uint16_t size;
-> > +    domid_t foreign_domid; /* IFF gmfn_foreign */
-> > +
-> > +    /* Indexes into space being mapped. */
-> > +    GUEST_HANDLE(ulong) idxs;
-> > +
-> > +    /* GPFN in domdwhere the source mapping page should appear. */
-> > +    GUEST_HANDLE(xen_pfn_t) gpfns;
-> > +};
-> > +DEFINE_GUEST_HANDLE_STRUCT(xen_add_to_physmap_range);
-> > +
-> >  /*
-> >   * Translates a list of domain-specific GPFNs into MFNs. Returns a -ve error
-> >   * code on failure. This call only works for auto-translated guests.
-> > 
-> > 
-> > 
-
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1348062913.14977.132.camel@zakaz.uk.xensource.com> b/test/corpus/<1348062913.14977.132.camel@zakaz.uk.xensource.com>
deleted file mode 100644 (file)
index c597a7d..0000000
+++ /dev/null
@@ -1,202 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Sep 19 15:02:30 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 19 Sep 2012 15:02:30 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TEKrA-0001ix-M0
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 19 Sep 2012 15:02:30 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TEKmW-0007Nq-I4; Wed, 19 Sep 2012 13:57:36 +0000
-Received: from mail27.messagelabs.com ([193.109.254.147])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1TEKmV-0007Nb-6T
-       for xen-devel@lists.xensource.com; Wed, 19 Sep 2012 13:57:35 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-4.tower-27.messagelabs.com!1348062966!11037943!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTAxNzU=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 18774 invoked from network); 19 Sep 2012 13:56:07 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-4.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
-       19 Sep 2012 13:56:07 -0000
-X-IronPort-AV: E=Sophos;i="4.80,447,1344211200"; d="scan'208";a="14632682"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       19 Sep 2012 13:55:15 +0000
-Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.279.1;
-       Wed, 19 Sep 2012 14:55:14 +0100
-Message-ID: <1348062913.14977.132.camel@zakaz.uk.xensource.com>
-From: Ian Campbell <Ian.Campbell@citrix.com>
-To: Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-Date: Wed, 19 Sep 2012 14:55:13 +0100
-In-Reply-To: <alpine.DEB.2.02.1209191408460.29232@kaball.uk.xensource.com>
-References: <alpine.DEB.2.02.1208221159560.15568@kaball.uk.xensource.com>
-       <1345633688-31684-1-git-send-email-stefano.stabellini@eu.citrix.com>
-       <1347627587.24226.192.camel@zakaz.uk.xensource.com>
-       <20120914160727.1ff41de2@mantra.us.oracle.com>
-       <alpine.DEB.2.02.1209171153350.29232@kaball.uk.xensource.com>
-       <1348059789.14977.119.camel@zakaz.uk.xensource.com>
-       <alpine.DEB.2.02.1209191408460.29232@kaball.uk.xensource.com>
-Organization: Citrix Systems, Inc.
-X-Mailer: Evolution 3.4.3-1 
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
-       "Tim \(Xen.org\)" <tim@xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.8 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH v4 1/6] xen: improve changes to
-       xen_add_to_physmap
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-> >          mfn = maddr >> PAGE_SHIFT;
-> > -  if (x && x--) {
-> > -            printk("Mapping dom%d mfn 0x%lx to dom%d mfn 0x%"PRIpaddr"\n",
-> > -                   od->domain_id, mfn, d->domain_id, xatp->gpfn);
-> > -        }
-> 
-> why remove the printk here?
-
-It's debug junk which crept in from somewhere else, I'll clean it up in
-the original patch which added it before posting this stuff properly.
-
-> > diff --git a/xen/include/public/memory.h b/xen/include/public/memory.h
-> > index b2adfbe..1cc7a80 100644
-> > --- a/xen/include/public/memory.h
-> > +++ b/xen/include/public/memory.h
-> > @@ -198,6 +198,15 @@ struct xen_machphys_mapping {
-> >  typedef struct xen_machphys_mapping xen_machphys_mapping_t;
-> >  DEFINE_XEN_GUEST_HANDLE(xen_machphys_mapping_t);
-> >  
-> > +/* Source mapping space. */
-> > +/* ` enum phys_map_space { */
-> > +#define XENMAPSPACE_shared_info  0 /* shared info page */
-> > +#define XENMAPSPACE_grant_table  1 /* grant table page */
-> > +#define XENMAPSPACE_gmfn         2 /* GMFN */
-> > +#define XENMAPSPACE_gmfn_range   3 /* GMFN range */
-> > +#define XENMAPSPACE_gmfn_foreign 4 /* GMFN from another dom */
-> > +/* ` } */
-> >  /*
-> >   * Sets the GPFN at which a particular page appears in the specified guest's
-> >   * pseudophysical address space.
-> > @@ -211,26 +220,40 @@ struct xen_add_to_physmap {
-> >      /* Number of pages to go through for gmfn_range */
-> >      uint16_t    size;
-> >  
-> > -    /* Source mapping space. */
-> > -#define XENMAPSPACE_shared_info  0 /* shared info page */
-> > -#define XENMAPSPACE_grant_table  1 /* grant table page */
-> > -#define XENMAPSPACE_gmfn         2 /* GMFN */
-> > -#define XENMAPSPACE_gmfn_range   3 /* GMFN range */
-> > -#define XENMAPSPACE_gmfn_foreign 4 /* GMFN from another guest */
-> > -    uint16_t space;
-> > +    uint16_t space; /* => enum phys_map_space */
-> >      domid_t foreign_domid; /* IFF gmfn_foreign */
-> 
-> I don't like very much that you have a uint16_t in the struct that
-> actually represents a union
-
-Actually, the foreign_domid can go from here, since it is entirely
-replaced with the xatp_range stuff. IOW XENMAPSPACE_gmfn_foreign will
-only be valid with the add_to_physmap_range version of this interface.
-
-This is just a left over (and it's convenient during the transition
-period).
-
-> 
-> 
-> >  #define XENMAPIDX_grant_table_status 0x80000000
-> >  
-> > -    /* Index into source mapping space. */
-> > +    /* Index into space being mapped. */
-> >      xen_ulong_t idx;
-> >  
-> > -    /* GPFN where the source mapping page should appear. */
-> > +    /* GPFN in domid where the source mapping page should appear. */
-> >      xen_pfn_t     gpfn;
-> >  };
-> >  typedef struct xen_add_to_physmap xen_add_to_physmap_t;
-> >  DEFINE_XEN_GUEST_HANDLE(xen_add_to_physmap_t);
-> >  
-> > +/* A batched version of add_to_physmap. */
-> > +#define XENMEM_add_to_physmap_range 23
-> > +struct xen_add_to_physmap_range {
-> > +    /* Which domain to change the mapping for. */
-> > +    domid_t domid;
-> > +    uint16_t space; /* => enum phys_map_space */
-> > +
-> > +    /* Number of pages to go through */
-> > +    uint16_t size;
-> > +    domid_t foreign_domid; /* IFF gmfn_foreign */
-> > +
-> > +    /* Indexes into space being mapped. */
-> > +    XEN_GUEST_HANDLE(xen_ulong_t) idxs;
-> > +
-> > +    /* GPFN in domdwhere the source mapping page should appear. */
->                      ^ domid where
-
-Thanks.
-
-> 
-> > +    XEN_GUEST_HANDLE(xen_pfn_t) gpfns;
-> > +};
-> > +typedef struct xen_add_to_physmap_range xen_add_to_physmap_range_t;
-> > +DEFINE_XEN_GUEST_HANDLE(xen_add_to_physmap_range_t);
-> > +
-> >  /*
-> >   * Unmaps the page appearing at a particular GPFN from the specified guest's
-> >   * pseudophysical address space.
-> > diff --git a/xen/include/public/xen.h b/xen/include/public/xen.h
-> > index b2f6c50..9425520 100644
-> > --- a/xen/include/public/xen.h
-> > +++ b/xen/include/public/xen.h
-> > @@ -51,6 +51,7 @@ DEFINE_XEN_GUEST_HANDLE(void);
-> >  
-> >  DEFINE_XEN_GUEST_HANDLE(uint64_t);
-> >  DEFINE_XEN_GUEST_HANDLE(xen_pfn_t);
-> > +DEFINE_XEN_GUEST_HANDLE(xen_ulong_t);
-> >  #endif
-> 
-> You shouldn't need that: xen_ulong_t is already defined in arch-arm.h
-> (and arch-x86/xen.h)
-
-The type is, but the guest handle is not.
-
-Ian.
-
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1348659840.19176.31.camel@zakaz.uk.xensource.com> b/test/corpus/<1348659840.19176.31.camel@zakaz.uk.xensource.com>
deleted file mode 100644 (file)
index f9f3bf3..0000000
+++ /dev/null
@@ -1,169 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Sep 26 12:49:06 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 26 Sep 2012 12:49:06 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TGq6y-00037p-C5
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 26 Sep 2012 12:49:06 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TGq2B-0001aj-PA; Wed, 26 Sep 2012 11:44:07 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1TGq29-0001ae-AF
-       for Xen-devel@lists.xensource.com; Wed, 26 Sep 2012 11:44:05 +0000
-Received: from [85.158.139.83:14682] by server-7.bemta-5.messagelabs.com id
-       71/64-00431-48AE2605; Wed, 26 Sep 2012 11:44:04 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-10.tower-182.messagelabs.com!1348659843!32481095!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTE1NzQ=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 646 invoked from network); 26 Sep 2012 11:44:03 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-10.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
-       26 Sep 2012 11:44:03 -0000
-X-IronPort-AV: E=Sophos;i="4.80,490,1344211200"; d="scan'208";a="14774803"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       26 Sep 2012 11:44:03 +0000
-Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.279.1;
-       Wed, 26 Sep 2012 12:44:03 +0100
-Message-ID: <1348659840.19176.31.camel@zakaz.uk.xensource.com>
-From: Ian Campbell <Ian.Campbell@citrix.com>
-To: Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-Date: Wed, 26 Sep 2012 12:44:00 +0100
-In-Reply-To: <alpine.DEB.2.02.1209261225340.29232@kaball.uk.xensource.com>
-References: <20120921121659.5a723de9@mantra.us.oracle.com>
-       <alpine.DEB.2.02.1209241257440.29232@kaball.uk.xensource.com>
-       <20120924154335.097d3fb9@mantra.us.oracle.com>
-       <alpine.DEB.2.02.1209251054140.29232@kaball.uk.xensource.com>
-       <20120925180416.0137d61a@mantra.us.oracle.com>
-       <alpine.DEB.2.02.1209261225340.29232@kaball.uk.xensource.com>
-Organization: Citrix Systems, Inc.
-X-Mailer: Evolution 3.4.3-1 
-MIME-Version: 1.0
-Cc: "Xen-devel@lists.xensource.com" <Xen-devel@lists.xensource.com>,
-       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-5.0 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH v1 3/8]: PVH startup changes (enlighten.c)
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Wed, 2012-09-26 at 12:33 +0100, Stefano Stabellini wrote:
-> On Wed, 26 Sep 2012, Mukesh Rathor wrote:
-> > On Tue, 25 Sep 2012 11:03:13 +0100
-> > Stefano Stabellini <stefano.stabellini@eu.citrix.com> wrote:
-> > 
-> > > On Mon, 24 Sep 2012, Mukesh Rathor wrote:
-> > > > On Mon, 24 Sep 2012 13:07:19 +0100
-> > > > Stefano Stabellini <stefano.stabellini@eu.citrix.com> wrote:
-> > > > 
-> > > > > On Fri, 21 Sep 2012, Mukesh Rathor wrote:
-> > > > > > +          return;
-> > > > > > +
-> > > > > >    if (!xen_feature(XENFEAT_auto_translated_physmap)) {
-> > > > > >            set_fixmap(FIX_PARAVIRT_BOOTMAP,
-> > > > > >                       xen_start_info->shared_info);
-> > > > > >
-> > > > > > @@ -1044,6 +1058,10 @@ void xen_setup_shared_info(void)
-> > > > > >            HYPERVISOR_shared_info =
-> > > > > >                    (struct shared_info
-> > > > > > *)__va(xen_start_info->shared_info); 
-> > > > > > +  /* PVH TBD/FIXME: vcpu info placement in phase 2 */
-> > > > > > +  if (xen_pvh_domain())
-> > > > > > +          return;
-> > > > > 
-> > > > > It seems that if xen_initial_domain we always skip the
-> > > > > initialization while if !xen_initial_domain we only initialize
-> > > > > HYPERVISOR_shared_info. I don't understand why we have this
-> > > > > difference.
-> > > > 
-> > > > The comment in xen_pvh_guest_init() explains it. For domU the
-> > > > library maps the pfn at shared_info, ie, shared_info is pfn. For
-> > > > dom0, it's the mfn. Dom0 then allocates a pfn via extend_brk, and
-> > > > maps the mfn to it. This happens in the commond hvm code,
-> > > > xen_hvm_init_shared_info().
-> > > 
-> > > This difference is really subtle, it would be nice to get rid of it.
-> > > Could Xen allocate a pfn for dom0?
-> > 
-> > Not easily.
-> > 
-> > > Otherwise could we have the tools allocate an mfn instead of a pfn?
-> > > In fact looking at xc_dom_x86.c, alloc_magic_pages is explicitly
-> > > having a different behavior for xc_dom_feature_translated guests and
-> > > allocates pfn instead of an mfn. Maybe we could get rid of that
-> > > special case: less code in libxc, a common way of allocating the
-> > > shared_info page for domU and dom0 => win.
-> > 
-> > Wish it was simple. But for PV and PVH, domU, it's already setup the 
-> > shared page. All we need to do is __va(shared_info). But for HVM domUs 
-> > and PVH dom0, we need to hcall with pfn to get it remapped.
-> 
-> For PVH domU is already setup as a pfn only because in
-> tools/libxc/xc_dom_x86.c:alloc_magic_pages we have this code:
-> 
->     if ( xc_dom_feature_translated(dom) )
->         dom->shared_info_pfn = xc_dom_alloc_page(dom, "shared info");
-> 
-> and in tools/libxc/xc_dom_x86.c:start_info_x86_64 we have:
-> 
->     xen_pfn_t shinfo =
->         xc_dom_feature_translated(dom) ? dom->shared_info_pfn : dom->
->         shared_info_mfn;
-> 
-> if we simply get rid of the two "if xc_dom_feature_translated(dom)"
-> wouldn't we get an mfn for PVH domU too? AFAICT all the other cases would
-> remain unmodified, but PVH domU would start getting an mfn for shared_info.
-
-The other option would be to have the hypervisor side builder for a PVH
-dom0 add an entry to the P2M for the shared info as well. Arguably that
-would be more PV like and therefore the correct thing for a PVH guest
-since it makes the shared info immediately available to the dom0.
-
-> > Changing the
-> > tool to map pfn, would result in unnecessary hcall for all PV and PVH
-> > domUs. It's only two lines of code, so lets just leave it. I'll make the
-> > comment better.
-> 
-> Yes, there would be one more unnecessary hypercall but we would get rid
-> of 4 "if". I think is a good trade off.
-
-Certainly minimising the numbers of hypercalls is not the most important
-thing in a code path which is run once at start of day.
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1349265914.650.136.camel@zakaz.uk.xensource.com> b/test/corpus/<1349265914.650.136.camel@zakaz.uk.xensource.com>
deleted file mode 100644 (file)
index 61ded81..0000000
+++ /dev/null
@@ -1,107 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Oct 03 13:09:30 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 03 Oct 2012 13:09:30 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TJNlV-0005jY-6z
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 03 Oct 2012 13:09:30 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TJNhX-0001GC-0m; Wed, 03 Oct 2012 12:05:19 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1TJNhV-0001Fy-0V
-       for Xen-devel@lists.xensource.com; Wed, 03 Oct 2012 12:05:17 +0000
-Received: from [85.158.138.51:13262] by server-13.bemta-3.messagelabs.com id
-       96/83-11249-CF92C605; Wed, 03 Oct 2012 12:05:16 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-12.tower-174.messagelabs.com!1349265915!25010227!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTMxMDE=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 4412 invoked from network); 3 Oct 2012 12:05:15 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-12.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
-       3 Oct 2012 12:05:15 -0000
-X-IronPort-AV: E=Sophos;i="4.80,527,1344211200"; d="scan'208";a="14913720"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       03 Oct 2012 12:05:15 +0000
-Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.279.1; Wed, 3 Oct 2012
-       13:05:15 +0100
-Message-ID: <1349265914.650.136.camel@zakaz.uk.xensource.com>
-From: Ian Campbell <Ian.Campbell@citrix.com>
-To: Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-Date: Wed, 3 Oct 2012 13:05:14 +0100
-In-Reply-To: <alpine.DEB.2.02.1210031242180.29232@kaball.uk.xensource.com>
-References: <20120921121659.5a723de9@mantra.us.oracle.com>
-       <alpine.DEB.2.02.1209241257440.29232@kaball.uk.xensource.com>
-       <20120924154335.097d3fb9@mantra.us.oracle.com>
-       <alpine.DEB.2.02.1209251054140.29232@kaball.uk.xensource.com>
-       <20120925180416.0137d61a@mantra.us.oracle.com>
-       <alpine.DEB.2.02.1209261225340.29232@kaball.uk.xensource.com>
-       <20121002183619.70734b7a@mantra.us.oracle.com>
-       <20121002190323.2e16f6ff@mantra.us.oracle.com>
-       <alpine.DEB.2.02.1210031242180.29232@kaball.uk.xensource.com>
-Organization: Citrix Systems, Inc.
-X-Mailer: Evolution 3.4.3-1 
-MIME-Version: 1.0
-Cc: "Xen-devel@lists.xensource.com" <Xen-devel@lists.xensource.com>,
-       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH v1 3/8]: PVH startup changes (enlighten.c)
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Wed, 2012-10-03 at 12:58 +0100, Stefano Stabellini wrote:
-> > So for now, how about, lets go
-> > with what I've got. I'll make a note, and when I do xen patch, I'll
-> > figure it out, and would be a very small linux patch. I want to get
-> > linux patch in soon before the window closes.
-> 
-> We can leave page special as it is for now with very little
-> consequences, because it is not part of the interface with Xen. However
-> this is part of the interface, so whatever we choose here is going to be
-> hard to change later on.
-
-I suggested that until we have seen and reviewed the hypervisor side
-patches this guest side functionality all needs to be under an option
-which has CONFIG_EXPERIMENTAL as a dependency and a comment explaining
-that the ABI is not fixed yet, similar to what we did for the ARM port.
-
-Ian.
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1349271323.650.148.camel@zakaz.uk.xensource.com> b/test/corpus/<1349271323.650.148.camel@zakaz.uk.xensource.com>
deleted file mode 100644 (file)
index 7c91011..0000000
+++ /dev/null
@@ -1,97 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Oct 03 14:38:42 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 03 Oct 2012 14:38:42 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TJP9s-00065U-5F
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 03 Oct 2012 14:38:42 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TJP6m-00059n-PV; Wed, 03 Oct 2012 13:35:28 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1TJP6l-00059P-Jv
-       for xen-devel@lists.xensource.com; Wed, 03 Oct 2012 13:35:27 +0000
-Received: from [85.158.143.99:32730] by server-1.bemta-4.messagelabs.com id
-       43/C7-05684-E1F3C605; Wed, 03 Oct 2012 13:35:26 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-11.tower-216.messagelabs.com!1349271325!25185286!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTMxMDE=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 6862 invoked from network); 3 Oct 2012 13:35:25 -0000
-Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-11.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
-       3 Oct 2012 13:35:25 -0000
-X-IronPort-AV: E=Sophos;i="4.80,528,1344211200"; d="scan'208";a="14916454"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       03 Oct 2012 13:35:25 +0000
-Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.279.1; Wed, 3 Oct 2012
-       14:35:25 +0100
-Message-ID: <1349271323.650.148.camel@zakaz.uk.xensource.com>
-From: Ian Campbell <Ian.Campbell@citrix.com>
-To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-Date: Wed, 3 Oct 2012 14:35:23 +0100
-In-Reply-To: <1345633688-31684-4-git-send-email-stefano.stabellini@eu.citrix.com>
-References: <alpine.DEB.2.02.1208221159560.15568@kaball.uk.xensource.com>
-       <1345633688-31684-4-git-send-email-stefano.stabellini@eu.citrix.com>
-Organization: Citrix Systems, Inc.
-X-Mailer: Evolution 3.4.3-1 
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
-       "Tim \(Xen.org\)" <tim@xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH v4 4/6] xen: introduce XEN_GUEST_HANDLE_PARAM
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Wed, 2012-08-22 at 12:08 +0100, Stefano Stabellini wrote:
-> +#define set_xen_guest_handle_raw(hnd, val)                  \
-> +    do {                                                    \
-> +        typeof(&(hnd)) t = &(hnd);                          \
-> +        _t->q = 0;                                          \
-> +        _t->p = val;                                        \
-
-You have a mix of t and _t here...
-
-Since this macro is used in the tools it would be useful to avoid any
-potentially clashing names (e.g. so -Wshadow doesn't moan).
-
-_sxghr_tmp?
-
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1349272182.650.150.camel@zakaz.uk.xensource.com> b/test/corpus/<1349272182.650.150.camel@zakaz.uk.xensource.com>
deleted file mode 100644 (file)
index 3248851..0000000
+++ /dev/null
@@ -1,131 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Oct 03 14:53:28 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 03 Oct 2012 14:53:28 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TJPO6-00069K-IV
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 03 Oct 2012 14:53:28 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TJPKe-0006Ab-EV; Wed, 03 Oct 2012 13:49:48 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1TJPKc-0006AR-Us
-       for xen-devel@lists.xensource.com; Wed, 03 Oct 2012 13:49:47 +0000
-Received: from [85.158.138.51:52635] by server-6.bemta-3.messagelabs.com id
-       BD/F8-11085-A724C605; Wed, 03 Oct 2012 13:49:46 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-6.tower-174.messagelabs.com!1349272185!24920221!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTMxMDE=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 939 invoked from network); 3 Oct 2012 13:49:45 -0000
-Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-6.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
-       3 Oct 2012 13:49:45 -0000
-X-IronPort-AV: E=Sophos;i="4.80,528,1344211200"; d="scan'208";a="14916789"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       03 Oct 2012 13:49:44 +0000
-Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.279.1; Wed, 3 Oct 2012
-       14:49:44 +0100
-Message-ID: <1349272182.650.150.camel@zakaz.uk.xensource.com>
-From: Ian Campbell <Ian.Campbell@citrix.com>
-To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-Date: Wed, 3 Oct 2012 14:49:42 +0100
-In-Reply-To: <alpine.DEB.2.02.1210031431080.29232@kaball.uk.xensource.com>
-References: <alpine.DEB.2.02.1210031431080.29232@kaball.uk.xensource.com>
-Organization: Citrix Systems, Inc.
-X-Mailer: Evolution 3.4.3-1 
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
-       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
-       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH] xen: point xen_start_info to a dummy struct
- for PV on HVM guests
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Wed, 2012-10-03 at 14:37 +0100, Stefano Stabellini wrote:
-> PV on HVM guests don't have a start_info page mapped by Xen, so
-> xen_start_info is just NULL for them.
-> That is problem because other parts of the code expect xen_start_info to
-> point to something valid, for example xen_initial_domain() is defined as
-> follow:
-> 
-> #define xen_initial_domain()    (xen_domain() && \
->                  xen_start_info->flags & SIF_INITDOMAIN)
-
-But anyone who calls this before xen_start_info is setup is going to get
-a bogus result, specifically in this case they will think they are domU
-when in reality they are dom0 -- wouldn't it be better to fix those
-callsites?
-
-Perhaps turn this into a static inline with a BUG_ON(!xen_start_info) to
-make catching these cases easier?
-
-> 
-> 
-> Allocate a dummy start_info struct and point xen_start_info to it, as we
-> do on ARM.
-> This is not going to change things for PV guests because
-> xen_start_info is set by arch/x86/xen/xen-head.S:startup_xen.
-> 
-> Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-> 
-> diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c
-> index bf788d3..5f242cb 100644
-> --- a/arch/x86/xen/enlighten.c
-> +++ b/arch/x86/xen/enlighten.c
-> @@ -96,7 +96,8 @@ EXPORT_SYMBOL(machine_to_phys_mapping);
->  unsigned long  machine_to_phys_nr;
->  EXPORT_SYMBOL(machine_to_phys_nr);
->  
-> -struct start_info *xen_start_info;
-> +static struct start_info _xen_start_info;
-> +struct start_info *xen_start_info = &_xen_start_info;
->  EXPORT_SYMBOL_GPL(xen_start_info);
->  
->  struct shared_info xen_dummy_shared_info;
-> 
-> _______________________________________________
-> Xen-devel mailing list
-> Xen-devel@lists.xen.org
-> http://lists.xen.org/xen-devel
-
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1349272482.650.151.camel@zakaz.uk.xensource.com> b/test/corpus/<1349272482.650.151.camel@zakaz.uk.xensource.com>
deleted file mode 100644 (file)
index e8964c8..0000000
+++ /dev/null
@@ -1,117 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Oct 03 14:58:42 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 03 Oct 2012 14:58:42 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TJPTB-0006B1-8N
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 03 Oct 2012 14:58:42 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TJPPS-0006TZ-HR; Wed, 03 Oct 2012 13:54:46 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1TJPPQ-0006TQ-Uj
-       for xen-devel@lists.xensource.com; Wed, 03 Oct 2012 13:54:45 +0000
-Received: from [85.158.143.35:48003] by server-3.bemta-4.messagelabs.com id
-       52/5C-10986-4A34C605; Wed, 03 Oct 2012 13:54:44 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-12.tower-21.messagelabs.com!1349272483!12886826!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTMxMDE=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 21244 invoked from network); 3 Oct 2012 13:54:43 -0000
-Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-12.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
-       3 Oct 2012 13:54:43 -0000
-X-IronPort-AV: E=Sophos;i="4.80,528,1344211200"; d="scan'208";a="14916920"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       03 Oct 2012 13:54:43 +0000
-Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.279.1; Wed, 3 Oct 2012
-       14:54:43 +0100
-Message-ID: <1349272482.650.151.camel@zakaz.uk.xensource.com>
-From: Ian Campbell <Ian.Campbell@citrix.com>
-To: Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-Date: Wed, 3 Oct 2012 14:54:42 +0100
-In-Reply-To: <alpine.DEB.2.02.1210031450220.29232@kaball.uk.xensource.com>
-References: <alpine.DEB.2.02.1210031431080.29232@kaball.uk.xensource.com>
-       <1349272182.650.150.camel@zakaz.uk.xensource.com>
-       <alpine.DEB.2.02.1210031450220.29232@kaball.uk.xensource.com>
-Organization: Citrix Systems, Inc.
-X-Mailer: Evolution 3.4.3-1 
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
-       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
-       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH] xen: point xen_start_info to a dummy struct
- for PV on HVM guests
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Wed, 2012-10-03 at 14:51 +0100, Stefano Stabellini wrote:
-> On Wed, 3 Oct 2012, Ian Campbell wrote:
-> > On Wed, 2012-10-03 at 14:37 +0100, Stefano Stabellini wrote:
-> > > PV on HVM guests don't have a start_info page mapped by Xen, so
-> > > xen_start_info is just NULL for them.
-> > > That is problem because other parts of the code expect xen_start_info to
-> > > point to something valid, for example xen_initial_domain() is defined as
-> > > follow:
-> > > 
-> > > #define xen_initial_domain()    (xen_domain() && \
-> > >                  xen_start_info->flags & SIF_INITDOMAIN)
-> > 
-> > But anyone who calls this before xen_start_info is setup is going to get
-> > a bogus result, specifically in this case they will think they are domU
-> > when in reality they are dom0 -- wouldn't it be better to fix those
-> > callsites?
-> 
-> That cannot be the case because setting up xen_start_info is the very
-> first thing that is done, before even calling to C.
-
-On PV, yes, but you are trying to fix PVHVM here, no?
-
-Otherwise if this is always set before calling into C then what is the
-purpose of this patch?
-
-> 
-> 
-> > Perhaps turn this into a static inline with a BUG_ON(!xen_start_info) to
-> > make catching these cases easier?
-> 
-
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1349276431.650.156.camel@zakaz.uk.xensource.com> b/test/corpus/<1349276431.650.156.camel@zakaz.uk.xensource.com>
deleted file mode 100644 (file)
index 8c7fd3c..0000000
+++ /dev/null
@@ -1,267 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Oct 03 16:06:04 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 03 Oct 2012 16:06:04 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TJQWM-0006TO-4V
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 03 Oct 2012 16:06:04 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TJQRD-0000Vv-PE; Wed, 03 Oct 2012 15:00:39 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1TJQRB-0000Vq-6D
-       for xen-devel@lists.xensource.com; Wed, 03 Oct 2012 15:00:37 +0000
-Received: from [85.158.143.99:59816] by server-2.bemta-4.messagelabs.com id
-       17/24-06610-4135C605; Wed, 03 Oct 2012 15:00:36 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-7.tower-216.messagelabs.com!1349276433!26607899!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTMxMDE=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 18114 invoked from network); 3 Oct 2012 15:00:34 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-7.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
-       3 Oct 2012 15:00:34 -0000
-X-IronPort-AV: E=Sophos;i="4.80,528,1344211200"; d="scan'208";a="14918687"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       03 Oct 2012 15:00:33 +0000
-Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.279.1; Wed, 3 Oct 2012
-       16:00:33 +0100
-Message-ID: <1349276431.650.156.camel@zakaz.uk.xensource.com>
-From: Ian Campbell <Ian.Campbell@citrix.com>
-To: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-Date: Wed, 3 Oct 2012 16:00:31 +0100
-In-Reply-To: <20121003141116.GA10633@phenom.dumpdata.com>
-References: <alpine.DEB.2.02.1210031431080.29232@kaball.uk.xensource.com>
-       <1349272182.650.150.camel@zakaz.uk.xensource.com>
-       <alpine.DEB.2.02.1210031450220.29232@kaball.uk.xensource.com>
-       <1349272482.650.151.camel@zakaz.uk.xensource.com>
-       <20121003141116.GA10633@phenom.dumpdata.com>
-Organization: Citrix Systems, Inc.
-X-Mailer: Evolution 3.4.3-1 
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
-       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
-Subject: Re: [Xen-devel] [PATCH] xen: point xen_start_info to a dummy struct
- for PV on HVM guests
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Wed, 2012-10-03 at 15:11 +0100, Konrad Rzeszutek Wilk wrote:
-> On Wed, Oct 03, 2012 at 02:54:42PM +0100, Ian Campbell wrote:
-> > On Wed, 2012-10-03 at 14:51 +0100, Stefano Stabellini wrote:
-> > > On Wed, 3 Oct 2012, Ian Campbell wrote:
-> > > > On Wed, 2012-10-03 at 14:37 +0100, Stefano Stabellini wrote:
-> > > > > PV on HVM guests don't have a start_info page mapped by Xen, so
-> > > > > xen_start_info is just NULL for them.
-> > > > > That is problem because other parts of the code expect xen_start_info to
-> > > > > point to something valid, for example xen_initial_domain() is defined as
-> > > > > follow:
-> > > > > 
-> > > > > #define xen_initial_domain()    (xen_domain() && \
-> > > > >                  xen_start_info->flags & SIF_INITDOMAIN)
-> > > > 
-> > > > But anyone who calls this before xen_start_info is setup is going to get
-> > > > a bogus result, specifically in this case they will think they are domU
-> > > > when in reality they are dom0 -- wouldn't it be better to fix those
-> > > > callsites?
-> > > 
-> > > That cannot be the case because setting up xen_start_info is the very
-> > > first thing that is done, before even calling to C.
-> > 
-> > On PV, yes, but you are trying to fix PVHVM here, no?
-> > 
-> > Otherwise if this is always set before calling into C then what is the
-> > purpose of this patch?
-> 
-> to fix this - as PVHVM has it set to NULL and we end up de-referencing
-> the xen_start_info and crashing. As so::
-> 
-
-Right, so returning to my original point: The caller here is calling
-xen_initial_domain() *before* start info is setup. This is bogus and is
-your actual bug, all this patch does is hide that real issue.
-
-With this "fix" the caller of xen_initial_domain shown in this trace now
-gets a rubbish result based on the content of a dummy shared info
-instead of the real answer from that actual shared info.
-
-The right fix is to fix the caller to not call xen_initial_domain()
-until after the shared info has been setup. Maybe that means moving
-shinfo setup earlier, or maybe it means deferring this call until later
-in the PVHVM case.
-
-> 
-> Decompressing Linux... Parsing ELF... done.
-> Booting the kernel.
-> [    0.000000] Initializing cgroup subsys cpuset
-> [    0.000000] Initializing cgroup subsys cpu
-> [    0.000000] Linux version 3.6.0upstream-04121-g0313983 (konrad@build.dumpdata.com) (gcc version 4.4.4 20100503 (Red Hat 4.4.4-2) (GCC) ) #1 SMP Tue Oct 2 16:31:21 EDT 2012
-> [    0.000000] Command line: initrd=initramf.gz  console=ttyS0,115200 test=net nofb earlyprintk=serial,ttyS0,115200 BOOT_IMAGE=vmlinuz 
-> [    0.000000] e820: BIOS-provided physical RAM map:
-> [    0.000000] BIOS-e820: [mem 0x0000000000000000-0x000000000009dfff] usable
-> [    0.000000] BIOS-e820: [mem 0x000000000009e000-0x000000000009ffff] reserved
-> [    0.000000] BIOS-e820: [mem 0x00000000000e0000-0x00000000000fffff] reserved
-> [    0.000000] BIOS-e820: [mem 0x0000000000100000-0x000000007fffffff] usable
-> [    0.000000] BIOS-e820: [mem 0x00000000fc000000-0x00000000ffffffff] reserved
-> [    0.000000] bootconsole [earlyser0] enabled
-> [    0.000000] NX (Execute Disable) protection: active
-> [    0.000000] DMI 2.4 present.
-> [    0.000000] Hypervisor detected: Xen HVM
-> [    0.000000] Xen version 4.1.
-> [    0.000000] Netfront and the Xen platform PCI driver have been compiled for this kernel: unplug emulated NICs.
-> [    0.000000] Blkfront and the Xen platform PCI driver have been compiled for this kernel: unplug emulated disks.
-> [    0.000000] You might have to change the root device
-> [    0.000000] from /dev/hd[a-d] to /dev/xvd[a-d]
-> [    0.000000] in your root= kernel command line option
-> [    0.000000] No AGP bridge found
-> [    0.000000] e820: last_pfn = 0x80000 max_arch_pfn = 0x400000000
-> [    0.000000] x86 PAT enabled: cpu 0, old 0x7040600070406, new 0x7010600070106
-> [    0.000000] found SMP MP-table at [mem 0x000fbc90-0x000fbc9f] mapped at [ffff8800000fbc90]
-> [    0.000000] init_memory_mapping: [mem 0x00000000-0x7fffffff]
-> [    0.000000] RAMDISK: [mem 0x7abeb000-0x7ffdefff]
-> [    0.000000] ACPI: RSDP 00000000000ea020 00024 (v02    Xen)
-> [    0.000000] ACPI: XSDT 00000000fc00f2b0 00034 (v01    Xen      HVM 00000000 HVML 00000000)
-> [    0.000000] ACPI: FACP 00000000fc00f0d0 000F4 (v04    Xen      HVM 00000000 HVML 00000000)
-> [    0.000000] ACPI: DSDT 00000000fc003440 0BC09 (v02    Xen      HVM 00000000 INTL 20100528)
-> [    0.000000] ACPI: FACS 00000000fc003400 00040
-> [    0.000000] ACPI: APIC 00000000fc00f1d0 000D8 (v02    Xen      HVM 00000000 HVML 00000000)
-> [    0.000000] No NUMA configuration found
-> [    0.000000] Faking a node at [mem 0x0000000000000000-0x000000007fffffff]
-> [    0.000000] Initmem setup node 0 [mem 0x00000000-0x7fffffff]
-> [    0.000000]   NODE_DATA [mem 0x7fffc000-0x7fffffff]
-> [    0.000000] Zone ranges:
-> [    0.000000]   DMA      [mem 0x00010000-0x00ffffff]
-> [    0.000000]   DMA32    [mem 0x01000000-0xffffffff]
-> [    0.000000]   Normal   empty
-> [    0.000000] Movable zone start for each node
-> [    0.000000] Early memory node ranges
-> [    0.000000]   node   0: [mem 0x00010000-0x0009dfff]
-> [    0.000000]   node   0: [mem 0x00100000-0x7fffffff]
-> [    0.000000] ACPI: PM-Timer IO Port: 0xb008
-> [    0.000000] ACPI: LAPIC (acpi_id[0x00] lapic_id[0x00] enabled)
-> [    0.000000] ACPI: LAPIC (acpi_id[0x01] lapic_id[0x02] enabled)
-> [    0.000000] ACPI: LAPIC (acpi_id[0x02] lapic_id[0x04] disabled)
-> [    0.000000] ACPI: LAPIC (acpi_id[0x03] lapic_id[0x06] disabled)
-> [    0.000000] ACPI: LAPIC (acpi_id[0x04] lapic_id[0x08] disabled)
-> [    0.000000] ACPI: LAPIC (acpi_id[0x05] lapic_id[0x0a] disabled)
-> [    0.000000] ACPI: LAPIC (acpi_id[0x06] lapic_id[0x0c] disabled)
-> [    0.000000] ACPI: LAPIC (acpi_id[0x07] lapic_id[0x0e] disabled)
-> [    0.000000] ACPI: LAPIC (acpi_id[0x08] lapic_id[0x10] disabled)
-> [    0.000000] ACPI: LAPIC (acpi_id[0x09] lapic_id[0x12] disabled)
-> [    0.000000] ACPI: LAPIC (acpi_id[0x0a] lapic_id[0x14] disabled)
-> [    0.000000] ACPI: LAPIC (acpi_id[0x0b] lapic_id[0x16] disabled)
-> [    0.000000] ACPI: LAPIC (acpi_id[0x0c] lapic_id[0x18] disabled)
-> [    0.000000] ACPI: LAPIC (acpi_id[0x0d] lapic_id[0x1a] disabled)
-> [    0.000000] ACPI: LAPIC (acpi_id[0x0e] lapic_id[0x1c] disabled)
-> [    0.000000] ACPI: IOAPIC (id[0x01] address[0xfec00000] gsi_base[0])
-> [    0.000000] IOAPIC[0]: apic_id 1, version 17, address 0xfec00000, GSI 0-47
-> [    0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl dfl)
-> [    0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 5 global_irq 5 low level)
-> [    0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 10 global_irq 10 low level)
-> [    0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 11 global_irq 11 low level)
-> [    0.000000] Using ACPI (MADT) for SMP configuration information
-> [    0.000000] smpboot: Allowing 15 CPUs, 13 hotplug CPUs
-> [    0.000000] PM: Registered nosave memory: 000000000009e000 - 00000000000a0000
-> [    0.000000] PM: Registered nosave memory: 00000000000a0000 - 00000000000e0000
-> [    0.000000] PM: Registered nosave memory: 00000000000e0000 - 0000000000100000
-> [    0.000000] e820: [mem 0x80000000-0xfbffffff] available for PCI devices
-> [    0.000000] Booting paravirtualized kernel on Xen HVM
-> [    0.000000] setup_percpu: NR_CPUS:512 nr_cpumask_bits:512 nr_cpu_ids:15 nr_node_ids:1
-> [    0.000000] PERCPU: Embedded 28 pages/cpu @ffff88007a800000 s84352 r8192 d22144 u131072
-> [    0.000000] Built 1 zonelists in Node order, mobility grouping on.  Total pages: 517000
-> [    0.000000] Policy zone: DMA32
-> [    0.000000] Kernel command line: initrd=initramf.gz  console=ttyS0,115200 test=net nofb earlyprintk=serial,ttyS0,115200 BOOT_IMAGE=vmlinuz 
-> [    0.000000] PID hash table entries: 4096 (order: 3, 32768 bytes)
-> [    0.000000] __ex_table already sorted, skipping sort
-> [    0.000000] Checking aperture...
-> [    0.000000] No AGP bridge found
-> [    0.000000] Memory: 1967336k/2097152k available (6368k kernel code, 456k absent, 129360k reserved, 4525k data, 752k init)
-> [    0.000000] Hierarchical RCU implementation.
-> [    0.000000]       RCU restricting CPUs from NR_CPUS=512 to nr_cpu_ids=15.
-> [    0.000000] NR_IRQS:33024 nr_irqs:1208 16
-> [    0.000000] Xen HVM callback vector for event delivery is enabled
-> [    0.000000] Console: colour VGA+ 80x25
-> [    0.000000] BUG: unable to handle kernel NULL pointer dereference at 0000000000000030
-> [    0.000000] IP: [<ffffffff813ab3be>] xen_cons_init+0x1e/0x60
-> [    0.000000] PGD 0 
-> [    0.000000] Oops: 0000 [#1] SMP 
-> [    0.000000] Modules linked in:
-> [    0.000000] CPU 0 
-> [    0.000000] Pid: 0, comm: swapper/0 Not tainted 3.6.0upstream-04121-g0313983 #1 Xen HVM domU
-> [    0.000000] RIP: 0010:[<ffffffff813ab3be>]  [<ffffffff813ab3be>] xen_cons_init+0x1e/0x60
-> [    0.000000] RSP: 0000:ffffffff81a01ef8  EFLAGS: 00010202
-> [    0.000000] RAX: 0000000000000000 RBX: ffffffff81b3be60 RCX: 0000000000000002
-> [    0.000000] RDX: ffffffff81a59c40 RSI: ffffffff81a59b01 RDI: ffffffff81ba7e81
-> [    0.000000] RBP: ffffffff81a01ef8 R08: 00000000000003fd R09: 0000000000000020
-> [    0.000000] R10: 0000000000000000 R11: 000000000000000d R12: ffffffff81b008e0
-> [    0.000000] R13: ffffffff81b092e0 R14: 0000000000000000 R15: 0000000000026bf0
-> [    0.000000] FS:  0000000000000000(0000) GS:ffff88007a800000(0000) knlGS:0000000000000000
-> [    0.000000] CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b
-> [    0.000000] CR2: 0000000000000030 CR3: 0000000001a0b000 CR4: 00000000000006b0
-> [    0.000000] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
-> [    0.000000] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
-> [    0.000000] Process swapper/0 (pid: 0, threadinfo ffffffff81a00000, task ffffffff81a13420)
-> [    0.000000] Stack:
-> [    0.000000]  ffffffff81a01f18 ffffffff81aeb9fb ffffffff81b008e0 ffffffffffffffff
-> [    0.000000]  ffffffff81a01f68 ffffffff81abac39 ffffffff81aba80d 0000000000026bf0
-> [    0.000000]  ffffffff81a01f58 ffffffff81b092e0 0000000001000000 0000000001c72000
-> [    0.000000] Call Trace:
-> [    0.000000]  [<ffffffff81aeb9fb>] console_init+0x19/0x2a
-> [    0.000000]  [<ffffffff81abac39>] start_kernel+0x24a/0x3a3
-> [    0.000000]  [<ffffffff81aba80d>] ? kernel_init+0x1e8/0x1e8
-> [    0.000000]  [<ffffffff81aba356>] x86_64_start_reservations+0x131/0x136
-> [    0.000000]  [<ffffffff81aba45e>] x86_64_start_kernel+0x103/0x112
-> [    0.000000] Code: 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 8b 0d 5a 2e 7c 00 55 31 c0 48 89 e5 85 c9 74 37 48 8b 05 51 2e 7c 00 48 c7 c2 40 9c a5 81 <f6> 40 30 02 75 15 83 f9 02 74 27 e8 52 fc ff ff 85 c0 78 15 48 
-> [    0.000000] RIP  [<ffffffff813ab3be>] xen_cons_init+0x1e/0x60
-> [    0.000000]  RSP <ffffffff81a01ef8>
-> [    0.000000] CR2: 0000000000000030
-> [    0.000000] ---[ end trace 5cb378039a20e088 ]---
-> [    0.000000] Kernel panic - not syncing: Attempted to kill the idle task!
-> > 
-> > > 
-> > > 
-> > > > Perhaps turn this into a static inline with a BUG_ON(!xen_start_info) to
-> > > > make catching these cases easier?
-> > > 
-> > 
-
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1349279862.650.171.camel@zakaz.uk.xensource.com> b/test/corpus/<1349279862.650.171.camel@zakaz.uk.xensource.com>
deleted file mode 100644 (file)
index dfb0bc1..0000000
+++ /dev/null
@@ -1,173 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Oct 03 17:01:25 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 03 Oct 2012 17:01:25 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TJRNw-0006kG-DU
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 03 Oct 2012 17:01:25 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TJRKU-0002Dz-G4; Wed, 03 Oct 2012 15:57:46 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1TJRKT-0002Dt-OB
-       for xen-devel@lists.xensource.com; Wed, 03 Oct 2012 15:57:45 +0000
-Received: from [85.158.143.99:9023] by server-2.bemta-4.messagelabs.com id
-       35/1C-06610-9706C605; Wed, 03 Oct 2012 15:57:45 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-13.tower-216.messagelabs.com!1349279864!26482067!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTMxMDE=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 24545 invoked from network); 3 Oct 2012 15:57:44 -0000
-Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-13.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
-       3 Oct 2012 15:57:44 -0000
-X-IronPort-AV: E=Sophos;i="4.80,528,1344211200"; d="scan'208";a="14920233"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       03 Oct 2012 15:57:44 +0000
-Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.279.1; Wed, 3 Oct 2012
-       16:57:44 +0100
-Message-ID: <1349279862.650.171.camel@zakaz.uk.xensource.com>
-From: Ian Campbell <Ian.Campbell@citrix.com>
-To: Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-Date: Wed, 3 Oct 2012 16:57:42 +0100
-In-Reply-To: <alpine.DEB.2.02.1210031641050.29232@kaball.uk.xensource.com>
-References: <alpine.DEB.2.02.1210031431080.29232@kaball.uk.xensource.com>
-       <1349272182.650.150.camel@zakaz.uk.xensource.com>
-       <alpine.DEB.2.02.1210031450220.29232@kaball.uk.xensource.com>
-       <1349272482.650.151.camel@zakaz.uk.xensource.com>
-       <20121003141116.GA10633@phenom.dumpdata.com>
-       <1349276431.650.156.camel@zakaz.uk.xensource.com>
-       <alpine.DEB.2.02.1210031641050.29232@kaball.uk.xensource.com>
-Organization: Citrix Systems, Inc.
-X-Mailer: Evolution 3.4.3-1 
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
-       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
-       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
-Subject: Re: [Xen-devel] [PATCH] xen: point xen_start_info to a dummy struct
- for PV on HVM guests
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Wed, 2012-10-03 at 16:48 +0100, Stefano Stabellini wrote:
-> On Wed, 3 Oct 2012, Ian Campbell wrote:
-> > On Wed, 2012-10-03 at 15:11 +0100, Konrad Rzeszutek Wilk wrote:
-> > > On Wed, Oct 03, 2012 at 02:54:42PM +0100, Ian Campbell wrote:
-> > > > On Wed, 2012-10-03 at 14:51 +0100, Stefano Stabellini wrote:
-> > > > > On Wed, 3 Oct 2012, Ian Campbell wrote:
-> > > > > > On Wed, 2012-10-03 at 14:37 +0100, Stefano Stabellini wrote:
-> > > > > > > PV on HVM guests don't have a start_info page mapped by Xen, so
-> > > > > > > xen_start_info is just NULL for them.
-> > > > > > > That is problem because other parts of the code expect xen_start_info to
-> > > > > > > point to something valid, for example xen_initial_domain() is defined as
-> > > > > > > follow:
-> > > > > > > 
-> > > > > > > #define xen_initial_domain()    (xen_domain() && \
-> > > > > > >                  xen_start_info->flags & SIF_INITDOMAIN)
-> > > > > > 
-> > > > > > But anyone who calls this before xen_start_info is setup is going to get
-> > > > > > a bogus result, specifically in this case they will think they are domU
-> > > > > > when in reality they are dom0 -- wouldn't it be better to fix those
-> > > > > > callsites?
-> > > > > 
-> > > > > That cannot be the case because setting up xen_start_info is the very
-> > > > > first thing that is done, before even calling to C.
-> > > > 
-> > > > On PV, yes, but you are trying to fix PVHVM here, no?
-> > > > 
-> > > > Otherwise if this is always set before calling into C then what is the
-> > > > purpose of this patch?
-> > > 
-> > > to fix this - as PVHVM has it set to NULL and we end up de-referencing
-> > > the xen_start_info and crashing. As so::
-> > > 
-> > 
-> > Right, so returning to my original point: The caller here is calling
-> > xen_initial_domain() *before* start info is setup. This is bogus and is
-> > your actual bug, all this patch does is hide that real issue.
-> 
-> That is because xen_start_info wasn't setup at all for PV on HVM guests.
-> 
-> The real reason is that PV on HVM guests don't have one, but that is
-> another matter. Until we get rid of all the references to xen_start_info
-> outside of PV specific code, we should just assume that there is one,
-> and that is already setup.
-> 
-> One day not too far from now, we might refactor the code to never
-> reference xen_start_info directly, but I don't think that now is the
-> time for that. Also consider that this is the same thing we do on ARM.
-
-We actual fill in the dummy start info with valid information on ARM
-though, we don't just leave it full of zeroes.
-
-If we do start out with start_info pointing to an uninitialised
-start_info on ARM too then I would argue that this is also a mistake. We
-should leave the NULL pointer in place until we setup the content of the
-dummy start info -- exactly because the resulting crash indicates to us
-that someone has accessed the si before we've initialised it.
-
-> > With this "fix" the caller of xen_initial_domain shown in this trace now
-> > gets a rubbish result based on the content of a dummy shared info
-> > instead of the real answer from that actual shared info.
-> 
-> That is not true. The caller gets a zero result, that is completely
-> appropriate in this case, given that a PV on HVM guest doesn't have a
-> start_info.
-
-It's just a side effect of Linux zeroing its bss though and zero
-happening to be the right answer for a PVHVM guest in this case.
-
-Is it true that zero is an appropriate result for all uses of fields in
-start_info on PVHVM?
-
-> > The right fix is to fix the caller to not call xen_initial_domain()
-> > until after the shared info has been setup. Maybe that means moving
-> > shinfo setup earlier, or maybe it means deferring this call until later
-> > in the PVHVM case.
-> 
-> I don't think so, we should be able to call xen_initial_domain() at any
-> point in the code.
-> 
-> The best course of action is taking this fix now (making PVHVM x86
-> guests behave the same way as ARM guests) and refactor all the callers to
-> xen_start_info later.
-
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1349280814.650.178.camel@zakaz.uk.xensource.com> b/test/corpus/<1349280814.650.178.camel@zakaz.uk.xensource.com>
deleted file mode 100644 (file)
index a3167b8..0000000
+++ /dev/null
@@ -1,186 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Oct 03 17:20:07 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 03 Oct 2012 17:20:07 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TJRg0-0006pY-TD
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 03 Oct 2012 17:20:07 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TJRc4-0003eW-EZ; Wed, 03 Oct 2012 16:15:56 +0000
-Received: from mail27.messagelabs.com ([193.109.254.147])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1TJRc1-0003eJ-Rb
-       for xen-devel@lists.xensource.com; Wed, 03 Oct 2012 16:15:54 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-11.tower-27.messagelabs.com!1349280942!4037133!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTMxMDE=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 1156 invoked from network); 3 Oct 2012 16:15:42 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-11.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
-       3 Oct 2012 16:15:42 -0000
-X-IronPort-AV: E=Sophos;i="4.80,528,1344211200"; d="scan'208";a="14920864"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       03 Oct 2012 16:13:35 +0000
-Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.279.1; Wed, 3 Oct 2012
-       17:13:35 +0100
-Message-ID: <1349280814.650.178.camel@zakaz.uk.xensource.com>
-From: Ian Campbell <Ian.Campbell@citrix.com>
-To: Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-Date: Wed, 3 Oct 2012 17:13:34 +0100
-In-Reply-To: <alpine.DEB.2.02.1210031658120.29232@kaball.uk.xensource.com>
-References: <alpine.DEB.2.02.1210031431080.29232@kaball.uk.xensource.com>
-       <1349272182.650.150.camel@zakaz.uk.xensource.com>
-       <alpine.DEB.2.02.1210031450220.29232@kaball.uk.xensource.com>
-       <1349272482.650.151.camel@zakaz.uk.xensource.com>
-       <20121003141116.GA10633@phenom.dumpdata.com>
-       <1349276431.650.156.camel@zakaz.uk.xensource.com>
-       <alpine.DEB.2.02.1210031641050.29232@kaball.uk.xensource.com>
-       <1349279862.650.171.camel@zakaz.uk.xensource.com>
-       <alpine.DEB.2.02.1210031658120.29232@kaball.uk.xensource.com>
-Organization: Citrix Systems, Inc.
-X-Mailer: Evolution 3.4.3-1 
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
-       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
-       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD autolearn=unavailable version=3.3.1
-Subject: Re: [Xen-devel] [PATCH] xen: point xen_start_info to a dummy struct
- for PV on HVM guests
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Wed, 2012-10-03 at 17:05 +0100, Stefano Stabellini wrote:
-> On Wed, 3 Oct 2012, Ian Campbell wrote:
-> > On Wed, 2012-10-03 at 16:48 +0100, Stefano Stabellini wrote:
-> > > On Wed, 3 Oct 2012, Ian Campbell wrote:
-> > > > On Wed, 2012-10-03 at 15:11 +0100, Konrad Rzeszutek Wilk wrote:
-> > > > > On Wed, Oct 03, 2012 at 02:54:42PM +0100, Ian Campbell wrote:
-> > > > > > On Wed, 2012-10-03 at 14:51 +0100, Stefano Stabellini wrote:
-> > > > > > > On Wed, 3 Oct 2012, Ian Campbell wrote:
-> > > > > > > > On Wed, 2012-10-03 at 14:37 +0100, Stefano Stabellini wrote:
-> > > > > > > > > PV on HVM guests don't have a start_info page mapped by Xen, so
-> > > > > > > > > xen_start_info is just NULL for them.
-> > > > > > > > > That is problem because other parts of the code expect xen_start_info to
-> > > > > > > > > point to something valid, for example xen_initial_domain() is defined as
-> > > > > > > > > follow:
-> > > > > > > > > 
-> > > > > > > > > #define xen_initial_domain()    (xen_domain() && \
-> > > > > > > > >                  xen_start_info->flags & SIF_INITDOMAIN)
-> > > > > > > > 
-> > > > > > > > But anyone who calls this before xen_start_info is setup is going to get
-> > > > > > > > a bogus result, specifically in this case they will think they are domU
-> > > > > > > > when in reality they are dom0 -- wouldn't it be better to fix those
-> > > > > > > > callsites?
-> > > > > > > 
-> > > > > > > That cannot be the case because setting up xen_start_info is the very
-> > > > > > > first thing that is done, before even calling to C.
-> > > > > > 
-> > > > > > On PV, yes, but you are trying to fix PVHVM here, no?
-> > > > > > 
-> > > > > > Otherwise if this is always set before calling into C then what is the
-> > > > > > purpose of this patch?
-> > > > > 
-> > > > > to fix this - as PVHVM has it set to NULL and we end up de-referencing
-> > > > > the xen_start_info and crashing. As so::
-> > > > > 
-> > > > 
-> > > > Right, so returning to my original point: The caller here is calling
-> > > > xen_initial_domain() *before* start info is setup. This is bogus and is
-> > > > your actual bug, all this patch does is hide that real issue.
-> > > 
-> > > That is because xen_start_info wasn't setup at all for PV on HVM guests.
-> > > 
-> > > The real reason is that PV on HVM guests don't have one, but that is
-> > > another matter. Until we get rid of all the references to xen_start_info
-> > > outside of PV specific code, we should just assume that there is one,
-> > > and that is already setup.
-> > > 
-> > > One day not too far from now, we might refactor the code to never
-> > > reference xen_start_info directly, but I don't think that now is the
-> > > time for that. Also consider that this is the same thing we do on ARM.
-> > 
-> > We actual fill in the dummy start info with valid information on ARM
-> > though, we don't just leave it full of zeroes.
-> > 
-> > If we do start out with start_info pointing to an uninitialised
-> > start_info on ARM too then I would argue that this is also a mistake.
-> 
-> Yes, we do point xen_start_info to an uninitialised start_info on ARM
-> too (I don't think is a mistake). Then when and if we have more
-> information we write them to start_info.
-
-So callers of xen_initial_domain in dom0 before xen_guest_init is called
-get the wrong result?
-
-That sounds like a mistake to me.
-
-> > We
-> > should leave the NULL pointer in place until we setup the content of the
-> > dummy start info -- exactly because the resulting crash indicates to us
-> > that someone has accessed the si before we've initialised it.
-> 
-> I don't think so. It is initialized to zero, that is the right thing to
-> do.
-
-Except it isn't in the dom0 case...
-
-> > > > With this "fix" the caller of xen_initial_domain shown in this trace now
-> > > > gets a rubbish result based on the content of a dummy shared info
-> > > > instead of the real answer from that actual shared info.
-> > > 
-> > > That is not true. The caller gets a zero result, that is completely
-> > > appropriate in this case, given that a PV on HVM guest doesn't have a
-> > > start_info.
-> > 
-> > It's just a side effect of Linux zeroing its bss though and zero
-> > happening to be the right answer for a PVHVM guest in this case.
-> 
-> well, I would call that "by design" ;-)
-
-Well, in that case it should be documented not just implicit!
-
-> > Is it true that zero is an appropriate result for all uses of fields in
-> > start_info on PVHVM?
-> 
-> I think so. In fact, if we wanted to, we could have the dummy struct
-> initialized to something different, but I don't think that we should.
-
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1349282492.650.185.camel@zakaz.uk.xensource.com> b/test/corpus/<1349282492.650.185.camel@zakaz.uk.xensource.com>
deleted file mode 100644 (file)
index 68cdc9f..0000000
+++ /dev/null
@@ -1,181 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Oct 03 17:46:01 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 03 Oct 2012 17:46:01 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TJS55-0006uX-Gd
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 03 Oct 2012 17:46:01 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TJS0u-0004Li-IZ; Wed, 03 Oct 2012 16:41:36 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1TJS0t-0004Lc-M6
-       for xen-devel@lists.xensource.com; Wed, 03 Oct 2012 16:41:35 +0000
-Received: from [85.158.137.99:54798] by server-1.bemta-3.messagelabs.com id
-       F0/09-16425-EBA6C605; Wed, 03 Oct 2012 16:41:34 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-12.tower-217.messagelabs.com!1349282493!17025320!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTMxMDE=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 11601 invoked from network); 3 Oct 2012 16:41:34 -0000
-Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-12.tower-217.messagelabs.com with RC4-SHA encrypted SMTP;
-       3 Oct 2012 16:41:34 -0000
-X-IronPort-AV: E=Sophos;i="4.80,528,1344211200"; d="scan'208";a="14921334"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       03 Oct 2012 16:41:33 +0000
-Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.279.1; Wed, 3 Oct 2012
-       17:41:33 +0100
-Message-ID: <1349282492.650.185.camel@zakaz.uk.xensource.com>
-From: Ian Campbell <Ian.Campbell@citrix.com>
-To: Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-Date: Wed, 3 Oct 2012 17:41:32 +0100
-In-Reply-To: <1349280814.650.178.camel@zakaz.uk.xensource.com>
-References: <alpine.DEB.2.02.1210031431080.29232@kaball.uk.xensource.com>
-       <1349272182.650.150.camel@zakaz.uk.xensource.com>
-       <alpine.DEB.2.02.1210031450220.29232@kaball.uk.xensource.com>
-       <1349272482.650.151.camel@zakaz.uk.xensource.com>
-       <20121003141116.GA10633@phenom.dumpdata.com>
-       <1349276431.650.156.camel@zakaz.uk.xensource.com>
-       <alpine.DEB.2.02.1210031641050.29232@kaball.uk.xensource.com>
-       <1349279862.650.171.camel@zakaz.uk.xensource.com>
-       <alpine.DEB.2.02.1210031658120.29232@kaball.uk.xensource.com>
-       <1349280814.650.178.camel@zakaz.uk.xensource.com>
-Organization: Citrix Systems, Inc.
-X-Mailer: Evolution 3.4.3-1 
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
-       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>, Konrad
-       Rzeszutek Wilk <konrad.wilk@oracle.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
-Subject: Re: [Xen-devel] [PATCH] xen: point xen_start_info to a dummy struct
- for PV on HVM guests
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Wed, 2012-10-03 at 17:13 +0100, Ian Campbell wrote:
-> On Wed, 2012-10-03 at 17:05 +0100, Stefano Stabellini wrote:
-> > On Wed, 3 Oct 2012, Ian Campbell wrote:
-> > > On Wed, 2012-10-03 at 16:48 +0100, Stefano Stabellini wrote:
-> > > > On Wed, 3 Oct 2012, Ian Campbell wrote:
-> > > > > On Wed, 2012-10-03 at 15:11 +0100, Konrad Rzeszutek Wilk wrote:
-> > > > > > On Wed, Oct 03, 2012 at 02:54:42PM +0100, Ian Campbell wrote:
-> > > > > > > On Wed, 2012-10-03 at 14:51 +0100, Stefano Stabellini wrote:
-> > > > > > > > On Wed, 3 Oct 2012, Ian Campbell wrote:
-> > > > > > > > > On Wed, 2012-10-03 at 14:37 +0100, Stefano Stabellini wrote:
-> > > > > > > > > > PV on HVM guests don't have a start_info page mapped by Xen, so
-> > > > > > > > > > xen_start_info is just NULL for them.
-> > > > > > > > > > That is problem because other parts of the code expect xen_start_info to
-> > > > > > > > > > point to something valid, for example xen_initial_domain() is defined as
-> > > > > > > > > > follow:
-> > > > > > > > > > 
-> > > > > > > > > > #define xen_initial_domain()    (xen_domain() && \
-> > > > > > > > > >                  xen_start_info->flags & SIF_INITDOMAIN)
-> > > > > > > > > 
-> > > > > > > > > But anyone who calls this before xen_start_info is setup is going to get
-> > > > > > > > > a bogus result, specifically in this case they will think they are domU
-> > > > > > > > > when in reality they are dom0 -- wouldn't it be better to fix those
-> > > > > > > > > callsites?
-> > > > > > > > 
-> > > > > > > > That cannot be the case because setting up xen_start_info is the very
-> > > > > > > > first thing that is done, before even calling to C.
-> > > > > > > 
-> > > > > > > On PV, yes, but you are trying to fix PVHVM here, no?
-> > > > > > > 
-> > > > > > > Otherwise if this is always set before calling into C then what is the
-> > > > > > > purpose of this patch?
-> > > > > > 
-> > > > > > to fix this - as PVHVM has it set to NULL and we end up de-referencing
-> > > > > > the xen_start_info and crashing. As so::
-> > > > > > 
-> > > > > 
-> > > > > Right, so returning to my original point: The caller here is calling
-> > > > > xen_initial_domain() *before* start info is setup. This is bogus and is
-> > > > > your actual bug, all this patch does is hide that real issue.
-> > > > 
-> > > > That is because xen_start_info wasn't setup at all for PV on HVM guests.
-> > > > 
-> > > > The real reason is that PV on HVM guests don't have one, but that is
-> > > > another matter. Until we get rid of all the references to xen_start_info
-> > > > outside of PV specific code, we should just assume that there is one,
-> > > > and that is already setup.
-> > > > 
-> > > > One day not too far from now, we might refactor the code to never
-> > > > reference xen_start_info directly, but I don't think that now is the
-> > > > time for that. Also consider that this is the same thing we do on ARM.
-> > > 
-> > > We actual fill in the dummy start info with valid information on ARM
-> > > though, we don't just leave it full of zeroes.
-> > > 
-> > > If we do start out with start_info pointing to an uninitialised
-> > > start_info on ARM too then I would argue that this is also a mistake.
-> > 
-> > Yes, we do point xen_start_info to an uninitialised start_info on ARM
-> > too (I don't think is a mistake). Then when and if we have more
-> > information we write them to start_info.
-> 
-> So callers of xen_initial_domain in dom0 before xen_guest_init is called
-> get the wrong result?
-> 
-> That sounds like a mistake to me.
-
-How about (modulo my not having looked up the actual names of the
-constants etc):
-
-       #define xen_initial_domain() (xen_domain() && arch_is_initial_domain())
-
-on x86:
-       int arch_is_initial_domain(void)
-       {
-               /* The initial domain is always PV and
-                * therefore start_info is always set for it.
-                */
-               return start_info && start_info->flags & SIF_INITDOMAIN;
-       }
-on ARM:
-       int arch_is_initial_domain(void)
-       {
-               static is_initial = -1;
-               if (is_initial == -1)
-                       is_initial = HVM_param_get(HVMPARAM_DOM0)
-               return is_initial;
-       }
-
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1349339920.650.220.camel@zakaz.uk.xensource.com> b/test/corpus/<1349339920.650.220.camel@zakaz.uk.xensource.com>
deleted file mode 100644 (file)
index 3239d28..0000000
+++ /dev/null
@@ -1,146 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Oct 04 09:42:29 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 04 Oct 2012 09:42:29 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TJh0g-0005nD-Ll
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 04 Oct 2012 09:42:28 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TJgxB-0004gX-Aa; Thu, 04 Oct 2012 08:38:45 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1TJgx9-0004gB-BK
-       for Xen-devel@lists.xensource.com; Thu, 04 Oct 2012 08:38:43 +0000
-Received: from [85.158.143.99:23012] by server-2.bemta-4.messagelabs.com id
-       A6/64-06610-21B4D605; Thu, 04 Oct 2012 08:38:42 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-3.tower-216.messagelabs.com!1349339921!32207196!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTMwMTc=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 2473 invoked from network); 4 Oct 2012 08:38:42 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-3.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
-       4 Oct 2012 08:38:42 -0000
-X-IronPort-AV: E=Sophos;i="4.80,533,1344211200"; d="scan'208";a="14933105"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       04 Oct 2012 08:38:41 +0000
-Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.279.1; Thu, 4 Oct 2012
-       09:38:41 +0100
-Message-ID: <1349339920.650.220.camel@zakaz.uk.xensource.com>
-From: Ian Campbell <Ian.Campbell@citrix.com>
-To: Mukesh Rathor <mukesh.rathor@oracle.com>
-Date: Thu, 4 Oct 2012 09:38:40 +0100
-In-Reply-To: <20121003153714.4656b7e9@mantra.us.oracle.com>
-References: <20120921121659.5a723de9@mantra.us.oracle.com>
-       <alpine.DEB.2.02.1209241257440.29232@kaball.uk.xensource.com>
-       <20120924154335.097d3fb9@mantra.us.oracle.com>
-       <alpine.DEB.2.02.1209251054140.29232@kaball.uk.xensource.com>
-       <20120925180416.0137d61a@mantra.us.oracle.com>
-       <alpine.DEB.2.02.1209261225340.29232@kaball.uk.xensource.com>
-       <20121002183619.70734b7a@mantra.us.oracle.com>
-       <20121002190323.2e16f6ff@mantra.us.oracle.com>
-       <alpine.DEB.2.02.1210031242180.29232@kaball.uk.xensource.com>
-       <20121003153714.4656b7e9@mantra.us.oracle.com>
-Organization: Citrix Systems, Inc.
-X-Mailer: Evolution 3.4.3-1 
-MIME-Version: 1.0
-Cc: "Xen-devel@lists.xensource.com" <Xen-devel@lists.xensource.com>, Konrad
-       Rzeszutek Wilk <konrad.wilk@oracle.com>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH v1 3/8]: PVH startup changes (enlighten.c)
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Wed, 2012-10-03 at 23:37 +0100, Mukesh Rathor wrote:
-> On Wed, 3 Oct 2012 12:58:22 +0100
-> Stefano Stabellini <stefano.stabellini@eu.citrix.com> wrote:
-> 
-> > On Wed, 3 Oct 2012, Mukesh Rathor wrote:
-> > > On Tue, 2 Oct 2012 18:36:19 -0700
-> > > Mukesh Rathor <mukesh.rathor@oracle.com> wrote:
-> > > 
-> > > > On Wed, 26 Sep 2012 12:33:39 +0100
-> > 
-> > 
-> > > So for now, how about, lets go
-> > > with what I've got. I'll make a note, and when I do xen patch, I'll
-> > > figure it out, and would be a very small linux patch. I want to get
-> > > linux patch in soon before the window closes.
-> > 
-> > We can leave page special as it is for now with very little
-> > consequences, because it is not part of the interface with Xen.
-> > However this is part of the interface, so whatever we choose here is
-> > going to be hard to change later on.
-> > 
-> > I think it would be good if we could either make dom0 use a pfn or
-> > domU use mfn, whatever is easier for you.
-> 
-> Ok, finally, focussing on this, the issue with pfn in dom0 is that
-> I need pfn allocated in construct_dom0() and be mapped so that the
-> guest can just do :
-> 
-> HYPERVISOR_shared_info=(struct shared_info *)__va(xen_start_info->shared_info);
-> 
-> How about following I am experimenting with right now:
-> 
-> in construct_dom0():
-> 
->     vstartinfo_end   = (vstartinfo_start +
->                         sizeof(struct start_info) +
->                         sizeof(struct dom0_vga_console_info));
-> 
->     if ( is_hybrid_domain(d) ) {
->         start_info_pfn_addr = round_pgup(vstartinfo_end) - v_start;
->         vstartinfo_end   += PAGE_SIZE;
->     }
-> 
-> I can then put (PFN: start_info_pfn_addr)->(MFN: virt_to_maddr(d->shared_info))
-> in the p2m, and dom0 just has to do __va(), like domU does now.  I wont' need
-> to special case dom0 then.
-> 
-> Do you foresee any problems with this approach?
-
-Hard to say without all the surrounding context but it seems plausible
-to me.
-
-Ian.
-
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1349363496.866.49.camel@zakaz.uk.xensource.com> b/test/corpus/<1349363496.866.49.camel@zakaz.uk.xensource.com>
deleted file mode 100644 (file)
index e93e372..0000000
+++ /dev/null
@@ -1,101 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Oct 04 16:16:07 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 04 Oct 2012 16:16:07 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TJn9d-00077v-8x
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 04 Oct 2012 16:16:07 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TJn5R-0007ut-HX; Thu, 04 Oct 2012 15:11:41 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1TJn5P-0007um-Iz
-       for xen-devel@lists.xen.org; Thu, 04 Oct 2012 15:11:39 +0000
-Received: from [85.158.143.99:30628] by server-3.bemta-4.messagelabs.com id
-       E0/76-10986-A27AD605; Thu, 04 Oct 2012 15:11:38 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-4.tower-216.messagelabs.com!1349363498!27589072!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTMxNjA=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 24308 invoked from network); 4 Oct 2012 15:11:38 -0000
-Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-4.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
-       4 Oct 2012 15:11:38 -0000
-X-IronPort-AV: E=Sophos;i="4.80,535,1344211200"; d="scan'208";a="14945005"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       04 Oct 2012 15:11:37 +0000
-Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.279.1; Thu, 4 Oct 2012
-       16:11:37 +0100
-Message-ID: <1349363496.866.49.camel@zakaz.uk.xensource.com>
-From: Ian Campbell <Ian.Campbell@citrix.com>
-To: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>, Mukesh Rathor
-       <mukesh.rathor@oracle.com>, Stefano Stabellini
-       <stefano.stabellini@citrix.com>
-Date: Thu, 4 Oct 2012 16:11:36 +0100
-Organization: Citrix Systems, Inc.
-X-Mailer: Evolution 3.4.3-1 
-MIME-Version: 1.0
-Cc: xen-devel <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: [Xen-devel] [RFC 00/14] arm: implement ballooning and privcmd
- foreign mappings based on x86 PVH
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-This series implements ballooning for Xen on ARM and builds and Mukesh's
-PVH privcmd stuff to implement foreign page mapping on ARM, replacing
-the old "HACK: initial (very hacky) XENMAPSPACE_gmfn_foreign" patch.
-
-The baseline is a bit complex, it is basically Stefano's xenarm-forlinus
-branch (commit bbd6eb29214e) merged with Konrad's linux-next-pvh branch
-(commit 7e6e6f589de8). I suspect I might need to rebase it shortly. I
-know there's a bunch of stuff in here which Mukesh has also changed, but
-which I haven't seen yet, I'll deal with that when I rebase (RFC mainly
-for that reason only).
-
-This lets me start a guest without any of those nasty patches with
-"HACK" in the title ;-0
-
-Ian.
-
-
-
-
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1349363515-26190-1-git-send-email-ian.campbell@citrix.com> b/test/corpus/<1349363515-26190-1-git-send-email-ian.campbell@citrix.com>
deleted file mode 100644 (file)
index 49c1e96..0000000
+++ /dev/null
@@ -1,130 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Oct 04 16:16:13 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 04 Oct 2012 16:16:13 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TJn9j-00078g-Oh
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 04 Oct 2012 16:16:13 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TJn5s-0007ys-FL; Thu, 04 Oct 2012 15:12:08 +0000
-Received: from mail27.messagelabs.com ([193.109.254.147])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1TJn5q-0007wI-3d
-       for xen-devel@lists.xen.org; Thu, 04 Oct 2012 15:12:06 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-9.tower-27.messagelabs.com!1349363516!9745618!2
-X-Originating-IP: [66.165.176.63]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyODAxODI=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 32709 invoked from network); 4 Oct 2012 15:11:59 -0000
-Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
-       by server-9.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
-       4 Oct 2012 15:11:59 -0000
-X-IronPort-AV: E=Sophos;i="4.80,535,1344211200"; d="scan'208";a="210303836"
-Received: from ftlpmailmx01.citrite.net ([10.13.107.65])
-       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       04 Oct 2012 15:11:56 +0000
-Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
-       (10.13.107.65) with Microsoft SMTP Server id 8.3.279.1;
-       Thu, 4 Oct 2012 11:11:55 -0400
-Received: from drall.uk.xensource.com ([10.80.227.107])        by
-       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
-       <ian.campbell@citrix.com>)      id 1TJn5f-0002L6-EU;
-       Thu, 04 Oct 2012 16:11:55 +0100
-From: Ian Campbell <ian.campbell@citrix.com>
-To: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
-       Stefano Stabellini <stefano.stabellini@citrix.com>,
-       Mukesh Rathor <mukesh.rathor@oracle.com>
-Date: Thu, 4 Oct 2012 16:11:42 +0100
-Message-ID: <1349363515-26190-1-git-send-email-ian.campbell@citrix.com>
-X-Mailer: git-send-email 1.7.2.5
-In-Reply-To: <1349363496.866.49.camel@zakaz.uk.xensource.com>
-References: <1349363496.866.49.camel@zakaz.uk.xensource.com>
-MIME-Version: 1.0
-Cc: Ian Campbell <ian.campbell@citrix.com>, xen-devel@lists.xen.org
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD autolearn=ham version=3.3.1
-Subject: [Xen-devel] [PATCH 01/14] Build fixes which I beleive others have
-       already fixed properly elsewhere
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-Do not apply, you have better versions of all these somewhere else!
----
- drivers/xen/Makefile           |    2 +-
- include/xen/interface/memory.h |    4 +---
- 2 files changed, 2 insertions(+), 4 deletions(-)
-
-diff --git a/drivers/xen/Makefile b/drivers/xen/Makefile
-index cd28aae..275abfc 100644
---- a/drivers/xen/Makefile
-+++ b/drivers/xen/Makefile
-@@ -8,10 +8,10 @@ obj-y        += xenbus/
- nostackp := $(call cc-option, -fno-stack-protector)
- CFLAGS_features.o                     := $(nostackp)
--obj-$(CONFIG_XEN_DOM0)                        += $(dom0-y)
- dom0-$(CONFIG_PCI) += pci.o
- dom0-$(CONFIG_ACPI) += acpi.o
- dom0-$(CONFIG_X86) += pcpu.o
-+obj-$(CONFIG_XEN_DOM0)                        += $(dom0-y)
- obj-$(CONFIG_BLOCK)                   += biomerge.o
- obj-$(CONFIG_XEN_XENCOMM)             += xencomm.o
- obj-$(CONFIG_XEN_BALLOON)             += xen-balloon.o
-diff --git a/include/xen/interface/memory.h b/include/xen/interface/memory.h
-index 9953914..6d74c47 100644
---- a/include/xen/interface/memory.h
-+++ b/include/xen/interface/memory.h
-@@ -163,15 +163,13 @@ struct xen_add_to_physmap {
-     /* Which domain to change the mapping for. */
-     domid_t domid;
--    /* Number of pages to go through for gmfn_range */
--    uint16_t    size;
--
-     union {
-         /* Number of pages to go through for gmfn_range */
-         uint16_t    size;
-       /* IFF XENMAPSPACE_gmfn_foreign */
-         domid_t foreign_domid;
-     } u;
-+
-     /* Source mapping space. */
- #define XENMAPSPACE_shared_info 0 /* shared info page */
- #define XENMAPSPACE_grant_table 1 /* grant table page */
--- 
-1.7.2.5
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1349363515-26190-10-git-send-email-ian.campbell@citrix.com> b/test/corpus/<1349363515-26190-10-git-send-email-ian.campbell@citrix.com>
deleted file mode 100644 (file)
index 61cbc5d..0000000
+++ /dev/null
@@ -1,276 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Oct 04 16:16:14 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 04 Oct 2012 16:16:14 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TJn9k-00078x-As
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 04 Oct 2012 16:16:14 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TJn5q-0007xy-Ml; Thu, 04 Oct 2012 15:12:06 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1TJn5o-0007wU-59
-       for xen-devel@lists.xen.org; Thu, 04 Oct 2012 15:12:04 +0000
-Received: from [85.158.139.211:4864] by server-12.bemta-5.messagelabs.com id
-       66/D9-03829-347AD605; Thu, 04 Oct 2012 15:12:03 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-8.tower-206.messagelabs.com!1349363519!21075191!3
-X-Originating-IP: [66.165.176.63]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyODAxODI=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 25454 invoked from network); 4 Oct 2012 15:12:02 -0000
-Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
-       by server-8.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
-       4 Oct 2012 15:12:02 -0000
-X-IronPort-AV: E=Sophos;i="4.80,535,1344211200"; d="scan'208";a="210303842"
-Received: from ftlpmailmx01.citrite.net ([10.13.107.65])
-       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       04 Oct 2012 15:11:56 +0000
-Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
-       (10.13.107.65) with Microsoft SMTP Server id 8.3.279.1;
-       Thu, 4 Oct 2012 11:11:56 -0400
-Received: from drall.uk.xensource.com ([10.80.227.107])        by
-       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
-       <ian.campbell@citrix.com>)      id 1TJn5f-0002L6-OE;
-       Thu, 04 Oct 2012 16:11:55 +0100
-From: Ian Campbell <ian.campbell@citrix.com>
-To: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
-       Stefano Stabellini <stefano.stabellini@citrix.com>,
-       Mukesh Rathor <mukesh.rathor@oracle.com>
-Date: Thu, 4 Oct 2012 16:11:51 +0100
-Message-ID: <1349363515-26190-10-git-send-email-ian.campbell@citrix.com>
-X-Mailer: git-send-email 1.7.2.5
-In-Reply-To: <1349363496.866.49.camel@zakaz.uk.xensource.com>
-References: <1349363496.866.49.camel@zakaz.uk.xensource.com>
-MIME-Version: 1.0
-Cc: Ian Campbell <ian.campbell@citrix.com>, xen-devel@lists.xen.org
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: [Xen-devel] [PATCH 10/14] privcmd: refer to autotranslate not PVH
-       in arch interfaces / comments.
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-PVH is X86 specific while this functionality is also used on ARM.
-
-Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
----
- arch/x86/xen/mmu.c    |   10 +++++-----
- drivers/xen/privcmd.c |   46 ++++++++++++++++++++++------------------------
- include/xen/xen-ops.h |    8 ++++----
- 3 files changed, 31 insertions(+), 33 deletions(-)
-
-diff --git a/arch/x86/xen/mmu.c b/arch/x86/xen/mmu.c
-index 26097cb..3e781f9 100644
---- a/arch/x86/xen/mmu.c
-+++ b/arch/x86/xen/mmu.c
-@@ -2506,7 +2506,7 @@ struct pvh_remap_data {
-       unsigned long fgmfn;            /* foreign domain's gmfn */
-       pgprot_t prot;
-       domid_t  domid;
--      struct xen_pvh_pfn_info *pvhinfop;
-+      struct xen_remap_mfn_info *pvhinfop;
- };
- static int pvh_map_pte_fn(pte_t *ptep, pgtable_t token, unsigned long addr, 
-@@ -2514,7 +2514,7 @@ static int pvh_map_pte_fn(pte_t *ptep, pgtable_t token, unsigned long addr,
- {
-       int rc;
-       struct pvh_remap_data *remapp = data;
--      struct xen_pvh_pfn_info *pvhp = remapp->pvhinfop;
-+      struct xen_remap_mfn_info *pvhp = remapp->pvhinfop;
-       unsigned long pfn = page_to_pfn(pvhp->pi_paga[pvhp->pi_next_todo++]);
-       pte_t pteval = pte_mkspecial(pfn_pte(pfn, remapp->prot));
-@@ -2531,7 +2531,7 @@ static int pvh_map_pte_fn(pte_t *ptep, pgtable_t token, unsigned long addr,
- static int pvh_remap_gmfn_range(struct vm_area_struct *vma,
-                               unsigned long addr, unsigned long mfn, int nr,
-                               pgprot_t prot, unsigned domid,
--                              struct xen_pvh_pfn_info *pvhp)
-+                              struct xen_remap_mfn_info *pvhp)
- {
-       int err;
-       struct pvh_remap_data pvhdata;
-@@ -2574,7 +2574,7 @@ int xen_remap_domain_mfn_range(struct vm_area_struct *vma,
-                              unsigned long addr,
-                              unsigned long mfn, int nr,
-                              pgprot_t prot, unsigned domid,
--                             struct xen_pvh_pfn_info *pvhp)
-+                             struct xen_remap_mfn_info *pvhp)
- {
-       struct remap_data rmd;
-@@ -2629,7 +2629,7 @@ EXPORT_SYMBOL_GPL(xen_remap_domain_mfn_range);
- /* Returns: Number of pages unmapped */
- int xen_unmap_domain_mfn_range(struct vm_area_struct *vma,
--                             struct xen_pvh_pfn_info *pvhp)
-+                             struct xen_remap_mfn_info *pvhp)
- {
-       int count = 0;
-diff --git a/drivers/xen/privcmd.c b/drivers/xen/privcmd.c
-index bf4d62a..ebf3c8d 100644
---- a/drivers/xen/privcmd.c
-+++ b/drivers/xen/privcmd.c
-@@ -265,18 +265,16 @@ struct mmap_batch_state {
-       xen_pfn_t __user *user_mfn;
- };
--/* PVH dom0 fyi: if domU being created is PV, then mfn is mfn(addr on bus). If
-- * it's PVH then mfn is pfn (input to HAP). */
- static int mmap_batch_fn(void *data, void *state)
- {
-       xen_pfn_t *mfnp = data;
-       struct mmap_batch_state *st = state;
-       struct vm_area_struct *vma = st->vma;
--      struct xen_pvh_pfn_info *pvhp = vma ? vma->vm_private_data : NULL;
-+      struct xen_remap_mfn_info *info = vma ? vma->vm_private_data : NULL;
-       int ret;
-       ret = xen_remap_domain_mfn_range(st->vma, st->va & PAGE_MASK, *mfnp, 1,
--                                       st->vma->vm_page_prot, st->domain, pvhp);
-+                                       st->vma->vm_page_prot, st->domain, info);
-       /* Store error code for second pass. */
-       *(st->err++) = ret;
-@@ -315,33 +313,33 @@ static int mmap_return_errors_v1(void *data, void *state)
- /* Allocate pfns that are then mapped with gmfns from foreign domid. Update
-  * the vma with the page info to use later.
-  * Returns: 0 if success, otherwise -errno
-- */ 
--static int pvh_privcmd_resv_pfns(struct vm_area_struct *vma, int numpgs)
-+ */
-+static int alloc_empty_pages(struct vm_area_struct *vma, int numpgs)
- {
-       int rc;
--      struct xen_pvh_pfn_info *pvhp;
-+      struct xen_remap_mfn_info *info;
--      pvhp = kzalloc(sizeof(struct xen_pvh_pfn_info), GFP_KERNEL);
--      if (pvhp == NULL)
-+      info = kzalloc(sizeof(struct xen_remap_mfn_info), GFP_KERNEL);
-+      if (info == NULL)
-               return -ENOMEM;
--      pvhp->pi_paga = kcalloc(numpgs, sizeof(pvhp->pi_paga[0]), GFP_KERNEL);
--      if (pvhp->pi_paga == NULL) {
--              kfree(pvhp);
-+      info->pi_paga = kcalloc(numpgs, sizeof(info->pi_paga[0]), GFP_KERNEL);
-+      if (info->pi_paga == NULL) {
-+              kfree(info);
-               return -ENOMEM;
-       }
--      rc = alloc_xenballooned_pages(numpgs, pvhp->pi_paga, 0);
-+      rc = alloc_xenballooned_pages(numpgs, info->pi_paga, 0);
-       if (rc != 0) {
-               pr_warn("%s Could not alloc %d pfns rc:%d\n", __FUNCTION__, 
-                       numpgs, rc);
--              kfree(pvhp->pi_paga);
--              kfree(pvhp);
-+              kfree(info->pi_paga);
-+              kfree(info);
-               return -ENOMEM;
-       }
--      pvhp->pi_num_pgs = numpgs;
-+      info->pi_num_pgs = numpgs;
-       BUG_ON(vma->vm_private_data != (void *)1);
--      vma->vm_private_data = pvhp;
-+      vma->vm_private_data = info;
-       return 0;
- }
-@@ -414,7 +412,7 @@ static long privcmd_ioctl_mmap_batch(void __user *udata, int version)
-               goto out;
-       }
-       if (xen_feature(XENFEAT_auto_translated_physmap)) {
--              if ((ret = pvh_privcmd_resv_pfns(vma, m.num))) {
-+              if ((ret = alloc_empty_pages(vma, m.num))) {
-                       up_write(&mm->mmap_sem);
-                       goto out;
-               }
-@@ -490,16 +488,16 @@ static long privcmd_ioctl(struct file *file,
- static void privcmd_close(struct vm_area_struct *vma)
- {
-       int count;
--      struct xen_pvh_pfn_info *pvhp = vma ? vma->vm_private_data : NULL;
-+      struct xen_remap_mfn_info *info = vma ? vma->vm_private_data : NULL;
--      if (!pvhp || !xen_feature(XENFEAT_auto_translated_physmap))
-+      if (!info || !xen_feature(XENFEAT_auto_translated_physmap))
-               return;
--      count = xen_unmap_domain_mfn_range(vma, pvhp);
-+      count = xen_unmap_domain_mfn_range(vma, info);
-       while (count--)
--              free_xenballooned_pages(1, &pvhp->pi_paga[count]);
--      kfree(pvhp->pi_paga);
--      kfree(pvhp);
-+              free_xenballooned_pages(1, &info->pi_paga[count]);
-+      kfree(info->pi_paga);
-+      kfree(info);
- }
- static int privcmd_fault(struct vm_area_struct *vma, struct vm_fault *vmf)
-diff --git a/include/xen/xen-ops.h b/include/xen/xen-ops.h
-index 6c5ad83..2f3cb06 100644
---- a/include/xen/xen-ops.h
-+++ b/include/xen/xen-ops.h
-@@ -24,16 +24,16 @@ int xen_create_contiguous_region(unsigned long vstart, unsigned int order,
- void xen_destroy_contiguous_region(unsigned long vstart, unsigned int order);
- struct vm_area_struct;
--struct xen_pvh_pfn_info;
-+struct xen_remap_mfn_info;
- int xen_remap_domain_mfn_range(struct vm_area_struct *vma,
-                              unsigned long addr,
-                              unsigned long mfn, int nr,
-                              pgprot_t prot, unsigned domid,
--                             struct xen_pvh_pfn_info *pvhp);
-+                             struct xen_remap_mfn_info *pvhp);
- int xen_unmap_domain_mfn_range(struct vm_area_struct *vma,
--                             struct xen_pvh_pfn_info *pvhp);
-+                             struct xen_remap_mfn_info *pvhp);
--struct xen_pvh_pfn_info {
-+struct xen_remap_mfn_info {
-       struct page **pi_paga;          /* pfn info page array */
-       int           pi_num_pgs;
-       int           pi_next_todo;
--- 
-1.7.2.5
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1349363515-26190-11-git-send-email-ian.campbell@citrix.com> b/test/corpus/<1349363515-26190-11-git-send-email-ian.campbell@citrix.com>
deleted file mode 100644 (file)
index 1be5b71..0000000
+++ /dev/null
@@ -1,220 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Oct 04 16:26:17 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 04 Oct 2012 16:26:17 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TJnJV-0007F8-DU
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 04 Oct 2012 16:26:17 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TJnFn-0001Dy-Pr; Thu, 04 Oct 2012 15:22:23 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1TJnFl-0001DK-SG
-       for xen-devel@lists.xen.org; Thu, 04 Oct 2012 15:22:22 +0000
-Received: from [85.158.137.99:19745] by server-10.bemta-3.messagelabs.com id
-       E8/89-02525-DA9AD605; Thu, 04 Oct 2012 15:22:21 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-6.tower-217.messagelabs.com!1349364138!15160393!2
-X-Originating-IP: [66.165.176.63]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyODAxODI=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 13481 invoked from network); 4 Oct 2012 15:22:20 -0000
-Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
-       by server-6.tower-217.messagelabs.com with RC4-SHA encrypted SMTP;
-       4 Oct 2012 15:22:20 -0000
-X-IronPort-AV: E=Sophos;i="4.80,535,1344211200"; d="scan'208";a="210306092"
-Received: from ftlpmailmx01.citrite.net ([10.13.107.65])
-       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       04 Oct 2012 15:22:14 +0000
-Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
-       (10.13.107.65) with Microsoft SMTP Server id 8.3.279.1;
-       Thu, 4 Oct 2012 11:22:14 -0400
-Received: from drall.uk.xensource.com ([10.80.227.107])        by
-       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
-       <ian.campbell@citrix.com>)      id 1TJn5f-0002L6-Oi;
-       Thu, 04 Oct 2012 16:11:55 +0100
-From: Ian Campbell <ian.campbell@citrix.com>
-To: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
-       Stefano Stabellini <stefano.stabellini@citrix.com>,
-       Mukesh Rathor <mukesh.rathor@oracle.com>
-Date: Thu, 4 Oct 2012 16:11:52 +0100
-Message-ID: <1349363515-26190-11-git-send-email-ian.campbell@citrix.com>
-X-Mailer: git-send-email 1.7.2.5
-In-Reply-To: <1349363496.866.49.camel@zakaz.uk.xensource.com>
-References: <1349363496.866.49.camel@zakaz.uk.xensource.com>
-MIME-Version: 1.0
-Cc: Ian Campbell <ian.campbell@citrix.com>, xen-devel@lists.xen.org
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: [Xen-devel] [PATCH 11/14] arm: implement remap interfaces needed
-       for privcmd mappings.
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
----
- arch/arm/xen/enlighten.c |   94 +++++++++++++++++++++++++++++++++++++++++++++-
- 1 files changed, 92 insertions(+), 2 deletions(-)
-
-diff --git a/arch/arm/xen/enlighten.c b/arch/arm/xen/enlighten.c
-index ba5cc13..9956af5 100644
---- a/arch/arm/xen/enlighten.c
-+++ b/arch/arm/xen/enlighten.c
-@@ -9,6 +9,7 @@
- #include <xen/platform_pci.h>
- #include <xen/xenbus.h>
- #include <xen/page.h>
-+#include <xen/xen-ops.h>
- #include <asm/xen/hypervisor.h>
- #include <asm/xen/hypercall.h>
- #include <linux/interrupt.h>
-@@ -18,6 +19,8 @@
- #include <linux/of_irq.h>
- #include <linux/of_address.h>
-+#include <linux/mm.h>
-+
- struct start_info _xen_start_info;
- struct start_info *xen_start_info = &_xen_start_info;
- EXPORT_SYMBOL_GPL(xen_start_info);
-@@ -43,15 +46,102 @@ EXPORT_SYMBOL_GPL(xen_platform_pci_unplug);
- static __read_mostly int xen_events_irq = -1;
-+/* map fgmfn of domid to lpfn in the current domain */
-+static int map_foreign_page(unsigned long lpfn, unsigned long fgmfn,
-+                          unsigned int domid)
-+{
-+      int rc;
-+      struct xen_add_to_physmap xatp = {
-+              .domid = DOMID_SELF,
-+              .u.foreign_domid = domid,
-+              .space = XENMAPSPACE_gmfn_foreign,
-+              .idx = fgmfn,
-+              .gpfn = lpfn,
-+      };
-+
-+      rc = HYPERVISOR_memory_op(XENMEM_add_to_physmap, &xatp);
-+      if (rc) {
-+              pr_warn("Failed to map pfn to mfn rc:%d pfn:%lx mfn:%lx\n",
-+                      rc, lpfn, fgmfn);
-+              return 1;
-+      }
-+      return 0;
-+}
-+
-+struct remap_data {
-+      unsigned long fgmfn; /* foreign domain's gmfn */
-+      pgprot_t prot;
-+      domid_t  domid;
-+      struct vm_area_struct *vma;
-+      struct xen_remap_mfn_info *info;
-+};
-+
-+static int remap_pte_fn(pte_t *ptep, pgtable_t token, unsigned long addr,
-+                      void *data)
-+{
-+      struct remap_data *info = data;
-+      struct xen_remap_mfn_info *savp = info->info;
-+      struct page *page = savp->pi_paga[savp->pi_next_todo++];
-+      unsigned long pfn = page_to_pfn(page);
-+      pte_t pte = pfn_pte(pfn, info->prot);
-+
-+      if (map_foreign_page(pfn, info->fgmfn, info->domid))
-+              return -EFAULT;
-+      set_pte_at(info->vma->vm_mm, addr, ptep, pte);
-+
-+      return 0;
-+}
-+
- int xen_remap_domain_mfn_range(struct vm_area_struct *vma,
-                              unsigned long addr,
-                              unsigned long mfn, int nr,
--                             pgprot_t prot, unsigned domid)
-+                             pgprot_t prot, unsigned domid,
-+                             struct xen_remap_mfn_info *info)
- {
--      return -ENOSYS;
-+      int err;
-+      struct remap_data data;
-+
-+      /* TBD: Batching, current sole caller only does page at a time */
-+      if (nr > 1)
-+              return -EINVAL;
-+
-+      data.fgmfn = mfn;
-+      data.prot = prot;
-+      data.domid = domid;
-+      data.vma = vma;
-+      data.info = info;
-+      err = apply_to_page_range(vma->vm_mm, addr, nr << PAGE_SHIFT,
-+                                remap_pte_fn, &data);
-+      return err;
- }
- EXPORT_SYMBOL_GPL(xen_remap_domain_mfn_range);
-+/* Returns: Number of pages unmapped */
-+int xen_unmap_domain_mfn_range(struct vm_area_struct *vma,
-+                             struct xen_remap_mfn_info *info)
-+{
-+      int count = 0;
-+
-+      while (info->pi_next_todo--) {
-+              struct xen_remove_from_physmap xrp;
-+              unsigned long rc, pfn;
-+
-+              pfn = page_to_pfn(info->pi_paga[info->pi_next_todo]);
-+
-+              xrp.domid = DOMID_SELF;
-+              xrp.gpfn = pfn;
-+              rc = HYPERVISOR_memory_op(XENMEM_remove_from_physmap, &xrp);
-+              if (rc) {
-+                      pr_warn("Failed to unmap pfn:%lx rc:%ld\n",
-+                              pfn, rc);
-+                      return count;
-+              }
-+              count++;
-+      }
-+      return count;
-+}
-+EXPORT_SYMBOL_GPL(xen_unmap_domain_mfn_range);
-+
- /*
-  * see Documentation/devicetree/bindings/arm/xen.txt for the
-  * documentation of the Xen Device Tree format.
--- 
-1.7.2.5
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1349363515-26190-12-git-send-email-ian.campbell@citrix.com> b/test/corpus/<1349363515-26190-12-git-send-email-ian.campbell@citrix.com>
deleted file mode 100644 (file)
index 4f1a84c..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Oct 04 16:26:18 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 04 Oct 2012 16:26:18 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TJnJU-0007F5-Hy
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 04 Oct 2012 16:26:18 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TJnFm-0001Dg-V6; Thu, 04 Oct 2012 15:22:22 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1TJnFl-0001DC-69
-       for xen-devel@lists.xen.org; Thu, 04 Oct 2012 15:22:21 +0000
-Received: from [85.158.143.35:60580] by server-1.bemta-4.messagelabs.com id
-       F4/47-05684-CA9AD605; Thu, 04 Oct 2012 15:22:20 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-14.tower-21.messagelabs.com!1349364134!17487056!1
-X-Originating-IP: [66.165.176.89]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNzQyMDg=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 32130 invoked from network); 4 Oct 2012 15:22:16 -0000
-Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
-       by server-14.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
-       4 Oct 2012 15:22:16 -0000
-X-IronPort-AV: E=Sophos;i="4.80,535,1344211200"; d="scan'208";a="40154748"
-Received: from ftlpmailmx01.citrite.net ([10.13.107.65])
-       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       04 Oct 2012 15:22:13 +0000
-Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
-       (10.13.107.65) with Microsoft SMTP Server id 8.3.279.1;
-       Thu, 4 Oct 2012 11:22:13 -0400
-Received: from drall.uk.xensource.com ([10.80.227.107])        by
-       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
-       <ian.campbell@citrix.com>)      id 1TJn5f-0002L6-PB;
-       Thu, 04 Oct 2012 16:11:55 +0100
-From: Ian Campbell <ian.campbell@citrix.com>
-To: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
-       Stefano Stabellini <stefano.stabellini@citrix.com>,
-       Mukesh Rathor <mukesh.rathor@oracle.com>
-Date: Thu, 4 Oct 2012 16:11:53 +0100
-Message-ID: <1349363515-26190-12-git-send-email-ian.campbell@citrix.com>
-X-Mailer: git-send-email 1.7.2.5
-In-Reply-To: <1349363496.866.49.camel@zakaz.uk.xensource.com>
-References: <1349363496.866.49.camel@zakaz.uk.xensource.com>
-MIME-Version: 1.0
-Cc: Ian Campbell <ian.campbell@citrix.com>, xen-devel@lists.xen.org
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: [Xen-devel] [PATCH 12/14] arm: xen: explain the EXPERIMENTAL
-       dependency in the Kconfig help
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
----
- arch/arm/Kconfig |    8 ++++++++
- 1 files changed, 8 insertions(+), 0 deletions(-)
-
-diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
-index 3361466..b171c46 100644
---- a/arch/arm/Kconfig
-+++ b/arch/arm/Kconfig
-@@ -1907,6 +1907,14 @@ config XEN
-       help
-         Say Y if you want to run Linux in a Virtual Machine on Xen on ARM.
-+
-+        This option is EXPERIMETNAL because the hypervisor
-+        interfaces which it uses are not yet considered stable
-+        therefore backwards and forwards compatibility is not yet
-+        guaranteed.
-+
-+        If unsure, say N.
-+
- endmenu
- menu "Boot options"
--- 
-1.7.2.5
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1349363515-26190-13-git-send-email-ian.campbell@citrix.com> b/test/corpus/<1349363515-26190-13-git-send-email-ian.campbell@citrix.com>
deleted file mode 100644 (file)
index 9e4e805..0000000
+++ /dev/null
@@ -1,110 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Oct 04 16:26:10 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 04 Oct 2012 16:26:10 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TJnJQ-0007En-Jj
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 04 Oct 2012 16:26:10 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TJnFn-0001Dp-Bx; Thu, 04 Oct 2012 15:22:23 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1TJnFl-0001DB-8R
-       for xen-devel@lists.xen.org; Thu, 04 Oct 2012 15:22:21 +0000
-Received: from [85.158.137.99:65410] by server-1.bemta-3.messagelabs.com id
-       9A/40-16425-CA9AD605; Thu, 04 Oct 2012 15:22:20 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-6.tower-217.messagelabs.com!1349364138!15160393!1
-X-Originating-IP: [66.165.176.63]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyODAxODI=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 13410 invoked from network); 4 Oct 2012 15:22:19 -0000
-Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
-       by server-6.tower-217.messagelabs.com with RC4-SHA encrypted SMTP;
-       4 Oct 2012 15:22:19 -0000
-X-IronPort-AV: E=Sophos;i="4.80,535,1344211200"; d="scan'208";a="210306086"
-Received: from ftlpmailmx01.citrite.net ([10.13.107.65])
-       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       04 Oct 2012 15:22:12 +0000
-Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
-       (10.13.107.65) with Microsoft SMTP Server id 8.3.279.1;
-       Thu, 4 Oct 2012 11:22:12 -0400
-Received: from drall.uk.xensource.com ([10.80.227.107])        by
-       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
-       <ian.campbell@citrix.com>)      id 1TJn5f-0002L6-Qp;
-       Thu, 04 Oct 2012 16:11:55 +0100
-From: Ian Campbell <ian.campbell@citrix.com>
-To: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
-       Stefano Stabellini <stefano.stabellini@citrix.com>,
-       Mukesh Rathor <mukesh.rathor@oracle.com>
-Date: Thu, 4 Oct 2012 16:11:54 +0100
-Message-ID: <1349363515-26190-13-git-send-email-ian.campbell@citrix.com>
-X-Mailer: git-send-email 1.7.2.5
-In-Reply-To: <1349363496.866.49.camel@zakaz.uk.xensource.com>
-References: <1349363496.866.49.camel@zakaz.uk.xensource.com>
-MIME-Version: 1.0
-Cc: Ian Campbell <ian.campbell@citrix.com>, xen-devel@lists.xen.org
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: [Xen-devel] [PATCH 13/14] xen: use xen_pft_t in struct
-       xen_remove_from_physmap
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-4a6c2b4 "PVH basic and hader file changes" and bd3f79b "xen: Introduce
-xen_pfn_t for pfn and mfn types" passed like ships in the night.
-
-Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
----
- include/xen/interface/memory.h |    2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/include/xen/interface/memory.h b/include/xen/interface/memory.h
-index 6d74c47..d38bdc1 100644
---- a/include/xen/interface/memory.h
-+++ b/include/xen/interface/memory.h
-@@ -258,7 +258,7 @@ struct xen_remove_from_physmap {
-     domid_t domid;
-     /* GPFN of the current mapping of the page. */
--    unsigned long     gpfn;
-+    xen_pfn_t gpfn;
- };
- DEFINE_GUEST_HANDLE_STRUCT(xen_remove_from_physmap);
--- 
-1.7.2.5
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1349363515-26190-14-git-send-email-ian.campbell@citrix.com> b/test/corpus/<1349363515-26190-14-git-send-email-ian.campbell@citrix.com>
deleted file mode 100644 (file)
index 7d898f2..0000000
+++ /dev/null
@@ -1,155 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Oct 04 16:26:20 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 04 Oct 2012 16:26:20 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TJnJV-0007F7-9n
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 04 Oct 2012 16:26:20 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TJnFk-0001D4-HF; Thu, 04 Oct 2012 15:22:20 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1TJnFi-0001Cz-Nl
-       for xen-devel@lists.xen.org; Thu, 04 Oct 2012 15:22:18 +0000
-Received: from [85.158.137.99:22088] by server-12.bemta-3.messagelabs.com id
-       5B/8D-23730-9A9AD605; Thu, 04 Oct 2012 15:22:17 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-8.tower-217.messagelabs.com!1349364135!14937173!1
-X-Originating-IP: [66.165.176.89]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNzQyMDg=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 4578 invoked from network); 4 Oct 2012 15:22:16 -0000
-Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
-       by server-8.tower-217.messagelabs.com with RC4-SHA encrypted SMTP;
-       4 Oct 2012 15:22:16 -0000
-X-IronPort-AV: E=Sophos;i="4.80,535,1344211200"; d="scan'208";a="40154757"
-Received: from ftlpmailmx01.citrite.net ([10.13.107.65])
-       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       04 Oct 2012 15:22:15 +0000
-Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
-       (10.13.107.65) with Microsoft SMTP Server id 8.3.279.1;
-       Thu, 4 Oct 2012 11:22:14 -0400
-Received: from drall.uk.xensource.com ([10.80.227.107])        by
-       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
-       <ian.campbell@citrix.com>)      id 1TJn5f-0002L6-SV;
-       Thu, 04 Oct 2012 16:11:55 +0100
-From: Ian Campbell <ian.campbell@citrix.com>
-To: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
-       Stefano Stabellini <stefano.stabellini@citrix.com>,
-       Mukesh Rathor <mukesh.rathor@oracle.com>
-Date: Thu, 4 Oct 2012 16:11:55 +0100
-Message-ID: <1349363515-26190-14-git-send-email-ian.campbell@citrix.com>
-X-Mailer: git-send-email 1.7.2.5
-In-Reply-To: <1349363496.866.49.camel@zakaz.uk.xensource.com>
-References: <1349363496.866.49.camel@zakaz.uk.xensource.com>
-MIME-Version: 1.0
-Cc: Ian Campbell <ian.campbell@citrix.com>, xen-devel@lists.xen.org
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: [Xen-devel] [PATCH 14/14] arm: implement foreign mapping using
-       XENMEM_add_to_physmap_range
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-This interface is prefered for foreign mappings.
-
-Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
----
- arch/arm/xen/enlighten.c       |   14 +++++++++-----
- include/xen/interface/memory.h |   18 ++++++++++++++++++
- 2 files changed, 27 insertions(+), 5 deletions(-)
-
-diff --git a/arch/arm/xen/enlighten.c b/arch/arm/xen/enlighten.c
-index 9956af5..a9946aa 100644
---- a/arch/arm/xen/enlighten.c
-+++ b/arch/arm/xen/enlighten.c
-@@ -51,15 +51,19 @@ static int map_foreign_page(unsigned long lpfn, unsigned long fgmfn,
-                           unsigned int domid)
- {
-       int rc;
--      struct xen_add_to_physmap xatp = {
-+      struct xen_add_to_physmap_range xatp = {
-               .domid = DOMID_SELF,
--              .u.foreign_domid = domid,
-+              .foreign_domid = domid,
-+              .size = 1,
-               .space = XENMAPSPACE_gmfn_foreign,
--              .idx = fgmfn,
--              .gpfn = lpfn,
-       };
-+      unsigned long idx = fgmfn;
-+      xen_pfn_t gpfn = lpfn;
--      rc = HYPERVISOR_memory_op(XENMEM_add_to_physmap, &xatp);
-+      set_xen_guest_handle(xatp.idxs, &idx);
-+      set_xen_guest_handle(xatp.gpfns, &gpfn);
-+
-+      rc = HYPERVISOR_memory_op(XENMEM_add_to_physmap_range, &xatp);
-       if (rc) {
-               pr_warn("Failed to map pfn to mfn rc:%d pfn:%lx mfn:%lx\n",
-                       rc, lpfn, fgmfn);
-diff --git a/include/xen/interface/memory.h b/include/xen/interface/memory.h
-index d38bdc1..e5675bc 100644
---- a/include/xen/interface/memory.h
-+++ b/include/xen/interface/memory.h
-@@ -188,6 +188,24 @@ struct xen_add_to_physmap {
- };
- DEFINE_GUEST_HANDLE_STRUCT(xen_add_to_physmap);
-+#define XENMEM_add_to_physmap_range 23
-+struct xen_add_to_physmap_range {
-+    /* Which domain to change the mapping for. */
-+    domid_t domid;
-+    uint16_t space; /* => enum phys_map_space */
-+
-+    /* Number of pages to go through */
-+    uint16_t size;
-+    domid_t foreign_domid; /* IFF gmfn_foreign */
-+
-+    /* Indexes into space being mapped. */
-+    GUEST_HANDLE(ulong) idxs;
-+
-+    /* GPFN in domid where the source mapping page should appear. */
-+    GUEST_HANDLE(xen_pfn_t) gpfns;
-+};
-+DEFINE_GUEST_HANDLE_STRUCT(xen_add_to_physmap_range);
-+
- /*
-  * Translates a list of domain-specific GPFNs into MFNs. Returns a -ve error
-  * code on failure. This call only works for auto-translated guests.
--- 
-1.7.2.5
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1349363515-26190-2-git-send-email-ian.campbell@citrix.com> b/test/corpus/<1349363515-26190-2-git-send-email-ian.campbell@citrix.com>
deleted file mode 100644 (file)
index e8055d5..0000000
+++ /dev/null
@@ -1,110 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Oct 04 16:16:06 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 04 Oct 2012 16:16:06 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TJn9Z-00077b-VG
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 04 Oct 2012 16:16:06 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TJn5r-0007yI-2W; Thu, 04 Oct 2012 15:12:07 +0000
-Received: from mail27.messagelabs.com ([193.109.254.147])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1TJn5p-0007vz-D4
-       for xen-devel@lists.xen.org; Thu, 04 Oct 2012 15:12:05 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-9.tower-27.messagelabs.com!1349363516!9745618!1
-X-Originating-IP: [66.165.176.63]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyODAxODI=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 32375 invoked from network); 4 Oct 2012 15:11:58 -0000
-Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
-       by server-9.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
-       4 Oct 2012 15:11:58 -0000
-X-IronPort-AV: E=Sophos;i="4.80,535,1344211200"; d="scan'208";a="210303835"
-Received: from ftlpmailmx01.citrite.net ([10.13.107.65])
-       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       04 Oct 2012 15:11:56 +0000
-Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
-       (10.13.107.65) with Microsoft SMTP Server id 8.3.279.1;
-       Thu, 4 Oct 2012 11:11:55 -0400
-Received: from drall.uk.xensource.com ([10.80.227.107])        by
-       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
-       <ian.campbell@citrix.com>)      id 1TJn5f-0002L6-F3;
-       Thu, 04 Oct 2012 16:11:55 +0100
-From: Ian Campbell <ian.campbell@citrix.com>
-To: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
-       Stefano Stabellini <stefano.stabellini@citrix.com>,
-       Mukesh Rathor <mukesh.rathor@oracle.com>
-Date: Thu, 4 Oct 2012 16:11:43 +0100
-Message-ID: <1349363515-26190-2-git-send-email-ian.campbell@citrix.com>
-X-Mailer: git-send-email 1.7.2.5
-In-Reply-To: <1349363496.866.49.camel@zakaz.uk.xensource.com>
-References: <1349363496.866.49.camel@zakaz.uk.xensource.com>
-MIME-Version: 1.0
-Cc: Ian Campbell <ian.campbell@citrix.com>, xen-devel@lists.xen.org
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD autolearn=ham version=3.3.1
-Subject: [Xen-devel] [PATCH 02/14] xenbus: include features header.
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-Fixes:
-drivers/xen/xenbus/xenbus_probe.c: In function 'xenbus_init':
-drivers/xen/xenbus/xenbus_probe.c:760:3: error: implicit declaration of function 'xen_feature' [-Werror=implicit-function-declaration]
-drivers/xen/xenbus/xenbus_probe.c:760:19: error: 'XENFEAT_auto_translated_physmap' undeclared (first use in this function)
-drivers/xen/xenbus/xenbus_probe.c:760:19: note: each undeclared identifier is reported only once for each function it appears in
-cc1: some warnings being treated as errors
-
-Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
----
- drivers/xen/xenbus/xenbus_probe.c |    1 +
- 1 files changed, 1 insertions(+), 0 deletions(-)
-
-diff --git a/drivers/xen/xenbus/xenbus_probe.c b/drivers/xen/xenbus/xenbus_probe.c
-index b92c024..974bea0 100644
---- a/drivers/xen/xenbus/xenbus_probe.c
-+++ b/drivers/xen/xenbus/xenbus_probe.c
-@@ -56,6 +56,7 @@
- #include <xen/xenbus.h>
- #include <xen/events.h>
- #include <xen/page.h>
-+#include <xen/features.h>
- #include <xen/hvm.h>
--- 
-1.7.2.5
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1349363515-26190-3-git-send-email-ian.campbell@citrix.com> b/test/corpus/<1349363515-26190-3-git-send-email-ian.campbell@citrix.com>
deleted file mode 100644 (file)
index 3948986..0000000
+++ /dev/null
@@ -1,118 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Oct 04 16:16:09 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 04 Oct 2012 16:16:09 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TJn9g-00078H-6t
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 04 Oct 2012 16:16:09 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TJn5p-0007xJ-Nw; Thu, 04 Oct 2012 15:12:05 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1TJn5m-0007wU-Rx
-       for xen-devel@lists.xen.org; Thu, 04 Oct 2012 15:12:03 +0000
-Received: from [85.158.139.211:56918] by server-12.bemta-5.messagelabs.com id
-       CF/B9-03829-247AD605; Thu, 04 Oct 2012 15:12:02 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-8.tower-206.messagelabs.com!1349363519!21075191!1
-X-Originating-IP: [66.165.176.63]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyODAxODI=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 25304 invoked from network); 4 Oct 2012 15:12:01 -0000
-Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
-       by server-8.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
-       4 Oct 2012 15:12:01 -0000
-X-IronPort-AV: E=Sophos;i="4.80,535,1344211200"; d="scan'208";a="210303838"
-Received: from ftlpmailmx01.citrite.net ([10.13.107.65])
-       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       04 Oct 2012 15:11:56 +0000
-Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
-       (10.13.107.65) with Microsoft SMTP Server id 8.3.279.1;
-       Thu, 4 Oct 2012 11:11:55 -0400
-Received: from drall.uk.xensource.com ([10.80.227.107])        by
-       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
-       <ian.campbell@citrix.com>)      id 1TJn5f-0002L6-FW;
-       Thu, 04 Oct 2012 16:11:55 +0100
-From: Ian Campbell <ian.campbell@citrix.com>
-To: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
-       Stefano Stabellini <stefano.stabellini@citrix.com>,
-       Mukesh Rathor <mukesh.rathor@oracle.com>
-Date: Thu, 4 Oct 2012 16:11:44 +0100
-Message-ID: <1349363515-26190-3-git-send-email-ian.campbell@citrix.com>
-X-Mailer: git-send-email 1.7.2.5
-In-Reply-To: <1349363496.866.49.camel@zakaz.uk.xensource.com>
-References: <1349363496.866.49.camel@zakaz.uk.xensource.com>
-MIME-Version: 1.0
-Cc: Ian Campbell <ian.campbell@citrix.com>, xen-devel@lists.xen.org
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: [Xen-devel] [PATCH 03/14] xen events: xen_callback_vector is x86
-       specific
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
----
-Should instead move somewhere arch specific?
----
- drivers/xen/events.c |    4 ++++
- 1 files changed, 4 insertions(+), 0 deletions(-)
-
-diff --git a/drivers/xen/events.c b/drivers/xen/events.c
-index 6f55ef2..2508981 100644
---- a/drivers/xen/events.c
-+++ b/drivers/xen/events.c
-@@ -1775,6 +1775,7 @@ int xen_set_callback_via(uint64_t via)
- EXPORT_SYMBOL_GPL(xen_set_callback_via);
-+#ifdef CONFIG_X86
- /* Vector callbacks are better than PCI interrupts to receive event
-  * channel notifications because we can receive vector callbacks on any
-  * vcpu and we don't need PCI support or APIC interactions. */
-@@ -1798,6 +1799,9 @@ void xen_callback_vector(void)
-                       alloc_intr_gate(XEN_HVM_EVTCHN_CALLBACK, xen_hvm_callback_vector);
-       }
- }
-+#else
-+void xen_callback_vector(void) {}
-+#endif
- void xen_init_IRQ(void)
- {
--- 
-1.7.2.5
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1349363515-26190-4-git-send-email-ian.campbell@citrix.com> b/test/corpus/<1349363515-26190-4-git-send-email-ian.campbell@citrix.com>
deleted file mode 100644 (file)
index 6ba0ba3..0000000
+++ /dev/null
@@ -1,105 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Oct 04 16:15:54 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 04 Oct 2012 16:15:54 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TJn9Q-00076w-Bc
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 04 Oct 2012 16:15:54 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TJn5s-0007zC-SY; Thu, 04 Oct 2012 15:12:08 +0000
-Received: from mail27.messagelabs.com ([193.109.254.147])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1TJn5r-0007wM-9I
-       for xen-devel@lists.xen.org; Thu, 04 Oct 2012 15:12:07 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-9.tower-27.messagelabs.com!1349363516!9745618!3
-X-Originating-IP: [66.165.176.63]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyODAxODI=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 32764 invoked from network); 4 Oct 2012 15:12:00 -0000
-Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
-       by server-9.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
-       4 Oct 2012 15:12:00 -0000
-X-IronPort-AV: E=Sophos;i="4.80,535,1344211200"; d="scan'208";a="210303837"
-Received: from ftlpmailmx01.citrite.net ([10.13.107.65])
-       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       04 Oct 2012 15:11:56 +0000
-Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
-       (10.13.107.65) with Microsoft SMTP Server id 8.3.279.1;
-       Thu, 4 Oct 2012 11:11:55 -0400
-Received: from drall.uk.xensource.com ([10.80.227.107])        by
-       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
-       <ian.campbell@citrix.com>)      id 1TJn5f-0002L6-G5;
-       Thu, 04 Oct 2012 16:11:55 +0100
-From: Ian Campbell <ian.campbell@citrix.com>
-To: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
-       Stefano Stabellini <stefano.stabellini@citrix.com>,
-       Mukesh Rathor <mukesh.rathor@oracle.com>
-Date: Thu, 4 Oct 2012 16:11:45 +0100
-Message-ID: <1349363515-26190-4-git-send-email-ian.campbell@citrix.com>
-X-Mailer: git-send-email 1.7.2.5
-In-Reply-To: <1349363496.866.49.camel@zakaz.uk.xensource.com>
-References: <1349363496.866.49.camel@zakaz.uk.xensource.com>
-MIME-Version: 1.0
-Cc: Ian Campbell <ian.campbell@citrix.com>, xen-devel@lists.xen.org
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD autolearn=ham version=3.3.1
-Subject: [Xen-devel] [PATCH 04/14] xen: balloon: don't include e820.h
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-This breaks on !X86 and AFAICT is not required on X86 either.
-
-Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
----
- drivers/xen/balloon.c |    1 -
- 1 files changed, 0 insertions(+), 1 deletions(-)
-
-diff --git a/drivers/xen/balloon.c b/drivers/xen/balloon.c
-index 85a6917..85ef7e7 100644
---- a/drivers/xen/balloon.c
-+++ b/drivers/xen/balloon.c
-@@ -55,7 +55,6 @@
- #include <asm/pgalloc.h>
- #include <asm/pgtable.h>
- #include <asm/tlb.h>
--#include <asm/e820.h>
- #include <asm/xen/hypervisor.h>
- #include <asm/xen/hypercall.h>
--- 
-1.7.2.5
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1349363515-26190-5-git-send-email-ian.campbell@citrix.com> b/test/corpus/<1349363515-26190-5-git-send-email-ian.campbell@citrix.com>
deleted file mode 100644 (file)
index 6456f01..0000000
+++ /dev/null
@@ -1,107 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Oct 04 16:15:53 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 04 Oct 2012 16:15:53 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TJn9P-00076v-Rq
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 04 Oct 2012 16:15:53 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TJn5u-00080H-LF; Thu, 04 Oct 2012 15:12:10 +0000
-Received: from mail27.messagelabs.com ([193.109.254.147])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1TJn5t-0007wo-0E
-       for xen-devel@lists.xen.org; Thu, 04 Oct 2012 15:12:09 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-9.tower-27.messagelabs.com!1349363516!9745618!5
-X-Originating-IP: [66.165.176.63]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyODAxODI=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 469 invoked from network); 4 Oct 2012 15:12:02 -0000
-Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
-       by server-9.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
-       4 Oct 2012 15:12:02 -0000
-X-IronPort-AV: E=Sophos;i="4.80,535,1344211200"; d="scan'208";a="210303841"
-Received: from ftlpmailmx01.citrite.net ([10.13.107.65])
-       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       04 Oct 2012 15:11:56 +0000
-Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
-       (10.13.107.65) with Microsoft SMTP Server id 8.3.279.1;
-       Thu, 4 Oct 2012 11:11:55 -0400
-Received: from drall.uk.xensource.com ([10.80.227.107])        by
-       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
-       <ian.campbell@citrix.com>)      id 1TJn5f-0002L6-Ht;
-       Thu, 04 Oct 2012 16:11:55 +0100
-From: Ian Campbell <ian.campbell@citrix.com>
-To: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
-       Stefano Stabellini <stefano.stabellini@citrix.com>,
-       Mukesh Rathor <mukesh.rathor@oracle.com>
-Date: Thu, 4 Oct 2012 16:11:46 +0100
-Message-ID: <1349363515-26190-5-git-send-email-ian.campbell@citrix.com>
-X-Mailer: git-send-email 1.7.2.5
-In-Reply-To: <1349363496.866.49.camel@zakaz.uk.xensource.com>
-References: <1349363496.866.49.camel@zakaz.uk.xensource.com>
-MIME-Version: 1.0
-Cc: Ian Campbell <ian.campbell@citrix.com>, xen-devel@lists.xen.org
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD autolearn=ham version=3.3.1
-Subject: [Xen-devel] [PATCH 05/14] xen: balloon: use correct type for
-       frame_list
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-This is now a xen_pfn_t.
-
-Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
----
- drivers/xen/balloon.c |    2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/drivers/xen/balloon.c b/drivers/xen/balloon.c
-index 85ef7e7..4625560 100644
---- a/drivers/xen/balloon.c
-+++ b/drivers/xen/balloon.c
-@@ -87,7 +87,7 @@ struct balloon_stats balloon_stats;
- EXPORT_SYMBOL_GPL(balloon_stats);
- /* We increase/decrease in batches which fit in a page */
--static unsigned long frame_list[PAGE_SIZE / sizeof(unsigned long)];
-+static xen_pfn_t frame_list[PAGE_SIZE / sizeof(unsigned long)];
- #ifdef CONFIG_HIGHMEM
- #define inc_totalhigh_pages() (totalhigh_pages++)
--- 
-1.7.2.5
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1349363515-26190-6-git-send-email-ian.campbell@citrix.com> b/test/corpus/<1349363515-26190-6-git-send-email-ian.campbell@citrix.com>
deleted file mode 100644 (file)
index 6d3c4cc..0000000
+++ /dev/null
@@ -1,158 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Oct 04 16:16:07 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 04 Oct 2012 16:16:07 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TJn9d-00077w-Fv
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 04 Oct 2012 16:16:07 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TJn5q-0007xm-9D; Thu, 04 Oct 2012 15:12:06 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1TJn5n-0007wi-Mb
-       for xen-devel@lists.xen.org; Thu, 04 Oct 2012 15:12:03 +0000
-Received: from [85.158.139.211:34357] by server-7.bemta-5.messagelabs.com id
-       61/DF-00431-247AD605; Thu, 04 Oct 2012 15:12:02 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-8.tower-206.messagelabs.com!1349363519!21075191!2
-X-Originating-IP: [66.165.176.63]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyODAxODI=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 25395 invoked from network); 4 Oct 2012 15:12:02 -0000
-Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
-       by server-8.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
-       4 Oct 2012 15:12:02 -0000
-X-IronPort-AV: E=Sophos;i="4.80,535,1344211200"; d="scan'208";a="210303840"
-Received: from ftlpmailmx01.citrite.net ([10.13.107.65])
-       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       04 Oct 2012 15:11:56 +0000
-Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
-       (10.13.107.65) with Microsoft SMTP Server id 8.3.279.1;
-       Thu, 4 Oct 2012 11:11:55 -0400
-Received: from drall.uk.xensource.com ([10.80.227.107])        by
-       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
-       <ian.campbell@citrix.com>)      id 1TJn5f-0002L6-Je;
-       Thu, 04 Oct 2012 16:11:55 +0100
-From: Ian Campbell <ian.campbell@citrix.com>
-To: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
-       Stefano Stabellini <stefano.stabellini@citrix.com>,
-       Mukesh Rathor <mukesh.rathor@oracle.com>
-Date: Thu, 4 Oct 2012 16:11:47 +0100
-Message-ID: <1349363515-26190-6-git-send-email-ian.campbell@citrix.com>
-X-Mailer: git-send-email 1.7.2.5
-In-Reply-To: <1349363496.866.49.camel@zakaz.uk.xensource.com>
-References: <1349363496.866.49.camel@zakaz.uk.xensource.com>
-MIME-Version: 1.0
-Cc: Ian Campbell <ian.campbell@citrix.com>, xen-devel@lists.xen.org
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: [Xen-devel] [PATCH 06/14] arm: make p2m operations NOPs
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-This makes common code less ifdef-y and is consistent with PVHVM on
-x86.
-
-Also note that phys_to_machine_mapping_valid should take a pfn
-argument and make it do so.
-
-Add __set_phys_to_machine, make set_phys_to_machine a simple wrapper
-(on systems with non-nop implementations the outer one can allocate
-new p2m pages).
-
-Make __set_phys_to_machine check for identity mapping or invalid only.
-
-Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
----
- arch/arm/include/asm/xen/page.h |   13 ++++++++++---
- drivers/xen/balloon.c           |    2 +-
- 2 files changed, 11 insertions(+), 4 deletions(-)
-
-diff --git a/arch/arm/include/asm/xen/page.h b/arch/arm/include/asm/xen/page.h
-index 1742023..c6b9096 100644
---- a/arch/arm/include/asm/xen/page.h
-+++ b/arch/arm/include/asm/xen/page.h
-@@ -10,7 +10,7 @@
- #include <xen/interface/grant_table.h>
- #define pfn_to_mfn(pfn)                       (pfn)
--#define phys_to_machine_mapping_valid (1)
-+#define phys_to_machine_mapping_valid(pfn) (1)
- #define mfn_to_pfn(mfn)                       (mfn)
- #define mfn_to_virt(m)                        (__va(mfn_to_pfn(m) << PAGE_SHIFT))
-@@ -30,6 +30,8 @@ typedef struct xpaddr {
- #define XMADDR(x)     ((xmaddr_t) { .maddr = (x) })
- #define XPADDR(x)     ((xpaddr_t) { .paddr = (x) })
-+#define INVALID_P2M_ENTRY      (~0UL)
-+
- static inline xmaddr_t phys_to_machine(xpaddr_t phys)
- {
-       unsigned offset = phys.paddr & ~PAGE_MASK;
-@@ -74,9 +76,14 @@ static inline int m2p_remove_override(struct page *page, bool clear_pte)
-       return 0;
- }
-+static inline bool __set_phys_to_machine(unsigned long pfn, unsigned long mfn)
-+{
-+      BUG_ON(pfn != mfn && mfn != INVALID_P2M_ENTRY);
-+      return true;
-+}
-+
- static inline bool set_phys_to_machine(unsigned long pfn, unsigned long mfn)
- {
--      BUG();
--      return false;
-+      return __set_phys_to_machine(pfn, mfn);
- }
- #endif /* _ASM_ARM_XEN_PAGE_H */
-diff --git a/drivers/xen/balloon.c b/drivers/xen/balloon.c
-index 4625560..7885a19 100644
---- a/drivers/xen/balloon.c
-+++ b/drivers/xen/balloon.c
-@@ -452,7 +452,7 @@ static enum bp_state decrease_reservation(unsigned long nr_pages, gfp_t gfp)
-       /* No more mappings: invalidate P2M and add to balloon. */
-       for (i = 0; i < nr_pages; i++) {
-               pfn = mfn_to_pfn(frame_list[i]);
--              /* PVH note: following will noop for auto translated */
-+              /* The following is a noop for auto translated */
-               __set_phys_to_machine(pfn, INVALID_P2M_ENTRY);
-               balloon_append(pfn_to_page(pfn));
-       }
--- 
-1.7.2.5
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1349363515-26190-7-git-send-email-ian.campbell@citrix.com> b/test/corpus/<1349363515-26190-7-git-send-email-ian.campbell@citrix.com>
deleted file mode 100644 (file)
index 21b5658..0000000
+++ /dev/null
@@ -1,143 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Oct 04 16:16:08 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 04 Oct 2012 16:16:08 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TJn9e-00078D-5C
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 04 Oct 2012 16:16:08 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TJn5u-0007zw-9e; Thu, 04 Oct 2012 15:12:10 +0000
-Received: from mail27.messagelabs.com ([193.109.254.147])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1TJn5s-0007we-64
-       for xen-devel@lists.xen.org; Thu, 04 Oct 2012 15:12:08 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-9.tower-27.messagelabs.com!1349363516!9745618!4
-X-Originating-IP: [66.165.176.63]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyODAxODI=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 363 invoked from network); 4 Oct 2012 15:12:01 -0000
-Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
-       by server-9.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
-       4 Oct 2012 15:12:01 -0000
-X-IronPort-AV: E=Sophos;i="4.80,535,1344211200"; d="scan'208";a="210303839"
-Received: from ftlpmailmx01.citrite.net ([10.13.107.65])
-       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       04 Oct 2012 15:11:56 +0000
-Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
-       (10.13.107.65) with Microsoft SMTP Server id 8.3.279.1;
-       Thu, 4 Oct 2012 11:11:55 -0400
-Received: from drall.uk.xensource.com ([10.80.227.107])        by
-       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
-       <ian.campbell@citrix.com>)      id 1TJn5f-0002L6-LO;
-       Thu, 04 Oct 2012 16:11:55 +0100
-From: Ian Campbell <ian.campbell@citrix.com>
-To: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
-       Stefano Stabellini <stefano.stabellini@citrix.com>,
-       Mukesh Rathor <mukesh.rathor@oracle.com>
-Date: Thu, 4 Oct 2012 16:11:48 +0100
-Message-ID: <1349363515-26190-7-git-send-email-ian.campbell@citrix.com>
-X-Mailer: git-send-email 1.7.2.5
-In-Reply-To: <1349363496.866.49.camel@zakaz.uk.xensource.com>
-References: <1349363496.866.49.camel@zakaz.uk.xensource.com>
-MIME-Version: 1.0
-Cc: Ian Campbell <ian.campbell@citrix.com>, xen-devel@lists.xen.org
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD autolearn=ham version=3.3.1
-Subject: [Xen-devel] [PATCH 07/14] xen: balloon: do not update stage 1
-       pagetable for autotranslated guests
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-This is unnecessary (since the page will be removed from the p2m) and
-can be tricky if the page is in the middle of a superpage, as it is on
-ARM.
-
-Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
----
-Also effects PVH but in a benign way I think.
----
- drivers/xen/balloon.c |   23 +++--------------------
- 1 files changed, 3 insertions(+), 20 deletions(-)
-
-diff --git a/drivers/xen/balloon.c b/drivers/xen/balloon.c
-index 7885a19..1b56ae0 100644
---- a/drivers/xen/balloon.c
-+++ b/drivers/xen/balloon.c
-@@ -357,15 +357,7 @@ static enum bp_state increase_reservation(unsigned long nr_pages)
-               BUG_ON(!xen_feature(XENFEAT_auto_translated_physmap) &&
-                      phys_to_machine_mapping_valid(pfn));
--              if (xen_pv_domain() && 
--                  xen_feature(XENFEAT_auto_translated_physmap)) {
--                      /* PVH: we just need to update native page table */
--                      pte_t *ptep;
--                      unsigned int level;
--                      void *addr = __va(pfn << PAGE_SHIFT);
--                      ptep = lookup_address((unsigned long)addr, &level);
--                      set_pte(ptep, pfn_pte(pfn, PAGE_KERNEL));
--              } else
-+              if (!xen_feature(XENFEAT_auto_translated_physmap))
-                       set_phys_to_machine(pfn, frame_list[i]);
-               /* Link back into the page tables if not highmem. */
-@@ -427,21 +419,12 @@ static enum bp_state decrease_reservation(unsigned long nr_pages, gfp_t gfp)
-               scrub_page(page);
--              if (xen_pv_domain() && !PageHighMem(page)) {
--                      if (xen_feature(XENFEAT_auto_translated_physmap)) {
--                              unsigned int level;
--                              pte_t *ptep;
--                              void *addr = __va(pfn << PAGE_SHIFT);
--                              ptep = lookup_address((unsigned long)addr, 
--                                                      &level);
--                              set_pte(ptep, __pte(0));
--
--                      } else {
-+              if (xen_pv_domain() && !PageHighMem(page) &&
-+                  !xen_feature(XENFEAT_auto_translated_physmap)) {
-                               ret = HYPERVISOR_update_va_mapping(
-                                       (unsigned long)__va(pfn << PAGE_SHIFT),
-                                       __pte_ma(0), 0);
-                               BUG_ON(ret);
--                      }
-               }
-       }
--- 
-1.7.2.5
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1349363515-26190-8-git-send-email-ian.campbell@citrix.com> b/test/corpus/<1349363515-26190-8-git-send-email-ian.campbell@citrix.com>
deleted file mode 100644 (file)
index 6f1206b..0000000
+++ /dev/null
@@ -1,160 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Oct 04 16:16:00 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 04 Oct 2012 16:16:00 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TJn9X-00077H-4c
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 04 Oct 2012 16:16:00 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TJn5o-0007x2-Um; Thu, 04 Oct 2012 15:12:04 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1TJn5m-0007wR-CV
-       for xen-devel@lists.xen.org; Thu, 04 Oct 2012 15:12:02 +0000
-Received: from [85.158.137.99:61670] by server-15.bemta-3.messagelabs.com id
-       7F/9A-11584-147AD605; Thu, 04 Oct 2012 15:12:01 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-9.tower-217.messagelabs.com!1349363517!17137968!2
-X-Originating-IP: [66.165.176.89]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNzQyMDg=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 31930 invoked from network); 4 Oct 2012 15:12:00 -0000
-Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
-       by server-9.tower-217.messagelabs.com with RC4-SHA encrypted SMTP;
-       4 Oct 2012 15:12:00 -0000
-X-IronPort-AV: E=Sophos;i="4.80,535,1344211200"; d="scan'208";a="40152203"
-Received: from ftlpmailmx01.citrite.net ([10.13.107.65])
-       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       04 Oct 2012 15:11:56 +0000
-Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
-       (10.13.107.65) with Microsoft SMTP Server id 8.3.279.1;
-       Thu, 4 Oct 2012 11:11:56 -0400
-Received: from drall.uk.xensource.com ([10.80.227.107])        by
-       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
-       <ian.campbell@citrix.com>)      id 1TJn5f-0002L6-Ls;
-       Thu, 04 Oct 2012 16:11:55 +0100
-From: Ian Campbell <ian.campbell@citrix.com>
-To: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
-       Stefano Stabellini <stefano.stabellini@citrix.com>,
-       Mukesh Rathor <mukesh.rathor@oracle.com>
-Date: Thu, 4 Oct 2012 16:11:49 +0100
-Message-ID: <1349363515-26190-8-git-send-email-ian.campbell@citrix.com>
-X-Mailer: git-send-email 1.7.2.5
-In-Reply-To: <1349363496.866.49.camel@zakaz.uk.xensource.com>
-References: <1349363496.866.49.camel@zakaz.uk.xensource.com>
-MIME-Version: 1.0
-Cc: Ian Campbell <ian.campbell@citrix.com>, xen-devel@lists.xen.org
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: [Xen-devel] [PATCH 08/14] xen: balloon: allow PVMMU interfaces to
-       be compiled out
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-The ARM platform has no concept of PVMMU and therefor no
-HYPERVISOR_update_va_mapping et al. Allow this code to be compiled out
-when not required.
-
-Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
----
- arch/x86/xen/Kconfig  |    1 +
- drivers/xen/Kconfig   |    3 +++
- drivers/xen/balloon.c |    4 ++++
- 3 files changed, 8 insertions(+), 0 deletions(-)
-
-diff --git a/arch/x86/xen/Kconfig b/arch/x86/xen/Kconfig
-index fdce49c..c31ee77 100644
---- a/arch/x86/xen/Kconfig
-+++ b/arch/x86/xen/Kconfig
-@@ -6,6 +6,7 @@ config XEN
-       bool "Xen guest support"
-       select PARAVIRT
-       select PARAVIRT_CLOCK
-+      select XEN_HAVE_PVMMU
-       depends on X86_64 || (X86_32 && X86_PAE && !X86_VISWS)
-       depends on X86_CMPXCHG && X86_TSC
-       help
-diff --git a/drivers/xen/Kconfig b/drivers/xen/Kconfig
-index d4dffcd..9c00652 100644
---- a/drivers/xen/Kconfig
-+++ b/drivers/xen/Kconfig
-@@ -204,4 +204,7 @@ config XEN_MCE_LOG
-         Allow kernel fetching MCE error from Xen platform and
-         converting it into Linux mcelog format for mcelog tools
-+config XEN_HAVE_PVMMU
-+       bool
-+
- endmenu
-diff --git a/drivers/xen/balloon.c b/drivers/xen/balloon.c
-index 1b56ae0..cfe47dae 100644
---- a/drivers/xen/balloon.c
-+++ b/drivers/xen/balloon.c
-@@ -360,6 +360,7 @@ static enum bp_state increase_reservation(unsigned long nr_pages)
-               if (!xen_feature(XENFEAT_auto_translated_physmap))
-                       set_phys_to_machine(pfn, frame_list[i]);
-+#ifdef CONFIG_XEN_HAVE_PVMMU
-               /* Link back into the page tables if not highmem. */
-               if (xen_pv_domain() && !PageHighMem(page) && 
-                   !xen_feature(XENFEAT_auto_translated_physmap)) {
-@@ -371,6 +372,7 @@ static enum bp_state increase_reservation(unsigned long nr_pages)
-                               0);
-                       BUG_ON(ret);
-               }
-+#endif
-               /* Relinquish the page back to the allocator. */
-               ClearPageReserved(page);
-@@ -419,6 +421,7 @@ static enum bp_state decrease_reservation(unsigned long nr_pages, gfp_t gfp)
-               scrub_page(page);
-+#ifdef CONFIG_XEN_HAVE_PVMMU
-               if (xen_pv_domain() && !PageHighMem(page) &&
-                   !xen_feature(XENFEAT_auto_translated_physmap)) {
-                               ret = HYPERVISOR_update_va_mapping(
-@@ -426,6 +429,7 @@ static enum bp_state decrease_reservation(unsigned long nr_pages, gfp_t gfp)
-                                       __pte_ma(0), 0);
-                               BUG_ON(ret);
-               }
-+#endif
-       }
-       /* Ensure that ballooned highmem pages don't have kmaps. */
--- 
-1.7.2.5
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1349363515-26190-9-git-send-email-ian.campbell@citrix.com> b/test/corpus/<1349363515-26190-9-git-send-email-ian.campbell@citrix.com>
deleted file mode 100644 (file)
index 72c0908..0000000
+++ /dev/null
@@ -1,192 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Oct 04 16:15:59 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 04 Oct 2012 16:15:59 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TJn9W-00076z-2Q
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 04 Oct 2012 16:15:59 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TJn5p-0007xB-AJ; Thu, 04 Oct 2012 15:12:05 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1TJn5m-0007wP-CO
-       for xen-devel@lists.xen.org; Thu, 04 Oct 2012 15:12:02 +0000
-Received: from [85.158.137.99:42621] by server-6.bemta-3.messagelabs.com id
-       54/14-11085-047AD605; Thu, 04 Oct 2012 15:12:00 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-9.tower-217.messagelabs.com!1349363517!17137968!1
-X-Originating-IP: [66.165.176.89]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNzQyMDg=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 31796 invoked from network); 4 Oct 2012 15:11:59 -0000
-Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
-       by server-9.tower-217.messagelabs.com with RC4-SHA encrypted SMTP;
-       4 Oct 2012 15:11:59 -0000
-X-IronPort-AV: E=Sophos;i="4.80,535,1344211200"; d="scan'208";a="40152204"
-Received: from ftlpmailmx01.citrite.net ([10.13.107.65])
-       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       04 Oct 2012 15:11:56 +0000
-Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
-       (10.13.107.65) with Microsoft SMTP Server id 8.3.279.1;
-       Thu, 4 Oct 2012 11:11:56 -0400
-Received: from drall.uk.xensource.com ([10.80.227.107])        by
-       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
-       <ian.campbell@citrix.com>)      id 1TJn5f-0002L6-Ng;
-       Thu, 04 Oct 2012 16:11:55 +0100
-From: Ian Campbell <ian.campbell@citrix.com>
-To: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
-       Stefano Stabellini <stefano.stabellini@citrix.com>,
-       Mukesh Rathor <mukesh.rathor@oracle.com>
-Date: Thu, 4 Oct 2012 16:11:50 +0100
-Message-ID: <1349363515-26190-9-git-send-email-ian.campbell@citrix.com>
-X-Mailer: git-send-email 1.7.2.5
-In-Reply-To: <1349363496.866.49.camel@zakaz.uk.xensource.com>
-References: <1349363496.866.49.camel@zakaz.uk.xensource.com>
-MIME-Version: 1.0
-Cc: Ian Campbell <ian.campbell@citrix.com>, xen-devel@lists.xen.org
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: [Xen-devel] [PATCH 09/14] xen: arm: enable balloon driver
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-Drop the *_xenballloned_pages duplicates since these are now supplied
-by the balloon code.
-
-Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
----
- arch/arm/xen/enlighten.c |   23 +++++------------------
- drivers/xen/Makefile     |    4 ++--
- drivers/xen/privcmd.c    |    9 ++++-----
- 3 files changed, 11 insertions(+), 25 deletions(-)
-
-diff --git a/arch/arm/xen/enlighten.c b/arch/arm/xen/enlighten.c
-index 59bcb96..ba5cc13 100644
---- a/arch/arm/xen/enlighten.c
-+++ b/arch/arm/xen/enlighten.c
-@@ -8,6 +8,7 @@
- #include <xen/features.h>
- #include <xen/platform_pci.h>
- #include <xen/xenbus.h>
-+#include <xen/page.h>
- #include <asm/xen/hypervisor.h>
- #include <asm/xen/hypercall.h>
- #include <linux/interrupt.h>
-@@ -29,6 +30,10 @@ struct shared_info *HYPERVISOR_shared_info = (void *)&xen_dummy_shared_info;
- DEFINE_PER_CPU(struct vcpu_info *, xen_vcpu);
-+/* These are unused until we support booting "pre-ballooned" */
-+unsigned long xen_released_pages;
-+struct xen_memory_region xen_extra_mem[XEN_EXTRA_MEM_MAX_REGIONS] __initdata;
-+
- /* TODO: to be removed */
- __read_mostly int xen_have_vector_callback;
- EXPORT_SYMBOL_GPL(xen_have_vector_callback);
-@@ -148,21 +153,3 @@ static int __init xen_init_events(void)
-       return 0;
- }
- postcore_initcall(xen_init_events);
--
--/* XXX: only until balloon is properly working */
--int alloc_xenballooned_pages(int nr_pages, struct page **pages, bool highmem)
--{
--      *pages = alloc_pages(highmem ? GFP_HIGHUSER : GFP_KERNEL,
--                      get_order(nr_pages));
--      if (*pages == NULL)
--              return -ENOMEM;
--      return 0;
--}
--EXPORT_SYMBOL_GPL(alloc_xenballooned_pages);
--
--void free_xenballooned_pages(int nr_pages, struct page **pages)
--{
--      kfree(*pages);
--      *pages = NULL;
--}
--EXPORT_SYMBOL_GPL(free_xenballooned_pages);
-diff --git a/drivers/xen/Makefile b/drivers/xen/Makefile
-index 275abfc..9a7896f 100644
---- a/drivers/xen/Makefile
-+++ b/drivers/xen/Makefile
-@@ -1,8 +1,8 @@
- ifneq ($(CONFIG_ARM),y)
--obj-y += manage.o balloon.o
-+obj-y += manage.o
- obj-$(CONFIG_HOTPLUG_CPU)             += cpu_hotplug.o
- endif
--obj-y += grant-table.o features.o events.o
-+obj-y += grant-table.o features.o events.o balloon.o
- obj-y += xenbus/
- nostackp := $(call cc-option, -fno-stack-protector)
-diff --git a/drivers/xen/privcmd.c b/drivers/xen/privcmd.c
-index 1010bf7..bf4d62a 100644
---- a/drivers/xen/privcmd.c
-+++ b/drivers/xen/privcmd.c
-@@ -200,8 +200,8 @@ static long privcmd_ioctl_mmap(void __user *udata)
-       if (!xen_initial_domain())
-               return -EPERM;
--      /* PVH: TBD/FIXME. For now we only support privcmd_ioctl_mmap_batch */
--      if (xen_pv_domain() && xen_feature(XENFEAT_auto_translated_physmap))
-+      /* We only support privcmd_ioctl_mmap_batch for auto translated. */
-+      if (xen_feature(XENFEAT_auto_translated_physmap))
-               return -ENOSYS;
-       if (copy_from_user(&mmapcmd, udata, sizeof(mmapcmd)))
-@@ -413,7 +413,7 @@ static long privcmd_ioctl_mmap_batch(void __user *udata, int version)
-               up_write(&mm->mmap_sem);
-               goto out;
-       }
--      if (xen_pv_domain() && xen_feature(XENFEAT_auto_translated_physmap)) {
-+      if (xen_feature(XENFEAT_auto_translated_physmap)) {
-               if ((ret = pvh_privcmd_resv_pfns(vma, m.num))) {
-                       up_write(&mm->mmap_sem);
-                       goto out;
-@@ -492,8 +492,7 @@ static void privcmd_close(struct vm_area_struct *vma)
-       int count;
-       struct xen_pvh_pfn_info *pvhp = vma ? vma->vm_private_data : NULL;
--      if (!xen_pv_domain()  || !pvhp ||
--          !xen_feature(XENFEAT_auto_translated_physmap))
-+      if (!pvhp || !xen_feature(XENFEAT_auto_translated_physmap))
-               return;
-       count = xen_unmap_domain_mfn_range(vma, pvhp);
--- 
-1.7.2.5
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1349365718.866.63.camel@zakaz.uk.xensource.com> b/test/corpus/<1349365718.866.63.camel@zakaz.uk.xensource.com>
deleted file mode 100644 (file)
index dcaceca..0000000
+++ /dev/null
@@ -1,280 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Oct 04 16:53:43 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 04 Oct 2012 16:53:43 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TJnk0-0007LL-UH
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 04 Oct 2012 16:53:43 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TJnfp-0002WM-75; Thu, 04 Oct 2012 15:49:17 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1TJnfn-0002WH-IQ
-       for xen-devel@lists.xen.org; Thu, 04 Oct 2012 15:49:15 +0000
-Received: from [85.158.143.99:4496] by server-2.bemta-4.messagelabs.com id
-       F2/B3-06610-AFFAD605; Thu, 04 Oct 2012 15:49:14 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-6.tower-216.messagelabs.com!1349365754!25877864!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTMxNjA=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 4052 invoked from network); 4 Oct 2012 15:49:14 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-6.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
-       4 Oct 2012 15:49:14 -0000
-X-IronPort-AV: E=Sophos;i="4.80,535,1344211200"; d="scan'208";a="14945955"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       04 Oct 2012 15:48:39 +0000
-Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.279.1; Thu, 4 Oct 2012
-       16:48:39 +0100
-Message-ID: <1349365718.866.63.camel@zakaz.uk.xensource.com>
-From: Ian Campbell <Ian.Campbell@citrix.com>
-To: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-Date: Thu, 4 Oct 2012 16:48:38 +0100
-In-Reply-To: <20121004152459.GC11426@phenom.dumpdata.com>
-References: <1349363496.866.49.camel@zakaz.uk.xensource.com>
-       <1349363515-26190-11-git-send-email-ian.campbell@citrix.com>
-       <20121004152459.GC11426@phenom.dumpdata.com>
-Organization: Citrix Systems, Inc.
-X-Mailer: Evolution 3.4.3-1 
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 11/14] arm: implement remap interfaces
- needed for privcmd mappings.
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Thu, 2012-10-04 at 16:24 +0100, Konrad Rzeszutek Wilk wrote:
-> On Thu, Oct 04, 2012 at 04:11:52PM +0100, Ian Campbell wrote:
-> > Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
-> > ---
-> >  arch/arm/xen/enlighten.c |   94 +++++++++++++++++++++++++++++++++++++++++++++-
-> >  1 files changed, 92 insertions(+), 2 deletions(-)
-> > 
-> > diff --git a/arch/arm/xen/enlighten.c b/arch/arm/xen/enlighten.c
-> > index ba5cc13..9956af5 100644
-> > --- a/arch/arm/xen/enlighten.c
-> > +++ b/arch/arm/xen/enlighten.c
-> > @@ -9,6 +9,7 @@
-> >  #include <xen/platform_pci.h>
-> >  #include <xen/xenbus.h>
-> >  #include <xen/page.h>
-> > +#include <xen/xen-ops.h>
-> >  #include <asm/xen/hypervisor.h>
-> >  #include <asm/xen/hypercall.h>
-> >  #include <linux/interrupt.h>
-> > @@ -18,6 +19,8 @@
-> >  #include <linux/of_irq.h>
-> >  #include <linux/of_address.h>
-> >  
-> > +#include <linux/mm.h>
-> > +
-> >  struct start_info _xen_start_info;
-> >  struct start_info *xen_start_info = &_xen_start_info;
-> >  EXPORT_SYMBOL_GPL(xen_start_info);
-> > @@ -43,15 +46,102 @@ EXPORT_SYMBOL_GPL(xen_platform_pci_unplug);
-> >  
-> >  static __read_mostly int xen_events_irq = -1;
-> >  
-> > +/* map fgmfn of domid to lpfn in the current domain */
-> 
-> <laughs> Say that really fast a couple of times :-)
-> 
-> Any way we can explain it a bit more of what each acronym means?
-
-The names come from the x86 PVH version, which has the comment:
-/* Map foreign gmfn, fgmfn, to local pfn, lpfn. This for the user space 
- * creating new guest on PVH dom0 and needs to map domU pages. 
- */
-Is that preferable? (modulo removing the PVH bit)
-
-> 
-> > +static int map_foreign_page(unsigned long lpfn, unsigned long fgmfn,
-> > +                      unsigned int domid)
-> > +{
-> > +  int rc;
-> > +  struct xen_add_to_physmap xatp = {
-> > +          .domid = DOMID_SELF,
-> > +          .u.foreign_domid = domid,
-> > +          .space = XENMAPSPACE_gmfn_foreign,
-> > +          .idx = fgmfn,
-> > +          .gpfn = lpfn,
-> > +  };
-> > +
-> > +  rc = HYPERVISOR_memory_op(XENMEM_add_to_physmap, &xatp);
-> > +  if (rc) {
-> > +          pr_warn("Failed to map pfn to mfn rc:%d pfn:%lx mfn:%lx\n",
-> 
-> How about 'Failed to map pfn (0x%lx) to mfn (0x%lx), rc: %d\n" ?
-
-Sure, need to slip foreign domid in there somewhere now I look at it.
-
-x86 PVH has basically the same print BTW.
-
-> 
-> > +                  rc, lpfn, fgmfn);
-> > +          return 1;
-> > +  }
-> > +  return 0;
-> > +}
-> > +
-> > +struct remap_data {
-> > +  unsigned long fgmfn; /* foreign domain's gmfn */
-> 
-> Shouldn't this be called now 'xen_pfn_t' or something.
-
-xen_pfn_t is needed at the hypervisor interface layer, I'm not so sure
-about kernel internal use. I guess it can't hurt?
-
-> 
-> > +  pgprot_t prot;
-> > +  domid_t  domid;
-> > +  struct vm_area_struct *vma;
-> > +  struct xen_remap_mfn_info *info;
-> > +};
-> > +
-> > +static int remap_pte_fn(pte_t *ptep, pgtable_t token, unsigned long addr,
-> > +                  void *data)
-> > +{
-> > +  struct remap_data *info = data;
-> > +  struct xen_remap_mfn_info *savp = info->info;
-> > +  struct page *page = savp->pi_paga[savp->pi_next_todo++];
-> > +  unsigned long pfn = page_to_pfn(page);
-> > +  pte_t pte = pfn_pte(pfn, info->prot);
-> > +
-> > +  if (map_foreign_page(pfn, info->fgmfn, info->domid))
-> > +          return -EFAULT;
-> > +  set_pte_at(info->vma->vm_mm, addr, ptep, pte);
-> > +
-> > +  return 0;
-> > +}
-> > +
-> >  int xen_remap_domain_mfn_range(struct vm_area_struct *vma,
-> >                           unsigned long addr,
-> >                           unsigned long mfn, int nr,
-> > -                         pgprot_t prot, unsigned domid)
-> > +                         pgprot_t prot, unsigned domid,
-> > +                         struct xen_remap_mfn_info *info)
-> >  {
-> > -  return -ENOSYS;
-> > +  int err;
-> > +  struct remap_data data;
-> > +
-> > +  /* TBD: Batching, current sole caller only does page at a time */
-> > +  if (nr > 1)
-> 
-> Lets also wrap it with WARN_ON?
-
-ACK, needs doing on x86 PVH too then.
-
-> 
-> > +          return -EINVAL;
-> > +
-> > +  data.fgmfn = mfn;
-> > +  data.prot = prot;
-> > +  data.domid = domid;
-> > +  data.vma = vma;
-> > +  data.info = info;
-> > +  err = apply_to_page_range(vma->vm_mm, addr, nr << PAGE_SHIFT,
-> > +                            remap_pte_fn, &data);
-> > +  return err;
-> >  }
-> >  EXPORT_SYMBOL_GPL(xen_remap_domain_mfn_range);
-> >  
-> > +/* Returns: Number of pages unmapped */
-> > +int xen_unmap_domain_mfn_range(struct vm_area_struct *vma,
-> > +                         struct xen_remap_mfn_info *info)
-> > +{
-> > +  int count = 0;
-> > +
-> > +  while (info->pi_next_todo--) {
-> > +          struct xen_remove_from_physmap xrp;
-> > +          unsigned long rc, pfn;
-> > +
-> > +          pfn = page_to_pfn(info->pi_paga[info->pi_next_todo]);
-> 
-> Won't this miss the first pi_next_todo? You did the 'pi_next_todo--' so
-> will the compiler decrement it here in this operation or will it do
-> when it gets to the 'do' logic of the loop?
-
-It's a post decrement so if pi_next_todo == 1 then the expression in the
-while will see 1 (true) but inside the loop we see zero. So we end up
-processing elements N-1..0 of the array which is correct.
-
-This is the same as on x86 PVH, so if I'm wrong then that is too.
-
-I mentioned in the PVH thread this morning that I think this interface
-should drop pi_next_todo and have a simple for loop based on the number
-of pages between vm_start...vm_end here.
-
-> 
-> > +
-> > +          xrp.domid = DOMID_SELF;
-> > +          xrp.gpfn = pfn;
-> > +          rc = HYPERVISOR_memory_op(XENMEM_remove_from_physmap, &xrp);
-> 
-> 'rc' is 'unsigned long'. Is that right? You don't want it to be 'int'?
-
-Hypercalls return unsigned long these days, I think it was considered a
-mistake that some didn't. See <25744:47080c965937> in the hypervisor
-tree. 
-
-Oh, wait, we are both wrong -- it's a long. I'll fix that...
-
-> 
-> > +          if (rc) {
-> > +                  pr_warn("Failed to unmap pfn:%lx rc:%ld\n",
-> > +                          pfn, rc);
-> > +                  return count;
-> > +          }
-> > +          count++;
-> > +  }
-> > +  return count;
-> > +}
-> > +EXPORT_SYMBOL_GPL(xen_unmap_domain_mfn_range);
-> > +
-> >  /*
-> >   * see Documentation/devicetree/bindings/arm/xen.txt for the
-> >   * documentation of the Xen Device Tree format.
-> > -- 
-> > 1.7.2.5
-
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1349428386.20946.15.camel@zakaz.uk.xensource.com> b/test/corpus/<1349428386.20946.15.camel@zakaz.uk.xensource.com>
deleted file mode 100644 (file)
index 24f5381..0000000
+++ /dev/null
@@ -1,118 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Oct 05 10:17:19 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 05 Oct 2012 10:17:19 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TK420-0006wc-Rt
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 05 Oct 2012 10:17:19 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TK3y3-00087C-PN; Fri, 05 Oct 2012 09:13:11 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1TK3y2-000877-Dr
-       for xen-devel@lists.xensource.com; Fri, 05 Oct 2012 09:13:10 +0000
-Received: from [85.158.143.35:33122] by server-3.bemta-4.messagelabs.com id
-       27/4C-10986-5A4AE605; Fri, 05 Oct 2012 09:13:09 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-14.tower-21.messagelabs.com!1349428388!17579550!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTMxNTE=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 23120 invoked from network); 5 Oct 2012 09:13:08 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-14.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
-       5 Oct 2012 09:13:08 -0000
-X-IronPort-AV: E=Sophos;i="4.80,541,1344211200"; d="scan'208";a="14957628"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       05 Oct 2012 09:13:08 +0000
-Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.279.1; Fri, 5 Oct 2012
-       10:13:08 +0100
-Message-ID: <1349428386.20946.15.camel@zakaz.uk.xensource.com>
-From: Ian Campbell <Ian.Campbell@citrix.com>
-To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-Date: Fri, 5 Oct 2012 10:13:06 +0100
-In-Reply-To: <1345633688-31684-4-git-send-email-stefano.stabellini@eu.citrix.com>
-References: <alpine.DEB.2.02.1208221159560.15568@kaball.uk.xensource.com>
-       <1345633688-31684-4-git-send-email-stefano.stabellini@eu.citrix.com>
-Organization: Citrix Systems, Inc.
-X-Mailer: Evolution 3.4.3-1 
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
-       "Tim \(Xen.org\)" <tim@xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="utf-8"
-Content-Transfer-Encoding: base64
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH v4 4/6] xen: introduce XEN_GUEST_HANDLE_PARAM
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-T24gV2VkLCAyMDEyLTA4LTIyIGF0IDEyOjA4ICswMTAwLCBTdGVmYW5vIFN0YWJlbGxpbmkgd3Jv
-dGU6Cj4gZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL2FzbS1hcm0vZ3Vlc3RfYWNjZXNzLmggYi94
-ZW4vaW5jbHVkZS9hc20tYXJtL2d1ZXN0X2FjY2Vzcy5oCj4gaW5kZXggMGZjZWFlNi4uNTY4NjIx
-NyAxMDA2NDQKPiAtLS0gYS94ZW4vaW5jbHVkZS9hc20tYXJtL2d1ZXN0X2FjY2Vzcy5oCj4gKysr
-IGIveGVuL2luY2x1ZGUvYXNtLWFybS9ndWVzdF9hY2Nlc3MuaAo+IEBAIC0yNywxNiArMjcsNDAg
-QEAgdW5zaWduZWQgbG9uZyByYXdfY2xlYXJfZ3Vlc3Qodm9pZCAqdG8sIHVuc2lnbmVkIGxlbik7
-Cj4gICNkZWZpbmUgZ3Vlc3RfaGFuZGxlX2FkZF9vZmZzZXQoaG5kLCBucikgKChobmQpLnAgKz0g
-KG5yKSkKPiAgI2RlZmluZSBndWVzdF9oYW5kbGVfc3VidHJhY3Rfb2Zmc2V0KGhuZCwgbnIpICgo
-aG5kKS5wIC09IChucikpCj4gIAo+IC0vKiBDYXN0IGEgZ3Vlc3QgaGFuZGxlIHRvIHRoZSBzcGVj
-aWZpZWQgdHlwZSBvZiBoYW5kbGUuICovCj4gKy8qIENhc3QgYSBndWVzdCBoYW5kbGUgKGVpdGhl
-ciBYRU5fR1VFU1RfSEFORExFIG9yIFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0pCj4gKyAqIHRvIHRo
-ZSBzcGVjaWZpZWQgdHlwZSBvZiBYRU5fR1VFU1RfSEFORExFX1BBUkFNLiAqLwo+ICAjZGVmaW5l
-IGd1ZXN0X2hhbmRsZV9jYXN0KGhuZCwgdHlwZSkgKHsgICAgICAgICBcCj4gICAgICB0eXBlICpf
-eCA9IChobmQpLnA7ICAgICAgICAgICAgICAgICAgICAgICAgIFwKPiAtICAgIChYRU5fR1VFU1Rf
-SEFORExFKHR5cGUpKSB7IF94IH07ICAgICAgICAgICAgXAo+ICsgICAgKFhFTl9HVUVTVF9IQU5E
-TEVfUEFSQU0odHlwZSkpIHsgX3ggfTsgICAgICAgICAgICBcClsuLi5dCj4gICNkZWZpbmUgZ3Vl
-c3RfaGFuZGxlX2Zyb21fcHRyKHB0ciwgdHlwZSkgICAgICAgIFwKPiAtICAgICgoWEVOX0dVRVNU
-X0hBTkRMRSh0eXBlKSkgeyAodHlwZSAqKXB0ciB9KQo+ICsgICAgKChYRU5fR1VFU1RfSEFORExF
-X1BBUkFNKHR5cGUpKSB7ICh0eXBlICopcHRyIH0pCj4gICNkZWZpbmUgY29uc3RfZ3Vlc3RfaGFu
-ZGxlX2Zyb21fcHRyKHB0ciwgdHlwZSkgIFwKPiAtICAgICgoWEVOX0dVRVNUX0hBTkRMRShjb25z
-dF8jI3R5cGUpKSB7IChjb25zdCB0eXBlICopcHRyIH0pCj4gKyAgICAoKFhFTl9HVUVTVF9IQU5E
-TEVfUEFSQU0oY29uc3RfIyN0eXBlKSkgeyAoY29uc3QgdHlwZSAqKXB0ciB9KQoKVGhlc2UgbGl0
-dGxlIGJpdHMgY2F1c2UgYnVpbGQgYnJlYWthZ2UgaWYgeW91IG9ubHkgYXBwbHkgdG8gdGhpcyBw
-b2ludAppbiB0aGUgc2VyaWVzIChpLmUuIGJyZWFrcyBiaXNlY3RhYmlsaXR5KToKICAgICAgICBn
-cmFudF90YWJsZS5jOiBJbiBmdW5jdGlvbiDigJhkb19ncmFudF90YWJsZV9vcOKAmToKICAgICAg
-ICBncmFudF90YWJsZS5jOjI0NDk6MTM6IGVycm9yOiBpbnZhbGlkIGluaXRpYWxpemVyCiAgICAg
-ICAgZ3JhbnRfdGFibGUuYzoyNDU2OjE3OiBlcnJvcjogaW5jb21wYXRpYmxlIHR5cGVzIHdoZW4g
-YXNzaWduaW5nIHRvIHR5cGUg4oCYX19ndWVzdF9oYW5kbGVfNjRfdm9pZOKAmSBmcm9tIHR5cGUg
-4oCYX19ndWVzdF9oYW5kbGVfdm9pZOKAmQogICAgICAgIFtsb3RzIG1vcmUgb2YgdGhlIHNhbWVd
-CgpJIHRoaW5rIHRoaXMgaXMgYmVjYXVzZSB5b3UgaGF2ZSBjaGFuZ2VkIGd1ZXN0X2hhbmRsZV9j
-YXN0IGJ1dCB5b3UKaGF2ZW4ndCB5ZXQgY2hhbmdlZCB0aGUgdHlwZSBvZiB0aGUgcGFyYW1ldGVy
-LgoKSSBoYXZlbid0IHRyaWVkIHg4NiBidXQgSSBjYW4ndCBzZWUgd2h5IHRoZSBzYW1lIHByb2Js
-ZW0gd291bGRuJ3QgZXhpc3QKdGhlcmUgYWxzby4KClRoZSBvYnZpb3VzIGFuc3dlciBpcyB0byBt
-b3ZlIHRoZXNlIGh1bmtzIGludG8gdGhlIG5leHQgcGF0Y2gsIGJ1dCBJCnRoaW5rIGJlY2F1c2Ug
-b2YgdGhlIHNwbGl0IGludG8gcGF0Y2hlcyA1LzYgYW5kIDYvNiB0aGlzIHdpbGwgc3RpbGwKY2F1
-c2UgcHJvYmxlbXMuIEknbGwgdHJ5IGl0IHRob3VnaCBidXQgSSBzdXNwZWN0IHdlIG1pZ2h0IGVu
-ZCB1cCBoYXZpbmcKdG8gc3F1YXNoIDUrNiB0b2dldGhlcj8KCkFsdGVybmF0aXZlbHkgSSd2ZSBi
-cm9rZW4gc29tZXRoaW5nIGR1cmluZyByZWJhc2luZyBhbmQgdGhpcyB1c2VkIHRvCndvcmsgZmlu
-ZSBhbmQgeW91IGtub3cgd2hhdCB0byBkbyA7LSkuLi4KCklhbi4KCgpfX19fX19fX19fX19fX19f
-X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhl
-bi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHA6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=
-
diff --git a/test/corpus/<1349429005.20946.20.camel@zakaz.uk.xensource.com> b/test/corpus/<1349429005.20946.20.camel@zakaz.uk.xensource.com>
deleted file mode 100644 (file)
index da1348b..0000000
+++ /dev/null
@@ -1,129 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Oct 05 10:26:55 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 05 Oct 2012 10:26:55 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TK4BJ-0006xs-Fw
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 05 Oct 2012 10:26:55 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TK482-0008MP-CX; Fri, 05 Oct 2012 09:23:30 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1TK480-0008MH-7B
-       for Xen-devel@lists.xensource.com; Fri, 05 Oct 2012 09:23:28 +0000
-Received: from [85.158.138.51:17421] by server-16.bemta-3.messagelabs.com id
-       DE/D0-04167-F07AE605; Fri, 05 Oct 2012 09:23:27 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-9.tower-174.messagelabs.com!1349429006!31516419!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTMxNTE=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 6591 invoked from network); 5 Oct 2012 09:23:27 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-9.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
-       5 Oct 2012 09:23:27 -0000
-X-IronPort-AV: E=Sophos;i="4.80,541,1344211200"; d="scan'208";a="14957877"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       05 Oct 2012 09:23:26 +0000
-Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.279.1; Fri, 5 Oct 2012
-       10:23:26 +0100
-Message-ID: <1349429005.20946.20.camel@zakaz.uk.xensource.com>
-From: Ian Campbell <Ian.Campbell@citrix.com>
-To: Mukesh Rathor <mukesh.rathor@oracle.com>
-Date: Fri, 5 Oct 2012 10:23:25 +0100
-In-Reply-To: <20121004183528.060416a0@mantra.us.oracle.com>
-References: <20120921121659.5a723de9@mantra.us.oracle.com>
-       <alpine.DEB.2.02.1209241257440.29232@kaball.uk.xensource.com>
-       <20120924154335.097d3fb9@mantra.us.oracle.com>
-       <alpine.DEB.2.02.1209251054140.29232@kaball.uk.xensource.com>
-       <20120925180416.0137d61a@mantra.us.oracle.com>
-       <alpine.DEB.2.02.1209261225340.29232@kaball.uk.xensource.com>
-       <20121002183619.70734b7a@mantra.us.oracle.com>
-       <20121002190323.2e16f6ff@mantra.us.oracle.com>
-       <alpine.DEB.2.02.1210031242180.29232@kaball.uk.xensource.com>
-       <1349265914.650.136.camel@zakaz.uk.xensource.com>
-       <20121004183528.060416a0@mantra.us.oracle.com>
-Organization: Citrix Systems, Inc.
-X-Mailer: Evolution 3.4.3-1 
-MIME-Version: 1.0
-Cc: "Xen-devel@lists.xensource.com" <Xen-devel@lists.xensource.com>, Konrad
-       Rzeszutek Wilk <konrad.wilk@oracle.com>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH v1 3/8]: PVH startup changes (enlighten.c)
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Fri, 2012-10-05 at 02:35 +0100, Mukesh Rathor wrote:
-> On Wed, 3 Oct 2012 13:05:14 +0100
-> Ian Campbell <Ian.Campbell@citrix.com> wrote:
-> 
-> > On Wed, 2012-10-03 at 12:58 +0100, Stefano Stabellini wrote:
-> > > > So for now, how about, lets go
-> > > > with what I've got. I'll make a note, and when I do xen patch,
-> > > > I'll figure it out, and would be a very small linux patch. I want
-> > > > to get linux patch in soon before the window closes.
-> > > 
-> > > We can leave page special as it is for now with very little
-> > > consequences, because it is not part of the interface with Xen.
-> > > However this is part of the interface, so whatever we choose here
-> > > is going to be hard to change later on.
-> > 
-> > I suggested that until we have seen and reviewed the hypervisor side
-> > patches this guest side functionality all needs to be under an option
-> > which has CONFIG_EXPERIMENTAL as a dependency and a comment explaining
-> > that the ABI is not fixed yet, similar to what we did for the ARM
-> > port.
-> 
-> Konrad is going to keep the changes in his tree and not upstream for
-> couple months while we go thru the xen patches. This would be a big
-> help for me as I won't have to constantly refresh linux tree.
-
-Ah, ok, that sounds like a good plan.
-
-In the case where the ARM stuff I have built on this becomes ripe first
-would it be OK with you guys if I were to cherry pick the relevant bits
-of the PVH stuff into a series to go in sooner?
-
-> I hope we can get some baseline in linux and xen soon.
-
-Likewise!
-
-Ian.
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1349437645.20946.74.camel@zakaz.uk.xensource.com> b/test/corpus/<1349437645.20946.74.camel@zakaz.uk.xensource.com>
deleted file mode 100644 (file)
index 475f727..0000000
+++ /dev/null
@@ -1,129 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Oct 05 12:51:32 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 05 Oct 2012 12:51:32 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TK6RC-0007Te-N8
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 05 Oct 2012 12:51:32 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TK6NN-0007uf-Eb; Fri, 05 Oct 2012 11:47:29 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1TK6NM-0007uT-0J
-       for xen-devel@lists.xen.org; Fri, 05 Oct 2012 11:47:28 +0000
-Received: from [85.158.137.99:57082] by server-2.bemta-3.messagelabs.com id
-       97/12-16514-FC8CE605; Fri, 05 Oct 2012 11:47:27 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-6.tower-217.messagelabs.com!1349437646!15269990!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTMxNTE=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 22802 invoked from network); 5 Oct 2012 11:47:26 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-6.tower-217.messagelabs.com with RC4-SHA encrypted SMTP;
-       5 Oct 2012 11:47:26 -0000
-X-IronPort-AV: E=Sophos;i="4.80,541,1344211200"; d="scan'208";a="14961383"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       05 Oct 2012 11:47:26 +0000
-Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.279.1; Fri, 5 Oct 2012
-       12:47:26 +0100
-Message-ID: <1349437645.20946.74.camel@zakaz.uk.xensource.com>
-From: Ian Campbell <Ian.Campbell@citrix.com>
-To: Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-Date: Fri, 5 Oct 2012 12:47:25 +0100
-In-Reply-To: <alpine.DEB.2.02.1210051239100.29232@kaball.uk.xensource.com>
-References: <1349363496.866.49.camel@zakaz.uk.xensource.com>
-       <1349363515-26190-3-git-send-email-ian.campbell@citrix.com>
-       <alpine.DEB.2.02.1210051239100.29232@kaball.uk.xensource.com>
-Organization: Citrix Systems, Inc.
-X-Mailer: Evolution 3.4.3-1 
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
-       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 03/14] xen events: xen_callback_vector is
-       x86 specific
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Fri, 2012-10-05 at 12:43 +0100, Stefano Stabellini wrote:
-> On Thu, 4 Oct 2012, Ian Campbell wrote:
-> > Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
-> > ---
-> > Should instead move somewhere arch specific?
-> 
-> This shouldn't be needed: it should be already protected by
-> CONFIG_XEN_PVHVM (that is x86 specific).
-
-Mukesh removed that ifdef because PVH also wants this function.
-
-Ian.
-
-> 
-> 
-> >  drivers/xen/events.c |    4 ++++
-> >  1 files changed, 4 insertions(+), 0 deletions(-)
-> > 
-> > diff --git a/drivers/xen/events.c b/drivers/xen/events.c
-> > index 6f55ef2..2508981 100644
-> > --- a/drivers/xen/events.c
-> > +++ b/drivers/xen/events.c
-> > @@ -1775,6 +1775,7 @@ int xen_set_callback_via(uint64_t via)
-> >  EXPORT_SYMBOL_GPL(xen_set_callback_via);
-> >  
-> >  
-> > +#ifdef CONFIG_X86
-> >  /* Vector callbacks are better than PCI interrupts to receive event
-> >   * channel notifications because we can receive vector callbacks on any
-> >   * vcpu and we don't need PCI support or APIC interactions. */
-> > @@ -1798,6 +1799,9 @@ void xen_callback_vector(void)
-> >                    alloc_intr_gate(XEN_HVM_EVTCHN_CALLBACK, xen_hvm_callback_vector);
-> >    }
-> >  }
-> > +#else
-> > +void xen_callback_vector(void) {}
-> > +#endif
-> >  
-> >  void xen_init_IRQ(void)
-> >  {
-> > -- 
-> > 1.7.2.5
-> > 
-
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1349440338.20946.83.camel@zakaz.uk.xensource.com> b/test/corpus/<1349440338.20946.83.camel@zakaz.uk.xensource.com>
deleted file mode 100644 (file)
index be10d07..0000000
+++ /dev/null
@@ -1,133 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Oct 05 13:36:52 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 05 Oct 2012 13:36:52 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TK797-0007gX-Hy
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 05 Oct 2012 13:36:51 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TK75a-0002EC-85; Fri, 05 Oct 2012 12:33:10 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1TK75Y-0002Dv-9c
-       for xen-devel@lists.xen.org; Fri, 05 Oct 2012 12:33:08 +0000
-Received: from [85.158.143.35:53062] by server-3.bemta-4.messagelabs.com id
-       B6/77-10986-283DE605; Fri, 05 Oct 2012 12:33:06 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-15.tower-21.messagelabs.com!1349440353!13842036!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTMxNTE=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 31288 invoked from network); 5 Oct 2012 12:32:33 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-15.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
-       5 Oct 2012 12:32:33 -0000
-X-IronPort-AV: E=Sophos;i="4.80,541,1344211200"; d="scan'208";a="14962633"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       05 Oct 2012 12:32:19 +0000
-Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.279.1; Fri, 5 Oct 2012
-       13:32:19 +0100
-Message-ID: <1349440338.20946.83.camel@zakaz.uk.xensource.com>
-From: Ian Campbell <Ian.Campbell@citrix.com>
-To: Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-Date: Fri, 5 Oct 2012 13:32:18 +0100
-In-Reply-To: <alpine.DEB.2.02.1210051243480.29232@kaball.uk.xensource.com>
-References: <1349363496.866.49.camel@zakaz.uk.xensource.com>
-       <1349363515-26190-5-git-send-email-ian.campbell@citrix.com>
-       <alpine.DEB.2.02.1210051243480.29232@kaball.uk.xensource.com>
-Organization: Citrix Systems, Inc.
-X-Mailer: Evolution 3.4.3-1 
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
-       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 05/14] xen: balloon: use correct type for
-       frame_list
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Fri, 2012-10-05 at 12:48 +0100, Stefano Stabellini wrote:
-> On Thu, 4 Oct 2012, Ian Campbell wrote:
-> > This is now a xen_pfn_t.
-> > 
-> > Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
-> > ---
-> >  drivers/xen/balloon.c |    2 +-
-> >  1 files changed, 1 insertions(+), 1 deletions(-)
-> > 
-> > diff --git a/drivers/xen/balloon.c b/drivers/xen/balloon.c
-> > index 85ef7e7..4625560 100644
-> > --- a/drivers/xen/balloon.c
-> > +++ b/drivers/xen/balloon.c
-> > @@ -87,7 +87,7 @@ struct balloon_stats balloon_stats;
-> >  EXPORT_SYMBOL_GPL(balloon_stats);
-> >  
-> >  /* We increase/decrease in batches which fit in a page */
-> > -static unsigned long frame_list[PAGE_SIZE / sizeof(unsigned long)];
-> > +static xen_pfn_t frame_list[PAGE_SIZE / sizeof(unsigned long)];
-> >  
-> >  #ifdef CONFIG_HIGHMEM
-> >  #define inc_totalhigh_pages() (totalhigh_pages++)
->  
-> While I think is a good change, frame_list[i] is used as an argument to
-> set_phys_to_machine, that takes an unsigned long. Also unsigned long are
-> assigned to members of the array via page_to_pfn.
-> I think that we should take care of these cases, either introducing
-> explicit casts or changing the argument types.
-
-frame_list is used at the Xen interface, and so the pfn type has to be
-sized for the largest pfn the hypervisor will use (aka xen_pfn_t). Those
-unsigned longs are really "linux_pfn_t", that is they are the size of
-the largest pfn the guest is itself prepared to deal with.
-
-So long as sizeof(unsigned long) <= sizeof(xen_pfn_t) (which it is) then
-we are ok.
-
-If and when Linux wants to use pfn's which are not unsigned longs then
-the uses of unsigned long will need to be audited (globally, not just
-here) to become whatever type Linux then defines to contain a pfn. In
-the absence of that type being defined in the core Linux code I think it
-is correct for us to keep using unsigned long in those contexts.
-
-Konrad, now I think about it the same argument applies to the discussion
-of fgmfn in <20121004155400.GA12128@phenom.dumpdata.com>. So I'll leave
-that as unsigned long as well.
-
-Ian.
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1349443792.20946.97.camel@zakaz.uk.xensource.com> b/test/corpus/<1349443792.20946.97.camel@zakaz.uk.xensource.com>
deleted file mode 100644 (file)
index deb55b4..0000000
+++ /dev/null
@@ -1,119 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Oct 05 14:33:31 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 05 Oct 2012 14:33:31 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TK81t-0007xQ-Ua
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 05 Oct 2012 14:33:31 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TK7yX-0005HN-FU; Fri, 05 Oct 2012 13:29:57 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1TK7yV-0005HH-BI
-       for xen-devel@lists.xen.org; Fri, 05 Oct 2012 13:29:55 +0000
-Received: from [85.158.138.51:18312] by server-13.bemta-3.messagelabs.com id
-       A9/67-28885-2D0EE605; Fri, 05 Oct 2012 13:29:54 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-8.tower-174.messagelabs.com!1349443793!33195536!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTMxNTE=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 6117 invoked from network); 5 Oct 2012 13:29:54 -0000
-Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-8.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
-       5 Oct 2012 13:29:54 -0000
-X-IronPort-AV: E=Sophos;i="4.80,541,1344211200"; d="scan'208";a="14964430"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       05 Oct 2012 13:29:53 +0000
-Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.279.1; Fri, 5 Oct 2012
-       14:29:53 +0100
-Message-ID: <1349443792.20946.97.camel@zakaz.uk.xensource.com>
-From: Ian Campbell <Ian.Campbell@citrix.com>
-To: Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-Date: Fri, 5 Oct 2012 14:29:52 +0100
-In-Reply-To: <alpine.DEB.2.02.1210051420260.29232@kaball.uk.xensource.com>
-References: <1349363496.866.49.camel@zakaz.uk.xensource.com>
-       <1349363515-26190-12-git-send-email-ian.campbell@citrix.com>
-       <alpine.DEB.2.02.1210051420260.29232@kaball.uk.xensource.com>
-Organization: Citrix Systems, Inc.
-X-Mailer: Evolution 3.4.3-1 
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
-       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 12/14] arm: xen: explain the EXPERIMENTAL
- dependency in the Kconfig help
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Fri, 2012-10-05 at 14:21 +0100, Stefano Stabellini wrote:
-> On Thu, 4 Oct 2012, Ian Campbell wrote:
-> > Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
-> > ---
-> >  arch/arm/Kconfig |    8 ++++++++
-> >  1 files changed, 8 insertions(+), 0 deletions(-)
-> > 
-> > diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
-> > index 3361466..b171c46 100644
-> > --- a/arch/arm/Kconfig
-> > +++ b/arch/arm/Kconfig
-> > @@ -1907,6 +1907,14 @@ config XEN
-> >    help
-> >      Say Y if you want to run Linux in a Virtual Machine on Xen on ARM.
-> >  
-> > +
-> > +    This option is EXPERIMETNAL because the hypervisor
->                          ^ EXPERIMENTAL
-
-Fixed, thanks.
-
-> > +    interfaces which it uses are not yet considered stable
-> > +    therefore backwards and forwards compatibility is not yet
-> > +    guaranteed.
-> > +
-> > +    If unsure, say N.
-> > +
-> >  endmenu
-> >  
-> >  menu "Boot options"
-> > -- 
-> > 1.7.2.5
-> > 
-
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1349443982.20946.100.camel@zakaz.uk.xensource.com> b/test/corpus/<1349443982.20946.100.camel@zakaz.uk.xensource.com>
deleted file mode 100644 (file)
index 3b05f83..0000000
+++ /dev/null
@@ -1,172 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Oct 05 14:37:16 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 05 Oct 2012 14:37:16 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TK85W-0007yl-Mw
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 05 Oct 2012 14:37:16 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TK81c-0005Ty-2w; Fri, 05 Oct 2012 13:33:08 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1TK81Z-0005Tb-Re
-       for xen-devel@lists.xen.org; Fri, 05 Oct 2012 13:33:06 +0000
-Received: from [85.158.139.211:41222] by server-12.bemta-5.messagelabs.com id
-       9B/51-19095-091EE605; Fri, 05 Oct 2012 13:33:04 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-10.tower-206.messagelabs.com!1349443984!21185981!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTMxNTE=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 514 invoked from network); 5 Oct 2012 13:33:04 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-10.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
-       5 Oct 2012 13:33:04 -0000
-X-IronPort-AV: E=Sophos;i="4.80,541,1344211200"; d="scan'208";a="14964552"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       05 Oct 2012 13:33:04 +0000
-Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.279.1; Fri, 5 Oct 2012
-       14:33:04 +0100
-Message-ID: <1349443982.20946.100.camel@zakaz.uk.xensource.com>
-From: Ian Campbell <Ian.Campbell@citrix.com>
-To: Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-Date: Fri, 5 Oct 2012 14:33:02 +0100
-In-Reply-To: <alpine.DEB.2.02.1210051419030.29232@kaball.uk.xensource.com>
-References: <1349363496.866.49.camel@zakaz.uk.xensource.com>
-       <1349363515-26190-8-git-send-email-ian.campbell@citrix.com>
-       <alpine.DEB.2.02.1210051419030.29232@kaball.uk.xensource.com>
-Organization: Citrix Systems, Inc.
-X-Mailer: Evolution 3.4.3-1 
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
-       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 08/14] xen: balloon: allow PVMMU interfaces
- to be compiled out
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Fri, 2012-10-05 at 14:19 +0100, Stefano Stabellini wrote:
-> On Thu, 4 Oct 2012, Ian Campbell wrote:
-> > The ARM platform has no concept of PVMMU and therefor no
-> > HYPERVISOR_update_va_mapping et al. Allow this code to be compiled out
-> > when not required.
-> > 
-> > Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
-> 
-> I am unsure whether it is worth a new symbol and two ifdef's
-
-ARM doesn't compile without it, since HYPERVISOR_update_va_mapping
-doesn't exist. Do you have a preferable alternative?
-
-I'm not sure how much more of this sort of thing there will be as we
-enable more features on the ARM port.
-
-> 
-> 
-> >  arch/x86/xen/Kconfig  |    1 +
-> >  drivers/xen/Kconfig   |    3 +++
-> >  drivers/xen/balloon.c |    4 ++++
-> >  3 files changed, 8 insertions(+), 0 deletions(-)
-> > 
-> > diff --git a/arch/x86/xen/Kconfig b/arch/x86/xen/Kconfig
-> > index fdce49c..c31ee77 100644
-> > --- a/arch/x86/xen/Kconfig
-> > +++ b/arch/x86/xen/Kconfig
-> > @@ -6,6 +6,7 @@ config XEN
-> >    bool "Xen guest support"
-> >    select PARAVIRT
-> >    select PARAVIRT_CLOCK
-> > +  select XEN_HAVE_PVMMU
-> >    depends on X86_64 || (X86_32 && X86_PAE && !X86_VISWS)
-> >    depends on X86_CMPXCHG && X86_TSC
-> >    help
-> > diff --git a/drivers/xen/Kconfig b/drivers/xen/Kconfig
-> > index d4dffcd..9c00652 100644
-> > --- a/drivers/xen/Kconfig
-> > +++ b/drivers/xen/Kconfig
-> > @@ -204,4 +204,7 @@ config XEN_MCE_LOG
-> >      Allow kernel fetching MCE error from Xen platform and
-> >      converting it into Linux mcelog format for mcelog tools
-> >  
-> > +config XEN_HAVE_PVMMU
-> > +       bool
-> > +
-> >  endmenu
-> > diff --git a/drivers/xen/balloon.c b/drivers/xen/balloon.c
-> > index 1b56ae0..cfe47dae 100644
-> > --- a/drivers/xen/balloon.c
-> > +++ b/drivers/xen/balloon.c
-> > @@ -360,6 +360,7 @@ static enum bp_state increase_reservation(unsigned long nr_pages)
-> >            if (!xen_feature(XENFEAT_auto_translated_physmap))
-> >                    set_phys_to_machine(pfn, frame_list[i]);
-> >  
-> > +#ifdef CONFIG_XEN_HAVE_PVMMU
-> >            /* Link back into the page tables if not highmem. */
-> >            if (xen_pv_domain() && !PageHighMem(page) && 
-> >                !xen_feature(XENFEAT_auto_translated_physmap)) {
-> > @@ -371,6 +372,7 @@ static enum bp_state increase_reservation(unsigned long nr_pages)
-> >                            0);
-> >                    BUG_ON(ret);
-> >            }
-> > +#endif
-> >  
-> >            /* Relinquish the page back to the allocator. */
-> >            ClearPageReserved(page);
-> > @@ -419,6 +421,7 @@ static enum bp_state decrease_reservation(unsigned long nr_pages, gfp_t gfp)
-> >  
-> >            scrub_page(page);
-> >  
-> > +#ifdef CONFIG_XEN_HAVE_PVMMU
-> >            if (xen_pv_domain() && !PageHighMem(page) &&
-> >                !xen_feature(XENFEAT_auto_translated_physmap)) {
-> >                            ret = HYPERVISOR_update_va_mapping(
-> > @@ -426,6 +429,7 @@ static enum bp_state decrease_reservation(unsigned long nr_pages, gfp_t gfp)
-> >                                    __pte_ma(0), 0);
-> >                            BUG_ON(ret);
-> >            }
-> > +#endif
-> >    }
-> >  
-> >    /* Ensure that ballooned highmem pages don't have kmaps. */
-> > -- 
-> > 1.7.2.5
-> > 
-
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1349444369.20946.101.camel@zakaz.uk.xensource.com> b/test/corpus/<1349444369.20946.101.camel@zakaz.uk.xensource.com>
deleted file mode 100644 (file)
index c25850d..0000000
+++ /dev/null
@@ -1,93 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Oct 05 14:43:51 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 05 Oct 2012 14:43:51 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TK8Bw-00080N-VP
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 05 Oct 2012 14:43:51 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TK883-0005yk-84; Fri, 05 Oct 2012 13:39:47 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1TK881-0005yZ-Oq
-       for xen-devel@lists.xen.org; Fri, 05 Oct 2012 13:39:45 +0000
-Received: from [85.158.137.99:45648] by server-3.bemta-3.messagelabs.com id
-       05/4F-25962-023EE605; Fri, 05 Oct 2012 13:39:44 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-2.tower-217.messagelabs.com!1349444384!20306475!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTMxNTE=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 4483 invoked from network); 5 Oct 2012 13:39:44 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-2.tower-217.messagelabs.com with RC4-SHA encrypted SMTP;
-       5 Oct 2012 13:39:44 -0000
-X-IronPort-AV: E=Sophos;i="4.80,541,1344211200"; d="scan'208";a="14964738"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       05 Oct 2012 13:39:31 +0000
-Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.279.1; Fri, 5 Oct 2012
-       14:39:31 +0100
-Message-ID: <1349444369.20946.101.camel@zakaz.uk.xensource.com>
-From: Ian Campbell <Ian.Campbell@citrix.com>
-To: Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-Date: Fri, 5 Oct 2012 14:39:29 +0100
-In-Reply-To: <alpine.DEB.2.02.1210051437110.29232@kaball.uk.xensource.com>
-References: <1349363496.866.49.camel@zakaz.uk.xensource.com>
-       <1349363515-26190-10-git-send-email-ian.campbell@citrix.com>
-       <alpine.DEB.2.02.1210051437110.29232@kaball.uk.xensource.com>
-Organization: Citrix Systems, Inc.
-X-Mailer: Evolution 3.4.3-1 
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
-       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 10/14] privcmd: refer to autotranslate not
- PVH in arch interfaces / comments.
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Fri, 2012-10-05 at 14:37 +0100, Stefano Stabellini wrote:
-> On Thu, 4 Oct 2012, Ian Campbell wrote:
-> > PVH is X86 specific while this functionality is also used on ARM.
-> 
-> I really think that this should be merged with the orignal PVH patch
-
-Agreed, I should have said as much.
-
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1349444550.20946.102.camel@zakaz.uk.xensource.com> b/test/corpus/<1349444550.20946.102.camel@zakaz.uk.xensource.com>
deleted file mode 100644 (file)
index 2981ed5..0000000
+++ /dev/null
@@ -1,101 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Oct 05 14:46:09 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 05 Oct 2012 14:46:09 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TK8E7-00080u-Me
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 05 Oct 2012 14:46:09 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TK8Ap-0006Fv-VW; Fri, 05 Oct 2012 13:42:39 +0000
-Received: from mail27.messagelabs.com ([193.109.254.147])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1TK8Ao-0006FP-A9
-       for xen-devel@lists.xen.org; Fri, 05 Oct 2012 13:42:38 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-7.tower-27.messagelabs.com!1349444552!5908529!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTMxNTE=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 32588 invoked from network); 5 Oct 2012 13:42:32 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-7.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
-       5 Oct 2012 13:42:32 -0000
-X-IronPort-AV: E=Sophos;i="4.80,541,1344211200"; d="scan'208";a="14964826"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       05 Oct 2012 13:42:32 +0000
-Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.279.1; Fri, 5 Oct 2012
-       14:42:32 +0100
-Message-ID: <1349444550.20946.102.camel@zakaz.uk.xensource.com>
-From: Ian Campbell <Ian.Campbell@citrix.com>
-To: Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-Date: Fri, 5 Oct 2012 14:42:30 +0100
-In-Reply-To: <alpine.DEB.2.02.1210051432010.29232@kaball.uk.xensource.com>
-References: <1349363496.866.49.camel@zakaz.uk.xensource.com>
-       <1349363515-26190-11-git-send-email-ian.campbell@citrix.com>
-       <alpine.DEB.2.02.1210051432010.29232@kaball.uk.xensource.com>
-Organization: Citrix Systems, Inc.
-X-Mailer: Evolution 3.4.3-1 
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
-       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 11/14] arm: implement remap interfaces
- needed for privcmd mappings.
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Fri, 2012-10-05 at 14:36 +0100, Stefano Stabellini wrote:
-[... snip dozens of pointless lines -- please trim your quotes...]
-
-> > -  return -ENOSYS;
-> > +  int err;
-> > +  struct remap_data data;
-> > +
-> > +  /* TBD: Batching, current sole caller only does page at a time */
-> > +  if (nr > 1)
-> > +          return -EINVAL;
-> 
-> It looks like that this implementation of xen_remap_domain_mfn_range is
-> capable of handling nr > 1, so why this return -EINVAL?
-
-Hrm, yes. I think I just blindly copied that from the pvh
-implementation.
-
-[...]
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1349445097.20946.108.camel@zakaz.uk.xensource.com> b/test/corpus/<1349445097.20946.108.camel@zakaz.uk.xensource.com>
deleted file mode 100644 (file)
index b237d1e..0000000
+++ /dev/null
@@ -1,174 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Oct 05 14:55:41 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 05 Oct 2012 14:55:41 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TK8NL-00083X-WD
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 05 Oct 2012 14:55:41 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TK8JZ-0006zw-Rj; Fri, 05 Oct 2012 13:51:41 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1TK8JX-0006zm-Vj
-       for xen-devel@lists.xen.org; Fri, 05 Oct 2012 13:51:40 +0000
-Received: from [85.158.143.99:17861] by server-2.bemta-4.messagelabs.com id
-       8D/1F-06610-BE5EE605; Fri, 05 Oct 2012 13:51:39 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-5.tower-216.messagelabs.com!1349445098!32670671!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTMxNTE=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 29717 invoked from network); 5 Oct 2012 13:51:38 -0000
-Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-5.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
-       5 Oct 2012 13:51:38 -0000
-X-IronPort-AV: E=Sophos;i="4.80,541,1344211200"; d="scan'208";a="14965096"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       05 Oct 2012 13:51:38 +0000
-Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.279.1; Fri, 5 Oct 2012
-       14:51:38 +0100
-Message-ID: <1349445097.20946.108.camel@zakaz.uk.xensource.com>
-From: Ian Campbell <Ian.Campbell@citrix.com>
-To: Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-Date: Fri, 5 Oct 2012 14:51:37 +0100
-In-Reply-To: <alpine.DEB.2.02.1210051430200.29232@kaball.uk.xensource.com>
-References: <1349363496.866.49.camel@zakaz.uk.xensource.com>
-       <1349363515-26190-14-git-send-email-ian.campbell@citrix.com>
-       <alpine.DEB.2.02.1210051430200.29232@kaball.uk.xensource.com>
-Organization: Citrix Systems, Inc.
-X-Mailer: Evolution 3.4.3-1 
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
-       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 14/14] arm: implement foreign mapping using
- XENMEM_add_to_physmap_range
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Fri, 2012-10-05 at 14:36 +0100, Stefano Stabellini wrote:
-> On Thu, 4 Oct 2012, Ian Campbell wrote:
-> > This interface is prefered for foreign mappings.
-> 
-> So now we have XENMEM_add_to_physmap_range but we only have
-> XENMEM_remove_from_physmap. Would it be worth to introduce a
-> XENMEM_remove_from_physmap_range too?
-
-Worth considering but the need isn't so urgent since you wouldn't need
-to coexist with XENMAPSPACE_gmfn_range's size parameter and the
-foreign_domid one isn't needed either.
-
-I wonder if XENMEM_add_to_physmap_range ought to reject
-XENMAPSPACE_gmfn_range, just for the sake of sanity.
-
-> 
-> > Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
-> > ---
-> >  arch/arm/xen/enlighten.c       |   14 +++++++++-----
-> >  include/xen/interface/memory.h |   18 ++++++++++++++++++
-> >  2 files changed, 27 insertions(+), 5 deletions(-)
-> > 
-> > diff --git a/arch/arm/xen/enlighten.c b/arch/arm/xen/enlighten.c
-> > index 9956af5..a9946aa 100644
-> > --- a/arch/arm/xen/enlighten.c
-> > +++ b/arch/arm/xen/enlighten.c
-> > @@ -51,15 +51,19 @@ static int map_foreign_page(unsigned long lpfn, unsigned long fgmfn,
-> >                        unsigned int domid)
-> >  {
-> >    int rc;
-> > -  struct xen_add_to_physmap xatp = {
-> > +  struct xen_add_to_physmap_range xatp = {
-> >            .domid = DOMID_SELF,
-> > -          .u.foreign_domid = domid,
-> > +          .foreign_domid = domid,
-> > +          .size = 1,
-> >            .space = XENMAPSPACE_gmfn_foreign,
-> > -          .idx = fgmfn,
-> > -          .gpfn = lpfn,
-> >    };
-> > +  unsigned long idx = fgmfn;
-> > +  xen_pfn_t gpfn = lpfn;
-> >  
-> > -  rc = HYPERVISOR_memory_op(XENMEM_add_to_physmap, &xatp);
-> > +  set_xen_guest_handle(xatp.idxs, &idx);
-> > +  set_xen_guest_handle(xatp.gpfns, &gpfn);
-> > +
-> > +  rc = HYPERVISOR_memory_op(XENMEM_add_to_physmap_range, &xatp);
-> >    if (rc) {
-> >            pr_warn("Failed to map pfn to mfn rc:%d pfn:%lx mfn:%lx\n",
-> >                    rc, lpfn, fgmfn);
-> 
-> Wouldn't it make sense to call XENMEM_add_to_physmap_range only once for
-> the whole range, rather than once per page?
-> 
-> 
-> > diff --git a/include/xen/interface/memory.h b/include/xen/interface/memory.h
-> > index d38bdc1..e5675bc 100644
-> > --- a/include/xen/interface/memory.h
-> > +++ b/include/xen/interface/memory.h
-> > @@ -188,6 +188,24 @@ struct xen_add_to_physmap {
-> >  };
-> >  DEFINE_GUEST_HANDLE_STRUCT(xen_add_to_physmap);
-> >  
-> > +#define XENMEM_add_to_physmap_range 23
-> > +struct xen_add_to_physmap_range {
-> > +    /* Which domain to change the mapping for. */
-> > +    domid_t domid;
-> > +    uint16_t space; /* => enum phys_map_space */
-> > +
-> > +    /* Number of pages to go through */
-> > +    uint16_t size;
-> > +    domid_t foreign_domid; /* IFF gmfn_foreign */
-> > +
-> > +    /* Indexes into space being mapped. */
-> > +    GUEST_HANDLE(ulong) idxs;
-> > +
-> > +    /* GPFN in domid where the source mapping page should appear. */
-> > +    GUEST_HANDLE(xen_pfn_t) gpfns;
-> > +};
-> > +DEFINE_GUEST_HANDLE_STRUCT(xen_add_to_physmap_range);
-> > +
-> >  /*
-> >   * Translates a list of domain-specific GPFNs into MFNs. Returns a -ve error
-> >   * code on failure. This call only works for auto-translated guests.
-> > -- 
-> > 1.7.2.5
-> > 
-
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1349447625.20946.130.camel@zakaz.uk.xensource.com> b/test/corpus/<1349447625.20946.130.camel@zakaz.uk.xensource.com>
deleted file mode 100644 (file)
index 960e8a2..0000000
+++ /dev/null
@@ -1,175 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Oct 05 15:36:55 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 05 Oct 2012 15:36:55 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TK91F-0008Ju-Up
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 05 Oct 2012 15:36:55 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TK8yR-0003ew-7n; Fri, 05 Oct 2012 14:33:55 +0000
-Received: from mail27.messagelabs.com ([193.109.254.147])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1TK8yP-0003cX-Df
-       for xen-devel@lists.xen.org; Fri, 05 Oct 2012 14:33:53 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-15.tower-27.messagelabs.com!1349447626!6616545!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTMxNTE=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 18197 invoked from network); 5 Oct 2012 14:33:47 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-15.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
-       5 Oct 2012 14:33:47 -0000
-X-IronPort-AV: E=Sophos;i="4.80,541,1344211200"; d="scan'208";a="14966489"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       05 Oct 2012 14:33:46 +0000
-Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.279.1; Fri, 5 Oct 2012
-       15:33:46 +0100
-Message-ID: <1349447625.20946.130.camel@zakaz.uk.xensource.com>
-From: Ian Campbell <Ian.Campbell@citrix.com>
-To: Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-Date: Fri, 5 Oct 2012 15:33:45 +0100
-In-Reply-To: <alpine.DEB.2.02.1210051438340.29232@kaball.uk.xensource.com>
-References: <1349363496.866.49.camel@zakaz.uk.xensource.com>
-       <1349363515-26190-5-git-send-email-ian.campbell@citrix.com>
-       <alpine.DEB.2.02.1210051243480.29232@kaball.uk.xensource.com>
-       <1349440338.20946.83.camel@zakaz.uk.xensource.com>
-       <alpine.DEB.2.02.1210051438340.29232@kaball.uk.xensource.com>
-Organization: Citrix Systems, Inc.
-X-Mailer: Evolution 3.4.3-1 
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
-       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 05/14] xen: balloon: use correct type for
-       frame_list
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Fri, 2012-10-05 at 15:02 +0100, Stefano Stabellini wrote:
-> On Fri, 5 Oct 2012, Ian Campbell wrote:
-> > On Fri, 2012-10-05 at 12:48 +0100, Stefano Stabellini wrote:
-> > > On Thu, 4 Oct 2012, Ian Campbell wrote:
-> > > > This is now a xen_pfn_t.
-> > > > 
-> > > > Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
-> > > > ---
-> > > >  drivers/xen/balloon.c |    2 +-
-> > > >  1 files changed, 1 insertions(+), 1 deletions(-)
-> > > > 
-> > > > diff --git a/drivers/xen/balloon.c b/drivers/xen/balloon.c
-> > > > index 85ef7e7..4625560 100644
-> > > > --- a/drivers/xen/balloon.c
-> > > > +++ b/drivers/xen/balloon.c
-> > > > @@ -87,7 +87,7 @@ struct balloon_stats balloon_stats;
-> > > >  EXPORT_SYMBOL_GPL(balloon_stats);
-> > > >  
-> > > >  /* We increase/decrease in batches which fit in a page */
-> > > > -static unsigned long frame_list[PAGE_SIZE / sizeof(unsigned long)];
-> > > > +static xen_pfn_t frame_list[PAGE_SIZE / sizeof(unsigned long)];
-> > > >  
-> > > >  #ifdef CONFIG_HIGHMEM
-> > > >  #define inc_totalhigh_pages() (totalhigh_pages++)
-> > >  
-> > > While I think is a good change, frame_list[i] is used as an argument to
-> > > set_phys_to_machine, that takes an unsigned long. Also unsigned long are
-> > > assigned to members of the array via page_to_pfn.
-> > > I think that we should take care of these cases, either introducing
-> > > explicit casts or changing the argument types.
-> > 
-> > frame_list is used at the Xen interface, and so the pfn type has to be
-> > sized for the largest pfn the hypervisor will use (aka xen_pfn_t). Those
-> > unsigned longs are really "linux_pfn_t", that is they are the size of
-> > the largest pfn the guest is itself prepared to deal with.
-> > 
-> > So long as sizeof(unsigned long) <= sizeof(xen_pfn_t) (which it is) then
-> > we are ok.
-> 
-> I think that we are playing with fire here.
-> 
-> Let's imaging a future where physical addresses are actually 64 bit.
-> Let's imaging that Xen is supporting them perfectly fine and returns to
-> this balloon driver a pfn > ULONG_MAX (already possible on ARM).
-
-It might give us an *mfn* larger than ULONG_MAX but the guest would
-never see that, because ARM guests (and x86 PVHVM, PVH ones etc) never
-see real mfns, they are hypervisor internal with HAP and the interfaces
-are all in terms of pfns.
-
-The issue you describe could only happen for a 32 bit HAP guest if the
-guests was given > 16GB (2^(32+PAGE_SHIFT) bytes) of RAM and it was
-explicitly trying to balloon memory over that limit, but in order for
-that to even be possible it would already need to have made its concept
-of a pfn larger than 32 bits.
-
-In theory there might be a problem for a PV guest, but in the only case
-which matters:
-        arch/x86/include/asm/xen/interface.h:typedef unsigned long xen_pfn_t;
-and furthermore 32 bit PV guests are limited to 160G of MFN space (which
-is less than 2^32) for other reasons already.
-
-> That is a perfectly valid value for Xen to give us and we should be able
-> to handle it. If we are not we should return an error.
-> With this change we would trimmer the pfn returned by Xen to 32 bit so we
-> would actually have an incorrect behaviour instead.
-> 
-> If we assume sizeof(unsigned long) <= sizeof(xen_pfn_t), we only need a
-> macro like this:
-> 
-> #define LINUX_PFN_MAX ULONG_MAX
-> #define linux_pfn_t unsigned long
-> #define xen_pfn_to_linux_pfn(pfn)    ({BUG_ON(pfn > LINUX_PFN_MAX); (linux_pfn_t)pfn;})
-> 
-> that is called in the right places.
-> 
-> 
-> > If and when Linux wants to use pfn's which are not unsigned longs then
-> > the uses of unsigned long will need to be audited (globally, not just
-> > here) to become whatever type Linux then defines to contain a pfn. In
-> > the absence of that type being defined in the core Linux code I think it
-> > is correct for us to keep using unsigned long in those contexts.
-> 
-> I think is OK using unsigned long for linux_pfn, the problem is the
-> conversion between what Xen gives us and linux_pfns.
-
-Xen never gives us PFNs, they are always the guest's choice.
-
-Ian.
-
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1349447704.20946.131.camel@zakaz.uk.xensource.com> b/test/corpus/<1349447704.20946.131.camel@zakaz.uk.xensource.com>
deleted file mode 100644 (file)
index 5155a57..0000000
+++ /dev/null
@@ -1,112 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Oct 05 15:38:09 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 05 Oct 2012 15:38:09 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TK92S-0008Ka-1R
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 05 Oct 2012 15:38:09 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TK8ze-0003yW-Nd; Fri, 05 Oct 2012 14:35:10 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1TK8zd-0003y9-0Y
-       for xen-devel@lists.xen.org; Fri, 05 Oct 2012 14:35:09 +0000
-Received: from [85.158.137.99:43707] by server-2.bemta-3.messagelabs.com id
-       F1/D7-16514-C10FE605; Fri, 05 Oct 2012 14:35:08 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-5.tower-217.messagelabs.com!1349447706!15688383!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTMxNTE=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 27999 invoked from network); 5 Oct 2012 14:35:06 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-5.tower-217.messagelabs.com with RC4-SHA encrypted SMTP;
-       5 Oct 2012 14:35:06 -0000
-X-IronPort-AV: E=Sophos;i="4.80,541,1344211200"; d="scan'208";a="14966521"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       05 Oct 2012 14:35:05 +0000
-Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.279.1; Fri, 5 Oct 2012
-       15:35:05 +0100
-Message-ID: <1349447704.20946.131.camel@zakaz.uk.xensource.com>
-From: Ian Campbell <Ian.Campbell@citrix.com>
-To: Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-Date: Fri, 5 Oct 2012 15:35:04 +0100
-In-Reply-To: <alpine.DEB.2.02.1210051503160.29232@kaball.uk.xensource.com>
-References: <1349363496.866.49.camel@zakaz.uk.xensource.com>
-       <1349363515-26190-8-git-send-email-ian.campbell@citrix.com>
-       <alpine.DEB.2.02.1210051419030.29232@kaball.uk.xensource.com>
-       <1349443982.20946.100.camel@zakaz.uk.xensource.com>
-       <alpine.DEB.2.02.1210051503160.29232@kaball.uk.xensource.com>
-Organization: Citrix Systems, Inc.
-X-Mailer: Evolution 3.4.3-1 
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
-       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 08/14] xen: balloon: allow PVMMU interfaces
- to be compiled out
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Fri, 2012-10-05 at 15:04 +0100, Stefano Stabellini wrote:
-> On Fri, 5 Oct 2012, Ian Campbell wrote:
-> > On Fri, 2012-10-05 at 14:19 +0100, Stefano Stabellini wrote:
-> > > On Thu, 4 Oct 2012, Ian Campbell wrote:
-> > > > The ARM platform has no concept of PVMMU and therefor no
-> > > > HYPERVISOR_update_va_mapping et al. Allow this code to be compiled out
-> > > > when not required.
-> > > > 
-> > > > Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
-> > > 
-> > > I am unsure whether it is worth a new symbol and two ifdef's
-> > 
-> > ARM doesn't compile without it, since HYPERVISOR_update_va_mapping
-> > doesn't exist. Do you have a preferable alternative?
-> > 
-> > I'm not sure how much more of this sort of thing there will be as we
-> > enable more features on the ARM port.
-> 
-> #define HYPERVISOR_update_va_mapping(va, new_val, flags) (0)
-
-This would mean we need to start defining things like mfn_pte() and
-__pte_ma() too though, I think. How far do we want to take that?
-
-Ian.
-
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1349453467.20946.142.camel@zakaz.uk.xensource.com> b/test/corpus/<1349453467.20946.142.camel@zakaz.uk.xensource.com>
deleted file mode 100644 (file)
index 1006f6d..0000000
+++ /dev/null
@@ -1,189 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Oct 05 17:15:14 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 05 Oct 2012 17:15:14 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TKAYO-0000Nx-6c
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 05 Oct 2012 17:15:14 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TKAUa-0007JK-Io; Fri, 05 Oct 2012 16:11:12 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1TKAUY-0007J9-O6
-       for xen-devel@lists.xen.org; Fri, 05 Oct 2012 16:11:10 +0000
-Received: from [85.158.139.211:42241] by server-8.bemta-5.messagelabs.com id
-       BD/56-20246-E960F605; Fri, 05 Oct 2012 16:11:10 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-5.tower-206.messagelabs.com!1349453469!21192497!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTMxNTE=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 20447 invoked from network); 5 Oct 2012 16:11:09 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-5.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
-       5 Oct 2012 16:11:09 -0000
-X-IronPort-AV: E=Sophos;i="4.80,541,1344211200"; d="scan'208";a="14968875"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       05 Oct 2012 16:11:09 +0000
-Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.279.1; Fri, 5 Oct 2012
-       17:11:09 +0100
-Message-ID: <1349453467.20946.142.camel@zakaz.uk.xensource.com>
-From: Ian Campbell <Ian.Campbell@citrix.com>
-To: Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-Date: Fri, 5 Oct 2012 17:11:07 +0100
-In-Reply-To: <1349447625.20946.130.camel@zakaz.uk.xensource.com>
-References: <1349363496.866.49.camel@zakaz.uk.xensource.com>
-       <1349363515-26190-5-git-send-email-ian.campbell@citrix.com>
-       <alpine.DEB.2.02.1210051243480.29232@kaball.uk.xensource.com>
-       <1349440338.20946.83.camel@zakaz.uk.xensource.com>
-       <alpine.DEB.2.02.1210051438340.29232@kaball.uk.xensource.com>
-       <1349447625.20946.130.camel@zakaz.uk.xensource.com>
-Organization: Citrix Systems, Inc.
-X-Mailer: Evolution 3.4.3-1 
-MIME-Version: 1.0
-Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 05/14] xen: balloon: use correct type for
- frame_list
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Fri, 2012-10-05 at 15:33 +0100, Ian Campbell wrote:
-> The issue you describe could only happen for a 32 bit HAP guest if the
-> guests was given > 16GB (2^(32+PAGE_SHIFT) bytes) of RAM and it was
-> explicitly trying to balloon memory over that limit, but in order for
-> that to even be possible it would already need to have made its concept
-> of a pfn larger than 32 bits.
-
-The one place this might matter is in the privcmd
-IOCTL_PRIVCMD_MMAPBATCH interface for the *foreign* pfn (since a small
-dom0 needs to be able to build a big domU). Luckily that interface
-already uses xen_pfn_t, we just need to be a bit careful in the
-xen_remap_domain_mfn_range case, which Konrad tried to tell me already
-and he was right...
-
-On ARM that meant the following (built but not executed) patch, I
-suspect the PVH variant needs similar treatment.
-
-8<--------------------------
-
-diff --git a/arch/arm/include/asm/xen/interface.h b/arch/arm/include/asm/xen/interface.h
-index ae05e56..ad87917 100644
---- a/arch/arm/include/asm/xen/interface.h
-+++ b/arch/arm/include/asm/xen/interface.h
-@@ -43,6 +43,7 @@ DEFINE_GUEST_HANDLE(void);
- DEFINE_GUEST_HANDLE(uint64_t);
- DEFINE_GUEST_HANDLE(uint32_t);
- DEFINE_GUEST_HANDLE(xen_pfn_t);
-+DEFINE_GUEST_HANDLE(xen_ulong_t);
- /* Maximum number of virtual CPUs in multi-processor guests. */
- #define MAX_VIRT_CPUS 1
-diff --git a/arch/arm/xen/enlighten.c b/arch/arm/xen/enlighten.c
-index a9946aa..1d64c02 100644
---- a/arch/arm/xen/enlighten.c
-+++ b/arch/arm/xen/enlighten.c
-@@ -57,7 +57,7 @@ static int map_foreign_page(unsigned long lpfn, unsigned long fgmfn,
-               .size = 1,
-               .space = XENMAPSPACE_gmfn_foreign,
-       };
--      unsigned long idx = fgmfn;
-+      xen_ulong_t idx = fgmfn;
-       xen_pfn_t gpfn = lpfn;
-       set_xen_guest_handle(xatp.idxs, &idx);
-@@ -73,7 +73,7 @@ static int map_foreign_page(unsigned long lpfn, unsigned long fgmfn,
- }
- struct remap_data {
--      unsigned long fgmfn; /* foreign domain's gmfn */
-+      xen_pfn_t fgmfn; /* foreign domain's gmfn */
-       pgprot_t prot;
-       domid_t  domid;
-       struct vm_area_struct *vma;
-@@ -98,7 +98,7 @@ static int remap_pte_fn(pte_t *ptep, pgtable_t token, unsigned long addr,
- int xen_remap_domain_mfn_range(struct vm_area_struct *vma,
-                              unsigned long addr,
--                             unsigned long mfn, int nr,
-+                             xen_pfn_t mfn, int nr,
-                              pgprot_t prot, unsigned domid,
-                              struct xen_remap_mfn_info *info)
- {
-diff --git a/arch/x86/include/asm/xen/interface.h b/arch/x86/include/asm/xen/interface.h
-index 250c254..d67f3c6 100644
---- a/arch/x86/include/asm/xen/interface.h
-+++ b/arch/x86/include/asm/xen/interface.h
-@@ -63,6 +63,7 @@ DEFINE_GUEST_HANDLE(void);
- DEFINE_GUEST_HANDLE(uint64_t);
- DEFINE_GUEST_HANDLE(uint32_t);
- DEFINE_GUEST_HANDLE(xen_pfn_t);
-+DEFINE_GUEST_HANDLE(xen_ulong_t);
- #endif
- #ifndef HYPERVISOR_VIRT_START
-diff --git a/include/xen/interface/memory.h b/include/xen/interface/memory.h
-index e5675bc..24e5731 100644
---- a/include/xen/interface/memory.h
-+++ b/include/xen/interface/memory.h
-@@ -199,7 +199,7 @@ struct xen_add_to_physmap_range {
-     domid_t foreign_domid; /* IFF gmfn_foreign */
-     /* Indexes into space being mapped. */
--    GUEST_HANDLE(ulong) idxs;
-+    GUEST_HANDLE(xen_ulong_t) idxs;
-     /* GPFN in domid where the source mapping page should appear. */
-     GUEST_HANDLE(xen_pfn_t) gpfns;
-diff --git a/include/xen/xen-ops.h b/include/xen/xen-ops.h
-index 2f3cb06..59309f3 100644
---- a/include/xen/xen-ops.h
-+++ b/include/xen/xen-ops.h
-@@ -27,7 +27,7 @@ struct vm_area_struct;
- struct xen_remap_mfn_info;
- int xen_remap_domain_mfn_range(struct vm_area_struct *vma,
-                              unsigned long addr,
--                             unsigned long mfn, int nr,
-+                             xen_pfn_t mfn, int nr,
-                              pgprot_t prot, unsigned domid,
-                              struct xen_remap_mfn_info *pvhp);
- int xen_unmap_domain_mfn_range(struct vm_area_struct *vma,
-
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1349453876.20946.143.camel@zakaz.uk.xensource.com> b/test/corpus/<1349453876.20946.143.camel@zakaz.uk.xensource.com>
deleted file mode 100644 (file)
index 3680000..0000000
+++ /dev/null
@@ -1,202 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Oct 05 17:22:42 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 05 Oct 2012 17:22:42 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TKAff-0000QX-DY
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 05 Oct 2012 17:22:42 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TKAbB-0007Zi-T9; Fri, 05 Oct 2012 16:18:01 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1TKAb9-0007Zd-Ab
-       for xen-devel@lists.xen.org; Fri, 05 Oct 2012 16:17:59 +0000
-Received: from [85.158.139.83:18002] by server-14.bemta-5.messagelabs.com id
-       91/4E-31065-6380F605; Fri, 05 Oct 2012 16:17:58 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-3.tower-182.messagelabs.com!1349453878!33595569!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTMxNTE=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 9243 invoked from network); 5 Oct 2012 16:17:58 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-3.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
-       5 Oct 2012 16:17:58 -0000
-X-IronPort-AV: E=Sophos;i="4.80,541,1344211200"; d="scan'208";a="14969064"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       05 Oct 2012 16:17:58 +0000
-Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.279.1; Fri, 5 Oct 2012
-       17:17:58 +0100
-Message-ID: <1349453876.20946.143.camel@zakaz.uk.xensource.com>
-From: Ian Campbell <Ian.Campbell@citrix.com>
-To: Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-Date: Fri, 5 Oct 2012 17:17:56 +0100
-In-Reply-To: <1349453467.20946.142.camel@zakaz.uk.xensource.com>
-References: <1349363496.866.49.camel@zakaz.uk.xensource.com>
-       <1349363515-26190-5-git-send-email-ian.campbell@citrix.com>
-       <alpine.DEB.2.02.1210051243480.29232@kaball.uk.xensource.com>
-       <1349440338.20946.83.camel@zakaz.uk.xensource.com>
-       <alpine.DEB.2.02.1210051438340.29232@kaball.uk.xensource.com>
-       <1349447625.20946.130.camel@zakaz.uk.xensource.com>
-       <1349453467.20946.142.camel@zakaz.uk.xensource.com>
-Organization: Citrix Systems, Inc.
-X-Mailer: Evolution 3.4.3-1 
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
-       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 05/14] xen: balloon: use correct type for
- frame_list
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Fri, 2012-10-05 at 17:11 +0100, Ian Campbell wrote:
-> On Fri, 2012-10-05 at 15:33 +0100, Ian Campbell wrote:
-> > The issue you describe could only happen for a 32 bit HAP guest if the
-> > guests was given > 16GB (2^(32+PAGE_SHIFT) bytes) of RAM and it was
-> > explicitly trying to balloon memory over that limit, but in order for
-> > that to even be possible it would already need to have made its concept
-> > of a pfn larger than 32 bits.
-> 
-> The one place this might matter is in the privcmd
-> IOCTL_PRIVCMD_MMAPBATCH interface for the *foreign* pfn (since a small
-> dom0 needs to be able to build a big domU). Luckily that interface
-> already uses xen_pfn_t, we just need to be a bit careful in the
-> xen_remap_domain_mfn_range case, which Konrad tried to tell me already
-> and he was right...
-> 
-> On ARM that meant the following (built but not executed) patch, I
-> suspect the PVH variant needs similar treatment.
-
-NB, this is mostly just a bug fix to "arm: implement foreign mapping
-using XENMEM_add_to_physmap_range" and/or "arm: implement remap
-interfaces needed for privcmd mappings."
-
-> 8<--------------------------
-> 
-> diff --git a/arch/arm/include/asm/xen/interface.h b/arch/arm/include/asm/xen/interface.h
-> index ae05e56..ad87917 100644
-> --- a/arch/arm/include/asm/xen/interface.h
-> +++ b/arch/arm/include/asm/xen/interface.h
-> @@ -43,6 +43,7 @@ DEFINE_GUEST_HANDLE(void);
->  DEFINE_GUEST_HANDLE(uint64_t);
->  DEFINE_GUEST_HANDLE(uint32_t);
->  DEFINE_GUEST_HANDLE(xen_pfn_t);
-> +DEFINE_GUEST_HANDLE(xen_ulong_t);
->  
->  /* Maximum number of virtual CPUs in multi-processor guests. */
->  #define MAX_VIRT_CPUS 1
-> diff --git a/arch/arm/xen/enlighten.c b/arch/arm/xen/enlighten.c
-> index a9946aa..1d64c02 100644
-> --- a/arch/arm/xen/enlighten.c
-> +++ b/arch/arm/xen/enlighten.c
-> @@ -57,7 +57,7 @@ static int map_foreign_page(unsigned long lpfn, unsigned long fgmfn,
->              .size = 1,
->              .space = XENMAPSPACE_gmfn_foreign,
->      };
-> -    unsigned long idx = fgmfn;
-> +    xen_ulong_t idx = fgmfn;
->      xen_pfn_t gpfn = lpfn;
->  
->      set_xen_guest_handle(xatp.idxs, &idx);
-> @@ -73,7 +73,7 @@ static int map_foreign_page(unsigned long lpfn, unsigned long fgmfn,
->  }
->  
->  struct remap_data {
-> -    unsigned long fgmfn; /* foreign domain's gmfn */
-> +    xen_pfn_t fgmfn; /* foreign domain's gmfn */
->      pgprot_t prot;
->      domid_t  domid;
->      struct vm_area_struct *vma;
-> @@ -98,7 +98,7 @@ static int remap_pte_fn(pte_t *ptep, pgtable_t token, unsigned long addr,
->  
->  int xen_remap_domain_mfn_range(struct vm_area_struct *vma,
->                             unsigned long addr,
-> -                           unsigned long mfn, int nr,
-> +                           xen_pfn_t mfn, int nr,
->                             pgprot_t prot, unsigned domid,
->                             struct xen_remap_mfn_info *info)
->  {
-> diff --git a/arch/x86/include/asm/xen/interface.h b/arch/x86/include/asm/xen/interface.h
-> index 250c254..d67f3c6 100644
-> --- a/arch/x86/include/asm/xen/interface.h
-> +++ b/arch/x86/include/asm/xen/interface.h
-> @@ -63,6 +63,7 @@ DEFINE_GUEST_HANDLE(void);
->  DEFINE_GUEST_HANDLE(uint64_t);
->  DEFINE_GUEST_HANDLE(uint32_t);
->  DEFINE_GUEST_HANDLE(xen_pfn_t);
-> +DEFINE_GUEST_HANDLE(xen_ulong_t);
->  #endif
->  
->  #ifndef HYPERVISOR_VIRT_START
-> diff --git a/include/xen/interface/memory.h b/include/xen/interface/memory.h
-> index e5675bc..24e5731 100644
-> --- a/include/xen/interface/memory.h
-> +++ b/include/xen/interface/memory.h
-> @@ -199,7 +199,7 @@ struct xen_add_to_physmap_range {
->      domid_t foreign_domid; /* IFF gmfn_foreign */
->  
->      /* Indexes into space being mapped. */
-> -    GUEST_HANDLE(ulong) idxs;
-> +    GUEST_HANDLE(xen_ulong_t) idxs;
->  
->      /* GPFN in domid where the source mapping page should appear. */
->      GUEST_HANDLE(xen_pfn_t) gpfns;
-> diff --git a/include/xen/xen-ops.h b/include/xen/xen-ops.h
-> index 2f3cb06..59309f3 100644
-> --- a/include/xen/xen-ops.h
-> +++ b/include/xen/xen-ops.h
-> @@ -27,7 +27,7 @@ struct vm_area_struct;
->  struct xen_remap_mfn_info;
->  int xen_remap_domain_mfn_range(struct vm_area_struct *vma,
->                             unsigned long addr,
-> -                           unsigned long mfn, int nr,
-> +                           xen_pfn_t mfn, int nr,
->                             pgprot_t prot, unsigned domid,
->                             struct xen_remap_mfn_info *pvhp);
->  int xen_unmap_domain_mfn_range(struct vm_area_struct *vma,
-> 
-> 
-> 
-> _______________________________________________
-> Xen-devel mailing list
-> Xen-devel@lists.xen.org
-> http://lists.xen.org/xen-devel
-
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1350046634-2462-1-git-send-email-david.vrabel@citrix.com> b/test/corpus/<1350046634-2462-1-git-send-email-david.vrabel@citrix.com>
deleted file mode 100644 (file)
index 2af7e12..0000000
+++ /dev/null
@@ -1,97 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Oct 12 14:01:26 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 12 Oct 2012 14:01:26 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TMerj-0001uK-Uf
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 12 Oct 2012 14:01:26 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TMenr-0007vk-RH; Fri, 12 Oct 2012 12:57:23 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <david.vrabel@citrix.com>) id 1TMenr-0007ve-1e
-       for xen-devel@lists.xen.org; Fri, 12 Oct 2012 12:57:23 +0000
-Received: from [85.158.139.83:35054] by server-6.bemta-5.messagelabs.com id
-       EA/EA-08519-2B318705; Fri, 12 Oct 2012 12:57:22 +0000
-X-Env-Sender: david.vrabel@citrix.com
-X-Msg-Ref: server-5.tower-182.messagelabs.com!1350046640!28977894!1
-X-Originating-IP: [66.165.176.89]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNzYwMjI=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 30953 invoked from network); 12 Oct 2012 12:57:21 -0000
-Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
-       by server-5.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
-       12 Oct 2012 12:57:21 -0000
-X-IronPort-AV: E=Sophos;i="4.80,576,1344211200"; d="scan'208";a="41021554"
-Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
-       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       12 Oct 2012 12:57:19 +0000
-Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
-       (10.13.107.66) with Microsoft SMTP Server id 8.3.279.1;
-       Fri, 12 Oct 2012 08:57:19 -0400
-Received: from qabil.uk.xensource.com ([10.80.2.76])   by
-       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
-       <david.vrabel@citrix.com>)      id 1TMenn-0005yL-6n;
-       Fri, 12 Oct 2012 13:57:19 +0100
-From: David Vrabel <david.vrabel@citrix.com>
-To: xen-devel@lists.xen.org
-Date: Fri, 12 Oct 2012 13:57:11 +0100
-Message-ID: <1350046634-2462-1-git-send-email-david.vrabel@citrix.com>
-X-Mailer: git-send-email 1.7.2.5
-MIME-Version: 1.0
-Cc: David Vrabel <david.vrabel@citrix.com>,
-       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: [Xen-devel] [PATCH 0/3] xen: fix various wallclock problems
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-This series (with some toolstack updates) corrects a number of cases
-where a guest can see an incorrect wallclock time.
-
-1. Systems with NTP won't periodically synchronize the hardware RTC so
-the wallclock may be incorrect after a reboot.
-
-2. The wallclock is always ~500 ms behind the correct time.
-
-3. If the system time was stepped and NTP isn't synchronized yet, the
-wallclock will still have the incorrect time.  The fix for this
-requires the toolstack to synchronize the wallclock -- patch #3
-provides the mechanism for this.
-
-David
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1350046634-2462-2-git-send-email-david.vrabel@citrix.com> b/test/corpus/<1350046634-2462-2-git-send-email-david.vrabel@citrix.com>
deleted file mode 100644 (file)
index c6c63f7..0000000
+++ /dev/null
@@ -1,123 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Oct 12 14:01:36 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 12 Oct 2012 14:01:36 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TMerr-0001uw-Ao
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 12 Oct 2012 14:01:36 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TMenv-0007wb-69; Fri, 12 Oct 2012 12:57:27 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <david.vrabel@citrix.com>) id 1TMens-0007vw-Vf
-       for xen-devel@lists.xen.org; Fri, 12 Oct 2012 12:57:25 +0000
-Received: from [85.158.139.211:63414] by server-1.bemta-5.messagelabs.com id
-       05/04-18294-4B318705; Fri, 12 Oct 2012 12:57:24 +0000
-X-Env-Sender: david.vrabel@citrix.com
-X-Msg-Ref: server-15.tower-206.messagelabs.com!1350046642!22135305!1
-X-Originating-IP: [66.165.176.89]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNzYwMjI=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 25273 invoked from network); 12 Oct 2012 12:57:23 -0000
-Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
-       by server-15.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
-       12 Oct 2012 12:57:23 -0000
-X-IronPort-AV: E=Sophos;i="4.80,576,1344211200"; d="scan'208";a="41021557"
-Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
-       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       12 Oct 2012 12:57:19 +0000
-Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
-       (10.13.107.66) with Microsoft SMTP Server id 8.3.279.1;
-       Fri, 12 Oct 2012 08:57:19 -0400
-Received: from qabil.uk.xensource.com ([10.80.2.76])   by
-       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
-       <david.vrabel@citrix.com>)      id 1TMenn-0005yL-8b;
-       Fri, 12 Oct 2012 13:57:19 +0100
-From: David Vrabel <david.vrabel@citrix.com>
-To: xen-devel@lists.xen.org
-Date: Fri, 12 Oct 2012 13:57:12 +0100
-Message-ID: <1350046634-2462-2-git-send-email-david.vrabel@citrix.com>
-X-Mailer: git-send-email 1.7.2.5
-In-Reply-To: <1350046634-2462-1-git-send-email-david.vrabel@citrix.com>
-References: <1350046634-2462-1-git-send-email-david.vrabel@citrix.com>
-MIME-Version: 1.0
-Cc: David Vrabel <david.vrabel@citrix.com>,
-       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: [Xen-devel] [PATCH 1/3] xen: sync the CMOS RTC as well as the Xen
-       wallclock
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-From: David Vrabel <david.vrabel@citrix.com>
-
-If NTP is used in dom0 and it is synchronized to its clock source,
-then the kernel will periodically synchronize the Xen wallclock with
-the system time.  Updates to the Xen wallclock do not persist across
-reboots, so also synchronize the CMOS RTC (as on bare metal).
-
-Signed-off-by: David Vrabel <david.vrabel@citrix.com>
----
- arch/x86/xen/time.c |    5 +++++
- 1 files changed, 5 insertions(+), 0 deletions(-)
-
-diff --git a/arch/x86/xen/time.c b/arch/x86/xen/time.c
-index 0296a95..5e7f536 100644
---- a/arch/x86/xen/time.c
-+++ b/arch/x86/xen/time.c
-@@ -14,6 +14,7 @@
- #include <linux/kernel_stat.h>
- #include <linux/math64.h>
- #include <linux/gfp.h>
-+#include <linux/mc146818rtc.h>
- #include <asm/pvclock.h>
- #include <asm/xen/hypervisor.h>
-@@ -208,6 +209,10 @@ static int xen_set_wallclock(unsigned long now)
-       if (!xen_initial_domain())
-               return -1;
-+      /* Set the hardware RTC. */
-+      mach_set_rtc_mmss(now);
-+
-+      /* Set the Xen wallclock. */
-       op.cmd = XENPF_settime;
-       op.u.settime.secs = now;
-       op.u.settime.nsecs = 0;
--- 
-1.7.2.5
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1350046634-2462-3-git-send-email-david.vrabel@citrix.com> b/test/corpus/<1350046634-2462-3-git-send-email-david.vrabel@citrix.com>
deleted file mode 100644 (file)
index ba96d5d..0000000
+++ /dev/null
@@ -1,122 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Oct 12 14:01:28 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 12 Oct 2012 14:01:28 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TMerm-0001uM-4c
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 12 Oct 2012 14:01:28 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TMent-0007w3-8K; Fri, 12 Oct 2012 12:57:25 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <david.vrabel@citrix.com>) id 1TMenr-0007vf-Hj
-       for xen-devel@lists.xen.org; Fri, 12 Oct 2012 12:57:23 +0000
-Received: from [85.158.139.83:5247] by server-16.bemta-5.messagelabs.com id
-       E3/25-10155-2B318705; Fri, 12 Oct 2012 12:57:22 +0000
-X-Env-Sender: david.vrabel@citrix.com
-X-Msg-Ref: server-5.tower-182.messagelabs.com!1350046640!28977894!2
-X-Originating-IP: [66.165.176.89]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNzYwMjI=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 31007 invoked from network); 12 Oct 2012 12:57:22 -0000
-Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
-       by server-5.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
-       12 Oct 2012 12:57:22 -0000
-X-IronPort-AV: E=Sophos;i="4.80,576,1344211200"; d="scan'208";a="41021555"
-Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
-       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       12 Oct 2012 12:57:19 +0000
-Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
-       (10.13.107.66) with Microsoft SMTP Server id 8.3.279.1;
-       Fri, 12 Oct 2012 08:57:19 -0400
-Received: from qabil.uk.xensource.com ([10.80.2.76])   by
-       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
-       <david.vrabel@citrix.com>)      id 1TMenn-0005yL-98;
-       Fri, 12 Oct 2012 13:57:19 +0100
-From: David Vrabel <david.vrabel@citrix.com>
-To: xen-devel@lists.xen.org
-Date: Fri, 12 Oct 2012 13:57:13 +0100
-Message-ID: <1350046634-2462-3-git-send-email-david.vrabel@citrix.com>
-X-Mailer: git-send-email 1.7.2.5
-In-Reply-To: <1350046634-2462-1-git-send-email-david.vrabel@citrix.com>
-References: <1350046634-2462-1-git-send-email-david.vrabel@citrix.com>
-MIME-Version: 1.0
-Cc: David Vrabel <david.vrabel@citrix.com>,
-       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: [Xen-devel] [PATCH 2/3] xen: add correct 500 ms offset when setting
-       Xen wallclock
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-From: David Vrabel <david.vrabel@citrix.com>
-
-update_persistent_wallclock() (and hence xet_set_wallclock()) is
-called 500 ms after the second.  xen_set_wallclock() was not
-considering this so the Xen wallclock would end up ~500 ms behind the
-correct time.
-
-Signed-off-by: David Vrabel <david.vrabel@citrix.com>
----
- arch/x86/xen/time.c |    9 +++++++--
- 1 files changed, 7 insertions(+), 2 deletions(-)
-
-diff --git a/arch/x86/xen/time.c b/arch/x86/xen/time.c
-index 5e7f536..11770d0 100644
---- a/arch/x86/xen/time.c
-+++ b/arch/x86/xen/time.c
-@@ -212,10 +212,15 @@ static int xen_set_wallclock(unsigned long now)
-       /* Set the hardware RTC. */
-       mach_set_rtc_mmss(now);
--      /* Set the Xen wallclock. */
-+      /*
-+       * Set the Xen wallclock.
-+       *
-+       * update_persistent_wallclock() is called ~500 ms after 'now'
-+       * so add an extra 500 ms.
-+       */
-       op.cmd = XENPF_settime;
-       op.u.settime.secs = now;
--      op.u.settime.nsecs = 0;
-+      op.u.settime.nsecs = NSEC_PER_SEC / 2;
-       op.u.settime.system_time = xen_clocksource_read();
-       rc = HYPERVISOR_dom0_op(&op);
--- 
-1.7.2.5
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1350046634-2462-4-git-send-email-david.vrabel@citrix.com> b/test/corpus/<1350046634-2462-4-git-send-email-david.vrabel@citrix.com>
deleted file mode 100644 (file)
index 808dd1e..0000000
+++ /dev/null
@@ -1,228 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Oct 12 14:01:37 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 12 Oct 2012 14:01:37 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TMerq-0001uv-Lu
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 12 Oct 2012 14:01:37 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TMenu-0007wS-QL; Fri, 12 Oct 2012 12:57:26 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <david.vrabel@citrix.com>) id 1TMens-0007vv-G5
-       for xen-devel@lists.xen.org; Fri, 12 Oct 2012 12:57:24 +0000
-Received: from [85.158.139.83:35174] by server-9.bemta-5.messagelabs.com id
-       7C/50-31466-3B318705; Fri, 12 Oct 2012 12:57:23 +0000
-X-Env-Sender: david.vrabel@citrix.com
-X-Msg-Ref: server-5.tower-182.messagelabs.com!1350046640!28977894!3
-X-Originating-IP: [66.165.176.89]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNzYwMjI=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 31067 invoked from network); 12 Oct 2012 12:57:23 -0000
-Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
-       by server-5.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
-       12 Oct 2012 12:57:23 -0000
-X-IronPort-AV: E=Sophos;i="4.80,576,1344211200"; d="scan'208";a="41021556"
-Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
-       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       12 Oct 2012 12:57:19 +0000
-Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
-       (10.13.107.66) with Microsoft SMTP Server id 8.3.279.1;
-       Fri, 12 Oct 2012 08:57:19 -0400
-Received: from qabil.uk.xensource.com ([10.80.2.76])   by
-       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
-       <david.vrabel@citrix.com>)      id 1TMenn-0005yL-9c;
-       Fri, 12 Oct 2012 13:57:19 +0100
-From: David Vrabel <david.vrabel@citrix.com>
-To: xen-devel@lists.xen.org
-Date: Fri, 12 Oct 2012 13:57:14 +0100
-Message-ID: <1350046634-2462-4-git-send-email-david.vrabel@citrix.com>
-X-Mailer: git-send-email 1.7.2.5
-In-Reply-To: <1350046634-2462-1-git-send-email-david.vrabel@citrix.com>
-References: <1350046634-2462-1-git-send-email-david.vrabel@citrix.com>
-MIME-Version: 1.0
-Cc: David Vrabel <david.vrabel@citrix.com>,
-       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: [Xen-devel] [PATCH 3/3] xen/privcmd: add
-       IOCTL_PRIVCMD_SYNC_WALLCLOCK to sync Xen's wallclock
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-From: David Vrabel <david.vrabel@citrix.com>
-
-Add a new ioctl to synchronize Xen's wallclock with the current system
-time.
-
-This may be used by the tools to ensure that newly created domains see
-the correct wallclock time if NTP is not used in dom0 or if domains
-are started before NTP has synchronized.
-
-Signed-off-by: David Vrabel <david.vrabel@citrix.com>
----
- arch/x86/xen/time.c   |   25 ++++++++++++++++++-------
- drivers/xen/privcmd.c |   12 ++++++++++++
- include/xen/privcmd.h |    8 ++++++++
- include/xen/xen-ops.h |    2 ++
- 4 files changed, 40 insertions(+), 7 deletions(-)
-
-diff --git a/arch/x86/xen/time.c b/arch/x86/xen/time.c
-index 11770d0..d481ac9 100644
---- a/arch/x86/xen/time.c
-+++ b/arch/x86/xen/time.c
-@@ -8,6 +8,7 @@
-  * Jeremy Fitzhardinge <jeremy@xensource.com>, XenSource Inc, 2007
-  */
- #include <linux/kernel.h>
-+#include <linux/export.h>
- #include <linux/interrupt.h>
- #include <linux/clocksource.h>
- #include <linux/clockchips.h>
-@@ -192,6 +193,19 @@ static void xen_read_wallclock(struct timespec *ts)
-       put_cpu_var(xen_vcpu);
- }
-+int xen_write_wallclock(const struct timespec *ts)
-+{
-+      struct xen_platform_op op;
-+
-+      op.cmd = XENPF_settime;
-+      op.u.settime.secs = ts->tv_sec;
-+      op.u.settime.nsecs = ts->tv_nsec;
-+      op.u.settime.system_time = xen_clocksource_read();
-+
-+      return HYPERVISOR_dom0_op(&op);
-+}
-+EXPORT_SYMBOL_GPL(xen_write_wallclock);
-+
- static unsigned long xen_get_wallclock(void)
- {
-       struct timespec ts;
-@@ -202,7 +216,7 @@ static unsigned long xen_get_wallclock(void)
- static int xen_set_wallclock(unsigned long now)
- {
--      struct xen_platform_op op;
-+      struct timespec ts;
-       int rc;
-       /* do nothing for domU */
-@@ -218,12 +232,9 @@ static int xen_set_wallclock(unsigned long now)
-        * update_persistent_wallclock() is called ~500 ms after 'now'
-        * so add an extra 500 ms.
-        */
--      op.cmd = XENPF_settime;
--      op.u.settime.secs = now;
--      op.u.settime.nsecs = NSEC_PER_SEC / 2;
--      op.u.settime.system_time = xen_clocksource_read();
--
--      rc = HYPERVISOR_dom0_op(&op);
-+      ts.tv_sec = now;
-+      ts.tv_nsec = NSEC_PER_SEC / 2;
-+      rc = xen_write_wallclock(&ts);
-       WARN(rc != 0, "XENPF_settime failed: now=%ld\n", now);
-       return rc;
-diff --git a/drivers/xen/privcmd.c b/drivers/xen/privcmd.c
-index ccee0f1..ed2caf3 100644
---- a/drivers/xen/privcmd.c
-+++ b/drivers/xen/privcmd.c
-@@ -338,6 +338,14 @@ out:
-       return ret;
- }
-+static long privcmd_ioctl_sync_wallclock(void)
-+{
-+      struct timespec ts;
-+
-+      getnstimeofday(&ts);
-+      return xen_write_wallclock(&ts);
-+}
-+
- static long privcmd_ioctl(struct file *file,
-                         unsigned int cmd, unsigned long data)
- {
-@@ -357,6 +365,10 @@ static long privcmd_ioctl(struct file *file,
-               ret = privcmd_ioctl_mmap_batch(udata);
-               break;
-+      case IOCTL_PRIVCMD_SYNC_WALLCLOCK:
-+              ret = privcmd_ioctl_sync_wallclock();
-+              break;
-+
-       default:
-               ret = -EINVAL;
-               break;
-diff --git a/include/xen/privcmd.h b/include/xen/privcmd.h
-index 17857fb..d17d087 100644
---- a/include/xen/privcmd.h
-+++ b/include/xen/privcmd.h
-@@ -66,6 +66,12 @@ struct privcmd_mmapbatch {
-  * @cmd: IOCTL_PRIVCMD_HYPERCALL
-  * @arg: &privcmd_hypercall_t
-  * Return: Value returned from execution of the specified hypercall.
-+ *
-+ * @cmd: IOCTL_PRIVCMD_SYNC_WALLCLOCK
-+ * @arg: Unused.
-+ * Synchronizes the Xen wallclock with the current system time.
-+ * Return: 0 on success, or -1 on error with errno set to EPERM or
-+ * EACCES.
-  */
- #define IOCTL_PRIVCMD_HYPERCALL                                       \
-       _IOC(_IOC_NONE, 'P', 0, sizeof(struct privcmd_hypercall))
-@@ -73,5 +79,7 @@ struct privcmd_mmapbatch {
-       _IOC(_IOC_NONE, 'P', 2, sizeof(struct privcmd_mmap))
- #define IOCTL_PRIVCMD_MMAPBATCH                                       \
-       _IOC(_IOC_NONE, 'P', 3, sizeof(struct privcmd_mmapbatch))
-+#define IOCTL_PRIVCMD_SYNC_WALLCLOCK                          \
-+      _IOC(_IOC_NONE, 'P', 5, 0)
- #endif /* __LINUX_PUBLIC_PRIVCMD_H__ */
-diff --git a/include/xen/xen-ops.h b/include/xen/xen-ops.h
-index 6a198e4..eefed22 100644
---- a/include/xen/xen-ops.h
-+++ b/include/xen/xen-ops.h
-@@ -29,4 +29,6 @@ int xen_remap_domain_mfn_range(struct vm_area_struct *vma,
-                              unsigned long mfn, int nr,
-                              pgprot_t prot, unsigned domid);
-+int xen_write_wallclock(const struct timespec *ts);
-+
- #endif /* INCLUDE_XEN_OPS_H */
--- 
-1.7.2.5
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1350046970-2591-1-git-send-email-david.vrabel@citrix.com> b/test/corpus/<1350046970-2591-1-git-send-email-david.vrabel@citrix.com>
deleted file mode 100644 (file)
index 96a8d92..0000000
+++ /dev/null
@@ -1,92 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Oct 12 14:06:55 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 12 Oct 2012 14:06:55 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TMex3-0001wA-OD
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 12 Oct 2012 14:06:55 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TMetI-000055-V9; Fri, 12 Oct 2012 13:03:00 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <david.vrabel@citrix.com>) id 1TMetH-00004q-20
-       for xen-devel@lists.xen.org; Fri, 12 Oct 2012 13:02:59 +0000
-Received: from [85.158.138.51:15971] by server-1.bemta-3.messagelabs.com id
-       47/F2-31728-20518705; Fri, 12 Oct 2012 13:02:58 +0000
-X-Env-Sender: david.vrabel@citrix.com
-X-Msg-Ref: server-8.tower-174.messagelabs.com!1350046976!34078915!1
-X-Originating-IP: [66.165.176.89]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNzYwMjI=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 26868 invoked from network); 12 Oct 2012 13:02:57 -0000
-Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
-       by server-8.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
-       12 Oct 2012 13:02:57 -0000
-X-IronPort-AV: E=Sophos;i="4.80,576,1344211200"; d="scan'208";a="41022230"
-Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
-       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       12 Oct 2012 13:02:55 +0000
-Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
-       (10.13.107.66) with Microsoft SMTP Server id 8.3.279.1;
-       Fri, 12 Oct 2012 09:02:55 -0400
-Received: from qabil.uk.xensource.com ([10.80.2.76])   by
-       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
-       <david.vrabel@citrix.com>)      id 1TMetD-00063o-2R;
-       Fri, 12 Oct 2012 14:02:55 +0100
-From: David Vrabel <david.vrabel@citrix.com>
-To: xen-devel@lists.xen.org
-Date: Fri, 12 Oct 2012 14:02:48 +0100
-Message-ID: <1350046970-2591-1-git-send-email-david.vrabel@citrix.com>
-X-Mailer: git-send-email 1.7.2.5
-MIME-Version: 1.0
-Cc: David Vrabel <david.vrabel@citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: [Xen-devel] [PATCH 0/2] tools: add wallclock synchronization
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-This is the toolstack side of the Linux wallclock fixes.  A new libxc
-call, xc_wallclock_sync() is provided and a new command line utility
-(xen-wallclock) makes use of this.
-
-I also considered making libxl call xc_wallclock_sync() during domain
-creation but wasn't sure if this was sensible or whether there needed
-to be an xl configuration option to enable/disable this behaviour.
-Any comments?
-
-David
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1350046970-2591-2-git-send-email-david.vrabel@citrix.com> b/test/corpus/<1350046970-2591-2-git-send-email-david.vrabel@citrix.com>
deleted file mode 100644 (file)
index 0a20ba8..0000000
+++ /dev/null
@@ -1,222 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Oct 12 14:07:03 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 12 Oct 2012 14:07:03 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TMex7-0001wT-Mi
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 12 Oct 2012 14:07:03 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TMetJ-00005H-Ot; Fri, 12 Oct 2012 13:03:01 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <david.vrabel@citrix.com>) id 1TMetH-00004u-PZ
-       for xen-devel@lists.xen.org; Fri, 12 Oct 2012 13:03:00 +0000
-Received: from [85.158.138.51:4661] by server-3.bemta-3.messagelabs.com id
-       C3/44-09368-20518705; Fri, 12 Oct 2012 13:02:58 +0000
-X-Env-Sender: david.vrabel@citrix.com
-X-Msg-Ref: server-8.tower-174.messagelabs.com!1350046976!34078915!2
-X-Originating-IP: [66.165.176.89]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNzYwMjI=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 26883 invoked from network); 12 Oct 2012 13:02:58 -0000
-Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
-       by server-8.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
-       12 Oct 2012 13:02:58 -0000
-X-IronPort-AV: E=Sophos;i="4.80,576,1344211200"; d="scan'208";a="41022231"
-Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
-       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       12 Oct 2012 13:02:55 +0000
-Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
-       (10.13.107.66) with Microsoft SMTP Server id 8.3.279.1;
-       Fri, 12 Oct 2012 09:02:55 -0400
-Received: from qabil.uk.xensource.com ([10.80.2.76])   by
-       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
-       <david.vrabel@citrix.com>)      id 1TMetD-00063o-4B;
-       Fri, 12 Oct 2012 14:02:55 +0100
-From: David Vrabel <david.vrabel@citrix.com>
-To: xen-devel@lists.xen.org
-Date: Fri, 12 Oct 2012 14:02:49 +0100
-Message-ID: <1350046970-2591-2-git-send-email-david.vrabel@citrix.com>
-X-Mailer: git-send-email 1.7.2.5
-In-Reply-To: <1350046970-2591-1-git-send-email-david.vrabel@citrix.com>
-References: <1350046970-2591-1-git-send-email-david.vrabel@citrix.com>
-MIME-Version: 1.0
-Cc: David Vrabel <david.vrabel@citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: [Xen-devel] [PATCH 1/2] libxc: add xc_wallclock_sync()
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-From: David Vrabel <david.vrabel@citrix.com>
-
-xc_wallclock_sync() synchronizes the Xen wallclock to system time.
-
-This requires a Linux kernel with a privcmd device that provides the
-IOCTL_PRIVCMD_SYNC_WALLCLOCK ioctl.
-
-Signed-off-by: David Vrabel <david.vrabel@citrix.com>
----
- tools/include/xen-sys/Linux/privcmd.h |    8 ++++++++
- tools/libxc/Makefile                  |    1 +
- tools/libxc/xc_linux_osdep.c          |    7 +++++++
- tools/libxc/xc_wallclock.c            |   23 +++++++++++++++++++++++
- tools/libxc/xenctrl.h                 |    5 +++++
- tools/libxc/xenctrlosdep.h            |    2 ++
- 6 files changed, 46 insertions(+), 0 deletions(-)
- create mode 100644 tools/libxc/xc_wallclock.c
-
-diff --git a/tools/include/xen-sys/Linux/privcmd.h b/tools/include/xen-sys/Linux/privcmd.h
-index d35aac9..55765d1 100644
---- a/tools/include/xen-sys/Linux/privcmd.h
-+++ b/tools/include/xen-sys/Linux/privcmd.h
-@@ -76,6 +76,12 @@ typedef struct privcmd_mmapbatch_v2 {
-  * @cmd: IOCTL_PRIVCMD_HYPERCALL
-  * @arg: &privcmd_hypercall_t
-  * Return: Value returned from execution of the specified hypercall.
-+ *
-+ * @cmd: IOCTL_PRIVCMD_SYNC_WALLCLOCK
-+ * @arg: Unused.
-+ * Synchronizes the Xen wallclock with the current system time.
-+ * Return: 0 on success, or -1 on error with errno set to EPERM or
-+ * EACCES.
-  */
- #define IOCTL_PRIVCMD_HYPERCALL                                       \
-       _IOC(_IOC_NONE, 'P', 0, sizeof(privcmd_hypercall_t))
-@@ -85,5 +91,7 @@ typedef struct privcmd_mmapbatch_v2 {
-       _IOC(_IOC_NONE, 'P', 3, sizeof(privcmd_mmapbatch_t))
- #define IOCTL_PRIVCMD_MMAPBATCH_V2                            \
-       _IOC(_IOC_NONE, 'P', 4, sizeof(privcmd_mmapbatch_v2_t))
-+#define IOCTL_PRIVCMD_SYNC_WALLCLOCK                          \
-+      _IOC(_IOC_NONE, 'P', 5, 0)
- #endif /* __LINUX_PUBLIC_PRIVCMD_H__ */
-diff --git a/tools/libxc/Makefile b/tools/libxc/Makefile
-index d44abf9..601ea4b 100644
---- a/tools/libxc/Makefile
-+++ b/tools/libxc/Makefile
-@@ -31,6 +31,7 @@ CTRL_SRCS-y       += xc_mem_access.c
- CTRL_SRCS-y       += xc_memshr.c
- CTRL_SRCS-y       += xc_hcall_buf.c
- CTRL_SRCS-y       += xc_foreign_memory.c
-+CTRL_SRCS-y       += xc_wallclock.c
- CTRL_SRCS-y       += xtl_core.c
- CTRL_SRCS-y       += xtl_logger_stdio.c
- CTRL_SRCS-$(CONFIG_X86) += xc_pagetab.c
-diff --git a/tools/libxc/xc_linux_osdep.c b/tools/libxc/xc_linux_osdep.c
-index 787e742..7c73b66 100644
---- a/tools/libxc/xc_linux_osdep.c
-+++ b/tools/libxc/xc_linux_osdep.c
-@@ -412,6 +412,11 @@ static void *linux_privcmd_map_foreign_ranges(xc_interface *xch, xc_osdep_handle
-     return ret;
- }
-+static int linux_wallclock_sync(xc_interface *xch, xc_osdep_handle h)
-+{
-+    return ioctl(h, IOCTL_PRIVCMD_SYNC_WALLCLOCK, NULL);
-+}
-+
- static struct xc_osdep_ops linux_privcmd_ops = {
-     .open = &linux_privcmd_open,
-     .close = &linux_privcmd_close,
-@@ -426,6 +431,8 @@ static struct xc_osdep_ops linux_privcmd_ops = {
-         .map_foreign_bulk = &linux_privcmd_map_foreign_bulk,
-         .map_foreign_range = &linux_privcmd_map_foreign_range,
-         .map_foreign_ranges = &linux_privcmd_map_foreign_ranges,
-+
-+        .wallclock_sync = linux_wallclock_sync,
-     },
- };
-diff --git a/tools/libxc/xc_wallclock.c b/tools/libxc/xc_wallclock.c
-new file mode 100644
-index 0000000..5119b2a
---- /dev/null
-+++ b/tools/libxc/xc_wallclock.c
-@@ -0,0 +1,23 @@
-+/******************************************************************************
-+ * xc_wallclock.c
-+ *
-+ * API for the wallclock.
-+ *
-+ * Copyright (C) 2012, Citrix Systems (UK) Ltd.
-+ *
-+ * This library is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU Lesser General Public
-+ * License as published by the Free Software Foundation; either
-+ * version 2.1 of the License, or (at your option) any later version.
-+ */
-+
-+#include "xc_private.h"
-+
-+int xc_wallclock_sync(xc_interface *xch)
-+{
-+    if (xch->ops->u.privcmd.wallclock_sync == NULL) {
-+        errno = ENOSYS;
-+        return -1;
-+    }
-+    return xch->ops->u.privcmd.wallclock_sync(xch, xch->ops_handle);
-+}
-diff --git a/tools/libxc/xenctrl.h b/tools/libxc/xenctrl.h
-index 7eb5743..f9bb21b 100644
---- a/tools/libxc/xenctrl.h
-+++ b/tools/libxc/xenctrl.h
-@@ -2224,4 +2224,9 @@ int xc_compression_uncompress_page(xc_interface *xch, char *compbuf,
-                                  unsigned long compbuf_size,
-                                  unsigned long *compbuf_pos, char *dest);
-+/**
-+ * Synchronize Xen's wallclock with the current system time.
-+ */
-+int xc_wallclock_sync(xc_interface *xch);
-+
- #endif /* XENCTRL_H */
-diff --git a/tools/libxc/xenctrlosdep.h b/tools/libxc/xenctrlosdep.h
-index a36c4aa..3aa3360 100644
---- a/tools/libxc/xenctrlosdep.h
-+++ b/tools/libxc/xenctrlosdep.h
-@@ -89,6 +89,8 @@ struct xc_osdep_ops
-             void *(*map_foreign_ranges)(xc_interface *xch, xc_osdep_handle h, uint32_t dom, size_t size, int prot,
-                                         size_t chunksize, privcmd_mmap_entry_t entries[],
-                                         int nentries);
-+
-+            int (*wallclock_sync)(xc_interface *xch, xc_osdep_handle h);
-         } privcmd;
-         struct {
-             int (*fd)(xc_evtchn *xce, xc_osdep_handle h);
--- 
-1.7.2.5
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1350046970-2591-3-git-send-email-david.vrabel@citrix.com> b/test/corpus/<1350046970-2591-3-git-send-email-david.vrabel@citrix.com>
deleted file mode 100644 (file)
index 0ec566a..0000000
+++ /dev/null
@@ -1,250 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Oct 12 14:07:03 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 12 Oct 2012 14:07:03 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TMex7-0001wS-B4
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 12 Oct 2012 14:07:03 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TMetK-00005S-6U; Fri, 12 Oct 2012 13:03:02 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <david.vrabel@citrix.com>) id 1TMetI-00004z-FD
-       for xen-devel@lists.xen.org; Fri, 12 Oct 2012 13:03:00 +0000
-Received: from [85.158.138.51:4696] by server-7.bemta-3.messagelabs.com id
-       16/D2-06991-30518705; Fri, 12 Oct 2012 13:02:59 +0000
-X-Env-Sender: david.vrabel@citrix.com
-X-Msg-Ref: server-8.tower-174.messagelabs.com!1350046976!34078915!3
-X-Originating-IP: [66.165.176.89]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNzYwMjI=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 26896 invoked from network); 12 Oct 2012 13:02:59 -0000
-Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
-       by server-8.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
-       12 Oct 2012 13:02:59 -0000
-X-IronPort-AV: E=Sophos;i="4.80,576,1344211200"; d="scan'208";a="41022232"
-Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
-       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       12 Oct 2012 13:02:55 +0000
-Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
-       (10.13.107.66) with Microsoft SMTP Server id 8.3.279.1;
-       Fri, 12 Oct 2012 09:02:55 -0400
-Received: from qabil.uk.xensource.com ([10.80.2.76])   by
-       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
-       <david.vrabel@citrix.com>)      id 1TMetD-00063o-4a;
-       Fri, 12 Oct 2012 14:02:55 +0100
-From: David Vrabel <david.vrabel@citrix.com>
-To: xen-devel@lists.xen.org
-Date: Fri, 12 Oct 2012 14:02:50 +0100
-Message-ID: <1350046970-2591-3-git-send-email-david.vrabel@citrix.com>
-X-Mailer: git-send-email 1.7.2.5
-In-Reply-To: <1350046970-2591-1-git-send-email-david.vrabel@citrix.com>
-References: <1350046970-2591-1-git-send-email-david.vrabel@citrix.com>
-MIME-Version: 1.0
-Cc: David Vrabel <david.vrabel@citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: [Xen-devel] [PATCH 2/2] tools/misc: add xen-wallclock command
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-From: David Vrabel <david.vrabel@citrix.com>
-
-Add the xen-wallclock command for synchronizing the Xen wallclock to
-system time.  The command is similar to the hwclock command for
-synchronizing the hardware RTC and takes a similar --systowc command
-line option.
-
-Signed-off-by: David Vrabel <david.vrabel@citrix.com>
----
- .gitignore                 |    1 +
- .hgignore                  |    1 +
- tools/misc/Makefile        |    8 +++-
- tools/misc/xen-wallclock.c |   87 ++++++++++++++++++++++++++++++++++++++++++++
- 4 files changed, 95 insertions(+), 2 deletions(-)
- create mode 100644 tools/misc/xen-wallclock.c
-
-diff --git a/.gitignore b/.gitignore
-index f6edc43..a62abd2 100644
---- a/.gitignore
-+++ b/.gitignore
-@@ -196,6 +196,7 @@ tools/misc/xc_shadow
- tools/misc/xen_cpuperf
- tools/misc/xen-detect
- tools/misc/xen-tmem-list-parse
-+tools/misc/xen-wallclock
- tools/misc/xenperf
- tools/misc/xenpm
- tools/misc/xen-hvmctx
-diff --git a/.hgignore b/.hgignore
-index 344792a..3b6f747 100644
---- a/.hgignore
-+++ b/.hgignore
-@@ -198,6 +198,7 @@
- ^tools/misc/xen-hptool$
- ^tools/misc/xen-hvmcrash$
- ^tools/misc/xen-tmem-list-parse$
-+^tools/misc/xen-wallclock$
- ^tools/misc/xenperf$
- ^tools/misc/xenpm$
- ^tools/misc/xen-hvmctx$
-diff --git a/tools/misc/Makefile b/tools/misc/Makefile
-index 22e60fd..456d1ad 100644
---- a/tools/misc/Makefile
-+++ b/tools/misc/Makefile
-@@ -9,7 +9,8 @@ CFLAGS += $(CFLAGS_libxenstore)
- HDRS     = $(wildcard *.h)
--TARGETS-y := xenperf xenpm xen-tmem-list-parse gtraceview gtracestat xenlockprof xenwatchdogd
-+TARGETS-y := xenperf xenpm xen-tmem-list-parse gtraceview gtracestat xenlockprof xenwatchdogd \
-+      xen-wallclock
- TARGETS-$(CONFIG_X86) += xen-detect xen-hvmctx xen-hvmcrash xen-lowmemd
- TARGETS-$(CONFIG_MIGRATE) += xen-hptool
- TARGETS := $(TARGETS-y)
-@@ -22,7 +23,7 @@ INSTALL_BIN-y := xencons
- INSTALL_BIN-$(CONFIG_X86) += xen-detect
- INSTALL_BIN := $(INSTALL_BIN-y)
--INSTALL_SBIN-y := xm xen-bugtool xen-python-path xend xenperf xsview xenpm xen-tmem-list-parse gtraceview gtracestat xenlockprof xenwatchdogd xen-ringwatch
-+INSTALL_SBIN-y := xm xen-bugtool xen-python-path xend xenperf xsview xenpm xen-tmem-list-parse gtraceview gtracestat xenlockprof xenwatchdogd xen-ringwatch xen-wallclock
- INSTALL_SBIN-$(CONFIG_X86) += xen-hvmctx xen-hvmcrash xen-lowmemd
- INSTALL_SBIN-$(CONFIG_MIGRATE) += xen-hptool
- INSTALL_SBIN := $(INSTALL_SBIN-y)
-@@ -85,4 +86,7 @@ xen-lowmemd: xen-lowmemd.o
- gtraceview: gtraceview.o
-       $(CC) $(LDFLAGS) -o $@ $< $(CURSES_LIBS) $(APPEND_LDFLAGS)
-+xen-wallclock: xen-wallclock.o
-+      $(CC) $(LDFLAGS) -o $@ $< $(LDLIBS_libxenctrl) $(APPEND_LDFLAGS)
-+
- -include $(DEPS)
-diff --git a/tools/misc/xen-wallclock.c b/tools/misc/xen-wallclock.c
-new file mode 100644
-index 0000000..e4af166
---- /dev/null
-+++ b/tools/misc/xen-wallclock.c
-@@ -0,0 +1,87 @@
-+/*
-+ * xen-wallclock.c: manage the Xen wallclock.
-+ * Copyright (C) 2012, Citrix Systems (UK) Ltd.
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ */
-+#include <stdlib.h>
-+#include <stdio.h>
-+#include <string.h>
-+#include <errno.h>
-+#include <unistd.h>
-+#include <getopt.h>
-+
-+#include <xenctrl.h>
-+
-+static const char *exe_name;
-+
-+static void usage(FILE *f)
-+{
-+    fprintf(f, "Usage: %s --systowc\n", exe_name);
-+}
-+
-+static void help(void)
-+{
-+    usage(stdout);
-+    printf("Synchronize the Xen wallclock with system time.\n"
-+           "\n"
-+           "  -w, --systowc synchronize wallclock with system time\n"
-+           "      --help    display this help and exit\n");
-+    exit(0);
-+}
-+
-+int main(int argc, char *argv[])
-+{
-+    const static char sopts[] = "w";
-+    const static struct option lopts[] = {
-+        { "help", 0, NULL, 0 },
-+        { "systowc", 0, NULL, 'w' },
-+        { 0, 0, NULL, 0 },
-+    };
-+    int opt, opt_idx;
-+
-+    int systowc = 0;
-+    xc_interface *xch;
-+
-+    exe_name = argv[0];
-+
-+    while ( (opt = getopt_long(argc, argv, sopts, lopts, &opt_idx)) != -1 )
-+    {
-+        switch ( opt )
-+        {
-+        case 'w':
-+            systowc = 1;
-+            break;
-+        case 0:
-+            switch (opt_idx)
-+            {
-+            case 0:
-+                help();
-+            }
-+            break;
-+        default:
-+            usage(stderr);
-+            exit(1);
-+        }
-+    }
-+
-+    /* Valid combination of options? i.e., --systowc */
-+    if (!systowc)
-+    {
-+        usage(stderr);
-+        exit(1);
-+    }
-+
-+    xch = xc_interface_open(NULL, NULL, 0);
-+    if (xch == NULL)
-+    {
-+        exit(1);
-+    }
-+    xc_wallclock_sync(xch);
-+    xc_interface_close(xch);
-+
-+    return 0;
-+}
--- 
-1.7.2.5
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1350293121.18058.10.camel@zakaz.uk.xensource.com> b/test/corpus/<1350293121.18058.10.camel@zakaz.uk.xensource.com>
deleted file mode 100644 (file)
index 4700840..0000000
+++ /dev/null
@@ -1,129 +0,0 @@
-From xen-devel-bounces@lists.xen.org Mon Oct 15 10:33:20 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Mon, 15 Oct 2012 10:33:20 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TNh2x-0001Pp-F0
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Mon, 15 Oct 2012 10:33:20 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TNgvN-00068U-EV; Mon, 15 Oct 2012 09:25:25 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1TNgvM-00068K-KS
-       for xen-devel@lists.xen.org; Mon, 15 Oct 2012 09:25:24 +0000
-Received: from [85.158.139.211:19233] by server-2.bemta-5.messagelabs.com id
-       45/D8-10520-386DB705; Mon, 15 Oct 2012 09:25:23 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-3.tower-206.messagelabs.com!1350293122!22320096!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTQxMzE=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 3262 invoked from network); 15 Oct 2012 09:25:23 -0000
-Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-3.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
-       15 Oct 2012 09:25:23 -0000
-X-IronPort-AV: E=Sophos;i="4.80,587,1344211200"; d="scan'208";a="15164066"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       15 Oct 2012 09:25:22 +0000
-Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.279.1;
-       Mon, 15 Oct 2012 10:25:22 +0100
-Message-ID: <1350293121.18058.10.camel@zakaz.uk.xensource.com>
-From: Ian Campbell <Ian.Campbell@citrix.com>
-To: David Vrabel <david.vrabel@citrix.com>
-Date: Mon, 15 Oct 2012 10:25:21 +0100
-In-Reply-To: <1350046634-2462-3-git-send-email-david.vrabel@citrix.com>
-References: <1350046634-2462-1-git-send-email-david.vrabel@citrix.com>
-       <1350046634-2462-3-git-send-email-david.vrabel@citrix.com>
-Organization: Citrix Systems, Inc.
-X-Mailer: Evolution 3.4.3-1 
-MIME-Version: 1.0
-Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.6 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 2/3] xen: add correct 500 ms offset when
- setting Xen wallclock
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Fri, 2012-10-12 at 13:57 +0100, David Vrabel wrote:
-> From: David Vrabel <david.vrabel@citrix.com>
-> 
-> update_persistent_wallclock() (and hence xet_set_wallclock()) is
-> called 500 ms after the second.
-
-The comment in sync_cmos_clock says it is called 500ms before the next
-second.
-
-I only mention it to double check that the right semantics for
-set_wallclock are being implemented, i.e. that we are compensating in
-the right direction.
-
->   xen_set_wallclock() was not
-> considering this so the Xen wallclock would end up ~500 ms behind the
-> correct time.
-> 
-> Signed-off-by: David Vrabel <david.vrabel@citrix.com>
-> ---
->  arch/x86/xen/time.c |    9 +++++++--
->  1 files changed, 7 insertions(+), 2 deletions(-)
-> 
-> diff --git a/arch/x86/xen/time.c b/arch/x86/xen/time.c
-> index 5e7f536..11770d0 100644
-> --- a/arch/x86/xen/time.c
-> +++ b/arch/x86/xen/time.c
-> @@ -212,10 +212,15 @@ static int xen_set_wallclock(unsigned long now)
->      /* Set the hardware RTC. */
->      mach_set_rtc_mmss(now);
->  
-> -    /* Set the Xen wallclock. */
-> +    /*
-> +     * Set the Xen wallclock.
-> +     *
-> +     * update_persistent_wallclock() is called ~500 ms after 'now'
-> +     * so add an extra 500 ms.
-> +     */
->      op.cmd = XENPF_settime;
->      op.u.settime.secs = now;
-> -    op.u.settime.nsecs = 0;
-> +    op.u.settime.nsecs = NSEC_PER_SEC / 2;
->      op.u.settime.system_time = xen_clocksource_read();
->  
->      rc = HYPERVISOR_dom0_op(&op);
-
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1350293217.18058.11.camel@zakaz.uk.xensource.com> b/test/corpus/<1350293217.18058.11.camel@zakaz.uk.xensource.com>
deleted file mode 100644 (file)
index bc5b75e..0000000
+++ /dev/null
@@ -1,116 +0,0 @@
-From xen-devel-bounces@lists.xen.org Mon Oct 15 10:34:52 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Mon, 15 Oct 2012 10:34:52 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TNh4R-0001QP-7Z
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Mon, 15 Oct 2012 10:34:52 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TNgzy-0006Nn-NU; Mon, 15 Oct 2012 09:30:10 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1TNgzw-0006NV-DH
-       for xen-devel@lists.xen.org; Mon, 15 Oct 2012 09:30:08 +0000
-Received: from [85.158.143.35:24177] by server-2.bemta-4.messagelabs.com id
-       C8/F3-25171-F97DB705; Mon, 15 Oct 2012 09:30:07 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-5.tower-21.messagelabs.com!1350293261!5295227!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTQxMzE=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 18307 invoked from network); 15 Oct 2012 09:27:41 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-5.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
-       15 Oct 2012 09:27:41 -0000
-X-IronPort-AV: E=Sophos;i="4.80,587,1344211200"; d="scan'208";a="15164166"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       15 Oct 2012 09:26:59 +0000
-Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.279.1;
-       Mon, 15 Oct 2012 10:26:59 +0100
-Message-ID: <1350293217.18058.11.camel@zakaz.uk.xensource.com>
-From: Ian Campbell <Ian.Campbell@citrix.com>
-To: David Vrabel <david.vrabel@citrix.com>
-Date: Mon, 15 Oct 2012 10:26:57 +0100
-In-Reply-To: <50784462.3060203@citrix.com>
-References: <1350046634-2462-1-git-send-email-david.vrabel@citrix.com>
-       <50784462.3060203@citrix.com>
-Organization: Citrix Systems, Inc.
-X-Mailer: Evolution 3.4.3-1 
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
-       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.6 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 0/3] xen: fix various wallclock problems
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Fri, 2012-10-12 at 17:25 +0100, David Vrabel wrote:
-> On 12/10/12 13:57, David Vrabel wrote:
-> > This series (with some toolstack updates) corrects a number of cases
-> > where a guest can see an incorrect wallclock time.
-> > 
-> > 1. Systems with NTP won't periodically synchronize the hardware RTC so
-> > the wallclock may be incorrect after a reboot.
-> > 
-> > 2. The wallclock is always ~500 ms behind the correct time.
-> > 
-> > 3. If the system time was stepped and NTP isn't synchronized yet, the
-> > wallclock will still have the incorrect time.  The fix for this
-> > requires the toolstack to synchronize the wallclock -- patch #3
-> > provides the mechanism for this.
-> 
-> These tables should help.
-> 
-> Before:
-> 
->               |                Updates
-> Process            | System Time?  Xen Wallclock?  Hardware Clock?
-> -------------------------------------------------------------
-> date -s       | X
-> hwclock -w    |                               X
-> ntpd          | X             X[*]
-> ntpdate       | X
-
-What does the equivalent table for native look like?
-
-Is the "updated hardware clock" column in that caseis union of xen
-wallclock and hardware clock columns here?
-
-Ian.
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1350293719.18058.13.camel@zakaz.uk.xensource.com> b/test/corpus/<1350293719.18058.13.camel@zakaz.uk.xensource.com>
deleted file mode 100644 (file)
index ca6168f..0000000
+++ /dev/null
@@ -1,143 +0,0 @@
-From xen-devel-bounces@lists.xen.org Mon Oct 15 10:40:22 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Mon, 15 Oct 2012 10:40:22 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TNh9o-0001Ry-6E
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Mon, 15 Oct 2012 10:40:22 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TNh57-0006lk-IS; Mon, 15 Oct 2012 09:35:29 +0000
-Received: from mail27.messagelabs.com ([193.109.254.147])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1TNh55-0006kS-H9
-       for xen-devel@lists.xen.org; Mon, 15 Oct 2012 09:35:27 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-16.tower-27.messagelabs.com!1350293721!13263094!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTQxMzE=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 26177 invoked from network); 15 Oct 2012 09:35:21 -0000
-Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-16.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
-       15 Oct 2012 09:35:21 -0000
-X-IronPort-AV: E=Sophos;i="4.80,587,1344211200"; d="scan'208";a="15164492"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       15 Oct 2012 09:35:21 +0000
-Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.279.1;
-       Mon, 15 Oct 2012 10:35:21 +0100
-Message-ID: <1350293719.18058.13.camel@zakaz.uk.xensource.com>
-From: Ian Campbell <Ian.Campbell@citrix.com>
-To: David Vrabel <david.vrabel@citrix.com>
-Date: Mon, 15 Oct 2012 10:35:19 +0100
-In-Reply-To: <1350046970-2591-3-git-send-email-david.vrabel@citrix.com>
-References: <1350046970-2591-1-git-send-email-david.vrabel@citrix.com>
-       <1350046970-2591-3-git-send-email-david.vrabel@citrix.com>
-Organization: Citrix Systems, Inc.
-X-Mailer: Evolution 3.4.3-1 
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.6 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 2/2] tools/misc: add xen-wallclock command
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Fri, 2012-10-12 at 14:02 +0100, David Vrabel wrote:
-> +int main(int argc, char *argv[])
-> +{
-> +    const static char sopts[] = "w";
-> +    const static struct option lopts[] = {
-> +        { "help", 0, NULL, 0 },
-> +        { "systowc", 0, NULL, 'w' },
-> +        { 0, 0, NULL, 0 },
-> +    };
-> +    int opt, opt_idx;
-> +
-> +    int systowc = 0;
-> +    xc_interface *xch;
-> +
-> +    exe_name = argv[0];
-> +
-> +    while ( (opt = getopt_long(argc, argv, sopts, lopts, &opt_idx)) != -1 )
-> +    {
-> +        switch ( opt )
-> +        {
-> +        case 'w':
-> +            systowc = 1;
-> +            break;
-> +        case 0:
-> +            switch (opt_idx)
-> +            {
-> +            case 0:
-> +                help();
-> +            }
-> +            break;
-> +        default:
-> +            usage(stderr);
-> +            exit(1);
-> +        }
-> +    }
-> +
-> +    /* Valid combination of options? i.e., --systowc */
-> +    if (!systowc)
-> +    {
-> +        usage(stderr);
-> +        exit(1);
-> +    }
-> +
-> +    xch = xc_interface_open(NULL, NULL, 0);
-> +    if (xch == NULL)
-> +    {
-
-I forget: Does xc_interface_open log on error?
-
-> +        exit(1);
-> +    }
-> +    xc_wallclock_sync(xch);
-
-Worth logging if this fails?
-
-I suppose we want to hold off on this and the first patch until the
-Linux side is agreed and committed?
-
-> +    xc_interface_close(xch);
-> +
-> +    return 0;
-> +}
-
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1350304068.18058.41.camel@zakaz.uk.xensource.com> b/test/corpus/<1350304068.18058.41.camel@zakaz.uk.xensource.com>
deleted file mode 100644 (file)
index 1245097..0000000
+++ /dev/null
@@ -1,112 +0,0 @@
-From xen-devel-bounces@lists.xen.org Mon Oct 15 13:32:20 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Mon, 15 Oct 2012 13:32:20 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TNjqA-00023x-LH
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Mon, 15 Oct 2012 13:32:20 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TNjlw-0006U8-UM; Mon, 15 Oct 2012 12:27:52 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1TNjlv-0006Tt-6f
-       for xen-devel@lists.xen.org; Mon, 15 Oct 2012 12:27:51 +0000
-Received: from [85.158.139.211:7088] by server-9.bemta-5.messagelabs.com id
-       E5/4C-23053-6410C705; Mon, 15 Oct 2012 12:27:50 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-5.tower-206.messagelabs.com!1350304069!22316327!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTQxMzE=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 12018 invoked from network); 15 Oct 2012 12:27:50 -0000
-Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-5.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
-       15 Oct 2012 12:27:50 -0000
-X-IronPort-AV: E=Sophos;i="4.80,587,1344211200"; d="scan'208";a="15170071"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       15 Oct 2012 12:27:49 +0000
-Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.279.1;
-       Mon, 15 Oct 2012 13:27:49 +0100
-Message-ID: <1350304068.18058.41.camel@zakaz.uk.xensource.com>
-From: Ian Campbell <Ian.Campbell@citrix.com>
-To: David Vrabel <david.vrabel@citrix.com>
-Date: Mon, 15 Oct 2012 13:27:48 +0100
-In-Reply-To: <507BFFD0.2010707@citrix.com>
-References: <1350046634-2462-1-git-send-email-david.vrabel@citrix.com>
-       <1350046634-2462-3-git-send-email-david.vrabel@citrix.com>
-       <1350293121.18058.10.camel@zakaz.uk.xensource.com>
-       <507BFFD0.2010707@citrix.com>
-Organization: Citrix Systems, Inc.
-X-Mailer: Evolution 3.4.3-1 
-MIME-Version: 1.0
-Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.6 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 2/3] xen: add correct 500 ms offset when
- setting Xen wallclock
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Mon, 2012-10-15 at 13:21 +0100, David Vrabel wrote:
-> On 15/10/12 10:25, Ian Campbell wrote:
-> > On Fri, 2012-10-12 at 13:57 +0100, David Vrabel wrote:
-> >> From: David Vrabel <david.vrabel@citrix.com>
-> >>
-> >> update_persistent_wallclock() (and hence xet_set_wallclock()) is
-> >> called 500 ms after the second.
-> > 
-> > The comment in sync_cmos_clock says it is called 500ms before the next
-> > second.
-> 
-> This is the same thing, right?
-
-It matters in the native case, where, If I'm reading it right, things
-are setup such thatthe time change happens on the next second tick over.
-I just wanted to check it did/didn't matter here as well.
-
-> 
-> > I only mention it to double check that the right semantics for
-> > set_wallclock are being implemented, i.e. that we are compensating in
-> > the right direction.
-> 
-> I'll add some debug code to make sure.
-> 
-> David
-
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1350383800.18058.114.camel@zakaz.uk.xensource.com> b/test/corpus/<1350383800.18058.114.camel@zakaz.uk.xensource.com>
deleted file mode 100644 (file)
index b0b0e62..0000000
+++ /dev/null
@@ -1,164 +0,0 @@
-From xen-devel-bounces@lists.xen.org Tue Oct 16 11:43:12 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Tue, 16 Oct 2012 11:43:12 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TO4c9-0002E2-QU
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 16 Oct 2012 11:43:12 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TO4Vx-00013e-Ik; Tue, 16 Oct 2012 10:36:45 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1TO4Vw-00013Y-L0
-       for xen-devel@lists.xensource.com; Tue, 16 Oct 2012 10:36:44 +0000
-Received: from [85.158.139.83:14434] by server-3.bemta-5.messagelabs.com id
-       0D/54-28618-BB83D705; Tue, 16 Oct 2012 10:36:43 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-2.tower-182.messagelabs.com!1350383802!32220565!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTQzMzg=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 28966 invoked from network); 16 Oct 2012 10:36:43 -0000
-Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-2.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
-       16 Oct 2012 10:36:43 -0000
-X-IronPort-AV: E=Sophos;i="4.80,593,1344211200"; d="scan'208";a="15199297"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       16 Oct 2012 10:36:42 +0000
-Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.279.1;
-       Tue, 16 Oct 2012 11:36:42 +0100
-Message-ID: <1350383800.18058.114.camel@zakaz.uk.xensource.com>
-From: Ian Campbell <Ian.Campbell@citrix.com>
-To: Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-Date: Tue, 16 Oct 2012 11:36:40 +0100
-In-Reply-To: <alpine.DEB.2.02.1208161523420.4850@kaball.uk.xensource.com>
-References: <alpine.DEB.2.02.1208161523420.4850@kaball.uk.xensource.com>
-Organization: Citrix Systems, Inc.
-X-Mailer: Evolution 3.4.3-1 
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
-       Keir Fraser <keir@xen.org>, "Tim Deegan \(3P\)" <Tim.Deegan@citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.6 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH v3 0/6] ARM hypercall ABI: 64 bit ready
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Thu, 2012-08-16 at 15:48 +0100, Stefano Stabellini wrote:
-> In this version of the patch series I have introduced conversion macros
-> to convert a XEN_GUEST_HANDLE_PARAM into a XEN_GUEST_HANDLE a vice
-> versa. Most of the problematic cases come from xen/arch/x86 code, in
-> order to spot them I wrote a simple debug patch that change the
-> definition of XEN_GUEST_HANDLE_PARAM to be different from
-> XEN_GUEST_HANDLE on x86 too. I am attaching the debug patch to this
-> email. 
-
-This (quoted below) seems like a useful patch from the PoV of catching
-these sorts of things early on x86 before they break ARM.
-
-It doesn't seem like it should have any impact on the generated code,
-should we perhaps apply it?
-
-I needed the addition of the following to actually make it work though.
-
-diff --git a/xen/include/asm-x86/guest_access.h b/xen/include/asm-x86/guest_acce
-index ca700c9..33b4afd 100644
---- a/xen/include/asm-x86/guest_access.h
-+++ b/xen/include/asm-x86/guest_access.h
-@@ -54,22 +54,24 @@
- /* Cast a XEN_GUEST_HANDLE to XEN_GUEST_HANDLE_PARAM */
- #define guest_handle_to_param(hnd, type) ({                  \
-+    typeof((hnd).p) _x = (hnd).p;                            \
-+    XEN_GUEST_HANDLE_PARAM(type) _y = { _x };                \
-     /* type checking: make sure that the pointers inside     \
-      * XEN_GUEST_HANDLE and XEN_GUEST_HANDLE_PARAM are of    \
-      * the same type, then return hnd */                     \
--    (void)((typeof(&(hnd).p)) 0 ==                           \
--        (typeof(&((XEN_GUEST_HANDLE_PARAM(type)) {}).p)) 0); \
--    (hnd);                                                   \
-+    (void)(&_x == &_y.p);                                    \
-+    _y;                                                      \
- })
- /* Cast a XEN_GUEST_HANDLE_PARAM to XEN_GUEST_HANDLE */
--#define guest_handle_from_param(hnd, type) ({                \
--    /* type checking: make sure that the pointers inside     \
--     * XEN_GUEST_HANDLE and XEN_GUEST_HANDLE_PARAM are of    \
--     * the same type, then return hnd */                     \
--    (void)((typeof(&(hnd).p)) 0 ==                           \
--        (typeof(&((XEN_GUEST_HANDLE_PARAM(type)) {}).p)) 0); \
--    (hnd);                                                   \
-+#define guest_handle_from_param(hnd, type) ({               \
-+    typeof((hnd).p) _x = (hnd).p;                           \
-+    XEN_GUEST_HANDLE(type) _y = { _x };                     \
-+    /* type checking: make sure that the pointers inside    \
-+     * XEN_GUEST_HANDLE and XEN_GUEST_HANDLE_PARAM are of   \
-+     * the same type, then return hnd */                    \
-+    (void)(&_x == &_y.p);                                   \
-+    _y;                                                     \
- })
- #define guest_handle_for_field(hnd, type, fld)          \
-
-
-> diff --git a/xen/include/public/arch-x86/xen.h b/xen/include/public/arch-x86/xen.h
-> index 0e10260..08a788e 100644
-> --- a/xen/include/public/arch-x86/xen.h
-> +++ b/xen/include/public/arch-x86/xen.h
-> @@ -32,7 +32,8 @@
->  /* Structural guest handles introduced in 0x00030201. */
->  #if __XEN_INTERFACE_VERSION__ >= 0x00030201
->  #define ___DEFINE_XEN_GUEST_HANDLE(name, type) \
-> -    typedef struct { type *p; } __guest_handle_ ## name
-> +    typedef struct { type *p; } __guest_handle_ ## name; \
-> +    typedef struct { type *p; } __guest_handle_param_ ## name
->  #else
->  #define ___DEFINE_XEN_GUEST_HANDLE(name, type) \
->      typedef type * __guest_handle_ ## name
-> @@ -52,7 +53,7 @@
->  #define DEFINE_XEN_GUEST_HANDLE(name)   __DEFINE_XEN_GUEST_HANDLE(name, name)
->  #define __XEN_GUEST_HANDLE(name)        __guest_handle_ ## name
->  #define XEN_GUEST_HANDLE(name)          __XEN_GUEST_HANDLE(name)
-> -#define XEN_GUEST_HANDLE_PARAM(name)    XEN_GUEST_HANDLE(name)
-> +#define XEN_GUEST_HANDLE_PARAM(name)    __guest_handle_param_ ## name
->  #define set_xen_guest_handle_raw(hnd, val)  do { (hnd).p = val; } while (0)
->  #ifdef __XEN_TOOLS__
->  #define get_xen_guest_handle(val, hnd)  do { val = (hnd).p; } while (0)
-> 
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1350479456-4007-1-git-send-email-stefan.bader@canonical.com> b/test/corpus/<1350479456-4007-1-git-send-email-stefan.bader@canonical.com>
deleted file mode 100644 (file)
index d116ccb..0000000
+++ /dev/null
@@ -1,226 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Oct 17 14:15:12 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 17 Oct 2012 14:15:12 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TOTSk-00038L-A7
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 17 Oct 2012 14:15:12 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TOTOr-0002Jd-R9; Wed, 17 Oct 2012 13:11:05 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <stefan.bader@canonical.com>) id 1TOTOq-0002JX-3q
-       for xen-devel@lists.xen.org; Wed, 17 Oct 2012 13:11:04 +0000
-Received: from [85.158.139.83:21817] by server-1.bemta-5.messagelabs.com id
-       24/0A-21640-76EAE705; Wed, 17 Oct 2012 13:11:03 +0000
-X-Env-Sender: stefan.bader@canonical.com
-X-Msg-Ref: server-4.tower-182.messagelabs.com!1350479459!30743341!1
-X-Originating-IP: [91.189.89.112]
-X-SpamReason: No, hits=0.0 required=7.0 tests=
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 18321 invoked from network); 17 Oct 2012 13:10:59 -0000
-Received: from youngberry.canonical.com (HELO youngberry.canonical.com)
-       (91.189.89.112) by server-4.tower-182.messagelabs.com with SMTP;
-       17 Oct 2012 13:10:59 -0000
-Received: from p5b2e42c0.dip.t-dialin.net ([91.46.66.192] helo=canonical.com)
-       by youngberry.canonical.com with esmtpsa
-       (TLS1.0:DHE_RSA_AES_128_CBC_SHA1:16) (Exim 4.71)
-       (envelope-from <stefan.bader@canonical.com>)
-       id 1TOTOk-0007hW-3S; Wed, 17 Oct 2012 13:10:58 +0000
-From: Stefan Bader <stefan.bader@canonical.com>
-To: xen-devel@lists.xen.org
-Date: Wed, 17 Oct 2012 15:10:56 +0200
-Message-Id: <1350479456-4007-1-git-send-email-stefan.bader@canonical.com>
-X-Mailer: git-send-email 1.7.9.5
-Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-MIME-Version: 1.0
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.6 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: [Xen-devel] Xen PVM: Strange lockups when running PostgreSQL load
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-I am currently looking at a bug report[1] which is happening when
-a Xen PVM guest with multiple VCPUs is running a high IO database
-load (a test script is available in the bug report).
-
-In experimenting it seems that this happens (or is getting more
-likely) when the number of VCPUs is 8 or higher (though I have
-not tried 6, only 2 and 4), having autogroup enabled seems to
-make it more likely, too (at some point thought it would actually
-prevent it but we were wrong) and pv spinlocks enabled.
-It has happened with older (3.4.3) and newer (4.1.2) versions of
-Xen as a host and with 3.2 and 3.5 kernels as guests.
-
-The pv spinlock assumption I will try to get re-verified by asking
-to reproduce under a real load with a kernel that just disables
-that. However, the dumps I am looking at really do look odd there.
-
-The first dump I looked at had the spinlock of runqueue[0] being
-placed into the per-cpu lock_spinners variable for cpu#0 and
-cpu#7 (doing my tests with 8 VCPUs). So apparently both cpus were
-waiting on the slow path for it to become free. Though actually
-it was free! Now, here is one issue I have in understanding the
-dump: the back traces produced in crash are in the normal form
-not showing any cpu in the poll_irq HV call. Only when using
-the form that uses the last known stack location and displays
-all text symols found will get close for cpu#7. cpu#0 still does
-not seem to be anywhere close. This could be a problem with crash,
-or with the way PVM works, I am not sure.
-
-Anyway, from what I could take from that situation, it seemed that
-cpu#1 (that one had soft lockup warnings in the log) seemed to try
-to do a wake_up on the task that just seemed to have done an io
-schedule on cpu#7 (but the waitqueue_head spinlock is currently
-locked). cpu#7 tries to get the runqueue[0] spinlock to do an idle
-migration (though the lock currently is free). So I guessed that
-maybe cpu#0 was just woken for the free lock but has not grabbed
-it yet.
-
->From there I wondered whether something that acquires a spinlock
-usually more than the quick path timeout (and this causes new
-lockers to go into the slow path), could cause a stall on a high
-numbered cpu when the lock is contented (as the search and
-signalling is only done for the first waiter starting from 0).
-That lead to below patch. The good thing about it, it does not
-break things immediately, the bad thing, it does not help with
-the problem. :/
-
-The interesting thing when looking at a second dump, taken with
-a testkernel using the patch below, was that again 2 cpus seemed
-to spin slow on a lock that was free in the dump. And again at
-least one did not seem to be doing anything spinlock related
-(anymore?).
-One other detail (but that could be just incidence as well) was
-that in unmodified kernel I usually would end up with soft
-lockup messages, with the patched kernel, that was a stall
-detected by rcu_bh (0 and 1 stalled, detected by 3).
-
-Now I am a bit confused and wonder about some basic things:
-1. When a cpu goes into the slow lock path and into the poll_irq,
-   shouldn't I expect this one to be in hypercall_page in the
-   dump?
-2. When does the whole handling for interrupted spinlock wait
-   apply? I assume only for a spinlock taken without irqs
-   disabled and then trying to acquire another one in an
-   interrupt handler. Is that correct?
-3. Not really related but I just stumbled over it:
-   In xen_spin_trylock: "asm("xchgb %b0,%1"...)
-   What does the "b" part of %b0 do? I thought xchgb already
-   would say it is a byte value...
-
-But putting aside those questions, the fact that two times
-there was two cpus waiting on the same lock which from the
-lock count (=0) was free seems a bit too much of a coincidence.
-Oh and the spinners count in the lock was 2 as one would
-expect.
-
-struct rq {
-  lock = {
-    raw_lock = {
-      {
-        head_tail = 512, 
-        tickets = {
-          head = 0 '\000', 
-          tail = 2 '\002'
-        }
-      }
-    }
-  }, 
-  nr_running = 1,
-  ...
-}
-
-I really don't know how this happens. Especially cpu#0 seems at
-least past the wakeup and should have removed itself from the
-spinners list...
--Stefan
-
-[1] http://bugs.launchpad.net/bugs/1011792
-
->From 635a4e101ccbc9a324c8000f7e264ed4e646592c Mon Sep 17 00:00:00 2001
-From: Stefan Bader <stefan.bader@canonical.com>
-Date: Tue, 16 Oct 2012 17:46:09 +0200
-Subject: [PATCH] xen/spinlocks: Make wakeup fairer
-
-Instead of sending the IPI signalling the free lock to the first
-online CPU found waiting for it, start the search from the CPU
-that had the lock last.
-
-Signed-off-by: Stefan Bader <stefan.bader@canonical.com>
----
- arch/x86/xen/spinlock.c |   22 ++++++++++++++--------
- 1 file changed, 14 insertions(+), 8 deletions(-)
-
-diff --git a/arch/x86/xen/spinlock.c b/arch/x86/xen/spinlock.c
-index d69cc6c..8b86efb 100644
---- a/arch/x86/xen/spinlock.c
-+++ b/arch/x86/xen/spinlock.c
-@@ -320,17 +320,23 @@ static void xen_spin_lock_flags(struct arch_spinlock *lock, unsigned long flags)
- static noinline void xen_spin_unlock_slow(struct xen_spinlock *xl)
- {
-       int cpu;
-+      int this_cpu = smp_processor_id();
-       ADD_STATS(released_slow, 1);
--      for_each_online_cpu(cpu) {
--              /* XXX should mix up next cpu selection */
--              if (per_cpu(lock_spinners, cpu) == xl) {
--                      ADD_STATS(released_slow_kicked, 1);
--                      xen_send_IPI_one(cpu, XEN_SPIN_UNLOCK_VECTOR);
--                      break;
--              }
--      }
-+      cpu = cpumask_next(this_cpu, cpu_online_mask);
-+      do {
-+              if (cpu < nr_cpu_ids) {
-+                      if (per_cpu(lock_spinners, cpu) == xl) {
-+                              ADD_STATS(released_slow_kicked, 1);
-+                              xen_send_IPI_one(cpu, XEN_SPIN_UNLOCK_VECTOR);
-+                              break;
-+                      }
-+              } else
-+                      cpu = -1;
-+
-+              cpu = cpumask_next(cpu, cpu_online_mask);
-+      } while (cpu != this_cpu);
- }
- static void xen_spin_unlock(struct arch_spinlock *lock)
--- 
-1.7.9.5
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1350482118.2460.74.camel@zakaz.uk.xensource.com> b/test/corpus/<1350482118.2460.74.camel@zakaz.uk.xensource.com>
deleted file mode 100644 (file)
index d11c3cb..0000000
+++ /dev/null
@@ -1,114 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Oct 17 14:59:08 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 17 Oct 2012 14:59:08 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TOU9G-0003KB-Vp
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 17 Oct 2012 14:59:08 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TOU5k-0003oK-Dt; Wed, 17 Oct 2012 13:55:24 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1TOU5i-0003nv-HC
-       for xen-devel@lists.xen.org; Wed, 17 Oct 2012 13:55:22 +0000
-Received: from [85.158.137.99:40070] by server-15.bemta-3.messagelabs.com id
-       19/76-10261-9C8BE705; Wed, 17 Oct 2012 13:55:21 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-11.tower-217.messagelabs.com!1350482120!20733118!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTQ2NDQ=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 18718 invoked from network); 17 Oct 2012 13:55:20 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-11.tower-217.messagelabs.com with RC4-SHA encrypted SMTP;
-       17 Oct 2012 13:55:20 -0000
-X-IronPort-AV: E=Sophos;i="4.80,600,1344211200"; d="scan'208";a="15227744"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       17 Oct 2012 13:55:20 +0000
-Received: from [10.80.2.42] (10.80.2.42) by LONPMAILMX01.citrite.net
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.279.1;
-       Wed, 17 Oct 2012 14:55:20 +0100
-Message-ID: <1350482118.2460.74.camel@zakaz.uk.xensource.com>
-From: Ian Campbell <Ian.Campbell@citrix.com>
-To: Andrew Cooper <andrew.cooper3@citrix.com>
-Date: Wed, 17 Oct 2012 14:55:18 +0100
-In-Reply-To: <507EB27D.8050308@citrix.com>
-References: <1350479456-4007-1-git-send-email-stefan.bader@canonical.com>
-       <507EB27D.8050308@citrix.com>
-Organization: Citrix Systems, Inc.
-X-Mailer: Evolution 3.4.3-1 
-MIME-Version: 1.0
-Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
-       "stefan.bader@canonical.com" <stefan.bader@canonical.com>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.6 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] Xen PVM: Strange lockups when running PostgreSQL
- load
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Wed, 2012-10-17 at 14:28 +0100, Andrew Cooper wrote:
-> In our case, certain processes were locking up, and it turned out that
-> the kernel was issuing SCHOP_poll hypercalls (same the stack trace on
-> your launchpad ticket) on its own spinlock IPI event channel
-> (understandable, as its a spinlock), but with the event channel
-> masked, so it would never wake up from the poll. 
-
-I think (but you might want to check) that SCHEDOP_poll works (or is
-supposed to work!) regardless of whether the specific evtchn you ask for
-is masked or not.
-
-The Linux PV spinlock implementation takes advantage of this because it
-never wants to take a real interrupt from the spinlock poller evtchn.
-
-The IRQ handler for the spinlock evtchn in Linux is:
-        static irqreturn_t dummy_handler(int irq, void *dev_id)
-        {
-                BUG();
-                return IRQ_HANDLED;
-        }
-        
-and right after we register it:
-                disable_irq(irq); /* make sure it's never delivered */
-
-The is no enable -- ignoring bugs of which there have been couple of
-instances, but those trigger the BUG() so are pretty obvious.
-
-Ian.
-
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1350546483.28188.25.camel@dagon.hellion.org.uk> b/test/corpus/<1350546483.28188.25.camel@dagon.hellion.org.uk>
deleted file mode 100644 (file)
index e510f58..0000000
+++ /dev/null
@@ -1,130 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Oct 18 08:51:37 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 18 Oct 2012 08:51:37 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TOktD-0002jb-87
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 18 Oct 2012 08:51:37 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TOkpr-0002tX-RV; Thu, 18 Oct 2012 07:48:07 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Campbell@citrix.com>) id 1TOkpq-0002tP-4i
-       for xen-devel@lists.xen.org; Thu, 18 Oct 2012 07:48:06 +0000
-Received: from [85.158.137.99:42817] by server-16.bemta-3.messagelabs.com id
-       3C/A8-16565-534BF705; Thu, 18 Oct 2012 07:48:05 +0000
-X-Env-Sender: Ian.Campbell@citrix.com
-X-Msg-Ref: server-16.tower-217.messagelabs.com!1350546484!22036927!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTQ3NzU=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 6565 invoked from network); 18 Oct 2012 07:48:04 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-16.tower-217.messagelabs.com with RC4-SHA encrypted SMTP;
-       18 Oct 2012 07:48:04 -0000
-X-IronPort-AV: E=Sophos;i="4.80,606,1344211200"; d="scan'208";a="15245767"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       18 Oct 2012 07:48:04 +0000
-Received: from [127.0.0.1] (10.80.16.67) by smtprelay.citrix.com
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.279.1;
-       Thu, 18 Oct 2012 08:48:04 +0100
-Message-ID: <1350546483.28188.25.camel@dagon.hellion.org.uk>
-From: Ian Campbell <Ian.Campbell@citrix.com>
-To: Stefan Bader <stefan.bader@canonical.com>
-Date: Thu, 18 Oct 2012 08:48:03 +0100
-In-Reply-To: <507FB1E1.8080700@canonical.com>
-References: <1350479456-4007-1-git-send-email-stefan.bader@canonical.com>
-       <507EB27D.8050308@citrix.com>
-       <1350482118.2460.74.camel@zakaz.uk.xensource.com>
-       <507ECD06.2050407@canonical.com> <507ED038.8000806@citrix.com>
-       <507FC51102000078000A235E@nat28.tlf.novell.com>
-       <507FC71502000078000A236C@nat28.tlf.novell.com>
-       <507FB1E1.8080700@canonical.com>
-Organization: Citrix Systems, Inc.
-X-Mailer: Evolution 3.4.3-1 
-MIME-Version: 1.0
-Cc: Andrew Cooper <Andrew.Cooper3@citrix.com>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
-       Jan Beulich <JBeulich@suse.com>,
-       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.6 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] Xen PVM: Strange lockups when running PostgreSQL
- load
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Thu, 2012-10-18 at 08:38 +0100, Stefan Bader wrote:
-> On 18.10.2012 09:08, Jan Beulich wrote:
-> >>>> On 18.10.12 at 09:00, "Jan Beulich" <JBeulich@suse.com> wrote:
-> >>>>> On 17.10.12 at 17:35, Andrew Cooper <andrew.cooper3@citrix.com> wrote:
-> >>> In each case, the event channels are masked (no surprise given the
-> >>> conversation so far on this thread), and have no pending events. 
-> >>> Therefore, I believe we are looking at the same bug.
-> >>
-> >> That seems very unlikely (albeit not impossible) to me, given that
-> >> the non-pvops kernel uses ticket locks while the pvops one doesn't.
-> > 
-> > And in fact we had a similar problem with our original ticket lock
-> > implementation, exposed by an open coded lock in the scheduler's
-> > run queue management. But that was really ticket lock specific,
-> > in that the fact that a CPU could passively become the owner of
-> > a lock while polling - that's impossible with pvops' byte locks afaict.
-> 
-> One of the trains of thought I had was whether it could happen that a cpu is in
-> polling and the task gets moved. But I don't think it can happen as the
-> hypercall unlikely is a place where any schedule happens (preempt is none). And
-> it would be much more common...
-> 
-> One detail which I hope someone can fill in is the whole "interrupted spinlock"
-> thing. Saving the last lock pointer stored on the per-cpu lock_spinners and so
-> on. Is that really only for spinlocks taken without interrupts disabled or do I
-> miss something there?
-
-spinning_lock() returns the old lock which the caller is expected to
-remember and replace via unspinning_lock() -- it effectively implements
-a stack of locks which are being waited on. xen_spin_lock_slow (the only
-caller0 appears to do this correctly from a brief inspection.
-
-Is there any chance this is just a simple AB-BA or similar type
-deadlock? Do we have data which suggests all vCPUs are waiting on the
-same lock or just that they are waiting on some lock? I suppose lockdep
-(which I think you mentioned before?) would have caught this, unless pv
-locks somehow confound it?
-
-Ian.
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1377403931.20120901011625@eikelenboom.it> b/test/corpus/<1377403931.20120901011625@eikelenboom.it>
deleted file mode 100644 (file)
index 94f4f4d..0000000
+++ /dev/null
@@ -1,174 +0,0 @@
-From xen-devel-bounces@lists.xen.org Sat Sep 01 00:21:09 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Sat, 01 Sep 2012 00:21:09 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T7aWP-0000AM-5e
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Sat, 01 Sep 2012 00:21:09 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T7aS6-00006D-W4; Fri, 31 Aug 2012 23:16:38 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <linux@eikelenboom.it>) id 1T7aS4-000068-Ci
-       for xen-devel@lists.xen.org; Fri, 31 Aug 2012 23:16:36 +0000
-Received: from [85.158.143.35:9958] by server-1.bemta-4.messagelabs.com id
-       CD/B2-12504-3D541405; Fri, 31 Aug 2012 23:16:35 +0000
-X-Env-Sender: linux@eikelenboom.it
-X-Msg-Ref: server-6.tower-21.messagelabs.com!1346454991!16131778!1
-X-Originating-IP: [188.40.164.121]
-X-SpamReason: No, hits=0.0 required=7.0 tests=
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 12937 invoked from network); 31 Aug 2012 23:16:31 -0000
-Received: from static.121.164.40.188.clients.your-server.de (HELO
-       smtp.eikelenboom.it) (188.40.164.121)
-       by server-6.tower-21.messagelabs.com with AES256-SHA encrypted SMTP;
-       31 Aug 2012 23:16:31 -0000
-Received: from 26-69-ftth.onsneteindhoven.nl ([88.159.69.26]:51342
-       helo=[172.16.1.20])
-       by smtp.eikelenboom.it with esmtpsa (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72) (envelope-from <linux@eikelenboom.it>)
-       id 1T7aOt-0000Rc-90; Sat, 01 Sep 2012 01:13:19 +0200
-Date: Sat, 1 Sep 2012 01:16:25 +0200
-From: Sander Eikelenboom <linux@eikelenboom.it>
-Organization: Eikelenboom IT services
-X-Priority: 3 (Normal)
-Message-ID: <1377403931.20120901011625@eikelenboom.it>
-To: Santosh Jodh <Santosh.Jodh@citrix.com>
-In-Reply-To: <7914B38A4445B34AA16EB9F1352942F1012F0F6F4B01@SJCPMAILBOX01.citrite.net>
-References: <647712821.20120831234512@eikelenboom.it>
-       <7914B38A4445B34AA16EB9F1352942F1012F0F6F4AE2@SJCPMAILBOX01.citrite.net>
-       <723041396.20120901004249@eikelenboom.it>
-       <7914B38A4445B34AA16EB9F1352942F1012F0F6F4B01@SJCPMAILBOX01.citrite.net>
-MIME-Version: 1.0
-Cc: "wei.wang2@amd.com" <wei.wang2@amd.com>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] Using debug-key 'o:  Dump IOMMU p2m table,
-       locks up machine
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-
-Saturday, September 1, 2012, 12:57:45 AM, you wrote:
-
-> The dump should complete - would be curious to see how long it takes on serial console. What baudrate is the console running at?
-
-I think for ages, this part seems only to cover a bit of the first of 3 pv guests which have devices passed through.
-38400
-
-And i wonder if the information is very valuable, gfn == mfn for every line ... at an increment of 1 ...
-Perhaps a uhmmm more compact way of getting the interesting data would be handy ?
-Or is this the intended output ?
-
-> The code does allow processing of pending softirqs quite frequently. I am not sure why you are still seeing SATA errors.
-
-The machine is completely unresponsive in every way.
-
-And using it with "xl debug-keys o" is never going to work i guess, since the information flood is far larger than "xl dmesg" keeps ?
-
-
-
->> -----Original Message-----
->> From: Sander Eikelenboom [mailto:linux@eikelenboom.it]
->> Sent: Friday, August 31, 2012 3:43 PM
->> To: Santosh Jodh
->> Cc: wei.wang2@amd.com; xen-devel@lists.xen.org
->> Subject: Re: Using debug-key 'o: Dump IOMMU p2m table, locks up machine
->> 
->> 
->> Saturday, September 1, 2012, 12:24:32 AM, you wrote:
->> 
->> > Depending on how many VMs you have and the size of the IOMMU p2m
->> table, it can take a while. It should not be infinite though.
->> 
->> > How many VMs do you have running?
->> 
->> 15
->> 
->> > Can you please send the serial output when you press 'o'?
->> 
->> Attached, to the end you will see the s-ata errors coming through while the
->> dump still runs.
->> This is not a complete dump, only a few minutes after which i did a hard
->> reset.
->> 
->> > Santosh
->> 
->> >> -----Original Message-----
->> >> From: Sander Eikelenboom [mailto:linux@eikelenboom.it]
->> >> Sent: Friday, August 31, 2012 2:45 PM
->> >> To: Santosh Jodh; wei.wang2@amd.com
->> >> Cc: xen-devel@lists.xen.org
->> >> Subject: Using debug-key 'o: Dump IOMMU p2m table, locks up machine
->> >>
->> >>
->> >> I was trying to use the 'o' debug key to make a bug report about an "AMD-
->> Vi:
->> >> IO_PAGE_FAULT".
->> >>
->> >> The result:
->> >> - When using "xl debug-keys o", the machine seems in a infinite loop,
->> >> can hardly login, eventually resulting in a kernel RCU stall and complete
->> lockup.
->> >> - When using serial console: I get a infinite stream of "gfn:  mfn: "
->> >> lines, mean while on the normal console, S-ATA devices are starting to
->> give errors.
->> >>
->> >> So either option trashes the machine, other debug-keys work fine.
->> >>
->> >> Machine has a 890-fx chipset and AMD phenom x6 proc.
->> >>
->> >> xl dmesg with bootup and output from some other debug-keys is
->> attached.
->> >>
->> >> --
->> >>
->> >> Sander
->> 
->> 
->> 
->> 
->> --
->> Best regards,
->>  Sander                            mailto:linux@eikelenboom.it
-
-
-
-
--- 
-Best regards,
- Sander                            mailto:linux@eikelenboom.it
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1576173912.20120904085238@eikelenboom.it> b/test/corpus/<1576173912.20120904085238@eikelenboom.it>
deleted file mode 100644 (file)
index 29f4ce3..0000000
+++ /dev/null
@@ -1,175 +0,0 @@
-From xen-devel-bounces@lists.xen.org Tue Sep 04 07:57:44 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Tue, 04 Sep 2012 07:57:44 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T8n4s-0001DV-1T
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 04 Sep 2012 07:57:44 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T8n0A-0000qD-Le; Tue, 04 Sep 2012 06:52:46 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <linux@eikelenboom.it>) id 1T8n09-0000q8-2z
-       for xen-devel@lists.xen.org; Tue, 04 Sep 2012 06:52:45 +0000
-Received: from [85.158.138.51:42317] by server-3.bemta-3.messagelabs.com id
-       FC/D3-21322-C35A5405; Tue, 04 Sep 2012 06:52:44 +0000
-X-Env-Sender: linux@eikelenboom.it
-X-Msg-Ref: server-16.tower-174.messagelabs.com!1346741563!28359568!1
-X-Originating-IP: [188.40.164.121]
-X-SpamReason: No, hits=0.0 required=7.0 tests=
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 16490 invoked from network); 4 Sep 2012 06:52:43 -0000
-Received: from static.121.164.40.188.clients.your-server.de (HELO
-       smtp.eikelenboom.it) (188.40.164.121)
-       by server-16.tower-174.messagelabs.com with AES256-SHA encrypted SMTP;
-       4 Sep 2012 06:52:43 -0000
-Received: from 26-69-ftth.onsneteindhoven.nl ([88.159.69.26]:49204
-       helo=[172.16.1.20])
-       by smtp.eikelenboom.it with esmtpsa (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72) (envelope-from <linux@eikelenboom.it>)
-       id 1T8mx1-0001w7-PM; Tue, 04 Sep 2012 08:49:31 +0200
-Date: Tue, 4 Sep 2012 08:52:38 +0200
-From: Sander Eikelenboom <linux@eikelenboom.it>
-Organization: Eikelenboom IT services
-X-Priority: 3 (Normal)
-Message-ID: <1576173912.20120904085238@eikelenboom.it>
-To: "Jan Beulich" <JBeulich@suse.com>
-In-Reply-To: <5045BD5C02000078000985A7@nat28.tlf.novell.com>
-References: <647712821.20120831234512@eikelenboom.it>
-       <CC68CC67.3D984%keir.xen@gmail.com>
-       <5045BD5C02000078000985A7@nat28.tlf.novell.com>
-MIME-Version: 1.0
-Cc: George Dunlap <George.Dunlap@eu.citrix.com>, wei.wang2@amd.com,
-       Keir Fraser <keir.xen@gmail.com>, Santosh Jodh <santosh.jodh@citrix.com>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] Using debug-key 'o:  Dump IOMMU p2m table,
-       locks up machine
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-Hello Jan,
-
-Tuesday, September 4, 2012, 8:35:40 AM, you wrote:
-
->>>> On 02.09.12 at 09:42, Keir Fraser <keir.xen@gmail.com> wrote:
->> On 31/08/2012 22:45, "Sander Eikelenboom" <linux@eikelenboom.it> wrote:
->>> - When using serial console: I get a infinite stream of "gfn:  mfn: " lines,
->>> mean while on the normal console, S-ATA devices are starting to give errors.
->> 
->> In this case the handler must be running in tasklet context. Not sure why
->> SATA interrupts would be affected as hardirq and softirq work will still be
->> carried out during execution of the keyhandler (the handler voluntarily
->> preempts itself for softirq work).
->> 
->> Would need more investigation. :)
-
-> Isn't that because tasklets (i.e. idle vCPU-s with tasklets active)
-> get preferred in the schedulers? Some compensation might be
-> needed for the penalized vCPU, at least if that one is pinned
-> (not sure whether load balancing would be able to steal the
-> head of the run queue from a remote CPU). Sander - are you
-> by chance pinning Dom0 vCPU-s? And how many of them does
-> your Dom0 have?
-
-
-Yes i do, could perhaps be the pinning of CPU0 ?
-
-serveerstertje:~# xl vcpu-list
-Name                                ID  VCPU   CPU State   Time(s) CPU Affinity
-Domain-0                             0     0    0   r--    7711.7  0
-Domain-0                             0     1    2   -b-    4048.1  2-5
-Domain-0                             0     2    3   -b-    1129.1  2-5
-Domain-0                             0     3    4   r--    1229.9  2-5
-Domain-0                             0     4    5   -b-     885.5  2-5
-Domain-0                             0     5    5   -b-    1192.5  2-5
-database                             1     0    2   -b-    1063.6  2-5
-database                             1     1    2   -b-     496.2  2-5
-mail                                 2     0    5   -b-      42.3  2-5
-samba                                3     0    4   -b-     178.4  2-5
-webproxy                             4     0    2   -b-      49.9  2-5
-www                                  5     0    4   -b-     104.1  2-5
-davical                              6     0    2   -b-     119.6  2-5
-backup                               7     0    5   -b-    1052.8  2-5
-git                                  8     0    4   -b-      55.8  2-5
-zabbix                               9     0    4   -b-     426.0  2-5
-gallery3                            10     0    4   -b-      47.6  2-5
-media                               11     0    2   -b-      40.9  2-5
-torrentflux                         12     0    4   -b-      56.0  2-5
-vpn                                 13     0    2   -b-     170.8  2-5
-security                            14     0    2   -b-    2246.0  1-5
-security                            14     1    4   -b-    1778.4  1-5
-security                            14     2    1   -b-    1659.7  1-5
-security                            14     3    5   -b-    1841.3  1-5
-security                            14     4    3   -b-     981.1  1-5
-creabox_hvm                         15     0    5   -b-     196.5  2-5
-creabox_hvm                         15     1    4   -b-     255.8  2-5
-creaexp                             16     0    2   -b-     297.8  2-5
-
-serveerstertje:~# xl sched-credit
-libxl: error: libxl.c:596:cpupool_info: failed to get info for cpupool1
-: No such file or directory
-Cpupool Pool-0: tslice=30ms ratelimit=1000us
-Name                                ID Weight  Cap
-Domain-0                             0   1024    0
-database                             1    256    0
-mail                                 2    256    0
-samba                                3    256    0
-webproxy                             4    256    0
-www                                  5    256    0
-davical                              6    256    0
-backup                               7    256    0
-git                                  8    256    0
-zabbix                               9    256    0
-gallery3                            10    256    0
-media                               11    256    0
-torrentflux                         12    256    0
-vpn                                 13    256    0
-security                            14    768    0
-creabox_hvm                         15    256    0
-creaexp                             16    256    0
-
-
-> Jan
-
-
-
-
-
--- 
-Best regards,
- Sander                            mailto:linux@eikelenboom.it
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1894818567.20120904102024@eikelenboom.it> b/test/corpus/<1894818567.20120904102024@eikelenboom.it>
deleted file mode 100644 (file)
index 66e5503..0000000
+++ /dev/null
@@ -1,130 +0,0 @@
-From xen-devel-bounces@lists.xen.org Tue Sep 04 09:24:42 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Tue, 04 Sep 2012 09:24:42 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T8oR1-0001UG-Hg
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 04 Sep 2012 09:24:41 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T8oNL-000538-8B; Tue, 04 Sep 2012 08:20:47 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <linux@eikelenboom.it>) id 1T8oNJ-00052y-Os
-       for xen-devel@lists.xen.org; Tue, 04 Sep 2012 08:20:45 +0000
-Received: from [85.158.138.51:63317] by server-11.bemta-3.messagelabs.com id
-       3E/4C-30250-CD9B5405; Tue, 04 Sep 2012 08:20:44 +0000
-X-Env-Sender: linux@eikelenboom.it
-X-Msg-Ref: server-8.tower-174.messagelabs.com!1346746826!28428572!1
-X-Originating-IP: [188.40.164.121]
-X-SpamReason: No, hits=0.0 required=7.0 tests=
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 30153 invoked from network); 4 Sep 2012 08:20:26 -0000
-Received: from static.121.164.40.188.clients.your-server.de (HELO
-       smtp.eikelenboom.it) (188.40.164.121)
-       by server-8.tower-174.messagelabs.com with AES256-SHA encrypted SMTP;
-       4 Sep 2012 08:20:26 -0000
-Received: from 26-69-ftth.onsneteindhoven.nl ([88.159.69.26]:49732
-       helo=[172.16.1.20])
-       by smtp.eikelenboom.it with esmtpsa (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72) (envelope-from <linux@eikelenboom.it>)
-       id 1T8oJw-0002S1-Vp; Tue, 04 Sep 2012 10:17:17 +0200
-Date: Tue, 4 Sep 2012 10:20:24 +0200
-From: Sander Eikelenboom <linux@eikelenboom.it>
-Organization: Eikelenboom IT services
-X-Priority: 3 (Normal)
-Message-ID: <1894818567.20120904102024@eikelenboom.it>
-To: Keir Fraser <keir.xen@gmail.com>
-In-Reply-To: <CC6B764E.3DACF%keir.xen@gmail.com>
-References: <CC6B74A7.3DAC1%keir.xen@gmail.com>
-       <CC6B764E.3DACF%keir.xen@gmail.com>
-MIME-Version: 1.0
-Cc: George Dunlap <George.Dunlap@eu.citrix.com>, wei.wang2@amd.com,
-       Santosh Jodh <santosh.jodh@citrix.com>, Jan Beulich <JBeulich@suse.com>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] Using debug-key 'o:  Dump IOMMU p2m table,
-       locks up machine
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-Hello Keir,
-
-Tuesday, September 4, 2012, 10:11:42 AM, you wrote:
-
-> On 04/09/2012 09:04, "Keir Fraser" <keir.xen@gmail.com> wrote:
-
->> On 04/09/2012 08:55, "Jan Beulich" <JBeulich@suse.com> wrote:
->> 
->>>> Jan, Yes you could be right, if Sander is pinning CPUs. Anyway, I wasn't
->>>> going to expend too much brain power on this situation. The case of spending
->>>> a few minutes in one key handler is not one I think is particularly sane.
->>> 
->>> Which imo would call for reverting the patch. But then again, other
->>> key handlers can easily take pretty long too (particularly on large
->>> systems, albeit it is clear that the one here is particularly bad), and
->>> declaring all of them pretty much useless probably isn't the best
->>> choice (as then we could as well rip them all out).
->>> 
->>> Bottom line - _I_ think we should try to do something about this.
->>> An apparent option would be to have low priority tasklets (for
->>> just this purpose, as all others we certainly want to take priority),
->>> if that can reasonably be integrated with the schedulers.
->> 
->> Do you expect to be able to use the log-running key handlers and still need
->> a running system afterwards (rather than using them as a final
->> dump-everything when the system has already gone bad)? Then I suppose you
->> would need something like this, with voluntary preemption in the key
->> handlers. You then need to be able to recommence the keyhandlers where they
->> left off, retaking locks, finding their place in lists, trees, etc, even
->> when state of the system has significantly changed between preemption and
->> resumption. Well, I'm sure it can be done, but can anyone be bothered.
-
-> My pragmatic take would be that: (a) Really long-running handlers that want
-> to dump every page mapping of every domain are pretty bloody stupid, and yes
-> we should consider if they are worthwhile at all; (b) moderately
-> long-running but useful handlers which nonetheless take a long time to dump
-> to Xen's console, I would consider a sysctl to allow dom0 to request dump
-> into a supplied memory buffer.
-
-Is it necessary for this case to let it be a key-handler for which one can't specify parameters to limit the output ?
-
-In this case both hypervisor and kernel are running fine, so a interface via say "xl debug" should be perfectly fine and providing parameters should be possible ?
-
->>  -- Keir
->> 
->> 
-
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1925247026.20120903103325@eikelenboom.it> b/test/corpus/<1925247026.20120903103325@eikelenboom.it>
deleted file mode 100644 (file)
index 065c025..0000000
+++ /dev/null
@@ -1,112 +0,0 @@
-From xen-devel-bounces@lists.xen.org Mon Sep 03 09:38:21 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Mon, 03 Sep 2012 09:38:21 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T8SAk-0008Pl-Vr
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Mon, 03 Sep 2012 09:38:21 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T8S6G-0003UE-0t; Mon, 03 Sep 2012 08:33:40 +0000
-Received: from mail27.messagelabs.com ([193.109.254.147])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <linux@eikelenboom.it>) id 1T8S6D-0003U9-V5
-       for xen-devel@lists.xen.org; Mon, 03 Sep 2012 08:33:38 +0000
-X-Env-Sender: linux@eikelenboom.it
-X-Msg-Ref: server-14.tower-27.messagelabs.com!1346661208!2397617!1
-X-Originating-IP: [188.40.164.121]
-X-SpamReason: No, hits=0.0 required=7.0 tests=
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 890 invoked from network); 3 Sep 2012 08:33:29 -0000
-Received: from static.121.164.40.188.clients.your-server.de (HELO
-       smtp.eikelenboom.it) (188.40.164.121)
-       by server-14.tower-27.messagelabs.com with AES256-SHA encrypted SMTP;
-       3 Sep 2012 08:33:29 -0000
-Received: from 26-69-ftth.onsneteindhoven.nl ([88.159.69.26]:53493
-       helo=[172.16.1.20])
-       by smtp.eikelenboom.it with esmtpsa (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72) (envelope-from <linux@eikelenboom.it>)
-       id 1T8S2z-0001Dn-Rj; Mon, 03 Sep 2012 10:30:17 +0200
-Date: Mon, 3 Sep 2012 10:33:25 +0200
-From: Sander Eikelenboom <linux@eikelenboom.it>
-Organization: Eikelenboom IT services
-X-Priority: 3 (Normal)
-Message-ID: <1925247026.20120903103325@eikelenboom.it>
-To: "Jan Beulich" <JBeulich@suse.com>
-In-Reply-To: <5044849002000078000982EA@nat28.tlf.novell.com>
-References: <7914B38A4445B34AA16EB9F1352942F1012F0F6F4B98@SJCPMAILBOX01.citrite.net>
-       <CC681CDD.3D966%keir.xen@gmail.com>
-       <40501859.20120902104331@eikelenboom.it>
-       <5044849002000078000982EA@nat28.tlf.novell.com>
-MIME-Version: 1.0
-Cc: "wei.wang2@amd.com" <wei.wang2@amd.com>, Keir Fraser <keir.xen@gmail.com>,
-       Santosh Jodh <Santosh.Jodh@citrix.com>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] Using debug-key 'o:  Dump IOMMU p2m table,
-       locks up machine
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-Hello Jan,
-
-Monday, September 3, 2012, 10:21:04 AM, you wrote:
-
->>>> On 02.09.12 at 10:43, Sander Eikelenboom <linux@eikelenboom.it> wrote:
->> I have attached new output from xl dmesg, this time with iommu=debug on (the 
->> option changed from 4.1 to 4.2).
-
-> This one
-
->>(XEN) [2012-09-02 00:55:02] traps.c:3156: GPF (0060): ffff82c48015c9ee -> ffff82c480224b13
-
-> also worries me. While Xen gracefully recovers from it, these
-> messages still generally indicate a problem somewhere. Could
-> you resolve the addresses to file:line tuples? And, assuming
-> this happens in the context of doing something on behalf of
-> the guest in the context of a guest vCPU, could you also
-> check what guest side action triggers this (e.g. by adding a
-> call to show_execution_state() alongside the printing of the
-> message)?
-
-If you could elaborate a bit abouw HOW :-)
-
->From what i recall i also had these since some time on xen 4.1 too. Probably a kernel thing, in about 3.5 or 3.6 is my estimation, will see if i can find out some more today or tomorrow.
-
-
-> Jan
-
-
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<1E8F546AD8E64BF1B2D68D24F3BD4050@LarryE6400> b/test/corpus/<1E8F546AD8E64BF1B2D68D24F3BD4050@LarryE6400>
deleted file mode 100644 (file)
index f4dc8d5..0000000
+++ /dev/null
@@ -1,122 +0,0 @@
-From xen-devel-bounces@lists.xen.org Sat Jul 21 03:02:53 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Sat, 21 Jul 2012 03:02:53 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SsP1v-0001kB-56
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Sat, 21 Jul 2012 03:02:53 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SsOxi-0002dT-VA; Sat, 21 Jul 2012 01:58:30 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <lmw@satx.rr.com>) id 1SsOxh-0002dO-3U
-       for xen-devel@lists.xen.org; Sat, 21 Jul 2012 01:58:29 +0000
-Received: from [85.158.143.35:57113] by server-3.bemta-4.messagelabs.com id
-       A9/E0-01511-4CC0A005; Sat, 21 Jul 2012 01:58:28 +0000
-X-Env-Sender: lmw@satx.rr.com
-X-Msg-Ref: server-12.tower-21.messagelabs.com!1342835906!12994475!1
-X-Originating-IP: [75.180.132.120]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       QmFkIElQOiA3NS4xODAuMTMyLjEyMCA9PiA4NjAxMg==\n,sa_preprocessor: 
-       QmFkIElQOiA3NS4xODAuMTMyLjEyMCA9PiA4NjAxMg==\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.2; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 4418 invoked from network); 21 Jul 2012 01:58:26 -0000
-Received: from cdptpa-omtalb.mail.rr.com (HELO cdptpa-omtalb.mail.rr.com)
-       (75.180.132.120) by server-12.tower-21.messagelabs.com with SMTP;
-       21 Jul 2012 01:58:26 -0000
-X-Authority-Analysis: v=2.0 cv=Dp/UCRD+ c=1 sm=0 a=r1aGfrPin9q3IVjnGKu9DA==:17
-       a=mkDZTsCubmwA:10 a=YIV_H7EphM0A:10 a=05ChyHeVI94A:10
-       a=kj9zAlcOel0A:10 a=ayC55rCoAAAA:8 a=aIfeI5IIAAAA:8
-       a=mLnsDVdbAAAA:8 a=RwdhQdrsmUvhpGOCnt0A:9 a=CjuIK1q_8ugA:10
-       a=r1aGfrPin9q3IVjnGKu9DA==:117
-X-Cloudmark-Score: 0
-X-Originating-IP: 66.69.0.49
-Received: from [66.69.0.49] ([66.69.0.49:49980] helo=LarryE6400)
-       by cdptpa-oedge02.mail.rr.com (envelope-from <lmw@satx.rr.com>)
-       (ecelerity 2.2.3.46 r()) with ESMTP
-       id B3/23-13948-2CC0A005; Sat, 21 Jul 2012 01:58:26 +0000
-From: "Larry White" <lmw@satx.rr.com>
-To: "'James Harper'" <james.harper@bendigoit.com.au>, <xen-devel@lists.xen.org>
-References: <A8575D3216834DFCAA86F5B2B3546613@LarryE6400>
-       <6035A0D088A63A46850C3988ED045A4B299B8A95@BITCOM1.int.sbss.com.au>
-In-Reply-To: <6035A0D088A63A46850C3988ED045A4B299B8A95@BITCOM1.int.sbss.com.au>
-Date: Fri, 20 Jul 2012 20:58:20 -0500
-Message-ID: <1E8F546AD8E64BF1B2D68D24F3BD4050@LarryE6400>
-MIME-Version: 1.0
-X-Mailer: Microsoft Office Outlook 11
-X-MimeOLE: Produced By Microsoft MimeOLE V6.1.7601.17609
-Thread-Index: Ac1m2/yuJJyO+ROQQxKMLV1mGoHskAABhbjAAABDEwA=
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] XenStore as a data transfer path?
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
------Original Message-----
-From: James Harper [mailto:james.harper@bendigoit.com.au] 
-Sent: Friday, July 20, 2012 8:44 PM
-To: Larry White; xen-devel@lists.xen.org
-Subject: RE: [Xen-devel] XenStore as a data transfer path?
-
-> 
-> Can the XenStore database be accessed by domU's?
-> 
-
->>Yes. That is how the frontend/backend devices set up their communication
->>channels.
-
-Are you saying that the actual data going back and forth gets put into the
-XenStore?  I thought that the XenStore was mostly used for configuration
-keyword values and such that the underlying drivers needed.
-
-> 
-> If so, could it be used to pass small amounts of data back and forth
-between
-> dom0 and domU's using XenStore key entries?  If this is possible, it would
-> seem that this could eliminate the need to create a "device" driver for a
-> simple communication path.
-> 
-
->>Yes, for certain values of "small". Can you say more about the sort of
->>data you would be passing? In particular the throughput and latency
->>requirements?
-
-I would say that the small amount of data here per transfer would be around
-32 bytes in length with a latency of around 500ms or so.
-
-Larry
-
-
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<20120601170514.GD77921@ocelot.phlegethon.org> b/test/corpus/<20120601170514.GD77921@ocelot.phlegethon.org>
deleted file mode 100644 (file)
index 8cc65ef..0000000
+++ /dev/null
@@ -1,137 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Jun 01 18:09:08 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 01 Jun 2012 18:09:08 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SaVLV-0005L1-J9
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 01 Jun 2012 18:09:08 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SaVHr-0007Gm-K6; Fri, 01 Jun 2012 17:05:19 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72) (envelope-from <tim@xen.org>)
-       id 1SaVHq-0007Gd-2E
-       for xen-devel@lists.xen.org; Fri, 01 Jun 2012 17:05:18 +0000
-Received: from [85.158.143.99:35799] by server-1.bemta-4.messagelabs.com id
-       52/8B-27869-D46F8CF4; Fri, 01 Jun 2012 17:05:17 +0000
-X-Env-Sender: tim@xen.org
-X-Msg-Ref: server-15.tower-216.messagelabs.com!1338570315!30943445!1
-X-Originating-IP: [81.29.64.94]
-X-SpamReason: No, hits=0.0 required=7.0 tests=
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 5391 invoked from network); 1 Jun 2012 17:05:16 -0000
-Received: from ocelot.phlegethon.org (HELO mail.phlegethon.org) (81.29.64.94)
-       by server-15.tower-216.messagelabs.com with DHE-RSA-AES256-SHA
-       encrypted SMTP; 1 Jun 2012 17:05:16 -0000
-Received: from tjd by mail.phlegethon.org with local (Exim 4.67 (FreeBSD))
-       (envelope-from <tim@xen.org>)
-       id 1SaVHm-000Ltg-3l; Fri, 01 Jun 2012 17:05:14 +0000
-Date: Fri, 1 Jun 2012 18:05:14 +0100
-From: Tim Deegan <tim@xen.org>
-To: Ian Campbell <ian.campbell@citrix.com>
-Message-ID: <20120601170514.GD77921@ocelot.phlegethon.org>
-References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
-       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-       <1338565207-2888-29-git-send-email-ian.campbell@citrix.com>
-Mime-Version: 1.0
-Content-Disposition: inline
-In-Reply-To: <1338565207-2888-29-git-send-email-ian.campbell@citrix.com>
-User-Agent: Mutt/1.4.2.1i
-Cc: xen-devel@lists.xen.org
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 29/38] arm: delay enabling data-cache until
-       paging enabled.
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-At 15:39 +0000 on 01 Jun (1338565198), Ian Campbell wrote:
-> With enough warnings enabled the model seemed to be complaining that pages
-> cached before paging was enabled had been mapped with to inconsistent sets of
-> attributes. I'm not convinced that isn't a model issue, nor am I convinced
-> this has really fixed anything, but it seems sensible enough.
-
-This might be what breaks secondary CPU bringup: pagetables built by CPU
-0 may not have been flushed all the way to RAM when CPU 1 comes up, and
-CPU 1 isn't participating in cache coherence protocols when it
-starts to need them.
-
-OTOH, if that's the case, it's surprising that CPU 1 passes the boot
-gate.  I'll look into it next week, x86/mm workload permitting. 
-
-Cheers,
-
-Tim.
-
-> Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
-> ---
->  xen/arch/arm/head.S |    9 +++++++--
->  1 files changed, 7 insertions(+), 2 deletions(-)
-> 
-> diff --git a/xen/arch/arm/head.S b/xen/arch/arm/head.S
-> index 9a7714a..71197af 100644
-> --- a/xen/arch/arm/head.S
-> +++ b/xen/arch/arm/head.S
-> @@ -148,10 +148,11 @@ hyp:
->       * Exceptions in LE ARM,
->       * Low-latency IRQs disabled,
->       * Write-implies-XN disabled (for now),
-> -     * I-cache and d-cache enabled,
-> +     * D-cache diabled (for now),
-> +     * I-cache enabled,
->       * Alignment checking enabled,
->       * MMU translation disabled (for now). */
-> -    ldr   r0, =(HSCTLR_BASE|SCTLR_A|SCTLR_C)
-> +    ldr   r0, =(HSCTLR_BASE|SCTLR_A)
->      mcr   CP32(r0, HSCTLR)
->  
->      /* Write Xen's PT's paddr into the HTTBR */
-> @@ -217,6 +218,10 @@ pt_ready:
->      mov   pc, r1                 /* Get a proper vaddr into PC */
->  paging:
->  
-> +    mrc   CP32(r0, HSCTLR)       /* Now enable data cache */
-> +    orr   r0, r0, #(SCTLR_C)
-> +    mcr   CP32(r0, HSCTLR)
-> +
->  #ifdef EARLY_UART_ADDRESS
->      /* Recover the UART address in the new address space. */
->      lsl   r11, #11
-> -- 
-> 1.7.9.1
-> 
-> 
-> _______________________________________________
-> Xen-devel mailing list
-> Xen-devel@lists.xen.org
-> http://lists.xen.org/xen-devel
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<20120606181852.GB38649@ocelot.phlegethon.org> b/test/corpus/<20120606181852.GB38649@ocelot.phlegethon.org>
deleted file mode 100644 (file)
index 673595f..0000000
+++ /dev/null
@@ -1,118 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Jun 06 19:23:10 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 06 Jun 2012 19:23:10 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1ScKsq-0004Ip-RV
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 06 Jun 2012 19:23:10 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1ScKou-0003hm-60; Wed, 06 Jun 2012 18:19:00 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72) (envelope-from <tim@xen.org>)
-       id 1ScKor-0003he-MQ
-       for xen-devel@lists.xen.org; Wed, 06 Jun 2012 18:18:57 +0000
-Received: from [85.158.139.83:48224] by server-12.bemta-5.messagelabs.com id
-       83/D7-18374-01F9FCF4; Wed, 06 Jun 2012 18:18:56 +0000
-X-Env-Sender: tim@xen.org
-X-Msg-Ref: server-8.tower-182.messagelabs.com!1339006735!18476786!1
-X-Originating-IP: [81.29.64.94]
-X-SpamReason: No, hits=0.0 required=7.0 tests=
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 5375 invoked from network); 6 Jun 2012 18:18:56 -0000
-Received: from ocelot.phlegethon.org (HELO mail.phlegethon.org) (81.29.64.94)
-       by server-8.tower-182.messagelabs.com with DHE-RSA-AES256-SHA
-       encrypted SMTP; 6 Jun 2012 18:18:56 -0000
-Received: from tjd by mail.phlegethon.org with local (Exim 4.67 (FreeBSD))
-       (envelope-from <tim@xen.org>)
-       id 1ScKom-000Fcb-Jr; Wed, 06 Jun 2012 18:18:52 +0000
-Date: Wed, 6 Jun 2012 19:18:52 +0100
-From: Tim Deegan <tim@xen.org>
-To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-Message-ID: <20120606181852.GB38649@ocelot.phlegethon.org>
-References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
-       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-       <1338565207-2888-25-git-send-email-ian.campbell@citrix.com>
-       <alpine.DEB.2.02.1206061846260.2415@kaball.uk.xensource.com>
-Mime-Version: 1.0
-Content-Disposition: inline
-In-Reply-To: <alpine.DEB.2.02.1206061846260.2415@kaball.uk.xensource.com>
-User-Agent: Mutt/1.4.2.1i
-Cc: Ian Campbell <ian.campbell@citrix.com>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 25/38] arm: remove old identity map of boot
-       paddr when we are done with it.
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-At 19:04 +0100 on 06 Jun (1339009473), Stefano Stabellini wrote:
-> On Fri, 1 Jun 2012, Ian Campbell wrote:
-> > Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
-> > ---
-> >  xen/arch/arm/mm.c |    8 ++++++++
-> >  1 files changed, 8 insertions(+), 0 deletions(-)
-> > 
-> > diff --git a/xen/arch/arm/mm.c b/xen/arch/arm/mm.c
-> > index 160a4e9..ab52171 100644
-> > --- a/xen/arch/arm/mm.c
-> > +++ b/xen/arch/arm/mm.c
-> > @@ -214,6 +214,14 @@ void __init setup_pagetables(unsigned long boot_phys_offset)
-> >      lpae_t pte, *p;
-> >      int i;
-> >  
-> > +    if ( boot_phys_offset != 0 )
-> > +    {
-> > +        /* Remove the old identity mapping of the boot paddr */
-> > +        pte.bits = 0;
-> > +        dest_va = (unsigned long)_start + boot_phys_offset;
-> > +        write_pte(xen_second + second_linear_offset(dest_va), pte);
-> > +    }
-> 
-> It looks like we are already doing this few lines below.
-
-We used to do this here and now we do it futher down, after the copy.
-That way the secondary CPUs can come up on the pre-copy tables where
-the identity map still exists.
-
-> Also now that I am thinking about it, considering that bits is a 64 bit
-> field, shouldn't this be:
-> 
-> pte.bits = 0ULL;
-
-It's OK; the 0 will be sign-extended by the compiler to 64 bits. 
-
-Cheers,
-
-Tim.
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<20120607084517.GA70339@ocelot.phlegethon.org> b/test/corpus/<20120607084517.GA70339@ocelot.phlegethon.org>
deleted file mode 100644 (file)
index 870de3f..0000000
+++ /dev/null
@@ -1,168 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Jun 07 09:50:07 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 07 Jun 2012 09:50:07 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1ScYPp-0003Xs-50
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 07 Jun 2012 09:50:07 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1ScYLL-0004Zr-LK; Thu, 07 Jun 2012 08:45:23 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72) (envelope-from <tim@xen.org>)
-       id 1ScYLK-0004Zm-71
-       for xen-devel@lists.xen.org; Thu, 07 Jun 2012 08:45:22 +0000
-Received: from [85.158.143.35:29933] by server-1.bemta-4.messagelabs.com id
-       CC/81-10042-12A60DF4; Thu, 07 Jun 2012 08:45:21 +0000
-X-Env-Sender: tim@xen.org
-X-Msg-Ref: server-15.tower-21.messagelabs.com!1339058719!14418101!1
-X-Originating-IP: [81.29.64.94]
-X-SpamReason: No, hits=0.0 required=7.0 tests=
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 8069 invoked from network); 7 Jun 2012 08:45:19 -0000
-Received: from ocelot.phlegethon.org (HELO mail.phlegethon.org) (81.29.64.94)
-       by server-15.tower-21.messagelabs.com with DHE-RSA-AES256-SHA
-       encrypted SMTP; 7 Jun 2012 08:45:19 -0000
-Received: from tjd by mail.phlegethon.org with local (Exim 4.67 (FreeBSD))
-       (envelope-from <tim@xen.org>)
-       id 1ScYLF-000INm-Rt; Thu, 07 Jun 2012 08:45:17 +0000
-Date: Thu, 7 Jun 2012 09:45:17 +0100
-From: Tim Deegan <tim@xen.org>
-To: Ian Campbell <ian.campbell@citrix.com>
-Message-ID: <20120607084517.GA70339@ocelot.phlegethon.org>
-References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
-       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-       <1338565207-2888-2-git-send-email-ian.campbell@citrix.com>
-Mime-Version: 1.0
-Content-Disposition: inline
-In-Reply-To: <1338565207-2888-2-git-send-email-ian.campbell@citrix.com>
-User-Agent: Mutt/1.4.2.1i
-Cc: xen-devel@lists.xen.org
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 02/38] arm: handy function to print a walk
-       of the hypervisor page tables
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-Hi,
-
-At 15:39 +0000 on 01 Jun (1338565171), Ian Campbell wrote:
-> +void dump_pt_walk(uint32_t addr)
-> +{
-> +    paddr_t second_ma, third_ma;
-> +    lpae_t *first = NULL, *second = NULL, *third = NULL;
-> +    uint64_t httbr = READ_CP64(HTTBR);
-> +
-> +    printk("Walking Hypervisor VA %#"PRIx32" via HTTBR %#"PRIx64"\n",
-> +           addr, httbr);
-> +
-> +    BUG_ON( (lpae_t *)(unsigned long)(httbr - xen_phys_offset) != xen_pgtable );
-> +    first = xen_pgtable;
-> +    printk("1ST[%#03"PRIx32"] = %p[%#03"PRIx32"] = %#llx = %#016llx\n",
-> +           first_table_offset(addr),
-> +           first, first_table_offset(addr),
-> +           virt_to_maddr(&first[first_table_offset(addr)]),
-> +           first[first_table_offset(addr)].bits);
-> +
-> +    if ( !first[first_table_offset(addr)].pt.valid ||
-> +         !first[first_table_offset(addr)].pt.table )
-> +        goto done;
-
-This could probably be a for loop rather than open-coding three
-almost-identical printks.
-
-> +
-> +    second_ma = (paddr_t)first[first_table_offset(addr)].pt.base << PAGE_SHIFT;
-> +    second = (lpae_t *)(unsigned long)(second_ma - xen_phys_offset);
-> +    printk("2ND[%#03"PRIx32"] = %p[%#03"PRIx32"] = %#llx = %#016llx\n",
-> +           second_table_offset(addr),
-> +           second, second_table_offset(addr),
-> +           virt_to_maddr(&second[second_table_offset(addr)]),
-> +           second[second_table_offset(addr)].bits);
-> +    if ( !second[second_table_offset(addr)].pt.valid ||
-> +         !second[second_table_offset(addr)].pt.table )
-> +        goto done;
-> +
-> +    third_ma = (paddr_t)second[second_table_offset(addr)].pt.base << PAGE_SHIFT;
-> +    third = (lpae_t *)(unsigned long)(third_ma - xen_phys_offset);
-> +    printk("3RD[%#03"PRIx32"] = %p[%#03"PRIx32"] = %#llx = %#016llx\n",
-> +           third_table_offset(addr),
-> +           third, third_table_offset(addr),
-> +           virt_to_maddr(&third[third_table_offset(addr)]),
-> +           third[third_table_offset(addr)].bits);
-> +    if ( !third[third_table_offset(addr)].pt.valid ||
-> +         !third[third_table_offset(addr)].pt.table )
-> +        goto done;
-> +
-> +done:
-> +    return;
-
-Maybe use return above instead of goto?
-
-> +}
-> +
->  /* Map a 4k page in a fixmap entry */
->  void set_fixmap(unsigned map, unsigned long mfn, unsigned attributes)
->  {
-> @@ -173,8 +222,8 @@ void __init setup_pagetables(unsigned long boot_phys_offset)
->      flush_xen_data_tlb_va(dest_va);
->  
->      /* Calculate virt-to-phys offset for the new location */
-> -    phys_offset = xen_paddr - (unsigned long) _start;
-> -
-> +    xen_phys_offset = phys_offset = xen_paddr - (unsigned long) _start;
-> +    
-
-Just make phys_offset file-scope static; no need to add a new variable
-for this.
-
->      /* Copy */
->      memcpy((void *) dest_va, _start, _end - _start);
->  
-> diff --git a/xen/include/asm-arm/page.h b/xen/include/asm-arm/page.h
-> index b6df64e..22c56b5 100644
-> --- a/xen/include/asm-arm/page.h
-> +++ b/xen/include/asm-arm/page.h
-> @@ -312,6 +312,8 @@ static inline uint64_t gva_to_ipa(uint32_t va)
->  /* Bits in the PAR returned by va_to_par */
->  #define PAR_FAULT 0x1
->  
-> +extern void dump_pt_walk(uint32_t addr);
-> +
-
-Maybe a comment?
-
-Cheers,
-
-Tim.
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<20120607084917.GB70339@ocelot.phlegethon.org> b/test/corpus/<20120607084917.GB70339@ocelot.phlegethon.org>
deleted file mode 100644 (file)
index 6fa43e1..0000000
+++ /dev/null
@@ -1,132 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Jun 07 09:53:32 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 07 Jun 2012 09:53:32 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1ScYT8-0003Yh-N7
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 07 Jun 2012 09:53:32 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1ScYPC-0004jZ-A3; Thu, 07 Jun 2012 08:49:22 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72) (envelope-from <tim@xen.org>)
-       id 1ScYPA-0004jT-U7
-       for xen-devel@lists.xen.org; Thu, 07 Jun 2012 08:49:21 +0000
-Received: from [85.158.138.51:64465] by server-3.bemta-3.messagelabs.com id
-       20/E2-25608-E0B60DF4; Thu, 07 Jun 2012 08:49:18 +0000
-X-Env-Sender: tim@xen.org
-X-Msg-Ref: server-14.tower-174.messagelabs.com!1339058957!24858852!1
-X-Originating-IP: [81.29.64.94]
-X-SpamReason: No, hits=0.0 required=7.0 tests=
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 3765 invoked from network); 7 Jun 2012 08:49:18 -0000
-Received: from ocelot.phlegethon.org (HELO mail.phlegethon.org) (81.29.64.94)
-       by server-14.tower-174.messagelabs.com with DHE-RSA-AES256-SHA
-       encrypted SMTP; 7 Jun 2012 08:49:18 -0000
-Received: from tjd by mail.phlegethon.org with local (Exim 4.67 (FreeBSD))
-       (envelope-from <tim@xen.org>)
-       id 1ScYP7-000IOJ-Gv; Thu, 07 Jun 2012 08:49:17 +0000
-Date: Thu, 7 Jun 2012 09:49:17 +0100
-From: Tim Deegan <tim@xen.org>
-To: Ian Campbell <ian.campbell@citrix.com>
-Message-ID: <20120607084917.GB70339@ocelot.phlegethon.org>
-References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
-       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-       <1338565207-2888-3-git-send-email-ian.campbell@citrix.com>
-Mime-Version: 1.0
-Content-Disposition: inline
-In-Reply-To: <1338565207-2888-3-git-send-email-ian.campbell@citrix.com>
-User-Agent: Mutt/1.4.2.1i
-Cc: xen-devel@lists.xen.org
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 03/38] arm: handy function to print a walk
-       of a domain's p2m.
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-At 15:39 +0000 on 01 Jun (1338565172), Ian Campbell wrote:
-> Useful for debug but not actually used in this patch.
-> 
-> Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
-> ---
->  xen/arch/arm/p2m.c         |   34 ++++++++++++++++++++++++++++++++++
->  xen/include/asm-arm/page.h |    1 +
->  2 files changed, 35 insertions(+), 0 deletions(-)
-> 
-> diff --git a/xen/arch/arm/p2m.c b/xen/arch/arm/p2m.c
-> index 4f624d8..fdbecbc 100644
-> --- a/xen/arch/arm/p2m.c
-> +++ b/xen/arch/arm/p2m.c
-> @@ -5,6 +5,40 @@
->  #include <xen/domain_page.h>
->  #include <asm/flushtlb.h>
->  
-> +void dump_p2m_lookup(struct domain *d, paddr_t addr)
-> +{
-> +    struct p2m_domain *p2m = &d->arch.p2m;
-> +    lpae_t *first = NULL, *second = NULL, *third = NULL;
-> +
-> +    printk("dom%d IPA %#016llx\n", d->domain_id, addr);
-> +
-> +    first = __map_domain_page(p2m->first_level);
-> +    printk("1ST[%#03llx] = %#016llx\n",
-> +           first_table_offset(addr),
-> +           first[first_table_offset(addr)].bits);
-> +    if ( !first[first_table_offset(addr)].p2m.valid ||
-> +         !first[first_table_offset(addr)].p2m.table )
-> +        goto done;
-> +
-> +    second = map_domain_page(first[first_table_offset(addr)].p2m.base);
-> +    printk("2ND[%#03llx] = %#016llx\n",
-> +           second_table_offset(addr),
-> +           second[second_table_offset(addr)].bits);
-> +    if ( !second[second_table_offset(addr)].p2m.valid ||
-> +         !second[second_table_offset(addr)].p2m.table )
-> +        goto done;
-> +
-> +    third = map_domain_page(second[second_table_offset(addr)].p2m.base);
-> +    printk("3RD[%#03llx] = %#016llx\n",
-> +           third_table_offset(addr),
-> +           third[third_table_offset(addr)].bits);
-> +
-> +done:
-> +    if (third) unmap_domain_page(third);
-> +    if (second) unmap_domain_page(second);
-> +    if (first) unmap_domain_page(first);
-> +}
-
-Can this be unified with dump_pt_walk?  As it happens, the valid, table,
-and base fields are the same in pt and p2m entries.
-
-Tim.
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<20120607090334.GC70339@ocelot.phlegethon.org> b/test/corpus/<20120607090334.GC70339@ocelot.phlegethon.org>
deleted file mode 100644 (file)
index 26da8d0..0000000
+++ /dev/null
@@ -1,112 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Jun 07 10:08:06 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 07 Jun 2012 10:08:06 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1ScYhF-0003bx-7M
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 07 Jun 2012 10:08:06 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1ScYd2-00053E-4U; Thu, 07 Jun 2012 09:03:40 +0000
-Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
-       by lists.xen.org with esmtp (Exim 4.72) (envelope-from <tim@xen.org>)
-       id 1ScYd0-00052W-5h
-       for xen-devel@lists.xen.org; Thu, 07 Jun 2012 09:03:38 +0000
-Received: from [193.109.254.147:27077] by server-2.bemta-14.messagelabs.com id
-       A2/EA-27740-96E60DF4; Thu, 07 Jun 2012 09:03:37 +0000
-X-Env-Sender: tim@xen.org
-X-Msg-Ref: server-14.tower-27.messagelabs.com!1339059816!1674246!1
-X-Originating-IP: [81.29.64.94]
-X-SpamReason: No, hits=0.0 required=7.0 tests=
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 32160 invoked from network); 7 Jun 2012 09:03:36 -0000
-Received: from ocelot.phlegethon.org (HELO mail.phlegethon.org) (81.29.64.94)
-       by server-14.tower-27.messagelabs.com with DHE-RSA-AES256-SHA
-       encrypted SMTP; 7 Jun 2012 09:03:36 -0000
-Received: from tjd by mail.phlegethon.org with local (Exim 4.67 (FreeBSD))
-       (envelope-from <tim@xen.org>)
-       id 1ScYcw-000IQe-LA; Thu, 07 Jun 2012 09:03:34 +0000
-Date: Thu, 7 Jun 2012 10:03:34 +0100
-From: Tim Deegan <tim@xen.org>
-To: Ian Campbell <ian.campbell@citrix.com>
-Message-ID: <20120607090334.GC70339@ocelot.phlegethon.org>
-References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
-       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-       <1338565207-2888-11-git-send-email-ian.campbell@citrix.com>
-Mime-Version: 1.0
-Content-Disposition: inline
-In-Reply-To: <1338565207-2888-11-git-send-email-ian.campbell@citrix.com>
-User-Agent: Mutt/1.4.2.1i
-Cc: xen-devel@lists.xen.org
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 11/38] arm: implement p2m lookup
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-At 15:39 +0000 on 01 Jun (1338565180), Ian Campbell wrote:
-> +/*
-> + * Lookup the MFN corresponding to a domain's PFN.
-> + *
-> + * There are no processor functions to do a stage 2 only lookup therefore we
-> + * do a a software walk.
-> + */
-> +paddr_t p2m_lookup(struct domain *d, paddr_t paddr)
-> +{
-> +    struct p2m_domain *p2m = &d->arch.p2m;
-> +    lpae_t pte, *first = NULL, *second = NULL, *third = NULL;
-> +    paddr_t maddr = INVALID_PADDR;
-> +
-> +    spin_lock(&p2m->lock);
-> +
-> +    first = __map_domain_page(p2m->first_level);
-> +    if ( !first[first_table_offset(paddr)].p2m.valid )
-> +        goto done_err;
-> +    if ( !first[first_table_offset(paddr)].p2m.table )
-> +    {
-> +        pte = first[first_table_offset(paddr)];
-> +        goto done;
-> +    }
-
-This would be neater as: 
-       pte = first[first_table_offset(paddr)];
-       if ( !pte.p2m.valid || !pte.p2m.table )
-           goto done;
-
-and test for pte.valid at 'done'.
-
-It would be nice to do the three levels in a loop as well, but the weird
-way the table bit behaves in third-level entries might make that more
-confusing than the straight-line version.
-
-Tim.
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<20120607090808.GD70339@ocelot.phlegethon.org> b/test/corpus/<20120607090808.GD70339@ocelot.phlegethon.org>
deleted file mode 100644 (file)
index 561e6b5..0000000
+++ /dev/null
@@ -1,92 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Jun 07 10:12:26 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 07 Jun 2012 10:12:26 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1ScYlQ-0003cy-NL
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 07 Jun 2012 10:12:26 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1ScYhQ-0005E6-R1; Thu, 07 Jun 2012 09:08:12 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72) (envelope-from <tim@xen.org>)
-       id 1ScYhO-0005Dz-C4
-       for xen-devel@lists.xen.org; Thu, 07 Jun 2012 09:08:10 +0000
-Received: from [85.158.143.35:17586] by server-1.bemta-4.messagelabs.com id
-       D2/DB-10042-97F60DF4; Thu, 07 Jun 2012 09:08:09 +0000
-X-Env-Sender: tim@xen.org
-X-Msg-Ref: server-10.tower-21.messagelabs.com!1339060088!11245975!1
-X-Originating-IP: [81.29.64.94]
-X-SpamReason: No, hits=0.0 required=7.0 tests=
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 2335 invoked from network); 7 Jun 2012 09:08:08 -0000
-Received: from ocelot.phlegethon.org (HELO mail.phlegethon.org) (81.29.64.94)
-       by server-10.tower-21.messagelabs.com with DHE-RSA-AES256-SHA
-       encrypted SMTP; 7 Jun 2012 09:08:08 -0000
-Received: from tjd by mail.phlegethon.org with local (Exim 4.67 (FreeBSD))
-       (envelope-from <tim@xen.org>)
-       id 1ScYhM-000IRg-Bk; Thu, 07 Jun 2012 09:08:08 +0000
-Date: Thu, 7 Jun 2012 10:08:08 +0100
-From: Tim Deegan <tim@xen.org>
-To: Ian Campbell <ian.campbell@citrix.com>
-Message-ID: <20120607090808.GD70339@ocelot.phlegethon.org>
-References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
-       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-       <1338565207-2888-16-git-send-email-ian.campbell@citrix.com>
-Mime-Version: 1.0
-Content-Disposition: inline
-In-Reply-To: <1338565207-2888-16-git-send-email-ian.campbell@citrix.com>
-User-Agent: Mutt/1.4.2.1i
-Cc: xen-devel@lists.xen.org
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 16/38] arm: Add simple cpu_{sibling,
-       core}_mask
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-At 15:39 +0000 on 01 Jun (1338565185), Ian Campbell wrote:
-> @@ -230,6 +230,13 @@ void __init start_xen(unsigned long boot_phys_offset,
->          }
->      }
->  
-> +    if ( !zalloc_cpumask_var(&per_cpu(cpu_sibling_mask, 0)) ||
-> +         !zalloc_cpumask_var(&per_cpu(cpu_core_mask, 0)) )
-> +        BUG();
-> +
-> +    cpumask_clear(per_cpu(cpu_sibling_mask, 0));
-> +    cpumask_clear(per_cpu(cpu_core_mask, 0));
-
-Aren't these clear()s noops?  
-
-Tim.
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<20120607092951.GE70339@ocelot.phlegethon.org> b/test/corpus/<20120607092951.GE70339@ocelot.phlegethon.org>
deleted file mode 100644 (file)
index 8df491a..0000000
+++ /dev/null
@@ -1,119 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Jun 07 10:33:30 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 07 Jun 2012 10:33:30 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1ScZ5o-0003hu-Oq
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 07 Jun 2012 10:33:30 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1ScZ2S-0006Px-3i; Thu, 07 Jun 2012 09:29:56 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72) (envelope-from <tim@xen.org>)
-       id 1ScZ2Q-0006Pl-QB
-       for xen-devel@lists.xen.org; Thu, 07 Jun 2012 09:29:54 +0000
-Received: from [85.158.138.51:36241] by server-5.bemta-3.messagelabs.com id
-       F2/F6-03598-19470DF4; Thu, 07 Jun 2012 09:29:53 +0000
-X-Env-Sender: tim@xen.org
-X-Msg-Ref: server-11.tower-174.messagelabs.com!1339061392!31207764!1
-X-Originating-IP: [81.29.64.94]
-X-SpamReason: No, hits=0.0 required=7.0 tests=
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 23097 invoked from network); 7 Jun 2012 09:29:53 -0000
-Received: from ocelot.phlegethon.org (HELO mail.phlegethon.org) (81.29.64.94)
-       by server-11.tower-174.messagelabs.com with DHE-RSA-AES256-SHA
-       encrypted SMTP; 7 Jun 2012 09:29:53 -0000
-Received: from tjd by mail.phlegethon.org with local (Exim 4.67 (FreeBSD))
-       (envelope-from <tim@xen.org>)
-       id 1ScZ2N-000IWb-Kw; Thu, 07 Jun 2012 09:29:51 +0000
-Date: Thu, 7 Jun 2012 10:29:51 +0100
-From: Tim Deegan <tim@xen.org>
-To: Ian Campbell <ian.campbell@citrix.com>
-Message-ID: <20120607092951.GE70339@ocelot.phlegethon.org>
-References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
-       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-       <1338565207-2888-18-git-send-email-ian.campbell@citrix.com>
-Mime-Version: 1.0
-Content-Disposition: inline
-In-Reply-To: <1338565207-2888-18-git-send-email-ian.campbell@citrix.com>
-User-Agent: Mutt/1.4.2.1i
-Cc: xen-devel@lists.xen.org
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 18/38] arm: implement vpl011 (UART) emulator.
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-> +int domain_uart0_init(struct domain *d)
-> +{
-> +    int rc;
-> +    if ( d->domain_id == 0 )
-> +        return 0;
-
-Why?  There's no equivalent gate on the MMIO handlers.
-
-> +    spin_lock_init(&d->arch.uart0.lock);
-> +    d->arch.uart0.idx = 0;
-> +
-> +    rc = -ENOMEM;
-> +    d->arch.uart0.buf = xzalloc_array(char, VPL011_BUF_SIZE);
-> +    if ( !d->arch.uart0.buf )
-> +        goto out;
-
-Just return ENOMEM here - the 'rc=foo; goto out' is overkill.
-
-> +
-> +    rc = 0;
-> +out:
-> +    return rc;
-> +}
-
-> +static int uart0_mmio_check(struct vcpu *v, paddr_t addr)
-> +{
-> +    return v->domain->domain_id && addr >= UART0_BASE_ADDRESS && addr < (UART0_BASE_ADDRESS+65536);
-> +}
-
-linewrap?
-
-> +
-> +static int uart0_mmio_read(struct vcpu *v, mmio_info_t *info)
-> +{
-> +    struct hsr_dabt dabt = info->dabt;
-> +    struct cpu_user_regs *regs = guest_cpu_user_regs();
-> +    uint32_t *r = &regs->r0 + dabt.reg;
-> +    int offset = (int)(info->gpa - UART0_BASE_ADDRESS);
-> +
-
-Need to check dabt.size != 0 here too?
-
-Tim.
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<20120607093258.GF70339@ocelot.phlegethon.org> b/test/corpus/<20120607093258.GF70339@ocelot.phlegethon.org>
deleted file mode 100644 (file)
index 4bb25bd..0000000
+++ /dev/null
@@ -1,131 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Jun 07 10:37:14 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 07 Jun 2012 10:37:14 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1ScZ9T-0003j3-SL
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 07 Jun 2012 10:37:14 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1ScZ5i-0006hU-NA; Thu, 07 Jun 2012 09:33:18 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72) (envelope-from <tim@xen.org>)
-       id 1ScZ5h-0006hH-FF
-       for xen-devel@lists.xen.org; Thu, 07 Jun 2012 09:33:17 +0000
-Received: from [85.158.138.51:11187] by server-9.bemta-3.messagelabs.com id
-       3E/84-15054-C5570DF4; Thu, 07 Jun 2012 09:33:16 +0000
-X-Env-Sender: tim@xen.org
-X-Msg-Ref: server-2.tower-174.messagelabs.com!1339061594!31249410!1
-X-Originating-IP: [81.29.64.94]
-X-SpamReason: No, hits=0.0 required=7.0 tests=
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 9868 invoked from network); 7 Jun 2012 09:33:14 -0000
-Received: from ocelot.phlegethon.org (HELO mail.phlegethon.org) (81.29.64.94)
-       by server-2.tower-174.messagelabs.com with DHE-RSA-AES256-SHA
-       encrypted SMTP; 7 Jun 2012 09:33:14 -0000
-Received: from tjd by mail.phlegethon.org with local (Exim 4.67 (FreeBSD))
-       (envelope-from <tim@xen.org>)
-       id 1ScZ5O-000IXJ-G6; Thu, 07 Jun 2012 09:32:58 +0000
-Date: Thu, 7 Jun 2012 10:32:58 +0100
-From: Tim Deegan <tim@xen.org>
-To: Ian Campbell <ian.campbell@citrix.com>
-Message-ID: <20120607093258.GF70339@ocelot.phlegethon.org>
-References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
-       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-       <1338565207-2888-20-git-send-email-ian.campbell@citrix.com>
-Mime-Version: 1.0
-Content-Disposition: inline
-In-Reply-To: <1338565207-2888-20-git-send-email-ian.campbell@citrix.com>
-User-Agent: Mutt/1.4.2.1i
-Cc: xen-devel@lists.xen.org
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 20/38] arm: dump a page table walk when
-       va_to_par fails.
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-At 15:39 +0000 on 01 Jun (1338565189), Ian Campbell wrote:
-> Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
-
-Acked-by: Tim Deegan <tim@xen.org>
-
-> ---
->  xen/include/asm-arm/page.h |   12 ++++++++----
->  1 files changed, 8 insertions(+), 4 deletions(-)
-> 
-> diff --git a/xen/include/asm-arm/page.h b/xen/include/asm-arm/page.h
-> index bb1729a..f36bf6f 100644
-> --- a/xen/include/asm-arm/page.h
-> +++ b/xen/include/asm-arm/page.h
-> @@ -254,6 +254,9 @@ static inline void flush_guest_tlb(void)
->      WRITE_CP32(r0 /* dummy */, TLBIALLNSNH);
->  }
->  
-> +extern void dump_pt_walk(uint32_t addr);
-> +extern void dump_p2m_lookup(struct domain *d, paddr_t addr);
-> +
->  /* Ask the MMU to translate a VA for us */
->  static inline uint64_t __va_to_par(uint32_t va)
->  {
-> @@ -270,7 +273,11 @@ static inline uint64_t va_to_par(uint32_t va)
->  {
->      uint64_t par = __va_to_par(va);
->      /* It is not OK to call this with an invalid VA */
-> -    if ( par & PAR_F ) panic_PAR(par, "Hypervisor");
-> +    if ( par & PAR_F )
-> +    {
-> +        dump_pt_walk(va);
-> +        panic_PAR(par, "Hypervisor");
-> +    }
->      return par;
->  }
->  
-> @@ -314,9 +321,6 @@ static inline uint64_t gva_to_ipa(uint32_t va)
->  /* Bits in the PAR returned by va_to_par */
->  #define PAR_FAULT 0x1
->  
-> -extern void dump_pt_walk(uint32_t addr);
-> -extern void dump_p2m_lookup(struct domain *d, paddr_t addr);
-> -
->  #endif /* __ASSEMBLY__ */
->  
->  /* These numbers add up to a 39-bit input address space.  The  ARMv7-A
-> -- 
-> 1.7.9.1
-> 
-> 
-> _______________________________________________
-> Xen-devel mailing list
-> Xen-devel@lists.xen.org
-> http://lists.xen.org/xen-devel
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<20120607094152.GG70339@ocelot.phlegethon.org> b/test/corpus/<20120607094152.GG70339@ocelot.phlegethon.org>
deleted file mode 100644 (file)
index 5628b11..0000000
+++ /dev/null
@@ -1,87 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Jun 07 10:45:03 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 07 Jun 2012 10:45:03 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1ScZGz-0003lM-VG
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 07 Jun 2012 10:45:03 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1ScZE4-0007yw-2a; Thu, 07 Jun 2012 09:41:56 +0000
-Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
-       by lists.xen.org with esmtp (Exim 4.72) (envelope-from <tim@xen.org>)
-       id 1ScZE2-0007yi-I2
-       for xen-devel@lists.xen.org; Thu, 07 Jun 2012 09:41:54 +0000
-Received: from [193.109.254.147:39698] by server-10.bemta-14.messagelabs.com
-       id BC/1A-25709-16770DF4; Thu, 07 Jun 2012 09:41:53 +0000
-X-Env-Sender: tim@xen.org
-X-Msg-Ref: server-6.tower-27.messagelabs.com!1339062112!2883616!1
-X-Originating-IP: [81.29.64.94]
-X-SpamReason: No, hits=0.0 required=7.0 tests=
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 12246 invoked from network); 7 Jun 2012 09:41:53 -0000
-Received: from ocelot.phlegethon.org (HELO mail.phlegethon.org) (81.29.64.94)
-       by server-6.tower-27.messagelabs.com with DHE-RSA-AES256-SHA
-       encrypted SMTP; 7 Jun 2012 09:41:53 -0000
-Received: from tjd by mail.phlegethon.org with local (Exim 4.67 (FreeBSD))
-       (envelope-from <tim@xen.org>)
-       id 1ScZE0-000IZy-AH; Thu, 07 Jun 2012 09:41:52 +0000
-Date: Thu, 7 Jun 2012 10:41:52 +0100
-From: Tim Deegan <tim@xen.org>
-To: Ian Campbell <ian.campbell@citrix.com>
-Message-ID: <20120607094152.GG70339@ocelot.phlegethon.org>
-References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
-       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-       <1338565207-2888-21-git-send-email-ian.campbell@citrix.com>
-Mime-Version: 1.0
-Content-Disposition: inline
-In-Reply-To: <1338565207-2888-21-git-send-email-ian.campbell@citrix.com>
-User-Agent: Mutt/1.4.2.1i
-Cc: xen-devel@lists.xen.org
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 21/38] arm: dump guest s1 walk on data abort
-       which is not a stage 2 issue.
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-At 15:39 +0000 on 01 Jun (1338565190), Ian Campbell wrote:
-> +    offset = addr >> (12+10);
-> +    printk("1ST[%#03"PRIx32"] (%#"PRIpaddr") = %#010"PRIx32"\n",
-
-Nit: 0x%08 prints '0' as '0x00000000', which is nicer I think.
-
-Otherwise: ack.
-
-Tim.
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<20120607094805.GH70339@ocelot.phlegethon.org> b/test/corpus/<20120607094805.GH70339@ocelot.phlegethon.org>
deleted file mode 100644 (file)
index 4f4eec6..0000000
+++ /dev/null
@@ -1,86 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Jun 07 10:52:17 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 07 Jun 2012 10:52:17 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1ScZO0-0003md-6e
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 07 Jun 2012 10:52:17 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1ScZK6-0008NY-EW; Thu, 07 Jun 2012 09:48:10 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72) (envelope-from <tim@xen.org>)
-       id 1ScZK5-0008NL-33
-       for xen-devel@lists.xen.org; Thu, 07 Jun 2012 09:48:09 +0000
-Received: from [85.158.143.99:47982] by server-2.bemta-4.messagelabs.com id
-       5F/E9-17938-7D870DF4; Thu, 07 Jun 2012 09:48:07 +0000
-X-Env-Sender: tim@xen.org
-X-Msg-Ref: server-15.tower-216.messagelabs.com!1339062486!31697498!1
-X-Originating-IP: [81.29.64.94]
-X-SpamReason: No, hits=0.0 required=7.0 tests=
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 8274 invoked from network); 7 Jun 2012 09:48:06 -0000
-Received: from ocelot.phlegethon.org (HELO mail.phlegethon.org) (81.29.64.94)
-       by server-15.tower-216.messagelabs.com with DHE-RSA-AES256-SHA
-       encrypted SMTP; 7 Jun 2012 09:48:06 -0000
-Received: from tjd by mail.phlegethon.org with local (Exim 4.67 (FreeBSD))
-       (envelope-from <tim@xen.org>)
-       id 1ScZK1-000Ib5-EE; Thu, 07 Jun 2012 09:48:05 +0000
-Date: Thu, 7 Jun 2012 10:48:05 +0100
-From: Tim Deegan <tim@xen.org>
-To: Ian Campbell <ian.campbell@citrix.com>
-Message-ID: <20120607094805.GH70339@ocelot.phlegethon.org>
-References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
-       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-       <1338565207-2888-26-git-send-email-ian.campbell@citrix.com>
-Mime-Version: 1.0
-Content-Disposition: inline
-In-Reply-To: <1338565207-2888-26-git-send-email-ian.campbell@citrix.com>
-User-Agent: Mutt/1.4.2.1i
-Cc: xen-devel@lists.xen.org
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 26/38] arm: fix locking in create_p2m_entries
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-At 15:39 +0000 on 01 Jun (1338565195), Ian Campbell wrote:
-> For some reason we were holding the lock over only the unmaps at the end of
-> the function, rather than for the whole walk.
-> 
-> We might want to be more clever in the future, but for now lets just lock for
-> the whole walk+create process.
-> 
-> Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
-
-Acked-by: Tim Deegan <tim@xen.org>
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<20120607095128.GI70339@ocelot.phlegethon.org> b/test/corpus/<20120607095128.GI70339@ocelot.phlegethon.org>
deleted file mode 100644 (file)
index 61c3183..0000000
+++ /dev/null
@@ -1,105 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Jun 07 10:54:52 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 07 Jun 2012 10:54:52 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1ScZQY-0003n7-1E
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 07 Jun 2012 10:54:52 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1ScZNM-0000Gb-QX; Thu, 07 Jun 2012 09:51:32 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72) (envelope-from <tim@xen.org>)
-       id 1ScZNL-0000G0-5G
-       for xen-devel@lists.xen.org; Thu, 07 Jun 2012 09:51:31 +0000
-Received: from [85.158.143.99:12434] by server-1.bemta-4.messagelabs.com id
-       2F/CE-10042-2A970DF4; Thu, 07 Jun 2012 09:51:30 +0000
-X-Env-Sender: tim@xen.org
-X-Msg-Ref: server-11.tower-216.messagelabs.com!1339062689!24179133!1
-X-Originating-IP: [81.29.64.94]
-X-SpamReason: No, hits=0.0 required=7.0 tests=
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 15249 invoked from network); 7 Jun 2012 09:51:29 -0000
-Received: from ocelot.phlegethon.org (HELO mail.phlegethon.org) (81.29.64.94)
-       by server-11.tower-216.messagelabs.com with DHE-RSA-AES256-SHA
-       encrypted SMTP; 7 Jun 2012 09:51:29 -0000
-Received: from tjd by mail.phlegethon.org with local (Exim 4.67 (FreeBSD))
-       (envelope-from <tim@xen.org>)
-       id 1ScZNI-000Ibn-OK; Thu, 07 Jun 2012 09:51:28 +0000
-Date: Thu, 7 Jun 2012 10:51:28 +0100
-From: Tim Deegan <tim@xen.org>
-To: Ian Campbell <ian.campbell@citrix.com>
-Message-ID: <20120607095128.GI70339@ocelot.phlegethon.org>
-References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
-       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-       <1338565207-2888-28-git-send-email-ian.campbell@citrix.com>
-Mime-Version: 1.0
-Content-Disposition: inline
-In-Reply-To: <1338565207-2888-28-git-send-email-ian.campbell@citrix.com>
-User-Agent: Mutt/1.4.2.1i
-Cc: xen-devel@lists.xen.org
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 28/38] arm: map GICV in all domains,
-       not just dom0.
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-At 15:39 +0000 on 01 Jun (1338565197), Ian Campbell wrote:
-> diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
-> index a7fb227..e15c1e8 100644
-> --- a/xen/arch/arm/domain.c
-> +++ b/xen/arch/arm/domain.c
-> @@ -329,13 +329,17 @@ int arch_domain_create(struct domain *d, unsigned int domcr_flags)
->  
->          if ( (rc = p2m_alloc_table(d)) != 0 )
->              goto fail;
-> -    }
->  
-> -    if ( (rc = domain_vgic_init(d)) != 0 )
-> -        goto fail;
-> +        if ( (rc = gicv_setup(d)) != 0 )
-> +            goto fail;
-> +
-> +        if ( (rc = domain_vgic_init(d)) != 0 )
-> +            goto fail;
-> +    }
->  
->      rc = 0;
->  fail:
-> +    /*XXX unwind allocations etc */
-
-Ahem. :)
-
-Tim.
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<20120607101826.GJ70339@ocelot.phlegethon.org> b/test/corpus/<20120607101826.GJ70339@ocelot.phlegethon.org>
deleted file mode 100644 (file)
index 1605e99..0000000
+++ /dev/null
@@ -1,96 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Jun 07 11:21:44 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 07 Jun 2012 11:21:44 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1ScZqY-0003uc-0g
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 07 Jun 2012 11:21:44 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1ScZnT-0001qN-Ra; Thu, 07 Jun 2012 10:18:31 +0000
-Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
-       by lists.xen.org with esmtp (Exim 4.72) (envelope-from <tim@xen.org>)
-       id 1ScZnR-0001pu-Pc
-       for xen-devel@lists.xen.org; Thu, 07 Jun 2012 10:18:29 +0000
-Received: from [193.109.254.147:24815] by server-12.bemta-14.messagelabs.com
-       id 86/BF-12998-4FF70DF4; Thu, 07 Jun 2012 10:18:28 +0000
-X-Env-Sender: tim@xen.org
-X-Msg-Ref: server-16.tower-27.messagelabs.com!1339064307!8406826!1
-X-Originating-IP: [81.29.64.94]
-X-SpamReason: No, hits=0.0 required=7.0 tests=
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 16014 invoked from network); 7 Jun 2012 10:18:28 -0000
-Received: from ocelot.phlegethon.org (HELO mail.phlegethon.org) (81.29.64.94)
-       by server-16.tower-27.messagelabs.com with DHE-RSA-AES256-SHA
-       encrypted SMTP; 7 Jun 2012 10:18:28 -0000
-Received: from tjd by mail.phlegethon.org with local (Exim 4.67 (FreeBSD))
-       (envelope-from <tim@xen.org>)
-       id 1ScZnO-000Ig3-FS; Thu, 07 Jun 2012 10:18:26 +0000
-Date: Thu, 7 Jun 2012 11:18:26 +0100
-From: Tim Deegan <tim@xen.org>
-To: Ian Campbell <Ian.Campbell@citrix.com>
-Message-ID: <20120607101826.GJ70339@ocelot.phlegethon.org>
-References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
-       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-       <1338565207-2888-18-git-send-email-ian.campbell@citrix.com>
-       <20120607092951.GE70339@ocelot.phlegethon.org>
-       <1339061691.15265.49.camel@zakaz.uk.xensource.com>
-Mime-Version: 1.0
-Content-Disposition: inline
-In-Reply-To: <1339061691.15265.49.camel@zakaz.uk.xensource.com>
-User-Agent: Mutt/1.4.2.1i
-Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 18/38] arm: implement vpl011 (UART) emulator.
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-At 10:34 +0100 on 07 Jun (1339065291), Ian Campbell wrote:
-> On Thu, 2012-06-07 at 10:29 +0100, Tim Deegan wrote:
-> > > +int domain_uart0_init(struct domain *d)
-> > > +{
-> > > +    int rc;
-> > > +    if ( d->domain_id == 0 )
-> > > +        return 0;
-> > 
-> > Why?  There's no equivalent gate on the MMIO handlers.
-> 
-> dom0 has the actual uart mapped at this address, not the emulated one.
-> Maybe that should be written at the caller instead?
-
-Yes - ideally in the same place that puts the MMIO hooks in that will
-call the other functions in this file. 
-
-Tim.
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<20120607102014.GK70339@ocelot.phlegethon.org> b/test/corpus/<20120607102014.GK70339@ocelot.phlegethon.org>
deleted file mode 100644 (file)
index a56d468..0000000
+++ /dev/null
@@ -1,88 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Jun 07 11:23:24 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 07 Jun 2012 11:23:24 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1ScZs7-0003wE-66
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 07 Jun 2012 11:23:24 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1ScZpD-00027g-Bp; Thu, 07 Jun 2012 10:20:19 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72) (envelope-from <tim@xen.org>)
-       id 1ScZpA-00026d-Ra
-       for xen-devel@lists.xen.org; Thu, 07 Jun 2012 10:20:16 +0000
-Received: from [85.158.138.51:62082] by server-6.bemta-3.messagelabs.com id
-       11/54-05063-F5080DF4; Thu, 07 Jun 2012 10:20:15 +0000
-X-Env-Sender: tim@xen.org
-X-Msg-Ref: server-10.tower-174.messagelabs.com!1339064415!27186337!1
-X-Originating-IP: [81.29.64.94]
-X-SpamReason: No, hits=0.0 required=7.0 tests=
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 29660 invoked from network); 7 Jun 2012 10:20:15 -0000
-Received: from ocelot.phlegethon.org (HELO mail.phlegethon.org) (81.29.64.94)
-       by server-10.tower-174.messagelabs.com with DHE-RSA-AES256-SHA
-       encrypted SMTP; 7 Jun 2012 10:20:15 -0000
-Received: from tjd by mail.phlegethon.org with local (Exim 4.67 (FreeBSD))
-       (envelope-from <tim@xen.org>)
-       id 1ScZp8-000Igb-Kv; Thu, 07 Jun 2012 10:20:14 +0000
-Date: Thu, 7 Jun 2012 11:20:14 +0100
-From: Tim Deegan <tim@xen.org>
-To: Ian Campbell <ian.campbell@citrix.com>
-Message-ID: <20120607102014.GK70339@ocelot.phlegethon.org>
-References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
-       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-       <1338565207-2888-30-git-send-email-ian.campbell@citrix.com>
-Mime-Version: 1.0
-Content-Disposition: inline
-In-Reply-To: <1338565207-2888-30-git-send-email-ian.campbell@citrix.com>
-User-Agent: Mutt/1.4.2.1i
-Cc: xen-devel@lists.xen.org
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 30/38] arm: Upgrade guest barriers to
-       Outer-Shareable. Enable Protected Table Walk.
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-At 15:39 +0000 on 01 Jun (1338565199), Ian Campbell wrote:
-> Upgrading barriers is conservative and may not be necessary.
-> 
-> Protected Table Walk traps stage 1 page tables which refer to device memory
-> (per stage 2) using a non-device mapping. This generally indicates a guest
-> error but trapping it as a fault for now helps us know if something odd is
-> going on.
-> 
-> Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
-
-Acked-by: Tim Deegan <tim@xen.org>
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<20120607102054.GL70339@ocelot.phlegethon.org> b/test/corpus/<20120607102054.GL70339@ocelot.phlegethon.org>
deleted file mode 100644 (file)
index d48f264..0000000
+++ /dev/null
@@ -1,84 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Jun 07 11:23:50 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 07 Jun 2012 11:23:50 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1ScZsX-0003wg-6w
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 07 Jun 2012 11:23:50 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1ScZpo-0002DS-Pu; Thu, 07 Jun 2012 10:20:56 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72) (envelope-from <tim@xen.org>)
-       id 1ScZpn-0002DD-Sk
-       for xen-devel@lists.xen.org; Thu, 07 Jun 2012 10:20:55 +0000
-Received: from [85.158.138.51:12709] by server-9.bemta-3.messagelabs.com id
-       18/EA-15054-78080DF4; Thu, 07 Jun 2012 10:20:55 +0000
-X-Env-Sender: tim@xen.org
-X-Msg-Ref: server-14.tower-174.messagelabs.com!1339064454!24881695!1
-X-Originating-IP: [81.29.64.94]
-X-SpamReason: No, hits=0.0 required=7.0 tests=
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 1987 invoked from network); 7 Jun 2012 10:20:54 -0000
-Received: from ocelot.phlegethon.org (HELO mail.phlegethon.org) (81.29.64.94)
-       by server-14.tower-174.messagelabs.com with DHE-RSA-AES256-SHA
-       encrypted SMTP; 7 Jun 2012 10:20:54 -0000
-Received: from tjd by mail.phlegethon.org with local (Exim 4.67 (FreeBSD))
-       (envelope-from <tim@xen.org>)
-       id 1ScZpm-000Ih7-2L; Thu, 07 Jun 2012 10:20:54 +0000
-Date: Thu, 7 Jun 2012 11:20:54 +0100
-From: Tim Deegan <tim@xen.org>
-To: Ian Campbell <ian.campbell@citrix.com>
-Message-ID: <20120607102054.GL70339@ocelot.phlegethon.org>
-References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
-       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-       <1338565207-2888-31-git-send-email-ian.campbell@citrix.com>
-Mime-Version: 1.0
-Content-Disposition: inline
-In-Reply-To: <1338565207-2888-31-git-send-email-ian.campbell@citrix.com>
-User-Agent: Mutt/1.4.2.1i
-Cc: xen-devel@lists.xen.org
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 31/38] arm: gic.lock can be taken in
-       interrupt context, so lock appropriately.
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-At 15:40 +0000 on 01 Jun (1338565200), Ian Campbell wrote:
-> In particular it is taken by gic_set_guest_irq which is called by
-> vgic_vcpu_inject_irq
-> 
-> Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
-
-Acked-by: Tim Deegan <tim@xen.org>
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<20120607102151.GM70339@ocelot.phlegethon.org> b/test/corpus/<20120607102151.GM70339@ocelot.phlegethon.org>
deleted file mode 100644 (file)
index a05f263..0000000
+++ /dev/null
@@ -1,81 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Jun 07 11:25:02 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 07 Jun 2012 11:25:02 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1ScZtg-0003wy-PB
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 07 Jun 2012 11:25:01 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1ScZql-0002Ne-8C; Thu, 07 Jun 2012 10:21:55 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72) (envelope-from <tim@xen.org>)
-       id 1ScZqj-0002N7-Ku
-       for xen-devel@lists.xen.org; Thu, 07 Jun 2012 10:21:53 +0000
-Received: from [85.158.143.99:55241] by server-1.bemta-4.messagelabs.com id
-       45/16-10042-0C080DF4; Thu, 07 Jun 2012 10:21:52 +0000
-X-Env-Sender: tim@xen.org
-X-Msg-Ref: server-13.tower-216.messagelabs.com!1339064511!30824770!1
-X-Originating-IP: [81.29.64.94]
-X-SpamReason: No, hits=0.5 required=7.0 tests=BODY_RANDOM_LONG
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 31372 invoked from network); 7 Jun 2012 10:21:52 -0000
-Received: from ocelot.phlegethon.org (HELO mail.phlegethon.org) (81.29.64.94)
-       by server-13.tower-216.messagelabs.com with DHE-RSA-AES256-SHA
-       encrypted SMTP; 7 Jun 2012 10:21:52 -0000
-Received: from tjd by mail.phlegethon.org with local (Exim 4.67 (FreeBSD))
-       (envelope-from <tim@xen.org>)
-       id 1ScZqh-000IhW-Mm; Thu, 07 Jun 2012 10:21:51 +0000
-Date: Thu, 7 Jun 2012 11:21:51 +0100
-From: Tim Deegan <tim@xen.org>
-To: Ian Campbell <ian.campbell@citrix.com>
-Message-ID: <20120607102151.GM70339@ocelot.phlegethon.org>
-References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
-       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-       <1338565207-2888-32-git-send-email-ian.campbell@citrix.com>
-Mime-Version: 1.0
-Content-Disposition: inline
-In-Reply-To: <1338565207-2888-32-git-send-email-ian.campbell@citrix.com>
-User-Agent: Mutt/1.4.2.1i
-Cc: xen-devel@lists.xen.org
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 32/38] arm: context switch virtual timer
-       registers
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-At 15:40 +0000 on 01 Jun (1338565201), Ian Campbell wrote:
-> Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
-
-Acked-by: Tim Deegan <tim@xen.org>
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<20120607102222.GN70339@ocelot.phlegethon.org> b/test/corpus/<20120607102222.GN70339@ocelot.phlegethon.org>
deleted file mode 100644 (file)
index 418ae94..0000000
+++ /dev/null
@@ -1,81 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Jun 07 11:25:42 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 07 Jun 2012 11:25:42 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1ScZuN-0003xX-Tf
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 07 Jun 2012 11:25:41 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1ScZrG-0002Tv-Lw; Thu, 07 Jun 2012 10:22:26 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72) (envelope-from <tim@xen.org>)
-       id 1ScZrE-0002Ta-Nf
-       for xen-devel@lists.xen.org; Thu, 07 Jun 2012 10:22:24 +0000
-Received: from [85.158.143.99:59523] by server-1.bemta-4.messagelabs.com id
-       28/F6-10042-FD080DF4; Thu, 07 Jun 2012 10:22:23 +0000
-X-Env-Sender: tim@xen.org
-X-Msg-Ref: server-10.tower-216.messagelabs.com!1339064542!25169661!1
-X-Originating-IP: [81.29.64.94]
-X-SpamReason: No, hits=0.0 required=7.0 tests=
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 21794 invoked from network); 7 Jun 2012 10:22:23 -0000
-Received: from ocelot.phlegethon.org (HELO mail.phlegethon.org) (81.29.64.94)
-       by server-10.tower-216.messagelabs.com with DHE-RSA-AES256-SHA
-       encrypted SMTP; 7 Jun 2012 10:22:23 -0000
-Received: from tjd by mail.phlegethon.org with local (Exim 4.67 (FreeBSD))
-       (envelope-from <tim@xen.org>)
-       id 1ScZrC-000Ii1-LV; Thu, 07 Jun 2012 10:22:22 +0000
-Date: Thu, 7 Jun 2012 11:22:22 +0100
-From: Tim Deegan <tim@xen.org>
-To: Ian Campbell <ian.campbell@citrix.com>
-Message-ID: <20120607102222.GN70339@ocelot.phlegethon.org>
-References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
-       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-       <1338565207-2888-33-git-send-email-ian.campbell@citrix.com>
-Mime-Version: 1.0
-Content-Disposition: inline
-In-Reply-To: <1338565207-2888-33-git-send-email-ian.campbell@citrix.com>
-User-Agent: Mutt/1.4.2.1i
-Cc: xen-devel@lists.xen.org
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 33/38] arm: the hyp timer seems to work now,
-       default to using it.
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-At 15:40 +0000 on 01 Jun (1338565202), Ian Campbell wrote:
-> Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
-
-Acked-by: Tim Deegan <tim@xen.org>
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<20120607102315.GO70339@ocelot.phlegethon.org> b/test/corpus/<20120607102315.GO70339@ocelot.phlegethon.org>
deleted file mode 100644 (file)
index d3c33a6..0000000
+++ /dev/null
@@ -1,81 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Jun 07 11:26:32 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 07 Jun 2012 11:26:32 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1ScZv8-0003xz-3T
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 07 Jun 2012 11:26:32 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1ScZs7-0002d7-3v; Thu, 07 Jun 2012 10:23:19 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72) (envelope-from <tim@xen.org>)
-       id 1ScZs5-0002cm-Ct
-       for xen-devel@lists.xen.org; Thu, 07 Jun 2012 10:23:17 +0000
-Received: from [85.158.139.83:42575] by server-11.bemta-5.messagelabs.com id
-       23/24-25194-41180DF4; Thu, 07 Jun 2012 10:23:16 +0000
-X-Env-Sender: tim@xen.org
-X-Msg-Ref: server-8.tower-182.messagelabs.com!1339064595!18583665!1
-X-Originating-IP: [81.29.64.94]
-X-SpamReason: No, hits=0.0 required=7.0 tests=
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 14005 invoked from network); 7 Jun 2012 10:23:15 -0000
-Received: from ocelot.phlegethon.org (HELO mail.phlegethon.org) (81.29.64.94)
-       by server-8.tower-182.messagelabs.com with DHE-RSA-AES256-SHA
-       encrypted SMTP; 7 Jun 2012 10:23:15 -0000
-Received: from tjd by mail.phlegethon.org with local (Exim 4.67 (FreeBSD))
-       (envelope-from <tim@xen.org>)
-       id 1ScZs3-000IiW-Dk; Thu, 07 Jun 2012 10:23:15 +0000
-Date: Thu, 7 Jun 2012 11:23:15 +0100
-From: Tim Deegan <tim@xen.org>
-To: Ian Campbell <ian.campbell@citrix.com>
-Message-ID: <20120607102315.GO70339@ocelot.phlegethon.org>
-References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
-       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-       <1338565207-2888-35-git-send-email-ian.campbell@citrix.com>
-Mime-Version: 1.0
-Content-Disposition: inline
-In-Reply-To: <1338565207-2888-35-git-send-email-ian.campbell@citrix.com>
-User-Agent: Mutt/1.4.2.1i
-Cc: xen-devel@lists.xen.org
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 35/38] arm: move PSR flag definitions into
-       interface, for tools use.
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-At 15:40 +0000 on 01 Jun (1338565204), Ian Campbell wrote:
-> Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
-
-Acked-by: Tim Deegan <tim@xen.org>
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<20120607114240.GQ70339@ocelot.phlegethon.org> b/test/corpus/<20120607114240.GQ70339@ocelot.phlegethon.org>
deleted file mode 100644 (file)
index 59c7e40..0000000
+++ /dev/null
@@ -1,98 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Jun 07 12:46:22 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 07 Jun 2012 12:46:22 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1ScbAP-0004JV-B1
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 07 Jun 2012 12:46:22 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1Scb6x-0007Dg-Ob; Thu, 07 Jun 2012 11:42:43 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72) (envelope-from <tim@xen.org>)
-       id 1Scb6w-0007DT-Gc
-       for xen-devel@lists.xen.org; Thu, 07 Jun 2012 11:42:42 +0000
-Received: from [85.158.139.83:24557] by server-9.bemta-5.messagelabs.com id
-       A6/3E-29678-1B390DF4; Thu, 07 Jun 2012 11:42:41 +0000
-X-Env-Sender: tim@xen.org
-X-Msg-Ref: server-4.tower-182.messagelabs.com!1339069360!29724498!1
-X-Originating-IP: [81.29.64.94]
-X-SpamReason: No, hits=0.0 required=7.0 tests=
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 1800 invoked from network); 7 Jun 2012 11:42:41 -0000
-Received: from ocelot.phlegethon.org (HELO mail.phlegethon.org) (81.29.64.94)
-       by server-4.tower-182.messagelabs.com with DHE-RSA-AES256-SHA
-       encrypted SMTP; 7 Jun 2012 11:42:41 -0000
-Received: from tjd by mail.phlegethon.org with local (Exim 4.67 (FreeBSD))
-       (envelope-from <tim@xen.org>)
-       id 1Scb6u-000Ivf-C3; Thu, 07 Jun 2012 11:42:40 +0000
-Date: Thu, 7 Jun 2012 12:42:40 +0100
-From: Tim Deegan <tim@xen.org>
-To: Ian Campbell <Ian.Campbell@citrix.com>
-Message-ID: <20120607114240.GQ70339@ocelot.phlegethon.org>
-References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
-       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-       <1338565207-2888-16-git-send-email-ian.campbell@citrix.com>
-       <20120607090808.GD70339@ocelot.phlegethon.org>
-       <1339068947.18523.10.camel@zakaz.uk.xensource.com>
-Mime-Version: 1.0
-Content-Disposition: inline
-In-Reply-To: <1339068947.18523.10.camel@zakaz.uk.xensource.com>
-User-Agent: Mutt/1.4.2.1i
-Cc: Keir Fraser <keir@xen.org>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 16/38] arm: Add simple cpu_{sibling,
-       core}_mask
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-At 12:35 +0100 on 07 Jun (1339072547), Ian Campbell wrote:
-> From e980ca1ec9bf92b2f1255ac5222b1da1292f9f72 Mon Sep 17 00:00:00 2001
-> From: Ian Campbell <ian.campbell@citrix.com>
-> Date: Mon, 14 May 2012 12:25:31 +0100
-> Subject: [PATCH] arm: Add simple cpu_{sibling,core}_mask
-> 
-> This needs to be done for all cpus. The allocations require smp_prepare_cpus
-> to be called a bit later on.
-> 
-> In a previous version of this patch these maps were being zeroed (instead of
-> setting the CPU itself in them). This in turn causes cpumask_first to return
-> NR_CPUS, which in turn was causing default_vcpu0_location to misbehave and
-> read off the end of its cnt array. Add a couple of asserts to catch this in
-> the future.
-> 
-> Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
-
-(ARM stuff) Acked-by: Tim Deegan <tim@xen.org>
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<20120607123922.GR70339@ocelot.phlegethon.org> b/test/corpus/<20120607123922.GR70339@ocelot.phlegethon.org>
deleted file mode 100644 (file)
index f49c294..0000000
+++ /dev/null
@@ -1,116 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Jun 07 13:43:53 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 07 Jun 2012 13:43:53 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1Scc47-0004Rs-6D
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 07 Jun 2012 13:43:53 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1Scbzq-00008P-Kn; Thu, 07 Jun 2012 12:39:26 +0000
-Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
-       by lists.xen.org with esmtp (Exim 4.72) (envelope-from <tim@xen.org>)
-       id 1Scbzp-00008K-7U
-       for xen-devel@lists.xen.org; Thu, 07 Jun 2012 12:39:25 +0000
-Received: from [193.109.254.147:15795] by server-11.bemta-14.messagelabs.com
-       id EA/6E-02727-CF0A0DF4; Thu, 07 Jun 2012 12:39:24 +0000
-X-Env-Sender: tim@xen.org
-X-Msg-Ref: server-2.tower-27.messagelabs.com!1339072763!8553453!1
-X-Originating-IP: [81.29.64.94]
-X-SpamReason: No, hits=0.0 required=7.0 tests=
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 16795 invoked from network); 7 Jun 2012 12:39:23 -0000
-Received: from ocelot.phlegethon.org (HELO mail.phlegethon.org) (81.29.64.94)
-       by server-2.tower-27.messagelabs.com with DHE-RSA-AES256-SHA
-       encrypted SMTP; 7 Jun 2012 12:39:23 -0000
-Received: from tjd by mail.phlegethon.org with local (Exim 4.67 (FreeBSD))
-       (envelope-from <tim@xen.org>)
-       id 1Scbzm-000J4d-Jz; Thu, 07 Jun 2012 12:39:22 +0000
-Date: Thu, 7 Jun 2012 13:39:22 +0100
-From: Tim Deegan <tim@xen.org>
-To: Ian Campbell <Ian.Campbell@citrix.com>
-Message-ID: <20120607123922.GR70339@ocelot.phlegethon.org>
-References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
-       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-       <1338565207-2888-2-git-send-email-ian.campbell@citrix.com>
-       <20120607084517.GA70339@ocelot.phlegethon.org>
-       <1339070260.18523.14.camel@zakaz.uk.xensource.com>
-Mime-Version: 1.0
-Content-Disposition: inline
-In-Reply-To: <1339070260.18523.14.camel@zakaz.uk.xensource.com>
-User-Agent: Mutt/1.4.2.1i
-Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 02/38] arm: handy function to print a walk
-       of the hypervisor page tables
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-At 12:57 +0100 on 07 Jun (1339073860), Ian Campbell wrote:
-> On Thu, 2012-06-07 at 09:45 +0100, Tim Deegan wrote:
-> > Hi,
-> > 
-> > At 15:39 +0000 on 01 Jun (1338565171), Ian Campbell wrote:
-> > > +void dump_pt_walk(uint32_t addr)
-> > > +{
-> > > +    paddr_t second_ma, third_ma;
-> > > +    lpae_t *first = NULL, *second = NULL, *third = NULL;
-> > > +    uint64_t httbr = READ_CP64(HTTBR);
-> > > +
-> > > +    printk("Walking Hypervisor VA %#"PRIx32" via HTTBR %#"PRIx64"\n",
-> > > +           addr, httbr);
-> > > +
-> > > +    BUG_ON( (lpae_t *)(unsigned long)(httbr - xen_phys_offset) != xen_pgtable );
-> > > +    first = xen_pgtable;
-> > > +    printk("1ST[%#03"PRIx32"] = %p[%#03"PRIx32"] = %#llx = %#016llx\n",
-> > > +           first_table_offset(addr),
-> > > +           first, first_table_offset(addr),
-> > > +           virt_to_maddr(&first[first_table_offset(addr)]),
-> > > +           first[first_table_offset(addr)].bits);
-> > > +
-> > > +    if ( !first[first_table_offset(addr)].pt.valid ||
-> > > +         !first[first_table_offset(addr)].pt.table )
-> > > +        goto done;
-> > 
-> > This could probably be a for loop rather than open-coding three
-> > almost-identical printks.
-> 
-> The *_table_offsets macro names are different at each stage, I suppose I
-> could open code the equivalent shifts, but I'd rather keep using the
-> access macros.
-
-Ah, OK.  In that case, open-coded is fine. 
-
-Tim.
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<20120607124033.GS70339@ocelot.phlegethon.org> b/test/corpus/<20120607124033.GS70339@ocelot.phlegethon.org>
deleted file mode 100644 (file)
index d0dacce..0000000
+++ /dev/null
@@ -1,143 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Jun 07 13:44:23 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 07 Jun 2012 13:44:23 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1Scc4Y-0004SB-FB
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 07 Jun 2012 13:44:23 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1Scc10-0000Bd-3D; Thu, 07 Jun 2012 12:40:38 +0000
-Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
-       by lists.xen.org with esmtp (Exim 4.72) (envelope-from <tim@xen.org>)
-       id 1Scc0y-0000BX-8y
-       for xen-devel@lists.xen.org; Thu, 07 Jun 2012 12:40:36 +0000
-Received: from [193.109.254.147:30020] by server-11.bemta-14.messagelabs.com
-       id 7B/DF-02727-341A0DF4; Thu, 07 Jun 2012 12:40:35 +0000
-X-Env-Sender: tim@xen.org
-X-Msg-Ref: server-8.tower-27.messagelabs.com!1339072833!8613049!1
-X-Originating-IP: [81.29.64.94]
-X-SpamReason: No, hits=0.5 required=7.0 tests=BODY_RANDOM_LONG
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 19215 invoked from network); 7 Jun 2012 12:40:34 -0000
-Received: from ocelot.phlegethon.org (HELO mail.phlegethon.org) (81.29.64.94)
-       by server-8.tower-27.messagelabs.com with DHE-RSA-AES256-SHA
-       encrypted SMTP; 7 Jun 2012 12:40:34 -0000
-Received: from tjd by mail.phlegethon.org with local (Exim 4.67 (FreeBSD))
-       (envelope-from <tim@xen.org>)
-       id 1Scc0v-000J5H-NQ; Thu, 07 Jun 2012 12:40:33 +0000
-Date: Thu, 7 Jun 2012 13:40:33 +0100
-From: Tim Deegan <tim@xen.org>
-To: Ian Campbell <Ian.Campbell@citrix.com>
-Message-ID: <20120607124033.GS70339@ocelot.phlegethon.org>
-References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
-       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-       <1338565207-2888-3-git-send-email-ian.campbell@citrix.com>
-       <20120607084917.GB70339@ocelot.phlegethon.org>
-       <1339072005.18523.18.camel@zakaz.uk.xensource.com>
-Mime-Version: 1.0
-Content-Disposition: inline
-In-Reply-To: <1339072005.18523.18.camel@zakaz.uk.xensource.com>
-User-Agent: Mutt/1.4.2.1i
-Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 03/38] arm: handy function to print a walk
-       of a domain's p2m.
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-At 13:26 +0100 on 07 Jun (1339075605), Ian Campbell wrote:
-> On Thu, 2012-06-07 at 09:49 +0100, Tim Deegan wrote:
-> > At 15:39 +0000 on 01 Jun (1338565172), Ian Campbell wrote:
-> > > Useful for debug but not actually used in this patch.
-> > > 
-> > > Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
-> > > ---
-> > >  xen/arch/arm/p2m.c         |   34 ++++++++++++++++++++++++++++++++++
-> > >  xen/include/asm-arm/page.h |    1 +
-> > >  2 files changed, 35 insertions(+), 0 deletions(-)
-> > > 
-> > > diff --git a/xen/arch/arm/p2m.c b/xen/arch/arm/p2m.c
-> > > index 4f624d8..fdbecbc 100644
-> > > --- a/xen/arch/arm/p2m.c
-> > > +++ b/xen/arch/arm/p2m.c
-> > > @@ -5,6 +5,40 @@
-> > >  #include <xen/domain_page.h>
-> > >  #include <asm/flushtlb.h>
-> > >  
-> > > +void dump_p2m_lookup(struct domain *d, paddr_t addr)
-> > > +{
-> > > +    struct p2m_domain *p2m = &d->arch.p2m;
-> > > +    lpae_t *first = NULL, *second = NULL, *third = NULL;
-> > > +
-> > > +    printk("dom%d IPA %#016llx\n", d->domain_id, addr);
-> > > +
-> > > +    first = __map_domain_page(p2m->first_level);
-> > > +    printk("1ST[%#03llx] = %#016llx\n",
-> > > +           first_table_offset(addr),
-> > > +           first[first_table_offset(addr)].bits);
-> > > +    if ( !first[first_table_offset(addr)].p2m.valid ||
-> > > +         !first[first_table_offset(addr)].p2m.table )
-> > > +        goto done;
-> > > +
-> > > +    second = map_domain_page(first[first_table_offset(addr)].p2m.base);
-> > > +    printk("2ND[%#03llx] = %#016llx\n",
-> > > +           second_table_offset(addr),
-> > > +           second[second_table_offset(addr)].bits);
-> > > +    if ( !second[second_table_offset(addr)].p2m.valid ||
-> > > +         !second[second_table_offset(addr)].p2m.table )
-> > > +        goto done;
-> > > +
-> > > +    third = map_domain_page(second[second_table_offset(addr)].p2m.base);
-> > > +    printk("3RD[%#03llx] = %#016llx\n",
-> > > +           third_table_offset(addr),
-> > > +           third[third_table_offset(addr)].bits);
-> > > +
-> > > +done:
-> > > +    if (third) unmap_domain_page(third);
-> > > +    if (second) unmap_domain_page(second);
-> > > +    if (first) unmap_domain_page(first);
-> > > +}
-> > 
-> > Can this be unified with dump_pt_walk?
-> 
-> Not all that easily, mainly because dump_pt_walk walks xenheap pages
-> (which don't need mapping) while dump_p2m_walk dumps domheap pages
-> (which need mapping as we go). I probably could write something generic
-> enough but I fear that it would be a mass of if's.
-
-Is there any harm in mapping xenheap pages?  Since this is only invoked
-on error paths, we don't particularly need it to be fast. 
-
-Tim.
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<20120607135930.GW70339@ocelot.phlegethon.org> b/test/corpus/<20120607135930.GW70339@ocelot.phlegethon.org>
deleted file mode 100644 (file)
index 135071e..0000000
+++ /dev/null
@@ -1,123 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Jun 07 15:03:53 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 07 Jun 2012 15:03:53 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1ScdJT-0004oy-Sx
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 07 Jun 2012 15:03:53 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1ScdFO-0003R2-IM; Thu, 07 Jun 2012 13:59:34 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72) (envelope-from <tim@xen.org>)
-       id 1ScdFM-0003Qt-9C
-       for xen-devel@lists.xen.org; Thu, 07 Jun 2012 13:59:32 +0000
-Received: from [85.158.138.51:50105] by server-4.bemta-3.messagelabs.com id
-       54/C2-13598-3C3B0DF4; Thu, 07 Jun 2012 13:59:31 +0000
-X-Env-Sender: tim@xen.org
-X-Msg-Ref: server-9.tower-174.messagelabs.com!1339077570!31328359!1
-X-Originating-IP: [81.29.64.94]
-X-SpamReason: No, hits=0.0 required=7.0 tests=
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 21850 invoked from network); 7 Jun 2012 13:59:30 -0000
-Received: from ocelot.phlegethon.org (HELO mail.phlegethon.org) (81.29.64.94)
-       by server-9.tower-174.messagelabs.com with DHE-RSA-AES256-SHA
-       encrypted SMTP; 7 Jun 2012 13:59:30 -0000
-Received: from tjd by mail.phlegethon.org with local (Exim 4.67 (FreeBSD))
-       (envelope-from <tim@xen.org>)
-       id 1ScdFK-000JI8-5g; Thu, 07 Jun 2012 13:59:30 +0000
-Date: Thu, 7 Jun 2012 14:59:30 +0100
-From: Tim Deegan <tim@xen.org>
-To: Ian Campbell <Ian.Campbell@citrix.com>
-Message-ID: <20120607135930.GW70339@ocelot.phlegethon.org>
-References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
-       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-       <1338565207-2888-29-git-send-email-ian.campbell@citrix.com>
-       <20120601170514.GD77921@ocelot.phlegethon.org>
-       <1338577461.14877.61.camel@dagon.hellion.org.uk>
-Mime-Version: 1.0
-Content-Disposition: inline
-In-Reply-To: <1338577461.14877.61.camel@dagon.hellion.org.uk>
-User-Agent: Mutt/1.4.2.1i
-Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 29/38] arm: delay enabling data-cache until
-       paging enabled.
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-At 20:04 +0100 on 01 Jun (1338581061), Ian Campbell wrote:
-> On Fri, 2012-06-01 at 18:05 +0100, Tim Deegan wrote:
-> > At 15:39 +0000 on 01 Jun (1338565198), Ian Campbell wrote:
-> > > With enough warnings enabled the model seemed to be complaining that pages
-> > > cached before paging was enabled had been mapped with to inconsistent sets of
-> > > attributes. I'm not convinced that isn't a model issue, nor am I convinced
-> > > this has really fixed anything, but it seems sensible enough.
-> > 
-> > This might be what breaks secondary CPU bringup: pagetables built by CPU
-> > 0 may not have been flushed all the way to RAM when CPU 1 comes up, and
-> > CPU 1 isn't participating in cache coherence protocols when it
-> > starts to need them.
-> 
-> The issue here is the lack of the necessary flush, rather than this
-> change particularly, right?
-
-It turns out to be much more prosaic - the patch to delete the identity
-mapping from the boot pagetables was scuppering non-boot CPUs.
-
-So this is OK, but can I suggest this to tidy it up?
-
-diff --git a/xen/arch/arm/head.S b/xen/arch/arm/head.S
-index 71197af..0d8ce0f 100644
---- a/xen/arch/arm/head.S
-+++ b/xen/arch/arm/head.S
-@@ -211,17 +211,13 @@ pt_ready:
-       ldr   r1, =paging            /* Explicit vaddr, not RIP-relative */
-       mrc   CP32(r0, HSCTLR)
--      orr   r0, r0, #0x1           /* Add in the MMU enable bit */
-+      orr   r0, r0, #(SCTLR_M|SCTLR_C) /* Enable MMU and D-cache */
-       dsb                          /* Flush PTE writes and finish reads */
-       mcr   CP32(r0, HSCTLR)       /* now paging is enabled */
-       isb                          /* Now, flush the icache */
-       mov   pc, r1                 /* Get a proper vaddr into PC */
- paging:
--      mrc   CP32(r0, HSCTLR)       /* Now enable data cache */
--      orr   r0, r0, #(SCTLR_C)
--      mcr   CP32(r0, HSCTLR)
--
- #ifdef EARLY_UART_ADDRESS
-       /* Recover the UART address in the new address space. */
-       lsl   r11, #11
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<20120607191035.GA76463@ocelot.phlegethon.org> b/test/corpus/<20120607191035.GA76463@ocelot.phlegethon.org>
deleted file mode 100644 (file)
index 2841c41..0000000
+++ /dev/null
@@ -1,102 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Jun 07 20:14:35 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 07 Jun 2012 20:14:35 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SciAC-0005r0-TN
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 07 Jun 2012 20:14:35 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1Sci6T-0000xo-AM; Thu, 07 Jun 2012 19:10:41 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72) (envelope-from <tim@xen.org>)
-       id 1Sci6Q-0000xj-T2
-       for xen-devel@lists.xen.org; Thu, 07 Jun 2012 19:10:39 +0000
-Received: from [85.158.138.51:31261] by server-2.bemta-3.messagelabs.com id
-       1B/C5-16299-EACF0DF4; Thu, 07 Jun 2012 19:10:38 +0000
-X-Env-Sender: tim@xen.org
-X-Msg-Ref: server-14.tower-174.messagelabs.com!1339096237!24979852!1
-X-Originating-IP: [81.29.64.94]
-X-SpamReason: No, hits=0.0 required=7.0 tests=
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 3480 invoked from network); 7 Jun 2012 19:10:37 -0000
-Received: from ocelot.phlegethon.org (HELO mail.phlegethon.org) (81.29.64.94)
-       by server-14.tower-174.messagelabs.com with DHE-RSA-AES256-SHA
-       encrypted SMTP; 7 Jun 2012 19:10:37 -0000
-Received: from tjd by mail.phlegethon.org with local (Exim 4.67 (FreeBSD))
-       (envelope-from <tim@xen.org>)
-       id 1Sci6N-000KA7-EE; Thu, 07 Jun 2012 19:10:35 +0000
-Date: Thu, 7 Jun 2012 20:10:35 +0100
-From: Tim Deegan <tim@xen.org>
-To: Ian Campbell <Ian.Campbell@citrix.com>
-Message-ID: <20120607191035.GA76463@ocelot.phlegethon.org>
-References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
-       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-       <1338565207-2888-3-git-send-email-ian.campbell@citrix.com>
-       <20120607084917.GB70339@ocelot.phlegethon.org>
-       <1339072005.18523.18.camel@zakaz.uk.xensource.com>
-       <20120607124033.GS70339@ocelot.phlegethon.org>
-       <1339077263.18523.19.camel@zakaz.uk.xensource.com>
-       <1339086867.18523.36.camel@zakaz.uk.xensource.com>
-Mime-Version: 1.0
-Content-Disposition: inline
-In-Reply-To: <1339086867.18523.36.camel@zakaz.uk.xensource.com>
-User-Agent: Mutt/1.4.2.1i
-Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 03/38] arm: handy function to print a walk
-       of a domain's p2m.
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-At 17:34 +0100 on 07 Jun (1339090467), Ian Campbell wrote:
-> Well it works, this means that this patch and the previous patch then
-> collapse down into a single patch:
-> 
-> 8<-------------------------------------------------------
-> 
-> From 055fe5f4a3a77f292d5a2a6b9f56a4d14dad3519 Mon Sep 17 00:00:00 2001
-> From: Ian Campbell <ian.campbell@citrix.com>
-> Date: Fri, 2 Mar 2012 12:02:42 +0000
-> Subject: [PATCH] arm: handy function to print a walk of a page table
-> 
-> Include helpers for dumping hypervisor walks and guest p2m walks.
-> 
-> Useful for debug but not actually used in this patch.
-> 
-> Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
-
-Great!  For this and the follow-up typo fix:
-Acked-by: Tim Deegan <tim@xen.org>
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<20120614084732.GA82539@ocelot.phlegethon.org> b/test/corpus/<20120614084732.GA82539@ocelot.phlegethon.org>
deleted file mode 100644 (file)
index 55de627..0000000
+++ /dev/null
@@ -1,156 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Jun 14 09:53:05 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 14 Jun 2012 09:53:05 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1Sf5nb-0007et-90
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 14 Jun 2012 09:53:05 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1Sf5iK-0006CB-Kx; Thu, 14 Jun 2012 08:47:36 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72) (envelope-from <tim@xen.org>)
-       id 1Sf5iJ-0006C3-8S
-       for xen-devel@lists.xen.org; Thu, 14 Jun 2012 08:47:35 +0000
-Received: from [85.158.143.99:7078] by server-2.bemta-4.messagelabs.com id
-       FF/28-17938-625A9DF4; Thu, 14 Jun 2012 08:47:34 +0000
-X-Env-Sender: tim@xen.org
-X-Msg-Ref: server-12.tower-216.messagelabs.com!1339663653!22068412!1
-X-Originating-IP: [81.29.64.94]
-X-SpamReason: No, hits=0.0 required=7.0 tests=
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 5699 invoked from network); 14 Jun 2012 08:47:33 -0000
-Received: from ocelot.phlegethon.org (HELO mail.phlegethon.org) (81.29.64.94)
-       by server-12.tower-216.messagelabs.com with DHE-RSA-AES256-SHA
-       encrypted SMTP; 14 Jun 2012 08:47:33 -0000
-Received: from tjd by mail.phlegethon.org with local (Exim 4.67 (FreeBSD))
-       (envelope-from <tim@xen.org>)
-       id 1Sf5iG-000Ldh-Su; Thu, 14 Jun 2012 08:47:32 +0000
-Date: Thu, 14 Jun 2012 09:47:32 +0100
-From: Tim Deegan <tim@xen.org>
-To: Ian Campbell <Ian.Campbell@citrix.com>
-Message-ID: <20120614084732.GA82539@ocelot.phlegethon.org>
-References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
-       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-       <1338565207-2888-11-git-send-email-ian.campbell@citrix.com>
-       <20120607090334.GC70339@ocelot.phlegethon.org>
-       <1339600416.24104.228.camel@zakaz.uk.xensource.com>
-Mime-Version: 1.0
-Content-Disposition: inline
-In-Reply-To: <1339600416.24104.228.camel@zakaz.uk.xensource.com>
-User-Agent: Mutt/1.4.2.1i
-Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 11/38] arm: implement p2m lookup
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-At 16:13 +0100 on 13 Jun (1339604016), Ian Campbell wrote:
-> Yes, that looks nice, although you still need a bit of a quirk for the
-> third level table bit. Patch below.
-
-Much nicer.   One more round of nits below if you feel keen; in any case,
-Acked-by: Tim Deegan <tim@xen.org>
-
-> +paddr_t p2m_lookup(struct domain *d, paddr_t paddr)
-> +{
-> +    struct p2m_domain *p2m = &d->arch.p2m;
-> +    lpae_t pte, *first = NULL, *second = NULL, *third = NULL;
-> +    paddr_t maddr = INVALID_PADDR;
-> +
-> +    spin_lock(&p2m->lock);
-> +
-> +    first = __map_domain_page(p2m->first_level);
-> +
-> +    pte = first[first_table_offset(paddr)];
-> +    if ( !pte.p2m.valid || !pte.p2m.table )
-> +        goto done;
-> +
-> +    second = map_domain_page(first[first_table_offset(paddr)].p2m.base);
-
-second = map_domain_page(pte.p2m.base); ?
-
-> +    pte = second[second_table_offset(paddr)];
-> +    if ( !pte.p2m.valid || !pte.p2m.table )
-> +        goto done;
-> +
-> +    third = map_domain_page(second[second_table_offset(paddr)].p2m.base);
-
-likewise, third = map_domain_page(pte.p2m.base); ?
-
-> +    pte = third[third_table_offset(paddr)];
-> +
-> +    /* This bit must be one in the level 3 entry */
-> +    if ( !pte.p2m.table )
-> +        pte.bits = 0;
-> +
-> +done:
-> +    if ( pte.p2m.valid )
-> +        maddr = (pte.bits & PADDR_MASK & PAGE_MASK) | (paddr & ~PAGE_MASK);
-> +
-> +    if (third) unmap_domain_page(third);
-> +    if (second) unmap_domain_page(second);
-> +    if (first) unmap_domain_page(first);
-> +
-> +    spin_unlock(&p2m->lock);
-> +
-> +    return maddr;
-> +}
-> +
->  int guest_physmap_mark_populate_on_demand(struct domain *d,
->                                            unsigned long gfn,
->                                            unsigned int order)
-> diff --git a/xen/include/asm-arm/p2m.h b/xen/include/asm-arm/p2m.h
-> index 349923a..1afd5cb 100644
-> --- a/xen/include/asm-arm/p2m.h
-> +++ b/xen/include/asm-arm/p2m.h
-> @@ -32,6 +32,9 @@ int p2m_alloc_table(struct domain *d);
->  /* */
->  void p2m_load_VTTBR(struct domain *d);
->  
-> +/* */
-
- /* Look up the MFN corresponding to a domain's PFN. */
-
-> +paddr_t p2m_lookup(struct domain *d, paddr_t gpfn);
-> +
->  /* Setup p2m RAM mapping for domain d from start-end. */
->  int p2m_populate_ram(struct domain *d, paddr_t start, paddr_t end);
->  /* Map MMIO regions in the p2m: start_gaddr and end_gaddr is the range
-> -- 
-> 1.7.9.1
-> 
-> 
-> 
-> 
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<20120628180007.06bb3fd3@mantra.us.oracle.com> b/test/corpus/<20120628180007.06bb3fd3@mantra.us.oracle.com>
deleted file mode 100644 (file)
index db0705a..0000000
+++ /dev/null
@@ -1,106 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Jun 29 02:05:25 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 29 Jun 2012 02:05:25 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SkPeE-0003ki-Qx
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 29 Jun 2012 02:05:25 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SkPZO-0004ey-Cf; Fri, 29 Jun 2012 01:00:22 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <mukesh.rathor@oracle.com>) id 1SkPZM-0004RE-OM
-       for Xen-devel@lists.xensource.com; Fri, 29 Jun 2012 01:00:20 +0000
-Received: from [85.158.143.35:23351] by server-2.bemta-4.messagelabs.com id
-       1B/20-17938-42EFCEF4; Fri, 29 Jun 2012 01:00:20 +0000
-X-Env-Sender: mukesh.rathor@oracle.com
-X-Msg-Ref: server-5.tower-21.messagelabs.com!1340931617!6819693!1
-X-Originating-IP: [148.87.113.117]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogMTQ4Ljg3LjExMy4xMTcgPT4gNjEwOTU5\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 25247 invoked from network); 29 Jun 2012 01:00:18 -0000
-Received: from rcsinet15.oracle.com (HELO rcsinet15.oracle.com)
-       (148.87.113.117)
-       by server-5.tower-21.messagelabs.com with DHE-RSA-AES256-SHA encrypted
-       SMTP; 29 Jun 2012 01:00:18 -0000
-Received: from acsinet21.oracle.com (acsinet21.oracle.com [141.146.126.237])
-       by rcsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
-       ESMTP id q5T10AON003045
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
-       Fri, 29 Jun 2012 01:00:11 GMT
-Received: from acsmt358.oracle.com (acsmt358.oracle.com [141.146.40.158])
-       by acsinet21.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
-       q5T109Vt022586
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
-       Fri, 29 Jun 2012 01:00:10 GMT
-Received: from abhmt117.oracle.com (abhmt117.oracle.com [141.146.116.69])
-       by acsmt358.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
-       q5T109N7025942; Thu, 28 Jun 2012 20:00:09 -0500
-Received: from mantra.us.oracle.com (/130.35.68.95)
-       by default (Oracle Beehive Gateway v4.0)
-       with ESMTP ; Thu, 28 Jun 2012 18:00:08 -0700
-Date: Thu, 28 Jun 2012 18:00:07 -0700
-From: Mukesh Rathor <mukesh.rathor@oracle.com>
-To: "Xen-devel@lists.xensource.com" <Xen-devel@lists.xensource.com>,
-       "stefano.stabellini@eu.citrix.com" <stefano.stabellini@eu.citrix.com>, Ian
-       Campbell <Ian.Campbell@citrix.com>
-Message-ID: <20120628180007.06bb3fd3@mantra.us.oracle.com>
-Organization: Oracle Corporation
-X-Mailer: Claws Mail 3.7.6 (GTK+ 2.18.9; x86_64-redhat-linux-gnu)
-Mime-Version: 1.0
-X-Source-IP: acsinet21.oracle.com [141.146.126.237]
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: [Xen-devel] [HYBRID]: XEN_EMULATE_PREFIX in user process
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-Hi,
-
-Booting latest upstream pv linux as dom0, I noticed dm_mapper, user
-level process, is running with XEN_EMULATE_PREFIX cpuid. I am
-wondering if the prefix is statically put there, or how its put there?
-
-For hybrid, the hvm container traps cpuid, so we don't need to prefix
-cpuid. Less code if I don't have to worry about trapping the invalid
-op. There seems places where the cpuid is run without the xen prefix in
-user mode.
-
-BTW, for cpuid vmexit, if kernel mode I call pv_cpuid, if user mode, I
-just return cpuid values, as that's what would happen without the HVM
-container.
-
-thanks,
-Mukesh
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<20120628182602.6cc9b432@mantra.us.oracle.com> b/test/corpus/<20120628182602.6cc9b432@mantra.us.oracle.com>
deleted file mode 100644 (file)
index 2b45685..0000000
+++ /dev/null
@@ -1,147 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Jun 29 02:30:57 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 29 Jun 2012 02:30:57 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SkQ2x-0003qS-6r
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 29 Jun 2012 02:30:57 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SkPyT-0006On-14; Fri, 29 Jun 2012 01:26:17 +0000
-Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <mukesh.rathor@oracle.com>) id 1SkPyR-0006Oi-Bs
-       for Xen-devel@lists.xensource.com; Fri, 29 Jun 2012 01:26:15 +0000
-Received: from [193.109.254.147:44571] by server-8.bemta-14.messagelabs.com id
-       89/C5-30743-6340DEF4; Fri, 29 Jun 2012 01:26:14 +0000
-X-Env-Sender: mukesh.rathor@oracle.com
-X-Msg-Ref: server-14.tower-27.messagelabs.com!1340933171!2256441!1
-X-Originating-IP: [148.87.113.117]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogMTQ4Ljg3LjExMy4xMTcgPT4gNjEwOTU5\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 27923 invoked from network); 29 Jun 2012 01:26:12 -0000
-Received: from rcsinet15.oracle.com (HELO rcsinet15.oracle.com)
-       (148.87.113.117)
-       by server-14.tower-27.messagelabs.com with DHE-RSA-AES256-SHA encrypted
-       SMTP; 29 Jun 2012 01:26:12 -0000
-Received: from ucsinet21.oracle.com (ucsinet21.oracle.com [156.151.31.93])
-       by rcsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
-       ESMTP id q5T1Q6BF019511
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
-       Fri, 29 Jun 2012 01:26:07 GMT
-Received: from acsmt356.oracle.com (acsmt356.oracle.com [141.146.40.156])
-       by ucsinet21.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
-       q5T1Q6OL024616
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
-       Fri, 29 Jun 2012 01:26:06 GMT
-Received: from abhmt108.oracle.com (abhmt108.oracle.com [141.146.116.60])
-       by acsmt356.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
-       q5T1Q53p016189; Thu, 28 Jun 2012 20:26:05 -0500
-Received: from mantra.us.oracle.com (/130.35.68.95)
-       by default (Oracle Beehive Gateway v4.0)
-       with ESMTP ; Thu, 28 Jun 2012 18:26:05 -0700
-Date: Thu, 28 Jun 2012 18:26:02 -0700
-From: Mukesh Rathor <mukesh.rathor@oracle.com>
-To: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-Message-ID: <20120628182602.6cc9b432@mantra.us.oracle.com>
-In-Reply-To: <20120629010903.GC4902@phenom.dumpdata.com>
-References: <20120628180007.06bb3fd3@mantra.us.oracle.com>
-       <20120629010903.GC4902@phenom.dumpdata.com>
-Organization: Oracle Corporation
-X-Mailer: Claws Mail 3.7.6 (GTK+ 2.18.9; x86_64-redhat-linux-gnu)
-Mime-Version: 1.0
-X-Source-IP: ucsinet21.oracle.com [156.151.31.93]
-Cc: "Xen-devel@lists.xensource.com" <Xen-devel@lists.xensource.com>,
-       Ian Campbell <Ian.Campbell@citrix.com>,
-       "stefano.stabellini@eu.citrix.com" <stefano.stabellini@eu.citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [HYBRID]: XEN_EMULATE_PREFIX in user process
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Thu, 28 Jun 2012 21:09:03 -0400
-Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> wrote:
-
-> On Thu, Jun 28, 2012 at 06:00:07PM -0700, Mukesh Rathor wrote:
-> > Hi,
-> > 
-> > Booting latest upstream pv linux as dom0, I noticed dm_mapper, user
-> > level process, is running with XEN_EMULATE_PREFIX cpuid. I am
-> > wondering if the prefix is statically put there, or how its put
-> > there?
-> 
-> That is impressive. It should be only be in the kernel via the pvops
-> cpuid call which does this:
-> 
->  252         asm(XEN_EMULATE_PREFIX "cpuid"
->  253                 : "=a" (*ax),
->  254                   "=b" (*bx),
->  255                   "=c" (*cx),
->  256                   "=d" (*dx)
->  257                 : "0" (*ax), "2" (*cx));
->  258 
-> 
-> 
-> > 
-> > For hybrid, the hvm container traps cpuid, so we don't need to
-> > prefix cpuid. Less code if I don't have to worry about trapping the
-> > invalid op. There seems places where the cpuid is run without the
-> > xen prefix in user mode.
-> 
-> Right, you can make the .cpuid pvops call point to the native.
-
-Yup. In the kernel I do that already.
-
-> > 
-> > BTW, for cpuid vmexit, if kernel mode I call pv_cpuid, if user
-> > mode, I just return cpuid values, as that's what would happen
-> > without the HVM container.
-> 
-> You mean in PV mode in user-space you would get the unfiltered cpuid
-> value? Yes, that is true. Which is why I am surprised that dm_mapper
-> (are you sure it is not a kernel thread?) is doing that.
-
-User mode:
-
-RIP: 0x0000000000400692 CS: 0x0033
-
-[0]xkdb> dd 0x0000000000400680 32 0
-0000000000400680:  89f88953e5894855 db8500000000b9d3
-0000000000400690:  0f6e65780b0f0574 4e89045e890689a2
-
-thanks,
-Mukesh
-
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<20120629010903.GC4902@phenom.dumpdata.com> b/test/corpus/<20120629010903.GC4902@phenom.dumpdata.com>
deleted file mode 100644 (file)
index fea6895..0000000
+++ /dev/null
@@ -1,138 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Jun 29 02:21:41 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 29 Jun 2012 02:21:41 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SkPty-0003p8-Nj
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 29 Jun 2012 02:21:41 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SkPpY-0006FU-Vb; Fri, 29 Jun 2012 01:17:04 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <konrad.wilk@oracle.com>) id 1SkPpX-0006FP-LC
-       for Xen-devel@lists.xensource.com; Fri, 29 Jun 2012 01:17:03 +0000
-Received: from [85.158.143.35:12891] by server-3.bemta-4.messagelabs.com id
-       3E/17-05808-E020DEF4; Fri, 29 Jun 2012 01:17:02 +0000
-X-Env-Sender: konrad.wilk@oracle.com
-X-Msg-Ref: server-5.tower-21.messagelabs.com!1340932621!6821418!1
-X-Originating-IP: [148.87.113.117]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogMTQ4Ljg3LjExMy4xMTcgPT4gNjEwOTU5\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 2673 invoked from network); 29 Jun 2012 01:17:02 -0000
-Received: from rcsinet15.oracle.com (HELO rcsinet15.oracle.com)
-       (148.87.113.117)
-       by server-5.tower-21.messagelabs.com with DHE-RSA-AES256-SHA encrypted
-       SMTP; 29 Jun 2012 01:17:02 -0000
-Received: from ucsinet22.oracle.com (ucsinet22.oracle.com [156.151.31.94])
-       by rcsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
-       ESMTP id q5T1GtT8014380
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
-       Fri, 29 Jun 2012 01:16:56 GMT
-Received: from acsmt358.oracle.com (acsmt358.oracle.com [141.146.40.158])
-       by ucsinet22.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
-       q5T1GsHb025044
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
-       Fri, 29 Jun 2012 01:16:55 GMT
-Received: from abhmt118.oracle.com (abhmt118.oracle.com [141.146.116.70])
-       by acsmt358.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
-       q5T1GsTg001763; Thu, 28 Jun 2012 20:16:54 -0500
-Received: from phenom.dumpdata.com (/209.6.85.33)
-       by default (Oracle Beehive Gateway v4.0)
-       with ESMTP ; Thu, 28 Jun 2012 18:16:54 -0700
-Received: by phenom.dumpdata.com (Postfix, from userid 1000)
-       id E65F74029A; Thu, 28 Jun 2012 21:09:03 -0400 (EDT)
-Date: Thu, 28 Jun 2012 21:09:03 -0400
-From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-To: Mukesh Rathor <mukesh.rathor@oracle.com>
-Message-ID: <20120629010903.GC4902@phenom.dumpdata.com>
-References: <20120628180007.06bb3fd3@mantra.us.oracle.com>
-MIME-Version: 1.0
-Content-Disposition: inline
-In-Reply-To: <20120628180007.06bb3fd3@mantra.us.oracle.com>
-User-Agent: Mutt/1.5.21 (2010-09-15)
-X-Source-IP: ucsinet22.oracle.com [156.151.31.94]
-Cc: "Xen-devel@lists.xensource.com" <Xen-devel@lists.xensource.com>,
-       Ian Campbell <Ian.Campbell@citrix.com>,
-       "stefano.stabellini@eu.citrix.com" <stefano.stabellini@eu.citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [HYBRID]: XEN_EMULATE_PREFIX in user process
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Thu, Jun 28, 2012 at 06:00:07PM -0700, Mukesh Rathor wrote:
-> Hi,
-> 
-> Booting latest upstream pv linux as dom0, I noticed dm_mapper, user
-> level process, is running with XEN_EMULATE_PREFIX cpuid. I am
-> wondering if the prefix is statically put there, or how its put there?
-
-That is impressive. It should be only be in the kernel via the pvops
-cpuid call which does this:
-
- 252         asm(XEN_EMULATE_PREFIX "cpuid"
- 253                 : "=a" (*ax),
- 254                   "=b" (*bx),
- 255                   "=c" (*cx),
- 256                   "=d" (*dx)
- 257                 : "0" (*ax), "2" (*cx));
- 258 
-
-
-> 
-> For hybrid, the hvm container traps cpuid, so we don't need to prefix
-> cpuid. Less code if I don't have to worry about trapping the invalid
-> op. There seems places where the cpuid is run without the xen prefix in
-> user mode.
-
-Right, you can make the .cpuid pvops call point to the native.
-
-> 
-> BTW, for cpuid vmexit, if kernel mode I call pv_cpuid, if user mode, I
-> just return cpuid values, as that's what would happen without the HVM
-> container.
-
-You mean in PV mode in user-space you would get the unfiltered cpuid value?
-Yes, that is true. Which is why I am surprised that dm_mapper (are you sure
-it is not a kernel thread?) is doing that.
-
-> 
-> thanks,
-> Mukesh
-> 
-> _______________________________________________
-> Xen-devel mailing list
-> Xen-devel@lists.xen.org
-> http://lists.xen.org/xen-devel
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<20120629111546.50e36f52@mantra.us.oracle.com> b/test/corpus/<20120629111546.50e36f52@mantra.us.oracle.com>
deleted file mode 100644 (file)
index 179129a..0000000
+++ /dev/null
@@ -1,126 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Jun 29 19:21:26 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 29 Jun 2012 19:21:26 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1Skfoq-00036h-Bt
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 29 Jun 2012 19:21:26 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1Skfjd-0003dY-SZ; Fri, 29 Jun 2012 18:16:01 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <mukesh.rathor@oracle.com>) id 1Skfjb-0003dT-TD
-       for Xen-devel@lists.xensource.com; Fri, 29 Jun 2012 18:16:00 +0000
-Received: from [85.158.138.51:16739] by server-6.bemta-3.messagelabs.com id
-       E3/08-11602-FD0FDEF4; Fri, 29 Jun 2012 18:15:59 +0000
-X-Env-Sender: mukesh.rathor@oracle.com
-X-Msg-Ref: server-12.tower-174.messagelabs.com!1340993757!22117406!1
-X-Originating-IP: [148.87.113.117]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogMTQ4Ljg3LjExMy4xMTcgPT4gNjEyMjI1\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 5078 invoked from network); 29 Jun 2012 18:15:58 -0000
-Received: from rcsinet15.oracle.com (HELO rcsinet15.oracle.com)
-       (148.87.113.117)
-       by server-12.tower-174.messagelabs.com with DHE-RSA-AES256-SHA
-       encrypted SMTP; 29 Jun 2012 18:15:58 -0000
-Received: from acsinet22.oracle.com (acsinet22.oracle.com [141.146.126.238])
-       by rcsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
-       ESMTP id q5TIFoJT021422
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
-       Fri, 29 Jun 2012 18:15:51 GMT
-Received: from acsmt356.oracle.com (acsmt356.oracle.com [141.146.40.156])
-       by acsinet22.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
-       q5TIFoNG029015
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
-       Fri, 29 Jun 2012 18:15:50 GMT
-Received: from abhmt110.oracle.com (abhmt110.oracle.com [141.146.116.62])
-       by acsmt356.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
-       q5TIFnga016102; Fri, 29 Jun 2012 13:15:49 -0500
-Received: from mantra.us.oracle.com (/130.35.68.95)
-       by default (Oracle Beehive Gateway v4.0)
-       with ESMTP ; Fri, 29 Jun 2012 11:15:49 -0700
-Date: Fri, 29 Jun 2012 11:15:46 -0700
-From: Mukesh Rathor <mukesh.rathor@oracle.com>
-To: Ian Campbell <Ian.Campbell@citrix.com>
-Message-ID: <20120629111546.50e36f52@mantra.us.oracle.com>
-In-Reply-To: <1340957369.10942.74.camel@zakaz.uk.xensource.com>
-References: <20120628180007.06bb3fd3@mantra.us.oracle.com>
-       <20120629010903.GC4902@phenom.dumpdata.com>
-       <20120628182602.6cc9b432@mantra.us.oracle.com>
-       <1340957369.10942.74.camel@zakaz.uk.xensource.com>
-Organization: Oracle Corporation
-X-Mailer: Claws Mail 3.7.6 (GTK+ 2.18.9; x86_64-redhat-linux-gnu)
-Mime-Version: 1.0
-X-Source-IP: acsinet22.oracle.com [141.146.126.238]
-Cc: "Xen-devel@lists.xensource.com" <Xen-devel@lists.xensource.com>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>,
-       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [HYBRID]: XEN_EMULATE_PREFIX in user process
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Fri, 29 Jun 2012 09:09:29 +0100
-Ian Campbell <Ian.Campbell@citrix.com> wrote:
-
-> On Fri, 2012-06-29 at 02:26 +0100, Mukesh Rathor wrote:
-> > On Thu, 28 Jun 2012 21:09:03 -0400
-> 
-> CS 0x033 could still be kernel mode on regular PV 64 bit, but I
-> suppose not on hybrid?
-
-correct, not on hybrid, unless some bug! But then the RIP also
-appears user mode.
-
-
-> It's unlikely but not impossible for a userspace developer to have
-> done some "Xen magic" and used the prefix in userspace.
-> 
-> What version of dm_mapper do you have? I checked the version in Debian
-> Sid and it doesn't do this (at least not directly).
-> 
-> Are you able to run the dm_mapper process under gdb and inspect it to
-> find the prefix?
-
-Well, let me take that back. dm_mapper is the last printk, but it could
-be anything after that or that. 
-
-Unfortunately, it's dom0 and during boot, so can't run gdb on it. I am
-hacking the kernel now to print every user process name in schedule.
-
-thanks,
-Mukesh
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<20120629120738.425781e5@mantra.us.oracle.com> b/test/corpus/<20120629120738.425781e5@mantra.us.oracle.com>
deleted file mode 100644 (file)
index 32bebca..0000000
+++ /dev/null
@@ -1,122 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Jun 29 20:12:56 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 29 Jun 2012 20:12:56 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1Skgcf-0003Fh-FV
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 29 Jun 2012 20:12:55 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SkgXp-0004VY-GY; Fri, 29 Jun 2012 19:07:53 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <mukesh.rathor@oracle.com>) id 1SkgXn-0004VT-Nk
-       for Xen-devel@lists.xensource.com; Fri, 29 Jun 2012 19:07:51 +0000
-Received: from [85.158.143.35:52260] by server-2.bemta-4.messagelabs.com id
-       4C/92-17938-60DFDEF4; Fri, 29 Jun 2012 19:07:50 +0000
-X-Env-Sender: mukesh.rathor@oracle.com
-X-Msg-Ref: server-14.tower-21.messagelabs.com!1340996868!16402951!1
-X-Originating-IP: [148.87.113.117]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogMTQ4Ljg3LjExMy4xMTcgPT4gNjEyMjI1\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 19345 invoked from network); 29 Jun 2012 19:07:50 -0000
-Received: from rcsinet15.oracle.com (HELO rcsinet15.oracle.com)
-       (148.87.113.117)
-       by server-14.tower-21.messagelabs.com with DHE-RSA-AES256-SHA encrypted
-       SMTP; 29 Jun 2012 19:07:50 -0000
-Received: from ucsinet22.oracle.com (ucsinet22.oracle.com [156.151.31.94])
-       by rcsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
-       ESMTP id q5TJ7hOh001954
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
-       Fri, 29 Jun 2012 19:07:44 GMT
-Received: from acsmt357.oracle.com (acsmt357.oracle.com [141.146.40.157])
-       by ucsinet22.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
-       q5TJ7f7R008475
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
-       Fri, 29 Jun 2012 19:07:42 GMT
-Received: from abhmt101.oracle.com (abhmt101.oracle.com [141.146.116.53])
-       by acsmt357.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
-       q5TJ7f4n010736; Fri, 29 Jun 2012 14:07:41 -0500
-Received: from mantra.us.oracle.com (/130.35.68.95)
-       by default (Oracle Beehive Gateway v4.0)
-       with ESMTP ; Fri, 29 Jun 2012 12:07:41 -0700
-Date: Fri, 29 Jun 2012 12:07:38 -0700
-From: Mukesh Rathor <mukesh.rathor@oracle.com>
-Message-ID: <20120629120738.425781e5@mantra.us.oracle.com>
-In-Reply-To: <20120629111546.50e36f52@mantra.us.oracle.com>
-References: <20120628180007.06bb3fd3@mantra.us.oracle.com>
-       <20120629010903.GC4902@phenom.dumpdata.com>
-       <20120628182602.6cc9b432@mantra.us.oracle.com>
-       <1340957369.10942.74.camel@zakaz.uk.xensource.com>
-       <20120629111546.50e36f52@mantra.us.oracle.com>
-Organization: Oracle Corporation
-X-Mailer: Claws Mail 3.7.6 (GTK+ 2.18.9; x86_64-redhat-linux-gnu)
-Mime-Version: 1.0
-X-Source-IP: ucsinet22.oracle.com [156.151.31.94]
-Cc: "Xen-devel@lists.xensource.com" <Xen-devel@lists.xensource.com>,
-       Ian Campbell <Ian.Campbell@citrix.com>,
-       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-3.2 required=5.0 tests=BAYES_00,MISSING_HEADERS,
-       RCVD_IN_DNSWL_MED,T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham
-       version=3.3.1
-Subject: Re: [Xen-devel] [HYBRID]: XEN_EMULATE_PREFIX in user process
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Fri, 29 Jun 2012 11:15:46 -0700
-Mukesh Rathor <mukesh.rathor@oracle.com> wrote:
-> > It's unlikely but not impossible for a userspace developer to have
-> > done some "Xen magic" and used the prefix in userspace.
-> > 
-> > What version of dm_mapper do you have? I checked the version in
-> > Debian Sid and it doesn't do this (at least not directly).
-> > 
-> > Are you able to run the dm_mapper process under gdb and inspect it
-> > to find the prefix?
-> 
-> Well, let me take that back. dm_mapper is the last printk, but it
-> could be anything after that or that. 
-> 
-> Unfortunately, it's dom0 and during boot, so can't run gdb on it. I am
-> hacking the kernel now to print every user process name in schedule.
-
-Ah, it's "xen-detect" coming in right after dm_mapper. I see the
-xen prefix in it. Hmm... let me see if I can add some run time check
-for hybrid dom0, then won't have to worry about invalid_op trap. Less
-code that way. That's the end goal anyways...
-
-Thanks,
-Mukesh
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<20120629141812.6ca72375@mantra.us.oracle.com> b/test/corpus/<20120629141812.6ca72375@mantra.us.oracle.com>
deleted file mode 100644 (file)
index f6f7972..0000000
+++ /dev/null
@@ -1,110 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Jun 29 22:23:15 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 29 Jun 2012 22:23:15 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1Skien-0003bB-4h
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 29 Jun 2012 22:23:15 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SkiaB-0007pS-Ki; Fri, 29 Jun 2012 21:18:27 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <mukesh.rathor@oracle.com>) id 1Skia9-0007pN-W9
-       for Xen-devel@lists.xensource.com; Fri, 29 Jun 2012 21:18:26 +0000
-Received: from [85.158.139.83:45301] by server-7.bemta-5.messagelabs.com id
-       00/4F-28276-1AB1EEF4; Fri, 29 Jun 2012 21:18:25 +0000
-X-Env-Sender: mukesh.rathor@oracle.com
-X-Msg-Ref: server-11.tower-182.messagelabs.com!1341004702!23027325!1
-X-Originating-IP: [141.146.126.227]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogMTQxLjE0Ni4xMjYuMjI3ID0+IDYxNTk4MA==\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 9079 invoked from network); 29 Jun 2012 21:18:24 -0000
-Received: from acsinet15.oracle.com (HELO acsinet15.oracle.com)
-       (141.146.126.227)
-       by server-11.tower-182.messagelabs.com with DHE-RSA-AES256-SHA
-       encrypted SMTP; 29 Jun 2012 21:18:24 -0000
-Received: from ucsinet21.oracle.com (ucsinet21.oracle.com [156.151.31.93])
-       by acsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
-       ESMTP id q5TLIGb7025855
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
-       Fri, 29 Jun 2012 21:18:17 GMT
-Received: from acsmt357.oracle.com (acsmt357.oracle.com [141.146.40.157])
-       by ucsinet21.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
-       q5TLIFjC001421
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
-       Fri, 29 Jun 2012 21:18:16 GMT
-Received: from abhmt104.oracle.com (abhmt104.oracle.com [141.146.116.56])
-       by acsmt357.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
-       q5TLIFnM027939; Fri, 29 Jun 2012 16:18:15 -0500
-Received: from mantra.us.oracle.com (/130.35.68.95)
-       by default (Oracle Beehive Gateway v4.0)
-       with ESMTP ; Fri, 29 Jun 2012 14:18:14 -0700
-Date: Fri, 29 Jun 2012 14:18:12 -0700
-From: Mukesh Rathor <mukesh.rathor@oracle.com>
-To: "Jan Beulich" <JBeulich@suse.com>
-Message-ID: <20120629141812.6ca72375@mantra.us.oracle.com>
-In-Reply-To: <4FED7BD7020000780008CBFB@nat28.tlf.novell.com>
-References: <20120628180007.06bb3fd3@mantra.us.oracle.com>
-       <4FED7BD7020000780008CBFB@nat28.tlf.novell.com>
-Organization: Oracle Corporation
-X-Mailer: Claws Mail 3.7.6 (GTK+ 2.18.9; x86_64-redhat-linux-gnu)
-Mime-Version: 1.0
-X-Source-IP: ucsinet21.oracle.com [156.151.31.93]
-Cc: "Xen-devel@lists.xensource.com" <Xen-devel@lists.xensource.com>,
-       IanCampbell <Ian.Campbell@citrix.com>,
-       "stefano.stabellini@eu.citrix.com" <stefano.stabellini@eu.citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [HYBRID]: XEN_EMULATE_PREFIX in user process
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Fri, 29 Jun 2012 08:56:39 +0100
-"Jan Beulich" <JBeulich@suse.com> wrote:
-
-> >>> On 29.06.12 at 03:00, Mukesh Rathor <mukesh.rathor@oracle.com>
-> >>> wrote:
-> > BTW, for cpuid vmexit, if kernel mode I call pv_cpuid, if user
-> > mode, I just return cpuid values, as that's what would happen
-> > without the HVM container.
-> 
-> Which means you're not leveraging one of the things you could
-> gain from hybrid (after all, returning the native value to user
-> mode is one of the weaknesses of PV).
-> 
-> Jan
-> 
-
-Easy, fixed. So, now, for both kernel/user I return pv_cpuid.
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<20120629155000.5152d544@mantra.us.oracle.com> b/test/corpus/<20120629155000.5152d544@mantra.us.oracle.com>
deleted file mode 100644 (file)
index e0bced0..0000000
+++ /dev/null
@@ -1,117 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Jun 29 23:59:40 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 29 Jun 2012 23:59:40 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SkkA5-0003nm-RL
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 29 Jun 2012 23:59:40 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1Skk5F-0001I9-Lc; Fri, 29 Jun 2012 22:54:37 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <mukesh.rathor@oracle.com>) id 1Skk5E-0001I4-75
-       for xen-devel@lists.xensource.com; Fri, 29 Jun 2012 22:54:36 +0000
-Received: from [85.158.143.99:58622] by server-1.bemta-4.messagelabs.com id
-       36/D5-24392-B223EEF4; Fri, 29 Jun 2012 22:54:35 +0000
-X-Env-Sender: mukesh.rathor@oracle.com
-X-Msg-Ref: server-7.tower-216.messagelabs.com!1341010473!26497113!1
-X-Originating-IP: [141.146.126.227]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogMTQxLjE0Ni4xMjYuMjI3ID0+IDYxNDc1Mw==\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 10853 invoked from network); 29 Jun 2012 22:54:34 -0000
-Received: from acsinet15.oracle.com (HELO acsinet15.oracle.com)
-       (141.146.126.227)
-       by server-7.tower-216.messagelabs.com with DHE-RSA-AES256-SHA encrypted
-       SMTP; 29 Jun 2012 22:54:34 -0000
-Received: from ucsinet21.oracle.com (ucsinet21.oracle.com [156.151.31.93])
-       by acsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
-       ESMTP id q5TMsSGf025783
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
-       Fri, 29 Jun 2012 22:54:29 GMT
-Received: from acsmt358.oracle.com (acsmt358.oracle.com [141.146.40.158])
-       by ucsinet21.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
-       q5TMsRMt026120
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
-       Fri, 29 Jun 2012 22:54:28 GMT
-Received: from abhmt109.oracle.com (abhmt109.oracle.com [141.146.116.61])
-       by acsmt358.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
-       q5TMsR0o010542; Fri, 29 Jun 2012 17:54:27 -0500
-Received: from mantra.us.oracle.com (/130.35.68.95) by default (Oracle Beehive
-       Gateway v4.0) with ESMTP ; Fri, 29 Jun 2012 15:50:12 -0700
-ORGANIZATION: Oracle Corporation
-MIME-Version: 1.0
-Message-ID: <20120629155000.5152d544@mantra.us.oracle.com>
-Date: Fri, 29 Jun 2012 15:50:00 -0700 (PDT)
-From: Mukesh Rathor <mukesh.rathor@oracle.com>
-To: Ian Campbell <Ian.Campbell@citrix.com>
-References: <20120628180007.06bb3fd3@mantra.us.oracle.com>
-       <20120629010903.GC4902@phenom.dumpdata.com>
-       <20120628182602.6cc9b432@mantra.us.oracle.com>
-       <1340957369.10942.74.camel@zakaz.uk.xensource.com>
-       <20120629111546.50e36f52@mantra.us.oracle.com>
-       <20120629120738.425781e5@mantra.us.oracle.com>
-       <1341007454.5953.18.camel@dagon.hellion.org.uk>
-In-Reply-To: <1341007454.5953.18.camel@dagon.hellion.org.uk>
-X-Mailer: Claws Mail 3.7.6 (GTK+ 2.18.9; x86_64-redhat-linux-gnu)
-X-Source-IP: ucsinet21.oracle.com [156.151.31.93]
-Cc: "Xen-devel@lists.xensource.com" <Xen-devel@lists.xensource.com>,
-       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [HYBRID]: XEN_EMULATE_PREFIX in user process
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Fri, 29 Jun 2012 15:04:14 -0700 (PDT)
-Ian Campbell <Ian.Campbell@citrix.com> wrote:
-
-> On Fri, 2012-06-29 at 20:07 +0100, Mukesh Rathor wrote:
-> 
-> I don't think reducing code should come at the expense of adding
-> special cases for hybrid to userspace programs...
-> 
-> I think you'll have to handle the invalid op, it can't be that much
-> code, can it?
-
-Not a whole lot of code, but other than xen-detect, just curious,
-what is the possibility of any user level using XEN_EMULATE_PREFIX cpuid?
-The kernel won't, since it's only the hybrid running in hvm container,
-and it's modified to use native cpuid. The user level can just run
-cpuid and will be trapped in vmexit handler to call pv_cpuid().
-
-thanks,
-Mukesh
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<20120702111818.73babf9b@mantra.us.oracle.com> b/test/corpus/<20120702111818.73babf9b@mantra.us.oracle.com>
deleted file mode 100644 (file)
index 46c859e..0000000
+++ /dev/null
@@ -1,130 +0,0 @@
-From xen-devel-bounces@lists.xen.org Mon Jul 02 19:24:18 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Mon, 02 Jul 2012 19:24:18 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SllIF-000574-Km
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Mon, 02 Jul 2012 19:24:18 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SllCo-0000cd-7O; Mon, 02 Jul 2012 18:18:38 +0000
-Received: from mail27.messagelabs.com ([193.109.254.147])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <mukesh.rathor@oracle.com>) id 1SllCl-0000cY-Rq
-       for Xen-devel@lists.xensource.com; Mon, 02 Jul 2012 18:18:36 +0000
-X-Env-Sender: mukesh.rathor@oracle.com
-X-Msg-Ref: server-8.tower-27.messagelabs.com!1341253108!9707972!1
-X-Originating-IP: [141.146.126.227]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogMTQxLjE0Ni4xMjYuMjI3ID0+IDYxNzgwMg==\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 22774 invoked from network); 2 Jul 2012 18:18:29 -0000
-Received: from acsinet15.oracle.com (HELO acsinet15.oracle.com)
-       (141.146.126.227)
-       by server-8.tower-27.messagelabs.com with DHE-RSA-AES256-SHA encrypted
-       SMTP; 2 Jul 2012 18:18:29 -0000
-Received: from ucsinet22.oracle.com (ucsinet22.oracle.com [156.151.31.94])
-       by acsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
-       ESMTP id q62IILjn019693
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
-       Mon, 2 Jul 2012 18:18:22 GMT
-Received: from acsmt357.oracle.com (acsmt357.oracle.com [141.146.40.157])
-       by ucsinet22.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
-       q62IIKl3017782
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
-       Mon, 2 Jul 2012 18:18:20 GMT
-Received: from abhmt111.oracle.com (abhmt111.oracle.com [141.146.116.63])
-       by acsmt357.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
-       q62IIJUN022905; Mon, 2 Jul 2012 13:18:19 -0500
-Received: from mantra.us.oracle.com (/130.35.68.95)
-       by default (Oracle Beehive Gateway v4.0)
-       with ESMTP ; Mon, 02 Jul 2012 11:18:19 -0700
-Date: Mon, 2 Jul 2012 11:18:18 -0700
-From: Mukesh Rathor <mukesh.rathor@oracle.com>
-To: "Jan Beulich" <JBeulich@suse.com>
-Message-ID: <20120702111818.73babf9b@mantra.us.oracle.com>
-In-Reply-To: <4FF177A3020000780008D091@nat28.tlf.novell.com>
-References: <20120628180007.06bb3fd3@mantra.us.oracle.com>
-       <20120629010903.GC4902@phenom.dumpdata.com>
-       <20120628182602.6cc9b432@mantra.us.oracle.com>
-       <1340957369.10942.74.camel@zakaz.uk.xensource.com>
-       <20120629111546.50e36f52@mantra.us.oracle.com>
-       <20120629120738.425781e5@mantra.us.oracle.com>
-       <1341007454.5953.18.camel@dagon.hellion.org.uk>
-       <20120629155000.5152d544@mantra.us.oracle.com>
-       <4FF177A3020000780008D091@nat28.tlf.novell.com>
-Organization: Oracle Corporation
-X-Mailer: Claws Mail 3.7.6 (GTK+ 2.18.9; x86_64-redhat-linux-gnu)
-Mime-Version: 1.0
-X-Source-IP: ucsinet22.oracle.com [156.151.31.94]
-Cc: "Xen-devel@lists.xensource.com" <Xen-devel@lists.xensource.com>,
-       Ian Campbell <Ian.Campbell@citrix.com>,
-       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [HYBRID]: XEN_EMULATE_PREFIX in user process
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Mon, 02 Jul 2012 09:27:47 +0100
-"Jan Beulich" <JBeulich@suse.com> wrote:
-
-> >>> On 30.06.12 at 00:50, Mukesh Rathor <mukesh.rathor@oracle.com>
-> >>> wrote:
-> > On Fri, 29 Jun 2012 15:04:14 -0700 (PDT)
-> > Ian Campbell <Ian.Campbell@citrix.com> wrote:
-> > 
-> >> On Fri, 2012-06-29 at 20:07 +0100, Mukesh Rathor wrote:
-> >> 
-> >> I don't think reducing code should come at the expense of adding
-> >> special cases for hybrid to userspace programs...
-> >> 
-> >> I think you'll have to handle the invalid op, it can't be that much
-> >> code, can it?
-> > 
-> > Not a whole lot of code, but other than xen-detect, just curious,
-> > what is the possibility of any user level using XEN_EMULATE_PREFIX
-> > cpuid?
-> 
-> Obviously any code cloned from xen-detect could, i.e. anything
-> that tries to be Xen-PV-aware.
-> 
-> Jan
-> 
-
-Ok, so it is official to do that from user level. I will add support
-for it.
-
-thanks,
-Mukesh
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<20120725184429.GC16360@phenom.dumpdata.com> b/test/corpus/<20120725184429.GC16360@phenom.dumpdata.com>
deleted file mode 100644 (file)
index 2f7bee8..0000000
+++ /dev/null
@@ -1,137 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Jul 25 19:58:13 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 25 Jul 2012 19:58:13 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1Su6mh-00024d-CG
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 25 Jul 2012 19:58:13 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1Su6i3-0005Ei-UL; Wed, 25 Jul 2012 18:53:23 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <konrad.wilk@oracle.com>) id 1Su6i1-0005EX-V6
-       for xen-devel@lists.xen.org; Wed, 25 Jul 2012 18:53:22 +0000
-Received: from [85.158.143.35:56395] by server-3.bemta-4.messagelabs.com id
-       55/30-01511-1A040105; Wed, 25 Jul 2012 18:53:21 +0000
-X-Env-Sender: konrad.wilk@oracle.com
-X-Msg-Ref: server-11.tower-21.messagelabs.com!1343242399!11679190!1
-X-Originating-IP: [141.146.126.227]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogMTQxLjE0Ni4xMjYuMjI3ID0+IDY1ODg5MQ==\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.2; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 11650 invoked from network); 25 Jul 2012 18:53:20 -0000
-Received: from acsinet15.oracle.com (HELO acsinet15.oracle.com)
-       (141.146.126.227)
-       by server-11.tower-21.messagelabs.com with DHE-RSA-AES256-SHA encrypted
-       SMTP; 25 Jul 2012 18:53:20 -0000
-Received: from ucsinet22.oracle.com (ucsinet22.oracle.com [156.151.31.94])
-       by acsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
-       ESMTP id q6PIrH6I009618
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
-       Wed, 25 Jul 2012 18:53:18 GMT
-Received: from acsmt358.oracle.com (acsmt358.oracle.com [141.146.40.158])
-       by ucsinet22.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
-       q6PIrGwL020499
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
-       Wed, 25 Jul 2012 18:53:17 GMT
-Received: from abhmt117.oracle.com (abhmt117.oracle.com [141.146.116.69])
-       by acsmt358.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
-       q6PIrGWr011766; Wed, 25 Jul 2012 13:53:16 -0500
-Received: from phenom.dumpdata.com (/209.6.85.33)
-       by default (Oracle Beehive Gateway v4.0)
-       with ESMTP ; Wed, 25 Jul 2012 11:53:16 -0700
-Received: by phenom.dumpdata.com (Postfix, from userid 1000)
-       id 9DB8B402B5; Wed, 25 Jul 2012 14:44:29 -0400 (EDT)
-Date: Wed, 25 Jul 2012 14:44:29 -0400
-From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-To: Larry White <lmw@satx.rr.com>
-Message-ID: <20120725184429.GC16360@phenom.dumpdata.com>
-References: <A8575D3216834DFCAA86F5B2B3546613@LarryE6400>
-       <6035A0D088A63A46850C3988ED045A4B299B8A95@BITCOM1.int.sbss.com.au>
-       <1E8F546AD8E64BF1B2D68D24F3BD4050@LarryE6400>
-       <6035A0D088A63A46850C3988ED045A4B299B8F9D@BITCOM1.int.sbss.com.au>
-       <C96058547A5A42DDB1A89B2F8880BCE2@LarryE6400>
-MIME-Version: 1.0
-Content-Disposition: inline
-In-Reply-To: <C96058547A5A42DDB1A89B2F8880BCE2@LarryE6400>
-User-Agent: Mutt/1.5.21 (2010-09-15)
-X-Source-IP: ucsinet22.oracle.com [156.151.31.94]
-Cc: xen-devel@lists.xen.org
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] XenStore as a data transfer path?
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Sat, Jul 21, 2012 at 12:59:31PM -0500, Larry White wrote:
-> Hi Konrad,
-> 
-> >On Tue, Jul 17, 2012 at 11:22:28PM -0500, LarryWhite wrote:
-> >I am new to Xen and want to provide simple communication between my DomU
-> >and
-> >Dom0 environments.  I just need to be able to pass a few bytes of
-> >information back and forth between DomU and Dom0 while using some form of
-> >event management to know when an update occurs so I can act on it.  At
-> >first, it appeared that using XenBus and XenStore might be the right
-> >solution for this.  However, after looking over the documentation, it seems
-> >that XenBus and XenStore should only be used in a PVM Xen configuration,
-> >not
-> >a HVM model like mine.  Is this true?  
-> 
-> >>It can be done in HVM.
-> 
-> >What would be the best way to accomplish this?  Is there any sample code
-> >which demonstrates this for a HVM Xen environment?
-> 
-> >>libvchan is your best bet.
-> 
-> Have been looking at libvchan as you suggested.  An additional bit of
-> information that I left out on my original post was that I would like to do
-> this in a "one to many" environment.  In other words, I want to support data
-> transfer from dom0 to a number of different domU's.  Would an approach such
-> as libvchan allow for this or would I need a separate process in dom0 for
-> each of the different domU channels?  I was really hoping to have a single
-> process running in dom0 to manage this. 
-
-You would need seperate rings for each domU. Whether you want to implement this
-in a single process or multi-thread the process - or just use one process and
-block on the event (signal) to receive an interrupt when data appears - that is up
-to you.
-
-> 
-> Thanks,
-> Larry
-> 
-> 
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<20120726163020.GB9222@phenom.dumpdata.com> b/test/corpus/<20120726163020.GB9222@phenom.dumpdata.com>
deleted file mode 100644 (file)
index 2c6eb15..0000000
+++ /dev/null
@@ -1,330 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Jul 26 17:43:49 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 26 Jul 2012 17:43:49 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SuRAA-0001u8-4D
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 26 Jul 2012 17:43:49 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SuR6I-0004C6-0r; Thu, 26 Jul 2012 16:39:46 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <konrad.wilk@oracle.com>) id 1SuR6G-0004C0-64
-       for xen-devel@lists.xensource.com; Thu, 26 Jul 2012 16:39:44 +0000
-Received: from [85.158.139.83:36850] by server-9.bemta-5.messagelabs.com id
-       2B/51-01069-FC271105; Thu, 26 Jul 2012 16:39:43 +0000
-X-Env-Sender: konrad.wilk@oracle.com
-X-Msg-Ref: server-11.tower-182.messagelabs.com!1343320781!21599871!1
-X-Originating-IP: [148.87.113.117]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogMTQ4Ljg3LjExMy4xMTcgPT4gNjU4OTY3\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.2; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 31228 invoked from network); 26 Jul 2012 16:39:42 -0000
-Received: from rcsinet15.oracle.com (HELO rcsinet15.oracle.com)
-       (148.87.113.117)
-       by server-11.tower-182.messagelabs.com with DHE-RSA-AES256-SHA
-       encrypted SMTP; 26 Jul 2012 16:39:42 -0000
-Received: from ucsinet21.oracle.com (ucsinet21.oracle.com [156.151.31.93])
-       by rcsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
-       ESMTP id q6QGdC91011778
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
-       Thu, 26 Jul 2012 16:39:13 GMT
-Received: from acsmt356.oracle.com (acsmt356.oracle.com [141.146.40.156])
-       by ucsinet21.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
-       q6QGdB0h029637
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
-       Thu, 26 Jul 2012 16:39:11 GMT
-Received: from abhmt104.oracle.com (abhmt104.oracle.com [141.146.116.56])
-       by acsmt356.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
-       q6QGdAve019877; Thu, 26 Jul 2012 11:39:10 -0500
-Received: from phenom.dumpdata.com (/209.6.85.33)
-       by default (Oracle Beehive Gateway v4.0)
-       with ESMTP ; Thu, 26 Jul 2012 09:39:10 -0700
-Received: by phenom.dumpdata.com (Postfix, from userid 1000)
-       id E8736402B5; Thu, 26 Jul 2012 12:30:20 -0400 (EDT)
-Date: Thu, 26 Jul 2012 12:30:20 -0400
-From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-Message-ID: <20120726163020.GB9222@phenom.dumpdata.com>
-References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
-       <1343316846-25860-1-git-send-email-stefano.stabellini@eu.citrix.com>
-MIME-Version: 1.0
-Content-Disposition: inline
-In-Reply-To: <1343316846-25860-1-git-send-email-stefano.stabellini@eu.citrix.com>
-User-Agent: Mutt/1.5.21 (2010-09-15)
-X-Source-IP: ucsinet21.oracle.com [156.151.31.93]
-Cc: xen-devel@lists.xensource.com, linaro-dev@lists.linaro.org,
-       Ian.Campbell@citrix.com, arnd@arndb.de, catalin.marinas@arm.com,
-       tim@xen.org, linux-kernel@vger.kernel.org,
-       linux-arm-kernel@lists.infradead.org
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 01/24] arm: initial Xen support
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Thu, Jul 26, 2012 at 04:33:43PM +0100, Stefano Stabellini wrote:
-> - Basic hypervisor.h and interface.h definitions.
-> - Skelethon enlighten.c, set xen_start_info to an empty struct.
-
-Skeleton
-
-> - Do not limit xen_initial_domain to PV guests.
-
-Better wording: Make xen_initial_domain dependent on the SIF_PRIVILIGED_BIT.
-
-Which reminds me - what about PV guests that do PCI passthrough. Aren't
-they "more" priviligied than normal PV guests? Or not really?
-> 
-> The new code only compiles when CONFIG_XEN is set, that is going to be
-> added to arch/arm/Kconfig in a later patch.
-
-s/later patch/<name of patch>/
-
-> 
-> Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-> ---
->  arch/arm/Makefile                     |    1 +
->  arch/arm/include/asm/hypervisor.h     |    6 +++
->  arch/arm/include/asm/xen/hypervisor.h |   19 ++++++++++
->  arch/arm/include/asm/xen/interface.h  |   64 +++++++++++++++++++++++++++++++++
->  arch/arm/xen/Makefile                 |    1 +
->  arch/arm/xen/enlighten.c              |   35 ++++++++++++++++++
->  include/xen/xen.h                     |    2 +-
->  7 files changed, 127 insertions(+), 1 deletions(-)
->  create mode 100644 arch/arm/include/asm/hypervisor.h
->  create mode 100644 arch/arm/include/asm/xen/hypervisor.h
->  create mode 100644 arch/arm/include/asm/xen/interface.h
->  create mode 100644 arch/arm/xen/Makefile
->  create mode 100644 arch/arm/xen/enlighten.c
-> 
-> diff --git a/arch/arm/Makefile b/arch/arm/Makefile
-> index 0298b00..70aaa82 100644
-> --- a/arch/arm/Makefile
-> +++ b/arch/arm/Makefile
-> @@ -246,6 +246,7 @@ endif
->  core-$(CONFIG_FPE_NWFPE)    += arch/arm/nwfpe/
->  core-$(CONFIG_FPE_FASTFPE)  += $(FASTFPE_OBJ)
->  core-$(CONFIG_VFP)          += arch/arm/vfp/
-> +core-$(CONFIG_XEN)          += arch/arm/xen/
->  
->  # If we have a machine-specific directory, then include it in the build.
->  core-y                              += arch/arm/kernel/ arch/arm/mm/ arch/arm/common/
-> diff --git a/arch/arm/include/asm/hypervisor.h b/arch/arm/include/asm/hypervisor.h
-> new file mode 100644
-> index 0000000..b90d9e5
-> --- /dev/null
-> +++ b/arch/arm/include/asm/hypervisor.h
-> @@ -0,0 +1,6 @@
-> +#ifndef _ASM_ARM_HYPERVISOR_H
-> +#define _ASM_ARM_HYPERVISOR_H
-> +
-> +#include <asm/xen/hypervisor.h>
-> +
-> +#endif
-> diff --git a/arch/arm/include/asm/xen/hypervisor.h b/arch/arm/include/asm/xen/hypervisor.h
-> new file mode 100644
-> index 0000000..d7ab99a
-> --- /dev/null
-> +++ b/arch/arm/include/asm/xen/hypervisor.h
-> @@ -0,0 +1,19 @@
-> +#ifndef _ASM_ARM_XEN_HYPERVISOR_H
-> +#define _ASM_ARM_XEN_HYPERVISOR_H
-> +
-> +extern struct shared_info *HYPERVISOR_shared_info;
-> +extern struct start_info *xen_start_info;
-> +
-> +/* Lazy mode for batching updates / context switch */
-> +enum paravirt_lazy_mode {
-> +    PARAVIRT_LAZY_NONE,
-> +    PARAVIRT_LAZY_MMU,
-> +    PARAVIRT_LAZY_CPU,
-> +};
-> +
-> +static inline enum paravirt_lazy_mode paravirt_get_lazy_mode(void)
-> +{
-> +    return PARAVIRT_LAZY_NONE;
-> +}
-> +
-> +#endif /* _ASM_ARM_XEN_HYPERVISOR_H */
-> diff --git a/arch/arm/include/asm/xen/interface.h b/arch/arm/include/asm/xen/interface.h
-> new file mode 100644
-> index 0000000..6c3ab59
-> --- /dev/null
-> +++ b/arch/arm/include/asm/xen/interface.h
-> @@ -0,0 +1,64 @@
-> +/******************************************************************************
-> + * Guest OS interface to ARM Xen.
-> + *
-> + * Stefano Stabellini <stefano.stabellini@eu.citrix.com>, Citrix, 2011
-
-2012
-
-> + */
-> +
-> +#ifndef _ASM_ARM_XEN_INTERFACE_H
-> +#define _ASM_ARM_XEN_INTERFACE_H
-> +
-> +#include <linux/types.h>
-> +
-> +#define __DEFINE_GUEST_HANDLE(name, type) \
-> +    typedef type * __guest_handle_ ## name
-> +
-> +#define DEFINE_GUEST_HANDLE_STRUCT(name) \
-> +    __DEFINE_GUEST_HANDLE(name, struct name)
-> +#define DEFINE_GUEST_HANDLE(name) __DEFINE_GUEST_HANDLE(name, name)
-> +#define GUEST_HANDLE(name)        __guest_handle_ ## name
-> +
-> +#define set_xen_guest_handle(hnd, val)                      \
-> +    do {                                            \
-> +            if (sizeof(hnd) == 8)                   \
-> +                    *(uint64_t *)&(hnd) = 0;        \
-> +            (hnd) = val;                            \
-> +    } while (0)
-> +
-> +#ifndef __ASSEMBLY__
-> +/* Guest handles for primitive C types. */
-> +__DEFINE_GUEST_HANDLE(uchar, unsigned char);
-> +__DEFINE_GUEST_HANDLE(uint,  unsigned int);
-> +__DEFINE_GUEST_HANDLE(ulong, unsigned long);
-> +DEFINE_GUEST_HANDLE(char);
-> +DEFINE_GUEST_HANDLE(int);
-> +DEFINE_GUEST_HANDLE(long);
-> +DEFINE_GUEST_HANDLE(void);
-> +DEFINE_GUEST_HANDLE(uint64_t);
-> +DEFINE_GUEST_HANDLE(uint32_t);
-> +
-> +/* Maximum number of virtual CPUs in multi-processor guests. */
-> +#define MAX_VIRT_CPUS 1
-> +
-> +struct arch_vcpu_info { };
-> +struct arch_shared_info { };
-> +
-> +/* XXX: Move pvclock definitions some place arch independent */
-> +struct pvclock_vcpu_time_info {
-> +    u32   version;
-> +    u32   pad0;
-> +    u64   tsc_timestamp;
-> +    u64   system_time;
-> +    u32   tsc_to_system_mul;
-> +    s8    tsc_shift;
-> +    u8    flags;
-> +    u8    pad[2];
-> +} __attribute__((__packed__)); /* 32 bytes */
-> +
-> +struct pvclock_wall_clock {
-> +    u32   version;
-> +    u32   sec;
-> +    u32   nsec;
-> +} __attribute__((__packed__));
-
-That is weird. It is 4+4+4 = 12 bytes? Don't you want it to be 16 bytes?
-
-> +#endif
-> +
-> +#endif /* _ASM_ARM_XEN_INTERFACE_H */
-> diff --git a/arch/arm/xen/Makefile b/arch/arm/xen/Makefile
-> new file mode 100644
-> index 0000000..0bad594
-> --- /dev/null
-> +++ b/arch/arm/xen/Makefile
-> @@ -0,0 +1 @@
-> +obj-y               := enlighten.o
-> diff --git a/arch/arm/xen/enlighten.c b/arch/arm/xen/enlighten.c
-> new file mode 100644
-> index 0000000..d27c2a6
-> --- /dev/null
-> +++ b/arch/arm/xen/enlighten.c
-> @@ -0,0 +1,35 @@
-> +#include <xen/xen.h>
-> +#include <xen/interface/xen.h>
-> +#include <xen/interface/memory.h>
-> +#include <xen/platform_pci.h>
-> +#include <asm/xen/hypervisor.h>
-> +#include <asm/xen/hypercall.h>
-> +#include <linux/module.h>
-> +
-> +struct start_info _xen_start_info;
-> +struct start_info *xen_start_info = &_xen_start_info;
-> +EXPORT_SYMBOL_GPL(xen_start_info);
-> +
-> +enum xen_domain_type xen_domain_type = XEN_NATIVE;
-> +EXPORT_SYMBOL_GPL(xen_domain_type);
-> +
-> +struct shared_info xen_dummy_shared_info;
-> +struct shared_info *HYPERVISOR_shared_info = (void *)&xen_dummy_shared_info;
-> +
-> +DEFINE_PER_CPU(struct vcpu_info *, xen_vcpu);
-> +
-> +/* XXX: to be removed */
-
-In this patch series later on? Or just when you try to collapse the x86 and arm variant
-together?
-
-> +__read_mostly int xen_have_vector_callback;
-> +EXPORT_SYMBOL_GPL(xen_have_vector_callback);
-> +
-> +int xen_platform_pci_unplug = XEN_UNPLUG_ALL;
-> +EXPORT_SYMBOL_GPL(xen_platform_pci_unplug);
-> +
-> +int xen_remap_domain_mfn_range(struct vm_area_struct *vma,
-> +                           unsigned long addr,
-> +                           unsigned long mfn, int nr,
-> +                           pgprot_t prot, unsigned domid)
-> +{
-> +    return -ENOSYS;
-> +}
-> +EXPORT_SYMBOL_GPL(xen_remap_domain_mfn_range);
-> diff --git a/include/xen/xen.h b/include/xen/xen.h
-> index a164024..2c0d3a5 100644
-> --- a/include/xen/xen.h
-> +++ b/include/xen/xen.h
-> @@ -23,7 +23,7 @@ extern enum xen_domain_type xen_domain_type;
->  #include <xen/interface/xen.h>
->  #include <asm/xen/hypervisor.h>
->  
-> -#define xen_initial_domain()        (xen_pv_domain() && \
-> +#define xen_initial_domain()        (xen_domain() && \
->                               xen_start_info->flags & SIF_INITDOMAIN)
->  #else  /* !CONFIG_XEN_DOM0 */
->  #define xen_initial_domain()        (0)
-> -- 
-> 1.7.2.5
-> 
-> 
-> _______________________________________________
-> Xen-devel mailing list
-> Xen-devel@lists.xen.org
-> http://lists.xen.org/xen-devel
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<20120726163352.GC9222@phenom.dumpdata.com> b/test/corpus/<20120726163352.GC9222@phenom.dumpdata.com>
deleted file mode 100644 (file)
index ff566fc..0000000
+++ /dev/null
@@ -1,269 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Jul 26 17:47:34 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 26 Jul 2012 17:47:34 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SuRDl-0001uv-0u
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 26 Jul 2012 17:47:34 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SuR9w-0004m0-CJ; Thu, 26 Jul 2012 16:43:32 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <konrad.wilk@oracle.com>) id 1SuR9t-0004lZ-Mu
-       for xen-devel@lists.xensource.com; Thu, 26 Jul 2012 16:43:30 +0000
-Received: from [85.158.139.83:64050] by server-11.bemta-5.messagelabs.com id
-       1C/70-20400-0B371105; Thu, 26 Jul 2012 16:43:28 +0000
-X-Env-Sender: konrad.wilk@oracle.com
-X-Msg-Ref: server-7.tower-182.messagelabs.com!1343321007!24876533!1
-X-Originating-IP: [141.146.126.227]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogMTQxLjE0Ni4xMjYuMjI3ID0+IDY2MTUwNA==\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.2; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 26155 invoked from network); 26 Jul 2012 16:43:28 -0000
-Received: from acsinet15.oracle.com (HELO acsinet15.oracle.com)
-       (141.146.126.227)
-       by server-7.tower-182.messagelabs.com with DHE-RSA-AES256-SHA encrypted
-       SMTP; 26 Jul 2012 16:43:28 -0000
-Received: from acsinet22.oracle.com (acsinet22.oracle.com [141.146.126.238])
-       by acsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
-       ESMTP id q6QGgg6G027457
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
-       Thu, 26 Jul 2012 16:42:43 GMT
-Received: from acsmt357.oracle.com (acsmt357.oracle.com [141.146.40.157])
-       by acsinet22.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
-       q6QGgfxn010178
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
-       Thu, 26 Jul 2012 16:42:42 GMT
-Received: from abhmt105.oracle.com (abhmt105.oracle.com [141.146.116.57])
-       by acsmt357.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
-       q6QGgfDM006684; Thu, 26 Jul 2012 11:42:41 -0500
-Received: from phenom.dumpdata.com (/209.6.85.33)
-       by default (Oracle Beehive Gateway v4.0)
-       with ESMTP ; Thu, 26 Jul 2012 09:42:41 -0700
-Received: by phenom.dumpdata.com (Postfix, from userid 1000)
-       id 1F023402B5; Thu, 26 Jul 2012 12:33:52 -0400 (EDT)
-Date: Thu, 26 Jul 2012 12:33:52 -0400
-From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-Message-ID: <20120726163352.GC9222@phenom.dumpdata.com>
-References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
-       <1343316846-25860-2-git-send-email-stefano.stabellini@eu.citrix.com>
-MIME-Version: 1.0
-Content-Disposition: inline
-In-Reply-To: <1343316846-25860-2-git-send-email-stefano.stabellini@eu.citrix.com>
-User-Agent: Mutt/1.5.21 (2010-09-15)
-X-Source-IP: acsinet22.oracle.com [141.146.126.238]
-Cc: xen-devel@lists.xensource.com, linaro-dev@lists.linaro.org,
-       Ian.Campbell@citrix.com, arnd@arndb.de, catalin.marinas@arm.com,
-       tim@xen.org, linux-kernel@vger.kernel.org,
-       linux-arm-kernel@lists.infradead.org
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 02/24] xen/arm: hypercalls
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Thu, Jul 26, 2012 at 04:33:44PM +0100, Stefano Stabellini wrote:
-> Use r12 to pass the hypercall number to the hypervisor.
-> 
-> We need a register to pass the hypercall number because we might not
-> know it at compile time and HVC only takes an immediate argument.
-> 
-> Among the available registers r12 seems to be the best choice because it
-> is defined as "intra-procedure call scratch register".
-> 
-> Use the ISS to pass an hypervisor specific tag.
-> 
-> Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-> ---
->  arch/arm/include/asm/xen/hypercall.h |   50 ++++++++++++++++++++++++++
->  arch/arm/xen/Makefile                |    2 +-
->  arch/arm/xen/hypercall.S             |   65 ++++++++++++++++++++++++++++++++++
->  3 files changed, 116 insertions(+), 1 deletions(-)
->  create mode 100644 arch/arm/include/asm/xen/hypercall.h
->  create mode 100644 arch/arm/xen/hypercall.S
-> 
-> diff --git a/arch/arm/include/asm/xen/hypercall.h b/arch/arm/include/asm/xen/hypercall.h
-> new file mode 100644
-> index 0000000..4ac0624
-> --- /dev/null
-> +++ b/arch/arm/include/asm/xen/hypercall.h
-> @@ -0,0 +1,50 @@
-> +/******************************************************************************
-> + * hypercall.h
-> + *
-> + * Linux-specific hypervisor handling.
-> + *
-> + * Stefano Stabellini <stefano.stabellini@eu.citrix.com>, Citrix, 2012
-> + *
-> + * This program is free software; you can redistribute it and/or
-> + * modify it under the terms of the GNU General Public License version 2
-> + * as published by the Free Software Foundation; or, when distributed
-> + * separately from the Linux kernel or incorporated into other
-> + * software packages, subject to the following license:
-> + *
-> + * Permission is hereby granted, free of charge, to any person obtaining a copy
-> + * of this source file (the "Software"), to deal in the Software without
-> + * restriction, including without limitation the rights to use, copy, modify,
-> + * merge, publish, distribute, sublicense, and/or sell copies of the Software,
-> + * and to permit persons to whom the Software is furnished to do so, subject to
-> + * the following conditions:
-> + *
-> + * The above copyright notice and this permission notice shall be included in
-> + * all copies or substantial portions of the Software.
-> + *
-> + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-> + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-> + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-> + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-> + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-> + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
-> + * IN THE SOFTWARE.
-> + */
-> +
-> +#ifndef _ASM_ARM_XEN_HYPERCALL_H
-> +#define _ASM_ARM_XEN_HYPERCALL_H
-> +
-> +#include <xen/interface/xen.h>
-> +
-> +long privcmd_call(unsigned call, unsigned long a1,
-> +            unsigned long a2, unsigned long a3,
-> +            unsigned long a4, unsigned long a5);
-> +int HYPERVISOR_xen_version(int cmd, void *arg);
-> +int HYPERVISOR_console_io(int cmd, int count, char *str);
-> +int HYPERVISOR_grant_table_op(unsigned int cmd, void *uop, unsigned int count);
-> +int HYPERVISOR_sched_op(int cmd, void *arg);
-> +int HYPERVISOR_event_channel_op(int cmd, void *arg);
-> +unsigned long HYPERVISOR_hvm_op(int op, void *arg);
-> +int HYPERVISOR_memory_op(unsigned int cmd, void *arg);
-> +int HYPERVISOR_physdev_op(int cmd, void *arg);
-> +
-> +#endif /* _ASM_ARM_XEN_HYPERCALL_H */
-> diff --git a/arch/arm/xen/Makefile b/arch/arm/xen/Makefile
-> index 0bad594..b9d6acc 100644
-> --- a/arch/arm/xen/Makefile
-> +++ b/arch/arm/xen/Makefile
-> @@ -1 +1 @@
-> -obj-y               := enlighten.o
-> +obj-y               := enlighten.o hypercall.o
-> diff --git a/arch/arm/xen/hypercall.S b/arch/arm/xen/hypercall.S
-> new file mode 100644
-> index 0000000..038cc5b
-> --- /dev/null
-> +++ b/arch/arm/xen/hypercall.S
-> @@ -0,0 +1,65 @@
-> +/******************************************************************************
-> + * hypercall.S
-> + *
-> + * Xen hypercall wrappers
-> + *
-> + * The Xen hypercall calling convention is very similar to the ARM
-> + * procedure calling convention: the first paramter is passed in r0, the
-> + * second in r1, the third in r2 and the third in r3. Considering that
-
-I think you meant 'and the fourth in r3'.
-
-So where does the similarity end?  Just in that we use r12?
-
-> + * Xen hypercalls have 5 arguments at most, the fifth paramter is passed
-> + * in r4, differently from the procedure calling convention of using the
-
-> + * stack for that case.
-> + *
-> + * The hypercall number is passed in r12.
-> + *
-> + * The return value is in r0.
-> + *
-> + * The hvc ISS is required to be 0xEA1, that is the Xen specific ARM
-> + * hypercall tag.
-> + *
-> + * Stefano Stabellini <stefano.stabellini@eu.citrix.com>, Citrix, 2012
-> + */
-> +
-> +#include <linux/linkage.h>
-> +#include <asm/assembler.h>
-> +#include <xen/interface/xen.h>
-> +
-> +
-> +/* HVC 0xEA1 */
-> +#ifdef CONFIG_THUMB2_KERNEL
-> +#define xen_hvc .word 0xf7e08ea1
-> +#else
-> +#define xen_hvc .word 0xe140ea71
-> +#endif
-> +
-> +/* We need to save and restore r4, because Xen clobbers it. */
-
-Hmm, the comment says r4, but right below I see r12?
-Should this comment be by 'privcmd_call'?
-
-> +#define HYPERCALL(hypercall)                        \
-> +ENTRY(HYPERVISOR_##hypercall)                       \
-> +    mov r12, #__HYPERVISOR_##hypercall;     \
-> +    xen_hvc;                                                        \
-> +    mov pc, lr;                                                     \
-> +ENDPROC(HYPERVISOR_##hypercall)
-> +
-> +                .text
-> +
-> +HYPERCALL(xen_version);
-> +HYPERCALL(console_io);
-> +HYPERCALL(grant_table_op);
-> +HYPERCALL(sched_op);
-> +HYPERCALL(event_channel_op);
-> +HYPERCALL(hvm_op);
-> +HYPERCALL(memory_op);
-> +HYPERCALL(physdev_op);
-> +
-> +ENTRY(privcmd_call)
-> +    stmdb   sp!, {r4}
-> +    mov r12, r0
-> +    mov r0, r1
-> +    mov r1, r2
-> +    mov r2, r3
-> +    ldr r3, [sp, #8]
-> +    ldr r4, [sp, #4]
-> +    xen_hvc
-> +    pop {r4}
-> +    mov pc, lr
-> +ENDPROC(privcmd_call);
-> -- 
-> 1.7.2.5
-> 
-> 
-> _______________________________________________
-> Xen-devel mailing list
-> Xen-devel@lists.xen.org
-> http://lists.xen.org/xen-devel
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<20120726163655.GD9222@phenom.dumpdata.com> b/test/corpus/<20120726163655.GD9222@phenom.dumpdata.com>
deleted file mode 100644 (file)
index 1090a4a..0000000
+++ /dev/null
@@ -1,209 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Jul 26 17:49:38 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 26 Jul 2012 17:49:38 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SuRFk-0001vJ-Hh
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 26 Jul 2012 17:49:38 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SuRCS-000536-V7; Thu, 26 Jul 2012 16:46:08 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <konrad.wilk@oracle.com>) id 1SuRCQ-00052j-9u
-       for xen-devel@lists.xensource.com; Thu, 26 Jul 2012 16:46:06 +0000
-Received: from [85.158.143.99:3490] by server-1.bemta-4.messagelabs.com id
-       D5/4C-24392-D4471105; Thu, 26 Jul 2012 16:46:05 +0000
-X-Env-Sender: konrad.wilk@oracle.com
-X-Msg-Ref: server-3.tower-216.messagelabs.com!1343321160!28288923!1
-X-Originating-IP: [148.87.113.117]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogMTQ4Ljg3LjExMy4xMTcgPT4gNjU4OTY3\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.2; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 13133 invoked from network); 26 Jul 2012 16:46:04 -0000
-Received: from rcsinet15.oracle.com (HELO rcsinet15.oracle.com)
-       (148.87.113.117)
-       by server-3.tower-216.messagelabs.com with DHE-RSA-AES256-SHA encrypted
-       SMTP; 26 Jul 2012 16:46:04 -0000
-Received: from acsinet22.oracle.com (acsinet22.oracle.com [141.146.126.238])
-       by rcsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
-       ESMTP id q6QGjkvf022513
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
-       Thu, 26 Jul 2012 16:45:47 GMT
-Received: from acsmt358.oracle.com (acsmt358.oracle.com [141.146.40.158])
-       by acsinet22.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
-       q6QGjj9Y016529
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
-       Thu, 26 Jul 2012 16:45:45 GMT
-Received: from abhmt116.oracle.com (abhmt116.oracle.com [141.146.116.68])
-       by acsmt358.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
-       q6QGjj0E031317; Thu, 26 Jul 2012 11:45:45 -0500
-Received: from phenom.dumpdata.com (/209.6.85.33)
-       by default (Oracle Beehive Gateway v4.0)
-       with ESMTP ; Thu, 26 Jul 2012 09:45:45 -0700
-Received: by phenom.dumpdata.com (Postfix, from userid 1000)
-       id DA50C402B5; Thu, 26 Jul 2012 12:36:55 -0400 (EDT)
-Date: Thu, 26 Jul 2012 12:36:55 -0400
-From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-Message-ID: <20120726163655.GD9222@phenom.dumpdata.com>
-References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
-       <1343316846-25860-3-git-send-email-stefano.stabellini@eu.citrix.com>
-MIME-Version: 1.0
-Content-Disposition: inline
-In-Reply-To: <1343316846-25860-3-git-send-email-stefano.stabellini@eu.citrix.com>
-User-Agent: Mutt/1.5.21 (2010-09-15)
-X-Source-IP: acsinet22.oracle.com [141.146.126.238]
-Cc: xen-devel@lists.xensource.com, linaro-dev@lists.linaro.org,
-       Ian.Campbell@citrix.com, arnd@arndb.de, catalin.marinas@arm.com,
-       tim@xen.org, linux-kernel@vger.kernel.org,
-       linux-arm-kernel@lists.infradead.org
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 03/24] xen/arm: page.h definitions
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Thu, Jul 26, 2012 at 04:33:45PM +0100, Stefano Stabellini wrote:
-> ARM Xen guests always use paging in hardware, like PV on HVM guests in
-> the X86 world.
-
-Nice, so no dealing with the P2M at all in the guest?
-
-> 
-> Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-> ---
->  arch/arm/include/asm/xen/page.h |   77 +++++++++++++++++++++++++++++++++++++++
->  1 files changed, 77 insertions(+), 0 deletions(-)
->  create mode 100644 arch/arm/include/asm/xen/page.h
-> 
-> diff --git a/arch/arm/include/asm/xen/page.h b/arch/arm/include/asm/xen/page.h
-> new file mode 100644
-> index 0000000..6cfe9a1
-> --- /dev/null
-> +++ b/arch/arm/include/asm/xen/page.h
-> @@ -0,0 +1,77 @@
-> +#ifndef _ASM_ARM_XEN_PAGE_H
-> +#define _ASM_ARM_XEN_PAGE_H
-> +
-> +#include <asm/page.h>
-> +#include <linux/pfn.h>
-> +#include <linux/types.h>
-> +#include <asm/pgtable.h>
-> +#include <xen/interface/grant_table.h>
-
-I don't if it makes such a difference, but putting the headers in sorted
-order is sometimes nicer than just randomly.. But that might be just
-me liking an orderly world nowadays :-)
-
-> +
-> +#define pfn_to_mfn(pfn)                     (pfn)
-> +#define phys_to_machine_mapping_valid       (1)
-> +#define mfn_to_pfn(mfn)                     (mfn)
-> +#define mfn_to_virt(m)                      (__va(mfn_to_pfn(m) << PAGE_SHIFT))
-> +
-> +#define pte_mfn         pte_pfn
-> +#define mfn_pte         pfn_pte
-> +
-> +/* Xen machine address */
-> +typedef struct xmaddr {
-> +    phys_addr_t maddr;
-> +} xmaddr_t;
-> +
-> +/* Xen pseudo-physical address */
-> +typedef struct xpaddr {
-> +    phys_addr_t paddr;
-> +} xpaddr_t;
-> +
-> +#define XMADDR(x)   ((xmaddr_t) { .maddr = (x) })
-> +#define XPADDR(x)   ((xpaddr_t) { .paddr = (x) })
-> +
-> +static inline xmaddr_t phys_to_machine(xpaddr_t phys)
-> +{
-> +    unsigned offset = phys.paddr & ~PAGE_MASK;
-> +    return XMADDR(PFN_PHYS(pfn_to_mfn(PFN_DOWN(phys.paddr))) | offset);
-> +}
-> +
-> +static inline xpaddr_t machine_to_phys(xmaddr_t machine)
-> +{
-> +    unsigned offset = machine.maddr & ~PAGE_MASK;
-> +    return XPADDR(PFN_PHYS(mfn_to_pfn(PFN_DOWN(machine.maddr))) | offset);
-> +}
-> +/* VIRT <-> MACHINE conversion */
-> +#define virt_to_machine(v)  (phys_to_machine(XPADDR(__pa(v))))
-> +#define virt_to_pfn(v)          (PFN_DOWN(__pa(v)))
-> +#define virt_to_mfn(v)              (pfn_to_mfn(virt_to_pfn(v)))
-> +#define mfn_to_virt(m)              (__va(mfn_to_pfn(m) << PAGE_SHIFT))
-> +
-> +static inline xmaddr_t arbitrary_virt_to_machine(void *vaddr)
-> +{
-> +    /* XXX: assuming it is mapped in the kernel 1:1 */
-> +    return virt_to_machine(vaddr);
-> +}
-> +
-> +/* XXX: this shouldn't be here */
-
-So why is it here?
-
-> +static inline pte_t *lookup_address(unsigned long address, unsigned int *level)
-> +{
-> +    BUG();
-> +    return NULL;
-> +}
-> +
-> +static inline int m2p_add_override(unsigned long mfn, struct page *page,
-> +            struct gnttab_map_grant_ref *kmap_op)
-> +{
-> +    return 0;
-> +}
-> +
-> +static inline int m2p_remove_override(struct page *page, bool clear_pte)
-> +{
-> +    return 0;
-> +}
-> +
-> +static inline bool set_phys_to_machine(unsigned long pfn, unsigned long mfn)
-> +{
-> +    BUG();
-> +    return false;
-> +}
-> +#endif /* _ASM_ARM_XEN_PAGE_H */
-> -- 
-> 1.7.2.5
-> 
-> 
-> _______________________________________________
-> Xen-devel mailing list
-> Xen-devel@lists.xen.org
-> http://lists.xen.org/xen-devel
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<20120726163759.GE9222@phenom.dumpdata.com> b/test/corpus/<20120726163759.GE9222@phenom.dumpdata.com>
deleted file mode 100644 (file)
index 855054e..0000000
+++ /dev/null
@@ -1,142 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Jul 26 17:51:21 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 26 Jul 2012 17:51:21 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SuRHP-0001vs-Nm
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 26 Jul 2012 17:51:21 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SuRE2-0005FS-JV; Thu, 26 Jul 2012 16:47:46 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <konrad.wilk@oracle.com>) id 1SuRE0-0005FB-MC
-       for xen-devel@lists.xensource.com; Thu, 26 Jul 2012 16:47:44 +0000
-Received: from [85.158.143.35:7940] by server-2.bemta-4.messagelabs.com id
-       94/37-17938-FA471105; Thu, 26 Jul 2012 16:47:43 +0000
-X-Env-Sender: konrad.wilk@oracle.com
-X-Msg-Ref: server-2.tower-21.messagelabs.com!1343321234!6264457!1
-X-Originating-IP: [141.146.126.227]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogMTQxLjE0Ni4xMjYuMjI3ID0+IDY2MTUwNA==\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.2; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 2539 invoked from network); 26 Jul 2012 16:47:21 -0000
-Received: from acsinet15.oracle.com (HELO acsinet15.oracle.com)
-       (141.146.126.227)
-       by server-2.tower-21.messagelabs.com with DHE-RSA-AES256-SHA encrypted
-       SMTP; 26 Jul 2012 16:47:21 -0000
-Received: from ucsinet22.oracle.com (ucsinet22.oracle.com [156.151.31.94])
-       by acsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
-       ESMTP id q6QGkobe002853
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
-       Thu, 26 Jul 2012 16:46:51 GMT
-Received: from acsmt356.oracle.com (acsmt356.oracle.com [141.146.40.156])
-       by ucsinet22.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
-       q6QGknkq018008
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
-       Thu, 26 Jul 2012 16:46:49 GMT
-Received: from abhmt102.oracle.com (abhmt102.oracle.com [141.146.116.54])
-       by acsmt356.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
-       q6QGkmfP025016; Thu, 26 Jul 2012 11:46:49 -0500
-Received: from phenom.dumpdata.com (/209.6.85.33)
-       by default (Oracle Beehive Gateway v4.0)
-       with ESMTP ; Thu, 26 Jul 2012 09:46:48 -0700
-Received: by phenom.dumpdata.com (Postfix, from userid 1000)
-       id 4AF75402B5; Thu, 26 Jul 2012 12:37:59 -0400 (EDT)
-Date: Thu, 26 Jul 2012 12:37:59 -0400
-From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-Message-ID: <20120726163759.GE9222@phenom.dumpdata.com>
-References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
-       <1343316846-25860-4-git-send-email-stefano.stabellini@eu.citrix.com>
-MIME-Version: 1.0
-Content-Disposition: inline
-In-Reply-To: <1343316846-25860-4-git-send-email-stefano.stabellini@eu.citrix.com>
-User-Agent: Mutt/1.5.21 (2010-09-15)
-X-Source-IP: ucsinet22.oracle.com [156.151.31.94]
-Cc: xen-devel@lists.xensource.com, linaro-dev@lists.linaro.org,
-       Ian.Campbell@citrix.com, arnd@arndb.de, catalin.marinas@arm.com,
-       tim@xen.org, linux-kernel@vger.kernel.org,
-       linux-arm-kernel@lists.infradead.org
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 04/24] xen/arm: sync_bitops
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Thu, Jul 26, 2012 at 04:33:46PM +0100, Stefano Stabellini wrote:
-> sync_bitops functions are equivalent to the SMP implementation of the
-> original functions, independently from CONFIG_SMP being defined.
-
-So why can't the code be changed to use that? Is it that
-the _set_bit, _clear_bit, etc are not available with !CONFIG_SMP?
-
-> 
-> Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-> ---
->  arch/arm/include/asm/sync_bitops.h |   17 +++++++++++++++++
->  1 files changed, 17 insertions(+), 0 deletions(-)
->  create mode 100644 arch/arm/include/asm/sync_bitops.h
-> 
-> diff --git a/arch/arm/include/asm/sync_bitops.h b/arch/arm/include/asm/sync_bitops.h
-> new file mode 100644
-> index 0000000..d975092903
-> --- /dev/null
-> +++ b/arch/arm/include/asm/sync_bitops.h
-> @@ -0,0 +1,17 @@
-> +#ifndef __ASM_SYNC_BITOPS_H__
-> +#define __ASM_SYNC_BITOPS_H__
-> +
-> +#include <asm/bitops.h>
-> +#include <asm/system.h>
-> +
-> +#define sync_set_bit(nr, p)         _set_bit(nr, p)
-> +#define sync_clear_bit(nr, p)               _clear_bit(nr, p)
-> +#define sync_change_bit(nr, p)              _change_bit(nr, p)
-> +#define sync_test_and_set_bit(nr, p)        _test_and_set_bit(nr, p)
-> +#define sync_test_and_clear_bit(nr, p)      _test_and_clear_bit(nr, p)
-> +#define sync_test_and_change_bit(nr, p)     _test_and_change_bit(nr, p)
-> +#define sync_test_bit(nr, addr)             test_bit(nr, addr)
-> +#define sync_cmpxchg                        cmpxchg
-> +
-> +
-> +#endif
-> -- 
-> 1.7.2.5
-> 
-> 
-> _______________________________________________
-> Xen-devel mailing list
-> Xen-devel@lists.xen.org
-> http://lists.xen.org/xen-devel
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<20120727142101.GA6802@n2100.arm.linux.org.uk> b/test/corpus/<20120727142101.GA6802@n2100.arm.linux.org.uk>
deleted file mode 100644 (file)
index 0533263..0000000
+++ /dev/null
@@ -1,120 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Jul 27 15:26:15 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 27 Jul 2012 15:26:15 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SulUX-0001u6-Fl
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 27 Jul 2012 15:26:15 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SulQ2-0001pq-HT; Fri, 27 Jul 2012 14:21:30 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <linux+xen-devel=lists.xensource.com@arm.linux.org.uk>)
-       id 1SulQ0-0001pl-5s
-       for xen-devel@lists.xensource.com; Fri, 27 Jul 2012 14:21:28 +0000
-Received: from [85.158.139.83:44715] by server-2.bemta-5.messagelabs.com id
-       1C/35-04598-7E3A2105; Fri, 27 Jul 2012 14:21:27 +0000
-X-Env-Sender: linux+xen-devel=lists.xensource.com@arm.linux.org.uk
-X-Msg-Ref: server-8.tower-182.messagelabs.com!1343398885!17729599!1
-X-Originating-IP: [78.32.30.218]
-X-SpamReason: No, hits=0.0 required=7.0 tests=
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.2; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 32030 invoked from network); 27 Jul 2012 14:21:26 -0000
-Received: from caramon.arm.linux.org.uk (HELO caramon.arm.linux.org.uk)
-       (78.32.30.218)
-       by server-8.tower-182.messagelabs.com with DHE-RSA-AES256-SHA encrypted
-       SMTP; 27 Jul 2012 14:21:26 -0000
-DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
-       d=arm.linux.org.uk; s=caramon; 
-       h=Sender:In-Reply-To:Content-Type:MIME-Version:References:Message-ID:Subject:Cc:To:From:Date;
-       bh=ARqWlvy4ftNv3lg0qj1mA2YJ8xfrc1D7CXFd4VgiJO8=; 
-       b=ZeYblTNE9BSVURQwJ3HX7XfAooGzQHibfySXxsqzhmj5rnMbOMlhOH3NEPW9JIHn5keVgaXbe3cJdsb+gAB48hrrRGqoYTzdm9p90/+LkBtOmii90jPErF8c5Rw0Eo/0HZnHDqd2NENSwDwCQlWuPyAQCRHoVn3Wt8aAZrGFXX8=;
-Received: from n2100.arm.linux.org.uk
-       ([2002:4e20:1eda:1:214:fdff:fe10:4f86]:47385)
-       by caramon.arm.linux.org.uk with esmtpsa (TLSv1:AES256-SHA:256)
-       (Exim 4.76) (envelope-from <linux@arm.linux.org.uk>)
-       id 1SulPa-00036W-MR; Fri, 27 Jul 2012 15:21:03 +0100
-Received: from linux by n2100.arm.linux.org.uk with local (Exim 4.76)
-       (envelope-from <linux@n2100.arm.linux.org.uk>)
-       id 1SulPZ-00021p-JD; Fri, 27 Jul 2012 15:21:01 +0100
-Date: Fri, 27 Jul 2012 15:21:01 +0100
-From: Russell King - ARM Linux <linux@arm.linux.org.uk>
-To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-Message-ID: <20120727142101.GA6802@n2100.arm.linux.org.uk>
-References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
-       <1343316846-25860-2-git-send-email-stefano.stabellini@eu.citrix.com>
-       <20120726163352.GC9222@phenom.dumpdata.com>
-       <1343380659.6812.106.camel@zakaz.uk.xensource.com>
-       <alpine.DEB.2.02.1207271350370.26163@kaball.uk.xensource.com>
-MIME-Version: 1.0
-Content-Disposition: inline
-In-Reply-To: <alpine.DEB.2.02.1207271350370.26163@kaball.uk.xensource.com>
-User-Agent: Mutt/1.5.19 (2009-01-05)
-Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
-       "linaro-dev@lists.linaro.org" <linaro-dev@lists.linaro.org>,
-       Ian Campbell <Ian.Campbell@citrix.com>, "arnd@arndb.de" <arnd@arndb.de>,
-       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
-       "catalin.marinas@arm.com" <catalin.marinas@arm.com>,
-       "Tim \(Xen.org\)" <tim@xen.org>,
-       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
-       "linux-arm-kernel@lists.infradead.org"
-       <linux-arm-kernel@lists.infradead.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_DKIM_INVALID,T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 02/24] xen/arm: hypercalls
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Fri, Jul 27, 2012 at 02:02:18PM +0100, Stefano Stabellini wrote:
-> > > > +/******************************************************************************
-> > > > + * hypercall.h
-> > > > + *
-> > > > + * Linux-specific hypervisor handling.
-> > > > + *
-> > > > + * Stefano Stabellini <stefano.stabellini@eu.citrix.com>, Citrix, 2012
-> > > > + *
-> > > > + * This program is free software; you can redistribute it and/or
-> > > > + * modify it under the terms of the GNU General Public License version 2
-> > > > + * as published by the Free Software Foundation; or, when distributed
-> > > > + * separately from the Linux kernel or incorporated into other
-> > > > + * software packages, subject to the following license:
-> > > > + *
-> > > > + * Permission is hereby granted, free of charge, to any person obtaining a copy
-> > > > + * of this source file (the "Software"), to deal in the Software without
-
-Erm, is that an additional restriction on the GPL which prevents me from
-shipping this code on a CD and charging for the act of creating the CD
-and shipping it?  That would technically make the above statement
-incompatible with the GPL.
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<20120727145900.GC6802@n2100.arm.linux.org.uk> b/test/corpus/<20120727145900.GC6802@n2100.arm.linux.org.uk>
deleted file mode 100644 (file)
index eacb4c0..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Jul 27 16:04:03 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 27 Jul 2012 16:04:03 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1Sum5A-00024j-UD
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 27 Jul 2012 16:04:03 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1Sum0d-0004e3-55; Fri, 27 Jul 2012 14:59:19 +0000
-Received: from mail27.messagelabs.com ([193.109.254.147])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <linux+xen-devel=lists.xensource.com@arm.linux.org.uk>)
-       id 1Sum0b-0004dy-Jq
-       for xen-devel@lists.xensource.com; Fri, 27 Jul 2012 14:59:17 +0000
-X-Env-Sender: linux+xen-devel=lists.xensource.com@arm.linux.org.uk
-X-Msg-Ref: server-10.tower-27.messagelabs.com!1343401150!5952117!1
-X-Originating-IP: [78.32.30.218]
-X-SpamReason: No, hits=0.0 required=7.0 tests=
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.2; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 13228 invoked from network); 27 Jul 2012 14:59:11 -0000
-Received: from caramon.arm.linux.org.uk (HELO caramon.arm.linux.org.uk)
-       (78.32.30.218)
-       by server-10.tower-27.messagelabs.com with DHE-RSA-AES256-SHA encrypted
-       SMTP; 27 Jul 2012 14:59:11 -0000
-DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed;
-       d=arm.linux.org.uk; s=caramon; 
-       h=Sender:In-Reply-To:Content-Type:MIME-Version:References:Message-ID:Subject:Cc:To:From:Date;
-       bh=1p0ve0wPmNuNPqUFrxPsoF95yn++fRgspQFJbuSPIi8=; 
-       b=muxDZGvqF0PCWe5kCjLZHYDm+Cmyu15W1K8VD1ZgUOse6Ke/GW2AbBUyeyh+wU4i8IRNWOG9HVgKBq1td8XaMk6Y2GoWh1bMP+YedD+V1v34gybUmHfrRDpTRbb8aB/RRhNnGr65zsX3NhUxNvb48VGnnGQJMUSZVcGV9g/LCjI=;
-Received: from n2100.arm.linux.org.uk
-       ([2002:4e20:1eda:1:214:fdff:fe10:4f86]:46965)
-       by caramon.arm.linux.org.uk with esmtpsa (TLSv1:AES256-SHA:256)
-       (Exim 4.76) (envelope-from <linux@arm.linux.org.uk>)
-       id 1Sum0M-000389-37; Fri, 27 Jul 2012 15:59:02 +0100
-Received: from linux by n2100.arm.linux.org.uk with local (Exim 4.76)
-       (envelope-from <linux@n2100.arm.linux.org.uk>)
-       id 1Sum0K-0002FG-RN; Fri, 27 Jul 2012 15:59:00 +0100
-Date: Fri, 27 Jul 2012 15:59:00 +0100
-From: Russell King - ARM Linux <linux@arm.linux.org.uk>
-To: Ian Campbell <Ian.Campbell@citrix.com>
-Message-ID: <20120727145900.GC6802@n2100.arm.linux.org.uk>
-References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
-       <1343316846-25860-2-git-send-email-stefano.stabellini@eu.citrix.com>
-       <20120726163352.GC9222@phenom.dumpdata.com>
-       <1343380659.6812.106.camel@zakaz.uk.xensource.com>
-       <alpine.DEB.2.02.1207271350370.26163@kaball.uk.xensource.com>
-       <20120727142101.GA6802@n2100.arm.linux.org.uk>
-       <1343399971.25096.8.camel@zakaz.uk.xensource.com>
-MIME-Version: 1.0
-Content-Disposition: inline
-In-Reply-To: <1343399971.25096.8.camel@zakaz.uk.xensource.com>
-User-Agent: Mutt/1.5.19 (2009-01-05)
-Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
-       "linaro-dev@lists.linaro.org" <linaro-dev@lists.linaro.org>,
-       "arnd@arndb.de" <arnd@arndb.de>,
-       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
-       "catalin.marinas@arm.com" <catalin.marinas@arm.com>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>,
-       "Tim \(Xen.org\)" <tim@xen.org>,
-       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
-       "linux-arm-kernel@lists.infradead.org"
-       <linux-arm-kernel@lists.infradead.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_DKIM_INVALID,T_RP_MATCHES_RCVD autolearn=unavailable version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 02/24] xen/arm: hypercalls
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Fri, Jul 27, 2012 at 03:39:31PM +0100, Ian Campbell wrote:
-> On Fri, 2012-07-27 at 15:21 +0100, Russell King - ARM Linux wrote:
-> > On Fri, Jul 27, 2012 at 02:02:18PM +0100, Stefano Stabellini wrote:
-> > > > > > +/******************************************************************************
-> > > > > > + * hypercall.h
-> > > > > > + *
-> > > > > > + * Linux-specific hypervisor handling.
-> > > > > > + *
-> > > > > > + * Stefano Stabellini <stefano.stabellini@eu.citrix.com>, Citrix, 2012
-> > > > > > + *
-> > > > > > + * This program is free software; you can redistribute it and/or
-> > > > > > + * modify it under the terms of the GNU General Public License version 2
-> > > > > > + * as published by the Free Software Foundation; or, when distributed
-> > > > > > + * separately from the Linux kernel or incorporated into other
-> > > > > > + * software packages, subject to the following license:
-> > > > > > + *
-> > > > > > + * Permission is hereby granted, free of charge, to any person obtaining a copy
-> > > > > > + * of this source file (the "Software"), to deal in the Software without
-> > 
-> > Erm, is that an additional restriction on the GPL which prevents me from
-> > shipping this code on a CD and charging for the act of creating the CD
-> > and shipping it?  That would technically make the above statement
-> > incompatible with the GPL.
-> 
-> There's an "or" in there.
-> 
-> The non-GPL alternative license is the standard one applied by upstream
-> Xen to the interface headers:
->         http://xenbits.xen.org/hg/xen-unstable.hg/file/tip/xen/include/public/COPYING
-> 
-> It's the X11/MIT license IIRC, which the FSF say is GPL compatible.
-> http://www.gnu.org/licenses/license-list.html#X11License
-> 
-> The same license is used a few other places in the kernel, e.g. the DRM
-> code.
-
-Ok, but be aware that you won't be able to take code from the Linux
-kernel and place it in a file marked with that license header (because
-the code authors haven't given permission for it to be placed under any
-other license other than GPLv2.)
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<20120801104237.GB7227@phenom.dumpdata.com> b/test/corpus/<20120801104237.GB7227@phenom.dumpdata.com>
deleted file mode 100644 (file)
index 21baa9b..0000000
+++ /dev/null
@@ -1,120 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Aug 01 11:56:19 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 01 Aug 2012 11:56:19 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SwWbA-0005vQ-OZ
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 01 Aug 2012 11:56:19 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SwWX8-0003Lt-Dx; Wed, 01 Aug 2012 10:52:06 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <konrad.wilk@oracle.com>) id 1SwWX6-0003Lh-V1
-       for xen-devel@lists.xensource.com; Wed, 01 Aug 2012 10:52:05 +0000
-Received: from [85.158.143.35:28168] by server-3.bemta-4.messagelabs.com id
-       37/81-01511-45A09105; Wed, 01 Aug 2012 10:52:04 +0000
-X-Env-Sender: konrad.wilk@oracle.com
-X-Msg-Ref: server-10.tower-21.messagelabs.com!1343818318!10339443!1
-X-Originating-IP: [141.146.126.227]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogMTQxLjE0Ni4xMjYuMjI3ID0+IDY3MjQwNA==\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.2; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 3434 invoked from network); 1 Aug 2012 10:51:59 -0000
-Received: from acsinet15.oracle.com (HELO acsinet15.oracle.com)
-       (141.146.126.227)
-       by server-10.tower-21.messagelabs.com with DHE-RSA-AES256-SHA encrypted
-       SMTP; 1 Aug 2012 10:51:59 -0000
-Received: from ucsinet21.oracle.com (ucsinet21.oracle.com [156.151.31.93])
-       by acsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
-       ESMTP id q71Apesm023175
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
-       Wed, 1 Aug 2012 10:51:41 GMT
-Received: from acsmt357.oracle.com (acsmt357.oracle.com [141.146.40.157])
-       by ucsinet21.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
-       q71Apdxq023155
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
-       Wed, 1 Aug 2012 10:51:39 GMT
-Received: from abhmt109.oracle.com (abhmt109.oracle.com [141.146.116.61])
-       by acsmt357.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
-       q71Apctr008462; Wed, 1 Aug 2012 05:51:38 -0500
-Received: from phenom.dumpdata.com (/209.6.85.33)
-       by default (Oracle Beehive Gateway v4.0)
-       with ESMTP ; Wed, 01 Aug 2012 03:51:38 -0700
-Received: by phenom.dumpdata.com (Postfix, from userid 1000)
-       id 62F2F402B2; Wed,  1 Aug 2012 06:42:37 -0400 (EDT)
-Date: Wed, 1 Aug 2012 06:42:37 -0400
-From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-Message-ID: <20120801104237.GB7227@phenom.dumpdata.com>
-References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
-       <1343316846-25860-1-git-send-email-stefano.stabellini@eu.citrix.com>
-       <20120726163020.GB9222@phenom.dumpdata.com>
-       <alpine.DEB.2.02.1207271246080.26163@kaball.uk.xensource.com>
-MIME-Version: 1.0
-Content-Disposition: inline
-In-Reply-To: <alpine.DEB.2.02.1207271246080.26163@kaball.uk.xensource.com>
-User-Agent: Mutt/1.5.21 (2010-09-15)
-X-Source-IP: ucsinet21.oracle.com [156.151.31.93]
-Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
-       "linaro-dev@lists.linaro.org" <linaro-dev@lists.linaro.org>,
-       Ian Campbell <Ian.Campbell@citrix.com>, "arnd@arndb.de" <arnd@arndb.de>,
-       "catalin.marinas@arm.com" <catalin.marinas@arm.com>,
-       "Tim \(Xen.org\)" <tim@xen.org>,
-       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
-       "linux-arm-kernel@lists.infradead.org"
-       <linux-arm-kernel@lists.infradead.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 01/24] arm: initial Xen support
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-> > > +struct pvclock_wall_clock {
-> > > +        u32   version;
-> > > +        u32   sec;
-> > > +        u32   nsec;
-> > > +} __attribute__((__packed__));
-> > 
-> > That is weird. It is 4+4+4 = 12 bytes? Don't you want it to be 16 bytes?
-> 
-> I agree that 16 bytes would be a better choice, but it needs to match
-> the struct in Xen that is defined as follow:
-> 
->     uint32_t wc_version;      /* Version counter: see vcpu_time_info_t. */
->     uint32_t wc_sec;          /* Secs  00:00:00 UTC, Jan 1, 1970.  */
->     uint32_t wc_nsec;         /* Nsecs 00:00:00 UTC, Jan 1, 1970.  */
-
-Would it make sense to add some paddigin then at least? In both
-cases? Or is it too late for this?
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<20120801111937.4c9b3702@mantra.us.oracle.com> b/test/corpus/<20120801111937.4c9b3702@mantra.us.oracle.com>
deleted file mode 100644 (file)
index 53f11ea..0000000
+++ /dev/null
@@ -1,131 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Aug 01 19:25:04 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 01 Aug 2012 19:25:04 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SwdbS-0007kc-K9
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 01 Aug 2012 19:25:04 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SwdWq-0005xL-CI; Wed, 01 Aug 2012 18:20:16 +0000
-Received: from mail27.messagelabs.com ([193.109.254.147])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <mukesh.rathor@oracle.com>) id 1SwdWo-0005xD-KI
-       for xen-devel@lists.xensource.com; Wed, 01 Aug 2012 18:20:14 +0000
-X-Env-Sender: mukesh.rathor@oracle.com
-X-Msg-Ref: server-9.tower-27.messagelabs.com!1343845207!10808582!1
-X-Originating-IP: [148.87.113.117]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogMTQ4Ljg3LjExMy4xMTcgPT4gNjY5Nzc4\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.2; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 12476 invoked from network); 1 Aug 2012 18:20:08 -0000
-Received: from rcsinet15.oracle.com (HELO rcsinet15.oracle.com)
-       (148.87.113.117)
-       by server-9.tower-27.messagelabs.com with DHE-RSA-AES256-SHA encrypted
-       SMTP; 1 Aug 2012 18:20:08 -0000
-Received: from ucsinet22.oracle.com (ucsinet22.oracle.com [156.151.31.94])
-       by rcsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
-       ESMTP id q71IJhQC019868
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
-       Wed, 1 Aug 2012 18:19:44 GMT
-Received: from acsmt357.oracle.com (acsmt357.oracle.com [141.146.40.157])
-       by ucsinet22.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
-       q71IJfGT024842
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
-       Wed, 1 Aug 2012 18:19:42 GMT
-Received: from abhmt120.oracle.com (abhmt120.oracle.com [141.146.116.72])
-       by acsmt357.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
-       q71IJek5007626; Wed, 1 Aug 2012 13:19:41 -0500
-Received: from mantra.us.oracle.com (/130.35.68.95)
-       by default (Oracle Beehive Gateway v4.0)
-       with ESMTP ; Wed, 01 Aug 2012 11:19:40 -0700
-Date: Wed, 1 Aug 2012 11:19:37 -0700
-From: Mukesh Rathor <mukesh.rathor@oracle.com>
-To: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-Message-ID: <20120801111937.4c9b3702@mantra.us.oracle.com>
-In-Reply-To: <20120801145215.GP7227@phenom.dumpdata.com>
-References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
-       <1343316846-25860-20-git-send-email-stefano.stabellini@eu.citrix.com>
-       <20120801145215.GP7227@phenom.dumpdata.com>
-Organization: Oracle Corporation
-X-Mailer: Claws Mail 3.7.6 (GTK+ 2.18.9; x86_64-redhat-linux-gnu)
-Mime-Version: 1.0
-X-Source-IP: ucsinet22.oracle.com [156.151.31.94]
-Cc: xen-devel@lists.xensource.com, linaro-dev@lists.linaro.org,
-       Ian.Campbell@citrix.com, arnd@arndb.de,
-       Stefano Stabellini <stefano.stabellini@eu.citrix.com>,
-       catalin.marinas@arm.com, tim@xen.org, linux-kernel@vger.kernel.org,
-       linux-arm-kernel@lists.infradead.org
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 20/24] xen: update xen_add_to_physmap
-       interface
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Wed, 1 Aug 2012 10:52:15 -0400
-Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> wrote:
-
-> On Thu, Jul 26, 2012 at 04:34:02PM +0100, Stefano Stabellini wrote:
-> > Update struct xen_add_to_physmap to be in sync with Xen's version
-> > of the structure.
-> > The size field was introduced by:
-> > 
-> > changeset:   24164:707d27fe03e7
-> > user:        Jean Guyader <jean.guyader@eu.citrix.com>
-> > date:        Fri Nov 18 13:42:08 2011 +0000
-> > summary:     mm: New XENMEM space, XENMAPSPACE_gmfn_range
-> > 
-> > According to the comment:
-> > 
-> > "This new field .size is located in the 16 bits padding
-> > between .domid and .space in struct xen_add_to_physmap to stay
-> > compatible with older versions."
-> > 
-> > This is not true on ARM where there is not padding, but it is valid
-> > on X86, so introducing size is safe on X86 and it is going to fix
-> > the interace for ARM.
-> 
-> Has this been checked actually for backwards compatibility? It sounds
-> like it should work just fine with Xen 4.0 right?
-> 
-> I believe this also helps Mukesh's patches, so CC-ing him here for
-> his Ack.
-
-Yup, I already had that change in my tree.
-
-thanks,
-Mukesh
-
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<20120801141624.GD7227@phenom.dumpdata.com> b/test/corpus/<20120801141624.GD7227@phenom.dumpdata.com>
deleted file mode 100644 (file)
index 2b1bfbf..0000000
+++ /dev/null
@@ -1,178 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Aug 01 15:30:33 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 01 Aug 2012 15:30:33 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SwZwV-0006e0-1D
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 01 Aug 2012 15:30:33 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SwZs1-0001Ss-H6; Wed, 01 Aug 2012 14:25:53 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <konrad.wilk@oracle.com>) id 1SwZs0-0001Sn-Ae
-       for xen-devel@lists.xensource.com; Wed, 01 Aug 2012 14:25:52 +0000
-Received: from [85.158.143.35:9176] by server-1.bemta-4.messagelabs.com id
-       33/E6-24392-F6C39105; Wed, 01 Aug 2012 14:25:51 +0000
-X-Env-Sender: konrad.wilk@oracle.com
-X-Msg-Ref: server-11.tower-21.messagelabs.com!1343831148!12812735!1
-X-Originating-IP: [141.146.126.227]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogMTQxLjE0Ni4xMjYuMjI3ID0+IDY3MjQwNA==\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.2; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 22000 invoked from network); 1 Aug 2012 14:25:50 -0000
-Received: from acsinet15.oracle.com (HELO acsinet15.oracle.com)
-       (141.146.126.227)
-       by server-11.tower-21.messagelabs.com with DHE-RSA-AES256-SHA encrypted
-       SMTP; 1 Aug 2012 14:25:50 -0000
-Received: from acsinet21.oracle.com (acsinet21.oracle.com [141.146.126.237])
-       by acsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
-       ESMTP id q71EPRHw008943
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
-       Wed, 1 Aug 2012 14:25:28 GMT
-Received: from acsmt357.oracle.com (acsmt357.oracle.com [141.146.40.157])
-       by acsinet21.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
-       q71EPQRG016287
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
-       Wed, 1 Aug 2012 14:25:26 GMT
-Received: from abhmt114.oracle.com (abhmt114.oracle.com [141.146.116.66])
-       by acsmt357.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
-       q71EPPOg024152; Wed, 1 Aug 2012 09:25:25 -0500
-Received: from phenom.dumpdata.com (/209.6.85.33)
-       by default (Oracle Beehive Gateway v4.0)
-       with ESMTP ; Wed, 01 Aug 2012 07:25:25 -0700
-Received: by phenom.dumpdata.com (Postfix, from userid 1000)
-       id 65E20402B2; Wed,  1 Aug 2012 10:16:24 -0400 (EDT)
-Date: Wed, 1 Aug 2012 10:16:24 -0400
-From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-Message-ID: <20120801141624.GD7227@phenom.dumpdata.com>
-References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
-       <1343316846-25860-5-git-send-email-stefano.stabellini@eu.citrix.com>
-MIME-Version: 1.0
-Content-Disposition: inline
-In-Reply-To: <1343316846-25860-5-git-send-email-stefano.stabellini@eu.citrix.com>
-User-Agent: Mutt/1.5.21 (2010-09-15)
-X-Source-IP: acsinet21.oracle.com [141.146.126.237]
-Cc: xen-devel@lists.xensource.com, linaro-dev@lists.linaro.org,
-       Ian.Campbell@citrix.com, arnd@arndb.de, catalin.marinas@arm.com,
-       tim@xen.org, linux-kernel@vger.kernel.org,
-       linux-arm-kernel@lists.infradead.org
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 05/24] xen/arm: empty implementation of
- grant_table arch specific functions
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Thu, Jul 26, 2012 at 04:33:47PM +0100, Stefano Stabellini wrote:
-> Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-> ---
->  arch/arm/xen/Makefile      |    2 +-
->  arch/arm/xen/grant-table.c |   53 ++++++++++++++++++++++++++++++++++++++++++++
->  2 files changed, 54 insertions(+), 1 deletions(-)
->  create mode 100644 arch/arm/xen/grant-table.c
-> 
-> diff --git a/arch/arm/xen/Makefile b/arch/arm/xen/Makefile
-> index b9d6acc..4384103 100644
-> --- a/arch/arm/xen/Makefile
-> +++ b/arch/arm/xen/Makefile
-> @@ -1 +1 @@
-> -obj-y               := enlighten.o hypercall.o
-> +obj-y               := enlighten.o hypercall.o grant-table.o
-> diff --git a/arch/arm/xen/grant-table.c b/arch/arm/xen/grant-table.c
-> new file mode 100644
-> index 0000000..0a4ee80
-> --- /dev/null
-> +++ b/arch/arm/xen/grant-table.c
-> @@ -0,0 +1,53 @@
-> +/******************************************************************************
-> + * grant_table.c
-> + * ARM specific part
-> + *
-> + * Granting foreign access to our memory reservation.
-> + *
-> + * This program is free software; you can redistribute it and/or
-> + * modify it under the terms of the GNU General Public License version 2
-> + * as published by the Free Software Foundation; or, when distributed
-> + * separately from the Linux kernel or incorporated into other
-> + * software packages, subject to the following license:
-> + *
-> + * Permission is hereby granted, free of charge, to any person obtaining a copy
-> + * of this source file (the "Software"), to deal in the Software without
-> + * restriction, including without limitation the rights to use, copy, modify,
-> + * merge, publish, distribute, sublicense, and/or sell copies of the Software,
-> + * and to permit persons to whom the Software is furnished to do so, subject to
-> + * the following conditions:
-> + *
-> + * The above copyright notice and this permission notice shall be included in
-> + * all copies or substantial portions of the Software.
-> + *
-> + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-> + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-> + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-> + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-> + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-> + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
-> + * IN THE SOFTWARE.
-> + */
-> +
-> +#include <xen/interface/xen.h>
-> +#include <xen/page.h>
-> +#include <xen/grant_table.h>
-> +
-> +int arch_gnttab_map_shared(unsigned long *frames, unsigned long nr_gframes,
-> +                       unsigned long max_nr_gframes,
-> +                       void **__shared)
-> +{
-> +    return -1;
-
--ENOSYS
-> +}
-> +
-> +void arch_gnttab_unmap(void *shared, unsigned long nr_gframes)
-> +{
-> +    return;
-> +}
-> +
-> +int arch_gnttab_map_status(uint64_t *frames, unsigned long nr_gframes,
-> +                       unsigned long max_nr_gframes,
-> +                       grant_status_t **__shared)
-> +{
-> +    return -1;
-
-Same here -ENOSYS
-> +}
-> -- 
-> 1.7.2.5
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<20120801141959.GE7227@phenom.dumpdata.com> b/test/corpus/<20120801141959.GE7227@phenom.dumpdata.com>
deleted file mode 100644 (file)
index 3171e27..0000000
+++ /dev/null
@@ -1,195 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Aug 01 15:33:42 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 01 Aug 2012 15:33:42 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SwZzV-0006fO-8D
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 01 Aug 2012 15:33:42 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SwZvV-0001ZJ-4p; Wed, 01 Aug 2012 14:29:29 +0000
-Received: from mail27.messagelabs.com ([193.109.254.147])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <konrad.wilk@oracle.com>) id 1SwZvT-0001Z3-C3
-       for xen-devel@lists.xensource.com; Wed, 01 Aug 2012 14:29:27 +0000
-X-Env-Sender: konrad.wilk@oracle.com
-X-Msg-Ref: server-11.tower-27.messagelabs.com!1343831359!1851647!1
-X-Originating-IP: [148.87.113.117]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogMTQ4Ljg3LjExMy4xMTcgPT4gNjY5Nzc4\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.2; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 25651 invoked from network); 1 Aug 2012 14:29:21 -0000
-Received: from rcsinet15.oracle.com (HELO rcsinet15.oracle.com)
-       (148.87.113.117)
-       by server-11.tower-27.messagelabs.com with DHE-RSA-AES256-SHA encrypted
-       SMTP; 1 Aug 2012 14:29:21 -0000
-Received: from acsinet22.oracle.com (acsinet22.oracle.com [141.146.126.238])
-       by rcsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
-       ESMTP id q71ET0e1011727
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
-       Wed, 1 Aug 2012 14:29:01 GMT
-Received: from acsmt357.oracle.com (acsmt357.oracle.com [141.146.40.157])
-       by acsinet22.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
-       q71ET0pX020827
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
-       Wed, 1 Aug 2012 14:29:00 GMT
-Received: from abhmt113.oracle.com (abhmt113.oracle.com [141.146.116.65])
-       by acsmt357.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
-       q71ESxbh026972; Wed, 1 Aug 2012 09:28:59 -0500
-Received: from phenom.dumpdata.com (/209.6.85.33)
-       by default (Oracle Beehive Gateway v4.0)
-       with ESMTP ; Wed, 01 Aug 2012 07:28:59 -0700
-Received: by phenom.dumpdata.com (Postfix, from userid 1000)
-       id 1E423402B2; Wed,  1 Aug 2012 10:19:59 -0400 (EDT)
-Date: Wed, 1 Aug 2012 10:19:59 -0400
-From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-Message-ID: <20120801141959.GE7227@phenom.dumpdata.com>
-References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
-       <1343316846-25860-7-git-send-email-stefano.stabellini@eu.citrix.com>
-MIME-Version: 1.0
-Content-Disposition: inline
-In-Reply-To: <1343316846-25860-7-git-send-email-stefano.stabellini@eu.citrix.com>
-User-Agent: Mutt/1.5.21 (2010-09-15)
-X-Source-IP: acsinet22.oracle.com [141.146.126.238]
-Cc: xen-devel@lists.xensource.com, linaro-dev@lists.linaro.org,
-       Ian.Campbell@citrix.com, arnd@arndb.de, catalin.marinas@arm.com,
-       tim@xen.org, linux-kernel@vger.kernel.org,
-       linux-arm-kernel@lists.infradead.org
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 07/24] xen/arm: Xen detection and
-       shared_info page mapping
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Thu, Jul 26, 2012 at 04:33:49PM +0100, Stefano Stabellini wrote:
-> Check for a "/xen" node in the device tree, if it is present set
-> xen_domain_type to XEN_HVM_DOMAIN and continue initialization.
-> 
-> Map the real shared info page using XENMEM_add_to_physmap with
-> XENMAPSPACE_shared_info.
-> 
-> Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-> ---
->  arch/arm/xen/enlighten.c |   56 ++++++++++++++++++++++++++++++++++++++++++++++
->  1 files changed, 56 insertions(+), 0 deletions(-)
-> 
-> diff --git a/arch/arm/xen/enlighten.c b/arch/arm/xen/enlighten.c
-> index d27c2a6..8c923af 100644
-> --- a/arch/arm/xen/enlighten.c
-> +++ b/arch/arm/xen/enlighten.c
-> @@ -5,6 +5,9 @@
->  #include <asm/xen/hypervisor.h>
->  #include <asm/xen/hypercall.h>
->  #include <linux/module.h>
-> +#include <linux/of.h>
-> +#include <linux/of_irq.h>
-> +#include <linux/of_address.h>
->  
->  struct start_info _xen_start_info;
->  struct start_info *xen_start_info = &_xen_start_info;
-> @@ -33,3 +36,56 @@ int xen_remap_domain_mfn_range(struct vm_area_struct *vma,
->      return -ENOSYS;
->  }
->  EXPORT_SYMBOL_GPL(xen_remap_domain_mfn_range);
-> +
-> +/*
-> + * == Xen Device Tree format ==
-> + * - /xen node;
-> + * - compatible "arm,xen";
-> + * - one interrupt for Xen event notifications;
-> + * - one memory region to map the grant_table.
-> + */
-> +static int __init xen_guest_init(void)
-> +{
-> +    int cpu;
-> +    struct xen_add_to_physmap xatp;
-> +    static struct shared_info *shared_info_page = 0;
-> +    struct device_node *node;
-> +
-> +    node = of_find_compatible_node(NULL, NULL, "arm,xen");
-> +    if (!node) {
-> +            pr_info("No Xen support\n");
-
-I don't think the pr_info is appropiate here?
-> +            return 0;
-
-Should this be -ENODEV?
-
-> +    }
-> +    xen_domain_type = XEN_HVM_DOMAIN;
-> +
-> +    if (!shared_info_page)
-> +            shared_info_page = (struct shared_info *)
-> +                    get_zeroed_page(GFP_KERNEL);
-> +    if (!shared_info_page) {
-> +            pr_err("not enough memory");
-
-\n
-
-> +            return -ENOMEM;
-> +    }
-> +    xatp.domid = DOMID_SELF;
-> +    xatp.idx = 0;
-> +    xatp.space = XENMAPSPACE_shared_info;
-> +    xatp.gpfn = __pa(shared_info_page) >> PAGE_SHIFT;
-> +    if (HYPERVISOR_memory_op(XENMEM_add_to_physmap, &xatp))
-> +            BUG();
-> +
-> +    HYPERVISOR_shared_info = (struct shared_info *)shared_info_page;
-> +
-> +    /* xen_vcpu is a pointer to the vcpu_info struct in the shared_info
-> +     * page, we use it in the event channel upcall and in some pvclock
-> +     * related functions. We don't need the vcpu_info placement
-> +     * optimizations because we don't use any pv_mmu or pv_irq op on
-> +     * HVM.
-> +     * When xen_hvm_init_shared_info is run at boot time only vcpu 0 is
-> +     * online but xen_hvm_init_shared_info is run at resume time too and
-> +     * in that case multiple vcpus might be online. */
-> +    for_each_online_cpu(cpu) {
-> +            per_cpu(xen_vcpu, cpu) =
-> +                    &HYPERVISOR_shared_info->vcpu_info[cpu];
-> +    }
-> +    return 0;
-
-This above looks stringly similar to the x86 one. Could it be
-abstracted away to share the same code? Or is that something that
-ought to be done later on when there is more meat on the bone?
-
-
-> +}
-> +core_initcall(xen_guest_init);
-> -- 
-> 1.7.2.5
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<20120801142249.GF7227@phenom.dumpdata.com> b/test/corpus/<20120801142249.GF7227@phenom.dumpdata.com>
deleted file mode 100644 (file)
index 2b1d651..0000000
+++ /dev/null
@@ -1,301 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Aug 01 15:36:59 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 01 Aug 2012 15:36:59 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1Swa2f-0006gL-Ju
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 01 Aug 2012 15:36:59 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SwZyF-0001hS-NG; Wed, 01 Aug 2012 14:32:19 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <konrad.wilk@oracle.com>) id 1SwZyD-0001hL-7R
-       for xen-devel@lists.xensource.com; Wed, 01 Aug 2012 14:32:17 +0000
-Received: from [85.158.138.51:46597] by server-7.bemta-3.messagelabs.com id
-       93/3F-21158-0FD39105; Wed, 01 Aug 2012 14:32:16 +0000
-X-Env-Sender: konrad.wilk@oracle.com
-X-Msg-Ref: server-4.tower-174.messagelabs.com!1343831533!29881756!1
-X-Originating-IP: [148.87.113.117]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogMTQ4Ljg3LjExMy4xMTcgPT4gNjY5Nzc4\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.2; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 14960 invoked from network); 1 Aug 2012 14:32:15 -0000
-Received: from rcsinet15.oracle.com (HELO rcsinet15.oracle.com)
-       (148.87.113.117)
-       by server-4.tower-174.messagelabs.com with DHE-RSA-AES256-SHA encrypted
-       SMTP; 1 Aug 2012 14:32:15 -0000
-Received: from ucsinet22.oracle.com (ucsinet22.oracle.com [156.151.31.94])
-       by rcsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
-       ESMTP id q71EVp72015431
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
-       Wed, 1 Aug 2012 14:31:52 GMT
-Received: from acsmt356.oracle.com (acsmt356.oracle.com [141.146.40.156])
-       by ucsinet22.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
-       q71EVous026386
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
-       Wed, 1 Aug 2012 14:31:51 GMT
-Received: from abhmt113.oracle.com (abhmt113.oracle.com [141.146.116.65])
-       by acsmt356.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
-       q71EVo8L007520; Wed, 1 Aug 2012 09:31:50 -0500
-Received: from phenom.dumpdata.com (/209.6.85.33)
-       by default (Oracle Beehive Gateway v4.0)
-       with ESMTP ; Wed, 01 Aug 2012 07:31:50 -0700
-Received: by phenom.dumpdata.com (Postfix, from userid 1000)
-       id 6BE6E402B2; Wed,  1 Aug 2012 10:22:49 -0400 (EDT)
-Date: Wed, 1 Aug 2012 10:22:49 -0400
-From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-Message-ID: <20120801142249.GF7227@phenom.dumpdata.com>
-References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
-       <1343316846-25860-8-git-send-email-stefano.stabellini@eu.citrix.com>
-MIME-Version: 1.0
-Content-Disposition: inline
-In-Reply-To: <1343316846-25860-8-git-send-email-stefano.stabellini@eu.citrix.com>
-User-Agent: Mutt/1.5.21 (2010-09-15)
-X-Source-IP: ucsinet22.oracle.com [156.151.31.94]
-Cc: xen-devel@lists.xensource.com, linaro-dev@lists.linaro.org,
-       Ian.Campbell@citrix.com, arnd@arndb.de, catalin.marinas@arm.com,
-       tim@xen.org, linux-kernel@vger.kernel.org,
-       linux-arm-kernel@lists.infradead.org
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 08/24] xen/arm: Introduce xen_pfn_t for pfn
-       and mfn types
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Thu, Jul 26, 2012 at 04:33:50PM +0100, Stefano Stabellini wrote:
-> All the original Xen headers have xen_pfn_t as mfn and pfn type, however
-> when they have been imported in Linux, xen_pfn_t has been replaced with
-> unsigned long. That might work for x86 and ia64 but it does not for arm.
-
-How come?
-> Bring back xen_pfn_t and let each architecture define xen_pfn_t as they
-> see fit.
-
-I am OK with this as long as your include a comment in both of the
-interface.h saying why this is needed. I am curious why 'unsinged long'
-won't work? Is it b/c on ARM you always want a 64-bit type?
-
-> 
-> Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-> ---
->  arch/arm/include/asm/xen/interface.h  |    2 ++
->  arch/ia64/include/asm/xen/interface.h |    2 +-
->  arch/x86/include/asm/xen/interface.h  |    2 ++
->  include/xen/interface/grant_table.h   |    4 ++--
->  include/xen/interface/memory.h        |    6 +++---
->  include/xen/interface/platform.h      |    4 ++--
->  include/xen/interface/xen.h           |    6 +++---
->  include/xen/privcmd.h                 |    2 --
->  8 files changed, 15 insertions(+), 13 deletions(-)
-> 
-> diff --git a/arch/arm/include/asm/xen/interface.h b/arch/arm/include/asm/xen/interface.h
-> index 6c3ab59..76b1ebe 100644
-> --- a/arch/arm/include/asm/xen/interface.h
-> +++ b/arch/arm/include/asm/xen/interface.h
-> @@ -25,6 +25,7 @@
->      } while (0)
->  
->  #ifndef __ASSEMBLY__
-> +typedef uint64_t xen_pfn_t;
->  /* Guest handles for primitive C types. */
->  __DEFINE_GUEST_HANDLE(uchar, unsigned char);
->  __DEFINE_GUEST_HANDLE(uint,  unsigned int);
-> @@ -35,6 +36,7 @@ DEFINE_GUEST_HANDLE(long);
->  DEFINE_GUEST_HANDLE(void);
->  DEFINE_GUEST_HANDLE(uint64_t);
->  DEFINE_GUEST_HANDLE(uint32_t);
-> +DEFINE_GUEST_HANDLE(xen_pfn_t);
->  
->  /* Maximum number of virtual CPUs in multi-processor guests. */
->  #define MAX_VIRT_CPUS 1
-> diff --git a/arch/ia64/include/asm/xen/interface.h b/arch/ia64/include/asm/xen/interface.h
-> index 09d5f7f..9efa068 100644
-> --- a/arch/ia64/include/asm/xen/interface.h
-> +++ b/arch/ia64/include/asm/xen/interface.h
-> @@ -67,6 +67,7 @@
->  #define set_xen_guest_handle(hnd, val)      do { (hnd).p = val; } while (0)
->  
->  #ifndef __ASSEMBLY__
-> +typedef unsigned long xen_pfn_t;
->  /* Guest handles for primitive C types. */
->  __DEFINE_GUEST_HANDLE(uchar, unsigned char);
->  __DEFINE_GUEST_HANDLE(uint, unsigned int);
-> @@ -79,7 +80,6 @@ DEFINE_GUEST_HANDLE(void);
->  DEFINE_GUEST_HANDLE(uint64_t);
->  DEFINE_GUEST_HANDLE(uint32_t);
->  
-> -typedef unsigned long xen_pfn_t;
->  DEFINE_GUEST_HANDLE(xen_pfn_t);
->  #define PRI_xen_pfn "lx"
->  #endif
-> diff --git a/arch/x86/include/asm/xen/interface.h b/arch/x86/include/asm/xen/interface.h
-> index cbf0c9d..24c1b07 100644
-> --- a/arch/x86/include/asm/xen/interface.h
-> +++ b/arch/x86/include/asm/xen/interface.h
-> @@ -47,6 +47,7 @@
->  #endif
->  
->  #ifndef __ASSEMBLY__
-> +typedef unsigned long xen_pfn_t;
->  /* Guest handles for primitive C types. */
->  __DEFINE_GUEST_HANDLE(uchar, unsigned char);
->  __DEFINE_GUEST_HANDLE(uint,  unsigned int);
-> @@ -57,6 +58,7 @@ DEFINE_GUEST_HANDLE(long);
->  DEFINE_GUEST_HANDLE(void);
->  DEFINE_GUEST_HANDLE(uint64_t);
->  DEFINE_GUEST_HANDLE(uint32_t);
-> +DEFINE_GUEST_HANDLE(xen_pfn_t);
->  #endif
->  
->  #ifndef HYPERVISOR_VIRT_START
-> diff --git a/include/xen/interface/grant_table.h b/include/xen/interface/grant_table.h
-> index a17d844..7da811b 100644
-> --- a/include/xen/interface/grant_table.h
-> +++ b/include/xen/interface/grant_table.h
-> @@ -338,7 +338,7 @@ DEFINE_GUEST_HANDLE_STRUCT(gnttab_dump_table);
->  #define GNTTABOP_transfer                4
->  struct gnttab_transfer {
->      /* IN parameters. */
-> -    unsigned long mfn;
-> +    xen_pfn_t mfn;
->      domid_t       domid;
->      grant_ref_t   ref;
->      /* OUT parameters. */
-> @@ -375,7 +375,7 @@ struct gnttab_copy {
->      struct {
->              union {
->                      grant_ref_t ref;
-> -                    unsigned long   gmfn;
-> +                    xen_pfn_t   gmfn;
->              } u;
->              domid_t  domid;
->              uint16_t offset;
-> diff --git a/include/xen/interface/memory.h b/include/xen/interface/memory.h
-> index eac3ce1..abbbff0 100644
-> --- a/include/xen/interface/memory.h
-> +++ b/include/xen/interface/memory.h
-> @@ -31,7 +31,7 @@ struct xen_memory_reservation {
->       *   OUT: GMFN bases of extents that were allocated
->       *   (NB. This command also updates the mach_to_phys translation table)
->       */
-> -    GUEST_HANDLE(ulong) extent_start;
-> +    GUEST_HANDLE(xen_pfn_t) extent_start;
->  
->      /* Number of extents, and size/alignment of each (2^extent_order pages). */
->      unsigned long  nr_extents;
-> @@ -130,7 +130,7 @@ struct xen_machphys_mfn_list {
->       * any large discontiguities in the machine address space, 2MB gaps in
->       * the machphys table will be represented by an MFN base of zero.
->       */
-> -    GUEST_HANDLE(ulong) extent_start;
-> +    GUEST_HANDLE(xen_pfn_t) extent_start;
->  
->      /*
->       * Number of extents written to the above array. This will be smaller
-> @@ -172,7 +172,7 @@ struct xen_add_to_physmap {
->      unsigned long idx;
->  
->      /* GPFN where the source mapping page should appear. */
-> -    unsigned long gpfn;
-> +    xen_pfn_t gpfn;
->  };
->  DEFINE_GUEST_HANDLE_STRUCT(xen_add_to_physmap);
->  
-> diff --git a/include/xen/interface/platform.h b/include/xen/interface/platform.h
-> index 486653f..0bea470 100644
-> --- a/include/xen/interface/platform.h
-> +++ b/include/xen/interface/platform.h
-> @@ -54,7 +54,7 @@ DEFINE_GUEST_HANDLE_STRUCT(xenpf_settime_t);
->  #define XENPF_add_memtype         31
->  struct xenpf_add_memtype {
->      /* IN variables. */
-> -    unsigned long mfn;
-> +    xen_pfn_t mfn;
->      uint64_t nr_mfns;
->      uint32_t type;
->      /* OUT variables. */
-> @@ -84,7 +84,7 @@ struct xenpf_read_memtype {
->      /* IN variables. */
->      uint32_t reg;
->      /* OUT variables. */
-> -    unsigned long mfn;
-> +    xen_pfn_t mfn;
->      uint64_t nr_mfns;
->      uint32_t type;
->  };
-> diff --git a/include/xen/interface/xen.h b/include/xen/interface/xen.h
-> index 4f29f33..d59a991 100644
-> --- a/include/xen/interface/xen.h
-> +++ b/include/xen/interface/xen.h
-> @@ -192,7 +192,7 @@ struct mmuext_op {
->      unsigned int cmd;
->      union {
->              /* [UN]PIN_TABLE, NEW_BASEPTR, NEW_USER_BASEPTR */
-> -            unsigned long mfn;
-> +            xen_pfn_t mfn;
->              /* INVLPG_LOCAL, INVLPG_ALL, SET_LDT */
->              unsigned long linear_addr;
->      } arg1;
-> @@ -432,11 +432,11 @@ struct start_info {
->      unsigned long nr_pages;     /* Total pages allocated to this domain.  */
->      unsigned long shared_info;  /* MACHINE address of shared info struct. */
->      uint32_t flags;             /* SIF_xxx flags.                         */
-> -    unsigned long store_mfn;    /* MACHINE page number of shared page.    */
-> +    xen_pfn_t store_mfn;        /* MACHINE page number of shared page.    */
->      uint32_t store_evtchn;      /* Event channel for store communication. */
->      union {
->              struct {
-> -                    unsigned long mfn;  /* MACHINE page number of console page.   */
-> +                    xen_pfn_t mfn;      /* MACHINE page number of console page.   */
->                      uint32_t  evtchn;   /* Event channel for console page.        */
->              } domU;
->              struct {
-> diff --git a/include/xen/privcmd.h b/include/xen/privcmd.h
-> index 4d58881..45c1aa1 100644
-> --- a/include/xen/privcmd.h
-> +++ b/include/xen/privcmd.h
-> @@ -37,8 +37,6 @@
->  #include <linux/compiler.h>
->  #include <xen/interface/xen.h>
->  
-> -typedef unsigned long xen_pfn_t;
-> -
->  struct privcmd_hypercall {
->      __u64 op;
->      __u64 arg[5];
-> -- 
-> 1.7.2.5
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<20120801142840.GG7227@phenom.dumpdata.com> b/test/corpus/<20120801142840.GG7227@phenom.dumpdata.com>
deleted file mode 100644 (file)
index 88fba59..0000000
+++ /dev/null
@@ -1,208 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Aug 01 15:42:37 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 01 Aug 2012 15:42:37 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1Swa88-0006he-JQ
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 01 Aug 2012 15:42:37 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1Swa3m-0001vy-GR; Wed, 01 Aug 2012 14:38:02 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <konrad.wilk@oracle.com>) id 1Swa3j-0001vr-UR
-       for xen-devel@lists.xensource.com; Wed, 01 Aug 2012 14:38:00 +0000
-Received: from [85.158.139.83:36407] by server-3.bemta-5.messagelabs.com id
-       38/CB-03367-74F39105; Wed, 01 Aug 2012 14:37:59 +0000
-X-Env-Sender: konrad.wilk@oracle.com
-X-Msg-Ref: server-6.tower-182.messagelabs.com!1343831877!25893629!1
-X-Originating-IP: [148.87.113.117]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogMTQ4Ljg3LjExMy4xMTcgPT4gNjY5Nzc4\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.2; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 20430 invoked from network); 1 Aug 2012 14:37:58 -0000
-Received: from rcsinet15.oracle.com (HELO rcsinet15.oracle.com)
-       (148.87.113.117)
-       by server-6.tower-182.messagelabs.com with DHE-RSA-AES256-SHA encrypted
-       SMTP; 1 Aug 2012 14:37:58 -0000
-Received: from ucsinet21.oracle.com (ucsinet21.oracle.com [156.151.31.93])
-       by rcsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
-       ESMTP id q71EbhnX022791
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
-       Wed, 1 Aug 2012 14:37:43 GMT
-Received: from acsmt356.oracle.com (acsmt356.oracle.com [141.146.40.156])
-       by ucsinet21.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
-       q71Ebf7p021378
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
-       Wed, 1 Aug 2012 14:37:42 GMT
-Received: from abhmt114.oracle.com (abhmt114.oracle.com [141.146.116.66])
-       by acsmt356.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
-       q71Ebfe4012623; Wed, 1 Aug 2012 09:37:41 -0500
-Received: from phenom.dumpdata.com (/209.6.85.33)
-       by default (Oracle Beehive Gateway v4.0)
-       with ESMTP ; Wed, 01 Aug 2012 07:37:41 -0700
-Received: by phenom.dumpdata.com (Postfix, from userid 1000)
-       id 5D5AF402B2; Wed,  1 Aug 2012 10:28:40 -0400 (EDT)
-Date: Wed, 1 Aug 2012 10:28:40 -0400
-From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-Message-ID: <20120801142840.GG7227@phenom.dumpdata.com>
-References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
-       <1343316846-25860-9-git-send-email-stefano.stabellini@eu.citrix.com>
-MIME-Version: 1.0
-Content-Disposition: inline
-In-Reply-To: <1343316846-25860-9-git-send-email-stefano.stabellini@eu.citrix.com>
-User-Agent: Mutt/1.5.21 (2010-09-15)
-X-Source-IP: ucsinet21.oracle.com [156.151.31.93]
-Cc: xen-devel@lists.xensource.com, linaro-dev@lists.linaro.org,
-       Ian.Campbell@citrix.com, arnd@arndb.de, catalin.marinas@arm.com,
-       tim@xen.org, linux-kernel@vger.kernel.org,
-       linux-arm-kernel@lists.infradead.org
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 09/24] xen/arm: compile and run xenbus
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Thu, Jul 26, 2012 at 04:33:51PM +0100, Stefano Stabellini wrote:
-> bind_evtchn_to_irqhandler can legitimately return 0 (irq 0): it is not
-> an error.
-> 
-> If Linux is running as an HVM domain and is running as Dom0, use
-> xenstored_local_init to initialize the xenstore page and event channel.
-> 
-> Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-> ---
->  drivers/xen/xenbus/xenbus_comms.c |    2 +-
->  drivers/xen/xenbus/xenbus_probe.c |   27 +++++++++++++++++----------
->  drivers/xen/xenbus/xenbus_xs.c    |    1 +
->  3 files changed, 19 insertions(+), 11 deletions(-)
-> 
-> diff --git a/drivers/xen/xenbus/xenbus_comms.c b/drivers/xen/xenbus/xenbus_comms.c
-> index 52fe7ad..c5aa55c 100644
-> --- a/drivers/xen/xenbus/xenbus_comms.c
-> +++ b/drivers/xen/xenbus/xenbus_comms.c
-> @@ -224,7 +224,7 @@ int xb_init_comms(void)
->              int err;
->              err = bind_evtchn_to_irqhandler(xen_store_evtchn, wake_waiting,
->                                              0, "xenbus", &xb_waitq);
-> -            if (err <= 0) {
-> +            if (err < 0) {
->                      printk(KERN_ERR "XENBUS request irq failed %i\n", err);
->                      return err;
->              }
-> diff --git a/drivers/xen/xenbus/xenbus_probe.c b/drivers/xen/xenbus/xenbus_probe.c
-> index b793723..3ae47c2 100644
-> --- a/drivers/xen/xenbus/xenbus_probe.c
-> +++ b/drivers/xen/xenbus/xenbus_probe.c
-> @@ -729,16 +729,23 @@ static int __init xenbus_init(void)
->      xenbus_ring_ops_init();
->  
->      if (xen_hvm_domain()) {
-> -            uint64_t v = 0;
-> -            err = hvm_get_parameter(HVM_PARAM_STORE_EVTCHN, &v);
-> -            if (err)
-> -                    goto out_error;
-> -            xen_store_evtchn = (int)v;
-> -            err = hvm_get_parameter(HVM_PARAM_STORE_PFN, &v);
-> -            if (err)
-> -                    goto out_error;
-> -            xen_store_mfn = (unsigned long)v;
-> -            xen_store_interface = ioremap(xen_store_mfn << PAGE_SHIFT, PAGE_SIZE);
-> +            if (xen_initial_domain()) {
-> +                    err = xenstored_local_init();
-> +                    xen_store_interface =
-> +                            phys_to_virt(xen_store_mfn << PAGE_SHIFT);
-> +            } else {
-> +                    uint64_t v = 0;
-> +                    err = hvm_get_parameter(HVM_PARAM_STORE_EVTCHN, &v);
-> +                    if (err)
-> +                            goto out_error;
-> +                    xen_store_evtchn = (int)v;
-> +                    err = hvm_get_parameter(HVM_PARAM_STORE_PFN, &v);
-> +                    if (err)
-> +                            goto out_error;
-> +                    xen_store_mfn = (unsigned long)v;
-> +                    xen_store_interface =
-> +                            ioremap(xen_store_mfn << PAGE_SHIFT, PAGE_SIZE);
-> +            }
-
-This, and along with the Hybrid PV dom0 (not yet posted, but it was doing
-similar manipulation here) is getting more and more like a rat-mess.
-
-
-Any chance we can just abstract the three different XenStore access
-ways and just have something like this:
-
-       enum {
-               USE_UNKNOWN
-               USE_HVM,
-               USE_PV,
-               USE_LOCAL
-               USE_ALREADY_INIT
-       };
-       int usage = USE_UNKNOWN;
-       if (xen_pv_domain())
-               usage = USE_PV;
-       if (xen_hvm_domain())
-               usage = USE_HVM;
-       if (xen_initial_domain())
-               usage = USE_LOCAL;
-
-       if (xen_start_info->store_evtchn)
-               usage = USE_ALREADY_INIT;
-       
-       .. other overwrites..
-
-       switch (usage) {
-               .. blah blah.
-       }
-
-
->              xen_store_evtchn = xen_start_info->store_evtchn;
->              xen_store_mfn = xen_start_info->store_mfn;
-> diff --git a/drivers/xen/xenbus/xenbus_xs.c b/drivers/xen/xenbus/xenbus_xs.c
-> index d1c217b..f7feb3d 100644
-> --- a/drivers/xen/xenbus/xenbus_xs.c
-> +++ b/drivers/xen/xenbus/xenbus_xs.c
-> @@ -44,6 +44,7 @@
->  #include <linux/rwsem.h>
->  #include <linux/module.h>
->  #include <linux/mutex.h>
-> +#include <asm/xen/hypervisor.h>
->  #include <xen/xenbus.h>
->  #include <xen/xen.h>
->  #include "xenbus_comms.h"
-> -- 
-> 1.7.2.5
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<20120801143459.GH7227@phenom.dumpdata.com> b/test/corpus/<20120801143459.GH7227@phenom.dumpdata.com>
deleted file mode 100644 (file)
index 9474fee..0000000
+++ /dev/null
@@ -1,155 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Aug 01 15:48:54 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 01 Aug 2012 15:48:54 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SwaEC-0006jX-Fn
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 01 Aug 2012 15:48:54 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1Swa9u-00027A-FC; Wed, 01 Aug 2012 14:44:22 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <konrad.wilk@oracle.com>) id 1Swa9s-000275-N9
-       for xen-devel@lists.xensource.com; Wed, 01 Aug 2012 14:44:21 +0000
-Received: from [85.158.139.83:27976] by server-9.bemta-5.messagelabs.com id
-       5E/2D-01069-3C049105; Wed, 01 Aug 2012 14:44:19 +0000
-X-Env-Sender: konrad.wilk@oracle.com
-X-Msg-Ref: server-7.tower-182.messagelabs.com!1343832258!24076910!1
-X-Originating-IP: [141.146.126.227]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogMTQxLjE0Ni4xMjYuMjI3ID0+IDY3MjQwNA==\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.2; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 2944 invoked from network); 1 Aug 2012 14:44:19 -0000
-Received: from acsinet15.oracle.com (HELO acsinet15.oracle.com)
-       (141.146.126.227)
-       by server-7.tower-182.messagelabs.com with DHE-RSA-AES256-SHA encrypted
-       SMTP; 1 Aug 2012 14:44:19 -0000
-Received: from ucsinet22.oracle.com (ucsinet22.oracle.com [156.151.31.94])
-       by acsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
-       ESMTP id q71Ei3sp031394
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
-       Wed, 1 Aug 2012 14:44:04 GMT
-Received: from acsmt356.oracle.com (acsmt356.oracle.com [141.146.40.156])
-       by ucsinet22.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
-       q71Ei0K4024028
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
-       Wed, 1 Aug 2012 14:44:01 GMT
-Received: from abhmt101.oracle.com (abhmt101.oracle.com [141.146.116.53])
-       by acsmt356.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
-       q71EhxKh018218; Wed, 1 Aug 2012 09:44:00 -0500
-Received: from phenom.dumpdata.com (/209.6.85.33)
-       by default (Oracle Beehive Gateway v4.0)
-       with ESMTP ; Wed, 01 Aug 2012 07:43:59 -0700
-Received: by phenom.dumpdata.com (Postfix, from userid 1000)
-       id 1E802402B2; Wed,  1 Aug 2012 10:34:59 -0400 (EDT)
-Date: Wed, 1 Aug 2012 10:34:59 -0400
-From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-Message-ID: <20120801143459.GH7227@phenom.dumpdata.com>
-References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
-       <1343316846-25860-11-git-send-email-stefano.stabellini@eu.citrix.com>
-MIME-Version: 1.0
-Content-Disposition: inline
-In-Reply-To: <1343316846-25860-11-git-send-email-stefano.stabellini@eu.citrix.com>
-User-Agent: Mutt/1.5.21 (2010-09-15)
-X-Source-IP: ucsinet22.oracle.com [156.151.31.94]
-Cc: xen-devel@lists.xensource.com, linaro-dev@lists.linaro.org,
-       Ian.Campbell@citrix.com, arnd@arndb.de, catalin.marinas@arm.com,
-       tim@xen.org, linux-kernel@vger.kernel.org,
-       linux-arm-kernel@lists.infradead.org
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 11/24] xen/arm: introduce CONFIG_XEN on ARM
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Thu, Jul 26, 2012 at 04:33:53PM +0100, Stefano Stabellini wrote:
-> Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-> ---
->  arch/arm/Kconfig |   10 ++++++++++
->  1 files changed, 10 insertions(+), 0 deletions(-)
-> 
-> diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
-> index a91009c..9c54cb4 100644
-> --- a/arch/arm/Kconfig
-> +++ b/arch/arm/Kconfig
-> @@ -2228,6 +2228,16 @@ config NEON
->        Say Y to include support code for NEON, the ARMv7 Advanced SIMD
->        Extension.
->  
-> +config XEN_DOM0
-> +    def_bool y
-
-What is the benefit of this ? I was hoping at some point to rip out all of those
-XEN_DOM0 and just have, mostly,
-       CONFIG_XEN_BACKEND_SUPPORT
-               (which would compile whatever is needed for HVM or PV guests to run
-               blkback/netback/grant/grantalloc/etc)
-       CONFIG_XEN_FRONTEND_SUPPORT
-               (the vice-versa)
-
-       CONFIG_XEN_PCI
-               which would have the PCI support, the ACPI routing (which is
-               predomaintaly most of the dom0 support), VGA text support, and
-               whatever else is in there.
-
-In that fashion you could compile a kernel with CONFIG_XEN_BACKEND_SUPPORT
-without any CONFIG_XEN_PCI and drop it in as an HVM device driver domain.
-Thought maybe that wouldn't really work as if you do PCI passthrough to such
-domain, you are going to need the PCI support and ACPI routing. The VGA text
-maybe not...
-
-OK, never mind - we should brainstorm it and figure out how to make this
-nicely work. In the meantime this is OK.
-
-> +
-> +config XEN
-> +    bool "Xen guest support on ARM"
-> +    depends on ARM && OF
-> +    select XEN_DOM0
-> +    help
-> +      Say Y if you want to run Linux in a Virtual Machine on Xen on ARM.
-> +
->  endmenu
->  
->  menu "Userspace binary formats"
-> -- 
-> 1.7.2.5
-> 
-> 
-> _______________________________________________
-> Xen-devel mailing list
-> Xen-devel@lists.xen.org
-> http://lists.xen.org/xen-devel
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<20120801143551.GI7227@phenom.dumpdata.com> b/test/corpus/<20120801143551.GI7227@phenom.dumpdata.com>
deleted file mode 100644 (file)
index f94a616..0000000
+++ /dev/null
@@ -1,166 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Aug 01 15:48:57 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 01 Aug 2012 15:48:57 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SwaEJ-0006jv-F5
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 01 Aug 2012 15:48:57 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SwaAj-000296-TF; Wed, 01 Aug 2012 14:45:13 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <konrad.wilk@oracle.com>) id 1SwaAi-00028y-Gz
-       for xen-devel@lists.xensource.com; Wed, 01 Aug 2012 14:45:12 +0000
-Received: from [85.158.143.99:12704] by server-3.bemta-4.messagelabs.com id
-       03/D1-01511-7F049105; Wed, 01 Aug 2012 14:45:11 +0000
-X-Env-Sender: konrad.wilk@oracle.com
-X-Msg-Ref: server-11.tower-216.messagelabs.com!1343832308!22256103!1
-X-Originating-IP: [141.146.126.227]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogMTQxLjE0Ni4xMjYuMjI3ID0+IDY3MjQwNA==\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.2; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 10473 invoked from network); 1 Aug 2012 14:45:10 -0000
-Received: from acsinet15.oracle.com (HELO acsinet15.oracle.com)
-       (141.146.126.227)
-       by server-11.tower-216.messagelabs.com with DHE-RSA-AES256-SHA
-       encrypted SMTP; 1 Aug 2012 14:45:10 -0000
-Received: from acsinet21.oracle.com (acsinet21.oracle.com [141.146.126.237])
-       by acsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
-       ESMTP id q71Eirbs032142
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
-       Wed, 1 Aug 2012 14:44:54 GMT
-Received: from acsmt357.oracle.com (acsmt357.oracle.com [141.146.40.157])
-       by acsinet21.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
-       q71EiqOg023204
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
-       Wed, 1 Aug 2012 14:44:52 GMT
-Received: from abhmt117.oracle.com (abhmt117.oracle.com [141.146.116.69])
-       by acsmt357.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
-       q71EiqnZ008497; Wed, 1 Aug 2012 09:44:52 -0500
-Received: from phenom.dumpdata.com (/209.6.85.33)
-       by default (Oracle Beehive Gateway v4.0)
-       with ESMTP ; Wed, 01 Aug 2012 07:44:52 -0700
-Received: by phenom.dumpdata.com (Postfix, from userid 1000)
-       id B021B402B2; Wed,  1 Aug 2012 10:35:51 -0400 (EDT)
-Date: Wed, 1 Aug 2012 10:35:51 -0400
-From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-To: Ian Campbell <Ian.Campbell@citrix.com>
-Message-ID: <20120801143551.GI7227@phenom.dumpdata.com>
-References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
-       <1343316846-25860-4-git-send-email-stefano.stabellini@eu.citrix.com>
-       <20120726163759.GE9222@phenom.dumpdata.com>
-       <1343381305.6812.116.camel@zakaz.uk.xensource.com>
-MIME-Version: 1.0
-Content-Disposition: inline
-In-Reply-To: <1343381305.6812.116.camel@zakaz.uk.xensource.com>
-User-Agent: Mutt/1.5.21 (2010-09-15)
-X-Source-IP: acsinet21.oracle.com [141.146.126.237]
-Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
-       "linaro-dev@lists.linaro.org" <linaro-dev@lists.linaro.org>,
-       "arnd@arndb.de" <arnd@arndb.de>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>,
-       "catalin.marinas@arm.com" <catalin.marinas@arm.com>,
-       "Tim \(Xen.org\)" <tim@xen.org>,
-       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
-       "linux-arm-kernel@lists.infradead.org"
-       <linux-arm-kernel@lists.infradead.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 04/24] xen/arm: sync_bitops
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Fri, Jul 27, 2012 at 10:28:25AM +0100, Ian Campbell wrote:
-> On Thu, 2012-07-26 at 17:37 +0100, Konrad Rzeszutek Wilk wrote:
-> > On Thu, Jul 26, 2012 at 04:33:46PM +0100, Stefano Stabellini wrote:
-> > > sync_bitops functions are equivalent to the SMP implementation of the
-> > > original functions, independently from CONFIG_SMP being defined.
-> > 
-> > So why can't the code be changed to use that? Is it that
-> > the _set_bit, _clear_bit, etc are not available with !CONFIG_SMP?
-> 
-> _set_bit etc are not SMP safe if !CONFIG_SMP. But under Xen you might be
-> communicating with a completely external entity who might be on another
-> CPU (e.g. two uniprocessor guests communicating via event channels and
-> grant tables). So we need a variant of the bit ops which are SMP safe
-> even on a UP kernel.
-> 
-> The users are common code and the sync_foo vs foo distinction matters on
-> some platforms (e.g. x86 where a UP kernel would omit the LOCK prefix
-> for the normal ones).
-
-OK, that makes sense. Stefano can you include that comment in the git
-commit description and in the sync_bitops.h file please?
-> 
-> > 
-> > > 
-> > > Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-> > > ---
-> > >  arch/arm/include/asm/sync_bitops.h |   17 +++++++++++++++++
-> > >  1 files changed, 17 insertions(+), 0 deletions(-)
-> > >  create mode 100644 arch/arm/include/asm/sync_bitops.h
-> > > 
-> > > diff --git a/arch/arm/include/asm/sync_bitops.h b/arch/arm/include/asm/sync_bitops.h
-> > > new file mode 100644
-> > > index 0000000..d975092903
-> > > --- /dev/null
-> > > +++ b/arch/arm/include/asm/sync_bitops.h
-> > > @@ -0,0 +1,17 @@
-> > > +#ifndef __ASM_SYNC_BITOPS_H__
-> > > +#define __ASM_SYNC_BITOPS_H__
-> > > +
-> > > +#include <asm/bitops.h>
-> > > +#include <asm/system.h>
-> > > +
-> > > +#define sync_set_bit(nr, p)             _set_bit(nr, p)
-> > > +#define sync_clear_bit(nr, p)           _clear_bit(nr, p)
-> > > +#define sync_change_bit(nr, p)          _change_bit(nr, p)
-> > > +#define sync_test_and_set_bit(nr, p)    _test_and_set_bit(nr, p)
-> > > +#define sync_test_and_clear_bit(nr, p)  _test_and_clear_bit(nr, p)
-> > > +#define sync_test_and_change_bit(nr, p) _test_and_change_bit(nr, p)
-> > > +#define sync_test_bit(nr, addr)         test_bit(nr, addr)
-> > > +#define sync_cmpxchg                    cmpxchg
-> > > +
-> > > +
-> > > +#endif
-> > > -- 
-> > > 1.7.2.5
-> > > 
-> > > 
-> > > _______________________________________________
-> > > Xen-devel mailing list
-> > > Xen-devel@lists.xen.org
-> > > http://lists.xen.org/xen-devel
-> 
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<20120801143822.GJ7227@phenom.dumpdata.com> b/test/corpus/<20120801143822.GJ7227@phenom.dumpdata.com>
deleted file mode 100644 (file)
index 9e6af88..0000000
+++ /dev/null
@@ -1,212 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Aug 01 15:51:55 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 01 Aug 2012 15:51:55 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SwaH7-0006lD-Jr
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 01 Aug 2012 15:51:55 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SwaD6-0002If-F4; Wed, 01 Aug 2012 14:47:40 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <konrad.wilk@oracle.com>) id 1SwaD4-0002IW-CE
-       for xen-devel@lists.xensource.com; Wed, 01 Aug 2012 14:47:38 +0000
-Received: from [85.158.139.83:26320] by server-3.bemta-5.messagelabs.com id
-       12/AE-03367-98149105; Wed, 01 Aug 2012 14:47:37 +0000
-X-Env-Sender: konrad.wilk@oracle.com
-X-Msg-Ref: server-16.tower-182.messagelabs.com!1343832455!22423431!1
-X-Originating-IP: [141.146.126.227]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogMTQxLjE0Ni4xMjYuMjI3ID0+IDY3MjQwNA==\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.2; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 23839 invoked from network); 1 Aug 2012 14:47:37 -0000
-Received: from acsinet15.oracle.com (HELO acsinet15.oracle.com)
-       (141.146.126.227)
-       by server-16.tower-182.messagelabs.com with DHE-RSA-AES256-SHA
-       encrypted SMTP; 1 Aug 2012 14:47:37 -0000
-Received: from acsinet21.oracle.com (acsinet21.oracle.com [141.146.126.237])
-       by acsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
-       ESMTP id q71ElOOL002536
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
-       Wed, 1 Aug 2012 14:47:24 GMT
-Received: from acsmt357.oracle.com (acsmt357.oracle.com [141.146.40.157])
-       by acsinet21.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
-       q71ElNAc027823
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
-       Wed, 1 Aug 2012 14:47:23 GMT
-Received: from abhmt103.oracle.com (abhmt103.oracle.com [141.146.116.55])
-       by acsmt357.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
-       q71ElNaf010419; Wed, 1 Aug 2012 09:47:23 -0500
-Received: from phenom.dumpdata.com (/209.6.85.33)
-       by default (Oracle Beehive Gateway v4.0)
-       with ESMTP ; Wed, 01 Aug 2012 07:47:23 -0700
-Received: by phenom.dumpdata.com (Postfix, from userid 1000)
-       id 78C1C402B2; Wed,  1 Aug 2012 10:38:22 -0400 (EDT)
-Date: Wed, 1 Aug 2012 10:38:22 -0400
-From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-Message-ID: <20120801143822.GJ7227@phenom.dumpdata.com>
-References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
-       <1343316846-25860-12-git-send-email-stefano.stabellini@eu.citrix.com>
-MIME-Version: 1.0
-Content-Disposition: inline
-In-Reply-To: <1343316846-25860-12-git-send-email-stefano.stabellini@eu.citrix.com>
-User-Agent: Mutt/1.5.21 (2010-09-15)
-X-Source-IP: acsinet21.oracle.com [141.146.126.237]
-Cc: xen-devel@lists.xensource.com, linaro-dev@lists.linaro.org,
-       Ian.Campbell@citrix.com, arnd@arndb.de, catalin.marinas@arm.com,
-       tim@xen.org, linux-kernel@vger.kernel.org,
-       linux-arm-kernel@lists.infradead.org
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 12/24] xen/arm: Introduce xen_guest_init
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Thu, Jul 26, 2012 at 04:33:54PM +0100, Stefano Stabellini wrote:
-> We used to rely on a core_initcall to initialize Xen on ARM, however
-> core_initcalls are actually called after early consoles are initialized.
-> That means that hvc_xen.c is going to be initialized before Xen.
-> 
-> Given the lack of a better alternative, just call a new Xen
-> initialization function (xen_guest_init) from xen_cons_init.
-> 
-> xen_guest_init has to be arch independent, so write both an ARM and an
-> x86 implementation. The x86 implementation is currently empty because we
-> can be sure that xen_hvm_guest_init is called early enough.
-
-Should the arm version then not be anymore on the core_initcall then?
-
-> 
-> Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-> ---
->  arch/arm/xen/enlighten.c  |    7 ++++++-
->  arch/x86/xen/enlighten.c  |    8 ++++++++
->  drivers/tty/hvc/hvc_xen.c |    7 ++++++-
->  include/xen/xen.h         |    2 ++
->  4 files changed, 22 insertions(+), 2 deletions(-)
-> 
-> diff --git a/arch/arm/xen/enlighten.c b/arch/arm/xen/enlighten.c
-> index 8c923af..dc68074 100644
-> --- a/arch/arm/xen/enlighten.c
-> +++ b/arch/arm/xen/enlighten.c
-> @@ -44,7 +44,7 @@ EXPORT_SYMBOL_GPL(xen_remap_domain_mfn_range);
->   * - one interrupt for Xen event notifications;
->   * - one memory region to map the grant_table.
->   */
-> -static int __init xen_guest_init(void)
-> +int __init xen_guest_init(void)
->  {
->      int cpu;
->      struct xen_add_to_physmap xatp;
-> @@ -58,6 +58,10 @@ static int __init xen_guest_init(void)
->      }
->      xen_domain_type = XEN_HVM_DOMAIN;
->  
-> +    /* already setup */
-> +    if (shared_info_page != 0 && HYPERVISOR_shared_info == shared_info_page)
-> +            return 0;
-> +
->      if (!shared_info_page)
->              shared_info_page = (struct shared_info *)
->                      get_zeroed_page(GFP_KERNEL);
-> @@ -88,4 +92,5 @@ static int __init xen_guest_init(void)
->      }
->      return 0;
->  }
-> +EXPORT_SYMBOL_GPL(xen_guest_init);
-
-Why the export symbols?
-
->  core_initcall(xen_guest_init);
-> diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c
-> index ff962d4..6131d43 100644
-> --- a/arch/x86/xen/enlighten.c
-> +++ b/arch/x86/xen/enlighten.c
-> @@ -1567,4 +1567,12 @@ const struct hypervisor_x86 x86_hyper_xen_hvm __refconst = {
->      .init_platform          = xen_hvm_guest_init,
->  };
->  EXPORT_SYMBOL(x86_hyper_xen_hvm);
-> +
-> +int __init xen_guest_init(void)
-> +{
-> +    /* do nothing: rely on x86_hyper_xen_hvm for the initialization */
-> +    return 0;
-> +    
-> +}
-> +EXPORT_SYMBOL_GPL(xen_guest_init);
->  #endif
-> diff --git a/drivers/tty/hvc/hvc_xen.c b/drivers/tty/hvc/hvc_xen.c
-> index dc07f56..3c04fb8 100644
-> --- a/drivers/tty/hvc/hvc_xen.c
-> +++ b/drivers/tty/hvc/hvc_xen.c
-> @@ -577,6 +577,12 @@ static void __exit xen_hvc_fini(void)
->  static int xen_cons_init(void)
->  {
->      const struct hv_ops *ops;
-> +    int r;
-> +
-> +    /* retrieve xen infos  */
-> +    r = xen_guest_init();
-> +    if (r < 0)
-> +            return r;
->  
->      if (!xen_domain())
->              return 0;
-> @@ -584,7 +590,6 @@ static int xen_cons_init(void)
->      if (xen_initial_domain())
->              ops = &dom0_hvc_ops;
->      else {
-> -            int r;
->              ops = &domU_hvc_ops;
->  
->              if (xen_hvm_domain())
-> diff --git a/include/xen/xen.h b/include/xen/xen.h
-> index 2c0d3a5..792a4d2 100644
-> --- a/include/xen/xen.h
-> +++ b/include/xen/xen.h
-> @@ -9,8 +9,10 @@ enum xen_domain_type {
->  
->  #ifdef CONFIG_XEN
->  extern enum xen_domain_type xen_domain_type;
-> +int xen_guest_init(void);
->  #else
->  #define xen_domain_type             XEN_NATIVE
-> +static inline int xen_guest_init(void) { return 0; }
->  #endif
->  
->  #define xen_domain()                (xen_domain_type != XEN_NATIVE)
-> -- 
-> 1.7.2.5
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<20120801143946.GK7227@phenom.dumpdata.com> b/test/corpus/<20120801143946.GK7227@phenom.dumpdata.com>
deleted file mode 100644 (file)
index e7340f0..0000000
+++ /dev/null
@@ -1,157 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Aug 01 15:52:56 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 01 Aug 2012 15:52:56 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SwaI7-0006lb-2g
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 01 Aug 2012 15:52:56 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SwaEW-0002QT-V7; Wed, 01 Aug 2012 14:49:08 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <konrad.wilk@oracle.com>) id 1SwaEV-0002QH-F3
-       for xen-devel@lists.xensource.com; Wed, 01 Aug 2012 14:49:07 +0000
-Received: from [85.158.139.83:64765] by server-12.bemta-5.messagelabs.com id
-       5C/5E-25233-2E149105; Wed, 01 Aug 2012 14:49:06 +0000
-X-Env-Sender: konrad.wilk@oracle.com
-X-Msg-Ref: server-3.tower-182.messagelabs.com!1343832544!27833077!1
-X-Originating-IP: [141.146.126.227]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogMTQxLjE0Ni4xMjYuMjI3ID0+IDY3MjQwNA==\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.2; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 31883 invoked from network); 1 Aug 2012 14:49:05 -0000
-Received: from acsinet15.oracle.com (HELO acsinet15.oracle.com)
-       (141.146.126.227)
-       by server-3.tower-182.messagelabs.com with DHE-RSA-AES256-SHA encrypted
-       SMTP; 1 Aug 2012 14:49:05 -0000
-Received: from ucsinet22.oracle.com (ucsinet22.oracle.com [156.151.31.94])
-       by acsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
-       ESMTP id q71Emop5004154
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
-       Wed, 1 Aug 2012 14:48:51 GMT
-Received: from acsmt356.oracle.com (acsmt356.oracle.com [141.146.40.156])
-       by ucsinet22.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
-       q71EmlPE003027
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
-       Wed, 1 Aug 2012 14:48:48 GMT
-Received: from abhmt104.oracle.com (abhmt104.oracle.com [141.146.116.56])
-       by acsmt356.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
-       q71EmltO021922; Wed, 1 Aug 2012 09:48:47 -0500
-Received: from phenom.dumpdata.com (/209.6.85.33)
-       by default (Oracle Beehive Gateway v4.0)
-       with ESMTP ; Wed, 01 Aug 2012 07:48:47 -0700
-Received: by phenom.dumpdata.com (Postfix, from userid 1000)
-       id 8E3A8402B2; Wed,  1 Aug 2012 10:39:46 -0400 (EDT)
-Date: Wed, 1 Aug 2012 10:39:46 -0400
-From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-To: Ian Campbell <Ian.Campbell@citrix.com>
-Message-ID: <20120801143946.GK7227@phenom.dumpdata.com>
-References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
-       <1343316846-25860-13-git-send-email-stefano.stabellini@eu.citrix.com>
-       <1343382276.6812.126.camel@zakaz.uk.xensource.com>
-       <alpine.DEB.2.02.1207271514140.26163@kaball.uk.xensource.com>
-       <1343399630.25096.4.camel@zakaz.uk.xensource.com>
-MIME-Version: 1.0
-Content-Disposition: inline
-In-Reply-To: <1343399630.25096.4.camel@zakaz.uk.xensource.com>
-User-Agent: Mutt/1.5.21 (2010-09-15)
-X-Source-IP: ucsinet22.oracle.com [156.151.31.94]
-Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
-       "linaro-dev@lists.linaro.org" <linaro-dev@lists.linaro.org>,
-       "arnd@arndb.de" <arnd@arndb.de>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>,
-       "catalin.marinas@arm.com" <catalin.marinas@arm.com>,
-       "Tim \(Xen.org\)" <tim@xen.org>,
-       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
-       "linux-arm-kernel@lists.infradead.org"
-       <linux-arm-kernel@lists.infradead.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 13/24] xen/arm: get privilege status
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Fri, Jul 27, 2012 at 03:33:50PM +0100, Ian Campbell wrote:
-> On Fri, 2012-07-27 at 15:25 +0100, Stefano Stabellini wrote:
-> > On Fri, 27 Jul 2012, Ian Campbell wrote:
-> > > On Thu, 2012-07-26 at 16:33 +0100, Stefano Stabellini wrote:
-> > > > Use Xen features to figure out if we are privileged.
-> > > > 
-> > > > XENFEAT_dom0 was introduced by 23735 in xen-unstable.hg.
-> > > > 
-> > > > Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-> > > > ---
-> > > >  arch/arm/xen/enlighten.c         |    7 +++++++
-> > > >  include/xen/interface/features.h |    3 +++
-> > > >  2 files changed, 10 insertions(+), 0 deletions(-)
-> > > > 
-> > > > diff --git a/arch/arm/xen/enlighten.c b/arch/arm/xen/enlighten.c
-> > > > index dc68074..2e013cf 100644
-> > > > --- a/arch/arm/xen/enlighten.c
-> > > > +++ b/arch/arm/xen/enlighten.c
-> > > > @@ -2,6 +2,7 @@
-> > > >  #include <xen/interface/xen.h>
-> > > >  #include <xen/interface/memory.h>
-> > > >  #include <xen/platform_pci.h>
-> > > > +#include <xen/features.h>
-> > > >  #include <asm/xen/hypervisor.h>
-> > > >  #include <asm/xen/hypercall.h>
-> > > >  #include <linux/module.h>
-> > > > @@ -58,6 +59,12 @@ int __init xen_guest_init(void)
-> > > >        }
-> > > >        xen_domain_type = XEN_HVM_DOMAIN;
-> > > >  
-> > > > +      xen_setup_features();
-> > > > +      if (xen_feature(XENFEAT_dom0))
-> > > > +              xen_start_info->flags |= SIF_INITDOMAIN|SIF_PRIVILEGED;
-> > > > +      else
-> > > > +              xen_start_info->flags &= ~(SIF_INITDOMAIN|SIF_PRIVILEGED);
-> > > 
-> > > What happens here on platforms prior to hypervisor changeset 23735?
-> > 
-> > It wouldn't work.
-> > Considering that we are certainly not going to backport ARM support to
-> > Xen 4.1, and that both ARM and XENFEAT_dom0 will be present in Xen 4.2,
-> > do we really need to support the Xen unstable changesets between ARM was
-> > introduced and XENFEAT_dom0 appeared?
-
-So should it just panic and say "AAAAAAH"?
-
-> 
-> Sorry, I missed the "arm" in the path.
-> 
-> Ian.
-> 
-> 
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<20120801144059.GL7227@phenom.dumpdata.com> b/test/corpus/<20120801144059.GL7227@phenom.dumpdata.com>
deleted file mode 100644 (file)
index c91e8a1..0000000
+++ /dev/null
@@ -1,174 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Aug 01 15:54:27 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 01 Aug 2012 15:54:27 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SwaJc-0006mB-8m
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 01 Aug 2012 15:54:27 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SwaFj-0002XY-UR; Wed, 01 Aug 2012 14:50:23 +0000
-Received: from mail27.messagelabs.com ([193.109.254.147])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <konrad.wilk@oracle.com>) id 1SwaFi-0002Wl-2P
-       for xen-devel@lists.xensource.com; Wed, 01 Aug 2012 14:50:22 +0000
-X-Env-Sender: konrad.wilk@oracle.com
-X-Msg-Ref: server-5.tower-27.messagelabs.com!1343832614!9328866!1
-X-Originating-IP: [148.87.113.117]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogMTQ4Ljg3LjExMy4xMTcgPT4gNjY5Nzc4\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.2; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 28274 invoked from network); 1 Aug 2012 14:50:15 -0000
-Received: from rcsinet15.oracle.com (HELO rcsinet15.oracle.com)
-       (148.87.113.117)
-       by server-5.tower-27.messagelabs.com with DHE-RSA-AES256-SHA encrypted
-       SMTP; 1 Aug 2012 14:50:15 -0000
-Received: from acsinet22.oracle.com (acsinet22.oracle.com [141.146.126.238])
-       by rcsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
-       ESMTP id q71Eo1oN004204
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
-       Wed, 1 Aug 2012 14:50:02 GMT
-Received: from acsmt357.oracle.com (acsmt357.oracle.com [141.146.40.157])
-       by acsinet22.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
-       q71Eo07V029399
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
-       Wed, 1 Aug 2012 14:50:00 GMT
-Received: from abhmt116.oracle.com (abhmt116.oracle.com [141.146.116.68])
-       by acsmt357.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
-       q71Eo0be012745; Wed, 1 Aug 2012 09:50:00 -0500
-Received: from phenom.dumpdata.com (/209.6.85.33)
-       by default (Oracle Beehive Gateway v4.0)
-       with ESMTP ; Wed, 01 Aug 2012 07:50:00 -0700
-Received: by phenom.dumpdata.com (Postfix, from userid 1000)
-       id 9A9F5402B2; Wed,  1 Aug 2012 10:40:59 -0400 (EDT)
-Date: Wed, 1 Aug 2012 10:40:59 -0400
-From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-Message-ID: <20120801144059.GL7227@phenom.dumpdata.com>
-References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
-       <1343316846-25860-14-git-send-email-stefano.stabellini@eu.citrix.com>
-MIME-Version: 1.0
-Content-Disposition: inline
-In-Reply-To: <1343316846-25860-14-git-send-email-stefano.stabellini@eu.citrix.com>
-User-Agent: Mutt/1.5.21 (2010-09-15)
-X-Source-IP: acsinet22.oracle.com [141.146.126.238]
-Cc: xen-devel@lists.xensource.com, linaro-dev@lists.linaro.org,
-       Ian.Campbell@citrix.com, arnd@arndb.de, catalin.marinas@arm.com,
-       tim@xen.org, linux-kernel@vger.kernel.org,
-       linux-arm-kernel@lists.infradead.org
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 14/24] xen/arm: initialize grant_table on ARM
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Thu, Jul 26, 2012 at 04:33:56PM +0100, Stefano Stabellini wrote:
-> Initialize the grant table mapping at the address specified at index 0
-> in the DT under the /xen node.
-
-Is it always index 0? If so, should it have a #define for the
-other index values?
-
-> After the grant table is initialized, call xenbus_probe (if not dom0).
-> 
-> Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-> ---
->  arch/arm/xen/enlighten.c  |   13 +++++++++++++
->  drivers/xen/grant-table.c |    2 +-
->  2 files changed, 14 insertions(+), 1 deletions(-)
-> 
-> diff --git a/arch/arm/xen/enlighten.c b/arch/arm/xen/enlighten.c
-> index 2e013cf..854af1e 100644
-> --- a/arch/arm/xen/enlighten.c
-> +++ b/arch/arm/xen/enlighten.c
-> @@ -1,8 +1,12 @@
->  #include <xen/xen.h>
->  #include <xen/interface/xen.h>
->  #include <xen/interface/memory.h>
-> +#include <xen/interface/hvm/params.h>
->  #include <xen/platform_pci.h>
->  #include <xen/features.h>
-> +#include <xen/grant_table.h>
-> +#include <xen/hvm.h>
-> +#include <xen/xenbus.h>
->  #include <asm/xen/hypervisor.h>
->  #include <asm/xen/hypercall.h>
->  #include <linux/module.h>
-> @@ -51,12 +55,16 @@ int __init xen_guest_init(void)
->      struct xen_add_to_physmap xatp;
->      static struct shared_info *shared_info_page = 0;
->      struct device_node *node;
-> +    struct resource res;
->  
->      node = of_find_compatible_node(NULL, NULL, "arm,xen");
->      if (!node) {
->              pr_info("No Xen support\n");
->              return 0;
->      }
-> +    if (of_address_to_resource(node, 0, &res))
-> +            return -EINVAL;
-> +    xen_hvm_resume_frames = res.start >> PAGE_SHIFT;
->      xen_domain_type = XEN_HVM_DOMAIN;
->  
->      xen_setup_features();
-> @@ -97,6 +105,11 @@ int __init xen_guest_init(void)
->              per_cpu(xen_vcpu, cpu) =
->                      &HYPERVISOR_shared_info->vcpu_info[cpu];
->      }
-> +
-> +    gnttab_init();
-> +    if (!xen_initial_domain())
-> +            xenbus_probe(NULL);
-> +
->      return 0;
->  }
->  EXPORT_SYMBOL_GPL(xen_guest_init);
-> diff --git a/drivers/xen/grant-table.c b/drivers/xen/grant-table.c
-> index 1d0d95e..fd2137a 100644
-> --- a/drivers/xen/grant-table.c
-> +++ b/drivers/xen/grant-table.c
-> @@ -62,7 +62,7 @@
->  
->  static grant_ref_t **gnttab_list;
->  static unsigned int nr_grant_frames;
-> -static unsigned int boot_max_nr_grant_frames;
-> +static unsigned int boot_max_nr_grant_frames = 1;
-
-Is this going to impact x86 version?
-
->  static int gnttab_free_count;
->  static grant_ref_t gnttab_free_head;
->  static DEFINE_SPINLOCK(gnttab_list_lock);
-> -- 
-> 1.7.2.5
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<20120801144418.GM7227@phenom.dumpdata.com> b/test/corpus/<20120801144418.GM7227@phenom.dumpdata.com>
deleted file mode 100644 (file)
index 5332d97..0000000
+++ /dev/null
@@ -1,329 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Aug 01 15:57:42 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 01 Aug 2012 15:57:42 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SwaMi-0006nQ-Dr
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 01 Aug 2012 15:57:42 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SwaIz-0002u2-Mk; Wed, 01 Aug 2012 14:53:45 +0000
-Received: from mail27.messagelabs.com ([193.109.254.147])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <konrad.wilk@oracle.com>) id 1SwaIx-0002tJ-KP
-       for xen-devel@lists.xensource.com; Wed, 01 Aug 2012 14:53:43 +0000
-X-Env-Sender: konrad.wilk@oracle.com
-X-Msg-Ref: server-8.tower-27.messagelabs.com!1343832816!10283087!1
-X-Originating-IP: [148.87.113.117]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogMTQ4Ljg3LjExMy4xMTcgPT4gNjY5Nzc4\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.2; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 27456 invoked from network); 1 Aug 2012 14:53:37 -0000
-Received: from rcsinet15.oracle.com (HELO rcsinet15.oracle.com)
-       (148.87.113.117)
-       by server-8.tower-27.messagelabs.com with DHE-RSA-AES256-SHA encrypted
-       SMTP; 1 Aug 2012 14:53:37 -0000
-Received: from ucsinet22.oracle.com (ucsinet22.oracle.com [156.151.31.94])
-       by rcsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
-       ESMTP id q71ErKws008050
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
-       Wed, 1 Aug 2012 14:53:20 GMT
-Received: from acsmt356.oracle.com (acsmt356.oracle.com [141.146.40.156])
-       by ucsinet22.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
-       q71ErJAu010189
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
-       Wed, 1 Aug 2012 14:53:19 GMT
-Received: from abhmt111.oracle.com (abhmt111.oracle.com [141.146.116.63])
-       by acsmt356.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
-       q71ErIeZ025850; Wed, 1 Aug 2012 09:53:18 -0500
-Received: from phenom.dumpdata.com (/209.6.85.33)
-       by default (Oracle Beehive Gateway v4.0)
-       with ESMTP ; Wed, 01 Aug 2012 07:53:18 -0700
-Received: by phenom.dumpdata.com (Postfix, from userid 1000)
-       id 20DE7402B2; Wed,  1 Aug 2012 10:44:18 -0400 (EDT)
-Date: Wed, 1 Aug 2012 10:44:18 -0400
-From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-Message-ID: <20120801144418.GM7227@phenom.dumpdata.com>
-References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
-       <1343316846-25860-15-git-send-email-stefano.stabellini@eu.citrix.com>
-MIME-Version: 1.0
-Content-Disposition: inline
-In-Reply-To: <1343316846-25860-15-git-send-email-stefano.stabellini@eu.citrix.com>
-User-Agent: Mutt/1.5.21 (2010-09-15)
-X-Source-IP: ucsinet22.oracle.com [156.151.31.94]
-Cc: xen-devel@lists.xensource.com, linaro-dev@lists.linaro.org,
-       Ian.Campbell@citrix.com, arnd@arndb.de, catalin.marinas@arm.com,
-       tim@xen.org, linux-kernel@vger.kernel.org,
-       linux-arm-kernel@lists.infradead.org
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 15/24] xen/arm: receive Xen events on ARM
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Thu, Jul 26, 2012 at 04:33:57PM +0100, Stefano Stabellini wrote:
-> Compile events.c on ARM.
-> Parse, map and enable the IRQ to get event notifications from the device
-> tree (node "/xen").
-> 
-> On ARM Linux irqs are not enabled by default:
-> 
-> - call enable_percpu_irq for xen_events_irq (drivers are supposed
-> to call enable_irq after request_irq);
-> 
-> - reset the IRQ_NOAUTOEN and IRQ_NOREQUEST flags that are enabled by
-> default on ARM. If IRQ_NOAUTOEN is set, __setup_irq doesn't call
-> irq_startup, that is responsible for calling irq_unmask at startup time.
-> As a result event channels remain masked.
-> 
-> Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-> ---
->  arch/arm/xen/enlighten.c |   33 +++++++++++++++++++++++++++++++++
->  arch/x86/xen/enlighten.c |    1 +
->  arch/x86/xen/irq.c       |    1 +
->  arch/x86/xen/xen-ops.h   |    1 -
->  drivers/xen/events.c     |   18 +++++++++++++++---
->  include/xen/events.h     |    2 ++
->  6 files changed, 52 insertions(+), 4 deletions(-)
-> 
-> diff --git a/arch/arm/xen/enlighten.c b/arch/arm/xen/enlighten.c
-> index 854af1e..60d6d36 100644
-> --- a/arch/arm/xen/enlighten.c
-> +++ b/arch/arm/xen/enlighten.c
-> @@ -7,8 +7,11 @@
->  #include <xen/grant_table.h>
->  #include <xen/hvm.h>
->  #include <xen/xenbus.h>
-> +#include <xen/events.h>
->  #include <asm/xen/hypervisor.h>
->  #include <asm/xen/hypercall.h>
-> +#include <linux/interrupt.h>
-> +#include <linux/irqreturn.h>
->  #include <linux/module.h>
->  #include <linux/of.h>
->  #include <linux/of_irq.h>
-> @@ -33,6 +36,8 @@ EXPORT_SYMBOL_GPL(xen_have_vector_callback);
->  int xen_platform_pci_unplug = XEN_UNPLUG_ALL;
->  EXPORT_SYMBOL_GPL(xen_platform_pci_unplug);
->  
-> +static __read_mostly int xen_events_irq = -1;
-> +
->  int xen_remap_domain_mfn_range(struct vm_area_struct *vma,
->                             unsigned long addr,
->                             unsigned long mfn, int nr,
-> @@ -65,6 +70,9 @@ int __init xen_guest_init(void)
->      if (of_address_to_resource(node, 0, &res))
->              return -EINVAL;
->      xen_hvm_resume_frames = res.start >> PAGE_SHIFT;
-> +    xen_events_irq = irq_of_parse_and_map(node, 0);
-> +    pr_info("Xen support found, events_irq=%d gnttab_frame_pfn=%lx\n",
-> +                    xen_events_irq, xen_hvm_resume_frames);
->      xen_domain_type = XEN_HVM_DOMAIN;
->  
->      xen_setup_features();
-> @@ -114,3 +122,28 @@ int __init xen_guest_init(void)
->  }
->  EXPORT_SYMBOL_GPL(xen_guest_init);
->  core_initcall(xen_guest_init);
-> +
-> +static irqreturn_t xen_arm_callback(int irq, void *arg)
-> +{
-> +    xen_hvm_evtchn_do_upcall();
-> +    return 0;
-
-Um, IRQ_HANDLED?
-
-> +}
-> +
-> +static int __init xen_init_events(void)
-> +{
-> +    if (!xen_domain() || xen_events_irq < 0)
-> +            return -ENODEV;
-> +
-> +    xen_init_IRQ();
-> +
-> +    if (request_percpu_irq(xen_events_irq, xen_arm_callback,
-> +                    "events", xen_vcpu)) {
-> +            pr_err("Error requesting IRQ %d\n", xen_events_irq);
-> +            return -EINVAL;
-> +    }
-> +
-> +    enable_percpu_irq(xen_events_irq, 0);
-> +
-> +    return 0;
-> +}
-> +postcore_initcall(xen_init_events);
-> diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c
-> index 6131d43..5a30502 100644
-> --- a/arch/x86/xen/enlighten.c
-> +++ b/arch/x86/xen/enlighten.c
-> @@ -33,6 +33,7 @@
->  #include <linux/memblock.h>
->  
->  #include <xen/xen.h>
-> +#include <xen/events.h>
->  #include <xen/interface/xen.h>
->  #include <xen/interface/version.h>
->  #include <xen/interface/physdev.h>
-> diff --git a/arch/x86/xen/irq.c b/arch/x86/xen/irq.c
-> index 1573376..01a4dc0 100644
-> --- a/arch/x86/xen/irq.c
-> +++ b/arch/x86/xen/irq.c
-> @@ -5,6 +5,7 @@
->  #include <xen/interface/xen.h>
->  #include <xen/interface/sched.h>
->  #include <xen/interface/vcpu.h>
-> +#include <xen/events.h>
->  
->  #include <asm/xen/hypercall.h>
->  #include <asm/xen/hypervisor.h>
-> diff --git a/arch/x86/xen/xen-ops.h b/arch/x86/xen/xen-ops.h
-> index 202d4c1..2368295 100644
-> --- a/arch/x86/xen/xen-ops.h
-> +++ b/arch/x86/xen/xen-ops.h
-> @@ -35,7 +35,6 @@ void xen_set_pat(u64);
->  
->  char * __init xen_memory_setup(void);
->  void __init xen_arch_setup(void);
-> -void __init xen_init_IRQ(void);
->  void xen_enable_sysenter(void);
->  void xen_enable_syscall(void);
->  void xen_vcpu_restore(void);
-> diff --git a/drivers/xen/events.c b/drivers/xen/events.c
-> index 7da65d3..9b506b2 100644
-> --- a/drivers/xen/events.c
-> +++ b/drivers/xen/events.c
-> @@ -31,14 +31,16 @@
->  #include <linux/irqnr.h>
->  #include <linux/pci.h>
->  
-> +#ifdef CONFIG_X86
->  #include <asm/desc.h>
->  #include <asm/ptrace.h>
->  #include <asm/irq.h>
->  #include <asm/idle.h>
->  #include <asm/io_apic.h>
-> -#include <asm/sync_bitops.h>
->  #include <asm/xen/page.h>
->  #include <asm/xen/pci.h>
-> +#endif
-> +#include <asm/sync_bitops.h>
->  #include <asm/xen/hypercall.h>
->  #include <asm/xen/hypervisor.h>
->  
-> @@ -50,6 +52,9 @@
->  #include <xen/interface/event_channel.h>
->  #include <xen/interface/hvm/hvm_op.h>
->  #include <xen/interface/hvm/params.h>
-> +#include <xen/interface/physdev.h>
-> +#include <xen/interface/sched.h>
-> +#include <asm/hw_irq.h>
->  
->  /*
->   * This lock protects updates to the following mapping and reference-count
-> @@ -834,6 +839,7 @@ int bind_evtchn_to_irq(unsigned int evtchn)
->              struct irq_info *info = info_for_irq(irq);
->              WARN_ON(info == NULL || info->type != IRQT_EVTCHN);
->      }
-> +    irq_clear_status_flags(irq, IRQ_NOREQUEST|IRQ_NOAUTOEN);
-
-I feel that this should be its own commit by itself. I am not certain
-of the implication of this on x86 and I think it deserves some explanation.
-
-
->  
->  out:
->      mutex_unlock(&irq_mapping_update_lock);
-> @@ -1377,7 +1383,9 @@ void xen_evtchn_do_upcall(struct pt_regs *regs)
->  {
->      struct pt_regs *old_regs = set_irq_regs(regs);
->  
-> +#ifdef CONFIG_X86
->      exit_idle();
-> +#endif
-
-Doesn't exist? Or is that it does not need it?
-
->      irq_enter();
->  
->      __xen_evtchn_do_upcall();
-> @@ -1786,9 +1794,9 @@ void xen_callback_vector(void)
->  void xen_callback_vector(void) {}
->  #endif
->  
-> -void __init xen_init_IRQ(void)
-> +void xen_init_IRQ(void)
->  {
-> -    int i, rc;
-> +    int i;
->  
->      evtchn_to_irq = kcalloc(NR_EVENT_CHANNELS, sizeof(*evtchn_to_irq),
->                                  GFP_KERNEL);
-> @@ -1804,6 +1812,7 @@ void __init xen_init_IRQ(void)
->  
->      pirq_needs_eoi = pirq_needs_eoi_flag;
->  
-> +#ifdef CONFIG_X86
->      if (xen_hvm_domain()) {
->              xen_callback_vector();
->              native_init_IRQ();
-> @@ -1811,6 +1820,7 @@ void __init xen_init_IRQ(void)
->               * __acpi_register_gsi can point at the right function */
->              pci_xen_hvm_init();
->      } else {
-> +            int rc;
->              struct physdev_pirq_eoi_gmfn eoi_gmfn;
->  
->              irq_ctx_init(smp_processor_id());
-> @@ -1826,4 +1836,6 @@ void __init xen_init_IRQ(void)
->              } else
->                      pirq_needs_eoi = pirq_check_eoi_map;
->      }
-> +#endif
->  }
-> +EXPORT_SYMBOL_GPL(xen_init_IRQ);
-> diff --git a/include/xen/events.h b/include/xen/events.h
-> index 04399b2..c6bfe01 100644
-> --- a/include/xen/events.h
-> +++ b/include/xen/events.h
-> @@ -109,4 +109,6 @@ int xen_irq_from_gsi(unsigned gsi);
->  /* Determine whether to ignore this IRQ if it is passed to a guest. */
->  int xen_test_irq_shared(int irq);
->  
-> +/* initialize Xen IRQ subsystem */
-> +void xen_init_IRQ(void);
->  #endif      /* _XEN_EVENTS_H */
-> -- 
-> 1.7.2.5
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<20120801144751.GN7227@phenom.dumpdata.com> b/test/corpus/<20120801144751.GN7227@phenom.dumpdata.com>
deleted file mode 100644 (file)
index c986df1..0000000
+++ /dev/null
@@ -1,186 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Aug 01 16:01:47 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 01 Aug 2012 16:01:47 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SwaQf-0006ob-EI
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 01 Aug 2012 16:01:47 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SwaMN-00035u-AS; Wed, 01 Aug 2012 14:57:15 +0000
-Received: from mail27.messagelabs.com ([193.109.254.147])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <konrad.wilk@oracle.com>) id 1SwaML-00035Z-Ge
-       for xen-devel@lists.xensource.com; Wed, 01 Aug 2012 14:57:13 +0000
-X-Env-Sender: konrad.wilk@oracle.com
-X-Msg-Ref: server-7.tower-27.messagelabs.com!1343833025!3307665!1
-X-Originating-IP: [141.146.126.227]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogMTQxLjE0Ni4xMjYuMjI3ID0+IDY3MjQwNA==\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.2; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 5268 invoked from network); 1 Aug 2012 14:57:07 -0000
-Received: from acsinet15.oracle.com (HELO acsinet15.oracle.com)
-       (141.146.126.227)
-       by server-7.tower-27.messagelabs.com with DHE-RSA-AES256-SHA encrypted
-       SMTP; 1 Aug 2012 14:57:07 -0000
-Received: from acsinet22.oracle.com (acsinet22.oracle.com [141.146.126.238])
-       by acsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
-       ESMTP id q71EurQA013503
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
-       Wed, 1 Aug 2012 14:56:54 GMT
-Received: from acsmt357.oracle.com (acsmt357.oracle.com [141.146.40.157])
-       by acsinet22.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
-       q71Eur3T011200
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
-       Wed, 1 Aug 2012 14:56:53 GMT
-Received: from abhmt110.oracle.com (abhmt110.oracle.com [141.146.116.62])
-       by acsmt357.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
-       q71EuqlA018549; Wed, 1 Aug 2012 09:56:52 -0500
-Received: from phenom.dumpdata.com (/209.6.85.33)
-       by default (Oracle Beehive Gateway v4.0)
-       with ESMTP ; Wed, 01 Aug 2012 07:56:52 -0700
-Received: by phenom.dumpdata.com (Postfix, from userid 1000)
-       id EDFE9402B2; Wed,  1 Aug 2012 10:47:51 -0400 (EDT)
-Date: Wed, 1 Aug 2012 10:47:51 -0400
-From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-Message-ID: <20120801144751.GN7227@phenom.dumpdata.com>
-References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
-       <1343316846-25860-17-git-send-email-stefano.stabellini@eu.citrix.com>
-       <5012598C0200007800090DB9@nat28.tlf.novell.com>
-       <alpine.DEB.2.02.1207271502480.26163@kaball.uk.xensource.com>
-MIME-Version: 1.0
-Content-Disposition: inline
-In-Reply-To: <alpine.DEB.2.02.1207271502480.26163@kaball.uk.xensource.com>
-User-Agent: Mutt/1.5.21 (2010-09-15)
-X-Source-IP: acsinet22.oracle.com [141.146.126.238]
-Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
-       "linaro-dev@lists.linaro.org" <linaro-dev@lists.linaro.org>,
-       Ian Campbell <Ian.Campbell@citrix.com>, "arnd@arndb.de" <arnd@arndb.de>,
-       "catalin.marinas@arm.com" <catalin.marinas@arm.com>,
-       "Tim \(Xen.org\)" <tim@xen.org>,
-       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
-       Jan Beulich <JBeulich@suse.com>, "linux-arm-kernel@lists.infradead.org"
-       <linux-arm-kernel@lists.infradead.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 17/24] xen: allow privcmd for HVM guests
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Fri, Jul 27, 2012 at 03:10:13PM +0100, Stefano Stabellini wrote:
-> On Fri, 27 Jul 2012, Jan Beulich wrote:
-> > >>> On 26.07.12 at 17:33, Stefano Stabellini <stefano.stabellini@eu.citrix.com> wrote:
-> > > In order for privcmd mmap to work correctly, xen_remap_domain_mfn_range
-> > > needs to be implemented for HVM guests.
-> > > If it is not, mmap is going to fail later on.
-> > 
-> > Somehow, for me at least, this description doesn't connect to the
-> > actual change.
-> 
-> We can remove the "return -ENOSYS" from privcmd_mmap but the actual mmap
-> is still not going to work unless xen_remap_domain_mfn_range is
-> implemented correctly.
-> The x86 implementation of xen_remap_domain_mfn_range is PV only so it is
-> not going to work for HVM or auto_translated_physmap guests.
-> As a result mmap_batch_fn is going to fail.
-
-So what you are saying is that this check is redundant and that earlier
-on in the call stack this check is made?
-
-I am not seeing it? I am seeing an:
-
-289         if (!xen_initial_domain())
-290                 return -EPERM;
-
-But that would still work.
-
-Perhaps adding an:
-
-       if (xen_hvm_domain())
-               return -ENOSYS
-
-is more appropiate in privcmd_ioctl_mmap_batch?
-
-Irrespective of HVM guests, I recall that it is possible to run PV guests
-with XENFEAT_auto_translated_physmap? How will this be impacted?
-
-> 
-> 
-> > > Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-> > > ---
-> > >  drivers/xen/privcmd.c |    4 ----
-> > >  1 files changed, 0 insertions(+), 4 deletions(-)
-> > > 
-> > > diff --git a/drivers/xen/privcmd.c b/drivers/xen/privcmd.c
-> > > index ccee0f1..85226cb 100644
-> > > --- a/drivers/xen/privcmd.c
-> > > +++ b/drivers/xen/privcmd.c
-> > > @@ -380,10 +380,6 @@ static struct vm_operations_struct privcmd_vm_ops = {
-> > >  
-> > >  static int privcmd_mmap(struct file *file, struct vm_area_struct *vma)
-> > >  {
-> > > -        /* Unsupported for auto-translate guests. */
-> > > -        if (xen_feature(XENFEAT_auto_translated_physmap))
-> > > -                return -ENOSYS;
-> > > -
-> > 
-> > Is this safe on x86?
-> > 
-> 
-> It is safe in the sense that is not going to crash dom0 or the
-> hypervisor, but it is not going to work.
-> 
-> Actually in order for it to be safe we need this additional change:
-> 
-> diff --git a/arch/x86/xen/mmu.c b/arch/x86/xen/mmu.c
-> index 3a73785..885a223 100644
-> --- a/arch/x86/xen/mmu.c
-> +++ b/arch/x86/xen/mmu.c
-> @@ -2310,6 +2310,9 @@ int xen_remap_domain_mfn_range(struct vm_area_struct *vma,
->      unsigned long range;
->      int err = 0;
->  
-> +    if (xen_feature(XENFEAT_auto_translated_physmap))
-> +            return -EINVAL;
-> +
->      prot = __pgprot(pgprot_val(prot) | _PAGE_IOMAP);
->  
->      BUG_ON(!((vma->vm_flags & (VM_PFNMAP | VM_RESERVED | VM_IO)) ==
-> 
-> 
-> _______________________________________________
-> Xen-devel mailing list
-> Xen-devel@lists.xen.org
-> http://lists.xen.org/xen-devel
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<20120801144818.GO7227@phenom.dumpdata.com> b/test/corpus/<20120801144818.GO7227@phenom.dumpdata.com>
deleted file mode 100644 (file)
index 58d9e65..0000000
+++ /dev/null
@@ -1,142 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Aug 01 16:01:47 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 01 Aug 2012 16:01:47 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SwaQf-0006oa-9e
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 01 Aug 2012 16:01:47 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SwaMh-00037d-Na; Wed, 01 Aug 2012 14:57:35 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <konrad.wilk@oracle.com>) id 1SwaMg-00037J-1C
-       for xen-devel@lists.xensource.com; Wed, 01 Aug 2012 14:57:34 +0000
-Received: from [85.158.138.51:21575] by server-1.bemta-3.messagelabs.com id
-       F5/07-31934-DD349105; Wed, 01 Aug 2012 14:57:33 +0000
-X-Env-Sender: konrad.wilk@oracle.com
-X-Msg-Ref: server-14.tower-174.messagelabs.com!1343833051!23561129!1
-X-Originating-IP: [141.146.126.227]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogMTQxLjE0Ni4xMjYuMjI3ID0+IDY3MjQwNA==\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.2; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 20024 invoked from network); 1 Aug 2012 14:57:32 -0000
-Received: from acsinet15.oracle.com (HELO acsinet15.oracle.com)
-       (141.146.126.227)
-       by server-14.tower-174.messagelabs.com with DHE-RSA-AES256-SHA
-       encrypted SMTP; 1 Aug 2012 14:57:32 -0000
-Received: from ucsinet22.oracle.com (ucsinet22.oracle.com [156.151.31.94])
-       by acsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
-       ESMTP id q71EvK8L014108
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
-       Wed, 1 Aug 2012 14:57:21 GMT
-Received: from acsmt356.oracle.com (acsmt356.oracle.com [141.146.40.156])
-       by ucsinet22.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
-       q71EvJG6017143
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
-       Wed, 1 Aug 2012 14:57:19 GMT
-Received: from abhmt105.oracle.com (abhmt105.oracle.com [141.146.116.57])
-       by acsmt356.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
-       q71EvJj7029271; Wed, 1 Aug 2012 09:57:19 -0500
-Received: from phenom.dumpdata.com (/209.6.85.33)
-       by default (Oracle Beehive Gateway v4.0)
-       with ESMTP ; Wed, 01 Aug 2012 07:57:18 -0700
-Received: by phenom.dumpdata.com (Postfix, from userid 1000)
-       id 4F56A402B2; Wed,  1 Aug 2012 10:48:18 -0400 (EDT)
-Date: Wed, 1 Aug 2012 10:48:18 -0400
-From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-Message-ID: <20120801144818.GO7227@phenom.dumpdata.com>
-References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
-       <1343316846-25860-18-git-send-email-stefano.stabellini@eu.citrix.com>
-MIME-Version: 1.0
-Content-Disposition: inline
-In-Reply-To: <1343316846-25860-18-git-send-email-stefano.stabellini@eu.citrix.com>
-User-Agent: Mutt/1.5.21 (2010-09-15)
-X-Source-IP: ucsinet22.oracle.com [156.151.31.94]
-Cc: xen-devel@lists.xensource.com, linaro-dev@lists.linaro.org,
-       Ian.Campbell@citrix.com, arnd@arndb.de, catalin.marinas@arm.com,
-       tim@xen.org, linux-kernel@vger.kernel.org,
-       linux-arm-kernel@lists.infradead.org
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 18/24] xen/arm: compile blkfront and blkback
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Thu, Jul 26, 2012 at 04:34:00PM +0100, Stefano Stabellini wrote:
-> Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-> ---
->  drivers/block/xen-blkback/blkback.c  |    1 +
->  include/xen/interface/io/protocols.h |    3 +++
->  2 files changed, 4 insertions(+), 0 deletions(-)
-> 
-> diff --git a/drivers/block/xen-blkback/blkback.c b/drivers/block/xen-blkback/blkback.c
-> index 73f196c..63dd5b9 100644
-> --- a/drivers/block/xen-blkback/blkback.c
-> +++ b/drivers/block/xen-blkback/blkback.c
-> @@ -42,6 +42,7 @@
->  
->  #include <xen/events.h>
->  #include <xen/page.h>
-> +#include <xen/xen.h>
->  #include <asm/xen/hypervisor.h>
->  #include <asm/xen/hypercall.h>
->  #include "common.h"
-> diff --git a/include/xen/interface/io/protocols.h b/include/xen/interface/io/protocols.h
-> index 01fc8ae..0eafaf2 100644
-> --- a/include/xen/interface/io/protocols.h
-> +++ b/include/xen/interface/io/protocols.h
-> @@ -5,6 +5,7 @@
->  #define XEN_IO_PROTO_ABI_X86_64     "x86_64-abi"
->  #define XEN_IO_PROTO_ABI_IA64       "ia64-abi"
->  #define XEN_IO_PROTO_ABI_POWERPC64  "powerpc64-abi"
-> +#define XEN_IO_PROTO_ABI_ARM        "arm-abi"
-
-So one that has all of the 32/64 issues worked out? Nice.
-
->  
->  #if defined(__i386__)
->  # define XEN_IO_PROTO_ABI_NATIVE XEN_IO_PROTO_ABI_X86_32
-> @@ -14,6 +15,8 @@
->  # define XEN_IO_PROTO_ABI_NATIVE XEN_IO_PROTO_ABI_IA64
->  #elif defined(__powerpc64__)
->  # define XEN_IO_PROTO_ABI_NATIVE XEN_IO_PROTO_ABI_POWERPC64
-> +#elif defined(__arm__)
-> +# define XEN_IO_PROTO_ABI_NATIVE XEN_IO_PROTO_ABI_ARM
->  #else
->  # error arch fixup needed here
->  #endif
-> -- 
-> 1.7.2.5
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<20120801145215.GP7227@phenom.dumpdata.com> b/test/corpus/<20120801145215.GP7227@phenom.dumpdata.com>
deleted file mode 100644 (file)
index 00ec381..0000000
+++ /dev/null
@@ -1,147 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Aug 01 16:05:44 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 01 Aug 2012 16:05:44 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SwaUU-0006qK-W2
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 01 Aug 2012 16:05:44 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SwaQd-0003P7-DI; Wed, 01 Aug 2012 15:01:39 +0000
-Received: from mail27.messagelabs.com ([193.109.254.147])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <konrad.wilk@oracle.com>) id 1SwaQc-0003Op-D1
-       for xen-devel@lists.xensource.com; Wed, 01 Aug 2012 15:01:38 +0000
-X-Env-Sender: konrad.wilk@oracle.com
-X-Msg-Ref: server-10.tower-27.messagelabs.com!1343833289!3383439!1
-X-Originating-IP: [141.146.126.227]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogMTQxLjE0Ni4xMjYuMjI3ID0+IDY3MjQwNA==\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.2; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 26841 invoked from network); 1 Aug 2012 15:01:32 -0000
-Received: from acsinet15.oracle.com (HELO acsinet15.oracle.com)
-       (141.146.126.227)
-       by server-10.tower-27.messagelabs.com with DHE-RSA-AES256-SHA encrypted
-       SMTP; 1 Aug 2012 15:01:32 -0000
-Received: from acsinet21.oracle.com (acsinet21.oracle.com [141.146.126.237])
-       by acsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
-       ESMTP id q71F1HEa018867
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
-       Wed, 1 Aug 2012 15:01:17 GMT
-Received: from acsmt357.oracle.com (acsmt357.oracle.com [141.146.40.157])
-       by acsinet21.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
-       q71F1GE4022990
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
-       Wed, 1 Aug 2012 15:01:16 GMT
-Received: from abhmt107.oracle.com (abhmt107.oracle.com [141.146.116.59])
-       by acsmt357.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
-       q71F1G35022660; Wed, 1 Aug 2012 10:01:16 -0500
-Received: from phenom.dumpdata.com (/209.6.85.33)
-       by default (Oracle Beehive Gateway v4.0)
-       with ESMTP ; Wed, 01 Aug 2012 08:01:16 -0700
-Received: by phenom.dumpdata.com (Postfix, from userid 1000)
-       id 34172402B2; Wed,  1 Aug 2012 10:52:15 -0400 (EDT)
-Date: Wed, 1 Aug 2012 10:52:15 -0400
-From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>,
-       Mukesh Rathor <mukesh.rathor@oracle.com>
-Message-ID: <20120801145215.GP7227@phenom.dumpdata.com>
-References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
-       <1343316846-25860-20-git-send-email-stefano.stabellini@eu.citrix.com>
-MIME-Version: 1.0
-Content-Disposition: inline
-In-Reply-To: <1343316846-25860-20-git-send-email-stefano.stabellini@eu.citrix.com>
-User-Agent: Mutt/1.5.21 (2010-09-15)
-X-Source-IP: acsinet21.oracle.com [141.146.126.237]
-Cc: xen-devel@lists.xensource.com, linaro-dev@lists.linaro.org,
-       Ian.Campbell@citrix.com, arnd@arndb.de, catalin.marinas@arm.com,
-       tim@xen.org, linux-kernel@vger.kernel.org,
-       linux-arm-kernel@lists.infradead.org
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 20/24] xen: update xen_add_to_physmap
-       interface
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Thu, Jul 26, 2012 at 04:34:02PM +0100, Stefano Stabellini wrote:
-> Update struct xen_add_to_physmap to be in sync with Xen's version of the
-> structure.
-> The size field was introduced by:
-> 
-> changeset:   24164:707d27fe03e7
-> user:        Jean Guyader <jean.guyader@eu.citrix.com>
-> date:        Fri Nov 18 13:42:08 2011 +0000
-> summary:     mm: New XENMEM space, XENMAPSPACE_gmfn_range
-> 
-> According to the comment:
-> 
-> "This new field .size is located in the 16 bits padding between .domid
-> and .space in struct xen_add_to_physmap to stay compatible with older
-> versions."
-> 
-> This is not true on ARM where there is not padding, but it is valid on
-> X86, so introducing size is safe on X86 and it is going to fix the
-> interace for ARM.
-
-Has this been checked actually for backwards compatibility? It sounds
-like it should work just fine with Xen 4.0 right?
-
-I believe this also helps Mukesh's patches, so CC-ing him here for
-his Ack.
-
-I can put this in right now in tree if we are 100% sure its compatiblie with 4.0.
-
-> 
-> Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-> ---
->  include/xen/interface/memory.h |    3 +++
->  1 files changed, 3 insertions(+), 0 deletions(-)
-> 
-> diff --git a/include/xen/interface/memory.h b/include/xen/interface/memory.h
-> index abbbff0..d8e33a9 100644
-> --- a/include/xen/interface/memory.h
-> +++ b/include/xen/interface/memory.h
-> @@ -163,6 +163,9 @@ struct xen_add_to_physmap {
->      /* Which domain to change the mapping for. */
->      domid_t domid;
->  
-> +    /* Number of pages to go through for gmfn_range */
-> +    uint16_t    size;
-> +
->      /* Source mapping space. */
->  #define XENMAPSPACE_shared_info 0 /* shared info page */
->  #define XENMAPSPACE_grant_table 1 /* grant table page */
-> -- 
-> 1.7.2.5
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<20120801145257.GQ7227@phenom.dumpdata.com> b/test/corpus/<20120801145257.GQ7227@phenom.dumpdata.com>
deleted file mode 100644 (file)
index e02b438..0000000
+++ /dev/null
@@ -1,135 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Aug 01 16:06:09 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 01 Aug 2012 16:06:09 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SwaUx-0006qz-La
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 01 Aug 2012 16:06:09 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SwaRZ-0003Ty-RO; Wed, 01 Aug 2012 15:02:37 +0000
-Received: from mail27.messagelabs.com ([193.109.254.147])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <konrad.wilk@oracle.com>) id 1SwaRX-0003TR-Vx
-       for xen-devel@lists.xensource.com; Wed, 01 Aug 2012 15:02:36 +0000
-X-Env-Sender: konrad.wilk@oracle.com
-X-Msg-Ref: server-3.tower-27.messagelabs.com!1343833335!10351858!1
-X-Originating-IP: [141.146.126.227]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogMTQxLjE0Ni4xMjYuMjI3ID0+IDY3MjQwNA==\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.2; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 11565 invoked from network); 1 Aug 2012 15:02:19 -0000
-Received: from acsinet15.oracle.com (HELO acsinet15.oracle.com)
-       (141.146.126.227)
-       by server-3.tower-27.messagelabs.com with DHE-RSA-AES256-SHA encrypted
-       SMTP; 1 Aug 2012 15:02:19 -0000
-Received: from ucsinet21.oracle.com (ucsinet21.oracle.com [156.151.31.93])
-       by acsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
-       ESMTP id q71F20DW019707
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
-       Wed, 1 Aug 2012 15:02:00 GMT
-Received: from acsmt356.oracle.com (acsmt356.oracle.com [141.146.40.156])
-       by ucsinet21.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
-       q71F1xM9014144
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
-       Wed, 1 Aug 2012 15:01:59 GMT
-Received: from abhmt110.oracle.com (abhmt110.oracle.com [141.146.116.62])
-       by acsmt356.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
-       q71F1wF8001225; Wed, 1 Aug 2012 10:01:58 -0500
-Received: from phenom.dumpdata.com (/209.6.85.33)
-       by default (Oracle Beehive Gateway v4.0)
-       with ESMTP ; Wed, 01 Aug 2012 08:01:58 -0700
-Received: by phenom.dumpdata.com (Postfix, from userid 1000)
-       id 181F6402B2; Wed,  1 Aug 2012 10:52:58 -0400 (EDT)
-Date: Wed, 1 Aug 2012 10:52:58 -0400
-From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-Message-ID: <20120801145257.GQ7227@phenom.dumpdata.com>
-References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
-       <1343316846-25860-21-git-send-email-stefano.stabellini@eu.citrix.com>
-MIME-Version: 1.0
-Content-Disposition: inline
-In-Reply-To: <1343316846-25860-21-git-send-email-stefano.stabellini@eu.citrix.com>
-User-Agent: Mutt/1.5.21 (2010-09-15)
-X-Source-IP: ucsinet21.oracle.com [156.151.31.93]
-Cc: xen-devel@lists.xensource.com, linaro-dev@lists.linaro.org,
-       Ian.Campbell@citrix.com, arnd@arndb.de, catalin.marinas@arm.com,
-       tim@xen.org, linux-kernel@vger.kernel.org,
-       linux-arm-kernel@lists.infradead.org
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 21/24] arm/v2m: initialize arch_timers even
- if v2m_timer is not present
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Thu, Jul 26, 2012 at 04:34:03PM +0100, Stefano Stabellini wrote:
-> Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-
-Should the maintainer of the v2m be CC-ed here?
-This looks like a bug-fix of itself?
-
-> ---
->  arch/arm/mach-vexpress/v2m.c |   11 ++++++-----
->  1 files changed, 6 insertions(+), 5 deletions(-)
-> 
-> diff --git a/arch/arm/mach-vexpress/v2m.c b/arch/arm/mach-vexpress/v2m.c
-> index fde26ad..dee1451 100644
-> --- a/arch/arm/mach-vexpress/v2m.c
-> +++ b/arch/arm/mach-vexpress/v2m.c
-> @@ -637,16 +637,17 @@ static void __init v2m_dt_timer_init(void)
->      node = of_find_compatible_node(NULL, NULL, "arm,sp810");
->      v2m_sysctl_init(of_iomap(node, 0));
->  
-> -    err = of_property_read_string(of_aliases, "arm,v2m_timer", &path);
-> -    if (WARN_ON(err))
-> -            return;
-> -    node = of_find_node_by_path(path);
-> -    v2m_sp804_init(of_iomap(node, 0), irq_of_parse_and_map(node, 0));
->      if (arch_timer_of_register() != 0)
->              twd_local_timer_of_register();
->  
->      if (arch_timer_sched_clock_init() != 0)
->              versatile_sched_clock_init(v2m_sysreg_base + V2M_SYS_24MHZ, 24000000);
-> +
-> +    err = of_property_read_string(of_aliases, "arm,v2m_timer", &path);
-> +    if (WARN_ON(err))
-> +            return;
-> +    node = of_find_node_by_path(path);
-> +    v2m_sp804_init(of_iomap(node, 0), irq_of_parse_and_map(node, 0));
->  }
->  
->  static struct sys_timer v2m_dt_timer = {
-> -- 
-> 1.7.2.5
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<20120801145413.GR7227@phenom.dumpdata.com> b/test/corpus/<20120801145413.GR7227@phenom.dumpdata.com>
deleted file mode 100644 (file)
index 3b22bb7..0000000
+++ /dev/null
@@ -1,131 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Aug 01 16:07:20 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 01 Aug 2012 16:07:20 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SwaW2-0006rN-R5
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 01 Aug 2012 16:07:20 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SwaSX-0003cI-FV; Wed, 01 Aug 2012 15:03:37 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <konrad.wilk@oracle.com>) id 1SwaSV-0003bH-8D
-       for xen-devel@lists.xensource.com; Wed, 01 Aug 2012 15:03:35 +0000
-Received: from [85.158.138.51:47686] by server-1.bemta-3.messagelabs.com id
-       9D/F1-31934-64549105; Wed, 01 Aug 2012 15:03:34 +0000
-X-Env-Sender: konrad.wilk@oracle.com
-X-Msg-Ref: server-12.tower-174.messagelabs.com!1343833412!20392170!1
-X-Originating-IP: [148.87.113.117]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogMTQ4Ljg3LjExMy4xMTcgPT4gNjY5Nzc4\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.2; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 23312 invoked from network); 1 Aug 2012 15:03:33 -0000
-Received: from rcsinet15.oracle.com (HELO rcsinet15.oracle.com)
-       (148.87.113.117)
-       by server-12.tower-174.messagelabs.com with DHE-RSA-AES256-SHA
-       encrypted SMTP; 1 Aug 2012 15:03:33 -0000
-Received: from acsinet22.oracle.com (acsinet22.oracle.com [141.146.126.238])
-       by rcsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
-       ESMTP id q71F3E9H020161
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
-       Wed, 1 Aug 2012 15:03:15 GMT
-Received: from acsmt358.oracle.com (acsmt358.oracle.com [141.146.40.158])
-       by acsinet22.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
-       q71F3EGY024998
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
-       Wed, 1 Aug 2012 15:03:14 GMT
-Received: from abhmt111.oracle.com (abhmt111.oracle.com [141.146.116.63])
-       by acsmt358.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
-       q71F3EM4002912; Wed, 1 Aug 2012 10:03:14 -0500
-Received: from phenom.dumpdata.com (/209.6.85.33)
-       by default (Oracle Beehive Gateway v4.0)
-       with ESMTP ; Wed, 01 Aug 2012 08:03:14 -0700
-Received: by phenom.dumpdata.com (Postfix, from userid 1000)
-       id 64908402B2; Wed,  1 Aug 2012 10:54:13 -0400 (EDT)
-Date: Wed, 1 Aug 2012 10:54:13 -0400
-From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-Message-ID: <20120801145413.GR7227@phenom.dumpdata.com>
-References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
-       <1343316846-25860-23-git-send-email-stefano.stabellini@eu.citrix.com>
-MIME-Version: 1.0
-Content-Disposition: inline
-In-Reply-To: <1343316846-25860-23-git-send-email-stefano.stabellini@eu.citrix.com>
-User-Agent: Mutt/1.5.21 (2010-09-15)
-X-Source-IP: acsinet22.oracle.com [141.146.126.238]
-Cc: xen-devel@lists.xensource.com, linaro-dev@lists.linaro.org,
-       Ian.Campbell@citrix.com, arnd@arndb.de, catalin.marinas@arm.com,
-       tim@xen.org, linux-kernel@vger.kernel.org,
-       linux-arm-kernel@lists.infradead.org
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 23/24] hvc_xen: allow dom0_write_console for
-       HVM guests
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Thu, Jul 26, 2012 at 04:34:05PM +0100, Stefano Stabellini wrote:
-> On ARM all guests are HVM guests, including Dom0.
-> Allow dom0_write_console to be called by an HVM domain.
-
-Um, but xen_hvm_domain() != xen_pv_domain() so won't this return without
-printing anything?
-
-> 
-> Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-> ---
->  drivers/tty/hvc/hvc_xen.c |    5 +----
->  1 files changed, 1 insertions(+), 4 deletions(-)
-> 
-> diff --git a/drivers/tty/hvc/hvc_xen.c b/drivers/tty/hvc/hvc_xen.c
-> index 3c04fb8..949edc2 100644
-> --- a/drivers/tty/hvc/hvc_xen.c
-> +++ b/drivers/tty/hvc/hvc_xen.c
-> @@ -616,12 +616,9 @@ static void xenboot_write_console(struct console *console, const char *string,
->      unsigned int linelen, off = 0;
->      const char *pos;
->  
-> -    if (!xen_pv_domain())
-> -            return;
-> -
->      dom0_write_console(0, string, len);
->  
-> -    if (xen_initial_domain())
-> +    if (!xen_pv_domain())
->              return;
->  
->      domU_write_console(0, "(early) ", 8);
-> -- 
-> 1.7.2.5
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<20120801145610.GS7227@phenom.dumpdata.com> b/test/corpus/<20120801145610.GS7227@phenom.dumpdata.com>
deleted file mode 100644 (file)
index 1abe5b6..0000000
+++ /dev/null
@@ -1,337 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Aug 01 16:09:23 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 01 Aug 2012 16:09:23 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SwaY4-0006rr-C0
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 01 Aug 2012 16:09:23 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SwaUb-0003pw-0j; Wed, 01 Aug 2012 15:05:45 +0000
-Received: from mail27.messagelabs.com ([193.109.254.147])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <konrad.wilk@oracle.com>) id 1SwaUa-0003pU-0A
-       for xen-devel@lists.xensource.com; Wed, 01 Aug 2012 15:05:44 +0000
-X-Env-Sender: konrad.wilk@oracle.com
-X-Msg-Ref: server-12.tower-27.messagelabs.com!1343833525!11001244!1
-X-Originating-IP: [141.146.126.227]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogMTQxLjE0Ni4xMjYuMjI3ID0+IDY3MjQwNA==\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.2; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 1726 invoked from network); 1 Aug 2012 15:05:26 -0000
-Received: from acsinet15.oracle.com (HELO acsinet15.oracle.com)
-       (141.146.126.227)
-       by server-12.tower-27.messagelabs.com with DHE-RSA-AES256-SHA encrypted
-       SMTP; 1 Aug 2012 15:05:26 -0000
-Received: from ucsinet21.oracle.com (ucsinet21.oracle.com [156.151.31.93])
-       by acsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
-       ESMTP id q71F5CpQ023672
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
-       Wed, 1 Aug 2012 15:05:13 GMT
-Received: from acsmt356.oracle.com (acsmt356.oracle.com [141.146.40.156])
-       by ucsinet21.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
-       q71F5BuB021553
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
-       Wed, 1 Aug 2012 15:05:11 GMT
-Received: from abhmt102.oracle.com (abhmt102.oracle.com [141.146.116.54])
-       by acsmt356.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
-       q71F5BNo004419; Wed, 1 Aug 2012 10:05:11 -0500
-Received: from phenom.dumpdata.com (/209.6.85.33)
-       by default (Oracle Beehive Gateway v4.0)
-       with ESMTP ; Wed, 01 Aug 2012 08:05:10 -0700
-Received: by phenom.dumpdata.com (Postfix, from userid 1000)
-       id 1CA3C402B2; Wed,  1 Aug 2012 10:56:10 -0400 (EDT)
-Date: Wed, 1 Aug 2012 10:56:10 -0400
-From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>,
-       Mukesh Rathor <mukesh.rathor@oracle.com>
-Message-ID: <20120801145610.GS7227@phenom.dumpdata.com>
-References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
-       <1343316846-25860-24-git-send-email-stefano.stabellini@eu.citrix.com>
-MIME-Version: 1.0
-Content-Disposition: inline
-In-Reply-To: <1343316846-25860-24-git-send-email-stefano.stabellini@eu.citrix.com>
-User-Agent: Mutt/1.5.21 (2010-09-15)
-X-Source-IP: ucsinet21.oracle.com [156.151.31.93]
-Cc: xen-devel@lists.xensource.com, linaro-dev@lists.linaro.org,
-       Ian.Campbell@citrix.com, arnd@arndb.de, catalin.marinas@arm.com,
-       tim@xen.org, linux-kernel@vger.kernel.org,
-       linux-arm-kernel@lists.infradead.org
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 24/24] [HACK] xen/arm: implement
- xen_remap_domain_mfn_range
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Thu, Jul 26, 2012 at 04:34:06PM +0100, Stefano Stabellini wrote:
-> From: Ian Campbell <Ian.Campbell@citrix.com>
-> 
-> Do not apply!
-
-Mukesh, I believe this is similar to what you had in mind.
-
-> 
-> This is a simple, hacky implementation of xen_remap_domain_mfn_range,
-> using XENMAPSPACE_gmfn_foreign.
-> 
-> It should use same interface as hybrid x86.
-
-Yeah.. We should get this done irrespective of this ARM patchset as
-it will certainly benefit the HVM domains.
-
-So  what is with the 0x9000 values?
-
-> 
-> Signed-off-by: Ian Campbell <Ian.Campbell@citrix.com>
-> Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-> ---
->  arch/arm/xen/enlighten.c       |   79 +++++++++++++++++++++++++++++++++++++++-
->  drivers/xen/privcmd.c          |   16 +++++----
->  drivers/xen/xenfs/super.c      |    7 ++++
->  include/xen/interface/memory.h |   10 ++++--
->  4 files changed, 101 insertions(+), 11 deletions(-)
-> 
-> diff --git a/arch/arm/xen/enlighten.c b/arch/arm/xen/enlighten.c
-> index 1476b0b..7092015 100644
-> --- a/arch/arm/xen/enlighten.c
-> +++ b/arch/arm/xen/enlighten.c
-> @@ -16,6 +16,10 @@
->  #include <linux/of.h>
->  #include <linux/of_irq.h>
->  #include <linux/of_address.h>
-> +#include <linux/mm.h>
-> +#include <linux/ioport.h>
-> +
-> +#include <asm/pgtable.h>
->  
->  struct start_info _xen_start_info;
->  struct start_info *xen_start_info = &_xen_start_info;
-> @@ -38,12 +42,85 @@ EXPORT_SYMBOL_GPL(xen_platform_pci_unplug);
->  
->  static __read_mostly int xen_events_irq = -1;
->  
-> +#define FOREIGN_MAP_BUFFER 0x90000000UL
-> +#define FOREIGN_MAP_BUFFER_SIZE 0x10000000UL
-> +struct resource foreign_map_resource = {
-> +    .start = FOREIGN_MAP_BUFFER,
-> +    .end = FOREIGN_MAP_BUFFER + FOREIGN_MAP_BUFFER_SIZE,
-> +    .name = "Xen foreign map buffer",
-> +    .flags = 0,
-> +};
-> +
-> +static unsigned long foreign_map_buffer_pfn = FOREIGN_MAP_BUFFER >> PAGE_SHIFT;
-> +
-> +struct remap_data {
-> +    struct mm_struct *mm;
-> +    unsigned long mfn;
-> +    pgprot_t prot;
-> +};
-> +
-> +static int remap_area_mfn_pte_fn(pte_t *ptep, pgtable_t token,
-> +                             unsigned long addr, void *data)
-> +{
-> +    struct remap_data *rmd = data;
-> +    pte_t pte = pfn_pte(rmd->mfn, rmd->prot);
-> +
-> +    if (rmd->mfn < 0x90010)
-> +            pr_crit("%s: ptep %p addr %#lx => %#x / %#lx\n",
-> +                   __func__, ptep, addr, pte_val(pte), rmd->mfn);
-> +
-> +    set_pte_at(rmd->mm, addr, ptep, pte);
-> +
-> +    rmd->mfn++;
-> +    return 0;
-> +}
-> +
->  int xen_remap_domain_mfn_range(struct vm_area_struct *vma,
->                             unsigned long addr,
->                             unsigned long mfn, int nr,
->                             pgprot_t prot, unsigned domid)
->  {
-> -    return -ENOSYS;
-> +    int i, rc = 0;
-> +    struct remap_data rmd = {
-> +            .mm = vma->vm_mm,
-> +            .prot = prot,
-> +    };
-> +    struct xen_add_to_physmap xatp = {
-> +            .domid = DOMID_SELF,
-> +            .space = XENMAPSPACE_gmfn_foreign,
-> +
-> +            .foreign_domid = domid,
-> +    };
-> +
-> +    if (foreign_map_buffer_pfn + nr > ((FOREIGN_MAP_BUFFER +
-> +                                    FOREIGN_MAP_BUFFER_SIZE)>>PAGE_SHIFT)) {
-> +            pr_crit("RAM out of foreign map buffers...\n");
-> +            return -EBUSY;
-> +    }
-> +
-> +    for (i = 0; i < nr; i++) {
-> +            xatp.idx = mfn + i;
-> +            xatp.gpfn = foreign_map_buffer_pfn + i;
-> +            rc = HYPERVISOR_memory_op(XENMEM_add_to_physmap, &xatp);
-> +            if (rc != 0) {
-> +                    pr_crit("foreign map add_to_physmap failed, err=%d\n", rc);
-> +                    goto out;
-> +            }
-> +    }
-> +
-> +    rmd.mfn = foreign_map_buffer_pfn;
-> +    rc = apply_to_page_range(vma->vm_mm,
-> +                             addr,
-> +                             (unsigned long)nr << PAGE_SHIFT,
-> +                             remap_area_mfn_pte_fn, &rmd);
-> +    if (rc != 0) {
-> +            pr_crit("apply_to_page_range failed rc=%d\n", rc);
-> +            goto out;
-> +    }
-> +
-> +    foreign_map_buffer_pfn += nr;
-> +out:
-> +    return rc;
->  }
->  EXPORT_SYMBOL_GPL(xen_remap_domain_mfn_range);
->  
-> diff --git a/drivers/xen/privcmd.c b/drivers/xen/privcmd.c
-> index 85226cb..3e15c22 100644
-> --- a/drivers/xen/privcmd.c
-> +++ b/drivers/xen/privcmd.c
-> @@ -20,6 +20,8 @@
->  #include <linux/pagemap.h>
->  #include <linux/seq_file.h>
->  #include <linux/miscdevice.h>
-> +#include <linux/resource.h>
-> +#include <linux/ioport.h>
->  
->  #include <asm/pgalloc.h>
->  #include <asm/pgtable.h>
-> @@ -196,9 +198,6 @@ static long privcmd_ioctl_mmap(void __user *udata)
->      LIST_HEAD(pagelist);
->      struct mmap_mfn_state state;
->  
-> -    if (!xen_initial_domain())
-> -            return -EPERM;
-> -
->      if (copy_from_user(&mmapcmd, udata, sizeof(mmapcmd)))
->              return -EFAULT;
->  
-> @@ -286,9 +285,6 @@ static long privcmd_ioctl_mmap_batch(void __user *udata)
->      LIST_HEAD(pagelist);
->      struct mmap_batch_state state;
->  
-> -    if (!xen_initial_domain())
-> -            return -EPERM;
-> -
->      if (copy_from_user(&m, udata, sizeof(m)))
->              return -EFAULT;
->  
-> @@ -365,6 +361,11 @@ static long privcmd_ioctl(struct file *file,
->      return ret;
->  }
->  
-> +static void privcmd_close(struct vm_area_struct *vma)
-> +{
-> +    /* TODO: unmap VMA */
-> +}
-> +
->  static int privcmd_fault(struct vm_area_struct *vma, struct vm_fault *vmf)
->  {
->      printk(KERN_DEBUG "privcmd_fault: vma=%p %lx-%lx, pgoff=%lx, uv=%p\n",
-> @@ -375,7 +376,8 @@ static int privcmd_fault(struct vm_area_struct *vma, struct vm_fault *vmf)
->  }
->  
->  static struct vm_operations_struct privcmd_vm_ops = {
-> -    .fault = privcmd_fault
-> +    .fault = privcmd_fault,
-> +    .close = privcmd_close,
->  };
->  
->  static int privcmd_mmap(struct file *file, struct vm_area_struct *vma)
-> diff --git a/drivers/xen/xenfs/super.c b/drivers/xen/xenfs/super.c
-> index a84b53c..edbe22f 100644
-> --- a/drivers/xen/xenfs/super.c
-> +++ b/drivers/xen/xenfs/super.c
-> @@ -12,6 +12,7 @@
->  #include <linux/module.h>
->  #include <linux/fs.h>
->  #include <linux/magic.h>
-> +#include <linux/ioport.h>
->  
->  #include <xen/xen.h>
->  
-> @@ -80,6 +81,8 @@ static const struct file_operations capabilities_file_ops = {
->      .llseek = default_llseek,
->  };
->  
-> +extern struct resource foreign_map_resource;
-> +
->  static int xenfs_fill_super(struct super_block *sb, void *data, int silent)
->  {
->      static struct tree_descr xenfs_files[] = {
-> @@ -100,6 +103,10 @@ static int xenfs_fill_super(struct super_block *sb, void *data, int silent)
->                                &xsd_kva_file_ops, NULL, S_IRUSR|S_IWUSR);
->              xenfs_create_file(sb, sb->s_root, "xsd_port",
->                                &xsd_port_file_ops, NULL, S_IRUSR|S_IWUSR);
-> +            rc = request_resource(&iomem_resource, &foreign_map_resource);
-> +            if (rc < 0)
-> +                    pr_crit("failed to register foreign map resource\n");
-> +            rc = 0; /* ignore */
->      }
->  
->      return rc;
-> diff --git a/include/xen/interface/memory.h b/include/xen/interface/memory.h
-> index d8e33a9..ec68945 100644
-> --- a/include/xen/interface/memory.h
-> +++ b/include/xen/interface/memory.h
-> @@ -167,9 +167,13 @@ struct xen_add_to_physmap {
->      uint16_t    size;
->  
->      /* Source mapping space. */
-> -#define XENMAPSPACE_shared_info 0 /* shared info page */
-> -#define XENMAPSPACE_grant_table 1 /* grant table page */
-> -    unsigned int space;
-> +#define XENMAPSPACE_shared_info  0 /* shared info page */
-> +#define XENMAPSPACE_grant_table  1 /* grant table page */
-> +#define XENMAPSPACE_gmfn         2 /* GMFN */
-> +#define XENMAPSPACE_gmfn_range   3 /* GMFN range */
-> +#define XENMAPSPACE_gmfn_foreign 4 /* GMFN from another guest */
-> +    uint16_t space;
-> +    domid_t foreign_domid; /* IFF gmfn_foreign */
->  
->      /* Index into source mapping space. */
->      unsigned long idx;
-> -- 
-> 1.7.2.5
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<20120802141341.GE16749@phenom.dumpdata.com> b/test/corpus/<20120802141341.GE16749@phenom.dumpdata.com>
deleted file mode 100644 (file)
index 95bd668..0000000
+++ /dev/null
@@ -1,129 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Aug 02 15:27:10 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 02 Aug 2012 15:27:10 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SwwMl-0006xD-TR
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 02 Aug 2012 15:27:10 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SwwIt-0000oV-VF; Thu, 02 Aug 2012 14:23:07 +0000
-Received: from mail27.messagelabs.com ([193.109.254.147])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <konrad.wilk@oracle.com>) id 1SwwIt-0000o1-0m
-       for xen-devel@lists.xensource.com; Thu, 02 Aug 2012 14:23:07 +0000
-X-Env-Sender: konrad.wilk@oracle.com
-X-Msg-Ref: server-15.tower-27.messagelabs.com!1343917379!1860610!1
-X-Originating-IP: [141.146.126.227]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogMTQxLjE0Ni4xMjYuMjI3ID0+IDY3NDk3OQ==\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.2; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 29790 invoked from network); 2 Aug 2012 14:23:00 -0000
-Received: from acsinet15.oracle.com (HELO acsinet15.oracle.com)
-       (141.146.126.227)
-       by server-15.tower-27.messagelabs.com with DHE-RSA-AES256-SHA encrypted
-       SMTP; 2 Aug 2012 14:23:00 -0000
-Received: from acsinet22.oracle.com (acsinet22.oracle.com [141.146.126.238])
-       by acsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
-       ESMTP id q72EMijl015231
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
-       Thu, 2 Aug 2012 14:22:44 GMT
-Received: from acsmt356.oracle.com (acsmt356.oracle.com [141.146.40.156])
-       by acsinet22.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
-       q72EMhlK024889
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
-       Thu, 2 Aug 2012 14:22:43 GMT
-Received: from abhmt106.oracle.com (abhmt106.oracle.com [141.146.116.58])
-       by acsmt356.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
-       q72EMgBr027615; Thu, 2 Aug 2012 09:22:42 -0500
-Received: from phenom.dumpdata.com (/209.6.85.33)
-       by default (Oracle Beehive Gateway v4.0)
-       with ESMTP ; Thu, 02 Aug 2012 07:22:42 -0700
-Received: by phenom.dumpdata.com (Postfix, from userid 1000)
-       id 9F5584029A; Thu,  2 Aug 2012 10:13:41 -0400 (EDT)
-Date: Thu, 2 Aug 2012 10:13:41 -0400
-From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-To: Ian Campbell <Ian.Campbell@citrix.com>
-Message-ID: <20120802141341.GE16749@phenom.dumpdata.com>
-References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
-       <1343316846-25860-1-git-send-email-stefano.stabellini@eu.citrix.com>
-       <50197527.3070007@gmail.com>
-       <1343892951.7571.50.camel@dagon.hellion.org.uk>
-MIME-Version: 1.0
-Content-Disposition: inline
-In-Reply-To: <1343892951.7571.50.camel@dagon.hellion.org.uk>
-User-Agent: Mutt/1.5.21 (2010-09-15)
-X-Source-IP: acsinet22.oracle.com [141.146.126.238]
-Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
-       "linaro-dev@lists.linaro.org" <linaro-dev@lists.linaro.org>,
-       "arnd@arndb.de" <arnd@arndb.de>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>,
-       "catalin.marinas@arm.com" <catalin.marinas@arm.com>,
-       "Tim \(Xen.org\)" <tim@xen.org>,
-       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
-       Rob Herring <robherring2@gmail.com>, "linux-arm-kernel@lists.infradead.org"
-       <linux-arm-kernel@lists.infradead.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 01/24] arm: initial Xen support
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Thu, Aug 02, 2012 at 08:35:51AM +0100, Ian Campbell wrote:
-> On Wed, 2012-08-01 at 19:27 +0100, Rob Herring wrote:
-> > On 07/26/2012 10:33 AM, Stefano Stabellini wrote:
-> > > - Basic hypervisor.h and interface.h definitions.
-> > > - Skelethon enlighten.c, set xen_start_info to an empty struct.
-> > > - Do not limit xen_initial_domain to PV guests.
-> > > 
-> > > The new code only compiles when CONFIG_XEN is set, that is going to be
-> > > added to arch/arm/Kconfig in a later patch.
-> > > 
-> > > Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-> > > ---
-> > >  arch/arm/Makefile                     |    1 +
-> > >  arch/arm/include/asm/hypervisor.h     |    6 +++
-> > >  arch/arm/include/asm/xen/hypervisor.h |   19 ++++++++++
-> > >  arch/arm/include/asm/xen/interface.h  |   64 +++++++++++++++++++++++++++++++++
-> > 
-> > These headers don't seem particularly ARM specific. Could they be moved
-> > to asm-generic or include/linux?
-> 
-> Or perhaps include/xen.
-> 
-> A bunch of it also looks like x86 specific stuff which has crept in.
-> e.g. PARAVIRT_LAZY_FOO and paravirt_get_lazy_mode() are arch/x86
-> specific and shouldn't be called from common code (and aren't, AFAICT).
-
-The could be moved out..
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<201208070018394210381@gmail.com> b/test/corpus/<201208070018394210381@gmail.com>
deleted file mode 100644 (file)
index 2b94843..0000000
+++ /dev/null
@@ -1,342 +0,0 @@
-From xen-devel-bounces@lists.xen.org Tue Aug 07 16:49:11 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Tue, 07 Aug 2012 16:49:11 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1Sym1s-0001rj-Uc
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 07 Aug 2012 16:49:11 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1Sylxl-0005b2-RF; Tue, 07 Aug 2012 15:44:53 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <tupeng212@gmail.com>) id 1Sylxj-0005ax-TE
-       for xen-devel@lists.xen.org; Tue, 07 Aug 2012 15:44:52 +0000
-Received: from [85.158.138.51:11910] by server-2.bemta-3.messagelabs.com id
-       48/01-29239-3F731205; Tue, 07 Aug 2012 15:44:51 +0000
-X-Env-Sender: tupeng212@gmail.com
-X-Msg-Ref: server-11.tower-174.messagelabs.com!1344354283!30849711!1
-X-Originating-IP: [209.85.161.173]
-X-SpamReason: No, hits=1.1 required=7.0 tests=HTML_60_70,HTML_MESSAGE,
-       MIME_BASE64_TEXT, MIME_BOUND_NEXTPART, ML_RADAR_SPEW_LINKS_14,
-       RCVD_BY_IP, spamassassin: 
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.2; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 11853 invoked from network); 7 Aug 2012 15:44:44 -0000
-Received: from mail-gg0-f173.google.com (HELO mail-gg0-f173.google.com)
-       (209.85.161.173)
-       by server-11.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
-       7 Aug 2012 15:44:44 -0000
-Received: by ggna5 with SMTP id a5so547276ggn.32
-       for <xen-devel@lists.xen.org>; Tue, 07 Aug 2012 08:44:42 -0700 (PDT)
-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
-       h=date:from:to:reply-to:subject:x-priority:x-guid:x-has-attach
-       :x-mailer:mime-version:message-id:content-type;
-       bh=TbNkOp/ovqNvhYuwW2h1SiKCYPyISirE8+k6nB0QhuE=;
-       b=z8qpDfR6L/AFjHRzdaemlicE6Wzi66GiYd4v5WE4TlpNijkBbKWrlUXXED6niByQI5
-       qEYIbH+vi/31AisD2R1I3rkeb1cBDvZ6zHEfXTZCudxdVyx0gioSCTgEbtbsmfQBf1zu
-       U68pH4vUZlX6aN9/PGdh3KvnskiRT1ETrh3J+l1oOVfTO+TRtO81cQ41//TISBj13Vzj
-       qGv2QjKEarIcCM5V3tDqXdqrqs8Ld1AjZhxN9NeDZq8xBHm09anrRzJ0qp6pLViwwkCR
-       zbWSsAdmOilFdVH8/JfqRUF4P77/WhH7g3UeA9wSNjWoQo7MUNKnMdiB4xhJX5+nrA7C
-       TniQ==
-Received: by 10.66.77.168 with SMTP id t8mr26942201paw.28.1344354282162;
-       Tue, 07 Aug 2012 08:44:42 -0700 (PDT)
-Received: from root ([115.204.231.222])
-       by mx.google.com with ESMTPS id hx9sm11385213pbc.68.2012.08.07.08.44.40
-       (version=SSLv3 cipher=OTHER); Tue, 07 Aug 2012 08:44:41 -0700 (PDT)
-Date: Tue, 7 Aug 2012 23:44:45 +0800
-From: tupeng212 <tupeng212@gmail.com>
-To: xen-devel <xen-devel@lists.xen.org>
-X-Priority: 3
-X-GUID: 4CCF6910-D5EA-4E57-987E-088212FED4CD
-X-Has-Attach: no
-X-Mailer: Foxmail 7.0.1.87[cn]
-Mime-Version: 1.0
-Message-ID: <201208070018394210381@gmail.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-Reply-To: tupeng212 <tupeng212@gmail.com>
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: multipart/mixed; boundary="===============1615201137309538416=="
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,FREEMAIL_FROM,
-       FSL_FREEMAIL_1,FSL_FREEMAIL_2,HTML_MESSAGE,RCVD_IN_DNSWL_MED,T_DKIM_INVALID,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: [Xen-devel] Big Bug:Time in VM running on xen goes slower
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-This is a multi-part message in MIME format.
-
---===============1615201137309538416==
-Content-Type: multipart/alternative;
-       boundary="----=_001_NextPart421446275566_=----"
-
-This is a multi-part message in MIME format.
-
-------=_001_NextPart421446275566_=----
-Content-Type: text/plain;
-       charset="gb2312"
-Content-Transfer-Encoding: base64
-
-RGVhciBhbGw6DQpJIGhhdmUgZm91bmQgYSBiaWcgYnVnIG9uIHhlbiBjb25jZXJuaW5nIHRpbWUg
-dmlydHVhbGl6YXRpb24uIFBsZWFzZSBsZXQgbWUgc2hvdyB5b3UgdGhlIHdob2xlIHByb2Nlc3M6
-DQoNCjEgUGhlbm9tZW5vbg0Kd2hlbiBJIHJ1biBhIEpWTSBiYXNlZCBwcm9ncmFtIGluIElFIGJy
-b3dzZXIgaW4gbXkgVmlydHVhbCBNYWNoaW5lLCBJIGhhdmUgZm91bmQgY2xlYXJseSB0aGF0IHRp
-bWUgYXQgdGhlIHJpZ2h0IGJvdHRvbSBjb3JuZXIgaW4gbXkgVk0gZ2V0cyBtb3JlIHNsb3dlciBh
-bmQgc2xvd2VyLg0KSSBzdHVkaWVkIHRoZSBidWcgZGVlcGx5LCBhbmQgZm91bmQgc29tZXRoaW5n
-IGJlbG93Lg0KDQoyIFhlbg0Kdm14X3ZtZXhpdF9oYW5kbGVyICAtLT4gLi4uLi4uLi4uIC0tPiBo
-YW5kbGVfcnRjX2lvICAtLT4gcnRjX2lvcG9ydF93cml0ZSAgLS0+IHJ0Y190aW1lcl91cGRhdGUg
-LS0+IHNldCBSVEMncyBSRUdfQSB0byBhIGhpZ2ggcmF0ZS0tPiBjcmVhdGVfcGVyaW9kaWNfdGlt
-ZShkaXNhYmxlIHRoZSBmb3JtZXIgdGltZXIsIGFuZCBpbml0IGEgbmV3IG9uZSkNCldpbjcgaXMg
-aW5zdGFsbGVkIGluIHRoZSB2bS4gVGhpcyBjYWxsaW5nIHBhdGggaXMgZXhlY3V0ZWQgc28gZnJl
-cXVlbnQgdGhhdCBtYXkgY29tZSBkb3duIHRvIHNldCB0aGUgUlRDJ3MgUkVHX0EgaHVuZHJlZHMg
-b2YgdGltZXMgZXZlcnkgc2Vjb25kIGJ1dCB3aXRoIHRoZSBzYW1lIHJhdGUoOTc2LjU2MnVzKDEw
-MjRIWikpLCBpdCBpcyBzbyBhYm5vcm1hbCB0byBtZSB0byBzZWUgc3VjaCBiZWhhdmlvci4NCg0K
-MyBPUw0KSSBoYXZlIHRyaWVkIHRvIGZpbmQgd2h5IHRoZSB3aW43IHNldHRlZCBSVEMncyByZWdB
-IHNvIGZyZXF1ZW50bHkuIGZpbmFsbHkgZ290IHRoZSByZXN1bHQsIGFsbCB0aGF0IGNvbWVzIGZy
-b20gYSBmdW5jdGlvbjogTnRTZXRUaW1lclJlc29sdXRpb24gLS0+IDB4NzAsMHg3MQ0Kd2hlbiBJ
-IGF0dGFjaGVkIHdpbmRiZyBpbnRvIHRoZSBndWVzdCBPUywgSSBhbHNvIGZvdW5kIHRoZSBzb3Vy
-Y2UsIHRoZXkgYXJlIGFsbCBjYWxsZWQgZnJvbSBhIHVwcGVyIHN5c3RlbSBjYWxsIHRoYXQgY29t
-ZXMgZnJvbSBKVk0oSmF2YSBWaXJ0dWFsIE1hY2hpbmUpLg0KDQo0IEpWTQ0KSSBkb24ndCBrbm93
-IHdoeSBKVk0gY2FsbHMgTnRTZXRUaW1lclJlc29sdXRpb24gdG8gc2V0IHRoZSBzYW1lIFJUQydz
-IHJhdGUgZG93biAoOTc2LjU2MnVzKDEwMjRIWikpIHNvIGZyZXF1ZW50bHkuIA0KQnV0IGZvdW5k
-IHNvbWV0aGluZyB1c2VmdWwsIGluIHRoZSBqYXZhIHNvdXJjZSBjb2RlLCBJIGZvdW5kIG1hbnkg
-cGFsYWNlcyB3cml0dGVuIHdpdGggdGltZS5zY2hlZHVsZUF0Rml4ZWRSYXRlKCksIEluZm9ybWF0
-aW9ucyBmcm9tIEludGVybmV0IHRvbGQgbWUgdGhpcyBmdW5jdGlvbiBzY2hlZHVsZUF0Rml4ZWRS
-YXRlIGRlbWFuZHMgYSBoaWdoZXIgdGltZSByZXNvbHV0aW9uLiBzbyBJIGd1ZXNzIHRoZSB3aG9s
-ZSBwcm9jZXNzIG1heSBiZSB0aGlzOiANCmphdmEgd2FudHMgYSBoaWdoZXIgdGltZSByZXNvbHV0
-aW9uIHRpbWVyLCBzbyBpdCBjaGFuZ2VzIHRoZSBSVEMncyByYXRlIGZyb20gMTUuNjI1bXMoNjRI
-WikgdG8gOTc2LjU2MnVzKDEwMjRIWiksIGFmdGVyIHRoYXQsIGl0IHJlY29uZmlybXMgd2hldGhl
-ciB0aGUgdGltZSBpcyBhY2N1cmF0ZSBhcyBleHBlY3RlZCwgYnV0IGl0J3Mgc29ycnkgdG8gZ2V0
-IHNvbWUgbm90aWNlIGl0ICdzIG5vdCBhY2N1cmF0ZSBlaXRoZXIuIHNvIGl0IHNldHMgIHRoZSBS
-VEMncyByYXRlIGZyb20gMTUuNjI1bXMoNjRIWikgdG8gOTc2LjU2MnVzKDEwMjRIWikgYWdhaW4g
-YW5kIGFnYWluLi4uLCBhdCBsYXN0LCByZXN1bHRzIGluIGEgc2xvdyBzeXN0ZW0gdGltZXIgaW4g
-dm0uDQp0aGVyZSBpcyBhbHNvIGEgZnJlcXVlbnRseSBjYWxsZWQgZnVuY3Rpb24gZ29pbmcgaW50
-byBteSBleWVzOiBRdWVyeVBlcmZvcm1hbmNlQ291bnRlci4NCg0KDQp3aGF0IG15IHByb2JsZW1z
-IGFyZToNCjEgd2h5IHRoZSBKVk0gc2V0cyB0aGUgc2FtZSBSVEMncyByYXRlIDk3NjU2MiBkb3du
-IHRvIHRoZSBjb21zIGFnYWluIGFuZCBhZ2Fpbj8gd2hhdCBoZSBmb3VuZCAgaXMgYWJub3JtYWw/
-DQoyIGV2ZW4gYSBhYm5vcm1hbCB1c2VyIHByb2dyYW0gY2FsbHMgY3JlYXRlX3BlcmlvZGljX3Rp
-bWUgdG8gc2V0IHRoZSByYXRlIGFnYWluIGFuZCBhZ2FpbiwgaG93IGRvIHdlIGF2b2lkIHRoZSBp
-bmZsdWVuY2UgdXBvbiBvdXIgdGltZSBpbiB2bT8gaG93IGRvIHdlIGNvbXBlbnNhdGUgdGhlIGVs
-YXBzZWQgdGltZSBhdCB0aGUgc3dpdGNoaW5nIHBvaW50PyBlc3BlY2lhbGx5IHdoZW4gdGhlIHN3
-aXRjaCBpcyBzbyBmcmVxdWVudC4NCg0KY2FuIHNvbWUgYmlnIGZpZ3VyZXMgZ2l2ZSBtZSBzb21l
-IGFkdmljZXMgb24gdGhpcz8NCnRoYW5rcyENCg0KDQoNCnR1cGVuZzIxMg==
-
-------=_001_NextPart421446275566_=----
-Content-Type: text/html;
-       charset="gb2312"
-Content-Transfer-Encoding: quoted-printable
-
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<HTML><HEAD>
-<META http-equiv=3DContent-Type content=3D"text/html; charset=3Dgb2312">
-<STYLE>
-BLOCKQUOTE {
-       MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; MARGIN-LEFT: 2em
-}
-OL {
-       MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px
-}
-UL {
-       MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px
-}
-P {
-       MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px
-}
-BODY {
-       FONT-SIZE: 10.5pt; COLOR: #000000; LINE-HEIGHT: 1.5; FONT-FAMILY: =CB=CE=
-=CC=E5
-}
-</STYLE>
-
-<META content=3D"MSHTML 6.00.2900.5512" name=3DGENERATOR></HEAD>
-<BODY style=3D"MARGIN: 10px">
-<DIV>Dear all:</DIV>
-<DIV style=3D"TEXT-INDENT: 2em">I have found a big bug on xen concerning t=
-ime=20
-virtualization. Please let me show you the whole process:</DIV>
-<DIV style=3D"TEXT-INDENT: 2em">&nbsp;</DIV>
-<DIV>1 <SPAN class=3Dshort_text lang=3Den id=3Dresult_box closure_uid_bpq0=
-rs=3D"95"=20
-a=3D"undefined" f=3D"4"><SPAN class=3Dhps=20
-closure_uid_bpq0rs=3D"214">Phenomenon</SPAN></SPAN></DIV>
-<DIV><SPAN class=3Dshort_text lang=3Den closure_uid_bpq0rs=3D"95" a=3D"und=
-efined"=20
-f=3D"4"><SPAN class=3Dhps closure_uid_bpq0rs=3D"214">when I run a JVM base=
-d program in=20
-IE browser in my Virtual Machine, I have found clearly that time at the ri=
-ght=20
-bottom&nbsp;corner&nbsp;in my&nbsp;VM gets more slower and=20
-slower.</SPAN></SPAN></DIV>
-<DIV><SPAN class=3Dshort_text lang=3Den closure_uid_bpq0rs=3D"95" a=3D"und=
-efined"=20
-f=3D"4"><SPAN class=3Dhps closure_uid_bpq0rs=3D"214">I studied the bug dee=
-ply, and=20
-found something below.</SPAN></SPAN></DIV>
-<DIV><SPAN class=3Dshort_text lang=3Den closure_uid_bpq0rs=3D"95" a=3D"und=
-efined"=20
-f=3D"4"><SPAN class=3Dhps closure_uid_bpq0rs=3D"214"></SPAN></SPAN>&nbsp;<=
-/DIV>
-<DIV><SPAN class=3Dshort_text lang=3Den closure_uid_bpq0rs=3D"95" a=3D"und=
-efined"=20
-f=3D"4"><SPAN class=3Dhps closure_uid_bpq0rs=3D"214">2 Xen</SPAN></SPAN></=
-DIV>
-<DIV><SPAN class=3Dshort_text lang=3Den closure_uid_bpq0rs=3D"95" a=3D"und=
-efined"=20
-f=3D"4"><SPAN class=3Dhps closure_uid_bpq0rs=3D"214">vmx_vmexit_handler&nb=
-sp; --&gt;=20
-......... --&gt; handle_rtc_io&nbsp; --&gt; rtc_ioport_write&nbsp; --&gt;=20
-rtc_timer_update --&gt; set RTC's REG_A to a high rate--&gt;=20
-create_periodic_time(disable the former timer, and init a new=20
-one)</SPAN></SPAN></DIV>
-<DIV><SPAN class=3Dshort_text lang=3Den closure_uid_bpq0rs=3D"95" a=3D"und=
-efined"=20
-f=3D"4"><SPAN class=3Dhps closure_uid_bpq0rs=3D"214">Win7 is installed in =
-the vm. This=20
-calling path is executed so frequent that may come down to set the RTC's R=
-EG_A=20
-hundreds of times every second but with the same rate(<FONT=20
-size=3D2>976.562us(1024HZ)</FONT>), it is so abnormal to me to see such=20
-behavior.</SPAN></SPAN></DIV>
-<DIV><SPAN class=3Dshort_text lang=3Den closure_uid_bpq0rs=3D"95" a=3D"und=
-efined"=20
-f=3D"4"><SPAN class=3Dhps closure_uid_bpq0rs=3D"214"></SPAN></SPAN>&nbsp;<=
-/DIV>
-<DIV><SPAN class=3Dshort_text lang=3Den closure_uid_bpq0rs=3D"95" a=3D"und=
-efined"=20
-f=3D"4"><SPAN class=3Dhps closure_uid_bpq0rs=3D"214">3 OS</SPAN></SPAN></D=
-IV>
-<DIV><SPAN class=3Dshort_text lang=3Den closure_uid_bpq0rs=3D"95" a=3D"und=
-efined"=20
-f=3D"4"><SPAN class=3Dhps closure_uid_bpq0rs=3D"214">I have tried to find =
-why the win7=20
-setted RTC's regA so frequently. finally got the result, all that&nbsp;com=
-es=20
-from&nbsp;a function: <FONT size=3D2><FONT=20
-color=3D#cc0000>NtSetTimerResolution</FONT> --&gt;=20
-0x70,0x71</FONT></SPAN></SPAN></DIV>
-<DIV><SPAN class=3Dshort_text lang=3Den closure_uid_bpq0rs=3D"95" a=3D"und=
-efined"=20
-f=3D"4"><SPAN class=3Dhps closure_uid_bpq0rs=3D"214"><FONT size=3D2>when I=
- attached=20
-windbg into the guest OS, I also found the source, they are all called fro=
-m a=20
-upper system call that comes from JVM(Java Virtual=20
-Machine).</FONT></SPAN></SPAN></DIV>
-<DIV><SPAN class=3Dshort_text lang=3Den closure_uid_bpq0rs=3D"95" a=3D"und=
-efined"=20
-f=3D"4"><SPAN class=3Dhps closure_uid_bpq0rs=3D"214"><FONT=20
-size=3D2></FONT></SPAN></SPAN><SPAN class=3Dshort_text lang=3Den=20
-closure_uid_bpq0rs=3D"95" a=3D"undefined" f=3D"4"><SPAN class=3Dhps=20
-closure_uid_bpq0rs=3D"214"><FONT size=3D2></FONT></SPAN></SPAN>&nbsp;</DIV=
->
-<DIV><SPAN class=3Dshort_text lang=3Den closure_uid_bpq0rs=3D"95" a=3D"und=
-efined"=20
-f=3D"4"><SPAN class=3Dhps closure_uid_bpq0rs=3D"214"><FONT size=3D2>4=20
-JVM</FONT></SPAN></SPAN></DIV>
-<DIV><SPAN class=3Dshort_text lang=3Den closure_uid_bpq0rs=3D"95" a=3D"und=
-efined"=20
-f=3D"4"><SPAN class=3Dhps closure_uid_bpq0rs=3D"214"><FONT size=3D2>I don'=
-t know why JVM=20
-calls <FONT color=3D#cc0000>NtSetTimerResolution</FONT> to set the same RT=
-C's rate=20
-down (976.562us(1024HZ)) so frequently. </FONT></SPAN></SPAN></DIV>
-<DIV><SPAN class=3Dshort_text lang=3Den closure_uid_bpq0rs=3D"95" a=3D"und=
-efined"=20
-f=3D"4"><SPAN class=3Dhps closure_uid_bpq0rs=3D"214"><FONT size=3D2>But fo=
-und something=20
-useful, </FONT></SPAN></SPAN><SPAN class=3Dshort_text lang=3Den=20
-closure_uid_bpq0rs=3D"95" a=3D"undefined" f=3D"4"><SPAN class=3Dhps=20
-closure_uid_bpq0rs=3D"214"><FONT size=3D2>in the java source code, I found=
- many=20
-palaces written with time.scheduleAtFixedRate(), Informations from Interne=
-t told=20
-me this function scheduleAtFixedRate demands a&nbsp;higher time resolution=
-.=20
-</FONT></SPAN></SPAN><SPAN class=3Dshort_text lang=3Den closure_uid_bpq0rs=
-=3D"95"=20
-a=3D"undefined" f=3D"4"><SPAN class=3Dhps closure_uid_bpq0rs=3D"214"><FONT=
- size=3D2>so I=20
-guess the whole process may be this: </FONT></SPAN></SPAN></DIV>
-<DIV><SPAN class=3Dshort_text lang=3Den closure_uid_bpq0rs=3D"95" a=3D"und=
-efined"=20
-f=3D"4"><SPAN class=3Dhps closure_uid_bpq0rs=3D"214"><FONT size=3D2>java w=
-ants a higher=20
-time resolution timer, so it changes the RTC's rate from 15.625ms(64HZ) to=
-=20
-976.562us(1024HZ), after that, it reconfirms whether the time is accurate =
-as=20
-expected, but it's sorry to get some notice it 's not accurate either. so =
-it=20
-sets&nbsp; the RTC's rate from 15.625ms(64HZ) to 976.562us(1024HZ) again a=
-nd=20
-again..., at last, results in a slow system timer in=20
-vm.</FONT></SPAN></SPAN></DIV>
-<DIV><SPAN class=3Dshort_text lang=3Den closure_uid_bpq0rs=3D"95" a=3D"und=
-efined"=20
-f=3D"4"><SPAN class=3Dhps closure_uid_bpq0rs=3D"214"><FONT size=3D2>there =
-is also a=20
-frequently called function going into my eyes:=20
-QueryPerformanceCounter.</FONT></SPAN></SPAN></DIV>
-<DIV style=3D"TEXT-INDENT: 2em">&nbsp;</DIV>
-<DIV style=3D"TEXT-INDENT: 2em">&nbsp;</DIV>
-<DIV>what my problems are:</DIV>
-<DIV>1 why the JVM sets the same RTC's rate 976562 down to the coms again =
-and=20
-again? what he found&nbsp; is abnormal?</DIV>
-<DIV>2 even a abnormal user program calls create_periodic_time to set the =
-rate=20
-again and again, how do we avoid the influence upon our time in vm? how do=
- we=20
-compensate the elapsed time at the switching point? especially when the sw=
-itch=20
-is so frequent.</DIV>
-<DIV>&nbsp;</DIV>
-<DIV>can some big figures give me some advices on this?</DIV>
-<DIV>thanks!</DIV>
-<HR style=3D"WIDTH: 210px; HEIGHT: 1px" align=3Dleft color=3D#b5c4df SIZE=
-=3D1>
-
-<DIV><SPAN>tupeng212</SPAN></DIV>
-<DIV><SPAN></SPAN>&nbsp;</DIV>
-<DIV><SPAN></SPAN>&nbsp;</DIV>
-<DIV><SPAN></SPAN>&nbsp;</DIV></BODY></HTML>
-
-------=_001_NextPart421446275566_=------
-
-
-
---===============1615201137309538416==
-Content-Type: text/plain; charset="us-ascii"
-MIME-Version: 1.0
-Content-Transfer-Encoding: 7bit
-Content-Disposition: inline
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
---===============1615201137309538416==--
-
-
-
diff --git a/test/corpus/<2012081023124696835343@gmail.com> b/test/corpus/<2012081023124696835343@gmail.com>
deleted file mode 100644 (file)
index cc1d24e..0000000
+++ /dev/null
@@ -1,836 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Aug 10 16:23:34 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 10 Aug 2012 16:23:34 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1Szr3i-0003pp-89
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 10 Aug 2012 16:23:34 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1Szqze-0003HD-4k; Fri, 10 Aug 2012 15:19:18 +0000
-Received: from mail27.messagelabs.com ([193.109.254.147])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <tupeng212@gmail.com>) id 1Szqzc-0003H0-9c
-       for xen-devel@lists.xen.org; Fri, 10 Aug 2012 15:19:16 +0000
-X-Env-Sender: tupeng212@gmail.com
-X-Msg-Ref: server-5.tower-27.messagelabs.com!1344611947!6179093!1
-X-Originating-IP: [209.85.160.45]
-X-SpamReason: No, hits=2.5 required=7.0 tests=BODY_RANDOM_LONG,
-       HTML_50_60,HTML_MESSAGE,MAILTO_TO_SPAM_ADDR,MANY_EXCLAMATIONS,
-       MIME_BASE64_TEXT, MIME_BOUND_NEXTPART, ML_RADAR_SPEW_LINKS_14,
-       RCVD_BY_IP, spamassassin: 
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 29009 invoked from network); 10 Aug 2012 15:19:08 -0000
-Received: from mail-pb0-f45.google.com (HELO mail-pb0-f45.google.com)
-       (209.85.160.45)
-       by server-5.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
-       10 Aug 2012 15:19:08 -0000
-Received: by pbbrp12 with SMTP id rp12so2892304pbb.32
-       for <xen-devel@lists.xen.org>; Fri, 10 Aug 2012 08:19:06 -0700 (PDT)
-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
-       h=date:from:to:cc:reply-to:subject:references:x-priority:x-guid
-       :x-has-attach:x-mailer:mime-version:message-id:content-type;
-       bh=8zGlm2NVOf217ZK4JiOo4mB3iXyPrQMaEjqW76JIHGs=;
-       b=J6hK26y4mSk59Et9ljUC+oS2GY5YI5jqQtP3GIZeFpYP3p0cj06D+SsCVgOQJQa6j4
-       vZDZdKTzGcldyvIlf4nvK8Tyz2yXNRj6Gs0eFVzuPB3c0PvLdtxzGGrdqx1eJYLCuNXX
-       VwSgDsvSJTwzAAEdZFmbl97jhAguqVX0MHX0+ZEUfHJ1Tdlv4HbiOY0Up1ij0OIBhbIv
-       LeII3DJdWB9OetCd2qPygVeYoBTd6pGtAiOd0xldBS5B++K7z347eL5L7GBvY4GVlsr1
-       /68LJcX2/3e+ZnWNp6EVPmlM0r+DwOB6m2PwW81JxEJQHAqcfw9bE52Wiqtz/rDZOsNI
-       v6Hg==
-Received: by 10.68.235.236 with SMTP id up12mr13299570pbc.79.1344611946411;
-       Fri, 10 Aug 2012 08:19:06 -0700 (PDT)
-Received: from root ([115.199.255.118])
-       by mx.google.com with ESMTPS id rz10sm3519994pbc.32.2012.08.10.08.17.59
-       (version=SSLv3 cipher=OTHER); Fri, 10 Aug 2012 08:19:05 -0700 (PDT)
-Date: Fri, 10 Aug 2012 23:17:59 +0800
-From: tupeng212 <tupeng212@gmail.com>
-To: "Jan Beulich" <JBeulich@suse.com>
-References: <201208070018394210381@gmail.com>, 
-       <50224B7402000078000937DA@nat28.tlf.novell.com>
-X-Priority: 3
-X-GUID: EA6B0DE3-8EB2-44C6-BEFC-11C58EB28B8B
-X-Has-Attach: no
-X-Mailer: Foxmail 7.0.1.87[cn]
-Mime-Version: 1.0
-Message-ID: <2012081023124696835343@gmail.com>
-Cc: xen-devel <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-Reply-To: tupeng212 <tupeng212@gmail.com>
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: multipart/mixed; boundary="===============4979082272455034970=="
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-3.8 required=5.0 tests=BAYES_00,FREEMAIL_FROM,
-       FSL_FREEMAIL_1,FSL_FREEMAIL_2,HTML_MESSAGE,MIME_HTML_MOSTLY,RCVD_IN_DNSWL_MED,
-       T_DKIM_INVALID,T_RP_MATCHES_RCVD autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] Big Bug:Time in VM goes slower;
-       foud Solution but demand Judgement! A Interesting Story!
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-This is a multi-part message in MIME format.
-
---===============4979082272455034970==
-Content-Type: multipart/alternative;
-       boundary="----=_001_NextPart462848748572_=----"
-
-This is a multi-part message in MIME format.
-
-------=_001_NextPart462848748572_=----
-Content-Type: text/plain;
-       charset="gb2312"
-Content-Transfer-Encoding: base64
-
-RGVhciBKYW4gQmV1bGljaDoNClRoYW5rcyBmb3IgcmVwbHkhIFlvdSBhcmUgYSB2ZXJ5IGNsZXZl
-ciBtYW4sIHlvdSBoYXZlIHNlbnNlZCBzb21lIHRoaW5nIGltbWVkaWF0ZWx5IGFzIEkgZm91bmQg
-bGF0ZWx5LiBQbGVhc2UgZm9yZ2l2ZSBteSBzbyBsYXRlbHkgcmVwbHkhDQoNCjEgd2h5IEpWTSBz
-ZXQgdGhlIHNhbWUgcmF0ZSBkb3duIHNvIGZyZXF1ZW50bHkgPw0KdGhlIGZpcnN0IGFjaGlldmVt
-ZW50IEkgd2lsbCBzaG93IGlzIEkgZm91bmQgdGhlIGFjdGlvbiBpbiBKVk0gYW5kIHRoZSByZWFz
-b24gYnkgZGVidWdnaW5nIGRpc2Fzc2VtYmx5IGNvZGUuDQppdCBzZWVtcyB0byBtZSBsaWtlIHRo
-aXMgaW4gSlZNOg0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PSAxIHdo
-YXQgaGFwcGVuZWQgaW4gSlZNID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0K
-d2hpbGUgKGxvb3ApLy9vciBhIGZyZXF1ZW50IGNhbGwNCnsNCnRpbWVCZWdpblBlcmlvZCgpIC0t
-PiBOdFNldFRpbWVyUmVzb2x1dGlvbigxKGVuYmxlKSkNCnJjID0gV2FpdEZvck11bHRpcGxlT2Jq
-ZWN0cyg1LCAweDIyMjIyMjIsIDAsIDEpOyAvL3RoZSBsYXN0IHBhcmFtZXRlciBkZW1hbmRzIDFt
-cyB0aW1lciByZXNvbHV0aW9uDQppZiAocmMgPSBUSU1FT1VUKXsNCmJyZWFrOw0KfQ0KZWxzZXsN
-CmNhbGwgMHg0NDQ0NDQ0NDsNCn0NCnRpbWVFbmRQZXJpb2QoKSAtLT4gTnRTZXRUaW1lclJlc29s
-dXRpb24oMChkaXNhYmxlKSkNCn0NCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
-PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
-PT09PT09PT0NCnNvIGl0cyBiZWhhdmlvciBpcyB0b3RhbGx5IGxlZ2FsLCBmb3IgaXQgZGVtYW5k
-cyBoaWdoZXIgdGltZXIgcmVzb2x1dGlvbiAoaGVyZSAxbXMpLCBzbyBpdCBjYWxscyBOdFNldFRp
-bWVyUmVzb2x1dGlvbiB0byBpbXByb3ZlIHRoZSByZXNvbHV0aW9uLiANCml0IGlzIG5vdCBhcyBJ
-IGd1ZXNzZWQgInVuYWNjdXJhdGUiDQoNCkkgYWxzbyB3cm90ZSBhIHRlc3RlciBiZWxvdywgd2hp
-Y2ggY29uZmlybXMgbXkgc3VwcG9zZS4gaWYgeW91IGFyZSBpbnRlcmVzdGVkIGluIGl0ICwgeW91
-IGNhbiBidWlsZCBpdCBieSBNUydzIGNvbXBpbGVyLCBhbmQgYWZ0ZXIgcnVubmluZyB0aGUgdGVz
-dGVyIGluIFZNIGFib3V0IDEgbWludXRlcywgVk0ncyB0aW1lIHdpbGwgc2xvdy4NCj09PT09PT09
-PT09PT09PT09PT09PT09PT09PSAyIGEgdGVzdCB3aGljaCB3aWxsIGxlYWQgdG8gdHJpZ2dlciBz
-bG93aW5nIFZNJ3MgaW5uZXIgdGltZT09PT09PT09DQojaW5jbHVkZSA8c3RkaW8uaD4NCiNpbmNs
-dWRlIDx3aW5kb3dzLmg+DQp0eXBlZGVmIGludCAoX19zdGRjYWxsICpOVFNFVFRJTUVSKShJTiBV
-TE9ORyBSZXF1ZXN0ZWRSZXNvbHV0aW9uLCBJTiBCT09MRUFOIFNldCwgT1VUIFBVTE9ORyBBY3R1
-YWxSZXNvbHV0aW9uICk7DQp0eXBlZGVmIGludCAoX19zdGRjYWxsICpOVFFVRVJZVElNRVIpKE9V
-VCBQVUxPTkcgICBNaW5pbXVtUmVzb2x1dGlvbiwgT1VUIFBVTE9ORyBNYXhpbXVtUmVzb2x1dGlv
-biwgT1VUIFBVTE9ORyBDdXJyZW50UmVzb2x1dGlvbiApOw0KaW50IG1haW4oKQ0Kew0KRFdPUkQg
-bWluX3JlcyA9IDAsIG1heF9yZXMgPSAwLCBjdXJfcmVzID0gMCwgcmV0ID0gMDsNCkhNT0RVTEUg
-IGhkbGwgPSBOVUxMOw0KaGRsbCA9IEdldE1vZHVsZUhhbmRsZSgibnRkbGwuZGxsIik7DQpOVFNF
-VFRJTUVSIEFkZHJOdFNldFRpbWVyID0gMDsNCk5UUVVFUllUSU1FUiBBZGRyTnRRdWV5VGltZXIg
-PSAwOw0KQWRkck50U2V0VGltZXIgPSAoTlRTRVRUSU1FUikgR2V0UHJvY0FkZHJlc3MoaGRsbCwg
-Ik50U2V0VGltZXJSZXNvbHV0aW9uIik7DQpBZGRyTnRRdWV5VGltZXIgPSAoTlRRVUVSWVRJTUVS
-KUdldFByb2NBZGRyZXNzKGhkbGwsICJOdFF1ZXJ5VGltZXJSZXNvbHV0aW9uIik7DQoNCndoaWxl
-ICgxKQ0Kew0KcmV0ID0gQWRkck50UXVleVRpbWVyKCZtaW5fcmVzLCAmbWF4X3JlcywgJmN1cl9y
-ZXMpOw0KcHJpbnRmKCJtaW5fcmVzID0gJWQsIG1heF9yZXMgPSAlZCwgY3VyX3JlcyA9ICVkXG4i
-LG1pbl9yZXMsIG1heF9yZXMsIGN1cl9yZXMpOw0KU2xlZXAoMTApOw0KcmV0ID0gQWRkck50U2V0
-VGltZXIoMTAwMDAsIDEsICZjdXJfcmVzKTsNClNsZWVwKDEwKTsNCnJldCA9IEFkZHJOdFNldFRp
-bWVyKDEwMDAwLCAwLCAmY3VyX3Jlcyk7DQpTbGVlcCgxMCk7DQp9DQpyZXR1cm4gMDsNCn0NCj09
-PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
-PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0NCg0KMiBCdWcgaW4geGVuDQpKVk0g
-aXMgT0ssIHNvIGxlZnQgdGhlIGJ1ZyB0byB4ZW4sIEkgaGF2ZSBmb3VuZCBib3RoIHRoZSByZWFz
-b24gYW5kIHNvbHV0aW9uLiBBcyBKYW4gbWVudGlvbmVkIGF2b2lkaW5nIGNhbGwgY3JlYXRlX3Bl
-cmlvZGljX3RpbWUsIGl0IGdvdCBtdWNoIGJldHRlci4gc28gSSBtb2RpZmllZCBpdCBsaWtlIHRo
-aXMsIGlmIHRoZSBwdCB0aW1lciBpcyBjcmVhdGVkIGJlZm9yZSwgc2V0dGluZyBSZWdBIGRvd24g
-aXMganVzdCBjaGFuZ2luZyB0aGUgcGVyaW9kIHZhbHVlLCBzbyBJIGRvIG5vdGhpbmcgZXhjZXB0
-IGp1c3Qgc2V0dGluZyBwZXJpb2QgdG8gcHQncyBmaWVsZC4gaXQgaXMgT0shDQoNCkkgdGhvdWdo
-dCBwdC0+c2NoZWR1bGVkIGlzIHJlc3BvbnNpYmxlIGZvciBBY2N1cmFjeSBvZiBwdF9wcm9jZXNz
-X21pc3NlZF90aWNrcywgc28gd2Ugc2hvdWxkIG5vdCBpbnRlcmZlcmUgaXQgYXQgYW55IG91dGVy
-IGludmFkaW5nIG9yIGludGVycnVwdGlvbiwgc28gSSBsZXQgY3JlYXRlX3BlcmlvZGljX3RpbWUg
-Y2hhbmdlZCBldmVyeXRoaW5nIGJ1dCByZXNlcnZlZCBvbmx5IG9uZSBmaWxlZCBwdC0+c2NoZWR1
-bGVkIGFzIHNldHRlZCBiZWZvcmUsIEkgYW0gdmVyeSBoYXBweSB0byBmaW5kIHRoZSBidWcgZGlz
-YXBwZWFyLiBBZnRlciBJIHJlY2hlY2tlZCB5b3VyIG1haWwgSSBmb3VuZCB5b3UgYXJlIHJlYWxs
-eSBhIHZlcnkgc21hcnQgbWFuLCB5b3UgaGF2ZSBwcmVkaWN0ZWQgc29tZXRoaW5nIQ0KDQpEaWQg
-eW91IGZ1cnRoZXIgY2hlY2sgd2hldGhlciB0aGUgYWRqdXN0bWVudHMgZG9uZSB0byB0aGUNCnNj
-aGVkdWxlZCB0aW1lIGluIGNyZWF0ZV9wZXJpb2RpY190aW1lKCkgYXJlIHJlc3BvbnNpYmxlIGZv
-ciB0aGlzDQpjb25jbHVzaW9uIG9mIHRoZSBKVk0gKGNvdWxkIGJlIGVmZmVjdGl2ZWx5IGRvdWJs
-aW5nIHRoZSBmaXJzdA0KaW50ZXJ2YWwgaWYgSFZNX1BBUkFNX1ZQVF9BTElHTiBpcyBzZXQsIGFu
-ZCB3aXRoIHRoZSBoaWdoIHJhdGUNCm9mIHJlLXNldHMgdGhpcyBjb3VsZCBjZXJ0YWlubHkgaGF2
-ZSBhIG1vcmUgdmlzaWJsZSBlZmZlY3QgdGhhbg0KaW50ZW5kZWQpPw0KDQpBZnRlciBJIHRyYWNr
-ZWQgcHQtPnNjaGVkdWxlZCwgbW9yZSBhbmQgbW9yZSB0cnV0aCBzdXJmYWNlZC4gSSB3aWxsIHNo
-b3cgeW91IHRoZSBSVEMncyBzcG90dGluZyBhcyBJIG9ic2VydmVkLg0Kbm9ybWFsIHNwb3QgaXMg
-bGlrZSB0aGlzOg0KMCAgICAgICAgICAgICAgIDEgICAgICAgICAgICAgICAyICAgICAgICAgICAg
-ICAgMyAgICAgICAgICAgICAgIDQgICAgICAgICAgICAgICA1DQouICAgICAgICAgICAgICAgLiAg
-ICAgICAgICAgICAgIC4gICAgICAgICAgICAgICAuICAgICAgICAgICAgICAgLiAgICAgICAgICAg
-ICAgIC4gICAgICAobm9ybWFsIHNwb3QpDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
-IHwocHQtPnNjaGVkdWxlZCBhdCAyKQ0KDQp3aGVuIGNyZWF0ZV9wZXJpb2RpY190aW1lIGludGVy
-ZmVyZSBwdC0+c2NoZWR1bGUgYXQgTk9XDQowICAgICAgICAgICAgICAgMSAgICAgICAgICAgICAg
-IDIgICAgICAgICAgICAgICAzICAgICAgICAgICAgICAgNCAgICAgICAgICAgICAgIDUNCi4gICAg
-ICAgICAgICAgICAuICAgICAgICAgICAgICAgLiAgICAgICAgICAgICAgIC4gICAgICAgICAgICAg
-ICAuICAgICAgICAgICAgICAgLiAgICAgIA0KICAgICAgICAgICAgICAgICAgICB8KE5PVykgICAg
-ICAgICAgICAgICAgICAgICAgfCAobmV3IHB0LT5zY2hlZHVsZWQgaXMgbW92ZWQgdG8gMyBhZnRl
-ciBBTElHTikNCg0Kc28gaXQgcmVhbCBzcG90IGlzIGxpa2UgdGhpczoNCi4gICAgICAgICAgICAg
-ICAuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4gICAgICAgICAgICAgICAuICAgICAg
-ICAgICAgICAgLiAgICAgICANCjAgICAgICAgICAgICAgICAxICAgICAgICAgICAgICAgMiAgICAg
-ICAgICAgICAgIDMgICAgICAgICAgICAgICA0ICAgICAgICAgICAgICAgNQ0KICAgICAgICAgICAg
-ICAgICAgICAgICAgICAgICAgICB8KGhlcmUgd2UgbWlzc2VkIG9uZSBzcG90IGF0IDIpDQoNCnRo
-ZSBvcmlnaW5hbCBwdC0+c2NoZWR1bGVkIGlzIGF0IDIgYmVmb3JlIGNyZWF0ZV9wZXJpb2RpY190
-aW1lIHdpbGwgYmUgZXhlY3V0ZWQsIGJ1dCBhZnRlciBpdCwgcHQtPnNjaGVkdWxlZCBpcyBtb3Zl
-ZCB0byAzLCBzbyBtaXNzZWQgb25lIHNwb3QgdG8gR3Vlc3RXaW4uDQoNCg0KMyB3aG8gaXMgd3Jv
-bmc/DQpJIGRvdWJ0IGFsaWduX3RpbWVyIHdvcnRoIHN1c3BlY3RlZDoNCnNfdGltZV90IGFsaWdu
-X3RpbWVyKHNfdGltZV90IGZpcnN0dGljaywgdWludDY0X3QgcGVyaW9kKQ0Kew0KICAgIGlmICgg
-IXBlcmlvZCApDQogICAgICAgIHJldHVybiBmaXJzdHRpY2s7DQoNCiAgICByZXR1cm4gZmlyc3R0
-aWNrICsgKHBlcmlvZCAtIDEpIC0gKChmaXJzdHRpY2sgLSAxKSAlIHBlcmlvZCk7IC8vaW4geGVu
-NC54DQogICAgcmV0dXJuIGZpcnN0dGljayAgLSAoKGZpcnN0dGljayAtIDEpICUgcGVyaW9kKTsv
-L2l0IHNob3VsZCBiZSBhbGlnbmVkIGxpa2UgdGhpcy4NCn0NCg0KSSBoYXZlIGFsc28gZm91bmQg
-YW5vdGhlciB1cGRhdGluZyBSVEMncyBSZWdBIGluIHRvb2xzXGlvZW11LXFlbXUteGVuXGh3XE1D
-YzE0NjgxOHJ0Yy5jOiANCg0KICAgIGlmIChwZXJpb2RfY29kZSAhPSAwICYmIChzLT5jbW9zX2Rh
-dGFbUlRDX1JFR19CXSAmIFJFR19CX1BJRSkpIHsNCiNlbmRpZg0KICAgICAgICBpZiAocGVyaW9k
-X2NvZGUgPD0gMikNCiAgICAgICAgICAgIHBlcmlvZF9jb2RlICs9IDc7DQogICAgICAgIC8qIHBl
-cmlvZCBpbiAzMiBLaHogY3ljbGVzICovDQogICAgICAgIHBlcmlvZCA9IDEgPDwgKHBlcmlvZF9j
-b2RlIC0gMSk7DQojaWZkZWYgSVJRX0NPQUxFU0NFX0hBQ0sNCiAgICAgICAgaWYocGVyaW9kICE9
-IHMtPnBlcmlvZCkNCiAgICAgICAgICAgIHMtPmlycV9jb2FsZXNjZWQgPSAocy0+aXJxX2NvYWxl
-c2NlZCAqIHMtPnBlcmlvZCkgLyBwZXJpb2Q7DQogICAgICAgIHMtPnBlcmlvZCA9IHBlcmlvZDsN
-CiNlbmRpZg0KICAgICAgICAvKiBjb21wdXRlIDMyIGtoeiBjbG9jayAqLw0KICAgICAgICBjdXJf
-Y2xvY2sgPSBtdWxkaXY2NChjdXJyZW50X3RpbWUsIDMyNzY4LCB0aWNrc19wZXJfc2VjKTsgLy9o
-ZXJlIEkgZG9uJ3QgbWFrZSBzZW5zZSBpdCAuLi4uLi4NCiAgICAgICAgbmV4dF9pcnFfY2xvY2sg
-PSAoY3VyX2Nsb2NrICYgfihwZXJpb2QgLSAxKSkgKyBwZXJpb2Q7DQogICAgICAgIHMtPm5leHRf
-cGVyaW9kaWNfdGltZSA9IG11bGRpdjY0KG5leHRfaXJxX2Nsb2NrLCB0aWNrc19wZXJfc2VjLCAz
-Mjc2OCkgKyAxOw0KICAgICAgICBxZW11X21vZF90aW1lcihzLT5wZXJpb2RpY190aW1lciwgcy0+
-bmV4dF9wZXJpb2RpY190aW1lKTsNCg0KDQoNCkkgZG9uJ3Qga25vdyB3aGF0IGhhcHBlbmVkIGlu
-IHJlYWwgUlRDLCB0aGUgbW9zdCBwb3B1bGFyIFJUQyBjaGlwIGlzIE1DMTQ2ODE4LCBJIGhhdmUg
-Y2hlY2tlZCBpdHMgZGF0YXNoZWV0IGJ1dCBmb3VuZCBub3RoaW5nIEkgd2FudC4gV2hhdCBJIHdh
-bnQgdG8ga25vdyBpcyBXaGVuIGEgcmVhbCBvdXRlciAweDcxIGNvbWUgZG93biB0byBzZXQgUlRD
-J3MgUmVnQSwgd2hvIGRvZXMgaXQgY2hhbmdlIG9yIHNwb3QgdGhlIG5leHQgcGVyaW9kaWMgaW50
-ZXJydXB0IHRpbWUgPyBJbiBteSBjYXNlLCB0aGUgcGVyaW9kIGRvZXNuJ3QgY2hhbmdlLCBpdCBt
-aXNzZXMgb25lIHNwb3QsIGV2ZW4gaWYgdGhlIHBlcmlvZCBjaGFuZ2VzIGhvdyB3aWxsIGl0IHNw
-b3QgdGhlIG5leHQgc2NoZWR1bGVkIHRpbWU/DQpJIG5lZWQgdGhlIG1hbiB3aG8ga25vd3MgdGhl
-IGRldGFpbHMgZGVlcGx5IGNvbmNlcm5pbmcgd2hlbiB1cGRhdGluZyBhIHJlYWwgUlRDJ3MgcmVn
-QSwgaG93IHdpbGwgaXQgdGFrZSBpdCBpbnRvIGVmZmVjdCwgYW5kIG1ha2UgdGhlIHRyYW5zaXRp
-b24gc21vb3RobHkgaW4gYSByZWFsIFJUQy4NCg0KSSBoYXZlIGJlZW4gdmVyeSBhbnhpb3VzIGlu
-IGFub3RoZXIgYXNwZWN0LCBpbiBvdXIgdmlydHVhbCBlbnZpcm9ubWVudCwgYXQgY3JlYXRlX3Bl
-cmlvZGljX3RpbWUsIE5PVygpIG1heSBiZSBmYXIgbW9yZSBsYXRlciB0aGFuIHB0LT5zY2hlZHVs
-ZWQgc2V0dGVkIGJlZm9yZSwgYXQgdGhpcyBwb2ludCwgdGhlIG5ldyBwdC0+c2NoZWR1bGVkIG1h
-eSBiZSBmYXIgbW9yZSBiZWhpbmQgdGhlIG9uZSBhZnRlciBleGVjdXRpbmcgY3JlYXRlX3Blcmlv
-ZGljX3RpbWUuIFNvIHRoZSBpbnRlcnZhbCBiZXR3ZWVuIGJvdGggd2hpY2ggc2hvdWxkIGJlIHRy
-ZWF0ZWQgYnkgcHRfcHJvY2Vzc19taXNzZWRfdGlja3MgdG8gdGhlIGZvcm1lciBwdC0+c2NoZWR1
-bGVkJ3MgcGVyaW9kIGlzIG5vdyBhbGwgdGhyb3duIGF3YXkgYXMgbm90aGluZyBtaXNzZWQuIFNv
-IEkgdGhpbmsgaG93IHRvIGhhbmRsZSB0aGUgaW50ZXJ2YWwgYmV0d2VlbiBib3RoIHB0LT5zY2hl
-ZHVsZWQgd29ydGggY29uc2lkZXJhdGlvbiBpbiBjcmVhdGVfcGVyaW9kaWNfdGltZS4NCg0KVGhh
-bmtzIQ0KDQoNCg0KDQp0dXBlbmcyMTINCg0KRnJvbTogSmFuIEJldWxpY2gNCkRhdGU6IDIwMTIt
-MDgtMDggMTc6MjANClRvOiB0dXBlbmcyMTINCkNDOiB4ZW4tZGV2ZWwNClN1YmplY3Q6IFJlOiBb
-WGVuLWRldmVsXSBCaWcgQnVnOlRpbWUgaW4gVk0gcnVubmluZyBvbiB4ZW4gZ29lcyBzbG93ZXIN
-Cj4+PiBPbiAwNy4wOC4xMiBhdCAxNzo0NCwgdHVwZW5nMjEyIDx0dXBlbmcyMTJAZ21haWwuY29t
-PiB3cm90ZToNCj4gMiBYZW4NCj4gdm14X3ZtZXhpdF9oYW5kbGVyICAtLT4gLi4uLi4uLi4uIC0t
-PiBoYW5kbGVfcnRjX2lvICAtLT4gcnRjX2lvcG9ydF93cml0ZSAgLS0+IA0KPiBydGNfdGltZXJf
-dXBkYXRlIC0tPiBzZXQgUlRDJ3MgUkVHX0EgdG8gYSBoaWdoIHJhdGUtLT4gY3JlYXRlX3Blcmlv
-ZGljX3RpbWUoZGlzYWJsZSANCj4gdGhlIGZvcm1lciB0aW1lciwgYW5kIGluaXQgYSBuZXcgb25l
-KQ0KPiBXaW43IGlzIGluc3RhbGxlZCBpbiB0aGUgdm0uIFRoaXMgY2FsbGluZyBwYXRoIGlzIGV4
-ZWN1dGVkIHNvIGZyZXF1ZW50IHRoYXQgDQo+IG1heSBjb21lIGRvd24gdG8gc2V0IHRoZSBSVEMn
-cyBSRUdfQSBodW5kcmVkcyBvZiB0aW1lcyBldmVyeSBzZWNvbmQgYnV0IHdpdGggDQo+IHRoZSBz
-YW1lIHJhdGUoOTc2LjU2MnVzKDEwMjRIWikpLCBpdCBpcyBzbyBhYm5vcm1hbCB0byBtZSB0byBz
-ZWUgc3VjaCANCj4gYmVoYXZpb3IuDQoNCl9JZl8gdGhlIHByb2JsZW0gaXMgbWVyZWx5IHdpdGgg
-dGhlIGhpZ2ggcmF0ZSBvZiBjYWxscyB0bw0KY3JlYXRlX3BlcmlvZGljX3RpbWUoKSwgSSB0aGlu
-ayB0aGlzIGNvdWxkIGJlIHRha2VuIGNhcmUgb2YgYnkNCmF2b2lkaW5nIHRoZSBjYWxsIChhbmQg
-cGVyaGFwcyB0aGUgY2FsbCB0byBydGNfdGltZXJfdXBkYXRlKCkgaW4NCnRoZSBmaXJzdCBwbGFj
-ZSkgYnkgY2hlY2tpbmcgd2hldGhlciBhbnl0aGluZyBhY3R1YWxseSBjaGFuZ2VzDQpkdWUgdG8g
-dGhlIGN1cnJlbnQgd3JpdGUuIEkgZG9uJ3QgdGhpbmssIGhvd2V2ZXIsIHRoYXQgdGhpcyB3b3Vs
-ZA0KaGVscCBtdWNoLCBhcyB0aGUgaGlnaCByYXRlIG9mIHBvcnQgYWNjZXNzZXMgKGFuZCBoZW5j
-ZSB0cmFwcw0KaW50byB0aGUgaHlwZXJ2aXNvcikgd291bGQgcmVtYWluLiBJdCBtaWdodCwgbmV2
-ZXJ0aGVsZXNzLCBnZXQNCnlvdXIgaW1tZWRpYXRlIHByb2JsZW0gb2YgdGhlIHRpbWUgc2xvd2lu
-ZyBkb3duIHRha2VuIGNhcmUgb2YNCmlmIHRoYXQgaXMgY2F1c2VkIGluc2lkZSBYZW4gKGJ1dCB0
-aGUgY2F1c2UgaGVyZSBtYXkgYXMgd2VsbCBiZSBpbg0KdGhlIFdpbmRvd3Mga2VybmVsKS4NCg0K
-PiAzIE9TDQo+IEkgaGF2ZSB0cmllZCB0byBmaW5kIHdoeSB0aGUgd2luNyBzZXR0ZWQgUlRDJ3Mg
-cmVnQSBzbyBmcmVxdWVudGx5LiBmaW5hbGx5IA0KPiBnb3QgdGhlIHJlc3VsdCwgYWxsIHRoYXQg
-Y29tZXMgZnJvbSBhIGZ1bmN0aW9uOiBOdFNldFRpbWVyUmVzb2x1dGlvbiAtLT4gDQo+IDB4NzAs
-MHg3MQ0KPiB3aGVuIEkgYXR0YWNoZWQgd2luZGJnIGludG8gdGhlIGd1ZXN0IE9TLCBJIGFsc28g
-Zm91bmQgdGhlIHNvdXJjZSwgdGhleSBhcmUgDQo+IGFsbCBjYWxsZWQgZnJvbSBhIHVwcGVyIHN5
-c3RlbSBjYWxsIHRoYXQgY29tZXMgZnJvbSBKVk0oSmF2YSBWaXJ0dWFsIA0KPiBNYWNoaW5lKS4N
-Cg0KR2V0dGluZyBXaW5kb3dzIHRvIGJlIGEgbGl0dGxlIHNtYXJ0ZXIgYW5kIGF2b2lkIHRoZSBw
-b3J0IEkvTyB3aGVuDQpkb2luZyByZWR1bmRhbnQgd3JpdGVzIHdvdWxkIG9mIGNvdXJzZSBiZSBl
-dmVuIGJldHRlciwgYnV0IGlzDQpjbGVhcmx5IGEgZGlmZmljdWx0IHRvIGFjaGlldmUgZ29hbC4N
-Cg0KPiA0IEpWTQ0KPiBJIGRvbid0IGtub3cgd2h5IEpWTSBjYWxscyBOdFNldFRpbWVyUmVzb2x1
-dGlvbiB0byBzZXQgdGhlIHNhbWUgUlRDJ3MgcmF0ZSANCj4gZG93biAoOTc2LjU2MnVzKDEwMjRI
-WikpIHNvIGZyZXF1ZW50bHkuIA0KPiBCdXQgZm91bmQgc29tZXRoaW5nIHVzZWZ1bCwgaW4gdGhl
-IGphdmEgc291cmNlIGNvZGUsIEkgZm91bmQgbWFueSBwYWxhY2VzIA0KPiB3cml0dGVuIHdpdGgg
-dGltZS5zY2hlZHVsZUF0Rml4ZWRSYXRlKCksIEluZm9ybWF0aW9ucyBmcm9tIEludGVybmV0IHRv
-bGQgbWUgDQo+IHRoaXMgZnVuY3Rpb24gc2NoZWR1bGVBdEZpeGVkUmF0ZSBkZW1hbmRzIGEgaGln
-aGVyIHRpbWUgcmVzb2x1dGlvbi4gc28gSSANCj4gZ3Vlc3MgdGhlIHdob2xlIHByb2Nlc3MgbWF5
-IGJlIHRoaXM6IA0KPiBqYXZhIHdhbnRzIGEgaGlnaGVyIHRpbWUgcmVzb2x1dGlvbiB0aW1lciwg
-c28gaXQgY2hhbmdlcyB0aGUgUlRDJ3MgcmF0ZSBmcm9tIA0KPiAxNS42MjVtcyg2NEhaKSB0byA5
-NzYuNTYydXMoMTAyNEhaKSwgYWZ0ZXIgdGhhdCwgaXQgcmVjb25maXJtcyB3aGV0aGVyIHRoZSAN
-Cj4gdGltZSBpcyBhY2N1cmF0ZSBhcyBleHBlY3RlZCwgYnV0IGl0J3Mgc29ycnkgdG8gZ2V0IHNv
-bWUgbm90aWNlIGl0ICdzIG5vdCANCj4gYWNjdXJhdGUgZWl0aGVyLiBzbyBpdCBzZXRzICB0aGUg
-UlRDJ3MgcmF0ZSBmcm9tIDE1LjYyNW1zKDY0SFopIHRvIA0KPiA5NzYuNTYydXMoMTAyNEhaKSBh
-Z2FpbiBhbmQgYWdhaW4uLi4sIGF0IGxhc3QsIHJlc3VsdHMgaW4gYSBzbG93IHN5c3RlbSB0aW1l
-ciANCj4gaW4gdm0uDQoNCk5vdyB0aGF0J3MgcmVhbGx5IHRoZSBmdW5kYW1lbnRhbCB0aGluZyB0
-byBmaW5kIG91dCAtIHdoYXQgbWFrZXMgaXQNCnRoaW5rIHRoZSBjbG9jayBpc24ndCBhY2N1cmF0
-ZT8gSXMgdGhpcyBhbiBhcnRpZmFjdCBvZiBzY2hlZHVsaW5nIChhcw0KdGhlIHNjaGVkdWxlciB0
-aWNrIGNlcnRhaW5seSBpcyBzZXZlcmFsIG1pbGxpc2Vjb25kcywgd2hlcmVhcw0KImFjY3VyYXRl
-IiBoZXJlIGFwcGVhcnMgdG8gcmVxdWlyZSBiZWxvdyAxbXMgZ3JhbnVsYXJpdHkpLCBwZXJoYXBz
-DQphcyBhIHJlc3VsdCBvZiB0aGUgYm94IGJlaW5nIG92ZXJsb2FkZWQgKGkuZS4gdGhlIFZNIG5v
-dCBiZWluZyBhYmxlDQp0byBnZXQgc2NoZWR1bGVkIHF1aWNrbHkgZW5vdWdoIHdoZW4gdGhlIHRp
-bWVyIGV4cGlyZXMpPyBGb3IgdGhhdCwNCmRpZCB5b3UgdHJ5IGxvd2VyaW5nIHRoZSBzY2hlZHVs
-ZXIgdGltZSBzbGljZSBhbmQvb3IgaXRzIHJhdGUgbGltaXQNCihwb3NzaWJsZSB2aWEgY29tbWFu
-ZCBsaW5lIG9wdGlvbik/IE9mIGNvdXJzZSBkb2luZyBzbyBtYXkgaGF2ZQ0Kb3RoZXIgdW5kZXNp
-cmFibGUgc2lkZSBlZmZlY3RzLCBidXQgaXQgd291bGQgYmUgd29ydGggYSB0cnkuDQoNCkRpZCB5
-b3UgZnVydGhlciBjaGVjayB3aGV0aGVyIHRoZSBhZGp1c3RtZW50cyBkb25lIHRvIHRoZQ0Kc2No
-ZWR1bGVkIHRpbWUgaW4gY3JlYXRlX3BlcmlvZGljX3RpbWUoKSBhcmUgcmVzcG9uc2libGUgZm9y
-IHRoaXMNCmNvbmNsdXNpb24gb2YgdGhlIEpWTSAoY291bGQgYmUgZWZmZWN0aXZlbHkgZG91Ymxp
-bmcgdGhlIGZpcnN0DQppbnRlcnZhbCBpZiBIVk1fUEFSQU1fVlBUX0FMSUdOIGlzIHNldCwgYW5k
-IHdpdGggdGhlIGhpZ2ggcmF0ZQ0Kb2YgcmUtc2V0cyB0aGlzIGNvdWxkIGNlcnRhaW5seSBoYXZl
-IGEgbW9yZSB2aXNpYmxlIGVmZmVjdCB0aGFuDQppbnRlbmRlZCk/DQoNCkphbg==
-
-------=_001_NextPart462848748572_=----
-Content-Type: text/html;
-       charset="gb2312"
-Content-Transfer-Encoding: quoted-printable
-
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<HTML><HEAD>
-<META http-equiv=3DContent-Type content=3D"text/html; charset=3Dgb2312">
-<STYLE>
-BLOCKQUOTE {
-       MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; MARGIN-LEFT: 2em
-}
-OL {
-       MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px
-}
-UL {
-       MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px
-}
-P {
-       MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px
-}
-BODY {
-       FONT-SIZE: 10.5pt; COLOR: #000080; LINE-HEIGHT: 1.5; FONT-FAMILY: =CB=CE=
-=CC=E5
-}
-</STYLE>
-
-<META content=3D"MSHTML 6.00.2900.5512" name=3DGENERATOR></HEAD>
-<BODY style=3D"MARGIN: 10px">
-<DIV>Dear Jan Beulich:</DIV>
-<DIV style=3D"TEXT-INDENT: 2em">Thanks for reply! You are a very clever ma=
-n, you=20
-have sensed some thing immediately&nbsp;as I found lately. Please forgive =
-my so=20
-lately reply!</DIV>
-<DIV>&nbsp;</DIV>
-<DIV>1 why JVM set the same rate down so frequently&nbsp;?</DIV>
-<DIV>the first achievement I will show is I found the action in JVM and th=
-e=20
-reason by debugging disassembly code.</DIV>
-<DIV>it seems to me like this in JVM:</DIV>
-<DIV>=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
-=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D 1 what happened in JVM=
-=20
-=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
-=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D</DIV>
-<DIV>
-<DIV>while&nbsp;(loop)//or a frequent call</DIV>
-<DIV>{</DIV>
-<BLOCKQUOTE dir=3Dltr style=3D"MARGIN-RIGHT: 0px">
-  <DIV>timeBeginPeriod()&nbsp;--&gt;&nbsp;NtSetTimerResolution(1(enble))</=
-DIV>
-  <DIV></DIV>
-  <DIV>rc&nbsp;=3D&nbsp;WaitForMultipleObjects(5,&nbsp;0x2222222,&nbsp;0,&=
-nbsp;1);&nbsp;//the&nbsp;last&nbsp;parameter&nbsp;demands&nbsp;1ms&nbsp;ti=
-mer&nbsp;resolution</DIV>
-  <DIV>if&nbsp;(rc&nbsp;=3D&nbsp;TIMEOUT){</DIV>
-  <BLOCKQUOTE dir=3Dltr style=3D"MARGIN-RIGHT: 0px">
-    <DIV>break;</DIV></BLOCKQUOTE>
-  <DIV>}</DIV>
-  <DIV>else{</DIV>
-  <BLOCKQUOTE dir=3Dltr style=3D"MARGIN-RIGHT: 0px">
-    <DIV>call&nbsp;0x44444444;</DIV></BLOCKQUOTE>
-  <DIV>}</DIV>
-  <DIV></DIV>
-  <DIV>timeEndPeriod()&nbsp;--&gt;&nbsp;NtSetTimerResolution(0(disable))</=
-DIV></BLOCKQUOTE>
-<DIV>}</DIV>
-<DIV>=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
-=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
-=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
-=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
-=3D=3D=3D=3D=3D</DIV></DIV>
-<DIV>so its behavior is totally legal, for it demands higher timer resolut=
-ion=20
-(here 1ms), so it calls NtSetTimerResolution to improve the=20
-resolution.&nbsp;</DIV>
-<DIV>it is not as I guessed "unaccurate"<BR></DIV>
-<DIV>I also wrote a tester below, which confirms my suppose. if you are=20
-interested in it , you can build it by MS's compiler, and after running th=
-e=20
-tester in VM about 1 minutes, VM's time will slow.</DIV>
-<DIV>=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
-=3D=3D=3D=3D 2 a test which will lead to trigger slowing=20
-VM's inner time=3D=3D=3D=3D=3D=3D=3D=3D</DIV>
-<DIV>
-<DIV>#include&nbsp;&lt;stdio.h&gt;</DIV>
-<DIV>#include&nbsp;&lt;windows.h&gt;</DIV>
-<DIV>typedef&nbsp;int&nbsp;(__stdcall&nbsp;*NTSETTIMER)(IN&nbsp;ULONG&nbsp=
-;RequestedResolution,&nbsp;IN&nbsp;BOOLEAN&nbsp;Set,&nbsp;OUT&nbsp;PULONG&=
-nbsp;ActualResolution&nbsp;);</DIV>
-<DIV>typedef&nbsp;int&nbsp;(__stdcall&nbsp;*NTQUERYTIMER)(OUT&nbsp;PULONG&=
-nbsp;&nbsp;&nbsp;MinimumResolution,&nbsp;OUT&nbsp;PULONG&nbsp;MaximumResol=
-ution,&nbsp;OUT&nbsp;PULONG&nbsp;CurrentResolution&nbsp;);</DIV>
-<DIV>int&nbsp;main()</DIV>
-<DIV>{</DIV>
-<BLOCKQUOTE dir=3Dltr style=3D"MARGIN-RIGHT: 0px">
-  <DIV>DWORD&nbsp;min_res&nbsp;=3D&nbsp;0,&nbsp;max_res&nbsp;=3D&nbsp;0,&n=
-bsp;cur_res&nbsp;=3D&nbsp;0,&nbsp;ret&nbsp;=3D&nbsp;0;</DIV>
-  <DIV>HMODULE&nbsp;&nbsp;hdll&nbsp;=3D&nbsp;NULL;</DIV>
-  <DIV>hdll&nbsp;=3D&nbsp;GetModuleHandle("ntdll.dll");</DIV>
-  <DIV>NTSETTIMER&nbsp;AddrNtSetTimer&nbsp;=3D&nbsp;0;</DIV>
-  <DIV>NTQUERYTIMER&nbsp;AddrNtQueyTimer&nbsp;=3D&nbsp;0;</DIV>
-  <DIV></DIV>
-  <DIV>AddrNtSetTimer&nbsp;=3D&nbsp;(NTSETTIMER)&nbsp;GetProcAddress(hdll,=
-&nbsp;"NtSetTimerResolution");</DIV>
-  <DIV>AddrNtQueyTimer&nbsp;=3D&nbsp;(NTQUERYTIMER)GetProcAddress(hdll,&nb=
-sp;"NtQueryTimerResolution");</DIV>
-  <DIV>&nbsp;</DIV>
-  <DIV>while&nbsp;(1)</DIV>
-  <DIV>{</DIV>
-  <BLOCKQUOTE dir=3Dltr style=3D"MARGIN-RIGHT: 0px">
-    <DIV>ret&nbsp;=3D&nbsp;AddrNtQueyTimer(&amp;min_res,&nbsp;&amp;max_res=
-,&nbsp;&amp;cur_res);</DIV>
-    <DIV>printf("min_res&nbsp;=3D&nbsp;%d,&nbsp;max_res&nbsp;=3D&nbsp;%d,&=
-nbsp;cur_res&nbsp;=3D&nbsp;%d\n",min_res,&nbsp;max_res,&nbsp;cur_res);</DI=
-V>
-    <DIV>Sleep(10);</DIV>
-    <DIV>ret&nbsp;=3D&nbsp;AddrNtSetTimer(10000,&nbsp;1,&nbsp;&amp;cur_res=
-);</DIV>
-    <DIV>Sleep(10);</DIV>
-    <DIV>ret&nbsp;=3D&nbsp;AddrNtSetTimer(10000,&nbsp;0,&nbsp;&amp;cur_res=
-);</DIV>
-    <DIV>Sleep(10);</DIV></BLOCKQUOTE>
-  <DIV>}</DIV>
-  <DIV>return&nbsp;0;</DIV></BLOCKQUOTE>
-<DIV>}</DIV></DIV>
-<DIV>=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
-=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
-=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
-=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D</DIV=
->
-<DIV>&nbsp;</DIV>
-<DIV>2 Bug in xen</DIV>
-<DIV>JVM is OK, so left the bug to xen, I have found both the reason and=20
-solution. As Jan mentioned avoiding call create_periodic_time, it got much=
-=20
-better. so I modified it&nbsp;like this,&nbsp;if the pt timer is created b=
-efore,=20
-setting RegA down is just changing the period value, so I do nothing excep=
-t just=20
-setting period to pt's field. it is OK!<BR></DIV>
-<DIV>I thought pt-&gt;scheduled is responsible&nbsp;for <SPAN class=3Dshor=
-t_text=20
-lang=3Den id=3Dresult_box f=3D"4" a=3D"undefined" closure_uid_v1xnhe=3D"94=
-"><SPAN class=3D""=20
-closure_uid_v1xnhe=3D"322">Accuracy</SPAN></SPAN>&nbsp;of pt_process_misse=
-d_ticks,=20
-so we should not interfere it at any outer invading or interruption, so I =
-let=20
-create_periodic_time changed everything but reserved only one=20
-filed&nbsp;pt-&gt;scheduled as setted before, I am very happy to find the =
-bug=20
-disappear. After I rechecked your mail I found you are really a very smart=
- man,=20
-you have predicted something!</DIV>
-<DIV>&nbsp;</DIV>
-<DIV>
-<DIV>Did&nbsp;you&nbsp;further&nbsp;check&nbsp;whether&nbsp;the&nbsp;adjus=
-tments&nbsp;done&nbsp;to&nbsp;the</DIV>
-<DIV>scheduled&nbsp;time&nbsp;in&nbsp;create_periodic_time()&nbsp;are&nbsp=
-;responsible&nbsp;for&nbsp;this</DIV>
-<DIV>conclusion&nbsp;of&nbsp;the&nbsp;JVM&nbsp;(could&nbsp;be&nbsp;effecti=
-vely&nbsp;doubling&nbsp;the&nbsp;first</DIV>
-<DIV>interval&nbsp;if&nbsp;HVM_PARAM_VPT_ALIGN&nbsp;is&nbsp;set,&nbsp;and&=
-nbsp;with&nbsp;the&nbsp;high&nbsp;rate</DIV>
-<DIV>of&nbsp;re-sets&nbsp;this&nbsp;could&nbsp;certainly&nbsp;have&nbsp;a&=
-nbsp;more&nbsp;visible&nbsp;effect&nbsp;than</DIV>
-<DIV>intended)?</DIV>
-<DIV>&nbsp;</DIV>
-<DIV>After I tracked pt-&gt;scheduled, more and more truth surfaced. I wil=
-l show=20
-you the RTC's spotting as I observed.</DIV>
-<DIV>normal spot is like this:</DIV>
-<DIV>0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
-bsp;&nbsp;&nbsp;=20
-1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
-nbsp;&nbsp;&nbsp;2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
-bsp;&nbsp;&nbsp;&nbsp;&nbsp;=20
-3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
-nbsp;=20
-&nbsp;4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
-nbsp;&nbsp;&nbsp;&nbsp;5</DIV>
-<DIV>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;=20
-&nbsp;&nbsp;&nbsp;.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; =
-&nbsp;=20
-&nbsp;&nbsp;&nbsp;.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;=
-&nbsp;=20
-&nbsp;&nbsp;&nbsp;.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=20
-&nbsp;&nbsp; &nbsp;&nbsp;.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
-&nbsp;=20
-&nbsp;&nbsp; &nbsp;&nbsp;.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(normal=20
-spot)</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
-sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
-;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=20
-|(pt-&gt;scheduled at 2)</DIV>
-<DIV>&nbsp;</DIV>
-<DIV>when create_periodic_time interfere pt-&gt;schedule at NOW</DIV>
-<DIV>0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
-bsp;&nbsp;&nbsp;=20
-1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
-nbsp;&nbsp;&nbsp;2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
-bsp;&nbsp;&nbsp;&nbsp;&nbsp;=20
-3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
-nbsp;=20
-&nbsp;4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
-nbsp;&nbsp;&nbsp;=20
-5</DIV>
-<DIV>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;=20
-&nbsp;&nbsp;&nbsp;.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;=
-&nbsp;=20
-&nbsp;&nbsp;&nbsp;.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;=
-&nbsp;=20
-&nbsp;&nbsp;&nbsp;.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=20
-&nbsp;&nbsp;&nbsp;&nbsp;=20
-&nbsp;&nbsp;.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;=
-&nbsp;=20
-&nbsp;&nbsp;.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
-sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=20
-|(NOW)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
-bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=20
-&nbsp;| (new pt-&gt;scheduled is moved to 3 after ALIGN)</DIV>
-<DIV>&nbsp;</DIV>
-<DIV>so it real spot is like this:</DIV>
-<DIV>.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;=20
-&nbsp;&nbsp;&nbsp;.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
-nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=20
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
-bsp;&nbsp;&nbsp;.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=20
-&nbsp;&nbsp;&nbsp;&nbsp;=20
-&nbsp;&nbsp;.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;=
-&nbsp;=20
-&nbsp;&nbsp;.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</DIV>
-<DIV>0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
-bsp;&nbsp;&nbsp;=20
-1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
-nbsp;&nbsp;&nbsp;2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
-bsp;&nbsp;&nbsp;&nbsp;&nbsp;=20
-3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
-nbsp;=20
-&nbsp;4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&=
-nbsp;&nbsp;&nbsp;=20
-5</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
-sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
-;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|(here=20
-we missed one spot at 2)</DIV></DIV>
-<DIV>&nbsp;</DIV>
-<DIV>the original pt-&gt;scheduled is at 2 before create_periodic_time wil=
-l be=20
-executed, but after it, pt-&gt;scheduled is moved to 3, so missed one spot=
- to=20
-GuestWin.</DIV>
-<DIV>&nbsp;</DIV>
-<DIV>&nbsp;</DIV>
-<DIV>3 who is wrong?</DIV>
-<DIV>I doubt align_timer&nbsp;worth suspected:</DIV>
-<DIV>
-<DIV>s_time_t&nbsp;align_timer(s_time_t&nbsp;firsttick,&nbsp;uint64_t&nbsp=
-;period)</DIV>
-<DIV>{</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(&nbsp;!period&nbsp;)</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;firsttick=
-;</DIV>
-<DIV>&nbsp;</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;firsttick&nbsp;+&nbsp;(period&nbs=
-p;-&nbsp;1)&nbsp;-&nbsp;((firsttick&nbsp;-&nbsp;1)&nbsp;%&nbsp;period);=20
-//in xen4.x</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;=20
-return&nbsp;firsttick&nbsp;&nbsp;-&nbsp;((firsttick&nbsp;-&nbsp;1)&nbsp;%&=
-nbsp;period);//it=20
-should be aligned like this.</DIV>
-<DIV>}</DIV>
-<DIV>&nbsp;</DIV>
-<DIV>I have also found another updating RTC's RegA in=20
-tools\ioemu-qemu-xen\hw\MCc146818rtc.c: </DIV>
-<DIV>&nbsp;</DIV>
-<DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(period_code&nbsp;!=3D&nbsp;0&nbsp;&a=
-mp;&amp;&nbsp;(s-&gt;cmos_data[RTC_REG_B]&nbsp;&amp;&nbsp;REG_B_PIE))&nbsp=
-;{</DIV>
-<DIV>#endif</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(period_code&=
-nbsp;&lt;=3D&nbsp;2)</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
-sp;period_code&nbsp;+=3D&nbsp;7;</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;period&nbsp;i=
-n&nbsp;32&nbsp;Khz&nbsp;cycles&nbsp;*/</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;period&nbsp;=3D&nbsp;=
-1&nbsp;&lt;&lt;&nbsp;(period_code&nbsp;-&nbsp;1);</DIV>
-<DIV>#ifdef&nbsp;IRQ_COALESCE_HACK</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(period&nbsp;!=3D&n=
-bsp;s-&gt;period)</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
-sp;s-&gt;irq_coalesced&nbsp;=3D&nbsp;(s-&gt;irq_coalesced&nbsp;*&nbsp;s-&g=
-t;period)&nbsp;/&nbsp;period;</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s-&gt;period&nbsp;=3D=
-&nbsp;period;</DIV>
-<DIV>#endif</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;compute&nbsp;=
-32&nbsp;khz&nbsp;clock&nbsp;*/</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cur_clock&nbsp;=3D&nb=
-sp;muldiv64(current_time,&nbsp;32768,&nbsp;ticks_per_sec);=20
-//here I don't make sense it ......</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;next_irq_clock&nbsp;=
-=3D&nbsp;(cur_clock&nbsp;&amp;&nbsp;~(period&nbsp;-&nbsp;1))&nbsp;+&nbsp;p=
-eriod;</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s-&gt;next_periodic_t=
-ime&nbsp;=3D&nbsp;muldiv64(next_irq_clock,&nbsp;ticks_per_sec,&nbsp;32768)=
-&nbsp;+&nbsp;1;</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;qemu_mod_timer(s-&gt;=
-periodic_timer,&nbsp;s-&gt;next_periodic_time);</DIV></DIV>
-<DIV>&nbsp;</DIV>
-<DIV>&nbsp;</DIV>
-<DIV>&nbsp;</DIV></DIV>
-<DIV>I don't know what happened in real RTC, the most <SPAN=20
-style=3D"COLOR: #000080">popular RTC chip<SPAN style=3D"COLOR: #000000"><S=
-PAN=20
-style=3D"COLOR: #000080">&nbsp;is <FONT color=3D#cc0000 size=3D2><SPAN=20
-style=3D"COLOR: #000000"><SPAN style=3D"COLOR: #000080">MC146818, I have c=
-hecked its=20
-datasheet but found nothing I want. What I want to know is When a real out=
-er=20
-0x71 come down to set RTC's RegA, who does it change or spot the <SPAN=20
-style=3D"FONT-SIZE: 10pt">next <FONT style=3D"FONT-SIZE: 10pt"=20
-size=3D1>periodic&nbsp;interrupt time</FONT>&nbsp;</SPAN>? In my case, the=
- period=20
-doesn't change, it misses one spot, even if the period changes how will it=
- spot=20
-the next scheduled time?</SPAN></SPAN></FONT></SPAN></SPAN></SPAN></DIV>
-<DIV><SPAN style=3D"COLOR: #000080"><SPAN style=3D"COLOR: #000000"><SPAN=20
-style=3D"COLOR: #000080"><FONT color=3D#cc0000 size=3D2><SPAN=20
-style=3D"COLOR: #000000"><SPAN style=3D"FONT-SIZE: 10pt; COLOR: #000080">I=
- need the=20
-man who knows the details deeply concerning when updating a real RTC's reg=
-A, how=20
-will&nbsp;it take it into&nbsp;effect, and make the transition smoothly in=
- a=20
-real RTC.</SPAN></SPAN></FONT></SPAN></SPAN></SPAN></DIV>
-<DIV><SPAN style=3D"COLOR: #000080"><SPAN style=3D"COLOR: #000000"><SPAN=20
-style=3D"COLOR: #000080"><FONT color=3D#cc0000 size=3D2><SPAN=20
-style=3D"COLOR: #000000"><SPAN=20
-style=3D"FONT-SIZE: 10pt; COLOR: #000080"></SPAN></SPAN></FONT></SPAN></SP=
-AN></SPAN>&nbsp;</DIV>
-<DIV><SPAN style=3D"COLOR: #000080"><SPAN style=3D"COLOR: #000000"><SPAN=20
-style=3D"COLOR: #000080"><FONT color=3D#cc0000 size=3D3><SPAN=20
-style=3D"COLOR: #000000"><SPAN style=3D"FONT-SIZE: 10pt; COLOR: #000080">I=
- have been=20
-very anxious in&nbsp;another aspect,&nbsp;in our virtual environment, at=20
-create_periodic_time, NOW() may be far more&nbsp;later than pt-&gt;schedul=
-ed=20
-setted before, at this point,&nbsp;the new pt-&gt;scheduled may be far mor=
-e=20
-behind the one after executing&nbsp;create_periodic_time. So the interval=20
-between both which should be treated&nbsp;by pt_process_missed_ticks to th=
-e=20
-former pt-&gt;scheduled's period&nbsp;is now all thrown away as nothing mi=
-ssed.=20
-So I think&nbsp;how to handle the interval between&nbsp;both pt-&gt;schedu=
-led=20
-worth consideration&nbsp;in=20
-create_periodic_time.</SPAN></SPAN></FONT></SPAN></SPAN></SPAN></DIV>
-<DIV><SPAN style=3D"COLOR: #000080"><SPAN style=3D"COLOR: #000000"><SPAN=20
-style=3D"COLOR: #000080"><FONT color=3D#cc0000 size=3D2><SPAN=20
-style=3D"COLOR: #000000"><SPAN=20
-style=3D"COLOR: #000080"></SPAN></SPAN></FONT></SPAN></SPAN></SPAN>&nbsp;<=
-/DIV>
-<DIV><SPAN style=3D"COLOR: #000080"><SPAN style=3D"COLOR: #000000"><SPAN=20
-style=3D"COLOR: #000080"><FONT color=3D#cc0000 size=3D2><SPAN=20
-style=3D"COLOR: #000000"><SPAN=20
-style=3D"COLOR: #000080">Thanks!</SPAN></SPAN></FONT></SPAN></SPAN></SPAN>=
-</DIV>
-<DIV><SPAN style=3D"COLOR: #000080"><SPAN style=3D"COLOR: #000000"><SPAN=20
-style=3D"COLOR: #000080"><FONT color=3D#cc0000 size=3D2><SPAN=20
-style=3D"COLOR: #000000"><SPAN=20
-style=3D"COLOR: #000080"></SPAN></SPAN></SPAN></SPAN></SPAN></FONT>&nbsp;<=
-/DIV>
-<HR style=3D"WIDTH: 210px; HEIGHT: 1px" align=3Dleft color=3D#b5c4df SIZE=
-=3D1>
-
-<DIV><SPAN>tupeng212</SPAN></DIV>
-<DIV>&nbsp;</DIV>
-<DIV=20
-style=3D"BORDER-RIGHT: medium none; PADDING-RIGHT: 0cm; BORDER-TOP: #b5c4d=
-f 1pt solid; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; BORDER-LEFT: medium n=
-one; PADDING-TOP: 3pt; BORDER-BOTTOM: medium none">
-<DIV=20
-style=3D"PADDING-RIGHT: 8px; PADDING-LEFT: 8px; FONT-SIZE: 12px; BACKGROUN=
-D: #efefef; PADDING-BOTTOM: 8px; COLOR: #000000; PADDING-TOP: 8px">
-<DIV><B>From:</B>&nbsp;<A href=3D"mailto:JBeulich@suse.com">Jan Beulich</A=
-></DIV>
-<DIV><B>Date:</B>&nbsp;2012-08-08&nbsp;17:20</DIV>
-<DIV><B>To:</B>&nbsp;<A href=3D"mailto:tupeng212@gmail.com">tupeng212</A><=
-/DIV>
-<DIV><B>CC:</B>&nbsp;<A=20
-href=3D"mailto:xen-devel@lists.xen.org">xen-devel</A></DIV>
-<DIV><B>Subject:</B>&nbsp;Re: [Xen-devel] Big Bug:Time in VM running on xe=
-n goes=20
-slower</DIV></DIV></DIV>
-<DIV>
-<DIV>&gt;&gt;&gt;&nbsp;On&nbsp;07.08.12&nbsp;at&nbsp;17:44,&nbsp;tupeng212=
-&nbsp;&lt;tupeng212@gmail.com&gt;&nbsp;wrote:</DIV>
-<DIV>&gt;&nbsp;2&nbsp;Xen</DIV>
-<DIV>&gt;&nbsp;vmx_vmexit_handler&nbsp;&nbsp;--&gt;&nbsp;.........&nbsp;--=
-&gt;&nbsp;handle_rtc_io&nbsp;&nbsp;--&gt;&nbsp;rtc_ioport_write&nbsp;&nbsp=
-;--&gt;&nbsp;</DIV>
-<DIV>&gt;&nbsp;rtc_timer_update&nbsp;--&gt;&nbsp;set&nbsp;RTC's&nbsp;REG_A=
-&nbsp;to&nbsp;a&nbsp;high&nbsp;rate--&gt;&nbsp;create_periodic_time(disabl=
-e&nbsp;</DIV>
-<DIV>&gt;&nbsp;the&nbsp;former&nbsp;timer,&nbsp;and&nbsp;init&nbsp;a&nbsp;=
-new&nbsp;one)</DIV>
-<DIV>&gt;&nbsp;Win7&nbsp;is&nbsp;installed&nbsp;in&nbsp;the&nbsp;vm.&nbsp;=
-This&nbsp;calling&nbsp;path&nbsp;is&nbsp;executed&nbsp;so&nbsp;frequent&nb=
-sp;that&nbsp;</DIV>
-<DIV>&gt;&nbsp;may&nbsp;come&nbsp;down&nbsp;to&nbsp;set&nbsp;the&nbsp;RTC'=
-s&nbsp;REG_A&nbsp;hundreds&nbsp;of&nbsp;times&nbsp;every&nbsp;second&nbsp;=
-but&nbsp;with&nbsp;</DIV>
-<DIV>&gt;&nbsp;the&nbsp;same&nbsp;rate(976.562us(1024HZ)),&nbsp;it&nbsp;is=
-&nbsp;so&nbsp;abnormal&nbsp;to&nbsp;me&nbsp;to&nbsp;see&nbsp;such&nbsp;</D=
-IV>
-<DIV>&gt;&nbsp;behavior.</DIV>
-<DIV>&nbsp;</DIV>
-<DIV>_If_&nbsp;the&nbsp;problem&nbsp;is&nbsp;merely&nbsp;with&nbsp;the&nbs=
-p;high&nbsp;rate&nbsp;of&nbsp;calls&nbsp;to</DIV>
-<DIV>create_periodic_time(),&nbsp;I&nbsp;think&nbsp;this&nbsp;could&nbsp;b=
-e&nbsp;taken&nbsp;care&nbsp;of&nbsp;by</DIV>
-<DIV>avoiding&nbsp;the&nbsp;call&nbsp;(and&nbsp;perhaps&nbsp;the&nbsp;call=
-&nbsp;to&nbsp;rtc_timer_update()&nbsp;in</DIV>
-<DIV>the&nbsp;first&nbsp;place)&nbsp;by&nbsp;checking&nbsp;whether&nbsp;an=
-ything&nbsp;actually&nbsp;changes</DIV>
-<DIV>due&nbsp;to&nbsp;the&nbsp;current&nbsp;write.&nbsp;I&nbsp;don't&nbsp;=
-think,&nbsp;however,&nbsp;that&nbsp;this&nbsp;would</DIV>
-<DIV>help&nbsp;much,&nbsp;as&nbsp;the&nbsp;high&nbsp;rate&nbsp;of&nbsp;por=
-t&nbsp;accesses&nbsp;(and&nbsp;hence&nbsp;traps</DIV>
-<DIV>into&nbsp;the&nbsp;hypervisor)&nbsp;would&nbsp;remain.&nbsp;It&nbsp;m=
-ight,&nbsp;nevertheless,&nbsp;get</DIV>
-<DIV>your&nbsp;immediate&nbsp;problem&nbsp;of&nbsp;the&nbsp;time&nbsp;slow=
-ing&nbsp;down&nbsp;taken&nbsp;care&nbsp;of</DIV>
-<DIV>if&nbsp;that&nbsp;is&nbsp;caused&nbsp;inside&nbsp;Xen&nbsp;(but&nbsp;=
-the&nbsp;cause&nbsp;here&nbsp;may&nbsp;as&nbsp;well&nbsp;be&nbsp;in</DIV>
-<DIV>the&nbsp;Windows&nbsp;kernel).</DIV>
-<DIV>&nbsp;</DIV>
-<DIV>&gt;&nbsp;3&nbsp;OS</DIV>
-<DIV>&gt;&nbsp;I&nbsp;have&nbsp;tried&nbsp;to&nbsp;find&nbsp;why&nbsp;the&=
-nbsp;win7&nbsp;setted&nbsp;RTC's&nbsp;regA&nbsp;so&nbsp;frequently.&nbsp;f=
-inally&nbsp;</DIV>
-<DIV>&gt;&nbsp;got&nbsp;the&nbsp;result,&nbsp;all&nbsp;that&nbsp;comes&nbs=
-p;from&nbsp;a&nbsp;function:&nbsp;NtSetTimerResolution&nbsp;--&gt;&nbsp;</=
-DIV>
-<DIV>&gt;&nbsp;0x70,0x71</DIV>
-<DIV>&gt;&nbsp;when&nbsp;I&nbsp;attached&nbsp;windbg&nbsp;into&nbsp;the&nb=
-sp;guest&nbsp;OS,&nbsp;I&nbsp;also&nbsp;found&nbsp;the&nbsp;source,&nbsp;t=
-hey&nbsp;are&nbsp;</DIV>
-<DIV>&gt;&nbsp;all&nbsp;called&nbsp;from&nbsp;a&nbsp;upper&nbsp;system&nbs=
-p;call&nbsp;that&nbsp;comes&nbsp;from&nbsp;JVM(Java&nbsp;Virtual&nbsp;</DI=
-V>
-<DIV>&gt;&nbsp;Machine).</DIV>
-<DIV>&nbsp;</DIV>
-<DIV>Getting&nbsp;Windows&nbsp;to&nbsp;be&nbsp;a&nbsp;little&nbsp;smarter&=
-nbsp;and&nbsp;avoid&nbsp;the&nbsp;port&nbsp;I/O&nbsp;when</DIV>
-<DIV>doing&nbsp;redundant&nbsp;writes&nbsp;would&nbsp;of&nbsp;course&nbsp;=
-be&nbsp;even&nbsp;better,&nbsp;but&nbsp;is</DIV>
-<DIV>clearly&nbsp;a&nbsp;difficult&nbsp;to&nbsp;achieve&nbsp;goal.</DIV>
-<DIV>&nbsp;</DIV>
-<DIV>&gt;&nbsp;4&nbsp;JVM</DIV>
-<DIV>&gt;&nbsp;I&nbsp;don't&nbsp;know&nbsp;why&nbsp;JVM&nbsp;calls&nbsp;Nt=
-SetTimerResolution&nbsp;to&nbsp;set&nbsp;the&nbsp;same&nbsp;RTC's&nbsp;rat=
-e&nbsp;</DIV>
-<DIV>&gt;&nbsp;down&nbsp;(976.562us(1024HZ))&nbsp;so&nbsp;frequently.&nbsp=
-;</DIV>
-<DIV>&gt;&nbsp;But&nbsp;found&nbsp;something&nbsp;useful,&nbsp;in&nbsp;the=
-&nbsp;java&nbsp;source&nbsp;code,&nbsp;I&nbsp;found&nbsp;many&nbsp;palaces=
-&nbsp;</DIV>
-<DIV>&gt;&nbsp;written&nbsp;with&nbsp;time.scheduleAtFixedRate(),&nbsp;Inf=
-ormations&nbsp;from&nbsp;Internet&nbsp;told&nbsp;me&nbsp;</DIV>
-<DIV>&gt;&nbsp;this&nbsp;function&nbsp;scheduleAtFixedRate&nbsp;demands&nb=
-sp;a&nbsp;higher&nbsp;time&nbsp;resolution.&nbsp;so&nbsp;I&nbsp;</DIV>
-<DIV>&gt;&nbsp;guess&nbsp;the&nbsp;whole&nbsp;process&nbsp;may&nbsp;be&nbs=
-p;this:&nbsp;</DIV>
-<DIV>&gt;&nbsp;java&nbsp;wants&nbsp;a&nbsp;higher&nbsp;time&nbsp;resolutio=
-n&nbsp;timer,&nbsp;so&nbsp;it&nbsp;changes&nbsp;the&nbsp;RTC's&nbsp;rate&n=
-bsp;from&nbsp;</DIV>
-<DIV>&gt;&nbsp;15.625ms(64HZ)&nbsp;to&nbsp;976.562us(1024HZ),&nbsp;after&n=
-bsp;that,&nbsp;it&nbsp;reconfirms&nbsp;whether&nbsp;the&nbsp;</DIV>
-<DIV>&gt;&nbsp;time&nbsp;is&nbsp;accurate&nbsp;as&nbsp;expected,&nbsp;but&=
-nbsp;it's&nbsp;sorry&nbsp;to&nbsp;get&nbsp;some&nbsp;notice&nbsp;it&nbsp;'=
-s&nbsp;not&nbsp;</DIV>
-<DIV>&gt;&nbsp;accurate&nbsp;either.&nbsp;so&nbsp;it&nbsp;sets&nbsp;&nbsp;=
-the&nbsp;RTC's&nbsp;rate&nbsp;from&nbsp;15.625ms(64HZ)&nbsp;to&nbsp;</DIV>
-<DIV>&gt;&nbsp;976.562us(1024HZ)&nbsp;again&nbsp;and&nbsp;again...,&nbsp;a=
-t&nbsp;last,&nbsp;results&nbsp;in&nbsp;a&nbsp;slow&nbsp;system&nbsp;timer&=
-nbsp;</DIV>
-<DIV>&gt;&nbsp;in&nbsp;vm.</DIV>
-<DIV>&nbsp;</DIV>
-<DIV>Now&nbsp;that's&nbsp;really&nbsp;the&nbsp;fundamental&nbsp;thing&nbsp=
-;to&nbsp;find&nbsp;out&nbsp;-&nbsp;what&nbsp;makes&nbsp;it</DIV>
-<DIV>think&nbsp;the&nbsp;clock&nbsp;isn't&nbsp;accurate?&nbsp;Is&nbsp;this=
-&nbsp;an&nbsp;artifact&nbsp;of&nbsp;scheduling&nbsp;(as</DIV>
-<DIV>the&nbsp;scheduler&nbsp;tick&nbsp;certainly&nbsp;is&nbsp;several&nbsp=
-;milliseconds,&nbsp;whereas</DIV>
-<DIV>"accurate"&nbsp;here&nbsp;appears&nbsp;to&nbsp;require&nbsp;below&nbs=
-p;1ms&nbsp;granularity),&nbsp;perhaps</DIV>
-<DIV>as&nbsp;a&nbsp;result&nbsp;of&nbsp;the&nbsp;box&nbsp;being&nbsp;overl=
-oaded&nbsp;(i.e.&nbsp;the&nbsp;VM&nbsp;not&nbsp;being&nbsp;able</DIV>
-<DIV>to&nbsp;get&nbsp;scheduled&nbsp;quickly&nbsp;enough&nbsp;when&nbsp;th=
-e&nbsp;timer&nbsp;expires)?&nbsp;For&nbsp;that,</DIV>
-<DIV>did&nbsp;you&nbsp;try&nbsp;lowering&nbsp;the&nbsp;scheduler&nbsp;time=
-&nbsp;slice&nbsp;and/or&nbsp;its&nbsp;rate&nbsp;limit</DIV>
-<DIV>(possible&nbsp;via&nbsp;command&nbsp;line&nbsp;option)?&nbsp;Of&nbsp;=
-course&nbsp;doing&nbsp;so&nbsp;may&nbsp;have</DIV>
-<DIV>other&nbsp;undesirable&nbsp;side&nbsp;effects,&nbsp;but&nbsp;it&nbsp;=
-would&nbsp;be&nbsp;worth&nbsp;a&nbsp;try.</DIV>
-<DIV>&nbsp;</DIV>
-<DIV>Did&nbsp;you&nbsp;further&nbsp;check&nbsp;whether&nbsp;the&nbsp;adjus=
-tments&nbsp;done&nbsp;to&nbsp;the</DIV>
-<DIV>scheduled&nbsp;time&nbsp;in&nbsp;create_periodic_time()&nbsp;are&nbsp=
-;responsible&nbsp;for&nbsp;this</DIV>
-<DIV>conclusion&nbsp;of&nbsp;the&nbsp;JVM&nbsp;(could&nbsp;be&nbsp;effecti=
-vely&nbsp;doubling&nbsp;the&nbsp;first</DIV>
-<DIV>interval&nbsp;if&nbsp;HVM_PARAM_VPT_ALIGN&nbsp;is&nbsp;set,&nbsp;and&=
-nbsp;with&nbsp;the&nbsp;high&nbsp;rate</DIV>
-<DIV>of&nbsp;re-sets&nbsp;this&nbsp;could&nbsp;certainly&nbsp;have&nbsp;a&=
-nbsp;more&nbsp;visible&nbsp;effect&nbsp;than</DIV>
-<DIV>intended)?</DIV>
-<DIV>&nbsp;</DIV>
-<DIV>Jan</DIV>
-<DIV>&nbsp;</DIV></DIV></BODY></HTML>
-
-------=_001_NextPart462848748572_=------
-
-
-
---===============4979082272455034970==
-Content-Type: text/plain; charset="us-ascii"
-MIME-Version: 1.0
-Content-Transfer-Encoding: 7bit
-Content-Disposition: inline
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
---===============4979082272455034970==--
-
-
-
diff --git a/test/corpus/<20120814100704.GA19704@bloms.de> b/test/corpus/<20120814100704.GA19704@bloms.de>
deleted file mode 100644 (file)
index 0a92469..0000000
+++ /dev/null
@@ -1,117 +0,0 @@
-From xen-devel-bounces@lists.xen.org Tue Aug 14 11:23:23 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Tue, 14 Aug 2012 11:23:23 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T1EHQ-0004qV-0V
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 14 Aug 2012 11:23:23 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T1ED9-0002Ip-Uz; Tue, 14 Aug 2012 10:18:55 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xensource.com@bloms.de>) id 1T1E1k-0001kD-85
-       for xen-devel@lists.xen.org; Tue, 14 Aug 2012 10:07:11 +0000
-Received: from [85.158.138.51:7332] by server-5.bemta-3.messagelabs.com id
-       98/50-08865-B432A205; Tue, 14 Aug 2012 10:07:07 +0000
-X-Env-Sender: xensource.com@bloms.de
-X-Msg-Ref: server-12.tower-174.messagelabs.com!1344938826!20234622!1
-X-Originating-IP: [84.200.248.35]
-X-SpamReason: No, hits=0.0 required=7.0 tests=
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 8442 invoked from network); 14 Aug 2012 10:07:06 -0000
-Received: from smtp.bloms.de (HELO smtp.bloms.de) (84.200.248.35)
-       by server-12.tower-174.messagelabs.com with DHE-RSA-AES256-SHA
-       encrypted SMTP; 14 Aug 2012 10:07:06 -0000
-Received: from smtp.bloms.de (localhost [127.0.0.1])
-       by smtp.bloms.de (Postfix) with ESMTP id 018EA1C140CF;
-       Tue, 14 Aug 2012 12:07:06 +0200 (CEST)
-DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=bloms.de; h=date:from:to
-       :subject:message-id:references:mime-version:content-type
-       :in-reply-to; s=selector1; bh=45BvRtlSS8f2g4kF6g6wcO9YuXA=; b=M4
-       qn0sFKHGxQy+gG+jpSfEgL7FS8EUZMO7UMQ3G86cowbEiZpI6spL9WPf7pQ1dWWi
-       x3rNnQ4YMo8JfAP0yQxSFobCpC+/qHllNtk8TowO2MAAczGrV34F7Se3SZzoJfof
-       cN/kUr4XB8b7MQkCQ3RmxVXndvXZB6j6eVdu9Fk1sNsPTuTQI3FKZiO0gOkd9qk+
-       TOpWn3isk+a8nJTRhHwM6cgGA6Rgkuek28bFkUQCQ2ywzjoDQ/2EnW3Lp/ecSfIJ
-       +xt3H7OQl6q1urlBrkHHtFU3+1WLKvw+SZLPSCEkg2bjO10yU1S8qLNijAFek/2c
-       5DCFr7SJgqUT9XvBdwGHx2Ewk00uI8wTX1n+8LasqoHEXKiUlHNvYFF8tYsVfsZZ
-       FL+9cK9ONO5VLtkUtWd0nlQXGVx7Mb/HTau1j1QSd2bNTXCbKU1GCyUtJmlQXTqN
-       czeJcS9spvN/27eiSiWJqoQMgbhD33ZKhmAlVEu5rL5jVT1LmWFUkA7cnJwVO6Kt
-       236yOnd+euEHtBtntny+nRT/fFdPCfkLIJRVdULyN0gVfLFojCecX0cJ4twKwl0b
-       4JEeDmEpaM7+bqrUoz+0PDanmPuClJlNRTSQ3oVMBU7xqmvZQA/UvnHPT9QvepkY
-       47/pLuNUzHPzNv6/iswSpxqN/BoQ5Hq4hvT56Y2z4=
-Received: by smtp.bloms.de (Postfix, from userid 1000)
-       id D1A731C140E9; Tue, 14 Aug 2012 12:07:05 +0200 (CEST)
-Date: Tue, 14 Aug 2012 12:07:05 +0200
-From: Dieter Bloms <xensource.com@bloms.de>
-To: xen-devel@lists.xen.org, xen-users@lists.xen.org
-Message-ID: <20120814100704.GA19704@bloms.de>
-References: <1344935141.5926.6.camel@zakaz.uk.xensource.com>
-MIME-Version: 1.0
-Content-Disposition: inline
-In-Reply-To: <1344935141.5926.6.camel@zakaz.uk.xensource.com>
-User-Agent: Mutt/1.5.20 (2009-06-14)
-X-Mailman-Approved-At: Tue, 14 Aug 2012 10:18:54 +0000
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_DKIM_INVALID,T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: [Xen-devel] Xen 4.2 TODO (io and irq parameter are not evaluated by
-       xl)
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-Hi,
-
-On Tue, Aug 14, Ian Campbell wrote:
-
-> tools, blockers:
-> 
->     * xl compatibility with xm:
-> 
->         * No known issues
-
-the parameter io and irq in domU config files are not evaluated by xl.
-So it is not possible to passthrough a parallel port for my printer to
-domU when I start the domU with xl command.
-With xm I have no issue.
-
--- 
-Best regards
-
-  Dieter Bloms
-
---
-I do not get viruses because I do not use MS software.
-If you use Outlook then please do not put my email address in your
-address-book so that WHEN you get a virus it won't use my address in the
->From field.
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<20120814101822.GX19851@reaktio.net> b/test/corpus/<20120814101822.GX19851@reaktio.net>
deleted file mode 100644 (file)
index 18f2d07..0000000
+++ /dev/null
@@ -1,93 +0,0 @@
-From xen-devel-bounces@lists.xen.org Tue Aug 14 11:22:39 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Tue, 14 Aug 2012 11:22:39 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T1EGi-0004pu-CY
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 14 Aug 2012 11:22:39 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T1EDF-0002JY-F6; Tue, 14 Aug 2012 10:19:01 +0000
-Received: from mail27.messagelabs.com ([193.109.254.147])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <pasik@iki.fi>)
-       id 1T1EDD-0002Ij-Aq; Tue, 14 Aug 2012 10:18:59 +0000
-X-Env-Sender: pasik@iki.fi
-X-Msg-Ref: server-9.tower-27.messagelabs.com!1344939504!9150915!1
-X-Originating-IP: [192.89.123.25]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogMTkyLjg5LjEyMy4yNSA9PiA0Nzc1OTY=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 2734 invoked from network); 14 Aug 2012 10:18:25 -0000
-Received: from smtp.tele.fi (HELO smtp.tele.fi) (192.89.123.25)
-       by server-9.tower-27.messagelabs.com with DHE-RSA-AES256-SHA encrypted
-       SMTP; 14 Aug 2012 10:18:25 -0000
-X-Originating-Ip: [194.89.68.22]
-Received: from ydin.reaktio.net (reaktio.net [194.89.68.22])
-       by smtp.tele.fi (Postfix) with ESMTP id D03251C3B;
-       Tue, 14 Aug 2012 13:18:23 +0300 (EEST)
-Received: by ydin.reaktio.net (Postfix, from userid 1001)
-       id 300D42005D; Tue, 14 Aug 2012 13:18:23 +0300 (EEST)
-Date: Tue, 14 Aug 2012 13:18:22 +0300
-From: Pasi =?iso-8859-1?Q?K=E4rkk=E4inen?= <pasik@iki.fi>
-To: Ian Campbell <Ian.Campbell@citrix.com>
-Message-ID: <20120814101822.GX19851@reaktio.net>
-References: <1344935141.5926.6.camel@zakaz.uk.xensource.com>
-MIME-Version: 1.0
-Content-Disposition: inline
-In-Reply-To: <1344935141.5926.6.camel@zakaz.uk.xensource.com>
-User-Agent: Mutt/1.5.20 (2009-06-14)
-Cc: xen-users <xen-users@lists.xen.org>, xen-devel <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] Xen 4.2 TODO / Release Plan / ipxe gcc 4.7
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Tue, Aug 14, 2012 at 10:05:41AM +0100, Ian Campbell wrote:
-> 
-> tools, nice to have:
-> 
-
-* fix ipxe build problems with gcc 4.7 (fedora 17).
-  The following files fail to build:
-       - ipxe/src/drivers/bus/isa.c
-       - ipxe/src/drivers/net/myri10ge.c
-       - ipxe/src/drivers/infiniband/qib7322.c
-  Patches have been posted to ipxe-devel mailinglist,
-  so we need to update our ipxe version or grab the patches.
-
-
--- Pasi
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<20120814102039.GY19851@reaktio.net> b/test/corpus/<20120814102039.GY19851@reaktio.net>
deleted file mode 100644 (file)
index 5184309..0000000
+++ /dev/null
@@ -1,104 +0,0 @@
-From xen-devel-bounces@lists.xen.org Tue Aug 14 11:24:09 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Tue, 14 Aug 2012 11:24:09 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T1EI9-0004qo-HN
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 14 Aug 2012 11:24:09 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T1EEu-0002gs-37; Tue, 14 Aug 2012 10:20:44 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <pasik@iki.fi>) id 1T1EEs-0002gS-Ix
-       for xen-devel@lists.xen.org; Tue, 14 Aug 2012 10:20:42 +0000
-Received: from [85.158.143.99:41357] by server-3.bemta-4.messagelabs.com id
-       63/59-09529-9762A205; Tue, 14 Aug 2012 10:20:41 +0000
-X-Env-Sender: pasik@iki.fi
-X-Msg-Ref: server-4.tower-216.messagelabs.com!1344939640!22807666!1
-X-Originating-IP: [192.89.123.25]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogMTkyLjg5LjEyMy4yNSA9PiA0Nzc1OTY=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 18700 invoked from network); 14 Aug 2012 10:20:41 -0000
-Received: from smtp.tele.fi (HELO smtp.tele.fi) (192.89.123.25)
-       by server-4.tower-216.messagelabs.com with DHE-RSA-AES256-SHA encrypted
-       SMTP; 14 Aug 2012 10:20:41 -0000
-X-Originating-Ip: [194.89.68.22]
-Received: from ydin.reaktio.net (reaktio.net [194.89.68.22])
-       by smtp.tele.fi (Postfix) with ESMTP id B4B8E2F8E;
-       Tue, 14 Aug 2012 13:20:39 +0300 (EEST)
-Received: by ydin.reaktio.net (Postfix, from userid 1001)
-       id 8FCD22005D; Tue, 14 Aug 2012 13:20:39 +0300 (EEST)
-Date: Tue, 14 Aug 2012 13:20:39 +0300
-From: Pasi =?iso-8859-1?Q?K=E4rkk=E4inen?= <pasik@iki.fi>
-To: Ian Campbell <Ian.Campbell@citrix.com>
-Message-ID: <20120814102039.GY19851@reaktio.net>
-References: <1344935141.5926.6.camel@zakaz.uk.xensource.com>
-       <20120814101822.GX19851@reaktio.net>
-MIME-Version: 1.0
-Content-Disposition: inline
-In-Reply-To: <20120814101822.GX19851@reaktio.net>
-User-Agent: Mutt/1.5.20 (2009-06-14)
-Cc: xen-users <xen-users@lists.xen.org>, xen-devel <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="iso-8859-1"
-Content-Transfer-Encoding: quoted-printable
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] Xen 4.2 TODO / Release Plan / ipxe gcc 4.7
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Tue, Aug 14, 2012 at 01:18:22PM +0300, Pasi K=E4rkk=E4inen wrote:
-> On Tue, Aug 14, 2012 at 10:05:41AM +0100, Ian Campbell wrote:
-> > =
-
-> > tools, nice to have:
-> > =
-
-> =
-
-> * fix ipxe build problems with gcc 4.7 (fedora 17).
->   The following files fail to build:
->      - ipxe/src/drivers/bus/isa.c
->      - ipxe/src/drivers/net/myri10ge.c
->      - ipxe/src/drivers/infiniband/qib7322.c
->   Patches have been posted to ipxe-devel mailinglist,
->   so we need to update our ipxe version or grab the patches.
-> =
-
-
-And the needed patches are listed here: http://lists.xen.org/archives/html/=
-xen-devel/2012-08/msg01048.html
-
--- Pasi
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<2012081522045495397713@gmail.com> b/test/corpus/<2012081522045495397713@gmail.com>
deleted file mode 100644 (file)
index e61815c..0000000
+++ /dev/null
@@ -1,3875 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Aug 15 15:13:38 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 15 Aug 2012 15:13:38 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T1eLp-0006TJ-CJ
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 15 Aug 2012 15:13:38 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T1eGE-0006BN-Va; Wed, 15 Aug 2012 14:07:50 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <tupeng212@gmail.com>) id 1T1eGB-0006BE-RQ
-       for xen-devel@lists.xen.org; Wed, 15 Aug 2012 14:07:48 +0000
-Received: from [85.158.143.35:17312] by server-1.bemta-4.messagelabs.com id
-       7E/8E-07754-33DAB205; Wed, 15 Aug 2012 14:07:47 +0000
-X-Env-Sender: tupeng212@gmail.com
-X-Msg-Ref: server-16.tower-21.messagelabs.com!1345039650!14242832!1
-X-Originating-IP: [209.85.210.45]
-X-SpamReason: No, hits=1.4 required=7.0 tests=HTML_60_70,HTML_MESSAGE,
-       MAILTO_TO_SPAM_ADDR,MIME_BASE64_TEXT,MIME_BOUND_NEXTPART,
-       ML_RADAR_SPEW_LINKS_14,RCVD_BY_IP,spamassassin: 
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 8199 invoked from network); 15 Aug 2012 14:07:31 -0000
-Received: from mail-pz0-f45.google.com (HELO mail-pz0-f45.google.com)
-       (209.85.210.45)
-       by server-16.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
-       15 Aug 2012 14:07:31 -0000
-Received: by dadn15 with SMTP id n15so180673dad.32
-       for <xen-devel@lists.xen.org>; Wed, 15 Aug 2012 07:07:29 -0700 (PDT)
-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
-       h=date:from:to:cc:reply-to:subject:references:x-priority:x-guid
-       :x-has-attach:x-mailer:mime-version:message-id:content-type;
-       bh=DPY/2h4FwX/0mUL+0IemDK0HkZtLqNn9iniJ/BYbQD0=;
-       b=o/T4A6hV/E6p9zAg28V8Rm+hdqRZp/NLrs3p9xOSjeXYK0e7a0C5scEeXosSMqfWSg
-       GwRwics5903Zk5+dbmpMfHNCmkgCns0VpTWGhregwaWIkC6nG+U1ytvUFN/+SVOZm5Cb
-       7Os4m9686MtFUsXwG3v7HdR74glUtHFrDqQkpMRZpDxivoxgq663x0bvV9Tqgcfo7gwC
-       /MN3rz+1QUIJJYi8R4fHuzNHNqDVJ8+kLgF/cnwhoYZOKzzAYIKTjTk8xm3ZmXeHclj4
-       +FLVfHejkSpEi09rWvyUKm7HahAzzBZIpDt0rpoVxtLaEbxNyJUl/cjutmuAn+jNbOi4
-       VdJQ==
-Received: by 10.66.83.234 with SMTP id t10mr32322200pay.39.1345039649634;
-       Wed, 15 Aug 2012 07:07:29 -0700 (PDT)
-Received: from root ([115.199.253.245])
-       by mx.google.com with ESMTPS id jz4sm616595pbc.17.2012.08.15.07.07.02
-       (version=SSLv3 cipher=OTHER); Wed, 15 Aug 2012 07:07:27 -0700 (PDT)
-Date: Wed, 15 Aug 2012 22:07:07 +0800
-From: tupeng212 <tupeng212@gmail.com>
-To: "Jan Beulich" <JBeulich@suse.com>, 
-       "Yang Z Zhang" <yang.z.zhang@intel.com>, "Keir Fraser" <keir@xen.org>, 
-       "Tim Deegan" <tim@xen.org>
-References: <502A3BBC0200007800094B68@nat28.tlf.novell.com>
-X-Priority: 3
-X-GUID: EC02886C-1CA8-4587-83B3-CEE6627B4FFE
-X-Has-Attach: yes
-X-Mailer: Foxmail 7.0.1.87[cn]
-Mime-Version: 1.0
-Message-ID: <2012081522045495397713@gmail.com>
-Content-Type: multipart/mixed; boundary="----=_001_NextPart215818845028_=----"
-Cc: xen-devel <xen-devel@lists.xen.org>
-Subject: Re: [Xen-devel] [PATCH,
-       RFC v2] x86/HVM: assorted RTC emulation adjustments (was Re: Big
-       Bug:Time in VM goes slower...)
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-Reply-To: tupeng212 <tupeng212@gmail.com>
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Scanned: No (on hopkins.hellion.org.uk); Message bigger than SAmaxbody (256000)
-
-This is a multi-part message in MIME format.
-
-------=_001_NextPart215818845028_=----
-Content-Type: multipart/alternative;
-       boundary="----=_002_NextPart316018485136_=----"
-
-
-------=_002_NextPart316018485136_=----
-Content-Type: text/plain;
-       charset="gb2312"
-Content-Transfer-Encoding: base64
-
-SGksIEphbjoNCkkgYW0gc29ycnkgSSByZWFsbHkgZG9uJ3QgaGF2ZSBtdWNoIHRpbWUgdG8gdHJ5
-IGEgdGVzdCBvZiB5b3VyIHBhdGNoLCBhbmQgaXQgaXMgbm90IGNvbnZlbmllbnQNCmZvciBtZSB0
-byBoYXZlIGEgdHJ5LiBGb3IgdGhlIHZlcnNpb24gSSBoYXZlIGJlZW4gdXNpbmcgaXMgeGVuNC4w
-LngsIGFuZCB5b3VyIHBhdGNoIGlzIGJhc2VkIG9uIA0KdGhlIGxhdGVzdCB2ZXJzaW9uIHhlbjQu
-Mi54LihJIGhhdmUgbmV2ZXIgY29tcGxpZWQgdGhlIHVuc3RhYmxlIG9uZSksIHNvIEkgbWVyZ2Vk
-IHlvdXIgcGF0Y2ggdG8gbXkgDQp4ZW40LjAueCwgc3RpbGwgY291bGRuJ3QgZmluZCB0aGUgdHdv
-IGZ1bmN0aW9ucyBiZWxvdzoNCiBzdGF0aWMgdm9pZCBydGNfdXBkYXRlX3RpbWVyMih2b2lkICpv
-cGFxdWUpIA0KIHN0YXRpYyB2b2lkIHJ0Y19hbGFybV9jYih2b2lkICpvcGFxdWUpIA0Kc28gSSBk
-aWRuJ3QgbWVyZ2UgdGhlIHR3byBmdW5jdGlvbnMgd2hpY2ggY29udGFpbnMgYSBydGNfdG9nZ2xl
-X2lycSgpIC4NCg0KVGhlIHJlc3VsdHMgZm9yIG1lIHdlcmUgdGhlc2U6DQoxIEluIG15IHJlYWwg
-YXBwbGljYXRpb24gZW52aXJvbm1lbnQsIGl0IHdvcmtlZCB2ZXJ5IHdlbGwgaW4gdGhlIGZvcm1l
-ciA1bWlucywgbXVjaCBiZXR0ZXIgdGhhbiBiZWZvcmUsDQogYnV0IGF0IGxhc3QgaXQgbGFnZ2Vk
-IGFnYWluLiBJIGRvbid0IGtub3cgd2hldGhlciBpdCBiZWxvbmdzIHRvIHRoZSB0d28gbWlzc2Vk
-IGZ1bmN0aW9ucy4gSSBsYWNrIHRoZSANCiBhYmlsaXR5IHRvIGZpZ3VyZSB0aGVtIG91dC4NCg0K
-MiBXaGVuIEkgdGVzdGVkIG15IHRlc3QgcHJvZ3JhbSB3aGljaCBJIHByb3ZpZGVkIGRheXMgYmVm
-b3JlLCBpdCB3b3JrZWQgdmVyeSB3ZWxsLCBtYXliZSB0aGUgcHJvZ3JhbSBkb2Vzbid0IA0KZW11
-bGF0ZSB0aGUgcmVhbCBlbnZpcm9ubWVudCBkdWUgdG8gdGhlIHNhbWUgc2V0dGluZyByYXRlLCBz
-byBJIG1vZGlmaWVkIHRoaXMgcHJvZ3JhbSBhcyB3aGljaCBpbiB0aGUgYXR0YWNobWVudC4NCmlm
-IHlvdSBhcmUgbW9yZSBjb252ZW5pZW50LCB5b3UgY2FuIGhlbHAgbWUgdG8gaGF2ZSBhIGxvb2sg
-b2YgaXQuDQpBbmQgSSBoYXZlIGEgb3BpbmlvbiwgYmVjYXVzZSBvdXIgcHJvZHVjdCBpcyBiYXNl
-ZCBvbiBWZXJzaW9uIFhlbjQuMC54LCBpZiB5b3UgaGF2ZSBlbm91Z2ggdGltZSwgY2FuIHlvdSB3
-cml0ZSANCmFub3RoZXIgcGF0Y2ggYmFzZWQgaHR0cDovL3hlbmJpdHMueGVuLm9yZy9oZy94ZW4t
-NC4wLXRlc3RpbmcuaGcvIGZvciBtZSwgdGhhbmsgeW91IHZlcnkgbXVjaCENCg0KMyBJIGFsc28g
-aGF2ZSBhIHRob3VnaHQgdGhhdCBjYW4gd2UgaGF2ZSBzb21lIGRldGVjdGluZyBtZXRob2RzIHRv
-IGZpbmQgdGhlIGxhZ2dpbmcgdGltZSBlYXJsaWVyIHRvIGFkanVzdCB0aW1lDQpiYWNrIHRvIG5v
-cm1hbCB2YWx1ZSBpbiB0aGUgY29kZT8NCg0KYmVzdCByZWdhcmRzLA0KDQoNCg0KDQp0dXBlbmcy
-MTINCg0KU2Vjb25kIGRyYWZ0IG9mIGEgcGF0Y2ggcG9zdGVkOyBubyB0ZXN0IHJlc3VsdHMgc28g
-ZmFyIGZvciBmaXJzdCBkcmFmdC4NCkphbg0KDQpGcm9tOiBKYW4gQmV1bGljaA0KRGF0ZTogMjAx
-Mi0wOC0xNCAxNzo1MQ0KVG86IFlhbmcgWiBaaGFuZzsgS2VpciBGcmFzZXI7IFRpbSBEZWVnYW4N
-CkNDOiB0dXBlbmcyMTI7IHhlbi1kZXZlbA0KU3ViamVjdDogW1hlbi1kZXZlbF0gW1BBVENILCBS
-RkMgdjJdIHg4Ni9IVk06IGFzc29ydGVkIFJUQyBlbXVsYXRpb24gYWRqdXN0bWVudHMgKHdhcyBS
-ZTogQmlnIEJ1ZzpUaW1lIGluIFZNIGdvZXMgc2xvd2VyLi4uKQ0KQmVsb3cvYXR0YWNoZWQgYSBz
-ZWNvbmQgZHJhZnQgb2YgYSBwYXRjaCB0byBmaXggbm90IG9ubHkgdGhpcw0KaXNzdWUsIGJ1dCBh
-IGZldyBtb3JlIHdpdGggdGhlIFJUQyBlbXVsYXRpb24uDQoNCktlaXIsIFRpbSwgWWFuZywgb3Ro
-ZXJzIC0gdGhlIGNoYW5nZSB0byB4ZW4vYXJjaC94ODYvaHZtL3ZwdC5jIHJlYWxseQ0KbG9va3Mg
-bW9yZSBsaWtlIGEgaGFjayB0aGFuIGEgc29sdXRpb24sIGJ1dCBJIGRvbid0IHNlZSBhbm90aGVy
-DQp3YXkgd2l0aG91dCBtdWNoIG1vcmUgaW50cnVzaXZlIGNoYW5nZXMuIFRoZSBwb2ludCBpcyB0
-aGF0IHdlDQp3YW50IHRoZSBSVEMgY29kZSB0byBkZWNpZGUgd2hldGhlciB0byBnZW5lcmF0ZSBh
-biBpbnRlcnJ1cHQNCihzbyB0aGF0IFJUQ19QRiBjYW4gYmVjb21lIHNldCBjb3JyZWN0bHkgZXZl
-biB3aXRob3V0IFJUQ19QSUUNCmdldHRpbmcgZW5hYmxlZCBieSB0aGUgZ3Vlc3QpLg0KDQpBZGRp
-dGlvbmFsbHkgSSB3b25kZXIgd2hldGhlciBhbGFybV90aW1lcl91cGRhdGUoKSBzaG91bGRuJ3QN
-CmJhaWwgb24gbm9uLWNvbmZvcm1pbmcgUlRDXypfQUxBUk0gdmFsdWVzIChhcyB0aG9zZSB3b3Vs
-ZA0KbmV2ZXIgbWF0Y2ggdGhlIHZhbHVlcyB0aGV5IGdldCBjb21wYXJlZCBhZ2FpbnN0LCB3aGVy
-ZWFzDQp3aXRoIHRoZSBjdXJyZW50IHdheSBvZiBoYW5kbGluZyB0aGlzIHRoZXkgd291bGQgYXBw
-ZWFyIHRvDQptYXRjaCAtIGkuZS4gc2V0IFJUQ19BRiBhbmQgcG9zc2libHkgZ2VuZXJhdGUgYW4g
-aW50ZXJydXB0IC0NCnNvbWUgb3RoZXIgcG9pbnQgaW4gdGltZSkuIEkgcmVhbGl6ZSB0aGUgYmVo
-YXZpb3IgaGVyZSBtYXkgbm90DQpiZSBwcmVjaXNlbHkgc3BlY2lmaWVkLCBidXQgdGhlIHNwZWNp
-ZmljYXRpb24gc2F5aW5nICJ0aGUgY3VycmVudA0KdGltZSBoYXMgbWF0Y2hlZCB0aGUgYWxhcm0g
-dGltZSIgbWVhbnMgdG8gbWUgYSB2YWx1ZSBieSB2YWx1ZQ0KY29tcGFyaXNvbiwgd2hpY2ggaW1w
-bGllcyB0aGF0IG5vbi1jb25mb3JtaW5nIHZhbHVlcyB3b3VsZA0KbmV2ZXIgbWF0Y2ggKHNpbmNl
-IG5vbi1jb25mb3JtaW5nIGN1cnJlbnQgdGltZSB2YWx1ZXMgY291bGQNCmdldCByZXBsYWNlZCBh
-dCBhbnkgdGltZSBieSB0aGUgaGFyZHdhcmUgZHVlIHRvIG92ZXJmbG93DQpkZXRlY3Rpb24pLg0K
-DQpKYW4NCg0KLSBkb24ndCBjYWxsIHJ0Y190aW1lcl91cGRhdGUoKSBvbiBSRUdfQSB3cml0ZXMg
-d2hlbiB0aGUgdmFsdWUgZGlkbid0DQogIGNoYW5nZSAoZG9pbmcgdGhlIGNhbGwgYWx3YXlzIHdh
-cyByZXBvcnRlZCB0byBjYXVzZSB3YWxsIGNsb2NrIHRpbWUNCiAgbGFnZ2luZyB3aXRoIHRoZSBK
-Vk0gcnVubmluZyBvbiBXaW5kb3dzKQ0KLSBkb24ndCBjYWxsIHJ0Y190aW1lcl91cGRhdGUoKSBv
-biBSRUdfQiB3cml0ZXMgYXQgYWxsDQotIG9ubHkgY2FsbCBhbGFybV90aW1lcl91cGRhdGUoKSBv
-biBSRUdfQiB3cml0ZXMgd2hlbiByZWxldmFudCBiaXRzDQogIGNoYW5nZQ0KLSBvbmx5IGNhbGwg
-Y2hlY2tfdXBkYXRlX3RpbWVyKCkgb24gUkVHX0Igd3JpdGVzIHdoZW4gU0VUIGNoYW5nZXMNCi0g
-aW5zdGVhZCBwcm9wZXJseSBoYW5kbGUgQUYgYW5kIFBGIHdoZW4gdGhlIGd1ZXN0IGlzIG5vdCBh
-bHNvIHNldHRpbmcNCiAgQUlFL1BJRSByZXNwZWN0aXZlbHkgKGZvciBVRiB0aGlzIHdhcyBhbHJl
-YWR5IHRoZSBjYXNlLCBvbmx5IGENCiAgY29tbWVudCB3YXMgc2xpZ2h0bHkgaW5hY2N1cmF0ZSkN
-Ci0gcmFpc2UgdGhlIFJUQyBJUlEgbm90IG9ubHkgd2hlbiBVSUUgZ2V0cyBzZXQgd2hpbGUgVUYg
-d2FzIGFscmVhZHkNCiAgc2V0LCBidXQgZ2VuZXJhbGl6ZSB0aGlzIHRvIGNvdmVyIEFJRSBhbmQg
-UElFIGFzIHdlbGwNCi0gcHJvcGVybHkgbWFzayBvZmYgYml0IDcgd2hlbiByZXRyaWV2aW5nIHRo
-ZSBob3VyIHZhbHVlcyBpbg0KICBhbGFybV90aW1lcl91cGRhdGUoKSwgYW5kIHByb3Blcmx5IHVz
-ZSBSVENfSE9VUlNfQUxBUk0ncyBiaXQgNyB3aGVuDQogIGNvbnZlcnRpbmcgZnJvbSAxMi0gdG8g
-MjQtaG91ciB2YWx1ZQ0KLSBhbHNvIGhhbmRsZSB0aGUgdHdvIG90aGVyIHBvc3NpYmxlIGNsb2Nr
-IGJhc2VzDQotIHVzZSBSVENfKiBuYW1lcyBpbiBhIGNvdXBsZSBvZiBwbGFjZXMgd2hlcmUgbGl0
-ZXJhbCBudW1iZXJzIHdlcmUgdXNlZA0KICBzbyBmYXINCg0KLS0tIGEveGVuL2FyY2gveDg2L2h2
-bS9ydGMuYw0KKysrIGIveGVuL2FyY2gveDg2L2h2bS9ydGMuYw0KQEAgLTUwLDExICs1MCwyNCBA
-QCBzdGF0aWMgdm9pZCBydGNfc2V0X3RpbWUoUlRDU3RhdGUgKnMpOw0KIHN0YXRpYyBpbmxpbmUg
-aW50IGZyb21fYmNkKFJUQ1N0YXRlICpzLCBpbnQgYSk7DQogc3RhdGljIGlubGluZSBpbnQgY29u
-dmVydF9ob3VyKFJUQ1N0YXRlICpzLCBpbnQgaG91cik7DQoNCi1zdGF0aWMgdm9pZCBydGNfcGVy
-aW9kaWNfY2Ioc3RydWN0IHZjcHUgKnYsIHZvaWQgKm9wYXF1ZSkNCitzdGF0aWMgdm9pZCBydGNf
-dG9nZ2xlX2lycShSVENTdGF0ZSAqcykNCit7DQorICAgIHN0cnVjdCBkb21haW4gKmQgPSB2cnRj
-X2RvbWFpbihzKTsNCisNCisgICAgQVNTRVJUKHNwaW5faXNfbG9ja2VkKCZzLT5sb2NrKSk7DQor
-ICAgIHMtPmh3LmNtb3NfZGF0YVtSVENfUkVHX0NdIHw9IFJUQ19JUlFGOw0KKyAgICBodm1faXNh
-X2lycV9kZWFzc2VydChkLCBSVENfSVJRKTsNCisgICAgaHZtX2lzYV9pcnFfYXNzZXJ0KGQsIFJU
-Q19JUlEpOw0KK30NCisNCit2b2lkIHJ0Y19wZXJpb2RpY19pbnRlcnJ1cHQodm9pZCAqb3BhcXVl
-KQ0KIHsNCiAgICAgUlRDU3RhdGUgKnMgPSBvcGFxdWU7DQorDQogICAgIHNwaW5fbG9jaygmcy0+
-bG9jayk7DQotICAgIHMtPmh3LmNtb3NfZGF0YVtSVENfUkVHX0NdIHw9IDB4YzA7DQorICAgIHMt
-Pmh3LmNtb3NfZGF0YVtSVENfUkVHX0NdIHw9IFJUQ19QRjsNCisgICAgaWYgKCBzLT5ody5jbW9z
-X2RhdGFbUlRDX1JFR19CXSAmIFJUQ19QSUUgKQ0KKyAgICAgICAgcnRjX3RvZ2dsZV9pcnEocyk7
-DQogICAgIHNwaW5fdW5sb2NrKCZzLT5sb2NrKTsNCiB9DQoNCkBAIC02OCwxOSArODEsMjUgQEAg
-c3RhdGljIHZvaWQgcnRjX3RpbWVyX3VwZGF0ZShSVENTdGF0ZSAqcw0KICAgICBBU1NFUlQoc3Bp
-bl9pc19sb2NrZWQoJnMtPmxvY2spKTsNCg0KICAgICBwZXJpb2RfY29kZSA9IHMtPmh3LmNtb3Nf
-ZGF0YVtSVENfUkVHX0FdICYgUlRDX1JBVEVfU0VMRUNUOw0KLSAgICBpZiAoIChwZXJpb2RfY29k
-ZSAhPSAwKSAmJiAocy0+aHcuY21vc19kYXRhW1JUQ19SRUdfQl0gJiBSVENfUElFKSApDQorICAg
-IHN3aXRjaCAoIHMtPmh3LmNtb3NfZGF0YVtSVENfUkVHX0FdICYgUlRDX0RJVl9DVEwgKQ0KICAg
-ICB7DQotICAgICAgICBpZiAoIHBlcmlvZF9jb2RlIDw9IDIgKQ0KKyAgICBjYXNlIFJUQ19SRUZf
-Q0xDS18zMktIWjoNCisgICAgICAgIGlmICggKHBlcmlvZF9jb2RlICE9IDApICYmIChwZXJpb2Rf
-Y29kZSA8PSAyKSApDQogICAgICAgICAgICAgcGVyaW9kX2NvZGUgKz0gNzsNCi0NCi0gICAgICAg
-IHBlcmlvZCA9IDEgPDwgKHBlcmlvZF9jb2RlIC0gMSk7IC8qIHBlcmlvZCBpbiAzMiBLaHogY3lj
-bGVzICovDQotICAgICAgICBwZXJpb2QgPSBESVZfUk9VTkQoKHBlcmlvZCAqIDEwMDAwMDAwMDBV
-TEwpLCAzMjc2OCk7IC8qIHBlcmlvZCBpbiBucyAqLw0KLSAgICAgICAgY3JlYXRlX3BlcmlvZGlj
-X3RpbWUodiwgJnMtPnB0LCBwZXJpb2QsIHBlcmlvZCwgUlRDX0lSUSwNCi0gICAgICAgICAgICAg
-ICAgICAgICAgICAgICAgIHJ0Y19wZXJpb2RpY19jYiwgcyk7DQotICAgIH0NCi0gICAgZWxzZQ0K
-LSAgICB7DQorICAgICAgICAvKiBmYWxsIHRocm91Z2ggKi8NCisgICAgY2FzZSBSVENfUkVGX0NM
-Q0tfMU1IWjoNCisgICAgY2FzZSBSVENfUkVGX0NMQ0tfNE1IWjoNCisgICAgICAgIGlmICggcGVy
-aW9kX2NvZGUgIT0gMCApDQorICAgICAgICB7DQorICAgICAgICAgICAgcGVyaW9kID0gMSA8PCAo
-cGVyaW9kX2NvZGUgLSAxKTsgLyogcGVyaW9kIGluIDMyIEtoeiBjeWNsZXMgKi8NCisgICAgICAg
-ICAgICBwZXJpb2QgPSBESVZfUk9VTkQocGVyaW9kICogMTAwMDAwMDAwMFVMTCwgMzI3NjgpOyAv
-KiBpbiBucyAqLw0KKyAgICAgICAgICAgIGNyZWF0ZV9wZXJpb2RpY190aW1lKHYsICZzLT5wdCwg
-cGVyaW9kLCBwZXJpb2QsIFJUQ19JUlEsIE5VTEwsIHMpOw0KKyAgICAgICAgICAgIGJyZWFrOw0K
-KyAgICAgICAgfQ0KKyAgICAgICAgLyogZmFsbCB0aHJvdWdoICovDQorICAgIGRlZmF1bHQ6DQog
-ICAgICAgICBkZXN0cm95X3BlcmlvZGljX3RpbWUoJnMtPnB0KTsNCisgICAgICAgIGJyZWFrOw0K
-ICAgICB9DQogfQ0KDQpAQCAtMTAyLDcgKzEyMSw3IEBAIHN0YXRpYyB2b2lkIGNoZWNrX3VwZGF0
-ZV90aW1lcihSVENTdGF0ZSANCiAgICAgICAgIGd1ZXN0X3VzZWMgPSBnZXRfbG9jYWx0aW1lX3Vz
-KGQpICUgVVNFQ19QRVJfU0VDOw0KICAgICAgICAgaWYgKGd1ZXN0X3VzZWMgPj0gKFVTRUNfUEVS
-X1NFQyAtIDI0NCkpDQogICAgICAgICB7DQotICAgICAgICAgICAgLyogUlRDIGlzIGluIHVwZGF0
-ZSBjeWNsZSB3aGVuIGVuYWJsaW5nIFVJRSAqLw0KKyAgICAgICAgICAgIC8qIFJUQyBpcyBpbiB1
-cGRhdGUgY3ljbGUgKi8NCiAgICAgICAgICAgICBzLT5ody5jbW9zX2RhdGFbUlRDX1JFR19BXSB8
-PSBSVENfVUlQOw0KICAgICAgICAgICAgIG5leHRfdXBkYXRlX3RpbWUgPSAoVVNFQ19QRVJfU0VD
-IC0gZ3Vlc3RfdXNlYykgKiBOU19QRVJfVVNFQzsNCiAgICAgICAgICAgICBleHBpcmVfdGltZSA9
-IE5PVygpICsgbmV4dF91cGRhdGVfdGltZTsNCkBAIC0xNDQsNyArMTYzLDYgQEAgc3RhdGljIHZv
-aWQgcnRjX3VwZGF0ZV90aW1lcih2b2lkICpvcGFxdQ0KIHN0YXRpYyB2b2lkIHJ0Y191cGRhdGVf
-dGltZXIyKHZvaWQgKm9wYXF1ZSkNCiB7DQogICAgIFJUQ1N0YXRlICpzID0gb3BhcXVlOw0KLSAg
-ICBzdHJ1Y3QgZG9tYWluICpkID0gdnJ0Y19kb21haW4ocyk7DQoNCiAgICAgc3Bpbl9sb2NrKCZz
-LT5sb2NrKTsNCiAgICAgaWYgKCEocy0+aHcuY21vc19kYXRhW1JUQ19SRUdfQl0gJiBSVENfU0VU
-KSkNCkBAIC0xNTIsMTEgKzE3MCw3IEBAIHN0YXRpYyB2b2lkIHJ0Y191cGRhdGVfdGltZXIyKHZv
-aWQgKm9wYXENCiAgICAgICAgIHMtPmh3LmNtb3NfZGF0YVtSVENfUkVHX0NdIHw9IFJUQ19VRjsN
-CiAgICAgICAgIHMtPmh3LmNtb3NfZGF0YVtSVENfUkVHX0FdICY9IH5SVENfVUlQOw0KICAgICAg
-ICAgaWYgKChzLT5ody5jbW9zX2RhdGFbUlRDX1JFR19CXSAmIFJUQ19VSUUpKQ0KLSAgICAgICAg
-ew0KLSAgICAgICAgICAgIHMtPmh3LmNtb3NfZGF0YVtSVENfUkVHX0NdIHw9IFJUQ19JUlFGOw0K
-LSAgICAgICAgICAgIGh2bV9pc2FfaXJxX2RlYXNzZXJ0KGQsIFJUQ19JUlEpOw0KLSAgICAgICAg
-ICAgIGh2bV9pc2FfaXJxX2Fzc2VydChkLCBSVENfSVJRKTsNCi0gICAgICAgIH0NCisgICAgICAg
-ICAgICBydGNfdG9nZ2xlX2lycShzKTsNCiAgICAgICAgIGNoZWNrX3VwZGF0ZV90aW1lcihzKTsN
-CiAgICAgfQ0KICAgICBzcGluX3VubG9jaygmcy0+bG9jayk7DQpAQCAtMTc1LDIxICsxODksMTgg
-QEAgc3RhdGljIHZvaWQgYWxhcm1fdGltZXJfdXBkYXRlKFJUQ1N0YXRlIA0KDQogICAgIHN0b3Bf
-dGltZXIoJnMtPmFsYXJtX3RpbWVyKTsNCg0KLSAgICBpZiAoKHMtPmh3LmNtb3NfZGF0YVtSVENf
-UkVHX0JdICYgUlRDX0FJRSkgJiYNCi0gICAgICAgICAgICAhKHMtPmh3LmNtb3NfZGF0YVtSVENf
-UkVHX0JdICYgUlRDX1NFVCkpDQorICAgIGlmICggIShzLT5ody5jbW9zX2RhdGFbUlRDX1JFR19C
-XSAmIFJUQ19TRVQpICkNCiAgICAgew0KICAgICAgICAgcy0+Y3VycmVudF90bSA9IGdtdGltZShn
-ZXRfbG9jYWx0aW1lKGQpKTsNCiAgICAgICAgIHJ0Y19jb3B5X2RhdGUocyk7DQoNCiAgICAgICAg
-IGFsYXJtX3NlYyA9IGZyb21fYmNkKHMsIHMtPmh3LmNtb3NfZGF0YVtSVENfU0VDT05EU19BTEFS
-TV0pOw0KICAgICAgICAgYWxhcm1fbWluID0gZnJvbV9iY2Qocywgcy0+aHcuY21vc19kYXRhW1JU
-Q19NSU5VVEVTX0FMQVJNXSk7DQotICAgICAgICBhbGFybV9ob3VyID0gZnJvbV9iY2Qocywgcy0+
-aHcuY21vc19kYXRhW1JUQ19IT1VSU19BTEFSTV0pOw0KLSAgICAgICAgYWxhcm1faG91ciA9IGNv
-bnZlcnRfaG91cihzLCBhbGFybV9ob3VyKTsNCisgICAgICAgIGFsYXJtX2hvdXIgPSBjb252ZXJ0
-X2hvdXIocywgcy0+aHcuY21vc19kYXRhW1JUQ19IT1VSU19BTEFSTV0pOw0KDQogICAgICAgICBj
-dXJfc2VjID0gZnJvbV9iY2Qocywgcy0+aHcuY21vc19kYXRhW1JUQ19TRUNPTkRTXSk7DQogICAg
-ICAgICBjdXJfbWluID0gZnJvbV9iY2Qocywgcy0+aHcuY21vc19kYXRhW1JUQ19NSU5VVEVTXSk7
-DQotICAgICAgICBjdXJfaG91ciA9IGZyb21fYmNkKHMsIHMtPmh3LmNtb3NfZGF0YVtSVENfSE9V
-UlNdKTsNCi0gICAgICAgIGN1cl9ob3VyID0gY29udmVydF9ob3VyKHMsIGN1cl9ob3VyKTsNCisg
-ICAgICAgIGN1cl9ob3VyID0gY29udmVydF9ob3VyKHMsIHMtPmh3LmNtb3NfZGF0YVtSVENfSE9V
-UlNdKTsNCg0KICAgICAgICAgbmV4dF91cGRhdGVfdGltZSA9IFVTRUNfUEVSX1NFQyAtIChnZXRf
-bG9jYWx0aW1lX3VzKGQpICUgVVNFQ19QRVJfU0VDKTsNCiAgICAgICAgIG5leHRfdXBkYXRlX3Rp
-bWUgPSBuZXh0X3VwZGF0ZV90aW1lICogTlNfUEVSX1VTRUMgKyBOT1coKTsNCkBAIC0zNDMsNyAr
-MzU0LDYgQEAgc3RhdGljIHZvaWQgYWxhcm1fdGltZXJfdXBkYXRlKFJUQ1N0YXRlIA0KIHN0YXRp
-YyB2b2lkIHJ0Y19hbGFybV9jYih2b2lkICpvcGFxdWUpDQogew0KICAgICBSVENTdGF0ZSAqcyA9
-IG9wYXF1ZTsNCi0gICAgc3RydWN0IGRvbWFpbiAqZCA9IHZydGNfZG9tYWluKHMpOw0KDQogICAg
-IHNwaW5fbG9jaygmcy0+bG9jayk7DQogICAgIGlmICghKHMtPmh3LmNtb3NfZGF0YVtSVENfUkVH
-X0JdICYgUlRDX1NFVCkpDQpAQCAtMzUxLDExICszNjEsNyBAQCBzdGF0aWMgdm9pZCBydGNfYWxh
-cm1fY2Iodm9pZCAqb3BhcXVlKQ0KICAgICAgICAgcy0+aHcuY21vc19kYXRhW1JUQ19SRUdfQ10g
-fD0gUlRDX0FGOw0KICAgICAgICAgLyogYWxhcm0gaW50ZXJydXB0ICovDQogICAgICAgICBpZiAo
-cy0+aHcuY21vc19kYXRhW1JUQ19SRUdfQl0gJiBSVENfQUlFKQ0KLSAgICAgICAgew0KLSAgICAg
-ICAgICAgIHMtPmh3LmNtb3NfZGF0YVtSVENfUkVHX0NdIHw9IFJUQ19JUlFGOw0KLSAgICAgICAg
-ICAgIGh2bV9pc2FfaXJxX2RlYXNzZXJ0KGQsIFJUQ19JUlEpOw0KLSAgICAgICAgICAgIGh2bV9p
-c2FfaXJxX2Fzc2VydChkLCBSVENfSVJRKTsNCi0gICAgICAgIH0NCisgICAgICAgICAgICBydGNf
-dG9nZ2xlX2lycShzKTsNCiAgICAgICAgIGFsYXJtX3RpbWVyX3VwZGF0ZShzKTsNCiAgICAgfQ0K
-ICAgICBzcGluX3VubG9jaygmcy0+bG9jayk7DQpAQCAtMzY1LDYgKzM3MSw3IEBAIHN0YXRpYyBp
-bnQgcnRjX2lvcG9ydF93cml0ZSh2b2lkICpvcGFxdWUNCiB7DQogICAgIFJUQ1N0YXRlICpzID0g
-b3BhcXVlOw0KICAgICBzdHJ1Y3QgZG9tYWluICpkID0gdnJ0Y19kb21haW4ocyk7DQorICAgIHVp
-bnQzMl90IG9yaWcsIG1hc2s7DQoNCiAgICAgc3Bpbl9sb2NrKCZzLT5sb2NrKTsNCg0KQEAgLTM4
-Miw2ICszODksNyBAQCBzdGF0aWMgaW50IHJ0Y19pb3BvcnRfd3JpdGUodm9pZCAqb3BhcXVlDQog
-ICAgICAgICByZXR1cm4gMDsNCiAgICAgfQ0KDQorICAgIG9yaWcgPSBzLT5ody5jbW9zX2RhdGFb
-cy0+aHcuY21vc19pbmRleF07DQogICAgIHN3aXRjaCAoIHMtPmh3LmNtb3NfaW5kZXggKQ0KICAg
-ICB7DQogICAgIGNhc2UgUlRDX1NFQ09ORFNfQUxBUk06DQpAQCAtNDA1LDkgKzQxMyw5IEBAIHN0
-YXRpYyBpbnQgcnRjX2lvcG9ydF93cml0ZSh2b2lkICpvcGFxdWUNCiAgICAgICAgIGJyZWFrOw0K
-ICAgICBjYXNlIFJUQ19SRUdfQToNCiAgICAgICAgIC8qIFVJUCBiaXQgaXMgcmVhZCBvbmx5ICov
-DQotICAgICAgICBzLT5ody5jbW9zX2RhdGFbUlRDX1JFR19BXSA9IChkYXRhICYgflJUQ19VSVAp
-IHwNCi0gICAgICAgICAgICAocy0+aHcuY21vc19kYXRhW1JUQ19SRUdfQV0gJiBSVENfVUlQKTsN
-Ci0gICAgICAgIHJ0Y190aW1lcl91cGRhdGUocyk7DQorICAgICAgICBzLT5ody5jbW9zX2RhdGFb
-UlRDX1JFR19BXSA9IChkYXRhICYgflJUQ19VSVApIHwgKG9yaWcgJiBSVENfVUlQKTsNCisgICAg
-ICAgIGlmICggKGRhdGEgXiBvcmlnKSAmIChSVENfUkFURV9TRUxFQ1QgfCBSVENfRElWX0NUTCkg
-KQ0KKyAgICAgICAgICAgIHJ0Y190aW1lcl91cGRhdGUocyk7DQogICAgICAgICBicmVhazsNCiAg
-ICAgY2FzZSBSVENfUkVHX0I6DQogICAgICAgICBpZiAoIGRhdGEgJiBSVENfU0VUICkNCkBAIC00
-MTUsNyArNDIzLDcgQEAgc3RhdGljIGludCBydGNfaW9wb3J0X3dyaXRlKHZvaWQgKm9wYXF1ZQ0K
-ICAgICAgICAgICAgIC8qIHNldCBtb2RlOiByZXNldCBVSVAgbW9kZSAqLw0KICAgICAgICAgICAg
-IHMtPmh3LmNtb3NfZGF0YVtSVENfUkVHX0FdICY9IH5SVENfVUlQOw0KICAgICAgICAgICAgIC8q
-IGFkanVzdCBjbW9zIGJlZm9yZSBzdG9wcGluZyAqLw0KLSAgICAgICAgICAgIGlmICghKHMtPmh3
-LmNtb3NfZGF0YVtSVENfUkVHX0JdICYgUlRDX1NFVCkpDQorICAgICAgICAgICAgaWYgKCEob3Jp
-ZyAmIFJUQ19TRVQpKQ0KICAgICAgICAgICAgIHsNCiAgICAgICAgICAgICAgICAgcy0+Y3VycmVu
-dF90bSA9IGdtdGltZShnZXRfbG9jYWx0aW1lKGQpKTsNCiAgICAgICAgICAgICAgICAgcnRjX2Nv
-cHlfZGF0ZShzKTsNCkBAIC00MjQsMjEgKzQzMiwyNiBAQCBzdGF0aWMgaW50IHJ0Y19pb3BvcnRf
-d3JpdGUodm9pZCAqb3BhcXVlDQogICAgICAgICBlbHNlDQogICAgICAgICB7DQogICAgICAgICAg
-ICAgLyogaWYgZGlzYWJsaW5nIHNldCBtb2RlLCB1cGRhdGUgdGhlIHRpbWUgKi8NCi0gICAgICAg
-ICAgICBpZiAoIHMtPmh3LmNtb3NfZGF0YVtSVENfUkVHX0JdICYgUlRDX1NFVCApDQorICAgICAg
-ICAgICAgaWYgKCBvcmlnICYgUlRDX1NFVCApDQogICAgICAgICAgICAgICAgIHJ0Y19zZXRfdGlt
-ZShzKTsNCiAgICAgICAgIH0NCi0gICAgICAgIC8qIGlmIHRoZSBpbnRlcnJ1cHQgaXMgYWxyZWFk
-eSBzZXQgd2hlbiB0aGUgaW50ZXJydXB0IGJlY29tZQ0KLSAgICAgICAgICogZW5hYmxlZCwgcmFp
-c2UgYW4gaW50ZXJydXB0IGltbWVkaWF0ZWx5Ki8NCi0gICAgICAgIGlmICgoZGF0YSAmIFJUQ19V
-SUUpICYmICEocy0+aHcuY21vc19kYXRhW1JUQ19SRUdfQl0gJiBSVENfVUlFKSkNCi0gICAgICAg
-ICAgICBpZiAocy0+aHcuY21vc19kYXRhW1JUQ19SRUdfQ10gJiBSVENfVUYpDQorICAgICAgICAv
-Kg0KKyAgICAgICAgICogSWYgdGhlIGludGVycnVwdCBpcyBhbHJlYWR5IHNldCB3aGVuIHRoZSBp
-bnRlcnJ1cHQgYmVjb21lcw0KKyAgICAgICAgICogZW5hYmxlZCwgcmFpc2UgYW4gaW50ZXJydXB0
-IGltbWVkaWF0ZWx5Lg0KKyAgICAgICAgICogTkI6IFJUQ197QSxQLFV9SUUgPT0gUlRDX3tBLFAs
-VX1GIHJlc3BlY3RpdmVseS4NCisgICAgICAgICAqLw0KKyAgICAgICAgZm9yICggbWFzayA9IFJU
-Q19VSUU7IG1hc2sgPD0gUlRDX1BJRTsgbWFzayA8PD0gMSApDQorICAgICAgICAgICAgaWYgKCAo
-ZGF0YSAmIG1hc2spICYmICEob3JpZyAmIG1hc2spICYmDQorICAgICAgICAgICAgICAgICAocy0+
-aHcuY21vc19kYXRhW1JUQ19SRUdfQ10gJiBtYXNrKSApDQogICAgICAgICAgICAgew0KLSAgICAg
-ICAgICAgICAgICBodm1faXNhX2lycV9kZWFzc2VydChkLCBSVENfSVJRKTsNCi0gICAgICAgICAg
-ICAgICAgaHZtX2lzYV9pcnFfYXNzZXJ0KGQsIFJUQ19JUlEpOw0KKyAgICAgICAgICAgICAgICBy
-dGNfdG9nZ2xlX2lycShzKTsNCisgICAgICAgICAgICAgICAgYnJlYWs7DQogICAgICAgICAgICAg
-fQ0KICAgICAgICAgcy0+aHcuY21vc19kYXRhW1JUQ19SRUdfQl0gPSBkYXRhOw0KLSAgICAgICAg
-cnRjX3RpbWVyX3VwZGF0ZShzKTsNCi0gICAgICAgIGNoZWNrX3VwZGF0ZV90aW1lcihzKTsNCi0g
-ICAgICAgIGFsYXJtX3RpbWVyX3VwZGF0ZShzKTsNCisgICAgICAgIGlmICggKGRhdGEgXiBvcmln
-KSAmIFJUQ19TRVQgKQ0KKyAgICAgICAgICAgIGNoZWNrX3VwZGF0ZV90aW1lcihzKTsNCisgICAg
-ICAgIGlmICggKGRhdGEgXiBvcmlnKSAmIChSVENfMjRIIHwgUlRDX0RNX0JJTkFSWSB8IFJUQ19T
-RVQpICkNCisgICAgICAgICAgICBhbGFybV90aW1lcl91cGRhdGUocyk7DQogICAgICAgICBicmVh
-azsNCiAgICAgY2FzZSBSVENfUkVHX0M6DQogICAgIGNhc2UgUlRDX1JFR19EOg0KQEAgLTQ1Myw3
-ICs0NjYsNyBAQCBzdGF0aWMgaW50IHJ0Y19pb3BvcnRfd3JpdGUodm9pZCAqb3BhcXVlDQoNCiBz
-dGF0aWMgaW5saW5lIGludCB0b19iY2QoUlRDU3RhdGUgKnMsIGludCBhKQ0KIHsNCi0gICAgaWYg
-KCBzLT5ody5jbW9zX2RhdGFbUlRDX1JFR19CXSAmIDB4MDQgKQ0KKyAgICBpZiAoIHMtPmh3LmNt
-b3NfZGF0YVtSVENfUkVHX0JdICYgUlRDX0RNX0JJTkFSWSApDQogICAgICAgICByZXR1cm4gYTsN
-CiAgICAgZWxzZQ0KICAgICAgICAgcmV0dXJuICgoYSAvIDEwKSA8PCA0KSB8IChhICUgMTApOw0K
-QEAgLTQ2MSw3ICs0NzQsNyBAQCBzdGF0aWMgaW5saW5lIGludCB0b19iY2QoUlRDU3RhdGUgKnMs
-IGluDQoNCiBzdGF0aWMgaW5saW5lIGludCBmcm9tX2JjZChSVENTdGF0ZSAqcywgaW50IGEpDQog
-ew0KLSAgICBpZiAoIHMtPmh3LmNtb3NfZGF0YVtSVENfUkVHX0JdICYgMHgwNCApDQorICAgIGlm
-ICggcy0+aHcuY21vc19kYXRhW1JUQ19SRUdfQl0gJiBSVENfRE1fQklOQVJZICkNCiAgICAgICAg
-IHJldHVybiBhOw0KICAgICBlbHNlDQogICAgICAgICByZXR1cm4gKChhID4+IDQpICogMTApICsg
-KGEgJiAweDBmKTsNCkBAIC00NjksMTIgKzQ4MiwxNCBAQCBzdGF0aWMgaW5saW5lIGludCBmcm9t
-X2JjZChSVENTdGF0ZSAqcywgDQoNCiAvKiBIb3VycyBpbiAxMiBob3VyIG1vZGUgYXJlIGluIDEt
-MTIgcmFuZ2UsIG5vdCAwLTExLg0KICAqIFNvIHdlIG5lZWQgY29udmVydCBpdCBiZWZvcmUgdXNp
-bmcgaXQqLw0KLXN0YXRpYyBpbmxpbmUgaW50IGNvbnZlcnRfaG91cihSVENTdGF0ZSAqcywgaW50
-IGhvdXIpDQorc3RhdGljIGlubGluZSBpbnQgY29udmVydF9ob3VyKFJUQ1N0YXRlICpzLCBpbnQg
-cmF3KQ0KIHsNCisgICAgaW50IGhvdXIgPSBmcm9tX2JjZChzLCByYXcgJiAweDdmKTsNCisNCiAg
-ICAgaWYgKCEocy0+aHcuY21vc19kYXRhW1JUQ19SRUdfQl0gJiBSVENfMjRIKSkNCiAgICAgew0K
-ICAgICAgICAgaG91ciAlPSAxMjsNCi0gICAgICAgIGlmIChzLT5ody5jbW9zX2RhdGFbUlRDX0hP
-VVJTXSAmIDB4ODApDQorICAgICAgICBpZiAocmF3ICYgMHg4MCkNCiAgICAgICAgICAgICBob3Vy
-ICs9IDEyOw0KICAgICB9DQogICAgIHJldHVybiBob3VyOw0KQEAgLTQ5Myw4ICs1MDgsNyBAQCBz
-dGF0aWMgdm9pZCBydGNfc2V0X3RpbWUoUlRDU3RhdGUgKnMpDQogICAgIA0KICAgICB0bS0+dG1f
-c2VjID0gZnJvbV9iY2Qocywgcy0+aHcuY21vc19kYXRhW1JUQ19TRUNPTkRTXSk7DQogICAgIHRt
-LT50bV9taW4gPSBmcm9tX2JjZChzLCBzLT5ody5jbW9zX2RhdGFbUlRDX01JTlVURVNdKTsNCi0g
-ICAgdG0tPnRtX2hvdXIgPSBmcm9tX2JjZChzLCBzLT5ody5jbW9zX2RhdGFbUlRDX0hPVVJTXSAm
-IDB4N2YpOw0KLSAgICB0bS0+dG1faG91ciA9IGNvbnZlcnRfaG91cihzLCB0bS0+dG1faG91cik7
-DQorICAgIHRtLT50bV9ob3VyID0gY29udmVydF9ob3VyKHMsIHMtPmh3LmNtb3NfZGF0YVtSVENf
-SE9VUlNdKTsNCiAgICAgdG0tPnRtX3dkYXkgPSBmcm9tX2JjZChzLCBzLT5ody5jbW9zX2RhdGFb
-UlRDX0RBWV9PRl9XRUVLXSk7DQogICAgIHRtLT50bV9tZGF5ID0gZnJvbV9iY2Qocywgcy0+aHcu
-Y21vc19kYXRhW1JUQ19EQVlfT0ZfTU9OVEhdKTsNCiAgICAgdG0tPnRtX21vbiA9IGZyb21fYmNk
-KHMsIHMtPmh3LmNtb3NfZGF0YVtSVENfTU9OVEhdKSAtIDE7DQotLS0gYS94ZW4vYXJjaC94ODYv
-aHZtL3ZwdC5jDQorKysgYi94ZW4vYXJjaC94ODYvaHZtL3ZwdC5jDQpAQCAtMjIsNiArMjIsNyBA
-QA0KICNpbmNsdWRlIDxhc20vaHZtL3ZwdC5oPg0KICNpbmNsdWRlIDxhc20vZXZlbnQuaD4NCiAj
-aW5jbHVkZSA8YXNtL2FwaWMuaD4NCisjaW5jbHVkZSA8YXNtL21jMTQ2ODE4cnRjLmg+DQoNCiAj
-ZGVmaW5lIG1vZGVfaXMoZCwgbmFtZSkgXA0KICAgICAoKGQpLT5hcmNoLmh2bV9kb21haW4ucGFy
-YW1zW0hWTV9QQVJBTV9USU1FUl9NT0RFXSA9PSBIVk1QVE1fIyNuYW1lKQ0KQEAgLTIxOCw2ICsy
-MTksNyBAQCB2b2lkIHB0X3VwZGF0ZV9pcnEoc3RydWN0IHZjcHUgKnYpDQogICAgIHN0cnVjdCBw
-ZXJpb2RpY190aW1lICpwdCwgKnRlbXAsICplYXJsaWVzdF9wdCA9IE5VTEw7DQogICAgIHVpbnQ2
-NF90IG1heF9sYWcgPSAtMVVMTDsNCiAgICAgaW50IGlycSwgaXNfbGFwaWM7DQorICAgIHZvaWQg
-KnB0X3ByaXY7DQoNCiAgICAgc3Bpbl9sb2NrKCZ2LT5hcmNoLmh2bV92Y3B1LnRtX2xvY2spOw0K
-DQpAQCAtMjUxLDEzICsyNTMsMTQgQEAgdm9pZCBwdF91cGRhdGVfaXJxKHN0cnVjdCB2Y3B1ICp2
-KQ0KICAgICBlYXJsaWVzdF9wdC0+aXJxX2lzc3VlZCA9IDE7DQogICAgIGlycSA9IGVhcmxpZXN0
-X3B0LT5pcnE7DQogICAgIGlzX2xhcGljID0gKGVhcmxpZXN0X3B0LT5zb3VyY2UgPT0gUFRTUkNf
-bGFwaWMpOw0KKyAgICBwdF9wcml2ID0gZWFybGllc3RfcHQtPnByaXY7DQoNCiAgICAgc3Bpbl91
-bmxvY2soJnYtPmFyY2guaHZtX3ZjcHUudG1fbG9jayk7DQoNCiAgICAgaWYgKCBpc19sYXBpYyAp
-DQotICAgIHsNCiAgICAgICAgIHZsYXBpY19zZXRfaXJxKHZjcHVfdmxhcGljKHYpLCBpcnEsIDAp
-Ow0KLSAgICB9DQorICAgIGVsc2UgaWYgKCBpcnEgPT0gUlRDX0lSUSApDQorICAgICAgICBydGNf
-cGVyaW9kaWNfaW50ZXJydXB0KHB0X3ByaXYpOw0KICAgICBlbHNlDQogICAgIHsNCiAgICAgICAg
-IGh2bV9pc2FfaXJxX2RlYXNzZXJ0KHYtPmRvbWFpbiwgaXJxKTsNCi0tLSBhL3hlbi9pbmNsdWRl
-L2FzbS14ODYvaHZtL3ZwdC5oDQorKysgYi94ZW4vaW5jbHVkZS9hc20teDg2L2h2bS92cHQuaA0K
-QEAgLTE4MSw2ICsxODEsNyBAQCB2b2lkIHJ0Y19taWdyYXRlX3RpbWVycyhzdHJ1Y3QgdmNwdSAq
-dik7DQogdm9pZCBydGNfZGVpbml0KHN0cnVjdCBkb21haW4gKmQpOw0KIHZvaWQgcnRjX3Jlc2V0
-KHN0cnVjdCBkb21haW4gKmQpOw0KIHZvaWQgcnRjX3VwZGF0ZV9jbG9jayhzdHJ1Y3QgZG9tYWlu
-ICpkKTsNCit2b2lkIHJ0Y19wZXJpb2RpY19pbnRlcnJ1cHQodm9pZCAqKTsNCg0KIHZvaWQgcG10
-aW1lcl9pbml0KHN0cnVjdCB2Y3B1ICp2KTsNCiB2b2lkIHBtdGltZXJfZGVpbml0KHN0cnVjdCBk
-b21haW4gKmQpOw0KDQoNCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
-X19fX19fDQpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0DQpYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZw0K
-aHR0cDovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVs
-
-------=_002_NextPart316018485136_=----
-Content-Type: text/html;
-       charset="gb2312"
-Content-Transfer-Encoding: quoted-printable
-
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<HTML><HEAD>
-<META http-equiv=3DContent-Type content=3D"text/html; charset=3Dgb2312">
-<STYLE>
-BLOCKQUOTE {
-       MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; MARGIN-LEFT: 2em
-}
-OL {
-       MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px
-}
-UL {
-       MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px
-}
-P {
-       MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px
-}
-BODY {
-       FONT-SIZE: 10.5pt; COLOR: #000080; LINE-HEIGHT: 1.5; FONT-FAMILY: =CB=CE=
-=CC=E5
-}
-</STYLE>
-
-<META content=3D"MSHTML 6.00.2900.5512" name=3DGENERATOR></HEAD>
-<BODY style=3D"MARGIN: 10px">
-<DIV>Hi, Jan:</DIV>
-<DIV>I am sorry I really don't have much time to try a test of your patch,=
- and=20
-it is not convenient</DIV>
-<DIV>for me to have a try. For the version I have been using is xen4.0.x, =
-and=20
-your patch is based on </DIV>
-<DIV>the latest version xen4.2.x.(I have never complied the unstable one),=
- so I=20
-merged your patch to my </DIV>
-<DIV>xen4.0.x, still couldn't find the two functions below:</DIV>
-<DIV>&nbsp;static&nbsp;void&nbsp;rtc_update_timer2(void&nbsp;*opaque) </DI=
-V>
-<DIV>&nbsp;static&nbsp;void&nbsp;rtc_alarm_cb(void&nbsp;*opaque) </DIV>
-<DIV>so I didn't merge the two functions which contains a rtc_toggle_irq()=
-=20
-.</DIV>
-<DIV>&nbsp;</DIV>
-<DIV>The results for me were these:</DIV>
-<DIV>1 In my real application environment, it worked very well in the form=
-er=20
-5mins, much better than before,</DIV>
-<DIV>&nbsp;but at last it lagged again. I don't know whether it belongs to=
- the=20
-two missed functions. I lack the </DIV>
-<DIV>&nbsp;ability to figure them out.</DIV>
-<DIV style=3D"TEXT-INDENT: 2em">&nbsp;</DIV>
-<DIV>2 When I tested my test program which I provided days before, it work=
-ed=20
-very well, maybe the program doesn't </DIV>
-<DIV>emulate the real environment due to&nbsp;the same setting rate,&nbsp;=
-so I=20
-modified this program as which in the attachment.</DIV>
-<DIV>if you are more convenient, you can help me to have a look of it.</DI=
-V>
-<DIV>And I have a opinion, because our product is based on Version Xen4.0.=
-x, if=20
-you have enough time, can you write </DIV>
-<DIV>another patch based <A=20
-href=3D"http://xenbits.xen.org/hg/xen-4.0-testing.hg/">http://xenbits.xen.=
-org/hg/xen-4.0-testing.hg/</A>&nbsp;for=20
-me, thank you very much!</DIV>
-<DIV>&nbsp;</DIV>
-<DIV>3 I also have a thought that can we have some detecting methods to fi=
-nd the=20
-lagging time earlier to adjust time</DIV>
-<DIV>back to normal value in the code?</DIV>
-<DIV>&nbsp;</DIV>
-<DIV>best regards,</DIV>
-<DIV style=3D"TEXT-INDENT: 2em">&nbsp;</DIV>
-<DIV style=3D"TEXT-INDENT: 2em">
-<HR style=3D"WIDTH: 210px; HEIGHT: 1px" align=3Dleft color=3D#b5c4df SIZE=
-=3D1>
-</DIV>
-<DIV><SPAN>tupeng212</SPAN></DIV>
-<DIV>
-<DIV>&nbsp;</DIV></DIV>
-<DIV=20
-style=3D"BORDER-RIGHT: medium none; PADDING-RIGHT: 0cm; BORDER-TOP: #b5c4d=
-f 1pt solid; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; BORDER-LEFT: medium n=
-one; PADDING-TOP: 3pt; BORDER-BOTTOM: medium none">
-<DIV=20
-style=3D"PADDING-RIGHT: 8px; PADDING-LEFT: 8px; FONT-SIZE: 12px; BACKGROUN=
-D: #efefef; PADDING-BOTTOM: 8px; COLOR: #000000; PADDING-TOP: 8px">
-<DIV>
-<DIV>Second&nbsp;draft&nbsp;of&nbsp;a&nbsp;patch&nbsp;posted;&nbsp;no&nbsp=
-;test&nbsp;results&nbsp;so&nbsp;far&nbsp;for&nbsp;first&nbsp;draft.</DIV>
-<DIV>Jan</DIV></DIV>
-<DIV><B></B>&nbsp;</DIV>
-<DIV><B>From:</B>&nbsp;<A href=3D"mailto:JBeulich@suse.com">Jan Beulich</A=
-></DIV>
-<DIV><B>Date:</B>&nbsp;2012-08-14&nbsp;17:51</DIV>
-<DIV><B>To:</B>&nbsp;<A href=3D"mailto:yang.z.zhang@intel.com">Yang Z Zhan=
-g</A>;=20
-<A href=3D"mailto:keir@xen.org">Keir Fraser</A>; <A href=3D"mailto:tim@xen=
-.org">Tim=20
-Deegan</A></DIV>
-<DIV><B>CC:</B>&nbsp;<A href=3D"mailto:tupeng212@gmail.com">tupeng212</A>;=
- <A=20
-href=3D"mailto:xen-devel@lists.xen.org">xen-devel</A></DIV>
-<DIV><B>Subject:</B>&nbsp;[Xen-devel] [PATCH, RFC v2] x86/HVM: assorted RT=
-C=20
-emulation adjustments (was Re: Big Bug:Time in VM goes=20
-slower...)</DIV></DIV></DIV>
-<DIV>
-<DIV>Below/attached&nbsp;a&nbsp;second&nbsp;draft&nbsp;of&nbsp;a&nbsp;patc=
-h&nbsp;to&nbsp;fix&nbsp;not&nbsp;only&nbsp;this</DIV>
-<DIV>issue,&nbsp;but&nbsp;a&nbsp;few&nbsp;more&nbsp;with&nbsp;the&nbsp;RTC=
-&nbsp;emulation.</DIV>
-<DIV>&nbsp;</DIV>
-<DIV>Keir,&nbsp;Tim,&nbsp;Yang,&nbsp;others&nbsp;-&nbsp;the&nbsp;change&nb=
-sp;to&nbsp;xen/arch/x86/hvm/vpt.c&nbsp;really</DIV>
-<DIV>looks&nbsp;more&nbsp;like&nbsp;a&nbsp;hack&nbsp;than&nbsp;a&nbsp;solu=
-tion,&nbsp;but&nbsp;I&nbsp;don't&nbsp;see&nbsp;another</DIV>
-<DIV>way&nbsp;without&nbsp;much&nbsp;more&nbsp;intrusive&nbsp;changes.&nbs=
-p;The&nbsp;point&nbsp;is&nbsp;that&nbsp;we</DIV>
-<DIV>want&nbsp;the&nbsp;RTC&nbsp;code&nbsp;to&nbsp;decide&nbsp;whether&nbs=
-p;to&nbsp;generate&nbsp;an&nbsp;interrupt</DIV>
-<DIV>(so&nbsp;that&nbsp;RTC_PF&nbsp;can&nbsp;become&nbsp;set&nbsp;correctl=
-y&nbsp;even&nbsp;without&nbsp;RTC_PIE</DIV>
-<DIV>getting&nbsp;enabled&nbsp;by&nbsp;the&nbsp;guest).</DIV>
-<DIV>&nbsp;</DIV>
-<DIV>Additionally&nbsp;I&nbsp;wonder&nbsp;whether&nbsp;alarm_timer_update(=
-)&nbsp;shouldn't</DIV>
-<DIV>bail&nbsp;on&nbsp;non-conforming&nbsp;RTC_*_ALARM&nbsp;values&nbsp;(a=
-s&nbsp;those&nbsp;would</DIV>
-<DIV>never&nbsp;match&nbsp;the&nbsp;values&nbsp;they&nbsp;get&nbsp;compare=
-d&nbsp;against,&nbsp;whereas</DIV>
-<DIV>with&nbsp;the&nbsp;current&nbsp;way&nbsp;of&nbsp;handling&nbsp;this&n=
-bsp;they&nbsp;would&nbsp;appear&nbsp;to</DIV>
-<DIV>match&nbsp;-&nbsp;i.e.&nbsp;set&nbsp;RTC_AF&nbsp;and&nbsp;possibly&nb=
-sp;generate&nbsp;an&nbsp;interrupt&nbsp;-</DIV>
-<DIV>some&nbsp;other&nbsp;point&nbsp;in&nbsp;time).&nbsp;I&nbsp;realize&nb=
-sp;the&nbsp;behavior&nbsp;here&nbsp;may&nbsp;not</DIV>
-<DIV>be&nbsp;precisely&nbsp;specified,&nbsp;but&nbsp;the&nbsp;specificatio=
-n&nbsp;saying&nbsp;"the&nbsp;current</DIV>
-<DIV>time&nbsp;has&nbsp;matched&nbsp;the&nbsp;alarm&nbsp;time"&nbsp;means&=
-nbsp;to&nbsp;me&nbsp;a&nbsp;value&nbsp;by&nbsp;value</DIV>
-<DIV>comparison,&nbsp;which&nbsp;implies&nbsp;that&nbsp;non-conforming&nbs=
-p;values&nbsp;would</DIV>
-<DIV>never&nbsp;match&nbsp;(since&nbsp;non-conforming&nbsp;current&nbsp;ti=
-me&nbsp;values&nbsp;could</DIV>
-<DIV>get&nbsp;replaced&nbsp;at&nbsp;any&nbsp;time&nbsp;by&nbsp;the&nbsp;ha=
-rdware&nbsp;due&nbsp;to&nbsp;overflow</DIV>
-<DIV>detection).</DIV>
-<DIV>&nbsp;</DIV>
-<DIV>Jan</DIV>
-<DIV>&nbsp;</DIV>
-<DIV>-&nbsp;don't&nbsp;call&nbsp;rtc_timer_update()&nbsp;on&nbsp;REG_A&nbs=
-p;writes&nbsp;when&nbsp;the&nbsp;value&nbsp;didn't</DIV>
-<DIV>&nbsp;&nbsp;change&nbsp;(doing&nbsp;the&nbsp;call&nbsp;always&nbsp;wa=
-s&nbsp;reported&nbsp;to&nbsp;cause&nbsp;wall&nbsp;clock&nbsp;time</DIV>
-<DIV>&nbsp;&nbsp;lagging&nbsp;with&nbsp;the&nbsp;JVM&nbsp;running&nbsp;on&=
-nbsp;Windows)</DIV>
-<DIV>-&nbsp;don't&nbsp;call&nbsp;rtc_timer_update()&nbsp;on&nbsp;REG_B&nbs=
-p;writes&nbsp;at&nbsp;all</DIV>
-<DIV>-&nbsp;only&nbsp;call&nbsp;alarm_timer_update()&nbsp;on&nbsp;REG_B&nb=
-sp;writes&nbsp;when&nbsp;relevant&nbsp;bits</DIV>
-<DIV>&nbsp;&nbsp;change</DIV>
-<DIV>-&nbsp;only&nbsp;call&nbsp;check_update_timer()&nbsp;on&nbsp;REG_B&nb=
-sp;writes&nbsp;when&nbsp;SET&nbsp;changes</DIV>
-<DIV>-&nbsp;instead&nbsp;properly&nbsp;handle&nbsp;AF&nbsp;and&nbsp;PF&nbs=
-p;when&nbsp;the&nbsp;guest&nbsp;is&nbsp;not&nbsp;also&nbsp;setting</DIV>
-<DIV>&nbsp;&nbsp;AIE/PIE&nbsp;respectively&nbsp;(for&nbsp;UF&nbsp;this&nbs=
-p;was&nbsp;already&nbsp;the&nbsp;case,&nbsp;only&nbsp;a</DIV>
-<DIV>&nbsp;&nbsp;comment&nbsp;was&nbsp;slightly&nbsp;inaccurate)</DIV>
-<DIV>-&nbsp;raise&nbsp;the&nbsp;RTC&nbsp;IRQ&nbsp;not&nbsp;only&nbsp;when&=
-nbsp;UIE&nbsp;gets&nbsp;set&nbsp;while&nbsp;UF&nbsp;was&nbsp;already</DIV>
-<DIV>&nbsp;&nbsp;set,&nbsp;but&nbsp;generalize&nbsp;this&nbsp;to&nbsp;cove=
-r&nbsp;AIE&nbsp;and&nbsp;PIE&nbsp;as&nbsp;well</DIV>
-<DIV>-&nbsp;properly&nbsp;mask&nbsp;off&nbsp;bit&nbsp;7&nbsp;when&nbsp;ret=
-rieving&nbsp;the&nbsp;hour&nbsp;values&nbsp;in</DIV>
-<DIV>&nbsp;&nbsp;alarm_timer_update(),&nbsp;and&nbsp;properly&nbsp;use&nbs=
-p;RTC_HOURS_ALARM's&nbsp;bit&nbsp;7&nbsp;when</DIV>
-<DIV>&nbsp;&nbsp;converting&nbsp;from&nbsp;12-&nbsp;to&nbsp;24-hour&nbsp;v=
-alue</DIV>
-<DIV>-&nbsp;also&nbsp;handle&nbsp;the&nbsp;two&nbsp;other&nbsp;possible&nb=
-sp;clock&nbsp;bases</DIV>
-<DIV>-&nbsp;use&nbsp;RTC_*&nbsp;names&nbsp;in&nbsp;a&nbsp;couple&nbsp;of&n=
-bsp;places&nbsp;where&nbsp;literal&nbsp;numbers&nbsp;were&nbsp;used</DIV>
-<DIV>&nbsp;&nbsp;so&nbsp;far</DIV>
-<DIV>&nbsp;</DIV>
-<DIV>---&nbsp;a/xen/arch/x86/hvm/rtc.c</DIV>
-<DIV>+++&nbsp;b/xen/arch/x86/hvm/rtc.c</DIV>
-<DIV>@@&nbsp;-50,11&nbsp;+50,24&nbsp;@@&nbsp;static&nbsp;void&nbsp;rtc_set=
-_time(RTCState&nbsp;*s);</DIV>
-<DIV>&nbsp;static&nbsp;inline&nbsp;int&nbsp;from_bcd(RTCState&nbsp;*s,&nbs=
-p;int&nbsp;a);</DIV>
-<DIV>&nbsp;static&nbsp;inline&nbsp;int&nbsp;convert_hour(RTCState&nbsp;*s,=
-&nbsp;int&nbsp;hour);</DIV>
-<DIV>&nbsp;</DIV>
-<DIV>-static&nbsp;void&nbsp;rtc_periodic_cb(struct&nbsp;vcpu&nbsp;*v,&nbsp=
-;void&nbsp;*opaque)</DIV>
-<DIV>+static&nbsp;void&nbsp;rtc_toggle_irq(RTCState&nbsp;*s)</DIV>
-<DIV>+{</DIV>
-<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;struct&nbsp;domain&nbsp;*d&nbsp;=3D&nbsp;vrt=
-c_domain(s);</DIV>
-<DIV>+</DIV>
-<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;ASSERT(spin_is_locked(&amp;s-&gt;lock));</DI=
-V>
-<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;s-&gt;hw.cmos_data[RTC_REG_C]&nbsp;|=3D&nbsp=
-;RTC_IRQF;</DIV>
-<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;hvm_isa_irq_deassert(d,&nbsp;RTC_IRQ);</DIV>
-<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;hvm_isa_irq_assert(d,&nbsp;RTC_IRQ);</DIV>
-<DIV>+}</DIV>
-<DIV>+</DIV>
-<DIV>+void&nbsp;rtc_periodic_interrupt(void&nbsp;*opaque)</DIV>
-<DIV>&nbsp;{</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RTCState&nbsp;*s&nbsp;=3D&nbsp;opaque;<=
-/DIV>
-<DIV>+</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;spin_lock(&amp;s-&gt;lock);</DIV>
-<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;s-&gt;hw.cmos_data[RTC_REG_C]&nbsp;|=3D&nbsp=
-;0xc0;</DIV>
-<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;s-&gt;hw.cmos_data[RTC_REG_C]&nbsp;|=3D&nbsp=
-;RTC_PF;</DIV>
-<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(&nbsp;s-&gt;hw.cmos_data[RTC_REG_B]=
-&nbsp;&amp;&nbsp;RTC_PIE&nbsp;)</DIV>
-<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rtc_toggle_irq(s);</=
-DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;spin_unlock(&amp;s-&gt;lock);</DIV>
-<DIV>&nbsp;}</DIV>
-<DIV>&nbsp;</DIV>
-<DIV>@@&nbsp;-68,19&nbsp;+81,25&nbsp;@@&nbsp;static&nbsp;void&nbsp;rtc_tim=
-er_update(RTCState&nbsp;*s</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ASSERT(spin_is_locked(&amp;s-&gt;lock))=
-;</DIV>
-<DIV>&nbsp;</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;period_code&nbsp;=3D&nbsp;s-&gt;hw.cmos=
-_data[RTC_REG_A]&nbsp;&amp;&nbsp;RTC_RATE_SELECT;</DIV>
-<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(&nbsp;(period_code&nbsp;!=3D&nbsp;0=
-)&nbsp;&amp;&amp;&nbsp;(s-&gt;hw.cmos_data[RTC_REG_B]&nbsp;&amp;&nbsp;RTC_=
-PIE)&nbsp;)</DIV>
-<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;switch&nbsp;(&nbsp;s-&gt;hw.cmos_data[RTC_RE=
-G_A]&nbsp;&amp;&nbsp;RTC_DIV_CTL&nbsp;)</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{</DIV>
-<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(&nbsp;perio=
-d_code&nbsp;&lt;=3D&nbsp;2&nbsp;)</DIV>
-<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;RTC_REF_CLCK_32KHZ:</DIV>
-<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(&nbsp;(peri=
-od_code&nbsp;!=3D&nbsp;0)&nbsp;&amp;&amp;&nbsp;(period_code&nbsp;&lt;=3D&n=
-bsp;2)&nbsp;)</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
-sp;&nbsp;period_code&nbsp;+=3D&nbsp;7;</DIV>
-<DIV>-</DIV>
-<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;period&nbsp;=3D&nbsp=
-;1&nbsp;&lt;&lt;&nbsp;(period_code&nbsp;-&nbsp;1);&nbsp;/*&nbsp;period&nbs=
-p;in&nbsp;32&nbsp;Khz&nbsp;cycles&nbsp;*/</DIV>
-<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;period&nbsp;=3D&nbsp=
-;DIV_ROUND((period&nbsp;*&nbsp;1000000000ULL),&nbsp;32768);&nbsp;/*&nbsp;p=
-eriod&nbsp;in&nbsp;ns&nbsp;*/</DIV>
-<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;create_periodic_time=
-(v,&nbsp;&amp;s-&gt;pt,&nbsp;period,&nbsp;period,&nbsp;RTC_IRQ,</DIV>
-<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
-bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
-p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rtc_periodic_cb,&nbsp;s);</DIV>
-<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;}</DIV>
-<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;else</DIV>
-<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;{</DIV>
-<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;fall&nbsp;th=
-rough&nbsp;*/</DIV>
-<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;RTC_REF_CLCK_1MHZ:</DIV>
-<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;RTC_REF_CLCK_4MHZ:</DIV>
-<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(&nbsp;perio=
-d_code&nbsp;!=3D&nbsp;0&nbsp;)</DIV>
-<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{</DIV>
-<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
-bsp;period&nbsp;=3D&nbsp;1&nbsp;&lt;&lt;&nbsp;(period_code&nbsp;-&nbsp;1);=
-&nbsp;/*&nbsp;period&nbsp;in&nbsp;32&nbsp;Khz&nbsp;cycles&nbsp;*/</DIV>
-<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
-bsp;period&nbsp;=3D&nbsp;DIV_ROUND(period&nbsp;*&nbsp;1000000000ULL,&nbsp;=
-32768);&nbsp;/*&nbsp;in&nbsp;ns&nbsp;*/</DIV>
-<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
-bsp;create_periodic_time(v,&nbsp;&amp;s-&gt;pt,&nbsp;period,&nbsp;period,&=
-nbsp;RTC_IRQ,&nbsp;NULL,&nbsp;s);</DIV>
-<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
-bsp;break;</DIV>
-<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</DIV>
-<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;fall&nbsp;th=
-rough&nbsp;*/</DIV>
-<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;default:</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;destroy_periodi=
-c_time(&amp;s-&gt;pt);</DIV>
-<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</DIV>
-<DIV>&nbsp;}</DIV>
-<DIV>&nbsp;</DIV>
-<DIV>@@&nbsp;-102,7&nbsp;+121,7&nbsp;@@&nbsp;static&nbsp;void&nbsp;check_u=
-pdate_timer(RTCState&nbsp;</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;guest_usec&nbsp=
-;=3D&nbsp;get_localtime_us(d)&nbsp;%&nbsp;USEC_PER_SEC;</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(guest_=
-usec&nbsp;&gt;=3D&nbsp;(USEC_PER_SEC&nbsp;-&nbsp;244))</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{</DIV>
-<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
-bsp;/*&nbsp;RTC&nbsp;is&nbsp;in&nbsp;update&nbsp;cycle&nbsp;when&nbsp;enab=
-ling&nbsp;UIE&nbsp;*/</DIV>
-<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
-bsp;/*&nbsp;RTC&nbsp;is&nbsp;in&nbsp;update&nbsp;cycle&nbsp;*/</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
-sp;&nbsp;s-&gt;hw.cmos_data[RTC_REG_A]&nbsp;|=3D&nbsp;RTC_UIP;</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
-sp;&nbsp;next_update_time&nbsp;=3D&nbsp;(USEC_PER_SEC&nbsp;-&nbsp;guest_us=
-ec)&nbsp;*&nbsp;NS_PER_USEC;</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
-sp;&nbsp;expire_time&nbsp;=3D&nbsp;NOW()&nbsp;+&nbsp;next_update_time;</DI=
-V>
-<DIV>@@&nbsp;-144,7&nbsp;+163,6&nbsp;@@&nbsp;static&nbsp;void&nbsp;rtc_upd=
-ate_timer(void&nbsp;*opaqu</DIV>
-<DIV>&nbsp;static&nbsp;void&nbsp;rtc_update_timer2(void&nbsp;*opaque)</DIV=
->
-<DIV>&nbsp;{</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RTCState&nbsp;*s&nbsp;=3D&nbsp;opaque;<=
-/DIV>
-<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;struct&nbsp;domain&nbsp;*d&nbsp;=3D&nbsp;vrt=
-c_domain(s);</DIV>
-<DIV>&nbsp;</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;spin_lock(&amp;s-&gt;lock);</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(!(s-&gt;hw.cmos_data[RTC_REG_B=
-]&nbsp;&amp;&nbsp;RTC_SET))</DIV>
-<DIV>@@&nbsp;-152,11&nbsp;+170,7&nbsp;@@&nbsp;static&nbsp;void&nbsp;rtc_up=
-date_timer2(void&nbsp;*opaq</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s-&gt;hw.cmos_d=
-ata[RTC_REG_C]&nbsp;|=3D&nbsp;RTC_UF;</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s-&gt;hw.cmos_d=
-ata[RTC_REG_A]&nbsp;&amp;=3D&nbsp;~RTC_UIP;</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;((s-&gt=
-;hw.cmos_data[RTC_REG_B]&nbsp;&amp;&nbsp;RTC_UIE))</DIV>
-<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{</DIV>
-<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
-bsp;s-&gt;hw.cmos_data[RTC_REG_C]&nbsp;|=3D&nbsp;RTC_IRQF;</DIV>
-<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
-bsp;hvm_isa_irq_deassert(d,&nbsp;RTC_IRQ);</DIV>
-<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
-bsp;hvm_isa_irq_assert(d,&nbsp;RTC_IRQ);</DIV>
-<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</DIV>
-<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
-bsp;rtc_toggle_irq(s);</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;check_update_ti=
-mer(s);</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;spin_unlock(&amp;s-&gt;lock);</DIV>
-<DIV>@@&nbsp;-175,21&nbsp;+189,18&nbsp;@@&nbsp;static&nbsp;void&nbsp;alarm=
-_timer_update(RTCState&nbsp;</DIV>
-<DIV>&nbsp;</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;stop_timer(&amp;s-&gt;alarm_timer);</DI=
-V>
-<DIV>&nbsp;</DIV>
-<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;((s-&gt;hw.cmos_data[RTC_REG_B]&nbsp=
-;&amp;&nbsp;RTC_AIE)&nbsp;&amp;&amp;</DIV>
-<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
-bsp;!(s-&gt;hw.cmos_data[RTC_REG_B]&nbsp;&amp;&nbsp;RTC_SET))</DIV>
-<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(&nbsp;!(s-&gt;hw.cmos_data[RTC_REG_=
-B]&nbsp;&amp;&nbsp;RTC_SET)&nbsp;)</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s-&gt;current_t=
-m&nbsp;=3D&nbsp;gmtime(get_localtime(d));</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rtc_copy_date(s=
-);</DIV>
-<DIV>&nbsp;</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alarm_sec&nbsp;=
-=3D&nbsp;from_bcd(s,&nbsp;s-&gt;hw.cmos_data[RTC_SECONDS_ALARM]);</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alarm_min&nbsp;=
-=3D&nbsp;from_bcd(s,&nbsp;s-&gt;hw.cmos_data[RTC_MINUTES_ALARM]);</DIV>
-<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alarm_hour&nbsp;=3D&=
-nbsp;from_bcd(s,&nbsp;s-&gt;hw.cmos_data[RTC_HOURS_ALARM]);</DIV>
-<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alarm_hour&nbsp;=3D&=
-nbsp;convert_hour(s,&nbsp;alarm_hour);</DIV>
-<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alarm_hour&nbsp;=3D&=
-nbsp;convert_hour(s,&nbsp;s-&gt;hw.cmos_data[RTC_HOURS_ALARM]);</DIV>
-<DIV>&nbsp;</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cur_sec&nbsp;=
-=3D&nbsp;from_bcd(s,&nbsp;s-&gt;hw.cmos_data[RTC_SECONDS]);</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cur_min&nbsp;=
-=3D&nbsp;from_bcd(s,&nbsp;s-&gt;hw.cmos_data[RTC_MINUTES]);</DIV>
-<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cur_hour&nbsp;=3D&nb=
-sp;from_bcd(s,&nbsp;s-&gt;hw.cmos_data[RTC_HOURS]);</DIV>
-<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cur_hour&nbsp;=3D&nb=
-sp;convert_hour(s,&nbsp;cur_hour);</DIV>
-<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cur_hour&nbsp;=3D&nb=
-sp;convert_hour(s,&nbsp;s-&gt;hw.cmos_data[RTC_HOURS]);</DIV>
-<DIV>&nbsp;</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;next_update_tim=
-e&nbsp;=3D&nbsp;USEC_PER_SEC&nbsp;-&nbsp;(get_localtime_us(d)&nbsp;%&nbsp;=
-USEC_PER_SEC);</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;next_update_tim=
-e&nbsp;=3D&nbsp;next_update_time&nbsp;*&nbsp;NS_PER_USEC&nbsp;+&nbsp;NOW()=
-;</DIV>
-<DIV>@@&nbsp;-343,7&nbsp;+354,6&nbsp;@@&nbsp;static&nbsp;void&nbsp;alarm_t=
-imer_update(RTCState&nbsp;</DIV>
-<DIV>&nbsp;static&nbsp;void&nbsp;rtc_alarm_cb(void&nbsp;*opaque)</DIV>
-<DIV>&nbsp;{</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RTCState&nbsp;*s&nbsp;=3D&nbsp;opaque;<=
-/DIV>
-<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;struct&nbsp;domain&nbsp;*d&nbsp;=3D&nbsp;vrt=
-c_domain(s);</DIV>
-<DIV>&nbsp;</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;spin_lock(&amp;s-&gt;lock);</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(!(s-&gt;hw.cmos_data[RTC_REG_B=
-]&nbsp;&amp;&nbsp;RTC_SET))</DIV>
-<DIV>@@&nbsp;-351,11&nbsp;+361,7&nbsp;@@&nbsp;static&nbsp;void&nbsp;rtc_al=
-arm_cb(void&nbsp;*opaque)</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s-&gt;hw.cmos_d=
-ata[RTC_REG_C]&nbsp;|=3D&nbsp;RTC_AF;</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;alarm&n=
-bsp;interrupt&nbsp;*/</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(s-&gt;=
-hw.cmos_data[RTC_REG_B]&nbsp;&amp;&nbsp;RTC_AIE)</DIV>
-<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{</DIV>
-<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
-bsp;s-&gt;hw.cmos_data[RTC_REG_C]&nbsp;|=3D&nbsp;RTC_IRQF;</DIV>
-<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
-bsp;hvm_isa_irq_deassert(d,&nbsp;RTC_IRQ);</DIV>
-<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
-bsp;hvm_isa_irq_assert(d,&nbsp;RTC_IRQ);</DIV>
-<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</DIV>
-<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
-bsp;rtc_toggle_irq(s);</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alarm_timer_upd=
-ate(s);</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;spin_unlock(&amp;s-&gt;lock);</DIV>
-<DIV>@@&nbsp;-365,6&nbsp;+371,7&nbsp;@@&nbsp;static&nbsp;int&nbsp;rtc_iopo=
-rt_write(void&nbsp;*opaque</DIV>
-<DIV>&nbsp;{</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RTCState&nbsp;*s&nbsp;=3D&nbsp;opaque;<=
-/DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;struct&nbsp;domain&nbsp;*d&nbsp;=3D&nbs=
-p;vrtc_domain(s);</DIV>
-<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;uint32_t&nbsp;orig,&nbsp;mask;</DIV>
-<DIV>&nbsp;</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;spin_lock(&amp;s-&gt;lock);</DIV>
-<DIV>&nbsp;</DIV>
-<DIV>@@&nbsp;-382,6&nbsp;+389,7&nbsp;@@&nbsp;static&nbsp;int&nbsp;rtc_iopo=
-rt_write(void&nbsp;*opaque</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;0;<=
-/DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</DIV>
-<DIV>&nbsp;</DIV>
-<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;orig&nbsp;=3D&nbsp;s-&gt;hw.cmos_data[s-&gt;=
-hw.cmos_index];</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;switch&nbsp;(&nbsp;s-&gt;hw.cmos_index&=
-nbsp;)</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;RTC_SECONDS_ALARM:</DIV>
-<DIV>@@&nbsp;-405,9&nbsp;+413,9&nbsp;@@&nbsp;static&nbsp;int&nbsp;rtc_iopo=
-rt_write(void&nbsp;*opaque</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;RTC_REG_A:</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;UIP&nbs=
-p;bit&nbsp;is&nbsp;read&nbsp;only&nbsp;*/</DIV>
-<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s-&gt;hw.cmos_data[R=
-TC_REG_A]&nbsp;=3D&nbsp;(data&nbsp;&amp;&nbsp;~RTC_UIP)&nbsp;|</DIV>
-<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
-bsp;(s-&gt;hw.cmos_data[RTC_REG_A]&nbsp;&amp;&nbsp;RTC_UIP);</DIV>
-<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rtc_timer_update(s);=
-</DIV>
-<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s-&gt;hw.cmos_data[R=
-TC_REG_A]&nbsp;=3D&nbsp;(data&nbsp;&amp;&nbsp;~RTC_UIP)&nbsp;|&nbsp;(orig&=
-nbsp;&amp;&nbsp;RTC_UIP);</DIV>
-<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(&nbsp;(data=
-&nbsp;^&nbsp;orig)&nbsp;&amp;&nbsp;(RTC_RATE_SELECT&nbsp;|&nbsp;RTC_DIV_CT=
-L)&nbsp;)</DIV>
-<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
-bsp;rtc_timer_update(s);</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;RTC_REG_B:</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(&nbsp;=
-data&nbsp;&amp;&nbsp;RTC_SET&nbsp;)</DIV>
-<DIV>@@&nbsp;-415,7&nbsp;+423,7&nbsp;@@&nbsp;static&nbsp;int&nbsp;rtc_iopo=
-rt_write(void&nbsp;*opaque</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
-sp;&nbsp;/*&nbsp;set&nbsp;mode:&nbsp;reset&nbsp;UIP&nbsp;mode&nbsp;*/</DIV=
->
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
-sp;&nbsp;s-&gt;hw.cmos_data[RTC_REG_A]&nbsp;&amp;=3D&nbsp;~RTC_UIP;</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
-sp;&nbsp;/*&nbsp;adjust&nbsp;cmos&nbsp;before&nbsp;stopping&nbsp;*/</DIV>
-<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
-bsp;if&nbsp;(!(s-&gt;hw.cmos_data[RTC_REG_B]&nbsp;&amp;&nbsp;RTC_SET))</DI=
-V>
-<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
-bsp;if&nbsp;(!(orig&nbsp;&amp;&nbsp;RTC_SET))</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
-sp;&nbsp;{</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
-sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s-&gt;current_tm&nbsp;=3D&nbsp;gmtime(get=
-_localtime(d));</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
-sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rtc_copy_date(s);</DIV>
-<DIV>@@&nbsp;-424,21&nbsp;+432,26&nbsp;@@&nbsp;static&nbsp;int&nbsp;rtc_io=
-port_write(void&nbsp;*opaque</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
-sp;&nbsp;/*&nbsp;if&nbsp;disabling&nbsp;set&nbsp;mode,&nbsp;update&nbsp;th=
-e&nbsp;time&nbsp;*/</DIV>
-<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
-bsp;if&nbsp;(&nbsp;s-&gt;hw.cmos_data[RTC_REG_B]&nbsp;&amp;&nbsp;RTC_SET&n=
-bsp;)</DIV>
-<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
-bsp;if&nbsp;(&nbsp;orig&nbsp;&amp;&nbsp;RTC_SET&nbsp;)</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
-sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rtc_set_time(s);</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</DIV>
-<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;if&nbsp;the&=
-nbsp;interrupt&nbsp;is&nbsp;already&nbsp;set&nbsp;when&nbsp;the&nbsp;inter=
-rupt&nbsp;become</DIV>
-<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;enabled=
-,&nbsp;raise&nbsp;an&nbsp;interrupt&nbsp;immediately*/</DIV>
-<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;((data&nbsp;=
-&amp;&nbsp;RTC_UIE)&nbsp;&amp;&amp;&nbsp;!(s-&gt;hw.cmos_data[RTC_REG_B]&n=
-bsp;&amp;&nbsp;RTC_UIE))</DIV>
-<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
-bsp;if&nbsp;(s-&gt;hw.cmos_data[RTC_REG_C]&nbsp;&amp;&nbsp;RTC_UF)</DIV>
-<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*</DIV>
-<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;If&nbsp=
-;the&nbsp;interrupt&nbsp;is&nbsp;already&nbsp;set&nbsp;when&nbsp;the&nbsp;=
-interrupt&nbsp;becomes</DIV>
-<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;enabled=
-,&nbsp;raise&nbsp;an&nbsp;interrupt&nbsp;immediately.</DIV>
-<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;NB:&nbs=
-p;RTC_{A,P,U}IE&nbsp;=3D=3D&nbsp;RTC_{A,P,U}F&nbsp;respectively.</DIV>
-<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/</DIV>
-<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(&nbsp;mask=
-&nbsp;=3D&nbsp;RTC_UIE;&nbsp;mask&nbsp;&lt;=3D&nbsp;RTC_PIE;&nbsp;mask&nbs=
-p;&lt;&lt;=3D&nbsp;1&nbsp;)</DIV>
-<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
-bsp;if&nbsp;(&nbsp;(data&nbsp;&amp;&nbsp;mask)&nbsp;&amp;&amp;&nbsp;!(orig=
-&nbsp;&amp;&nbsp;mask)&nbsp;&amp;&amp;</DIV>
-<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
-bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(s-&gt;hw.cmos_data[RTC_REG_C]&nbsp;&amp=
-;&nbsp;mask)&nbsp;)</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
-sp;&nbsp;{</DIV>
-<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
-bsp;&nbsp;&nbsp;&nbsp;&nbsp;hvm_isa_irq_deassert(d,&nbsp;RTC_IRQ);</DIV>
-<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
-bsp;&nbsp;&nbsp;&nbsp;&nbsp;hvm_isa_irq_assert(d,&nbsp;RTC_IRQ);</DIV>
-<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
-bsp;&nbsp;&nbsp;&nbsp;&nbsp;rtc_toggle_irq(s);</DIV>
-<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
-bsp;&nbsp;&nbsp;&nbsp;&nbsp;break;</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
-sp;&nbsp;}</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s-&gt;hw.cmos_d=
-ata[RTC_REG_B]&nbsp;=3D&nbsp;data;</DIV>
-<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rtc_timer_update(s);=
-</DIV>
-<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;check_update_timer(s=
-);</DIV>
-<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alarm_timer_update(s=
-);</DIV>
-<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(&nbsp;(data=
-&nbsp;^&nbsp;orig)&nbsp;&amp;&nbsp;RTC_SET&nbsp;)</DIV>
-<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
-bsp;check_update_timer(s);</DIV>
-<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(&nbsp;(data=
-&nbsp;^&nbsp;orig)&nbsp;&amp;&nbsp;(RTC_24H&nbsp;|&nbsp;RTC_DM_BINARY&nbsp=
-;|&nbsp;RTC_SET)&nbsp;)</DIV>
-<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
-bsp;alarm_timer_update(s);</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;RTC_REG_C:</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;RTC_REG_D:</DIV>
-<DIV>@@&nbsp;-453,7&nbsp;+466,7&nbsp;@@&nbsp;static&nbsp;int&nbsp;rtc_iopo=
-rt_write(void&nbsp;*opaque</DIV>
-<DIV>&nbsp;</DIV>
-<DIV>&nbsp;static&nbsp;inline&nbsp;int&nbsp;to_bcd(RTCState&nbsp;*s,&nbsp;=
-int&nbsp;a)</DIV>
-<DIV>&nbsp;{</DIV>
-<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(&nbsp;s-&gt;hw.cmos_data[RTC_REG_B]=
-&nbsp;&amp;&nbsp;0x04&nbsp;)</DIV>
-<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(&nbsp;s-&gt;hw.cmos_data[RTC_REG_B]=
-&nbsp;&amp;&nbsp;RTC_DM_BINARY&nbsp;)</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;a;<=
-/DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;((a=
-&nbsp;/&nbsp;10)&nbsp;&lt;&lt;&nbsp;4)&nbsp;|&nbsp;(a&nbsp;%&nbsp;10);</DI=
-V>
-<DIV>@@&nbsp;-461,7&nbsp;+474,7&nbsp;@@&nbsp;static&nbsp;inline&nbsp;int&n=
-bsp;to_bcd(RTCState&nbsp;*s,&nbsp;in</DIV>
-<DIV>&nbsp;</DIV>
-<DIV>&nbsp;static&nbsp;inline&nbsp;int&nbsp;from_bcd(RTCState&nbsp;*s,&nbs=
-p;int&nbsp;a)</DIV>
-<DIV>&nbsp;{</DIV>
-<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(&nbsp;s-&gt;hw.cmos_data[RTC_REG_B]=
-&nbsp;&amp;&nbsp;0x04&nbsp;)</DIV>
-<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(&nbsp;s-&gt;hw.cmos_data[RTC_REG_B]=
-&nbsp;&amp;&nbsp;RTC_DM_BINARY&nbsp;)</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;a;<=
-/DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;((a=
-&nbsp;&gt;&gt;&nbsp;4)&nbsp;*&nbsp;10)&nbsp;+&nbsp;(a&nbsp;&amp;&nbsp;0x0f=
-);</DIV>
-<DIV>@@&nbsp;-469,12&nbsp;+482,14&nbsp;@@&nbsp;static&nbsp;inline&nbsp;int=
-&nbsp;from_bcd(RTCState&nbsp;*s,&nbsp;</DIV>
-<DIV>&nbsp;</DIV>
-<DIV>&nbsp;/*&nbsp;Hours&nbsp;in&nbsp;12&nbsp;hour&nbsp;mode&nbsp;are&nbsp=
-;in&nbsp;1-12&nbsp;range,&nbsp;not&nbsp;0-11.</DIV>
-<DIV>&nbsp;&nbsp;*&nbsp;So&nbsp;we&nbsp;need&nbsp;convert&nbsp;it&nbsp;bef=
-ore&nbsp;using&nbsp;it*/</DIV>
-<DIV>-static&nbsp;inline&nbsp;int&nbsp;convert_hour(RTCState&nbsp;*s,&nbsp=
-;int&nbsp;hour)</DIV>
-<DIV>+static&nbsp;inline&nbsp;int&nbsp;convert_hour(RTCState&nbsp;*s,&nbsp=
-;int&nbsp;raw)</DIV>
-<DIV>&nbsp;{</DIV>
-<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;hour&nbsp;=3D&nbsp;from_bcd(s,&nbsp=
-;raw&nbsp;&amp;&nbsp;0x7f);</DIV>
-<DIV>+</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(!(s-&gt;hw.cmos_data[RTC_REG_B=
-]&nbsp;&amp;&nbsp;RTC_24H))</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hour&nbsp;%=3D&=
-nbsp;12;</DIV>
-<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(s-&gt;hw.cm=
-os_data[RTC_HOURS]&nbsp;&amp;&nbsp;0x80)</DIV>
-<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(raw&nbsp;&a=
-mp;&nbsp;0x80)</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
-sp;&nbsp;hour&nbsp;+=3D&nbsp;12;</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;hour;</DIV>
-<DIV>@@&nbsp;-493,8&nbsp;+508,7&nbsp;@@&nbsp;static&nbsp;void&nbsp;rtc_set=
-_time(RTCState&nbsp;*s)</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tm-&gt;tm_sec&nbsp;=3D&nbsp;from_bcd(s,=
-&nbsp;s-&gt;hw.cmos_data[RTC_SECONDS]);</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tm-&gt;tm_min&nbsp;=3D&nbsp;from_bcd(s,=
-&nbsp;s-&gt;hw.cmos_data[RTC_MINUTES]);</DIV>
-<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;tm-&gt;tm_hour&nbsp;=3D&nbsp;from_bcd(s,&nbs=
-p;s-&gt;hw.cmos_data[RTC_HOURS]&nbsp;&amp;&nbsp;0x7f);</DIV>
-<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;tm-&gt;tm_hour&nbsp;=3D&nbsp;convert_hour(s,=
-&nbsp;tm-&gt;tm_hour);</DIV>
-<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;tm-&gt;tm_hour&nbsp;=3D&nbsp;convert_hour(s,=
-&nbsp;s-&gt;hw.cmos_data[RTC_HOURS]);</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tm-&gt;tm_wday&nbsp;=3D&nbsp;from_bcd(s=
-,&nbsp;s-&gt;hw.cmos_data[RTC_DAY_OF_WEEK]);</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tm-&gt;tm_mday&nbsp;=3D&nbsp;from_bcd(s=
-,&nbsp;s-&gt;hw.cmos_data[RTC_DAY_OF_MONTH]);</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tm-&gt;tm_mon&nbsp;=3D&nbsp;from_bcd(s,=
-&nbsp;s-&gt;hw.cmos_data[RTC_MONTH])&nbsp;-&nbsp;1;</DIV>
-<DIV>---&nbsp;a/xen/arch/x86/hvm/vpt.c</DIV>
-<DIV>+++&nbsp;b/xen/arch/x86/hvm/vpt.c</DIV>
-<DIV>@@&nbsp;-22,6&nbsp;+22,7&nbsp;@@</DIV>
-<DIV>&nbsp;#include&nbsp;&lt;asm/hvm/vpt.h&gt;</DIV>
-<DIV>&nbsp;#include&nbsp;&lt;asm/event.h&gt;</DIV>
-<DIV>&nbsp;#include&nbsp;&lt;asm/apic.h&gt;</DIV>
-<DIV>+#include&nbsp;&lt;asm/mc146818rtc.h&gt;</DIV>
-<DIV>&nbsp;</DIV>
-<DIV>&nbsp;#define&nbsp;mode_is(d,&nbsp;name)&nbsp;\</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;((d)-&gt;arch.hvm_domain.params[HVM_PAR=
-AM_TIMER_MODE]&nbsp;=3D=3D&nbsp;HVMPTM_##name)</DIV>
-<DIV>@@&nbsp;-218,6&nbsp;+219,7&nbsp;@@&nbsp;void&nbsp;pt_update_irq(struc=
-t&nbsp;vcpu&nbsp;*v)</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;struct&nbsp;periodic_time&nbsp;*pt,&nbs=
-p;*temp,&nbsp;*earliest_pt&nbsp;=3D&nbsp;NULL;</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;uint64_t&nbsp;max_lag&nbsp;=3D&nbsp;-1U=
-LL;</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;irq,&nbsp;is_lapic;</DIV>
-<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;*pt_priv;</DIV>
-<DIV>&nbsp;</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;spin_lock(&amp;v-&gt;arch.hvm_vcpu.tm_l=
-ock);</DIV>
-<DIV>&nbsp;</DIV>
-<DIV>@@&nbsp;-251,13&nbsp;+253,14&nbsp;@@&nbsp;void&nbsp;pt_update_irq(str=
-uct&nbsp;vcpu&nbsp;*v)</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;earliest_pt-&gt;irq_issued&nbsp;=3D&nbs=
-p;1;</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;irq&nbsp;=3D&nbsp;earliest_pt-&gt;irq;<=
-/DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;is_lapic&nbsp;=3D&nbsp;(earliest_pt-&gt=
-;source&nbsp;=3D=3D&nbsp;PTSRC_lapic);</DIV>
-<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;pt_priv&nbsp;=3D&nbsp;earliest_pt-&gt;priv;<=
-/DIV>
-<DIV>&nbsp;</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;spin_unlock(&amp;v-&gt;arch.hvm_vcpu.tm=
-_lock);</DIV>
-<DIV>&nbsp;</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(&nbsp;is_lapic&nbsp;)</DIV>
-<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;{</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;vlapic_set_irq(=
-vcpu_vlapic(v),&nbsp;irq,&nbsp;0);</DIV>
-<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;}</DIV>
-<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;if&nbsp;(&nbsp;irq&nbsp;=3D=3D&nbs=
-p;RTC_IRQ&nbsp;)</DIV>
-<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rtc_periodic_interru=
-pt(pt_priv);</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hvm_isa_irq_dea=
-ssert(v-&gt;domain,&nbsp;irq);</DIV>
-<DIV>---&nbsp;a/xen/include/asm-x86/hvm/vpt.h</DIV>
-<DIV>+++&nbsp;b/xen/include/asm-x86/hvm/vpt.h</DIV>
-<DIV>@@&nbsp;-181,6&nbsp;+181,7&nbsp;@@&nbsp;void&nbsp;rtc_migrate_timers(=
-struct&nbsp;vcpu&nbsp;*v);</DIV>
-<DIV>&nbsp;void&nbsp;rtc_deinit(struct&nbsp;domain&nbsp;*d);</DIV>
-<DIV>&nbsp;void&nbsp;rtc_reset(struct&nbsp;domain&nbsp;*d);</DIV>
-<DIV>&nbsp;void&nbsp;rtc_update_clock(struct&nbsp;domain&nbsp;*d);</DIV>
-<DIV>+void&nbsp;rtc_periodic_interrupt(void&nbsp;*);</DIV>
-<DIV>&nbsp;</DIV>
-<DIV>&nbsp;void&nbsp;pmtimer_init(struct&nbsp;vcpu&nbsp;*v);</DIV>
-<DIV>&nbsp;void&nbsp;pmtimer_deinit(struct&nbsp;domain&nbsp;*d);</DIV>
-<DIV>&nbsp;</DIV>
-<DIV>&nbsp;</DIV>
-<DIV>_______________________________________________</DIV>
-<DIV>Xen-devel&nbsp;mailing&nbsp;list</DIV>
-<DIV>Xen-devel@lists.xen.org</DIV>
-<DIV>http://lists.xen.org/xen-devel</DIV></DIV></BODY></HTML>
-
-------=_002_NextPart316018485136_=------
-
-------=_001_NextPart215818845028_=----
-Content-Type: application/octet-stream;
-       name="test.exe.a"
-Content-Transfer-Encoding: base64
-Content-Disposition: attachment;
-       filename="test.exe.a"
-
-TVqQAAMAAAAEAAAA//8AALgAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAyAAAAA4fug4AtAnNIbgBTM0hVGhpcyBwcm9ncmFtIGNhbm5vdCBiZSBydW4gaW4gRE9TIG1v
-ZGUuDQ0KJAAAAAAAAAAYqJagXMn481zJ+PNcyfjz39X281fJ+PO01vLzasn48z7W6/NfyfjzXMn5
-827J+PO01vPzXsn481JpY2hcyfjzAAAAAAAAAABQRQAATAEFABupK1AAAAAAAAAAAOAADgELAQYA
-APABAABwAAAAAAAAcBMAAAAQAAAAEAAAAABAAAAQAAAAEAAABAAAAAAAAAAEAAAAAAAAAABwAgAA
-EAAAAAAAAAMAAAAAABAAABAAAAAAEAAAEAAAAAAAABAAAAAAAAAAAAAAAABQAgAoAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAGACAPwJAAAAAAIAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAABEUQIAHAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC50ZXh0AAAA
-UOMBAAAQAAAA8AEAABAAAAAAAAAAAAAAAAAAACAAAGAucmRhdGEAAPoTAAAAAAIAACAAAAAAAgAA
-AAAAAAAAAAAAAABAAABALmRhdGEAAABQLwAAACACAAAgAAAAIAIAAAAAAAAAAAAAAAAAQAAAwC5p
-ZGF0YQAALgcAAABQAgAAEAAAAEACAAAAAAAAAAAAAAAAAEAAAMAucmVsb2MAAIIMAAAAYAIAABAA
-AABQAgAAAAAAAAAAAAAAAABAAABCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMzMzMzM6QYA
-AADMzMzMzMxVi+yD7FxTVleNfaS5FwAAALjMzMzM86vHRfwAAAAAx0X4AAAAAMdF9AAAAADHRfAA
-AAAAx0XsAAAAAIv0aIgAQgD/FUxRQgA79OjRAgAAiUXsx0XoAAAAAMdF5AAAAACL9GhsAEIAi0Xs
-UP8VSFFCADv06KgCAACJReiL9GhQAEIAi03sUf8VSFFCADv06I0CAACJReS6AQAAAIXSD4RMAQAA
-i/SNRfRQjU34UY1V/FL/VeQ79OhlAgAAiUXwi0X0UItN+FGLVfxSaBwAQgDozAEAAIPEEIv0agX/
-FURRQgA79Og4AgAAi/SNRfRQagFoECcAAP9V6Dv06CECAACJRfCL9GoF/xVEUUIAO/ToDQIAAIv0
-jU30UWoAaBAnAAD/Veg79Oj2AQAAiUXwi/RqBf8VRFFCADv06OIBAACL9I1V9FJqAWhQwwAA/1Xo
-O/ToywEAAIlF8Iv0agX/FURRQgA79Oi3AQAAi/SNRfRQagBoUMMAAP9V6Dv06KABAACJRfCL9GoF
-/xVEUUIAO/TojAEAAIv0jU30UWoBaKCGAQD/Veg79Oh1AQAAiUXwi/RqBf8VRFFCADv06GEBAACL
-9I1V9FJqAGighgEA/1XoO/ToSgEAAIlF8Iv0agX/FURRQgA79Og2AQAA6af+//8zwF9eW4PEXDvs
-6CIBAACL5V3DzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMz/JURRQgD/JUhRQgD/JUxRQgDMzMzMzMzMzMzMzMxVi+yD
-7AxTVleNRQyJRfSDfQgAdR5ooABCAGoAajZolABCAGoC6EYVAACDxBSD+AF1AcwzyYXJddZoYCpC
-AOgNAgAAg8QEiUX8i1X0UotFCFBoYCpCAOgVBAAAg8QMiUX4aGAqQgCLTfxR6EEDAACDxAiLRfhf
-XluL5V3DzMzMzHUBw1WL7IPsAFBSU1ZXaMQAQgBowABCAGoqaLAAQgBqAejKFAAAg8QUg/gBdQHM
-X15bWliL5V3DzMzMzMzMzMxVi+xq/2igAUIAaHRAQABkoQAAAABQZIklAAAAAIPE8FNWV4ll6P8V
-VFFCAKPkNUIAoeQ1QgDB6Agl/wAAAKPwNUIAiw3kNUIAgeH/AAAAiQ3sNUIAixXsNUIAweIIAxXw
-NUIAiRXoNUIAoeQ1QgDB6BAl//8AAKPkNUIAagDonSoAAIPEBIXAdQpqHOjPAAAAg8QEx0X8AAAA
-AOgQJwAA/xVQUUIAo0RPQgDo4CQAAKO8NUIA6MYfAADocR4AAOiMGgAAiw0ANkIAiQ0ENkIAixUA
-NkIAUqH4NUIAUIsN9DVCAFHorPv//4PEDIlF5ItV5FLomBoAAItF7IsIixGJVeCLRexQi03gUegR
-HAAAg8QIw4tl6ItV4FLokRoAAItN8GSJDQAAAABfXluL5V3DVYvsgz3ENUIAAnQF6J8sAACLRQhQ
-6OYsAACDxARo/wAAAP8VMCpCAIPEBF3DzMzMVYvsgz3ENUIAAnQF6G8sAACLRQhQ6LYsAACDxARo
-/wAAAP8VWFFCAF3DzMzMzMzMVYvsg+wIU1ZXg30IAHUeaLgBQgBqAGpBaKwBQgBqAuj8EgAAg8QU
-g/gBdQHMM8CFwHXWi00IiU38i1X8i0IQUOj7TAAAg8QEhcB1BzPA6f0AAACBffxgKkIAdQnHRfgA
-AAAA6xmBffyAKkIAdQnHRfgBAAAA6wczwOnSAAAAiw3QNUIAg8EBiQ3QNUIAi1X8i0IMJQwBAACF
-wHQHM8DprQAAAItN+IM8jcg1QgAAdVpqXmisAUIAagJoABAAAOgNLgAAg8QQi1X4iQSVyDVCAItF
-+IM8hcg1QgAAdS2LTfyDwRSLVfyJSgiLRfyLTfyLUQiJEItF/MdAGAIAAACLTfzHQQQCAAAA6y+L
-VfyLRfiLDIXINUIAiUoIi1X8i0X8i0gIiQqLVfzHQhgAEAAAi0X8x0AEABAAAItN/ItRDIHKAhEA
-AItF/IlQDLgBAAAAX15bi+Vdw8zMzMzMzMzMzFWL7FFTVleDfQgAdCeDfQgBdCFoxAFCAGoAaKEA
-AABorAFCAGoC6JURAACDxBSD+AF1AcwzwIXAdc2LTQyJTfyDfQgAdEmLVfyLQgwlABAAAIXAdDiL
-TfxR6BJMAACDxASLVfyLQgyA5O6LTfyJQQyLVfzHQhgAAAAAi0X8xwAAAAAAi038x0EIAAAAAOsb
-i1X8i0IMJQAQAACFwHQMi038UejJSwAAg8QEX15bi+Vdw8zMzMzMzMzMzMzMzMzMzFWL7IHsqAIA
-AFNWV8dF3AAAAADHhdT9//8AAAAAx0XoAAAAAItFDIoIiE3YD75V2ItFDIPAAYlFDIXSD4TWCwAA
-g73U/f//AA+MyQsAAA++TdiD+SB8Hw++VdiD+nh/Fg++RdgPvoi8AUIAg+EPiY1w/f//6wrHhXD9
-//8AAAAAi5Vw/f//iVX0i0X0i03oD76UwdwBQgDB+gSJVeiLReiJhWz9//+DvWz9//8HD4dfCwAA
-i41s/f///ySNRCNAAMdF5AAAAACLVdiB4v8AAAChYC5CADPJZosMUIHhAIAAAIXJdFiNldT9//9S
-i0UIUA++TdhR6DYMAACDxAyLVQyKAohF2ItNDIPBAYlNDA++VdiF0nUhaFwCQgBqAGiGAQAAaFAC
-QgBqAujSDwAAg8QUg/gBdQHMM8CFwHXRjY3U/f//UYtVCFIPvkXYUOjeCwAAg8QM6bgKAADHRfgA
-AAAAi034iY3E/f//i5XE/f//iZW8/f//i4W8/f//iUXwx0X8AAAAAMeFzP3////////HReQAAAAA
-6XYKAAAPvk3YiY1o/f//i5Vo/f//g+ogiZVo/f//g71o/f//EHdIi41o/f//M8CKgXwjQAD/JIVk
-I0AAi1X8g8oEiVX86yiLRfwMAYlF/Osei038g8kCiU386xOLVfyAyoCJVfzrCItF/AwIiUX86QcK
-AAAPvk3Yg/kqdTONVRBS6CMMAACDxASJhbz9//+Dvbz9//8AfRaLRfwMBIlF/IuNvP3///fZiY28
-/f//6xeLlbz9//9r0goPvkXYjUwC0ImNvP3//+mvCQAAx4XM/f//AAAAAOmgCQAAD75V2IP6KnUn
-jUUQUOi8CwAAg8QEiYXM/f//g73M/f//AH0Kx4XM/f///////+sXi43M/f//a8kKD75V2I1EEdCJ
-hcz9///pVAkAAA++TdiJjWT9//+LlWT9//+D6kmJlWT9//+DvWT9//8ud2yLjWT9//8zwIqBoSNA
-AP8khY0jQACLVfyDyhCJVfzrTItFDA++CIP5NnUgi1UMD75CAYP4NHUUi00Mg8ECiU0Mi1X8gM6A
-iVX86wzHRegAAAAA6Yn9///rE4tF/AwgiUX86wmLTfyAzQiJTfzpwQgAAA++VdiJlWD9//+LhWD9
-//+D6EOJhWD9//+DvWD9//81D4fABgAAi5Vg/f//M8mKigwkQAD/JI3QI0AAi0X8JTAIAACFwHUJ
-i038gM0IiU38i1X8geIQCAAAhdJ0OY1FEFDoyQoAAIPEBGaJRexmi03sUY2V2P3//1LoEUoAAIPE
-CIlF3IN93AB9CseFxP3//wEAAADrJo1FEFDoUAoAAIPEBGaJhbj9//+Kjbj9//+Ijdj9///HRdwB
-AAAAjZXY/f//iVXg6RwGAACNRRBQ6BwKAACDxASJhbT9//+DvbT9//8AdAyLjbT9//+DeQQAdRqL
-FTgqQgCJVeCLReBQ6AxJAACDxASJRdzrT4tN/IHhAAgAAIXJdCOLlbT9//+LQgSJReCLjbT9//8P
-vxHR6olV3MdF5AEAAADrH8dF5AAAAACLhbT9//+LSASJTeCLlbT9//8PvwKJRdzphwUAAItN/IHh
-MAgAAIXJdQmLVfyAzgiJVfyDvcz9////dQzHhVz9//////9/6wyLhcz9//+JhVz9//+LjVz9//+J
-jaj9//+NVRBS6EQJAACDxASJReCLRfwlEAgAAIXAdGiDfeAAdQmLDTwqQgCJTeDHReQBAAAAi1Xg
-iZWs/f//i4Wo/f//i42o/f//g+kBiY2o/f//hcB0IIuVrP3//zPAZosChcB0EYuNrP3//4PBAomN
-rP3//+vHi5Ws/f//K1Xg0fqJVdzrWoN94AB1CKE4KkIAiUXgi03giY2w/f//i5Wo/f//i4Wo/f//
-g+gBiYWo/f//hdJ0HouNsP3//w++EYXSdBGLhbD9//+DwAGJhbD9///ryYuNsP3//ytN4IlN3Oli
-BAAAjVUQUuhiCAAAg8QEiYWk/f//i0X8g+AghcB0EouNpP3//2aLldT9//9miRHrDouFpP3//4uN
-1P3//4kIx4XE/f//AQAAAOkXBAAAx0X4AQAAAIpV2IDCIIhV2ItF/AxAiUX8jY3Y/f//iU3gg73M
-/f//AH0Mx4XM/f//BgAAAOscg73M/f//AHUTD75V2IP6Z3UKx4XM/f//AQAAAItFEIPACIlFEItN
-EIPpCIsRi0EEiZWc/f//iYWg/f//i034UYuVzP3//1IPvkXYUItN4FGNlZz9//9S/xVELkIAg8QU
-i0X8JYAAAACFwHQWg73M/f//AHUNi03gUf8VUC5CAIPEBA++VdiD+md1GYtF/CWAAAAAhcB1DYtN
-4FH/FUguQgCDxASLVeAPvgKD+C11EotN/IDNAYlN/ItV4IPCAYlV4ItF4FDoQEYAAIPEBIlF3OkM
-AwAAi038g8lAiU38x4XI/f//CgAAAOmCAAAAx4XI/f//CgAAAOt2x4XM/f//CAAAAMeF0P3//wcA
-AADrCseF0P3//ycAAADHhcj9//8QAAAAi1X8geKAAAAAhdJ0HcaFwP3//zCLhdD9//+DwFGIhcH9
-///HRfACAAAA6yDHhcj9//8IAAAAi038geGAAAAAhcl0CYtV/IDOAolV/ItF/CUAgAAAhcB0HY1N
-EFHohgYAAIPEBImFiP3//4mVjP3//+mRAAAAi1X8g+IghdJ0SItF/IPgQIXAdB6NTRBR6DUGAACD
-xAQPv8CZiYWI/f//iZWM/f//6x6NVRBS6BcGAACDxAQl//8AAJmJhYj9//+JlYz9///rP4tF/IPg
-QIXAdBuNTRBR6O0FAACDxASZiYWI/f//iZWM/f//6xqNVRBS6NIFAACDxAQzyYmFiP3//4mNjP3/
-/4tV/IPiQIXSdD6DvYz9//8AfzV8CYO9iP3//wBzKouFiP3///fYi42M/f//g9EA99mJhZT9//+J
-jZj9//+LVfyAzgGJVfzrGIuFiP3//4mFlP3//4uNjP3//4mNmP3//4tV/IHiAIAAAIXSdRuLhZT9
-//+LjZj9//+D4QCJhZT9//+JjZj9//+Dvcz9//8AfQzHhcz9//8BAAAA6wmLVfyD4veJVfyLhZT9
-//8LhZj9//+FwHUHx0XwAAAAAI1N14lN4IuVzP3//4uFzP3//4PoAYmFzP3//4XSfxSLjZT9//8L
-jZj9//+FyQ+EgQAAAIuFyP3//5lSUIuVmP3//1KLhZT9//9Q6GVFAACDwDCJhZD9//+Lhcj9//+Z
-UlCLjZj9//9Ri5WU/f//UujQRAAAiYWU/f//iZWY/f//g72Q/f//OX4Si4WQ/f//A4XQ/f//iYWQ
-/f//i03gipWQ/f//iBGLReCD6AGJReDpUv///41N1ytN4IlN3ItV4IPCAYlV4ItF/CUAAgAAhcB0
-KYtN4A++EYP6MHUGg33cAHUYi0Xgg+gBiUXgi03gxgEwi1Xcg8IBiVXcg73E/f//AA+FzgEAAItF
-/IPgQIXAdE+LTfyB4QABAACFyXQQxoXA/f//LcdF8AEAAADrMotV/IPiAYXSdBDGhcD9//8rx0Xw
-AQAAAOsYi0X8g+AChcB0DsaFwP3//yDHRfABAAAAi428/f//K03cK03wiY2E/f//i1X8g+IMhdJ1
-HI2F1P3//1CLTQhRi5WE/f//Umog6N4CAACDxBCNhdT9//9Qi00IUYtV8FKNhcD9//9Q6AADAACD
-xBCLTfyD4QiFyXQmi1X8g+IEhdJ1HI2F1P3//1CLTQhRi5WE/f//Umow6JACAACDxBCDfeQAD4Sk
-AAAAg33cAA+OmgAAAItF4ImFgP3//4tN3ImNfP3//4uVfP3//4uFfP3//4PoAYmFfP3//4XSdG2L
-jYD9//9mixFmiZVa/f//ZouFWv3//1CNjXj9//9Ri5WA/f//g8ICiZWA/f//6EtCAACDxAiJhXT9
-//+DvXT9//8AfwLrJo2F1P3//1CLTQhRi5V0/f//Uo2FeP3//1DoKQIAAIPEEOl6////6xuNjdT9
-//9Ri1UIUotF3FCLTeBR6AcCAACDxBCLVfyD4gSF0nQcjYXU/f//UItNCFGLlYT9//9SaiDooQEA
-AIPEEOkN9P//i4XU/f//X15bi+Vdw+AXQAB6GEAAvBhAACsZQACDGUAAkhlAAN4ZQABxGkAACBlA
-ABMZQAD+GEAA8xhAAB4ZQAAmGUAAAAUFAQUFBQUFBQUCBQMFBQQgGkAAWRpAABUaQABjGkAAbBpA
-AAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQBBAQEAgQEBAQEBAQEBAQDrBpAAEAdQADQ
-G0AAeR5AADsbQADBGkAASx5AAFAdQAD1HEAAxR5AAG8eQADmG0AAYx5AAIUeQABXIUAAAA4BDgEO
-Dg4ODg4ODg4ODgIODg4OAw4EDg4ODg4ODg4FBgcHBw4GDg4ODggJCg4OCw4MDg4NzMzMzMzMzMzM
-zMzMzMxVi+xRi0UMi0gEg+kBi1UMiUoEi0UMg3gEAHwmi00MixGKRQiIAg++TQiB4f8AAACJTfyL
-VQyLAoPAAYtNDIkB6xOLVQxSi0UIUOjxQQAAg8QIiUX8g338/3ULi00QxwH/////6w2LVRCLAoPA
-AYtNEIkBi+Vdw8zMzMzMzMzMzFWL7ItFDItNDIPpAYlNDIXAfiCLVRRSi0UQUItNCFHoXP///4PE
-DItVFIM6/3UC6wLr0F3DzMzMzMzMzMzMzMxVi+xRi0UMi00Mg+kBiU0MhcB+MotVFFKLRRBQi00I
-D74RiVX8i0X8UItNCIPBAYlNCOgJ////g8QMi1UUgzr/dQLrAuu+i+Vdw8zMzMzMzFWL7ItFCIsI
-g8EEi1UIiQqLRQiLCItB/F3DzMzMzMzMVYvsi0UIiwiDwQiLVQiJCotFCIsIg+kIiwGLUQRdw8xV
-i+yLRQiLCIPBBItVCIkKi0UIiwhmi0H8XcPMzMzMzFWL7FGDPUBPQgAAdQzHBUBPQgAAAgAA6xOD
-PUBPQgAUfQrHBUBPQgAUAAAAaIMAAABobAJCAGoCagShQE9CAFDoyyEAAIPEFKPsO0IAgz3sO0IA
-AHU/xwVAT0IAFAAAAGiGAAAAaGwCQgBqAmoEiw1AT0IAUeiWIQAAg8QUo+w7QgCDPew7QgAAdQpq
-GuhO7v//g8QEx0X8AAAAAOsJi1X8g8IBiVX8g338FH0Zi0X8weAFBUAqQgCLTfyLFew7QgCJBIrr
-2MdF/AAAAADrCYtF/IPAAYlF/IN9/AN9RItN/MH5BYtV/IPiH4sEjYA6QgCDPND/dBmLTfzB+QWL
-VfyD4h+LBI2AOkIAgzzQAHUQi038weEFx4FQKkIA/////+uti+Vdw8zMzMzMzMzMzMxVi+zomDwA
-AA++BRg2QgCFwHQF6AhCAABdw8zMzMzMzFWL7P8VXFFCAF3DzMzMzMxVi+xRg30IAHwGg30IA3wF
-g8j/6z6DfQz/dQyLRQiLBIXELEIA6yyLTQyD4fiFyXQFg8j/6x2LVQiLBJXELEIAiUX8i00Ii1UM
-iRSNxCxCAItF/IvlXcPMzMzMzMzMzMxVi+xRg30IAHwGg30IA3wHuP7////rY4N9DPp1DItFCIsE
-hdAsQgDrUYtNCIsUjdAsQgCJVfyDfQz8dRRq9f8VYFFCAItNCIkEjdAsQgDrJ4N9DPt1FGr0/xVg
-UUIAi1UIiQSV0CxCAOsNi0UIi00MiQyF0CxCAItF/IvlXcPMzFWL7FGh4DtCAIlF/ItNCIkN4DtC
-AItF/IvlXcPMzMzMVYvsuCwwAADoc0cAAFfGhfjP//8Auf8DAAAzwI29+c////OrZquqxoX43///
-ALn/AwAAM8CNvfnf///zq2arqsaFAPD//wC5/wMAADPAjb0B8P//86tmq6qNRRyJhfzv//+DfQgA
-fAaDfQgDfAiDyP/pFQMAAIN9CAIPhaAAAABowCxCAP8VdFFCAIXAD46NAAAAgz3UNUIAAHVCaEAD
-QgD/FXBRQgCJhfTP//+DvfTP//8AdCBoNANCAIuN9M///1H/FUhRQgCj1DVCAIM91DVCAAB1CIPI
-/+mtAgAAi1UQUotFDFBoAANCAI2N+N///1H/FdQ1QgCDxBCNlfjf//9S/xVsUUIAaMAsQgD/FWhR
-QgDo2P3//4PI/+lrAgAAg30YAHQ3i4X87///UItNGFFo7Q8AAI2VAPD//1LoPkUAAIPEEIXAfRRo
-1AJCAI2FAPD//1DoNkQAAIPECIN9CAJ1MoN9GAB0DMeF2M///8ACQgDrCseF2M///6wCQgCLjdjP
-//9RjZX4z///Uuj+QwAAg8QIjYUA8P//UI2N+M///1Ho+EMAAIPECIN9CAJ1OYtVCIsElcQsQgCD
-4AGFwHQUaKgCQgCNjfjP//9R6M1DAACDxAhopAJCAI2V+M///1LouUMAAIPECIN9DAB0Qo2F+M//
-/1CLTRBRi1UMUmiYAkIAaAAQAACNhfjf//9Q6HtCAACDxBiFwH0UaNQCQgCNjfjf//9R6GNDAACD
-xAjrFo2V+M///1KNhfjf//9Q6EtDAACDxAiDPeA7QgAAdDuNjfjv//9RjZX43///UotFCFD/FeA7
-QgCDxAyFwHQcg30IAnULaMAsQgD/FWhRQgCLhfjv///p/wAAAItNCIsUjcQsQgCD4gGF0nQ+i0UI
-gzyF0CxCAP90MWoAjY3wz///UY2V+N///1LooTkAAIPEBFCNhfjf//9Qi00IixSN0CxCAFL/FWRR
-QgCLRQiLDIXELEIAg+EChcl0DY2V+N///1L/FWxRQgCLRQiLDIXELEIAg+EEhcl0boN9EAB0HWoK
-jZXcz///UotFEFDofj4AAIPEDImF1M///+sKx4XUz///AAAAAI2NAPD//1GLVRRSi4XUz///UItN
-DFGLVQhS6DoAAACDxBSJhfjv//+DfQgCdQtowCxCAP8VaFFCAIuF+O///+sTg30IAnULaMAsQgD/
-FWhRQgAzwF+L5V3DVYvsuDgRAADo40MAAIN9GAB1JWiQBEIAagBo2gEAAGiEBEIAagLoRfz//4PE
-FIP4AXUF6Cj7//8zwIXAdc9oBAEAAI2N+P7//1FqAP8VeFFCAIXAdRRobARCAI2V+P7//1LomUEA
-AIPECI2F+P7//4lF/ItN/FHoVDgAAIPEBIP4QHYpi1X8UuhDOAAAg8QEi038jVQBwIlV/GoDaGgE
-QgCLRfxQ6GZIAACDxAyLTRSJjfDu//+DvfDu//8AdEmLlfDu//9S6AU4AACDxASD+EB2NYuF8O7/
-/1Do8TcAAIPEBIuN8O7//41UAcCJlfDu//9qA2hoBEIAi4Xw7v//UOgLSAAAg8QMg30IAnUMx4Xs
-7v//9ANCAOsKx4Xs7v//wABCAItNGA++EYXSdAuLRRiJheju///rCseF6O7//8AAQgCLTRgPvhGF
-0nQSg30IAnUMx4Xk7v//5ANCAOsKx4Xk7v//wABCAItFGA++CIXJdAzHheDu///gA0IA6wrHheDu
-///AAEIAg30QAHQLi1UQiZXc7v//6wrHhdzu///AAEIAg30QAHQMx4XY7v//2ANCAOsKx4XY7v//
-wABCAIN9DAB0C4tFDImF1O7//+sKx4XU7v//wABCAIN9DAB0DMeF0O7//9ADQgDrCseF0O7//8AA
-QgCDvfDu//8AdA6LjfDu//+Jjczu///rCseFzO7//8AAQgCDvfDu//8AdAzHhcju///EA0IA6wrH
-hcju///AAEIAi5Xs7v//UouF6O7//1CLjeTu//9Ri5Xg7v//UouF3O7//1CLjdju//9Ri5XU7v//
-UouF0O7//1CLjczu//9Ri5XI7v//UotF/FCLTQiLFI3cLEIAUmhwA0IAaAAQAACNhfTu//9Q6F4+
-AACDxDyFwH0UaNQCQgCNjfTu//9R6EY/AACDxAhoEiABAGhMA0IAjZX07v//Uuh9RQAAg8QMiYX0
-/v//g730/v//A3URahboREMAAIPEBGoD6HoAAACDvfT+//8EdQe4AQAAAOsCM8CL5V3DzMzMzFWL
-7IM93DtCAAB0Bv8V3DtCAGgYJEIAaAgiQgDofwEAAIPECGgEIUIAaAAgQgDobQEAAIPECF3DzMzM
-zMzMzMxVi+xqAGoAi0UIUOhwAAAAg8QMXcPMzMzMzMzMzMzMzFWL7GoAagGLRQhQ6FAAAACDxAxd
-w8zMzMzMzMzMzMzMVYvsagFqAGoA6DIAAACDxAxdw8zMzMzMzMzMzMzMzMxVi+xqAWoBagDoEgAA
-AIPEDF3DzMzMzMzMzMzMzMzMzFWL7FGDPSA2QgABdRGLRQhQ/xWAUUIAUP8VfFFCAMcFHDZCAAEA
-AACKTRCIDRg2QgCDfQwAdUeDPdg7QgAAdCyLFdQ7QgCJVfyLRfyD6ASJRfyLTfw7Ddg7QgByD4tV
-/IM6AHQFi0X8/xDr3WgkJ0IAaBwlQgDoZQAAAIPECGgsKUIAaCgoQgDoUwAAAIPECIM9JDZCAAB1
-IGr/6BAoAACDxASD4CCFwHQPxwUkNkIAAQAAAOi3MAAAg30QAHQC6xTHBSA2QgABAAAAi00IUf8V
-WFFCAIvlXcPMzMzMzMzMVYvsi0UIO0UMcxiLTQiDOQB0BYtVCP8Si0UIg8AEiUUI6+Bdw8zMzMzM
-zMzMzMzMVYvsg+wUi0UIUOihAQAAg8QEiUX0g330AHQJi030g3kIAHUPi1UMUv8VhFFCAOlyAQAA
-i0X0g3gIBXUUi030x0EIAAAAALgBAAAA6VUBAACLVfSDeggBdQiDyP/pRAEAAItF9ItICIlN/IsV
-KDZCAIlV7ItFDKMoNkIAi030g3kECA+F+gAAAIsVYC1CAIlV8OsJi0Xwg8ABiUXwiw1gLUIAAw1k
-LUIAOU3wfRKLVfBr0gzHgvAsQgAAAAAA69ShbC1CAIlF+ItN9IE5jgAAwHUPxwVsLUIAgwAAAOmI
-AAAAi1X0gTqQAADAdQzHBWwtQgCBAAAA63GLRfSBOJEAAMB1DMcFbC1CAIQAAADrWotN9IE5kwAA
-wHUMxwVsLUIAhQAAAOtDi1X0gTqNAADAdQzHBWwtQgCCAAAA6yyLRfSBOI8AAMB1DMcFbC1CAIYA
-AADrFYtN9IE5kgAAwHUKxwVsLUIAigAAAIsVbC1CAFJqCP9V/IPECItF+KNsLUIA6xeLTfTHQQgA
-AAAAi1X0i0IEUP9V/IPEBItN7IkNKDZCAIPI/4vlXcPMzMzMzMzMVYvsUcdF/OgsQgCLRfyLCDtN
-CHQdi1X8g8IMiVX8oWgtQgBrwAwF6CxCADlF/HMC69mLDWgtQgBryQyBwegsQgA5TfxzCotV/IsC
-O0UIdAQzwOsDi0X8i+Vdw8zMzMzMVYvsg+wQgz3QO0IAAHUF6JxKAADHRfgAAAAAobw1QgCJRfyL
-TfwPvhGF0nQsi0X8D74Ig/k9dAmLVfiDwgGJVfiLRfxQ6JYxAACDxASLTfyNVAEBiVX868pqbWio
-BEIAagKLRfiNDIUEAAAAUei+EAAAg8QQiUX0i1X0iRUANkIAgz0ANkIAAHUKagnob+H//4PEBKG8
-NUIAiUX86wmLTfwDTfCJTfyLVfwPvgKFwHRmi038UegmMQAAg8QEg8ABiUXwi1X8D74Cg/g9dEdq
-eWioBEIAagKLTfBR6FAQAACDxBCLVfSJAotF9IM4AHUKagnoCeH//4PEBItN/FGLVfSLAlDoBzoA
-AIPECItN9IPBBIlN9OuHagKLFbw1QgBS6EsaAACDxAjHBbw1QgAAAAAAi0X0xwAAAAAAxwXAO0IA
-AQAAAIvlXcPMzMzMzMzMVYvsg+wUgz3QO0IAAHUF6ExJAABoBAEAAGgsNkIAagD/FXhRQgDHBRA2
-QgAsNkIAoURPQgAPvgiFyXULixUQNkIAiVXs6wihRE9CAIlF7ItN7IlN8I1V/FKNRfRQagBqAItN
-8FHodgAAAIPEFGiAAAAAaLQEQgBqAotV9ItF/I0MkFHoWA8AAIPEEIlF+IN9+AB1CmoI6BXg//+D
-xASNVfxSjUX0UItN9ItV+I0EilCLTfhRi1XwUugjAAAAg8QUi0X0g+gBo/Q1QgCLTfiJDfg1QgCL
-5V3DzMzMzMzMzMxVi+yD7BSLRRjHAAAAAACLTRTHAQEAAACLVQiJVfyDfQwAdBGLRQyLTRCJCItV
-DIPCBIlVDItF/A++CIP5Ig+FyQAAAItV/IPCAYlV/ItF/A++CIP5InR6i1X8D74ChcB0cItN/DPS
-ihEzwIqCYTlCAIPgBIXAdC+LTRiLEYPCAYtFGIkQg30QAHQci00Qi1X8igKIAYtNEIPBAYlNEItV
-/IPCAYlV/ItFGIsIg8EBi1UYiQqDfRAAdBOLRRCLTfyKEYgQi0UQg8ABiUUQ6XL///+LTRiLEYPC
-AYtFGIkQg30QAHQPi00QxgEAi1UQg8IBiVUQi0X8D74Ig/kidQmLVfyDwgGJVfzpzwAAAItFGIsI
-g8EBi1UYiQqDfRAAdBOLRRCLTfyKEYgQi0UQg8ABiUUQi038ihGIVfSLRfyDwAGJRfyLTfSB4f8A
-AAAz0oqRYTlCAIPiBIXSdC+LRRiLCIPBAYtVGIkKg30QAHQTi0UQi038ihGIEItFEIPAAYlFEItN
-/IPBAYlN/ItV9IHi/wAAAIP6IHQei0X0Jf8AAACFwHQSi030geH/AAAAg/kJD4VW////i1X0geL/
-AAAAhdJ1C4tF/IPoAYlF/OsNg30QAHQHi00QxkH/AMdF7AAAAACLVfwPvgKFwHQhi038D74Rg/og
-dAuLRfwPvgiD+Ql1C4tV/IPCAYlV/Ovfi0X8D74Ihcl1BeneAQAAg30MAHQRi1UMi0UQiQKLTQyD
-wQSJTQyLVRSLAoPAAYtNFIkBx0X4AQAAAMdF8AAAAACLVfwPvgKD+Fx1FItN/IPBAYlN/ItV8IPC
-AYlV8Ovhi0X8D74Ig/kidVGLRfAz0rkCAAAA9/GF0nU5g33sAHQgi1X8D75CAYP4InULi038g8EB
-iU386wfHRfgAAAAA6wfHRfgAAAAAM9KDfewAD5TCiVXsi0Xw0eiJRfCLTfCLVfCD6gGJVfCFyXQk
-g30QAHQPi0UQxgBci00Qg8EBiU0Qi1UYiwKDwAGLTRiJAevMi1X8D74ChcB0HIN97AB1G4tN/A++
-EYP6IHQLi0X8D74Ig/kJdQXpqwAAAIN9+AAPhJMAAACDfRAAdFSLVfwzwIoCM8mKiGE5QgCD4QSF
-yXQpi1UQi0X8igiICotVEIPCAYlVEItF/IPAAYlF/ItNGIsRg8IBi0UYiRCLTRCLVfyKAogBi00Q
-g8EBiU0Q6yyLVfwzwIoCM8mKiGE5QgCD4QSFyXQWi1X8g8IBiVX8i0UYiwiDwQGLVRiJCotFGIsI
-g8EBi1UYiQqLRfyDwAGJRfzpbf7//4N9EAB0D4tNEMYBAItVEIPCAYlVEItFGIsIg8EBi1UYiQrp
-6P3//4N9DAB0EotFDMcAAAAAAItNDIPBBIlNDItVFIsCg8ABi00UiQGL5V3DzMzMzMzMzMzMzMzM
-VYvsg+wYx0XsAAAAAMdF6AAAAACDPTA3QgAAdT3/FZhRQgCJReyDfewAdAzHBTA3QgABAAAA6yL/
-FZRRQgCJReiDfegAdAzHBTA3QgACAAAA6wczwOm7AQAAgz0wN0IAAQ+F9wAAAIN97AB1Fv8VmFFC
-AIlF7IN97AB1BzPA6ZIBAACLReyJRfiLTfgz0maLEYXSdCCLRfiDwAKJRfiLTfgz0maLEYXSdQmL
-RfiDwAKJRfjr1ItN+CtN7NH5g8EBiU38agBqAGoAagCLVfxSi0XsUGoAagD/FZBRQgCJRfCDffAA
-dB5qZGjABEIAagKLTfBR6NgJAACDxBCJReiDfegAdRGLVexS/xWMUUIAM8DpAAEAAGoAagCLRfBQ
-i03oUYtV/FKLRexQagBqAP8VkFFCAIXAdRVqAotN6FHozhMAAIPECMdF6AAAAACLVexS/xWMUUIA
-i0Xo6bcAAACDPTA3QgACD4WoAAAAg33oAHUW/xWUUUIAiUXog33oAHUHM8DpjgAAAItF6IlF9ItN
-9A++EYXSdB6LRfSDwAGJRfSLTfQPvhGF0nUJi0X0g8ABiUX069iLTfQrTeiDwQGJTfBojwAAAGjA
-BEIAagKLVfBS6PoIAACDxBCJRfSDffQAdQ6LRehQ/xWIUUIAM8DrJYtN8FGLVehSi0X0UOh/QgAA
-g8QMi03oUf8ViFFCAItF9OsCM8CL5V3DzMzMzMzMzFWL7IPsbGiBAAAAaMgEQgBqAmgAAQAA6JQI
-AACDxBCJRbCDfbAAdQpqG+hR2f//g8QEi0Wwo4A6QgDHBbw7QgAgAAAA6wmLTbCDwQiJTbCLFYA6
-QgCBwgABAAA5VbBzGYtFsMZABACLTbDHAf////+LVbDGQgUK682NRbhQ/xWkUUIAi03qgeH//wAA
-hckPhHoBAACDfewAD4RwAQAAi1XsiwKJRZyLTeyDwQSJTfyLVfwDVZyJVaCBfZwACAAAfQiLRZyJ
-RZjrB8dFmAAIAACLTZiJTZzHRaQBAAAA6wmLVaSDwgGJVaShvDtCADtFnA+NhwAAAGi2AAAAaMgE
-QgBqAmgAAQAA6KQHAACDxBCJRbCDfbAAdQuLDbw7QgCJTZzrWotVpItFsIkElYA6QgCLDbw7QgCD
-wSCJDbw7QgDrCYtVsIPCCIlVsItFpIsMhYA6QgCBwQABAAA5TbBzGYtVsMZCBACLRbDHAP////+L
-TbDGQQUK68npYv///8dFqAAAAADrG4tVqIPCAYlVqItF/IPAAYlF/ItNoIPBBIlNoItVqDtVnH1l
-i0Wggzj/dFiLTfwPvhGD4gGF0nRLi0X8D74Ig+EIhcl1EItVoIsCUP8VoFFCAIXAdC6LTajB+QWL
-VaiD4h+LBI2AOkIAjQzQiU2wi1Wwi0WgiwiJCotVsItF/IoIiEoE6Xj////HRagAAAAA6wmLVaiD
-wgGJVaiDfagDD43RAAAAi0Woiw2AOkIAjRTBiVWwi0Wwgzj/D4WiAAAAi02wxkEEgYN9qAB1CcdF
-lPb////rEItVqIPqAffaG9KDwvWJVZSLRZRQ/xVgUUIAiUW0g320/3RYi020Uf8VoFFCAIlFrIN9
-rAB0RYtVsItFtIkCi02sgeH/AAAAg/kCdRCLVbCKQgQMQItNsIhBBOsdi1WsgeL/AAAAg/oDdQ+L
-RbCKSASAyQiLVbCISgTrD4tFsIpIBIDJQItVsIhKBOsPi0WwikgEgMmAi1WwiEoE6Rz///+hvDtC
-AFD/FZxRQgCL5V3DzMzMzMxVi+xRx0X8AAAAAOsJi0X8g8ABiUX8g338QH0yi038gzyNgDpCAAB0
-I2oCi1X8iwSVgDpCAFDopQ8AAIPECItN/McEjYA6QgAAAAAA67+L5V3DzMzMzMzMzMzMzMzMzMxV
-i+xqAGgAEAAAM8CDfQgAD5TAUP8VrFFCAKN0OkIAgz10OkIAAHUEM8DrH+gvQgAAhcB1EYsNdDpC
-AFH/FahRQgAzwOsFuAEAAABdw8zMzFWL7IPsCKHAN0IAiUX4x0X8AAAAAOsJi038g8EBiU38i1X8
-OxW8N0IAfUtoAEAAAGgAABAAi0X4i0gMUf8VtFFCAGgAgAAAagCLVfiLQgxQ/xW0UUIAi034i1EQ
-UmoAoXQ6QgBQ/xWwUUIAi034g8EUiU3466GLFcA3QgBSagChdDpCAFD/FbBRQgCLDXQ6QgBR/xWo
-UUIAi+Vdw1WL7FNWV1VqAGoAaJQ/QAD/dQjoenkAAF1fXluL5V3Di0wkBPdBBAYAAAC4AQAAAHQP
-i0QkCItUJBCJArgDAAAAw1NWV4tEJBBQav5onD9AAGT/NQAAAABkiSUAAAAAi0QkIItYCItwDIP+
-/3QuO3QkJHQojTR2iwyziUwkCIlIDIN8swQAdRJoAQEAAItEswjoQAAAAP9Uswjrw2SPBQAAAACD
-xAxfXlvDM8Bkiw0AAAAAgXkEnD9AAHUQi1EMi1IMOVEIdQW4AQAAAMNTUbt8LUIA6wpTUbt8LUIA
-i00IiUsIiUMEiWsMWVvCBADMzFZDMjBYQzAwVYvsg+wIU1ZXVfyLXQyLRQj3QAQGAAAAD4WCAAAA
-iUX4i0UQiUX8jUX4iUP8i3MMi3sIg/7/dGGNDHaDfI8EAHRFVlWNaxD/VI8EXV6LXQwLwHQzeDyL
-ewhT6Kn+//+DxASNaxBWU+je/v//g8QIjQx2agGLRI8I6GH///+LBI+JQwz/VI8Ii3sIjQx2izSP
-66G4AAAAAOscuAEAAADrFVWNaxBq/1Ponv7//4PECF24AQAAAF1fXluL5V3DVYtMJAiLKYtBHFCL
-QRhQ6Hn+//+DxAhdwgQAzMzMzFWL7IM9xDVCAAF0EoM9xDVCAAB1MoM9NCpCAAF1KWj8AAAA6CgA
-AACDxASDPTQ3QgAAdAb/FTQ3QgBo/wAAAOgMAAAAg8QEXcPMzMzMzMzMVYvsgeywAQAAU1ZXx0X4
-AAAAAOsJi0X4g8ABiUX4g334EnMTi034i1UIOxTNkC1CAHUC6wLr3otF+ItNCDsMxZAtQgAPhW4B
-AACBfQj8AAAAdCGLVfiLBNWULUIAUGoAagBqAGoB6BXm//+DxBSD+AF1AcyDPcQ1QgABdBKDPcQ1
-QgAAdUKDPTQqQgABdTlqAI1N/FGLVfiLBNWULUIAUOg7IgAAg8QEUItN+IsUzZQtQgBSavT/FWBR
-QgBQ/xVkUUIA6fAAAACBfQj8AAAAD4TjAAAAaAQBAACNhfD+//9QagD/FXhRQgCFwHUUaGwEQgCN
-jfD+//9R6BIrAACDxAiNlfD+//+JVfSLRfRQ6M0hAACDxASDwAGD+Dx2LI2N8P7//1HotiEAAIPE
-BItV9I1EAsWJRfRqA2hoBEIAi030UejZMQAAg8QMaIgHQgCNlVD+//9S6LUqAACDxAiLRfRQjY1Q
-/v//UeiyKgAAg8QIaOADQgCNlVD+//9S6J4qAACDxAiLRfiLDMWULUIAUY2VUP7//1LohCoAAIPE
-CGgQIAEAaGAHQgCNhVD+//9Q6KswAACDxAxfXluL5V3DzFWL7FHHRfwAAAAA6wmLRfyDwAGJRfyD
-ffwScxOLTfyLVQg7FM2QLUIAdQLrAuvei0X8i00IOwzFkC1CAHUMi1X8iwTVlC1CAOsCM8CL5V3D
-VYvsagBqAGoBoXA3QgBQi00IUehYAAAAg8QUXcPMzMxVi+yLRRRQi00QUYtVDFKhcDdCAFCLTQhR
-6DIAAACDxBRdw8zMzMzMzMzMzMzMzMxVi+xqAGoAagGLRQxQi00IUegKAAAAg8QUXcPMzMzMzFWL
-7FGLRRhQi00UUYtVEFKLRQhQ6FcAAACDxBCJRfyDffwAdQaDfQwAdQWLRfzrFotNCFHoN1kAAIPE
-BIXAdQQzwOsC676L5V3DzMzMzMzMVYvsagBqAGoBi0UIUOgOAAAAg8QQXcPMzMzMzMzMzMxVi+yD
-7BBTVlfHRfQAAAAAoSAuQgCD4ASFwHQw6B8QAACFwHUhaIwIQgBqAGhBAQAAaIAIQgBqAuhT4///
-g8QUg/gBdQHMM8mFyXXQixUkLkIAiVX4i0X4OwUoLkIAdQHMi00UUYtVEFKLRfhQi00MUYtVCFJq
-AGoB/xWAMUIAg8QchcB1XoN9EAB0K4tFFFCLTRBRaEgIQgBqAGoAagBqAOjq4v//g8Qcg/gBdQHM
-M9KF0nXX6yZoJAhCAGggCEIAagBqAGoAagDowuL//4PEGIP4AXUBzDPAhcB12jPA6SgCAACLTQyB
-4f//AACD+QJ0FIsVIC5CAIPiAYXSdQfHRfQBAAAAg30I4HcLi0UIg8Akg/jgdiyLTQhRaPwHQgBq
-AGoAagBqAehj4v//g8QYg/gBdQHMM9KF0nXbM8DpyQEAAItFDCX//wAAg/gEdECDfQwBdDqLTQyB
-4f//AACD+QJ0LIN9DAN0JmjIB0IAaCAIQgBqAGoAagBqAegP4v//g8QYg/gBdQHMM9KF0nXai0UI
-g8AkiUXwi03wUehuWAAAg8QEiUX8g338AHUHM8DpVwEAAIsVJC5CAIPCAYkVJC5CAIN99AB0SYtF
-/McAAAAAAItN/MdBBAAAAACLVfzHQggAAAAAi0X8x0AMvLrc/otN/ItVCIlREItF/MdAFAMAAACL
-TfzHQRgAAAAA6aAAAACLFTw3QgADVQiJFTw3QgChRDdCAANFCKNEN0IAiw1EN0IAOw1IN0IAdgyL
-FUQ3QgCJFUg3QgCDPUA3QgAAdA2hQDdCAItN/IlIBOsJi1X8iRU4N0IAi0X8iw1AN0IAiQiLVfzH
-QgQAAAAAi0X8i00QiUgIi1X8i0UUiUIMi038i1UIiVEQi0X8i00MiUgUi1X8i0X4iUIYi038iQ1A
-N0IAagQz0ooVLC5CAFKLRfyDwBxQ6GZWAACDxAxqBDPJig0sLkIAUYtVCItF/I1MECBR6EhWAACD
-xAyLVQhSM8CgLi5CAFCLTfyDwSBR6C1WAACDxAyLRfyDwCBfXluL5V3DzMzMzMzMzMzMzMzMzFWL
-7GoAagBqAYtFDFCLTQhR6AoAAACDxBRdw8zMzMzMVYvsg+wMi0UMD69FCIlFDItNGFGLVRRSi0UQ
-UItNDFHo2/v//4PEEIlF+IN9+AB0KItV+IlV9ItF9ANFDIlF/ItN9DtN/HMRi1X0xgIAi0X0g8AB
-iUX06+eLRfiL5V3DVYvsagBqAGoBi0UMUItNCFHoCgAAAIPEFF3DzMzMzMxVi+xRagGLRRhQi00U
-UYtVEFKLRQxQi00IUegRAAAAg8QYiUX8i0X8i+Vdw8zMzMxVi+yD7BRTVlfHRewAAAAAg30IAHUd
-i0UYUItNFFGLVRBSi0UMUOgl+///g8QQ6dcEAACDfRwAdB2DfQwAdReLTRBRi1UIUuhEBQAAg8QI
-M8DptAQAAKEgLkIAg+AEhcB0MOjpCwAAhcB1IWiMCEIAagBoOQIAAGiACEIAagLoHd///4PEFIP4
-AXUBzDPJhcl10IsVJC5CAIlV8ItF8DsFKC5CAHUBzItNGFGLVRRSi0XwUItNEFGLVQxSi0UIUGoC
-/xWAMUIAg8QchcB1XoN9FAB0K4tNGFGLVRRSaAgKQgBqAGoAagBqAOiy3v//g8Qcg/gBdQHMM8CF
-wHXX6yZo5AlCAGggCEIAagBqAGoAagDoit7//4PEGIP4AXUBzDPJhcl12jPA6d4DAACDfQzbdiyL
-VQxSaLQJQgBqAGoAagBqAehY3v//g8QYg/gBdQHMM8CFwHXbM8DprAMAAIN9EAF0QotNEIHh//8A
-AIP5BHQ0i1UQgeL//wAAg/oCdCZoyAdCAGggCEIAagBqAGoAagHoCd7//4PEGIP4AXUBzDPAhcB1
-2otNCFHo4Q4AAIPEBIXAdSFokAlCAGoAaGECAABogAhCAGoC6NLd//+DxBSD+AF1Acwz0oXSdcmL
-RQiD6CCJRfiLTfiDeRQDdQfHRewBAAAAg33sAHQ+i1X4gXoMvLrc/nUJi0X4g3gYAHQhaEgJQgBq
-AGhrAgAAaIAIQgBqAuh33f//g8QUg/gBdQHMM8mFyXXE62SLVfiLQhQl//8AAIP4AnUVi00QgeH/
-/wAAg/kBdQfHRRACAAAAi1X4i0IUJf//AACLTRCB4f//AAA7wXQhaAwJQgBqAGhyAgAAaIAIQgBq
-AugR3f//g8QUg/gBdQHMM9KF0nXBg30cAHQli0UMg8AkUItN+FHobFQAAIPECIlF9IN99AB1BzPA
-6UMCAADrI4tVDIPCJFKLRfhQ6LdTAACDxAiJRfSDffQAdQczwOkeAgAAiw0kLkIAg8EBiQ0kLkIA
-g33sAHVWi1X0oTw3QgArQhCjPDdCAIsNPDdCAANNDIkNPDdCAItV9KFEN0IAK0IQo0Q3QgCLDUQ3
-QgADTQyJDUQ3QgCLFUQ3QgA7FUg3QgB2CqFEN0IAo0g3QgCLTfSDwSCJTfyLVfSLRQw7QhB2JItN
-9ItVDCtREFIzwKAuLkIAUItN9ItV/ANREFLotFEAAIPEDGoEM8CgLC5CAFCLTfwDTQxR6JtRAACD
-xAyDfewAdRuLVfSLRRSJQgiLTfSLVRiJUQyLRfSLTfCJSBiLVfSLRQyJQhCDfRwAdS+DfRwAdQiL
-TfQ7Tfh0IWjYCEIAagBoqAIAAGiACEIAagLootv//4PEFIP4AXUBzDPShdJ1xYtF9DtF+HQGg33s
-AHQIi0X86ecAAACLTfSDOQB0EItV9IsCi030i1EEiVAE6zyhODdCADtF+HQhaLwIQgBqAGi3AgAA
-aIAIQgBqAuhD2///g8QUg/gBdQHMM8mFyXXPi1X0i0IEozg3QgCLTfSDeQQAdA+LVfSLQgSLTfSL
-EYkQ6zuhQDdCADtF+HQhaKAIQgBqAGjCAgAAaIAIQgBqAujv2v//g8QUg/gBdQHMM8mFyXXPi1X0
-iwKjQDdCAIM9QDdCAAB0DosNQDdCAItV9IlRBOsIi0X0ozg3QgCLTfSLFUA3QgCJEYtF9MdABAAA
-AACLTfSJDUA3QgCLRfxfXluL5V3DzMzMzMzMzMzMzMzMzMzMVYvsagBqAGoBi0UMUItNCFHoCgAA
-AIPEFF3DzMzMzMxVi+xRagCLRRhQi00UUYtVEFKLRQxQi00IUeih+v//g8QYiUX8i0X8i+Vdw8zM
-zMxVi+xqAYtFCFDoEgAAAIPECF3DzMzMzMzMzMzMzMzMzFWL7FFTVlehIC5CAIPgBIXAdDDoqAYA
-AIXAdSFojAhCAGoAaOEDAABogAhCAGoC6NzZ//+DxBSD+AF1AcwzyYXJddCDfQgAdQXplwMAAGoA
-agBqAItVDFJqAItFCFBqA/8VgDFCAIPEHIXAdStoUAtCAGggCEIAagBqAGoAagDojNn//4PEGIP4
-AXUBzDPJhcl12ulNAwAAi1UIUuhfCgAAg8QEhcB1IWiQCUIAagBo8wMAAGiACEIAagLoUNn//4PE
-FIP4AXUBzDPAhcB1yYtNCIPpIIlN/ItV/ItCFCX//wAAg/gEdEOLTfyDeRQBdDqLVfyLQhQl//8A
-AIP4AnQqi038g3kUA3QhaCgLQgBqAGj5AwAAaIAIQgBqAuju2P//g8QUg/gBdQHMM9KF0nWnoSAu
-QgCD4ASFwA+FxQAAAGoEig0sLkIAUYtV/IPCHFLo2gQAAIPEDIXAdUOLRfyDwCBQi038i1EYUotF
-/ItIFIHh//8AAIsUjTAuQgBSaPwKQgBqAGoAagBqAeh/2P//g8Qgg/gBdQHMM8CFwHW9agSKDSwu
-QgBRi1X8i0IQi038jVQBIFLodAQAAIPEDIXAdUOLRfyDwCBQi038i1EYUotF/ItIFIHh//8AAIsU
-jTAuQgBSaNAKQgBqAGoAagBqAegZ2P//g8Qgg/gBdQHMM8CFwHW9i038g3kUA3Vsi1X8gXoMvLrc
-/nUJi0X8g3gYAHQhaJAKQgBqAGgOBAAAaIAIQgBqAujU1///g8QUg/gBdQHMM8mFyXXEi1X8i0IQ
-g8AkUDPJig0tLkIAUYtV/FLoSU0AAIPEDItF/FDo7VAAAIPEBOlqAQAAi038g3kUAnUNg30MAXUH
-x0UMAgAAAItV/ItCFDtFDHQhaHAKQgBqAGgbBAAAaIAIQgBqAuhc1///g8QUg/gBdQHMM8mFyXXO
-i1X8oUQ3QgArQhCjRDdCAIsNIC5CAIPhAoXJD4XYAAAAi1X8gzoAdBCLRfyLCItV/ItCBIlBBOs+
-iw04N0IAO038dCFoWApCAGoAaCoEAABogAhCAGoC6PHW//+DxBSD+AF1Acwz0oXSdc6LRfyLSASJ
-DTg3QgCLVfyDegQAdA+LRfyLSASLVfyLAokB6z2LDUA3QgA7Tfx0IWhACkIAagBoNAQAAGiACEIA
-agLom9b//4PEFIP4AXUBzDPShdJ1zotF/IsIiQ1AN0IAi1X8i0IQg8AkUDPJig0tLkIAUYtV/FLo
-BUwAAIPEDItF/FDoqU8AAIPEBOspi038x0EUAAAAAItV/ItCEFAzyYoNLS5CAFGLVfyDwiBS6M5L
-AACDxAxfXluL5V3DzMzMzFWL7GoBi0UIUOgSAAAAg8QIXcPMzMzMzMzMzMzMzMzMVYvsg+wIU1ZX
-oSAuQgCD4ASFwHQw6JYCAACFwHUhaIwIQgBqAGh8BAAAaIAIQgBqAujK1f//g8QUg/gBdQHMM8mF
-yXXQi1UIUuiiBgAAg8QEhcB1IWiQCUIAagBohQQAAGiACEIAagLok9X//4PEFIP4AXUBzDPAhcB1
-yYtNCIPpIIlN+ItV+ItCFCX//wAAg/gEdEOLTfiDeRQBdDqLVfiLQhQl//8AAIP4AnQqi034g3kU
-A3QhaCgLQgBqAGiLBAAAaIAIQgBqAugx1f//g8QUg/gBdQHMM9KF0nWni0X4g3gUAnUNg30MAXUH
-x0UMAgAAAItN+IN5FAN0MotV+ItCFDtFDHQhaHAKQgBqAGiSBAAAaIAIQgBqAujg1P//g8QUg/gB
-dQHMM8mFyXXOi1X4i0IQiUX8i0X8X15bi+Vdw8zMzMzMzMzMzMzMzMzMVYvsUaEoLkIAiUX8i00I
-iQ0oLkIAi0X8i+Vdw8zMzMxVi+xRU1ZXi0UIUOhwBQAAg8QEhcB0a4tNCIPpIIlN/ItV/ItCFCX/
-/wAAg/gEdEOLTfyDeRQBdDqLVfyLQhQl//8AAIP4AnQqi038g3kUA3QhaCgLQgBqAGjTBAAAaIAI
-QgBqAugm1P//g8QUg/gBdQHMM9KF0nWni0X8i00MiUgUX15bi+Vdw8zMzMzMzMxVi+xRoYAxQgCJ
-RfyLTQiJDYAxQgCLRfyL5V3DzMzMzFWL7FFTVlfHRfwBAAAAi0UQi00Qg+kBiU0QhcB0YItVCDPA
-igKLTQyB4f8AAACLVQiDwgGJVQg7wXRBi0UMJf8AAABQi00IM9KKUf9Si0UIg+gBUGhsC0IAagBq
-AGoAagDoetP//4PEIIP4AXUBzDPJhcl1xsdF/AAAAADrkItF/F9eW4vlXcPMzMzMzMzMzFWL7IPs
-GFNWV8dF/AEAAAChIC5CAIPgAYXAdQq4AQAAAOkUAwAA6MVMAACJRfSDffT/D4T9AAAAg330/g+E
-8wAAAItN9IlN6ItV6IPCBolV6IN96AMPh60AAACLRej/JIURWEAAaMAMQgBoIAhCAGoAagBqAGoA
-6NTS//+DxBiD+AF1AcwzyYXJddrpngAAAGicDEIAaCAIQgBqAGoAagBqAOip0v//g8QYg/gBdQHM
-M9KF0nXa63ZoeAxCAGggCEIAagBqAGoAagDogdL//4PEGIP4AXUBzDPAhcB12utOaFQMQgBoIAhC
-AGoAagBqAGoA6FnS//+DxBiD+AF1AcwzyYXJddrrJmgoDEIAaCAIQgBqAGoAagBqAOgx0v//g8QY
-g/gBdQHMM9KF0nXaM8DpBQIAAKFAN0IAiUX46wiLTfiLEYlV+IN9+AAPhOYBAADHRfABAAAAi0X4
-i0gUgeH//wAAg/kEdCOLVfiDehQBdBqLRfiLSBSB4f//AACD+QJ0CYtV+IN6FAN1GItF+ItIFIHh
-//8AAIsUjTAuQgCJVezrB8dF7CAMQgBqBKAsLkIAUItN+IPBHFHosf3//4PEDIXAdTqLVfiDwiBS
-i0X4i0gYUYtV7FJo/ApCAGoAagBqAGoA6GbR//+DxCCD+AF1AcwzwIXAdc3HRfAAAAAAagSKDSwu
-QgBRi1X4i0IQi034jVQBIFLoVP3//4PEDIXAdTqLRfiDwCBQi034i1EYUotF7FBo0ApCAGoAagBq
-AGoA6AnR//+DxCCD+AF1AcwzyYXJdc3HRfAAAAAAi1X4g3oUAHVQi0X4i0gQUYoVLS5CAFKLRfiD
-wCBQ6PD8//+DxAyFwHUvi034g8EgUWj0C0IAagBqAGoAagDosND//4PEGIP4AXUBzDPShdJ12MdF
-8AAAAACDffAAdXaLRfiDeAgAdDOLTfiLUQxSi0X4i0gIUYtV7FJo1AtCAGoAagBqAGoA6GfQ//+D
-xCCD+AF1AcwzwIXAdc2LTfiLURBSi0X4g8AgUItN7FFoqAtCAGoAagBqAGoA6DTQ//+DxCCD+AF1
-Acwz0oXSdc3HRfwAAAAA6Qj+//+LRfxfXluL5V3DsFVAAIhVQABgVUAANVVAAMzMzMzMzMzMzMzM
-zMzMzFWL7FGhIC5CAIlF/IN9CP90CYtNCIkNIC5CAItF/IvlXcPMzMzMzMzMzMzMzMzMzFWL7FGh
-IC5CAIPgAYXAdQLrPYsNQDdCAIlN/OsIi1X8iwKJRfyDffwAdCSLTfyLURSB4v//AACD+gR1EYtF
-DFCLTfyDwSBR/1UIg8QI686L5V3DzMzMzMzMzMzMzMzMzFWL7FGDfQgAdDOLRQxQi00IUf8VwFFC
-AIXAdSGDfRAAdBKLVQxSi0UIUP8VvFFCAIXAdQnHRfwBAAAA6wfHRfwAAAAAi0X8i+Vdw8zMzMzM
-VYvsUYN9CAB1BDPA63RqAWogi0UIg+ggUOiS////g8QMhcB1BDPA61mLTQiD6SBR6AsoAACDxASJ
-RfyDffwAdBWLVQiD6iBSi0X8UOhPKAAAg8QI6yyLDeQ1QgCB4QCAAACFyXQHuAEAAADrFYtVCIPq
-IFJqAKF0OkIAUP8VxFFCAIvlXcPMzMzMzMzMzMzMVYvsUYtFCFDoY////4PEBIXAdQczwOmmAAAA
-i00Ig+kgiU38i1X8i0IUJf//AACD+AR0IotN/IN5FAF0GYtV/ItCFCX//wAAg/gCdAmLTfyDeRQD
-dWlqAYtVDFKLRQhQ6Lv+//+DxAyFwHRTi038i1EQO1UMdUiLRfyLSBg7DSQuQgB/OoN9EAB0C4tV
-EItF/ItIGIkKg30UAHQLi1UUi0X8i0gIiQqDfRgAdAuLVRiLRfyLSAyJCrgBAAAA6wIzwIvlXcPM
-zMzMzMzMzMzMzFWL7FGhaDpCAIlF/ItNCIkNaDpCAItF/IvlXcPMzMzMVYvsg+wIU1ZXg30IAHUr
-aAgNQgBoIAhCAGoAagBqAGoA6GrN//+DxBiD+AF1AcwzwIXAddrpFQEAAItNCIsVQDdCAIkRx0X8
-AAAAAOsJi0X8g8ABiUX8g338BX0ei038i1UIx0SKGAAAAACLRfyLTQjHRIEEAAAAAOvTixVAN0IA
-iVX46wiLRfiLCIlN+IN9+AAPhJ8AAACLVfiLQhQl//8AAIXAfGaLTfiLURSB4v//AACD+gV9VYtF
-+ItIFIHh//8AAItVCItEigSDwAGLTfiLURSB4v//AACLTQiJRJEEi1X4i0IUJf//AACLTQiLVIEY
-i0X4A1AQi034i0EUJf//AACLTQiJVIEY6yWLVfhSaOQMQgBqAGoAagBqAOhtzP//g8QYg/gBdQHM
-M8CFwHXb6U////+LTQiLFUg3QgCJUSyLRQiLDTw3QgCJSDBfXluL5V3DzMzMzMzMzMzMzFWL7IPs
-CFNWV8dF+AAAAACDfQgAdAyDfQwAdAaDfRAAdS5oMA1CAGggCEIAagBqAGoAagDo98v//4PEGIP4
-AXUBzDPAhcB12otF+OnMAAAAx0X8AAAAAOsJi038g8EBiU38g338BQ+NgAAAAItV/ItFEItN/It1
-DItUkBgrVI4Yi0X8i00IiVSBGItV/ItFEItN/It1DItUkAQrVI4Ei0X8i00IiVSBBItV/ItFCIN8
-kBgAdQ2LTfyLVQiDfIoEAHQlg338AHQfg338AnUSg338AnUToSAuQgCD4BCFwHQHx0X4AQAAAOlt
-////i00Qi1UMi0EsK0Isi00IiUEsi1UQi0UMi0owK0gwi1UIiUowi0UIxwAAAAAAi0X4X15bi+Vd
-w8zMzMzMzMzMzMzMzMxVi+yD7AhTVlfHRfgAAAAAaCgOQgBoIAhCAGoAagBqAGoA6NnK//+DxBiD
-+AF1AcwzwIXAddqDfQgAdAiLTQiLEYlV+KFAN0IAiUX86wiLTfyLEYlV/IN9/AAPhBgCAACLRfw7
-RfgPhAwCAACLTfyLURSB4v//AACD+gN0LYtF/ItIFIHh//8AAIXJdB2LVfyLQhQl//8AAIP4AnUS
-iw0gLkIAg+EQhcl1BenEAQAAi1X8g3oIAHRwagBqAYtF/ItICFHo2Pr//4PEDIXAdSqLVfyLQgxQ
-aBQOQgBqAGoAagBqAOgYyv//g8QYg/gBdQHMM8mFyXXY6y+LVfyLQgxQi038i1EIUmgIDkIAagBq
-AGoAagDo58n//4PEHIP4AXUBzDPAhcB10YtN/ItRGFJoAA5CAGoAagBqAGoA6L/J//+DxBiD+AF1
-AcwzwIXAddiLTfyLURSB4v//AACD+gR1cYtF/ItIEFGLVfyLQhTB+BAl//8AAFCLTfyDwSBRaMwN
-QgBqAGoAagBqAOhwyf//g8Qgg/gBdQHMM9KF0nXCgz1oOkIAAHQZi0X8i0gQUYtV/IPCIFL/FWg6
-QgCDxAjrDItF/FDo5gAAAIPEBOmhAAAAi038g3kUAXU9i1X8i0IQUItN/IPBIFFopA1CAGoAagBq
-AGoA6AXJ//+DxByD+AF1Acwz0oXSddGLRfxQ6J0AAACDxATrW4tN/ItRFIHi//8AAIP6AnVKi0X8
-i0gQUYtV/ItCFMH4ECX//wAAUItN/IPBIFFocA1CAGoAagBqAGoA6KjI//+DxCCD+AF1Acwz0oXS
-dcKLRfxQ6EAAAACDxATp1v3//2hYDUIAaCAIQgBqAGoAagBqAOhxyP//g8QYg/gBdQHMM8mFyXXa
-X15bi+Vdw8zMzMzMzMzMzMzMVYvsg+xcU1ZXx0W0AAAAAOsJi0W0g8ABiUW0i00Ig3kQEH0Li1UI
-i0IQiUWs6wfHRawQAAAAi020O02sD42aAAAAi1UIA1W0ikIgiEWwgz2EMUIAAX4caFcBAACLTbCB
-4f8AAABR6PVCAACDxAiJRajrHYtVsIHi/wAAAKFgLkIAM8lmiwxQgeFXAQAAiU2og32oAHQOi1Ww
-geL/AAAAiVWk6wfHRaQgAAAAi0W0ik2kiEwFuItVsIHi/wAAAFJoTA5CAItFtGvAA41MBcxR6IxB
-AACDxAzpNv///4tVtMZEFbgAjUXMUI1NuFFoPA5CAGoAagBqAGoA6FLH//+DxByD+AF1Acwz0oXS
-dddfXluL5V3DzMzMzMzMzMzMzMzMVYvsg+w0U1ZXjUXMUOiO+f//g8QEg33gAHUZg33UAHUTiw0g
-LkIAg+EQhcl0PYN92AB0N2hUDkIAaCAIQgBqAGoAagBqAOjlxv//g8QYg/gBdQHMM9KF0nXaagDo
-z/v//4PEBLgBAAAA6wIzwF9eW4vlXcPMzMzMzMzMzMzMzMxVi+xRU1ZXg30IAHUF6awAAADHRfwA
-AAAA6wmLRfyDwAGJRfyDffwFfUSLTfyLFI0wLkIAUotF/ItNCItUgQRSi0X8i00Ii1SBGFJosA5C
-AGoAagBqAGoA6FPG//+DxCCD+AF1AcwzwIXAdb7rrYtNCItRLFJojA5CAGoAagBqAGoA6CnG//+D
-xBiD+AF1AcwzwIXAddiLTQiLUTBSaGwOQgBqAGoAagBqAOgBxv//g8QYg/gBdQHMM8CFwHXYX15b
-i+Vdw8zMzMzMzMzMzMzMVYvsi0UIOwW8O0IAcgQzwOsbi00IwfkFi1UIg+IfiwSNgDpCAA++RNAE
-g+BAXcPMVYvsg30IAHUMagDoIAEAAIPEBOs8i0UIUOhCAAAAg8QEhcB0BYPI/+sni00Ii1EMgeIA
-QAAAhdJ0FYtFCItIEFHoOkEAAIPEBPfYG8DrAjPAXcPMzMzMzMzMzMzMzMzMVYvsg+wMx0X8AAAA
-AItFCIlF+ItN+ItRDIPiA4P6AnV6i0X4i0gMgeEIAQAAhcl0aotV+ItF+IsKK0gIiU30g330AH5W
-i1X0UotF+ItICFGLVfiLQhBQ6HRBAACDxAw7RfR1IYtN+ItRDIHigAAAAIXSdA+LRfiLSAyD4f2L
-VfiJSgzrFotF+ItIDIPJIItV+IlKDMdF/P////+LRfiLTfiLUQiJEItF+MdABAAAAACLRfyL5V3D
-zMzMzMzMzMzMVYvsagHoBgAAAIPEBF3DzFWL7IPsDMdF/AAAAADHRfgAAAAAx0X0AAAAAOsJi0X0
-g8ABiUX0i030Ow1AT0IAD42XAAAAi1X0oew7QgCDPJAAD4SAAAAAi030ixXsO0IAiwSKi0gMgeGD
-AAAAhcl0Z4N9CAF1JItV9KHsO0IAiwyQUehZ/v//g8QEg/j/dAmLVfyDwgGJVfzrPYN9CAB1N4tF
-9IsN7DtCAIsUgYtCDIPgAoXAdCGLTfSLFew7QgCLBIpQ6Bj+//+DxASD+P91B8dF+P/////pUf//
-/4N9CAF1BYtF/OsDi0X4i+Vdw8zMi0wkBPfBAwAAAHQUigFBhMB0QPfBAwAAAHXxBQAAAACLAbr/
-/v5+A9CD8P8zwoPBBKkAAQGBdOiLQfyEwHQyhOR0JKkAAP8AdBOpAAAA/3QC682NQf+LTCQEK8HD
-jUH+i0wkBCvBw41B/YtMJAQrwcONQfyLTCQEK8HDzMzMzMxVi+yD7AiDfQgAdQczwOmHAAAAgz2A
-N0IAAHUti0UMJf//AAA9/wAAAH4PxwXYNUIAKgAAAIPI/+tgi00IilUMiBG4AQAAAOtRx0X4AAAA
-AI1F+FBqAIsNhDFCAFGLVQhSagGNRQxQaCACAACLDZA3QgBR/xWQUUIAiUX8g338AHQGg334AHQP
-xwXYNUIAKgAAAIPI/+sDi0X8i+Vdw8zMU1aLRCQYC8B1GItMJBSLRCQQM9L38YvYi0QkDPfxi9Pr
-QYvIi1wkFItUJBCLRCQM0enR29Hq0dgLyXX09/OL8PdkJBiLyItEJBT35gPRcg47VCQQdwhyBztE
-JAx2AU4z0ovGXlvCEADMzMzMzMzMzFOLRCQUC8B1GItMJBCLRCQMM9L38YtEJAj38YvCM9LrUIvI
-i1wkEItUJAyLRCQI0enR29Hq0dgLyXX09/OLyPdkJBSR92QkEAPRcg47VCQMdwhyDjtEJAh2CCtE
-JBAbVCQUK0QkCBtUJAz32vfYg9oAW8IQAMzMzMzMzMzMzMzMVYvsg+wUU1ZXg30MAHUeaLgBQgBq
-AGppaBAPQgBqAuhswf//g8QUg/gBdQHMM8CFwHXWi00MiU34i1X4i0IQiUXwi034i1EMgeKCAAAA
-hdJ0DYtF+ItIDIPhQIXJdBaLVfiLQgwMIItN+IlBDIPI/+n2AQAAi1X4i0IMg+ABhcB0SotN+MdB
-BAAAAACLVfiLQgyD4BCFwHQci034i1X4i0IIiQGLTfiLUQyD4v6LRfiJUAzrF4tN+ItRDIPKIItF
-+IlQDIPI/+mfAQAAi034i1EMg8oCi0X4iVAMi034i1EMg+Lvi0X4iVAMi034x0EEAAAAAMdF/AAA
-AACLVfyJVfSLRfiLSAyB4QwBAACFyXUugX34YCpCAHQJgX34gCpCAHUQi1XwUuiE+v//g8QEhcB1
-DItF+FDohEAAAIPEBItN+ItRDIHiCAEAAIXSD4TWAAAAi0X4i034ixArUQiF0n0haNAOQgBqAGig
-AAAAaBAPQgBqAugWwP//g8QUg/gBdQHMM8CFwHXKi034i1X4iwErQgiJRfyLTfiLUQiDwgGLRfiJ
-EItN+ItRGIPqAYtF+IlQBIN9/AB+HItN/FGLVfiLQghQi03wUehCPAAAg8QMiUX060aDffD/dBuL
-VfDB+gWLRfCD4B+LDJWAOkIAjRTBiVXs6wfHRexwLUIAi0XsD75IBIPhIIXJdBBqAmoAi1XwUui3
-PgAAg8QMi0X4i0gIilUIiBHrHsdF/AEAAACLRfxQjU0IUYtV8FLozzsAAIPEDIlF9ItF9DtF/HQU
-i034i1EMg8ogi0X4iVAMg8j/6wiLRQgl/wAAAF9eW4vlXcPMzMzMzMzMzMzMzMzMzFWL7IPsCMdF
-/AAAAADHRfgDAAAA6wmLRfiDwAGJRfiLTfg7DUBPQgB9e4tV+KHsO0IAgzyQAHRoi034ixXsO0IA
-iwSKi0gMgeGDAAAAhcl0IotV+KHsO0IAiwyQUeiuPwAAg8QEg/j/dAmLVfyDwgGJVfyDffgUfCdq
-AotF+IsN7DtCAIsUgVLoc+T//4PECItF+IsN7DtCAMcEgQAAAADpcf///4tF/IvlXcPMzMzMVYvs
-g30QCnUeg30IAH0YagGLRRBQi00MUYtVCFLoLgAAAIPEEOsWagCLRRBQi00MUYtVCFLoFgAAAIPE
-EItFDF3DzMzMzMzMzMzMzMzMzMxVi+yD7BCLRQyJRfyDfRQAdBeLTfzGAS2LVfyDwgGJVfyLRQj3
-2IlFCItN/IlN+ItFCDPS93UQiVX0i0UIM9L3dRCJRQiDffQJdhaLVfSDwleLRfyIEItN/IPBAYlN
-/OsUi1X0g8Iwi0X8iBCLTfyDwQGJTfyDfQgAd7SLVfzGAgCLRfyD6AGJRfyLTfyKEYhV8ItF/ItN
-+IoRiBCLRfiKTfCICItV/IPqAYlV/ItF+IPAAYlF+ItN+DtN/HLMi+Vdw8zMzMzMzMzMzMzMzMzM
-VYvsUYN9EAp1D4N9CAB9CcdF/AEAAADrB8dF/AAAAACLRfxQi00QUYtVDFKLRQhQ6Pv+//+DxBCL
-RQyL5V3DzFWL7GoAi0UQUItNDFGLVQhS6Nr+//+DxBCLRQxdw8zMVYvsUYN9FAp1F4N9DAB/EXwG
-g30IAHMJx0X8AQAAAOsHx0X8AAAAAItF/FCLTRRRi1UQUotFDFCLTQhR6A8AAACLRRCL5V3DzMzM
-zMzMzMxVi+yD7BCLRRCJRfyDfRgAdCKLTfzGAS2LVfyDwgGJVfyLRQj32ItNDIPRAPfZiUUIiU0M
-i1X8iVX4i0UUM8lRUItVDFKLRQhQ6DL6//+JRfSLTRQz0lJRi0UMUItNCFHoq/n//4lFCIlVDIN9
-9Al2FotV9IPCV4tF/IgQi038g8EBiU386xSLVfSDwjCLRfyIEItN/IPBAYlN/IN9DAB3mXIGg30I
-AHeRi1X8xgIAi0X8g+gBiUX8i038ihGIVfCLRfyLTfiKEYgQi0X4ik3wiAiLVfyD6gGJVfyLRfiD
-wAGJRfiLTfg7TfxyzIvlXcIUAMzMzMzMzMzMzMzMzMzMVYvsagCLRRRQi00QUYtVDFKLRQhQ6Ob+
-//+LRRBdw8xVi+yD7DBTVleNReCJRdyNTRSJTdSDfQgAdR5oKA9CAGoAal1oHA9CAGoC6EC7//+D
-xBSD+AF1Acwz0oXSddaDfRAAdR5ooABCAGoAal5oHA9CAGoC6Ba7//+DxBSD+AF1AcwzwIXAddaL
-TdzHQQxCAAAAi1Xci0UIiUIIi03ci1UIiRGLRdyLTQyJSASLVdRSi0UQUItN3FHo0qn//4PEDIlF
-2ItV3ItCBIPoAYtN3IlBBItV3IN6BAB8IotF3IsIxgEAM9KB4v8AAACJVdCLRdyLCIPBAYtV3IkK
-6xGLRdxQagDo9/j//4PECIlF0ItF2F9eW4vlXcPMzMzMzMzMV4t8JAjrao2kJAAAAACL/4tMJARX
-98EDAAAAdA+KAUGEwHQ798EDAAAAdfGLAbr//v5+A9CD8P8zwoPBBKkAAQGBdOiLQfyEwHQjhOR0
-GqkAAP8AdA6pAAAA/3QC682Nef/rDY15/usIjXn96wONefyLTCQM98EDAAAAdBmKEUGE0nRkiBdH
-98EDAAAAde7rBYkXg8cEuv/+/n6LAQPQg/D/M8KLEYPBBKkAAQGBdOGE0nQ0hPZ0J/fCAAD/AHQS
-98IAAAD/dALrx4kXi0QkCF/DZokXi0QkCMZHAgBfw2aJF4tEJAhfw4gXi0QkCF/DVYvsg+wsU1ZX
-jUXgiUXcg30IAHUeaCgPQgBqAGpaaDgPQgBqAuhWuf//g8QUg/gBdQHMM8mFyXXWg30QAHUeaKAA
-QgBqAGpbaDgPQgBqAugsuf//g8QUg/gBdQHMM9KF0nXWi0Xcx0AMQgAAAItN3ItVCIlRCItF3ItN
-CIkIi1Xci0UMiUIEi00UUYtVEFKLRdxQ6Oin//+DxAyJRdiLTdyLUQSD6gGLRdyJUASLTdyDeQQA
-fCKLVdyLAsYAADPJgeH/AAAAiU3Ui1XciwKDwAGLTdyJAesRi1XcUmoA6A33//+DxAiJRdSLRdhf
-XluL5V3DzMzMzMzMzMzMzMzMzFE9ABAAAI1MJAhyFIHpABAAAC0AEAAAhQE9ABAAAHPsK8iLxIUB
-i+GLCItABFDDzFWL7IPsDIN9DAR0BoN9DAN1BelCAQAAg30IAnQWg30IFXQQg30IFnQKg30IDw+F
-uAAAAIN9CAJ0BoN9CBV1N4M9XDdCAAB1LmoBaHBxQAD/FcxRQgCD+AF1DMcFXDdCAAEAAADrEP8V
-yFFCAKPcNUIA6eMAAACLRQiJRfSLTfSD6QKJTfSDffQUd16LRfQz0oqQTnFAAP8klTpxQACLDUw3
-QgCJTfiLVQyJFUw3QgDrOKFQN0IAiUX4i00MiQ1QN0IA6yWLFVQ3QgCJVfiLRQyjVDdCAOsSiw1Y
-N0IAiU34i1UMiRVYN0IA62mDfQgIdA6DfQgEdAiDfQgLdALrWotFCFDoyAIAAIPEBIlF/IN9/AB1
-AutDi038i1EIiVX4i0X8i0gEO00IdSqLVfyLRQyJQgiLTfyDwQyJTfyLFWgtQgBr0gyBwugsQgA5
-VfxyAusC68uLRfjrDccF2DVCABYAAACDyP+L5V3DbXBAAKdwQACBcEAAlHBAALlwQAAABAQEBAQE
-BAQEBAQEAQQEBAQEAgPMzMzMzMzMzMzMzMzMVYvsg+wMg30IAHUYx0X4TDdCAItF+IsIiU30x0X8
-AgAAAOsWx0X4UDdCAItV+IsCiUX0x0X8FQAAAIN99AB1BDPA6x6DffQBdBOLTfjHAQAAAACLVfxS
-/1X0g8QEuAEAAACL5V3CBADMzMzMzMzMzFWL7IPsGItFCIlF6ItN6IPpAolN6IN96BR3cotF6DPS
-ipB8c0AA/ySVZHNAAMdF8Ew3QgCLTfCLEYlV7OtXx0XwUDdCAItF8IsIiU3s60bHRfBUN0IAi1Xw
-iwKJRezrNcdF8Fg3QgCLTfCLEYlV7Oski0UIUOhGAQAAg8QEg8AIiUXwi03wixGJVezrCIPI/+nr
-AAAAg33sAXUHM8Dp3gAAAIN97AB1B2oD6JG8//+DfQgIdAyDfQgLdAaDfQgEdSuhKDZCAIlF9McF
-KDZCAAAAAACDfQgIdROLDWwtQgCJTfzHBWwtQgCMAAAAg30ICHU5ixVgLUIAiVX46wmLRfiDwAGJ
-RfiLDWAtQgADDWQtQgA5Tfh9EotV+GvSDMeC8CxCAAAAAADr1OsJi0XwxwAAAAAAg30ICHURiw1s
-LUIAUWoI/1Xsg8QI6wqLVQhS/1Xsg8QEg30ICHQMg30IC3QGg30IBHUXi0X0oyg2QgCDfQgIdQmL
-TfyJDWwtQgAzwIvlXcMNckAAUXJAAEByQAAeckAAL3JAAG1yQAAABQEFBQUBBQUBBQUFAgUFBQUF
-AwTMzMzMzMzMzMzMzMzMzMxVi+xRx0X86CxCAItF/ItIBDtNCHQdi1X8g8IMiVX8oWgtQgBrwAwF
-6CxCADlF/HMC69iLDWgtQgBryQyBwegsQgA5TfxzEItV/ItCBDtFCHUFi0X86wIzwIvlXcPMzMxV
-i+yD7AjHRfwAAAAAgz1gN0IAAHVdaEADQgD/FXBRQgCJRfiDffgAdB1oaA9CAItF+FD/FUhRQgCj
-YDdCAIM9YDdCAAB1BDPA62xoWA9CAItN+FH/FUhRQgCjZDdCAGhED0IAi1X4Uv8VSFFCAKNoN0IA
-gz1kN0IAAHQJ/xVkN0IAiUX8g338AHQWgz1oN0IAAHQNi0X8UP8VaDdCAIlF/ItNEFGLVQxSi0UI
-UItN/FH/FWA3QgCL5V3DzMzMzMyLTCQMV4XJdHpWU4vZi3QkFPfGAwAAAIt8JBB1B8HpAnVv6yGK
-BkaIB0dJdCWEwHQp98YDAAAAdeuL2cHpAnVRg+MDdA2KBkaIB0eEwHQvS3Xzi0QkEFteX8P3xwMA
-AAB0EogHR0kPhIoAAAD3xwMAAAB17ovZwekCdWyIB0dLdfpbXotEJAhfw4kXg8cESXSvuv/+/n6L
-BgPQg/D/M8KLFoPGBKkAAQGBdN6E0nQshPZ0HvfCAAD/AHQM98IAAAD/dcaJF+sYgeL//wAAiRfr
-DoHi/wAAAIkX6wQz0okXg8cEM8BJdAozwIkHg8cESXX4g+MDdYWLRCQQW15fw8zMVYvsg+woi0UI
-UOjxAgAAg8QEiUUIi00IOw3EN0IAdQczwOnTAgAAg30IAHUR6K4DAADoKQQAADPA6bwCAADHRfwA
-AAAA6wmLVfyDwgGJVfyDffwFD4M9AQAAi0X8a8Awi4h4MEIAO00ID4UjAQAAx0XcAAAAAOsJi1Xc
-g8IBiVXcgX3cAQEAAHMMi0XcxoBgOUIAAOvix0X0AAAAAOsJi030g8EBiU30g330BHN7i1X8a9Iw
-i0X0jYzCiDBCAIlN+OsJi1X4g8ICiVX4i0X4M8mKCIXJdE2LVfgzwIpCAYXAdEGLTfgz0ooRiVXc
-6wmLRdyDwAGJRdyLTfgz0opRATlV3Hcdi0Xci030ipBhOUIACpFwMEIAi0XciJBhOUIA683rn+l2
-////i00IiQ3EN0IAxwVMOEIAAQAAAIsVxDdCAFLoGAIAAIPEBKNkOkIAx0X0AAAAAOsJi0X0g8AB
-iUX0g330BnMei038a8kwi1X0i0X0ZouMQXwwQgBmiQxVQDhCAOvT6NUCAAAzwOloAQAA6bD+//+N
-VeBSi0UIUP8V0FFCAIP4AQ+FMgEAAMdF3AAAAADrCYtN3IPBAYlN3IF93AEBAABzDItV3MaCYDlC
-AADr4otFCKPEN0IAxwVkOkIAAAAAAIN94AEPhrUAAACNTeaJTdjrCYtV2IPCAolV2ItF2DPJigiF
-yXRHi1XYM8CKQgGFwHQ7i03YM9KKEYlV3OsJi0Xcg8ABiUXci03YM9KKUQE5Vdx3F4tF3IqIYTlC
-AIDJBItV3IiKYTlCAOvT66XHRdwBAAAA6wmLRdyDwAGJRdyBfdz/AAAAcxeLTdyKkWE5QgCAygiL
-RdyIkGE5QgDr14sNxDdCAFHozgAAAIPEBKNkOkIAxwVMOEIAAQAAAOsKxwVMOEIAAAAAAMdF9AAA
-AADrCYtV9IPCAYlV9IN99AZzD4tF9GbHBEVAOEIAAADr4uiEAQAAM8DrGoM9bDdCAAB0DujyAAAA
-6G0BAAAzwOsDg8j/i+Vdw8zMVYvsxwVsN0IAAAAAAIN9CP51EscFbDdCAAEAAAD/FdhRQgDrMoN9
-CP11EscFbDdCAAEAAAD/FdRRQgDrGoN9CPx1EccFbDdCAAEAAAChkDdCAOsDi0UIXcPMzMzMzMzM
-VYvsUYtFCIlF/ItN/IHppAMAAIlN/IN9/BJ3LotF/DPSipCEeUAA/ySVcHlAALgRBAAA6xe4BAgA
-AOsQuBIEAADrCbgEBAAA6wIzwIvlXcNOeUAAVXlAAFx5QABjeUAAanlAAAAEBAQBBAQEBAQEBAQE
-BAQEAgPMzMzMzMzMzMxVi+xRx0X8AAAAAOsJi0X8g8ABiUX8gX38AQEAAH0Mi038xoFgOUIAAOvi
-xwXEN0IAAAAAAMcFTDhCAAAAAADHBWQ6QgAAAAAAx0X8AAAAAOsJi1X8g8IBiVX8g338Bn0Pi0X8
-ZscERUA4QgAAAOvii+Vdw8zMzMzMzMzMzMzMzFWL7IHsHAUAAI2F6Pz//1CLDcQ3QgBR/xXQUUIA
-g/gBD4UTAgAAx4Xk+v//AAAAAOsPi5Xk+v//g8IBiZXk+v//gb3k+v//AAEAAHMVi4Xk+v//io3k
-+v//iIwF/Pz//+vQxoX8/P//II2V7vz//4lV/OsJi0X8g8ACiUX8i038M9KKEYXSdECLRfwzyYoI
-iY3k+v//6w+LleT6//+DwgGJleT6//+LRfwzyYpIATmN5Pr//3cQi5Xk+v//xoQV/Pz//yDr0eus
-agChZDpCAFCLDcQ3QgBRjZX8/f//UmgAAQAAjYX8/P//UGoB6E8yAACDxBxqAIsNxDdCAFFoAAEA
-AI2V6Pv//1JoAAEAAI2F/Pz//1BoAAEAAIsNZDpCAFHoui4AAIPEIGoAixXEN0IAUmgAAQAAjYXo
-+v//UGgAAQAAjY38/P//UWgAAgAAixVkOkIAUuiFLgAAg8Qgx4Xk+v//AAAAAOsPi4Xk+v//g8AB
-iYXk+v//gb3k+v//AAEAAA+DqwAAAIuN5Pr//zPSZouUTfz9//+D4gGF0nQ2i4Xk+v//iohhOUIA
-gMkQi5Xk+v//iIphOUIAi4Xk+v//i43k+v//ipQN6Pv//4iQYDhCAOtZi4Xk+v//M8lmi4xF/P3/
-/4PhAoXJdDWLleT6//+KgmE5QgAMIIuN5Pr//4iBYTlCAIuV5Pr//4uF5Pr//4qMBej6//+IimA4
-QgDrDYuV5Pr//8aCYDhCAADpNv///+nFAAAAx4Xk+v//AAAAAOsPi4Xk+v//g8ABiYXk+v//gb3k
-+v//AAEAAA+DmgAAAIO95Pr//0FyO4O95Pr//1p3MouN5Pr//4qRYTlCAIDKEIuF5Pr//4iQYTlC
-AIuN5Pr//4PBIIuV5Pr//4iKYDhCAOtRg73k+v//YXI7g73k+v//encyi4Xk+v//iohhOUIAgMkg
-i5Xk+v//iIphOUIAi4Xk+v//g+ggi43k+v//iIFgOEIA6w2LleT6///GgmA4QgAA6Uf///+L5V3D
-zMzMzMzMzMzMzMzMzMxVi+yDPUw4QgAAdAehxDdCAOsCM8Bdw8zMzMzMzMzMzFWL7IM90DtCAAB1
-FGr96F34//+DxATHBdA7QgABAAAAXcPMzMzMzMzMzMzMzMzMzFWL7FdWi3UMi00Qi30Ii8GL0QPG
-O/52CDv4D4J4AQAA98cDAAAAdRTB6QKD4gOD+QhyKfOl/ySVyH5AAIvHugMAAACD6QRyDIPgAwPI
-/ySF4H1AAP8kjdh+QACQ/ySNXH5AAJDwfUAAHH5AAEB+QAAj0YoGiAeKRgGIRwGKRgLB6QKIRwKD
-xgODxwOD+QhyzPOl/ySVyH5AAI1JACPRigaIB4pGAcHpAohHAYPGAoPHAoP5CHKm86X/JJXIfkAA
-kCPRigaIB0bB6QJHg/kIcozzpf8klch+QACNSQC/fkAArH5AAKR+QACcfkAAlH5AAIx+QACEfkAA
-fH5AAItEjuSJRI/ki0SO6IlEj+iLRI7siUSP7ItEjvCJRI/wi0SO9IlEj/SLRI74iUSP+ItEjvyJ
-RI/8jQSNAAAAAAPwA/j/JJXIfkAAi//YfkAA4H5AAOx+QAAAf0AAi0UIXl/Jw5CKBogHi0UIXl/J
-w5CKBogHikYBiEcBi0UIXl/Jw41JAIoGiAeKRgGIRwGKRgKIRwKLRQheX8nDkI10MfyNfDn898cD
-AAAAdSTB6QKD4gOD+QhyDf3zpfz/JJVggEAAi//32f8kjRCAQACNSQCLx7oDAAAAg/kEcgyD4AMr
-yP8khWh/QAD/JI1ggEAAkHh/QACYf0AAwH9AAIpGAyPRiEcDTsHpAk+D+Qhytv3zpfz/JJVggEAA
-jUkAikYDI9GIRwOKRgLB6QKIRwKD7gKD7wKD+QhyjP3zpfz/JJVggEAAkIpGAyPRiEcDikYCiEcC
-ikYBwekCiEcBg+4Dg+8Dg/kID4Ja/////fOl/P8klWCAQACNSQAUgEAAHIBAACSAQAAsgEAANIBA
-ADyAQABEgEAAV4BAAItEjhyJRI8ci0SOGIlEjxiLRI4UiUSPFItEjhCJRI8Qi0SODIlEjwyLRI4I
-iUSPCItEjgSJRI8EjQSNAAAAAAPwA/j/JJVggEAAi/9wgEAAeIBAAIiAQACcgEAAi0UIXl/Jw5CK
-RgOIRwOLRQheX8nDjUkAikYDiEcDikYCiEcCi0UIXl/Jw5CKRgOIRwOKRgKIRwKKRgGIRwGLRQhe
-X8nDzMzMzMzMzMzMzMxVi+yhcDFCAF3DzMzMzMzMVYvsgX0I+AMAAHYEM8DrDYtFCKNwMUIAuAEA
-AABdw8xVi+xoQAEAAGoAoXQ6QgBQ/xXcUUIAo8A3QgCDPcA3QgAAdQQzwOsviw3AN0IAiQ20N0IA
-xwW4N0IAAAAAAMcFvDdCAAAAAADHBaA3QgAQAAAAuAEAAABdw8zMzMzMzMxVi+yD7AyhvDdCAGvA
-FIsNwDdCAAPIiU30ixXAN0IAiVX4i0X4O0X0cyWLTfiLVQgrUQyJVfyBffwAABAAcwWLRfjrDYtF
-+IPAFIlF+OvTM8CL5V3DzMzMzMzMzMzMzMxVi+yD7AyLRQiLTQwrSAyJTfiLVfjB6g+JVfy4AAAA
-gItN/NPoi00Ii1EII9CF0nUgi0X4g+APhcB1FotN+IHh/w8AAIXJdAnHRfQBAAAA6wfHRfQAAAAA
-i0X0i+Vdw8xVi+yD7DyLRQiLSBCJTcSLVQiLRQwrQgyJRfCLTfDB6Q+JTfyLVfxp0gQCAACLRcSN
-jBBEAQAAiU34i1UMg+oEiVXki0XkiwiD6QGJTdCLVeQDVdCJVciLRciLCIlN7ItV5ItC/IlF9ItN
-7IPhAYXJD4UiAQAAi1XswfoEg+oBiVXcg33cP3YHx0XcPwAAAItFyItNyItQBDtRCA+F0AAAAIN9
-3CBzX7gAAACAi03c0+j30ItN/ItVxItMikQjyItV/ItFxIlMkESLTcQDTdyKUQSA6gGLRcQDRdyI
-UASLTcQDTdwPvlEEhdJ1GLgAAACAi03c0+j30ItNCIsRI9CLRQiJEOtri03cg+kgugAAAIDT6vfS
-i0X8i03Ei4SBxAAAACPCi038i1XEiYSKxAAAAItFxANF3IpIBIDpAYtVxANV3IhKBItFxANF3A++
-SASFyXUdi03cg+kgugAAAIDT6vfSi0UIi0gEI8qLVQiJSgSLRciLSAiLVciLQgSJQQSLTciLUQSL
-RciLSAiJSgiLVdADVeyJVdCLRdDB+ASD6AGJRdiDfdg/dgfHRdg/AAAAi030g+EBhckPhVYBAACL
-VeQrVfSJVcyLRfTB+ASD6AGJRdSDfdQ/dgfHRdQ/AAAAi03QA030iU3Qi1XQwfoEg+oBiVXYg33Y
-P3YHx0XYPwAAAItF1DtF2A+EAAEAAItNzItVzItBBDtCCA+F0AAAAIN91CBzX7oAAACAi03U0+r3
-0otF/ItNxItEgUQjwotN/ItVxIlEikSLRcQDRdSKSASA6QGLVcQDVdSISgSLRcQDRdQPvkgEhcl1
-GLoAAACAi03U0+r30otFCIsII8qLVQiJCutri03Ug+kguAAAAIDT6PfQi038i1XEi4yKxAAAACPI
-i1X8i0XEiYyQxAAAAItNxANN1IpRBIDqAYtFxANF1IhQBItNxANN1A++UQSF0nUdi03Ug+kguAAA
-AIDT6PfQi00Ii1EEI9CLRQiJUASLTcyLUQiLRcyLSASJSgSLVcyLQgSLTcyLUQiJUAiLRcyJReSL
-TfSD4QGFyXUMi1XUO1XYD4QQAQAAi0XYi034jRTBiVXgi0Xki03gi1EEiVAEi0Xki03giUgIi1Xg
-i0XkiUIEi03ki1EEi0XkiUIIi03ki1Xki0EEO0IID4XIAAAAg33YIHNbi03EA03YD75RBItFxANF
-2IpIBIDBAYtFxANF2IhIBIXSdRa6AAAAgItN2NPqi0UIiwgLyotVCIkKuAAAAICLTdjT6ItN/ItV
-xItMikQLyItV/ItFxIlMkETrZ4tNxANN2A++UQSLRcQDRdiKSASAwQGLRcQDRdiISASF0nUbi03Y
-g+kgugAAAIDT6otFCItIBAvKi1UIiUoEi03Yg+kguAAAAIDT6ItN/ItVxIuMisQAAAALyItV/ItF
-xImMkMQAAACLTeSLVdCJEYtF5ANF0ItN0IlI/ItV+IsCg+gBi034iQGLVfiDOgAPhWEBAACDPbg3
-QgAAD4RDAQAAobA3QgDB4A+LDbg3QgCLUQwD0IlV6GgAQAAAaACAAACLRehQ/xW0UUIAugAAAICL
-DbA3QgDT6qG4N0IAi0gIC8qLFbg3QgCJSgihuDdCAItIEIsVsDdCAMeEkcQAAAAAAAAAobg3QgCL
-SBCKUUOA6gGhuDdCAItIEIhRQ4sVuDdCAItCEA++SEOFyXUUixW4N0IAi0IEJP6LDbg3QgCJQQSL
-Fbg3QgCDegj/D4WSAAAAaACAAABqAKG4N0IAi0gMUf8VtFFCAIsVuDdCAItCEFBqAIsNdDpCAFH/
-FbBRQgCLFbw3QgBr0hShwDdCAAPCiw24N0IAg8EUK8FQixW4N0IAg8IUUqG4N0IAUOiKJwAAg8QM
-iw28N0IAg+kBiQ28N0IAi1UIOxW4N0IAdgmLRQiD6BSJRQiLDcA3QgCJDbQ3QgCLVQiJFbg3QgCL
-RfyjsDdCAIvlXcPMzMxVi+yD7DhWobw3QgBrwBSLDcA3QgADyIlN1ItVCIPCF4Pi8IlV2ItF2MH4
-BIPoAYlF4IN94CB9FIPK/4tN4NPqiVXcx0XM/////+sVx0XcAAAAAItN4IPpIIPI/9PoiUXMiw20
-N0IAiU3oi1XoO1XUcySLReiLTdwjCItV6ItFzCNCBAvIhcl0AusLi03og8EUiU3o69SLVeg7VdQP
-hdsAAAChwDdCAIlF6ItN6DsNtDdCAHMki1Xoi0XcIwKLTeiLVcwjUQQLwoXAdALrC4tF6IPAFIlF
-6OvRi03oOw20N0IAD4WVAAAAi1XoO1XUcxaLReiDeAgAdALrC4tN6IPBFIlN6Ovii1XoO1XUdUmh
-wDdCAIlF6ItN6DsNtDdCAHMWi1Xog3oIAHQC6wuLReiDwBSJRejr34tN6DsNtDdCAHUV6PkDAACJ
-ReiDfegAdQczwOnaAwAAi1XoUujwBAAAg8QEi03oi1EQiQKLReiLSBCDOf91BzPA6bQDAACLVeiJ
-FbQ3QgCLReiLSBCJTciLVciLAolF0IN90P90I4tN0ItVyItF3CNEikSLTdCLVciLdcwjtIrEAAAA
-C8aFwHU1x0XQAAAAAItF0ItNyItV3CNUgUSLRdCLTciLdcwjtIHEAAAAC9aF0nULi1XQg8IBiVXQ
-69KLRdBpwAQCAACLTciNlAFEAQAAiVX8x0XgAAAAAItF0ItNyItV3CNUgUSJVeSDfeQAdRrHReAg
-AAAAi0XQi03Ii1XMI5SBxAAAAIlV5IN95AB8E4tF5NHgiUXki03gg8EBiU3g6+eLVeCLRfyLTNAE
-iU3wi1XwiwIrRdiJRfiLTfjB+QSD6QGJTeyDfew/fgfHRew/AAAAi1XsO1XgD4QYAgAAi0Xwi03w
-i1AEO1EID4XQAAAAg33gIH1fuAAAAICLTeDT6PfQi03Qi1XIi0yKRCPIi1XQi0XIiUyQRItNyANN
-4IpRBIDqAYtFyANF4IhQBItNyANN4A++UQSF0nUYuAAAAICLTeDT6PfQi03oixEj0ItF6IkQ62uL
-TeCD6SC6AAAAgNPq99KLRdCLTciLhIHEAAAAI8KLTdCLVciJhIrEAAAAi0XIA0XgikgEgOkBi1XI
-A1XgiEoEi0XIA0XgD75IBIXJdR2LTeCD6SC6AAAAgNPq99KLReiLSAQjyotV6IlKBItF8ItICItV
-8ItCBIlBBItN8ItRBItF8ItICIlKCIN9+AAPhA4BAACLVeyLRfyNDNCJTfSLVfCLRfSLSASJSgSL
-VfCLRfSJQgiLTfSLVfCJUQSLRfCLSASLVfCJUQiLRfCLTfCLUAQ7UQgPhcYAAACDfewgfVqLRcgD
-RewPvkgEi1XIA1XsikIEBAGLVcgDVeyIQgSFyXUWuAAAAICLTezT6ItN6IsRC9CLReiJELoAAACA
-i03s0+qLRdCLTciLRIFEC8KLTdCLVciJRIpE62aLRcgDRewPvkgEi1XIA1XsikIEBAGLVcgDVeyI
-QgSFyXUbi03sg+kguAAAAIDT6ItN6ItRBAvQi0XoiVAEi03sg+kgugAAAIDT6otF0ItNyIuEgcQA
-AAALwotN0ItVyImEisQAAACDffgAdBSLRfCLTfiJCItV8ANV+ItF+IlC/ItN8ANN+IlN8ItV2IPC
-AYtF8IkQi03Yg8EBi1XwA1XYiUr8i0X8iwiLVfyLAoPAAYtV/IkChcl1IItF6DsFuDdCAHUVi03Q
-Ow2wN0IAdQrHBbg3QgAAAAAAi1XIi0XQiQKLRfCDwARei+Vdw8zMzMzMzMzMzMxVi+xRobw3QgA7
-BaA3QgB1SosNoDdCAIPBEGvJFFGLFcA3QgBSagChdDpCAFD/FeRRQgCJRfyDffwAdQczwOnIAAAA
-i038iQ3AN0IAixWgN0IAg8IQiRWgN0IAobw3QgBrwBSLDcA3QgADyIlN/GjEQQAAagiLFXQ6QgBS
-/xXcUUIAi038iUEQi1X8g3oQAHUEM8DrdmoEaAAgAABoAAAQAGoA/xXgUUIAi038iUEMi1X8g3oM
-AHUai0X8i0gQUWoAixV0OkIAUv8VsFFCADPA6zmLRfzHAAAAAACLTfzHQQQAAAAAi1X8x0II////
-/6G8N0IAg8ABo7w3QgCLTfyLURDHAv////+LRfyL5V3DzFWL7IPsLItFCItIEIlN1ItVCItCCIlF
-+MdF2AAAAACDffgAfBOLTfjR4YlN+ItV2IPCAYlV2Ovni0XYacAEAgAAi03UjZQBRAEAAIlV9MdF
-4AAAAADrCYtF4IPAAYlF4IN94D99IItN4ItV9I0EyolF6ItN6ItV6IlRCItF6ItN6IlIBOvRi1XY
-weIPi0UIi0gMA8qJTfBqBGgAEAAAaACAAACLVfBS/xXgUUIAhcB1CIPI/+kxAQAAi0XwBQBwAACJ
-ReSLTfCJTfzrDItV/IHCABAAAIlV/ItF/DtF5Hddi038x0EI/////4tV/MeC/A8AAP////+LRfyD
-wAyJReiLTejHAfAPAACLVeiBwgAQAACLReiJUASLTeiB6QAQAACLVeiJSgiLRegF7A8AAIlF3ItN
-3McB8A8AAOuPi1X0gcL4AQAAiVXsi0Xwg8AMi03siUEEi1Xsi0IEiUXoi03oi1XsiVEIi0Xkg8AM
-i03siUEIi1Xsi0IIiUXoi03oi1XsiVEEi0XYi03Ux0SBRAAAAACLVdiLRdTHhJDEAAAAAQAAAItN
-1A++UUOLRdSKSEOAwQGLRdSISEOF0nUPi00Ii1EEg8oBi0UIiVAEugAAAICLTdjT6vfSi0UIi0gI
-I8qLVQiJSgiLRdiL5V3DzMxVi+yD7DCLRRCDwBck8IlF5ItNCItREIlV0ItFCItNDCtIDIlN9ItV
-9MHqD4lV/ItF/GnABAIAAItN0I2UAUQBAACJVfiLRQyD6ASJReyLTeyLEYPqAYlV2ItF7ANF2IlF
-1ItN1IsRiVXwi0XkO0XYD46wAgAAi03wg+EBhcl1C4tV2ANV8DlV5H4HM8DpVQUAAItF8MH4BIPo
-AYlF4IN94D92B8dF4D8AAACLTdSLVdSLQQQ7QggPhdAAAACDfeAgc1+6AAAAgItN4NPq99KLRfyL
-TdCLRIFEI8KLTfyLVdCJRIpEi0XQA0XgikgEgOkBi1XQA1XgiEoEi0XQA0XgD75IBIXJdRi6AAAA
-gItN4NPq99KLRQiLCCPKi1UIiQrra4tN4IPpILgAAACA0+j30ItN/ItV0IuMisQAAAAjyItV/ItF
-0ImMkMQAAACLTdADTeCKUQSA6gGLRdADReCIUASLTdADTeAPvlEEhdJ1HYtN4IPpILgAAACA0+j3
-0ItNCItRBCPQi0UIiVAEi03Ui1EIi0XUi0gEiUoEi1XUi0IEi03Ui1EIiVAIi0XYA0XwK0XkiUXw
-g33wAA+ORgEAAItN7ANN5IlN1ItV8MH6BIPqAYlV4IN94D92B8dF4D8AAACLReCLTfiNFMGJVeiL
-RdSLTeiLUQSJUASLRdSLTeiJSAiLVeiLRdSJQgSLTdSLUQSLRdSJQgiLTdSLVdSLQQQ7QggPhcgA
-AACDfeAgc1uLTdADTeAPvlEEi0XQA0XgikgEgMEBi0XQA0XgiEgEhdJ1FroAAACAi03g0+qLRQiL
-CAvKi1UIiQq4AAAAgItN4NPoi038i1XQi0yKRAvIi1X8i0XQiUyQROtni03QA03gD75RBItF0ANF
-4IpIBIDBAYtF0ANF4IhIBIXSdRuLTeCD6SC6AAAAgNPqi0UIi0gEC8qLVQiJSgSLTeCD6SC4AAAA
-gNPoi038i1XQi4yKxAAAAAvIi1X8i0XQiYyQxAAAAItN1ItV8IkRi0XUA0Xwi03wiUj8i1Xkg8IB
-i0XsiRCLTeSDwQGLVewDVeSJSvzpvAIAAItF5DtF2A+NsAIAAItN5IPBAYtV7IkKi0Xkg8ABi03s
-A03kiUH8i1XsA1XkiVXsi0XYK0XkiUXYi03YwfkEg+kBiU3cg33cP3YHx0XcPwAAAItV8IPiAYXS
-D4U7AQAAi0XwwfgEg+gBiUXgg33gP3YHx0XgPwAAAItN1ItV1ItBBDtCCA+F0AAAAIN94CBzX7oA
-AACAi03g0+r30otF/ItN0ItEgUQjwotN/ItV0IlEikSLRdADReCKSASA6QGLVdADVeCISgSLRdAD
-ReAPvkgEhcl1GLoAAACAi03g0+r30otFCIsII8qLVQiJCutri03gg+kguAAAAIDT6PfQi038i1XQ
-i4yKxAAAACPIi1X8i0XQiYyQxAAAAItN0ANN4IpRBIDqAYtF0ANF4IhQBItN0ANN4A++UQSF0nUd
-i03gg+kguAAAAIDT6PfQi00Ii1EEI9CLRQiJUASLTdSLUQiLRdSLSASJSgSLVdSLQgSLTdSLUQiJ
-UAiLRdgDRfCJRdiLTdjB+QSD6QGJTdyDfdw/dgfHRdw/AAAAi1Xci0X4jQzQiU3oi1Xsi0Xoi0gE
-iUoEi1Xsi0XoiUIIi03oi1XsiVEEi0Xsi0gEi1XsiVEIi0Xsi03si1AEO1EID4XGAAAAg33cIHNa
-i0XQA0XcD75IBItV0ANV3IpCBAQBi1XQA1XciEIEhcl1FrgAAACAi03c0+iLTQiLEQvQi0UIiRC6
-AAAAgItN3NPqi0X8i03Qi0SBRAvCi038i1XQiUSKROtmi0XQA0XcD75IBItV0ANV3IpCBAQBi1XQ
-A1XciEIEhcl1G4tN3IPpILgAAACA0+iLTQiLUQQL0ItFCIlQBItN3IPpILoAAACA0+qLRfyLTdCL
-hIHEAAAAC8KLTfyLVdCJhIrEAAAAi0Xsi03YiQiLVewDVdiLRdiJQvy4AQAAAIvlXcPMzMzMzFWL
-7FGDPbg3QgAAD4QbAQAAobA3QgDB4A+LDbg3QgCLUQwD0IlV/GgAQAAAaACAAACLRfxQ/xW0UUIA
-ugAAAICLDbA3QgDT6qG4N0IAi0gIC8qLFbg3QgCJSgihuDdCAItIEIsVsDdCAMeEkcQAAAAAAAAA
-obg3QgCLSBCKUUOA6gGhuDdCAItIEIhRQ4sVuDdCAItCEA++SEOFyXUUixW4N0IAi0IEJP6LDbg3
-QgCJQQSLFbg3QgCDegj/dWSDPbw3QgABfluhuDdCAItIEFFqAIsVdDpCAFL/FbBRQgChvDdCAGvA
-FIsNwDdCAAPIixW4N0IAg8IUK8pRobg3QgCDwBRQiw24N0IAUegAGAAAg8QMixW8N0IAg+oBiRW8
-N0IAxwW4N0IAAAAAAIvlXcNVi+yB7GgBAAChvDdCAGvAFFCLDcA3QgBR/xW8UUIAhcB0CIPI/+nu
-BQAAixXAN0IAiZXE/v//x4Xg/v//AAAAAOsPi4Xg/v//g8ABiYXg/v//i43g/v//Ow28N0IAD42z
-BQAAi5XE/v//i0IQiYWg/v//aMRBAACLjaD+//9R/xW8UUIAhcB0Crj+////6YYFAACLlcT+//+L
-QgyJhdj+//+LjaD+//+BwUQBAACJTeiLlcT+//+LQgiJRfzHhbz+//8AAAAAx4Wo/v//AAAAAMdF
-9AAAAADrCYtN9IPBAYlN9IN99CAPje4EAADHheT+//8AAAAAx4Ww/v//AAAAAMeF1P7//wAAAADH
-hbT+//8AAAAA6w+LlbT+//+DwgGJlbT+//+DvbT+//9AfROLhbT+///HhIXo/v//AAAAAOvVg338
-AA+MMQQAAGgAgAAAi43Y/v//Uf8VvFFCAIXAdAq4/P///+mtBAAAi5XY/v//iVX4x4XA/v//AAAA
-AOsPi4XA/v//g8ABiYXA/v//g73A/v//CA+NdwEAAItN+IPBDImN0P7//4uV0P7//4HC8A8AAImV
-yP7//4uF0P7//4N4/P91C4uNyP7//4M5/3QKuPv////pPQQAAIuV0P7//4sCiYW4/v//i424/v//
-iY2s/v//i5Ws/v//g+IBhdJ0NouFuP7//4PoAYmFuP7//4G9uP7//wAEAAB+Crj6////6fEDAACL
-jdT+//+DwQGJjdT+///rQouVuP7//8H6BIPqAYmVtP7//4O9tP7//z9+CseFtP7//z8AAACLhbT+
-//+LjIXo/v//g8EBi5W0/v//iYyV6P7//4O9uP7//xB8GYuFuP7//4PgD4XAdQyBvbj+///wDwAA
-fgq4+f///+lyAwAAi43Q/v//A424/v//i1H8O5Ws/v//dAq4+P///+lRAwAAi4XQ/v//A4W4/v//
-iYXQ/v//i43Q/v//O43I/v//D4Lw/v//i5XQ/v//O5XI/v//dAq4+P///+kVAwAAi0X4BQAQAACJ
-Rfjpbf7//4tN6IsRO5XU/v//dAq49////+nuAgAAi0XoiYXM/v//x0XsAAAAAOsJi03sg8EBiU3s
-g33sQA+NLQIAAMeFmP7//wAAAACLlcz+//+JldD+//+LhdD+//+LSASJjaT+//+LlaT+//87lcz+
-//8PhCMBAACLReyLjZj+//87jIXo/v//D4QNAQAAi5Wk/v//O5XY/v//chOLhdj+//8FAIAAADmF
-pP7//3IKuPb////pUQIAAIuNpP7//4HhAPD//4mNnP7//4uVnP7//4PCDIlV8ItF8AXwDwAAiYXc
-/v//i03wO43c/v//dB+LVfA7laT+//91AusSi0XwiwiD4f6LVfAD0YlV8OvWi0XwO4Xc/v//dQq4
-9f///+nmAQAAi42k/v//ixHB+gSD6gGJlbT+//+DvbT+//8/fgrHhbT+//8/AAAAi4W0/v//O0Xs
-dAq49P///+mqAQAAi42k/v//i1EIO5XQ/v//dAq48////+mPAQAAi4Wk/v//iYXQ/v//i42Y/v//
-g8EBiY2Y/v//6bz+//+DvZj+//8AdG6DfewgfTK6AAAAgItN7NPqi4Xk/v//C8KJheT+//+6AAAA
-gItN7NPqi4W8/v//C8KJhbz+///rNotN7IPpILoAAACA0+qLhbD+//8LwomFsP7//4tN7IPpILoA
-AACA0+qLhaj+//8LwomFqP7//4uN0P7//4tRBDuVzP7//3USi0Xsi42Y/v//O4yF6P7//3QKuPL/
-///pywAAAIuVzP7//4tCCDuF0P7//3QKuPH////psAAAAIuNzP7//4PBCImNzP7//+nA/f//i1X0
-i4Wg/v//i43k/v//O0yQRHUYi1X0i4Wg/v//i42w/v//O4yQxAAAAHQHuPD////raIuV2P7//4HC
-AIAAAImV2P7//4tF6AUEAgAAiUXoi0380eGJTfzp//r//4uVxP7//4uFvP7//zsCdRGLjcT+//+L
-laj+//87UQR0B7jv////6xaLhcT+//+DwBSJhcT+///pLPr//zPAi+Vdw8zMzFWL7FGhdDdCAIlF
-/ItNCIkNdDdCAItF/IvlXcPMzMzMVYvsoXQ3QgBdw8zMzMzMzFWL7FGhdDdCAIlF/IN9/AB0DotN
-CFH/VfyDxASFwHUEM8DrBbgBAAAAi+Vdw8zMzItUJAyLTCQEhdJ0RzPAikQkCFeL+YP6BHIt99mD
-4QN0CCvRiAdHSXX6i8jB4AgDwYvIweAQA8GLyoPiA8HpAnQG86uF0nQGiAdHSnX6i0QkCF/Di0Qk
-BMPMzMzMzMzMzFWL7KFwN0IAUItNCFHoDgAAAIPECF3DzMzMzMzMzMzMVYvsUYN9COB2BDPA60WD
-fQjgdxGLRQhQ6EMAAACDxASJRfzrB8dF/AAAAACDffwAdQaDfQwAdQWLRfzrFotNCFHoCv///4PE
-BIXAdQQzwOsC67uL5V3DzMzMzMzMzMzMVYvsUYtFCDsFcDFCAHcai00IUego6f//g8QEiUX8g338
-AHQFi0X86yyDfQgAdQfHRQgBAAAAi1UIg8IPg+LwiVUIi0UIUGoAiw10OkIAUf8V3FFCAIvlXcPM
-zMzMzMzMVYvsuAEAAABdw8zMzMzMzFWL7IPsCIN9DOB2BDPA63iLRQhQ6Cfi//+DxASJRfiDffgA
-dDXHRfwAAAAAi00MOw1wMUIAdx6LVQxSi0UIUItN+FHoyPD//4PEDIXAdAaLVQiJVfyLRfzrLoN9
-DAB1B8dFDAEAAACLRQyDwA8k8IlFDItNDFGLVQhSahChdDpCAFD/FeRRQgCL5V3DzMzMzFWL7IPs
-FIN9CAB1EYtFDFDoa/7//4PEBOmrAQAAg30MAHUTi00IUeikAQAAg8QEM8DpkgEAAMdF+AAAAACD
-fQzgD4dUAQAAi1UIUuhg4f//g8QEiUX0g330AA+ECAEAAItFDDsFcDFCAHd7i00MUYtVCFKLRfRQ
-6ATw//+DxAyFwHQIi00IiU3461uLVQxS6Kzn//+DxASJRfiDffgAdEaLRQiLSPyD6QGJTfyLVfw7
-VQxzCItF/IlF8OsGi00MiU3wi1XwUotFCFCLTfhR6A3d//+DxAyLVQhSi0X0UOiN4f//g8QIg334
-AHV6g30MAHUHx0UMAQAAAItNDIPBD4Ph8IlNDItVDFJqAKF0OkIAUP8V3FFCAIlF+IN9+AB0RotN
-CItR/IPqAYlV/ItF/DtFDHMIi038iU3s6waLVQyJVeyLRexQi00IUYtV+FLojdz//4PEDItFCFCL
-TfRR6A3h//+DxAjrM4N9DAB1B8dFDAEAAACLVQyDwg+D4vCJVQyLRQxQi00IUWoAixV0OkIAUv8V
-5FFCAIlF+IN9+AB1CYM9cDdCAAB1BYtF+OsZi0UMUOg4/P//g8QEhcB1BDPA6wXpbv7//4vlXcPM
-zMzMVYvsUYN9CAB1Aus6i0UIUOjL3///g8QEiUX8g338AHQSi00IUYtV/FLocuD//4PECOsTi0UI
-UGoAiw10OkIAUf8VsFFCAIvlXcPMzMzMzMxVi+xRx0X8/v///+hw9f//hcB9B8dF/Pz///9qAGoA
-oXQ6QgBQ/xXEUUIAhcB1KP8VyFFCAIP4eHUWxwXcNUIAeAAAAMcF2DVCACgAAADrB8dF/Pz///+L
-RfyL5V3DzMxVi+zomP///13DzMzMzMzMVYvsg+wwU1ZXjUXgiUXcjU0QiU3Ug30IAHUeaCgPQgBq
-AGpdaBwPQgBqAujAhf//g8QUg/gBdQHMM9KF0nXWg30MAHUeaKAAQgBqAGpeaBwPQgBqAuiWhf//
-g8QUg/gBdQHMM8CFwHXWi03cx0EMQgAAAItV3ItFCIlCCItN3ItVCIkRi0Xcx0AE////f4tN1FGL
-VQxSi0XcUOhRdP//g8QMiUXYi03ci1EEg+oBi0XciVAEi03cg3kEAHwii1XciwLGAAAzyYHh/wAA
-AIlN0ItV3IsCg8ABi03ciQHrEYtV3FJqAOh2w///g8QIiUXQi0XYX15bi+Vdw8zMzMzMzFWL7IPs
-DItFCIPAAT0AAQAAdxeLTQiLFWAuQgAzwGaLBEojRQzpiQAAAItNCMH5CIHh/wAAAIHh/wAAAIsV
-YC5CADPAZosESiUAgAAAhcB0IotNCMH5CIHh/wAAAIhN9IpVCIhV9cZF9gDHRfgCAAAA6xGKRQiI
-RfTGRfUAx0X4AQAAAGoBagBqAI1N/FGLVfhSjUX0UGoB6JMJAACDxByFwHUEM8DrC4tF/CX//wAA
-I0UMi+Vdw8zMzMzMzMzMzFWL7FGLRQg7Bbw7QgBzH4tNCMH5BYtVCIPiH4sEjYA6QgAPvkzQBIPh
-AYXJdQ/HBdg1QgAJAAAAg8j/622LVQjB+gWLRQiD4B+LDJWAOkIAD75UwQSD4gGF0nQ6i0UIUOi7
-EAAAg8QEUP8V6FFCAIXAdQv/FchRQgCJRfzrB8dF/AAAAACDffwAdQLrGotN/IkN3DVCAMcF2DVC
-AAkAAADHRfz/////i0X8i+Vdw8zMVYvsgewgBAAAi0UIOwW8O0IAcx+LTQjB+QWLVQiD4h+LBI2A
-OkIAD75M0ASD4QGFyXUcxwXYNUIACQAAAMcF3DVCAAAAAACDyP/pTwIAAMdF8AAAAACLVfCJleD7
-//+DfRAAdQczwOkyAgAAi0UIwfgFi00Ig+EfixSFgDpCAA++RMoEg+AghcB0EGoCagCLTQhR6CgC
-AACDxAyLVQjB+gWLRQiD4B+LDJWAOkIAD75UwQSB4oAAAACF0g+ECAEAAItFDIlF/MdF9AAAAACL
-TfwrTQw7TRAPg+oAAACNlez7//+JVfiLRfiNjez7//8rwT0ABAAAfV+LVfwrVQw7VRBzVItF/IoI
-iI3k+///i1X8g8IBiVX8D76F5Pv//4P4CnUei43g+///g8EBiY3g+///i1X4xgINi0X4g8ABiUX4
-i034ipXk+///iBGLRfiDwAGJRfjrj2oAjY3o+///UYtV+I2F7Pv//yvQUo2N7Pv//1GLVQjB+gWL
-RQiD4B+LDJWAOkIAixTBUv8VZFFCAIXAdCOLRfADhej7//+JRfCLTfiNlez7//8ryjmN6Pv//30C
-6xLrC/8VyFFCAIlF9OsF6Qf////rTWoAjYXo+///UItNEFGLVQxSi0UIwfgFi00Ig+EfixSFgDpC
-AIsEylD/FWRRQgCFwHQSx0X0AAAAAIuN6Pv//4lN8OsJ/xXIUUIAiUX0g33wAHV5g330AHQsg330
-BXUVxwXYNUIACQAAAItV9IkV3DVCAOsMi0X0UOh6DwAAg8QEg8j/61CLTQjB+QWLVQiD4h+LBI2A
-OkIAD75M0ASD4UCFyXQPi1UMD74Cg/gadQQzwOsixwXYNUIAHAAAAMcF3DVCAAAAAACDyP/rCYtF
-8CuF4Pv//4vlXcPMzMzMzMzMzMzMzMzMzFWL7GoC6EZt//+DxARdw8xVi+yD7AyLRQg7Bbw7QgBz
-H4tNCMH5BYtVCIPiH4sEjYA6QgAPvkzQBIPhAYXJdRzHBdg1QgAJAAAAxwXcNUIAAAAAAIPI/+me
-AAAAi1UIUuhbDQAAg8QEiUX0g330/3UPxwXYNUIACQAAAIPI/+t6i0UQUGoAi00MUYtV9FL/FexR
-QgCJRfiDffj/dQv/FchRQgCJRfzrB8dF/AAAAACDffwAdBGLRfxQ6FIOAACDxASDyP/rNItNCMH5
-BYtVCIPiH4sEjYA6QgCKTNAEgOH9i1UIwfoFi0UIg+AfixSVgDpCAIhMwgSLRfiL5V3DzMxVi+xR
-U1ZXg30IAHUeaLgBQgBqAGouaHQPQgBqAuiuf///g8QUg/gBdQHMM8CFwHXWiw3QNUIAg8EBiQ3Q
-NUIAi1UIiVX8ajtodA9CAGoCaAAQAADoJ5v//4PEEItN/IlBCItV/IN6CAB0G4tF/ItIDIPJCItV
-/IlKDItF/MdAGAAQAADrJYtN/ItRDIPKBItF/IlQDItN/IPBFItV/IlKCItF/MdAGAIAAACLTfyL
-VfyLQgiJAYtN/MdBBAAAAABfXluL5V3DzMzMzMzMzMzMVYvsg+wIU1ZXx0X8/////4tFCIlF+ItN
-+ItRDIPiQIXSdBKLRfjHQAwAAAAAg8j/6aEAAACDfQgAdR5ouAFCAGoAandogA9CAGoC6LB+//+D
-xBSD+AF1AcwzyYXJddaLVfiLQgwlgwAAAIXAdFuLTfhR6Dm5//+DxASJRfyLVfhS6DoOAACDxASL
-RfiLSBBR6DsNAACDxASFwH0Jx0X8/////+ski1X4g3ocAHQbagKLRfiLSBxR6DSk//+DxAiLVfjH
-QhwAAAAAi0X4x0AMAAAAAItF/F9eW4vlXcPMzMxVi+xq/2iYD0IAaHRAQABkoQAAAABQZIklAAAA
-AIPE3FNWV4ll6IM9mDdCAAB1V2oAagBqAWiQD0IAaAABAABqAP8V+FFCAIXAdAzHBZg3QgABAAAA
-6y9qAGoAagFojA9CAGgAAQAAagD/FfRRQgCFwHQMxwWYN0IAAgAAAOsHM8DpawIAAIN9FAB+E4tF
-FFCLTRBR6HcCAACDxAiJRRSDPZg3QgACdSOLVRxSi0UYUItNFFGLVRBSi0UMUItNCFH/FfRRQgDp
-JgIAAIM9mDdCAAEPhRcCAACDfSAAdQmLFZA3QgCJVSBqAGoAi0UUUItNEFGLVST32hvSg+IIg8IB
-UotFIFD/FfBRQgCJReSDfeQAdQczwOnWAQAAx0X8AAAAAItF5NHgg8ADJPzob8T//4ll0Ill6ItN
-0IlN3MdF/P/////rF7gBAAAAw4tl6MdF3AAAAADHRfz/////g33cAHUHM8DphwEAAItV5FKLRdxQ
-i00UUYtVEFJqAYtFIFD/FfBRQgCFwHUHM8DpYAEAAGoAagCLTeRRi1XcUotFDFCLTQhR/xX4UUIA
-iUXYg33YAHUHM8DpNgEAAItVDIHiAAQAAIXSdEODfRwAdDiLRdg7RRx+BzPA6RQBAACLTRxRi1UY
-UotF5FCLTdxRi1UMUotFCFD/FfhRQgCFwHUHM8Dp6wAAAOnfAAAAi03YiU3Ux0X8AQAAAItF1NHg
-g8ADJPzoecP//4llzIll6ItVzIlV4MdF/P/////rF7gBAAAAw4tl6MdF4AAAAADHRfz/////g33g
-AHUHM8DpkQAAAItF1FCLTeBRi1XkUotF3FCLTQxRi1UIUv8V+FFCAIXAdQQzwOtrg30cAHUuagBq
-AGoAagCLRdRQi03gUWggAgAAi1UgUv8VkFFCAIlF2IN92AB1BDPA6znrMGoAagCLRRxQi00YUYtV
-1FKLReBQaCACAACLTSBR/xWQUUIAiUXYg33YAHUEM8DrB4tF2OsCM8CNZcCLTfBkiQ0AAAAAX15b
-i+Vdw8zMzMzMzMzMzMzMVYvsg+wIi0UMiUX4i00IiU38i1X4i0X4g+gBiUX4hdJ0FYtN/A++EYXS
-dAuLRfyDwAGJRfzr24tN/A++EYXSdQiLRfwrRQjrA4tFDIvlXcNVi+xq/2iwD0IAaHRAQABkoQAA
-AABQZIklAAAAAIPE5FNWV4ll6IM9nDdCAAB1T41F5FBqAWiQD0IAagH/FQBSQgCFwHQMxwWcN0IA
-AQAAAOssjU3kUWoBaIwPQgBqAWoA/xX8UUIAhcB0DMcFnDdCAAIAAADrBzPA6SoBAACDPZw3QgAC
-dS6DfRwAdQmLFYA3QgCJVRyLRRRQi00QUYtVDFKLRQhQi00cUf8V/FFCAOnzAAAAgz2cN0IAAQ+F
-5AAAAIN9GAB1CYsVkDdCAIlVGGoAagCLRRBQi00MUYtVIPfaG9KD4giDwgFSi0UYUP8V8FFCAIlF
-4IN94AB1BzPA6aMAAADHRfwAAAAAi0Xg0eCDwAMk/Oglwf//iWXUiWXoi03UiU3ci1Xg0eJSagCL
-RdxQ6Cjv//+DxAzHRfz/////6xe4AQAAAMOLZejHRdwAAAAAx0X8/////4N93AB1BDPA60OLTeBR
-i1XcUotFEFCLTQxRagGLVRhS/xXwUUIAiUXYg33YAHUEM8DrGotFFFCLTdhRi1XcUotFCFD/FQBS
-QgDrAjPAjWXIi03wZIkNAAAAAF9eW4vlXcPMzMzMVYvsV1aLdQyLTRCLfQiLwYvRA8Y7/nYIO/gP
-gngBAAD3xwMAAAB1FMHpAoPiA4P5CHIp86X/JJVosEAAi8e6AwAAAIPpBHIMg+ADA8j/JIWAr0AA
-/ySNeLBAAJD/JI38r0AAkJCvQAC8r0AA4K9AACPRigaIB4pGAYhHAYpGAsHpAohHAoPGA4PHA4P5
-CHLM86X/JJVosEAAjUkAI9GKBogHikYBwekCiEcBg8YCg8cCg/kIcqbzpf8klWiwQACQI9GKBogH
-RsHpAkeD+QhyjPOl/ySVaLBAAI1JAF+wQABMsEAARLBAADywQAA0sEAALLBAACSwQAAcsEAAi0SO
-5IlEj+SLRI7oiUSP6ItEjuyJRI/si0SO8IlEj/CLRI70iUSP9ItEjviJRI/4i0SO/IlEj/yNBI0A
-AAAAA/AD+P8klWiwQACL/3iwQACAsEAAjLBAAKCwQACLRQheX8nDkIoGiAeLRQheX8nDkIoGiAeK
-RgGIRwGLRQheX8nDjUkAigaIB4pGAYhHAYpGAohHAotFCF5fycOQjXQx/I18Ofz3xwMAAAB1JMHp
-AoPiA4P5CHIN/fOl/P8klQCyQACL//fZ/ySNsLFAAI1JAIvHugMAAACD+QRyDIPgAyvI/ySFCLFA
-AP8kjQCyQACQGLFAADixQABgsUAAikYDI9GIRwNOwekCT4P5CHK2/fOl/P8klQCyQACNSQCKRgMj
-0YhHA4pGAsHpAohHAoPuAoPvAoP5CHKM/fOl/P8klQCyQACQikYDI9GIRwOKRgKIRwKKRgHB6QKI
-RwGD7gOD7wOD+QgPglr////986X8/ySVALJAAI1JALSxQAC8sUAAxLFAAMyxQADUsUAA3LFAAOSx
-QAD3sUAAi0SOHIlEjxyLRI4YiUSPGItEjhSJRI8Ui0SOEIlEjxCLRI4MiUSPDItEjgiJRI8Ii0SO
-BIlEjwSNBI0AAAAAA/AD+P8klQCyQACL/xCyQAAYskAAKLJAADyyQACLRQheX8nDkIpGA4hHA4tF
-CF5fycONSQCKRgOIRwOKRgKIRwKLRQheX8nDkIpGA4hHA4pGAohHAopGAYhHAYtFCF5fycPMzMzM
-zMzMzMzMzFWL7IPsDMdF+P/////HRfQAAAAA6wmLRfSDwAGJRfSDffRAD439AAAAi030gzyNgDpC
-AAB0b4tV9IsElYA6QgCJRfzrCYtN/IPBCIlN/ItV9IsElYA6QgAFAAEAADlF/HM2i038D75RBIPi
-AYXSdSaLRfzHAP////+LTfTB4QWLVfSLRfwrBJWAOkIAwfgDA8iJTfjrAuutg334/3QF6YMAAADr
-fGp5aLwPQgBqAmgAAQAA6LiQ//+DxBCJRfyDffwAdFuLTfSLVfyJFI2AOkIAobw7QgCDwCCjvDtC
-AOsJi038g8EIiU38i1X0iwSVgDpCAAUAAQAAOUX8cxmLTfzGQQQAi1X8xwL/////i0X8xkAFCuvK
-i030weEFiU346wXp8P7//4tF+IvlXcPMzMxVi+xRi0UIOwW8O0IAD4OBAAAAi00IwfkFi1UIg+If
-iwSNgDpCAIM80P91aIM9NCpCAAF1QotNCIlN/IN9/AB0DoN9/AF0FoN9/AJ0Husoi1UMUmr2/xUE
-UkIA6xqLRQxQavX/FQRSQgDrDItNDFFq9P8VBFJCAItVCMH6BYtFCIPgH4sMlYA6QgCLVQyJFMEz
-wOsXxwXYNUIACQAAAMcF3DVCAAAAAACDyP+L5V3DzFWL7FGLRQg7Bbw7QgAPg5sAAACLTQjB+QWL
-VQiD4h+LBI2AOkIAD75M0ASD4QGFyXR8i1UIwfoFi0UIg+AfiwyVgDpCAIM8wf90Y4M9NCpCAAF1
-PItVCIlV/IN9/AB0DoN9/AF0FIN9/AJ0GusiagBq9v8VBFJCAOsWagBq9f8VBFJCAOsKagBq9P8V
-BFJCAItFCMH4BYtNCIPhH4sUhYA6QgDHBMr/////M8DrF8cF2DVCAAkAAADHBdw1QgAAAAAAg8j/
-i+Vdw8zMzMzMzMxVi+yLRQg7Bbw7QgBzN4tNCMH5BYtVCIPiH4sEjYA6QgAPvkzQBIPhAYXJdBiL
-VQjB+gWLRQiD4B+LDJWAOkIAiwTB6xfHBdg1QgAJAAAAxwXcNUIAAAAAAIPI/13DzMxVi+yD7AzG
-RfQAi0UMg+AIhcB0CYpN9IDJIIhN9ItVDIHiAEAAAIXSdAiKRfQMgIhF9ItNDIHhgAAAAIXJdAmK
-VfSAyhCIVfSLRQhQ/xWgUUIAiUX8g338AHUU/xXIUUIAUOiJAAAAg8QEg8j/632DffwCdQuKTfSA
-yUCITfTrD4N9/AN1CYpV9IDKCIhV9Ohc/P//iUX4g334/3UZxwXYNUIAGAAAAMcF3DVCAAAAAACD
-yP/rNotFCFCLTfhR6F39//+DxAiKVfSAygGIVfSLRfjB+AWLTfiD4R+LFIWAOkIAikX0iETKBItF
-+IvlXcNVi+xRi0UIo9w1QgDHRfwAAAAA6wmLTfyDwQGJTfyDffwtcyOLVfyLRQg7BNWQMUIAdRKL
-TfyLFM2UMUIAiRXYNUIA60LrzoN9CBNyEoN9CCR3DMcF2DVCAA0AAADrKIF9CLwAAAByFYF9CMoA
-AAB3DMcF2DVCAAgAAADrCscF2DVCABYAAACL5V3DzMzMzMxVi+xRVotFCDsFvDtCAHMfi00IwfkF
-i1UIg+IfiwSNgDpCAA++TNAEg+EBhcl1HMcF2DVCAAkAAADHBdw1QgAAAAAAg8j/6Z0AAACLVQhS
-6Mz9//+DxASD+P90PYN9CAF0BoN9CAJ1GmoB6LH9//+DxASL8GoC6KX9//+DxAQ78HQXi0UIUOiV
-/f//g8QEUP8VCFJCAIXAdAnHRfwAAAAA6wn/FchRQgCJRfyLTQhR6Jz8//+DxASLVQjB+gWLRQiD
-4B+LDJWAOkIAxkTBBACDffwAdBGLVfxS6JL+//+DxASDyP/rAjPAXovlXcPMzMxVi+xTVleDfQgA
-dR5o1A9CAGoAajBoyA9CAGoC6B9w//+DxBSD+AF1AcwzwIXAddaLTQiLUQyB4oMAAACF0nRNi0UI
-i0gMg+EIhcl0QGoCi1UIi0IIUOjVlf//g8QIi00Ii1EMgeL3+///i0UIiVAMi00IxwEAAAAAi1UI
-x0IIAAAAAItFCMdABAAAAABfXltdw/8lUFFCAP8lVFFCAP8lWFFCAP8lXFFCAP8lYFFCAP8lZFFC
-AP8laFFCAP8lbFFCAP8lcFFCAP8ldFFCAP8leFFCAP8lfFFCAP8lgFFCAP8lhFFCAP8liFFCAP8l
-jFFCAP8lkFFCAP8llFFCAP8lmFFCAP8lnFFCAP8loFFCAP8lpFFCAP8lqFFCAP8lrFFCAP8lsFFC
-AP8ltFFCAP8luFFCAP8lvFFCAP8lwFFCAP8lxFFCAP8lyFFCAP8lzFFCAP8l0FFCAP8l1FFCAP8l
-2FFCAP8l3FFCAP8l4FFCAP8l5FFCAP8l6FFCAP8l7FFCAP8l8FFCAP8l9FFCAP8l+FFCAP8l/FFC
-AP8lAFJCAP8lBFJCAP8lCFJCAMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzM
-zMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMzMwAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEakrUAAAAAACAAAALAAAAAAAAAAAYAIA
-bWluX3JlcyA9ICVkLCBtYXhfcmVzID0gJWQsIGN1cl9yZXMgPSAlZAoAAAAAAAAAAAAAAE50UXVl
-cnlUaW1lclJlc29sdXRpb24AAAAAAABOdFNldFRpbWVyUmVzb2x1dGlvbgAAAAAAAAAAbnRkbGwu
-ZGxsAAAAcHJpbnRmLmMAAAAAZm9ybWF0ICE9IE5VTEwAAGkzODZcY2hrZXNwLmMAAAAAAAAAVGhl
-IHZhbHVlIG9mIEVTUCB3YXMgbm90IHByb3Blcmx5IHNhdmVkIGFjcm9zcyBhIGZ1bmN0aW9uIGNh
-bGwuICBUaGlzIGlzIHVzdWFsbHkgYSByZXN1bHQgb2YgY2FsbGluZyBhIGZ1bmN0aW9uIGRlY2xh
-cmVkIHdpdGggb25lIGNhbGxpbmcgY29udmVudGlvbiB3aXRoIGEgZnVuY3Rpb24gcG9pbnRlciBk
-ZWNsYXJlZCB3aXRoIGEgZGlmZmVyZW50IGNhbGxpbmcgY29udmVudGlvbi4gAP////9oFEAAgxRA
-AF9zZnRidWYuYwAAAHN0ciAhPSBOVUxMAGZsYWcgPT0gMCB8fCBmbGFnID09IDEAAAYAAAYAAQAA
-EAADBgAGAhAERUVFBQUFBQU1MABQAAAAACAoOFBYBwgANzAwV1AHAAAgIAgAAAAACGBoYGBgYAAA
-cHB4eHh4CAcIAAAHAAgICAAACAAIAAcIAAAAKABuAHUAbABsACkAAAAAAChudWxsKQAAb3V0cHV0
-LmMAAAAAY2ggIT0gX1QoJ1wwJykAAF9maWxlLmMAQXNzZXJ0aW9uIEZhaWxlZAAAAABFcnJvcgAA
-AFdhcm5pbmcAJXMoJWQpIDogJXMACgAAAA0AAABBc3NlcnRpb24gZmFpbGVkIQAAAEFzc2VydGlv
-biBmYWlsZWQ6IAAAX0NydERiZ1JlcG9ydDogU3RyaW5nIHRvbyBsb25nIG9yIElPIEVycm9yAABT
-ZWNvbmQgQ2hhbmNlIEFzc2VydGlvbiBGYWlsZWQ6IEZpbGUgJXMsIExpbmUgJWQKAAAAd3Nwcmlu
-dGZBAAAAdXNlcjMyLmRsbAAATWljcm9zb2Z0IFZpc3VhbCBDKysgRGVidWcgTGlicmFyeQAARGVi
-dWcgJXMhCgpQcm9ncmFtOiAlcyVzJXMlcyVzJXMlcyVzJXMlcyVzCgooUHJlc3MgUmV0cnkgdG8g
-ZGVidWcgdGhlIGFwcGxpY2F0aW9uKQAACk1vZHVsZTogAAAACkZpbGU6IAAKTGluZTogAAoKAABF
-eHByZXNzaW9uOiAAAAAACgpGb3IgaW5mb3JtYXRpb24gb24gaG93IHlvdXIgcHJvZ3JhbSBjYW4g
-Y2F1c2UgYW4gYXNzZXJ0aW9uCmZhaWx1cmUsIHNlZSB0aGUgVmlzdWFsIEMrKyBkb2N1bWVudGF0
-aW9uIG9uIGFzc2VydHMuAAAuLi4APHByb2dyYW0gbmFtZSB1bmtub3duPgAAZGJncnB0LmMAAAAA
-c3pVc2VyTWVzc2FnZSAhPSBOVUxMAAAAc3RkZW52cC5jAAAAc3RkYXJndi5jAAAAYV9lbnYuYwBp
-b2luaXQuYwAAAABydW50aW1lIGVycm9yIAAADQoAAFRMT1NTIGVycm9yDQoAAABTSU5HIGVycm9y
-DQoAAAAARE9NQUlOIGVycm9yDQoAAFI2MDI4DQotIHVuYWJsZSB0byBpbml0aWFsaXplIGhlYXAN
-CgAAAABSNjAyNw0KLSBub3QgZW5vdWdoIHNwYWNlIGZvciBsb3dpbyBpbml0aWFsaXphdGlvbg0K
-AAAAAFI2MDI2DQotIG5vdCBlbm91Z2ggc3BhY2UgZm9yIHN0ZGlvIGluaXRpYWxpemF0aW9uDQoA
-AAAAUjYwMjUNCi0gcHVyZSB2aXJ0dWFsIGZ1bmN0aW9uIGNhbGwNCgAAAFI2MDI0DQotIG5vdCBl
-bm91Z2ggc3BhY2UgZm9yIF9vbmV4aXQvYXRleGl0IHRhYmxlDQoAAAAAUjYwMTkNCi0gdW5hYmxl
-IHRvIG9wZW4gY29uc29sZSBkZXZpY2UNCgAAAABSNjAxOA0KLSB1bmV4cGVjdGVkIGhlYXAgZXJy
-b3INCgAAAABSNjAxNw0KLSB1bmV4cGVjdGVkIG11bHRpdGhyZWFkIGxvY2sgZXJyb3INCgAAAABS
-NjAxNg0KLSBub3QgZW5vdWdoIHNwYWNlIGZvciB0aHJlYWQgZGF0YQ0KAA0KYWJub3JtYWwgcHJv
-Z3JhbSB0ZXJtaW5hdGlvbg0KAAAAAFI2MDA5DQotIG5vdCBlbm91Z2ggc3BhY2UgZm9yIGVudmly
-b25tZW50DQoAUjYwMDgNCi0gbm90IGVub3VnaCBzcGFjZSBmb3IgYXJndW1lbnRzDQoAAABSNjAw
-Mg0KLSBmbG9hdGluZyBwb2ludCBub3QgbG9hZGVkDQoAAAAATWljcm9zb2Z0IFZpc3VhbCBDKysg
-UnVudGltZSBMaWJyYXJ5AAAAAFJ1bnRpbWUgRXJyb3IhCgpQcm9ncmFtOiAAAABDbGllbnQAAEln
-bm9yZQAAQ1JUAE5vcm1hbAAARnJlZQAAAABFcnJvcjogbWVtb3J5IGFsbG9jYXRpb246IGJhZCBt
-ZW1vcnkgYmxvY2sgdHlwZS4KAAAASW52YWxpZCBhbGxvY2F0aW9uIHNpemU6ICV1IGJ5dGVzLgoA
-JXMAAENsaWVudCBob29rIGFsbG9jYXRpb24gZmFpbHVyZS4KAAAAAENsaWVudCBob29rIGFsbG9j
-YXRpb24gZmFpbHVyZSBhdCBmaWxlICVocyBsaW5lICVkLgoAAAAAZGJnaGVhcC5jAAAAX0NydENo
-ZWNrTWVtb3J5KCkAAABfcEZpcnN0QmxvY2sgPT0gcE9sZEJsb2NrAAAAX3BMYXN0QmxvY2sgPT0g
-cE9sZEJsb2NrAAAAAGZSZWFsbG9jIHx8ICghZlJlYWxsb2MgJiYgcE5ld0Jsb2NrID09IHBPbGRC
-bG9jaykAAABfQkxPQ0tfVFlQRShwT2xkQmxvY2stPm5CbG9ja1VzZSk9PV9CTE9DS19UWVBFKG5C
-bG9ja1VzZSkAAABwT2xkQmxvY2stPm5MaW5lID09IElHTk9SRV9MSU5FICYmIHBPbGRCbG9jay0+
-bFJlcXVlc3QgPT0gSUdOT1JFX1JFUQAAAABfQ3J0SXNWYWxpZEhlYXBQb2ludGVyKHBVc2VyRGF0
-YSkAAABBbGxvY2F0aW9uIHRvbyBsYXJnZSBvciBuZWdhdGl2ZTogJXUgYnl0ZXMuCgAAAABDbGll
-bnQgaG9vayByZS1hbGxvY2F0aW9uIGZhaWx1cmUuCgBDbGllbnQgaG9vayByZS1hbGxvY2F0aW9u
-IGZhaWx1cmUgYXQgZmlsZSAlaHMgbGluZSAlZC4KAF9wRmlyc3RCbG9jayA9PSBwSGVhZAAAAF9w
-TGFzdEJsb2NrID09IHBIZWFkAAAAAHBIZWFkLT5uQmxvY2tVc2UgPT0gbkJsb2NrVXNlAAAAcEhl
-YWQtPm5MaW5lID09IElHTk9SRV9MSU5FICYmIHBIZWFkLT5sUmVxdWVzdCA9PSBJR05PUkVfUkVR
-AAAAAERBTUFHRTogYWZ0ZXIgJWhzIGJsb2NrICgjJWQpIGF0IDB4JTA4WC4KAAAAREFNQUdFOiBi
-ZWZvcmUgJWhzIGJsb2NrICgjJWQpIGF0IDB4JTA4WC4KAABfQkxPQ0tfVFlQRV9JU19WQUxJRChw
-SGVhZC0+bkJsb2NrVXNlKQAAQ2xpZW50IGhvb2sgZnJlZSBmYWlsdXJlLgoAAG1lbW9yeSBjaGVj
-ayBlcnJvciBhdCAweCUwOFggPSAweCUwMlgsIHNob3VsZCBiZSAweCUwMlguCgAAACVocyBsb2Nh
-dGVkIGF0IDB4JTA4WCBpcyAldSBieXRlcyBsb25nLgoAAAAAJWhzIGFsbG9jYXRlZCBhdCBmaWxl
-ICVocyglZCkuCgBEQU1BR0U6IG9uIHRvcCBvZiBGcmVlIGJsb2NrIGF0IDB4JTA4WC4KAAAAAERB
-TUFHRUQAX2hlYXBjaGsgZmFpbHMgd2l0aCB1bmtub3duIHJldHVybiB2YWx1ZSEKAABfaGVhcGNo
-ayBmYWlscyB3aXRoIF9IRUFQQkFEUFRSLgoAAABfaGVhcGNoayBmYWlscyB3aXRoIF9IRUFQQkFE
-RU5ELgoAAABfaGVhcGNoayBmYWlscyB3aXRoIF9IRUFQQkFETk9ERS4KAABfaGVhcGNoayBmYWls
-cyB3aXRoIF9IRUFQQkFEQkVHSU4uCgBCYWQgbWVtb3J5IGJsb2NrIGZvdW5kIGF0IDB4JTA4WC4K
-AABfQ3J0TWVtQ2hlY2tQb2ludDogTlVMTCBzdGF0ZSBwb2ludGVyLgoAX0NydE1lbURpZmZlcmVu
-Y2U6IE5VTEwgc3RhdGUgcG9pbnRlci4KAE9iamVjdCBkdW1wIGNvbXBsZXRlLgoAAGNydCBibG9j
-ayBhdCAweCUwOFgsIHN1YnR5cGUgJXgsICV1IGJ5dGVzIGxvbmcuCgAAAABub3JtYWwgYmxvY2sg
-YXQgMHglMDhYLCAldSBieXRlcyBsb25nLgoAY2xpZW50IGJsb2NrIGF0IDB4JTA4WCwgc3VidHlw
-ZSAleCwgJXUgYnl0ZXMgbG9uZy4KAHslbGR9IAAAJWhzKCVkKSA6IAAAI0ZpbGUgRXJyb3IjKCVk
-KSA6IABEdW1waW5nIG9iamVjdHMgLT4KACBEYXRhOiA8JXM+ICVzCgAlLjJYIAAAAERldGVjdGVk
-IG1lbW9yeSBsZWFrcyEKAFRvdGFsIGFsbG9jYXRpb25zOiAlbGQgYnl0ZXMuCgAATGFyZ2VzdCBu
-dW1iZXIgdXNlZDogJWxkIGJ5dGVzLgoAAAAAJWxkIGJ5dGVzIGluICVsZCAlaHMgQmxvY2tzLgoA
-AAAoImluY29uc2lzdGVudCBJT0IgZmllbGRzIiwgc3RyZWFtLT5fcHRyIC0gc3RyZWFtLT5fYmFz
-ZSA+PSAwKQAAX2Zsc2J1Zi5jAAAAc3ByaW50Zi5jAAAAc3RyaW5nICE9IE5VTEwAAHZzcHJpbnRm
-LmMAAEdldExhc3RBY3RpdmVQb3B1cAAAR2V0QWN0aXZlV2luZG93AE1lc3NhZ2VCb3hBAF9nZXRi
-dWYuYwAAAGZjbG9zZS5jAAAAAAAAAAAAAAAAAAAAAP////9Gq0AATKtAAP////88rEAAQqxAAP//
-//+krkAAqq5AAG9zZmluZm8uYwAAAF9mcmVlYnVmLmMAAHN0cmVhbSAhPSBOVUxMAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAlQABQ
-fUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8CZAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAg
-L0AAAQAAAEgCQgA4AkIAQD9CAAAAAABAP0IAAQEAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAA
-AAACAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAACAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP////8CAAAABAAAAAQAAAD///////////////+Q
-AkIAiAJCAHQCQgAFAADACwAAAAAAAAAdAADABAAAAAAAAACWAADABAAAAAAAAACNAADACAAAAAAA
-AACOAADACAAAAAAAAACPAADACAAAAAAAAACQAADACAAAAAAAAACRAADACAAAAAAAAACSAADACAAA
-AAAAAACTAADACAAAAAAAAAADAAAABwAAAAoAAACMAAAA/////wAKAAAQAAAAIAWTGQAAAAAAAAAA
-AAAAAAAAAAACAAAAOAdCAAgAAAAMB0IACQAAAOAGQgAKAAAAvAZCABAAAACQBkIAEQAAAGAGQgAS
-AAAAPAZCABMAAAAQBkIAGAAAANgFQgAZAAAAsAVCABoAAAB4BUIAGwAAAEAFQgAcAAAAGAVCAHgA
-AAAIBUIAeQAAAPgEQgB6AAAA6ARCAPwAAADkBEIA/wAAANQEQgABAAAAAQAAAP/////93c0AwAdC
-ALgHQgC0B0IArAdCAKQHQgBQp0AAUKdAAFCnQABQp0AAUKdAAFCnQAAAAAAAai5CAGouQgAAACAA
-IAAgACAAIAAgACAAIAAgACgAKAAoACgAKAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAg
-ACAAIABIABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAIQAhACEAIQAhACEAIQAhACEAIQA
-EAAQABAAEAAQABAAEACBAIEAgQCBAIEAgQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAB
-AAEAAQABAAEAEAAQABAAEAAQABAAggCCAIIAggCCAIIAAgACAAIAAgACAAIAAgACAAIAAgACAAIA
-AgACAAIAAgACAAIAAgACABAAEAAQABAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAQIECAAAAACkAwAAYIJ5giEAAAAAAAAApt8AAAAAAAChpQAAAAAAAIGf4PwAAAAAQH6A/AAA
-AACoAwAAwaPaoyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIH+AAAAAAAAQP4AAAAAAAC1AwAAwaPa
-oyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIH+AAAAAAAAQf4AAAAAAAC2AwAAz6LkohoA5aLoolsA
-AAAAAAAAAAAAAAAAAAAAAIH+AAAAAAAAQH6h/gAAAABRBQAAUdpe2iAAX9pq2jIAAAAAAAAAAAAA
-AAAAAAAAAIHT2N7g+QAAMX6B/gAAAAAAAAAAAAAAAPgDAAAAAAAAAAAAAAAAAAAAn0AAAQAAAC4A
-AAABAAAAAQAAABYAAAACAAAAAgAAAAMAAAACAAAABAAAABgAAAAFAAAADQAAAAYAAAAJAAAABwAA
-AAwAAAAIAAAADAAAAAkAAAAMAAAACgAAAAcAAAALAAAACAAAAAwAAAAWAAAADQAAABYAAAAPAAAA
-AgAAABAAAAANAAAAEQAAABIAAAASAAAAAgAAACEAAAANAAAANQAAAAIAAABBAAAADQAAAEMAAAAC
-AAAAUAAAABEAAABSAAAADQAAAFMAAAANAAAAVwAAABYAAABZAAAACwAAAGwAAAANAAAAbQAAACAA
-AABwAAAAHAAAAHIAAAAJAAAABgAAABYAAACAAAAACgAAAIEAAAAKAAAAggAAAAkAAACDAAAAFgAA
-AIQAAAANAAAAkQAAACkAAACeAAAADQAAAKEAAAACAAAApAAAAAsAAACnAAAADQAAALcAAAARAAAA
-zgAAAAIAAADXAAAACwAAABgHAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKFAC
-AAAAAAAAAAAAjlICAERRAgAAAAAAAAAAAAAAAAAAAAAAAAAAAGBSAgBoUgIAelICAJxSAgCuUgIA
-vFICAMpSAgDYUgIA6FICAPRSAgAMUwIAIlMCADJTAgBKUwIAYFMCAHRTAgCIUwIApFMCAL5TAgDY
-UwIA7lMCAAZUAgAgVAIAMlQCAEBUAgBSVAIAYFQCAG5UAgB6VAIAiFQCAJRUAgCkVAIAtFQCAMRU
-AgDUVAIA7FQCAPhUAgACVQIADlUCABpVAgAqVQIAOFUCAExVAgBeVQIAdFUCAIRVAgCUVQIAplUC
-ALhVAgDIVQIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYFICAGhSAgB6UgIAnFICAK5SAgC8
-UgIAylICANhSAgDoUgIA9FICAAxTAgAiUwIAMlMCAEpTAgBgUwIAdFMCAIhTAgCkUwIAvlMCANhT
-AgDuUwIABlQCACBUAgAyVAIAQFQCAFJUAgBgVAIAblQCAHpUAgCIVAIAlFQCAKRUAgC0VAIAxFQC
-ANRUAgDsVAIA+FQCAAJVAgAOVQIAGlUCACpVAgA4VQIATFUCAF5VAgB0VQIAhFUCAJRVAgCmVQIA
-uFUCAMhVAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACWAlNsZWVwAD4BR2V0UHJvY0FkZHJl
-c3MAACYBR2V0TW9kdWxlSGFuZGxlQQAAS0VSTkVMMzIuZGxsAADKAEdldENvbW1hbmRMaW5lQQB0
-AUdldFZlcnNpb24AAH0ARXhpdFByb2Nlc3MAUQBEZWJ1Z0JyZWFrAABSAUdldFN0ZEhhbmRsZQAA
-3wJXcml0ZUZpbGUArQFJbnRlcmxvY2tlZERlY3JlbWVudAAA9QFPdXRwdXREZWJ1Z1N0cmluZ0EA
-AMIBTG9hZExpYnJhcnlBAACwAUludGVybG9ja2VkSW5jcmVtZW50AAAkAUdldE1vZHVsZUZpbGVO
-YW1lQQAAngJUZXJtaW5hdGVQcm9jZXNzAAD3AEdldEN1cnJlbnRQcm9jZXNzAK0CVW5oYW5kbGVk
-RXhjZXB0aW9uRmlsdGVyAACyAEZyZWVFbnZpcm9ubWVudFN0cmluZ3NBALMARnJlZUVudmlyb25t
-ZW50U3RyaW5nc1cA0gJXaWRlQ2hhclRvTXVsdGlCeXRlAAYBR2V0RW52aXJvbm1lbnRTdHJpbmdz
-AAgBR2V0RW52aXJvbm1lbnRTdHJpbmdzVwAAbQJTZXRIYW5kbGVDb3VudAAAFQFHZXRGaWxlVHlw
-ZQBQAUdldFN0YXJ0dXBJbmZvQQCdAUhlYXBEZXN0cm95AJsBSGVhcENyZWF0ZQAAnwFIZWFwRnJl
-ZQAAvwJWaXJ0dWFsRnJlZQAvAlJ0bFVud2luZAC4AUlzQmFkV3JpdGVQdHIAtQFJc0JhZFJlYWRQ
-dHIAAKcBSGVhcFZhbGlkYXRlAAAaAUdldExhc3RFcnJvcgAAQQJTZXRDb25zb2xlQ3RybEhhbmRs
-ZXIAvwBHZXRDUEluZm8AuQBHZXRBQ1AAADEBR2V0T0VNQ1AAAJkBSGVhcEFsbG9jALsCVmlydHVh
-bEFsbG9jAACiAUhlYXBSZUFsbG9jAKoARmx1c2hGaWxlQnVmZmVycwAAagJTZXRGaWxlUG9pbnRl
-cgAA5AFNdWx0aUJ5dGVUb1dpZGVDaGFyAL8BTENNYXBTdHJpbmdBAADAAUxDTWFwU3RyaW5nVwAA
-UwFHZXRTdHJpbmdUeXBlQQAAVgFHZXRTdHJpbmdUeXBlVwAAfAJTZXRTdGRIYW5kbGUAABsAQ2xv
-c2VIYW5kbGUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAACsAAAATjBU
-MHMwfTCOMJgw2zDtMBgxQzFuMZkxxDHvMZQymjKgMsYyzzLqMgIzEjM/M0QzSzN2M3szmDOdM6Iz
-rzO1M8EzxzPQM9Yz2zPoMxI0FzQhNDY0PDRCNEg0TzSlNMQ01TT0NBA1GTVWNWg1gDWJNak1szXM
-NdY1EzZ0NoA2hzezN9w38Tc3OEM46DjvOAo6ETqhOqg6ZDs2PJ08zz3xPRM+AAAAIAAALAEAAEQz
-SDNMM1AzVDNYM1wzYDNkM2gzbDNwM3QzeDONM5EzlTOZM50z0DPUM9gz3DPgM+Qz6DPsM/Az9DP4
-M/wzADQENAg0xjXPNds15DXyNfs1CTYPNhg2JjYwNj42RDZ0Nn02rTbGNtg2+zYVN0E3XDdsN6M3
-rzfAN8o32jfkN/M3BTgROKE4pzi1OL04wzjXOOQ46TjvOAc5FDkkOSk5LzlqOY85mznXOeM59zkg
-Oj06ajqFOpc6nTqyOsM68Dr3OgE7FTsfO4Y7jDufO6U7xDvQO/47BzxNPKU8xDzQPO88CT0VPSk9
-NT1QPWA9bD2HPZc9oz3EPdc94z03Pj0+Wj5zPsU+zj7TPtg+5T7qPoY/kz+aP6A/rT+5P8I/1z/t
-P/I//z8AMAAA5AAAAAQwEjAsMEMwUTC6MPwwBzEaMS4xNDFFMVAxZDF+MZUxrDHDMdox8TH7MQwy
-LjJHMl8yZzJ0Mn0yqDK8MvwyHTMjMzUzcTO7M8oz3TP4Mwo0EjQYNBw0ITQuNDg0YzS3NMA0PTUh
-NhQ4aDgWOR85Ljk6OUk5XDlvOdk56TkKOi86UjpgOnM6xzroOgo7LDtWO1w7cTufOwk8HDw6PEw8
-UjxbPHA88zwKPU89kT2kPRw+Iz5SPmE+dD6mPqs+sT7HPs4+5z4FPx4/Mj9AP0c/WD9gP2c/bT90
-P4g/yT8AQAAACAEAADIwTDBVMFUxXjFnMX0xhjHNMeAx+TEWMh8yKDI7Mk8yWDJfMoUyjjLaMusy
-EjMrM0UzhTOYM6QzujPgM6E0tjTCNN406jQLNSU1SDVNNYQ1rDX7NQA2RzZQNqU2rjazNrs2wTbH
-Ns821TbbNuM29Db9Nj83STdjN4I31zjsOPg4FDkgOUM5XTmAOYU5tzkBOgY6NzpDOpI6njr4OgQ7
-bjt3O4U7jTuTO5w7pDusO7I7uzvBO8c7zjvTO/g7FDxnPHM8vDzGPNI88zwQPRo9Jj1GPUw9VT1l
-PW49gz0YPi0+OT5yPn4+gz65PsU+Gz8nP0I/VT+KP5A/tD/wP/Y/AAAAUAAAzAAAADUwQTBpMK0w
-uTDXMN8w5TAOMRgxJDFGMWQxbjF6MZsxrTHhMSoyPzJLMnYygjLYMuQyKTM1M3UzgTPjM+8zJTQx
-NJU04TQxNTY1OzVhNWY1iTWONbE1tjXZNd41BjZrNnc2fjapNtQ2Bjc/N183qDfbNxE4FTgZOB04
-NThHOGU4dDjUOOw4aDmHOY45Hzp1OoE6oDqlOs86DTuiO8w72DsTPBg8xTwxPTY9ZT2/Pfc9KD5Q
-Pp8+wT7YPgo/Zz+ZP54/AAAAYAAAaAAAACAwTTCQML0wEzElMSoxoDG8MeYxDjJIMmEyyzPZM+wz
-CjQ1NEs0FTUtNVg1bjV1NYo1oDapNqQ3rTfzN/83eziKODQ5PjlNOWU5kDmlOcw81Tz2PP88tj6/
-PuA+6T4AAABwAABwAQAAETAbMCEwLDA4MD0wYjBpMG8wezCCMI4wljChMKkwtTAOMRcxKzE6MT4x
-QjFGMUoxfzGXMQIyCTIQMiEyMjJDMqIyqzK7MsQy1DLoMu4y/zIcM0szWjNkM2gzbDNwM3QzeDOn
-M8AzyDPVM94zDzQXNB00KzQ1NDo0QDRMNFY0WzRgNGo0bzR1NH40jTSaNLM02jUiNk82ejbNNtM2
-3DbuNvQ2/jYMNzg3QDdhN443mTefNwA4DDg0OEA4SDhWOFw4aDiPOKI4xTjVON847Tj3OAU5DjlD
-OUo5cDl0OXg5fDmAOcQ5zTnXOeE5CDoyOjk66zryOhg7PDtNO3E7yDvXO/A7FTwjPDw8SjyePK08
-wjziPPE8Bj0UPTU9PT1VPWg9uD3QPdc93z3kPeg97D0VPjs+VT5cPmA+ZD5oPmw+cD50Png+wj7I
-Psw+0D7UPjo/RT9gP2c/bD9wP3Q/kT+7P+0/9D/4P/w/AIAAALgAAAAAMAQwCDAMMBAwWjBgMGQw
-aDBsMMQw5DD7MAIxBzENMRoxIDEmMTAxOjFXMWAxazF6NoY2jzarNrY2vTbINtA22TbpNvc2AzcU
-Nx83KDc+N0g3TjdaN2E3ZzdvN3c3gzeMN5s3pDetN743xDfNN9U36DfxN0M4gziPOL447zj7OBw5
-YjnoPPM8+zwlPSs9Mz1APUg9Tz1oPW49dz18PYU9lz2ePcU94z3qPRA+GD7ZPgCQAABkAAAAFjYi
-Nis2RzZSNlk2ZDZsNnU2hTaTNp82sDa7NsQ20DbYNuQ26zbwNvk2ATcMNxY3JTcuNzQ3SjdUN1s3
-bTeaN8E3mjhlPXE9hD2VPSQ+qT7qPvE+QT+NP5Q/AAAAoAAA4AAAAAUwrDCzMC0xNDFDMasxsjHg
-Mecx8TH8MQYyTDJVMnYyfzJIM24z+TMONCA0PDRbNGU0gjSINK40wzTVNN80GzVKNSI2LDZZNok2
-kzavNso21zb9Nh43KDdrN4A3kjecN8M34DfvNyU4PzheOGc4gziMOJk4XDllOQY6CzooOjY6QzpN
-Ol46azp1OqE6wjrNOuA6BzuCO6c79zt6PKc82TxmPWs9iD2WPZ49qD25PcM9zT3gPe89DD4XPio+
-UT7dPgA/WD9wP3c/fz+EP4g/jD+1P9s/9T/8PwCwAAAYAQAAADAEMAgwDDAQMBQwGDBiMGgwbDBw
-MHQw2jDlMAAxBzEMMRAxFDExMVsxjTGUMZgxnDGgMaQxqDGsMbAx+jEAMgQyCDIMMo8ynDK0Mugy
-CDMtMzIzOjNPM5kzsjO+M+cz9TMDNBY0JjQwNEk0YjSBNI00tDTANMw03zTwNPo0GDUtNUw1VzVh
-Nb41zTUPNhk2TjZoNo02mTafNrU20zbfNvo2DzchNys3gTeUN7Y37Tf2N3Q4ejiAOIY4jDiSOJg4
-njikOKo4sDi2OLw4wjjIOM441DjaOOA45jjsOPI4+Dj+OAQ5CjkQORY5HDkiOSg5Ljk0OTo5QDlG
-OUw5UjlYOV45ZDlqOXA5djl8OYI5iDkAAAIAGAAAAKQxqDGcP6A/qD+sP7Q/uD8AIAIAXAAAAAwz
-EDMgNjA6ODo8OkA6SDrcPOA85DyUPZw9pD2sPbQ9vD3EPcw91D3cPeQ97D30Pfw9BD4MPhQ+HD4w
-PjQ+OD48PkA+RD5IPkw+UD5UPlg+YD5kPgAwAgAMAAAAgDEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABOQjEwAAAAABGpK1ACAAAARDpc
-dGVzdFx0aW1lXERlYnVnXHRlc3QucGRiAA==
-
-------=_001_NextPart215818845028_=----
-Content-Type: application/octet-stream;
-       name="test.cpp"
-Content-Transfer-Encoding: base64
-Content-Disposition: attachment;
-       filename="test.cpp"
-
-I2luY2x1ZGUgPHN0ZGlvLmg+DQojaW5jbHVkZSA8d2luZG93cy5oPg0KdHlwZWRlZiBpbnQgKF9f
-c3RkY2FsbCAqTlRTRVRUSU1FUikoSU4gVUxPTkcgUmVxdWVzdGVkUmVzb2x1dGlvbiwgSU4gQk9P
-TEVBTiBTZXQsIE9VVCBQVUxPTkcgQWN0dWFsUmVzb2x1dGlvbiApOw0KdHlwZWRlZiBpbnQgKF9f
-c3RkY2FsbCAqTlRRVUVSWVRJTUVSKShPVVQgUFVMT05HICAgTWluaW11bVJlc29sdXRpb24sIE9V
-VCBQVUxPTkcgTWF4aW11bVJlc29sdXRpb24sIE9VVCBQVUxPTkcgQ3VycmVudFJlc29sdXRpb24g
-KTsNCg0KaW50IG1haW4oKQ0Kew0KCURXT1JEIG1pbl9yZXMgPSAwLCBtYXhfcmVzID0gMCwgY3Vy
-X3JlcyA9IDAsIHJldCA9IDA7DQoJSE1PRFVMRSAgaGRsbCA9IE5VTEw7DQoJaGRsbCA9IEdldE1v
-ZHVsZUhhbmRsZSgibnRkbGwuZGxsIik7DQoJTlRTRVRUSU1FUiBBZGRyTnRTZXRUaW1lciA9IDA7
-DQoJTlRRVUVSWVRJTUVSIEFkZHJOdFF1ZXlUaW1lciA9IDA7DQoJDQoJQWRkck50U2V0VGltZXIg
-PSAoTlRTRVRUSU1FUikgR2V0UHJvY0FkZHJlc3MoaGRsbCwgIk50U2V0VGltZXJSZXNvbHV0aW9u
-Iik7DQoJQWRkck50UXVleVRpbWVyID0gKE5UUVVFUllUSU1FUilHZXRQcm9jQWRkcmVzcyhoZGxs
-LCAiTnRRdWVyeVRpbWVyUmVzb2x1dGlvbiIpOw0KDQoJd2hpbGUgKDEpDQoJew0KCQlyZXQgPSBB
-ZGRyTnRRdWV5VGltZXIoJm1pbl9yZXMsICZtYXhfcmVzLCAmY3VyX3Jlcyk7DQoJCXByaW50Zigi
-bWluX3JlcyA9ICVkLCBtYXhfcmVzID0gJWQsIGN1cl9yZXMgPSAlZFxuIixtaW5fcmVzLCBtYXhf
-cmVzLCBjdXJfcmVzKTsNCgkJU2xlZXAoNSk7DQoJCXJldCA9IEFkZHJOdFNldFRpbWVyKDEwMDAw
-LCAxLCAmY3VyX3Jlcyk7DQoJCVNsZWVwKDUpOw0KCQlyZXQgPSBBZGRyTnRTZXRUaW1lcigxMDAw
-MCwgMCwgJmN1cl9yZXMpOw0KCQlTbGVlcCg1KTsNCgkJcmV0ID0gQWRkck50U2V0VGltZXIoNTAw
-MDAsIDEsICZjdXJfcmVzKTsNCgkJU2xlZXAoNSk7DQoJCXJldCA9IEFkZHJOdFNldFRpbWVyKDUw
-MDAwLCAwLCAmY3VyX3Jlcyk7DQoJCVNsZWVwKDUpOw0KCQlyZXQgPSBBZGRyTnRTZXRUaW1lcigx
-MDAwMDAsIDEsICZjdXJfcmVzKTsNCgkJU2xlZXAoNSk7DQoJCXJldCA9IEFkZHJOdFNldFRpbWVy
-KDEwMDAwMCwgMCwgJmN1cl9yZXMpOw0KCQlTbGVlcCg1KTsNCgl9DQoNCglyZXR1cm4gMDsNCn0N
-Cg0K
-
-------=_001_NextPart215818845028_=----
-Content-Type: text/plain; charset="us-ascii"
-MIME-Version: 1.0
-Content-Transfer-Encoding: 7bit
-Content-Disposition: inline
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
-------=_001_NextPart215818845028_=------
-
-
-
diff --git a/test/corpus/<2012081522121039050717@gmail.com> b/test/corpus/<2012081522121039050717@gmail.com>
deleted file mode 100644 (file)
index f59bda8..0000000
+++ /dev/null
@@ -1,1211 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Aug 15 15:17:29 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 15 Aug 2012 15:17:29 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T1ePO-0006VM-Hi
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 15 Aug 2012 15:17:29 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T1eKs-0006NF-2K; Wed, 15 Aug 2012 14:12:38 +0000
-Received: from mail27.messagelabs.com ([193.109.254.147])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <tupeng212@gmail.com>) id 1T1eKp-0006My-A9
-       for xen-devel@lists.xen.org; Wed, 15 Aug 2012 14:12:35 +0000
-X-Env-Sender: tupeng212@gmail.com
-X-Msg-Ref: server-6.tower-27.messagelabs.com!1345039946!3018538!1
-X-Originating-IP: [209.85.160.173]
-X-SpamReason: No, hits=1.4 required=7.0 tests=HTML_60_70,HTML_MESSAGE,
-       MAILTO_TO_SPAM_ADDR,MIME_BASE64_TEXT,MIME_BOUND_NEXTPART,
-       ML_RADAR_SPEW_LINKS_14,RCVD_BY_IP,spamassassin: 
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 6598 invoked from network); 15 Aug 2012 14:12:27 -0000
-Received: from mail-gh0-f173.google.com (HELO mail-gh0-f173.google.com)
-       (209.85.160.173)
-       by server-6.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
-       15 Aug 2012 14:12:27 -0000
-Received: by ghrr17 with SMTP id r17so2009308ghr.32
-       for <xen-devel@lists.xen.org>; Wed, 15 Aug 2012 07:12:25 -0700 (PDT)
-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
-       h=date:from:to:cc:reply-to:subject:references:x-priority:x-guid
-       :x-has-attach:x-mailer:mime-version:message-id:content-type;
-       bh=vmCu4AMsEafAtSK52KcqpO0j+0U1kFV379rSnptYBPA=;
-       b=vywdXz9bcIbRM4hyM5VuPhRa+c3i0jXCI+3hsk6jhEqYWiUQZVxCvP9WwW6npS55OY
-       fRiqh97V5bDV5Cr0Ll5nPVf3QAF8DKcUixwfLZ9tHTliBHJDo01Qjpq/OxACTAOG0XmZ
-       hyT0FutK4/p6WvJtlFR2YWi36lB9KDdHkD7wk5X+XpD5Q78mOy+dfM45nm/X33ePPhXz
-       4clBeaRqr3bT/q/hVmsy8M/8bxb+25u/J9eeuL//EqvYAcAy/vAQXY8TDVIzryzrMlLF
-       /Cp4MozTaeflywnLB6yuo4AdMmePDgUrePjgBjVSo2LRy31m3ybuXMXvC2W+hl0RDIUI
-       6BFg==
-Received: by 10.68.227.3 with SMTP id rw3mr40809131pbc.13.1345039945349;
-       Wed, 15 Aug 2012 07:12:25 -0700 (PDT)
-Received: from root ([115.199.253.245])
-       by mx.google.com with ESMTPS id nv6sm610172pbc.42.2012.08.15.07.12.09
-       (version=SSLv3 cipher=OTHER); Wed, 15 Aug 2012 07:12:24 -0700 (PDT)
-Date: Wed, 15 Aug 2012 22:12:15 +0800
-From: tupeng212 <tupeng212@gmail.com>
-To: "Jan Beulich" <JBeulich@suse.com>, 
-       "Yang Z Zhang" <yang.z.zhang@intel.com>, "Keir Fraser" <keir@xen.org>, 
-       "Tim Deegan" <tim@xen.org>
-References: <502A3BBC0200007800094B68@nat28.tlf.novell.com>, 
-       <2012081522045495397713@gmail.com>
-X-Priority: 3
-X-GUID: 4EA20C5B-B549-4236-B43B-FA6EA6EE4F04
-X-Has-Attach: no
-X-Mailer: Foxmail 7.0.1.87[cn]
-Mime-Version: 1.0
-Message-ID: <2012081522121039050717@gmail.com>
-Cc: xen-devel <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-Reply-To: tupeng212 <tupeng212@gmail.com>
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: multipart/mixed; boundary="===============5636090078893645621=="
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-3.8 required=5.0 tests=BAYES_00,FREEMAIL_FROM,
-       FSL_FREEMAIL_1,FSL_FREEMAIL_2,HTML_MESSAGE,MIME_HTML_MOSTLY,RCVD_IN_DNSWL_MED,
-       T_DKIM_INVALID,T_RP_MATCHES_RCVD autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH,
-       RFC v2] x86/HVM: assorted RTC emulation adjustments (was Re: Big
-       Bug:Time in VM goes slower...)
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-This is a multi-part message in MIME format.
-
---===============5636090078893645621==
-Content-Type: multipart/alternative;
-       boundary="----=_001_NextPart564768006800_=----"
-
-This is a multi-part message in MIME format.
-
-------=_001_NextPart564768006800_=----
-Content-Type: text/plain;
-       charset="gb2312"
-Content-Transfer-Encoding: base64
-
-SGksIEphbjoNCkkgYW0gc29ycnkgSSByZWFsbHkgZG9uJ3QgaGF2ZSBtdWNoIHRpbWUgdG8gdHJ5
-IGEgdGVzdCBvZiB5b3VyIHBhdGNoLCBhbmQgaXQgaXMgbm90IGNvbnZlbmllbnQNCmZvciBtZSB0
-byBoYXZlIGEgdHJ5LiBGb3IgdGhlIHZlcnNpb24gSSBoYXZlIGJlZW4gdXNpbmcgaXMgeGVuNC4w
-LngsIGFuZCB5b3VyIHBhdGNoIGlzIGJhc2VkIG9uIA0KdGhlIGxhdGVzdCB2ZXJzaW9uIHhlbjQu
-Mi54LihJIGhhdmUgbmV2ZXIgY29tcGxpZWQgdGhlIHVuc3RhYmxlIG9uZSksIHNvIEkgbWVyZ2Vk
-IHlvdXIgcGF0Y2ggdG8gbXkgDQp4ZW40LjAueCwgc3RpbGwgY291bGRuJ3QgZmluZCB0aGUgdHdv
-IGZ1bmN0aW9ucyBiZWxvdzoNCiBzdGF0aWMgdm9pZCBydGNfdXBkYXRlX3RpbWVyMih2b2lkICpv
-cGFxdWUpIA0KIHN0YXRpYyB2b2lkIHJ0Y19hbGFybV9jYih2b2lkICpvcGFxdWUpIA0Kc28gSSBk
-aWRuJ3QgbWVyZ2UgdGhlIHR3byBmdW5jdGlvbnMgd2hpY2ggY29udGFpbnMgYSBydGNfdG9nZ2xl
-X2lycSgpIC4NCg0KVGhlIHJlc3VsdHMgZm9yIG1lIHdlcmUgdGhlc2U6DQoxIEluIG15IHJlYWwg
-YXBwbGljYXRpb24gZW52aXJvbm1lbnQsIGl0IHdvcmtlZCB2ZXJ5IHdlbGwgaW4gdGhlIGZvcm1l
-ciA1bWlucywgbXVjaCBiZXR0ZXIgdGhhbiBiZWZvcmUsDQogYnV0IGF0IGxhc3QgaXQgbGFnZ2Vk
-IGFnYWluLiBJIGRvbid0IGtub3cgd2hldGhlciBpdCBiZWxvbmdzIHRvIHRoZSB0d28gbWlzc2Vk
-IGZ1bmN0aW9ucy4gSSBsYWNrIHRoZSANCiBhYmlsaXR5IHRvIGZpZ3VyZSB0aGVtIG91dC4NCg0K
-MiBXaGVuIEkgdGVzdGVkIG15IHRlc3QgcHJvZ3JhbSB3aGljaCBJIHByb3ZpZGVkIGRheXMgYmVm
-b3JlLCBpdCB3b3JrZWQgdmVyeSB3ZWxsLCBtYXliZSB0aGUgcHJvZ3JhbSBkb2Vzbid0IA0KZW11
-bGF0ZSB0aGUgcmVhbCBlbnZpcm9ubWVudCBkdWUgdG8gdGhlIHNhbWUgc2V0dGluZyByYXRlLCBz
-byBJIG1vZGlmaWVkIHRoaXMgcHJvZ3JhbSBhcyB3aGljaCBpbiB0aGUgYXR0YWNobWVudC4NCmlm
-IHlvdSBhcmUgbW9yZSBjb252ZW5pZW50LCB5b3UgY2FuIGhlbHAgbWUgdG8gaGF2ZSBhIGxvb2sg
-b2YgaXQuDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
-LS0tLS0tLS0tLS0tLS0tLS0tLQ0KI2luY2x1ZGUgPHN0ZGlvLmg+DQojaW5jbHVkZSA8d2luZG93
-cy5oPg0KdHlwZWRlZiBpbnQgKF9fc3RkY2FsbCAqTlRTRVRUSU1FUikoSU4gVUxPTkcgUmVxdWVz
-dGVkUmVzb2x1dGlvbiwgSU4gQk9PTEVBTiBTZXQsIE9VVCBQVUxPTkcgQWN0dWFsUmVzb2x1dGlv
-biApOw0KdHlwZWRlZiBpbnQgKF9fc3RkY2FsbCAqTlRRVUVSWVRJTUVSKShPVVQgUFVMT05HICAg
-TWluaW11bVJlc29sdXRpb24sIE9VVCBQVUxPTkcgTWF4aW11bVJlc29sdXRpb24sIE9VVCBQVUxP
-TkcgQ3VycmVudFJlc29sdXRpb24gKTsNCg0KaW50IG1haW4oKQ0Kew0KRFdPUkQgbWluX3JlcyA9
-IDAsIG1heF9yZXMgPSAwLCBjdXJfcmVzID0gMCwgcmV0ID0gMDsNCkhNT0RVTEUgIGhkbGwgPSBO
-VUxMOw0KaGRsbCA9IEdldE1vZHVsZUhhbmRsZSgibnRkbGwuZGxsIik7DQpOVFNFVFRJTUVSIEFk
-ZHJOdFNldFRpbWVyID0gMDsNCk5UUVVFUllUSU1FUiBBZGRyTnRRdWV5VGltZXIgPSAwOw0KQWRk
-ck50U2V0VGltZXIgPSAoTlRTRVRUSU1FUikgR2V0UHJvY0FkZHJlc3MoaGRsbCwgIk50U2V0VGlt
-ZXJSZXNvbHV0aW9uIik7DQpBZGRyTnRRdWV5VGltZXIgPSAoTlRRVUVSWVRJTUVSKUdldFByb2NB
-ZGRyZXNzKGhkbGwsICJOdFF1ZXJ5VGltZXJSZXNvbHV0aW9uIik7DQoNCndoaWxlICgxKQ0Kew0K
-cmV0ID0gQWRkck50UXVleVRpbWVyKCZtaW5fcmVzLCAmbWF4X3JlcywgJmN1cl9yZXMpOw0KcHJp
-bnRmKCJtaW5fcmVzID0gJWQsIG1heF9yZXMgPSAlZCwgY3VyX3JlcyA9ICVkXG4iLG1pbl9yZXMs
-IG1heF9yZXMsIGN1cl9yZXMpOw0KU2xlZXAoNSk7DQpyZXQgPSBBZGRyTnRTZXRUaW1lcigxMDAw
-MCwgMSwgJmN1cl9yZXMpOw0KU2xlZXAoNSk7DQpyZXQgPSBBZGRyTnRTZXRUaW1lcigxMDAwMCwg
-MCwgJmN1cl9yZXMpOw0KU2xlZXAoNSk7DQpyZXQgPSBBZGRyTnRTZXRUaW1lcig1MDAwMCwgMSwg
-JmN1cl9yZXMpOw0KU2xlZXAoNSk7DQpyZXQgPSBBZGRyTnRTZXRUaW1lcig1MDAwMCwgMCwgJmN1
-cl9yZXMpOw0KU2xlZXAoNSk7DQpyZXQgPSBBZGRyTnRTZXRUaW1lcigxMDAwMDAsIDEsICZjdXJf
-cmVzKTsNClNsZWVwKDUpOw0KcmV0ID0gQWRkck50U2V0VGltZXIoMTAwMDAwLCAwLCAmY3VyX3Jl
-cyk7DQpTbGVlcCg1KTsNCn0NCg0KcmV0dXJuIDA7DQp9DQotLS0tLS0tLS0tLS0tLS0tLS0tLS0t
-LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KQW5kIEkgaGF2
-ZSBhIG9waW5pb24sIGJlY2F1c2Ugb3VyIHByb2R1Y3QgaXMgYmFzZWQgb24gVmVyc2lvbiBYZW40
-LjAueCwgaWYgeW91IGhhdmUgZW5vdWdoIHRpbWUsIGNhbiB5b3Ugd3JpdGUgDQphbm90aGVyIHBh
-dGNoIGJhc2VkIGh0dHA6Ly94ZW5iaXRzLnhlbi5vcmcvaGcveGVuLTQuMC10ZXN0aW5nLmhnLyBm
-b3IgbWUsIHRoYW5rIHlvdSB2ZXJ5IG11Y2ghDQoNCjMgSSBhbHNvIGhhdmUgYSB0aG91Z2h0IHRo
-YXQgY2FuIHdlIGhhdmUgc29tZSBkZXRlY3RpbmcgbWV0aG9kcyB0byBmaW5kIHRoZSBsYWdnaW5n
-IHRpbWUgZWFybGllciB0byBhZGp1c3QgdGltZQ0KYmFjayB0byBub3JtYWwgdmFsdWUgaW4gdGhl
-IGNvZGU/DQoNCmJlc3QgcmVnYXJkcywNCg0KDQoNCg0KdHVwZW5nMjEyDQoNClNlY29uZCBkcmFm
-dCBvZiBhIHBhdGNoIHBvc3RlZDsgbm8gdGVzdCByZXN1bHRzIHNvIGZhciBmb3IgZmlyc3QgZHJh
-ZnQuDQpKYW4NCg0KRnJvbTogSmFuIEJldWxpY2gNCkRhdGU6IDIwMTItMDgtMTQgMTc6NTENClRv
-OiBZYW5nIFogWmhhbmc7IEtlaXIgRnJhc2VyOyBUaW0gRGVlZ2FuDQpDQzogdHVwZW5nMjEyOyB4
-ZW4tZGV2ZWwNClN1YmplY3Q6IFtYZW4tZGV2ZWxdIFtQQVRDSCwgUkZDIHYyXSB4ODYvSFZNOiBh
-c3NvcnRlZCBSVEMgZW11bGF0aW9uIGFkanVzdG1lbnRzICh3YXMgUmU6IEJpZyBCdWc6VGltZSBp
-biBWTSBnb2VzIHNsb3dlci4uLikNCkJlbG93L2F0dGFjaGVkIGEgc2Vjb25kIGRyYWZ0IG9mIGEg
-cGF0Y2ggdG8gZml4IG5vdCBvbmx5IHRoaXMNCmlzc3VlLCBidXQgYSBmZXcgbW9yZSB3aXRoIHRo
-ZSBSVEMgZW11bGF0aW9uLg0KDQpLZWlyLCBUaW0sIFlhbmcsIG90aGVycyAtIHRoZSBjaGFuZ2Ug
-dG8geGVuL2FyY2gveDg2L2h2bS92cHQuYyByZWFsbHkNCmxvb2tzIG1vcmUgbGlrZSBhIGhhY2sg
-dGhhbiBhIHNvbHV0aW9uLCBidXQgSSBkb24ndCBzZWUgYW5vdGhlcg0Kd2F5IHdpdGhvdXQgbXVj
-aCBtb3JlIGludHJ1c2l2ZSBjaGFuZ2VzLiBUaGUgcG9pbnQgaXMgdGhhdCB3ZQ0Kd2FudCB0aGUg
-UlRDIGNvZGUgdG8gZGVjaWRlIHdoZXRoZXIgdG8gZ2VuZXJhdGUgYW4gaW50ZXJydXB0DQooc28g
-dGhhdCBSVENfUEYgY2FuIGJlY29tZSBzZXQgY29ycmVjdGx5IGV2ZW4gd2l0aG91dCBSVENfUElF
-DQpnZXR0aW5nIGVuYWJsZWQgYnkgdGhlIGd1ZXN0KS4NCg0KQWRkaXRpb25hbGx5IEkgd29uZGVy
-IHdoZXRoZXIgYWxhcm1fdGltZXJfdXBkYXRlKCkgc2hvdWxkbid0DQpiYWlsIG9uIG5vbi1jb25m
-b3JtaW5nIFJUQ18qX0FMQVJNIHZhbHVlcyAoYXMgdGhvc2Ugd291bGQNCm5ldmVyIG1hdGNoIHRo
-ZSB2YWx1ZXMgdGhleSBnZXQgY29tcGFyZWQgYWdhaW5zdCwgd2hlcmVhcw0Kd2l0aCB0aGUgY3Vy
-cmVudCB3YXkgb2YgaGFuZGxpbmcgdGhpcyB0aGV5IHdvdWxkIGFwcGVhciB0bw0KbWF0Y2ggLSBp
-LmUuIHNldCBSVENfQUYgYW5kIHBvc3NpYmx5IGdlbmVyYXRlIGFuIGludGVycnVwdCAtDQpzb21l
-IG90aGVyIHBvaW50IGluIHRpbWUpLiBJIHJlYWxpemUgdGhlIGJlaGF2aW9yIGhlcmUgbWF5IG5v
-dA0KYmUgcHJlY2lzZWx5IHNwZWNpZmllZCwgYnV0IHRoZSBzcGVjaWZpY2F0aW9uIHNheWluZyAi
-dGhlIGN1cnJlbnQNCnRpbWUgaGFzIG1hdGNoZWQgdGhlIGFsYXJtIHRpbWUiIG1lYW5zIHRvIG1l
-IGEgdmFsdWUgYnkgdmFsdWUNCmNvbXBhcmlzb24sIHdoaWNoIGltcGxpZXMgdGhhdCBub24tY29u
-Zm9ybWluZyB2YWx1ZXMgd291bGQNCm5ldmVyIG1hdGNoIChzaW5jZSBub24tY29uZm9ybWluZyBj
-dXJyZW50IHRpbWUgdmFsdWVzIGNvdWxkDQpnZXQgcmVwbGFjZWQgYXQgYW55IHRpbWUgYnkgdGhl
-IGhhcmR3YXJlIGR1ZSB0byBvdmVyZmxvdw0KZGV0ZWN0aW9uKS4NCg0KSmFuDQoNCi0gZG9uJ3Qg
-Y2FsbCBydGNfdGltZXJfdXBkYXRlKCkgb24gUkVHX0Egd3JpdGVzIHdoZW4gdGhlIHZhbHVlIGRp
-ZG4ndA0KICBjaGFuZ2UgKGRvaW5nIHRoZSBjYWxsIGFsd2F5cyB3YXMgcmVwb3J0ZWQgdG8gY2F1
-c2Ugd2FsbCBjbG9jayB0aW1lDQogIGxhZ2dpbmcgd2l0aCB0aGUgSlZNIHJ1bm5pbmcgb24gV2lu
-ZG93cykNCi0gZG9uJ3QgY2FsbCBydGNfdGltZXJfdXBkYXRlKCkgb24gUkVHX0Igd3JpdGVzIGF0
-IGFsbA0KLSBvbmx5IGNhbGwgYWxhcm1fdGltZXJfdXBkYXRlKCkgb24gUkVHX0Igd3JpdGVzIHdo
-ZW4gcmVsZXZhbnQgYml0cw0KICBjaGFuZ2UNCi0gb25seSBjYWxsIGNoZWNrX3VwZGF0ZV90aW1l
-cigpIG9uIFJFR19CIHdyaXRlcyB3aGVuIFNFVCBjaGFuZ2VzDQotIGluc3RlYWQgcHJvcGVybHkg
-aGFuZGxlIEFGIGFuZCBQRiB3aGVuIHRoZSBndWVzdCBpcyBub3QgYWxzbyBzZXR0aW5nDQogIEFJ
-RS9QSUUgcmVzcGVjdGl2ZWx5IChmb3IgVUYgdGhpcyB3YXMgYWxyZWFkeSB0aGUgY2FzZSwgb25s
-eSBhDQogIGNvbW1lbnQgd2FzIHNsaWdodGx5IGluYWNjdXJhdGUpDQotIHJhaXNlIHRoZSBSVEMg
-SVJRIG5vdCBvbmx5IHdoZW4gVUlFIGdldHMgc2V0IHdoaWxlIFVGIHdhcyBhbHJlYWR5DQogIHNl
-dCwgYnV0IGdlbmVyYWxpemUgdGhpcyB0byBjb3ZlciBBSUUgYW5kIFBJRSBhcyB3ZWxsDQotIHBy
-b3Blcmx5IG1hc2sgb2ZmIGJpdCA3IHdoZW4gcmV0cmlldmluZyB0aGUgaG91ciB2YWx1ZXMgaW4N
-CiAgYWxhcm1fdGltZXJfdXBkYXRlKCksIGFuZCBwcm9wZXJseSB1c2UgUlRDX0hPVVJTX0FMQVJN
-J3MgYml0IDcgd2hlbg0KICBjb252ZXJ0aW5nIGZyb20gMTItIHRvIDI0LWhvdXIgdmFsdWUNCi0g
-YWxzbyBoYW5kbGUgdGhlIHR3byBvdGhlciBwb3NzaWJsZSBjbG9jayBiYXNlcw0KLSB1c2UgUlRD
-XyogbmFtZXMgaW4gYSBjb3VwbGUgb2YgcGxhY2VzIHdoZXJlIGxpdGVyYWwgbnVtYmVycyB3ZXJl
-IHVzZWQNCiAgc28gZmFyDQoNCi0tLSBhL3hlbi9hcmNoL3g4Ni9odm0vcnRjLmMNCisrKyBiL3hl
-bi9hcmNoL3g4Ni9odm0vcnRjLmMNCkBAIC01MCwxMSArNTAsMjQgQEAgc3RhdGljIHZvaWQgcnRj
-X3NldF90aW1lKFJUQ1N0YXRlICpzKTsNCiBzdGF0aWMgaW5saW5lIGludCBmcm9tX2JjZChSVENT
-dGF0ZSAqcywgaW50IGEpOw0KIHN0YXRpYyBpbmxpbmUgaW50IGNvbnZlcnRfaG91cihSVENTdGF0
-ZSAqcywgaW50IGhvdXIpOw0KDQotc3RhdGljIHZvaWQgcnRjX3BlcmlvZGljX2NiKHN0cnVjdCB2
-Y3B1ICp2LCB2b2lkICpvcGFxdWUpDQorc3RhdGljIHZvaWQgcnRjX3RvZ2dsZV9pcnEoUlRDU3Rh
-dGUgKnMpDQorew0KKyAgICBzdHJ1Y3QgZG9tYWluICpkID0gdnJ0Y19kb21haW4ocyk7DQorDQor
-ICAgIEFTU0VSVChzcGluX2lzX2xvY2tlZCgmcy0+bG9jaykpOw0KKyAgICBzLT5ody5jbW9zX2Rh
-dGFbUlRDX1JFR19DXSB8PSBSVENfSVJRRjsNCisgICAgaHZtX2lzYV9pcnFfZGVhc3NlcnQoZCwg
-UlRDX0lSUSk7DQorICAgIGh2bV9pc2FfaXJxX2Fzc2VydChkLCBSVENfSVJRKTsNCit9DQorDQor
-dm9pZCBydGNfcGVyaW9kaWNfaW50ZXJydXB0KHZvaWQgKm9wYXF1ZSkNCiB7DQogICAgIFJUQ1N0
-YXRlICpzID0gb3BhcXVlOw0KKw0KICAgICBzcGluX2xvY2soJnMtPmxvY2spOw0KLSAgICBzLT5o
-dy5jbW9zX2RhdGFbUlRDX1JFR19DXSB8PSAweGMwOw0KKyAgICBzLT5ody5jbW9zX2RhdGFbUlRD
-X1JFR19DXSB8PSBSVENfUEY7DQorICAgIGlmICggcy0+aHcuY21vc19kYXRhW1JUQ19SRUdfQl0g
-JiBSVENfUElFICkNCisgICAgICAgIHJ0Y190b2dnbGVfaXJxKHMpOw0KICAgICBzcGluX3VubG9j
-aygmcy0+bG9jayk7DQogfQ0KDQpAQCAtNjgsMTkgKzgxLDI1IEBAIHN0YXRpYyB2b2lkIHJ0Y190
-aW1lcl91cGRhdGUoUlRDU3RhdGUgKnMNCiAgICAgQVNTRVJUKHNwaW5faXNfbG9ja2VkKCZzLT5s
-b2NrKSk7DQoNCiAgICAgcGVyaW9kX2NvZGUgPSBzLT5ody5jbW9zX2RhdGFbUlRDX1JFR19BXSAm
-IFJUQ19SQVRFX1NFTEVDVDsNCi0gICAgaWYgKCAocGVyaW9kX2NvZGUgIT0gMCkgJiYgKHMtPmh3
-LmNtb3NfZGF0YVtSVENfUkVHX0JdICYgUlRDX1BJRSkgKQ0KKyAgICBzd2l0Y2ggKCBzLT5ody5j
-bW9zX2RhdGFbUlRDX1JFR19BXSAmIFJUQ19ESVZfQ1RMICkNCiAgICAgew0KLSAgICAgICAgaWYg
-KCBwZXJpb2RfY29kZSA8PSAyICkNCisgICAgY2FzZSBSVENfUkVGX0NMQ0tfMzJLSFo6DQorICAg
-ICAgICBpZiAoIChwZXJpb2RfY29kZSAhPSAwKSAmJiAocGVyaW9kX2NvZGUgPD0gMikgKQ0KICAg
-ICAgICAgICAgIHBlcmlvZF9jb2RlICs9IDc7DQotDQotICAgICAgICBwZXJpb2QgPSAxIDw8IChw
-ZXJpb2RfY29kZSAtIDEpOyAvKiBwZXJpb2QgaW4gMzIgS2h6IGN5Y2xlcyAqLw0KLSAgICAgICAg
-cGVyaW9kID0gRElWX1JPVU5EKChwZXJpb2QgKiAxMDAwMDAwMDAwVUxMKSwgMzI3NjgpOyAvKiBw
-ZXJpb2QgaW4gbnMgKi8NCi0gICAgICAgIGNyZWF0ZV9wZXJpb2RpY190aW1lKHYsICZzLT5wdCwg
-cGVyaW9kLCBwZXJpb2QsIFJUQ19JUlEsDQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICBy
-dGNfcGVyaW9kaWNfY2IsIHMpOw0KLSAgICB9DQotICAgIGVsc2UNCi0gICAgew0KKyAgICAgICAg
-LyogZmFsbCB0aHJvdWdoICovDQorICAgIGNhc2UgUlRDX1JFRl9DTENLXzFNSFo6DQorICAgIGNh
-c2UgUlRDX1JFRl9DTENLXzRNSFo6DQorICAgICAgICBpZiAoIHBlcmlvZF9jb2RlICE9IDAgKQ0K
-KyAgICAgICAgew0KKyAgICAgICAgICAgIHBlcmlvZCA9IDEgPDwgKHBlcmlvZF9jb2RlIC0gMSk7
-IC8qIHBlcmlvZCBpbiAzMiBLaHogY3ljbGVzICovDQorICAgICAgICAgICAgcGVyaW9kID0gRElW
-X1JPVU5EKHBlcmlvZCAqIDEwMDAwMDAwMDBVTEwsIDMyNzY4KTsgLyogaW4gbnMgKi8NCisgICAg
-ICAgICAgICBjcmVhdGVfcGVyaW9kaWNfdGltZSh2LCAmcy0+cHQsIHBlcmlvZCwgcGVyaW9kLCBS
-VENfSVJRLCBOVUxMLCBzKTsNCisgICAgICAgICAgICBicmVhazsNCisgICAgICAgIH0NCisgICAg
-ICAgIC8qIGZhbGwgdGhyb3VnaCAqLw0KKyAgICBkZWZhdWx0Og0KICAgICAgICAgZGVzdHJveV9w
-ZXJpb2RpY190aW1lKCZzLT5wdCk7DQorICAgICAgICBicmVhazsNCiAgICAgfQ0KIH0NCg0KQEAg
-LTEwMiw3ICsxMjEsNyBAQCBzdGF0aWMgdm9pZCBjaGVja191cGRhdGVfdGltZXIoUlRDU3RhdGUg
-DQogICAgICAgICBndWVzdF91c2VjID0gZ2V0X2xvY2FsdGltZV91cyhkKSAlIFVTRUNfUEVSX1NF
-QzsNCiAgICAgICAgIGlmIChndWVzdF91c2VjID49IChVU0VDX1BFUl9TRUMgLSAyNDQpKQ0KICAg
-ICAgICAgew0KLSAgICAgICAgICAgIC8qIFJUQyBpcyBpbiB1cGRhdGUgY3ljbGUgd2hlbiBlbmFi
-bGluZyBVSUUgKi8NCisgICAgICAgICAgICAvKiBSVEMgaXMgaW4gdXBkYXRlIGN5Y2xlICovDQog
-ICAgICAgICAgICAgcy0+aHcuY21vc19kYXRhW1JUQ19SRUdfQV0gfD0gUlRDX1VJUDsNCiAgICAg
-ICAgICAgICBuZXh0X3VwZGF0ZV90aW1lID0gKFVTRUNfUEVSX1NFQyAtIGd1ZXN0X3VzZWMpICog
-TlNfUEVSX1VTRUM7DQogICAgICAgICAgICAgZXhwaXJlX3RpbWUgPSBOT1coKSArIG5leHRfdXBk
-YXRlX3RpbWU7DQpAQCAtMTQ0LDcgKzE2Myw2IEBAIHN0YXRpYyB2b2lkIHJ0Y191cGRhdGVfdGlt
-ZXIodm9pZCAqb3BhcXUNCiBzdGF0aWMgdm9pZCBydGNfdXBkYXRlX3RpbWVyMih2b2lkICpvcGFx
-dWUpDQogew0KICAgICBSVENTdGF0ZSAqcyA9IG9wYXF1ZTsNCi0gICAgc3RydWN0IGRvbWFpbiAq
-ZCA9IHZydGNfZG9tYWluKHMpOw0KDQogICAgIHNwaW5fbG9jaygmcy0+bG9jayk7DQogICAgIGlm
-ICghKHMtPmh3LmNtb3NfZGF0YVtSVENfUkVHX0JdICYgUlRDX1NFVCkpDQpAQCAtMTUyLDExICsx
-NzAsNyBAQCBzdGF0aWMgdm9pZCBydGNfdXBkYXRlX3RpbWVyMih2b2lkICpvcGFxDQogICAgICAg
-ICBzLT5ody5jbW9zX2RhdGFbUlRDX1JFR19DXSB8PSBSVENfVUY7DQogICAgICAgICBzLT5ody5j
-bW9zX2RhdGFbUlRDX1JFR19BXSAmPSB+UlRDX1VJUDsNCiAgICAgICAgIGlmICgocy0+aHcuY21v
-c19kYXRhW1JUQ19SRUdfQl0gJiBSVENfVUlFKSkNCi0gICAgICAgIHsNCi0gICAgICAgICAgICBz
-LT5ody5jbW9zX2RhdGFbUlRDX1JFR19DXSB8PSBSVENfSVJRRjsNCi0gICAgICAgICAgICBodm1f
-aXNhX2lycV9kZWFzc2VydChkLCBSVENfSVJRKTsNCi0gICAgICAgICAgICBodm1faXNhX2lycV9h
-c3NlcnQoZCwgUlRDX0lSUSk7DQotICAgICAgICB9DQorICAgICAgICAgICAgcnRjX3RvZ2dsZV9p
-cnEocyk7DQogICAgICAgICBjaGVja191cGRhdGVfdGltZXIocyk7DQogICAgIH0NCiAgICAgc3Bp
-bl91bmxvY2soJnMtPmxvY2spOw0KQEAgLTE3NSwyMSArMTg5LDE4IEBAIHN0YXRpYyB2b2lkIGFs
-YXJtX3RpbWVyX3VwZGF0ZShSVENTdGF0ZSANCg0KICAgICBzdG9wX3RpbWVyKCZzLT5hbGFybV90
-aW1lcik7DQoNCi0gICAgaWYgKChzLT5ody5jbW9zX2RhdGFbUlRDX1JFR19CXSAmIFJUQ19BSUUp
-ICYmDQotICAgICAgICAgICAgIShzLT5ody5jbW9zX2RhdGFbUlRDX1JFR19CXSAmIFJUQ19TRVQp
-KQ0KKyAgICBpZiAoICEocy0+aHcuY21vc19kYXRhW1JUQ19SRUdfQl0gJiBSVENfU0VUKSApDQog
-ICAgIHsNCiAgICAgICAgIHMtPmN1cnJlbnRfdG0gPSBnbXRpbWUoZ2V0X2xvY2FsdGltZShkKSk7
-DQogICAgICAgICBydGNfY29weV9kYXRlKHMpOw0KDQogICAgICAgICBhbGFybV9zZWMgPSBmcm9t
-X2JjZChzLCBzLT5ody5jbW9zX2RhdGFbUlRDX1NFQ09ORFNfQUxBUk1dKTsNCiAgICAgICAgIGFs
-YXJtX21pbiA9IGZyb21fYmNkKHMsIHMtPmh3LmNtb3NfZGF0YVtSVENfTUlOVVRFU19BTEFSTV0p
-Ow0KLSAgICAgICAgYWxhcm1faG91ciA9IGZyb21fYmNkKHMsIHMtPmh3LmNtb3NfZGF0YVtSVENf
-SE9VUlNfQUxBUk1dKTsNCi0gICAgICAgIGFsYXJtX2hvdXIgPSBjb252ZXJ0X2hvdXIocywgYWxh
-cm1faG91cik7DQorICAgICAgICBhbGFybV9ob3VyID0gY29udmVydF9ob3VyKHMsIHMtPmh3LmNt
-b3NfZGF0YVtSVENfSE9VUlNfQUxBUk1dKTsNCg0KICAgICAgICAgY3VyX3NlYyA9IGZyb21fYmNk
-KHMsIHMtPmh3LmNtb3NfZGF0YVtSVENfU0VDT05EU10pOw0KICAgICAgICAgY3VyX21pbiA9IGZy
-b21fYmNkKHMsIHMtPmh3LmNtb3NfZGF0YVtSVENfTUlOVVRFU10pOw0KLSAgICAgICAgY3VyX2hv
-dXIgPSBmcm9tX2JjZChzLCBzLT5ody5jbW9zX2RhdGFbUlRDX0hPVVJTXSk7DQotICAgICAgICBj
-dXJfaG91ciA9IGNvbnZlcnRfaG91cihzLCBjdXJfaG91cik7DQorICAgICAgICBjdXJfaG91ciA9
-IGNvbnZlcnRfaG91cihzLCBzLT5ody5jbW9zX2RhdGFbUlRDX0hPVVJTXSk7DQoNCiAgICAgICAg
-IG5leHRfdXBkYXRlX3RpbWUgPSBVU0VDX1BFUl9TRUMgLSAoZ2V0X2xvY2FsdGltZV91cyhkKSAl
-IFVTRUNfUEVSX1NFQyk7DQogICAgICAgICBuZXh0X3VwZGF0ZV90aW1lID0gbmV4dF91cGRhdGVf
-dGltZSAqIE5TX1BFUl9VU0VDICsgTk9XKCk7DQpAQCAtMzQzLDcgKzM1NCw2IEBAIHN0YXRpYyB2
-b2lkIGFsYXJtX3RpbWVyX3VwZGF0ZShSVENTdGF0ZSANCiBzdGF0aWMgdm9pZCBydGNfYWxhcm1f
-Y2Iodm9pZCAqb3BhcXVlKQ0KIHsNCiAgICAgUlRDU3RhdGUgKnMgPSBvcGFxdWU7DQotICAgIHN0
-cnVjdCBkb21haW4gKmQgPSB2cnRjX2RvbWFpbihzKTsNCg0KICAgICBzcGluX2xvY2soJnMtPmxv
-Y2spOw0KICAgICBpZiAoIShzLT5ody5jbW9zX2RhdGFbUlRDX1JFR19CXSAmIFJUQ19TRVQpKQ0K
-QEAgLTM1MSwxMSArMzYxLDcgQEAgc3RhdGljIHZvaWQgcnRjX2FsYXJtX2NiKHZvaWQgKm9wYXF1
-ZSkNCiAgICAgICAgIHMtPmh3LmNtb3NfZGF0YVtSVENfUkVHX0NdIHw9IFJUQ19BRjsNCiAgICAg
-ICAgIC8qIGFsYXJtIGludGVycnVwdCAqLw0KICAgICAgICAgaWYgKHMtPmh3LmNtb3NfZGF0YVtS
-VENfUkVHX0JdICYgUlRDX0FJRSkNCi0gICAgICAgIHsNCi0gICAgICAgICAgICBzLT5ody5jbW9z
-X2RhdGFbUlRDX1JFR19DXSB8PSBSVENfSVJRRjsNCi0gICAgICAgICAgICBodm1faXNhX2lycV9k
-ZWFzc2VydChkLCBSVENfSVJRKTsNCi0gICAgICAgICAgICBodm1faXNhX2lycV9hc3NlcnQoZCwg
-UlRDX0lSUSk7DQotICAgICAgICB9DQorICAgICAgICAgICAgcnRjX3RvZ2dsZV9pcnEocyk7DQog
-ICAgICAgICBhbGFybV90aW1lcl91cGRhdGUocyk7DQogICAgIH0NCiAgICAgc3Bpbl91bmxvY2so
-JnMtPmxvY2spOw0KQEAgLTM2NSw2ICszNzEsNyBAQCBzdGF0aWMgaW50IHJ0Y19pb3BvcnRfd3Jp
-dGUodm9pZCAqb3BhcXVlDQogew0KICAgICBSVENTdGF0ZSAqcyA9IG9wYXF1ZTsNCiAgICAgc3Ry
-dWN0IGRvbWFpbiAqZCA9IHZydGNfZG9tYWluKHMpOw0KKyAgICB1aW50MzJfdCBvcmlnLCBtYXNr
-Ow0KDQogICAgIHNwaW5fbG9jaygmcy0+bG9jayk7DQoNCkBAIC0zODIsNiArMzg5LDcgQEAgc3Rh
-dGljIGludCBydGNfaW9wb3J0X3dyaXRlKHZvaWQgKm9wYXF1ZQ0KICAgICAgICAgcmV0dXJuIDA7
-DQogICAgIH0NCg0KKyAgICBvcmlnID0gcy0+aHcuY21vc19kYXRhW3MtPmh3LmNtb3NfaW5kZXhd
-Ow0KICAgICBzd2l0Y2ggKCBzLT5ody5jbW9zX2luZGV4ICkNCiAgICAgew0KICAgICBjYXNlIFJU
-Q19TRUNPTkRTX0FMQVJNOg0KQEAgLTQwNSw5ICs0MTMsOSBAQCBzdGF0aWMgaW50IHJ0Y19pb3Bv
-cnRfd3JpdGUodm9pZCAqb3BhcXVlDQogICAgICAgICBicmVhazsNCiAgICAgY2FzZSBSVENfUkVH
-X0E6DQogICAgICAgICAvKiBVSVAgYml0IGlzIHJlYWQgb25seSAqLw0KLSAgICAgICAgcy0+aHcu
-Y21vc19kYXRhW1JUQ19SRUdfQV0gPSAoZGF0YSAmIH5SVENfVUlQKSB8DQotICAgICAgICAgICAg
-KHMtPmh3LmNtb3NfZGF0YVtSVENfUkVHX0FdICYgUlRDX1VJUCk7DQotICAgICAgICBydGNfdGlt
-ZXJfdXBkYXRlKHMpOw0KKyAgICAgICAgcy0+aHcuY21vc19kYXRhW1JUQ19SRUdfQV0gPSAoZGF0
-YSAmIH5SVENfVUlQKSB8IChvcmlnICYgUlRDX1VJUCk7DQorICAgICAgICBpZiAoIChkYXRhIF4g
-b3JpZykgJiAoUlRDX1JBVEVfU0VMRUNUIHwgUlRDX0RJVl9DVEwpICkNCisgICAgICAgICAgICBy
-dGNfdGltZXJfdXBkYXRlKHMpOw0KICAgICAgICAgYnJlYWs7DQogICAgIGNhc2UgUlRDX1JFR19C
-Og0KICAgICAgICAgaWYgKCBkYXRhICYgUlRDX1NFVCApDQpAQCAtNDE1LDcgKzQyMyw3IEBAIHN0
-YXRpYyBpbnQgcnRjX2lvcG9ydF93cml0ZSh2b2lkICpvcGFxdWUNCiAgICAgICAgICAgICAvKiBz
-ZXQgbW9kZTogcmVzZXQgVUlQIG1vZGUgKi8NCiAgICAgICAgICAgICBzLT5ody5jbW9zX2RhdGFb
-UlRDX1JFR19BXSAmPSB+UlRDX1VJUDsNCiAgICAgICAgICAgICAvKiBhZGp1c3QgY21vcyBiZWZv
-cmUgc3RvcHBpbmcgKi8NCi0gICAgICAgICAgICBpZiAoIShzLT5ody5jbW9zX2RhdGFbUlRDX1JF
-R19CXSAmIFJUQ19TRVQpKQ0KKyAgICAgICAgICAgIGlmICghKG9yaWcgJiBSVENfU0VUKSkNCiAg
-ICAgICAgICAgICB7DQogICAgICAgICAgICAgICAgIHMtPmN1cnJlbnRfdG0gPSBnbXRpbWUoZ2V0
-X2xvY2FsdGltZShkKSk7DQogICAgICAgICAgICAgICAgIHJ0Y19jb3B5X2RhdGUocyk7DQpAQCAt
-NDI0LDIxICs0MzIsMjYgQEAgc3RhdGljIGludCBydGNfaW9wb3J0X3dyaXRlKHZvaWQgKm9wYXF1
-ZQ0KICAgICAgICAgZWxzZQ0KICAgICAgICAgew0KICAgICAgICAgICAgIC8qIGlmIGRpc2FibGlu
-ZyBzZXQgbW9kZSwgdXBkYXRlIHRoZSB0aW1lICovDQotICAgICAgICAgICAgaWYgKCBzLT5ody5j
-bW9zX2RhdGFbUlRDX1JFR19CXSAmIFJUQ19TRVQgKQ0KKyAgICAgICAgICAgIGlmICggb3JpZyAm
-IFJUQ19TRVQgKQ0KICAgICAgICAgICAgICAgICBydGNfc2V0X3RpbWUocyk7DQogICAgICAgICB9
-DQotICAgICAgICAvKiBpZiB0aGUgaW50ZXJydXB0IGlzIGFscmVhZHkgc2V0IHdoZW4gdGhlIGlu
-dGVycnVwdCBiZWNvbWUNCi0gICAgICAgICAqIGVuYWJsZWQsIHJhaXNlIGFuIGludGVycnVwdCBp
-bW1lZGlhdGVseSovDQotICAgICAgICBpZiAoKGRhdGEgJiBSVENfVUlFKSAmJiAhKHMtPmh3LmNt
-b3NfZGF0YVtSVENfUkVHX0JdICYgUlRDX1VJRSkpDQotICAgICAgICAgICAgaWYgKHMtPmh3LmNt
-b3NfZGF0YVtSVENfUkVHX0NdICYgUlRDX1VGKQ0KKyAgICAgICAgLyoNCisgICAgICAgICAqIElm
-IHRoZSBpbnRlcnJ1cHQgaXMgYWxyZWFkeSBzZXQgd2hlbiB0aGUgaW50ZXJydXB0IGJlY29tZXMN
-CisgICAgICAgICAqIGVuYWJsZWQsIHJhaXNlIGFuIGludGVycnVwdCBpbW1lZGlhdGVseS4NCisg
-ICAgICAgICAqIE5COiBSVENfe0EsUCxVfUlFID09IFJUQ197QSxQLFV9RiByZXNwZWN0aXZlbHku
-DQorICAgICAgICAgKi8NCisgICAgICAgIGZvciAoIG1hc2sgPSBSVENfVUlFOyBtYXNrIDw9IFJU
-Q19QSUU7IG1hc2sgPDw9IDEgKQ0KKyAgICAgICAgICAgIGlmICggKGRhdGEgJiBtYXNrKSAmJiAh
-KG9yaWcgJiBtYXNrKSAmJg0KKyAgICAgICAgICAgICAgICAgKHMtPmh3LmNtb3NfZGF0YVtSVENf
-UkVHX0NdICYgbWFzaykgKQ0KICAgICAgICAgICAgIHsNCi0gICAgICAgICAgICAgICAgaHZtX2lz
-YV9pcnFfZGVhc3NlcnQoZCwgUlRDX0lSUSk7DQotICAgICAgICAgICAgICAgIGh2bV9pc2FfaXJx
-X2Fzc2VydChkLCBSVENfSVJRKTsNCisgICAgICAgICAgICAgICAgcnRjX3RvZ2dsZV9pcnEocyk7
-DQorICAgICAgICAgICAgICAgIGJyZWFrOw0KICAgICAgICAgICAgIH0NCiAgICAgICAgIHMtPmh3
-LmNtb3NfZGF0YVtSVENfUkVHX0JdID0gZGF0YTsNCi0gICAgICAgIHJ0Y190aW1lcl91cGRhdGUo
-cyk7DQotICAgICAgICBjaGVja191cGRhdGVfdGltZXIocyk7DQotICAgICAgICBhbGFybV90aW1l
-cl91cGRhdGUocyk7DQorICAgICAgICBpZiAoIChkYXRhIF4gb3JpZykgJiBSVENfU0VUICkNCisg
-ICAgICAgICAgICBjaGVja191cGRhdGVfdGltZXIocyk7DQorICAgICAgICBpZiAoIChkYXRhIF4g
-b3JpZykgJiAoUlRDXzI0SCB8IFJUQ19ETV9CSU5BUlkgfCBSVENfU0VUKSApDQorICAgICAgICAg
-ICAgYWxhcm1fdGltZXJfdXBkYXRlKHMpOw0KICAgICAgICAgYnJlYWs7DQogICAgIGNhc2UgUlRD
-X1JFR19DOg0KICAgICBjYXNlIFJUQ19SRUdfRDoNCkBAIC00NTMsNyArNDY2LDcgQEAgc3RhdGlj
-IGludCBydGNfaW9wb3J0X3dyaXRlKHZvaWQgKm9wYXF1ZQ0KDQogc3RhdGljIGlubGluZSBpbnQg
-dG9fYmNkKFJUQ1N0YXRlICpzLCBpbnQgYSkNCiB7DQotICAgIGlmICggcy0+aHcuY21vc19kYXRh
-W1JUQ19SRUdfQl0gJiAweDA0ICkNCisgICAgaWYgKCBzLT5ody5jbW9zX2RhdGFbUlRDX1JFR19C
-XSAmIFJUQ19ETV9CSU5BUlkgKQ0KICAgICAgICAgcmV0dXJuIGE7DQogICAgIGVsc2UNCiAgICAg
-ICAgIHJldHVybiAoKGEgLyAxMCkgPDwgNCkgfCAoYSAlIDEwKTsNCkBAIC00NjEsNyArNDc0LDcg
-QEAgc3RhdGljIGlubGluZSBpbnQgdG9fYmNkKFJUQ1N0YXRlICpzLCBpbg0KDQogc3RhdGljIGlu
-bGluZSBpbnQgZnJvbV9iY2QoUlRDU3RhdGUgKnMsIGludCBhKQ0KIHsNCi0gICAgaWYgKCBzLT5o
-dy5jbW9zX2RhdGFbUlRDX1JFR19CXSAmIDB4MDQgKQ0KKyAgICBpZiAoIHMtPmh3LmNtb3NfZGF0
-YVtSVENfUkVHX0JdICYgUlRDX0RNX0JJTkFSWSApDQogICAgICAgICByZXR1cm4gYTsNCiAgICAg
-ZWxzZQ0KICAgICAgICAgcmV0dXJuICgoYSA+PiA0KSAqIDEwKSArIChhICYgMHgwZik7DQpAQCAt
-NDY5LDEyICs0ODIsMTQgQEAgc3RhdGljIGlubGluZSBpbnQgZnJvbV9iY2QoUlRDU3RhdGUgKnMs
-IA0KDQogLyogSG91cnMgaW4gMTIgaG91ciBtb2RlIGFyZSBpbiAxLTEyIHJhbmdlLCBub3QgMC0x
-MS4NCiAgKiBTbyB3ZSBuZWVkIGNvbnZlcnQgaXQgYmVmb3JlIHVzaW5nIGl0Ki8NCi1zdGF0aWMg
-aW5saW5lIGludCBjb252ZXJ0X2hvdXIoUlRDU3RhdGUgKnMsIGludCBob3VyKQ0KK3N0YXRpYyBp
-bmxpbmUgaW50IGNvbnZlcnRfaG91cihSVENTdGF0ZSAqcywgaW50IHJhdykNCiB7DQorICAgIGlu
-dCBob3VyID0gZnJvbV9iY2QocywgcmF3ICYgMHg3Zik7DQorDQogICAgIGlmICghKHMtPmh3LmNt
-b3NfZGF0YVtSVENfUkVHX0JdICYgUlRDXzI0SCkpDQogICAgIHsNCiAgICAgICAgIGhvdXIgJT0g
-MTI7DQotICAgICAgICBpZiAocy0+aHcuY21vc19kYXRhW1JUQ19IT1VSU10gJiAweDgwKQ0KKyAg
-ICAgICAgaWYgKHJhdyAmIDB4ODApDQogICAgICAgICAgICAgaG91ciArPSAxMjsNCiAgICAgfQ0K
-ICAgICByZXR1cm4gaG91cjsNCkBAIC00OTMsOCArNTA4LDcgQEAgc3RhdGljIHZvaWQgcnRjX3Nl
-dF90aW1lKFJUQ1N0YXRlICpzKQ0KICAgICANCiAgICAgdG0tPnRtX3NlYyA9IGZyb21fYmNkKHMs
-IHMtPmh3LmNtb3NfZGF0YVtSVENfU0VDT05EU10pOw0KICAgICB0bS0+dG1fbWluID0gZnJvbV9i
-Y2Qocywgcy0+aHcuY21vc19kYXRhW1JUQ19NSU5VVEVTXSk7DQotICAgIHRtLT50bV9ob3VyID0g
-ZnJvbV9iY2Qocywgcy0+aHcuY21vc19kYXRhW1JUQ19IT1VSU10gJiAweDdmKTsNCi0gICAgdG0t
-PnRtX2hvdXIgPSBjb252ZXJ0X2hvdXIocywgdG0tPnRtX2hvdXIpOw0KKyAgICB0bS0+dG1faG91
-ciA9IGNvbnZlcnRfaG91cihzLCBzLT5ody5jbW9zX2RhdGFbUlRDX0hPVVJTXSk7DQogICAgIHRt
-LT50bV93ZGF5ID0gZnJvbV9iY2Qocywgcy0+aHcuY21vc19kYXRhW1JUQ19EQVlfT0ZfV0VFS10p
-Ow0KICAgICB0bS0+dG1fbWRheSA9IGZyb21fYmNkKHMsIHMtPmh3LmNtb3NfZGF0YVtSVENfREFZ
-X09GX01PTlRIXSk7DQogICAgIHRtLT50bV9tb24gPSBmcm9tX2JjZChzLCBzLT5ody5jbW9zX2Rh
-dGFbUlRDX01PTlRIXSkgLSAxOw0KLS0tIGEveGVuL2FyY2gveDg2L2h2bS92cHQuYw0KKysrIGIv
-eGVuL2FyY2gveDg2L2h2bS92cHQuYw0KQEAgLTIyLDYgKzIyLDcgQEANCiAjaW5jbHVkZSA8YXNt
-L2h2bS92cHQuaD4NCiAjaW5jbHVkZSA8YXNtL2V2ZW50Lmg+DQogI2luY2x1ZGUgPGFzbS9hcGlj
-Lmg+DQorI2luY2x1ZGUgPGFzbS9tYzE0NjgxOHJ0Yy5oPg0KDQogI2RlZmluZSBtb2RlX2lzKGQs
-IG5hbWUpIFwNCiAgICAgKChkKS0+YXJjaC5odm1fZG9tYWluLnBhcmFtc1tIVk1fUEFSQU1fVElN
-RVJfTU9ERV0gPT0gSFZNUFRNXyMjbmFtZSkNCkBAIC0yMTgsNiArMjE5LDcgQEAgdm9pZCBwdF91
-cGRhdGVfaXJxKHN0cnVjdCB2Y3B1ICp2KQ0KICAgICBzdHJ1Y3QgcGVyaW9kaWNfdGltZSAqcHQs
-ICp0ZW1wLCAqZWFybGllc3RfcHQgPSBOVUxMOw0KICAgICB1aW50NjRfdCBtYXhfbGFnID0gLTFV
-TEw7DQogICAgIGludCBpcnEsIGlzX2xhcGljOw0KKyAgICB2b2lkICpwdF9wcml2Ow0KDQogICAg
-IHNwaW5fbG9jaygmdi0+YXJjaC5odm1fdmNwdS50bV9sb2NrKTsNCg0KQEAgLTI1MSwxMyArMjUz
-LDE0IEBAIHZvaWQgcHRfdXBkYXRlX2lycShzdHJ1Y3QgdmNwdSAqdikNCiAgICAgZWFybGllc3Rf
-cHQtPmlycV9pc3N1ZWQgPSAxOw0KICAgICBpcnEgPSBlYXJsaWVzdF9wdC0+aXJxOw0KICAgICBp
-c19sYXBpYyA9IChlYXJsaWVzdF9wdC0+c291cmNlID09IFBUU1JDX2xhcGljKTsNCisgICAgcHRf
-cHJpdiA9IGVhcmxpZXN0X3B0LT5wcml2Ow0KDQogICAgIHNwaW5fdW5sb2NrKCZ2LT5hcmNoLmh2
-bV92Y3B1LnRtX2xvY2spOw0KDQogICAgIGlmICggaXNfbGFwaWMgKQ0KLSAgICB7DQogICAgICAg
-ICB2bGFwaWNfc2V0X2lycSh2Y3B1X3ZsYXBpYyh2KSwgaXJxLCAwKTsNCi0gICAgfQ0KKyAgICBl
-bHNlIGlmICggaXJxID09IFJUQ19JUlEgKQ0KKyAgICAgICAgcnRjX3BlcmlvZGljX2ludGVycnVw
-dChwdF9wcml2KTsNCiAgICAgZWxzZQ0KICAgICB7DQogICAgICAgICBodm1faXNhX2lycV9kZWFz
-c2VydCh2LT5kb21haW4sIGlycSk7DQotLS0gYS94ZW4vaW5jbHVkZS9hc20teDg2L2h2bS92cHQu
-aA0KKysrIGIveGVuL2luY2x1ZGUvYXNtLXg4Ni9odm0vdnB0LmgNCkBAIC0xODEsNiArMTgxLDcg
-QEAgdm9pZCBydGNfbWlncmF0ZV90aW1lcnMoc3RydWN0IHZjcHUgKnYpOw0KIHZvaWQgcnRjX2Rl
-aW5pdChzdHJ1Y3QgZG9tYWluICpkKTsNCiB2b2lkIHJ0Y19yZXNldChzdHJ1Y3QgZG9tYWluICpk
-KTsNCiB2b2lkIHJ0Y191cGRhdGVfY2xvY2soc3RydWN0IGRvbWFpbiAqZCk7DQordm9pZCBydGNf
-cGVyaW9kaWNfaW50ZXJydXB0KHZvaWQgKik7DQoNCiB2b2lkIHBtdGltZXJfaW5pdChzdHJ1Y3Qg
-dmNwdSAqdik7DQogdm9pZCBwbXRpbWVyX2RlaW5pdChzdHJ1Y3QgZG9tYWluICpkKTsNCg0KDQpf
-X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXw0KWGVuLWRldmVs
-IG1haWxpbmcgbGlzdA0KWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcNCmh0dHA6Ly9saXN0cy54ZW4u
-b3JnL3hlbi1kZXZlbA==
-
-------=_001_NextPart564768006800_=----
-Content-Type: text/html;
-       charset="gb2312"
-Content-Transfer-Encoding: quoted-printable
-
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<HTML><HEAD>
-<META http-equiv=3DContent-Type content=3D"text/html; charset=3Dgb2312">
-<STYLE>
-BLOCKQUOTE {
-       MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; MARGIN-LEFT: 2em
-}
-OL {
-       MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px
-}
-UL {
-       MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px
-}
-P {
-       MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px
-}
-DIV.FoxDiv20120815221113875709 {
-       FONT-SIZE: 10.5pt; MARGIN: 10px; COLOR: #000080; LINE-HEIGHT: 1.5; FONT-F=
-AMILY: =CB=CE=CC=E5
-}
-BODY {
-       FONT-SIZE: 10.5pt; COLOR: #000080; LINE-HEIGHT: 1.5; FONT-FAMILY: =CB=CE=
-=CC=E5
-}
-</STYLE>
-
-<META content=3D"MSHTML 6.00.2900.5512" name=3DGENERATOR>
-<STYLE>BLOCKQUOTE {
-       MARGIN-TOP: 0px
-}
-OL {
-       MARGIN-TOP: 0px
-}
-UL {
-       MARGIN-TOP: 0px
-}
-</STYLE>
-</HEAD>
-<BODY style=3D"MARGIN: 10px">
-<DIV>Hi, Jan:</DIV>
-<DIV>
-<DIV class=3DFoxDiv20120815221113875709>
-<DIV>I am sorry I really don't have much time to try a test of your patch,=
- and=20
-it is not convenient</DIV>
-<DIV>for me to have a try. For the version I have been using is xen4.0.x, =
-and=20
-your patch is based on </DIV>
-<DIV>the latest version xen4.2.x.(I have never complied the unstable one),=
- so I=20
-merged your patch to my </DIV>
-<DIV>xen4.0.x, still couldn't find the two functions below:</DIV>
-<DIV>&nbsp;static&nbsp;void&nbsp;rtc_update_timer2(void&nbsp;*opaque) </DI=
-V>
-<DIV>&nbsp;static&nbsp;void&nbsp;rtc_alarm_cb(void&nbsp;*opaque) </DIV>
-<DIV>so I didn't merge the two functions which contains a rtc_toggle_irq()=
-=20
-.</DIV>
-<DIV>&nbsp;</DIV>
-<DIV>The results for me were these:</DIV>
-<DIV>1 In my real application environment, it worked very well in the form=
-er=20
-5mins, much better than before,</DIV>
-<DIV>&nbsp;but at last it lagged again. I don't know whether it belongs to=
- the=20
-two missed functions. I lack the </DIV>
-<DIV>&nbsp;ability to figure them out.</DIV>
-<DIV style=3D"TEXT-INDENT: 2em">&nbsp;</DIV>
-<DIV>2 When I tested my test program which I provided days before, it work=
-ed=20
-very well, maybe the program doesn't </DIV>
-<DIV>emulate the real environment due to&nbsp;the same setting rate,&nbsp;=
-so I=20
-modified this program as which in the attachment.</DIV>
-<DIV>if you are more convenient, you can help me to have a look of it.</DI=
-V>
-<DIV>--------------------------------------------------------------------<=
-/DIV>
-<DIV>
-<DIV>#include&nbsp;&lt;stdio.h&gt;</DIV>
-<DIV>#include&nbsp;&lt;windows.h&gt;</DIV>
-<DIV>typedef&nbsp;int&nbsp;(__stdcall&nbsp;*NTSETTIMER)(IN&nbsp;ULONG&nbsp=
-;RequestedResolution,&nbsp;IN&nbsp;BOOLEAN&nbsp;Set,&nbsp;OUT&nbsp;PULONG&=
-nbsp;ActualResolution&nbsp;);</DIV>
-<DIV>typedef&nbsp;int&nbsp;(__stdcall&nbsp;*NTQUERYTIMER)(OUT&nbsp;PULONG&=
-nbsp;&nbsp;&nbsp;MinimumResolution,&nbsp;OUT&nbsp;PULONG&nbsp;MaximumResol=
-ution,&nbsp;OUT&nbsp;PULONG&nbsp;CurrentResolution&nbsp;);</DIV>
-<DIV>&nbsp;</DIV>
-<DIV>int&nbsp;main()</DIV>
-<DIV>{</DIV>
-<DIV>DWORD&nbsp;min_res&nbsp;=3D&nbsp;0,&nbsp;max_res&nbsp;=3D&nbsp;0,&nbs=
-p;cur_res&nbsp;=3D&nbsp;0,&nbsp;ret&nbsp;=3D&nbsp;0;</DIV>
-<DIV>HMODULE&nbsp;&nbsp;hdll&nbsp;=3D&nbsp;NULL;</DIV>
-<DIV>hdll&nbsp;=3D&nbsp;GetModuleHandle("ntdll.dll");</DIV>
-<DIV>NTSETTIMER&nbsp;AddrNtSetTimer&nbsp;=3D&nbsp;0;</DIV>
-<DIV>NTQUERYTIMER&nbsp;AddrNtQueyTimer&nbsp;=3D&nbsp;0;</DIV>
-<DIV></DIV>
-<DIV>AddrNtSetTimer&nbsp;=3D&nbsp;(NTSETTIMER)&nbsp;GetProcAddress(hdll,&n=
-bsp;"NtSetTimerResolution");</DIV>
-<DIV>AddrNtQueyTimer&nbsp;=3D&nbsp;(NTQUERYTIMER)GetProcAddress(hdll,&nbsp=
-;"NtQueryTimerResolution");</DIV>
-<DIV>&nbsp;</DIV>
-<DIV>while&nbsp;(1)</DIV>
-<DIV>{</DIV>
-<DIV>ret&nbsp;=3D&nbsp;AddrNtQueyTimer(&amp;min_res,&nbsp;&amp;max_res,&nb=
-sp;&amp;cur_res);</DIV>
-<DIV>printf("min_res&nbsp;=3D&nbsp;%d,&nbsp;max_res&nbsp;=3D&nbsp;%d,&nbsp=
-;cur_res&nbsp;=3D&nbsp;%d\n",min_res,&nbsp;max_res,&nbsp;cur_res);</DIV>
-<DIV>Sleep(5);</DIV>
-<DIV>ret&nbsp;=3D&nbsp;AddrNtSetTimer(10000,&nbsp;1,&nbsp;&amp;cur_res);</=
-DIV>
-<DIV>Sleep(5);</DIV>
-<DIV>ret&nbsp;=3D&nbsp;AddrNtSetTimer(10000,&nbsp;0,&nbsp;&amp;cur_res);</=
-DIV>
-<DIV>Sleep(5);</DIV>
-<DIV>ret&nbsp;=3D&nbsp;AddrNtSetTimer(50000,&nbsp;1,&nbsp;&amp;cur_res);</=
-DIV>
-<DIV>Sleep(5);</DIV>
-<DIV>ret&nbsp;=3D&nbsp;AddrNtSetTimer(50000,&nbsp;0,&nbsp;&amp;cur_res);</=
-DIV>
-<DIV>Sleep(5);</DIV>
-<DIV>ret&nbsp;=3D&nbsp;AddrNtSetTimer(100000,&nbsp;1,&nbsp;&amp;cur_res);<=
-/DIV>
-<DIV>Sleep(5);</DIV>
-<DIV>ret&nbsp;=3D&nbsp;AddrNtSetTimer(100000,&nbsp;0,&nbsp;&amp;cur_res);<=
-/DIV>
-<DIV>Sleep(5);</DIV>
-<DIV>}</DIV>
-<DIV>&nbsp;</DIV>
-<DIV>return&nbsp;0;</DIV>
-<DIV>}</DIV></DIV>
-<DIV>--------------------------------------------------------------------<=
-/DIV>
-<DIV>And I have a opinion, because our product is based on Version Xen4.0.=
-x, if=20
-you have enough time, can you write </DIV>
-<DIV>another patch based <A=20
-href=3D"http://xenbits.xen.org/hg/xen-4.0-testing.hg/">http://xenbits.xen.=
-org/hg/xen-4.0-testing.hg/</A>&nbsp;for=20
-me, thank you very much!</DIV>
-<DIV>&nbsp;</DIV>
-<DIV>3 I also have a thought that can we have some detecting methods to fi=
-nd the=20
-lagging time earlier to adjust time</DIV>
-<DIV>back to normal value in the code?</DIV>
-<DIV>&nbsp;</DIV>
-<DIV>best regards,</DIV>
-<DIV style=3D"TEXT-INDENT: 2em">&nbsp;</DIV>
-<DIV style=3D"TEXT-INDENT: 2em">
-<HR style=3D"WIDTH: 210px; HEIGHT: 1px" align=3Dleft color=3D#b5c4df SIZE=
-=3D1>
-</DIV>
-<DIV><SPAN>tupeng212</SPAN></DIV>
-<DIV>
-<DIV>&nbsp;</DIV></DIV>
-<DIV=20
-style=3D"BORDER-RIGHT: medium none; PADDING-RIGHT: 0cm; BORDER-TOP: #b5c4d=
-f 1pt solid; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; BORDER-LEFT: medium n=
-one; PADDING-TOP: 3pt; BORDER-BOTTOM: medium none">
-<DIV=20
-style=3D"PADDING-RIGHT: 8px; PADDING-LEFT: 8px; FONT-SIZE: 12px; BACKGROUN=
-D: #efefef; PADDING-BOTTOM: 8px; COLOR: #000000; PADDING-TOP: 8px">
-<DIV>
-<DIV>Second&nbsp;draft&nbsp;of&nbsp;a&nbsp;patch&nbsp;posted;&nbsp;no&nbsp=
-;test&nbsp;results&nbsp;so&nbsp;far&nbsp;for&nbsp;first&nbsp;draft.</DIV>
-<DIV>Jan</DIV></DIV>
-<DIV><B></B>&nbsp;</DIV>
-<DIV><B>From:</B>&nbsp;<A href=3D"mailto:JBeulich@suse.com">Jan Beulich</A=
-></DIV>
-<DIV><B>Date:</B>&nbsp;2012-08-14&nbsp;17:51</DIV>
-<DIV><B>To:</B>&nbsp;<A href=3D"mailto:yang.z.zhang@intel.com">Yang Z Zhan=
-g</A>;=20
-<A href=3D"mailto:keir@xen.org">Keir Fraser</A>; <A href=3D"mailto:tim@xen=
-.org">Tim=20
-Deegan</A></DIV>
-<DIV><B>CC:</B>&nbsp;<A href=3D"mailto:tupeng212@gmail.com">tupeng212</A>;=
- <A=20
-href=3D"mailto:xen-devel@lists.xen.org">xen-devel</A></DIV>
-<DIV><B>Subject:</B>&nbsp;[Xen-devel] [PATCH, RFC v2] x86/HVM: assorted RT=
-C=20
-emulation adjustments (was Re: Big Bug:Time in VM goes=20
-slower...)</DIV></DIV></DIV>
-<DIV>
-<DIV>Below/attached&nbsp;a&nbsp;second&nbsp;draft&nbsp;of&nbsp;a&nbsp;patc=
-h&nbsp;to&nbsp;fix&nbsp;not&nbsp;only&nbsp;this</DIV>
-<DIV>issue,&nbsp;but&nbsp;a&nbsp;few&nbsp;more&nbsp;with&nbsp;the&nbsp;RTC=
-&nbsp;emulation.</DIV>
-<DIV>&nbsp;</DIV>
-<DIV>Keir,&nbsp;Tim,&nbsp;Yang,&nbsp;others&nbsp;-&nbsp;the&nbsp;change&nb=
-sp;to&nbsp;xen/arch/x86/hvm/vpt.c&nbsp;really</DIV>
-<DIV>looks&nbsp;more&nbsp;like&nbsp;a&nbsp;hack&nbsp;than&nbsp;a&nbsp;solu=
-tion,&nbsp;but&nbsp;I&nbsp;don't&nbsp;see&nbsp;another</DIV>
-<DIV>way&nbsp;without&nbsp;much&nbsp;more&nbsp;intrusive&nbsp;changes.&nbs=
-p;The&nbsp;point&nbsp;is&nbsp;that&nbsp;we</DIV>
-<DIV>want&nbsp;the&nbsp;RTC&nbsp;code&nbsp;to&nbsp;decide&nbsp;whether&nbs=
-p;to&nbsp;generate&nbsp;an&nbsp;interrupt</DIV>
-<DIV>(so&nbsp;that&nbsp;RTC_PF&nbsp;can&nbsp;become&nbsp;set&nbsp;correctl=
-y&nbsp;even&nbsp;without&nbsp;RTC_PIE</DIV>
-<DIV>getting&nbsp;enabled&nbsp;by&nbsp;the&nbsp;guest).</DIV>
-<DIV>&nbsp;</DIV>
-<DIV>Additionally&nbsp;I&nbsp;wonder&nbsp;whether&nbsp;alarm_timer_update(=
-)&nbsp;shouldn't</DIV>
-<DIV>bail&nbsp;on&nbsp;non-conforming&nbsp;RTC_*_ALARM&nbsp;values&nbsp;(a=
-s&nbsp;those&nbsp;would</DIV>
-<DIV>never&nbsp;match&nbsp;the&nbsp;values&nbsp;they&nbsp;get&nbsp;compare=
-d&nbsp;against,&nbsp;whereas</DIV>
-<DIV>with&nbsp;the&nbsp;current&nbsp;way&nbsp;of&nbsp;handling&nbsp;this&n=
-bsp;they&nbsp;would&nbsp;appear&nbsp;to</DIV>
-<DIV>match&nbsp;-&nbsp;i.e.&nbsp;set&nbsp;RTC_AF&nbsp;and&nbsp;possibly&nb=
-sp;generate&nbsp;an&nbsp;interrupt&nbsp;-</DIV>
-<DIV>some&nbsp;other&nbsp;point&nbsp;in&nbsp;time).&nbsp;I&nbsp;realize&nb=
-sp;the&nbsp;behavior&nbsp;here&nbsp;may&nbsp;not</DIV>
-<DIV>be&nbsp;precisely&nbsp;specified,&nbsp;but&nbsp;the&nbsp;specificatio=
-n&nbsp;saying&nbsp;"the&nbsp;current</DIV>
-<DIV>time&nbsp;has&nbsp;matched&nbsp;the&nbsp;alarm&nbsp;time"&nbsp;means&=
-nbsp;to&nbsp;me&nbsp;a&nbsp;value&nbsp;by&nbsp;value</DIV>
-<DIV>comparison,&nbsp;which&nbsp;implies&nbsp;that&nbsp;non-conforming&nbs=
-p;values&nbsp;would</DIV>
-<DIV>never&nbsp;match&nbsp;(since&nbsp;non-conforming&nbsp;current&nbsp;ti=
-me&nbsp;values&nbsp;could</DIV>
-<DIV>get&nbsp;replaced&nbsp;at&nbsp;any&nbsp;time&nbsp;by&nbsp;the&nbsp;ha=
-rdware&nbsp;due&nbsp;to&nbsp;overflow</DIV>
-<DIV>detection).</DIV>
-<DIV>&nbsp;</DIV>
-<DIV>Jan</DIV>
-<DIV>&nbsp;</DIV>
-<DIV>-&nbsp;don't&nbsp;call&nbsp;rtc_timer_update()&nbsp;on&nbsp;REG_A&nbs=
-p;writes&nbsp;when&nbsp;the&nbsp;value&nbsp;didn't</DIV>
-<DIV>&nbsp;&nbsp;change&nbsp;(doing&nbsp;the&nbsp;call&nbsp;always&nbsp;wa=
-s&nbsp;reported&nbsp;to&nbsp;cause&nbsp;wall&nbsp;clock&nbsp;time</DIV>
-<DIV>&nbsp;&nbsp;lagging&nbsp;with&nbsp;the&nbsp;JVM&nbsp;running&nbsp;on&=
-nbsp;Windows)</DIV>
-<DIV>-&nbsp;don't&nbsp;call&nbsp;rtc_timer_update()&nbsp;on&nbsp;REG_B&nbs=
-p;writes&nbsp;at&nbsp;all</DIV>
-<DIV>-&nbsp;only&nbsp;call&nbsp;alarm_timer_update()&nbsp;on&nbsp;REG_B&nb=
-sp;writes&nbsp;when&nbsp;relevant&nbsp;bits</DIV>
-<DIV>&nbsp;&nbsp;change</DIV>
-<DIV>-&nbsp;only&nbsp;call&nbsp;check_update_timer()&nbsp;on&nbsp;REG_B&nb=
-sp;writes&nbsp;when&nbsp;SET&nbsp;changes</DIV>
-<DIV>-&nbsp;instead&nbsp;properly&nbsp;handle&nbsp;AF&nbsp;and&nbsp;PF&nbs=
-p;when&nbsp;the&nbsp;guest&nbsp;is&nbsp;not&nbsp;also&nbsp;setting</DIV>
-<DIV>&nbsp;&nbsp;AIE/PIE&nbsp;respectively&nbsp;(for&nbsp;UF&nbsp;this&nbs=
-p;was&nbsp;already&nbsp;the&nbsp;case,&nbsp;only&nbsp;a</DIV>
-<DIV>&nbsp;&nbsp;comment&nbsp;was&nbsp;slightly&nbsp;inaccurate)</DIV>
-<DIV>-&nbsp;raise&nbsp;the&nbsp;RTC&nbsp;IRQ&nbsp;not&nbsp;only&nbsp;when&=
-nbsp;UIE&nbsp;gets&nbsp;set&nbsp;while&nbsp;UF&nbsp;was&nbsp;already</DIV>
-<DIV>&nbsp;&nbsp;set,&nbsp;but&nbsp;generalize&nbsp;this&nbsp;to&nbsp;cove=
-r&nbsp;AIE&nbsp;and&nbsp;PIE&nbsp;as&nbsp;well</DIV>
-<DIV>-&nbsp;properly&nbsp;mask&nbsp;off&nbsp;bit&nbsp;7&nbsp;when&nbsp;ret=
-rieving&nbsp;the&nbsp;hour&nbsp;values&nbsp;in</DIV>
-<DIV>&nbsp;&nbsp;alarm_timer_update(),&nbsp;and&nbsp;properly&nbsp;use&nbs=
-p;RTC_HOURS_ALARM's&nbsp;bit&nbsp;7&nbsp;when</DIV>
-<DIV>&nbsp;&nbsp;converting&nbsp;from&nbsp;12-&nbsp;to&nbsp;24-hour&nbsp;v=
-alue</DIV>
-<DIV>-&nbsp;also&nbsp;handle&nbsp;the&nbsp;two&nbsp;other&nbsp;possible&nb=
-sp;clock&nbsp;bases</DIV>
-<DIV>-&nbsp;use&nbsp;RTC_*&nbsp;names&nbsp;in&nbsp;a&nbsp;couple&nbsp;of&n=
-bsp;places&nbsp;where&nbsp;literal&nbsp;numbers&nbsp;were&nbsp;used</DIV>
-<DIV>&nbsp;&nbsp;so&nbsp;far</DIV>
-<DIV>&nbsp;</DIV>
-<DIV>---&nbsp;a/xen/arch/x86/hvm/rtc.c</DIV>
-<DIV>+++&nbsp;b/xen/arch/x86/hvm/rtc.c</DIV>
-<DIV>@@&nbsp;-50,11&nbsp;+50,24&nbsp;@@&nbsp;static&nbsp;void&nbsp;rtc_set=
-_time(RTCState&nbsp;*s);</DIV>
-<DIV>&nbsp;static&nbsp;inline&nbsp;int&nbsp;from_bcd(RTCState&nbsp;*s,&nbs=
-p;int&nbsp;a);</DIV>
-<DIV>&nbsp;static&nbsp;inline&nbsp;int&nbsp;convert_hour(RTCState&nbsp;*s,=
-&nbsp;int&nbsp;hour);</DIV>
-<DIV>&nbsp;</DIV>
-<DIV>-static&nbsp;void&nbsp;rtc_periodic_cb(struct&nbsp;vcpu&nbsp;*v,&nbsp=
-;void&nbsp;*opaque)</DIV>
-<DIV>+static&nbsp;void&nbsp;rtc_toggle_irq(RTCState&nbsp;*s)</DIV>
-<DIV>+{</DIV>
-<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;struct&nbsp;domain&nbsp;*d&nbsp;=3D&nbsp;vrt=
-c_domain(s);</DIV>
-<DIV>+</DIV>
-<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;ASSERT(spin_is_locked(&amp;s-&gt;lock));</DI=
-V>
-<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;s-&gt;hw.cmos_data[RTC_REG_C]&nbsp;|=3D&nbsp=
-;RTC_IRQF;</DIV>
-<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;hvm_isa_irq_deassert(d,&nbsp;RTC_IRQ);</DIV>
-<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;hvm_isa_irq_assert(d,&nbsp;RTC_IRQ);</DIV>
-<DIV>+}</DIV>
-<DIV>+</DIV>
-<DIV>+void&nbsp;rtc_periodic_interrupt(void&nbsp;*opaque)</DIV>
-<DIV>&nbsp;{</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RTCState&nbsp;*s&nbsp;=3D&nbsp;opaque;<=
-/DIV>
-<DIV>+</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;spin_lock(&amp;s-&gt;lock);</DIV>
-<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;s-&gt;hw.cmos_data[RTC_REG_C]&nbsp;|=3D&nbsp=
-;0xc0;</DIV>
-<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;s-&gt;hw.cmos_data[RTC_REG_C]&nbsp;|=3D&nbsp=
-;RTC_PF;</DIV>
-<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(&nbsp;s-&gt;hw.cmos_data[RTC_REG_B]=
-&nbsp;&amp;&nbsp;RTC_PIE&nbsp;)</DIV>
-<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rtc_toggle_irq(s);</=
-DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;spin_unlock(&amp;s-&gt;lock);</DIV>
-<DIV>&nbsp;}</DIV>
-<DIV>&nbsp;</DIV>
-<DIV>@@&nbsp;-68,19&nbsp;+81,25&nbsp;@@&nbsp;static&nbsp;void&nbsp;rtc_tim=
-er_update(RTCState&nbsp;*s</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ASSERT(spin_is_locked(&amp;s-&gt;lock))=
-;</DIV>
-<DIV>&nbsp;</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;period_code&nbsp;=3D&nbsp;s-&gt;hw.cmos=
-_data[RTC_REG_A]&nbsp;&amp;&nbsp;RTC_RATE_SELECT;</DIV>
-<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(&nbsp;(period_code&nbsp;!=3D&nbsp;0=
-)&nbsp;&amp;&amp;&nbsp;(s-&gt;hw.cmos_data[RTC_REG_B]&nbsp;&amp;&nbsp;RTC_=
-PIE)&nbsp;)</DIV>
-<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;switch&nbsp;(&nbsp;s-&gt;hw.cmos_data[RTC_RE=
-G_A]&nbsp;&amp;&nbsp;RTC_DIV_CTL&nbsp;)</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{</DIV>
-<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(&nbsp;perio=
-d_code&nbsp;&lt;=3D&nbsp;2&nbsp;)</DIV>
-<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;RTC_REF_CLCK_32KHZ:</DIV>
-<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(&nbsp;(peri=
-od_code&nbsp;!=3D&nbsp;0)&nbsp;&amp;&amp;&nbsp;(period_code&nbsp;&lt;=3D&n=
-bsp;2)&nbsp;)</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
-sp;&nbsp;period_code&nbsp;+=3D&nbsp;7;</DIV>
-<DIV>-</DIV>
-<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;period&nbsp;=3D&nbsp=
-;1&nbsp;&lt;&lt;&nbsp;(period_code&nbsp;-&nbsp;1);&nbsp;/*&nbsp;period&nbs=
-p;in&nbsp;32&nbsp;Khz&nbsp;cycles&nbsp;*/</DIV>
-<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;period&nbsp;=3D&nbsp=
-;DIV_ROUND((period&nbsp;*&nbsp;1000000000ULL),&nbsp;32768);&nbsp;/*&nbsp;p=
-eriod&nbsp;in&nbsp;ns&nbsp;*/</DIV>
-<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;create_periodic_time=
-(v,&nbsp;&amp;s-&gt;pt,&nbsp;period,&nbsp;period,&nbsp;RTC_IRQ,</DIV>
-<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
-bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
-p;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rtc_periodic_cb,&nbsp;s);</DIV>
-<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;}</DIV>
-<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;else</DIV>
-<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;{</DIV>
-<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;fall&nbsp;th=
-rough&nbsp;*/</DIV>
-<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;RTC_REF_CLCK_1MHZ:</DIV>
-<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;RTC_REF_CLCK_4MHZ:</DIV>
-<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(&nbsp;perio=
-d_code&nbsp;!=3D&nbsp;0&nbsp;)</DIV>
-<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{</DIV>
-<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
-bsp;period&nbsp;=3D&nbsp;1&nbsp;&lt;&lt;&nbsp;(period_code&nbsp;-&nbsp;1);=
-&nbsp;/*&nbsp;period&nbsp;in&nbsp;32&nbsp;Khz&nbsp;cycles&nbsp;*/</DIV>
-<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
-bsp;period&nbsp;=3D&nbsp;DIV_ROUND(period&nbsp;*&nbsp;1000000000ULL,&nbsp;=
-32768);&nbsp;/*&nbsp;in&nbsp;ns&nbsp;*/</DIV>
-<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
-bsp;create_periodic_time(v,&nbsp;&amp;s-&gt;pt,&nbsp;period,&nbsp;period,&=
-nbsp;RTC_IRQ,&nbsp;NULL,&nbsp;s);</DIV>
-<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
-bsp;break;</DIV>
-<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</DIV>
-<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;fall&nbsp;th=
-rough&nbsp;*/</DIV>
-<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;default:</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;destroy_periodi=
-c_time(&amp;s-&gt;pt);</DIV>
-<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</DIV>
-<DIV>&nbsp;}</DIV>
-<DIV>&nbsp;</DIV>
-<DIV>@@&nbsp;-102,7&nbsp;+121,7&nbsp;@@&nbsp;static&nbsp;void&nbsp;check_u=
-pdate_timer(RTCState&nbsp;</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;guest_usec&nbsp=
-;=3D&nbsp;get_localtime_us(d)&nbsp;%&nbsp;USEC_PER_SEC;</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(guest_=
-usec&nbsp;&gt;=3D&nbsp;(USEC_PER_SEC&nbsp;-&nbsp;244))</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{</DIV>
-<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
-bsp;/*&nbsp;RTC&nbsp;is&nbsp;in&nbsp;update&nbsp;cycle&nbsp;when&nbsp;enab=
-ling&nbsp;UIE&nbsp;*/</DIV>
-<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
-bsp;/*&nbsp;RTC&nbsp;is&nbsp;in&nbsp;update&nbsp;cycle&nbsp;*/</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
-sp;&nbsp;s-&gt;hw.cmos_data[RTC_REG_A]&nbsp;|=3D&nbsp;RTC_UIP;</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
-sp;&nbsp;next_update_time&nbsp;=3D&nbsp;(USEC_PER_SEC&nbsp;-&nbsp;guest_us=
-ec)&nbsp;*&nbsp;NS_PER_USEC;</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
-sp;&nbsp;expire_time&nbsp;=3D&nbsp;NOW()&nbsp;+&nbsp;next_update_time;</DI=
-V>
-<DIV>@@&nbsp;-144,7&nbsp;+163,6&nbsp;@@&nbsp;static&nbsp;void&nbsp;rtc_upd=
-ate_timer(void&nbsp;*opaqu</DIV>
-<DIV>&nbsp;static&nbsp;void&nbsp;rtc_update_timer2(void&nbsp;*opaque)</DIV=
->
-<DIV>&nbsp;{</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RTCState&nbsp;*s&nbsp;=3D&nbsp;opaque;<=
-/DIV>
-<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;struct&nbsp;domain&nbsp;*d&nbsp;=3D&nbsp;vrt=
-c_domain(s);</DIV>
-<DIV>&nbsp;</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;spin_lock(&amp;s-&gt;lock);</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(!(s-&gt;hw.cmos_data[RTC_REG_B=
-]&nbsp;&amp;&nbsp;RTC_SET))</DIV>
-<DIV>@@&nbsp;-152,11&nbsp;+170,7&nbsp;@@&nbsp;static&nbsp;void&nbsp;rtc_up=
-date_timer2(void&nbsp;*opaq</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s-&gt;hw.cmos_d=
-ata[RTC_REG_C]&nbsp;|=3D&nbsp;RTC_UF;</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s-&gt;hw.cmos_d=
-ata[RTC_REG_A]&nbsp;&amp;=3D&nbsp;~RTC_UIP;</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;((s-&gt=
-;hw.cmos_data[RTC_REG_B]&nbsp;&amp;&nbsp;RTC_UIE))</DIV>
-<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{</DIV>
-<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
-bsp;s-&gt;hw.cmos_data[RTC_REG_C]&nbsp;|=3D&nbsp;RTC_IRQF;</DIV>
-<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
-bsp;hvm_isa_irq_deassert(d,&nbsp;RTC_IRQ);</DIV>
-<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
-bsp;hvm_isa_irq_assert(d,&nbsp;RTC_IRQ);</DIV>
-<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</DIV>
-<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
-bsp;rtc_toggle_irq(s);</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;check_update_ti=
-mer(s);</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;spin_unlock(&amp;s-&gt;lock);</DIV>
-<DIV>@@&nbsp;-175,21&nbsp;+189,18&nbsp;@@&nbsp;static&nbsp;void&nbsp;alarm=
-_timer_update(RTCState&nbsp;</DIV>
-<DIV>&nbsp;</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;stop_timer(&amp;s-&gt;alarm_timer);</DI=
-V>
-<DIV>&nbsp;</DIV>
-<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;((s-&gt;hw.cmos_data[RTC_REG_B]&nbsp=
-;&amp;&nbsp;RTC_AIE)&nbsp;&amp;&amp;</DIV>
-<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
-bsp;!(s-&gt;hw.cmos_data[RTC_REG_B]&nbsp;&amp;&nbsp;RTC_SET))</DIV>
-<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(&nbsp;!(s-&gt;hw.cmos_data[RTC_REG_=
-B]&nbsp;&amp;&nbsp;RTC_SET)&nbsp;)</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s-&gt;current_t=
-m&nbsp;=3D&nbsp;gmtime(get_localtime(d));</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rtc_copy_date(s=
-);</DIV>
-<DIV>&nbsp;</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alarm_sec&nbsp;=
-=3D&nbsp;from_bcd(s,&nbsp;s-&gt;hw.cmos_data[RTC_SECONDS_ALARM]);</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alarm_min&nbsp;=
-=3D&nbsp;from_bcd(s,&nbsp;s-&gt;hw.cmos_data[RTC_MINUTES_ALARM]);</DIV>
-<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alarm_hour&nbsp;=3D&=
-nbsp;from_bcd(s,&nbsp;s-&gt;hw.cmos_data[RTC_HOURS_ALARM]);</DIV>
-<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alarm_hour&nbsp;=3D&=
-nbsp;convert_hour(s,&nbsp;alarm_hour);</DIV>
-<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alarm_hour&nbsp;=3D&=
-nbsp;convert_hour(s,&nbsp;s-&gt;hw.cmos_data[RTC_HOURS_ALARM]);</DIV>
-<DIV>&nbsp;</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cur_sec&nbsp;=
-=3D&nbsp;from_bcd(s,&nbsp;s-&gt;hw.cmos_data[RTC_SECONDS]);</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cur_min&nbsp;=
-=3D&nbsp;from_bcd(s,&nbsp;s-&gt;hw.cmos_data[RTC_MINUTES]);</DIV>
-<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cur_hour&nbsp;=3D&nb=
-sp;from_bcd(s,&nbsp;s-&gt;hw.cmos_data[RTC_HOURS]);</DIV>
-<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cur_hour&nbsp;=3D&nb=
-sp;convert_hour(s,&nbsp;cur_hour);</DIV>
-<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;cur_hour&nbsp;=3D&nb=
-sp;convert_hour(s,&nbsp;s-&gt;hw.cmos_data[RTC_HOURS]);</DIV>
-<DIV>&nbsp;</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;next_update_tim=
-e&nbsp;=3D&nbsp;USEC_PER_SEC&nbsp;-&nbsp;(get_localtime_us(d)&nbsp;%&nbsp;=
-USEC_PER_SEC);</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;next_update_tim=
-e&nbsp;=3D&nbsp;next_update_time&nbsp;*&nbsp;NS_PER_USEC&nbsp;+&nbsp;NOW()=
-;</DIV>
-<DIV>@@&nbsp;-343,7&nbsp;+354,6&nbsp;@@&nbsp;static&nbsp;void&nbsp;alarm_t=
-imer_update(RTCState&nbsp;</DIV>
-<DIV>&nbsp;static&nbsp;void&nbsp;rtc_alarm_cb(void&nbsp;*opaque)</DIV>
-<DIV>&nbsp;{</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RTCState&nbsp;*s&nbsp;=3D&nbsp;opaque;<=
-/DIV>
-<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;struct&nbsp;domain&nbsp;*d&nbsp;=3D&nbsp;vrt=
-c_domain(s);</DIV>
-<DIV>&nbsp;</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;spin_lock(&amp;s-&gt;lock);</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(!(s-&gt;hw.cmos_data[RTC_REG_B=
-]&nbsp;&amp;&nbsp;RTC_SET))</DIV>
-<DIV>@@&nbsp;-351,11&nbsp;+361,7&nbsp;@@&nbsp;static&nbsp;void&nbsp;rtc_al=
-arm_cb(void&nbsp;*opaque)</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s-&gt;hw.cmos_d=
-ata[RTC_REG_C]&nbsp;|=3D&nbsp;RTC_AF;</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;alarm&n=
-bsp;interrupt&nbsp;*/</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(s-&gt;=
-hw.cmos_data[RTC_REG_B]&nbsp;&amp;&nbsp;RTC_AIE)</DIV>
-<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{</DIV>
-<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
-bsp;s-&gt;hw.cmos_data[RTC_REG_C]&nbsp;|=3D&nbsp;RTC_IRQF;</DIV>
-<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
-bsp;hvm_isa_irq_deassert(d,&nbsp;RTC_IRQ);</DIV>
-<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
-bsp;hvm_isa_irq_assert(d,&nbsp;RTC_IRQ);</DIV>
-<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</DIV>
-<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
-bsp;rtc_toggle_irq(s);</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alarm_timer_upd=
-ate(s);</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;spin_unlock(&amp;s-&gt;lock);</DIV>
-<DIV>@@&nbsp;-365,6&nbsp;+371,7&nbsp;@@&nbsp;static&nbsp;int&nbsp;rtc_iopo=
-rt_write(void&nbsp;*opaque</DIV>
-<DIV>&nbsp;{</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RTCState&nbsp;*s&nbsp;=3D&nbsp;opaque;<=
-/DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;struct&nbsp;domain&nbsp;*d&nbsp;=3D&nbs=
-p;vrtc_domain(s);</DIV>
-<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;uint32_t&nbsp;orig,&nbsp;mask;</DIV>
-<DIV>&nbsp;</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;spin_lock(&amp;s-&gt;lock);</DIV>
-<DIV>&nbsp;</DIV>
-<DIV>@@&nbsp;-382,6&nbsp;+389,7&nbsp;@@&nbsp;static&nbsp;int&nbsp;rtc_iopo=
-rt_write(void&nbsp;*opaque</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;0;<=
-/DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</DIV>
-<DIV>&nbsp;</DIV>
-<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;orig&nbsp;=3D&nbsp;s-&gt;hw.cmos_data[s-&gt;=
-hw.cmos_index];</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;switch&nbsp;(&nbsp;s-&gt;hw.cmos_index&=
-nbsp;)</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;RTC_SECONDS_ALARM:</DIV>
-<DIV>@@&nbsp;-405,9&nbsp;+413,9&nbsp;@@&nbsp;static&nbsp;int&nbsp;rtc_iopo=
-rt_write(void&nbsp;*opaque</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;RTC_REG_A:</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;UIP&nbs=
-p;bit&nbsp;is&nbsp;read&nbsp;only&nbsp;*/</DIV>
-<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s-&gt;hw.cmos_data[R=
-TC_REG_A]&nbsp;=3D&nbsp;(data&nbsp;&amp;&nbsp;~RTC_UIP)&nbsp;|</DIV>
-<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
-bsp;(s-&gt;hw.cmos_data[RTC_REG_A]&nbsp;&amp;&nbsp;RTC_UIP);</DIV>
-<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rtc_timer_update(s);=
-</DIV>
-<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s-&gt;hw.cmos_data[R=
-TC_REG_A]&nbsp;=3D&nbsp;(data&nbsp;&amp;&nbsp;~RTC_UIP)&nbsp;|&nbsp;(orig&=
-nbsp;&amp;&nbsp;RTC_UIP);</DIV>
-<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(&nbsp;(data=
-&nbsp;^&nbsp;orig)&nbsp;&amp;&nbsp;(RTC_RATE_SELECT&nbsp;|&nbsp;RTC_DIV_CT=
-L)&nbsp;)</DIV>
-<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
-bsp;rtc_timer_update(s);</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;RTC_REG_B:</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(&nbsp;=
-data&nbsp;&amp;&nbsp;RTC_SET&nbsp;)</DIV>
-<DIV>@@&nbsp;-415,7&nbsp;+423,7&nbsp;@@&nbsp;static&nbsp;int&nbsp;rtc_iopo=
-rt_write(void&nbsp;*opaque</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
-sp;&nbsp;/*&nbsp;set&nbsp;mode:&nbsp;reset&nbsp;UIP&nbsp;mode&nbsp;*/</DIV=
->
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
-sp;&nbsp;s-&gt;hw.cmos_data[RTC_REG_A]&nbsp;&amp;=3D&nbsp;~RTC_UIP;</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
-sp;&nbsp;/*&nbsp;adjust&nbsp;cmos&nbsp;before&nbsp;stopping&nbsp;*/</DIV>
-<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
-bsp;if&nbsp;(!(s-&gt;hw.cmos_data[RTC_REG_B]&nbsp;&amp;&nbsp;RTC_SET))</DI=
-V>
-<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
-bsp;if&nbsp;(!(orig&nbsp;&amp;&nbsp;RTC_SET))</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
-sp;&nbsp;{</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
-sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s-&gt;current_tm&nbsp;=3D&nbsp;gmtime(get=
-_localtime(d));</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
-sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rtc_copy_date(s);</DIV>
-<DIV>@@&nbsp;-424,21&nbsp;+432,26&nbsp;@@&nbsp;static&nbsp;int&nbsp;rtc_io=
-port_write(void&nbsp;*opaque</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
-sp;&nbsp;/*&nbsp;if&nbsp;disabling&nbsp;set&nbsp;mode,&nbsp;update&nbsp;th=
-e&nbsp;time&nbsp;*/</DIV>
-<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
-bsp;if&nbsp;(&nbsp;s-&gt;hw.cmos_data[RTC_REG_B]&nbsp;&amp;&nbsp;RTC_SET&n=
-bsp;)</DIV>
-<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
-bsp;if&nbsp;(&nbsp;orig&nbsp;&amp;&nbsp;RTC_SET&nbsp;)</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
-sp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rtc_set_time(s);</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</DIV>
-<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*&nbsp;if&nbsp;the&=
-nbsp;interrupt&nbsp;is&nbsp;already&nbsp;set&nbsp;when&nbsp;the&nbsp;inter=
-rupt&nbsp;become</DIV>
-<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;enabled=
-,&nbsp;raise&nbsp;an&nbsp;interrupt&nbsp;immediately*/</DIV>
-<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;((data&nbsp;=
-&amp;&nbsp;RTC_UIE)&nbsp;&amp;&amp;&nbsp;!(s-&gt;hw.cmos_data[RTC_REG_B]&n=
-bsp;&amp;&nbsp;RTC_UIE))</DIV>
-<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
-bsp;if&nbsp;(s-&gt;hw.cmos_data[RTC_REG_C]&nbsp;&amp;&nbsp;RTC_UF)</DIV>
-<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;/*</DIV>
-<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;If&nbsp=
-;the&nbsp;interrupt&nbsp;is&nbsp;already&nbsp;set&nbsp;when&nbsp;the&nbsp;=
-interrupt&nbsp;becomes</DIV>
-<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;enabled=
-,&nbsp;raise&nbsp;an&nbsp;interrupt&nbsp;immediately.</DIV>
-<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*&nbsp;NB:&nbs=
-p;RTC_{A,P,U}IE&nbsp;=3D=3D&nbsp;RTC_{A,P,U}F&nbsp;respectively.</DIV>
-<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;*/</DIV>
-<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;for&nbsp;(&nbsp;mask=
-&nbsp;=3D&nbsp;RTC_UIE;&nbsp;mask&nbsp;&lt;=3D&nbsp;RTC_PIE;&nbsp;mask&nbs=
-p;&lt;&lt;=3D&nbsp;1&nbsp;)</DIV>
-<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
-bsp;if&nbsp;(&nbsp;(data&nbsp;&amp;&nbsp;mask)&nbsp;&amp;&amp;&nbsp;!(orig=
-&nbsp;&amp;&nbsp;mask)&nbsp;&amp;&amp;</DIV>
-<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
-bsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(s-&gt;hw.cmos_data[RTC_REG_C]&nbsp;&amp=
-;&nbsp;mask)&nbsp;)</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
-sp;&nbsp;{</DIV>
-<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
-bsp;&nbsp;&nbsp;&nbsp;&nbsp;hvm_isa_irq_deassert(d,&nbsp;RTC_IRQ);</DIV>
-<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
-bsp;&nbsp;&nbsp;&nbsp;&nbsp;hvm_isa_irq_assert(d,&nbsp;RTC_IRQ);</DIV>
-<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
-bsp;&nbsp;&nbsp;&nbsp;&nbsp;rtc_toggle_irq(s);</DIV>
-<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
-bsp;&nbsp;&nbsp;&nbsp;&nbsp;break;</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
-sp;&nbsp;}</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;s-&gt;hw.cmos_d=
-ata[RTC_REG_B]&nbsp;=3D&nbsp;data;</DIV>
-<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rtc_timer_update(s);=
-</DIV>
-<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;check_update_timer(s=
-);</DIV>
-<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;alarm_timer_update(s=
-);</DIV>
-<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(&nbsp;(data=
-&nbsp;^&nbsp;orig)&nbsp;&amp;&nbsp;RTC_SET&nbsp;)</DIV>
-<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
-bsp;check_update_timer(s);</DIV>
-<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(&nbsp;(data=
-&nbsp;^&nbsp;orig)&nbsp;&amp;&nbsp;(RTC_24H&nbsp;|&nbsp;RTC_DM_BINARY&nbsp=
-;|&nbsp;RTC_SET)&nbsp;)</DIV>
-<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&n=
-bsp;alarm_timer_update(s);</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;break;</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;RTC_REG_C:</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;case&nbsp;RTC_REG_D:</DIV>
-<DIV>@@&nbsp;-453,7&nbsp;+466,7&nbsp;@@&nbsp;static&nbsp;int&nbsp;rtc_iopo=
-rt_write(void&nbsp;*opaque</DIV>
-<DIV>&nbsp;</DIV>
-<DIV>&nbsp;static&nbsp;inline&nbsp;int&nbsp;to_bcd(RTCState&nbsp;*s,&nbsp;=
-int&nbsp;a)</DIV>
-<DIV>&nbsp;{</DIV>
-<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(&nbsp;s-&gt;hw.cmos_data[RTC_REG_B]=
-&nbsp;&amp;&nbsp;0x04&nbsp;)</DIV>
-<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(&nbsp;s-&gt;hw.cmos_data[RTC_REG_B]=
-&nbsp;&amp;&nbsp;RTC_DM_BINARY&nbsp;)</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;a;<=
-/DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;((a=
-&nbsp;/&nbsp;10)&nbsp;&lt;&lt;&nbsp;4)&nbsp;|&nbsp;(a&nbsp;%&nbsp;10);</DI=
-V>
-<DIV>@@&nbsp;-461,7&nbsp;+474,7&nbsp;@@&nbsp;static&nbsp;inline&nbsp;int&n=
-bsp;to_bcd(RTCState&nbsp;*s,&nbsp;in</DIV>
-<DIV>&nbsp;</DIV>
-<DIV>&nbsp;static&nbsp;inline&nbsp;int&nbsp;from_bcd(RTCState&nbsp;*s,&nbs=
-p;int&nbsp;a)</DIV>
-<DIV>&nbsp;{</DIV>
-<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(&nbsp;s-&gt;hw.cmos_data[RTC_REG_B]=
-&nbsp;&amp;&nbsp;0x04&nbsp;)</DIV>
-<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(&nbsp;s-&gt;hw.cmos_data[RTC_REG_B]=
-&nbsp;&amp;&nbsp;RTC_DM_BINARY&nbsp;)</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;a;<=
-/DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;((a=
-&nbsp;&gt;&gt;&nbsp;4)&nbsp;*&nbsp;10)&nbsp;+&nbsp;(a&nbsp;&amp;&nbsp;0x0f=
-);</DIV>
-<DIV>@@&nbsp;-469,12&nbsp;+482,14&nbsp;@@&nbsp;static&nbsp;inline&nbsp;int=
-&nbsp;from_bcd(RTCState&nbsp;*s,&nbsp;</DIV>
-<DIV>&nbsp;</DIV>
-<DIV>&nbsp;/*&nbsp;Hours&nbsp;in&nbsp;12&nbsp;hour&nbsp;mode&nbsp;are&nbsp=
-;in&nbsp;1-12&nbsp;range,&nbsp;not&nbsp;0-11.</DIV>
-<DIV>&nbsp;&nbsp;*&nbsp;So&nbsp;we&nbsp;need&nbsp;convert&nbsp;it&nbsp;bef=
-ore&nbsp;using&nbsp;it*/</DIV>
-<DIV>-static&nbsp;inline&nbsp;int&nbsp;convert_hour(RTCState&nbsp;*s,&nbsp=
-;int&nbsp;hour)</DIV>
-<DIV>+static&nbsp;inline&nbsp;int&nbsp;convert_hour(RTCState&nbsp;*s,&nbsp=
-;int&nbsp;raw)</DIV>
-<DIV>&nbsp;{</DIV>
-<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;hour&nbsp;=3D&nbsp;from_bcd(s,&nbsp=
-;raw&nbsp;&amp;&nbsp;0x7f);</DIV>
-<DIV>+</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(!(s-&gt;hw.cmos_data[RTC_REG_B=
-]&nbsp;&amp;&nbsp;RTC_24H))</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hour&nbsp;%=3D&=
-nbsp;12;</DIV>
-<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(s-&gt;hw.cm=
-os_data[RTC_HOURS]&nbsp;&amp;&nbsp;0x80)</DIV>
-<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(raw&nbsp;&a=
-mp;&nbsp;0x80)</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nb=
-sp;&nbsp;hour&nbsp;+=3D&nbsp;12;</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;hour;</DIV>
-<DIV>@@&nbsp;-493,8&nbsp;+508,7&nbsp;@@&nbsp;static&nbsp;void&nbsp;rtc_set=
-_time(RTCState&nbsp;*s)</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tm-&gt;tm_sec&nbsp;=3D&nbsp;from_bcd(s,=
-&nbsp;s-&gt;hw.cmos_data[RTC_SECONDS]);</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tm-&gt;tm_min&nbsp;=3D&nbsp;from_bcd(s,=
-&nbsp;s-&gt;hw.cmos_data[RTC_MINUTES]);</DIV>
-<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;tm-&gt;tm_hour&nbsp;=3D&nbsp;from_bcd(s,&nbs=
-p;s-&gt;hw.cmos_data[RTC_HOURS]&nbsp;&amp;&nbsp;0x7f);</DIV>
-<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;tm-&gt;tm_hour&nbsp;=3D&nbsp;convert_hour(s,=
-&nbsp;tm-&gt;tm_hour);</DIV>
-<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;tm-&gt;tm_hour&nbsp;=3D&nbsp;convert_hour(s,=
-&nbsp;s-&gt;hw.cmos_data[RTC_HOURS]);</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tm-&gt;tm_wday&nbsp;=3D&nbsp;from_bcd(s=
-,&nbsp;s-&gt;hw.cmos_data[RTC_DAY_OF_WEEK]);</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tm-&gt;tm_mday&nbsp;=3D&nbsp;from_bcd(s=
-,&nbsp;s-&gt;hw.cmos_data[RTC_DAY_OF_MONTH]);</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tm-&gt;tm_mon&nbsp;=3D&nbsp;from_bcd(s,=
-&nbsp;s-&gt;hw.cmos_data[RTC_MONTH])&nbsp;-&nbsp;1;</DIV>
-<DIV>---&nbsp;a/xen/arch/x86/hvm/vpt.c</DIV>
-<DIV>+++&nbsp;b/xen/arch/x86/hvm/vpt.c</DIV>
-<DIV>@@&nbsp;-22,6&nbsp;+22,7&nbsp;@@</DIV>
-<DIV>&nbsp;#include&nbsp;&lt;asm/hvm/vpt.h&gt;</DIV>
-<DIV>&nbsp;#include&nbsp;&lt;asm/event.h&gt;</DIV>
-<DIV>&nbsp;#include&nbsp;&lt;asm/apic.h&gt;</DIV>
-<DIV>+#include&nbsp;&lt;asm/mc146818rtc.h&gt;</DIV>
-<DIV>&nbsp;</DIV>
-<DIV>&nbsp;#define&nbsp;mode_is(d,&nbsp;name)&nbsp;\</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;((d)-&gt;arch.hvm_domain.params[HVM_PAR=
-AM_TIMER_MODE]&nbsp;=3D=3D&nbsp;HVMPTM_##name)</DIV>
-<DIV>@@&nbsp;-218,6&nbsp;+219,7&nbsp;@@&nbsp;void&nbsp;pt_update_irq(struc=
-t&nbsp;vcpu&nbsp;*v)</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;struct&nbsp;periodic_time&nbsp;*pt,&nbs=
-p;*temp,&nbsp;*earliest_pt&nbsp;=3D&nbsp;NULL;</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;uint64_t&nbsp;max_lag&nbsp;=3D&nbsp;-1U=
-LL;</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int&nbsp;irq,&nbsp;is_lapic;</DIV>
-<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;void&nbsp;*pt_priv;</DIV>
-<DIV>&nbsp;</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;spin_lock(&amp;v-&gt;arch.hvm_vcpu.tm_l=
-ock);</DIV>
-<DIV>&nbsp;</DIV>
-<DIV>@@&nbsp;-251,13&nbsp;+253,14&nbsp;@@&nbsp;void&nbsp;pt_update_irq(str=
-uct&nbsp;vcpu&nbsp;*v)</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;earliest_pt-&gt;irq_issued&nbsp;=3D&nbs=
-p;1;</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;irq&nbsp;=3D&nbsp;earliest_pt-&gt;irq;<=
-/DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;is_lapic&nbsp;=3D&nbsp;(earliest_pt-&gt=
-;source&nbsp;=3D=3D&nbsp;PTSRC_lapic);</DIV>
-<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;pt_priv&nbsp;=3D&nbsp;earliest_pt-&gt;priv;<=
-/DIV>
-<DIV>&nbsp;</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;spin_unlock(&amp;v-&gt;arch.hvm_vcpu.tm=
-_lock);</DIV>
-<DIV>&nbsp;</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(&nbsp;is_lapic&nbsp;)</DIV>
-<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;{</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;vlapic_set_irq(=
-vcpu_vlapic(v),&nbsp;irq,&nbsp;0);</DIV>
-<DIV>-&nbsp;&nbsp;&nbsp;&nbsp;}</DIV>
-<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;else&nbsp;if&nbsp;(&nbsp;irq&nbsp;=3D=3D&nbs=
-p;RTC_IRQ&nbsp;)</DIV>
-<DIV>+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;rtc_periodic_interru=
-pt(pt_priv);</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{</DIV>
-<DIV>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hvm_isa_irq_dea=
-ssert(v-&gt;domain,&nbsp;irq);</DIV>
-<DIV>---&nbsp;a/xen/include/asm-x86/hvm/vpt.h</DIV>
-<DIV>+++&nbsp;b/xen/include/asm-x86/hvm/vpt.h</DIV>
-<DIV>@@&nbsp;-181,6&nbsp;+181,7&nbsp;@@&nbsp;void&nbsp;rtc_migrate_timers(=
-struct&nbsp;vcpu&nbsp;*v);</DIV>
-<DIV>&nbsp;void&nbsp;rtc_deinit(struct&nbsp;domain&nbsp;*d);</DIV>
-<DIV>&nbsp;void&nbsp;rtc_reset(struct&nbsp;domain&nbsp;*d);</DIV>
-<DIV>&nbsp;void&nbsp;rtc_update_clock(struct&nbsp;domain&nbsp;*d);</DIV>
-<DIV>+void&nbsp;rtc_periodic_interrupt(void&nbsp;*);</DIV>
-<DIV>&nbsp;</DIV>
-<DIV>&nbsp;void&nbsp;pmtimer_init(struct&nbsp;vcpu&nbsp;*v);</DIV>
-<DIV>&nbsp;void&nbsp;pmtimer_deinit(struct&nbsp;domain&nbsp;*d);</DIV>
-<DIV>&nbsp;</DIV>
-<DIV>&nbsp;</DIV>
-<DIV>_______________________________________________</DIV>
-<DIV>Xen-devel&nbsp;mailing&nbsp;list</DIV>
-<DIV>Xen-devel@lists.xen.org</DIV>
-<DIV>http://lists.xen.org/xen-devel</DIV></DIV></DIV></DIV></BODY></HTML>
-
-------=_001_NextPart564768006800_=------
-
-
-
---===============5636090078893645621==
-Content-Type: text/plain; charset="us-ascii"
-MIME-Version: 1.0
-Content-Transfer-Encoding: 7bit
-Content-Disposition: inline
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
---===============5636090078893645621==--
-
-
-
diff --git a/test/corpus/<20120816131547.GE20601@ocelot.phlegethon.org> b/test/corpus/<20120816131547.GE20601@ocelot.phlegethon.org>
deleted file mode 100644 (file)
index e4933e3..0000000
+++ /dev/null
@@ -1,91 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Aug 16 14:19:57 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 16 Aug 2012 14:19:57 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T1zzL-00073i-IJ
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 16 Aug 2012 14:19:57 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T1zve-0001s4-11; Thu, 16 Aug 2012 13:16:02 +0000
-Received: from mail27.messagelabs.com ([193.109.254.147])
-       by lists.xen.org with esmtp (Exim 4.72) (envelope-from <tim@xen.org>)
-       id 1T1zvc-0001rv-12
-       for xen-devel@lists.xen.org; Thu, 16 Aug 2012 13:16:00 +0000
-X-Env-Sender: tim@xen.org
-X-Msg-Ref: server-8.tower-27.messagelabs.com!1345122953!9654995!1
-X-Originating-IP: [81.29.64.94]
-X-SpamReason: No, hits=0.8 required=7.0 tests=MANY_EXCLAMATIONS
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 14364 invoked from network); 16 Aug 2012 13:15:53 -0000
-Received: from ocelot.phlegethon.org (HELO mail.phlegethon.org) (81.29.64.94)
-       by server-8.tower-27.messagelabs.com with DHE-RSA-AES256-SHA
-       encrypted SMTP; 16 Aug 2012 13:15:53 -0000
-Received: from tjd by mail.phlegethon.org with local (Exim 4.67 (FreeBSD))
-       (envelope-from <tim@xen.org>)
-       id 1T1zvP-0006Kq-2g; Thu, 16 Aug 2012 13:15:47 +0000
-Date: Thu, 16 Aug 2012 14:15:47 +0100
-From: Tim Deegan <tim@xen.org>
-To: Jan Beulich <JBeulich@suse.com>
-Message-ID: <20120816131547.GE20601@ocelot.phlegethon.org>
-References: <50224B7402000078000937DA@nat28.tlf.novell.com>
-       <2012081023124696835343@gmail.com>
-       <50293785020000780009484C@nat28.tlf.novell.com>
-Mime-Version: 1.0
-Content-Disposition: inline
-In-Reply-To: <50293785020000780009484C@nat28.tlf.novell.com>
-User-Agent: Mutt/1.4.2.1i
-Cc: tupeng212 <tupeng212@gmail.com>, Keir Fraser <keir@xen.org>,
-       xen-devel <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] Big Bug:Time in VM goes slower;
-       foud Solution but demand Judgement! A Interesting Story!
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-At 16:21 +0100 on 13 Aug (1344874869), Jan Beulich wrote:
-> Below/attached a first draft of a patch to fix not only this issue,
-> but a few more with the RTC emulation. Would you give this a
-> try?
-> 
-> Keir, Tim, others - the change to xen/arch/x86/hvm/vpt.c really
-> looks more like a hack than a solution, but I don't see another
-> way without much more intrusive changes.
-
-It seems no worse than the code that's already there to special-case
-lapic time interrupts.  After 4.3 it might be nice to adjust the vpt
-interface to use explicit callbacks instead.
-
-Tim.
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<201208162143289686654@gmail.com> b/test/corpus/<201208162143289686654@gmail.com>
deleted file mode 100644 (file)
index 0b37a24..0000000
+++ /dev/null
@@ -1,247 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Aug 16 14:48:18 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 16 Aug 2012 14:48:18 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T20Qm-00079s-Te
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 16 Aug 2012 14:48:18 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T20MQ-0002J5-QJ; Thu, 16 Aug 2012 13:43:42 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <tupeng212@gmail.com>) id 1T20MN-0002J0-Jf
-       for xen-devel@lists.xen.org; Thu, 16 Aug 2012 13:43:40 +0000
-Received: from [85.158.138.51:8280] by server-11.bemta-3.messagelabs.com id
-       3E/77-23152-709FC205; Thu, 16 Aug 2012 13:43:35 +0000
-X-Env-Sender: tupeng212@gmail.com
-X-Msg-Ref: server-15.tower-174.messagelabs.com!1345124612!26865629!1
-X-Originating-IP: [209.85.160.45]
-X-SpamReason: No, hits=1.9 required=7.0 tests=BODY_RANDOM_LONG,
-       HTML_60_70,HTML_MESSAGE,MAILTO_TO_SPAM_ADDR,MIME_BASE64_TEXT,
-       MIME_BOUND_NEXTPART,ML_RADAR_SPEW_LINKS_14,RCVD_BY_IP,spamassassin: 
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 19041 invoked from network); 16 Aug 2012 13:43:34 -0000
-Received: from mail-pb0-f45.google.com (HELO mail-pb0-f45.google.com)
-       (209.85.160.45)
-       by server-15.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
-       16 Aug 2012 13:43:34 -0000
-Received: by pbbrp12 with SMTP id rp12so1653925pbb.32
-       for <xen-devel@lists.xen.org>; Thu, 16 Aug 2012 06:43:31 -0700 (PDT)
-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
-       h=date:from:to:cc:reply-to:subject:references:x-priority:x-guid
-       :x-has-attach:x-mailer:mime-version:message-id:content-type;
-       bh=zilfsV2OTjoeVwAW86UtZTl1BJQN4FT1cLNiRNBHtSs=;
-       b=XG8SFg7v4dRPIP/DgtDv+9ZUvFsx+4RO2avjedqs6bi6B+QCih0/oJhoFUyWicSUkv
-       e6IuMX8r0rZraaEV8RhvTzPvnF8eIiPxrRwfzkf5RfJAEOt8TdAdHpBWKmQC4JnqT3oy
-       +OkcC1Bet3YOb9ff5qOPiM1GtsByvKKUJ/dpdl4oDiI2/6tMAuhxnQhluSF25HKFgXr/
-       EVTzS3bqNjg/bYkCX98HFwipstS2SWakZ5tZ7LIPUpBYTmtRsE1JcRHTKuI498IpWDgO
-       649tKBRaV+o4aD5u7zUhBIFUzDn+kr9bajpaEGLj1+nYxC/NbsprtELMBSsBEkGKPK6f
-       Ev7Q==
-Received: by 10.68.241.202 with SMTP id wk10mr3482564pbc.77.1345124611716;
-       Thu, 16 Aug 2012 06:43:31 -0700 (PDT)
-Received: from root ([115.199.242.186])
-       by mx.google.com with ESMTPS id pn4sm2705093pbb.50.2012.08.16.06.43.25
-       (version=SSLv3 cipher=OTHER); Thu, 16 Aug 2012 06:43:31 -0700 (PDT)
-Date: Thu, 16 Aug 2012 21:43:32 +0800
-From: tupeng212 <tupeng212@gmail.com>
-To: "Jan Beulich" <JBeulich@suse.com>
-References: <502A3BBC0200007800094B68@nat28.tlf.novell.com>, 
-       <2012081522045495397713@gmail.com> <2012081522121039050717@gmail.com>, 
-       <502CC9D702000078000955B9@nat28.tlf.novell.com>
-X-Priority: 3
-X-GUID: F9F46BCC-7AD0-4A5D-8F36-D652162620D5
-X-Has-Attach: no
-X-Mailer: Foxmail 7.0.1.87[cn]
-Mime-Version: 1.0
-Message-ID: <201208162143289686654@gmail.com>
-Cc: Yang Z Zhang <yang.z.zhang@intel.com>, Tim Deegan <tim@xen.org>,
-       Keir Fraser <keir@xen.org>, xen-devel <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-Reply-To: tupeng212 <tupeng212@gmail.com>
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: multipart/mixed; boundary="===============4223491905756042710=="
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,FREEMAIL_FROM,
-       HTML_MESSAGE,RCVD_IN_DNSWL_MED,RP_MATCHES_RCVD,T_DKIM_INVALID,
-       UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH,
-       RFC v2] x86/HVM: assorted RTC emulation adjustments (was Re: Big
-       Bug:Time in VM goes slower...)
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-This is a multi-part message in MIME format.
-
---===============4223491905756042710==
-Content-Type: multipart/alternative;
-       boundary="----=_001_NextPart451220271581_=----"
-
-This is a multi-part message in MIME format.
-
-------=_001_NextPart451220271581_=----
-Content-Type: text/plain;
-       charset="gb2312"
-Content-Transfer-Encoding: base64
-
-RGVhciBKYW46DQpJIGRpZG4ndCBjaGVjayB0aGUgZmxpcHBpbmcgaW4gSlZNLCBidXQgZnJvbSB0
-aGUgcHJpbnRpbmcgcGVyaW9kIGluIHhlbiwgdGhpcyBzZXR0aW5nIGhhcHBlbmVkKHVuaXQ6IG5z
-KToNCjk3NjU2MiwgOTc2NTYyLCA5NzY1NjIsIDk3NjU2MiwgMTU2MjUwMDAsIDk3NjU2MiwgOTc2
-NTYyLCA5NzY1NjIsIDk3NjU2MiwgMTU2MjUwMDAgLi4uLi4NCmFuZCBzb21lb25lIHRvbGQgbWUg
-d2luZG93cyB1c2UgdGhlc2UgdHdvIHJhdGUvcGVyaW9kIG9ubHkuDQoNCmJlc2lkZXMsIEkgY2hl
-Y2tlZCBteSBmb3JtZXIgc2ltcGxlIHRlc3RlciB0aGlzIG1vcm5pbmcgYWZ0ZXIgaXQgcmFuIGZv
-ciBhIHdob2xlIG5pZ2h0LCBpdCBsYWdnZWQgbXVjaC4NCnNvIHRoZXJlIGV4aXN0cyBkaWZmZXJl
-bmNlIGJldHdlZW4gdmlydHVhbGl6YXRpb24gYW5kIHJlYWxpdHkuDQoNCg0KDQp0dXBlbmcyMTIN
-Cg0KRnJvbTogSmFuIEJldWxpY2gNCkRhdGU6IDIwMTItMDgtMTYgMTY6MjINClRvOiB0dXBlbmcy
-MTINCkNDOiBZYW5nIFogWmhhbmc7IHhlbi1kZXZlbDsgS2VpciBGcmFzZXI7IFRpbSBEZWVnYW4N
-ClN1YmplY3Q6IFJlOiBbWGVuLWRldmVsXSBbUEFUQ0gsIFJGQyB2Ml0geDg2L0hWTTogYXNzb3J0
-ZWQgUlRDIGVtdWxhdGlvbiBhZGp1c3RtZW50cyAod2FzIFJlOiBCaWcgQnVnOlRpbWUgaW4gVk0g
-Z29lcyBzbG93ZXIuLi4pDQo+Pj4gT24gMTUuMDguMTIgYXQgMTY6MTIsIHR1cGVuZzIxMiA8dHVw
-ZW5nMjEyQGdtYWlsLmNvbT4gd3JvdGU6DQo+IFRoZSByZXN1bHRzIGZvciBtZSB3ZXJlIHRoZXNl
-Og0KPiAxIEluIG15IHJlYWwgYXBwbGljYXRpb24gZW52aXJvbm1lbnQsIGl0IHdvcmtlZCB2ZXJ5
-IHdlbGwgaW4gdGhlIGZvcm1lciANCj4gNW1pbnMsIG11Y2ggYmV0dGVyIHRoYW4gYmVmb3JlLA0K
-PiAgYnV0IGF0IGxhc3QgaXQgbGFnZ2VkIGFnYWluLiBJIGRvbid0IGtub3cgd2hldGhlciBpdCBi
-ZWxvbmdzIHRvIHRoZSB0d28gDQo+IG1pc3NlZCBmdW5jdGlvbnMuIEkgbGFjayB0aGUgDQo+ICBh
-YmlsaXR5IHRvIGZpZ3VyZSB0aGVtIG91dC4NCg0KRGlkIHlvdSBjaGVjayB3aGV0aGVyIHBvc3Np
-Ymx5IHRoZSBndWVzdCBrZXJuZWwgc3RhcnRlZCBmbGlwcGluZw0KYmV0d2VlbiB0byByYXRlIHZh
-bHVlcz8gSWYgc28sIHRoYXQgaXMgc29tZXRoaW5nIHRoYXQgd2UgY291bGQNCmRlYWwgd2l0aCB0
-b28gKHlldCBpdCBtaWdodCBiZSBhIGJpdCBpbnZvbHZlZCwgc28gSSdkIGxpa2UgdG8gYXZvaWQN
-CmdvaW5nIHRoYXQgcm91dGUgaWYgaXQgd291bGQgbGVhZCBub3doZXJlKS4NCg0KSmFu
-
-------=_001_NextPart451220271581_=----
-Content-Type: text/html;
-       charset="gb2312"
-Content-Transfer-Encoding: quoted-printable
-
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<HTML><HEAD>
-<META http-equiv=3DContent-Type content=3D"text/html; charset=3DGB2312">
-<STYLE>
-BLOCKQUOTE {
-       MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; MARGIN-LEFT: 2em
-}
-OL {
-       MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px
-}
-UL {
-       MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px
-}
-P {
-       MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px
-}
-BODY {
-       FONT-SIZE: 10.5pt; COLOR: #000080; LINE-HEIGHT: 1.5; FONT-FAMILY: =CB=CE=
-=CC=E5
-}
-</STYLE>
-
-<META content=3D"MSHTML 6.00.2900.5512" name=3DGENERATOR></HEAD>
-<BODY style=3D"MARGIN: 10px">
-<DIV>Dear Jan:</DIV>
-<DIV>I didn't check the flipping in JVM, but from the printing period in x=
-en,=20
-this setting happened(unit: ns):</DIV>
-<DIV>976562, 976562, 976562, 976562, 15625000, 976562, 976562, 976562, 976=
-562,=20
-15625000 .....</DIV>
-<DIV>and someone told me windows use these two rate/period only.</DIV>
-<DIV>&nbsp;</DIV>
-<DIV>besides, I checked my former simple tester this morning after it ran =
-for a=20
-whole night, it lagged much.</DIV>
-<DIV>so there&nbsp;exists difference&nbsp;between virtualization and=20
-reality.</DIV>
-<HR style=3D"WIDTH: 210px; HEIGHT: 1px" align=3Dleft color=3D#b5c4df SIZE=
-=3D1>
-
-<DIV><SPAN>tupeng212</SPAN></DIV>
-<DIV>&nbsp;</DIV>
-<DIV=20
-style=3D"BORDER-RIGHT: medium none; PADDING-RIGHT: 0cm; BORDER-TOP: #b5c4d=
-f 1pt solid; PADDING-LEFT: 0cm; PADDING-BOTTOM: 0cm; BORDER-LEFT: medium n=
-one; PADDING-TOP: 3pt; BORDER-BOTTOM: medium none">
-<DIV=20
-style=3D"PADDING-RIGHT: 8px; PADDING-LEFT: 8px; FONT-SIZE: 12px; BACKGROUN=
-D: #efefef; PADDING-BOTTOM: 8px; COLOR: #000000; PADDING-TOP: 8px">
-<DIV><B>From:</B>&nbsp;<A href=3D"mailto:JBeulich@suse.com">Jan Beulich</A=
-></DIV>
-<DIV><B>Date:</B>&nbsp;2012-08-16&nbsp;16:22</DIV>
-<DIV><B>To:</B>&nbsp;<A href=3D"mailto:tupeng212@gmail.com">tupeng212</A><=
-/DIV>
-<DIV><B>CC:</B>&nbsp;<A href=3D"mailto:yang.z.zhang@intel.com">Yang Z Zhan=
-g</A>;=20
-<A href=3D"mailto:xen-devel@lists.xen.org">xen-devel</A>; <A=20
-href=3D"mailto:keir@xen.org">Keir Fraser</A>; <A href=3D"mailto:tim@xen.or=
-g">Tim=20
-Deegan</A></DIV>
-<DIV><B>Subject:</B>&nbsp;Re: [Xen-devel] [PATCH, RFC v2] x86/HVM: assorte=
-d RTC=20
-emulation adjustments (was Re: Big Bug:Time in VM goes=20
-slower...)</DIV></DIV></DIV>
-<DIV>
-<DIV>&gt;&gt;&gt;&nbsp;On&nbsp;15.08.12&nbsp;at&nbsp;16:12,&nbsp;tupeng212=
-&nbsp;&lt;tupeng212@gmail.com&gt;&nbsp;wrote:</DIV>
-<DIV>&gt;&nbsp;The&nbsp;results&nbsp;for&nbsp;me&nbsp;were&nbsp;these:</DI=
-V>
-<DIV>&gt;&nbsp;1&nbsp;In&nbsp;my&nbsp;real&nbsp;application&nbsp;environme=
-nt,&nbsp;it&nbsp;worked&nbsp;very&nbsp;well&nbsp;in&nbsp;the&nbsp;former&n=
-bsp;</DIV>
-<DIV>&gt;&nbsp;5mins,&nbsp;much&nbsp;better&nbsp;than&nbsp;before,</DIV>
-<DIV>&gt;&nbsp;&nbsp;but&nbsp;at&nbsp;last&nbsp;it&nbsp;lagged&nbsp;again.=
-&nbsp;I&nbsp;don't&nbsp;know&nbsp;whether&nbsp;it&nbsp;belongs&nbsp;to&nbs=
-p;the&nbsp;two&nbsp;</DIV>
-<DIV>&gt;&nbsp;missed&nbsp;functions.&nbsp;I&nbsp;lack&nbsp;the&nbsp;</DIV=
->
-<DIV>&gt;&nbsp;&nbsp;ability&nbsp;to&nbsp;figure&nbsp;them&nbsp;out.</DIV>
-<DIV>&nbsp;</DIV>
-<DIV>Did&nbsp;you&nbsp;check&nbsp;whether&nbsp;possibly&nbsp;the&nbsp;gues=
-t&nbsp;kernel&nbsp;started&nbsp;flipping</DIV>
-<DIV>between&nbsp;to&nbsp;rate&nbsp;values?&nbsp;If&nbsp;so,&nbsp;that&nbs=
-p;is&nbsp;something&nbsp;that&nbsp;we&nbsp;could</DIV>
-<DIV>deal&nbsp;with&nbsp;too&nbsp;(yet&nbsp;it&nbsp;might&nbsp;be&nbsp;a&n=
-bsp;bit&nbsp;involved,&nbsp;so&nbsp;I'd&nbsp;like&nbsp;to&nbsp;avoid</DIV>
-<DIV>going&nbsp;that&nbsp;route&nbsp;if&nbsp;it&nbsp;would&nbsp;lead&nbsp;=
-nowhere).</DIV>
-<DIV>&nbsp;</DIV>
-<DIV>Jan</DIV>
-<DIV>&nbsp;</DIV></DIV></BODY></HTML>
-
-------=_001_NextPart451220271581_=------
-
-
-
---===============4223491905756042710==
-Content-Type: text/plain; charset="us-ascii"
-MIME-Version: 1.0
-Content-Transfer-Encoding: 7bit
-Content-Disposition: inline
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
---===============4223491905756042710==--
-
-
-
diff --git a/test/corpus/<2012081622270760996017@gmail.com> b/test/corpus/<2012081622270760996017@gmail.com>
deleted file mode 100644 (file)
index 10ec70a..0000000
+++ /dev/null
@@ -1,199 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Aug 16 15:30:48 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 16 Aug 2012 15:30:48 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T215v-0007Su-00
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 16 Aug 2012 15:30:48 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T212d-00058Y-4O; Thu, 16 Aug 2012 14:27:19 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <tupeng212@gmail.com>) id 1T212a-00058K-Jm
-       for xen-devel@lists.xen.org; Thu, 16 Aug 2012 14:27:16 +0000
-Received: from [85.158.138.51:5104] by server-11.bemta-3.messagelabs.com id
-       8F/82-23152-3430D205; Thu, 16 Aug 2012 14:27:15 +0000
-X-Env-Sender: tupeng212@gmail.com
-X-Msg-Ref: server-16.tower-174.messagelabs.com!1345127233!28542382!1
-X-Originating-IP: [209.85.160.45]
-X-SpamReason: No, hits=1.1 required=7.0 tests=HTML_60_70,HTML_MESSAGE,
-       MIME_BASE64_TEXT, MIME_BOUND_NEXTPART, ML_RADAR_SPEW_LINKS_14,
-       RCVD_BY_IP, spamassassin: 
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 19157 invoked from network); 16 Aug 2012 14:27:15 -0000
-Received: from mail-pb0-f45.google.com (HELO mail-pb0-f45.google.com)
-       (209.85.160.45)
-       by server-16.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
-       16 Aug 2012 14:27:15 -0000
-Received: by pbbrp12 with SMTP id rp12so1709119pbb.32
-       for <xen-devel@lists.xen.org>; Thu, 16 Aug 2012 07:27:12 -0700 (PDT)
-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
-       h=date:from:to:cc:reply-to:subject:references:x-priority:x-guid
-       :x-has-attach:x-mailer:mime-version:message-id:content-type;
-       bh=zitJo3UgaH28bR4YzQPaoUz5nrNBhZKSp4iVUikab6o=;
-       b=mmic8d3vqeu8g2u3f2SD5KGiI4KyptJvdnOeXcYOxtWeOEeH04c7YnOk1bVM6REqVH
-       e7Pz2dSPcNE4mQdgm6Tqt0qc7jEZuLxesYH8KzPayJMO7FfwI2fUArl7pHZghg9Q4FxK
-       bEYaqsVgMjaZ9ODo7Mj5KJ6GcYw8f+vIkWqrcfFDTKnnzEvjPSW6ugoq6A8qFaIZMvEM
-       n9gK2rwTlG2VLPtVPWkKeJgBZoyxRzWZrpROJnBCf5txrzKWef4Bvj2o61oeA7U8SJyc
-       OOpHsE+6IYyfvVX44CeDww/BhJlGmldVjArAYVeLpv00tsfH3lOMIztX0MNvWkUExAaK
-       ujVQ==
-Received: by 10.68.222.167 with SMTP id qn7mr3650364pbc.98.1345127232582;
-       Thu, 16 Aug 2012 07:27:12 -0700 (PDT)
-Received: from root ([115.199.242.186])
-       by mx.google.com with ESMTPS id kt8sm2785434pbc.1.2012.08.16.07.27.05
-       (version=SSLv3 cipher=OTHER); Thu, 16 Aug 2012 07:27:12 -0700 (PDT)
-Date: Thu, 16 Aug 2012 22:27:12 +0800
-From: tupeng212 <tupeng212@gmail.com>
-To: "Jan Beulich" <JBeulich@suse.com>
-References: <502A3BBC0200007800094B68@nat28.tlf.novell.com>, 
-       <2012081522045495397713@gmail.com> <2012081522121039050717@gmail.com>, 
-       <502CC9D702000078000955B9@nat28.tlf.novell.com>
-       <201208162143289686654@gmail.com>, 
-       <502D1C8A0200007800095851@nat28.tlf.novell.com>
-X-Priority: 3
-X-GUID: 4EC6CDED-746D-4104-A8CC-6783C71A3E22
-X-Has-Attach: no
-X-Mailer: Foxmail 7.0.1.87[cn]
-Mime-Version: 1.0
-Message-ID: <2012081622270760996017@gmail.com>
-Cc: Yang Z Zhang <yang.z.zhang@intel.com>, Tim Deegan <tim@xen.org>,
-       Keir Fraser <keir@xen.org>, xen-devel <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-Reply-To: tupeng212 <tupeng212@gmail.com>
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: multipart/mixed; boundary="===============6051636379622459400=="
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,FREEMAIL_FROM,
-       HTML_MESSAGE,RCVD_IN_DNSWL_MED,RP_MATCHES_RCVD,T_DKIM_INVALID,
-       UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH,
-       RFC v2] x86/HVM: assorted RTC emulation adjustments (was Re: Big
-       Bug:Time in VM goes slower...)
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-This is a multi-part message in MIME format.
-
---===============6051636379622459400==
-Content-Type: multipart/alternative;
-       boundary="----=_001_NextPart846642126284_=----"
-
-This is a multi-part message in MIME format.
-
-------=_001_NextPart846642126284_=----
-Content-Type: text/plain;
-       charset="gb2312"
-Content-Transfer-Encoding: base64
-
-T2theSwgc29tZSBiYWNrIGFuZCBmb3J0aCBpcyB0aGVyZSBpbiBhbnkgY2FzZSwgYnV0IHdpdGhv
-dXQNCmtub3dpbmcgdGhlIHRpbWUgZGlzdGFuY2UgYmV0d2VlbiB0aGUgaW5kaXZpZHVhbCBpbnN0
-YW5jZXMgaXQncw0KaGFyZCB0byB0ZWxsIHdoZXRoZXIgd2hhdCBJJ20gdGhpbmtpbmcgb2YgbWln
-aHQgaGVscC4NCg0KPiBiZXNpZGVzLCBJIGNoZWNrZWQgbXkgZm9ybWVyIHNpbXBsZSB0ZXN0ZXIg
-dGhpcyBtb3JuaW5nIGFmdGVyIGl0IHJhbiBmb3IgYSANCj4gd2hvbGUgbmlnaHQsIGl0IGxhZ2dl
-ZCBtdWNoLg0KDQpDb3VsZCB5b3UgYnR3IHF1YW50aWZ5IHRoZSBsYWdnaW5nPyANCi8vIEkgZGlk
-bid0IHBheSBhdHRlbnRpb24gdG8gaXQsIGJ1dCBhYm91dCBoYWxmIGFuIGhvdXIncyBsYWdnaW5n
-IGNlcnRhaW5seSBleGlzdC4gDQp3aGVuIHlvdSB3aWxsIGdvIGhvbWUsIHlvdSBjYW4gYWxzbyBo
-YXZlIGEgdHJ5IHRvIHNlZSByZXN1bHQgdG9tb3Jyb3cgbW9ybmluZy4NCg0KWW91ciB0ZXN0ZXIg
-c2V0cyBvbmx5IGEgc2luZ2xlLCBjb25zdGFudCByYXRlIHJlcGVhdGVkbHksIHJpZ2h0PyAvL3ll
-cywgdGhlIHNpbXBsZXN0IHRlc3QganVzdCBzZXR0aW5nIGEgc2luZ2xlIDEwMDAwIGRvd24gcmVw
-ZWF0bHkuDQpJZiBzbywgdGhlbiB0aGUgdGhvdWdodCBvZiBhZGp1c3RtZW50IGxpa2VseSB3b24n
-dCBoZWxwLg==
-
-------=_001_NextPart846642126284_=----
-Content-Type: text/html;
-       charset="gb2312"
-Content-Transfer-Encoding: quoted-printable
-
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
-<HTML><HEAD>
-<META http-equiv=3DContent-Type content=3D"text/html; charset=3DGB2312">
-<STYLE>
-BLOCKQUOTE {
-       MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px; MARGIN-LEFT: 2em
-}
-OL {
-       MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px
-}
-UL {
-       MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px
-}
-P {
-       MARGIN-TOP: 0px; MARGIN-BOTTOM: 0px
-}
-BODY {
-       FONT-SIZE: 10.5pt; COLOR: #000080; LINE-HEIGHT: 1.5; FONT-FAMILY: =CB=CE=
-=CC=E5
-}
-</STYLE>
-
-<META content=3D"MSHTML 6.00.2900.5512" name=3DGENERATOR></HEAD>
-<BODY style=3D"MARGIN: 10px">
-<DIV>
-<DIV>Okay,&nbsp;some&nbsp;back&nbsp;and&nbsp;forth&nbsp;is&nbsp;there&nbsp=
-;in&nbsp;any&nbsp;case,&nbsp;but&nbsp;without</DIV>
-<DIV>knowing&nbsp;the&nbsp;time&nbsp;distance&nbsp;between&nbsp;the&nbsp;i=
-ndividual&nbsp;instances&nbsp;it's</DIV>
-<DIV>hard&nbsp;to&nbsp;tell&nbsp;whether&nbsp;what&nbsp;I'm&nbsp;thinking&=
-nbsp;of&nbsp;might&nbsp;help.</DIV>
-<DIV>&nbsp;</DIV>
-<DIV>&gt;&nbsp;besides,&nbsp;I&nbsp;checked&nbsp;my&nbsp;former&nbsp;simpl=
-e&nbsp;tester&nbsp;this&nbsp;morning&nbsp;after&nbsp;it&nbsp;ran&nbsp;for&=
-nbsp;a&nbsp;</DIV>
-<DIV>&gt;&nbsp;whole&nbsp;night,&nbsp;it&nbsp;lagged&nbsp;much.</DIV>
-<DIV>&nbsp;</DIV>
-<DIV>Could&nbsp;you&nbsp;btw&nbsp;quantify&nbsp;the&nbsp;lagging? </DIV>
-<DIV>// I didn't pay attention to it, but about&nbsp;half an hour's laggin=
-g=20
-certainly exist.&nbsp;</DIV>
-<DIV>when you will go home, you can also&nbsp;have a try to see result tom=
-orrow=20
-morning.</DIV>
-<DIV>&nbsp;</DIV>
-<DIV>Your&nbsp;tester&nbsp;sets&nbsp;only&nbsp;a&nbsp;single,&nbsp;constan=
-t&nbsp;rate&nbsp;repeatedly,&nbsp;right?=20
-//yes, the simplest test just setting a single&nbsp;10000 down repeatly.</=
-DIV>
-<DIV>If&nbsp;so,&nbsp;then&nbsp;the&nbsp;thought&nbsp;of&nbsp;adjustment&n=
-bsp;likely&nbsp;won't&nbsp;help.</DIV></DIV>
-<DIV>&nbsp;</DIV></BODY></HTML>
-
-------=_001_NextPart846642126284_=------
-
-
-
---===============6051636379622459400==
-Content-Type: text/plain; charset="us-ascii"
-MIME-Version: 1.0
-Content-Transfer-Encoding: 7bit
-Content-Disposition: inline
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
---===============6051636379622459400==--
-
-
-
diff --git a/test/corpus/<20120817173911.GB11688@phenom.dumpdata.com> b/test/corpus/<20120817173911.GB11688@phenom.dumpdata.com>
deleted file mode 100644 (file)
index 9ace882..0000000
+++ /dev/null
@@ -1,249 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Aug 17 18:53:28 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 17 Aug 2012 18:53:28 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T2Qjd-0000cI-PZ
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 17 Aug 2012 18:53:28 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T2QfU-0001Kw-Tg; Fri, 17 Aug 2012 17:49:08 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <konrad.wilk@oracle.com>) id 1T2QfT-0001Kl-00
-       for xen-devel@lists.xensource.com; Fri, 17 Aug 2012 17:49:07 +0000
-Received: from [85.158.143.35:61230] by server-3.bemta-4.messagelabs.com id
-       8F/F2-09529-2148E205; Fri, 17 Aug 2012 17:49:06 +0000
-X-Env-Sender: konrad.wilk@oracle.com
-X-Msg-Ref: server-2.tower-21.messagelabs.com!1345225744!6283034!1
-X-Originating-IP: [141.146.126.227]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogMTQxLjE0Ni4xMjYuMjI3ID0+IDcwNDM2NA==\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 11513 invoked from network); 17 Aug 2012 17:49:05 -0000
-Received: from acsinet15.oracle.com (HELO acsinet15.oracle.com)
-       (141.146.126.227)
-       by server-2.tower-21.messagelabs.com with DHE-RSA-AES256-SHA encrypted
-       SMTP; 17 Aug 2012 17:49:05 -0000
-Received: from acsinet22.oracle.com (acsinet22.oracle.com [141.146.126.238])
-       by acsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
-       ESMTP id q7HHn1mM005325
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
-       Fri, 17 Aug 2012 17:49:02 GMT
-Received: from acsmt358.oracle.com (acsmt358.oracle.com [141.146.40.158])
-       by acsinet22.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
-       q7HHn1v3001039
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
-       Fri, 17 Aug 2012 17:49:01 GMT
-Received: from abhmt102.oracle.com (abhmt102.oracle.com [141.146.116.54])
-       by acsmt358.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
-       q7HHn0li004654; Fri, 17 Aug 2012 12:49:00 -0500
-Received: from phenom.dumpdata.com (/209.6.85.33)
-       by default (Oracle Beehive Gateway v4.0)
-       with ESMTP ; Fri, 17 Aug 2012 10:49:00 -0700
-Received: by phenom.dumpdata.com (Postfix, from userid 1000)
-       id D9420402D7; Fri, 17 Aug 2012 13:39:11 -0400 (EDT)
-Date: Fri, 17 Aug 2012 13:39:11 -0400
-From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-To: linux-kernel@vger.kernel.org, xen-devel@lists.xensource.com
-Message-ID: <20120817173911.GB11688@phenom.dumpdata.com>
-References: <1345133009-21941-1-git-send-email-konrad.wilk@oracle.com>
-MIME-Version: 1.0
-Content-Disposition: inline
-In-Reply-To: <1345133009-21941-1-git-send-email-konrad.wilk@oracle.com>
-User-Agent: Mutt/1.5.21 (2010-09-15)
-X-Source-IP: acsinet22.oracle.com [141.146.126.238]
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
-Subject: Re: [Xen-devel] [PATCH] Boot PV guests with more than 128GB (v3)
-       for v3.7.
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Thu, Aug 16, 2012 at 12:03:18PM -0400, Konrad Rzeszutek Wilk wrote:
-> Since (v2): http://lists.xen.org/archives/html/xen-devel/2012-07/msg01864.html
->  - fixed a bug if guest booted with non-PMD aligned size (say, 899MB).
->  - fixed smack warnings
->  - moved a memset(xen_start_info->mfn_list, 0xff,.. ) from one patch to another.
-
-And two more bug-fixes:
-
->From f042050664c97a365e98daf5783f682d734e35f8 Mon Sep 17 00:00:00 2001
-From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-Date: Thu, 16 Aug 2012 16:38:55 -0400
-Subject: [PATCH 1/2] xen/p2m: When revectoring deal with holes in the P2M
- array.
-
-When we free the PFNs and then subsequently populate them back
-during bootup:
-
-Freeing 20000-20200 pfn range: 512 pages freed
-1-1 mapping on 20000->20200
-Freeing 40000-40200 pfn range: 512 pages freed
-1-1 mapping on 40000->40200
-Freeing bad80-badf4 pfn range: 116 pages freed
-1-1 mapping on bad80->badf4
-Freeing badf6-bae7f pfn range: 137 pages freed
-1-1 mapping on badf6->bae7f
-Freeing bb000-100000 pfn range: 282624 pages freed
-1-1 mapping on bb000->100000
-Released 283999 pages of unused memory
-Set 283999 page(s) to 1-1 mapping
-Populating 1acb8a-1f20e9 pfn range: 283999 pages added
-
-We end up having the P2M array (that is the one that was
-grafted on the P2M tree) filled with IDENTITY_FRAME or
-INVALID_P2M_ENTRY) entries. The patch titled
-
-"xen/p2m: Reuse existing P2M leafs if they are filled with 1:1 PFNs or INVALID."
-recycles said slots and replaces the P2M tree leaf's with
- &mfn_list[xx] with p2m_identity or p2m_missing.
-
-And re-uses the P2M array sections for other P2M tree leaf's.
-For the above mentioned bootup excerpt, the PFNs at
-0x20000->0x20200 are going to be IDENTITY based:
-
-P2M[0][256][0] -> P2M[0][257][0] get turned in IDENTITY_FRAME.
-
-We can re-use that and replace P2M[0][256] to point to p2m_identity.
-The "old" page (the grafted P2M array provided by Xen) that was at
-P2M[0][256] gets put somewhere else. Specifically at P2M[6][358],
-b/c when we populate back:
-
-Populating 1acb8a-1f20e9 pfn range: 283999 pages added
-
-we fill P2M[6][358][0] (and P2M[6][358], P2M[6][359], ...) with
-the new MFNs.
-
-That is all OK, except when we revector we assume that the PFN
-count would be the same in the grafted P2M array and in the
-newly allocated. Since that is no longer the case, as we have
-holes in the P2M that point to p2m_missing or p2m_identity we
-have to take that into account.
-
-[v2: Check for overflow]
-Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
----
- arch/x86/xen/p2m.c |   14 +++++++++++---
- 1 files changed, 11 insertions(+), 3 deletions(-)
-
-diff --git a/arch/x86/xen/p2m.c b/arch/x86/xen/p2m.c
-index bbfd085..3b5bd7e 100644
---- a/arch/x86/xen/p2m.c
-+++ b/arch/x86/xen/p2m.c
-@@ -401,6 +401,7 @@ unsigned long __init xen_revector_p2m_tree(void)
-       unsigned long va_start;
-       unsigned long va_end;
-       unsigned long pfn;
-+      unsigned long pfn_free = 0;
-       unsigned long *mfn_list = NULL;
-       unsigned long size;
-@@ -443,15 +444,22 @@ unsigned long __init xen_revector_p2m_tree(void)
-               if ((unsigned long)mid_p == INVALID_P2M_ENTRY)
-                       continue;
-+              if ((pfn_free + P2M_PER_PAGE) * PAGE_SIZE > size) {
-+                      WARN(1, "Only allocated for %ld pages, but we want %ld!\n",
-+                           size, pfn_free + P2M_PER_PAGE);
-+                      return 0;
-+              }
-               /* The old va. Rebase it on mfn_list */
-               if (mid_p >= (unsigned long *)va_start && mid_p <= (unsigned long *)va_end) {
-                       unsigned long *new;
--                      new = &mfn_list[pfn];
-+                      new = &mfn_list[pfn_free];
-                       copy_page(new, mid_p);
--                      p2m_top[topidx][mididx] = &mfn_list[pfn];
--                      p2m_top_mfn_p[topidx][mididx] = virt_to_mfn(&mfn_list[pfn]);
-+                      p2m_top[topidx][mididx] = &mfn_list[pfn_free];
-+                      p2m_top_mfn_p[topidx][mididx] = virt_to_mfn(&mfn_list[pfn_free]);
-+
-+                      pfn_free += P2M_PER_PAGE;
-               }
-               /* This should be the leafs allocated for identity from _brk. */
--- 
-1.7.7.6
-
-
-
->From 60a9b396456a2990bb3490671ca832d36e8dd6aa Mon Sep 17 00:00:00 2001
-From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-Date: Fri, 17 Aug 2012 09:35:31 -0400
-Subject: [PATCH 2/2] xen/mmu: If the revector fails, don't attempt to
- revector anything else.
-
-If the P2M revectoring would fail, we would try to continue on by
-cleaning the PMD for L1 (PTE) page-tables. The xen_cleanhighmap
-is greedy and erases the PMD on both boundaries. Since the P2M
-array can share the PMD, we would wipe out part of the __ka
-that is still used in the P2M tree to point to P2M leafs.
-
-This fixes it by bypassing the revectoring and continuing on.
-If the revector fails, a nice WARN is printed so we can still
-troubleshoot this.
-
-Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
----
- arch/x86/xen/mmu.c |    4 +++-
- 1 files changed, 3 insertions(+), 1 deletions(-)
-
-diff --git a/arch/x86/xen/mmu.c b/arch/x86/xen/mmu.c
-index 6019c22..0dac3d2 100644
---- a/arch/x86/xen/mmu.c
-+++ b/arch/x86/xen/mmu.c
-@@ -1238,7 +1238,8 @@ static void __init xen_pagetable_setup_done(pgd_t *base)
-                       memblock_free(__pa(xen_start_info->mfn_list), size);
-                       /* And revector! Bye bye old array */
-                       xen_start_info->mfn_list = new_mfn_list;
--              }
-+              } else
-+                      goto skip;
-       }
-       /* At this stage, cleanup_highmap has already cleaned __ka space
-        * from _brk_limit way up to the max_pfn_mapped (which is the end of
-@@ -1259,6 +1260,7 @@ static void __init xen_pagetable_setup_done(pgd_t *base)
-        * anything at this stage. */
-       xen_cleanhighmap(MODULES_VADDR, roundup(MODULES_VADDR, PUD_SIZE) - 1);
- #endif
-+skip:
- #endif
-       xen_post_allocator_init();
- }
--- 
-1.7.7.6
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<20120817174549.GA14257@phenom.dumpdata.com> b/test/corpus/<20120817174549.GA14257@phenom.dumpdata.com>
deleted file mode 100644 (file)
index fcc64f6..0000000
+++ /dev/null
@@ -1,194 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Aug 17 18:59:43 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 17 Aug 2012 18:59:43 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T2Qph-0000di-Fv
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 17 Aug 2012 18:59:43 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T2Qlw-0001ay-R4; Fri, 17 Aug 2012 17:55:48 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <konrad.wilk@oracle.com>) id 1T2Qlv-0001aq-1e
-       for xen-devel@lists.xensource.com; Fri, 17 Aug 2012 17:55:47 +0000
-Received: from [85.158.139.83:56026] by server-7.bemta-5.messagelabs.com id
-       09/BB-32634-2A58E205; Fri, 17 Aug 2012 17:55:46 +0000
-X-Env-Sender: konrad.wilk@oracle.com
-X-Msg-Ref: server-11.tower-182.messagelabs.com!1345226144!21493654!1
-X-Originating-IP: [148.87.113.117]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogMTQ4Ljg3LjExMy4xMTcgPT4gNjk2OTUy\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 18993 invoked from network); 17 Aug 2012 17:55:45 -0000
-Received: from rcsinet15.oracle.com (HELO rcsinet15.oracle.com)
-       (148.87.113.117)
-       by server-11.tower-182.messagelabs.com with DHE-RSA-AES256-SHA
-       encrypted SMTP; 17 Aug 2012 17:55:45 -0000
-Received: from acsinet21.oracle.com (acsinet21.oracle.com [141.146.126.237])
-       by rcsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
-       ESMTP id q7HHtevZ022752
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
-       Fri, 17 Aug 2012 17:55:41 GMT
-Received: from acsmt358.oracle.com (acsmt358.oracle.com [141.146.40.158])
-       by acsinet21.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
-       q7HHtd2P023403
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
-       Fri, 17 Aug 2012 17:55:40 GMT
-Received: from abhmt110.oracle.com (abhmt110.oracle.com [141.146.116.62])
-       by acsmt358.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
-       q7HHtdvp008840; Fri, 17 Aug 2012 12:55:39 -0500
-Received: from phenom.dumpdata.com (/209.6.85.33)
-       by default (Oracle Beehive Gateway v4.0)
-       with ESMTP ; Fri, 17 Aug 2012 10:55:39 -0700
-Received: by phenom.dumpdata.com (Postfix, from userid 1000)
-       id 4D046402D7; Fri, 17 Aug 2012 13:45:49 -0400 (EDT)
-Date: Fri, 17 Aug 2012 13:45:49 -0400
-From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-Message-ID: <20120817174549.GA14257@phenom.dumpdata.com>
-References: <1345133009-21941-1-git-send-email-konrad.wilk@oracle.com>
-       <1345133009-21941-7-git-send-email-konrad.wilk@oracle.com>
-       <alpine.DEB.2.02.1208171839590.15568@kaball.uk.xensource.com>
-MIME-Version: 1.0
-Content-Disposition: inline
-In-Reply-To: <alpine.DEB.2.02.1208171839590.15568@kaball.uk.xensource.com>
-User-Agent: Mutt/1.5.21 (2010-09-15)
-X-Source-IP: acsinet21.oracle.com [141.146.126.237]
-Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
-       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 06/11] xen/mmu: For 64-bit do not call
- xen_map_identity_early
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Fri, Aug 17, 2012 at 06:41:23PM +0100, Stefano Stabellini wrote:
-> On Thu, 16 Aug 2012, Konrad Rzeszutek Wilk wrote:
-> > B/c we do not need it. During the startup the Xen provides
-> > us with all the memory mapped that we need to function.
-> 
-> Shouldn't we check to make sure that is actually true (I am thinking at
-> nr_pt_frames)?
-
-I was looking at the source code (hypervisor) to figure it out and
-that is certainly true.
-
-
-> Or is it actually stated somewhere in the Xen headers?
-
-Couldn't find it, but after looking so long at the source code
-I didn't even bother looking for it.
-
-Thought to be honest - I only looked at how the 64-bit pagetables
-were set up, so I didn't dare to touch the 32-bit. Hence the #ifdef
-
-> 
-> 
-> 
-> > Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-> > ---
-> >  arch/x86/xen/mmu.c |   11 +++++------
-> >  1 files changed, 5 insertions(+), 6 deletions(-)
-> > 
-> > diff --git a/arch/x86/xen/mmu.c b/arch/x86/xen/mmu.c
-> > index 7247e5a..a59070b 100644
-> > --- a/arch/x86/xen/mmu.c
-> > +++ b/arch/x86/xen/mmu.c
-> > @@ -84,6 +84,7 @@
-> >   */
-> >  DEFINE_SPINLOCK(xen_reservation_lock);
-> >  
-> > +#ifdef CONFIG_X86_32
-> >  /*
-> >   * Identity map, in addition to plain kernel map.  This needs to be
-> >   * large enough to allocate page table pages to allocate the rest.
-> > @@ -91,7 +92,7 @@ DEFINE_SPINLOCK(xen_reservation_lock);
-> >   */
-> >  #define LEVEL1_IDENT_ENTRIES      (PTRS_PER_PTE * 4)
-> >  static RESERVE_BRK_ARRAY(pte_t, level1_ident_pgt, LEVEL1_IDENT_ENTRIES);
-> > -
-> > +#endif
-> >  #ifdef CONFIG_X86_64
-> >  /* l3 pud for userspace vsyscall mapping */
-> >  static pud_t level3_user_vsyscall[PTRS_PER_PUD] __page_aligned_bss;
-> > @@ -1628,7 +1629,7 @@ static void set_page_prot(void *addr, pgprot_t prot)
-> >    if (HYPERVISOR_update_va_mapping((unsigned long)addr, pte, 0))
-> >            BUG();
-> >  }
-> > -
-> > +#ifdef CONFIG_X86_32
-> >  static void __init xen_map_identity_early(pmd_t *pmd, unsigned long max_pfn)
-> >  {
-> >    unsigned pmdidx, pteidx;
-> > @@ -1679,7 +1680,7 @@ static void __init xen_map_identity_early(pmd_t *pmd, unsigned long max_pfn)
-> >  
-> >    set_page_prot(pmd, PAGE_KERNEL_RO);
-> >  }
-> > -
-> > +#endif
-> >  void __init xen_setup_machphys_mapping(void)
-> >  {
-> >    struct xen_machphys_mapping mapping;
-> > @@ -1765,14 +1766,12 @@ void __init xen_setup_kernel_pagetable(pgd_t *pgd, unsigned long max_pfn)
-> >    /* Note that we don't do anything with level1_fixmap_pgt which
-> >     * we don't need. */
-> >  
-> > -  /* Set up identity map */
-> > -  xen_map_identity_early(level2_ident_pgt, max_pfn);
-> > -
-> >    /* Make pagetable pieces RO */
-> >    set_page_prot(init_level4_pgt, PAGE_KERNEL_RO);
-> >    set_page_prot(level3_ident_pgt, PAGE_KERNEL_RO);
-> >    set_page_prot(level3_kernel_pgt, PAGE_KERNEL_RO);
-> >    set_page_prot(level3_user_vsyscall, PAGE_KERNEL_RO);
-> > +  set_page_prot(level2_ident_pgt, PAGE_KERNEL_RO);
-> >    set_page_prot(level2_kernel_pgt, PAGE_KERNEL_RO);
-> >    set_page_prot(level2_fixmap_pgt, PAGE_KERNEL_RO);
-> >  
-> > -- 
-> > 1.7.7.6
-> > 
-> > 
-> > _______________________________________________
-> > Xen-devel mailing list
-> > Xen-devel@lists.xen.org
-> > http://lists.xen.org/xen-devel
-> > 
-> --
-> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
-> the body of a message to majordomo@vger.kernel.org
-> More majordomo info at  http://vger.kernel.org/majordomo-info.html
-> Please read the FAQ at  http://www.tux.org/lkml/
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<20120817180557.GA18579@phenom.dumpdata.com> b/test/corpus/<20120817180557.GA18579@phenom.dumpdata.com>
deleted file mode 100644 (file)
index d1269d0..0000000
+++ /dev/null
@@ -1,226 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Aug 17 19:20:15 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 17 Aug 2012 19:20:15 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T2R9Y-0000ir-H1
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 17 Aug 2012 19:20:15 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T2R5Q-00023m-9S; Fri, 17 Aug 2012 18:15:56 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <konrad.wilk@oracle.com>) id 1T2R5O-00023h-Vu
-       for xen-devel@lists.xensource.com; Fri, 17 Aug 2012 18:15:55 +0000
-Received: from [85.158.143.99:26465] by server-2.bemta-4.messagelabs.com id
-       50/B1-31966-A5A8E205; Fri, 17 Aug 2012 18:15:54 +0000
-X-Env-Sender: konrad.wilk@oracle.com
-X-Msg-Ref: server-11.tower-216.messagelabs.com!1345227352!21219154!1
-X-Originating-IP: [141.146.126.227]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogMTQxLjE0Ni4xMjYuMjI3ID0+IDcwNDM2NA==\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 31151 invoked from network); 17 Aug 2012 18:15:53 -0000
-Received: from acsinet15.oracle.com (HELO acsinet15.oracle.com)
-       (141.146.126.227)
-       by server-11.tower-216.messagelabs.com with DHE-RSA-AES256-SHA
-       encrypted SMTP; 17 Aug 2012 18:15:53 -0000
-Received: from acsinet22.oracle.com (acsinet22.oracle.com [141.146.126.238])
-       by acsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
-       ESMTP id q7HIFlSO029866
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
-       Fri, 17 Aug 2012 18:15:47 GMT
-Received: from acsmt356.oracle.com (acsmt356.oracle.com [141.146.40.156])
-       by acsinet22.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
-       q7HIFkYK007116
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
-       Fri, 17 Aug 2012 18:15:47 GMT
-Received: from abhmt110.oracle.com (abhmt110.oracle.com [141.146.116.62])
-       by acsmt356.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
-       q7HIFkim008098; Fri, 17 Aug 2012 13:15:46 -0500
-Received: from phenom.dumpdata.com (/209.6.85.33)
-       by default (Oracle Beehive Gateway v4.0)
-       with ESMTP ; Fri, 17 Aug 2012 11:15:46 -0700
-Received: by phenom.dumpdata.com (Postfix, from userid 1000)
-       id 8107F402D7; Fri, 17 Aug 2012 14:05:57 -0400 (EDT)
-Date: Fri, 17 Aug 2012 14:05:57 -0400
-From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-Message-ID: <20120817180557.GA18579@phenom.dumpdata.com>
-References: <1345133009-21941-1-git-send-email-konrad.wilk@oracle.com>
-       <1345133009-21941-8-git-send-email-konrad.wilk@oracle.com>
-       <alpine.DEB.2.02.1208171902320.15568@kaball.uk.xensource.com>
-MIME-Version: 1.0
-Content-Disposition: inline
-In-Reply-To: <alpine.DEB.2.02.1208171902320.15568@kaball.uk.xensource.com>
-User-Agent: Mutt/1.5.21 (2010-09-15)
-X-Source-IP: acsinet22.oracle.com [141.146.126.238]
-Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
-       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 07/11] xen/mmu: Recycle the Xen provided L4,
- L3, and L2 pages
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Fri, Aug 17, 2012 at 07:07:28PM +0100, Stefano Stabellini wrote:
-> On Thu, 16 Aug 2012, Konrad Rzeszutek Wilk wrote:
-> > As we are not using them. We end up only using the L1 pagetables
-> > and grafting those to our page-tables.
-> > 
-> > [v1: Per Stefano's suggestion squashed two commits]
-> > [v2: Per Stefano's suggestion simplified loop]
-> > [v3: Fix smatch warnings]
-> > Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-> > ---
-> >  arch/x86/xen/mmu.c |   40 +++++++++++++++++++++++++++++++++-------
-> >  1 files changed, 33 insertions(+), 7 deletions(-)
-> > 
-> > diff --git a/arch/x86/xen/mmu.c b/arch/x86/xen/mmu.c
-> > index a59070b..bd92c82 100644
-> > --- a/arch/x86/xen/mmu.c
-> > +++ b/arch/x86/xen/mmu.c
-> > @@ -1708,7 +1708,20 @@ static void convert_pfn_mfn(void *v)
-> >    for (i = 0; i < PTRS_PER_PTE; i++)
-> >            pte[i] = xen_make_pte(pte[i].pte);
-> >  }
-> > -
-> > +static void __init check_pt_base(unsigned long *pt_base, unsigned long *pt_end,
-> > +                           unsigned long addr)
-> > +{
-> > +  if (*pt_base == PFN_DOWN(__pa(addr))) {
-> > +          set_page_prot((void *)addr, PAGE_KERNEL);
-> > +          clear_page((void *)addr);
-> > +          (*pt_base)++;
-> > +  }
-> > +  if (*pt_end == PFN_DOWN(__pa(addr))) {
-> > +          set_page_prot((void *)addr, PAGE_KERNEL);
-> > +          clear_page((void *)addr);
-> > +          (*pt_end)--;
-> > +  }
-> > +}
-> >  /*
-> >   * Set up the initial kernel pagetable.
-> >   *
-> > @@ -1724,6 +1737,9 @@ void __init xen_setup_kernel_pagetable(pgd_t *pgd, unsigned long max_pfn)
-> >  {
-> >    pud_t *l3;
-> >    pmd_t *l2;
-> > +  unsigned long addr[3];
-> > +  unsigned long pt_base, pt_end;
-> > +  unsigned i;
-> >  
-> >    /* max_pfn_mapped is the last pfn mapped in the initial memory
-> >     * mappings. Considering that on Xen after the kernel mappings we
-> > @@ -1731,6 +1747,9 @@ void __init xen_setup_kernel_pagetable(pgd_t *pgd, unsigned long max_pfn)
-> >     * set max_pfn_mapped to the last real pfn mapped. */
-> >    max_pfn_mapped = PFN_DOWN(__pa(xen_start_info->mfn_list));
-> >  
-> > +  pt_base = PFN_DOWN(__pa(xen_start_info->pt_base));
-> > +  pt_end = PFN_DOWN(__pa(xen_start_info->pt_base + (xen_start_info->nr_pt_frames * PAGE_SIZE)));
-> 
-
-or just do:
-
-       pt_end = pt_base + xen_start_info->nr_pt_frames;
-
-> code style
-> 
-> >    /* Zap identity mapping */
-> >    init_level4_pgt[0] = __pgd(0);
-> >  
-> > @@ -1749,6 +1768,9 @@ void __init xen_setup_kernel_pagetable(pgd_t *pgd, unsigned long max_pfn)
-> >    l3 = m2v(pgd[pgd_index(__START_KERNEL_map)].pgd);
-> >    l2 = m2v(l3[pud_index(__START_KERNEL_map)].pud);
-> >  
-> > +  addr[0] = (unsigned long)pgd;
-> > +  addr[1] = (unsigned long)l3;
-> > +  addr[2] = (unsigned long)l2;
-> >    /* Graft it onto L4[272][0]. Note that we creating an aliasing problem:
-> >     * Both L4[272][0] and L4[511][511] have entries that point to the same
-> >     * L2 (PMD) tables. Meaning that if you modify it in __va space
-> > @@ -1782,20 +1804,24 @@ void __init xen_setup_kernel_pagetable(pgd_t *pgd, unsigned long max_pfn)
-> >    /* Unpin Xen-provided one */
-> >    pin_pagetable_pfn(MMUEXT_UNPIN_TABLE, PFN_DOWN(__pa(pgd)));
-> >  
-> > -  /* Switch over */
-> > -  pgd = init_level4_pgt;
-> > -
-> >    /*
-> >     * At this stage there can be no user pgd, and no page
-> >     * structure to attach it to, so make sure we just set kernel
-> >     * pgd.
-> >     */
-> >    xen_mc_batch();
-> > -  __xen_write_cr3(true, __pa(pgd));
-> > +  __xen_write_cr3(true, __pa(init_level4_pgt));
-> >    xen_mc_issue(PARAVIRT_LAZY_CPU);
-> >  
-> > -  memblock_reserve(__pa(xen_start_info->pt_base),
-> > -                   xen_start_info->nr_pt_frames * PAGE_SIZE);
-> > +  /* We can't that easily rip out L3 and L2, as the Xen pagetables are
-> > +   * set out this way: [L4], [L1], [L2], [L3], [L1], [L1] ...  for
-> > +   * the initial domain. For guests using the toolstack, they are in:
-> > +   * [L4], [L3], [L2], [L1], [L1], order .. */
-> > +  for (i = 0; i < ARRAY_SIZE(addr); i++)
-> > +          check_pt_base(&pt_base, &pt_end, addr[i]);
-> 
-> It is much clearer now, but if the comment is correct, doesn't it mean
-> that we are going to be able to free pgd, l3 and l2 only in the non-dom0
-> case?
-
-And in dom0 case only PGD.
-
-> If so it might be worth saying it explicitly.
-
-OK.
-> 
-> Other than that, it is fine by me.
-> 
-> 
-> > +  /* Our (by three pages) smaller Xen pagetable that we are using */
-> > +  memblock_reserve(PFN_PHYS(pt_base), (pt_end - pt_base) * PAGE_SIZE);
-> >  }
-> >  #else     /* !CONFIG_X86_64 */
-> >  static RESERVE_BRK_ARRAY(pmd_t, initial_kernel_pmd, PTRS_PER_PMD);
-> > -- 
-> > 1.7.7.6
-> > 
-> > 
-> > _______________________________________________
-> > Xen-devel mailing list
-> > Xen-devel@lists.xen.org
-> > http://lists.xen.org/xen-devel
-> > 
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<20120820120649.GI13755@localhost.localdomain> b/test/corpus/<20120820120649.GI13755@localhost.localdomain>
deleted file mode 100644 (file)
index 77d6c3c..0000000
+++ /dev/null
@@ -1,147 +0,0 @@
-From xen-devel-bounces@lists.xen.org Mon Aug 20 13:11:43 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Mon, 20 Aug 2012 13:11:43 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T3QpZ-0000I0-P1
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Mon, 20 Aug 2012 13:11:43 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T3QlD-0001hf-Sm; Mon, 20 Aug 2012 12:07:11 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <konrad.wilk@oracle.com>) id 1T3QlC-0001hX-Ru
-       for xen-devel@lists.xensource.com; Mon, 20 Aug 2012 12:07:11 +0000
-Received: from [85.158.139.83:3266] by server-12.bemta-5.messagelabs.com id
-       02/99-22359-E6822305; Mon, 20 Aug 2012 12:07:10 +0000
-X-Env-Sender: konrad.wilk@oracle.com
-X-Msg-Ref: server-13.tower-182.messagelabs.com!1345464425!28526248!1
-X-Originating-IP: [141.146.126.227]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogMTQxLjE0Ni4xMjYuMjI3ID0+IDcwNzI2NA==\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 2450 invoked from network); 20 Aug 2012 12:07:07 -0000
-Received: from acsinet15.oracle.com (HELO acsinet15.oracle.com)
-       (141.146.126.227)
-       by server-13.tower-182.messagelabs.com with DHE-RSA-AES256-SHA
-       encrypted SMTP; 20 Aug 2012 12:07:07 -0000
-Received: from ucsinet22.oracle.com (ucsinet22.oracle.com [156.151.31.94])
-       by acsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
-       ESMTP id q7KC6xD2028229
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
-       Mon, 20 Aug 2012 12:07:00 GMT
-Received: from acsmt356.oracle.com (acsmt356.oracle.com [141.146.40.156])
-       by ucsinet22.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
-       q7KC6wBQ002996
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
-       Mon, 20 Aug 2012 12:06:59 GMT
-Received: from abhmt114.oracle.com (abhmt114.oracle.com [141.146.116.66])
-       by acsmt356.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
-       q7KC6vH9016635; Mon, 20 Aug 2012 07:06:57 -0500
-Received: from localhost.localdomain (/209.6.85.33)
-       by default (Oracle Beehive Gateway v4.0)
-       with ESMTP ; Mon, 20 Aug 2012 05:06:57 -0700
-Date: Mon, 20 Aug 2012 08:06:49 -0400
-From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-Message-ID: <20120820120649.GI13755@localhost.localdomain>
-References: <1345133009-21941-1-git-send-email-konrad.wilk@oracle.com>
-       <1345133009-21941-7-git-send-email-konrad.wilk@oracle.com>
-       <alpine.DEB.2.02.1208171839590.15568@kaball.uk.xensource.com>
-       <20120817174549.GA14257@phenom.dumpdata.com>
-       <alpine.DEB.2.02.1208201243180.15568@kaball.uk.xensource.com>
-       <1345463624.28762.67.camel@zakaz.uk.xensource.com>
-       <alpine.DEB.2.02.1208201257420.15568@kaball.uk.xensource.com>
-MIME-Version: 1.0
-Content-Disposition: inline
-In-Reply-To: <alpine.DEB.2.02.1208201257420.15568@kaball.uk.xensource.com>
-User-Agent: Mutt/1.5.21 (2010-09-15)
-X-Source-IP: ucsinet22.oracle.com [156.151.31.94]
-Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
-       Ian Campbell <Ian.Campbell@citrix.com>,
-       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 06/11] xen/mmu: For 64-bit do not call
- xen_map_identity_early
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Mon, Aug 20, 2012 at 12:58:37PM +0100, Stefano Stabellini wrote:
-> On Mon, 20 Aug 2012, Ian Campbell wrote:
-> > On Mon, 2012-08-20 at 12:45 +0100, Stefano Stabellini wrote:
-> > > On Fri, 17 Aug 2012, Konrad Rzeszutek Wilk wrote:
-> > > > On Fri, Aug 17, 2012 at 06:41:23PM +0100, Stefano Stabellini wrote:
-> > > > > On Thu, 16 Aug 2012, Konrad Rzeszutek Wilk wrote:
-> > > > > > B/c we do not need it. During the startup the Xen provides
-> > > > > > us with all the memory mapped that we need to function.
-> > > > > 
-> > > > > Shouldn't we check to make sure that is actually true (I am thinking at
-> > > > > nr_pt_frames)?
-> > > > 
-> > > > I was looking at the source code (hypervisor) to figure it out and
-> > > > that is certainly true.
-> > > > 
-> > > > 
-> > > > > Or is it actually stated somewhere in the Xen headers?
-> > > > 
-> > > > Couldn't find it, but after looking so long at the source code
-> > > > I didn't even bother looking for it.
-> > > > 
-> > > > Thought to be honest - I only looked at how the 64-bit pagetables
-> > > > were set up, so I didn't dare to touch the 32-bit. Hence the #ifdef
-> > > 
-> > > I think that we need to involve some Xen maintainers and get this
-> > > written down somewhere in the public headers, otherwise we have no
-> > > guarantees that it is going to stay as it is in the next Xen versions.
-> > > 
-> > > Maybe we just need to add a couple of lines of comment to
-> > > xen/include/public/xen.h.
-> > 
-> > The start of day memory layout for PV guests is written down in the
-> > comment just before struct start_info at
-> > http://xenbits.xen.org/docs/unstable/hypercall/include,public,xen.h.html#Struct_start_info
-> > 
-> > (I haven't read this thread to determine if what is documented matches
-> > what you guys are talking about relying on)
-> 
-> but it is not written down how much physical memory is going to be
-> mapped in the bootstrap page tables.
-
-Considering that only pvops kernel has this change I think we are ok?
-> 
-> _______________________________________________
-> Xen-devel mailing list
-> Xen-devel@lists.xen.org
-> http://lists.xen.org/xen-devel
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<20120820141305.GA2713@phenom.dumpdata.com> b/test/corpus/<20120820141305.GA2713@phenom.dumpdata.com>
deleted file mode 100644 (file)
index e0da71b..0000000
+++ /dev/null
@@ -1,228 +0,0 @@
-From xen-devel-bounces@lists.xen.org Mon Aug 20 15:28:27 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Mon, 20 Aug 2012 15:28:27 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T3Sxs-0000r4-Vu
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Mon, 20 Aug 2012 15:28:27 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T3St1-00030N-Fj; Mon, 20 Aug 2012 14:23:23 +0000
-Received: from mail27.messagelabs.com ([193.109.254.147])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <konrad.wilk@oracle.com>) id 1T3Ssz-00030I-Lv
-       for xen-devel@lists.xensource.com; Mon, 20 Aug 2012 14:23:21 +0000
-X-Env-Sender: konrad.wilk@oracle.com
-X-Msg-Ref: server-15.tower-27.messagelabs.com!1345472587!2853154!1
-X-Originating-IP: [148.87.113.117]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogMTQ4Ljg3LjExMy4xMTcgPT4gNjk5ODQx\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 1320 invoked from network); 20 Aug 2012 14:23:12 -0000
-Received: from rcsinet15.oracle.com (HELO rcsinet15.oracle.com)
-       (148.87.113.117)
-       by server-15.tower-27.messagelabs.com with DHE-RSA-AES256-SHA encrypted
-       SMTP; 20 Aug 2012 14:23:12 -0000
-Received: from ucsinet21.oracle.com (ucsinet21.oracle.com [156.151.31.93])
-       by rcsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
-       ESMTP id q7KEN3UY006990
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
-       Mon, 20 Aug 2012 14:23:04 GMT
-Received: from acsmt357.oracle.com (acsmt357.oracle.com [141.146.40.157])
-       by ucsinet21.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
-       q7KEN2e6007076
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
-       Mon, 20 Aug 2012 14:23:03 GMT
-Received: from abhmt116.oracle.com (abhmt116.oracle.com [141.146.116.68])
-       by acsmt357.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
-       q7KEN1o9001850; Mon, 20 Aug 2012 09:23:02 -0500
-Received: from phenom.dumpdata.com (/209.6.85.33)
-       by default (Oracle Beehive Gateway v4.0)
-       with ESMTP ; Mon, 20 Aug 2012 07:23:01 -0700
-Received: by phenom.dumpdata.com (Postfix, from userid 1000)
-       id C71694029A; Mon, 20 Aug 2012 10:13:05 -0400 (EDT)
-Date: Mon, 20 Aug 2012 10:13:05 -0400
-From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-Message-ID: <20120820141305.GA2713@phenom.dumpdata.com>
-References: <1345133009-21941-1-git-send-email-konrad.wilk@oracle.com>
-       <1345133009-21941-3-git-send-email-konrad.wilk@oracle.com>
-       <alpine.DEB.2.02.1208171835010.15568@kaball.uk.xensource.com>
-MIME-Version: 1.0
-Content-Disposition: inline
-In-Reply-To: <alpine.DEB.2.02.1208171835010.15568@kaball.uk.xensource.com>
-User-Agent: Mutt/1.5.21 (2010-09-15)
-X-Source-IP: ucsinet21.oracle.com [156.151.31.93]
-Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
-       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 02/11] xen/x86: Use memblock_reserve for
- sensitive areas.
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Fri, Aug 17, 2012 at 06:35:12PM +0100, Stefano Stabellini wrote:
-> On Thu, 16 Aug 2012, Konrad Rzeszutek Wilk wrote:
-> > instead of a big memblock_reserve. This way we can be more
-> > selective in freeing regions (and it also makes it easier
-> > to understand where is what).
-> > 
-> > [v1: Move the auto_translate_physmap to proper line]
-> > [v2: Per Stefano suggestion add more comments]
-> > Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-> 
-> much better now!
-
-Thought interestingly enough it breaks 32-bit dom0s (and only dom0s).
-Will have a revised patch posted shortly.
-
-> 
-> >  arch/x86/xen/enlighten.c |   48 ++++++++++++++++++++++++++++++++++++++++++++++
-> >  arch/x86/xen/p2m.c       |    5 ++++
-> >  arch/x86/xen/setup.c     |    9 --------
-> >  3 files changed, 53 insertions(+), 9 deletions(-)
-> > 
-> > diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c
-> > index ff962d4..e532eb5 100644
-> > --- a/arch/x86/xen/enlighten.c
-> > +++ b/arch/x86/xen/enlighten.c
-> > @@ -998,7 +998,54 @@ static int xen_write_msr_safe(unsigned int msr, unsigned low, unsigned high)
-> >  
-> >    return ret;
-> >  }
-> > +/*
-> > + * If the MFN is not in the m2p (provided to us by the hypervisor) this
-> > + * function won't do anything. In practice this means that the XenBus
-> > + * MFN won't be available for the initial domain. */
-> > +static void __init xen_reserve_mfn(unsigned long mfn)
-> > +{
-> > +  unsigned long pfn;
-> > +
-> > +  if (!mfn)
-> > +          return;
-> > +  pfn = mfn_to_pfn(mfn);
-> > +  if (phys_to_machine_mapping_valid(pfn))
-> > +          memblock_reserve(PFN_PHYS(pfn), PAGE_SIZE);
-> > +}
-> > +static void __init xen_reserve_internals(void)
-> > +{
-> > +  unsigned long size;
-> > +
-> > +  if (!xen_pv_domain())
-> > +          return;
-> > +
-> > +  /* xen_start_info does not exist in the M2P, hence can't use
-> > +   * xen_reserve_mfn. */
-> > +  memblock_reserve(__pa(xen_start_info), PAGE_SIZE);
-> > +
-> > +  xen_reserve_mfn(PFN_DOWN(xen_start_info->shared_info));
-> > +  xen_reserve_mfn(xen_start_info->store_mfn);
-> >  
-> > +  if (!xen_initial_domain())
-> > +          xen_reserve_mfn(xen_start_info->console.domU.mfn);
-> > +
-> > +  if (xen_feature(XENFEAT_auto_translated_physmap))
-> > +          return;
-> > +
-> > +  /*
-> > +   * ALIGN up to compensate for the p2m_page pointing to an array that
-> > +   * can partially filled (look in xen_build_dynamic_phys_to_machine).
-> > +   */
-> > +
-> > +  size = PAGE_ALIGN(xen_start_info->nr_pages * sizeof(unsigned long));
-> > +
-> > +  /* We could use xen_reserve_mfn here, but would end up looping quite
-> > +   * a lot (and call memblock_reserve for each PAGE), so lets just use
-> > +   * the easy way and reserve it wholesale. */
-> > +  memblock_reserve(__pa(xen_start_info->mfn_list), size);
-> > +
-> > +  /* The pagetables are reserved in mmu.c */
-> > +}
-> >  void xen_setup_shared_info(void)
-> >  {
-> >    if (!xen_feature(XENFEAT_auto_translated_physmap)) {
-> > @@ -1362,6 +1409,7 @@ asmlinkage void __init xen_start_kernel(void)
-> >    xen_raw_console_write("mapping kernel into physical memory\n");
-> >    pgd = xen_setup_kernel_pagetable(pgd, xen_start_info->nr_pages);
-> >  
-> > +  xen_reserve_internals();
-> >    /* Allocate and initialize top and mid mfn levels for p2m structure */
-> >    xen_build_mfn_list_list();
-> >  
-> > diff --git a/arch/x86/xen/p2m.c b/arch/x86/xen/p2m.c
-> > index e4adbfb..6a2bfa4 100644
-> > --- a/arch/x86/xen/p2m.c
-> > +++ b/arch/x86/xen/p2m.c
-> > @@ -388,6 +388,11 @@ void __init xen_build_dynamic_phys_to_machine(void)
-> >    }
-> >  
-> >    m2p_override_init();
-> > +
-> > +  /* NOTE: We cannot call memblock_reserve here for the mfn_list as there
-> > +   * isn't enough pieces to make it work (for one - we are still using the
-> > +   * Xen provided pagetable). Do it later in xen_reserve_internals.
-> > +   */
-> >  }
-> >  
-> >  unsigned long get_phys_to_machine(unsigned long pfn)
-> > diff --git a/arch/x86/xen/setup.c b/arch/x86/xen/setup.c
-> > index a4790bf..9efca75 100644
-> > --- a/arch/x86/xen/setup.c
-> > +++ b/arch/x86/xen/setup.c
-> > @@ -424,15 +424,6 @@ char * __init xen_memory_setup(void)
-> >    e820_add_region(ISA_START_ADDRESS, ISA_END_ADDRESS - ISA_START_ADDRESS,
-> >                    E820_RESERVED);
-> >  
-> > -  /*
-> > -   * Reserve Xen bits:
-> > -   *  - mfn_list
-> > -   *  - xen_start_info
-> > -   * See comment above "struct start_info" in <xen/interface/xen.h>
-> > -   */
-> > -  memblock_reserve(__pa(xen_start_info->mfn_list),
-> > -                   xen_start_info->pt_base - xen_start_info->mfn_list);
-> > -
-> >    sanitize_e820_map(e820.map, ARRAY_SIZE(e820.map), &e820.nr_map);
-> >  
-> >    return "Xen";
-> > -- 
-> > 1.7.7.6
-> > 
-> > 
-> > _______________________________________________
-> > Xen-devel mailing list
-> > Xen-devel@lists.xen.org
-> > http://lists.xen.org/xen-devel
-> > 
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<20120821145713.GG20289@phenom.dumpdata.com> b/test/corpus/<20120821145713.GG20289@phenom.dumpdata.com>
deleted file mode 100644 (file)
index ca9d5fb..0000000
+++ /dev/null
@@ -1,164 +0,0 @@
-From xen-devel-bounces@lists.xen.org Tue Aug 21 16:11:04 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Tue, 21 Aug 2012 16:11:04 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T3q6g-0001Kz-LI
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 21 Aug 2012 16:11:04 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T3q3E-0004i3-VH; Tue, 21 Aug 2012 15:07:28 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <konrad.wilk@oracle.com>) id 1T3q3D-0004hs-6t
-       for xen-devel@lists.xensource.com; Tue, 21 Aug 2012 15:07:27 +0000
-Received: from [85.158.138.51:28323] by server-11.bemta-3.messagelabs.com id
-       C5/A6-23152-E24A3305; Tue, 21 Aug 2012 15:07:26 +0000
-X-Env-Sender: konrad.wilk@oracle.com
-X-Msg-Ref: server-14.tower-174.messagelabs.com!1345561644!23099216!1
-X-Originating-IP: [148.87.113.117]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogMTQ4Ljg3LjExMy4xMTcgPT4gNzAyMzU2\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 4193 invoked from network); 21 Aug 2012 15:07:25 -0000
-Received: from rcsinet15.oracle.com (HELO rcsinet15.oracle.com)
-       (148.87.113.117)
-       by server-14.tower-174.messagelabs.com with DHE-RSA-AES256-SHA
-       encrypted SMTP; 21 Aug 2012 15:07:25 -0000
-Received: from acsinet21.oracle.com (acsinet21.oracle.com [141.146.126.237])
-       by rcsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
-       ESMTP id q7LF7KT5019205
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
-       Tue, 21 Aug 2012 15:07:22 GMT
-Received: from acsmt357.oracle.com (acsmt357.oracle.com [141.146.40.157])
-       by acsinet21.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
-       q7LF7CAj029749
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
-       Tue, 21 Aug 2012 15:07:12 GMT
-Received: from abhmt115.oracle.com (abhmt115.oracle.com [141.146.116.67])
-       by acsmt357.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
-       q7LF7BKl030219; Tue, 21 Aug 2012 10:07:12 -0500
-Received: from phenom.dumpdata.com (/209.6.85.33)
-       by default (Oracle Beehive Gateway v4.0)
-       with ESMTP ; Tue, 21 Aug 2012 08:07:11 -0700
-Received: by phenom.dumpdata.com (Postfix, from userid 1000)
-       id 296684031E; Tue, 21 Aug 2012 10:57:13 -0400 (EDT)
-Date: Tue, 21 Aug 2012 10:57:13 -0400
-From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-Message-ID: <20120821145713.GG20289@phenom.dumpdata.com>
-References: <1345133009-21941-1-git-send-email-konrad.wilk@oracle.com>
-       <1345133009-21941-12-git-send-email-konrad.wilk@oracle.com>
-       <alpine.DEB.2.02.1208211514130.15568@kaball.uk.xensource.com>
-MIME-Version: 1.0
-Content-Disposition: inline
-In-Reply-To: <alpine.DEB.2.02.1208211514130.15568@kaball.uk.xensource.com>
-User-Agent: Mutt/1.5.21 (2010-09-15)
-X-Source-IP: acsinet21.oracle.com [141.146.126.237]
-Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
-       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 11/11] xen/mmu: Release just the MFN list,
- not MFN list and part of pagetables.
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Tue, Aug 21, 2012 at 03:18:26PM +0100, Stefano Stabellini wrote:
-> On Thu, 16 Aug 2012, Konrad Rzeszutek Wilk wrote:
-> > We call memblock_reserve for [start of mfn list] -> [PMD aligned end
-> > of mfn list] instead of <start of mfn list> -> <page aligned end of mfn list].
-> > 
-> > This has the disastrous effect that if at bootup the end of mfn_list is
-> > not PMD aligned we end up returning to memblock parts of the region
-> > past the mfn_list array. And those parts are the PTE tables with
-> > the disastrous effect of seeing this at bootup:
-> 
-> This patch looks wrong to me.
-
-Its easier to see if you stick the patch in the code. The size = part
-was actually also done earlier.
-> 
-> Aren't you changing the way mfn_list is reserved using memblock in patch
-> #3? Moreover it really seems to me that you are PAGE_ALIGN'ing size
-> rather than PMD_ALIGN'ing it there.
-
-Correct. That is proper way of doing it. We want to PMD_ALIGN for the xen_cleanhighmap
-to remove the pesky virtual address, but we want PAGE_ALIGN (so exactly the
-same way memblock_reserve was called) for memblock_free.
-> 
-> 
-> > Write protecting the kernel read-only data: 10240k
-> > Freeing unused kernel memory: 1860k freed
-> > Freeing unused kernel memory: 200k freed
-> > (XEN) mm.c:2429:d0 Bad type (saw 1400000000000002 != exp 7000000000000000) for mfn 116a80 (pfn 14e26)
-> > ...
-> > (XEN) mm.c:908:d0 Error getting mfn 116a83 (pfn 14e2a) from L1 entry 8000000116a83067 for l1e_owner=0, pg_owner=0
-> > (XEN) mm.c:908:d0 Error getting mfn 4040 (pfn 5555555555555555) from L1 entry 0000000004040601 for l1e_owner=0, pg_owner=0
-> > .. and so on.
-> >
-> > Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-> > ---
-> >  arch/x86/xen/mmu.c |    2 +-
-> >  1 files changed, 1 insertions(+), 1 deletions(-)
-> > 
-> > diff --git a/arch/x86/xen/mmu.c b/arch/x86/xen/mmu.c
-> > index 5a880b8..6019c22 100644
-> > --- a/arch/x86/xen/mmu.c
-> > +++ b/arch/x86/xen/mmu.c
-> > @@ -1227,7 +1227,6 @@ static void __init xen_pagetable_setup_done(pgd_t *base)
-> >                    /* We should be in __ka space. */
-> >                    BUG_ON(xen_start_info->mfn_list < __START_KERNEL_map);
-> >                    addr = xen_start_info->mfn_list;
-> > -                  size = PAGE_ALIGN(xen_start_info->nr_pages * sizeof(unsigned long));
-> >                    /* We roundup to the PMD, which means that if anybody at this stage is
-> >                     * using the __ka address of xen_start_info or xen_start_info->shared_info
-> >                     * they are in going to crash. Fortunatly we have already revectored
-> > @@ -1235,6 +1234,7 @@ static void __init xen_pagetable_setup_done(pgd_t *base)
-> >                    size = roundup(size, PMD_SIZE);
-> >                    xen_cleanhighmap(addr, addr + size);
-> >  
-> > +                  size = PAGE_ALIGN(xen_start_info->nr_pages * sizeof(unsigned long));
-> >                    memblock_free(__pa(xen_start_info->mfn_list), size);
-> >                    /* And revector! Bye bye old array */
-> >                    xen_start_info->mfn_list = new_mfn_list;
-> > -- 
-> > 1.7.7.6
-> > 
-> > 
-> > _______________________________________________
-> > Xen-devel mailing list
-> > Xen-devel@lists.xen.org
-> > http://lists.xen.org/xen-devel
-> > 
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<20120821172732.GA23715@phenom.dumpdata.com> b/test/corpus/<20120821172732.GA23715@phenom.dumpdata.com>
deleted file mode 100644 (file)
index 1d6187a..0000000
+++ /dev/null
@@ -1,160 +0,0 @@
-From xen-devel-bounces@lists.xen.org Tue Aug 21 18:42:34 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Tue, 21 Aug 2012 18:42:34 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T3sTI-00023s-8I
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 21 Aug 2012 18:42:34 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T3sOe-0001PX-59; Tue, 21 Aug 2012 17:37:44 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <konrad.wilk@oracle.com>) id 1T3sOb-0001PS-UA
-       for xen-devel@lists.xensource.com; Tue, 21 Aug 2012 17:37:42 +0000
-Received: from [85.158.143.99:30547] by server-2.bemta-4.messagelabs.com id
-       FF/44-21239-567C3305; Tue, 21 Aug 2012 17:37:41 +0000
-X-Env-Sender: konrad.wilk@oracle.com
-X-Msg-Ref: server-3.tower-216.messagelabs.com!1345570659!28754333!1
-X-Originating-IP: [148.87.113.117]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogMTQ4Ljg3LjExMy4xMTcgPT4gNzAyMzU2\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 27507 invoked from network); 21 Aug 2012 17:37:40 -0000
-Received: from rcsinet15.oracle.com (HELO rcsinet15.oracle.com)
-       (148.87.113.117)
-       by server-3.tower-216.messagelabs.com with DHE-RSA-AES256-SHA encrypted
-       SMTP; 21 Aug 2012 17:37:40 -0000
-Received: from ucsinet22.oracle.com (ucsinet22.oracle.com [156.151.31.94])
-       by rcsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
-       ESMTP id q7LHbWIK007606
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
-       Tue, 21 Aug 2012 17:37:33 GMT
-Received: from acsmt357.oracle.com (acsmt357.oracle.com [141.146.40.157])
-       by ucsinet22.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
-       q7LHbV82003047
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
-       Tue, 21 Aug 2012 17:37:32 GMT
-Received: from abhmt119.oracle.com (abhmt119.oracle.com [141.146.116.71])
-       by acsmt357.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
-       q7LHbVDQ016351; Tue, 21 Aug 2012 12:37:31 -0500
-Received: from phenom.dumpdata.com (/209.6.85.33)
-       by default (Oracle Beehive Gateway v4.0)
-       with ESMTP ; Tue, 21 Aug 2012 10:37:31 -0700
-Received: by phenom.dumpdata.com (Postfix, from userid 1000)
-       id E2EC24031E; Tue, 21 Aug 2012 13:27:32 -0400 (EDT)
-Date: Tue, 21 Aug 2012 13:27:32 -0400
-From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>, JBeulich@suse.com
-Message-ID: <20120821172732.GA23715@phenom.dumpdata.com>
-References: <1345133009-21941-1-git-send-email-konrad.wilk@oracle.com>
-       <1345133009-21941-3-git-send-email-konrad.wilk@oracle.com>
-       <alpine.DEB.2.02.1208171835010.15568@kaball.uk.xensource.com>
-       <20120820141305.GA2713@phenom.dumpdata.com>
-MIME-Version: 1.0
-Content-Disposition: inline
-In-Reply-To: <20120820141305.GA2713@phenom.dumpdata.com>
-User-Agent: Mutt/1.5.21 (2010-09-15)
-X-Source-IP: ucsinet22.oracle.com [156.151.31.94]
-Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
-       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
-Subject: [Xen-devel] Q:pt_base in COMPAT mode offset by two pages. Was:Re:
- [PATCH 02/11] xen/x86: Use memblock_reserve for sensitive areas.
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Mon, Aug 20, 2012 at 10:13:05AM -0400, Konrad Rzeszutek Wilk wrote:
-> On Fri, Aug 17, 2012 at 06:35:12PM +0100, Stefano Stabellini wrote:
-> > On Thu, 16 Aug 2012, Konrad Rzeszutek Wilk wrote:
-> > > instead of a big memblock_reserve. This way we can be more
-> > > selective in freeing regions (and it also makes it easier
-> > > to understand where is what).
-> > > 
-> > > [v1: Move the auto_translate_physmap to proper line]
-> > > [v2: Per Stefano suggestion add more comments]
-> > > Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-> > 
-> > much better now!
-> 
-> Thought interestingly enough it breaks 32-bit dom0s (and only dom0s).
-> Will have a revised patch posted shortly.
-
-Jan, I thought something odd. Part of this code replaces this:
-
-       memblock_reserve(__pa(xen_start_info->mfn_list),
-               xen_start_info->pt_base - xen_start_info->mfn_list);
-
-with a more region-by-region area. What I found out that if I boot this
-as 32-bit guest with a 64-bit hypervisor the xen_start_info->pt_base is
-actually wrong.
-
-Specifically this is what bootup says:
-
-(good working case - 32bit hypervisor with 32-bit dom0):
-(XEN)  Loaded kernel: c1000000->c1a23000
-(XEN)  Init. ramdisk: c1a23000->cf730e00
-(XEN)  Phys-Mach map: cf731000->cf831000
-(XEN)  Start info:    cf831000->cf83147c
-(XEN)  Page tables:   cf832000->cf8b5000
-(XEN)  Boot stack:    cf8b5000->cf8b6000
-(XEN)  TOTAL:         c0000000->cfc00000
-
-[    0.000000] PT: cf832000 (f832000)
-[    0.000000] Reserving PT: f832000->f8b5000
-
-And with a 64-bit hypervisor:
-
-XEN) VIRTUAL MEMORY ARRANGEMENT:
-(XEN)  Loaded kernel: 00000000c1000000->00000000c1a23000
-(XEN)  Init. ramdisk: 00000000c1a23000->00000000cf730e00
-(XEN)  Phys-Mach map: 00000000cf731000->00000000cf831000
-(XEN)  Start info:    00000000cf831000->00000000cf8314b4
-(XEN)  Page tables:   00000000cf832000->00000000cf8b6000
-(XEN)  Boot stack:    00000000cf8b6000->00000000cf8b7000
-(XEN)  TOTAL:         00000000c0000000->00000000cfc00000
-(XEN)  ENTRY ADDRESS: 00000000c16bb22c
-
-[    0.000000] PT: cf834000 (f834000)
-[    0.000000] Reserving PT: f834000->f8b8000
-
-So the pt_base is offset by two pages. And looking at c/s 13257
-its not clear to me why this two page offset was added?
-
-The toolstack works fine - so launching 32-bit guests either
-under a 32-bit hypervisor or 64-bit works fine:
-] domainbuilder: detail: xc_dom_alloc_segment:   page tables  : 0xcf805000 -> 0xcf885000  (pfn 0xf805 + 0x80 pages)
-[    0.000000] PT: cf805000 (f805000)
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<20120821190317.GA13035@phenom.dumpdata.com> b/test/corpus/<20120821190317.GA13035@phenom.dumpdata.com>
deleted file mode 100644 (file)
index 93ef4fe..0000000
+++ /dev/null
@@ -1,271 +0,0 @@
-From xen-devel-bounces@lists.xen.org Tue Aug 21 20:17:52 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Tue, 21 Aug 2012 20:17:52 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T3txV-0002P1-FR
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 21 Aug 2012 20:17:52 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T3ttJ-0003YP-Sc; Tue, 21 Aug 2012 19:13:29 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <konrad.wilk@oracle.com>) id 1T3ttH-0003YK-7o
-       for xen-devel@lists.xensource.com; Tue, 21 Aug 2012 19:13:27 +0000
-Received: from [85.158.139.83:36164] by server-9.bemta-5.messagelabs.com id
-       D1/5B-26123-6DDD3305; Tue, 21 Aug 2012 19:13:26 +0000
-X-Env-Sender: konrad.wilk@oracle.com
-X-Msg-Ref: server-2.tower-182.messagelabs.com!1345576404!29326099!1
-X-Originating-IP: [148.87.113.117]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogMTQ4Ljg3LjExMy4xMTcgPT4gNzAyMzU2\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 11789 invoked from network); 21 Aug 2012 19:13:25 -0000
-Received: from rcsinet15.oracle.com (HELO rcsinet15.oracle.com)
-       (148.87.113.117)
-       by server-2.tower-182.messagelabs.com with DHE-RSA-AES256-SHA encrypted
-       SMTP; 21 Aug 2012 19:13:25 -0000
-Received: from acsinet22.oracle.com (acsinet22.oracle.com [141.146.126.238])
-       by rcsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
-       ESMTP id q7LJDHZH008413
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
-       Tue, 21 Aug 2012 19:13:18 GMT
-Received: from acsmt356.oracle.com (acsmt356.oracle.com [141.146.40.156])
-       by acsinet22.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
-       q7LJDG0c004897
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
-       Tue, 21 Aug 2012 19:13:16 GMT
-Received: from abhmt120.oracle.com (abhmt120.oracle.com [141.146.116.72])
-       by acsmt356.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
-       q7LJDFMk031735; Tue, 21 Aug 2012 14:13:15 -0500
-Received: from phenom.dumpdata.com (/209.6.85.33)
-       by default (Oracle Beehive Gateway v4.0)
-       with ESMTP ; Tue, 21 Aug 2012 12:13:16 -0700
-Received: by phenom.dumpdata.com (Postfix, from userid 1000)
-       id 7AFE64031E; Tue, 21 Aug 2012 15:03:17 -0400 (EDT)
-Date: Tue, 21 Aug 2012 15:03:17 -0400
-From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>, JBeulich@suse.com
-Message-ID: <20120821190317.GA13035@phenom.dumpdata.com>
-References: <1345133009-21941-1-git-send-email-konrad.wilk@oracle.com>
-       <1345133009-21941-3-git-send-email-konrad.wilk@oracle.com>
-       <alpine.DEB.2.02.1208171835010.15568@kaball.uk.xensource.com>
-       <20120820141305.GA2713@phenom.dumpdata.com>
-       <20120821172732.GA23715@phenom.dumpdata.com>
-MIME-Version: 1.0
-Content-Disposition: inline
-In-Reply-To: <20120821172732.GA23715@phenom.dumpdata.com>
-User-Agent: Mutt/1.5.21 (2010-09-15)
-X-Source-IP: acsinet22.oracle.com [141.146.126.238]
-Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
-       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
-Subject: Re: [Xen-devel] Q:pt_base in COMPAT mode offset by two pages.
- Was:Re: [PATCH 02/11] xen/x86: Use memblock_reserve for sensitive areas.
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Tue, Aug 21, 2012 at 01:27:32PM -0400, Konrad Rzeszutek Wilk wrote:
-> On Mon, Aug 20, 2012 at 10:13:05AM -0400, Konrad Rzeszutek Wilk wrote:
-> > On Fri, Aug 17, 2012 at 06:35:12PM +0100, Stefano Stabellini wrote:
-> > > On Thu, 16 Aug 2012, Konrad Rzeszutek Wilk wrote:
-> > > > instead of a big memblock_reserve. This way we can be more
-> > > > selective in freeing regions (and it also makes it easier
-> > > > to understand where is what).
-> > > > 
-> > > > [v1: Move the auto_translate_physmap to proper line]
-> > > > [v2: Per Stefano suggestion add more comments]
-> > > > Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-> > > 
-> > > much better now!
-> > 
-> > Thought interestingly enough it breaks 32-bit dom0s (and only dom0s).
-> > Will have a revised patch posted shortly.
-> 
-> Jan, I thought something odd. Part of this code replaces this:
-> 
->      memblock_reserve(__pa(xen_start_info->mfn_list),
->              xen_start_info->pt_base - xen_start_info->mfn_list);
-> 
-> with a more region-by-region area. What I found out that if I boot this
-> as 32-bit guest with a 64-bit hypervisor the xen_start_info->pt_base is
-> actually wrong.
-> 
-> Specifically this is what bootup says:
-> 
-> (good working case - 32bit hypervisor with 32-bit dom0):
-> (XEN)  Loaded kernel: c1000000->c1a23000
-> (XEN)  Init. ramdisk: c1a23000->cf730e00
-> (XEN)  Phys-Mach map: cf731000->cf831000
-> (XEN)  Start info:    cf831000->cf83147c
-> (XEN)  Page tables:   cf832000->cf8b5000
-> (XEN)  Boot stack:    cf8b5000->cf8b6000
-> (XEN)  TOTAL:         c0000000->cfc00000
-> 
-> [    0.000000] PT: cf832000 (f832000)
-> [    0.000000] Reserving PT: f832000->f8b5000
-> 
-> And with a 64-bit hypervisor:
-> 
-> XEN) VIRTUAL MEMORY ARRANGEMENT:
-> (XEN)  Loaded kernel: 00000000c1000000->00000000c1a23000
-> (XEN)  Init. ramdisk: 00000000c1a23000->00000000cf730e00
-> (XEN)  Phys-Mach map: 00000000cf731000->00000000cf831000
-> (XEN)  Start info:    00000000cf831000->00000000cf8314b4
-> (XEN)  Page tables:   00000000cf832000->00000000cf8b6000
-> (XEN)  Boot stack:    00000000cf8b6000->00000000cf8b7000
-> (XEN)  TOTAL:         00000000c0000000->00000000cfc00000
-> (XEN)  ENTRY ADDRESS: 00000000c16bb22c
-> 
-> [    0.000000] PT: cf834000 (f834000)
-> [    0.000000] Reserving PT: f834000->f8b8000
-> 
-> So the pt_base is offset by two pages. And looking at c/s 13257
-> its not clear to me why this two page offset was added?
-> 
-> The toolstack works fine - so launching 32-bit guests either
-> under a 32-bit hypervisor or 64-bit works fine:
-> ] domainbuilder: detail: xc_dom_alloc_segment:   page tables  : 0xcf805000 -> 0xcf885000  (pfn 0xf805 + 0x80 pages)
-> [    0.000000] PT: cf805000 (f805000)
-> 
-
-And this patch on top of the others fixes this..
-
-
->From 806c312e50f122c47913145cf884f53dd09d9199 Mon Sep 17 00:00:00 2001
-From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-Date: Tue, 21 Aug 2012 14:31:24 -0400
-Subject: [PATCH] xen/x86: Workaround 64-bit hypervisor and 32-bit initial
- domain.
-
-If a 64-bit hypervisor is booted with a 32-bit initial domain,
-the hypervisor deals with the initial domain as "compat" and
-does some extra adjustments (like pagetables are 4 bytes instead
-of 8). It also adjusts the xen_start_info->pt_base incorrectly.
-
-When booted with a 32-bit hypervisor (32-bit initial domain):
-..
-(XEN)  Start info:    cf831000->cf83147c
-(XEN)  Page tables:   cf832000->cf8b5000
-..
-[    0.000000] PT: cf832000 (f832000)
-[    0.000000] Reserving PT: f832000->f8b5000
-
-And with a 64-bit hypervisor:
-(XEN)  Start info:    00000000cf831000->00000000cf8314b4
-(XEN)  Page tables:   00000000cf832000->00000000cf8b6000
-
-[    0.000000] PT: cf834000 (f834000)
-[    0.000000] Reserving PT: f834000->f8b8000
-
-To deal with this, we keep keep track of the highest physical
-address we have reserved via memblock_reserve. If that address
-does not overlap with pt_base, we have a gap which we reserve.
-
-Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
----
- arch/x86/xen/enlighten.c |   30 +++++++++++++++++++++---------
- 1 files changed, 21 insertions(+), 9 deletions(-)
-
-diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c
-index e532eb5..511f92d 100644
---- a/arch/x86/xen/enlighten.c
-+++ b/arch/x86/xen/enlighten.c
-@@ -1002,19 +1002,24 @@ static int xen_write_msr_safe(unsigned int msr, unsigned low, unsigned high)
-  * If the MFN is not in the m2p (provided to us by the hypervisor) this
-  * function won't do anything. In practice this means that the XenBus
-  * MFN won't be available for the initial domain. */
--static void __init xen_reserve_mfn(unsigned long mfn)
-+static unsigned long __init xen_reserve_mfn(unsigned long mfn)
- {
--      unsigned long pfn;
-+      unsigned long pfn, end_pfn = 0;
-       if (!mfn)
--              return;
-+              return end_pfn;
-+
-       pfn = mfn_to_pfn(mfn);
--      if (phys_to_machine_mapping_valid(pfn))
--              memblock_reserve(PFN_PHYS(pfn), PAGE_SIZE);
-+      if (phys_to_machine_mapping_valid(pfn)) {
-+              end_pfn = PFN_PHYS(pfn) + PAGE_SIZE;
-+              memblock_reserve(PFN_PHYS(pfn), end_pfn);
-+      }
-+      return end_pfn;
- }
- static void __init xen_reserve_internals(void)
- {
-       unsigned long size;
-+      unsigned long last_phys = 0;
-       if (!xen_pv_domain())
-               return;
-@@ -1022,12 +1027,13 @@ static void __init xen_reserve_internals(void)
-       /* xen_start_info does not exist in the M2P, hence can't use
-        * xen_reserve_mfn. */
-       memblock_reserve(__pa(xen_start_info), PAGE_SIZE);
-+      last_phys = __pa(xen_start_info) + PAGE_SIZE;
--      xen_reserve_mfn(PFN_DOWN(xen_start_info->shared_info));
--      xen_reserve_mfn(xen_start_info->store_mfn);
-+      last_phys = max(xen_reserve_mfn(PFN_DOWN(xen_start_info->shared_info)), last_phys);
-+      last_phys = max(xen_reserve_mfn(xen_start_info->store_mfn), last_phys);
-       if (!xen_initial_domain())
--              xen_reserve_mfn(xen_start_info->console.domU.mfn);
-+              last_phys = max(xen_reserve_mfn(xen_start_info->console.domU.mfn), last_phys);
-       if (xen_feature(XENFEAT_auto_translated_physmap))
-               return;
-@@ -1043,8 +1049,14 @@ static void __init xen_reserve_internals(void)
-        * a lot (and call memblock_reserve for each PAGE), so lets just use
-        * the easy way and reserve it wholesale. */
-       memblock_reserve(__pa(xen_start_info->mfn_list), size);
--
-+      last_phys = max(__pa(xen_start_info->mfn_list) + size, last_phys);
-       /* The pagetables are reserved in mmu.c */
-+
-+      /* Under 64-bit hypervisor with a 32-bit domain, the hypervisor
-+       * offsets the pt_base by two pages. Hence the reservation that is done
-+       * in mmu.c misses two pages. We correct it here if we detect this. */
-+      if (last_phys < __pa(xen_start_info->pt_base))
-+              memblock_reserve(last_phys, __pa(xen_start_info->pt_base) - last_phys);
- }
- void xen_setup_shared_info(void)
- {
--- 
-1.7.7.6
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<20120822140039.GB30964@phenom.dumpdata.com> b/test/corpus/<20120822140039.GB30964@phenom.dumpdata.com>
deleted file mode 100644 (file)
index 1088589..0000000
+++ /dev/null
@@ -1,126 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Aug 22 15:14:50 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 22 Aug 2012 15:14:50 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T4Bhm-0001bV-5m
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 22 Aug 2012 15:14:50 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T4Be0-0006VT-QD; Wed, 22 Aug 2012 14:10:52 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <konrad.wilk@oracle.com>) id 1T4Bdy-0006VL-OQ
-       for xen-devel@lists.xensource.com; Wed, 22 Aug 2012 14:10:50 +0000
-Received: from [85.158.143.99:61011] by server-1.bemta-4.messagelabs.com id
-       48/57-07754-A68E4305; Wed, 22 Aug 2012 14:10:50 +0000
-X-Env-Sender: konrad.wilk@oracle.com
-X-Msg-Ref: server-4.tower-216.messagelabs.com!1345644648!22112845!1
-X-Originating-IP: [148.87.113.117]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogMTQ4Ljg3LjExMy4xMTcgPT4gNzA1MDk5\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 25317 invoked from network); 22 Aug 2012 14:10:49 -0000
-Received: from rcsinet15.oracle.com (HELO rcsinet15.oracle.com)
-       (148.87.113.117)
-       by server-4.tower-216.messagelabs.com with DHE-RSA-AES256-SHA encrypted
-       SMTP; 22 Aug 2012 14:10:49 -0000
-Received: from ucsinet22.oracle.com (ucsinet22.oracle.com [156.151.31.94])
-       by rcsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
-       ESMTP id q7MEAi6J027684
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
-       Wed, 22 Aug 2012 14:10:44 GMT
-Received: from acsmt357.oracle.com (acsmt357.oracle.com [141.146.40.157])
-       by ucsinet22.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
-       q7MEAhxs011546
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
-       Wed, 22 Aug 2012 14:10:43 GMT
-Received: from abhmt113.oracle.com (abhmt113.oracle.com [141.146.116.65])
-       by acsmt357.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
-       q7MEAg58016293; Wed, 22 Aug 2012 09:10:42 -0500
-Received: from phenom.dumpdata.com (/209.6.85.33)
-       by default (Oracle Beehive Gateway v4.0)
-       with ESMTP ; Wed, 22 Aug 2012 07:10:42 -0700
-Received: by phenom.dumpdata.com (Postfix, from userid 1000)
-       id 93A424031E; Wed, 22 Aug 2012 10:00:39 -0400 (EDT)
-Date: Wed, 22 Aug 2012 10:00:39 -0400
-From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-Message-ID: <20120822140039.GB30964@phenom.dumpdata.com>
-References: <1345133009-21941-1-git-send-email-konrad.wilk@oracle.com>
-       <1345133009-21941-3-git-send-email-konrad.wilk@oracle.com>
-       <alpine.DEB.2.02.1208171835010.15568@kaball.uk.xensource.com>
-       <20120820141305.GA2713@phenom.dumpdata.com>
-       <20120821172732.GA23715@phenom.dumpdata.com>
-       <20120821190317.GA13035@phenom.dumpdata.com>
-       <alpine.DEB.2.02.1208221146230.15568@kaball.uk.xensource.com>
-MIME-Version: 1.0
-Content-Disposition: inline
-In-Reply-To: <alpine.DEB.2.02.1208221146230.15568@kaball.uk.xensource.com>
-User-Agent: Mutt/1.5.21 (2010-09-15)
-X-Source-IP: ucsinet22.oracle.com [156.151.31.94]
-Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
-       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
-       "JBeulich@suse.com" <JBeulich@suse.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] Q:pt_base in COMPAT mode offset by two pages.
- Was:Re: [PATCH 02/11] xen/x86: Use memblock_reserve for sensitive areas.
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-> > +  /* Under 64-bit hypervisor with a 32-bit domain, the hypervisor
-> > +   * offsets the pt_base by two pages. Hence the reservation that is done
-> > +   * in mmu.c misses two pages. We correct it here if we detect this. */
-> > +  if (last_phys < __pa(xen_start_info->pt_base))
-> > +          memblock_reserve(last_phys, __pa(xen_start_info->pt_base) - last_phys);
-> >  }
-> 
-> What are these two pages used for? They are not documented in xen.h, why
-> should we reserve them?
-> 
-> After all we still have:
-> 
-> memblock_reserve(PFN_PHYS(pt_base), (pt_end - pt_base) * PAGE_SIZE);
-> 
-> that should protect what we are interested in anyway...
-
-You are looking at the x86_64 piece of code. This issue only appears
-on 32-bit which was not modified by my patches and has:
-
-2003         memblock_reserve(__pa(xen_start_info->pt_base),
-2004                          xen_start_info->nr_pt_frames * PAGE_SIZE);
-
-and as I found out, the pt_base is wrong. The cr3 we load and use is actually
-two pages back!
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<20120822145730.GI30964@phenom.dumpdata.com> b/test/corpus/<20120822145730.GI30964@phenom.dumpdata.com>
deleted file mode 100644 (file)
index baa45d5..0000000
+++ /dev/null
@@ -1,184 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Aug 22 16:38:48 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 22 Aug 2012 16:38:48 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T4D13-000236-Iy
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 22 Aug 2012 16:38:48 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T4CxF-0001yx-0J; Wed, 22 Aug 2012 15:34:49 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <konrad.wilk@oracle.com>) id 1T4CxE-0001ys-2C
-       for xen-devel@lists.xensource.com; Wed, 22 Aug 2012 15:34:48 +0000
-Received: from [85.158.143.35:30565] by server-2.bemta-4.messagelabs.com id
-       E4/5F-21239-71CF4305; Wed, 22 Aug 2012 15:34:47 +0000
-X-Env-Sender: konrad.wilk@oracle.com
-X-Msg-Ref: server-16.tower-21.messagelabs.com!1345649684!13205292!1
-X-Originating-IP: [141.146.126.236]
-X-SpamReason: No, hits=0.0 required=7.0 tests=UNPARSEABLE_RELAY
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 22274 invoked from network); 22 Aug 2012 15:34:45 -0000
-Received: from acsinet14.oracle.com (HELO acsinet14.oracle.com)
-       (141.146.126.236)
-       by server-16.tower-21.messagelabs.com with DHE-RSA-AES256-SHA encrypted
-       SMTP; 22 Aug 2012 15:34:45 -0000
-Received: from acsinet15.oracle.com (acsinet15.oracle.com [141.146.126.227])
-       by acsinet14.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
-       ESMTP id q7MF7ZxM007350
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK)
-       for <xen-devel@lists.xensource.com>; Wed, 22 Aug 2012 15:07:35 GMT
-Received: from acsinet22.oracle.com (acsinet22.oracle.com [141.146.126.238])
-       by acsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
-       ESMTP id q7MF7Wid012266
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
-       Wed, 22 Aug 2012 15:07:32 GMT
-Received: from acsmt357.oracle.com (acsmt357.oracle.com [141.146.40.157])
-       by acsinet22.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
-       q7MF7Vmr010382
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
-       Wed, 22 Aug 2012 15:07:32 GMT
-Received: from abhmt112.oracle.com (abhmt112.oracle.com [141.146.116.64])
-       by acsmt357.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
-       q7MF7Viv030942; Wed, 22 Aug 2012 10:07:31 -0500
-Received: from phenom.dumpdata.com (/209.6.85.33)
-       by default (Oracle Beehive Gateway v4.0)
-       with ESMTP ; Wed, 22 Aug 2012 08:07:31 -0700
-Received: by phenom.dumpdata.com (Postfix, from userid 1000)
-       id 13DC14031E; Wed, 22 Aug 2012 10:57:31 -0400 (EDT)
-Date: Wed, 22 Aug 2012 10:57:31 -0400
-From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-To: Jan Beulich <JBeulich@suse.com>
-Message-ID: <20120822145730.GI30964@phenom.dumpdata.com>
-References: <1345133009-21941-1-git-send-email-konrad.wilk@oracle.com>
-       <1345133009-21941-3-git-send-email-konrad.wilk@oracle.com>
-       <alpine.DEB.2.02.1208171835010.15568@kaball.uk.xensource.com>
-       <20120820141305.GA2713@phenom.dumpdata.com>
-       <20120821172732.GA23715@phenom.dumpdata.com>
-       <20120821190317.GA13035@phenom.dumpdata.com>
-       <503504FE0200007800096F08@nat28.tlf.novell.com>
-MIME-Version: 1.0
-Content-Disposition: inline
-In-Reply-To: <503504FE0200007800096F08@nat28.tlf.novell.com>
-User-Agent: Mutt/1.5.21 (2010-09-15)
-X-Source-IP: acsinet15.oracle.com [141.146.126.227]
-Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
-       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
-       Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
-Subject: Re: [Xen-devel] Q:pt_base in COMPAT mode offset by two pages.
- Was:Re: [PATCH 02/11] xen/x86: Use memblock_reserve for sensitive areas.
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Wed, Aug 22, 2012 at 03:12:46PM +0100, Jan Beulich wrote:
-> >>> On 21.08.12 at 21:03, Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> wrote:
-> > On Tue, Aug 21, 2012 at 01:27:32PM -0400, Konrad Rzeszutek Wilk wrote:
-> >> Jan, I thought something odd. Part of this code replaces this:
-> >> 
-> >>   memblock_reserve(__pa(xen_start_info->mfn_list),
-> >>           xen_start_info->pt_base - xen_start_info->mfn_list);
-> >> 
-> >> with a more region-by-region area. What I found out that if I boot this
-> >> as 32-bit guest with a 64-bit hypervisor the xen_start_info->pt_base is
-> >> actually wrong.
-> >> 
-> >> Specifically this is what bootup says:
-> >> 
-> >> (good working case - 32bit hypervisor with 32-bit dom0):
-> >> (XEN)  Loaded kernel: c1000000->c1a23000
-> >> (XEN)  Init. ramdisk: c1a23000->cf730e00
-> >> (XEN)  Phys-Mach map: cf731000->cf831000
-> >> (XEN)  Start info:    cf831000->cf83147c
-> >> (XEN)  Page tables:   cf832000->cf8b5000
-> >> (XEN)  Boot stack:    cf8b5000->cf8b6000
-> >> (XEN)  TOTAL:         c0000000->cfc00000
-> >> 
-> >> [    0.000000] PT: cf832000 (f832000)
-> >> [    0.000000] Reserving PT: f832000->f8b5000
-> >> 
-> >> And with a 64-bit hypervisor:
-> >> 
-> >> XEN) VIRTUAL MEMORY ARRANGEMENT:
-> >> (XEN)  Loaded kernel: 00000000c1000000->00000000c1a23000
-> >> (XEN)  Init. ramdisk: 00000000c1a23000->00000000cf730e00
-> >> (XEN)  Phys-Mach map: 00000000cf731000->00000000cf831000
-> >> (XEN)  Start info:    00000000cf831000->00000000cf8314b4
-> >> (XEN)  Page tables:   00000000cf832000->00000000cf8b6000
-> >> (XEN)  Boot stack:    00000000cf8b6000->00000000cf8b7000
-> >> (XEN)  TOTAL:         00000000c0000000->00000000cfc00000
-> >> (XEN)  ENTRY ADDRESS: 00000000c16bb22c
-> >> 
-> >> [    0.000000] PT: cf834000 (f834000)
-> >> [    0.000000] Reserving PT: f834000->f8b8000
-> >> 
-> >> So the pt_base is offset by two pages. And looking at c/s 13257
-> >> its not clear to me why this two page offset was added?
-> 
-> Honestly, without looking through this in greater detail I don't
-> recall. That'll have to wait possibly until after the summit, though.
-
-I figured it was baked in the API so not really worth persuing
-a fix and just leave it as is.
-
-> I can't exclude that this is just a forgotten leftover from an earlier
-> version of the patch. I would have thought this was to account
-> for the L4 tables that the guest doesn't see, but
-> - this should only be a single page
-> - this should then also (or rather instead) be subtracted from
->   nr_pt_frames
-> so that's likely not it.
-> 
-> >> The toolstack works fine - so launching 32-bit guests either
-> >> under a 32-bit hypervisor or 64-bit works fine:
-> >> ] domainbuilder: detail: xc_dom_alloc_segment:   page tables  : 0xcf805000 -> 
-> > 0xcf885000  (pfn 0xf805 + 0x80 pages)
-> >> [    0.000000] PT: cf805000 (f805000)
-> >> 
-> > 
-> > And this patch on top of the others fixes this..
-> 
-> I didn't look at this in too close detail, but I started to get
-> afraid that you might be making the code dependent on
-> many hypervisor implementation details. And should the
-> above turn out to be a bug in the hypervisor, I hope your
-> kernel side changes won't make it impossible to fix that bug.
-
-Actually they will work OK. I've tested it with and without the
-hypervisor bug-fix and it worked nicely.
-
-But this is "make the memblock_reserve" easier to see is getting
-out of hands :-(
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<20120822162119.GB24203@phenom.dumpdata.com> b/test/corpus/<20120822162119.GB24203@phenom.dumpdata.com>
deleted file mode 100644 (file)
index 0149ffa..0000000
+++ /dev/null
@@ -1,226 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Aug 22 17:35:31 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 22 Aug 2012 17:35:31 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T4Dtt-0002J8-7z
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 22 Aug 2012 17:35:31 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T4Dq8-0004hD-IY; Wed, 22 Aug 2012 16:31:32 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <konrad.wilk@oracle.com>) id 1T4Dq6-0004h8-Hy
-       for xen-devel@lists.xensource.com; Wed, 22 Aug 2012 16:31:30 +0000
-Received: from [85.158.139.83:62520] by server-9.bemta-5.messagelabs.com id
-       CD/03-26123-16905305; Wed, 22 Aug 2012 16:31:29 +0000
-X-Env-Sender: konrad.wilk@oracle.com
-X-Msg-Ref: server-4.tower-182.messagelabs.com!1345653085!26800789!1
-X-Originating-IP: [148.87.113.117]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogMTQ4Ljg3LjExMy4xMTcgPT4gNzA1MDk5\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 5935 invoked from network); 22 Aug 2012 16:31:26 -0000
-Received: from rcsinet15.oracle.com (HELO rcsinet15.oracle.com)
-       (148.87.113.117)
-       by server-4.tower-182.messagelabs.com with DHE-RSA-AES256-SHA encrypted
-       SMTP; 22 Aug 2012 16:31:26 -0000
-Received: from ucsinet21.oracle.com (ucsinet21.oracle.com [156.151.31.93])
-       by rcsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
-       ESMTP id q7MGVLg4016274
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
-       Wed, 22 Aug 2012 16:31:22 GMT
-Received: from acsmt358.oracle.com (acsmt358.oracle.com [141.146.40.158])
-       by ucsinet21.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
-       q7MGVKNJ013239
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
-       Wed, 22 Aug 2012 16:31:20 GMT
-Received: from abhmt119.oracle.com (abhmt119.oracle.com [141.146.116.71])
-       by acsmt358.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
-       q7MGVJlE017805; Wed, 22 Aug 2012 11:31:19 -0500
-Received: from phenom.dumpdata.com (/209.6.85.33)
-       by default (Oracle Beehive Gateway v4.0)
-       with ESMTP ; Wed, 22 Aug 2012 09:31:19 -0700
-Received: by phenom.dumpdata.com (Postfix, from userid 1000)
-       id 4472E4031E; Wed, 22 Aug 2012 12:21:19 -0400 (EDT)
-Date: Wed, 22 Aug 2012 12:21:19 -0400
-From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-To: Jan Beulich <JBeulich@suse.com>
-Message-ID: <20120822162119.GB24203@phenom.dumpdata.com>
-References: <1345133009-21941-1-git-send-email-konrad.wilk@oracle.com>
-       <1345133009-21941-3-git-send-email-konrad.wilk@oracle.com>
-       <alpine.DEB.2.02.1208171835010.15568@kaball.uk.xensource.com>
-       <20120820141305.GA2713@phenom.dumpdata.com>
-       <20120821172732.GA23715@phenom.dumpdata.com>
-       <20120821190317.GA13035@phenom.dumpdata.com>
-       <50351DEF020000780009702A@nat28.tlf.novell.com>
-MIME-Version: 1.0
-Content-Disposition: inline
-In-Reply-To: <50351DEF020000780009702A@nat28.tlf.novell.com>
-User-Agent: Mutt/1.5.21 (2010-09-15)
-X-Source-IP: ucsinet21.oracle.com [156.151.31.93]
-Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
-       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
-       Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
-Subject: Re: [Xen-devel] Q:pt_base in COMPAT mode offset by two pages.
- Was:Re: [PATCH 02/11] xen/x86: Use memblock_reserve for sensitive areas.
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Wed, Aug 22, 2012 at 04:59:11PM +0100, Jan Beulich wrote:
-> >>> On 21.08.12 at 21:03, Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> wrote:
-> > On Tue, Aug 21, 2012 at 01:27:32PM -0400, Konrad Rzeszutek Wilk wrote:
-> >> On Mon, Aug 20, 2012 at 10:13:05AM -0400, Konrad Rzeszutek Wilk wrote:
-> >> > On Fri, Aug 17, 2012 at 06:35:12PM +0100, Stefano Stabellini wrote:
-> >> > > On Thu, 16 Aug 2012, Konrad Rzeszutek Wilk wrote:
-> >> > > > instead of a big memblock_reserve. This way we can be more
-> >> > > > selective in freeing regions (and it also makes it easier
-> >> > > > to understand where is what).
-> >> > > > 
-> >> > > > [v1: Move the auto_translate_physmap to proper line]
-> >> > > > [v2: Per Stefano suggestion add more comments]
-> >> > > > Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-> >> > > 
-> >> > > much better now!
-> >> > 
-> >> > Thought interestingly enough it breaks 32-bit dom0s (and only dom0s).
-> >> > Will have a revised patch posted shortly.
-> >> 
-> >> Jan, I thought something odd. Part of this code replaces this:
-> >> 
-> >>   memblock_reserve(__pa(xen_start_info->mfn_list),
-> >>           xen_start_info->pt_base - xen_start_info->mfn_list);
-> >> 
-> >> with a more region-by-region area. What I found out that if I boot this
-> >> as 32-bit guest with a 64-bit hypervisor the xen_start_info->pt_base is
-> >> actually wrong.
-> >> 
-> >> Specifically this is what bootup says:
-> >> 
-> >> (good working case - 32bit hypervisor with 32-bit dom0):
-> >> (XEN)  Loaded kernel: c1000000->c1a23000
-> >> (XEN)  Init. ramdisk: c1a23000->cf730e00
-> >> (XEN)  Phys-Mach map: cf731000->cf831000
-> >> (XEN)  Start info:    cf831000->cf83147c
-> >> (XEN)  Page tables:   cf832000->cf8b5000
-> >> (XEN)  Boot stack:    cf8b5000->cf8b6000
-> >> (XEN)  TOTAL:         c0000000->cfc00000
-> >> 
-> >> [    0.000000] PT: cf832000 (f832000)
-> >> [    0.000000] Reserving PT: f832000->f8b5000
-> >> 
-> >> And with a 64-bit hypervisor:
-> >> 
-> >> XEN) VIRTUAL MEMORY ARRANGEMENT:
-> >> (XEN)  Loaded kernel: 00000000c1000000->00000000c1a23000
-> >> (XEN)  Init. ramdisk: 00000000c1a23000->00000000cf730e00
-> >> (XEN)  Phys-Mach map: 00000000cf731000->00000000cf831000
-> >> (XEN)  Start info:    00000000cf831000->00000000cf8314b4
-> >> (XEN)  Page tables:   00000000cf832000->00000000cf8b6000
-> >> (XEN)  Boot stack:    00000000cf8b6000->00000000cf8b7000
-> >> (XEN)  TOTAL:         00000000c0000000->00000000cfc00000
-> >> (XEN)  ENTRY ADDRESS: 00000000c16bb22c
-> >> 
-> >> [    0.000000] PT: cf834000 (f834000)
-> >> [    0.000000] Reserving PT: f834000->f8b8000
-> >> 
-> >> So the pt_base is offset by two pages. And looking at c/s 13257
-> >> its not clear to me why this two page offset was added?
-> 
-> Actually, the adjustment turns out to be correct: The page
-> tables for a 32-on-64 dom0 get allocated in the order "first L1",
-> "first L2", "first L3", so the offset to the page table base is
-> indeed 2. When reading xen/include/public/xen.h's comment
-> very strictly, this is not a violation (since there nothing is said
-> that the first thing in the page table space is pointed to by
-> pt_base; I admit that this seems to be implied though, namely
-> do I think that it is implied that the page table space is the
-> range [pt_base, pt_base + nt_pt_frames), whereas that
-> range here indeed is [pt_base - 2, pt_base - 2 + nt_pt_frames),
-> which - without a priori knowledge - the kernel would have
-> difficulty to figure out).
-
-And only in compat mode. <sigh> Well I am happy that we have found
-this so we can document it more throughly but I think I will
-step away from those memblock patches for a while as the earlier
-
- "lets just reserve everything from mfn->list up to the pt_base"
-
-and then in the mmu:
- "reserve everything from pt_base up to nr_pt_frames*PAGE_SIZE"
-
-works.
-
-And document it in the Linux kernel a bit more of why we want to
-do that.
-> 
-> Below is a debugging patch I used to see the full picture, if you
-> want to double check.
-
-I trust you and the production of said pages in the L1, L2, L3
-is closly related to how the 64-bit does it. Which is L4, L1, L2, L3
-and then the L1's follow.
-
-The toolstack does it in L4, L3, L2, L1 order..
-> 
-> One thing I also noticed is that nr_pt_frames apparently is
-> one too high in this case, as the L4 is not really part of the
-> page tables from the kernel's perspective (and not represented
-> anywhere in the corresponding VA range).
-> 
-> Jan
-> 
-> --- a/xen/arch/x86/domain_build.c
-> +++ b/xen/arch/x86/domain_build.c
-> @@ -940,6 +940,7 @@ int __init construct_dom0(
->      si->flags       |= (xen_processor_pmbits << 8) & SIF_PM_MASK;
->      si->pt_base      = vpt_start + 2 * PAGE_SIZE * !!is_pv_32on64_domain(d);
->      si->nr_pt_frames = nr_pt_pages;
-> +printk("PT#%lx\n", si->nr_pt_frames);//temp
->      si->mfn_list     = vphysmap_start;
->      snprintf(si->magic, sizeof(si->magic), "xen-3.0-x86_%d%s",
->               elf_64bit(&elf) ? 64 : 32, parms.pae ? "p" : "");
-> @@ -1115,6 +1116,10 @@ int __init construct_dom0(
->                  process_pending_softirqs();
->          }
->      }
-> +show_page_walk(vpt_start);//temp
-> +show_page_walk(si->pt_base);//temp
-> +show_page_walk(v_start);//temp
-> +show_page_walk(v_end - 1);//temp
->  
->      if ( initrd_len != 0 )
->      {
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<20120822185519.GA29609@phenom.dumpdata.com> b/test/corpus/<20120822185519.GA29609@phenom.dumpdata.com>
deleted file mode 100644 (file)
index 9a561b6..0000000
+++ /dev/null
@@ -1,355 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Aug 22 20:09:16 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 22 Aug 2012 20:09:16 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T4GIj-0002vW-3t
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 22 Aug 2012 20:09:16 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T4GF8-000266-3V; Wed, 22 Aug 2012 19:05:30 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <ketuzsezr@gmail.com>) id 1T4GF6-00025z-7F
-       for xen-devel@lists.xensource.com; Wed, 22 Aug 2012 19:05:28 +0000
-Received: from [85.158.143.35:46865] by server-2.bemta-4.messagelabs.com id
-       70/56-21239-77D25305; Wed, 22 Aug 2012 19:05:27 +0000
-X-Env-Sender: ketuzsezr@gmail.com
-X-Msg-Ref: server-7.tower-21.messagelabs.com!1345662324!11667178!1
-X-Originating-IP: [209.85.212.43]
-X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 371 invoked from network); 22 Aug 2012 19:05:25 -0000
-Received: from mail-vb0-f43.google.com (HELO mail-vb0-f43.google.com)
-       (209.85.212.43)
-       by server-7.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
-       22 Aug 2012 19:05:25 -0000
-Received: by vbbfq11 with SMTP id fq11so1804502vbb.30
-       for <xen-devel@lists.xensource.com>;
-       Wed, 22 Aug 2012 12:05:24 -0700 (PDT)
-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
-       h=sender:date:from:to:cc:subject:message-id:references:mime-version
-       :content-type:content-disposition:in-reply-to:user-agent;
-       bh=3OAIx6L7/BbeznqjWfDUB8FeM4uPin15xCxbaXEUWjY=;
-       b=MXQKNv+heWSIrPGkTTobuqZ0TlngbnrjUkstMf7OAxO1zrqsag5LbVOK2GDgv3ZS42
-       JbgA+2GveoIj9GE/38pEEYIJZxz4PQjtN2y6bjPrLY3kwuv9cNXnTK5TkUXfvxrl4pWU
-       ShvY64GE8tRZUpUHtgqwWxRWFZ4Ky7bgjQUM6W7sixd8DolnqWqU3ZhLAXyFJythrCxw
-       /OumzZBCjy4+1XUlFyxsE6uxa1FMPta3LsOAi0unqKEWEuX5DBZFKnxNJ4hXwISkvowt
-       UG6kq/SfHYZFuh3h+/ybxpu7JqpzmXWQwn4ZIwv+4LT/0LYlhB9gfFTfXv014tJ7AmvN
-       eiIg==
-Received: by 10.220.116.6 with SMTP id k6mr17692947vcq.59.1345662324154;
-       Wed, 22 Aug 2012 12:05:24 -0700 (PDT)
-Received: from phenom.dumpdata.com
-       (209-6-85-33.c3-0.smr-ubr2.sbo-smr.ma.cable.rcn.com. [209.6.85.33])
-       by mx.google.com with ESMTPS id n19sm2624141vde.5.2012.08.22.12.05.22
-       (version=TLSv1/SSLv3 cipher=OTHER);
-       Wed, 22 Aug 2012 12:05:23 -0700 (PDT)
-Date: Wed, 22 Aug 2012 14:55:19 -0400
-From: Konrad Rzeszutek Wilk <konrad@kernel.org>
-To: Jan Beulich <JBeulich@suse.com>
-Message-ID: <20120822185519.GA29609@phenom.dumpdata.com>
-References: <1345133009-21941-1-git-send-email-konrad.wilk@oracle.com>
-       <1345133009-21941-3-git-send-email-konrad.wilk@oracle.com>
-       <alpine.DEB.2.02.1208171835010.15568@kaball.uk.xensource.com>
-       <20120820141305.GA2713@phenom.dumpdata.com>
-       <20120821172732.GA23715@phenom.dumpdata.com>
-       <20120821190317.GA13035@phenom.dumpdata.com>
-       <50351DEF020000780009702A@nat28.tlf.novell.com>
-MIME-Version: 1.0
-Content-Disposition: inline
-In-Reply-To: <50351DEF020000780009702A@nat28.tlf.novell.com>
-User-Agent: Mutt/1.5.21 (2010-09-15)
-Cc: "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
-       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
-       "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
-       Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,T_DKIM_INVALID,UNPARSEABLE_RELAY autolearn=unavailable
-       version=3.3.1
-Subject: Re: [Xen-devel] Q:pt_base in COMPAT mode offset by two pages.
- Was:Re: [PATCH 02/11] xen/x86: Use memblock_reserve for sensitive areas.
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Wed, Aug 22, 2012 at 04:59:11PM +0100, Jan Beulich wrote:
-> >>> On 21.08.12 at 21:03, Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> wrote:
-> > On Tue, Aug 21, 2012 at 01:27:32PM -0400, Konrad Rzeszutek Wilk wrote:
-> >> On Mon, Aug 20, 2012 at 10:13:05AM -0400, Konrad Rzeszutek Wilk wrote:
-> >> > On Fri, Aug 17, 2012 at 06:35:12PM +0100, Stefano Stabellini wrote:
-> >> > > On Thu, 16 Aug 2012, Konrad Rzeszutek Wilk wrote:
-> >> > > > instead of a big memblock_reserve. This way we can be more
-> >> > > > selective in freeing regions (and it also makes it easier
-> >> > > > to understand where is what).
-> >> > > > 
-> >> > > > [v1: Move the auto_translate_physmap to proper line]
-> >> > > > [v2: Per Stefano suggestion add more comments]
-> >> > > > Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-> >> > > 
-> >> > > much better now!
-> >> > 
-> >> > Thought interestingly enough it breaks 32-bit dom0s (and only dom0s).
-> >> > Will have a revised patch posted shortly.
-> >> 
-> >> Jan, I thought something odd. Part of this code replaces this:
-> >> 
-> >>   memblock_reserve(__pa(xen_start_info->mfn_list),
-> >>           xen_start_info->pt_base - xen_start_info->mfn_list);
-> >> 
-> >> with a more region-by-region area. What I found out that if I boot this
-> >> as 32-bit guest with a 64-bit hypervisor the xen_start_info->pt_base is
-> >> actually wrong.
-> >> 
-> >> Specifically this is what bootup says:
-> >> 
-> >> (good working case - 32bit hypervisor with 32-bit dom0):
-> >> (XEN)  Loaded kernel: c1000000->c1a23000
-> >> (XEN)  Init. ramdisk: c1a23000->cf730e00
-> >> (XEN)  Phys-Mach map: cf731000->cf831000
-> >> (XEN)  Start info:    cf831000->cf83147c
-> >> (XEN)  Page tables:   cf832000->cf8b5000
-> >> (XEN)  Boot stack:    cf8b5000->cf8b6000
-> >> (XEN)  TOTAL:         c0000000->cfc00000
-> >> 
-> >> [    0.000000] PT: cf832000 (f832000)
-> >> [    0.000000] Reserving PT: f832000->f8b5000
-> >> 
-> >> And with a 64-bit hypervisor:
-> >> 
-> >> XEN) VIRTUAL MEMORY ARRANGEMENT:
-> >> (XEN)  Loaded kernel: 00000000c1000000->00000000c1a23000
-> >> (XEN)  Init. ramdisk: 00000000c1a23000->00000000cf730e00
-> >> (XEN)  Phys-Mach map: 00000000cf731000->00000000cf831000
-> >> (XEN)  Start info:    00000000cf831000->00000000cf8314b4
-> >> (XEN)  Page tables:   00000000cf832000->00000000cf8b6000
-> >> (XEN)  Boot stack:    00000000cf8b6000->00000000cf8b7000
-> >> (XEN)  TOTAL:         00000000c0000000->00000000cfc00000
-> >> (XEN)  ENTRY ADDRESS: 00000000c16bb22c
-> >> 
-> >> [    0.000000] PT: cf834000 (f834000)
-> >> [    0.000000] Reserving PT: f834000->f8b8000
-> >> 
-> >> So the pt_base is offset by two pages. And looking at c/s 13257
-> >> its not clear to me why this two page offset was added?
-> 
-> Actually, the adjustment turns out to be correct: The page
-> tables for a 32-on-64 dom0 get allocated in the order "first L1",
-> "first L2", "first L3", so the offset to the page table base is
-> indeed 2. When reading xen/include/public/xen.h's comment
-> very strictly, this is not a violation (since there nothing is said
-> that the first thing in the page table space is pointed to by
-> pt_base; I admit that this seems to be implied though, namely
-> do I think that it is implied that the page table space is the
-> range [pt_base, pt_base + nt_pt_frames), whereas that
-> range here indeed is [pt_base - 2, pt_base - 2 + nt_pt_frames),
-> which - without a priori knowledge - the kernel would have
-> difficulty to figure out).
-> 
-> Below is a debugging patch I used to see the full picture, if you
-> want to double check.
-
-Thinking of just sticking this patch then:
-
->From 9aa58784b163ee435ff5596cf3ec059b57ab85e1 Mon Sep 17 00:00:00 2001
-From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-Date: Wed, 22 Aug 2012 13:00:10 -0400
-Subject: [PATCH] Revert "xen/x86: Workaround 64-bit hypervisor and 32-bit
- initial domain." and "xen/x86: Use memblock_reserve for
- sensitive areas."
-
-This reverts commit 806c312e50f122c47913145cf884f53dd09d9199 and
-commit 59b294403e9814e7c1154043567f0d71bac7a511.
-
-And also documents setup.c and why we want to do it that way, which
-is that we tried to make the the memblock_reserve more selective so
-that it would be clear what region is reserved. Sadly we ran
-in the problem wherein on a 64-bit hypervisor with a 32-bit
-initial domain, the pt_base has the cr3 value which is not
-neccessarily where the pagetable starts! As Jan put it: "
-Actually, the adjustment turns out to be correct: The page
-tables for a 32-on-64 dom0 get allocated in the order "first L1",
-"first L2", "first L3", so the offset to the page table base is
-indeed 2. When reading xen/include/public/xen.h's comment
-very strictly, this is not a violation (since there nothing is said
-that the first thing in the page table space is pointed to by
-pt_base; I admit that this seems to be implied though, namely
-do I think that it is implied that the page table space is the
-range [pt_base, pt_base + nt_pt_frames), whereas that
-range here indeed is [pt_base - 2, pt_base - 2 + nt_pt_frames),
-which - without a priori knowledge - the kernel would have
-difficulty to figure out)." - so lets just fall back to the
-easy way and reserve the whole region.
-
-Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
----
- arch/x86/xen/enlighten.c |   60 ----------------------------------------------
- arch/x86/xen/p2m.c       |    5 ----
- arch/x86/xen/setup.c     |   27 ++++++++++++++++++++
- 3 files changed, 27 insertions(+), 65 deletions(-)
-
-diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c
-index c1e940d..d87a038 100644
---- a/arch/x86/xen/enlighten.c
-+++ b/arch/x86/xen/enlighten.c
-@@ -998,66 +998,7 @@ static int xen_write_msr_safe(unsigned int msr, unsigned low, unsigned high)
-       return ret;
- }
--/*
-- * If the MFN is not in the m2p (provided to us by the hypervisor) this
-- * function won't do anything. In practice this means that the XenBus
-- * MFN won't be available for the initial domain. */
--static unsigned long __init xen_reserve_mfn(unsigned long mfn)
--{
--      unsigned long pfn, end_pfn = 0;
--
--      if (!mfn)
--              return end_pfn;
--
--      pfn = mfn_to_pfn(mfn);
--      if (phys_to_machine_mapping_valid(pfn)) {
--              end_pfn = PFN_PHYS(pfn) + PAGE_SIZE;
--              memblock_reserve(PFN_PHYS(pfn), end_pfn);
--      }
--      return end_pfn;
--}
--static void __init xen_reserve_internals(void)
--{
--      unsigned long size;
--      unsigned long last_phys = 0;
--
--      if (!xen_pv_domain())
--              return;
--
--      /* xen_start_info does not exist in the M2P, hence can't use
--       * xen_reserve_mfn. */
--      memblock_reserve(__pa(xen_start_info), PAGE_SIZE);
--      last_phys = __pa(xen_start_info) + PAGE_SIZE;
--
--      last_phys = max(xen_reserve_mfn(PFN_DOWN(xen_start_info->shared_info)), last_phys);
--      last_phys = max(xen_reserve_mfn(xen_start_info->store_mfn), last_phys);
--      if (!xen_initial_domain())
--              last_phys = max(xen_reserve_mfn(xen_start_info->console.domU.mfn), last_phys);
--
--      if (xen_feature(XENFEAT_auto_translated_physmap))
--              return;
--
--      /*
--       * ALIGN up to compensate for the p2m_page pointing to an array that
--       * can partially filled (look in xen_build_dynamic_phys_to_machine).
--       */
--
--      size = PAGE_ALIGN(xen_start_info->nr_pages * sizeof(unsigned long));
--
--      /* We could use xen_reserve_mfn here, but would end up looping quite
--       * a lot (and call memblock_reserve for each PAGE), so lets just use
--       * the easy way and reserve it wholesale. */
--      memblock_reserve(__pa(xen_start_info->mfn_list), size);
--      last_phys = max(__pa(xen_start_info->mfn_list) + size, last_phys);
--      /* The pagetables are reserved in mmu.c */
--
--      /* Under 64-bit hypervisor with a 32-bit domain, the hypervisor
--       * offsets the pt_base by two pages. Hence the reservation that is done
--       * in mmu.c misses two pages. We correct it here if we detect this. */
--      if (last_phys < __pa(xen_start_info->pt_base))
--              memblock_reserve(last_phys, __pa(xen_start_info->pt_base) - last_phys);
--}
- void xen_setup_shared_info(void)
- {
-       if (!xen_feature(XENFEAT_auto_translated_physmap)) {
-@@ -1418,7 +1359,6 @@ asmlinkage void __init xen_start_kernel(void)
-       xen_raw_console_write("mapping kernel into physical memory\n");
-       xen_setup_kernel_pagetable((pgd_t *)xen_start_info->pt_base, xen_start_info->nr_pages);
--      xen_reserve_internals();
-       /* Allocate and initialize top and mid mfn levels for p2m structure */
-       xen_build_mfn_list_list();
-diff --git a/arch/x86/xen/p2m.c b/arch/x86/xen/p2m.c
-index 95c3ea2..c3e9291 100644
---- a/arch/x86/xen/p2m.c
-+++ b/arch/x86/xen/p2m.c
-@@ -388,11 +388,6 @@ void __init xen_build_dynamic_phys_to_machine(void)
-       }
-       m2p_override_init();
--
--      /* NOTE: We cannot call memblock_reserve here for the mfn_list as there
--       * isn't enough pieces to make it work (for one - we are still using the
--       * Xen provided pagetable). Do it later in xen_reserve_internals.
--       */
- }
- #ifdef CONFIG_X86_64
- #include <linux/bootmem.h>
-diff --git a/arch/x86/xen/setup.c b/arch/x86/xen/setup.c
-index 9efca75..740517b 100644
---- a/arch/x86/xen/setup.c
-+++ b/arch/x86/xen/setup.c
-@@ -424,6 +424,33 @@ char * __init xen_memory_setup(void)
-       e820_add_region(ISA_START_ADDRESS, ISA_END_ADDRESS - ISA_START_ADDRESS,
-                       E820_RESERVED);
-+      /*
-+       * Reserve Xen bits:
-+       *  - mfn_list
-+       *  - xen_start_info
-+       * See comment above "struct start_info" in <xen/interface/xen.h>
-+       * We tried to make the the memblock_reserve more selective so
-+       * that it would be clear what region is reserved. Sadly we ran
-+       * in the problem wherein on a 64-bit hypervisor with a 32-bit
-+       * initial domain, the pt_base has the cr3 value which is not
-+       * neccessarily where the pagetable starts! As Jan put it: "
-+       * Actually, the adjustment turns out to be correct: The page
-+       * tables for a 32-on-64 dom0 get allocated in the order "first L1",
-+       * "first L2", "first L3", so the offset to the page table base is
-+       * indeed 2. When reading xen/include/public/xen.h's comment
-+       * very strictly, this is not a violation (since there nothing is said
-+       * that the first thing in the page table space is pointed to by
-+       * pt_base; I admit that this seems to be implied though, namely
-+       * do I think that it is implied that the page table space is the
-+       * range [pt_base, pt_base + nt_pt_frames), whereas that
-+       * range here indeed is [pt_base - 2, pt_base - 2 + nt_pt_frames),
-+       * which - without a priori knowledge - the kernel would have
-+       * difficulty to figure out)." - so lets just fall back to the
-+       * easy way and reserve the whole region.
-+       */
-+      memblock_reserve(__pa(xen_start_info->mfn_list),
-+                       xen_start_info->pt_base - xen_start_info->mfn_list);
-+
-       sanitize_e820_map(e820.map, ARRAY_SIZE(e820.map), &e820.nr_map);
-       return "Xen";
--- 
-1.7.7.6
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<20120823154012.GA18845@phenom.dumpdata.com> b/test/corpus/<20120823154012.GA18845@phenom.dumpdata.com>
deleted file mode 100644 (file)
index de87130..0000000
+++ /dev/null
@@ -1,233 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Aug 23 16:55:15 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 23 Aug 2012 16:55:15 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T4ZkT-0002x6-5m
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 23 Aug 2012 16:55:15 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T4Zg2-0006I3-Mj; Thu, 23 Aug 2012 15:50:34 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <konrad.wilk@oracle.com>) id 1T4Zg1-0006Hu-EW
-       for xen-devel@lists.xensource.com; Thu, 23 Aug 2012 15:50:33 +0000
-Received: from [85.158.143.35:63047] by server-1.bemta-4.messagelabs.com id
-       C1/AC-12504-84156305; Thu, 23 Aug 2012 15:50:32 +0000
-X-Env-Sender: konrad.wilk@oracle.com
-X-Msg-Ref: server-7.tower-21.messagelabs.com!1345737025!11845558!1
-X-Originating-IP: [148.87.113.117]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogMTQ4Ljg3LjExMy4xMTcgPT4gNzA3ODk4\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 25652 invoked from network); 23 Aug 2012 15:50:31 -0000
-Received: from rcsinet15.oracle.com (HELO rcsinet15.oracle.com)
-       (148.87.113.117)
-       by server-7.tower-21.messagelabs.com with DHE-RSA-AES256-SHA encrypted
-       SMTP; 23 Aug 2012 15:50:31 -0000
-Received: from acsinet22.oracle.com (acsinet22.oracle.com [141.146.126.238])
-       by rcsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
-       ESMTP id q7NFoGux022857
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
-       Thu, 23 Aug 2012 15:50:17 GMT
-Received: from acsmt356.oracle.com (acsmt356.oracle.com [141.146.40.156])
-       by acsinet22.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
-       q7NFoGLu017847
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
-       Thu, 23 Aug 2012 15:50:16 GMT
-Received: from abhmt103.oracle.com (abhmt103.oracle.com [141.146.116.55])
-       by acsmt356.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
-       q7NFoGbZ014729; Thu, 23 Aug 2012 10:50:16 -0500
-Received: from phenom.dumpdata.com (/209.6.85.33)
-       by default (Oracle Beehive Gateway v4.0)
-       with ESMTP ; Thu, 23 Aug 2012 08:50:15 -0700
-Received: by phenom.dumpdata.com (Postfix, from userid 1000)
-       id 11BBF4031E; Thu, 23 Aug 2012 11:40:13 -0400 (EDT)
-Date: Thu, 23 Aug 2012 11:40:13 -0400
-From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-Message-ID: <20120823154012.GA18845@phenom.dumpdata.com>
-References: <1345133009-21941-1-git-send-email-konrad.wilk@oracle.com>
-       <1345133009-21941-7-git-send-email-konrad.wilk@oracle.com>
-       <alpine.DEB.2.02.1208171839590.15568@kaball.uk.xensource.com>
-       <20120817174549.GA14257@phenom.dumpdata.com>
-       <alpine.DEB.2.02.1208201243180.15568@kaball.uk.xensource.com>
-       <1345463624.28762.67.camel@zakaz.uk.xensource.com>
-       <alpine.DEB.2.02.1208201257420.15568@kaball.uk.xensource.com>
-MIME-Version: 1.0
-Content-Disposition: inline
-In-Reply-To: <alpine.DEB.2.02.1208201257420.15568@kaball.uk.xensource.com>
-User-Agent: Mutt/1.5.21 (2010-09-15)
-X-Source-IP: acsinet22.oracle.com [141.146.126.238]
-Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
-       Ian Campbell <Ian.Campbell@citrix.com>,
-       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 06/11] xen/mmu: For 64-bit do not call
- xen_map_identity_early
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Mon, Aug 20, 2012 at 12:58:37PM +0100, Stefano Stabellini wrote:
-> On Mon, 20 Aug 2012, Ian Campbell wrote:
-> > On Mon, 2012-08-20 at 12:45 +0100, Stefano Stabellini wrote:
-> > > On Fri, 17 Aug 2012, Konrad Rzeszutek Wilk wrote:
-> > > > On Fri, Aug 17, 2012 at 06:41:23PM +0100, Stefano Stabellini wrote:
-> > > > > On Thu, 16 Aug 2012, Konrad Rzeszutek Wilk wrote:
-> > > > > > B/c we do not need it. During the startup the Xen provides
-> > > > > > us with all the memory mapped that we need to function.
-> > > > > 
-> > > > > Shouldn't we check to make sure that is actually true (I am thinking at
-> > > > > nr_pt_frames)?
-> > > > 
-> > > > I was looking at the source code (hypervisor) to figure it out and
-> > > > that is certainly true.
-> > > > 
-> > > > 
-> > > > > Or is it actually stated somewhere in the Xen headers?
-> > > > 
-> > > > Couldn't find it, but after looking so long at the source code
-> > > > I didn't even bother looking for it.
-> > > > 
-> > > > Thought to be honest - I only looked at how the 64-bit pagetables
-> > > > were set up, so I didn't dare to touch the 32-bit. Hence the #ifdef
-> > > 
-> > > I think that we need to involve some Xen maintainers and get this
-> > > written down somewhere in the public headers, otherwise we have no
-> > > guarantees that it is going to stay as it is in the next Xen versions.
-> > > 
-> > > Maybe we just need to add a couple of lines of comment to
-> > > xen/include/public/xen.h.
-> > 
-> > The start of day memory layout for PV guests is written down in the
-> > comment just before struct start_info at
-> > http://xenbits.xen.org/docs/unstable/hypercall/include,public,xen.h.html#Struct_start_info
-> > 
-> > (I haven't read this thread to determine if what is documented matches
-> > what you guys are talking about relying on)
-> 
-> but it is not written down how much physical memory is going to be
-> mapped in the bootstrap page tables.
-
-How about this:
-
-
->From 43fd7a5d9ecd31c2fc26851523cd4b5f7650fb39 Mon Sep 17 00:00:00 2001
-From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-Date: Thu, 12 Jul 2012 13:59:36 -0400
-Subject: [PATCH] xen/mmu: For 64-bit do not call xen_map_identity_early
-
-B/c we do not need it. During the startup the Xen provides
-us with all the initial memory mapped that we need to function.
-
-The initial memory mapped is up to the bootstack, which means
-we can reference using __ka up to 4.f):
-
-(from xen/interface/xen.h):
-
- 4. This the order of bootstrap elements in the initial virtual region:
-   a. relocated kernel image
-   b. initial ram disk              [mod_start, mod_len]
-   c. list of allocated page frames [mfn_list, nr_pages]
-   d. start_info_t structure        [register ESI (x86)]
-   e. bootstrap page tables         [pt_base, CR3 (x86)]
-   f. bootstrap stack               [register ESP (x86)]
-
-(initial ram disk may be ommitted).
-
-[v1: More comments in git commit]
-Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
----
- arch/x86/xen/mmu.c |   11 +++++------
- 1 files changed, 5 insertions(+), 6 deletions(-)
-
-diff --git a/arch/x86/xen/mmu.c b/arch/x86/xen/mmu.c
-index 7247e5a..a59070b 100644
---- a/arch/x86/xen/mmu.c
-+++ b/arch/x86/xen/mmu.c
-@@ -84,6 +84,7 @@
-  */
- DEFINE_SPINLOCK(xen_reservation_lock);
-+#ifdef CONFIG_X86_32
- /*
-  * Identity map, in addition to plain kernel map.  This needs to be
-  * large enough to allocate page table pages to allocate the rest.
-@@ -91,7 +92,7 @@ DEFINE_SPINLOCK(xen_reservation_lock);
-  */
- #define LEVEL1_IDENT_ENTRIES  (PTRS_PER_PTE * 4)
- static RESERVE_BRK_ARRAY(pte_t, level1_ident_pgt, LEVEL1_IDENT_ENTRIES);
--
-+#endif
- #ifdef CONFIG_X86_64
- /* l3 pud for userspace vsyscall mapping */
- static pud_t level3_user_vsyscall[PTRS_PER_PUD] __page_aligned_bss;
-@@ -1628,7 +1629,7 @@ static void set_page_prot(void *addr, pgprot_t prot)
-       if (HYPERVISOR_update_va_mapping((unsigned long)addr, pte, 0))
-               BUG();
- }
--
-+#ifdef CONFIG_X86_32
- static void __init xen_map_identity_early(pmd_t *pmd, unsigned long max_pfn)
- {
-       unsigned pmdidx, pteidx;
-@@ -1679,7 +1680,7 @@ static void __init xen_map_identity_early(pmd_t *pmd, unsigned long max_pfn)
-       set_page_prot(pmd, PAGE_KERNEL_RO);
- }
--
-+#endif
- void __init xen_setup_machphys_mapping(void)
- {
-       struct xen_machphys_mapping mapping;
-@@ -1765,14 +1766,12 @@ void __init xen_setup_kernel_pagetable(pgd_t *pgd, unsigned long max_pfn)
-       /* Note that we don't do anything with level1_fixmap_pgt which
-        * we don't need. */
--      /* Set up identity map */
--      xen_map_identity_early(level2_ident_pgt, max_pfn);
--
-       /* Make pagetable pieces RO */
-       set_page_prot(init_level4_pgt, PAGE_KERNEL_RO);
-       set_page_prot(level3_ident_pgt, PAGE_KERNEL_RO);
-       set_page_prot(level3_kernel_pgt, PAGE_KERNEL_RO);
-       set_page_prot(level3_user_vsyscall, PAGE_KERNEL_RO);
-+      set_page_prot(level2_ident_pgt, PAGE_KERNEL_RO);
-       set_page_prot(level2_kernel_pgt, PAGE_KERNEL_RO);
-       set_page_prot(level2_fixmap_pgt, PAGE_KERNEL_RO);
--- 
-1.7.7.6
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<20120831193746.GA13009@bloms.de> b/test/corpus/<20120831193746.GA13009@bloms.de>
deleted file mode 100644 (file)
index ac7d5b2..0000000
+++ /dev/null
@@ -1,148 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Aug 31 20:42:38 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 31 Aug 2012 20:42:38 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T7X6x-00085A-Mn
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 31 Aug 2012 20:42:38 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T7X2Q-0005On-Lc; Fri, 31 Aug 2012 19:37:54 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <dieter@bloms.de>) id 1T7X2N-0005Of-4u
-       for xen-devel@lists.xen.org; Fri, 31 Aug 2012 19:37:53 +0000
-Received: from [85.158.139.83:63487] by server-5.bemta-5.messagelabs.com id
-       0C/BB-30514-E8211405; Fri, 31 Aug 2012 19:37:50 +0000
-X-Env-Sender: dieter@bloms.de
-X-Msg-Ref: server-3.tower-182.messagelabs.com!1346441868!27965002!1
-X-Originating-IP: [84.200.248.35]
-X-SpamReason: No, hits=0.5 required=7.0 tests=BODY_RANDOM_LONG
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 7455 invoked from network); 31 Aug 2012 19:37:48 -0000
-Received: from smtp.bloms.de (HELO smtp.bloms.de) (84.200.248.35)
-       by server-3.tower-182.messagelabs.com with DHE-RSA-AES256-SHA encrypted
-       SMTP; 31 Aug 2012 19:37:48 -0000
-Received: from smtp.bloms.de (localhost [127.0.0.1])
-       by smtp.bloms.de (Postfix) with ESMTP id 71AB11C140D5;
-       Fri, 31 Aug 2012 21:37:47 +0200 (CEST)
-DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=bloms.de; h=date:from:to
-       :cc:subject:message-id:references:mime-version:content-type
-       :in-reply-to; s=selector1; bh=tiAvst1z86HR9Fany52SrXwonBc=; b=XT
-       +3Ni0waq9vK0Sdi0lb7ISWBrd78Q250XECmRu6+bti4wEQv727xtVDCPzNoQhpuZ
-       igAP4hMAfXr0vfQM+BcDerf0CzLcqdnQxm+r4yD5yektNhMNSq4asg1DReXcDMG6
-       wTgU+j86TECkt6V9HUHfzeIw+th1uYteU90Ku3MWYN7jcBKHg0Sp/vzOV6AQh6hk
-       Wo0j04iNWXlz6m3M7fLd2/2K+cjJbQ6V8x/TPv6/Np3gaZVAK1C5zwmaM3BP0yBb
-       /ubj+aTIfCeNgtlJvratrrCCsJMuwtlvt4q7CeTOVaKaKO4/eJgtj0+aIKJrCHCS
-       4IHO0CpDDAjsYcS1DhMdj1qS5sYEm94u9tj7NnQd82+8qbTTfMKS+Pc9jlJhCTOv
-       UY2Mww8UxXF9loxo5Q4tgujMZN0y079d32dImm/B4OhshoeZop0CWMf//8LwZUlr
-       Is00qJJ4OOxw/0a+YJ/SOVDSqmELuheAJJxmeaU09vBorkZITgnMsipP0QVTZnMk
-       qUpD99X3koG5sgITQ2hWra+9DfTimc9KNNxf0lpVYS9J/kgq3L/JRYKp0uqTjGzm
-       20SDxraSWsoRw1gYm3sg0CJ3R6NnLLqPu/KQWMOPZISbW+H1aIO/YC1A72SfZ42I
-       j+qwKt2SZ9rZ0QorKL1cUbjjorh6HO2Hg3Axp2o4w=
-Received: by smtp.bloms.de (Postfix, from userid 1000)
-       id 5CCD81C140E9; Fri, 31 Aug 2012 21:37:47 +0200 (CEST)
-Date: Fri, 31 Aug 2012 21:37:47 +0200
-From: Dieter Bloms <dieter@bloms.de>
-To: Ian Campbell <Ian.Campbell@citrix.com>
-Message-ID: <20120831193746.GA13009@bloms.de>
-References: <1344935141.5926.6.camel@zakaz.uk.xensource.com>
-       <20120814100704.GA19704@bloms.de>
-       <1346421542.27277.218.camel@zakaz.uk.xensource.com>
-       <1346425278.27277.224.camel@zakaz.uk.xensource.com>
-       <5040F7140200007800097E91@nat28.tlf.novell.com>
-       <1346428292.27277.243.camel@zakaz.uk.xensource.com>
-       <5040FB490200007800097ED2@nat28.tlf.novell.com>
-       <50409CE002000076000B3B44@novprvoes0310.provo.novell.com>
-       <1346434547.5820.10.camel@dagon.hellion.org.uk>
-MIME-Version: 1.0
-Content-Disposition: inline
-In-Reply-To: <1346434547.5820.10.camel@dagon.hellion.org.uk>
-User-Agent: Mutt/1.5.20 (2009-06-14)
-Cc: Charles Arnold <CARNOLD@suse.com>, Kirk Allan <kallan@suse.com>,
-       Dieter Bloms <xensource.com@bloms.de>,
-       Ian Jackson <Ian.Jackson@eu.citrix.com>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
-       Jan Beulich <JBeulich@suse.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,T_DKIM_INVALID,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [Xen-users] Xen 4.2 TODO (io and irq parameter are
- not evaluated by xl)
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-Hi,
-
-Ian, thank you for implementing this io and irq support.
-
-On Fri, Aug 31, Ian Campbell wrote:
-
-> On Fri, 2012-08-31 at 18:15 +0100, Kirk Allan wrote:
-> 
-> > > Charles, Kirk, could you comment here?
-> > 
-> > In one of my Window's vm config files, I was able to get the vm to
-> > boot using ioports=['3f8-3ff'].  My goal was to do serial debugging of
-> > the Windows vm.  I also added irq=[4] to the config file.  However, I
-> > was not able to actually get a debug session to work.  The physical
-> > machine running windbg received a string from the vm which gave me
-> > hope that it was working, but then it never received further data so
-> > the vm eventually booted without being attached to the debugger.
-> 
-> Thanks, the question was whether it would be useful to implement the
->      ioports = '3f8-3ff'
->      irq = 4
-> syntax as well as the
->      ioports = ['3f8-3ff']
->      irq = [4]
-> but it looks like you are actually using the array version anyway?
-
-I use this syntax with xm:
-
-ioports=['0378-037a']
-irq=[5]
-
-and it works good.
-
-
--- 
-Best regards
-
-  Dieter
-
---
-I do not get viruses because I do not use MS software.
-If you use Outlook then please do not put my email address in your
-address-book so that WHEN you get a virus it won't use my address in the
->From field.
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<20120902053549.GF8912@reaktio.net> b/test/corpus/<20120902053549.GF8912@reaktio.net>
deleted file mode 100644 (file)
index e41cdf1..0000000
+++ /dev/null
@@ -1,200 +0,0 @@
-From xen-devel-bounces@lists.xen.org Sun Sep 02 06:40:56 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Sun, 02 Sep 2012 06:40:56 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T82vV-0007WG-Ae
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Sun, 02 Sep 2012 06:40:56 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T82qh-00051U-Cg; Sun, 02 Sep 2012 05:35:55 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <pasik@iki.fi>) id 1T82qf-00051P-Cv
-       for xen-devel@lists.xen.org; Sun, 02 Sep 2012 05:35:53 +0000
-Received: from [85.158.143.99:63467] by server-3.bemta-4.messagelabs.com id
-       0D/D4-08232-830F2405; Sun, 02 Sep 2012 05:35:52 +0000
-X-Env-Sender: pasik@iki.fi
-X-Msg-Ref: server-16.tower-216.messagelabs.com!1346564149!16837776!1
-X-Originating-IP: [192.89.123.25]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogMTkyLjg5LjEyMy4yNSA9PiA0OTc5Mjk=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 18499 invoked from network); 2 Sep 2012 05:35:50 -0000
-Received: from smtp.tele.fi (HELO smtp.tele.fi) (192.89.123.25)
-       by server-16.tower-216.messagelabs.com with DHE-RSA-AES256-SHA
-       encrypted SMTP; 2 Sep 2012 05:35:50 -0000
-X-Originating-Ip: [194.89.68.22]
-Received: from ydin.reaktio.net (reaktio.net [194.89.68.22])
-       by smtp.tele.fi (Postfix) with ESMTP id 689AA2B22
-       for <xen-devel@lists.xen.org>; Sun,  2 Sep 2012 08:35:49 +0300 (EEST)
-Received: by ydin.reaktio.net (Postfix, from userid 1001)
-       id 333162005D; Sun,  2 Sep 2012 08:35:49 +0300 (EEST)
-Date: Sun, 2 Sep 2012 08:35:49 +0300
-From: Pasi =?iso-8859-1?Q?K=E4rkk=E4inen?= <pasik@iki.fi>
-To: xen-devel@lists.xen.org
-Message-ID: <20120902053549.GF8912@reaktio.net>
-MIME-Version: 1.0
-Content-Type: multipart/mixed; boundary="neYutvxvOLaeuPCA"
-Content-Disposition: inline
-Content-Transfer-Encoding: 8bit
-User-Agent: Mutt/1.5.20 (2009-06-14)
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: [Xen-devel] [PATCH] xl.cfg: gfx_passthru documentation improvements
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-
---neYutvxvOLaeuPCA
-Content-Type: text/plain; charset=iso-8859-1
-Content-Disposition: inline
-Content-Transfer-Encoding: 8bit
-
-Hello,
-
-xl.cfg.pod.5 documentation improvements:
-
-- gfx_passthru: Document gfx_passthru makes the GPU become primary in the guest
-  and other generic info about gfx_passthru.
-
-
-Signed-off-by: Pasi Kärkkäinen <pasik@iki.fi>
-
---- docs/man/xl.cfg.pod.5.orig1 2012-09-02 07:16:39.316782158 +0300
-+++ docs/man/xl.cfg.pod.5       2012-09-02 08:26:40.081639087 +0300
-@@ -968,7 +968,43 @@
- =item B<gfx_passthru=BOOLEAN>
--Enable graphics device PCI passthrough. XXX which device is passed through ?
-+Enable graphics device PCI passthrough. This option makes the passthru
-+graphics card become primary graphics card in the VM, so the Qemu emulated 
-+graphics adapter is disabled, and the VNC console for the VM won't have
-+any graphics output. All graphics output, including boot time Qemu BIOS
-+messages from the VM, will go to the physical outputs of the passed thru
-+physical graphics card.
-+
-+Graphics card PCI device to passthru is chosen with B<pci> option, 
-+exactly in the same way as normal Xen PCI device passthru/assignment is done. 
-+Note that gfx_passthru doesn't do any kind of sharing
-+of the GPU, so you can only assign the GPU to one single VM at a time.
-+
-+gfx_passthru also enables various legacy VGA memory ranges, BARs, MMIOs, 
-+and ioports to be passed thru to the VM, since those are required
-+for correct operation of things like VGA BIOS, text mode, VBE, etc.
-+
-+Enabling gfx_passthru option also copies the physical graphics card 
-+video bios to the guest memory, and executes the vbios in the guest 
-+to get the graphics card initialized.
-+
-+Most graphics adapters require vendor specific tweaks for properly
-+working graphics passthru. Xen currently includes necessary tweaks
-+for Intel IGD (Integrated Graphics Device) GPUs.  
-+
-+Support for AMD/Nvidia gfx_passthru is not yet merged to Xen,
-+but there are out-of-tree patches available.
-+
-+gfx_passthru is currently only supported with the qemu-xen-traditional
-+device-model. Upstream qemu-xen device-model currently doesn't have
-+support for gfx_passthru.
-+
-+Note that some graphics adapters (AMD/ATI cards, for example) don't
-+necessarily require gfx_passthru option, so you can use the normal
-+Xen PCI passthru to assign the graphics card as a secondary graphics card
-+to the VM. Qemu emulated graphics card stays as the primary graphics card, 
-+and you get VNC output from the Qemu-emulated primary adapter.
-+
- =item B<nomigrate=BOOLEAN>
-
-
---neYutvxvOLaeuPCA
-Content-Type: text/x-diff; charset=us-ascii
-Content-Disposition: attachment; filename="xl.cfg.pod.5-gfx_passthru.patch"
-
---- docs/man/xl.cfg.pod.5.orig1        2012-09-02 07:16:39.316782158 +0300
-+++ docs/man/xl.cfg.pod.5      2012-09-02 08:26:40.081639087 +0300
-@@ -968,7 +968,43 @@
- =item B<gfx_passthru=BOOLEAN>
--Enable graphics device PCI passthrough. XXX which device is passed through ?
-+Enable graphics device PCI passthrough. This option makes the passthru
-+graphics card become primary graphics card in the VM, so the Qemu emulated 
-+graphics adapter is disabled, and the VNC console for the VM won't have
-+any graphics output. All graphics output, including boot time Qemu BIOS
-+messages from the VM, will go to the physical outputs of the passed thru
-+physical graphics card.
-+
-+Graphics card PCI device to passthru is chosen with B<pci> option, 
-+exactly in the same way as normal Xen PCI device passthru/assignment is done. 
-+Note that gfx_passthru doesn't do any kind of sharing
-+of the GPU, so you can only assign the GPU to one single VM at a time.
-+
-+gfx_passthru also enables various legacy VGA memory ranges, BARs, MMIOs, 
-+and ioports to be passed thru to the VM, since those are required
-+for correct operation of things like VGA BIOS, text mode, VBE, etc.
-+
-+Enabling gfx_passthru option also copies the physical graphics card 
-+video bios to the guest memory, and executes the vbios in the guest 
-+to get the graphics card initialized.
-+
-+Most graphics adapters require vendor specific tweaks for properly
-+working graphics passthru. Xen currently includes necessary tweaks
-+for Intel IGD (Integrated Graphics Device) GPUs.  
-+
-+Support for AMD/Nvidia gfx_passthru is not yet merged to Xen,
-+but there are out-of-tree patches available.
-+
-+gfx_passthru is currently only supported with the qemu-xen-traditional
-+device-model. Upstream qemu-xen device-model currently doesn't have
-+support for gfx_passthru.
-+
-+Note that some graphics adapters (AMD/ATI cards, for example) don't
-+necessarily require gfx_passthru option, so you can use the normal
-+Xen PCI passthru to assign the graphics card as a secondary graphics card
-+to the VM. Qemu emulated graphics card stays as the primary graphics card, 
-+and you get VNC output from the Qemu-emulated primary adapter.
-+
- =item B<nomigrate=BOOLEAN>
-
---neYutvxvOLaeuPCA
-Content-Type: text/plain; charset="us-ascii"
-MIME-Version: 1.0
-Content-Transfer-Encoding: 7bit
-Content-Disposition: inline
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
---neYutvxvOLaeuPCA--
-
-
diff --git a/test/corpus/<20120904191229.GH8912@reaktio.net> b/test/corpus/<20120904191229.GH8912@reaktio.net>
deleted file mode 100644 (file)
index c39a1ff..0000000
+++ /dev/null
@@ -1,230 +0,0 @@
-From xen-devel-bounces@lists.xen.org Tue Sep 04 20:17:21 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Tue, 04 Sep 2012 20:17:21 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T8ycg-0003Xb-DS
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 04 Sep 2012 20:17:21 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T8yY8-0008KX-Nh; Tue, 04 Sep 2012 19:12:36 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <pasik@iki.fi>) id 1T8yY6-0008KS-Iu
-       for xen-devel@lists.xen.org; Tue, 04 Sep 2012 19:12:34 +0000
-Received: from [85.158.139.83:50763] by server-10.bemta-5.messagelabs.com id
-       DC/60-10969-1A256405; Tue, 04 Sep 2012 19:12:33 +0000
-X-Env-Sender: pasik@iki.fi
-X-Msg-Ref: server-2.tower-182.messagelabs.com!1346785950!28544961!1
-X-Originating-IP: [192.89.123.25]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogMTkyLjg5LjEyMy4yNSA9PiA1MDA5NDY=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 29573 invoked from network); 4 Sep 2012 19:12:30 -0000
-Received: from smtp.tele.fi (HELO smtp.tele.fi) (192.89.123.25)
-       by server-2.tower-182.messagelabs.com with DHE-RSA-AES256-SHA encrypted
-       SMTP; 4 Sep 2012 19:12:30 -0000
-X-Originating-Ip: [194.89.68.22]
-Received: from ydin.reaktio.net (reaktio.net [194.89.68.22])
-       by smtp.tele.fi (Postfix) with ESMTP id D5ABD1A3C;
-       Tue,  4 Sep 2012 22:12:29 +0300 (EEST)
-Received: by ydin.reaktio.net (Postfix, from userid 1001)
-       id 3D4C92005D; Tue,  4 Sep 2012 22:12:29 +0300 (EEST)
-Date: Tue, 4 Sep 2012 22:12:29 +0300
-From: Pasi =?iso-8859-1?Q?K=E4rkk=E4inen?= <pasik@iki.fi>
-To: Ian Campbell <Ian.Campbell@citrix.com>
-Message-ID: <20120904191229.GH8912@reaktio.net>
-References: <20120902053549.GF8912@reaktio.net>
-       <1346667053.25864.21.camel@zakaz.uk.xensource.com>
-MIME-Version: 1.0
-Content-Disposition: inline
-In-Reply-To: <1346667053.25864.21.camel@zakaz.uk.xensource.com>
-User-Agent: Mutt/1.5.20 (2009-06-14)
-Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="iso-8859-1"
-Content-Transfer-Encoding: quoted-printable
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH] xl.cfg: gfx_passthru documentation
- improvements
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Mon, Sep 03, 2012 at 11:10:53AM +0100, Ian Campbell wrote:
-> On Sun, 2012-09-02 at 06:35 +0100, Pasi K=E4rkk=E4inen wrote:
-> > Hello,
-> > =
-
-> > xl.cfg.pod.5 documentation improvements:
-> > =
-
-> > - gfx_passthru: Document gfx_passthru makes the GPU become primary in t=
-he guest
-> >   and other generic info about gfx_passthru.
-> > =
-
-> > =
-
-> > Signed-off-by: Pasi K=E4rkk=E4inen <pasik@iki.fi>
-> > --- docs/man/xl.cfg.pod.5.orig1 2012-09-02 07:16:39.316782158 +0300
-> > +++ docs/man/xl.cfg.pod.5       2012-09-02 08:26:40.081639087 +0300
-> > @@ -968,7 +968,43 @@
-> >  =
-
-> >  =3Ditem B<gfx_passthru=3DBOOLEAN>
-> >  =
-
-> > -Enable graphics device PCI passthrough. XXX which device is passed thr=
-ough ?
-> > +Enable graphics device PCI passthrough. This option makes the passthru
-> > +graphics card become primary graphics card in the VM,
-> =
-
-> The option is slightly misnamed then I guess, a better name would have
-> been gfx_passthru_primary? oh well, we are stuck with it now.
-> =
-
-
-Yeah.. I think earlier gfx_passthru wasn't a boolean, but an integer, to ch=
-oose the mode.
-
-> (Am I alone in thinking that "thru" is a horrible alternative to
-> through?)
-> =
-
-
-:) =
-
-
-> >  so the Qemu emulated =
-
-> > +graphics adapter is disabled, and the VNC console for the VM won't have
-> > +any graphics output. All graphics output, including boot time Qemu BIOS
-> > +messages from the VM, will go to the physical outputs of the passed th=
-ru
-> > +physical graphics card.
-> > +
-> > +Graphics card PCI device to passthru is chosen with B<pci> option, =
-
-> > +exactly in the same way as normal Xen PCI device passthru/assignment i=
-s done. =
-
-> > +Note that gfx_passthru doesn't do any kind of sharing
-> > +of the GPU, so you can only assign the GPU to one single VM at a time.
-> > +
-> > +gfx_passthru also enables various legacy VGA memory ranges, BARs, MMIO=
-s, =
-
-> > +and ioports to be passed thru to the VM, since those are required
-> > +for correct operation of things like VGA BIOS, text mode, VBE, etc.
-> > +
-> > +Enabling gfx_passthru option also copies the physical graphics card =
-
-> > +video bios to the guest memory, and executes the vbios in the guest =
-
-> =
-
-> "BIOS" and (I expect) "VBIOS"?
-> =
-
-
-video bios =3D=3D vbios, or did you ask something else? =
-
-
-
-> > +to get the graphics card initialized.
-> > +
-> > +Most graphics adapters require vendor specific tweaks for properly
-> > +working graphics passthru. Xen currently includes necessary tweaks
-> > +for Intel IGD (Integrated Graphics Device) GPUs.  =
-
-> > +
-> > +Support for AMD/Nvidia gfx_passthru is not yet merged to Xen,
-> > +but there are out-of-tree patches available.
-> =
-
-> If there is a comprehensive list of supported/not-supported devices on
-> the wiki then I think a reference here would be more useful than these
-> two brief paragraphs.
-> =
-
-
-We have a list, but it's not up-to-date unfortunately:
-http://wiki.xen.org/wiki/XenVGAPassthroughTestedAdapters
-
-
-> In particular the second isn't very useful without links and those tend
-> to become out of date in docs IME, I would tend to omit this from here
-> and instead include them in the wiki where they can be kept up to date
->
-
-Ok. I'll fix that, and add a link to:
-http://wiki.xen.org/wiki/XenVGAPassthrough
-
-
-> (or better yet somebody could finally submit the patches for inclusion).
-> =
-
-
-Indeed. I was talking to both AMD and Nvidia engineers at XenSummit NA 2012,
-and there's some hope for them to do some work on this stuff :) =
-
-
-And I volunteered earlier for this aswell, but so far I've been way too bus=
-y with other things :(
-
-
-> > +gfx_passthru is currently only supported with the qemu-xen-traditional
-> > +device-model. Upstream qemu-xen device-model currently doesn't have
-> > +support for gfx_passthru.
-> > +
-> > +Note that some graphics adapters (AMD/ATI cards, for example) don't
-> > +necessarily require gfx_passthru option, so you can use the normal
-> > +Xen PCI passthru to assign the graphics card as a secondary graphics c=
-ard
-> > +to the VM. Qemu emulated graphics card stays as the primary graphics c=
-ard, =
-
-> > +and you get VNC output from the Qemu-emulated primary adapter.
-> > +
-> >  =
-
-> >  =3Ditem B<nomigrate=3DBOOLEAN>
-> > =
-
-> =
-
-
-
--- Pasi
-
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<20120905195403.GO8912@reaktio.net> b/test/corpus/<20120905195403.GO8912@reaktio.net>
deleted file mode 100644 (file)
index e34257a..0000000
+++ /dev/null
@@ -1,233 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Sep 05 20:58:36 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 05 Sep 2012 20:58:36 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T9Lk7-0004LJ-2E
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 05 Sep 2012 20:58:35 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T9Lfs-0003O6-C3; Wed, 05 Sep 2012 19:54:08 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <pasik@iki.fi>) id 1T9Lfr-0003Ny-1o
-       for xen-devel@lists.xen.org; Wed, 05 Sep 2012 19:54:07 +0000
-Received: from [85.158.143.99:47901] by server-1.bemta-4.messagelabs.com id
-       20/D6-12504-EDDA7405; Wed, 05 Sep 2012 19:54:06 +0000
-X-Env-Sender: pasik@iki.fi
-X-Msg-Ref: server-14.tower-216.messagelabs.com!1346874845!19129035!1
-X-Originating-IP: [192.89.123.25]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogMTkyLjg5LjEyMy4yNSA9PiA1MDI2OTU=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 5685 invoked from network); 5 Sep 2012 19:54:05 -0000
-Received: from smtp.tele.fi (HELO smtp.tele.fi) (192.89.123.25)
-       by server-14.tower-216.messagelabs.com with DHE-RSA-AES256-SHA
-       encrypted SMTP; 5 Sep 2012 19:54:05 -0000
-X-Originating-Ip: [194.89.68.22]
-Received: from ydin.reaktio.net (reaktio.net [194.89.68.22])
-       by smtp.tele.fi (Postfix) with ESMTP id BFB7C2564;
-       Wed,  5 Sep 2012 22:54:04 +0300 (EEST)
-Received: by ydin.reaktio.net (Postfix, from userid 1001)
-       id AA2652005D; Wed,  5 Sep 2012 22:54:03 +0300 (EEST)
-Date: Wed, 5 Sep 2012 22:54:03 +0300
-From: Pasi =?iso-8859-1?Q?K=E4rkk=E4inen?= <pasik@iki.fi>
-To: Ian Campbell <Ian.Campbell@citrix.com>
-Message-ID: <20120905195403.GO8912@reaktio.net>
-References: <20120902053549.GF8912@reaktio.net>
-       <1346667053.25864.21.camel@zakaz.uk.xensource.com>
-       <20120904191229.GH8912@reaktio.net>
-       <1346834000.17325.4.camel@zakaz.uk.xensource.com>
-MIME-Version: 1.0
-Content-Disposition: inline
-In-Reply-To: <1346834000.17325.4.camel@zakaz.uk.xensource.com>
-User-Agent: Mutt/1.5.20 (2009-06-14)
-Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="iso-8859-1"
-Content-Transfer-Encoding: quoted-printable
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,MIME_QP_LONG_LINE,
-       RCVD_IN_DNSWL_MED,T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham
-       version=3.3.1
-Subject: Re: [Xen-devel] [PATCH] xl.cfg: gfx_passthru documentation
- improvements
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Wed, Sep 05, 2012 at 09:33:20AM +0100, Ian Campbell wrote:
-> On Tue, 2012-09-04 at 20:12 +0100, Pasi K=E4rkk=E4inen wrote:
-> > On Mon, Sep 03, 2012 at 11:10:53AM +0100, Ian Campbell wrote:
-> > > On Sun, 2012-09-02 at 06:35 +0100, Pasi K=E4rkk=E4inen wrote:
-> > > > Hello,
-> > > > =
-
-> > > > xl.cfg.pod.5 documentation improvements:
-> > > > =
-
-> > > > - gfx_passthru: Document gfx_passthru makes the GPU become primary =
-in the guest
-> > > >   and other generic info about gfx_passthru.
-> > > > =
-
-> > > > =
-
-> > > > Signed-off-by: Pasi K=E4rkk=E4inen <pasik@iki.fi>
-> > > > --- docs/man/xl.cfg.pod.5.orig1 2012-09-02 07:16:39.316782158 +0300
-> > > > +++ docs/man/xl.cfg.pod.5       2012-09-02 08:26:40.081639087 +0300
-> > > > @@ -968,7 +968,43 @@
-> > > >  =
-
-> > > >  =3Ditem B<gfx_passthru=3DBOOLEAN>
-> > > >  =
-
-> > > > -Enable graphics device PCI passthrough. XXX which device is passed=
- through ?
-> > > > +Enable graphics device PCI passthrough. This option makes the pass=
-thru
-> > > > +graphics card become primary graphics card in the VM,
-> > > =
-
-> > > The option is slightly misnamed then I guess, a better name would have
-> > > been gfx_passthru_primary? oh well, we are stuck with it now.
-> > > =
-
-> > =
-
-> > Yeah.. I think earlier gfx_passthru wasn't a boolean, but an integer, t=
-o choose the mode.
-> =
-
-> Oh, do you happen to know what the meanings were?
-> =
-
-
-iirc off/primary/secondary.. =
-
-
-
-> > > >  so the Qemu emulated =
-
-> > > > +graphics adapter is disabled, and the VNC console for the VM won't=
- have
-> > > > +any graphics output. All graphics output, including boot time Qemu=
- BIOS
-> > > > +messages from the VM, will go to the physical outputs of the passe=
-d thru
-> > > > +physical graphics card.
-> > > > +
-> > > > +Graphics card PCI device to passthru is chosen with B<pci> option, =
-
-> > > > +exactly in the same way as normal Xen PCI device passthru/assignme=
-nt is done. =
-
-> > > > +Note that gfx_passthru doesn't do any kind of sharing
-> > > > +of the GPU, so you can only assign the GPU to one single VM at a t=
-ime.
-> > > > +
-> > > > +gfx_passthru also enables various legacy VGA memory ranges, BARs, =
-MMIOs, =
-
-> > > > +and ioports to be passed thru to the VM, since those are required
-> > > > +for correct operation of things like VGA BIOS, text mode, VBE, etc.
-> > > > +
-> > > > +Enabling gfx_passthru option also copies the physical graphics car=
-d =
-
-> > > > +video bios to the guest memory, and executes the vbios in the gues=
-t =
-
-> > > =
-
-> > > "BIOS" and (I expect) "VBIOS"?
-> > > =
-
-> > =
-
-> > video bios =3D=3D vbios, or did you ask something else? =
-
-> =
-
-> I was just commenting on the capitalisation differing from other
-> mentions of the BIOS.
-> =
-
-
-Ok.
-
-> > > > +to get the graphics card initialized.
-> > > > +
-> > > > +Most graphics adapters require vendor specific tweaks for properly
-> > > > +working graphics passthru. Xen currently includes necessary tweaks
-> > > > +for Intel IGD (Integrated Graphics Device) GPUs.  =
-
-> > > > +
-> > > > +Support for AMD/Nvidia gfx_passthru is not yet merged to Xen,
-> > > > +but there are out-of-tree patches available.
-> > > =
-
-> > > If there is a comprehensive list of supported/not-supported devices on
-> > > the wiki then I think a reference here would be more useful than these
-> > > two brief paragraphs.
-> > > =
-
-> > =
-
-> > We have a list, but it's not up-to-date unfortunately:
-> > http://wiki.xen.org/wiki/XenVGAPassthroughTestedAdapters
-> =
-
-> I think it is worth referencing it, and perhaps adding a note to the
-> page itself regarding its freshness (and then working to improve it, of
-> course ;-))
-> =
-
-
-Yep.
-
-> > > In particular the second isn't very useful without links and those te=
-nd
-> > > to become out of date in docs IME, I would tend to omit this from here
-> > > and instead include them in the wiki where they can be kept up to date
-> > >
-> > =
-
-> > Ok. I'll fix that, and add a link to:
-> > http://wiki.xen.org/wiki/XenVGAPassthrough
-> =
-
-> Thanks.
-> =
-
-
-I'll send a new patch soon.
-
--- Pasi
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<20120905200858.GP8912@reaktio.net> b/test/corpus/<20120905200858.GP8912@reaktio.net>
deleted file mode 100644 (file)
index 3236af3..0000000
+++ /dev/null
@@ -1,211 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Sep 05 21:13:39 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 05 Sep 2012 21:13:39 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T9Lyi-0004O2-6f
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 05 Sep 2012 21:13:39 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T9LuJ-0003mn-RL; Wed, 05 Sep 2012 20:09:03 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <pasik@iki.fi>) id 1T9LuH-0003mi-MP
-       for xen-devel@lists.xen.org; Wed, 05 Sep 2012 20:09:02 +0000
-Received: from [85.158.143.99:15285] by server-2.bemta-4.messagelabs.com id
-       0E/21-21239-C51B7405; Wed, 05 Sep 2012 20:09:00 +0000
-X-Env-Sender: pasik@iki.fi
-X-Msg-Ref: server-6.tower-216.messagelabs.com!1346875739!21726627!1
-X-Originating-IP: [192.89.123.25]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogMTkyLjg5LjEyMy4yNSA9PiA1MDI2OTU=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 7342 invoked from network); 5 Sep 2012 20:09:00 -0000
-Received: from smtp.tele.fi (HELO smtp.tele.fi) (192.89.123.25)
-       by server-6.tower-216.messagelabs.com with DHE-RSA-AES256-SHA encrypted
-       SMTP; 5 Sep 2012 20:09:00 -0000
-X-Originating-Ip: [194.89.68.22]
-Received: from ydin.reaktio.net (reaktio.net [194.89.68.22])
-       by smtp.tele.fi (Postfix) with ESMTP id 19D331ACA;
-       Wed,  5 Sep 2012 23:08:58 +0300 (EEST)
-Received: by ydin.reaktio.net (Postfix, from userid 1001)
-       id 8493D2005D; Wed,  5 Sep 2012 23:08:58 +0300 (EEST)
-Date: Wed, 5 Sep 2012 23:08:58 +0300
-From: Pasi =?iso-8859-1?Q?K=E4rkk=E4inen?= <pasik@iki.fi>
-To: Ian Campbell <Ian.Campbell@citrix.com>
-Message-ID: <20120905200858.GP8912@reaktio.net>
-References: <20120902053549.GF8912@reaktio.net>
-       <1346667053.25864.21.camel@zakaz.uk.xensource.com>
-       <20120904191229.GH8912@reaktio.net>
-       <1346834000.17325.4.camel@zakaz.uk.xensource.com>
-MIME-Version: 1.0
-Content-Type: multipart/mixed; boundary="/e2eDi0V/xtL+Mc8"
-Content-Disposition: inline
-Content-Transfer-Encoding: 8bit
-In-Reply-To: <1346834000.17325.4.camel@zakaz.uk.xensource.com>
-User-Agent: Mutt/1.5.20 (2009-06-14)
-Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: [Xen-devel] [PATCH v2] xl.cfg: gfx_passthru documentation
-       improvements
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-
---/e2eDi0V/xtL+Mc8
-Content-Type: text/plain; charset=iso-8859-1
-Content-Disposition: inline
-Content-Transfer-Encoding: 8bit
-
-Hello,
-
-v2: address review comments.
-
-xl.cfg.pod.5 documentation improvements:
-
-- gfx_passthru: Document gfx_passthru makes the GPU become primary in the guest
-  and other generic info about gfx_passthru.
-
-Signed-off-by: Pasi Kärkkäinen <pasik@iki.fi>
-
-
---- xen-unstable.hg/docs/man/xl.cfg.pod.5.orig  2012-09-05 22:51:39.745137076 +0300
-+++ xen-unstable.hg/docs/man/xl.cfg.pod.5       2012-09-05 23:02:29.746203364 +0300
-@@ -992,7 +992,44 @@
-
- =item B<gfx_passthru=BOOLEAN>
-
--Enable graphics device PCI passthrough. XXX which device is passed through ?
-+Enable graphics device PCI passthrough. This option makes the passthru
-+graphics card become primary graphics card in the VM, so the Qemu emulated
-+graphics adapter is disabled, and the VNC console for the VM won't have
-+any graphics output. All graphics output, including boot time Qemu BIOS
-+messages from the VM, will go to the physical outputs of the passed thru
-+physical graphics card.
-+
-+Graphics card PCI device to passthru is chosen with B<pci> option,
-+exactly in the same way as normal Xen PCI device passthru/assignment is done.
-+Note that gfx_passthru doesn't do any kind of sharing
-+of the GPU, so you can only assign the GPU to one single VM at a time.
-+
-+gfx_passthru also enables various legacy VGA memory ranges, BARs, MMIOs,
-+and ioports to be passed thru to the VM, since those are required
-+for correct operation of things like VGA BIOS, text mode, VBE, etc.
-+
-+Enabling gfx_passthru option also copies the physical graphics card
-+video BIOS to the guest memory, and executes the VBIOS in the guest
-+to get the graphics card initialized.
-+
-+Most graphics adapters require vendor specific tweaks for properly
-+working graphics passthru. See the XenVGAPassthroughTestedAdapters
-+L<http://wiki.xen.org/wiki/XenVGAPassthroughTestedAdapters>
-+wiki page for currently supported graphics cards for gfx_passthru.
-+
-+gfx_passthru is currently only supported with the qemu-xen-traditional
-+device-model. Upstream qemu-xen device-model currently doesn't have
-+support for gfx_passthru.
-+
-+Note that some graphics adapters (AMD/ATI cards, for example) don't
-+necessarily require gfx_passthru option, so you can use the normal
-+Xen PCI passthru to assign the graphics card as a secondary graphics card
-+to the VM. Qemu emulated graphics card stays as the primary graphics card,
-+and you get VNC output from the Qemu-emulated primary adapter.
-+
-+More information about Xen gfx_passthru feature is available
-+on the XenVGAPassthrough L<http://wiki.xen.org/wiki/XenVGAPassthrough>
-+wiki page.
-
- =item B<nomigrate=BOOLEAN>
-
-
---/e2eDi0V/xtL+Mc8
-Content-Type: text/x-diff; charset=us-ascii
-Content-Disposition: attachment; filename="xl.cfg.pod.5-gfx_passthru-2.patch"
-
---- xen-unstable.hg/docs/man/xl.cfg.pod.5.orig 2012-09-05 22:51:39.745137076 +0300
-+++ xen-unstable.hg/docs/man/xl.cfg.pod.5      2012-09-05 23:02:29.746203364 +0300
-@@ -992,7 +992,44 @@
- =item B<gfx_passthru=BOOLEAN>
--Enable graphics device PCI passthrough. XXX which device is passed through ?
-+Enable graphics device PCI passthrough. This option makes the passthru
-+graphics card become primary graphics card in the VM, so the Qemu emulated 
-+graphics adapter is disabled, and the VNC console for the VM won't have
-+any graphics output. All graphics output, including boot time Qemu BIOS
-+messages from the VM, will go to the physical outputs of the passed thru
-+physical graphics card.
-+
-+Graphics card PCI device to passthru is chosen with B<pci> option, 
-+exactly in the same way as normal Xen PCI device passthru/assignment is done. 
-+Note that gfx_passthru doesn't do any kind of sharing
-+of the GPU, so you can only assign the GPU to one single VM at a time.
-+
-+gfx_passthru also enables various legacy VGA memory ranges, BARs, MMIOs, 
-+and ioports to be passed thru to the VM, since those are required
-+for correct operation of things like VGA BIOS, text mode, VBE, etc.
-+
-+Enabling gfx_passthru option also copies the physical graphics card 
-+video BIOS to the guest memory, and executes the VBIOS in the guest 
-+to get the graphics card initialized.
-+
-+Most graphics adapters require vendor specific tweaks for properly
-+working graphics passthru. See the XenVGAPassthroughTestedAdapters
-+L<http://wiki.xen.org/wiki/XenVGAPassthroughTestedAdapters> 
-+wiki page for currently supported graphics cards for gfx_passthru.
-+ 
-+gfx_passthru is currently only supported with the qemu-xen-traditional
-+device-model. Upstream qemu-xen device-model currently doesn't have
-+support for gfx_passthru.
-+
-+Note that some graphics adapters (AMD/ATI cards, for example) don't
-+necessarily require gfx_passthru option, so you can use the normal
-+Xen PCI passthru to assign the graphics card as a secondary graphics card
-+to the VM. Qemu emulated graphics card stays as the primary graphics card, 
-+and you get VNC output from the Qemu-emulated primary adapter.
-+
-+More information about Xen gfx_passthru feature is available
-+on the XenVGAPassthrough L<http://wiki.xen.org/wiki/XenVGAPassthrough> 
-+wiki page.
- =item B<nomigrate=BOOLEAN>
-
---/e2eDi0V/xtL+Mc8
-Content-Type: text/plain; charset="us-ascii"
-MIME-Version: 1.0
-Content-Transfer-Encoding: 7bit
-Content-Disposition: inline
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
---/e2eDi0V/xtL+Mc8--
-
-
diff --git a/test/corpus/<20120905202927.GD27814@phenom.dumpdata.com> b/test/corpus/<20120905202927.GD27814@phenom.dumpdata.com>
deleted file mode 100644 (file)
index 4f4a129..0000000
+++ /dev/null
@@ -1,118 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Sep 05 21:46:55 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 05 Sep 2012 21:46:55 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T9MUt-0004YN-0U
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 05 Sep 2012 21:46:55 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T9MQu-00051E-4w; Wed, 05 Sep 2012 20:42:44 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <konrad.wilk@oracle.com>) id 1T9MQs-000519-J5
-       for xen-devel@lists.xen.org; Wed, 05 Sep 2012 20:42:42 +0000
-Received: from [85.158.139.83:33279] by server-7.bemta-5.messagelabs.com id
-       72/AA-19703-149B7405; Wed, 05 Sep 2012 20:42:41 +0000
-X-Env-Sender: konrad.wilk@oracle.com
-X-Msg-Ref: server-7.tower-182.messagelabs.com!1346877760!24842240!1
-X-Originating-IP: [141.146.126.227]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogMTQxLjE0Ni4xMjYuMjI3ID0+IDczODkxOA==\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 2740 invoked from network); 5 Sep 2012 20:42:41 -0000
-Received: from acsinet15.oracle.com (HELO acsinet15.oracle.com)
-       (141.146.126.227)
-       by server-7.tower-182.messagelabs.com with DHE-RSA-AES256-SHA encrypted
-       SMTP; 5 Sep 2012 20:42:41 -0000
-Received: from ucsinet22.oracle.com (ucsinet22.oracle.com [156.151.31.94])
-       by acsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
-       ESMTP id q85Kdxr1018910
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
-       Wed, 5 Sep 2012 20:40:00 GMT
-Received: from acsmt357.oracle.com (acsmt357.oracle.com [141.146.40.157])
-       by ucsinet22.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
-       q85Kdvuu018172
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
-       Wed, 5 Sep 2012 20:39:58 GMT
-Received: from abhmt114.oracle.com (abhmt114.oracle.com [141.146.116.66])
-       by acsmt357.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
-       q85Kdv5x020537; Wed, 5 Sep 2012 15:39:57 -0500
-Received: from phenom.dumpdata.com (/209.6.85.33)
-       by default (Oracle Beehive Gateway v4.0)
-       with ESMTP ; Wed, 05 Sep 2012 13:39:57 -0700
-Received: by phenom.dumpdata.com (Postfix, from userid 1000)
-       id 79C84402C1; Wed,  5 Sep 2012 16:29:27 -0400 (EDT)
-Date: Wed, 5 Sep 2012 16:29:27 -0400
-From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-To: James Harper <james.harper@bendigoit.com.au>
-Message-ID: <20120905202927.GD27814@phenom.dumpdata.com>
-References: <6035A0D088A63A46850C3988ED045A4B299F74F8@BITCOM1.int.sbss.com.au>
-MIME-Version: 1.0
-Content-Disposition: inline
-In-Reply-To: <6035A0D088A63A46850C3988ED045A4B299F74F8@BITCOM1.int.sbss.com.au>
-User-Agent: Mutt/1.5.21 (2010-09-15)
-X-Source-IP: ucsinet22.oracle.com [156.151.31.94]
-Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] bug when using 4K sectors?
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Mon, Aug 13, 2012 at 02:12:58PM +0000, James Harper wrote:
-> I notice this code in drivers/block/xen-blkback/common.h
-> 
-> #define vbd_sz(_v)      ((_v)->bdev->bd_part ? \
->                          (_v)->bdev->bd_part->nr_sects : \
->                           get_capacity((_v)->bdev->bd_disk))
-> 
-> is the value returned by vbd_sz(_v) the number of sectors in the Linux device (eg size / 4096), or the number of 512 byte sectors? I suspect the former which is causing block requests beyond 1/8th the size of the device to fail (assuming 4K sectors are expected to work at all - I can't quite get my head around how it would be expected to work - does Linux do the read-modify-write if required?)
-
-I think you need to instrument it to be sure.. But more interesting, do you actually
-have a disk that exposes a 4KB hardware and logical sector? So far I've only found
-SSDs that expose a 512kB logical sector but also expose the 4KB hardware.
-
-Never could figure out how that is all suppose to work as the blkback
-is filled with << 9 on a bunch of things.
-
-> 
-> I can't test until tomorrow AEDT, but maybe someone here knows the answer already?
-> 
-> James
-> 
-> _______________________________________________
-> Xen-devel mailing list
-> Xen-devel@lists.xen.org
-> http://lists.xen.org/xen-devel
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<20120906105822.GB3668@phenom.dumpdata.com> b/test/corpus/<20120906105822.GB3668@phenom.dumpdata.com>
deleted file mode 100644 (file)
index cfe7901..0000000
+++ /dev/null
@@ -1,128 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Sep 06 12:13:14 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 06 Sep 2012 12:13:14 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T9a1E-00037p-SK
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 06 Sep 2012 12:13:14 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T9Zxn-0000Hm-58; Thu, 06 Sep 2012 11:09:35 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <konrad.wilk@oracle.com>) id 1T9Zxm-0000He-3h
-       for xen-devel@lists.xen.org; Thu, 06 Sep 2012 11:09:34 +0000
-Received: from [85.158.139.83:60027] by server-5.bemta-5.messagelabs.com id
-       07/34-30514-D6488405; Thu, 06 Sep 2012 11:09:33 +0000
-X-Env-Sender: konrad.wilk@oracle.com
-X-Msg-Ref: server-11.tower-182.messagelabs.com!1346929771!21701740!1
-X-Originating-IP: [148.87.113.117]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogMTQ4Ljg3LjExMy4xMTcgPT4gNzMxMzIz\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 15034 invoked from network); 6 Sep 2012 11:09:32 -0000
-Received: from rcsinet15.oracle.com (HELO rcsinet15.oracle.com)
-       (148.87.113.117)
-       by server-11.tower-182.messagelabs.com with DHE-RSA-AES256-SHA
-       encrypted SMTP; 6 Sep 2012 11:09:32 -0000
-Received: from ucsinet22.oracle.com (ucsinet22.oracle.com [156.151.31.94])
-       by rcsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
-       ESMTP id q86B8tR1026753
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
-       Thu, 6 Sep 2012 11:08:56 GMT
-Received: from acsmt357.oracle.com (acsmt357.oracle.com [141.146.40.157])
-       by ucsinet22.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
-       q86B8sWm008281
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
-       Thu, 6 Sep 2012 11:08:55 GMT
-Received: from abhmt118.oracle.com (abhmt118.oracle.com [141.146.116.70])
-       by acsmt357.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
-       q86B8r17015822; Thu, 6 Sep 2012 06:08:53 -0500
-Received: from phenom.dumpdata.com (/209.6.85.33)
-       by default (Oracle Beehive Gateway v4.0)
-       with ESMTP ; Thu, 06 Sep 2012 04:08:53 -0700
-Received: by phenom.dumpdata.com (Postfix, from userid 1000)
-       id 3CD5A402E4; Thu,  6 Sep 2012 06:58:22 -0400 (EDT)
-Date: Thu, 6 Sep 2012 06:58:22 -0400
-From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-To: James Harper <james.harper@bendigoit.com.au>
-Message-ID: <20120906105822.GB3668@phenom.dumpdata.com>
-References: <6035A0D088A63A46850C3988ED045A4B299F74F8@BITCOM1.int.sbss.com.au>
-       <20120905202927.GD27814@phenom.dumpdata.com>
-       <6035A0D088A63A46850C3988ED045A4B29B5D23E@BITCOM1.int.sbss.com.au>
-MIME-Version: 1.0
-Content-Disposition: inline
-In-Reply-To: <6035A0D088A63A46850C3988ED045A4B29B5D23E@BITCOM1.int.sbss.com.au>
-User-Agent: Mutt/1.5.21 (2010-09-15)
-X-Source-IP: ucsinet22.oracle.com [156.151.31.94]
-Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] bug when using 4K sectors?
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Wed, Sep 05, 2012 at 11:56:08PM +0000, James Harper wrote:
-> > On Mon, Aug 13, 2012 at 02:12:58PM +0000, James Harper wrote:
-> > > I notice this code in drivers/block/xen-blkback/common.h
-> > >
-> > > #define vbd_sz(_v)      ((_v)->bdev->bd_part ? \
-> > >                          (_v)->bdev->bd_part->nr_sects : \
-> > >                           get_capacity((_v)->bdev->bd_disk))
-> > >
-> > > is the value returned by vbd_sz(_v) the number of sectors in the Linux
-> > > device (eg size / 4096), or the number of 512 byte sectors? I suspect
-> > > the former which is causing block requests beyond 1/8th the size of
-> > > the device to fail (assuming 4K sectors are expected to work at all -
-> > > I can't quite get my head around how it would be expected to work -
-> > > does Linux do the read-modify-write if required?)
-> > 
-> > I think you need to instrument it to be sure.. But more interesting, do you
-> > actually have a disk that exposes a 4KB hardware and logical sector? So far
-> > I've only found SSDs that expose a 512kB logical sector but also expose the
-> > 4KB hardware.
-> > 
-> > Never could figure out how that is all suppose to work as the blkback is filled
-> > with << 9 on a bunch of things.
-> > 
-> 
-> I was using bcache which does expose a 4K block size, by default. I changed it to 512 and it all works now, although I haven't tested if there is any loss of performance.
-
-OK, let me see how I can setup bcache and play with that.
-> 
-> Does Xen provide a way to tell Windows that the underlying device is 512e (4K sector with 512 byte emulated interface)? This would keep everything working as is but allow windows to align writes to 4K boundaries where possible.
-
-We can certainly expose that via the XenBus interface.
-> 
-> James
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<20120912171921.GT8912@reaktio.net> b/test/corpus/<20120912171921.GT8912@reaktio.net>
deleted file mode 100644 (file)
index 3950f46..0000000
+++ /dev/null
@@ -1,194 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Sep 12 18:24:09 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 12 Sep 2012 18:24:09 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TBqfX-00023G-49
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 12 Sep 2012 18:24:09 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TBqb0-0001qs-JJ; Wed, 12 Sep 2012 17:19:26 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <pasik@iki.fi>) id 1TBqay-0001ql-Go
-       for xen-devel@lists.xen.org; Wed, 12 Sep 2012 17:19:24 +0000
-Received: from [85.158.138.51:54930] by server-7.bemta-3.messagelabs.com id
-       04/C8-32000-B14C0505; Wed, 12 Sep 2012 17:19:23 +0000
-X-Env-Sender: pasik@iki.fi
-X-Msg-Ref: server-5.tower-174.messagelabs.com!1347470362!30292350!1
-X-Originating-IP: [192.89.123.25]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogMTkyLjg5LjEyMy4yNSA9PiA0OTgwOTc=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 32225 invoked from network); 12 Sep 2012 17:19:22 -0000
-Received: from smtp.tele.fi (HELO smtp.tele.fi) (192.89.123.25)
-       by server-5.tower-174.messagelabs.com with DHE-RSA-AES256-SHA encrypted
-       SMTP; 12 Sep 2012 17:19:22 -0000
-X-Originating-Ip: [194.89.68.22]
-Received: from ydin.reaktio.net (reaktio.net [194.89.68.22])
-       by smtp.tele.fi (Postfix) with ESMTP id A69E72FE4;
-       Wed, 12 Sep 2012 20:19:21 +0300 (EEST)
-Received: by ydin.reaktio.net (Postfix, from userid 1001)
-       id 48A732005D; Wed, 12 Sep 2012 20:19:21 +0300 (EEST)
-Date: Wed, 12 Sep 2012 20:19:21 +0300
-From: Pasi =?iso-8859-1?Q?K=E4rkk=E4inen?= <pasik@iki.fi>
-To: Ian Campbell <Ian.Campbell@citrix.com>
-Message-ID: <20120912171921.GT8912@reaktio.net>
-References: <20120902053549.GF8912@reaktio.net>
-       <1346667053.25864.21.camel@zakaz.uk.xensource.com>
-       <20120904191229.GH8912@reaktio.net>
-       <1346834000.17325.4.camel@zakaz.uk.xensource.com>
-       <20120905200858.GP8912@reaktio.net>
-       <1347272111.5305.52.camel@zakaz.uk.xensource.com>
-MIME-Version: 1.0
-Content-Disposition: inline
-In-Reply-To: <1347272111.5305.52.camel@zakaz.uk.xensource.com>
-User-Agent: Mutt/1.5.20 (2009-06-14)
-Cc: Jan Beulich <JBeulich@suse.com>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="iso-8859-1"
-Content-Transfer-Encoding: quoted-printable
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.6 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH v2] xl.cfg: gfx_passthru documentation
-       improvements
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Mon, Sep 10, 2012 at 11:15:11AM +0100, Ian Campbell wrote:
-> On Wed, 2012-09-05 at 21:08 +0100, Pasi K=E4rkk=E4inen wrote:
-> > Hello,
-> > =
-
-> > v2: address review comments.
-> > =
-
-> > xl.cfg.pod.5 documentation improvements:
-> > =
-
-> > - gfx_passthru: Document gfx_passthru makes the GPU become primary in t=
-he guest
-> >   and other generic info about gfx_passthru.
-> > =
-
-> > Signed-off-by: Pasi K=E4rkk=E4inen <pasik@iki.fi>
-> =
-
-> Acked + applied, thanks.
-> =
-
-
-Thanks!
-
-> Jan, I think this docs only change can be a candidate for 4.2.0, but if
-> not then 4.2.1 would be good. =
-
-> =
-
-
-Yes please, it would be nice to get this into 4.2.0 if possible.. it's a do=
-cs only patch.
-
--- Pasi
-
-> Ian.
-> =
-
-> > =
-
-> > =
-
-> > --- xen-unstable.hg/docs/man/xl.cfg.pod.5.orig  2012-09-05 22:51:39.745=
-137076 +0300
-> > +++ xen-unstable.hg/docs/man/xl.cfg.pod.5       2012-09-05 23:02:29.746=
-203364 +0300
-> > @@ -992,7 +992,44 @@
-> > =
-
-> >  =3Ditem B<gfx_passthru=3DBOOLEAN>
-> > =
-
-> > -Enable graphics device PCI passthrough. XXX which device is passed thr=
-ough ?
-> > +Enable graphics device PCI passthrough. This option makes the passthru
-> > +graphics card become primary graphics card in the VM, so the Qemu emul=
-ated
-> > +graphics adapter is disabled, and the VNC console for the VM won't have
-> > +any graphics output. All graphics output, including boot time Qemu BIOS
-> > +messages from the VM, will go to the physical outputs of the passed th=
-ru
-> > +physical graphics card.
-> > +
-> > +Graphics card PCI device to passthru is chosen with B<pci> option,
-> > +exactly in the same way as normal Xen PCI device passthru/assignment i=
-s done.
-> > +Note that gfx_passthru doesn't do any kind of sharing
-> > +of the GPU, so you can only assign the GPU to one single VM at a time.
-> > +
-> > +gfx_passthru also enables various legacy VGA memory ranges, BARs, MMIO=
-s,
-> > +and ioports to be passed thru to the VM, since those are required
-> > +for correct operation of things like VGA BIOS, text mode, VBE, etc.
-> > +
-> > +Enabling gfx_passthru option also copies the physical graphics card
-> > +video BIOS to the guest memory, and executes the VBIOS in the guest
-> > +to get the graphics card initialized.
-> > +
-> > +Most graphics adapters require vendor specific tweaks for properly
-> > +working graphics passthru. See the XenVGAPassthroughTestedAdapters
-> > +L<http://wiki.xen.org/wiki/XenVGAPassthroughTestedAdapters>
-> > +wiki page for currently supported graphics cards for gfx_passthru.
-> > +
-> > +gfx_passthru is currently only supported with the qemu-xen-traditional
-> > +device-model. Upstream qemu-xen device-model currently doesn't have
-> > +support for gfx_passthru.
-> > +
-> > +Note that some graphics adapters (AMD/ATI cards, for example) don't
-> > +necessarily require gfx_passthru option, so you can use the normal
-> > +Xen PCI passthru to assign the graphics card as a secondary graphics c=
-ard
-> > +to the VM. Qemu emulated graphics card stays as the primary graphics c=
-ard,
-> > +and you get VNC output from the Qemu-emulated primary adapter.
-> > +
-> > +More information about Xen gfx_passthru feature is available
-> > +on the XenVGAPassthrough L<http://wiki.xen.org/wiki/XenVGAPassthrough>
-> > +wiki page.
-> > =
-
-> >  =3Ditem B<nomigrate=3DBOOLEAN>
-> > =
-
-> =
-
-> =
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<20120914160727.1ff41de2@mantra.us.oracle.com> b/test/corpus/<20120914160727.1ff41de2@mantra.us.oracle.com>
deleted file mode 100644 (file)
index 00837a5..0000000
+++ /dev/null
@@ -1,134 +0,0 @@
-From xen-devel-bounces@lists.xen.org Sat Sep 15 00:12:23 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Sat, 15 Sep 2012 00:12:23 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TCf3c-0007IU-JU
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Sat, 15 Sep 2012 00:12:23 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TCez8-00040B-9V; Fri, 14 Sep 2012 23:07:42 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <mukesh.rathor@oracle.com>) id 1TCez6-000406-Nh
-       for xen-devel@lists.xensource.com; Fri, 14 Sep 2012 23:07:40 +0000
-Received: from [85.158.143.99:26266] by server-1.bemta-4.messagelabs.com id
-       1C/C3-12504-CB8B3505; Fri, 14 Sep 2012 23:07:40 +0000
-X-Env-Sender: mukesh.rathor@oracle.com
-X-Msg-Ref: server-12.tower-216.messagelabs.com!1347664058!22299179!1
-X-Originating-IP: [141.146.126.227]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogMTQxLjE0Ni4xMjYuMjI3ID0+IDc1MzA3MQ==\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 30387 invoked from network); 14 Sep 2012 23:07:39 -0000
-Received: from acsinet15.oracle.com (HELO acsinet15.oracle.com)
-       (141.146.126.227)
-       by server-12.tower-216.messagelabs.com with DHE-RSA-AES256-SHA
-       encrypted SMTP; 14 Sep 2012 23:07:39 -0000
-Received: from acsinet22.oracle.com (acsinet22.oracle.com [141.146.126.238])
-       by acsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
-       ESMTP id q8EN7UnN013263
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
-       Fri, 14 Sep 2012 23:07:31 GMT
-Received: from acsmt358.oracle.com (acsmt358.oracle.com [141.146.40.158])
-       by acsinet22.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
-       q8EN7TPF007791
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
-       Fri, 14 Sep 2012 23:07:30 GMT
-Received: from abhmt112.oracle.com (abhmt112.oracle.com [141.146.116.64])
-       by acsmt358.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
-       q8EN7TfV008031; Fri, 14 Sep 2012 18:07:29 -0500
-Received: from mantra.us.oracle.com (/130.35.68.95)
-       by default (Oracle Beehive Gateway v4.0)
-       with ESMTP ; Fri, 14 Sep 2012 16:07:28 -0700
-Date: Fri, 14 Sep 2012 16:07:27 -0700
-From: Mukesh Rathor <mukesh.rathor@oracle.com>
-To: Ian Campbell <Ian.Campbell@citrix.com>
-Message-ID: <20120914160727.1ff41de2@mantra.us.oracle.com>
-In-Reply-To: <1347627587.24226.192.camel@zakaz.uk.xensource.com>
-References: <alpine.DEB.2.02.1208221159560.15568@kaball.uk.xensource.com>
-       <1345633688-31684-1-git-send-email-stefano.stabellini@eu.citrix.com>
-       <1347627587.24226.192.camel@zakaz.uk.xensource.com>
-Organization: Oracle Corporation
-X-Mailer: Claws Mail 3.7.6 (GTK+ 2.18.9; x86_64-redhat-linux-gnu)
-Mime-Version: 1.0
-X-Source-IP: acsinet22.oracle.com [141.146.126.238]
-Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
-       "Tim \(Xen.org\)" <tim@xen.org>,
-       Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.7 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH v4 1/6] xen: improve changes to
-       xen_add_to_physmap
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Fri, 14 Sep 2012 13:59:47 +0100
-Ian Campbell <Ian.Campbell@citrix.com> wrote:
-
-> 
-> On Wed, 2012-08-22 at 12:08 +0100, Stefano Stabellini wrote:
-> > This is an incremental patch on top of
-> > c0bc926083b5987a3e9944eec2c12ad0580100e2: in order to retain binary
-> > compatibility, it is better to introduce foreign_domid as part of a
-> > union containing both size and foreign_domid.
-> [...]
-> > -    domid_t foreign_domid; /* IFF gmfn_foreign */
-> > +    unsigned int space;
-> >  
-> >  #define XENMAPIDX_grant_table_status 0x80000000
-> 
-> Was this the final consensus on what this interface ought to look
-> like?
-> 
-> Does it work for PVH too (Mukesh CCd)?
-
-Yes it does. Please lmk if the final version asap so I can put in
-my patch, and also test it.
-
-
-> Might we prefer to have a batched version of this call? I don't think
-> we can shoehorn the necessary fields into xen_add_to_physmap_t though.
-> 
-> Do we think libxc will ever want to call a batch version of
-> XENMAPSPACE_gmfn_foreign ? If not then we can probably get away using
-> multicall batching. If yes then perhaps not -- libxc doesn'tdo
-> multicalls.
-
-Not right now. The whole remap api is one page at a time. 
-
-
-thanks,
-Mukesh
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<20120914160918.7e61d1d0@mantra.us.oracle.com> b/test/corpus/<20120914160918.7e61d1d0@mantra.us.oracle.com>
deleted file mode 100644 (file)
index 6c8710b..0000000
+++ /dev/null
@@ -1,147 +0,0 @@
-From xen-devel-bounces@lists.xen.org Sat Sep 15 00:13:22 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Sat, 15 Sep 2012 00:13:22 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TCf4a-0007In-D1
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Sat, 15 Sep 2012 00:13:22 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TCf13-00045F-Q6; Fri, 14 Sep 2012 23:09:41 +0000
-Received: from mail27.messagelabs.com ([193.109.254.147])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <mukesh.rathor@oracle.com>) id 1TCf11-000453-VH
-       for xen-devel@lists.xensource.com; Fri, 14 Sep 2012 23:09:40 +0000
-X-Env-Sender: mukesh.rathor@oracle.com
-X-Msg-Ref: server-16.tower-27.messagelabs.com!1347664172!9666173!1
-X-Originating-IP: [141.146.126.227]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogMTQxLjE0Ni4xMjYuMjI3ID0+IDc1MzA3MQ==\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 29399 invoked from network); 14 Sep 2012 23:09:33 -0000
-Received: from acsinet15.oracle.com (HELO acsinet15.oracle.com)
-       (141.146.126.227)
-       by server-16.tower-27.messagelabs.com with DHE-RSA-AES256-SHA encrypted
-       SMTP; 14 Sep 2012 23:09:33 -0000
-Received: from ucsinet21.oracle.com (ucsinet21.oracle.com [156.151.31.93])
-       by acsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
-       ESMTP id q8EN9LCa014250
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
-       Fri, 14 Sep 2012 23:09:21 GMT
-Received: from acsmt357.oracle.com (acsmt357.oracle.com [141.146.40.157])
-       by ucsinet21.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
-       q8EN9JHi014682
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
-       Fri, 14 Sep 2012 23:09:20 GMT
-Received: from abhmt101.oracle.com (abhmt101.oracle.com [141.146.116.53])
-       by acsmt357.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
-       q8EN9JnO011262; Fri, 14 Sep 2012 18:09:19 -0500
-Received: from mantra.us.oracle.com (/130.35.68.95)
-       by default (Oracle Beehive Gateway v4.0)
-       with ESMTP ; Fri, 14 Sep 2012 16:09:19 -0700
-Date: Fri, 14 Sep 2012 16:09:18 -0700
-From: Mukesh Rathor <mukesh.rathor@oracle.com>
-To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-Message-ID: <20120914160918.7e61d1d0@mantra.us.oracle.com>
-In-Reply-To: <alpine.DEB.2.02.1209141652440.29232@kaball.uk.xensource.com>
-References: <alpine.DEB.2.02.1208221159560.15568@kaball.uk.xensource.com>
-       <1345633688-31684-1-git-send-email-stefano.stabellini@eu.citrix.com>
-       <1347627587.24226.192.camel@zakaz.uk.xensource.com>
-       <1347628660.24226.197.camel@zakaz.uk.xensource.com>
-       <1347630442.24226.211.camel@zakaz.uk.xensource.com>
-       <1347630971.24226.214.camel@zakaz.uk.xensource.com>
-       <50535AFA020000780009B7C4@nat28.tlf.novell.com>
-       <alpine.DEB.2.02.1209141631200.29232@kaball.uk.xensource.com>
-       <1347637953.14977.10.camel@zakaz.uk.xensource.com>
-       <alpine.DEB.2.02.1209141652440.29232@kaball.uk.xensource.com>
-Organization: Oracle Corporation
-X-Mailer: Claws Mail 3.7.6 (GTK+ 2.18.9; x86_64-redhat-linux-gnu)
-Mime-Version: 1.0
-X-Source-IP: ucsinet21.oracle.com [156.151.31.93]
-Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
-       "Keir \(Xen.org\)" <keir@xen.org>,
-       Ian Campbell <Ian.Campbell@citrix.com>, "Tim \(Xen.org\)" <tim@xen.org>,
-       "ijackson@chiark.greenend.org.uk" <ijackson@chiark.greenend.org.uk>,
-       Jan Beulich <JBeulich@suse.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.7 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH v4 1/6] xen: improve changes to
- xen_add_to_physmap
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Fri, 14 Sep 2012 16:54:06 +0100
-Stefano Stabellini <stefano.stabellini@eu.citrix.com> wrote:
-
-> On Fri, 14 Sep 2012, Ian Campbell wrote:
-> > On Fri, 2012-09-14 at 16:44 +0100, Stefano Stabellini wrote:
-> > > On Fri, 14 Sep 2012, Jan Beulich wrote:
-> > > > >>> On 14.09.12 at 15:56, Ian Campbell
-> > > > >>> <Ian.Campbell@citrix.com> wrote:
-> > > > >> > > Might we prefer to have a batched version of this call?
-> > > > >> > > I don't think we can shoehorn the necessary fields into
-> > > > >> > > xen_add_to_physmap_t though.
-> > > > >> > 
-> > > > >> > Actually, talking about this we Stefano we think we can.
-> > > > >> > Since both idx and gpfn are unsigned longs they can become
-> > > > >> > unions with a GUEST_HANDLE without changing the ABI on
-> > > > >> > x86_32 or x86_64.
-> > > > > 
-> > > > > Except we need both foreign_domid and size, which currently
-> > > > > overlap, and there's no other spare bits. Damn.
-> > > > > 
-> > > > > Looks like XENMEM_add_to_physmap_range is the only option :-(
-> > > > 
-> > > > You could use the first entry in each array to specify the
-> > > > counts, which would at once allow mixed granularity on each
-> > > > list (should that ever turn out useful); initially you would
-> > > > certainly want both counts to match.
-> > > 
-> > > I think it would be better from the interface point of view to
-> > > have idx become the number of frames, and gpfn a pointer (a
-> > > GUEST_HANDLE) to a struct that contains both arrays.
-> > 
-> > We'd need to slip in enough info to allow continuations too. Perhaps
-> > that can be done by manipulating the size and the handle to keep
-> > track of progress. Or maybe we can get away with just just frobbing
-> > the size if we process the array backwards.
-> > 
-> > Which is all sounding pretty gross. I'm very temped to add
-> > add_to_physmap2...
-> 
-> Yeah, I am OK with that.
-
-Agree, pmap2.
-
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<20120916122704.4ea05b45@pyramind.ukuu.org.uk> b/test/corpus/<20120916122704.4ea05b45@pyramind.ukuu.org.uk>
deleted file mode 100644 (file)
index fcba584..0000000
+++ /dev/null
@@ -1,96 +0,0 @@
-From xen-devel-bounces@lists.xen.org Sun Sep 16 12:26:44 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Sun, 16 Sep 2012 12:26:44 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TDCzq-0000fL-Ck
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Sun, 16 Sep 2012 12:26:44 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TDCwD-0000WM-Nz; Sun, 16 Sep 2012 11:22:57 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <alan@lxorguk.ukuu.org.uk>) id 1TDCwC-0000WA-73
-       for xen-devel@lists.xen.org; Sun, 16 Sep 2012 11:22:56 +0000
-Received: from [85.158.139.211:25182] by server-3.bemta-5.messagelabs.com id
-       39/C9-21836-F86B5505; Sun, 16 Sep 2012 11:22:55 +0000
-X-Env-Sender: alan@lxorguk.ukuu.org.uk
-X-Msg-Ref: server-9.tower-206.messagelabs.com!1347794574!17232779!1
-X-Originating-IP: [81.2.110.251]
-X-SpamReason: No, hits=0.5 required=7.0 tests=BODY_RANDOM_LONG
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 32070 invoked from network); 16 Sep 2012 11:22:54 -0000
-Received: from lxorguk.ukuu.org.uk (HELO lxorguk.ukuu.org.uk) (81.2.110.251)
-       by server-9.tower-206.messagelabs.com with DHE-RSA-AES256-SHA encrypted
-       SMTP; 16 Sep 2012 11:22:54 -0000
-Received: from pyramind.ukuu.org.uk (earthlight.etchedpixels.co.uk
-       [81.2.110.250])
-       by lxorguk.ukuu.org.uk (8.14.5/8.14.1) with ESMTP id q8GBshb1017807;
-       Sun, 16 Sep 2012 12:54:48 +0100
-Received: from pyramind.ukuu.org.uk (localhost [127.0.0.1])
-       by pyramind.ukuu.org.uk (8.14.5/8.14.5) with ESMTP id q8GBR4wF008587;
-       Sun, 16 Sep 2012 12:27:04 +0100
-Date: Sun, 16 Sep 2012 12:27:04 +0100
-From: Alan Cox <alan@lxorguk.ukuu.org.uk>
-To: Keir Fraser <keir.xen@gmail.com>
-Message-ID: <20120916122704.4ea05b45@pyramind.ukuu.org.uk>
-In-Reply-To: <CC7B4CE4.3EE74%keir.xen@gmail.com>
-References: <CAOzFzEiZopdFQuZkUcSWWre9b=NeZpJM9n2VtEoZcRo=ejYQPA@mail.gmail.com>
-       <CC7B4CE4.3EE74%keir.xen@gmail.com>
-X-Mailer: Claws Mail 3.8.0 (GTK+ 2.24.8; x86_64-redhat-linux-gnu)
-Face: iVBORw0KGgoAAAANSUhEUgAAADAAAAAwBAMAAAClLOS0AAAAFVBMVEWysKsSBQMIAwIZCwj///8wIhxoRDXH9QHCAAABeUlEQVQ4jaXTvW7DIBAAYCQTzz2hdq+rdg494ZmBeE5KYHZjm/d/hJ6NfzBJpp5kRb5PHJwvMPMk2L9As5Y9AmYRBL+HAyJKeOU5aHRhsAAvORQ+UEgAvgddj/lwAXndw2laEDqA4x6KEBhjYRCg9tBFCOuJFxg2OKegbWjbsRTk8PPhKPD7HcRxB7cqhgBRp9Dcqs+B8v4CQvFdqeot3Kov6hBUn0AJitrzY+sgUuiA8i0r7+B3AfqKcN6t8M6HtqQ+AOoELCikgQSbgabKaJW3kn5lBs47JSGDhhLKDUh1UMipwwinMYPTBuIBjEclSaGZUk9hDlTb5sUTYN2SFFQuPe4Gox1X0FZOufjgBiV1Vls7b+GvK3SU4wfmcGo9rPPQzgIabfj4TYQo15k3bTHX9RIw/kniir5YbtJF4jkFG+dsDK1IgE413zAthU/vR2HVMmFUPIHTvF6jWCpFaGw/A3qWgnbxpSm9MSmY5b3pM1gvNc/gQfwBsGwF0VCtxZgAAAAASUVORK5CYII=
-Mime-Version: 1.0
-Cc: Joseph Glanville <joseph.glanville@orionvm.com.au>,
-       James Harper <james.harper@bendigoit.com.au>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
-       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.7 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] bug when using 4K sectors?
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-> I would kind of expect it to work, as CD-ROMs have a larger sector size (2kB
-> IIRC) and we support those...
-
-For data blocks they are 2K, as are some magneto-opticals.
-
-The more complicated case is modern hard disks, while you can access them
-on 512 byte boundaries they are actually using bigger block sizes but the
-large blocks are not neccessarily on the 0 boundary in order to get
-optimal alignment for existing file systems and partitioning.
-
-So knowing the block size isn't the whole story.
-
-Alan
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<20120916170737.3c8f7e9e@pyramind.ukuu.org.uk> b/test/corpus/<20120916170737.3c8f7e9e@pyramind.ukuu.org.uk>
deleted file mode 100644 (file)
index c8e3249..0000000
+++ /dev/null
@@ -1,101 +0,0 @@
-From xen-devel-bounces@lists.xen.org Sun Sep 16 17:07:11 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Sun, 16 Sep 2012 17:07:11 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TDHNC-0000f1-5s
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Sun, 16 Sep 2012 17:07:11 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TDHJT-00053m-1E; Sun, 16 Sep 2012 16:03:15 +0000
-Received: from mail27.messagelabs.com ([193.109.254.147])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <alan@lxorguk.ukuu.org.uk>) id 1TDHJR-00053Q-LF
-       for xen-devel@lists.xen.org; Sun, 16 Sep 2012 16:03:13 +0000
-X-Env-Sender: alan@lxorguk.ukuu.org.uk
-X-Msg-Ref: server-5.tower-27.messagelabs.com!1347811384!7815285!1
-X-Originating-IP: [81.2.110.251]
-X-SpamReason: No, hits=0.0 required=7.0 tests=
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 511 invoked from network); 16 Sep 2012 16:03:04 -0000
-Received: from lxorguk.ukuu.org.uk (HELO lxorguk.ukuu.org.uk) (81.2.110.251)
-       by server-5.tower-27.messagelabs.com with DHE-RSA-AES256-SHA encrypted
-       SMTP; 16 Sep 2012 16:03:04 -0000
-Received: from pyramind.ukuu.org.uk (earthlight.etchedpixels.co.uk
-       [81.2.110.250])
-       by lxorguk.ukuu.org.uk (8.14.5/8.14.1) with ESMTP id q8GGZGhb019756;
-       Sun, 16 Sep 2012 17:35:22 +0100
-Received: from pyramind.ukuu.org.uk (localhost [127.0.0.1])
-       by pyramind.ukuu.org.uk (8.14.5/8.14.5) with ESMTP id q8GG7ciK013536;
-       Sun, 16 Sep 2012 17:07:38 +0100
-Date: Sun, 16 Sep 2012 17:07:37 +0100
-From: Alan Cox <alan@lxorguk.ukuu.org.uk>
-To: James Harper <james.harper@bendigoit.com.au>
-Message-ID: <20120916170737.3c8f7e9e@pyramind.ukuu.org.uk>
-In-Reply-To: <6035A0D088A63A46850C3988ED045A4B29B980EB@BITCOM1.int.sbss.com.au>
-References: <CAOzFzEiZopdFQuZkUcSWWre9b=NeZpJM9n2VtEoZcRo=ejYQPA@mail.gmail.com>
-       <CC7B4CE4.3EE74%keir.xen@gmail.com>
-       <20120916122704.4ea05b45@pyramind.ukuu.org.uk>
-       <6035A0D088A63A46850C3988ED045A4B29B980EB@BITCOM1.int.sbss.com.au>
-X-Mailer: Claws Mail 3.8.0 (GTK+ 2.24.8; x86_64-redhat-linux-gnu)
-Face: iVBORw0KGgoAAAANSUhEUgAAADAAAAAwBAMAAAClLOS0AAAAFVBMVEWysKsSBQMIAwIZCwj///8wIhxoRDXH9QHCAAABeUlEQVQ4jaXTvW7DIBAAYCQTzz2hdq+rdg494ZmBeE5KYHZjm/d/hJ6NfzBJpp5kRb5PHJwvMPMk2L9As5Y9AmYRBL+HAyJKeOU5aHRhsAAvORQ+UEgAvgddj/lwAXndw2laEDqA4x6KEBhjYRCg9tBFCOuJFxg2OKegbWjbsRTk8PPhKPD7HcRxB7cqhgBRp9Dcqs+B8v4CQvFdqeot3Kov6hBUn0AJitrzY+sgUuiA8i0r7+B3AfqKcN6t8M6HtqQ+AOoELCikgQSbgabKaJW3kn5lBs47JSGDhhLKDUh1UMipwwinMYPTBuIBjEclSaGZUk9hDlTb5sUTYN2SFFQuPe4Gox1X0FZOufjgBiV1Vls7b+GvK3SU4wfmcGo9rPPQzgIabfj4TYQo15k3bTHX9RIw/kniir5YbtJF4jkFG+dsDK1IgE413zAthU/vR2HVMmFUPIHTvF6jWCpFaGw/A3qWgnbxpSm9MSmY5b3pM1gvNc/gQfwBsGwF0VCtxZgAAAAASUVORK5CYII=
-Mime-Version: 1.0
-Cc: Joseph Glanville <joseph.glanville@orionvm.com.au>,
-       Keir Fraser <keir.xen@gmail.com>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
-       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.7 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] bug when using 4K sectors?
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-> > So knowing the block size isn't the whole story.
-> > 
-> 
-> Are you saying that Xen and/or Linux needs to worry about a user setting up a poorly aligned filesystem to pass to a VM? Seems simpler just to set things up right in the first place.
-
-That assumes things like a file system and the existing layout being
-correct. Plus you also have to set the thing up which means you have to
-know about such stuff.
-
-For file systems Linux itself does indeed take the approach of "so
-partition sensibly" because in the fs case it's really hard if not
-impossible to do a good job any other way.
-
-For raw devices and things like databases wanting atomicity of block
-writes however its quite different and you need to be aware of the
-alignments.
-
-Alan
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<20120917181858.GA17720@phenom.dumpdata.com> b/test/corpus/<20120917181858.GA17720@phenom.dumpdata.com>
deleted file mode 100644 (file)
index e6981f8..0000000
+++ /dev/null
@@ -1,111 +0,0 @@
-From xen-devel-bounces@lists.xen.org Mon Sep 17 19:33:28 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Mon, 17 Sep 2012 19:33:28 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TDg8M-0001oK-1p
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Mon, 17 Sep 2012 19:33:28 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TDg4y-0006IJ-Vl; Mon, 17 Sep 2012 18:29:56 +0000
-Received: from mail27.messagelabs.com ([193.109.254.147])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <konrad.wilk@oracle.com>) id 1TDg4x-0006IE-Oa
-       for xen-devel@lists.xensource.com; Mon, 17 Sep 2012 18:29:55 +0000
-X-Env-Sender: konrad.wilk@oracle.com
-X-Msg-Ref: server-13.tower-27.messagelabs.com!1347906588!10259406!1
-X-Originating-IP: [148.87.113.117]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogMTQ4Ljg3LjExMy4xMTcgPT4gNzQ1MDU4\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 28790 invoked from network); 17 Sep 2012 18:29:49 -0000
-Received: from rcsinet15.oracle.com (HELO rcsinet15.oracle.com)
-       (148.87.113.117)
-       by server-13.tower-27.messagelabs.com with DHE-RSA-AES256-SHA encrypted
-       SMTP; 17 Sep 2012 18:29:49 -0000
-Received: from ucsinet21.oracle.com (ucsinet21.oracle.com [156.151.31.93])
-       by rcsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
-       ESMTP id q8HITj0I005680
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
-       Mon, 17 Sep 2012 18:29:46 GMT
-Received: from acsmt356.oracle.com (acsmt356.oracle.com [141.146.40.156])
-       by ucsinet21.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
-       q8HITjGc011005
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
-       Mon, 17 Sep 2012 18:29:45 GMT
-Received: from abhmt114.oracle.com (abhmt114.oracle.com [141.146.116.66])
-       by acsmt356.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
-       q8HITi6U010788; Mon, 17 Sep 2012 13:29:44 -0500
-Received: from phenom.dumpdata.com (/50.195.21.189)
-       by default (Oracle Beehive Gateway v4.0)
-       with ESMTP ; Mon, 17 Sep 2012 11:29:44 -0700
-Received: by phenom.dumpdata.com (Postfix, from userid 1000)
-       id 46CBF402B4; Mon, 17 Sep 2012 14:18:58 -0400 (EDT)
-Date: Mon, 17 Sep 2012 14:18:58 -0400
-From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-To: William Dauchy <wdauchy@gmail.com>
-Message-ID: <20120917181858.GA17720@phenom.dumpdata.com>
-References: <1345133009-21941-1-git-send-email-konrad.wilk@oracle.com>
-       <1345133009-21941-12-git-send-email-konrad.wilk@oracle.com>
-       <CAJ75kXYG3uPmMhUwB9ivHt0w5gm14aqAynSWQwooWg65xLTzPw@mail.gmail.com>
-MIME-Version: 1.0
-Content-Disposition: inline
-In-Reply-To: <CAJ75kXYG3uPmMhUwB9ivHt0w5gm14aqAynSWQwooWg65xLTzPw@mail.gmail.com>
-User-Agent: Mutt/1.5.21 (2010-09-15)
-X-Source-IP: ucsinet21.oracle.com [156.151.31.93]
-Cc: xen-devel@lists.xensource.com, linux-kernel@vger.kernel.org
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.7 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 11/11] xen/mmu: Release just the MFN list,
- not MFN list and part of pagetables.
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Mon, Sep 17, 2012 at 08:06:26PM +0200, William Dauchy wrote:
-> Hello Konrad,
-> 
-> On Thu, Aug 16, 2012 at 6:03 PM, Konrad Rzeszutek Wilk
-> <konrad.wilk@oracle.com> wrote:
-> > (XEN) mm.c:908:d0 Error getting mfn 116a83 (pfn 14e2a) from L1 entry 8000000116a83067 for l1e_owner=0, pg_owner=0
-> > (XEN) mm.c:908:d0 Error getting mfn 4040 (pfn 5555555555555555) from L1 entry 0000000004040601 for l1e_owner=0, pg_owner=0
-> 
-> This is something I also have on my 3.4.x branch. Since then mmu.c has
-> change a lot; is there an easy fix to make a backport for 3.4.x?
-
-Uhh, can you open a new email thread with the error you are seeing and
-please include the full serial log along with dmidecode pls?
-
-> 
-> -- 
-> William
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<20120921121659.5a723de9@mantra.us.oracle.com> b/test/corpus/<20120921121659.5a723de9@mantra.us.oracle.com>
deleted file mode 100644 (file)
index 7e7f82e..0000000
+++ /dev/null
@@ -1,306 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Sep 21 20:20:38 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 21 Sep 2012 20:20:38 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TF8m7-0003nq-Rb
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 21 Sep 2012 20:20:38 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TF8iu-0002wG-0s; Fri, 21 Sep 2012 19:17:12 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <mukesh.rathor@oracle.com>) id 1TF8is-0002w5-Ui
-       for Xen-devel@lists.xensource.com; Fri, 21 Sep 2012 19:17:11 +0000
-Received: from [85.158.139.211:45311] by server-15.bemta-5.messagelabs.com id
-       EB/3F-23541-63DBC505; Fri, 21 Sep 2012 19:17:10 +0000
-X-Env-Sender: mukesh.rathor@oracle.com
-X-Msg-Ref: server-11.tower-206.messagelabs.com!1348255028!19508578!1
-X-Originating-IP: [148.87.113.117]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogMTQ4Ljg3LjExMy4xMTcgPT4gNzU2MzI0\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 9730 invoked from network); 21 Sep 2012 19:17:09 -0000
-Received: from rcsinet15.oracle.com (HELO rcsinet15.oracle.com)
-       (148.87.113.117)
-       by server-11.tower-206.messagelabs.com with DHE-RSA-AES256-SHA
-       encrypted SMTP; 21 Sep 2012 19:17:09 -0000
-Received: from ucsinet22.oracle.com (ucsinet22.oracle.com [156.151.31.94])
-       by rcsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
-       ESMTP id q8LJH3mQ007248
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
-       Fri, 21 Sep 2012 19:17:04 GMT
-Received: from acsmt356.oracle.com (acsmt356.oracle.com [141.146.40.156])
-       by ucsinet22.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
-       q8LJH38J021437
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
-       Fri, 21 Sep 2012 19:17:03 GMT
-Received: from abhmt109.oracle.com (abhmt109.oracle.com [141.146.116.61])
-       by acsmt356.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
-       q8LJH26d009412; Fri, 21 Sep 2012 14:17:02 -0500
-Received: from mantra.us.oracle.com (/130.35.68.95)
-       by default (Oracle Beehive Gateway v4.0)
-       with ESMTP ; Fri, 21 Sep 2012 12:17:02 -0700
-Date: Fri, 21 Sep 2012 12:16:59 -0700
-From: Mukesh Rathor <mukesh.rathor@oracle.com>
-To: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
-       "Xen-devel@lists.xensource.com" <Xen-devel@lists.xensource.com>,
-       Ian Campbell <Ian.Campbell@citrix.com>, "stefano.stabellini@eu.citrix.com"
-       <stefano.stabellini@eu.citrix.com>
-Message-ID: <20120921121659.5a723de9@mantra.us.oracle.com>
-Organization: Oracle Corporation
-X-Mailer: Claws Mail 3.7.6 (GTK+ 2.18.9; x86_64-redhat-linux-gnu)
-Mime-Version: 1.0
-X-Source-IP: ucsinet22.oracle.com [156.151.31.94]
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.7 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: [Xen-devel] [PATCH v1 3/8]: PVH startup changes (enlighten.c)
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-       
----
- arch/x86/xen/enlighten.c |   99 ++++++++++++++++++++++++++++++++++++---------
- 1 files changed, 79 insertions(+), 20 deletions(-)
-
-diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c
-index bf4bda6..98f1798 100644
---- a/arch/x86/xen/enlighten.c
-+++ b/arch/x86/xen/enlighten.c
-@@ -45,6 +45,7 @@
- #include <xen/hvm.h>
- #include <xen/hvc-console.h>
- #include <xen/acpi.h>
-+#include <xen/features.h>
- #include <asm/paravirt.h>
- #include <asm/apic.h>
-@@ -105,6 +106,9 @@ RESERVE_BRK(shared_info_page_brk, PAGE_SIZE);
- __read_mostly int xen_have_vector_callback;
- EXPORT_SYMBOL_GPL(xen_have_vector_callback);
-+#define xen_pvh_domain() (xen_pv_domain() && \
-+                        xen_feature(XENFEAT_auto_translated_physmap) && \
-+                        xen_have_vector_callback)
- /*
-  * Point at some empty memory to start with. We map the real shared_info
-  * page as soon as fixmap is up and running.
-@@ -139,6 +143,8 @@ struct tls_descs {
-  */
- static DEFINE_PER_CPU(struct tls_descs, shadow_tls_desc);
-+static void __init xen_hvm_init_shared_info(void);
-+
- static void clamp_max_cpus(void)
- {
- #ifdef CONFIG_SMP
-@@ -217,8 +223,9 @@ static void __init xen_banner(void)
-       struct xen_extraversion extra;
-       HYPERVISOR_xen_version(XENVER_extraversion, &extra);
--      printk(KERN_INFO "Booting paravirtualized kernel on %s\n",
--             pv_info.name);
-+      printk(KERN_INFO "Booting paravirtualized kernel %son %s\n",
-+              xen_feature(XENFEAT_auto_translated_physmap) ?
-+                      "with PVH extensions " : "", pv_info.name);
-       printk(KERN_INFO "Xen version: %d.%d%s%s\n",
-              version >> 16, version & 0xffff, extra.extraversion,
-              xen_feature(XENFEAT_mmu_pt_update_preserve_ad) ? " (preserve-AD)" : "");
-@@ -271,12 +278,15 @@ static void xen_cpuid(unsigned int *ax, unsigned int *bx,
-               break;
-       }
--      asm(XEN_EMULATE_PREFIX "cpuid"
--              : "=a" (*ax),
--                "=b" (*bx),
--                "=c" (*cx),
--                "=d" (*dx)
--              : "0" (*ax), "2" (*cx));
-+      if (xen_pvh_domain())
-+              native_cpuid(ax, bx, cx, dx);
-+      else
-+              asm(XEN_EMULATE_PREFIX "cpuid"
-+                      : "=a" (*ax),
-+                      "=b" (*bx),
-+                      "=c" (*cx),
-+                      "=d" (*dx)
-+                      : "0" (*ax), "2" (*cx));
-       *bx &= maskebx;
-       *cx &= maskecx;
-@@ -1034,6 +1044,10 @@ static int xen_write_msr_safe(unsigned int msr, unsigned low, unsigned high)
- void xen_setup_shared_info(void)
- {
-+      /* do later in xen_pvh_guest_init() when extend_brk is properly setup*/
-+      if (xen_pvh_domain() && xen_initial_domain())
-+              return;
-+
-       if (!xen_feature(XENFEAT_auto_translated_physmap)) {
-               set_fixmap(FIX_PARAVIRT_BOOTMAP,
-                          xen_start_info->shared_info);
-@@ -1044,6 +1058,10 @@ void xen_setup_shared_info(void)
-               HYPERVISOR_shared_info =
-                       (struct shared_info *)__va(xen_start_info->shared_info);
-+      /* PVH TBD/FIXME: vcpu info placement in phase 2 */
-+      if (xen_pvh_domain())
-+              return;
-+
- #ifndef CONFIG_SMP
-       /* In UP this is as good a place as any to set up shared info */
-       xen_setup_vcpu_info_placement();
-@@ -1274,6 +1292,11 @@ static const struct machine_ops xen_machine_ops __initconst = {
-  */
- static void __init xen_setup_stackprotector(void)
- {
-+      /* PVH TBD/FIXME: investigate setup_stack_canary_segment */
-+      if (xen_feature(XENFEAT_auto_translated_physmap)) {
-+              switch_to_new_gdt(0);
-+              return;
-+      }
-       pv_cpu_ops.write_gdt_entry = xen_write_gdt_entry_boot;
-       pv_cpu_ops.load_gdt = xen_load_gdt_boot;
-@@ -1284,6 +1307,31 @@ static void __init xen_setup_stackprotector(void)
-       pv_cpu_ops.load_gdt = xen_load_gdt;
- }
-+static void __init xen_pvh_guest_init(void)
-+{
-+      /* PVH TBD/FIXME: for now just disable this. */
-+      have_vcpu_info_placement = 0;
-+
-+        /* for domU, the library sets start_info.shared_info to pfn, but for
-+         * dom0, it contains mfn. we need to get the pfn for shared_info. PVH
-+       * uses HVM code in many places */
-+      if (xen_initial_domain())
-+              xen_hvm_init_shared_info();
-+}
-+
-+static void __init xen_pvh_early_guest_init(void)
-+{
-+      if (xen_feature(XENFEAT_hvm_callback_vector))
-+              xen_have_vector_callback = 1;
-+
-+#ifdef CONFIG_X86_32
-+      if (xen_feature(XENFEAT_auto_translated_physmap)) {
-+              xen_raw_printk("ERROR: 32bit PVH guests are not supported\n");
-+              BUG();
-+      }
-+#endif
-+}
-+
- /* First C function to be called on Xen boot */
- asmlinkage void __init xen_start_kernel(void)
- {
-@@ -1296,13 +1344,18 @@ asmlinkage void __init xen_start_kernel(void)
-       xen_domain_type = XEN_PV_DOMAIN;
-+      xen_setup_features();
-+      xen_pvh_early_guest_init();
-       xen_setup_machphys_mapping();
-       /* Install Xen paravirt ops */
-       pv_info = xen_info;
-       pv_init_ops = xen_init_ops;
--      pv_cpu_ops = xen_cpu_ops;
-       pv_apic_ops = xen_apic_ops;
-+      if (xen_pvh_domain())
-+              pv_cpu_ops.cpuid = xen_cpuid;
-+      else
-+              pv_cpu_ops = xen_cpu_ops;
-       x86_init.resources.memory_setup = xen_memory_setup;
-       x86_init.oem.arch_setup = xen_arch_setup;
-@@ -1334,8 +1387,6 @@ asmlinkage void __init xen_start_kernel(void)
-       /* Work out if we support NX */
-       x86_configure_nx();
--      xen_setup_features();
--
-       /* Get mfn list */
-       if (!xen_feature(XENFEAT_auto_translated_physmap))
-               xen_build_dynamic_phys_to_machine();
-@@ -1408,14 +1459,18 @@ asmlinkage void __init xen_start_kernel(void)
-       /* set the limit of our address space */
-       xen_reserve_top();
--      /* We used to do this in xen_arch_setup, but that is too late on AMD
--       * were early_cpu_init (run before ->arch_setup()) calls early_amd_init
--       * which pokes 0xcf8 port.
--       */
--      set_iopl.iopl = 1;
--      rc = HYPERVISOR_physdev_op(PHYSDEVOP_set_iopl, &set_iopl);
--      if (rc != 0)
--              xen_raw_printk("physdev_op failed %d\n", rc);
-+      /* PVH: runs at default kernel iopl of 0 */
-+      if (!xen_pvh_domain()) {
-+              /*
-+               * We used to do this in xen_arch_setup, but that is too late
-+               * on AMD were early_cpu_init (run before ->arch_setup()) calls
-+               * early_amd_init which pokes 0xcf8 port.
-+               */
-+              set_iopl.iopl = 1;
-+              rc = HYPERVISOR_physdev_op(PHYSDEVOP_set_iopl, &set_iopl);
-+              if (rc != 0)
-+                      xen_raw_printk("physdev_op failed %d\n", rc);
-+      }
- #ifdef CONFIG_X86_32
-       /* set up basic CPUID stuff */
-@@ -1462,6 +1517,9 @@ asmlinkage void __init xen_start_kernel(void)
-       xen_setup_runstate_info(0);
-+      if (xen_pvh_domain())
-+              xen_pvh_guest_init();
-+
-       /* Start the world */
- #ifdef CONFIG_X86_32
-       i386_start_kernel();
-@@ -1585,7 +1643,8 @@ static struct syscore_ops xen_hvm_syscore_ops = {
- };
- #endif
--/* Use a pfn in RAM, may move to MMIO before kexec. */
-+/* Use a pfn in RAM, may move to MMIO before kexec.
-+ * This function also called for PVH dom0 */
- static void __init xen_hvm_init_shared_info(void)
- {
-       /* Remember pointer for resume */
--- 
-1.7.2.3
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<20120924154335.097d3fb9@mantra.us.oracle.com> b/test/corpus/<20120924154335.097d3fb9@mantra.us.oracle.com>
deleted file mode 100644 (file)
index dd6c6c4..0000000
+++ /dev/null
@@ -1,176 +0,0 @@
-From xen-devel-bounces@lists.xen.org Mon Sep 24 23:48:50 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Mon, 24 Sep 2012 23:48:50 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TGHSJ-0004KF-Kl
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Mon, 24 Sep 2012 23:48:50 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TGHNX-00052D-Nj; Mon, 24 Sep 2012 22:43:51 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <mukesh.rathor@oracle.com>) id 1TGHNV-000528-St
-       for Xen-devel@lists.xensource.com; Mon, 24 Sep 2012 22:43:50 +0000
-Received: from [85.158.138.51:47683] by server-14.bemta-3.messagelabs.com id
-       A5/CA-21431-522E0605; Mon, 24 Sep 2012 22:43:49 +0000
-X-Env-Sender: mukesh.rathor@oracle.com
-X-Msg-Ref: server-9.tower-174.messagelabs.com!1348526626!30122946!1
-X-Originating-IP: [141.146.126.227]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogMTQxLjE0Ni4xMjYuMjI3ID0+IDc2OTcxMA==\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 32088 invoked from network); 24 Sep 2012 22:43:48 -0000
-Received: from acsinet15.oracle.com (HELO acsinet15.oracle.com)
-       (141.146.126.227)
-       by server-9.tower-174.messagelabs.com with DHE-RSA-AES256-SHA encrypted
-       SMTP; 24 Sep 2012 22:43:48 -0000
-Received: from ucsinet21.oracle.com (ucsinet21.oracle.com [156.151.31.93])
-       by acsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
-       ESMTP id q8OMhcfC030417
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
-       Mon, 24 Sep 2012 22:43:39 GMT
-Received: from acsmt357.oracle.com (acsmt357.oracle.com [141.146.40.157])
-       by ucsinet21.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
-       q8OMhbIl028830
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
-       Mon, 24 Sep 2012 22:43:38 GMT
-Received: from abhmt117.oracle.com (abhmt117.oracle.com [141.146.116.69])
-       by acsmt357.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
-       q8OMha90015094; Mon, 24 Sep 2012 17:43:36 -0500
-Received: from mantra.us.oracle.com (/130.35.68.95)
-       by default (Oracle Beehive Gateway v4.0)
-       with ESMTP ; Mon, 24 Sep 2012 15:43:36 -0700
-Date: Mon, 24 Sep 2012 15:43:35 -0700
-From: Mukesh Rathor <mukesh.rathor@oracle.com>
-To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-Message-ID: <20120924154335.097d3fb9@mantra.us.oracle.com>
-In-Reply-To: <alpine.DEB.2.02.1209241257440.29232@kaball.uk.xensource.com>
-References: <20120921121659.5a723de9@mantra.us.oracle.com>
-       <alpine.DEB.2.02.1209241257440.29232@kaball.uk.xensource.com>
-Organization: Oracle Corporation
-X-Mailer: Claws Mail 3.7.6 (GTK+ 2.18.9; x86_64-redhat-linux-gnu)
-Mime-Version: 1.0
-X-Source-IP: ucsinet21.oracle.com [156.151.31.93]
-Cc: "Xen-devel@lists.xensource.com" <Xen-devel@lists.xensource.com>,
-       Ian Campbell <Ian.Campbell@citrix.com>,
-       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-5.0 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH v1 3/8]: PVH startup changes (enlighten.c)
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Mon, 24 Sep 2012 13:07:19 +0100
-Stefano Stabellini <stefano.stabellini@eu.citrix.com> wrote:
-
-> On Fri, 21 Sep 2012, Mukesh Rathor wrote:
-> > ---
-> >  arch/x86/xen/enlighten.c |   99
-> > ++++++++++++++++++++++++++++++++++++--------- 1 files changed, 79
-> > insertions(+), 20 deletions(-)
-> > 
-> > +                  "with PVH extensions " : "", pv_info.name);
-> >    printk(KERN_INFO "Xen version: %d.%d%s%s\n",
-> >           version >> 16, version & 0xffff, extra.extraversion,
-> >           xen_feature(XENFEAT_mmu_pt_update_preserve_ad) ?
-> > " (preserve-AD)" : ""); @@ -271,12 +278,15 @@ static void
-> > xen_cpuid(unsigned int *ax, unsigned int *bx, break;
-> >    }
-> >  
-> > -  asm(XEN_EMULATE_PREFIX "cpuid"
-> > -          : "=a" (*ax),
-> > -            "=b" (*bx),
-> > -            "=c" (*cx),
-> > -            "=d" (*dx)
-> > -          : "0" (*ax), "2" (*cx));
-> > +  if (xen_pvh_domain())
-> > +          native_cpuid(ax, bx, cx, dx);
-> > +  else
-> > +          asm(XEN_EMULATE_PREFIX "cpuid"
-> > +                  : "=a" (*ax),
-> > +                  "=b" (*bx),
-> > +                  "=c" (*cx),
-> > +                  "=d" (*dx)
-> > +                  : "0" (*ax), "2" (*cx));
-> 
-> can't we just set the cpuid pvop to native_cpuid?
-
-We had talked about this a bit at code review. There is some massaging
-before and after that goes on, and so we thought we should just leave 
-it like that.
-
-> 
-> >    *bx &= maskebx;
-> >    *cx &= maskecx;
-> > @@ -1034,6 +1044,10 @@ static int xen_write_msr_safe(unsigned int
-> > msr, unsigned low, unsigned high) 
-> >  void xen_setup_shared_info(void)
-> >  {
-> > +  /* do later in xen_pvh_guest_init() when extend_brk is
-> > properly setup*/
-> 
-> Which one is the function that is going to get called later to do the
-> initialization? It cannot be this one because it would still return
-> immediately.
-
-xen_pvh_guest_init() just like the comment says :).
-
-
-> 
-> > +  if (xen_pvh_domain() && xen_initial_domain())
-> > +          return;
-> > +
-> >    if (!xen_feature(XENFEAT_auto_translated_physmap)) {
-> >            set_fixmap(FIX_PARAVIRT_BOOTMAP,
-> >                       xen_start_info->shared_info);
-> >
-> > @@ -1044,6 +1058,10 @@ void xen_setup_shared_info(void)
-> >            HYPERVISOR_shared_info =
-> >                    (struct shared_info
-> > *)__va(xen_start_info->shared_info); 
-> > +  /* PVH TBD/FIXME: vcpu info placement in phase 2 */
-> > +  if (xen_pvh_domain())
-> > +          return;
-> 
-> It seems that if xen_initial_domain we always skip the initialization
-> while if !xen_initial_domain we only initialize
-> HYPERVISOR_shared_info. I don't understand why we have this
-> difference.
-
-The comment in xen_pvh_guest_init() explains it. For domU the library
-maps the pfn at shared_info, ie, shared_info is pfn. For dom0, it's the
-mfn. Dom0 then allocates a pfn via extend_brk, and maps the mfn to it. This
-happens in the commond hvm code, xen_hvm_init_shared_info().
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<20120925180416.0137d61a@mantra.us.oracle.com> b/test/corpus/<20120925180416.0137d61a@mantra.us.oracle.com>
deleted file mode 100644 (file)
index 4924f78..0000000
+++ /dev/null
@@ -1,151 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Sep 26 02:08:21 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 26 Sep 2012 02:08:21 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TGg6t-0005Pi-7h
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 26 Sep 2012 02:08:21 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TGg3B-0000Pv-3Q; Wed, 26 Sep 2012 01:04:29 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <mukesh.rathor@oracle.com>) id 1TGg39-0000Po-3Y
-       for Xen-devel@lists.xensource.com; Wed, 26 Sep 2012 01:04:27 +0000
-Received: from [85.158.139.211:43297] by server-8.bemta-5.messagelabs.com id
-       C3/DC-18073-A9452605; Wed, 26 Sep 2012 01:04:26 +0000
-X-Env-Sender: mukesh.rathor@oracle.com
-X-Msg-Ref: server-5.tower-206.messagelabs.com!1348621464!19912761!1
-X-Originating-IP: [148.87.113.117]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogMTQ4Ljg3LjExMy4xMTcgPT4gNzY0MTUx\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 5599 invoked from network); 26 Sep 2012 01:04:25 -0000
-Received: from rcsinet15.oracle.com (HELO rcsinet15.oracle.com)
-       (148.87.113.117)
-       by server-5.tower-206.messagelabs.com with DHE-RSA-AES256-SHA encrypted
-       SMTP; 26 Sep 2012 01:04:25 -0000
-Received: from ucsinet22.oracle.com (ucsinet22.oracle.com [156.151.31.94])
-       by rcsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
-       ESMTP id q8Q14J2o004325
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
-       Wed, 26 Sep 2012 01:04:20 GMT
-Received: from acsmt356.oracle.com (acsmt356.oracle.com [141.146.40.156])
-       by ucsinet22.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
-       q8Q14IZj005187
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
-       Wed, 26 Sep 2012 01:04:18 GMT
-Received: from abhmt119.oracle.com (abhmt119.oracle.com [141.146.116.71])
-       by acsmt356.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
-       q8Q14IkK004900; Tue, 25 Sep 2012 20:04:18 -0500
-Received: from mantra.us.oracle.com (/130.35.68.95)
-       by default (Oracle Beehive Gateway v4.0)
-       with ESMTP ; Tue, 25 Sep 2012 18:04:17 -0700
-Date: Tue, 25 Sep 2012 18:04:16 -0700
-From: Mukesh Rathor <mukesh.rathor@oracle.com>
-To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-Message-ID: <20120925180416.0137d61a@mantra.us.oracle.com>
-In-Reply-To: <alpine.DEB.2.02.1209251054140.29232@kaball.uk.xensource.com>
-References: <20120921121659.5a723de9@mantra.us.oracle.com>
-       <alpine.DEB.2.02.1209241257440.29232@kaball.uk.xensource.com>
-       <20120924154335.097d3fb9@mantra.us.oracle.com>
-       <alpine.DEB.2.02.1209251054140.29232@kaball.uk.xensource.com>
-Organization: Oracle Corporation
-X-Mailer: Claws Mail 3.7.6 (GTK+ 2.18.9; x86_64-redhat-linux-gnu)
-Mime-Version: 1.0
-X-Source-IP: ucsinet22.oracle.com [156.151.31.94]
-Cc: "Xen-devel@lists.xensource.com" <Xen-devel@lists.xensource.com>,
-       Ian Campbell <Ian.Campbell@citrix.com>,
-       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-5.0 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH v1 3/8]: PVH startup changes (enlighten.c)
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Tue, 25 Sep 2012 11:03:13 +0100
-Stefano Stabellini <stefano.stabellini@eu.citrix.com> wrote:
-
-> On Mon, 24 Sep 2012, Mukesh Rathor wrote:
-> > On Mon, 24 Sep 2012 13:07:19 +0100
-> > Stefano Stabellini <stefano.stabellini@eu.citrix.com> wrote:
-> > 
-> > > On Fri, 21 Sep 2012, Mukesh Rathor wrote:
-> > > > +              return;
-> > > > +
-> > > >        if (!xen_feature(XENFEAT_auto_translated_physmap)) {
-> > > >                set_fixmap(FIX_PARAVIRT_BOOTMAP,
-> > > >                           xen_start_info->shared_info);
-> > > >
-> > > > @@ -1044,6 +1058,10 @@ void xen_setup_shared_info(void)
-> > > >                HYPERVISOR_shared_info =
-> > > >                        (struct shared_info
-> > > > *)__va(xen_start_info->shared_info); 
-> > > > +      /* PVH TBD/FIXME: vcpu info placement in phase 2 */
-> > > > +      if (xen_pvh_domain())
-> > > > +              return;
-> > > 
-> > > It seems that if xen_initial_domain we always skip the
-> > > initialization while if !xen_initial_domain we only initialize
-> > > HYPERVISOR_shared_info. I don't understand why we have this
-> > > difference.
-> > 
-> > The comment in xen_pvh_guest_init() explains it. For domU the
-> > library maps the pfn at shared_info, ie, shared_info is pfn. For
-> > dom0, it's the mfn. Dom0 then allocates a pfn via extend_brk, and
-> > maps the mfn to it. This happens in the commond hvm code,
-> > xen_hvm_init_shared_info().
-> 
-> This difference is really subtle, it would be nice to get rid of it.
-> Could Xen allocate a pfn for dom0?
-
-Not easily.
-
-> Otherwise could we have the tools allocate an mfn instead of a pfn?
-> In fact looking at xc_dom_x86.c, alloc_magic_pages is explicitly
-> having a different behavior for xc_dom_feature_translated guests and
-> allocates pfn instead of an mfn. Maybe we could get rid of that
-> special case: less code in libxc, a common way of allocating the
-> shared_info page for domU and dom0 => win.
-
-Wish it was simple. But for PV and PVH, domU, it's already setup the 
-shared page. All we need to do is __va(shared_info). But for HVM domUs 
-and PVH dom0, we need to hcall with pfn to get it remapped. Changing the
-tool to map pfn, would result in unnecessary hcall for all PV and PVH
-domUs. It's only two lines of code, so lets just leave it. I'll make the
-comment better.
-
-
-thx,
-Mukesh
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<20121002183619.70734b7a@mantra.us.oracle.com> b/test/corpus/<20121002183619.70734b7a@mantra.us.oracle.com>
deleted file mode 100644 (file)
index df5aa9c..0000000
+++ /dev/null
@@ -1,143 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Oct 03 02:42:05 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 03 Oct 2012 02:42:05 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TJDyN-0008Bk-3o
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 03 Oct 2012 02:42:05 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TJDt6-0006wX-Pn; Wed, 03 Oct 2012 01:36:36 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <mukesh.rathor@oracle.com>) id 1TJDt4-0006wS-Pv
-       for Xen-devel@lists.xensource.com; Wed, 03 Oct 2012 01:36:34 +0000
-Received: from [85.158.143.35:29755] by server-2.bemta-4.messagelabs.com id
-       61/23-06610-2A69B605; Wed, 03 Oct 2012 01:36:34 +0000
-X-Env-Sender: mukesh.rathor@oracle.com
-X-Msg-Ref: server-4.tower-21.messagelabs.com!1349228191!6324914!1
-X-Originating-IP: [141.146.126.227]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogMTQxLjE0Ni4xMjYuMjI3ID0+IDc4ODkzOA==\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 28636 invoked from network); 3 Oct 2012 01:36:33 -0000
-Received: from acsinet15.oracle.com (HELO acsinet15.oracle.com)
-       (141.146.126.227)
-       by server-4.tower-21.messagelabs.com with DHE-RSA-AES256-SHA encrypted
-       SMTP; 3 Oct 2012 01:36:33 -0000
-Received: from ucsinet21.oracle.com (ucsinet21.oracle.com [156.151.31.93])
-       by acsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
-       ESMTP id q931aN9Y018701
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
-       Wed, 3 Oct 2012 01:36:24 GMT
-Received: from acsmt356.oracle.com (acsmt356.oracle.com [141.146.40.156])
-       by ucsinet21.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
-       q931aMgc000869
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
-       Wed, 3 Oct 2012 01:36:22 GMT
-Received: from abhmt114.oracle.com (abhmt114.oracle.com [141.146.116.66])
-       by acsmt356.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
-       q931aLph032741; Tue, 2 Oct 2012 20:36:21 -0500
-Received: from mantra.us.oracle.com (/130.35.68.95)
-       by default (Oracle Beehive Gateway v4.0)
-       with ESMTP ; Tue, 02 Oct 2012 18:36:21 -0700
-Date: Tue, 2 Oct 2012 18:36:19 -0700
-From: Mukesh Rathor <mukesh.rathor@oracle.com>
-To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-Message-ID: <20121002183619.70734b7a@mantra.us.oracle.com>
-In-Reply-To: <alpine.DEB.2.02.1209261225340.29232@kaball.uk.xensource.com>
-References: <20120921121659.5a723de9@mantra.us.oracle.com>
-       <alpine.DEB.2.02.1209241257440.29232@kaball.uk.xensource.com>
-       <20120924154335.097d3fb9@mantra.us.oracle.com>
-       <alpine.DEB.2.02.1209251054140.29232@kaball.uk.xensource.com>
-       <20120925180416.0137d61a@mantra.us.oracle.com>
-       <alpine.DEB.2.02.1209261225340.29232@kaball.uk.xensource.com>
-Organization: Oracle Corporation
-X-Mailer: Claws Mail 3.7.6 (GTK+ 2.18.9; x86_64-redhat-linux-gnu)
-Mime-Version: 1.0
-X-Source-IP: ucsinet21.oracle.com [156.151.31.93]
-Cc: "Xen-devel@lists.xensource.com" <Xen-devel@lists.xensource.com>,
-       Ian Campbell <Ian.Campbell@citrix.com>,
-       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH v1 3/8]: PVH startup changes (enlighten.c)
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Wed, 26 Sep 2012 12:33:39 +0100
-Stefano Stabellini <stefano.stabellini@eu.citrix.com> wrote:
-
-> > Wish it was simple. But for PV and PVH, domU, it's already setup
-> > the shared page. All we need to do is __va(shared_info). But for
-> > HVM domUs and PVH dom0, we need to hcall with pfn to get it
-> > remapped.
-> 
-> For PVH domU is already setup as a pfn only because in
-> tools/libxc/xc_dom_x86.c:alloc_magic_pages we have this code:
-> 
->     if ( xc_dom_feature_translated(dom) )
->         dom->shared_info_pfn = xc_dom_alloc_page(dom, "shared info");
-> 
-> and in tools/libxc/xc_dom_x86.c:start_info_x86_64 we have:
-> 
->     xen_pfn_t shinfo =
->         xc_dom_feature_translated(dom) ? dom->shared_info_pfn : dom->
->         shared_info_mfn;
-> 
-> if we simply get rid of the two "if xc_dom_feature_translated(dom)"
-> wouldn't we get an mfn for PVH domU too? AFAICT all the other cases
-> would remain unmodified, but PVH domU would start getting an mfn for
-> shared_info.
-> 
-> > Changing the
-> > tool to map pfn, would result in unnecessary hcall for all PV and
-> > PVH domUs. It's only two lines of code, so lets just leave it. I'll
-> > make the comment better.
-> 
-> Yes, there would be one more unnecessary hypercall but we would get
-> rid of 4 "if". I think is a good trade off.
-
-Well, not really unfortunately! There are two fields in the library 
-shared_info_mfn and shared_info_pfn in struct xc_dom_image. For
-xlated, pfn is set, otherwise, mfn is set. If I set mfn for auto 
-xlated also, I end up changing/adding  more code in the library where
-it tries to map the shared page. Moreover, it's better to stick with the
-library assumption that for auto xlated, pfn is set, otherwise,
-mfn is set.
-
-Hope that makes sense. I tried it, btw.
-
-thanks,
-Mukesh
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<20121002190323.2e16f6ff@mantra.us.oracle.com> b/test/corpus/<20121002190323.2e16f6ff@mantra.us.oracle.com>
deleted file mode 100644 (file)
index f1aa568..0000000
+++ /dev/null
@@ -1,156 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Oct 03 03:09:27 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 03 Oct 2012 03:09:27 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TJEOq-0008DM-Fk
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 03 Oct 2012 03:09:27 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TJEJF-0007VK-5r; Wed, 03 Oct 2012 02:03:37 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <mukesh.rathor@oracle.com>) id 1TJEJC-0007VF-Pi
-       for Xen-devel@lists.xensource.com; Wed, 03 Oct 2012 02:03:34 +0000
-Received: from [85.158.143.99:13157] by server-3.bemta-4.messagelabs.com id
-       EA/C3-10986-5FC9B605; Wed, 03 Oct 2012 02:03:33 +0000
-X-Env-Sender: mukesh.rathor@oracle.com
-X-Msg-Ref: server-10.tower-216.messagelabs.com!1349229812!26192144!1
-X-Originating-IP: [141.146.126.227]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogMTQxLjE0Ni4xMjYuMjI3ID0+IDc4ODkzOA==\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 6008 invoked from network); 3 Oct 2012 02:03:33 -0000
-Received: from acsinet15.oracle.com (HELO acsinet15.oracle.com)
-       (141.146.126.227)
-       by server-10.tower-216.messagelabs.com with DHE-RSA-AES256-SHA
-       encrypted SMTP; 3 Oct 2012 02:03:33 -0000
-Received: from ucsinet21.oracle.com (ucsinet21.oracle.com [156.151.31.93])
-       by acsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
-       ESMTP id q9323QLG001206
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
-       Wed, 3 Oct 2012 02:03:27 GMT
-Received: from acsmt356.oracle.com (acsmt356.oracle.com [141.146.40.156])
-       by ucsinet21.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
-       q9323PS0000835
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
-       Wed, 3 Oct 2012 02:03:26 GMT
-Received: from abhmt108.oracle.com (abhmt108.oracle.com [141.146.116.60])
-       by acsmt356.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
-       q9323OF2012815; Tue, 2 Oct 2012 21:03:24 -0500
-Received: from mantra.us.oracle.com (/130.35.68.95)
-       by default (Oracle Beehive Gateway v4.0)
-       with ESMTP ; Tue, 02 Oct 2012 19:03:24 -0700
-Date: Tue, 2 Oct 2012 19:03:23 -0700
-From: Mukesh Rathor <mukesh.rathor@oracle.com>
-To: Mukesh Rathor <mukesh.rathor@oracle.com>
-Message-ID: <20121002190323.2e16f6ff@mantra.us.oracle.com>
-In-Reply-To: <20121002183619.70734b7a@mantra.us.oracle.com>
-References: <20120921121659.5a723de9@mantra.us.oracle.com>
-       <alpine.DEB.2.02.1209241257440.29232@kaball.uk.xensource.com>
-       <20120924154335.097d3fb9@mantra.us.oracle.com>
-       <alpine.DEB.2.02.1209251054140.29232@kaball.uk.xensource.com>
-       <20120925180416.0137d61a@mantra.us.oracle.com>
-       <alpine.DEB.2.02.1209261225340.29232@kaball.uk.xensource.com>
-       <20121002183619.70734b7a@mantra.us.oracle.com>
-Organization: Oracle Corporation
-X-Mailer: Claws Mail 3.7.6 (GTK+ 2.18.9; x86_64-redhat-linux-gnu)
-Mime-Version: 1.0
-X-Source-IP: ucsinet21.oracle.com [156.151.31.93]
-Cc: "Xen-devel@lists.xensource.com" <Xen-devel@lists.xensource.com>,
-       Ian Campbell <Ian.Campbell@citrix.com>,
-       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
-       Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH v1 3/8]: PVH startup changes (enlighten.c)
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Tue, 2 Oct 2012 18:36:19 -0700
-Mukesh Rathor <mukesh.rathor@oracle.com> wrote:
-
-> On Wed, 26 Sep 2012 12:33:39 +0100
-> Stefano Stabellini <stefano.stabellini@eu.citrix.com> wrote:
-> 
-> > > Wish it was simple. But for PV and PVH, domU, it's already setup
-> > > the shared page. All we need to do is __va(shared_info). But for
-> > > HVM domUs and PVH dom0, we need to hcall with pfn to get it
-> > > remapped.
-> > 
-> > For PVH domU is already setup as a pfn only because in
-> > tools/libxc/xc_dom_x86.c:alloc_magic_pages we have this code:
-> > 
-> >     if ( xc_dom_feature_translated(dom) )
-> >         dom->shared_info_pfn = xc_dom_alloc_page(dom, "shared
-> > info");
-> > 
-> > and in tools/libxc/xc_dom_x86.c:start_info_x86_64 we have:
-> > 
-> >     xen_pfn_t shinfo =
-> >         xc_dom_feature_translated(dom) ? dom->shared_info_pfn :
-> > dom-> shared_info_mfn;
-> > 
-> > if we simply get rid of the two "if xc_dom_feature_translated(dom)"
-> > wouldn't we get an mfn for PVH domU too? AFAICT all the other cases
-> > would remain unmodified, but PVH domU would start getting an mfn for
-> > shared_info.
-> > 
-> > > Changing the
-> > > tool to map pfn, would result in unnecessary hcall for all PV and
-> > > PVH domUs. It's only two lines of code, so lets just leave it.
-> > > I'll make the comment better.
-> > 
-> > Yes, there would be one more unnecessary hypercall but we would get
-> > rid of 4 "if". I think is a good trade off.
-> 
-> Well, not really unfortunately! There are two fields in the library 
-> shared_info_mfn and shared_info_pfn in struct xc_dom_image. For
-> xlated, pfn is set, otherwise, mfn is set. If I set mfn for auto 
-> xlated also, I end up changing/adding  more code in the library where
-> it tries to map the shared page. Moreover, it's better to stick with
-> the library assumption that for auto xlated, pfn is set, otherwise,
-> mfn is set.
-> 
-> Hope that makes sense. I tried it, btw.
-> 
-
-I'm not able to make a quick change to xen to just put pfn for dom0
-also. get_gpfn_from_mfn() is crashing. So for now, how about, lets go
-with what I've got. I'll make a note, and when I do xen patch, I'll
-figure it out, and would be a very small linux patch. I want to get
-linux patch in soon before the window closes.
-
-thanks
-Mukesh
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<20121002200837.GB668@phenom.dumpdata.com> b/test/corpus/<20121002200837.GB668@phenom.dumpdata.com>
deleted file mode 100644 (file)
index ccc5e4c..0000000
+++ /dev/null
@@ -1,163 +0,0 @@
-From xen-devel-bounces@lists.xen.org Tue Oct 02 21:24:21 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Tue, 02 Oct 2012 21:24:21 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TJ90r-0007Q4-5p
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 02 Oct 2012 21:24:20 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TJ8x7-0008FC-49; Tue, 02 Oct 2012 20:20:25 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <konrad.wilk@oracle.com>) id 1TJ8x5-0008F4-3O
-       for xen-devel@lists.xen.org; Tue, 02 Oct 2012 20:20:23 +0000
-Received: from [85.158.143.99:9151] by server-1.bemta-4.messagelabs.com id
-       97/CE-05684-68C4B605; Tue, 02 Oct 2012 20:20:22 +0000
-X-Env-Sender: konrad.wilk@oracle.com
-X-Msg-Ref: server-2.tower-216.messagelabs.com!1349209220!24420530!1
-X-Originating-IP: [141.146.126.227]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogMTQxLjE0Ni4xMjYuMjI3ID0+IDc4Nzc1OQ==\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 28221 invoked from network); 2 Oct 2012 20:20:21 -0000
-Received: from acsinet15.oracle.com (HELO acsinet15.oracle.com)
-       (141.146.126.227)
-       by server-2.tower-216.messagelabs.com with DHE-RSA-AES256-SHA encrypted
-       SMTP; 2 Oct 2012 20:20:21 -0000
-Received: from acsinet21.oracle.com (acsinet21.oracle.com [141.146.126.237])
-       by acsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
-       ESMTP id q92KK8CT022309
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
-       Tue, 2 Oct 2012 20:20:09 GMT
-Received: from acsmt356.oracle.com (acsmt356.oracle.com [141.146.40.156])
-       by acsinet21.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
-       q92KK6bT016236
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
-       Tue, 2 Oct 2012 20:20:06 GMT
-Received: from abhmt110.oracle.com (abhmt110.oracle.com [141.146.116.62])
-       by acsmt356.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
-       q92KK2JM021461; Tue, 2 Oct 2012 15:20:02 -0500
-Received: from phenom.dumpdata.com (/50.195.21.189)
-       by default (Oracle Beehive Gateway v4.0)
-       with ESMTP ; Tue, 02 Oct 2012 13:20:02 -0700
-Received: by phenom.dumpdata.com (Postfix, from userid 1000)
-       id 841E94032D; Tue,  2 Oct 2012 16:08:37 -0400 (EDT)
-Date: Tue, 2 Oct 2012 16:08:37 -0400
-From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-To: Jeremy Fitzhardinge <jeremy@goop.org>
-Message-ID: <20121002200837.GB668@phenom.dumpdata.com>
-References: <7914B38A4445B34AA16EB9F1352942F1012F0F6F4B98@SJCPMAILBOX01.citrite.net>
-       <CC681CDD.3D966%keir.xen@gmail.com>
-       <40501859.20120902104331@eikelenboom.it>
-       <5044849002000078000982EA@nat28.tlf.novell.com>
-       <4610648186.20120904090841@eikelenboom.it>
-       <5045CDF302000078000985FB@nat28.tlf.novell.com>
-       <4710608674.20120904101330@eikelenboom.it>
-       <505AEB2D020000780009C81F@nat28.tlf.novell.com>
-       <50661622.5030302@goop.org>
-MIME-Version: 1.0
-Content-Disposition: inline
-In-Reply-To: <50661622.5030302@goop.org>
-User-Agent: Mutt/1.5.21 (2010-09-15)
-X-Source-IP: acsinet21.oracle.com [141.146.126.237]
-Cc: ehabkost@redhat.com, "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
-       "wei.wang2@amd.com" <wei.wang2@amd.com>,
-       Sander Eikelenboom <linux@eikelenboom.it>, Jan Beulich <JBeulich@suse.com>,
-       Keir Fraser <keir.xen@gmail.com>, Santosh Jodh <Santosh.Jodh@citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] Using debug-key 'o:  Dump IOMMU p2m table,
- locks up machine
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Fri, Sep 28, 2012 at 02:26:58PM -0700, Jeremy Fitzhardinge wrote:
-> On 09/20/2012 01:08 AM, Jan Beulich wrote:
-> > Ping?
-> 
-> I've been meaning to work up a reply, but I haven't had time to swap in
-> all the context again.
-
-You would remember most of it. Perhaps that was what was saved at that
-point of time and we did not need to restore/save other registers?
-
-> 
->     J
-> 
-> >
-> >>>> On 04.09.12 at 11:26, Jan Beulich wrote:
-> >>>>> On 04.09.12 at 10:13, Sander Eikelenboom <linux@eikelenboom.it> wrote:
-> >>> Hmm don't know how to get the file/line, only thing i have found is:
-> >>>
-> >>> serveerstertje:/boot# gdb xen-syms-4.2.0-rc4-pre
-> >>> GNU gdb (GDB) 7.0.1-debian
-> >>> Copyright (C) 2009 Free Software Foundation, Inc.
-> >>> License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
-> >>> This is free software: you are free to change and redistribute it.
-> >>> There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
-> >>> and "show warranty" for details.
-> >>> This GDB was configured as "x86_64-linux-gnu".
-> >>> For bug reporting instructions, please see:
-> >>> <http://www.gnu.org/software/gdb/bugs/>...
-> >>> Reading symbols from /boot/xen-syms-4.2.0-rc4-pre...done.
-> >>> (gdb) x/i 0xffff82c48015c9ee
-> >>> 0xffff82c48015c9ee <context_switch+916>:        mov    %edx,%gs
-> >>> (gdb)
-> >> I'm not really a gdb expert, so I don't know off the top of my
-> >> head either. I thought I said in a previous reply that people
-> >> generally appear to use the addr2line utility for that purpose.
-> >>
-> >> But the disassembly already tells us where precisely the
-> >> problem is: The selector value (0x0063) attempted to be put
-> >> into %gs is apparently wrong in the context of the current
-> >> GDT. Now, that's GDT_ENTRY_TLS_MIN on the Linux side,
-> >> and ought to be valid. I'm surprised the guest (and the current
-> >> process in it) survives this (as the failure here results in a failsafe
-> >> callback into the guest).
-> >>
-> >> Looking at the Linux side of things, this has been that way
-> >> forever, and I think has always been broken: On x86-64, it
-> >> should also clear %gs here (since 32-bit processes use it for
-> >> their TLS, and there's nothing wrong for a 64-bit process to put
-> >> something in there either), albeit not via loadsegment(), but
-> >> through xen_load_gs_index(). And I neither see why on 32-bit
-> >> it only clears %gs - %fs can as much hold a selector that might
-> >> get invalidated with the TLS descriptor updates. Eduardo,
-> >> Jeremy, Konrad?
-> >>
-> >> Jan
-> >>
-> >
-> >
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<20121002200907.GC668@phenom.dumpdata.com> b/test/corpus/<20121002200907.GC668@phenom.dumpdata.com>
deleted file mode 100644 (file)
index ecbe13e..0000000
+++ /dev/null
@@ -1,150 +0,0 @@
-From xen-devel-bounces@lists.xen.org Tue Oct 02 21:24:37 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Tue, 02 Oct 2012 21:24:37 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TJ918-0007QM-4L
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 02 Oct 2012 21:24:37 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TJ8xS-0008HP-Gi; Tue, 02 Oct 2012 20:20:46 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <konrad.wilk@oracle.com>) id 1TJ8xQ-0008HA-Oj
-       for xen-devel@lists.xen.org; Tue, 02 Oct 2012 20:20:45 +0000
-Received: from [85.158.139.211:37572] by server-5.bemta-5.messagelabs.com id
-       34/C1-21075-C9C4B605; Tue, 02 Oct 2012 20:20:44 +0000
-X-Env-Sender: konrad.wilk@oracle.com
-X-Msg-Ref: server-11.tower-206.messagelabs.com!1349209241!20823222!1
-X-Originating-IP: [141.146.126.227]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogMTQxLjE0Ni4xMjYuMjI3ID0+IDc4Nzc1OQ==\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 21347 invoked from network); 2 Oct 2012 20:20:43 -0000
-Received: from acsinet15.oracle.com (HELO acsinet15.oracle.com)
-       (141.146.126.227)
-       by server-11.tower-206.messagelabs.com with DHE-RSA-AES256-SHA
-       encrypted SMTP; 2 Oct 2012 20:20:43 -0000
-Received: from ucsinet21.oracle.com (ucsinet21.oracle.com [156.151.31.93])
-       by acsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
-       ESMTP id q92KKY4Q022708
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
-       Tue, 2 Oct 2012 20:20:35 GMT
-Received: from acsmt356.oracle.com (acsmt356.oracle.com [141.146.40.156])
-       by ucsinet21.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
-       q92KKXJ2023249
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
-       Tue, 2 Oct 2012 20:20:33 GMT
-Received: from abhmt111.oracle.com (abhmt111.oracle.com [141.146.116.63])
-       by acsmt356.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
-       q92KKW3l021868; Tue, 2 Oct 2012 15:20:32 -0500
-Received: from phenom.dumpdata.com (/50.195.21.189)
-       by default (Oracle Beehive Gateway v4.0)
-       with ESMTP ; Tue, 02 Oct 2012 13:20:32 -0700
-Received: by phenom.dumpdata.com (Postfix, from userid 1000)
-       id CB6FF4032D; Tue,  2 Oct 2012 16:09:07 -0400 (EDT)
-Date: Tue, 2 Oct 2012 16:09:07 -0400
-From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-To: Jan Beulich <JBeulich@suse.com>
-Message-ID: <20121002200907.GC668@phenom.dumpdata.com>
-References: <7914B38A4445B34AA16EB9F1352942F1012F0F6F4B98@SJCPMAILBOX01.citrite.net>
-       <CC681CDD.3D966%keir.xen@gmail.com>
-       <40501859.20120902104331@eikelenboom.it>
-       <5044849002000078000982EA@nat28.tlf.novell.com>
-       <4610648186.20120904090841@eikelenboom.it>
-       <5045CDF302000078000985FB@nat28.tlf.novell.com>
-       <4710608674.20120904101330@eikelenboom.it>
-       <5045E55A02000078000986E4@nat28.tlf.novell.com>
-MIME-Version: 1.0
-Content-Disposition: inline
-In-Reply-To: <5045E55A02000078000986E4@nat28.tlf.novell.com>
-User-Agent: Mutt/1.5.21 (2010-09-15)
-X-Source-IP: ucsinet21.oracle.com [156.151.31.93]
-Cc: Jeremy Fitzhardinge <jeremy@goop.org>, ehabkost@redhat.com,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
-       "wei.wang2@amd.com" <wei.wang2@amd.com>,
-       Sander Eikelenboom <linux@eikelenboom.it>,
-       Keir Fraser <keir.xen@gmail.com>, Santosh Jodh <Santosh.Jodh@citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] Using debug-key 'o:  Dump IOMMU p2m table,
- locks up machine
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Tue, Sep 04, 2012 at 10:26:18AM +0100, Jan Beulich wrote:
-> >>> On 04.09.12 at 10:13, Sander Eikelenboom <linux@eikelenboom.it> wrote:
-> > Hmm don't know how to get the file/line, only thing i have found is:
-> > 
-> > serveerstertje:/boot# gdb xen-syms-4.2.0-rc4-pre
-> > GNU gdb (GDB) 7.0.1-debian
-> > Copyright (C) 2009 Free Software Foundation, Inc.
-> > License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
-> > This is free software: you are free to change and redistribute it.
-> > There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
-> > and "show warranty" for details.
-> > This GDB was configured as "x86_64-linux-gnu".
-> > For bug reporting instructions, please see:
-> > <http://www.gnu.org/software/gdb/bugs/>...
-> > Reading symbols from /boot/xen-syms-4.2.0-rc4-pre...done.
-> > (gdb) x/i 0xffff82c48015c9ee
-> > 0xffff82c48015c9ee <context_switch+916>:        mov    %edx,%gs
-> > (gdb)
-> 
-> I'm not really a gdb expert, so I don't know off the top of my
-> head either. I thought I said in a previous reply that people
-> generally appear to use the addr2line utility for that purpose.
-> 
-> But the disassembly already tells us where precisely the
-> problem is: The selector value (0x0063) attempted to be put
-> into %gs is apparently wrong in the context of the current
-> GDT. Now, that's GDT_ENTRY_TLS_MIN on the Linux side,
-> and ought to be valid. I'm surprised the guest (and the current
-> process in it) survives this (as the failure here results in a failsafe
-> callback into the guest).
-> 
-> Looking at the Linux side of things, this has been that way
-> forever, and I think has always been broken: On x86-64, it
-> should also clear %gs here (since 32-bit processes use it for
-> their TLS, and there's nothing wrong for a 64-bit process to put
-> something in there either), albeit not via loadsegment(), but
-> through xen_load_gs_index(). And I neither see why on 32-bit
-> it only clears %gs - %fs can as much hold a selector that might
-> get invalidated with the TLS descriptor updates. Eduardo,
-> Jeremy, Konrad?
-
-How is it on the SLES side? Do you set/restore all of the segment
-registers?
-> 
-> Jan
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<20121002205456.GA15862@u002268147cd4502c336d.ant.amazon.com> b/test/corpus/<20121002205456.GA15862@u002268147cd4502c336d.ant.amazon.com>
deleted file mode 100644 (file)
index 4f921c6..0000000
+++ /dev/null
@@ -1,137 +0,0 @@
-From xen-devel-bounces@lists.xen.org Tue Oct 02 21:59:49 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Tue, 02 Oct 2012 21:59:49 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TJ9ZB-0007Uu-9q
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 02 Oct 2012 21:59:49 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TJ9Uj-0000ZP-Bm; Tue, 02 Oct 2012 20:55:09 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <msw@amazon.com>) id 1TJ9Ui-0000ZH-4x
-       for xen-devel@lists.xen.org; Tue, 02 Oct 2012 20:55:08 +0000
-Received: from [85.158.139.83:30607] by server-6.bemta-5.messagelabs.com id
-       AA/12-14717-BA45B605; Tue, 02 Oct 2012 20:55:07 +0000
-X-Env-Sender: msw@amazon.com
-X-Msg-Ref: server-14.tower-182.messagelabs.com!1349211303!28842564!1
-X-Originating-IP: [207.171.178.25]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogMjA3LjE3MS4xNzguMjUgPT4gNzMyODg=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 18219 invoked from network); 2 Oct 2012 20:55:05 -0000
-Received: from smtp-fw-31001.amazon.com (HELO smtp-fw-31001.amazon.com)
-       (207.171.178.25)
-       by server-14.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
-       2 Oct 2012 20:55:05 -0000
-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
-       d=amazon.com; i=msw@amazon.com; q=dns/txt;
-       s=amazon201209; t=1349211306; x=1380747306;
-       h=date:from:to:cc:subject:message-id:references:
-       mime-version:in-reply-to;
-       bh=f+HhfuhiXyrMQShoQ7Dc5pn3Q9T4KF4kGjdv8r30jd0=;
-       b=TIc0sx12MwXHFMy3DQRVfxgYljUc6AOxpPsL/1MCDeUqvRhFyjP2u0El
-       YUz63CITVKTiUpD7sXFBreJFL7hZIJ8WPWs1CFcjxiJu+OTBOuIRWipNR
-       mCMjXnUP0gVHsxbWsj+RJDxbKRcE0Pi7iCSTjTBdw2hvrFAUKf59RRUml 0=;
-X-IronPort-AV: E=Sophos;i="4.80,524,1344211200"; d="scan'208";a="303029087"
-Received: from smtp-in-31001.sea31.amazon.com ([10.184.168.27])
-       by smtp-border-fw-out-31001.sea31.amazon.com with
-       ESMTP/TLS/DHE-RSA-AES256-SHA; 02 Oct 2012 20:55:03 +0000
-Received: from ex10-hub-9003.ant.amazon.com (ex10-hub-9003.ant.amazon.com
-       [10.185.137.132])
-       by smtp-in-31001.sea31.amazon.com (8.13.8/8.13.8) with ESMTP id
-       q92KsxEY028960
-       (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=FAIL);
-       Tue, 2 Oct 2012 20:54:59 GMT
-Received: from u002268147cd4502c336d.ant.amazon.com (10.224.80.41) by
-       ex10-hub-9003.ant.amazon.com (10.185.137.132) with Microsoft SMTP
-       Server id 14.2.247.3; Tue, 2 Oct 2012 13:54:58 -0700
-Received: by u002268147cd4502c336d.ant.amazon.com (sSMTP sendmail emulation); 
-       Tue, 02 Oct 2012 13:54:58 -0700
-Date: Tue, 2 Oct 2012 13:54:58 -0700
-From: Matt Wilson <msw@amazon.com>
-To: Jan Beulich <JBeulich@suse.com>
-Message-ID: <20121002205456.GA15862@u002268147cd4502c336d.ant.amazon.com>
-References: <7914B38A4445B34AA16EB9F1352942F1012F0F6F4B98@SJCPMAILBOX01.citrite.net>
-       <CC681CDD.3D966%keir.xen@gmail.com>
-       <40501859.20120902104331@eikelenboom.it>
-       <5044849002000078000982EA@nat28.tlf.novell.com>
-       <4610648186.20120904090841@eikelenboom.it>
-       <5045CDF302000078000985FB@nat28.tlf.novell.com>
-       <4710608674.20120904101330@eikelenboom.it>
-       <5045E55A02000078000986E4@nat28.tlf.novell.com>
-MIME-Version: 1.0
-Content-Disposition: inline
-In-Reply-To: <5045E55A02000078000986E4@nat28.tlf.novell.com>
-User-Agent: Mutt/1.5.21 (2010-09-15)
-Cc: Jeremy Fitzhardinge <jeremy@goop.org>, ehabkost@redhat.com,
-       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
-       "wei.wang2@amd.com" <wei.wang2@amd.com>,
-       Sander Eikelenboom <linux@eikelenboom.it>,
-       Keir Fraser <keir.xen@gmail.com>, Santosh Jodh <Santosh.Jodh@citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,T_DKIM_INVALID,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] Using debug-key 'o:  Dump IOMMU p2m table,
- locks up machine
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Tue, Sep 04, 2012 at 10:26:18AM +0100, Jan Beulich wrote:
-> >>> On 04.09.12 at 10:13, Sander Eikelenboom <linux@eikelenboom.it> wrote:
-> > Hmm don't know how to get the file/line, only thing i have found is:
-> > 
-> > serveerstertje:/boot# gdb xen-syms-4.2.0-rc4-pre
-> > GNU gdb (GDB) 7.0.1-debian
-> > Copyright (C) 2009 Free Software Foundation, Inc.
-> > License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
-> > This is free software: you are free to change and redistribute it.
-> > There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
-> > and "show warranty" for details.
-> > This GDB was configured as "x86_64-linux-gnu".
-> > For bug reporting instructions, please see:
-> > <http://www.gnu.org/software/gdb/bugs/>...
-> > Reading symbols from /boot/xen-syms-4.2.0-rc4-pre...done.
-> > (gdb) x/i 0xffff82c48015c9ee
-> > 0xffff82c48015c9ee <context_switch+916>:        mov    %edx,%gs
-> > (gdb)
-> 
-> I'm not really a gdb expert, so I don't know off the top of my
-> head either. I thought I said in a previous reply that people
-> generally appear to use the addr2line utility for that purpose.
-
-addr2line works, but "l *0xffff82c48015c9ee" in gdb should as well.
-
-Matt
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<20121003134323.GA31270@phenom.dumpdata.com> b/test/corpus/<20121003134323.GA31270@phenom.dumpdata.com>
deleted file mode 100644 (file)
index 6f1f9b8..0000000
+++ /dev/null
@@ -1,142 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Oct 03 14:58:45 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 03 Oct 2012 14:58:45 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TJPTD-0006B3-Qh
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 03 Oct 2012 14:58:45 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TJPPk-0006Vq-Uf; Wed, 03 Oct 2012 13:55:04 +0000
-Received: from mail27.messagelabs.com ([193.109.254.147])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <konrad.wilk@oracle.com>) id 1TJPPj-0006V3-Ae
-       for xen-devel@lists.xensource.com; Wed, 03 Oct 2012 13:55:03 +0000
-X-Env-Sender: konrad.wilk@oracle.com
-X-Msg-Ref: server-13.tower-27.messagelabs.com!1349272495!8611806!1
-X-Originating-IP: [148.87.113.117]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogMTQ4Ljg3LjExMy4xMTcgPT4gNzgwMzQw\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 22500 invoked from network); 3 Oct 2012 13:54:56 -0000
-Received: from rcsinet15.oracle.com (HELO rcsinet15.oracle.com)
-       (148.87.113.117)
-       by server-13.tower-27.messagelabs.com with DHE-RSA-AES256-SHA encrypted
-       SMTP; 3 Oct 2012 13:54:56 -0000
-Received: from acsinet22.oracle.com (acsinet22.oracle.com [141.146.126.238])
-       by rcsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
-       ESMTP id q93DsnGQ008811
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
-       Wed, 3 Oct 2012 13:54:50 GMT
-Received: from acsmt356.oracle.com (acsmt356.oracle.com [141.146.40.156])
-       by acsinet22.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
-       q93DslZC014775
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
-       Wed, 3 Oct 2012 13:54:49 GMT
-Received: from abhmt113.oracle.com (abhmt113.oracle.com [141.146.116.65])
-       by acsmt356.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
-       q93DslDw012835; Wed, 3 Oct 2012 08:54:47 -0500
-Received: from phenom.dumpdata.com (/50.195.21.189)
-       by default (Oracle Beehive Gateway v4.0)
-       with ESMTP ; Wed, 03 Oct 2012 06:54:47 -0700
-Received: by phenom.dumpdata.com (Postfix, from userid 1000)
-       id 938B04032D; Wed,  3 Oct 2012 09:43:23 -0400 (EDT)
-Date: Wed, 3 Oct 2012 09:43:23 -0400
-From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-Message-ID: <20121003134323.GA31270@phenom.dumpdata.com>
-References: <alpine.DEB.2.02.1210031431080.29232@kaball.uk.xensource.com>
-MIME-Version: 1.0
-Content-Disposition: inline
-In-Reply-To: <alpine.DEB.2.02.1210031431080.29232@kaball.uk.xensource.com>
-User-Agent: Mutt/1.5.21 (2010-09-15)
-X-Source-IP: acsinet22.oracle.com [141.146.126.238]
-Cc: xen-devel@lists.xensource.com, linux-kernel@vger.kernel.org
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH] xen: point xen_start_info to a dummy struct
- for PV on HVM guests
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Wed, Oct 03, 2012 at 02:37:53PM +0100, Stefano Stabellini wrote:
-> PV on HVM guests don't have a start_info page mapped by Xen, so
-> xen_start_info is just NULL for them.
-> That is problem because other parts of the code expect xen_start_info to
-> point to something valid, for example xen_initial_domain() is defined as
-> follow:
-> 
-> #define xen_initial_domain()    (xen_domain() && \
->                  xen_start_info->flags & SIF_INITDOMAIN)
-> 
-
-.. introduced by commit 4c071ee5268f7234c3d084b6093bebccc28cdcba
-("arm: initial Xen support)
-
-> 
-> Allocate a dummy start_info struct and point xen_start_info to it, as we
-> do on ARM.
-> This is not going to change things for PV guests because
-> xen_start_info is set by arch/x86/xen/xen-head.S:startup_xen.
-> 
-> Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-
-Reported-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-> 
-> diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c
-> index bf788d3..5f242cb 100644
-> --- a/arch/x86/xen/enlighten.c
-> +++ b/arch/x86/xen/enlighten.c
-> @@ -96,7 +96,8 @@ EXPORT_SYMBOL(machine_to_phys_mapping);
->  unsigned long  machine_to_phys_nr;
->  EXPORT_SYMBOL(machine_to_phys_nr);
->  
-> -struct start_info *xen_start_info;
-> +static struct start_info _xen_start_info;
-
-And lets change that to
-'xen_dummy_start_info' to keep in sync with the other dummy one.
-
-And also add a commnt:
-
-/*
- * Since 'xen_initial_domain' dereferences the xen_start_info we need
- * a dummy structure filled with zeros (for PVHVM guests which initialize
- * this late). For PV guests we do not have to worry about this as the first
- * few instructions (startup_xen) set it  properly.
- */
-> +struct start_info *xen_start_info = &_xen_start_info;
->  EXPORT_SYMBOL_GPL(xen_start_info);
->  
->  struct shared_info xen_dummy_shared_info;
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<20121003141116.GA10633@phenom.dumpdata.com> b/test/corpus/<20121003141116.GA10633@phenom.dumpdata.com>
deleted file mode 100644 (file)
index 44fa2c2..0000000
+++ /dev/null
@@ -1,262 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Oct 03 15:26:47 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 03 Oct 2012 15:26:47 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TJPuO-0006IO-M9
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 03 Oct 2012 15:26:47 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TJPqg-00085X-Ej; Wed, 03 Oct 2012 14:22:54 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <konrad.wilk@oracle.com>) id 1TJPqe-00085J-F0
-       for xen-devel@lists.xensource.com; Wed, 03 Oct 2012 14:22:52 +0000
-Received: from [85.158.137.99:36603] by server-14.bemta-3.messagelabs.com id
-       55/B7-25886-B3A4C605; Wed, 03 Oct 2012 14:22:51 +0000
-X-Env-Sender: konrad.wilk@oracle.com
-X-Msg-Ref: server-5.tower-217.messagelabs.com!1349274169!15385461!1
-X-Originating-IP: [141.146.126.227]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogMTQxLjE0Ni4xMjYuMjI3ID0+IDc5MDM1NA==\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 13556 invoked from network); 3 Oct 2012 14:22:50 -0000
-Received: from acsinet15.oracle.com (HELO acsinet15.oracle.com)
-       (141.146.126.227)
-       by server-5.tower-217.messagelabs.com with DHE-RSA-AES256-SHA encrypted
-       SMTP; 3 Oct 2012 14:22:50 -0000
-Received: from ucsinet22.oracle.com (ucsinet22.oracle.com [156.151.31.94])
-       by acsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
-       ESMTP id q93EMgP1012393
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
-       Wed, 3 Oct 2012 14:22:43 GMT
-Received: from acsmt357.oracle.com (acsmt357.oracle.com [141.146.40.157])
-       by ucsinet22.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
-       q93EMf31028208
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
-       Wed, 3 Oct 2012 14:22:42 GMT
-Received: from abhmt109.oracle.com (abhmt109.oracle.com [141.146.116.61])
-       by acsmt357.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
-       q93EMf6h009371; Wed, 3 Oct 2012 09:22:41 -0500
-Received: from phenom.dumpdata.com (/50.195.21.189)
-       by default (Oracle Beehive Gateway v4.0)
-       with ESMTP ; Wed, 03 Oct 2012 07:22:41 -0700
-Received: by phenom.dumpdata.com (Postfix, from userid 1000)
-       id 05FCA4032D; Wed,  3 Oct 2012 10:11:17 -0400 (EDT)
-Date: Wed, 3 Oct 2012 10:11:16 -0400
-From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-To: Ian Campbell <Ian.Campbell@citrix.com>
-Message-ID: <20121003141116.GA10633@phenom.dumpdata.com>
-References: <alpine.DEB.2.02.1210031431080.29232@kaball.uk.xensource.com>
-       <1349272182.650.150.camel@zakaz.uk.xensource.com>
-       <alpine.DEB.2.02.1210031450220.29232@kaball.uk.xensource.com>
-       <1349272482.650.151.camel@zakaz.uk.xensource.com>
-MIME-Version: 1.0
-Content-Disposition: inline
-In-Reply-To: <1349272482.650.151.camel@zakaz.uk.xensource.com>
-User-Agent: Mutt/1.5.21 (2010-09-15)
-X-Source-IP: ucsinet22.oracle.com [156.151.31.94]
-Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
-       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
-Subject: Re: [Xen-devel] [PATCH] xen: point xen_start_info to a dummy struct
- for PV on HVM guests
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Wed, Oct 03, 2012 at 02:54:42PM +0100, Ian Campbell wrote:
-> On Wed, 2012-10-03 at 14:51 +0100, Stefano Stabellini wrote:
-> > On Wed, 3 Oct 2012, Ian Campbell wrote:
-> > > On Wed, 2012-10-03 at 14:37 +0100, Stefano Stabellini wrote:
-> > > > PV on HVM guests don't have a start_info page mapped by Xen, so
-> > > > xen_start_info is just NULL for them.
-> > > > That is problem because other parts of the code expect xen_start_info to
-> > > > point to something valid, for example xen_initial_domain() is defined as
-> > > > follow:
-> > > > 
-> > > > #define xen_initial_domain()    (xen_domain() && \
-> > > >                  xen_start_info->flags & SIF_INITDOMAIN)
-> > > 
-> > > But anyone who calls this before xen_start_info is setup is going to get
-> > > a bogus result, specifically in this case they will think they are domU
-> > > when in reality they are dom0 -- wouldn't it be better to fix those
-> > > callsites?
-> > 
-> > That cannot be the case because setting up xen_start_info is the very
-> > first thing that is done, before even calling to C.
-> 
-> On PV, yes, but you are trying to fix PVHVM here, no?
-> 
-> Otherwise if this is always set before calling into C then what is the
-> purpose of this patch?
-
-to fix this - as PVHVM has it set to NULL and we end up de-referencing
-the xen_start_info and crashing. As so::
-
-
-Decompressing Linux... Parsing ELF... done.
-Booting the kernel.
-[    0.000000] Initializing cgroup subsys cpuset
-[    0.000000] Initializing cgroup subsys cpu
-[    0.000000] Linux version 3.6.0upstream-04121-g0313983 (konrad@build.dumpdata.com) (gcc version 4.4.4 20100503 (Red Hat 4.4.4-2) (GCC) ) #1 SMP Tue Oct 2 16:31:21 EDT 2012
-[    0.000000] Command line: initrd=initramf.gz  console=ttyS0,115200 test=net nofb earlyprintk=serial,ttyS0,115200 BOOT_IMAGE=vmlinuz 
-[    0.000000] e820: BIOS-provided physical RAM map:
-[    0.000000] BIOS-e820: [mem 0x0000000000000000-0x000000000009dfff] usable
-[    0.000000] BIOS-e820: [mem 0x000000000009e000-0x000000000009ffff] reserved
-[    0.000000] BIOS-e820: [mem 0x00000000000e0000-0x00000000000fffff] reserved
-[    0.000000] BIOS-e820: [mem 0x0000000000100000-0x000000007fffffff] usable
-[    0.000000] BIOS-e820: [mem 0x00000000fc000000-0x00000000ffffffff] reserved
-[    0.000000] bootconsole [earlyser0] enabled
-[    0.000000] NX (Execute Disable) protection: active
-[    0.000000] DMI 2.4 present.
-[    0.000000] Hypervisor detected: Xen HVM
-[    0.000000] Xen version 4.1.
-[    0.000000] Netfront and the Xen platform PCI driver have been compiled for this kernel: unplug emulated NICs.
-[    0.000000] Blkfront and the Xen platform PCI driver have been compiled for this kernel: unplug emulated disks.
-[    0.000000] You might have to change the root device
-[    0.000000] from /dev/hd[a-d] to /dev/xvd[a-d]
-[    0.000000] in your root= kernel command line option
-[    0.000000] No AGP bridge found
-[    0.000000] e820: last_pfn = 0x80000 max_arch_pfn = 0x400000000
-[    0.000000] x86 PAT enabled: cpu 0, old 0x7040600070406, new 0x7010600070106
-[    0.000000] found SMP MP-table at [mem 0x000fbc90-0x000fbc9f] mapped at [ffff8800000fbc90]
-[    0.000000] init_memory_mapping: [mem 0x00000000-0x7fffffff]
-[    0.000000] RAMDISK: [mem 0x7abeb000-0x7ffdefff]
-[    0.000000] ACPI: RSDP 00000000000ea020 00024 (v02    Xen)
-[    0.000000] ACPI: XSDT 00000000fc00f2b0 00034 (v01    Xen      HVM 00000000 HVML 00000000)
-[    0.000000] ACPI: FACP 00000000fc00f0d0 000F4 (v04    Xen      HVM 00000000 HVML 00000000)
-[    0.000000] ACPI: DSDT 00000000fc003440 0BC09 (v02    Xen      HVM 00000000 INTL 20100528)
-[    0.000000] ACPI: FACS 00000000fc003400 00040
-[    0.000000] ACPI: APIC 00000000fc00f1d0 000D8 (v02    Xen      HVM 00000000 HVML 00000000)
-[    0.000000] No NUMA configuration found
-[    0.000000] Faking a node at [mem 0x0000000000000000-0x000000007fffffff]
-[    0.000000] Initmem setup node 0 [mem 0x00000000-0x7fffffff]
-[    0.000000]   NODE_DATA [mem 0x7fffc000-0x7fffffff]
-[    0.000000] Zone ranges:
-[    0.000000]   DMA      [mem 0x00010000-0x00ffffff]
-[    0.000000]   DMA32    [mem 0x01000000-0xffffffff]
-[    0.000000]   Normal   empty
-[    0.000000] Movable zone start for each node
-[    0.000000] Early memory node ranges
-[    0.000000]   node   0: [mem 0x00010000-0x0009dfff]
-[    0.000000]   node   0: [mem 0x00100000-0x7fffffff]
-[    0.000000] ACPI: PM-Timer IO Port: 0xb008
-[    0.000000] ACPI: LAPIC (acpi_id[0x00] lapic_id[0x00] enabled)
-[    0.000000] ACPI: LAPIC (acpi_id[0x01] lapic_id[0x02] enabled)
-[    0.000000] ACPI: LAPIC (acpi_id[0x02] lapic_id[0x04] disabled)
-[    0.000000] ACPI: LAPIC (acpi_id[0x03] lapic_id[0x06] disabled)
-[    0.000000] ACPI: LAPIC (acpi_id[0x04] lapic_id[0x08] disabled)
-[    0.000000] ACPI: LAPIC (acpi_id[0x05] lapic_id[0x0a] disabled)
-[    0.000000] ACPI: LAPIC (acpi_id[0x06] lapic_id[0x0c] disabled)
-[    0.000000] ACPI: LAPIC (acpi_id[0x07] lapic_id[0x0e] disabled)
-[    0.000000] ACPI: LAPIC (acpi_id[0x08] lapic_id[0x10] disabled)
-[    0.000000] ACPI: LAPIC (acpi_id[0x09] lapic_id[0x12] disabled)
-[    0.000000] ACPI: LAPIC (acpi_id[0x0a] lapic_id[0x14] disabled)
-[    0.000000] ACPI: LAPIC (acpi_id[0x0b] lapic_id[0x16] disabled)
-[    0.000000] ACPI: LAPIC (acpi_id[0x0c] lapic_id[0x18] disabled)
-[    0.000000] ACPI: LAPIC (acpi_id[0x0d] lapic_id[0x1a] disabled)
-[    0.000000] ACPI: LAPIC (acpi_id[0x0e] lapic_id[0x1c] disabled)
-[    0.000000] ACPI: IOAPIC (id[0x01] address[0xfec00000] gsi_base[0])
-[    0.000000] IOAPIC[0]: apic_id 1, version 17, address 0xfec00000, GSI 0-47
-[    0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl dfl)
-[    0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 5 global_irq 5 low level)
-[    0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 10 global_irq 10 low level)
-[    0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 11 global_irq 11 low level)
-[    0.000000] Using ACPI (MADT) for SMP configuration information
-[    0.000000] smpboot: Allowing 15 CPUs, 13 hotplug CPUs
-[    0.000000] PM: Registered nosave memory: 000000000009e000 - 00000000000a0000
-[    0.000000] PM: Registered nosave memory: 00000000000a0000 - 00000000000e0000
-[    0.000000] PM: Registered nosave memory: 00000000000e0000 - 0000000000100000
-[    0.000000] e820: [mem 0x80000000-0xfbffffff] available for PCI devices
-[    0.000000] Booting paravirtualized kernel on Xen HVM
-[    0.000000] setup_percpu: NR_CPUS:512 nr_cpumask_bits:512 nr_cpu_ids:15 nr_node_ids:1
-[    0.000000] PERCPU: Embedded 28 pages/cpu @ffff88007a800000 s84352 r8192 d22144 u131072
-[    0.000000] Built 1 zonelists in Node order, mobility grouping on.  Total pages: 517000
-[    0.000000] Policy zone: DMA32
-[    0.000000] Kernel command line: initrd=initramf.gz  console=ttyS0,115200 test=net nofb earlyprintk=serial,ttyS0,115200 BOOT_IMAGE=vmlinuz 
-[    0.000000] PID hash table entries: 4096 (order: 3, 32768 bytes)
-[    0.000000] __ex_table already sorted, skipping sort
-[    0.000000] Checking aperture...
-[    0.000000] No AGP bridge found
-[    0.000000] Memory: 1967336k/2097152k available (6368k kernel code, 456k absent, 129360k reserved, 4525k data, 752k init)
-[    0.000000] Hierarchical RCU implementation.
-[    0.000000]         RCU restricting CPUs from NR_CPUS=512 to nr_cpu_ids=15.
-[    0.000000] NR_IRQS:33024 nr_irqs:1208 16
-[    0.000000] Xen HVM callback vector for event delivery is enabled
-[    0.000000] Console: colour VGA+ 80x25
-[    0.000000] BUG: unable to handle kernel NULL pointer dereference at 0000000000000030
-[    0.000000] IP: [<ffffffff813ab3be>] xen_cons_init+0x1e/0x60
-[    0.000000] PGD 0 
-[    0.000000] Oops: 0000 [#1] SMP 
-[    0.000000] Modules linked in:
-[    0.000000] CPU 0 
-[    0.000000] Pid: 0, comm: swapper/0 Not tainted 3.6.0upstream-04121-g0313983 #1 Xen HVM domU
-[    0.000000] RIP: 0010:[<ffffffff813ab3be>]  [<ffffffff813ab3be>] xen_cons_init+0x1e/0x60
-[    0.000000] RSP: 0000:ffffffff81a01ef8  EFLAGS: 00010202
-[    0.000000] RAX: 0000000000000000 RBX: ffffffff81b3be60 RCX: 0000000000000002
-[    0.000000] RDX: ffffffff81a59c40 RSI: ffffffff81a59b01 RDI: ffffffff81ba7e81
-[    0.000000] RBP: ffffffff81a01ef8 R08: 00000000000003fd R09: 0000000000000020
-[    0.000000] R10: 0000000000000000 R11: 000000000000000d R12: ffffffff81b008e0
-[    0.000000] R13: ffffffff81b092e0 R14: 0000000000000000 R15: 0000000000026bf0
-[    0.000000] FS:  0000000000000000(0000) GS:ffff88007a800000(0000) knlGS:0000000000000000
-[    0.000000] CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b
-[    0.000000] CR2: 0000000000000030 CR3: 0000000001a0b000 CR4: 00000000000006b0
-[    0.000000] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
-[    0.000000] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
-[    0.000000] Process swapper/0 (pid: 0, threadinfo ffffffff81a00000, task ffffffff81a13420)
-[    0.000000] Stack:
-[    0.000000]  ffffffff81a01f18 ffffffff81aeb9fb ffffffff81b008e0 ffffffffffffffff
-[    0.000000]  ffffffff81a01f68 ffffffff81abac39 ffffffff81aba80d 0000000000026bf0
-[    0.000000]  ffffffff81a01f58 ffffffff81b092e0 0000000001000000 0000000001c72000
-[    0.000000] Call Trace:
-[    0.000000]  [<ffffffff81aeb9fb>] console_init+0x19/0x2a
-[    0.000000]  [<ffffffff81abac39>] start_kernel+0x24a/0x3a3
-[    0.000000]  [<ffffffff81aba80d>] ? kernel_init+0x1e8/0x1e8
-[    0.000000]  [<ffffffff81aba356>] x86_64_start_reservations+0x131/0x136
-[    0.000000]  [<ffffffff81aba45e>] x86_64_start_kernel+0x103/0x112
-[    0.000000] Code: 66 66 66 66 2e 0f 1f 84 00 00 00 00 00 8b 0d 5a 2e 7c 00 55 31 c0 48 89 e5 85 c9 74 37 48 8b 05 51 2e 7c 00 48 c7 c2 40 9c a5 81 <f6> 40 30 02 75 15 83 f9 02 74 27 e8 52 fc ff ff 85 c0 78 15 48 
-[    0.000000] RIP  [<ffffffff813ab3be>] xen_cons_init+0x1e/0x60
-[    0.000000]  RSP <ffffffff81a01ef8>
-[    0.000000] CR2: 0000000000000030
-[    0.000000] ---[ end trace 5cb378039a20e088 ]---
-[    0.000000] Kernel panic - not syncing: Attempted to kill the idle task!
-> 
-> > 
-> > 
-> > > Perhaps turn this into a static inline with a BUG_ON(!xen_start_info) to
-> > > make catching these cases easier?
-> > 
-> 
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<20121003153714.4656b7e9@mantra.us.oracle.com> b/test/corpus/<20121003153714.4656b7e9@mantra.us.oracle.com>
deleted file mode 100644 (file)
index 4eec006..0000000
+++ /dev/null
@@ -1,152 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Oct 03 23:41:35 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 03 Oct 2012 23:41:35 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TJXdF-00085Q-KP
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 03 Oct 2012 23:41:35 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TJXZF-0001Hs-Nq; Wed, 03 Oct 2012 22:37:25 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <mukesh.rathor@oracle.com>) id 1TJXZD-0001Hk-Oy
-       for Xen-devel@lists.xensource.com; Wed, 03 Oct 2012 22:37:23 +0000
-Received: from [85.158.137.99:8934] by server-3.bemta-3.messagelabs.com id
-       5C/9A-25962-22EBC605; Wed, 03 Oct 2012 22:37:22 +0000
-X-Env-Sender: mukesh.rathor@oracle.com
-X-Msg-Ref: server-3.tower-217.messagelabs.com!1349303840!15113432!1
-X-Originating-IP: [141.146.126.227]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogMTQxLjE0Ni4xMjYuMjI3ID0+IDc5MDM1NA==\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 16983 invoked from network); 3 Oct 2012 22:37:22 -0000
-Received: from acsinet15.oracle.com (HELO acsinet15.oracle.com)
-       (141.146.126.227)
-       by server-3.tower-217.messagelabs.com with DHE-RSA-AES256-SHA encrypted
-       SMTP; 3 Oct 2012 22:37:22 -0000
-Received: from acsinet22.oracle.com (acsinet22.oracle.com [141.146.126.238])
-       by acsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
-       ESMTP id q93MbGPH014255
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
-       Wed, 3 Oct 2012 22:37:17 GMT
-Received: from acsmt356.oracle.com (acsmt356.oracle.com [141.146.40.156])
-       by acsinet22.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
-       q93MbFEe028921
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
-       Wed, 3 Oct 2012 22:37:16 GMT
-Received: from abhmt101.oracle.com (abhmt101.oracle.com [141.146.116.53])
-       by acsmt356.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
-       q93MbFPL003678; Wed, 3 Oct 2012 17:37:15 -0500
-Received: from mantra.us.oracle.com (/130.35.68.95)
-       by default (Oracle Beehive Gateway v4.0)
-       with ESMTP ; Wed, 03 Oct 2012 15:37:15 -0700
-Date: Wed, 3 Oct 2012 15:37:14 -0700
-From: Mukesh Rathor <mukesh.rathor@oracle.com>
-To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-Message-ID: <20121003153714.4656b7e9@mantra.us.oracle.com>
-In-Reply-To: <alpine.DEB.2.02.1210031242180.29232@kaball.uk.xensource.com>
-References: <20120921121659.5a723de9@mantra.us.oracle.com>
-       <alpine.DEB.2.02.1209241257440.29232@kaball.uk.xensource.com>
-       <20120924154335.097d3fb9@mantra.us.oracle.com>
-       <alpine.DEB.2.02.1209251054140.29232@kaball.uk.xensource.com>
-       <20120925180416.0137d61a@mantra.us.oracle.com>
-       <alpine.DEB.2.02.1209261225340.29232@kaball.uk.xensource.com>
-       <20121002183619.70734b7a@mantra.us.oracle.com>
-       <20121002190323.2e16f6ff@mantra.us.oracle.com>
-       <alpine.DEB.2.02.1210031242180.29232@kaball.uk.xensource.com>
-Organization: Oracle Corporation
-X-Mailer: Claws Mail 3.7.6 (GTK+ 2.18.9; x86_64-redhat-linux-gnu)
-Mime-Version: 1.0
-X-Source-IP: acsinet22.oracle.com [141.146.126.238]
-Cc: "Xen-devel@lists.xensource.com" <Xen-devel@lists.xensource.com>,
-       Ian Campbell <Ian.Campbell@citrix.com>,
-       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH v1 3/8]: PVH startup changes (enlighten.c)
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Wed, 3 Oct 2012 12:58:22 +0100
-Stefano Stabellini <stefano.stabellini@eu.citrix.com> wrote:
-
-> On Wed, 3 Oct 2012, Mukesh Rathor wrote:
-> > On Tue, 2 Oct 2012 18:36:19 -0700
-> > Mukesh Rathor <mukesh.rathor@oracle.com> wrote:
-> > 
-> > > On Wed, 26 Sep 2012 12:33:39 +0100
-> 
-> 
-> > So for now, how about, lets go
-> > with what I've got. I'll make a note, and when I do xen patch, I'll
-> > figure it out, and would be a very small linux patch. I want to get
-> > linux patch in soon before the window closes.
-> 
-> We can leave page special as it is for now with very little
-> consequences, because it is not part of the interface with Xen.
-> However this is part of the interface, so whatever we choose here is
-> going to be hard to change later on.
-> 
-> I think it would be good if we could either make dom0 use a pfn or
-> domU use mfn, whatever is easier for you.
-
-Ok, finally, focussing on this, the issue with pfn in dom0 is that
-I need pfn allocated in construct_dom0() and be mapped so that the
-guest can just do :
-
-HYPERVISOR_shared_info=(struct shared_info *)__va(xen_start_info->shared_info);
-
-How about following I am experimenting with right now:
-
-in construct_dom0():
-
-    vstartinfo_end   = (vstartinfo_start +
-                        sizeof(struct start_info) +
-                        sizeof(struct dom0_vga_console_info));
-
-    if ( is_hybrid_domain(d) ) {
-        start_info_pfn_addr = round_pgup(vstartinfo_end) - v_start;
-        vstartinfo_end   += PAGE_SIZE;
-    }
-
-I can then put (PFN: start_info_pfn_addr)->(MFN: virt_to_maddr(d->shared_info))
-in the p2m, and dom0 just has to do __va(), like domU does now.  I wont' need
-to special case dom0 then.
-
-Do you foresee any problems with this approach?
-
-thanks
-Mukesh
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<20121004151535.GB11426@phenom.dumpdata.com> b/test/corpus/<20121004151535.GB11426@phenom.dumpdata.com>
deleted file mode 100644 (file)
index 1a253ce..0000000
+++ /dev/null
@@ -1,143 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Oct 04 16:30:17 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 04 Oct 2012 16:30:17 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TJnNM-0007H4-53
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 04 Oct 2012 16:30:17 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TJnKN-0001sd-82; Thu, 04 Oct 2012 15:27:07 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <konrad.wilk@oracle.com>) id 1TJnKK-0001sM-Ui
-       for xen-devel@lists.xen.org; Thu, 04 Oct 2012 15:27:05 +0000
-Received: from [85.158.139.211:52287] by server-3.bemta-5.messagelabs.com id
-       D2/42-16108-8CAAD605; Thu, 04 Oct 2012 15:27:04 +0000
-X-Env-Sender: konrad.wilk@oracle.com
-X-Msg-Ref: server-6.tower-206.messagelabs.com!1349364422!21096988!1
-X-Originating-IP: [141.146.126.227]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogMTQxLjE0Ni4xMjYuMjI3ID0+IDc5MzIzNg==\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 28814 invoked from network); 4 Oct 2012 15:27:03 -0000
-Received: from acsinet15.oracle.com (HELO acsinet15.oracle.com)
-       (141.146.126.227)
-       by server-6.tower-206.messagelabs.com with DHE-RSA-AES256-SHA encrypted
-       SMTP; 4 Oct 2012 15:27:03 -0000
-Received: from acsinet21.oracle.com (acsinet21.oracle.com [141.146.126.237])
-       by acsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
-       ESMTP id q94FQx9T003439
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
-       Thu, 4 Oct 2012 15:26:59 GMT
-Received: from acsmt358.oracle.com (acsmt358.oracle.com [141.146.40.158])
-       by acsinet21.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
-       q94FQwOf017112
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
-       Thu, 4 Oct 2012 15:26:59 GMT
-Received: from abhmt116.oracle.com (abhmt116.oracle.com [141.146.116.68])
-       by acsmt358.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
-       q94FQwBN031520; Thu, 4 Oct 2012 10:26:58 -0500
-Received: from phenom.dumpdata.com (/50.195.21.189)
-       by default (Oracle Beehive Gateway v4.0)
-       with ESMTP ; Thu, 04 Oct 2012 08:26:58 -0700
-Received: by phenom.dumpdata.com (Postfix, from userid 1000)
-       id 60DD44035E; Thu,  4 Oct 2012 11:15:35 -0400 (EDT)
-Date: Thu, 4 Oct 2012 11:15:35 -0400
-From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-To: Ian Campbell <ian.campbell@citrix.com>
-Message-ID: <20121004151535.GB11426@phenom.dumpdata.com>
-References: <1349363496.866.49.camel@zakaz.uk.xensource.com>
-       <1349363515-26190-1-git-send-email-ian.campbell@citrix.com>
-MIME-Version: 1.0
-Content-Disposition: inline
-In-Reply-To: <1349363515-26190-1-git-send-email-ian.campbell@citrix.com>
-User-Agent: Mutt/1.5.21 (2010-09-15)
-X-Source-IP: acsinet21.oracle.com [141.146.126.237]
-Cc: Stefano Stabellini <stefano.stabellini@citrix.com>, xen-devel@lists.xen.org
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 01/14] Build fixes which I beleive others
- have already fixed properly elsewhere
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Thu, Oct 04, 2012 at 04:11:42PM +0100, Ian Campbell wrote:
-> Do not apply, you have better versions of all these somewhere else!
-
-<nods>.
-> ---
->  drivers/xen/Makefile           |    2 +-
->  include/xen/interface/memory.h |    4 +---
->  2 files changed, 2 insertions(+), 4 deletions(-)
-> 
-> diff --git a/drivers/xen/Makefile b/drivers/xen/Makefile
-> index cd28aae..275abfc 100644
-> --- a/drivers/xen/Makefile
-> +++ b/drivers/xen/Makefile
-> @@ -8,10 +8,10 @@ obj-y      += xenbus/
->  nostackp := $(call cc-option, -fno-stack-protector)
->  CFLAGS_features.o                   := $(nostackp)
->  
-> -obj-$(CONFIG_XEN_DOM0)                      += $(dom0-y)
->  dom0-$(CONFIG_PCI) += pci.o
->  dom0-$(CONFIG_ACPI) += acpi.o
->  dom0-$(CONFIG_X86) += pcpu.o
-> +obj-$(CONFIG_XEN_DOM0)                      += $(dom0-y)
->  obj-$(CONFIG_BLOCK)                 += biomerge.o
->  obj-$(CONFIG_XEN_XENCOMM)           += xencomm.o
->  obj-$(CONFIG_XEN_BALLOON)           += xen-balloon.o
-> diff --git a/include/xen/interface/memory.h b/include/xen/interface/memory.h
-> index 9953914..6d74c47 100644
-> --- a/include/xen/interface/memory.h
-> +++ b/include/xen/interface/memory.h
-> @@ -163,15 +163,13 @@ struct xen_add_to_physmap {
->      /* Which domain to change the mapping for. */
->      domid_t domid;
->  
-> -    /* Number of pages to go through for gmfn_range */
-> -    uint16_t    size;
-> -
->      union {
->          /* Number of pages to go through for gmfn_range */
->          uint16_t    size;
->      /* IFF XENMAPSPACE_gmfn_foreign */
->          domid_t foreign_domid;
->      } u;
-> +
->      /* Source mapping space. */
->  #define XENMAPSPACE_shared_info 0 /* shared info page */
->  #define XENMAPSPACE_grant_table 1 /* grant table page */
-> -- 
-> 1.7.2.5
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<20121004152459.GC11426@phenom.dumpdata.com> b/test/corpus/<20121004152459.GC11426@phenom.dumpdata.com>
deleted file mode 100644 (file)
index ba243a1..0000000
+++ /dev/null
@@ -1,251 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Oct 04 16:42:01 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 04 Oct 2012 16:42:01 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TJnYh-0007JP-BF
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 04 Oct 2012 16:42:01 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TJnTV-00026Q-Fu; Thu, 04 Oct 2012 15:36:33 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <konrad.wilk@oracle.com>) id 1TJnTS-00026H-UZ
-       for xen-devel@lists.xen.org; Thu, 04 Oct 2012 15:36:31 +0000
-Received: from [85.158.137.99:55322] by server-9.bemta-3.messagelabs.com id
-       25/49-20338-EFCAD605; Thu, 04 Oct 2012 15:36:30 +0000
-X-Env-Sender: konrad.wilk@oracle.com
-X-Msg-Ref: server-10.tower-217.messagelabs.com!1349364987!20189295!1
-X-Originating-IP: [148.87.113.117]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogMTQ4Ljg3LjExMy4xMTcgPT4gNzgzMjE1\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 18712 invoked from network); 4 Oct 2012 15:36:29 -0000
-Received: from rcsinet15.oracle.com (HELO rcsinet15.oracle.com)
-       (148.87.113.117)
-       by server-10.tower-217.messagelabs.com with DHE-RSA-AES256-SHA
-       encrypted SMTP; 4 Oct 2012 15:36:29 -0000
-Received: from ucsinet22.oracle.com (ucsinet22.oracle.com [156.151.31.94])
-       by rcsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
-       ESMTP id q94FaOgg021983
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
-       Thu, 4 Oct 2012 15:36:25 GMT
-Received: from acsmt357.oracle.com (acsmt357.oracle.com [141.146.40.157])
-       by ucsinet22.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
-       q94FaOD6023753
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
-       Thu, 4 Oct 2012 15:36:24 GMT
-Received: from abhmt108.oracle.com (abhmt108.oracle.com [141.146.116.60])
-       by acsmt357.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
-       q94FaNna010185; Thu, 4 Oct 2012 10:36:23 -0500
-Received: from phenom.dumpdata.com (/50.195.21.189)
-       by default (Oracle Beehive Gateway v4.0)
-       with ESMTP ; Thu, 04 Oct 2012 08:36:23 -0700
-Received: by phenom.dumpdata.com (Postfix, from userid 1000)
-       id B12374035E; Thu,  4 Oct 2012 11:24:59 -0400 (EDT)
-Date: Thu, 4 Oct 2012 11:24:59 -0400
-From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-To: Ian Campbell <ian.campbell@citrix.com>
-Message-ID: <20121004152459.GC11426@phenom.dumpdata.com>
-References: <1349363496.866.49.camel@zakaz.uk.xensource.com>
-       <1349363515-26190-11-git-send-email-ian.campbell@citrix.com>
-MIME-Version: 1.0
-Content-Disposition: inline
-In-Reply-To: <1349363515-26190-11-git-send-email-ian.campbell@citrix.com>
-User-Agent: Mutt/1.5.21 (2010-09-15)
-X-Source-IP: ucsinet22.oracle.com [156.151.31.94]
-Cc: Stefano Stabellini <stefano.stabellini@citrix.com>, xen-devel@lists.xen.org
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 11/14] arm: implement remap interfaces
- needed for privcmd mappings.
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Thu, Oct 04, 2012 at 04:11:52PM +0100, Ian Campbell wrote:
-> Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
-> ---
->  arch/arm/xen/enlighten.c |   94 +++++++++++++++++++++++++++++++++++++++++++++-
->  1 files changed, 92 insertions(+), 2 deletions(-)
-> 
-> diff --git a/arch/arm/xen/enlighten.c b/arch/arm/xen/enlighten.c
-> index ba5cc13..9956af5 100644
-> --- a/arch/arm/xen/enlighten.c
-> +++ b/arch/arm/xen/enlighten.c
-> @@ -9,6 +9,7 @@
->  #include <xen/platform_pci.h>
->  #include <xen/xenbus.h>
->  #include <xen/page.h>
-> +#include <xen/xen-ops.h>
->  #include <asm/xen/hypervisor.h>
->  #include <asm/xen/hypercall.h>
->  #include <linux/interrupt.h>
-> @@ -18,6 +19,8 @@
->  #include <linux/of_irq.h>
->  #include <linux/of_address.h>
->  
-> +#include <linux/mm.h>
-> +
->  struct start_info _xen_start_info;
->  struct start_info *xen_start_info = &_xen_start_info;
->  EXPORT_SYMBOL_GPL(xen_start_info);
-> @@ -43,15 +46,102 @@ EXPORT_SYMBOL_GPL(xen_platform_pci_unplug);
->  
->  static __read_mostly int xen_events_irq = -1;
->  
-> +/* map fgmfn of domid to lpfn in the current domain */
-
-<laughs> Say that really fast a couple of times :-)
-
-Any way we can explain it a bit more of what each acronym means?
-
-> +static int map_foreign_page(unsigned long lpfn, unsigned long fgmfn,
-> +                        unsigned int domid)
-> +{
-> +    int rc;
-> +    struct xen_add_to_physmap xatp = {
-> +            .domid = DOMID_SELF,
-> +            .u.foreign_domid = domid,
-> +            .space = XENMAPSPACE_gmfn_foreign,
-> +            .idx = fgmfn,
-> +            .gpfn = lpfn,
-> +    };
-> +
-> +    rc = HYPERVISOR_memory_op(XENMEM_add_to_physmap, &xatp);
-> +    if (rc) {
-> +            pr_warn("Failed to map pfn to mfn rc:%d pfn:%lx mfn:%lx\n",
-
-How about 'Failed to map pfn (0x%lx) to mfn (0x%lx), rc: %d\n" ?
-
-> +                    rc, lpfn, fgmfn);
-> +            return 1;
-> +    }
-> +    return 0;
-> +}
-> +
-> +struct remap_data {
-> +    unsigned long fgmfn; /* foreign domain's gmfn */
-
-Shouldn't this be called now 'xen_pfn_t' or something.
-
-> +    pgprot_t prot;
-> +    domid_t  domid;
-> +    struct vm_area_struct *vma;
-> +    struct xen_remap_mfn_info *info;
-> +};
-> +
-> +static int remap_pte_fn(pte_t *ptep, pgtable_t token, unsigned long addr,
-> +                    void *data)
-> +{
-> +    struct remap_data *info = data;
-> +    struct xen_remap_mfn_info *savp = info->info;
-> +    struct page *page = savp->pi_paga[savp->pi_next_todo++];
-> +    unsigned long pfn = page_to_pfn(page);
-> +    pte_t pte = pfn_pte(pfn, info->prot);
-> +
-> +    if (map_foreign_page(pfn, info->fgmfn, info->domid))
-> +            return -EFAULT;
-> +    set_pte_at(info->vma->vm_mm, addr, ptep, pte);
-> +
-> +    return 0;
-> +}
-> +
->  int xen_remap_domain_mfn_range(struct vm_area_struct *vma,
->                             unsigned long addr,
->                             unsigned long mfn, int nr,
-> -                           pgprot_t prot, unsigned domid)
-> +                           pgprot_t prot, unsigned domid,
-> +                           struct xen_remap_mfn_info *info)
->  {
-> -    return -ENOSYS;
-> +    int err;
-> +    struct remap_data data;
-> +
-> +    /* TBD: Batching, current sole caller only does page at a time */
-> +    if (nr > 1)
-
-Lets also wrap it with WARN_ON?
-
-> +            return -EINVAL;
-> +
-> +    data.fgmfn = mfn;
-> +    data.prot = prot;
-> +    data.domid = domid;
-> +    data.vma = vma;
-> +    data.info = info;
-> +    err = apply_to_page_range(vma->vm_mm, addr, nr << PAGE_SHIFT,
-> +                              remap_pte_fn, &data);
-> +    return err;
->  }
->  EXPORT_SYMBOL_GPL(xen_remap_domain_mfn_range);
->  
-> +/* Returns: Number of pages unmapped */
-> +int xen_unmap_domain_mfn_range(struct vm_area_struct *vma,
-> +                           struct xen_remap_mfn_info *info)
-> +{
-> +    int count = 0;
-> +
-> +    while (info->pi_next_todo--) {
-> +            struct xen_remove_from_physmap xrp;
-> +            unsigned long rc, pfn;
-> +
-> +            pfn = page_to_pfn(info->pi_paga[info->pi_next_todo]);
-
-Won't this miss the first pi_next_todo? You did the 'pi_next_todo--' so
-will the compiler decrement it here in this operation or will it do
-when it gets to the 'do' logic of the loop?
-
-> +
-> +            xrp.domid = DOMID_SELF;
-> +            xrp.gpfn = pfn;
-> +            rc = HYPERVISOR_memory_op(XENMEM_remove_from_physmap, &xrp);
-
-'rc' is 'unsigned long'. Is that right? You don't want it to be 'int'?
-
-> +            if (rc) {
-> +                    pr_warn("Failed to unmap pfn:%lx rc:%ld\n",
-> +                            pfn, rc);
-> +                    return count;
-> +            }
-> +            count++;
-> +    }
-> +    return count;
-> +}
-> +EXPORT_SYMBOL_GPL(xen_unmap_domain_mfn_range);
-> +
->  /*
->   * see Documentation/devicetree/bindings/arm/xen.txt for the
->   * documentation of the Xen Device Tree format.
-> -- 
-> 1.7.2.5
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<20121004152731.GD11426@phenom.dumpdata.com> b/test/corpus/<20121004152731.GD11426@phenom.dumpdata.com>
deleted file mode 100644 (file)
index ef0b187..0000000
+++ /dev/null
@@ -1,124 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Oct 04 16:42:45 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 04 Oct 2012 16:42:45 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TJnZP-0007Jm-Vu
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 04 Oct 2012 16:42:45 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TJnW0-0002GQ-2L; Thu, 04 Oct 2012 15:39:08 +0000
-Received: from mail27.messagelabs.com ([193.109.254.147])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <konrad.wilk@oracle.com>) id 1TJnVz-0002GA-2H
-       for xen-devel@lists.xen.org; Thu, 04 Oct 2012 15:39:07 +0000
-X-Env-Sender: konrad.wilk@oracle.com
-X-Msg-Ref: server-9.tower-27.messagelabs.com!1349365139!9749354!1
-X-Originating-IP: [141.146.126.227]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogMTQxLjE0Ni4xMjYuMjI3ID0+IDc5MzIzNg==\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 31964 invoked from network); 4 Oct 2012 15:39:00 -0000
-Received: from acsinet15.oracle.com (HELO acsinet15.oracle.com)
-       (141.146.126.227)
-       by server-9.tower-27.messagelabs.com with DHE-RSA-AES256-SHA encrypted
-       SMTP; 4 Oct 2012 15:39:00 -0000
-Received: from acsinet21.oracle.com (acsinet21.oracle.com [141.146.126.237])
-       by acsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
-       ESMTP id q94FctY4029286
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
-       Thu, 4 Oct 2012 15:38:56 GMT
-Received: from acsmt357.oracle.com (acsmt357.oracle.com [141.146.40.157])
-       by acsinet21.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
-       q94FctTx016665
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
-       Thu, 4 Oct 2012 15:38:55 GMT
-Received: from abhmt117.oracle.com (abhmt117.oracle.com [141.146.116.69])
-       by acsmt357.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
-       q94FctJH012196; Thu, 4 Oct 2012 10:38:55 -0500
-Received: from phenom.dumpdata.com (/50.195.21.189)
-       by default (Oracle Beehive Gateway v4.0)
-       with ESMTP ; Thu, 04 Oct 2012 08:38:54 -0700
-Received: by phenom.dumpdata.com (Postfix, from userid 1000)
-       id BE4474035E; Thu,  4 Oct 2012 11:27:31 -0400 (EDT)
-Date: Thu, 4 Oct 2012 11:27:31 -0400
-From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-To: Ian Campbell <Ian.Campbell@citrix.com>
-Message-ID: <20121004152731.GD11426@phenom.dumpdata.com>
-References: <1349363496.866.49.camel@zakaz.uk.xensource.com>
-MIME-Version: 1.0
-Content-Disposition: inline
-In-Reply-To: <1349363496.866.49.camel@zakaz.uk.xensource.com>
-User-Agent: Mutt/1.5.21 (2010-09-15)
-X-Source-IP: acsinet21.oracle.com [141.146.126.237]
-Cc: Stefano Stabellini <stefano.stabellini@citrix.com>,
-       xen-devel <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [RFC 00/14] arm: implement ballooning and privcmd
- foreign mappings based on x86 PVH
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Thu, Oct 04, 2012 at 04:11:36PM +0100, Ian Campbell wrote:
-> This series implements ballooning for Xen on ARM and builds and Mukesh's
-> PVH privcmd stuff to implement foreign page mapping on ARM, replacing
-> the old "HACK: initial (very hacky) XENMAPSPACE_gmfn_foreign" patch.
-
-Great. Thanks for doing it.
-> 
-> The baseline is a bit complex, it is basically Stefano's xenarm-forlinus
-> branch (commit bbd6eb29214e) merged with Konrad's linux-next-pvh branch
-> (commit 7e6e6f589de8). I suspect I might need to rebase it shortly. I
-
-Yes. I am hoping that on Monday Mukesh will have had sent out his revised
-patch and I can rebase the whole thing on Linus's tree (which by that time
-should have the Xen ARM's pulled in).
-
-
-> know there's a bunch of stuff in here which Mukesh has also changed, but
-> which I haven't seen yet, I'll deal with that when I rebase (RFC mainly
-> for that reason only).
-
-They look good to me. I've provided some feedback on some of them.
-
-> 
-> This lets me start a guest without any of those nasty patches with
-> "HACK" in the title ;-0
-> 
-> Ian.
-> 
-> 
-> 
-> 
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<20121004155400.GA12128@phenom.dumpdata.com> b/test/corpus/<20121004155400.GA12128@phenom.dumpdata.com>
deleted file mode 100644 (file)
index 6a87d06..0000000
+++ /dev/null
@@ -1,308 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Oct 04 17:10:27 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 04 Oct 2012 17:10:27 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TJo0F-0007OP-SX
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 04 Oct 2012 17:10:26 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TJnvg-0003Eq-Oo; Thu, 04 Oct 2012 16:05:40 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <konrad.wilk@oracle.com>) id 1TJnve-0003El-3k
-       for xen-devel@lists.xen.org; Thu, 04 Oct 2012 16:05:38 +0000
-Received: from [85.158.143.35:15792] by server-1.bemta-4.messagelabs.com id
-       6B/07-05684-1D3BD605; Thu, 04 Oct 2012 16:05:37 +0000
-X-Env-Sender: konrad.wilk@oracle.com
-X-Msg-Ref: server-13.tower-21.messagelabs.com!1349366734!14577990!1
-X-Originating-IP: [148.87.113.117]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogMTQ4Ljg3LjExMy4xMTcgPT4gNzgzMjE1\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 20690 invoked from network); 4 Oct 2012 16:05:36 -0000
-Received: from rcsinet15.oracle.com (HELO rcsinet15.oracle.com)
-       (148.87.113.117)
-       by server-13.tower-21.messagelabs.com with DHE-RSA-AES256-SHA encrypted
-       SMTP; 4 Oct 2012 16:05:36 -0000
-Received: from ucsinet21.oracle.com (ucsinet21.oracle.com [156.151.31.93])
-       by rcsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
-       ESMTP id q94G5Pf1001133
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
-       Thu, 4 Oct 2012 16:05:25 GMT
-Received: from acsmt358.oracle.com (acsmt358.oracle.com [141.146.40.158])
-       by ucsinet21.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
-       q94G5OV1026686
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
-       Thu, 4 Oct 2012 16:05:24 GMT
-Received: from abhmt105.oracle.com (abhmt105.oracle.com [141.146.116.57])
-       by acsmt358.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
-       q94G5Nak030279; Thu, 4 Oct 2012 11:05:23 -0500
-Received: from phenom.dumpdata.com (/50.195.21.189)
-       by default (Oracle Beehive Gateway v4.0)
-       with ESMTP ; Thu, 04 Oct 2012 09:05:23 -0700
-Received: by phenom.dumpdata.com (Postfix, from userid 1000)
-       id 2456F4035E; Thu,  4 Oct 2012 11:54:00 -0400 (EDT)
-Date: Thu, 4 Oct 2012 11:54:00 -0400
-From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-To: Ian Campbell <Ian.Campbell@citrix.com>
-Message-ID: <20121004155400.GA12128@phenom.dumpdata.com>
-References: <1349363496.866.49.camel@zakaz.uk.xensource.com>
-       <1349363515-26190-11-git-send-email-ian.campbell@citrix.com>
-       <20121004152459.GC11426@phenom.dumpdata.com>
-       <1349365718.866.63.camel@zakaz.uk.xensource.com>
-MIME-Version: 1.0
-Content-Disposition: inline
-In-Reply-To: <1349365718.866.63.camel@zakaz.uk.xensource.com>
-User-Agent: Mutt/1.5.21 (2010-09-15)
-X-Source-IP: ucsinet21.oracle.com [156.151.31.93]
-Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 11/14] arm: implement remap interfaces
- needed for privcmd mappings.
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Thu, Oct 04, 2012 at 04:48:38PM +0100, Ian Campbell wrote:
-> On Thu, 2012-10-04 at 16:24 +0100, Konrad Rzeszutek Wilk wrote:
-> > On Thu, Oct 04, 2012 at 04:11:52PM +0100, Ian Campbell wrote:
-> > > Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
-> > > ---
-> > >  arch/arm/xen/enlighten.c |   94 +++++++++++++++++++++++++++++++++++++++++++++-
-> > >  1 files changed, 92 insertions(+), 2 deletions(-)
-> > > 
-> > > diff --git a/arch/arm/xen/enlighten.c b/arch/arm/xen/enlighten.c
-> > > index ba5cc13..9956af5 100644
-> > > --- a/arch/arm/xen/enlighten.c
-> > > +++ b/arch/arm/xen/enlighten.c
-> > > @@ -9,6 +9,7 @@
-> > >  #include <xen/platform_pci.h>
-> > >  #include <xen/xenbus.h>
-> > >  #include <xen/page.h>
-> > > +#include <xen/xen-ops.h>
-> > >  #include <asm/xen/hypervisor.h>
-> > >  #include <asm/xen/hypercall.h>
-> > >  #include <linux/interrupt.h>
-> > > @@ -18,6 +19,8 @@
-> > >  #include <linux/of_irq.h>
-> > >  #include <linux/of_address.h>
-> > >  
-> > > +#include <linux/mm.h>
-> > > +
-> > >  struct start_info _xen_start_info;
-> > >  struct start_info *xen_start_info = &_xen_start_info;
-> > >  EXPORT_SYMBOL_GPL(xen_start_info);
-> > > @@ -43,15 +46,102 @@ EXPORT_SYMBOL_GPL(xen_platform_pci_unplug);
-> > >  
-> > >  static __read_mostly int xen_events_irq = -1;
-> > >  
-> > > +/* map fgmfn of domid to lpfn in the current domain */
-> > 
-> > <laughs> Say that really fast a couple of times :-)
-> > 
-> > Any way we can explain it a bit more of what each acronym means?
-> 
-> The names come from the x86 PVH version, which has the comment:
-> /* Map foreign gmfn, fgmfn, to local pfn, lpfn. This for the user space 
->  * creating new guest on PVH dom0 and needs to map domU pages. 
->  */
-> Is that preferable? (modulo removing the PVH bit)
-
-<nods>
-> 
-> > 
-> > > +static int map_foreign_page(unsigned long lpfn, unsigned long fgmfn,
-> > > +                            unsigned int domid)
-> > > +{
-> > > +        int rc;
-> > > +        struct xen_add_to_physmap xatp = {
-> > > +                .domid = DOMID_SELF,
-> > > +                .u.foreign_domid = domid,
-> > > +                .space = XENMAPSPACE_gmfn_foreign,
-> > > +                .idx = fgmfn,
-> > > +                .gpfn = lpfn,
-> > > +        };
-> > > +
-> > > +        rc = HYPERVISOR_memory_op(XENMEM_add_to_physmap, &xatp);
-> > > +        if (rc) {
-> > > +                pr_warn("Failed to map pfn to mfn rc:%d pfn:%lx mfn:%lx\n",
-> > 
-> > How about 'Failed to map pfn (0x%lx) to mfn (0x%lx), rc: %d\n" ?
-> 
-> Sure, need to slip foreign domid in there somewhere now I look at it.
-> 
-> x86 PVH has basically the same print BTW.
-
-OK, lets address that as well in the next review of the patchset.
-> 
-> > 
-> > > +                        rc, lpfn, fgmfn);
-> > > +                return 1;
-> > > +        }
-> > > +        return 0;
-> > > +}
-> > > +
-> > > +struct remap_data {
-> > > +        unsigned long fgmfn; /* foreign domain's gmfn */
-> > 
-> > Shouldn't this be called now 'xen_pfn_t' or something.
-> 
-> xen_pfn_t is needed at the hypervisor interface layer, I'm not so sure
-> about kernel internal use. I guess it can't hurt?
-
-My thoughts.. as somebody might be wondering why here is unsigned long
-but other places it is not.
-> 
-> > 
-> > > +        pgprot_t prot;
-> > > +        domid_t  domid;
-> > > +        struct vm_area_struct *vma;
-> > > +        struct xen_remap_mfn_info *info;
-> > > +};
-> > > +
-> > > +static int remap_pte_fn(pte_t *ptep, pgtable_t token, unsigned long addr,
-> > > +                        void *data)
-> > > +{
-> > > +        struct remap_data *info = data;
-> > > +        struct xen_remap_mfn_info *savp = info->info;
-> > > +        struct page *page = savp->pi_paga[savp->pi_next_todo++];
-> > > +        unsigned long pfn = page_to_pfn(page);
-> > > +        pte_t pte = pfn_pte(pfn, info->prot);
-> > > +
-> > > +        if (map_foreign_page(pfn, info->fgmfn, info->domid))
-> > > +                return -EFAULT;
-> > > +        set_pte_at(info->vma->vm_mm, addr, ptep, pte);
-> > > +
-> > > +        return 0;
-> > > +}
-> > > +
-> > >  int xen_remap_domain_mfn_range(struct vm_area_struct *vma,
-> > >                                 unsigned long addr,
-> > >                                 unsigned long mfn, int nr,
-> > > -                               pgprot_t prot, unsigned domid)
-> > > +                               pgprot_t prot, unsigned domid,
-> > > +                               struct xen_remap_mfn_info *info)
-> > >  {
-> > > -        return -ENOSYS;
-> > > +        int err;
-> > > +        struct remap_data data;
-> > > +
-> > > +        /* TBD: Batching, current sole caller only does page at a time */
-> > > +        if (nr > 1)
-> > 
-> > Lets also wrap it with WARN_ON?
-> 
-> ACK, needs doing on x86 PVH too then.
-> 
-> > 
-> > > +                return -EINVAL;
-> > > +
-> > > +        data.fgmfn = mfn;
-> > > +        data.prot = prot;
-> > > +        data.domid = domid;
-> > > +        data.vma = vma;
-> > > +        data.info = info;
-> > > +        err = apply_to_page_range(vma->vm_mm, addr, nr << PAGE_SHIFT,
-> > > +                                  remap_pte_fn, &data);
-> > > +        return err;
-> > >  }
-> > >  EXPORT_SYMBOL_GPL(xen_remap_domain_mfn_range);
-> > >  
-> > > +/* Returns: Number of pages unmapped */
-> > > +int xen_unmap_domain_mfn_range(struct vm_area_struct *vma,
-> > > +                               struct xen_remap_mfn_info *info)
-> > > +{
-> > > +        int count = 0;
-> > > +
-> > > +        while (info->pi_next_todo--) {
-> > > +                struct xen_remove_from_physmap xrp;
-> > > +                unsigned long rc, pfn;
-> > > +
-> > > +                pfn = page_to_pfn(info->pi_paga[info->pi_next_todo]);
-> > 
-> > Won't this miss the first pi_next_todo? You did the 'pi_next_todo--' so
-> > will the compiler decrement it here in this operation or will it do
-> > when it gets to the 'do' logic of the loop?
-> 
-> It's a post decrement so if pi_next_todo == 1 then the expression in the
-> while will see 1 (true) but inside the loop we see zero. So we end up
-> processing elements N-1..0 of the array which is correct.
-
-OK. That is what I wanted to make sure about.
-> 
-> This is the same as on x86 PVH, so if I'm wrong then that is too.
-> 
-> I mentioned in the PVH thread this morning that I think this interface
-> should drop pi_next_todo and have a simple for loop based on the number
-> of pages between vm_start...vm_end here.
-
-Yeah, I think we need to do that. I understand Mukesh's desire to have
-an easy searchable name for variables, but that 'pi' just makes me
-think of bathroom, then of 3.1415, and then I have to actually recall
-really hard why it is called 'pi' .. and I still can't remember why.
-> 
-> > 
-> > > +
-> > > +                xrp.domid = DOMID_SELF;
-> > > +                xrp.gpfn = pfn;
-> > > +                rc = HYPERVISOR_memory_op(XENMEM_remove_from_physmap, &xrp);
-> > 
-> > 'rc' is 'unsigned long'. Is that right? You don't want it to be 'int'?
-> 
-> Hypercalls return unsigned long these days, I think it was considered a
-> mistake that some didn't. See <25744:47080c965937> in the hypervisor
-> tree. 
-> 
-> Oh, wait, we are both wrong -- it's a long. I'll fix that...
-> 
-> > 
-> > > +                if (rc) {
-> > > +                        pr_warn("Failed to unmap pfn:%lx rc:%ld\n",
-> > > +                                pfn, rc);
-> > > +                        return count;
-> > > +                }
-> > > +                count++;
-> > > +        }
-> > > +        return count;
-> > > +}
-> > > +EXPORT_SYMBOL_GPL(xen_unmap_domain_mfn_range);
-> > > +
-> > >  /*
-> > >   * see Documentation/devicetree/bindings/arm/xen.txt for the
-> > >   * documentation of the Xen Device Tree format.
-> > > -- 
-> > > 1.7.2.5
-> 
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<20121004182518.76e9624a@mantra.us.oracle.com> b/test/corpus/<20121004182518.76e9624a@mantra.us.oracle.com>
deleted file mode 100644 (file)
index 5eea373..0000000
+++ /dev/null
@@ -1,145 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Oct 05 02:30:08 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 05 Oct 2012 02:30:08 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TJwjt-0001IP-Qs
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 05 Oct 2012 02:30:08 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TJwfT-000154-AM; Fri, 05 Oct 2012 01:25:31 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <mukesh.rathor@oracle.com>) id 1TJwfR-00014z-FS
-       for Xen-devel@lists.xensource.com; Fri, 05 Oct 2012 01:25:29 +0000
-Received: from [85.158.143.99:31871] by server-2.bemta-4.messagelabs.com id
-       2C/CA-06610-8073E605; Fri, 05 Oct 2012 01:25:28 +0000
-X-Env-Sender: mukesh.rathor@oracle.com
-X-Msg-Ref: server-15.tower-216.messagelabs.com!1349400326!32914384!1
-X-Originating-IP: [148.87.113.117]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogMTQ4Ljg3LjExMy4xMTcgPT4gNzg0NjMy\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 20902 invoked from network); 5 Oct 2012 01:25:28 -0000
-Received: from rcsinet15.oracle.com (HELO rcsinet15.oracle.com)
-       (148.87.113.117)
-       by server-15.tower-216.messagelabs.com with DHE-RSA-AES256-SHA
-       encrypted SMTP; 5 Oct 2012 01:25:28 -0000
-Received: from ucsinet22.oracle.com (ucsinet22.oracle.com [156.151.31.94])
-       by rcsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
-       ESMTP id q951PLHI024848
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
-       Fri, 5 Oct 2012 01:25:21 GMT
-Received: from acsmt358.oracle.com (acsmt358.oracle.com [141.146.40.158])
-       by ucsinet22.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
-       q951PKkA028197
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
-       Fri, 5 Oct 2012 01:25:20 GMT
-Received: from abhmt117.oracle.com (abhmt117.oracle.com [141.146.116.69])
-       by acsmt358.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
-       q951PJVX027650; Thu, 4 Oct 2012 20:25:20 -0500
-Received: from mantra.us.oracle.com (/130.35.68.95)
-       by default (Oracle Beehive Gateway v4.0)
-       with ESMTP ; Thu, 04 Oct 2012 18:25:19 -0700
-Date: Thu, 4 Oct 2012 18:25:18 -0700
-From: Mukesh Rathor <mukesh.rathor@oracle.com>
-To: Ian Campbell <Ian.Campbell@citrix.com>
-Message-ID: <20121004182518.76e9624a@mantra.us.oracle.com>
-In-Reply-To: <1349339920.650.220.camel@zakaz.uk.xensource.com>
-References: <20120921121659.5a723de9@mantra.us.oracle.com>
-       <alpine.DEB.2.02.1209241257440.29232@kaball.uk.xensource.com>
-       <20120924154335.097d3fb9@mantra.us.oracle.com>
-       <alpine.DEB.2.02.1209251054140.29232@kaball.uk.xensource.com>
-       <20120925180416.0137d61a@mantra.us.oracle.com>
-       <alpine.DEB.2.02.1209261225340.29232@kaball.uk.xensource.com>
-       <20121002183619.70734b7a@mantra.us.oracle.com>
-       <20121002190323.2e16f6ff@mantra.us.oracle.com>
-       <alpine.DEB.2.02.1210031242180.29232@kaball.uk.xensource.com>
-       <20121003153714.4656b7e9@mantra.us.oracle.com>
-       <1349339920.650.220.camel@zakaz.uk.xensource.com>
-Organization: Oracle Corporation
-X-Mailer: Claws Mail 3.7.6 (GTK+ 2.18.9; x86_64-redhat-linux-gnu)
-Mime-Version: 1.0
-X-Source-IP: ucsinet22.oracle.com [156.151.31.94]
-Cc: "Xen-devel@lists.xensource.com" <Xen-devel@lists.xensource.com>, Konrad
-       Rzeszutek Wilk <konrad.wilk@oracle.com>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH v1 3/8]: PVH startup changes (enlighten.c)
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Thu, 4 Oct 2012 09:38:40 +0100
-Ian Campbell <Ian.Campbell@citrix.com> wrote:
-
-> On Wed, 2012-10-03 at 23:37 +0100, Mukesh Rathor wrote:
-> > On Wed, 3 Oct 2012 12:58:22 +0100
-> > Ok, finally, focussing on this, the issue with pfn in dom0 is that
-> > I need pfn allocated in construct_dom0() and be mapped so that the
-> > guest can just do :
-> > 
-> > HYPERVISOR_shared_info=(struct shared_info
-> > *)__va(xen_start_info->shared_info);
-> > 
-> > How about following I am experimenting with right now:
-> > 
-> > in construct_dom0():
-> > 
-> >     vstartinfo_end   = (vstartinfo_start +
-> >                         sizeof(struct start_info) +
-> >                         sizeof(struct dom0_vga_console_info));
-> > 
-> >     if ( is_hybrid_domain(d) ) {
-> >         start_info_pfn_addr = round_pgup(vstartinfo_end) - v_start;
-> >         vstartinfo_end   += PAGE_SIZE;
-> >     }
-> > 
-> > I can then put (PFN: start_info_pfn_addr)->(MFN:
-> > virt_to_maddr(d->shared_info)) in the p2m, and dom0 just has to do
-> > __va(), like domU does now.  I wont' need to special case dom0 then.
-> > 
-> > Do you foresee any problems with this approach?
-> 
-> Hard to say without all the surrounding context but it seems plausible
-> to me.
-
-
-Ok, above works. So no dom0 special case in linux now to map shared_page.
-
-thanks
-Mukesh
-
-
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<20121004183528.060416a0@mantra.us.oracle.com> b/test/corpus/<20121004183528.060416a0@mantra.us.oracle.com>
deleted file mode 100644 (file)
index adf8c27..0000000
+++ /dev/null
@@ -1,130 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Oct 05 02:40:15 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 05 Oct 2012 02:40:15 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TJwtg-0001JM-V5
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 05 Oct 2012 02:40:15 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TJwpJ-0001LQ-Do; Fri, 05 Oct 2012 01:35:41 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <mukesh.rathor@oracle.com>) id 1TJwpH-0001LL-Hs
-       for Xen-devel@lists.xensource.com; Fri, 05 Oct 2012 01:35:39 +0000
-Received: from [85.158.137.99:51381] by server-2.bemta-3.messagelabs.com id
-       60/35-16514-A693E605; Fri, 05 Oct 2012 01:35:38 +0000
-X-Env-Sender: mukesh.rathor@oracle.com
-X-Msg-Ref: server-4.tower-217.messagelabs.com!1349400936!20357396!1
-X-Originating-IP: [141.146.126.227]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogMTQxLjE0Ni4xMjYuMjI3ID0+IDc5NDYyMA==\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 31567 invoked from network); 5 Oct 2012 01:35:37 -0000
-Received: from acsinet15.oracle.com (HELO acsinet15.oracle.com)
-       (141.146.126.227)
-       by server-4.tower-217.messagelabs.com with DHE-RSA-AES256-SHA encrypted
-       SMTP; 5 Oct 2012 01:35:37 -0000
-Received: from acsinet21.oracle.com (acsinet21.oracle.com [141.146.126.237])
-       by acsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
-       ESMTP id q951ZUJ3001776
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
-       Fri, 5 Oct 2012 01:35:31 GMT
-Received: from acsmt357.oracle.com (acsmt357.oracle.com [141.146.40.157])
-       by acsinet21.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
-       q951ZT0O017380
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
-       Fri, 5 Oct 2012 01:35:30 GMT
-Received: from abhmt117.oracle.com (abhmt117.oracle.com [141.146.116.69])
-       by acsmt357.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
-       q951ZT5c001620; Thu, 4 Oct 2012 20:35:29 -0500
-Received: from mantra.us.oracle.com (/130.35.68.95)
-       by default (Oracle Beehive Gateway v4.0)
-       with ESMTP ; Thu, 04 Oct 2012 18:35:29 -0700
-Date: Thu, 4 Oct 2012 18:35:28 -0700
-From: Mukesh Rathor <mukesh.rathor@oracle.com>
-To: Ian Campbell <Ian.Campbell@citrix.com>
-Message-ID: <20121004183528.060416a0@mantra.us.oracle.com>
-In-Reply-To: <1349265914.650.136.camel@zakaz.uk.xensource.com>
-References: <20120921121659.5a723de9@mantra.us.oracle.com>
-       <alpine.DEB.2.02.1209241257440.29232@kaball.uk.xensource.com>
-       <20120924154335.097d3fb9@mantra.us.oracle.com>
-       <alpine.DEB.2.02.1209251054140.29232@kaball.uk.xensource.com>
-       <20120925180416.0137d61a@mantra.us.oracle.com>
-       <alpine.DEB.2.02.1209261225340.29232@kaball.uk.xensource.com>
-       <20121002183619.70734b7a@mantra.us.oracle.com>
-       <20121002190323.2e16f6ff@mantra.us.oracle.com>
-       <alpine.DEB.2.02.1210031242180.29232@kaball.uk.xensource.com>
-       <1349265914.650.136.camel@zakaz.uk.xensource.com>
-Organization: Oracle Corporation
-X-Mailer: Claws Mail 3.7.6 (GTK+ 2.18.9; x86_64-redhat-linux-gnu)
-Mime-Version: 1.0
-X-Source-IP: acsinet21.oracle.com [141.146.126.237]
-Cc: "Xen-devel@lists.xensource.com" <Xen-devel@lists.xensource.com>, Konrad
-       Rzeszutek Wilk <konrad.wilk@oracle.com>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH v1 3/8]: PVH startup changes (enlighten.c)
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Wed, 3 Oct 2012 13:05:14 +0100
-Ian Campbell <Ian.Campbell@citrix.com> wrote:
-
-> On Wed, 2012-10-03 at 12:58 +0100, Stefano Stabellini wrote:
-> > > So for now, how about, lets go
-> > > with what I've got. I'll make a note, and when I do xen patch,
-> > > I'll figure it out, and would be a very small linux patch. I want
-> > > to get linux patch in soon before the window closes.
-> > 
-> > We can leave page special as it is for now with very little
-> > consequences, because it is not part of the interface with Xen.
-> > However this is part of the interface, so whatever we choose here
-> > is going to be hard to change later on.
-> 
-> I suggested that until we have seen and reviewed the hypervisor side
-> patches this guest side functionality all needs to be under an option
-> which has CONFIG_EXPERIMENTAL as a dependency and a comment explaining
-> that the ABI is not fixed yet, similar to what we did for the ARM
-> port.
-
-Konrad is going to keep the changes in his tree and not upstream for
-couple months while we go thru the xen patches. This would be a big
-help for me as I won't have to constantly refresh linux tree.
-
-I hope we can get some baseline in linux and xen soon.
-
-thanks
-Mukesh
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<20121005114006.55115cca@mantra.us.oracle.com> b/test/corpus/<20121005114006.55115cca@mantra.us.oracle.com>
deleted file mode 100644 (file)
index 49bf8a5..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Oct 05 19:43:59 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 05 Oct 2012 19:43:59 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TKCsO-00014X-SW
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 05 Oct 2012 19:43:59 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TKCor-0004Ws-UF; Fri, 05 Oct 2012 18:40:17 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <mukesh.rathor@oracle.com>) id 1TKCoq-0004Wm-ST
-       for xen-devel@lists.xen.org; Fri, 05 Oct 2012 18:40:17 +0000
-Received: from [85.158.143.35:17059] by server-1.bemta-4.messagelabs.com id
-       3D/7F-05684-0992F605; Fri, 05 Oct 2012 18:40:16 +0000
-X-Env-Sender: mukesh.rathor@oracle.com
-X-Msg-Ref: server-4.tower-21.messagelabs.com!1349462413!5496248!1
-X-Originating-IP: [148.87.113.117]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogMTQ4Ljg3LjExMy4xMTcgPT4gNzg2MDM5\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 7589 invoked from network); 5 Oct 2012 18:40:15 -0000
-Received: from rcsinet15.oracle.com (HELO rcsinet15.oracle.com)
-       (148.87.113.117)
-       by server-4.tower-21.messagelabs.com with DHE-RSA-AES256-SHA encrypted
-       SMTP; 5 Oct 2012 18:40:15 -0000
-Received: from ucsinet22.oracle.com (ucsinet22.oracle.com [156.151.31.94])
-       by rcsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
-       ESMTP id q95Ie8Wv007258
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
-       Fri, 5 Oct 2012 18:40:09 GMT
-Received: from acsmt356.oracle.com (acsmt356.oracle.com [141.146.40.156])
-       by ucsinet22.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
-       q95Ie7cq018349
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
-       Fri, 5 Oct 2012 18:40:08 GMT
-Received: from abhmt107.oracle.com (abhmt107.oracle.com [141.146.116.59])
-       by acsmt356.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
-       q95Ie7R6004860; Fri, 5 Oct 2012 13:40:07 -0500
-Received: from mantra.us.oracle.com (/130.35.68.95)
-       by default (Oracle Beehive Gateway v4.0)
-       with ESMTP ; Fri, 05 Oct 2012 11:40:07 -0700
-Date: Fri, 5 Oct 2012 11:40:06 -0700
-From: Mukesh Rathor <mukesh.rathor@oracle.com>
-To: Ian Campbell <Ian.Campbell@citrix.com>
-Message-ID: <20121005114006.55115cca@mantra.us.oracle.com>
-In-Reply-To: <1349437645.20946.74.camel@zakaz.uk.xensource.com>
-References: <1349363496.866.49.camel@zakaz.uk.xensource.com>
-       <1349363515-26190-3-git-send-email-ian.campbell@citrix.com>
-       <alpine.DEB.2.02.1210051239100.29232@kaball.uk.xensource.com>
-       <1349437645.20946.74.camel@zakaz.uk.xensource.com>
-Organization: Oracle Corporation
-X-Mailer: Claws Mail 3.7.6 (GTK+ 2.18.9; x86_64-redhat-linux-gnu)
-Mime-Version: 1.0
-X-Source-IP: ucsinet22.oracle.com [156.151.31.94]
-Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 03/14] xen events: xen_callback_vector is
-       x86 specific
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Fri, 5 Oct 2012 12:47:25 +0100
-Ian Campbell <Ian.Campbell@citrix.com> wrote:
-
-> On Fri, 2012-10-05 at 12:43 +0100, Stefano Stabellini wrote:
-> > On Thu, 4 Oct 2012, Ian Campbell wrote:
-> > > Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
-> > > ---
-> > > Should instead move somewhere arch specific?
-> > 
-> > This shouldn't be needed: it should be already protected by
-> > CONFIG_XEN_PVHVM (that is x86 specific).
-> 
-> Mukesh removed that ifdef because PVH also wants this function.
-> 
-
-I'm putting #ifdef CONFIG_X86 around it.
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<20121005121024.17c22c7d@mantra.us.oracle.com> b/test/corpus/<20121005121024.17c22c7d@mantra.us.oracle.com>
deleted file mode 100644 (file)
index 20ce275..0000000
+++ /dev/null
@@ -1,177 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Oct 05 20:15:04 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 05 Oct 2012 20:15:04 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TKDMT-0001D6-Ra
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 05 Oct 2012 20:15:04 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TKDIF-0005qL-8K; Fri, 05 Oct 2012 19:10:39 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <mukesh.rathor@oracle.com>) id 1TKDID-0005qE-8x
-       for xen-devel@lists.xen.org; Fri, 05 Oct 2012 19:10:37 +0000
-Received: from [85.158.139.83:23078] by server-4.bemta-5.messagelabs.com id
-       8B/69-20767-CA03F605; Fri, 05 Oct 2012 19:10:36 +0000
-X-Env-Sender: mukesh.rathor@oracle.com
-X-Msg-Ref: server-11.tower-182.messagelabs.com!1349464234!26407535!1
-X-Originating-IP: [148.87.113.117]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogMTQ4Ljg3LjExMy4xMTcgPT4gNzg2MDM5\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 27317 invoked from network); 5 Oct 2012 19:10:35 -0000
-Received: from rcsinet15.oracle.com (HELO rcsinet15.oracle.com)
-       (148.87.113.117)
-       by server-11.tower-182.messagelabs.com with DHE-RSA-AES256-SHA
-       encrypted SMTP; 5 Oct 2012 19:10:35 -0000
-Received: from ucsinet22.oracle.com (ucsinet22.oracle.com [156.151.31.94])
-       by rcsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
-       ESMTP id q95JAS0J002504
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
-       Fri, 5 Oct 2012 19:10:29 GMT
-Received: from acsmt356.oracle.com (acsmt356.oracle.com [141.146.40.156])
-       by ucsinet22.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
-       q95JARLC006664
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
-       Fri, 5 Oct 2012 19:10:28 GMT
-Received: from abhmt115.oracle.com (abhmt115.oracle.com [141.146.116.67])
-       by acsmt356.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
-       q95JARvV024894; Fri, 5 Oct 2012 14:10:27 -0500
-Received: from mantra.us.oracle.com (/130.35.68.95)
-       by default (Oracle Beehive Gateway v4.0)
-       with ESMTP ; Fri, 05 Oct 2012 12:10:25 -0700
-Date: Fri, 5 Oct 2012 12:10:24 -0700
-From: Mukesh Rathor <mukesh.rathor@oracle.com>
-To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-Message-ID: <20121005121024.17c22c7d@mantra.us.oracle.com>
-In-Reply-To: <alpine.DEB.2.02.1210051302160.29232@kaball.uk.xensource.com>
-References: <1349363496.866.49.camel@zakaz.uk.xensource.com>
-       <1349363515-26190-7-git-send-email-ian.campbell@citrix.com>
-       <alpine.DEB.2.02.1210051302160.29232@kaball.uk.xensource.com>
-Organization: Oracle Corporation
-X-Mailer: Claws Mail 3.7.6 (GTK+ 2.18.9; x86_64-redhat-linux-gnu)
-Mime-Version: 1.0
-X-Source-IP: ucsinet22.oracle.com [156.151.31.94]
-Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
-       Ian Campbell <ian.campbell@citrix.com>,
-       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 07/14] xen: balloon: do not update stage 1
- pagetable for autotranslated guests
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Fri, 5 Oct 2012 13:05:01 +0100
-Stefano Stabellini <stefano.stabellini@eu.citrix.com> wrote:
-
-> On Thu, 4 Oct 2012, Ian Campbell wrote:
-> > This is unnecessary (since the page will be removed from the p2m)
-> > and can be tricky if the page is in the middle of a superpage, as
-> > it is on ARM.
-> > 
-> 
-> I think that this patch is correct. I'll leave to Konrad whether we
-> should carry the original incorrect PVH patch and this separate fix or
-> just merge the two of them.
-> 
-> 
-> > Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
-> > ---
-> > Also effects PVH but in a benign way I think.
-> >
-> >  drivers/xen/balloon.c |   23 +++--------------------
-> >  1 files changed, 3 insertions(+), 20 deletions(-)
-> > 
-> > diff --git a/drivers/xen/balloon.c b/drivers/xen/balloon.c
-> > index 7885a19..1b56ae0 100644
-> > --- a/drivers/xen/balloon.c
-> > +++ b/drivers/xen/balloon.c
-> > @@ -357,15 +357,7 @@ static enum bp_state
-> > increase_reservation(unsigned long nr_pages)
-> > BUG_ON(!xen_feature(XENFEAT_auto_translated_physmap) &&
-> > phys_to_machine_mapping_valid(pfn)); 
-> > -          if (xen_pv_domain() && 
-> > -              xen_feature(XENFEAT_auto_translated_physmap)) {
-> > -                  /* PVH: we just need to update native page
-> > table */
-> > -                  pte_t *ptep;
-> > -                  unsigned int level;
-> > -                  void *addr = __va(pfn << PAGE_SHIFT);
-> > -                  ptep = lookup_address((unsigned long)addr,
-> > &level);
-> > -                  set_pte(ptep, pfn_pte(pfn, PAGE_KERNEL));
-> > -          } else
-> > +          if (!xen_feature(XENFEAT_auto_translated_physmap))
-> >                    set_phys_to_machine(pfn, frame_list[i]);
-> >  
-> >            /* Link back into the page tables if not highmem.
-> > */ @@ -427,21 +419,12 @@ static enum bp_state
-> > decrease_reservation(unsigned long nr_pages, gfp_t gfp) 
-> >            scrub_page(page);
-> >  
-> > -          if (xen_pv_domain() && !PageHighMem(page)) {
-> > -                  if
-> > (xen_feature(XENFEAT_auto_translated_physmap)) {
-> > -                          unsigned int level;
-> > -                          pte_t *ptep;
-> > -                          void *addr = __va(pfn <<
-> > PAGE_SHIFT);
-> > -                          ptep = lookup_address((unsigned
-> > long)addr, 
-> > -                                                  &level);
-> > -                          set_pte(ptep, __pte(0));
-> > -
-> > -                  } else {
-> > +          if (xen_pv_domain() && !PageHighMem(page) &&
-> > +              !xen_feature(XENFEAT_auto_translated_physmap))
-> > { ret = HYPERVISOR_update_va_mapping(
-> >                                    (unsigned long)__va(pfn <<
-> > PAGE_SHIFT), __pte_ma(0), 0);
-> >                            BUG_ON(ret);
-> > -                  }
-> >            }
-> >    }
-> >  
-> > -- 
-> > 1.7.2.5
-> > 
-
-
-I've made this change in my tree also. So, its good for PVH also. 
-
-thanks
-Mukesh
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<20121008124101.GB29650@localhost.localdomain> b/test/corpus/<20121008124101.GB29650@localhost.localdomain>
deleted file mode 100644 (file)
index cb2f82a..0000000
+++ /dev/null
@@ -1,143 +0,0 @@
-From xen-devel-bounces@lists.xen.org Mon Oct 08 13:45:06 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Mon, 08 Oct 2012 13:45:06 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TLChg-0003Xm-OD
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Mon, 08 Oct 2012 13:45:06 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TLCdy-00034P-PK; Mon, 08 Oct 2012 12:41:10 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <ketuzsezr@gmail.com>) id 1TLCdw-00034H-OU
-       for Xen-devel@lists.xensource.com; Mon, 08 Oct 2012 12:41:08 +0000
-Received: from [85.158.137.99:13992] by server-7.bemta-3.messagelabs.com id
-       54/1F-15765-3E9C2705; Mon, 08 Oct 2012 12:41:07 +0000
-X-Env-Sender: ketuzsezr@gmail.com
-X-Msg-Ref: server-6.tower-217.messagelabs.com!1349700066!15572511!1
-X-Originating-IP: [209.85.216.171]
-X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 32301 invoked from network); 8 Oct 2012 12:41:07 -0000
-Received: from mail-qc0-f171.google.com (HELO mail-qc0-f171.google.com)
-       (209.85.216.171)
-       by server-6.tower-217.messagelabs.com with RC4-SHA encrypted SMTP;
-       8 Oct 2012 12:41:07 -0000
-Received: by mail-qc0-f171.google.com with SMTP id d1so177476qca.30
-       for <Xen-devel@lists.xensource.com>;
-       Mon, 08 Oct 2012 05:41:06 -0700 (PDT)
-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
-       h=sender:date:from:to:cc:subject:message-id:references:mime-version
-       :content-type:content-disposition:in-reply-to:user-agent;
-       bh=OrrcgjUTLSPmi1ocKCS54pDd1642oPVRo4CciDvUgSg=;
-       b=oNur6VhE8m+CzaY1XOX6ixHykD8+9wonpZo0+MhZqawIwgvt3MZoQfKyDaOx6JVKfL
-       /0hsNNa///nPwLJ1NkQ9xU7Y40dGKS3Y0VlVyTEE2vKmynYxqgb17orCRJr3FsnY+J9m
-       +7XHPPpdmyydDaxlMKWgErlOgLIW6aZUOPubXpd0DBuM6J1ZqS1abyfakgeVgmMO5fZe
-       Vk+TR5ylwmHO6B9JbaApDjedi1g9RSuIgIwMU8cSxp1Iwn7U0iPEHSbYwainmL/VbSK0
-       UtFjWWIMAcgk7HX7HG2pKg/NCnLiiazpCsfr7jDwAqRP2OC4tv/hnIq7iJM14LDGEZET
-       lsEA==
-Received: by 10.49.48.43 with SMTP id i11mr28123441qen.10.1349700065876;
-       Mon, 08 Oct 2012 05:41:05 -0700 (PDT)
-Received: from localhost.localdomain
-       (50-195-21-189-static.hfc.comcastbusiness.net. [50.195.21.189])
-       by mx.google.com with ESMTPS id em3sm17980161qab.5.2012.10.08.05.41.04
-       (version=TLSv1/SSLv3 cipher=OTHER);
-       Mon, 08 Oct 2012 05:41:05 -0700 (PDT)
-Date: Mon, 8 Oct 2012 08:41:02 -0400
-From: Konrad Rzeszutek Wilk <konrad@kernel.org>
-To: Ian Campbell <Ian.Campbell@citrix.com>
-Message-ID: <20121008124101.GB29650@localhost.localdomain>
-References: <20120924154335.097d3fb9@mantra.us.oracle.com>
-       <alpine.DEB.2.02.1209251054140.29232@kaball.uk.xensource.com>
-       <20120925180416.0137d61a@mantra.us.oracle.com>
-       <alpine.DEB.2.02.1209261225340.29232@kaball.uk.xensource.com>
-       <20121002183619.70734b7a@mantra.us.oracle.com>
-       <20121002190323.2e16f6ff@mantra.us.oracle.com>
-       <alpine.DEB.2.02.1210031242180.29232@kaball.uk.xensource.com>
-       <1349265914.650.136.camel@zakaz.uk.xensource.com>
-       <20121004183528.060416a0@mantra.us.oracle.com>
-       <1349429005.20946.20.camel@zakaz.uk.xensource.com>
-MIME-Version: 1.0
-Content-Disposition: inline
-In-Reply-To: <1349429005.20946.20.camel@zakaz.uk.xensource.com>
-User-Agent: Mutt/1.5.21 (2010-09-15)
-Cc: "Xen-devel@lists.xensource.com" <Xen-devel@lists.xensource.com>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>,
-       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,T_DKIM_INVALID,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH v1 3/8]: PVH startup changes (enlighten.c)
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Fri, Oct 05, 2012 at 10:23:25AM +0100, Ian Campbell wrote:
-> On Fri, 2012-10-05 at 02:35 +0100, Mukesh Rathor wrote:
-> > On Wed, 3 Oct 2012 13:05:14 +0100
-> > Ian Campbell <Ian.Campbell@citrix.com> wrote:
-> > 
-> > > On Wed, 2012-10-03 at 12:58 +0100, Stefano Stabellini wrote:
-> > > > > So for now, how about, lets go
-> > > > > with what I've got. I'll make a note, and when I do xen patch,
-> > > > > I'll figure it out, and would be a very small linux patch. I want
-> > > > > to get linux patch in soon before the window closes.
-> > > > 
-> > > > We can leave page special as it is for now with very little
-> > > > consequences, because it is not part of the interface with Xen.
-> > > > However this is part of the interface, so whatever we choose here
-> > > > is going to be hard to change later on.
-> > > 
-> > > I suggested that until we have seen and reviewed the hypervisor side
-> > > patches this guest side functionality all needs to be under an option
-> > > which has CONFIG_EXPERIMENTAL as a dependency and a comment explaining
-> > > that the ABI is not fixed yet, similar to what we did for the ARM
-> > > port.
-> > 
-> > Konrad is going to keep the changes in his tree and not upstream for
-> > couple months while we go thru the xen patches. This would be a big
-> > help for me as I won't have to constantly refresh linux tree.
-> 
-> Ah, ok, that sounds like a good plan.
-> 
-> In the case where the ARM stuff I have built on this becomes ripe first
-> would it be OK with you guys if I were to cherry pick the relevant bits
-> of the PVH stuff into a series to go in sooner?
-
-My plan right now was to wait for Mukesh to repost his series (which
-I hope will address all our review comments) and then I can shovel
-any other patches on top of that.
-
-But if it makes sense to intermix Mukeshes's patchs, and yours.
-(or squash some together) I can do that too.
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<20121008175925.105e78de@mantra.us.oracle.com> b/test/corpus/<20121008175925.105e78de@mantra.us.oracle.com>
deleted file mode 100644 (file)
index 5aee570..0000000
+++ /dev/null
@@ -1,123 +0,0 @@
-From xen-devel-bounces@lists.xen.org Tue Oct 09 02:06:25 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Tue, 09 Oct 2012 02:06:25 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TLOH9-0005kf-4k
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 09 Oct 2012 02:06:25 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TLOBe-0005Zn-It; Tue, 09 Oct 2012 01:00:42 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <mukesh.rathor@oracle.com>) id 1TLOBc-0005DC-9G
-       for xen-devel@lists.xen.org; Tue, 09 Oct 2012 01:00:40 +0000
-Received: from [85.158.139.83:36198] by server-6.bemta-5.messagelabs.com id
-       88/68-14717-73773705; Tue, 09 Oct 2012 01:00:39 +0000
-X-Env-Sender: mukesh.rathor@oracle.com
-X-Msg-Ref: server-10.tower-182.messagelabs.com!1349744435!34248533!1
-X-Originating-IP: [141.146.126.227]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogMTQxLjE0Ni4xMjYuMjI3ID0+IDc5OTA1Nw==\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 24231 invoked from network); 9 Oct 2012 01:00:37 -0000
-Received: from acsinet15.oracle.com (HELO acsinet15.oracle.com)
-       (141.146.126.227)
-       by server-10.tower-182.messagelabs.com with DHE-RSA-AES256-SHA
-       encrypted SMTP; 9 Oct 2012 01:00:37 -0000
-Received: from acsinet21.oracle.com (acsinet21.oracle.com [141.146.126.237])
-       by acsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
-       ESMTP id q9910RA5010868
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
-       Tue, 9 Oct 2012 01:00:28 GMT
-Received: from acsmt356.oracle.com (acsmt356.oracle.com [141.146.40.156])
-       by acsinet21.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
-       q9910Rmc000725
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
-       Tue, 9 Oct 2012 01:00:27 GMT
-Received: from abhmt114.oracle.com (abhmt114.oracle.com [141.146.116.66])
-       by acsmt356.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
-       q990xQ8R019446; Mon, 8 Oct 2012 19:59:26 -0500
-Received: from mantra.us.oracle.com (/130.35.68.95)
-       by default (Oracle Beehive Gateway v4.0)
-       with ESMTP ; Mon, 08 Oct 2012 17:59:26 -0700
-Date: Mon, 8 Oct 2012 17:59:25 -0700
-From: Mukesh Rathor <mukesh.rathor@oracle.com>
-To: Ian Campbell <Ian.Campbell@citrix.com>
-Message-ID: <20121008175925.105e78de@mantra.us.oracle.com>
-In-Reply-To: <1349444550.20946.102.camel@zakaz.uk.xensource.com>
-References: <1349363496.866.49.camel@zakaz.uk.xensource.com>
-       <1349363515-26190-11-git-send-email-ian.campbell@citrix.com>
-       <alpine.DEB.2.02.1210051432010.29232@kaball.uk.xensource.com>
-       <1349444550.20946.102.camel@zakaz.uk.xensource.com>
-Organization: Oracle Corporation
-X-Mailer: Claws Mail 3.7.6 (GTK+ 2.18.9; x86_64-redhat-linux-gnu)
-Mime-Version: 1.0
-X-Source-IP: acsinet21.oracle.com [141.146.126.237]
-Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 11/14] arm: implement remap interfaces
- needed for privcmd mappings.
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Fri, 5 Oct 2012 14:42:30 +0100
-Ian Campbell <Ian.Campbell@citrix.com> wrote:
-
-> On Fri, 2012-10-05 at 14:36 +0100, Stefano Stabellini wrote:
-> [... snip dozens of pointless lines -- please trim your quotes...]
-> 
-> > > -        return -ENOSYS;
-> > > +        int err;
-> > > +        struct remap_data data;
-> > > +
-> > > +        /* TBD: Batching, current sole caller only does page at
-> > > a time */
-> > > +        if (nr > 1)
-> > > +                return -EINVAL;
-> > 
-> > It looks like that this implementation of
-> > xen_remap_domain_mfn_range is capable of handling nr > 1, so why
-> > this return -EINVAL?
-> 
-> Hrm, yes. I think I just blindly copied that from the pvh
-> implementation.
-> 
-> [...]
-
-PVH was using a different mechanism earlier, pfn from high up memory
-address space. So it was doing one at a time. It can be removed now.
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<20121008180728.07893577@mantra.us.oracle.com> b/test/corpus/<20121008180728.07893577@mantra.us.oracle.com>
deleted file mode 100644 (file)
index 23c195f..0000000
+++ /dev/null
@@ -1,130 +0,0 @@
-From xen-devel-bounces@lists.xen.org Tue Oct 09 02:14:34 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Tue, 09 Oct 2012 02:14:34 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TLOP1-0005mM-KE
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 09 Oct 2012 02:14:33 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TLOKP-0003Mv-Oo; Tue, 09 Oct 2012 01:09:45 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <mukesh.rathor@oracle.com>) id 1TLOKN-0003Mq-CY
-       for Xen-devel@lists.xensource.com; Tue, 09 Oct 2012 01:09:44 +0000
-Received: from [85.158.137.99:36548] by server-6.bemta-3.messagelabs.com id
-       E6/D3-11085-65973705; Tue, 09 Oct 2012 01:09:42 +0000
-X-Env-Sender: mukesh.rathor@oracle.com
-X-Msg-Ref: server-8.tower-217.messagelabs.com!1349744980!15428001!1
-X-Originating-IP: [148.87.113.117]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogMTQ4Ljg3LjExMy4xMTcgPT4gNzkwNDA2\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 29475 invoked from network); 9 Oct 2012 01:09:41 -0000
-Received: from rcsinet15.oracle.com (HELO rcsinet15.oracle.com)
-       (148.87.113.117)
-       by server-8.tower-217.messagelabs.com with DHE-RSA-AES256-SHA encrypted
-       SMTP; 9 Oct 2012 01:09:41 -0000
-Received: from acsinet21.oracle.com (acsinet21.oracle.com [141.146.126.237])
-       by rcsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
-       ESMTP id q9919VBm005311
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
-       Tue, 9 Oct 2012 01:09:32 GMT
-Received: from acsmt357.oracle.com (acsmt357.oracle.com [141.146.40.157])
-       by acsinet21.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
-       q9919U7U017058
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
-       Tue, 9 Oct 2012 01:09:31 GMT
-Received: from abhmt112.oracle.com (abhmt112.oracle.com [141.146.116.64])
-       by acsmt357.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
-       q9917U68001836; Mon, 8 Oct 2012 20:07:30 -0500
-Received: from mantra.us.oracle.com (/130.35.68.95)
-       by default (Oracle Beehive Gateway v4.0)
-       with ESMTP ; Mon, 08 Oct 2012 18:07:30 -0700
-Date: Mon, 8 Oct 2012 18:07:28 -0700
-From: Mukesh Rathor <mukesh.rathor@oracle.com>
-To: Konrad Rzeszutek Wilk <konrad@kernel.org>
-Message-ID: <20121008180728.07893577@mantra.us.oracle.com>
-In-Reply-To: <20121008124101.GB29650@localhost.localdomain>
-References: <20120924154335.097d3fb9@mantra.us.oracle.com>
-       <alpine.DEB.2.02.1209251054140.29232@kaball.uk.xensource.com>
-       <20120925180416.0137d61a@mantra.us.oracle.com>
-       <alpine.DEB.2.02.1209261225340.29232@kaball.uk.xensource.com>
-       <20121002183619.70734b7a@mantra.us.oracle.com>
-       <20121002190323.2e16f6ff@mantra.us.oracle.com>
-       <alpine.DEB.2.02.1210031242180.29232@kaball.uk.xensource.com>
-       <1349265914.650.136.camel@zakaz.uk.xensource.com>
-       <20121004183528.060416a0@mantra.us.oracle.com>
-       <1349429005.20946.20.camel@zakaz.uk.xensource.com>
-       <20121008124101.GB29650@localhost.localdomain>
-Organization: Oracle Corporation
-X-Mailer: Claws Mail 3.7.6 (GTK+ 2.18.9; x86_64-redhat-linux-gnu)
-Mime-Version: 1.0
-X-Source-IP: acsinet21.oracle.com [141.146.126.237]
-Cc: "Xen-devel@lists.xensource.com" <Xen-devel@lists.xensource.com>,
-       Ian Campbell <Ian.Campbell@citrix.com>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>,
-       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH v1 3/8]: PVH startup changes (enlighten.c)
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Mon, 8 Oct 2012 08:41:02 -0400
-Konrad Rzeszutek Wilk <konrad@kernel.org> wrote:
-
-> On Fri, Oct 05, 2012 at 10:23:25AM +0100, Ian Campbell wrote:
-> > On Fri, 2012-10-05 at 02:35 +0100, Mukesh Rathor wrote:
-> > > On Wed, 3 Oct 2012 13:05:14 +0100
-> > > Ian Campbell <Ian.Campbell@citrix.com> wrote:
-> > > 
-> > > > On Wed, 2012-10-03 at 12:58 +0100, Stefano Stabellini wrote:
-> > In the case where the ARM stuff I have built on this becomes ripe
-> > first would it be OK with you guys if I were to cherry pick the
-> > relevant bits of the PVH stuff into a series to go in sooner?
-> 
-> My plan right now was to wait for Mukesh to repost his series (which
-> I hope will address all our review comments) and then I can shovel
-> any other patches on top of that.
-> 
-> But if it makes sense to intermix Mukeshes's patchs, and yours.
-> (or squash some together) I can do that too.
-
-Ok, I'm all done with changes. Doing final testing now, and will have 
-patches sent by Tues afternoon.
-
-thanks,
-Mukesh
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<20121012134147.GA11778@phenom.dumpdata.com> b/test/corpus/<20121012134147.GA11778@phenom.dumpdata.com>
deleted file mode 100644 (file)
index 7abe7b5..0000000
+++ /dev/null
@@ -1,249 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Oct 12 14:58:52 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 12 Oct 2012 14:58:52 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TMflJ-00026n-5e
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 12 Oct 2012 14:58:52 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TMfgP-00012N-KP; Fri, 12 Oct 2012 13:53:45 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <ketuzsezr@gmail.com>) id 1TMfgN-00012I-HE
-       for xen-devel@lists.xen.org; Fri, 12 Oct 2012 13:53:43 +0000
-Received: from [85.158.137.99:55791] by server-8.bemta-3.messagelabs.com id
-       F5/35-10525-6E028705; Fri, 12 Oct 2012 13:53:42 +0000
-X-Env-Sender: ketuzsezr@gmail.com
-X-Msg-Ref: server-5.tower-217.messagelabs.com!1350050020!16617190!1
-X-Originating-IP: [209.85.220.173]
-X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 29993 invoked from network); 12 Oct 2012 13:53:41 -0000
-Received: from mail-vc0-f173.google.com (HELO mail-vc0-f173.google.com)
-       (209.85.220.173)
-       by server-5.tower-217.messagelabs.com with RC4-SHA encrypted SMTP;
-       12 Oct 2012 13:53:41 -0000
-Received: by mail-vc0-f173.google.com with SMTP id fl15so4376282vcb.32
-       for <xen-devel@lists.xen.org>; Fri, 12 Oct 2012 06:53:40 -0700 (PDT)
-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
-       h=sender:date:from:to:cc:subject:message-id:references:mime-version
-       :content-type:content-disposition:in-reply-to:user-agent;
-       bh=pe+rIc+sAVkjOMZukdfx6LrxShSabVewsbpoIHItCOc=;
-       b=tONfT4rMFIQvTFrZeNKeen8nOghut+gWby8Qynj4eMIvyOJI1OomSia09Me727LjU0
-       KeaTIo+rqUs8wAUpQV2kzhzQcdBzhQg5tO3pBcwFjn0AglxJ9stUIoFtLu3e0ZvxapOH
-       AWAKQKEYtAP8EY/AywOeZZFfemfpereEL+EpSGGbujXUcLYu0v0sYAj3wVNXLm+nJ7D8
-       +HZ8G5oKO88IOVa7VM2jrr4NfEriaR9NC6w8csan+GhHxg+F9Odmoog4ZldoM+DrbehU
-       K4Ub1AjKCu+jhAxYeqhWYfob9MWRjG8FIFFjFRw0PucksiLKaeAfQjvUoyDJivGVyHww
-       0XAQ==
-Received: by 10.52.27.82 with SMTP id r18mr2058391vdg.120.1350050020359;
-       Fri, 12 Oct 2012 06:53:40 -0700 (PDT)
-Received: from phenom.dumpdata.com
-       (50-195-21-189-static.hfc.comcastbusiness.net. [50.195.21.189])
-       by mx.google.com with ESMTPS id r17sm1020298vdj.12.2012.10.12.06.53.39
-       (version=TLSv1/SSLv3 cipher=OTHER);
-       Fri, 12 Oct 2012 06:53:40 -0700 (PDT)
-Date: Fri, 12 Oct 2012 09:41:47 -0400
-From: Konrad Rzeszutek Wilk <konrad@kernel.org>
-To: David Vrabel <david.vrabel@citrix.com>
-Message-ID: <20121012134147.GA11778@phenom.dumpdata.com>
-References: <1350046634-2462-1-git-send-email-david.vrabel@citrix.com>
-       <1350046634-2462-4-git-send-email-david.vrabel@citrix.com>
-MIME-Version: 1.0
-Content-Disposition: inline
-In-Reply-To: <1350046634-2462-4-git-send-email-david.vrabel@citrix.com>
-User-Agent: Mutt/1.5.21 (2010-09-15)
-Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>, xen-devel@lists.xen.org
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,T_DKIM_INVALID,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 3/3] xen/privcmd: add
- IOCTL_PRIVCMD_SYNC_WALLCLOCK to sync Xen's wallclock
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Fri, Oct 12, 2012 at 01:57:14PM +0100, David Vrabel wrote:
-> From: David Vrabel <david.vrabel@citrix.com>
-> 
-> Add a new ioctl to synchronize Xen's wallclock with the current system
-> time.
-> 
-> This may be used by the tools to ensure that newly created domains see
-> the correct wallclock time if NTP is not used in dom0 or if domains
-> are started before NTP has synchronized.
-
-So... how does this work with NTPD? As in does ntpd _not_ update the
-hwclock enough?
-
-
-> 
-> Signed-off-by: David Vrabel <david.vrabel@citrix.com>
-> ---
->  arch/x86/xen/time.c   |   25 ++++++++++++++++++-------
->  drivers/xen/privcmd.c |   12 ++++++++++++
->  include/xen/privcmd.h |    8 ++++++++
->  include/xen/xen-ops.h |    2 ++
->  4 files changed, 40 insertions(+), 7 deletions(-)
-> 
-> diff --git a/arch/x86/xen/time.c b/arch/x86/xen/time.c
-> index 11770d0..d481ac9 100644
-> --- a/arch/x86/xen/time.c
-> +++ b/arch/x86/xen/time.c
-> @@ -8,6 +8,7 @@
->   * Jeremy Fitzhardinge <jeremy@xensource.com>, XenSource Inc, 2007
->   */
->  #include <linux/kernel.h>
-> +#include <linux/export.h>
->  #include <linux/interrupt.h>
->  #include <linux/clocksource.h>
->  #include <linux/clockchips.h>
-> @@ -192,6 +193,19 @@ static void xen_read_wallclock(struct timespec *ts)
->      put_cpu_var(xen_vcpu);
->  }
->  
-> +int xen_write_wallclock(const struct timespec *ts)
-> +{
-> +    struct xen_platform_op op;
-> +
-> +    op.cmd = XENPF_settime;
-> +    op.u.settime.secs = ts->tv_sec;
-> +    op.u.settime.nsecs = ts->tv_nsec;
-> +    op.u.settime.system_time = xen_clocksource_read();
-> +
-> +    return HYPERVISOR_dom0_op(&op);
-> +}
-> +EXPORT_SYMBOL_GPL(xen_write_wallclock);
-> +
->  static unsigned long xen_get_wallclock(void)
->  {
->      struct timespec ts;
-> @@ -202,7 +216,7 @@ static unsigned long xen_get_wallclock(void)
->  
->  static int xen_set_wallclock(unsigned long now)
->  {
-> -    struct xen_platform_op op;
-> +    struct timespec ts;
->      int rc;
->  
->      /* do nothing for domU */
-> @@ -218,12 +232,9 @@ static int xen_set_wallclock(unsigned long now)
->       * update_persistent_wallclock() is called ~500 ms after 'now'
->       * so add an extra 500 ms.
->       */
-> -    op.cmd = XENPF_settime;
-> -    op.u.settime.secs = now;
-> -    op.u.settime.nsecs = NSEC_PER_SEC / 2;
-> -    op.u.settime.system_time = xen_clocksource_read();
-> -
-> -    rc = HYPERVISOR_dom0_op(&op);
-> +    ts.tv_sec = now;
-> +    ts.tv_nsec = NSEC_PER_SEC / 2;
-> +    rc = xen_write_wallclock(&ts);
->      WARN(rc != 0, "XENPF_settime failed: now=%ld\n", now);
->  
->      return rc;
-> diff --git a/drivers/xen/privcmd.c b/drivers/xen/privcmd.c
-> index ccee0f1..ed2caf3 100644
-> --- a/drivers/xen/privcmd.c
-> +++ b/drivers/xen/privcmd.c
-> @@ -338,6 +338,14 @@ out:
->      return ret;
->  }
->  
-> +static long privcmd_ioctl_sync_wallclock(void)
-> +{
-> +    struct timespec ts;
-> +
-> +    getnstimeofday(&ts);
-> +    return xen_write_wallclock(&ts);
-> +}
-> +
->  static long privcmd_ioctl(struct file *file,
->                        unsigned int cmd, unsigned long data)
->  {
-> @@ -357,6 +365,10 @@ static long privcmd_ioctl(struct file *file,
->              ret = privcmd_ioctl_mmap_batch(udata);
->              break;
->  
-> +    case IOCTL_PRIVCMD_SYNC_WALLCLOCK:
-> +            ret = privcmd_ioctl_sync_wallclock();
-> +            break;
-> +
->      default:
->              ret = -EINVAL;
->              break;
-> diff --git a/include/xen/privcmd.h b/include/xen/privcmd.h
-> index 17857fb..d17d087 100644
-> --- a/include/xen/privcmd.h
-> +++ b/include/xen/privcmd.h
-> @@ -66,6 +66,12 @@ struct privcmd_mmapbatch {
->   * @cmd: IOCTL_PRIVCMD_HYPERCALL
->   * @arg: &privcmd_hypercall_t
->   * Return: Value returned from execution of the specified hypercall.
-> + *
-> + * @cmd: IOCTL_PRIVCMD_SYNC_WALLCLOCK
-> + * @arg: Unused.
-> + * Synchronizes the Xen wallclock with the current system time.
-> + * Return: 0 on success, or -1 on error with errno set to EPERM or
-> + * EACCES.
->   */
->  #define IOCTL_PRIVCMD_HYPERCALL                                     \
->      _IOC(_IOC_NONE, 'P', 0, sizeof(struct privcmd_hypercall))
-> @@ -73,5 +79,7 @@ struct privcmd_mmapbatch {
->      _IOC(_IOC_NONE, 'P', 2, sizeof(struct privcmd_mmap))
->  #define IOCTL_PRIVCMD_MMAPBATCH                                     \
->      _IOC(_IOC_NONE, 'P', 3, sizeof(struct privcmd_mmapbatch))
-> +#define IOCTL_PRIVCMD_SYNC_WALLCLOCK                                \
-> +    _IOC(_IOC_NONE, 'P', 5, 0)
->  
->  #endif /* __LINUX_PUBLIC_PRIVCMD_H__ */
-> diff --git a/include/xen/xen-ops.h b/include/xen/xen-ops.h
-> index 6a198e4..eefed22 100644
-> --- a/include/xen/xen-ops.h
-> +++ b/include/xen/xen-ops.h
-> @@ -29,4 +29,6 @@ int xen_remap_domain_mfn_range(struct vm_area_struct *vma,
->                             unsigned long mfn, int nr,
->                             pgprot_t prot, unsigned domid);
->  
-> +int xen_write_wallclock(const struct timespec *ts);
-> +
->  #endif /* INCLUDE_XEN_OPS_H */
-> -- 
-> 1.7.2.5
-> 
-> 
-> _______________________________________________
-> Xen-devel mailing list
-> Xen-devel@lists.xen.org
-> http://lists.xen.org/xen-devel
-> 
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<20121012145716.GA20842@phenom.dumpdata.com> b/test/corpus/<20121012145716.GA20842@phenom.dumpdata.com>
deleted file mode 100644 (file)
index fe304db..0000000
+++ /dev/null
@@ -1,136 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Oct 12 16:13:58 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 12 Oct 2012 16:13:58 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TMgvw-0002OY-UM
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 12 Oct 2012 16:13:58 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TMgrT-0002ZW-S4; Fri, 12 Oct 2012 15:09:15 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <konrad.wilk@oracle.com>) id 1TMgrS-0002ZR-7d
-       for xen-devel@lists.xen.org; Fri, 12 Oct 2012 15:09:14 +0000
-Received: from [85.158.137.99:9870] by server-2.bemta-3.messagelabs.com id
-       69/61-00604-99238705; Fri, 12 Oct 2012 15:09:13 +0000
-X-Env-Sender: konrad.wilk@oracle.com
-X-Msg-Ref: server-15.tower-217.messagelabs.com!1350054551!18997551!1
-X-Originating-IP: [141.146.126.227]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogMTQxLjE0Ni4xMjYuMjI3ID0+IDgwNzQ3OQ==\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 15216 invoked from network); 12 Oct 2012 15:09:12 -0000
-Received: from acsinet15.oracle.com (HELO acsinet15.oracle.com)
-       (141.146.126.227)
-       by server-15.tower-217.messagelabs.com with DHE-RSA-AES256-SHA
-       encrypted SMTP; 12 Oct 2012 15:09:12 -0000
-Received: from acsinet21.oracle.com (acsinet21.oracle.com [141.146.126.237])
-       by acsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
-       ESMTP id q9CF97rj008045
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
-       Fri, 12 Oct 2012 15:09:08 GMT
-Received: from acsmt357.oracle.com (acsmt357.oracle.com [141.146.40.157])
-       by acsinet21.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
-       q9CF97Mo003554
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
-       Fri, 12 Oct 2012 15:09:07 GMT
-Received: from abhmt108.oracle.com (abhmt108.oracle.com [141.146.116.60])
-       by acsmt357.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
-       q9CF97hb025098; Fri, 12 Oct 2012 10:09:07 -0500
-Received: from phenom.dumpdata.com (/50.195.21.189)
-       by default (Oracle Beehive Gateway v4.0)
-       with ESMTP ; Fri, 12 Oct 2012 08:09:07 -0700
-Received: by phenom.dumpdata.com (Postfix, from userid 1000)
-       id 414694037A; Fri, 12 Oct 2012 10:57:16 -0400 (EDT)
-Date: Fri, 12 Oct 2012 10:57:16 -0400
-From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-To: David Vrabel <david.vrabel@citrix.com>
-Message-ID: <20121012145716.GA20842@phenom.dumpdata.com>
-References: <1350046634-2462-1-git-send-email-david.vrabel@citrix.com>
-       <1350046634-2462-2-git-send-email-david.vrabel@citrix.com>
-MIME-Version: 1.0
-Content-Disposition: inline
-In-Reply-To: <1350046634-2462-2-git-send-email-david.vrabel@citrix.com>
-User-Agent: Mutt/1.5.21 (2010-09-15)
-X-Source-IP: acsinet21.oracle.com [141.146.126.237]
-Cc: xen-devel@lists.xen.org
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 1/3] xen: sync the CMOS RTC as well as the
-       Xen wallclock
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Fri, Oct 12, 2012 at 01:57:12PM +0100, David Vrabel wrote:
-> From: David Vrabel <david.vrabel@citrix.com>
-> 
-> If NTP is used in dom0 and it is synchronized to its clock source,
-> then the kernel will periodically synchronize the Xen wallclock with
-> the system time.  Updates to the Xen wallclock do not persist across
-> reboots, so also synchronize the CMOS RTC (as on bare metal).
-> 
-> Signed-off-by: David Vrabel <david.vrabel@citrix.com>
-> ---
->  arch/x86/xen/time.c |    5 +++++
->  1 files changed, 5 insertions(+), 0 deletions(-)
-> 
-> diff --git a/arch/x86/xen/time.c b/arch/x86/xen/time.c
-> index 0296a95..5e7f536 100644
-> --- a/arch/x86/xen/time.c
-> +++ b/arch/x86/xen/time.c
-> @@ -14,6 +14,7 @@
->  #include <linux/kernel_stat.h>
->  #include <linux/math64.h>
->  #include <linux/gfp.h>
-> +#include <linux/mc146818rtc.h>
->  
->  #include <asm/pvclock.h>
->  #include <asm/xen/hypervisor.h>
-> @@ -208,6 +209,10 @@ static int xen_set_wallclock(unsigned long now)
->      if (!xen_initial_domain())
->              return -1;
->  
-> +    /* Set the hardware RTC. */
-> +    mach_set_rtc_mmss(now);
-
-So how does this work? Is the hypervisor traping on the RTC CMOS clock?
-
-> +
-> +    /* Set the Xen wallclock. */
->      op.cmd = XENPF_settime;
->      op.u.settime.secs = now;
->      op.u.settime.nsecs = 0;
-> -- 
-> 1.7.2.5
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<20121012150251.GB20842@phenom.dumpdata.com> b/test/corpus/<20121012150251.GB20842@phenom.dumpdata.com>
deleted file mode 100644 (file)
index 35c1706..0000000
+++ /dev/null
@@ -1,149 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Oct 12 16:19:28 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 12 Oct 2012 16:19:28 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TMh1K-0002SS-Co
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 12 Oct 2012 16:19:28 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TMgwv-0002i0-LF; Fri, 12 Oct 2012 15:14:53 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <konrad.wilk@oracle.com>) id 1TMgwu-0002hv-6l
-       for xen-devel@lists.xen.org; Fri, 12 Oct 2012 15:14:52 +0000
-Received: from [85.158.143.35:28817] by server-3.bemta-4.messagelabs.com id
-       05/AE-10075-BE338705; Fri, 12 Oct 2012 15:14:51 +0000
-X-Env-Sender: konrad.wilk@oracle.com
-X-Msg-Ref: server-3.tower-21.messagelabs.com!1350054889!14441354!1
-X-Originating-IP: [141.146.126.227]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogMTQxLjE0Ni4xMjYuMjI3ID0+IDgwNzQ3OQ==\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 30863 invoked from network); 12 Oct 2012 15:14:50 -0000
-Received: from acsinet15.oracle.com (HELO acsinet15.oracle.com)
-       (141.146.126.227)
-       by server-3.tower-21.messagelabs.com with DHE-RSA-AES256-SHA encrypted
-       SMTP; 12 Oct 2012 15:14:50 -0000
-Received: from ucsinet21.oracle.com (ucsinet21.oracle.com [156.151.31.93])
-       by acsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
-       ESMTP id q9CFEiRd014717
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
-       Fri, 12 Oct 2012 15:14:44 GMT
-Received: from acsmt357.oracle.com (acsmt357.oracle.com [141.146.40.157])
-       by ucsinet21.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
-       q9CFEh4O008395
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
-       Fri, 12 Oct 2012 15:14:43 GMT
-Received: from abhmt105.oracle.com (abhmt105.oracle.com [141.146.116.57])
-       by acsmt357.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
-       q9CFEg3G029748; Fri, 12 Oct 2012 10:14:42 -0500
-Received: from phenom.dumpdata.com (/50.195.21.189)
-       by default (Oracle Beehive Gateway v4.0)
-       with ESMTP ; Fri, 12 Oct 2012 08:14:42 -0700
-Received: by phenom.dumpdata.com (Postfix, from userid 1000)
-       id CBCDF4037A; Fri, 12 Oct 2012 11:02:51 -0400 (EDT)
-Date: Fri, 12 Oct 2012 11:02:51 -0400
-From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-To: David Vrabel <david.vrabel@citrix.com>
-Message-ID: <20121012150251.GB20842@phenom.dumpdata.com>
-References: <1350046634-2462-1-git-send-email-david.vrabel@citrix.com>
-       <1350046634-2462-4-git-send-email-david.vrabel@citrix.com>
-       <20121012134147.GA11778@phenom.dumpdata.com>
-       <507822ED.2090900@citrix.com>
-       <CACJDEmr3V71cSdV3+i-n7=wfOnDBza04Lk+6+B6Fyx7LhQrdEg@mail.gmail.com>
-       <5078304D.1050807@citrix.com>
-MIME-Version: 1.0
-Content-Disposition: inline
-In-Reply-To: <5078304D.1050807@citrix.com>
-User-Agent: Mutt/1.5.21 (2010-09-15)
-X-Source-IP: ucsinet21.oracle.com [156.151.31.93]
-Cc: Konrad Rzeszutek Wilk <konrad@kernel.org>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 3/3] xen/privcmd: add
- IOCTL_PRIVCMD_SYNC_WALLCLOCK to sync Xen's wallclock
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Fri, Oct 12, 2012 at 03:59:25PM +0100, David Vrabel wrote:
-> On 12/10/12 15:29, Konrad Rzeszutek Wilk wrote:
-> > On Fri, Oct 12, 2012 at 10:02 AM, David Vrabel <david.vrabel@citrix.com> wrote:
-> >> On 12/10/12 14:41, Konrad Rzeszutek Wilk wrote:
-> >>> On Fri, Oct 12, 2012 at 01:57:14PM +0100, David Vrabel wrote:
-> >>>> From: David Vrabel <david.vrabel@citrix.com>
-> >>>>
-> >>>> Add a new ioctl to synchronize Xen's wallclock with the current system
-> >>>> time.
-> >>>>
-> >>>> This may be used by the tools to ensure that newly created domains see
-> >>>> the correct wallclock time if NTP is not used in dom0 or if domains
-> >>>> are started before NTP has synchronized.
-> >>>
-> >>> So... how does this work with NTPD? As in does ntpd _not_ update the
-> >>> hwclock enough?
-> >>
-> >> Once NTPD is synchronized then the kernel updates the wallclock (and the
-> >> RTC with patch #1) every 11 mins.  I assume this is often enough given
-> >> how NTP adjusts the system time.
-> >>
-> >> You only really need the tools to sync wallclock if system time was
-> >> stepped at start of day.  e.g., init scripts could do something like:
-> >>
-> >> ntpdate pool.ntp.org
-> >> hwclock --systohc
-> >> xen-wallclock --systowc
-> > 
-> > I think I am missing something. The hwclock should end up in the
-> > xen_set_wallclock call. And from there on, the ntpd would update the
-> > wallclock if it got skewed enough? Or is the system time not calling
-> > the wall-clock enough? If that is the case, would just adding this in
-> > the crontab be enough:
-> 
-> hwclock talks to /dev/rtc which writes to the CMOS directly and does not
-> call update_persistent_clock() (or xen_set_wallclock()).
-
-/me scratches his head.
-
-I recall that the update_persistent_clock() was being called.. with
-hwclock -w (which is the same as --systohc).
-
-That seems like a bug in the generic code - I would think that
-hwclock would update the wallclock, not just the RTC.
-
-Oh, it is whoever calls 'adjtimex' syscall ends up calling in
-update_persistent_clock(). So .. ntpdate or ntpd don't call that?
-
-Somebody does.. I hope?
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<20121012161610.GA7880@phenom.dumpdata.com> b/test/corpus/<20121012161610.GA7880@phenom.dumpdata.com>
deleted file mode 100644 (file)
index 0bc0b5c..0000000
+++ /dev/null
@@ -1,166 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Oct 12 17:32:01 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 12 Oct 2012 17:32:01 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TMi9T-0002gw-U9
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 12 Oct 2012 17:32:01 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TMi5q-0004zL-0h; Fri, 12 Oct 2012 16:28:10 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <konrad.wilk@oracle.com>) id 1TMi5o-0004zF-J7
-       for xen-devel@lists.xen.org; Fri, 12 Oct 2012 16:28:08 +0000
-Received: from [85.158.143.99:9529] by server-2.bemta-4.messagelabs.com id
-       28/00-25171-71548705; Fri, 12 Oct 2012 16:28:07 +0000
-X-Env-Sender: konrad.wilk@oracle.com
-X-Msg-Ref: server-16.tower-216.messagelabs.com!1350059286!22669382!1
-X-Originating-IP: [148.87.113.117]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogMTQ4Ljg3LjExMy4xMTcgPT4gODAwNTkz\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 7648 invoked from network); 12 Oct 2012 16:28:07 -0000
-Received: from rcsinet15.oracle.com (HELO rcsinet15.oracle.com)
-       (148.87.113.117)
-       by server-16.tower-216.messagelabs.com with DHE-RSA-AES256-SHA
-       encrypted SMTP; 12 Oct 2012 16:28:07 -0000
-Received: from acsinet21.oracle.com (acsinet21.oracle.com [141.146.126.237])
-       by rcsinet15.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with
-       ESMTP id q9CGS21E031082
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK);
-       Fri, 12 Oct 2012 16:28:03 GMT
-Received: from acsmt356.oracle.com (acsmt356.oracle.com [141.146.40.156])
-       by acsinet21.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id
-       q9CGS1ac000529
-       (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO);
-       Fri, 12 Oct 2012 16:28:02 GMT
-Received: from abhmt102.oracle.com (abhmt102.oracle.com [141.146.116.54])
-       by acsmt356.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id
-       q9CGS1nW012181; Fri, 12 Oct 2012 11:28:01 -0500
-Received: from phenom.dumpdata.com (/50.195.21.189)
-       by default (Oracle Beehive Gateway v4.0)
-       with ESMTP ; Fri, 12 Oct 2012 09:28:01 -0700
-Received: by phenom.dumpdata.com (Postfix, from userid 1000)
-       id 6FBF74037A; Fri, 12 Oct 2012 12:16:10 -0400 (EDT)
-Date: Fri, 12 Oct 2012 12:16:10 -0400
-From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-To: David Vrabel <david.vrabel@citrix.com>
-Message-ID: <20121012161610.GA7880@phenom.dumpdata.com>
-References: <1350046634-2462-1-git-send-email-david.vrabel@citrix.com>
-       <1350046634-2462-4-git-send-email-david.vrabel@citrix.com>
-       <20121012134147.GA11778@phenom.dumpdata.com>
-       <507822ED.2090900@citrix.com>
-       <CACJDEmr3V71cSdV3+i-n7=wfOnDBza04Lk+6+B6Fyx7LhQrdEg@mail.gmail.com>
-       <5078304D.1050807@citrix.com>
-       <20121012150251.GB20842@phenom.dumpdata.com>
-       <507841D8.6090205@citrix.com>
-MIME-Version: 1.0
-Content-Disposition: inline
-In-Reply-To: <507841D8.6090205@citrix.com>
-User-Agent: Mutt/1.5.21 (2010-09-15)
-X-Source-IP: acsinet21.oracle.com [141.146.126.237]
-Cc: Konrad Rzeszutek Wilk <konrad@kernel.org>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 3/3] xen/privcmd: add
- IOCTL_PRIVCMD_SYNC_WALLCLOCK to sync Xen's wallclock
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Fri, Oct 12, 2012 at 05:14:16PM +0100, David Vrabel wrote:
-> On 12/10/12 16:02, Konrad Rzeszutek Wilk wrote:
-> > On Fri, Oct 12, 2012 at 03:59:25PM +0100, David Vrabel wrote:
-> >> On 12/10/12 15:29, Konrad Rzeszutek Wilk wrote:
-> >>> On Fri, Oct 12, 2012 at 10:02 AM, David Vrabel <david.vrabel@citrix.com> wrote:
-> >>>> On 12/10/12 14:41, Konrad Rzeszutek Wilk wrote:
-> >>>>> On Fri, Oct 12, 2012 at 01:57:14PM +0100, David Vrabel wrote:
-> >>>>>> From: David Vrabel <david.vrabel@citrix.com>
-> >>>>>>
-> >>>>>> Add a new ioctl to synchronize Xen's wallclock with the current system
-> >>>>>> time.
-> >>>>>>
-> >>>>>> This may be used by the tools to ensure that newly created domains see
-> >>>>>> the correct wallclock time if NTP is not used in dom0 or if domains
-> >>>>>> are started before NTP has synchronized.
-> >>>>>
-> >>>>> So... how does this work with NTPD? As in does ntpd _not_ update the
-> >>>>> hwclock enough?
-> >>>>
-> >>>> Once NTPD is synchronized then the kernel updates the wallclock (and the
-> >>>> RTC with patch #1) every 11 mins.  I assume this is often enough given
-> >>>> how NTP adjusts the system time.
-> >>>>
-> >>>> You only really need the tools to sync wallclock if system time was
-> >>>> stepped at start of day.  e.g., init scripts could do something like:
-> >>>>
-> >>>> ntpdate pool.ntp.org
-> >>>> hwclock --systohc
-> >>>> xen-wallclock --systowc
-> >>>
-> >>> I think I am missing something. The hwclock should end up in the
-> >>> xen_set_wallclock call. And from there on, the ntpd would update the
-> >>> wallclock if it got skewed enough? Or is the system time not calling
-> >>> the wall-clock enough? If that is the case, would just adding this in
-> >>> the crontab be enough:
-> >>
-> >> hwclock talks to /dev/rtc which writes to the CMOS directly and does not
-> >> call update_persistent_clock() (or xen_set_wallclock()).
-> > 
-> > /me scratches his head.
-> > 
-> > I recall that the update_persistent_clock() was being called.. with
-> > hwclock -w (which is the same as --systohc).
-> 
-> No,
-> 
-> > That seems like a bug in the generic code - I would think that
-> > hwclock would update the wallclock, not just the RTC.
-> 
-> If we wanted hwclock to also update the xen wallclock we would need a
-> xen-specific rtc driver that updated both rtc and wallclock.
-> 
-> > Oh, it is whoever calls 'adjtimex' syscall ends up calling in
-> > update_persistent_clock(). So .. ntpdate or ntpd don't call that?
-> 
-> ntpd does call adjtimex so if you are running ntpd and it is
-> synchronized to its clock source you do get the periodic sync of the
-> wallclock.
-
-So, having both ntpd (which calls call adjtimex) - which would run in the
-background; and hwclock run at startup - (which updates the RTC, which ends
- - I hope - being trapped by the hypervisor), we end up with the correct
-time, right?
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<20397.14624.57140.518016@mariner.uk.xensource.com> b/test/corpus/<20397.14624.57140.518016@mariner.uk.xensource.com>
deleted file mode 100644 (file)
index 41f0b17..0000000
+++ /dev/null
@@ -1,129 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri May 11 17:10:40 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 11 May 2012 17:10:40 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SSsQM-0006BM-NR
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 11 May 2012 17:10:40 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SSsMu-0007En-Sf; Fri, 11 May 2012 16:07:00 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Jackson@eu.citrix.com>) id 1SSsMs-0007Ec-L6
-       for xen-devel@lists.xen.org; Fri, 11 May 2012 16:06:58 +0000
-Received: from [85.158.138.51:11526] by server-12.bemta-3.messagelabs.com id
-       DD/00-29760-1293DAF4; Fri, 11 May 2012 16:06:57 +0000
-X-Env-Sender: Ian.Jackson@eu.citrix.com
-X-Msg-Ref: server-13.tower-174.messagelabs.com!1336752416!7941043!2
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiA5ODU1MQ==\n
-X-StarScan-Version: 6.5.7; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 17943 invoked from network); 11 May 2012 16:06:57 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-13.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
-       11 May 2012 16:06:57 -0000
-X-IronPort-AV: E=Sophos;i="4.75,572,1330905600"; d="scan'208";a="12434003"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       11 May 2012 16:06:56 +0000
-Received: from norwich.cam.xci-test.com (10.80.248.129) by
-       smtprelay.citrix.com (10.30.203.162) with Microsoft SMTP Server id
-       8.3.213.0; Fri, 11 May 2012 17:06:56 +0100
-Received: from mariner.cam.xci-test.com        ([10.80.2.22]
-       helo=mariner.uk.xensource.com ident=Debian-exim)        by
-       norwich.cam.xci-test.com
-       with esmtp (Exim 4.72)  (envelope-from <Ian.Jackson@eu.citrix.com>)     id
-       1SSsMq-0007gr-3H; Fri, 11 May 2012 16:06:56 +0000
-Received: from iwj by mariner.uk.xensource.com with local (Exim 4.72)
-       (envelope-from <Ian.Jackson@eu.citrix.com>)     id 1SSsMq-00021X-2O;
-       Fri, 11 May 2012 17:06:56 +0100
-From: Ian Jackson <Ian.Jackson@eu.citrix.com>
-MIME-Version: 1.0
-Message-ID: <20397.14624.57140.518016@mariner.uk.xensource.com>
-Date: Fri, 11 May 2012 17:06:56 +0100
-To: Ian Campbell <Ian.Campbell@citrix.com>
-Newsgroups: chiark.mail.xen.devel
-In-Reply-To: <1335445762.28015.141.camel@zakaz.uk.xensource.com>
-References: <1334928211-29856-1-git-send-email-roger.pau@citrix.com>
-       <1334928211-29856-4-git-send-email-roger.pau@citrix.com>
-       <20373.34767.584624.953798@mariner.uk.xensource.com>
-       <4F982F18.2080902@citrix.com> <4F99360E.2010201@citrix.com>
-       <20377.18296.235567.918003@mariner.uk.xensource.com>
-       <1335445762.28015.141.camel@zakaz.uk.xensource.com>
-X-Mailer: VM 8.1.0 under 23.2.1 (i486-pc-linux-gnu)
-Cc: Roger Pau Monne <roger.pau@citrix.com>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] Fwd: Re: [PATCH v3 3/5] libxl: call hotplug scripts
- from libxl for vbd
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-Ian Campbell writes ("Re: [Xen-devel] Fwd: Re: [PATCH v3 3/5] libxl: call hotplug scripts from libxl for vbd"):
-> On Thu, 2012-04-26 at 14:02 +0100, Ian Jackson wrote:
-> > I think we need to think about these timeouts.  At the very least
-> > they're policy which should probably not be hardcoded in libxl; and
-> > arguably people might want to be able to specify infinite ("I trust my
-> > guest or driver domain and never want to pull the rug out from under
-> > its feet") or zero ("this guest or driver domain has gone wrong and I
-> > want it killed, now").
-> 
-> Unless the same is going to be true of the eventual solution (which I
-> suppose it may well be?) we should be wary of over engineering the
-> interim solution for 4.2.
-
-I guess.  Also xend's poor behaviour in this area (failing hotplug
-timeouts) provides something of an excuse...
-
-> > Perhaps it would be better to do things the other way around, and have
-> > an env var for the case where we're _not_ calling the script from
-> > udev ?  After all, udev config is configuration (at least on my
-> > distros) which the user may not update when the software is updated.
-> 
-> It was my suggestion to do it this way so that we don't end up with a
-> vestigial env var which must always be set for no real reason after
-> we've removed the udev path altogether.
-
-When we have "removed the udev path altogether" we will still need to
-have something to prevent trouble if the udev rules remain for some
-reason.
-
-> I don't really mind though, we could live with that vestigial thing, or
-> have another, easier, transition a few releases down the line.
-
-The vestigial thing can indeed eventually go away.
-
-Ian.
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<20420.59905.191002.80850@mariner.uk.xensource.com> b/test/corpus/<20420.59905.191002.80850@mariner.uk.xensource.com>
deleted file mode 100644 (file)
index 15d7044..0000000
+++ /dev/null
@@ -1,103 +0,0 @@
-From xen-devel-bounces@lists.xen.org Tue May 29 16:28:35 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Tue, 29 May 2012 16:28:35 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SZOLV-00040I-Mf
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 29 May 2012 16:28:35 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SZOH3-00085P-Jv; Tue, 29 May 2012 15:23:53 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Jackson@eu.citrix.com>) id 1SZOH1-00085K-8x
-       for xen-devel@lists.xensource.com; Tue, 29 May 2012 15:23:51 +0000
-Received: from [85.158.143.99:61817] by server-2.bemta-4.messagelabs.com id
-       BE/F5-12211-60AE4CF4; Tue, 29 May 2012 15:23:50 +0000
-X-Env-Sender: Ian.Jackson@eu.citrix.com
-X-Msg-Ref: server-9.tower-216.messagelabs.com!1338305029!28043403!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiA5OTk2Nw==\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 17964 invoked from network); 29 May 2012 15:23:49 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-9.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
-       29 May 2012 15:23:49 -0000
-X-IronPort-AV: E=Sophos;i="4.75,677,1330905600"; d="scan'208";a="12719194"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       29 May 2012 15:23:48 +0000
-Received: from norwich.cam.xci-test.com (10.80.248.129) by
-       smtprelay.citrix.com (10.30.203.162) with Microsoft SMTP Server id
-       8.3.213.0; Tue, 29 May 2012 16:23:48 +0100
-Received: from mariner.cam.xci-test.com        ([10.80.2.22]
-       helo=mariner.uk.xensource.com ident=Debian-exim)        by
-       norwich.cam.xci-test.com
-       with esmtp (Exim 4.72)  (envelope-from <Ian.Jackson@eu.citrix.com>)     id
-       1SZOGy-0004M0-9w; Tue, 29 May 2012 15:23:48 +0000
-Received: from iwj by mariner.uk.xensource.com with local (Exim 4.72)
-       (envelope-from <Ian.Jackson@eu.citrix.com>)     id 1SZOGy-0004ET-94;
-       Tue, 29 May 2012 16:23:48 +0100
-From: Ian Jackson <Ian.Jackson@eu.citrix.com>
-MIME-Version: 1.0
-Message-ID: <20420.59905.191002.80850@mariner.uk.xensource.com>
-Date: Tue, 29 May 2012 16:23:45 +0100
-To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-In-Reply-To: <alpine.DEB.2.00.1205291540590.26786@kaball-desktop>
-References: <alpine.DEB.2.00.1205281439080.26786@kaball-desktop>
-       <1338287956-24691-2-git-send-email-stefano.stabellini@eu.citrix.com>
-       <1338300632.14158.115.camel@zakaz.uk.xensource.com>
-       <alpine.DEB.2.00.1205291511560.26786@kaball-desktop>
-       <alpine.DEB.2.00.1205291540590.26786@kaball-desktop>
-X-Mailer: VM 8.1.0 under 23.2.1 (i486-pc-linux-gnu)
-Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
-       Ian Campbell <Ian.Campbell@citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH v8 02/11] libxl:
- libxl__device_disk_local_attach return a new libxl_device_disk
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-Stefano Stabellini writes ("Re: [PATCH v8 02/11] libxl: libxl__device_disk_local_attach return a new libxl_device_disk"):
-...
-> The appended patch switches back the behavior to what we had in v5 and
-> before: pdev_path, script, and vdev are all allocated on the gc,
-> therefore freed automatically.
-
-Thanks.
-
-> libxl: libxl__device_disk_local_attach return a new libxl_device_disk
-
-Acked-by: Ian Jackson <ian.jackson@eu.citrix.com>
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<20420.59991.541173.849526@mariner.uk.xensource.com> b/test/corpus/<20420.59991.541173.849526@mariner.uk.xensource.com>
deleted file mode 100644 (file)
index 570a899..0000000
+++ /dev/null
@@ -1,101 +0,0 @@
-From xen-devel-bounces@lists.xen.org Tue May 29 16:29:22 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Tue, 29 May 2012 16:29:22 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SZOMG-00040c-FL
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 29 May 2012 16:29:22 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SZOIS-0008AZ-7q; Tue, 29 May 2012 15:25:20 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Jackson@eu.citrix.com>) id 1SZOIQ-0008AO-Ej
-       for xen-devel@lists.xensource.com; Tue, 29 May 2012 15:25:18 +0000
-Received: from [85.158.143.99:8001] by server-1.bemta-4.messagelabs.com id
-       9D/8C-00342-D5AE4CF4; Tue, 29 May 2012 15:25:17 +0000
-X-Env-Sender: Ian.Jackson@eu.citrix.com
-X-Msg-Ref: server-11.tower-216.messagelabs.com!1338305116!22818554!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiA5OTk2Nw==\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 14699 invoked from network); 29 May 2012 15:25:16 -0000
-Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-11.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
-       29 May 2012 15:25:16 -0000
-X-IronPort-AV: E=Sophos;i="4.75,677,1330905600"; d="scan'208";a="12719226"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       29 May 2012 15:25:15 +0000
-Received: from norwich.cam.xci-test.com (10.80.248.129) by
-       smtprelay.citrix.com (10.30.203.162) with Microsoft SMTP Server id
-       8.3.213.0; Tue, 29 May 2012 16:25:15 +0100
-Received: from mariner.cam.xci-test.com        ([10.80.2.22]
-       helo=mariner.uk.xensource.com ident=Debian-exim)        by
-       norwich.cam.xci-test.com
-       with esmtp (Exim 4.72)  (envelope-from <Ian.Jackson@eu.citrix.com>)     id
-       1SZOIN-0004MW-IF; Tue, 29 May 2012 15:25:15 +0000
-Received: from iwj by mariner.uk.xensource.com with local (Exim 4.72)
-       (envelope-from <Ian.Jackson@eu.citrix.com>)     id 1SZOIN-0004Ee-HA;
-       Tue, 29 May 2012 16:25:15 +0100
-From: Ian Jackson <Ian.Jackson@eu.citrix.com>
-MIME-Version: 1.0
-Message-ID: <20420.59991.541173.849526@mariner.uk.xensource.com>
-Date: Tue, 29 May 2012 16:25:11 +0100
-To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-In-Reply-To: <alpine.DEB.2.00.1205291540590.26786@kaball-desktop>
-References: <alpine.DEB.2.00.1205281439080.26786@kaball-desktop>
-       <1338287956-24691-2-git-send-email-stefano.stabellini@eu.citrix.com>
-       <1338300632.14158.115.camel@zakaz.uk.xensource.com>
-       <alpine.DEB.2.00.1205291511560.26786@kaball-desktop>
-       <alpine.DEB.2.00.1205291540590.26786@kaball-desktop>
-X-Mailer: VM 8.1.0 under 23.2.1 (i486-pc-linux-gnu)
-Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
-       Ian Campbell <Ian.Campbell@citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH v8 02/11] libxl:
- libxl__device_disk_local_attach return a new libxl_device_disk
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-Stefano Stabellini writes ("Re: [PATCH v8 02/11] libxl: libxl__device_disk_local_attach return a new libxl_device_disk"):
-...
-> The appended patch switches back the behavior to what we had in v5 and
-> before: pdev_path, script, and vdev are all allocated on the gc,
-> therefore freed automatically.
-
-With the revised version of 02/11, I have now acked all 11 of these.
-
-Ian.
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<20432.62078.265596.607954@mariner.uk.xensource.com> b/test/corpus/<20432.62078.265596.607954@mariner.uk.xensource.com>
deleted file mode 100644 (file)
index 4d8fab1..0000000
+++ /dev/null
@@ -1,120 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Jun 07 19:30:55 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 07 Jun 2012 19:30:55 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SchTx-0005kA-Gp
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 07 Jun 2012 19:30:55 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SchQP-0007zd-WD; Thu, 07 Jun 2012 18:27:13 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Jackson@eu.citrix.com>) id 1SchQO-0007zS-A8
-       for xen-devel@lists.xensource.com; Thu, 07 Jun 2012 18:27:12 +0000
-Received: from [85.158.139.83:34829] by server-11.bemta-5.messagelabs.com id
-       55/79-25194-F72F0DF4; Thu, 07 Jun 2012 18:27:11 +0000
-X-Env-Sender: Ian.Jackson@eu.citrix.com
-X-Msg-Ref: server-11.tower-182.messagelabs.com!1339093630!25288120!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDE0Nzk=\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 15490 invoked from network); 7 Jun 2012 18:27:11 -0000
-Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-11.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
-       7 Jun 2012 18:27:11 -0000
-X-IronPort-AV: E=Sophos;i="4.75,732,1330905600"; d="scan'208";a="12894464"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       07 Jun 2012 18:27:10 +0000
-Received: from norwich.cam.xci-test.com (10.80.248.129) by
-       smtprelay.citrix.com (10.30.203.162) with Microsoft SMTP Server id
-       8.3.213.0; Thu, 7 Jun 2012 19:27:10 +0100
-Received: from mariner.cam.xci-test.com        ([10.80.2.22]
-       helo=mariner.uk.xensource.com ident=Debian-exim)        by
-       norwich.cam.xci-test.com
-       with esmtp (Exim 4.72)  (envelope-from <Ian.Jackson@eu.citrix.com>)     id
-       1SchQM-0001uq-AS; Thu, 07 Jun 2012 18:27:10 +0000
-Received: from iwj by mariner.uk.xensource.com with local (Exim 4.72)
-       (envelope-from <Ian.Jackson@eu.citrix.com>)     id 1SchQM-0006Wf-9F;
-       Thu, 07 Jun 2012 19:27:10 +0100
-From: Ian Jackson <Ian.Jackson@eu.citrix.com>
-MIME-Version: 1.0
-Message-ID: <20432.62078.265596.607954@mariner.uk.xensource.com>
-Date: Thu, 7 Jun 2012 19:27:10 +0100
-To: Roger Pau Monne <roger.pau@citrix.com>
-In-Reply-To: <4FD0EB53.2040603@citrix.com>
-References: <alpine.DEB.2.00.1205281439080.26786@kaball-desktop>
-       <1338287956-24691-8-git-send-email-stefano.stabellini@eu.citrix.com>
-       <4FD0EB53.2040603@citrix.com>
-X-Mailer: VM 8.1.0 under 23.2.1 (i486-pc-linux-gnu)
-Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
-       Ian Campbell <Ian.Campbell@citrix.com>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH v8 08/11] xl/libxl: implement QDISK
- libxl_device_disk_local_attach
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-Roger Pau Monne writes ("Re: [Xen-devel] [PATCH v8 08/11] xl/libxl: implement QDISK libxl_device_disk_local_attach"):
-> Stefano Stabellini wrote:
-> >   int libxl__device_disk_local_detach(libxl__gc *gc, libxl_device_disk *disk)
-> >   {
-> > -    /* Nothing to do for PHYSTYPE_PHY. */
-> > +    int rc = 0;
-> >
-> > -    /*
-> > -     * For other device types assume that the blktap2 process is
-> > -     * needed by the soon to be started domain and do nothing.
-> > -     */
-> > +    switch (disk->backend) {
-> > +        case LIBXL_DISK_BACKEND_QDISK:
-> > +            if (disk->vdev != NULL) {
-> > +                libxl_device_disk_remove(gc->owner, LIBXL_TOOLSTACK_DOMID,
-> > +                        disk, 0);
-> 
-> I was just looking at this code, and I have the feeling this could be 
-> dangerous, since you call libxl__device_disk_local_detach from an 
-> already running ao (the bootloader ao), and libxl_device_disk_remove 
-> will initiate another ao, and set it to completed inside of an already 
-> running ao.
-
-This is indeed forbidden.  The inner ao function exit will reenter the
-libxl event loop, which might do almost anything, including
-unexpectedly recursively reentering the other asynchronous operation
-(the lock doesn't prevent this since it's the same thread).
-
-Ian.
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<20544.54424.775548.66532@mariner.uk.xensource.com> b/test/corpus/<20544.54424.775548.66532@mariner.uk.xensource.com>
deleted file mode 100644 (file)
index 03d925c..0000000
+++ /dev/null
@@ -1,126 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Aug 31 16:16:47 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 31 Aug 2012 16:16:47 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T7Sxe-0007C1-2y
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 31 Aug 2012 16:16:47 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T7Suj-0004Ng-Kx; Fri, 31 Aug 2012 15:13:41 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Jackson@eu.citrix.com>) id 1T7Suh-0004NY-Kh
-       for xen-devel@lists.xen.org; Fri, 31 Aug 2012 15:13:39 +0000
-Received: from [85.158.143.35:12958] by server-3.bemta-4.messagelabs.com id
-       08/96-08232-3A4D0405; Fri, 31 Aug 2012 15:13:39 +0000
-X-Env-Sender: Ian.Jackson@eu.citrix.com
-X-Msg-Ref: server-14.tower-21.messagelabs.com!1346426018!16175429!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTEyMzY=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 1863 invoked from network); 31 Aug 2012 15:13:38 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-14.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
-       31 Aug 2012 15:13:38 -0000
-X-IronPort-AV: E=Sophos;i="4.80,347,1344211200"; d="scan'208";a="14292640"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       31 Aug 2012 15:13:31 +0000
-Received: from norwich.cam.xci-test.com (10.80.248.129) by
-       smtprelay.citrix.com (10.30.203.162) with Microsoft SMTP Server id
-       8.3.279.1; Fri, 31 Aug 2012 16:13:31 +0100
-Received: from mariner.cam.xci-test.com        ([10.80.2.22]
-       helo=mariner.uk.xensource.com ident=Debian-exim)        by
-       norwich.cam.xci-test.com
-       with esmtp (Exim 4.72)  (envelope-from <Ian.Jackson@eu.citrix.com>)     id
-       1T7SuZ-0004Z4-5j; Fri, 31 Aug 2012 15:13:31 +0000
-Received: from iwj by mariner.uk.xensource.com with local (Exim 4.72)
-       (envelope-from <Ian.Jackson@eu.citrix.com>)     id 1T7SuZ-0007pg-1S;
-       Fri, 31 Aug 2012 16:13:31 +0100
-From: Ian Jackson <Ian.Jackson@eu.citrix.com>
-MIME-Version: 1.0
-Message-ID: <20544.54424.775548.66532@mariner.uk.xensource.com>
-Date: Fri, 31 Aug 2012 16:13:28 +0100
-To: Ian Campbell <Ian.Campbell@citrix.com>
-In-Reply-To: <1346425278.27277.224.camel@zakaz.uk.xensource.com>
-References: <1344935141.5926.6.camel@zakaz.uk.xensource.com>
-       <20120814100704.GA19704@bloms.de>
-       <1346421542.27277.218.camel@zakaz.uk.xensource.com>
-       <1346425278.27277.224.camel@zakaz.uk.xensource.com>
-X-Mailer: VM 8.1.0 under 23.2.1 (i486-pc-linux-gnu)
-Cc: Dieter Bloms <xensource.com@bloms.de>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [Xen-users] Xen 4.2 TODO (io and irq parameter are
- not evaluated by xl)
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-Ian Campbell writes ("Re: [Xen-users] Xen 4.2 TODO (io and irq parameter are not evaluated by xl)"):
-> libxl/xl: implement support for guest iooprt and irq permissions.
-
-Most of this looks good, but:
-
-...                                       ("bios",             libxl_bios_type),
-> +            buf = xlu_cfg_get_listitem (ioports, i);
-> +            if (!buf) {
-> +                fprintf(stderr,
-> +                        "xl: Unable to get element #%d in ioport list\n", i);
-> +                exit(1);
-> +            }
-> +            s = e = strtoul(buf, &ep, 16);
-> +            if (ep == buf) {
-> +                fprintf(stderr, "xl: Invalid argument parsing ioport: %s\n",
-> +                        buf);
-> +                exit(1);
-> +            }
-> +            if (*ep == '-') {
-
-This code fails to properly handle (reject)
-   - (*ep!=0 && *ep!='-')
-   - value > LONG_MAX
-   - INT_MAX < value <= LONG_MAX
-   - *ep2!=0
-
-> +            irq = strtoul(buf, &ep, 10);
-
-Likewise.
-
-I take it we're not worrying about missing malloc failure checks in
-xl.
-
-Ian.
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<20544.57061.422450.821411@mariner.uk.xensource.com> b/test/corpus/<20544.57061.422450.821411@mariner.uk.xensource.com>
deleted file mode 100644 (file)
index cac086d..0000000
+++ /dev/null
@@ -1,119 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Aug 31 17:01:27 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 31 Aug 2012 17:01:27 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T7Ter-0007M5-LN
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 31 Aug 2012 17:01:26 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T7Tb7-0006S0-4Z; Fri, 31 Aug 2012 15:57:29 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Jackson@eu.citrix.com>) id 1T7Tb5-0006Rp-9m
-       for xen-devel@lists.xen.org; Fri, 31 Aug 2012 15:57:27 +0000
-Received: from [85.158.143.35:21611] by server-3.bemta-4.messagelabs.com id
-       4C/E0-08232-6EED0405; Fri, 31 Aug 2012 15:57:26 +0000
-X-Env-Sender: Ian.Jackson@eu.citrix.com
-X-Msg-Ref: server-6.tower-21.messagelabs.com!1346428646!16096232!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTEyMzY=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 11393 invoked from network); 31 Aug 2012 15:57:26 -0000
-Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-6.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
-       31 Aug 2012 15:57:26 -0000
-X-IronPort-AV: E=Sophos;i="4.80,347,1344211200"; d="scan'208";a="14293840"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       31 Aug 2012 15:57:26 +0000
-Received: from norwich.cam.xci-test.com (10.80.248.129) by
-       smtprelay.citrix.com (10.30.203.162) with Microsoft SMTP Server id
-       8.3.279.1; Fri, 31 Aug 2012 16:57:26 +0100
-Received: from mariner.cam.xci-test.com        ([10.80.2.22]
-       helo=mariner.uk.xensource.com ident=Debian-exim)        by
-       norwich.cam.xci-test.com
-       with esmtp (Exim 4.72)  (envelope-from <Ian.Jackson@eu.citrix.com>)     id
-       1T7Tb3-0004uP-KG; Fri, 31 Aug 2012 15:57:25 +0000
-Received: from iwj by mariner.uk.xensource.com with local (Exim 4.72)
-       (envelope-from <Ian.Jackson@eu.citrix.com>)     id 1T7Tb3-0007vm-Gu;
-       Fri, 31 Aug 2012 16:57:25 +0100
-From: Ian Jackson <Ian.Jackson@eu.citrix.com>
-MIME-Version: 1.0
-Message-ID: <20544.57061.422450.821411@mariner.uk.xensource.com>
-Date: Fri, 31 Aug 2012 16:57:25 +0100
-To: Ian Campbell <Ian.Campbell@citrix.com>
-In-Reply-To: <1346426619.27277.237.camel@zakaz.uk.xensource.com>
-References: <1344935141.5926.6.camel@zakaz.uk.xensource.com>
-       <20120814100704.GA19704@bloms.de>
-       <1346421542.27277.218.camel@zakaz.uk.xensource.com>
-       <1346425278.27277.224.camel@zakaz.uk.xensource.com>
-       <20544.54424.775548.66532@mariner.uk.xensource.com>
-       <1346426619.27277.237.camel@zakaz.uk.xensource.com>
-X-Mailer: VM 8.1.0 under 23.2.1 (i486-pc-linux-gnu)
-Cc: Dieter Bloms <xensource.com@bloms.de>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [Xen-users] Xen 4.2 TODO (io and irq parameter are
- not evaluated by xl)
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-Ian Campbell writes ("Re: [Xen-users] Xen 4.2 TODO (io and irq parameter are not evaluated by xl)"):
-> On Fri, 2012-08-31 at 16:13 +0100, Ian Jackson wrote:
-> > This code fails to properly handle (reject)
-> >    - (*ep!=0 && *ep!='-')
-> 
-> Oops, will fix.
-> 
-> >    - value > LONG_MAX
-> >    - INT_MAX < value <= LONG_MAX
-> 
-> These all get checked inside the (eventual) hypercall. Or were you
-> thinking of something else?
-
-Suppose buf contains "1100000055\0".
-
-If a long is 32-bit, strtoul will return ULONG_MAX (0xffffffffUL)
-setting errno to ERANGE.  Converting that to a 32-bit signed int will
-do something implementation-defined (C99 6.3.1.3(3)) - in reality,
-give -1.  Relying on this being rejected later seems poor practice.
-
-If a long is 64-bit and an int 32-bit, strtoul will return
-0x1100000055UL.  Converting that to a 32-bit int will again do
-something implementation-defined - in reality, give 0x55.
-
-Ian.
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<217459398.20120902171441@eikelenboom.it> b/test/corpus/<217459398.20120902171441@eikelenboom.it>
deleted file mode 100644 (file)
index 8b58857..0000000
+++ /dev/null
@@ -1,127 +0,0 @@
-From xen-devel-bounces@lists.xen.org Sun Sep 02 16:20:00 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Sun, 02 Sep 2012 16:20:00 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T8Bxt-0005fB-Jq
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Sun, 02 Sep 2012 16:20:00 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T8Bss-0008MG-AN; Sun, 02 Sep 2012 15:14:46 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <linux@eikelenboom.it>) id 1T8Bsq-0008MB-Pq
-       for xen-devel@lists.xen.org; Sun, 02 Sep 2012 15:14:44 +0000
-Received: from [85.158.139.83:49524] by server-9.bemta-5.messagelabs.com id
-       B2/B8-20529-4E773405; Sun, 02 Sep 2012 15:14:44 +0000
-X-Env-Sender: linux@eikelenboom.it
-X-Msg-Ref: server-7.tower-182.messagelabs.com!1346598883!24193391!1
-X-Originating-IP: [188.40.164.121]
-X-SpamReason: No, hits=0.0 required=7.0 tests=
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 23422 invoked from network); 2 Sep 2012 15:14:43 -0000
-Received: from static.121.164.40.188.clients.your-server.de (HELO
-       smtp.eikelenboom.it) (188.40.164.121)
-       by server-7.tower-182.messagelabs.com with AES256-SHA encrypted SMTP;
-       2 Sep 2012 15:14:43 -0000
-Received: from 26-69-ftth.onsneteindhoven.nl ([88.159.69.26]:60557
-       helo=[172.16.1.20])
-       by smtp.eikelenboom.it with esmtpsa (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72) (envelope-from <linux@eikelenboom.it>)
-       id 1T8Bpk-0001to-4I; Sun, 02 Sep 2012 17:11:32 +0200
-Date: Sun, 2 Sep 2012 17:14:41 +0200
-From: Sander Eikelenboom <linux@eikelenboom.it>
-Organization: Eikelenboom IT services
-X-Priority: 3 (Normal)
-Message-ID: <217459398.20120902171441@eikelenboom.it>
-To: Keir Fraser <keir.xen@gmail.com>
-In-Reply-To: <CC6932C2.3D99D%keir.xen@gmail.com>
-References: <40501859.20120902104331@eikelenboom.it>
-       <CC6932C2.3D99D%keir.xen@gmail.com>
-MIME-Version: 1.0
-Cc: "wei.wang2@amd.com" <wei.wang2@amd.com>,
-       Santosh Jodh <Santosh.Jodh@citrix.com>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] Using debug-key 'o:  Dump IOMMU p2m table,
-       locks up machine
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-Sunday, September 2, 2012, 4:58:58 PM, you wrote:
-
-> On 02/09/2012 09:43, "Sander Eikelenboom" <linux@eikelenboom.it> wrote:
-
->>> Quite simply, there likely needs to be more tracing on the IOMMU fault path.
->>> That's a separate concern from your keyhandler of course, but just saying
->>> I'd be looking for the former rather than the latter, for diagnosing
->>> Sander's bug.
->> 
->> Are there any printk's I could add to get more relevant info about the AMD-Vi:
->> IO_PAGE_FAULT ?
-
-> No really straightforward one. I think we need a per-IOMMU-type handler to
-> walk the IOMMU page table for a given virtual address, and dump every
-> page-table-entry on the path. Like an IOMMU version of show_page_walk().
-> Personally I would suspect this is more useful than the dump-everything
-> handlers: just give a *full* *detailed* walk for the actually interesting
-> virtual address (the one faulted on).
-
->> I have attached new output from xl dmesg, this time with iommu=debug on (the
->> option changed from 4.1 to 4.2).
-
-> Not easy to glean any more from that, without extra tracing such as
-> described above, and/or digging into the guest to find what driver-side
-> actions are causing the faults.
-
-OK, too bad!
-With xen 4.1 i haven't experienced those page faults, but a diff between /xen/drivers/passthrough/amd in both trees show quite some changes :(
-
->  -- Keir
-
->> 
->> 
->>>  -- Keir
->> 
-
-
-
-
-
-
--- 
-Best regards,
- Sander                            mailto:linux@eikelenboom.it
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<348297741.20120905122542@eikelenboom.it> b/test/corpus/<348297741.20120905122542@eikelenboom.it>
deleted file mode 100644 (file)
index e4b0e7e..0000000
+++ /dev/null
@@ -1,251 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Sep 05 11:30:12 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 05 Sep 2012 11:30:12 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T9Cs2-0002GB-0H
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 05 Sep 2012 11:30:12 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T9Cnz-0001qI-3r; Wed, 05 Sep 2012 10:25:55 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <linux@eikelenboom.it>) id 1T9Cnx-0001q5-B7
-       for xen-devel@lists.xen.org; Wed, 05 Sep 2012 10:25:53 +0000
-Received: from [85.158.138.51:7027] by server-5.bemta-3.messagelabs.com id
-       86/23-13133-0B827405; Wed, 05 Sep 2012 10:25:52 +0000
-X-Env-Sender: linux@eikelenboom.it
-X-Msg-Ref: server-3.tower-174.messagelabs.com!1346840748!20668791!1
-X-Originating-IP: [188.40.164.121]
-X-SpamReason: No, hits=0.0 required=7.0 tests=
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 2762 invoked from network); 5 Sep 2012 10:25:48 -0000
-Received: from static.121.164.40.188.clients.your-server.de (HELO
-       smtp.eikelenboom.it) (188.40.164.121)
-       by server-3.tower-174.messagelabs.com with AES256-SHA encrypted SMTP;
-       5 Sep 2012 10:25:48 -0000
-Received: from 128-64-ftth.onsneteindhoven.nl ([88.159.64.128]:51861
-       helo=[172.16.1.20])
-       by smtp.eikelenboom.it with esmtpsa (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72) (envelope-from <linux@eikelenboom.it>)
-       id 1T9Cko-0007m8-4A; Wed, 05 Sep 2012 12:22:38 +0200
-Date: Wed, 5 Sep 2012 12:25:42 +0200
-From: Sander Eikelenboom <linux@eikelenboom.it>
-Organization: Eikelenboom IT services
-X-Priority: 3 (Normal)
-Message-ID: <348297741.20120905122542@eikelenboom.it>
-To: "Jan Beulich" <JBeulich@suse.com>
-In-Reply-To: <5047420A0200007800098BB1@nat28.tlf.novell.com>
-References: <40501859.20120902104331@eikelenboom.it>
-       <CC6932C2.3D99D%keir.xen@gmail.com>
-       <217459398.20120902171441@eikelenboom.it>
-       <5044CAD7.8030800@amd.com>
-       <1144695277.20120904184345@eikelenboom.it>
-       <5047420A0200007800098BB1@nat28.tlf.novell.com>
-MIME-Version: 1.0
-Cc: Wei Wang <wei.wang2@amd.com>, Keir Fraser <keir.xen@gmail.com>,
-       Santosh Jodh <Santosh.Jodh@citrix.com>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="iso-8859-15"
-Content-Transfer-Encoding: quoted-printable
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,MIME_QP_LONG_LINE,
-       RCVD_IN_DNSWL_MED,T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham
-       version=3.3.1
-Subject: Re: [Xen-devel] Using debug-key 'o:  Dump IOMMU p2m table,
-       locks up machine
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-
-Wednesday, September 5, 2012, 12:14:02 PM, you wrote:
-
->>>> On 04.09.12 at 18:43, Sander Eikelenboom <linux@eikelenboom.it> wrote:
->>> Did you also update xen tools accordingly? Sometime I also saw a few =
-
->>> IO_PAGE_FAULTs came from nic if my tools version and HV version did not =
-
->>> match. But using recent 4.2 and corresponding xl, my tests went well.
->>> BTW: You could also try iommu=3Dno-sharept to see if it helps.
->> =
-
->> Tried it and it doesn't help.
->> I now even got a "xl dmesg" which shows a IO_PAGE_FAULT occuring very ea=
-rly, =
-
->> before any toolstack or guest can be involved:
->> =
-
->> (XEN) [2012-09-04 15:51:17] AMD-Vi: Setup I/O page table: device id =3D =
-0x0a05, =
-
->> root table =3D 0x24d84b000, domain =3D 0, paging mode =3D 3
->> (XEN) [2012-09-04 15:51:17] AMD-Vi: Setup I/O page table: device id =3D =
-0x0a06, =
-
->> root table =3D 0x24d84b000, domain =3D 0, paging mode =3D 3
->> (XEN) [2012-09-04 15:51:17] AMD-Vi: Setup I/O page table: device id =3D =
-0x0a07, =
-
->> root table =3D 0x24d84b000, domain =3D 0, paging mode =3D 3
->> (XEN) [2012-09-04 15:51:17] AMD-Vi: Setup I/O page table: device id =3D =
-0x0b00, =
-
->> root table =3D 0x24d84b000, domain =3D 0, paging mode =3D 3
->> (XEN) [2012-09-04 15:51:17] Scrubbing Free RAM: =
-
->> ...........................<0>AMD-Vi: IO_PAGE_FAULT: domain =3D 0, devic=
-e id =3D =
-
->> 0x0a06, fault address =3D 0xc2c2c2c0
-
-> Looks like use of uninitialized memory (assuming you're using a
-> debug hypervisor, that's the pattern scrub_one_page() puts
-> there). But it's unclear to me what device should be doing any
-> I/O at that point (and even if one does, how it would get the
-> bad address loaded). What is 0a:00.6?
-
-since 4.2-rc4 is still unstable it has debug=3Dy for what i know, so yes.
-This particular IO_PAGE_FAULT happened before the kernel loads, so the kern=
-el and pciback shouldn't be causing the issue one would say.
-With pciback i'm hiding 03:06.0, 04:00.*, 05:00.0, 0a:00.* and 07:00.0 at b=
-oot.
-
-Is there any code i could add to get more info where it comes from ?
-
-
-00:00.0 Host bridge: ATI Technologies Inc RD890 Northbridge only single slo=
-t PCI-e GFX Hydra part (rev 02)
-00:00.2 Generic system peripheral [0806]: ATI Technologies Inc RD990 I/O Me=
-mory Management Unit (IOMMU)
-00:02.0 PCI bridge: ATI Technologies Inc RD890 PCI to PCI bridge (PCI expre=
-ss gpp port B)
-00:03.0 PCI bridge: ATI Technologies Inc RD890 PCI to PCI bridge (PCI expre=
-ss gpp port C)
-00:05.0 PCI bridge: ATI Technologies Inc RD890 PCI to PCI bridge (PCI expre=
-ss gpp port E)
-00:06.0 PCI bridge: ATI Technologies Inc RD890 PCI to PCI bridge (PCI expre=
-ss gpp port F)
-00:0a.0 PCI bridge: ATI Technologies Inc RD890 PCI to PCI bridge (external =
-gfx1 port A)
-00:0b.0 PCI bridge: ATI Technologies Inc RD890 PCI to PCI bridge (NB-SB lin=
-k)
-00:0c.0 PCI bridge: ATI Technologies Inc Device 5a20
-00:0d.0 PCI bridge: ATI Technologies Inc RD890 PCI to PCI bridge (external =
-gfx1 port B)
-00:11.0 SATA controller: ATI Technologies Inc SB7x0/SB8x0/SB9x0 SATA Contro=
-ller [AHCI mode] (rev 40)
-00:12.0 USB controller: ATI Technologies Inc SB7x0/SB8x0/SB9x0 USB OHCI0 Co=
-ntroller
-00:12.2 USB controller: ATI Technologies Inc SB7x0/SB8x0/SB9x0 USB EHCI Con=
-troller
-00:13.0 USB controller: ATI Technologies Inc SB7x0/SB8x0/SB9x0 USB OHCI0 Co=
-ntroller
-00:13.2 USB controller: ATI Technologies Inc SB7x0/SB8x0/SB9x0 USB EHCI Con=
-troller
-00:14.0 SMBus: ATI Technologies Inc SBx00 SMBus Controller (rev 41)
-00:14.3 ISA bridge: ATI Technologies Inc SB7x0/SB8x0/SB9x0 LPC host control=
-ler (rev 40)
-00:14.4 PCI bridge: ATI Technologies Inc SBx00 PCI to PCI Bridge (rev 40)
-00:14.5 USB controller: ATI Technologies Inc SB7x0/SB8x0/SB9x0 USB OHCI2 Co=
-ntroller
-00:15.0 PCI bridge: ATI Technologies Inc SB700/SB800/SB900 PCI to PCI bridg=
-e (PCIE port 0)
-00:16.0 USB controller: ATI Technologies Inc SB7x0/SB8x0/SB9x0 USB OHCI0 Co=
-ntroller
-00:16.2 USB controller: ATI Technologies Inc SB7x0/SB8x0/SB9x0 USB EHCI Con=
-troller
-00:18.0 Host bridge: Advanced Micro Devices [AMD] Family 10h Processor Hype=
-rTransport Configuration
-00:18.1 Host bridge: Advanced Micro Devices [AMD] Family 10h Processor Addr=
-ess Map
-00:18.2 Host bridge: Advanced Micro Devices [AMD] Family 10h Processor DRAM=
- Controller
-00:18.3 Host bridge: Advanced Micro Devices [AMD] Family 10h Processor Misc=
-ellaneous Control
-00:18.4 Host bridge: Advanced Micro Devices [AMD] Family 10h Processor Link=
- Control
-03:06.0 Multimedia audio controller: C-Media Electronics Inc CM8738 (rev 10)
-04:00.0 USB controller: NetMos Technology MCS9990 PCIe to 4=E2Port USB 2.0 =
-Host Controller
-04:00.1 USB controller: NetMos Technology MCS9990 PCIe to 4=E2Port USB 2.0 =
-Host Controller
-04:00.2 USB controller: NetMos Technology MCS9990 PCIe to 4=E2Port USB 2.0 =
-Host Controller
-04:00.3 USB controller: NetMos Technology MCS9990 PCIe to 4=E2Port USB 2.0 =
-Host Controller
-04:00.4 USB controller: NetMos Technology MCS9990 PCIe to 4=E2Port USB 2.0 =
-Host Controller
-04:00.5 USB controller: NetMos Technology MCS9990 PCIe to 4=E2Port USB 2.0 =
-Host Controller
-04:00.6 USB controller: NetMos Technology MCS9990 PCIe to 4=E2Port USB 2.0 =
-Host Controller
-04:00.7 USB controller: NetMos Technology MCS9990 PCIe to 4=E2Port USB 2.0 =
-Host Controller
-05:00.0 Multimedia video controller: Conexant Systems, Inc. CX25850
-06:00.0 VGA compatible controller: ATI Technologies Inc RV620 LE [Radeon HD=
- 3450]
-06:00.1 Audio device: ATI Technologies Inc RV620 Audio device [Radeon HD 34=
-xx Series]
-07:00.0 Multimedia video controller: Conexant Systems, Inc. Device 8210
-08:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168B =
-PCI Express Gigabit Ethernet controller (rev 03)
-09:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168B =
-PCI Express Gigabit Ethernet controller (rev 03)
-0a:00.0 USB controller: NetMos Technology MCS9990 PCIe to 4=E2Port USB 2.0 =
-Host Controller
-0a:00.1 USB controller: NetMos Technology MCS9990 PCIe to 4=E2Port USB 2.0 =
-Host Controller
-0a:00.2 USB controller: NetMos Technology MCS9990 PCIe to 4=E2Port USB 2.0 =
-Host Controller
-0a:00.3 USB controller: NetMos Technology MCS9990 PCIe to 4=E2Port USB 2.0 =
-Host Controller
-0a:00.4 USB controller: NetMos Technology MCS9990 PCIe to 4=E2Port USB 2.0 =
-Host Controller
-0a:00.5 USB controller: NetMos Technology MCS9990 PCIe to 4=E2Port USB 2.0 =
-Host Controller
-0a:00.6 USB controller: NetMos Technology MCS9990 PCIe to 4=E2Port USB 2.0 =
-Host Controller
-0a:00.7 USB controller: NetMos Technology MCS9990 PCIe to 4=E2Port USB 2.0 =
-Host Controller
-0b:00.0 VGA compatible controller: nVidia Corporation G98 [GeForce 8400 GS]=
- (rev a1)
-
-
-
-
-
-
-
-> Jan
-
-
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<388095299.20120928160836@eikelenboom.it> b/test/corpus/<388095299.20120928160836@eikelenboom.it>
deleted file mode 100644 (file)
index c619061..0000000
+++ /dev/null
@@ -1,145 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Sep 28 15:13:38 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 28 Sep 2012 15:13:38 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1THbJs-0004Z9-6l
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 28 Sep 2012 15:13:38 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1THbFG-00063Y-KM; Fri, 28 Sep 2012 14:08:46 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <linux@eikelenboom.it>) id 1THbFE-00063T-UP
-       for xen-devel@lists.xen.org; Fri, 28 Sep 2012 14:08:45 +0000
-Received: from [85.158.139.83:61771] by server-11.bemta-5.messagelabs.com id
-       3C/5A-13866-C6FA5605; Fri, 28 Sep 2012 14:08:44 +0000
-X-Env-Sender: linux@eikelenboom.it
-X-Msg-Ref: server-9.tower-182.messagelabs.com!1348841323!31903903!1
-X-Originating-IP: [188.40.164.121]
-X-SpamReason: No, hits=0.0 required=7.0 tests=
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 14995 invoked from network); 28 Sep 2012 14:08:43 -0000
-Received: from static.121.164.40.188.clients.your-server.de (HELO
-       smtp.eikelenboom.it) (188.40.164.121)
-       by server-9.tower-182.messagelabs.com with AES256-SHA encrypted SMTP;
-       28 Sep 2012 14:08:43 -0000
-Received: from 50-64-ftth.onsneteindhoven.nl ([88.159.64.50]:55041
-       helo=[172.16.1.20])
-       by smtp.eikelenboom.it with esmtpsa (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72) (envelope-from <linux@eikelenboom.it>)
-       id 1THbG3-0004zG-9O; Fri, 28 Sep 2012 16:09:35 +0200
-Date: Fri, 28 Sep 2012 16:08:36 +0200
-From: Sander Eikelenboom <linux@eikelenboom.it>
-Organization: Eikelenboom IT services
-X-Priority: 3 (Normal)
-Message-ID: <388095299.20120928160836@eikelenboom.it>
-To: "Jan Beulich" <JBeulich@suse.com>
-In-Reply-To: <505AEB2D020000780009C81F@nat28.tlf.novell.com>
-References: <7914B38A4445B34AA16EB9F1352942F1012F0F6F4B98@SJCPMAILBOX01.citrite.net>
-       <CC681CDD.3D966%keir.xen@gmail.com>
-       <40501859.20120902104331@eikelenboom.it>
-       <5044849002000078000982EA@nat28.tlf.novell.com>
-       <4610648186.20120904090841@eikelenboom.it>
-       <5045CDF302000078000985FB@nat28.tlf.novell.com>
-       <4710608674.20120904101330@eikelenboom.it>
-       <505AEB2D020000780009C81F@nat28.tlf.novell.com>
-MIME-Version: 1.0
-Cc: Jeremy Fitzhardinge <jeremy@goop.org>, ehabkost@redhat.com,
-       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
-       "wei.wang2@amd.com" <wei.wang2@amd.com>, Keir Fraser <keir.xen@gmail.com>,
-       Santosh Jodh <Santosh.Jodh@citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-5.0 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] Using debug-key 'o:  Dump IOMMU p2m table,
-       locks up machine
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-
-Thursday, September 20, 2012, 10:08:45 AM, you wrote:
-
-> Ping?
-
-Perhaps changing the subject or starting a new thread altogether for this would provoke more reaction ?
-
->>>> On 04.09.12 at 11:26, Jan Beulich wrote:
->>>>> On 04.09.12 at 10:13, Sander Eikelenboom <linux@eikelenboom.it> wrote:
->> > Hmm don't know how to get the file/line, only thing i have found is:
->> > 
->> > serveerstertje:/boot# gdb xen-syms-4.2.0-rc4-pre
->> > GNU gdb (GDB) 7.0.1-debian
->> > Copyright (C) 2009 Free Software Foundation, Inc.
->> > License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
->> > This is free software: you are free to change and redistribute it.
->> > There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
->> > and "show warranty" for details.
->> > This GDB was configured as "x86_64-linux-gnu".
->> > For bug reporting instructions, please see:
->> > <http://www.gnu.org/software/gdb/bugs/>...
->> > Reading symbols from /boot/xen-syms-4.2.0-rc4-pre...done.
->> > (gdb) x/i 0xffff82c48015c9ee
->> > 0xffff82c48015c9ee <context_switch+916>:        mov    %edx,%gs
->> > (gdb)
->> 
->> I'm not really a gdb expert, so I don't know off the top of my
->> head either. I thought I said in a previous reply that people
->> generally appear to use the addr2line utility for that purpose.
->> 
->> But the disassembly already tells us where precisely the
->> problem is: The selector value (0x0063) attempted to be put
->> into %gs is apparently wrong in the context of the current
->> GDT. Now, that's GDT_ENTRY_TLS_MIN on the Linux side,
->> and ought to be valid. I'm surprised the guest (and the current
->> process in it) survives this (as the failure here results in a failsafe
->> callback into the guest).
->> 
->> Looking at the Linux side of things, this has been that way
->> forever, and I think has always been broken: On x86-64, it
->> should also clear %gs here (since 32-bit processes use it for
->> their TLS, and there's nothing wrong for a 64-bit process to put
->> something in there either), albeit not via loadsegment(), but
->> through xen_load_gs_index(). And I neither see why on 32-bit
->> it only clears %gs - %fs can as much hold a selector that might
->> get invalidated with the TLS descriptor updates. Eduardo,
->> Jeremy, Konrad?
->> 
->> Jan
->> 
-
-
-
-
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<3921d4d38a5c20943af1ceb64f5f0691d7bfd702.1345552068.git.julien.grall@citrix.com> b/test/corpus/<3921d4d38a5c20943af1ceb64f5f0691d7bfd702.1345552068.git.julien.grall@citrix.com>
deleted file mode 100644 (file)
index 2b9ad2f..0000000
+++ /dev/null
@@ -1,285 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Aug 22 19:58:53 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 22 Aug 2012 19:58:53 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T4G8Z-0002ly-3Q
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 22 Aug 2012 19:58:53 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T4G5F-0006i2-GE; Wed, 22 Aug 2012 18:55:17 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <julien.grall@citrix.com>) id 1T4G5D-0006gF-9G
-       for xen-devel@lists.xen.org; Wed, 22 Aug 2012 18:55:15 +0000
-Received: from [85.158.138.51:37636] by server-4.bemta-3.messagelabs.com id
-       A6/0D-04276-21B25305; Wed, 22 Aug 2012 18:55:14 +0000
-X-Env-Sender: julien.grall@citrix.com
-X-Msg-Ref: server-5.tower-174.messagelabs.com!1345661707!27566656!2
-X-Originating-IP: [66.165.176.63]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyNzMzNjM=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 9667 invoked from network); 22 Aug 2012 18:55:10 -0000
-Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
-       by server-5.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
-       22 Aug 2012 18:55:10 -0000
-X-IronPort-AV: E=Sophos;i="4.80,809,1344225600"; d="scan'208";a="205943112"
-Received: from ftlpmailmx01.citrite.net ([10.13.107.65])
-       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       22 Aug 2012 14:55:09 -0400
-Received: from meteora.cam.xci-test.com (10.80.248.22) by smtprelay.citrix.com
-       (10.13.107.65) with Microsoft SMTP Server id 8.3.213.0;
-       Wed, 22 Aug 2012 14:55:08 -0400
-From: Julien Grall <julien.grall@citrix.com>
-To: qemu-devel@nongnu.org
-Date: Wed, 22 Aug 2012 13:31:49 +0100
-Message-ID: <3921d4d38a5c20943af1ceb64f5f0691d7bfd702.1345552068.git.julien.grall@citrix.com>
-X-Mailer: git-send-email 1.7.2.5
-In-Reply-To: <cover.1345552068.git.julien.grall@citrix.com>
-References: <cover.1345552068.git.julien.grall@citrix.com>
-MIME-Version: 1.0
-Cc: Julien Grall <julien.grall@citrix.com>, christian.limpach@gmail.com,
-       Stefano.Stabellini@eu.citrix.com, xen-devel@lists.xen.org
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DATE_IN_PAST_06_12,
-       RCVD_IN_DNSWL_MED,RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham
-       version=3.3.1
-Subject: [Xen-devel] [XEN][RFC PATCH V2 03/17] hvm-pci: Handle PCI config
-       space in Xen
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-Add function to register a bdf within a server.
-An handler was add to catch (cf8 -> cff) ioport access.
-When Xen reveices a PIO for cf8, it's store the value inside the current
-vcpu until it receives a PIO for cfc -> cff.
-In this case, it checks if the bdf is registered and forge the ioreq
-that will be forward to server later.
-
-Signed-off-by: Julien Grall <julien.grall@citrix.com>
----
- xen/arch/x86/hvm/Makefile   |    1 +
- xen/arch/x86/hvm/pci_emul.c |  168 +++++++++++++++++++++++++++++++++++++++++++
- 2 files changed, 169 insertions(+), 0 deletions(-)
- create mode 100644 xen/arch/x86/hvm/pci_emul.c
-
-diff --git a/xen/arch/x86/hvm/Makefile b/xen/arch/x86/hvm/Makefile
-index eea5555..585e9c9 100644
---- a/xen/arch/x86/hvm/Makefile
-+++ b/xen/arch/x86/hvm/Makefile
-@@ -12,6 +12,7 @@ obj-y += irq.o
- obj-y += mtrr.o
- obj-y += nestedhvm.o
- obj-y += pmtimer.o
-+obj-y += pci_emul.o
- obj-y += quirks.o
- obj-y += rtc.o
- obj-y += save.o
-diff --git a/xen/arch/x86/hvm/pci_emul.c b/xen/arch/x86/hvm/pci_emul.c
-new file mode 100644
-index 0000000..48456dd
---- /dev/null
-+++ b/xen/arch/x86/hvm/pci_emul.c
-@@ -0,0 +1,168 @@
-+#include <asm/hvm/support.h>
-+#include <xen/hvm/pci_emul.h>
-+#include <xen/pci.h>
-+#include <xen/sched.h>
-+#include <xen/xmalloc.h>
-+
-+#define PCI_DEBUGSTR "%x:%x.%x"
-+#define PCI_DEBUG(bdf) ((bdf) >> 8) & 0xff, ((bdf) >> 3) & 0x1f, ((bdf)) & 0x7
-+#define PCI_MASK_BDF(bdf) (((bdf) & 0x00ffff00) >> 8)
-+#define PCI_CMP_BDF(Pci, Bdf) ((pci)->bdf == PCI_MASK_BDF(Bdf))
-+
-+static int handle_config_space(int dir, uint32_t port, uint32_t bytes,
-+                               uint32_t *val)
-+{
-+    uint32_t pci_cf8;
-+    struct hvm_ioreq_server *s;
-+    ioreq_t *p = get_ioreq(current);
-+    int rc = X86EMUL_UNHANDLEABLE;
-+    struct vcpu *v = current;
-+
-+    if ( port == 0xcf8 && bytes == 4 )
-+    {
-+        if ( dir == IOREQ_READ )
-+            *val = v->arch.hvm_vcpu.pci_cf8;
-+        else
-+            v->arch.hvm_vcpu.pci_cf8 = *val;
-+        return X86EMUL_OKAY;
-+    }
-+    else if ( port < 0xcfc )
-+        return X86EMUL_UNHANDLEABLE;
-+
-+    spin_lock(&v->domain->arch.hvm_domain.pci_root.pci_lock);
-+    spin_lock(&v->domain->arch.hvm_domain.ioreq_server_lock);
-+
-+    pci_cf8 = v->arch.hvm_vcpu.pci_cf8;
-+
-+    /* Retrieve PCI */
-+    s = radix_tree_lookup(&v->domain->arch.hvm_domain.pci_root.pci_list,
-+                          PCI_MASK_BDF(pci_cf8));
-+
-+    if ( unlikely(s == NULL) )
-+    {
-+        *val = ~0;
-+        rc = X86EMUL_OKAY;
-+        goto end_handle;
-+    }
-+
-+    /**
-+     * We just fill the ioreq, hvm_send_assist_req will send the request
-+     * The size is used to find the right access
-+     **/
-+    /* We use the 16 high-bits for the offset (0 => 0xcfc, 1 => 0xcfd...) */
-+    p->size = (p->addr - 0xcfc) << 16 | (p->size & 0xffff);
-+    p->type = IOREQ_TYPE_PCI_CONFIG;
-+    p->addr = pci_cf8;
-+
-+    set_ioreq(v, &s->ioreq, p);
-+
-+end_handle:
-+    spin_unlock(&v->domain->arch.hvm_domain.ioreq_server_lock);
-+    spin_unlock(&v->domain->arch.hvm_domain.pci_root.pci_lock);
-+
-+    return rc;
-+}
-+
-+int hvm_register_pcidev(domid_t domid, ioservid_t id,
-+                        uint8_t domain, uint8_t bus,
-+                        uint8_t device, uint8_t function)
-+{
-+    struct domain *d;
-+    struct hvm_ioreq_server *s;
-+    int rc = 0;
-+    struct radix_tree_root *tree;
-+    uint16_t bdf = 0;
-+
-+    /* For the moment we don't handle pci when domain != 0 */
-+    if ( domain != 0 )
-+        return -EINVAL;
-+
-+    rc = rcu_lock_target_domain_by_id(domid, &d);
-+
-+    if ( rc != 0 )
-+        return rc;
-+
-+    if ( !is_hvm_domain(d) )
-+    {
-+        rcu_unlock_domain(d);
-+        return -EINVAL;
-+    }
-+
-+    /* Search server */
-+    spin_lock(&d->arch.hvm_domain.ioreq_server_lock);
-+    s = d->arch.hvm_domain.ioreq_server_list;
-+    while ( (s != NULL) && (s->id != id) )
-+        s = s->next;
-+
-+    spin_unlock(&d->arch.hvm_domain.ioreq_server_lock);
-+
-+    if ( s == NULL )
-+    {
-+        gdprintk(XENLOG_ERR, "Cannot find server %u\n", id);
-+        rc = -ENOENT;
-+        goto fail;
-+    }
-+
-+    spin_lock(&d->arch.hvm_domain.pci_root.pci_lock);
-+
-+    tree = &d->arch.hvm_domain.pci_root.pci_list;
-+
-+    bdf |= ((uint16_t)bus) << 8;
-+    bdf |= ((uint16_t)device & 0x1f) << 3;
-+    bdf |= ((uint16_t)function & 0x7);
-+
-+    if ( radix_tree_lookup(tree, bdf) )
-+    {
-+        rc = -EEXIST;
-+        gdprintk(XENLOG_ERR, "Bdf " PCI_DEBUGSTR " is already allocated\n",
-+                 PCI_DEBUG(bdf));
-+        goto create_end;
-+    }
-+
-+    rc = radix_tree_insert(tree, bdf, s);
-+    if ( rc )
-+    {
-+        gdprintk(XENLOG_ERR, "Cannot insert the bdf\n");
-+        goto create_end;
-+    }
-+
-+create_end:
-+    spin_unlock(&d->arch.hvm_domain.pci_root.pci_lock);
-+fail:
-+    rcu_unlock_domain(d);
-+
-+    return rc;
-+}
-+
-+void hvm_init_pci_emul(struct domain *d)
-+{
-+    struct pci_root_emul *root = &d->arch.hvm_domain.pci_root;
-+
-+    spin_lock_init(&root->pci_lock);
-+
-+    radix_tree_init(&root->pci_list);
-+
-+    /* Register the config space handler */
-+    register_portio_handler(d, 0xcf8, 8, handle_config_space);
-+}
-+
-+void hvm_destroy_pci_emul(struct domain *d)
-+{
-+    struct pci_root_emul *root = &d->arch.hvm_domain.pci_root;
-+
-+    spin_lock(&root->pci_lock);
-+
-+    radix_tree_destroy(&root->pci_list, NULL);
-+
-+    spin_unlock(&root->pci_lock);
-+}
-+
-+/*
-+ * Local variables:
-+ * mode: C
-+ * c-set-style: "BSD"
-+ * c-basic-offset: 4
-+ * tab-width: 4
-+ * indent-tabs-mode: nil
-+ * End:
-+ */
--- 
-Julien Grall
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<40501859.20120902104331@eikelenboom.it> b/test/corpus/<40501859.20120902104331@eikelenboom.it>
deleted file mode 100644 (file)
index 24b0f56..0000000
+++ /dev/null
@@ -1,973 +0,0 @@
-From xen-devel-bounces@lists.xen.org Sun Sep 02 09:50:03 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Sun, 02 Sep 2012 09:50:03 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T85sP-0004tz-Kr
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Sun, 02 Sep 2012 09:50:02 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T85mO-0006p5-KT; Sun, 02 Sep 2012 08:43:40 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <linux@eikelenboom.it>) id 1T85mM-0006p0-Ub
-       for xen-devel@lists.xen.org; Sun, 02 Sep 2012 08:43:39 +0000
-Received: from [85.158.143.99:38251] by server-2.bemta-4.messagelabs.com id
-       AC/DC-21239-A3C13405; Sun, 02 Sep 2012 08:43:38 +0000
-X-Env-Sender: linux@eikelenboom.it
-X-Msg-Ref: server-11.tower-216.messagelabs.com!1346575414!20525918!1
-X-Originating-IP: [188.40.164.121]
-X-SpamReason: No, hits=0.5 required=7.0 tests=BODY_RANDOM_LONG
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 13618 invoked from network); 2 Sep 2012 08:43:34 -0000
-Received: from static.121.164.40.188.clients.your-server.de (HELO
-       smtp.eikelenboom.it) (188.40.164.121)
-       by server-11.tower-216.messagelabs.com with AES256-SHA encrypted SMTP;
-       2 Sep 2012 08:43:34 -0000
-Received: from 26-69-ftth.onsneteindhoven.nl ([88.159.69.26]:49677
-       helo=[172.16.1.20])
-       by smtp.eikelenboom.it with esmtpsa (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72) (envelope-from <linux@eikelenboom.it>)
-       id 1T85jC-00006N-KF; Sun, 02 Sep 2012 10:40:22 +0200
-Date: Sun, 2 Sep 2012 10:43:31 +0200
-From: Sander Eikelenboom <linux@eikelenboom.it>
-Organization: Eikelenboom IT services
-X-Priority: 3 (Normal)
-Message-ID: <40501859.20120902104331@eikelenboom.it>
-To: Keir Fraser <keir.xen@gmail.com>
-In-Reply-To: <CC681CDD.3D966%keir.xen@gmail.com>
-References: <7914B38A4445B34AA16EB9F1352942F1012F0F6F4B98@SJCPMAILBOX01.citrite.net>
-       <CC681CDD.3D966%keir.xen@gmail.com>
-MIME-Version: 1.0
-Content-Type: multipart/mixed;
- boundary="----------03516D00221173D65"
-Cc: "wei.wang2@amd.com" <wei.wang2@amd.com>,
-       Santosh Jodh <Santosh.Jodh@citrix.com>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] Using debug-key 'o:  Dump IOMMU p2m table,
-       locks up machine
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-------------03516D00221173D65
-Content-Type: text/plain; charset=us-ascii
-Content-Transfer-Encoding: 7bit
-
-
-Saturday, September 1, 2012, 9:13:17 PM, you wrote:
-
-> On 01/09/2012 18:03, "Santosh Jodh" <Santosh.Jodh@citrix.com> wrote:
-
->>> It might schedule softirqs but that won't include scheduling or running any
->>> guest vcpus. The vcpu that happens to be running on that cpu at the time the
->>> debug dump starts, will be stuck unrunnable until the dump completes.
->> 
->> Why does'nt that vCPU get scheduled on some other pCPU? Is there  a way to
->> yield the CPU from the key handler?
-
-> It can't be descheduled from this pCPU without running through the
-> scheduler. You could try running the handler in a tasklet -- a tasklet
-> causes other vCPUs to be descheduled from that pCPU, before it starts
-> running.
-
-> So you'd register a keyhandler which does a tasklet_schedule(), and do your
-> logging work in the tasklet handler.
-
-> Worth a shot maybe?
-
->>> 
->>> Well, anyway, I don't know how useful a massive dump of the entire p2m is
->>> going to be for debugging anyway. If investigating an IOMMU page fault, I'd
->>> just want the info pertaining to that fault, and all the mapping information
->>> for
->>> that IO virtual address, dumped. :)
->> 
->> It is not a generically useful command - its usefulness is in the same
->> category as dumping the MMU table. Unfortunately, there is no way to pass
->> arguments to the key handler - to say provide the VM and or starting gfn and
->> length for a more selective output.
-
-> Quite simply, there likely needs to be more tracing on the IOMMU fault path.
-> That's a separate concern from your keyhandler of course, but just saying
-> I'd be looking for the former rather than the latter, for diagnosing
-> Sander's bug.
-
-Are there any printk's I could add to get more relevant info about the AMD-Vi: IO_PAGE_FAULT ?
-
-I have attached new output from xl dmesg, this time with iommu=debug on (the option changed from 4.1 to 4.2).
-
-
-
->  -- Keir
-
-
-------------03516D00221173D65
-Content-Type: text/plain;
- name="xl-dmesg.txt"
-Content-transfer-encoding: base64
-Content-Disposition: attachment;
- filename="xl-dmesg.txt"
-
-IF9fICBfXyAgICAgICAgICAgIF8gIF8gICAgX19fXyAgICBfX18gICAgICAgICAgICAgIF8g
-IF8gICAgICAgICAgICAgICAgICAgICANCiBcIFwvIC9fX18gXyBfXyAgIHwgfHwgfCAgfF9f
-XyBcICAvIF8gXCAgICBfIF9fIF9fX3wgfHwgfCAgICAgXyBfXyAgXyBfXyBfX18gDQogIFwg
-IC8vIF8gXCAnXyBcICB8IHx8IHxfICAgX18pIHx8IHwgfCB8X198ICdfXy8gX198IHx8IHxf
-IF9ffCAnXyBcfCAnX18vIF8gXA0KICAvICBcICBfXy8gfCB8IHwgfF9fICAgX3wgLyBfXy8g
-fCB8X3wgfF9ffCB8IHwgKF9ffF9fICAgX3xfX3wgfF8pIHwgfCB8ICBfXy8NCiAvXy9cX1xf
-X198X3wgfF98ICAgIHxffChfKV9fX19fKF8pX19fLyAgIHxffCAgXF9fX3wgIHxffCAgICB8
-IC5fXy98X3wgIFxfX198DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
-ICAgICAgICAgICAgICAgICAgICAgICAgfF98ICAgICAgICAgICAgIA0KKFhFTikgWGVuIHZl
-cnNpb24gNC4yLjAtcmM0LXByZSAocm9vdEBkeW5kbnMub3JnKSAoZ2NjIChEZWJpYW4gNC40
-LjUtOCkgNC40LjUpIFRodSBBdWcgMzAgMjM6NTg6MDMgQ0VTVCAyMDEyDQooWEVOKSBMYXRl
-c3QgQ2hhbmdlU2V0OiBUdWUgQXVnIDI4IDIyOjQwOjQ1IDIwMTIgKzAxMDAgMjU3ODY6YTBi
-NWY4MTAyYTAwDQooWEVOKSBCb290bG9hZGVyOiBHUlVCIDEuOTgrMjAxMDA4MDQtMTQrc3F1
-ZWV6ZTENCihYRU4pIENvbW1hbmQgbGluZTogZG9tMF9tZW09MTAyNE0gbG9nbHZsPWFsbCBs
-b2dsdmxfZ3Vlc3Q9YWxsIGNvbnNvbGVfdGltZXN0YW1wcyB2Z2E9Z2Z4LTEyODB4MTAyNHgz
-MiBjcHVpZGxlIGNwdWZyZXE9eGVuIG5vcmVib290IGRlYnVnIGxhcGljPWRlYnVnIGFwaWNf
-dmVyYm9zaXR5PWRlYnVnIGFwaWM9ZGVidWcgaW9tbXU9b24sdmVyYm9zZSxkZWJ1ZyBjb20x
-PTM4NDAwLDhuMSBjb25zb2xlPXZnYSxjb20xDQooWEVOKSBWaWRlbyBpbmZvcm1hdGlvbjoN
-CihYRU4pICBWR0EgaXMgZ3JhcGhpY3MgbW9kZSAxMjgweDEwMjQsIDMyIGJwcA0KKFhFTikg
-IFZCRS9EREMgbWV0aG9kczogVjI7IEVESUQgdHJhbnNmZXIgdGltZTogMSBzZWNvbmRzDQoo
-WEVOKSBEaXNjIGluZm9ybWF0aW9uOg0KKFhFTikgIEZvdW5kIDIgTUJSIHNpZ25hdHVyZXMN
-CihYRU4pICBGb3VuZCAyIEVERCBpbmZvcm1hdGlvbiBzdHJ1Y3R1cmVzDQooWEVOKSBYZW4t
-ZTgyMCBSQU0gbWFwOg0KKFhFTikgIDAwMDAwMDAwMDAwMDAwMDAgLSAwMDAwMDAwMDAwMDli
-MDAwICh1c2FibGUpDQooWEVOKSAgMDAwMDAwMDAwMDA5YjAwMCAtIDAwMDAwMDAwMDAwYTAw
-MDAgKHJlc2VydmVkKQ0KKFhFTikgIDAwMDAwMDAwMDAwZTQwMDAgLSAwMDAwMDAwMDAwMTAw
-MDAwIChyZXNlcnZlZCkNCihYRU4pICAwMDAwMDAwMDAwMTAwMDAwIC0gMDAwMDAwMDBhZmU5
-MDAwMCAodXNhYmxlKQ0KKFhFTikgIDAwMDAwMDAwYWZlOTAwMDAgLSAwMDAwMDAwMGFmZTll
-MDAwIChBQ1BJIGRhdGEpDQooWEVOKSAgMDAwMDAwMDBhZmU5ZTAwMCAtIDAwMDAwMDAwYWZl
-ZTAwMDAgKEFDUEkgTlZTKQ0KKFhFTikgIDAwMDAwMDAwYWZlZTAwMDAgLSAwMDAwMDAwMGFm
-ZjAwMDAwIChyZXNlcnZlZCkNCihYRU4pICAwMDAwMDAwMGZmZTAwMDAwIC0gMDAwMDAwMDEw
-MDAwMDAwMCAocmVzZXJ2ZWQpDQooWEVOKSAgMDAwMDAwMDEwMDAwMDAwMCAtIDAwMDAwMDAy
-NTAwMDAwMDAgKHVzYWJsZSkNCihYRU4pIEFDUEk6IFJTRFAgMDAwRkIxMjAsIDAwMTQgKHIw
-IEFDUElBTSkNCihYRU4pIEFDUEk6IFJTRFQgQUZFOTAwMDAsIDAwNDggKHIxIE1TSSAgICBP
-RU1TTElDICAyMDEwMDYyMiBNU0ZUICAgICAgIDk3KQ0KKFhFTikgQUNQSTogRkFDUCBBRkU5
-MDIwMCwgMDA4NCAocjEgNzY0ME1TIEE3NjQwMTAwIDIwMTAwNjIyIE1TRlQgICAgICAgOTcp
-DQooWEVOKSBBQ1BJOiBEU0RUIEFGRTkwNUUwLCA5NDQ5IChyMSAgQTc2NDAgQTc2NDAxMDAg
-ICAgICAxMDAgSU5UTCAyMDA1MTExNykNCihYRU4pIEFDUEk6IEZBQ1MgQUZFOUUwMDAsIDAw
-NDANCihYRU4pIEFDUEk6IEFQSUMgQUZFOTAzOTAsIDAwODggKHIxIDc2NDBNUyBBNzY0MDEw
-MCAyMDEwMDYyMiBNU0ZUICAgICAgIDk3KQ0KKFhFTikgQUNQSTogTUNGRyBBRkU5MDQyMCwg
-MDAzQyAocjEgNzY0ME1TIE9FTU1DRkcgIDIwMTAwNjIyIE1TRlQgICAgICAgOTcpDQooWEVO
-KSBBQ1BJOiBTTElDIEFGRTkwNDYwLCAwMTc2IChyMSBNU0kgICAgT0VNU0xJQyAgMjAxMDA2
-MjIgTVNGVCAgICAgICA5NykNCihYRU4pIEFDUEk6IE9FTUIgQUZFOUUwNDAsIDAwNzIgKHIx
-IDc2NDBNUyBBNzY0MDEwMCAyMDEwMDYyMiBNU0ZUICAgICAgIDk3KQ0KKFhFTikgQUNQSTog
-U1JBVCBBRkU5QTVFMCwgMDEwOCAocjMgQU1EICAgIEZBTV9GXzEwICAgICAgICAyIEFNRCAg
-ICAgICAgIDEpDQooWEVOKSBBQ1BJOiBIUEVUIEFGRTlBNkYwLCAwMDM4IChyMSA3NjQwTVMg
-T0VNSFBFVCAgMjAxMDA2MjIgTVNGVCAgICAgICA5NykNCihYRU4pIEFDUEk6IElWUlMgQUZF
-OUE3MzAsIDAwRjggKHIxICBBTUQgICAgIFJEODkwUyAgIDIwMjAzMSBBTUQgICAgICAgICAw
-KQ0KKFhFTikgQUNQSTogU1NEVCBBRkU5QTgzMCwgMERBNCAocjEgQSBNIEkgIFBPV0VSTk9X
-ICAgICAgICAxIEFNRCAgICAgICAgIDEpDQooWEVOKSBTeXN0ZW0gUkFNOiA4MTkwTUIgKDgz
-ODY3MzJrQikNCihYRU4pIFNSQVQ6IFBYTSAwIC0+IEFQSUMgMCAtPiBOb2RlIDANCihYRU4p
-IFNSQVQ6IFBYTSAwIC0+IEFQSUMgMSAtPiBOb2RlIDANCihYRU4pIFNSQVQ6IFBYTSAwIC0+
-IEFQSUMgMiAtPiBOb2RlIDANCihYRU4pIFNSQVQ6IFBYTSAwIC0+IEFQSUMgMyAtPiBOb2Rl
-IDANCihYRU4pIFNSQVQ6IFBYTSAwIC0+IEFQSUMgNCAtPiBOb2RlIDANCihYRU4pIFNSQVQ6
-IFBYTSAwIC0+IEFQSUMgNSAtPiBOb2RlIDANCihYRU4pIFNSQVQ6IE5vZGUgMCBQWE0gMCAw
-LWEwMDAwDQooWEVOKSBTUkFUOiBOb2RlIDAgUFhNIDAgMTAwMDAwLWIwMDAwMDAwDQooWEVO
-KSBTUkFUOiBOb2RlIDAgUFhNIDAgMTAwMDAwMDAwLTI1MDAwMDAwMA0KKFhFTikgTlVNQTog
-QWxsb2NhdGVkIG1lbW5vZGVtYXAgZnJvbSAyNGRiYWMwMDAgLSAyNGRiYWYwMDANCihYRU4p
-IE5VTUE6IFVzaW5nIDggZm9yIHRoZSBoYXNoIHNoaWZ0Lg0KKFhFTikgRG9tYWluIGhlYXAg
-aW5pdGlhbGlzZWQNCihYRU4pIHZlc2FmYjogZnJhbWVidWZmZXIgYXQgMHhmYjAwMDAwMCwg
-bWFwcGVkIHRvIDB4ZmZmZjgyYzAwMDAwMDAwMCwgdXNpbmcgNjE0NGssIHRvdGFsIDE0MzM2
-aw0KKFhFTikgdmVzYWZiOiBtb2RlIGlzIDEyODB4MTAyNHgzMiwgbGluZWxlbmd0aD01MTIw
-LCBmb250IDh4MTYNCihYRU4pIHZlc2FmYjogVHJ1ZWNvbG9yOiBzaXplPTg6ODo4OjgsIHNo
-aWZ0PTI0OjE2Ojg6MA0KKFhFTikgZm91bmQgU01QIE1QLXRhYmxlIGF0IDAwMGZmNzgwDQoo
-WEVOKSBETUkgcHJlc2VudC4NCihYRU4pIEFQSUMgYm9vdCBzdGF0ZSBpcyAneGFwaWMnDQoo
-WEVOKSBVc2luZyBBUElDIGRyaXZlciBkZWZhdWx0DQooWEVOKSBBQ1BJOiBQTS1UaW1lciBJ
-TyBQb3J0OiAweDgwOA0KKFhFTikgQUNQSTogQUNQSSBTTEVFUCBJTkZPOiBwbTF4X2NudFs4
-MDQsMF0sIHBtMXhfZXZ0WzgwMCwwXQ0KKFhFTikgQUNQSTogICAgICAgICAgICAgICAgICB3
-YWtldXBfdmVjW2FmZTllMDBjXSwgdmVjX3NpemVbMjBdDQooWEVOKSBBQ1BJOiBMb2NhbCBB
-UElDIGFkZHJlc3MgMHhmZWUwMDAwMA0KKFhFTikgQUNQSTogTEFQSUMgKGFjcGlfaWRbMHgw
-MV0gbGFwaWNfaWRbMHgwMF0gZW5hYmxlZCkNCihYRU4pIFByb2Nlc3NvciAjMCAwOjEwIEFQ
-SUMgdmVyc2lvbiAxNg0KKFhFTikgQUNQSTogTEFQSUMgKGFjcGlfaWRbMHgwMl0gbGFwaWNf
-aWRbMHgwMV0gZW5hYmxlZCkNCihYRU4pIFByb2Nlc3NvciAjMSAwOjEwIEFQSUMgdmVyc2lv
-biAxNg0KKFhFTikgQUNQSTogTEFQSUMgKGFjcGlfaWRbMHgwM10gbGFwaWNfaWRbMHgwMl0g
-ZW5hYmxlZCkNCihYRU4pIFByb2Nlc3NvciAjMiAwOjEwIEFQSUMgdmVyc2lvbiAxNg0KKFhF
-TikgQUNQSTogTEFQSUMgKGFjcGlfaWRbMHgwNF0gbGFwaWNfaWRbMHgwM10gZW5hYmxlZCkN
-CihYRU4pIFByb2Nlc3NvciAjMyAwOjEwIEFQSUMgdmVyc2lvbiAxNg0KKFhFTikgQUNQSTog
-TEFQSUMgKGFjcGlfaWRbMHgwNV0gbGFwaWNfaWRbMHgwNF0gZW5hYmxlZCkNCihYRU4pIFBy
-b2Nlc3NvciAjNCAwOjEwIEFQSUMgdmVyc2lvbiAxNg0KKFhFTikgQUNQSTogTEFQSUMgKGFj
-cGlfaWRbMHgwNl0gbGFwaWNfaWRbMHgwNV0gZW5hYmxlZCkNCihYRU4pIFByb2Nlc3NvciAj
-NSAwOjEwIEFQSUMgdmVyc2lvbiAxNg0KKFhFTikgQUNQSTogSU9BUElDIChpZFsweDA2XSBh
-ZGRyZXNzWzB4ZmVjMDAwMDBdIGdzaV9iYXNlWzBdKQ0KKFhFTikgSU9BUElDWzBdOiBhcGlj
-X2lkIDYsIHZlcnNpb24gMzMsIGFkZHJlc3MgMHhmZWMwMDAwMCwgR1NJIDAtMjMNCihYRU4p
-IEFDUEk6IElPQVBJQyAoaWRbMHgwN10gYWRkcmVzc1sweGZlYzIwMDAwXSBnc2lfYmFzZVsy
-NF0pDQooWEVOKSBJT0FQSUNbMV06IGFwaWNfaWQgNywgdmVyc2lvbiAzMywgYWRkcmVzcyAw
-eGZlYzIwMDAwLCBHU0kgMjQtNTUNCihYRU4pIEFDUEk6IElOVF9TUkNfT1ZSIChidXMgMCBi
-dXNfaXJxIDAgZ2xvYmFsX2lycSAyIGRmbCBkZmwpDQooWEVOKSBBQ1BJOiBJTlRfU1JDX09W
-UiAoYnVzIDAgYnVzX2lycSA5IGdsb2JhbF9pcnEgOSBsb3cgbGV2ZWwpDQooWEVOKSBBQ1BJ
-OiBJUlEwIHVzZWQgYnkgb3ZlcnJpZGUuDQooWEVOKSBBQ1BJOiBJUlEyIHVzZWQgYnkgb3Zl
-cnJpZGUuDQooWEVOKSBBQ1BJOiBJUlE5IHVzZWQgYnkgb3ZlcnJpZGUuDQooWEVOKSBFbmFi
-bGluZyBBUElDIG1vZGU6ICBGbGF0LiAgVXNpbmcgMiBJL08gQVBJQ3MNCihYRU4pIEFDUEk6
-IEhQRVQgaWQ6IDB4ODMwMCBiYXNlOiAweGZlZDAwMDAwDQooWEVOKSBUYWJsZSBpcyBub3Qg
-Zm91bmQhDQooWEVOKSBVc2luZyBBQ1BJIChNQURUKSBmb3IgU01QIGNvbmZpZ3VyYXRpb24g
-aW5mb3JtYXRpb24NCihYRU4pIFNNUDogQWxsb3dpbmcgNiBDUFVzICgwIGhvdHBsdWcgQ1BV
-cykNCihYRU4pIG1hcHBlZCBBUElDIHRvIGZmZmY4MmMzZmZkZmUwMDAgKGZlZTAwMDAwKQ0K
-KFhFTikgbWFwcGVkIElPQVBJQyB0byBmZmZmODJjM2ZmZGZkMDAwIChmZWMwMDAwMCkNCihY
-RU4pIG1hcHBlZCBJT0FQSUMgdG8gZmZmZjgyYzNmZmRmYzAwMCAoZmVjMjAwMDApDQooWEVO
-KSBJUlEgbGltaXRzOiA1NiBHU0ksIDExMTIgTVNJL01TSS1YDQooWEVOKSBVc2luZyBzY2hl
-ZHVsZXI6IFNNUCBDcmVkaXQgU2NoZWR1bGVyIChjcmVkaXQpDQooWEVOKSBEZXRlY3RlZCAz
-MjAwLjIyNCBNSHogcHJvY2Vzc29yLg0KKFhFTikgSW5pdGluZyBtZW1vcnkgc2hhcmluZy4N
-CihYRU4pIEFNRCBGYW0xMGggbWFjaGluZSBjaGVjayByZXBvcnRpbmcgZW5hYmxlZA0KKFhF
-TikgUENJOiBNQ0ZHIGNvbmZpZ3VyYXRpb24gMDogYmFzZSBlMDAwMDAwMCBzZWdtZW50IDAw
-MDAgYnVzZXMgMDAgLSBmZg0KKFhFTikgUENJOiBOb3QgdXNpbmcgTUNGRyBmb3Igc2VnbWVu
-dCAwMDAwIGJ1cyAwMC1mZg0KKFhFTikgQU1ELVZpOiBGb3VuZCBNU0kgY2FwYWJpbGl0eSBi
-bG9jayBhdCAweDU0DQooWEVOKSBBTUQtVmk6IEFDUEkgVGFibGU6DQooWEVOKSBBTUQtVmk6
-ICBTaWduYXR1cmUgSVZSUw0KKFhFTikgQU1ELVZpOiAgTGVuZ3RoIDB4ZjgNCihYRU4pIEFN
-RC1WaTogIFJldmlzaW9uIDB4MQ0KKFhFTikgQU1ELVZpOiAgQ2hlY2tTdW0gMHg2ZQ0KKFhF
-TikgQU1ELVZpOiAgT0VNX0lkIEFNRCAgDQooWEVOKSBBTUQtVmk6ICBPRU1fVGFibGVfSWQg
-UkQ4OTBTDQooWEVOKSBBTUQtVmk6ICBPRU1fUmV2aXNpb24gMHgyMDIwMzENCihYRU4pIEFN
-RC1WaTogIENyZWF0b3JfSWQgQU1EIA0KKFhFTikgQU1ELVZpOiAgQ3JlYXRvcl9SZXZpc2lv
-biAweDANCihYRU4pIEFNRC1WaTogSVZSUyBCbG9jazoNCihYRU4pIEFNRC1WaTogIFR5cGUg
-MHgxMA0KKFhFTikgQU1ELVZpOiAgRmxhZ3MgMHgzZQ0KKFhFTikgQU1ELVZpOiAgTGVuZ3Ro
-IDB4YzgNCihYRU4pIEFNRC1WaTogIERldl9JZCAweDINCihYRU4pIEFNRC1WaTogSVZIRCBE
-ZXZpY2UgRW50cnk6DQooWEVOKSBBTUQtVmk6ICBUeXBlIDB4Mw0KKFhFTikgQU1ELVZpOiAg
-RGV2X0lkIDB4MA0KKFhFTikgQU1ELVZpOiAgRmxhZ3MgMHgwDQooWEVOKSBBTUQtVmk6ICBE
-ZXZfSWQgUmFuZ2U6IDB4MCAtPiAweDINCihYRU4pIEFNRC1WaTogSVZIRCBEZXZpY2UgRW50
-cnk6DQooWEVOKSBBTUQtVmk6ICBUeXBlIDB4Mg0KKFhFTikgQU1ELVZpOiAgRGV2X0lkIDB4
-MTANCihYRU4pIEFNRC1WaTogIEZsYWdzIDB4MA0KKFhFTikgQU1ELVZpOiBJVkhEIERldmlj
-ZSBFbnRyeToNCihYRU4pIEFNRC1WaTogIFR5cGUgMHgyDQooWEVOKSBBTUQtVmk6ICBEZXZf
-SWQgMHhiMDANCihYRU4pIEFNRC1WaTogIEZsYWdzIDB4MA0KKFhFTikgQU1ELVZpOiBJVkhE
-IERldmljZSBFbnRyeToNCihYRU4pIEFNRC1WaTogIFR5cGUgMHgyDQooWEVOKSBBTUQtVmk6
-ICBEZXZfSWQgMHgxOA0KKFhFTikgQU1ELVZpOiAgRmxhZ3MgMHgwDQooWEVOKSBBTUQtVmk6
-IElWSEQgRGV2aWNlIEVudHJ5Og0KKFhFTikgQU1ELVZpOiAgVHlwZSAweDMNCihYRU4pIEFN
-RC1WaTogIERldl9JZCAweGEwMA0KKFhFTikgQU1ELVZpOiAgRmxhZ3MgMHgwDQooWEVOKSBB
-TUQtVmk6ICBEZXZfSWQgUmFuZ2U6IDB4YTAwIC0+IDB4YTA3DQooWEVOKSBBTUQtVmk6IElW
-SEQgRGV2aWNlIEVudHJ5Og0KKFhFTikgQU1ELVZpOiAgVHlwZSAweDINCihYRU4pIEFNRC1W
-aTogIERldl9JZCAweDI4DQooWEVOKSBBTUQtVmk6ICBGbGFncyAweDANCihYRU4pIEFNRC1W
-aTogSVZIRCBEZXZpY2UgRW50cnk6DQooWEVOKSBBTUQtVmk6ICBUeXBlIDB4Mg0KKFhFTikg
-QU1ELVZpOiAgRGV2X0lkIDB4OTAwDQooWEVOKSBBTUQtVmk6ICBGbGFncyAweDANCihYRU4p
-IEFNRC1WaTogSVZIRCBEZXZpY2UgRW50cnk6DQooWEVOKSBBTUQtVmk6ICBUeXBlIDB4Mg0K
-KFhFTikgQU1ELVZpOiAgRGV2X0lkIDB4MzANCihYRU4pIEFNRC1WaTogIEZsYWdzIDB4MA0K
-KFhFTikgQU1ELVZpOiBJVkhEIERldmljZSBFbnRyeToNCihYRU4pIEFNRC1WaTogIFR5cGUg
-MHgyDQooWEVOKSBBTUQtVmk6ICBEZXZfSWQgMHg4MDANCihYRU4pIEFNRC1WaTogIEZsYWdz
-IDB4MA0KKFhFTikgQU1ELVZpOiBJVkhEIERldmljZSBFbnRyeToNCihYRU4pIEFNRC1WaTog
-IFR5cGUgMHgyDQooWEVOKSBBTUQtVmk6ICBEZXZfSWQgMHg1MA0KKFhFTikgQU1ELVZpOiAg
-RmxhZ3MgMHgwDQooWEVOKSBBTUQtVmk6IElWSEQgRGV2aWNlIEVudHJ5Og0KKFhFTikgQU1E
-LVZpOiAgVHlwZSAweDINCihYRU4pIEFNRC1WaTogIERldl9JZCAweDcwMA0KKFhFTikgQU1E
-LVZpOiAgRmxhZ3MgMHgwDQooWEVOKSBBTUQtVmk6IElWSEQgRGV2aWNlIEVudHJ5Og0KKFhF
-TikgQU1ELVZpOiAgVHlwZSAweDINCihYRU4pIEFNRC1WaTogIERldl9JZCAweDU4DQooWEVO
-KSBBTUQtVmk6ICBGbGFncyAweDANCihYRU4pIEFNRC1WaTogSVZIRCBEZXZpY2UgRW50cnk6
-DQooWEVOKSBBTUQtVmk6ICBUeXBlIDB4Mw0KKFhFTikgQU1ELVZpOiAgRGV2X0lkIDB4NjAw
-DQooWEVOKSBBTUQtVmk6ICBGbGFncyAweDANCihYRU4pIEFNRC1WaTogIERldl9JZCBSYW5n
-ZTogMHg2MDAgLT4gMHg2MDENCihYRU4pIEFNRC1WaTogSVZIRCBEZXZpY2UgRW50cnk6DQoo
-WEVOKSBBTUQtVmk6ICBUeXBlIDB4Mg0KKFhFTikgQU1ELVZpOiAgRGV2X0lkIDB4NjANCihY
-RU4pIEFNRC1WaTogIEZsYWdzIDB4MA0KKFhFTikgQU1ELVZpOiBJVkhEIERldmljZSBFbnRy
-eToNCihYRU4pIEFNRC1WaTogIFR5cGUgMHgyDQooWEVOKSBBTUQtVmk6ICBEZXZfSWQgMHg1
-MDANCihYRU4pIEFNRC1WaTogIEZsYWdzIDB4MA0KKFhFTikgQU1ELVZpOiBJVkhEIERldmlj
-ZSBFbnRyeToNCihYRU4pIEFNRC1WaTogIFR5cGUgMHgyDQooWEVOKSBBTUQtVmk6ICBEZXZf
-SWQgMHg2OA0KKFhFTikgQU1ELVZpOiAgRmxhZ3MgMHgwDQooWEVOKSBBTUQtVmk6IElWSEQg
-RGV2aWNlIEVudHJ5Og0KKFhFTikgQU1ELVZpOiAgVHlwZSAweDMNCihYRU4pIEFNRC1WaTog
-IERldl9JZCAweDQwMA0KKFhFTikgQU1ELVZpOiAgRmxhZ3MgMHgwDQooWEVOKSBBTUQtVmk6
-ICBEZXZfSWQgUmFuZ2U6IDB4NDAwIC0+IDB4NDA3DQooWEVOKSBBTUQtVmk6IElWSEQgRGV2
-aWNlIEVudHJ5Og0KKFhFTikgQU1ELVZpOiAgVHlwZSAweDINCihYRU4pIEFNRC1WaTogIERl
-dl9JZCAweDg4DQooWEVOKSBBTUQtVmk6ICBGbGFncyAweDANCihYRU4pIEFNRC1WaTogSVZI
-RCBEZXZpY2UgRW50cnk6DQooWEVOKSBBTUQtVmk6ICBUeXBlIDB4Mw0KKFhFTikgQU1ELVZp
-OiAgRGV2X0lkIDB4OTANCihYRU4pIEFNRC1WaTogIEZsYWdzIDB4MA0KKFhFTikgQU1ELVZp
-OiAgRGV2X0lkIFJhbmdlOiAweDkwIC0+IDB4OTINCihYRU4pIEFNRC1WaTogSVZIRCBEZXZp
-Y2UgRW50cnk6DQooWEVOKSBBTUQtVmk6ICBUeXBlIDB4Mw0KKFhFTikgQU1ELVZpOiAgRGV2
-X0lkIDB4OTgNCihYRU4pIEFNRC1WaTogIEZsYWdzIDB4MA0KKFhFTikgQU1ELVZpOiAgRGV2
-X0lkIFJhbmdlOiAweDk4IC0+IDB4OWENCihYRU4pIEFNRC1WaTogSVZIRCBEZXZpY2UgRW50
-cnk6DQooWEVOKSBBTUQtVmk6ICBUeXBlIDB4Mg0KKFhFTikgQU1ELVZpOiAgRGV2X0lkIDB4
-YTANCihYRU4pIEFNRC1WaTogIEZsYWdzIDB4ZDcNCihYRU4pIEFNRC1WaTogSVZIRCBEZXZp
-Y2UgRW50cnk6DQooWEVOKSBBTUQtVmk6ICBUeXBlIDB4Mg0KKFhFTikgQU1ELVZpOiAgRGV2
-X0lkIDB4YTMNCihYRU4pIEFNRC1WaTogIEZsYWdzIDB4MA0KKFhFTikgQU1ELVZpOiBJVkhE
-IERldmljZSBFbnRyeToNCihYRU4pIEFNRC1WaTogIFR5cGUgMHgyDQooWEVOKSBBTUQtVmk6
-ICBEZXZfSWQgMHhhNA0KKFhFTikgQU1ELVZpOiAgRmxhZ3MgMHgwDQooWEVOKSBBTUQtVmk6
-IElWSEQgRGV2aWNlIEVudHJ5Og0KKFhFTikgQU1ELVZpOiAgVHlwZSAweDANCihYRU4pIEFN
-RC1WaTogIERldl9JZCAweDANCihYRU4pIEFNRC1WaTogIEZsYWdzIDB4MA0KKFhFTikgQU1E
-LVZpOiBJVkhEIERldmljZSBFbnRyeToNCihYRU4pIEFNRC1WaTogIFR5cGUgMHg0Mw0KKFhF
-TikgQU1ELVZpOiAgRGV2X0lkIDB4MzAwDQooWEVOKSBBTUQtVmk6ICBGbGFncyAweDANCihY
-RU4pIEFNRC1WaTogIERldl9JZCBSYW5nZTogMHgzMDAgLT4gMHgzZmYNCihYRU4pIEFNRC1W
-aTogIERldl9JZCBBbGlhczogMHhhNA0KKFhFTikgQU1ELVZpOiBJVkhEIERldmljZSBFbnRy
-eToNCihYRU4pIEFNRC1WaTogIFR5cGUgMHgyDQooWEVOKSBBTUQtVmk6ICBEZXZfSWQgMHhh
-NQ0KKFhFTikgQU1ELVZpOiAgRmxhZ3MgMHgwDQooWEVOKSBBTUQtVmk6IElWSEQgRGV2aWNl
-IEVudHJ5Og0KKFhFTikgQU1ELVZpOiAgVHlwZSAweDINCihYRU4pIEFNRC1WaTogIERldl9J
-ZCAweGE4DQooWEVOKSBBTUQtVmk6ICBGbGFncyAweDANCihYRU4pIEFNRC1WaTogSVZIRCBE
-ZXZpY2UgRW50cnk6DQooWEVOKSBBTUQtVmk6ICBUeXBlIDB4Mg0KKFhFTikgQU1ELVZpOiAg
-RGV2X0lkIDB4YTkNCihYRU4pIEFNRC1WaTogIEZsYWdzIDB4MA0KKFhFTikgQU1ELVZpOiBJ
-VkhEIERldmljZSBFbnRyeToNCihYRU4pIEFNRC1WaTogIFR5cGUgMHgyDQooWEVOKSBBTUQt
-Vmk6ICBEZXZfSWQgMHgxMDANCihYRU4pIEFNRC1WaTogIEZsYWdzIDB4MA0KKFhFTikgQU1E
-LVZpOiBJVkhEIERldmljZSBFbnRyeToNCihYRU4pIEFNRC1WaTogIFR5cGUgMHgzDQooWEVO
-KSBBTUQtVmk6ICBEZXZfSWQgMHhiMA0KKFhFTikgQU1ELVZpOiAgRmxhZ3MgMHgwDQooWEVO
-KSBBTUQtVmk6ICBEZXZfSWQgUmFuZ2U6IDB4YjAgLT4gMHhiMg0KKFhFTikgQU1ELVZpOiBJ
-VkhEIERldmljZSBFbnRyeToNCihYRU4pIEFNRC1WaTogIFR5cGUgMHgwDQooWEVOKSBBTUQt
-Vmk6ICBEZXZfSWQgMHgwDQooWEVOKSBBTUQtVmk6ICBGbGFncyAweDANCihYRU4pIEFNRC1W
-aTogSVZIRCBEZXZpY2UgRW50cnk6DQooWEVOKSBBTUQtVmk6ICBUeXBlIDB4NDgNCihYRU4p
-IEFNRC1WaTogIERldl9JZCAweDANCihYRU4pIEFNRC1WaTogIEZsYWdzIDB4ZDcNCihYRU4p
-IEFNRC1WaTogSVZIRCBEZXZpY2UgRW50cnk6DQooWEVOKSBBTUQtVmk6ICBUeXBlIDB4NDgN
-CihYRU4pIEFNRC1WaTogIERldl9JZCAweDANCihYRU4pIEFNRC1WaTogIEZsYWdzIDB4MA0K
-KFhFTikgQU1ELVZpOiBJT01NVSAwIEVuYWJsZWQuDQooWEVOKSBBTUQtVmk6IEVuYWJsaW5n
-IGdsb2JhbCB2ZWN0b3IgbWFwDQooWEVOKSBJL08gdmlydHVhbGlzYXRpb24gZW5hYmxlZA0K
-KFhFTikgIC0gRG9tMCBtb2RlOiBSZWxheGVkDQooWEVOKSBHZXR0aW5nIFZFUlNJT046IDgw
-MDUwMDEwDQooWEVOKSBHZXR0aW5nIFZFUlNJT046IDgwMDUwMDEwDQooWEVOKSBHZXR0aW5n
-IElEOiAwDQooWEVOKSBHZXR0aW5nIExWVDA6IDcwMA0KKFhFTikgR2V0dGluZyBMVlQxOiA0
-MDANCihYRU4pIGVuYWJsZWQgRXh0SU5UIG9uIENQVSMwDQooWEVOKSBFU1IgdmFsdWUgYmVm
-b3JlIGVuYWJsaW5nIHZlY3RvcjogMHgwMDAwMDAwNCAgYWZ0ZXI6IDB4MDAwMDAwMDANCihY
-RU4pIEVOQUJMSU5HIElPLUFQSUMgSVJRcw0KKFhFTikgIC0+IFVzaW5nIG5ldyBBQ0sgbWV0
-aG9kDQooWEVOKSBpbml0IElPX0FQSUMgSVJRcw0KKFhFTikgIElPLUFQSUMgKGFwaWNpZC1w
-aW4pIDYtMCwgNi0xNiwgNi0xNywgNi0xOCwgNi0xOSwgNi0yMCwgNi0yMSwgNi0yMiwgNi0y
-MywgNy0wLCA3LTEsIDctMiwgNy0zLCA3LTQsIDctNSwgNy02LCA3LTcsIDctOCwgNy05LCA3
-LTEwLCA3LTExLCA3LTEyLCA3LTEzLCA3LTE0LCA3LTE1LCA3LTE2LCA3LTE3LCA3LTE4LCA3
-LTE5LCA3LTIwLCA3LTIxLCA3LTIyLCA3LTIzLCA3LTI0LCA3LTI1LCA3LTI2LCA3LTI3LCA3
-LTI4LCA3LTI5LCA3LTMwLCA3LTMxIG5vdCBjb25uZWN0ZWQuDQooWEVOKSAuLlRJTUVSOiB2
-ZWN0b3I9MHhGMCBhcGljMT0wIHBpbjE9MiBhcGljMj0tMSBwaW4yPS0xDQooWEVOKSBudW1i
-ZXIgb2YgTVAgSVJRIHNvdXJjZXM6IDE1Lg0KKFhFTikgbnVtYmVyIG9mIElPLUFQSUMgIzYg
-cmVnaXN0ZXJzOiAyNC4NCihYRU4pIG51bWJlciBvZiBJTy1BUElDICM3IHJlZ2lzdGVyczog
-MzIuDQooWEVOKSB0ZXN0aW5nIHRoZSBJTyBBUElDLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4N
-CihYRU4pIElPIEFQSUMgIzYuLi4uLi4NCihYRU4pIC4uLi4gcmVnaXN0ZXIgIzAwOiAwNjAw
-MDAwMA0KKFhFTikgLi4uLi4uLiAgICA6IHBoeXNpY2FsIEFQSUMgaWQ6IDA2DQooWEVOKSAu
-Li4uLi4uICAgIDogRGVsaXZlcnkgVHlwZTogMA0KKFhFTikgLi4uLi4uLiAgICA6IExUUyAg
-ICAgICAgICA6IDANCihYRU4pIC4uLi4gcmVnaXN0ZXIgIzAxOiAwMDE3ODAyMQ0KKFhFTikg
-Li4uLi4uLiAgICAgOiBtYXggcmVkaXJlY3Rpb24gZW50cmllczogMDAxNw0KKFhFTikgLi4u
-Li4uLiAgICAgOiBQUlEgaW1wbGVtZW50ZWQ6IDENCihYRU4pIC4uLi4uLi4gICAgIDogSU8g
-QVBJQyB2ZXJzaW9uOiAwMDIxDQooWEVOKSAuLi4uIHJlZ2lzdGVyICMwMjogMDYwMDAwMDAN
-CihYRU4pIC4uLi4uLi4gICAgIDogYXJiaXRyYXRpb246IDA2DQooWEVOKSAuLi4uIHJlZ2lz
-dGVyICMwMzogMDcwMDAwMDANCihYRU4pIC4uLi4uLi4gICAgIDogQm9vdCBEVCAgICA6IDAN
-CihYRU4pIC4uLi4gSVJRIHJlZGlyZWN0aW9uIHRhYmxlOg0KKFhFTikgIE5SIExvZyBQaHkg
-TWFzayBUcmlnIElSUiBQb2wgU3RhdCBEZXN0IERlbGkgVmVjdDogICANCihYRU4pICAwMCAw
-MDAgMDAgIDEgICAgMCAgICAwICAgMCAgIDAgICAgMCAgICAwICAgIDAwDQooWEVOKSAgMDEg
-MDAxIDAxICAwICAgIDAgICAgMCAgIDAgICAwICAgIDEgICAgMSAgICAzMA0KKFhFTikgIDAy
-IDAwMSAwMSAgMCAgICAwICAgIDAgICAwICAgMCAgICAxICAgIDEgICAgRjANCihYRU4pICAw
-MyAwMDEgMDEgIDAgICAgMCAgICAwICAgMCAgIDAgICAgMSAgICAxICAgIDM4DQooWEVOKSAg
-MDQgMDAxIDAxICAwICAgIDAgICAgMCAgIDAgICAwICAgIDEgICAgMSAgICBGMQ0KKFhFTikg
-IDA1IDAwMSAwMSAgMCAgICAwICAgIDAgICAwICAgMCAgICAxICAgIDEgICAgNDANCihYRU4p
-ICAwNiAwMDEgMDEgIDAgICAgMCAgICAwICAgMCAgIDAgICAgMSAgICAxICAgIDQ4DQooWEVO
-KSAgMDcgMDAxIDAxICAwICAgIDAgICAgMCAgIDAgICAwICAgIDEgICAgMSAgICA1MA0KKFhF
-TikgIDA4IDAwMSAwMSAgMCAgICAwICAgIDAgICAwICAgMCAgICAxICAgIDEgICAgNTgNCihY
-RU4pICAwOSAwMDEgMDEgIDEgICAgMSAgICAwICAgMSAgIDAgICAgMSAgICAxICAgIDYwDQoo
-WEVOKSAgMGEgMDAxIDAxICAwICAgIDAgICAgMCAgIDAgICAwICAgIDEgICAgMSAgICA2OA0K
-KFhFTikgIDBiIDAwMSAwMSAgMCAgICAwICAgIDAgICAwICAgMCAgICAxICAgIDEgICAgNzAN
-CihYRU4pICAwYyAwMDEgMDEgIDAgICAgMCAgICAwICAgMCAgIDAgICAgMSAgICAxICAgIDc4
-DQooWEVOKSAgMGQgMDAxIDAxICAwICAgIDAgICAgMCAgIDAgICAwICAgIDEgICAgMSAgICA4
-OA0KKFhFTikgIDBlIDAwMSAwMSAgMCAgICAwICAgIDAgICAwICAgMCAgICAxICAgIDEgICAg
-OTANCihYRU4pICAwZiAwMDEgMDEgIDAgICAgMCAgICAwICAgMCAgIDAgICAgMSAgICAxICAg
-IDk4DQooWEVOKSAgMTAgMDAwIDAwICAxICAgIDAgICAgMCAgIDAgICAwICAgIDAgICAgMCAg
-ICAwMA0KKFhFTikgIDExIDAwMCAwMCAgMSAgICAwICAgIDAgICAwICAgMCAgICAwICAgIDAg
-ICAgMDANCihYRU4pICAxMiAwMDAgMDAgIDEgICAgMCAgICAwICAgMCAgIDAgICAgMCAgICAw
-ICAgIDAwDQooWEVOKSAgMTMgMDAwIDAwICAxICAgIDAgICAgMCAgIDAgICAwICAgIDAgICAg
-MCAgICAwMA0KKFhFTikgIDE0IDAwMCAwMCAgMSAgICAwICAgIDAgICAwICAgMCAgICAwICAg
-IDAgICAgMDANCihYRU4pICAxNSAwMDAgMDAgIDEgICAgMCAgICAwICAgMCAgIDAgICAgMCAg
-ICAwICAgIDAwDQooWEVOKSAgMTYgMDAwIDAwICAxICAgIDAgICAgMCAgIDAgICAwICAgIDAg
-ICAgMCAgICAwMA0KKFhFTikgIDE3IDAwMCAwMCAgMSAgICAwICAgIDAgICAwICAgMCAgICAw
-ICAgIDAgICAgMDANCihYRU4pIElPIEFQSUMgIzcuLi4uLi4NCihYRU4pIC4uLi4gcmVnaXN0
-ZXIgIzAwOiAwNzAwMDAwMA0KKFhFTikgLi4uLi4uLiAgICA6IHBoeXNpY2FsIEFQSUMgaWQ6
-IDA3DQooWEVOKSAuLi4uLi4uICAgIDogRGVsaXZlcnkgVHlwZTogMA0KKFhFTikgLi4uLi4u
-LiAgICA6IExUUyAgICAgICAgICA6IDANCihYRU4pIC4uLi4gcmVnaXN0ZXIgIzAxOiAwMDFG
-ODAyMQ0KKFhFTikgLi4uLi4uLiAgICAgOiBtYXggcmVkaXJlY3Rpb24gZW50cmllczogMDAx
-Rg0KKFhFTikgLi4uLi4uLiAgICAgOiBQUlEgaW1wbGVtZW50ZWQ6IDENCihYRU4pIC4uLi4u
-Li4gICAgIDogSU8gQVBJQyB2ZXJzaW9uOiAwMDIxDQooWEVOKSAuLi4uIHJlZ2lzdGVyICMw
-MjogMDAwMDAwMDANCihYRU4pIC4uLi4uLi4gICAgIDogYXJiaXRyYXRpb246IDAwDQooWEVO
-KSAuLi4uIElSUSByZWRpcmVjdGlvbiB0YWJsZToNCihYRU4pICBOUiBMb2cgUGh5IE1hc2sg
-VHJpZyBJUlIgUG9sIFN0YXQgRGVzdCBEZWxpIFZlY3Q6ICAgDQooWEVOKSAgMDAgMDAwIDAw
-ICAxICAgIDAgICAgMCAgIDAgICAwICAgIDAgICAgMCAgICAwMA0KKFhFTikgIDAxIDAwMCAw
-MCAgMSAgICAwICAgIDAgICAwICAgMCAgICAwICAgIDAgICAgMDANCihYRU4pICAwMiAwMDAg
-MDAgIDEgICAgMCAgICAwICAgMCAgIDAgICAgMCAgICAwICAgIDAwDQooWEVOKSAgMDMgMDAw
-IDAwICAxICAgIDAgICAgMCAgIDAgICAwICAgIDAgICAgMCAgICAwMA0KKFhFTikgIDA0IDAw
-MCAwMCAgMSAgICAwICAgIDAgICAwICAgMCAgICAwICAgIDAgICAgMDANCihYRU4pICAwNSAw
-MDAgMDAgIDEgICAgMCAgICAwICAgMCAgIDAgICAgMCAgICAwICAgIDAwDQooWEVOKSAgMDYg
-MDAwIDAwICAxICAgIDAgICAgMCAgIDAgICAwICAgIDAgICAgMCAgICAwMA0KKFhFTikgIDA3
-IDAwMCAwMCAgMSAgICAwICAgIDAgICAwICAgMCAgICAwICAgIDAgICAgMDANCihYRU4pICAw
-OCAwMDAgMDAgIDEgICAgMCAgICAwICAgMCAgIDAgICAgMCAgICAwICAgIDAwDQooWEVOKSAg
-MDkgMDAwIDAwICAxICAgIDAgICAgMCAgIDAgICAwICAgIDAgICAgMCAgICAwMA0KKFhFTikg
-IDBhIDAwMCAwMCAgMSAgICAwICAgIDAgICAwICAgMCAgICAwICAgIDAgICAgMDANCihYRU4p
-ICAwYiAwMDAgMDAgIDEgICAgMCAgICAwICAgMCAgIDAgICAgMCAgICAwICAgIDAwDQooWEVO
-KSAgMGMgMDAwIDAwICAxICAgIDAgICAgMCAgIDAgICAwICAgIDAgICAgMCAgICAwMA0KKFhF
-TikgIDBkIDAwMCAwMCAgMSAgICAwICAgIDAgICAwICAgMCAgICAwICAgIDAgICAgMDANCihY
-RU4pICAwZSAwMDAgMDAgIDEgICAgMCAgICAwICAgMCAgIDAgICAgMCAgICAwICAgIDAwDQoo
-WEVOKSAgMGYgMDAwIDAwICAxICAgIDAgICAgMCAgIDAgICAwICAgIDAgICAgMCAgICAwMA0K
-KFhFTikgIDEwIDAwMCAwMCAgMSAgICAwICAgIDAgICAwICAgMCAgICAwICAgIDAgICAgMDAN
-CihYRU4pICAxMSAwMDAgMDAgIDEgICAgMCAgICAwICAgMCAgIDAgICAgMCAgICAwICAgIDAw
-DQooWEVOKSAgMTIgMDAwIDAwICAxICAgIDAgICAgMCAgIDAgICAwICAgIDAgICAgMCAgICAw
-MA0KKFhFTikgIDEzIDAwMCAwMCAgMSAgICAwICAgIDAgICAwICAgMCAgICAwICAgIDAgICAg
-MDANCihYRU4pICAxNCAwMDAgMDAgIDEgICAgMCAgICAwICAgMCAgIDAgICAgMCAgICAwICAg
-IDAwDQooWEVOKSAgMTUgMDAwIDAwICAxICAgIDAgICAgMCAgIDAgICAwICAgIDAgICAgMCAg
-ICAwMA0KKFhFTikgIDE2IDAwMCAwMCAgMSAgICAwICAgIDAgICAwICAgMCAgICAwICAgIDAg
-ICAgMDANCihYRU4pICAxNyAwMDAgMDAgIDEgICAgMCAgICAwICAgMCAgIDAgICAgMCAgICAw
-ICAgIDAwDQooWEVOKSAgMTggMDAwIDAwICAxICAgIDAgICAgMCAgIDAgICAwICAgIDAgICAg
-MCAgICAwMA0KKFhFTikgIDE5IDAwMCAwMCAgMSAgICAwICAgIDAgICAwICAgMCAgICAwICAg
-IDAgICAgMDANCihYRU4pICAxYSAwMDAgMDAgIDEgICAgMCAgICAwICAgMCAgIDAgICAgMCAg
-ICAwICAgIDAwDQooWEVOKSAgMWIgMDAwIDAwICAxICAgIDAgICAgMCAgIDAgICAwICAgIDAg
-ICAgMCAgICAwMA0KKFhFTikgIDFjIDAwMCAwMCAgMSAgICAwICAgIDAgICAwICAgMCAgICAw
-ICAgIDAgICAgMDANCihYRU4pICAxZCAwMDAgMDAgIDEgICAgMCAgICAwICAgMCAgIDAgICAg
-MCAgICAwICAgIDAwDQooWEVOKSAgMWUgMDAwIDAwICAxICAgIDAgICAgMCAgIDAgICAwICAg
-IDAgICAgMCAgICAwMA0KKFhFTikgIDFmIDAwMCAwMCAgMSAgICAwICAgIDAgICAwICAgMCAg
-ICAwICAgIDAgICAgMDANCihYRU4pIFVzaW5nIHZlY3Rvci1iYXNlZCBpbmRleGluZw0KKFhF
-TikgSVJRIHRvIHBpbiBtYXBwaW5nczoNCihYRU4pIElSUTI0MCAtPiAwOjINCihYRU4pIElS
-UTQ4IC0+IDA6MQ0KKFhFTikgSVJRNTYgLT4gMDozDQooWEVOKSBJUlEyNDEgLT4gMDo0DQoo
-WEVOKSBJUlE2NCAtPiAwOjUNCihYRU4pIElSUTcyIC0+IDA6Ng0KKFhFTikgSVJRODAgLT4g
-MDo3DQooWEVOKSBJUlE4OCAtPiAwOjgNCihYRU4pIElSUTk2IC0+IDA6OQ0KKFhFTikgSVJR
-MTA0IC0+IDA6MTANCihYRU4pIElSUTExMiAtPiAwOjExDQooWEVOKSBJUlExMjAgLT4gMDox
-Mg0KKFhFTikgSVJRMTM2IC0+IDA6MTMNCihYRU4pIElSUTE0NCAtPiAwOjE0DQooWEVOKSBJ
-UlExNTIgLT4gMDoxNQ0KKFhFTikgLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
-Li4uIGRvbmUuDQooWEVOKSBVc2luZyBsb2NhbCBBUElDIHRpbWVyIGludGVycnVwdHMuDQoo
-WEVOKSBjYWxpYnJhdGluZyBBUElDIHRpbWVyIC4uLg0KKFhFTikgLi4uLi4gQ1BVIGNsb2Nr
-IHNwZWVkIGlzIDMyMDAuMTI1OCBNSHouDQooWEVOKSAuLi4uLiBob3N0IGJ1cyBjbG9jayBz
-cGVlZCBpcyAyMDAuMDA3OCBNSHouDQooWEVOKSAuLi4uLiBidXNfc2NhbGUgPSAweDAwMDBD
-Q0Q3DQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1MF0gUGxhdGZvcm0gdGltZXIgaXMgMTQu
-MzE4TUh6IEhQRVQNCihYRU4pIFsyMDEyLTA5LTAxIDIyOjI2OjUwXSBBbGxvY2F0ZWQgY29u
-c29sZSByaW5nIG9mIDY0IEtpQi4NCihYRU4pIFsyMDEyLTA5LTAxIDIyOjI2OjUwXSBIVk06
-IEFTSURzIGVuYWJsZWQuDQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1MF0gU1ZNOiBTdXBw
-b3J0ZWQgYWR2YW5jZWQgZmVhdHVyZXM6DQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1MF0g
-IC0gTmVzdGVkIFBhZ2UgVGFibGVzIChOUFQpDQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1
-MF0gIC0gTGFzdCBCcmFuY2ggUmVjb3JkIChMQlIpIFZpcnR1YWxpc2F0aW9uDQooWEVOKSBb
-MjAxMi0wOS0wMSAyMjoyNjo1MF0gIC0gTmV4dC1SSVAgU2F2ZWQgb24gI1ZNRVhJVA0KKFhF
-TikgWzIwMTItMDktMDEgMjI6MjY6NTBdICAtIFBhdXNlLUludGVyY2VwdCBGaWx0ZXINCihY
-RU4pIFsyMDEyLTA5LTAxIDIyOjI2OjUwXSBIVk06IFNWTSBlbmFibGVkDQooWEVOKSBbMjAx
-Mi0wOS0wMSAyMjoyNjo1MF0gSFZNOiBIYXJkd2FyZSBBc3Npc3RlZCBQYWdpbmcgKEhBUCkg
-ZGV0ZWN0ZWQNCihYRU4pIFsyMDEyLTA5LTAxIDIyOjI2OjUwXSBIVk06IEhBUCBwYWdlIHNp
-emVzOiA0a0IsIDJNQiwgMUdCDQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo0OV0gbWFza2Vk
-IEV4dElOVCBvbiBDUFUjMQ0KKFhFTikgWzIwMTItMDktMDEgMjI6MjY6NTBdIG1pY3JvY29k
-ZTogY29sbGVjdF9jcHVfaW5mbzogcGF0Y2hfaWQ9MHgxMDAwMGJmDQooWEVOKSBbMjAxMi0w
-OS0wMSAyMjoyNjo0OV0gbWFza2VkIEV4dElOVCBvbiBDUFUjMg0KKFhFTikgWzIwMTItMDkt
-MDEgMjI6MjY6NTBdIG1pY3JvY29kZTogY29sbGVjdF9jcHVfaW5mbzogcGF0Y2hfaWQ9MHgx
-MDAwMGJmDQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo0OV0gbWFza2VkIEV4dElOVCBvbiBD
-UFUjMw0KKFhFTikgWzIwMTItMDktMDEgMjI6MjY6NTBdIG1pY3JvY29kZTogY29sbGVjdF9j
-cHVfaW5mbzogcGF0Y2hfaWQ9MHgxMDAwMGJmDQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo0
-OV0gbWFza2VkIEV4dElOVCBvbiBDUFUjNA0KKFhFTikgWzIwMTItMDktMDEgMjI6MjY6NTBd
-IG1pY3JvY29kZTogY29sbGVjdF9jcHVfaW5mbzogcGF0Y2hfaWQ9MHgxMDAwMGJmDQooWEVO
-KSBbMjAxMi0wOS0wMSAyMjoyNjo0OV0gbWFza2VkIEV4dElOVCBvbiBDUFUjNQ0KKFhFTikg
-WzIwMTItMDktMDEgMjI6MjY6NTBdIEJyb3VnaHQgdXAgNiBDUFVzDQooWEVOKSBbMjAxMi0w
-OS0wMSAyMjoyNjo1MF0gbWljcm9jb2RlOiBjb2xsZWN0X2NwdV9pbmZvOiBwYXRjaF9pZD0w
-eDEwMDAwYmYNCihYRU4pIFsyMDEyLTA5LTAxIDIyOjI2OjUwXSBIUEVUJ3MgTVNJIG1vZGUg
-aGFzbid0IGJlZW4gc3VwcG9ydGVkIHdoZW4gSW50ZXJydXB0IFJlbWFwcGluZyBpcyBlbmFi
-bGVkLg0KKFhFTikgWzIwMTItMDktMDEgMjI6MjY6NTBdIEFDUEkgc2xlZXAgbW9kZXM6IFMz
-DQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1MF0gTUNBOiBVc2UgaHcgdGhyZXNob2xkaW5n
-IHRvIGFkanVzdCBwb2xsaW5nIGZyZXF1ZW5jeQ0KKFhFTikgWzIwMTItMDktMDEgMjI6MjY6
-NTBdIG1jaGVja19wb2xsOiBNYWNoaW5lIGNoZWNrIHBvbGxpbmcgdGltZXIgc3RhcnRlZC4N
-CihYRU4pIFsyMDEyLTA5LTAxIDIyOjI2OjUwXSBYZW5vcHJvZmlsZTogRmFpbGVkIHRvIHNl
-dHVwIElCUyBMVlQgb2Zmc2V0LCBJQlNDVEwgPSAweGZmZmZmZmZmDQooWEVOKSBbMjAxMi0w
-OS0wMSAyMjoyNjo1MF0gKioqIExPQURJTkcgRE9NQUlOIDAgKioqDQooWEVOKSBbMjAxMi0w
-OS0wMSAyMjoyNjo1MF0gZWxmX3BhcnNlX2JpbmFyeTogcGhkcjogcGFkZHI9MHgxMDAwMDAw
-IG1lbXN6PTB4YjY4MDAwDQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1MF0gZWxmX3BhcnNl
-X2JpbmFyeTogcGhkcjogcGFkZHI9MHgxYzAwMDAwIG1lbXN6PTB4ZDgwZTgNCihYRU4pIFsy
-MDEyLTA5LTAxIDIyOjI2OjUwXSBlbGZfcGFyc2VfYmluYXJ5OiBwaGRyOiBwYWRkcj0weDFj
-ZDkwMDAgbWVtc3o9MHgxM2MwMA0KKFhFTikgWzIwMTItMDktMDEgMjI6MjY6NTBdIGVsZl9w
-YXJzZV9iaW5hcnk6IHBoZHI6IHBhZGRyPTB4MWNlZDAwMCBtZW1zej0weGRlNDAwMA0KKFhF
-TikgWzIwMTItMDktMDEgMjI6MjY6NTBdIGVsZl9wYXJzZV9iaW5hcnk6IG1lbW9yeTogMHgx
-MDAwMDAwIC0+IDB4MmFkMTAwMA0KKFhFTikgWzIwMTItMDktMDEgMjI6MjY6NTBdIGVsZl94
-ZW5fcGFyc2Vfbm90ZTogR1VFU1RfT1MgPSAibGludXgiDQooWEVOKSBbMjAxMi0wOS0wMSAy
-MjoyNjo1MF0gZWxmX3hlbl9wYXJzZV9ub3RlOiBHVUVTVF9WRVJTSU9OID0gIjIuNiINCihY
-RU4pIFsyMDEyLTA5LTAxIDIyOjI2OjUwXSBlbGZfeGVuX3BhcnNlX25vdGU6IFhFTl9WRVJT
-SU9OID0gInhlbi0zLjAiDQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1MF0gZWxmX3hlbl9w
-YXJzZV9ub3RlOiBWSVJUX0JBU0UgPSAweGZmZmZmZmZmODAwMDAwMDANCihYRU4pIFsyMDEy
-LTA5LTAxIDIyOjI2OjUwXSBlbGZfeGVuX3BhcnNlX25vdGU6IEVOVFJZID0gMHhmZmZmZmZm
-ZjgxY2VkMjEwDQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1MV0gZWxmX3hlbl9wYXJzZV9u
-b3RlOiBIWVBFUkNBTExfUEFHRSA9IDB4ZmZmZmZmZmY4MTAwMTAwMA0KKFhFTikgWzIwMTIt
-MDktMDEgMjI6MjY6NTFdIGVsZl94ZW5fcGFyc2Vfbm90ZTogRkVBVFVSRVMgPSAiIXdyaXRh
-YmxlX3BhZ2VfdGFibGVzfHBhZV9wZ2Rpcl9hYm92ZV80Z2IiDQooWEVOKSBbMjAxMi0wOS0w
-MSAyMjoyNjo1MV0gZWxmX3hlbl9wYXJzZV9ub3RlOiBQQUVfTU9ERSA9ICJ5ZXMiDQooWEVO
-KSBbMjAxMi0wOS0wMSAyMjoyNjo1MV0gZWxmX3hlbl9wYXJzZV9ub3RlOiBMT0FERVIgPSAi
-Z2VuZXJpYyINCihYRU4pIFsyMDEyLTA5LTAxIDIyOjI2OjUxXSBlbGZfeGVuX3BhcnNlX25v
-dGU6IHVua25vd24geGVuIGVsZiBub3RlICgweGQpDQooWEVOKSBbMjAxMi0wOS0wMSAyMjoy
-Njo1MV0gZWxmX3hlbl9wYXJzZV9ub3RlOiBTVVNQRU5EX0NBTkNFTCA9IDB4MQ0KKFhFTikg
-WzIwMTItMDktMDEgMjI6MjY6NTFdIGVsZl94ZW5fcGFyc2Vfbm90ZTogSFZfU1RBUlRfTE9X
-ID0gMHhmZmZmODAwMDAwMDAwMDAwDQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1MV0gZWxm
-X3hlbl9wYXJzZV9ub3RlOiBQQUREUl9PRkZTRVQgPSAweDANCihYRU4pIFsyMDEyLTA5LTAx
-IDIyOjI2OjUxXSBlbGZfeGVuX2FkZHJfY2FsY19jaGVjazogYWRkcmVzc2VzOg0KKFhFTikg
-WzIwMTItMDktMDEgMjI6MjY6NTFdICAgICB2aXJ0X2Jhc2UgICAgICAgID0gMHhmZmZmZmZm
-ZjgwMDAwMDAwDQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1MV0gICAgIGVsZl9wYWRkcl9v
-ZmZzZXQgPSAweDANCihYRU4pIFsyMDEyLTA5LTAxIDIyOjI2OjUxXSAgICAgdmlydF9vZmZz
-ZXQgICAgICA9IDB4ZmZmZmZmZmY4MDAwMDAwMA0KKFhFTikgWzIwMTItMDktMDEgMjI6MjY6
-NTFdICAgICB2aXJ0X2tzdGFydCAgICAgID0gMHhmZmZmZmZmZjgxMDAwMDAwDQooWEVOKSBb
-MjAxMi0wOS0wMSAyMjoyNjo1MV0gICAgIHZpcnRfa2VuZCAgICAgICAgPSAweGZmZmZmZmZm
-ODJhZDEwMDANCihYRU4pIFsyMDEyLTA5LTAxIDIyOjI2OjUxXSAgICAgdmlydF9lbnRyeSAg
-ICAgICA9IDB4ZmZmZmZmZmY4MWNlZDIxMA0KKFhFTikgWzIwMTItMDktMDEgMjI6MjY6NTFd
-ICAgICBwMm1fYmFzZSAgICAgICAgID0gMHhmZmZmZmZmZmZmZmZmZmZmDQooWEVOKSBbMjAx
-Mi0wOS0wMSAyMjoyNjo1MV0gIFhlbiAga2VybmVsOiA2NC1iaXQsIGxzYiwgY29tcGF0MzIN
-CihYRU4pIFsyMDEyLTA5LTAxIDIyOjI2OjUxXSAgRG9tMCBrZXJuZWw6IDY0LWJpdCwgUEFF
-LCBsc2IsIHBhZGRyIDB4MTAwMDAwMCAtPiAweDJhZDEwMDANCihYRU4pIFsyMDEyLTA5LTAx
-IDIyOjI2OjUxXSBQSFlTSUNBTCBNRU1PUlkgQVJSQU5HRU1FTlQ6DQooWEVOKSBbMjAxMi0w
-OS0wMSAyMjoyNjo1MV0gIERvbTAgYWxsb2MuOiAgIDAwMDAwMDAyNDAwMDAwMDAtPjAwMDAw
-MDAyNDQwMDAwMDAgKDI0MjQyOCBwYWdlcyB0byBiZSBhbGxvY2F0ZWQpDQooWEVOKSBbMjAx
-Mi0wOS0wMSAyMjoyNjo1MV0gIEluaXQuIHJhbWRpc2s6IDAwMDAwMDAyNGYyZmMwMDAtPjAw
-MDAwMDAyNGZmZmY4MDANCihYRU4pIFsyMDEyLTA5LTAxIDIyOjI2OjUxXSBWSVJUVUFMIE1F
-TU9SWSBBUlJBTkdFTUVOVDoNCihYRU4pIFsyMDEyLTA5LTAxIDIyOjI2OjUxXSAgTG9hZGVk
-IGtlcm5lbDogZmZmZmZmZmY4MTAwMDAwMC0+ZmZmZmZmZmY4MmFkMTAwMA0KKFhFTikgWzIw
-MTItMDktMDEgMjI6MjY6NTFdICBJbml0LiByYW1kaXNrOiBmZmZmZmZmZjgyYWQxMDAwLT5m
-ZmZmZmZmZjgzN2Q0ODAwDQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1MV0gIFBoeXMtTWFj
-aCBtYXA6IGZmZmZmZmZmODM3ZDUwMDAtPmZmZmZmZmZmODM5ZDUwMDANCihYRU4pIFsyMDEy
-LTA5LTAxIDIyOjI2OjUxXSAgU3RhcnQgaW5mbzogICAgZmZmZmZmZmY4MzlkNTAwMC0+ZmZm
-ZmZmZmY4MzlkNTRiNA0KKFhFTikgWzIwMTItMDktMDEgMjI6MjY6NTFdICBQYWdlIHRhYmxl
-czogICBmZmZmZmZmZjgzOWQ2MDAwLT5mZmZmZmZmZjgzOWY3MDAwDQooWEVOKSBbMjAxMi0w
-OS0wMSAyMjoyNjo1MV0gIEJvb3Qgc3RhY2s6ICAgIGZmZmZmZmZmODM5ZjcwMDAtPmZmZmZm
-ZmZmODM5ZjgwMDANCihYRU4pIFsyMDEyLTA5LTAxIDIyOjI2OjUxXSAgVE9UQUw6ICAgICAg
-ICAgZmZmZmZmZmY4MDAwMDAwMC0+ZmZmZmZmZmY4M2MwMDAwMA0KKFhFTikgWzIwMTItMDkt
-MDEgMjI6MjY6NTFdICBFTlRSWSBBRERSRVNTOiBmZmZmZmZmZjgxY2VkMjEwDQooWEVOKSBb
-MjAxMi0wOS0wMSAyMjoyNjo1MV0gRG9tMCBoYXMgbWF4aW11bSA2IFZDUFVzDQooWEVOKSBb
-MjAxMi0wOS0wMSAyMjoyNjo1MV0gZWxmX2xvYWRfYmluYXJ5OiBwaGRyIDAgYXQgMHhmZmZm
-ZmZmZjgxMDAwMDAwIC0+IDB4ZmZmZmZmZmY4MWI2ODAwMA0KKFhFTikgWzIwMTItMDktMDEg
-MjI6MjY6NTFdIGVsZl9sb2FkX2JpbmFyeTogcGhkciAxIGF0IDB4ZmZmZmZmZmY4MWMwMDAw
-MCAtPiAweGZmZmZmZmZmODFjZDgwZTgNCihYRU4pIFsyMDEyLTA5LTAxIDIyOjI2OjUxXSBl
-bGZfbG9hZF9iaW5hcnk6IHBoZHIgMiBhdCAweGZmZmZmZmZmODFjZDkwMDAgLT4gMHhmZmZm
-ZmZmZjgxY2VjYzAwDQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1MV0gZWxmX2xvYWRfYmlu
-YXJ5OiBwaGRyIDMgYXQgMHhmZmZmZmZmZjgxY2VkMDAwIC0+IDB4ZmZmZmZmZmY4MWQ4NTAw
-MA0KKFhFTikgWzIwMTItMDktMDEgMjI6MjY6NTFdIEFNRC1WaTogU2V0dXAgSS9PIHBhZ2Ug
-dGFibGU6IGRldmljZSBpZCA9IDB4MDAwMCwgcm9vdCB0YWJsZSA9IDB4MjRkYTUzMDAwLCBk
-b21haW4gPSAwLCBwYWdpbmcgbW9kZSA9IDMNCihYRU4pIFsyMDEyLTA5LTAxIDIyOjI2OjUx
-XSBBTUQtVmk6IFNldHVwIEkvTyBwYWdlIHRhYmxlOiBkZXZpY2UgaWQgPSAweDAwMDIsIHJv
-b3QgdGFibGUgPSAweDI0ZGE1MzAwMCwgZG9tYWluID0gMCwgcGFnaW5nIG1vZGUgPSAzDQoo
-WEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1MV0gQU1ELVZpOiBTZXR1cCBJL08gcGFnZSB0YWJs
-ZTogZGV2aWNlIGlkID0gMHgwMDEwLCByb290IHRhYmxlID0gMHgyNGRhNTMwMDAsIGRvbWFp
-biA9IDAsIHBhZ2luZyBtb2RlID0gMw0KKFhFTikgWzIwMTItMDktMDEgMjI6MjY6NTFdIEFN
-RC1WaTogU2V0dXAgSS9PIHBhZ2UgdGFibGU6IGRldmljZSBpZCA9IDB4MDAxOCwgcm9vdCB0
-YWJsZSA9IDB4MjRkYTUzMDAwLCBkb21haW4gPSAwLCBwYWdpbmcgbW9kZSA9IDMNCihYRU4p
-IFsyMDEyLTA5LTAxIDIyOjI2OjUxXSBBTUQtVmk6IFNldHVwIEkvTyBwYWdlIHRhYmxlOiBk
-ZXZpY2UgaWQgPSAweDAwMjgsIHJvb3QgdGFibGUgPSAweDI0ZGE1MzAwMCwgZG9tYWluID0g
-MCwgcGFnaW5nIG1vZGUgPSAzDQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1MV0gQU1ELVZp
-OiBTZXR1cCBJL08gcGFnZSB0YWJsZTogZGV2aWNlIGlkID0gMHgwMDMwLCByb290IHRhYmxl
-ID0gMHgyNGRhNTMwMDAsIGRvbWFpbiA9IDAsIHBhZ2luZyBtb2RlID0gMw0KKFhFTikgWzIw
-MTItMDktMDEgMjI6MjY6NTFdIEFNRC1WaTogU2V0dXAgSS9PIHBhZ2UgdGFibGU6IGRldmlj
-ZSBpZCA9IDB4MDA1MCwgcm9vdCB0YWJsZSA9IDB4MjRkYTUzMDAwLCBkb21haW4gPSAwLCBw
-YWdpbmcgbW9kZSA9IDMNCihYRU4pIFsyMDEyLTA5LTAxIDIyOjI2OjUxXSBBTUQtVmk6IFNl
-dHVwIEkvTyBwYWdlIHRhYmxlOiBkZXZpY2UgaWQgPSAweDAwNTgsIHJvb3QgdGFibGUgPSAw
-eDI0ZGE1MzAwMCwgZG9tYWluID0gMCwgcGFnaW5nIG1vZGUgPSAzDQooWEVOKSBbMjAxMi0w
-OS0wMSAyMjoyNjo1MV0gQU1ELVZpOiBTZXR1cCBJL08gcGFnZSB0YWJsZTogZGV2aWNlIGlk
-ID0gMHgwMDYwLCByb290IHRhYmxlID0gMHgyNGRhNTMwMDAsIGRvbWFpbiA9IDAsIHBhZ2lu
-ZyBtb2RlID0gMw0KKFhFTikgWzIwMTItMDktMDEgMjI6MjY6NTFdIEFNRC1WaTogU2V0dXAg
-SS9PIHBhZ2UgdGFibGU6IGRldmljZSBpZCA9IDB4MDA2OCwgcm9vdCB0YWJsZSA9IDB4MjRk
-YTUzMDAwLCBkb21haW4gPSAwLCBwYWdpbmcgbW9kZSA9IDMNCihYRU4pIFsyMDEyLTA5LTAx
-IDIyOjI2OjUxXSBBTUQtVmk6IFNldHVwIEkvTyBwYWdlIHRhYmxlOiBkZXZpY2UgaWQgPSAw
-eDAwODgsIHJvb3QgdGFibGUgPSAweDI0ZGE1MzAwMCwgZG9tYWluID0gMCwgcGFnaW5nIG1v
-ZGUgPSAzDQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1MV0gQU1ELVZpOiBTZXR1cCBJL08g
-cGFnZSB0YWJsZTogZGV2aWNlIGlkID0gMHgwMDkwLCByb290IHRhYmxlID0gMHgyNGRhNTMw
-MDAsIGRvbWFpbiA9IDAsIHBhZ2luZyBtb2RlID0gMw0KKFhFTikgWzIwMTItMDktMDEgMjI6
-MjY6NTFdIEFNRC1WaTogU2V0dXAgSS9PIHBhZ2UgdGFibGU6IGRldmljZSBpZCA9IDB4MDA5
-Miwgcm9vdCB0YWJsZSA9IDB4MjRkYTUzMDAwLCBkb21haW4gPSAwLCBwYWdpbmcgbW9kZSA9
-IDMNCihYRU4pIFsyMDEyLTA5LTAxIDIyOjI2OjUxXSBBTUQtVmk6IFNldHVwIEkvTyBwYWdl
-IHRhYmxlOiBkZXZpY2UgaWQgPSAweDAwOTgsIHJvb3QgdGFibGUgPSAweDI0ZGE1MzAwMCwg
-ZG9tYWluID0gMCwgcGFnaW5nIG1vZGUgPSAzDQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1
-MV0gQU1ELVZpOiBTZXR1cCBJL08gcGFnZSB0YWJsZTogZGV2aWNlIGlkID0gMHgwMDlhLCBy
-b290IHRhYmxlID0gMHgyNGRhNTMwMDAsIGRvbWFpbiA9IDAsIHBhZ2luZyBtb2RlID0gMw0K
-KFhFTikgWzIwMTItMDktMDEgMjI6MjY6NTFdIEFNRC1WaTogU2V0dXAgSS9PIHBhZ2UgdGFi
-bGU6IGRldmljZSBpZCA9IDB4MDBhMCwgcm9vdCB0YWJsZSA9IDB4MjRkYTUzMDAwLCBkb21h
-aW4gPSAwLCBwYWdpbmcgbW9kZSA9IDMNCihYRU4pIFsyMDEyLTA5LTAxIDIyOjI2OjUxXSBB
-TUQtVmk6IFNldHVwIEkvTyBwYWdlIHRhYmxlOiBkZXZpY2UgaWQgPSAweDAwYTMsIHJvb3Qg
-dGFibGUgPSAweDI0ZGE1MzAwMCwgZG9tYWluID0gMCwgcGFnaW5nIG1vZGUgPSAzDQooWEVO
-KSBbMjAxMi0wOS0wMSAyMjoyNjo1MV0gQU1ELVZpOiBTZXR1cCBJL08gcGFnZSB0YWJsZTog
-ZGV2aWNlIGlkID0gMHgwMGE0LCByb290IHRhYmxlID0gMHgyNGRhNTMwMDAsIGRvbWFpbiA9
-IDAsIHBhZ2luZyBtb2RlID0gMw0KKFhFTikgWzIwMTItMDktMDEgMjI6MjY6NTFdIEFNRC1W
-aTogU2V0dXAgSS9PIHBhZ2UgdGFibGU6IGRldmljZSBpZCA9IDB4MDBhNSwgcm9vdCB0YWJs
-ZSA9IDB4MjRkYTUzMDAwLCBkb21haW4gPSAwLCBwYWdpbmcgbW9kZSA9IDMNCihYRU4pIFsy
-MDEyLTA5LTAxIDIyOjI2OjUxXSBBTUQtVmk6IFNldHVwIEkvTyBwYWdlIHRhYmxlOiBkZXZp
-Y2UgaWQgPSAweDAwYTgsIHJvb3QgdGFibGUgPSAweDI0ZGE1MzAwMCwgZG9tYWluID0gMCwg
-cGFnaW5nIG1vZGUgPSAzDQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1MV0gQU1ELVZpOiBT
-ZXR1cCBJL08gcGFnZSB0YWJsZTogZGV2aWNlIGlkID0gMHgwMGIwLCByb290IHRhYmxlID0g
-MHgyNGRhNTMwMDAsIGRvbWFpbiA9IDAsIHBhZ2luZyBtb2RlID0gMw0KKFhFTikgWzIwMTIt
-MDktMDEgMjI6MjY6NTFdIEFNRC1WaTogU2V0dXAgSS9PIHBhZ2UgdGFibGU6IGRldmljZSBp
-ZCA9IDB4MDBiMiwgcm9vdCB0YWJsZSA9IDB4MjRkYTUzMDAwLCBkb21haW4gPSAwLCBwYWdp
-bmcgbW9kZSA9IDMNCihYRU4pIFsyMDEyLTA5LTAxIDIyOjI2OjUxXSBBTUQtVmk6IE5vIGlv
-bW11IGZvciBkZXZpY2UgMDAwMDowMDoxOC4wDQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1
-MV0gQU1ELVZpOiBObyBpb21tdSBmb3IgZGV2aWNlIDAwMDA6MDA6MTguMQ0KKFhFTikgWzIw
-MTItMDktMDEgMjI6MjY6NTFdIEFNRC1WaTogTm8gaW9tbXUgZm9yIGRldmljZSAwMDAwOjAw
-OjE4LjINCihYRU4pIFsyMDEyLTA5LTAxIDIyOjI2OjUxXSBBTUQtVmk6IE5vIGlvbW11IGZv
-ciBkZXZpY2UgMDAwMDowMDoxOC4zDQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1MV0gQU1E
-LVZpOiBObyBpb21tdSBmb3IgZGV2aWNlIDAwMDA6MDA6MTguNA0KKFhFTikgWzIwMTItMDkt
-MDEgMjI6MjY6NTFdIEFNRC1WaTogU2V0dXAgSS9PIHBhZ2UgdGFibGU6IGRldmljZSBpZCA9
-IDB4MDQwMCwgcm9vdCB0YWJsZSA9IDB4MjRkYTUzMDAwLCBkb21haW4gPSAwLCBwYWdpbmcg
-bW9kZSA9IDMNCihYRU4pIFsyMDEyLTA5LTAxIDIyOjI2OjUxXSBBTUQtVmk6IFNldHVwIEkv
-TyBwYWdlIHRhYmxlOiBkZXZpY2UgaWQgPSAweDA0MDEsIHJvb3QgdGFibGUgPSAweDI0ZGE1
-MzAwMCwgZG9tYWluID0gMCwgcGFnaW5nIG1vZGUgPSAzDQooWEVOKSBbMjAxMi0wOS0wMSAy
-MjoyNjo1MV0gQU1ELVZpOiBTZXR1cCBJL08gcGFnZSB0YWJsZTogZGV2aWNlIGlkID0gMHgw
-NDAyLCByb290IHRhYmxlID0gMHgyNGRhNTMwMDAsIGRvbWFpbiA9IDAsIHBhZ2luZyBtb2Rl
-ID0gMw0KKFhFTikgWzIwMTItMDktMDEgMjI6MjY6NTFdIEFNRC1WaTogU2V0dXAgSS9PIHBh
-Z2UgdGFibGU6IGRldmljZSBpZCA9IDB4MDQwMywgcm9vdCB0YWJsZSA9IDB4MjRkYTUzMDAw
-LCBkb21haW4gPSAwLCBwYWdpbmcgbW9kZSA9IDMNCihYRU4pIFsyMDEyLTA5LTAxIDIyOjI2
-OjUxXSBBTUQtVmk6IFNldHVwIEkvTyBwYWdlIHRhYmxlOiBkZXZpY2UgaWQgPSAweDA0MDQs
-IHJvb3QgdGFibGUgPSAweDI0ZGE1MzAwMCwgZG9tYWluID0gMCwgcGFnaW5nIG1vZGUgPSAz
-DQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1MV0gQU1ELVZpOiBTZXR1cCBJL08gcGFnZSB0
-YWJsZTogZGV2aWNlIGlkID0gMHgwNDA1LCByb290IHRhYmxlID0gMHgyNGRhNTMwMDAsIGRv
-bWFpbiA9IDAsIHBhZ2luZyBtb2RlID0gMw0KKFhFTikgWzIwMTItMDktMDEgMjI6MjY6NTFd
-IEFNRC1WaTogU2V0dXAgSS9PIHBhZ2UgdGFibGU6IGRldmljZSBpZCA9IDB4MDQwNiwgcm9v
-dCB0YWJsZSA9IDB4MjRkYTUzMDAwLCBkb21haW4gPSAwLCBwYWdpbmcgbW9kZSA9IDMNCihY
-RU4pIFsyMDEyLTA5LTAxIDIyOjI2OjUyXSBBTUQtVmk6IFNldHVwIEkvTyBwYWdlIHRhYmxl
-OiBkZXZpY2UgaWQgPSAweDA0MDcsIHJvb3QgdGFibGUgPSAweDI0ZGE1MzAwMCwgZG9tYWlu
-ID0gMCwgcGFnaW5nIG1vZGUgPSAzDQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1Ml0gQU1E
-LVZpOiBTZXR1cCBJL08gcGFnZSB0YWJsZTogZGV2aWNlIGlkID0gMHgwNTAwLCByb290IHRh
-YmxlID0gMHgyNGRhNTMwMDAsIGRvbWFpbiA9IDAsIHBhZ2luZyBtb2RlID0gMw0KKFhFTikg
-WzIwMTItMDktMDEgMjI6MjY6NTJdIEFNRC1WaTogU2V0dXAgSS9PIHBhZ2UgdGFibGU6IGRl
-dmljZSBpZCA9IDB4MDYwMCwgcm9vdCB0YWJsZSA9IDB4MjRkYTUzMDAwLCBkb21haW4gPSAw
-LCBwYWdpbmcgbW9kZSA9IDMNCihYRU4pIFsyMDEyLTA5LTAxIDIyOjI2OjUyXSBBTUQtVmk6
-IFNldHVwIEkvTyBwYWdlIHRhYmxlOiBkZXZpY2UgaWQgPSAweDA2MDEsIHJvb3QgdGFibGUg
-PSAweDI0ZGE1MzAwMCwgZG9tYWluID0gMCwgcGFnaW5nIG1vZGUgPSAzDQooWEVOKSBbMjAx
-Mi0wOS0wMSAyMjoyNjo1Ml0gQU1ELVZpOiBTZXR1cCBJL08gcGFnZSB0YWJsZTogZGV2aWNl
-IGlkID0gMHgwNzAwLCByb290IHRhYmxlID0gMHgyNGRhNTMwMDAsIGRvbWFpbiA9IDAsIHBh
-Z2luZyBtb2RlID0gMw0KKFhFTikgWzIwMTItMDktMDEgMjI6MjY6NTJdIEFNRC1WaTogU2V0
-dXAgSS9PIHBhZ2UgdGFibGU6IGRldmljZSBpZCA9IDB4MDgwMCwgcm9vdCB0YWJsZSA9IDB4
-MjRkYTUzMDAwLCBkb21haW4gPSAwLCBwYWdpbmcgbW9kZSA9IDMNCihYRU4pIFsyMDEyLTA5
-LTAxIDIyOjI2OjUyXSBBTUQtVmk6IFNldHVwIEkvTyBwYWdlIHRhYmxlOiBkZXZpY2UgaWQg
-PSAweDA5MDAsIHJvb3QgdGFibGUgPSAweDI0ZGE1MzAwMCwgZG9tYWluID0gMCwgcGFnaW5n
-IG1vZGUgPSAzDQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1Ml0gQU1ELVZpOiBTZXR1cCBJ
-L08gcGFnZSB0YWJsZTogZGV2aWNlIGlkID0gMHgwYTAwLCByb290IHRhYmxlID0gMHgyNGRh
-NTMwMDAsIGRvbWFpbiA9IDAsIHBhZ2luZyBtb2RlID0gMw0KKFhFTikgWzIwMTItMDktMDEg
-MjI6MjY6NTJdIEFNRC1WaTogU2V0dXAgSS9PIHBhZ2UgdGFibGU6IGRldmljZSBpZCA9IDB4
-MGEwMSwgcm9vdCB0YWJsZSA9IDB4MjRkYTUzMDAwLCBkb21haW4gPSAwLCBwYWdpbmcgbW9k
-ZSA9IDMNCihYRU4pIFsyMDEyLTA5LTAxIDIyOjI2OjUyXSBBTUQtVmk6IFNldHVwIEkvTyBw
-YWdlIHRhYmxlOiBkZXZpY2UgaWQgPSAweDBhMDIsIHJvb3QgdGFibGUgPSAweDI0ZGE1MzAw
-MCwgZG9tYWluID0gMCwgcGFnaW5nIG1vZGUgPSAzDQooWEVOKSBbMjAxMi0wOS0wMSAyMjoy
-Njo1Ml0gQU1ELVZpOiBTZXR1cCBJL08gcGFnZSB0YWJsZTogZGV2aWNlIGlkID0gMHgwYTAz
-LCByb290IHRhYmxlID0gMHgyNGRhNTMwMDAsIGRvbWFpbiA9IDAsIHBhZ2luZyBtb2RlID0g
-Mw0KKFhFTikgWzIwMTItMDktMDEgMjI6MjY6NTJdIEFNRC1WaTogU2V0dXAgSS9PIHBhZ2Ug
-dGFibGU6IGRldmljZSBpZCA9IDB4MGEwNCwgcm9vdCB0YWJsZSA9IDB4MjRkYTUzMDAwLCBk
-b21haW4gPSAwLCBwYWdpbmcgbW9kZSA9IDMNCihYRU4pIFsyMDEyLTA5LTAxIDIyOjI2OjUy
-XSBBTUQtVmk6IFNldHVwIEkvTyBwYWdlIHRhYmxlOiBkZXZpY2UgaWQgPSAweDBhMDUsIHJv
-b3QgdGFibGUgPSAweDI0ZGE1MzAwMCwgZG9tYWluID0gMCwgcGFnaW5nIG1vZGUgPSAzDQoo
-WEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1Ml0gQU1ELVZpOiBTZXR1cCBJL08gcGFnZSB0YWJs
-ZTogZGV2aWNlIGlkID0gMHgwYTA2LCByb290IHRhYmxlID0gMHgyNGRhNTMwMDAsIGRvbWFp
-biA9IDAsIHBhZ2luZyBtb2RlID0gMw0KKFhFTikgWzIwMTItMDktMDEgMjI6MjY6NTJdIEFN
-RC1WaTogU2V0dXAgSS9PIHBhZ2UgdGFibGU6IGRldmljZSBpZCA9IDB4MGEwNywgcm9vdCB0
-YWJsZSA9IDB4MjRkYTUzMDAwLCBkb21haW4gPSAwLCBwYWdpbmcgbW9kZSA9IDMNCihYRU4p
-IFsyMDEyLTA5LTAxIDIyOjI2OjUyXSBBTUQtVmk6IFNldHVwIEkvTyBwYWdlIHRhYmxlOiBk
-ZXZpY2UgaWQgPSAweDBiMDAsIHJvb3QgdGFibGUgPSAweDI0ZGE1MzAwMCwgZG9tYWluID0g
-MCwgcGFnaW5nIG1vZGUgPSAzDQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1Ml0gU2NydWJi
-aW5nIEZyZWUgUkFNOiAuLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
-Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLmRvbmUuDQooWEVOKSBbMjAxMi0wOS0w
-MSAyMjoyNjo1M10gSW5pdGlhbCBsb3cgbWVtb3J5IHZpcnEgdGhyZXNob2xkIHNldCBhdCAw
-eDQwMDAgcGFnZXMuDQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1M10gU3RkLiBMb2dsZXZl
-bDogQWxsDQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1NF0gR3Vlc3QgTG9nbGV2ZWw6IEFs
-bA0KKFhFTikgWzIwMTItMDktMDEgMjI6MjY6NTRdIFhlbiBpcyByZWxpbnF1aXNoaW5nIFZH
-QSBjb25zb2xlLg0KKFhFTikgWzIwMTItMDktMDEgMjI6MjY6NTRdICoqKiBTZXJpYWwgaW5w
-dXQgLT4gRE9NMCAodHlwZSAnQ1RSTC1hJyB0aHJlZSB0aW1lcyB0byBzd2l0Y2ggaW5wdXQg
-dG8gWGVuKQ0KKFhFTikgWzIwMTItMDktMDEgMjI6MjY6NTRdIEZyZWVkIDI1NmtCIGluaXQg
-bWVtb3J5Lg0KKFhFTikgWzIwMTItMDktMDEgMjI6MjY6NTRdIElPQVBJQ1swXTogU2V0IFBD
-SSByb3V0aW5nIGVudHJ5ICg2LTkgLT4gMHg2MCAtPiBJUlEgOSBNb2RlOjEgQWN0aXZlOjEp
-DQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1NF0gdHJhcHMuYzoyNTg0OmQwIERvbWFpbiBh
-dHRlbXB0ZWQgV1JNU1IgMDAwMDAwMDBjMDAwMDQwOCBmcm9tIDB4YzAwMDAwMDAwMTAwMDAw
-MCB0byAweGMwMDgwMDAwMDEwMDAwMDAuDQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1NF0g
-dHJhcHMuYzoyNTg0OmQwIERvbWFpbiBhdHRlbXB0ZWQgV1JNU1IgMDAwMDAwMDBjMDAwMDQw
-OSBmcm9tIDB4YzAwMDAwMDAwMTAwMDAwMCB0byAweGMwMDgwMDAwMDEwMDAwMDAuDQooWEVO
-KSBbMjAxMi0wOS0wMSAyMjoyNjo1NF0gdHJhcHMuYzoyNTg0OmQwIERvbWFpbiBhdHRlbXB0
-ZWQgV1JNU1IgMDAwMDAwMDBjMDAxMDAwNCBmcm9tIDB4MDAwMGVmZjBiZGZiMWZjZSB0byAw
-eDAwMDAwMDAwMDAwMGFiY2QuDQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1NF0gdHJhcHMu
-YzoyNTg0OmQwIERvbWFpbiBhdHRlbXB0ZWQgV1JNU1IgMDAwMDAwMDBjMDAwMDQwOCBmcm9t
-IDB4YzAwMDAwMDAwMTAwMDAwMCB0byAweGMwMDgwMDAwMDEwMDAwMDAuDQooWEVOKSBbMjAx
-Mi0wOS0wMSAyMjoyNjo1NF0gdHJhcHMuYzoyNTg0OmQwIERvbWFpbiBhdHRlbXB0ZWQgV1JN
-U1IgMDAwMDAwMDBjMDAwMDQwOSBmcm9tIDB4YzAwMDAwMDAwMTAwMDAwMCB0byAweGMwMDgw
-MDAwMDEwMDAwMDAuDQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1NF0gdHJhcHMuYzoyNTg0
-OmQwIERvbWFpbiBhdHRlbXB0ZWQgV1JNU1IgMDAwMDAwMDBjMDAwMDQwOCBmcm9tIDB4YzAw
-MDAwMDAwMTAwMDAwMCB0byAweGMwMDgwMDAwMDEwMDAwMDAuDQooWEVOKSBbMjAxMi0wOS0w
-MSAyMjoyNjo1NF0gdHJhcHMuYzoyNTg0OmQwIERvbWFpbiBhdHRlbXB0ZWQgV1JNU1IgMDAw
-MDAwMDBjMDAwMDQwOSBmcm9tIDB4YzAwMDAwMDAwMTAwMDAwMCB0byAweGMwMDgwMDAwMDEw
-MDAwMDAuDQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1NF0gdHJhcHMuYzoyNTg0OmQwIERv
-bWFpbiBhdHRlbXB0ZWQgV1JNU1IgMDAwMDAwMDBjMDAwMDQwOCBmcm9tIDB4YzAwMDAwMDAw
-MTAwMDAwMCB0byAweGMwMDgwMDAwMDEwMDAwMDAuDQooWEVOKSBbMjAxMi0wOS0wMSAyMjoy
-Njo1NF0gdHJhcHMuYzoyNTg0OmQwIERvbWFpbiBhdHRlbXB0ZWQgV1JNU1IgMDAwMDAwMDBj
-MDAwMDQwOSBmcm9tIDB4YzAwMDAwMDAwMTAwMDAwMCB0byAweGMwMDgwMDAwMDEwMDAwMDAu
-DQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1NF0gdHJhcHMuYzoyNTg0OmQwIERvbWFpbiBh
-dHRlbXB0ZWQgV1JNU1IgMDAwMDAwMDBjMDAwMDQwOCBmcm9tIDB4YzAwMDAwMDAwMTAwMDAw
-MCB0byAweGMwMDgwMDAwMDEwMDAwMDAuDQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1NF0g
-dHJhcHMuYzoyNTg0OmQwIERvbWFpbiBhdHRlbXB0ZWQgV1JNU1IgMDAwMDAwMDBjMDAwMDQw
-OSBmcm9tIDB4YzAwMDAwMDAwMTAwMDAwMCB0byAweGMwMDgwMDAwMDEwMDAwMDAuDQooWEVO
-KSBbMjAxMi0wOS0wMSAyMjoyNjo1NF0gdHJhcHMuYzoyNTg0OmQwIERvbWFpbiBhdHRlbXB0
-ZWQgV1JNU1IgMDAwMDAwMDBjMDAwMDQwOCBmcm9tIDB4YzAwMDAwMDAwMTAwMDAwMCB0byAw
-eGMwMDgwMDAwMDEwMDAwMDAuDQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1NF0gdHJhcHMu
-YzoyNTg0OmQwIERvbWFpbiBhdHRlbXB0ZWQgV1JNU1IgMDAwMDAwMDBjMDAwMDQwOSBmcm9t
-IDB4YzAwMDAwMDAwMTAwMDAwMCB0byAweGMwMDgwMDAwMDEwMDAwMDAuDQooWEVOKSBbMjAx
-Mi0wOS0wMSAyMjoyNjo1NF0gUENJIGFkZCBkZXZpY2UgMDAwMDowMDowMC4wDQooWEVOKSBb
-MjAxMi0wOS0wMSAyMjoyNjo1NF0gUENJIGFkZCBkZXZpY2UgMDAwMDowMDowMC4yDQooWEVO
-KSBbMjAxMi0wOS0wMSAyMjoyNjo1NF0gUENJIGFkZCBkZXZpY2UgMDAwMDowMDowMi4wDQoo
-WEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1NF0gUENJIGFkZCBkZXZpY2UgMDAwMDowMDowMy4w
-DQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1NF0gUENJIGFkZCBkZXZpY2UgMDAwMDowMDow
-NS4wDQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1NF0gUENJIGFkZCBkZXZpY2UgMDAwMDow
-MDowNi4wDQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1NF0gUENJIGFkZCBkZXZpY2UgMDAw
-MDowMDowYS4wDQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1NF0gUENJIGFkZCBkZXZpY2Ug
-MDAwMDowMDowYi4wDQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1NF0gUENJIGFkZCBkZXZp
-Y2UgMDAwMDowMDowYy4wDQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1NF0gUENJIGFkZCBk
-ZXZpY2UgMDAwMDowMDowZC4wDQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1NF0gUENJIGFk
-ZCBkZXZpY2UgMDAwMDowMDoxMS4wDQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1NF0gUENJ
-IGFkZCBkZXZpY2UgMDAwMDowMDoxMi4wDQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1NF0g
-UENJIGFkZCBkZXZpY2UgMDAwMDowMDoxMi4yDQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1
-NF0gUENJIGFkZCBkZXZpY2UgMDAwMDowMDoxMy4wDQooWEVOKSBbMjAxMi0wOS0wMSAyMjoy
-Njo1NF0gUENJIGFkZCBkZXZpY2UgMDAwMDowMDoxMy4yDQooWEVOKSBbMjAxMi0wOS0wMSAy
-MjoyNjo1NF0gUENJIGFkZCBkZXZpY2UgMDAwMDowMDoxNC4wDQooWEVOKSBbMjAxMi0wOS0w
-MSAyMjoyNjo1NF0gUENJIGFkZCBkZXZpY2UgMDAwMDowMDoxNC4zDQooWEVOKSBbMjAxMi0w
-OS0wMSAyMjoyNjo1NF0gUENJIGFkZCBkZXZpY2UgMDAwMDowMDoxNC40DQooWEVOKSBbMjAx
-Mi0wOS0wMSAyMjoyNjo1NF0gUENJIGFkZCBkZXZpY2UgMDAwMDowMDoxNC41DQooWEVOKSBb
-MjAxMi0wOS0wMSAyMjoyNjo1NF0gUENJIGFkZCBkZXZpY2UgMDAwMDowMDoxNS4wDQooWEVO
-KSBbMjAxMi0wOS0wMSAyMjoyNjo1NF0gUENJIGFkZCBkZXZpY2UgMDAwMDowMDoxNi4wDQoo
-WEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1NF0gUENJIGFkZCBkZXZpY2UgMDAwMDowMDoxNi4y
-DQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1NF0gUENJIGFkZCBkZXZpY2UgMDAwMDowMDox
-OC4wDQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1NF0gUENJIGFkZCBkZXZpY2UgMDAwMDow
-MDoxOC4xDQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1NF0gUENJIGFkZCBkZXZpY2UgMDAw
-MDowMDoxOC4yDQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1NF0gUENJIGFkZCBkZXZpY2Ug
-MDAwMDowMDoxOC4zDQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1NF0gUENJIGFkZCBkZXZp
-Y2UgMDAwMDowMDoxOC40DQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1NF0gUENJIGFkZCBk
-ZXZpY2UgMDAwMDowYjowMC4wDQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1NF0gUENJIGFk
-ZCBkZXZpY2UgMDAwMDowYTowMC4wDQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1NF0gUENJ
-IGFkZCBkZXZpY2UgMDAwMDowYTowMC4xDQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1NF0g
-UENJIGFkZCBkZXZpY2UgMDAwMDowYTowMC4yDQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1
-NF0gUENJIGFkZCBkZXZpY2UgMDAwMDowYTowMC4zDQooWEVOKSBbMjAxMi0wOS0wMSAyMjoy
-Njo1NF0gUENJIGFkZCBkZXZpY2UgMDAwMDowYTowMC40DQooWEVOKSBbMjAxMi0wOS0wMSAy
-MjoyNjo1NF0gUENJIGFkZCBkZXZpY2UgMDAwMDowYTowMC41DQooWEVOKSBbMjAxMi0wOS0w
-MSAyMjoyNjo1NF0gUENJIGFkZCBkZXZpY2UgMDAwMDowYTowMC42DQooWEVOKSBbMjAxMi0w
-OS0wMSAyMjoyNjo1NF0gUENJIGFkZCBkZXZpY2UgMDAwMDowYTowMC43DQooWEVOKSBbMjAx
-Mi0wOS0wMSAyMjoyNjo1NF0gUENJIGFkZCBkZXZpY2UgMDAwMDowOTowMC4wDQooWEVOKSBb
-MjAxMi0wOS0wMSAyMjoyNjo1NF0gUENJIGFkZCBkZXZpY2UgMDAwMDowODowMC4wDQooWEVO
-KSBbMjAxMi0wOS0wMSAyMjoyNjo1NF0gUENJIGFkZCBkZXZpY2UgMDAwMDowNzowMC4wDQoo
-WEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1NF0gUENJIGFkZCBkZXZpY2UgMDAwMDowNjowMC4w
-DQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1NF0gUENJIGFkZCBkZXZpY2UgMDAwMDowNjow
-MC4xDQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1NF0gUENJIGFkZCBkZXZpY2UgMDAwMDow
-NTowMC4wDQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1NF0gUENJIGFkZCBkZXZpY2UgMDAw
-MDowNDowMC4wDQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1NF0gUENJIGFkZCBkZXZpY2Ug
-MDAwMDowNDowMC4xDQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1NF0gUENJIGFkZCBkZXZp
-Y2UgMDAwMDowNDowMC4yDQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1NF0gUENJIGFkZCBk
-ZXZpY2UgMDAwMDowNDowMC4zDQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1NF0gUENJIGFk
-ZCBkZXZpY2UgMDAwMDowNDowMC40DQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1NF0gUENJ
-IGFkZCBkZXZpY2UgMDAwMDowNDowMC41DQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1NF0g
-UENJIGFkZCBkZXZpY2UgMDAwMDowNDowMC42DQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1
-NF0gUENJIGFkZCBkZXZpY2UgMDAwMDowNDowMC43DQooWEVOKSBbMjAxMi0wOS0wMSAyMjoy
-Njo1NF0gUENJIGFkZCBkZXZpY2UgMDAwMDowMzowNi4wDQooWEVOKSBbMjAxMi0wOS0wMSAy
-MjoyNjo1NF0gSU9BUElDWzBdOiBTZXQgUENJIHJvdXRpbmcgZW50cnkgKDYtOCAtPiAweDU4
-IC0+IElSUSA4IE1vZGU6MCBBY3RpdmU6MCkNCihYRU4pIFsyMDEyLTA5LTAxIDIyOjI2OjU0
-XSBJT0FQSUNbMF06IFNldCBQQ0kgcm91dGluZyBlbnRyeSAoNi0xMyAtPiAweDg4IC0+IElS
-USAxMyBNb2RlOjAgQWN0aXZlOjApDQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1NF0gSU9B
-UElDWzFdOiBTZXQgUENJIHJvdXRpbmcgZW50cnkgKDctMjggLT4gMHhhMCAtPiBJUlEgNTIg
-TW9kZToxIEFjdGl2ZToxKQ0KKFhFTikgWzIwMTItMDktMDEgMjI6MjY6NTRdIElPQVBJQ1sx
-XTogU2V0IFBDSSByb3V0aW5nIGVudHJ5ICg3LTI5IC0+IDB4YTggLT4gSVJRIDUzIE1vZGU6
-MSBBY3RpdmU6MSkNCihYRU4pIFsyMDEyLTA5LTAxIDIyOjI2OjU0XSBJT0FQSUNbMV06IFNl
-dCBQQ0kgcm91dGluZyBlbnRyeSAoNy0zMCAtPiAweGIwIC0+IElSUSA1NCBNb2RlOjEgQWN0
-aXZlOjEpDQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1NF0gSU9BUElDWzBdOiBTZXQgUENJ
-IHJvdXRpbmcgZW50cnkgKDYtMTYgLT4gMHhiOCAtPiBJUlEgMTYgTW9kZToxIEFjdGl2ZTox
-KQ0KKFhFTikgWzIwMTItMDktMDEgMjI6MjY6NTRdIElPQVBJQ1swXTogU2V0IFBDSSByb3V0
-aW5nIGVudHJ5ICg2LTE4IC0+IDB4YzAgLT4gSVJRIDE4IE1vZGU6MSBBY3RpdmU6MSkNCihY
-RU4pIFsyMDEyLTA5LTAxIDIyOjI2OjU0XSBJT0FQSUNbMF06IFNldCBQQ0kgcm91dGluZyBl
-bnRyeSAoNi0xNyAtPiAweGM4IC0+IElSUSAxNyBNb2RlOjEgQWN0aXZlOjEpDQooWEVOKSBb
-MjAxMi0wOS0wMSAyMjoyNjo1NF0gSU9BUElDWzFdOiBTZXQgUENJIHJvdXRpbmcgZW50cnkg
-KDctNCAtPiAweGQwIC0+IElSUSAyOCBNb2RlOjEgQWN0aXZlOjEpDQooWEVOKSBbMjAxMi0w
-OS0wMSAyMjoyNjo1NF0gSU9BUElDWzFdOiBTZXQgUENJIHJvdXRpbmcgZW50cnkgKDctNSAt
-PiAweGQ4IC0+IElSUSAyOSBNb2RlOjEgQWN0aXZlOjEpDQooWEVOKSBbMjAxMi0wOS0wMSAy
-MjoyNjo1NV0gSU9BUElDWzFdOiBTZXQgUENJIHJvdXRpbmcgZW50cnkgKDctNiAtPiAweDIx
-IC0+IElSUSAzMCBNb2RlOjEgQWN0aXZlOjEpDQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1
-NV0gSU9BUElDWzFdOiBTZXQgUENJIHJvdXRpbmcgZW50cnkgKDctNyAtPiAweDI5IC0+IElS
-USAzMSBNb2RlOjEgQWN0aXZlOjEpDQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1NV0gSU9B
-UElDWzFdOiBTZXQgUENJIHJvdXRpbmcgZW50cnkgKDctMTYgLT4gMHgzMSAtPiBJUlEgNDAg
-TW9kZToxIEFjdGl2ZToxKQ0KKFhFTikgWzIwMTItMDktMDEgMjI6MjY6NTVdIElPQVBJQ1sx
-XTogU2V0IFBDSSByb3V0aW5nIGVudHJ5ICg3LTE3IC0+IDB4MzkgLT4gSVJRIDQxIE1vZGU6
-MSBBY3RpdmU6MSkNCihYRU4pIFsyMDEyLTA5LTAxIDIyOjI2OjU1XSBJT0FQSUNbMV06IFNl
-dCBQQ0kgcm91dGluZyBlbnRyeSAoNy0xOCAtPiAweDQxIC0+IElSUSA0MiBNb2RlOjEgQWN0
-aXZlOjEpDQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyNjo1NV0gSU9BUElDWzFdOiBTZXQgUENJ
-IHJvdXRpbmcgZW50cnkgKDctMTkgLT4gMHg0OSAtPiBJUlEgNDMgTW9kZToxIEFjdGl2ZTox
-KQ0KKFhFTikgWzIwMTItMDktMDEgMjI6MjY6NTVdIElPQVBJQ1swXTogU2V0IFBDSSByb3V0
-aW5nIGVudHJ5ICg2LTIyIC0+IDB4OTkgLT4gSVJRIDIyIE1vZGU6MSBBY3RpdmU6MSkNCihY
-RU4pIFsyMDEyLTA5LTAxIDIyOjI2OjU1XSBJT0FQSUNbMV06IFNldCBQQ0kgcm91dGluZyBl
-bnRyeSAoNy0xMiAtPiAweGExIC0+IElSUSAzNiBNb2RlOjEgQWN0aXZlOjEpDQooWEVOKSBb
-MjAxMi0wOS0wMSAyMjoyNjo1NV0gSU9BUElDWzFdOiBTZXQgUENJIHJvdXRpbmcgZW50cnkg
-KDctMjMgLT4gMHhhOSAtPiBJUlEgNDcgTW9kZToxIEFjdGl2ZToxKQ0KKFhFTikgWzIwMTIt
-MDktMDEgMjI6MjY6NTZdIElPQVBJQ1swXTogU2V0IFBDSSByb3V0aW5nIGVudHJ5ICg2LTE5
-IC0+IDB4YjEgLT4gSVJRIDE5IE1vZGU6MSBBY3RpdmU6MSkNCihYRU4pIFsyMDEyLTA5LTAx
-IDIyOjI2OjU2XSBJT0FQSUNbMV06IFNldCBQQ0kgcm91dGluZyBlbnRyeSAoNy0yMiAtPiAw
-eGMxIC0+IElSUSA0NiBNb2RlOjEgQWN0aXZlOjEpDQooWEVOKSBbMjAxMi0wOS0wMSAyMjoy
-Njo1Nl0gSU9BUElDWzFdOiBTZXQgUENJIHJvdXRpbmcgZW50cnkgKDctMjcgLT4gMHhkMSAt
-PiBJUlEgNTEgTW9kZToxIEFjdGl2ZToxKQ0KKFhFTikgWzIwMTItMDktMDEgMjI6MjY6NThd
-IElPQVBJQ1sxXTogU2V0IFBDSSByb3V0aW5nIGVudHJ5ICg3LTkgLT4gMHgyMiAtPiBJUlEg
-MzMgTW9kZToxIEFjdGl2ZToxKQ0KKFhFTikgWzIwMTItMDktMDEgMjI6Mjc6NTldIHRyYXBz
-LmM6MjU4NDpkMSBEb21haW4gYXR0ZW1wdGVkIFdSTVNSIDAwMDAwMDAwYzAwMTAwMDQgZnJv
-bSAweDAwMDBhMTk1YzQwZjYxOGYgdG8gMHgwMDAwMDAwMDAwMDBhYmNkLg0KKFhFTikgWzIw
-MTItMDktMDEgMjI6Mjg6MDVdIHRyYXBzLmM6MjU4NDpkMiBEb21haW4gYXR0ZW1wdGVkIFdS
-TVNSIDAwMDAwMDAwYzAwMTAwMDQgZnJvbSAweDAwMDA2ZmIwMzlkZTc5MDAgdG8gMHgwMDAw
-MDAwMDAwMDBhYmNkLg0KKFhFTikgWzIwMTItMDktMDEgMjI6Mjg6MTddIHRyYXBzLmM6MjU4
-NDpkMyBEb21haW4gYXR0ZW1wdGVkIFdSTVNSIDAwMDAwMDAwYzAwMTAwMDQgZnJvbSAweDAw
-MDBhMTk1YzQwZjYxOGYgdG8gMHgwMDAwMDAwMDAwMDBhYmNkLg0KKFhFTikgWzIwMTItMDkt
-MDEgMjI6Mjg6MTddIHRyYXBzLmM6MjU4NDpkNCBEb21haW4gYXR0ZW1wdGVkIFdSTVNSIDAw
-MDAwMDAwYzAwMTAwMDQgZnJvbSAweDAwMDA4Njc5YzAyYjQxNjUgdG8gMHgwMDAwMDAwMDAw
-MDBhYmNkLg0KKFhFTikgWzIwMTItMDktMDEgMjI6Mjg6MjNdIHRyYXBzLmM6MjU4NDpkNSBE
-b21haW4gYXR0ZW1wdGVkIFdSTVNSIDAwMDAwMDAwYzAwMTAwMDQgZnJvbSAweDAwMDA2ZmIw
-MzlkZTc5MDAgdG8gMHgwMDAwMDAwMDAwMDBhYmNkLg0KKFhFTikgWzIwMTItMDktMDEgMjI6
-Mjg6MzBdIHRyYXBzLmM6MjU4NDpkNiBEb21haW4gYXR0ZW1wdGVkIFdSTVNSIDAwMDAwMDAw
-YzAwMTAwMDQgZnJvbSAweDAwMDBhMTk1YzQwZjYxOGYgdG8gMHgwMDAwMDAwMDAwMDBhYmNk
-Lg0KKFhFTikgWzIwMTItMDktMDEgMjI6Mjg6MzZdIHRyYXBzLmM6MjU4NDpkNyBEb21haW4g
-YXR0ZW1wdGVkIFdSTVNSIDAwMDAwMDAwYzAwMTAwMDQgZnJvbSAweDAwMDBhMTk1YzQwZjYx
-OGYgdG8gMHgwMDAwMDAwMDAwMDBhYmNkLg0KKFhFTikgWzIwMTItMDktMDEgMjI6Mjg6NDJd
-IHRyYXBzLmM6MjU4NDpkOCBEb21haW4gYXR0ZW1wdGVkIFdSTVNSIDAwMDAwMDAwYzAwMTAw
-MDQgZnJvbSAweDAwMDA2ZmIwMzlkZTc5MDAgdG8gMHgwMDAwMDAwMDAwMDBhYmNkLg0KKFhF
-TikgWzIwMTItMDktMDEgMjI6Mjg6NDhdIHRyYXBzLmM6MjU4NDpkOSBEb21haW4gYXR0ZW1w
-dGVkIFdSTVNSIDAwMDAwMDAwYzAwMTAwMDQgZnJvbSAweDAwMDBhMTk1YzQwZjYxOGYgdG8g
-MHgwMDAwMDAwMDAwMDBhYmNkLg0KKFhFTikgWzIwMTItMDktMDEgMjI6Mjg6NTVdIHRyYXBz
-LmM6MjU4NDpkMTAgRG9tYWluIGF0dGVtcHRlZCBXUk1TUiAwMDAwMDAwMGMwMDEwMDA0IGZy
-b20gMHgwMDAwNmZiMDM5ZGU3OTAwIHRvIDB4MDAwMDAwMDAwMDAwYWJjZC4NCihYRU4pIFsy
-MDEyLTA5LTAxIDIyOjI5OjAyXSBBTUQtVmk6IERpc2FibGU6IGRldmljZSBpZCA9IDB4MDBh
-NCwgZG9tYWluID0gMCwgcGFnaW5nIG1vZGUgPSAzDQooWEVOKSBbMjAxMi0wOS0wMSAyMjoy
-OTowMl0gQU1ELVZpOiBTZXR1cCBJL08gcGFnZSB0YWJsZTogZGV2aWNlIGlkID0gMHgwMGE0
-LCByb290IHRhYmxlID0gMHgxOGUwYTEwMDAsIGRvbWFpbiA9IDExLCBwYWdpbmcgbW9kZSA9
-IDMNCihYRU4pIFsyMDEyLTA5LTAxIDIyOjI5OjAyXSBBTUQtVmk6IFJlLWFzc2lnbiAwMDAw
-OjAzOjA2LjAgZnJvbSBkb20wIHRvIGRvbTExDQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyOTow
-Ml0gdHJhcHMuYzoyNTg0OmQxMSBEb21haW4gYXR0ZW1wdGVkIFdSTVNSIDAwMDAwMDAwYzAw
-MTAwMDQgZnJvbSAweDAwMDA4Njc5YzAyYjQxNjUgdG8gMHgwMDAwMDAwMDAwMDBhYmNkLg0K
-KFhFTikgWzIwMTItMDktMDEgMjI6Mjk6MDhdIHRyYXBzLmM6MjU4NDpkMTIgRG9tYWluIGF0
-dGVtcHRlZCBXUk1TUiAwMDAwMDAwMGMwMDEwMDA0IGZyb20gMHgwMDAwNDIzNDVhMGRhNTQ1
-IHRvIDB4MDAwMDAwMDAwMDAwYWJjZC4NCihYRU4pIFsyMDEyLTA5LTAxIDIyOjI5OjE1XSB0
-cmFwcy5jOjI1ODQ6ZDEzIERvbWFpbiBhdHRlbXB0ZWQgV1JNU1IgMDAwMDAwMDBjMDAxMDAw
-NCBmcm9tIDB4MDAwMDZmYjAzOWRlNzkwMCB0byAweDAwMDAwMDAwMDAwMGFiY2QuDQooWEVO
-KSBbMjAxMi0wOS0wMSAyMjoyOToyM10gQU1ELVZpOiBEaXNhYmxlOiBkZXZpY2UgaWQgPSAw
-eDBhMDAsIGRvbWFpbiA9IDAsIHBhZ2luZyBtb2RlID0gMw0KKFhFTikgWzIwMTItMDktMDEg
-MjI6Mjk6MjNdIEFNRC1WaTogU2V0dXAgSS9PIHBhZ2UgdGFibGU6IGRldmljZSBpZCA9IDB4
-MGEwMCwgcm9vdCB0YWJsZSA9IDB4MWUxZmMwMDAwLCBkb21haW4gPSAxNCwgcGFnaW5nIG1v
-ZGUgPSAzDQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyOToyM10gQU1ELVZpOiBSZS1hc3NpZ24g
-MDAwMDowYTowMC4wIGZyb20gZG9tMCB0byBkb20xNA0KKFhFTikgWzIwMTItMDktMDEgMjI6
-Mjk6MjNdIEFNRC1WaTogRGlzYWJsZTogZGV2aWNlIGlkID0gMHgwYTAxLCBkb21haW4gPSAw
-LCBwYWdpbmcgbW9kZSA9IDMNCihYRU4pIFsyMDEyLTA5LTAxIDIyOjI5OjIzXSBBTUQtVmk6
-IFNldHVwIEkvTyBwYWdlIHRhYmxlOiBkZXZpY2UgaWQgPSAweDBhMDEsIHJvb3QgdGFibGUg
-PSAweDFlMWZjMDAwMCwgZG9tYWluID0gMTQsIHBhZ2luZyBtb2RlID0gMw0KKFhFTikgWzIw
-MTItMDktMDEgMjI6Mjk6MjNdIEFNRC1WaTogUmUtYXNzaWduIDAwMDA6MGE6MDAuMSBmcm9t
-IGRvbTAgdG8gZG9tMTQNCihYRU4pIFsyMDEyLTA5LTAxIDIyOjI5OjIzXSBBTUQtVmk6IERp
-c2FibGU6IGRldmljZSBpZCA9IDB4MGEwMiwgZG9tYWluID0gMCwgcGFnaW5nIG1vZGUgPSAz
-DQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyOToyM10gQU1ELVZpOiBTZXR1cCBJL08gcGFnZSB0
-YWJsZTogZGV2aWNlIGlkID0gMHgwYTAyLCByb290IHRhYmxlID0gMHgxZTFmYzAwMDAsIGRv
-bWFpbiA9IDE0LCBwYWdpbmcgbW9kZSA9IDMNCihYRU4pIFsyMDEyLTA5LTAxIDIyOjI5OjIz
-XSBBTUQtVmk6IFJlLWFzc2lnbiAwMDAwOjBhOjAwLjIgZnJvbSBkb20wIHRvIGRvbTE0DQoo
-WEVOKSBbMjAxMi0wOS0wMSAyMjoyOToyM10gQU1ELVZpOiBEaXNhYmxlOiBkZXZpY2UgaWQg
-PSAweDBhMDMsIGRvbWFpbiA9IDAsIHBhZ2luZyBtb2RlID0gMw0KKFhFTikgWzIwMTItMDkt
-MDEgMjI6Mjk6MjNdIEFNRC1WaTogU2V0dXAgSS9PIHBhZ2UgdGFibGU6IGRldmljZSBpZCA9
-IDB4MGEwMywgcm9vdCB0YWJsZSA9IDB4MWUxZmMwMDAwLCBkb21haW4gPSAxNCwgcGFnaW5n
-IG1vZGUgPSAzDQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyOToyM10gQU1ELVZpOiBSZS1hc3Np
-Z24gMDAwMDowYTowMC4zIGZyb20gZG9tMCB0byBkb20xNA0KKFhFTikgWzIwMTItMDktMDEg
-MjI6Mjk6MjNdIEFNRC1WaTogRGlzYWJsZTogZGV2aWNlIGlkID0gMHgwYTA0LCBkb21haW4g
-PSAwLCBwYWdpbmcgbW9kZSA9IDMNCihYRU4pIFsyMDEyLTA5LTAxIDIyOjI5OjIzXSBBTUQt
-Vmk6IFNldHVwIEkvTyBwYWdlIHRhYmxlOiBkZXZpY2UgaWQgPSAweDBhMDQsIHJvb3QgdGFi
-bGUgPSAweDFlMWZjMDAwMCwgZG9tYWluID0gMTQsIHBhZ2luZyBtb2RlID0gMw0KKFhFTikg
-WzIwMTItMDktMDEgMjI6Mjk6MjNdIEFNRC1WaTogUmUtYXNzaWduIDAwMDA6MGE6MDAuNCBm
-cm9tIGRvbTAgdG8gZG9tMTQNCihYRU4pIFsyMDEyLTA5LTAxIDIyOjI5OjIzXSBBTUQtVmk6
-IERpc2FibGU6IGRldmljZSBpZCA9IDB4MGEwNSwgZG9tYWluID0gMCwgcGFnaW5nIG1vZGUg
-PSAzDQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyOToyM10gQU1ELVZpOiBTZXR1cCBJL08gcGFn
-ZSB0YWJsZTogZGV2aWNlIGlkID0gMHgwYTA1LCByb290IHRhYmxlID0gMHgxZTFmYzAwMDAs
-IGRvbWFpbiA9IDE0LCBwYWdpbmcgbW9kZSA9IDMNCihYRU4pIFsyMDEyLTA5LTAxIDIyOjI5
-OjIzXSBBTUQtVmk6IFJlLWFzc2lnbiAwMDAwOjBhOjAwLjUgZnJvbSBkb20wIHRvIGRvbTE0
-DQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyOToyM10gQU1ELVZpOiBEaXNhYmxlOiBkZXZpY2Ug
-aWQgPSAweDBhMDYsIGRvbWFpbiA9IDAsIHBhZ2luZyBtb2RlID0gMw0KKFhFTikgWzIwMTIt
-MDktMDEgMjI6Mjk6MjNdIEFNRC1WaTogU2V0dXAgSS9PIHBhZ2UgdGFibGU6IGRldmljZSBp
-ZCA9IDB4MGEwNiwgcm9vdCB0YWJsZSA9IDB4MWUxZmMwMDAwLCBkb21haW4gPSAxNCwgcGFn
-aW5nIG1vZGUgPSAzDQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyOToyM10gQU1ELVZpOiBSZS1h
-c3NpZ24gMDAwMDowYTowMC42IGZyb20gZG9tMCB0byBkb20xNA0KKFhFTikgWzIwMTItMDkt
-MDEgMjI6Mjk6MjNdIEFNRC1WaTogRGlzYWJsZTogZGV2aWNlIGlkID0gMHgwYTA3LCBkb21h
-aW4gPSAwLCBwYWdpbmcgbW9kZSA9IDMNCihYRU4pIFsyMDEyLTA5LTAxIDIyOjI5OjIzXSBB
-TUQtVmk6IFNldHVwIEkvTyBwYWdlIHRhYmxlOiBkZXZpY2UgaWQgPSAweDBhMDcsIHJvb3Qg
-dGFibGUgPSAweDFlMWZjMDAwMCwgZG9tYWluID0gMTQsIHBhZ2luZyBtb2RlID0gMw0KKFhF
-TikgWzIwMTItMDktMDEgMjI6Mjk6MjNdIEFNRC1WaTogUmUtYXNzaWduIDAwMDA6MGE6MDAu
-NyBmcm9tIGRvbTAgdG8gZG9tMTQNCihYRU4pIFsyMDEyLTA5LTAxIDIyOjI5OjIzXSBBTUQt
-Vmk6IERpc2FibGU6IGRldmljZSBpZCA9IDB4MDcwMCwgZG9tYWluID0gMCwgcGFnaW5nIG1v
-ZGUgPSAzDQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyOToyM10gQU1ELVZpOiBTZXR1cCBJL08g
-cGFnZSB0YWJsZTogZGV2aWNlIGlkID0gMHgwNzAwLCByb290IHRhYmxlID0gMHgxZTFmYzAw
-MDAsIGRvbWFpbiA9IDE0LCBwYWdpbmcgbW9kZSA9IDMNCihYRU4pIFsyMDEyLTA5LTAxIDIy
-OjI5OjIzXSBBTUQtVmk6IFJlLWFzc2lnbiAwMDAwOjA3OjAwLjAgZnJvbSBkb20wIHRvIGRv
-bTE0DQooWEVOKSBbMjAxMi0wOS0wMSAyMjoyOToyM10gdHJhcHMuYzoyNTg0OmQxNCBEb21h
-aW4gYXR0ZW1wdGVkIFdSTVNSIDAwMDAwMDAwYzAwMTAwMDQgZnJvbSAweDAwMDA2ZmIwMzlk
-ZTc5MDAgdG8gMHgwMDAwMDAwMDAwMDBhYmNkLg0KKFhFTikgWzIwMTItMDktMDEgMjI6Mjk6
-MjldIHRyYXBzLmM6MjU4NDpkMTUgRG9tYWluIGF0dGVtcHRlZCBXUk1TUiAwMDAwMDAwMGMw
-MDEwMDA0IGZyb20gMHgwMDAwNmZiMDM5ZGU3OTAwIHRvIDB4MDAwMDAwMDAwMDAwYWJjZC4N
-CihYRU4pIFsyMDEyLTA5LTAxIDIzOjA1OjE5XSBncmFudF90YWJsZS5jOjI1NDpkMCBJbmNy
-ZWFzZWQgbWFwdHJhY2sgc2l6ZSB0byAyIGZyYW1lcw0KKFhFTikgWzIwMTItMDktMDIgMDA6
-MTg6MzZdIEFNRC1WaTogSU9fUEFHRV9GQVVMVDogZG9tYWluID0gMTQsIGRldmljZSBpZCA9
-IDB4MDcwMCwgZmF1bHQgYWRkcmVzcyA9IDB4YThlZDA3ZTANCihYRU4pIFsyMDEyLTA5LTAy
-IDAwOjE4OjM2XSBBTUQtVmk6IElPX1BBR0VfRkFVTFQ6IGRvbWFpbiA9IDE0LCBkZXZpY2Ug
-aWQgPSAweDA3MDAsIGZhdWx0IGFkZHJlc3MgPSAweGE4ZWQwODAwDQooWEVOKSBbMjAxMi0w
-OS0wMiAwMDoxODozNl0gQU1ELVZpOiBJT19QQUdFX0ZBVUxUOiBkb21haW4gPSAxNCwgZGV2
-aWNlIGlkID0gMHgwNzAwLCBmYXVsdCBhZGRyZXNzID0gMHhhOGVkMDg0MA0KKFhFTikgWzIw
-MTItMDktMDIgMDA6MTg6MzZdIEFNRC1WaTogSU9fUEFHRV9GQVVMVDogZG9tYWluID0gMTQs
-IGRldmljZSBpZCA9IDB4MDcwMCwgZmF1bHQgYWRkcmVzcyA9IDB4YThlZDA4NjANCihYRU4p
-IFsyMDEyLTA5LTAyIDAwOjE4OjM2XSBBTUQtVmk6IElPX1BBR0VfRkFVTFQ6IGRvbWFpbiA9
-IDE0LCBkZXZpY2UgaWQgPSAweDA3MDAsIGZhdWx0IGFkZHJlc3MgPSAweGE4ZWQwOGMwDQoo
-WEVOKSBbMjAxMi0wOS0wMiAwMDoxODozNl0gQU1ELVZpOiBJT19QQUdFX0ZBVUxUOiBkb21h
-aW4gPSAxNCwgZGV2aWNlIGlkID0gMHgwNzAwLCBmYXVsdCBhZGRyZXNzID0gMHhhOGVkMDg4
-MA0KKFhFTikgWzIwMTItMDktMDIgMDA6MTg6MzZdIEFNRC1WaTogSU9fUEFHRV9GQVVMVDog
-ZG9tYWluID0gMTQsIGRldmljZSBpZCA9IDB4MDcwMCwgZmF1bHQgYWRkcmVzcyA9IDB4YThl
-ZDBjMDANCihYRU4pIFsyMDEyLTA5LTAyIDAwOjE4OjM2XSBBTUQtVmk6IElPX1BBR0VfRkFV
-TFQ6IGRvbWFpbiA9IDE0LCBkZXZpY2UgaWQgPSAweDA3MDAsIGZhdWx0IGFkZHJlc3MgPSAw
-eGE4ZWQwYjYwDQooWEVOKSBbMjAxMi0wOS0wMiAwMDoxODozNl0gQU1ELVZpOiBJT19QQUdF
-X0ZBVUxUOiBkb21haW4gPSAxNCwgZGV2aWNlIGlkID0gMHgwNzAwLCBmYXVsdCBhZGRyZXNz
-ID0gMHhhOGVkMGEwMA0KKFhFTikgWzIwMTItMDktMDIgMDA6MTg6MzZdIEFNRC1WaTogSU9f
-UEFHRV9GQVVMVDogZG9tYWluID0gMTQsIGRldmljZSBpZCA9IDB4MDcwMCwgZmF1bHQgYWRk
-cmVzcyA9IDB4YThlZDBjNjANCihYRU4pIFsyMDEyLTA5LTAyIDAwOjE4OjM2XSBBTUQtVmk6
-IElPX1BBR0VfRkFVTFQ6IGRvbWFpbiA9IDE0LCBkZXZpY2UgaWQgPSAweDA3MDAsIGZhdWx0
-IGFkZHJlc3MgPSAweGE4ZWQwYTQwDQooWEVOKSBbMjAxMi0wOS0wMiAwMDoxODozNl0gQU1E
-LVZpOiBJT19QQUdFX0ZBVUxUOiBkb21haW4gPSAxNCwgZGV2aWNlIGlkID0gMHgwNzAwLCBm
-YXVsdCBhZGRyZXNzID0gMHhhOGVkMGM4MA0KKFhFTikgWzIwMTItMDktMDIgMDA6MTg6MzZd
-IEFNRC1WaTogSU9fUEFHRV9GQVVMVDogZG9tYWluID0gMTQsIGRldmljZSBpZCA9IDB4MDcw
-MCwgZmF1bHQgYWRkcmVzcyA9IDB4YThlZDA4ZTANCihYRU4pIFsyMDEyLTA5LTAyIDAwOjE4
-OjM2XSBBTUQtVmk6IElPX1BBR0VfRkFVTFQ6IGRvbWFpbiA9IDE0LCBkZXZpY2UgaWQgPSAw
-eDA3MDAsIGZhdWx0IGFkZHJlc3MgPSAweGE4ZWQwYjgwDQooWEVOKSBbMjAxMi0wOS0wMiAw
-MDoxODozNl0gQU1ELVZpOiBJT19QQUdFX0ZBVUxUOiBkb21haW4gPSAxNCwgZGV2aWNlIGlk
-ID0gMHgwNzAwLCBmYXVsdCBhZGRyZXNzID0gMHhhOGVkMGE2MA0KKFhFTikgWzIwMTItMDkt
-MDIgMDA6MTg6MzZdIEFNRC1WaTogSU9fUEFHRV9GQVVMVDogZG9tYWluID0gMTQsIGRldmlj
-ZSBpZCA9IDB4MDcwMCwgZmF1bHQgYWRkcmVzcyA9IDB4YThlZDBiYzANCihYRU4pIFsyMDEy
-LTA5LTAyIDAwOjE4OjM2XSBBTUQtVmk6IElPX1BBR0VfRkFVTFQ6IGRvbWFpbiA9IDE0LCBk
-ZXZpY2UgaWQgPSAweDA3MDAsIGZhdWx0IGFkZHJlc3MgPSAweGE4ZWQwYmUwDQooWEVOKSBb
-MjAxMi0wOS0wMiAwMDoxODozNl0gQU1ELVZpOiBJT19QQUdFX0ZBVUxUOiBkb21haW4gPSAx
-NCwgZGV2aWNlIGlkID0gMHgwNzAwLCBmYXVsdCBhZGRyZXNzID0gMHhhOGVkMGE4MA0KKFhF
-TikgWzIwMTItMDktMDIgMDA6MTg6MzZdIEFNRC1WaTogSU9fUEFHRV9GQVVMVDogZG9tYWlu
-ID0gMTQsIGRldmljZSBpZCA9IDB4MDcwMCwgZmF1bHQgYWRkcmVzcyA9IDB4YThlZDBjNDAN
-CihYRU4pIFsyMDEyLTA5LTAyIDAwOjE4OjM2XSBBTUQtVmk6IElPX1BBR0VfRkFVTFQ6IGRv
-bWFpbiA9IDE0LCBkZXZpY2UgaWQgPSAweDA3MDAsIGZhdWx0IGFkZHJlc3MgPSAweGE4ZWQw
-YWUwDQooWEVOKSBbMjAxMi0wOS0wMiAwMDoxODozNl0gQU1ELVZpOiBJT19QQUdFX0ZBVUxU
-OiBkb21haW4gPSAxNCwgZGV2aWNlIGlkID0gMHgwNzAwLCBmYXVsdCBhZGRyZXNzID0gMHhh
-OGVkMDllMA0KKFhFTikgWzIwMTItMDktMDIgMDA6MTg6MzZdIEFNRC1WaTogSU9fUEFHRV9G
-QVVMVDogZG9tYWluID0gMTQsIGRldmljZSBpZCA9IDB4MDcwMCwgZmF1bHQgYWRkcmVzcyA9
-IDB4YThlZDA5ODANCihYRU4pIFsyMDEyLTA5LTAyIDAwOjE4OjM2XSBBTUQtVmk6IElPX1BB
-R0VfRkFVTFQ6IGRvbWFpbiA9IDE0LCBkZXZpY2UgaWQgPSAweDA3MDAsIGZhdWx0IGFkZHJl
-c3MgPSAweGE4ZWQwOWMwDQooWEVOKSBbMjAxMi0wOS0wMiAwMDoxODozNl0gQU1ELVZpOiBJ
-T19QQUdFX0ZBVUxUOiBkb21haW4gPSAxNCwgZGV2aWNlIGlkID0gMHgwNzAwLCBmYXVsdCBh
-ZGRyZXNzID0gMHhhOGVkMGI0MA0KKFhFTikgWzIwMTItMDktMDIgMDA6MTg6MzZdIEFNRC1W
-aTogSU9fUEFHRV9GQVVMVDogZG9tYWluID0gMTQsIGRldmljZSBpZCA9IDB4MDcwMCwgZmF1
-bHQgYWRkcmVzcyA9IDB4YThlZDBiMDANCihYRU4pIFsyMDEyLTA5LTAyIDAwOjE4OjM2XSBB
-TUQtVmk6IElPX1BBR0VfRkFVTFQ6IGRvbWFpbiA9IDE0LCBkZXZpY2UgaWQgPSAweDA3MDAs
-IGZhdWx0IGFkZHJlc3MgPSAweGE4ZWQwY2MwDQooWEVOKSBbMjAxMi0wOS0wMiAwMDoxODoz
-Nl0gQU1ELVZpOiBJT19QQUdFX0ZBVUxUOiBkb21haW4gPSAxNCwgZGV2aWNlIGlkID0gMHgw
-NzAwLCBmYXVsdCBhZGRyZXNzID0gMHhhOGVkMDk0MA0KKFhFTikgWzIwMTItMDktMDIgMDA6
-MTg6MzZdIEFNRC1WaTogSU9fUEFHRV9GQVVMVDogZG9tYWluID0gMTQsIGRldmljZSBpZCA9
-IDB4MDcwMCwgZmF1bHQgYWRkcmVzcyA9IDB4YThlZDBhYzANCihYRU4pIFsyMDEyLTA5LTAy
-IDAwOjE4OjM2XSBBTUQtVmk6IElPX1BBR0VfRkFVTFQ6IGRvbWFpbiA9IDE0LCBkZXZpY2Ug
-aWQgPSAweDA3MDAsIGZhdWx0IGFkZHJlc3MgPSAweGE4ZWQwOTAwDQooWEVOKSBbMjAxMi0w
-OS0wMiAwMDoxODozNl0gQU1ELVZpOiBJT19QQUdFX0ZBVUxUOiBkb21haW4gPSAxNCwgZGV2
-aWNlIGlkID0gMHgwNzAwLCBmYXVsdCBhZGRyZXNzID0gMHhhOGVkMDk2MA0KKFhFTikgWzIw
-MTItMDktMDIgMDA6MTg6MzZdIEFNRC1WaTogSU9fUEFHRV9GQVVMVDogZG9tYWluID0gMTQs
-IGRldmljZSBpZCA9IDB4MDcwMCwgZmF1bHQgYWRkcmVzcyA9IDB4YThlZDBjZTANCihYRU4p
-IFsyMDEyLTA5LTAyIDAwOjE4OjM2XSBBTUQtVmk6IElPX1BBR0VfRkFVTFQ6IGRvbWFpbiA9
-IDE0LCBkZXZpY2UgaWQgPSAweDA3MDAsIGZhdWx0IGFkZHJlc3MgPSAweGE4ZWQwZDQwDQoo
-WEVOKSBbMjAxMi0wOS0wMiAwMDoxODozNl0gQU1ELVZpOiBJT19QQUdFX0ZBVUxUOiBkb21h
-aW4gPSAxNCwgZGV2aWNlIGlkID0gMHgwNzAwLCBmYXVsdCBhZGRyZXNzID0gMHhhOGVkMGQw
-MA0KKFhFTikgWzIwMTItMDktMDIgMDA6MTg6MzZdIEFNRC1WaTogSU9fUEFHRV9GQVVMVDog
-ZG9tYWluID0gMTQsIGRldmljZSBpZCA9IDB4MDcwMCwgZmF1bHQgYWRkcmVzcyA9IDB4YThl
-ZDBkNjANCihYRU4pIFsyMDEyLTA5LTAyIDAwOjU1OjAyXSB0cmFwcy5jOjMxNTY6IEdQRiAo
-MDA2MCk6IGZmZmY4MmM0ODAxNWM5ZWUgLT4gZmZmZjgyYzQ4MDIyNGIxMw0KKFhFTikgWzIw
-MTItMDktMDIgMDQ6MjE6MjNdIEFNRC1WaTogSU9fUEFHRV9GQVVMVDogZG9tYWluID0gMTQs
-IGRldmljZSBpZCA9IDB4MGEwNiwgZmF1bHQgYWRkcmVzcyA9IDB4YTliMGYwODANCihYRU4p
-IFsyMDEyLTA5LTAyIDA0OjIxOjIzXSBBTUQtVmk6IElPX1BBR0VfRkFVTFQ6IGRvbWFpbiA9
-IDE0LCBkZXZpY2UgaWQgPSAweDBhMDYsIGZhdWx0IGFkZHJlc3MgPSAweGE5YjBmMDQwDQo=
-------------03516D00221173D65
-Content-Type: text/plain; charset="us-ascii"
-MIME-Version: 1.0
-Content-Transfer-Encoding: 7bit
-Content-Disposition: inline
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
-------------03516D00221173D65--
-
-
-
diff --git a/test/corpus/<4610648186.20120904090841@eikelenboom.it> b/test/corpus/<4610648186.20120904090841@eikelenboom.it>
deleted file mode 100644 (file)
index 557eb27..0000000
+++ /dev/null
@@ -1,1319 +0,0 @@
-From xen-devel-bounces@lists.xen.org Tue Sep 04 08:14:14 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Tue, 04 Sep 2012 08:14:14 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T8nKi-0001Gm-9e
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 04 Sep 2012 08:14:14 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T8nFl-0001j9-5S; Tue, 04 Sep 2012 07:08:53 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <linux@eikelenboom.it>) id 1T8nFj-0001iw-77
-       for xen-devel@lists.xen.org; Tue, 04 Sep 2012 07:08:51 +0000
-Received: from [85.158.143.35:59501] by server-2.bemta-4.messagelabs.com id
-       BC/9F-21239-209A5405; Tue, 04 Sep 2012 07:08:50 +0000
-X-Env-Sender: linux@eikelenboom.it
-X-Msg-Ref: server-11.tower-21.messagelabs.com!1346742525!11383691!1
-X-Originating-IP: [188.40.164.121]
-X-SpamReason: No, hits=0.5 required=7.0 tests=BODY_RANDOM_LONG
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 11634 invoked from network); 4 Sep 2012 07:08:46 -0000
-Received: from static.121.164.40.188.clients.your-server.de (HELO
-       smtp.eikelenboom.it) (188.40.164.121)
-       by server-11.tower-21.messagelabs.com with AES256-SHA encrypted SMTP;
-       4 Sep 2012 07:08:46 -0000
-Received: from 26-69-ftth.onsneteindhoven.nl ([88.159.69.26]:49230
-       helo=[172.16.1.20])
-       by smtp.eikelenboom.it with esmtpsa (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72) (envelope-from <linux@eikelenboom.it>)
-       id 1T8nCY-00021c-QM; Tue, 04 Sep 2012 09:05:35 +0200
-Date: Tue, 4 Sep 2012 09:08:41 +0200
-From: Sander Eikelenboom <linux@eikelenboom.it>
-Organization: Eikelenboom IT services
-X-Priority: 3 (Normal)
-Message-ID: <4610648186.20120904090841@eikelenboom.it>
-To: "Jan Beulich" <JBeulich@suse.com>
-In-Reply-To: <5044849002000078000982EA@nat28.tlf.novell.com>
-References: <7914B38A4445B34AA16EB9F1352942F1012F0F6F4B98@SJCPMAILBOX01.citrite.net>
-       <CC681CDD.3D966%keir.xen@gmail.com>
-       <40501859.20120902104331@eikelenboom.it>
-       <5044849002000078000982EA@nat28.tlf.novell.com>
-MIME-Version: 1.0
-Content-Type: multipart/mixed;
- boundary="----------05A1A81AE2E0F0B49"
-Cc: "wei.wang2@amd.com" <wei.wang2@amd.com>, Keir Fraser <keir.xen@gmail.com>,
-       Santosh Jodh <Santosh.Jodh@citrix.com>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] Using debug-key 'o:  Dump IOMMU p2m table,
-       locks up machine
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-------------05A1A81AE2E0F0B49
-Content-Type: text/plain; charset=us-ascii
-Content-Transfer-Encoding: 7bit
-
-Hello Jan,
-
-Monday, September 3, 2012, 10:21:04 AM, you wrote:
-
->>>> On 02.09.12 at 10:43, Sander Eikelenboom <linux@eikelenboom.it> wrote:
->> I have attached new output from xl dmesg, this time with iommu=debug on (the 
->> option changed from 4.1 to 4.2).
-
-> This one
-
->>(XEN) [2012-09-02 00:55:02] traps.c:3156: GPF (0060): ffff82c48015c9ee -> ffff82c480224b13
-
-> also worries me. While Xen gracefully recovers from it, these
-> messages still generally indicate a problem somewhere. Could
-> you resolve the addresses to file:line tuples? And, assuming
-> this happens in the context of doing something on behalf of
-> the guest in the context of a guest vCPU, could you also
-> check what guest side action triggers this (e.g. by adding a
-> call to show_execution_state() alongside the printing of the
-> message)?
-
-Hope i have done it right:
-
-diff -r a0b5f8102a00 xen/arch/x86/traps.c
---- a/xen/arch/x86/traps.c      Tue Aug 28 22:40:45 2012 +0100
-+++ b/xen/arch/x86/traps.c      Tue Sep 04 08:53:54 2012 +0200
-@@ -3154,6 +3154,11 @@
-     {
-         dprintk(XENLOG_INFO, "GPF (%04x): %p -> %p\n",
-                 regs->error_code, _p(regs->eip), _p(fixup));
-+        dprintk(XENLOG_INFO, " show_execution_state(regs): \n");
-+       show_execution_state(regs);
-+        dprintk(XENLOG_INFO, "  show_execution_state(guest_cpu_user_regs()): \n");
-+       show_execution_state(guest_cpu_user_regs());
-+
-         regs->eip = fixup;
-         return;
-     }
-
-
-Gives (complete dmesg attached:
-
-(XEN) [2012-09-03 21:20:49] AMD-Vi: IO_PAGE_FAULT: domain = 14, device id = 0x0700, fault address = 0xa8ee82c0
-(XEN) [2012-09-03 21:20:49] AMD-Vi: IO_PAGE_FAULT: domain = 14, device id = 0x0700, fault address = 0xa8ee8320
-(XEN) [2012-09-04 03:00:34] traps.c:3156: GPF (0060): ffff82c48015c9ee -> ffff82c480224b73
-(XEN) [2012-09-04 03:00:34] traps.c:3157:  show_execution_state(regs): 
-(XEN) [2012-09-04 03:00:34] ----[ Xen-4.2.0-rc4-pre  x86_64  debug=y  Not tainted ]----
-(XEN) [2012-09-04 03:00:34] CPU:    3
-(XEN) [2012-09-04 03:00:34] RIP:    e008:[<ffff82c48015c9ee>] context_switch+0x394/0xeeb
-(XEN) [2012-09-04 03:00:34] RFLAGS: 0000000000010246   CONTEXT: hypervisor
-(XEN) [2012-09-04 03:00:34] rax: 0000000000000001   rbx: ffff8300a52da000   rcx: 0000000000000001
-(XEN) [2012-09-04 03:00:34] rdx: 0000000000000063   rsi: 0000000000000001   rdi: 000000000000037e
-(XEN) [2012-09-04 03:00:34] rbp: ffff83024d8a7e28   rsp: ffff83024d8a7d88   r8:  0000000000000006
-(XEN) [2012-09-04 03:00:34] r9:  ffff83024d95ebb8   r10: 00000000deadbeef   r11: 0000000000000246
-(XEN) [2012-09-04 03:00:34] r12: ffff8300afd11000   r13: 0000000000000003   r14: 0000000000000003
-(XEN) [2012-09-04 03:00:34] r15: ffff83024d8aa048   cr0: 000000008005003b   cr4: 00000000000006f0
-(XEN) [2012-09-04 03:00:34] cr3: 0000000068506000   cr2: ffffffffff600400
-(XEN) [2012-09-04 03:00:34] ds: 0000   es: 0000   fs: 0000   gs: 0000   ss: e010   cs: e008
-(XEN) [2012-09-04 03:00:34] Xen stack trace from rsp=ffff83024d8a7d88:
-(XEN) [2012-09-04 03:00:34]    0000000000000029 0000000000000000 0000001e00000000 0000000000000000
-(XEN) [2012-09-04 03:00:34]    ffff83024d8a7db8 ffff83024d8aa060 ffff83024d8a7e18 ffff82c4801805ae
-(XEN) [2012-09-04 03:00:34]    0000000000012f22 00003fd9ab6d6ca6 0000000000000000 0000000000000000
-(XEN) [2012-09-04 03:00:34]    0000000000000000 0000000000000000 ffff83024d8a7e28 ffff8300afd11000
-(XEN) [2012-09-04 03:00:34]    ffff8300a52da000 000013ebba37e10c 0000000000000002 ffff83024d8aa048
-(XEN) [2012-09-04 03:00:34]    ffff83024d8a7eb8 ffff82c480124a70 0000000000000000 ffff83024d8aa040
-(XEN) [2012-09-04 03:00:34]    000000034d8a7e68 000013ebba37e10c ffff83024d8a7e88 ffff82c480189483
-(XEN) [2012-09-04 03:00:34]    ffff8300a52da000 0000000001c9c380 ffff83024d8a7e00 ffff82c4801226ce
-(XEN) [2012-09-04 03:00:34]    ffff83024d8a7ef8 ffff82c4802d8180 00000000ffffffff ffff82c4802d8000
-(XEN) [2012-09-04 03:00:34]    ffff83024d8a7f18 ffffffffffffffff ffff83024d8a7ef8 ffff82c480125e31
-(XEN) [2012-09-04 03:00:34]    0000000000000246 ffff8300afd11000 ffffffff81ece5d8 ffffffff81f420c0
-(XEN) [2012-09-04 03:00:34]    0000000000000000 0000000000000000 ffff83024d8a7f08 ffff82c480125e68
-(XEN) [2012-09-04 03:00:34]    00007cfdb27580c7 ffff82c480222ef6 0000000000000000 ffff8800030e14a0
-(XEN) [2012-09-04 03:00:34]    0000000000000000 ffff88001a0800d8 ffff88001cd17bf0 ffff88001fc0b100
-(XEN) [2012-09-04 03:00:34]    0000000000000202 0000000000000000 0000000000000001 0000000000000000
-(XEN) [2012-09-04 03:00:34]    0000000000000000 ffffffff810011aa ffff88001e99e180 00000000deadbeef
-(XEN) [2012-09-04 03:00:34]    00000000deadbeef 0000010000000000 ffffffff810011aa 000000000000e033
-(XEN) [2012-09-04 03:00:34]    0000000000000202 ffff88001cd17bb8 000000000000e02b 000053fd0000beef
-(XEN) [2012-09-04 03:00:34]    800000000000beef 740000000000beef 000000000018beef 000053fe00000003
-(XEN) [2012-09-04 03:00:34]    ffff8300a52da000 0000003dcd5a8680 000000000018e0c9
-(XEN) [2012-09-04 03:00:34] Xen call trace:
-(XEN) [2012-09-04 03:00:34]    [<ffff82c48015c9ee>] context_switch+0x394/0xeeb
-(XEN) [2012-09-04 03:00:34]    [<ffff82c480124a70>] schedule+0x666/0x675
-(XEN) [2012-09-04 03:00:34]    [<ffff82c480125e31>] __do_softirq+0xa4/0xb5
-(XEN) [2012-09-04 03:00:34]    [<ffff82c480125e68>] do_softirq+0x26/0x28
-(XEN) [2012-09-04 03:00:34]    
-(XEN) [2012-09-04 03:00:34] traps.c:3159:   show_execution_state(guest_cpu_user_regs()): 
-(XEN) [2012-09-04 03:00:34] ----[ Xen-4.2.0-rc4-pre  x86_64  debug=y  Not tainted ]----
-(XEN) [2012-09-04 03:00:34] CPU:    3
-(XEN) [2012-09-04 03:00:34] RIP:    e033:[<ffffffff810011aa>]
-(XEN) [2012-09-04 03:00:34] RFLAGS: 0000000000000202   EM: 1   CONTEXT: pv guest
-(XEN) [2012-09-04 03:00:34] rax: 0000000000000000   rbx: ffff88001fc0b100   rcx: ffffffff810011aa
-(XEN) [2012-09-04 03:00:34] rdx: ffff88001e99e180   rsi: 00000000deadbeef   rdi: 00000000deadbeef
-(XEN) [2012-09-04 03:00:34] rbp: ffff88001cd17bf0   rsp: ffff88001cd17bb8   r8:  0000000000000000
-(XEN) [2012-09-04 03:00:34] r9:  0000000000000001   r10: 0000000000000000   r11: 0000000000000202
-(XEN) [2012-09-04 03:00:34] r12: ffff88001a0800d8   r13: 0000000000000000   r14: ffff8800030e14a0
-(XEN) [2012-09-04 03:00:34] r15: 0000000000000000   cr0: 000000008005003b   cr4: 00000000000006f0
-(XEN) [2012-09-04 03:00:34] cr3: 0000000068506000   cr2: 00000000f76e4000
-(XEN) [2012-09-04 03:00:34] ds: 0000   es: 0000   fs: 0000   gs: 0000   ss: e02b   cs: e033
-(XEN) [2012-09-04 03:00:34] Guest stack trace from rsp=ffff88001cd17bb8:
-(XEN) [2012-09-04 03:00:34]    0000000000000000 0000000000000001 ffffffff81004942 ffff8800030e1040
-(XEN) [2012-09-04 03:00:34]    ffff88001e99e180 0000000000000000 ffff8800030e14a0 ffff88001cd17c10
-(XEN) [2012-09-04 03:00:34]    ffffffff81003941 ffff88001e99e180 ffff8800030e1040 ffff88001cd17c70
-(XEN) [2012-09-04 03:00:34]    ffffffff8100b850 ffff8800030e1040 ffff88001d280080 0000000000000063
-(XEN) [2012-09-04 03:00:34]    ffff88001fc10a80 ffff88001cd17c80 ffff88001fc12e80 0000000000000000
-(XEN) [2012-09-04 03:00:34]    ffff88001d285b00 0000000000000000 0000000000000000 ffff8800030e1040
-(XEN) [2012-09-04 03:00:34]    ffffffff817fa2f5 ffff88001cd17dd0 0000000000000216 ffffffff810700fe
-(XEN) [2012-09-04 03:00:34]    ffff88001fc0e018 ffff8800030e1040 0000000000012e80 ffff88001cd17fd8
-(XEN) [2012-09-04 03:00:34]    ffff88001cd16010 0000000000012e80 0000000000012e80 ffff88001cd17fd8
-(XEN) [2012-09-04 03:00:34]    0000000000012e80 ffff88001e999040 ffff8800030e1040 ffff880000000000
-(XEN) [2012-09-04 03:00:34]    ffff880000000000 ffff88001fc0e000 ffff88001cdb3300 ffff88001fc16e00
-(XEN) [2012-09-04 03:00:34]    ffff88001fc0e000 ffff88001cd17d50 ffffffff817fb614 ffff88001d08c140
-(XEN) [2012-09-04 03:00:34]    ffff88001cdb3300 ffff88001fc16e00 ffff88001fc0e000 ffff88001cd17de0
-(XEN) [2012-09-04 03:00:34]    ffffffff8107f059 ffff8800030e1040 ffff8800030e1040 ffffffff817fbe7b
-(XEN) [2012-09-04 03:00:34]    ffff88001fc0e448 ffff8800030e1040 ffff88001cdb3320 ffff88001cd17db0
-(XEN) [2012-09-04 03:00:34]    ffffffff810acb78 ffff88001fc0e000 ffff88001cdb3300 ffff88001fc0e438
-(XEN) [2012-09-04 03:00:34]    ffff88001fc0e448 ffff8800030e1040 ffff88001cdb3320 ffff88001cd17de0
-(XEN) [2012-09-04 03:00:34]    ffffffff817fa814 ffff88001cd17eb0 ffffffff8107f6f9 0000000000000000
-(XEN) [2012-09-04 03:00:34]    ffff88001cd17e50 ffff8800030e1040 ffff88001cd16010 ffff8800030e0240
-(XEN) [2012-09-04 03:00:34]    ffff88001cd17e68 ffff8800030e1040 ffff8800030e1040 ffff8800030e1040
-(XEN) [2012-09-04 03:15:12] grant_table.c:254:d0 Increased maptrack size to 2 frames
-
-
-> Jan
-
-------------05A1A81AE2E0F0B49
-Content-Type: text/plain;
- name="xl-dmesg.txt"
-Content-transfer-encoding: base64
-Content-Disposition: attachment;
- filename="xl-dmesg.txt"
-
-IF9fICBfXyAgICAgICAgICAgIF8gIF8gICAgX19fXyAgICBfX18gICAgICAgICAgICAgIF8g
-IF8gICAgICAgICAgICAgICAgICAgICANCiBcIFwvIC9fX18gXyBfXyAgIHwgfHwgfCAgfF9f
-XyBcICAvIF8gXCAgICBfIF9fIF9fX3wgfHwgfCAgICAgXyBfXyAgXyBfXyBfX18gDQogIFwg
-IC8vIF8gXCAnXyBcICB8IHx8IHxfICAgX18pIHx8IHwgfCB8X198ICdfXy8gX198IHx8IHxf
-IF9ffCAnXyBcfCAnX18vIF8gXA0KICAvICBcICBfXy8gfCB8IHwgfF9fICAgX3wgLyBfXy8g
-fCB8X3wgfF9ffCB8IHwgKF9ffF9fICAgX3xfX3wgfF8pIHwgfCB8ICBfXy8NCiAvXy9cX1xf
-X198X3wgfF98ICAgIHxffChfKV9fX19fKF8pX19fLyAgIHxffCAgXF9fX3wgIHxffCAgICB8
-IC5fXy98X3wgIFxfX198DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
-ICAgICAgICAgICAgICAgICAgICAgICAgfF98ICAgICAgICAgICAgIA0KKFhFTikgWGVuIHZl
-cnNpb24gNC4yLjAtcmM0LXByZSAocm9vdEBkeW5kbnMub3JnKSAoZ2NjIChEZWJpYW4gNC40
-LjUtOCkgNC40LjUpIE1vbiBTZXAgIDMgMjI6MzY6MzAgQ0VTVCAyMDEyDQooWEVOKSBMYXRl
-c3QgQ2hhbmdlU2V0OiBUdWUgQXVnIDI4IDIyOjQwOjQ1IDIwMTIgKzAxMDAgMjU3ODY6YTBi
-NWY4MTAyYTAwDQooWEVOKSBCb290bG9hZGVyOiBHUlVCIDEuOTgrMjAxMDA4MDQtMTQrc3F1
-ZWV6ZTENCihYRU4pIENvbW1hbmQgbGluZTogZG9tMF9tZW09MTAyNE0gbG9nbHZsPWFsbCBs
-b2dsdmxfZ3Vlc3Q9YWxsIGNvbnNvbGVfdGltZXN0YW1wcyB2Z2E9Z2Z4LTEyODB4MTAyNHgz
-MiBjcHVpZGxlIGNwdWZyZXE9eGVuIG5vcmVib290IGRlYnVnIGxhcGljPWRlYnVnIGFwaWNf
-dmVyYm9zaXR5PWRlYnVnIGFwaWM9ZGVidWcgaW9tbXU9b24sdmVyYm9zZSxkZWJ1ZyBjb20x
-PTM4NDAwLDhuMSBjb25zb2xlPXZnYSxjb20xDQooWEVOKSBWaWRlbyBpbmZvcm1hdGlvbjoN
-CihYRU4pICBWR0EgaXMgZ3JhcGhpY3MgbW9kZSAxMjgweDEwMjQsIDMyIGJwcA0KKFhFTikg
-IFZCRS9EREMgbWV0aG9kczogVjI7IEVESUQgdHJhbnNmZXIgdGltZTogMSBzZWNvbmRzDQoo
-WEVOKSBEaXNjIGluZm9ybWF0aW9uOg0KKFhFTikgIEZvdW5kIDIgTUJSIHNpZ25hdHVyZXMN
-CihYRU4pICBGb3VuZCAyIEVERCBpbmZvcm1hdGlvbiBzdHJ1Y3R1cmVzDQooWEVOKSBYZW4t
-ZTgyMCBSQU0gbWFwOg0KKFhFTikgIDAwMDAwMDAwMDAwMDAwMDAgLSAwMDAwMDAwMDAwMDli
-MDAwICh1c2FibGUpDQooWEVOKSAgMDAwMDAwMDAwMDA5YjAwMCAtIDAwMDAwMDAwMDAwYTAw
-MDAgKHJlc2VydmVkKQ0KKFhFTikgIDAwMDAwMDAwMDAwZTQwMDAgLSAwMDAwMDAwMDAwMTAw
-MDAwIChyZXNlcnZlZCkNCihYRU4pICAwMDAwMDAwMDAwMTAwMDAwIC0gMDAwMDAwMDBhZmU5
-MDAwMCAodXNhYmxlKQ0KKFhFTikgIDAwMDAwMDAwYWZlOTAwMDAgLSAwMDAwMDAwMGFmZTll
-MDAwIChBQ1BJIGRhdGEpDQooWEVOKSAgMDAwMDAwMDBhZmU5ZTAwMCAtIDAwMDAwMDAwYWZl
-ZTAwMDAgKEFDUEkgTlZTKQ0KKFhFTikgIDAwMDAwMDAwYWZlZTAwMDAgLSAwMDAwMDAwMGFm
-ZjAwMDAwIChyZXNlcnZlZCkNCihYRU4pICAwMDAwMDAwMGZmZTAwMDAwIC0gMDAwMDAwMDEw
-MDAwMDAwMCAocmVzZXJ2ZWQpDQooWEVOKSAgMDAwMDAwMDEwMDAwMDAwMCAtIDAwMDAwMDAy
-NTAwMDAwMDAgKHVzYWJsZSkNCihYRU4pIEFDUEk6IFJTRFAgMDAwRkIxMjAsIDAwMTQgKHIw
-IEFDUElBTSkNCihYRU4pIEFDUEk6IFJTRFQgQUZFOTAwMDAsIDAwNDggKHIxIE1TSSAgICBP
-RU1TTElDICAyMDEwMDYyMiBNU0ZUICAgICAgIDk3KQ0KKFhFTikgQUNQSTogRkFDUCBBRkU5
-MDIwMCwgMDA4NCAocjEgNzY0ME1TIEE3NjQwMTAwIDIwMTAwNjIyIE1TRlQgICAgICAgOTcp
-DQooWEVOKSBBQ1BJOiBEU0RUIEFGRTkwNUUwLCA5NDQ5IChyMSAgQTc2NDAgQTc2NDAxMDAg
-ICAgICAxMDAgSU5UTCAyMDA1MTExNykNCihYRU4pIEFDUEk6IEZBQ1MgQUZFOUUwMDAsIDAw
-NDANCihYRU4pIEFDUEk6IEFQSUMgQUZFOTAzOTAsIDAwODggKHIxIDc2NDBNUyBBNzY0MDEw
-MCAyMDEwMDYyMiBNU0ZUICAgICAgIDk3KQ0KKFhFTikgQUNQSTogTUNGRyBBRkU5MDQyMCwg
-MDAzQyAocjEgNzY0ME1TIE9FTU1DRkcgIDIwMTAwNjIyIE1TRlQgICAgICAgOTcpDQooWEVO
-KSBBQ1BJOiBTTElDIEFGRTkwNDYwLCAwMTc2IChyMSBNU0kgICAgT0VNU0xJQyAgMjAxMDA2
-MjIgTVNGVCAgICAgICA5NykNCihYRU4pIEFDUEk6IE9FTUIgQUZFOUUwNDAsIDAwNzIgKHIx
-IDc2NDBNUyBBNzY0MDEwMCAyMDEwMDYyMiBNU0ZUICAgICAgIDk3KQ0KKFhFTikgQUNQSTog
-U1JBVCBBRkU5QTVFMCwgMDEwOCAocjMgQU1EICAgIEZBTV9GXzEwICAgICAgICAyIEFNRCAg
-ICAgICAgIDEpDQooWEVOKSBBQ1BJOiBIUEVUIEFGRTlBNkYwLCAwMDM4IChyMSA3NjQwTVMg
-T0VNSFBFVCAgMjAxMDA2MjIgTVNGVCAgICAgICA5NykNCihYRU4pIEFDUEk6IElWUlMgQUZF
-OUE3MzAsIDAwRjggKHIxICBBTUQgICAgIFJEODkwUyAgIDIwMjAzMSBBTUQgICAgICAgICAw
-KQ0KKFhFTikgQUNQSTogU1NEVCBBRkU5QTgzMCwgMERBNCAocjEgQSBNIEkgIFBPV0VSTk9X
-ICAgICAgICAxIEFNRCAgICAgICAgIDEpDQooWEVOKSBTeXN0ZW0gUkFNOiA4MTkwTUIgKDgz
-ODY3MzJrQikNCihYRU4pIFNSQVQ6IFBYTSAwIC0+IEFQSUMgMCAtPiBOb2RlIDANCihYRU4p
-IFNSQVQ6IFBYTSAwIC0+IEFQSUMgMSAtPiBOb2RlIDANCihYRU4pIFNSQVQ6IFBYTSAwIC0+
-IEFQSUMgMiAtPiBOb2RlIDANCihYRU4pIFNSQVQ6IFBYTSAwIC0+IEFQSUMgMyAtPiBOb2Rl
-IDANCihYRU4pIFNSQVQ6IFBYTSAwIC0+IEFQSUMgNCAtPiBOb2RlIDANCihYRU4pIFNSQVQ6
-IFBYTSAwIC0+IEFQSUMgNSAtPiBOb2RlIDANCihYRU4pIFNSQVQ6IE5vZGUgMCBQWE0gMCAw
-LWEwMDAwDQooWEVOKSBTUkFUOiBOb2RlIDAgUFhNIDAgMTAwMDAwLWIwMDAwMDAwDQooWEVO
-KSBTUkFUOiBOb2RlIDAgUFhNIDAgMTAwMDAwMDAwLTI1MDAwMDAwMA0KKFhFTikgTlVNQTog
-QWxsb2NhdGVkIG1lbW5vZGVtYXAgZnJvbSAyNGQ5YTQwMDAgLSAyNGQ5YTcwMDANCihYRU4p
-IE5VTUE6IFVzaW5nIDggZm9yIHRoZSBoYXNoIHNoaWZ0Lg0KKFhFTikgRG9tYWluIGhlYXAg
-aW5pdGlhbGlzZWQNCihYRU4pIHZlc2FmYjogZnJhbWVidWZmZXIgYXQgMHhmYjAwMDAwMCwg
-bWFwcGVkIHRvIDB4ZmZmZjgyYzAwMDAwMDAwMCwgdXNpbmcgNjE0NGssIHRvdGFsIDE0MzM2
-aw0KKFhFTikgdmVzYWZiOiBtb2RlIGlzIDEyODB4MTAyNHgzMiwgbGluZWxlbmd0aD01MTIw
-LCBmb250IDh4MTYNCihYRU4pIHZlc2FmYjogVHJ1ZWNvbG9yOiBzaXplPTg6ODo4OjgsIHNo
-aWZ0PTI0OjE2Ojg6MA0KKFhFTikgZm91bmQgU01QIE1QLXRhYmxlIGF0IDAwMGZmNzgwDQoo
-WEVOKSBETUkgcHJlc2VudC4NCihYRU4pIEFQSUMgYm9vdCBzdGF0ZSBpcyAneGFwaWMnDQoo
-WEVOKSBVc2luZyBBUElDIGRyaXZlciBkZWZhdWx0DQooWEVOKSBBQ1BJOiBQTS1UaW1lciBJ
-TyBQb3J0OiAweDgwOA0KKFhFTikgQUNQSTogQUNQSSBTTEVFUCBJTkZPOiBwbTF4X2NudFs4
-MDQsMF0sIHBtMXhfZXZ0WzgwMCwwXQ0KKFhFTikgQUNQSTogICAgICAgICAgICAgICAgICB3
-YWtldXBfdmVjW2FmZTllMDBjXSwgdmVjX3NpemVbMjBdDQooWEVOKSBBQ1BJOiBMb2NhbCBB
-UElDIGFkZHJlc3MgMHhmZWUwMDAwMA0KKFhFTikgQUNQSTogTEFQSUMgKGFjcGlfaWRbMHgw
-MV0gbGFwaWNfaWRbMHgwMF0gZW5hYmxlZCkNCihYRU4pIFByb2Nlc3NvciAjMCAwOjEwIEFQ
-SUMgdmVyc2lvbiAxNg0KKFhFTikgQUNQSTogTEFQSUMgKGFjcGlfaWRbMHgwMl0gbGFwaWNf
-aWRbMHgwMV0gZW5hYmxlZCkNCihYRU4pIFByb2Nlc3NvciAjMSAwOjEwIEFQSUMgdmVyc2lv
-biAxNg0KKFhFTikgQUNQSTogTEFQSUMgKGFjcGlfaWRbMHgwM10gbGFwaWNfaWRbMHgwMl0g
-ZW5hYmxlZCkNCihYRU4pIFByb2Nlc3NvciAjMiAwOjEwIEFQSUMgdmVyc2lvbiAxNg0KKFhF
-TikgQUNQSTogTEFQSUMgKGFjcGlfaWRbMHgwNF0gbGFwaWNfaWRbMHgwM10gZW5hYmxlZCkN
-CihYRU4pIFByb2Nlc3NvciAjMyAwOjEwIEFQSUMgdmVyc2lvbiAxNg0KKFhFTikgQUNQSTog
-TEFQSUMgKGFjcGlfaWRbMHgwNV0gbGFwaWNfaWRbMHgwNF0gZW5hYmxlZCkNCihYRU4pIFBy
-b2Nlc3NvciAjNCAwOjEwIEFQSUMgdmVyc2lvbiAxNg0KKFhFTikgQUNQSTogTEFQSUMgKGFj
-cGlfaWRbMHgwNl0gbGFwaWNfaWRbMHgwNV0gZW5hYmxlZCkNCihYRU4pIFByb2Nlc3NvciAj
-NSAwOjEwIEFQSUMgdmVyc2lvbiAxNg0KKFhFTikgQUNQSTogSU9BUElDIChpZFsweDA2XSBh
-ZGRyZXNzWzB4ZmVjMDAwMDBdIGdzaV9iYXNlWzBdKQ0KKFhFTikgSU9BUElDWzBdOiBhcGlj
-X2lkIDYsIHZlcnNpb24gMzMsIGFkZHJlc3MgMHhmZWMwMDAwMCwgR1NJIDAtMjMNCihYRU4p
-IEFDUEk6IElPQVBJQyAoaWRbMHgwN10gYWRkcmVzc1sweGZlYzIwMDAwXSBnc2lfYmFzZVsy
-NF0pDQooWEVOKSBJT0FQSUNbMV06IGFwaWNfaWQgNywgdmVyc2lvbiAzMywgYWRkcmVzcyAw
-eGZlYzIwMDAwLCBHU0kgMjQtNTUNCihYRU4pIEFDUEk6IElOVF9TUkNfT1ZSIChidXMgMCBi
-dXNfaXJxIDAgZ2xvYmFsX2lycSAyIGRmbCBkZmwpDQooWEVOKSBBQ1BJOiBJTlRfU1JDX09W
-UiAoYnVzIDAgYnVzX2lycSA5IGdsb2JhbF9pcnEgOSBsb3cgbGV2ZWwpDQooWEVOKSBBQ1BJ
-OiBJUlEwIHVzZWQgYnkgb3ZlcnJpZGUuDQooWEVOKSBBQ1BJOiBJUlEyIHVzZWQgYnkgb3Zl
-cnJpZGUuDQooWEVOKSBBQ1BJOiBJUlE5IHVzZWQgYnkgb3ZlcnJpZGUuDQooWEVOKSBFbmFi
-bGluZyBBUElDIG1vZGU6ICBGbGF0LiAgVXNpbmcgMiBJL08gQVBJQ3MNCihYRU4pIEFDUEk6
-IEhQRVQgaWQ6IDB4ODMwMCBiYXNlOiAweGZlZDAwMDAwDQooWEVOKSBUYWJsZSBpcyBub3Qg
-Zm91bmQhDQooWEVOKSBVc2luZyBBQ1BJIChNQURUKSBmb3IgU01QIGNvbmZpZ3VyYXRpb24g
-aW5mb3JtYXRpb24NCihYRU4pIFNNUDogQWxsb3dpbmcgNiBDUFVzICgwIGhvdHBsdWcgQ1BV
-cykNCihYRU4pIG1hcHBlZCBBUElDIHRvIGZmZmY4MmMzZmZkZmUwMDAgKGZlZTAwMDAwKQ0K
-KFhFTikgbWFwcGVkIElPQVBJQyB0byBmZmZmODJjM2ZmZGZkMDAwIChmZWMwMDAwMCkNCihY
-RU4pIG1hcHBlZCBJT0FQSUMgdG8gZmZmZjgyYzNmZmRmYzAwMCAoZmVjMjAwMDApDQooWEVO
-KSBJUlEgbGltaXRzOiA1NiBHU0ksIDExMTIgTVNJL01TSS1YDQooWEVOKSBVc2luZyBzY2hl
-ZHVsZXI6IFNNUCBDcmVkaXQgU2NoZWR1bGVyIChjcmVkaXQpDQooWEVOKSBEZXRlY3RlZCAz
-MjAwLjE5OSBNSHogcHJvY2Vzc29yLg0KKFhFTikgSW5pdGluZyBtZW1vcnkgc2hhcmluZy4N
-CihYRU4pIEFNRCBGYW0xMGggbWFjaGluZSBjaGVjayByZXBvcnRpbmcgZW5hYmxlZA0KKFhF
-TikgUENJOiBNQ0ZHIGNvbmZpZ3VyYXRpb24gMDogYmFzZSBlMDAwMDAwMCBzZWdtZW50IDAw
-MDAgYnVzZXMgMDAgLSBmZg0KKFhFTikgUENJOiBOb3QgdXNpbmcgTUNGRyBmb3Igc2VnbWVu
-dCAwMDAwIGJ1cyAwMC1mZg0KKFhFTikgQU1ELVZpOiBGb3VuZCBNU0kgY2FwYWJpbGl0eSBi
-bG9jayBhdCAweDU0DQooWEVOKSBBTUQtVmk6IEFDUEkgVGFibGU6DQooWEVOKSBBTUQtVmk6
-ICBTaWduYXR1cmUgSVZSUw0KKFhFTikgQU1ELVZpOiAgTGVuZ3RoIDB4ZjgNCihYRU4pIEFN
-RC1WaTogIFJldmlzaW9uIDB4MQ0KKFhFTikgQU1ELVZpOiAgQ2hlY2tTdW0gMHg2ZQ0KKFhF
-TikgQU1ELVZpOiAgT0VNX0lkIEFNRCAgDQooWEVOKSBBTUQtVmk6ICBPRU1fVGFibGVfSWQg
-UkQ4OTBTDQooWEVOKSBBTUQtVmk6ICBPRU1fUmV2aXNpb24gMHgyMDIwMzENCihYRU4pIEFN
-RC1WaTogIENyZWF0b3JfSWQgQU1EIA0KKFhFTikgQU1ELVZpOiAgQ3JlYXRvcl9SZXZpc2lv
-biAweDANCihYRU4pIEFNRC1WaTogSVZSUyBCbG9jazoNCihYRU4pIEFNRC1WaTogIFR5cGUg
-MHgxMA0KKFhFTikgQU1ELVZpOiAgRmxhZ3MgMHgzZQ0KKFhFTikgQU1ELVZpOiAgTGVuZ3Ro
-IDB4YzgNCihYRU4pIEFNRC1WaTogIERldl9JZCAweDINCihYRU4pIEFNRC1WaTogSVZIRCBE
-ZXZpY2UgRW50cnk6DQooWEVOKSBBTUQtVmk6ICBUeXBlIDB4Mw0KKFhFTikgQU1ELVZpOiAg
-RGV2X0lkIDB4MA0KKFhFTikgQU1ELVZpOiAgRmxhZ3MgMHgwDQooWEVOKSBBTUQtVmk6ICBE
-ZXZfSWQgUmFuZ2U6IDB4MCAtPiAweDINCihYRU4pIEFNRC1WaTogSVZIRCBEZXZpY2UgRW50
-cnk6DQooWEVOKSBBTUQtVmk6ICBUeXBlIDB4Mg0KKFhFTikgQU1ELVZpOiAgRGV2X0lkIDB4
-MTANCihYRU4pIEFNRC1WaTogIEZsYWdzIDB4MA0KKFhFTikgQU1ELVZpOiBJVkhEIERldmlj
-ZSBFbnRyeToNCihYRU4pIEFNRC1WaTogIFR5cGUgMHgyDQooWEVOKSBBTUQtVmk6ICBEZXZf
-SWQgMHhiMDANCihYRU4pIEFNRC1WaTogIEZsYWdzIDB4MA0KKFhFTikgQU1ELVZpOiBJVkhE
-IERldmljZSBFbnRyeToNCihYRU4pIEFNRC1WaTogIFR5cGUgMHgyDQooWEVOKSBBTUQtVmk6
-ICBEZXZfSWQgMHgxOA0KKFhFTikgQU1ELVZpOiAgRmxhZ3MgMHgwDQooWEVOKSBBTUQtVmk6
-IElWSEQgRGV2aWNlIEVudHJ5Og0KKFhFTikgQU1ELVZpOiAgVHlwZSAweDMNCihYRU4pIEFN
-RC1WaTogIERldl9JZCAweGEwMA0KKFhFTikgQU1ELVZpOiAgRmxhZ3MgMHgwDQooWEVOKSBB
-TUQtVmk6ICBEZXZfSWQgUmFuZ2U6IDB4YTAwIC0+IDB4YTA3DQooWEVOKSBBTUQtVmk6IElW
-SEQgRGV2aWNlIEVudHJ5Og0KKFhFTikgQU1ELVZpOiAgVHlwZSAweDINCihYRU4pIEFNRC1W
-aTogIERldl9JZCAweDI4DQooWEVOKSBBTUQtVmk6ICBGbGFncyAweDANCihYRU4pIEFNRC1W
-aTogSVZIRCBEZXZpY2UgRW50cnk6DQooWEVOKSBBTUQtVmk6ICBUeXBlIDB4Mg0KKFhFTikg
-QU1ELVZpOiAgRGV2X0lkIDB4OTAwDQooWEVOKSBBTUQtVmk6ICBGbGFncyAweDANCihYRU4p
-IEFNRC1WaTogSVZIRCBEZXZpY2UgRW50cnk6DQooWEVOKSBBTUQtVmk6ICBUeXBlIDB4Mg0K
-KFhFTikgQU1ELVZpOiAgRGV2X0lkIDB4MzANCihYRU4pIEFNRC1WaTogIEZsYWdzIDB4MA0K
-KFhFTikgQU1ELVZpOiBJVkhEIERldmljZSBFbnRyeToNCihYRU4pIEFNRC1WaTogIFR5cGUg
-MHgyDQooWEVOKSBBTUQtVmk6ICBEZXZfSWQgMHg4MDANCihYRU4pIEFNRC1WaTogIEZsYWdz
-IDB4MA0KKFhFTikgQU1ELVZpOiBJVkhEIERldmljZSBFbnRyeToNCihYRU4pIEFNRC1WaTog
-IFR5cGUgMHgyDQooWEVOKSBBTUQtVmk6ICBEZXZfSWQgMHg1MA0KKFhFTikgQU1ELVZpOiAg
-RmxhZ3MgMHgwDQooWEVOKSBBTUQtVmk6IElWSEQgRGV2aWNlIEVudHJ5Og0KKFhFTikgQU1E
-LVZpOiAgVHlwZSAweDINCihYRU4pIEFNRC1WaTogIERldl9JZCAweDcwMA0KKFhFTikgQU1E
-LVZpOiAgRmxhZ3MgMHgwDQooWEVOKSBBTUQtVmk6IElWSEQgRGV2aWNlIEVudHJ5Og0KKFhF
-TikgQU1ELVZpOiAgVHlwZSAweDINCihYRU4pIEFNRC1WaTogIERldl9JZCAweDU4DQooWEVO
-KSBBTUQtVmk6ICBGbGFncyAweDANCihYRU4pIEFNRC1WaTogSVZIRCBEZXZpY2UgRW50cnk6
-DQooWEVOKSBBTUQtVmk6ICBUeXBlIDB4Mw0KKFhFTikgQU1ELVZpOiAgRGV2X0lkIDB4NjAw
-DQooWEVOKSBBTUQtVmk6ICBGbGFncyAweDANCihYRU4pIEFNRC1WaTogIERldl9JZCBSYW5n
-ZTogMHg2MDAgLT4gMHg2MDENCihYRU4pIEFNRC1WaTogSVZIRCBEZXZpY2UgRW50cnk6DQoo
-WEVOKSBBTUQtVmk6ICBUeXBlIDB4Mg0KKFhFTikgQU1ELVZpOiAgRGV2X0lkIDB4NjANCihY
-RU4pIEFNRC1WaTogIEZsYWdzIDB4MA0KKFhFTikgQU1ELVZpOiBJVkhEIERldmljZSBFbnRy
-eToNCihYRU4pIEFNRC1WaTogIFR5cGUgMHgyDQooWEVOKSBBTUQtVmk6ICBEZXZfSWQgMHg1
-MDANCihYRU4pIEFNRC1WaTogIEZsYWdzIDB4MA0KKFhFTikgQU1ELVZpOiBJVkhEIERldmlj
-ZSBFbnRyeToNCihYRU4pIEFNRC1WaTogIFR5cGUgMHgyDQooWEVOKSBBTUQtVmk6ICBEZXZf
-SWQgMHg2OA0KKFhFTikgQU1ELVZpOiAgRmxhZ3MgMHgwDQooWEVOKSBBTUQtVmk6IElWSEQg
-RGV2aWNlIEVudHJ5Og0KKFhFTikgQU1ELVZpOiAgVHlwZSAweDMNCihYRU4pIEFNRC1WaTog
-IERldl9JZCAweDQwMA0KKFhFTikgQU1ELVZpOiAgRmxhZ3MgMHgwDQooWEVOKSBBTUQtVmk6
-ICBEZXZfSWQgUmFuZ2U6IDB4NDAwIC0+IDB4NDA3DQooWEVOKSBBTUQtVmk6IElWSEQgRGV2
-aWNlIEVudHJ5Og0KKFhFTikgQU1ELVZpOiAgVHlwZSAweDINCihYRU4pIEFNRC1WaTogIERl
-dl9JZCAweDg4DQooWEVOKSBBTUQtVmk6ICBGbGFncyAweDANCihYRU4pIEFNRC1WaTogSVZI
-RCBEZXZpY2UgRW50cnk6DQooWEVOKSBBTUQtVmk6ICBUeXBlIDB4Mw0KKFhFTikgQU1ELVZp
-OiAgRGV2X0lkIDB4OTANCihYRU4pIEFNRC1WaTogIEZsYWdzIDB4MA0KKFhFTikgQU1ELVZp
-OiAgRGV2X0lkIFJhbmdlOiAweDkwIC0+IDB4OTINCihYRU4pIEFNRC1WaTogSVZIRCBEZXZp
-Y2UgRW50cnk6DQooWEVOKSBBTUQtVmk6ICBUeXBlIDB4Mw0KKFhFTikgQU1ELVZpOiAgRGV2
-X0lkIDB4OTgNCihYRU4pIEFNRC1WaTogIEZsYWdzIDB4MA0KKFhFTikgQU1ELVZpOiAgRGV2
-X0lkIFJhbmdlOiAweDk4IC0+IDB4OWENCihYRU4pIEFNRC1WaTogSVZIRCBEZXZpY2UgRW50
-cnk6DQooWEVOKSBBTUQtVmk6ICBUeXBlIDB4Mg0KKFhFTikgQU1ELVZpOiAgRGV2X0lkIDB4
-YTANCihYRU4pIEFNRC1WaTogIEZsYWdzIDB4ZDcNCihYRU4pIEFNRC1WaTogSVZIRCBEZXZp
-Y2UgRW50cnk6DQooWEVOKSBBTUQtVmk6ICBUeXBlIDB4Mg0KKFhFTikgQU1ELVZpOiAgRGV2
-X0lkIDB4YTMNCihYRU4pIEFNRC1WaTogIEZsYWdzIDB4MA0KKFhFTikgQU1ELVZpOiBJVkhE
-IERldmljZSBFbnRyeToNCihYRU4pIEFNRC1WaTogIFR5cGUgMHgyDQooWEVOKSBBTUQtVmk6
-ICBEZXZfSWQgMHhhNA0KKFhFTikgQU1ELVZpOiAgRmxhZ3MgMHgwDQooWEVOKSBBTUQtVmk6
-IElWSEQgRGV2aWNlIEVudHJ5Og0KKFhFTikgQU1ELVZpOiAgVHlwZSAweDANCihYRU4pIEFN
-RC1WaTogIERldl9JZCAweDANCihYRU4pIEFNRC1WaTogIEZsYWdzIDB4MA0KKFhFTikgQU1E
-LVZpOiBJVkhEIERldmljZSBFbnRyeToNCihYRU4pIEFNRC1WaTogIFR5cGUgMHg0Mw0KKFhF
-TikgQU1ELVZpOiAgRGV2X0lkIDB4MzAwDQooWEVOKSBBTUQtVmk6ICBGbGFncyAweDANCihY
-RU4pIEFNRC1WaTogIERldl9JZCBSYW5nZTogMHgzMDAgLT4gMHgzZmYNCihYRU4pIEFNRC1W
-aTogIERldl9JZCBBbGlhczogMHhhNA0KKFhFTikgQU1ELVZpOiBJVkhEIERldmljZSBFbnRy
-eToNCihYRU4pIEFNRC1WaTogIFR5cGUgMHgyDQooWEVOKSBBTUQtVmk6ICBEZXZfSWQgMHhh
-NQ0KKFhFTikgQU1ELVZpOiAgRmxhZ3MgMHgwDQooWEVOKSBBTUQtVmk6IElWSEQgRGV2aWNl
-IEVudHJ5Og0KKFhFTikgQU1ELVZpOiAgVHlwZSAweDINCihYRU4pIEFNRC1WaTogIERldl9J
-ZCAweGE4DQooWEVOKSBBTUQtVmk6ICBGbGFncyAweDANCihYRU4pIEFNRC1WaTogSVZIRCBE
-ZXZpY2UgRW50cnk6DQooWEVOKSBBTUQtVmk6ICBUeXBlIDB4Mg0KKFhFTikgQU1ELVZpOiAg
-RGV2X0lkIDB4YTkNCihYRU4pIEFNRC1WaTogIEZsYWdzIDB4MA0KKFhFTikgQU1ELVZpOiBJ
-VkhEIERldmljZSBFbnRyeToNCihYRU4pIEFNRC1WaTogIFR5cGUgMHgyDQooWEVOKSBBTUQt
-Vmk6ICBEZXZfSWQgMHgxMDANCihYRU4pIEFNRC1WaTogIEZsYWdzIDB4MA0KKFhFTikgQU1E
-LVZpOiBJVkhEIERldmljZSBFbnRyeToNCihYRU4pIEFNRC1WaTogIFR5cGUgMHgzDQooWEVO
-KSBBTUQtVmk6ICBEZXZfSWQgMHhiMA0KKFhFTikgQU1ELVZpOiAgRmxhZ3MgMHgwDQooWEVO
-KSBBTUQtVmk6ICBEZXZfSWQgUmFuZ2U6IDB4YjAgLT4gMHhiMg0KKFhFTikgQU1ELVZpOiBJ
-VkhEIERldmljZSBFbnRyeToNCihYRU4pIEFNRC1WaTogIFR5cGUgMHgwDQooWEVOKSBBTUQt
-Vmk6ICBEZXZfSWQgMHgwDQooWEVOKSBBTUQtVmk6ICBGbGFncyAweDANCihYRU4pIEFNRC1W
-aTogSVZIRCBEZXZpY2UgRW50cnk6DQooWEVOKSBBTUQtVmk6ICBUeXBlIDB4NDgNCihYRU4p
-IEFNRC1WaTogIERldl9JZCAweDANCihYRU4pIEFNRC1WaTogIEZsYWdzIDB4ZDcNCihYRU4p
-IEFNRC1WaTogSVZIRCBEZXZpY2UgRW50cnk6DQooWEVOKSBBTUQtVmk6ICBUeXBlIDB4NDgN
-CihYRU4pIEFNRC1WaTogIERldl9JZCAweDANCihYRU4pIEFNRC1WaTogIEZsYWdzIDB4MA0K
-KFhFTikgQU1ELVZpOiBJT01NVSAwIEVuYWJsZWQuDQooWEVOKSBBTUQtVmk6IEVuYWJsaW5n
-IGdsb2JhbCB2ZWN0b3IgbWFwDQooWEVOKSBJL08gdmlydHVhbGlzYXRpb24gZW5hYmxlZA0K
-KFhFTikgIC0gRG9tMCBtb2RlOiBSZWxheGVkDQooWEVOKSBHZXR0aW5nIFZFUlNJT046IDgw
-MDUwMDEwDQooWEVOKSBHZXR0aW5nIFZFUlNJT046IDgwMDUwMDEwDQooWEVOKSBHZXR0aW5n
-IElEOiAwDQooWEVOKSBHZXR0aW5nIExWVDA6IDcwMA0KKFhFTikgR2V0dGluZyBMVlQxOiA0
-MDANCihYRU4pIGVuYWJsZWQgRXh0SU5UIG9uIENQVSMwDQooWEVOKSBFU1IgdmFsdWUgYmVm
-b3JlIGVuYWJsaW5nIHZlY3RvcjogMHgwMDAwMDAwNCAgYWZ0ZXI6IDB4MDAwMDAwMDANCihY
-RU4pIEVOQUJMSU5HIElPLUFQSUMgSVJRcw0KKFhFTikgIC0+IFVzaW5nIG5ldyBBQ0sgbWV0
-aG9kDQooWEVOKSBpbml0IElPX0FQSUMgSVJRcw0KKFhFTikgIElPLUFQSUMgKGFwaWNpZC1w
-aW4pIDYtMCwgNi0xNiwgNi0xNywgNi0xOCwgNi0xOSwgNi0yMCwgNi0yMSwgNi0yMiwgNi0y
-MywgNy0wLCA3LTEsIDctMiwgNy0zLCA3LTQsIDctNSwgNy02LCA3LTcsIDctOCwgNy05LCA3
-LTEwLCA3LTExLCA3LTEyLCA3LTEzLCA3LTE0LCA3LTE1LCA3LTE2LCA3LTE3LCA3LTE4LCA3
-LTE5LCA3LTIwLCA3LTIxLCA3LTIyLCA3LTIzLCA3LTI0LCA3LTI1LCA3LTI2LCA3LTI3LCA3
-LTI4LCA3LTI5LCA3LTMwLCA3LTMxIG5vdCBjb25uZWN0ZWQuDQooWEVOKSAuLlRJTUVSOiB2
-ZWN0b3I9MHhGMCBhcGljMT0wIHBpbjE9MiBhcGljMj0tMSBwaW4yPS0xDQooWEVOKSBudW1i
-ZXIgb2YgTVAgSVJRIHNvdXJjZXM6IDE1Lg0KKFhFTikgbnVtYmVyIG9mIElPLUFQSUMgIzYg
-cmVnaXN0ZXJzOiAyNC4NCihYRU4pIG51bWJlciBvZiBJTy1BUElDICM3IHJlZ2lzdGVyczog
-MzIuDQooWEVOKSB0ZXN0aW5nIHRoZSBJTyBBUElDLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4N
-CihYRU4pIElPIEFQSUMgIzYuLi4uLi4NCihYRU4pIC4uLi4gcmVnaXN0ZXIgIzAwOiAwNjAw
-MDAwMA0KKFhFTikgLi4uLi4uLiAgICA6IHBoeXNpY2FsIEFQSUMgaWQ6IDA2DQooWEVOKSAu
-Li4uLi4uICAgIDogRGVsaXZlcnkgVHlwZTogMA0KKFhFTikgLi4uLi4uLiAgICA6IExUUyAg
-ICAgICAgICA6IDANCihYRU4pIC4uLi4gcmVnaXN0ZXIgIzAxOiAwMDE3ODAyMQ0KKFhFTikg
-Li4uLi4uLiAgICAgOiBtYXggcmVkaXJlY3Rpb24gZW50cmllczogMDAxNw0KKFhFTikgLi4u
-Li4uLiAgICAgOiBQUlEgaW1wbGVtZW50ZWQ6IDENCihYRU4pIC4uLi4uLi4gICAgIDogSU8g
-QVBJQyB2ZXJzaW9uOiAwMDIxDQooWEVOKSAuLi4uIHJlZ2lzdGVyICMwMjogMDYwMDAwMDAN
-CihYRU4pIC4uLi4uLi4gICAgIDogYXJiaXRyYXRpb246IDA2DQooWEVOKSAuLi4uIHJlZ2lz
-dGVyICMwMzogMDcwMDAwMDANCihYRU4pIC4uLi4uLi4gICAgIDogQm9vdCBEVCAgICA6IDAN
-CihYRU4pIC4uLi4gSVJRIHJlZGlyZWN0aW9uIHRhYmxlOg0KKFhFTikgIE5SIExvZyBQaHkg
-TWFzayBUcmlnIElSUiBQb2wgU3RhdCBEZXN0IERlbGkgVmVjdDogICANCihYRU4pICAwMCAw
-MDAgMDAgIDEgICAgMCAgICAwICAgMCAgIDAgICAgMCAgICAwICAgIDAwDQooWEVOKSAgMDEg
-MDAxIDAxICAwICAgIDAgICAgMCAgIDAgICAwICAgIDEgICAgMSAgICAzMA0KKFhFTikgIDAy
-IDAwMSAwMSAgMCAgICAwICAgIDAgICAwICAgMCAgICAxICAgIDEgICAgRjANCihYRU4pICAw
-MyAwMDEgMDEgIDAgICAgMCAgICAwICAgMCAgIDAgICAgMSAgICAxICAgIDM4DQooWEVOKSAg
-MDQgMDAxIDAxICAwICAgIDAgICAgMCAgIDAgICAwICAgIDEgICAgMSAgICBGMQ0KKFhFTikg
-IDA1IDAwMSAwMSAgMCAgICAwICAgIDAgICAwICAgMCAgICAxICAgIDEgICAgNDANCihYRU4p
-ICAwNiAwMDEgMDEgIDAgICAgMCAgICAwICAgMCAgIDAgICAgMSAgICAxICAgIDQ4DQooWEVO
-KSAgMDcgMDAxIDAxICAwICAgIDAgICAgMCAgIDAgICAwICAgIDEgICAgMSAgICA1MA0KKFhF
-TikgIDA4IDAwMSAwMSAgMCAgICAwICAgIDAgICAwICAgMCAgICAxICAgIDEgICAgNTgNCihY
-RU4pICAwOSAwMDEgMDEgIDEgICAgMSAgICAwICAgMSAgIDAgICAgMSAgICAxICAgIDYwDQoo
-WEVOKSAgMGEgMDAxIDAxICAwICAgIDAgICAgMCAgIDAgICAwICAgIDEgICAgMSAgICA2OA0K
-KFhFTikgIDBiIDAwMSAwMSAgMCAgICAwICAgIDAgICAwICAgMCAgICAxICAgIDEgICAgNzAN
-CihYRU4pICAwYyAwMDEgMDEgIDAgICAgMCAgICAwICAgMCAgIDAgICAgMSAgICAxICAgIDc4
-DQooWEVOKSAgMGQgMDAxIDAxICAwICAgIDAgICAgMCAgIDAgICAwICAgIDEgICAgMSAgICA4
-OA0KKFhFTikgIDBlIDAwMSAwMSAgMCAgICAwICAgIDAgICAwICAgMCAgICAxICAgIDEgICAg
-OTANCihYRU4pICAwZiAwMDEgMDEgIDAgICAgMCAgICAwICAgMCAgIDAgICAgMSAgICAxICAg
-IDk4DQooWEVOKSAgMTAgMDAwIDAwICAxICAgIDAgICAgMCAgIDAgICAwICAgIDAgICAgMCAg
-ICAwMA0KKFhFTikgIDExIDAwMCAwMCAgMSAgICAwICAgIDAgICAwICAgMCAgICAwICAgIDAg
-ICAgMDANCihYRU4pICAxMiAwMDAgMDAgIDEgICAgMCAgICAwICAgMCAgIDAgICAgMCAgICAw
-ICAgIDAwDQooWEVOKSAgMTMgMDAwIDAwICAxICAgIDAgICAgMCAgIDAgICAwICAgIDAgICAg
-MCAgICAwMA0KKFhFTikgIDE0IDAwMCAwMCAgMSAgICAwICAgIDAgICAwICAgMCAgICAwICAg
-IDAgICAgMDANCihYRU4pICAxNSAwMDAgMDAgIDEgICAgMCAgICAwICAgMCAgIDAgICAgMCAg
-ICAwICAgIDAwDQooWEVOKSAgMTYgMDAwIDAwICAxICAgIDAgICAgMCAgIDAgICAwICAgIDAg
-ICAgMCAgICAwMA0KKFhFTikgIDE3IDAwMCAwMCAgMSAgICAwICAgIDAgICAwICAgMCAgICAw
-ICAgIDAgICAgMDANCihYRU4pIElPIEFQSUMgIzcuLi4uLi4NCihYRU4pIC4uLi4gcmVnaXN0
-ZXIgIzAwOiAwNzAwMDAwMA0KKFhFTikgLi4uLi4uLiAgICA6IHBoeXNpY2FsIEFQSUMgaWQ6
-IDA3DQooWEVOKSAuLi4uLi4uICAgIDogRGVsaXZlcnkgVHlwZTogMA0KKFhFTikgLi4uLi4u
-LiAgICA6IExUUyAgICAgICAgICA6IDANCihYRU4pIC4uLi4gcmVnaXN0ZXIgIzAxOiAwMDFG
-ODAyMQ0KKFhFTikgLi4uLi4uLiAgICAgOiBtYXggcmVkaXJlY3Rpb24gZW50cmllczogMDAx
-Rg0KKFhFTikgLi4uLi4uLiAgICAgOiBQUlEgaW1wbGVtZW50ZWQ6IDENCihYRU4pIC4uLi4u
-Li4gICAgIDogSU8gQVBJQyB2ZXJzaW9uOiAwMDIxDQooWEVOKSAuLi4uIHJlZ2lzdGVyICMw
-MjogMDAwMDAwMDANCihYRU4pIC4uLi4uLi4gICAgIDogYXJiaXRyYXRpb246IDAwDQooWEVO
-KSAuLi4uIElSUSByZWRpcmVjdGlvbiB0YWJsZToNCihYRU4pICBOUiBMb2cgUGh5IE1hc2sg
-VHJpZyBJUlIgUG9sIFN0YXQgRGVzdCBEZWxpIFZlY3Q6ICAgDQooWEVOKSAgMDAgMDAwIDAw
-ICAxICAgIDAgICAgMCAgIDAgICAwICAgIDAgICAgMCAgICAwMA0KKFhFTikgIDAxIDAwMCAw
-MCAgMSAgICAwICAgIDAgICAwICAgMCAgICAwICAgIDAgICAgMDANCihYRU4pICAwMiAwMDAg
-MDAgIDEgICAgMCAgICAwICAgMCAgIDAgICAgMCAgICAwICAgIDAwDQooWEVOKSAgMDMgMDAw
-IDAwICAxICAgIDAgICAgMCAgIDAgICAwICAgIDAgICAgMCAgICAwMA0KKFhFTikgIDA0IDAw
-MCAwMCAgMSAgICAwICAgIDAgICAwICAgMCAgICAwICAgIDAgICAgMDANCihYRU4pICAwNSAw
-MDAgMDAgIDEgICAgMCAgICAwICAgMCAgIDAgICAgMCAgICAwICAgIDAwDQooWEVOKSAgMDYg
-MDAwIDAwICAxICAgIDAgICAgMCAgIDAgICAwICAgIDAgICAgMCAgICAwMA0KKFhFTikgIDA3
-IDAwMCAwMCAgMSAgICAwICAgIDAgICAwICAgMCAgICAwICAgIDAgICAgMDANCihYRU4pICAw
-OCAwMDAgMDAgIDEgICAgMCAgICAwICAgMCAgIDAgICAgMCAgICAwICAgIDAwDQooWEVOKSAg
-MDkgMDAwIDAwICAxICAgIDAgICAgMCAgIDAgICAwICAgIDAgICAgMCAgICAwMA0KKFhFTikg
-IDBhIDAwMCAwMCAgMSAgICAwICAgIDAgICAwICAgMCAgICAwICAgIDAgICAgMDANCihYRU4p
-ICAwYiAwMDAgMDAgIDEgICAgMCAgICAwICAgMCAgIDAgICAgMCAgICAwICAgIDAwDQooWEVO
-KSAgMGMgMDAwIDAwICAxICAgIDAgICAgMCAgIDAgICAwICAgIDAgICAgMCAgICAwMA0KKFhF
-TikgIDBkIDAwMCAwMCAgMSAgICAwICAgIDAgICAwICAgMCAgICAwICAgIDAgICAgMDANCihY
-RU4pICAwZSAwMDAgMDAgIDEgICAgMCAgICAwICAgMCAgIDAgICAgMCAgICAwICAgIDAwDQoo
-WEVOKSAgMGYgMDAwIDAwICAxICAgIDAgICAgMCAgIDAgICAwICAgIDAgICAgMCAgICAwMA0K
-KFhFTikgIDEwIDAwMCAwMCAgMSAgICAwICAgIDAgICAwICAgMCAgICAwICAgIDAgICAgMDAN
-CihYRU4pICAxMSAwMDAgMDAgIDEgICAgMCAgICAwICAgMCAgIDAgICAgMCAgICAwICAgIDAw
-DQooWEVOKSAgMTIgMDAwIDAwICAxICAgIDAgICAgMCAgIDAgICAwICAgIDAgICAgMCAgICAw
-MA0KKFhFTikgIDEzIDAwMCAwMCAgMSAgICAwICAgIDAgICAwICAgMCAgICAwICAgIDAgICAg
-MDANCihYRU4pICAxNCAwMDAgMDAgIDEgICAgMCAgICAwICAgMCAgIDAgICAgMCAgICAwICAg
-IDAwDQooWEVOKSAgMTUgMDAwIDAwICAxICAgIDAgICAgMCAgIDAgICAwICAgIDAgICAgMCAg
-ICAwMA0KKFhFTikgIDE2IDAwMCAwMCAgMSAgICAwICAgIDAgICAwICAgMCAgICAwICAgIDAg
-ICAgMDANCihYRU4pICAxNyAwMDAgMDAgIDEgICAgMCAgICAwICAgMCAgIDAgICAgMCAgICAw
-ICAgIDAwDQooWEVOKSAgMTggMDAwIDAwICAxICAgIDAgICAgMCAgIDAgICAwICAgIDAgICAg
-MCAgICAwMA0KKFhFTikgIDE5IDAwMCAwMCAgMSAgICAwICAgIDAgICAwICAgMCAgICAwICAg
-IDAgICAgMDANCihYRU4pICAxYSAwMDAgMDAgIDEgICAgMCAgICAwICAgMCAgIDAgICAgMCAg
-ICAwICAgIDAwDQooWEVOKSAgMWIgMDAwIDAwICAxICAgIDAgICAgMCAgIDAgICAwICAgIDAg
-ICAgMCAgICAwMA0KKFhFTikgIDFjIDAwMCAwMCAgMSAgICAwICAgIDAgICAwICAgMCAgICAw
-ICAgIDAgICAgMDANCihYRU4pICAxZCAwMDAgMDAgIDEgICAgMCAgICAwICAgMCAgIDAgICAg
-MCAgICAwICAgIDAwDQooWEVOKSAgMWUgMDAwIDAwICAxICAgIDAgICAgMCAgIDAgICAwICAg
-IDAgICAgMCAgICAwMA0KKFhFTikgIDFmIDAwMCAwMCAgMSAgICAwICAgIDAgICAwICAgMCAg
-ICAwICAgIDAgICAgMDANCihYRU4pIFVzaW5nIHZlY3Rvci1iYXNlZCBpbmRleGluZw0KKFhF
-TikgSVJRIHRvIHBpbiBtYXBwaW5nczoNCihYRU4pIElSUTI0MCAtPiAwOjINCihYRU4pIElS
-UTQ4IC0+IDA6MQ0KKFhFTikgSVJRNTYgLT4gMDozDQooWEVOKSBJUlEyNDEgLT4gMDo0DQoo
-WEVOKSBJUlE2NCAtPiAwOjUNCihYRU4pIElSUTcyIC0+IDA6Ng0KKFhFTikgSVJRODAgLT4g
-MDo3DQooWEVOKSBJUlE4OCAtPiAwOjgNCihYRU4pIElSUTk2IC0+IDA6OQ0KKFhFTikgSVJR
-MTA0IC0+IDA6MTANCihYRU4pIElSUTExMiAtPiAwOjExDQooWEVOKSBJUlExMjAgLT4gMDox
-Mg0KKFhFTikgSVJRMTM2IC0+IDA6MTMNCihYRU4pIElSUTE0NCAtPiAwOjE0DQooWEVOKSBJ
-UlExNTIgLT4gMDoxNQ0KKFhFTikgLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
-Li4uIGRvbmUuDQooWEVOKSBVc2luZyBsb2NhbCBBUElDIHRpbWVyIGludGVycnVwdHMuDQoo
-WEVOKSBjYWxpYnJhdGluZyBBUElDIHRpbWVyIC4uLg0KKFhFTikgLi4uLi4gQ1BVIGNsb2Nr
-IHNwZWVkIGlzIDMyMDAuMTI3MCBNSHouDQooWEVOKSAuLi4uLiBob3N0IGJ1cyBjbG9jayBz
-cGVlZCBpcyAyMDAuMDA3OSBNSHouDQooWEVOKSAuLi4uLiBidXNfc2NhbGUgPSAweDAwMDBD
-Q0Q3DQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1NTozMV0gUGxhdGZvcm0gdGltZXIgaXMgMTQu
-MzE4TUh6IEhQRVQNCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU1OjMxXSBBbGxvY2F0ZWQgY29u
-c29sZSByaW5nIG9mIDY0IEtpQi4NCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU1OjMxXSBIVk06
-IEFTSURzIGVuYWJsZWQuDQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1NTozMV0gU1ZNOiBTdXBw
-b3J0ZWQgYWR2YW5jZWQgZmVhdHVyZXM6DQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1NTozMV0g
-IC0gTmVzdGVkIFBhZ2UgVGFibGVzIChOUFQpDQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1NToz
-MV0gIC0gTGFzdCBCcmFuY2ggUmVjb3JkIChMQlIpIFZpcnR1YWxpc2F0aW9uDQooWEVOKSBb
-MjAxMi0wOS0wMyAyMDo1NTozMV0gIC0gTmV4dC1SSVAgU2F2ZWQgb24gI1ZNRVhJVA0KKFhF
-TikgWzIwMTItMDktMDMgMjA6NTU6MzFdICAtIFBhdXNlLUludGVyY2VwdCBGaWx0ZXINCihY
-RU4pIFsyMDEyLTA5LTAzIDIwOjU1OjMxXSBIVk06IFNWTSBlbmFibGVkDQooWEVOKSBbMjAx
-Mi0wOS0wMyAyMDo1NTozMV0gSFZNOiBIYXJkd2FyZSBBc3Npc3RlZCBQYWdpbmcgKEhBUCkg
-ZGV0ZWN0ZWQNCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU1OjMxXSBIVk06IEhBUCBwYWdlIHNp
-emVzOiA0a0IsIDJNQiwgMUdCDQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1NTozMF0gbWFza2Vk
-IEV4dElOVCBvbiBDUFUjMQ0KKFhFTikgWzIwMTItMDktMDMgMjA6NTU6MzFdIG1pY3JvY29k
-ZTogY29sbGVjdF9jcHVfaW5mbzogcGF0Y2hfaWQ9MHgxMDAwMGJmDQooWEVOKSBbMjAxMi0w
-OS0wMyAyMDo1NTozMF0gbWFza2VkIEV4dElOVCBvbiBDUFUjMg0KKFhFTikgWzIwMTItMDkt
-MDMgMjA6NTU6MzFdIG1pY3JvY29kZTogY29sbGVjdF9jcHVfaW5mbzogcGF0Y2hfaWQ9MHgx
-MDAwMGJmDQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1NTozMF0gbWFza2VkIEV4dElOVCBvbiBD
-UFUjMw0KKFhFTikgWzIwMTItMDktMDMgMjA6NTU6MzFdIG1pY3JvY29kZTogY29sbGVjdF9j
-cHVfaW5mbzogcGF0Y2hfaWQ9MHgxMDAwMGJmDQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1NToz
-MF0gbWFza2VkIEV4dElOVCBvbiBDUFUjNA0KKFhFTikgWzIwMTItMDktMDMgMjA6NTU6MzFd
-IG1pY3JvY29kZTogY29sbGVjdF9jcHVfaW5mbzogcGF0Y2hfaWQ9MHgxMDAwMGJmDQooWEVO
-KSBbMjAxMi0wOS0wMyAyMDo1NTozMF0gbWFza2VkIEV4dElOVCBvbiBDUFUjNQ0KKFhFTikg
-WzIwMTItMDktMDMgMjA6NTU6MzFdIEJyb3VnaHQgdXAgNiBDUFVzDQooWEVOKSBbMjAxMi0w
-OS0wMyAyMDo1NTozMV0gbWljcm9jb2RlOiBjb2xsZWN0X2NwdV9pbmZvOiBwYXRjaF9pZD0w
-eDEwMDAwYmYNCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU1OjMxXSBIUEVUJ3MgTVNJIG1vZGUg
-aGFzbid0IGJlZW4gc3VwcG9ydGVkIHdoZW4gSW50ZXJydXB0IFJlbWFwcGluZyBpcyBlbmFi
-bGVkLg0KKFhFTikgWzIwMTItMDktMDMgMjA6NTU6MzFdIEFDUEkgc2xlZXAgbW9kZXM6IFMz
-DQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1NTozMV0gTUNBOiBVc2UgaHcgdGhyZXNob2xkaW5n
-IHRvIGFkanVzdCBwb2xsaW5nIGZyZXF1ZW5jeQ0KKFhFTikgWzIwMTItMDktMDMgMjA6NTU6
-MzFdIG1jaGVja19wb2xsOiBNYWNoaW5lIGNoZWNrIHBvbGxpbmcgdGltZXIgc3RhcnRlZC4N
-CihYRU4pIFsyMDEyLTA5LTAzIDIwOjU1OjMxXSBYZW5vcHJvZmlsZTogRmFpbGVkIHRvIHNl
-dHVwIElCUyBMVlQgb2Zmc2V0LCBJQlNDVEwgPSAweGZmZmZmZmZmDQooWEVOKSBbMjAxMi0w
-OS0wMyAyMDo1NTozMV0gKioqIExPQURJTkcgRE9NQUlOIDAgKioqDQooWEVOKSBbMjAxMi0w
-OS0wMyAyMDo1NTozMV0gZWxmX3BhcnNlX2JpbmFyeTogcGhkcjogcGFkZHI9MHgxMDAwMDAw
-IG1lbXN6PTB4ZDZhMDAwDQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1NTozMV0gZWxmX3BhcnNl
-X2JpbmFyeTogcGhkcjogcGFkZHI9MHgxZTAwMDAwIG1lbXN6PTB4ZGIwZTgNCihYRU4pIFsy
-MDEyLTA5LTAzIDIwOjU1OjMxXSBlbGZfcGFyc2VfYmluYXJ5OiBwaGRyOiBwYWRkcj0weDFl
-ZGMwMDAgbWVtc3o9MHgxM2MwMA0KKFhFTikgWzIwMTItMDktMDMgMjA6NTU6MzFdIGVsZl9w
-YXJzZV9iaW5hcnk6IHBoZHI6IHBhZGRyPTB4MWVmMDAwMCBtZW1zej0weGRlNTAwMA0KKFhF
-TikgWzIwMTItMDktMDMgMjA6NTU6MzFdIGVsZl9wYXJzZV9iaW5hcnk6IG1lbW9yeTogMHgx
-MDAwMDAwIC0+IDB4MmNkNTAwMA0KKFhFTikgWzIwMTItMDktMDMgMjA6NTU6MzFdIGVsZl94
-ZW5fcGFyc2Vfbm90ZTogR1VFU1RfT1MgPSAibGludXgiDQooWEVOKSBbMjAxMi0wOS0wMyAy
-MDo1NTozMV0gZWxmX3hlbl9wYXJzZV9ub3RlOiBHVUVTVF9WRVJTSU9OID0gIjIuNiINCihY
-RU4pIFsyMDEyLTA5LTAzIDIwOjU1OjMxXSBlbGZfeGVuX3BhcnNlX25vdGU6IFhFTl9WRVJT
-SU9OID0gInhlbi0zLjAiDQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1NTozMV0gZWxmX3hlbl9w
-YXJzZV9ub3RlOiBWSVJUX0JBU0UgPSAweGZmZmZmZmZmODAwMDAwMDANCihYRU4pIFsyMDEy
-LTA5LTAzIDIwOjU1OjMxXSBlbGZfeGVuX3BhcnNlX25vdGU6IEVOVFJZID0gMHhmZmZmZmZm
-ZjgxZWYwMjEwDQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1NTozMV0gZWxmX3hlbl9wYXJzZV9u
-b3RlOiBIWVBFUkNBTExfUEFHRSA9IDB4ZmZmZmZmZmY4MTAwMTAwMA0KKFhFTikgWzIwMTIt
-MDktMDMgMjA6NTU6MzFdIGVsZl94ZW5fcGFyc2Vfbm90ZTogRkVBVFVSRVMgPSAiIXdyaXRh
-YmxlX3BhZ2VfdGFibGVzfHBhZV9wZ2Rpcl9hYm92ZV80Z2IiDQooWEVOKSBbMjAxMi0wOS0w
-MyAyMDo1NTozMV0gZWxmX3hlbl9wYXJzZV9ub3RlOiBQQUVfTU9ERSA9ICJ5ZXMiDQooWEVO
-KSBbMjAxMi0wOS0wMyAyMDo1NTozMV0gZWxmX3hlbl9wYXJzZV9ub3RlOiBMT0FERVIgPSAi
-Z2VuZXJpYyINCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU1OjMxXSBlbGZfeGVuX3BhcnNlX25v
-dGU6IHVua25vd24geGVuIGVsZiBub3RlICgweGQpDQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1
-NTozMV0gZWxmX3hlbl9wYXJzZV9ub3RlOiBTVVNQRU5EX0NBTkNFTCA9IDB4MQ0KKFhFTikg
-WzIwMTItMDktMDMgMjA6NTU6MzFdIGVsZl94ZW5fcGFyc2Vfbm90ZTogSFZfU1RBUlRfTE9X
-ID0gMHhmZmZmODAwMDAwMDAwMDAwDQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1NTozMV0gZWxm
-X3hlbl9wYXJzZV9ub3RlOiBQQUREUl9PRkZTRVQgPSAweDANCihYRU4pIFsyMDEyLTA5LTAz
-IDIwOjU1OjMxXSBlbGZfeGVuX2FkZHJfY2FsY19jaGVjazogYWRkcmVzc2VzOg0KKFhFTikg
-WzIwMTItMDktMDMgMjA6NTU6MzFdICAgICB2aXJ0X2Jhc2UgICAgICAgID0gMHhmZmZmZmZm
-ZjgwMDAwMDAwDQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1NTozMV0gICAgIGVsZl9wYWRkcl9v
-ZmZzZXQgPSAweDANCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU1OjMxXSAgICAgdmlydF9vZmZz
-ZXQgICAgICA9IDB4ZmZmZmZmZmY4MDAwMDAwMA0KKFhFTikgWzIwMTItMDktMDMgMjA6NTU6
-MzFdICAgICB2aXJ0X2tzdGFydCAgICAgID0gMHhmZmZmZmZmZjgxMDAwMDAwDQooWEVOKSBb
-MjAxMi0wOS0wMyAyMDo1NTozMV0gICAgIHZpcnRfa2VuZCAgICAgICAgPSAweGZmZmZmZmZm
-ODJjZDUwMDANCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU1OjMxXSAgICAgdmlydF9lbnRyeSAg
-ICAgICA9IDB4ZmZmZmZmZmY4MWVmMDIxMA0KKFhFTikgWzIwMTItMDktMDMgMjA6NTU6MzFd
-ICAgICBwMm1fYmFzZSAgICAgICAgID0gMHhmZmZmZmZmZmZmZmZmZmZmDQooWEVOKSBbMjAx
-Mi0wOS0wMyAyMDo1NTozMV0gIFhlbiAga2VybmVsOiA2NC1iaXQsIGxzYiwgY29tcGF0MzIN
-CihYRU4pIFsyMDEyLTA5LTAzIDIwOjU1OjMxXSAgRG9tMCBrZXJuZWw6IDY0LWJpdCwgUEFF
-LCBsc2IsIHBhZGRyIDB4MTAwMDAwMCAtPiAweDJjZDUwMDANCihYRU4pIFsyMDEyLTA5LTAz
-IDIwOjU1OjMxXSBQSFlTSUNBTCBNRU1PUlkgQVJSQU5HRU1FTlQ6DQooWEVOKSBbMjAxMi0w
-OS0wMyAyMDo1NTozMV0gIERvbTAgYWxsb2MuOiAgIDAwMDAwMDAyNDAwMDAwMDAtPjAwMDAw
-MDAyNDQwMDAwMDAgKDI0MjQyOCBwYWdlcyB0byBiZSBhbGxvY2F0ZWQpDQooWEVOKSBbMjAx
-Mi0wOS0wMyAyMDo1NTozMV0gIEluaXQuIHJhbWRpc2s6IDAwMDAwMDAyNGYyZmMwMDAtPjAw
-MDAwMDAyNGZmZmY4MDANCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU1OjMxXSBWSVJUVUFMIE1F
-TU9SWSBBUlJBTkdFTUVOVDoNCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU1OjMxXSAgTG9hZGVk
-IGtlcm5lbDogZmZmZmZmZmY4MTAwMDAwMC0+ZmZmZmZmZmY4MmNkNTAwMA0KKFhFTikgWzIw
-MTItMDktMDMgMjA6NTU6MzFdICBJbml0LiByYW1kaXNrOiBmZmZmZmZmZjgyY2Q1MDAwLT5m
-ZmZmZmZmZjgzOWQ4ODAwDQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1NTozMV0gIFBoeXMtTWFj
-aCBtYXA6IGZmZmZmZmZmODM5ZDkwMDAtPmZmZmZmZmZmODNiZDkwMDANCihYRU4pIFsyMDEy
-LTA5LTAzIDIwOjU1OjMxXSAgU3RhcnQgaW5mbzogICAgZmZmZmZmZmY4M2JkOTAwMC0+ZmZm
-ZmZmZmY4M2JkOTRiNA0KKFhFTikgWzIwMTItMDktMDMgMjA6NTU6MzFdICBQYWdlIHRhYmxl
-czogICBmZmZmZmZmZjgzYmRhMDAwLT5mZmZmZmZmZjgzYmZkMDAwDQooWEVOKSBbMjAxMi0w
-OS0wMyAyMDo1NTozMV0gIEJvb3Qgc3RhY2s6ICAgIGZmZmZmZmZmODNiZmQwMDAtPmZmZmZm
-ZmZmODNiZmUwMDANCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU1OjMxXSAgVE9UQUw6ICAgICAg
-ICAgZmZmZmZmZmY4MDAwMDAwMC0+ZmZmZmZmZmY4NDAwMDAwMA0KKFhFTikgWzIwMTItMDkt
-MDMgMjA6NTU6MzFdICBFTlRSWSBBRERSRVNTOiBmZmZmZmZmZjgxZWYwMjEwDQooWEVOKSBb
-MjAxMi0wOS0wMyAyMDo1NTozMV0gRG9tMCBoYXMgbWF4aW11bSA2IFZDUFVzDQooWEVOKSBb
-MjAxMi0wOS0wMyAyMDo1NTozMl0gZWxmX2xvYWRfYmluYXJ5OiBwaGRyIDAgYXQgMHhmZmZm
-ZmZmZjgxMDAwMDAwIC0+IDB4ZmZmZmZmZmY4MWQ2YTAwMA0KKFhFTikgWzIwMTItMDktMDMg
-MjA6NTU6MzJdIGVsZl9sb2FkX2JpbmFyeTogcGhkciAxIGF0IDB4ZmZmZmZmZmY4MWUwMDAw
-MCAtPiAweGZmZmZmZmZmODFlZGIwZTgNCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU1OjMyXSBl
-bGZfbG9hZF9iaW5hcnk6IHBoZHIgMiBhdCAweGZmZmZmZmZmODFlZGMwMDAgLT4gMHhmZmZm
-ZmZmZjgxZWVmYzAwDQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1NTozMl0gZWxmX2xvYWRfYmlu
-YXJ5OiBwaGRyIDMgYXQgMHhmZmZmZmZmZjgxZWYwMDAwIC0+IDB4ZmZmZmZmZmY4MWY4OTAw
-MA0KKFhFTikgWzIwMTItMDktMDMgMjA6NTU6MzJdIEFNRC1WaTogTUUgSEVSRSAhPDI+QU1E
-LVZpOiBTZXR1cCBJL08gcGFnZSB0YWJsZTogZGV2aWNlIGlkID0gMHgwMDAwLCByb290IHRh
-YmxlID0gMHgyNGQ4NGIwMDAsIGRvbWFpbiA9IDAsIHBhZ2luZyBtb2RlID0gMw0KKFhFTikg
-WzIwMTItMDktMDMgMjA6NTU6MzJdIEFNRC1WaTogU2V0dXAgSS9PIHBhZ2UgdGFibGU6IGRl
-dmljZSBpZCA9IDB4MDAwMiwgcm9vdCB0YWJsZSA9IDB4MjRkODRiMDAwLCBkb21haW4gPSAw
-LCBwYWdpbmcgbW9kZSA9IDMNCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU1OjMyXSBBTUQtVmk6
-IFNldHVwIEkvTyBwYWdlIHRhYmxlOiBkZXZpY2UgaWQgPSAweDAwMTAsIHJvb3QgdGFibGUg
-PSAweDI0ZDg0YjAwMCwgZG9tYWluID0gMCwgcGFnaW5nIG1vZGUgPSAzDQooWEVOKSBbMjAx
-Mi0wOS0wMyAyMDo1NTozMl0gQU1ELVZpOiBTZXR1cCBJL08gcGFnZSB0YWJsZTogZGV2aWNl
-IGlkID0gMHgwMDE4LCByb290IHRhYmxlID0gMHgyNGQ4NGIwMDAsIGRvbWFpbiA9IDAsIHBh
-Z2luZyBtb2RlID0gMw0KKFhFTikgWzIwMTItMDktMDMgMjA6NTU6MzJdIEFNRC1WaTogU2V0
-dXAgSS9PIHBhZ2UgdGFibGU6IGRldmljZSBpZCA9IDB4MDAyOCwgcm9vdCB0YWJsZSA9IDB4
-MjRkODRiMDAwLCBkb21haW4gPSAwLCBwYWdpbmcgbW9kZSA9IDMNCihYRU4pIFsyMDEyLTA5
-LTAzIDIwOjU1OjMyXSBBTUQtVmk6IFNldHVwIEkvTyBwYWdlIHRhYmxlOiBkZXZpY2UgaWQg
-PSAweDAwMzAsIHJvb3QgdGFibGUgPSAweDI0ZDg0YjAwMCwgZG9tYWluID0gMCwgcGFnaW5n
-IG1vZGUgPSAzDQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1NTozMl0gQU1ELVZpOiBTZXR1cCBJ
-L08gcGFnZSB0YWJsZTogZGV2aWNlIGlkID0gMHgwMDUwLCByb290IHRhYmxlID0gMHgyNGQ4
-NGIwMDAsIGRvbWFpbiA9IDAsIHBhZ2luZyBtb2RlID0gMw0KKFhFTikgWzIwMTItMDktMDMg
-MjA6NTU6MzJdIEFNRC1WaTogU2V0dXAgSS9PIHBhZ2UgdGFibGU6IGRldmljZSBpZCA9IDB4
-MDA1OCwgcm9vdCB0YWJsZSA9IDB4MjRkODRiMDAwLCBkb21haW4gPSAwLCBwYWdpbmcgbW9k
-ZSA9IDMNCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU1OjMyXSBBTUQtVmk6IFNldHVwIEkvTyBw
-YWdlIHRhYmxlOiBkZXZpY2UgaWQgPSAweDAwNjAsIHJvb3QgdGFibGUgPSAweDI0ZDg0YjAw
-MCwgZG9tYWluID0gMCwgcGFnaW5nIG1vZGUgPSAzDQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1
-NTozMl0gQU1ELVZpOiBTZXR1cCBJL08gcGFnZSB0YWJsZTogZGV2aWNlIGlkID0gMHgwMDY4
-LCByb290IHRhYmxlID0gMHgyNGQ4NGIwMDAsIGRvbWFpbiA9IDAsIHBhZ2luZyBtb2RlID0g
-Mw0KKFhFTikgWzIwMTItMDktMDMgMjA6NTU6MzJdIEFNRC1WaTogU2V0dXAgSS9PIHBhZ2Ug
-dGFibGU6IGRldmljZSBpZCA9IDB4MDA4OCwgcm9vdCB0YWJsZSA9IDB4MjRkODRiMDAwLCBk
-b21haW4gPSAwLCBwYWdpbmcgbW9kZSA9IDMNCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU1OjMy
-XSBBTUQtVmk6IFNldHVwIEkvTyBwYWdlIHRhYmxlOiBkZXZpY2UgaWQgPSAweDAwOTAsIHJv
-b3QgdGFibGUgPSAweDI0ZDg0YjAwMCwgZG9tYWluID0gMCwgcGFnaW5nIG1vZGUgPSAzDQoo
-WEVOKSBbMjAxMi0wOS0wMyAyMDo1NTozMl0gQU1ELVZpOiBTZXR1cCBJL08gcGFnZSB0YWJs
-ZTogZGV2aWNlIGlkID0gMHgwMDkyLCByb290IHRhYmxlID0gMHgyNGQ4NGIwMDAsIGRvbWFp
-biA9IDAsIHBhZ2luZyBtb2RlID0gMw0KKFhFTikgWzIwMTItMDktMDMgMjA6NTU6MzJdIEFN
-RC1WaTogU2V0dXAgSS9PIHBhZ2UgdGFibGU6IGRldmljZSBpZCA9IDB4MDA5OCwgcm9vdCB0
-YWJsZSA9IDB4MjRkODRiMDAwLCBkb21haW4gPSAwLCBwYWdpbmcgbW9kZSA9IDMNCihYRU4p
-IFsyMDEyLTA5LTAzIDIwOjU1OjMyXSBBTUQtVmk6IFNldHVwIEkvTyBwYWdlIHRhYmxlOiBk
-ZXZpY2UgaWQgPSAweDAwOWEsIHJvb3QgdGFibGUgPSAweDI0ZDg0YjAwMCwgZG9tYWluID0g
-MCwgcGFnaW5nIG1vZGUgPSAzDQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1NTozMl0gQU1ELVZp
-OiBTZXR1cCBJL08gcGFnZSB0YWJsZTogZGV2aWNlIGlkID0gMHgwMGEwLCByb290IHRhYmxl
-ID0gMHgyNGQ4NGIwMDAsIGRvbWFpbiA9IDAsIHBhZ2luZyBtb2RlID0gMw0KKFhFTikgWzIw
-MTItMDktMDMgMjA6NTU6MzJdIEFNRC1WaTogU2V0dXAgSS9PIHBhZ2UgdGFibGU6IGRldmlj
-ZSBpZCA9IDB4MDBhMywgcm9vdCB0YWJsZSA9IDB4MjRkODRiMDAwLCBkb21haW4gPSAwLCBw
-YWdpbmcgbW9kZSA9IDMNCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU1OjMyXSBBTUQtVmk6IFNl
-dHVwIEkvTyBwYWdlIHRhYmxlOiBkZXZpY2UgaWQgPSAweDAwYTQsIHJvb3QgdGFibGUgPSAw
-eDI0ZDg0YjAwMCwgZG9tYWluID0gMCwgcGFnaW5nIG1vZGUgPSAzDQooWEVOKSBbMjAxMi0w
-OS0wMyAyMDo1NTozMl0gQU1ELVZpOiBTZXR1cCBJL08gcGFnZSB0YWJsZTogZGV2aWNlIGlk
-ID0gMHgwMGE1LCByb290IHRhYmxlID0gMHgyNGQ4NGIwMDAsIGRvbWFpbiA9IDAsIHBhZ2lu
-ZyBtb2RlID0gMw0KKFhFTikgWzIwMTItMDktMDMgMjA6NTU6MzJdIEFNRC1WaTogU2V0dXAg
-SS9PIHBhZ2UgdGFibGU6IGRldmljZSBpZCA9IDB4MDBhOCwgcm9vdCB0YWJsZSA9IDB4MjRk
-ODRiMDAwLCBkb21haW4gPSAwLCBwYWdpbmcgbW9kZSA9IDMNCihYRU4pIFsyMDEyLTA5LTAz
-IDIwOjU1OjMyXSBBTUQtVmk6IFNldHVwIEkvTyBwYWdlIHRhYmxlOiBkZXZpY2UgaWQgPSAw
-eDAwYjAsIHJvb3QgdGFibGUgPSAweDI0ZDg0YjAwMCwgZG9tYWluID0gMCwgcGFnaW5nIG1v
-ZGUgPSAzDQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1NTozMl0gQU1ELVZpOiBTZXR1cCBJL08g
-cGFnZSB0YWJsZTogZGV2aWNlIGlkID0gMHgwMGIyLCByb290IHRhYmxlID0gMHgyNGQ4NGIw
-MDAsIGRvbWFpbiA9IDAsIHBhZ2luZyBtb2RlID0gMw0KKFhFTikgWzIwMTItMDktMDMgMjA6
-NTU6MzJdIEFNRC1WaTogTm8gaW9tbXUgZm9yIGRldmljZSAwMDAwOjAwOjE4LjANCihYRU4p
-IFsyMDEyLTA5LTAzIDIwOjU1OjMyXSBBTUQtVmk6IE5vIGlvbW11IGZvciBkZXZpY2UgMDAw
-MDowMDoxOC4xDQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1NTozMl0gQU1ELVZpOiBObyBpb21t
-dSBmb3IgZGV2aWNlIDAwMDA6MDA6MTguMg0KKFhFTikgWzIwMTItMDktMDMgMjA6NTU6MzJd
-IEFNRC1WaTogTm8gaW9tbXUgZm9yIGRldmljZSAwMDAwOjAwOjE4LjMNCihYRU4pIFsyMDEy
-LTA5LTAzIDIwOjU1OjMyXSBBTUQtVmk6IE5vIGlvbW11IGZvciBkZXZpY2UgMDAwMDowMDox
-OC40DQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1NTozMl0gQU1ELVZpOiBTZXR1cCBJL08gcGFn
-ZSB0YWJsZTogZGV2aWNlIGlkID0gMHgwNDAwLCByb290IHRhYmxlID0gMHgyNGQ4NGIwMDAs
-IGRvbWFpbiA9IDAsIHBhZ2luZyBtb2RlID0gMw0KKFhFTikgWzIwMTItMDktMDMgMjA6NTU6
-MzJdIEFNRC1WaTogU2V0dXAgSS9PIHBhZ2UgdGFibGU6IGRldmljZSBpZCA9IDB4MDQwMSwg
-cm9vdCB0YWJsZSA9IDB4MjRkODRiMDAwLCBkb21haW4gPSAwLCBwYWdpbmcgbW9kZSA9IDMN
-CihYRU4pIFsyMDEyLTA5LTAzIDIwOjU1OjMyXSBBTUQtVmk6IFNldHVwIEkvTyBwYWdlIHRh
-YmxlOiBkZXZpY2UgaWQgPSAweDA0MDIsIHJvb3QgdGFibGUgPSAweDI0ZDg0YjAwMCwgZG9t
-YWluID0gMCwgcGFnaW5nIG1vZGUgPSAzDQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1NTozMl0g
-QU1ELVZpOiBTZXR1cCBJL08gcGFnZSB0YWJsZTogZGV2aWNlIGlkID0gMHgwNDAzLCByb290
-IHRhYmxlID0gMHgyNGQ4NGIwMDAsIGRvbWFpbiA9IDAsIHBhZ2luZyBtb2RlID0gMw0KKFhF
-TikgWzIwMTItMDktMDMgMjA6NTU6MzJdIEFNRC1WaTogU2V0dXAgSS9PIHBhZ2UgdGFibGU6
-IGRldmljZSBpZCA9IDB4MDQwNCwgcm9vdCB0YWJsZSA9IDB4MjRkODRiMDAwLCBkb21haW4g
-PSAwLCBwYWdpbmcgbW9kZSA9IDMNCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU1OjMyXSBBTUQt
-Vmk6IFNldHVwIEkvTyBwYWdlIHRhYmxlOiBkZXZpY2UgaWQgPSAweDA0MDUsIHJvb3QgdGFi
-bGUgPSAweDI0ZDg0YjAwMCwgZG9tYWluID0gMCwgcGFnaW5nIG1vZGUgPSAzDQooWEVOKSBb
-MjAxMi0wOS0wMyAyMDo1NTozMl0gQU1ELVZpOiBTZXR1cCBJL08gcGFnZSB0YWJsZTogZGV2
-aWNlIGlkID0gMHgwNDA2LCByb290IHRhYmxlID0gMHgyNGQ4NGIwMDAsIGRvbWFpbiA9IDAs
-IHBhZ2luZyBtb2RlID0gMw0KKFhFTikgWzIwMTItMDktMDMgMjA6NTU6MzJdIEFNRC1WaTog
-U2V0dXAgSS9PIHBhZ2UgdGFibGU6IGRldmljZSBpZCA9IDB4MDQwNywgcm9vdCB0YWJsZSA9
-IDB4MjRkODRiMDAwLCBkb21haW4gPSAwLCBwYWdpbmcgbW9kZSA9IDMNCihYRU4pIFsyMDEy
-LTA5LTAzIDIwOjU1OjMyXSBBTUQtVmk6IFNldHVwIEkvTyBwYWdlIHRhYmxlOiBkZXZpY2Ug
-aWQgPSAweDA1MDAsIHJvb3QgdGFibGUgPSAweDI0ZDg0YjAwMCwgZG9tYWluID0gMCwgcGFn
-aW5nIG1vZGUgPSAzDQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1NTozMl0gQU1ELVZpOiBTZXR1
-cCBJL08gcGFnZSB0YWJsZTogZGV2aWNlIGlkID0gMHgwNjAwLCByb290IHRhYmxlID0gMHgy
-NGQ4NGIwMDAsIGRvbWFpbiA9IDAsIHBhZ2luZyBtb2RlID0gMw0KKFhFTikgWzIwMTItMDkt
-MDMgMjA6NTU6MzJdIEFNRC1WaTogU2V0dXAgSS9PIHBhZ2UgdGFibGU6IGRldmljZSBpZCA9
-IDB4MDYwMSwgcm9vdCB0YWJsZSA9IDB4MjRkODRiMDAwLCBkb21haW4gPSAwLCBwYWdpbmcg
-bW9kZSA9IDMNCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU1OjMyXSBBTUQtVmk6IFNldHVwIEkv
-TyBwYWdlIHRhYmxlOiBkZXZpY2UgaWQgPSAweDA3MDAsIHJvb3QgdGFibGUgPSAweDI0ZDg0
-YjAwMCwgZG9tYWluID0gMCwgcGFnaW5nIG1vZGUgPSAzDQooWEVOKSBbMjAxMi0wOS0wMyAy
-MDo1NTozMl0gQU1ELVZpOiBTZXR1cCBJL08gcGFnZSB0YWJsZTogZGV2aWNlIGlkID0gMHgw
-ODAwLCByb290IHRhYmxlID0gMHgyNGQ4NGIwMDAsIGRvbWFpbiA9IDAsIHBhZ2luZyBtb2Rl
-ID0gMw0KKFhFTikgWzIwMTItMDktMDMgMjA6NTU6MzJdIEFNRC1WaTogU2V0dXAgSS9PIHBh
-Z2UgdGFibGU6IGRldmljZSBpZCA9IDB4MDkwMCwgcm9vdCB0YWJsZSA9IDB4MjRkODRiMDAw
-LCBkb21haW4gPSAwLCBwYWdpbmcgbW9kZSA9IDMNCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU1
-OjMyXSBBTUQtVmk6IFNldHVwIEkvTyBwYWdlIHRhYmxlOiBkZXZpY2UgaWQgPSAweDBhMDAs
-IHJvb3QgdGFibGUgPSAweDI0ZDg0YjAwMCwgZG9tYWluID0gMCwgcGFnaW5nIG1vZGUgPSAz
-DQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1NTozMl0gQU1ELVZpOiBTZXR1cCBJL08gcGFnZSB0
-YWJsZTogZGV2aWNlIGlkID0gMHgwYTAxLCByb290IHRhYmxlID0gMHgyNGQ4NGIwMDAsIGRv
-bWFpbiA9IDAsIHBhZ2luZyBtb2RlID0gMw0KKFhFTikgWzIwMTItMDktMDMgMjA6NTU6MzJd
-IEFNRC1WaTogU2V0dXAgSS9PIHBhZ2UgdGFibGU6IGRldmljZSBpZCA9IDB4MGEwMiwgcm9v
-dCB0YWJsZSA9IDB4MjRkODRiMDAwLCBkb21haW4gPSAwLCBwYWdpbmcgbW9kZSA9IDMNCihY
-RU4pIFsyMDEyLTA5LTAzIDIwOjU1OjMyXSBBTUQtVmk6IFNldHVwIEkvTyBwYWdlIHRhYmxl
-OiBkZXZpY2UgaWQgPSAweDBhMDMsIHJvb3QgdGFibGUgPSAweDI0ZDg0YjAwMCwgZG9tYWlu
-ID0gMCwgcGFnaW5nIG1vZGUgPSAzDQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1NTozMl0gQU1E
-LVZpOiBTZXR1cCBJL08gcGFnZSB0YWJsZTogZGV2aWNlIGlkID0gMHgwYTA0LCByb290IHRh
-YmxlID0gMHgyNGQ4NGIwMDAsIGRvbWFpbiA9IDAsIHBhZ2luZyBtb2RlID0gMw0KKFhFTikg
-WzIwMTItMDktMDMgMjA6NTU6MzJdIEFNRC1WaTogU2V0dXAgSS9PIHBhZ2UgdGFibGU6IGRl
-dmljZSBpZCA9IDB4MGEwNSwgcm9vdCB0YWJsZSA9IDB4MjRkODRiMDAwLCBkb21haW4gPSAw
-LCBwYWdpbmcgbW9kZSA9IDMNCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU1OjMyXSBBTUQtVmk6
-IFNldHVwIEkvTyBwYWdlIHRhYmxlOiBkZXZpY2UgaWQgPSAweDBhMDYsIHJvb3QgdGFibGUg
-PSAweDI0ZDg0YjAwMCwgZG9tYWluID0gMCwgcGFnaW5nIG1vZGUgPSAzDQooWEVOKSBbMjAx
-Mi0wOS0wMyAyMDo1NTozMl0gQU1ELVZpOiBTZXR1cCBJL08gcGFnZSB0YWJsZTogZGV2aWNl
-IGlkID0gMHgwYTA3LCByb290IHRhYmxlID0gMHgyNGQ4NGIwMDAsIGRvbWFpbiA9IDAsIHBh
-Z2luZyBtb2RlID0gMw0KKFhFTikgWzIwMTItMDktMDMgMjA6NTU6MzJdIEFNRC1WaTogU2V0
-dXAgSS9PIHBhZ2UgdGFibGU6IGRldmljZSBpZCA9IDB4MGIwMCwgcm9vdCB0YWJsZSA9IDB4
-MjRkODRiMDAwLCBkb21haW4gPSAwLCBwYWdpbmcgbW9kZSA9IDMNCihYRU4pIFsyMDEyLTA5
-LTAzIDIwOjU1OjMyXSBTY3J1YmJpbmcgRnJlZSBSQU06IC4uLi4uLi4uLi4uLi4uLi4uLi4u
-Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uZG9u
-ZS4NCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU1OjM0XSBJbml0aWFsIGxvdyBtZW1vcnkgdmly
-cSB0aHJlc2hvbGQgc2V0IGF0IDB4NDAwMCBwYWdlcy4NCihYRU4pIFsyMDEyLTA5LTAzIDIw
-OjU1OjM0XSBTdGQuIExvZ2xldmVsOiBBbGwNCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU1OjM0
-XSBHdWVzdCBMb2dsZXZlbDogQWxsDQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1NTozNF0gWGVu
-IGlzIHJlbGlucXVpc2hpbmcgVkdBIGNvbnNvbGUuDQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1
-NTozNF0gKioqIFNlcmlhbCBpbnB1dCAtPiBET00wICh0eXBlICdDVFJMLWEnIHRocmVlIHRp
-bWVzIHRvIHN3aXRjaCBpbnB1dCB0byBYZW4pDQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1NToz
-NF0gRnJlZWQgMjU2a0IgaW5pdCBtZW1vcnkuDQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1NToz
-NF0gSU9BUElDWzBdOiBTZXQgUENJIHJvdXRpbmcgZW50cnkgKDYtOSAtPiAweDYwIC0+IElS
-USA5IE1vZGU6MSBBY3RpdmU6MSkNCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU1OjM0XSB0cmFw
-cy5jOjI1ODQ6ZDAgRG9tYWluIGF0dGVtcHRlZCBXUk1TUiAwMDAwMDAwMGMwMDAwNDA4IGZy
-b20gMHhjMDAwMDAwMDAxMDAwMDAwIHRvIDB4YzAwODAwMDAwMTAwMDAwMC4NCihYRU4pIFsy
-MDEyLTA5LTAzIDIwOjU1OjM0XSB0cmFwcy5jOjI1ODQ6ZDAgRG9tYWluIGF0dGVtcHRlZCBX
-Uk1TUiAwMDAwMDAwMGMwMDAwNDA5IGZyb20gMHhjMDAwMDAwMDAxMDAwMDAwIHRvIDB4YzAw
-ODAwMDAwMTAwMDAwMC4NCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU1OjM1XSB0cmFwcy5jOjI1
-ODQ6ZDAgRG9tYWluIGF0dGVtcHRlZCBXUk1TUiAwMDAwMDAwMGMwMDEwMDA0IGZyb20gMHgw
-MDAwZWZmMGJkZmIxZmNlIHRvIDB4MDAwMDAwMDAwMDAwYWJjZC4NCihYRU4pIFsyMDEyLTA5
-LTAzIDIwOjU1OjM1XSB0cmFwcy5jOjI1ODQ6ZDAgRG9tYWluIGF0dGVtcHRlZCBXUk1TUiAw
-MDAwMDAwMGMwMDAwNDA4IGZyb20gMHhjMDAwMDAwMDAxMDAwMDAwIHRvIDB4YzAwODAwMDAw
-MTAwMDAwMC4NCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU1OjM1XSB0cmFwcy5jOjI1ODQ6ZDAg
-RG9tYWluIGF0dGVtcHRlZCBXUk1TUiAwMDAwMDAwMGMwMDAwNDA5IGZyb20gMHhjMDAwMDAw
-MDAxMDAwMDAwIHRvIDB4YzAwODAwMDAwMTAwMDAwMC4NCihYRU4pIFsyMDEyLTA5LTAzIDIw
-OjU1OjM1XSB0cmFwcy5jOjI1ODQ6ZDAgRG9tYWluIGF0dGVtcHRlZCBXUk1TUiAwMDAwMDAw
-MGMwMDAwNDA4IGZyb20gMHhjMDAwMDAwMDAxMDAwMDAwIHRvIDB4YzAwODAwMDAwMTAwMDAw
-MC4NCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU1OjM1XSB0cmFwcy5jOjI1ODQ6ZDAgRG9tYWlu
-IGF0dGVtcHRlZCBXUk1TUiAwMDAwMDAwMGMwMDAwNDA5IGZyb20gMHhjMDAwMDAwMDAxMDAw
-MDAwIHRvIDB4YzAwODAwMDAwMTAwMDAwMC4NCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU1OjM1
-XSB0cmFwcy5jOjI1ODQ6ZDAgRG9tYWluIGF0dGVtcHRlZCBXUk1TUiAwMDAwMDAwMGMwMDAw
-NDA4IGZyb20gMHhjMDAwMDAwMDAxMDAwMDAwIHRvIDB4YzAwODAwMDAwMTAwMDAwMC4NCihY
-RU4pIFsyMDEyLTA5LTAzIDIwOjU1OjM1XSB0cmFwcy5jOjI1ODQ6ZDAgRG9tYWluIGF0dGVt
-cHRlZCBXUk1TUiAwMDAwMDAwMGMwMDAwNDA5IGZyb20gMHhjMDAwMDAwMDAxMDAwMDAwIHRv
-IDB4YzAwODAwMDAwMTAwMDAwMC4NCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU1OjM1XSB0cmFw
-cy5jOjI1ODQ6ZDAgRG9tYWluIGF0dGVtcHRlZCBXUk1TUiAwMDAwMDAwMGMwMDAwNDA4IGZy
-b20gMHhjMDAwMDAwMDAxMDAwMDAwIHRvIDB4YzAwODAwMDAwMTAwMDAwMC4NCihYRU4pIFsy
-MDEyLTA5LTAzIDIwOjU1OjM1XSB0cmFwcy5jOjI1ODQ6ZDAgRG9tYWluIGF0dGVtcHRlZCBX
-Uk1TUiAwMDAwMDAwMGMwMDAwNDA5IGZyb20gMHhjMDAwMDAwMDAxMDAwMDAwIHRvIDB4YzAw
-ODAwMDAwMTAwMDAwMC4NCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU1OjM1XSB0cmFwcy5jOjI1
-ODQ6ZDAgRG9tYWluIGF0dGVtcHRlZCBXUk1TUiAwMDAwMDAwMGMwMDAwNDA4IGZyb20gMHhj
-MDAwMDAwMDAxMDAwMDAwIHRvIDB4YzAwODAwMDAwMTAwMDAwMC4NCihYRU4pIFsyMDEyLTA5
-LTAzIDIwOjU1OjM1XSB0cmFwcy5jOjI1ODQ6ZDAgRG9tYWluIGF0dGVtcHRlZCBXUk1TUiAw
-MDAwMDAwMGMwMDAwNDA5IGZyb20gMHhjMDAwMDAwMDAxMDAwMDAwIHRvIDB4YzAwODAwMDAw
-MTAwMDAwMC4NCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU1OjM1XSBQQ0kgYWRkIGRldmljZSAw
-MDAwOjAwOjAwLjANCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU1OjM1XSBQQ0kgYWRkIGRldmlj
-ZSAwMDAwOjAwOjAwLjINCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU1OjM1XSBQQ0kgYWRkIGRl
-dmljZSAwMDAwOjAwOjAyLjANCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU1OjM1XSBQQ0kgYWRk
-IGRldmljZSAwMDAwOjAwOjAzLjANCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU1OjM1XSBQQ0kg
-YWRkIGRldmljZSAwMDAwOjAwOjA1LjANCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU1OjM1XSBQ
-Q0kgYWRkIGRldmljZSAwMDAwOjAwOjA2LjANCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU1OjM1
-XSBQQ0kgYWRkIGRldmljZSAwMDAwOjAwOjBhLjANCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU1
-OjM1XSBQQ0kgYWRkIGRldmljZSAwMDAwOjAwOjBiLjANCihYRU4pIFsyMDEyLTA5LTAzIDIw
-OjU1OjM1XSBQQ0kgYWRkIGRldmljZSAwMDAwOjAwOjBjLjANCihYRU4pIFsyMDEyLTA5LTAz
-IDIwOjU1OjM1XSBQQ0kgYWRkIGRldmljZSAwMDAwOjAwOjBkLjANCihYRU4pIFsyMDEyLTA5
-LTAzIDIwOjU1OjM1XSBQQ0kgYWRkIGRldmljZSAwMDAwOjAwOjExLjANCihYRU4pIFsyMDEy
-LTA5LTAzIDIwOjU1OjM1XSBQQ0kgYWRkIGRldmljZSAwMDAwOjAwOjEyLjANCihYRU4pIFsy
-MDEyLTA5LTAzIDIwOjU1OjM1XSBQQ0kgYWRkIGRldmljZSAwMDAwOjAwOjEyLjINCihYRU4p
-IFsyMDEyLTA5LTAzIDIwOjU1OjM1XSBQQ0kgYWRkIGRldmljZSAwMDAwOjAwOjEzLjANCihY
-RU4pIFsyMDEyLTA5LTAzIDIwOjU1OjM1XSBQQ0kgYWRkIGRldmljZSAwMDAwOjAwOjEzLjIN
-CihYRU4pIFsyMDEyLTA5LTAzIDIwOjU1OjM1XSBQQ0kgYWRkIGRldmljZSAwMDAwOjAwOjE0
-LjANCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU1OjM1XSBQQ0kgYWRkIGRldmljZSAwMDAwOjAw
-OjE0LjMNCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU1OjM1XSBQQ0kgYWRkIGRldmljZSAwMDAw
-OjAwOjE0LjQNCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU1OjM1XSBQQ0kgYWRkIGRldmljZSAw
-MDAwOjAwOjE0LjUNCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU1OjM1XSBQQ0kgYWRkIGRldmlj
-ZSAwMDAwOjAwOjE1LjANCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU1OjM1XSBQQ0kgYWRkIGRl
-dmljZSAwMDAwOjAwOjE2LjANCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU1OjM1XSBQQ0kgYWRk
-IGRldmljZSAwMDAwOjAwOjE2LjINCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU1OjM1XSBQQ0kg
-YWRkIGRldmljZSAwMDAwOjAwOjE4LjANCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU1OjM1XSBQ
-Q0kgYWRkIGRldmljZSAwMDAwOjAwOjE4LjENCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU1OjM1
-XSBQQ0kgYWRkIGRldmljZSAwMDAwOjAwOjE4LjINCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU1
-OjM1XSBQQ0kgYWRkIGRldmljZSAwMDAwOjAwOjE4LjMNCihYRU4pIFsyMDEyLTA5LTAzIDIw
-OjU1OjM1XSBQQ0kgYWRkIGRldmljZSAwMDAwOjAwOjE4LjQNCihYRU4pIFsyMDEyLTA5LTAz
-IDIwOjU1OjM1XSBQQ0kgYWRkIGRldmljZSAwMDAwOjBiOjAwLjANCihYRU4pIFsyMDEyLTA5
-LTAzIDIwOjU1OjM1XSBQQ0kgYWRkIGRldmljZSAwMDAwOjBhOjAwLjANCihYRU4pIFsyMDEy
-LTA5LTAzIDIwOjU1OjM1XSBQQ0kgYWRkIGRldmljZSAwMDAwOjBhOjAwLjENCihYRU4pIFsy
-MDEyLTA5LTAzIDIwOjU1OjM1XSBQQ0kgYWRkIGRldmljZSAwMDAwOjBhOjAwLjINCihYRU4p
-IFsyMDEyLTA5LTAzIDIwOjU1OjM1XSBQQ0kgYWRkIGRldmljZSAwMDAwOjBhOjAwLjMNCihY
-RU4pIFsyMDEyLTA5LTAzIDIwOjU1OjM1XSBQQ0kgYWRkIGRldmljZSAwMDAwOjBhOjAwLjQN
-CihYRU4pIFsyMDEyLTA5LTAzIDIwOjU1OjM1XSBQQ0kgYWRkIGRldmljZSAwMDAwOjBhOjAw
-LjUNCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU1OjM1XSBQQ0kgYWRkIGRldmljZSAwMDAwOjBh
-OjAwLjYNCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU1OjM1XSBQQ0kgYWRkIGRldmljZSAwMDAw
-OjBhOjAwLjcNCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU1OjM1XSBQQ0kgYWRkIGRldmljZSAw
-MDAwOjA5OjAwLjANCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU1OjM1XSBQQ0kgYWRkIGRldmlj
-ZSAwMDAwOjA4OjAwLjANCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU1OjM1XSBQQ0kgYWRkIGRl
-dmljZSAwMDAwOjA3OjAwLjANCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU1OjM1XSBQQ0kgYWRk
-IGRldmljZSAwMDAwOjA2OjAwLjANCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU1OjM1XSBQQ0kg
-YWRkIGRldmljZSAwMDAwOjA2OjAwLjENCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU1OjM1XSBQ
-Q0kgYWRkIGRldmljZSAwMDAwOjA1OjAwLjANCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU1OjM1
-XSBQQ0kgYWRkIGRldmljZSAwMDAwOjA0OjAwLjANCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU1
-OjM1XSBQQ0kgYWRkIGRldmljZSAwMDAwOjA0OjAwLjENCihYRU4pIFsyMDEyLTA5LTAzIDIw
-OjU1OjM1XSBQQ0kgYWRkIGRldmljZSAwMDAwOjA0OjAwLjINCihYRU4pIFsyMDEyLTA5LTAz
-IDIwOjU1OjM1XSBQQ0kgYWRkIGRldmljZSAwMDAwOjA0OjAwLjMNCihYRU4pIFsyMDEyLTA5
-LTAzIDIwOjU1OjM1XSBQQ0kgYWRkIGRldmljZSAwMDAwOjA0OjAwLjQNCihYRU4pIFsyMDEy
-LTA5LTAzIDIwOjU1OjM1XSBQQ0kgYWRkIGRldmljZSAwMDAwOjA0OjAwLjUNCihYRU4pIFsy
-MDEyLTA5LTAzIDIwOjU1OjM1XSBQQ0kgYWRkIGRldmljZSAwMDAwOjA0OjAwLjYNCihYRU4p
-IFsyMDEyLTA5LTAzIDIwOjU1OjM1XSBQQ0kgYWRkIGRldmljZSAwMDAwOjA0OjAwLjcNCihY
-RU4pIFsyMDEyLTA5LTAzIDIwOjU1OjM1XSBQQ0kgYWRkIGRldmljZSAwMDAwOjAzOjA2LjAN
-CihYRU4pIFsyMDEyLTA5LTAzIDIwOjU1OjM1XSBJT0FQSUNbMF06IFNldCBQQ0kgcm91dGlu
-ZyBlbnRyeSAoNi04IC0+IDB4NTggLT4gSVJRIDggTW9kZTowIEFjdGl2ZTowKQ0KKFhFTikg
-WzIwMTItMDktMDMgMjA6NTU6MzVdIElPQVBJQ1swXTogU2V0IFBDSSByb3V0aW5nIGVudHJ5
-ICg2LTEzIC0+IDB4ODggLT4gSVJRIDEzIE1vZGU6MCBBY3RpdmU6MCkNCihYRU4pIFsyMDEy
-LTA5LTAzIDIwOjU1OjM1XSBJT0FQSUNbMV06IFNldCBQQ0kgcm91dGluZyBlbnRyeSAoNy0y
-OCAtPiAweGEwIC0+IElSUSA1MiBNb2RlOjEgQWN0aXZlOjEpDQooWEVOKSBbMjAxMi0wOS0w
-MyAyMDo1NTozNV0gSU9BUElDWzFdOiBTZXQgUENJIHJvdXRpbmcgZW50cnkgKDctMjkgLT4g
-MHhhOCAtPiBJUlEgNTMgTW9kZToxIEFjdGl2ZToxKQ0KKFhFTikgWzIwMTItMDktMDMgMjA6
-NTU6MzVdIElPQVBJQ1sxXTogU2V0IFBDSSByb3V0aW5nIGVudHJ5ICg3LTMwIC0+IDB4YjAg
-LT4gSVJRIDU0IE1vZGU6MSBBY3RpdmU6MSkNCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU1OjM1
-XSBJT0FQSUNbMF06IFNldCBQQ0kgcm91dGluZyBlbnRyeSAoNi0xNiAtPiAweGI4IC0+IElS
-USAxNiBNb2RlOjEgQWN0aXZlOjEpDQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1NTozNV0gSU9B
-UElDWzBdOiBTZXQgUENJIHJvdXRpbmcgZW50cnkgKDYtMTggLT4gMHhjMCAtPiBJUlEgMTgg
-TW9kZToxIEFjdGl2ZToxKQ0KKFhFTikgWzIwMTItMDktMDMgMjA6NTU6MzVdIElPQVBJQ1sw
-XTogU2V0IFBDSSByb3V0aW5nIGVudHJ5ICg2LTE3IC0+IDB4YzggLT4gSVJRIDE3IE1vZGU6
-MSBBY3RpdmU6MSkNCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU1OjM1XSBJT0FQSUNbMV06IFNl
-dCBQQ0kgcm91dGluZyBlbnRyeSAoNy00IC0+IDB4ZDAgLT4gSVJRIDI4IE1vZGU6MSBBY3Rp
-dmU6MSkNCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU1OjM1XSBJT0FQSUNbMV06IFNldCBQQ0kg
-cm91dGluZyBlbnRyeSAoNy01IC0+IDB4ZDggLT4gSVJRIDI5IE1vZGU6MSBBY3RpdmU6MSkN
-CihYRU4pIFsyMDEyLTA5LTAzIDIwOjU1OjM1XSBJT0FQSUNbMV06IFNldCBQQ0kgcm91dGlu
-ZyBlbnRyeSAoNy02IC0+IDB4MjEgLT4gSVJRIDMwIE1vZGU6MSBBY3RpdmU6MSkNCihYRU4p
-IFsyMDEyLTA5LTAzIDIwOjU1OjM1XSBJT0FQSUNbMV06IFNldCBQQ0kgcm91dGluZyBlbnRy
-eSAoNy03IC0+IDB4MjkgLT4gSVJRIDMxIE1vZGU6MSBBY3RpdmU6MSkNCihYRU4pIFsyMDEy
-LTA5LTAzIDIwOjU1OjM1XSBJT0FQSUNbMV06IFNldCBQQ0kgcm91dGluZyBlbnRyeSAoNy0x
-NiAtPiAweDMxIC0+IElSUSA0MCBNb2RlOjEgQWN0aXZlOjEpDQooWEVOKSBbMjAxMi0wOS0w
-MyAyMDo1NTozNV0gSU9BUElDWzFdOiBTZXQgUENJIHJvdXRpbmcgZW50cnkgKDctMTcgLT4g
-MHgzOSAtPiBJUlEgNDEgTW9kZToxIEFjdGl2ZToxKQ0KKFhFTikgWzIwMTItMDktMDMgMjA6
-NTU6MzZdIElPQVBJQ1sxXTogU2V0IFBDSSByb3V0aW5nIGVudHJ5ICg3LTE4IC0+IDB4NDEg
-LT4gSVJRIDQyIE1vZGU6MSBBY3RpdmU6MSkNCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU1OjM2
-XSBJT0FQSUNbMV06IFNldCBQQ0kgcm91dGluZyBlbnRyeSAoNy0xOSAtPiAweDQ5IC0+IElS
-USA0MyBNb2RlOjEgQWN0aXZlOjEpDQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1NTozNl0gSU9B
-UElDWzBdOiBTZXQgUENJIHJvdXRpbmcgZW50cnkgKDYtMjIgLT4gMHg5OSAtPiBJUlEgMjIg
-TW9kZToxIEFjdGl2ZToxKQ0KKFhFTikgWzIwMTItMDktMDMgMjA6NTU6MzZdIElPQVBJQ1sx
-XTogU2V0IFBDSSByb3V0aW5nIGVudHJ5ICg3LTEyIC0+IDB4YTEgLT4gSVJRIDM2IE1vZGU6
-MSBBY3RpdmU6MSkNCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU1OjM2XSBJT0FQSUNbMV06IFNl
-dCBQQ0kgcm91dGluZyBlbnRyeSAoNy0yMyAtPiAweGE5IC0+IElSUSA0NyBNb2RlOjEgQWN0
-aXZlOjEpDQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1NTozNl0gSU9BUElDWzBdOiBTZXQgUENJ
-IHJvdXRpbmcgZW50cnkgKDYtMTkgLT4gMHhiMSAtPiBJUlEgMTkgTW9kZToxIEFjdGl2ZTox
-KQ0KKFhFTikgWzIwMTItMDktMDMgMjA6NTU6MzZdIElPQVBJQ1sxXTogU2V0IFBDSSByb3V0
-aW5nIGVudHJ5ICg3LTIyIC0+IDB4YzEgLT4gSVJRIDQ2IE1vZGU6MSBBY3RpdmU6MSkNCihY
-RU4pIFsyMDEyLTA5LTAzIDIwOjU1OjM2XSBJT0FQSUNbMV06IFNldCBQQ0kgcm91dGluZyBl
-bnRyeSAoNy0yNyAtPiAweGQxIC0+IElSUSA1MSBNb2RlOjEgQWN0aXZlOjEpDQooWEVOKSBb
-MjAxMi0wOS0wMyAyMDo1NTozOF0gSU9BUElDWzFdOiBTZXQgUENJIHJvdXRpbmcgZW50cnkg
-KDctOSAtPiAweDIyIC0+IElSUSAzMyBNb2RlOjEgQWN0aXZlOjEpDQooWEVOKSBbMjAxMi0w
-OS0wMyAyMDo1NjozN10gdHJhcHMuYzoyNTg0OmQxIERvbWFpbiBhdHRlbXB0ZWQgV1JNU1Ig
-MDAwMDAwMDBjMDAxMDAwNCBmcm9tIDB4MDAwMDQyMzQ1YTBkYTU0NSB0byAweDAwMDAwMDAw
-MDAwMGFiY2QuDQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1Njo0M10gdHJhcHMuYzoyNTg0OmQy
-IERvbWFpbiBhdHRlbXB0ZWQgV1JNU1IgMDAwMDAwMDBjMDAxMDAwNCBmcm9tIDB4MDAwMDg2
-NzljMDJiNDE2NSB0byAweDAwMDAwMDAwMDAwMGFiY2QuDQooWEVOKSBbMjAxMi0wOS0wMyAy
-MDo1Njo1NV0gdHJhcHMuYzoyNTg0OmQzIERvbWFpbiBhdHRlbXB0ZWQgV1JNU1IgMDAwMDAw
-MDBjMDAxMDAwNCBmcm9tIDB4MDAwMDQyMzQ1YTBkYTU0NSB0byAweDAwMDAwMDAwMDAwMGFi
-Y2QuDQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1Njo1NV0gdHJhcHMuYzoyNTg0OmQ0IERvbWFp
-biBhdHRlbXB0ZWQgV1JNU1IgMDAwMDAwMDBjMDAxMDAwNCBmcm9tIDB4MDAwMDg2NzljMDJi
-NDE2NSB0byAweDAwMDAwMDAwMDAwMGFiY2QuDQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1Nzow
-M10gdHJhcHMuYzoyNTg0OmQ1IERvbWFpbiBhdHRlbXB0ZWQgV1JNU1IgMDAwMDAwMDBjMDAx
-MDAwNCBmcm9tIDB4MDAwMDg2NzljMDJiNDE2NSB0byAweDAwMDAwMDAwMDAwMGFiY2QuDQoo
-WEVOKSBbMjAxMi0wOS0wMyAyMDo1NzowOV0gdHJhcHMuYzoyNTg0OmQ2IERvbWFpbiBhdHRl
-bXB0ZWQgV1JNU1IgMDAwMDAwMDBjMDAxMDAwNCBmcm9tIDB4MDAwMDZmYjAzOWRlNzkwMCB0
-byAweDAwMDAwMDAwMDAwMGFiY2QuDQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1NzoxNV0gdHJh
-cHMuYzoyNTg0OmQ3IERvbWFpbiBhdHRlbXB0ZWQgV1JNU1IgMDAwMDAwMDBjMDAxMDAwNCBm
-cm9tIDB4MDAwMGExOTVjNDBmNjE4ZiB0byAweDAwMDAwMDAwMDAwMGFiY2QuDQooWEVOKSBb
-MjAxMi0wOS0wMyAyMDo1NzoyMl0gdHJhcHMuYzoyNTg0OmQ4IERvbWFpbiBhdHRlbXB0ZWQg
-V1JNU1IgMDAwMDAwMDBjMDAxMDAwNCBmcm9tIDB4MDAwMDZmYjAzOWRlNzkwMCB0byAweDAw
-MDAwMDAwMDAwMGFiY2QuDQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1NzoyOF0gdHJhcHMuYzoy
-NTg0OmQ5IERvbWFpbiBhdHRlbXB0ZWQgV1JNU1IgMDAwMDAwMDBjMDAxMDAwNCBmcm9tIDB4
-MDAwMDQyMzQ1YTBkYTU0NSB0byAweDAwMDAwMDAwMDAwMGFiY2QuDQooWEVOKSBbMjAxMi0w
-OS0wMyAyMDo1NzozNV0gdHJhcHMuYzoyNTg0OmQxMCBEb21haW4gYXR0ZW1wdGVkIFdSTVNS
-IDAwMDAwMDAwYzAwMTAwMDQgZnJvbSAweDAwMDA0MjM0NWEwZGE1NDUgdG8gMHgwMDAwMDAw
-MDAwMDBhYmNkLg0KKFhFTikgWzIwMTItMDktMDMgMjA6NTc6NDFdIEFNRC1WaTogRGlzYWJs
-ZTogZGV2aWNlIGlkID0gMHgwMGE0LCBkb21haW4gPSAwLCBwYWdpbmcgbW9kZSA9IDMNCihY
-RU4pIFsyMDEyLTA5LTAzIDIwOjU3OjQxXSBBTUQtVmk6IFNldHVwIEkvTyBwYWdlIHRhYmxl
-OiBkZXZpY2UgaWQgPSAweDAwYTQsIHJvb3QgdGFibGUgPSAweDE4ZTBhMTAwMCwgZG9tYWlu
-ID0gMTEsIHBhZ2luZyBtb2RlID0gMw0KKFhFTikgWzIwMTItMDktMDMgMjA6NTc6NDFdIEFN
-RC1WaTogUmUtYXNzaWduIDAwMDA6MDM6MDYuMCBmcm9tIGRvbTAgdG8gZG9tMTENCihYRU4p
-IFsyMDEyLTA5LTAzIDIwOjU3OjQxXSB0cmFwcy5jOjI1ODQ6ZDExIERvbWFpbiBhdHRlbXB0
-ZWQgV1JNU1IgMDAwMDAwMDBjMDAxMDAwNCBmcm9tIDB4MDAwMDg2NzljMDJiNDE2NSB0byAw
-eDAwMDAwMDAwMDAwMGFiY2QuDQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1Nzo1Ml0gdHJhcHMu
-YzoyNTg0OmQxMiBEb21haW4gYXR0ZW1wdGVkIFdSTVNSIDAwMDAwMDAwYzAwMTAwMDQgZnJv
-bSAweDAwMDBhMTk1YzQwZjYxOGYgdG8gMHgwMDAwMDAwMDAwMDBhYmNkLg0KKFhFTikgWzIw
-MTItMDktMDMgMjA6NTc6NThdIHRyYXBzLmM6MjU4NDpkMTMgRG9tYWluIGF0dGVtcHRlZCBX
-Uk1TUiAwMDAwMDAwMGMwMDEwMDA0IGZyb20gMHgwMDAwODY3OWMwMmI0MTY1IHRvIDB4MDAw
-MDAwMDAwMDAwYWJjZC4NCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU4OjA2XSBBTUQtVmk6IERp
-c2FibGU6IGRldmljZSBpZCA9IDB4MGEwMCwgZG9tYWluID0gMCwgcGFnaW5nIG1vZGUgPSAz
-DQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1ODowNl0gQU1ELVZpOiBTZXR1cCBJL08gcGFnZSB0
-YWJsZTogZGV2aWNlIGlkID0gMHgwYTAwLCByb290IHRhYmxlID0gMHgxZTFmYzAwMDAsIGRv
-bWFpbiA9IDE0LCBwYWdpbmcgbW9kZSA9IDMNCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU4OjA2
-XSBBTUQtVmk6IFJlLWFzc2lnbiAwMDAwOjBhOjAwLjAgZnJvbSBkb20wIHRvIGRvbTE0DQoo
-WEVOKSBbMjAxMi0wOS0wMyAyMDo1ODowNl0gQU1ELVZpOiBEaXNhYmxlOiBkZXZpY2UgaWQg
-PSAweDBhMDEsIGRvbWFpbiA9IDAsIHBhZ2luZyBtb2RlID0gMw0KKFhFTikgWzIwMTItMDkt
-MDMgMjA6NTg6MDZdIEFNRC1WaTogU2V0dXAgSS9PIHBhZ2UgdGFibGU6IGRldmljZSBpZCA9
-IDB4MGEwMSwgcm9vdCB0YWJsZSA9IDB4MWUxZmMwMDAwLCBkb21haW4gPSAxNCwgcGFnaW5n
-IG1vZGUgPSAzDQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1ODowNl0gQU1ELVZpOiBSZS1hc3Np
-Z24gMDAwMDowYTowMC4xIGZyb20gZG9tMCB0byBkb20xNA0KKFhFTikgWzIwMTItMDktMDMg
-MjA6NTg6MDZdIEFNRC1WaTogRGlzYWJsZTogZGV2aWNlIGlkID0gMHgwYTAyLCBkb21haW4g
-PSAwLCBwYWdpbmcgbW9kZSA9IDMNCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU4OjA2XSBBTUQt
-Vmk6IFNldHVwIEkvTyBwYWdlIHRhYmxlOiBkZXZpY2UgaWQgPSAweDBhMDIsIHJvb3QgdGFi
-bGUgPSAweDFlMWZjMDAwMCwgZG9tYWluID0gMTQsIHBhZ2luZyBtb2RlID0gMw0KKFhFTikg
-WzIwMTItMDktMDMgMjA6NTg6MDZdIEFNRC1WaTogUmUtYXNzaWduIDAwMDA6MGE6MDAuMiBm
-cm9tIGRvbTAgdG8gZG9tMTQNCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU4OjA2XSBBTUQtVmk6
-IERpc2FibGU6IGRldmljZSBpZCA9IDB4MGEwMywgZG9tYWluID0gMCwgcGFnaW5nIG1vZGUg
-PSAzDQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1ODowNl0gQU1ELVZpOiBTZXR1cCBJL08gcGFn
-ZSB0YWJsZTogZGV2aWNlIGlkID0gMHgwYTAzLCByb290IHRhYmxlID0gMHgxZTFmYzAwMDAs
-IGRvbWFpbiA9IDE0LCBwYWdpbmcgbW9kZSA9IDMNCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU4
-OjA2XSBBTUQtVmk6IFJlLWFzc2lnbiAwMDAwOjBhOjAwLjMgZnJvbSBkb20wIHRvIGRvbTE0
-DQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1ODowNl0gQU1ELVZpOiBEaXNhYmxlOiBkZXZpY2Ug
-aWQgPSAweDBhMDQsIGRvbWFpbiA9IDAsIHBhZ2luZyBtb2RlID0gMw0KKFhFTikgWzIwMTIt
-MDktMDMgMjA6NTg6MDZdIEFNRC1WaTogU2V0dXAgSS9PIHBhZ2UgdGFibGU6IGRldmljZSBp
-ZCA9IDB4MGEwNCwgcm9vdCB0YWJsZSA9IDB4MWUxZmMwMDAwLCBkb21haW4gPSAxNCwgcGFn
-aW5nIG1vZGUgPSAzDQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1ODowNl0gQU1ELVZpOiBSZS1h
-c3NpZ24gMDAwMDowYTowMC40IGZyb20gZG9tMCB0byBkb20xNA0KKFhFTikgWzIwMTItMDkt
-MDMgMjA6NTg6MDZdIEFNRC1WaTogRGlzYWJsZTogZGV2aWNlIGlkID0gMHgwYTA1LCBkb21h
-aW4gPSAwLCBwYWdpbmcgbW9kZSA9IDMNCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU4OjA2XSBB
-TUQtVmk6IFNldHVwIEkvTyBwYWdlIHRhYmxlOiBkZXZpY2UgaWQgPSAweDBhMDUsIHJvb3Qg
-dGFibGUgPSAweDFlMWZjMDAwMCwgZG9tYWluID0gMTQsIHBhZ2luZyBtb2RlID0gMw0KKFhF
-TikgWzIwMTItMDktMDMgMjA6NTg6MDZdIEFNRC1WaTogUmUtYXNzaWduIDAwMDA6MGE6MDAu
-NSBmcm9tIGRvbTAgdG8gZG9tMTQNCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU4OjA2XSBBTUQt
-Vmk6IERpc2FibGU6IGRldmljZSBpZCA9IDB4MGEwNiwgZG9tYWluID0gMCwgcGFnaW5nIG1v
-ZGUgPSAzDQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1ODowNl0gQU1ELVZpOiBTZXR1cCBJL08g
-cGFnZSB0YWJsZTogZGV2aWNlIGlkID0gMHgwYTA2LCByb290IHRhYmxlID0gMHgxZTFmYzAw
-MDAsIGRvbWFpbiA9IDE0LCBwYWdpbmcgbW9kZSA9IDMNCihYRU4pIFsyMDEyLTA5LTAzIDIw
-OjU4OjA2XSBBTUQtVmk6IFJlLWFzc2lnbiAwMDAwOjBhOjAwLjYgZnJvbSBkb20wIHRvIGRv
-bTE0DQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1ODowNl0gQU1ELVZpOiBEaXNhYmxlOiBkZXZp
-Y2UgaWQgPSAweDBhMDcsIGRvbWFpbiA9IDAsIHBhZ2luZyBtb2RlID0gMw0KKFhFTikgWzIw
-MTItMDktMDMgMjA6NTg6MDZdIEFNRC1WaTogU2V0dXAgSS9PIHBhZ2UgdGFibGU6IGRldmlj
-ZSBpZCA9IDB4MGEwNywgcm9vdCB0YWJsZSA9IDB4MWUxZmMwMDAwLCBkb21haW4gPSAxNCwg
-cGFnaW5nIG1vZGUgPSAzDQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1ODowNl0gQU1ELVZpOiBS
-ZS1hc3NpZ24gMDAwMDowYTowMC43IGZyb20gZG9tMCB0byBkb20xNA0KKFhFTikgWzIwMTIt
-MDktMDMgMjA6NTg6MDZdIEFNRC1WaTogRGlzYWJsZTogZGV2aWNlIGlkID0gMHgwNzAwLCBk
-b21haW4gPSAwLCBwYWdpbmcgbW9kZSA9IDMNCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU4OjA2
-XSBBTUQtVmk6IFNldHVwIEkvTyBwYWdlIHRhYmxlOiBkZXZpY2UgaWQgPSAweDA3MDAsIHJv
-b3QgdGFibGUgPSAweDFlMWZjMDAwMCwgZG9tYWluID0gMTQsIHBhZ2luZyBtb2RlID0gMw0K
-KFhFTikgWzIwMTItMDktMDMgMjA6NTg6MDZdIEFNRC1WaTogUmUtYXNzaWduIDAwMDA6MDc6
-MDAuMCBmcm9tIGRvbTAgdG8gZG9tMTQNCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU4OjA2XSB0
-cmFwcy5jOjI1ODQ6ZDE0IERvbWFpbiBhdHRlbXB0ZWQgV1JNU1IgMDAwMDAwMDBjMDAxMDAw
-NCBmcm9tIDB4MDAwMDc4NTE5MGZiNGUwZiB0byAweDAwMDAwMDAwMDAwMGFiY2QuDQooWEVO
-KSBbMjAxMi0wOS0wMyAyMDo1ODoxNl0gQU1ELVZpOiBTaGFyZSBwMm0gdGFibGUgd2l0aCBp
-b21tdTogcDJtIHRhYmxlID0gMHhhNzdhOA0KKFhFTikgWzIwMTItMDktMDMgMjA6NTg6MTld
-IEhWTTE1OiBIVk0gTG9hZGVyDQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1ODoxOV0gSFZNMTU6
-IERldGVjdGVkIFhlbiB2NC4yLjAtcmM0LXByZQ0KKFhFTikgWzIwMTItMDktMDMgMjA6NTg6
-MTldIEhWTTE1OiBYZW5idXMgcmluZ3MgQDB4ZmVmZmMwMDAsIGV2ZW50IGNoYW5uZWwgNA0K
-KFhFTikgWzIwMTItMDktMDMgMjA6NTg6MTldIEhWTTE1OiBTeXN0ZW0gcmVxdWVzdGVkIFJP
-TUJJT1MNCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU4OjE5XSBIVk0xNTogQ1BVIHNwZWVkIGlz
-IDMyMDAgTUh6DQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1ODoxOV0gaXJxLmM6MjcwOiBEb20x
-NSBQQ0kgbGluayAwIGNoYW5nZWQgMCAtPiA1DQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1ODox
-OV0gSFZNMTU6IFBDSS1JU0EgbGluayAwIHJvdXRlZCB0byBJUlE1DQooWEVOKSBbMjAxMi0w
-OS0wMyAyMDo1ODoxOV0gaXJxLmM6MjcwOiBEb20xNSBQQ0kgbGluayAxIGNoYW5nZWQgMCAt
-PiAxMA0KKFhFTikgWzIwMTItMDktMDMgMjA6NTg6MTldIEhWTTE1OiBQQ0ktSVNBIGxpbmsg
-MSByb3V0ZWQgdG8gSVJRMTANCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU4OjE5XSBpcnEuYzoy
-NzA6IERvbTE1IFBDSSBsaW5rIDIgY2hhbmdlZCAwIC0+IDExDQooWEVOKSBbMjAxMi0wOS0w
-MyAyMDo1ODoxOV0gSFZNMTU6IFBDSS1JU0EgbGluayAyIHJvdXRlZCB0byBJUlExMQ0KKFhF
-TikgWzIwMTItMDktMDMgMjA6NTg6MTldIGlycS5jOjI3MDogRG9tMTUgUENJIGxpbmsgMyBj
-aGFuZ2VkIDAgLT4gNQ0KKFhFTikgWzIwMTItMDktMDMgMjA6NTg6MTldIEhWTTE1OiBQQ0kt
-SVNBIGxpbmsgMyByb3V0ZWQgdG8gSVJRNQ0KKFhFTikgWzIwMTItMDktMDMgMjA6NTg6MTld
-IEhWTTE1OiBwY2kgZGV2IDAxOjIgSU5URC0+SVJRNQ0KKFhFTikgWzIwMTItMDktMDMgMjA6
-NTg6MTldIEhWTTE1OiBwY2kgZGV2IDAxOjMgSU5UQS0+SVJRMTANCihYRU4pIFsyMDEyLTA5
-LTAzIDIwOjU4OjE5XSBIVk0xNTogcGNpIGRldiAwMzowIElOVEEtPklSUTUNCihYRU4pIFsy
-MDEyLTA5LTAzIDIwOjU4OjE5XSBIVk0xNTogcGNpIGRldiAwNDowIElOVEEtPklSUTUNCihY
-RU4pIFsyMDEyLTA5LTAzIDIwOjU4OjE5XSBIVk0xNTogcGNpIGRldiAwMjowIGJhciAxMCBz
-aXplIDAyMDAwMDAwOiBmMDAwMDAwOA0KKFhFTikgWzIwMTItMDktMDMgMjA6NTg6MTldIEhW
-TTE1OiBwY2kgZGV2IDAzOjAgYmFyIDE0IHNpemUgMDEwMDAwMDA6IGYyMDAwMDA4DQooWEVO
-KSBbMjAxMi0wOS0wMyAyMDo1ODoxOV0gSFZNMTU6IHBjaSBkZXYgMDQ6MCBiYXIgMTAgc2l6
-ZSAwMDAyMDAwMDogZjMwMDAwMDANCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU4OjE5XSBIVk0x
-NTogcGNpIGRldiAwMjowIGJhciAxNCBzaXplIDAwMDAxMDAwOiBmMzAyMDAwMA0KKFhFTikg
-WzIwMTItMDktMDMgMjA6NTg6MTldIEhWTTE1OiBwY2kgZGV2IDAzOjAgYmFyIDEwIHNpemUg
-MDAwMDAxMDA6IDAwMDBjMDAxDQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1ODoxOV0gSFZNMTU6
-IHBjaSBkZXYgMDQ6MCBiYXIgMTQgc2l6ZSAwMDAwMDA0MDogMDAwMGMxMDENCihYRU4pIFsy
-MDEyLTA5LTAzIDIwOjU4OjE5XSBIVk0xNTogcGNpIGRldiAwMToyIGJhciAyMCBzaXplIDAw
-MDAwMDIwOiAwMDAwYzE0MQ0KKFhFTikgWzIwMTItMDktMDMgMjA6NTg6MTldIEhWTTE1OiBw
-Y2kgZGV2IDAxOjEgYmFyIDIwIHNpemUgMDAwMDAwMTA6IDAwMDBjMTYxDQooWEVOKSBbMjAx
-Mi0wOS0wMyAyMDo1ODoxOV0gSFZNMTU6IE11bHRpcHJvY2Vzc29yIGluaXRpYWxpc2F0aW9u
-Og0KKFhFTikgWzIwMTItMDktMDMgMjA6NTg6MTldIEhWTTE1OiAgLSBDUFUwIC4uLiA0OC1i
-aXQgcGh5cyAuLi4gZml4ZWQgTVRSUnMgLi4uIHZhciBNVFJScyBbMi84XSAuLi4gZG9uZS4N
-CihYRU4pIFsyMDEyLTA5LTAzIDIwOjU4OjE5XSBIVk0xNTogIC0gQ1BVMSAuLi4gNDgtYml0
-IHBoeXMgLi4uIGZpeGVkIE1UUlJzIC4uLiB2YXIgTVRSUnMgWzIvOF0gLi4uIGRvbmUuDQoo
-WEVOKSBbMjAxMi0wOS0wMyAyMDo1ODoxOV0gSFZNMTU6IFRlc3RpbmcgSFZNIGVudmlyb25t
-ZW50Og0KKFhFTikgWzIwMTItMDktMDMgMjA6NTg6MTldIEhWTTE1OiAgLSBSRVAgSU5TQiBh
-Y3Jvc3MgcGFnZSBib3VuZGFyaWVzIC4uLiBwYXNzZWQNCihYRU4pIFsyMDEyLTA5LTAzIDIw
-OjU4OjE5XSBIVk0xNTogIC0gR1MgYmFzZSBNU1JzIGFuZCBTV0FQR1MgLi4uIHBhc3NlZA0K
-KFhFTikgWzIwMTItMDktMDMgMjA6NTg6MTldIEhWTTE1OiBQYXNzZWQgMiBvZiAyIHRlc3Rz
-DQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1ODoxOV0gSFZNMTU6IFdyaXRpbmcgU01CSU9TIHRh
-YmxlcyAuLi4NCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU4OjE5XSBIVk0xNTogTG9hZGluZyBS
-T01CSU9TIC4uLg0KKFhFTikgWzIwMTItMDktMDMgMjA6NTg6MTldIEhWTTE1OiA5NjYwIGJ5
-dGVzIG9mIFJPTUJJT1MgaGlnaC1tZW1vcnkgZXh0ZW5zaW9uczoNCihYRU4pIFsyMDEyLTA5
-LTAzIDIwOjU4OjE5XSBIVk0xNTogICBSZWxvY2F0aW5nIHRvIDB4ZmMwMDEwMDAtMHhmYzAw
-MzViYyAuLi4gZG9uZQ0KKFhFTikgWzIwMTItMDktMDMgMjA6NTg6MTldIEhWTTE1OiBDcmVh
-dGluZyBNUCB0YWJsZXMgLi4uDQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1ODoxOV0gSFZNMTU6
-IExvYWRpbmcgQ2lycnVzIFZHQUJJT1MgLi4uDQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1ODox
-OV0gSFZNMTU6IExvYWRpbmcgUENJIE9wdGlvbiBST00gLi4uDQooWEVOKSBbMjAxMi0wOS0w
-MyAyMDo1ODoxOV0gSFZNMTU6ICAtIE1hbnVmYWN0dXJlcjogaHR0cDovL2lweGUub3JnDQoo
-WEVOKSBbMjAxMi0wOS0wMyAyMDo1ODoxOV0gSFZNMTU6ICAtIFByb2R1Y3QgbmFtZTogaVBY
-RQ0KKFhFTikgWzIwMTItMDktMDMgMjA6NTg6MTldIEhWTTE1OiBPcHRpb24gUk9NczoNCihY
-RU4pIFsyMDEyLTA5LTAzIDIwOjU4OjE5XSBIVk0xNTogIGMwMDAwLWM4ZmZmOiBWR0EgQklP
-Uw0KKFhFTikgWzIwMTItMDktMDMgMjA6NTg6MTldIEhWTTE1OiAgYzkwMDAtZDlmZmY6IEV0
-aGVyYm9vdCBST00NCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU4OjE5XSBIVk0xNTogTG9hZGlu
-ZyBBQ1BJIC4uLg0KKFhFTikgWzIwMTItMDktMDMgMjA6NTg6MTldIEhWTTE1OiB2bTg2IFRT
-UyBhdCBmYzAwZjY4MA0KKFhFTikgWzIwMTItMDktMDMgMjA6NTg6MTldIEhWTTE1OiBCSU9T
-IG1hcDoNCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU4OjE5XSBIVk0xNTogIGYwMDAwLWZmZmZm
-OiBNYWluIEJJT1MNCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU4OjE5XSBIVk0xNTogRTgyMCB0
-YWJsZToNCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU4OjE5XSBIVk0xNTogIFswMF06IDAwMDAw
-MDAwOjAwMDAwMDAwIC0gMDAwMDAwMDA6MDAwOWUwMDA6IFJBTQ0KKFhFTikgWzIwMTItMDkt
-MDMgMjA6NTg6MTldIEhWTTE1OiAgWzAxXTogMDAwMDAwMDA6MDAwOWUwMDAgLSAwMDAwMDAw
-MDowMDBhMDAwMDogUkVTRVJWRUQNCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU4OjE5XSBIVk0x
-NTogIEhPTEU6IDAwMDAwMDAwOjAwMGEwMDAwIC0gMDAwMDAwMDA6MDAwZTAwMDANCihYRU4p
-IFsyMDEyLTA5LTAzIDIwOjU4OjE5XSBIVk0xNTogIFswMl06IDAwMDAwMDAwOjAwMGUwMDAw
-IC0gMDAwMDAwMDA6MDAxMDAwMDA6IFJFU0VSVkVEDQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1
-ODoxOV0gSFZNMTU6ICBbMDNdOiAwMDAwMDAwMDowMDEwMDAwMCAtIDAwMDAwMDAwOjFmODAw
-MDAwOiBSQU0NCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU4OjE5XSBIVk0xNTogIEhPTEU6IDAw
-MDAwMDAwOjFmODAwMDAwIC0gMDAwMDAwMDA6ZmMwMDAwMDANCihYRU4pIFsyMDEyLTA5LTAz
-IDIwOjU4OjE5XSBIVk0xNTogIFswNF06IDAwMDAwMDAwOmZjMDAwMDAwIC0gMDAwMDAwMDE6
-MDAwMDAwMDA6IFJFU0VSVkVEDQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1ODoxOV0gSFZNMTU6
-IEludm9raW5nIFJPTUJJT1MgLi4uDQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1ODoxOV0gSFZN
-MTU6ICRSZXZpc2lvbjogMS4yMjEgJCAkRGF0ZTogMjAwOC8xMi8wNyAxNzozMjoyOSAkDQoo
-WEVOKSBbMjAxMi0wOS0wMyAyMDo1ODoyMF0gc3RkdmdhLmM6MTQ3OmQxNSBlbnRlcmluZyBz
-dGR2Z2EgYW5kIGNhY2hpbmcgbW9kZXMNCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU4OjIwXSBI
-Vk0xNTogVkdBQmlvcyAkSWQ6IHZnYWJpb3MuYyx2IDEuNjcgMjAwOC8wMS8yNyAwOTo0NDox
-MiB2cnVwcGVydCBFeHAgJA0KKFhFTikgWzIwMTItMDktMDMgMjA6NTg6MjBdIEhWTTE1OiBC
-b2NocyBCSU9TIC0gYnVpbGQ6IDA2LzIzLzk5DQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1ODoy
-MF0gSFZNMTU6ICRSZXZpc2lvbjogMS4yMjEgJCAkRGF0ZTogMjAwOC8xMi8wNyAxNzozMjoy
-OSAkDQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1ODoyMF0gSFZNMTU6IE9wdGlvbnM6IGFwbWJp
-b3MgcGNpYmlvcyBlbHRvcml0byBQTU0gDQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1ODoyMF0g
-SFZNMTU6IA0KKFhFTikgWzIwMTItMDktMDMgMjA6NTg6MjBdIEhWTTE1OiBhdGEwLTA6IFBD
-SFM9MTYzODMvMTYvNjMgdHJhbnNsYXRpb249bGJhIExDSFM9MTAyNC8yNTUvNjMNCihYRU4p
-IFsyMDEyLTA5LTAzIDIwOjU4OjIwXSBIVk0xNTogYXRhMCBtYXN0ZXI6IFFFTVUgSEFSRERJ
-U0sgQVRBLTcgSGFyZC1EaXNrICg1NzI0NCBNQnl0ZXMpDQooWEVOKSBbMjAxMi0wOS0wMyAy
-MDo1ODoyMV0gSFZNMTU6IElERSB0aW1lIG91dA0KKFhFTikgWzIwMTItMDktMDMgMjA6NTg6
-MjFdIEhWTTE1OiBhdGExIG1hc3RlcjogUUVNVSBEVkQtUk9NIEFUQVBJLTQgQ0QtUm9tL0RW
-RC1Sb20NCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU4OjIzXSBIVk0xNTogSURFIHRpbWUgb3V0
-DQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1ODoyM10gSFZNMTU6IA0KKFhFTikgWzIwMTItMDkt
-MDMgMjA6NTg6MjNdIEhWTTE1OiANCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU4OjIzXSBIVk0x
-NTogDQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1ODoyM10gSFZNMTU6IFByZXNzIEYxMiBmb3Ig
-Ym9vdCBtZW51Lg0KKFhFTikgWzIwMTItMDktMDMgMjA6NTg6MjNdIEhWTTE1OiANCihYRU4p
-IFsyMDEyLTA5LTAzIDIwOjU4OjIzXSBIVk0xNTogQm9vdGluZyBmcm9tIEhhcmQgRGlzay4u
-Lg0KKFhFTikgWzIwMTItMDktMDMgMjA6NTg6MjNdIEhWTTE1OiBCb290aW5nIGZyb20gMDAw
-MDo3YzAwDQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1ODoyNl0gdHJhcHMuYzoyNTg0OmQxNiBE
-b21haW4gYXR0ZW1wdGVkIFdSTVNSIDAwMDAwMDAwYzAwMTAwMDQgZnJvbSAweDAwMDA0MjM0
-NWEwZGE1NDUgdG8gMHgwMDAwMDAwMDAwMDBhYmNkLg0KKFhFTikgWzIwMTItMDktMDMgMjA6
-NTg6NTBdIGlycS5jOjI3MDogRG9tMTUgUENJIGxpbmsgMCBjaGFuZ2VkIDUgLT4gMA0KKFhF
-TikgWzIwMTItMDktMDMgMjA6NTg6NTBdIGlycS5jOjI3MDogRG9tMTUgUENJIGxpbmsgMSBj
-aGFuZ2VkIDEwIC0+IDANCihYRU4pIFsyMDEyLTA5LTAzIDIwOjU4OjUwXSBpcnEuYzoyNzA6
-IERvbTE1IFBDSSBsaW5rIDIgY2hhbmdlZCAxMSAtPiAwDQooWEVOKSBbMjAxMi0wOS0wMyAy
-MDo1ODo1MF0gaXJxLmM6MjcwOiBEb20xNSBQQ0kgbGluayAzIGNoYW5nZWQgNSAtPiAwDQoo
-WEVOKSBbMjAxMi0wOS0wMyAyMDo1ODo1MV0gaHZtLmM6MjQzNTpkMTUgZ3Vlc3QgYXR0ZW1w
-dGVkIHdyaXRlIHRvIHJlYWQtb25seSBtZW1vcnkgcGFnZS4gZ2ZuPTB4ZGMsIG1mbj0weGE0
-YTBiDQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1ODo1MV0gaHZtLmM6MjQzNTpkMTUgZ3Vlc3Qg
-YXR0ZW1wdGVkIHdyaXRlIHRvIHJlYWQtb25seSBtZW1vcnkgcGFnZS4gZ2ZuPTB4ZGQsIG1m
-bj0weGE0YTBhDQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1ODo1MV0gaHZtLmM6MjQzNTpkMTUg
-Z3Vlc3QgYXR0ZW1wdGVkIHdyaXRlIHRvIHJlYWQtb25seSBtZW1vcnkgcGFnZS4gZ2ZuPTB4
-ZGUsIG1mbj0weGE0YTA5DQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1ODo1MV0gaHZtLmM6MjQz
-NTpkMTUgZ3Vlc3QgYXR0ZW1wdGVkIHdyaXRlIHRvIHJlYWQtb25seSBtZW1vcnkgcGFnZS4g
-Z2ZuPTB4ZGQsIG1mbj0weGE0YTBhDQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1ODo1MV0gaHZt
-LmM6MjQzNTpkMTUgZ3Vlc3QgYXR0ZW1wdGVkIHdyaXRlIHRvIHJlYWQtb25seSBtZW1vcnkg
-cGFnZS4gZ2ZuPTB4ZGMsIG1mbj0weGE0YTBiDQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1ODo1
-MV0gaHZtLmM6MjQzNTpkMTUgZ3Vlc3QgYXR0ZW1wdGVkIHdyaXRlIHRvIHJlYWQtb25seSBt
-ZW1vcnkgcGFnZS4gZ2ZuPTB4ZGUsIG1mbj0weGE0YTA5DQooWEVOKSBbMjAxMi0wOS0wMyAy
-MDo1ODo1MV0gaHZtLmM6MjQzNTpkMTUgZ3Vlc3QgYXR0ZW1wdGVkIHdyaXRlIHRvIHJlYWQt
-b25seSBtZW1vcnkgcGFnZS4gZ2ZuPTB4ZGQsIG1mbj0weGE0YTBhDQooWEVOKSBbMjAxMi0w
-OS0wMyAyMDo1ODo1MV0gaHZtLmM6MjQzNTpkMTUgZ3Vlc3QgYXR0ZW1wdGVkIHdyaXRlIHRv
-IHJlYWQtb25seSBtZW1vcnkgcGFnZS4gZ2ZuPTB4ZGUsIG1mbj0weGE0YTA5DQooWEVOKSBb
-MjAxMi0wOS0wMyAyMDo1ODo1MV0gaHZtLmM6MjQzNTpkMTUgZ3Vlc3QgYXR0ZW1wdGVkIHdy
-aXRlIHRvIHJlYWQtb25seSBtZW1vcnkgcGFnZS4gZ2ZuPTB4ZGMsIG1mbj0weGE0YTBiDQoo
-WEVOKSBbMjAxMi0wOS0wMyAyMDo1ODo1MV0gaHZtLmM6MjQzNTpkMTUgZ3Vlc3QgYXR0ZW1w
-dGVkIHdyaXRlIHRvIHJlYWQtb25seSBtZW1vcnkgcGFnZS4gZ2ZuPTB4ZGQsIG1mbj0weGE0
-YTBhDQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1ODo1MV0gaHZtLmM6MjQzNTpkMTUgZ3Vlc3Qg
-YXR0ZW1wdGVkIHdyaXRlIHRvIHJlYWQtb25seSBtZW1vcnkgcGFnZS4gZ2ZuPTB4ZGMsIG1m
-bj0weGE0YTBiDQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1ODo1MV0gaHZtLmM6MjQzNTpkMTUg
-Z3Vlc3QgYXR0ZW1wdGVkIHdyaXRlIHRvIHJlYWQtb25seSBtZW1vcnkgcGFnZS4gZ2ZuPTB4
-ZGQsIG1mbj0weGE0YTBhDQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1ODo1MV0gaHZtLmM6MjQz
-NTpkMTUgZ3Vlc3QgYXR0ZW1wdGVkIHdyaXRlIHRvIHJlYWQtb25seSBtZW1vcnkgcGFnZS4g
-Z2ZuPTB4ZGUsIG1mbj0weGE0YTA5DQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1ODo1MV0gaHZt
-LmM6MjQzNTpkMTUgZ3Vlc3QgYXR0ZW1wdGVkIHdyaXRlIHRvIHJlYWQtb25seSBtZW1vcnkg
-cGFnZS4gZ2ZuPTB4ZGQsIG1mbj0weGE0YTBhDQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1ODo1
-MV0gaHZtLmM6MjQzNTpkMTUgZ3Vlc3QgYXR0ZW1wdGVkIHdyaXRlIHRvIHJlYWQtb25seSBt
-ZW1vcnkgcGFnZS4gZ2ZuPTB4ZGMsIG1mbj0weGE0YTBiDQooWEVOKSBbMjAxMi0wOS0wMyAy
-MDo1ODo1MV0gaHZtLmM6MjQzNTpkMTUgZ3Vlc3QgYXR0ZW1wdGVkIHdyaXRlIHRvIHJlYWQt
-b25seSBtZW1vcnkgcGFnZS4gZ2ZuPTB4ZGQsIG1mbj0weGE0YTBhDQooWEVOKSBbMjAxMi0w
-OS0wMyAyMDo1ODo1MV0gaHZtLmM6MjQzNTpkMTUgZ3Vlc3QgYXR0ZW1wdGVkIHdyaXRlIHRv
-IHJlYWQtb25seSBtZW1vcnkgcGFnZS4gZ2ZuPTB4ZGMsIG1mbj0weGE0YTBiDQooWEVOKSBb
-MjAxMi0wOS0wMyAyMDo1ODo1MV0gaHZtLmM6MjQzNTpkMTUgZ3Vlc3QgYXR0ZW1wdGVkIHdy
-aXRlIHRvIHJlYWQtb25seSBtZW1vcnkgcGFnZS4gZ2ZuPTB4ZGQsIG1mbj0weGE0YTBhDQoo
-WEVOKSBbMjAxMi0wOS0wMyAyMDo1ODo1NF0gaHZtLmM6MjQzNTpkMTUgZ3Vlc3QgYXR0ZW1w
-dGVkIHdyaXRlIHRvIHJlYWQtb25seSBtZW1vcnkgcGFnZS4gZ2ZuPTB4YzksIG1mbj0weGE0
-YTFlDQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1ODo1NF0gaHZtLmM6MjQzNTpkMTUgZ3Vlc3Qg
-YXR0ZW1wdGVkIHdyaXRlIHRvIHJlYWQtb25seSBtZW1vcnkgcGFnZS4gZ2ZuPTB4Y2IsIG1m
-bj0weGE0YTFjDQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1ODo1NF0gaHZtLmM6MjQzNTpkMTUg
-Z3Vlc3QgYXR0ZW1wdGVkIHdyaXRlIHRvIHJlYWQtb25seSBtZW1vcnkgcGFnZS4gZ2ZuPTB4
-Y2QsIG1mbj0weGE0YTFhDQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1ODo1NF0gaHZtLmM6MjQz
-NTpkMTUgZ3Vlc3QgYXR0ZW1wdGVkIHdyaXRlIHRvIHJlYWQtb25seSBtZW1vcnkgcGFnZS4g
-Z2ZuPTB4Y2YsIG1mbj0weGE0YTE4DQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1ODo1NF0gaHZt
-LmM6MjQzNTpkMTUgZ3Vlc3QgYXR0ZW1wdGVkIHdyaXRlIHRvIHJlYWQtb25seSBtZW1vcnkg
-cGFnZS4gZ2ZuPTB4ZDEsIG1mbj0weGE0YTE2DQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1ODo1
-NF0gaHZtLmM6MjQzNTpkMTUgZ3Vlc3QgYXR0ZW1wdGVkIHdyaXRlIHRvIHJlYWQtb25seSBt
-ZW1vcnkgcGFnZS4gZ2ZuPTB4ZDMsIG1mbj0weGE0YTE0DQooWEVOKSBbMjAxMi0wOS0wMyAy
-MDo1ODo1NF0gaHZtLmM6MjQzNTpkMTUgZ3Vlc3QgYXR0ZW1wdGVkIHdyaXRlIHRvIHJlYWQt
-b25seSBtZW1vcnkgcGFnZS4gZ2ZuPTB4ZDUsIG1mbj0weGE0YTEyDQooWEVOKSBbMjAxMi0w
-OS0wMyAyMDo1ODo1NF0gaHZtLmM6MjQzNTpkMTUgZ3Vlc3QgYXR0ZW1wdGVkIHdyaXRlIHRv
-IHJlYWQtb25seSBtZW1vcnkgcGFnZS4gZ2ZuPTB4ZDcsIG1mbj0weGE0YTEwDQooWEVOKSBb
-MjAxMi0wOS0wMyAyMDo1ODo1NF0gaHZtLmM6MjQzNTpkMTUgZ3Vlc3QgYXR0ZW1wdGVkIHdy
-aXRlIHRvIHJlYWQtb25seSBtZW1vcnkgcGFnZS4gZ2ZuPTB4ZDksIG1mbj0weGE0YTBlDQoo
-WEVOKSBbMjAxMi0wOS0wMyAyMDo1ODo1NF0gaHZtLmM6MjQzNTpkMTUgZ3Vlc3QgYXR0ZW1w
-dGVkIHdyaXRlIHRvIHJlYWQtb25seSBtZW1vcnkgcGFnZS4gZ2ZuPTB4ZGIsIG1mbj0weGE0
-YTBjDQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1ODo1NF0gaHZtLmM6MjQzNTpkMTUgZ3Vlc3Qg
-YXR0ZW1wdGVkIHdyaXRlIHRvIHJlYWQtb25seSBtZW1vcnkgcGFnZS4gZ2ZuPTB4ZGQsIG1m
-bj0weGE0YTBhDQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1ODo1NF0gaHZtLmM6MjQzNTpkMTUg
-Z3Vlc3QgYXR0ZW1wdGVkIHdyaXRlIHRvIHJlYWQtb25seSBtZW1vcnkgcGFnZS4gZ2ZuPTB4
-ZGYsIG1mbj0weGE0YTA4DQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1ODo1NF0gaHZtLmM6MjQz
-NTpkMTUgZ3Vlc3QgYXR0ZW1wdGVkIHdyaXRlIHRvIHJlYWQtb25seSBtZW1vcnkgcGFnZS4g
-Z2ZuPTB4ZTEsIG1mbj0weGE0YTA2DQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1ODo1NF0gaHZt
-LmM6MjQzNTpkMTUgZ3Vlc3QgYXR0ZW1wdGVkIHdyaXRlIHRvIHJlYWQtb25seSBtZW1vcnkg
-cGFnZS4gZ2ZuPTB4ZTMsIG1mbj0weGE0YTA0DQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1ODo1
-NF0gaHZtLmM6MjQzNTpkMTUgZ3Vlc3QgYXR0ZW1wdGVkIHdyaXRlIHRvIHJlYWQtb25seSBt
-ZW1vcnkgcGFnZS4gZ2ZuPTB4ZTUsIG1mbj0weGE0YTAyDQooWEVOKSBbMjAxMi0wOS0wMyAy
-MDo1ODo1NF0gaHZtLmM6MjQzNTpkMTUgZ3Vlc3QgYXR0ZW1wdGVkIHdyaXRlIHRvIHJlYWQt
-b25seSBtZW1vcnkgcGFnZS4gZ2ZuPTB4ZTcsIG1mbj0weGE0YTAwDQooWEVOKSBbMjAxMi0w
-OS0wMyAyMDo1ODo1NF0gaHZtLmM6MjQzNTpkMTUgZ3Vlc3QgYXR0ZW1wdGVkIHdyaXRlIHRv
-IHJlYWQtb25seSBtZW1vcnkgcGFnZS4gZ2ZuPTB4ZTksIG1mbj0weGE0NjNlDQooWEVOKSBb
-MjAxMi0wOS0wMyAyMDo1ODo1NF0gaHZtLmM6MjQzNTpkMTUgZ3Vlc3QgYXR0ZW1wdGVkIHdy
-aXRlIHRvIHJlYWQtb25seSBtZW1vcnkgcGFnZS4gZ2ZuPTB4ZWIsIG1mbj0weGE0NjNjDQoo
-WEVOKSBbMjAxMi0wOS0wMyAyMDo1ODo1NF0gaHZtLmM6MjQzNTpkMTUgZ3Vlc3QgYXR0ZW1w
-dGVkIHdyaXRlIHRvIHJlYWQtb25seSBtZW1vcnkgcGFnZS4gZ2ZuPTB4ZWQsIG1mbj0weGE0
-NjNhDQooWEVOKSBbMjAxMi0wOS0wMyAyMDo1ODo1NF0gaHZtLmM6MjQzNTpkMTUgZ3Vlc3Qg
-YXR0ZW1wdGVkIHdyaXRlIHRvIHJlYWQtb25seSBtZW1vcnkgcGFnZS4gZ2ZuPTB4ZWYsIG1m
-bj0weGE0NjM4DQooWEVOKSBbMjAxMi0wOS0wMyAyMToyMDo0OV0gQU1ELVZpOiBJT19QQUdF
-X0ZBVUxUOiBkb21haW4gPSAxNCwgZGV2aWNlIGlkID0gMHgwNzAwLCBmYXVsdCBhZGRyZXNz
-ID0gMHhhOGVlODBhMA0KKFhFTikgWzIwMTItMDktMDMgMjE6MjA6NDldIEFNRC1WaTogSU9f
-UEFHRV9GQVVMVDogZG9tYWluID0gMTQsIGRldmljZSBpZCA9IDB4MDcwMCwgZmF1bHQgYWRk
-cmVzcyA9IDB4YThlZTgwYzANCihYRU4pIFsyMDEyLTA5LTAzIDIxOjIwOjQ5XSBBTUQtVmk6
-IElPX1BBR0VfRkFVTFQ6IGRvbWFpbiA9IDE0LCBkZXZpY2UgaWQgPSAweDA3MDAsIGZhdWx0
-IGFkZHJlc3MgPSAweGE4ZWU4MTAwDQooWEVOKSBbMjAxMi0wOS0wMyAyMToyMDo0OV0gQU1E
-LVZpOiBJT19QQUdFX0ZBVUxUOiBkb21haW4gPSAxNCwgZGV2aWNlIGlkID0gMHgwNzAwLCBm
-YXVsdCBhZGRyZXNzID0gMHhhOGVlODE4MA0KKFhFTikgWzIwMTItMDktMDMgMjE6MjA6NDld
-IEFNRC1WaTogSU9fUEFHRV9GQVVMVDogZG9tYWluID0gMTQsIGRldmljZSBpZCA9IDB4MDcw
-MCwgZmF1bHQgYWRkcmVzcyA9IDB4YThlZTgxMjANCihYRU4pIFsyMDEyLTA5LTAzIDIxOjIw
-OjQ5XSBBTUQtVmk6IElPX1BBR0VfRkFVTFQ6IGRvbWFpbiA9IDE0LCBkZXZpY2UgaWQgPSAw
-eDA3MDAsIGZhdWx0IGFkZHJlc3MgPSAweGE4ZWU4MTQwDQooWEVOKSBbMjAxMi0wOS0wMyAy
-MToyMDo0OV0gQU1ELVZpOiBJT19QQUdFX0ZBVUxUOiBkb21haW4gPSAxNCwgZGV2aWNlIGlk
-ID0gMHgwNzAwLCBmYXVsdCBhZGRyZXNzID0gMHhhOGVlODFhMA0KKFhFTikgWzIwMTItMDkt
-MDMgMjE6MjA6NDldIEFNRC1WaTogSU9fUEFHRV9GQVVMVDogZG9tYWluID0gMTQsIGRldmlj
-ZSBpZCA9IDB4MDcwMCwgZmF1bHQgYWRkcmVzcyA9IDB4YThlZTgxYzANCihYRU4pIFsyMDEy
-LTA5LTAzIDIxOjIwOjQ5XSBBTUQtVmk6IElPX1BBR0VfRkFVTFQ6IGRvbWFpbiA9IDE0LCBk
-ZXZpY2UgaWQgPSAweDA3MDAsIGZhdWx0IGFkZHJlc3MgPSAweGE4ZWU4MjAwDQooWEVOKSBb
-MjAxMi0wOS0wMyAyMToyMDo0OV0gQU1ELVZpOiBJT19QQUdFX0ZBVUxUOiBkb21haW4gPSAx
-NCwgZGV2aWNlIGlkID0gMHgwNzAwLCBmYXVsdCBhZGRyZXNzID0gMHhhOGVlODIyMA0KKFhF
-TikgWzIwMTItMDktMDMgMjE6MjA6NDldIEFNRC1WaTogSU9fUEFHRV9GQVVMVDogZG9tYWlu
-ID0gMTQsIGRldmljZSBpZCA9IDB4MDcwMCwgZmF1bHQgYWRkcmVzcyA9IDB4YThlZTgyNDAN
-CihYRU4pIFsyMDEyLTA5LTAzIDIxOjIwOjQ5XSBBTUQtVmk6IElPX1BBR0VfRkFVTFQ6IGRv
-bWFpbiA9IDE0LCBkZXZpY2UgaWQgPSAweDA3MDAsIGZhdWx0IGFkZHJlc3MgPSAweGE4ZWU4
-MjgwDQooWEVOKSBbMjAxMi0wOS0wMyAyMToyMDo0OV0gQU1ELVZpOiBJT19QQUdFX0ZBVUxU
-OiBkb21haW4gPSAxNCwgZGV2aWNlIGlkID0gMHgwNzAwLCBmYXVsdCBhZGRyZXNzID0gMHhh
-OGVlODJhMA0KKFhFTikgWzIwMTItMDktMDMgMjE6MjA6NDldIEFNRC1WaTogSU9fUEFHRV9G
-QVVMVDogZG9tYWluID0gMTQsIGRldmljZSBpZCA9IDB4MDcwMCwgZmF1bHQgYWRkcmVzcyA9
-IDB4YThlZTgzMDANCihYRU4pIFsyMDEyLTA5LTAzIDIxOjIwOjQ5XSBBTUQtVmk6IElPX1BB
-R0VfRkFVTFQ6IGRvbWFpbiA9IDE0LCBkZXZpY2UgaWQgPSAweDA3MDAsIGZhdWx0IGFkZHJl
-c3MgPSAweGE4ZWU4MmMwDQooWEVOKSBbMjAxMi0wOS0wMyAyMToyMDo0OV0gQU1ELVZpOiBJ
-T19QQUdFX0ZBVUxUOiBkb21haW4gPSAxNCwgZGV2aWNlIGlkID0gMHgwNzAwLCBmYXVsdCBh
-ZGRyZXNzID0gMHhhOGVlODMyMA0KKFhFTikgWzIwMTItMDktMDQgMDM6MDA6MzRdIHRyYXBz
-LmM6MzE1NjogR1BGICgwMDYwKTogZmZmZjgyYzQ4MDE1YzllZSAtPiBmZmZmODJjNDgwMjI0
-YjczDQooWEVOKSBbMjAxMi0wOS0wNCAwMzowMDozNF0gdHJhcHMuYzozMTU3OiAgc2hvd19l
-eGVjdXRpb25fc3RhdGUocmVncyk6IA0KKFhFTikgWzIwMTItMDktMDQgMDM6MDA6MzRdIC0t
-LS1bIFhlbi00LjIuMC1yYzQtcHJlICB4ODZfNjQgIGRlYnVnPXkgIE5vdCB0YWludGVkIF0t
-LS0tDQooWEVOKSBbMjAxMi0wOS0wNCAwMzowMDozNF0gQ1BVOiAgICAzDQooWEVOKSBbMjAx
-Mi0wOS0wNCAwMzowMDozNF0gUklQOiAgICBlMDA4Ols8ZmZmZjgyYzQ4MDE1YzllZT5dIGNv
-bnRleHRfc3dpdGNoKzB4Mzk0LzB4ZWViDQooWEVOKSBbMjAxMi0wOS0wNCAwMzowMDozNF0g
-UkZMQUdTOiAwMDAwMDAwMDAwMDEwMjQ2ICAgQ09OVEVYVDogaHlwZXJ2aXNvcg0KKFhFTikg
-WzIwMTItMDktMDQgMDM6MDA6MzRdIHJheDogMDAwMDAwMDAwMDAwMDAwMSAgIHJieDogZmZm
-ZjgzMDBhNTJkYTAwMCAgIHJjeDogMDAwMDAwMDAwMDAwMDAwMQ0KKFhFTikgWzIwMTItMDkt
-MDQgMDM6MDA6MzRdIHJkeDogMDAwMDAwMDAwMDAwMDA2MyAgIHJzaTogMDAwMDAwMDAwMDAw
-MDAwMSAgIHJkaTogMDAwMDAwMDAwMDAwMDM3ZQ0KKFhFTikgWzIwMTItMDktMDQgMDM6MDA6
-MzRdIHJicDogZmZmZjgzMDI0ZDhhN2UyOCAgIHJzcDogZmZmZjgzMDI0ZDhhN2Q4OCAgIHI4
-OiAgMDAwMDAwMDAwMDAwMDAwNg0KKFhFTikgWzIwMTItMDktMDQgMDM6MDA6MzRdIHI5OiAg
-ZmZmZjgzMDI0ZDk1ZWJiOCAgIHIxMDogMDAwMDAwMDBkZWFkYmVlZiAgIHIxMTogMDAwMDAw
-MDAwMDAwMDI0Ng0KKFhFTikgWzIwMTItMDktMDQgMDM6MDA6MzRdIHIxMjogZmZmZjgzMDBh
-ZmQxMTAwMCAgIHIxMzogMDAwMDAwMDAwMDAwMDAwMyAgIHIxNDogMDAwMDAwMDAwMDAwMDAw
-Mw0KKFhFTikgWzIwMTItMDktMDQgMDM6MDA6MzRdIHIxNTogZmZmZjgzMDI0ZDhhYTA0OCAg
-IGNyMDogMDAwMDAwMDA4MDA1MDAzYiAgIGNyNDogMDAwMDAwMDAwMDAwMDZmMA0KKFhFTikg
-WzIwMTItMDktMDQgMDM6MDA6MzRdIGNyMzogMDAwMDAwMDA2ODUwNjAwMCAgIGNyMjogZmZm
-ZmZmZmZmZjYwMDQwMA0KKFhFTikgWzIwMTItMDktMDQgMDM6MDA6MzRdIGRzOiAwMDAwICAg
-ZXM6IDAwMDAgICBmczogMDAwMCAgIGdzOiAwMDAwICAgc3M6IGUwMTAgICBjczogZTAwOA0K
-KFhFTikgWzIwMTItMDktMDQgMDM6MDA6MzRdIFhlbiBzdGFjayB0cmFjZSBmcm9tIHJzcD1m
-ZmZmODMwMjRkOGE3ZDg4Og0KKFhFTikgWzIwMTItMDktMDQgMDM6MDA6MzRdICAgIDAwMDAw
-MDAwMDAwMDAwMjkgMDAwMDAwMDAwMDAwMDAwMCAwMDAwMDAxZTAwMDAwMDAwIDAwMDAwMDAw
-MDAwMDAwMDANCihYRU4pIFsyMDEyLTA5LTA0IDAzOjAwOjM0XSAgICBmZmZmODMwMjRkOGE3
-ZGI4IGZmZmY4MzAyNGQ4YWEwNjAgZmZmZjgzMDI0ZDhhN2UxOCBmZmZmODJjNDgwMTgwNWFl
-DQooWEVOKSBbMjAxMi0wOS0wNCAwMzowMDozNF0gICAgMDAwMDAwMDAwMDAxMmYyMiAwMDAw
-M2ZkOWFiNmQ2Y2E2IDAwMDAwMDAwMDAwMDAwMDAgMDAwMDAwMDAwMDAwMDAwMA0KKFhFTikg
-WzIwMTItMDktMDQgMDM6MDA6MzRdICAgIDAwMDAwMDAwMDAwMDAwMDAgMDAwMDAwMDAwMDAw
-MDAwMCBmZmZmODMwMjRkOGE3ZTI4IGZmZmY4MzAwYWZkMTEwMDANCihYRU4pIFsyMDEyLTA5
-LTA0IDAzOjAwOjM0XSAgICBmZmZmODMwMGE1MmRhMDAwIDAwMDAxM2ViYmEzN2UxMGMgMDAw
-MDAwMDAwMDAwMDAwMiBmZmZmODMwMjRkOGFhMDQ4DQooWEVOKSBbMjAxMi0wOS0wNCAwMzow
-MDozNF0gICAgZmZmZjgzMDI0ZDhhN2ViOCBmZmZmODJjNDgwMTI0YTcwIDAwMDAwMDAwMDAw
-MDAwMDAgZmZmZjgzMDI0ZDhhYTA0MA0KKFhFTikgWzIwMTItMDktMDQgMDM6MDA6MzRdICAg
-IDAwMDAwMDAzNGQ4YTdlNjggMDAwMDEzZWJiYTM3ZTEwYyBmZmZmODMwMjRkOGE3ZTg4IGZm
-ZmY4MmM0ODAxODk0ODMNCihYRU4pIFsyMDEyLTA5LTA0IDAzOjAwOjM0XSAgICBmZmZmODMw
-MGE1MmRhMDAwIDAwMDAwMDAwMDFjOWMzODAgZmZmZjgzMDI0ZDhhN2UwMCBmZmZmODJjNDgw
-MTIyNmNlDQooWEVOKSBbMjAxMi0wOS0wNCAwMzowMDozNF0gICAgZmZmZjgzMDI0ZDhhN2Vm
-OCBmZmZmODJjNDgwMmQ4MTgwIDAwMDAwMDAwZmZmZmZmZmYgZmZmZjgyYzQ4MDJkODAwMA0K
-KFhFTikgWzIwMTItMDktMDQgMDM6MDA6MzRdICAgIGZmZmY4MzAyNGQ4YTdmMTggZmZmZmZm
-ZmZmZmZmZmZmZiBmZmZmODMwMjRkOGE3ZWY4IGZmZmY4MmM0ODAxMjVlMzENCihYRU4pIFsy
-MDEyLTA5LTA0IDAzOjAwOjM0XSAgICAwMDAwMDAwMDAwMDAwMjQ2IGZmZmY4MzAwYWZkMTEw
-MDAgZmZmZmZmZmY4MWVjZTVkOCBmZmZmZmZmZjgxZjQyMGMwDQooWEVOKSBbMjAxMi0wOS0w
-NCAwMzowMDozNF0gICAgMDAwMDAwMDAwMDAwMDAwMCAwMDAwMDAwMDAwMDAwMDAwIGZmZmY4
-MzAyNGQ4YTdmMDggZmZmZjgyYzQ4MDEyNWU2OA0KKFhFTikgWzIwMTItMDktMDQgMDM6MDA6
-MzRdICAgIDAwMDA3Y2ZkYjI3NTgwYzcgZmZmZjgyYzQ4MDIyMmVmNiAwMDAwMDAwMDAwMDAw
-MDAwIGZmZmY4ODAwMDMwZTE0YTANCihYRU4pIFsyMDEyLTA5LTA0IDAzOjAwOjM0XSAgICAw
-MDAwMDAwMDAwMDAwMDAwIGZmZmY4ODAwMWEwODAwZDggZmZmZjg4MDAxY2QxN2JmMCBmZmZm
-ODgwMDFmYzBiMTAwDQooWEVOKSBbMjAxMi0wOS0wNCAwMzowMDozNF0gICAgMDAwMDAwMDAw
-MDAwMDIwMiAwMDAwMDAwMDAwMDAwMDAwIDAwMDAwMDAwMDAwMDAwMDEgMDAwMDAwMDAwMDAw
-MDAwMA0KKFhFTikgWzIwMTItMDktMDQgMDM6MDA6MzRdICAgIDAwMDAwMDAwMDAwMDAwMDAg
-ZmZmZmZmZmY4MTAwMTFhYSBmZmZmODgwMDFlOTllMTgwIDAwMDAwMDAwZGVhZGJlZWYNCihY
-RU4pIFsyMDEyLTA5LTA0IDAzOjAwOjM0XSAgICAwMDAwMDAwMGRlYWRiZWVmIDAwMDAwMTAw
-MDAwMDAwMDAgZmZmZmZmZmY4MTAwMTFhYSAwMDAwMDAwMDAwMDBlMDMzDQooWEVOKSBbMjAx
-Mi0wOS0wNCAwMzowMDozNF0gICAgMDAwMDAwMDAwMDAwMDIwMiBmZmZmODgwMDFjZDE3YmI4
-IDAwMDAwMDAwMDAwMGUwMmIgMDAwMDUzZmQwMDAwYmVlZg0KKFhFTikgWzIwMTItMDktMDQg
-MDM6MDA6MzRdICAgIDgwMDAwMDAwMDAwMGJlZWYgNzQwMDAwMDAwMDAwYmVlZiAwMDAwMDAw
-MDAwMThiZWVmIDAwMDA1M2ZlMDAwMDAwMDMNCihYRU4pIFsyMDEyLTA5LTA0IDAzOjAwOjM0
-XSAgICBmZmZmODMwMGE1MmRhMDAwIDAwMDAwMDNkY2Q1YTg2ODAgMDAwMDAwMDAwMDE4ZTBj
-OQ0KKFhFTikgWzIwMTItMDktMDQgMDM6MDA6MzRdIFhlbiBjYWxsIHRyYWNlOg0KKFhFTikg
-WzIwMTItMDktMDQgMDM6MDA6MzRdICAgIFs8ZmZmZjgyYzQ4MDE1YzllZT5dIGNvbnRleHRf
-c3dpdGNoKzB4Mzk0LzB4ZWViDQooWEVOKSBbMjAxMi0wOS0wNCAwMzowMDozNF0gICAgWzxm
-ZmZmODJjNDgwMTI0YTcwPl0gc2NoZWR1bGUrMHg2NjYvMHg2NzUNCihYRU4pIFsyMDEyLTA5
-LTA0IDAzOjAwOjM0XSAgICBbPGZmZmY4MmM0ODAxMjVlMzE+XSBfX2RvX3NvZnRpcnErMHhh
-NC8weGI1DQooWEVOKSBbMjAxMi0wOS0wNCAwMzowMDozNF0gICAgWzxmZmZmODJjNDgwMTI1
-ZTY4Pl0gZG9fc29mdGlycSsweDI2LzB4MjgNCihYRU4pIFsyMDEyLTA5LTA0IDAzOjAwOjM0
-XSAgICANCihYRU4pIFsyMDEyLTA5LTA0IDAzOjAwOjM0XSB0cmFwcy5jOjMxNTk6ICAgc2hv
-d19leGVjdXRpb25fc3RhdGUoZ3Vlc3RfY3B1X3VzZXJfcmVncygpKTogDQooWEVOKSBbMjAx
-Mi0wOS0wNCAwMzowMDozNF0gLS0tLVsgWGVuLTQuMi4wLXJjNC1wcmUgIHg4Nl82NCAgZGVi
-dWc9eSAgTm90IHRhaW50ZWQgXS0tLS0NCihYRU4pIFsyMDEyLTA5LTA0IDAzOjAwOjM0XSBD
-UFU6ICAgIDMNCihYRU4pIFsyMDEyLTA5LTA0IDAzOjAwOjM0XSBSSVA6ICAgIGUwMzM6Wzxm
-ZmZmZmZmZjgxMDAxMWFhPl0NCihYRU4pIFsyMDEyLTA5LTA0IDAzOjAwOjM0XSBSRkxBR1M6
-IDAwMDAwMDAwMDAwMDAyMDIgICBFTTogMSAgIENPTlRFWFQ6IHB2IGd1ZXN0DQooWEVOKSBb
-MjAxMi0wOS0wNCAwMzowMDozNF0gcmF4OiAwMDAwMDAwMDAwMDAwMDAwICAgcmJ4OiBmZmZm
-ODgwMDFmYzBiMTAwICAgcmN4OiBmZmZmZmZmZjgxMDAxMWFhDQooWEVOKSBbMjAxMi0wOS0w
-NCAwMzowMDozNF0gcmR4OiBmZmZmODgwMDFlOTllMTgwICAgcnNpOiAwMDAwMDAwMGRlYWRi
-ZWVmICAgcmRpOiAwMDAwMDAwMGRlYWRiZWVmDQooWEVOKSBbMjAxMi0wOS0wNCAwMzowMDoz
-NF0gcmJwOiBmZmZmODgwMDFjZDE3YmYwICAgcnNwOiBmZmZmODgwMDFjZDE3YmI4ICAgcjg6
-ICAwMDAwMDAwMDAwMDAwMDAwDQooWEVOKSBbMjAxMi0wOS0wNCAwMzowMDozNF0gcjk6ICAw
-MDAwMDAwMDAwMDAwMDAxICAgcjEwOiAwMDAwMDAwMDAwMDAwMDAwICAgcjExOiAwMDAwMDAw
-MDAwMDAwMjAyDQooWEVOKSBbMjAxMi0wOS0wNCAwMzowMDozNF0gcjEyOiBmZmZmODgwMDFh
-MDgwMGQ4ICAgcjEzOiAwMDAwMDAwMDAwMDAwMDAwICAgcjE0OiBmZmZmODgwMDAzMGUxNGEw
-DQooWEVOKSBbMjAxMi0wOS0wNCAwMzowMDozNF0gcjE1OiAwMDAwMDAwMDAwMDAwMDAwICAg
-Y3IwOiAwMDAwMDAwMDgwMDUwMDNiICAgY3I0OiAwMDAwMDAwMDAwMDAwNmYwDQooWEVOKSBb
-MjAxMi0wOS0wNCAwMzowMDozNF0gY3IzOiAwMDAwMDAwMDY4NTA2MDAwICAgY3IyOiAwMDAw
-MDAwMGY3NmU0MDAwDQooWEVOKSBbMjAxMi0wOS0wNCAwMzowMDozNF0gZHM6IDAwMDAgICBl
-czogMDAwMCAgIGZzOiAwMDAwICAgZ3M6IDAwMDAgICBzczogZTAyYiAgIGNzOiBlMDMzDQoo
-WEVOKSBbMjAxMi0wOS0wNCAwMzowMDozNF0gR3Vlc3Qgc3RhY2sgdHJhY2UgZnJvbSByc3A9
-ZmZmZjg4MDAxY2QxN2JiODoNCihYRU4pIFsyMDEyLTA5LTA0IDAzOjAwOjM0XSAgICAwMDAw
-MDAwMDAwMDAwMDAwIDAwMDAwMDAwMDAwMDAwMDEgZmZmZmZmZmY4MTAwNDk0MiBmZmZmODgw
-MDAzMGUxMDQwDQooWEVOKSBbMjAxMi0wOS0wNCAwMzowMDozNF0gICAgZmZmZjg4MDAxZTk5
-ZTE4MCAwMDAwMDAwMDAwMDAwMDAwIGZmZmY4ODAwMDMwZTE0YTAgZmZmZjg4MDAxY2QxN2Mx
-MA0KKFhFTikgWzIwMTItMDktMDQgMDM6MDA6MzRdICAgIGZmZmZmZmZmODEwMDM5NDEgZmZm
-Zjg4MDAxZTk5ZTE4MCBmZmZmODgwMDAzMGUxMDQwIGZmZmY4ODAwMWNkMTdjNzANCihYRU4p
-IFsyMDEyLTA5LTA0IDAzOjAwOjM0XSAgICBmZmZmZmZmZjgxMDBiODUwIGZmZmY4ODAwMDMw
-ZTEwNDAgZmZmZjg4MDAxZDI4MDA4MCAwMDAwMDAwMDAwMDAwMDYzDQooWEVOKSBbMjAxMi0w
-OS0wNCAwMzowMDozNF0gICAgZmZmZjg4MDAxZmMxMGE4MCBmZmZmODgwMDFjZDE3YzgwIGZm
-ZmY4ODAwMWZjMTJlODAgMDAwMDAwMDAwMDAwMDAwMA0KKFhFTikgWzIwMTItMDktMDQgMDM6
-MDA6MzRdICAgIGZmZmY4ODAwMWQyODViMDAgMDAwMDAwMDAwMDAwMDAwMCAwMDAwMDAwMDAw
-MDAwMDAwIGZmZmY4ODAwMDMwZTEwNDANCihYRU4pIFsyMDEyLTA5LTA0IDAzOjAwOjM0XSAg
-ICBmZmZmZmZmZjgxN2ZhMmY1IGZmZmY4ODAwMWNkMTdkZDAgMDAwMDAwMDAwMDAwMDIxNiBm
-ZmZmZmZmZjgxMDcwMGZlDQooWEVOKSBbMjAxMi0wOS0wNCAwMzowMDozNF0gICAgZmZmZjg4
-MDAxZmMwZTAxOCBmZmZmODgwMDAzMGUxMDQwIDAwMDAwMDAwMDAwMTJlODAgZmZmZjg4MDAx
-Y2QxN2ZkOA0KKFhFTikgWzIwMTItMDktMDQgMDM6MDA6MzRdICAgIGZmZmY4ODAwMWNkMTYw
-MTAgMDAwMDAwMDAwMDAxMmU4MCAwMDAwMDAwMDAwMDEyZTgwIGZmZmY4ODAwMWNkMTdmZDgN
-CihYRU4pIFsyMDEyLTA5LTA0IDAzOjAwOjM0XSAgICAwMDAwMDAwMDAwMDEyZTgwIGZmZmY4
-ODAwMWU5OTkwNDAgZmZmZjg4MDAwMzBlMTA0MCBmZmZmODgwMDAwMDAwMDAwDQooWEVOKSBb
-MjAxMi0wOS0wNCAwMzowMDozNF0gICAgZmZmZjg4MDAwMDAwMDAwMCBmZmZmODgwMDFmYzBl
-MDAwIGZmZmY4ODAwMWNkYjMzMDAgZmZmZjg4MDAxZmMxNmUwMA0KKFhFTikgWzIwMTItMDkt
-MDQgMDM6MDA6MzRdICAgIGZmZmY4ODAwMWZjMGUwMDAgZmZmZjg4MDAxY2QxN2Q1MCBmZmZm
-ZmZmZjgxN2ZiNjE0IGZmZmY4ODAwMWQwOGMxNDANCihYRU4pIFsyMDEyLTA5LTA0IDAzOjAw
-OjM0XSAgICBmZmZmODgwMDFjZGIzMzAwIGZmZmY4ODAwMWZjMTZlMDAgZmZmZjg4MDAxZmMw
-ZTAwMCBmZmZmODgwMDFjZDE3ZGUwDQooWEVOKSBbMjAxMi0wOS0wNCAwMzowMDozNF0gICAg
-ZmZmZmZmZmY4MTA3ZjA1OSBmZmZmODgwMDAzMGUxMDQwIGZmZmY4ODAwMDMwZTEwNDAgZmZm
-ZmZmZmY4MTdmYmU3Yg0KKFhFTikgWzIwMTItMDktMDQgMDM6MDA6MzRdICAgIGZmZmY4ODAw
-MWZjMGU0NDggZmZmZjg4MDAwMzBlMTA0MCBmZmZmODgwMDFjZGIzMzIwIGZmZmY4ODAwMWNk
-MTdkYjANCihYRU4pIFsyMDEyLTA5LTA0IDAzOjAwOjM0XSAgICBmZmZmZmZmZjgxMGFjYjc4
-IGZmZmY4ODAwMWZjMGUwMDAgZmZmZjg4MDAxY2RiMzMwMCBmZmZmODgwMDFmYzBlNDM4DQoo
-WEVOKSBbMjAxMi0wOS0wNCAwMzowMDozNF0gICAgZmZmZjg4MDAxZmMwZTQ0OCBmZmZmODgw
-MDAzMGUxMDQwIGZmZmY4ODAwMWNkYjMzMjAgZmZmZjg4MDAxY2QxN2RlMA0KKFhFTikgWzIw
-MTItMDktMDQgMDM6MDA6MzRdICAgIGZmZmZmZmZmODE3ZmE4MTQgZmZmZjg4MDAxY2QxN2Vi
-MCBmZmZmZmZmZjgxMDdmNmY5IDAwMDAwMDAwMDAwMDAwMDANCihYRU4pIFsyMDEyLTA5LTA0
-IDAzOjAwOjM0XSAgICBmZmZmODgwMDFjZDE3ZTUwIGZmZmY4ODAwMDMwZTEwNDAgZmZmZjg4
-MDAxY2QxNjAxMCBmZmZmODgwMDAzMGUwMjQwDQooWEVOKSBbMjAxMi0wOS0wNCAwMzowMDoz
-NF0gICAgZmZmZjg4MDAxY2QxN2U2OCBmZmZmODgwMDAzMGUxMDQwIGZmZmY4ODAwMDMwZTEw
-NDAgZmZmZjg4MDAwMzBlMTA0MA0KKFhFTikgWzIwMTItMDktMDQgMDM6MTU6MTJdIGdyYW50
-X3RhYmxlLmM6MjU0OmQwIEluY3JlYXNlZCBtYXB0cmFjayBzaXplIHRvIDIgZnJhbWVzDQo=
-------------05A1A81AE2E0F0B49
-Content-Type: text/plain; charset="us-ascii"
-MIME-Version: 1.0
-Content-Transfer-Encoding: 7bit
-Content-Disposition: inline
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
-------------05A1A81AE2E0F0B49--
-
-
-
diff --git a/test/corpus/<4710608674.20120904101330@eikelenboom.it> b/test/corpus/<4710608674.20120904101330@eikelenboom.it>
deleted file mode 100644 (file)
index aeff7b6..0000000
+++ /dev/null
@@ -1,150 +0,0 @@
-From xen-devel-bounces@lists.xen.org Tue Sep 04 09:17:23 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Tue, 04 Sep 2012 09:17:23 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T8oJx-0001TC-34
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 04 Sep 2012 09:17:23 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T8oGP-0004US-Nd; Tue, 04 Sep 2012 08:13:37 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <linux@eikelenboom.it>) id 1T8oGN-0004UD-QY
-       for xen-devel@lists.xen.org; Tue, 04 Sep 2012 08:13:36 +0000
-Received: from [85.158.138.51:60192] by server-10.bemta-3.messagelabs.com id
-       A8/9D-10411-E28B5405; Tue, 04 Sep 2012 08:13:34 +0000
-X-Env-Sender: linux@eikelenboom.it
-X-Msg-Ref: server-6.tower-174.messagelabs.com!1346746414!20441214!1
-X-Originating-IP: [188.40.164.121]
-X-SpamReason: No, hits=0.0 required=7.0 tests=
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 14446 invoked from network); 4 Sep 2012 08:13:34 -0000
-Received: from static.121.164.40.188.clients.your-server.de (HELO
-       smtp.eikelenboom.it) (188.40.164.121)
-       by server-6.tower-174.messagelabs.com with AES256-SHA encrypted SMTP;
-       4 Sep 2012 08:13:34 -0000
-Received: from 26-69-ftth.onsneteindhoven.nl ([88.159.69.26]:49701
-       helo=[172.16.1.20])
-       by smtp.eikelenboom.it with esmtpsa (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72) (envelope-from <linux@eikelenboom.it>)
-       id 1T8oDH-0002Q8-Il; Tue, 04 Sep 2012 10:10:23 +0200
-Date: Tue, 4 Sep 2012 10:13:30 +0200
-From: Sander Eikelenboom <linux@eikelenboom.it>
-Organization: Eikelenboom IT services
-X-Priority: 3 (Normal)
-Message-ID: <4710608674.20120904101330@eikelenboom.it>
-To: "Jan Beulich" <JBeulich@suse.com>
-In-Reply-To: <5045CDF302000078000985FB@nat28.tlf.novell.com>
-References: <7914B38A4445B34AA16EB9F1352942F1012F0F6F4B98@SJCPMAILBOX01.citrite.net>
-       <CC681CDD.3D966%keir.xen@gmail.com>
-       <40501859.20120902104331@eikelenboom.it>
-       <5044849002000078000982EA@nat28.tlf.novell.com>
-       <4610648186.20120904090841@eikelenboom.it>
-       <5045CDF302000078000985FB@nat28.tlf.novell.com>
-MIME-Version: 1.0
-Cc: "wei.wang2@amd.com" <wei.wang2@amd.com>, Keir Fraser <keir.xen@gmail.com>,
-       Santosh Jodh <Santosh.Jodh@citrix.com>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] Using debug-key 'o:  Dump IOMMU p2m table,
-       locks up machine
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-Hello Jan,
-
-Tuesday, September 4, 2012, 9:46:27 AM, you wrote:
-
->>>> On 04.09.12 at 09:08, Sander Eikelenboom <linux@eikelenboom.it> wrote:
->>> This one
->> 
->>>>(XEN) [2012-09-02 00:55:02] traps.c:3156: GPF (0060): ffff82c48015c9ee -> 
->> ffff82c480224b13
->> 
->>> also worries me. While Xen gracefully recovers from it, these
->>> messages still generally indicate a problem somewhere. Could
->>> you resolve the addresses to file:line tuples? And, assuming
->>> this happens in the context of doing something on behalf of
->>> the guest in the context of a guest vCPU, could you also
->>> check what guest side action triggers this (e.g. by adding a
->>> call to show_execution_state() alongside the printing of the
->>> message)?
->> 
->> Hope i have done it right:
-
-> Yes.
-
->> Gives (complete dmesg attached:
->> 
->> (XEN) [2012-09-03 21:20:49] AMD-Vi: IO_PAGE_FAULT: domain = 14, device id = 0x0700, fault address = 0xa8ee82c0
->> (XEN) [2012-09-03 21:20:49] AMD-Vi: IO_PAGE_FAULT: domain = 14, device id = 0x0700, fault address = 0xa8ee8320
->> (XEN) [2012-09-04 03:00:34] traps.c:3156: GPF (0060): ffff82c48015c9ee -> ffff82c480224b73
->> (XEN) [2012-09-04 03:00:34] traps.c:3157:  show_execution_state(regs): 
->> (XEN) [2012-09-04 03:00:34] ----[ Xen-4.2.0-rc4-pre  x86_64  debug=y  Not tainted ]----
->> (XEN) [2012-09-04 03:00:34] CPU:    3
->> (XEN) [2012-09-04 03:00:34] RIP:    e008:[<ffff82c48015c9ee>] context_switch+0x394/0xeeb
-
-> Now that - in the middle of context switch code - almost certainly
-> wants to be fixed, but we first need to understand what it is (and
-> how it gets triggered by the guest). I.e. once again this requires
-> resolving to file/line - care to do the conversion yourself, or send
-> (or make available somewhere) the very xen-syms?
-
-> Jan
-
-Hmm don't know how to get the file/line, only thing i have found is:
-
-serveerstertje:/boot# gdb xen-syms-4.2.0-rc4-pre
-GNU gdb (GDB) 7.0.1-debian
-Copyright (C) 2009 Free Software Foundation, Inc.
-License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
-This is free software: you are free to change and redistribute it.
-There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
-and "show warranty" for details.
-This GDB was configured as "x86_64-linux-gnu".
-For bug reporting instructions, please see:
-<http://www.gnu.org/software/gdb/bugs/>...
-Reading symbols from /boot/xen-syms-4.2.0-rc4-pre...done.
-(gdb) x/i 0xffff82c48015c9ee
-0xffff82c48015c9ee <context_switch+916>:        mov    %edx,%gs
-(gdb)
-
-
-How to resolve the RIP could be a nice addition to the http://wiki.xen.org/wiki/Debugging_Xen, so one could easily refer to that on how to do it :-)
-
---
-Sander
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<4FC8EBD9.4@cantab.net> b/test/corpus/<4FC8EBD9.4@cantab.net>
deleted file mode 100644 (file)
index fc8e480..0000000
+++ /dev/null
@@ -1,103 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Jun 01 17:25:14 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 01 Jun 2012 17:25:14 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SaUez-0005Cj-Dl
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 01 Jun 2012 17:25:14 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SaUaw-0004ob-Iw; Fri, 01 Jun 2012 16:20:58 +0000
-Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <d.vrabel.98@gmail.com>) id 1SaUat-0004oV-TR
-       for xen-devel@lists.xen.org; Fri, 01 Jun 2012 16:20:56 +0000
-Received: from [193.109.254.147:55983] by server-10.bemta-14.messagelabs.com
-       id 90/9B-27843-7EBE8CF4; Fri, 01 Jun 2012 16:20:55 +0000
-X-Env-Sender: d.vrabel.98@gmail.com
-X-Msg-Ref: server-10.tower-27.messagelabs.com!1338567646!7258575!1
-X-Originating-IP: [209.85.213.173]
-X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 18822 invoked from network); 1 Jun 2012 16:20:47 -0000
-Received: from mail-yx0-f173.google.com (HELO mail-yx0-f173.google.com)
-       (209.85.213.173)
-       by server-10.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
-       1 Jun 2012 16:20:47 -0000
-Received: by yenm4 with SMTP id m4so2259361yen.32
-       for <xen-devel@lists.xen.org>; Fri, 01 Jun 2012 09:20:46 -0700 (PDT)
-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
-       h=sender:message-id:date:from:user-agent:mime-version:to:cc:subject
-       :references:in-reply-to:content-type:content-transfer-encoding;
-       bh=KAqwNjndHoDp2nC2ZwThKKlITMfe2fxbueBtAfpTyUI=;
-       b=EXrnjYRcJJ9xPJHQg19X0bUvVx7q1cNDO2q2FLpcdjjjPA2LPkEfVhWoynhwLBZ6Sb
-       gscVJ7X2Nf4NWl8khfVg/PJZ7XxrX0PrxP4mM/B+8wCBByxNZq+IAXOl+W75TbGecpb6
-       zDT/tPOJ/WcWCgIaHhYeYXn0f3CAtobysSBse2FtNSoSHAkxe8iVKlNqbvHDHi8xq7U9
-       +KTE8/a8vqwy7r6P4K8REO+slqcwfO+9DLEE/OsCvgGhRS7D9CzXl+dTQ3LlFOKswXao
-       9VO+diAIgGcgho3iOnDkx/4iWQ1/NpgxydKh/DvOudHX7lE3Ng4FD8Y419Ez4NeqcowM
-       PVVA==
-Received: by 10.236.115.196 with SMTP id e44mr3256522yhh.90.1338567646380;
-       Fri, 01 Jun 2012 09:20:46 -0700 (PDT)
-Received: from [10.80.2.76] (firewall.ctxuk.citrix.com. [62.200.22.2])
-       by mx.google.com with ESMTPS id p14sm3197464ani.8.2012.06.01.09.20.43
-       (version=SSLv3 cipher=OTHER); Fri, 01 Jun 2012 09:20:45 -0700 (PDT)
-Message-ID: <4FC8EBD9.4@cantab.net>
-Date: Fri, 01 Jun 2012 17:20:41 +0100
-From: David Vrabel <dvrabel@cantab.net>
-User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US;
-       rv:1.9.1.16) Gecko/20120428 Icedove/3.0.11
-MIME-Version: 1.0
-To: Ian Campbell <ian.campbell@citrix.com>
-References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>        <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-       <1338565207-2888-23-git-send-email-ian.campbell@citrix.com>
-In-Reply-To: <1338565207-2888-23-git-send-email-ian.campbell@citrix.com>
-Cc: xen-devel@lists.xen.org
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_DKIM_INVALID,T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 23/38] arm: use correct attributes for
- mappings in copy_from_paddr()
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On 01/06/12 16:39, Ian Campbell wrote:
-> The DTB is in RAM (hence bufferable), kernel is in flash and therefor requires
-> a device type mapping (hence dev shared).
-> 
-> Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
-
-Potentially the bootloader could provide the DTB in flash but this seems
-unlikely.
-
-Acked-by: David Vrabel <david.vrabel@citrix.com>
-
-David
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<4FD0EB53.2040603@citrix.com> b/test/corpus/<4FD0EB53.2040603@citrix.com>
deleted file mode 100644 (file)
index e1e3c08..0000000
+++ /dev/null
@@ -1,126 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Jun 07 19:00:11 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 07 Jun 2012 19:00:11 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1Sch0C-0005ex-O7
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 07 Jun 2012 19:00:11 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1Scgws-0006yd-3G; Thu, 07 Jun 2012 17:56:42 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <roger.pau@citrix.com>) id 1Scgwq-0006yW-DJ
-       for xen-devel@lists.xensource.com; Thu, 07 Jun 2012 17:56:40 +0000
-Received: from [85.158.143.35:59902] by server-3.bemta-4.messagelabs.com id
-       59/27-29237-75BE0DF4; Thu, 07 Jun 2012 17:56:39 +0000
-X-Env-Sender: roger.pau@citrix.com
-X-Msg-Ref: server-6.tower-21.messagelabs.com!1339091799!19263473!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDE0Nzk=\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 26219 invoked from network); 7 Jun 2012 17:56:39 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-6.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
-       7 Jun 2012 17:56:39 -0000
-X-IronPort-AV: E=Sophos;i="4.75,732,1330905600"; d="scan'208";a="12894008"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       07 Jun 2012 17:56:38 +0000
-Received: from [192.168.1.132] (10.31.3.235) by LONPMAILMX01.citrite.net
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0; Thu, 7 Jun 2012
-       18:56:38 +0100
-Message-ID: <4FD0EB53.2040603@citrix.com>
-Date: Thu, 7 Jun 2012 19:56:35 +0200
-From: Roger Pau Monne <roger.pau@citrix.com>
-User-Agent: Postbox 3.0.3 (Macintosh/20120304)
-MIME-Version: 1.0
-To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-References: <alpine.DEB.2.00.1205281439080.26786@kaball-desktop>
-       <1338287956-24691-8-git-send-email-stefano.stabellini@eu.citrix.com>
-In-Reply-To: <1338287956-24691-8-git-send-email-stefano.stabellini@eu.citrix.com>
-Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
-       Ian Jackson <Ian.Jackson@eu.citrix.com>,
-       Ian Campbell <Ian.Campbell@citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Transfer-Encoding: 7bit
-Content-Type: text/plain; charset="us-ascii"; Format="flowed"
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH v8 08/11] xl/libxl: implement QDISK
-       libxl_device_disk_local_attach
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-Stefano Stabellini wrote:
->   int libxl__device_disk_local_detach(libxl__gc *gc, libxl_device_disk *disk)
->   {
-> -    /* Nothing to do for PHYSTYPE_PHY. */
-> +    int rc = 0;
->
-> -    /*
-> -     * For other device types assume that the blktap2 process is
-> -     * needed by the soon to be started domain and do nothing.
-> -     */
-> +    switch (disk->backend) {
-> +        case LIBXL_DISK_BACKEND_QDISK:
-> +            if (disk->vdev != NULL) {
-> +                libxl_device_disk_remove(gc->owner, LIBXL_TOOLSTACK_DOMID,
-> +                        disk, 0);
-
-I was just looking at this code, and I have the feeling this could be 
-dangerous, since you call libxl__device_disk_local_detach from an 
-already running ao (the bootloader ao), and libxl_device_disk_remove 
-will initiate another ao, and set it to completed inside of an already 
-running ao.
-
-> +                rc = libxl_device_disk_destroy(gc->owner,
-> +                        LIBXL_TOOLSTACK_DOMID, disk);
-> +            }
-> +            break;
-> +        default:
-> +            /*
-> +             * Nothing to do for PHYSTYPE_PHY.
-> +             * For other device types assume that the blktap2 process is
-> +             * needed by the soon to be started domain and do nothing.
-> +             */
-> +            break;
-> +    }
->
->       free(disk->pdev_path);
->       free(disk->script);
-> -    return 0;
-> +
-> +    return rc;
->   }
->
->   /******************************************************************************/
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<4FED7BD7020000780008CBFB@nat28.tlf.novell.com> b/test/corpus/<4FED7BD7020000780008CBFB@nat28.tlf.novell.com>
deleted file mode 100644 (file)
index 1f645eb..0000000
+++ /dev/null
@@ -1,87 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Jun 29 08:59:25 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 29 Jun 2012 08:59:25 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SkW6p-0000ok-Kc
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 29 Jun 2012 08:59:25 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SkW3Y-0004v1-6R; Fri, 29 Jun 2012 07:55:56 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <JBeulich@suse.com>) id 1SkW3X-0004uu-9r
-       for Xen-devel@lists.xensource.com; Fri, 29 Jun 2012 07:55:55 +0000
-Received: from [85.158.139.83:32085] by server-8.bemta-5.messagelabs.com id
-       BA/30-10278-A8F5DEF4; Fri, 29 Jun 2012 07:55:54 +0000
-X-Env-Sender: JBeulich@suse.com
-X-Msg-Ref: server-16.tower-182.messagelabs.com!1340956554!22756684!1
-X-Originating-IP: [130.57.49.28]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogMTMwLjU3LjQ5LjI4ID0+IDQ2NTQ=\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 29857 invoked from network); 29 Jun 2012 07:55:54 -0000
-Received: from nat28.tlf.novell.com (HELO nat28.tlf.novell.com) (130.57.49.28)
-       by server-16.tower-182.messagelabs.com with SMTP;
-       29 Jun 2012 07:55:54 -0000
-Received: from EMEA1-MTA by nat28.tlf.novell.com
-       with Novell_GroupWise; Fri, 29 Jun 2012 08:55:53 +0100
-Message-Id: <4FED7BD7020000780008CBFB@nat28.tlf.novell.com>
-X-Mailer: Novell GroupWise Internet Agent 12.0.0 
-Date: Fri, 29 Jun 2012 08:56:39 +0100
-From: "Jan Beulich" <JBeulich@suse.com>
-To: "Mukesh Rathor" <mukesh.rathor@oracle.com>
-References: <20120628180007.06bb3fd3@mantra.us.oracle.com>
-In-Reply-To: <20120628180007.06bb3fd3@mantra.us.oracle.com>
-Mime-Version: 1.0
-Content-Disposition: inline
-Cc: "Xen-devel@lists.xensource.com" <Xen-devel@lists.xensource.com>,
-       IanCampbell <Ian.Campbell@citrix.com>,
-       "stefano.stabellini@eu.citrix.com" <stefano.stabellini@eu.citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [HYBRID]: XEN_EMULATE_PREFIX in user process
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
->>> On 29.06.12 at 03:00, Mukesh Rathor <mukesh.rathor@oracle.com> wrote:
-> BTW, for cpuid vmexit, if kernel mode I call pv_cpuid, if user mode, I
-> just return cpuid values, as that's what would happen without the HVM
-> container.
-
-Which means you're not leveraging one of the things you could
-gain from hybrid (after all, returning the native value to user
-mode is one of the weaknesses of PV).
-
-Jan
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<4FED8052020000780008CC32@nat28.tlf.novell.com> b/test/corpus/<4FED8052020000780008CC32@nat28.tlf.novell.com>
deleted file mode 100644 (file)
index 9e38cc4..0000000
+++ /dev/null
@@ -1,100 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Jun 29 09:38:26 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 29 Jun 2012 09:38:26 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SkWib-0000yC-3e
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 29 Jun 2012 09:38:26 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SkWfb-0008CJ-Au; Fri, 29 Jun 2012 08:35:15 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <JBeulich@suse.com>) id 1SkWfZ-0008CC-Oz
-       for Xen-devel@lists.xensource.com; Fri, 29 Jun 2012 08:35:13 +0000
-Received: from [85.158.138.51:27083] by server-3.bemta-3.messagelabs.com id
-       29/B7-26490-0C86DEF4; Fri, 29 Jun 2012 08:35:12 +0000
-X-Env-Sender: JBeulich@suse.com
-X-Msg-Ref: server-2.tower-174.messagelabs.com!1340958909!29043390!1
-X-Originating-IP: [130.57.49.28]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogMTMwLjU3LjQ5LjI4ID0+IDQ2NTQ=\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 7295 invoked from network); 29 Jun 2012 08:35:09 -0000
-Received: from nat28.tlf.novell.com (HELO nat28.tlf.novell.com) (130.57.49.28)
-       by server-2.tower-174.messagelabs.com with SMTP;
-       29 Jun 2012 08:35:09 -0000
-Received: from EMEA1-MTA by nat28.tlf.novell.com
-       with Novell_GroupWise; Fri, 29 Jun 2012 09:15:00 +0100
-Message-Id: <4FED8052020000780008CC32@nat28.tlf.novell.com>
-X-Mailer: Novell GroupWise Internet Agent 12.0.0 
-Date: Fri, 29 Jun 2012 09:15:46 +0100
-From: "Jan Beulich" <JBeulich@suse.com>
-To: "Ian Campbell" <Ian.Campbell@citrix.com>
-References: <20120628180007.06bb3fd3@mantra.us.oracle.com>
-       <4FED7BD7020000780008CBFB@nat28.tlf.novell.com>
-       <1340957235.10942.72.camel@zakaz.uk.xensource.com>
-In-Reply-To: <1340957235.10942.72.camel@zakaz.uk.xensource.com>
-Mime-Version: 1.0
-Content-Disposition: inline
-Cc: "Xen-devel@lists.xensource.com" <Xen-devel@lists.xensource.com>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [HYBRID]: XEN_EMULATE_PREFIX in user process
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
->>> On 29.06.12 at 10:07, Ian Campbell <Ian.Campbell@citrix.com> wrote:
-> On Fri, 2012-06-29 at 08:56 +0100, Jan Beulich wrote:
->> >>> On 29.06.12 at 03:00, Mukesh Rathor <mukesh.rathor@oracle.com> wrote:
->> > BTW, for cpuid vmexit, if kernel mode I call pv_cpuid, if user mode, I
->> > just return cpuid values, as that's what would happen without the HVM
->> > container.
->> 
->> Which means you're not leveraging one of the things you could
->> gain from hybrid (after all, returning the native value to user
->> mode is one of the weaknesses of PV).
-> 
-> cpuid masking could happen in the HVM layer too, couldn't it?
-
-But CPUID masking is rather limited (after all that's why CPUID
-faulting got added later).
-
-> Probably "XEN_EMULATE_PREFIX cpuid" and raw "cpuid" ought to return the
-> same set of PV values in hybrid?
-
-Yes, that's what I would think.
-
-Jan
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<4FF177A3020000780008D091@nat28.tlf.novell.com> b/test/corpus/<4FF177A3020000780008D091@nat28.tlf.novell.com>
deleted file mode 100644 (file)
index 50f9ade..0000000
+++ /dev/null
@@ -1,103 +0,0 @@
-From xen-devel-bounces@lists.xen.org Mon Jul 02 09:33:22 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Mon, 02 Jul 2012 09:33:22 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1Slc4K-000346-HN
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Mon, 02 Jul 2012 09:33:22 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1Slbz8-0002gG-NY; Mon, 02 Jul 2012 08:27:54 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <JBeulich@suse.com>) id 1Slbz7-0002gB-Mh
-       for Xen-devel@lists.xensource.com; Mon, 02 Jul 2012 08:27:53 +0000
-Received: from [85.158.138.51:46468] by server-6.bemta-3.messagelabs.com id
-       91/45-11602-88B51FF4; Mon, 02 Jul 2012 08:27:52 +0000
-X-Env-Sender: JBeulich@suse.com
-X-Msg-Ref: server-10.tower-174.messagelabs.com!1341217671!26501405!1
-X-Originating-IP: [130.57.49.28]
-X-SpamReason: No, hits=0.0 required=7.0 tests=
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 30172 invoked from network); 2 Jul 2012 08:27:52 -0000
-Received: from nat28.tlf.novell.com (HELO nat28.tlf.novell.com) (130.57.49.28)
-       by server-10.tower-174.messagelabs.com with SMTP;
-       2 Jul 2012 08:27:52 -0000
-Received: from EMEA1-MTA by nat28.tlf.novell.com
-       with Novell_GroupWise; Mon, 02 Jul 2012 09:27:51 +0100
-Message-Id: <4FF177A3020000780008D091@nat28.tlf.novell.com>
-X-Mailer: Novell GroupWise Internet Agent 12.0.0 
-Date: Mon, 02 Jul 2012 09:27:47 +0100
-From: "Jan Beulich" <JBeulich@suse.com>
-To: "Mukesh Rathor" <mukesh.rathor@oracle.com>
-References: <20120628180007.06bb3fd3@mantra.us.oracle.com>
-       <20120629010903.GC4902@phenom.dumpdata.com>
-       <20120628182602.6cc9b432@mantra.us.oracle.com>
-       <1340957369.10942.74.camel@zakaz.uk.xensource.com>
-       <20120629111546.50e36f52@mantra.us.oracle.com>
-       <20120629120738.425781e5@mantra.us.oracle.com>
-       <1341007454.5953.18.camel@dagon.hellion.org.uk>
-       <20120629155000.5152d544@mantra.us.oracle.com>
-In-Reply-To: <20120629155000.5152d544@mantra.us.oracle.com>
-Mime-Version: 1.0
-Content-Disposition: inline
-Cc: "Xen-devel@lists.xensource.com" <Xen-devel@lists.xensource.com>,
-       Ian Campbell <Ian.Campbell@citrix.com>,
-       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [HYBRID]: XEN_EMULATE_PREFIX in user process
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
->>> On 30.06.12 at 00:50, Mukesh Rathor <mukesh.rathor@oracle.com> wrote:
-> On Fri, 29 Jun 2012 15:04:14 -0700 (PDT)
-> Ian Campbell <Ian.Campbell@citrix.com> wrote:
-> 
->> On Fri, 2012-06-29 at 20:07 +0100, Mukesh Rathor wrote:
->> 
->> I don't think reducing code should come at the expense of adding
->> special cases for hybrid to userspace programs...
->> 
->> I think you'll have to handle the invalid op, it can't be that much
->> code, can it?
-> 
-> Not a whole lot of code, but other than xen-detect, just curious,
-> what is the possibility of any user level using XEN_EMULATE_PREFIX cpuid?
-
-Obviously any code cloned from xen-detect could, i.e. anything
-that tries to be Xen-PV-aware.
-
-Jan
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<4FF3009F020000780008D522@nat28.tlf.novell.com> b/test/corpus/<4FF3009F020000780008D522@nat28.tlf.novell.com>
deleted file mode 100644 (file)
index d26a4e6..0000000
+++ /dev/null
@@ -1,100 +0,0 @@
-From xen-devel-bounces@lists.xen.org Tue Jul 03 13:28:50 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Tue, 03 Jul 2012 13:28:50 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1Sm2Do-0003xj-Gd
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 03 Jul 2012 13:28:50 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1Sm28o-0003xQ-QM; Tue, 03 Jul 2012 12:23:38 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <JBeulich@suse.com>) id 1Sm28n-0003xL-Lp
-       for xen-devel@lists.xen.org; Tue, 03 Jul 2012 12:23:37 +0000
-Received: from [85.158.138.51:59843] by server-4.bemta-3.messagelabs.com id
-       A6/67-17105-844E2FF4; Tue, 03 Jul 2012 12:23:36 +0000
-X-Env-Sender: JBeulich@suse.com
-X-Msg-Ref: server-9.tower-174.messagelabs.com!1341318215!30844204!1
-X-Originating-IP: [130.57.49.28]
-X-SpamReason: No, hits=0.0 required=7.0 tests=
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 4862 invoked from network); 3 Jul 2012 12:23:35 -0000
-Received: from nat28.tlf.novell.com (HELO nat28.tlf.novell.com) (130.57.49.28)
-       by server-9.tower-174.messagelabs.com with SMTP;
-       3 Jul 2012 12:23:35 -0000
-Received: from EMEA1-MTA by nat28.tlf.novell.com
-       with Novell_GroupWise; Tue, 03 Jul 2012 13:23:34 +0100
-Message-Id: <4FF3009F020000780008D522@nat28.tlf.novell.com>
-X-Mailer: Novell GroupWise Internet Agent 12.0.0 
-Date: Tue, 03 Jul 2012 13:24:31 +0100
-From: "Jan Beulich" <JBeulich@suse.com>
-To: "amiard brice" <perso@brice-amiard.Fr>
-References: <002301cd590c$49aee250$dd0ca6f0$@brice-amiard.Fr>
-In-Reply-To: <002301cd590c$49aee250$dd0ca6f0$@brice-amiard.Fr>
-Mime-Version: 1.0
-Content-Disposition: inline
-Cc: xen-devel@lists.xen.org
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] VT-D CPU ressources
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
->>> On 03.07.12 at 13:09, "amiard brice" <perso@brice-amiard.Fr> wrote:
-> I've post a message on  <mailto:xen-users@list.xen.org>
-> xen-users@list.xen.org , according to a member of this list, I've decide to
-> post it on xen-devel.
-
-While re-posting here with this sort of problem is fine, you
-should have done so in a way that's easy to read and understand.
-Neither does top-posting help this, nor do the awful extra blank
-lines that must have got inserted somewhere.
-
-Further, while you attach quite a bit of information, you left us
-in the dark as to what device combinations you want to assign to
-individual guests (and what co-assignment error messages you
-specifically get). From what I can guess so far, there's no
-obvious 2-element groups that could be assigned to individual
-guests. That's because devices behind PCI bridges need to all
-be assigned to the same guest, as otherwise the IOMMU can't
-tell apart the origin of requests from the different devices.
-
-You could try with PV guests (and that may additionally require
-turning off the IOMMU). There's also a "pci-passthrough-strict-check"
-config option to suppress these checks, but using it would
-make your entire setup insecure (between the individual
-guests).
-
-Jan
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<4FFD4C06.7090403@citrix.com> b/test/corpus/<4FFD4C06.7090403@citrix.com>
deleted file mode 100644 (file)
index caad63c..0000000
+++ /dev/null
@@ -1,128 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Jul 11 10:53:53 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 11 Jul 2012 10:53:53 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SotcB-0003zW-Am
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 11 Jul 2012 10:53:53 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SotXh-0002t8-N8; Wed, 11 Jul 2012 09:49:09 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Andrew.Cooper3@citrix.com>) id 1SotXf-0002t2-EF
-       for xen-devel@lists.xen.org; Wed, 11 Jul 2012 09:49:07 +0000
-Received: from [85.158.139.83:37536] by server-10.bemta-5.messagelabs.com id
-       AD/69-02190-21C4DFF4; Wed, 11 Jul 2012 09:49:06 +0000
-X-Env-Sender: Andrew.Cooper3@citrix.com
-X-Msg-Ref: server-10.tower-182.messagelabs.com!1342000144!28457044!1
-X-Originating-IP: [66.165.176.63]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyNjQ5NzQ=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.2; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 4781 invoked from network); 11 Jul 2012 09:49:05 -0000
-Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
-       by server-10.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
-       11 Jul 2012 09:49:05 -0000
-X-IronPort-AV: E=Sophos;i="4.77,567,1336363200"; d="scan'208";a="201770206"
-Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
-       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       11 Jul 2012 05:48:55 -0400
-Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
-       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0;
-       Wed, 11 Jul 2012 05:48:55 -0400
-Received: from andrewcoop.uk.xensource.com ([10.80.2.18])      by
-       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
-       <andrew.cooper3@citrix.com>)    id 1SotXS-0006jW-Mc;
-       Wed, 11 Jul 2012 10:48:54 +0100
-Message-ID: <4FFD4C06.7090403@citrix.com>
-Date: Wed, 11 Jul 2012 10:48:54 +0100
-From: Andrew Cooper <andrew.cooper3@citrix.com>
-User-Agent: Mozilla/5.0 (X11; Linux x86_64;
-       rv:13.0) Gecko/20120615 Thunderbird/13.0.1
-MIME-Version: 1.0
-To: Chulmin Kim <cmkim@core.kaist.ac.kr>
-References: <008601cd5f45$6eff7530$4cfe5f90$@core.kaist.ac.kr>
-In-Reply-To: <008601cd5f45$6eff7530$4cfe5f90$@core.kaist.ac.kr>
-X-Enigmail-Version: 1.4.2
-Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] maximum memory size allocated by _xmalloc
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On 11/07/12 10:13, Chulmin Kim wrote:
-> Hi all, 
->
-> I'm currently inserting my own code to adjust the several existing memory
-> ballooning works. 
->
-> To accomplish it, I manage some kind of statistics in Xen memory area. 
->
-> Using _xmalloc, I've allocated certain size of memory chunk for the data
-> structure. ( I varied it from 10kb to 24 MB.)
->
-> When the size is equal to 24 MB, xen won't boot anymore.  (stuck during the
-> xmalloc, according to my debugging. _xmalloc returns NULL.)
-> There was no problem when the size is below 12MB.
->
-> Is there any limitation such as max memory size for _xmalloc? 
->
-> I suspected xen heap size, but, it is no longer adjustable. Right? 
->
-> I hope somebody can give me a clue.  Thanks.
-
-_xmalloc will first try to use the size pools for allocation, and
-failing that, try to allocate full pages.
-
-As it is returning NULL, this probably means you no longer have 24MB of
-free contiguous RAM to allocate.
-
-~Andrew
-
->
->
->
-> _______________________________________________
-> Xen-devel mailing list
-> Xen-devel@lists.xen.org
-> http://lists.xen.org/xen-devel
-
--- 
-Andrew Cooper - Dom0 Kernel Engineer, Citrix XenServer
-T: +44 (0)1223 225 900, http://www.citrix.com
-
-
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<4FFE93DE.5020608@citrix.com> b/test/corpus/<4FFE93DE.5020608@citrix.com>
deleted file mode 100644 (file)
index 99f2715..0000000
+++ /dev/null
@@ -1,145 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Jul 12 10:12:23 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 12 Jul 2012 10:12:23 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SpFRd-00049c-Eg
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 12 Jul 2012 10:12:23 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SpFNO-0006jY-E8; Thu, 12 Jul 2012 09:07:58 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Andrew.Cooper3@citrix.com>) id 1SpFNM-0006jO-Cq
-       for xen-devel@lists.xen.org; Thu, 12 Jul 2012 09:07:56 +0000
-Received: from [85.158.138.51:42950] by server-2.bemta-3.messagelabs.com id
-       C7/40-10266-BE39EFF4; Thu, 12 Jul 2012 09:07:55 +0000
-X-Env-Sender: Andrew.Cooper3@citrix.com
-X-Msg-Ref: server-2.tower-174.messagelabs.com!1342084073!28536699!1
-X-Originating-IP: [66.165.176.89]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNTYwMjI=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.2; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 28225 invoked from network); 12 Jul 2012 09:07:54 -0000
-Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
-       by server-2.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
-       12 Jul 2012 09:07:54 -0000
-X-IronPort-AV: E=Sophos;i="4.77,573,1336363200"; d="scan'208";a="31236572"
-Received: from ftlpmailmx01.citrite.net ([10.13.107.65])
-       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       12 Jul 2012 05:07:42 -0400
-Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
-       (10.13.107.65) with Microsoft SMTP Server id 8.3.213.0;
-       Thu, 12 Jul 2012 05:07:42 -0400
-Received: from andrewcoop.uk.xensource.com ([10.80.2.18])      by
-       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
-       <andrew.cooper3@citrix.com>)    id 1SpFN8-0002jO-52;
-       Thu, 12 Jul 2012 10:07:42 +0100
-Message-ID: <4FFE93DE.5020608@citrix.com>
-Date: Thu, 12 Jul 2012 10:07:42 +0100
-From: Andrew Cooper <andrew.cooper3@citrix.com>
-User-Agent: Mozilla/5.0 (X11; Linux x86_64;
-       rv:13.0) Gecko/20120615 Thunderbird/13.0.1
-MIME-Version: 1.0
-To: Chulmin Kim <cmkim@core.kaist.ac.kr>
-References: <008601cd5f45$6eff7530$4cfe5f90$@core.kaist.ac.kr>
-       <4FFD4C06.7090403@citrix.com>
-       <001301cd5fc1$818953c0$849bfb40$@core.kaist.ac.kr>
-In-Reply-To: <001301cd5fc1$818953c0$849bfb40$@core.kaist.ac.kr>
-X-Enigmail-Version: 1.4.2
-Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] maximum memory size allocated by _xmalloc
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On 12/07/12 01:01, Chulmin Kim wrote:
->> On 11/07/12 10:13, Chulmin Kim wrote:
->>> Hi all,
->>>
->>> I'm currently inserting my own code to adjust the several existing
->>> memory ballooning works.
->>>
->>> To accomplish it, I manage some kind of statistics in Xen memory area.
->>>
->>> Using _xmalloc, I've allocated certain size of memory chunk for the
->>> data structure. ( I varied it from 10kb to 24 MB.)
->>>
->>> When the size is equal to 24 MB, xen won't boot anymore.  (stuck
->>> during the xmalloc, according to my debugging. _xmalloc returns NULL.)
->>> There was no problem when the size is below 12MB.
->>>
->>> Is there any limitation such as max memory size for _xmalloc?
->>>
->>> I suspected xen heap size, but, it is no longer adjustable. Right?
->>>
->>> I hope somebody can give me a clue.  Thanks.
->> _xmalloc will first try to use the size pools for allocation, and failing
-> that, try to
->> allocate full pages.
->>
->> As it is returning NULL, this probably means you no longer have 24MB of
-> free
->> contiguous RAM to allocate.
->>
->> ~Andrew
->>
-> Thanks for the reply, Andrew.
->
-> I have to check the contiguity. 
->
-> If it is the cause of the problem, then, how can I detour this problem? 
->
-> Other xen part calling xmalloc_array does not handle this problem as far as
-> I know. (only consider it as an error)
->
-> Should I split the data structure into two or more chunks? 
-
-Personally, I would think that 24M is a stupidly large amount to be
-trying to allocate with xmalloc and friends.
-
-If you are using that much memory, it might be worth using
-alloc_xenheap_pages() and working with full pages instead.
-
-Why do you need so much space for memory statistics?
-
-~Andrew
-
--- 
-Andrew Cooper - Dom0 Kernel Engineer, Citrix XenServer
-T: +44 (0)1223 225 900, http://www.citrix.com
-
-
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<4cb9d7f220dd459c1554c6b5d9e2ed73@abpni.co.uk> b/test/corpus/<4cb9d7f220dd459c1554c6b5d9e2ed73@abpni.co.uk>
deleted file mode 100644 (file)
index 959f5b8..0000000
+++ /dev/null
@@ -1,160 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Sep 05 10:53:31 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 05 Sep 2012 10:53:31 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T9CIX-00025n-W0
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 05 Sep 2012 10:53:31 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T9CES-0007pO-Dy; Wed, 05 Sep 2012 09:49:12 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <jonnyt@abpni.co.uk>) id 1T9CEQ-0007pH-QN
-       for xen-devel@lists.xen.org; Wed, 05 Sep 2012 09:49:11 +0000
-Received: from [85.158.143.99:15563] by server-1.bemta-4.messagelabs.com id
-       9A/2E-12504-61027405; Wed, 05 Sep 2012 09:49:10 +0000
-X-Env-Sender: jonnyt@abpni.co.uk
-X-Msg-Ref: server-14.tower-216.messagelabs.com!1346838549!19005758!1
-X-Originating-IP: [109.200.19.114]
-X-SpamReason: No, hits=0.0 required=7.0 tests=SUBJECT_EXCESS_QP
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 6214 invoked from network); 5 Sep 2012 09:49:09 -0000
-Received: from edge1.gosport.uk.abpni.net (HELO
-       mail1.gosport.uk.corp.abpni.net) (109.200.19.114)
-       by server-14.tower-216.messagelabs.com with SMTP;
-       5 Sep 2012 09:49:09 -0000
-Received: from localhost (mail1.gosport.corp.uk.abpni.net [127.0.0.1])
-       by mail1.gosport.uk.corp.abpni.net (Postfix) with ESMTP id 260DF5A0006
-       for <xen-devel@lists.xen.org>; Wed,  5 Sep 2012 10:48:35 +0100 (BST)
-X-Virus-Scanned: Debian amavisd-new at mail1.mail.gosport.corp.uk.abpni.net
-Received: from mail1.gosport.uk.corp.abpni.net ([127.0.0.1])
-       by localhost (mail1.mail.gosport.corp.uk.abpni.net [127.0.0.1])
-       (amavisd-new, port 10024)
-       with ESMTP id AVUIfUaPiAIZ for <xen-devel@lists.xen.org>;
-       Wed,  5 Sep 2012 10:48:31 +0100 (BST)
-Received: from mail.abpni.co.uk (unknown [10.87.17.3])
-       by mail1.gosport.uk.corp.abpni.net (Postfix) with ESMTPA id 9DDBD5A0005
-       for <xen-devel@lists.xen.org>; Wed,  5 Sep 2012 10:48:31 +0100 (BST)
-MIME-Version: 1.0
-Date: Wed, 05 Sep 2012 10:49:02 +0100
-From: Jonathan Tripathy <jonnyt@abpni.co.uk>
-To: <xen-devel@lists.xen.org>
-In-Reply-To: <E1T9C4K-0003Su-2p@mariner.uk.xensource.com>
-References: <E1T9C4K-0003Su-2p@mariner.uk.xensource.com>
-Message-ID: <4cb9d7f220dd459c1554c6b5d9e2ed73@abpni.co.uk>
-X-Sender: jonnyt@abpni.co.uk
-User-Agent: Roundcube Webmail/0.6
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Transfer-Encoding: 7bit
-Content-Type: text/plain; charset="us-ascii"; Format="flowed"
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel]
- =?utf-8?q?Xen_Security_Advisory_12_=28CVE-2012-3494?=
- =?utf-8?q?=29_-_hypercall_set=5Fdebugreg_vulnerability?=
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-Is Xen 3.4.x vulnerable?
-
-Thanks
-
-On 05.09.2012 10:38, Xen.org security team wrote:
-> -----BEGIN PGP SIGNED MESSAGE-----
-> Hash: SHA1
->
->             Xen Security Advisory CVE-2012-3494 / XSA-12
->                              version 3
->
->            hypercall set_debugreg vulnerability
->
-> UPDATES IN VERSION 3
-> ====================
->
-> Public release.
->
-> ISSUE DESCRIPTION
-> =================
->
-> set_debugreg allows writes to reserved bits of the DR7 debug control
-> register on x86-64.
->
-> IMPACT
-> ======
->
-> A malicious guest can cause the host to crash, leading to a DoS.
->
-> If the vulnerable hypervisor is run on future hardware, the impact of
-> the vulnerability might be widened depending on the future assignment
-> of the currently-reserved debug register bits.
->
-> VULNERABLE SYSTEMS
-> ==================
->
-> All systems running 64-bit paravirtualised guests.
->
-> The vulnerability dates back to at least Xen 4.0.  4.0, 4.1, the 4.2
-> RCs, and xen-unstable.hg are all vulnerable.
->
-> MITIGATION
-> ==========
->
-> This issue can be mitigated by ensuring (inside the guest) that the
-> kernel is trustworthy, or by running only 32-bit or HVM guests.
->
-> RESOLUTION
-> ==========
->
-> Applying the appropriate attached patch will resolve the issue.
->
-> PATCH INFORMATION
-> =================
->
-> The attached patch resolves this issue:
->
->  Xen unstable, 4.1 and 4.0           xsa12-all.patch
->
-> $ sha256sum xsa12-all.patch
-> 2415ee133e28b1c848c5ae3ce766cc2a67009bad8d026879030a6511b85dbc13
-> xsa12-all.patch
-> -----BEGIN PGP SIGNATURE-----
-> Version: GnuPG v1.4.10 (GNU/Linux)
->
-> iQEcBAEBAgAGBQJQRx0+AAoJEIP+FMlX6CvZnMAH/0fcm9nfiChokydCyqXgdKtJ
-> U2NqeqKzEP6emwLE+cvc+2EBP40fiBXsNATVdXc6Vx15eyzSMfJD3ndYF9OaKMVH
-> MVP6KU/tyK1G/9WgQK9PHBj/Kzp8hwrY0Qw45od7z+R7XMGieLH9l1O1xwkNCYDw
-> R8Xy2GI9IqsXLNpwy3BFYSyGYIX9o8/aBx4ZxHCV8H0OYUWv5hDGZZVXPDqGm11c
-> N+qmUaPV2QlW8Aoww1SiwW5E+/CpyJT5+awEMgZ4IOHPbCBXJfyXbw4aMM2q5Soe
-> mStqvPKL4H10SahaygdjxO+e4NqCHao0rYUXXpUr+aikIXvEearukp3FezR5IUE=
-> =/LmZ
-> -----END PGP SIGNATURE-----
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<500D61BF.4080508@cantab.net> b/test/corpus/<500D61BF.4080508@cantab.net>
deleted file mode 100644 (file)
index c542943..0000000
+++ /dev/null
@@ -1,124 +0,0 @@
-From xen-devel-bounces@lists.xen.org Mon Jul 23 15:42:52 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Mon, 23 Jul 2012 15:42:52 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1StJqU-0000Fu-Bv
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Mon, 23 Jul 2012 15:42:52 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1StJls-0000Ec-Nm; Mon, 23 Jul 2012 14:38:04 +0000
-Received: from mail27.messagelabs.com ([193.109.254.147])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <d.vrabel.98@gmail.com>) id 1StJlq-0000EE-RY
-       for xen-devel@lists.xen.org; Mon, 23 Jul 2012 14:38:03 +0000
-X-Env-Sender: d.vrabel.98@gmail.com
-X-Msg-Ref: server-10.tower-27.messagelabs.com!1343054274!5200474!1
-X-Originating-IP: [209.85.161.173]
-X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.2; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 14165 invoked from network); 23 Jul 2012 14:37:55 -0000
-Received: from mail-gg0-f173.google.com (HELO mail-gg0-f173.google.com)
-       (209.85.161.173)
-       by server-10.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
-       23 Jul 2012 14:37:55 -0000
-Received: by ggnp1 with SMTP id p1so6289826ggn.32
-       for <xen-devel@lists.xen.org>; Mon, 23 Jul 2012 07:37:54 -0700 (PDT)
-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
-       h=sender:message-id:date:from:user-agent:mime-version:to:cc:subject
-       :references:in-reply-to:content-type:content-transfer-encoding;
-       bh=fdu4eeD6dqT2843rgRl+AgG85er3R0KJxDe0MDdIwDA=;
-       b=xy/mYdwMm2o77SmwReEMfFB4DmyoEypvcNc+3kKwt6KecGFjk2SuGZR3Xd4vhW2wod
-       pVUecdpyvtDjxAjC6Kaem1Hy3bn9cvjFySRMjS8GbjO8F4Ja/uH+DwG7Ap/vHDfBpNdk
-       BIRmIAXxkQDB6B9Y/GIDdstOvXjVVvMsp/7bLEj0a7efsY4P9DYw9PQWC8EVN68gl4fL
-       pMWUpqc3MR6/FxpYIieTuOe3CbhxdgQzFdMxjbsAMFe2n8b/36y835dubtfh+jUjChnC
-       XVuev8W7IFkFUURTMfGOv9qESgRUX46lZ0oT3FVmF26A0Pbf6EKD+72cgCUOd8kzwmS5
-       Krsg==
-Received: by 10.236.125.133 with SMTP id z5mr5593303yhh.121.1343054274460;
-       Mon, 23 Jul 2012 07:37:54 -0700 (PDT)
-Received: from [10.80.2.76] (firewall.ctxuk.citrix.com. [62.200.22.2])
-       by mx.google.com with ESMTPS id g22sm25330870yhh.20.2012.07.23.07.37.52
-       (version=SSLv3 cipher=OTHER); Mon, 23 Jul 2012 07:37:53 -0700 (PDT)
-Message-ID: <500D61BF.4080508@cantab.net>
-Date: Mon, 23 Jul 2012 15:37:51 +0100
-From: David Vrabel <dvrabel@cantab.net>
-User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US;
-       rv:1.9.1.16) Gecko/20120428 Iceowl/1.0b1 Icedove/3.0.11
-MIME-Version: 1.0
-To: Ian Campbell <Ian.Campbell@citrix.com>
-References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>        <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>      <1338565207-2888-36-git-send-email-ian.campbell@citrix.com>     <alpine.DEB.2.02.1206071214020.2415@kaball.uk.xensource.com>    <1343051870.5797.36.camel@zakaz.uk.xensource.com>
-       <1343052688.5797.38.camel@zakaz.uk.xensource.com>
-In-Reply-To: <1343052688.5797.38.camel@zakaz.uk.xensource.com>
-Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
-       "Tim \(Xen.org\)" <tim@xen.org>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_DKIM_INVALID,T_RP_MATCHES_RCVD autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 36/38] libxc: add ARM support to xc_dom (PV
- domain building)
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On 23/07/12 15:11, Ian Campbell wrote:
-> 
->>>> diff --git a/tools/libxc/xc_dom_armzimageloader.c b/tools/libxc/xc_dom_armzimageloader.c
->>>> new file mode 100644
->>>> index 0000000..220176d
->>>> --- /dev/null
->>>> +++ b/tools/libxc/xc_dom_armzimageloader.c
->> [...]
->>>> +#include "xg_private.h"
->>>> +#include "xc_dom.h"
->>>> +
->>>> +#include <arpa/inet.h> /* XXX ntohl is not the right function... */
->>>
->>> Yes, you are right, we should write a be32_to_cpu (the ones in Xen, QEMU
->>> and Linux are GPLv2 rather than LGLPv2).
->>
->> I wonder if we can/should just declare that we handle only native endian
->> zImages.
-> 
-> Except this is used with the DTB and that is what it is. :-(
-> 
-> We have ./tools/blktap2/drivers/bswap.h already which maybe we can make
-> more generic?
-> 
-> TBH, given this is internal to this one loader I'm very tempted to just
-> keep using ntohl and friends.
-
-You will likely need to link to libfdt in the future and you will need
-to provide cpu_to_fdt32() and fdt32_to_cpu() etc. implementations (like
-include/xen/libfdt/libfdt_env.h for Xen itself).
-
-David
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<501176AF.3000607@cantab.net> b/test/corpus/<501176AF.3000607@cantab.net>
deleted file mode 100644 (file)
index 80a2124..0000000
+++ /dev/null
@@ -1,103 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Jul 26 18:00:48 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 26 Jul 2012 18:00:48 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SuRQZ-0001xj-1p
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 26 Jul 2012 18:00:48 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SuRMO-0005a0-Ij; Thu, 26 Jul 2012 16:56:24 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <d.vrabel.98@gmail.com>) id 1SuRMM-0005Zu-Cc
-       for xen-devel@lists.xensource.com; Thu, 26 Jul 2012 16:56:22 +0000
-Received: from [85.158.138.51:35793] by server-1.bemta-3.messagelabs.com id
-       C4/B5-31934-5B671105; Thu, 26 Jul 2012 16:56:21 +0000
-X-Env-Sender: d.vrabel.98@gmail.com
-X-Msg-Ref: server-2.tower-174.messagelabs.com!1343321779!28982713!1
-X-Originating-IP: [209.85.213.171]
-X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.2; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 29266 invoked from network); 26 Jul 2012 16:56:20 -0000
-Received: from mail-yx0-f171.google.com (HELO mail-yx0-f171.google.com)
-       (209.85.213.171)
-       by server-2.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
-       26 Jul 2012 16:56:20 -0000
-Received: by yenq11 with SMTP id q11so2804135yen.30
-       for <xen-devel@lists.xensource.com>;
-       Thu, 26 Jul 2012 09:56:19 -0700 (PDT)
-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
-       h=sender:message-id:date:from:user-agent:mime-version:to:cc:subject
-       :references:in-reply-to:content-type:content-transfer-encoding;
-       bh=cQlqq3RL28dBfTcFwGzNTPvUtX8V6v63qCbjK1EWVsc=;
-       b=tfh7j5xmc1z1OfZnKZ26LJe97TdrkN4YzFSbZLAxV0ayakTr+h7MN+l5UVXhptatcA
-       ZM0pe+GBss8h0Cddjpx96btzcCvXC+3kEVOv2hzorWE64oAOyXhsTjlJf8Hr1qp8KXNQ
-       HbcahBahTrJxAZQl0vu8NmyRpVPDrBOiCUgErIJusKYrB5DlnGo25zn2C++d+LuOzeTM
-       jriBB1YUvdUwchQPRtXHzfVt4VisxC6NK/m2HL+loxa/YwEwvn79H/SWsQEl+KHk3HpA
-       7qcKl0gg6k8G22D65R65ZZdybpH1Jz14LBssbSKlxK36M4liZPAJypT/6ssATDOFFAaD
-       vaiw==
-Received: by 10.236.200.167 with SMTP id z27mr28485580yhn.131.1343321779341;
-       Thu, 26 Jul 2012 09:56:19 -0700 (PDT)
-Received: from [10.80.2.76] (firewall.ctxuk.citrix.com. [62.200.22.2])
-       by mx.google.com with ESMTPS id l12sm5129968ank.2.2012.07.26.09.56.16
-       (version=SSLv3 cipher=OTHER); Thu, 26 Jul 2012 09:56:18 -0700 (PDT)
-Message-ID: <501176AF.3000607@cantab.net>
-Date: Thu, 26 Jul 2012 17:56:15 +0100
-From: David Vrabel <dvrabel@cantab.net>
-User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US;
-       rv:1.9.1.16) Gecko/20120428 Iceowl/1.0b1 Icedove/3.0.11
-MIME-Version: 1.0
-To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
-       <1343316846-25860-2-git-send-email-stefano.stabellini@eu.citrix.com>
-In-Reply-To: <1343316846-25860-2-git-send-email-stefano.stabellini@eu.citrix.com>
-Cc: xen-devel@lists.xensource.com, linaro-dev@lists.linaro.org,
-       Ian.Campbell@citrix.com, arnd@arndb.de, konrad.wilk@oracle.com,
-       catalin.marinas@arm.com, tim@xen.org, linux-kernel@vger.kernel.org,
-       linux-arm-kernel@lists.infradead.org
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_DKIM_INVALID,T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 02/24] xen/arm: hypercalls
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On 26/07/12 16:33, Stefano Stabellini wrote:
-> 
-> + * The hvc ISS is required to be 0xEA1, that is the Xen specific ARM
-> + * hypercall tag.
-
-Is this number, 0xea1, assigned to Xen by some external body?
-
-David
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<50119856.2020206@codeaurora.org> b/test/corpus/<50119856.2020206@codeaurora.org>
deleted file mode 100644 (file)
index f253f1d..0000000
+++ /dev/null
@@ -1,110 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Jul 26 22:25:36 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 26 Jul 2012 22:25:36 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SuVYp-0002rs-HL
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 26 Jul 2012 22:25:36 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SuVUh-0000ov-3o; Thu, 26 Jul 2012 21:21:15 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <cov@codeaurora.org>) id 1SuTbJ-0002Yn-Hf
-       for xen-devel@lists.xensource.com; Thu, 26 Jul 2012 19:19:57 +0000
-Received: from [85.158.143.35:22002] by server-1.bemta-4.messagelabs.com id
-       DF/65-24392-C5891105; Thu, 26 Jul 2012 19:19:56 +0000
-X-Env-Sender: cov@codeaurora.org
-X-Msg-Ref: server-10.tower-21.messagelabs.com!1343330394!10513693!1
-X-Originating-IP: [199.106.114.254]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogMTk5LjEwNi4xMTQuMjU0ID0+IDM2NjA1OQ==\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.2; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 2848 invoked from network); 26 Jul 2012 19:19:56 -0000
-Received: from wolverine01.qualcomm.com (HELO wolverine01.qualcomm.com)
-       (199.106.114.254)
-       by server-10.tower-21.messagelabs.com with DHE-RSA-AES256-SHA encrypted
-       SMTP; 26 Jul 2012 19:19:56 -0000
-X-IronPort-AV: E=McAfee;i="5400,1158,6784"; a="214873497"
-Received: from pdmz-ns-snip_115.254.qualcomm.com (HELO mostmsg01.qualcomm.com)
-       ([199.106.115.254])
-       by wolverine01.qualcomm.com with ESMTP/TLS/DHE-RSA-AES256-SHA;
-       26 Jul 2012 12:19:55 -0700
-Received: from [10.228.68.45] (pdmz-ns-snip_218_1.qualcomm.com [192.168.218.1])
-       by mostmsg01.qualcomm.com (Postfix) with ESMTPA id 9B52410004B7;
-       Thu, 26 Jul 2012 12:19:51 -0700 (PDT)
-Message-ID: <50119856.2020206@codeaurora.org>
-Date: Thu, 26 Jul 2012 15:19:50 -0400
-From: Christopher Covington <cov@codeaurora.org>
-User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US;
-       rv:1.9.2.13) Gecko/20101208 Thunderbird/3.1.7
-MIME-Version: 1.0
-To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
-       <1343316846-25860-2-git-send-email-stefano.stabellini@eu.citrix.com>
-In-Reply-To: <1343316846-25860-2-git-send-email-stefano.stabellini@eu.citrix.com>
-X-Mailman-Approved-At: Thu, 26 Jul 2012 21:21:13 +0000
-Cc: xen-devel@lists.xensource.com, linaro-dev@lists.linaro.org,
-       Ian.Campbell@citrix.com, arnd@arndb.de, konrad.wilk@oracle.com,
-       catalin.marinas@arm.com, tim@xen.org, linux-kernel@vger.kernel.org,
-       linux-arm-kernel@lists.infradead.org
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 02/24] xen/arm: hypercalls
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-Hi Stefano,
-
-On 07/26/2012 11:33 AM, Stefano Stabellini wrote:
-> Use r12 to pass the hypercall number to the hypervisor.
-> 
-> We need a register to pass the hypercall number because we might not
-> know it at compile time and HVC only takes an immediate argument.
-
-You're not going to JIT assemble the appropriate HVC instruction? Darn.
-
-How many call numbers are there, though? 8? It seems like it'd be
-reasonable to take the approach that seems to be favored for MRC/MCR
-instructions, using a function containing switch statement that chooses
-between several inline assembly instructions based off an enum passed to
-the function. See for example arch_timer_reg_read in
-arch/arm/kernel/arch_timer.c.
-
-Regards,
-Christopher
-
--- 
-Employee of Qualcomm Innovation Center, Inc.
-Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<501257F30200007800090D9E@nat28.tlf.novell.com> b/test/corpus/<501257F30200007800090D9E@nat28.tlf.novell.com>
deleted file mode 100644 (file)
index efe598c..0000000
+++ /dev/null
@@ -1,107 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Jul 27 08:02:06 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 27 Jul 2012 08:02:06 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SueYi-0000FT-F9
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 27 Jul 2012 08:02:06 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SueUK-0007ij-PC; Fri, 27 Jul 2012 06:57:28 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <JBeulich@suse.com>) id 1SueUI-0007ie-Uc
-       for xen-devel@lists.xensource.com; Fri, 27 Jul 2012 06:57:27 +0000
-Received: from [85.158.139.83:40393] by server-2.bemta-5.messagelabs.com id
-       AD/F1-04598-5DB32105; Fri, 27 Jul 2012 06:57:25 +0000
-X-Env-Sender: JBeulich@suse.com
-X-Msg-Ref: server-16.tower-182.messagelabs.com!1343372245!21569935!1
-X-Originating-IP: [130.57.49.28]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogMTMwLjU3LjQ5LjI4ID0+IDM4NTU=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.2; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 22724 invoked from network); 27 Jul 2012 06:57:25 -0000
-Received: from nat28.tlf.novell.com (HELO nat28.tlf.novell.com) (130.57.49.28)
-       by server-16.tower-182.messagelabs.com with SMTP;
-       27 Jul 2012 06:57:25 -0000
-Received: from EMEA1-MTA by nat28.tlf.novell.com
-       with Novell_GroupWise; Fri, 27 Jul 2012 07:57:24 +0100
-Message-Id: <501257F30200007800090D9E@nat28.tlf.novell.com>
-X-Mailer: Novell GroupWise Internet Agent 12.0.0 
-Date: Fri, 27 Jul 2012 07:57:23 +0100
-From: "Jan Beulich" <JBeulich@suse.com>
-To: "Stefano Stabellini" <stefano.stabellini@eu.citrix.com>,
-       <linux-kernel@vger.kernel.org>
-References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
-       <1343316846-25860-6-git-send-email-stefano.stabellini@eu.citrix.com>
-In-Reply-To: <1343316846-25860-6-git-send-email-stefano.stabellini@eu.citrix.com>
-Mime-Version: 1.0
-Content-Disposition: inline
-Cc: xen-devel@lists.xensource.com, linaro-dev@lists.linaro.org,
-       Ian.Campbell@citrix.com, arnd@arndb.de, konrad.wilk@oracle.com,
-       catalin.marinas@arm.com, tim@xen.org, linux-arm-kernel@lists.infradead.org
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 06/24] xen: missing includes
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
->>> On 26.07.12 at 17:33, Stefano Stabellini <stefano.stabellini@eu.citrix.com> wrote:
-> --- a/include/xen/interface/xen.h
-> +++ b/include/xen/interface/xen.h
-> @@ -10,7 +10,10 @@
->  #define __XEN_PUBLIC_XEN_H__
->  
->  #include <asm/xen/interface.h>
-> +#include <linux/types.h>
-> +#ifdef CONFIG_X86
->  #include <asm/pvclock-abi.h>
-> +#endif
-
-Rather than hacking around this, why not clean it up:
-asm/pvclock-abi.h clearly isn't intended to be included here
-(from the perspective of the origin of xen/interface/xen.h, at
-least), nor is linux/types.h.
-
-Or if it is really needed to deviate from the original header in
-this respect, then clearly the inclusion ought to not be arch
-specific or be moved to an arch specific header.
-
-Jan
-
->  
->  /*
->   * XEN "SYSTEM CALLS" (a.k.a. HYPERCALLS).
-
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<501258FB0200007800090DB6@nat28.tlf.novell.com> b/test/corpus/<501258FB0200007800090DB6@nat28.tlf.novell.com>
deleted file mode 100644 (file)
index 63a114e..0000000
+++ /dev/null
@@ -1,134 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Jul 27 08:05:54 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 27 Jul 2012 08:05:54 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SuecP-0000H2-1N
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 27 Jul 2012 08:05:54 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SueYa-00083y-VR; Fri, 27 Jul 2012 07:01:52 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <JBeulich@suse.com>) id 1SueYY-00083O-Gl
-       for xen-devel@lists.xensource.com; Fri, 27 Jul 2012 07:01:50 +0000
-Received: from [85.158.139.83:16426] by server-6.bemta-5.messagelabs.com id
-       89/E9-11348-DDC32105; Fri, 27 Jul 2012 07:01:49 +0000
-X-Env-Sender: JBeulich@suse.com
-X-Msg-Ref: server-10.tower-182.messagelabs.com!1343372508!29190312!1
-X-Originating-IP: [130.57.49.28]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogMTMwLjU3LjQ5LjI4ID0+IDM4NTU=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.2; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 24109 invoked from network); 27 Jul 2012 07:01:48 -0000
-Received: from nat28.tlf.novell.com (HELO nat28.tlf.novell.com) (130.57.49.28)
-       by server-10.tower-182.messagelabs.com with SMTP;
-       27 Jul 2012 07:01:48 -0000
-Received: from EMEA1-MTA by nat28.tlf.novell.com
-       with Novell_GroupWise; Fri, 27 Jul 2012 08:01:48 +0100
-Message-Id: <501258FB0200007800090DB6@nat28.tlf.novell.com>
-X-Mailer: Novell GroupWise Internet Agent 12.0.0 
-Date: Fri, 27 Jul 2012 08:01:47 +0100
-From: "Jan Beulich" <JBeulich@suse.com>
-To: "Stefano Stabellini" <stefano.stabellini@eu.citrix.com>,
-       <linux-kernel@vger.kernel.org>
-References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
-       <1343316846-25860-10-git-send-email-stefano.stabellini@eu.citrix.com>
-In-Reply-To: <1343316846-25860-10-git-send-email-stefano.stabellini@eu.citrix.com>
-Mime-Version: 1.0
-Content-Disposition: inline
-Cc: xen-devel@lists.xensource.com, linaro-dev@lists.linaro.org,
-       Ian.Campbell@citrix.com, arnd@arndb.de, konrad.wilk@oracle.com,
-       catalin.marinas@arm.com, tim@xen.org, linux-arm-kernel@lists.infradead.org
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 10/24] xen: do not compile manage, balloon,
- pci, acpi and cpu_hotplug on ARM
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
->>> On 26.07.12 at 17:33, Stefano Stabellini <stefano.stabellini@eu.citrix.com> wrote:
-> --- a/drivers/xen/Makefile
-> +++ b/drivers/xen/Makefile
-> @@ -1,11 +1,15 @@
-> -obj-y       += grant-table.o features.o events.o manage.o balloon.o
-> +ifneq ($(CONFIG_ARM),y)
-> +obj-y       += manage.o balloon.o
-
-While I assume that this part (and the cpu_hotplug one below) is
-temporary, ...
-
-> +obj-$(CONFIG_XEN_DOM0)                      += pci.o acpi.o
-
-... at least this one should imo be solved with a proper long term
-mechanism, i.e. the usual var-$(CONFIG_...) approach, i.e.
-
-dom0-$(CONFIG_PCI) := pci.o
-dom0-$(CONFIG_ACPI) := acpi.o
-obj-$(CONFIG_XEN_DOM0)                 += $(dom0-y)
-
-Jan
-
-> +obj-$(CONFIG_HOTPLUG_CPU)           += cpu_hotplug.o
-> +endif
-> +obj-y       += grant-table.o features.o events.o
->  obj-y       += xenbus/
->  
->  nostackp := $(call cc-option, -fno-stack-protector)
->  CFLAGS_features.o                   := $(nostackp)
->  
->  obj-$(CONFIG_BLOCK)                 += biomerge.o
-> -obj-$(CONFIG_HOTPLUG_CPU)           += cpu_hotplug.o
->  obj-$(CONFIG_XEN_XENCOMM)           += xencomm.o
->  obj-$(CONFIG_XEN_BALLOON)           += xen-balloon.o
->  obj-$(CONFIG_XEN_SELFBALLOONING)    += xen-selfballoon.o
-> @@ -17,7 +21,6 @@ obj-$(CONFIG_XEN_SYS_HYPERVISOR)   += sys-hypervisor.o
->  obj-$(CONFIG_XEN_PVHVM)                     += platform-pci.o
->  obj-$(CONFIG_XEN_TMEM)                      += tmem.o
->  obj-$(CONFIG_SWIOTLB_XEN)           += swiotlb-xen.o
-> -obj-$(CONFIG_XEN_DOM0)                      += pci.o acpi.o
->  obj-$(CONFIG_XEN_PCIDEV_BACKEND)    += xen-pciback/
->  obj-$(CONFIG_XEN_PRIVCMD)           += xen-privcmd.o
->  obj-$(CONFIG_XEN_ACPI_PROCESSOR)    += xen-acpi-processor.o
-> -- 
-> 1.7.2.5
-> 
-> 
-> _______________________________________________
-> Xen-devel mailing list
-> Xen-devel@lists.xen.org 
-> http://lists.xen.org/xen-devel 
-
-
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<5012598C0200007800090DB9@nat28.tlf.novell.com> b/test/corpus/<5012598C0200007800090DB9@nat28.tlf.novell.com>
deleted file mode 100644 (file)
index dafca78..0000000
+++ /dev/null
@@ -1,114 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Jul 27 08:08:14 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 27 Jul 2012 08:08:14 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1Sueee-0000Hb-Pb
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 27 Jul 2012 08:08:14 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1Sueay-0000AZ-I4; Fri, 27 Jul 2012 07:04:20 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <JBeulich@suse.com>) id 1Sueax-0000AN-2F
-       for xen-devel@lists.xensource.com; Fri, 27 Jul 2012 07:04:19 +0000
-Received: from [85.158.139.83:9119] by server-5.bemta-5.messagelabs.com id
-       F1/51-02722-27D32105; Fri, 27 Jul 2012 07:04:18 +0000
-X-Env-Sender: JBeulich@suse.com
-X-Msg-Ref: server-8.tower-182.messagelabs.com!1343372657!17628410!1
-X-Originating-IP: [130.57.49.28]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogMTMwLjU3LjQ5LjI4ID0+IDM4NTU=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.2; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 27991 invoked from network); 27 Jul 2012 07:04:17 -0000
-Received: from nat28.tlf.novell.com (HELO nat28.tlf.novell.com) (130.57.49.28)
-       by server-8.tower-182.messagelabs.com with SMTP;
-       27 Jul 2012 07:04:17 -0000
-Received: from EMEA1-MTA by nat28.tlf.novell.com
-       with Novell_GroupWise; Fri, 27 Jul 2012 08:04:16 +0100
-Message-Id: <5012598C0200007800090DB9@nat28.tlf.novell.com>
-X-Mailer: Novell GroupWise Internet Agent 12.0.0 
-Date: Fri, 27 Jul 2012 08:04:12 +0100
-From: "Jan Beulich" <JBeulich@suse.com>
-To: "Stefano Stabellini" <stefano.stabellini@eu.citrix.com>,
-       <linux-kernel@vger.kernel.org>
-References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
-       <1343316846-25860-17-git-send-email-stefano.stabellini@eu.citrix.com>
-In-Reply-To: <1343316846-25860-17-git-send-email-stefano.stabellini@eu.citrix.com>
-Mime-Version: 1.0
-Content-Disposition: inline
-Cc: xen-devel@lists.xensource.com, linaro-dev@lists.linaro.org,
-       Ian.Campbell@citrix.com, arnd@arndb.de, konrad.wilk@oracle.com,
-       catalin.marinas@arm.com, tim@xen.org, linux-arm-kernel@lists.infradead.org
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 17/24] xen: allow privcmd for HVM guests
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
->>> On 26.07.12 at 17:33, Stefano Stabellini <stefano.stabellini@eu.citrix.com> wrote:
-> In order for privcmd mmap to work correctly, xen_remap_domain_mfn_range
-> needs to be implemented for HVM guests.
-> If it is not, mmap is going to fail later on.
-
-Somehow, for me at least, this description doesn't connect to the
-actual change.
-
-> Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-> ---
->  drivers/xen/privcmd.c |    4 ----
->  1 files changed, 0 insertions(+), 4 deletions(-)
-> 
-> diff --git a/drivers/xen/privcmd.c b/drivers/xen/privcmd.c
-> index ccee0f1..85226cb 100644
-> --- a/drivers/xen/privcmd.c
-> +++ b/drivers/xen/privcmd.c
-> @@ -380,10 +380,6 @@ static struct vm_operations_struct privcmd_vm_ops = {
->  
->  static int privcmd_mmap(struct file *file, struct vm_area_struct *vma)
->  {
-> -    /* Unsupported for auto-translate guests. */
-> -    if (xen_feature(XENFEAT_auto_translated_physmap))
-> -            return -ENOSYS;
-> -
-
-Is this safe on x86?
-
-Jan
-
->      /* DONTCOPY is essential for Xen because copy_page_range doesn't know
->       * how to recreate these mappings */
->      vma->vm_flags |= VM_RESERVED | VM_IO | VM_DONTCOPY | VM_PFNMAP;
-
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<50128FE6.5070109@codeaurora.org> b/test/corpus/<50128FE6.5070109@codeaurora.org>
deleted file mode 100644 (file)
index 4019f11..0000000
+++ /dev/null
@@ -1,136 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Jul 27 14:00:58 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 27 Jul 2012 14:00:58 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SukA0-0001Yu-A9
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 27 Jul 2012 14:00:58 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1Suk5d-0007Cv-Ub; Fri, 27 Jul 2012 12:56:21 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <cov@codeaurora.org>) id 1Suk5c-0007Cq-Nt
-       for xen-devel@lists.xensource.com; Fri, 27 Jul 2012 12:56:20 +0000
-Received: from [85.158.138.51:42208] by server-8.bemta-3.messagelabs.com id
-       85/61-30925-3FF82105; Fri, 27 Jul 2012 12:56:19 +0000
-X-Env-Sender: cov@codeaurora.org
-X-Msg-Ref: server-4.tower-174.messagelabs.com!1343393777!29110783!1
-X-Originating-IP: [199.106.114.251]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogMTk5LjEwNi4xMTQuMjUxID0+IDE5MzI0OQ==\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.2; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 510 invoked from network); 27 Jul 2012 12:56:18 -0000
-Received: from wolverine02.qualcomm.com (HELO wolverine02.qualcomm.com)
-       (199.106.114.251)
-       by server-4.tower-174.messagelabs.com with DHE-RSA-AES256-SHA encrypted
-       SMTP; 27 Jul 2012 12:56:18 -0000
-X-IronPort-AV: E=McAfee;i="5400,1158,6784"; a="212808743"
-Received: from pdmz-ns-snip_114_130.qualcomm.com (HELO mostmsg01.qualcomm.com)
-       ([199.106.114.130])
-       by wolverine02.qualcomm.com with ESMTP/TLS/DHE-RSA-AES256-SHA;
-       27 Jul 2012 05:56:09 -0700
-Received: from [10.228.68.45] (pdmz-ns-snip_218_1.qualcomm.com [192.168.218.1])
-       by mostmsg01.qualcomm.com (Postfix) with ESMTPA id 456DC10004B7;
-       Fri, 27 Jul 2012 05:56:07 -0700 (PDT)
-Message-ID: <50128FE6.5070109@codeaurora.org>
-Date: Fri, 27 Jul 2012 08:56:06 -0400
-From: Christopher Covington <cov@codeaurora.org>
-User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US;
-       rv:1.9.2.13) Gecko/20101208 Thunderbird/3.1.7
-MIME-Version: 1.0
-To: Ian Campbell <Ian.Campbell@citrix.com>
-References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>      
-       <1343316846-25860-2-git-send-email-stefano.stabellini@eu.citrix.com>    
-       <50119856.2020206@codeaurora.org>
-       <1343380764.6812.108.camel@zakaz.uk.xensource.com>
-In-Reply-To: <1343380764.6812.108.camel@zakaz.uk.xensource.com>
-Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
-       "linaro-dev@lists.linaro.org" <linaro-dev@lists.linaro.org>,
-       "arnd@arndb.de" <arnd@arndb.de>,
-       "konrad.wilk@oracle.com" <konrad.wilk@oracle.com>,
-       "catalin.marinas@arm.com" <catalin.marinas@arm.com>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>,
-       "Tim \(Xen.org\)" <tim@xen.org>,
-       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
-       "linux-arm-kernel@lists.infradead.org"
-       <linux-arm-kernel@lists.infradead.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 02/24] xen/arm: hypercalls
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On 07/27/2012 05:19 AM, Ian Campbell wrote:
-> On Thu, 2012-07-26 at 20:19 +0100, Christopher Covington wrote:
->> Hi Stefano,
->>
->> On 07/26/2012 11:33 AM, Stefano Stabellini wrote:
->>> Use r12 to pass the hypercall number to the hypervisor.
->>>
->>> We need a register to pass the hypercall number because we might not
->>> know it at compile time and HVC only takes an immediate argument.
->>
->> You're not going to JIT assemble the appropriate HVC instruction? Darn.
-> 
-> ;-)
-> 
->> How many call numbers are there, though? 8?
-> 
-> The maximum currently defined hypercall number is 55, although there are
-> some small gaps so there's actually more like 45 in total.
-> 
->>  It seems like it'd be
->> reasonable to take the approach that seems to be favored for MRC/MCR
->> instructions, using a function containing switch statement that chooses
->> between several inline assembly instructions based off an enum passed to
->> the function. See for example arch_timer_reg_read in
->> arch/arm/kernel/arch_timer.c.
-> 
-> I don't think it is feasible with this number of hypercalls, even
-> accepting that in many cases the number will be a constant so gcc can
-> likely optimise almost all of it away.
-> 
-> Is there something wrong with the r12 based approach?
-
-Only that you're defining a custom interface for something that there is
-a potentially more standard interface for. I just wanted to double check
-that all the ways of using the potentially more standard interface had
-been explored and found to be unreasonable.
-
-Christopher
-
--- 
-Employee of Qualcomm Innovation Center, Inc.
-Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<50197527.3070007@gmail.com> b/test/corpus/<50197527.3070007@gmail.com>
deleted file mode 100644 (file)
index b53499c..0000000
+++ /dev/null
@@ -1,308 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Aug 01 21:56:30 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 01 Aug 2012 21:56:30 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1Swfxz-0008Ak-Sh
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 01 Aug 2012 21:56:30 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1Swfsm-00088N-Kd; Wed, 01 Aug 2012 20:51:04 +0000
-Received: from mail27.messagelabs.com ([193.109.254.147])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <robherring2@gmail.com>) id 1SwdiA-0006Lv-Mn
-       for xen-devel@lists.xensource.com; Wed, 01 Aug 2012 18:31:58 +0000
-X-Env-Sender: robherring2@gmail.com
-X-Msg-Ref: server-9.tower-27.messagelabs.com!1343845675!10809533!1
-X-Originating-IP: [209.85.160.171]
-X-SpamReason: No, hits=0.3 required=7.0 tests=ML_RADAR_SPEW_LINKS_14,
-       RCVD_BY_IP,spamassassin: 
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.2; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 27817 invoked from network); 1 Aug 2012 18:27:57 -0000
-Received: from mail-gh0-f171.google.com (HELO mail-gh0-f171.google.com)
-       (209.85.160.171)
-       by server-9.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
-       1 Aug 2012 18:27:57 -0000
-Received: by ghy10 with SMTP id 10so9575727ghy.30
-       for <xen-devel@lists.xensource.com>;
-       Wed, 01 Aug 2012 11:27:55 -0700 (PDT)
-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
-       h=message-id:date:from:user-agent:mime-version:to:cc:subject
-       :references:in-reply-to:content-type:content-transfer-encoding;
-       bh=B7/1KGcZ+7wyZ3ZOZ6DKam10uMkJthOTWOS+dBdsvYE=;
-       b=xc+y3+CG6GTtfEX4PlQ2t6lnqhlCuXMzKIhEYCErQeBdSwoUctECKghU1dXRgpZvdF
-       t+d6A9EmqSk6j5DsehAlxCPbaa+4VmblvuUO8gGuaGBhUs1zHAfCuwvXiXONnkxptTtO
-       OnVnmOICorzLBKx5oFoLU8wNCYOrZrqgG2MS8Hsl/zkZMYsQ5u0+L1wQffInFgsERQcU
-       PUiCKXK5MhErjzFLyDV/By4Go1vgfP5bjWxqDzqwWbV0uYoPoSFDHSX5lzdhjYhVx5tg
-       ZHdUVTV1VA2kXM3KBQwsxJBCDFp2F0wypY67dBQMH/hJqY7KjQ1susDv4C0J9kFUFx6V
-       PaTw==
-Received: by 10.60.29.228 with SMTP id n4mr30191391oeh.27.1343845675511;
-       Wed, 01 Aug 2012 11:27:55 -0700 (PDT)
-Received: from [10.10.10.90] ([173.226.190.126])
-       by mx.google.com with ESMTPS id hd10sm3168007obc.8.2012.08.01.11.27.53
-       (version=SSLv3 cipher=OTHER); Wed, 01 Aug 2012 11:27:53 -0700 (PDT)
-Message-ID: <50197527.3070007@gmail.com>
-Date: Wed, 01 Aug 2012 13:27:51 -0500
-From: Rob Herring <robherring2@gmail.com>
-User-Agent: Mozilla/5.0 (X11; Linux x86_64;
-       rv:14.0) Gecko/20120714 Thunderbird/14.0
-MIME-Version: 1.0
-To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
-       <1343316846-25860-1-git-send-email-stefano.stabellini@eu.citrix.com>
-In-Reply-To: <1343316846-25860-1-git-send-email-stefano.stabellini@eu.citrix.com>
-X-Mailman-Approved-At: Wed, 01 Aug 2012 20:51:02 +0000
-Cc: xen-devel@lists.xensource.com, linaro-dev@lists.linaro.org,
-       Ian.Campbell@citrix.com, arnd@arndb.de, konrad.wilk@oracle.com,
-       catalin.marinas@arm.com, tim@xen.org, linux-kernel@vger.kernel.org,
-       linux-arm-kernel@lists.infradead.org
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,FREEMAIL_FROM,
-       RCVD_IN_DNSWL_MED,T_DKIM_INVALID,T_RP_MATCHES_RCVD autolearn=unavailable
-       version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 01/24] arm: initial Xen support
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On 07/26/2012 10:33 AM, Stefano Stabellini wrote:
-> - Basic hypervisor.h and interface.h definitions.
-> - Skelethon enlighten.c, set xen_start_info to an empty struct.
-> - Do not limit xen_initial_domain to PV guests.
-> 
-> The new code only compiles when CONFIG_XEN is set, that is going to be
-> added to arch/arm/Kconfig in a later patch.
-> 
-> Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-> ---
->  arch/arm/Makefile                     |    1 +
->  arch/arm/include/asm/hypervisor.h     |    6 +++
->  arch/arm/include/asm/xen/hypervisor.h |   19 ++++++++++
->  arch/arm/include/asm/xen/interface.h  |   64 +++++++++++++++++++++++++++++++++
-
-These headers don't seem particularly ARM specific. Could they be moved
-to asm-generic or include/linux?
-
-Rob
-
->  arch/arm/xen/Makefile                 |    1 +
->  arch/arm/xen/enlighten.c              |   35 ++++++++++++++++++
->  include/xen/xen.h                     |    2 +-
->  7 files changed, 127 insertions(+), 1 deletions(-)
->  create mode 100644 arch/arm/include/asm/hypervisor.h
->  create mode 100644 arch/arm/include/asm/xen/hypervisor.h
->  create mode 100644 arch/arm/include/asm/xen/interface.h
->  create mode 100644 arch/arm/xen/Makefile
->  create mode 100644 arch/arm/xen/enlighten.c
-> 
-> diff --git a/arch/arm/Makefile b/arch/arm/Makefile
-> index 0298b00..70aaa82 100644
-> --- a/arch/arm/Makefile
-> +++ b/arch/arm/Makefile
-> @@ -246,6 +246,7 @@ endif
->  core-$(CONFIG_FPE_NWFPE)    += arch/arm/nwfpe/
->  core-$(CONFIG_FPE_FASTFPE)  += $(FASTFPE_OBJ)
->  core-$(CONFIG_VFP)          += arch/arm/vfp/
-> +core-$(CONFIG_XEN)          += arch/arm/xen/
->  
->  # If we have a machine-specific directory, then include it in the build.
->  core-y                              += arch/arm/kernel/ arch/arm/mm/ arch/arm/common/
-> diff --git a/arch/arm/include/asm/hypervisor.h b/arch/arm/include/asm/hypervisor.h
-> new file mode 100644
-> index 0000000..b90d9e5
-> --- /dev/null
-> +++ b/arch/arm/include/asm/hypervisor.h
-> @@ -0,0 +1,6 @@
-> +#ifndef _ASM_ARM_HYPERVISOR_H
-> +#define _ASM_ARM_HYPERVISOR_H
-> +
-> +#include <asm/xen/hypervisor.h>
-> +
-> +#endif
-> diff --git a/arch/arm/include/asm/xen/hypervisor.h b/arch/arm/include/asm/xen/hypervisor.h
-> new file mode 100644
-> index 0000000..d7ab99a
-> --- /dev/null
-> +++ b/arch/arm/include/asm/xen/hypervisor.h
-> @@ -0,0 +1,19 @@
-> +#ifndef _ASM_ARM_XEN_HYPERVISOR_H
-> +#define _ASM_ARM_XEN_HYPERVISOR_H
-> +
-> +extern struct shared_info *HYPERVISOR_shared_info;
-> +extern struct start_info *xen_start_info;
-> +
-> +/* Lazy mode for batching updates / context switch */
-> +enum paravirt_lazy_mode {
-> +    PARAVIRT_LAZY_NONE,
-> +    PARAVIRT_LAZY_MMU,
-> +    PARAVIRT_LAZY_CPU,
-> +};
-> +
-> +static inline enum paravirt_lazy_mode paravirt_get_lazy_mode(void)
-> +{
-> +    return PARAVIRT_LAZY_NONE;
-> +}
-> +
-> +#endif /* _ASM_ARM_XEN_HYPERVISOR_H */
-> diff --git a/arch/arm/include/asm/xen/interface.h b/arch/arm/include/asm/xen/interface.h
-> new file mode 100644
-> index 0000000..6c3ab59
-> --- /dev/null
-> +++ b/arch/arm/include/asm/xen/interface.h
-> @@ -0,0 +1,64 @@
-> +/******************************************************************************
-> + * Guest OS interface to ARM Xen.
-> + *
-> + * Stefano Stabellini <stefano.stabellini@eu.citrix.com>, Citrix, 2011
-> + */
-> +
-> +#ifndef _ASM_ARM_XEN_INTERFACE_H
-> +#define _ASM_ARM_XEN_INTERFACE_H
-> +
-> +#include <linux/types.h>
-> +
-> +#define __DEFINE_GUEST_HANDLE(name, type) \
-> +    typedef type * __guest_handle_ ## name
-> +
-> +#define DEFINE_GUEST_HANDLE_STRUCT(name) \
-> +    __DEFINE_GUEST_HANDLE(name, struct name)
-> +#define DEFINE_GUEST_HANDLE(name) __DEFINE_GUEST_HANDLE(name, name)
-> +#define GUEST_HANDLE(name)        __guest_handle_ ## name
-> +
-> +#define set_xen_guest_handle(hnd, val)                      \
-> +    do {                                            \
-> +            if (sizeof(hnd) == 8)                   \
-> +                    *(uint64_t *)&(hnd) = 0;        \
-> +            (hnd) = val;                            \
-> +    } while (0)
-> +
-> +#ifndef __ASSEMBLY__
-> +/* Guest handles for primitive C types. */
-> +__DEFINE_GUEST_HANDLE(uchar, unsigned char);
-> +__DEFINE_GUEST_HANDLE(uint,  unsigned int);
-> +__DEFINE_GUEST_HANDLE(ulong, unsigned long);
-> +DEFINE_GUEST_HANDLE(char);
-> +DEFINE_GUEST_HANDLE(int);
-> +DEFINE_GUEST_HANDLE(long);
-> +DEFINE_GUEST_HANDLE(void);
-> +DEFINE_GUEST_HANDLE(uint64_t);
-> +DEFINE_GUEST_HANDLE(uint32_t);
-> +
-> +/* Maximum number of virtual CPUs in multi-processor guests. */
-> +#define MAX_VIRT_CPUS 1
-> +
-> +struct arch_vcpu_info { };
-> +struct arch_shared_info { };
-> +
-> +/* XXX: Move pvclock definitions some place arch independent */
-> +struct pvclock_vcpu_time_info {
-> +    u32   version;
-> +    u32   pad0;
-> +    u64   tsc_timestamp;
-> +    u64   system_time;
-> +    u32   tsc_to_system_mul;
-> +    s8    tsc_shift;
-> +    u8    flags;
-> +    u8    pad[2];
-> +} __attribute__((__packed__)); /* 32 bytes */
-> +
-> +struct pvclock_wall_clock {
-> +    u32   version;
-> +    u32   sec;
-> +    u32   nsec;
-> +} __attribute__((__packed__));
-> +#endif
-> +
-> +#endif /* _ASM_ARM_XEN_INTERFACE_H */
-> diff --git a/arch/arm/xen/Makefile b/arch/arm/xen/Makefile
-> new file mode 100644
-> index 0000000..0bad594
-> --- /dev/null
-> +++ b/arch/arm/xen/Makefile
-> @@ -0,0 +1 @@
-> +obj-y               := enlighten.o
-> diff --git a/arch/arm/xen/enlighten.c b/arch/arm/xen/enlighten.c
-> new file mode 100644
-> index 0000000..d27c2a6
-> --- /dev/null
-> +++ b/arch/arm/xen/enlighten.c
-> @@ -0,0 +1,35 @@
-> +#include <xen/xen.h>
-> +#include <xen/interface/xen.h>
-> +#include <xen/interface/memory.h>
-> +#include <xen/platform_pci.h>
-> +#include <asm/xen/hypervisor.h>
-> +#include <asm/xen/hypercall.h>
-> +#include <linux/module.h>
-> +
-> +struct start_info _xen_start_info;
-> +struct start_info *xen_start_info = &_xen_start_info;
-> +EXPORT_SYMBOL_GPL(xen_start_info);
-> +
-> +enum xen_domain_type xen_domain_type = XEN_NATIVE;
-> +EXPORT_SYMBOL_GPL(xen_domain_type);
-> +
-> +struct shared_info xen_dummy_shared_info;
-> +struct shared_info *HYPERVISOR_shared_info = (void *)&xen_dummy_shared_info;
-> +
-> +DEFINE_PER_CPU(struct vcpu_info *, xen_vcpu);
-> +
-> +/* XXX: to be removed */
-> +__read_mostly int xen_have_vector_callback;
-> +EXPORT_SYMBOL_GPL(xen_have_vector_callback);
-> +
-> +int xen_platform_pci_unplug = XEN_UNPLUG_ALL;
-> +EXPORT_SYMBOL_GPL(xen_platform_pci_unplug);
-> +
-> +int xen_remap_domain_mfn_range(struct vm_area_struct *vma,
-> +                           unsigned long addr,
-> +                           unsigned long mfn, int nr,
-> +                           pgprot_t prot, unsigned domid)
-> +{
-> +    return -ENOSYS;
-> +}
-> +EXPORT_SYMBOL_GPL(xen_remap_domain_mfn_range);
-> diff --git a/include/xen/xen.h b/include/xen/xen.h
-> index a164024..2c0d3a5 100644
-> --- a/include/xen/xen.h
-> +++ b/include/xen/xen.h
-> @@ -23,7 +23,7 @@ extern enum xen_domain_type xen_domain_type;
->  #include <xen/interface/xen.h>
->  #include <asm/xen/hypervisor.h>
->  
-> -#define xen_initial_domain()        (xen_pv_domain() && \
-> +#define xen_initial_domain()        (xen_domain() && \
->                               xen_start_info->flags & SIF_INITDOMAIN)
->  #else  /* !CONFIG_XEN_DOM0 */
->  #define xen_initial_domain()        (0)
-> 
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<50224B7402000078000937DA@nat28.tlf.novell.com> b/test/corpus/<50224B7402000078000937DA@nat28.tlf.novell.com>
deleted file mode 100644 (file)
index e741585..0000000
+++ /dev/null
@@ -1,141 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Aug 08 10:24:45 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 08 Aug 2012 10:24:45 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1Sz2VL-0001jS-Gw
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 08 Aug 2012 10:24:45 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1Sz2RH-0003p3-Iv; Wed, 08 Aug 2012 09:20:27 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <JBeulich@suse.com>) id 1Sz2RF-0003ow-AZ
-       for xen-devel@lists.xen.org; Wed, 08 Aug 2012 09:20:25 +0000
-Received: from [85.158.139.83:49835] by server-7.bemta-5.messagelabs.com id
-       74/6A-00857-85F22205; Wed, 08 Aug 2012 09:20:24 +0000
-X-Env-Sender: JBeulich@suse.com
-X-Msg-Ref: server-2.tower-182.messagelabs.com!1344417622!30805018!1
-X-Originating-IP: [130.57.49.28]
-X-SpamReason: No, hits=0.8 required=7.0 tests=BODY_RANDOM_LONG,
-       MAILTO_TO_SPAM_ADDR
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.2; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 27909 invoked from network); 8 Aug 2012 09:20:22 -0000
-Received: from nat28.tlf.novell.com (HELO nat28.tlf.novell.com) (130.57.49.28)
-       by server-2.tower-182.messagelabs.com with SMTP;
-       8 Aug 2012 09:20:22 -0000
-Received: from EMEA1-MTA by nat28.tlf.novell.com
-       with Novell_GroupWise; Wed, 08 Aug 2012 10:20:21 +0100
-Message-Id: <50224B7402000078000937DA@nat28.tlf.novell.com>
-X-Mailer: Novell GroupWise Internet Agent 12.0.0 
-Date: Wed, 08 Aug 2012 10:20:20 +0100
-From: "Jan Beulich" <JBeulich@suse.com>
-To: "tupeng212" <tupeng212@gmail.com>
-References: <201208070018394210381@gmail.com>
-In-Reply-To: <201208070018394210381@gmail.com>
-Mime-Version: 1.0
-Content-Disposition: inline
-Cc: xen-devel <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] Big Bug:Time in VM running on xen goes slower
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
->>> On 07.08.12 at 17:44, tupeng212 <tupeng212@gmail.com> wrote:
-> 2 Xen
-> vmx_vmexit_handler  --> ......... --> handle_rtc_io  --> rtc_ioport_write  --> 
-> rtc_timer_update --> set RTC's REG_A to a high rate--> create_periodic_time(disable 
-> the former timer, and init a new one)
-> Win7 is installed in the vm. This calling path is executed so frequent that 
-> may come down to set the RTC's REG_A hundreds of times every second but with 
-> the same rate(976.562us(1024HZ)), it is so abnormal to me to see such 
-> behavior.
-
-_If_ the problem is merely with the high rate of calls to
-create_periodic_time(), I think this could be taken care of by
-avoiding the call (and perhaps the call to rtc_timer_update() in
-the first place) by checking whether anything actually changes
-due to the current write. I don't think, however, that this would
-help much, as the high rate of port accesses (and hence traps
-into the hypervisor) would remain. It might, nevertheless, get
-your immediate problem of the time slowing down taken care of
-if that is caused inside Xen (but the cause here may as well be in
-the Windows kernel).
-
-> 3 OS
-> I have tried to find why the win7 setted RTC's regA so frequently. finally 
-> got the result, all that comes from a function: NtSetTimerResolution --> 
-> 0x70,0x71
-> when I attached windbg into the guest OS, I also found the source, they are 
-> all called from a upper system call that comes from JVM(Java Virtual 
-> Machine).
-
-Getting Windows to be a little smarter and avoid the port I/O when
-doing redundant writes would of course be even better, but is
-clearly a difficult to achieve goal.
-
-> 4 JVM
-> I don't know why JVM calls NtSetTimerResolution to set the same RTC's rate 
-> down (976.562us(1024HZ)) so frequently. 
-> But found something useful, in the java source code, I found many palaces 
-> written with time.scheduleAtFixedRate(), Informations from Internet told me 
-> this function scheduleAtFixedRate demands a higher time resolution. so I 
-> guess the whole process may be this: 
-> java wants a higher time resolution timer, so it changes the RTC's rate from 
-> 15.625ms(64HZ) to 976.562us(1024HZ), after that, it reconfirms whether the 
-> time is accurate as expected, but it's sorry to get some notice it 's not 
-> accurate either. so it sets  the RTC's rate from 15.625ms(64HZ) to 
-> 976.562us(1024HZ) again and again..., at last, results in a slow system timer 
-> in vm.
-
-Now that's really the fundamental thing to find out - what makes it
-think the clock isn't accurate? Is this an artifact of scheduling (as
-the scheduler tick certainly is several milliseconds, whereas
-"accurate" here appears to require below 1ms granularity), perhaps
-as a result of the box being overloaded (i.e. the VM not being able
-to get scheduled quickly enough when the timer expires)? For that,
-did you try lowering the scheduler time slice and/or its rate limit
-(possible via command line option)? Of course doing so may have
-other undesirable side effects, but it would be worth a try.
-
-Did you further check whether the adjustments done to the
-scheduled time in create_periodic_time() are responsible for this
-conclusion of the JVM (could be effectively doubling the first
-interval if HVM_PARAM_VPT_ALIGN is set, and with the high rate
-of re-sets this could certainly have a more visible effect than
-intended)?
-
-Jan
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<5028B603.9010306@core.kaist.ac.kr> b/test/corpus/<5028B603.9010306@core.kaist.ac.kr>
deleted file mode 100644 (file)
index f2a4564..0000000
+++ /dev/null
@@ -1,95 +0,0 @@
-From xen-devel-bounces@lists.xen.org Mon Aug 13 09:14:27 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Mon, 13 Aug 2012 09:14:27 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T0pn6-0007ot-6Q
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Mon, 13 Aug 2012 09:14:27 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T0piT-0004wh-Gg; Mon, 13 Aug 2012 08:09:37 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <cmkim@core.kaist.ac.kr>) id 1T0piR-0004wZ-Kz
-       for xen-devel@lists.xen.org; Mon, 13 Aug 2012 08:09:35 +0000
-Received: from [85.158.143.35:61759] by server-1.bemta-4.messagelabs.com id
-       44/16-07754-F36B8205; Mon, 13 Aug 2012 08:09:35 +0000
-X-Env-Sender: cmkim@core.kaist.ac.kr
-X-Msg-Ref: server-15.tower-21.messagelabs.com!1344845317!14454399!1
-X-Originating-IP: [143.248.147.118]
-X-SpamReason: No, hits=0.0 required=7.0 tests=
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 13862 invoked from network); 13 Aug 2012 08:08:40 -0000
-Received: from core.kaist.ac.kr (HELO core.kaist.ac.kr) (143.248.147.118)
-       by server-15.tower-21.messagelabs.com with DHE-RSA-AES256-SHA encrypted
-       SMTP; 13 Aug 2012 08:08:40 -0000
-Received: from [143.248.165.115] (az.kaist.ac.kr [143.248.165.115])
-       by core.kaist.ac.kr (8.14.4/8.14.4) with ESMTP id q7D8AKMg032462
-       for <xen-devel@lists.xen.org>; Mon, 13 Aug 2012 17:10:21 +0900
-Message-ID: <5028B603.9010306@core.kaist.ac.kr>
-Date: Mon, 13 Aug 2012 17:08:35 +0900
-From: Chulmin Kim <cmkim@core.kaist.ac.kr>
-User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64;
-       rv:14.0) Gecko/20120713 Thunderbird/14.0
-MIME-Version: 1.0
-To: xen-devel@lists.xen.org
-References: <008601cd5f45$6eff7530$4cfe5f90$@core.kaist.ac.kr>
-In-Reply-To: <008601cd5f45$6eff7530$4cfe5f90$@core.kaist.ac.kr>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Transfer-Encoding: base64
-Content-Type: text/plain; charset="utf-8"; Format="flowed"
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] maximum memory size allocated by _xmalloc
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-VGhvdWdoIHRoZSBpc3N1ZSBoYXMgYmVlbiB3cml0dGVuIG9uZSBtb250aCBhZ28sCkkgcG9zdCBt
-eSBvd24gZXhwZXJpZW5jZSBvbiBpdC4KClVuZm9ydHVuYXRlbHksIGl0IHdhcyBub3QgdGhlIG1h
-dHRlciBvZiB0aGUgcmVxdWVzdGVkIG1lbSBzaXplIG9yIAp4bWFsbG9jIGZ1bmN0aW9uLgpUaGUg
-cHJvYmxlbSB3YXMgZHVlIHRvIHRoZSBmcmVlIG1lbW9yeSBzY3J1YmJpbmcuCgpJIHNldCBteSB4
-bWFsbG9jIGNvZGUgaW4gdGhlIG1pZGRsZSBvZiB0aGUgYm9vdHVwIGNvZGUgb2YgeGVuIGFmdGVy
-IHRoZSAKZnJlZSBtZW1vcnkgc2NydWJiaW5nIGZ1bmN0aW9uLgpCdXQgdGhlIHBsYWNlbWVudCB3
-YXMgd3JvbmcuCgpBZnRlciBpIHJlbG9jYXRlZCB0aGUgY29kZSBsaW5lIGJlZm9yZSB0aGUgc2Ny
-dWJiaW5nIGZ1bmN0aW9uLAppdCB3b3JrZWQgcGVyZmVjdGx5LgoKVGhhbmtzIGZvciB5b3VyIGhl
-bHAhCgoKMjAxMi0wNy0xMSDsmKTtm4QgNjoxMywgQ2h1bG1pbiBLaW0g7JO0IOq4gDoKPiBIaSBh
-bGwsCj4KPiBJJ20gY3VycmVudGx5IGluc2VydGluZyBteSBvd24gY29kZSB0byBhZGp1c3QgdGhl
-IHNldmVyYWwgZXhpc3RpbmcgbWVtb3J5Cj4gYmFsbG9vbmluZyB3b3Jrcy4KPgo+IFRvIGFjY29t
-cGxpc2ggaXQsIEkgbWFuYWdlIHNvbWUga2luZCBvZiBzdGF0aXN0aWNzIGluIFhlbiBtZW1vcnkg
-YXJlYS4KPgo+IFVzaW5nIF94bWFsbG9jLCBJJ3ZlIGFsbG9jYXRlZCBjZXJ0YWluIHNpemUgb2Yg
-bWVtb3J5IGNodW5rIGZvciB0aGUgZGF0YQo+IHN0cnVjdHVyZS4gKCBJIHZhcmllZCBpdCBmcm9t
-IDEwa2IgdG8gMjQgTUIuKQo+Cj4gV2hlbiB0aGUgc2l6ZSBpcyBlcXVhbCB0byAyNCBNQiwgeGVu
-IHdvbid0IGJvb3QgYW55bW9yZS4gIChzdHVjayBkdXJpbmcgdGhlCj4geG1hbGxvYywgYWNjb3Jk
-aW5nIHRvIG15IGRlYnVnZ2luZy4gX3htYWxsb2MgcmV0dXJucyBOVUxMLikKPiBUaGVyZSB3YXMg
-bm8gcHJvYmxlbSB3aGVuIHRoZSBzaXplIGlzIGJlbG93IDEyTUIuCj4KPiBJcyB0aGVyZSBhbnkg
-bGltaXRhdGlvbiBzdWNoIGFzIG1heCBtZW1vcnkgc2l6ZSBmb3IgX3htYWxsb2M/Cj4KPiBJIHN1
-c3BlY3RlZCB4ZW4gaGVhcCBzaXplLCBidXQsIGl0IGlzIG5vIGxvbmdlciBhZGp1c3RhYmxlLiBS
-aWdodD8KPgo+IEkgaG9wZSBzb21lYm9keSBjYW4gZ2l2ZSBtZSBhIGNsdWUuICBUaGFua3MuCj4K
-Pgo+Cj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiBY
-ZW4tZGV2ZWwgbWFpbGluZyBsaXN0Cj4gWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKPiBodHRwOi8v
-bGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
-X19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54
-ZW4ub3JnCmh0dHA6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=
-
diff --git a/test/corpus/<50293785020000780009484C@nat28.tlf.novell.com> b/test/corpus/<50293785020000780009484C@nat28.tlf.novell.com>
deleted file mode 100644 (file)
index 90e5ec0..0000000
+++ /dev/null
@@ -1,497 +0,0 @@
-From xen-devel-bounces@lists.xen.org Mon Aug 13 16:26:08 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Mon, 13 Aug 2012 16:26:08 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T0wWq-0005FL-PE
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Mon, 13 Aug 2012 16:26:08 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T0wSC-0007Gu-PR; Mon, 13 Aug 2012 15:21:16 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <JBeulich@suse.com>) id 1T0wSB-0007Gp-1k
-       for xen-devel@lists.xen.org; Mon, 13 Aug 2012 15:21:15 +0000
-Received: from [85.158.143.99:58494] by server-3.bemta-4.messagelabs.com id
-       A5/56-09529-A6B19205; Mon, 13 Aug 2012 15:21:14 +0000
-X-Env-Sender: JBeulich@suse.com
-X-Msg-Ref: server-13.tower-216.messagelabs.com!1344871272!27051170!1
-X-Originating-IP: [130.57.49.28]
-X-SpamReason: No, hits=1.1 required=7.0 tests=MAILTO_TO_SPAM_ADDR,
-       MANY_EXCLAMATIONS
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 13175 invoked from network); 13 Aug 2012 15:21:12 -0000
-Received: from nat28.tlf.novell.com (HELO nat28.tlf.novell.com) (130.57.49.28)
-       by server-13.tower-216.messagelabs.com with SMTP;
-       13 Aug 2012 15:21:12 -0000
-Received: from EMEA1-MTA by nat28.tlf.novell.com
-       with Novell_GroupWise; Mon, 13 Aug 2012 16:21:11 +0100
-Message-Id: <50293785020000780009484C@nat28.tlf.novell.com>
-X-Mailer: Novell GroupWise Internet Agent 12.0.0 
-Date: Mon, 13 Aug 2012 16:21:09 +0100
-From: "Jan Beulich" <JBeulich@suse.com>
-To: "tupeng212" <tupeng212@gmail.com>
-References: <201208070018394210381@gmail.com>,
-       <50224B7402000078000937DA@nat28.tlf.novell.com>
-       <2012081023124696835343@gmail.com>
-In-Reply-To: <2012081023124696835343@gmail.com>
-Mime-Version: 1.0
-Content-Type: multipart/mixed; boundary="=__Part7F4E0B75.1__="
-Cc: Tim Deegan <tim@xen.org>, Keir Fraser <keir@xen.org>,
-       xen-devel <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] Big Bug:Time in VM goes slower;
- foud Solution but demand Judgement! A Interesting Story!
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-This is a MIME message. If you are reading this text, you may want to 
-consider changing to a mail reader or gateway that understands how to 
-properly handle MIME multipart messages.
-
---=__Part7F4E0B75.1__=
-Content-Type: text/plain; charset=US-ASCII
-Content-Transfer-Encoding: quoted-printable
-Content-Disposition: inline
-
->>> On 10.08.12 at 17:17, tupeng212 <tupeng212@gmail.com> wrote:
-> 2 Bug in xen
-> JVM is OK, so left the bug to xen, I have found both the reason and=20
-> solution. As Jan mentioned avoiding call create_periodic_time, it got =
-much=20
-> better. so I modified it like this, if the pt timer is created before,=20=
-
-> setting RegA down is just changing the period value, so I do nothing =
-except=20
-
-What you describe doesn't sound accurate (i.e. I'm getting the
-impression that you might have suppressed the call in cases
-where you shouldn't).
-
-Below/attached a first draft of a patch to fix not only this issue,
-but a few more with the RTC emulation. Would you give this a
-try?
-
-Keir, Tim, others - the change to xen/arch/x86/hvm/vpt.c really
-looks more like a hack than a solution, but I don't see another
-way without much more intrusive changes. The point is that we
-want the RTC code to decide whether to generate an interrupt
-(so that RTC_PF can become set correctly even without RTC_PIE
-getting enabled by the guest).
-
-Jan
-
-x86/HVM: assorted RTC emulation adjustments
-
-- don't call rtc_timer_update() on REG_A writes when the value didn't
-  change (doing the call always was reported to cause wall clock time
-  lagging with the JVM under Windows)
-- in the same spirit, don't call rtc_timer_update() or
-  alarm_timer_update() on REG_B writes when the respective RTC_xIE bit
-  didn't change
-- raise the RTC IRQ not only when RTC_UIE gets set while RTC_UF was
-  already set, but generalize this to alarm and periodic interrupts as
-  well
-- properly handle RTC_PF when the guest is not also setting RTC_PIE
-- also handle the two other clock bases
-
---- a/xen/arch/x86/hvm/rtc.c
-+++ b/xen/arch/x86/hvm/rtc.c
-@@ -50,11 +50,24 @@ static void rtc_set_time(RTCState *s);
- static inline int from_bcd(RTCState *s, int a);
- static inline int convert_hour(RTCState *s, int hour);
-=20
--static void rtc_periodic_cb(struct vcpu *v, void *opaque)
-+static void rtc_toggle_irq(RTCState *s)
-+{
-+    struct domain *d =3D vrtc_domain(s);
-+
-+    ASSERT(spin_is_locked(&s->lock));
-+    s->hw.cmos_data[RTC_REG_C] |=3D RTC_IRQF;
-+    hvm_isa_irq_deassert(d, RTC_IRQ);
-+    hvm_isa_irq_assert(d, RTC_IRQ);
-+}
-+
-+void rtc_periodic_interrupt(void *opaque)
- {
-     RTCState *s =3D opaque;
-+
-     spin_lock(&s->lock);
--    s->hw.cmos_data[RTC_REG_C] |=3D 0xc0;
-+    s->hw.cmos_data[RTC_REG_C] |=3D RTC_PF;
-+    if ( s->hw.cmos_data[RTC_REG_B] & RTC_PIE )
-+        rtc_toggle_irq(s);
-     spin_unlock(&s->lock);
- }
-=20
-@@ -68,19 +81,25 @@ static void rtc_timer_update(RTCState *s
-     ASSERT(spin_is_locked(&s->lock));
-=20
-     period_code =3D s->hw.cmos_data[RTC_REG_A] & RTC_RATE_SELECT;
--    if ( (period_code !=3D 0) && (s->hw.cmos_data[RTC_REG_B] & RTC_PIE) )
-+    switch ( s->hw.cmos_data[RTC_REG_A] & RTC_DIV_CTL )
-     {
--        if ( period_code <=3D 2 )
-+    case RTC_REF_CLCK_32KHZ:
-+        if ( (period_code !=3D 0) && (period_code <=3D 2) )
-             period_code +=3D 7;
--
--        period =3D 1 << (period_code - 1); /* period in 32 Khz cycles */
--        period =3D DIV_ROUND((period * 1000000000ULL), 32768); /* period =
-in ns */
--        create_periodic_time(v, &s->pt, period, period, RTC_IRQ,
--                             rtc_periodic_cb, s);
--    }
--    else
--    {
-+        /* fall through */
-+    case RTC_REF_CLCK_1MHZ:
-+    case RTC_REF_CLCK_4MHZ:
-+        if ( period_code !=3D 0 )
-+        {
-+            period =3D 1 << (period_code - 1); /* period in 32 Khz cycles =
-*/
-+            period =3D DIV_ROUND(period * 1000000000ULL, 32768); /* in ns =
-*/
-+            create_periodic_time(v, &s->pt, period, period, RTC_IRQ, =
-NULL, s);
-+            break;
-+        }
-+        /* fall through */
-+    default:
-         destroy_periodic_time(&s->pt);
-+        break;
-     }
- }
-=20
-@@ -144,7 +163,6 @@ static void rtc_update_timer(void *opaqu
- static void rtc_update_timer2(void *opaque)
- {
-     RTCState *s =3D opaque;
--    struct domain *d =3D vrtc_domain(s);
-=20
-     spin_lock(&s->lock);
-     if (!(s->hw.cmos_data[RTC_REG_B] & RTC_SET))
-@@ -152,11 +170,7 @@ static void rtc_update_timer2(void *opaq
-         s->hw.cmos_data[RTC_REG_C] |=3D RTC_UF;
-         s->hw.cmos_data[RTC_REG_A] &=3D ~RTC_UIP;
-         if ((s->hw.cmos_data[RTC_REG_B] & RTC_UIE))
--        {
--            s->hw.cmos_data[RTC_REG_C] |=3D RTC_IRQF;
--            hvm_isa_irq_deassert(d, RTC_IRQ);
--            hvm_isa_irq_assert(d, RTC_IRQ);
--        }
-+            rtc_toggle_irq(s);
-         check_update_timer(s);
-     }
-     spin_unlock(&s->lock);
-@@ -343,7 +357,6 @@ static void alarm_timer_update(RTCState=20
- static void rtc_alarm_cb(void *opaque)
- {
-     RTCState *s =3D opaque;
--    struct domain *d =3D vrtc_domain(s);
-=20
-     spin_lock(&s->lock);
-     if (!(s->hw.cmos_data[RTC_REG_B] & RTC_SET))
-@@ -351,11 +364,7 @@ static void rtc_alarm_cb(void *opaque)
-         s->hw.cmos_data[RTC_REG_C] |=3D RTC_AF;
-         /* alarm interrupt */
-         if (s->hw.cmos_data[RTC_REG_B] & RTC_AIE)
--        {
--            s->hw.cmos_data[RTC_REG_C] |=3D RTC_IRQF;
--            hvm_isa_irq_deassert(d, RTC_IRQ);
--            hvm_isa_irq_assert(d, RTC_IRQ);
--        }
-+            rtc_toggle_irq(s);
-         alarm_timer_update(s);
-     }
-     spin_unlock(&s->lock);
-@@ -365,6 +374,7 @@ static int rtc_ioport_write(void *opaque
- {
-     RTCState *s =3D opaque;
-     struct domain *d =3D vrtc_domain(s);
-+    uint32_t orig, mask;
-=20
-     spin_lock(&s->lock);
-=20
-@@ -382,6 +392,7 @@ static int rtc_ioport_write(void *opaque
-         return 0;
-     }
-=20
-+    orig =3D s->hw.cmos_data[s->hw.cmos_index];
-     switch ( s->hw.cmos_index )
-     {
-     case RTC_SECONDS_ALARM:
-@@ -405,9 +416,9 @@ static int rtc_ioport_write(void *opaque
-         break;
-     case RTC_REG_A:
-         /* UIP bit is read only */
--        s->hw.cmos_data[RTC_REG_A] =3D (data & ~RTC_UIP) |
--            (s->hw.cmos_data[RTC_REG_A] & RTC_UIP);
--        rtc_timer_update(s);
-+        s->hw.cmos_data[RTC_REG_A] =3D (data & ~RTC_UIP) | (orig & =
-RTC_UIP);
-+        if ( (data ^ orig) & (RTC_RATE_SELECT | RTC_DIV_CTL) )
-+            rtc_timer_update(s);
-         break;
-     case RTC_REG_B:
-         if ( data & RTC_SET )
-@@ -415,7 +426,7 @@ static int rtc_ioport_write(void *opaque
-             /* set mode: reset UIP mode */
-             s->hw.cmos_data[RTC_REG_A] &=3D ~RTC_UIP;
-             /* adjust cmos before stopping */
--            if (!(s->hw.cmos_data[RTC_REG_B] & RTC_SET))
-+            if (!(orig & RTC_SET))
-             {
-                 s->current_tm =3D gmtime(get_localtime(d));
-                 rtc_copy_date(s);
-@@ -424,21 +435,27 @@ static int rtc_ioport_write(void *opaque
-         else
-         {
-             /* if disabling set mode, update the time */
--            if ( s->hw.cmos_data[RTC_REG_B] & RTC_SET )
-+            if ( orig & RTC_SET )
-                 rtc_set_time(s);
-         }
--        /* if the interrupt is already set when the interrupt become
--         * enabled, raise an interrupt immediately*/
--        if ((data & RTC_UIE) && !(s->hw.cmos_data[RTC_REG_B] & RTC_UIE))
--            if (s->hw.cmos_data[RTC_REG_C] & RTC_UF)
-+        /*
-+         * If the interrupt is already set when the interrupt becomes
-+         * enabled, raise an interrupt immediately.
-+         * NB: RTC_{A,P,U}IE =3D=3D RTC_{A,P,U}F respectively.
-+         */
-+        for ( mask =3D RTC_UIE; mask <=3D RTC_PIE; mask <<=3D 1 )
-+            if ( (data & mask) && !(orig & mask) &&
-+                 (s->hw.cmos_data[RTC_REG_C] & mask) )
-             {
--                hvm_isa_irq_deassert(d, RTC_IRQ);
--                hvm_isa_irq_assert(d, RTC_IRQ);
-+                rtc_toggle_irq(s);
-+                break;
-             }
-         s->hw.cmos_data[RTC_REG_B] =3D data;
--        rtc_timer_update(s);
-+        if ( (data ^ orig) & RTC_PIE )
-+            rtc_timer_update(s);
-         check_update_timer(s);
--        alarm_timer_update(s);
-+        if ( (data ^ orig) & RTC_AIE )
-+            alarm_timer_update(s);
-         break;
-     case RTC_REG_C:
-     case RTC_REG_D:
---- a/xen/arch/x86/hvm/vpt.c
-+++ b/xen/arch/x86/hvm/vpt.c
-@@ -22,6 +22,7 @@
- #include <asm/hvm/vpt.h>
- #include <asm/event.h>
- #include <asm/apic.h>
-+#include <asm/mc146818rtc.h>
-=20
- #define mode_is(d, name) \
-     ((d)->arch.hvm_domain.params[HVM_PARAM_TIMER_MODE] =3D=3D HVMPTM_##nam=
-e)
-@@ -218,6 +219,7 @@ void pt_update_irq(struct vcpu *v)
-     struct periodic_time *pt, *temp, *earliest_pt =3D NULL;
-     uint64_t max_lag =3D -1ULL;
-     int irq, is_lapic;
-+    void *pt_priv;
-=20
-     spin_lock(&v->arch.hvm_vcpu.tm_lock);
-=20
-@@ -251,13 +253,14 @@ void pt_update_irq(struct vcpu *v)
-     earliest_pt->irq_issued =3D 1;
-     irq =3D earliest_pt->irq;
-     is_lapic =3D (earliest_pt->source =3D=3D PTSRC_lapic);
-+    pt_priv =3D earliest_pt->priv;
-=20
-     spin_unlock(&v->arch.hvm_vcpu.tm_lock);
-=20
-     if ( is_lapic )
--    {
-         vlapic_set_irq(vcpu_vlapic(v), irq, 0);
--    }
-+    else if ( irq =3D=3D RTC_IRQ )
-+        rtc_periodic_interrupt(pt_priv);
-     else
-     {
-         hvm_isa_irq_deassert(v->domain, irq);
---- a/xen/include/asm-x86/hvm/vpt.h
-+++ b/xen/include/asm-x86/hvm/vpt.h
-@@ -181,6 +181,7 @@ void rtc_migrate_timers(struct vcpu *v);
- void rtc_deinit(struct domain *d);
- void rtc_reset(struct domain *d);
- void rtc_update_clock(struct domain *d);
-+void rtc_periodic_interrupt(void *);
-=20
- void pmtimer_init(struct vcpu *v);
- void pmtimer_deinit(struct domain *d);
-
-
---=__Part7F4E0B75.1__=
-Content-Type: text/plain; name="x86-hvm-rtc.patch"
-Content-Transfer-Encoding: quoted-printable
-Content-Disposition: attachment; filename="x86-hvm-rtc.patch"
-
-x86/HVM: assorted RTC emulation adjustments=0A=0A- don't call rtc_timer_upd=
-ate() on REG_A writes when the value didn't=0A  change (doing the call =
-always was reported to cause wall clock time=0A  lagging with the JVM =
-under Windows)=0A- in the same spirit, don't call rtc_timer_update() or=0A =
- alarm_timer_update() on REG_B writes when the respective RTC_xIE bit=0A  =
-didn't change=0A- raise the RTC IRQ not only when RTC_UIE gets set while =
-RTC_UF was=0A  already set, but generalize this to alarm and periodic =
-interrupts as=0A  well=0A- properly handle RTC_PF when the guest is not =
-also setting RTC_PIE=0A- also handle the two other clock bases=0A=0A--- =
-a/xen/arch/x86/hvm/rtc.c=0A+++ b/xen/arch/x86/hvm/rtc.c=0A@@ -50,11 +50,24 =
-@@ static void rtc_set_time(RTCState *s);=0A static inline int from_bcd(RTC=
-State *s, int a);=0A static inline int convert_hour(RTCState *s, int =
-hour);=0A =0A-static void rtc_periodic_cb(struct vcpu *v, void *opaque)=0A+=
-static void rtc_toggle_irq(RTCState *s)=0A+{=0A+    struct domain *d =3D =
-vrtc_domain(s);=0A+=0A+    ASSERT(spin_is_locked(&s->lock));=0A+    =
-s->hw.cmos_data[RTC_REG_C] |=3D RTC_IRQF;=0A+    hvm_isa_irq_deassert(d, =
-RTC_IRQ);=0A+    hvm_isa_irq_assert(d, RTC_IRQ);=0A+}=0A+=0A+void =
-rtc_periodic_interrupt(void *opaque)=0A {=0A     RTCState *s =3D opaque;=0A=
-+=0A     spin_lock(&s->lock);=0A-    s->hw.cmos_data[RTC_REG_C] |=3D =
-0xc0;=0A+    s->hw.cmos_data[RTC_REG_C] |=3D RTC_PF;=0A+    if ( s->hw.cmos=
-_data[RTC_REG_B] & RTC_PIE )=0A+        rtc_toggle_irq(s);=0A     =
-spin_unlock(&s->lock);=0A }=0A =0A@@ -68,19 +81,25 @@ static void =
-rtc_timer_update(RTCState *s=0A     ASSERT(spin_is_locked(&s->lock));=0A =
-=0A     period_code =3D s->hw.cmos_data[RTC_REG_A] & RTC_RATE_SELECT;=0A-  =
-  if ( (period_code !=3D 0) && (s->hw.cmos_data[RTC_REG_B] & RTC_PIE) =
-)=0A+    switch ( s->hw.cmos_data[RTC_REG_A] & RTC_DIV_CTL )=0A     {=0A-  =
-      if ( period_code <=3D 2 )=0A+    case RTC_REF_CLCK_32KHZ:=0A+        =
-if ( (period_code !=3D 0) && (period_code <=3D 2) )=0A             =
-period_code +=3D 7;=0A-=0A-        period =3D 1 << (period_code - 1); /* =
-period in 32 Khz cycles */=0A-        period =3D DIV_ROUND((period * =
-1000000000ULL), 32768); /* period in ns */=0A-        create_periodic_time(=
-v, &s->pt, period, period, RTC_IRQ,=0A-                             =
-rtc_periodic_cb, s);=0A-    }=0A-    else=0A-    {=0A+        /* fall =
-through */=0A+    case RTC_REF_CLCK_1MHZ:=0A+    case RTC_REF_CLCK_4MHZ:=0A=
-+        if ( period_code !=3D 0 )=0A+        {=0A+            period =3D =
-1 << (period_code - 1); /* period in 32 Khz cycles */=0A+            =
-period =3D DIV_ROUND(period * 1000000000ULL, 32768); /* in ns */=0A+       =
-     create_periodic_time(v, &s->pt, period, period, RTC_IRQ, NULL, =
-s);=0A+            break;=0A+        }=0A+        /* fall through */=0A+   =
- default:=0A         destroy_periodic_time(&s->pt);=0A+        break;=0A   =
-  }=0A }=0A =0A@@ -144,7 +163,6 @@ static void rtc_update_timer(void =
-*opaqu=0A static void rtc_update_timer2(void *opaque)=0A {=0A     RTCState =
-*s =3D opaque;=0A-    struct domain *d =3D vrtc_domain(s);=0A =0A     =
-spin_lock(&s->lock);=0A     if (!(s->hw.cmos_data[RTC_REG_B] & RTC_SET))=0A=
-@@ -152,11 +170,7 @@ static void rtc_update_timer2(void *opaq=0A         =
-s->hw.cmos_data[RTC_REG_C] |=3D RTC_UF;=0A         s->hw.cmos_data[RTC_REG_=
-A] &=3D ~RTC_UIP;=0A         if ((s->hw.cmos_data[RTC_REG_B] & RTC_UIE))=0A=
--        {=0A-            s->hw.cmos_data[RTC_REG_C] |=3D RTC_IRQF;=0A-    =
-        hvm_isa_irq_deassert(d, RTC_IRQ);=0A-            hvm_isa_irq_assert=
-(d, RTC_IRQ);=0A-        }=0A+            rtc_toggle_irq(s);=0A         =
-check_update_timer(s);=0A     }=0A     spin_unlock(&s->lock);=0A@@ -343,7 =
-+357,6 @@ static void alarm_timer_update(RTCState =0A static void =
-rtc_alarm_cb(void *opaque)=0A {=0A     RTCState *s =3D opaque;=0A-    =
-struct domain *d =3D vrtc_domain(s);=0A =0A     spin_lock(&s->lock);=0A    =
- if (!(s->hw.cmos_data[RTC_REG_B] & RTC_SET))=0A@@ -351,11 +364,7 @@ =
-static void rtc_alarm_cb(void *opaque)=0A         s->hw.cmos_data[RTC_REG_C=
-] |=3D RTC_AF;=0A         /* alarm interrupt */=0A         if (s->hw.cmos_d=
-ata[RTC_REG_B] & RTC_AIE)=0A-        {=0A-            s->hw.cmos_data[RTC_R=
-EG_C] |=3D RTC_IRQF;=0A-            hvm_isa_irq_deassert(d, RTC_IRQ);=0A-  =
-          hvm_isa_irq_assert(d, RTC_IRQ);=0A-        }=0A+            =
-rtc_toggle_irq(s);=0A         alarm_timer_update(s);=0A     }=0A     =
-spin_unlock(&s->lock);=0A@@ -365,6 +374,7 @@ static int rtc_ioport_write(vo=
-id *opaque=0A {=0A     RTCState *s =3D opaque;=0A     struct domain *d =3D =
-vrtc_domain(s);=0A+    uint32_t orig, mask;=0A =0A     spin_lock(&s->lock);=
-=0A =0A@@ -382,6 +392,7 @@ static int rtc_ioport_write(void *opaque=0A     =
-    return 0;=0A     }=0A =0A+    orig =3D s->hw.cmos_data[s->hw.cmos_index=
-];=0A     switch ( s->hw.cmos_index )=0A     {=0A     case RTC_SECONDS_ALAR=
-M:=0A@@ -405,9 +416,9 @@ static int rtc_ioport_write(void *opaque=0A       =
-  break;=0A     case RTC_REG_A:=0A         /* UIP bit is read only */=0A-  =
-      s->hw.cmos_data[RTC_REG_A] =3D (data & ~RTC_UIP) |=0A-            =
-(s->hw.cmos_data[RTC_REG_A] & RTC_UIP);=0A-        rtc_timer_update(s);=0A+=
-        s->hw.cmos_data[RTC_REG_A] =3D (data & ~RTC_UIP) | (orig & =
-RTC_UIP);=0A+        if ( (data ^ orig) & (RTC_RATE_SELECT | RTC_DIV_CTL) =
-)=0A+            rtc_timer_update(s);=0A         break;=0A     case =
-RTC_REG_B:=0A         if ( data & RTC_SET )=0A@@ -415,7 +426,7 @@ static =
-int rtc_ioport_write(void *opaque=0A             /* set mode: reset UIP =
-mode */=0A             s->hw.cmos_data[RTC_REG_A] &=3D ~RTC_UIP;=0A        =
-     /* adjust cmos before stopping */=0A-            if (!(s->hw.cmos_data=
-[RTC_REG_B] & RTC_SET))=0A+            if (!(orig & RTC_SET))=0A           =
-  {=0A                 s->current_tm =3D gmtime(get_localtime(d));=0A      =
-           rtc_copy_date(s);=0A@@ -424,21 +435,27 @@ static int rtc_ioport_=
-write(void *opaque=0A         else=0A         {=0A             /* if =
-disabling set mode, update the time */=0A-            if ( s->hw.cmos_data[=
-RTC_REG_B] & RTC_SET )=0A+            if ( orig & RTC_SET )=0A             =
-    rtc_set_time(s);=0A         }=0A-        /* if the interrupt is =
-already set when the interrupt become=0A-         * enabled, raise an =
-interrupt immediately*/=0A-        if ((data & RTC_UIE) && !(s->hw.cmos_dat=
-a[RTC_REG_B] & RTC_UIE))=0A-            if (s->hw.cmos_data[RTC_REG_C] & =
-RTC_UF)=0A+        /*=0A+         * If the interrupt is already set when =
-the interrupt becomes=0A+         * enabled, raise an interrupt immediately=
-.=0A+         * NB: RTC_{A,P,U}IE =3D=3D RTC_{A,P,U}F respectively.=0A+    =
-     */=0A+        for ( mask =3D RTC_UIE; mask <=3D RTC_PIE; mask <<=3D 1 =
-)=0A+            if ( (data & mask) && !(orig & mask) &&=0A+               =
-  (s->hw.cmos_data[RTC_REG_C] & mask) )=0A             {=0A-               =
- hvm_isa_irq_deassert(d, RTC_IRQ);=0A-                hvm_isa_irq_assert(d,=
- RTC_IRQ);=0A+                rtc_toggle_irq(s);=0A+                =
-break;=0A             }=0A         s->hw.cmos_data[RTC_REG_B] =3D =
-data;=0A-        rtc_timer_update(s);=0A+        if ( (data ^ orig) & =
-RTC_PIE )=0A+            rtc_timer_update(s);=0A         check_update_timer=
-(s);=0A-        alarm_timer_update(s);=0A+        if ( (data ^ orig) & =
-RTC_AIE )=0A+            alarm_timer_update(s);=0A         break;=0A     =
-case RTC_REG_C:=0A     case RTC_REG_D:=0A--- a/xen/arch/x86/hvm/vpt.c=0A+++=
- b/xen/arch/x86/hvm/vpt.c=0A@@ -22,6 +22,7 @@=0A #include <asm/hvm/vpt.h>=
-=0A #include <asm/event.h>=0A #include <asm/apic.h>=0A+#include <asm/mc1468=
-18rtc.h>=0A =0A #define mode_is(d, name) \=0A     ((d)->arch.hvm_domain.par=
-ams[HVM_PARAM_TIMER_MODE] =3D=3D HVMPTM_##name)=0A@@ -218,6 +219,7 @@ void =
-pt_update_irq(struct vcpu *v)=0A     struct periodic_time *pt, *temp, =
-*earliest_pt =3D NULL;=0A     uint64_t max_lag =3D -1ULL;=0A     int irq, =
-is_lapic;=0A+    void *pt_priv;=0A =0A     spin_lock(&v->arch.hvm_vcpu.tm_l=
-ock);=0A =0A@@ -251,13 +253,14 @@ void pt_update_irq(struct vcpu *v)=0A    =
- earliest_pt->irq_issued =3D 1;=0A     irq =3D earliest_pt->irq;=0A     =
-is_lapic =3D (earliest_pt->source =3D=3D PTSRC_lapic);=0A+    pt_priv =3D =
-earliest_pt->priv;=0A =0A     spin_unlock(&v->arch.hvm_vcpu.tm_lock);=0A =
-=0A     if ( is_lapic )=0A-    {=0A         vlapic_set_irq(vcpu_vlapic(v), =
-irq, 0);=0A-    }=0A+    else if ( irq =3D=3D RTC_IRQ )=0A+        =
-rtc_periodic_interrupt(pt_priv);=0A     else=0A     {=0A         hvm_isa_ir=
-q_deassert(v->domain, irq);=0A--- a/xen/include/asm-x86/hvm/vpt.h=0A+++ =
-b/xen/include/asm-x86/hvm/vpt.h=0A@@ -181,6 +181,7 @@ void rtc_migrate_time=
-rs(struct vcpu *v);=0A void rtc_deinit(struct domain *d);=0A void =
-rtc_reset(struct domain *d);=0A void rtc_update_clock(struct domain =
-*d);=0A+void rtc_periodic_interrupt(void *);=0A =0A void pmtimer_init(struc=
-t vcpu *v);=0A void pmtimer_deinit(struct domain *d);=0A
---=__Part7F4E0B75.1__=
-Content-Type: text/plain; charset="us-ascii"
-MIME-Version: 1.0
-Content-Transfer-Encoding: 7bit
-Content-Disposition: inline
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
---=__Part7F4E0B75.1__=--
-
-
diff --git a/test/corpus/<502A0BE50200007800094A4E@nat28.tlf.novell.com> b/test/corpus/<502A0BE50200007800094A4E@nat28.tlf.novell.com>
deleted file mode 100644 (file)
index db2f24b..0000000
+++ /dev/null
@@ -1,104 +0,0 @@
-From xen-devel-bounces@lists.xen.org Tue Aug 14 07:32:16 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Tue, 14 Aug 2012 07:32:16 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T1Afl-00044N-He
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 14 Aug 2012 07:32:16 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T1Ab7-0002lk-TE; Tue, 14 Aug 2012 06:27:25 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <JBeulich@suse.com>) id 1T1Ab5-0002lf-Tw
-       for xen-devel@lists.xen.org; Tue, 14 Aug 2012 06:27:24 +0000
-Received: from [85.158.143.99:42272] by server-2.bemta-4.messagelabs.com id
-       0E/3A-31966-BCFE9205; Tue, 14 Aug 2012 06:27:23 +0000
-X-Env-Sender: JBeulich@suse.com
-X-Msg-Ref: server-8.tower-216.messagelabs.com!1344925642!18268867!1
-X-Originating-IP: [130.57.49.28]
-X-SpamReason: No, hits=1.1 required=7.0 tests=MAILTO_TO_SPAM_ADDR,
-       MANY_EXCLAMATIONS
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 29544 invoked from network); 14 Aug 2012 06:27:22 -0000
-Received: from nat28.tlf.novell.com (HELO nat28.tlf.novell.com) (130.57.49.28)
-       by server-8.tower-216.messagelabs.com with SMTP;
-       14 Aug 2012 06:27:22 -0000
-Received: from EMEA1-MTA by nat28.tlf.novell.com
-       with Novell_GroupWise; Tue, 14 Aug 2012 07:29:07 +0100
-Message-Id: <502A0BE50200007800094A4E@nat28.tlf.novell.com>
-X-Mailer: Novell GroupWise Internet Agent 12.0.0 
-Date: Tue, 14 Aug 2012 07:27:17 +0100
-From: "Jan Beulich" <JBeulich@suse.com>
-To: "tupeng212" <tupeng212@gmail.com>
-References: <201208070018394210381@gmail.com>,
-       <50224B7402000078000937DA@nat28.tlf.novell.com>
-       <2012081023124696835343@gmail.com>,
-       <50293785020000780009484C@nat28.tlf.novell.com>
-       <201208140024353598835@gmail.com>
-In-Reply-To: <201208140024353598835@gmail.com>
-Mime-Version: 1.0
-Content-Disposition: inline
-Cc: xen-devel <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] Big Bug:Time in VM goes slower;
- foud Solution but demand Judgement! A Interesting Story!
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-(re-adding xen-devel to Cc)
-
->>> On 13.08.12 at 18:24, tupeng212 <tupeng212@gmail.com> wrote:
-> I am home sending you this letter,  I can tell the details:
-> I only compared the rate setted down with RegA, if same, don't call 
-> create_periodic_time, and it is OK.
-> but after a while it changed the rate to 152...(normal rate), and it changed 
-> back to 97...(high rate), and 
-> this action repeated, at this point, VM's time slowed again. so only block 
-> the same rate's setting doesn't work.
-
-But in this case the hypervisor has no choice - it has to update
-the periodic timer. I don't think we could reliably guess that the
-guest might plan on quickly toggling between two rates.
-
-> but when I let pt->scheduled to be static(no changed) when setting regA down, 
-> even at the rate's switching I notice above,
-> it works very well, bug of time slowing never appear again.
-
-Yeah, likely that solves the problem for you, but as it's not
-correct, it's likely to cause problems for others.
-
-Jan
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<502A0E610200007800094A58@nat28.tlf.novell.com> b/test/corpus/<502A0E610200007800094A58@nat28.tlf.novell.com>
deleted file mode 100644 (file)
index c8a192d..0000000
+++ /dev/null
@@ -1,108 +0,0 @@
-From xen-devel-bounces@lists.xen.org Tue Aug 14 07:42:08 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Tue, 14 Aug 2012 07:42:08 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T1ApJ-00045S-1V
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 14 Aug 2012 07:42:08 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T1AlK-0003Es-M3; Tue, 14 Aug 2012 06:37:58 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <JBeulich@suse.com>) id 1T1AlI-0003EZ-Vb
-       for xen-devel@lists.xen.org; Tue, 14 Aug 2012 06:37:57 +0000
-Received: from [85.158.143.35:37476] by server-2.bemta-4.messagelabs.com id
-       6C/C4-31966-442F9205; Tue, 14 Aug 2012 06:37:56 +0000
-X-Env-Sender: JBeulich@suse.com
-X-Msg-Ref: server-2.tower-21.messagelabs.com!1344926275!5524746!1
-X-Originating-IP: [130.57.49.28]
-X-SpamReason: No, hits=1.3 required=7.0 tests=BODY_RANDOM_LONG,
-       MANY_EXCLAMATIONS
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 19055 invoked from network); 14 Aug 2012 06:37:55 -0000
-Received: from nat28.tlf.novell.com (HELO nat28.tlf.novell.com) (130.57.49.28)
-       by server-2.tower-21.messagelabs.com with SMTP;
-       14 Aug 2012 06:37:55 -0000
-Received: from EMEA1-MTA by nat28.tlf.novell.com
-       with Novell_GroupWise; Tue, 14 Aug 2012 07:39:40 +0100
-Message-Id: <502A0E610200007800094A58@nat28.tlf.novell.com>
-X-Mailer: Novell GroupWise Internet Agent 12.0.0 
-Date: Tue, 14 Aug 2012 07:37:53 +0100
-From: "Jan Beulich" <JBeulich@suse.com>
-To: "xen-devel" <xen-devel@lists.xen.org>
-References: <201208070018394210381@gmail.com>,
-       <50224B7402000078000937DA@nat28.tlf.novell.com>
-       <2012081023124696835343@gmail.com>
-       <50293785020000780009484C@nat28.tlf.novell.com>
-In-Reply-To: <50293785020000780009484C@nat28.tlf.novell.com>
-Mime-Version: 1.0
-Content-Disposition: inline
-Cc: tupeng212 <tupeng212@gmail.com>, Tim Deegan <tim@xen.org>,
-       Keir Fraser <keir@xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] Big Bug:Time in VM goes slower;
- foud Solution but demand Judgement! A Interesting Story!
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
->>> On 13.08.12 at 17:21, "Jan Beulich" <JBeulich@suse.com> wrote:
-> - don't call rtc_timer_update() on REG_A writes when the value didn't
->   change (doing the call always was reported to cause wall clock time
->   lagging with the JVM under Windows)
-> - in the same spirit, don't call rtc_timer_update() or
->   alarm_timer_update() on REG_B writes when the respective RTC_xIE bit
->   didn't change
-
-Actually, this didn't go far enough yet: REG_B writes should
-never cause any timers to get updated when merely one of the
-xIE bits changes, as those bits shouldn't control the timers'
-activity (and as a result, the eventual setting of the xF bits in
-REG_C).
-
-> - raise the RTC IRQ not only when RTC_UIE gets set while RTC_UF was
->   already set, but generalize this to alarm and periodic interrupts as
->   well
-> - properly handle RTC_PF when the guest is not also setting RTC_PIE
-
-In line with the above, this ought to also be done for AF and UF
-(it may be the case for UF already).
-
-Jan
-
-> - also handle the two other clock bases
-
-
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<502A3BBC0200007800094B68@nat28.tlf.novell.com> b/test/corpus/<502A3BBC0200007800094B68@nat28.tlf.novell.com>
deleted file mode 100644 (file)
index fb5193c..0000000
+++ /dev/null
@@ -1,426 +0,0 @@
-From xen-devel-bounces@lists.xen.org Tue Aug 14 10:56:30 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Tue, 14 Aug 2012 10:56:30 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T1DrN-0004iw-CM
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 14 Aug 2012 10:56:30 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T1Dmc-0000pb-Jm; Tue, 14 Aug 2012 09:51:30 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <JBeulich@suse.com>) id 1T1Dma-0000pW-Nh
-       for xen-devel@lists.xen.org; Tue, 14 Aug 2012 09:51:29 +0000
-Received: from [85.158.143.99:19483] by server-2.bemta-4.messagelabs.com id
-       D5/A6-31966-0AF1A205; Tue, 14 Aug 2012 09:51:28 +0000
-X-Env-Sender: JBeulich@suse.com
-X-Msg-Ref: server-15.tower-216.messagelabs.com!1344937886!28061722!1
-X-Originating-IP: [130.57.49.28]
-X-SpamReason: No, hits=0.0 required=7.0 tests=
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 19901 invoked from network); 14 Aug 2012 09:51:26 -0000
-Received: from nat28.tlf.novell.com (HELO nat28.tlf.novell.com) (130.57.49.28)
-       by server-15.tower-216.messagelabs.com with SMTP;
-       14 Aug 2012 09:51:26 -0000
-Received: from EMEA1-MTA by nat28.tlf.novell.com
-       with Novell_GroupWise; Tue, 14 Aug 2012 10:51:26 +0100
-Message-Id: <502A3BBC0200007800094B68@nat28.tlf.novell.com>
-X-Mailer: Novell GroupWise Internet Agent 12.0.0 
-Date: Tue, 14 Aug 2012 10:51:24 +0100
-From: "Jan Beulich" <JBeulich@suse.com>
-To: "Yang Z Zhang" <yang.z.zhang@intel.com>,
-       "Keir Fraser" <keir@xen.org>,"Tim Deegan" <tim@xen.org>
-Mime-Version: 1.0
-Content-Disposition: inline
-Cc: tupeng212 <tupeng212@gmail.com>, xen-devel <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: [Xen-devel] [PATCH,
- RFC v2] x86/HVM: assorted RTC emulation adjustments (was Re: Big
- Bug:Time in VM goes slower...)
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-Below/attached a second draft of a patch to fix not only this
-issue, but a few more with the RTC emulation.
-
-Keir, Tim, Yang, others - the change to xen/arch/x86/hvm/vpt.c really
-looks more like a hack than a solution, but I don't see another
-way without much more intrusive changes. The point is that we
-want the RTC code to decide whether to generate an interrupt
-(so that RTC_PF can become set correctly even without RTC_PIE
-getting enabled by the guest).
-
-Additionally I wonder whether alarm_timer_update() shouldn't
-bail on non-conforming RTC_*_ALARM values (as those would
-never match the values they get compared against, whereas
-with the current way of handling this they would appear to
-match - i.e. set RTC_AF and possibly generate an interrupt -
-some other point in time). I realize the behavior here may not
-be precisely specified, but the specification saying "the current
-time has matched the alarm time" means to me a value by value
-comparison, which implies that non-conforming values would
-never match (since non-conforming current time values could
-get replaced at any time by the hardware due to overflow
-detection).
-
-Jan
-
-- don't call rtc_timer_update() on REG_A writes when the value didn't
-  change (doing the call always was reported to cause wall clock time
-  lagging with the JVM running on Windows)
-- don't call rtc_timer_update() on REG_B writes at all
-- only call alarm_timer_update() on REG_B writes when relevant bits
-  change
-- only call check_update_timer() on REG_B writes when SET changes
-- instead properly handle AF and PF when the guest is not also setting
-  AIE/PIE respectively (for UF this was already the case, only a
-  comment was slightly inaccurate)
-- raise the RTC IRQ not only when UIE gets set while UF was already
-  set, but generalize this to cover AIE and PIE as well
-- properly mask off bit 7 when retrieving the hour values in
-  alarm_timer_update(), and properly use RTC_HOURS_ALARM's bit 7 when
-  converting from 12- to 24-hour value
-- also handle the two other possible clock bases
-- use RTC_* names in a couple of places where literal numbers were used
-  so far
-
---- a/xen/arch/x86/hvm/rtc.c
-+++ b/xen/arch/x86/hvm/rtc.c
-@@ -50,11 +50,24 @@ static void rtc_set_time(RTCState *s);
- static inline int from_bcd(RTCState *s, int a);
- static inline int convert_hour(RTCState *s, int hour);
--static void rtc_periodic_cb(struct vcpu *v, void *opaque)
-+static void rtc_toggle_irq(RTCState *s)
-+{
-+    struct domain *d = vrtc_domain(s);
-+
-+    ASSERT(spin_is_locked(&s->lock));
-+    s->hw.cmos_data[RTC_REG_C] |= RTC_IRQF;
-+    hvm_isa_irq_deassert(d, RTC_IRQ);
-+    hvm_isa_irq_assert(d, RTC_IRQ);
-+}
-+
-+void rtc_periodic_interrupt(void *opaque)
- {
-     RTCState *s = opaque;
-+
-     spin_lock(&s->lock);
--    s->hw.cmos_data[RTC_REG_C] |= 0xc0;
-+    s->hw.cmos_data[RTC_REG_C] |= RTC_PF;
-+    if ( s->hw.cmos_data[RTC_REG_B] & RTC_PIE )
-+        rtc_toggle_irq(s);
-     spin_unlock(&s->lock);
- }
-@@ -68,19 +81,25 @@ static void rtc_timer_update(RTCState *s
-     ASSERT(spin_is_locked(&s->lock));
-     period_code = s->hw.cmos_data[RTC_REG_A] & RTC_RATE_SELECT;
--    if ( (period_code != 0) && (s->hw.cmos_data[RTC_REG_B] & RTC_PIE) )
-+    switch ( s->hw.cmos_data[RTC_REG_A] & RTC_DIV_CTL )
-     {
--        if ( period_code <= 2 )
-+    case RTC_REF_CLCK_32KHZ:
-+        if ( (period_code != 0) && (period_code <= 2) )
-             period_code += 7;
--
--        period = 1 << (period_code - 1); /* period in 32 Khz cycles */
--        period = DIV_ROUND((period * 1000000000ULL), 32768); /* period in ns */
--        create_periodic_time(v, &s->pt, period, period, RTC_IRQ,
--                             rtc_periodic_cb, s);
--    }
--    else
--    {
-+        /* fall through */
-+    case RTC_REF_CLCK_1MHZ:
-+    case RTC_REF_CLCK_4MHZ:
-+        if ( period_code != 0 )
-+        {
-+            period = 1 << (period_code - 1); /* period in 32 Khz cycles */
-+            period = DIV_ROUND(period * 1000000000ULL, 32768); /* in ns */
-+            create_periodic_time(v, &s->pt, period, period, RTC_IRQ, NULL, s);
-+            break;
-+        }
-+        /* fall through */
-+    default:
-         destroy_periodic_time(&s->pt);
-+        break;
-     }
- }
-@@ -102,7 +121,7 @@ static void check_update_timer(RTCState 
-         guest_usec = get_localtime_us(d) % USEC_PER_SEC;
-         if (guest_usec >= (USEC_PER_SEC - 244))
-         {
--            /* RTC is in update cycle when enabling UIE */
-+            /* RTC is in update cycle */
-             s->hw.cmos_data[RTC_REG_A] |= RTC_UIP;
-             next_update_time = (USEC_PER_SEC - guest_usec) * NS_PER_USEC;
-             expire_time = NOW() + next_update_time;
-@@ -144,7 +163,6 @@ static void rtc_update_timer(void *opaqu
- static void rtc_update_timer2(void *opaque)
- {
-     RTCState *s = opaque;
--    struct domain *d = vrtc_domain(s);
-     spin_lock(&s->lock);
-     if (!(s->hw.cmos_data[RTC_REG_B] & RTC_SET))
-@@ -152,11 +170,7 @@ static void rtc_update_timer2(void *opaq
-         s->hw.cmos_data[RTC_REG_C] |= RTC_UF;
-         s->hw.cmos_data[RTC_REG_A] &= ~RTC_UIP;
-         if ((s->hw.cmos_data[RTC_REG_B] & RTC_UIE))
--        {
--            s->hw.cmos_data[RTC_REG_C] |= RTC_IRQF;
--            hvm_isa_irq_deassert(d, RTC_IRQ);
--            hvm_isa_irq_assert(d, RTC_IRQ);
--        }
-+            rtc_toggle_irq(s);
-         check_update_timer(s);
-     }
-     spin_unlock(&s->lock);
-@@ -175,21 +189,18 @@ static void alarm_timer_update(RTCState 
-     stop_timer(&s->alarm_timer);
--    if ((s->hw.cmos_data[RTC_REG_B] & RTC_AIE) &&
--            !(s->hw.cmos_data[RTC_REG_B] & RTC_SET))
-+    if ( !(s->hw.cmos_data[RTC_REG_B] & RTC_SET) )
-     {
-         s->current_tm = gmtime(get_localtime(d));
-         rtc_copy_date(s);
-         alarm_sec = from_bcd(s, s->hw.cmos_data[RTC_SECONDS_ALARM]);
-         alarm_min = from_bcd(s, s->hw.cmos_data[RTC_MINUTES_ALARM]);
--        alarm_hour = from_bcd(s, s->hw.cmos_data[RTC_HOURS_ALARM]);
--        alarm_hour = convert_hour(s, alarm_hour);
-+        alarm_hour = convert_hour(s, s->hw.cmos_data[RTC_HOURS_ALARM]);
-         cur_sec = from_bcd(s, s->hw.cmos_data[RTC_SECONDS]);
-         cur_min = from_bcd(s, s->hw.cmos_data[RTC_MINUTES]);
--        cur_hour = from_bcd(s, s->hw.cmos_data[RTC_HOURS]);
--        cur_hour = convert_hour(s, cur_hour);
-+        cur_hour = convert_hour(s, s->hw.cmos_data[RTC_HOURS]);
-         next_update_time = USEC_PER_SEC - (get_localtime_us(d) % USEC_PER_SEC);
-         next_update_time = next_update_time * NS_PER_USEC + NOW();
-@@ -343,7 +354,6 @@ static void alarm_timer_update(RTCState 
- static void rtc_alarm_cb(void *opaque)
- {
-     RTCState *s = opaque;
--    struct domain *d = vrtc_domain(s);
-     spin_lock(&s->lock);
-     if (!(s->hw.cmos_data[RTC_REG_B] & RTC_SET))
-@@ -351,11 +361,7 @@ static void rtc_alarm_cb(void *opaque)
-         s->hw.cmos_data[RTC_REG_C] |= RTC_AF;
-         /* alarm interrupt */
-         if (s->hw.cmos_data[RTC_REG_B] & RTC_AIE)
--        {
--            s->hw.cmos_data[RTC_REG_C] |= RTC_IRQF;
--            hvm_isa_irq_deassert(d, RTC_IRQ);
--            hvm_isa_irq_assert(d, RTC_IRQ);
--        }
-+            rtc_toggle_irq(s);
-         alarm_timer_update(s);
-     }
-     spin_unlock(&s->lock);
-@@ -365,6 +371,7 @@ static int rtc_ioport_write(void *opaque
- {
-     RTCState *s = opaque;
-     struct domain *d = vrtc_domain(s);
-+    uint32_t orig, mask;
-     spin_lock(&s->lock);
-@@ -382,6 +389,7 @@ static int rtc_ioport_write(void *opaque
-         return 0;
-     }
-+    orig = s->hw.cmos_data[s->hw.cmos_index];
-     switch ( s->hw.cmos_index )
-     {
-     case RTC_SECONDS_ALARM:
-@@ -405,9 +413,9 @@ static int rtc_ioport_write(void *opaque
-         break;
-     case RTC_REG_A:
-         /* UIP bit is read only */
--        s->hw.cmos_data[RTC_REG_A] = (data & ~RTC_UIP) |
--            (s->hw.cmos_data[RTC_REG_A] & RTC_UIP);
--        rtc_timer_update(s);
-+        s->hw.cmos_data[RTC_REG_A] = (data & ~RTC_UIP) | (orig & RTC_UIP);
-+        if ( (data ^ orig) & (RTC_RATE_SELECT | RTC_DIV_CTL) )
-+            rtc_timer_update(s);
-         break;
-     case RTC_REG_B:
-         if ( data & RTC_SET )
-@@ -415,7 +423,7 @@ static int rtc_ioport_write(void *opaque
-             /* set mode: reset UIP mode */
-             s->hw.cmos_data[RTC_REG_A] &= ~RTC_UIP;
-             /* adjust cmos before stopping */
--            if (!(s->hw.cmos_data[RTC_REG_B] & RTC_SET))
-+            if (!(orig & RTC_SET))
-             {
-                 s->current_tm = gmtime(get_localtime(d));
-                 rtc_copy_date(s);
-@@ -424,21 +432,26 @@ static int rtc_ioport_write(void *opaque
-         else
-         {
-             /* if disabling set mode, update the time */
--            if ( s->hw.cmos_data[RTC_REG_B] & RTC_SET )
-+            if ( orig & RTC_SET )
-                 rtc_set_time(s);
-         }
--        /* if the interrupt is already set when the interrupt become
--         * enabled, raise an interrupt immediately*/
--        if ((data & RTC_UIE) && !(s->hw.cmos_data[RTC_REG_B] & RTC_UIE))
--            if (s->hw.cmos_data[RTC_REG_C] & RTC_UF)
-+        /*
-+         * If the interrupt is already set when the interrupt becomes
-+         * enabled, raise an interrupt immediately.
-+         * NB: RTC_{A,P,U}IE == RTC_{A,P,U}F respectively.
-+         */
-+        for ( mask = RTC_UIE; mask <= RTC_PIE; mask <<= 1 )
-+            if ( (data & mask) && !(orig & mask) &&
-+                 (s->hw.cmos_data[RTC_REG_C] & mask) )
-             {
--                hvm_isa_irq_deassert(d, RTC_IRQ);
--                hvm_isa_irq_assert(d, RTC_IRQ);
-+                rtc_toggle_irq(s);
-+                break;
-             }
-         s->hw.cmos_data[RTC_REG_B] = data;
--        rtc_timer_update(s);
--        check_update_timer(s);
--        alarm_timer_update(s);
-+        if ( (data ^ orig) & RTC_SET )
-+            check_update_timer(s);
-+        if ( (data ^ orig) & (RTC_24H | RTC_DM_BINARY | RTC_SET) )
-+            alarm_timer_update(s);
-         break;
-     case RTC_REG_C:
-     case RTC_REG_D:
-@@ -453,7 +466,7 @@ static int rtc_ioport_write(void *opaque
- static inline int to_bcd(RTCState *s, int a)
- {
--    if ( s->hw.cmos_data[RTC_REG_B] & 0x04 )
-+    if ( s->hw.cmos_data[RTC_REG_B] & RTC_DM_BINARY )
-         return a;
-     else
-         return ((a / 10) << 4) | (a % 10);
-@@ -461,7 +474,7 @@ static inline int to_bcd(RTCState *s, in
- static inline int from_bcd(RTCState *s, int a)
- {
--    if ( s->hw.cmos_data[RTC_REG_B] & 0x04 )
-+    if ( s->hw.cmos_data[RTC_REG_B] & RTC_DM_BINARY )
-         return a;
-     else
-         return ((a >> 4) * 10) + (a & 0x0f);
-@@ -469,12 +482,14 @@ static inline int from_bcd(RTCState *s, 
- /* Hours in 12 hour mode are in 1-12 range, not 0-11.
-  * So we need convert it before using it*/
--static inline int convert_hour(RTCState *s, int hour)
-+static inline int convert_hour(RTCState *s, int raw)
- {
-+    int hour = from_bcd(s, raw & 0x7f);
-+
-     if (!(s->hw.cmos_data[RTC_REG_B] & RTC_24H))
-     {
-         hour %= 12;
--        if (s->hw.cmos_data[RTC_HOURS] & 0x80)
-+        if (raw & 0x80)
-             hour += 12;
-     }
-     return hour;
-@@ -493,8 +508,7 @@ static void rtc_set_time(RTCState *s)
-     
-     tm->tm_sec = from_bcd(s, s->hw.cmos_data[RTC_SECONDS]);
-     tm->tm_min = from_bcd(s, s->hw.cmos_data[RTC_MINUTES]);
--    tm->tm_hour = from_bcd(s, s->hw.cmos_data[RTC_HOURS] & 0x7f);
--    tm->tm_hour = convert_hour(s, tm->tm_hour);
-+    tm->tm_hour = convert_hour(s, s->hw.cmos_data[RTC_HOURS]);
-     tm->tm_wday = from_bcd(s, s->hw.cmos_data[RTC_DAY_OF_WEEK]);
-     tm->tm_mday = from_bcd(s, s->hw.cmos_data[RTC_DAY_OF_MONTH]);
-     tm->tm_mon = from_bcd(s, s->hw.cmos_data[RTC_MONTH]) - 1;
---- a/xen/arch/x86/hvm/vpt.c
-+++ b/xen/arch/x86/hvm/vpt.c
-@@ -22,6 +22,7 @@
- #include <asm/hvm/vpt.h>
- #include <asm/event.h>
- #include <asm/apic.h>
-+#include <asm/mc146818rtc.h>
- #define mode_is(d, name) \
-     ((d)->arch.hvm_domain.params[HVM_PARAM_TIMER_MODE] == HVMPTM_##name)
-@@ -218,6 +219,7 @@ void pt_update_irq(struct vcpu *v)
-     struct periodic_time *pt, *temp, *earliest_pt = NULL;
-     uint64_t max_lag = -1ULL;
-     int irq, is_lapic;
-+    void *pt_priv;
-     spin_lock(&v->arch.hvm_vcpu.tm_lock);
-@@ -251,13 +253,14 @@ void pt_update_irq(struct vcpu *v)
-     earliest_pt->irq_issued = 1;
-     irq = earliest_pt->irq;
-     is_lapic = (earliest_pt->source == PTSRC_lapic);
-+    pt_priv = earliest_pt->priv;
-     spin_unlock(&v->arch.hvm_vcpu.tm_lock);
-     if ( is_lapic )
--    {
-         vlapic_set_irq(vcpu_vlapic(v), irq, 0);
--    }
-+    else if ( irq == RTC_IRQ )
-+        rtc_periodic_interrupt(pt_priv);
-     else
-     {
-         hvm_isa_irq_deassert(v->domain, irq);
---- a/xen/include/asm-x86/hvm/vpt.h
-+++ b/xen/include/asm-x86/hvm/vpt.h
-@@ -181,6 +181,7 @@ void rtc_migrate_timers(struct vcpu *v);
- void rtc_deinit(struct domain *d);
- void rtc_reset(struct domain *d);
- void rtc_update_clock(struct domain *d);
-+void rtc_periodic_interrupt(void *);
- void pmtimer_init(struct vcpu *v);
- void pmtimer_deinit(struct domain *d);
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<502A3BFD0200007800094B6B@nat28.tlf.novell.com> b/test/corpus/<502A3BFD0200007800094B6B@nat28.tlf.novell.com>
deleted file mode 100644 (file)
index b489bbd..0000000
+++ /dev/null
@@ -1,85 +0,0 @@
-From xen-devel-bounces@lists.xen.org Tue Aug 14 10:56:28 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Tue, 14 Aug 2012 10:56:28 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T1DrN-0004iv-Bw
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 14 Aug 2012 10:56:28 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T1Dnf-0000sq-2X; Tue, 14 Aug 2012 09:52:35 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <JBeulich@suse.com>) id 1T1Dnc-0000sZ-Hd
-       for xen-devel@lists.xen.org; Tue, 14 Aug 2012 09:52:32 +0000
-Received: from [85.158.143.99:28316] by server-1.bemta-4.messagelabs.com id
-       D8/DD-07754-FDF1A205; Tue, 14 Aug 2012 09:52:31 +0000
-X-Env-Sender: JBeulich@suse.com
-X-Msg-Ref: server-11.tower-216.messagelabs.com!1344937951!20553639!1
-X-Originating-IP: [130.57.49.28]
-X-SpamReason: No, hits=0.0 required=7.0 tests=
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 3664 invoked from network); 14 Aug 2012 09:52:31 -0000
-Received: from nat28.tlf.novell.com (HELO nat28.tlf.novell.com) (130.57.49.28)
-       by server-11.tower-216.messagelabs.com with SMTP;
-       14 Aug 2012 09:52:31 -0000
-Received: from EMEA1-MTA by nat28.tlf.novell.com
-       with Novell_GroupWise; Tue, 14 Aug 2012 10:52:30 +0100
-Message-Id: <502A3BFD0200007800094B6B@nat28.tlf.novell.com>
-X-Mailer: Novell GroupWise Internet Agent 12.0.0 
-Date: Tue, 14 Aug 2012 10:52:29 +0100
-From: "Jan Beulich" <JBeulich@suse.com>
-To: "Ian Campbell" <Ian.Campbell@citrix.com>,
-       "xen-devel" <xen-devel@lists.xen.org>,
-       "xen-users" <xen-users@lists.xen.org>
-References: <1344935141.5926.6.camel@zakaz.uk.xensource.com>
-In-Reply-To: <1344935141.5926.6.camel@zakaz.uk.xensource.com>
-Mime-Version: 1.0
-Content-Disposition: inline
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] Xen 4.2 TODO / Release Plan
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
->>> On 14.08.12 at 11:05, Ian Campbell <Ian.Campbell@citrix.com> wrote:
->     * fix high change rate to CMOS RTC periodic interrupt causing
->       guest wall clock time to lag (possible fix outlined, needs to be
->       put in patch form and thoroughly reviewed/tested for unwanted
->       side effects, Jan Beulich)
-
-Second draft of a patch posted; no test results so far for first draft.
-
-Jan
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<502A5964.2080509@citrix.com> b/test/corpus/<502A5964.2080509@citrix.com>
deleted file mode 100644 (file)
index 0492e59..0000000
+++ /dev/null
@@ -1,150 +0,0 @@
-From xen-devel-bounces@lists.xen.org Tue Aug 14 15:02:49 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Tue, 14 Aug 2012 15:02:49 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T1Hhj-0005gT-Ob
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 14 Aug 2012 15:02:49 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T1He3-0002iq-Rm; Tue, 14 Aug 2012 13:58:55 +0000
-Received: from mail27.messagelabs.com ([193.109.254.147])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <david.vrabel@citrix.com>) id 1T1He1-0002iX-Qo
-       for xen-devel@lists.xen.org; Tue, 14 Aug 2012 13:58:54 +0000
-X-Env-Sender: david.vrabel@citrix.com
-X-Msg-Ref: server-13.tower-27.messagelabs.com!1344952678!9165396!1
-X-Originating-IP: [66.165.176.63]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyNzEyMjM=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 5468 invoked from network); 14 Aug 2012 13:58:00 -0000
-Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
-       by server-13.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
-       14 Aug 2012 13:58:00 -0000
-X-IronPort-AV: E=Sophos;i="4.77,766,1336363200"; d="scan'208";a="205116368"
-Received: from ftlpmailmx01.citrite.net ([10.13.107.65])
-       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       14 Aug 2012 09:57:57 -0400
-Received: from [10.80.2.76] (10.80.2.76) by FTLPMAILMX01.citrite.net
-       (10.13.107.65) with Microsoft SMTP Server id 8.3.213.0; Tue, 14 Aug 2012
-       09:57:57 -0400
-Message-ID: <502A5964.2080509@citrix.com>
-Date: Tue, 14 Aug 2012 14:57:56 +0100
-From: David Vrabel <david.vrabel@citrix.com>
-User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US;
-       rv:1.9.1.16) Gecko/20120428 Iceowl/1.0b1 Icedove/3.0.11
-MIME-Version: 1.0
-To: Attilio Rao <attilio.rao@citrix.com>
-References: <1344947062-4796-1-git-send-email-attilio.rao@citrix.com>
-       <1344947062-4796-3-git-send-email-attilio.rao@citrix.com>
-In-Reply-To: <1344947062-4796-3-git-send-email-attilio.rao@citrix.com>
-Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>,
-       xen-devel@lists.xen.org
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH v2 2/2] Xen: Document the semantic of the
- pagetable_reserve PVOPS
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On 14/08/12 13:24, Attilio Rao wrote:
-> The informations added on the hook are:
-> - Native behaviour
-> - Xen specific behaviour
-> - Logic behind the Xen specific behaviour
-
-These are implementation details and should be documented with the
-implementations (if necessary).
-
-> - PVOPS semantic
-
-This is the interesting stuff.
-
-This particular pvop seems a little odd really.  It might make more
-sense if it took a third parameter for pgt_buf_top.
-
-"@pagetable_reserve is used to reserve a range of PFNs used for the
-kernel direct mapping page tables and cleans-up any PFNs that ended up
-not being used for the tables.
-
-It shall reserve the range (start, end] with memblock_reserve(). It
-shall prepare PFNs in the range (end, pgt_buf_top] for general (non page
-table) use.
-
-It shall only be called in init_memory_mapping() after the direct
-mapping tables have been constructed."
-
-Having said that, I couldn't immediately see where pages in (end,
-pgt_buf_top] was getting set RO.  Can you point me to where it's done?
-
-David
-
-> Signed-off-by: Attilio Rao <attilio.rao@citrix.com>
-> ---
->  arch/x86/include/asm/x86_init.h |   19 +++++++++++++++++--
->  1 files changed, 17 insertions(+), 2 deletions(-)
-> 
-> diff --git a/arch/x86/include/asm/x86_init.h b/arch/x86/include/asm/x86_init.h
-> index 38155f6..b22093c 100644
-> --- a/arch/x86/include/asm/x86_init.h
-> +++ b/arch/x86/include/asm/x86_init.h
-> @@ -72,8 +72,23 @@ struct x86_init_oem {
->   * struct x86_init_mapping - platform specific initial kernel pagetable setup
->   * @pagetable_reserve:      reserve a range of addresses for kernel pagetable usage
->   *
-> - * For more details on the purpose of this hook, look in
-> - * init_memory_mapping and the commit that added it.
-> + * It does reserve a range of pages, to be used as pagetable pages.
-> + * The start and end parameters are expected to be contained in the
-> + * [pgt_buf_start, pgt_buf_top] range.
-> + * The native implementation reserves the pages via the memblock_reserve()
-> + * interface.
-> + * The Xen implementation, besides reserving the range via memblock_reserve(),
-> + * also sets RW the remaining pages contained in the ranges
-> + * [pgt_buf_start, start) and [end, pgt_buf_top).
-> + * This is needed because the range [pgt_buf_start, pgt_buf_top] was
-> + * previously mapped read-only by xen_set_pte_init: when running
-> + * on Xen all the pagetable pages need to be mapped read-only in order to
-> + * avoid protection faults from the hypervisor. However, once the correct
-> + * amount of pages is reserved for the pagetables, all the others contained
-> + * in the range must be set to RW so that they can be correctly recycled by
-> + * the VM subsystem.
-> + * This operation is meant to be performed only during init_memory_mapping(),
-> + * just after space for the kernel direct mapping tables is found.
->   */
->  struct x86_init_mapping {
->      void (*pagetable_reserve)(u64 start, u64 end);
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<502A5CD0.8000201@citrix.com> b/test/corpus/<502A5CD0.8000201@citrix.com>
deleted file mode 100644 (file)
index a98951b..0000000
+++ /dev/null
@@ -1,134 +0,0 @@
-From xen-devel-bounces@lists.xen.org Tue Aug 14 15:28:47 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Tue, 14 Aug 2012 15:28:47 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T1I6t-0005rs-Ex
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 14 Aug 2012 15:28:47 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T1I39-0003k2-N0; Tue, 14 Aug 2012 14:24:51 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <attilio.rao@citrix.com>) id 1T1I37-0003jt-3t
-       for xen-devel@lists.xen.org; Tue, 14 Aug 2012 14:24:49 +0000
-Received: from [85.158.138.51:15595] by server-3.bemta-3.messagelabs.com id
-       D2/D5-13809-0BF5A205; Tue, 14 Aug 2012 14:24:48 +0000
-X-Env-Sender: attilio.rao@citrix.com
-X-Msg-Ref: server-15.tower-174.messagelabs.com!1344954287!26464626!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDkwNzc=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 18770 invoked from network); 14 Aug 2012 14:24:47 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-15.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
-       14 Aug 2012 14:24:47 -0000
-X-IronPort-AV: E=Sophos;i="4.77,766,1336348800"; d="scan'208";a="14005084"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       14 Aug 2012 14:24:47 +0000
-Received: from [10.80.3.221] (10.80.3.221) by LONPMAILMX01.citrite.net
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0;
-       Tue, 14 Aug 2012 15:24:47 +0100
-Message-ID: <502A5CD0.8000201@citrix.com>
-Date: Tue, 14 Aug 2012 15:12:32 +0100
-From: Attilio Rao <attilio.rao@citrix.com>
-User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US;
-       rv:1.9.1.16) Gecko/20111110 Icedove/3.0.11
-MIME-Version: 1.0
-To: David Vrabel <david.vrabel@citrix.com>
-References: <1344947062-4796-1-git-send-email-attilio.rao@citrix.com>
-       <1344947062-4796-3-git-send-email-attilio.rao@citrix.com>
-       <502A5964.2080509@citrix.com>
-In-Reply-To: <502A5964.2080509@citrix.com>
-Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Transfer-Encoding: 7bit
-Content-Type: text/plain; charset="us-ascii"; Format="flowed"
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH v2 2/2] Xen: Document the semantic of the
- pagetable_reserve PVOPS
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On 14/08/12 14:57, David Vrabel wrote:
-> On 14/08/12 13:24, Attilio Rao wrote:
->    
->> The informations added on the hook are:
->> - Native behaviour
->> - Xen specific behaviour
->> - Logic behind the Xen specific behaviour
->>      
-> These are implementation details and should be documented with the
-> implementations (if necessary).
->    
-
-In this specific case, implementation details are very valuable to 
-understand the semantic of operations, this is why I added them there. I 
-think, at least for this case, this is the best trade-off.
-
->> - PVOPS semantic
->>      
-> This is the interesting stuff.
->
-> This particular pvop seems a little odd really.  It might make more
-> sense if it took a third parameter for pgt_buf_top.
->    
-
-The thing is that this work (documenting PVOPS) should help in 
-understanding the logic behind some PVOPS and possibly improve/rework 
-them. For this stage, I agreed with Konrad to keep the changes as small 
-as possible. Once the documentation about the semantic is in place we 
-can think about ways to improve things more effectively (for example, in 
-some cases we may want to rewrite the PVOP completely).
-
-> "@pagetable_reserve is used to reserve a range of PFNs used for the
-> kernel direct mapping page tables and cleans-up any PFNs that ended up
-> not being used for the tables.
->
-> It shall reserve the range (start, end] with memblock_reserve(). It
-> shall prepare PFNs in the range (end, pgt_buf_top] for general (non page
-> table) use.
->
-> It shall only be called in init_memory_mapping() after the direct
-> mapping tables have been constructed."
->
-> Having said that, I couldn't immediately see where pages in (end,
-> pgt_buf_top] was getting set RO.  Can you point me to where it's done?
->    
-
-As mentioned in the comment, please look at xen_set_pte_init().
-
-Attilio
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<502B85D1.8000606@citrix.com> b/test/corpus/<502B85D1.8000606@citrix.com>
deleted file mode 100644 (file)
index 8ea4b86..0000000
+++ /dev/null
@@ -1,315 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Aug 15 12:24:19 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 15 Aug 2012 12:24:19 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T1bhw-0005vc-DW
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 15 Aug 2012 12:24:19 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T1bdg-0003dz-To; Wed, 15 Aug 2012 11:19:52 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <david.vrabel@citrix.com>) id 1T1bde-0003dt-Mv
-       for xen-devel@lists.xen.org; Wed, 15 Aug 2012 11:19:51 +0000
-Received: from [85.158.139.83:32363] by server-12.bemta-5.messagelabs.com id
-       DA/C3-22359-5D58B205; Wed, 15 Aug 2012 11:19:49 +0000
-X-Env-Sender: david.vrabel@citrix.com
-X-Msg-Ref: server-10.tower-182.messagelabs.com!1345029587!28499498!1
-X-Originating-IP: [66.165.176.63]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyNzE1NDQ=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 11324 invoked from network); 15 Aug 2012 11:19:49 -0000
-Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
-       by server-10.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
-       15 Aug 2012 11:19:49 -0000
-X-IronPort-AV: E=Sophos;i="4.77,772,1336363200"; d="scan'208";a="205237994"
-Received: from ftlpmailmx01.citrite.net ([10.13.107.65])
-       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       15 Aug 2012 07:19:47 -0400
-Received: from [10.80.2.76] (10.80.2.76) by FTLPMAILMX01.citrite.net
-       (10.13.107.65) with Microsoft SMTP Server id 8.3.213.0; Wed, 15 Aug 2012
-       07:19:47 -0400
-Message-ID: <502B85D1.8000606@citrix.com>
-Date: Wed, 15 Aug 2012 12:19:45 +0100
-From: David Vrabel <david.vrabel@citrix.com>
-User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US;
-       rv:1.9.1.16) Gecko/20120428 Iceowl/1.0b1 Icedove/3.0.11
-MIME-Version: 1.0
-To: Attilio Rao <attilio.rao@citrix.com>
-References: <1344947062-4796-1-git-send-email-attilio.rao@citrix.com>
-       <1344947062-4796-3-git-send-email-attilio.rao@citrix.com>
-       <502A5964.2080509@citrix.com> <502A5CD0.8000201@citrix.com>
-In-Reply-To: <502A5CD0.8000201@citrix.com>
-Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH v2 2/2] Xen: Document the semantic of the
- pagetable_reserve PVOPS
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On 14/08/12 15:12, Attilio Rao wrote:
-> On 14/08/12 14:57, David Vrabel wrote:
->> On 14/08/12 13:24, Attilio Rao wrote:
->> 
->>> The informations added on the hook are: - Native behaviour - Xen 
->>> specific behaviour - Logic behind the Xen specific behaviour
->>> 
->> These are implementation details and should be documented with the
->>  implementations (if necessary).
->> 
-> 
-> In this specific case, implementation details are very valuable to 
-> understand the semantic of operations, this is why I added them 
-> there. I think, at least for this case, this is the best trade-off.
-
-Documenting the implementation details will be useful for reviewing or
-refactoring the pv-ops but I don't think it useful in the longer term
-for it to be included in the API documentation upstream.
-
->>> - PVOPS semantic
->>> 
->> This is the interesting stuff.
->> 
->> This particular pvop seems a little odd really.  It might make more
->> sense if it took a third parameter for pgt_buf_top.
-> 
-> The thing is that this work (documenting PVOPS) should help in 
-> understanding the logic behind some PVOPS and possibly
-> improve/rework them. For this stage, I agreed with Konrad to keep the
-> changes as small as possible. Once the documentation about the
-> semantic is in place we can think about ways to improve things more
-> effectively (for example, in some cases we may want to rewrite the
-> PVOP completely).
-
-After looking at it some more, I think this pv-ops is unnecessary. How
-about the following patch to just remove it completely?
-
-I've only smoke-tested 32-bit and 64-bit dom0 but I think the reasoning
-is sound.
-
->> "@pagetable_reserve is used to reserve a range of PFNs used for the
->> kernel direct mapping page tables and cleans-up any PFNs that ended
->> up not being used for the tables.
->> 
->> It shall reserve the range (start, end] with memblock_reserve(). It
->> shall prepare PFNs in the range (end, pgt_buf_top] for general (non
->> page table) use.
->> 
->> It shall only be called in init_memory_mapping() after the direct 
->> mapping tables have been constructed."
->> 
->> Having said that, I couldn't immediately see where pages in (end, 
->> pgt_buf_top] was getting set RO.  Can you point me to where it's 
->> done?
->> 
-> 
-> As mentioned in the comment, please look at xen_set_pte_init().
-
-xen_set_pte_init() only ensures it doesn't set the PTE as writable if it
-is already present and read-only.
-
-David
-
-8<----------------------
-x86: remove x86_init.mapping.pagetable_reserve paravirt op
-
-The x86_init.mapping.pagetable_reserve paravirt op is used for Xen
-guests to set the writable flag for the mapping of (pgt_buf_end,
-pgt_buf_top].  This is not necessary as these pages are never set as
-read-only as they have never contained page tables.
-
-When running as a Xen guest, the initial page tables are provided by
-Xen (these are reserved with memblock_reserve() in
-xen_setup_kernel_pagetable()) and constructed in brk space (for 32-bit
-guests) or in the kernel's .data section (for 64-bit guests, see
-head_64.S).
-
-Since these are all marked as reserved, (pgt_buf_start, pgt_buf_top]
-does not overlap with them and the mappings for these PFNs will be
-read-write.
-
-Since Xen doesn't need to change the mapping its implementation
-becomes the same as a native and we can simply remove this pv-op
-completely.
-
-Signed-off-by: David Vrabel <david.vrabel@citrix.com>
----
- arch/x86/include/asm/pgtable_types.h |    1 -
- arch/x86/include/asm/x86_init.h      |   12 ------------
- arch/x86/kernel/x86_init.c           |    4 ----
- arch/x86/mm/init.c                   |   22 +++-------------------
- arch/x86/xen/mmu.c                   |   19 ++-----------------
- 5 files changed, 5 insertions(+), 53 deletions(-)
-
-diff --git a/arch/x86/include/asm/pgtable_types.h b/arch/x86/include/asm/pgtable_types.h
-index 013286a..0a11293 100644
---- a/arch/x86/include/asm/pgtable_types.h
-+++ b/arch/x86/include/asm/pgtable_types.h
-@@ -301,7 +301,6 @@ int phys_mem_access_prot_allowed(struct file *file, unsigned long pfn,
- /* Install a pte for a particular vaddr in kernel space. */
- void set_pte_vaddr(unsigned long vaddr, pte_t pte);
--extern void native_pagetable_reserve(u64 start, u64 end);
- #ifdef CONFIG_X86_32
- extern void native_pagetable_setup_start(pgd_t *base);
- extern void native_pagetable_setup_done(pgd_t *base);
-diff --git a/arch/x86/include/asm/x86_init.h b/arch/x86/include/asm/x86_init.h
-index 38155f6..b527dd4 100644
---- a/arch/x86/include/asm/x86_init.h
-+++ b/arch/x86/include/asm/x86_init.h
-@@ -69,17 +69,6 @@ struct x86_init_oem {
- };
- /**
-- * struct x86_init_mapping - platform specific initial kernel pagetable setup
-- * @pagetable_reserve:        reserve a range of addresses for kernel pagetable usage
-- *
-- * For more details on the purpose of this hook, look in
-- * init_memory_mapping and the commit that added it.
-- */
--struct x86_init_mapping {
--      void (*pagetable_reserve)(u64 start, u64 end);
--};
--
--/**
-  * struct x86_init_paging - platform specific paging functions
-  * @pagetable_setup_start:    platform specific pre paging_init() call
-  * @pagetable_setup_done:     platform specific post paging_init() call
-@@ -135,7 +124,6 @@ struct x86_init_ops {
-       struct x86_init_mpparse         mpparse;
-       struct x86_init_irqs            irqs;
-       struct x86_init_oem             oem;
--      struct x86_init_mapping         mapping;
-       struct x86_init_paging          paging;
-       struct x86_init_timers          timers;
-       struct x86_init_iommu           iommu;
-diff --git a/arch/x86/kernel/x86_init.c b/arch/x86/kernel/x86_init.c
-index 9f3167e..040c05f 100644
---- a/arch/x86/kernel/x86_init.c
-+++ b/arch/x86/kernel/x86_init.c
-@@ -63,10 +63,6 @@ struct x86_init_ops x86_init __initdata = {
-               .banner                 = default_banner,
-       },
--      .mapping = {
--              .pagetable_reserve              = native_pagetable_reserve,
--      },
--
-       .paging = {
-               .pagetable_setup_start  = native_pagetable_setup_start,
-               .pagetable_setup_done   = native_pagetable_setup_done,
-diff --git a/arch/x86/mm/init.c b/arch/x86/mm/init.c
-index e0e6990..c449873 100644
---- a/arch/x86/mm/init.c
-+++ b/arch/x86/mm/init.c
-@@ -90,11 +90,6 @@ static void __init find_early_table_space(struct map_range *mr, unsigned long en
-               (pgt_buf_top << PAGE_SHIFT) - 1);
- }
--void __init native_pagetable_reserve(u64 start, u64 end)
--{
--      memblock_reserve(start, end - start);
--}
--
- #ifdef CONFIG_X86_32
- #define NR_RANGE_MR 3
- #else /* CONFIG_X86_64 */
-@@ -283,22 +278,11 @@ unsigned long __init_refok init_memory_mapping(unsigned long start,
-       /*
-        * Reserve the kernel pagetable pages we used (pgt_buf_start -
--       * pgt_buf_end) and free the other ones (pgt_buf_end - pgt_buf_top)
--       * so that they can be reused for other purposes.
--       *
--       * On native it just means calling memblock_reserve, on Xen it also
--       * means marking RW the pagetable pages that we allocated before
--       * but that haven't been used.
--       *
--       * In fact on xen we mark RO the whole range pgt_buf_start -
--       * pgt_buf_top, because we have to make sure that when
--       * init_memory_mapping reaches the pagetable pages area, it maps
--       * RO all the pagetable pages, including the ones that are beyond
--       * pgt_buf_end at that time.
-+       * pgt_buf_end).
-        */
-       if (!after_bootmem && pgt_buf_end > pgt_buf_start)
--              x86_init.mapping.pagetable_reserve(PFN_PHYS(pgt_buf_start),
--                              PFN_PHYS(pgt_buf_end));
-+              memblock_reserve(PFN_PHYS(pgt_buf_start),
-+                               PFN_PHYS(pgt_buf_end) - PFN_PHYS(pgt_buf_start));
-       if (!after_bootmem)
-               early_memtest(start, end);
-diff --git a/arch/x86/xen/mmu.c b/arch/x86/xen/mmu.c
-index b65a761..e55dfc0 100644
---- a/arch/x86/xen/mmu.c
-+++ b/arch/x86/xen/mmu.c
-@@ -1178,20 +1178,6 @@ static void __init xen_pagetable_setup_start(pgd_t *base)
- {
- }
--static __init void xen_mapping_pagetable_reserve(u64 start, u64 end)
--{
--      /* reserve the range used */
--      native_pagetable_reserve(start, end);
--
--      /* set as RW the rest */
--      printk(KERN_DEBUG "xen: setting RW the range %llx - %llx\n", end,
--                      PFN_PHYS(pgt_buf_top));
--      while (end < PFN_PHYS(pgt_buf_top)) {
--              make_lowmem_page_readwrite(__va(end));
--              end += PAGE_SIZE;
--      }
--}
--
- static void xen_post_allocator_init(void);
- static void __init xen_pagetable_setup_done(pgd_t *base)
-@@ -2067,7 +2053,6 @@ static const struct pv_mmu_ops xen_mmu_ops __initconst = {
- void __init xen_init_mmu_ops(void)
- {
--      x86_init.mapping.pagetable_reserve = xen_mapping_pagetable_reserve;
-       x86_init.paging.pagetable_setup_start = xen_pagetable_setup_start;
-       x86_init.paging.pagetable_setup_done = xen_pagetable_setup_done;
-       pv_mmu_ops = xen_mmu_ops;
--- 
-1.7.2.5
-
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<502BD5C302000078000952AD@nat28.tlf.novell.com> b/test/corpus/<502BD5C302000078000952AD@nat28.tlf.novell.com>
deleted file mode 100644 (file)
index de5b9da..0000000
+++ /dev/null
@@ -1,127 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Aug 15 16:03:47 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 15 Aug 2012 16:03:47 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T1f8K-0006hv-KN
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 15 Aug 2012 16:03:47 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T1f4w-00085h-7R; Wed, 15 Aug 2012 15:00:14 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <JBeulich@suse.com>) id 1T1f4u-00085a-Sr
-       for xen-devel@lists.xen.org; Wed, 15 Aug 2012 15:00:13 +0000
-Received: from [85.158.138.51:47300] by server-12.bemta-3.messagelabs.com id
-       DA/67-04073-C79BB205; Wed, 15 Aug 2012 15:00:12 +0000
-X-Env-Sender: JBeulich@suse.com
-X-Msg-Ref: server-13.tower-174.messagelabs.com!1345042811!9749670!1
-X-Originating-IP: [130.57.49.28]
-X-SpamReason: No, hits=0.3 required=7.0 tests=MAILTO_TO_SPAM_ADDR
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 15772 invoked from network); 15 Aug 2012 15:00:11 -0000
-Received: from nat28.tlf.novell.com (HELO nat28.tlf.novell.com) (130.57.49.28)
-       by server-13.tower-174.messagelabs.com with SMTP;
-       15 Aug 2012 15:00:11 -0000
-Received: from EMEA1-MTA by nat28.tlf.novell.com
-       with Novell_GroupWise; Wed, 15 Aug 2012 16:00:11 +0100
-Message-Id: <502BD5C302000078000952AD@nat28.tlf.novell.com>
-X-Mailer: Novell GroupWise Internet Agent 12.0.0 
-Date: Wed, 15 Aug 2012 16:00:51 +0100
-From: "Jan Beulich" <JBeulich@suse.com>
-To: "tupeng212" <tupeng212@gmail.com>
-References: <502A3BBC0200007800094B68@nat28.tlf.novell.com>
-       <2012081522045495397713@gmail.com>
-In-Reply-To: <2012081522045495397713@gmail.com>
-Mime-Version: 1.0
-Content-Disposition: inline
-Cc: Yang Z Zhang <yang.z.zhang@intel.com>, Tim Deegan <tim@xen.org>,
-       Keir Fraser <keir@xen.org>, xen-devel <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH,
- RFC v2] x86/HVM: assorted RTC emulation adjustments (was Re: Big
- Bug:Time in VM goes slower...)
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
->>> On 15.08.12 at 16:07, tupeng212 <tupeng212@gmail.com> wrote:
-> Hi, Jan:
-> I am sorry I really don't have much time to try a test of your patch, and it 
-> is not convenient
-> for me to have a try. For the version I have been using is xen4.0.x, and 
-> your patch is based on 
-> the latest version xen4.2.x.(I have never complied the unstable one), so I 
-> merged your patch to my 
-> xen4.0.x, still couldn't find the two functions below:
->  static void rtc_update_timer2(void *opaque) 
->  static void rtc_alarm_cb(void *opaque) 
-> so I didn't merge the two functions which contains a rtc_toggle_irq() .
-
-Which looks quite right for the older tree.
-
-> The results for me were these:
-> 1 In my real application environment, it worked very well in the former 
-> 5mins, much better than before,
->  but at last it lagged again. I don't know whether it belongs to the two 
-> missed functions. I lack the 
->  ability to figure them out.
-
-Unlikely.
-
-> 2 When I tested my test program which I provided days before, it worked very 
-> well, maybe the program doesn't 
-> emulate the real environment due to the same setting rate, so I modified 
-> this program as which in the attachment.
-
-Okay, so we're at least moving in the right direction.
-
-> if you are more convenient, you can help me to have a look of it.
-> And I have a opinion, because our product is based on Version Xen4.0.x, if 
-> you have enough time, can you write 
-> another patch based http://xenbits.xen.org/hg/xen-4.0-testing.hg/ for me, 
-> thank you very much!
-
-You seem to have done the right thing, so I don't see an
-immediate need.
-
-> 3 I also have a thought that can we have some detecting methods to find the 
-> lagging time earlier to adjust time
-> back to normal value in the code?
-
-For that we'd first need to understand what the reason for the
-remaining mis-behavior is.
-
-Jan
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<502BD943.8030701@citrix.com> b/test/corpus/<502BD943.8030701@citrix.com>
deleted file mode 100644 (file)
index d6a691e..0000000
+++ /dev/null
@@ -1,123 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Aug 15 18:32:25 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 15 Aug 2012 18:32:25 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T1hSA-0007QM-OK
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 15 Aug 2012 18:32:25 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T1hOG-0004G4-7n; Wed, 15 Aug 2012 17:28:20 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <attilio.rao@citrix.com>) id 1T1hOE-0004Fx-ND
-       for xen-devel@lists.xen.org; Wed, 15 Aug 2012 17:28:18 +0000
-Received: from [85.158.138.51:8203] by server-5.bemta-3.messagelabs.com id
-       25/B7-08865-13CDB205; Wed, 15 Aug 2012 17:28:17 +0000
-X-Env-Sender: attilio.rao@citrix.com
-X-Msg-Ref: server-5.tower-174.messagelabs.com!1345051697!28539899!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDkxOTE=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 10067 invoked from network); 15 Aug 2012 17:28:17 -0000
-Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-5.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
-       15 Aug 2012 17:28:17 -0000
-X-IronPort-AV: E=Sophos;i="4.77,774,1336348800"; d="scan'208";a="14024975"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       15 Aug 2012 17:28:16 +0000
-Received: from [10.80.3.221] (10.80.3.221) by LONPMAILMX01.citrite.net
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0;
-       Wed, 15 Aug 2012 18:28:16 +0100
-Message-ID: <502BD943.8030701@citrix.com>
-Date: Wed, 15 Aug 2012 18:15:47 +0100
-From: Attilio Rao <attilio.rao@citrix.com>
-User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US;
-       rv:1.9.1.16) Gecko/20111110 Icedove/3.0.11
-MIME-Version: 1.0
-To: Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-References: <1344947062-4796-1-git-send-email-attilio.rao@citrix.com>
-       <1344947062-4796-2-git-send-email-attilio.rao@citrix.com>
-       <alpine.DEB.2.02.1208151824250.2278@kaball.uk.xensource.com>
-In-Reply-To: <alpine.DEB.2.02.1208151824250.2278@kaball.uk.xensource.com>
-Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Transfer-Encoding: 7bit
-Content-Type: text/plain; charset="us-ascii"; Format="flowed"
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH v2 1/2] XEN,
- X86: Improve semantic support for pagetable_reserve PVOPS
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On 15/08/12 18:25, Stefano Stabellini wrote:
-> On Tue, 14 Aug 2012, Attilio Rao wrote:
->    
->> - Allow xen_mapping_pagetable_reserve() to handle a start different from
->>    pgt_buf_start, but still bigger than it.
->> - Add checks to xen_mapping_pagetable_reserve() and native_pagetable_reserve()
->>    for verifying start and end are contained in the range
->>    [pgt_buf_start, pgt_buf_top].
->> - In xen_mapping_pagetable_reserve(), change printk into pr_debug.
->> - In xen_mapping_pagetable_reserve(), print out diagnostic only if there is
->>    an actual need to do that (or, in other words, if there are actually some
->>    pages going to switch from RO to RW).
->>
->> Signed-off-by: Attilio Rao<attilio.rao@citrix.com>
->> ---
->>   arch/x86/mm/init.c |    4 ++++
->>   arch/x86/xen/mmu.c |   22 ++++++++++++++++++++--
->>   2 files changed, 24 insertions(+), 2 deletions(-)
->>
->> diff --git a/arch/x86/mm/init.c b/arch/x86/mm/init.c
->> index e0e6990..c5849b6 100644
->> --- a/arch/x86/mm/init.c
->> +++ b/arch/x86/mm/init.c
->> @@ -92,6 +92,10 @@ static void __init find_early_table_space(struct map_range *mr, unsigned long en
->>
->>   void __init native_pagetable_reserve(u64 start, u64 end)
->>   {
->> +   if (start<  PFN_PHYS(pgt_buf_start) || end>  PFN_PHYS(pgt_buf_top))
->> +           panic("Invalid address range: [%llu - %llu] should be a subset of [%llu - %llu]\n"
->>      
-> code style (you can check whether your patch breaks the code style with
-> scripts/checkpatch.pl)
->    
-
-I actually did before to submit, it reported 0 errors/warning.
-Do you have an handy link on where I can find a style guide for Linux 
-kernel? I tried to follow what other parts of the code do.
-
-Attilio
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<502BEEAD.7030906@citrix.com> b/test/corpus/<502BEEAD.7030906@citrix.com>
deleted file mode 100644 (file)
index 25efffd..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Aug 15 20:04:26 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 15 Aug 2012 20:04:26 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T1itD-0007fj-MH
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 15 Aug 2012 20:04:26 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T1iob-00064w-Ka; Wed, 15 Aug 2012 18:59:37 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <attilio.rao@citrix.com>) id 1T1ioZ-00064r-Mh
-       for xen-devel@lists.xen.org; Wed, 15 Aug 2012 18:59:35 +0000
-Received: from [85.158.143.99:63584] by server-2.bemta-4.messagelabs.com id
-       CC/2E-31966-691FB205; Wed, 15 Aug 2012 18:59:34 +0000
-X-Env-Sender: attilio.rao@citrix.com
-X-Msg-Ref: server-16.tower-216.messagelabs.com!1345057174!17163407!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDkxOTE=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 30900 invoked from network); 15 Aug 2012 18:59:34 -0000
-Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-16.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
-       15 Aug 2012 18:59:34 -0000
-X-IronPort-AV: E=Sophos;i="4.77,774,1336348800"; d="scan'208";a="14025892"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       15 Aug 2012 18:59:34 +0000
-Received: from [10.80.3.221] (10.80.3.221) by LONPMAILMX01.citrite.net
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0;
-       Wed, 15 Aug 2012 19:59:34 +0100
-Message-ID: <502BEEAD.7030906@citrix.com>
-Date: Wed, 15 Aug 2012 19:47:09 +0100
-From: Attilio Rao <attilio.rao@citrix.com>
-User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US;
-       rv:1.9.1.16) Gecko/20111110 Icedove/3.0.11
-MIME-Version: 1.0
-To: Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-References: <1344947062-4796-1-git-send-email-attilio.rao@citrix.com>
-       <1344947062-4796-2-git-send-email-attilio.rao@citrix.com>
-       <alpine.DEB.2.02.1208151824250.2278@kaball.uk.xensource.com>
-       <502BD943.8030701@citrix.com>
-       <alpine.DEB.2.02.1208151844230.2278@kaball.uk.xensource.com>
-In-Reply-To: <alpine.DEB.2.02.1208151844230.2278@kaball.uk.xensource.com>
-Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Transfer-Encoding: 7bit
-Content-Type: text/plain; charset="us-ascii"; Format="flowed"
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH v2 1/2] XEN,
- X86: Improve semantic support for pagetable_reserve PVOPS
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On 15/08/12 18:46, Stefano Stabellini wrote:
-> On Wed, 15 Aug 2012, Attilio Rao wrote:
->    
->> On 15/08/12 18:25, Stefano Stabellini wrote:
->>      
->>> On Tue, 14 Aug 2012, Attilio Rao wrote:
->>>
->>>        
->>>> - Allow xen_mapping_pagetable_reserve() to handle a start different from
->>>>     pgt_buf_start, but still bigger than it.
->>>> - Add checks to xen_mapping_pagetable_reserve() and native_pagetable_reserve()
->>>>     for verifying start and end are contained in the range
->>>>     [pgt_buf_start, pgt_buf_top].
->>>> - In xen_mapping_pagetable_reserve(), change printk into pr_debug.
->>>> - In xen_mapping_pagetable_reserve(), print out diagnostic only if there is
->>>>     an actual need to do that (or, in other words, if there are actually some
->>>>     pages going to switch from RO to RW).
->>>>
->>>> Signed-off-by: Attilio Rao<attilio.rao@citrix.com>
->>>> ---
->>>>    arch/x86/mm/init.c |    4 ++++
->>>>    arch/x86/xen/mmu.c |   22 ++++++++++++++++++++--
->>>>    2 files changed, 24 insertions(+), 2 deletions(-)
->>>>
->>>> diff --git a/arch/x86/mm/init.c b/arch/x86/mm/init.c
->>>> index e0e6990..c5849b6 100644
->>>> --- a/arch/x86/mm/init.c
->>>> +++ b/arch/x86/mm/init.c
->>>> @@ -92,6 +92,10 @@ static void __init find_early_table_space(struct map_range *mr, unsigned long en
->>>>
->>>>    void __init native_pagetable_reserve(u64 start, u64 end)
->>>>    {
->>>> + if (start<   PFN_PHYS(pgt_buf_start) || end>   PFN_PHYS(pgt_buf_top))
->>>> +         panic("Invalid address range: [%llu - %llu] should be a subset of [%llu - %llu]\n"
->>>>
->>>>          
->>> code style (you can check whether your patch breaks the code style with
->>> scripts/checkpatch.pl)
->>>
->>>        
->> I actually did before to submit, it reported 0 errors/warning.
->>      
-> strange, that really looks like a line over 80 chars
->
->    
-
-Actually code style explicitely says to not break strings because they 
-want to retain the ability to grep. In FreeBSD this is the same and I 
-think this is why checkpatch doesn't whine. I don't think there is a bug 
-here.
-
-Can I submit the patch as it is, then?
-
-Attilio
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<502BEF5E.1080105@citrix.com> b/test/corpus/<502BEF5E.1080105@citrix.com>
deleted file mode 100644 (file)
index f6f2af9..0000000
+++ /dev/null
@@ -1,143 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Aug 15 20:08:00 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 15 Aug 2012 20:08:00 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T1iwg-0007gJ-BD
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 15 Aug 2012 20:08:00 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T1is9-0006Eq-A8; Wed, 15 Aug 2012 19:03:17 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <attilio.rao@citrix.com>) id 1T1is7-0006Ej-Ej
-       for xen-devel@lists.xen.org; Wed, 15 Aug 2012 19:03:15 +0000
-Received: from [85.158.143.99:12990] by server-2.bemta-4.messagelabs.com id
-       97/60-31966-272FB205; Wed, 15 Aug 2012 19:03:14 +0000
-X-Env-Sender: attilio.rao@citrix.com
-X-Msg-Ref: server-15.tower-216.messagelabs.com!1345057394!28345233!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDkxOTE=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 23390 invoked from network); 15 Aug 2012 19:03:14 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-15.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
-       15 Aug 2012 19:03:14 -0000
-X-IronPort-AV: E=Sophos;i="4.77,774,1336348800"; d="scan'208";a="14025933"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       15 Aug 2012 19:02:31 +0000
-Received: from [10.80.3.221] (10.80.3.221) by LONPMAILMX01.citrite.net
-       (10.30.203.162) with Microsoft SMTP Server id 8.3.213.0;
-       Wed, 15 Aug 2012 20:02:31 +0100
-Message-ID: <502BEF5E.1080105@citrix.com>
-Date: Wed, 15 Aug 2012 19:50:06 +0100
-From: Attilio Rao <attilio.rao@citrix.com>
-User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US;
-       rv:1.9.1.16) Gecko/20111110 Icedove/3.0.11
-MIME-Version: 1.0
-To: Ian Campbell <Ian.Campbell@citrix.com>
-References: <1344947062-4796-1-git-send-email-attilio.rao@citrix.com>  
-       <1344947062-4796-2-git-send-email-attilio.rao@citrix.com>       
-       <alpine.DEB.2.02.1208151824250.2278@kaball.uk.xensource.com>    
-       <502BD943.8030701@citrix.com>   
-       <alpine.DEB.2.02.1208151844230.2278@kaball.uk.xensource.com>
-       <1345056190.12434.34.camel@dagon.hellion.org.uk>
-In-Reply-To: <1345056190.12434.34.camel@dagon.hellion.org.uk>
-Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
-       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Transfer-Encoding: 7bit
-Content-Type: text/plain; charset="us-ascii"; Format="flowed"
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH v2 1/2] XEN,
- X86: Improve semantic support for pagetable_reserve PVOPS
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On 15/08/12 19:43, Ian Campbell wrote:
-> On Wed, 2012-08-15 at 18:46 +0100, Stefano Stabellini wrote:
->    
->> On Wed, 15 Aug 2012, Attilio Rao wrote:
->>      
->>> On 15/08/12 18:25, Stefano Stabellini wrote:
->>>        
->>>> On Tue, 14 Aug 2012, Attilio Rao wrote:
->>>>
->>>>          
->>>>> - Allow xen_mapping_pagetable_reserve() to handle a start different from
->>>>>     pgt_buf_start, but still bigger than it.
->>>>> - Add checks to xen_mapping_pagetable_reserve() and native_pagetable_reserve()
->>>>>     for verifying start and end are contained in the range
->>>>>     [pgt_buf_start, pgt_buf_top].
->>>>> - In xen_mapping_pagetable_reserve(), change printk into pr_debug.
->>>>> - In xen_mapping_pagetable_reserve(), print out diagnostic only if there is
->>>>>     an actual need to do that (or, in other words, if there are actually some
->>>>>     pages going to switch from RO to RW).
->>>>>
->>>>> Signed-off-by: Attilio Rao<attilio.rao@citrix.com>
->>>>> ---
->>>>>    arch/x86/mm/init.c |    4 ++++
->>>>>    arch/x86/xen/mmu.c |   22 ++++++++++++++++++++--
->>>>>    2 files changed, 24 insertions(+), 2 deletions(-)
->>>>>
->>>>> diff --git a/arch/x86/mm/init.c b/arch/x86/mm/init.c
->>>>> index e0e6990..c5849b6 100644
->>>>> --- a/arch/x86/mm/init.c
->>>>> +++ b/arch/x86/mm/init.c
->>>>> @@ -92,6 +92,10 @@ static void __init find_early_table_space(struct map_range *mr, unsigned long en
->>>>>
->>>>>    void __init native_pagetable_reserve(u64 start, u64 end)
->>>>>    {
->>>>> +        if (start<   PFN_PHYS(pgt_buf_start) || end>   PFN_PHYS(pgt_buf_top))
->>>>> +                panic("Invalid address range: [%llu - %llu] should be a subset of [%llu - %llu]\n"
->>>>>
->>>>>            
->>>> code style (you can check whether your patch breaks the code style with
->>>> scripts/checkpatch.pl)
->>>>
->>>>          
->>> I actually did before to submit, it reported 0 errors/warning.
->>>        
->> strange, that really looks like a line over 80 chars
->>      
-> Also there should be one space either side of the "<" and">" in the
-> conditional.
->
->    
-
-I have no idea why they are reported like that, but in the original 
-patch the space is fine.
-
-Attilio
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<502BF563.8010902@citrix.com> b/test/corpus/<502BF563.8010902@citrix.com>
deleted file mode 100644 (file)
index 600b7cc..0000000
+++ /dev/null
@@ -1,201 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Aug 15 20:20:31 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 15 Aug 2012 20:20:31 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T1j8l-0007kb-K2
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 15 Aug 2012 20:20:31 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T1j4O-0006Qt-Gw; Wed, 15 Aug 2012 19:15:56 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <david.vrabel@citrix.com>) id 1T1j4N-0006Qo-3p
-       for xen-devel@lists.xen.org; Wed, 15 Aug 2012 19:15:55 +0000
-Received: from [85.158.139.83:35524] by server-12.bemta-5.messagelabs.com id
-       E9/11-22359-A65FB205; Wed, 15 Aug 2012 19:15:54 +0000
-X-Env-Sender: david.vrabel@citrix.com
-X-Msg-Ref: server-15.tower-182.messagelabs.com!1345058150!28237961!1
-X-Originating-IP: [66.165.176.89]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNjQwMTk=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 3557 invoked from network); 15 Aug 2012 19:15:52 -0000
-Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
-       by server-15.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
-       15 Aug 2012 19:15:52 -0000
-X-IronPort-AV: E=Sophos;i="4.77,774,1336363200"; d="scan'208";a="34767090"
-Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
-       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       15 Aug 2012 15:15:49 -0400
-Received: from [10.80.2.76] (10.80.2.76) by FTLPMAILMX02.citrite.net
-       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0; Wed, 15 Aug 2012
-       15:15:49 -0400
-Message-ID: <502BF563.8010902@citrix.com>
-Date: Wed, 15 Aug 2012 20:15:47 +0100
-From: David Vrabel <david.vrabel@citrix.com>
-User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US;
-       rv:1.9.1.16) Gecko/20120428 Iceowl/1.0b1 Icedove/3.0.11
-MIME-Version: 1.0
-To: Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-References: <1344947062-4796-1-git-send-email-attilio.rao@citrix.com>
-       <1344947062-4796-3-git-send-email-attilio.rao@citrix.com>
-       <502A5964.2080509@citrix.com> <502A5CD0.8000201@citrix.com>
-       <502B85D1.8000606@citrix.com>
-       <alpine.DEB.2.02.1208151418380.2278@kaball.uk.xensource.com>
-In-Reply-To: <alpine.DEB.2.02.1208151418380.2278@kaball.uk.xensource.com>
-Cc: Attilio Rao <attilio.rao@citrix.com>,
-       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH v2 2/2] Xen: Document the semantic of the
- pagetable_reserve PVOPS
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On 15/08/12 14:55, Stefano Stabellini wrote:
-> On Wed, 15 Aug 2012, David Vrabel wrote:
->> On 14/08/12 15:12, Attilio Rao wrote:
->>> On 14/08/12 14:57, David Vrabel wrote:
->>>> On 14/08/12 13:24, Attilio Rao wrote:
->> After looking at it some more, I think this pv-ops is unnecessary. How
->> about the following patch to just remove it completely?
->>
->> I've only smoke-tested 32-bit and 64-bit dom0 but I think the reasoning
->> is sound.
-> 
-> Do you have more then 4G to dom0 on those boxes?
-
-I've tested with 6G now, both 64-bit and 32-bit with HIGHPTE.
-
-> It certainly fixed a serious crash at the time it was introduced, see
-> http://marc.info/?l=linux-kernel&m=129901609503574 and
-> http://marc.info/?l=linux-kernel&m=130133909408229. Unless something big
-> changed in kernel_physical_mapping_init, I think we still need it.
-> Depending on the e820 of your test box, the kernel could crash (or not),
-> possibly in different places.
->
->>>> Having said that, I couldn't immediately see where pages in (end, 
->>>> pgt_buf_top] was getting set RO.  Can you point me to where it's 
->>>> done?
->>>>
->>>
->>> As mentioned in the comment, please look at xen_set_pte_init().
->>
->> xen_set_pte_init() only ensures it doesn't set the PTE as writable if it
->> is already present and read-only.
-> 
-> look at mask_rw_pte and read the threads linked above, unfortunately it
-> is not that simple.
-
-Yes, I was remembering what 32-bit did here.
-
-The 64-bit version is a bit confused and it often ends up /not/ clearing
-RW for the direct mapping of the pages in the pgt_buf because any
-existing RW mappings will be used as-is.  See phys_pte_init() which
-checks for an existing mapping and only sets the PTE if it is not
-already set.
-
-pgd_populate(), pud_populate(), and pmd_populate() take care of clearing
-RW for the newly allocated page table pages, so mask_rw_pte() only needs
-to consider clearing RW for mappings of the the existing page table PFNs
-which all lie outside the range (pt_buf_start, pt_buf_top].
-
-This patch makes it more sensible, and makes removal of the pv-op safe
-if pgt_buf lies outside the initial mapping.
-
-index 04c1f61..2fd5e86 100644
---- a/arch/x86/xen/mmu.c
-+++ b/arch/x86/xen/mmu.c
-@@ -1400,14 +1400,13 @@ static pte_t __init mask_rw_pte(pte_t *ptep,
-pte_t pte)
-       unsigned long pfn = pte_pfn(pte);
-
-       /*
--       * If the new pfn is within the range of the newly allocated
--       * kernel pagetable, and it isn't being mapped into an
--       * early_ioremap fixmap slot as a freshly allocated page, make sure
--       * it is RO.
-+       * If this is a PTE of an early_ioremap fixmap slot but
-+       * outside the range (pgt_buf_start, pgt_buf_top], then this
-+       * PTE is mapping a PFN in the current page table.  Make
-+       * sure it is RO.
-        */
--      if (((!is_early_ioremap_ptep(ptep) &&
--                      pfn >= pgt_buf_start && pfn < pgt_buf_top)) ||
--                      (is_early_ioremap_ptep(ptep) && pfn != (pgt_buf_end - 1)))
-+      if (is_early_ioremap_ptep(ptep)
-+          && (pfn < pgt_buf_start || pfn >= pgt_buf_top))
-               pte = pte_wrprotect(pte);
-
-       return pte;
-
-
->> 8<----------------------
->> x86: remove x86_init.mapping.pagetable_reserve paravirt op
->>
->> The x86_init.mapping.pagetable_reserve paravirt op is used for Xen
->> guests to set the writable flag for the mapping of (pgt_buf_end,
->> pgt_buf_top].  This is not necessary as these pages are never set as
->> read-only as they have never contained page tables.
-> 
-> Is this actually true? It is possible when pagetable pages are
-> allocated by alloc_low_page.
-
-These newly allocated page table pages will be set read-only when they
-are linked into the page tables with pgd_populate(), pud_populate() and
-friends.
-
->> When running as a Xen guest, the initial page tables are provided by
->> Xen (these are reserved with memblock_reserve() in
->> xen_setup_kernel_pagetable()) and constructed in brk space (for 32-bit
->> guests) or in the kernel's .data section (for 64-bit guests, see
->> head_64.S).
->>
->> Since these are all marked as reserved, (pgt_buf_start, pgt_buf_top]
->> does not overlap with them and the mappings for these PFNs will be
->> read-write.
-> 
-> We are talking about pagetable pages built by
-> kernel_physical_mapping_init.
-> 
-> 
->> Since Xen doesn't need to change the mapping its implementation
->> becomes the same as a native and we can simply remove this pv-op
->> completely.
-> 
-> I don't think so.
-
-David
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<502CC9D702000078000955B9@nat28.tlf.novell.com> b/test/corpus/<502CC9D702000078000955B9@nat28.tlf.novell.com>
deleted file mode 100644 (file)
index 965d317..0000000
+++ /dev/null
@@ -1,94 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Aug 16 09:26:00 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 16 Aug 2012 09:26:00 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T1vOw-00064s-5y
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 16 Aug 2012 09:26:00 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T1vKl-0002o9-Kk; Thu, 16 Aug 2012 08:21:39 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <JBeulich@suse.com>) id 1T1vKk-0002o4-0E
-       for xen-devel@lists.xen.org; Thu, 16 Aug 2012 08:21:38 +0000
-Received: from [85.158.139.83:4566] by server-11.bemta-5.messagelabs.com id
-       4E/79-29296-19DAC205; Thu, 16 Aug 2012 08:21:37 +0000
-X-Env-Sender: JBeulich@suse.com
-X-Msg-Ref: server-14.tower-182.messagelabs.com!1345105296!24148334!1
-X-Originating-IP: [130.57.49.28]
-X-SpamReason: No, hits=0.8 required=7.0 tests=BODY_RANDOM_LONG,
-       MAILTO_TO_SPAM_ADDR
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 26151 invoked from network); 16 Aug 2012 08:21:36 -0000
-Received: from nat28.tlf.novell.com (HELO nat28.tlf.novell.com) (130.57.49.28)
-       by server-14.tower-182.messagelabs.com with SMTP;
-       16 Aug 2012 08:21:36 -0000
-Received: from EMEA1-MTA by nat28.tlf.novell.com
-       with Novell_GroupWise; Thu, 16 Aug 2012 09:21:35 +0100
-Message-Id: <502CC9D702000078000955B9@nat28.tlf.novell.com>
-X-Mailer: Novell GroupWise Internet Agent 12.0.0 
-Date: Thu, 16 Aug 2012 09:22:15 +0100
-From: "Jan Beulich" <JBeulich@suse.com>
-To: "tupeng212" <tupeng212@gmail.com>
-References: <502A3BBC0200007800094B68@nat28.tlf.novell.com>,
-       <2012081522045495397713@gmail.com> <2012081522121039050717@gmail.com>
-In-Reply-To: <2012081522121039050717@gmail.com>
-Mime-Version: 1.0
-Content-Disposition: inline
-Cc: Yang Z Zhang <yang.z.zhang@intel.com>, Tim Deegan <tim@xen.org>,
-       Keir Fraser <keir@xen.org>, xen-devel <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH,
- RFC v2] x86/HVM: assorted RTC emulation adjustments (was Re: Big
- Bug:Time in VM goes slower...)
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
->>> On 15.08.12 at 16:12, tupeng212 <tupeng212@gmail.com> wrote:
-> The results for me were these:
-> 1 In my real application environment, it worked very well in the former 
-> 5mins, much better than before,
->  but at last it lagged again. I don't know whether it belongs to the two 
-> missed functions. I lack the 
->  ability to figure them out.
-
-Did you check whether possibly the guest kernel started flipping
-between to rate values? If so, that is something that we could
-deal with too (yet it might be a bit involved, so I'd like to avoid
-going that route if it would lead nowhere).
-
-Jan
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<502D04AA.8030107@citrix.com> b/test/corpus/<502D04AA.8030107@citrix.com>
deleted file mode 100644 (file)
index 73c3c90..0000000
+++ /dev/null
@@ -1,208 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Aug 16 15:37:25 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 16 Aug 2012 15:37:25 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T21CK-0007Ul-5U
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 16 Aug 2012 15:37:25 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T218S-0005Ot-V5; Thu, 16 Aug 2012 14:33:20 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <david.vrabel@citrix.com>) id 1T218R-0005OS-NN
-       for xen-devel@lists.xen.org; Thu, 16 Aug 2012 14:33:19 +0000
-Received: from [85.158.143.99:56022] by server-2.bemta-4.messagelabs.com id
-       B1/E2-31966-FA40D205; Thu, 16 Aug 2012 14:33:19 +0000
-X-Env-Sender: david.vrabel@citrix.com
-X-Msg-Ref: server-6.tower-216.messagelabs.com!1345127596!21493224!1
-X-Originating-IP: [66.165.176.63]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyNzE3OTY=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 8013 invoked from network); 16 Aug 2012 14:33:18 -0000
-Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
-       by server-6.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
-       16 Aug 2012 14:33:18 -0000
-X-IronPort-AV: E=Sophos;i="4.77,778,1336363200"; d="scan'208";a="205375467"
-Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
-       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       16 Aug 2012 10:33:16 -0400
-Received: from [10.80.2.76] (10.80.2.76) by FTLPMAILMX02.citrite.net
-       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0; Thu, 16 Aug 2012
-       10:33:16 -0400
-Message-ID: <502D04AA.8030107@citrix.com>
-Date: Thu, 16 Aug 2012 15:33:14 +0100
-From: David Vrabel <david.vrabel@citrix.com>
-User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US;
-       rv:1.9.1.16) Gecko/20120428 Iceowl/1.0b1 Icedove/3.0.11
-MIME-Version: 1.0
-To: Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-References: <1344947062-4796-1-git-send-email-attilio.rao@citrix.com>
-       <1344947062-4796-3-git-send-email-attilio.rao@citrix.com>
-       <502A5964.2080509@citrix.com> <502A5CD0.8000201@citrix.com>
-       <502B85D1.8000606@citrix.com>
-       <alpine.DEB.2.02.1208151418380.2278@kaball.uk.xensource.com>
-       <502BF563.8010902@citrix.com>
-       <alpine.DEB.2.02.1208161200200.2278@kaball.uk.xensource.com>
-In-Reply-To: <alpine.DEB.2.02.1208161200200.2278@kaball.uk.xensource.com>
-Cc: Attilio Rao <attilio.rao@citrix.com>,
-       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH v2 2/2] Xen: Document the semantic of the
- pagetable_reserve PVOPS
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On 16/08/12 12:07, Stefano Stabellini wrote:
-> On Wed, 15 Aug 2012, David Vrabel wrote:
->> On 15/08/12 14:55, Stefano Stabellini wrote:
->>> On Wed, 15 Aug 2012, David Vrabel wrote:
->>>> On 14/08/12 15:12, Attilio Rao wrote:
->>>>> On 14/08/12 14:57, David Vrabel wrote:
->>>>>> On 14/08/12 13:24, Attilio Rao wrote:
->>>> After looking at it some more, I think this pv-ops is unnecessary. How
->>>> about the following patch to just remove it completely?
->>>>
->>>> I've only smoke-tested 32-bit and 64-bit dom0 but I think the reasoning
->>>> is sound.
->>>
->>> Do you have more then 4G to dom0 on those boxes?
->>
->> I've tested with 6G now, both 64-bit and 32-bit with HIGHPTE.
->>
->>> It certainly fixed a serious crash at the time it was introduced, see
->>> http://marc.info/?l=linux-kernel&m=129901609503574 and
->>> http://marc.info/?l=linux-kernel&m=130133909408229. Unless something big
->>> changed in kernel_physical_mapping_init, I think we still need it.
->>> Depending on the e820 of your test box, the kernel could crash (or not),
->>> possibly in different places.
-
-FYI, it looks like pgt_buf is now located low down, which is why these
-changes worked for me.  Possibly this changed as part of a memblock
-refactor.
-
->>>>>> Having said that, I couldn't immediately see where pages in (end, 
->>>>>> pgt_buf_top] was getting set RO.  Can you point me to where it's 
->>>>>> done?
->>>>>>
->>>>>
->>>>> As mentioned in the comment, please look at xen_set_pte_init().
->>>>
->>>> xen_set_pte_init() only ensures it doesn't set the PTE as writable if it
->>>> is already present and read-only.
->>>
->>> look at mask_rw_pte and read the threads linked above, unfortunately it
->>> is not that simple.
->>
->> Yes, I was remembering what 32-bit did here.
->>
->> The 64-bit version is a bit confused and it often ends up /not/ clearing
->> RW for the direct mapping of the pages in the pgt_buf because any
->> existing RW mappings will be used as-is.  See phys_pte_init() which
->> checks for an existing mapping and only sets the PTE if it is not
->> already set.
-> 
-> not all the pagetable pages might be already mapped, even if they are
-> already hooked into the pagetable
-
-Yes, I think this is easy to handle though.
-
-    /*
-     * Make sure that active page table pages are not mapped RW.
-     */
-    if (is_early_ioremap_ptep(ptep)) {
-        /*
-         * If we're updating an early ioremap PTE, then this PFN may
-         * already be in the linear mapping.  If it is, use the
-         * existing RW bit.
-         */
-        unsigned int level;
-        pte_t *linear_pte;
-
-        linear_pte = lookup_address(__va(PFN_PHYS(pfn)), &level);
-        if (linear_pte && !pte_write(*linear_pt))
-            pte = pte_wrprotect(pte);
-    } else if (pfn >= pgt_buf_start && pfn < pgt_buf_end) {
-        /*
-         * The PFN may not be mapped but may be hooked into the page
-         * tables.  Make sure this new mapping is read-only.
-         */
-        pte = pte_wrprotect(pte);
-    }
-
-However, the real subtlety are page tables that are mapped as they
-themselves are hooked in.
-
-As as example, let's say pgt_buf_start (s) is on a 1 GiB boundary and
-pgt_buf_top (t) is below the next 2 MiB boundary.  We're mapping memory
-with 4 KiB pages from s to s + 4 MiB.  This requires a new PUD and two
-new PMDs.
-
-To map this region:
-
-1. Allocate a new PUD. (@ e = pgt_buf_end)
-
-2. Allocate a new PMD. (@ e + 1)
-
-3. Fill in this PMD's PTEs.  This covers pgt_buf so sets (s, e + 1) as RO.
-
-4. Call pmd_populate() to hook-in this PMD.  This does not set e+1 as RO
-(but this is ok as it already is).
-
-5. Allocate a new PMD  (@ e + 2)
-
-6. Fill in this PMD's PTEs.
-
-7. Call pmd_populate() to hook in this PMD.  This does not set e+2 as RO
-as the region isn't mapped yet.
-
-8. Call pud_populate() to hook in this PUD.  This sets e as RO but e + 2
-is still RW.
-
-9. Boom!
-
-It may be possible to fixup the permissions as the pages are hooked in.
- i.e., if this page's entries cover (pgt_buf_start, pgt_buf_end], walk
-the entries and any child tables and fixup the permissions of the leaf
-entries.
-
-This would walk the tables a few times unless we were careful to only
-walk them when hooking a page into an active table.
-
-It was fun trying to understand this, but I think I'll give up now...
-
-David
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<502D1C8A0200007800095851@nat28.tlf.novell.com> b/test/corpus/<502D1C8A0200007800095851@nat28.tlf.novell.com>
deleted file mode 100644 (file)
index 6143034..0000000
+++ /dev/null
@@ -1,102 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Aug 16 15:17:44 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 16 Aug 2012 15:17:44 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T20tH-0007OO-HU
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 16 Aug 2012 15:17:44 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T20qF-000407-B3; Thu, 16 Aug 2012 14:14:31 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <JBeulich@suse.com>) id 1T20qD-0003zg-Iu
-       for xen-devel@lists.xen.org; Thu, 16 Aug 2012 14:14:29 +0000
-Received: from [85.158.139.83:26155] by server-4.bemta-5.messagelabs.com id
-       F5/5D-12386-4400D205; Thu, 16 Aug 2012 14:14:28 +0000
-X-Env-Sender: JBeulich@suse.com
-X-Msg-Ref: server-14.tower-182.messagelabs.com!1345126466!24225976!1
-X-Originating-IP: [130.57.49.28]
-X-SpamReason: No, hits=0.3 required=7.0 tests=MAILTO_TO_SPAM_ADDR
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 19982 invoked from network); 16 Aug 2012 14:14:26 -0000
-Received: from nat28.tlf.novell.com (HELO nat28.tlf.novell.com) (130.57.49.28)
-       by server-14.tower-182.messagelabs.com with SMTP;
-       16 Aug 2012 14:14:26 -0000
-Received: from EMEA1-MTA by nat28.tlf.novell.com
-       with Novell_GroupWise; Thu, 16 Aug 2012 15:14:25 +0100
-Message-Id: <502D1C8A0200007800095851@nat28.tlf.novell.com>
-X-Mailer: Novell GroupWise Internet Agent 12.0.0 
-Date: Thu, 16 Aug 2012 15:15:06 +0100
-From: "Jan Beulich" <JBeulich@suse.com>
-To: "tupeng212" <tupeng212@gmail.com>
-References: <502A3BBC0200007800094B68@nat28.tlf.novell.com>,
-       <2012081522045495397713@gmail.com> <2012081522121039050717@gmail.com>, 
-       <502CC9D702000078000955B9@nat28.tlf.novell.com>
-       <201208162143289686654@gmail.com>
-In-Reply-To: <201208162143289686654@gmail.com>
-Mime-Version: 1.0
-Content-Disposition: inline
-Cc: Yang Z Zhang <yang.z.zhang@intel.com>, Tim Deegan <tim@xen.org>,
-       Keir Fraser <keir@xen.org>, xen-devel <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH,
- RFC v2] x86/HVM: assorted RTC emulation adjustments (was Re: Big
- Bug:Time in VM goes slower...)
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
->>> On 16.08.12 at 15:43, tupeng212 <tupeng212@gmail.com> wrote:
-> Dear Jan:
-> I didn't check the flipping in JVM, but from the printing period in xen, 
-> this setting happened(unit: ns):
-> 976562, 976562, 976562, 976562, 15625000, 976562, 976562, 976562, 976562, 
-> 15625000 .....
-> and someone told me windows use these two rate/period only.
-
-Okay, some back and forth is there in any case, but without
-knowing the time distance between the individual instances it's
-hard to tell whether what I'm thinking of might help.
-
-> besides, I checked my former simple tester this morning after it ran for a 
-> whole night, it lagged much.
-
-Could you btw quantify the lagging?
-
-Your tester sets only a single, constant rate repeatedly, right?
-If so, then the thought of adjustment likely won't help.
-
-Jan
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<502D33B8020000780009596B@nat28.tlf.novell.com> b/test/corpus/<502D33B8020000780009596B@nat28.tlf.novell.com>
deleted file mode 100644 (file)
index 9952d63..0000000
+++ /dev/null
@@ -1,142 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Aug 16 16:57:15 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 16 Aug 2012 16:57:15 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T22Rb-0007x4-Jo
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 16 Aug 2012 16:57:15 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T22Nv-0001I9-1j; Thu, 16 Aug 2012 15:53:23 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <JBeulich@suse.com>) id 1T22Ns-0001I2-Vo
-       for xen-devel@lists.xensource.com; Thu, 16 Aug 2012 15:53:21 +0000
-Received: from [85.158.139.83:10605] by server-11.bemta-5.messagelabs.com id
-       A4/8B-29296-0771D205; Thu, 16 Aug 2012 15:53:20 +0000
-X-Env-Sender: JBeulich@suse.com
-X-Msg-Ref: server-7.tower-182.messagelabs.com!1345132399!24556137!1
-X-Originating-IP: [130.57.49.28]
-X-SpamReason: No, hits=0.0 required=7.0 tests=
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 3701 invoked from network); 16 Aug 2012 15:53:19 -0000
-Received: from nat28.tlf.novell.com (HELO nat28.tlf.novell.com) (130.57.49.28)
-       by server-7.tower-182.messagelabs.com with SMTP;
-       16 Aug 2012 15:53:19 -0000
-Received: from EMEA1-MTA by nat28.tlf.novell.com
-       with Novell_GroupWise; Thu, 16 Aug 2012 16:53:19 +0100
-Message-Id: <502D33B8020000780009596B@nat28.tlf.novell.com>
-X-Mailer: Novell GroupWise Internet Agent 12.0.0 
-Date: Thu, 16 Aug 2012 16:54:00 +0100
-From: "Jan Beulich" <JBeulich@suse.com>
-To: "Stefano Stabellini" <stefano.stabellini@eu.citrix.com>,
-       <xen-devel@lists.xensource.com>
-References: <alpine.DEB.2.02.1208161523420.4850@kaball.uk.xensource.com>
-       <1345128612-10323-4-git-send-email-stefano.stabellini@eu.citrix.com>
-In-Reply-To: <1345128612-10323-4-git-send-email-stefano.stabellini@eu.citrix.com>
-Mime-Version: 1.0
-Content-Disposition: inline
-Cc: tim@xen.org, Ian.Campbell@citrix.com
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH v3 4/6] xen: introduce XEN_GUEST_HANDLE_PARAM
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
->>> On 16.08.12 at 16:50, Stefano Stabellini <stefano.stabellini@eu.citrix.com> wrote:
-> --- a/xen/include/public/arch-arm.h
-> +++ b/xen/include/public/arch-arm.h
-> @@ -51,18 +51,34 @@
->  
->  #define XEN_HYPERCALL_TAG   0XEA1
->  
-> +#define uint64_aligned_t uint64_t __attribute__((aligned(8)))
->  
->  #ifndef __ASSEMBLY__
-> -#define ___DEFINE_XEN_GUEST_HANDLE(name, type) \
-> -    typedef struct { type *p; } __guest_handle_ ## name
-> +#define ___DEFINE_XEN_GUEST_HANDLE(name, type)                  \
-> +    typedef struct { type *p; }                                 \
-> +        __guest_handle_ ## name;                                \
-> +    typedef struct { union { type *p; uint64_aligned_t q; }; }  \
-> +        __guest_handle_64_ ## name;
-
-Why struct { union { ... } } instead of just union { ... }?
-
->  
-> +/*
-> + * XEN_GUEST_HANDLE represents a guest pointer, when passed as a field
-> + * in a struct in memory. On ARM is always 8 bytes sizes and 8 bytes
-> + * aligned.
-> + * XEN_GUEST_HANDLE_PARAM represent a guest pointer, when passed as an
-> + * hypercall argument. It is 4 bytes on aarch and 8 bytes on aarch64.
-> + */
->  #define __DEFINE_XEN_GUEST_HANDLE(name, type) \
->      ___DEFINE_XEN_GUEST_HANDLE(name, type);   \
->      ___DEFINE_XEN_GUEST_HANDLE(const_##name, const type)
->  #define DEFINE_XEN_GUEST_HANDLE(name)   __DEFINE_XEN_GUEST_HANDLE(name, name)
-> -#define __XEN_GUEST_HANDLE(name)        __guest_handle_ ## name
-> +#define __XEN_GUEST_HANDLE(name)        __guest_handle_64_ ## name
->  #define XEN_GUEST_HANDLE(name)          __XEN_GUEST_HANDLE(name)
-> -#define set_xen_guest_handle_raw(hnd, val)  do { (hnd).p = val; } while (0)
-> +/* this is going to be changes on 64 bit */
-> +#define XEN_GUEST_HANDLE_PARAM(name)    __guest_handle_ ## name
-> +#define set_xen_guest_handle_raw(hnd, val)                  \
-> +    do { if ( sizeof(hnd) == 8 ) *(uint64_t *)&(hnd) = 0;   \
-
-If you made the "normal" handle a union too, you could avoid
-the explicit cast (which e.g. gcc, when not passed
--fno-strict-aliasing, will choke on) and instead use (hnd).q (and
-at once avoid the double initialization of the low half).
-
-Also, the condition to do this could be "sizeof(hnd) > sizeof((hnd).p)",
-usable at once for 64-bit avoiding a full double initialization there.
-
-> +         (hnd).p = val;                                     \
-
-In a public header you certainly want to avoid evaluating a
-macro argument twice.
-
-> +    } while ( 0 )
->  #ifdef __XEN_TOOLS__
->  #define get_xen_guest_handle(val, hnd)  do { val = (hnd).p; } while (0)
->  #endif
-
-Seeing the patch I btw realized that there's no easy way to
-avoid having the type as a second argument in the conversion
-macros. Nevertheless I still don't like the explicitly specified type
-there.
-
-Jan
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<502D37D702000078000959F7@nat28.tlf.novell.com> b/test/corpus/<502D37D702000078000959F7@nat28.tlf.novell.com>
deleted file mode 100644 (file)
index 646e0ce..0000000
+++ /dev/null
@@ -1,89 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Aug 16 17:14:05 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 16 Aug 2012 17:14:05 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T22hv-0008Cx-J7
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 16 Aug 2012 17:14:05 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T22ey-0005k9-NI; Thu, 16 Aug 2012 16:11:00 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <JBeulich@suse.com>) id 1T22ew-0005jp-Hs
-       for xen-devel@lists.xen.org; Thu, 16 Aug 2012 16:10:58 +0000
-Received: from [85.158.138.51:11268] by server-10.bemta-3.messagelabs.com id
-       B6/F6-20518-19B1D205; Thu, 16 Aug 2012 16:10:57 +0000
-X-Env-Sender: JBeulich@suse.com
-X-Msg-Ref: server-13.tower-174.messagelabs.com!1345133456!9970869!1
-X-Originating-IP: [130.57.49.28]
-X-SpamReason: No, hits=0.0 required=7.0 tests=
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 11783 invoked from network); 16 Aug 2012 16:10:56 -0000
-Received: from nat28.tlf.novell.com (HELO nat28.tlf.novell.com) (130.57.49.28)
-       by server-13.tower-174.messagelabs.com with SMTP;
-       16 Aug 2012 16:10:56 -0000
-Received: from EMEA1-MTA by nat28.tlf.novell.com
-       with Novell_GroupWise; Thu, 16 Aug 2012 17:10:56 +0100
-Message-Id: <502D37D702000078000959F7@nat28.tlf.novell.com>
-X-Mailer: Novell GroupWise Internet Agent 12.0.0 
-Date: Thu, 16 Aug 2012 17:11:35 +0100
-From: "Jan Beulich" <JBeulich@suse.com>
-To: "Stefano Stabellini" <stefano.stabellini@eu.citrix.com>
-References: <alpine.DEB.2.02.1208161523420.4850@kaball.uk.xensource.com>
-       <1345128612-10323-4-git-send-email-stefano.stabellini@eu.citrix.com>
-       <502D33B8020000780009596B@nat28.tlf.novell.com>
-In-Reply-To: <502D33B8020000780009596B@nat28.tlf.novell.com>
-Mime-Version: 1.0
-Content-Disposition: inline
-Cc: tim@xen.org, Ian.Campbell@citrix.com, xen-devel <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH v3 4/6] xen: introduce XEN_GUEST_HANDLE_PARAM
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
->>> On 16.08.12 at 17:54, "Jan Beulich" <JBeulich@suse.com> wrote:
-> Seeing the patch I btw realized that there's no easy way to
-> avoid having the type as a second argument in the conversion
-> macros. Nevertheless I still don't like the explicitly specified type
-> there.
-
-Btw - on the architecture(s) where the two handles are identical
-I would prefer you to make the conversion functions trivial (and
-thus avoid making use of the "type" parameter), thus allowing
-the type checking to occur that you currently circumvent.
-
-Jan
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<502E285A0200007800095D04@nat28.tlf.novell.com> b/test/corpus/<502E285A0200007800095D04@nat28.tlf.novell.com>
deleted file mode 100644 (file)
index 4fbeacb..0000000
+++ /dev/null
@@ -1,110 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Aug 17 10:21:56 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 17 Aug 2012 10:21:56 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T2Ikc-00078A-ML
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 17 Aug 2012 10:21:56 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T2Ig4-0001oI-S0; Fri, 17 Aug 2012 09:17:12 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <JBeulich@suse.com>) id 1T2Ig3-0001oA-4s
-       for xen-devel@lists.xensource.com; Fri, 17 Aug 2012 09:17:11 +0000
-Received: from [85.158.138.51:19200] by server-8.bemta-3.messagelabs.com id
-       AC/34-29583-61C0E205; Fri, 17 Aug 2012 09:17:10 +0000
-X-Env-Sender: JBeulich@suse.com
-X-Msg-Ref: server-11.tower-174.messagelabs.com!1345195029!28769510!1
-X-Originating-IP: [130.57.49.28]
-X-SpamReason: No, hits=0.0 required=7.0 tests=
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 2410 invoked from network); 17 Aug 2012 09:17:09 -0000
-Received: from nat28.tlf.novell.com (HELO nat28.tlf.novell.com) (130.57.49.28)
-       by server-11.tower-174.messagelabs.com with SMTP;
-       17 Aug 2012 09:17:09 -0000
-Received: from EMEA1-MTA by nat28.tlf.novell.com
-       with Novell_GroupWise; Fri, 17 Aug 2012 10:17:09 +0100
-Message-Id: <502E285A0200007800095D04@nat28.tlf.novell.com>
-X-Mailer: Novell GroupWise Internet Agent 12.0.0 
-Date: Fri, 17 Aug 2012 10:17:46 +0100
-From: "Jan Beulich" <JBeulich@suse.com>
-To: "Stefano Stabellini" <stefano.stabellini@eu.citrix.com>
-References: <alpine.DEB.2.02.1208161523420.4850@kaball.uk.xensource.com>
-       <1345128612-10323-4-git-send-email-stefano.stabellini@eu.citrix.com>
-       <502D33B8020000780009596B@nat28.tlf.novell.com>
-       <alpine.DEB.2.02.1208161756140.15568@kaball.uk.xensource.com>
-In-Reply-To: <alpine.DEB.2.02.1208161756140.15568@kaball.uk.xensource.com>
-Mime-Version: 1.0
-Content-Disposition: inline
-Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
-       "Tim \(Xen.org\)" <tim@xen.org>, Ian Campbell <Ian.Campbell@citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH v3 4/6] xen: introduce XEN_GUEST_HANDLE_PARAM
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
->>> On 16.08.12 at 19:08, Stefano Stabellini <stefano.stabellini@eu.citrix.com> wrote:
-> On Thu, 16 Aug 2012, Jan Beulich wrote:
->> >>> On 16.08.12 at 16:50, Stefano Stabellini <stefano.stabellini@eu.citrix.com>  wrote:
->> > +#define set_xen_guest_handle_raw(hnd, val)                  \
->> > +    do { if ( sizeof(hnd) == 8 ) *(uint64_t *)&(hnd) = 0;   \
->> 
->> If you made the "normal" handle a union too, you could avoid
->> the explicit cast (which e.g. gcc, when not passed
->> -fno-strict-aliasing, will choke on) and instead use (hnd).q (and
->> at once avoid the double initialization of the low half).
->> 
->> Also, the condition to do this could be "sizeof(hnd) > sizeof((hnd).p)",
->> usable at once for 64-bit avoiding a full double initialization there.
->> 
->> > +         (hnd).p = val;                                     \
->> 
->> In a public header you certainly want to avoid evaluating a
->> macro argument twice.
-> 
-> That's a really good suggestion.
-> I am going to make both handles unions and therefore
-> set_xen_guest_handle_raw becomes:
-> 
-> #define set_xen_guest_handle_raw(hnd, val)                  \
->     do { (hnd).q = 0;                                       \
->          (hnd).p = val;                                     \
->     } while ( 0 )
-
-But that still doesn't eliminate the double evaluation of "hnd".
-
-Jan
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<502E2F090200007800095D62@nat28.tlf.novell.com> b/test/corpus/<502E2F090200007800095D62@nat28.tlf.novell.com>
deleted file mode 100644 (file)
index 7c78a3a..0000000
+++ /dev/null
@@ -1,119 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Aug 17 10:49:21 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 17 Aug 2012 10:49:21 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T2JB9-0007Gx-DI
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 17 Aug 2012 10:49:21 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T2J7r-0003E8-Lq; Fri, 17 Aug 2012 09:45:55 +0000
-Received: from mail27.messagelabs.com ([193.109.254.147])
-       by lists.xen.org with smtp (Exim 4.72)
-       (envelope-from <JBeulich@suse.com>) id 1T2J7p-0003Dy-OY
-       for xen-devel@lists.xen.org; Fri, 17 Aug 2012 09:45:53 +0000
-X-Env-Sender: JBeulich@suse.com
-X-Msg-Ref: server-15.tower-27.messagelabs.com!1345196736!2393719!1
-X-Originating-IP: [130.57.49.28]
-X-SpamReason: No, hits=0.0 required=7.0 tests=
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 29142 invoked from network); 17 Aug 2012 09:45:36 -0000
-Received: from nat28.tlf.novell.com (HELO nat28.tlf.novell.com) (130.57.49.28)
-       by server-15.tower-27.messagelabs.com with SMTP;
-       17 Aug 2012 09:45:36 -0000
-Received: from EMEA1-MTA by nat28.tlf.novell.com
-       with Novell_GroupWise; Fri, 17 Aug 2012 10:45:35 +0100
-Message-Id: <502E2F090200007800095D62@nat28.tlf.novell.com>
-X-Mailer: Novell GroupWise Internet Agent 12.0.0 
-Date: Fri, 17 Aug 2012 10:46:17 +0100
-From: "Jan Beulich" <JBeulich@suse.com>
-To: "Ian Campbell" <Ian.Campbell@citrix.com>,
-       "Stefano Stabellini" <Stefano.Stabellini@eu.citrix.com>
-References: <alpine.DEB.2.02.1208161523420.4850@kaball.uk.xensource.com>
-       <1345128612-10323-4-git-send-email-stefano.stabellini@eu.citrix.com>
-       <502D33B8020000780009596B@nat28.tlf.novell.com>
-       <502D37D702000078000959F7@nat28.tlf.novell.com>
-       <alpine.DEB.2.02.1208161801210.15568@kaball.uk.xensource.com>
-       <1345190532.30865.67.camel@zakaz.uk.xensource.com>
-In-Reply-To: <1345190532.30865.67.camel@zakaz.uk.xensource.com>
-Mime-Version: 1.0
-Content-Disposition: inline
-Cc: "Tim \(Xen.org\)" <tim@xen.org>, xen-devel <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH v3 4/6] xen: introduce XEN_GUEST_HANDLE_PARAM
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
->>> On 17.08.12 at 10:02, Ian Campbell <Ian.Campbell@citrix.com> wrote:
-> On Thu, 2012-08-16 at 18:10 +0100, Stefano Stabellini wrote:
->> On Thu, 16 Aug 2012, Jan Beulich wrote:
->> > >>> On 16.08.12 at 17:54, "Jan Beulich" <JBeulich@suse.com> wrote:
->> > > Seeing the patch I btw realized that there's no easy way to
->> > > avoid having the type as a second argument in the conversion
->> > > macros. Nevertheless I still don't like the explicitly specified type
->> > > there.
->> > 
->> > Btw - on the architecture(s) where the two handles are identical
->> > I would prefer you to make the conversion functions trivial (and
->> > thus avoid making use of the "type" parameter), thus allowing
->> > the type checking to occur that you currently circumvent.
->> 
->> OK, I can do that.
-> 
-> Will this result in the type parameter potentially becoming stale?
-> 
-> Adding a redundant pointer compare is a good way to get the compiler to
-> catch this. Smth like;
-> 
->         /* Cast a XEN_GUEST_HANDLE_PARAM to XEN_GUEST_HANDLE */
->         #define guest_handle_from_param(hnd, type) ({
->             typeof((hnd).p) _x = (hnd).p;
->             XEN_GUEST_HANDLE(type) _y;
->             &_y == &_x;
->             hnd;
->          })
-
-Ah yes, that's a good suggestion.
-
-> I'm not sure which two pointers of members of the various structs need
-> to be compared, maybe it's actually &_y.p and &hnd.p, but you get the
-> idea...
-
-Right, comparing (hnd).p with _y.p would be the right thing; no
-need for _x, but some other (mechanical) adjustments would be
-necessary.
-
-Jan
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<502E6A200200007800095E9A@nat28.tlf.novell.com> b/test/corpus/<502E6A200200007800095E9A@nat28.tlf.novell.com>
deleted file mode 100644 (file)
index 88fe033..0000000
+++ /dev/null
@@ -1,150 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Aug 17 15:01:26 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 17 Aug 2012 15:01:26 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T2N72-00085o-P4
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 17 Aug 2012 15:01:26 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T2N3h-0000mT-Nr; Fri, 17 Aug 2012 13:57:53 +0000
-Received: from mail27.messagelabs.com ([193.109.254.147])
-       by lists.xen.org with smtp (Exim 4.72)
-       (envelope-from <JBeulich@suse.com>) id 1T2N3g-0000mD-IX
-       for xen-devel@lists.xen.org; Fri, 17 Aug 2012 13:57:52 +0000
-X-Env-Sender: JBeulich@suse.com
-X-Msg-Ref: server-8.tower-27.messagelabs.com!1345211864!9860202!1
-X-Originating-IP: [130.57.49.28]
-X-SpamReason: No, hits=0.0 required=7.0 tests=
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 9695 invoked from network); 17 Aug 2012 13:57:44 -0000
-Received: from nat28.tlf.novell.com (HELO nat28.tlf.novell.com) (130.57.49.28)
-       by server-8.tower-27.messagelabs.com with SMTP;
-       17 Aug 2012 13:57:44 -0000
-Received: from EMEA1-MTA by nat28.tlf.novell.com
-       with Novell_GroupWise; Fri, 17 Aug 2012 14:57:44 +0100
-Message-Id: <502E6A200200007800095E9A@nat28.tlf.novell.com>
-X-Mailer: Novell GroupWise Internet Agent 12.0.0 
-Date: Fri, 17 Aug 2012 14:58:24 +0100
-From: "Jan Beulich" <JBeulich@suse.com>
-To: "Stefano Stabellini" <stefano.stabellini@eu.citrix.com>
-References: <alpine.DEB.2.02.1208161523420.4850@kaball.uk.xensource.com>
-       <1345128612-10323-4-git-send-email-stefano.stabellini@eu.citrix.com>
-       <502D33B8020000780009596B@nat28.tlf.novell.com>
-       <502D37D702000078000959F7@nat28.tlf.novell.com>
-       <alpine.DEB.2.02.1208161801210.15568@kaball.uk.xensource.com>
-       <1345190532.30865.67.camel@zakaz.uk.xensource.com>
-       <502E2F090200007800095D62@nat28.tlf.novell.com>
-       <alpine.DEB.2.02.1208171443580.15568@kaball.uk.xensource.com>
-In-Reply-To: <alpine.DEB.2.02.1208171443580.15568@kaball.uk.xensource.com>
-Mime-Version: 1.0
-Content-Disposition: inline
-Cc: "Tim \(Xen.org\)" <tim@xen.org>, Ian Campbell <Ian.Campbell@citrix.com>,
-       xen-devel <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH v3 4/6] xen: introduce XEN_GUEST_HANDLE_PARAM
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
->>> On 17.08.12 at 15:47, Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-wrote:
-> On Fri, 17 Aug 2012, Jan Beulich wrote:
->> >>> On 17.08.12 at 10:02, Ian Campbell <Ian.Campbell@citrix.com> wrote:
->> > On Thu, 2012-08-16 at 18:10 +0100, Stefano Stabellini wrote:
->> >> On Thu, 16 Aug 2012, Jan Beulich wrote:
->> >> > >>> On 16.08.12 at 17:54, "Jan Beulich" <JBeulich@suse.com> wrote:
->> >> > > Seeing the patch I btw realized that there's no easy way to
->> >> > > avoid having the type as a second argument in the conversion
->> >> > > macros. Nevertheless I still don't like the explicitly specified type
->> >> > > there.
->> >> > 
->> >> > Btw - on the architecture(s) where the two handles are identical
->> >> > I would prefer you to make the conversion functions trivial (and
->> >> > thus avoid making use of the "type" parameter), thus allowing
->> >> > the type checking to occur that you currently circumvent.
->> >> 
->> >> OK, I can do that.
->> > 
->> > Will this result in the type parameter potentially becoming stale?
->> > 
->> > Adding a redundant pointer compare is a good way to get the compiler to
->> > catch this. Smth like;
->> > 
->> >         /* Cast a XEN_GUEST_HANDLE_PARAM to XEN_GUEST_HANDLE */
->> >         #define guest_handle_from_param(hnd, type) ({
->> >             typeof((hnd).p) _x = (hnd).p;
->> >             XEN_GUEST_HANDLE(type) _y;
->> >             &_y == &_x;
->> >             hnd;
->> >          })
->> 
->> Ah yes, that's a good suggestion.
->> 
->> > I'm not sure which two pointers of members of the various structs need
->> > to be compared, maybe it's actually &_y.p and &hnd.p, but you get the
->> > idea...
->> 
->> Right, comparing (hnd).p with _y.p would be the right thing; no
->> need for _x, but some other (mechanical) adjustments would be
->> necessary.
-> 
-> The _x variable is still useful to avoid multiple evaluations of hnd,
-> even though I know that this is not a public header.
-
-But we had settled on returning hnd unmodified when both
-handle types are the same.
-
-> What about the following:
-> 
-> /* Cast a XEN_GUEST_HANDLE to XEN_GUEST_HANDLE_PARAM */
-> #define guest_handle_to_param(hnd, type) ({                \
->     typeof((hnd).p) _x = (hnd).p;                          \
->     XEN_GUEST_HANDLE_PARAM(type) _y = { _x };              \
->     if (&_x != &_y.p) BUG();                               \
->     _y;                                                    \
-> })
-
-Since this is not a public header, something like this (untested,
-so may not compile as is)
-
-#define guest_handle_to_param(hnd, type) ({                \
-    (void)(typeof((hnd).p)0 == (XEN_GUEST_HANDLE_PARAM(type){}).p); \
-    (hnd);                                                    \
-})
-
-is what I was thinking of.
-
-Jan
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<502E6BBA0200007800095EBB@nat28.tlf.novell.com> b/test/corpus/<502E6BBA0200007800095EBB@nat28.tlf.novell.com>
deleted file mode 100644 (file)
index d0783da..0000000
+++ /dev/null
@@ -1,155 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Aug 17 15:08:46 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 17 Aug 2012 15:08:46 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T2NEB-00088I-MF
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 17 Aug 2012 15:08:46 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T2NAG-0001ZH-9f; Fri, 17 Aug 2012 14:04:40 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <JBeulich@suse.com>) id 1T2NAE-0001ZB-4a
-       for xen-devel@lists.xen.org; Fri, 17 Aug 2012 14:04:38 +0000
-Received: from [85.158.143.99:29924] by server-2.bemta-4.messagelabs.com id
-       8E/02-31966-57F4E205; Fri, 17 Aug 2012 14:04:37 +0000
-X-Env-Sender: JBeulich@suse.com
-X-Msg-Ref: server-3.tower-216.messagelabs.com!1345212274!28144147!1
-X-Originating-IP: [130.57.49.28]
-X-SpamReason: No, hits=0.0 required=7.0 tests=
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 9555 invoked from network); 17 Aug 2012 14:04:34 -0000
-Received: from nat28.tlf.novell.com (HELO nat28.tlf.novell.com) (130.57.49.28)
-       by server-3.tower-216.messagelabs.com with SMTP;
-       17 Aug 2012 14:04:34 -0000
-Received: from EMEA1-MTA by nat28.tlf.novell.com
-       with Novell_GroupWise; Fri, 17 Aug 2012 15:04:34 +0100
-Message-Id: <502E6BBA0200007800095EBB@nat28.tlf.novell.com>
-X-Mailer: Novell GroupWise Internet Agent 12.0.0 
-Date: Fri, 17 Aug 2012 15:05:14 +0100
-From: "Jan Beulich" <JBeulich@suse.com>
-To: "Ian Campbell" <Ian.Campbell@citrix.com>,
-       "Stefano Stabellini" <stefano.stabellini@eu.citrix.com>
-References: <alpine.DEB.2.02.1208161523420.4850@kaball.uk.xensource.com>
-       <1345128612-10323-4-git-send-email-stefano.stabellini@eu.citrix.com>
-       <502D33B8020000780009596B@nat28.tlf.novell.com>
-       <502D37D702000078000959F7@nat28.tlf.novell.com>
-       <alpine.DEB.2.02.1208161801210.15568@kaball.uk.xensource.com>
-       <1345190532.30865.67.camel@zakaz.uk.xensource.com>
-       <502E2F090200007800095D62@nat28.tlf.novell.com>
-       <alpine.DEB.2.02.1208171443580.15568@kaball.uk.xensource.com>
-       <1345211486.10161.31.camel@zakaz.uk.xensource.com>
-       <alpine.DEB.2.02.1208171453060.15568@kaball.uk.xensource.com>
-In-Reply-To: <alpine.DEB.2.02.1208171453060.15568@kaball.uk.xensource.com>
-Mime-Version: 1.0
-Content-Disposition: inline
-Cc: "Tim \(Xen.org\)" <tim@xen.org>, xen-devel <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH v3 4/6] xen: introduce XEN_GUEST_HANDLE_PARAM
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
->>> On 17.08.12 at 15:55, Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-wrote:
-> On Fri, 17 Aug 2012, Ian Campbell wrote:
->> On Fri, 2012-08-17 at 14:47 +0100, Stefano Stabellini wrote:
->> > On Fri, 17 Aug 2012, Jan Beulich wrote:
->> > > >>> On 17.08.12 at 10:02, Ian Campbell <Ian.Campbell@citrix.com> wrote:
->> > > > On Thu, 2012-08-16 at 18:10 +0100, Stefano Stabellini wrote:
->> > > >> On Thu, 16 Aug 2012, Jan Beulich wrote:
->> > > >> > >>> On 16.08.12 at 17:54, "Jan Beulich" <JBeulich@suse.com> wrote:
->> > > >> > > Seeing the patch I btw realized that there's no easy way to
->> > > >> > > avoid having the type as a second argument in the conversion
->> > > >> > > macros. Nevertheless I still don't like the explicitly specified type
->> > > >> > > there.
->> > > >> > 
->> > > >> > Btw - on the architecture(s) where the two handles are identical
->> > > >> > I would prefer you to make the conversion functions trivial (and
->> > > >> > thus avoid making use of the "type" parameter), thus allowing
->> > > >> > the type checking to occur that you currently circumvent.
->> > > >> 
->> > > >> OK, I can do that.
->> > > > 
->> > > > Will this result in the type parameter potentially becoming stale?
->> > > > 
->> > > > Adding a redundant pointer compare is a good way to get the compiler to
->> > > > catch this. Smth like;
->> > > > 
->> > > >         /* Cast a XEN_GUEST_HANDLE_PARAM to XEN_GUEST_HANDLE */
->> > > >         #define guest_handle_from_param(hnd, type) ({
->> > > >             typeof((hnd).p) _x = (hnd).p;
->> > > >             XEN_GUEST_HANDLE(type) _y;
->> > > >             &_y == &_x;
->> > > >             hnd;
->> > > >          })
->> > > 
->> > > Ah yes, that's a good suggestion.
->> > > 
->> > > > I'm not sure which two pointers of members of the various structs need
->> > > > to be compared, maybe it's actually &_y.p and &hnd.p, but you get the
->> > > > idea...
->> > > 
->> > > Right, comparing (hnd).p with _y.p would be the right thing; no
->> > > need for _x, but some other (mechanical) adjustments would be
->> > > necessary.
->> > 
->> > The _x variable is still useful to avoid multiple evaluations of hnd,
->> > even though I know that this is not a public header.
->> > 
->> > What about the following:
->> > 
->> > /* Cast a XEN_GUEST_HANDLE to XEN_GUEST_HANDLE_PARAM */
->> > #define guest_handle_to_param(hnd, type) ({                \
->> >     typeof((hnd).p) _x = (hnd).p;                          \
->> >     XEN_GUEST_HANDLE_PARAM(type) _y = { _x };              \
->> >     if (&_x != &_y.p) BUG();                               \
->> 
->> &_x and &_y.p will always be different => this will always BUG().
->>
->> You just need "(&_x == &_y.p)" if the types of _x and _y.p are different
->> then the compiler will error out due to the comparison of differently
->> typed pointers.
-> 
-> I know what you mean, but we cannot do that because the compiler will
-> complain with "statement has no effects".
-> So we have to do something like:
-> 
-> if ((&_x == &_y.p) && 0) BUG();
-
-As done in my other mail - simply cast to void.
-
-Jan
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<502E78010200007800095F56@nat28.tlf.novell.com> b/test/corpus/<502E78010200007800095F56@nat28.tlf.novell.com>
deleted file mode 100644 (file)
index 9a65a90..0000000
+++ /dev/null
@@ -1,163 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Aug 17 16:00:54 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 17 Aug 2012 16:00:54 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T2O2d-0008OK-G1
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 17 Aug 2012 16:00:53 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T2Nz1-0003wB-E5; Fri, 17 Aug 2012 14:57:07 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <JBeulich@suse.com>) id 1T2Nyz-0003vv-8M
-       for xen-devel@lists.xen.org; Fri, 17 Aug 2012 14:57:05 +0000
-Received: from [85.158.143.35:35108] by server-2.bemta-4.messagelabs.com id
-       EA/7D-31966-0CB5E205; Fri, 17 Aug 2012 14:57:04 +0000
-X-Env-Sender: JBeulich@suse.com
-X-Msg-Ref: server-13.tower-21.messagelabs.com!1345215418!15940103!1
-X-Originating-IP: [130.57.49.28]
-X-SpamReason: No, hits=0.0 required=7.0 tests=
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 27384 invoked from network); 17 Aug 2012 14:56:58 -0000
-Received: from nat28.tlf.novell.com (HELO nat28.tlf.novell.com) (130.57.49.28)
-       by server-13.tower-21.messagelabs.com with SMTP;
-       17 Aug 2012 14:56:58 -0000
-Received: from EMEA1-MTA by nat28.tlf.novell.com
-       with Novell_GroupWise; Fri, 17 Aug 2012 15:56:57 +0100
-Message-Id: <502E78010200007800095F56@nat28.tlf.novell.com>
-X-Mailer: Novell GroupWise Internet Agent 12.0.0 
-Date: Fri, 17 Aug 2012 15:57:37 +0100
-From: "Jan Beulich" <JBeulich@suse.com>
-To: "Ian Campbell" <Ian.Campbell@citrix.com>
-References: <alpine.DEB.2.02.1208161523420.4850@kaball.uk.xensource.com>
-       <1345128612-10323-4-git-send-email-stefano.stabellini@eu.citrix.com>
-       <502D33B8020000780009596B@nat28.tlf.novell.com>
-       <502D37D702000078000959F7@nat28.tlf.novell.com>
-       <alpine.DEB.2.02.1208161801210.15568@kaball.uk.xensource.com>
-       <1345190532.30865.67.camel@zakaz.uk.xensource.com>
-       <502E2F090200007800095D62@nat28.tlf.novell.com>
-       <alpine.DEB.2.02.1208171443580.15568@kaball.uk.xensource.com>
-       <502E6A200200007800095E9A@nat28.tlf.novell.com>
-       <1345215020.10161.64.camel@zakaz.uk.xensource.com>
-In-Reply-To: <1345215020.10161.64.camel@zakaz.uk.xensource.com>
-Mime-Version: 1.0
-Content-Disposition: inline
-Cc: xen-devel <xen-devel@lists.xen.org>, "Tim \(Xen.org\)" <tim@xen.org>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH v3 4/6] xen: introduce XEN_GUEST_HANDLE_PARAM
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
->>> On 17.08.12 at 16:50, Ian Campbell <Ian.Campbell@citrix.com> wrote:
-> On Fri, 2012-08-17 at 14:58 +0100, Jan Beulich wrote:
->> >>> On 17.08.12 at 15:47, Stefano Stabellini <stefano.stabellini@eu.citrix.com>
->> wrote:
->> > On Fri, 17 Aug 2012, Jan Beulich wrote:
->> >> >>> On 17.08.12 at 10:02, Ian Campbell <Ian.Campbell@citrix.com> wrote:
->> >> > On Thu, 2012-08-16 at 18:10 +0100, Stefano Stabellini wrote:
->> >> >> On Thu, 16 Aug 2012, Jan Beulich wrote:
->> >> >> > >>> On 16.08.12 at 17:54, "Jan Beulich" <JBeulich@suse.com> wrote:
->> >> >> > > Seeing the patch I btw realized that there's no easy way to
->> >> >> > > avoid having the type as a second argument in the conversion
->> >> >> > > macros. Nevertheless I still don't like the explicitly specified type
->> >> >> > > there.
->> >> >> > 
->> >> >> > Btw - on the architecture(s) where the two handles are identical
->> >> >> > I would prefer you to make the conversion functions trivial (and
->> >> >> > thus avoid making use of the "type" parameter), thus allowing
->> >> >> > the type checking to occur that you currently circumvent.
->> >> >> 
->> >> >> OK, I can do that.
->> >> > 
->> >> > Will this result in the type parameter potentially becoming stale?
->> >> > 
->> >> > Adding a redundant pointer compare is a good way to get the compiler to
->> >> > catch this. Smth like;
->> >> > 
->> >> >         /* Cast a XEN_GUEST_HANDLE_PARAM to XEN_GUEST_HANDLE */
->> >> >         #define guest_handle_from_param(hnd, type) ({
->> >> >             typeof((hnd).p) _x = (hnd).p;
->> >> >             XEN_GUEST_HANDLE(type) _y;
->> >> >             &_y == &_x;
->> >> >             hnd;
->> >> >          })
->> >> 
->> >> Ah yes, that's a good suggestion.
->> >> 
->> >> > I'm not sure which two pointers of members of the various structs need
->> >> > to be compared, maybe it's actually &_y.p and &hnd.p, but you get the
->> >> > idea...
->> >> 
->> >> Right, comparing (hnd).p with _y.p would be the right thing; no
->> >> need for _x, but some other (mechanical) adjustments would be
->> >> necessary.
->> > 
->> > The _x variable is still useful to avoid multiple evaluations of hnd,
->> > even though I know that this is not a public header.
->> 
->> But we had settled on returning hnd unmodified when both
->> handle types are the same.
->> 
->> > What about the following:
->> > 
->> > /* Cast a XEN_GUEST_HANDLE to XEN_GUEST_HANDLE_PARAM */
->> > #define guest_handle_to_param(hnd, type) ({                \
->> >     typeof((hnd).p) _x = (hnd).p;                          \
->> >     XEN_GUEST_HANDLE_PARAM(type) _y = { _x };              \
->> >     if (&_x != &_y.p) BUG();                               \
->> >     _y;                                                    \
->> > })
->> 
->> Since this is not a public header, something like this (untested,
->> so may not compile as is)
->> 
->> #define guest_handle_to_param(hnd, type) ({                \
->>     (void)(typeof((hnd).p)0 == (XEN_GUEST_HANDLE_PARAM(type){}).p); \
->>     (hnd);                                                    \
->> })
->> 
->> is what I was thinking of.
-> 
-> This evaluates hnd twice, or do we only care about that in public
-> headers for some reason? (personally I think principal of least surprise
-> suggests avoiding it wherever possible)
-
-No, it doesn't - like sizeof(), typeof() doesn't evaluate its
-argument.
-
-Jan
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<502E788B0200007800095F59@nat28.tlf.novell.com> b/test/corpus/<502E788B0200007800095F59@nat28.tlf.novell.com>
deleted file mode 100644 (file)
index a4abfaf..0000000
+++ /dev/null
@@ -1,187 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Aug 17 16:02:57 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 17 Aug 2012 16:02:57 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T2O4d-0008PC-2J
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 17 Aug 2012 16:02:57 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T2O1M-0004AE-Ce; Fri, 17 Aug 2012 14:59:32 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <JBeulich@suse.com>) id 1T2O1L-0004A8-9S
-       for xen-devel@lists.xen.org; Fri, 17 Aug 2012 14:59:31 +0000
-Received: from [85.158.143.35:48196] by server-1.bemta-4.messagelabs.com id
-       2F/35-07754-25C5E205; Fri, 17 Aug 2012 14:59:30 +0000
-X-Env-Sender: JBeulich@suse.com
-X-Msg-Ref: server-16.tower-21.messagelabs.com!1345215556!14671915!1
-X-Originating-IP: [130.57.49.28]
-X-SpamReason: No, hits=0.0 required=7.0 tests=
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 28543 invoked from network); 17 Aug 2012 14:59:18 -0000
-Received: from nat28.tlf.novell.com (HELO nat28.tlf.novell.com) (130.57.49.28)
-       by server-16.tower-21.messagelabs.com with SMTP;
-       17 Aug 2012 14:59:18 -0000
-Received: from EMEA1-MTA by nat28.tlf.novell.com
-       with Novell_GroupWise; Fri, 17 Aug 2012 15:59:16 +0100
-Message-Id: <502E788B0200007800095F59@nat28.tlf.novell.com>
-X-Mailer: Novell GroupWise Internet Agent 12.0.0 
-Date: Fri, 17 Aug 2012 15:59:55 +0100
-From: "Jan Beulich" <JBeulich@suse.com>
-To: "Stefano Stabellini" <stefano.stabellini@eu.citrix.com>
-References: <alpine.DEB.2.02.1208161523420.4850@kaball.uk.xensource.com>
-       <1345128612-10323-4-git-send-email-stefano.stabellini@eu.citrix.com>
-       <502D33B8020000780009596B@nat28.tlf.novell.com>
-       <502D37D702000078000959F7@nat28.tlf.novell.com>
-       <alpine.DEB.2.02.1208161801210.15568@kaball.uk.xensource.com>
-       <1345190532.30865.67.camel@zakaz.uk.xensource.com>
-       <502E2F090200007800095D62@nat28.tlf.novell.com>
-       <alpine.DEB.2.02.1208171443580.15568@kaball.uk.xensource.com>
-       <502E6A200200007800095E9A@nat28.tlf.novell.com>
-       <alpine.DEB.2.02.1208171540350.15568@kaball.uk.xensource.com>
-In-Reply-To: <alpine.DEB.2.02.1208171540350.15568@kaball.uk.xensource.com>
-Mime-Version: 1.0
-Content-Disposition: inline
-Cc: "Tim\(Xen.org\)" <tim@xen.org>, Ian Campbell <Ian.Campbell@citrix.com>,
-       xen-devel <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH v3 4/6] xen: introduce XEN_GUEST_HANDLE_PARAM
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
->>> On 17.08.12 at 16:45, Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-wrote:
-> On Fri, 17 Aug 2012, Jan Beulich wrote:
->> >>> On 17.08.12 at 15:47, Stefano Stabellini <stefano.stabellini@eu.citrix.com>
->> wrote:
->> > On Fri, 17 Aug 2012, Jan Beulich wrote:
->> >> >>> On 17.08.12 at 10:02, Ian Campbell <Ian.Campbell@citrix.com> wrote:
->> >> > On Thu, 2012-08-16 at 18:10 +0100, Stefano Stabellini wrote:
->> >> >> On Thu, 16 Aug 2012, Jan Beulich wrote:
->> >> >> > >>> On 16.08.12 at 17:54, "Jan Beulich" <JBeulich@suse.com> wrote:
->> >> >> > > Seeing the patch I btw realized that there's no easy way to
->> >> >> > > avoid having the type as a second argument in the conversion
->> >> >> > > macros. Nevertheless I still don't like the explicitly specified type
->> >> >> > > there.
->> >> >> > 
->> >> >> > Btw - on the architecture(s) where the two handles are identical
->> >> >> > I would prefer you to make the conversion functions trivial (and
->> >> >> > thus avoid making use of the "type" parameter), thus allowing
->> >> >> > the type checking to occur that you currently circumvent.
->> >> >> 
->> >> >> OK, I can do that.
->> >> > 
->> >> > Will this result in the type parameter potentially becoming stale?
->> >> > 
->> >> > Adding a redundant pointer compare is a good way to get the compiler to
->> >> > catch this. Smth like;
->> >> > 
->> >> >         /* Cast a XEN_GUEST_HANDLE_PARAM to XEN_GUEST_HANDLE */
->> >> >         #define guest_handle_from_param(hnd, type) ({
->> >> >             typeof((hnd).p) _x = (hnd).p;
->> >> >             XEN_GUEST_HANDLE(type) _y;
->> >> >             &_y == &_x;
->> >> >             hnd;
->> >> >          })
->> >> 
->> >> Ah yes, that's a good suggestion.
->> >> 
->> >> > I'm not sure which two pointers of members of the various structs need
->> >> > to be compared, maybe it's actually &_y.p and &hnd.p, but you get the
->> >> > idea...
->> >> 
->> >> Right, comparing (hnd).p with _y.p would be the right thing; no
->> >> need for _x, but some other (mechanical) adjustments would be
->> >> necessary.
->> > 
->> > The _x variable is still useful to avoid multiple evaluations of hnd,
->> > even though I know that this is not a public header.
->> 
->> But we had settled on returning hnd unmodified when both
->> handle types are the same.
->> 
->> > What about the following:
->> > 
->> > /* Cast a XEN_GUEST_HANDLE to XEN_GUEST_HANDLE_PARAM */
->> > #define guest_handle_to_param(hnd, type) ({                \
->> >     typeof((hnd).p) _x = (hnd).p;                          \
->> >     XEN_GUEST_HANDLE_PARAM(type) _y = { _x };              \
->> >     if (&_x != &_y.p) BUG();                               \
->> >     _y;                                                    \
->> > })
->> 
->> Since this is not a public header, something like this (untested,
->> so may not compile as is)
->> 
->> #define guest_handle_to_param(hnd, type) ({                \
->>     (void)(typeof((hnd).p)0 == (XEN_GUEST_HANDLE_PARAM(type){}).p); \
->>     (hnd);                                                    \
->> })
->> 
->> is what I was thinking of.
->> 
-> 
-> this is how it would look like:
-> 
-> #define guest_handle_to_param(hnd, type) ({                  \
->     /* type checking: make sure that the pointers inside     \
->      * XEN_GUEST_HANDLE and XEN_GUEST_HANDLE_PARAM are of    \
->      * the same type, than return hnd */                     \
->     (void)((typeof(&(hnd).p)) 0 ==                           \
->         (typeof(&((XEN_GUEST_HANDLE_PARAM(type)) {}).p)) 0); \
->     (hnd);                                                   \
-> })
-> 
-> 
-> Honestly I have very rarely seen anything less readable, but at least is
-> very compact.
-> For ARM I was going to go with the following, that is only slightly more
-> readable:
-> 
-> #define guest_handle_to_param(hnd, type) ({                  \
->     typeof((hnd).p) _x = (hnd).p;                            \
->     XEN_GUEST_HANDLE_PARAM(type) _y = { _x };                \
->     /* type checking: make sure that the pointers inside     \
->      * XEN_GUEST_HANDLE and XEN_GUEST_HANDLE_PARAM are of    \
->      * the same type, than return hnd */                     \
->     (void)(&_x == &_y.p);                                    \
->     _y;                                                      \
-> })
-
-Yes, this looks good now to me (perhaps correct the minor
-spelling mistake - should be "then", not "than" I think).
-
-Jan
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<503504FE0200007800096F08@nat28.tlf.novell.com> b/test/corpus/<503504FE0200007800096F08@nat28.tlf.novell.com>
deleted file mode 100644 (file)
index 1598eb7..0000000
+++ /dev/null
@@ -1,152 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Aug 22 15:15:52 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 22 Aug 2012 15:15:52 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T4Bik-0001cA-D2
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 22 Aug 2012 15:15:52 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T4BfC-0006aL-92; Wed, 22 Aug 2012 14:12:06 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <JBeulich@suse.com>) id 1T4BfB-0006a9-1P
-       for xen-devel@lists.xensource.com; Wed, 22 Aug 2012 14:12:05 +0000
-Received: from [85.158.139.83:57324] by server-9.bemta-5.messagelabs.com id
-       EC/27-26123-4B8E4305; Wed, 22 Aug 2012 14:12:04 +0000
-X-Env-Sender: JBeulich@suse.com
-X-Msg-Ref: server-13.tower-182.messagelabs.com!1345644723!28959171!1
-X-Originating-IP: [130.57.49.28]
-X-SpamReason: No, hits=0.0 required=7.0 tests=
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 13836 invoked from network); 22 Aug 2012 14:12:03 -0000
-Received: from nat28.tlf.novell.com (HELO nat28.tlf.novell.com) (130.57.49.28)
-       by server-13.tower-182.messagelabs.com with SMTP;
-       22 Aug 2012 14:12:03 -0000
-Received: from EMEA1-MTA by nat28.tlf.novell.com
-       with Novell_GroupWise; Wed, 22 Aug 2012 15:12:03 +0100
-Message-Id: <503504FE0200007800096F08@nat28.tlf.novell.com>
-X-Mailer: Novell GroupWise Internet Agent 12.0.0 
-Date: Wed, 22 Aug 2012 15:12:46 +0100
-From: "Jan Beulich" <JBeulich@suse.com>
-To: "Konrad Rzeszutek Wilk" <konrad.wilk@oracle.com>
-References: <1345133009-21941-1-git-send-email-konrad.wilk@oracle.com>
-       <1345133009-21941-3-git-send-email-konrad.wilk@oracle.com>
-       <alpine.DEB.2.02.1208171835010.15568@kaball.uk.xensource.com>
-       <20120820141305.GA2713@phenom.dumpdata.com>
-       <20120821172732.GA23715@phenom.dumpdata.com>
-       <20120821190317.GA13035@phenom.dumpdata.com>
-In-Reply-To: <20120821190317.GA13035@phenom.dumpdata.com>
-Mime-Version: 1.0
-Content-Disposition: inline
-Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
-       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
-       Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
-Subject: Re: [Xen-devel] Q:pt_base in COMPAT mode offset by two pages.
- Was:Re: [PATCH 02/11] xen/x86: Use memblock_reserve for sensitive areas.
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
->>> On 21.08.12 at 21:03, Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> wrote:
-> On Tue, Aug 21, 2012 at 01:27:32PM -0400, Konrad Rzeszutek Wilk wrote:
->> Jan, I thought something odd. Part of this code replaces this:
->> 
->>     memblock_reserve(__pa(xen_start_info->mfn_list),
->>             xen_start_info->pt_base - xen_start_info->mfn_list);
->> 
->> with a more region-by-region area. What I found out that if I boot this
->> as 32-bit guest with a 64-bit hypervisor the xen_start_info->pt_base is
->> actually wrong.
->> 
->> Specifically this is what bootup says:
->> 
->> (good working case - 32bit hypervisor with 32-bit dom0):
->> (XEN)  Loaded kernel: c1000000->c1a23000
->> (XEN)  Init. ramdisk: c1a23000->cf730e00
->> (XEN)  Phys-Mach map: cf731000->cf831000
->> (XEN)  Start info:    cf831000->cf83147c
->> (XEN)  Page tables:   cf832000->cf8b5000
->> (XEN)  Boot stack:    cf8b5000->cf8b6000
->> (XEN)  TOTAL:         c0000000->cfc00000
->> 
->> [    0.000000] PT: cf832000 (f832000)
->> [    0.000000] Reserving PT: f832000->f8b5000
->> 
->> And with a 64-bit hypervisor:
->> 
->> XEN) VIRTUAL MEMORY ARRANGEMENT:
->> (XEN)  Loaded kernel: 00000000c1000000->00000000c1a23000
->> (XEN)  Init. ramdisk: 00000000c1a23000->00000000cf730e00
->> (XEN)  Phys-Mach map: 00000000cf731000->00000000cf831000
->> (XEN)  Start info:    00000000cf831000->00000000cf8314b4
->> (XEN)  Page tables:   00000000cf832000->00000000cf8b6000
->> (XEN)  Boot stack:    00000000cf8b6000->00000000cf8b7000
->> (XEN)  TOTAL:         00000000c0000000->00000000cfc00000
->> (XEN)  ENTRY ADDRESS: 00000000c16bb22c
->> 
->> [    0.000000] PT: cf834000 (f834000)
->> [    0.000000] Reserving PT: f834000->f8b8000
->> 
->> So the pt_base is offset by two pages. And looking at c/s 13257
->> its not clear to me why this two page offset was added?
-
-Honestly, without looking through this in greater detail I don't
-recall. That'll have to wait possibly until after the summit, though.
-I can't exclude that this is just a forgotten leftover from an earlier
-version of the patch. I would have thought this was to account
-for the L4 tables that the guest doesn't see, but
-- this should only be a single page
-- this should then also (or rather instead) be subtracted from
-  nr_pt_frames
-so that's likely not it.
-
->> The toolstack works fine - so launching 32-bit guests either
->> under a 32-bit hypervisor or 64-bit works fine:
->> ] domainbuilder: detail: xc_dom_alloc_segment:   page tables  : 0xcf805000 -> 
-> 0xcf885000  (pfn 0xf805 + 0x80 pages)
->> [    0.000000] PT: cf805000 (f805000)
->> 
-> 
-> And this patch on top of the others fixes this..
-
-I didn't look at this in too close detail, but I started to get
-afraid that you might be making the code dependent on
-many hypervisor implementation details. And should the
-above turn out to be a bug in the hypervisor, I hope your
-kernel side changes won't make it impossible to fix that bug.
-
-Jan
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<50351DEF020000780009702A@nat28.tlf.novell.com> b/test/corpus/<50351DEF020000780009702A@nat28.tlf.novell.com>
deleted file mode 100644 (file)
index 179ccd0..0000000
+++ /dev/null
@@ -1,186 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Aug 22 17:03:23 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 22 Aug 2012 17:03:23 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T4DOo-000287-1g
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 22 Aug 2012 17:03:23 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T4DKE-0002bB-8w; Wed, 22 Aug 2012 15:58:34 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <JBeulich@suse.com>) id 1T4DKC-0002b6-Kz
-       for xen-devel@lists.xensource.com; Wed, 22 Aug 2012 15:58:32 +0000
-Received: from [85.158.143.99:59462] by server-3.bemta-4.messagelabs.com id
-       A4/E6-09529-7A105305; Wed, 22 Aug 2012 15:58:31 +0000
-X-Env-Sender: JBeulich@suse.com
-X-Msg-Ref: server-16.tower-216.messagelabs.com!1345651109!16213860!1
-X-Originating-IP: [130.57.49.28]
-X-SpamReason: No, hits=0.0 required=7.0 tests=
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 7083 invoked from network); 22 Aug 2012 15:58:29 -0000
-Received: from nat28.tlf.novell.com (HELO nat28.tlf.novell.com) (130.57.49.28)
-       by server-16.tower-216.messagelabs.com with SMTP;
-       22 Aug 2012 15:58:29 -0000
-Received: from EMEA1-MTA by nat28.tlf.novell.com
-       with Novell_GroupWise; Wed, 22 Aug 2012 16:58:29 +0100
-Message-Id: <50351DEF020000780009702A@nat28.tlf.novell.com>
-X-Mailer: Novell GroupWise Internet Agent 12.0.0 
-Date: Wed, 22 Aug 2012 16:59:11 +0100
-From: "Jan Beulich" <JBeulich@suse.com>
-To: "Stefano Stabellini" <stefano.stabellini@eu.citrix.com>,
-       "Konrad Rzeszutek Wilk" <konrad.wilk@oracle.com>
-References: <1345133009-21941-1-git-send-email-konrad.wilk@oracle.com>
-       <1345133009-21941-3-git-send-email-konrad.wilk@oracle.com>
-       <alpine.DEB.2.02.1208171835010.15568@kaball.uk.xensource.com>
-       <20120820141305.GA2713@phenom.dumpdata.com>
-       <20120821172732.GA23715@phenom.dumpdata.com>
-       <20120821190317.GA13035@phenom.dumpdata.com>
-In-Reply-To: <20120821190317.GA13035@phenom.dumpdata.com>
-Mime-Version: 1.0
-Content-Disposition: inline
-Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
-       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
-Subject: Re: [Xen-devel] Q:pt_base in COMPAT mode offset by two pages.
- Was:Re: [PATCH 02/11] xen/x86: Use memblock_reserve for sensitive areas.
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
->>> On 21.08.12 at 21:03, Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> wrote:
-> On Tue, Aug 21, 2012 at 01:27:32PM -0400, Konrad Rzeszutek Wilk wrote:
->> On Mon, Aug 20, 2012 at 10:13:05AM -0400, Konrad Rzeszutek Wilk wrote:
->> > On Fri, Aug 17, 2012 at 06:35:12PM +0100, Stefano Stabellini wrote:
->> > > On Thu, 16 Aug 2012, Konrad Rzeszutek Wilk wrote:
->> > > > instead of a big memblock_reserve. This way we can be more
->> > > > selective in freeing regions (and it also makes it easier
->> > > > to understand where is what).
->> > > > 
->> > > > [v1: Move the auto_translate_physmap to proper line]
->> > > > [v2: Per Stefano suggestion add more comments]
->> > > > Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
->> > > 
->> > > much better now!
->> > 
->> > Thought interestingly enough it breaks 32-bit dom0s (and only dom0s).
->> > Will have a revised patch posted shortly.
->> 
->> Jan, I thought something odd. Part of this code replaces this:
->> 
->>     memblock_reserve(__pa(xen_start_info->mfn_list),
->>             xen_start_info->pt_base - xen_start_info->mfn_list);
->> 
->> with a more region-by-region area. What I found out that if I boot this
->> as 32-bit guest with a 64-bit hypervisor the xen_start_info->pt_base is
->> actually wrong.
->> 
->> Specifically this is what bootup says:
->> 
->> (good working case - 32bit hypervisor with 32-bit dom0):
->> (XEN)  Loaded kernel: c1000000->c1a23000
->> (XEN)  Init. ramdisk: c1a23000->cf730e00
->> (XEN)  Phys-Mach map: cf731000->cf831000
->> (XEN)  Start info:    cf831000->cf83147c
->> (XEN)  Page tables:   cf832000->cf8b5000
->> (XEN)  Boot stack:    cf8b5000->cf8b6000
->> (XEN)  TOTAL:         c0000000->cfc00000
->> 
->> [    0.000000] PT: cf832000 (f832000)
->> [    0.000000] Reserving PT: f832000->f8b5000
->> 
->> And with a 64-bit hypervisor:
->> 
->> XEN) VIRTUAL MEMORY ARRANGEMENT:
->> (XEN)  Loaded kernel: 00000000c1000000->00000000c1a23000
->> (XEN)  Init. ramdisk: 00000000c1a23000->00000000cf730e00
->> (XEN)  Phys-Mach map: 00000000cf731000->00000000cf831000
->> (XEN)  Start info:    00000000cf831000->00000000cf8314b4
->> (XEN)  Page tables:   00000000cf832000->00000000cf8b6000
->> (XEN)  Boot stack:    00000000cf8b6000->00000000cf8b7000
->> (XEN)  TOTAL:         00000000c0000000->00000000cfc00000
->> (XEN)  ENTRY ADDRESS: 00000000c16bb22c
->> 
->> [    0.000000] PT: cf834000 (f834000)
->> [    0.000000] Reserving PT: f834000->f8b8000
->> 
->> So the pt_base is offset by two pages. And looking at c/s 13257
->> its not clear to me why this two page offset was added?
-
-Actually, the adjustment turns out to be correct: The page
-tables for a 32-on-64 dom0 get allocated in the order "first L1",
-"first L2", "first L3", so the offset to the page table base is
-indeed 2. When reading xen/include/public/xen.h's comment
-very strictly, this is not a violation (since there nothing is said
-that the first thing in the page table space is pointed to by
-pt_base; I admit that this seems to be implied though, namely
-do I think that it is implied that the page table space is the
-range [pt_base, pt_base + nt_pt_frames), whereas that
-range here indeed is [pt_base - 2, pt_base - 2 + nt_pt_frames),
-which - without a priori knowledge - the kernel would have
-difficulty to figure out).
-
-Below is a debugging patch I used to see the full picture, if you
-want to double check.
-
-One thing I also noticed is that nr_pt_frames apparently is
-one too high in this case, as the L4 is not really part of the
-page tables from the kernel's perspective (and not represented
-anywhere in the corresponding VA range).
-
-Jan
-
---- a/xen/arch/x86/domain_build.c
-+++ b/xen/arch/x86/domain_build.c
-@@ -940,6 +940,7 @@ int __init construct_dom0(
-     si->flags       |= (xen_processor_pmbits << 8) & SIF_PM_MASK;
-     si->pt_base      = vpt_start + 2 * PAGE_SIZE * !!is_pv_32on64_domain(d);
-     si->nr_pt_frames = nr_pt_pages;
-+printk("PT#%lx\n", si->nr_pt_frames);//temp
-     si->mfn_list     = vphysmap_start;
-     snprintf(si->magic, sizeof(si->magic), "xen-3.0-x86_%d%s",
-              elf_64bit(&elf) ? 64 : 32, parms.pae ? "p" : "");
-@@ -1115,6 +1116,10 @@ int __init construct_dom0(
-                 process_pending_softirqs();
-         }
-     }
-+show_page_walk(vpt_start);//temp
-+show_page_walk(si->pt_base);//temp
-+show_page_walk(v_start);//temp
-+show_page_walk(v_end - 1);//temp
-     if ( initrd_len != 0 )
-     {
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<5035DA7E020000780008A5E6@nat28.tlf.novell.com> b/test/corpus/<5035DA7E020000780008A5E6@nat28.tlf.novell.com>
deleted file mode 100644 (file)
index 1e19b5e..0000000
+++ /dev/null
@@ -1,96 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Aug 23 07:52:34 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 23 Aug 2012 07:52:34 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T4RHL-0000ms-Nj
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 23 Aug 2012 07:52:34 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T4RD1-0006Te-Hd; Thu, 23 Aug 2012 06:48:03 +0000
-Received: from mail27.messagelabs.com ([193.109.254.147])
-       by lists.xen.org with smtp (Exim 4.72)
-       (envelope-from <jbeulich@suse.com>) id 1T4RD0-0006TZ-80
-       for xen-devel@lists.xensource.com; Thu, 23 Aug 2012 06:48:02 +0000
-X-Env-Sender: jbeulich@suse.com
-X-Msg-Ref: server-11.tower-27.messagelabs.com!1345703024!1685931!1
-X-Originating-IP: [130.57.49.28]
-X-SpamReason: No, hits=0.0 required=7.0 tests=
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 1343 invoked from network); 23 Aug 2012 06:23:44 -0000
-Received: from nat28.tlf.novell.com (HELO nat28.tlf.novell.com) (130.57.49.28)
-       by server-11.tower-27.messagelabs.com with SMTP;
-       23 Aug 2012 06:23:44 -0000
-Received: from EMEA1-MTA by nat28.tlf.novell.com
-       with Novell_GroupWise; Thu, 23 Aug 2012 07:23:43 +0100
-Message-Id: <5035DA7E020000780008A5E6@nat28.tlf.novell.com>
-X-Mailer: Novell GroupWise Internet Agent 12.0.0 
-Date: Thu, 23 Aug 2012 07:23:42 +0100
-From: "Jan Beulich" <jbeulich@suse.com>
-To: <konrad@kernel.org>
-References: <1345133009-21941-1-git-send-email-konrad.wilk@oracle.com>
-       <1345133009-21941-3-git-send-email-konrad.wilk@oracle.com>
-       <alpine.DEB.2.02.1208171835010.15568@kaball.uk.xensource.com>
-       <20120820141305.GA2713@phenom.dumpdata.com>
-       <20120821172732.GA23715@phenom.dumpdata.com>
-       <20120821190317.GA13035@phenom.dumpdata.com>
-       <50351DEF020000780009702A@nat28.tlf.novell.com>
-       <20120822185519.GA29609@phenom.dumpdata.com>
-In-Reply-To: <20120822185519.GA29609@phenom.dumpdata.com>
-Mime-Version: 1.0
-Content-Disposition: inline
-Cc: xen-devel@lists.xensource.com, linux-kernel@vger.kernel.org,
-       konrad.wilk@oracle.com, stefano.stabellini@eu.citrix.com
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] Q:pt_base in COMPAT mode offset by two pages.
- Was:Re: [PATCH 02/11] xen/x86: Use memblock_reserve for sensitive areas.
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
->>> Konrad Rzeszutek Wilk <konrad@kernel.org> 08/22/12 9:05 PM >>>
->Thinking of just sticking this patch then:
-
-Yeah, that may be best for the moment. Albeit I see no reason why you
-shouldn't be able to use your more selective logic, just making it either
-deal with only the pt_base == start-of-page-tables case (and fall back to
-the current logic alternatively), or figure out the true range.
-
-I'm nevertheless considering to re-arrange the allocation order in the
-hypervisor (and to remove the superfluously reserved page covering
-what would be the L4), so going with the former, simpler case for the
-kernel would be a reasonable option.
-
-Jan
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<5035E7D3020000780008A60D@nat28.tlf.novell.com> b/test/corpus/<5035E7D3020000780008A60D@nat28.tlf.novell.com>
deleted file mode 100644 (file)
index e461197..0000000
+++ /dev/null
@@ -1,88 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Aug 23 08:25:07 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 23 Aug 2012 08:25:07 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T4Rmn-0000x2-Is
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 23 Aug 2012 08:25:06 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T4Rif-00071t-AO; Thu, 23 Aug 2012 07:20:45 +0000
-Received: from mail27.messagelabs.com ([193.109.254.147])
-       by lists.xen.org with smtp (Exim 4.72)
-       (envelope-from <jbeulich@suse.com>) id 1T4Rid-00071o-F3
-       for xen-devel@lists.xen.org; Thu, 23 Aug 2012 07:20:43 +0000
-X-Env-Sender: jbeulich@suse.com
-X-Msg-Ref: server-16.tower-27.messagelabs.com!1345706436!8367711!1
-X-Originating-IP: [130.57.49.28]
-X-SpamReason: No, hits=0.0 required=7.0 tests=
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 2312 invoked from network); 23 Aug 2012 07:20:36 -0000
-Received: from nat28.tlf.novell.com (HELO nat28.tlf.novell.com) (130.57.49.28)
-       by server-16.tower-27.messagelabs.com with SMTP;
-       23 Aug 2012 07:20:36 -0000
-Received: from EMEA1-MTA by nat28.tlf.novell.com
-       with Novell_GroupWise; Thu, 23 Aug 2012 08:20:35 +0100
-Message-Id: <5035E7D3020000780008A60D@nat28.tlf.novell.com>
-X-Mailer: Novell GroupWise Internet Agent 12.0.0 
-Date: Thu, 23 Aug 2012 08:20:35 +0100
-From: "Jan Beulich" <jbeulich@suse.com>
-To: <julien.grall@citrix.com>,<qemu-devel@nongnu.org>
-References: <cover.1345552068.git.julien.grall@citrix.com>
-       <3921d4d38a5c20943af1ceb64f5f0691d7bfd702.1345552068.git.julien.grall@citrix.com>
-In-Reply-To: <3921d4d38a5c20943af1ceb64f5f0691d7bfd702.1345552068.git.julien.grall@citrix.com>
-Mime-Version: 1.0
-Content-Disposition: inline
-Cc: christian.limpach@gmail.com, xen-devel@lists.xen.org,
-       Stefano.Stabellini@eu.citrix.com
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [XEN][RFC PATCH V2 03/17] hvm-pci: Handle PCI
- config space in Xen
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
->>> Julien Grall <julien.grall@citrix.com> 08/22/12 8:56 PM >>>
->+int hvm_register_pcidev(domid_t domid, ioservid_t id,
->+                        uint8_t domain, uint8_t bus,
->+                        uint8_t device, uint8_t function)
->+{
-
-"domain" needs to be "uint16_t".
-
-Also, just to double check: we don't currently expose the option of MMCONFIG
-to the guest (as otherwise the change would be incomplete)?
-
-Jan
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<5035E986020000780008A617@nat28.tlf.novell.com> b/test/corpus/<5035E986020000780008A617@nat28.tlf.novell.com>
deleted file mode 100644 (file)
index dc64a23..0000000
+++ /dev/null
@@ -1,91 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Aug 23 08:32:02 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 23 Aug 2012 08:32:02 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T4RtV-0000zJ-Ar
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 23 Aug 2012 08:32:02 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T4Rph-0007Ju-0X; Thu, 23 Aug 2012 07:28:01 +0000
-Received: from mail27.messagelabs.com ([193.109.254.147])
-       by lists.xen.org with smtp (Exim 4.72)
-       (envelope-from <jbeulich@suse.com>) id 1T4Rpf-0007Jc-5Q
-       for xen-devel@lists.xen.org; Thu, 23 Aug 2012 07:27:59 +0000
-X-Env-Sender: jbeulich@suse.com
-X-Msg-Ref: server-6.tower-27.messagelabs.com!1345706873!2853462!1
-X-Originating-IP: [130.57.49.28]
-X-SpamReason: No, hits=0.0 required=7.0 tests=
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 19060 invoked from network); 23 Aug 2012 07:27:53 -0000
-Received: from nat28.tlf.novell.com (HELO nat28.tlf.novell.com) (130.57.49.28)
-       by server-6.tower-27.messagelabs.com with SMTP;
-       23 Aug 2012 07:27:53 -0000
-Received: from EMEA1-MTA by nat28.tlf.novell.com
-       with Novell_GroupWise; Thu, 23 Aug 2012 08:27:52 +0100
-Message-Id: <5035E986020000780008A617@nat28.tlf.novell.com>
-X-Mailer: Novell GroupWise Internet Agent 12.0.0 
-Date: Thu, 23 Aug 2012 08:27:50 +0100
-From: "Jan Beulich" <jbeulich@suse.com>
-To: <julien.grall@citrix.com>,<qemu-devel@nongnu.org>
-References: <cover.1345552068.git.julien.grall@citrix.com>
-       <c378b04ee29071c1d6d68bd3ef48fedadb493b10.1345552068.git.julien.grall@citrix.com>
-In-Reply-To: <c378b04ee29071c1d6d68bd3ef48fedadb493b10.1345552068.git.julien.grall@citrix.com>
-Mime-Version: 1.0
-Content-Disposition: inline
-Cc: christian.limpach@gmail.com, xen-devel@lists.xen.org,
-       Stefano.Stabellini@eu.citrix.com
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [XEN][RFC PATCH V2 05/17] hvm: Modify hvm_op
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
->>> Julien Grall <julien.grall@citrix.com> 08/22/12 8:56 PM >>>
->@@ -4069,20 +4053,12 @@ long do_hvm_op(unsigned long op, XEN_GUEST_HANDLE(void) arg)
- >
->switch ( a.index )
->{
->-            case HVM_PARAM_IOREQ_PFN:
-
-Removing sub-ops which a domain can issue for itself (which for this and
-another one below appears to be the case) is not allowed.
-
->+            case HVM_PARAM_IO_PFN_FIRST:
-
-I don't see where in this patch this and the other new sub-op constants
-get defined.
-
-Jan
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<50360B81.2070402@citrix.com> b/test/corpus/<50360B81.2070402@citrix.com>
deleted file mode 100644 (file)
index defa6c6..0000000
+++ /dev/null
@@ -1,105 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Aug 23 11:56:14 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 23 Aug 2012 11:56:14 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T4V58-0001nt-Vp
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 23 Aug 2012 11:56:14 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T4V1G-0004fi-8u; Thu, 23 Aug 2012 10:52:10 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <julien.grall@citrix.com>) id 1T4V1E-0004fd-36
-       for xen-devel@lists.xen.org; Thu, 23 Aug 2012 10:52:08 +0000
-Received: from [85.158.139.83:27478] by server-3.bemta-5.messagelabs.com id
-       EB/AE-27237-75B06305; Thu, 23 Aug 2012 10:52:07 +0000
-X-Env-Sender: julien.grall@citrix.com
-X-Msg-Ref: server-16.tower-182.messagelabs.com!1345719125!20111690!1
-X-Originating-IP: [66.165.176.63]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyNzM2MzE=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 24870 invoked from network); 23 Aug 2012 10:52:06 -0000
-Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
-       by server-16.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
-       23 Aug 2012 10:52:06 -0000
-X-IronPort-AV: E=Sophos;i="4.80,300,1344225600"; d="scan'208";a="206002670"
-Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
-       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       23 Aug 2012 06:52:04 -0400
-Received: from [10.80.248.240] (10.80.248.240) by smtprelay.citrix.com
-       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0; Thu, 23 Aug 2012
-       06:52:04 -0400
-Message-ID: <50360B81.2070402@citrix.com>
-Date: Thu, 23 Aug 2012 11:52:49 +0100
-From: Julien Grall <julien.grall@citrix.com>
-User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US;
-       rv:1.9.1.16) Gecko/20120726 Icedove/3.0.11
-MIME-Version: 1.0
-To: Jan Beulich <jbeulich@suse.com>
-References: <cover.1345552068.git.julien.grall@citrix.com>
-       <c378b04ee29071c1d6d68bd3ef48fedadb493b10.1345552068.git.julien.grall@citrix.com>
-       <5035E986020000780008A617@nat28.tlf.novell.com>
-In-Reply-To: <5035E986020000780008A617@nat28.tlf.novell.com>
-Cc: "christian.limpach@gmail.com" <christian.limpach@gmail.com>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Transfer-Encoding: 7bit
-Content-Type: text/plain; charset="us-ascii"; Format="flowed"
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [XEN][RFC PATCH V2 05/17] hvm: Modify hvm_op
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On 08/23/2012 08:27 AM, Jan Beulich wrote:
->> switch ( a.index )
->> {
->> -            case HVM_PARAM_IOREQ_PFN:
->>      
-> Removing sub-ops which a domain can issue for itself (which for this and
-> another one below appears to be the case) is not allowed.
->    
-
-I removed these 3 sub-ops because it will not work with
-QEMU disaggregation. Shared pages and event channel
-for IO request are private for each device model.
-
->> +            case HVM_PARAM_IO_PFN_FIRST:
->>      
-> I don't see where in this patch this and the other new sub-op constants
-> get defined.
->    
-Both sub-op constants are added in patch 1:
-http://lists.xen.org/archives/html/xen-devel/2012-08/msg01767.html
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<503680C5.6070509@citrix.com> b/test/corpus/<503680C5.6070509@citrix.com>
deleted file mode 100644 (file)
index e4bfb34..0000000
+++ /dev/null
@@ -1,128 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Aug 23 20:16:46 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 23 Aug 2012 20:16:46 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T4ctV-0003h8-9H
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 23 Aug 2012 20:16:46 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T4cpP-0004FD-Jh; Thu, 23 Aug 2012 19:12:27 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <julien.grall@citrix.com>) id 1T4cpN-0004F5-VN
-       for xen-devel@lists.xen.org; Thu, 23 Aug 2012 19:12:26 +0000
-Received: from [85.158.139.83:5816] by server-12.bemta-5.messagelabs.com id
-       03/5B-22359-99086305; Thu, 23 Aug 2012 19:12:25 +0000
-X-Env-Sender: julien.grall@citrix.com
-X-Msg-Ref: server-5.tower-182.messagelabs.com!1345749142!27597602!1
-X-Originating-IP: [66.165.176.89]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNjYxOTM=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 18501 invoked from network); 23 Aug 2012 19:12:23 -0000
-Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
-       by server-5.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
-       23 Aug 2012 19:12:23 -0000
-X-IronPort-AV: E=Sophos;i="4.80,301,1344225600"; d="scan'208";a="35624014"
-Received: from ftlpmailmx01.citrite.net ([10.13.107.65])
-       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       23 Aug 2012 15:12:22 -0400
-Received: from [10.80.248.240] (10.80.248.240) by smtprelay.citrix.com
-       (10.13.107.65) with Microsoft SMTP Server id 8.3.213.0; Thu, 23 Aug 2012
-       15:12:22 -0400
-Message-ID: <503680C5.6070509@citrix.com>
-Date: Thu, 23 Aug 2012 20:13:09 +0100
-From: Julien Grall <julien.grall@citrix.com>
-User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US;
-       rv:1.9.1.16) Gecko/20120726 Icedove/3.0.11
-MIME-Version: 1.0
-To: Ian Campbell <Ian.Campbell@citrix.com>
-References: <cover.1345552068.git.julien.grall@citrix.com>     
-       <fcf046ea782dda6cacb3bf11813bf1d16e531e6b.1345552068.git.julien.grall@citrix.com>
-       <1345728471.12501.90.camel@zakaz.uk.xensource.com>
-In-Reply-To: <1345728471.12501.90.camel@zakaz.uk.xensource.com>
-Cc: "christian.limpach@gmail.com" <christian.limpach@gmail.com>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
-       "qemu-devel@nongnu.org" <qemu-devel@nongnu.org>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Transfer-Encoding: 7bit
-Content-Type: text/plain; charset="us-ascii"; Format="flowed"
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [XEN][RFC PATCH V2 11/17] xc: modify save/restore
- to support multiple device models
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On 08/23/2012 02:27 PM, Ian Campbell wrote:
->
->> @@ -103,6 +103,9 @@ static ssize_t rdexact(xc_interface *xch, struct restore_ctx *ctx,
->>   #else
->>   #define RDEXACT read_exact
->>   #endif
->> +
->> +#define QEMUSIG_SIZE 21
->> +
->>   /*
->>   ** In the state file (or during transfer), all page-table pages are
->>   ** converted into a 'canonical' form where references to actual mfns
->> @@ -467,7 +522,7 @@ static int buffer_tail_hvm(xc_interface *xch, struct restore_ctx *ctx,
->>                              int vcpuextstate, uint32_t vcpuextstate_size)
->>   {
->>       uint8_t *tmp;
->> -    unsigned char qemusig[21];
->> +    unsigned char qemusig[QEMUSIG_SIZE + 1];
->>      
-> An extra + 1 here?
->    
-QEMUSIG_SIZE doesn't take into account the '\0'. So we need to add 1.
-If an error occurred, without +1, the output log lost the last character.
-
-> [...]
->    
->> -    qemusig[20] = '\0';
->> +    qemusig[QEMUSIG_SIZE] = '\0';
->>      
-> This is one bigger than it used to be now.
->
-> Perhaps this is an unrelated bug fix (I haven't check the real length of
-> the sig), in which case please can you split it out and submit
-> separately?
->    
-
-#define QEMU_SIGNATURE "DeviceModelRecord0002"
-Just checked, the length seems to be 21. I will send a patch with
-this change.
-
--- 
-Julien
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<50375721.7080503@citrix.com> b/test/corpus/<50375721.7080503@citrix.com>
deleted file mode 100644 (file)
index 7855eb2..0000000
+++ /dev/null
@@ -1,149 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Aug 24 11:31:41 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 24 Aug 2012 11:31:41 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T4rAt-0001xv-G2
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 24 Aug 2012 11:31:41 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T4r6R-00023c-EZ; Fri, 24 Aug 2012 10:26:59 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <julien.grall@citrix.com>) id 1T4r6Q-00023X-KM
-       for xen-devel@lists.xen.org; Fri, 24 Aug 2012 10:26:58 +0000
-Received: from [85.158.143.99:4566] by server-1.bemta-4.messagelabs.com id
-       1E/5C-12504-1F657305; Fri, 24 Aug 2012 10:26:57 +0000
-X-Env-Sender: julien.grall@citrix.com
-X-Msg-Ref: server-7.tower-216.messagelabs.com!1345804015!24357206!1
-X-Originating-IP: [66.165.176.63]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyNzM5MDk=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 3650 invoked from network); 24 Aug 2012 10:26:56 -0000
-Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
-       by server-7.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
-       24 Aug 2012 10:26:56 -0000
-X-IronPort-AV: E=Sophos;i="4.80,302,1344225600"; d="scan'208";a="206127150"
-Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
-       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       24 Aug 2012 06:26:55 -0400
-Received: from [10.80.248.240] (10.80.248.240) by smtprelay.citrix.com
-       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0; Fri, 24 Aug 2012
-       06:26:55 -0400
-Message-ID: <50375721.7080503@citrix.com>
-Date: Fri, 24 Aug 2012 11:27:45 +0100
-From: Julien Grall <julien.grall@citrix.com>
-User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US;
-       rv:1.9.1.16) Gecko/20120726 Icedove/3.0.11
-MIME-Version: 1.0
-To: Ian Campbell <Ian.Campbell@citrix.com>
-References: <cover.1345552068.git.julien.grall@citrix.com>     
-       <fcf046ea782dda6cacb3bf11813bf1d16e531e6b.1345552068.git.julien.grall@citrix.com>       
-       <1345728471.12501.90.camel@zakaz.uk.xensource.com>      
-       <503680C5.6070509@citrix.com>
-       <1345751525.23624.58.camel@dagon.hellion.org.uk>
-In-Reply-To: <1345751525.23624.58.camel@dagon.hellion.org.uk>
-Cc: "christian.limpach@gmail.com" <christian.limpach@gmail.com>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
-       "qemu-devel@nongnu.org" <qemu-devel@nongnu.org>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Transfer-Encoding: 7bit
-Content-Type: text/plain; charset="us-ascii"; Format="flowed"
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [XEN][RFC PATCH V2 11/17] xc: modify save/restore
- to support multiple device models
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On 08/23/2012 08:52 PM, Ian Campbell wrote:
-> On Thu, 2012-08-23 at 20:13 +0100, Julien Grall wrote:
->    
->> On 08/23/2012 02:27 PM, Ian Campbell wrote:
->>      
->>>        
->>>> @@ -103,6 +103,9 @@ static ssize_t rdexact(xc_interface *xch, struct restore_ctx *ctx,
->>>>    #else
->>>>    #define RDEXACT read_exact
->>>>    #endif
->>>> +
->>>> +#define QEMUSIG_SIZE 21
->>>> +
->>>>    /*
->>>>    ** In the state file (or during transfer), all page-table pages are
->>>>    ** converted into a 'canonical' form where references to actual mfns
->>>> @@ -467,7 +522,7 @@ static int buffer_tail_hvm(xc_interface *xch, struct restore_ctx *ctx,
->>>>                               int vcpuextstate, uint32_t vcpuextstate_size)
->>>>    {
->>>>        uint8_t *tmp;
->>>> -    unsigned char qemusig[21];
->>>> +    unsigned char qemusig[QEMUSIG_SIZE + 1];
->>>>
->>>>          
->>> An extra + 1 here?
->>>
->>>        
->> QEMUSIG_SIZE doesn't take into account the '\0'. So we need to add 1.
->> If an error occurred, without +1, the output log lost the last character.
->>      
-> So this is just a bug fix for a pre-existing issue?
->    
-Yes.
-
->>> [...]
->>>
->>>        
->>>> -    qemusig[20] = '\0';
->>>> +    qemusig[QEMUSIG_SIZE] = '\0';
->>>>
->>>>          
->>> This is one bigger than it used to be now.
->>>
->>> Perhaps this is an unrelated bug fix (I haven't check the real length of
->>> the sig), in which case please can you split it out and submit
->>> separately?
->>>
->>>        
->> #define QEMU_SIGNATURE "DeviceModelRecord0002"
->> Just checked, the length seems to be 21. I will send a patch with
->> this change.
->>      
-> Perhaps use either sizeof(QEMU_SIGNATURE) or strlen(QEMU_SIGNATURE)
-> (depending on which semantics you want)?
->    
-Here, QEMU_SIZE needs to be define as strlen (QEMU_SIGNATURE),
-but QEMU_SIGNATURE is not defined in libxc. It's defined
-in libxl/libxl_internal.h.
-By the way, I'm wondering why QEMU save (libxl__domain_save_device_model)
-is made in libxl and restore (dump_qemu) in libxc ?
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<5037586C.5000902@citrix.com> b/test/corpus/<5037586C.5000902@citrix.com>
deleted file mode 100644 (file)
index f48a05c..0000000
+++ /dev/null
@@ -1,111 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Aug 24 11:36:53 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 24 Aug 2012 11:36:53 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T4rFz-0001zP-4M
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 24 Aug 2012 11:36:53 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T4rBs-0002CL-8R; Fri, 24 Aug 2012 10:32:36 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <julien.grall@citrix.com>) id 1T4rBq-0002CG-N7
-       for xen-devel@lists.xen.org; Fri, 24 Aug 2012 10:32:34 +0000
-Received: from [85.158.143.35:60387] by server-3.bemta-4.messagelabs.com id
-       62/44-08232-24857305; Fri, 24 Aug 2012 10:32:34 +0000
-X-Env-Sender: julien.grall@citrix.com
-X-Msg-Ref: server-12.tower-21.messagelabs.com!1345804346!12659610!1
-X-Originating-IP: [66.165.176.63]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyNzM5MDk=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 24484 invoked from network); 24 Aug 2012 10:32:27 -0000
-Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
-       by server-12.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
-       24 Aug 2012 10:32:27 -0000
-X-IronPort-AV: E=Sophos;i="4.80,302,1344225600"; d="scan'208";a="206127540"
-Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
-       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       24 Aug 2012 06:32:25 -0400
-Received: from [10.80.248.240] (10.80.248.240) by smtprelay.citrix.com
-       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0; Fri, 24 Aug 2012
-       06:32:26 -0400
-Message-ID: <5037586C.5000902@citrix.com>
-Date: Fri, 24 Aug 2012 11:33:16 +0100
-From: Julien Grall <julien.grall@citrix.com>
-User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US;
-       rv:1.9.1.16) Gecko/20120726 Icedove/3.0.11
-MIME-Version: 1.0
-To: Keir Fraser <keir.xen@gmail.com>
-References: <CC5BEE01.3CBD1%keir.xen@gmail.com>
-In-Reply-To: <CC5BEE01.3CBD1%keir.xen@gmail.com>
-Cc: "qemu-devel@nongnu.org" <qemu-devel@nongnu.org>,
-       "christian.limpach@gmail.com" <christian.limpach@gmail.com>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>,
-       Ian Campbell <Ian.Campbell@citrix.com>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Transfer-Encoding: 7bit
-Content-Type: text/plain; charset="us-ascii"; Format="flowed"
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [XEN][RFC PATCH V2 01/17] hvm: Modify interface to
- support multiple ioreq server
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On 08/23/2012 02:26 PM, Keir Fraser wrote:
-> On 23/08/2012 14:18, "Ian Campbell"<Ian.Campbell@citrix.com>  wrote:
->
->    
->>> diff --git a/xen/include/public/hvm/ioreq.h b/xen/include/public/hvm/ioreq.h
->>> index 4022a1d..87aacd3 100644
->>> --- a/xen/include/public/hvm/ioreq.h
->>> +++ b/xen/include/public/hvm/ioreq.h
->>> @@ -34,6 +34,7 @@
->>>
->>>   #define IOREQ_TYPE_PIO          0 /* pio */
->>>   #define IOREQ_TYPE_COPY         1 /* mmio ops */
->>> +#define IOREQ_TYPE_PCI_CONFIG   2 /* pci config space ops */
->>>   #define IOREQ_TYPE_TIMEOFFSET   7
->>>   #define IOREQ_TYPE_INVALIDATE   8 /* mapcache */
->>>        
->> I wonder why we skip 2-6 now -- perhaps they used to be something else
->> and we are avoiding them to avoid strange errors? In which case adding
->> the new on as 9 might be a good idea.
->>      
-> They were almost certainly used for representing R-M-W ALU operations back
-> in the days of the old IO emulator, very long ago. Still, there's no harm in
-> leaving them unused.
->    
-
-Ok. So I will use number 9 for IOREQ_TYPE_PCI_CONFIG.
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<503779F5.80508@citrix.com> b/test/corpus/<503779F5.80508@citrix.com>
deleted file mode 100644 (file)
index 47c7d30..0000000
+++ /dev/null
@@ -1,189 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Aug 24 14:00:18 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 24 Aug 2012 14:00:18 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T4tUj-0002Qr-KH
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 24 Aug 2012 14:00:18 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T4tQH-0006pV-Ad; Fri, 24 Aug 2012 12:55:37 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <julien.grall@citrix.com>) id 1T4tQG-0006pP-61
-       for xen-devel@lists.xen.org; Fri, 24 Aug 2012 12:55:36 +0000
-Received: from [85.158.139.83:63725] by server-5.bemta-5.messagelabs.com id
-       A0/56-31019-7C977305; Fri, 24 Aug 2012 12:55:35 +0000
-X-Env-Sender: julien.grall@citrix.com
-X-Msg-Ref: server-13.tower-182.messagelabs.com!1345812933!27086743!1
-X-Originating-IP: [66.165.176.63]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyNzM5MDk=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 32271 invoked from network); 24 Aug 2012 12:55:34 -0000
-Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
-       by server-13.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
-       24 Aug 2012 12:55:34 -0000
-X-IronPort-AV: E=Sophos;i="4.80,304,1344225600"; d="scan'208";a="206138511"
-Received: from ftlpmailmx01.citrite.net ([10.13.107.65])
-       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       24 Aug 2012 08:55:32 -0400
-Received: from [10.80.248.240] (10.80.248.240) by smtprelay.citrix.com
-       (10.13.107.65) with Microsoft SMTP Server id 8.3.213.0; Fri, 24 Aug 2012
-       08:55:32 -0400
-Message-ID: <503779F5.80508@citrix.com>
-Date: Fri, 24 Aug 2012 13:56:21 +0100
-From: Julien Grall <julien.grall@citrix.com>
-User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US;
-       rv:1.9.1.16) Gecko/20120726 Icedove/3.0.11
-MIME-Version: 1.0
-To: Ian Campbell <Ian.Campbell@citrix.com>
-References: <cover.1345552068.git.julien.grall@citrix.com>     
-       <51efcbff92f713286b5839884769ef34ab0c39f7.1345552068.git.julien.grall@citrix.com>
-       <1345728617.12501.92.camel@zakaz.uk.xensource.com>
-In-Reply-To: <1345728617.12501.92.camel@zakaz.uk.xensource.com>
-Cc: "christian.limpach@gmail.com" <christian.limpach@gmail.com>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
-       "qemu-devel@nongnu.org" <qemu-devel@nongnu.org>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Transfer-Encoding: 7bit
-Content-Type: text/plain; charset="us-ascii"; Format="flowed"
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
-Subject: Re: [Xen-devel] [XEN][RFC PATCH V2 12/17] xl: Add interface to
- handle qemu disaggregation
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On 08/23/2012 02:30 PM, Ian Campbell wrote:
-> On Wed, 2012-08-22 at 13:31 +0100, Julien Grall wrote:
->    
->> This patch modifies libxl interface for qemu disaggregation.
->>      
-> I'd rather see the interfaces changes in the same patch as the
-> implementation of the new interfaces.
->
->    
->> For the moment, due to some dependencies between devices, we
->> can't let the user choose which QEMU emulate a device.
->>
->> Moreoever this patch adds an "id" field to nic interface.
->> It will be used in config file to specify which QEMU handle
->> the network card.
->>      
-> Is domid+devid not sufficient to identify which nic?
->    
-Is the user can specify or find devid easily ?
-I added "id" because, I would like that the user
-can identify without any problem a network
-interface.
-
->> A possible disaggregation is:
->>      - UI: Emulate graphic card, USB, keyboard, mouse, default devices
->>      (PIIX4, root bridge, ...)
->>      - IDE: Emulate disk
->>      - Serial: Emulate serial port
->>      - Audio: Emulate audio card
->>      - Net: Emulate one or more network cards, multiple QEMU can emulate
->>      different card. The emulated card is specified with its nic ID.
->>
->> Signed-off-by: Julien Grall<julien.grall@citrix.com>
->> ---
->>   tools/libxl/libxl.h         |    3 +++
->>   tools/libxl/libxl_types.idl |   15 +++++++++++++++
->>   2 files changed, 18 insertions(+), 0 deletions(-)
->>
->> diff --git a/tools/libxl/libxl.h b/tools/libxl/libxl.h
->> index c614d6f..71d4808 100644
->> --- a/tools/libxl/libxl.h
->> +++ b/tools/libxl/libxl.h
->> @@ -307,6 +307,7 @@ void libxl_cpuid_dispose(libxl_cpuid_policy_list *cpuid_list);
->>   #define LIBXL_PCI_FUNC_ALL (~0U)
->>
->>   typedef uint32_t libxl_domid;
->> +typedef uint32_t libxl_dmid;
->>
->>   /*
->>    * Formatting Enumerations.
->> @@ -478,12 +479,14 @@ typedef struct {
->>       libxl_domain_build_info b_info;
->>
->>       int num_disks, num_nics, num_pcidevs, num_vfbs, num_vkbs;
->> +    int num_dms;
->>
->>       libxl_device_disk *disks;
->>       libxl_device_nic *nics;
->>       libxl_device_pci *pcidevs;
->>       libxl_device_vfb *vfbs;
->>       libxl_device_vkb *vkbs;
->> +    libxl_dm *dms;
->>
->>       libxl_action_on_shutdown on_poweroff;
->>       libxl_action_on_shutdown on_reboot;
->> diff --git a/tools/libxl/libxl_types.idl b/tools/libxl/libxl_types.idl
->> index daa8c79..36c802a 100644
->> --- a/tools/libxl/libxl_types.idl
->> +++ b/tools/libxl/libxl_types.idl
->> @@ -246,6 +246,20 @@ libxl_domain_sched_params = Struct("domain_sched_params",[
->>       ("extratime",    integer, {'init_val': 'LIBXL_DOMAIN_SCHED_PARAM_EXTRATIME_DEFAULT'}),
->>       ])
->>
->> +libxl_dm_cap = Enumeration("dm_cap", [
->> +    (1, "UI"), # Emulate all UI + default device
->>      
-> What does "default device" equate too?
->    
-The following devices:
-    - i440fx
-    - piix3
-    - piix4
-    - dma
-    - xen apic
-    - xen platform
-
-
->> +    (2, "IDE"), # Emulate IDE
->> +    (4, "SERIAL"), # Emulate Serial
->> +    (8, "AUDIO"), # Emulate audio
->> +    ])
->> +
->> +libxl_dm = Struct("dm", [
->> +    ("name",         string),
->> +    ("path",         string),
->> +    ("capabilities",   uint64),
->>      
-> uint64 and not libxl_dm_cap?
->    
-Will be fixed in the next patch version.
-
--- 
-Julien
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<50377DAD.6000405@citrix.com> b/test/corpus/<50377DAD.6000405@citrix.com>
deleted file mode 100644 (file)
index 44c01e0..0000000
+++ /dev/null
@@ -1,158 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Aug 24 19:09:28 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 24 Aug 2012 19:09:28 +0100
-Received: from offsite2.bytemark.co.uk ([85.17.170.78])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T4xts-00015f-8d
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 24 Aug 2012 18:42:30 +0100
-Received: from [50.57.142.19] (helo=lists.xen.org)
-       by offsite2.bytemark.co.uk with esmtp (Exim 4.69)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T4tkz-0000iI-Sc
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 24 Aug 2012 13:17:02 +0000
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T4tfc-0007ek-7Y; Fri, 24 Aug 2012 13:11:28 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <julien.grall@citrix.com>) id 1T4tfa-0007ee-1L
-       for xen-devel@lists.xen.org; Fri, 24 Aug 2012 13:11:26 +0000
-Received: from [85.158.143.35:45624] by server-1.bemta-4.messagelabs.com id
-       A1/01-12504-D7D77305; Fri, 24 Aug 2012 13:11:25 +0000
-X-Env-Sender: julien.grall@citrix.com
-X-Msg-Ref: server-16.tower-21.messagelabs.com!1345813883!13553971!1
-X-Originating-IP: [66.165.176.89]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNjY0ODk=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 21382 invoked from network); 24 Aug 2012 13:11:24 -0000
-Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
-       by server-16.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
-       24 Aug 2012 13:11:24 -0000
-X-IronPort-AV: E=Sophos;i="4.80,304,1344225600"; d="scan'208";a="35703202"
-Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
-       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       24 Aug 2012 09:11:22 -0400
-Received: from [10.80.248.240] (10.80.248.240) by smtprelay.citrix.com
-       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0; Fri, 24 Aug 2012
-       09:11:22 -0400
-Message-ID: <50377DAD.6000405@citrix.com>
-Date: Fri, 24 Aug 2012 14:12:13 +0100
-From: Julien Grall <julien.grall@citrix.com>
-User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US;
-       rv:1.9.1.16) Gecko/20120726 Icedove/3.0.11
-MIME-Version: 1.0
-To: Ian Campbell <Ian.Campbell@citrix.com>
-References: <cover.1345552068.git.julien.grall@citrix.com>     
-       <557fe87e4a6c0defdc6549e23e8e5e7b2ebb7a9f.1345552068.git.julien.grall@citrix.com>
-       <1345728948.12501.98.camel@zakaz.uk.xensource.com>
-In-Reply-To: <1345728948.12501.98.camel@zakaz.uk.xensource.com>
-Cc: "christian.limpach@gmail.com" <christian.limpach@gmail.com>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
-       "qemu-devel@nongnu.org" <qemu-devel@nongnu.org>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Transfer-Encoding: 7bit
-Content-Type: text/plain; charset="us-ascii"; Format="flowed"
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 85.17.170.78
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,UNPARSEABLE_RELAY
-       autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [XEN][RFC PATCH V2 14/17] xl-parsing: Parse new
- device_models option
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On 08/23/2012 02:35 PM, Ian Campbell wrote:
-> On Wed, 2012-08-22 at 13:32 +0100, Julien Grall wrote:
->    
->> Add new option "device_models". The user can specify the capability of the
->> QEMU (ui, vifs, ...). This option only works with QEMU upstream (qemu-xen).
->>
->> For instance:
->> device_models= [ 'name=all,vifs=nic1', 'name=qvga,ui', 'name=qide,ide' ]
->>      
-> iirc you can give multiple vifs -- what does that syntax look like?
->
->    
-vifs=nic1;nic2
-
-> I didn't ask before -- what does naming the dm give you? Is it just used
-> for ui things like logging or can you cross reference this in some way?
->
->    
-It's used for logging and in qemu log filename. It's not a mandatory.
->> Signed-off-by: Julien Grall<julien.grall@citrix.com>
->> ---
->>   tools/libxl/Makefile     |    2 +-
->>   tools/libxl/libxlu_dm.c  |   96 ++++++++++++++++++++++++++++++++++++++++++++++
->>   tools/libxl/libxlutil.h  |    5 ++
->>   tools/libxl/xl_cmdimpl.c |   29 +++++++++++++-
->>   4 files changed, 130 insertions(+), 2 deletions(-)
->>   create mode 100644 tools/libxl/libxlu_dm.c
->>
->> diff --git a/tools/libxl/Makefile b/tools/libxl/Makefile
->> index 47fb110..2b58721 100644
->> --- a/tools/libxl/Makefile
->> +++ b/tools/libxl/Makefile
->> @@ -79,7 +79,7 @@ AUTOINCS= libxlu_cfg_y.h libxlu_cfg_l.h _libxl_list.h _paths.h \
->>   AUTOSRCS= libxlu_cfg_y.c libxlu_cfg_l.c
->>   AUTOSRCS += _libxl_save_msgs_callout.c _libxl_save_msgs_helper.c
->>   LIBXLU_OBJS = libxlu_cfg_y.o libxlu_cfg_l.o libxlu_cfg.o \
->> -   libxlu_disk_l.o libxlu_disk.o libxlu_vif.o libxlu_pci.o
->> +   libxlu_disk_l.o libxlu_disk.o libxlu_vif.o libxlu_pci.o libxlu_dm.o
->>   $(LIBXLU_OBJS): CFLAGS += $(CFLAGS_libxenctrl) # For xentoollog.h
->>
->>   CLIENTS = xl testidl libxl-save-helper
->> diff --git a/tools/libxl/libxlu_dm.c b/tools/libxl/libxlu_dm.c
->> new file mode 100644
->> index 0000000..9f0a347
->> --- /dev/null
->> +++ b/tools/libxl/libxlu_dm.c
->> @@ -0,0 +1,96 @@
->> +#include "libxl_osdeps.h" /* must come before any other headers */
->> +#include<stdlib.h>
->> +#include "libxlu_internal.h"
->> +#include "libxlu_cfg_i.h"
->> +
->> +static void split_string_into_string_list(const char *str,
->> +                                          const char *delim,
->> +                                          libxl_string_list *psl)
->>      
-> Is this a cut-n-paste of the one in xl_cmdimpl.c or did it change?
->
-> Probably better to add this as a common utility function somewhere.
->    
-It's nearly the same, except it's skip blank at the beginning
-of a value.
-For instance if we have 'foo;   bar', the function will return
-['foo', 'bar'].
-
--- 
-Julien
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<50378054.9080506@citrix.com> b/test/corpus/<50378054.9080506@citrix.com>
deleted file mode 100644 (file)
index 26a1348..0000000
+++ /dev/null
@@ -1,129 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Aug 24 19:09:30 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 24 Aug 2012 19:09:30 +0100
-Received: from offsite2.bytemark.co.uk ([85.17.170.78])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T4xtc-00015C-MY
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 24 Aug 2012 18:42:16 +0100
-Received: from [50.57.142.19] (helo=lists.xen.org)
-       by offsite2.bytemark.co.uk with esmtp (Exim 4.69)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T4tvn-0002o4-Hg
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 24 Aug 2012 13:28:11 +0000
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T4tqc-000862-8G; Fri, 24 Aug 2012 13:22:50 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <julien.grall@citrix.com>) id 1T4tqa-00085u-MV
-       for xen-devel@lists.xen.org; Fri, 24 Aug 2012 13:22:48 +0000
-Received: from [85.158.143.35:9173] by server-3.bemta-4.messagelabs.com id
-       59/EE-08232-82087305; Fri, 24 Aug 2012 13:22:48 +0000
-X-Env-Sender: julien.grall@citrix.com
-X-Msg-Ref: server-16.tower-21.messagelabs.com!1345814564!13555981!1
-X-Originating-IP: [66.165.176.89]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNjY0ODk=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 14420 invoked from network); 24 Aug 2012 13:22:46 -0000
-Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
-       by server-16.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
-       24 Aug 2012 13:22:46 -0000
-X-IronPort-AV: E=Sophos;i="4.80,304,1344225600"; d="scan'208";a="35705051"
-Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
-       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       24 Aug 2012 09:22:41 -0400
-Received: from [10.80.248.240] (10.80.248.240) by smtprelay.citrix.com
-       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0; Fri, 24 Aug 2012
-       09:22:40 -0400
-Message-ID: <50378054.9080506@citrix.com>
-Date: Fri, 24 Aug 2012 14:23:32 +0100
-From: Julien Grall <julien.grall@citrix.com>
-User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US;
-       rv:1.9.1.16) Gecko/20120726 Icedove/3.0.11
-MIME-Version: 1.0
-To: Ian Campbell <Ian.Campbell@citrix.com>
-References: <cover.1345552068.git.julien.grall@citrix.com>     
-       <51efcbff92f713286b5839884769ef34ab0c39f7.1345552068.git.julien.grall@citrix.com>       
-       <1345728617.12501.92.camel@zakaz.uk.xensource.com>      
-       <503779F5.80508@citrix.com>
-       <1345813421.19419.11.camel@zakaz.uk.xensource.com>
-In-Reply-To: <1345813421.19419.11.camel@zakaz.uk.xensource.com>
-Cc: "christian.limpach@gmail.com" <christian.limpach@gmail.com>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
-       "qemu-devel@nongnu.org" <qemu-devel@nongnu.org>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Transfer-Encoding: 7bit
-Content-Type: text/plain; charset="us-ascii"; Format="flowed"
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 85.17.170.78
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,UNPARSEABLE_RELAY
-       autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [XEN][RFC PATCH V2 12/17] xl: Add interface to
- handle qemu disaggregation
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On 08/24/2012 02:03 PM, Ian Campbell wrote:
->
->>>> @@ -246,6 +246,20 @@ libxl_domain_sched_params = Struct("domain_sched_params",[
->>>>        ("extratime",    integer, {'init_val': 'LIBXL_DOMAIN_SCHED_PARAM_EXTRATIME_DEFAULT'}),
->>>>        ])
->>>>
->>>> +libxl_dm_cap = Enumeration("dm_cap", [
->>>> +    (1, "UI"), # Emulate all UI + default device
->>>>
->>>>          
->>> What does "default device" equate too?
->>>
->>>        
->> The following devices:
->>      - i440fx
->>      - piix3
->>      - piix4
->>      - dma
->>      - xen apic
->>      - xen platform
->>      
-> So this is more like "CORE" than "UI"?
->
-> Is there a reason why UI (which I guess means the VGA, spice and VFB
-> devices?) are required to be in the same emulator as these?
->
->    
-
-VGA, keyboard and mouse (that can be plug via USB) need
-to be in the same emulator. Otherwise we can't use VNC or
-something like that.
-
-I made this choice, after discussion with Stefano, because
-theses devices depends each others. For instance, keyboard
-emulates A20.
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<503786CF.40006@citrix.com> b/test/corpus/<503786CF.40006@citrix.com>
deleted file mode 100644 (file)
index e76a6fc..0000000
+++ /dev/null
@@ -1,249 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Aug 24 18:41:34 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 24 Aug 2012 18:41:34 +0100
-Received: from offsite2.bytemark.co.uk ([85.17.170.78])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T4xsx-00015f-KM
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 24 Aug 2012 18:41:34 +0100
-Received: from [50.57.142.19] (helo=lists.xen.org)
-       by offsite2.bytemark.co.uk with esmtp (Exim 4.69)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T4uNh-0000Pu-KC
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 24 Aug 2012 13:57:01 +0000
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T4uHe-0000M1-9l; Fri, 24 Aug 2012 13:50:46 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <julien.grall@citrix.com>) id 1T4uHc-0000Lv-Lx
-       for xen-devel@lists.xen.org; Fri, 24 Aug 2012 13:50:44 +0000
-Received: from [85.158.143.35:7081] by server-3.bemta-4.messagelabs.com id
-       16/D7-08232-4B687305; Fri, 24 Aug 2012 13:50:44 +0000
-X-Env-Sender: julien.grall@citrix.com
-X-Msg-Ref: server-11.tower-21.messagelabs.com!1345816240!11496766!1
-X-Originating-IP: [66.165.176.89]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNjY0ODk=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 28463 invoked from network); 24 Aug 2012 13:50:41 -0000
-Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
-       by server-11.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
-       24 Aug 2012 13:50:41 -0000
-X-IronPort-AV: E=Sophos;i="4.80,304,1344225600"; d="scan'208";a="35708720"
-Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
-       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       24 Aug 2012 09:50:19 -0400
-Received: from [10.80.248.240] (10.80.248.240) by smtprelay.citrix.com
-       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0; Fri, 24 Aug 2012
-       09:50:19 -0400
-Message-ID: <503786CF.40006@citrix.com>
-Date: Fri, 24 Aug 2012 14:51:11 +0100
-From: Julien Grall <julien.grall@citrix.com>
-User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US;
-       rv:1.9.1.16) Gecko/20120726 Icedove/3.0.11
-MIME-Version: 1.0
-To: Ian Campbell <Ian.Campbell@citrix.com>
-References: <cover.1345552068.git.julien.grall@citrix.com>     
-       <9522ee398a1fd3cdce48cfe883b307336ae6674f.1345552068.git.julien.grall@citrix.com>
-       <1345730172.12501.113.camel@zakaz.uk.xensource.com>
-In-Reply-To: <1345730172.12501.113.camel@zakaz.uk.xensource.com>
-Cc: "christian.limpach@gmail.com" <christian.limpach@gmail.com>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
-       "qemu-devel@nongnu.org" <qemu-devel@nongnu.org>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Transfer-Encoding: 7bit
-Content-Type: text/plain; charset="us-ascii"; Format="flowed"
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 85.17.170.78
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,UNPARSEABLE_RELAY
-       autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [XEN][RFC PATCH V2 15/17] xl: support spawn/destroy
- on multiple device model
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On 08/23/2012 02:56 PM, Ian Campbell wrote:
-> On Wed, 2012-08-22 at 13:32 +0100, Julien Grall wrote:
->    
->> @@ -991,12 +1057,11 @@ static void domcreate_launch_dm(libxl__egc *egc, libxl__multidev *multidev,
->>           libxl__device_console_dispose(&console);
->>
->>           if (need_qemu) {
->> -            dcs->dmss.dm.guest_domid = domid;
->> -            libxl__spawn_local_dm(egc,&dcs->dmss.dm);
->> +            assert(dcs->dmss);
->> +            domcreate_spawn_devmodel(egc, dcs, dcs->current_dmid);
->>               return;
->>           } else {
->> -            assert(!dcs->dmss.dm.guest_domid);
->> -            domcreate_devmodel_started(egc,&dcs->dmss.dm, 0);
->> +            assert(!dcs->dmss);
->>      
-> Doesn't this stop progress in this case meaning we'll never get to the
-> end of the async op?
->
->    
-Indeed, I will fix on the next patch version.
-
->>               return;
->>           }
->>       }
->>      
-> [..]
->    
->> @@ -1044,7 +1044,8 @@ int libxl__wait_for_device_model(libxl__gc *gc,
->>                                    void *check_callback_userdata)
->>   {
->>       char *path;
->> -    path = libxl__sprintf(gc, "/local/domain/0/device-model/%d/state", domid);
->> +    path = libxl__sprintf(gc, "/local/domain/0/dms/%u/%u/state",
->> +                          domid, dmid);
->>      
-> Isn't this control path shared with qemu? I'm not sure we can just
-> change it like that? We need to at least retain compatibility with
-> pre-disag qemus.
->
->    
-Indeed, as we have multiple QEMUs for a same domain, we need
-to have one control path by QEMU.
-
-Pre-disag QEMUs cannot work with my changes inside the Xen.
-Xen will not forward by default ioreq if there is no ioreq server.
->>   const char *libxl__domain_device_model(libxl__gc *gc,
->> -                                       const libxl_domain_build_info *info)
->> +                                       uint32_t dmid,
->> +                                       const libxl_domain_build_info *b_info)
->>   {
->>       libxl_ctx *ctx = libxl__gc_owner(gc);
->>       const char *dm;
->> +    libxl_domain_config *guest_config = CONTAINER_OF(b_info, *guest_config,
->> +                                                     b_info);
->>
->> -    if (libxl_defbool_val(info->device_model_stubdomain))
->> +    if (libxl_defbool_val(guest_config->b_info.device_model_stubdomain))
->>      
-> You just extracted guest_config from b_info but you still have the
-> b_info point to hand. Why not use it? Likewise a few more times below.
->    
-An error, will be fix on next patch version.
->> +     * PCI device number. Before 3, we have IDE, ISA, SouthBridge and
->> +     * XEN PCI. Theses devices will be emulate in each QEMU, but only
->> +     * one QEMU (the one which emulates default device) will register
->> +     * these devices through Xen PCI hypercall.
->> +     */
->> +    static unsigned int bdf = 3;
->>      
-> Do you mean const rather than static?
->
->    
-No static. With QEMU disaggregation, the toolstack allocate
-BDF incrementaly. QEMU is unable to know if a BDF is already
-allocated in another QEMU.
-For the moment, bdf variable is used to give a devfn for
-network card and VGA.
-
-> Isn't this baking in some implementation detail from the current qemu
-> version? What happens if it changes?
->    
-
-I don't have another way for the moment. I would be happy,
-if someone have a good solution.
-
->> +
->>       libxl_ctx *ctx = libxl__gc_owner(gc);
->>       const libxl_domain_create_info *c_info =&guest_config->c_info;
->>       const libxl_domain_build_info *b_info =&guest_config->b_info;
->> +    const libxl_dm *dm_config =&guest_config->dms[dmid];
->>       const libxl_device_disk *disks = guest_config->disks;
->>       const libxl_device_nic *nics = guest_config->nics;
->>       const int num_disks = guest_config->num_disks;
->>       const int num_nics = guest_config->num_nics;
->> -    const libxl_vnc_info *vnc = libxl__dm_vnc(guest_config);
->> +    const libxl_vnc_info *vnc = libxl__dm_vnc(dmid, guest_config);
->>       const libxl_sdl_info *sdl = dm_sdl(guest_config);
->>       const char *keymap = dm_keymap(guest_config);
->>       flexarray_t *dm_args;
->>       int i;
->>       uint64_t ram_size;
->> +    uint32_t cap_ui = dm_config->capabilities&  LIBXL_DM_CAP_UI;
->> +    uint32_t cap_ide = dm_config->capabilities&  LIBXL_DM_CAP_IDE;
->> +    uint32_t cap_serial = dm_config->capabilities&  LIBXL_DM_CAP_SERIAL;
->> +    uint32_t cap_audio = dm_config->capabilities&  LIBXL_DM_CAP_AUDIO;
->>      
-> ->capabilities is defined as 64 bits, but you use 32 here, which happens
-> to work if you know what the actual values of the enum are but whoever
-> adds the 33rd capability will probably get it wrong.
->
->       bool cap_foo = !! (dm_....capabiltieis&  LIBXL_DM_CAP_FOO)
->
-> would probably work?
->    
-Indeed, will be fix in next patch version.
-
->>       dm_args = flexarray_make(16, 1);
->>       if (!dm_args)
->> @@ -348,11 +389,12 @@ static char ** libxl__build_device_model_args_new(libxl__gc *gc,
->>                         "-xen-domid",
->>                         libxl__sprintf(gc, "%d", guest_domid), NULL);
->>
->> +    flexarray_append(dm_args, "-nodefaults");
->>      
-> Does this not cause a change in behaviour other than what you've
-> accounted for here?
->    
-  By default QEMU emulates VGA card, and a network card. This options,
-disabled it  and avoid to add "-net none".
-I added it after a discussion on my first patch series.
-https://lists.gnu.org/archive/html/qemu-devel/2012-03/msg04767.html
-
->> @@ -528,65 +583,69 @@ static char ** libxl__build_device_model_args_new(libxl__gc *gc,
->>           abort();
->>       }
->>
->> -    ram_size = libxl__sizekb_to_mb(b_info->max_memkb - b_info->video_memkb);
->> +    // Allocate ram space of 32Mo per previous device model to store rom
->>      
-> What is this about?
->
-> (also that Mo looks a bit odd in among all these mb's)
->
->    
-It's space for ROM allocation, like vga, rtl8139 roms ...
-Each QEMU can load ROM and memory, but the memory
-allocator consider that it's alone. It starts to allocate
-ROM space from the end of memory RAM.
-
-It's a solution suggest by Stefano, it's avoid modification
-in QEMU. As we don't know the number of ROM and their
-size per QEMU, we chose a space of 32 Mo to be sure, but in
-fine most of time memory is not allocated.
-
--- 
-Julien
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<50379193.3020600@citrix.com> b/test/corpus/<50379193.3020600@citrix.com>
deleted file mode 100644 (file)
index 43fbc75..0000000
+++ /dev/null
@@ -1,228 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Aug 24 18:39:30 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 24 Aug 2012 18:39:30 +0100
-Received: from offsite2.bytemark.co.uk ([85.17.170.78])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T4xqH-0000iY-Mn
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 24 Aug 2012 18:38:52 +0100
-Received: from [50.57.142.19] (helo=lists.xen.org)
-       by offsite2.bytemark.co.uk with esmtp (Exim 4.69)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T4v6V-0001nT-07
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 24 Aug 2012 14:43:19 +0000
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T4uzw-0000uJ-H7; Fri, 24 Aug 2012 14:36:32 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <julien.grall@citrix.com>) id 1T4uzu-0000uE-6V
-       for xen-devel@lists.xen.org; Fri, 24 Aug 2012 14:36:30 +0000
-Received: from [85.158.143.99:64099] by server-3.bemta-4.messagelabs.com id
-       D0/55-08232-D6197305; Fri, 24 Aug 2012 14:36:29 +0000
-X-Env-Sender: julien.grall@citrix.com
-X-Msg-Ref: server-5.tower-216.messagelabs.com!1345818987!27456079!1
-X-Originating-IP: [66.165.176.89]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNjY0ODk=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 6919 invoked from network); 24 Aug 2012 14:36:28 -0000
-Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
-       by server-5.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
-       24 Aug 2012 14:36:28 -0000
-X-IronPort-AV: E=Sophos;i="4.80,304,1344225600"; d="scan'208";a="35714961"
-Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
-       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       24 Aug 2012 10:36:16 -0400
-Received: from [10.80.248.240] (10.80.248.240) by smtprelay.citrix.com
-       (10.13.107.66) with Microsoft SMTP Server id 8.3.213.0; Fri, 24 Aug 2012
-       10:36:16 -0400
-Message-ID: <50379193.3020600@citrix.com>
-Date: Fri, 24 Aug 2012 15:37:07 +0100
-From: Julien Grall <julien.grall@citrix.com>
-User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US;
-       rv:1.9.1.16) Gecko/20120726 Icedove/3.0.11
-MIME-Version: 1.0
-To: Ian Campbell <Ian.Campbell@citrix.com>
-References: <cover.1345552068.git.julien.grall@citrix.com>     
-       <9522ee398a1fd3cdce48cfe883b307336ae6674f.1345552068.git.julien.grall@citrix.com>       
-       <1345730172.12501.113.camel@zakaz.uk.xensource.com>     
-       <503786CF.40006@citrix.com>
-       <1345817370.19419.22.camel@zakaz.uk.xensource.com>
-In-Reply-To: <1345817370.19419.22.camel@zakaz.uk.xensource.com>
-Cc: "christian.limpach@gmail.com" <christian.limpach@gmail.com>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
-       "qemu-devel@nongnu.org" <qemu-devel@nongnu.org>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Transfer-Encoding: 7bit
-Content-Type: text/plain; charset="us-ascii"; Format="flowed"
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 85.17.170.78
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,UNPARSEABLE_RELAY
-       autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [XEN][RFC PATCH V2 15/17] xl: support spawn/destroy
- on multiple device model
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On 08/24/2012 03:09 PM, Ian Campbell wrote:
-> On Fri, 2012-08-24 at 14:51 +0100, Julien Grall wrote:
->    
->>>> @@ -1044,7 +1044,8 @@ int libxl__wait_for_device_model(libxl__gc *gc,
->>>>                                     void *check_callback_userdata)
->>>>    {
->>>>        char *path;
->>>> -    path = libxl__sprintf(gc, "/local/domain/0/device-model/%d/state", domid);
->>>> +    path = libxl__sprintf(gc, "/local/domain/0/dms/%u/%u/state",
->>>> +                          domid, dmid);
->>>>
->>>>          
->>> Isn't this control path shared with qemu? I'm not sure we can just
->>> change it like that? We need to at least retain compatibility with
->>> pre-disag qemus.
->>>
->>>
->>>        
->> Indeed, as we have multiple QEMUs for a same domain, we need
->> to have one control path by QEMU.
->>
->> Pre-disag QEMUs cannot work with my changes inside the Xen.
->> Xen will not forward by default ioreq if there is no ioreq server.
->>      
-> We might need to consider making disagg an opt in feature, with the
-> default being to have as we do today.
->    
-When you told feature, it's only for libxl or even for Xen ?
-In case of libxl, if 'device_models' options is not specified
-we used only one QEMU. So there is compatibility with
-previous configuration file.
-In case of Xen, it's hard to have a compatibility. We can
-still spawn only one QEMU, but ioreq handling will not
-send an io request if no device models registered it.
-There is no more default QEMU.
-
->>>> +     * PCI device number. Before 3, we have IDE, ISA, SouthBridge and
->>>> +     * XEN PCI. Theses devices will be emulate in each QEMU, but only
->>>> +     * one QEMU (the one which emulates default device) will register
->>>> +     * these devices through Xen PCI hypercall.
->>>> +     */
->>>> +    static unsigned int bdf = 3;
->>>>
->>>>          
->>> Do you mean const rather than static?
->>>
->>>
->>>        
->> No static. With QEMU disaggregation, the toolstack allocate
->> BDF incrementaly. QEMU is unable to know if a BDF is already
->> allocated in another QEMU.
->>      
-> This is broken if the toolstack is building multiple domains, since the
-> bdf will be preserved across each of them.
->
-> You need to put this in some sort of data structure specific to this
-> particular iteration of the builder code. We must surely have something
-> suitable close to hand in this function. libxl__domain_build_state
-> perhaps?
->
->    
-Will be fix in the next patch version.
-> A static variable in a library is almost always a mistake.
->
->    
->>> Isn't this baking in some implementation detail from the current qemu
->>> version? What happens if it changes?
->>>
->>>        
->> I don't have another way for the moment. I would be happy,
->> if someone have a good solution.
->>      
-> Could we at least make the assignments of the 3 prior BDFs explicit on
-> the command line too?
->    
-I don't understand your question. Theses 3 priors BDFs can't
-be modify via QEMU command line (or I don't know how).
->>>> @@ -528,65 +583,69 @@ static char ** libxl__build_device_model_args_new(libxl__gc *gc,
->>>>            abort();
->>>>        }
->>>>
->>>> -    ram_size = libxl__sizekb_to_mb(b_info->max_memkb - b_info->video_memkb);
->>>> +    // Allocate ram space of 32Mo per previous device model to store rom
->>>>
->>>>          
->>> What is this about?
->>>
->>> (also that Mo looks a bit odd in among all these mb's)
->>>
->>>
->>>        
->> It's space for ROM allocation, like vga, rtl8139 roms ...
->> Each QEMU can load ROM and memory, but the memory
->> allocator consider that it's alone. It starts to allocate
->> ROM space from the end of memory RAM.
->>
->> It's a solution suggest by Stefano, it's avoid modification
->> in QEMU. As we don't know the number of ROM and their
->> size per QEMU, we chose a space of 32 Mo to be sure, but in
->> fine most of time memory is not allocated.
->>      
-> "32Mo per previous device model" is the bit which struck me as odd. That
-> means the first device model uses 32Mo, the second 64Mo, the third 96Mo
-> etc?
->    
-That means:
-     - first QEMU can allocate ROM after ram_size + 0
-     - second after ram_size + 32 mo
-     - ...
-
-It's a hack to avoid modification in QEMU memory allocator
-(find_ram_offset exec.c in QEMU).
-
-> Aren't we already modifying qemu quite substantially to implement this
-> functionality anyway? so why are we trying to avoid it in this one
-> corner? Especially at the cost of doing something which on the face of
-> it looks quite strange!
->
->    
-It's not possible to made it in QEMU, otherwise QEMU need to
-be spawn one by one. Indeed, the next QEMU need to know
-what is the last 'address' used by the previous QEMU.
-
-I made a modification in this way, but it was abandoned. Indeed,
-it required XenStore.
-
-> Isn't space for the ROMs allocated by SeaBIOS as part of enumerating the
-> PCI bus anyway? Or is this a different per-ROM allocation?
->    
-It's the rom allocated via pci_add_option_rom in QEMU.
-QEMU seems to store ROM in memory and then SeaBIOS
-will copy it, in the right place.
-
--- 
-Julien
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<5037AE20020000780008A7A8@nat28.tlf.novell.com> b/test/corpus/<5037AE20020000780008A7A8@nat28.tlf.novell.com>
deleted file mode 100644 (file)
index c7e78c6..0000000
+++ /dev/null
@@ -1,114 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Aug 24 18:39:31 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 24 Aug 2012 18:39:31 +0100
-Received: from offsite2.bytemark.co.uk ([85.17.170.78])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T4xm3-0000lk-Sr
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 24 Aug 2012 18:34:26 +0100
-Received: from [50.57.142.19] (helo=lists.xen.org)
-       by offsite2.bytemark.co.uk with esmtp (Exim 4.69)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T4w3p-0006GZ-0x
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 24 Aug 2012 15:44:37 +0000
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T4vyR-00027t-90; Fri, 24 Aug 2012 15:39:03 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <JBeulich@suse.com>) id 1T4vyP-00027m-4d
-       for xen-devel@lists.xen.org; Fri, 24 Aug 2012 15:39:01 +0000
-Received: from [85.158.138.51:19494] by server-2.bemta-3.messagelabs.com id
-       CE/59-09157-410A7305; Fri, 24 Aug 2012 15:39:00 +0000
-X-Env-Sender: JBeulich@suse.com
-X-Msg-Ref: server-13.tower-174.messagelabs.com!1345822737!8978565!1
-X-Originating-IP: [130.57.49.28]
-X-SpamReason: No, hits=0.0 required=7.0 tests=
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 20396 invoked from network); 24 Aug 2012 15:38:57 -0000
-Received: from nat28.tlf.novell.com (HELO nat28.tlf.novell.com) (130.57.49.28)
-       by server-13.tower-174.messagelabs.com with SMTP;
-       24 Aug 2012 15:38:57 -0000
-Received: from EMEA1-MTA by nat28.tlf.novell.com
-       with Novell_GroupWise; Fri, 24 Aug 2012 16:38:57 +0100
-Message-Id: <5037AE20020000780008A7A8@nat28.tlf.novell.com>
-X-Mailer: Novell GroupWise Internet Agent 12.0.0 
-Date: Fri, 24 Aug 2012 16:38:56 +0100
-From: "Jan Beulich" <JBeulich@suse.com>
-To: "Julien Grall" <julien.grall@citrix.com>
-References: <cover.1345552068.git.julien.grall@citrix.com>
-       <c378b04ee29071c1d6d68bd3ef48fedadb493b10.1345552068.git.julien.grall@citrix.com>
-       <5035E986020000780008A617@nat28.tlf.novell.com>
-       <50360B81.2070402@citrix.com>
-In-Reply-To: <50360B81.2070402@citrix.com>
-Mime-Version: 1.0
-Content-Disposition: inline
-Cc: "christian.limpach@gmail.com" <christian.limpach@gmail.com>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 85.17.170.78
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,UNPARSEABLE_RELAY
-       autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [XEN][RFC PATCH V2 05/17] hvm: Modify hvm_op
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
->>> On 23.08.12 at 12:52, Julien Grall <julien.grall@citrix.com> wrote:
-> On 08/23/2012 08:27 AM, Jan Beulich wrote:
->>> switch ( a.index )
->>> {
->>> -            case HVM_PARAM_IOREQ_PFN:
->>>      
->> Removing sub-ops which a domain can issue for itself (which for this and
->> another one below appears to be the case) is not allowed.
->>    
-> 
-> I removed these 3 sub-ops because it will not work with
-> QEMU disaggregation. Shared pages and event channel
-> for IO request are private for each device model.
-
-Then they need to be made inaccessible for that specific setup, not
-removed altogether.
-
->>> +            case HVM_PARAM_IO_PFN_FIRST:
->>>      
->> I don't see where in this patch this and the other new sub-op constants
->> get defined.
->>    
-> Both sub-op constants are added in patch 1:
-> http://lists.xen.org/archives/html/xen-devel/2012-08/msg01767.html 
-
-Hmm, I can certainly see reasons for breaking up things that way,
-but I generally prefer patches to represent functional units.
-
-Jan
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<503E451A.20107@citrix.com> b/test/corpus/<503E451A.20107@citrix.com>
deleted file mode 100644 (file)
index 4c7638d..0000000
+++ /dev/null
@@ -1,165 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Aug 29 17:41:21 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 29 Aug 2012 17:41:21 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T6lKQ-0008Gk-Pp
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 29 Aug 2012 17:41:21 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T6lG6-0000Pq-4X; Wed, 29 Aug 2012 16:36:50 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <david.vrabel@citrix.com>) id 1T6lG4-0000Pl-9g
-       for xen-devel@lists.xensource.com; Wed, 29 Aug 2012 16:36:48 +0000
-Received: from [85.158.143.35:34685] by server-3.bemta-4.messagelabs.com id
-       E1/6A-08232-F154E305; Wed, 29 Aug 2012 16:36:47 +0000
-X-Env-Sender: david.vrabel@citrix.com
-X-Msg-Ref: server-8.tower-21.messagelabs.com!1346258203!12474798!1
-X-Originating-IP: [66.165.176.89]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNjc3NTk=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 3102 invoked from network); 29 Aug 2012 16:36:45 -0000
-Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
-       by server-8.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
-       29 Aug 2012 16:36:45 -0000
-X-IronPort-AV: E=Sophos;i="4.80,335,1344211200"; d="scan'208";a="36200921"
-Received: from ftlpmailmx01.citrite.net ([10.13.107.65])
-       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       29 Aug 2012 16:36:43 +0000
-Received: from [10.80.2.76] (10.80.2.76) by FTLPMAILMX01.citrite.net
-       (10.13.107.65) with Microsoft SMTP Server id 8.3.279.1; Wed, 29 Aug 2012
-       12:36:43 -0400
-Message-ID: <503E451A.20107@citrix.com>
-Date: Wed, 29 Aug 2012 17:36:42 +0100
-From: David Vrabel <david.vrabel@citrix.com>
-User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US;
-       rv:1.9.1.16) Gecko/20120428 Iceowl/1.0b1 Icedove/3.0.11
-MIME-Version: 1.0
-To: Andres Lagar-Cavilla <andreslc@gridcentric.ca>
-References: <1346246116-29999-1-git-send-email-david.vrabel@citrix.com>
-       <1346246116-29999-3-git-send-email-david.vrabel@citrix.com>
-       <7392D0E0-02A4-48D7-8B16-4F93EA01F3AF@gridcentric.ca>
-In-Reply-To: <7392D0E0-02A4-48D7-8B16-4F93EA01F3AF@gridcentric.ca>
-Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
-       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="windows-1252"
-Content-Transfer-Encoding: quoted-printable
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 2/2] xen/privcmd: add PRIVCMD_MMAPBATCH_V2
-       ioctl
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On 29/08/12 17:14, Andres Lagar-Cavilla wrote:
-> =
-
-> On Aug 29, 2012, at 9:15 AM, David Vrabel wrote:
-> =
-
->> From: David Vrabel <david.vrabel@citrix.com>
->>
->> PRIVCMD_MMAPBATCH_V2 extends PRIVCMD_MMAPBATCH with an additional
->> field for reporting the error code for every frame that could not be
->> mapped.  libxc prefers PRIVCMD_MMAPBATCH_V2 over PRIVCMD_MMAPBATCH.
-[...]
->> diff --git a/drivers/xen/privcmd.c b/drivers/xen/privcmd.c
->> index ccee0f1..ddd32cf 100644
->> --- a/drivers/xen/privcmd.c
->> +++ b/drivers/xen/privcmd.c
->> @@ -248,18 +248,23 @@ struct mmap_batch_state {
->>     struct vm_area_struct *vma;
->>     int err;
->>
->> -   xen_pfn_t __user *user;
->> +   xen_pfn_t __user *user_mfn;
->> +   int __user *user_err;
->> };
->>
->> static int mmap_batch_fn(void *data, void *state)
->> {
->>     xen_pfn_t *mfnp =3D data;
->> +   int *err =3D data;
-> Am I missing something or is there an aliasing here? Both mfnp and err po=
-int to data?
-
-There is deliberate aliasing here.  We use the mfn array to save the
-error codes for later processing.
-
->>     struct mmap_batch_state *st =3D state;
->> +   int ret;
->>
->> -   if (xen_remap_domain_mfn_range(st->vma, st->va & PAGE_MASK, *mfnp, 1,
->> -                                  st->vma->vm_page_prot, st->domain) < 0) {
->> -           *mfnp |=3D 0xf0000000U;
->> -           st->err++;
->> +   ret =3D xen_remap_domain_mfn_range(st->vma, st->va & PAGE_MASK, *mfnp,=
- 1,
->> +                                    st->vma->vm_page_prot, st->domain);
->> +   if (ret < 0) {
->> +           *err =3D ret;
->> +           if (st->err =3D=3D 0 || st->err =3D=3D -ENOENT)
->> +                   st->err =3D ret;
-> This will unset -ENOENT if a frame after an ENOENT error fails differentl=
-y.
-
-I thought that was what the original implementation did but it seems it
-does not.
-
->> @@ -325,12 +359,16 @@ static long privcmd_ioctl_mmap_batch(void __user *=
-udata)
->>
->>     up_write(&mm->mmap_sem);
->>
->> -   if (state.err > 0) {
->> -           state.user =3D m.arr;
->> +   if (state.err) {
->> +           state.user_mfn =3D (xen_pfn_t *)m.arr;
->> +           state.user_err =3D m.err;
->>             ret =3D traverse_pages(m.num, sizeof(xen_pfn_t),
->> -                          &pagelist,
->> -                          mmap_return_errors, &state);
->> -   }
->> +                                &pagelist,
->> +                                mmap_return_errors, &state);
-
-> The callback now maps data to err (instead of mfnp =85 but I see no
-> change to the gather_array other than a cast =85am I missing something?
-
-The kernel mfn and the err array are aliased.
-
-I could have made gather_array() allow the kernel array to have larger
-elements than the user array but that looked like too much work.
-
-David
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<503E49BE.7080704@citrix.com> b/test/corpus/<503E49BE.7080704@citrix.com>
deleted file mode 100644 (file)
index bf50776..0000000
+++ /dev/null
@@ -1,114 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Aug 29 18:01:06 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 29 Aug 2012 18:01:06 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T6ldY-0008La-Js
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 29 Aug 2012 18:01:06 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T6lZL-0000hb-Ba; Wed, 29 Aug 2012 16:56:43 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <david.vrabel@citrix.com>) id 1T6lZJ-0000hW-P6
-       for xen-devel@lists.xensource.com; Wed, 29 Aug 2012 16:56:41 +0000
-Received: from [85.158.143.99:16777] by server-3.bemta-4.messagelabs.com id
-       E3/DD-08232-9C94E305; Wed, 29 Aug 2012 16:56:41 +0000
-X-Env-Sender: david.vrabel@citrix.com
-X-Msg-Ref: server-7.tower-216.messagelabs.com!1346259399!24083762!1
-X-Originating-IP: [66.165.176.63]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyNzQ5MjE=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 17712 invoked from network); 29 Aug 2012 16:56:40 -0000
-Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
-       by server-7.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
-       29 Aug 2012 16:56:40 -0000
-X-IronPort-AV: E=Sophos;i="4.80,335,1344211200"; d="scan'208";a="206567486"
-Received: from ftlpmailmx01.citrite.net ([10.13.107.65])
-       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       29 Aug 2012 16:56:32 +0000
-Received: from [10.80.2.76] (10.80.2.76) by FTLPMAILMX01.citrite.net
-       (10.13.107.65) with Microsoft SMTP Server id 8.3.279.1; Wed, 29 Aug 2012
-       12:56:31 -0400
-Message-ID: <503E49BE.7080704@citrix.com>
-Date: Wed, 29 Aug 2012 17:56:30 +0100
-From: David Vrabel <david.vrabel@citrix.com>
-User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US;
-       rv:1.9.1.16) Gecko/20120428 Iceowl/1.0b1 Icedove/3.0.11
-MIME-Version: 1.0
-To: Ian Campbell <Ian.Campbell@citrix.com>
-References: <1346246116-29999-1-git-send-email-david.vrabel@citrix.com>
-       <1346257402.20019.9.camel@zakaz.uk.xensource.com>
-In-Reply-To: <1346257402.20019.9.camel@zakaz.uk.xensource.com>
-Cc: Andres Lagar-Cavilla <andres@gridcentric.ca>,
-       "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
-       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCHv2 0/2] xen/privcmd: support for paged-out
- frames
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On 29/08/12 17:23, Ian Campbell wrote:
-> On Wed, 2012-08-29 at 14:15 +0100, David Vrabel wrote:
->> This series is a straight forward-port of some functionality from
->> classic kernels to support Xen hosts that do paging of guests.
->>
->> This isn't functionality the XenServer makes use of so I've not tested
->> these with paging in use.
->>
->> Changes since v1:
->>
->> - Don't change PRIVCMD_MMAPBATCH (except to #define a constant for the
->>   error).  It's broken and not really fixable sensibly and libxc will
->>   use V2 if it is available.
->> - Return -ENOENT if all failures were -ENOENT.
-> 
-> Is this behaviour a requirement from something?
-
-It's the behaviour libxc is expecting.  It doesn't retry unless errno ==
-ENOENT.
-
-> Usually hypercalls of this type return a global error only if something
-> went wrong with the general mechanics of the hypercall (e.g. faults
-> reading arguments etc) and leave reporting of the individual failures of
-> subops to the op specific field, even if all the subops fail in the same
-> way.
-
-I didn't design this interface...  Feel free to propose (and implement)
-an alternate MMAPBATCH_V3 interface.
-
-David
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<503F3BC9.6020100@citrix.com> b/test/corpus/<503F3BC9.6020100@citrix.com>
deleted file mode 100644 (file)
index f67ba64..0000000
+++ /dev/null
@@ -1,136 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Aug 30 11:14:49 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 30 Aug 2012 11:14:49 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T71lr-0006UR-Ke
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 30 Aug 2012 11:14:49 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T71ge-0005Ym-Px; Thu, 30 Aug 2012 10:09:20 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <david.vrabel@citrix.com>) id 1T71gc-0005Yh-6R
-       for xen-devel@lists.xensource.com; Thu, 30 Aug 2012 10:09:18 +0000
-Received: from [85.158.139.83:54221] by server-4.bemta-5.messagelabs.com id
-       58/9C-23042-DCB3F305; Thu, 30 Aug 2012 10:09:17 +0000
-X-Env-Sender: david.vrabel@citrix.com
-X-Msg-Ref: server-11.tower-182.messagelabs.com!1346321355!20450846!1
-X-Originating-IP: [66.165.176.63]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyNzUxOTI=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 15267 invoked from network); 30 Aug 2012 10:09:16 -0000
-Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
-       by server-11.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
-       30 Aug 2012 10:09:16 -0000
-X-IronPort-AV: E=Sophos;i="4.80,338,1344211200"; d="scan'208";a="206641610"
-Received: from ftlpmailmx01.citrite.net ([10.13.107.65])
-       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       30 Aug 2012 10:09:15 +0000
-Received: from [10.80.2.76] (10.80.2.76) by FTLPMAILMX01.citrite.net
-       (10.13.107.65) with Microsoft SMTP Server id 8.3.279.1; Thu, 30 Aug 2012
-       06:09:14 -0400
-Message-ID: <503F3BC9.6020100@citrix.com>
-Date: Thu, 30 Aug 2012 11:09:13 +0100
-From: David Vrabel <david.vrabel@citrix.com>
-User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US;
-       rv:1.9.1.16) Gecko/20120428 Iceowl/1.0b1 Icedove/3.0.11
-MIME-Version: 1.0
-To: Ian Campbell <Ian.Campbell@citrix.com>
-References: <1346246116-29999-1-git-send-email-david.vrabel@citrix.com>        
-       <1346257402.20019.9.camel@zakaz.uk.xensource.com>       
-       <503E49BE.7080704@citrix.com>
-       <1346263520.6655.4.camel@dagon.hellion.org.uk>
-In-Reply-To: <1346263520.6655.4.camel@dagon.hellion.org.uk>
-Cc: Andres Lagar-Cavilla <andres@gridcentric.ca>,
-       "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
-       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCHv2 0/2] xen/privcmd: support for paged-out
- frames
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On 29/08/12 19:05, Ian Campbell wrote:
-> On Wed, 2012-08-29 at 17:56 +0100, David Vrabel wrote:
->> On 29/08/12 17:23, Ian Campbell wrote:
->>> On Wed, 2012-08-29 at 14:15 +0100, David Vrabel wrote:
->>>> This series is a straight forward-port of some functionality from
->>>> classic kernels to support Xen hosts that do paging of guests.
->>>>
->>>> This isn't functionality the XenServer makes use of so I've not tested
->>>> these with paging in use.
->>>>
->>>> Changes since v1:
->>>>
->>>> - Don't change PRIVCMD_MMAPBATCH (except to #define a constant for the
->>>>   error).  It's broken and not really fixable sensibly and libxc will
->>>>   use V2 if it is available.
->>>> - Return -ENOENT if all failures were -ENOENT.
->>>
->>> Is this behaviour a requirement from something?
->>
->> It's the behaviour libxc is expecting.  It doesn't retry unless errno ==
->> ENOENT.
-> 
-> Surely if that is the case you must return -ENOENT if *any* failure was
-> -ENOENT? That seems to be what the linux-2.6.18-xen.hg implementation
-> does.
-
-Yes.
-
-libxc will subsequently fail the whole map call is any frame errors
-without ENOENT so if someone was to propose a V3 it may be useful to
-return a different error code for other errors.
-
->>> Usually hypercalls of this type return a global error only if something
->>> went wrong with the general mechanics of the hypercall (e.g. faults
->>> reading arguments etc) and leave reporting of the individual failures of
->>> subops to the op specific field, even if all the subops fail in the same
->>> way.
->>
->> I didn't design this interface...
-> 
-> The interface you described doesn't make any sense...
-
-I don't entirely agree.  There are three types of result: success,
-retryable errors, and fatal errors.  It's not nonsensical to return
-different error codes for these.
-
-Regardless, it's not what the original implementation does so I'll fix
-rework the patch.
-
-David
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<50409CE002000076000B3B44@novprvoes0310.provo.novell.com> b/test/corpus/<50409CE002000076000B3B44@novprvoes0310.provo.novell.com>
deleted file mode 100644 (file)
index 0c68784..0000000
+++ /dev/null
@@ -1,150 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Aug 31 18:26:48 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 31 Aug 2012 18:26:48 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T7UzW-0007dw-B5
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 31 Aug 2012 18:26:48 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T7Uuz-0000sl-94; Fri, 31 Aug 2012 17:22:05 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <kallan@suse.com>) id 1T7Uov-0000rr-LN
-       for xen-devel@lists.xen.org; Fri, 31 Aug 2012 17:15:49 +0000
-Received: from [85.158.139.83:55091] by server-12.bemta-5.messagelabs.com id
-       3D/C3-18300-441F0405; Fri, 31 Aug 2012 17:15:48 +0000
-X-Env-Sender: kallan@suse.com
-X-Msg-Ref: server-6.tower-182.messagelabs.com!1346433347!24088724!1
-X-Originating-IP: [137.65.248.74]
-X-SpamReason: No, hits=0.5 required=7.0 tests=BODY_RANDOM_LONG
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 18721 invoked from network); 31 Aug 2012 17:15:47 -0000
-Received: from novprvoes0310.provo.novell.com (HELO
-       novprvoes0310.provo.novell.com) (137.65.248.74)
-       by server-6.tower-182.messagelabs.com with SMTP;
-       31 Aug 2012 17:15:47 -0000
-Received: from INET-PRV-MTA by novprvoes0310.provo.novell.com
-       with Novell_GroupWise; Fri, 31 Aug 2012 11:15:46 -0600
-Message-Id: <50409CE002000076000B3B44@novprvoes0310.provo.novell.com>
-X-Mailer: Novell GroupWise Internet Agent 12.0.1 
-Date: Fri, 31 Aug 2012 11:15:44 -0600
-From: "Kirk Allan" <kallan@suse.com>
-To: "Charles Arnold" <CARNOLD@suse.com>,
- "Jan Beulich" <JBeulich@suse.com>
-References: <1344935141.5926.6.camel@zakaz.uk.xensource.com>
-       <20120814100704.GA19704@bloms.de>
-       <1346421542.27277.218.camel@zakaz.uk.xensource.com>
-       <1346425278.27277.224.camel@zakaz.uk.xensource.com>
-       <5040F7140200007800097E91@nat28.tlf.novell.com>
-       <1346428292.27277.243.camel@zakaz.uk.xensource.com>
-       <5040FB490200007800097ED2@nat28.tlf.novell.com>
-In-Reply-To: <5040FB490200007800097ED2@nat28.tlf.novell.com>
-Mime-Version: 1.0
-Content-Disposition: inline
-X-Mailman-Approved-At: Fri, 31 Aug 2012 17:22:03 +0000
-Cc: Dieter Bloms <xensource.com@bloms.de>,
-       Ian Jackson <Ian.Jackson@eu.citrix.com>,
-       Ian Campbell <Ian.Campbell@citrix.com>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [Xen-users] Xen 4.2 TODO (io and irq parameter are
- not evaluated by xl)
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-
-
->>> On 8/31/2012 at 09:58 AM, in message
-<5040FB490200007800097ED2@nat28.tlf.novell.com>, "Jan Beulich"
-<JBeulich@suse.com> wrote: 
->>>> On 31.08.12 at 17:51, Ian Campbell <Ian.Campbell@citrix.com> wrote:
->> On Fri, 2012-08-31 at 16:40 +0100, Jan Beulich wrote:
->>> >>> On 31.08.12 at 17:01, Ian Campbell <Ian.Campbell@citrix.com> wrote:
->>> > --- a/docs/man/xl.cfg.pod.5      Fri Aug 31 12:03:55 2012 +0100
->>> > +++ b/docs/man/xl.cfg.pod.5      Fri Aug 31 15:54:42 2012 +0100
->>> > @@ -402,6 +402,30 @@ for more information on the "permissive"
->>> >  
->>> >  =back
->>> >  
->>> > +=item B<ioports=[ "IOPORT_RANGE", "IOPORT_RANGE", ... ]>
->>> 
->>> Is this really with quotes, and requiring an array?
->> 
->> I was mostly just following
->> http://cmrg.fifthhorseman.net/wiki/xen#grantingaccesstoserialhardwaretoadomU 
-> 
->> which suggested that this is the xm syntax too.
->> 
->>> > +
->>> > +=over 4
->>> > +
->>> > +Allow guest to access specific legacy I/O ports. Each B<IOPORT_RANGE>
->>> > +is given in hexadecimal and may either a span e.g. C<2f8-2ff>
->>> > +(inclusive) or a single I/O port C<2f8>.
->>> > +
->>> > +It is recommended to use this option only for trusted VMs under
->>> > +administrator control.
->>> > +
->>> > +=back
->>> > +
->>> > +=item B<irqs=[ NUMBER, NUMBER, ... ]>
->>> 
->>> Similarly here - is this really requiring an array? I ask because
->>> I had to look at this just last week for a colleague, and what
->>> we got out of inspection of examples/code was that a simple
->>> number (and a simple range without quotes above) are
->>> permitted too.
->> 
->> I had a look in create.py and opts.py and didn't see that, I suppose I
->> missed it.
->> 
->> I could implement support for either an array or a simple string/number
->> but it would complicate the code quite a bit. Is it really worth it?
-> 
-> Charles, Kirk, could you comment here?
-
-In one of my Window's vm config files, I was able to get the vm to boot using ioports=['3f8-3ff'].  My goal was to do serial debugging of the Windows vm.  I also added irq=[4] to the config file.  However, I was not able to actually get a debug session to work.  The physical machine running windbg received a string from the vm which gave me hope that it was working, but then it never received further data so the vm eventually booted without being attached to the debugger.
-
-> 
-> Thanks, Jan
-> 
-> 
-> _______________________________________________
-> Xen-devel mailing list
-> Xen-devel@lists.xen.org
-> http://lists.xen.org/xen-devel
-
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<5040A73502000076000B3B82@novprvoes0310.provo.novell.com> b/test/corpus/<5040A73502000076000B3B82@novprvoes0310.provo.novell.com>
deleted file mode 100644 (file)
index 2633f11..0000000
+++ /dev/null
@@ -1,123 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Aug 31 19:03:44 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 31 Aug 2012 19:03:44 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T7VZC-0007lW-Nx
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 31 Aug 2012 19:03:44 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T7VVe-0003wR-Bu; Fri, 31 Aug 2012 17:59:58 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <kallan@suse.com>) id 1T7VVc-0003wJ-QD
-       for xen-devel@lists.xen.org; Fri, 31 Aug 2012 17:59:57 +0000
-Received: from [85.158.139.83:36838] by server-9.bemta-5.messagelabs.com id
-       73/27-20529-C9BF0405; Fri, 31 Aug 2012 17:59:56 +0000
-X-Env-Sender: kallan@suse.com
-X-Msg-Ref: server-16.tower-182.messagelabs.com!1346435993!20620376!1
-X-Originating-IP: [137.65.248.74]
-X-SpamReason: No, hits=0.5 required=7.0 tests=BODY_RANDOM_LONG
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 10072 invoked from network); 31 Aug 2012 17:59:53 -0000
-Received: from novprvoes0310.provo.novell.com (HELO
-       novprvoes0310.provo.novell.com) (137.65.248.74)
-       by server-16.tower-182.messagelabs.com with SMTP;
-       31 Aug 2012 17:59:53 -0000
-Received: from INET-PRV-MTA by novprvoes0310.provo.novell.com
-       with Novell_GroupWise; Fri, 31 Aug 2012 11:59:52 -0600
-Message-Id: <5040A73502000076000B3B82@novprvoes0310.provo.novell.com>
-X-Mailer: Novell GroupWise Internet Agent 12.0.1 
-Date: Fri, 31 Aug 2012 11:59:49 -0600
-From: "Kirk Allan" <kallan@suse.com>
-To: "Ian Campbell" <Ian.Campbell@citrix.com>
-References: <1344935141.5926.6.camel@zakaz.uk.xensource.com>
-       <20120814100704.GA19704@bloms.de>
-       <1346421542.27277.218.camel@zakaz.uk.xensource.com>
-       <1346425278.27277.224.camel@zakaz.uk.xensource.com>
-       <5040F7140200007800097E91@nat28.tlf.novell.com>
-       <1346428292.27277.243.camel@zakaz.uk.xensource.com>
-       <5040FB490200007800097ED2@nat28.tlf.novell.com>
-       <50409CE002000076000B3B44@novprvoes0310.provo.novell.com>
-       <1346434547.5820.10.camel@dagon.hellion.org.uk>
-In-Reply-To: <1346434547.5820.10.camel@dagon.hellion.org.uk>
-Mime-Version: 1.0
-Content-Disposition: inline
-Cc: Charles Arnold <CARNOLD@suse.com>, DieterBloms <xensource.com@bloms.de>,
-       Ian Jackson <Ian.Jackson@eu.citrix.com>, Jan Beulich <JBeulich@suse.com>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [Xen-users] Xen 4.2 TODO (io and irq parameter are
- not evaluated by xl)
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-
-
->>> On 8/31/2012 at 11:35 AM, in message
-<1346434547.5820.10.camel@dagon.hellion.org.uk>, Ian Campbell
-<Ian.Campbell@citrix.com> wrote: 
-> On Fri, 2012-08-31 at 18:15 +0100, Kirk Allan wrote:
-> 
->> > Charles, Kirk, could you comment here?
->> 
->> In one of my Window's vm config files, I was able to get the vm to
->> boot using ioports=['3f8-3ff'].  My goal was to do serial debugging of
->> the Windows vm.  I also added irq=[4] to the config file.  However, I
->> was not able to actually get a debug session to work.  The physical
->> machine running windbg received a string from the vm which gave me
->> hope that it was working, but then it never received further data so
->> the vm eventually booted without being attached to the debugger.
-> 
-> Thanks, the question was whether it would be useful to implement the
->      ioports = '3f8-3ff'
->      irq = 4
-> syntax as well as the
->      ioports = ['3f8-3ff']
->      irq = [4]
-> but it looks like you are actually using the array version anyway?
-
-I first looked at this last week.  I found reference to both formats so I tried both.  I was only able to get the ioports = ['3f8-3ff'] and irq = [4] syntax to allow a vm to boot.
-
-> 
-> I think I'd rather avoid implementing both options unless there is a
-> strong reason to do so.
-
-For me, I don't have a strong reason to implement support for both ways.  
-
-> 
-> Ian.
-
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<5040F7140200007800097E91@nat28.tlf.novell.com> b/test/corpus/<5040F7140200007800097E91@nat28.tlf.novell.com>
deleted file mode 100644 (file)
index 8e77eca..0000000
+++ /dev/null
@@ -1,129 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Aug 31 16:45:00 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 31 Aug 2012 16:45:00 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T7TP0-0007Ha-Dg
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 31 Aug 2012 16:45:00 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T7TKs-0005RM-4R; Fri, 31 Aug 2012 15:40:42 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <JBeulich@suse.com>) id 1T7TKr-0005RF-2h
-       for xen-devel@lists.xen.org; Fri, 31 Aug 2012 15:40:41 +0000
-Received: from [85.158.143.35:54962] by server-1.bemta-4.messagelabs.com id
-       81/53-12504-8FAD0405; Fri, 31 Aug 2012 15:40:40 +0000
-X-Env-Sender: JBeulich@suse.com
-X-Msg-Ref: server-6.tower-21.messagelabs.com!1346427639!16093843!1
-X-Originating-IP: [130.57.49.28]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogMTMwLjU3LjQ5LjI4ID0+IDM2OTU=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 24536 invoked from network); 31 Aug 2012 15:40:39 -0000
-Received: from nat28.tlf.novell.com (HELO nat28.tlf.novell.com) (130.57.49.28)
-       by server-6.tower-21.messagelabs.com with SMTP;
-       31 Aug 2012 15:40:39 -0000
-Received: from EMEA1-MTA by nat28.tlf.novell.com
-       with Novell_GroupWise; Fri, 31 Aug 2012 16:40:39 +0100
-Message-Id: <5040F7140200007800097E91@nat28.tlf.novell.com>
-X-Mailer: Novell GroupWise Internet Agent 12.0.0 
-Date: Fri, 31 Aug 2012 16:40:36 +0100
-From: "Jan Beulich" <JBeulich@suse.com>
-To: "Ian Campbell" <Ian.Campbell@citrix.com>
-References: <1344935141.5926.6.camel@zakaz.uk.xensource.com>
-       <20120814100704.GA19704@bloms.de>
-       <1346421542.27277.218.camel@zakaz.uk.xensource.com>
-       <1346425278.27277.224.camel@zakaz.uk.xensource.com>
-In-Reply-To: <1346425278.27277.224.camel@zakaz.uk.xensource.com>
-Mime-Version: 1.0
-Content-Disposition: inline
-Cc: Dieter Bloms <xensource.com@bloms.de>,
-       Ian Jackson <Ian.Jackson@eu.citrix.com>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [Xen-users] Xen 4.2 TODO (io and irq parameter are
- not evaluated by xl)
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
->>> On 31.08.12 at 17:01, Ian Campbell <Ian.Campbell@citrix.com> wrote:
-> --- a/docs/man/xl.cfg.pod.5  Fri Aug 31 12:03:55 2012 +0100
-> +++ b/docs/man/xl.cfg.pod.5  Fri Aug 31 15:54:42 2012 +0100
-> @@ -402,6 +402,30 @@ for more information on the "permissive"
->  
->  =back
->  
-> +=item B<ioports=[ "IOPORT_RANGE", "IOPORT_RANGE", ... ]>
-
-Is this really with quotes, and requiring an array?
-
-> +
-> +=over 4
-> +
-> +Allow guest to access specific legacy I/O ports. Each B<IOPORT_RANGE>
-> +is given in hexadecimal and may either a span e.g. C<2f8-2ff>
-> +(inclusive) or a single I/O port C<2f8>.
-> +
-> +It is recommended to use this option only for trusted VMs under
-> +administrator control.
-> +
-> +=back
-> +
-> +=item B<irqs=[ NUMBER, NUMBER, ... ]>
-
-Similarly here - is this really requiring an array? I ask because
-I had to look at this just last week for a colleague, and what
-we got out of inspection of examples/code was that a simple
-number (and a simple range without quotes above) are
-permitted too.
-
-Jan
-
-> +
-> +=over 4
-> +
-> +Allow a guest to access specific physical IRQs.
-> +
-> +It is recommended to use this option only for trusted VMs under
-> +administrator control.
-> +
-> +=back
-> +
->  =head2 Paravirtualised (PV) Guest Specific Options
->  
->  The following options apply only to Paravirtual guests.
-
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<5040FB490200007800097ED2@nat28.tlf.novell.com> b/test/corpus/<5040FB490200007800097ED2@nat28.tlf.novell.com>
deleted file mode 100644 (file)
index e943367..0000000
+++ /dev/null
@@ -1,131 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Aug 31 17:02:19 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 31 Aug 2012 17:02:19 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T7Tfh-0007Mh-Me
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 31 Aug 2012 17:02:19 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T7TcH-0006a5-Q3; Fri, 31 Aug 2012 15:58:41 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <JBeulich@suse.com>) id 1T7TcF-0006Zr-L4
-       for xen-devel@lists.xen.org; Fri, 31 Aug 2012 15:58:40 +0000
-Received: from [85.158.139.83:41315] by server-2.bemta-5.messagelabs.com id
-       66/68-11456-E2FD0405; Fri, 31 Aug 2012 15:58:38 +0000
-X-Env-Sender: JBeulich@suse.com
-X-Msg-Ref: server-13.tower-182.messagelabs.com!1346428717!27413019!1
-X-Originating-IP: [130.57.49.28]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogMTMwLjU3LjQ5LjI4ID0+IDM2OTU=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 20921 invoked from network); 31 Aug 2012 15:58:37 -0000
-Received: from nat28.tlf.novell.com (HELO nat28.tlf.novell.com) (130.57.49.28)
-       by server-13.tower-182.messagelabs.com with SMTP;
-       31 Aug 2012 15:58:37 -0000
-Received: from EMEA1-MTA by nat28.tlf.novell.com
-       with Novell_GroupWise; Fri, 31 Aug 2012 16:58:36 +0100
-Message-Id: <5040FB490200007800097ED2@nat28.tlf.novell.com>
-X-Mailer: Novell GroupWise Internet Agent 12.0.0 
-Date: Fri, 31 Aug 2012 16:58:33 +0100
-From: "Jan Beulich" <JBeulich@suse.com>
-To: "Charles Arnold" <CARNOLD@suse.com>,"Kirk Allan" <KALLAN@suse.com>
-References: <1344935141.5926.6.camel@zakaz.uk.xensource.com>
-       <20120814100704.GA19704@bloms.de>
-       <1346421542.27277.218.camel@zakaz.uk.xensource.com>
-       <1346425278.27277.224.camel@zakaz.uk.xensource.com>
-       <5040F7140200007800097E91@nat28.tlf.novell.com>
-       <1346428292.27277.243.camel@zakaz.uk.xensource.com>
-In-Reply-To: <1346428292.27277.243.camel@zakaz.uk.xensource.com>
-Mime-Version: 1.0
-Content-Disposition: inline
-Cc: Dieter Bloms <xensource.com@bloms.de>,
-       Ian Jackson <Ian.Jackson@eu.citrix.com>,
-       Ian Campbell <Ian.Campbell@citrix.com>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [Xen-users] Xen 4.2 TODO (io and irq parameter are
- not evaluated by xl)
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
->>> On 31.08.12 at 17:51, Ian Campbell <Ian.Campbell@citrix.com> wrote:
-> On Fri, 2012-08-31 at 16:40 +0100, Jan Beulich wrote:
->> >>> On 31.08.12 at 17:01, Ian Campbell <Ian.Campbell@citrix.com> wrote:
->> > --- a/docs/man/xl.cfg.pod.5       Fri Aug 31 12:03:55 2012 +0100
->> > +++ b/docs/man/xl.cfg.pod.5       Fri Aug 31 15:54:42 2012 +0100
->> > @@ -402,6 +402,30 @@ for more information on the "permissive"
->> >  
->> >  =back
->> >  
->> > +=item B<ioports=[ "IOPORT_RANGE", "IOPORT_RANGE", ... ]>
->> 
->> Is this really with quotes, and requiring an array?
-> 
-> I was mostly just following
-> http://cmrg.fifthhorseman.net/wiki/xen#grantingaccesstoserialhardwaretoadomU 
-> which suggested that this is the xm syntax too.
-> 
->> > +
->> > +=over 4
->> > +
->> > +Allow guest to access specific legacy I/O ports. Each B<IOPORT_RANGE>
->> > +is given in hexadecimal and may either a span e.g. C<2f8-2ff>
->> > +(inclusive) or a single I/O port C<2f8>.
->> > +
->> > +It is recommended to use this option only for trusted VMs under
->> > +administrator control.
->> > +
->> > +=back
->> > +
->> > +=item B<irqs=[ NUMBER, NUMBER, ... ]>
->> 
->> Similarly here - is this really requiring an array? I ask because
->> I had to look at this just last week for a colleague, and what
->> we got out of inspection of examples/code was that a simple
->> number (and a simple range without quotes above) are
->> permitted too.
-> 
-> I had a look in create.py and opts.py and didn't see that, I suppose I
-> missed it.
-> 
-> I could implement support for either an array or a simple string/number
-> but it would complicate the code quite a bit. Is it really worth it?
-
-Charles, Kirk, could you comment here?
-
-Thanks, Jan
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<50447D7802000078000982B4@nat28.tlf.novell.com> b/test/corpus/<50447D7802000078000982B4@nat28.tlf.novell.com>
deleted file mode 100644 (file)
index a27c740..0000000
+++ /dev/null
@@ -1,111 +0,0 @@
-From xen-devel-bounces@lists.xen.org Mon Sep 03 08:55:19 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Mon, 03 Sep 2012 08:55:19 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T8RV6-0000Eg-M3
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Mon, 03 Sep 2012 08:55:19 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T8RR0-0001zZ-VX; Mon, 03 Sep 2012 07:51:02 +0000
-Received: from mail27.messagelabs.com ([193.109.254.147])
-       by lists.xen.org with smtp (Exim 4.72)
-       (envelope-from <JBeulich@suse.com>) id 1T8RQz-0001zP-94
-       for xen-devel@lists.xen.org; Mon, 03 Sep 2012 07:51:01 +0000
-X-Env-Sender: JBeulich@suse.com
-X-Msg-Ref: server-11.tower-27.messagelabs.com!1346658651!2450972!1
-X-Originating-IP: [130.57.49.28]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogMTMwLjU3LjQ5LjI4ID0+IDM3ODU=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 21318 invoked from network); 3 Sep 2012 07:50:51 -0000
-Received: from nat28.tlf.novell.com (HELO nat28.tlf.novell.com) (130.57.49.28)
-       by server-11.tower-27.messagelabs.com with SMTP;
-       3 Sep 2012 07:50:51 -0000
-Received: from EMEA1-MTA by nat28.tlf.novell.com
-       with Novell_GroupWise; Mon, 03 Sep 2012 08:50:51 +0100
-Message-Id: <50447D7802000078000982B4@nat28.tlf.novell.com>
-X-Mailer: Novell GroupWise Internet Agent 12.0.0 
-Date: Mon, 03 Sep 2012 08:50:48 +0100
-From: "Jan Beulich" <JBeulich@suse.com>
-To: "Ian Campbell" <Ian.Campbell@citrix.com>
-References: <1344935141.5926.6.camel@zakaz.uk.xensource.com>
-       <20120814100704.GA19704@bloms.de>
-       <1346421542.27277.218.camel@zakaz.uk.xensource.com>
-       <1346425278.27277.224.camel@zakaz.uk.xensource.com>
-       <5040F7140200007800097E91@nat28.tlf.novell.com>
-       <1346428292.27277.243.camel@zakaz.uk.xensource.com>
-       <5040FB490200007800097ED2@nat28.tlf.novell.com>
-       <50409CE002000076000B3B44@novprvoes0310.provo.novell.com>
-       <1346434547.5820.10.camel@dagon.hellion.org.uk> 
-In-Reply-To: 
-Mime-Version: 1.0
-Content-Disposition: inline
-Cc: Charles Arnold <CARNOLD@suse.com>, Kirk Allan <KALLAN@suse.com>,
-       DieterBloms <xensource.com@bloms.de>,
-       Ian Jackson <Ian.Jackson@eu.citrix.com>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [Xen-users] Xen 4.2 TODO (io and irq parameter are
- not evaluated by xl)
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
->>> On 31.08.12 at 19:59, Kirk Allan wrote:
->>> In one of my Window's vm config files, I was able to get the vm to
->>> boot using ioports=['3f8-3ff'].  My goal was to do serial debugging of
->>> the Windows vm.  I also added irq=[4] to the config file.  However, I
->>> was not able to actually get a debug session to work.  The physical
->>> machine running windbg received a string from the vm which gave me
->>> hope that it was working, but then it never received further data so
->>> the vm eventually booted without being attached to the debugger.
->> 
->> Thanks, the question was whether it would be useful to implement the
->>     ioports = '3f8-3ff'
->>     irq = 4
->> syntax as well as the
->>     ioports = ['3f8-3ff']
->>     irq = [4]
->> but it looks like you are actually using the array version anyway?
-> 
-> I first looked at this last week.  I found reference to both formats so I 
-> tried both.  I was only able to get the ioports = ['3f8-3ff'] and irq = [4] 
-> syntax to allow a vm to boot.
-
-So Ian, I guess I got mislead by there being references to the
-non-array format - no need to alter your patch then in any way.
-
-Sorry for the noise, Jan
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<504482FD02000078000982E3@nat28.tlf.novell.com> b/test/corpus/<504482FD02000078000982E3@nat28.tlf.novell.com>
deleted file mode 100644 (file)
index 45a0594..0000000
+++ /dev/null
@@ -1,101 +0,0 @@
-From xen-devel-bounces@lists.xen.org Mon Sep 03 09:19:34 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Mon, 03 Sep 2012 09:19:34 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T8RsW-0008Lm-TA
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Mon, 03 Sep 2012 09:19:34 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T8Ro8-0003Ao-0e; Mon, 03 Sep 2012 08:14:56 +0000
-Received: from mail27.messagelabs.com ([193.109.254.147])
-       by lists.xen.org with smtp (Exim 4.72)
-       (envelope-from <JBeulich@suse.com>) id 1T8Ro6-0003Aj-9w
-       for xen-devel@lists.xen.org; Mon, 03 Sep 2012 08:14:54 +0000
-X-Env-Sender: JBeulich@suse.com
-X-Msg-Ref: server-13.tower-27.messagelabs.com!1346660064!9170447!1
-X-Originating-IP: [130.57.49.28]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogMTMwLjU3LjQ5LjI4ID0+IDM3ODU=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 21711 invoked from network); 3 Sep 2012 08:14:25 -0000
-Received: from nat28.tlf.novell.com (HELO nat28.tlf.novell.com) (130.57.49.28)
-       by server-13.tower-27.messagelabs.com with SMTP;
-       3 Sep 2012 08:14:25 -0000
-Received: from EMEA1-MTA by nat28.tlf.novell.com
-       with Novell_GroupWise; Mon, 03 Sep 2012 09:14:24 +0100
-Message-Id: <504482FD02000078000982E3@nat28.tlf.novell.com>
-X-Mailer: Novell GroupWise Internet Agent 12.0.0 
-Date: Mon, 03 Sep 2012 09:14:20 +0100
-From: "Jan Beulich" <JBeulich@suse.com>
-To: "Santosh Jodh" <Santosh.Jodh@citrix.com>,
-       "Sander Eikelenboom" <linux@eikelenboom.it>
-References: <647712821.20120831234512@eikelenboom.it>
-       <7914B38A4445B34AA16EB9F1352942F1012F0F6F4AE2@SJCPMAILBOX01.citrite.net>
-       <723041396.20120901004249@eikelenboom.it>
-       <7914B38A4445B34AA16EB9F1352942F1012F0F6F4B01@SJCPMAILBOX01.citrite.net>
-       <1377403931.20120901011625@eikelenboom.it>
-       <7914B38A4445B34AA16EB9F1352942F1012F0F6F4B5B@SJCPMAILBOX01.citrite.net>
-In-Reply-To: <7914B38A4445B34AA16EB9F1352942F1012F0F6F4B5B@SJCPMAILBOX01.citrite.net>
-Mime-Version: 1.0
-Content-Disposition: inline
-Cc: "wei.wang2@amd.com" <wei.wang2@amd.com>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] Using debug-key 'o:  Dump IOMMU p2m table,
- locks up machine
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
->>> On 01.09.12 at 02:42, Santosh Jodh <Santosh.Jodh@citrix.com> wrote:
-> BTW, I should add that 1:1 mapping for the VM seems very suspicious. Wei can 
-> comment for sure.
-
-For PV guests, that's very much expected, I would say.
-
-Jan
-
->> -----Original Message-----
->> From: Santosh Jodh
->> Sent: Friday, August 31, 2012 4:58 PM
->> To: 'Sander Eikelenboom'
->> Cc: wei.wang2@amd.com; xen-devel@lists.xen.org 
->> Subject: RE: Using debug-key 'o: Dump IOMMU p2m table, locks up machine
->> 
->> 1:1 mapping is not the common case for gfn-mfn. It is hard to say how much
->> output would shrink by dumping contiguous ranges instead of individual pfns
->> in the general case.
-
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<5044849002000078000982EA@nat28.tlf.novell.com> b/test/corpus/<5044849002000078000982EA@nat28.tlf.novell.com>
deleted file mode 100644 (file)
index 5edb548..0000000
+++ /dev/null
@@ -1,99 +0,0 @@
-From xen-devel-bounces@lists.xen.org Mon Sep 03 09:25:51 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Mon, 03 Sep 2012 09:25:51 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T8Ryb-0008Nl-K1
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Mon, 03 Sep 2012 09:25:51 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T8RuC-0003K0-RA; Mon, 03 Sep 2012 08:21:12 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <JBeulich@suse.com>) id 1T8RuB-0003Jv-0d
-       for xen-devel@lists.xen.org; Mon, 03 Sep 2012 08:21:11 +0000
-Received: from [85.158.138.51:18083] by server-2.bemta-3.messagelabs.com id
-       70/83-04862-67864405; Mon, 03 Sep 2012 08:21:10 +0000
-X-Env-Sender: JBeulich@suse.com
-X-Msg-Ref: server-12.tower-174.messagelabs.com!1346660469!20311696!1
-X-Originating-IP: [130.57.49.28]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogMTMwLjU3LjQ5LjI4ID0+IDM3ODU=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 10897 invoked from network); 3 Sep 2012 08:21:09 -0000
-Received: from nat28.tlf.novell.com (HELO nat28.tlf.novell.com) (130.57.49.28)
-       by server-12.tower-174.messagelabs.com with SMTP;
-       3 Sep 2012 08:21:09 -0000
-Received: from EMEA1-MTA by nat28.tlf.novell.com
-       with Novell_GroupWise; Mon, 03 Sep 2012 09:21:08 +0100
-Message-Id: <5044849002000078000982EA@nat28.tlf.novell.com>
-X-Mailer: Novell GroupWise Internet Agent 12.0.0 
-Date: Mon, 03 Sep 2012 09:21:04 +0100
-From: "Jan Beulich" <JBeulich@suse.com>
-To: "Sander Eikelenboom" <linux@eikelenboom.it>
-References: <7914B38A4445B34AA16EB9F1352942F1012F0F6F4B98@SJCPMAILBOX01.citrite.net>
-       <CC681CDD.3D966%keir.xen@gmail.com>
-       <40501859.20120902104331@eikelenboom.it>
-In-Reply-To: <40501859.20120902104331@eikelenboom.it>
-Mime-Version: 1.0
-Content-Disposition: inline
-Cc: "wei.wang2@amd.com" <wei.wang2@amd.com>, Keir Fraser <keir.xen@gmail.com>,
-       Santosh Jodh <Santosh.Jodh@citrix.com>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] Using debug-key 'o:  Dump IOMMU p2m table,
- locks up machine
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
->>> On 02.09.12 at 10:43, Sander Eikelenboom <linux@eikelenboom.it> wrote:
-> I have attached new output from xl dmesg, this time with iommu=debug on (the 
-> option changed from 4.1 to 4.2).
-
-This one
-
->(XEN) [2012-09-02 00:55:02] traps.c:3156: GPF (0060): ffff82c48015c9ee -> ffff82c480224b13
-
-also worries me. While Xen gracefully recovers from it, these
-messages still generally indicate a problem somewhere. Could
-you resolve the addresses to file:line tuples? And, assuming
-this happens in the context of doing something on behalf of
-the guest in the context of a guest vCPU, could you also
-check what guest side action triggers this (e.g. by adding a
-call to show_execution_state() alongside the printing of the
-message)?
-
-Jan
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<50448EE80200007800098342@nat28.tlf.novell.com> b/test/corpus/<50448EE80200007800098342@nat28.tlf.novell.com>
deleted file mode 100644 (file)
index 90fb912..0000000
+++ /dev/null
@@ -1,116 +0,0 @@
-From xen-devel-bounces@lists.xen.org Mon Sep 03 10:11:42 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Mon, 03 Sep 2012 10:11:42 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T8Sgy-0008WM-9J
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Mon, 03 Sep 2012 10:11:42 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T8Sdd-0004nQ-Q3; Mon, 03 Sep 2012 09:08:09 +0000
-Received: from mail27.messagelabs.com ([193.109.254.147])
-       by lists.xen.org with smtp (Exim 4.72)
-       (envelope-from <JBeulich@suse.com>) id 1T8Sdb-0004n7-RO
-       for xen-devel@lists.xen.org; Mon, 03 Sep 2012 09:08:08 +0000
-X-Env-Sender: JBeulich@suse.com
-X-Msg-Ref: server-13.tower-27.messagelabs.com!1346663117!9180137!1
-X-Originating-IP: [130.57.49.28]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogMTMwLjU3LjQ5LjI4ID0+IDM3ODU=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 24644 invoked from network); 3 Sep 2012 09:05:17 -0000
-Received: from nat28.tlf.novell.com (HELO nat28.tlf.novell.com) (130.57.49.28)
-       by server-13.tower-27.messagelabs.com with SMTP;
-       3 Sep 2012 09:05:17 -0000
-Received: from EMEA1-MTA by nat28.tlf.novell.com
-       with Novell_GroupWise; Mon, 03 Sep 2012 10:05:16 +0100
-Message-Id: <50448EE80200007800098342@nat28.tlf.novell.com>
-X-Mailer: Novell GroupWise Internet Agent 12.0.0 
-Date: Mon, 03 Sep 2012 10:05:12 +0100
-From: "Jan Beulich" <JBeulich@suse.com>
-To: "Sander Eikelenboom" <linux@eikelenboom.it>
-References: <7914B38A4445B34AA16EB9F1352942F1012F0F6F4B98@SJCPMAILBOX01.citrite.net>
-       <CC681CDD.3D966%keir.xen@gmail.com>
-       <40501859.20120902104331@eikelenboom.it>
-       <5044849002000078000982EA@nat28.tlf.novell.com>
-       <1925247026.20120903103325@eikelenboom.it>
-In-Reply-To: <1925247026.20120903103325@eikelenboom.it>
-Mime-Version: 1.0
-Content-Disposition: inline
-Cc: "wei.wang2@amd.com" <wei.wang2@amd.com>, Keir Fraser <keir.xen@gmail.com>,
-       Santosh Jodh <Santosh.Jodh@citrix.com>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] Using debug-key 'o:  Dump IOMMU p2m table,
- locks up machine
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
->>> On 03.09.12 at 10:33, Sander Eikelenboom <linux@eikelenboom.it> wrote:
-> Monday, September 3, 2012, 10:21:04 AM, you wrote:
->> This one
-> 
->>>(XEN) [2012-09-02 00:55:02] traps.c:3156: GPF (0060): ffff82c48015c9ee -> 
-> ffff82c480224b13
-> 
->> also worries me. While Xen gracefully recovers from it, these
->> messages still generally indicate a problem somewhere. Could
->> you resolve the addresses to file:line tuples? And, assuming
->> this happens in the context of doing something on behalf of
->> the guest in the context of a guest vCPU, could you also
->> check what guest side action triggers this (e.g. by adding a
->> call to show_execution_state() alongside the printing of the
->> message)?
-> 
-> If you could elaborate a bit abouw HOW :-)
-
-I assume this refers to the first question above only (as I
-assume adding the indicated function call at the right place
-wouldn't be a big deal for you)?
-
-I think people generally use addr2line for this; I normally simply
-disassemble xen-syms, and then do a manual lookup (so if you
-have the very xen-syms still around, just making that one
-accessible would also do), as in many cases (having full
-register/stack dumps at hand) understanding which variables/
-expressions register values correspond to would make this
-necessary anyway.
-
-> From what i recall i also had these since some time on xen 4.1 too. Probably 
-> a kernel thing, in about 3.5 or 3.6 is my estimation, will see if i can find 
-> out some more today or tomorrow.
-
-Thanks, Jan
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<5044CAD7.8030800@amd.com> b/test/corpus/<5044CAD7.8030800@amd.com>
deleted file mode 100644 (file)
index f2d09fb..0000000
+++ /dev/null
@@ -1,169 +0,0 @@
-From xen-devel-bounces@lists.xen.org Mon Sep 03 16:25:37 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Mon, 03 Sep 2012 16:25:37 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T8YWp-0001HQ-SC
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Mon, 03 Sep 2012 16:25:37 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T8YRd-0005Iu-7H; Mon, 03 Sep 2012 15:20:09 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Wei.Wang2@amd.com>) id 1T8YRb-0005Ip-9S
-       for xen-devel@lists.xen.org; Mon, 03 Sep 2012 15:20:07 +0000
-Received: from [85.158.143.99:19502] by server-3.bemta-4.messagelabs.com id
-       1F/38-08232-6AAC4405; Mon, 03 Sep 2012 15:20:06 +0000
-X-Env-Sender: Wei.Wang2@amd.com
-X-Msg-Ref: server-6.tower-216.messagelabs.com!1346685603!21242852!1
-X-Originating-IP: [216.32.180.185]
-X-SpamReason: No, hits=0.0 required=7.0 tests=
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 27444 invoked from network); 3 Sep 2012 15:20:05 -0000
-Received: from co1ehsobe002.messaging.microsoft.com (HELO
-       co1outboundpool.messaging.microsoft.com) (216.32.180.185)
-       by server-6.tower-216.messagelabs.com with AES128-SHA encrypted SMTP;
-       3 Sep 2012 15:20:05 -0000
-Received: from mail10-co1-R.bigfish.com (10.243.78.232) by
-       CO1EHSOBE001.bigfish.com (10.243.66.64) with Microsoft SMTP Server id
-       14.1.225.23; Mon, 3 Sep 2012 15:20:03 +0000
-Received: from mail10-co1 (localhost [127.0.0.1])      by mail10-co1-R.bigfish.com
-       (Postfix) with ESMTP id 0F8A86800B1;
-       Mon,  3 Sep 2012 15:20:03 +0000 (UTC)
-X-Forefront-Antispam-Report: CIP:163.181.249.108; KIP:(null); UIP:(null);
-       IPV:NLI; H:ausb3twp01.amd.com; RD:none; EFVD:NLI
-X-SpamScore: -5
-X-BigFish: VPS-5(zzbb2dI98dI9371I1432I4015Izz1202hzzz2dh668h839hd25he5bhf0ah107ah1155h)
-Received: from mail10-co1 (localhost.localdomain [127.0.0.1]) by mail10-co1
-       (MessageSwitch) id 1346685600697313_1544;
-       Mon,  3 Sep 2012 15:20:00 +0000 (UTC)
-Received: from CO1EHSMHS015.bigfish.com (unknown [10.243.78.229])      by
-       mail10-co1.bigfish.com (Postfix) with ESMTP id 9C3F64A0046;
-       Mon,  3 Sep 2012 15:20:00 +0000 (UTC)
-Received: from ausb3twp01.amd.com (163.181.249.108) by
-       CO1EHSMHS015.bigfish.com (10.243.66.25) with Microsoft SMTP Server id
-       14.1.225.23; Mon, 3 Sep 2012 15:19:59 +0000
-X-WSS-ID: 0M9S597-01-CHK-02
-X-M-MSG: 
-Received: from sausexedgep01.amd.com (sausexedgep01-ext.amd.com
-       [163.181.249.72])       (using TLSv1 with cipher AES128-SHA (128/128
-       bits))  (No
-       client certificate requested)   by ausb3twp01.amd.com (Axway MailGate
-       3.8.1)
-       with ESMTP id 2D9391028099;     Mon,  3 Sep 2012 10:19:55 -0500 (CDT)
-Received: from SAUSEXDAG03.amd.com (163.181.55.3) by sausexedgep01.amd.com
-       (163.181.36.54) with Microsoft SMTP Server (TLS) id 8.3.192.1;
-       Mon, 3 Sep 2012 10:20:00 -0500
-Received: from storexhtp01.amd.com (172.24.4.3) by sausexdag03.amd.com
-       (163.181.55.3) with Microsoft SMTP Server (TLS) id 14.1.323.3;
-       Mon, 3 Sep 2012 10:19:54 -0500
-Received: from gwo.osrc.amd.com (165.204.16.204) by storexhtp01.amd.com
-       (172.24.4.3) with Microsoft SMTP Server id 8.3.213.0; Mon, 3 Sep 2012
-       11:19:53 -0400
-Received: from [165.204.15.57] (gran.osrc.amd.com [165.204.15.57])     by
-       gwo.osrc.amd.com (Postfix) with ESMTP id 06A8849C1EC; Mon,  3 Sep 2012
-       16:19:53 +0100 (BST)
-Message-ID: <5044CAD7.8030800@amd.com>
-Date: Mon, 3 Sep 2012 17:20:55 +0200
-From: Wei Wang <wei.wang2@amd.com>
-User-Agent: Mozilla/5.0 (X11; Linux x86_64;
-       rv:12.0) Gecko/20120421 Thunderbird/12.0
-MIME-Version: 1.0
-To: Sander Eikelenboom <linux@eikelenboom.it>
-References: <40501859.20120902104331@eikelenboom.it>
-       <CC6932C2.3D99D%keir.xen@gmail.com>
-       <217459398.20120902171441@eikelenboom.it>
-In-Reply-To: <217459398.20120902171441@eikelenboom.it>
-X-OriginatorOrg: amd.com
-Cc: Keir Fraser <keir.xen@gmail.com>, Santosh Jodh <Santosh.Jodh@citrix.com>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Transfer-Encoding: 7bit
-Content-Type: text/plain; charset="us-ascii"; Format="flowed"
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] Using debug-key 'o:  Dump IOMMU p2m table,
- locks up machine
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On 09/02/2012 05:14 PM, Sander Eikelenboom wrote:
-> Sunday, September 2, 2012, 4:58:58 PM, you wrote:
->
->> On 02/09/2012 09:43, "Sander Eikelenboom"<linux@eikelenboom.it>  wrote:
->
->>>> Quite simply, there likely needs to be more tracing on the IOMMU fault path.
->>>> That's a separate concern from your keyhandler of course, but just saying
->>>> I'd be looking for the former rather than the latter, for diagnosing
->>>> Sander's bug.
->>>
->>> Are there any printk's I could add to get more relevant info about the AMD-Vi:
->>> IO_PAGE_FAULT ?
->
->> No really straightforward one. I think we need a per-IOMMU-type handler to
->> walk the IOMMU page table for a given virtual address, and dump every
->> page-table-entry on the path. Like an IOMMU version of show_page_walk().
->> Personally I would suspect this is more useful than the dump-everything
->> handlers: just give a *full* *detailed* walk for the actually interesting
->> virtual address (the one faulted on).
->
->>> I have attached new output from xl dmesg, this time with iommu=debug on (the
->>> option changed from 4.1 to 4.2).
->
->> Not easy to glean any more from that, without extra tracing such as
->> described above, and/or digging into the guest to find what driver-side
->> actions are causing the faults.
->
-> OK, too bad!
-> With xen 4.1 i haven't experienced those page faults, but a diff between /xen/drivers/passthrough/amd in both trees show quite some changes :(
-
-Did you also update xen tools accordingly? Sometime I also saw a few 
-IO_PAGE_FAULTs came from nic if my tools version and HV version did not 
-match. But using recent 4.2 and corresponding xl, my tests went well.
-BTW: You could also try iommu=no-sharept to see if it helps.
-
-Thanks,
-Wei
-
->>   -- Keir
->
->>>
->>>
->>>>   -- Keir
->>>
->
->
->
->
->
->
-
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<5045BD5C02000078000985A7@nat28.tlf.novell.com> b/test/corpus/<5045BD5C02000078000985A7@nat28.tlf.novell.com>
deleted file mode 100644 (file)
index 5cb1749..0000000
+++ /dev/null
@@ -1,102 +0,0 @@
-From xen-devel-bounces@lists.xen.org Tue Sep 04 07:40:04 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Tue, 04 Sep 2012 07:40:04 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T8mnp-00019k-6t
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 04 Sep 2012 07:40:04 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T8mio-0000fv-VD; Tue, 04 Sep 2012 06:34:50 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <JBeulich@suse.com>) id 1T8min-0000fq-GQ
-       for xen-devel@lists.xen.org; Tue, 04 Sep 2012 06:34:49 +0000
-Received: from [85.158.143.35:26667] by server-1.bemta-4.messagelabs.com id
-       CB/AF-12504-801A5405; Tue, 04 Sep 2012 06:34:48 +0000
-X-Env-Sender: JBeulich@suse.com
-X-Msg-Ref: server-9.tower-21.messagelabs.com!1346740488!5480398!1
-X-Originating-IP: [130.57.49.28]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogMTMwLjU3LjQ5LjI4ID0+IDM4MjY=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 29635 invoked from network); 4 Sep 2012 06:34:48 -0000
-Received: from nat28.tlf.novell.com (HELO nat28.tlf.novell.com) (130.57.49.28)
-       by server-9.tower-21.messagelabs.com with SMTP;
-       4 Sep 2012 06:34:48 -0000
-Received: from EMEA1-MTA by nat28.tlf.novell.com
-       with Novell_GroupWise; Tue, 04 Sep 2012 07:34:47 +0100
-Message-Id: <5045BD5C02000078000985A7@nat28.tlf.novell.com>
-X-Mailer: Novell GroupWise Internet Agent 12.0.0 
-Date: Tue, 04 Sep 2012 07:35:40 +0100
-From: "Jan Beulich" <JBeulich@suse.com>
-To: "Sander Eikelenboom" <linux@eikelenboom.it>,
-       "George Dunlap" <George.Dunlap@eu.citrix.com>,
-       "Keir Fraser" <keir.xen@gmail.com>
-References: <647712821.20120831234512@eikelenboom.it>
-       <CC68CC67.3D984%keir.xen@gmail.com>
-In-Reply-To: <CC68CC67.3D984%keir.xen@gmail.com>
-Mime-Version: 1.0
-Content-Disposition: inline
-Cc: wei.wang2@amd.com, Santosh Jodh <santosh.jodh@citrix.com>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] Using debug-key 'o:  Dump IOMMU p2m table,
- locks up machine
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
->>> On 02.09.12 at 09:42, Keir Fraser <keir.xen@gmail.com> wrote:
-> On 31/08/2012 22:45, "Sander Eikelenboom" <linux@eikelenboom.it> wrote:
->> - When using serial console: I get a infinite stream of "gfn:  mfn: " lines,
->> mean while on the normal console, S-ATA devices are starting to give errors.
-> 
-> In this case the handler must be running in tasklet context. Not sure why
-> SATA interrupts would be affected as hardirq and softirq work will still be
-> carried out during execution of the keyhandler (the handler voluntarily
-> preempts itself for softirq work).
-> 
-> Would need more investigation. :)
-
-Isn't that because tasklets (i.e. idle vCPU-s with tasklets active)
-get preferred in the schedulers? Some compensation might be
-needed for the penalized vCPU, at least if that one is pinned
-(not sure whether load balancing would be able to steal the
-head of the run queue from a remote CPU). Sander - are you
-by chance pinning Dom0 vCPU-s? And how many of them does
-your Dom0 have?
-
-Jan
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<5045CDF302000078000985FB@nat28.tlf.novell.com> b/test/corpus/<5045CDF302000078000985FB@nat28.tlf.novell.com>
deleted file mode 100644 (file)
index 1cae50d..0000000
+++ /dev/null
@@ -1,117 +0,0 @@
-From xen-devel-bounces@lists.xen.org Tue Sep 04 08:50:26 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Tue, 04 Sep 2012 08:50:26 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T8nts-0001OD-7R
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 04 Sep 2012 08:50:26 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T8npN-00035D-Gj; Tue, 04 Sep 2012 07:45:41 +0000
-Received: from mail27.messagelabs.com ([193.109.254.147])
-       by lists.xen.org with smtp (Exim 4.72)
-       (envelope-from <JBeulich@suse.com>) id 1T8npM-000350-85
-       for xen-devel@lists.xen.org; Tue, 04 Sep 2012 07:45:40 +0000
-X-Env-Sender: JBeulich@suse.com
-X-Msg-Ref: server-3.tower-27.messagelabs.com!1346744734!8641146!1
-X-Originating-IP: [130.57.49.28]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogMTMwLjU3LjQ5LjI4ID0+IDM4MjY=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 8121 invoked from network); 4 Sep 2012 07:45:34 -0000
-Received: from nat28.tlf.novell.com (HELO nat28.tlf.novell.com) (130.57.49.28)
-       by server-3.tower-27.messagelabs.com with SMTP;
-       4 Sep 2012 07:45:34 -0000
-Received: from EMEA1-MTA by nat28.tlf.novell.com
-       with Novell_GroupWise; Tue, 04 Sep 2012 08:45:33 +0100
-Message-Id: <5045CDF302000078000985FB@nat28.tlf.novell.com>
-X-Mailer: Novell GroupWise Internet Agent 12.0.0 
-Date: Tue, 04 Sep 2012 08:46:27 +0100
-From: "Jan Beulich" <JBeulich@suse.com>
-To: "Sander Eikelenboom" <linux@eikelenboom.it>
-References: <7914B38A4445B34AA16EB9F1352942F1012F0F6F4B98@SJCPMAILBOX01.citrite.net>
-       <CC681CDD.3D966%keir.xen@gmail.com>
-       <40501859.20120902104331@eikelenboom.it>
-       <5044849002000078000982EA@nat28.tlf.novell.com>
-       <4610648186.20120904090841@eikelenboom.it>
-In-Reply-To: <4610648186.20120904090841@eikelenboom.it>
-Mime-Version: 1.0
-Content-Disposition: inline
-Cc: "wei.wang2@amd.com" <wei.wang2@amd.com>, Keir Fraser <keir.xen@gmail.com>,
-       Santosh Jodh <Santosh.Jodh@citrix.com>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] Using debug-key 'o:  Dump IOMMU p2m table,
- locks up machine
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
->>> On 04.09.12 at 09:08, Sander Eikelenboom <linux@eikelenboom.it> wrote:
->> This one
-> 
->>>(XEN) [2012-09-02 00:55:02] traps.c:3156: GPF (0060): ffff82c48015c9ee -> 
-> ffff82c480224b13
-> 
->> also worries me. While Xen gracefully recovers from it, these
->> messages still generally indicate a problem somewhere. Could
->> you resolve the addresses to file:line tuples? And, assuming
->> this happens in the context of doing something on behalf of
->> the guest in the context of a guest vCPU, could you also
->> check what guest side action triggers this (e.g. by adding a
->> call to show_execution_state() alongside the printing of the
->> message)?
-> 
-> Hope i have done it right:
-
-Yes.
-
-> Gives (complete dmesg attached:
-> 
-> (XEN) [2012-09-03 21:20:49] AMD-Vi: IO_PAGE_FAULT: domain = 14, device id = 0x0700, fault address = 0xa8ee82c0
-> (XEN) [2012-09-03 21:20:49] AMD-Vi: IO_PAGE_FAULT: domain = 14, device id = 0x0700, fault address = 0xa8ee8320
-> (XEN) [2012-09-04 03:00:34] traps.c:3156: GPF (0060): ffff82c48015c9ee -> ffff82c480224b73
-> (XEN) [2012-09-04 03:00:34] traps.c:3157:  show_execution_state(regs): 
-> (XEN) [2012-09-04 03:00:34] ----[ Xen-4.2.0-rc4-pre  x86_64  debug=y  Not tainted ]----
-> (XEN) [2012-09-04 03:00:34] CPU:    3
-> (XEN) [2012-09-04 03:00:34] RIP:    e008:[<ffff82c48015c9ee>] context_switch+0x394/0xeeb
-
-Now that - in the middle of context switch code - almost certainly
-wants to be fixed, but we first need to understand what it is (and
-how it gets triggered by the guest). I.e. once again this requires
-resolving to file/line - care to do the conversion yourself, or send
-(or make available somewhere) the very xen-syms?
-
-Jan
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<5045D0190200007800098608@nat28.tlf.novell.com> b/test/corpus/<5045D0190200007800098608@nat28.tlf.novell.com>
deleted file mode 100644 (file)
index 64f9bfa..0000000
+++ /dev/null
@@ -1,120 +0,0 @@
-From xen-devel-bounces@lists.xen.org Tue Sep 04 08:59:16 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Tue, 04 Sep 2012 08:59:16 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T8o2S-0001Oy-Ft
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 04 Sep 2012 08:59:16 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T8nyD-0003HB-Hf; Tue, 04 Sep 2012 07:54:49 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <JBeulich@suse.com>) id 1T8nyB-0003H3-AN
-       for xen-devel@lists.xen.org; Tue, 04 Sep 2012 07:54:47 +0000
-Received: from [85.158.139.83:30162] by server-4.bemta-5.messagelabs.com id
-       87/49-23042-6C3B5405; Tue, 04 Sep 2012 07:54:46 +0000
-X-Env-Sender: JBeulich@suse.com
-X-Msg-Ref: server-7.tower-182.messagelabs.com!1346745286!24468746!1
-X-Originating-IP: [130.57.49.28]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogMTMwLjU3LjQ5LjI4ID0+IDM4MjY=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 23284 invoked from network); 4 Sep 2012 07:54:46 -0000
-Received: from nat28.tlf.novell.com (HELO nat28.tlf.novell.com) (130.57.49.28)
-       by server-7.tower-182.messagelabs.com with SMTP;
-       4 Sep 2012 07:54:46 -0000
-Received: from EMEA1-MTA by nat28.tlf.novell.com
-       with Novell_GroupWise; Tue, 04 Sep 2012 08:54:45 +0100
-Message-Id: <5045D0190200007800098608@nat28.tlf.novell.com>
-X-Mailer: Novell GroupWise Internet Agent 12.0.0 
-Date: Tue, 04 Sep 2012 08:55:37 +0100
-From: "Jan Beulich" <JBeulich@suse.com>
-To: "George Dunlap" <George.Dunlap@eu.citrix.com>,
-       "Keir Fraser" <keir.xen@gmail.com>
-References: <5045BD5C02000078000985A7@nat28.tlf.novell.com>
-       <CC6B6568.3DAAD%keir.xen@gmail.com>
-In-Reply-To: <CC6B6568.3DAAD%keir.xen@gmail.com>
-Mime-Version: 1.0
-Content-Disposition: inline
-Cc: wei.wang2@amd.com, Sander Eikelenboom <linux@eikelenboom.it>,
-       Santosh Jodh <santosh.jodh@citrix.com>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] Using debug-key 'o:  Dump IOMMU p2m table,
- locks up machine
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
->>> On 04.09.12 at 08:59, Keir Fraser <keir.xen@gmail.com> wrote:
-> On 04/09/2012 07:35, "Jan Beulich" <JBeulich@suse.com> wrote:
-> 
->>>>> On 02.09.12 at 09:42, Keir Fraser <keir.xen@gmail.com> wrote:
->>> On 31/08/2012 22:45, "Sander Eikelenboom" <linux@eikelenboom.it> wrote:
->>>> - When using serial console: I get a infinite stream of "gfn:  mfn: " lines,
->>>> mean while on the normal console, S-ATA devices are starting to give errors.
->>> 
->>> In this case the handler must be running in tasklet context. Not sure why
->>> SATA interrupts would be affected as hardirq and softirq work will still be
->>> carried out during execution of the keyhandler (the handler voluntarily
->>> preempts itself for softirq work).
->>> 
->>> Would need more investigation. :)
->> 
->> Isn't that because tasklets (i.e. idle vCPU-s with tasklets active)
->> get preferred in the schedulers? Some compensation might be
->> needed for the penalized vCPU, at least if that one is pinned
->> (not sure whether load balancing would be able to steal the
->> head of the run queue from a remote CPU). Sander - are you
->> by chance pinning Dom0 vCPU-s? And how many of them does
->> your Dom0 have?
-> 
-> Jan, Yes you could be right, if Sander is pinning CPUs. Anyway, I wasn't
-> going to expend too much brain power on this situation. The case of spending
-> a few minutes in one key handler is not one I think is particularly sane.
-
-Which imo would call for reverting the patch. But then again, other
-key handlers can easily take pretty long too (particularly on large
-systems, albeit it is clear that the one here is particularly bad), and
-declaring all of them pretty much useless probably isn't the best
-choice (as then we could as well rip them all out).
-
-Bottom line - _I_ think we should try to do something about this.
-An apparent option would be to have low priority tasklets (for
-just this purpose, as all others we certainly want to take priority),
-if that can reasonably be integrated with the schedulers.
-
-Jan
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<5045DA360200007800098688@nat28.tlf.novell.com> b/test/corpus/<5045DA360200007800098688@nat28.tlf.novell.com>
deleted file mode 100644 (file)
index aa707b9..0000000
+++ /dev/null
@@ -1,129 +0,0 @@
-From xen-devel-bounces@lists.xen.org Tue Sep 04 09:42:29 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Tue, 04 Sep 2012 09:42:29 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T8oiF-0001YI-6e
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 04 Sep 2012 09:42:29 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T8odx-0005nG-SC; Tue, 04 Sep 2012 08:37:57 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <JBeulich@suse.com>) id 1T8odv-0005mh-UN
-       for xen-devel@lists.xen.org; Tue, 04 Sep 2012 08:37:56 +0000
-Received: from [85.158.139.83:32304] by server-10.bemta-5.messagelabs.com id
-       F5/01-10969-3EDB5405; Tue, 04 Sep 2012 08:37:55 +0000
-X-Env-Sender: JBeulich@suse.com
-X-Msg-Ref: server-3.tower-182.messagelabs.com!1346747874!28410030!1
-X-Originating-IP: [130.57.49.28]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogMTMwLjU3LjQ5LjI4ID0+IDM4MjY=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 31722 invoked from network); 4 Sep 2012 08:37:54 -0000
-Received: from nat28.tlf.novell.com (HELO nat28.tlf.novell.com) (130.57.49.28)
-       by server-3.tower-182.messagelabs.com with SMTP;
-       4 Sep 2012 08:37:54 -0000
-Received: from EMEA1-MTA by nat28.tlf.novell.com
-       with Novell_GroupWise; Tue, 04 Sep 2012 09:37:53 +0100
-Message-Id: <5045DA360200007800098688@nat28.tlf.novell.com>
-X-Mailer: Novell GroupWise Internet Agent 12.0.0 
-Date: Tue, 04 Sep 2012 09:38:46 +0100
-From: "Jan Beulich" <JBeulich@suse.com>
-To: "George Dunlap" <George.Dunlap@eu.citrix.com>,
-       "Keir Fraser" <keir.xen@gmail.com>
-References: <CC6B74A7.3DAC1%keir.xen@gmail.com>
-       <CC6B764E.3DACF%keir.xen@gmail.com>
-In-Reply-To: <CC6B764E.3DACF%keir.xen@gmail.com>
-Mime-Version: 1.0
-Content-Disposition: inline
-Cc: wei.wang2@amd.com, Sander Eikelenboom <linux@eikelenboom.it>,
-       Santosh Jodh <santosh.jodh@citrix.com>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] Using debug-key 'o:  Dump IOMMU p2m table,
- locks up machine
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
->>> On 04.09.12 at 10:11, Keir Fraser <keir.xen@gmail.com> wrote:
-> On 04/09/2012 09:04, "Keir Fraser" <keir.xen@gmail.com> wrote:
-> 
->> On 04/09/2012 08:55, "Jan Beulich" <JBeulich@suse.com> wrote:
->> 
->>>> Jan, Yes you could be right, if Sander is pinning CPUs. Anyway, I wasn't
->>>> going to expend too much brain power on this situation. The case of spending
->>>> a few minutes in one key handler is not one I think is particularly sane.
->>> 
->>> Which imo would call for reverting the patch. But then again, other
->>> key handlers can easily take pretty long too (particularly on large
->>> systems, albeit it is clear that the one here is particularly bad), and
->>> declaring all of them pretty much useless probably isn't the best
->>> choice (as then we could as well rip them all out).
->>> 
->>> Bottom line - _I_ think we should try to do something about this.
->>> An apparent option would be to have low priority tasklets (for
->>> just this purpose, as all others we certainly want to take priority),
->>> if that can reasonably be integrated with the schedulers.
->> 
->> Do you expect to be able to use the log-running key handlers and still need
->> a running system afterwards (rather than using them as a final
->> dump-everything when the system has already gone bad)? Then I suppose you
->> would need something like this, with voluntary preemption in the key
->> handlers. You then need to be able to recommence the keyhandlers where they
->> left off, retaking locks, finding their place in lists, trees, etc, even
->> when state of the system has significantly changed between preemption and
->> resumption. Well, I'm sure it can be done, but can anyone be bothered.
-
-It may not be that difficult for e.g. the 'd' and '0' handlers.
-
-> My pragmatic take would be that: (a) Really long-running handlers that want
-> to dump every page mapping of every domain are pretty bloody stupid, and yes
-> we should consider if they are worthwhile at all; (b) moderately
-> long-running but useful handlers which nonetheless take a long time to dump
-> to Xen's console, I would consider a sysctl to allow dom0 to request dump
-> into a supplied memory buffer.
-
-At a first glance that sounds like a viable option, assuming that
-the bulk of the time otherwise is being spent actually getting the
-data out through the serial line. But if the long-running-ness is
-in the nature of the keyhandler itself, then this wouldn't help
-much though. And I'd be afraid that ought to be the common
-case when not running with sync_console, since actual serial
-output happens asynchronously and hence shouldn't affect the
-latency of the keyhandler's completion too much.
-
-Jan
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<5045E55A02000078000986E4@nat28.tlf.novell.com> b/test/corpus/<5045E55A02000078000986E4@nat28.tlf.novell.com>
deleted file mode 100644 (file)
index 338d4a5..0000000
+++ /dev/null
@@ -1,128 +0,0 @@
-From xen-devel-bounces@lists.xen.org Tue Sep 04 10:30:39 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Tue, 04 Sep 2012 10:30:39 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T8pSr-0001hS-Ri
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 04 Sep 2012 10:30:39 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T8pO1-0007Ut-3E; Tue, 04 Sep 2012 09:25:33 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <JBeulich@suse.com>) id 1T8pNz-0007Uo-Cm
-       for xen-devel@lists.xen.org; Tue, 04 Sep 2012 09:25:31 +0000
-Received: from [85.158.138.51:22510] by server-10.bemta-3.messagelabs.com id
-       20/14-10411-709C5405; Tue, 04 Sep 2012 09:25:27 +0000
-X-Env-Sender: JBeulich@suse.com
-X-Msg-Ref: server-10.tower-174.messagelabs.com!1346750725!24444631!1
-X-Originating-IP: [130.57.49.28]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogMTMwLjU3LjQ5LjI4ID0+IDM4Mzg=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 25208 invoked from network); 4 Sep 2012 09:25:26 -0000
-Received: from nat28.tlf.novell.com (HELO nat28.tlf.novell.com) (130.57.49.28)
-       by server-10.tower-174.messagelabs.com with SMTP;
-       4 Sep 2012 09:25:26 -0000
-Received: from EMEA1-MTA by nat28.tlf.novell.com
-       with Novell_GroupWise; Tue, 04 Sep 2012 10:25:25 +0100
-Message-Id: <5045E55A02000078000986E4@nat28.tlf.novell.com>
-X-Mailer: Novell GroupWise Internet Agent 12.0.0 
-Date: Tue, 04 Sep 2012 10:26:18 +0100
-From: "Jan Beulich" <JBeulich@suse.com>
-To: "Sander Eikelenboom" <linux@eikelenboom.it>,
-       "Jeremy Fitzhardinge" <jeremy@goop.org>,
-       "Konrad Rzeszutek Wilk" <konrad.wilk@oracle.com>, <ehabkost@redhat.com>
-References: <7914B38A4445B34AA16EB9F1352942F1012F0F6F4B98@SJCPMAILBOX01.citrite.net>
-       <CC681CDD.3D966%keir.xen@gmail.com>
-       <40501859.20120902104331@eikelenboom.it>
-       <5044849002000078000982EA@nat28.tlf.novell.com>
-       <4610648186.20120904090841@eikelenboom.it>
-       <5045CDF302000078000985FB@nat28.tlf.novell.com>
-       <4710608674.20120904101330@eikelenboom.it>
-In-Reply-To: <4710608674.20120904101330@eikelenboom.it>
-Mime-Version: 1.0
-Content-Disposition: inline
-Cc: "wei.wang2@amd.com" <wei.wang2@amd.com>, Keir Fraser <keir.xen@gmail.com>,
-       Santosh Jodh <Santosh.Jodh@citrix.com>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] Using debug-key 'o:  Dump IOMMU p2m table,
- locks up machine
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
->>> On 04.09.12 at 10:13, Sander Eikelenboom <linux@eikelenboom.it> wrote:
-> Hmm don't know how to get the file/line, only thing i have found is:
-> 
-> serveerstertje:/boot# gdb xen-syms-4.2.0-rc4-pre
-> GNU gdb (GDB) 7.0.1-debian
-> Copyright (C) 2009 Free Software Foundation, Inc.
-> License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
-> This is free software: you are free to change and redistribute it.
-> There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
-> and "show warranty" for details.
-> This GDB was configured as "x86_64-linux-gnu".
-> For bug reporting instructions, please see:
-> <http://www.gnu.org/software/gdb/bugs/>...
-> Reading symbols from /boot/xen-syms-4.2.0-rc4-pre...done.
-> (gdb) x/i 0xffff82c48015c9ee
-> 0xffff82c48015c9ee <context_switch+916>:        mov    %edx,%gs
-> (gdb)
-
-I'm not really a gdb expert, so I don't know off the top of my
-head either. I thought I said in a previous reply that people
-generally appear to use the addr2line utility for that purpose.
-
-But the disassembly already tells us where precisely the
-problem is: The selector value (0x0063) attempted to be put
-into %gs is apparently wrong in the context of the current
-GDT. Now, that's GDT_ENTRY_TLS_MIN on the Linux side,
-and ought to be valid. I'm surprised the guest (and the current
-process in it) survives this (as the failure here results in a failsafe
-callback into the guest).
-
-Looking at the Linux side of things, this has been that way
-forever, and I think has always been broken: On x86-64, it
-should also clear %gs here (since 32-bit processes use it for
-their TLS, and there's nothing wrong for a 64-bit process to put
-something in there either), albeit not via loadsegment(), but
-through xen_load_gs_index(). And I neither see why on 32-bit
-it only clears %gs - %fs can as much hold a selector that might
-get invalidated with the TLS descriptor updates. Eduardo,
-Jeremy, Konrad?
-
-Jan
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<5045E8B802000078000986F7@nat28.tlf.novell.com> b/test/corpus/<5045E8B802000078000986F7@nat28.tlf.novell.com>
deleted file mode 100644 (file)
index 4fe069f..0000000
+++ /dev/null
@@ -1,124 +0,0 @@
-From xen-devel-bounces@lists.xen.org Tue Sep 04 10:44:45 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Tue, 04 Sep 2012 10:44:45 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T8pgX-0001jO-Hs
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 04 Sep 2012 10:44:45 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T8pbq-0007gI-Gv; Tue, 04 Sep 2012 09:39:50 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <JBeulich@suse.com>) id 1T8pbp-0007gD-4Z
-       for xen-devel@lists.xen.org; Tue, 04 Sep 2012 09:39:49 +0000
-Received: from [85.158.138.51:20991] by server-4.bemta-3.messagelabs.com id
-       58/AF-24831-46CC5405; Tue, 04 Sep 2012 09:39:48 +0000
-X-Env-Sender: JBeulich@suse.com
-X-Msg-Ref: server-14.tower-174.messagelabs.com!1346751587!22146807!1
-X-Originating-IP: [130.57.49.28]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogMTMwLjU3LjQ5LjI4ID0+IDM4Mzg=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 4648 invoked from network); 4 Sep 2012 09:39:47 -0000
-Received: from nat28.tlf.novell.com (HELO nat28.tlf.novell.com) (130.57.49.28)
-       by server-14.tower-174.messagelabs.com with SMTP;
-       4 Sep 2012 09:39:47 -0000
-Received: from EMEA1-MTA by nat28.tlf.novell.com
-       with Novell_GroupWise; Tue, 04 Sep 2012 10:39:47 +0100
-Message-Id: <5045E8B802000078000986F7@nat28.tlf.novell.com>
-X-Mailer: Novell GroupWise Internet Agent 12.0.0 
-Date: Tue, 04 Sep 2012 10:40:40 +0100
-From: "Jan Beulich" <JBeulich@suse.com>
-To: "Keir Fraser" <keir@xen.org>
-References: <5045DA360200007800098688@nat28.tlf.novell.com>
-       <CC6B803A.4A8E0%keir@xen.org>
-In-Reply-To: <CC6B803A.4A8E0%keir@xen.org>
-Mime-Version: 1.0
-Content-Disposition: inline
-Cc: wei.wang2@amd.com, Sander Eikelenboom <linux@eikelenboom.it>,
-       George Dunlap <George.Dunlap@eu.citrix.com>,
-       Santosh Jodh <santosh.jodh@citrix.com>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] Using debug-key 'o:  Dump IOMMU p2m table,
- locks up machine
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
->>> On 04.09.12 at 10:54, Keir Fraser <keir@xen.org> wrote:
-> On 04/09/2012 09:38, "Jan Beulich" <JBeulich@suse.com> wrote:
-> 
->>> My pragmatic take would be that: (a) Really long-running handlers that want
->>> to dump every page mapping of every domain are pretty bloody stupid, and yes
->>> we should consider if they are worthwhile at all; (b) moderately
->>> long-running but useful handlers which nonetheless take a long time to dump
->>> to Xen's console, I would consider a sysctl to allow dom0 to request dump
->>> into a supplied memory buffer.
->> 
->> At a first glance that sounds like a viable option, assuming that
->> the bulk of the time otherwise is being spent actually getting the
->> data out through the serial line. But if the long-running-ness is
->> in the nature of the keyhandler itself, then this wouldn't help
->> much though. And I'd be afraid that ought to be the common
->> case when not running with sync_console, since actual serial
->> output happens asynchronously and hence shouldn't affect the
->> latency of the keyhandler's completion too much.
-> 
-> Well then, have we actually seen problems with async serial output, a
-> decent-sized serial output buffer, and the 'd'/'0' handlers? Because if not,
-> we don't have a problem to be solved. :)
-
-To a degree - we have seen (large) systems becoming unstable
-after making use of these keys, but obviously people were
-instructed to use the keys because the system already had some
-sort of problem (e.g. were dead locked on some spin lock, and
-after use of the debug keys additionally got their time screwed
-up).
-
-The 'o' key here just gets this to the extreme, which is why I'm
-wondering whether it was a good decision to add it in the first
-place. And the same would apply to EPT's 'D' key. The more that
-these keys would presumably be used when a guest had a
-problem, yet their use could render the whole system dead
-(whereas 'd' and '0' generally get used when the host is in a
-bad state already). Perhaps a minimal step would be to build/
-enabled these only in debug=y builds? But really this functionality
-should be exposed _only_ through the tools (similar to xenctx
-and lsevtchn) imo (and along those lines I think 'e' should only
-dump Dom0's event channels).
-
-Jan
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<5046021F.7020105@citrix.com> b/test/corpus/<5046021F.7020105@citrix.com>
deleted file mode 100644 (file)
index 3901ab4..0000000
+++ /dev/null
@@ -1,150 +0,0 @@
-From xen-devel-bounces@lists.xen.org Tue Sep 04 14:34:41 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Tue, 04 Sep 2012 14:34:41 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T8tH2-0002HJ-UP
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 04 Sep 2012 14:34:40 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T8tBl-0000v4-J5; Tue, 04 Sep 2012 13:29:09 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Andrew.Cooper3@citrix.com>) id 1T8tBj-0000uz-QL
-       for xen-devel@lists.xen.org; Tue, 04 Sep 2012 13:29:08 +0000
-Received: from [85.158.139.83:41774] by server-3.bemta-5.messagelabs.com id
-       D7/34-21836-22206405; Tue, 04 Sep 2012 13:29:06 +0000
-X-Env-Sender: Andrew.Cooper3@citrix.com
-X-Msg-Ref: server-13.tower-182.messagelabs.com!1346765344!27959098!1
-X-Originating-IP: [66.165.176.63]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyNzY0OTI=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 11095 invoked from network); 4 Sep 2012 13:29:05 -0000
-Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
-       by server-13.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
-       4 Sep 2012 13:29:05 -0000
-X-IronPort-AV: E=Sophos;i="4.80,367,1344211200"; d="scan'208";a="207003854"
-Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
-       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       04 Sep 2012 13:29:04 +0000
-Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
-       (10.13.107.66) with Microsoft SMTP Server id 8.3.279.1;
-       Tue, 4 Sep 2012 09:29:04 -0400
-Received: from andrewcoop.uk.xensource.com ([10.80.2.18])      by
-       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
-       <andrew.cooper3@citrix.com>)    id 1T8tBf-0005dR-FK     for
-       xen-devel@lists.xen.org; Tue, 04 Sep 2012 14:29:03 +0100
-Message-ID: <5046021F.7020105@citrix.com>
-Date: Tue, 4 Sep 2012 14:29:03 +0100
-From: Andrew Cooper <andrew.cooper3@citrix.com>
-User-Agent: Mozilla/5.0 (X11; Linux x86_64;
-       rv:14.0) Gecko/20120714 Thunderbird/14.0
-MIME-Version: 1.0
-To: xen-devel@lists.xen.org
-References: <5045DA360200007800098688@nat28.tlf.novell.com>
-       <CC6B803A.4A8E0%keir@xen.org>
-       <5045E8B802000078000986F7@nat28.tlf.novell.com>
-In-Reply-To: <5045E8B802000078000986F7@nat28.tlf.novell.com>
-X-Enigmail-Version: 1.4.4
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] Using debug-key 'o:  Dump IOMMU p2m table,
- locks up machine
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On 04/09/12 10:40, Jan Beulich wrote:
->>>> On 04.09.12 at 10:54, Keir Fraser <keir@xen.org> wrote:
->> On 04/09/2012 09:38, "Jan Beulich" <JBeulich@suse.com> wrote:
->>
->>>> My pragmatic take would be that: (a) Really long-running handlers that want
->>>> to dump every page mapping of every domain are pretty bloody stupid, and yes
->>>> we should consider if they are worthwhile at all; (b) moderately
->>>> long-running but useful handlers which nonetheless take a long time to dump
->>>> to Xen's console, I would consider a sysctl to allow dom0 to request dump
->>>> into a supplied memory buffer.
->>> At a first glance that sounds like a viable option, assuming that
->>> the bulk of the time otherwise is being spent actually getting the
->>> data out through the serial line. But if the long-running-ness is
->>> in the nature of the keyhandler itself, then this wouldn't help
->>> much though. And I'd be afraid that ought to be the common
->>> case when not running with sync_console, since actual serial
->>> output happens asynchronously and hence shouldn't affect the
->>> latency of the keyhandler's completion too much.
->> Well then, have we actually seen problems with async serial output, a
->> decent-sized serial output buffer, and the 'd'/'0' handlers? Because if not,
->> we don't have a problem to be solved. :)
-> To a degree - we have seen (large) systems becoming unstable
-> after making use of these keys, but obviously people were
-> instructed to use the keys because the system already had some
-> sort of problem (e.g. were dead locked on some spin lock, and
-> after use of the debug keys additionally got their time screwed
-> up).
->
-> The 'o' key here just gets this to the extreme, which is why I'm
-> wondering whether it was a good decision to add it in the first
-> place. And the same would apply to EPT's 'D' key. The more that
-> these keys would presumably be used when a guest had a
-> problem, yet their use could render the whole system dead
-> (whereas 'd' and '0' generally get used when the host is in a
-> bad state already). Perhaps a minimal step would be to build/
-> enabled these only in debug=y builds? But really this functionality
-> should be exposed _only_ through the tools (similar to xenctx
-> and lsevtchn) imo (and along those lines I think 'e' should only
-> dump Dom0's event channels).
->
-> Jan
-
-I would disagree with that final part.  I have lost count of the number
-of times that I have used the 'e' debug key to diagnose a problem with a
-locked up system where dom0 was not necessarily accessible.  Getting all
-domains information is very useful, even if it can be long at times. 
-The times when the length is a problem are also the times when the
-server is broken to a point that it is not a problem people are
-concerned with.
-
-~Andrew
-
->
->
-> _______________________________________________
-> Xen-devel mailing list
-> Xen-devel@lists.xen.org
-> http://lists.xen.org/xen-devel
-
--- 
-Andrew Cooper - Dom0 Kernel Engineer, Citrix XenServer
-T: +44 (0)1223 225 900, http://www.citrix.com
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<504720CB.8060906@citrix.com> b/test/corpus/<504720CB.8060906@citrix.com>
deleted file mode 100644 (file)
index d916c55..0000000
+++ /dev/null
@@ -1,287 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Sep 05 10:56:21 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 05 Sep 2012 10:56:21 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T9CLH-00026f-Ak
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 05 Sep 2012 10:56:21 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T9CHY-00081E-7S; Wed, 05 Sep 2012 09:52:24 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Andrew.Cooper3@citrix.com>) id 1T9CHW-000816-Sq
-       for xen-devel@lists.xen.org; Wed, 05 Sep 2012 09:52:23 +0000
-Received: from [85.158.138.51:3489] by server-9.bemta-3.messagelabs.com id
-       0B/37-15390-5D027405; Wed, 05 Sep 2012 09:52:21 +0000
-X-Env-Sender: Andrew.Cooper3@citrix.com
-X-Msg-Ref: server-10.tower-174.messagelabs.com!1346838732!24693551!1
-X-Originating-IP: [66.165.176.63]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyNzY4NTA=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 2675 invoked from network); 5 Sep 2012 09:52:14 -0000
-Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
-       by server-10.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
-       5 Sep 2012 09:52:14 -0000
-X-IronPort-AV: E=Sophos;i="4.80,372,1344211200"; 
-       d="scan'208,217";a="207118374"
-Received: from ftlpmailmx01.citrite.net ([10.13.107.65])
-       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       05 Sep 2012 09:52:12 +0000
-Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
-       (10.13.107.65) with Microsoft SMTP Server id 8.3.279.1;
-       Wed, 5 Sep 2012 05:52:12 -0400
-Received: from andrewcoop.uk.xensource.com ([10.80.2.18])      by
-       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
-       <andrew.cooper3@citrix.com>)    id 1T9CHM-00083Q-0v     for
-       xen-devel@lists.xen.org; Wed, 05 Sep 2012 10:52:12 +0100
-Message-ID: <504720CB.8060906@citrix.com>
-Date: Wed, 5 Sep 2012 10:52:11 +0100
-From: Andrew Cooper <andrew.cooper3@citrix.com>
-User-Agent: Mozilla/5.0 (X11; Linux x86_64;
-       rv:14.0) Gecko/20120714 Thunderbird/14.0
-MIME-Version: 1.0
-To: xen-devel@lists.xen.org
-References: <E1T9C4K-0003Su-2p@mariner.uk.xensource.com>
-       <4cb9d7f220dd459c1554c6b5d9e2ed73@abpni.co.uk>
-In-Reply-To: <4cb9d7f220dd459c1554c6b5d9e2ed73@abpni.co.uk>
-X-Enigmail-Version: 1.4.4
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: multipart/mixed; boundary="===============3577610866476055842=="
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,HTML_MESSAGE,
-       RCVD_IN_DNSWL_MED,T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham
-       version=3.3.1
-Subject: Re: [Xen-devel] Xen Security Advisory 12 (CVE-2012-3494) -
- hypercall set_debugreg vulnerability
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
---===============3577610866476055842==
-Content-Type: multipart/alternative;
-       boundary="------------070103020307040001070608"
-
---------------070103020307040001070608
-Content-Type: text/plain; charset="ISO-8859-1"
-Content-Transfer-Encoding: 7bit
-
-
-On 05/09/12 10:49, Jonathan Tripathy wrote:
-> Is Xen 3.4.x vulnerable?
->
-> Thanks
-
-Yes - Vulnerable (tested and fixed) all the way back as far as Xen-3.2
-(which is the earliest version that XenServer still creates security
-fixes for)
-
-~Andrew
-
->
-> On 05.09.2012 10:38, Xen.org security team wrote:
-> Xen Security Advisory CVE-2012-3494 / XSA-12
-> version 3
->
-> hypercall set_debugreg vulnerability
->
-> UPDATES IN VERSION 3
-> ====================
->
-> Public release.
->
-> ISSUE DESCRIPTION
-> =================
->
-> set_debugreg allows writes to reserved bits of the DR7 debug control
-> register on x86-64.
->
-> IMPACT
-> ======
->
-> A malicious guest can cause the host to crash, leading to a DoS.
->
-> If the vulnerable hypervisor is run on future hardware, the impact of
-> the vulnerability might be widened depending on the future assignment
-> of the currently-reserved debug register bits.
->
-> VULNERABLE SYSTEMS
-> ==================
->
-> All systems running 64-bit paravirtualised guests.
->
-> The vulnerability dates back to at least Xen 4.0. 4.0, 4.1, the 4.2
-> RCs, and xen-unstable.hg are all vulnerable.
->
-> MITIGATION
-> ==========
->
-> This issue can be mitigated by ensuring (inside the guest) that the
-> kernel is trustworthy, or by running only 32-bit or HVM guests.
->
-> RESOLUTION
-> ==========
->
-> Applying the appropriate attached patch will resolve the issue.
->
-> PATCH INFORMATION
-> =================
->
-> The attached patch resolves this issue:
->
-> Xen unstable, 4.1 and 4.0 xsa12-all.patch
->
-> $ sha256sum xsa12-all.patch
-> 2415ee133e28b1c848c5ae3ce766cc2a67009bad8d026879030a6511b85dbc13
-> xsa12-all.patch
->
->
-> _______________________________________________
-> Xen-devel mailing list
-> Xen-devel@lists.xen.org
-> http://lists.xen.org/xen-devel
-
--- 
-Andrew Cooper - Dom0 Kernel Engineer, Citrix XenServer
-T: +44 (0)1223 225 900, http://www.citrix.com
-
-
---------------070103020307040001070608
-Content-Type: text/html; charset="ISO-8859-1"
-Content-Transfer-Encoding: 7bit
-
-<html>
-  <head>
-    <meta content="text/html; charset=ISO-8859-1"
-      http-equiv="Content-Type">
-  </head>
-  <body bgcolor="#FFFFFF" text="#000000">
-    <br>
-    On 05/09/12 10:49, Jonathan Tripathy wrote:<br>
-    <span style="white-space: pre;">&gt; Is Xen 3.4.x vulnerable?<br>
-      &gt;<br>
-      &gt; Thanks</span><br>
-    <br>
-    Yes - Vulnerable (tested and fixed) all the way back as far as
-    Xen-3.2 (which is the earliest version that XenServer still creates
-    security fixes for)<br>
-    <br>
-    ~Andrew<br>
-    <br>
-    <span style="white-space: pre;">&gt;<br>
-      &gt; On 05.09.2012 10:38, Xen.org security team wrote:<br>
-      &gt; Xen Security Advisory CVE-2012-3494 / XSA-12<br>
-      &gt; version 3<br>
-      &gt;<br>
-      &gt; hypercall set_debugreg vulnerability<br>
-      &gt;<br>
-      &gt; UPDATES IN VERSION 3<br>
-      &gt; ====================<br>
-      &gt;<br>
-      &gt; Public release.<br>
-      &gt;<br>
-      &gt; ISSUE DESCRIPTION<br>
-      &gt; =================<br>
-      &gt;<br>
-      &gt; set_debugreg allows writes to reserved bits of the DR7 debug
-      control<br>
-      &gt; register on x86-64.<br>
-      &gt;<br>
-      &gt; IMPACT<br>
-      &gt; ======<br>
-      &gt;<br>
-      &gt; A malicious guest can cause the host to crash, leading to a
-      DoS.<br>
-      &gt;<br>
-      &gt; If the vulnerable hypervisor is run on future hardware, the
-      impact of<br>
-      &gt; the vulnerability might be widened depending on the future
-      assignment<br>
-      &gt; of the currently-reserved debug register bits.<br>
-      &gt;<br>
-      &gt; VULNERABLE SYSTEMS<br>
-      &gt; ==================<br>
-      &gt;<br>
-      &gt; All systems running 64-bit paravirtualised guests.<br>
-      &gt;<br>
-      &gt; The vulnerability dates back to at least Xen 4.0. 4.0, 4.1,
-      the 4.2<br>
-      &gt; RCs, and xen-unstable.hg are all vulnerable.<br>
-      &gt;<br>
-      &gt; MITIGATION<br>
-      &gt; ==========<br>
-      &gt;<br>
-      &gt; This issue can be mitigated by ensuring (inside the guest)
-      that the<br>
-      &gt; kernel is trustworthy, or by running only 32-bit or HVM
-      guests.<br>
-      &gt;<br>
-      &gt; RESOLUTION<br>
-      &gt; ==========<br>
-      &gt;<br>
-      &gt; Applying the appropriate attached patch will resolve the
-      issue.<br>
-      &gt;<br>
-      &gt; PATCH INFORMATION<br>
-      &gt; =================<br>
-      &gt;<br>
-      &gt; The attached patch resolves this issue:<br>
-      &gt;<br>
-      &gt; Xen unstable, 4.1 and 4.0 xsa12-all.patch<br>
-      &gt;<br>
-      &gt; $ sha256sum xsa12-all.patch<br>
-      &gt;
-      2415ee133e28b1c848c5ae3ce766cc2a67009bad8d026879030a6511b85dbc13<br>
-      &gt; xsa12-all.patch<br>
-      &gt;<br>
-      &gt;<br>
-      &gt; _______________________________________________<br>
-      &gt; Xen-devel mailing list<br>
-      &gt; <a class="moz-txt-link-abbreviated" href="mailto:Xen-devel@lists.xen.org">Xen-devel@lists.xen.org</a><br>
-      &gt; <a class="moz-txt-link-freetext" href="http://lists.xen.org/xen-devel">http://lists.xen.org/xen-devel</a></span><br>
-    <br>
-    -- <br>
-    Andrew Cooper - Dom0 Kernel Engineer, Citrix XenServer<br>
-    T: +44 (0)1223 225 900, <a class="moz-txt-link-freetext" href="http://www.citrix.com">http://www.citrix.com</a><br>
-    <br>
-  </body>
-</html>
-
---------------070103020307040001070608--
-
-
---===============3577610866476055842==
-Content-Type: text/plain; charset="us-ascii"
-MIME-Version: 1.0
-Content-Transfer-Encoding: 7bit
-Content-Disposition: inline
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
---===============3577610866476055842==--
-
-
diff --git a/test/corpus/<50473E170200007800098B7F@nat28.tlf.novell.com> b/test/corpus/<50473E170200007800098B7F@nat28.tlf.novell.com>
deleted file mode 100644 (file)
index be60bb5..0000000
+++ /dev/null
@@ -1,83 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Sep 05 11:00:54 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 05 Sep 2012 11:00:54 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T9CPj-00027y-S7
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 05 Sep 2012 11:00:54 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T9CLR-0008Do-Sz; Wed, 05 Sep 2012 09:56:25 +0000
-Received: from mail27.messagelabs.com ([193.109.254.147])
-       by lists.xen.org with smtp (Exim 4.72)
-       (envelope-from <JBeulich@suse.com>) id 1T9CLQ-0008Dg-F0
-       for xen-devel@lists.xen.org; Wed, 05 Sep 2012 09:56:24 +0000
-X-Env-Sender: JBeulich@suse.com
-X-Msg-Ref: server-3.tower-27.messagelabs.com!1346838978!8836025!1
-X-Originating-IP: [130.57.49.28]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogMTMwLjU3LjQ5LjI4ID0+IDQwMzE=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 1242 invoked from network); 5 Sep 2012 09:56:18 -0000
-Received: from nat28.tlf.novell.com (HELO nat28.tlf.novell.com) (130.57.49.28)
-       by server-3.tower-27.messagelabs.com with SMTP;
-       5 Sep 2012 09:56:18 -0000
-Received: from EMEA1-MTA by nat28.tlf.novell.com
-       with Novell_GroupWise; Wed, 05 Sep 2012 10:56:17 +0100
-Message-Id: <50473E170200007800098B7F@nat28.tlf.novell.com>
-X-Mailer: Novell GroupWise Internet Agent 12.0.0 
-Date: Wed, 05 Sep 2012 10:57:11 +0100
-From: "Jan Beulich" <JBeulich@suse.com>
-To: "Jonathan Tripathy" <jonnyt@abpni.co.uk>
-References: <E1T9C4K-0003Su-2p@mariner.uk.xensource.com>
-       <4cb9d7f220dd459c1554c6b5d9e2ed73@abpni.co.uk>
-In-Reply-To: <4cb9d7f220dd459c1554c6b5d9e2ed73@abpni.co.uk>
-Mime-Version: 1.0
-Content-Disposition: inline
-Cc: xen-devel@lists.xen.org
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] Xen Security Advisory 12 (CVE-2012-3494) -
- hypercall set_debugreg vulnerability
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
->>> On 05.09.12 at 11:49, Jonathan Tripathy <jonnyt@abpni.co.uk> wrote:
-> Is Xen 3.4.x vulnerable?
-
-All versions supporting x86-64 are vulnerable afaict (checked back
-to 3.2.x, but I suppose even 3.0.x would be affected).
-
-Jan
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<5047420A0200007800098BB1@nat28.tlf.novell.com> b/test/corpus/<5047420A0200007800098BB1@nat28.tlf.novell.com>
deleted file mode 100644 (file)
index 395149f..0000000
+++ /dev/null
@@ -1,109 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Sep 05 11:17:36 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 05 Sep 2012 11:17:36 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T9Cfu-0002EG-04
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 05 Sep 2012 11:17:36 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T9Cbl-0000Ws-IK; Wed, 05 Sep 2012 10:13:17 +0000
-Received: from mail27.messagelabs.com ([193.109.254.147])
-       by lists.xen.org with smtp (Exim 4.72)
-       (envelope-from <JBeulich@suse.com>) id 1T9Cbk-0000WS-9S
-       for xen-devel@lists.xen.org; Wed, 05 Sep 2012 10:13:16 +0000
-X-Env-Sender: JBeulich@suse.com
-X-Msg-Ref: server-16.tower-27.messagelabs.com!1346839990!8968957!1
-X-Originating-IP: [130.57.49.28]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogMTMwLjU3LjQ5LjI4ID0+IDQwMzE=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 6174 invoked from network); 5 Sep 2012 10:13:10 -0000
-Received: from nat28.tlf.novell.com (HELO nat28.tlf.novell.com) (130.57.49.28)
-       by server-16.tower-27.messagelabs.com with SMTP;
-       5 Sep 2012 10:13:10 -0000
-Received: from EMEA1-MTA by nat28.tlf.novell.com
-       with Novell_GroupWise; Wed, 05 Sep 2012 11:13:09 +0100
-Message-Id: <5047420A0200007800098BB1@nat28.tlf.novell.com>
-X-Mailer: Novell GroupWise Internet Agent 12.0.0 
-Date: Wed, 05 Sep 2012 11:14:02 +0100
-From: "Jan Beulich" <JBeulich@suse.com>
-To: "Sander Eikelenboom" <linux@eikelenboom.it>
-References: <40501859.20120902104331@eikelenboom.it>
-       <CC6932C2.3D99D%keir.xen@gmail.com>
-       <217459398.20120902171441@eikelenboom.it> <5044CAD7.8030800@amd.com>
-       <1144695277.20120904184345@eikelenboom.it>
-In-Reply-To: <1144695277.20120904184345@eikelenboom.it>
-Mime-Version: 1.0
-Content-Disposition: inline
-Cc: Wei Wang <wei.wang2@amd.com>, Keir Fraser <keir.xen@gmail.com>,
-       Santosh Jodh <Santosh.Jodh@citrix.com>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] Using debug-key 'o:  Dump IOMMU p2m table,
- locks up machine
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
->>> On 04.09.12 at 18:43, Sander Eikelenboom <linux@eikelenboom.it> wrote:
->> Did you also update xen tools accordingly? Sometime I also saw a few 
->> IO_PAGE_FAULTs came from nic if my tools version and HV version did not 
->> match. But using recent 4.2 and corresponding xl, my tests went well.
->> BTW: You could also try iommu=no-sharept to see if it helps.
-> 
-> Tried it and it doesn't help.
-> I now even got a "xl dmesg" which shows a IO_PAGE_FAULT occuring very early, 
-> before any toolstack or guest can be involved:
-> 
-> (XEN) [2012-09-04 15:51:17] AMD-Vi: Setup I/O page table: device id = 0x0a05, 
-> root table = 0x24d84b000, domain = 0, paging mode = 3
-> (XEN) [2012-09-04 15:51:17] AMD-Vi: Setup I/O page table: device id = 0x0a06, 
-> root table = 0x24d84b000, domain = 0, paging mode = 3
-> (XEN) [2012-09-04 15:51:17] AMD-Vi: Setup I/O page table: device id = 0x0a07, 
-> root table = 0x24d84b000, domain = 0, paging mode = 3
-> (XEN) [2012-09-04 15:51:17] AMD-Vi: Setup I/O page table: device id = 0x0b00, 
-> root table = 0x24d84b000, domain = 0, paging mode = 3
-> (XEN) [2012-09-04 15:51:17] Scrubbing Free RAM: 
-> ...........................<0>AMD-Vi: IO_PAGE_FAULT: domain = 0, device id = 
-> 0x0a06, fault address = 0xc2c2c2c0
-
-Looks like use of uninitialized memory (assuming you're using a
-debug hypervisor, that's the pattern scrub_one_page() puts
-there). But it's unclear to me what device should be doing any
-I/O at that point (and even if one does, how it would get the
-bad address loaded). What is 0a:00.6?
-
-Jan
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<504745F4.5060906@amd.com> b/test/corpus/<504745F4.5060906@amd.com>
deleted file mode 100644 (file)
index fac217d..0000000
+++ /dev/null
@@ -1,172 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Sep 05 13:33:50 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 05 Sep 2012 13:33:50 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T9Enh-0002i4-1T
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 05 Sep 2012 13:33:50 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T9Ejt-0003ZQ-48; Wed, 05 Sep 2012 12:29:49 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Wei.Wang2@amd.com>) id 1T9Ejr-0003Z6-Kj
-       for xen-devel@lists.xen.org; Wed, 05 Sep 2012 12:29:47 +0000
-Received: from [85.158.139.83:47421] by server-1.bemta-5.messagelabs.com id
-       1E/E4-32692-AB547405; Wed, 05 Sep 2012 12:29:46 +0000
-X-Env-Sender: Wei.Wang2@amd.com
-X-Msg-Ref: server-5.tower-182.messagelabs.com!1346848184!28473142!1
-X-Originating-IP: [65.55.88.12]
-X-SpamReason: No, hits=0.0 required=7.0 tests=
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 1195 invoked from network); 5 Sep 2012 12:29:46 -0000
-Received: from tx2ehsobe002.messaging.microsoft.com (HELO
-       tx2outboundpool.messaging.microsoft.com) (65.55.88.12)
-       by server-5.tower-182.messagelabs.com with AES128-SHA encrypted SMTP;
-       5 Sep 2012 12:29:46 -0000
-Received: from mail146-tx2-R.bigfish.com (10.9.14.242) by
-       TX2EHSOBE003.bigfish.com (10.9.40.23) with Microsoft SMTP Server id
-       14.1.225.23; Wed, 5 Sep 2012 12:29:44 +0000
-Received: from mail146-tx2 (localhost [127.0.0.1])     by
-       mail146-tx2-R.bigfish.com (Postfix) with ESMTP id 1375C2007A;
-       Wed,  5 Sep 2012 12:29:44 +0000 (UTC)
-X-Forefront-Antispam-Report: CIP:163.181.249.108; KIP:(null); UIP:(null);
-       IPV:NLI; H:ausb3twp01.amd.com; RD:none; EFVD:NLI
-X-SpamScore: -6
-X-BigFish: VPS-6(zzbb2dI98dI9371I936eI1432I4015Izz1202hzzz2dh668h839hd25he5bhf0ah107ah1155h)
-Received: from mail146-tx2 (localhost.localdomain [127.0.0.1]) by mail146-tx2
-       (MessageSwitch) id 1346848181907016_4561;
-       Wed,  5 Sep 2012 12:29:41 +0000 (UTC)
-Received: from TX2EHSMHS021.bigfish.com (unknown [10.9.14.244])        by
-       mail146-tx2.bigfish.com (Postfix) with ESMTP id CF6594C0043;
-       Wed,  5 Sep 2012 12:29:41 +0000 (UTC)
-Received: from ausb3twp01.amd.com (163.181.249.108) by
-       TX2EHSMHS021.bigfish.com (10.9.99.121) with Microsoft SMTP Server id
-       14.1.225.23; Wed, 5 Sep 2012 12:29:41 +0000
-X-WSS-ID: 0M9VMPE-01-5GJ-02
-X-M-MSG: 
-Received: from sausexedgep02.amd.com (sausexedgep02-ext.amd.com
-       [163.181.249.73])       (using TLSv1 with cipher AES128-SHA (128/128
-       bits))  (No
-       client certificate requested)   by ausb3twp01.amd.com (Axway MailGate
-       3.8.1)
-       with ESMTP id 22A201028098;     Wed,  5 Sep 2012 07:29:37 -0500 (CDT)
-Received: from SAUSEXDAG06.amd.com (163.181.55.7) by sausexedgep02.amd.com
-       (163.181.36.59) with Microsoft SMTP Server (TLS) id 8.3.192.1;
-       Wed, 5 Sep 2012 07:29:50 -0500
-Received: from storexhtp01.amd.com (172.24.4.3) by sausexdag06.amd.com
-       (163.181.55.7) with Microsoft SMTP Server (TLS) id 14.1.323.3;
-       Wed, 5 Sep 2012 07:29:38 -0500
-Received: from gwo.osrc.amd.com (165.204.16.204) by storexhtp01.amd.com
-       (172.24.4.3) with Microsoft SMTP Server id 8.3.213.0; Wed, 5 Sep 2012
-       08:29:36 -0400
-Received: from [165.204.15.57] (gran.osrc.amd.com [165.204.15.57])     by
-       gwo.osrc.amd.com (Postfix) with ESMTP id DA53A49C0D5; Wed,  5 Sep 2012
-       13:29:35 +0100 (BST)
-Message-ID: <504745F4.5060906@amd.com>
-Date: Wed, 5 Sep 2012 14:30:44 +0200
-From: Wei Wang <wei.wang2@amd.com>
-User-Agent: Mozilla/5.0 (X11; Linux x86_64;
-       rv:12.0) Gecko/20120421 Thunderbird/12.0
-MIME-Version: 1.0
-To: Sander Eikelenboom <linux@eikelenboom.it>
-References: <40501859.20120902104331@eikelenboom.it>
-       <CC6932C2.3D99D%keir.xen@gmail.com>
-       <217459398.20120902171441@eikelenboom.it>
-       <5044CAD7.8030800@amd.com>
-       <1144695277.20120904184345@eikelenboom.it>
-In-Reply-To: <1144695277.20120904184345@eikelenboom.it>
-X-OriginatorOrg: amd.com
-Cc: Keir Fraser <keir.xen@gmail.com>, Jan Beulich <JBeulich@suse.com>,
-       Santosh Jodh <Santosh.Jodh@citrix.com>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Transfer-Encoding: 7bit
-Content-Type: text/plain; charset="us-ascii"; Format="flowed"
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] Using debug-key 'o:  Dump IOMMU p2m table,
- locks up machine
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On 09/04/2012 06:43 PM, Sander Eikelenboom wrote:
-> Hello Wei,
-> >
-> Tried it and it doesn't help.
-> I now even got a "xl dmesg" which shows a IO_PAGE_FAULT occuring very early, before any toolstack or guest can be involved:
->
-> (XEN) [2012-09-04 15:51:17] AMD-Vi: Setup I/O page table: device id = 0x0a05, root table = 0x24d84b000, domain = 0, paging mode = 3
-> (XEN) [2012-09-04 15:51:17] AMD-Vi: Setup I/O page table: device id = 0x0a06, root table = 0x24d84b000, domain = 0, paging mode = 3
-> (XEN) [2012-09-04 15:51:17] AMD-Vi: Setup I/O page table: device id = 0x0a07, root table = 0x24d84b000, domain = 0, paging mode = 3
-> (XEN) [2012-09-04 15:51:17] AMD-Vi: Setup I/O page table: device id = 0x0b00, root table = 0x24d84b000, domain = 0, paging mode = 3
-> (XEN) [2012-09-04 15:51:17] Scrubbing Free RAM: ...........................<0>AMD-Vi: IO_PAGE_FAULT: domain = 0, device id = 0x0a06, fault address = 0xc2c2c2c0
-
-
-you have dom0_mem=1024M, so you could try to remove this line any see if 
-it disappears. It would also be helpful to provide a lspci output from 
-your system.
-
-Thanks,
-Wei
-
-> (XEN) [2012-09-04 15:51:18] ............................................done.
-> (XEN) [2012-09-04 15:51:19] Initial low memory virq threshold set at 0x4000 pages.
-> (XEN) [2012-09-04 15:51:19] Std. Loglevel: All
-> (XEN) [2012-09-04 15:51:19] Guest Loglevel: All
-> (XEN) [2012-09-04 15:51:19] Xen is relinquishing VGA console.
->
->
-> Complete dmesg attached.
->
->> Thanks,
->> Wei
->
->>>>    -- Keir
->>>
->>>>>
->>>>>
->>>>>>    -- Keir
->>>>>
->>>
->>>
->>>
->>>
->>>
->>>
->
->
->
->
->
->
-
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<5047483F0200007800098C18@nat28.tlf.novell.com> b/test/corpus/<5047483F0200007800098C18@nat28.tlf.novell.com>
deleted file mode 100644 (file)
index d254bdf..0000000
+++ /dev/null
@@ -1,102 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Sep 05 11:45:27 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 05 Sep 2012 11:45:27 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T9D6r-0002Jj-FD
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 05 Sep 2012 11:45:27 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T9D2N-0002EP-0N; Wed, 05 Sep 2012 10:40:47 +0000
-Received: from mail27.messagelabs.com ([193.109.254.147])
-       by lists.xen.org with smtp (Exim 4.72)
-       (envelope-from <JBeulich@suse.com>) id 1T9D2K-0002EI-T7
-       for xen-devel@lists.xen.org; Wed, 05 Sep 2012 10:40:45 +0000
-X-Env-Sender: JBeulich@suse.com
-X-Msg-Ref: server-16.tower-27.messagelabs.com!1346841578!8974456!1
-X-Originating-IP: [130.57.49.28]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogMTMwLjU3LjQ5LjI4ID0+IDQwMzE=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 11911 invoked from network); 5 Sep 2012 10:39:38 -0000
-Received: from nat28.tlf.novell.com (HELO nat28.tlf.novell.com) (130.57.49.28)
-       by server-16.tower-27.messagelabs.com with SMTP;
-       5 Sep 2012 10:39:38 -0000
-Received: from EMEA1-MTA by nat28.tlf.novell.com
-       with Novell_GroupWise; Wed, 05 Sep 2012 11:39:38 +0100
-Message-Id: <5047483F0200007800098C18@nat28.tlf.novell.com>
-X-Mailer: Novell GroupWise Internet Agent 12.0.0 
-Date: Wed, 05 Sep 2012 11:40:31 +0100
-From: "Jan Beulich" <JBeulich@suse.com>
-To: "Sander Eikelenboom" <linux@eikelenboom.it>
-References: <40501859.20120902104331@eikelenboom.it>
-       <CC6932C2.3D99D%keir.xen@gmail.com>
-       <217459398.20120902171441@eikelenboom.it> <5044CAD7.8030800@amd.com>
-       <1144695277.20120904184345@eikelenboom.it>
-       <5047420A0200007800098BB1@nat28.tlf.novell.com>
-       <348297741.20120905122542@eikelenboom.it>
-In-Reply-To: <348297741.20120905122542@eikelenboom.it>
-Mime-Version: 1.0
-Content-Disposition: inline
-Cc: Wei Wang <wei.wang2@amd.com>, Keir Fraser <keir.xen@gmail.com>,
-       Santosh Jodh <Santosh.Jodh@citrix.com>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="utf-8"
-Content-Transfer-Encoding: base64
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] Using debug-key 'o:  Dump IOMMU p2m table,
- locks up machine
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-Pj4+IE9uIDA1LjA5LjEyIGF0IDEyOjI1LCBTYW5kZXIgRWlrZWxlbmJvb20gPGxpbnV4QGVpa2Vs
-ZW5ib29tLml0PiB3cm90ZToKPiBXZWRuZXNkYXksIFNlcHRlbWJlciA1LCAyMDEyLCAxMjoxNDow
-MiBQTSwgeW91IHdyb3RlOgo+Pj4+PiBPbiAwNC4wOS4xMiBhdCAxODo0MywgU2FuZGVyIEVpa2Vs
-ZW5ib29tIDxsaW51eEBlaWtlbGVuYm9vbS5pdD4gd3JvdGU6Cj4+PiAuLi4uLi4uLi4uLi4uLi4u
-Li4uLi4uLi4uLi48MD5BTUQtVmk6IElPX1BBR0VfRkFVTFQ6IGRvbWFpbiA9IDAsIGRldmljZSBp
-ZCA9IAo+Pj4gMHgwYTA2LCBmYXVsdCBhZGRyZXNzID0gMHhjMmMyYzJjMAo+IAo+PiBMb29rcyBs
-aWtlIHVzZSBvZiB1bmluaXRpYWxpemVkIG1lbW9yeSAoYXNzdW1pbmcgeW91J3JlIHVzaW5nIGEK
-Pj4gZGVidWcgaHlwZXJ2aXNvciwgdGhhdCdzIHRoZSBwYXR0ZXJuIHNjcnViX29uZV9wYWdlKCkg
-cHV0cwo+PiB0aGVyZSkuIEJ1dCBpdCdzIHVuY2xlYXIgdG8gbWUgd2hhdCBkZXZpY2Ugc2hvdWxk
-IGJlIGRvaW5nIGFueQo+PiBJL08gYXQgdGhhdCBwb2ludCAoYW5kIGV2ZW4gaWYgb25lIGRvZXMs
-IGhvdyBpdCB3b3VsZCBnZXQgdGhlCj4+IGJhZCBhZGRyZXNzIGxvYWRlZCkuIFdoYXQgaXMgMGE6
-MDAuNj8KPiAKPiBzaW5jZSA0LjItcmM0IGlzIHN0aWxsIHVuc3RhYmxlIGl0IGhhcyBkZWJ1Zz15
-IGZvciB3aGF0IGkga25vdywgc28geWVzLgo+IFRoaXMgcGFydGljdWxhciBJT19QQUdFX0ZBVUxU
-IGhhcHBlbmVkIGJlZm9yZSB0aGUga2VybmVsIGxvYWRzLCBzbyB0aGUgCj4ga2VybmVsIGFuZCBw
-Y2liYWNrIHNob3VsZG4ndCBiZSBjYXVzaW5nIHRoZSBpc3N1ZSBvbmUgd291bGQgc2F5Lgo+IFdp
-dGggcGNpYmFjayBpJ20gaGlkaW5nIDAzOjA2LjAsIDA0OjAwLiosIDA1OjAwLjAsIDBhOjAwLiog
-YW5kIDA3OjAwLjAgYXQgCj4gYm9vdC4KPiAKPiBJcyB0aGVyZSBhbnkgY29kZSBpIGNvdWxkIGFk
-ZCB0byBnZXQgbW9yZSBpbmZvIHdoZXJlIGl0IGNvbWVzIGZyb20gPwoKSGFyZGx5LCBzaW5jZSB0
-aG9zZSBhY2Nlc3NlcyBhcmUgYXN5bmNocm9ub3VzIHRvIHdoYXQgdGhlIENQVXMKZG8uIEJ1dCAu
-Li4KCj4gMGE6MDAuNiBVU0IgY29udHJvbGxlcjogTmV0TW9zIFRlY2hub2xvZ3kgTUNTOTk5MCBQ
-Q0llIHRvIDTDolBvcnQgVVNCIDIuMCBIb3N0IENvbnRyb2xsZXIKCi4uLiBhcmUgeW91ciBrZXli
-b2FyZC9tb3VzZSBwZXJoYXBzIGNvbm5lY3RlZCB0byB0aGlzIG9uZT8gSW4Kd2hpY2ggY2FzZSBJ
-J2Qgc3VwcG9zZSB0aGUgMToxIHRhYmxlcyBzZXQgdXAgZm9yIERvbTAgbWlnaHQgbm90CmJlIGNv
-bXBsZXRlLiBXZWk/CgpKYW4KCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
-X19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcK
-aHR0cDovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==
-
diff --git a/test/corpus/<50474A11.6050601@amd.com> b/test/corpus/<50474A11.6050601@amd.com>
deleted file mode 100644 (file)
index 66b9f77..0000000
+++ /dev/null
@@ -1,250 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Sep 05 13:51:12 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 05 Sep 2012 13:51:12 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T9F4T-0002qa-TZ
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 05 Sep 2012 13:51:12 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T9F1C-00074m-Gc; Wed, 05 Sep 2012 12:47:42 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Wei.Wang2@amd.com>) id 1T9F1A-00074P-J8
-       for xen-devel@lists.xen.org; Wed, 05 Sep 2012 12:47:40 +0000
-Received: from [85.158.143.35:51371] by server-3.bemta-4.messagelabs.com id
-       6E/1B-08232-BE947405; Wed, 05 Sep 2012 12:47:39 +0000
-X-Env-Sender: Wei.Wang2@amd.com
-X-Msg-Ref: server-8.tower-21.messagelabs.com!1346849246!13498778!1
-X-Originating-IP: [213.199.154.205]
-X-SpamReason: No, hits=0.0 required=7.0 tests=
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 5096 invoked from network); 5 Sep 2012 12:47:26 -0000
-Received: from am1ehsobe002.messaging.microsoft.com (HELO
-       am1outboundpool.messaging.microsoft.com) (213.199.154.205)
-       by server-8.tower-21.messagelabs.com with AES128-SHA encrypted SMTP;
-       5 Sep 2012 12:47:26 -0000
-Received: from mail115-am1-R.bigfish.com (10.3.201.245) by
-       AM1EHSOBE008.bigfish.com (10.3.204.28) with Microsoft SMTP Server id
-       14.1.225.23; Wed, 5 Sep 2012 12:47:26 +0000
-Received: from mail115-am1 (localhost [127.0.0.1])     by
-       mail115-am1-R.bigfish.com (Postfix) with ESMTP id 5A3251A0084;
-       Wed,  5 Sep 2012 12:47:26 +0000 (UTC)
-X-Forefront-Antispam-Report: CIP:163.181.249.109; KIP:(null); UIP:(null);
-       IPV:NLI; H:ausb3twp02.amd.com; RD:none; EFVD:NLI
-X-SpamScore: -5
-X-BigFish: VPS-5(zzbb2dI98dI9371Ic89bh1432I4015Izz1202hzzz2dh668h839hd25he5bhf0ah107ah1155h)
-Received: from mail115-am1 (localhost.localdomain [127.0.0.1]) by mail115-am1
-       (MessageSwitch) id 1346849244373150_18965;
-       Wed,  5 Sep 2012 12:47:24 +0000 (UTC)
-Received: from AM1EHSMHS004.bigfish.com (unknown [10.3.201.227])       by
-       mail115-am1.bigfish.com (Postfix) with ESMTP id 4E7B0180047;
-       Wed,  5 Sep 2012 12:47:24 +0000 (UTC)
-Received: from ausb3twp02.amd.com (163.181.249.109) by
-       AM1EHSMHS004.bigfish.com (10.3.207.104) with Microsoft SMTP Server id
-       14.1.225.23; Wed, 5 Sep 2012 12:47:22 +0000
-X-WSS-ID: 0M9VNIS-02-3CN-02
-X-M-MSG: 
-Received: from sausexedgep02.amd.com (sausexedgep02-ext.amd.com
-       [163.181.249.73])       (using TLSv1 with cipher AES128-SHA (128/128
-       bits))  (No
-       client certificate requested)   by ausb3twp02.amd.com (Axway MailGate
-       3.8.1)
-       with ESMTP id 20879C8119;       Wed,  5 Sep 2012 07:47:15 -0500 (CDT)
-Received: from SAUSEXDAG04.amd.com (163.181.55.4) by sausexedgep02.amd.com
-       (163.181.36.59) with Microsoft SMTP Server (TLS) id 8.3.192.1;
-       Wed, 5 Sep 2012 07:47:31 -0500
-Received: from storexhtp01.amd.com (172.24.4.3) by sausexdag04.amd.com
-       (163.181.55.4) with Microsoft SMTP Server (TLS) id 14.1.323.3;
-       Wed, 5 Sep 2012 07:47:11 -0500
-Received: from gwo.osrc.amd.com (165.204.16.204) by storexhtp01.amd.com
-       (172.24.4.3) with Microsoft SMTP Server id 8.3.213.0; Wed, 5 Sep 2012
-       08:47:09 -0400
-Received: from [165.204.15.57] (gran.osrc.amd.com [165.204.15.57])     by
-       gwo.osrc.amd.com (Postfix) with ESMTP id C764B49C0D5; Wed,  5 Sep 2012
-       13:47:08 +0100 (BST)
-Message-ID: <50474A11.6050601@amd.com>
-Date: Wed, 5 Sep 2012 14:48:17 +0200
-From: Wei Wang <wei.wang2@amd.com>
-User-Agent: Mozilla/5.0 (X11; Linux x86_64;
-       rv:12.0) Gecko/20120421 Thunderbird/12.0
-MIME-Version: 1.0
-To: Sander Eikelenboom <linux@eikelenboom.it>
-References: <40501859.20120902104331@eikelenboom.it>
-       <CC6932C2.3D99D%keir.xen@gmail.com>
-       <217459398.20120902171441@eikelenboom.it>
-       <5044CAD7.8030800@amd.com>
-       <1144695277.20120904184345@eikelenboom.it>
-       <5047420A0200007800098BB1@nat28.tlf.novell.com>
-       <348297741.20120905122542@eikelenboom.it>
-In-Reply-To: <348297741.20120905122542@eikelenboom.it>
-X-OriginatorOrg: amd.com
-Cc: Keir Fraser <keir.xen@gmail.com>, Santosh Jodh <Santosh.Jodh@citrix.com>,
-       Jan Beulich <JBeulich@suse.com>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Transfer-Encoding: quoted-printable
-Content-Type: text/plain; charset="iso-8859-15"; Format="flowed"
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] Using debug-key 'o:  Dump IOMMU p2m table,
- locks up machine
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-OK, I got your lspci info, please find my answer inline.
-
-On 09/05/2012 12:25 PM, Sander Eikelenboom wrote:
-
->
-> 00:00.0 Host bridge: ATI Technologies Inc RD890 Northbridge only single s=
-lot PCI-e GFX Hydra part (rev 02)
-> 00:00.2 Generic system peripheral [0806]: ATI Technologies Inc RD990 I/O =
-Memory Management Unit (IOMMU)
-> 00:02.0 PCI bridge: ATI Technologies Inc RD890 PCI to PCI bridge (PCI exp=
-ress gpp port B)
-> 00:03.0 PCI bridge: ATI Technologies Inc RD890 PCI to PCI bridge (PCI exp=
-ress gpp port C)
-> 00:05.0 PCI bridge: ATI Technologies Inc RD890 PCI to PCI bridge (PCI exp=
-ress gpp port E)
-> 00:06.0 PCI bridge: ATI Technologies Inc RD890 PCI to PCI bridge (PCI exp=
-ress gpp port F)
-> 00:0a.0 PCI bridge: ATI Technologies Inc RD890 PCI to PCI bridge (externa=
-l gfx1 port A)
-> 00:0b.0 PCI bridge: ATI Technologies Inc RD890 PCI to PCI bridge (NB-SB l=
-ink)
-> 00:0c.0 PCI bridge: ATI Technologies Inc Device 5a20
-> 00:0d.0 PCI bridge: ATI Technologies Inc RD890 PCI to PCI bridge (externa=
-l gfx1 port B)
-> 00:11.0 SATA controller: ATI Technologies Inc SB7x0/SB8x0/SB9x0 SATA Cont=
-roller [AHCI mode] (rev 40)
-> 00:12.0 USB controller: ATI Technologies Inc SB7x0/SB8x0/SB9x0 USB OHCI0 =
-Controller
-> 00:12.2 USB controller: ATI Technologies Inc SB7x0/SB8x0/SB9x0 USB EHCI C=
-ontroller
-> 00:13.0 USB controller: ATI Technologies Inc SB7x0/SB8x0/SB9x0 USB OHCI0 =
-Controller
-> 00:13.2 USB controller: ATI Technologies Inc SB7x0/SB8x0/SB9x0 USB EHCI C=
-ontroller
-> 00:14.0 SMBus: ATI Technologies Inc SBx00 SMBus Controller (rev 41)
-> 00:14.3 ISA bridge: ATI Technologies Inc SB7x0/SB8x0/SB9x0 LPC host contr=
-oller (rev 40)
-> 00:14.4 PCI bridge: ATI Technologies Inc SBx00 PCI to PCI Bridge (rev 40)
-> 00:14.5 USB controller: ATI Technologies Inc SB7x0/SB8x0/SB9x0 USB OHCI2 =
-Controller
-> 00:15.0 PCI bridge: ATI Technologies Inc SB700/SB800/SB900 PCI to PCI bri=
-dge (PCIE port 0)
-> 00:16.0 USB controller: ATI Technologies Inc SB7x0/SB8x0/SB9x0 USB OHCI0 =
-Controller
-> 00:16.2 USB controller: ATI Technologies Inc SB7x0/SB8x0/SB9x0 USB EHCI C=
-ontroller
-> 00:18.0 Host bridge: Advanced Micro Devices [AMD] Family 10h Processor Hy=
-perTransport Configuration
-> 00:18.1 Host bridge: Advanced Micro Devices [AMD] Family 10h Processor Ad=
-dress Map
-> 00:18.2 Host bridge: Advanced Micro Devices [AMD] Family 10h Processor DR=
-AM Controller
-> 00:18.3 Host bridge: Advanced Micro Devices [AMD] Family 10h Processor Mi=
-scellaneous Control
-> 00:18.4 Host bridge: Advanced Micro Devices [AMD] Family 10h Processor Li=
-nk Control
-> 03:06.0 Multimedia audio controller: C-Media Electronics Inc CM8738 (rev =
-10)
-> 04:00.0 USB controller: NetMos Technology MCS9990 PCIe to 4=E2Port USB 2.=
-0 Host Controller
-> 04:00.1 USB controller: NetMos Technology MCS9990 PCIe to 4=E2Port USB 2.=
-0 Host Controller
-> 04:00.2 USB controller: NetMos Technology MCS9990 PCIe to 4=E2Port USB 2.=
-0 Host Controller
-> 04:00.3 USB controller: NetMos Technology MCS9990 PCIe to 4=E2Port USB 2.=
-0 Host Controller
-> 04:00.4 USB controller: NetMos Technology MCS9990 PCIe to 4=E2Port USB 2.=
-0 Host Controller
-> 04:00.5 USB controller: NetMos Technology MCS9990 PCIe to 4=E2Port USB 2.=
-0 Host Controller
-> 04:00.6 USB controller: NetMos Technology MCS9990 PCIe to 4=E2Port USB 2.=
-0 Host Controller
-> 04:00.7 USB controller: NetMos Technology MCS9990 PCIe to 4=E2Port USB 2.=
-0 Host Controller
-> 05:00.0 Multimedia video controller: Conexant Systems, Inc. CX25850
-> 06:00.0 VGA compatible controller: ATI Technologies Inc RV620 LE [Radeon =
-HD 3450]
-> 06:00.1 Audio device: ATI Technologies Inc RV620 Audio device [Radeon HD =
-34xx Series]
-> 07:00.0 Multimedia video controller: Conexant Systems, Inc. Device 8210
-
-What kind of device is it, is it a graphic card? Is there any firmware =
-
-running on this device? Some firmwares like vbios might have bad =
-
-assumption of address space. And how many memory the guest has? Could =
-
-you attach a lspci -vvv output from your guest?
-
-Thanks,
-Wei
-
-> 08:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168=
-B PCI Express Gigabit Ethernet controller (rev 03)
-> 09:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168=
-B PCI Express Gigabit Ethernet controller (rev 03)
-> 0a:00.0 USB controller: NetMos Technology MCS9990 PCIe to 4=E2Port USB 2.=
-0 Host Controller
-> 0a:00.1 USB controller: NetMos Technology MCS9990 PCIe to 4=E2Port USB 2.=
-0 Host Controller
-> 0a:00.2 USB controller: NetMos Technology MCS9990 PCIe to 4=E2Port USB 2.=
-0 Host Controller
-> 0a:00.3 USB controller: NetMos Technology MCS9990 PCIe to 4=E2Port USB 2.=
-0 Host Controller
-> 0a:00.4 USB controller: NetMos Technology MCS9990 PCIe to 4=E2Port USB 2.=
-0 Host Controller
-> 0a:00.5 USB controller: NetMos Technology MCS9990 PCIe to 4=E2Port USB 2.=
-0 Host Controller
-> 0a:00.6 USB controller: NetMos Technology MCS9990 PCIe to 4=E2Port USB 2.=
-0 Host Controller
-> 0a:00.7 USB controller: NetMos Technology MCS9990 PCIe to 4=E2Port USB 2.=
-0 Host Controller
-> 0b:00.0 VGA compatible controller: nVidia Corporation G98 [GeForce 8400 G=
-S] (rev a1)
->
->
->
->
->
->
->
->> Jan
->
->
->
->
-
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<504756850200007800098D1A@nat28.tlf.novell.com> b/test/corpus/<504756850200007800098D1A@nat28.tlf.novell.com>
deleted file mode 100644 (file)
index 09f2352..0000000
+++ /dev/null
@@ -1,119 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Sep 05 12:44:57 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 05 Sep 2012 12:44:57 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T9E2R-0002Yc-8a
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 05 Sep 2012 12:44:57 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T9DyH-0001Gi-MH; Wed, 05 Sep 2012 11:40:37 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <JBeulich@suse.com>) id 1T9DyF-0001Gc-Hs
-       for xen-devel@lists.xen.org; Wed, 05 Sep 2012 11:40:35 +0000
-Received: from [85.158.138.51:6876] by server-11.bemta-3.messagelabs.com id
-       0E/C6-30250-23A37405; Wed, 05 Sep 2012 11:40:34 +0000
-X-Env-Sender: JBeulich@suse.com
-X-Msg-Ref: server-8.tower-174.messagelabs.com!1346845233!28724073!1
-X-Originating-IP: [130.57.49.28]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogMTMwLjU3LjQ5LjI4ID0+IDQwMzE=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 4872 invoked from network); 5 Sep 2012 11:40:33 -0000
-Received: from nat28.tlf.novell.com (HELO nat28.tlf.novell.com) (130.57.49.28)
-       by server-8.tower-174.messagelabs.com with SMTP;
-       5 Sep 2012 11:40:33 -0000
-Received: from EMEA1-MTA by nat28.tlf.novell.com
-       with Novell_GroupWise; Wed, 05 Sep 2012 12:40:32 +0100
-Message-Id: <504756850200007800098D1A@nat28.tlf.novell.com>
-X-Mailer: Novell GroupWise Internet Agent 12.0.0 
-Date: Wed, 05 Sep 2012 12:41:25 +0100
-From: "Jan Beulich" <JBeulich@suse.com>
-To: "Sander Eikelenboom" <linux@eikelenboom.it>
-References: <40501859.20120902104331@eikelenboom.it>
-       <CC6932C2.3D99D%keir.xen@gmail.com>
-       <217459398.20120902171441@eikelenboom.it> <5044CAD7.8030800@amd.com>
-       <1144695277.20120904184345@eikelenboom.it>
-       <5047420A0200007800098BB1@nat28.tlf.novell.com>
-       <348297741.20120905122542@eikelenboom.it>
-       <5047483F0200007800098C18@nat28.tlf.novell.com>
-       <88861335.20120905124810@eikelenboom.it>
-In-Reply-To: <88861335.20120905124810@eikelenboom.it>
-Mime-Version: 1.0
-Content-Disposition: inline
-Cc: Wei Wang <wei.wang2@amd.com>, Keir Fraser <keir.xen@gmail.com>,
-       Santosh Jodh <Santosh.Jodh@citrix.com>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="utf-8"
-Content-Transfer-Encoding: base64
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] Using debug-key 'o:  Dump IOMMU p2m table,
- locks up machine
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-Pj4+IE9uIDA1LjA5LjEyIGF0IDEyOjQ4LCBTYW5kZXIgRWlrZWxlbmJvb20gPGxpbnV4QGVpa2Vs
-ZW5ib29tLml0PiB3cm90ZToKCj4gV2VkbmVzZGF5LCBTZXB0ZW1iZXIgNSwgMjAxMiwgMTI6NDA6
-MzEgUE0sIHlvdSB3cm90ZToKPiAKPj4+Pj4gT24gMDUuMDkuMTIgYXQgMTI6MjUsIFNhbmRlciBF
-aWtlbGVuYm9vbSA8bGludXhAZWlrZWxlbmJvb20uaXQ+IHdyb3RlOgo+Pj4gV2VkbmVzZGF5LCBT
-ZXB0ZW1iZXIgNSwgMjAxMiwgMTI6MTQ6MDIgUE0sIHlvdSB3cm90ZToKPj4+Pj4+PiBPbiAwNC4w
-OS4xMiBhdCAxODo0MywgU2FuZGVyIEVpa2VsZW5ib29tIDxsaW51eEBlaWtlbGVuYm9vbS5pdD4g
-d3JvdGU6Cj4+Pj4+IC4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLjwwPkFNRC1WaTogSU9fUEFH
-RV9GQVVMVDogZG9tYWluID0gMCwgZGV2aWNlIGlkID0gCj4+Pj4+IDB4MGEwNiwgZmF1bHQgYWRk
-cmVzcyA9IDB4YzJjMmMyYzAKPj4+IAo+Pj4+IExvb2tzIGxpa2UgdXNlIG9mIHVuaW5pdGlhbGl6
-ZWQgbWVtb3J5IChhc3N1bWluZyB5b3UncmUgdXNpbmcgYQo+Pj4+IGRlYnVnIGh5cGVydmlzb3Is
-IHRoYXQncyB0aGUgcGF0dGVybiBzY3J1Yl9vbmVfcGFnZSgpIHB1dHMKPj4+PiB0aGVyZSkuIEJ1
-dCBpdCdzIHVuY2xlYXIgdG8gbWUgd2hhdCBkZXZpY2Ugc2hvdWxkIGJlIGRvaW5nIGFueQo+Pj4+
-IEkvTyBhdCB0aGF0IHBvaW50IChhbmQgZXZlbiBpZiBvbmUgZG9lcywgaG93IGl0IHdvdWxkIGdl
-dCB0aGUKPj4+PiBiYWQgYWRkcmVzcyBsb2FkZWQpLiBXaGF0IGlzIDBhOjAwLjY/Cj4+PiAKPj4+
-IHNpbmNlIDQuMi1yYzQgaXMgc3RpbGwgdW5zdGFibGUgaXQgaGFzIGRlYnVnPXkgZm9yIHdoYXQg
-aSBrbm93LCBzbyB5ZXMuCj4+PiBUaGlzIHBhcnRpY3VsYXIgSU9fUEFHRV9GQVVMVCBoYXBwZW5l
-ZCBiZWZvcmUgdGhlIGtlcm5lbCBsb2Fkcywgc28gdGhlIAo+Pj4ga2VybmVsIGFuZCBwY2liYWNr
-IHNob3VsZG4ndCBiZSBjYXVzaW5nIHRoZSBpc3N1ZSBvbmUgd291bGQgc2F5Lgo+Pj4gV2l0aCBw
-Y2liYWNrIGknbSBoaWRpbmcgMDM6MDYuMCwgMDQ6MDAuKiwgMDU6MDAuMCwgMGE6MDAuKiBhbmQg
-MDc6MDAuMCBhdCAKPj4+IGJvb3QuCj4+PiAKPj4+IElzIHRoZXJlIGFueSBjb2RlIGkgY291bGQg
-YWRkIHRvIGdldCBtb3JlIGluZm8gd2hlcmUgaXQgY29tZXMgZnJvbSA/Cj4gCj4+IEhhcmRseSwg
-c2luY2UgdGhvc2UgYWNjZXNzZXMgYXJlIGFzeW5jaHJvbm91cyB0byB3aGF0IHRoZSBDUFVzCj4+
-IGRvLiBCdXQgLi4uCj4gCj4+PiAwYTowMC42IFVTQiBjb250cm9sbGVyOiBOZXRNb3MgVGVjaG5v
-bG9neSBNQ1M5OTkwIFBDSWUgdG8gNMOiUG9ydCBVU0IgMi4wIAo+IEhvc3QgQ29udHJvbGxlcgo+
-IAo+PiAuLi4gYXJlIHlvdXIga2V5Ym9hcmQvbW91c2UgcGVyaGFwcyBjb25uZWN0ZWQgdG8gdGhp
-cyBvbmU/IEluCj4+IHdoaWNoIGNhc2UgSSdkIHN1cHBvc2UgdGhlIDE6MSB0YWJsZXMgc2V0IHVw
-IGZvciBEb20wIG1pZ2h0IG5vdAo+PiBiZSBjb21wbGV0ZS4gV2VpPwo+IAo+IE5vcGUgdGhpcyBt
-YWNoaW5lIGlzIHJ1bm5pbmcgd2l0aG91dCBhbnkga2V5Ym9hcmQvbW91c2UsIHRoZSBVU0IgY29u
-dHJvbGxlciAKPiBhdCBwcmVzZW50IGhhcyBvbmx5IG9uZSBkZXZpY2UgY29ubmVjdGVkIHRvIGl0
-Ogo+IGluIHRoZSBwdiBndWVzdCBsc3VzYjoKPiBCdXMgMDA3IERldmljZSAwMDI6IElEIDEwY2Y6
-NTUwMCBWZWxsZW1hbiBDb21wb25lbnRzLCBJbmMuIDgwNTUgRXhwZXJpbWVudCAKPiBJbnRlcmZh
-Y2UgQm9hcmQgKGFkZHJlc3M9MCkKCkFuZCB0aGlzIGlzIG5vdCBieSBjaGFuY2UgaGFuZ2luZyBv
-ZmYgdGhlIGNvbnRyb2xsZXIgdGhhdCB0aGUgZmF1bHQKd2FzIHJlcG9ydGVkIGZvcj8KCj4gQW5k
-IGFzIGkgc2FpZCwgdGhlIGhhcmR3YXJlIGRpZG4ndCBjaGFuZ2UgYmV0d2VlbiBteSBzd2l0Y2gg
-ZnJvbSB4ZW4tNC4xLjMgCj4gdG8geGVuLTQuMi4KCkkgdW5kZXJzdGFuZCB0aGF0LCBidXQgdGhl
-IHByb2JsZW0gaGVyZSBzaG93ZWQgdXAgb25seSBhZnRlcgp0b2dnbGluZyB0aGUgcGFnZSB0YWJs
-ZSBzaGFyaW5nIG9wdGlvbiBpaXJjLgoKSmFuCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19f
-X19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0
-cy54ZW4ub3JnCmh0dHA6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=
-
diff --git a/test/corpus/<50475E8D.2090709@amd.com> b/test/corpus/<50475E8D.2090709@amd.com>
deleted file mode 100644 (file)
index 2176dee..0000000
+++ /dev/null
@@ -1,152 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Sep 05 15:19:49 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 05 Sep 2012 15:19:49 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T9GSF-0003AB-8o
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 05 Sep 2012 15:19:49 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T9GNW-0001My-Qr; Wed, 05 Sep 2012 14:14:50 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Wei.Wang2@amd.com>) id 1T9GNU-0001Mp-9g
-       for xen-devel@lists.xen.org; Wed, 05 Sep 2012 14:14:48 +0000
-Received: from [85.158.143.99:2399] by server-2.bemta-4.messagelabs.com id
-       E4/58-21239-75E57405; Wed, 05 Sep 2012 14:14:47 +0000
-X-Env-Sender: Wei.Wang2@amd.com
-X-Msg-Ref: server-8.tower-216.messagelabs.com!1346854485!18921199!1
-X-Originating-IP: [216.32.180.186]
-X-SpamReason: No, hits=0.0 required=7.0 tests=
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 18313 invoked from network); 5 Sep 2012 14:14:46 -0000
-Received: from co1ehsobe003.messaging.microsoft.com (HELO
-       co1outboundpool.messaging.microsoft.com) (216.32.180.186)
-       by server-8.tower-216.messagelabs.com with AES128-SHA encrypted SMTP;
-       5 Sep 2012 14:14:46 -0000
-Received: from mail110-co1-R.bigfish.com (10.243.78.239) by
-       CO1EHSOBE016.bigfish.com (10.243.66.79) with Microsoft SMTP Server id
-       14.1.225.23; Wed, 5 Sep 2012 14:14:44 +0000
-Received: from mail110-co1 (localhost [127.0.0.1])     by
-       mail110-co1-R.bigfish.com (Postfix) with ESMTP id B92EA3A0097;
-       Wed,  5 Sep 2012 14:14:44 +0000 (UTC)
-X-Forefront-Antispam-Report: CIP:163.181.249.109; KIP:(null); UIP:(null);
-       IPV:NLI; H:ausb3twp02.amd.com; RD:none; EFVD:NLI
-X-SpamScore: -5
-X-BigFish: VPS-5(zzbb2dI98dI9371Ic89bh1432I4015Izz1202hzzz2dh668h839h93fhd25he5bhf0ah107ah1155h)
-Received: from mail110-co1 (localhost.localdomain [127.0.0.1]) by mail110-co1
-       (MessageSwitch) id 1346854482986326_27761;
-       Wed,  5 Sep 2012 14:14:42 +0000 (UTC)
-Received: from CO1EHSMHS016.bigfish.com (unknown [10.243.78.239])      by
-       mail110-co1.bigfish.com (Postfix) with ESMTP id E39B1C800BD;
-       Wed,  5 Sep 2012 14:14:42 +0000 (UTC)
-Received: from ausb3twp02.amd.com (163.181.249.109) by
-       CO1EHSMHS016.bigfish.com (10.243.66.26) with Microsoft SMTP Server id
-       14.1.225.23; Wed, 5 Sep 2012 14:14:41 +0000
-X-WSS-ID: 0M9VRKB-02-3IV-02
-X-M-MSG: 
-Received: from sausexedgep01.amd.com (sausexedgep01-ext.amd.com
-       [163.181.249.72])       (using TLSv1 with cipher AES128-SHA (128/128
-       bits))  (No
-       client certificate requested)   by ausb3twp02.amd.com (Axway MailGate
-       3.8.1)
-       with ESMTP id 20211C811F;       Wed,  5 Sep 2012 09:14:34 -0500 (CDT)
-Received: from SAUSEXDAG03.amd.com (163.181.55.3) by sausexedgep01.amd.com
-       (163.181.36.54) with Microsoft SMTP Server (TLS) id 8.3.192.1;
-       Wed, 5 Sep 2012 09:14:51 -0500
-Received: from storexhtp02.amd.com (172.24.4.4) by sausexdag03.amd.com
-       (163.181.55.3) with Microsoft SMTP Server (TLS) id 14.1.323.3;
-       Wed, 5 Sep 2012 09:14:38 -0500
-Received: from gwo.osrc.amd.com (165.204.16.204) by storexhtp02.amd.com
-       (172.24.4.4) with Microsoft SMTP Server id 8.3.213.0; Wed, 5 Sep 2012
-       10:14:37 -0400
-Received: from [165.204.15.57] (gran.osrc.amd.com [165.204.15.57])     by
-       gwo.osrc.amd.com (Postfix) with ESMTP id EABCC49C0D5; Wed,  5 Sep 2012
-       15:14:32 +0100 (BST)
-Message-ID: <50475E8D.2090709@amd.com>
-Date: Wed, 5 Sep 2012 16:15:41 +0200
-From: Wei Wang <wei.wang2@amd.com>
-User-Agent: Mozilla/5.0 (X11; Linux x86_64;
-       rv:12.0) Gecko/20120421 Thunderbird/12.0
-MIME-Version: 1.0
-To: Jan Beulich <JBeulich@suse.com>
-References: <40501859.20120902104331@eikelenboom.it>
-       <CC6932C2.3D99D%keir.xen@gmail.com>
-       <217459398.20120902171441@eikelenboom.it>
-       <5044CAD7.8030800@amd.com>
-       <1144695277.20120904184345@eikelenboom.it>
-       <5047420A0200007800098BB1@nat28.tlf.novell.com>
-       <348297741.20120905122542@eikelenboom.it>
-       <5047483F0200007800098C18@nat28.tlf.novell.com>
-In-Reply-To: <5047483F0200007800098C18@nat28.tlf.novell.com>
-X-OriginatorOrg: amd.com
-Cc: Sander Eikelenboom <linux@eikelenboom.it>, Keir Fraser <keir.xen@gmail.com>,
-       Santosh Jodh <Santosh.Jodh@citrix.com>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Transfer-Encoding: base64
-Content-Type: text/plain; charset="utf-8"; Format="flowed"
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] Using debug-key 'o:  Dump IOMMU p2m table,
- locks up machine
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-T24gMDkvMDUvMjAxMiAxMjo0MCBQTSwgSmFuIEJldWxpY2ggd3JvdGU6Cj4+Pj4gT24gMDUuMDku
-MTIgYXQgMTI6MjUsIFNhbmRlciBFaWtlbGVuYm9vbTxsaW51eEBlaWtlbGVuYm9vbS5pdD4gIHdy
-b3RlOgo+PiBXZWRuZXNkYXksIFNlcHRlbWJlciA1LCAyMDEyLCAxMjoxNDowMiBQTSwgeW91IHdy
-b3RlOgo+Pj4+Pj4gT24gMDQuMDkuMTIgYXQgMTg6NDMsIFNhbmRlciBFaWtlbGVuYm9vbTxsaW51
-eEBlaWtlbGVuYm9vbS5pdD4gIHdyb3RlOgo+Pj4+IC4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
-LjwwPkFNRC1WaTogSU9fUEFHRV9GQVVMVDogZG9tYWluID0gMCwgZGV2aWNlIGlkID0KPj4+PiAw
-eDBhMDYsIGZhdWx0IGFkZHJlc3MgPSAweGMyYzJjMmMwCj4+Cj4+PiBMb29rcyBsaWtlIHVzZSBv
-ZiB1bmluaXRpYWxpemVkIG1lbW9yeSAoYXNzdW1pbmcgeW91J3JlIHVzaW5nIGEKPj4+IGRlYnVn
-IGh5cGVydmlzb3IsIHRoYXQncyB0aGUgcGF0dGVybiBzY3J1Yl9vbmVfcGFnZSgpIHB1dHMKPj4+
-IHRoZXJlKS4gQnV0IGl0J3MgdW5jbGVhciB0byBtZSB3aGF0IGRldmljZSBzaG91bGQgYmUgZG9p
-bmcgYW55Cj4+PiBJL08gYXQgdGhhdCBwb2ludCAoYW5kIGV2ZW4gaWYgb25lIGRvZXMsIGhvdyBp
-dCB3b3VsZCBnZXQgdGhlCj4+PiBiYWQgYWRkcmVzcyBsb2FkZWQpLiBXaGF0IGlzIDBhOjAwLjY/
-Cj4+Cj4+IHNpbmNlIDQuMi1yYzQgaXMgc3RpbGwgdW5zdGFibGUgaXQgaGFzIGRlYnVnPXkgZm9y
-IHdoYXQgaSBrbm93LCBzbyB5ZXMuCj4+IFRoaXMgcGFydGljdWxhciBJT19QQUdFX0ZBVUxUIGhh
-cHBlbmVkIGJlZm9yZSB0aGUga2VybmVsIGxvYWRzLCBzbyB0aGUKPj4ga2VybmVsIGFuZCBwY2li
-YWNrIHNob3VsZG4ndCBiZSBjYXVzaW5nIHRoZSBpc3N1ZSBvbmUgd291bGQgc2F5Lgo+PiBXaXRo
-IHBjaWJhY2sgaSdtIGhpZGluZyAwMzowNi4wLCAwNDowMC4qLCAwNTowMC4wLCAwYTowMC4qIGFu
-ZCAwNzowMC4wIGF0Cj4+IGJvb3QuCj4+Cj4+IElzIHRoZXJlIGFueSBjb2RlIGkgY291bGQgYWRk
-IHRvIGdldCBtb3JlIGluZm8gd2hlcmUgaXQgY29tZXMgZnJvbSA/Cj4KPiBIYXJkbHksIHNpbmNl
-IHRob3NlIGFjY2Vzc2VzIGFyZSBhc3luY2hyb25vdXMgdG8gd2hhdCB0aGUgQ1BVcwo+IGRvLiBC
-dXQgLi4uCj4KPj4gMGE6MDAuNiBVU0IgY29udHJvbGxlcjogTmV0TW9zIFRlY2hub2xvZ3kgTUNT
-OTk5MCBQQ0llIHRvIDTDolBvcnQgVVNCIDIuMCBIb3N0IENvbnRyb2xsZXIKPgo+IC4uLiBhcmUg
-eW91ciBrZXlib2FyZC9tb3VzZSBwZXJoYXBzIGNvbm5lY3RlZCB0byB0aGlzIG9uZT8gSW4KPiB3
-aGljaCBjYXNlIEknZCBzdXBwb3NlIHRoZSAxOjEgdGFibGVzIHNldCB1cCBmb3IgRG9tMCBtaWdo
-dCBub3QKPiBiZSBjb21wbGV0ZS4gV2VpPwoKSSBjaGVja2VkIHRoaXMgb24gbXkgbWFjaGluZSB1
-c2luZyAnbycga2V5IGFuZCBpdCBoYXMgYmVlbiBtYXBwZWQgYXMgYSAKMk1CIGZyYW1lIHNlZTog
-Z2ZuOiAwMDBjMmMwMCAgbWZuOiAwMDBjMmMwMC4gQnV0IG1heWJlIEkgaGF2ZSBubyBkZXZpY2Ug
-CmFjY2VzcyB0byB0aGlzIGFkZHJlc3MuLi4gQW5vdGhlciBwb3NzaWJpbGl0eSBpcyBpbnRlcnJ1
-cHQgbWVzc2FnZS4gNC4xIApkb2VzIG5vdCBzaG93IElPX1BBR0VfRkFVTFQgZm9yIGludGVycnVw
-dHMsIGJ1dCA0LjIgZG9lcyAoY2hhbmdlc2V0IAoyMzE5OTpkYmQ5OGFiMmY4N2YpLiBJIHdpbGwg
-c2VuZCBhIHBhdGNoIHRvIGR1bXAgZmxhZ3MgZnJvbSBJT19QQUdFX0ZBVUxULgoKVGhhbmtzLApX
-ZWkKCj4gSmFuCj4KCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
-X19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRw
-Oi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK
-
diff --git a/test/corpus/<504786530200007800098F6E@nat28.tlf.novell.com> b/test/corpus/<504786530200007800098F6E@nat28.tlf.novell.com>
deleted file mode 100644 (file)
index 2be656f..0000000
+++ /dev/null
@@ -1,102 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Sep 05 16:10:02 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 05 Sep 2012 16:10:02 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T9HEq-0003Kc-Ic
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 05 Sep 2012 16:10:02 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T9H9e-0002qO-Hs; Wed, 05 Sep 2012 15:04:34 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <JBeulich@suse.com>) id 1T9H9d-0002qI-CO
-       for xen-devel@lists.xen.org; Wed, 05 Sep 2012 15:04:33 +0000
-Received: from [85.158.138.51:62518] by server-10.bemta-3.messagelabs.com id
-       96/BC-10411-00A67405; Wed, 05 Sep 2012 15:04:32 +0000
-X-Env-Sender: JBeulich@suse.com
-X-Msg-Ref: server-9.tower-174.messagelabs.com!1346857471!28875897!1
-X-Originating-IP: [130.57.49.28]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogMTMwLjU3LjQ5LjI4ID0+IDQwMzE=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 18055 invoked from network); 5 Sep 2012 15:04:31 -0000
-Received: from nat28.tlf.novell.com (HELO nat28.tlf.novell.com) (130.57.49.28)
-       by server-9.tower-174.messagelabs.com with SMTP;
-       5 Sep 2012 15:04:31 -0000
-Received: from EMEA1-MTA by nat28.tlf.novell.com
-       with Novell_GroupWise; Wed, 05 Sep 2012 16:05:00 +0100
-Message-Id: <504786530200007800098F6E@nat28.tlf.novell.com>
-X-Mailer: Novell GroupWise Internet Agent 12.0.0 
-Date: Wed, 05 Sep 2012 16:05:23 +0100
-From: "Jan Beulich" <JBeulich@suse.com>
-To: "Wei Wang" <wei.wang2@amd.com>
-References: <40501859.20120902104331@eikelenboom.it>
-       <CC6932C2.3D99D%keir.xen@gmail.com>
-       <217459398.20120902171441@eikelenboom.it> <5044CAD7.8030800@amd.com>
-       <1144695277.20120904184345@eikelenboom.it>
-       <5047420A0200007800098BB1@nat28.tlf.novell.com>
-       <348297741.20120905122542@eikelenboom.it>
-       <5047483F0200007800098C18@nat28.tlf.novell.com>
-       <50475E8D.2090709@amd.com>
-In-Reply-To: <50475E8D.2090709@amd.com>
-Mime-Version: 1.0
-Content-Disposition: inline
-Cc: Sander Eikelenboom <linux@eikelenboom.it>, Keir Fraser <keir.xen@gmail.com>,
-       Santosh Jodh <Santosh.Jodh@citrix.com>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] Using debug-key 'o:  Dump IOMMU p2m table,
- locks up machine
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
->>> On 05.09.12 at 16:15, Wei Wang <wei.wang2@amd.com> wrote:
-> I checked this on my machine using 'o' key and it has been mapped as a 
-> 2MB frame see: gfn: 000c2c00  mfn: 000c2c00. But maybe I have no device 
-
-Obviously he won't have gfn c2c00 and alike since he's using
-dom0_mem=1G - you should probably try that too. But even then
-I wouldn't expect you to see anything, as you also need a
-babbling device.
-
-> access to this address... Another possibility is interrupt message. 4.1 
-> does not show IO_PAGE_FAULT for interrupts, but 4.2 does (changeset 
-> 23199:dbd98ab2f87f). I will send a patch to dump flags from IO_PAGE_FAULT.
-
-Yes, that might help a little further.
-
-Jan
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<504DE4EF.5070004@citrix.com> b/test/corpus/<504DE4EF.5070004@citrix.com>
deleted file mode 100644 (file)
index 9572c17..0000000
+++ /dev/null
@@ -1,137 +0,0 @@
-From xen-devel-bounces@lists.xen.org Mon Sep 10 14:04:18 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Mon, 10 Sep 2012 14:04:18 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TB3eu-0007sL-MD
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Mon, 10 Sep 2012 14:04:18 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TB3b4-0007EU-JM; Mon, 10 Sep 2012 13:00:14 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <julien.grall@citrix.com>) id 1TB3b3-0007EL-8n
-       for xen-devel@lists.xen.org; Mon, 10 Sep 2012 13:00:13 +0000
-Received: from [85.158.143.99:46254] by server-3.bemta-4.messagelabs.com id
-       72/0E-08232-C54ED405; Mon, 10 Sep 2012 13:00:12 +0000
-X-Env-Sender: julien.grall@citrix.com
-X-Msg-Ref: server-5.tower-216.messagelabs.com!1347282009!29189206!1
-X-Originating-IP: [66.165.176.63]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyNzc5Njk=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 21132 invoked from network); 10 Sep 2012 13:00:11 -0000
-Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
-       by server-5.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
-       10 Sep 2012 13:00:11 -0000
-X-IronPort-AV: E=Sophos;i="4.80,398,1344211200"; d="scan'208";a="207574001"
-Received: from ftlpmailmx01.citrite.net ([10.13.107.65])
-       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       10 Sep 2012 13:00:09 +0000
-Received: from [10.80.248.240] (10.80.248.240) by smtprelay.citrix.com
-       (10.13.107.65) with Microsoft SMTP Server id 8.3.279.1; Mon, 10 Sep 2012
-       09:00:08 -0400
-Message-ID: <504DE4EF.5070004@citrix.com>
-Date: Mon, 10 Sep 2012 14:02:39 +0100
-From: Julien Grall <julien.grall@citrix.com>
-User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US;
-       rv:1.9.1.16) Gecko/20120726 Icedove/3.0.11
-MIME-Version: 1.0
-To: Jan Beulich <JBeulich@suse.com>
-References: <cover.1345552068.git.julien.grall@citrix.com>
-       <c378b04ee29071c1d6d68bd3ef48fedadb493b10.1345552068.git.julien.grall@citrix.com>
-       <5035E986020000780008A617@nat28.tlf.novell.com>
-       <50360B81.2070402@citrix.com>
-       <5037AE20020000780008A7A8@nat28.tlf.novell.com>
-In-Reply-To: <5037AE20020000780008A7A8@nat28.tlf.novell.com>
-Cc: "christian.limpach@gmail.com" <christian.limpach@gmail.com>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Transfer-Encoding: 7bit
-Content-Type: text/plain; charset="us-ascii"; Format="flowed"
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.6 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [XEN][RFC PATCH V2 05/17] hvm: Modify hvm_op
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On 08/24/2012 04:38 PM, Jan Beulich wrote:
->>>> On 23.08.12 at 12:52, Julien Grall<julien.grall@citrix.com>  wrote:
->>>>          
->> On 08/23/2012 08:27 AM, Jan Beulich wrote:
->>      
->>>> switch ( a.index )
->>>> {
->>>> -            case HVM_PARAM_IOREQ_PFN:
->>>>
->>>>          
->>> Removing sub-ops which a domain can issue for itself (which for this and
->>> another one below appears to be the case) is not allowed.
->>>
->>>        
->> I removed these 3 sub-ops because it will not work with
->> QEMU disaggregation. Shared pages and event channel
->> for IO request are private for each device model.
->>      
-> Then they need to be made inaccessible for that specific setup, not
-> removed altogether.
->
->    
-What do you mean by specific feature ?
-With this patch series, you are able to handle one or more
-QEMU.
-Keep a compatibility with the old IO emulation is hard.
-It's still possible but IOreq handle will not send an IOreq
-if no device  models registered it. There is no more default QEMU.
-
-I have send a long patch series for QEMU, but it's for supporting
-a "full disaggregation" (i.e. multiple QEMU for domain).
-If you want to handle only one QEMU the patch decrease to
-only 100 lines. So it can be backported easily.
-
->>>> +            case HVM_PARAM_IO_PFN_FIRST:
->>>>
->>>>          
->>> I don't see where in this patch this and the other new sub-op constants
->>> get defined.
->>>
->>>        
->> Both sub-op constants are added in patch 1:
->> http://lists.xen.org/archives/html/xen-devel/2012-08/msg01767.html
->>      
-> Hmm, I can certainly see reasons for breaking up things that way,
-> but I generally prefer patches to represent functional units.
->    
-I will rework my patch series to represen function units.
-
--- 
-Julien Grall
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<504DECBF.2000306@citrix.com> b/test/corpus/<504DECBF.2000306@citrix.com>
deleted file mode 100644 (file)
index dc15063..0000000
+++ /dev/null
@@ -1,138 +0,0 @@
-From xen-devel-bounces@lists.xen.org Mon Sep 10 14:38:31 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Mon, 10 Sep 2012 14:38:31 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TB4C2-00081V-2m
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Mon, 10 Sep 2012 14:38:31 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TB47T-00084U-M8; Mon, 10 Sep 2012 13:33:43 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <julien.grall@citrix.com>) id 1TB47R-00084M-J1
-       for xen-devel@lists.xen.org; Mon, 10 Sep 2012 13:33:41 +0000
-Received: from [85.158.138.51:18430] by server-12.bemta-3.messagelabs.com id
-       5D/47-10384-43CED405; Mon, 10 Sep 2012 13:33:40 +0000
-X-Env-Sender: julien.grall@citrix.com
-X-Msg-Ref: server-6.tower-174.messagelabs.com!1347284015!21671895!1
-X-Originating-IP: [66.165.176.89]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNzAwNzQ=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 10551 invoked from network); 10 Sep 2012 13:33:37 -0000
-Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
-       by server-6.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
-       10 Sep 2012 13:33:37 -0000
-X-IronPort-AV: E=Sophos;i="4.80,398,1344211200"; d="scan'208";a="37313905"
-Received: from ftlpmailmx01.citrite.net ([10.13.107.65])
-       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       10 Sep 2012 13:33:35 +0000
-Received: from [10.80.248.240] (10.80.248.240) by smtprelay.citrix.com
-       (10.13.107.65) with Microsoft SMTP Server id 8.3.279.1; Mon, 10 Sep 2012
-       09:33:27 -0400
-Message-ID: <504DECBF.2000306@citrix.com>
-Date: Mon, 10 Sep 2012 14:35:59 +0100
-From: Julien Grall <julien.grall@citrix.com>
-User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US;
-       rv:1.9.1.16) Gecko/20120726 Icedove/3.0.11
-MIME-Version: 1.0
-To: Jan Beulich <JBeulich@suse.com>
-References: <cover.1345552068.git.julien.grall@citrix.com>
-       <c378b04ee29071c1d6d68bd3ef48fedadb493b10.1345552068.git.julien.grall@citrix.com>
-       <5035E986020000780008A617@nat28.tlf.novell.com>
-       <50360B81.2070402@citrix.com>
-       <5037AE20020000780008A7A8@nat28.tlf.novell.com>
-       <504DE4EF.5070004@citrix.com>
-       <504E0600020000780009A37F@nat28.tlf.novell.com>
-In-Reply-To: <504E0600020000780009A37F@nat28.tlf.novell.com>
-Cc: "christian.limpach@gmail.com" <christian.limpach@gmail.com>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Transfer-Encoding: 7bit
-Content-Type: text/plain; charset="us-ascii"; Format="flowed"
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.6 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [XEN][RFC PATCH V2 05/17] hvm: Modify hvm_op
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On 09/10/2012 02:23 PM, Jan Beulich wrote:
->>>> On 10.09.12 at 15:02, Julien Grall<julien.grall@citrix.com>  wrote:
->>>>          
->> On 08/24/2012 04:38 PM, Jan Beulich wrote:
->>      
->>>>>> On 23.08.12 at 12:52, Julien Grall<julien.grall@citrix.com>   wrote:
->>>>>>
->>>>>>              
->>>> On 08/23/2012 08:27 AM, Jan Beulich wrote:
->>>>
->>>>          
->>>>>> switch ( a.index )
->>>>>> {
->>>>>> -            case HVM_PARAM_IOREQ_PFN:
->>>>>>
->>>>>>
->>>>>>              
->>>>> Removing sub-ops which a domain can issue for itself (which for this and
->>>>> another one below appears to be the case) is not allowed.
->>>>>
->>>>>
->>>>>            
->>>> I removed these 3 sub-ops because it will not work with
->>>> QEMU disaggregation. Shared pages and event channel
->>>> for IO request are private for each device model.
->>>>
->>>>          
->>> Then they need to be made inaccessible for that specific setup, not
->>> removed altogether.
->>>
->>>
->>>        
->> What do you mean by specific feature ?
->> With this patch series, you are able to handle one or more
->> QEMU.
->> Keep a compatibility with the old IO emulation is hard.
->>      
-> Did you read my original reply? Code backing operations that a
-> guest can issue itself (i.e. without qemu or another host side
-> component involved) just can't be removed, as you/we have
-> no control over which guest(s) may be making use of that
-> functionality.
->    
-
-Ah ok misundertanding of my part. I don't really understand
-in which case a domain needs to retrieve its ioreq page.
-How can I made it inaccessible ? Just rc = -EINVAL ?
-
--- 
-Julien Grall
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<504E0600020000780009A37F@nat28.tlf.novell.com> b/test/corpus/<504E0600020000780009A37F@nat28.tlf.novell.com>
deleted file mode 100644 (file)
index 6306629..0000000
+++ /dev/null
@@ -1,116 +0,0 @@
-From xen-devel-bounces@lists.xen.org Mon Sep 10 14:28:14 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Mon, 10 Sep 2012 14:28:14 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TB425-000805-0G
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Mon, 10 Sep 2012 14:28:14 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TB3xz-0007sl-Ip; Mon, 10 Sep 2012 13:23:55 +0000
-Received: from mail27.messagelabs.com ([193.109.254.147])
-       by lists.xen.org with smtp (Exim 4.72)
-       (envelope-from <JBeulich@suse.com>) id 1TB3xy-0007sT-GL
-       for xen-devel@lists.xen.org; Mon, 10 Sep 2012 13:23:54 +0000
-X-Env-Sender: JBeulich@suse.com
-X-Msg-Ref: server-15.tower-27.messagelabs.com!1347283427!3405859!1
-X-Originating-IP: [130.57.49.28]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogMTMwLjU3LjQ5LjI4ID0+IDM5OTE=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 10638 invoked from network); 10 Sep 2012 13:23:48 -0000
-Received: from nat28.tlf.novell.com (HELO nat28.tlf.novell.com) (130.57.49.28)
-       by server-15.tower-27.messagelabs.com with SMTP;
-       10 Sep 2012 13:23:48 -0000
-Received: from EMEA1-MTA by nat28.tlf.novell.com
-       with Novell_GroupWise; Mon, 10 Sep 2012 14:23:46 +0100
-Message-Id: <504E0600020000780009A37F@nat28.tlf.novell.com>
-X-Mailer: Novell GroupWise Internet Agent 12.0.0 
-Date: Mon, 10 Sep 2012 14:23:44 +0100
-From: "Jan Beulich" <JBeulich@suse.com>
-To: "Julien Grall" <julien.grall@citrix.com>
-References: <cover.1345552068.git.julien.grall@citrix.com>
-       <c378b04ee29071c1d6d68bd3ef48fedadb493b10.1345552068.git.julien.grall@citrix.com>
-       <5035E986020000780008A617@nat28.tlf.novell.com>
-       <50360B81.2070402@citrix.com>
-       <5037AE20020000780008A7A8@nat28.tlf.novell.com>
-       <504DE4EF.5070004@citrix.com>
-In-Reply-To: <504DE4EF.5070004@citrix.com>
-Mime-Version: 1.0
-Content-Disposition: inline
-Cc: "christian.limpach@gmail.com" <christian.limpach@gmail.com>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.6 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [XEN][RFC PATCH V2 05/17] hvm: Modify hvm_op
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
->>> On 10.09.12 at 15:02, Julien Grall <julien.grall@citrix.com> wrote:
-> On 08/24/2012 04:38 PM, Jan Beulich wrote:
->>>>> On 23.08.12 at 12:52, Julien Grall<julien.grall@citrix.com>  wrote:
->>>>>          
->>> On 08/23/2012 08:27 AM, Jan Beulich wrote:
->>>      
->>>>> switch ( a.index )
->>>>> {
->>>>> -            case HVM_PARAM_IOREQ_PFN:
->>>>>
->>>>>          
->>>> Removing sub-ops which a domain can issue for itself (which for this and
->>>> another one below appears to be the case) is not allowed.
->>>>
->>>>        
->>> I removed these 3 sub-ops because it will not work with
->>> QEMU disaggregation. Shared pages and event channel
->>> for IO request are private for each device model.
->>>      
->> Then they need to be made inaccessible for that specific setup, not
->> removed altogether.
->>
->>    
-> What do you mean by specific feature ?
-> With this patch series, you are able to handle one or more
-> QEMU.
-> Keep a compatibility with the old IO emulation is hard.
-
-Did you read my original reply? Code backing operations that a
-guest can issue itself (i.e. without qemu or another host side
-component involved) just can't be removed, as you/we have
-no control over which guest(s) may be making use of that
-functionality.
-
-Jan
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<504E0968020000780009A397@nat28.tlf.novell.com> b/test/corpus/<504E0968020000780009A397@nat28.tlf.novell.com>
deleted file mode 100644 (file)
index 77303f3..0000000
+++ /dev/null
@@ -1,139 +0,0 @@
-From xen-devel-bounces@lists.xen.org Mon Sep 10 14:43:23 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Mon, 10 Sep 2012 14:43:23 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TB4Gk-00082v-2M
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Mon, 10 Sep 2012 14:43:23 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TB4Cq-0008LC-SG; Mon, 10 Sep 2012 13:39:16 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <JBeulich@suse.com>) id 1TB4Cp-0008L5-Hc
-       for xen-devel@lists.xen.org; Mon, 10 Sep 2012 13:39:15 +0000
-Received: from [85.158.143.35:45210] by server-1.bemta-4.messagelabs.com id
-       DE/C5-12504-28DED405; Mon, 10 Sep 2012 13:39:14 +0000
-X-Env-Sender: JBeulich@suse.com
-X-Msg-Ref: server-11.tower-21.messagelabs.com!1347284299!12381840!1
-X-Originating-IP: [130.57.49.28]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogMTMwLjU3LjQ5LjI4ID0+IDM5OTE=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 21972 invoked from network); 10 Sep 2012 13:38:20 -0000
-Received: from nat28.tlf.novell.com (HELO nat28.tlf.novell.com) (130.57.49.28)
-       by server-11.tower-21.messagelabs.com with SMTP;
-       10 Sep 2012 13:38:20 -0000
-Received: from EMEA1-MTA by nat28.tlf.novell.com
-       with Novell_GroupWise; Mon, 10 Sep 2012 14:38:18 +0100
-Message-Id: <504E0968020000780009A397@nat28.tlf.novell.com>
-X-Mailer: Novell GroupWise Internet Agent 12.0.0 
-Date: Mon, 10 Sep 2012 14:38:16 +0100
-From: "Jan Beulich" <JBeulich@suse.com>
-To: "Julien Grall" <julien.grall@citrix.com>
-References: <cover.1345552068.git.julien.grall@citrix.com>
-       <c378b04ee29071c1d6d68bd3ef48fedadb493b10.1345552068.git.julien.grall@citrix.com>
-       <5035E986020000780008A617@nat28.tlf.novell.com>
-       <50360B81.2070402@citrix.com>
-       <5037AE20020000780008A7A8@nat28.tlf.novell.com>
-       <504DE4EF.5070004@citrix.com>
-       <504E0600020000780009A37F@nat28.tlf.novell.com>
-       <504DECBF.2000306@citrix.com>
-In-Reply-To: <504DECBF.2000306@citrix.com>
-Mime-Version: 1.0
-Content-Disposition: inline
-Cc: "christian.limpach@gmail.com" <christian.limpach@gmail.com>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.6 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [XEN][RFC PATCH V2 05/17] hvm: Modify hvm_op
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
->>> On 10.09.12 at 15:35, Julien Grall <julien.grall@citrix.com> wrote:
-> On 09/10/2012 02:23 PM, Jan Beulich wrote:
->>>>> On 10.09.12 at 15:02, Julien Grall<julien.grall@citrix.com>  wrote:
->>>>>          
->>> On 08/24/2012 04:38 PM, Jan Beulich wrote:
->>>      
->>>>>>> On 23.08.12 at 12:52, Julien Grall<julien.grall@citrix.com>   wrote:
->>>>>>>
->>>>>>>              
->>>>> On 08/23/2012 08:27 AM, Jan Beulich wrote:
->>>>>
->>>>>          
->>>>>>> switch ( a.index )
->>>>>>> {
->>>>>>> -            case HVM_PARAM_IOREQ_PFN:
->>>>>>>
->>>>>>>
->>>>>>>              
->>>>>> Removing sub-ops which a domain can issue for itself (which for this and
->>>>>> another one below appears to be the case) is not allowed.
->>>>>>
->>>>>>
->>>>>>            
->>>>> I removed these 3 sub-ops because it will not work with
->>>>> QEMU disaggregation. Shared pages and event channel
->>>>> for IO request are private for each device model.
->>>>>
->>>>>          
->>>> Then they need to be made inaccessible for that specific setup, not
->>>> removed altogether.
->>>>
->>>>
->>>>        
->>> What do you mean by specific feature ?
->>> With this patch series, you are able to handle one or more
->>> QEMU.
->>> Keep a compatibility with the old IO emulation is hard.
->>>      
->> Did you read my original reply? Code backing operations that a
->> guest can issue itself (i.e. without qemu or another host side
->> component involved) just can't be removed, as you/we have
->> no control over which guest(s) may be making use of that
->> functionality.
->>    
-> 
-> Ah ok misundertanding of my part. I don't really understand
-> in which case a domain needs to retrieve its ioreq page.
-> How can I made it inaccessible ? Just rc = -EINVAL ?
-
-Probably, but you'd better talk to whoever added that code
-(including to determine whether this by mistake was left guest
-invokable).
-
-Jan
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<50535AFA020000780009B7C4@nat28.tlf.novell.com> b/test/corpus/<50535AFA020000780009B7C4@nat28.tlf.novell.com>
deleted file mode 100644 (file)
index b043347..0000000
+++ /dev/null
@@ -1,102 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Sep 14 15:31:05 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 14 Sep 2012 15:31:05 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TCWv6-0005cJ-DX
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 14 Sep 2012 15:31:05 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TCWr1-00084H-J6; Fri, 14 Sep 2012 14:26:47 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <JBeulich@suse.com>) id 1TCWqz-00084A-Nb
-       for xen-devel@lists.xensource.com; Fri, 14 Sep 2012 14:26:45 +0000
-Received: from [85.158.139.211:48826] by server-7.bemta-5.messagelabs.com id
-       F9/E0-19703-4AE33505; Fri, 14 Sep 2012 14:26:44 +0000
-X-Env-Sender: JBeulich@suse.com
-X-Msg-Ref: server-4.tower-206.messagelabs.com!1347632804!18598530!1
-X-Originating-IP: [130.57.49.28]
-X-SpamReason: No, hits=0.0 required=7.0 tests=
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 28962 invoked from network); 14 Sep 2012 14:26:44 -0000
-Received: from nat28.tlf.novell.com (HELO nat28.tlf.novell.com) (130.57.49.28)
-       by server-4.tower-206.messagelabs.com with SMTP;
-       14 Sep 2012 14:26:44 -0000
-Received: from EMEA1-MTA by nat28.tlf.novell.com
-       with Novell_GroupWise; Fri, 14 Sep 2012 15:26:43 +0100
-Message-Id: <50535AFA020000780009B7C4@nat28.tlf.novell.com>
-X-Mailer: Novell GroupWise Internet Agent 12.0.0 
-Date: Fri, 14 Sep 2012 15:27:38 +0100
-From: "Jan Beulich" <JBeulich@suse.com>
-To: "Ian Campbell" <Ian.Campbell@citrix.com>,
-       "Stefano Stabellini" <Stefano.Stabellini@eu.citrix.com>
-References: <alpine.DEB.2.02.1208221159560.15568@kaball.uk.xensource.com>
-       <1345633688-31684-1-git-send-email-stefano.stabellini@eu.citrix.com>
-       <1347627587.24226.192.camel@zakaz.uk.xensource.com>
-       <1347628660.24226.197.camel@zakaz.uk.xensource.com>
-       <1347630442.24226.211.camel@zakaz.uk.xensource.com>
-       <1347630971.24226.214.camel@zakaz.uk.xensource.com>
-In-Reply-To: <1347630971.24226.214.camel@zakaz.uk.xensource.com>
-Mime-Version: 1.0
-Content-Disposition: inline
-Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
-       "Tim\(Xen.org\)" <tim@xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.7 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH v4 1/6] xen: improve changes to
- xen_add_to_physmap
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
->>> On 14.09.12 at 15:56, Ian Campbell <Ian.Campbell@citrix.com> wrote:
->> > > Might we prefer to have a batched version of this call? I don't think
->> > > we can shoehorn the necessary fields into xen_add_to_physmap_t though.
->> > 
->> > Actually, talking about this we Stefano we think we can. Since both idx
->> > and gpfn are unsigned longs they can become unions with a GUEST_HANDLE
->> > without changing the ABI on x86_32 or x86_64.
-> 
-> Except we need both foreign_domid and size, which currently overlap, and
-> there's no other spare bits. Damn.
-> 
-> Looks like XENMEM_add_to_physmap_range is the only option :-(
-
-You could use the first entry in each array to specify the counts,
-which would at once allow mixed granularity on each list (should
-that ever turn out useful); initially you would certainly want both
-counts to match.
-
-Jan
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<505AEB2D020000780009C81F@nat28.tlf.novell.com> b/test/corpus/<505AEB2D020000780009C81F@nat28.tlf.novell.com>
deleted file mode 100644 (file)
index 44ab37b..0000000
+++ /dev/null
@@ -1,133 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Sep 20 09:12:26 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 20 Sep 2012 09:12:26 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TEbrx-0001T8-AJ
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 20 Sep 2012 09:12:26 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TEboH-0001QD-UD; Thu, 20 Sep 2012 08:08:33 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <JBeulich@suse.com>) id 1TEboF-0001Pr-O4
-       for xen-devel@lists.xen.org; Thu, 20 Sep 2012 08:08:31 +0000
-Received: from [85.158.139.211:25957] by server-10.bemta-5.messagelabs.com id
-       11/6D-10969-AFECA505; Thu, 20 Sep 2012 08:08:26 +0000
-X-Env-Sender: JBeulich@suse.com
-X-Msg-Ref: server-14.tower-206.messagelabs.com!1348128505!19220938!1
-X-Originating-IP: [130.57.49.28]
-X-SpamReason: No, hits=0.0 required=7.0 tests=
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 12651 invoked from network); 20 Sep 2012 08:08:25 -0000
-Received: from nat28.tlf.novell.com (HELO nat28.tlf.novell.com) (130.57.49.28)
-       by server-14.tower-206.messagelabs.com with SMTP;
-       20 Sep 2012 08:08:25 -0000
-Received: from EMEA1-MTA by nat28.tlf.novell.com
-       with Novell_GroupWise; Thu, 20 Sep 2012 09:08:24 +0100
-Message-Id: <505AEB2D020000780009C81F@nat28.tlf.novell.com>
-X-Mailer: Novell GroupWise Internet Agent 12.0.0 
-Date: Thu, 20 Sep 2012 09:08:45 +0100
-From: "Jan Beulich" <JBeulich@suse.com>
-To: "Jeremy Fitzhardinge" <jeremy@goop.org>,
-       "Konrad Rzeszutek Wilk" <konrad.wilk@oracle.com>, <ehabkost@redhat.com>
-References: <7914B38A4445B34AA16EB9F1352942F1012F0F6F4B98@SJCPMAILBOX01.citrite.net>
-       <CC681CDD.3D966%keir.xen@gmail.com>
-       <40501859.20120902104331@eikelenboom.it>
-       <5044849002000078000982EA@nat28.tlf.novell.com>
-       <4610648186.20120904090841@eikelenboom.it>
-       <5045CDF302000078000985FB@nat28.tlf.novell.com>
-       <4710608674.20120904101330@eikelenboom.it> 
-In-Reply-To: 
-Mime-Version: 1.0
-Content-Disposition: inline
-Cc: "wei.wang2@amd.com" <wei.wang2@amd.com>,
-       Sander Eikelenboom <linux@eikelenboom.it>,
-       Keir Fraser <keir.xen@gmail.com>, Santosh Jodh <Santosh.Jodh@citrix.com>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.7 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] Using debug-key 'o:  Dump IOMMU p2m table,
- locks up machine
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-Ping?
-
->>> On 04.09.12 at 11:26, Jan Beulich wrote:
->>>> On 04.09.12 at 10:13, Sander Eikelenboom <linux@eikelenboom.it> wrote:
-> > Hmm don't know how to get the file/line, only thing i have found is:
-> > 
-> > serveerstertje:/boot# gdb xen-syms-4.2.0-rc4-pre
-> > GNU gdb (GDB) 7.0.1-debian
-> > Copyright (C) 2009 Free Software Foundation, Inc.
-> > License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
-> > This is free software: you are free to change and redistribute it.
-> > There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
-> > and "show warranty" for details.
-> > This GDB was configured as "x86_64-linux-gnu".
-> > For bug reporting instructions, please see:
-> > <http://www.gnu.org/software/gdb/bugs/>...
-> > Reading symbols from /boot/xen-syms-4.2.0-rc4-pre...done.
-> > (gdb) x/i 0xffff82c48015c9ee
-> > 0xffff82c48015c9ee <context_switch+916>:        mov    %edx,%gs
-> > (gdb)
-> 
-> I'm not really a gdb expert, so I don't know off the top of my
-> head either. I thought I said in a previous reply that people
-> generally appear to use the addr2line utility for that purpose.
-> 
-> But the disassembly already tells us where precisely the
-> problem is: The selector value (0x0063) attempted to be put
-> into %gs is apparently wrong in the context of the current
-> GDT. Now, that's GDT_ENTRY_TLS_MIN on the Linux side,
-> and ought to be valid. I'm surprised the guest (and the current
-> process in it) survives this (as the failure here results in a failsafe
-> callback into the guest).
-> 
-> Looking at the Linux side of things, this has been that way
-> forever, and I think has always been broken: On x86-64, it
-> should also clear %gs here (since 32-bit processes use it for
-> their TLS, and there's nothing wrong for a 64-bit process to put
-> something in there either), albeit not via loadsegment(), but
-> through xen_load_gs_index(). And I neither see why on 32-bit
-> it only clears %gs - %fs can as much hold a selector that might
-> get invalidated with the TLS descriptor updates. Eduardo,
-> Jeremy, Konrad?
-> 
-> Jan
-> 
-
-
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<50661622.5030302@goop.org> b/test/corpus/<50661622.5030302@goop.org>
deleted file mode 100644 (file)
index 0854cc4..0000000
+++ /dev/null
@@ -1,146 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Sep 28 22:32:48 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 28 Sep 2012 22:32:48 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1THiAv-0006i2-HK
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 28 Sep 2012 22:32:48 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1THi5Z-0004IF-9q; Fri, 28 Sep 2012 21:27:13 +0000
-Received: from mail27.messagelabs.com ([193.109.254.147])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <jeremy@goop.org>) id 1THi5Y-0004I7-9j
-       for xen-devel@lists.xen.org; Fri, 28 Sep 2012 21:27:12 +0000
-X-Env-Sender: jeremy@goop.org
-X-Msg-Ref: server-10.tower-27.messagelabs.com!1348867624!7584604!1
-X-Originating-IP: [74.207.240.146]
-X-SpamReason: No, hits=0.0 required=7.0 tests=
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 26612 invoked from network); 28 Sep 2012 21:27:05 -0000
-Received: from claw.goop.org (HELO claw.goop.org) (74.207.240.146)
-       by server-10.tower-27.messagelabs.com with DHE-RSA-AES256-SHA encrypted
-       SMTP; 28 Sep 2012 21:27:05 -0000
-Received: from saboo.goop.org (50-76-62-73-ip-static.hfc.comcastbusiness.net
-       [50.76.62.73])
-       (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits))
-       (No client certificate requested) (Authenticated sender: smtp-saboo)
-       by claw.goop.org (Postfix) with ESMTPSA id 964C39481;
-       Fri, 28 Sep 2012 14:27:01 -0700 (PDT)
-Received: from saboo.goop.org (localhost [IPv6:::1])
-       by saboo.goop.org (Postfix) with ESMTP id 6EF2F20155;
-       Fri, 28 Sep 2012 14:26:58 -0700 (PDT)
-Message-ID: <50661622.5030302@goop.org>
-Date: Fri, 28 Sep 2012 14:26:58 -0700
-From: Jeremy Fitzhardinge <jeremy@goop.org>
-User-Agent: Mozilla/5.0 (X11; Linux x86_64;
-       rv:15.0) Gecko/20120911 Thunderbird/15.0.1
-MIME-Version: 1.0
-To: Jan Beulich <JBeulich@suse.com>
-References: <7914B38A4445B34AA16EB9F1352942F1012F0F6F4B98@SJCPMAILBOX01.citrite.net>
-       <CC681CDD.3D966%keir.xen@gmail.com>
-       <40501859.20120902104331@eikelenboom.it>
-       <5044849002000078000982EA@nat28.tlf.novell.com>
-       <4610648186.20120904090841@eikelenboom.it>
-       <5045CDF302000078000985FB@nat28.tlf.novell.com>
-       <4710608674.20120904101330@eikelenboom.it>
-       <505AEB2D020000780009C81F@nat28.tlf.novell.com>
-In-Reply-To: <505AEB2D020000780009C81F@nat28.tlf.novell.com>
-X-Enigmail-Version: 1.4.4
-Cc: ehabkost@redhat.com, Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
-       "wei.wang2@amd.com" <wei.wang2@amd.com>,
-       Sander Eikelenboom <linux@eikelenboom.it>,
-       Keir Fraser <keir.xen@gmail.com>, Santosh Jodh <Santosh.Jodh@citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-5.0 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] Using debug-key 'o:  Dump IOMMU p2m table,
- locks up machine
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On 09/20/2012 01:08 AM, Jan Beulich wrote:
-> Ping?
-
-I've been meaning to work up a reply, but I haven't had time to swap in
-all the context again.
-
-    J
-
->
->>>> On 04.09.12 at 11:26, Jan Beulich wrote:
->>>>> On 04.09.12 at 10:13, Sander Eikelenboom <linux@eikelenboom.it> wrote:
->>> Hmm don't know how to get the file/line, only thing i have found is:
->>>
->>> serveerstertje:/boot# gdb xen-syms-4.2.0-rc4-pre
->>> GNU gdb (GDB) 7.0.1-debian
->>> Copyright (C) 2009 Free Software Foundation, Inc.
->>> License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
->>> This is free software: you are free to change and redistribute it.
->>> There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
->>> and "show warranty" for details.
->>> This GDB was configured as "x86_64-linux-gnu".
->>> For bug reporting instructions, please see:
->>> <http://www.gnu.org/software/gdb/bugs/>...
->>> Reading symbols from /boot/xen-syms-4.2.0-rc4-pre...done.
->>> (gdb) x/i 0xffff82c48015c9ee
->>> 0xffff82c48015c9ee <context_switch+916>:        mov    %edx,%gs
->>> (gdb)
->> I'm not really a gdb expert, so I don't know off the top of my
->> head either. I thought I said in a previous reply that people
->> generally appear to use the addr2line utility for that purpose.
->>
->> But the disassembly already tells us where precisely the
->> problem is: The selector value (0x0063) attempted to be put
->> into %gs is apparently wrong in the context of the current
->> GDT. Now, that's GDT_ENTRY_TLS_MIN on the Linux side,
->> and ought to be valid. I'm surprised the guest (and the current
->> process in it) survives this (as the failure here results in a failsafe
->> callback into the guest).
->>
->> Looking at the Linux side of things, this has been that way
->> forever, and I think has always been broken: On x86-64, it
->> should also clear %gs here (since 32-bit processes use it for
->> their TLS, and there's nothing wrong for a 64-bit process to put
->> something in there either), albeit not via loadsegment(), but
->> through xen_load_gs_index(). And I neither see why on 32-bit
->> it only clears %gs - %fs can as much hold a selector that might
->> get invalidated with the TLS descriptor updates. Eduardo,
->> Jeremy, Konrad?
->>
->> Jan
->>
->
->
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<506C47BD020000780008D01A@nat28.tlf.novell.com> b/test/corpus/<506C47BD020000780008D01A@nat28.tlf.novell.com>
deleted file mode 100644 (file)
index 3764d15..0000000
+++ /dev/null
@@ -1,114 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Oct 03 14:16:43 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 03 Oct 2012 14:16:43 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TJOoX-0005zN-JN
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 03 Oct 2012 14:16:43 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TJOkb-0003zs-OH; Wed, 03 Oct 2012 13:12:33 +0000
-Received: from mail27.messagelabs.com ([193.109.254.147])
-       by lists.xen.org with smtp (Exim 4.72)
-       (envelope-from <jbeulich@suse.com>) id 1TJOka-0003zm-3V
-       for xen-devel@lists.xen.org; Wed, 03 Oct 2012 13:12:32 +0000
-X-Env-Sender: jbeulich@suse.com
-X-Msg-Ref: server-13.tower-27.messagelabs.com!1349269935!8605637!1
-X-Originating-IP: [130.57.49.28]
-X-SpamReason: No, hits=0.5 required=7.0 tests=BODY_RANDOM_LONG
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 16291 invoked from network); 3 Oct 2012 13:12:19 -0000
-Received: from nat28.tlf.novell.com (HELO nat28.tlf.novell.com) (130.57.49.28)
-       by server-13.tower-27.messagelabs.com with SMTP;
-       3 Oct 2012 13:12:19 -0000
-Received: from EMEA1-MTA by nat28.tlf.novell.com
-       with Novell_GroupWise; Wed, 03 Oct 2012 14:12:15 +0100
-Message-Id: <506C47BD020000780008D01A@nat28.tlf.novell.com>
-X-Mailer: Novell GroupWise Internet Agent 12.0.0 
-Date: Wed, 03 Oct 2012 14:12:13 +0100
-From: "Jan Beulich" <jbeulich@suse.com>
-To: <konrad.wilk@oracle.com>
-References: <7914B38A4445B34AA16EB9F1352942F1012F0F6F4B98@SJCPMAILBOX01.citrite.net>
-       <CC681CDD.3D966%keir.xen@gmail.com>
-       <40501859.20120902104331@eikelenboom.it>
-       <5044849002000078000982EA@nat28.tlf.novell.com>
-       <4610648186.20120904090841@eikelenboom.it>
-       <5045CDF302000078000985FB@nat28.tlf.novell.com>
-       <4710608674.20120904101330@eikelenboom.it>
-       <5045E55A02000078000986E4@nat28.tlf.novell.com>
-       <20121002200907.GC668@phenom.dumpdata.com>
-In-Reply-To: <20121002200907.GC668@phenom.dumpdata.com>
-Mime-Version: 1.0
-Content-Disposition: inline
-Cc: jeremy@goop.org, ehabkost@redhat.com, xen-devel@lists.xen.org,
-       wei.wang2@amd.com, linux@eikelenboom.it, keir.xen@gmail.com,
-       Santosh.Jodh@citrix.com
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] Using debug-key 'o:  Dump IOMMU p2m table,
- locks up machine
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
->>> Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> 10/02/12 10:21 PM >>>
->On Tue, Sep 04, 2012 at 10:26:18AM +0100, Jan Beulich wrote:
->> But the disassembly already tells us where precisely the
->> problem is: The selector value (0x0063) attempted to be put
->> into %gs is apparently wrong in the context of the current
->> GDT. Now, that's GDT_ENTRY_TLS_MIN on the Linux side,
->> and ought to be valid. I'm surprised the guest (and the current
->> process in it) survives this (as the failure here results in a failsafe
->> callback into the guest).
->> 
->> Looking at the Linux side of things, this has been that way
->> forever, and I think has always been broken: On x86-64, it
->> should also clear %gs here (since 32-bit processes use it for
->> their TLS, and there's nothing wrong for a 64-bit process to put
->> something in there either), albeit not via loadsegment(), but
->> through xen_load_gs_index(). And I neither see why on 32-bit
->> it only clears %gs - %fs can as much hold a selector that might
->> get invalidated with the TLS descriptor updates. Eduardo,
->> Jeremy, Konrad?
->
->How is it on the SLES side? Do you set/restore all of the segment
->registers?
-
-I think so (don't have the sources around at home to check), but that's
-not the point. What absolutely has to happen is the _clearing_ of the
-selector registers before switching descriptor tables (even if done via
-multicall, as the hypervisor may restore guest state between any two
-pieces of a multicall set).
-
-Jan
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<506D5A53020000780009F8B7@nat28.tlf.novell.com> b/test/corpus/<506D5A53020000780009F8B7@nat28.tlf.novell.com>
deleted file mode 100644 (file)
index 5b552a1..0000000
+++ /dev/null
@@ -1,116 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Oct 04 08:49:17 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 04 Oct 2012 08:49:17 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TJgAy-0005c4-Lo
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 04 Oct 2012 08:49:17 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TJg69-0001dD-9n; Thu, 04 Oct 2012 07:43:57 +0000
-Received: from mail27.messagelabs.com ([193.109.254.147])
-       by lists.xen.org with smtp (Exim 4.72)
-       (envelope-from <JBeulich@suse.com>) id 1TJg67-0001d8-K3
-       for xen-devel@lists.xensource.com; Thu, 04 Oct 2012 07:43:55 +0000
-X-Env-Sender: JBeulich@suse.com
-X-Msg-Ref: server-7.tower-27.messagelabs.com!1349336629!5714747!1
-X-Originating-IP: [130.57.49.28]
-X-SpamReason: No, hits=0.0 required=7.0 tests=
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 25409 invoked from network); 4 Oct 2012 07:43:49 -0000
-Received: from nat28.tlf.novell.com (HELO nat28.tlf.novell.com) (130.57.49.28)
-       by server-7.tower-27.messagelabs.com with SMTP;
-       4 Oct 2012 07:43:49 -0000
-Received: from EMEA1-MTA by nat28.tlf.novell.com
-       with Novell_GroupWise; Thu, 04 Oct 2012 08:43:48 +0100
-Message-Id: <506D5A53020000780009F8B7@nat28.tlf.novell.com>
-X-Mailer: Novell GroupWise Internet Agent 12.0.0 
-Date: Thu, 04 Oct 2012 08:43:47 +0100
-From: "Jan Beulich" <JBeulich@suse.com>
-To: "Stefano Stabellini" <Stefano.Stabellini@eu.citrix.com>
-References: <alpine.DEB.2.02.1210031431080.29232@kaball.uk.xensource.com>
-       <1349272182.650.150.camel@zakaz.uk.xensource.com>
-       <alpine.DEB.2.02.1210031450220.29232@kaball.uk.xensource.com>
-       <1349272482.650.151.camel@zakaz.uk.xensource.com>
-       <20121003141116.GA10633@phenom.dumpdata.com>
-       <1349276431.650.156.camel@zakaz.uk.xensource.com>
-       <alpine.DEB.2.02.1210031641050.29232@kaball.uk.xensource.com>
-       <1349279862.650.171.camel@zakaz.uk.xensource.com>
-       <alpine.DEB.2.02.1210031658120.29232@kaball.uk.xensource.com>
-       <1349280814.650.178.camel@zakaz.uk.xensource.com>
-       <1349282492.650.185.camel@zakaz.uk.xensource.com>
-       <alpine.DEB.2.02.1210031807340.29232@kaball.uk.xensource.com>
-In-Reply-To: <alpine.DEB.2.02.1210031807340.29232@kaball.uk.xensource.com>
-Mime-Version: 1.0
-Content-Disposition: inline
-Cc: "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
-       "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
-       Ian Campbell <Ian.Campbell@citrix.com>,
-       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH] xen/xen_initial_domain: check that
- xen_start_info is initialized
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
->>> On 03.10.12 at 19:08, Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-wrote:
-> Since commit commit 4c071ee5268f7234c3d084b6093bebccc28cdcba ("arm:
-> initial Xen support") PV on HVM guests can be xen_initial_domain.
-> However PV on HVM guests might have an unitialized xen_start_info, so
-> check before accessing its fields.
-> 
-> Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-> Acked-by: Ian Campbell <Ian.Campbell@citrix.com>
-> Reported-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-> 
-> diff --git a/include/xen/xen.h b/include/xen/xen.h
-> index 9a39ca5..e7101bb 100644
-> --- a/include/xen/xen.h
-> +++ b/include/xen/xen.h
-> @@ -28,7 +28,7 @@ extern enum xen_domain_type xen_domain_type;
->  #include <asm/xen/hypervisor.h>
->  
->  #define xen_initial_domain()        (xen_domain() && \
-> -                             xen_start_info->flags & SIF_INITDOMAIN)
-> +                             xen_start_info && xen_start_info->flags & SIF_INITDOMAIN)
->  #else  /* !CONFIG_XEN_DOM0 */
->  #define xen_initial_domain()        (0)
->  #endif      /* CONFIG_XEN_DOM0 */
-
-Didn't your other patch statically initialize it?
-
-Jan
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<507822ED.2090900@citrix.com> b/test/corpus/<507822ED.2090900@citrix.com>
deleted file mode 100644 (file)
index ee89ba6..0000000
+++ /dev/null
@@ -1,252 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Oct 12 15:06:57 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 12 Oct 2012 15:06:57 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TMft5-00028J-2E
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 12 Oct 2012 15:06:57 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TMfou-0001Nf-Vg; Fri, 12 Oct 2012 14:02:32 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <david.vrabel@citrix.com>) id 1TMfot-0001NZ-Cg
-       for xen-devel@lists.xen.org; Fri, 12 Oct 2012 14:02:31 +0000
-Received: from [85.158.139.211:22884] by server-15.bemta-5.messagelabs.com id
-       52/28-27811-6F228705; Fri, 12 Oct 2012 14:02:30 +0000
-X-Env-Sender: david.vrabel@citrix.com
-X-Msg-Ref: server-11.tower-206.messagelabs.com!1350050548!22096289!1
-X-Originating-IP: [66.165.176.89]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNzYwMjI=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 28012 invoked from network); 12 Oct 2012 14:02:29 -0000
-Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
-       by server-11.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
-       12 Oct 2012 14:02:29 -0000
-X-IronPort-AV: E=Sophos;i="4.80,576,1344211200"; d="scan'208";a="41030540"
-Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
-       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       12 Oct 2012 14:02:23 +0000
-Received: from [10.80.2.76] (10.80.2.76) by FTLPMAILMX02.citrite.net
-       (10.13.107.66) with Microsoft SMTP Server id 8.3.279.1; Fri, 12 Oct 2012
-       10:02:23 -0400
-Message-ID: <507822ED.2090900@citrix.com>
-Date: Fri, 12 Oct 2012 15:02:21 +0100
-From: David Vrabel <david.vrabel@citrix.com>
-User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US;
-       rv:1.9.1.16) Gecko/20120428 Iceowl/1.0b1 Icedove/3.0.11
-MIME-Version: 1.0
-To: Konrad Rzeszutek Wilk <konrad@kernel.org>
-References: <1350046634-2462-1-git-send-email-david.vrabel@citrix.com>
-       <1350046634-2462-4-git-send-email-david.vrabel@citrix.com>
-       <20121012134147.GA11778@phenom.dumpdata.com>
-In-Reply-To: <20121012134147.GA11778@phenom.dumpdata.com>
-Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 3/3] xen/privcmd: add
- IOCTL_PRIVCMD_SYNC_WALLCLOCK to sync Xen's wallclock
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On 12/10/12 14:41, Konrad Rzeszutek Wilk wrote:
-> On Fri, Oct 12, 2012 at 01:57:14PM +0100, David Vrabel wrote:
->> From: David Vrabel <david.vrabel@citrix.com>
->>
->> Add a new ioctl to synchronize Xen's wallclock with the current system
->> time.
->>
->> This may be used by the tools to ensure that newly created domains see
->> the correct wallclock time if NTP is not used in dom0 or if domains
->> are started before NTP has synchronized.
-> 
-> So... how does this work with NTPD? As in does ntpd _not_ update the
-> hwclock enough?
-
-Once NTPD is synchronized then the kernel updates the wallclock (and the
-RTC with patch #1) every 11 mins.  I assume this is often enough given
-how NTP adjusts the system time.
-
-You only really need the tools to sync wallclock if system time was
-stepped at start of day.  e.g., init scripts could do something like:
-
-ntpdate pool.ntp.org
-hwclock --systohc
-xen-wallclock --systowc
-
-David
-
->> Signed-off-by: David Vrabel <david.vrabel@citrix.com>
->> ---
->>  arch/x86/xen/time.c   |   25 ++++++++++++++++++-------
->>  drivers/xen/privcmd.c |   12 ++++++++++++
->>  include/xen/privcmd.h |    8 ++++++++
->>  include/xen/xen-ops.h |    2 ++
->>  4 files changed, 40 insertions(+), 7 deletions(-)
->>
->> diff --git a/arch/x86/xen/time.c b/arch/x86/xen/time.c
->> index 11770d0..d481ac9 100644
->> --- a/arch/x86/xen/time.c
->> +++ b/arch/x86/xen/time.c
->> @@ -8,6 +8,7 @@
->>   * Jeremy Fitzhardinge <jeremy@xensource.com>, XenSource Inc, 2007
->>   */
->>  #include <linux/kernel.h>
->> +#include <linux/export.h>
->>  #include <linux/interrupt.h>
->>  #include <linux/clocksource.h>
->>  #include <linux/clockchips.h>
->> @@ -192,6 +193,19 @@ static void xen_read_wallclock(struct timespec *ts)
->>     put_cpu_var(xen_vcpu);
->>  }
->>  
->> +int xen_write_wallclock(const struct timespec *ts)
->> +{
->> +   struct xen_platform_op op;
->> +
->> +   op.cmd = XENPF_settime;
->> +   op.u.settime.secs = ts->tv_sec;
->> +   op.u.settime.nsecs = ts->tv_nsec;
->> +   op.u.settime.system_time = xen_clocksource_read();
->> +
->> +   return HYPERVISOR_dom0_op(&op);
->> +}
->> +EXPORT_SYMBOL_GPL(xen_write_wallclock);
->> +
->>  static unsigned long xen_get_wallclock(void)
->>  {
->>     struct timespec ts;
->> @@ -202,7 +216,7 @@ static unsigned long xen_get_wallclock(void)
->>  
->>  static int xen_set_wallclock(unsigned long now)
->>  {
->> -   struct xen_platform_op op;
->> +   struct timespec ts;
->>     int rc;
->>  
->>     /* do nothing for domU */
->> @@ -218,12 +232,9 @@ static int xen_set_wallclock(unsigned long now)
->>      * update_persistent_wallclock() is called ~500 ms after 'now'
->>      * so add an extra 500 ms.
->>      */
->> -   op.cmd = XENPF_settime;
->> -   op.u.settime.secs = now;
->> -   op.u.settime.nsecs = NSEC_PER_SEC / 2;
->> -   op.u.settime.system_time = xen_clocksource_read();
->> -
->> -   rc = HYPERVISOR_dom0_op(&op);
->> +   ts.tv_sec = now;
->> +   ts.tv_nsec = NSEC_PER_SEC / 2;
->> +   rc = xen_write_wallclock(&ts);
->>     WARN(rc != 0, "XENPF_settime failed: now=%ld\n", now);
->>  
->>     return rc;
->> diff --git a/drivers/xen/privcmd.c b/drivers/xen/privcmd.c
->> index ccee0f1..ed2caf3 100644
->> --- a/drivers/xen/privcmd.c
->> +++ b/drivers/xen/privcmd.c
->> @@ -338,6 +338,14 @@ out:
->>     return ret;
->>  }
->>  
->> +static long privcmd_ioctl_sync_wallclock(void)
->> +{
->> +   struct timespec ts;
->> +
->> +   getnstimeofday(&ts);
->> +   return xen_write_wallclock(&ts);
->> +}
->> +
->>  static long privcmd_ioctl(struct file *file,
->>                       unsigned int cmd, unsigned long data)
->>  {
->> @@ -357,6 +365,10 @@ static long privcmd_ioctl(struct file *file,
->>             ret = privcmd_ioctl_mmap_batch(udata);
->>             break;
->>  
->> +   case IOCTL_PRIVCMD_SYNC_WALLCLOCK:
->> +           ret = privcmd_ioctl_sync_wallclock();
->> +           break;
->> +
->>     default:
->>             ret = -EINVAL;
->>             break;
->> diff --git a/include/xen/privcmd.h b/include/xen/privcmd.h
->> index 17857fb..d17d087 100644
->> --- a/include/xen/privcmd.h
->> +++ b/include/xen/privcmd.h
->> @@ -66,6 +66,12 @@ struct privcmd_mmapbatch {
->>   * @cmd: IOCTL_PRIVCMD_HYPERCALL
->>   * @arg: &privcmd_hypercall_t
->>   * Return: Value returned from execution of the specified hypercall.
->> + *
->> + * @cmd: IOCTL_PRIVCMD_SYNC_WALLCLOCK
->> + * @arg: Unused.
->> + * Synchronizes the Xen wallclock with the current system time.
->> + * Return: 0 on success, or -1 on error with errno set to EPERM or
->> + * EACCES.
->>   */
->>  #define IOCTL_PRIVCMD_HYPERCALL                                    \
->>     _IOC(_IOC_NONE, 'P', 0, sizeof(struct privcmd_hypercall))
->> @@ -73,5 +79,7 @@ struct privcmd_mmapbatch {
->>     _IOC(_IOC_NONE, 'P', 2, sizeof(struct privcmd_mmap))
->>  #define IOCTL_PRIVCMD_MMAPBATCH                                    \
->>     _IOC(_IOC_NONE, 'P', 3, sizeof(struct privcmd_mmapbatch))
->> +#define IOCTL_PRIVCMD_SYNC_WALLCLOCK                               \
->> +   _IOC(_IOC_NONE, 'P', 5, 0)
->>  
->>  #endif /* __LINUX_PUBLIC_PRIVCMD_H__ */
->> diff --git a/include/xen/xen-ops.h b/include/xen/xen-ops.h
->> index 6a198e4..eefed22 100644
->> --- a/include/xen/xen-ops.h
->> +++ b/include/xen/xen-ops.h
->> @@ -29,4 +29,6 @@ int xen_remap_domain_mfn_range(struct vm_area_struct *vma,
->>                            unsigned long mfn, int nr,
->>                            pgprot_t prot, unsigned domid);
->>  
->> +int xen_write_wallclock(const struct timespec *ts);
->> +
->>  #endif /* INCLUDE_XEN_OPS_H */
->> -- 
->> 1.7.2.5
->>
->>
->> _______________________________________________
->> Xen-devel mailing list
->> Xen-devel@lists.xen.org
->> http://lists.xen.org/xen-devel
->>
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<5078304D.1050807@citrix.com> b/test/corpus/<5078304D.1050807@citrix.com>
deleted file mode 100644 (file)
index 56d9c1e..0000000
+++ /dev/null
@@ -1,120 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Oct 12 16:05:35 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 12 Oct 2012 16:05:35 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TMgnp-0002Lt-Ps
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 12 Oct 2012 16:05:35 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TMgjJ-0002PA-T5; Fri, 12 Oct 2012 15:00:49 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <david.vrabel@citrix.com>) id 1TMgjH-0002P2-CW
-       for xen-devel@lists.xen.org; Fri, 12 Oct 2012 15:00:47 +0000
-Received: from [85.158.139.211:22483] by server-10.bemta-5.messagelabs.com id
-       9E/EF-06995-E9038705; Fri, 12 Oct 2012 15:00:46 +0000
-X-Env-Sender: david.vrabel@citrix.com
-X-Msg-Ref: server-13.tower-206.messagelabs.com!1350054044!18125570!1
-X-Originating-IP: [66.165.176.89]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNzYwMjI=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 3225 invoked from network); 12 Oct 2012 15:00:45 -0000
-Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
-       by server-13.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
-       12 Oct 2012 15:00:45 -0000
-X-IronPort-AV: E=Sophos;i="4.80,576,1344211200"; d="scan'208";a="41038810"
-Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
-       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       12 Oct 2012 14:59:27 +0000
-Received: from [10.80.2.76] (10.80.2.76) by FTLPMAILMX02.citrite.net
-       (10.13.107.66) with Microsoft SMTP Server id 8.3.279.1; Fri, 12 Oct 2012
-       10:59:26 -0400
-Message-ID: <5078304D.1050807@citrix.com>
-Date: Fri, 12 Oct 2012 15:59:25 +0100
-From: David Vrabel <david.vrabel@citrix.com>
-User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US;
-       rv:1.9.1.16) Gecko/20120428 Iceowl/1.0b1 Icedove/3.0.11
-MIME-Version: 1.0
-To: Konrad Rzeszutek Wilk <konrad@kernel.org>
-References: <1350046634-2462-1-git-send-email-david.vrabel@citrix.com> <1350046634-2462-4-git-send-email-david.vrabel@citrix.com>      <20121012134147.GA11778@phenom.dumpdata.com>    <507822ED.2090900@citrix.com>
-       <CACJDEmr3V71cSdV3+i-n7=wfOnDBza04Lk+6+B6Fyx7LhQrdEg@mail.gmail.com>
-In-Reply-To: <CACJDEmr3V71cSdV3+i-n7=wfOnDBza04Lk+6+B6Fyx7LhQrdEg@mail.gmail.com>
-Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
-       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 3/3] xen/privcmd: add
- IOCTL_PRIVCMD_SYNC_WALLCLOCK to sync Xen's wallclock
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On 12/10/12 15:29, Konrad Rzeszutek Wilk wrote:
-> On Fri, Oct 12, 2012 at 10:02 AM, David Vrabel <david.vrabel@citrix.com> wrote:
->> On 12/10/12 14:41, Konrad Rzeszutek Wilk wrote:
->>> On Fri, Oct 12, 2012 at 01:57:14PM +0100, David Vrabel wrote:
->>>> From: David Vrabel <david.vrabel@citrix.com>
->>>>
->>>> Add a new ioctl to synchronize Xen's wallclock with the current system
->>>> time.
->>>>
->>>> This may be used by the tools to ensure that newly created domains see
->>>> the correct wallclock time if NTP is not used in dom0 or if domains
->>>> are started before NTP has synchronized.
->>>
->>> So... how does this work with NTPD? As in does ntpd _not_ update the
->>> hwclock enough?
->>
->> Once NTPD is synchronized then the kernel updates the wallclock (and the
->> RTC with patch #1) every 11 mins.  I assume this is often enough given
->> how NTP adjusts the system time.
->>
->> You only really need the tools to sync wallclock if system time was
->> stepped at start of day.  e.g., init scripts could do something like:
->>
->> ntpdate pool.ntp.org
->> hwclock --systohc
->> xen-wallclock --systowc
-> 
-> I think I am missing something. The hwclock should end up in the
-> xen_set_wallclock call. And from there on, the ntpd would update the
-> wallclock if it got skewed enough? Or is the system time not calling
-> the wall-clock enough? If that is the case, would just adding this in
-> the crontab be enough:
-
-hwclock talks to /dev/rtc which writes to the CMOS directly and does not
-call update_persistent_clock() (or xen_set_wallclock()).
-
-David
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<507841A4.8090108@citrix.com> b/test/corpus/<507841A4.8090108@citrix.com>
deleted file mode 100644 (file)
index 38231e2..0000000
+++ /dev/null
@@ -1,126 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Oct 12 17:17:28 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 12 Oct 2012 17:17:28 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TMhvP-0002dl-EN
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 12 Oct 2012 17:17:28 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TMhre-0004WA-RK; Fri, 12 Oct 2012 16:13:30 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <david.vrabel@citrix.com>) id 1TMhrc-0004Vv-P3
-       for xen-devel@lists.xen.org; Fri, 12 Oct 2012 16:13:28 +0000
-Received: from [85.158.138.51:17379] by server-16.bemta-3.messagelabs.com id
-       F3/10-16565-8A148705; Fri, 12 Oct 2012 16:13:28 +0000
-X-Env-Sender: david.vrabel@citrix.com
-X-Msg-Ref: server-14.tower-174.messagelabs.com!1350058405!27829840!1
-X-Originating-IP: [66.165.176.89]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNzYwMjI=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 31009 invoked from network); 12 Oct 2012 16:13:27 -0000
-Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
-       by server-14.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
-       12 Oct 2012 16:13:27 -0000
-X-IronPort-AV: E=Sophos;i="4.80,576,1344211200"; d="scan'208";a="41049477"
-Received: from ftlpmailmx01.citrite.net ([10.13.107.65])
-       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       12 Oct 2012 16:13:25 +0000
-Received: from [10.80.2.76] (10.80.2.76) by FTLPMAILMX01.citrite.net
-       (10.13.107.65) with Microsoft SMTP Server id 8.3.279.1; Fri, 12 Oct 2012
-       12:13:25 -0400
-Message-ID: <507841A4.8090108@citrix.com>
-Date: Fri, 12 Oct 2012 17:13:24 +0100
-From: David Vrabel <david.vrabel@citrix.com>
-User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US;
-       rv:1.9.1.16) Gecko/20120428 Iceowl/1.0b1 Icedove/3.0.11
-MIME-Version: 1.0
-To: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-References: <1350046634-2462-1-git-send-email-david.vrabel@citrix.com>
-       <1350046634-2462-2-git-send-email-david.vrabel@citrix.com>
-       <20121012145716.GA20842@phenom.dumpdata.com>
-In-Reply-To: <20121012145716.GA20842@phenom.dumpdata.com>
-Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 1/3] xen: sync the CMOS RTC as well as the
-       Xen wallclock
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On 12/10/12 15:57, Konrad Rzeszutek Wilk wrote:
-> On Fri, Oct 12, 2012 at 01:57:12PM +0100, David Vrabel wrote:
->> From: David Vrabel <david.vrabel@citrix.com>
->>
->> If NTP is used in dom0 and it is synchronized to its clock source,
->> then the kernel will periodically synchronize the Xen wallclock with
->> the system time.  Updates to the Xen wallclock do not persist across
->> reboots, so also synchronize the CMOS RTC (as on bare metal).
->>
->> Signed-off-by: David Vrabel <david.vrabel@citrix.com>
->> ---
->>  arch/x86/xen/time.c |    5 +++++
->>  1 files changed, 5 insertions(+), 0 deletions(-)
->>
->> diff --git a/arch/x86/xen/time.c b/arch/x86/xen/time.c
->> index 0296a95..5e7f536 100644
->> --- a/arch/x86/xen/time.c
->> +++ b/arch/x86/xen/time.c
->> @@ -14,6 +14,7 @@
->>  #include <linux/kernel_stat.h>
->>  #include <linux/math64.h>
->>  #include <linux/gfp.h>
->> +#include <linux/mc146818rtc.h>
->>  
->>  #include <asm/pvclock.h>
->>  #include <asm/xen/hypervisor.h>
->> @@ -208,6 +209,10 @@ static int xen_set_wallclock(unsigned long now)
->>     if (!xen_initial_domain())
->>             return -1;
->>  
->> +   /* Set the hardware RTC. */
->> +   mach_set_rtc_mmss(now);
-> 
-> So how does this work? Is the hypervisor traping on the RTC CMOS clock?
-
-It's works the same as with the RTC driver.  I think the hypervisor
-allows dom0 access to the relevant I/O ports.
-
-It's worth pointing out that mach_set_rtc_mmss() only sets the minutes
-and seconds so it doesn't handle big step changes which is why
-update_persistent_clock() is only called once NTP is synchronized.
-
-David
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<507841D8.6090205@citrix.com> b/test/corpus/<507841D8.6090205@citrix.com>
deleted file mode 100644 (file)
index b15a76e..0000000
+++ /dev/null
@@ -1,147 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Oct 12 17:18:01 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 12 Oct 2012 17:18:01 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TMhvy-0002e9-UY
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 12 Oct 2012 17:18:01 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TMhsW-0004aW-9T; Fri, 12 Oct 2012 16:14:24 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <david.vrabel@citrix.com>) id 1TMhsU-0004aH-Jd
-       for xen-devel@lists.xen.org; Fri, 12 Oct 2012 16:14:22 +0000
-Received: from [85.158.143.35:8886] by server-2.bemta-4.messagelabs.com id
-       6E/84-25171-DD148705; Fri, 12 Oct 2012 16:14:21 +0000
-X-Env-Sender: david.vrabel@citrix.com
-X-Msg-Ref: server-16.tower-21.messagelabs.com!1350058458!13761503!1
-X-Originating-IP: [66.165.176.63]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyODIwNTA=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 26994 invoked from network); 12 Oct 2012 16:14:20 -0000
-Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
-       by server-16.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
-       12 Oct 2012 16:14:20 -0000
-X-IronPort-AV: E=Sophos;i="4.80,576,1344211200"; d="scan'208";a="211125389"
-Received: from ftlpmailmx01.citrite.net ([10.13.107.65])
-       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       12 Oct 2012 16:14:18 +0000
-Received: from [10.80.2.76] (10.80.2.76) by FTLPMAILMX01.citrite.net
-       (10.13.107.65) with Microsoft SMTP Server id 8.3.279.1; Fri, 12 Oct 2012
-       12:14:18 -0400
-Message-ID: <507841D8.6090205@citrix.com>
-Date: Fri, 12 Oct 2012 17:14:16 +0100
-From: David Vrabel <david.vrabel@citrix.com>
-User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US;
-       rv:1.9.1.16) Gecko/20120428 Iceowl/1.0b1 Icedove/3.0.11
-MIME-Version: 1.0
-To: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-References: <1350046634-2462-1-git-send-email-david.vrabel@citrix.com>
-       <1350046634-2462-4-git-send-email-david.vrabel@citrix.com>
-       <20121012134147.GA11778@phenom.dumpdata.com>
-       <507822ED.2090900@citrix.com>
-       <CACJDEmr3V71cSdV3+i-n7=wfOnDBza04Lk+6+B6Fyx7LhQrdEg@mail.gmail.com>
-       <5078304D.1050807@citrix.com>
-       <20121012150251.GB20842@phenom.dumpdata.com>
-In-Reply-To: <20121012150251.GB20842@phenom.dumpdata.com>
-Cc: Konrad Rzeszutek Wilk <konrad@kernel.org>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 3/3] xen/privcmd: add
- IOCTL_PRIVCMD_SYNC_WALLCLOCK to sync Xen's wallclock
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On 12/10/12 16:02, Konrad Rzeszutek Wilk wrote:
-> On Fri, Oct 12, 2012 at 03:59:25PM +0100, David Vrabel wrote:
->> On 12/10/12 15:29, Konrad Rzeszutek Wilk wrote:
->>> On Fri, Oct 12, 2012 at 10:02 AM, David Vrabel <david.vrabel@citrix.com> wrote:
->>>> On 12/10/12 14:41, Konrad Rzeszutek Wilk wrote:
->>>>> On Fri, Oct 12, 2012 at 01:57:14PM +0100, David Vrabel wrote:
->>>>>> From: David Vrabel <david.vrabel@citrix.com>
->>>>>>
->>>>>> Add a new ioctl to synchronize Xen's wallclock with the current system
->>>>>> time.
->>>>>>
->>>>>> This may be used by the tools to ensure that newly created domains see
->>>>>> the correct wallclock time if NTP is not used in dom0 or if domains
->>>>>> are started before NTP has synchronized.
->>>>>
->>>>> So... how does this work with NTPD? As in does ntpd _not_ update the
->>>>> hwclock enough?
->>>>
->>>> Once NTPD is synchronized then the kernel updates the wallclock (and the
->>>> RTC with patch #1) every 11 mins.  I assume this is often enough given
->>>> how NTP adjusts the system time.
->>>>
->>>> You only really need the tools to sync wallclock if system time was
->>>> stepped at start of day.  e.g., init scripts could do something like:
->>>>
->>>> ntpdate pool.ntp.org
->>>> hwclock --systohc
->>>> xen-wallclock --systowc
->>>
->>> I think I am missing something. The hwclock should end up in the
->>> xen_set_wallclock call. And from there on, the ntpd would update the
->>> wallclock if it got skewed enough? Or is the system time not calling
->>> the wall-clock enough? If that is the case, would just adding this in
->>> the crontab be enough:
->>
->> hwclock talks to /dev/rtc which writes to the CMOS directly and does not
->> call update_persistent_clock() (or xen_set_wallclock()).
-> 
-> /me scratches his head.
-> 
-> I recall that the update_persistent_clock() was being called.. with
-> hwclock -w (which is the same as --systohc).
-
-No,
-
-> That seems like a bug in the generic code - I would think that
-> hwclock would update the wallclock, not just the RTC.
-
-If we wanted hwclock to also update the xen wallclock we would need a
-xen-specific rtc driver that updated both rtc and wallclock.
-
-> Oh, it is whoever calls 'adjtimex' syscall ends up calling in
-> update_persistent_clock(). So .. ntpdate or ntpd don't call that?
-
-ntpd does call adjtimex so if you are running ntpd and it is
-synchronized to its clock source you do get the periodic sync of the
-wallclock.
-
-David
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<50784462.3060203@citrix.com> b/test/corpus/<50784462.3060203@citrix.com>
deleted file mode 100644 (file)
index 643760d..0000000
+++ /dev/null
@@ -1,121 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Oct 12 17:29:52 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 12 Oct 2012 17:29:52 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TMi7R-0002gP-Q5
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 12 Oct 2012 17:29:51 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TMi39-0004sg-Eq; Fri, 12 Oct 2012 16:25:23 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <david.vrabel@citrix.com>) id 1TMi37-0004sb-I5
-       for xen-devel@lists.xen.org; Fri, 12 Oct 2012 16:25:21 +0000
-Received: from [85.158.137.99:20168] by server-10.bemta-3.messagelabs.com id
-       1A/76-27386-07448705; Fri, 12 Oct 2012 16:25:20 +0000
-X-Env-Sender: david.vrabel@citrix.com
-X-Msg-Ref: server-8.tower-217.messagelabs.com!1350059118!16020551!1
-X-Originating-IP: [66.165.176.89]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNzYwMjI=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 5183 invoked from network); 12 Oct 2012 16:25:20 -0000
-Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
-       by server-8.tower-217.messagelabs.com with RC4-SHA encrypted SMTP;
-       12 Oct 2012 16:25:20 -0000
-X-IronPort-AV: E=Sophos;i="4.80,576,1344211200"; d="scan'208";a="41050875"
-Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
-       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       12 Oct 2012 16:25:08 +0000
-Received: from [10.80.2.76] (10.80.2.76) by FTLPMAILMX02.citrite.net
-       (10.13.107.66) with Microsoft SMTP Server id 8.3.279.1; Fri, 12 Oct 2012
-       12:25:08 -0400
-Message-ID: <50784462.3060203@citrix.com>
-Date: Fri, 12 Oct 2012 17:25:06 +0100
-From: David Vrabel <david.vrabel@citrix.com>
-User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US;
-       rv:1.9.1.16) Gecko/20120428 Iceowl/1.0b1 Icedove/3.0.11
-MIME-Version: 1.0
-To: David Vrabel <david.vrabel@citrix.com>
-References: <1350046634-2462-1-git-send-email-david.vrabel@citrix.com>
-In-Reply-To: <1350046634-2462-1-git-send-email-david.vrabel@citrix.com>
-Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 0/3] xen: fix various wallclock problems
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On 12/10/12 13:57, David Vrabel wrote:
-> This series (with some toolstack updates) corrects a number of cases
-> where a guest can see an incorrect wallclock time.
-> 
-> 1. Systems with NTP won't periodically synchronize the hardware RTC so
-> the wallclock may be incorrect after a reboot.
-> 
-> 2. The wallclock is always ~500 ms behind the correct time.
-> 
-> 3. If the system time was stepped and NTP isn't synchronized yet, the
-> wallclock will still have the incorrect time.  The fix for this
-> requires the toolstack to synchronize the wallclock -- patch #3
-> provides the mechanism for this.
-
-These tables should help.
-
-Before:
-
-              |                Updates
-Process              | System Time?  Xen Wallclock?  Hardware Clock?
--------------------------------------------------------------
-date -s       | X
-hwclock -w    |                               X
-ntpd          | X             X[*]
-ntpdate       | X
-
-After this (and the toolstack) patches:
-
-              |                Updates
-Process              | System Time?  Xen Wallclock?  Hardware Clock?
--------------------------------------------------------------
-date -s       | X
-hwclock -w    |                               X
-ntpd          | X             X[*]            X[*]
-ntpdate       | X
-xen-wallclock |               X
-
-[*] every 11 minutes.
-
-David
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<5078458B.7090901@citrix.com> b/test/corpus/<5078458B.7090901@citrix.com>
deleted file mode 100644 (file)
index 04fabbd..0000000
+++ /dev/null
@@ -1,100 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Oct 12 17:33:48 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 12 Oct 2012 17:33:48 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TMiBG-0002hO-HB
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 12 Oct 2012 17:33:48 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TMi87-00059b-Uc; Fri, 12 Oct 2012 16:30:31 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <david.vrabel@citrix.com>) id 1TMi86-00059S-Ec
-       for xen-devel@lists.xen.org; Fri, 12 Oct 2012 16:30:30 +0000
-Received: from [85.158.139.83:4551] by server-14.bemta-5.messagelabs.com id
-       9B/C9-22559-5A548705; Fri, 12 Oct 2012 16:30:29 +0000
-X-Env-Sender: david.vrabel@citrix.com
-X-Msg-Ref: server-3.tower-182.messagelabs.com!1350059427!34616044!1
-X-Originating-IP: [66.165.176.89]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNzYwMjI=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 16769 invoked from network); 12 Oct 2012 16:30:29 -0000
-Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
-       by server-3.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
-       12 Oct 2012 16:30:29 -0000
-X-IronPort-AV: E=Sophos;i="4.80,576,1344211200"; d="scan'208";a="41051597"
-Received: from ftlpmailmx01.citrite.net ([10.13.107.65])
-       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       12 Oct 2012 16:30:04 +0000
-Received: from [10.80.2.76] (10.80.2.76) by FTLPMAILMX01.citrite.net
-       (10.13.107.65) with Microsoft SMTP Server id 8.3.279.1; Fri, 12 Oct 2012
-       12:30:04 -0400
-Message-ID: <5078458B.7090901@citrix.com>
-Date: Fri, 12 Oct 2012 17:30:03 +0100
-From: David Vrabel <david.vrabel@citrix.com>
-User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US;
-       rv:1.9.1.16) Gecko/20120428 Iceowl/1.0b1 Icedove/3.0.11
-MIME-Version: 1.0
-To: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-References: <1350046634-2462-1-git-send-email-david.vrabel@citrix.com>
-       <1350046634-2462-4-git-send-email-david.vrabel@citrix.com>
-       <20121012134147.GA11778@phenom.dumpdata.com>
-       <507822ED.2090900@citrix.com>
-       <CACJDEmr3V71cSdV3+i-n7=wfOnDBza04Lk+6+B6Fyx7LhQrdEg@mail.gmail.com>
-       <5078304D.1050807@citrix.com>
-       <20121012150251.GB20842@phenom.dumpdata.com>
-       <507841D8.6090205@citrix.com>
-       <20121012161610.GA7880@phenom.dumpdata.com>
-In-Reply-To: <20121012161610.GA7880@phenom.dumpdata.com>
-Cc: Konrad Rzeszutek Wilk <konrad@kernel.org>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 3/3] xen/privcmd: add
- IOCTL_PRIVCMD_SYNC_WALLCLOCK to sync Xen's wallclock
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On 12/10/12 17:16, Konrad Rzeszutek Wilk wrote:
-> 
-> So, having both ntpd (which calls call adjtimex) - which would run in the
-> background; and hwclock run at startup - (which updates the RTC, which ends
->  - I hope - being trapped by the hypervisor), we end up with the correct
-> time, right?
-
-Yes, unless you start a guest before ntpd has synchronized.
-
-David
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<507BFFD0.2010707@citrix.com> b/test/corpus/<507BFFD0.2010707@citrix.com>
deleted file mode 100644 (file)
index ede09e0..0000000
+++ /dev/null
@@ -1,101 +0,0 @@
-From xen-devel-bounces@lists.xen.org Mon Oct 15 13:26:42 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Mon, 15 Oct 2012 13:26:42 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TNjki-00022R-TF
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Mon, 15 Oct 2012 13:26:42 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TNjg4-0005kZ-RA; Mon, 15 Oct 2012 12:21:48 +0000
-Received: from mail27.messagelabs.com ([193.109.254.147])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <david.vrabel@citrix.com>) id 1TNjg2-0005ju-Cg
-       for xen-devel@lists.xen.org; Mon, 15 Oct 2012 12:21:46 +0000
-X-Env-Sender: david.vrabel@citrix.com
-X-Msg-Ref: server-2.tower-27.messagelabs.com!1350303698!14672368!1
-X-Originating-IP: [66.165.176.63]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyODI0MDk=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 31262 invoked from network); 15 Oct 2012 12:21:39 -0000
-Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
-       by server-2.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
-       15 Oct 2012 12:21:39 -0000
-X-IronPort-AV: E=Sophos;i="4.80,587,1344211200"; d="scan'208";a="211277471"
-Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
-       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       15 Oct 2012 12:21:38 +0000
-Received: from [10.80.2.76] (10.80.2.76) by FTLPMAILMX02.citrite.net
-       (10.13.107.66) with Microsoft SMTP Server id 8.3.279.1; Mon, 15 Oct 2012
-       08:21:38 -0400
-Message-ID: <507BFFD0.2010707@citrix.com>
-Date: Mon, 15 Oct 2012 13:21:36 +0100
-From: David Vrabel <david.vrabel@citrix.com>
-User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US;
-       rv:1.9.1.16) Gecko/20120428 Iceowl/1.0b1 Icedove/3.0.11
-MIME-Version: 1.0
-To: Ian Campbell <Ian.Campbell@citrix.com>
-References: <1350046634-2462-1-git-send-email-david.vrabel@citrix.com> 
-       <1350046634-2462-3-git-send-email-david.vrabel@citrix.com>
-       <1350293121.18058.10.camel@zakaz.uk.xensource.com>
-In-Reply-To: <1350293121.18058.10.camel@zakaz.uk.xensource.com>
-Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.6 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 2/3] xen: add correct 500 ms offset when
- setting Xen wallclock
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On 15/10/12 10:25, Ian Campbell wrote:
-> On Fri, 2012-10-12 at 13:57 +0100, David Vrabel wrote:
->> From: David Vrabel <david.vrabel@citrix.com>
->>
->> update_persistent_wallclock() (and hence xet_set_wallclock()) is
->> called 500 ms after the second.
-> 
-> The comment in sync_cmos_clock says it is called 500ms before the next
-> second.
-
-This is the same thing, right?
-
-> I only mention it to double check that the right semantics for
-> set_wallclock are being implemented, i.e. that we are compensating in
-> the right direction.
-
-I'll add some debug code to make sure.
-
-David
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<507C0046.5050700@citrix.com> b/test/corpus/<507C0046.5050700@citrix.com>
deleted file mode 100644 (file)
index 0dddb6c..0000000
+++ /dev/null
@@ -1,127 +0,0 @@
-From xen-devel-bounces@lists.xen.org Mon Oct 15 13:28:12 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Mon, 15 Oct 2012 13:28:12 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TNjmA-00022j-RY
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Mon, 15 Oct 2012 13:28:12 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TNjhs-0005y5-Nt; Mon, 15 Oct 2012 12:23:40 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <david.vrabel@citrix.com>) id 1TNjhr-0005xk-15
-       for xen-devel@lists.xen.org; Mon, 15 Oct 2012 12:23:39 +0000
-Received: from [85.158.137.99:61524] by server-7.bemta-3.messagelabs.com id
-       C6/33-06991-A400C705; Mon, 15 Oct 2012 12:23:38 +0000
-X-Env-Sender: david.vrabel@citrix.com
-X-Msg-Ref: server-14.tower-217.messagelabs.com!1350303816!21598869!1
-X-Originating-IP: [66.165.176.89]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNzYzNjU=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 3813 invoked from network); 15 Oct 2012 12:23:37 -0000
-Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
-       by server-14.tower-217.messagelabs.com with RC4-SHA encrypted SMTP;
-       15 Oct 2012 12:23:37 -0000
-X-IronPort-AV: E=Sophos;i="4.80,587,1344211200"; d="scan'208";a="41210189"
-Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
-       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       15 Oct 2012 12:23:35 +0000
-Received: from [10.80.2.76] (10.80.2.76) by FTLPMAILMX02.citrite.net
-       (10.13.107.66) with Microsoft SMTP Server id 8.3.279.1; Mon, 15 Oct 2012
-       08:23:35 -0400
-Message-ID: <507C0046.5050700@citrix.com>
-Date: Mon, 15 Oct 2012 13:23:34 +0100
-From: David Vrabel <david.vrabel@citrix.com>
-User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US;
-       rv:1.9.1.16) Gecko/20120428 Iceowl/1.0b1 Icedove/3.0.11
-MIME-Version: 1.0
-To: Ian Campbell <Ian.Campbell@citrix.com>
-References: <1350046634-2462-1-git-send-email-david.vrabel@citrix.com> 
-       <50784462.3060203@citrix.com>
-       <1350293217.18058.11.camel@zakaz.uk.xensource.com>
-In-Reply-To: <1350293217.18058.11.camel@zakaz.uk.xensource.com>
-Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
-       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.6 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 0/3] xen: fix various wallclock problems
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On 15/10/12 10:26, Ian Campbell wrote:
-> On Fri, 2012-10-12 at 17:25 +0100, David Vrabel wrote:
->> On 12/10/12 13:57, David Vrabel wrote:
->>> This series (with some toolstack updates) corrects a number of cases
->>> where a guest can see an incorrect wallclock time.
->>>
->>> 1. Systems with NTP won't periodically synchronize the hardware RTC so
->>> the wallclock may be incorrect after a reboot.
->>>
->>> 2. The wallclock is always ~500 ms behind the correct time.
->>>
->>> 3. If the system time was stepped and NTP isn't synchronized yet, the
->>> wallclock will still have the incorrect time.  The fix for this
->>> requires the toolstack to synchronize the wallclock -- patch #3
->>> provides the mechanism for this.
->>
->> These tables should help.
->>
->> Before:
->>
->>               |                Updates
->> Process           | System Time?  Xen Wallclock?  Hardware Clock?
->> -------------------------------------------------------------
->> date -s       | X
->> hwclock -w    |                               X
->> ntpd          | X             X[*]
->> ntpdate       | X
-> 
-> What does the equivalent table for native look like?
-> 
-> Is the "updated hardware clock" column in that caseis union of xen
-> wallclock and hardware clock columns here?
-
-Yes.
-
-              |         Updates
-Process              | System Time?  Hardware Clock?
----------------------------------------------
-date -s       | X
-hwclock -w    |               X
-ntpd          | X             X[*]
-ntpdate       | X
-
-David
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<507C00A6.3020001@citrix.com> b/test/corpus/<507C00A6.3020001@citrix.com>
deleted file mode 100644 (file)
index c3dcd02..0000000
+++ /dev/null
@@ -1,151 +0,0 @@
-From xen-devel-bounces@lists.xen.org Mon Oct 15 13:29:47 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Mon, 15 Oct 2012 13:29:47 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TNjnk-00023V-Vw
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Mon, 15 Oct 2012 13:29:47 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TNjjV-0006Dh-7P; Mon, 15 Oct 2012 12:25:21 +0000
-Received: from mail27.messagelabs.com ([193.109.254.147])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <david.vrabel@citrix.com>) id 1TNjjT-0006DD-Iw
-       for xen-devel@lists.xen.org; Mon, 15 Oct 2012 12:25:19 +0000
-X-Env-Sender: david.vrabel@citrix.com
-X-Msg-Ref: server-16.tower-27.messagelabs.com!1350303912!13287640!1
-X-Originating-IP: [66.165.176.89]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNzYzNjU=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 1230 invoked from network); 15 Oct 2012 12:25:13 -0000
-Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
-       by server-16.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
-       15 Oct 2012 12:25:13 -0000
-X-IronPort-AV: E=Sophos;i="4.80,587,1344211200"; d="scan'208";a="41210301"
-Received: from ftlpmailmx02.citrite.net ([10.13.107.66])
-       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       15 Oct 2012 12:25:11 +0000
-Received: from [10.80.2.76] (10.80.2.76) by FTLPMAILMX02.citrite.net
-       (10.13.107.66) with Microsoft SMTP Server id 8.3.279.1; Mon, 15 Oct 2012
-       08:25:11 -0400
-Message-ID: <507C00A6.3020001@citrix.com>
-Date: Mon, 15 Oct 2012 13:25:10 +0100
-From: David Vrabel <david.vrabel@citrix.com>
-User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US;
-       rv:1.9.1.16) Gecko/20120428 Iceowl/1.0b1 Icedove/3.0.11
-MIME-Version: 1.0
-To: Ian Campbell <Ian.Campbell@citrix.com>
-References: <1350046970-2591-1-git-send-email-david.vrabel@citrix.com> 
-       <1350046970-2591-3-git-send-email-david.vrabel@citrix.com>
-       <1350293719.18058.13.camel@zakaz.uk.xensource.com>
-In-Reply-To: <1350293719.18058.13.camel@zakaz.uk.xensource.com>
-Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.6 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 2/2] tools/misc: add xen-wallclock command
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On 15/10/12 10:35, Ian Campbell wrote:
-> On Fri, 2012-10-12 at 14:02 +0100, David Vrabel wrote:
->> +int main(int argc, char *argv[])
->> +{
->> +    const static char sopts[] = "w";
->> +    const static struct option lopts[] = {
->> +        { "help", 0, NULL, 0 },
->> +        { "systowc", 0, NULL, 'w' },
->> +        { 0, 0, NULL, 0 },
->> +    };
->> +    int opt, opt_idx;
->> +
->> +    int systowc = 0;
->> +    xc_interface *xch;
->> +
->> +    exe_name = argv[0];
->> +
->> +    while ( (opt = getopt_long(argc, argv, sopts, lopts, &opt_idx)) != -1 )
->> +    {
->> +        switch ( opt )
->> +        {
->> +        case 'w':
->> +            systowc = 1;
->> +            break;
->> +        case 0:
->> +            switch (opt_idx)
->> +            {
->> +            case 0:
->> +                help();
->> +            }
->> +            break;
->> +        default:
->> +            usage(stderr);
->> +            exit(1);
->> +        }
->> +    }
->> +
->> +    /* Valid combination of options? i.e., --systowc */
->> +    if (!systowc)
->> +    {
->> +        usage(stderr);
->> +        exit(1);
->> +    }
->> +
->> +    xch = xc_interface_open(NULL, NULL, 0);
->> +    if (xch == NULL)
->> +    {
-> 
-> I forget: Does xc_interface_open log on error?
-
-Yes.
-
->> +        exit(1);
->> +    }
->> +    xc_wallclock_sync(xch);
-> 
-> Worth logging if this fails?
-
-Yes.
-
-> I suppose we want to hold off on this and the first patch until the
-> Linux side is agreed and committed?
-
-Yes.
-
->> +    xc_interface_close(xch);
->> +
->> +    return 0;
->> +}
-
-David
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<507EB27D.8050308@citrix.com> b/test/corpus/<507EB27D.8050308@citrix.com>
deleted file mode 100644 (file)
index eef9a4d..0000000
+++ /dev/null
@@ -1,261 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Oct 17 14:40:35 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 17 Oct 2012 14:40:35 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TOTrJ-0003FA-FD
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 17 Oct 2012 14:40:35 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TOTnB-0002nU-5F; Wed, 17 Oct 2012 13:36:13 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Andrew.Cooper3@citrix.com>) id 1TOTn9-0002nE-K1
-       for xen-devel@lists.xen.org; Wed, 17 Oct 2012 13:36:11 +0000
-Received: from [85.158.137.99:35093] by server-8.bemta-3.messagelabs.com id
-       5C/AC-10525-B44BE705; Wed, 17 Oct 2012 13:36:11 +0000
-X-Env-Sender: Andrew.Cooper3@citrix.com
-X-Msg-Ref: server-2.tower-217.messagelabs.com!1350480967!21831547!2
-X-Originating-IP: [66.165.176.89]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNzcwNjI=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 23512 invoked from network); 17 Oct 2012 13:36:09 -0000
-Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
-       by server-2.tower-217.messagelabs.com with RC4-SHA encrypted SMTP;
-       17 Oct 2012 13:36:09 -0000
-X-IronPort-AV: E=Sophos;i="4.80,600,1344211200"; d="scan'208";a="41505057"
-Received: from ftlpmailmx01.citrite.net ([10.13.107.65])
-       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       17 Oct 2012 13:36:09 +0000
-Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
-       (10.13.107.65) with Microsoft SMTP Server id 8.3.279.1;
-       Wed, 17 Oct 2012 09:36:08 -0400
-Received: from andrewcoop.uk.xensource.com ([10.80.2.18])      by
-       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
-       <andrew.cooper3@citrix.com>)    id 1TOTfh-00083G-6Y;
-       Wed, 17 Oct 2012 14:28:29 +0100
-Message-ID: <507EB27D.8050308@citrix.com>
-Date: Wed, 17 Oct 2012 14:28:29 +0100
-From: Andrew Cooper <andrew.cooper3@citrix.com>
-User-Agent: Mozilla/5.0 (X11; Linux x86_64;
-       rv:16.0) Gecko/20121011 Thunderbird/16.0.1
-MIME-Version: 1.0
-To: xen-devel@lists.xen.org, stefan.bader@canonical.com, 
-       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-References: <1350479456-4007-1-git-send-email-stefan.bader@canonical.com>
-In-Reply-To: <1350479456-4007-1-git-send-email-stefan.bader@canonical.com>
-X-Enigmail-Version: 1.4.5
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.6 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] Xen PVM: Strange lockups when running PostgreSQL
- load
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On 17/10/12 14:10, Stefan Bader wrote:
-> I am currently looking at a bug report[1] which is happening when
-> a Xen PVM guest with multiple VCPUs is running a high IO database
-> load (a test script is available in the bug report).
->
-> In experimenting it seems that this happens (or is getting more
-> likely) when the number of VCPUs is 8 or higher (though I have
-> not tried 6, only 2 and 4), having autogroup enabled seems to
-> make it more likely, too (at some point thought it would actually
-> prevent it but we were wrong) and pv spinlocks enabled.
-> It has happened with older (3.4.3) and newer (4.1.2) versions of
-> Xen as a host and with 3.2 and 3.5 kernels as guests.
->
-> The pv spinlock assumption I will try to get re-verified by asking
-> to reproduce under a real load with a kernel that just disables
-> that. However, the dumps I am looking at really do look odd there.
->
-> The first dump I looked at had the spinlock of runqueue[0] being
-> placed into the per-cpu lock_spinners variable for cpu#0 and
-> cpu#7 (doing my tests with 8 VCPUs). So apparently both cpus were
-> waiting on the slow path for it to become free. Though actually
-> it was free! Now, here is one issue I have in understanding the
-> dump: the back traces produced in crash are in the normal form
-> not showing any cpu in the poll_irq HV call. Only when using
-> the form that uses the last known stack location and displays
-> all text symols found will get close for cpu#7. cpu#0 still does
-> not seem to be anywhere close. This could be a problem with crash,
-> or with the way PVM works, I am not sure.
->
-> Anyway, from what I could take from that situation, it seemed that
-> cpu#1 (that one had soft lockup warnings in the log) seemed to try
-> to do a wake_up on the task that just seemed to have done an io
-> schedule on cpu#7 (but the waitqueue_head spinlock is currently
-> locked). cpu#7 tries to get the runqueue[0] spinlock to do an idle
-> migration (though the lock currently is free). So I guessed that
-> maybe cpu#0 was just woken for the free lock but has not grabbed
-> it yet.
->
-> From there I wondered whether something that acquires a spinlock
-> usually more than the quick path timeout (and this causes new
-> lockers to go into the slow path), could cause a stall on a high
-> numbered cpu when the lock is contented (as the search and
-> signalling is only done for the first waiter starting from 0).
-> That lead to below patch. The good thing about it, it does not
-> break things immediately, the bad thing, it does not help with
-> the problem. :/
->
-> The interesting thing when looking at a second dump, taken with
-> a testkernel using the patch below, was that again 2 cpus seemed
-> to spin slow on a lock that was free in the dump. And again at
-> least one did not seem to be doing anything spinlock related
-> (anymore?).
-> One other detail (but that could be just incidence as well) was
-> that in unmodified kernel I usually would end up with soft
-> lockup messages, with the patched kernel, that was a stall
-> detected by rcu_bh (0 and 1 stalled, detected by 3).
->
-> Now I am a bit confused and wonder about some basic things:
-> 1. When a cpu goes into the slow lock path and into the poll_irq,
->    shouldn't I expect this one to be in hypercall_page in the
->    dump?
-> 2. When does the whole handling for interrupted spinlock wait
->    apply? I assume only for a spinlock taken without irqs
->    disabled and then trying to acquire another one in an
->    interrupt handler. Is that correct?
-> 3. Not really related but I just stumbled over it:
->    In xen_spin_trylock: "asm("xchgb %b0,%1"...)
->    What does the "b" part of %b0 do? I thought xchgb already
->    would say it is a byte value...
->
-> But putting aside those questions, the fact that two times
-> there was two cpus waiting on the same lock which from the
-> lock count (=0) was free seems a bit too much of a coincidence.
-> Oh and the spinners count in the lock was 2 as one would
-> expect.
->
-> struct rq {
->   lock = {
->     raw_lock = {
->       {
->         head_tail = 512, 
->         tickets = {
->           head = 0 '\000', 
->           tail = 2 '\002'
->         }
->       }
->     }
->   }, 
->   nr_running = 1,
->   ...
-> }
->
-> I really don't know how this happens. Especially cpu#0 seems at
-> least past the wakeup and should have removed itself from the
-> spinners list...
->  
-> -Stefan
-
-We (Citrix) have an outstanding bug, on 2.6.32 classic, which we have
-never managed to get to the bottom of (because of inability to reliably
-reproduce), which might be related.
-
-In our case, certain processes were locking up, and it turned out that
-the kernel was issuing SCHOP_poll hypercalls (same the stack trace on
-your launchpad ticket) on its own spinlock IPI event channel
-(understandable, as its a spinlock), but with the event channel masked,
-so it would never wake up from the poll.
-
-Can you reliably reproduce the issue? and if so, would it be possible to
-capture hypervisor debug keys q and e when the badness happens?  This
-would clearly show if our bugs are related or not
-
-Our repro case took about a month to reproduce, and unfortunately
-turning lockdep on has appeared to fix the problem.
-
-~Andrew
-
->
-> [1] http://bugs.launchpad.net/bugs/1011792
->
-> From 635a4e101ccbc9a324c8000f7e264ed4e646592c Mon Sep 17 00:00:00 2001
-> From: Stefan Bader <stefan.bader@canonical.com>
-> Date: Tue, 16 Oct 2012 17:46:09 +0200
-> Subject: [PATCH] xen/spinlocks: Make wakeup fairer
->
-> Instead of sending the IPI signalling the free lock to the first
-> online CPU found waiting for it, start the search from the CPU
-> that had the lock last.
->
-> Signed-off-by: Stefan Bader <stefan.bader@canonical.com>
-> ---
->  arch/x86/xen/spinlock.c |   22 ++++++++++++++--------
->  1 file changed, 14 insertions(+), 8 deletions(-)
->
-> diff --git a/arch/x86/xen/spinlock.c b/arch/x86/xen/spinlock.c
-> index d69cc6c..8b86efb 100644
-> --- a/arch/x86/xen/spinlock.c
-> +++ b/arch/x86/xen/spinlock.c
-> @@ -320,17 +320,23 @@ static void xen_spin_lock_flags(struct arch_spinlock *lock, unsigned long flags)
->  static noinline void xen_spin_unlock_slow(struct xen_spinlock *xl)
->  {
->      int cpu;
-> +    int this_cpu = smp_processor_id();
->  
->      ADD_STATS(released_slow, 1);
->  
-> -    for_each_online_cpu(cpu) {
-> -            /* XXX should mix up next cpu selection */
-> -            if (per_cpu(lock_spinners, cpu) == xl) {
-> -                    ADD_STATS(released_slow_kicked, 1);
-> -                    xen_send_IPI_one(cpu, XEN_SPIN_UNLOCK_VECTOR);
-> -                    break;
-> -            }
-> -    }
-> +    cpu = cpumask_next(this_cpu, cpu_online_mask);
-> +    do {
-> +            if (cpu < nr_cpu_ids) {
-> +                    if (per_cpu(lock_spinners, cpu) == xl) {
-> +                            ADD_STATS(released_slow_kicked, 1);
-> +                            xen_send_IPI_one(cpu, XEN_SPIN_UNLOCK_VECTOR);
-> +                            break;
-> +                    }
-> +            } else
-> +                    cpu = -1;
-> +
-> +            cpu = cpumask_next(cpu, cpu_online_mask);
-> +    } while (cpu != this_cpu);
->  }
->  
->  static void xen_spin_unlock(struct arch_spinlock *lock)
-
--- 
-Andrew Cooper - Dom0 Kernel Engineer, Citrix XenServer
-T: +44 (0)1223 225 900, http://www.citrix.com
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<507EB694.8070105@canonical.com> b/test/corpus/<507EB694.8070105@canonical.com>
deleted file mode 100644 (file)
index 8251de9..0000000
+++ /dev/null
@@ -1,269 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Oct 17 14:50:24 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 17 Oct 2012 14:50:24 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TOU0o-0003Hq-8S
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 17 Oct 2012 14:50:24 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TOTwk-0003Gp-2n; Wed, 17 Oct 2012 13:46:06 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <stefan.bader@canonical.com>) id 1TOTwh-0003Gk-Rd
-       for xen-devel@lists.xen.org; Wed, 17 Oct 2012 13:46:04 +0000
-Received: from [85.158.139.211:32370] by server-3.bemta-5.messagelabs.com id
-       AA/16-28618-A96BE705; Wed, 17 Oct 2012 13:46:02 +0000
-X-Env-Sender: stefan.bader@canonical.com
-X-Msg-Ref: server-3.tower-206.messagelabs.com!1350481559!22670372!1
-X-Originating-IP: [91.189.89.112]
-X-SpamReason: No, hits=0.0 required=7.0 tests=
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 5452 invoked from network); 17 Oct 2012 13:45:59 -0000
-Received: from youngberry.canonical.com (HELO youngberry.canonical.com)
-       (91.189.89.112) by server-3.tower-206.messagelabs.com with SMTP;
-       17 Oct 2012 13:45:59 -0000
-Received: from p5b2e42c0.dip.t-dialin.net ([91.46.66.192] helo=[192.168.2.5])
-       by youngberry.canonical.com with esmtpsa
-       (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71)
-       (envelope-from <stefan.bader@canonical.com>)
-       id 1TOTwc-00008R-RN; Wed, 17 Oct 2012 13:45:58 +0000
-Message-ID: <507EB694.8070105@canonical.com>
-Date: Wed, 17 Oct 2012 15:45:56 +0200
-From: Stefan Bader <stefan.bader@canonical.com>
-User-Agent: Mozilla/5.0 (X11; Linux x86_64;
-       rv:16.0) Gecko/20121011 Thunderbird/16.0.1
-MIME-Version: 1.0
-To: Andrew Cooper <andrew.cooper3@citrix.com>
-References: <1350479456-4007-1-git-send-email-stefan.bader@canonical.com>
-       <507EB27D.8050308@citrix.com>
-In-Reply-To: <507EB27D.8050308@citrix.com>
-X-Enigmail-Version: 1.4.5
-Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>, xen-devel@lists.xen.org
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: multipart/mixed; boundary="===============3687563582694962846=="
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.6 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] Xen PVM: Strange lockups when running PostgreSQL
- load
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-This is an OpenPGP/MIME signed message (RFC 2440 and 3156)
---===============3687563582694962846==
-Content-Type: multipart/signed; micalg=pgp-sha512;
- protocol="application/pgp-signature";
- boundary="------------enig81D271FA730DEC5D8D196885"
-
-This is an OpenPGP/MIME signed message (RFC 2440 and 3156)
---------------enig81D271FA730DEC5D8D196885
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: quoted-printable
-
-On 17.10.2012 15:28, Andrew Cooper wrote:
-> On 17/10/12 14:10, Stefan Bader wrote:
->> I am currently looking at a bug report[1] which is happening when
->> a Xen PVM guest with multiple VCPUs is running a high IO database
->> load (a test script is available in the bug report).
->>
->> In experimenting it seems that this happens (or is getting more
->> likely) when the number of VCPUs is 8 or higher (though I have
->> not tried 6, only 2 and 4), having autogroup enabled seems to
->> make it more likely, too (at some point thought it would actually
->> prevent it but we were wrong) and pv spinlocks enabled.
->> It has happened with older (3.4.3) and newer (4.1.2) versions of
->> Xen as a host and with 3.2 and 3.5 kernels as guests.
->>
->> The pv spinlock assumption I will try to get re-verified by asking
->> to reproduce under a real load with a kernel that just disables
->> that. However, the dumps I am looking at really do look odd there.
->>
->> The first dump I looked at had the spinlock of runqueue[0] being
->> placed into the per-cpu lock_spinners variable for cpu#0 and
->> cpu#7 (doing my tests with 8 VCPUs). So apparently both cpus were
->> waiting on the slow path for it to become free. Though actually
->> it was free! Now, here is one issue I have in understanding the
->> dump: the back traces produced in crash are in the normal form
->> not showing any cpu in the poll_irq HV call. Only when using
->> the form that uses the last known stack location and displays
->> all text symols found will get close for cpu#7. cpu#0 still does
->> not seem to be anywhere close. This could be a problem with crash,
->> or with the way PVM works, I am not sure.
->>
->> Anyway, from what I could take from that situation, it seemed that
->> cpu#1 (that one had soft lockup warnings in the log) seemed to try
->> to do a wake_up on the task that just seemed to have done an io
->> schedule on cpu#7 (but the waitqueue_head spinlock is currently
->> locked). cpu#7 tries to get the runqueue[0] spinlock to do an idle
->> migration (though the lock currently is free). So I guessed that
->> maybe cpu#0 was just woken for the free lock but has not grabbed
->> it yet.
->>
->> From there I wondered whether something that acquires a spinlock
->> usually more than the quick path timeout (and this causes new
->> lockers to go into the slow path), could cause a stall on a high
->> numbered cpu when the lock is contented (as the search and
->> signalling is only done for the first waiter starting from 0).
->> That lead to below patch. The good thing about it, it does not
->> break things immediately, the bad thing, it does not help with
->> the problem. :/
->>
->> The interesting thing when looking at a second dump, taken with
->> a testkernel using the patch below, was that again 2 cpus seemed
->> to spin slow on a lock that was free in the dump. And again at
->> least one did not seem to be doing anything spinlock related
->> (anymore?).
->> One other detail (but that could be just incidence as well) was
->> that in unmodified kernel I usually would end up with soft
->> lockup messages, with the patched kernel, that was a stall
->> detected by rcu_bh (0 and 1 stalled, detected by 3).
->>
->> Now I am a bit confused and wonder about some basic things:
->> 1. When a cpu goes into the slow lock path and into the poll_irq,
->>    shouldn't I expect this one to be in hypercall_page in the
->>    dump?
->> 2. When does the whole handling for interrupted spinlock wait
->>    apply? I assume only for a spinlock taken without irqs
->>    disabled and then trying to acquire another one in an
->>    interrupt handler. Is that correct?
->> 3. Not really related but I just stumbled over it:
->>    In xen_spin_trylock: "asm("xchgb %b0,%1"...)
->>    What does the "b" part of %b0 do? I thought xchgb already
->>    would say it is a byte value...
->>
->> But putting aside those questions, the fact that two times
->> there was two cpus waiting on the same lock which from the
->> lock count (=3D0) was free seems a bit too much of a coincidence.
->> Oh and the spinners count in the lock was 2 as one would
->> expect.
->>
->> struct rq {
->>   lock =3D {
->>     raw_lock =3D {
->>       {
->>         head_tail =3D 512,=20
->>         tickets =3D {
->>           head =3D 0 '\000',=20
->>           tail =3D 2 '\002'
->>         }
->>       }
->>     }
->>   },=20
->>   nr_running =3D 1,
->>   ...
->> }
->>
->> I really don't know how this happens. Especially cpu#0 seems at
->> least past the wakeup and should have removed itself from the
->> spinners list...
->> =20
->> -Stefan
->=20
-> We (Citrix) have an outstanding bug, on 2.6.32 classic, which we have
-> never managed to get to the bottom of (because of inability to reliably=
-
-> reproduce), which might be related.
->=20
-> In our case, certain processes were locking up, and it turned out that
-> the kernel was issuing SCHOP_poll hypercalls (same the stack trace on
-> your launchpad ticket) on its own spinlock IPI event channel
-> (understandable, as its a spinlock), but with the event channel masked,=
-
-> so it would never wake up from the poll.
-
-Unfortunately either crash looking at it or something else is wrong for t=
-he PV
-guest as looking at HYPERVISOR_shared_info appears completely blank.
-
->=20
-> Can you reliably reproduce the issue? and if so, would it be possible t=
-o
-> capture hypervisor debug keys q and e when the badness happens?  This
-> would clearly show if our bugs are related or not
-
-Yes, as mentioned the python script in the bug report does that when meet=
-ing the
-other conditions. I certainly can do the debug keys on that.
-
->=20
-> Our repro case took about a month to reproduce, and unfortunately
-> turning lockdep on has appeared to fix the problem.
-
-Yeah, having lockdep enabled was another thing that made it less likely. =
-Though
-some reporters had lockups with it, too. Just much less likely.
-
--Stefan
-
->=20
-> ~Andrew
->=20
->>
->> [1] http://bugs.launchpad.net/bugs/1011792
->>
-
-
-
---------------enig81D271FA730DEC5D8D196885
-Content-Type: application/pgp-signature; name="signature.asc"
-Content-Description: OpenPGP digital signature
-Content-Disposition: attachment; filename="signature.asc"
-
------BEGIN PGP SIGNATURE-----
-Version: GnuPG v1.4.11 (GNU/Linux)
-Comment: Using GnuPG with Mozilla - http://www.enigmail.net/
-
-iQIcBAEBCgAGBQJQfraVAAoJEOhnXe7L7s6jtCQP/1Li9oKebZMBeK1os42nAu0v
-uOeizVRkV4Brl0hSTjXRJnzPWXnOAho5mKU429m0VJrxLeo8uHHqMApTJBF8YEFF
-Nf+NkEg18khpLn08jlFt6Gz2aKMYi4zoRr8nBtIzwrw21bOSlOzMaT2EO39UtHvm
-PX3HkMZWfkvEp/FTNBjynksOTMCp8W/dGXCMjA4h58fUPujl4IYjWhIUwvsI++Rc
-m61PUi/LeWl0eE8xBYtp/piJwYkzl8/dLkyHo+qu0HlQ4jrQVYKsv5w+f0hfP1sY
-uWAtGDFWALCJY8QYVqM81QiS3mPEWbG9B3pnJxarfSZx9IED62Ea4rXh3Vdm3xKc
-Hk22e2abi/NSq81EUdbJMaH4Y0luoIiVeb5Pb76gqyDT1usMmE113US3e6JiDdfL
-Nyu+xbaDUZMPK6VfVP3e+ZgdMwrYEwnR++NM+VYqsuKf5fLtBzNeGJ0JDN6c4wKB
-O6pX/GDfdjX7soABFaQarfJWp9HX9LHE6BZF+SWYDuKdvIoKW8H2I9Hnh6qq6ALW
-1I+LEdq6bn1N5cuGr6FxC+crAoEGhKCB5kjQ51x1ZNBo8f132DlctAsL2BLar4Jk
-JK2F1B/pkVh6IW8wzJfjvQw+s9S/9pqFTSRPdRQf1sTanH1w5leLyuBASYqYUhpy
-xUA3qXiwmqchNpek8NxS
-=kZrl
------END PGP SIGNATURE-----
-
---------------enig81D271FA730DEC5D8D196885--
-
-
---===============3687563582694962846==
-Content-Type: text/plain; charset="us-ascii"
-MIME-Version: 1.0
-Content-Transfer-Encoding: 7bit
-Content-Disposition: inline
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
---===============3687563582694962846==--
-
-
diff --git a/test/corpus/<507ECAF8.7050709@citrix.com> b/test/corpus/<507ECAF8.7050709@citrix.com>
deleted file mode 100644 (file)
index b4b1df2..0000000
+++ /dev/null
@@ -1,118 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Oct 17 16:17:49 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 17 Oct 2012 16:17:49 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TOVNT-0003ep-B7
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 17 Oct 2012 16:17:49 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TOVJH-0005qx-KE; Wed, 17 Oct 2012 15:13:27 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Andrew.Cooper3@citrix.com>) id 1TOVJG-0005qs-33
-       for xen-devel@lists.xen.org; Wed, 17 Oct 2012 15:13:26 +0000
-Received: from [85.158.138.51:54819] by server-15.bemta-3.messagelabs.com id
-       84/DC-10261-51BCE705; Wed, 17 Oct 2012 15:13:25 +0000
-X-Env-Sender: Andrew.Cooper3@citrix.com
-X-Msg-Ref: server-3.tower-174.messagelabs.com!1350486803!26656698!1
-X-Originating-IP: [66.165.176.89]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNzcwNjI=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 32334 invoked from network); 17 Oct 2012 15:13:24 -0000
-Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
-       by server-3.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
-       17 Oct 2012 15:13:24 -0000
-X-IronPort-AV: E=Sophos;i="4.80,601,1344211200"; d="scan'208";a="41524595"
-Received: from ftlpmailmx01.citrite.net ([10.13.107.65])
-       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       17 Oct 2012 15:12:56 +0000
-Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
-       (10.13.107.65) with Microsoft SMTP Server id 8.3.279.1;
-       Wed, 17 Oct 2012 11:12:56 -0400
-Received: from andrewcoop.uk.xensource.com ([10.80.2.18])      by
-       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
-       <andrew.cooper3@citrix.com>)    id 1TOVIm-0001C7-5H;
-       Wed, 17 Oct 2012 16:12:56 +0100
-Message-ID: <507ECAF8.7050709@citrix.com>
-Date: Wed, 17 Oct 2012 16:12:56 +0100
-From: Andrew Cooper <andrew.cooper3@citrix.com>
-User-Agent: Mozilla/5.0 (X11; Linux x86_64;
-       rv:16.0) Gecko/20121011 Thunderbird/16.0.1
-MIME-Version: 1.0
-To: Jan Beulich <JBeulich@suse.com>
-References: <1350479456-4007-1-git-send-email-stefan.bader@canonical.com>
-       <507EB27D.8050308@citrix.com>
-       <507EE22602000078000A20DB@nat28.tlf.novell.com>
-In-Reply-To: <507EE22602000078000A20DB@nat28.tlf.novell.com>
-X-Enigmail-Version: 1.4.5
-Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
-       "stefan.bader@canonical.com" <stefan.bader@canonical.com>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.6 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] Xen PVM: Strange lockups when running PostgreSQL
- load
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On 17/10/12 15:51, Jan Beulich wrote:
->>>> On 17.10.12 at 15:28, Andrew Cooper <andrew.cooper3@citrix.com> wrote:
->> In our case, certain processes were locking up, and it turned out that
->> the kernel was issuing SCHOP_poll hypercalls (same the stack trace on
->> your launchpad ticket) on its own spinlock IPI event channel
->> (understandable, as its a spinlock), but with the event channel masked,
->> so it would never wake up from the poll.
-> Probably some misunderstanding: The event channel used
-> here will always be masked, and whether an event channel is
-> masked doesn't matter for the purposes of polling it.
->
-> Jan
->
-
-Sorry - I was not very clear.
-
-In our case, we saw every single VCPU stuck in a SCHEDOP_poll on its own
-spinlock event channel, which renderes the guest completely deadlocked.
-
-My understanding was that while some VCPUs were blocked in the
-hypervisor, the VCPU with the lock should raise an event when the lock
-was released, waking the other VCPUs so one could grab the lock.  This
-implication of this being that there is a bug in the spinlock code.
-
--- 
-Andrew Cooper - Dom0 Kernel Engineer, Citrix XenServer
-T: +44 (0)1223 225 900, http://www.citrix.com
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<507ECD06.2050407@canonical.com> b/test/corpus/<507ECD06.2050407@canonical.com>
deleted file mode 100644 (file)
index 0ca6f3d..0000000
+++ /dev/null
@@ -1,342 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Oct 17 16:26:34 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 17 Oct 2012 16:26:34 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TOVVs-0003gr-HN
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 17 Oct 2012 16:26:34 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TOVRO-0006Ay-9R; Wed, 17 Oct 2012 15:21:50 +0000
-Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <stefan.bader@canonical.com>) id 1TOVRM-0006Aq-0V
-       for xen-devel@lists.xen.org; Wed, 17 Oct 2012 15:21:48 +0000
-Received: from [193.109.254.147:4760] by server-4.bemta-14.messagelabs.com id
-       A2/2D-04248-B0DCE705; Wed, 17 Oct 2012 15:21:47 +0000
-X-Env-Sender: stefan.bader@canonical.com
-X-Msg-Ref: server-12.tower-27.messagelabs.com!1350487306!10411440!1
-X-Originating-IP: [91.189.89.112]
-X-SpamReason: No, hits=0.0 required=7.0 tests=
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 26025 invoked from network); 17 Oct 2012 15:21:46 -0000
-Received: from youngberry.canonical.com (HELO youngberry.canonical.com)
-       (91.189.89.112) by server-12.tower-27.messagelabs.com with SMTP;
-       17 Oct 2012 15:21:46 -0000
-Received: from p5b2e42c0.dip.t-dialin.net ([91.46.66.192] helo=[192.168.2.5])
-       by youngberry.canonical.com with esmtpsa
-       (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71)
-       (envelope-from <stefan.bader@canonical.com>)
-       id 1TOVRI-0002lS-1l; Wed, 17 Oct 2012 15:21:44 +0000
-Message-ID: <507ECD06.2050407@canonical.com>
-Date: Wed, 17 Oct 2012 17:21:42 +0200
-From: Stefan Bader <stefan.bader@canonical.com>
-User-Agent: Mozilla/5.0 (X11; Linux x86_64;
-       rv:16.0) Gecko/20121011 Thunderbird/16.0.1
-MIME-Version: 1.0
-To: Ian Campbell <Ian.Campbell@citrix.com>
-References: <1350479456-4007-1-git-send-email-stefan.bader@canonical.com>
-       <507EB27D.8050308@citrix.com>
-       <1350482118.2460.74.camel@zakaz.uk.xensource.com>
-In-Reply-To: <1350482118.2460.74.camel@zakaz.uk.xensource.com>
-X-Enigmail-Version: 1.4.5
-Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
-       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: multipart/mixed; boundary="===============6214944843867296276=="
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.6 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] Xen PVM: Strange lockups when running PostgreSQL
- load
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-This is an OpenPGP/MIME signed message (RFC 2440 and 3156)
---===============6214944843867296276==
-Content-Type: multipart/signed; micalg=pgp-sha512;
- protocol="application/pgp-signature";
- boundary="------------enigDCF9146FEFDB17A1136CD1F0"
-
-This is an OpenPGP/MIME signed message (RFC 2440 and 3156)
---------------enigDCF9146FEFDB17A1136CD1F0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: quoted-printable
-
-On 17.10.2012 15:55, Ian Campbell wrote:
-> On Wed, 2012-10-17 at 14:28 +0100, Andrew Cooper wrote:
->> In our case, certain processes were locking up, and it turned out that=
-
->> the kernel was issuing SCHOP_poll hypercalls (same the stack trace on
->> your launchpad ticket) on its own spinlock IPI event channel
->> (understandable, as its a spinlock), but with the event channel
->> masked, so it would never wake up from the poll.=20
->=20
-> I think (but you might want to check) that SCHEDOP_poll works (or is
-> supposed to work!) regardless of whether the specific evtchn you ask fo=
-r
-> is masked or not.
-
-I was assuming it to be supposed to work at least in Xen 4.1.2. Or at lea=
-st if
-it did not I would hope to catch VCPUs rather sitting on the hypercall th=
-an
-doing nothing. Of course I cannot say how reliable information in crash i=
-s as
-this is something new to do after Daniel fixed crash.
-
->=20
-> The Linux PV spinlock implementation takes advantage of this because it=
-
-> never wants to take a real interrupt from the spinlock poller evtchn.
-
-Right, I probably should have realized that. Though I guess it is still
-interesting to see whether the channel is pending.
-
-So when just recreating, I got the q and e info which is (assuming the gu=
-est
-domain is enough):
-
-(XEN) Event channel information for domain 1:
-(XEN) Polling vCPUs: {1,4,6}
-(XEN)     port [p/m]
-(XEN)        1 [0/0]: s=3D3 n=3D0 d=3D0 p=3D68 x=3D0
-(XEN)        2 [1/0]: s=3D3 n=3D0 d=3D0 p=3D69 x=3D0
-(XEN)        3 [1/0]: s=3D5 n=3D0 v=3D0 x=3D0
-(XEN)        4 [1/1]: s=3D6 n=3D0 x=3D0
-(XEN)        5 [1/0]: s=3D6 n=3D0 x=3D0
-(XEN)        6 [0/0]: s=3D6 n=3D0 x=3D0
-(XEN)        7 [0/0]: s=3D5 n=3D0 v=3D1 x=3D0
-(XEN)        8 [0/0]: s=3D6 n=3D0 x=3D0
-(XEN)        9 [1/0]: s=3D5 n=3D1 v=3D0 x=3D0
-(XEN)       10 [0/1]: s=3D6 n=3D1 x=3D0
-(XEN)       11 [1/0]: s=3D6 n=3D1 x=3D0
-(XEN)       12 [0/0]: s=3D6 n=3D1 x=3D0
-(XEN)       13 [0/0]: s=3D5 n=3D1 v=3D1 x=3D0
-(XEN)       14 [0/0]: s=3D6 n=3D1 x=3D0
-(XEN)       15 [0/0]: s=3D5 n=3D2 v=3D0 x=3D0
-(XEN)       16 [1/1]: s=3D6 n=3D2 x=3D0
-(XEN)       17 [0/0]: s=3D6 n=3D2 x=3D0
-(XEN)       18 [0/0]: s=3D6 n=3D2 x=3D0
-(XEN)       19 [0/0]: s=3D5 n=3D2 v=3D1 x=3D0
-(XEN)       20 [0/0]: s=3D6 n=3D2 x=3D0
-(XEN)       21 [0/0]: s=3D5 n=3D3 v=3D0 x=3D0
-(XEN)       22 [1/1]: s=3D6 n=3D3 x=3D0
-(XEN)       23 [0/0]: s=3D6 n=3D3 x=3D0
-(XEN)       24 [0/0]: s=3D6 n=3D3 x=3D0
-(XEN)       25 [0/0]: s=3D5 n=3D3 v=3D1 x=3D0
-(XEN)       26 [0/0]: s=3D6 n=3D3 x=3D0
-(XEN)       27 [1/0]: s=3D5 n=3D4 v=3D0 x=3D0
-(XEN)       28 [0/1]: s=3D6 n=3D4 x=3D0
-(XEN)       29 [1/0]: s=3D6 n=3D4 x=3D0
-(XEN)       30 [0/0]: s=3D6 n=3D4 x=3D0
-(XEN)       31 [0/0]: s=3D5 n=3D4 v=3D1 x=3D0
-(XEN)       32 [0/0]: s=3D6 n=3D4 x=3D0
-(XEN)       33 [0/0]: s=3D5 n=3D5 v=3D0 x=3D0
-(XEN)       34 [0/1]: s=3D6 n=3D5 x=3D0
-(XEN)       35 [0/0]: s=3D6 n=3D5 x=3D0
-(XEN)       36 [0/0]: s=3D6 n=3D5 x=3D0
-(XEN)       37 [0/0]: s=3D5 n=3D5 v=3D1 x=3D0
-(XEN)       38 [0/0]: s=3D6 n=3D5 x=3D0
-(XEN)       39 [1/0]: s=3D5 n=3D6 v=3D0 x=3D0
-(XEN)       40 [0/1]: s=3D6 n=3D6 x=3D0
-(XEN)       41 [1/0]: s=3D6 n=3D6 x=3D0
-(XEN)       42 [0/0]: s=3D6 n=3D6 x=3D0
-(XEN)       43 [0/0]: s=3D5 n=3D6 v=3D1 x=3D0
-(XEN)       44 [0/0]: s=3D6 n=3D6 x=3D0
-(XEN)       45 [0/0]: s=3D5 n=3D7 v=3D0 x=3D0
-(XEN)       46 [1/1]: s=3D6 n=3D7 x=3D0
-(XEN)       47 [0/0]: s=3D6 n=3D7 x=3D0
-(XEN)       48 [0/0]: s=3D6 n=3D7 x=3D0
-(XEN)       49 [0/0]: s=3D5 n=3D7 v=3D1 x=3D0
-(XEN)       50 [0/0]: s=3D6 n=3D7 x=3D0
-(XEN)       51 [0/0]: s=3D3 n=3D7 d=3D0 p=3D70 x=3D0
-(XEN)       52 [0/0]: s=3D3 n=3D0 d=3D0 p=3D71 x=3D0
-(XEN)       53 [0/0]: s=3D3 n=3D0 d=3D0 p=3D72 x=3D0
-(XEN)       54 [0/0]: s=3D3 n=3D0 d=3D0 p=3D73 x=3D0
-(XEN)       55 [1/0]: s=3D3 n=3D0 d=3D0 p=3D74 x=3D0
-
-[maybe someone can tell me what the s,n,d,p and x mean]
-
-(XEN) Rangesets belonging to domain 1:
-(XEN)     I/O Ports  { }
-(XEN)     Interrupts { }
-(XEN)     I/O Memory { }
-(XEN) Memory pages belonging to domain 1:
-(XEN)     DomPage list too long to display
-(XEN)     XenPage 00000000008000ab: caf=3Dc000000000000002, taf=3D7400000=
-000000002
-(XEN)     XenPage 00000000008000aa: caf=3Dc000000000000002, taf=3D7400000=
-000000002
-(XEN)     XenPage 00000000008000a9: caf=3Dc000000000000002, taf=3D7400000=
-000000002
-(XEN)     XenPage 00000000008000a8: caf=3Dc000000000000001, taf=3D7400000=
-000000001
-(XEN)     XenPage 00000000000dfae4: caf=3Dc000000000000002, taf=3D7400000=
-000000002
-(XEN) VCPU information and callbacks for domain 1:
-(XEN)     VCPU0: CPU3 [has=3DT] flags=3D0 poll=3D0 upcall_pend =3D 01, up=
-call_mask =3D 01
-dirty_cpus=3D{3} cpu_affinity=3D{0-127}
-(XEN)     No periodic timer
-(XEN)     VCPU1: CPU7 [has=3DF] flags=3D1 poll=3D10 upcall_pend =3D 01, u=
-pcall_mask =3D 01
-dirty_cpus=3D{} cpu_affinity=3D{0-127}
-(XEN)     No periodic timer
-(XEN)     VCPU2: CPU4 [has=3DF] flags=3D1 poll=3D0 upcall_pend =3D 00, up=
-call_mask =3D 00
-dirty_cpus=3D{} cpu_affinity=3D{0-127}
-(XEN)     No periodic timer
-(XEN)     VCPU3: CPU5 [has=3DF] flags=3D1 poll=3D0 upcall_pend =3D 00, up=
-call_mask =3D 00
-dirty_cpus=3D{} cpu_affinity=3D{0-127}
-(XEN)     No periodic timer
-(XEN)     VCPU4: CPU6 [has=3DF] flags=3D1 poll=3D28 upcall_pend =3D 01, u=
-pcall_mask =3D 01
-dirty_cpus=3D{} cpu_affinity=3D{0-127}
-(XEN)     No periodic timer
-(XEN)     VCPU5: CPU7 [has=3DF] flags=3D1 poll=3D0 upcall_pend =3D 00, up=
-call_mask =3D 00
-dirty_cpus=3D{7} cpu_affinity=3D{0-127}
-(XEN)     No periodic timer
-(XEN)     VCPU6: CPU0 [has=3DF] flags=3D1 poll=3D40 upcall_pend =3D 01, u=
-pcall_mask =3D 01
-dirty_cpus=3D{} cpu_affinity=3D{0-127}
-(XEN)     No periodic timer
-(XEN)     VCPU7: CPU6 [has=3DT] flags=3D0 poll=3D0 upcall_pend =3D 00, up=
-call_mask =3D 01
-dirty_cpus=3D{6} cpu_affinity=3D{0-127}
-(XEN)     No periodic timer
-(XEN) Notifying guest 0:0 (virq 1, port 5, stat 0/0/0)
-(XEN) Notifying guest 0:1 (virq 1, port 11, stat 0/0/0)
-(XEN) Notifying guest 0:2 (virq 1, port 17, stat 0/0/0)
-(XEN) Notifying guest 0:3 (virq 1, port 23, stat 0/0/0)
-(XEN) Notifying guest 0:4 (virq 1, port 29, stat 0/0/0)
-(XEN) Notifying guest 0:5 (virq 1, port 35, stat 0/0/0)
-(XEN) Notifying guest 0:6 (virq 1, port 41, stat 0/0/0)
-(XEN) Notifying guest 0:7 (virq 1, port 47, stat 0/0/0)
-(XEN) Notifying guest 1:0 (virq 1, port 7, stat 0/0/-1)
-(XEN) Notifying guest 1:1 (virq 1, port 13, stat 0/0/-1)
-(XEN) Notifying guest 1:2 (virq 1, port 19, stat 0/0/0)
-(XEN) Notifying guest 1:3 (virq 1, port 25, stat 0/0/0)
-(XEN) Notifying guest 1:4 (virq 1, port 31, stat 0/0/-1)
-(XEN) Notifying guest 1:5 (virq 1, port 37, stat 0/0/0)
-(XEN) Notifying guest 1:6 (virq 1, port 43, stat 0/0/-1)
-(XEN) Notifying guest 1:7 (virq 1, port 49, stat 0/0/0)
-
-When the guest was unresponsive the console would still show:
-[10174.372092] INFO: rcu_sched detected stalls on CPUs/tasks: { 0 1} (det=
-ected
-by 4, t=3D15002 jiffies)
-[10284.448089] INFO: rcu_bh detected stalls on CPUs/tasks: { 0 1 4 6} (de=
-tected
-by 5, t=3D15004 jiffies)
-
-in a repeating pattern. So I take the above as cpus 1,4 and 6 are polling=
-=2E From
-the dump and the content of lock_spinners I get:
-
-cpu 0 and 1 -> ffff8803bfc13700 (which is runqueue[0] and is unlocked aga=
-in)
-cpu 4 and 6 -> ffffffff81f15ef0 (which is blkif_io_lock and is locked)
-
-Backtraces would be somewhat inconsistent (as always). Note, I should men=
-tion
-that I still had a kernel with my patch applied on that guest. That chang=
-es
-things a bit (actually it takes a bit longer to hang but again that might=
- be
-just a matter of timing). The strange lock state of 2 spinners on an unlo=
-cked
-lock remains the same with or without it.
-
-One question about the patch actually, would anybody think that there cou=
-ld be a
-case where the unlocking cpu has itself on the spinners list? I did not t=
-hink so
-but that might be wrong.
-> =20
-> The IRQ handler for the spinlock evtchn in Linux is:
->         static irqreturn_t dummy_handler(int irq, void *dev_id)
->         {
->                 BUG();
->                 return IRQ_HANDLED;
->         }
->        =20
-> and right after we register it:
->                 disable_irq(irq); /* make sure it's never delivered */
->=20
-> The is no enable -- ignoring bugs of which there have been couple of
-> instances, but those trigger the BUG() so are pretty obvious.
->=20
-> Ian.
->=20
->=20
-
-
-
-
-
---------------enigDCF9146FEFDB17A1136CD1F0
-Content-Type: application/pgp-signature; name="signature.asc"
-Content-Description: OpenPGP digital signature
-Content-Disposition: attachment; filename="signature.asc"
-
------BEGIN PGP SIGNATURE-----
-Version: GnuPG v1.4.11 (GNU/Linux)
-Comment: Using GnuPG with Mozilla - http://www.enigmail.net/
-
-iQIcBAEBCgAGBQJQfs0GAAoJEOhnXe7L7s6jwXUQAL5NF6D2cs6XlFgWJ7CjAZtL
-jJCCkonPut/ZJG081Jb0F8ZOx8dbHame2/ypTNPghZVNnfWMwPR9Niy99Jk4l2sm
-H2jMJ2lAfYt2cHHI6T31pbcrO5JJ5aYrRn3A6CS8LIiTSY3gc0CGgIVWU5FWFwGJ
-czSTqV9Wk7cMIEkdQOSnCotBQ942wa9tI0otMv8RUMBfdfUa89DmuMh571AXLu9p
-x1KGfwNRo7m6S/1SvO5GnA0lUGueC86deHH+zCRPq003LNIHZR55H/FRwMo4wZxE
-i5UjUkiVaZdi4DHawVgfWjyVx5BPfLVBAmKCTu5PRcVIF2wv9PXEKXGFtu2uAte0
-0qvaav7PIEvAkBlFH4iaXkvLlUEoBTB3OUhxz46WcdzuM09D4m2WqpckJezsw+pP
-zC2wiw5H+D4KCqGaRLXIc+zidBbzE7C2Y+SJmp3QWO1174VKOwnI0hsVD8uaky/7
-6OcyktOX3kf9Hs+Cpc1XneGYWLZmE8v5jfz4JTiVq1YQs35deHK6tvDLaMBrnSk5
-1ZW4EAGMSVTk11BxOYlfOqwz6YRmm829xKM/j96zbOeqVjU70fs1ZfmQfSQeyYkK
-rDxo4UagRdLcxFlNlvFVABP922oZJe0sVuyJXyK13xc76bjDSeGBpp/O3DWuTXj5
-e+NdMunsg2owKoGESWjB
-=JD2M
------END PGP SIGNATURE-----
-
---------------enigDCF9146FEFDB17A1136CD1F0--
-
-
---===============6214944843867296276==
-Content-Type: text/plain; charset="us-ascii"
-MIME-Version: 1.0
-Content-Transfer-Encoding: 7bit
-Content-Disposition: inline
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
---===============6214944843867296276==--
-
-
diff --git a/test/corpus/<507ED038.8000806@citrix.com> b/test/corpus/<507ED038.8000806@citrix.com>
deleted file mode 100644 (file)
index 25b4220..0000000
+++ /dev/null
@@ -1,633 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Oct 17 16:39:40 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 17 Oct 2012 16:39:40 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TOViW-0003ki-Dy
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 17 Oct 2012 16:39:40 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TOVea-0006bk-MA; Wed, 17 Oct 2012 15:35:28 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Andrew.Cooper3@citrix.com>) id 1TOVeY-0006bc-4H
-       for xen-devel@lists.xen.org; Wed, 17 Oct 2012 15:35:26 +0000
-Received: from [85.158.143.99:26968] by server-2.bemta-4.messagelabs.com id
-       00/8E-22268-D30DE705; Wed, 17 Oct 2012 15:35:25 +0000
-X-Env-Sender: Andrew.Cooper3@citrix.com
-X-Msg-Ref: server-6.tower-216.messagelabs.com!1350488121!27502628!1
-X-Originating-IP: [66.165.176.63]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyODMwNDk=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 18019 invoked from network); 17 Oct 2012 15:35:23 -0000
-Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
-       by server-6.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
-       17 Oct 2012 15:35:23 -0000
-X-IronPort-AV: E=Sophos;i="4.80,601,1344211200"; 
-       d="scan'208,217";a="211577252"
-Received: from ftlpmailmx01.citrite.net ([10.13.107.65])
-       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       17 Oct 2012 15:35:21 +0000
-Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
-       (10.13.107.65) with Microsoft SMTP Server id 8.3.279.1;
-       Wed, 17 Oct 2012 11:35:20 -0400
-Received: from andrewcoop.uk.xensource.com ([10.80.2.18])      by
-       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
-       <andrew.cooper3@citrix.com>)    id 1TOVeS-0001Vl-9u;
-       Wed, 17 Oct 2012 16:35:20 +0100
-Message-ID: <507ED038.8000806@citrix.com>
-Date: Wed, 17 Oct 2012 16:35:20 +0100
-From: Andrew Cooper <andrew.cooper3@citrix.com>
-User-Agent: Mozilla/5.0 (X11; Linux x86_64;
-       rv:16.0) Gecko/20121011 Thunderbird/16.0.1
-MIME-Version: 1.0
-To: Stefan Bader <stefan.bader@canonical.com>
-References: <1350479456-4007-1-git-send-email-stefan.bader@canonical.com>
-       <507EB27D.8050308@citrix.com>
-       <1350482118.2460.74.camel@zakaz.uk.xensource.com>
-       <507ECD06.2050407@canonical.com>
-In-Reply-To: <507ECD06.2050407@canonical.com>
-X-Enigmail-Version: 1.4.5
-Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
-       Ian Campbell <Ian.Campbell@citrix.com>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: multipart/mixed; boundary="===============6179704354617584911=="
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.6 required=5.0 tests=BAYES_00,HTML_MESSAGE,
-       RCVD_IN_DNSWL_MED,RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham
-       version=3.3.1
-Subject: Re: [Xen-devel] Xen PVM: Strange lockups when running PostgreSQL
- load
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
---===============6179704354617584911==
-Content-Type: multipart/alternative;
-       boundary="------------030607010300050505080009"
-
---------------030607010300050505080009
-Content-Type: text/plain; charset="UTF-8"
-Content-Transfer-Encoding: 7bit
-
-
-On 17/10/12 16:21, Stefan Bader wrote:
-> On 17.10.2012 15:55, Ian Campbell wrote:
->> On Wed, 2012-10-17 at 14:28 +0100, Andrew Cooper wrote:
->>> In our case, certain processes were locking up, and it turned out that
->>> the kernel was issuing SCHOP_poll hypercalls (same the stack trace on
->>> your launchpad ticket) on its own spinlock IPI event channel
->>> (understandable, as its a spinlock), but with the event channel
->>> masked, so it would never wake up from the poll.
->>
->> I think (but you might want to check) that SCHEDOP_poll works (or is
->> supposed to work!) regardless of whether the specific evtchn you ask for
->> is masked or not.
->
-> I was assuming it to be supposed to work at least in Xen 4.1.2. Or at
-least if
-> it did not I would hope to catch VCPUs rather sitting on the hypercall
-than
-> doing nothing. Of course I cannot say how reliable information in
-crash is as
-> this is something new to do after Daniel fixed crash.
->
->>
->> The Linux PV spinlock implementation takes advantage of this because it
->> never wants to take a real interrupt from the spinlock poller evtchn.
->
-> Right, I probably should have realized that. Though I guess it is still
-> interesting to see whether the channel is pending.
->
-> So when just recreating, I got the q and e info which is (assuming the
-guest
-> domain is enough):
->
-> (XEN) Event channel information for domain 1:
-> (XEN) Polling vCPUs: {1,4,6}
-> (XEN) port [p/m]
-> (XEN) 1 [0/0]: s=3 n=0 d=0 p=68 x=0
-> (XEN) 2 [1/0]: s=3 n=0 d=0 p=69 x=0
-> (XEN) 3 [1/0]: s=5 n=0 v=0 x=0
-> (XEN) 4 [1/1]: s=6 n=0 x=0
-> (XEN) 5 [1/0]: s=6 n=0 x=0
-> (XEN) 6 [0/0]: s=6 n=0 x=0
-> (XEN) 7 [0/0]: s=5 n=0 v=1 x=0
-> (XEN) 8 [0/0]: s=6 n=0 x=0
-> (XEN) 9 [1/0]: s=5 n=1 v=0 x=0
-> (XEN) 10 [0/1]: s=6 n=1 x=0
-> (XEN) 11 [1/0]: s=6 n=1 x=0
-> (XEN) 12 [0/0]: s=6 n=1 x=0
-> (XEN) 13 [0/0]: s=5 n=1 v=1 x=0
-> (XEN) 14 [0/0]: s=6 n=1 x=0
-> (XEN) 15 [0/0]: s=5 n=2 v=0 x=0
-> (XEN) 16 [1/1]: s=6 n=2 x=0
-> (XEN) 17 [0/0]: s=6 n=2 x=0
-> (XEN) 18 [0/0]: s=6 n=2 x=0
-> (XEN) 19 [0/0]: s=5 n=2 v=1 x=0
-> (XEN) 20 [0/0]: s=6 n=2 x=0
-> (XEN) 21 [0/0]: s=5 n=3 v=0 x=0
-> (XEN) 22 [1/1]: s=6 n=3 x=0
-> (XEN) 23 [0/0]: s=6 n=3 x=0
-> (XEN) 24 [0/0]: s=6 n=3 x=0
-> (XEN) 25 [0/0]: s=5 n=3 v=1 x=0
-> (XEN) 26 [0/0]: s=6 n=3 x=0
-> (XEN) 27 [1/0]: s=5 n=4 v=0 x=0
-> (XEN) 28 [0/1]: s=6 n=4 x=0
-> (XEN) 29 [1/0]: s=6 n=4 x=0
-> (XEN) 30 [0/0]: s=6 n=4 x=0
-> (XEN) 31 [0/0]: s=5 n=4 v=1 x=0
-> (XEN) 32 [0/0]: s=6 n=4 x=0
-> (XEN) 33 [0/0]: s=5 n=5 v=0 x=0
-> (XEN) 34 [0/1]: s=6 n=5 x=0
-> (XEN) 35 [0/0]: s=6 n=5 x=0
-> (XEN) 36 [0/0]: s=6 n=5 x=0
-> (XEN) 37 [0/0]: s=5 n=5 v=1 x=0
-> (XEN) 38 [0/0]: s=6 n=5 x=0
-> (XEN) 39 [1/0]: s=5 n=6 v=0 x=0
-> (XEN) 40 [0/1]: s=6 n=6 x=0
-> (XEN) 41 [1/0]: s=6 n=6 x=0
-> (XEN) 42 [0/0]: s=6 n=6 x=0
-> (XEN) 43 [0/0]: s=5 n=6 v=1 x=0
-> (XEN) 44 [0/0]: s=6 n=6 x=0event channel
-> (XEN) 45 [0/0]: s=5 n=7 v=0 x=0
-> (XEN) 46 [1/1]: s=6 n=7 x=0
-> (XEN) 47 [0/0]: s=6 n=7 x=0
-> (XEN) 48 [0/0]: s=6 n=7 x=0
-> (XEN) 49 [0/0]: s=5 n=7 v=1 x=0
-> (XEN) 50 [0/0]: s=6 n=7 x=0
-> (XEN) 51 [0/0]: s=3 n=7 d=0 p=70 x=0
-> (XEN) 52 [0/0]: s=3 n=0 d=0 p=71 x=0
-> (XEN) 53 [0/0]: s=3 n=0 d=0 p=72 x=0
-> (XEN) 54 [0/0]: s=3 n=0 d=0 p=73 x=0
-> (XEN) 55 [1/0]: s=3 n=0 d=0 p=74 x=0
->
-> [maybe someone can tell me what the s,n,d,p and x mean]
-
-s = state.  0 = free, 1 = reserved, 2 = unbound, 3 = inter-domain, 4 =
-pirq, 5 = virq, 6 = ipi
-n = target vcpu id to notify
-x = boolean indicating whether xen is a consumer of the event channel or
-not.
-
-d = target domain (when appropriate)  In this case, p is the target port.
-
->
->
-> (XEN) Rangesets belonging to domain 1:
-> (XEN) I/O Ports { }
-> (XEN) Interrupts { }
-> (XEN) I/O Memory { }
-> (XEN) Memory pages belonging to domain 1:
-> (XEN) DomPage list too long to display
-> (XEN) XenPage 00000000008000ab: caf=c000000000000002, taf=7400000000000002
-> (XEN) XenPage 00000000008000aa: caf=c000000000000002, taf=7400000000000002
-> (XEN) XenPage 00000000008000a9: caf=c000000000000002, taf=7400000000000002
-> (XEN) XenPage 00000000008000a8: caf=c000000000000001, taf=7400000000000001
-> (XEN) XenPage 00000000000dfae4: caf=c000000000000002, taf=7400000000000002
-> (XEN) VCPU information and callbacks for domain 1:
-> (XEN) VCPU0: CPU3 [has=T] flags=0 poll=0 upcall_pend = 01, upcall_mask
-= 01
-> dirty_cpus={3} cpu_affinity={0-127}
-> (XEN) No periodic timer
-> (XEN) VCPU1: CPU7 [has=F] flags=1 poll=10 upcall_pend = 01,
-upcall_mask = 01
-> dirty_cpus={} cpu_affinity={0-127}
-> (XEN) No periodic timer
-> (XEN) VCPU2: CPU4 [has=F] flags=1 poll=0 upcall_pend = 00, upcall_mask
-= 00
-> dirty_cpus={} cpu_affinity={0-127}
-> (XEN) No periodic timer
-> (XEN) VCPU3: CPU5 [has=F] flags=1 poll=0 upcall_pend = 00, upcall_mask
-= 00
-> dirty_cpus={} cpu_affinity={0-127}
-> (XEN) No periodic timer
-> (XEN) VCPU4: CPU6 [has=F] flags=1 poll=28 upcall_pend = 01,
-upcall_mask = 01
-> dirty_cpus={} cpu_affinity={0-127}
-> (XEN) No periodic timer
-> (XEN) VCPU5: CPU7 [has=F] flags=1 poll=0 upcall_pend = 00, upcall_mask
-= 00
-> dirty_cpus={7} cpu_affinity={0-127}
-> (XEN) No periodic timer
-> (XEN) VCPU6: CPU0 [has=F] flags=1 poll=40 upcall_pend = 01,
-upcall_mask = 01
-> dirty_cpus={} cpu_affinity={0-127}
-> (XEN) No periodic timer
-> (XEN) VCPU7: CPU6 [has=T] flags=0 poll=0 upcall_pend = 00, upcall_mask
-= 01
-> dirty_cpus={6} cpu_affinity={0-127}
-> (XEN) No periodic timer
-> (XEN) Notifying guest 0:0 (virq 1, port 5, stat 0/0/0)
-> (XEN) Notifying guest 0:1 (virq 1, port 11, stat 0/0/0)
-> (XEN) Notifying guest 0:2 (virq 1, port 17, stat 0/0/0)
-> (XEN) Notifying guest 0:3 (virq 1, port 23, stat 0/0/0)
-> (XEN) Notifying guest 0:4 (virq 1, port 29, stat 0/0/0)
-> (XEN) Notifying guest 0:5 (virq 1, port 35, stat 0/0/0)
-> (XEN) Notifying guest 0:6 (virq 1, port 41, stat 0/0/0)
-> (XEN) Notifying guest 0:7 (virq 1, port 47, stat 0/0/0)
-> (XEN) Notifying guest 1:0 (virq 1, port 7, stat 0/0/-1)
-> (XEN) Notifying guest 1:1 (virq 1, port 13, stat 0/0/-1)
-> (XEN) Notifying guest 1:2 (virq 1, port 19, stat 0/0/0)
-> (XEN) Notifying guest 1:3 (virq 1, port 25, stat 0/0/0)
-> (XEN) Notifying guest 1:4 (virq 1, port 31, stat 0/0/-1)
-> (XEN) Notifying guest 1:5 (virq 1, port 37, stat 0/0/0)
-> (XEN) Notifying guest 1:6 (virq 1, port 43, stat 0/0/-1)
-> (XEN) Notifying guest 1:7 (virq 1, port 49, stat 0/0/0)
-
-So in this case, vcpu 1 is in a poll, on port 10, which is an IPI event
-channel for itself.
-
-Same for vcpu 4, except it is on port 28, and for vcpu 6 on port 60.
-
-In each case, the event channels are masked (no surprise given the
-conversation so far on this thread), and have no pending events. 
-Therefore, I believe we are looking at the same bug.
-
-
->
->
-> When the guest was unresponsive the console would still show:
-> [10174.372092] INFO: rcu_sched detected stalls on CPUs/tasks: { 0 1}
-(detected
-> by 4, t=15002 jiffies)
-> [10284.448089] INFO: rcu_bh detected stalls on CPUs/tasks: { 0 1 4 6}
-(detected
-> by 5, t=15004 jiffies)
->
-> in a repeating pattern. So I take the above as cpus 1,4 and 6 are
-polling. From
-> the dump and the content of lock_spinners I get:
->
-> cpu 0 and 1 -> ffff8803bfc13700 (which is runqueue[0] and is unlocked
-again)
-> cpu 4 and 6 -> ffffffff81f15ef0 (which is blkif_io_lock and is locked)
-
-I wonder if there is possibly a race condition between notifying that a
-lock has been unlocked, and another vcpu trying to poll after deciding
-that the lock is locked.
-
-The other option is that there is a bug in working out which event
-channel to notify when a lock is unlocked.
-
-~Andrew
-
->
->
-> Backtraces would be somewhat inconsistent (as always). Note, I should
-mention
-> that I still had a kernel with my patch applied on that guest. That
-changes
-> things a bit (actually it takes a bit longer to hang but again that
-might be
-> just a matter of timing). The strange lock state of 2 spinners on an
-unlocked
-> lock remains the same with or without it.
->
-> One question about the patch actually, would anybody think that there
-could be a
-> case where the unlocking cpu has itself on the spinners list? I did
-not think so
-> but that might be wrong.
->>
->> The IRQ handler for the spinlock evtchn in Linux is:
->> static irqreturn_t dummy_handler(int irq, void *dev_id)
->> {
->> BUG();
->> return IRQ_HANDLED;
->> }
->>
->> and right after we register it:
->> disable_irq(irq); /* make sure it's never delivered */
->>
->> The is no enable -- ignoring bugs of which there have been couple of
->> instances, but those trigger the BUG() so are pretty obvious.
->>
->> Ian.
->>
->>
->
->
->
->
-
--- 
-Andrew Cooper - Dom0 Kernel Engineer, Citrix XenServer
-T: +44 (0)1223 225 900, http://www.citrix.com
-
-
---------------030607010300050505080009
-Content-Type: text/html; charset="UTF-8"
-Content-Transfer-Encoding: 8bit
-
-<html>
-  <head>
-    <meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
-  </head>
-  <body bgcolor="#FFFFFF" text="#000000">
-    <br>
-    On 17/10/12 16:21, Stefan Bader wrote:<br>
-    <span style="white-space: pre;">&gt; On 17.10.2012 15:55, Ian
-      Campbell wrote:<br>
-      &gt;&gt; On Wed, 2012-10-17 at 14:28 +0100, Andrew Cooper wrote:<br>
-      &gt;&gt;&gt; In our case, certain processes were locking up, and
-      it turned out that<br>
-      &gt;&gt;&gt; the kernel was issuing SCHOP_poll hypercalls (same
-      the stack trace on<br>
-      &gt;&gt;&gt; your launchpad ticket) on its own spinlock IPI event
-      channel<br>
-      &gt;&gt;&gt; (understandable, as its a spinlock), but with the
-      event channel<br>
-      &gt;&gt;&gt; masked, so it would never wake up from the poll. <br>
-      &gt;&gt;<br>
-      &gt;&gt; I think (but you might want to check) that SCHEDOP_poll
-      works (or is<br>
-      &gt;&gt; supposed to work!) regardless of whether the specific
-      evtchn you ask for<br>
-      &gt;&gt; is masked or not.<br>
-      &gt;<br>
-      &gt; I was assuming it to be supposed to work at least in Xen
-      4.1.2. Or at least if<br>
-      &gt; it did not I would hope to catch VCPUs rather sitting on the
-      hypercall than<br>
-      &gt; doing nothing. Of course I cannot say how reliable
-      information in crash is as<br>
-      &gt; this is something new to do after Daniel fixed crash.<br>
-      &gt;<br>
-      &gt;&gt;<br>
-      &gt;&gt; The Linux PV spinlock implementation takes advantage of
-      this because it<br>
-      &gt;&gt; never wants to take a real interrupt from the spinlock
-      poller evtchn.<br>
-      &gt;<br>
-      &gt; Right, I probably should have realized that. Though I guess
-      it is still<br>
-      &gt; interesting to see whether the channel is pending.<br>
-      &gt;<br>
-      &gt; So when just recreating, I got the q and e info which is
-      (assuming the guest<br>
-      &gt; domain is enough):<br>
-      &gt;<br>
-      &gt; (XEN) Event channel information for domain 1:<br>
-      &gt; (XEN) Polling vCPUs: {1,4,6}<br>
-      &gt; (XEN) port [p/m]<br>
-      &gt; (XEN) 1 [0/0]: s=3 n=0 d=0 p=68 x=0<br>
-      &gt; (XEN) 2 [1/0]: s=3 n=0 d=0 p=69 x=0<br>
-      &gt; (XEN) 3 [1/0]: s=5 n=0 v=0 x=0<br>
-      &gt; (XEN) 4 [1/1]: s=6 n=0 x=0<br>
-      &gt; (XEN) 5 [1/0]: s=6 n=0 x=0<br>
-      &gt; (XEN) 6 [0/0]: s=6 n=0 x=0<br>
-      &gt; (XEN) 7 [0/0]: s=5 n=0 v=1 x=0<br>
-      &gt; (XEN) 8 [0/0]: s=6 n=0 x=0<br>
-      &gt; (XEN) 9 [1/0]: s=5 n=1 v=0 x=0<br>
-      &gt; (XEN) 10 [0/1]: s=6 n=1 x=0<br>
-      &gt; (XEN) 11 [1/0]: s=6 n=1 x=0<br>
-      &gt; (XEN) 12 [0/0]: s=6 n=1 x=0<br>
-      &gt; (XEN) 13 [0/0]: s=5 n=1 v=1 x=0<br>
-      &gt; (XEN) 14 [0/0]: s=6 n=1 x=0<br>
-      &gt; (XEN) 15 [0/0]: s=5 n=2 v=0 x=0<br>
-      &gt; (XEN) 16 [1/1]: s=6 n=2 x=0<br>
-      &gt; (XEN) 17 [0/0]: s=6 n=2 x=0<br>
-      &gt; (XEN) 18 [0/0]: s=6 n=2 x=0<br>
-      &gt; (XEN) 19 [0/0]: s=5 n=2 v=1 x=0<br>
-      &gt; (XEN) 20 [0/0]: s=6 n=2 x=0<br>
-      &gt; (XEN) 21 [0/0]: s=5 n=3 v=0 x=0<br>
-      &gt; (XEN) 22 [1/1]: s=6 n=3 x=0<br>
-      &gt; (XEN) 23 [0/0]: s=6 n=3 x=0<br>
-      &gt; (XEN) 24 [0/0]: s=6 n=3 x=0<br>
-      &gt; (XEN) 25 [0/0]: s=5 n=3 v=1 x=0<br>
-      &gt; (XEN) 26 [0/0]: s=6 n=3 x=0<br>
-      &gt; (XEN) 27 [1/0]: s=5 n=4 v=0 x=0<br>
-      &gt; (XEN) 28 [0/1]: s=6 n=4 x=0<br>
-      &gt; (XEN) 29 [1/0]: s=6 n=4 x=0<br>
-      &gt; (XEN) 30 [0/0]: s=6 n=4 x=0<br>
-      &gt; (XEN) 31 [0/0]: s=5 n=4 v=1 x=0<br>
-      &gt; (XEN) 32 [0/0]: s=6 n=4 x=0<br>
-      &gt; (XEN) 33 [0/0]: s=5 n=5 v=0 x=0<br>
-      &gt; (XEN) 34 [0/1]: s=6 n=5 x=0<br>
-      &gt; (XEN) 35 [0/0]: s=6 n=5 x=0<br>
-      &gt; (XEN) 36 [0/0]: s=6 n=5 x=0<br>
-      &gt; (XEN) 37 [0/0]: s=5 n=5 v=1 x=0<br>
-      &gt; (XEN) 38 [0/0]: s=6 n=5 x=0<br>
-      &gt; (XEN) 39 [1/0]: s=5 n=6 v=0 x=0<br>
-      &gt; (XEN) 40 [0/1]: s=6 n=6 x=0<br>
-      &gt; (XEN) 41 [1/0]: s=6 n=6 x=0<br>
-      &gt; (XEN) 42 [0/0]: s=6 n=6 x=0<br>
-      &gt; (XEN) 43 [0/0]: s=5 n=6 v=1 x=0<br>
-      &gt; (XEN) 44 [0/0]: s=6 n=6 x=0event channel<br>
-      &gt; (XEN) 45 [0/0]: s=5 n=7 v=0 x=0<br>
-      &gt; (XEN) 46 [1/1]: s=6 n=7 x=0<br>
-      &gt; (XEN) 47 [0/0]: s=6 n=7 x=0<br>
-      &gt; (XEN) 48 [0/0]: s=6 n=7 x=0<br>
-      &gt; (XEN) 49 [0/0]: s=5 n=7 v=1 x=0<br>
-      &gt; (XEN) 50 [0/0]: s=6 n=7 x=0<br>
-      &gt; (XEN) 51 [0/0]: s=3 n=7 d=0 p=70 x=0<br>
-      &gt; (XEN) 52 [0/0]: s=3 n=0 d=0 p=71 x=0<br>
-      &gt; (XEN) 53 [0/0]: s=3 n=0 d=0 p=72 x=0<br>
-      &gt; (XEN) 54 [0/0]: s=3 n=0 d=0 p=73 x=0<br>
-      &gt; (XEN) 55 [1/0]: s=3 n=0 d=0 p=74 x=0<br>
-      &gt;<br>
-      &gt; [maybe someone can tell me what the s,n,d,p and x mean]</span><br>
-    <br>
-    s = state.  0 = free, 1 = reserved, 2 = unbound, 3 = inter-domain, 4
-    = pirq, 5 = virq, 6 = ipi<br>
-    n = target vcpu id to notify<br>
-    x = boolean indicating whether xen is a consumer of the event
-    channel or not.<br>
-    <br>
-    d = target domain (when appropriate)  In this case, p is the target
-    port.<br>
-    <br>
-    <span style="white-space: pre;">&gt;<br>
-      &gt;<br>
-      &gt; (XEN) Rangesets belonging to domain 1:<br>
-      &gt; (XEN) I/O Ports { }<br>
-      &gt; (XEN) Interrupts { }<br>
-      &gt; (XEN) I/O Memory { }<br>
-      &gt; (XEN) Memory pages belonging to domain 1:<br>
-      &gt; (XEN) DomPage list too long to display<br>
-      &gt; (XEN) XenPage 00000000008000ab: caf=c000000000000002,
-      taf=7400000000000002<br>
-      &gt; (XEN) XenPage 00000000008000aa: caf=c000000000000002,
-      taf=7400000000000002<br>
-      &gt; (XEN) XenPage 00000000008000a9: caf=c000000000000002,
-      taf=7400000000000002<br>
-      &gt; (XEN) XenPage 00000000008000a8: caf=c000000000000001,
-      taf=7400000000000001<br>
-      &gt; (XEN) XenPage 00000000000dfae4: caf=c000000000000002,
-      taf=7400000000000002<br>
-      &gt; (XEN) VCPU information and callbacks for domain 1:<br>
-      &gt; (XEN) VCPU0: CPU3 [has=T] flags=0 poll=0 upcall_pend = 01,
-      upcall_mask = 01<br>
-      &gt; dirty_cpus={3} cpu_affinity={0-127}<br>
-      &gt; (XEN) No periodic timer<br>
-      &gt; (XEN) VCPU1: CPU7 [has=F] flags=1 poll=10 upcall_pend = 01,
-      upcall_mask = 01<br>
-      &gt; dirty_cpus={} cpu_affinity={0-127}<br>
-      &gt; (XEN) No periodic timer<br>
-      &gt; (XEN) VCPU2: CPU4 [has=F] flags=1 poll=0 upcall_pend = 00,
-      upcall_mask = 00<br>
-      &gt; dirty_cpus={} cpu_affinity={0-127}<br>
-      &gt; (XEN) No periodic timer<br>
-      &gt; (XEN) VCPU3: CPU5 [has=F] flags=1 poll=0 upcall_pend = 00,
-      upcall_mask = 00<br>
-      &gt; dirty_cpus={} cpu_affinity={0-127}<br>
-      &gt; (XEN) No periodic timer<br>
-      &gt; (XEN) VCPU4: CPU6 [has=F] flags=1 poll=28 upcall_pend = 01,
-      upcall_mask = 01<br>
-      &gt; dirty_cpus={} cpu_affinity={0-127}<br>
-      &gt; (XEN) No periodic timer<br>
-      &gt; (XEN) VCPU5: CPU7 [has=F] flags=1 poll=0 upcall_pend = 00,
-      upcall_mask = 00<br>
-      &gt; dirty_cpus={7} cpu_affinity={0-127}<br>
-      &gt; (XEN) No periodic timer<br>
-      &gt; (XEN) VCPU6: CPU0 [has=F] flags=1 poll=40 upcall_pend = 01,
-      upcall_mask = 01<br>
-      &gt; dirty_cpus={} cpu_affinity={0-127}<br>
-      &gt; (XEN) No periodic timer<br>
-      &gt; (XEN) VCPU7: CPU6 [has=T] flags=0 poll=0 upcall_pend = 00,
-      upcall_mask = 01<br>
-      &gt; dirty_cpus={6} cpu_affinity={0-127}<br>
-      &gt; (XEN) No periodic timer<br>
-      &gt; (XEN) Notifying guest 0:0 (virq 1, port 5, stat 0/0/0)<br>
-      &gt; (XEN) Notifying guest 0:1 (virq 1, port 11, stat 0/0/0)<br>
-      &gt; (XEN) Notifying guest 0:2 (virq 1, port 17, stat 0/0/0)<br>
-      &gt; (XEN) Notifying guest 0:3 (virq 1, port 23, stat 0/0/0)<br>
-      &gt; (XEN) Notifying guest 0:4 (virq 1, port 29, stat 0/0/0)<br>
-      &gt; (XEN) Notifying guest 0:5 (virq 1, port 35, stat 0/0/0)<br>
-      &gt; (XEN) Notifying guest 0:6 (virq 1, port 41, stat 0/0/0)<br>
-      &gt; (XEN) Notifying guest 0:7 (virq 1, port 47, stat 0/0/0)<br>
-      &gt; (XEN) Notifying guest 1:0 (virq 1, port 7, stat 0/0/-1)<br>
-      &gt; (XEN) Notifying guest 1:1 (virq 1, port 13, stat 0/0/-1)<br>
-      &gt; (XEN) Notifying guest 1:2 (virq 1, port 19, stat 0/0/0)<br>
-      &gt; (XEN) Notifying guest 1:3 (virq 1, port 25, stat 0/0/0)<br>
-      &gt; (XEN) Notifying guest 1:4 (virq 1, port 31, stat 0/0/-1)<br>
-      &gt; (XEN) Notifying guest 1:5 (virq 1, port 37, stat 0/0/0)<br>
-      &gt; (XEN) Notifying guest 1:6 (virq 1, port 43, stat 0/0/-1)<br>
-      &gt; (XEN) Notifying guest 1:7 (virq 1, port 49, stat 0/0/0)</span><br>
-    <br>
-    So in this case, vcpu 1 is in a poll, on port 10, which is an IPI
-    event channel for itself.<br>
-    <br>
-    Same for vcpu 4, except it is on port 28, and for vcpu 6 on port 60.<br>
-    <br>
-    In each case, the event channels are masked (no surprise given the
-    conversation so far on this thread), and have no pending events. 
-    Therefore, I believe we are looking at the same bug.<br>
-    <br>
-    <br>
-    <span style="white-space: pre;">&gt;<br>
-      &gt;<br>
-      &gt; When the guest was unresponsive the console would still show:<br>
-      &gt; [10174.372092] INFO: rcu_sched detected stalls on CPUs/tasks:
-      { 0 1} (detected<br>
-      &gt; by 4, t=15002 jiffies)<br>
-      &gt; [10284.448089] INFO: rcu_bh detected stalls on CPUs/tasks: {
-      0 1 4 6} (detected<br>
-      &gt; by 5, t=15004 jiffies)<br>
-      &gt;<br>
-      &gt; in a repeating pattern. So I take the above as cpus 1,4 and 6
-      are polling. From<br>
-      &gt; the dump and the content of lock_spinners I get:<br>
-      &gt;<br>
-      &gt; cpu 0 and 1 -&gt; ffff8803bfc13700 (which is runqueue[0] and
-      is unlocked again)<br>
-      &gt; cpu 4 and 6 -&gt; ffffffff81f15ef0 (which is blkif_io_lock
-      and is locked)</span><br>
-    <br>
-    I wonder if there is possibly a race condition between notifying
-    that a lock has been unlocked, and another vcpu trying to poll after
-    deciding that the lock is locked.<br>
-    <br>
-    The other option is that there is a bug in working out which event
-    channel to notify when a lock is unlocked.<br>
-    <br>
-    ~Andrew<br>
-    <br>
-    <span style="white-space: pre;">&gt;<br>
-      &gt;<br>
-      &gt; Backtraces would be somewhat inconsistent (as always). Note,
-      I should mention<br>
-      &gt; that I still had a kernel with my patch applied on that
-      guest. That changes<br>
-      &gt; things a bit (actually it takes a bit longer to hang but
-      again that might be<br>
-      &gt; just a matter of timing). The strange lock state of 2
-      spinners on an unlocked<br>
-      &gt; lock remains the same with or without it.<br>
-      &gt;<br>
-      &gt; One question about the patch actually, would anybody think
-      that there could be a<br>
-      &gt; case where the unlocking cpu has itself on the spinners list?
-      I did not think so<br>
-      &gt; but that might be wrong.<br>
-      &gt;&gt; <br>
-      &gt;&gt; The IRQ handler for the spinlock evtchn in Linux is:<br>
-      &gt;&gt; static irqreturn_t dummy_handler(int irq, void *dev_id)<br>
-      &gt;&gt; {<br>
-      &gt;&gt; BUG();<br>
-      &gt;&gt; return IRQ_HANDLED;<br>
-      &gt;&gt; }<br>
-      &gt;&gt; <br>
-      &gt;&gt; and right after we register it:<br>
-      &gt;&gt; disable_irq(irq); /* make sure it's never delivered */<br>
-      &gt;&gt;<br>
-      &gt;&gt; The is no enable -- ignoring bugs of which there have
-      been couple of<br>
-      &gt;&gt; instances, but those trigger the BUG() so are pretty
-      obvious.<br>
-      &gt;&gt;<br>
-      &gt;&gt; Ian.<br>
-      &gt;&gt;<br>
-      &gt;&gt;<br>
-      &gt;<br>
-      &gt;<br>
-      &gt;<br>
-      &gt;</span><br>
-    <br>
-    -- <br>
-    Andrew Cooper - Dom0 Kernel Engineer, Citrix XenServer<br>
-    T: +44 (0)1223 225 900, <a class="moz-txt-link-freetext" href="http://www.citrix.com">http://www.citrix.com</a><br>
-    <br>
-  </body>
-</html>
-
---------------030607010300050505080009--
-
-
---===============6179704354617584911==
-Content-Type: text/plain; charset="us-ascii"
-MIME-Version: 1.0
-Content-Transfer-Encoding: 7bit
-Content-Disposition: inline
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
---===============6179704354617584911==--
-
-
diff --git a/test/corpus/<507EDC71.4040400@canonical.com> b/test/corpus/<507EDC71.4040400@canonical.com>
deleted file mode 100644 (file)
index b3a26f5..0000000
+++ /dev/null
@@ -1,268 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Oct 17 17:31:30 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 17 Oct 2012 17:31:30 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TOWWi-000427-6q
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 17 Oct 2012 17:31:30 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TOWT4-0000pa-8A; Wed, 17 Oct 2012 16:27:38 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <stefan.bader@canonical.com>) id 1TOWT2-0000pP-Fy
-       for xen-devel@lists.xen.org; Wed, 17 Oct 2012 16:27:36 +0000
-Received: from [85.158.143.35:31299] by server-1.bemta-4.messagelabs.com id
-       7D/7A-19134-77CDE705; Wed, 17 Oct 2012 16:27:35 +0000
-X-Env-Sender: stefan.bader@canonical.com
-X-Msg-Ref: server-2.tower-21.messagelabs.com!1350491254!4763853!1
-X-Originating-IP: [91.189.89.112]
-X-SpamReason: No, hits=0.0 required=7.0 tests=
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 11191 invoked from network); 17 Oct 2012 16:27:35 -0000
-Received: from youngberry.canonical.com (HELO youngberry.canonical.com)
-       (91.189.89.112) by server-2.tower-21.messagelabs.com with SMTP;
-       17 Oct 2012 16:27:35 -0000
-Received: from p5b2e42c0.dip.t-dialin.net ([91.46.66.192] helo=[192.168.2.5])
-       by youngberry.canonical.com with esmtpsa
-       (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71)
-       (envelope-from <stefan.bader@canonical.com>)
-       id 1TOWSy-0004fs-7w; Wed, 17 Oct 2012 16:27:32 +0000
-Message-ID: <507EDC71.4040400@canonical.com>
-Date: Wed, 17 Oct 2012 18:27:29 +0200
-From: Stefan Bader <stefan.bader@canonical.com>
-User-Agent: Mozilla/5.0 (X11; Linux x86_64;
-       rv:16.0) Gecko/20121011 Thunderbird/16.0.1
-MIME-Version: 1.0
-To: Andrew Cooper <andrew.cooper3@citrix.com>
-References: <1350479456-4007-1-git-send-email-stefan.bader@canonical.com>
-       <507EB27D.8050308@citrix.com>
-       <1350482118.2460.74.camel@zakaz.uk.xensource.com>
-       <507ECD06.2050407@canonical.com> <507ED038.8000806@citrix.com>
-In-Reply-To: <507ED038.8000806@citrix.com>
-X-Enigmail-Version: 1.4.5
-Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
-       Ian Campbell <Ian.Campbell@citrix.com>,
-       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: multipart/mixed; boundary="===============2837620664345663613=="
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.6 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] Xen PVM: Strange lockups when running PostgreSQL
- load
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-This is an OpenPGP/MIME signed message (RFC 2440 and 3156)
---===============2837620664345663613==
-Content-Type: multipart/signed; micalg=pgp-sha512;
- protocol="application/pgp-signature";
- boundary="------------enig2567AA1A474DF249DA5F091A"
-
-This is an OpenPGP/MIME signed message (RFC 2440 and 3156)
---------------enig2567AA1A474DF249DA5F091A
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: quoted-printable
-
-On 17.10.2012 17:35, Andrew Cooper wrote:
-
->> (XEN) Event channel information for domain 1:
->> (XEN) Polling vCPUs: {1,4,6}
->> (XEN) port [p/m]
->> (XEN) 4 [1/1]: s=3D6 n=3D0 x=3D0
->> (XEN) 10 [0/1]: s=3D6 n=3D1 x=3D0
->> (XEN) 28 [0/1]: s=3D6 n=3D4 x=3D0
->> (XEN) 40 [0/1]: s=3D6 n=3D6 x=3D0
->>
-> s =3D state.  0 =3D free, 1 =3D reserved, 2 =3D unbound, 3 =3D inter-do=
-main, 4 =3D
-> pirq, 5 =3D virq, 6 =3D ipi
-> n =3D target vcpu id to notify
-> x =3D boolean indicating whether xen is a consumer of the event channel=
- or
-> not.
->=20
-> d =3D target domain (when appropriate)  In this case, p is the target p=
-ort.
->=20
-
-Thanks (at least something learned today :)) One thing I noticed here, in=
- the
-event channel info above, pending is 0 for channel 10, 28 and 40 (and set=
- for 4
-which is the spinlock ipi for cpu 0). But in the VCPU info below (another=
-
-unknown: has=3DT and F) it says upcall_pend for all of them. Unfortunatel=
-y that
-might just mean that things change...
-
->> (XEN) VCPU0: CPU3 [has=3DT] flags=3D0 poll=3D0 upcall_pend =3D 01, upc=
-all_mask
-> =3D 01
->> dirty_cpus=3D{3} cpu_affinity=3D{0-127}
->> (XEN) No periodic timer
->> (XEN) VCPU1: CPU7 [has=3DF] flags=3D1 poll=3D10 upcall_pend =3D 01,
-> upcall_mask =3D 01
->> dirty_cpus=3D{} cpu_affinity=3D{0-127}
->> (XEN) No periodic timer
-
->> (XEN) VCPU4: CPU6 [has=3DF] flags=3D1 poll=3D28 upcall_pend =3D 01,
-> upcall_mask =3D 01
->> dirty_cpus=3D{} cpu_affinity=3D{0-127}
->> (XEN) No periodic timer
->> (XEN) VCPU6: CPU0 [has=3DF] flags=3D1 poll=3D40 upcall_pend =3D 01,
-> upcall_mask =3D 01
->> dirty_cpus=3D{} cpu_affinity=3D{0-127}
->> (XEN) No periodic timer
->=20
-> So in this case, vcpu 1 is in a poll, on port 10, which is an IPI event=
-
-> channel for itself.
->=20
-> Same for vcpu 4, except it is on port 28, and for vcpu 6 on port 60.
->=20
-
->=20
-> I wonder if there is possibly a race condition between notifying that a=
-
-> lock has been unlocked, and another vcpu trying to poll after deciding
-> that the lock is locked.
-
-There has to be something somehwere, I just cannot spot it. The unlocking=
- cpu
-will do a wmb() before setting the lock to 0, then a mb() and then check =
-for
-spinners. When failing the quick pack a locker will first set the lockspi=
-nner
-entry, then do a wmb() and increment the spinners count. After that it cl=
-ears
-the event pending and then checks lock again before actually going into p=
-oll.
-
->=20
-> The other option is that there is a bug in working out which event
-> channel to notify when a lock is unlocked.
-
-I had thought I saw one thing that I tried to fix with my patch. Another =
-train
-of thought would have been any other cpu grabbing the lock always as soon=
- as it
-gets released and so preventing any cpu in poll from success. But that wo=
-uld
-then show the lock as locked...
-
->=20
-> ~Andrew
->=20
->>
->>
->> Backtraces would be somewhat inconsistent (as always). Note, I should
-> mention
->> that I still had a kernel with my patch applied on that guest. That
-> changes
->> things a bit (actually it takes a bit longer to hang but again that
-> might be
->> just a matter of timing). The strange lock state of 2 spinners on an
-> unlocked
->> lock remains the same with or without it.
->>
->> One question about the patch actually, would anybody think that there
-> could be a
->> case where the unlocking cpu has itself on the spinners list? I did
-> not think so
->> but that might be wrong.
->>>
->>> The IRQ handler for the spinlock evtchn in Linux is:
->>> static irqreturn_t dummy_handler(int irq, void *dev_id)
->>> {
->>> BUG();
->>> return IRQ_HANDLED;
->>> }
->>>
->>> and right after we register it:
->>> disable_irq(irq); /* make sure it's never delivered */
->>>
->>> The is no enable -- ignoring bugs of which there have been couple of
->>> instances, but those trigger the BUG() so are pretty obvious.
->>>
->>> Ian.
->>>
->>>
->>
->>
->>
->>
->=20
->=20
->=20
-> _______________________________________________
-> Xen-devel mailing list
-> Xen-devel@lists.xen.org
-> http://lists.xen.org/xen-devel
->=20
-
-
-
---------------enig2567AA1A474DF249DA5F091A
-Content-Type: application/pgp-signature; name="signature.asc"
-Content-Description: OpenPGP digital signature
-Content-Disposition: attachment; filename="signature.asc"
-
------BEGIN PGP SIGNATURE-----
-Version: GnuPG v1.4.11 (GNU/Linux)
-Comment: Using GnuPG with Mozilla - http://www.enigmail.net/
-
-iQIcBAEBCgAGBQJQftxyAAoJEOhnXe7L7s6j3vsQAMcmgY1Ebao/FjiQQZhub8+y
-5LLEOO/DPPlmUICssoz9IKrN4ZOoPGGKSlsuWVIALvbl+DgT8wBLISEAvtcAcXnn
-k7JknLkO49vkgJgy0TstSn4jM3xo5HbyubaALQDrPXawVqFOz133t02b0LLDD3B5
-tZNqYxxWSByX/XYi1UJCQ1LeUdUqyK8luxtZsVL9KP2lTsYxfQOD7+QZ90fReALe
-fvht5N/Dm1RFPkcGdirbP9JlutjbfSsbPHmR5FvHyJ6eYw46tiIEcGXnp8cYOh6y
-pGi1SAAg/c2zOAytPibut2CDdpqwJVX7VzrJsjhj2lnVwvge6ADJS6tr7wgMMj5V
-7J/c1QeHj+u0Dkgz+UutgrHcXHyRwv2iLDq6PppjY5VjbPZlYU6Mhs8E3bzmZzBT
-t1LjGDj4LcoPtH2I3XEr4I5ivClFcLlvEDAVQ45iYy1fp4NxBykc0A0/TgwQ6NIS
-E+JSd4DZM5MDlftue4AelKb9/4lE6G/V+9o4SSSPDcDhJCKZO9pSDTUty9PHFwti
-96XCF0o2F2qH7aOI1UwFfimHGViZshHB0hvxtanoQPw0kulpxhKDUu1Q8CPnBTlm
-7zuKEHtNjf+hoJs62dPPNx+EfgDXS4JeUj54IoMrPoPMBljDRW+q1aQ1WdHa9AMT
-GmjYaVKtKTd7P05P/kaa
-=Wd+1
------END PGP SIGNATURE-----
-
---------------enig2567AA1A474DF249DA5F091A--
-
-
---===============2837620664345663613==
-Content-Type: text/plain; charset="us-ascii"
-MIME-Version: 1.0
-Content-Transfer-Encoding: 7bit
-Content-Disposition: inline
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
---===============2837620664345663613==--
-
-
diff --git a/test/corpus/<507EE22602000078000A20DB@nat28.tlf.novell.com> b/test/corpus/<507EE22602000078000A20DB@nat28.tlf.novell.com>
deleted file mode 100644 (file)
index 4327f26..0000000
+++ /dev/null
@@ -1,90 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Oct 17 15:56:49 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 17 Oct 2012 15:56:49 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TOV36-0003ZA-4c
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 17 Oct 2012 15:56:49 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TOUyR-0005LK-Ah; Wed, 17 Oct 2012 14:51:55 +0000
-Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <JBeulich@suse.com>) id 1TOUyP-0005LF-Hj
-       for xen-devel@lists.xen.org; Wed, 17 Oct 2012 14:51:53 +0000
-Received: from [193.109.254.147:37424] by server-15.bemta-14.messagelabs.com
-       id 84/C9-16351-806CE705; Wed, 17 Oct 2012 14:51:52 +0000
-X-Env-Sender: JBeulich@suse.com
-X-Msg-Ref: server-15.tower-27.messagelabs.com!1350485512!2565559!1
-X-Originating-IP: [130.57.49.28]
-X-SpamReason: No, hits=0.0 required=7.0 tests=
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 2323 invoked from network); 17 Oct 2012 14:51:52 -0000
-Received: from nat28.tlf.novell.com (HELO nat28.tlf.novell.com) (130.57.49.28)
-       by server-15.tower-27.messagelabs.com with SMTP;
-       17 Oct 2012 14:51:52 -0000
-Received: from EMEA1-MTA by nat28.tlf.novell.com
-       with Novell_GroupWise; Wed, 17 Oct 2012 15:51:51 +0100
-Message-Id: <507EE22602000078000A20DB@nat28.tlf.novell.com>
-X-Mailer: Novell GroupWise Internet Agent 12.0.0 
-Date: Wed, 17 Oct 2012 15:51:50 +0100
-From: "Jan Beulich" <JBeulich@suse.com>
-To: "Andrew Cooper" <andrew.cooper3@citrix.com>
-References: <1350479456-4007-1-git-send-email-stefan.bader@canonical.com>
-       <507EB27D.8050308@citrix.com>
-In-Reply-To: <507EB27D.8050308@citrix.com>
-Mime-Version: 1.0
-Content-Disposition: inline
-Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>, stefan.bader@canonical.com,
-       xen-devel@lists.xen.org
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.6 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] Xen PVM: Strange lockups when running PostgreSQL
- load
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
->>> On 17.10.12 at 15:28, Andrew Cooper <andrew.cooper3@citrix.com> wrote:
-> In our case, certain processes were locking up, and it turned out that
-> the kernel was issuing SCHOP_poll hypercalls (same the stack trace on
-> your launchpad ticket) on its own spinlock IPI event channel
-> (understandable, as its a spinlock), but with the event channel masked,
-> so it would never wake up from the poll.
-
-Probably some misunderstanding: The event channel used
-here will always be masked, and whether an event channel is
-masked doesn't matter for the purposes of polling it.
-
-Jan
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<507EEEDE.7040904@citrix.com> b/test/corpus/<507EEEDE.7040904@citrix.com>
deleted file mode 100644 (file)
index c8bfe80..0000000
+++ /dev/null
@@ -1,181 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Oct 17 18:49:50 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 17 Oct 2012 18:49:50 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TOXkZ-0004Pm-OM
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 17 Oct 2012 18:49:50 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TOXh5-0004JN-R5; Wed, 17 Oct 2012 17:46:11 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Andrew.Cooper3@citrix.com>) id 1TOXh4-0004JG-K6
-       for xen-devel@lists.xen.org; Wed, 17 Oct 2012 17:46:10 +0000
-Received: from [85.158.139.83:42979] by server-8.bemta-5.messagelabs.com id
-       BA/5F-23193-1EEEE705; Wed, 17 Oct 2012 17:46:09 +0000
-X-Env-Sender: Andrew.Cooper3@citrix.com
-X-Msg-Ref: server-2.tower-182.messagelabs.com!1350495967!32474010!1
-X-Originating-IP: [66.165.176.63]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyODMwNDk=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 32350 invoked from network); 17 Oct 2012 17:46:09 -0000
-Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
-       by server-2.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
-       17 Oct 2012 17:46:09 -0000
-X-IronPort-AV: E=Sophos;i="4.80,602,1344211200"; d="scan'208";a="211598735"
-Received: from ftlpmailmx01.citrite.net ([10.13.107.65])
-       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       17 Oct 2012 17:46:07 +0000
-Received: from ukmail1.uk.xensource.com (10.80.16.128) by smtprelay.citrix.com
-       (10.13.107.65) with Microsoft SMTP Server id 8.3.279.1;
-       Wed, 17 Oct 2012 13:46:06 -0400
-Received: from andrewcoop.uk.xensource.com ([10.80.2.18])      by
-       ukmail1.uk.xensource.com with esmtp (Exim 4.69) (envelope-from
-       <andrew.cooper3@citrix.com>)    id 1TOXh0-0003SD-BF;
-       Wed, 17 Oct 2012 18:46:06 +0100
-Message-ID: <507EEEDE.7040904@citrix.com>
-Date: Wed, 17 Oct 2012 18:46:06 +0100
-From: Andrew Cooper <andrew.cooper3@citrix.com>
-User-Agent: Mozilla/5.0 (X11; Linux x86_64;
-       rv:16.0) Gecko/20121011 Thunderbird/16.0.1
-MIME-Version: 1.0
-To: Stefan Bader <stefan.bader@canonical.com>
-References: <1350479456-4007-1-git-send-email-stefan.bader@canonical.com>
-       <507EB27D.8050308@citrix.com>
-       <1350482118.2460.74.camel@zakaz.uk.xensource.com>
-       <507ECD06.2050407@canonical.com> <507ED038.8000806@citrix.com>
-       <507EDC71.4040400@canonical.com>
-In-Reply-To: <507EDC71.4040400@canonical.com>
-X-Enigmail-Version: 1.4.5
-Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
-       Ian Campbell <Ian.Campbell@citrix.com>,
-       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.6 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] Xen PVM: Strange lockups when running PostgreSQL
- load
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-
-On 17/10/12 17:27, Stefan Bader wrote:
-> On 17.10.2012 17:35, Andrew Cooper wrote:
->
->>> (XEN) Event channel information for domain 1:
->>> (XEN) Polling vCPUs: {1,4,6}
->>> (XEN) port [p/m]
->>> (XEN) 4 [1/1]: s=6 n=0 x=0
->>> (XEN) 10 [0/1]: s=6 n=1 x=0
->>> (XEN) 28 [0/1]: s=6 n=4 x=0
->>> (XEN) 40 [0/1]: s=6 n=6 x=0
->>>
->> s = state.  0 = free, 1 = reserved, 2 = unbound, 3 = inter-domain, 4 =
->> pirq, 5 = virq, 6 = ipi
->> n = target vcpu id to notify
->> x = boolean indicating whether xen is a consumer of the event channel or
->> not.
->>
->> d = target domain (when appropriate)  In this case, p is the target port.
->>
-> Thanks (at least something learned today :)) One thing I noticed here, in the
-> event channel info above, pending is 0 for channel 10, 28 and 40 (and set for 4
-> which is the spinlock ipi for cpu 0). But in the VCPU info below (another
-> unknown: has=T and F) it says upcall_pend for all of them. Unfortunately that
-> might just mean that things change...
-
-I believe the upcall_pending is just a simple bit indicating that an
-event channel for that vcpu has an event pending, but doesn't identify
-which event channel it is.
-
-Of course, as the VCPU is currently descheduled in Xen waiting for a
-specific event channel to end the poll, other events are likely to build
-up, but will not be serviced until the VCPU resumes.
-
-The "has=" value is a boolean from struct vcpu,  vcpu->is_running.  This
-is a bit more subtle, as a vcpu is still considered running if its
-context is on the hypervisor pcpu stack, but Xen has invoked the idle
-loop on that PCPU.  I don't know whether this is relevant to the bug.
-
->
->>> (XEN) VCPU0: CPU3 [has=T] flags=0 poll=0 upcall_pend = 01, upcall_mask
->> = 01
->>> dirty_cpus={3} cpu_affinity={0-127}
->>> (XEN) No periodic timer
->>> (XEN) VCPU1: CPU7 [has=F] flags=1 poll=10 upcall_pend = 01,
->> upcall_mask = 01
->>> dirty_cpus={} cpu_affinity={0-127}
->>> (XEN) No periodic timer
->>> (XEN) VCPU4: CPU6 [has=F] flags=1 poll=28 upcall_pend = 01,
->> upcall_mask = 01
->>> dirty_cpus={} cpu_affinity={0-127}
->>> (XEN) No periodic timer
->>> (XEN) VCPU6: CPU0 [has=F] flags=1 poll=40 upcall_pend = 01,
->> upcall_mask = 01
->>> dirty_cpus={} cpu_affinity={0-127}
->>> (XEN) No periodic timer
->> So in this case, vcpu 1 is in a poll, on port 10, which is an IPI event
->> channel for itself.
->>
->> Same for vcpu 4, except it is on port 28, and for vcpu 6 on port 60.
->>
->> I wonder if there is possibly a race condition between notifying that a
->> lock has been unlocked, and another vcpu trying to poll after deciding
->> that the lock is locked.
-> There has to be something somehwere, I just cannot spot it. The unlocking cpu
-> will do a wmb() before setting the lock to 0, then a mb() and then check for
-> spinners. When failing the quick pack a locker will first set the lockspinner
-> entry, then do a wmb() and increment the spinners count. After that it clears
-> the event pending and then checks lock again before actually going into poll.
->
->> The other option is that there is a bug in working out which event
->> channel to notify when a lock is unlocked.
-> I had thought I saw one thing that I tried to fix with my patch. Another train
-> of thought would have been any other cpu grabbing the lock always as soon as it
-> gets released and so preventing any cpu in poll from success. But that would
-> then show the lock as locked...
-
-How does the unlocking code choose an event channel to invoke?  Is there
-perhaps a race condition updating that value if another cpu nabs the
-lock inbetween?
-
-(I am just throwing ideas around - I am not very familar with this code)
-
-~Andrew
-
--- 
-Andrew Cooper - Dom0 Kernel Engineer, Citrix XenServer
-T: +44 (0)1223 225 900, http://www.citrix.com
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<507FAECA.3070506@canonical.com> b/test/corpus/<507FAECA.3070506@canonical.com>
deleted file mode 100644 (file)
index 6af45c7..0000000
+++ /dev/null
@@ -1,155 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Oct 18 08:29:28 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 18 Oct 2012 08:29:28 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TOkXi-0002dU-NZ
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 18 Oct 2012 08:29:28 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TOkTv-0001NS-JF; Thu, 18 Oct 2012 07:25:27 +0000
-Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <stefan.bader@canonical.com>) id 1TOkTu-0001NL-0r
-       for xen-devel@lists.xen.org; Thu, 18 Oct 2012 07:25:26 +0000
-Received: from [193.109.254.147:36635] by server-7.bemta-14.messagelabs.com id
-       31/45-24122-5EEAF705; Thu, 18 Oct 2012 07:25:25 +0000
-X-Env-Sender: stefan.bader@canonical.com
-X-Msg-Ref: server-3.tower-27.messagelabs.com!1350545112!13134992!1
-X-Originating-IP: [91.189.89.112]
-X-SpamReason: No, hits=0.0 required=7.0 tests=
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 14556 invoked from network); 18 Oct 2012 07:25:12 -0000
-Received: from youngberry.canonical.com (HELO youngberry.canonical.com)
-       (91.189.89.112) by server-3.tower-27.messagelabs.com with SMTP;
-       18 Oct 2012 07:25:12 -0000
-Received: from p5b2e3cc2.dip.t-dialin.net ([91.46.60.194] helo=[192.168.2.5])
-       by youngberry.canonical.com with esmtpsa
-       (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71)
-       (envelope-from <stefan.bader@canonical.com>)
-       id 1TOkTb-0004jF-Aq; Thu, 18 Oct 2012 07:25:07 +0000
-Message-ID: <507FAECA.3070506@canonical.com>
-Date: Thu, 18 Oct 2012 09:24:58 +0200
-From: Stefan Bader <stefan.bader@canonical.com>
-User-Agent: Mozilla/5.0 (X11; Linux x86_64;
-       rv:16.0) Gecko/20121011 Thunderbird/16.0.1
-MIME-Version: 1.0
-To: Jan Beulich <JBeulich@suse.com>
-References: <1350479456-4007-1-git-send-email-stefan.bader@canonical.com>
-       <507EB27D.8050308@citrix.com>
-       <1350482118.2460.74.camel@zakaz.uk.xensource.com>
-       <507ECD06.2050407@canonical.com> <507ED038.8000806@citrix.com>
-       <507FC51102000078000A235E@nat28.tlf.novell.com>
-In-Reply-To: <507FC51102000078000A235E@nat28.tlf.novell.com>
-X-Enigmail-Version: 1.4.5
-Cc: Andrew Cooper <andrew.cooper3@citrix.com>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
-       Ian Campbell <Ian.Campbell@citrix.com>,
-       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: multipart/mixed; boundary="===============7345903983062252177=="
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.6 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] Xen PVM: Strange lockups when running PostgreSQL
- load
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-This is an OpenPGP/MIME signed message (RFC 2440 and 3156)
---===============7345903983062252177==
-Content-Type: multipart/signed; micalg=pgp-sha512;
- protocol="application/pgp-signature";
- boundary="------------enigA37A44F86644D73C29FE6627"
-
-This is an OpenPGP/MIME signed message (RFC 2440 and 3156)
---------------enigA37A44F86644D73C29FE6627
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: quoted-printable
-
-On 18.10.2012 09:00, Jan Beulich wrote:
->>>> On 17.10.12 at 17:35, Andrew Cooper <andrew.cooper3@citrix.com> wrot=
-e:
->> In each case, the event channels are masked (no surprise given the
->> conversation so far on this thread), and have no pending events.=20
->> Therefore, I believe we are looking at the same bug.
->=20
-> That seems very unlikely (albeit not impossible) to me, given that
-> the non-pvops kernel uses ticket locks while the pvops one doesn't.
-
-True, if classic 2.6.32 actually meant non-pvops. In my memory that was t=
-he
-version that first introduced them, so I assumed we talk about the same b=
-ase.
-
-The one I am looking at seems (as much info there is available right now,=
- but I
-try to get confirmation from reporters running a non-paravirt-spinlock ke=
-rnel on
-a production load) to be related directly to the paravirtualized spinlock=
-
-implementation for Xen.
-
-
---------------enigA37A44F86644D73C29FE6627
-Content-Type: application/pgp-signature; name="signature.asc"
-Content-Description: OpenPGP digital signature
-Content-Disposition: attachment; filename="signature.asc"
-
------BEGIN PGP SIGNATURE-----
-Version: GnuPG v1.4.11 (GNU/Linux)
-Comment: Using GnuPG with Mozilla - http://www.enigmail.net/
-
-iQIcBAEBCgAGBQJQf67SAAoJEOhnXe7L7s6jfhwP/3FoP6zoFKnVfj5Ox108Sl0S
-DZLVVpfO4oqlbvgfSE6qgJAZtyjMAnq3bduXN+nNwTrm59izwOcoR2sRHbrH80L7
-97RlcUd5UK47tMracyuIuvHQYgrJv7K2zfRZyxvdYOEpItuhe8HR3AFQnrgTq3gu
-d1TADmuqlCoPWqzpqOg/AVfn0lgPecI19H/vgWmIK684eygwRXmnwJKabl7XmPlp
-7SbgbxoUbTBn7FM2WO4QaR9/YizPnBSqxgf0pt15i3TsvrPBG1sMvzNJf9HD37o3
-D1PZbM7+P9Z3KbJlLnPf1Ij0vWZJCly1nE4+SiDa6YAnryEqbK90gAI87Ttr/o+B
-n1XmrqSvuyuLImus/lJtWvV7Q132NDuQR4AqZ1jYxJQGc/Fesba8hb5BRw4AnZ1h
-ZuAcXbwK4qFMrG5UgNRAqicMs+SqFI+m0ObvotbpxVZBmhb89zTWaOBkTKSeCorI
-+7qJKr2a/gQsMspQgfOhvVI5Pmbwg310Md+rtEVY+ngm/eBydeKO285wKGot+GTR
-pYyiexePT/gCLu3/6vs6Y7VHE5D5n+CBLigaPsPNc612LPK3WeUsc3prGMy8htGS
-OWb+qn2GHf9vBk+iQlAcIw2JIqcRZnD8vuuEs0cxIk3y9E4jqhzcvgPwp2iLe5vR
-Fy5rq6ECfFaVZZ96+exL
-=+/BH
------END PGP SIGNATURE-----
-
---------------enigA37A44F86644D73C29FE6627--
-
-
---===============7345903983062252177==
-Content-Type: text/plain; charset="us-ascii"
-MIME-Version: 1.0
-Content-Transfer-Encoding: 7bit
-Content-Disposition: inline
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
---===============7345903983062252177==--
-
-
diff --git a/test/corpus/<507FB1E1.8080700@canonical.com> b/test/corpus/<507FB1E1.8080700@canonical.com>
deleted file mode 100644 (file)
index a08fae0..0000000
+++ /dev/null
@@ -1,168 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Oct 18 08:42:01 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 18 Oct 2012 08:42:01 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TOkjr-0002hM-Mh
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 18 Oct 2012 08:42:01 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TOkgK-00027u-Ql; Thu, 18 Oct 2012 07:38:16 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <stefan.bader@canonical.com>) id 1TOkgJ-00027O-1G
-       for xen-devel@lists.xen.org; Thu, 18 Oct 2012 07:38:15 +0000
-Received: from [85.158.138.51:57141] by server-6.bemta-3.messagelabs.com id
-       AC/F3-32375-6E1BF705; Thu, 18 Oct 2012 07:38:14 +0000
-X-Env-Sender: stefan.bader@canonical.com
-X-Msg-Ref: server-6.tower-174.messagelabs.com!1350545893!26794208!1
-X-Originating-IP: [91.189.89.112]
-X-SpamReason: No, hits=0.5 required=7.0 tests=BODY_RANDOM_LONG
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 25399 invoked from network); 18 Oct 2012 07:38:13 -0000
-Received: from youngberry.canonical.com (HELO youngberry.canonical.com)
-       (91.189.89.112) by server-6.tower-174.messagelabs.com with SMTP;
-       18 Oct 2012 07:38:13 -0000
-Received: from p5b2e3cc2.dip.t-dialin.net ([91.46.60.194] helo=[192.168.2.5])
-       by youngberry.canonical.com with esmtpsa
-       (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71)
-       (envelope-from <stefan.bader@canonical.com>)
-       id 1TOkgE-000591-BY; Thu, 18 Oct 2012 07:38:10 +0000
-Message-ID: <507FB1E1.8080700@canonical.com>
-Date: Thu, 18 Oct 2012 09:38:09 +0200
-From: Stefan Bader <stefan.bader@canonical.com>
-User-Agent: Mozilla/5.0 (X11; Linux x86_64;
-       rv:16.0) Gecko/20121011 Thunderbird/16.0.1
-MIME-Version: 1.0
-To: Jan Beulich <JBeulich@suse.com>
-References: <1350479456-4007-1-git-send-email-stefan.bader@canonical.com>
-       <507EB27D.8050308@citrix.com>
-       <1350482118.2460.74.camel@zakaz.uk.xensource.com>
-       <507ECD06.2050407@canonical.com> <507ED038.8000806@citrix.com>
-       <507FC51102000078000A235E@nat28.tlf.novell.com>
-       <507FC71502000078000A236C@nat28.tlf.novell.com>
-In-Reply-To: <507FC71502000078000A236C@nat28.tlf.novell.com>
-X-Enigmail-Version: 1.4.5
-Cc: andrew.cooper3@citrix.com,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
-       Ian Campbell <Ian.Campbell@citrix.com>,
-       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: multipart/mixed; boundary="===============7481951078212515671=="
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.6 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] Xen PVM: Strange lockups when running PostgreSQL
- load
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-This is an OpenPGP/MIME signed message (RFC 2440 and 3156)
---===============7481951078212515671==
-Content-Type: multipart/signed; micalg=pgp-sha512;
- protocol="application/pgp-signature";
- boundary="------------enig3DF9695B8064AD7EAA24E73A"
-
-This is an OpenPGP/MIME signed message (RFC 2440 and 3156)
---------------enig3DF9695B8064AD7EAA24E73A
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: quoted-printable
-
-On 18.10.2012 09:08, Jan Beulich wrote:
->>>> On 18.10.12 at 09:00, "Jan Beulich" <JBeulich@suse.com> wrote:
->>>>> On 17.10.12 at 17:35, Andrew Cooper <andrew.cooper3@citrix.com> wro=
-te:
->>> In each case, the event channels are masked (no surprise given the
->>> conversation so far on this thread), and have no pending events.=20
->>> Therefore, I believe we are looking at the same bug.
->>
->> That seems very unlikely (albeit not impossible) to me, given that
->> the non-pvops kernel uses ticket locks while the pvops one doesn't.
->=20
-> And in fact we had a similar problem with our original ticket lock
-> implementation, exposed by an open coded lock in the scheduler's
-> run queue management. But that was really ticket lock specific,
-> in that the fact that a CPU could passively become the owner of
-> a lock while polling - that's impossible with pvops' byte locks afaict.=
-
-
-One of the trains of thought I had was whether it could happen that a cpu=
- is in
-polling and the task gets moved. But I don't think it can happen as the
-hypercall unlikely is a place where any schedule happens (preempt is none=
-). And
-it would be much more common...
-
-One detail which I hope someone can fill in is the whole "interrupted spi=
-nlock"
-thing. Saving the last lock pointer stored on the per-cpu lock_spinners a=
-nd so
-on. Is that really only for spinlocks taken without interrupts disabled o=
-r do I
-miss something there?
-
-
-
-
---------------enig3DF9695B8064AD7EAA24E73A
-Content-Type: application/pgp-signature; name="signature.asc"
-Content-Description: OpenPGP digital signature
-Content-Disposition: attachment; filename="signature.asc"
-
------BEGIN PGP SIGNATURE-----
-Version: GnuPG v1.4.11 (GNU/Linux)
-Comment: Using GnuPG with Mozilla - http://www.enigmail.net/
-
-iQIcBAEBCgAGBQJQf7HhAAoJEOhnXe7L7s6j3rwP/0GcDz5m/WYhsWXr3JHG+cen
-gCRGK2xfhaQI7ePzpRlZTU74wbaZNjvZXqpNe6ZA/+hy3unre8EfdeHFNJQkvkaK
-kMCfQjdJga44rGc4JbAnLlv1enp7IgDxzGb/G/LjDP5Ao5sDyMRegJnftvQVBKn/
-GYJRSebLXUM1ZaAvvGmHZRlgmKuGF0SJ37UhsAIT/4TeiqLRssyCTNPv71UkRFhp
-0brip9LboFXUzpf7Wy6oqLIpdLBovnUmEC1hd81qVwZPgAALkwzde/wNLI+brMHO
-URymCdKmZ9KsMvgxn+NXGKBu1k/P6gmYDKTksXY5YlloQFILO7KLSwyBIWiEC5HO
-+Nxjppm5MEp2AUEGhQQrQVFdi2OwW+h1itjQRnU10BobtOpwgwCxlPJXzo+2BPQM
-+eYNgf4+2jc6zvpnZn9cf2pAQL6pgGwhzcePVXuVErHbyX9BJDJJzsmWeR8yFq9q
-BIiMQoueL3f+8jZ1qF5G0ZLtxqE7U4O7B7o2jhFmYBqru/7cfiEPAHsjnK37QCbp
-ZyljRFi8mSZp7wLSvz1MGdr2Fpfuz8vxSQpTFy7XfPMGLdfIVKToURL6DRPZeFW1
-VHd58C2KDv1pcVkyZrgptYfhExv34e1qDmwdMxRZw0+pLSpYR1r8Qz5XxmoQCY9Q
-je+zk3eBcPD+EI4N87Su
-=u/Ih
------END PGP SIGNATURE-----
-
---------------enig3DF9695B8064AD7EAA24E73A--
-
-
---===============7481951078212515671==
-Content-Type: text/plain; charset="us-ascii"
-MIME-Version: 1.0
-Content-Transfer-Encoding: 7bit
-Content-Disposition: inline
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
---===============7481951078212515671==--
-
-
diff --git a/test/corpus/<507FC51102000078000A235E@nat28.tlf.novell.com> b/test/corpus/<507FC51102000078000A235E@nat28.tlf.novell.com>
deleted file mode 100644 (file)
index 3150af2..0000000
+++ /dev/null
@@ -1,91 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Oct 18 08:05:09 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 18 Oct 2012 08:05:09 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TOkAB-0002U5-Cz
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 18 Oct 2012 08:05:08 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TOk5N-0000cw-Cl; Thu, 18 Oct 2012 07:00:05 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <JBeulich@suse.com>) id 1TOk5M-0000cr-9c
-       for xen-devel@lists.xen.org; Thu, 18 Oct 2012 07:00:04 +0000
-Received: from [85.158.143.35:54253] by server-2.bemta-4.messagelabs.com id
-       E3/1B-22268-3F8AF705; Thu, 18 Oct 2012 07:00:03 +0000
-X-Env-Sender: JBeulich@suse.com
-X-Msg-Ref: server-7.tower-21.messagelabs.com!1350543602!14166706!1
-X-Originating-IP: [130.57.49.28]
-X-SpamReason: No, hits=0.0 required=7.0 tests=
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 4682 invoked from network); 18 Oct 2012 07:00:02 -0000
-Received: from nat28.tlf.novell.com (HELO nat28.tlf.novell.com) (130.57.49.28)
-       by server-7.tower-21.messagelabs.com with SMTP;
-       18 Oct 2012 07:00:02 -0000
-Received: from EMEA1-MTA by nat28.tlf.novell.com
-       with Novell_GroupWise; Thu, 18 Oct 2012 08:00:47 +0100
-Message-Id: <507FC51102000078000A235E@nat28.tlf.novell.com>
-X-Mailer: Novell GroupWise Internet Agent 12.0.0 
-Date: Thu, 18 Oct 2012 08:00:01 +0100
-From: "Jan Beulich" <JBeulich@suse.com>
-To: "Stefan Bader" <stefan.bader@canonical.com>,
-       "Andrew Cooper" <andrew.cooper3@citrix.com>
-References: <1350479456-4007-1-git-send-email-stefan.bader@canonical.com>
-       <507EB27D.8050308@citrix.com>
-       <1350482118.2460.74.camel@zakaz.uk.xensource.com>
-       <507ECD06.2050407@canonical.com> <507ED038.8000806@citrix.com>
-In-Reply-To: <507ED038.8000806@citrix.com>
-Mime-Version: 1.0
-Content-Disposition: inline
-Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
-       Ian Campbell <Ian.Campbell@citrix.com>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.6 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] Xen PVM: Strange lockups when running PostgreSQL
- load
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
->>> On 17.10.12 at 17:35, Andrew Cooper <andrew.cooper3@citrix.com> wrote:
-> In each case, the event channels are masked (no surprise given the
-> conversation so far on this thread), and have no pending events. 
-> Therefore, I believe we are looking at the same bug.
-
-That seems very unlikely (albeit not impossible) to me, given that
-the non-pvops kernel uses ticket locks while the pvops one doesn't.
-
-Jan
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<507FC71502000078000A236C@nat28.tlf.novell.com> b/test/corpus/<507FC71502000078000A236C@nat28.tlf.novell.com>
deleted file mode 100644 (file)
index 05dbcd5..0000000
+++ /dev/null
@@ -1,99 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Oct 18 08:13:25 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 18 Oct 2012 08:13:25 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TOkIB-0002Y8-1y
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 18 Oct 2012 08:13:25 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TOkDl-0000vr-A6; Thu, 18 Oct 2012 07:08:45 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <JBeulich@suse.com>) id 1TOkDj-0000vm-Np
-       for xen-devel@lists.xen.org; Thu, 18 Oct 2012 07:08:43 +0000
-Received: from [85.158.139.211:48710] by server-11.bemta-5.messagelabs.com id
-       6A/6E-14870-AFAAF705; Thu, 18 Oct 2012 07:08:42 +0000
-X-Env-Sender: JBeulich@suse.com
-X-Msg-Ref: server-9.tower-206.messagelabs.com!1350544121!21258916!1
-X-Originating-IP: [130.57.49.28]
-X-SpamReason: No, hits=0.0 required=7.0 tests=
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 1066 invoked from network); 18 Oct 2012 07:08:41 -0000
-Received: from nat28.tlf.novell.com (HELO nat28.tlf.novell.com) (130.57.49.28)
-       by server-9.tower-206.messagelabs.com with SMTP;
-       18 Oct 2012 07:08:41 -0000
-Received: from EMEA1-MTA by nat28.tlf.novell.com
-       with Novell_GroupWise; Thu, 18 Oct 2012 08:10:18 +0100
-Message-Id: <507FC71502000078000A236C@nat28.tlf.novell.com>
-X-Mailer: Novell GroupWise Internet Agent 12.0.0 
-Date: Thu, 18 Oct 2012 08:08:37 +0100
-From: "Jan Beulich" <JBeulich@suse.com>
-To: "Stefan Bader" <stefan.bader@canonical.com>,
- <andrew.cooper3@citrix.com>
-References: <1350479456-4007-1-git-send-email-stefan.bader@canonical.com>
-       <507EB27D.8050308@citrix.com>
-       <1350482118.2460.74.camel@zakaz.uk.xensource.com>
-       <507ECD06.2050407@canonical.com> <507ED038.8000806@citrix.com>
-       <507FC51102000078000A235E@nat28.tlf.novell.com>
-In-Reply-To: <507FC51102000078000A235E@nat28.tlf.novell.com>
-Mime-Version: 1.0
-Content-Disposition: inline
-Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
-       Ian Campbell <Ian.Campbell@citrix.com>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.6 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] Xen PVM: Strange lockups when running PostgreSQL
- load
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
->>> On 18.10.12 at 09:00, "Jan Beulich" <JBeulich@suse.com> wrote:
->>>> On 17.10.12 at 17:35, Andrew Cooper <andrew.cooper3@citrix.com> wrote:
->> In each case, the event channels are masked (no surprise given the
->> conversation so far on this thread), and have no pending events. 
->> Therefore, I believe we are looking at the same bug.
-> 
-> That seems very unlikely (albeit not impossible) to me, given that
-> the non-pvops kernel uses ticket locks while the pvops one doesn't.
-
-And in fact we had a similar problem with our original ticket lock
-implementation, exposed by an open coded lock in the scheduler's
-run queue management. But that was really ticket lock specific,
-in that the fact that a CPU could passively become the owner of
-a lock while polling - that's impossible with pvops' byte locks afaict.
-
-Jan
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<507FD7DE.2010209@canonical.com> b/test/corpus/<507FD7DE.2010209@canonical.com>
deleted file mode 100644 (file)
index 0fffaf6..0000000
+++ /dev/null
@@ -1,224 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Oct 18 11:24:16 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 18 Oct 2012 11:24:16 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TOnGq-0003SY-To
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 18 Oct 2012 11:24:16 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TOnDC-0001yV-4n; Thu, 18 Oct 2012 10:20:22 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <stefan.bader@canonical.com>) id 1TOnD9-0001yD-Rx
-       for xen-devel@lists.xen.org; Thu, 18 Oct 2012 10:20:20 +0000
-Received: from [85.158.139.211:4243] by server-6.bemta-5.messagelabs.com id
-       E2/21-32589-3E7DF705; Thu, 18 Oct 2012 10:20:19 +0000
-X-Env-Sender: stefan.bader@canonical.com
-X-Msg-Ref: server-16.tower-206.messagelabs.com!1350555616!22832231!1
-X-Originating-IP: [91.189.89.112]
-X-SpamReason: No, hits=0.5 required=7.0 tests=BODY_RANDOM_LONG
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 14463 invoked from network); 18 Oct 2012 10:20:16 -0000
-Received: from youngberry.canonical.com (HELO youngberry.canonical.com)
-       (91.189.89.112) by server-16.tower-206.messagelabs.com with SMTP;
-       18 Oct 2012 10:20:16 -0000
-Received: from p5b2e3cc2.dip.t-dialin.net ([91.46.60.194] helo=[192.168.2.5])
-       by youngberry.canonical.com with esmtpsa
-       (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71)
-       (envelope-from <stefan.bader@canonical.com>)
-       id 1TOnD5-0001FP-BB; Thu, 18 Oct 2012 10:20:15 +0000
-Message-ID: <507FD7DE.2010209@canonical.com>
-Date: Thu, 18 Oct 2012 12:20:14 +0200
-From: Stefan Bader <stefan.bader@canonical.com>
-User-Agent: Mozilla/5.0 (X11; Linux x86_64;
-       rv:16.0) Gecko/20121011 Thunderbird/16.0.1
-MIME-Version: 1.0
-To: Ian Campbell <Ian.Campbell@citrix.com>
-References: <1350479456-4007-1-git-send-email-stefan.bader@canonical.com>
-       <507EB27D.8050308@citrix.com>
-       <1350482118.2460.74.camel@zakaz.uk.xensource.com>
-       <507ECD06.2050407@canonical.com> <507ED038.8000806@citrix.com>
-       <507FC51102000078000A235E@nat28.tlf.novell.com>
-       <507FC71502000078000A236C@nat28.tlf.novell.com>
-       <507FB1E1.8080700@canonical.com>
-       <1350546483.28188.25.camel@dagon.hellion.org.uk>
-In-Reply-To: <1350546483.28188.25.camel@dagon.hellion.org.uk>
-X-Enigmail-Version: 1.4.5
-Cc: Andrew Cooper <Andrew.Cooper3@citrix.com>,
-       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
-       Jan Beulich <JBeulich@suse.com>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: multipart/mixed; boundary="===============3410626000692852923=="
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.6 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] Xen PVM: Strange lockups when running PostgreSQL
- load
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-This is an OpenPGP/MIME signed message (RFC 2440 and 3156)
---===============3410626000692852923==
-Content-Type: multipart/signed; micalg=pgp-sha512;
- protocol="application/pgp-signature";
- boundary="------------enig8243ECFB12C8B34C5DC00DE5"
-
-This is an OpenPGP/MIME signed message (RFC 2440 and 3156)
---------------enig8243ECFB12C8B34C5DC00DE5
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: quoted-printable
-
-On 18.10.2012 09:48, Ian Campbell wrote:
-> On Thu, 2012-10-18 at 08:38 +0100, Stefan Bader wrote:
->> On 18.10.2012 09:08, Jan Beulich wrote:
->>>>>> On 18.10.12 at 09:00, "Jan Beulich" <JBeulich@suse.com> wrote:
->>>>>>> On 17.10.12 at 17:35, Andrew Cooper <andrew.cooper3@citrix.com> w=
-rote:
->>>>> In each case, the event channels are masked (no surprise given the
->>>>> conversation so far on this thread), and have no pending events.=20
->>>>> Therefore, I believe we are looking at the same bug.
->>>>
->>>> That seems very unlikely (albeit not impossible) to me, given that
->>>> the non-pvops kernel uses ticket locks while the pvops one doesn't.
->>>
->>> And in fact we had a similar problem with our original ticket lock
->>> implementation, exposed by an open coded lock in the scheduler's
->>> run queue management. But that was really ticket lock specific,
->>> in that the fact that a CPU could passively become the owner of
->>> a lock while polling - that's impossible with pvops' byte locks afaic=
-t.
->>
->> One of the trains of thought I had was whether it could happen that a =
-cpu is in
->> polling and the task gets moved. But I don't think it can happen as th=
-e
->> hypercall unlikely is a place where any schedule happens (preempt is n=
-one). And
->> it would be much more common...
->>
->> One detail which I hope someone can fill in is the whole "interrupted =
-spinlock"
->> thing. Saving the last lock pointer stored on the per-cpu lock_spinner=
-s and so
->> on. Is that really only for spinlocks taken without interrupts disable=
-d or do I
->> miss something there?
->=20
-> spinning_lock() returns the old lock which the caller is expected to
-> remember and replace via unspinning_lock() -- it effectively implements=
-
-> a stack of locks which are being waited on. xen_spin_lock_slow (the onl=
-y
-> caller0 appears to do this correctly from a brief inspection.
-
-Yes, just *when* can there be a stack of locks (spinlocks). The poll_irq
-hypercall seems to be an active (in the sense of not preemting to another=
- task)
-process. How could there be a situation that another lock (on the same cp=
-u is
-tried to be taken).
->=20
-> Is there any chance this is just a simple AB-BA or similar type
-> deadlock? Do we have data which suggests all vCPUs are waiting on the
-> same lock or just that they are waiting on some lock? I suppose lockdep=
-
-> (which I think you mentioned before?) would have caught this, unless pv=
-
-> locks somehow confound it?
-
-The one situation where I went deeper into the tasks that appeared to be =
-on a
-cpu it was one waiting for signalling a task that looked to be just sched=
-uled
-out and the cpu it was running on doing a idle balance that waited on the=
- lock
-for cpu#0's runqueue. Which cpu#0 itself seemed to be waiting slow (the l=
-ock
-pointer was on lock_spinners[0]) but the lock itself was 0.
-Though there is a chance that this is always just a coincidental state wh=
-ere the
-lock just was released and more related to how the Xen stack does a guest=
- dump.
-So it would be to find who holds the other lock.
-Unfortunately at least a full lock debugging enabled kernel is sufficient=
-ly
-different in timing that I cannot reproduce the issue on a test machine. =
-And
-from reported crashes in production I have no data.
-
->=20
-> Ian.
->=20
->=20
-> _______________________________________________
-> Xen-devel mailing list
-> Xen-devel@lists.xen.org
-> http://lists.xen.org/xen-devel
->=20
-
-
-
---------------enig8243ECFB12C8B34C5DC00DE5
-Content-Type: application/pgp-signature; name="signature.asc"
-Content-Description: OpenPGP digital signature
-Content-Disposition: attachment; filename="signature.asc"
-
------BEGIN PGP SIGNATURE-----
-Version: GnuPG v1.4.11 (GNU/Linux)
-Comment: Using GnuPG with Mozilla - http://www.enigmail.net/
-
-iQIcBAEBCgAGBQJQf9feAAoJEOhnXe7L7s6jWi0QAIUmb9NQ1ilLciNpEM9r0ytT
-/MKqWbj5nrwXiYnwV5TLX/aEf+f0sDX/YMQuY6rFcroGSRTzVhfP6Br2eWe095jQ
-uyaJj7CsNP/tkHhohLLG5V3gYQu2dr5Gbxt2hCUuC8URYULsLI5ghBcawHeMNVll
-hfU4DKlMEHWu6BxhEWZWvhvoA3o4j/GH5Kj16Jaqv1ejuxHxXfx4QXg7GseRPx7S
-7Z+lRLmEkyTpj3E7yVyZatah3umm6CxsFX4biDKxolgbDAoROE2L04i5Lu/oQLdy
-hcZiC5kiJDDN4A6tY5GmdDj4bbthDCwrWjudFrHXo0paR37qtzS7T/K8gUr8ZhtI
-Bm7Wka7X3k6JTfDb8u4+h3TcTh6q/TRjEvyDOeyQHAt91GYDChfWxYwBxAjVHF/w
-DvxAyz2r2atUdJwmza+vm11iuDr/8s41Hi6LUV7dKd3iEAp6tRC+G1FNQhi0/yxM
-gzr4PNBGYdKkhQpDhm4Rm+X2FdrnLlP3B31gSMuQwBUzwkum5R1jk2IbUOkuEOgU
-hr7BYCMVfapaQWp+AhXU8hzq/kZhB7zakO6hOu2C7I7oGIEyrBAeUiWPAw/ARMy+
-t0lGYaf+zGl7rgvpvUXIJNKVvGx0IPYCfGioOcyafsuHS/7kfqsitpE5npj79bWa
-o4bdTimUXvwj2qjF1yoa
-=Qoqm
------END PGP SIGNATURE-----
-
---------------enig8243ECFB12C8B34C5DC00DE5--
-
-
---===============3410626000692852923==
-Content-Type: text/plain; charset="us-ascii"
-MIME-Version: 1.0
-Content-Transfer-Encoding: 7bit
-Content-Disposition: inline
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
---===============3410626000692852923==--
-
-
diff --git a/test/corpus/<507FF964.9090009@canonical.com> b/test/corpus/<507FF964.9090009@canonical.com>
deleted file mode 100644 (file)
index 4aed803..0000000
+++ /dev/null
@@ -1,175 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Oct 18 13:48:35 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 18 Oct 2012 13:48:35 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TOpWb-0003v0-GF
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 18 Oct 2012 13:48:35 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TOpRa-000592-QD; Thu, 18 Oct 2012 12:43:22 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <stefan.bader@canonical.com>) id 1TOpRZ-00058x-S6
-       for xen-devel@lists.xen.org; Thu, 18 Oct 2012 12:43:22 +0000
-Received: from [85.158.139.211:19681] by server-13.bemta-5.messagelabs.com id
-       37/BC-30674-969FF705; Thu, 18 Oct 2012 12:43:21 +0000
-X-Env-Sender: stefan.bader@canonical.com
-X-Msg-Ref: server-9.tower-206.messagelabs.com!1350564200!21312496!1
-X-Originating-IP: [91.189.89.112]
-X-SpamReason: No, hits=0.0 required=7.0 tests=
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 7854 invoked from network); 18 Oct 2012 12:43:20 -0000
-Received: from youngberry.canonical.com (HELO youngberry.canonical.com)
-       (91.189.89.112) by server-9.tower-206.messagelabs.com with SMTP;
-       18 Oct 2012 12:43:20 -0000
-Received: from p5b2e3cc2.dip.t-dialin.net ([91.46.60.194] helo=[192.168.2.5])
-       by youngberry.canonical.com with esmtpsa
-       (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71)
-       (envelope-from <stefan.bader@canonical.com>)
-       id 1TOpRV-00056g-RW; Thu, 18 Oct 2012 12:43:17 +0000
-Message-ID: <507FF964.9090009@canonical.com>
-Date: Thu, 18 Oct 2012 14:43:16 +0200
-From: Stefan Bader <stefan.bader@canonical.com>
-User-Agent: Mozilla/5.0 (X11; Linux x86_64;
-       rv:16.0) Gecko/20121011 Thunderbird/16.0.1
-MIME-Version: 1.0
-To: Jan Beulich <JBeulich@suse.com>
-References: <1350479456-4007-1-git-send-email-stefan.bader@canonical.com>
-       <507EB27D.8050308@citrix.com>
-       <1350482118.2460.74.camel@zakaz.uk.xensource.com>
-       <507ECD06.2050407@canonical.com> <507ED038.8000806@citrix.com>
-       <507FC51102000078000A235E@nat28.tlf.novell.com>
-       <507FC71502000078000A236C@nat28.tlf.novell.com>
-       <507FB1E1.8080700@canonical.com>
-       <1350546483.28188.25.camel@dagon.hellion.org.uk>
-       <507FD7DE.2010209@canonical.com>
-       <507FFA5102000078000A250D@nat28.tlf.novell.com>
-In-Reply-To: <507FFA5102000078000A250D@nat28.tlf.novell.com>
-X-Enigmail-Version: 1.4.5
-Cc: Andrew Cooper <Andrew.Cooper3@citrix.com>,
-       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
-       Ian Campbell <Ian.Campbell@citrix.com>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: multipart/mixed; boundary="===============7077398237862403059=="
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.6 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] Xen PVM: Strange lockups when running PostgreSQL
- load
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-This is an OpenPGP/MIME signed message (RFC 2440 and 3156)
---===============7077398237862403059==
-Content-Type: multipart/signed; micalg=pgp-sha512;
- protocol="application/pgp-signature";
- boundary="------------enigB9EE666080330C7C1DAF7137"
-
-This is an OpenPGP/MIME signed message (RFC 2440 and 3156)
---------------enigB9EE666080330C7C1DAF7137
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: quoted-printable
-
-On 18.10.2012 12:47, Jan Beulich wrote:
->>>> On 18.10.12 at 12:20, Stefan Bader <stefan.bader@canonical.com> wrot=
-e:
->> On 18.10.2012 09:48, Ian Campbell wrote:
->>> spinning_lock() returns the old lock which the caller is expected to
->>> remember and replace via unspinning_lock() -- it effectively implemen=
-ts
->>> a stack of locks which are being waited on. xen_spin_lock_slow (the o=
-nly
->>> caller0 appears to do this correctly from a brief inspection.
->>
->> Yes, just *when* can there be a stack of locks (spinlocks). The poll_i=
-rq
->> hypercall seems to be an active (in the sense of not preemting to anot=
-her=20
->> task)
->> process. How could there be a situation that another lock (on the same=
- cpu=20
->> is tried to be taken).
->=20
-> Obviously when this is an acquire not disabling interrupts, and
-> an interrupt comes in while in the poll hypercall (or about to go
-> there, or just having come back from one).
->=20
-> Jan
->=20
-Obviously. ;) Ok, so my thinking there was ok and its one level deep max.=
- At
-some point staring at things I start question my sanity.
-A wild thinking would be whether in that case the interrupted spinlock ma=
-y miss
-a wakeup forever when the unlocker only can check for the toplevel. Hm, b=
-ut that
-should be easy to rule out by just adding an error to spin_unlock_slow wh=
-en it
-fails to find anything...
-
-
-
---------------enigB9EE666080330C7C1DAF7137
-Content-Type: application/pgp-signature; name="signature.asc"
-Content-Description: OpenPGP digital signature
-Content-Disposition: attachment; filename="signature.asc"
-
------BEGIN PGP SIGNATURE-----
-Version: GnuPG v1.4.11 (GNU/Linux)
-Comment: Using GnuPG with Mozilla - http://www.enigmail.net/
-
-iQIcBAEBCgAGBQJQf/lkAAoJEOhnXe7L7s6jYAgP/jIqqQosyyCp/wdPBclVSws3
-qK4wLJYOdJWuiWMNMSxgob2eXmWRdThh4MvGM73PH54QOsoynd0aafd8aOAiJ0Hu
-GPvRRdIPjh3zFK78WAcIr6NAwaYwNwrIecbvqtBzjjVDgFuDImCqq9dmRwfWekAW
-NF422nKmcHQYTEL2lSDs/vqjF27rsNrtZP6cISStxnu70YXBzaSextob/jBbGkd6
-GSJovcirPG0yG1piYJYBO99neUKpibqEWOQOqZPFa0jpzCsRlpPkIvLf4vyrIZsK
-zuPKp1gGtHj5WBhNlrHhLN9Jp90qBjL5ZV4nmC3LUwMax4zayOXU4zu0rkbJC5RP
-KigYCYEL1E068nxAF80jzm88H6aGGGy09gRWxYxVGBJby8q7pDmP0FxMbopMfGBF
-bCAEj8Wie7pXz1JfrXJRXfAxj0QAnutWbfKNESCgs6/yg3wzDIPgtYLGLNPHnQD9
-XlII3jf4Zb+8tfi0Q0d2/wOyj8mwwwqOXk27mGiUNTU4HNHaunOvCssKJJLe4hyS
-4cN7BShxXmLpNjm4iXI9T2xxrnpeuwRA+yg36yEM7GqwCioYnO6Q8se6d56bSf5X
-ciU+UGMOQxCjjUBVLBeseIFr8ke+KC+sCsCvJVBAKkGXOHgmYaBjfvUcfHu4jpAR
-BlFKUuadDSPm8uG5dp4N
-=Mvbw
------END PGP SIGNATURE-----
-
---------------enigB9EE666080330C7C1DAF7137--
-
-
---===============7077398237862403059==
-Content-Type: text/plain; charset="us-ascii"
-MIME-Version: 1.0
-Content-Transfer-Encoding: 7bit
-Content-Disposition: inline
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
---===============7077398237862403059==--
-
-
diff --git a/test/corpus/<507FFA5102000078000A250D@nat28.tlf.novell.com> b/test/corpus/<507FFA5102000078000A250D@nat28.tlf.novell.com>
deleted file mode 100644 (file)
index c2eba5b..0000000
+++ /dev/null
@@ -1,105 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Oct 18 11:50:52 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 18 Oct 2012 11:50:52 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TOngg-0003YZ-DA
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 18 Oct 2012 11:50:52 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TOndH-0002jS-92; Thu, 18 Oct 2012 10:47:19 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <JBeulich@suse.com>) id 1TOndF-0002jD-JI
-       for xen-devel@lists.xen.org; Thu, 18 Oct 2012 10:47:17 +0000
-Received: from [85.158.137.99:18937] by server-8.bemta-3.messagelabs.com id
-       10/E8-10525-43EDF705; Thu, 18 Oct 2012 10:47:16 +0000
-X-Env-Sender: JBeulich@suse.com
-X-Msg-Ref: server-6.tower-217.messagelabs.com!1350557236!16931126!1
-X-Originating-IP: [130.57.49.28]
-X-SpamReason: No, hits=0.0 required=7.0 tests=
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 17595 invoked from network); 18 Oct 2012 10:47:16 -0000
-Received: from nat28.tlf.novell.com (HELO nat28.tlf.novell.com) (130.57.49.28)
-       by server-6.tower-217.messagelabs.com with SMTP;
-       18 Oct 2012 10:47:16 -0000
-Received: from EMEA1-MTA by nat28.tlf.novell.com
-       with Novell_GroupWise; Thu, 18 Oct 2012 11:47:15 +0100
-Message-Id: <507FFA5102000078000A250D@nat28.tlf.novell.com>
-X-Mailer: Novell GroupWise Internet Agent 12.0.0 
-Date: Thu, 18 Oct 2012 11:47:13 +0100
-From: "Jan Beulich" <JBeulich@suse.com>
-To: "Stefan Bader" <stefan.bader@canonical.com>
-References: <1350479456-4007-1-git-send-email-stefan.bader@canonical.com>
-       <507EB27D.8050308@citrix.com>
-       <1350482118.2460.74.camel@zakaz.uk.xensource.com>
-       <507ECD06.2050407@canonical.com> <507ED038.8000806@citrix.com>
-       <507FC51102000078000A235E@nat28.tlf.novell.com>
-       <507FC71502000078000A236C@nat28.tlf.novell.com>
-       <507FB1E1.8080700@canonical.com>
-       <1350546483.28188.25.camel@dagon.hellion.org.uk>
-       <507FD7DE.2010209@canonical.com>
-In-Reply-To: <507FD7DE.2010209@canonical.com>
-Mime-Version: 1.0
-Content-Disposition: inline
-Cc: Andrew Cooper <Andrew.Cooper3@citrix.com>,
-       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
-       Ian Campbell <Ian.Campbell@citrix.com>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.6 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] Xen PVM: Strange lockups when running PostgreSQL
- load
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
->>> On 18.10.12 at 12:20, Stefan Bader <stefan.bader@canonical.com> wrote:
-> On 18.10.2012 09:48, Ian Campbell wrote:
->> spinning_lock() returns the old lock which the caller is expected to
->> remember and replace via unspinning_lock() -- it effectively implements
->> a stack of locks which are being waited on. xen_spin_lock_slow (the only
->> caller0 appears to do this correctly from a brief inspection.
-> 
-> Yes, just *when* can there be a stack of locks (spinlocks). The poll_irq
-> hypercall seems to be an active (in the sense of not preemting to another 
-> task)
-> process. How could there be a situation that another lock (on the same cpu 
-> is tried to be taken).
-
-Obviously when this is an acquire not disabling interrupts, and
-an interrupt comes in while in the poll hypercall (or about to go
-there, or just having come back from one).
-
-Jan
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<50806C0B.1060504@canonical.com> b/test/corpus/<50806C0B.1060504@canonical.com>
deleted file mode 100644 (file)
index d0b0989..0000000
+++ /dev/null
@@ -1,466 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Oct 18 21:57:16 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 18 Oct 2012 21:57:16 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TOx9V-0005k9-6U
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 18 Oct 2012 21:57:16 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TOx55-0008OD-D2; Thu, 18 Oct 2012 20:52:39 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <stefan.bader@canonical.com>) id 1TOx53-0008O8-Pn
-       for xen-devel@lists.xen.org; Thu, 18 Oct 2012 20:52:38 +0000
-Received: from [85.158.137.99:4004] by server-10.bemta-3.messagelabs.com id
-       92/6B-27386-51C60805; Thu, 18 Oct 2012 20:52:37 +0000
-X-Env-Sender: stefan.bader@canonical.com
-X-Msg-Ref: server-16.tower-217.messagelabs.com!1350593555!22145147!1
-X-Originating-IP: [91.189.89.112]
-X-SpamReason: No, hits=0.0 required=7.0 tests=
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 22520 invoked from network); 18 Oct 2012 20:52:35 -0000
-Received: from youngberry.canonical.com (HELO youngberry.canonical.com)
-       (91.189.89.112) by server-16.tower-217.messagelabs.com with SMTP;
-       18 Oct 2012 20:52:35 -0000
-Received: from p5b2e3cc2.dip.t-dialin.net ([91.46.60.194] helo=[192.168.2.5])
-       by youngberry.canonical.com with esmtpsa
-       (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71)
-       (envelope-from <stefan.bader@canonical.com>)
-       id 1TOx4v-0000lH-Gp; Thu, 18 Oct 2012 20:52:29 +0000
-Message-ID: <50806C0B.1060504@canonical.com>
-Date: Thu, 18 Oct 2012 22:52:27 +0200
-From: Stefan Bader <stefan.bader@canonical.com>
-User-Agent: Mozilla/5.0 (X11; Linux x86_64;
-       rv:16.0) Gecko/20121011 Thunderbird/16.0.1
-MIME-Version: 1.0
-To: Jan Beulich <JBeulich@suse.com>
-References: <1350479456-4007-1-git-send-email-stefan.bader@canonical.com>
-       <507EB27D.8050308@citrix.com>
-       <1350482118.2460.74.camel@zakaz.uk.xensource.com>
-       <507ECD06.2050407@canonical.com> <507ED038.8000806@citrix.com>
-       <507FC51102000078000A235E@nat28.tlf.novell.com>
-       <507FC71502000078000A236C@nat28.tlf.novell.com>
-       <507FB1E1.8080700@canonical.com>
-       <1350546483.28188.25.camel@dagon.hellion.org.uk>
-       <507FD7DE.2010209@canonical.com>
-       <507FFA5102000078000A250D@nat28.tlf.novell.com>
-       <507FF964.9090009@canonical.com>
-In-Reply-To: <507FF964.9090009@canonical.com>
-X-Enigmail-Version: 1.4.5
-Cc: Andrew Cooper <Andrew.Cooper3@citrix.com>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
-       Ian Campbell <Ian.Campbell@citrix.com>,
-       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: multipart/mixed; boundary="===============2958323107161820582=="
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.6 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] Xen PVM: Strange lockups when running PostgreSQL
- load
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-This is an OpenPGP/MIME signed message (RFC 2440 and 3156)
---===============2958323107161820582==
-Content-Type: multipart/signed; micalg=pgp-sha512;
- protocol="application/pgp-signature";
- boundary="------------enig07495305BB5B4065E9069FF1"
-
-This is an OpenPGP/MIME signed message (RFC 2440 and 3156)
---------------enig07495305BB5B4065E9069FF1
-Content-Type: multipart/mixed;
- boundary="------------000604000200030200050803"
-
-This is a multi-part message in MIME format.
---------------000604000200030200050803
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: quoted-printable
-
-On 18.10.2012 14:43, Stefan Bader wrote:
->> Obviously when this is an acquire not disabling interrupts, and
->> an interrupt comes in while in the poll hypercall (or about to go
->> there, or just having come back from one).
->>
->> Jan
->>
-> Obviously. ;) Ok, so my thinking there was ok and its one level deep ma=
-x. At
-> some point staring at things I start question my sanity.
-> A wild thinking would be whether in that case the interrupted spinlock =
-may miss
-> a wakeup forever when the unlocker only can check for the toplevel. Hm,=
- but that
-> should be easy to rule out by just adding an error to spin_unlock_slow =
-when it
-> fails to find anything...
->=20
-Actually I begin to suspect that it could be possible that I just overloo=
-ked the
-most obvious thing. Provoking question: are we sure we are on the same pa=
-ge
-about the purpose of the spin_lock_flags variant of the pv lock ops inter=
-face?
-
-I begin to suspect that it really is not for giving a chance to re-enable=
-
-interrupts. Just what it should be used for I am not clear. Anyway it see=
-ms all
-other places more or less ignore the flags and map themselves back to an
-ignorant version of spinlock.
-Also I believe that the only high level function that would end up in pas=
-sing
-any flags, would be the spin_lock_irqsave one. And I am pretty sure that =
-this
-one will expect interrupts to stay disabled.
-
-So I tried below approach and that seems to be surviving the previously b=
-reaking
-testcase for much longer than anything I tried before.
-
--Stefan
-
-=46rom f2ebb6626f3e3a00932bf1f4f75265f826c7fba9 Mon Sep 17 00:00:00 2001
-From: Stefan Bader <stefan.bader@canonical.com>
-Date: Thu, 18 Oct 2012 21:40:37 +0200
-Subject: [PATCH 1/2] xen/pv-spinlock: Never enable interrupts in
- xen_spin_lock_slow()
-
-I am not sure what exactly the spin_lock_flags variant of the
-pv-spinlocks (or even in the arch spinlocks) should be used for.
-But it should not be used as an invitation to enable irqs.
-
-The only high-level variant that seems to end up there is the
-spin_lock_irqsave one and that would always be used in a context
-that expects the interrupts to be disabled.
-The generic paravirt-spinlock code just maps the flags variant
-to the one without flags, so just do the same and get rid of
-all the stuff that is not needed anymore.
-
-This seems to be resolving a weird locking issue seen when having
-a high i/o database load on a PV Xen guest with multiple (8+ in
-local experiments) CPUs. Well, thinking about it a second time
-it seems like one of those "how did that ever work?" cases.
-
-Signed-off-by: Stefan Bader <stefan.bader@canonical.com>
----
- arch/x86/xen/spinlock.c |   23 +++++------------------
- 1 file changed, 5 insertions(+), 18 deletions(-)
-
-diff --git a/arch/x86/xen/spinlock.c b/arch/x86/xen/spinlock.c
-index 83e866d..3330a1d 100644
---- a/arch/x86/xen/spinlock.c
-+++ b/arch/x86/xen/spinlock.c
-@@ -24,7 +24,6 @@ static struct xen_spinlock_stats
-       u32 taken_slow_nested;
-       u32 taken_slow_pickup;
-       u32 taken_slow_spurious;
--      u32 taken_slow_irqenable;
-
-       u64 released;
-       u32 released_slow;
-@@ -197,7 +196,7 @@ static inline void unspinning_lock(struct xen_spinloc=
-k *xl,
-struct xen_spinlock
-       __this_cpu_write(lock_spinners, prev);
- }
-
--static noinline int xen_spin_lock_slow(struct arch_spinlock *lock, bool =
-irq_enable)
-+static noinline int xen_spin_lock_slow(struct arch_spinlock *lock)
- {
-       struct xen_spinlock *xl =3D (struct xen_spinlock *)lock;
-       struct xen_spinlock *prev;
-@@ -218,8 +217,6 @@ static noinline int xen_spin_lock_slow(struct arch_sp=
-inlock
-*lock, bool irq_enab
-       ADD_STATS(taken_slow_nested, prev !=3D NULL);
-
-       do {
--              unsigned long flags;
--
-               /* clear pending */
-               xen_clear_irq_pending(irq);
-
-@@ -239,12 +236,6 @@ static noinline int xen_spin_lock_slow(struct arch_s=
-pinlock
-*lock, bool irq_enab
-                       goto out;
-               }
-
--              flags =3D arch_local_save_flags();
--              if (irq_enable) {
--                      ADD_STATS(taken_slow_irqenable, 1);
--                      raw_local_irq_enable();
--              }
--
-               /*
-                * Block until irq becomes pending.  If we're
-                * interrupted at this point (after the trylock but
-@@ -256,8 +247,6 @@ static noinline int xen_spin_lock_slow(struct arch_sp=
-inlock
-*lock, bool irq_enab
-                */
-               xen_poll_irq(irq);
-
--              raw_local_irq_restore(flags);
--
-               ADD_STATS(taken_slow_spurious, !xen_test_irq_pending(irq));
-       } while (!xen_test_irq_pending(irq)); /* check for spurious wakeups */
-
-@@ -270,7 +259,7 @@ out:
-       return ret;
- }
-
--static inline void __xen_spin_lock(struct arch_spinlock *lock, bool irq_=
-enable)
-+static inline void __xen_spin_lock(struct arch_spinlock *lock)
- {
-       struct xen_spinlock *xl =3D (struct xen_spinlock *)lock;
-       unsigned timeout;
-@@ -302,19 +291,19 @@ static inline void __xen_spin_lock(struct arch_spin=
-lock
-*lock, bool irq_enable)
-               spin_time_accum_spinning(start_spin_fast);
-
-       } while (unlikely(oldval !=3D 0 &&
--                        (TIMEOUT =3D=3D ~0 || !xen_spin_lock_slow(lock, irq_enable))));
-+                        (TIMEOUT =3D=3D ~0 || !xen_spin_lock_slow(lock))));
-
-       spin_time_accum_total(start_spin);
- }
-
- static void xen_spin_lock(struct arch_spinlock *lock)
- {
--      __xen_spin_lock(lock, false);
-+      __xen_spin_lock(lock);
- }
-
- static void xen_spin_lock_flags(struct arch_spinlock *lock, unsigned lon=
-g flags)
- {
--      __xen_spin_lock(lock, !raw_irqs_disabled_flags(flags));
-+      __xen_spin_lock(lock);
- }
-
- static noinline void xen_spin_unlock_slow(struct xen_spinlock *xl)
-@@ -424,8 +413,6 @@ static int __init xen_spinlock_debugfs(void)
-                          &spinlock_stats.taken_slow_pickup);
-       debugfs_create_u32("taken_slow_spurious", 0444, d_spin_debug,
-                          &spinlock_stats.taken_slow_spurious);
--      debugfs_create_u32("taken_slow_irqenable", 0444, d_spin_debug,
--                         &spinlock_stats.taken_slow_irqenable);
-
-       debugfs_create_u64("released", 0444, d_spin_debug, &spinlock_stats.rele=
-ased);
-       debugfs_create_u32("released_slow", 0444, d_spin_debug,
---=20
-1.7.9.5
-
-
---------------000604000200030200050803
-Content-Type: text/x-diff;
- name="0001-xen-pv-spinlock-Never-enable-interrupts-in-xen_spin_.patch"
-Content-Transfer-Encoding: quoted-printable
-Content-Disposition: attachment;
- filename*0="0001-xen-pv-spinlock-Never-enable-interrupts-in-xen_spin_.pa";
- filename*1="tch"
-
-=46rom f2ebb6626f3e3a00932bf1f4f75265f826c7fba9 Mon Sep 17 00:00:00 2001
-From: Stefan Bader <stefan.bader@canonical.com>
-Date: Thu, 18 Oct 2012 21:40:37 +0200
-Subject: [PATCH 1/2] xen/pv-spinlock: Never enable interrupts in
- xen_spin_lock_slow()
-
-I am not sure what exactly the spin_lock_flags variant of the
-pv-spinlocks (or even in the arch spinlocks) should be used for.
-But it should not be used as an invitation to enable irqs.
-
-The only high-level variant that seems to end up there is the
-spinlock_irqsave one and that would always be used in a context
-that expects the interrupts to be disabled.
-The generic paravirt-spinlock code just maps the flags variant
-to the one without flags, so just do the same and get rid of
-all the stuff that is not needed anymore.
-
-This seems to be resolving a weird locking issue seen when having
-a high i/o database load on a PV Xen guest with multiple (8+ in
-local experiments) CPUs. Well, thinking about it a second time
-it seems like one of those "how did that ever work?" cases.
-
-Signed-off-by: Stefan Bader <stefan.bader@canonical.com>
----
- arch/x86/xen/spinlock.c |   23 +++++------------------
- 1 file changed, 5 insertions(+), 18 deletions(-)
-
-diff --git a/arch/x86/xen/spinlock.c b/arch/x86/xen/spinlock.c
-index 83e866d..3330a1d 100644
---- a/arch/x86/xen/spinlock.c
-+++ b/arch/x86/xen/spinlock.c
-@@ -24,7 +24,6 @@ static struct xen_spinlock_stats
-       u32 taken_slow_nested;
-       u32 taken_slow_pickup;
-       u32 taken_slow_spurious;
--      u32 taken_slow_irqenable;
-=20
-       u64 released;
-       u32 released_slow;
-@@ -197,7 +196,7 @@ static inline void unspinning_lock(struct xen_spinloc=
-k *xl, struct xen_spinlock
-       __this_cpu_write(lock_spinners, prev);
- }
-=20
--static noinline int xen_spin_lock_slow(struct arch_spinlock *lock, bool =
-irq_enable)
-+static noinline int xen_spin_lock_slow(struct arch_spinlock *lock)
- {
-       struct xen_spinlock *xl =3D (struct xen_spinlock *)lock;
-       struct xen_spinlock *prev;
-@@ -218,8 +217,6 @@ static noinline int xen_spin_lock_slow(struct arch_sp=
-inlock *lock, bool irq_enab
-       ADD_STATS(taken_slow_nested, prev !=3D NULL);
-=20
-       do {
--              unsigned long flags;
--
-               /* clear pending */
-               xen_clear_irq_pending(irq);
-=20
-@@ -239,12 +236,6 @@ static noinline int xen_spin_lock_slow(struct arch_s=
-pinlock *lock, bool irq_enab
-                       goto out;
-               }
-=20
--              flags =3D arch_local_save_flags();
--              if (irq_enable) {
--                      ADD_STATS(taken_slow_irqenable, 1);
--                      raw_local_irq_enable();
--              }
--
-               /*
-                * Block until irq becomes pending.  If we're
-                * interrupted at this point (after the trylock but
-@@ -256,8 +247,6 @@ static noinline int xen_spin_lock_slow(struct arch_sp=
-inlock *lock, bool irq_enab
-                */
-               xen_poll_irq(irq);
-=20
--              raw_local_irq_restore(flags);
--
-               ADD_STATS(taken_slow_spurious, !xen_test_irq_pending(irq));
-       } while (!xen_test_irq_pending(irq)); /* check for spurious wakeups */
-=20
-@@ -270,7 +259,7 @@ out:
-       return ret;
- }
-=20
--static inline void __xen_spin_lock(struct arch_spinlock *lock, bool irq_=
-enable)
-+static inline void __xen_spin_lock(struct arch_spinlock *lock)
- {
-       struct xen_spinlock *xl =3D (struct xen_spinlock *)lock;
-       unsigned timeout;
-@@ -302,19 +291,19 @@ static inline void __xen_spin_lock(struct arch_spin=
-lock *lock, bool irq_enable)
-               spin_time_accum_spinning(start_spin_fast);
-=20
-       } while (unlikely(oldval !=3D 0 &&
--                        (TIMEOUT =3D=3D ~0 || !xen_spin_lock_slow(lock, irq_enable))));
-+                        (TIMEOUT =3D=3D ~0 || !xen_spin_lock_slow(lock))));
-=20
-       spin_time_accum_total(start_spin);
- }
-=20
- static void xen_spin_lock(struct arch_spinlock *lock)
- {
--      __xen_spin_lock(lock, false);
-+      __xen_spin_lock(lock);
- }
-=20
- static void xen_spin_lock_flags(struct arch_spinlock *lock, unsigned lon=
-g flags)
- {
--      __xen_spin_lock(lock, !raw_irqs_disabled_flags(flags));
-+      __xen_spin_lock(lock);
- }
-=20
- static noinline void xen_spin_unlock_slow(struct xen_spinlock *xl)
-@@ -424,8 +413,6 @@ static int __init xen_spinlock_debugfs(void)
-                          &spinlock_stats.taken_slow_pickup);
-       debugfs_create_u32("taken_slow_spurious", 0444, d_spin_debug,
-                          &spinlock_stats.taken_slow_spurious);
--      debugfs_create_u32("taken_slow_irqenable", 0444, d_spin_debug,
--                         &spinlock_stats.taken_slow_irqenable);
-=20
-       debugfs_create_u64("released", 0444, d_spin_debug, &spinlock_stats.rele=
-ased);
-       debugfs_create_u32("released_slow", 0444, d_spin_debug,
---=20
-1.7.9.5
-
-
---------------000604000200030200050803--
-
---------------enig07495305BB5B4065E9069FF1
-Content-Type: application/pgp-signature; name="signature.asc"
-Content-Description: OpenPGP digital signature
-Content-Disposition: attachment; filename="signature.asc"
-
------BEGIN PGP SIGNATURE-----
-Version: GnuPG v1.4.11 (GNU/Linux)
-Comment: Using GnuPG with Mozilla - http://www.enigmail.net/
-
-iQIcBAEBCgAGBQJQgGwLAAoJEOhnXe7L7s6jZjwP/jiw4qycURVgcb1Spwn4dW6b
-Pyn6WoT014e6Fj4V9n24esDOYexjg8ORFf77trqi7qpp04KAxp7aAyTMQca6FAcW
-GpVSuOPKkEaS0qexHvUZVChBmUz+47oSf4jdrhsowHAd+qWHIzLt5qN/NBFJArjf
-3F4lAvqniqheHmp0TqW1oVyt2R82cFU0Ezik/mquABlUrE4kXIEJMaoJtTL93WsU
-WhgRkdspJAHGEqN0VRXEd+uiVPkJTgjyZh+z8PBaAPhznCzlhuO1F+LUWAEANLzW
-lmMq7iM7+SdkKupWYkPNuHJHOjlgn2Hm4lEhnXTCqQBQJzUmjSSk5fW4x9oYoOqu
-Sy7RUEO8vFMJ9GRYzvhDCTHekXe1uWJ38JEoPZ2JFhL4f24OOk+ClGAIE0hh0If3
-CdIvaNJoPxmCrEG4TQfLyEb9LWsSV1jDgOyYp4pHXPClLCaw/ceXk0cof2Phxu49
-7OsuXcVrfrboQ1Pb0Mweqc/N+KAqIyxYFvNTcmmwTGBeX9Aj1CsVzF3TD49uZnb+
-A6n7W56boqMt8Mg+u6FCkZH1a3sE2oH45YmlTU6YQ+WRGeZcLFx/mi8VQHsxB7zB
-PG1oCS12+GltlJjZhedUFonaIIlLrpUt2effedpyLPoPX9BJhBJYW/JOheViaXUa
-yC3XC3ehlhefqTd8ymmF
-=OYGm
------END PGP SIGNATURE-----
-
---------------enig07495305BB5B4065E9069FF1--
-
-
---===============2958323107161820582==
-Content-Type: text/plain; charset="us-ascii"
-MIME-Version: 1.0
-Content-Transfer-Encoding: 7bit
-Content-Disposition: inline
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
---===============2958323107161820582==--
-
-
diff --git a/test/corpus/<5080FCE6.906@canonical.com> b/test/corpus/<5080FCE6.906@canonical.com>
deleted file mode 100644 (file)
index 21b5608..0000000
+++ /dev/null
@@ -1,167 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Oct 19 08:15:40 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 19 Oct 2012 08:15:40 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TP6nx-0003dN-PM
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 19 Oct 2012 08:15:40 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TP6jC-0003ua-5P; Fri, 19 Oct 2012 07:10:42 +0000
-Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <stefan.bader@canonical.com>) id 1TP6jA-0003uV-7k
-       for xen-devel@lists.xen.org; Fri, 19 Oct 2012 07:10:40 +0000
-Received: from [193.109.254.147:29723] by server-5.bemta-14.messagelabs.com id
-       91/C7-18309-FECF0805; Fri, 19 Oct 2012 07:10:39 +0000
-X-Env-Sender: stefan.bader@canonical.com
-X-Msg-Ref: server-6.tower-27.messagelabs.com!1350630637!4106393!1
-X-Originating-IP: [91.189.89.112]
-X-SpamReason: No, hits=0.0 required=7.0 tests=
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 32153 invoked from network); 19 Oct 2012 07:10:37 -0000
-Received: from youngberry.canonical.com (HELO youngberry.canonical.com)
-       (91.189.89.112) by server-6.tower-27.messagelabs.com with SMTP;
-       19 Oct 2012 07:10:37 -0000
-Received: from p5b2e238c.dip.t-dialin.net ([91.46.35.140] helo=[192.168.2.5])
-       by youngberry.canonical.com with esmtpsa
-       (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71)
-       (envelope-from <stefan.bader@canonical.com>)
-       id 1TP6j3-0001Lp-EK; Fri, 19 Oct 2012 07:10:33 +0000
-Message-ID: <5080FCE6.906@canonical.com>
-Date: Fri, 19 Oct 2012 09:10:30 +0200
-From: Stefan Bader <stefan.bader@canonical.com>
-User-Agent: Mozilla/5.0 (X11; Linux x86_64;
-       rv:16.0) Gecko/20121011 Thunderbird/16.0.1
-MIME-Version: 1.0
-To: Jan Beulich <JBeulich@suse.com>
-References: <1350479456-4007-1-git-send-email-stefan.bader@canonical.com>
-       <507EB27D.8050308@citrix.com>
-       <1350482118.2460.74.camel@zakaz.uk.xensource.com>
-       <507ECD06.2050407@canonical.com> <507ED038.8000806@citrix.com>
-       <507FC51102000078000A235E@nat28.tlf.novell.com>
-       <507FC71502000078000A236C@nat28.tlf.novell.com>
-       <507FB1E1.8080700@canonical.com>
-       <1350546483.28188.25.camel@dagon.hellion.org.uk>
-       <507FD7DE.2010209@canonical.com>
-       <507FFA5102000078000A250D@nat28.tlf.novell.com>
-       <507FF964.9090009@canonical.com> <50806C0B.1060504@canonical.com>
-In-Reply-To: <50806C0B.1060504@canonical.com>
-X-Enigmail-Version: 1.4.5
-Cc: Andrew Cooper <Andrew.Cooper3@citrix.com>,
-       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
-       Ian Campbell <Ian.Campbell@citrix.com>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: multipart/mixed; boundary="===============7737577943205625628=="
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.6 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] Xen PVM: Strange lockups when running PostgreSQL
- load
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-This is an OpenPGP/MIME signed message (RFC 2440 and 3156)
---===============7737577943205625628==
-Content-Type: multipart/signed; micalg=pgp-sha512;
- protocol="application/pgp-signature";
- boundary="------------enigCAE020D9B8986FF1DDE9B1EA"
-
-This is an OpenPGP/MIME signed message (RFC 2440 and 3156)
---------------enigCAE020D9B8986FF1DDE9B1EA
-Content-Type: text/plain; charset=ISO-8859-1
-Content-Transfer-Encoding: quoted-printable
-
-On 18.10.2012 22:52, Stefan Bader wrote:
-> On 18.10.2012 14:43, Stefan Bader wrote:
-
-> So I tried below approach and that seems to be surviving the previously=
- breaking
-> testcase for much longer than anything I tried before.
->=20
-> -Stefan
->=20
-> From f2ebb6626f3e3a00932bf1f4f75265f826c7fba9 Mon Sep 17 00:00:00 2001
-> From: Stefan Bader <stefan.bader@canonical.com>
-> Date: Thu, 18 Oct 2012 21:40:37 +0200
-> Subject: [PATCH 1/2] xen/pv-spinlock: Never enable interrupts in
->  xen_spin_lock_slow()
->=20
-
-Testcase ran the whole night without problems. Now re-started it with a c=
-leaner
-kernel (only the patch above applied and no debugging and it has again pa=
-ssed
-the threshold it would have broken before.
-
--Stefan
-
-Oh, just in case this *is* the solution, it should very definitely be mar=
-ked
-with a cc: stable.
-
-
-
---------------enigCAE020D9B8986FF1DDE9B1EA
-Content-Type: application/pgp-signature; name="signature.asc"
-Content-Description: OpenPGP digital signature
-Content-Disposition: attachment; filename="signature.asc"
-
------BEGIN PGP SIGNATURE-----
-Version: GnuPG v1.4.11 (GNU/Linux)
-Comment: Using GnuPG with Mozilla - http://www.enigmail.net/
-
-iQIcBAEBCgAGBQJQgPzmAAoJEOhnXe7L7s6j8bUP/ittlWh6RnaAsI12Yh33XJ5t
-pnquYNqbo84YSc8SnyOs5G5f//sMxJgStUoAPKCCLWTW0yPkX00tstreoAxjuJ5R
-+cLZK4ib8BdCvgAdxUwq7zbt/QNe/FA7AK7LpPM0mKhV+GycxDJ8JqeQbrTI3GLO
-O9JKiX2KM8hzw3G8qdQ9fnuDnOLKIPXNDHlKUHE4LcIAuFkfDBYIuA/wGweO9b4h
-Can3oOBvi9S02CPzn8ygZN3bOL82jFYPlK2kmX2z3O7kX2JTSPy1c4PivWsuf/wY
-ukV0c7OrdZR0PGveTUHzQzIdA6H8NxV5AERuEaCAOuS7p/EER48Z4+gmlafHKmXv
-mpfaooFKsGWmnfkpKj7PvA1vN3zURRIhb/U4rM1EEHnHCHKxG/I1HcUn5g3K1cMs
-/FnW/BsU8o5j4U6ZtdMfrQihgCJxDKmBiAgU2P6SkH+yb1RUxgZPVzKtxGeEnM7R
-O2CCLzDvdcPciG+XuYG+3JJrY6Zs9xn7gZrqMutYgbhz3YSG5+v3ALVX5Z0boff6
-X6cLGEQjmH2gw0uATBH9VgLtA7a5zBOd5YxGUhyVou6YdBqsO3/LiqJjPEGsGiM6
-slE/OdBrXU6Ic7cn1JlGiDHxNuEjQgjxHZVRMcY1ccAwnJh5ZpXZ5kwDj1MKPVgx
-mh6qvbLxyGkbzQ6TEqOW
-=x0Oj
------END PGP SIGNATURE-----
-
---------------enigCAE020D9B8986FF1DDE9B1EA--
-
-
---===============7737577943205625628==
-Content-Type: text/plain; charset="us-ascii"
-MIME-Version: 1.0
-Content-Transfer-Encoding: 7bit
-Content-Disposition: inline
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
---===============7737577943205625628==--
-
-
diff --git a/test/corpus/<51efcbff92f713286b5839884769ef34ab0c39f7.1345552068.git.julien.grall@citrix.com> b/test/corpus/<51efcbff92f713286b5839884769ef34ab0c39f7.1345552068.git.julien.grall@citrix.com>
deleted file mode 100644 (file)
index 9d28b48..0000000
+++ /dev/null
@@ -1,165 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Aug 22 19:58:45 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 22 Aug 2012 19:58:45 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T4G8S-0002ku-6S
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 22 Aug 2012 19:58:45 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T4G5S-00072Z-7s; Wed, 22 Aug 2012 18:55:30 +0000
-Received: from mail27.messagelabs.com ([193.109.254.147])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <julien.grall@citrix.com>) id 1T4G5Q-0006pK-2E
-       for xen-devel@lists.xen.org; Wed, 22 Aug 2012 18:55:28 +0000
-X-Env-Sender: julien.grall@citrix.com
-X-Msg-Ref: server-12.tower-27.messagelabs.com!1345661712!9781420!6
-X-Originating-IP: [66.165.176.89]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNjU4OTQ=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 7504 invoked from network); 22 Aug 2012 18:55:21 -0000
-Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
-       by server-12.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
-       22 Aug 2012 18:55:21 -0000
-X-IronPort-AV: E=Sophos;i="4.80,809,1344225600"; d="scan'208";a="35484809"
-Received: from ftlpmailmx01.citrite.net ([10.13.107.65])
-       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       22 Aug 2012 14:55:20 -0400
-Received: from meteora.cam.xci-test.com (10.80.248.22) by smtprelay.citrix.com
-       (10.13.107.65) with Microsoft SMTP Server id 8.3.213.0;
-       Wed, 22 Aug 2012 14:55:20 -0400
-From: Julien Grall <julien.grall@citrix.com>
-To: qemu-devel@nongnu.org
-Date: Wed, 22 Aug 2012 13:31:58 +0100
-Message-ID: <51efcbff92f713286b5839884769ef34ab0c39f7.1345552068.git.julien.grall@citrix.com>
-X-Mailer: git-send-email 1.7.2.5
-In-Reply-To: <cover.1345552068.git.julien.grall@citrix.com>
-References: <cover.1345552068.git.julien.grall@citrix.com>
-MIME-Version: 1.0
-Cc: Julien Grall <julien.grall@citrix.com>, christian.limpach@gmail.com,
-       Stefano.Stabellini@eu.citrix.com, xen-devel@lists.xen.org
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DATE_IN_PAST_06_12,
-       RCVD_IN_DNSWL_MED,RP_MATCHES_RCVD autolearn=ham version=3.3.1
-Subject: [Xen-devel] [XEN][RFC PATCH V2 12/17] xl: Add interface to handle
-       qemu disaggregation
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-This patch modifies libxl interface for qemu disaggregation.
-For the moment, due to some dependencies between devices, we
-can't let the user choose which QEMU emulate a device.
-
-Moreoever this patch adds an "id" field to nic interface.
-It will be used in config file to specify which QEMU handle
-the network card.
-
-A possible disaggregation is:
-    - UI: Emulate graphic card, USB, keyboard, mouse, default devices
-    (PIIX4, root bridge, ...)
-    - IDE: Emulate disk
-    - Serial: Emulate serial port
-    - Audio: Emulate audio card
-    - Net: Emulate one or more network cards, multiple QEMU can emulate
-    different card. The emulated card is specified with its nic ID.
-
-Signed-off-by: Julien Grall <julien.grall@citrix.com>
----
- tools/libxl/libxl.h         |    3 +++
- tools/libxl/libxl_types.idl |   15 +++++++++++++++
- 2 files changed, 18 insertions(+), 0 deletions(-)
-
-diff --git a/tools/libxl/libxl.h b/tools/libxl/libxl.h
-index c614d6f..71d4808 100644
---- a/tools/libxl/libxl.h
-+++ b/tools/libxl/libxl.h
-@@ -307,6 +307,7 @@ void libxl_cpuid_dispose(libxl_cpuid_policy_list *cpuid_list);
- #define LIBXL_PCI_FUNC_ALL (~0U)
- typedef uint32_t libxl_domid;
-+typedef uint32_t libxl_dmid;
- /*
-  * Formatting Enumerations.
-@@ -478,12 +479,14 @@ typedef struct {
-     libxl_domain_build_info b_info;
-     int num_disks, num_nics, num_pcidevs, num_vfbs, num_vkbs;
-+    int num_dms;
-     libxl_device_disk *disks;
-     libxl_device_nic *nics;
-     libxl_device_pci *pcidevs;
-     libxl_device_vfb *vfbs;
-     libxl_device_vkb *vkbs;
-+    libxl_dm *dms;
-     libxl_action_on_shutdown on_poweroff;
-     libxl_action_on_shutdown on_reboot;
-diff --git a/tools/libxl/libxl_types.idl b/tools/libxl/libxl_types.idl
-index daa8c79..36c802a 100644
---- a/tools/libxl/libxl_types.idl
-+++ b/tools/libxl/libxl_types.idl
-@@ -246,6 +246,20 @@ libxl_domain_sched_params = Struct("domain_sched_params",[
-     ("extratime",    integer, {'init_val': 'LIBXL_DOMAIN_SCHED_PARAM_EXTRATIME_DEFAULT'}),
-     ])
-+libxl_dm_cap = Enumeration("dm_cap", [
-+    (1, "UI"), # Emulate all UI + default device
-+    (2, "IDE"), # Emulate IDE
-+    (4, "SERIAL"), # Emulate Serial
-+    (8, "AUDIO"), # Emulate audio
-+    ])
-+
-+libxl_dm = Struct("dm", [
-+    ("name",         string),
-+    ("path",         string),
-+    ("capabilities",   uint64),
-+    ("vifs",         libxl_string_list),
-+    ])
-+
- libxl_domain_build_info = Struct("domain_build_info",[
-     ("max_vcpus",       integer),
-     ("avail_vcpus",     libxl_bitmap),
-@@ -367,6 +381,7 @@ libxl_device_nic = Struct("device_nic", [
-     ("nictype", libxl_nic_type),
-     ("rate_bytes_per_interval", uint64),
-     ("rate_interval_usecs", uint32),
-+    ("id", string),
-     ])
- libxl_device_pci = Struct("device_pci", [
--- 
-Julien Grall
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<557fe87e4a6c0defdc6549e23e8e5e7b2ebb7a9f.1345552068.git.julien.grall@citrix.com> b/test/corpus/<557fe87e4a6c0defdc6549e23e8e5e7b2ebb7a9f.1345552068.git.julien.grall@citrix.com>
deleted file mode 100644 (file)
index b719980..0000000
+++ /dev/null
@@ -1,285 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Aug 22 19:59:00 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 22 Aug 2012 19:59:00 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T4G8j-0002os-4V
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 22 Aug 2012 19:59:00 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T4G5X-0007D1-1x; Wed, 22 Aug 2012 18:55:35 +0000
-Received: from mail27.messagelabs.com ([193.109.254.147])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <julien.grall@citrix.com>) id 1T4G5U-0006xb-MA
-       for xen-devel@lists.xen.org; Wed, 22 Aug 2012 18:55:32 +0000
-X-Env-Sender: julien.grall@citrix.com
-X-Msg-Ref: server-12.tower-27.messagelabs.com!1345661712!9781420!7
-X-Originating-IP: [66.165.176.89]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNjU4OTQ=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 7611 invoked from network); 22 Aug 2012 18:55:23 -0000
-Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
-       by server-12.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
-       22 Aug 2012 18:55:23 -0000
-X-IronPort-AV: E=Sophos;i="4.80,809,1344225600"; d="scan'208";a="35484811"
-Received: from ftlpmailmx01.citrite.net ([10.13.107.65])
-       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       22 Aug 2012 14:55:23 -0400
-Received: from meteora.cam.xci-test.com (10.80.248.22) by smtprelay.citrix.com
-       (10.13.107.65) with Microsoft SMTP Server id 8.3.213.0;
-       Wed, 22 Aug 2012 14:55:22 -0400
-From: Julien Grall <julien.grall@citrix.com>
-To: qemu-devel@nongnu.org
-Date: Wed, 22 Aug 2012 13:32:00 +0100
-Message-ID: <557fe87e4a6c0defdc6549e23e8e5e7b2ebb7a9f.1345552068.git.julien.grall@citrix.com>
-X-Mailer: git-send-email 1.7.2.5
-In-Reply-To: <cover.1345552068.git.julien.grall@citrix.com>
-References: <cover.1345552068.git.julien.grall@citrix.com>
-MIME-Version: 1.0
-Cc: Julien Grall <julien.grall@citrix.com>, christian.limpach@gmail.com,
-       Stefano.Stabellini@eu.citrix.com, xen-devel@lists.xen.org
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DATE_IN_PAST_06_12,
-       RCVD_IN_DNSWL_MED,RP_MATCHES_RCVD autolearn=ham version=3.3.1
-Subject: [Xen-devel] [XEN][RFC PATCH V2 14/17] xl-parsing: Parse new
-       device_models option
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-Add new option "device_models". The user can specify the capability of the
-QEMU (ui, vifs, ...). This option only works with QEMU upstream (qemu-xen).
-
-For instance:
-device_models= [ 'name=all,vifs=nic1', 'name=qvga,ui', 'name=qide,ide' ]
-
-Each device model can also take a path argument which override the default one.
-It's usefull for debugging.
-
-Signed-off-by: Julien Grall <julien.grall@citrix.com>
----
- tools/libxl/Makefile     |    2 +-
- tools/libxl/libxlu_dm.c  |   96 ++++++++++++++++++++++++++++++++++++++++++++++
- tools/libxl/libxlutil.h  |    5 ++
- tools/libxl/xl_cmdimpl.c |   29 +++++++++++++-
- 4 files changed, 130 insertions(+), 2 deletions(-)
- create mode 100644 tools/libxl/libxlu_dm.c
-
-diff --git a/tools/libxl/Makefile b/tools/libxl/Makefile
-index 47fb110..2b58721 100644
---- a/tools/libxl/Makefile
-+++ b/tools/libxl/Makefile
-@@ -79,7 +79,7 @@ AUTOINCS= libxlu_cfg_y.h libxlu_cfg_l.h _libxl_list.h _paths.h \
- AUTOSRCS= libxlu_cfg_y.c libxlu_cfg_l.c
- AUTOSRCS += _libxl_save_msgs_callout.c _libxl_save_msgs_helper.c
- LIBXLU_OBJS = libxlu_cfg_y.o libxlu_cfg_l.o libxlu_cfg.o \
--      libxlu_disk_l.o libxlu_disk.o libxlu_vif.o libxlu_pci.o
-+      libxlu_disk_l.o libxlu_disk.o libxlu_vif.o libxlu_pci.o libxlu_dm.o
- $(LIBXLU_OBJS): CFLAGS += $(CFLAGS_libxenctrl) # For xentoollog.h
- CLIENTS = xl testidl libxl-save-helper
-diff --git a/tools/libxl/libxlu_dm.c b/tools/libxl/libxlu_dm.c
-new file mode 100644
-index 0000000..9f0a347
---- /dev/null
-+++ b/tools/libxl/libxlu_dm.c
-@@ -0,0 +1,96 @@
-+#include "libxl_osdeps.h" /* must come before any other headers */
-+#include <stdlib.h>
-+#include "libxlu_internal.h"
-+#include "libxlu_cfg_i.h"
-+
-+static void split_string_into_string_list(const char *str,
-+                                          const char *delim,
-+                                          libxl_string_list *psl)
-+{
-+    char *s, *saveptr;
-+    const char *p;
-+    libxl_string_list sl;
-+
-+    int i = 0, nr = 0;
-+
-+    s = strdup(str);
-+    if (s == NULL) {
-+        fprintf(stderr, "xlu_dm: unable to allocate memory\n");
-+        exit(-1);
-+    }
-+
-+    /* Count number of entries */
-+    p = strtok_r(s, delim, &saveptr);
-+    do {
-+        nr++;
-+    } while ((p = strtok_r(NULL, delim, &saveptr)));
-+
-+    free(s);
-+
-+    s = strdup(str);
-+
-+    sl = malloc((nr+1) * sizeof (char *));
-+    if (sl == NULL) {
-+        fprintf(stderr, "xlu_dm: unable to allocate memory\n");
-+        exit(-1);
-+    }
-+
-+    p = strtok_r(s, delim, &saveptr);
-+    do {
-+        assert(i < nr);
-+        // Skip blank
-+        while (*p == ' ')
-+            p++;
-+        sl[i] = strdup(p);
-+        i++;
-+    } while ((p = strtok_r(NULL, delim, &saveptr)));
-+    sl[i] = NULL;
-+
-+    *psl = sl;
-+
-+    free(s);
-+}
-+
-+int xlu_dm_parse(XLU_Config *cfg, const char *spec,
-+                 libxl_dm *dm)
-+{
-+    char *buf = strdup(spec);
-+    char *p, *p2;
-+    int rc = 0;
-+
-+    p = strtok(buf, ",");
-+    if (!p)
-+        goto skip_dm;
-+    do {
-+        while (*p == ' ')
-+            p++;
-+        if ((p2 = strchr(p, '=')) == NULL) {
-+            if (!strcmp(p, "ui"))
-+                dm->capabilities |= LIBXL_DM_CAP_UI;
-+            else if (!strcmp(p, "ide"))
-+                dm->capabilities |= LIBXL_DM_CAP_IDE;
-+            else if (!strcmp(p, "serial"))
-+                dm->capabilities |= LIBXL_DM_CAP_SERIAL;
-+            else if (!strcmp(p, "audio"))
-+                dm->capabilities |= LIBXL_DM_CAP_AUDIO;
-+        } else {
-+            *p2 = '\0';
-+            if (!strcmp(p, "name"))
-+                dm->name = strdup(p2 + 1);
-+            else if (!strcmp(p, "path"))
-+                dm->path = strdup(p2 + 1);
-+            else if (!strcmp(p, "vifs"))
-+                split_string_into_string_list(p2 + 1, ";", &dm->vifs);
-+       }
-+    } while ((p = strtok(NULL, ",")) != NULL);
-+
-+    if (!dm->name && dm->path)
-+    {
-+        fprintf(stderr, "xl: Unable to parse device_deamon\n");
-+        exit(-ERROR_FAIL);
-+    }
-+skip_dm:
-+    free(buf);
-+
-+    return rc;
-+}
-diff --git a/tools/libxl/libxlutil.h b/tools/libxl/libxlutil.h
-index 0333e55..db22715 100644
---- a/tools/libxl/libxlutil.h
-+++ b/tools/libxl/libxlutil.h
-@@ -93,6 +93,11 @@ int xlu_disk_parse(XLU_Config *cfg, int nspecs, const char *const *specs,
-  */
- int xlu_pci_parse_bdf(XLU_Config *cfg, libxl_device_pci *pcidev, const char *str);
-+/*
-+ * Daemon specification parsing.
-+ */
-+int xlu_dm_parse(XLU_Config *cfg, const char *spec,
-+                 libxl_dm *dm);
- /*
-  * Vif rate parsing.
-diff --git a/tools/libxl/xl_cmdimpl.c b/tools/libxl/xl_cmdimpl.c
-index 138cd72..2a26fa4 100644
---- a/tools/libxl/xl_cmdimpl.c
-+++ b/tools/libxl/xl_cmdimpl.c
-@@ -561,7 +561,7 @@ static void parse_config_data(const char *config_source,
-     const char *buf;
-     long l;
-     XLU_Config *config;
--    XLU_ConfigList *cpus, *vbds, *nics, *pcis, *cvfbs, *cpuids;
-+    XLU_ConfigList *cpus, *vbds, *nics, *pcis, *cvfbs, *cpuids, *dms;
-     int pci_power_mgmt = 0;
-     int pci_msitranslate = 0;
-     int pci_permissive = 0;
-@@ -995,6 +995,9 @@ static void parse_config_data(const char *config_source,
-                 } else if (!strcmp(p, "vifname")) {
-                     free(nic->ifname);
-                     nic->ifname = strdup(p2 + 1);
-+                } else if (!strcmp(p, "id")) {
-+                    free(nic->id);
-+                    nic->id = strdup(p2 + 1);
-                 } else if (!strcmp(p, "backend")) {
-                     if(libxl_name_to_domid(ctx, (p2 + 1), &(nic->backend_domid))) {
-                         fprintf(stderr, "Specified backend domain does not exist, defaulting to Dom0\n");
-@@ -1249,6 +1252,30 @@ skip_vfb:
-             }
-         }
-     }
-+
-+    d_config->num_dms = 0;
-+    d_config->dms = NULL;
-+
-+    if (b_info->device_model_version == LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN
-+        && !xlu_cfg_get_list (config, "device_models", &dms, 0, 0)) {
-+        while ((buf = xlu_cfg_get_listitem (dms, d_config->num_dms)) != NULL) {
-+            libxl_dm *dm;
-+            size_t size = sizeof (libxl_dm) * (d_config->num_dms + 1);
-+
-+            d_config->dms = (libxl_dm *)realloc (d_config->dms, size);
-+            if (!d_config->dms) {
-+                fprintf(stderr, "Can't realloc d_config->dms\n");
-+                exit (1);
-+            }
-+            dm = d_config->dms + d_config->num_dms;
-+            libxl_dm_init (dm);
-+            if (xlu_dm_parse(config, buf, dm)) {
-+                exit (-ERROR_FAIL);
-+            }
-+            d_config->num_dms++;
-+        }
-+    }
-+
- #define parse_extra_args(type)                                            \
-     e = xlu_cfg_get_list_as_string_list(config, "device_model_args"#type, \
-                                     &b_info->extra##type, 0);            \
--- 
-Julien Grall
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<5CDD8D0357624EC096B9FE6F96850269@LarryE6400> b/test/corpus/<5CDD8D0357624EC096B9FE6F96850269@LarryE6400>
deleted file mode 100644 (file)
index 61dc4e8..0000000
+++ /dev/null
@@ -1,155 +0,0 @@
-From xen-devel-bounces@lists.xen.org Sat Jul 21 16:10:24 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Sat, 21 Jul 2012 16:10:24 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SsbK2-0007TZ-1G
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Sat, 21 Jul 2012 16:10:24 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SsbE6-0006UE-DN; Sat, 21 Jul 2012 15:04:14 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <lmw@satx.rr.com>) id 1SsbE4-0006U6-Bo
-       for xen-devel@lists.xen.org; Sat, 21 Jul 2012 15:04:12 +0000
-Received: from [85.158.138.51:28201] by server-1.bemta-3.messagelabs.com id
-       A3/B1-31934-BE4CA005; Sat, 21 Jul 2012 15:04:11 +0000
-X-Env-Sender: lmw@satx.rr.com
-X-Msg-Ref: server-3.tower-174.messagelabs.com!1342883048!19998035!1
-X-Originating-IP: [75.180.132.120]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       QmFkIElQOiA3NS4xODAuMTMyLjEyMCA9PiA4OTE1OA==\n,sa_preprocessor: 
-       QmFkIElQOiA3NS4xODAuMTMyLjEyMCA9PiA4OTE1OA==\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.2; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 31823 invoked from network); 21 Jul 2012 15:04:09 -0000
-Received: from cdptpa-omtalb.mail.rr.com (HELO cdptpa-omtalb.mail.rr.com)
-       (75.180.132.120) by server-3.tower-174.messagelabs.com with SMTP;
-       21 Jul 2012 15:04:09 -0000
-X-Authority-Analysis: v=2.0 cv=Dp/UCRD+ c=1 sm=0 a=r1aGfrPin9q3IVjnGKu9DA==:17
-       a=mkDZTsCubmwA:10 a=YIV_H7EphM0A:10 a=05ChyHeVI94A:10
-       a=kj9zAlcOel0A:10 a=ayC55rCoAAAA:8 a=aIfeI5IIAAAA:8
-       a=mLnsDVdbAAAA:8 a=Cn_b-13N7H_b4d97ag8A:9 a=CjuIK1q_8ugA:10
-       a=q4caQGXUH8Gp4QHh:21 a=wpwT_26DpOu5L76C:21
-       a=r1aGfrPin9q3IVjnGKu9DA==:117
-X-Cloudmark-Score: 0
-X-Originating-IP: 66.69.0.49
-Received: from [66.69.0.49] ([66.69.0.49:49659] helo=LarryE6400)
-       by cdptpa-oedge02.mail.rr.com (envelope-from <lmw@satx.rr.com>)
-       (ecelerity 2.2.3.46 r()) with ESMTP
-       id 4C/58-13948-8E4CA005; Sat, 21 Jul 2012 15:04:08 +0000
-From: "Larry White" <lmw@satx.rr.com>
-To: "'James Harper'" <james.harper@bendigoit.com.au>, <xen-devel@lists.xen.org>
-References: <A8575D3216834DFCAA86F5B2B3546613@LarryE6400>
-       <6035A0D088A63A46850C3988ED045A4B299B8A95@BITCOM1.int.sbss.com.au>
-       <1E8F546AD8E64BF1B2D68D24F3BD4050@LarryE6400>
-       <6035A0D088A63A46850C3988ED045A4B299B8F9D@BITCOM1.int.sbss.com.au>
-In-Reply-To: <6035A0D088A63A46850C3988ED045A4B299B8F9D@BITCOM1.int.sbss.com.au>
-Date: Sat, 21 Jul 2012 10:04:02 -0500
-Message-ID: <5CDD8D0357624EC096B9FE6F96850269@LarryE6400>
-MIME-Version: 1.0
-X-Mailer: Microsoft Office Outlook 11
-X-MimeOLE: Produced By Microsoft MimeOLE V6.1.7601.17609
-Thread-Index: Ac1m2/yuJJyO+ROQQxKMLV1mGoHskAABhbjAAABDEwAAAe6rkAAYxGOA
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] XenStore as a data transfer path?
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-Hi James,
-Thanks for your help with this.  I am brand new to Xen, so I appreciate the
-information so I can get started on the correct path.
-
-
------Original Message-----
-From: James Harper [mailto:james.harper@bendigoit.com.au] 
-Sent: Saturday, July 21, 2012 7:01 AM
-To: Larry White; xen-devel@lists.xen.org
-Subject: RE: [Xen-devel] XenStore as a data transfer path?
-
-> >
-> > Can the XenStore database be accessed by domU's?
-> >
-> 
-> >>Yes. That is how the frontend/backend devices set up their
-> >>communication channels.
-> 
-> Are you saying that the actual data going back and forth gets put into the
-> XenStore?  I thought that the XenStore was mostly used for configuration
-> keyword values and such that the underlying drivers needed.
-> 
-
->>Yes. It's how they set up their communication channels. The communication
->>channels are shared pages of memory and event channels, but they use
->>xenstore to set it up (eg so the backend can find the address of the
->>frontend ring.
-
-I realize XenStore is used to help setup these channels.  However, for some
-reason, I was thinking if this information is visible between both dom0 and
-domU, I could use it to pass my data back and forth through.  Currently, my
-domU Fedora Kernel is a plain vanilla version configured as a HVM which may
-not be able to access the XenStore (not sure about this).  Do I need a
-special guest kernel to perform Xen communication with dom0?  If so, what
-about Windows?  Is there a special Guest Xen windows binary also for it?
-
-I guess I was thinking that a simple XenStore only approach would eliminate
-having to setup a split-driver model that utilized ring-buffers and such.
-Of course, I can certainly do this if this is the correct thing to do.  I
-just didn't think it had to be too complicated for such a small amount of
-data that needs to be transferred.
-
-> >
-> > If so, could it be used to pass small amounts of data back and forth
-> between
-> > dom0 and domU's using XenStore key entries?  If this is possible, it
-> > would seem that this could eliminate the need to create a "device"
-> > driver for a simple communication path.
-> >
-> 
-> >>Yes, for certain values of "small". Can you say more about the sort of
-> >>data you would be passing? In particular the throughput and latency
-> >>requirements?
-> 
-> I would say that the small amount of data here per transfer would be
-around
-> 32 bytes in length with a latency of around 500ms or so.
-> 
-
->>How fast though? Is it 32 bytes every 1ms, or 32 bytes every 20 seconds?
-
-32 bytes every 500ms (1/2 second).
-
-Larry
-
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<6035A0D088A63A46850C3988ED045A4B299B8A95@BITCOM1.int.sbss.com.au> b/test/corpus/<6035A0D088A63A46850C3988ED045A4B299B8A95@BITCOM1.int.sbss.com.au>
deleted file mode 100644 (file)
index 26d7a2b..0000000
+++ /dev/null
@@ -1,112 +0,0 @@
-From xen-devel-bounces@lists.xen.org Sat Jul 21 02:49:08 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Sat, 21 Jul 2012 02:49:08 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SsOob-0001iW-UU
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Sat, 21 Jul 2012 02:49:08 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SsOjs-0002BH-IZ; Sat, 21 Jul 2012 01:44:12 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <james.harper@bendigoit.com.au>) id 1SsOjq-0002BC-CO
-       for xen-devel@lists.xen.org; Sat, 21 Jul 2012 01:44:10 +0000
-Received: from [85.158.143.35:48756] by server-2.bemta-4.messagelabs.com id
-       3B/50-17938-9690A005; Sat, 21 Jul 2012 01:44:09 +0000
-X-Env-Sender: james.harper@bendigoit.com.au
-X-Msg-Ref: server-6.tower-21.messagelabs.com!1342835046!16258449!1
-X-Originating-IP: [203.16.207.99]
-X-SpamReason: No, hits=0.0 required=7.0 tests=
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.2; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 23960 invoked from network); 21 Jul 2012 01:44:08 -0000
-Received: from smtp2.bendigoit.com.au (HELO smtp2.bendigoit.com.au)
-       (203.16.207.99)
-       by server-6.tower-21.messagelabs.com with AES256-SHA encrypted SMTP;
-       21 Jul 2012 01:44:08 -0000
-Received: from trantor.int.sbss.com.au ([192.168.200.206]
-       helo=mail.bendigoit.com.au)
-       by smtp2.bendigoit.com.au with esmtp (Exim 4.72)
-       (envelope-from <james.harper@bendigoit.com.au>)
-       id 1SsOjh-00035N-SB; Sat, 21 Jul 2012 11:44:01 +1000
-Received: from BITCOM1.int.sbss.com.au ([192.168.200.237]) by
-       mail.bendigoit.com.au with Microsoft SMTPSVC(6.0.3790.4675); 
-       Sat, 21 Jul 2012 11:44:01 +1000
-Received: from BITCOM1.int.sbss.com.au ([fe80::a5ca:4fd3:14f:ad5d]) by
-       BITCOM1.int.sbss.com.au ([fe80::a5ca:4fd3:14f:ad5d%12]) with mapi id
-       14.01.0355.002; Sat, 21 Jul 2012 11:44:00 +1000
-From: James Harper <james.harper@bendigoit.com.au>
-To: Larry White <lmw@satx.rr.com>, "xen-devel@lists.xen.org"
-       <xen-devel@lists.xen.org>
-Thread-Topic: [Xen-devel] XenStore as a data transfer path?
-Thread-Index: Ac1m2/yuJJyO+ROQQxKMLV1mGoHskAABhbjA
-Date: Sat, 21 Jul 2012 01:43:59 +0000
-Message-ID: <6035A0D088A63A46850C3988ED045A4B299B8A95@BITCOM1.int.sbss.com.au>
-References: <A8575D3216834DFCAA86F5B2B3546613@LarryE6400>
-In-Reply-To: <A8575D3216834DFCAA86F5B2B3546613@LarryE6400>
-Accept-Language: en-AU, en-US
-Content-Language: en-US
-X-MS-Has-Attach: 
-X-MS-TNEF-Correlator: 
-x-originating-ip: [172.16.3.132]
-x-tm-as-product-ver: SMEX-10.2.0.1135-7.000.1014-19054.003
-x-tm-as-result: No--28.241200-0.000000-31
-x-tm-as-user-approved-sender: Yes
-x-tm-as-user-blocked-sender: No
-MIME-Version: 1.0
-X-OriginalArrivalTime: 21 Jul 2012 01:44:01.0662 (UTC)
-       FILETIME=[4DBF09E0:01CD66E2]
-X-Really-From-Bendigo-IT: magichashvalue
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] XenStore as a data transfer path?
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-> 
-> Can the XenStore database be accessed by domU's?
-> 
-
-Yes. That is how the frontend/backend devices set up their communication channels.
-
-> 
-> If so, could it be used to pass small amounts of data back and forth between
-> dom0 and domU's using XenStore key entries?  If this is possible, it would
-> seem that this could eliminate the need to create a "device" driver for a
-> simple communication path.
-> 
-
-Yes, for certain values of "small". Can you say more about the sort of data you would be passing? In particular the throughput and latency requirements?
-
-James
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<6035A0D088A63A46850C3988ED045A4B299B8F9D@BITCOM1.int.sbss.com.au> b/test/corpus/<6035A0D088A63A46850C3988ED045A4B299B8F9D@BITCOM1.int.sbss.com.au>
deleted file mode 100644 (file)
index d879a2a..0000000
+++ /dev/null
@@ -1,131 +0,0 @@
-From xen-devel-bounces@lists.xen.org Sat Jul 21 13:06:57 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Sat, 21 Jul 2012 13:06:57 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SsYSV-0007Bv-2D
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Sat, 21 Jul 2012 13:06:57 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SsYN5-0005lW-Pe; Sat, 21 Jul 2012 12:01:19 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <james.harper@bendigoit.com.au>) id 1SsYN4-0005lP-L2
-       for xen-devel@lists.xen.org; Sat, 21 Jul 2012 12:01:18 +0000
-Received: from [85.158.143.35:26136] by server-2.bemta-4.messagelabs.com id
-       09/22-17938-D0A9A005; Sat, 21 Jul 2012 12:01:17 +0000
-X-Env-Sender: james.harper@bendigoit.com.au
-X-Msg-Ref: server-4.tower-21.messagelabs.com!1342872072!5891202!1
-X-Originating-IP: [203.16.224.4]
-X-SpamReason: No, hits=0.0 required=7.0 tests=
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.2; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 28850 invoked from network); 21 Jul 2012 12:01:15 -0000
-Received: from smtp1.bendigoit.com.au (HELO smtp1.bendigoit.com.au)
-       (203.16.224.4)
-       by server-4.tower-21.messagelabs.com with AES256-SHA encrypted SMTP;
-       21 Jul 2012 12:01:15 -0000
-Received: from smtp2.bendigoit.com.au ([203.16.207.99]
-       helo=mail.bendigoit.com.au)
-       by smtp1.bendigoit.com.au with esmtp (Exim 4.69)
-       (envelope-from <james.harper@bendigoit.com.au>)
-       id 1SsYMq-0007o8-C8; Sat, 21 Jul 2012 22:01:04 +1000
-Received: from BITCOM1.int.sbss.com.au ([192.168.200.237]) by
-       mail.bendigoit.com.au with Microsoft SMTPSVC(6.0.3790.4675); 
-       Sat, 21 Jul 2012 22:01:03 +1000
-Received: from BITCOM1.int.sbss.com.au ([fe80::a5ca:4fd3:14f:ad5d]) by
-       BITCOM1.int.sbss.com.au ([fe80::a5ca:4fd3:14f:ad5d%12]) with mapi id
-       14.01.0355.002; Sat, 21 Jul 2012 22:01:03 +1000
-From: James Harper <james.harper@bendigoit.com.au>
-To: Larry White <lmw@satx.rr.com>, "xen-devel@lists.xen.org"
-       <xen-devel@lists.xen.org>
-Thread-Topic: [Xen-devel] XenStore as a data transfer path?
-Thread-Index: Ac1m2/yuJJyO+ROQQxKMLV1mGoHskAABhbjAAABDEwAAAe6rkA==
-Date: Sat, 21 Jul 2012 12:01:00 +0000
-Message-ID: <6035A0D088A63A46850C3988ED045A4B299B8F9D@BITCOM1.int.sbss.com.au>
-References: <A8575D3216834DFCAA86F5B2B3546613@LarryE6400>
-       <6035A0D088A63A46850C3988ED045A4B299B8A95@BITCOM1.int.sbss.com.au>
-       <1E8F546AD8E64BF1B2D68D24F3BD4050@LarryE6400>
-In-Reply-To: <1E8F546AD8E64BF1B2D68D24F3BD4050@LarryE6400>
-Accept-Language: en-AU, en-US
-Content-Language: en-US
-X-MS-Has-Attach: 
-X-MS-TNEF-Correlator: 
-x-originating-ip: [172.16.3.132]
-x-tm-as-product-ver: SMEX-10.2.0.1135-7.000.1014-19054.006
-x-tm-as-result: No--38.100400-0.000000-31
-x-tm-as-user-approved-sender: Yes
-x-tm-as-user-blocked-sender: No
-MIME-Version: 1.0
-X-OriginalArrivalTime: 21 Jul 2012 12:01:03.0935 (UTC)
-       FILETIME=[80BD94F0:01CD6738]
-X-Really-From-Bendigo-IT: magichashvalue
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] XenStore as a data transfer path?
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-> >
-> > Can the XenStore database be accessed by domU's?
-> >
-> 
-> >>Yes. That is how the frontend/backend devices set up their
-> >>communication channels.
-> 
-> Are you saying that the actual data going back and forth gets put into the
-> XenStore?  I thought that the XenStore was mostly used for configuration
-> keyword values and such that the underlying drivers needed.
-> 
-
-Yes. It's how they set up their communication channels. The communication channels are shared pages of memory and event channels, but they use xenstore to set it up (eg so the backend can find the address of the frontend ring.
-
-> >
-> > If so, could it be used to pass small amounts of data back and forth
-> between
-> > dom0 and domU's using XenStore key entries?  If this is possible, it
-> > would seem that this could eliminate the need to create a "device"
-> > driver for a simple communication path.
-> >
-> 
-> >>Yes, for certain values of "small". Can you say more about the sort of
-> >>data you would be passing? In particular the throughput and latency
-> >>requirements?
-> 
-> I would say that the small amount of data here per transfer would be around
-> 32 bytes in length with a latency of around 500ms or so.
-> 
-
-How fast though? Is it 32 bytes every 1ms, or 32 bytes every 20 seconds?
-
-James
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<6035A0D088A63A46850C3988ED045A4B299F74F8@BITCOM1.int.sbss.com.au> b/test/corpus/<6035A0D088A63A46850C3988ED045A4B299F74F8@BITCOM1.int.sbss.com.au>
deleted file mode 100644 (file)
index ee39e50..0000000
+++ /dev/null
@@ -1,104 +0,0 @@
-From xen-devel-bounces@lists.xen.org Mon Aug 13 15:17:59 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Mon, 13 Aug 2012 15:17:59 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T0vSr-0000Zb-RH
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Mon, 13 Aug 2012 15:17:59 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T0vOy-00068i-9A; Mon, 13 Aug 2012 14:13:52 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <james.harper@bendigoit.com.au>) id 1T0vOw-00068b-CD
-       for xen-devel@lists.xen.org; Mon, 13 Aug 2012 14:13:50 +0000
-Received: from [85.158.143.99:60579] by server-2.bemta-4.messagelabs.com id
-       94/21-31966-D9B09205; Mon, 13 Aug 2012 14:13:49 +0000
-X-Env-Sender: james.harper@bendigoit.com.au
-X-Msg-Ref: server-3.tower-216.messagelabs.com!1344867181!27377838!1
-X-Originating-IP: [203.16.207.99]
-X-SpamReason: No, hits=0.0 required=7.0 tests=
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 14932 invoked from network); 13 Aug 2012 14:13:04 -0000
-Received: from mail.bendigoit.com.au (HELO smtp2.bendigoit.com.au)
-       (203.16.207.99)
-       by server-3.tower-216.messagelabs.com with AES256-SHA encrypted SMTP;
-       13 Aug 2012 14:13:04 -0000
-Received: from trantor.int.sbss.com.au ([192.168.200.206]
-       helo=mail.bendigoit.com.au)
-       by smtp2.bendigoit.com.au with esmtp (Exim 4.72)
-       (envelope-from <james.harper@bendigoit.com.au>) id 1T0vO7-0005XM-Ud
-       for xen-devel@lists.xen.org; Tue, 14 Aug 2012 00:12:59 +1000
-Received: from BITCOM1.int.sbss.com.au ([192.168.200.237]) by
-       mail.bendigoit.com.au with Microsoft SMTPSVC(6.0.3790.4675); 
-       Tue, 14 Aug 2012 00:12:59 +1000
-Received: from BITCOM1.int.sbss.com.au ([fe80::a5ca:4fd3:14f:ad5d]) by
-       BITCOM1.int.sbss.com.au ([fe80::a5ca:4fd3:14f:ad5d%12]) with mapi id
-       14.01.0355.002; Tue, 14 Aug 2012 00:12:59 +1000
-From: James Harper <james.harper@bendigoit.com.au>
-To: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-Thread-Topic: bug when using 4K sectors?
-Thread-Index: Ac15XJ9mOEWrLpZlQnymzekcRdWXAQ==
-Date: Mon, 13 Aug 2012 14:12:58 +0000
-Message-ID: <6035A0D088A63A46850C3988ED045A4B299F74F8@BITCOM1.int.sbss.com.au>
-Accept-Language: en-AU, en-US
-Content-Language: en-US
-X-MS-Has-Attach: 
-X-MS-TNEF-Correlator: 
-x-originating-ip: [172.16.3.132]
-x-tm-as-product-ver: SMEX-10.2.0.1135-7.000.1014-19108.007
-x-tm-as-result: No--26.514400-0.000000-31
-x-tm-as-user-approved-sender: Yes
-x-tm-as-user-blocked-sender: No
-MIME-Version: 1.0
-X-OriginalArrivalTime: 13 Aug 2012 14:12:59.0763 (UTC)
-       FILETIME=[BE715430:01CD795D]
-X-Really-From-Bendigo-IT: magichashvalue
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: [Xen-devel] bug when using 4K sectors?
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-I notice this code in drivers/block/xen-blkback/common.h
-
-#define vbd_sz(_v)      ((_v)->bdev->bd_part ? \
-                         (_v)->bdev->bd_part->nr_sects : \
-                          get_capacity((_v)->bdev->bd_disk))
-
-is the value returned by vbd_sz(_v) the number of sectors in the Linux device (eg size / 4096), or the number of 512 byte sectors? I suspect the former which is causing block requests beyond 1/8th the size of the device to fail (assuming 4K sectors are expected to work at all - I can't quite get my head around how it would be expected to work - does Linux do the read-modify-write if required?)
-
-I can't test until tomorrow AEDT, but maybe someone here knows the answer already?
-
-James
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<6035A0D088A63A46850C3988ED045A4B29B5D23E@BITCOM1.int.sbss.com.au> b/test/corpus/<6035A0D088A63A46850C3988ED045A4B29B5D23E@BITCOM1.int.sbss.com.au>
deleted file mode 100644 (file)
index 8fc5ae2..0000000
+++ /dev/null
@@ -1,120 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Sep 06 01:01:29 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 06 Sep 2012 01:01:29 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T9PXC-00055v-J9
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 06 Sep 2012 01:01:28 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T9PSN-0007lO-6k; Wed, 05 Sep 2012 23:56:27 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <james.harper@bendigoit.com.au>) id 1T9PSL-0007lJ-4U
-       for xen-devel@lists.xen.org; Wed, 05 Sep 2012 23:56:25 +0000
-Received: from [85.158.143.99:14168] by server-3.bemta-4.messagelabs.com id
-       9E/E9-08232-8A6E7405; Wed, 05 Sep 2012 23:56:24 +0000
-X-Env-Sender: james.harper@bendigoit.com.au
-X-Msg-Ref: server-7.tower-216.messagelabs.com!1346889380!25407372!1
-X-Originating-IP: [203.16.224.4]
-X-SpamReason: No, hits=0.0 required=7.0 tests=
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 19049 invoked from network); 5 Sep 2012 23:56:23 -0000
-Received: from smtp1.bendigoit.com.au (HELO smtp1.bendigoit.com.au)
-       (203.16.224.4)
-       by server-7.tower-216.messagelabs.com with AES256-SHA encrypted SMTP;
-       5 Sep 2012 23:56:23 -0000
-Received: from [2001:388:e000:712:a5ca:4fd3:14f:ad5d]
-       (helo=BITCOM1.int.sbss.com.au)
-       by smtp1.bendigoit.com.au with esmtp (Exim 4.69)
-       (envelope-from <james.harper@bendigoit.com.au>)
-       id 1T9PSB-0000DT-Bs; Thu, 06 Sep 2012 09:56:15 +1000
-Received: from BITCOM1.int.sbss.com.au ([fe80::a5ca:4fd3:14f:ad5d]) by
-       BITCOM1.int.sbss.com.au ([fe80::a5ca:4fd3:14f:ad5d%12]) with mapi id
-       14.01.0379.000; Thu, 6 Sep 2012 09:56:09 +1000
-From: James Harper <james.harper@bendigoit.com.au>
-To: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-Thread-Topic: [Xen-devel] bug when using 4K sectors?
-Thread-Index: Ac15XJ9mOEWrLpZlQnymzekcRdWXAQR9LPqAABwcDwA=
-Date: Wed, 5 Sep 2012 23:56:08 +0000
-Message-ID: <6035A0D088A63A46850C3988ED045A4B29B5D23E@BITCOM1.int.sbss.com.au>
-References: <6035A0D088A63A46850C3988ED045A4B299F74F8@BITCOM1.int.sbss.com.au>
-       <20120905202927.GD27814@phenom.dumpdata.com>
-In-Reply-To: <20120905202927.GD27814@phenom.dumpdata.com>
-Accept-Language: en-AU, en-US
-Content-Language: en-US
-X-MS-Has-Attach: 
-X-MS-TNEF-Correlator: 
-x-originating-ip: [2001:388:e000:712:5e4:3634:9056:495f]
-x-tm-as-product-ver: SMEX-10.2.0.1135-7.000.1014-19166.002
-x-tm-as-result: No--36.993100-0.000000-31
-x-tm-as-user-approved-sender: Yes
-x-tm-as-user-blocked-sender: No
-MIME-Version: 1.0
-X-Really-From-Bendigo-IT: magichashvalue
-Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] bug when using 4K sectors?
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-> On Mon, Aug 13, 2012 at 02:12:58PM +0000, James Harper wrote:
-> > I notice this code in drivers/block/xen-blkback/common.h
-> >
-> > #define vbd_sz(_v)      ((_v)->bdev->bd_part ? \
-> >                          (_v)->bdev->bd_part->nr_sects : \
-> >                           get_capacity((_v)->bdev->bd_disk))
-> >
-> > is the value returned by vbd_sz(_v) the number of sectors in the Linux
-> > device (eg size / 4096), or the number of 512 byte sectors? I suspect
-> > the former which is causing block requests beyond 1/8th the size of
-> > the device to fail (assuming 4K sectors are expected to work at all -
-> > I can't quite get my head around how it would be expected to work -
-> > does Linux do the read-modify-write if required?)
-> 
-> I think you need to instrument it to be sure.. But more interesting, do you
-> actually have a disk that exposes a 4KB hardware and logical sector? So far
-> I've only found SSDs that expose a 512kB logical sector but also expose the
-> 4KB hardware.
-> 
-> Never could figure out how that is all suppose to work as the blkback is filled
-> with << 9 on a bunch of things.
-> 
-
-I was using bcache which does expose a 4K block size, by default. I changed it to 512 and it all works now, although I haven't tested if there is any loss of performance.
-
-Does Xen provide a way to tell Windows that the underlying device is 512e (4K sector with 512 byte emulated interface)? This would keep everything working as is but allow windows to align writes to 4K boundaries where possible.
-
-James
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<6035A0D088A63A46850C3988ED045A4B29B96FA1@BITCOM1.int.sbss.com.au> b/test/corpus/<6035A0D088A63A46850C3988ED045A4B29B96FA1@BITCOM1.int.sbss.com.au>
deleted file mode 100644 (file)
index b787bd2..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-From xen-devel-bounces@lists.xen.org Sun Sep 16 11:43:13 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Sun, 16 Sep 2012 11:43:13 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TDCJi-0000V6-JS
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Sun, 16 Sep 2012 11:43:12 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TDCER-0008Vw-88; Sun, 16 Sep 2012 10:37:43 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <james.harper@bendigoit.com.au>) id 1TDCEP-0008Vr-Dn
-       for xen-devel@lists.xen.org; Sun, 16 Sep 2012 10:37:41 +0000
-Received: from [85.158.139.211:8562] by server-4.bemta-5.messagelabs.com id
-       C3/89-23042-4FBA5505; Sun, 16 Sep 2012 10:37:40 +0000
-X-Env-Sender: james.harper@bendigoit.com.au
-X-Msg-Ref: server-5.tower-206.messagelabs.com!1347791856!18694720!1
-X-Originating-IP: [203.16.224.4]
-X-SpamReason: No, hits=0.0 required=7.0 tests=
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 24694 invoked from network); 16 Sep 2012 10:37:39 -0000
-Received: from smtp1.bendigoit.com.au (HELO smtp1.bendigoit.com.au)
-       (203.16.224.4)
-       by server-5.tower-206.messagelabs.com with AES256-SHA encrypted SMTP;
-       16 Sep 2012 10:37:39 -0000
-Received: from [2001:388:e000:712:a5ca:4fd3:14f:ad5d]
-       (helo=BITCOM1.int.sbss.com.au)
-       by smtp1.bendigoit.com.au with esmtp (Exim 4.69)
-       (envelope-from <james.harper@bendigoit.com.au>)
-       id 1TDCE8-00026o-Iw; Sun, 16 Sep 2012 20:37:24 +1000
-Received: from BITCOM1.int.sbss.com.au ([fe80::a5ca:4fd3:14f:ad5d]) by
-       BITCOM1.int.sbss.com.au ([fe80::a5ca:4fd3:14f:ad5d%12]) with mapi id
-       14.01.0379.000; Sun, 16 Sep 2012 20:37:24 +1000
-From: James Harper <james.harper@bendigoit.com.au>
-To: Keir Fraser <keir.xen@gmail.com>, Joseph Glanville
-       <joseph.glanville@orionvm.com.au>, Konrad Rzeszutek Wilk
-       <konrad.wilk@oracle.com>
-Thread-Topic: [Xen-devel] bug when using 4K sectors?
-Thread-Index: Ac15XJ9mOEWrLpZlQnymzekcRdWXAQR9LPqAABwcDwAAAjyqAAHumRqAAAMtwQAAGTSEYA==
-Date: Sun, 16 Sep 2012 10:37:23 +0000
-Message-ID: <6035A0D088A63A46850C3988ED045A4B29B96FA1@BITCOM1.int.sbss.com.au>
-References: <CAOzFzEiZopdFQuZkUcSWWre9b=NeZpJM9n2VtEoZcRo=ejYQPA@mail.gmail.com>
-       <CC7B4CE4.3EE74%keir.xen@gmail.com>
-In-Reply-To: <CC7B4CE4.3EE74%keir.xen@gmail.com>
-Accept-Language: en-AU, en-US
-Content-Language: en-US
-X-MS-Has-Attach: 
-X-MS-TNEF-Correlator: 
-x-originating-ip: [172.16.3.132]
-x-tm-as-product-ver: SMEX-10.2.0.2087-7.000.1014-19186.006
-x-tm-as-result: No--39.635800-0.000000-31
-x-tm-as-user-approved-sender: Yes
-x-tm-as-user-blocked-sender: No
-MIME-Version: 1.0
-X-Really-From-Bendigo-IT: magichashvalue
-Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.7 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] bug when using 4K sectors?
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-> > Being able to use 4k sectors seems like it would provide pretty
-> > massive gains in performance just by being more efficient let alone
-> > increasing byte aligned writes to the underlying block storage system.
-> 
-> The PV blk transport may be based on 512-byte sectors, but the real sector
-> size is communicated between blkfront and blkback via xenbus (field
-> 'sector-size') and blkfront is expected to only make requests that are
-> multiple of, and aligned according to, that real 'sector-size'.
-> 
-> I would kind of expect it to work, as CD-ROMs have a larger sector size (2kB
-> IIRC) and we support those...
-> 
-> Bashing your head against the PV blk transport code may be premature. ;)
-> 
-
-So a sector-size of 4096 would basically be a 512e device, allowing the underlying OS to communicate in 512 byte blocks but knowing that things will work best in 4096 byte sized transfers aligned to multiples of 4096 bytes, right?
-
-James
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<6035A0D088A63A46850C3988ED045A4B29B9806B@BITCOM1.int.sbss.com.au> b/test/corpus/<6035A0D088A63A46850C3988ED045A4B29B9806B@BITCOM1.int.sbss.com.au>
deleted file mode 100644 (file)
index 641f44c..0000000
+++ /dev/null
@@ -1,106 +0,0 @@
-From xen-devel-bounces@lists.xen.org Sun Sep 16 12:26:10 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Sun, 16 Sep 2012 12:26:10 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TDCzI-0000ew-H1
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Sun, 16 Sep 2012 12:26:10 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TDCvI-0000Rk-9X; Sun, 16 Sep 2012 11:22:00 +0000
-Received: from mail27.messagelabs.com ([193.109.254.147])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <james.harper@bendigoit.com.au>) id 1TDCvH-0000Rb-Cc
-       for xen-devel@lists.xen.org; Sun, 16 Sep 2012 11:21:59 +0000
-X-Env-Sender: james.harper@bendigoit.com.au
-X-Msg-Ref: server-7.tower-27.messagelabs.com!1347794510!3502345!1
-X-Originating-IP: [203.16.224.4]
-X-SpamReason: No, hits=0.0 required=7.0 tests=
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 8587 invoked from network); 16 Sep 2012 11:21:52 -0000
-Received: from smtp1.bendigoit.com.au (HELO smtp1.bendigoit.com.au)
-       (203.16.224.4)
-       by server-7.tower-27.messagelabs.com with AES256-SHA encrypted SMTP;
-       16 Sep 2012 11:21:52 -0000
-Received: from [2001:388:e000:712:a5ca:4fd3:14f:ad5d]
-       (helo=BITCOM1.int.sbss.com.au)
-       by smtp1.bendigoit.com.au with esmtp (Exim 4.69)
-       (envelope-from <james.harper@bendigoit.com.au>)
-       id 1TDCuy-0002Ea-N5; Sun, 16 Sep 2012 21:21:41 +1000
-Received: from BITCOM1.int.sbss.com.au ([fe80::a5ca:4fd3:14f:ad5d]) by
-       BITCOM1.int.sbss.com.au ([fe80::a5ca:4fd3:14f:ad5d%12]) with mapi id
-       14.01.0379.000; Sun, 16 Sep 2012 21:21:35 +1000
-From: James Harper <james.harper@bendigoit.com.au>
-To: Keir Fraser <keir.xen@gmail.com>, Joseph Glanville
-       <joseph.glanville@orionvm.com.au>, Konrad Rzeszutek Wilk
-       <konrad.wilk@oracle.com>
-Thread-Topic: [Xen-devel] bug when using 4K sectors?
-Thread-Index: Ac15XJ9mOEWrLpZlQnymzekcRdWXAQR9LPqAABwcDwAAAjyqAAHumRqAAAMtwQAAGTSEYAABlUzVAAALPUA=
-Date: Sun, 16 Sep 2012 11:21:33 +0000
-Message-ID: <6035A0D088A63A46850C3988ED045A4B29B9806B@BITCOM1.int.sbss.com.au>
-References: <6035A0D088A63A46850C3988ED045A4B29B96FA1@BITCOM1.int.sbss.com.au>
-       <CC7B740A.3EE89%keir.xen@gmail.com>
-In-Reply-To: <CC7B740A.3EE89%keir.xen@gmail.com>
-Accept-Language: en-AU, en-US
-Content-Language: en-US
-X-MS-Has-Attach: 
-X-MS-TNEF-Correlator: 
-x-originating-ip: [172.16.3.132]
-x-tm-as-product-ver: SMEX-10.2.0.2087-7.000.1014-19186.006
-x-tm-as-result: No--42.108700-0.000000-31
-x-tm-as-user-approved-sender: Yes
-x-tm-as-user-blocked-sender: No
-MIME-Version: 1.0
-X-Really-From-Bendigo-IT: magichashvalue
-Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.7 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] bug when using 4K sectors?
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-> > So a sector-size of 4096 would basically be a 512e device, allowing
-> > the underlying OS to communicate in 512 byte blocks but knowing that
-> > things will work best in 4096 byte sized transfers aligned to
-> > multiples of 4096 bytes, right?
-> 
-> My recollection is that blkfront is required to submit only appropriately -sized
-> and -aligned requests; i.e. it's not merely advisory. I remember this got
-> added for CD-ROM support and if they had worked without this, I'm sure we
-> wouldn't have bothered!
-> 
-
-That's a shame. It would be good to have separate values for Physical and Logical block sizes so the guest VM can make appropriate alignment decisions. In fact there is a lot of stuff in /sys for the block devices that would be nice to be mapped into xenstore!
-
-James
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<6035A0D088A63A46850C3988ED045A4B29B980EB@BITCOM1.int.sbss.com.au> b/test/corpus/<6035A0D088A63A46850C3988ED045A4B29B980EB@BITCOM1.int.sbss.com.au>
deleted file mode 100644 (file)
index fecdce9..0000000
+++ /dev/null
@@ -1,116 +0,0 @@
-From xen-devel-bounces@lists.xen.org Sun Sep 16 12:55:41 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Sun, 16 Sep 2012 12:55:41 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TDDRq-0000iR-M2
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Sun, 16 Sep 2012 12:55:41 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TDDNL-0000zD-RG; Sun, 16 Sep 2012 11:50:59 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <james.harper@bendigoit.com.au>) id 1TDDNJ-0000z8-5q
-       for xen-devel@lists.xen.org; Sun, 16 Sep 2012 11:50:57 +0000
-Received: from [85.158.143.35:38165] by server-2.bemta-4.messagelabs.com id
-       67/32-21239-02DB5505; Sun, 16 Sep 2012 11:50:56 +0000
-X-Env-Sender: james.harper@bendigoit.com.au
-X-Msg-Ref: server-15.tower-21.messagelabs.com!1347796252!14856046!1
-X-Originating-IP: [203.16.207.99]
-X-SpamReason: No, hits=0.5 required=7.0 tests=BODY_RANDOM_LONG
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 19937 invoked from network); 16 Sep 2012 11:50:55 -0000
-Received: from mail.bendigoit.com.au (HELO smtp2.bendigoit.com.au)
-       (203.16.207.99)
-       by server-15.tower-21.messagelabs.com with AES256-SHA encrypted SMTP;
-       16 Sep 2012 11:50:55 -0000
-Received: from [2001:388:e000:712:a5ca:4fd3:14f:ad5d]
-       (helo=BITCOM1.int.sbss.com.au)
-       by smtp2.bendigoit.com.au with esmtp (Exim 4.72)
-       (envelope-from <james.harper@bendigoit.com.au>)
-       id 1TDDMv-0001CR-S5; Sun, 16 Sep 2012 21:50:33 +1000
-Received: from BITCOM1.int.sbss.com.au ([fe80::a5ca:4fd3:14f:ad5d]) by
-       BITCOM1.int.sbss.com.au ([fe80::a5ca:4fd3:14f:ad5d%12]) with mapi id
-       14.01.0379.000; Sun, 16 Sep 2012 21:50:33 +1000
-From: James Harper <james.harper@bendigoit.com.au>
-To: Alan Cox <alan@lxorguk.ukuu.org.uk>, Keir Fraser <keir.xen@gmail.com>
-Thread-Topic: [Xen-devel] bug when using 4K sectors?
-Thread-Index: Ac15XJ9mOEWrLpZlQnymzekcRdWXAQR9LPqAABwcDwAAAjyqAAHumRqAAAMtwQAABiPGAAAVq48g
-Date: Sun, 16 Sep 2012 11:50:31 +0000
-Message-ID: <6035A0D088A63A46850C3988ED045A4B29B980EB@BITCOM1.int.sbss.com.au>
-References: <CAOzFzEiZopdFQuZkUcSWWre9b=NeZpJM9n2VtEoZcRo=ejYQPA@mail.gmail.com>
-       <CC7B4CE4.3EE74%keir.xen@gmail.com>
-       <20120916122704.4ea05b45@pyramind.ukuu.org.uk>
-In-Reply-To: <20120916122704.4ea05b45@pyramind.ukuu.org.uk>
-Accept-Language: en-AU, en-US
-Content-Language: en-US
-X-MS-Has-Attach: 
-X-MS-TNEF-Correlator: 
-x-originating-ip: [172.16.3.132]
-x-tm-as-product-ver: SMEX-10.2.0.2087-7.000.1014-19186.006
-x-tm-as-result: No--33.814600-0.000000-31
-x-tm-as-user-approved-sender: Yes
-x-tm-as-user-blocked-sender: No
-MIME-Version: 1.0
-X-Really-From-Bendigo-IT: magichashvalue
-Cc: Joseph Glanville <joseph.glanville@orionvm.com.au>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
-       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.7 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] bug when using 4K sectors?
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-> 
-> > I would kind of expect it to work, as CD-ROMs have a larger sector
-> > size (2kB
-> > IIRC) and we support those...
-> 
-> For data blocks they are 2K, as are some magneto-opticals.
-> 
-> The more complicated case is modern hard disks, while you can access them
-> on 512 byte boundaries they are actually using bigger block sizes but the large
-> blocks are not neccessarily on the 0 boundary in order to get optimal
-> alignment for existing file systems and partitioning.
-> 
-> So knowing the block size isn't the whole story.
-> 
-
-Are you saying that Xen and/or Linux needs to worry about a user setting up a poorly aligned filesystem to pass to a VM? Seems simpler just to set things up right in the first place.
-
-Or did you mean something else?
-
-James
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<647712821.20120831234512@eikelenboom.it> b/test/corpus/<647712821.20120831234512@eikelenboom.it>
deleted file mode 100644 (file)
index 38d1dcc..0000000
+++ /dev/null
@@ -1,880 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Aug 31 22:51:06 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 31 Aug 2012 22:51:06 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T7Z7C-0008Of-Jh
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 31 Aug 2012 22:51:06 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T7Z1o-0007P7-R2; Fri, 31 Aug 2012 21:45:24 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <linux@eikelenboom.it>) id 1T7Z1m-0007P2-E1
-       for xen-devel@lists.xen.org; Fri, 31 Aug 2012 21:45:22 +0000
-Received: from [85.158.143.35:46307] by server-2.bemta-4.messagelabs.com id
-       E8/25-21239-17031405; Fri, 31 Aug 2012 21:45:21 +0000
-X-Env-Sender: linux@eikelenboom.it
-X-Msg-Ref: server-4.tower-21.messagelabs.com!1346449517!5712015!1
-X-Originating-IP: [188.40.164.121]
-X-SpamReason: No, hits=0.5 required=7.0 tests=BODY_RANDOM_LONG
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 30321 invoked from network); 31 Aug 2012 21:45:18 -0000
-Received: from static.121.164.40.188.clients.your-server.de (HELO
-       smtp.eikelenboom.it) (188.40.164.121)
-       by server-4.tower-21.messagelabs.com with AES256-SHA encrypted SMTP;
-       31 Aug 2012 21:45:18 -0000
-Received: from 26-69-ftth.onsneteindhoven.nl ([88.159.69.26]:50422
-       helo=[172.16.1.20])
-       by smtp.eikelenboom.it with esmtpsa (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72) (envelope-from <linux@eikelenboom.it>)
-       id 1T7Yyb-0008OC-IH; Fri, 31 Aug 2012 23:42:05 +0200
-Date: Fri, 31 Aug 2012 23:45:12 +0200
-From: Sander Eikelenboom <linux@eikelenboom.it>
-Organization: Eikelenboom IT services
-X-Priority: 3 (Normal)
-Message-ID: <647712821.20120831234512@eikelenboom.it>
-To: Santosh Jodh <santosh.jodh@citrix.com>, wei.wang2@amd.com
-MIME-Version: 1.0
-Content-Type: multipart/mixed;
- boundary="----------01015A0E4152274D9"
-Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: [Xen-devel] Using debug-key 'o:  Dump IOMMU p2m table,
-       locks up machine
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-------------01015A0E4152274D9
-Content-Type: text/plain; charset=us-ascii
-Content-Transfer-Encoding: 7bit
-
-
-I was trying to use the 'o' debug key to make a bug report about an "AMD-Vi: IO_PAGE_FAULT".
-
-The result:
-- When using "xl debug-keys o", the machine seems in a infinite loop, can hardly login, eventually resulting in a kernel RCU stall and complete lockup.
-- When using serial console: I get a infinite stream of "gfn:  mfn: " lines, mean while on the normal console, S-ATA devices are starting to give errors.
-
-So either option trashes the machine, other debug-keys work fine.
-
-Machine has a 890-fx chipset and AMD phenom x6 proc.
-
-xl dmesg with bootup and output from some other debug-keys is attached.
-
---
-
-Sander
-------------01015A0E4152274D9
-Content-Type: text/plain;
- name="xl-dmesg.txt"
-Content-transfer-encoding: base64
-Content-Disposition: attachment;
- filename="xl-dmesg.txt"
-
-IF9fICBfXyAgICAgICAgICAgIF8gIF8gICAgX19fXyAgICBfX18gICAgICAgICAgICAgIF8g
-IF8gICAgICAgICAgICAgICAgICAgICANCiBcIFwvIC9fX18gXyBfXyAgIHwgfHwgfCAgfF9f
-XyBcICAvIF8gXCAgICBfIF9fIF9fX3wgfHwgfCAgICAgXyBfXyAgXyBfXyBfX18gDQogIFwg
-IC8vIF8gXCAnXyBcICB8IHx8IHxfICAgX18pIHx8IHwgfCB8X198ICdfXy8gX198IHx8IHxf
-IF9ffCAnXyBcfCAnX18vIF8gXA0KICAvICBcICBfXy8gfCB8IHwgfF9fICAgX3wgLyBfXy8g
-fCB8X3wgfF9ffCB8IHwgKF9ffF9fICAgX3xfX3wgfF8pIHwgfCB8ICBfXy8NCiAvXy9cX1xf
-X198X3wgfF98ICAgIHxffChfKV9fX19fKF8pX19fLyAgIHxffCAgXF9fX3wgIHxffCAgICB8
-IC5fXy98X3wgIFxfX198DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
-ICAgICAgICAgICAgICAgICAgICAgICAgfF98ICAgICAgICAgICAgIA0KKFhFTikgWGVuIHZl
-cnNpb24gNC4yLjAtcmM0LXByZSAocm9vdEBkeW5kbnMub3JnKSAoZ2NjIChEZWJpYW4gNC40
-LjUtOCkgNC40LjUpIFRodSBBdWcgMzAgMjM6NTg6MDMgQ0VTVCAyMDEyDQooWEVOKSBMYXRl
-c3QgQ2hhbmdlU2V0OiBUdWUgQXVnIDI4IDIyOjQwOjQ1IDIwMTIgKzAxMDAgMjU3ODY6YTBi
-NWY4MTAyYTAwDQooWEVOKSBCb290bG9hZGVyOiBHUlVCIDEuOTgrMjAxMDA4MDQtMTQrc3F1
-ZWV6ZTENCihYRU4pIENvbW1hbmQgbGluZTogZG9tMF9tZW09MTAyNE0gbG9nbHZsPWFsbCBs
-b2dsdmxfZ3Vlc3Q9YWxsIGNvbnNvbGVfdGltZXN0YW1wcyB2Z2E9Z2Z4LTEyODB4MTAyNHgz
-MiBjcHVpZGxlIGNwdWZyZXE9eGVuIG5vcmVib290IGRlYnVnIGxhcGljPWRlYnVnIGFwaWNf
-dmVyYm9zaXR5PWRlYnVnIGFwaWM9ZGVidWcgYWNwaV9lbmZvcmNlX3Jlc291cmNlcz1sYXgg
-aW9tbXU9b24sdmVyYm9zZSxhbWQtaW9tbXUtZGVidWcgY29tMT0zODQwMCw4bjEgY29uc29s
-ZT12Z2EsY29tMQ0KKFhFTikgVmlkZW8gaW5mb3JtYXRpb246DQooWEVOKSAgVkdBIGlzIGdy
-YXBoaWNzIG1vZGUgMTI4MHgxMDI0LCAzMiBicHANCihYRU4pICBWQkUvRERDIG1ldGhvZHM6
-IFYyOyBFRElEIHRyYW5zZmVyIHRpbWU6IDEgc2Vjb25kcw0KKFhFTikgRGlzYyBpbmZvcm1h
-dGlvbjoNCihYRU4pICBGb3VuZCAyIE1CUiBzaWduYXR1cmVzDQooWEVOKSAgRm91bmQgMiBF
-REQgaW5mb3JtYXRpb24gc3RydWN0dXJlcw0KKFhFTikgWGVuLWU4MjAgUkFNIG1hcDoNCihY
-RU4pICAwMDAwMDAwMDAwMDAwMDAwIC0gMDAwMDAwMDAwMDA5YjAwMCAodXNhYmxlKQ0KKFhF
-TikgIDAwMDAwMDAwMDAwOWIwMDAgLSAwMDAwMDAwMDAwMGEwMDAwIChyZXNlcnZlZCkNCihY
-RU4pICAwMDAwMDAwMDAwMGU0MDAwIC0gMDAwMDAwMDAwMDEwMDAwMCAocmVzZXJ2ZWQpDQoo
-WEVOKSAgMDAwMDAwMDAwMDEwMDAwMCAtIDAwMDAwMDAwYWZlOTAwMDAgKHVzYWJsZSkNCihY
-RU4pICAwMDAwMDAwMGFmZTkwMDAwIC0gMDAwMDAwMDBhZmU5ZTAwMCAoQUNQSSBkYXRhKQ0K
-KFhFTikgIDAwMDAwMDAwYWZlOWUwMDAgLSAwMDAwMDAwMGFmZWUwMDAwIChBQ1BJIE5WUykN
-CihYRU4pICAwMDAwMDAwMGFmZWUwMDAwIC0gMDAwMDAwMDBhZmYwMDAwMCAocmVzZXJ2ZWQp
-DQooWEVOKSAgMDAwMDAwMDBmZmUwMDAwMCAtIDAwMDAwMDAxMDAwMDAwMDAgKHJlc2VydmVk
-KQ0KKFhFTikgIDAwMDAwMDAxMDAwMDAwMDAgLSAwMDAwMDAwMjUwMDAwMDAwICh1c2FibGUp
-DQooWEVOKSBBQ1BJOiBSU0RQIDAwMEZCMTIwLCAwMDE0IChyMCBBQ1BJQU0pDQooWEVOKSBB
-Q1BJOiBSU0RUIEFGRTkwMDAwLCAwMDQ4IChyMSBNU0kgICAgT0VNU0xJQyAgMjAxMDA2MjIg
-TVNGVCAgICAgICA5NykNCihYRU4pIEFDUEk6IEZBQ1AgQUZFOTAyMDAsIDAwODQgKHIxIDc2
-NDBNUyBBNzY0MDEwMCAyMDEwMDYyMiBNU0ZUICAgICAgIDk3KQ0KKFhFTikgQUNQSTogRFNE
-VCBBRkU5MDVFMCwgOTQ0OSAocjEgIEE3NjQwIEE3NjQwMTAwICAgICAgMTAwIElOVEwgMjAw
-NTExMTcpDQooWEVOKSBBQ1BJOiBGQUNTIEFGRTlFMDAwLCAwMDQwDQooWEVOKSBBQ1BJOiBB
-UElDIEFGRTkwMzkwLCAwMDg4IChyMSA3NjQwTVMgQTc2NDAxMDAgMjAxMDA2MjIgTVNGVCAg
-ICAgICA5NykNCihYRU4pIEFDUEk6IE1DRkcgQUZFOTA0MjAsIDAwM0MgKHIxIDc2NDBNUyBP
-RU1NQ0ZHICAyMDEwMDYyMiBNU0ZUICAgICAgIDk3KQ0KKFhFTikgQUNQSTogU0xJQyBBRkU5
-MDQ2MCwgMDE3NiAocjEgTVNJICAgIE9FTVNMSUMgIDIwMTAwNjIyIE1TRlQgICAgICAgOTcp
-DQooWEVOKSBBQ1BJOiBPRU1CIEFGRTlFMDQwLCAwMDcyIChyMSA3NjQwTVMgQTc2NDAxMDAg
-MjAxMDA2MjIgTVNGVCAgICAgICA5NykNCihYRU4pIEFDUEk6IFNSQVQgQUZFOUE1RTAsIDAx
-MDggKHIzIEFNRCAgICBGQU1fRl8xMCAgICAgICAgMiBBTUQgICAgICAgICAxKQ0KKFhFTikg
-QUNQSTogSFBFVCBBRkU5QTZGMCwgMDAzOCAocjEgNzY0ME1TIE9FTUhQRVQgIDIwMTAwNjIy
-IE1TRlQgICAgICAgOTcpDQooWEVOKSBBQ1BJOiBJVlJTIEFGRTlBNzMwLCAwMEY4IChyMSAg
-QU1EICAgICBSRDg5MFMgICAyMDIwMzEgQU1EICAgICAgICAgMCkNCihYRU4pIEFDUEk6IFNT
-RFQgQUZFOUE4MzAsIDBEQTQgKHIxIEEgTSBJICBQT1dFUk5PVyAgICAgICAgMSBBTUQgICAg
-ICAgICAxKQ0KKFhFTikgU3lzdGVtIFJBTTogODE5ME1CICg4Mzg2NzMya0IpDQooWEVOKSBT
-UkFUOiBQWE0gMCAtPiBBUElDIDAgLT4gTm9kZSAwDQooWEVOKSBTUkFUOiBQWE0gMCAtPiBB
-UElDIDEgLT4gTm9kZSAwDQooWEVOKSBTUkFUOiBQWE0gMCAtPiBBUElDIDIgLT4gTm9kZSAw
-DQooWEVOKSBTUkFUOiBQWE0gMCAtPiBBUElDIDMgLT4gTm9kZSAwDQooWEVOKSBTUkFUOiBQ
-WE0gMCAtPiBBUElDIDQgLT4gTm9kZSAwDQooWEVOKSBTUkFUOiBQWE0gMCAtPiBBUElDIDUg
-LT4gTm9kZSAwDQooWEVOKSBTUkFUOiBOb2RlIDAgUFhNIDAgMC1hMDAwMA0KKFhFTikgU1JB
-VDogTm9kZSAwIFBYTSAwIDEwMDAwMC1iMDAwMDAwMA0KKFhFTikgU1JBVDogTm9kZSAwIFBY
-TSAwIDEwMDAwMDAwMC0yNTAwMDAwMDANCihYRU4pIE5VTUE6IEFsbG9jYXRlZCBtZW1ub2Rl
-bWFwIGZyb20gMjRkYmFjMDAwIC0gMjRkYmFmMDAwDQooWEVOKSBOVU1BOiBVc2luZyA4IGZv
-ciB0aGUgaGFzaCBzaGlmdC4NCihYRU4pIERvbWFpbiBoZWFwIGluaXRpYWxpc2VkDQooWEVO
-KSB2ZXNhZmI6IGZyYW1lYnVmZmVyIGF0IDB4ZmIwMDAwMDAsIG1hcHBlZCB0byAweGZmZmY4
-MmMwMDAwMDAwMDAsIHVzaW5nIDYxNDRrLCB0b3RhbCAxNDMzNmsNCihYRU4pIHZlc2FmYjog
-bW9kZSBpcyAxMjgweDEwMjR4MzIsIGxpbmVsZW5ndGg9NTEyMCwgZm9udCA4eDE2DQooWEVO
-KSB2ZXNhZmI6IFRydWVjb2xvcjogc2l6ZT04Ojg6ODo4LCBzaGlmdD0yNDoxNjo4OjANCihY
-RU4pIGZvdW5kIFNNUCBNUC10YWJsZSBhdCAwMDBmZjc4MA0KKFhFTikgRE1JIHByZXNlbnQu
-DQooWEVOKSBBUElDIGJvb3Qgc3RhdGUgaXMgJ3hhcGljJw0KKFhFTikgVXNpbmcgQVBJQyBk
-cml2ZXIgZGVmYXVsdA0KKFhFTikgQUNQSTogUE0tVGltZXIgSU8gUG9ydDogMHg4MDgNCihY
-RU4pIEFDUEk6IEFDUEkgU0xFRVAgSU5GTzogcG0xeF9jbnRbODA0LDBdLCBwbTF4X2V2dFs4
-MDAsMF0NCihYRU4pIEFDUEk6ICAgICAgICAgICAgICAgICAgd2FrZXVwX3ZlY1thZmU5ZTAw
-Y10sIHZlY19zaXplWzIwXQ0KKFhFTikgQUNQSTogTG9jYWwgQVBJQyBhZGRyZXNzIDB4ZmVl
-MDAwMDANCihYRU4pIEFDUEk6IExBUElDIChhY3BpX2lkWzB4MDFdIGxhcGljX2lkWzB4MDBd
-IGVuYWJsZWQpDQooWEVOKSBQcm9jZXNzb3IgIzAgMDoxMCBBUElDIHZlcnNpb24gMTYNCihY
-RU4pIEFDUEk6IExBUElDIChhY3BpX2lkWzB4MDJdIGxhcGljX2lkWzB4MDFdIGVuYWJsZWQp
-DQooWEVOKSBQcm9jZXNzb3IgIzEgMDoxMCBBUElDIHZlcnNpb24gMTYNCihYRU4pIEFDUEk6
-IExBUElDIChhY3BpX2lkWzB4MDNdIGxhcGljX2lkWzB4MDJdIGVuYWJsZWQpDQooWEVOKSBQ
-cm9jZXNzb3IgIzIgMDoxMCBBUElDIHZlcnNpb24gMTYNCihYRU4pIEFDUEk6IExBUElDIChh
-Y3BpX2lkWzB4MDRdIGxhcGljX2lkWzB4MDNdIGVuYWJsZWQpDQooWEVOKSBQcm9jZXNzb3Ig
-IzMgMDoxMCBBUElDIHZlcnNpb24gMTYNCihYRU4pIEFDUEk6IExBUElDIChhY3BpX2lkWzB4
-MDVdIGxhcGljX2lkWzB4MDRdIGVuYWJsZWQpDQooWEVOKSBQcm9jZXNzb3IgIzQgMDoxMCBB
-UElDIHZlcnNpb24gMTYNCihYRU4pIEFDUEk6IExBUElDIChhY3BpX2lkWzB4MDZdIGxhcGlj
-X2lkWzB4MDVdIGVuYWJsZWQpDQooWEVOKSBQcm9jZXNzb3IgIzUgMDoxMCBBUElDIHZlcnNp
-b24gMTYNCihYRU4pIEFDUEk6IElPQVBJQyAoaWRbMHgwNl0gYWRkcmVzc1sweGZlYzAwMDAw
-XSBnc2lfYmFzZVswXSkNCihYRU4pIElPQVBJQ1swXTogYXBpY19pZCA2LCB2ZXJzaW9uIDMz
-LCBhZGRyZXNzIDB4ZmVjMDAwMDAsIEdTSSAwLTIzDQooWEVOKSBBQ1BJOiBJT0FQSUMgKGlk
-WzB4MDddIGFkZHJlc3NbMHhmZWMyMDAwMF0gZ3NpX2Jhc2VbMjRdKQ0KKFhFTikgSU9BUElD
-WzFdOiBhcGljX2lkIDcsIHZlcnNpb24gMzMsIGFkZHJlc3MgMHhmZWMyMDAwMCwgR1NJIDI0
-LTU1DQooWEVOKSBBQ1BJOiBJTlRfU1JDX09WUiAoYnVzIDAgYnVzX2lycSAwIGdsb2JhbF9p
-cnEgMiBkZmwgZGZsKQ0KKFhFTikgQUNQSTogSU5UX1NSQ19PVlIgKGJ1cyAwIGJ1c19pcnEg
-OSBnbG9iYWxfaXJxIDkgbG93IGxldmVsKQ0KKFhFTikgQUNQSTogSVJRMCB1c2VkIGJ5IG92
-ZXJyaWRlLg0KKFhFTikgQUNQSTogSVJRMiB1c2VkIGJ5IG92ZXJyaWRlLg0KKFhFTikgQUNQ
-STogSVJROSB1c2VkIGJ5IG92ZXJyaWRlLg0KKFhFTikgRW5hYmxpbmcgQVBJQyBtb2RlOiAg
-RmxhdC4gIFVzaW5nIDIgSS9PIEFQSUNzDQooWEVOKSBBQ1BJOiBIUEVUIGlkOiAweDgzMDAg
-YmFzZTogMHhmZWQwMDAwMA0KKFhFTikgVGFibGUgaXMgbm90IGZvdW5kIQ0KKFhFTikgVXNp
-bmcgQUNQSSAoTUFEVCkgZm9yIFNNUCBjb25maWd1cmF0aW9uIGluZm9ybWF0aW9uDQooWEVO
-KSBTTVA6IEFsbG93aW5nIDYgQ1BVcyAoMCBob3RwbHVnIENQVXMpDQooWEVOKSBtYXBwZWQg
-QVBJQyB0byBmZmZmODJjM2ZmZGZlMDAwIChmZWUwMDAwMCkNCihYRU4pIG1hcHBlZCBJT0FQ
-SUMgdG8gZmZmZjgyYzNmZmRmZDAwMCAoZmVjMDAwMDApDQooWEVOKSBtYXBwZWQgSU9BUElD
-IHRvIGZmZmY4MmMzZmZkZmMwMDAgKGZlYzIwMDAwKQ0KKFhFTikgSVJRIGxpbWl0czogNTYg
-R1NJLCAxMTEyIE1TSS9NU0ktWA0KKFhFTikgVXNpbmcgc2NoZWR1bGVyOiBTTVAgQ3JlZGl0
-IFNjaGVkdWxlciAoY3JlZGl0KQ0KKFhFTikgRGV0ZWN0ZWQgMzIwMC4yMTYgTUh6IHByb2Nl
-c3Nvci4NCihYRU4pIEluaXRpbmcgbWVtb3J5IHNoYXJpbmcuDQooWEVOKSBBTUQgRmFtMTBo
-IG1hY2hpbmUgY2hlY2sgcmVwb3J0aW5nIGVuYWJsZWQNCihYRU4pIFBDSTogTUNGRyBjb25m
-aWd1cmF0aW9uIDA6IGJhc2UgZTAwMDAwMDAgc2VnbWVudCAwMDAwIGJ1c2VzIDAwIC0gZmYN
-CihYRU4pIFBDSTogTm90IHVzaW5nIE1DRkcgZm9yIHNlZ21lbnQgMDAwMCBidXMgMDAtZmYN
-CihYRU4pIEFNRC1WaTogSU9NTVUgMCBFbmFibGVkLg0KKFhFTikgQU1ELVZpOiBFbmFibGlu
-ZyBnbG9iYWwgdmVjdG9yIG1hcA0KKFhFTikgSS9PIHZpcnR1YWxpc2F0aW9uIGVuYWJsZWQN
-CihYRU4pICAtIERvbTAgbW9kZTogUmVsYXhlZA0KKFhFTikgR2V0dGluZyBWRVJTSU9OOiA4
-MDA1MDAxMA0KKFhFTikgR2V0dGluZyBWRVJTSU9OOiA4MDA1MDAxMA0KKFhFTikgR2V0dGlu
-ZyBJRDogMA0KKFhFTikgR2V0dGluZyBMVlQwOiA3MDANCihYRU4pIEdldHRpbmcgTFZUMTog
-NDAwDQooWEVOKSBlbmFibGVkIEV4dElOVCBvbiBDUFUjMA0KKFhFTikgRVNSIHZhbHVlIGJl
-Zm9yZSBlbmFibGluZyB2ZWN0b3I6IDB4MDAwMDAwMDQgIGFmdGVyOiAweDAwMDAwMDAwDQoo
-WEVOKSBFTkFCTElORyBJTy1BUElDIElSUXMNCihYRU4pICAtPiBVc2luZyBuZXcgQUNLIG1l
-dGhvZA0KKFhFTikgaW5pdCBJT19BUElDIElSUXMNCihYRU4pICBJTy1BUElDIChhcGljaWQt
-cGluKSA2LTAsIDYtMTYsIDYtMTcsIDYtMTgsIDYtMTksIDYtMjAsIDYtMjEsIDYtMjIsIDYt
-MjMsIDctMCwgNy0xLCA3LTIsIDctMywgNy00LCA3LTUsIDctNiwgNy03LCA3LTgsIDctOSwg
-Ny0xMCwgNy0xMSwgNy0xMiwgNy0xMywgNy0xNCwgNy0xNSwgNy0xNiwgNy0xNywgNy0xOCwg
-Ny0xOSwgNy0yMCwgNy0yMSwgNy0yMiwgNy0yMywgNy0yNCwgNy0yNSwgNy0yNiwgNy0yNywg
-Ny0yOCwgNy0yOSwgNy0zMCwgNy0zMSBub3QgY29ubmVjdGVkLg0KKFhFTikgLi5USU1FUjog
-dmVjdG9yPTB4RjAgYXBpYzE9MCBwaW4xPTIgYXBpYzI9LTEgcGluMj0tMQ0KKFhFTikgbnVt
-YmVyIG9mIE1QIElSUSBzb3VyY2VzOiAxNS4NCihYRU4pIG51bWJlciBvZiBJTy1BUElDICM2
-IHJlZ2lzdGVyczogMjQuDQooWEVOKSBudW1iZXIgb2YgSU8tQVBJQyAjNyByZWdpc3RlcnM6
-IDMyLg0KKFhFTikgdGVzdGluZyB0aGUgSU8gQVBJQy4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
-DQooWEVOKSBJTyBBUElDICM2Li4uLi4uDQooWEVOKSAuLi4uIHJlZ2lzdGVyICMwMDogMDYw
-MDAwMDANCihYRU4pIC4uLi4uLi4gICAgOiBwaHlzaWNhbCBBUElDIGlkOiAwNg0KKFhFTikg
-Li4uLi4uLiAgICA6IERlbGl2ZXJ5IFR5cGU6IDANCihYRU4pIC4uLi4uLi4gICAgOiBMVFMg
-ICAgICAgICAgOiAwDQooWEVOKSAuLi4uIHJlZ2lzdGVyICMwMTogMDAxNzgwMjENCihYRU4p
-IC4uLi4uLi4gICAgIDogbWF4IHJlZGlyZWN0aW9uIGVudHJpZXM6IDAwMTcNCihYRU4pIC4u
-Li4uLi4gICAgIDogUFJRIGltcGxlbWVudGVkOiAxDQooWEVOKSAuLi4uLi4uICAgICA6IElP
-IEFQSUMgdmVyc2lvbjogMDAyMQ0KKFhFTikgLi4uLiByZWdpc3RlciAjMDI6IDA2MDAwMDAw
-DQooWEVOKSAuLi4uLi4uICAgICA6IGFyYml0cmF0aW9uOiAwNg0KKFhFTikgLi4uLiByZWdp
-c3RlciAjMDM6IDA3MDAwMDAwDQooWEVOKSAuLi4uLi4uICAgICA6IEJvb3QgRFQgICAgOiAw
-DQooWEVOKSAuLi4uIElSUSByZWRpcmVjdGlvbiB0YWJsZToNCihYRU4pICBOUiBMb2cgUGh5
-IE1hc2sgVHJpZyBJUlIgUG9sIFN0YXQgRGVzdCBEZWxpIFZlY3Q6ICAgDQooWEVOKSAgMDAg
-MDAwIDAwICAxICAgIDAgICAgMCAgIDAgICAwICAgIDAgICAgMCAgICAwMA0KKFhFTikgIDAx
-IDAwMSAwMSAgMCAgICAwICAgIDAgICAwICAgMCAgICAxICAgIDEgICAgMzANCihYRU4pICAw
-MiAwMDEgMDEgIDAgICAgMCAgICAwICAgMCAgIDAgICAgMSAgICAxICAgIEYwDQooWEVOKSAg
-MDMgMDAxIDAxICAwICAgIDAgICAgMCAgIDAgICAwICAgIDEgICAgMSAgICAzOA0KKFhFTikg
-IDA0IDAwMSAwMSAgMCAgICAwICAgIDAgICAwICAgMCAgICAxICAgIDEgICAgRjENCihYRU4p
-ICAwNSAwMDEgMDEgIDAgICAgMCAgICAwICAgMCAgIDAgICAgMSAgICAxICAgIDQwDQooWEVO
-KSAgMDYgMDAxIDAxICAwICAgIDAgICAgMCAgIDAgICAwICAgIDEgICAgMSAgICA0OA0KKFhF
-TikgIDA3IDAwMSAwMSAgMCAgICAwICAgIDAgICAwICAgMCAgICAxICAgIDEgICAgNTANCihY
-RU4pICAwOCAwMDEgMDEgIDAgICAgMCAgICAwICAgMCAgIDAgICAgMSAgICAxICAgIDU4DQoo
-WEVOKSAgMDkgMDAxIDAxICAxICAgIDEgICAgMCAgIDEgICAwICAgIDEgICAgMSAgICA2MA0K
-KFhFTikgIDBhIDAwMSAwMSAgMCAgICAwICAgIDAgICAwICAgMCAgICAxICAgIDEgICAgNjgN
-CihYRU4pICAwYiAwMDEgMDEgIDAgICAgMCAgICAwICAgMCAgIDAgICAgMSAgICAxICAgIDcw
-DQooWEVOKSAgMGMgMDAxIDAxICAwICAgIDAgICAgMCAgIDAgICAwICAgIDEgICAgMSAgICA3
-OA0KKFhFTikgIDBkIDAwMSAwMSAgMCAgICAwICAgIDAgICAwICAgMCAgICAxICAgIDEgICAg
-ODgNCihYRU4pICAwZSAwMDEgMDEgIDAgICAgMCAgICAwICAgMCAgIDAgICAgMSAgICAxICAg
-IDkwDQooWEVOKSAgMGYgMDAxIDAxICAwICAgIDAgICAgMCAgIDAgICAwICAgIDEgICAgMSAg
-ICA5OA0KKFhFTikgIDEwIDAwMCAwMCAgMSAgICAwICAgIDAgICAwICAgMCAgICAwICAgIDAg
-ICAgMDANCihYRU4pICAxMSAwMDAgMDAgIDEgICAgMCAgICAwICAgMCAgIDAgICAgMCAgICAw
-ICAgIDAwDQooWEVOKSAgMTIgMDAwIDAwICAxICAgIDAgICAgMCAgIDAgICAwICAgIDAgICAg
-MCAgICAwMA0KKFhFTikgIDEzIDAwMCAwMCAgMSAgICAwICAgIDAgICAwICAgMCAgICAwICAg
-IDAgICAgMDANCihYRU4pICAxNCAwMDAgMDAgIDEgICAgMCAgICAwICAgMCAgIDAgICAgMCAg
-ICAwICAgIDAwDQooWEVOKSAgMTUgMDAwIDAwICAxICAgIDAgICAgMCAgIDAgICAwICAgIDAg
-ICAgMCAgICAwMA0KKFhFTikgIDE2IDAwMCAwMCAgMSAgICAwICAgIDAgICAwICAgMCAgICAw
-ICAgIDAgICAgMDANCihYRU4pICAxNyAwMDAgMDAgIDEgICAgMCAgICAwICAgMCAgIDAgICAg
-MCAgICAwICAgIDAwDQooWEVOKSBJTyBBUElDICM3Li4uLi4uDQooWEVOKSAuLi4uIHJlZ2lz
-dGVyICMwMDogMDcwMDAwMDANCihYRU4pIC4uLi4uLi4gICAgOiBwaHlzaWNhbCBBUElDIGlk
-OiAwNw0KKFhFTikgLi4uLi4uLiAgICA6IERlbGl2ZXJ5IFR5cGU6IDANCihYRU4pIC4uLi4u
-Li4gICAgOiBMVFMgICAgICAgICAgOiAwDQooWEVOKSAuLi4uIHJlZ2lzdGVyICMwMTogMDAx
-RjgwMjENCihYRU4pIC4uLi4uLi4gICAgIDogbWF4IHJlZGlyZWN0aW9uIGVudHJpZXM6IDAw
-MUYNCihYRU4pIC4uLi4uLi4gICAgIDogUFJRIGltcGxlbWVudGVkOiAxDQooWEVOKSAuLi4u
-Li4uICAgICA6IElPIEFQSUMgdmVyc2lvbjogMDAyMQ0KKFhFTikgLi4uLiByZWdpc3RlciAj
-MDI6IDAwMDAwMDAwDQooWEVOKSAuLi4uLi4uICAgICA6IGFyYml0cmF0aW9uOiAwMA0KKFhF
-TikgLi4uLiBJUlEgcmVkaXJlY3Rpb24gdGFibGU6DQooWEVOKSAgTlIgTG9nIFBoeSBNYXNr
-IFRyaWcgSVJSIFBvbCBTdGF0IERlc3QgRGVsaSBWZWN0OiAgIA0KKFhFTikgIDAwIDAwMCAw
-MCAgMSAgICAwICAgIDAgICAwICAgMCAgICAwICAgIDAgICAgMDANCihYRU4pICAwMSAwMDAg
-MDAgIDEgICAgMCAgICAwICAgMCAgIDAgICAgMCAgICAwICAgIDAwDQooWEVOKSAgMDIgMDAw
-IDAwICAxICAgIDAgICAgMCAgIDAgICAwICAgIDAgICAgMCAgICAwMA0KKFhFTikgIDAzIDAw
-MCAwMCAgMSAgICAwICAgIDAgICAwICAgMCAgICAwICAgIDAgICAgMDANCihYRU4pICAwNCAw
-MDAgMDAgIDEgICAgMCAgICAwICAgMCAgIDAgICAgMCAgICAwICAgIDAwDQooWEVOKSAgMDUg
-MDAwIDAwICAxICAgIDAgICAgMCAgIDAgICAwICAgIDAgICAgMCAgICAwMA0KKFhFTikgIDA2
-IDAwMCAwMCAgMSAgICAwICAgIDAgICAwICAgMCAgICAwICAgIDAgICAgMDANCihYRU4pICAw
-NyAwMDAgMDAgIDEgICAgMCAgICAwICAgMCAgIDAgICAgMCAgICAwICAgIDAwDQooWEVOKSAg
-MDggMDAwIDAwICAxICAgIDAgICAgMCAgIDAgICAwICAgIDAgICAgMCAgICAwMA0KKFhFTikg
-IDA5IDAwMCAwMCAgMSAgICAwICAgIDAgICAwICAgMCAgICAwICAgIDAgICAgMDANCihYRU4p
-ICAwYSAwMDAgMDAgIDEgICAgMCAgICAwICAgMCAgIDAgICAgMCAgICAwICAgIDAwDQooWEVO
-KSAgMGIgMDAwIDAwICAxICAgIDAgICAgMCAgIDAgICAwICAgIDAgICAgMCAgICAwMA0KKFhF
-TikgIDBjIDAwMCAwMCAgMSAgICAwICAgIDAgICAwICAgMCAgICAwICAgIDAgICAgMDANCihY
-RU4pICAwZCAwMDAgMDAgIDEgICAgMCAgICAwICAgMCAgIDAgICAgMCAgICAwICAgIDAwDQoo
-WEVOKSAgMGUgMDAwIDAwICAxICAgIDAgICAgMCAgIDAgICAwICAgIDAgICAgMCAgICAwMA0K
-KFhFTikgIDBmIDAwMCAwMCAgMSAgICAwICAgIDAgICAwICAgMCAgICAwICAgIDAgICAgMDAN
-CihYRU4pICAxMCAwMDAgMDAgIDEgICAgMCAgICAwICAgMCAgIDAgICAgMCAgICAwICAgIDAw
-DQooWEVOKSAgMTEgMDAwIDAwICAxICAgIDAgICAgMCAgIDAgICAwICAgIDAgICAgMCAgICAw
-MA0KKFhFTikgIDEyIDAwMCAwMCAgMSAgICAwICAgIDAgICAwICAgMCAgICAwICAgIDAgICAg
-MDANCihYRU4pICAxMyAwMDAgMDAgIDEgICAgMCAgICAwICAgMCAgIDAgICAgMCAgICAwICAg
-IDAwDQooWEVOKSAgMTQgMDAwIDAwICAxICAgIDAgICAgMCAgIDAgICAwICAgIDAgICAgMCAg
-ICAwMA0KKFhFTikgIDE1IDAwMCAwMCAgMSAgICAwICAgIDAgICAwICAgMCAgICAwICAgIDAg
-ICAgMDANCihYRU4pICAxNiAwMDAgMDAgIDEgICAgMCAgICAwICAgMCAgIDAgICAgMCAgICAw
-ICAgIDAwDQooWEVOKSAgMTcgMDAwIDAwICAxICAgIDAgICAgMCAgIDAgICAwICAgIDAgICAg
-MCAgICAwMA0KKFhFTikgIDE4IDAwMCAwMCAgMSAgICAwICAgIDAgICAwICAgMCAgICAwICAg
-IDAgICAgMDANCihYRU4pICAxOSAwMDAgMDAgIDEgICAgMCAgICAwICAgMCAgIDAgICAgMCAg
-ICAwICAgIDAwDQooWEVOKSAgMWEgMDAwIDAwICAxICAgIDAgICAgMCAgIDAgICAwICAgIDAg
-ICAgMCAgICAwMA0KKFhFTikgIDFiIDAwMCAwMCAgMSAgICAwICAgIDAgICAwICAgMCAgICAw
-ICAgIDAgICAgMDANCihYRU4pICAxYyAwMDAgMDAgIDEgICAgMCAgICAwICAgMCAgIDAgICAg
-MCAgICAwICAgIDAwDQooWEVOKSAgMWQgMDAwIDAwICAxICAgIDAgICAgMCAgIDAgICAwICAg
-IDAgICAgMCAgICAwMA0KKFhFTikgIDFlIDAwMCAwMCAgMSAgICAwICAgIDAgICAwICAgMCAg
-ICAwICAgIDAgICAgMDANCihYRU4pICAxZiAwMDAgMDAgIDEgICAgMCAgICAwICAgMCAgIDAg
-ICAgMCAgICAwICAgIDAwDQooWEVOKSBVc2luZyB2ZWN0b3ItYmFzZWQgaW5kZXhpbmcNCihY
-RU4pIElSUSB0byBwaW4gbWFwcGluZ3M6DQooWEVOKSBJUlEyNDAgLT4gMDoyDQooWEVOKSBJ
-UlE0OCAtPiAwOjENCihYRU4pIElSUTU2IC0+IDA6Mw0KKFhFTikgSVJRMjQxIC0+IDA6NA0K
-KFhFTikgSVJRNjQgLT4gMDo1DQooWEVOKSBJUlE3MiAtPiAwOjYNCihYRU4pIElSUTgwIC0+
-IDA6Nw0KKFhFTikgSVJRODggLT4gMDo4DQooWEVOKSBJUlE5NiAtPiAwOjkNCihYRU4pIElS
-UTEwNCAtPiAwOjEwDQooWEVOKSBJUlExMTIgLT4gMDoxMQ0KKFhFTikgSVJRMTIwIC0+IDA6
-MTINCihYRU4pIElSUTEzNiAtPiAwOjEzDQooWEVOKSBJUlExNDQgLT4gMDoxNA0KKFhFTikg
-SVJRMTUyIC0+IDA6MTUNCihYRU4pIC4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
-Li4uLiBkb25lLg0KKFhFTikgVXNpbmcgbG9jYWwgQVBJQyB0aW1lciBpbnRlcnJ1cHRzLg0K
-KFhFTikgY2FsaWJyYXRpbmcgQVBJQyB0aW1lciAuLi4NCihYRU4pIC4uLi4uIENQVSBjbG9j
-ayBzcGVlZCBpcyAzMjAwLjE2MDQgTUh6Lg0KKFhFTikgLi4uLi4gaG9zdCBidXMgY2xvY2sg
-c3BlZWQgaXMgMjAwLjAwOTggTUh6Lg0KKFhFTikgLi4uLi4gYnVzX3NjYWxlID0gMHgwMDAw
-Q0NENw0KKFhFTikgWzIwMTItMDgtMzEgMjA6NTI6MjVdIFBsYXRmb3JtIHRpbWVyIGlzIDE0
-LjMxOE1IeiBIUEVUDQooWEVOKSBbMjAxMi0wOC0zMSAyMDo1MjoyNV0gQWxsb2NhdGVkIGNv
-bnNvbGUgcmluZyBvZiA2NCBLaUIuDQooWEVOKSBbMjAxMi0wOC0zMSAyMDo1MjoyNV0gSFZN
-OiBBU0lEcyBlbmFibGVkLg0KKFhFTikgWzIwMTItMDgtMzEgMjA6NTI6MjVdIFNWTTogU3Vw
-cG9ydGVkIGFkdmFuY2VkIGZlYXR1cmVzOg0KKFhFTikgWzIwMTItMDgtMzEgMjA6NTI6MjVd
-ICAtIE5lc3RlZCBQYWdlIFRhYmxlcyAoTlBUKQ0KKFhFTikgWzIwMTItMDgtMzEgMjA6NTI6
-MjVdICAtIExhc3QgQnJhbmNoIFJlY29yZCAoTEJSKSBWaXJ0dWFsaXNhdGlvbg0KKFhFTikg
-WzIwMTItMDgtMzEgMjA6NTI6MjVdICAtIE5leHQtUklQIFNhdmVkIG9uICNWTUVYSVQNCihY
-RU4pIFsyMDEyLTA4LTMxIDIwOjUyOjI1XSAgLSBQYXVzZS1JbnRlcmNlcHQgRmlsdGVyDQoo
-WEVOKSBbMjAxMi0wOC0zMSAyMDo1MjoyNV0gSFZNOiBTVk0gZW5hYmxlZA0KKFhFTikgWzIw
-MTItMDgtMzEgMjA6NTI6MjVdIEhWTTogSGFyZHdhcmUgQXNzaXN0ZWQgUGFnaW5nIChIQVAp
-IGRldGVjdGVkDQooWEVOKSBbMjAxMi0wOC0zMSAyMDo1MjoyNV0gSFZNOiBIQVAgcGFnZSBz
-aXplczogNGtCLCAyTUIsIDFHQg0KKFhFTikgWzIwMTItMDgtMzEgMjA6NTI6MjRdIG1hc2tl
-ZCBFeHRJTlQgb24gQ1BVIzENCihYRU4pIFsyMDEyLTA4LTMxIDIwOjUyOjI1XSBtaWNyb2Nv
-ZGU6IGNvbGxlY3RfY3B1X2luZm86IHBhdGNoX2lkPTB4MTAwMDBiZg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjA6NTI6MjRdIG1hc2tlZCBFeHRJTlQgb24gQ1BVIzINCihYRU4pIFsyMDEyLTA4
-LTMxIDIwOjUyOjI1XSBtaWNyb2NvZGU6IGNvbGxlY3RfY3B1X2luZm86IHBhdGNoX2lkPTB4
-MTAwMDBiZg0KKFhFTikgWzIwMTItMDgtMzEgMjA6NTI6MjRdIG1hc2tlZCBFeHRJTlQgb24g
-Q1BVIzMNCihYRU4pIFsyMDEyLTA4LTMxIDIwOjUyOjI1XSBtaWNyb2NvZGU6IGNvbGxlY3Rf
-Y3B1X2luZm86IHBhdGNoX2lkPTB4MTAwMDBiZg0KKFhFTikgWzIwMTItMDgtMzEgMjA6NTI6
-MjRdIG1hc2tlZCBFeHRJTlQgb24gQ1BVIzQNCihYRU4pIFsyMDEyLTA4LTMxIDIwOjUyOjI1
-XSBtaWNyb2NvZGU6IGNvbGxlY3RfY3B1X2luZm86IHBhdGNoX2lkPTB4MTAwMDBiZg0KKFhF
-TikgWzIwMTItMDgtMzEgMjA6NTI6MjRdIG1hc2tlZCBFeHRJTlQgb24gQ1BVIzUNCihYRU4p
-IFsyMDEyLTA4LTMxIDIwOjUyOjI1XSBCcm91Z2h0IHVwIDYgQ1BVcw0KKFhFTikgWzIwMTIt
-MDgtMzEgMjA6NTI6MjVdIG1pY3JvY29kZTogY29sbGVjdF9jcHVfaW5mbzogcGF0Y2hfaWQ9
-MHgxMDAwMGJmDQooWEVOKSBbMjAxMi0wOC0zMSAyMDo1MjoyNV0gSFBFVCdzIE1TSSBtb2Rl
-IGhhc24ndCBiZWVuIHN1cHBvcnRlZCB3aGVuIEludGVycnVwdCBSZW1hcHBpbmcgaXMgZW5h
-YmxlZC4NCihYRU4pIFsyMDEyLTA4LTMxIDIwOjUyOjI1XSBBQ1BJIHNsZWVwIG1vZGVzOiBT
-Mw0KKFhFTikgWzIwMTItMDgtMzEgMjA6NTI6MjVdIE1DQTogVXNlIGh3IHRocmVzaG9sZGlu
-ZyB0byBhZGp1c3QgcG9sbGluZyBmcmVxdWVuY3kNCihYRU4pIFsyMDEyLTA4LTMxIDIwOjUy
-OjI1XSBtY2hlY2tfcG9sbDogTWFjaGluZSBjaGVjayBwb2xsaW5nIHRpbWVyIHN0YXJ0ZWQu
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMDo1MjoyNV0gWGVub3Byb2ZpbGU6IEZhaWxlZCB0byBz
-ZXR1cCBJQlMgTFZUIG9mZnNldCwgSUJTQ1RMID0gMHhmZmZmZmZmZg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjA6NTI6MjVdICoqKiBMT0FESU5HIERPTUFJTiAwICoqKg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjA6NTI6MjVdIGVsZl9wYXJzZV9iaW5hcnk6IHBoZHI6IHBhZGRyPTB4MTAwMDAw
-MCBtZW1zej0weGI2ODAwMA0KKFhFTikgWzIwMTItMDgtMzEgMjA6NTI6MjVdIGVsZl9wYXJz
-ZV9iaW5hcnk6IHBoZHI6IHBhZGRyPTB4MWMwMDAwMCBtZW1zej0weGQ4MGU4DQooWEVOKSBb
-MjAxMi0wOC0zMSAyMDo1MjoyNV0gZWxmX3BhcnNlX2JpbmFyeTogcGhkcjogcGFkZHI9MHgx
-Y2Q5MDAwIG1lbXN6PTB4MTNjMDANCihYRU4pIFsyMDEyLTA4LTMxIDIwOjUyOjI1XSBlbGZf
-cGFyc2VfYmluYXJ5OiBwaGRyOiBwYWRkcj0weDFjZWQwMDAgbWVtc3o9MHhkZTQwMDANCihY
-RU4pIFsyMDEyLTA4LTMxIDIwOjUyOjI1XSBlbGZfcGFyc2VfYmluYXJ5OiBtZW1vcnk6IDB4
-MTAwMDAwMCAtPiAweDJhZDEwMDANCihYRU4pIFsyMDEyLTA4LTMxIDIwOjUyOjI1XSBlbGZf
-eGVuX3BhcnNlX25vdGU6IEdVRVNUX09TID0gImxpbnV4Ig0KKFhFTikgWzIwMTItMDgtMzEg
-MjA6NTI6MjVdIGVsZl94ZW5fcGFyc2Vfbm90ZTogR1VFU1RfVkVSU0lPTiA9ICIyLjYiDQoo
-WEVOKSBbMjAxMi0wOC0zMSAyMDo1MjoyNV0gZWxmX3hlbl9wYXJzZV9ub3RlOiBYRU5fVkVS
-U0lPTiA9ICJ4ZW4tMy4wIg0KKFhFTikgWzIwMTItMDgtMzEgMjA6NTI6MjVdIGVsZl94ZW5f
-cGFyc2Vfbm90ZTogVklSVF9CQVNFID0gMHhmZmZmZmZmZjgwMDAwMDAwDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMDo1MjoyNV0gZWxmX3hlbl9wYXJzZV9ub3RlOiBFTlRSWSA9IDB4ZmZmZmZm
-ZmY4MWNlZDIxMA0KKFhFTikgWzIwMTItMDgtMzEgMjA6NTI6MjVdIGVsZl94ZW5fcGFyc2Vf
-bm90ZTogSFlQRVJDQUxMX1BBR0UgPSAweGZmZmZmZmZmODEwMDEwMDANCihYRU4pIFsyMDEy
-LTA4LTMxIDIwOjUyOjI1XSBlbGZfeGVuX3BhcnNlX25vdGU6IEZFQVRVUkVTID0gIiF3cml0
-YWJsZV9wYWdlX3RhYmxlc3xwYWVfcGdkaXJfYWJvdmVfNGdiIg0KKFhFTikgWzIwMTItMDgt
-MzEgMjA6NTI6MjVdIGVsZl94ZW5fcGFyc2Vfbm90ZTogUEFFX01PREUgPSAieWVzIg0KKFhF
-TikgWzIwMTItMDgtMzEgMjA6NTI6MjVdIGVsZl94ZW5fcGFyc2Vfbm90ZTogTE9BREVSID0g
-ImdlbmVyaWMiDQooWEVOKSBbMjAxMi0wOC0zMSAyMDo1MjoyNV0gZWxmX3hlbl9wYXJzZV9u
-b3RlOiB1bmtub3duIHhlbiBlbGYgbm90ZSAoMHhkKQ0KKFhFTikgWzIwMTItMDgtMzEgMjA6
-NTI6MjVdIGVsZl94ZW5fcGFyc2Vfbm90ZTogU1VTUEVORF9DQU5DRUwgPSAweDENCihYRU4p
-IFsyMDEyLTA4LTMxIDIwOjUyOjI1XSBlbGZfeGVuX3BhcnNlX25vdGU6IEhWX1NUQVJUX0xP
-VyA9IDB4ZmZmZjgwMDAwMDAwMDAwMA0KKFhFTikgWzIwMTItMDgtMzEgMjA6NTI6MjVdIGVs
-Zl94ZW5fcGFyc2Vfbm90ZTogUEFERFJfT0ZGU0VUID0gMHgwDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMDo1MjoyNV0gZWxmX3hlbl9hZGRyX2NhbGNfY2hlY2s6IGFkZHJlc3NlczoNCihYRU4p
-IFsyMDEyLTA4LTMxIDIwOjUyOjI1XSAgICAgdmlydF9iYXNlICAgICAgICA9IDB4ZmZmZmZm
-ZmY4MDAwMDAwMA0KKFhFTikgWzIwMTItMDgtMzEgMjA6NTI6MjVdICAgICBlbGZfcGFkZHJf
-b2Zmc2V0ID0gMHgwDQooWEVOKSBbMjAxMi0wOC0zMSAyMDo1MjoyNV0gICAgIHZpcnRfb2Zm
-c2V0ICAgICAgPSAweGZmZmZmZmZmODAwMDAwMDANCihYRU4pIFsyMDEyLTA4LTMxIDIwOjUy
-OjI1XSAgICAgdmlydF9rc3RhcnQgICAgICA9IDB4ZmZmZmZmZmY4MTAwMDAwMA0KKFhFTikg
-WzIwMTItMDgtMzEgMjA6NTI6MjVdICAgICB2aXJ0X2tlbmQgICAgICAgID0gMHhmZmZmZmZm
-ZjgyYWQxMDAwDQooWEVOKSBbMjAxMi0wOC0zMSAyMDo1MjoyNV0gICAgIHZpcnRfZW50cnkg
-ICAgICAgPSAweGZmZmZmZmZmODFjZWQyMTANCihYRU4pIFsyMDEyLTA4LTMxIDIwOjUyOjI1
-XSAgICAgcDJtX2Jhc2UgICAgICAgICA9IDB4ZmZmZmZmZmZmZmZmZmZmZg0KKFhFTikgWzIw
-MTItMDgtMzEgMjA6NTI6MjVdICBYZW4gIGtlcm5lbDogNjQtYml0LCBsc2IsIGNvbXBhdDMy
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMDo1MjoyNV0gIERvbTAga2VybmVsOiA2NC1iaXQsIFBB
-RSwgbHNiLCBwYWRkciAweDEwMDAwMDAgLT4gMHgyYWQxMDAwDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMDo1MjoyNV0gUEhZU0lDQUwgTUVNT1JZIEFSUkFOR0VNRU5UOg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjA6NTI6MjVdICBEb20wIGFsbG9jLjogICAwMDAwMDAwMjQwMDAwMDAwLT4wMDAw
-MDAwMjQ0MDAwMDAwICgyNDI0MjggcGFnZXMgdG8gYmUgYWxsb2NhdGVkKQ0KKFhFTikgWzIw
-MTItMDgtMzEgMjA6NTI6MjVdICBJbml0LiByYW1kaXNrOiAwMDAwMDAwMjRmMmZjMDAwLT4w
-MDAwMDAwMjRmZmZmODAwDQooWEVOKSBbMjAxMi0wOC0zMSAyMDo1MjoyNV0gVklSVFVBTCBN
-RU1PUlkgQVJSQU5HRU1FTlQ6DQooWEVOKSBbMjAxMi0wOC0zMSAyMDo1MjoyNV0gIExvYWRl
-ZCBrZXJuZWw6IGZmZmZmZmZmODEwMDAwMDAtPmZmZmZmZmZmODJhZDEwMDANCihYRU4pIFsy
-MDEyLTA4LTMxIDIwOjUyOjI1XSAgSW5pdC4gcmFtZGlzazogZmZmZmZmZmY4MmFkMTAwMC0+
-ZmZmZmZmZmY4MzdkNDgwMA0KKFhFTikgWzIwMTItMDgtMzEgMjA6NTI6MjVdICBQaHlzLU1h
-Y2ggbWFwOiBmZmZmZmZmZjgzN2Q1MDAwLT5mZmZmZmZmZjgzOWQ1MDAwDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMDo1MjoyNV0gIFN0YXJ0IGluZm86ICAgIGZmZmZmZmZmODM5ZDUwMDAtPmZm
-ZmZmZmZmODM5ZDU0YjQNCihYRU4pIFsyMDEyLTA4LTMxIDIwOjUyOjI1XSAgUGFnZSB0YWJs
-ZXM6ICAgZmZmZmZmZmY4MzlkNjAwMC0+ZmZmZmZmZmY4MzlmNzAwMA0KKFhFTikgWzIwMTIt
-MDgtMzEgMjA6NTI6MjVdICBCb290IHN0YWNrOiAgICBmZmZmZmZmZjgzOWY3MDAwLT5mZmZm
-ZmZmZjgzOWY4MDAwDQooWEVOKSBbMjAxMi0wOC0zMSAyMDo1MjoyNV0gIFRPVEFMOiAgICAg
-ICAgIGZmZmZmZmZmODAwMDAwMDAtPmZmZmZmZmZmODNjMDAwMDANCihYRU4pIFsyMDEyLTA4
-LTMxIDIwOjUyOjI1XSAgRU5UUlkgQUREUkVTUzogZmZmZmZmZmY4MWNlZDIxMA0KKFhFTikg
-WzIwMTItMDgtMzEgMjA6NTI6MjVdIERvbTAgaGFzIG1heGltdW0gNiBWQ1BVcw0KKFhFTikg
-WzIwMTItMDgtMzEgMjA6NTI6MjVdIGVsZl9sb2FkX2JpbmFyeTogcGhkciAwIGF0IDB4ZmZm
-ZmZmZmY4MTAwMDAwMCAtPiAweGZmZmZmZmZmODFiNjgwMDANCihYRU4pIFsyMDEyLTA4LTMx
-IDIwOjUyOjI1XSBlbGZfbG9hZF9iaW5hcnk6IHBoZHIgMSBhdCAweGZmZmZmZmZmODFjMDAw
-MDAgLT4gMHhmZmZmZmZmZjgxY2Q4MGU4DQooWEVOKSBbMjAxMi0wOC0zMSAyMDo1MjoyNV0g
-ZWxmX2xvYWRfYmluYXJ5OiBwaGRyIDIgYXQgMHhmZmZmZmZmZjgxY2Q5MDAwIC0+IDB4ZmZm
-ZmZmZmY4MWNlY2MwMA0KKFhFTikgWzIwMTItMDgtMzEgMjA6NTI6MjVdIGVsZl9sb2FkX2Jp
-bmFyeTogcGhkciAzIGF0IDB4ZmZmZmZmZmY4MWNlZDAwMCAtPiAweGZmZmZmZmZmODFkODUw
-MDANCihYRU4pIFsyMDEyLTA4LTMxIDIwOjUyOjI2XSBTY3J1YmJpbmcgRnJlZSBSQU06IC4u
-Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u
-Li4uLi4uLi4uLi4uLi4uZG9uZS4NCihYRU4pIFsyMDEyLTA4LTMxIDIwOjUyOjI3XSBJbml0
-aWFsIGxvdyBtZW1vcnkgdmlycSB0aHJlc2hvbGQgc2V0IGF0IDB4NDAwMCBwYWdlcy4NCihY
-RU4pIFsyMDEyLTA4LTMxIDIwOjUyOjI3XSBTdGQuIExvZ2xldmVsOiBBbGwNCihYRU4pIFsy
-MDEyLTA4LTMxIDIwOjUyOjI3XSBHdWVzdCBMb2dsZXZlbDogQWxsDQooWEVOKSBbMjAxMi0w
-OC0zMSAyMDo1MjoyN10gWGVuIGlzIHJlbGlucXVpc2hpbmcgVkdBIGNvbnNvbGUuDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMDo1MjoyOF0gKioqIFNlcmlhbCBpbnB1dCAtPiBET00wICh0eXBl
-ICdDVFJMLWEnIHRocmVlIHRpbWVzIHRvIHN3aXRjaCBpbnB1dCB0byBYZW4pDQooWEVOKSBb
-MjAxMi0wOC0zMSAyMDo1MjoyOF0gRnJlZWQgMjU2a0IgaW5pdCBtZW1vcnkuDQooWEVOKSBb
-MjAxMi0wOC0zMSAyMDo1MjoyOF0gSU9BUElDWzBdOiBTZXQgUENJIHJvdXRpbmcgZW50cnkg
-KDYtOSAtPiAweDYwIC0+IElSUSA5IE1vZGU6MSBBY3RpdmU6MSkNCihYRU4pIFsyMDEyLTA4
-LTMxIDIwOjUyOjI4XSB0cmFwcy5jOjI1ODQ6ZDAgRG9tYWluIGF0dGVtcHRlZCBXUk1TUiAw
-MDAwMDAwMGMwMDAwNDA4IGZyb20gMHhjMDAwMDAwMDAxMDAwMDAwIHRvIDB4YzAwODAwMDAw
-MTAwMDAwMC4NCihYRU4pIFsyMDEyLTA4LTMxIDIwOjUyOjI4XSB0cmFwcy5jOjI1ODQ6ZDAg
-RG9tYWluIGF0dGVtcHRlZCBXUk1TUiAwMDAwMDAwMGMwMDAwNDA5IGZyb20gMHhjMDAwMDAw
-MDAxMDAwMDAwIHRvIDB4YzAwODAwMDAwMTAwMDAwMC4NCihYRU4pIFsyMDEyLTA4LTMxIDIw
-OjUyOjI4XSB0cmFwcy5jOjI1ODQ6ZDAgRG9tYWluIGF0dGVtcHRlZCBXUk1TUiAwMDAwMDAw
-MGMwMDEwMDA0IGZyb20gMHgwMDAwZmZmMmI5OWIxMmJlIHRvIDB4MDAwMDAwMDAwMDAwYWJj
-ZC4NCihYRU4pIFsyMDEyLTA4LTMxIDIwOjUyOjI4XSB0cmFwcy5jOjI1ODQ6ZDAgRG9tYWlu
-IGF0dGVtcHRlZCBXUk1TUiAwMDAwMDAwMGMwMDAwNDA4IGZyb20gMHhjMDAwMDAwMDAxMDAw
-MDAwIHRvIDB4YzAwODAwMDAwMTAwMDAwMC4NCihYRU4pIFsyMDEyLTA4LTMxIDIwOjUyOjI4
-XSB0cmFwcy5jOjI1ODQ6ZDAgRG9tYWluIGF0dGVtcHRlZCBXUk1TUiAwMDAwMDAwMGMwMDAw
-NDA5IGZyb20gMHhjMDAwMDAwMDAxMDAwMDAwIHRvIDB4YzAwODAwMDAwMTAwMDAwMC4NCihY
-RU4pIFsyMDEyLTA4LTMxIDIwOjUyOjI4XSB0cmFwcy5jOjI1ODQ6ZDAgRG9tYWluIGF0dGVt
-cHRlZCBXUk1TUiAwMDAwMDAwMGMwMDAwNDA4IGZyb20gMHhjMDAwMDAwMDAxMDAwMDAwIHRv
-IDB4YzAwODAwMDAwMTAwMDAwMC4NCihYRU4pIFsyMDEyLTA4LTMxIDIwOjUyOjI4XSB0cmFw
-cy5jOjI1ODQ6ZDAgRG9tYWluIGF0dGVtcHRlZCBXUk1TUiAwMDAwMDAwMGMwMDAwNDA5IGZy
-b20gMHhjMDAwMDAwMDAxMDAwMDAwIHRvIDB4YzAwODAwMDAwMTAwMDAwMC4NCihYRU4pIFsy
-MDEyLTA4LTMxIDIwOjUyOjI4XSB0cmFwcy5jOjI1ODQ6ZDAgRG9tYWluIGF0dGVtcHRlZCBX
-Uk1TUiAwMDAwMDAwMGMwMDAwNDA4IGZyb20gMHhjMDAwMDAwMDAxMDAwMDAwIHRvIDB4YzAw
-ODAwMDAwMTAwMDAwMC4NCihYRU4pIFsyMDEyLTA4LTMxIDIwOjUyOjI4XSB0cmFwcy5jOjI1
-ODQ6ZDAgRG9tYWluIGF0dGVtcHRlZCBXUk1TUiAwMDAwMDAwMGMwMDAwNDA5IGZyb20gMHhj
-MDAwMDAwMDAxMDAwMDAwIHRvIDB4YzAwODAwMDAwMTAwMDAwMC4NCihYRU4pIFsyMDEyLTA4
-LTMxIDIwOjUyOjI4XSB0cmFwcy5jOjI1ODQ6ZDAgRG9tYWluIGF0dGVtcHRlZCBXUk1TUiAw
-MDAwMDAwMGMwMDAwNDA4IGZyb20gMHhjMDAwMDAwMDAxMDAwMDAwIHRvIDB4YzAwODAwMDAw
-MTAwMDAwMC4NCihYRU4pIFsyMDEyLTA4LTMxIDIwOjUyOjI4XSB0cmFwcy5jOjI1ODQ6ZDAg
-RG9tYWluIGF0dGVtcHRlZCBXUk1TUiAwMDAwMDAwMGMwMDAwNDA5IGZyb20gMHhjMDAwMDAw
-MDAxMDAwMDAwIHRvIDB4YzAwODAwMDAwMTAwMDAwMC4NCihYRU4pIFsyMDEyLTA4LTMxIDIw
-OjUyOjI4XSB0cmFwcy5jOjI1ODQ6ZDAgRG9tYWluIGF0dGVtcHRlZCBXUk1TUiAwMDAwMDAw
-MGMwMDAwNDA4IGZyb20gMHhjMDAwMDAwMDAxMDAwMDAwIHRvIDB4YzAwODAwMDAwMTAwMDAw
-MC4NCihYRU4pIFsyMDEyLTA4LTMxIDIwOjUyOjI4XSB0cmFwcy5jOjI1ODQ6ZDAgRG9tYWlu
-IGF0dGVtcHRlZCBXUk1TUiAwMDAwMDAwMGMwMDAwNDA5IGZyb20gMHhjMDAwMDAwMDAxMDAw
-MDAwIHRvIDB4YzAwODAwMDAwMTAwMDAwMC4NCihYRU4pIFsyMDEyLTA4LTMxIDIwOjUyOjI4
-XSBQQ0kgYWRkIGRldmljZSAwMDAwOjAwOjAwLjANCihYRU4pIFsyMDEyLTA4LTMxIDIwOjUy
-OjI4XSBQQ0kgYWRkIGRldmljZSAwMDAwOjAwOjAwLjINCihYRU4pIFsyMDEyLTA4LTMxIDIw
-OjUyOjI4XSBQQ0kgYWRkIGRldmljZSAwMDAwOjAwOjAyLjANCihYRU4pIFsyMDEyLTA4LTMx
-IDIwOjUyOjI4XSBQQ0kgYWRkIGRldmljZSAwMDAwOjAwOjAzLjANCihYRU4pIFsyMDEyLTA4
-LTMxIDIwOjUyOjI4XSBQQ0kgYWRkIGRldmljZSAwMDAwOjAwOjA1LjANCihYRU4pIFsyMDEy
-LTA4LTMxIDIwOjUyOjI4XSBQQ0kgYWRkIGRldmljZSAwMDAwOjAwOjA2LjANCihYRU4pIFsy
-MDEyLTA4LTMxIDIwOjUyOjI4XSBQQ0kgYWRkIGRldmljZSAwMDAwOjAwOjBhLjANCihYRU4p
-IFsyMDEyLTA4LTMxIDIwOjUyOjI4XSBQQ0kgYWRkIGRldmljZSAwMDAwOjAwOjBiLjANCihY
-RU4pIFsyMDEyLTA4LTMxIDIwOjUyOjI4XSBQQ0kgYWRkIGRldmljZSAwMDAwOjAwOjBjLjAN
-CihYRU4pIFsyMDEyLTA4LTMxIDIwOjUyOjI4XSBQQ0kgYWRkIGRldmljZSAwMDAwOjAwOjBk
-LjANCihYRU4pIFsyMDEyLTA4LTMxIDIwOjUyOjI4XSBQQ0kgYWRkIGRldmljZSAwMDAwOjAw
-OjExLjANCihYRU4pIFsyMDEyLTA4LTMxIDIwOjUyOjI4XSBQQ0kgYWRkIGRldmljZSAwMDAw
-OjAwOjEyLjANCihYRU4pIFsyMDEyLTA4LTMxIDIwOjUyOjI4XSBQQ0kgYWRkIGRldmljZSAw
-MDAwOjAwOjEyLjINCihYRU4pIFsyMDEyLTA4LTMxIDIwOjUyOjI4XSBQQ0kgYWRkIGRldmlj
-ZSAwMDAwOjAwOjEzLjANCihYRU4pIFsyMDEyLTA4LTMxIDIwOjUyOjI4XSBQQ0kgYWRkIGRl
-dmljZSAwMDAwOjAwOjEzLjINCihYRU4pIFsyMDEyLTA4LTMxIDIwOjUyOjI4XSBQQ0kgYWRk
-IGRldmljZSAwMDAwOjAwOjE0LjANCihYRU4pIFsyMDEyLTA4LTMxIDIwOjUyOjI4XSBQQ0kg
-YWRkIGRldmljZSAwMDAwOjAwOjE0LjMNCihYRU4pIFsyMDEyLTA4LTMxIDIwOjUyOjI4XSBQ
-Q0kgYWRkIGRldmljZSAwMDAwOjAwOjE0LjQNCihYRU4pIFsyMDEyLTA4LTMxIDIwOjUyOjI4
-XSBQQ0kgYWRkIGRldmljZSAwMDAwOjAwOjE0LjUNCihYRU4pIFsyMDEyLTA4LTMxIDIwOjUy
-OjI4XSBQQ0kgYWRkIGRldmljZSAwMDAwOjAwOjE1LjANCihYRU4pIFsyMDEyLTA4LTMxIDIw
-OjUyOjI4XSBQQ0kgYWRkIGRldmljZSAwMDAwOjAwOjE2LjANCihYRU4pIFsyMDEyLTA4LTMx
-IDIwOjUyOjI4XSBQQ0kgYWRkIGRldmljZSAwMDAwOjAwOjE2LjINCihYRU4pIFsyMDEyLTA4
-LTMxIDIwOjUyOjI4XSBQQ0kgYWRkIGRldmljZSAwMDAwOjAwOjE4LjANCihYRU4pIFsyMDEy
-LTA4LTMxIDIwOjUyOjI4XSBQQ0kgYWRkIGRldmljZSAwMDAwOjAwOjE4LjENCihYRU4pIFsy
-MDEyLTA4LTMxIDIwOjUyOjI4XSBQQ0kgYWRkIGRldmljZSAwMDAwOjAwOjE4LjINCihYRU4p
-IFsyMDEyLTA4LTMxIDIwOjUyOjI4XSBQQ0kgYWRkIGRldmljZSAwMDAwOjAwOjE4LjMNCihY
-RU4pIFsyMDEyLTA4LTMxIDIwOjUyOjI4XSBQQ0kgYWRkIGRldmljZSAwMDAwOjAwOjE4LjQN
-CihYRU4pIFsyMDEyLTA4LTMxIDIwOjUyOjI4XSBQQ0kgYWRkIGRldmljZSAwMDAwOjBiOjAw
-LjANCihYRU4pIFsyMDEyLTA4LTMxIDIwOjUyOjI4XSBQQ0kgYWRkIGRldmljZSAwMDAwOjBh
-OjAwLjANCihYRU4pIFsyMDEyLTA4LTMxIDIwOjUyOjI4XSBQQ0kgYWRkIGRldmljZSAwMDAw
-OjBhOjAwLjENCihYRU4pIFsyMDEyLTA4LTMxIDIwOjUyOjI4XSBQQ0kgYWRkIGRldmljZSAw
-MDAwOjBhOjAwLjINCihYRU4pIFsyMDEyLTA4LTMxIDIwOjUyOjI4XSBQQ0kgYWRkIGRldmlj
-ZSAwMDAwOjBhOjAwLjMNCihYRU4pIFsyMDEyLTA4LTMxIDIwOjUyOjI4XSBQQ0kgYWRkIGRl
-dmljZSAwMDAwOjBhOjAwLjQNCihYRU4pIFsyMDEyLTA4LTMxIDIwOjUyOjI4XSBQQ0kgYWRk
-IGRldmljZSAwMDAwOjBhOjAwLjUNCihYRU4pIFsyMDEyLTA4LTMxIDIwOjUyOjI4XSBQQ0kg
-YWRkIGRldmljZSAwMDAwOjBhOjAwLjYNCihYRU4pIFsyMDEyLTA4LTMxIDIwOjUyOjI4XSBQ
-Q0kgYWRkIGRldmljZSAwMDAwOjBhOjAwLjcNCihYRU4pIFsyMDEyLTA4LTMxIDIwOjUyOjI4
-XSBQQ0kgYWRkIGRldmljZSAwMDAwOjA5OjAwLjANCihYRU4pIFsyMDEyLTA4LTMxIDIwOjUy
-OjI4XSBQQ0kgYWRkIGRldmljZSAwMDAwOjA4OjAwLjANCihYRU4pIFsyMDEyLTA4LTMxIDIw
-OjUyOjI4XSBQQ0kgYWRkIGRldmljZSAwMDAwOjA3OjAwLjANCihYRU4pIFsyMDEyLTA4LTMx
-IDIwOjUyOjI4XSBQQ0kgYWRkIGRldmljZSAwMDAwOjA2OjAwLjANCihYRU4pIFsyMDEyLTA4
-LTMxIDIwOjUyOjI4XSBQQ0kgYWRkIGRldmljZSAwMDAwOjA2OjAwLjENCihYRU4pIFsyMDEy
-LTA4LTMxIDIwOjUyOjI4XSBQQ0kgYWRkIGRldmljZSAwMDAwOjA1OjAwLjANCihYRU4pIFsy
-MDEyLTA4LTMxIDIwOjUyOjI4XSBQQ0kgYWRkIGRldmljZSAwMDAwOjA0OjAwLjANCihYRU4p
-IFsyMDEyLTA4LTMxIDIwOjUyOjI4XSBQQ0kgYWRkIGRldmljZSAwMDAwOjA0OjAwLjENCihY
-RU4pIFsyMDEyLTA4LTMxIDIwOjUyOjI4XSBQQ0kgYWRkIGRldmljZSAwMDAwOjA0OjAwLjIN
-CihYRU4pIFsyMDEyLTA4LTMxIDIwOjUyOjI4XSBQQ0kgYWRkIGRldmljZSAwMDAwOjA0OjAw
-LjMNCihYRU4pIFsyMDEyLTA4LTMxIDIwOjUyOjI4XSBQQ0kgYWRkIGRldmljZSAwMDAwOjA0
-OjAwLjQNCihYRU4pIFsyMDEyLTA4LTMxIDIwOjUyOjI4XSBQQ0kgYWRkIGRldmljZSAwMDAw
-OjA0OjAwLjUNCihYRU4pIFsyMDEyLTA4LTMxIDIwOjUyOjI4XSBQQ0kgYWRkIGRldmljZSAw
-MDAwOjA0OjAwLjYNCihYRU4pIFsyMDEyLTA4LTMxIDIwOjUyOjI4XSBQQ0kgYWRkIGRldmlj
-ZSAwMDAwOjA0OjAwLjcNCihYRU4pIFsyMDEyLTA4LTMxIDIwOjUyOjI4XSBQQ0kgYWRkIGRl
-dmljZSAwMDAwOjAzOjA2LjANCihYRU4pIFsyMDEyLTA4LTMxIDIwOjUyOjI4XSBJT0FQSUNb
-MF06IFNldCBQQ0kgcm91dGluZyBlbnRyeSAoNi04IC0+IDB4NTggLT4gSVJRIDggTW9kZTow
-IEFjdGl2ZTowKQ0KKFhFTikgWzIwMTItMDgtMzEgMjA6NTI6MjhdIElPQVBJQ1swXTogU2V0
-IFBDSSByb3V0aW5nIGVudHJ5ICg2LTEzIC0+IDB4ODggLT4gSVJRIDEzIE1vZGU6MCBBY3Rp
-dmU6MCkNCihYRU4pIFsyMDEyLTA4LTMxIDIwOjUyOjI4XSBJT0FQSUNbMV06IFNldCBQQ0kg
-cm91dGluZyBlbnRyeSAoNy0yOCAtPiAweGEwIC0+IElSUSA1MiBNb2RlOjEgQWN0aXZlOjEp
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMDo1MjoyOF0gSU9BUElDWzFdOiBTZXQgUENJIHJvdXRp
-bmcgZW50cnkgKDctMjkgLT4gMHhhOCAtPiBJUlEgNTMgTW9kZToxIEFjdGl2ZToxKQ0KKFhF
-TikgWzIwMTItMDgtMzEgMjA6NTI6MjhdIElPQVBJQ1sxXTogU2V0IFBDSSByb3V0aW5nIGVu
-dHJ5ICg3LTMwIC0+IDB4YjAgLT4gSVJRIDU0IE1vZGU6MSBBY3RpdmU6MSkNCihYRU4pIFsy
-MDEyLTA4LTMxIDIwOjUyOjI4XSBJT0FQSUNbMF06IFNldCBQQ0kgcm91dGluZyBlbnRyeSAo
-Ni0xNiAtPiAweGI4IC0+IElSUSAxNiBNb2RlOjEgQWN0aXZlOjEpDQooWEVOKSBbMjAxMi0w
-OC0zMSAyMDo1MjoyOF0gSU9BUElDWzBdOiBTZXQgUENJIHJvdXRpbmcgZW50cnkgKDYtMTgg
-LT4gMHhjMCAtPiBJUlEgMTggTW9kZToxIEFjdGl2ZToxKQ0KKFhFTikgWzIwMTItMDgtMzEg
-MjA6NTI6MjhdIElPQVBJQ1swXTogU2V0IFBDSSByb3V0aW5nIGVudHJ5ICg2LTE3IC0+IDB4
-YzggLT4gSVJRIDE3IE1vZGU6MSBBY3RpdmU6MSkNCihYRU4pIFsyMDEyLTA4LTMxIDIwOjUy
-OjI4XSBJT0FQSUNbMV06IFNldCBQQ0kgcm91dGluZyBlbnRyeSAoNy00IC0+IDB4ZDAgLT4g
-SVJRIDI4IE1vZGU6MSBBY3RpdmU6MSkNCihYRU4pIFsyMDEyLTA4LTMxIDIwOjUyOjI4XSBJ
-T0FQSUNbMV06IFNldCBQQ0kgcm91dGluZyBlbnRyeSAoNy01IC0+IDB4ZDggLT4gSVJRIDI5
-IE1vZGU6MSBBY3RpdmU6MSkNCihYRU4pIFsyMDEyLTA4LTMxIDIwOjUyOjI4XSBJT0FQSUNb
-MV06IFNldCBQQ0kgcm91dGluZyBlbnRyeSAoNy02IC0+IDB4MjEgLT4gSVJRIDMwIE1vZGU6
-MSBBY3RpdmU6MSkNCihYRU4pIFsyMDEyLTA4LTMxIDIwOjUyOjI4XSBJT0FQSUNbMV06IFNl
-dCBQQ0kgcm91dGluZyBlbnRyeSAoNy03IC0+IDB4MjkgLT4gSVJRIDMxIE1vZGU6MSBBY3Rp
-dmU6MSkNCihYRU4pIFsyMDEyLTA4LTMxIDIwOjUyOjI5XSBJT0FQSUNbMV06IFNldCBQQ0kg
-cm91dGluZyBlbnRyeSAoNy0xNiAtPiAweDMxIC0+IElSUSA0MCBNb2RlOjEgQWN0aXZlOjEp
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMDo1MjoyOV0gSU9BUElDWzFdOiBTZXQgUENJIHJvdXRp
-bmcgZW50cnkgKDctMTcgLT4gMHgzOSAtPiBJUlEgNDEgTW9kZToxIEFjdGl2ZToxKQ0KKFhF
-TikgWzIwMTItMDgtMzEgMjA6NTI6MjldIElPQVBJQ1sxXTogU2V0IFBDSSByb3V0aW5nIGVu
-dHJ5ICg3LTE4IC0+IDB4NDEgLT4gSVJRIDQyIE1vZGU6MSBBY3RpdmU6MSkNCihYRU4pIFsy
-MDEyLTA4LTMxIDIwOjUyOjI5XSBJT0FQSUNbMV06IFNldCBQQ0kgcm91dGluZyBlbnRyeSAo
-Ny0xOSAtPiAweDQ5IC0+IElSUSA0MyBNb2RlOjEgQWN0aXZlOjEpDQooWEVOKSBbMjAxMi0w
-OC0zMSAyMDo1MjoyOV0gSU9BUElDWzBdOiBTZXQgUENJIHJvdXRpbmcgZW50cnkgKDYtMjIg
-LT4gMHg5OSAtPiBJUlEgMjIgTW9kZToxIEFjdGl2ZToxKQ0KKFhFTikgWzIwMTItMDgtMzEg
-MjA6NTI6MjldIElPQVBJQ1sxXTogU2V0IFBDSSByb3V0aW5nIGVudHJ5ICg3LTEyIC0+IDB4
-YTEgLT4gSVJRIDM2IE1vZGU6MSBBY3RpdmU6MSkNCihYRU4pIFsyMDEyLTA4LTMxIDIwOjUy
-OjI5XSBJT0FQSUNbMV06IFNldCBQQ0kgcm91dGluZyBlbnRyeSAoNy0yMyAtPiAweGE5IC0+
-IElSUSA0NyBNb2RlOjEgQWN0aXZlOjEpDQooWEVOKSBbMjAxMi0wOC0zMSAyMDo1MjoyOV0g
-SU9BUElDWzBdOiBTZXQgUENJIHJvdXRpbmcgZW50cnkgKDYtMTkgLT4gMHhiMSAtPiBJUlEg
-MTkgTW9kZToxIEFjdGl2ZToxKQ0KKFhFTikgWzIwMTItMDgtMzEgMjA6NTI6MzBdIElPQVBJ
-Q1sxXTogU2V0IFBDSSByb3V0aW5nIGVudHJ5ICg3LTIyIC0+IDB4YzEgLT4gSVJRIDQ2IE1v
-ZGU6MSBBY3RpdmU6MSkNCihYRU4pIFsyMDEyLTA4LTMxIDIwOjUyOjMwXSBJT0FQSUNbMV06
-IFNldCBQQ0kgcm91dGluZyBlbnRyeSAoNy0yNyAtPiAweGQxIC0+IElSUSA1MSBNb2RlOjEg
-QWN0aXZlOjEpDQooWEVOKSBbMjAxMi0wOC0zMSAyMDo1MjozMl0gSU9BUElDWzFdOiBTZXQg
-UENJIHJvdXRpbmcgZW50cnkgKDctOSAtPiAweDIyIC0+IElSUSAzMyBNb2RlOjEgQWN0aXZl
-OjEpDQooWEVOKSBbMjAxMi0wOC0zMSAyMDo1MzoyN10gdHJhcHMuYzoyNTg0OmQxIERvbWFp
-biBhdHRlbXB0ZWQgV1JNU1IgMDAwMDAwMDBjMDAxMDAwNCBmcm9tIDB4MDAwMDRlYjQwZDlj
-Nzk1YSB0byAweDAwMDAwMDAwMDAwMGFiY2QuDQooWEVOKSBbMjAxMi0wOC0zMSAyMDo1Mzoz
-M10gdHJhcHMuYzoyNTg0OmQyIERvbWFpbiBhdHRlbXB0ZWQgV1JNU1IgMDAwMDAwMDBjMDAx
-MDAwNCBmcm9tIDB4MDAwMDgxOTdlMDBiNjA5OSB0byAweDAwMDAwMDAwMDAwMGFiY2QuDQoo
-WEVOKSBbMjAxMi0wOC0zMSAyMDo1MzozOV0gdHJhcHMuYzoyNTg0OmQzIERvbWFpbiBhdHRl
-bXB0ZWQgV1JNU1IgMDAwMDAwMDBjMDAxMDAwNCBmcm9tIDB4MDAwMDYwMzRkNzBkYTE2NSB0
-byAweDAwMDAwMDAwMDAwMGFiY2QuDQooWEVOKSBbMjAxMi0wOC0zMSAyMDo1Mzo0N10gdHJh
-cHMuYzoyNTg0OmQ0IERvbWFpbiBhdHRlbXB0ZWQgV1JNU1IgMDAwMDAwMDBjMDAxMDAwNCBm
-cm9tIDB4MDAwMDYwMzRkNzBkYTE2NSB0byAweDAwMDAwMDAwMDAwMGFiY2QuDQooWEVOKSBb
-MjAxMi0wOC0zMSAyMDo1Mzo1M10gdHJhcHMuYzoyNTg0OmQ1IERvbWFpbiBhdHRlbXB0ZWQg
-V1JNU1IgMDAwMDAwMDBjMDAxMDAwNCBmcm9tIDB4MDAwMDgxOTdlMDBiNjA5OSB0byAweDAw
-MDAwMDAwMDAwMGFiY2QuDQooWEVOKSBbMjAxMi0wOC0zMSAyMDo1Mzo1OV0gdHJhcHMuYzoy
-NTg0OmQ2IERvbWFpbiBhdHRlbXB0ZWQgV1JNU1IgMDAwMDAwMDBjMDAxMDAwNCBmcm9tIDB4
-MDAwMDgxOTdlMDBiNjA5OSB0byAweDAwMDAwMDAwMDAwMGFiY2QuDQooWEVOKSBbMjAxMi0w
-OC0zMSAyMDo1NDowNV0gdHJhcHMuYzoyNTg0OmQ3IERvbWFpbiBhdHRlbXB0ZWQgV1JNU1Ig
-MDAwMDAwMDBjMDAxMDAwNCBmcm9tIDB4MDAwMDgxOTdlMDBiNjA5OSB0byAweDAwMDAwMDAw
-MDAwMGFiY2QuDQooWEVOKSBbMjAxMi0wOC0zMSAyMDo1NDoxMF0gdHJhcHMuYzoyNTg0OmQ4
-IERvbWFpbiBhdHRlbXB0ZWQgV1JNU1IgMDAwMDAwMDBjMDAxMDAwNCBmcm9tIDB4MDAwMDYw
-MzRkNzBkYTE2NSB0byAweDAwMDAwMDAwMDAwMGFiY2QuDQooWEVOKSBbMjAxMi0wOC0zMSAy
-MDo1NDoxNl0gdHJhcHMuYzoyNTg0OmQ5IERvbWFpbiBhdHRlbXB0ZWQgV1JNU1IgMDAwMDAw
-MDBjMDAxMDAwNCBmcm9tIDB4MDAwMDRlYjQwZDljNzk1YSB0byAweDAwMDAwMDAwMDAwMGFi
-Y2QuDQooWEVOKSBbMjAxMi0wOC0zMSAyMDo1NDoyM10gdHJhcHMuYzoyNTg0OmQxMCBEb21h
-aW4gYXR0ZW1wdGVkIFdSTVNSIDAwMDAwMDAwYzAwMTAwMDQgZnJvbSAweDAwMDA4MTk3ZTAw
-YjYwOTkgdG8gMHgwMDAwMDAwMDAwMDBhYmNkLg0KKFhFTikgWzIwMTItMDgtMzEgMjA6NTQ6
-MjldIHRyYXBzLmM6MjU4NDpkMTEgRG9tYWluIGF0dGVtcHRlZCBXUk1TUiAwMDAwMDAwMGMw
-MDEwMDA0IGZyb20gMHgwMDAwODE5N2UwMGI2MDk5IHRvIDB4MDAwMDAwMDAwMDAwYWJjZC4N
-CihYRU4pIFsyMDEyLTA4LTMxIDIwOjU0OjM2XSB0cmFwcy5jOjI1ODQ6ZDEyIERvbWFpbiBh
-dHRlbXB0ZWQgV1JNU1IgMDAwMDAwMDBjMDAxMDAwNCBmcm9tIDB4MDAwMDRlYjQwZDljNzk1
-YSB0byAweDAwMDAwMDAwMDAwMGFiY2QuDQooWEVOKSBbMjAxMi0wOC0zMSAyMDo1NDo0Ml0g
-dHJhcHMuYzoyNTg0OmQxMyBEb21haW4gYXR0ZW1wdGVkIFdSTVNSIDAwMDAwMDAwYzAwMTAw
-MDQgZnJvbSAweDAwMDA2MDM0ZDcwZGExNjUgdG8gMHgwMDAwMDAwMDAwMDBhYmNkLg0KKFhF
-TikgWzIwMTItMDgtMzEgMjA6NTQ6NDldIHRyYXBzLmM6MjU4NDpkMTQgRG9tYWluIGF0dGVt
-cHRlZCBXUk1TUiAwMDAwMDAwMGMwMDEwMDA0IGZyb20gMHgwMDAwODY2YjgwMmI0MTY3IHRv
-IDB4MDAwMDAwMDAwMDAwYWJjZC4NCihYRU4pIFsyMDEyLTA4LTMxIDIwOjU0OjU2XSB0cmFw
-cy5jOjI1ODQ6ZDE1IERvbWFpbiBhdHRlbXB0ZWQgV1JNU1IgMDAwMDAwMDBjMDAxMDAwNCBm
-cm9tIDB4MDAwMDg2NmI4MDJiNDE2NyB0byAweDAwMDAwMDAwMDAwMGFiY2QuDQooWEVOKSBb
-MjAxMi0wOC0zMSAyMTowMjoyNF0gJ2gnIHByZXNzZWQgLT4gc2hvd2luZyBpbnN0YWxsZWQg
-aGFuZGxlcnMNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjAyOjI0XSAga2V5ICclJyAoYXNjaWkg
-JzI1JykgPT4gdHJhcCB0byB4ZW5kYmcNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjAyOjI0XSAg
-a2V5ICcqJyAoYXNjaWkgJzJhJykgPT4gcHJpbnQgYWxsIGRpYWdub3N0aWNzDQooWEVOKSBb
-MjAxMi0wOC0zMSAyMTowMjoyNF0gIGtleSAnMCcgKGFzY2lpICczMCcpID0+IGR1bXAgRG9t
-MCByZWdpc3RlcnMNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjAyOjI0XSAga2V5ICdBJyAoYXNj
-aWkgJzQxJykgPT4gdG9nZ2xlIGFsdGVybmF0aXZlIGtleSBoYW5kbGluZw0KKFhFTikgWzIw
-MTItMDgtMzEgMjE6MDI6MjRdICBrZXkgJ0gnIChhc2NpaSAnNDgnKSA9PiBkdW1wIGhlYXAg
-aW5mbw0KKFhFTikgWzIwMTItMDgtMzEgMjE6MDI6MjRdICBrZXkgJ0knIChhc2NpaSAnNDkn
-KSA9PiBkdW1wIEhWTSBpcnEgaW5mbw0KKFhFTikgWzIwMTItMDgtMzEgMjE6MDI6MjRdICBr
-ZXkgJ00nIChhc2NpaSAnNGQnKSA9PiBkdW1wIE1TSSBzdGF0ZQ0KKFhFTikgWzIwMTItMDgt
-MzEgMjE6MDI6MjRdICBrZXkgJ04nIChhc2NpaSAnNGUnKSA9PiB0cmlnZ2VyIGFuIE5NSQ0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MDI6MjRdICBrZXkgJ08nIChhc2NpaSAnNGYnKSA9PiB0
-b2dnbGUgc2hhZG93IGF1ZGl0cw0KKFhFTikgWzIwMTItMDgtMzEgMjE6MDI6MjRdICBrZXkg
-J1EnIChhc2NpaSAnNTEnKSA9PiBkdW1wIFBDSSBkZXZpY2VzDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTowMjoyNF0gIGtleSAnUicgKGFzY2lpICc1MicpID0+IHJlYm9vdCBtYWNoaW5lDQoo
-WEVOKSBbMjAxMi0wOC0zMSAyMTowMjoyNF0gIGtleSAnUycgKGFzY2lpICc1MycpID0+IHJl
-c2V0IHNoYWRvdyBwYWdldGFibGVzDQooWEVOKSBbMjAxMi0wOC0zMSAyMTowMjoyNF0gIGtl
-eSAnYScgKGFzY2lpICc2MScpID0+IGR1bXAgdGltZXIgcXVldWVzDQooWEVOKSBbMjAxMi0w
-OC0zMSAyMTowMjoyNF0gIGtleSAnYycgKGFzY2lpICc2MycpID0+IGR1bXAgQUNQSSBDeCBz
-dHJ1Y3R1cmVzDQooWEVOKSBbMjAxMi0wOC0zMSAyMTowMjoyNF0gIGtleSAnZCcgKGFzY2lp
-ICc2NCcpID0+IGR1bXAgcmVnaXN0ZXJzDQooWEVOKSBbMjAxMi0wOC0zMSAyMTowMjoyNF0g
-IGtleSAnZScgKGFzY2lpICc2NScpID0+IGR1bXAgZXZ0Y2huIGluZm8NCihYRU4pIFsyMDEy
-LTA4LTMxIDIxOjAyOjI0XSAga2V5ICdnJyAoYXNjaWkgJzY3JykgPT4gcHJpbnQgZ3JhbnQg
-dGFibGUgdXNhZ2UNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjAyOjI0XSAga2V5ICdoJyAoYXNj
-aWkgJzY4JykgPT4gc2hvdyB0aGlzIG1lc3NhZ2UNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjAy
-OjI0XSAga2V5ICdpJyAoYXNjaWkgJzY5JykgPT4gZHVtcCBpbnRlcnJ1cHQgYmluZGluZ3MN
-CihYRU4pIFsyMDEyLTA4LTMxIDIxOjAyOjI0XSAga2V5ICdtJyAoYXNjaWkgJzZkJykgPT4g
-bWVtb3J5IGluZm8NCihYRU4pIFsyMDEyLTA4LTMxIDIxOjAyOjI0XSAga2V5ICduJyAoYXNj
-aWkgJzZlJykgPT4gTk1JIHN0YXRpc3RpY3MNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjAyOjI0
-XSAga2V5ICdvJyAoYXNjaWkgJzZmJykgPT4gZHVtcCBpb21tdSBwMm0gdGFibGUNCihYRU4p
-IFsyMDEyLTA4LTMxIDIxOjAyOjI0XSAga2V5ICdxJyAoYXNjaWkgJzcxJykgPT4gZHVtcCBk
-b21haW4gKGFuZCBndWVzdCBkZWJ1ZykgaW5mbw0KKFhFTikgWzIwMTItMDgtMzEgMjE6MDI6
-MjRdICBrZXkgJ3InIChhc2NpaSAnNzInKSA9PiBkdW1wIHJ1biBxdWV1ZXMNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjAyOjI0XSAga2V5ICdzJyAoYXNjaWkgJzczJykgPT4gZHVtcCBzb2Z0
-dHNjIHN0YXRzDQooWEVOKSBbMjAxMi0wOC0zMSAyMTowMjoyNF0gIGtleSAndCcgKGFzY2lp
-ICc3NCcpID0+IGRpc3BsYXkgbXVsdGktY3B1IGNsb2NrIGluZm8NCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjAyOjI0XSAga2V5ICd1JyAoYXNjaWkgJzc1JykgPT4gZHVtcCBudW1hIGluZm8N
-CihYRU4pIFsyMDEyLTA4LTMxIDIxOjAyOjI0XSAga2V5ICd2JyAoYXNjaWkgJzc2JykgPT4g
-ZHVtcCBBTUQtViBWTUNCcw0KKFhFTikgWzIwMTItMDgtMzEgMjE6MDI6MjRdICBrZXkgJ3on
-IChhc2NpaSAnN2EnKSA9PiBwcmludCBpb2FwaWMgaW5mbw0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MDI6NDJdIEd1ZXN0IGludGVycnVwdCBpbmZvcm1hdGlvbjoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjAyOjQyXSAgICBJUlE6ICAgMCBhZmZpbml0eTowMSB2ZWM6ZjAgdHlwZT1JTy1B
-UElDLWVkZ2UgICAgc3RhdHVzPTAwMDAwMDAwIG1hcHBlZCwgdW5ib3VuZA0KKFhFTikgWzIw
-MTItMDgtMzEgMjE6MDI6NDJdICAgIElSUTogICAxIGFmZmluaXR5OjAxIHZlYzozMCB0eXBl
-PUlPLUFQSUMtZWRnZSAgICBzdGF0dXM9MDAwMDAwMzQgaW4tZmxpZ2h0PTAgZG9tYWluLWxp
-c3Q9MDogIDEoLS0tLSksDQooWEVOKSBbMjAxMi0wOC0zMSAyMTowMjo0Ml0gICAgSVJROiAg
-IDIgYWZmaW5pdHk6M2YgdmVjOmUyIHR5cGU9WFQtUElDICAgICAgICAgIHN0YXR1cz0wMDAw
-MDAwMCBtYXBwZWQsIHVuYm91bmQNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjAyOjQyXSAgICBJ
-UlE6ICAgMyBhZmZpbml0eTowMSB2ZWM6MzggdHlwZT1JTy1BUElDLWVkZ2UgICAgc3RhdHVz
-PTAwMDAwMDAyIG1hcHBlZCwgdW5ib3VuZA0KKFhFTikgWzIwMTItMDgtMzEgMjE6MDI6NDJd
-ICAgIElSUTogICA0IGFmZmluaXR5OjAxIHZlYzpmMSB0eXBlPUlPLUFQSUMtZWRnZSAgICBz
-dGF0dXM9MDAwMDAwMDAgbWFwcGVkLCB1bmJvdW5kDQooWEVOKSBbMjAxMi0wOC0zMSAyMTow
-Mjo0Ml0gICAgSVJROiAgIDUgYWZmaW5pdHk6MDEgdmVjOjQwIHR5cGU9SU8tQVBJQy1lZGdl
-ICAgIHN0YXR1cz0wMDAwMDAwMiBtYXBwZWQsIHVuYm91bmQNCihYRU4pIFsyMDEyLTA4LTMx
-IDIxOjAyOjQyXSAgICBJUlE6ICAgNiBhZmZpbml0eTowMSB2ZWM6NDggdHlwZT1JTy1BUElD
-LWVkZ2UgICAgc3RhdHVzPTAwMDAwMDAyIG1hcHBlZCwgdW5ib3VuZA0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MDI6NDJdICAgIElSUTogICA3IGFmZmluaXR5OjAxIHZlYzo1MCB0eXBlPUlP
-LUFQSUMtZWRnZSAgICBzdGF0dXM9MDAwMDAwMDIgbWFwcGVkLCB1bmJvdW5kDQooWEVOKSBb
-MjAxMi0wOC0zMSAyMTowMjo0Ml0gICAgSVJROiAgIDggYWZmaW5pdHk6MDEgdmVjOjU4IHR5
-cGU9SU8tQVBJQy1lZGdlICAgIHN0YXR1cz0wMDAwMDAzMCBpbi1mbGlnaHQ9MCBkb21haW4t
-bGlzdD0wOiAgOCgtLS0tKSwNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjAyOjQyXSAgICBJUlE6
-ICAgOSBhZmZpbml0eTowMSB2ZWM6NjAgdHlwZT1JTy1BUElDLWxldmVsICAgc3RhdHVzPTAw
-MDAwMDMwIGluLWZsaWdodD0wIGRvbWFpbi1saXN0PTA6ICA5KC0tLS0pLA0KKFhFTikgWzIw
-MTItMDgtMzEgMjE6MDI6NDJdICAgIElSUTogIDEwIGFmZmluaXR5OjAxIHZlYzo2OCB0eXBl
-PUlPLUFQSUMtZWRnZSAgICBzdGF0dXM9MDAwMDAwMDIgbWFwcGVkLCB1bmJvdW5kDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTowMjo0Ml0gICAgSVJROiAgMTEgYWZmaW5pdHk6MDEgdmVjOjcw
-IHR5cGU9SU8tQVBJQy1lZGdlICAgIHN0YXR1cz0wMDAwMDAwMiBtYXBwZWQsIHVuYm91bmQN
-CihYRU4pIFsyMDEyLTA4LTMxIDIxOjAyOjQyXSAgICBJUlE6ICAxMiBhZmZpbml0eTowMSB2
-ZWM6NzggdHlwZT1JTy1BUElDLWVkZ2UgICAgc3RhdHVzPTAwMDAwMDMwIGluLWZsaWdodD0w
-IGRvbWFpbi1saXN0PTA6IDEyKC0tLS0pLA0KKFhFTikgWzIwMTItMDgtMzEgMjE6MDI6NDJd
-ICAgIElSUTogIDEzIGFmZmluaXR5OjNmIHZlYzo4OCB0eXBlPUlPLUFQSUMtZWRnZSAgICBz
-dGF0dXM9MDAwMDAwMDIgbWFwcGVkLCB1bmJvdW5kDQooWEVOKSBbMjAxMi0wOC0zMSAyMTow
-Mjo0Ml0gICAgSVJROiAgMTQgYWZmaW5pdHk6MDEgdmVjOjkwIHR5cGU9SU8tQVBJQy1lZGdl
-ICAgIHN0YXR1cz0wMDAwMDAwMiBtYXBwZWQsIHVuYm91bmQNCihYRU4pIFsyMDEyLTA4LTMx
-IDIxOjAyOjQyXSAgICBJUlE6ICAxNSBhZmZpbml0eTowMSB2ZWM6OTggdHlwZT1JTy1BUElD
-LWVkZ2UgICAgc3RhdHVzPTAwMDAwMDAyIG1hcHBlZCwgdW5ib3VuZA0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MDI6NDJdICAgIElSUTogIDE2IGFmZmluaXR5OjNmIHZlYzpiOCB0eXBlPUlP
-LUFQSUMtbGV2ZWwgICBzdGF0dXM9MDAwMDAwMDIgbWFwcGVkLCB1bmJvdW5kDQooWEVOKSBb
-MjAxMi0wOC0zMSAyMTowMjo0Ml0gICAgSVJROiAgMTcgYWZmaW5pdHk6MDEgdmVjOmM4IHR5
-cGU9SU8tQVBJQy1sZXZlbCAgIHN0YXR1cz0wMDAwMDAzMCBpbi1mbGlnaHQ9MCBkb21haW4t
-bGlzdD0wOiAxNygtLS0tKSwNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjAyOjQyXSAgICBJUlE6
-ICAxOCBhZmZpbml0eTowMSB2ZWM6YzAgdHlwZT1JTy1BUElDLWxldmVsICAgc3RhdHVzPTAw
-MDAwMDMwIGluLWZsaWdodD0wIGRvbWFpbi1saXN0PTA6IDE4KC0tLS0pLA0KKFhFTikgWzIw
-MTItMDgtMzEgMjE6MDI6NDJdICAgIElSUTogIDE5IGFmZmluaXR5OjNmIHZlYzpiMSB0eXBl
-PUlPLUFQSUMtbGV2ZWwgICBzdGF0dXM9MDAwMDAwMDIgbWFwcGVkLCB1bmJvdW5kDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTowMjo0Ml0gICAgSVJROiAgMjIgYWZmaW5pdHk6MDEgdmVjOjk5
-IHR5cGU9SU8tQVBJQy1sZXZlbCAgIHN0YXR1cz0wMDAwMDAzMCBpbi1mbGlnaHQ9MCBkb21h
-aW4tbGlzdD0wOiAyMigtLS0tKSwxMTogMjIoLS0tLSksDQooWEVOKSBbMjAxMi0wOC0zMSAy
-MTowMjo0Ml0gICAgSVJROiAgMjggYWZmaW5pdHk6MDEgdmVjOmQwIHR5cGU9SU8tQVBJQy1s
-ZXZlbCAgIHN0YXR1cz0wMDAwMDAzMCBpbi1mbGlnaHQ9MCBkb21haW4tbGlzdD0wOiAyOCgt
-LS0tKSwxNDogMjgoLS0tLSksDQooWEVOKSBbMjAxMi0wOC0zMSAyMTowMjo0Ml0gICAgSVJR
-OiAgMjkgYWZmaW5pdHk6MjAgdmVjOmQ4IHR5cGU9SU8tQVBJQy1sZXZlbCAgIHN0YXR1cz0w
-MDAwMDAzMCBpbi1mbGlnaHQ9MCBkb21haW4tbGlzdD0wOiAyOSgtLS0tKSwxNDogMjkoLS0t
-LSksDQooWEVOKSBbMjAxMi0wOC0zMSAyMTowMjo0Ml0gICAgSVJROiAgMzAgYWZmaW5pdHk6
-MDQgdmVjOjIxIHR5cGU9SU8tQVBJQy1sZXZlbCAgIHN0YXR1cz0wMDAwMDAzMCBpbi1mbGln
-aHQ9MCBkb21haW4tbGlzdD0wOiAzMCgtLS0tKSwxNDogMzAoLS0tLSksDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTowMjo0Ml0gICAgSVJROiAgMzEgYWZmaW5pdHk6MDEgdmVjOjI5IHR5cGU9
-SU8tQVBJQy1sZXZlbCAgIHN0YXR1cz0wMDAwMDAzMCBpbi1mbGlnaHQ9MCBkb21haW4tbGlz
-dD0wOiAzMSgtLS0tKSwxNDogMzEoLS0tLSksDQooWEVOKSBbMjAxMi0wOC0zMSAyMTowMjo0
-Ml0gICAgSVJROiAgMzMgYWZmaW5pdHk6M2YgdmVjOjIyIHR5cGU9SU8tQVBJQy1sZXZlbCAg
-IHN0YXR1cz0wMDAwMDAwMiBtYXBwZWQsIHVuYm91bmQNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjAyOjQyXSAgICBJUlE6ICAzNiBhZmZpbml0eTozZiB2ZWM6YTEgdHlwZT1JTy1BUElDLWxl
-dmVsICAgc3RhdHVzPTAwMDAwMDAyIG1hcHBlZCwgdW5ib3VuZA0KKFhFTikgWzIwMTItMDgt
-MzEgMjE6MDI6NDJdICAgIElSUTogIDQwIGFmZmluaXR5OjNmIHZlYzozMSB0eXBlPUlPLUFQ
-SUMtbGV2ZWwgICBzdGF0dXM9MDAwMDAwMDIgbWFwcGVkLCB1bmJvdW5kDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTowMjo0Ml0gICAgSVJROiAgNDEgYWZmaW5pdHk6M2YgdmVjOjM5IHR5cGU9
-SU8tQVBJQy1sZXZlbCAgIHN0YXR1cz0wMDAwMDAwMiBtYXBwZWQsIHVuYm91bmQNCihYRU4p
-IFsyMDEyLTA4LTMxIDIxOjAyOjQyXSAgICBJUlE6ICA0MiBhZmZpbml0eTozZiB2ZWM6NDEg
-dHlwZT1JTy1BUElDLWxldmVsICAgc3RhdHVzPTAwMDAwMDAyIG1hcHBlZCwgdW5ib3VuZA0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MDI6NDJdICAgIElSUTogIDQzIGFmZmluaXR5OjNmIHZl
-Yzo0OSB0eXBlPUlPLUFQSUMtbGV2ZWwgICBzdGF0dXM9MDAwMDAwMDIgbWFwcGVkLCB1bmJv
-dW5kDQooWEVOKSBbMjAxMi0wOC0zMSAyMTowMjo0Ml0gICAgSVJROiAgNDYgYWZmaW5pdHk6
-M2YgdmVjOmMxIHR5cGU9SU8tQVBJQy1sZXZlbCAgIHN0YXR1cz0wMDAwMDAwMiBtYXBwZWQs
-IHVuYm91bmQNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjAyOjQyXSAgICBJUlE6ICA0NyBhZmZp
-bml0eTowNCB2ZWM6YTkgdHlwZT1JTy1BUElDLWxldmVsICAgc3RhdHVzPTAwMDAwMDMwIGlu
-LWZsaWdodD0wIGRvbWFpbi1saXN0PTA6IDQ3KC0tLS0pLDE0OiA0NygtLS0tKSwNCihYRU4p
-IFsyMDEyLTA4LTMxIDIxOjAyOjQyXSAgICBJUlE6ICA1MSBhZmZpbml0eTozZiB2ZWM6ZDEg
-dHlwZT1JTy1BUElDLWxldmVsICAgc3RhdHVzPTAwMDAwMDAyIG1hcHBlZCwgdW5ib3VuZA0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MDI6NDJdICAgIElSUTogIDUyIGFmZmluaXR5OjNmIHZl
-YzphMCB0eXBlPUlPLUFQSUMtbGV2ZWwgICBzdGF0dXM9MDAwMDAwMDIgbWFwcGVkLCB1bmJv
-dW5kDQooWEVOKSBbMjAxMi0wOC0zMSAyMTowMjo0Ml0gICAgSVJROiAgNTMgYWZmaW5pdHk6
-M2YgdmVjOmE4IHR5cGU9SU8tQVBJQy1sZXZlbCAgIHN0YXR1cz0wMDAwMDAwMiBtYXBwZWQs
-IHVuYm91bmQNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjAyOjQyXSAgICBJUlE6ICA1NCBhZmZp
-bml0eTozZiB2ZWM6YjAgdHlwZT1JTy1BUElDLWxldmVsICAgc3RhdHVzPTAwMDAwMDAyIG1h
-cHBlZCwgdW5ib3VuZA0KKFhFTikgWzIwMTItMDgtMzEgMjE6MDI6NDJdICAgIElSUTogIDU2
-IGFmZmluaXR5OjAxIHZlYzoyOCB0eXBlPUFNRC1JT01NVS1NU0kgICBzdGF0dXM9MDAwMDAw
-MDAgbWFwcGVkLCB1bmJvdW5kDQooWEVOKSBbMjAxMi0wOC0zMSAyMTowMjo0Ml0gICAgSVJR
-OiAgNTcgYWZmaW5pdHk6M2YgdmVjOjUxIHR5cGU9UENJLU1TSSAgICAgICAgIHN0YXR1cz0w
-MDAwMDAwMiBtYXBwZWQsIHVuYm91bmQNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjAyOjQyXSAg
-ICBJUlE6ICA1OCBhZmZpbml0eTozZiB2ZWM6NTkgdHlwZT1QQ0ktTVNJICAgICAgICAgc3Rh
-dHVzPTAwMDAwMDAyIG1hcHBlZCwgdW5ib3VuZA0KKFhFTikgWzIwMTItMDgtMzEgMjE6MDI6
-NDJdICAgIElSUTogIDU5IGFmZmluaXR5OjNmIHZlYzo2MSB0eXBlPVBDSS1NU0kgICAgICAg
-ICBzdGF0dXM9MDAwMDAwMDIgbWFwcGVkLCB1bmJvdW5kDQooWEVOKSBbMjAxMi0wOC0zMSAy
-MTowMjo0Ml0gICAgSVJROiAgNjAgYWZmaW5pdHk6M2YgdmVjOjY5IHR5cGU9UENJLU1TSSAg
-ICAgICAgIHN0YXR1cz0wMDAwMDAwMiBtYXBwZWQsIHVuYm91bmQNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjAyOjQyXSAgICBJUlE6ICA2MSBhZmZpbml0eTozZiB2ZWM6NzEgdHlwZT1QQ0kt
-TVNJICAgICAgICAgc3RhdHVzPTAwMDAwMDAyIG1hcHBlZCwgdW5ib3VuZA0KKFhFTikgWzIw
-MTItMDgtMzEgMjE6MDI6NDJdICAgIElSUTogIDYyIGFmZmluaXR5OjNmIHZlYzo3OSB0eXBl
-PVBDSS1NU0kgICAgICAgICBzdGF0dXM9MDAwMDAwMDIgbWFwcGVkLCB1bmJvdW5kDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTowMjo0Ml0gICAgSVJROiAgNjMgYWZmaW5pdHk6M2YgdmVjOjgx
-IHR5cGU9UENJLU1TSSAgICAgICAgIHN0YXR1cz0wMDAwMDAwMiBtYXBwZWQsIHVuYm91bmQN
-CihYRU4pIFsyMDEyLTA4LTMxIDIxOjAyOjQyXSAgICBJUlE6ICA2NCBhZmZpbml0eTozZiB2
-ZWM6ODkgdHlwZT1QQ0ktTVNJICAgICAgICAgc3RhdHVzPTAwMDAwMDAyIG1hcHBlZCwgdW5i
-b3VuZA0KKFhFTikgWzIwMTItMDgtMzEgMjE6MDI6NDJdICAgIElSUTogIDY1IGFmZmluaXR5
-OjNmIHZlYzo5MSB0eXBlPVBDSS1NU0kgICAgICAgICBzdGF0dXM9MDAwMDAwMDIgbWFwcGVk
-LCB1bmJvdW5kDQooWEVOKSBbMjAxMi0wOC0zMSAyMTowMjo0Ml0gICAgSVJROiAgNjYgYWZm
-aW5pdHk6MDEgdmVjOmI5IHR5cGU9UENJLU1TSSAgICAgICAgIHN0YXR1cz0wMDAwMDAxMCBp
-bi1mbGlnaHQ9MCBkb21haW4tbGlzdD0wOjMwMigtLS0tKSwNCihYRU4pIFsyMDEyLTA4LTMx
-IDIxOjAyOjQyXSAgICBJUlE6ICA2NyBhZmZpbml0eTowMSB2ZWM6YzkgdHlwZT1QQ0ktTVNJ
-ICAgICAgICAgc3RhdHVzPTAwMDAwMDEwIGluLWZsaWdodD0wIGRvbWFpbi1saXN0PTA6MzAx
-KC0tLS0pLA0KKFhFTikgWzIwMTItMDgtMzEgMjE6MDI6NDJdICAgIElSUTogIDY4IGFmZmlu
-aXR5OjAxIHZlYzpkOSB0eXBlPVBDSS1NU0kgICAgICAgICBzdGF0dXM9MDAwMDAwMTAgaW4t
-ZmxpZ2h0PTAgZG9tYWluLWxpc3Q9MDozMDAoLS0tLSksDQooWEVOKSBbMjAxMi0wOC0zMSAy
-MTowMjo0Ml0gICAgSVJROiAgNjkgYWZmaW5pdHk6MDEgdmVjOjJhIHR5cGU9UENJLU1TSSAg
-ICAgICAgIHN0YXR1cz0wMDAwMDAzMCBpbi1mbGlnaHQ9MCBkb21haW4tbGlzdD0wOjI5OSgt
-LS0tKSwNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjAyOjQyXSBJTy1BUElDIGludGVycnVwdCBp
-bmZvcm1hdGlvbjoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjAyOjQyXSAgICAgSVJRICAwIFZl
-YzI0MDoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjAyOjQyXSAgICAgICBBcGljIDB4MDAsIFBp
-biAgMjogdmVjPWYwIGRlbGl2ZXJ5PUxvUHJpIGRlc3Q9TCBzdGF0dXM9MCBwb2xhcml0eT0w
-IGlycj0wIHRyaWc9RSBtYXNrPTAgZGVzdF9pZDoxDQooWEVOKSBbMjAxMi0wOC0zMSAyMTow
-Mjo0Ml0gICAgIElSUSAgMSBWZWMgNDg6DQooWEVOKSBbMjAxMi0wOC0zMSAyMTowMjo0Ml0g
-ICAgICAgQXBpYyAweDAwLCBQaW4gIDE6IHZlYz0zMCBkZWxpdmVyeT1Mb1ByaSBkZXN0PUwg
-c3RhdHVzPTAgcG9sYXJpdHk9MCBpcnI9MCB0cmlnPUUgbWFzaz0wIGRlc3RfaWQ6MQ0KKFhF
-TikgWzIwMTItMDgtMzEgMjE6MDI6NDJdICAgICBJUlEgIDMgVmVjIDU2Og0KKFhFTikgWzIw
-MTItMDgtMzEgMjE6MDI6NDJdICAgICAgIEFwaWMgMHgwMCwgUGluICAzOiB2ZWM9MzggZGVs
-aXZlcnk9TG9QcmkgZGVzdD1MIHN0YXR1cz0wIHBvbGFyaXR5PTAgaXJyPTAgdHJpZz1FIG1h
-c2s9MCBkZXN0X2lkOjENCihYRU4pIFsyMDEyLTA4LTMxIDIxOjAyOjQyXSAgICAgSVJRICA0
-IFZlYzI0MToNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjAyOjQyXSAgICAgICBBcGljIDB4MDAs
-IFBpbiAgNDogdmVjPWYxIGRlbGl2ZXJ5PUxvUHJpIGRlc3Q9TCBzdGF0dXM9MCBwb2xhcml0
-eT0wIGlycj0wIHRyaWc9RSBtYXNrPTAgZGVzdF9pZDoxDQooWEVOKSBbMjAxMi0wOC0zMSAy
-MTowMjo0Ml0gICAgIElSUSAgNSBWZWMgNjQ6DQooWEVOKSBbMjAxMi0wOC0zMSAyMTowMjo0
-Ml0gICAgICAgQXBpYyAweDAwLCBQaW4gIDU6IHZlYz00MCBkZWxpdmVyeT1Mb1ByaSBkZXN0
-PUwgc3RhdHVzPTAgcG9sYXJpdHk9MCBpcnI9MCB0cmlnPUUgbWFzaz0wIGRlc3RfaWQ6MQ0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MDI6NDJdICAgICBJUlEgIDYgVmVjIDcyOg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MDI6NDJdICAgICAgIEFwaWMgMHgwMCwgUGluICA2OiB2ZWM9NDgg
-ZGVsaXZlcnk9TG9QcmkgZGVzdD1MIHN0YXR1cz0wIHBvbGFyaXR5PTAgaXJyPTAgdHJpZz1F
-IG1hc2s9MCBkZXN0X2lkOjENCihYRU4pIFsyMDEyLTA4LTMxIDIxOjAyOjQyXSAgICAgSVJR
-ICA3IFZlYyA4MDoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjAyOjQyXSAgICAgICBBcGljIDB4
-MDAsIFBpbiAgNzogdmVjPTUwIGRlbGl2ZXJ5PUxvUHJpIGRlc3Q9TCBzdGF0dXM9MCBwb2xh
-cml0eT0wIGlycj0wIHRyaWc9RSBtYXNrPTAgZGVzdF9pZDoxDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTowMjo0Ml0gICAgIElSUSAgOCBWZWMgODg6DQooWEVOKSBbMjAxMi0wOC0zMSAyMTow
-Mjo0Ml0gICAgICAgQXBpYyAweDAwLCBQaW4gIDg6IHZlYz01OCBkZWxpdmVyeT1Mb1ByaSBk
-ZXN0PUwgc3RhdHVzPTAgcG9sYXJpdHk9MCBpcnI9MCB0cmlnPUUgbWFzaz0wIGRlc3RfaWQ6
-MQ0KKFhFTikgWzIwMTItMDgtMzEgMjE6MDI6NDJdICAgICBJUlEgIDkgVmVjIDk2Og0KKFhF
-TikgWzIwMTItMDgtMzEgMjE6MDI6NDJdICAgICAgIEFwaWMgMHgwMCwgUGluICA5OiB2ZWM9
-NjAgZGVsaXZlcnk9TG9QcmkgZGVzdD1MIHN0YXR1cz0wIHBvbGFyaXR5PTEgaXJyPTAgdHJp
-Zz1MIG1hc2s9MCBkZXN0X2lkOjENCihYRU4pIFsyMDEyLTA4LTMxIDIxOjAyOjQyXSAgICAg
-SVJRIDEwIFZlYzEwNDoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjAyOjQyXSAgICAgICBBcGlj
-IDB4MDAsIFBpbiAxMDogdmVjPTY4IGRlbGl2ZXJ5PUxvUHJpIGRlc3Q9TCBzdGF0dXM9MCBw
-b2xhcml0eT0wIGlycj0wIHRyaWc9RSBtYXNrPTAgZGVzdF9pZDoxDQooWEVOKSBbMjAxMi0w
-OC0zMSAyMTowMjo0Ml0gICAgIElSUSAxMSBWZWMxMTI6DQooWEVOKSBbMjAxMi0wOC0zMSAy
-MTowMjo0Ml0gICAgICAgQXBpYyAweDAwLCBQaW4gMTE6IHZlYz03MCBkZWxpdmVyeT1Mb1By
-aSBkZXN0PUwgc3RhdHVzPTAgcG9sYXJpdHk9MCBpcnI9MCB0cmlnPUUgbWFzaz0wIGRlc3Rf
-aWQ6MQ0KKFhFTikgWzIwMTItMDgtMzEgMjE6MDI6NDJdICAgICBJUlEgMTIgVmVjMTIwOg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MDI6NDJdICAgICAgIEFwaWMgMHgwMCwgUGluIDEyOiB2
-ZWM9NzggZGVsaXZlcnk9TG9QcmkgZGVzdD1MIHN0YXR1cz0wIHBvbGFyaXR5PTAgaXJyPTAg
-dHJpZz1FIG1hc2s9MCBkZXN0X2lkOjENCihYRU4pIFsyMDEyLTA4LTMxIDIxOjAyOjQyXSAg
-ICAgSVJRIDEzIFZlYzEzNjoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjAyOjQyXSAgICAgICBB
-cGljIDB4MDAsIFBpbiAxMzogdmVjPTg4IGRlbGl2ZXJ5PUxvUHJpIGRlc3Q9TCBzdGF0dXM9
-MCBwb2xhcml0eT0wIGlycj0wIHRyaWc9RSBtYXNrPTEgZGVzdF9pZDo2Mw0KKFhFTikgWzIw
-MTItMDgtMzEgMjE6MDI6NDJdICAgICBJUlEgMTQgVmVjMTQ0Og0KKFhFTikgWzIwMTItMDgt
-MzEgMjE6MDI6NDJdICAgICAgIEFwaWMgMHgwMCwgUGluIDE0OiB2ZWM9OTAgZGVsaXZlcnk9
-TG9QcmkgZGVzdD1MIHN0YXR1cz0wIHBvbGFyaXR5PTAgaXJyPTAgdHJpZz1FIG1hc2s9MCBk
-ZXN0X2lkOjENCihYRU4pIFsyMDEyLTA4LTMxIDIxOjAyOjQyXSAgICAgSVJRIDE1IFZlYzE1
-MjoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjAyOjQyXSAgICAgICBBcGljIDB4MDAsIFBpbiAx
-NTogdmVjPTk4IGRlbGl2ZXJ5PUxvUHJpIGRlc3Q9TCBzdGF0dXM9MCBwb2xhcml0eT0wIGly
-cj0wIHRyaWc9RSBtYXNrPTAgZGVzdF9pZDoxDQooWEVOKSBbMjAxMi0wOC0zMSAyMTowMjo0
-Ml0gICAgIElSUSAxNiBWZWMxODQ6DQooWEVOKSBbMjAxMi0wOC0zMSAyMTowMjo0Ml0gICAg
-ICAgQXBpYyAweDAwLCBQaW4gMTY6IHZlYz1iOCBkZWxpdmVyeT1Mb1ByaSBkZXN0PUwgc3Rh
-dHVzPTAgcG9sYXJpdHk9MSBpcnI9MCB0cmlnPUwgbWFzaz0xIGRlc3RfaWQ6NjMNCihYRU4p
-IFsyMDEyLTA4LTMxIDIxOjAyOjQyXSAgICAgSVJRIDE3IFZlYzIwMDoNCihYRU4pIFsyMDEy
-LTA4LTMxIDIxOjAyOjQyXSAgICAgICBBcGljIDB4MDAsIFBpbiAxNzogdmVjPWM4IGRlbGl2
-ZXJ5PUxvUHJpIGRlc3Q9TCBzdGF0dXM9MCBwb2xhcml0eT0xIGlycj0wIHRyaWc9TCBtYXNr
-PTAgZGVzdF9pZDoxDQooWEVOKSBbMjAxMi0wOC0zMSAyMTowMjo0Ml0gICAgIElSUSAxOCBW
-ZWMxOTI6DQooWEVOKSBbMjAxMi0wOC0zMSAyMTowMjo0Ml0gICAgICAgQXBpYyAweDAwLCBQ
-aW4gMTg6IHZlYz1jMCBkZWxpdmVyeT1Mb1ByaSBkZXN0PUwgc3RhdHVzPTAgcG9sYXJpdHk9
-MSBpcnI9MCB0cmlnPUwgbWFzaz0wIGRlc3RfaWQ6MQ0KKFhFTikgWzIwMTItMDgtMzEgMjE6
-MDI6NDJdICAgICBJUlEgMTkgVmVjMTc3Og0KKFhFTikgWzIwMTItMDgtMzEgMjE6MDI6NDJd
-ICAgICAgIEFwaWMgMHgwMCwgUGluIDE5OiB2ZWM9YjEgZGVsaXZlcnk9TG9QcmkgZGVzdD1M
-IHN0YXR1cz0wIHBvbGFyaXR5PTEgaXJyPTAgdHJpZz1MIG1hc2s9MSBkZXN0X2lkOjYzDQoo
-WEVOKSBbMjAxMi0wOC0zMSAyMTowMjo0Ml0gICAgIElSUSAyMiBWZWMxNTM6DQooWEVOKSBb
-MjAxMi0wOC0zMSAyMTowMjo0Ml0gICAgICAgQXBpYyAweDAwLCBQaW4gMjI6IHZlYz05OSBk
-ZWxpdmVyeT1Mb1ByaSBkZXN0PUwgc3RhdHVzPTAgcG9sYXJpdHk9MSBpcnI9MCB0cmlnPUwg
-bWFzaz0wIGRlc3RfaWQ6MQ0KKFhFTikgWzIwMTItMDgtMzEgMjE6MDI6NDJdICAgICBJUlEg
-MjggVmVjMjA4Og0KKFhFTikgWzIwMTItMDgtMzEgMjE6MDI6NDJdICAgICAgIEFwaWMgMHgw
-MSwgUGluICA0OiB2ZWM9ZDAgZGVsaXZlcnk9TG9QcmkgZGVzdD1MIHN0YXR1cz0wIHBvbGFy
-aXR5PTEgaXJyPTAgdHJpZz1MIG1hc2s9MCBkZXN0X2lkOjENCihYRU4pIFsyMDEyLTA4LTMx
-IDIxOjAyOjQyXSAgICAgSVJRIDI5IFZlYzIxNjoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjAy
-OjQyXSAgICAgICBBcGljIDB4MDEsIFBpbiAgNTogdmVjPWQ4IGRlbGl2ZXJ5PUxvUHJpIGRl
-c3Q9TCBzdGF0dXM9MCBwb2xhcml0eT0xIGlycj0wIHRyaWc9TCBtYXNrPTAgZGVzdF9pZDoz
-Mg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MDI6NDJdICAgICBJUlEgMzAgVmVjIDMzOg0KKFhF
-TikgWzIwMTItMDgtMzEgMjE6MDI6NDJdICAgICAgIEFwaWMgMHgwMSwgUGluICA2OiB2ZWM9
-MjEgZGVsaXZlcnk9TG9QcmkgZGVzdD1MIHN0YXR1cz0wIHBvbGFyaXR5PTEgaXJyPTAgdHJp
-Zz1MIG1hc2s9MCBkZXN0X2lkOjQNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjAyOjQyXSAgICAg
-SVJRIDMxIFZlYyA0MToNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjAyOjQyXSAgICAgICBBcGlj
-IDB4MDEsIFBpbiAgNzogdmVjPTI5IGRlbGl2ZXJ5PUxvUHJpIGRlc3Q9TCBzdGF0dXM9MCBw
-b2xhcml0eT0xIGlycj0wIHRyaWc9TCBtYXNrPTAgZGVzdF9pZDoxDQooWEVOKSBbMjAxMi0w
-OC0zMSAyMTowMjo0Ml0gICAgIElSUSAzMyBWZWMgMzQ6DQooWEVOKSBbMjAxMi0wOC0zMSAy
-MTowMjo0Ml0gICAgICAgQXBpYyAweDAxLCBQaW4gIDk6IHZlYz0yMiBkZWxpdmVyeT1Mb1By
-aSBkZXN0PUwgc3RhdHVzPTAgcG9sYXJpdHk9MSBpcnI9MCB0cmlnPUwgbWFzaz0xIGRlc3Rf
-aWQ6NjMNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjAyOjQyXSAgICAgSVJRIDM2IFZlYzE2MToN
-CihYRU4pIFsyMDEyLTA4LTMxIDIxOjAyOjQyXSAgICAgICBBcGljIDB4MDEsIFBpbiAxMjog
-dmVjPWExIGRlbGl2ZXJ5PUxvUHJpIGRlc3Q9TCBzdGF0dXM9MCBwb2xhcml0eT0xIGlycj0w
-IHRyaWc9TCBtYXNrPTEgZGVzdF9pZDo2Mw0KKFhFTikgWzIwMTItMDgtMzEgMjE6MDI6NDJd
-ICAgICBJUlEgNDAgVmVjIDQ5Og0KKFhFTikgWzIwMTItMDgtMzEgMjE6MDI6NDJdICAgICAg
-IEFwaWMgMHgwMSwgUGluIDE2OiB2ZWM9MzEgZGVsaXZlcnk9TG9QcmkgZGVzdD1MIHN0YXR1
-cz0wIHBvbGFyaXR5PTEgaXJyPTAgdHJpZz1MIG1hc2s9MSBkZXN0X2lkOjYzDQooWEVOKSBb
-MjAxMi0wOC0zMSAyMTowMjo0Ml0gICAgIElSUSA0MSBWZWMgNTc6DQooWEVOKSBbMjAxMi0w
-OC0zMSAyMTowMjo0Ml0gICAgICAgQXBpYyAweDAxLCBQaW4gMTc6IHZlYz0zOSBkZWxpdmVy
-eT1Mb1ByaSBkZXN0PUwgc3RhdHVzPTAgcG9sYXJpdHk9MSBpcnI9MCB0cmlnPUwgbWFzaz0x
-IGRlc3RfaWQ6NjMNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjAyOjQyXSAgICAgSVJRIDQyIFZl
-YyA2NToNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjAyOjQyXSAgICAgICBBcGljIDB4MDEsIFBp
-biAxODogdmVjPTQxIGRlbGl2ZXJ5PUxvUHJpIGRlc3Q9TCBzdGF0dXM9MCBwb2xhcml0eT0x
-IGlycj0wIHRyaWc9TCBtYXNrPTEgZGVzdF9pZDo2Mw0KKFhFTikgWzIwMTItMDgtMzEgMjE6
-MDI6NDJdICAgICBJUlEgNDMgVmVjIDczOg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MDI6NDJd
-ICAgICAgIEFwaWMgMHgwMSwgUGluIDE5OiB2ZWM9NDkgZGVsaXZlcnk9TG9QcmkgZGVzdD1M
-IHN0YXR1cz0wIHBvbGFyaXR5PTEgaXJyPTAgdHJpZz1MIG1hc2s9MSBkZXN0X2lkOjYzDQoo
-WEVOKSBbMjAxMi0wOC0zMSAyMTowMjo0Ml0gICAgIElSUSA0NiBWZWMxOTM6DQooWEVOKSBb
-MjAxMi0wOC0zMSAyMTowMjo0Ml0gICAgICAgQXBpYyAweDAxLCBQaW4gMjI6IHZlYz1jMSBk
-ZWxpdmVyeT1Mb1ByaSBkZXN0PUwgc3RhdHVzPTAgcG9sYXJpdHk9MSBpcnI9MCB0cmlnPUwg
-bWFzaz0xIGRlc3RfaWQ6NjMNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjAyOjQyXSAgICAgSVJR
-IDQ3IFZlYzE2OToNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjAyOjQyXSAgICAgICBBcGljIDB4
-MDEsIFBpbiAyMzogdmVjPWE5IGRlbGl2ZXJ5PUxvUHJpIGRlc3Q9TCBzdGF0dXM9MCBwb2xh
-cml0eT0xIGlycj0wIHRyaWc9TCBtYXNrPTAgZGVzdF9pZDo0DQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTowMjo0Ml0gICAgIElSUSA1MSBWZWMyMDk6DQooWEVOKSBbMjAxMi0wOC0zMSAyMTow
-Mjo0Ml0gICAgICAgQXBpYyAweDAxLCBQaW4gMjc6IHZlYz1kMSBkZWxpdmVyeT1Mb1ByaSBk
-ZXN0PUwgc3RhdHVzPTAgcG9sYXJpdHk9MSBpcnI9MCB0cmlnPUwgbWFzaz0xIGRlc3RfaWQ6
-NjMNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjAyOjQyXSAgICAgSVJRIDUyIFZlYzE2MDoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjAyOjQyXSAgICAgICBBcGljIDB4MDEsIFBpbiAyODogdmVj
-PWEwIGRlbGl2ZXJ5PUxvUHJpIGRlc3Q9TCBzdGF0dXM9MCBwb2xhcml0eT0xIGlycj0wIHRy
-aWc9TCBtYXNrPTEgZGVzdF9pZDo2Mw0KKFhFTikgWzIwMTItMDgtMzEgMjE6MDI6NDJdICAg
-ICBJUlEgNTMgVmVjMTY4Og0KKFhFTikgWzIwMTItMDgtMzEgMjE6MDI6NDJdICAgICAgIEFw
-aWMgMHgwMSwgUGluIDI5OiB2ZWM9YTggZGVsaXZlcnk9TG9QcmkgZGVzdD1MIHN0YXR1cz0w
-IHBvbGFyaXR5PTEgaXJyPTAgdHJpZz1MIG1hc2s9MSBkZXN0X2lkOjYzDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTowMjo0Ml0gICAgIElSUSA1NCBWZWMxNzY6DQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTowMjo0Ml0gICAgICAgQXBpYyAweDAxLCBQaW4gMzA6IHZlYz1iMCBkZWxpdmVyeT1M
-b1ByaSBkZXN0PUwgc3RhdHVzPTAgcG9sYXJpdHk9MSBpcnI9MCB0cmlnPUwgbWFzaz0xIGRl
-c3RfaWQ6NjMNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjExOjU3XSAqKioqKioqKioqKiBWTUNC
-IEFyZWFzICoqKioqKioqKioqKioqDQooWEVOKSBbMjAxMi0wOC0zMSAyMToxMTo1N10gKioq
-KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioNCg==
-------------01015A0E4152274D9
-Content-Type: text/plain; charset="us-ascii"
-MIME-Version: 1.0
-Content-Transfer-Encoding: 7bit
-Content-Disposition: inline
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
-------------01015A0E4152274D9--
-
-
-
diff --git a/test/corpus/<723041396.20120901004249@eikelenboom.it> b/test/corpus/<723041396.20120901004249@eikelenboom.it>
deleted file mode 100644 (file)
index 78ea890..0000000
+++ /dev/null
@@ -1,9381 +0,0 @@
-From xen-devel-bounces@lists.xen.org Sat Sep 01 06:29:24 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Sat, 01 Sep 2012 06:29:24 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T7gGo-0000vG-JX
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Sat, 01 Sep 2012 06:29:24 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T7g8N-000613-Od; Sat, 01 Sep 2012 05:20:39 +0000
-Received: from mail27.messagelabs.com ([193.109.254.147])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <linux@eikelenboom.it>) id 1T7Zvy-0008FL-HL
-       for xen-devel@lists.xen.org; Fri, 31 Aug 2012 22:43:28 +0000
-X-Env-Sender: linux@eikelenboom.it
-X-Msg-Ref: server-14.tower-27.messagelabs.com!1346452977!2165777!1
-X-Originating-IP: [188.40.164.121]
-X-SpamReason: No, hits=3.0 required=7.0 tests=ML_RADAR_551,spamassassin: 
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 13596 invoked from network); 31 Aug 2012 22:42:58 -0000
-Received: from static.121.164.40.188.clients.your-server.de (HELO
-       smtp.eikelenboom.it) (188.40.164.121)
-       by server-14.tower-27.messagelabs.com with AES256-SHA encrypted SMTP;
-       31 Aug 2012 22:42:58 -0000
-Received: from 26-69-ftth.onsneteindhoven.nl ([88.159.69.26]:50972
-       helo=[172.16.1.20])
-       by smtp.eikelenboom.it with esmtpsa (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72) (envelope-from <linux@eikelenboom.it>)
-       id 1T7ZsN-0000Fk-St; Sat, 01 Sep 2012 00:39:45 +0200
-Date: Sat, 1 Sep 2012 00:42:49 +0200
-From: Sander Eikelenboom <linux@eikelenboom.it>
-Organization: Eikelenboom IT services
-X-Priority: 3 (Normal)
-Message-ID: <723041396.20120901004249@eikelenboom.it>
-To: Santosh Jodh <Santosh.Jodh@citrix.com>
-In-Reply-To: <7914B38A4445B34AA16EB9F1352942F1012F0F6F4AE2@SJCPMAILBOX01.citrite.net>
-References: <647712821.20120831234512@eikelenboom.it>
-       <7914B38A4445B34AA16EB9F1352942F1012F0F6F4AE2@SJCPMAILBOX01.citrite.net>
-MIME-Version: 1.0
-Content-Type: multipart/mixed;
- boundary="----------03F05B075321531C3"
-X-Mailman-Approved-At: Sat, 01 Sep 2012 05:20:38 +0000
-Cc: "wei.wang2@amd.com" <wei.wang2@amd.com>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-Subject: Re: [Xen-devel] Using debug-key 'o:  Dump IOMMU p2m table,
-       locks up machine
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Scanned: No (on hopkins.hellion.org.uk); Message bigger than SAmaxbody (256000)
-
-------------03F05B075321531C3
-Content-Type: text/plain; charset=us-ascii
-Content-Transfer-Encoding: 7bit
-
-
-Saturday, September 1, 2012, 12:24:32 AM, you wrote:
-
-> Depending on how many VMs you have and the size of the IOMMU p2m table, it can take a while. It should not be infinite though. 
-
-> How many VMs do you have running?
-
-15
-
-> Can you please send the serial output when you press 'o'?
-
-Attached, to the end you will see the s-ata errors coming through while the dump still runs.
-This is not a complete dump, only a few minutes after which i did a hard reset.
-
-> Santosh
-
->> -----Original Message-----
->> From: Sander Eikelenboom [mailto:linux@eikelenboom.it]
->> Sent: Friday, August 31, 2012 2:45 PM
->> To: Santosh Jodh; wei.wang2@amd.com
->> Cc: xen-devel@lists.xen.org
->> Subject: Using debug-key 'o: Dump IOMMU p2m table, locks up machine
->> 
->> 
->> I was trying to use the 'o' debug key to make a bug report about an "AMD-Vi:
->> IO_PAGE_FAULT".
->> 
->> The result:
->> - When using "xl debug-keys o", the machine seems in a infinite loop, can
->> hardly login, eventually resulting in a kernel RCU stall and complete lockup.
->> - When using serial console: I get a infinite stream of "gfn:  mfn: " lines, mean
->> while on the normal console, S-ATA devices are starting to give errors.
->> 
->> So either option trashes the machine, other debug-keys work fine.
->> 
->> Machine has a 890-fx chipset and AMD phenom x6 proc.
->> 
->> xl dmesg with bootup and output from some other debug-keys is attached.
->> 
->> --
->> 
->> Sander
-
-
-
-
--- 
-Best regards,
- Sander                            mailto:linux@eikelenboom.it
-------------03F05B075321531C3
-Content-Type: text/plain;
- name="output-debug-keys-o.txt"
-Content-transfer-encoding: base64
-Content-Disposition: attachment;
- filename="output-debug-keys-o.txt"
-
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU0XSAqKiogU2VyaWFsIGlucHV0IC0+IFhl
-biAodHlwZSAnQ1RSTC1hJyB0aHJlZSB0aW1lcyB0byBzd2l0Y2ggaW5wdXQgdG8gRE9NMCkN
-Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTZdIA0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
-MTozMTo1Nl0gZG9tYWluMSBJT01NVSBwMm0gdGFibGU6IA0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMTo1Nl0gcDJtIHRhYmxlIGhhcyAzIGxldmVscw0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMTo1Nl0gDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU2XSBkb21haW4yIElP
-TU1VIHAybSB0YWJsZTogDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU2XSBwMm0gdGFi
-bGUgaGFzIDMgbGV2ZWxzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU2XSANCg0KKFhF
-TikgWzIwMTItMDgtMzEgMjE6MzE6NTZdIGRvbWFpbjMgSU9NTVUgcDJtIHRhYmxlOiANCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTZdIHAybSB0YWJsZSBoYXMgMyBsZXZlbHMNCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTZdIA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-MTo1Nl0gZG9tYWluNCBJT01NVSBwMm0gdGFibGU6IA0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
-MTozMTo1Nl0gcDJtIHRhYmxlIGhhcyAzIGxldmVscw0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
-MTozMTo1Nl0gDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU2XSBkb21haW41IElPTU1V
-IHAybSB0YWJsZTogDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU2XSBwMm0gdGFibGUg
-aGFzIDMgbGV2ZWxzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU2XSANCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzE6NTZdIGRvbWFpbjYgSU9NTVUgcDJtIHRhYmxlOiANCg0KKFhF
-TikgWzIwMTItMDgtMzEgMjE6MzE6NTZdIHAybSB0YWJsZSBoYXMgMyBsZXZlbHMNCg0KKFhF
-TikgWzIwMTItMDgtMzEgMjE6MzE6NTZdIA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1
-Nl0gZG9tYWluNyBJT01NVSBwMm0gdGFibGU6IA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-MTo1Nl0gcDJtIHRhYmxlIGhhcyAzIGxldmVscw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-MTo1Nl0gDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU2XSBkb21haW44IElPTU1VIHAy
-bSB0YWJsZTogDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU2XSBwMm0gdGFibGUgaGFz
-IDMgbGV2ZWxzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU2XSANCg0KKFhFTikgWzIw
-MTItMDgtMzEgMjE6MzE6NTZdIGRvbWFpbjkgSU9NTVUgcDJtIHRhYmxlOiANCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzE6NTZdIHAybSB0YWJsZSBoYXMgMyBsZXZlbHMNCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzE6NTZdIA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1Nl0g
-ZG9tYWluMTAgSU9NTVUgcDJtIHRhYmxlOiANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6
-NTZdIHAybSB0YWJsZSBoYXMgMyBsZXZlbHMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6
-NTZdIA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1Nl0gZG9tYWluMTEgSU9NTVUgcDJt
-IHRhYmxlOiANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTZdIHAybSB0YWJsZSBoYXMg
-MyBsZXZlbHMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTZdICAgZ2ZuOiAwMDAwNDAw
-MCAgbWZuOiAwMDAwNDAwMA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1Nl0gICBnZm46
-IDAwMDA0MDAxICBtZm46IDAwMDA0MDAxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU2
-XSAgIGdmbjogMDAwMDQwMDIgIG1mbjogMDAwMDQwMDINCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzE6NTZdICAgZ2ZuOiAwMDAwNDAwMyAgbWZuOiAwMDAwNDAwMw0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMTo1Nl0gICBnZm46IDAwMDA0MDA0ICBtZm46IDAwMDA0MDA0DQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU2XSAgIGdmbjogMDAwMDQwMDUgIG1mbjogMDAwMDQw
-MDUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTZdICAgZ2ZuOiAwMDAwNDAwNiAgbWZu
-OiAwMDAwNDAwNg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1Nl0gICBnZm46IDAwMDA0
-MDA3ICBtZm46IDAwMDA0MDA3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU2XSAgIGdm
-bjogMDAwMDQwMDggIG1mbjogMDAwMDQwMDgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6
-NTZdICAgZ2ZuOiAwMDAwNDAwOSAgbWZuOiAwMDAwNDAwOQ0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMTo1Nl0gICBnZm46IDAwMDA0MDBhICBtZm46IDAwMDA0MDBhDQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMxOjU2XSAgIGdmbjogMDAwMDQwMGIgIG1mbjogMDAwMDQwMGINCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTZdICAgZ2ZuOiAwMDAwNDAwYyAgbWZuOiAwMDAw
-NDAwYw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1Nl0gICBnZm46IDAwMDA0MDBkICBt
-Zm46IDAwMDA0MDBkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU2XSAgIGdmbjogMDAw
-MDQwMGUgIG1mbjogMDAwMDQwMGUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTZdICAg
-Z2ZuOiAwMDAwNDAwZiAgbWZuOiAwMDAwNDAwZg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-MTo1Nl0gICBnZm46IDAwMDA0MDEwICBtZm46IDAwMDA0MDEwDQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMxOjU2XSAgIGdmbjogMDAwMDQwMTEgIG1mbjogMDAwMDQwMTENCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzE6NTZdICAgZ2ZuOiAwMDAwNDAxMiAgbWZuOiAwMDAwNDAxMg0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1Nl0gICBnZm46IDAwMDA0MDEzICBtZm46IDAw
-MDA0MDEzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU2XSAgIGdmbjogMDAwMDQwMTQg
-IG1mbjogMDAwMDQwMTQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTZdICAgZ2ZuOiAw
-MDAwNDAxNSAgbWZuOiAwMDAwNDAxNQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1Nl0g
-ICBnZm46IDAwMDA0MDE2ICBtZm46IDAwMDA0MDE2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMxOjU2XSAgIGdmbjogMDAwMDQwMTcgIG1mbjogMDAwMDQwMTcNCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzE6NTZdICAgZ2ZuOiAwMDAwNDAxOCAgbWZuOiAwMDAwNDAxOA0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMTo1Nl0gICBnZm46IDAwMDA0MDE5ICBtZm46IDAwMDA0MDE5
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU2XSAgIGdmbjogMDAwMDQwMWEgIG1mbjog
-MDAwMDQwMWENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTZdICAgZ2ZuOiAwMDAwNDAx
-YiAgbWZuOiAwMDAwNDAxYg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1Nl0gICBnZm46
-IDAwMDA0MDFjICBtZm46IDAwMDA0MDFjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU2
-XSAgIGdmbjogMDAwMDQwMWQgIG1mbjogMDAwMDQwMWQNCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzE6NTZdICAgZ2ZuOiAwMDAwNDAxZSAgbWZuOiAwMDAwNDAxZQ0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMTo1Nl0gICBnZm46IDAwMDA0MDFmICBtZm46IDAwMDA0MDFmDQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU2XSAgIGdmbjogMDAwMDQwMjAgIG1mbjogMDAwMDQw
-MjANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTZdICAgZ2ZuOiAwMDAwNDAyMSAgbWZu
-OiAwMDAwNDAyMQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1Nl0gICBnZm46IDAwMDA0
-MDIyICBtZm46IDAwMDA0MDIyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU2XSAgIGdm
-bjogMDAwMDQwMjMgIG1mbjogMDAwMDQwMjMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6
-NTZdICAgZ2ZuOiAwMDAwNDAyNCAgbWZuOiAwMDAwNDAyNA0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMTo1Nl0gICBnZm46IDAwMDA0MDI1ICBtZm46IDAwMDA0MDI1DQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMxOjU2XSAgIGdmbjogMDAwMDQwMjYgIG1mbjogMDAwMDQwMjYNCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTZdICAgZ2ZuOiAwMDAwNDAyNyAgbWZuOiAwMDAw
-NDAyNw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1Nl0gICBnZm46IDAwMDA0MDI4ICBt
-Zm46IDAwMDA0MDI4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU2XSAgIGdmbjogMDAw
-MDQwMjkgIG1mbjogMDAwMDQwMjkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTZdICAg
-Z2ZuOiAwMDAwNDAyYSAgbWZuOiAwMDAwNDAyYQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-MTo1Nl0gICBnZm46IDAwMDA0MDJiICBtZm46IDAwMDA0MDJiDQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMxOjU2XSAgIGdmbjogMDAwMDQwMmMgIG1mbjogMDAwMDQwMmMNCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzE6NTZdICAgZ2ZuOiAwMDAwNDAyZCAgbWZuOiAwMDAwNDAyZA0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1Nl0gICBnZm46IDAwMDA0MDJlICBtZm46IDAw
-MDA0MDJlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU2XSAgIGdmbjogMDAwMDQwMmYg
-IG1mbjogMDAwMDQwMmYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTZdICAgZ2ZuOiAw
-MDAwNDAzMCAgbWZuOiAwMDAwNDAzMA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1Nl0g
-ICBnZm46IDAwMDA0MDMxICBtZm46IDAwMDA0MDMxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMxOjU2XSAgIGdmbjogMDAwMDQwMzIgIG1mbjogMDAwMDQwMzINCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzE6NTZdICAgZ2ZuOiAwMDAwNDAzMyAgbWZuOiAwMDAwNDAzMw0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMTo1Nl0gICBnZm46IDAwMDA0MDM0ICBtZm46IDAwMDA0MDM0
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU2XSAgIGdmbjogMDAwMDQwMzUgIG1mbjog
-MDAwMDQwMzUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTZdICAgZ2ZuOiAwMDAwNDAz
-NiAgbWZuOiAwMDAwNDAzNg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1Nl0gICBnZm46
-IDAwMDA0MDM3ICBtZm46IDAwMDA0MDM3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU2
-XSAgIGdmbjogMDAwMDQwMzggIG1mbjogMDAwMDQwMzgNCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzE6NTZdICAgZ2ZuOiAwMDAwNDAzOSAgbWZuOiAwMDAwNDAzOQ0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMTo1Nl0gICBnZm46IDAwMDA0MDNhICBtZm46IDAwMDA0MDNhDQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU2XSAgIGdmbjogMDAwMDQwM2IgIG1mbjogMDAwMDQw
-M2INCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTZdICAgZ2ZuOiAwMDAwNDAzYyAgbWZu
-OiAwMDAwNDAzYw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1Nl0gICBnZm46IDAwMDA0
-MDNkICBtZm46IDAwMDA0MDNkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU2XSAgIGdm
-bjogMDAwMDQwM2UgIG1mbjogMDAwMDQwM2UNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6
-NTZdICAgZ2ZuOiAwMDAwNDAzZiAgbWZuOiAwMDAwNDAzZg0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMTo1Nl0gICBnZm46IDAwMDA0MDQwICBtZm46IDAwMDA0MDQwDQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMxOjU2XSAgIGdmbjogMDAwMDQwNDEgIG1mbjogMDAwMDQwNDENCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTZdICAgZ2ZuOiAwMDAwNDA0MiAgbWZuOiAwMDAw
-NDA0Mg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1Nl0gICBnZm46IDAwMDA0MDQzICBt
-Zm46IDAwMDA0MDQzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU2XSAgIGdmbjogMDAw
-MDQwNDQgIG1mbjogMDAwMDQwNDQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTZdICAg
-Z2ZuOiAwMDAwNDA0NSAgbWZuOiAwMDAwNDA0NQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-MTo1Nl0gICBnZm46IDAwMDA0MDQ2ICBtZm46IDAwMDA0MDQ2DQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMxOjU2XSAgIGdmbjogMDAwMDQwNDcgIG1mbjogMDAwMDQwNDcNCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzE6NTZdICAgZ2ZuOiAwMDAwNDA0OCAgbWZuOiAwMDAwNDA0OA0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1Nl0gICBnZm46IDAwMDA0MDQ5ICBtZm46IDAw
-MDA0MDQ5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU2XSAgIGdmbjogMDAwMDQwNGEg
-IG1mbjogMDAwMDQwNGENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTZdICAgZ2ZuOiAw
-MDAwNDA0YiAgbWZuOiAwMDAwNDA0Yg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1Nl0g
-ICBnZm46IDAwMDA0MDRjICBtZm46IDAwMDA0MDRjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMxOjU2XSAgIGdmbjogMDAwMDQwNGQgIG1mbjogMDAwMDQwNGQNCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzE6NTZdICAgZ2ZuOiAwMDAwNDA0ZSAgbWZuOiAwMDAwNDA0ZQ0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMTo1Nl0gICBnZm46IDAwMDA0MDRmICBtZm46IDAwMDA0MDRm
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU2XSAgIGdmbjogMDAwMDQwNTAgIG1mbjog
-MDAwMDQwNTANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTZdICAgZ2ZuOiAwMDAwNDA1
-MSAgbWZuOiAwMDAwNDA1MQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1Nl0gICBnZm46
-IDAwMDA0MDUyICBtZm46IDAwMDA0MDUyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU2
-XSAgIGdmbjogMDAwMDQwNTMgIG1mbjogMDAwMDQwNTMNCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzE6NTZdICAgZ2ZuOiAwMDAwNDA1NCAgbWZuOiAwMDAwNDA1NA0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMTo1Nl0gICBnZm46IDAwMDA0MDU1ICBtZm46IDAwMDA0MDU1DQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU2XSAgIGdmbjogMDAwMDQwNTYgIG1mbjogMDAwMDQw
-NTYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTZdICAgZ2ZuOiAwMDAwNDA1NyAgbWZu
-OiAwMDAwNDA1Nw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1Nl0gICBnZm46IDAwMDA0
-MDU4ICBtZm46IDAwMDA0MDU4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU2XSAgIGdm
-bjogMDAwMDQwNTkgIG1mbjogMDAwMDQwNTkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6
-NTZdICAgZ2ZuOiAwMDAwNDA1YSAgbWZuOiAwMDAwNDA1YQ0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMTo1Nl0gICBnZm46IDAwMDA0MDViICBtZm46IDAwMDA0MDViDQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMxOjU2XSAgIGdmbjogMDAwMDQwNWMgIG1mbjogMDAwMDQwNWMNCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTZdICAgZ2ZuOiAwMDAwNDA1ZCAgbWZuOiAwMDAw
-NDA1ZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1Nl0gICBnZm46IDAwMDA0MDVlICBt
-Zm46IDAwMDA0MDVlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU2XSAgIGdmbjogMDAw
-MDQwNWYgIG1mbjogMDAwMDQwNWYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTZdICAg
-Z2ZuOiAwMDAwNDA2MCAgbWZuOiAwMDAwNDA2MA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-MTo1Nl0gICBnZm46IDAwMDA0MDYxICBtZm46IDAwMDA0MDYxDQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMxOjU2XSAgIGdmbjogMDAwMDQwNjIgIG1mbjogMDAwMDQwNjINCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzE6NTZdICAgZ2ZuOiAwMDAwNDA2MyAgbWZuOiAwMDAwNDA2Mw0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1Nl0gICBnZm46IDAwMDA0MDY0ICBtZm46IDAw
-MDA0MDY0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU2XSAgIGdmbjogMDAwMDQwNjUg
-IG1mbjogMDAwMDQwNjUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTZdICAgZ2ZuOiAw
-MDAwNDA2NiAgbWZuOiAwMDAwNDA2Ng0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1Nl0g
-ICBnZm46IDAwMDA0MDY3ICBtZm46IDAwMDA0MDY3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMxOjU2XSAgIGdmbjogMDAwMDQwNjggIG1mbjogMDAwMDQwNjgNCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzE6NTZdICAgZ2ZuOiAwMDAwNDA2OSAgbWZuOiAwMDAwNDA2OQ0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMTo1Nl0gICBnZm46IDAwMDA0MDZhICBtZm46IDAwMDA0MDZh
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU2XSAgIGdmbjogMDAwMDQwNmIgIG1mbjog
-MDAwMDQwNmINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTZdICAgZ2ZuOiAwMDAwNDA2
-YyAgbWZuOiAwMDAwNDA2Yw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1Nl0gICBnZm46
-IDAwMDA0MDZkICBtZm46IDAwMDA0MDZkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU2
-XSAgIGdmbjogMDAwMDQwNmUgIG1mbjogMDAwMDQwNmUNCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzE6NTZdICAgZ2ZuOiAwMDAwNDA2ZiAgbWZuOiAwMDAwNDA2Zg0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMTo1Nl0gICBnZm46IDAwMDA0MDcwICBtZm46IDAwMDA0MDcwDQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU2XSAgIGdmbjogMDAwMDQwNzEgIG1mbjogMDAwMDQw
-NzENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTZdICAgZ2ZuOiAwMDAwNDA3MiAgbWZu
-OiAwMDAwNDA3Mg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1Nl0gICBnZm46IDAwMDA0
-MDczICBtZm46IDAwMDA0MDczDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU2XSAgIGdm
-bjogMDAwMDQwNzQgIG1mbjogMDAwMDQwNzQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6
-NTZdICAgZ2ZuOiAwMDAwNDA3NSAgbWZuOiAwMDAwNDA3NQ0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMTo1Nl0gICBnZm46IDAwMDA0MDc2ICBtZm46IDAwMDA0MDc2DQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMxOjU2XSAgIGdmbjogMDAwMDQwNzcgIG1mbjogMDAwMDQwNzcNCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTZdICAgZ2ZuOiAwMDAwNDA3OCAgbWZuOiAwMDAw
-NDA3OA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1Nl0gICBnZm46IDAwMDA0MDc5ICBt
-Zm46IDAwMDA0MDc5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU2XSAgIGdmbjogMDAw
-MDQwN2EgIG1mbjogMDAwMDQwN2ENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTZdICAg
-Z2ZuOiAwMDAwNDA3YiAgbWZuOiAwMDAwNDA3Yg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-MTo1Nl0gICBnZm46IDAwMDA0MDdjICBtZm46IDAwMDA0MDdjDQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMxOjU2XSAgIGdmbjogMDAwMDQwN2QgIG1mbjogMDAwMDQwN2QNCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzE6NTZdICAgZ2ZuOiAwMDAwNDA3ZSAgbWZuOiAwMDAwNDA3ZQ0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1Nl0gICBnZm46IDAwMDA0MDdmICBtZm46IDAw
-MDA0MDdmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU2XSAgIGdmbjogMDAwMDQwODAg
-IG1mbjogMDAwMDQwODANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTZdICAgZ2ZuOiAw
-MDAwNDA4MSAgbWZuOiAwMDAwNDA4MQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1Nl0g
-ICBnZm46IDAwMDA0MDgyICBtZm46IDAwMDA0MDgyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMxOjU2XSAgIGdmbjogMDAwMDQwODMgIG1mbjogMDAwMDQwODMNCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzE6NTZdICAgZ2ZuOiAwMDAwNDA4NCAgbWZuOiAwMDAwNDA4NA0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMTo1Nl0gICBnZm46IDAwMDA0MDg1ICBtZm46IDAwMDA0MDg1
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU2XSAgIGdmbjogMDAwMDQwODYgIG1mbjog
-MDAwMDQwODYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTZdICAgZ2ZuOiAwMDAwNDA4
-NyAgbWZuOiAwMDAwNDA4Nw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1Nl0gICBnZm46
-IDAwMDA0MDg4ICBtZm46IDAwMDA0MDg4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU2
-XSAgIGdmbjogMDAwMDQwODkgIG1mbjogMDAwMDQwODkNCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzE6NTZdICAgZ2ZuOiAwMDAwNDA4YSAgbWZuOiAwMDAwNDA4YQ0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMTo1Nl0gICBnZm46IDAwMDA0MDhiICBtZm46IDAwMDA0MDhiDQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU2XSAgIGdmbjogMDAwMDQwOGMgIG1mbjogMDAwMDQw
-OGMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTZdICAgZ2ZuOiAwMDAwNDA4ZCAgbWZu
-OiAwMDAwNDA4ZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1Nl0gICBnZm46IDAwMDA0
-MDhlICBtZm46IDAwMDA0MDhlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU2XSAgIGdm
-bjogMDAwMDQwOGYgIG1mbjogMDAwMDQwOGYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6
-NTZdICAgZ2ZuOiAwMDAwNDA5MCAgbWZuOiAwMDAwNDA5MA0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMTo1Nl0gICBnZm46IDAwMDA0MDkxICBtZm46IDAwMDA0MDkxDQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMxOjU2XSAgIGdmbjogMDAwMDQwOTIgIG1mbjogMDAwMDQwOTINCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTZdICAgZ2ZuOiAwMDAwNDA5MyAgbWZuOiAwMDAw
-NDA5Mw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1Nl0gICBnZm46IDAwMDA0MDk0ICBt
-Zm46IDAwMDA0MDk0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU2XSAgIGdmbjogMDAw
-MDQwOTUgIG1mbjogMDAwMDQwOTUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTZdICAg
-Z2ZuOiAwMDAwNDA5NiAgbWZuOiAwMDAwNDA5Ng0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-MTo1Nl0gICBnZm46IDAwMDA0MDk3ICBtZm46IDAwMDA0MDk3DQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMxOjU2XSAgIGdmbjogMDAwMDQwOTggIG1mbjogMDAwMDQwOTgNCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzE6NTZdICAgZ2ZuOiAwMDAwNDA5OSAgbWZuOiAwMDAwNDA5OQ0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1Nl0gICBnZm46IDAwMDA0MDlhICBtZm46IDAw
-MDA0MDlhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU2XSAgIGdmbjogMDAwMDQwOWIg
-IG1mbjogMDAwMDQwOWINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTZdICAgZ2ZuOiAw
-MDAwNDA5YyAgbWZuOiAwMDAwNDA5Yw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1Nl0g
-ICBnZm46IDAwMDA0MDlkICBtZm46IDAwMDA0MDlkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMxOjU2XSAgIGdmbjogMDAwMDQwOWUgIG1mbjogMDAwMDQwOWUNCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzE6NTZdICAgZ2ZuOiAwMDAwNDA5ZiAgbWZuOiAwMDAwNDA5Zg0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMTo1Nl0gICBnZm46IDAwMDA0MGEwICBtZm46IDAwMDA0MGEw
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU2XSAgIGdmbjogMDAwMDQwYTEgIG1mbjog
-MDAwMDQwYTENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTZdICAgZ2ZuOiAwMDAwNDBh
-MiAgbWZuOiAwMDAwNDBhMg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1Nl0gICBnZm46
-IDAwMDA0MGEzICBtZm46IDAwMDA0MGEzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU2
-XSAgIGdmbjogMDAwMDQwYTQgIG1mbjogMDAwMDQwYTQNCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzE6NTZdICAgZ2ZuOiAwMDAwNDBhNSAgbWZuOiAwMDAwNDBhNQ0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMTo1Nl0gICBnZm46IDAwMDA0MGE2ICBtZm46IDAwMDA0MGE2DQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU2XSAgIGdmbjogMDAwMDQwYTcgIG1mbjogMDAwMDQw
-YTcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTZdICAgZ2ZuOiAwMDAwNDBhOCAgbWZu
-OiAwMDAwNDBhOA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1Nl0gICBnZm46IDAwMDA0
-MGE5ICBtZm46IDAwMDA0MGE5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU2XSAgIGdm
-bjogMDAwMDQwYWEgIG1mbjogMDAwMDQwYWENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6
-NTZdICAgZ2ZuOiAwMDAwNDBhYiAgbWZuOiAwMDAwNDBhYg0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMTo1Nl0gICBnZm46IDAwMDA0MGFjICBtZm46IDAwMDA0MGFjDQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMxOjU2XSAgIGdmbjogMDAwMDQwYWQgIG1mbjogMDAwMDQwYWQNCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTZdICAgZ2ZuOiAwMDAwNDBhZSAgbWZuOiAwMDAw
-NDBhZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1Nl0gICBnZm46IDAwMDA0MGFmICBt
-Zm46IDAwMDA0MGFmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU2XSAgIGdmbjogMDAw
-MDQwYjAgIG1mbjogMDAwMDQwYjANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTZdICAg
-Z2ZuOiAwMDAwNDBiMSAgbWZuOiAwMDAwNDBiMQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-MTo1Nl0gICBnZm46IDAwMDA0MGIyICBtZm46IDAwMDA0MGIyDQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMxOjU2XSAgIGdmbjogMDAwMDQwYjMgIG1mbjogMDAwMDQwYjMNCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzE6NTZdICAgZ2ZuOiAwMDAwNDBiNCAgbWZuOiAwMDAwNDBiNA0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1Nl0gICBnZm46IDAwMDA0MGI1ICBtZm46IDAw
-MDA0MGI1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU2XSAgIGdmbjogMDAwMDQwYjYg
-IG1mbjogMDAwMDQwYjYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTZdICAgZ2ZuOiAw
-MDAwNDBiNyAgbWZuOiAwMDAwNDBiNw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1Nl0g
-ICBnZm46IDAwMDA0MGI4ICBtZm46IDAwMDA0MGI4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMxOjU2XSAgIGdmbjogMDAwMDQwYjkgIG1mbjogMDAwMDQwYjkNCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzE6NTZdICAgZ2ZuOiAwMDAwNDBiYSAgbWZuOiAwMDAwNDBiYQ0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMTo1Nl0gICBnZm46IDAwMDA0MGJiICBtZm46IDAwMDA0MGJi
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU2XSAgIGdmbjogMDAwMDQwYmMgIG1mbjog
-MDAwMDQwYmMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTZdICAgZ2ZuOiAwMDAwNDBi
-ZCAgbWZuOiAwMDAwNDBiZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1Nl0gICBnZm46
-IDAwMDA0MGJlICBtZm46IDAwMDA0MGJlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU2
-XSAgIGdmbjogMDAwMDQwYmYgIG1mbjogMDAwMDQwYmYNCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzE6NTZdICAgZ2ZuOiAwMDAwNDBjMCAgbWZuOiAwMDAwNDBjMA0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMTo1Nl0gICBnZm46IDAwMDA0MGMxICBtZm46IDAwMDA0MGMxDQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU2XSAgIGdmbjogMDAwMDQwYzIgIG1mbjogMDAwMDQw
-YzINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTZdICAgZ2ZuOiAwMDAwNDBjMyAgbWZu
-OiAwMDAwNDBjMw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1Nl0gICBnZm46IDAwMDA0
-MGM0ICBtZm46IDAwMDA0MGM0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU2XSAgIGdm
-bjogMDAwMDQwYzUgIG1mbjogMDAwMDQwYzUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6
-NTZdICAgZ2ZuOiAwMDAwNDBjNiAgbWZuOiAwMDAwNDBjNg0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMTo1Nl0gICBnZm46IDAwMDA0MGM3ICBtZm46IDAwMDA0MGM3DQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMxOjU2XSAgIGdmbjogMDAwMDQwYzggIG1mbjogMDAwMDQwYzgNCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTZdICAgZ2ZuOiAwMDAwNDBjOSAgbWZuOiAwMDAw
-NDBjOQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1Nl0gICBnZm46IDAwMDA0MGNhICBt
-Zm46IDAwMDA0MGNhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU2XSAgIGdmbjogMDAw
-MDQwY2IgIG1mbjogMDAwMDQwY2INCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTZdICAg
-Z2ZuOiAwMDAwNDBjYyAgbWZuOiAwMDAwNDBjYw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-MTo1Nl0gICBnZm46IDAwMDA0MGNkICBtZm46IDAwMDA0MGNkDQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMxOjU2XSAgIGdmbjogMDAwMDQwY2UgIG1mbjogMDAwMDQwY2UNCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzE6NTZdICAgZ2ZuOiAwMDAwNDBjZiAgbWZuOiAwMDAwNDBjZg0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1Nl0gICBnZm46IDAwMDA0MGQwICBtZm46IDAw
-MDA0MGQwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU2XSAgIGdmbjogMDAwMDQwZDEg
-IG1mbjogMDAwMDQwZDENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTZdICAgZ2ZuOiAw
-MDAwNDBkMiAgbWZuOiAwMDAwNDBkMg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1Nl0g
-ICBnZm46IDAwMDA0MGQzICBtZm46IDAwMDA0MGQzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMxOjU2XSAgIGdmbjogMDAwMDQwZDQgIG1mbjogMDAwMDQwZDQNCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzE6NTZdICAgZ2ZuOiAwMDAwNDBkNSAgbWZuOiAwMDAwNDBkNQ0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMTo1Nl0gICBnZm46IDAwMDA0MGQ2ICBtZm46IDAwMDA0MGQ2
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU2XSAgIGdmbjogMDAwMDQwZDcgIG1mbjog
-MDAwMDQwZDcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTZdICAgZ2ZuOiAwMDAwNDBk
-OCAgbWZuOiAwMDAwNDBkOA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1Nl0gICBnZm46
-IDAwMDA0MGQ5ICBtZm46IDAwMDA0MGQ5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU2
-XSAgIGdmbjogMDAwMDQwZGEgIG1mbjogMDAwMDQwZGENCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzE6NTZdICAgZ2ZuOiAwMDAwNDBkYiAgbWZuOiAwMDAwNDBkYg0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMTo1Nl0gICBnZm46IDAwMDA0MGRjICBtZm46IDAwMDA0MGRjDQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU2XSAgIGdmbjogMDAwMDQwZGQgIG1mbjogMDAwMDQw
-ZGQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTZdICAgZ2ZuOiAwMDAwNDBkZSAgbWZu
-OiAwMDAwNDBkZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1Nl0gICBnZm46IDAwMDA0
-MGRmICBtZm46IDAwMDA0MGRmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU2XSAgIGdm
-bjogMDAwMDQwZTAgIG1mbjogMDAwMDQwZTANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6
-NTZdICAgZ2ZuOiAwMDAwNDBlMSAgbWZuOiAwMDAwNDBlMQ0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMTo1Nl0gICBnZm46IDAwMDA0MGUyICBtZm46IDAwMDA0MGUyDQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMxOjU2XSAgIGdmbjogMDAwMDQwZTMgIG1mbjogMDAwMDQwZTMNCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTZdICAgZ2ZuOiAwMDAwNDBlNCAgbWZuOiAwMDAw
-NDBlNA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1Nl0gICBnZm46IDAwMDA0MGU1ICBt
-Zm46IDAwMDA0MGU1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU2XSAgIGdmbjogMDAw
-MDQwZTYgIG1mbjogMDAwMDQwZTYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTZdICAg
-Z2ZuOiAwMDAwNDBlNyAgbWZuOiAwMDAwNDBlNw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-MTo1Nl0gICBnZm46IDAwMDA0MGU4ICBtZm46IDAwMDA0MGU4DQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMxOjU2XSAgIGdmbjogMDAwMDQwZTkgIG1mbjogMDAwMDQwZTkNCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzE6NTZdICAgZ2ZuOiAwMDAwNDBlYSAgbWZuOiAwMDAwNDBlYQ0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1Nl0gICBnZm46IDAwMDA0MGViICBtZm46IDAw
-MDA0MGViDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU2XSAgIGdmbjogMDAwMDQwZWMg
-IG1mbjogMDAwMDQwZWMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTZdICAgZ2ZuOiAw
-MDAwNDBlZCAgbWZuOiAwMDAwNDBlZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1Nl0g
-ICBnZm46IDAwMDA0MGVlICBtZm46IDAwMDA0MGVlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMxOjU2XSAgIGdmbjogMDAwMDQwZWYgIG1mbjogMDAwMDQwZWYNCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzE6NTZdICAgZ2ZuOiAwMDAwNDBmMCAgbWZuOiAwMDAwNDBmMA0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMTo1Nl0gICBnZm46IDAwMDA0MGYxICBtZm46IDAwMDA0MGYx
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU2XSAgIGdmbjogMDAwMDQwZjIgIG1mbjog
-MDAwMDQwZjINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTZdICAgZ2ZuOiAwMDAwNDBm
-MyAgbWZuOiAwMDAwNDBmMw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1Nl0gICBnZm46
-IDAwMDA0MGY0ICBtZm46IDAwMDA0MGY0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU2
-XSAgIGdmbjogMDAwMDQwZjUgIG1mbjogMDAwMDQwZjUNCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzE6NTZdICAgZ2ZuOiAwMDAwNDBmNiAgbWZuOiAwMDAwNDBmNg0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMTo1Nl0gICBnZm46IDAwMDA0MGY3ICBtZm46IDAwMDA0MGY3DQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU2XSAgIGdmbjogMDAwMDQwZjggIG1mbjogMDAwMDQw
-ZjgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTZdICAgZ2ZuOiAwMDAwNDBmOSAgbWZu
-OiAwMDAwNDBmOQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1N10gICBnZm46IDAwMDA0
-MGZhICBtZm46IDAwMDA0MGZhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU3XSAgIGdm
-bjogMDAwMDQwZmIgIG1mbjogMDAwMDQwZmINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6
-NTddICAgZ2ZuOiAwMDAwNDBmYyAgbWZuOiAwMDAwNDBmYw0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMTo1N10gICBnZm46IDAwMDA0MGZkICBtZm46IDAwMDA0MGZkDQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMxOjU3XSAgIGdmbjogMDAwMDQwZmUgIG1mbjogMDAwMDQwZmUNCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTddICAgZ2ZuOiAwMDAwNDBmZiAgbWZuOiAwMDAw
-NDBmZg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1N10gICBnZm46IDAwMDA0MTAwICBt
-Zm46IDAwMDA0MTAwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU3XSAgIGdmbjogMDAw
-MDQxMDEgIG1mbjogMDAwMDQxMDENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTddICAg
-Z2ZuOiAwMDAwNDEwMiAgbWZuOiAwMDAwNDEwMg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-MTo1N10gICBnZm46IDAwMDA0MTAzICBtZm46IDAwMDA0MTAzDQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMxOjU3XSAgIGdmbjogMDAwMDQxMDQgIG1mbjogMDAwMDQxMDQNCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzE6NTddICAgZ2ZuOiAwMDAwNDEwNSAgbWZuOiAwMDAwNDEwNQ0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1N10gICBnZm46IDAwMDA0MTA2ICBtZm46IDAw
-MDA0MTA2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU3XSAgIGdmbjogMDAwMDQxMDcg
-IG1mbjogMDAwMDQxMDcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTddICAgZ2ZuOiAw
-MDAwNDEwOCAgbWZuOiAwMDAwNDEwOA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1N10g
-ICBnZm46IDAwMDA0MTA5ICBtZm46IDAwMDA0MTA5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMxOjU3XSAgIGdmbjogMDAwMDQxMGEgIG1mbjogMDAwMDQxMGENCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzE6NTddICAgZ2ZuOiAwMDAwNDEwYiAgbWZuOiAwMDAwNDEwYg0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMTo1N10gICBnZm46IDAwMDA0MTBjICBtZm46IDAwMDA0MTBj
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU3XSAgIGdmbjogMDAwMDQxMGQgIG1mbjog
-MDAwMDQxMGQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTddICAgZ2ZuOiAwMDAwNDEw
-ZSAgbWZuOiAwMDAwNDEwZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1N10gICBnZm46
-IDAwMDA0MTBmICBtZm46IDAwMDA0MTBmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU3
-XSAgIGdmbjogMDAwMDQxMTAgIG1mbjogMDAwMDQxMTANCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzE6NTddICAgZ2ZuOiAwMDAwNDExMSAgbWZuOiAwMDAwNDExMQ0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMTo1N10gICBnZm46IDAwMDA0MTEyICBtZm46IDAwMDA0MTEyDQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU3XSAgIGdmbjogMDAwMDQxMTMgIG1mbjogMDAwMDQx
-MTMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTddICAgZ2ZuOiAwMDAwNDExNCAgbWZu
-OiAwMDAwNDExNA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1N10gICBnZm46IDAwMDA0
-MTE1ICBtZm46IDAwMDA0MTE1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU3XSAgIGdm
-bjogMDAwMDQxMTYgIG1mbjogMDAwMDQxMTYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6
-NTddICAgZ2ZuOiAwMDAwNDExNyAgbWZuOiAwMDAwNDExNw0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMTo1N10gICBnZm46IDAwMDA0MTE4ICBtZm46IDAwMDA0MTE4DQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMxOjU3XSAgIGdmbjogMDAwMDQxMTkgIG1mbjogMDAwMDQxMTkNCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTddICAgZ2ZuOiAwMDAwNDExYSAgbWZuOiAwMDAw
-NDExYQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1N10gICBnZm46IDAwMDA0MTFiICBt
-Zm46IDAwMDA0MTFiDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU3XSAgIGdmbjogMDAw
-MDQxMWMgIG1mbjogMDAwMDQxMWMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTddICAg
-Z2ZuOiAwMDAwNDExZCAgbWZuOiAwMDAwNDExZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-MTo1N10gICBnZm46IDAwMDA0MTFlICBtZm46IDAwMDA0MTFlDQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMxOjU3XSAgIGdmbjogMDAwMDQxMWYgIG1mbjogMDAwMDQxMWYNCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzE6NTddICAgZ2ZuOiAwMDAwNDEyMCAgbWZuOiAwMDAwNDEyMA0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1N10gICBnZm46IDAwMDA0MTIxICBtZm46IDAw
-MDA0MTIxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU3XSAgIGdmbjogMDAwMDQxMjIg
-IG1mbjogMDAwMDQxMjINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTddICAgZ2ZuOiAw
-MDAwNDEyMyAgbWZuOiAwMDAwNDEyMw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1N10g
-ICBnZm46IDAwMDA0MTI0ICBtZm46IDAwMDA0MTI0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMxOjU3XSAgIGdmbjogMDAwMDQxMjUgIG1mbjogMDAwMDQxMjUNCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzE6NTddICAgZ2ZuOiAwMDAwNDEyNiAgbWZuOiAwMDAwNDEyNg0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMTo1N10gICBnZm46IDAwMDA0MTI3ICBtZm46IDAwMDA0MTI3
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU3XSAgIGdmbjogMDAwMDQxMjggIG1mbjog
-MDAwMDQxMjgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTddICAgZ2ZuOiAwMDAwNDEy
-OSAgbWZuOiAwMDAwNDEyOQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1N10gICBnZm46
-IDAwMDA0MTJhICBtZm46IDAwMDA0MTJhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU3
-XSAgIGdmbjogMDAwMDQxMmIgIG1mbjogMDAwMDQxMmINCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzE6NTddICAgZ2ZuOiAwMDAwNDEyYyAgbWZuOiAwMDAwNDEyYw0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMTo1N10gICBnZm46IDAwMDA0MTJkICBtZm46IDAwMDA0MTJkDQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU3XSAgIGdmbjogMDAwMDQxMmUgIG1mbjogMDAwMDQx
-MmUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTddICAgZ2ZuOiAwMDAwNDEyZiAgbWZu
-OiAwMDAwNDEyZg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1N10gICBnZm46IDAwMDA0
-MTMwICBtZm46IDAwMDA0MTMwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU3XSAgIGdm
-bjogMDAwMDQxMzEgIG1mbjogMDAwMDQxMzENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6
-NTddICAgZ2ZuOiAwMDAwNDEzMiAgbWZuOiAwMDAwNDEzMg0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMTo1N10gICBnZm46IDAwMDA0MTMzICBtZm46IDAwMDA0MTMzDQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMxOjU3XSAgIGdmbjogMDAwMDQxMzQgIG1mbjogMDAwMDQxMzQNCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTddICAgZ2ZuOiAwMDAwNDEzNSAgbWZuOiAwMDAw
-NDEzNQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1N10gICBnZm46IDAwMDA0MTM2ICBt
-Zm46IDAwMDA0MTM2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU3XSAgIGdmbjogMDAw
-MDQxMzcgIG1mbjogMDAwMDQxMzcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTddICAg
-Z2ZuOiAwMDAwNDEzOCAgbWZuOiAwMDAwNDEzOA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-MTo1N10gICBnZm46IDAwMDA0MTM5ICBtZm46IDAwMDA0MTM5DQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMxOjU4XSAgIGdmbjogMDAwMDQxM2EgIG1mbjogMDAwMDQxM2ENCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzE6NThdICAgZ2ZuOiAwMDAwNDEzYiAgbWZuOiAwMDAwNDEzYg0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1OF0gICBnZm46IDAwMDA0MTNjICBtZm46IDAw
-MDA0MTNjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU4XSAgIGdmbjogMDAwMDQxM2Qg
-IG1mbjogMDAwMDQxM2QNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NThdICAgZ2ZuOiAw
-MDAwNDEzZSAgbWZuOiAwMDAwNDEzZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1OF0g
-ICBnZm46IDAwMDA0MTNmICBtZm46IDAwMDA0MTNmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMxOjU4XSAgIGdmbjogMDAwMDQxNDAgIG1mbjogMDAwMDQxNDANCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzE6NThdICAgZ2ZuOiAwMDAwNDE0MSAgbWZuOiAwMDAwNDE0MQ0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMTo1OF0gICBnZm46IDAwMDA0MTQyICBtZm46IDAwMDA0MTQy
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU4XSAgIGdmbjogMDAwMDQxNDMgIG1mbjog
-MDAwMDQxNDMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NThdICAgZ2ZuOiAwMDAwNDE0
-NCAgbWZuOiAwMDAwNDE0NA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1OF0gICBnZm46
-IDAwMDA0MTQ1ICBtZm46IDAwMDA0MTQ1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU4
-XSAgIGdmbjogMDAwMDQxNDYgIG1mbjogMDAwMDQxNDYNCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzE6NThdICAgZ2ZuOiAwMDAwNDE0NyAgbWZuOiAwMDAwNDE0Nw0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMTo1OF0gICBnZm46IDAwMDA0MTQ4ICBtZm46IDAwMDA0MTQ4DQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU4XSAgIGdmbjogMDAwMDQxNDkgIG1mbjogMDAwMDQx
-NDkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NThdICAgZ2ZuOiAwMDAwNDE0YSAgbWZu
-OiAwMDAwNDE0YQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1OF0gICBnZm46IDAwMDA0
-MTRiICBtZm46IDAwMDA0MTRiDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU4XSAgIGdm
-bjogMDAwMDQxNGMgIG1mbjogMDAwMDQxNGMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6
-NThdICAgZ2ZuOiAwMDAwNDE0ZCAgbWZuOiAwMDAwNDE0ZA0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMTo1OF0gICBnZm46IDAwMDA0MTRlICBtZm46IDAwMDA0MTRlDQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMxOjU4XSAgIGdmbjogMDAwMDQxNGYgIG1mbjogMDAwMDQxNGYNCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NThdICAgZ2ZuOiAwMDAwNDE1MCAgbWZuOiAwMDAw
-NDE1MA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1OF0gICBnZm46IDAwMDA0MTUxICBt
-Zm46IDAwMDA0MTUxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU4XSAgIGdmbjogMDAw
-MDQxNTIgIG1mbjogMDAwMDQxNTINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NThdICAg
-Z2ZuOiAwMDAwNDE1MyAgbWZuOiAwMDAwNDE1Mw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-MTo1OF0gICBnZm46IDAwMDA0MTU0ICBtZm46IDAwMDA0MTU0DQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMxOjU4XSAgIGdmbjogMDAwMDQxNTUgIG1mbjogMDAwMDQxNTUNCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzE6NThdICAgZ2ZuOiAwMDAwNDE1NiAgbWZuOiAwMDAwNDE1Ng0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1OF0gICBnZm46IDAwMDA0MTU3ICBtZm46IDAw
-MDA0MTU3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU4XSAgIGdmbjogMDAwMDQxNTgg
-IG1mbjogMDAwMDQxNTgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NThdICAgZ2ZuOiAw
-MDAwNDE1OSAgbWZuOiAwMDAwNDE1OQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1OF0g
-ICBnZm46IDAwMDA0MTVhICBtZm46IDAwMDA0MTVhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMxOjU4XSAgIGdmbjogMDAwMDQxNWIgIG1mbjogMDAwMDQxNWINCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzE6NThdICAgZ2ZuOiAwMDAwNDE1YyAgbWZuOiAwMDAwNDE1Yw0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMTo1OF0gICBnZm46IDAwMDA0MTVkICBtZm46IDAwMDA0MTVk
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU4XSAgIGdmbjogMDAwMDQxNWUgIG1mbjog
-MDAwMDQxNWUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NThdICAgZ2ZuOiAwMDAwNDE1
-ZiAgbWZuOiAwMDAwNDE1Zg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1OF0gICBnZm46
-IDAwMDA0MTYwICBtZm46IDAwMDA0MTYwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU4
-XSAgIGdmbjogMDAwMDQxNjEgIG1mbjogMDAwMDQxNjENCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzE6NThdICAgZ2ZuOiAwMDAwNDE2MiAgbWZuOiAwMDAwNDE2Mg0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMTo1OF0gICBnZm46IDAwMDA0MTYzICBtZm46IDAwMDA0MTYzDQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU4XSAgIGdmbjogMDAwMDQxNjQgIG1mbjogMDAwMDQx
-NjQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NThdICAgZ2ZuOiAwMDAwNDE2NSAgbWZu
-OiAwMDAwNDE2NQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1OF0gICBnZm46IDAwMDA0
-MTY2ICBtZm46IDAwMDA0MTY2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU4XSAgIGdm
-bjogMDAwMDQxNjcgIG1mbjogMDAwMDQxNjcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6
-NThdICAgZ2ZuOiAwMDAwNDE2OCAgbWZuOiAwMDAwNDE2OA0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMTo1OF0gICBnZm46IDAwMDA0MTY5ICBtZm46IDAwMDA0MTY5DQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMxOjU4XSAgIGdmbjogMDAwMDQxNmEgIG1mbjogMDAwMDQxNmENCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NThdICAgZ2ZuOiAwMDAwNDE2YiAgbWZuOiAwMDAw
-NDE2Yg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1OF0gICBnZm46IDAwMDA0MTZjICBt
-Zm46IDAwMDA0MTZjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU4XSAgIGdmbjogMDAw
-MDQxNmQgIG1mbjogMDAwMDQxNmQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NThdICAg
-Z2ZuOiAwMDAwNDE2ZSAgbWZuOiAwMDAwNDE2ZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-MTo1OF0gICBnZm46IDAwMDA0MTZmICBtZm46IDAwMDA0MTZmDQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMxOjU4XSAgIGdmbjogMDAwMDQxNzAgIG1mbjogMDAwMDQxNzANCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzE6NThdICAgZ2ZuOiAwMDAwNDE3MSAgbWZuOiAwMDAwNDE3MQ0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1OF0gICBnZm46IDAwMDA0MTcyICBtZm46IDAw
-MDA0MTcyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU4XSAgIGdmbjogMDAwMDQxNzMg
-IG1mbjogMDAwMDQxNzMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NThdICAgZ2ZuOiAw
-MDAwNDE3NCAgbWZuOiAwMDAwNDE3NA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1OF0g
-ICBnZm46IDAwMDA0MTc1ICBtZm46IDAwMDA0MTc1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMxOjU4XSAgIGdmbjogMDAwMDQxNzYgIG1mbjogMDAwMDQxNzYNCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzE6NThdICAgZ2ZuOiAwMDAwNDE3NyAgbWZuOiAwMDAwNDE3Nw0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMTo1OF0gICBnZm46IDAwMDA0MTc4ICBtZm46IDAwMDA0MTc4
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU4XSAgIGdmbjogMDAwMDQxNzkgIG1mbjog
-MDAwMDQxNzkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTldICAgZ2ZuOiAwMDAwNDE3
-YSAgbWZuOiAwMDAwNDE3YQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1OV0gICBnZm46
-IDAwMDA0MTdiICBtZm46IDAwMDA0MTdiDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU5
-XSAgIGdmbjogMDAwMDQxN2MgIG1mbjogMDAwMDQxN2MNCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzE6NTldICAgZ2ZuOiAwMDAwNDE3ZCAgbWZuOiAwMDAwNDE3ZA0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMTo1OV0gICBnZm46IDAwMDA0MTdlICBtZm46IDAwMDA0MTdlDQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU5XSAgIGdmbjogMDAwMDQxN2YgIG1mbjogMDAwMDQx
-N2YNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTldICAgZ2ZuOiAwMDAwNDE4MCAgbWZu
-OiAwMDAwNDE4MA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1OV0gICBnZm46IDAwMDA0
-MTgxICBtZm46IDAwMDA0MTgxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU5XSAgIGdm
-bjogMDAwMDQxODIgIG1mbjogMDAwMDQxODINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6
-NTldICAgZ2ZuOiAwMDAwNDE4MyAgbWZuOiAwMDAwNDE4Mw0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMTo1OV0gICBnZm46IDAwMDA0MTg0ICBtZm46IDAwMDA0MTg0DQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMxOjU5XSAgIGdmbjogMDAwMDQxODUgIG1mbjogMDAwMDQxODUNCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTldICAgZ2ZuOiAwMDAwNDE4NiAgbWZuOiAwMDAw
-NDE4Ng0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1OV0gICBnZm46IDAwMDA0MTg3ICBt
-Zm46IDAwMDA0MTg3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU5XSAgIGdmbjogMDAw
-MDQxODggIG1mbjogMDAwMDQxODgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTldICAg
-Z2ZuOiAwMDAwNDE4OSAgbWZuOiAwMDAwNDE4OQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-MTo1OV0gICBnZm46IDAwMDA0MThhICBtZm46IDAwMDA0MThhDQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMxOjU5XSAgIGdmbjogMDAwMDQxOGIgIG1mbjogMDAwMDQxOGINCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzE6NTldICAgZ2ZuOiAwMDAwNDE4YyAgbWZuOiAwMDAwNDE4Yw0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1OV0gICBnZm46IDAwMDA0MThkICBtZm46IDAw
-MDA0MThkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU5XSAgIGdmbjogMDAwMDQxOGUg
-IG1mbjogMDAwMDQxOGUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTldICAgZ2ZuOiAw
-MDAwNDE4ZiAgbWZuOiAwMDAwNDE4Zg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1OV0g
-ICBnZm46IDAwMDA0MTkwICBtZm46IDAwMDA0MTkwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMxOjU5XSAgIGdmbjogMDAwMDQxOTEgIG1mbjogMDAwMDQxOTENCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzE6NTldICAgZ2ZuOiAwMDAwNDE5MiAgbWZuOiAwMDAwNDE5Mg0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMTo1OV0gICBnZm46IDAwMDA0MTkzICBtZm46IDAwMDA0MTkz
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU5XSAgIGdmbjogMDAwMDQxOTQgIG1mbjog
-MDAwMDQxOTQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTldICAgZ2ZuOiAwMDAwNDE5
-NSAgbWZuOiAwMDAwNDE5NQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1OV0gICBnZm46
-IDAwMDA0MTk2ICBtZm46IDAwMDA0MTk2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU5
-XSAgIGdmbjogMDAwMDQxOTcgIG1mbjogMDAwMDQxOTcNCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzE6NTldICAgZ2ZuOiAwMDAwNDE5OCAgbWZuOiAwMDAwNDE5OA0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMTo1OV0gICBnZm46IDAwMDA0MTk5ICBtZm46IDAwMDA0MTk5DQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU5XSAgIGdmbjogMDAwMDQxOWEgIG1mbjogMDAwMDQx
-OWENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTldICAgZ2ZuOiAwMDAwNDE5YiAgbWZu
-OiAwMDAwNDE5Yg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1OV0gICBnZm46IDAwMDA0
-MTljICBtZm46IDAwMDA0MTljDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU5XSAgIGdm
-bjogMDAwMDQxOWQgIG1mbjogMDAwMDQxOWQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6
-NTldICAgZ2ZuOiAwMDAwNDE5ZSAgbWZuOiAwMDAwNDE5ZQ0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMTo1OV0gICBnZm46IDAwMDA0MTlmICBtZm46IDAwMDA0MTlmDQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMxOjU5XSAgIGdmbjogMDAwMDQxYTAgIG1mbjogMDAwMDQxYTANCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTldICAgZ2ZuOiAwMDAwNDFhMSAgbWZuOiAwMDAw
-NDFhMQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1OV0gICBnZm46IDAwMDA0MWEyICBt
-Zm46IDAwMDA0MWEyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU5XSAgIGdmbjogMDAw
-MDQxYTMgIG1mbjogMDAwMDQxYTMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTldICAg
-Z2ZuOiAwMDAwNDFhNCAgbWZuOiAwMDAwNDFhNA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-MTo1OV0gICBnZm46IDAwMDA0MWE1ICBtZm46IDAwMDA0MWE1DQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMxOjU5XSAgIGdmbjogMDAwMDQxYTYgIG1mbjogMDAwMDQxYTYNCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzE6NTldICAgZ2ZuOiAwMDAwNDFhNyAgbWZuOiAwMDAwNDFhNw0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1OV0gICBnZm46IDAwMDA0MWE4ICBtZm46IDAw
-MDA0MWE4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU5XSAgIGdmbjogMDAwMDQxYTkg
-IG1mbjogMDAwMDQxYTkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTldICAgZ2ZuOiAw
-MDAwNDFhYSAgbWZuOiAwMDAwNDFhYQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1OV0g
-ICBnZm46IDAwMDA0MWFiICBtZm46IDAwMDA0MWFiDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMxOjU5XSAgIGdmbjogMDAwMDQxYWMgIG1mbjogMDAwMDQxYWMNCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzE6NTldICAgZ2ZuOiAwMDAwNDFhZCAgbWZuOiAwMDAwNDFhZA0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMTo1OV0gICBnZm46IDAwMDA0MWFlICBtZm46IDAwMDA0MWFl
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU5XSAgIGdmbjogMDAwMDQxYWYgIG1mbjog
-MDAwMDQxYWYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTldICAgZ2ZuOiAwMDAwNDFi
-MCAgbWZuOiAwMDAwNDFiMA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1OV0gICBnZm46
-IDAwMDA0MWIxICBtZm46IDAwMDA0MWIxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU5
-XSAgIGdmbjogMDAwMDQxYjIgIG1mbjogMDAwMDQxYjINCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzE6NTldICAgZ2ZuOiAwMDAwNDFiMyAgbWZuOiAwMDAwNDFiMw0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMTo1OV0gICBnZm46IDAwMDA0MWI0ICBtZm46IDAwMDA0MWI0DQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU5XSAgIGdmbjogMDAwMDQxYjUgIG1mbjogMDAwMDQx
-YjUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6NTldICAgZ2ZuOiAwMDAwNDFiNiAgbWZu
-OiAwMDAwNDFiNg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMTo1OV0gICBnZm46IDAwMDA0
-MWI3ICBtZm46IDAwMDA0MWI3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMxOjU5XSAgIGdm
-bjogMDAwMDQxYjggIG1mbjogMDAwMDQxYjgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzE6
-NTldICAgZ2ZuOiAwMDAwNDFiOSAgbWZuOiAwMDAwNDFiOQ0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMjowMF0gICBnZm46IDAwMDA0MWJhICBtZm46IDAwMDA0MWJhDQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMyOjAwXSAgIGdmbjogMDAwMDQxYmIgIG1mbjogMDAwMDQxYmINCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDBdICAgZ2ZuOiAwMDAwNDFiYyAgbWZuOiAwMDAw
-NDFiYw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowMF0gICBnZm46IDAwMDA0MWJkICBt
-Zm46IDAwMDA0MWJkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjAwXSAgIGdmbjogMDAw
-MDQxYmUgIG1mbjogMDAwMDQxYmUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDBdICAg
-Z2ZuOiAwMDAwNDFiZiAgbWZuOiAwMDAwNDFiZg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-MjowMF0gICBnZm46IDAwMDA0MWMwICBtZm46IDAwMDA0MWMwDQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMyOjAwXSAgIGdmbjogMDAwMDQxYzEgIG1mbjogMDAwMDQxYzENCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzI6MDBdICAgZ2ZuOiAwMDAwNDFjMiAgbWZuOiAwMDAwNDFjMg0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowMF0gICBnZm46IDAwMDA0MWMzICBtZm46IDAw
-MDA0MWMzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjAwXSAgIGdmbjogMDAwMDQxYzQg
-IG1mbjogMDAwMDQxYzQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDBdICAgZ2ZuOiAw
-MDAwNDFjNSAgbWZuOiAwMDAwNDFjNQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowMF0g
-ICBnZm46IDAwMDA0MWM2ICBtZm46IDAwMDA0MWM2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMyOjAwXSAgIGdmbjogMDAwMDQxYzcgIG1mbjogMDAwMDQxYzcNCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzI6MDBdICAgZ2ZuOiAwMDAwNDFjOCAgbWZuOiAwMDAwNDFjOA0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMjowMF0gICBnZm46IDAwMDA0MWM5ICBtZm46IDAwMDA0MWM5
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjAwXSAgIGdmbjogMDAwMDQxY2EgIG1mbjog
-MDAwMDQxY2ENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDBdICAgZ2ZuOiAwMDAwNDFj
-YiAgbWZuOiAwMDAwNDFjYg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowMF0gICBnZm46
-IDAwMDA0MWNjICBtZm46IDAwMDA0MWNjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjAw
-XSAgIGdmbjogMDAwMDQxY2QgIG1mbjogMDAwMDQxY2QNCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzI6MDBdICAgZ2ZuOiAwMDAwNDFjZSAgbWZuOiAwMDAwNDFjZQ0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMjowMF0gICBnZm46IDAwMDA0MWNmICBtZm46IDAwMDA0MWNmDQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjAwXSAgIGdmbjogMDAwMDQxZDAgIG1mbjogMDAwMDQx
-ZDANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDBdICAgZ2ZuOiAwMDAwNDFkMSAgbWZu
-OiAwMDAwNDFkMQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowMF0gICBnZm46IDAwMDA0
-MWQyICBtZm46IDAwMDA0MWQyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjAwXSAgIGdm
-bjogMDAwMDQxZDMgIG1mbjogMDAwMDQxZDMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
-MDBdICAgZ2ZuOiAwMDAwNDFkNCAgbWZuOiAwMDAwNDFkNA0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMjowMF0gICBnZm46IDAwMDA0MWQ1ICBtZm46IDAwMDA0MWQ1DQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMyOjAwXSAgIGdmbjogMDAwMDQxZDYgIG1mbjogMDAwMDQxZDYNCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDBdICAgZ2ZuOiAwMDAwNDFkNyAgbWZuOiAwMDAw
-NDFkNw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowMF0gICBnZm46IDAwMDA0MWQ4ICBt
-Zm46IDAwMDA0MWQ4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjAwXSAgIGdmbjogMDAw
-MDQxZDkgIG1mbjogMDAwMDQxZDkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDBdICAg
-Z2ZuOiAwMDAwNDFkYSAgbWZuOiAwMDAwNDFkYQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-MjowMF0gICBnZm46IDAwMDA0MWRiICBtZm46IDAwMDA0MWRiDQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMyOjAwXSAgIGdmbjogMDAwMDQxZGMgIG1mbjogMDAwMDQxZGMNCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzI6MDBdICAgZ2ZuOiAwMDAwNDFkZCAgbWZuOiAwMDAwNDFkZA0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowMF0gICBnZm46IDAwMDA0MWRlICBtZm46IDAw
-MDA0MWRlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjAwXSAgIGdmbjogMDAwMDQxZGYg
-IG1mbjogMDAwMDQxZGYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDBdICAgZ2ZuOiAw
-MDAwNDFlMCAgbWZuOiAwMDAwNDFlMA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowMF0g
-ICBnZm46IDAwMDA0MWUxICBtZm46IDAwMDA0MWUxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMyOjAwXSAgIGdmbjogMDAwMDQxZTIgIG1mbjogMDAwMDQxZTINCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzI6MDBdICAgZ2ZuOiAwMDAwNDFlMyAgbWZuOiAwMDAwNDFlMw0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMjowMF0gICBnZm46IDAwMDA0MWU0ICBtZm46IDAwMDA0MWU0
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjAwXSAgIGdmbjogMDAwMDQxZTUgIG1mbjog
-MDAwMDQxZTUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDBdICAgZ2ZuOiAwMDAwNDFl
-NiAgbWZuOiAwMDAwNDFlNg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowMF0gICBnZm46
-IDAwMDA0MWU3ICBtZm46IDAwMDA0MWU3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjAw
-XSAgIGdmbjogMDAwMDQxZTggIG1mbjogMDAwMDQxZTgNCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzI6MDBdICAgZ2ZuOiAwMDAwNDFlOSAgbWZuOiAwMDAwNDFlOQ0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMjowMF0gICBnZm46IDAwMDA0MWVhICBtZm46IDAwMDA0MWVhDQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjAwXSAgIGdmbjogMDAwMDQxZWIgIG1mbjogMDAwMDQx
-ZWINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDBdICAgZ2ZuOiAwMDAwNDFlYyAgbWZu
-OiAwMDAwNDFlYw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowMF0gICBnZm46IDAwMDA0
-MWVkICBtZm46IDAwMDA0MWVkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjAwXSAgIGdm
-bjogMDAwMDQxZWUgIG1mbjogMDAwMDQxZWUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
-MDBdICAgZ2ZuOiAwMDAwNDFlZiAgbWZuOiAwMDAwNDFlZg0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMjowMF0gICBnZm46IDAwMDA0MWYwICBtZm46IDAwMDA0MWYwDQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMyOjAwXSAgIGdmbjogMDAwMDQxZjEgIG1mbjogMDAwMDQxZjENCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDBdICAgZ2ZuOiAwMDAwNDFmMiAgbWZuOiAwMDAw
-NDFmMg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowMF0gICBnZm46IDAwMDA0MWYzICBt
-Zm46IDAwMDA0MWYzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjAwXSAgIGdmbjogMDAw
-MDQxZjQgIG1mbjogMDAwMDQxZjQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDBdICAg
-Z2ZuOiAwMDAwNDFmNSAgbWZuOiAwMDAwNDFmNQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-MjowMF0gICBnZm46IDAwMDA0MWY2ICBtZm46IDAwMDA0MWY2DQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMyOjAwXSAgIGdmbjogMDAwMDQxZjcgIG1mbjogMDAwMDQxZjcNCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzI6MDBdICAgZ2ZuOiAwMDAwNDFmOCAgbWZuOiAwMDAwNDFmOA0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowMF0gICBnZm46IDAwMDA0MWY5ICBtZm46IDAw
-MDA0MWY5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjAxXSAgIGdmbjogMDAwMDQxZmEg
-IG1mbjogMDAwMDQxZmENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDFdICAgZ2ZuOiAw
-MDAwNDFmYiAgbWZuOiAwMDAwNDFmYg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowMV0g
-ICBnZm46IDAwMDA0MWZjICBtZm46IDAwMDA0MWZjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMyOjAxXSAgIGdmbjogMDAwMDQxZmQgIG1mbjogMDAwMDQxZmQNCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzI6MDFdICAgZ2ZuOiAwMDAwNDFmZSAgbWZuOiAwMDAwNDFmZQ0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMjowMV0gICBnZm46IDAwMDA0MWZmICBtZm46IDAwMDA0MWZm
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjAxXSAgIGdmbjogMDAwMDQyMDAgIG1mbjog
-MDAwMDQyMDANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDFdICAgZ2ZuOiAwMDAwNDIw
-MSAgbWZuOiAwMDAwNDIwMQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowMV0gICBnZm46
-IDAwMDA0MjAyICBtZm46IDAwMDA0MjAyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjAx
-XSAgIGdmbjogMDAwMDQyMDMgIG1mbjogMDAwMDQyMDMNCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzI6MDFdICAgZ2ZuOiAwMDAwNDIwNCAgbWZuOiAwMDAwNDIwNA0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMjowMV0gICBnZm46IDAwMDA0MjA1ICBtZm46IDAwMDA0MjA1DQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjAxXSAgIGdmbjogMDAwMDQyMDYgIG1mbjogMDAwMDQy
-MDYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDFdICAgZ2ZuOiAwMDAwNDIwNyAgbWZu
-OiAwMDAwNDIwNw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowMV0gICBnZm46IDAwMDA0
-MjA4ICBtZm46IDAwMDA0MjA4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjAxXSAgIGdm
-bjogMDAwMDQyMDkgIG1mbjogMDAwMDQyMDkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
-MDFdICAgZ2ZuOiAwMDAwNDIwYSAgbWZuOiAwMDAwNDIwYQ0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMjowMV0gICBnZm46IDAwMDA0MjBiICBtZm46IDAwMDA0MjBiDQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMyOjAxXSAgIGdmbjogMDAwMDQyMGMgIG1mbjogMDAwMDQyMGMNCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDFdICAgZ2ZuOiAwMDAwNDIwZCAgbWZuOiAwMDAw
-NDIwZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowMV0gICBnZm46IDAwMDA0MjBlICBt
-Zm46IDAwMDA0MjBlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjAxXSAgIGdmbjogMDAw
-MDQyMGYgIG1mbjogMDAwMDQyMGYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDFdICAg
-Z2ZuOiAwMDAwNDIxMCAgbWZuOiAwMDAwNDIxMA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-MjowMV0gICBnZm46IDAwMDA0MjExICBtZm46IDAwMDA0MjExDQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMyOjAxXSAgIGdmbjogMDAwMDQyMTIgIG1mbjogMDAwMDQyMTINCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzI6MDFdICAgZ2ZuOiAwMDAwNDIxMyAgbWZuOiAwMDAwNDIxMw0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowMV0gICBnZm46IDAwMDA0MjE0ICBtZm46IDAw
-MDA0MjE0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjAxXSAgIGdmbjogMDAwMDQyMTUg
-IG1mbjogMDAwMDQyMTUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDFdICAgZ2ZuOiAw
-MDAwNDIxNiAgbWZuOiAwMDAwNDIxNg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowMV0g
-ICBnZm46IDAwMDA0MjE3ICBtZm46IDAwMDA0MjE3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMyOjAxXSAgIGdmbjogMDAwMDQyMTggIG1mbjogMDAwMDQyMTgNCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzI6MDFdICAgZ2ZuOiAwMDAwNDIxOSAgbWZuOiAwMDAwNDIxOQ0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMjowMV0gICBnZm46IDAwMDA0MjFhICBtZm46IDAwMDA0MjFh
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjAxXSAgIGdmbjogMDAwMDQyMWIgIG1mbjog
-MDAwMDQyMWINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDFdICAgZ2ZuOiAwMDAwNDIx
-YyAgbWZuOiAwMDAwNDIxYw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowMV0gICBnZm46
-IDAwMDA0MjFkICBtZm46IDAwMDA0MjFkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjAx
-XSAgIGdmbjogMDAwMDQyMWUgIG1mbjogMDAwMDQyMWUNCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzI6MDFdICAgZ2ZuOiAwMDAwNDIxZiAgbWZuOiAwMDAwNDIxZg0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMjowMV0gICBnZm46IDAwMDA0MjIwICBtZm46IDAwMDA0MjIwDQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjAxXSAgIGdmbjogMDAwMDQyMjEgIG1mbjogMDAwMDQy
-MjENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDFdICAgZ2ZuOiAwMDAwNDIyMiAgbWZu
-OiAwMDAwNDIyMg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowMV0gICBnZm46IDAwMDA0
-MjIzICBtZm46IDAwMDA0MjIzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjAxXSAgIGdm
-bjogMDAwMDQyMjQgIG1mbjogMDAwMDQyMjQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
-MDFdICAgZ2ZuOiAwMDAwNDIyNSAgbWZuOiAwMDAwNDIyNQ0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMjowMV0gICBnZm46IDAwMDA0MjI2ICBtZm46IDAwMDA0MjI2DQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMyOjAxXSAgIGdmbjogMDAwMDQyMjcgIG1mbjogMDAwMDQyMjcNCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDFdICAgZ2ZuOiAwMDAwNDIyOCAgbWZuOiAwMDAw
-NDIyOA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowMV0gICBnZm46IDAwMDA0MjI5ICBt
-Zm46IDAwMDA0MjI5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjAxXSAgIGdmbjogMDAw
-MDQyMmEgIG1mbjogMDAwMDQyMmENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDFdICAg
-Z2ZuOiAwMDAwNDIyYiAgbWZuOiAwMDAwNDIyYg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-MjowMV0gICBnZm46IDAwMDA0MjJjICBtZm46IDAwMDA0MjJjDQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMyOjAxXSAgIGdmbjogMDAwMDQyMmQgIG1mbjogMDAwMDQyMmQNCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzI6MDFdICAgZ2ZuOiAwMDAwNDIyZSAgbWZuOiAwMDAwNDIyZQ0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowMV0gICBnZm46IDAwMDA0MjJmICBtZm46IDAw
-MDA0MjJmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjAxXSAgIGdmbjogMDAwMDQyMzAg
-IG1mbjogMDAwMDQyMzANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDFdICAgZ2ZuOiAw
-MDAwNDIzMSAgbWZuOiAwMDAwNDIzMQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowMV0g
-ICBnZm46IDAwMDA0MjMyICBtZm46IDAwMDA0MjMyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMyOjAxXSAgIGdmbjogMDAwMDQyMzMgIG1mbjogMDAwMDQyMzMNCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzI6MDFdICAgZ2ZuOiAwMDAwNDIzNCAgbWZuOiAwMDAwNDIzNA0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMjowMV0gICBnZm46IDAwMDA0MjM1ICBtZm46IDAwMDA0MjM1
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjAxXSAgIGdmbjogMDAwMDQyMzYgIG1mbjog
-MDAwMDQyMzYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDFdICAgZ2ZuOiAwMDAwNDIz
-NyAgbWZuOiAwMDAwNDIzNw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowMV0gICBnZm46
-IDAwMDA0MjM4ICBtZm46IDAwMDA0MjM4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjAx
-XSAgIGdmbjogMDAwMDQyMzkgIG1mbjogMDAwMDQyMzkNCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzI6MDJdICAgZ2ZuOiAwMDAwNDIzYSAgbWZuOiAwMDAwNDIzYQ0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMjowMl0gICBnZm46IDAwMDA0MjNiICBtZm46IDAwMDA0MjNiDQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjAyXSAgIGdmbjogMDAwMDQyM2MgIG1mbjogMDAwMDQy
-M2MNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDJdICAgZ2ZuOiAwMDAwNDIzZCAgbWZu
-OiAwMDAwNDIzZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowMl0gICBnZm46IDAwMDA0
-MjNlICBtZm46IDAwMDA0MjNlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjAyXSAgIGdm
-bjogMDAwMDQyM2YgIG1mbjogMDAwMDQyM2YNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
-MDJdICAgZ2ZuOiAwMDAwNDI0MCAgbWZuOiAwMDAwNDI0MA0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMjowMl0gICBnZm46IDAwMDA0MjQxICBtZm46IDAwMDA0MjQxDQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMyOjAyXSAgIGdmbjogMDAwMDQyNDIgIG1mbjogMDAwMDQyNDINCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDJdICAgZ2ZuOiAwMDAwNDI0MyAgbWZuOiAwMDAw
-NDI0Mw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowMl0gICBnZm46IDAwMDA0MjQ0ICBt
-Zm46IDAwMDA0MjQ0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjAyXSAgIGdmbjogMDAw
-MDQyNDUgIG1mbjogMDAwMDQyNDUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDJdICAg
-Z2ZuOiAwMDAwNDI0NiAgbWZuOiAwMDAwNDI0Ng0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-MjowMl0gICBnZm46IDAwMDA0MjQ3ICBtZm46IDAwMDA0MjQ3DQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMyOjAyXSAgIGdmbjogMDAwMDQyNDggIG1mbjogMDAwMDQyNDgNCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzI6MDJdICAgZ2ZuOiAwMDAwNDI0OSAgbWZuOiAwMDAwNDI0OQ0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowMl0gICBnZm46IDAwMDA0MjRhICBtZm46IDAw
-MDA0MjRhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjAyXSAgIGdmbjogMDAwMDQyNGIg
-IG1mbjogMDAwMDQyNGINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDJdICAgZ2ZuOiAw
-MDAwNDI0YyAgbWZuOiAwMDAwNDI0Yw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowMl0g
-ICBnZm46IDAwMDA0MjRkICBtZm46IDAwMDA0MjRkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMyOjAyXSAgIGdmbjogMDAwMDQyNGUgIG1mbjogMDAwMDQyNGUNCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzI6MDJdICAgZ2ZuOiAwMDAwNDI0ZiAgbWZuOiAwMDAwNDI0Zg0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMjowMl0gICBnZm46IDAwMDA0MjUwICBtZm46IDAwMDA0MjUw
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjAyXSAgIGdmbjogMDAwMDQyNTEgIG1mbjog
-MDAwMDQyNTENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDJdICAgZ2ZuOiAwMDAwNDI1
-MiAgbWZuOiAwMDAwNDI1Mg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowMl0gICBnZm46
-IDAwMDA0MjUzICBtZm46IDAwMDA0MjUzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjAy
-XSAgIGdmbjogMDAwMDQyNTQgIG1mbjogMDAwMDQyNTQNCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzI6MDJdICAgZ2ZuOiAwMDAwNDI1NSAgbWZuOiAwMDAwNDI1NQ0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMjowMl0gICBnZm46IDAwMDA0MjU2ICBtZm46IDAwMDA0MjU2DQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjAyXSAgIGdmbjogMDAwMDQyNTcgIG1mbjogMDAwMDQy
-NTcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDJdICAgZ2ZuOiAwMDAwNDI1OCAgbWZu
-OiAwMDAwNDI1OA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowMl0gICBnZm46IDAwMDA0
-MjU5ICBtZm46IDAwMDA0MjU5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjAyXSAgIGdm
-bjogMDAwMDQyNWEgIG1mbjogMDAwMDQyNWENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
-MDJdICAgZ2ZuOiAwMDAwNDI1YiAgbWZuOiAwMDAwNDI1Yg0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMjowMl0gICBnZm46IDAwMDA0MjVjICBtZm46IDAwMDA0MjVjDQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMyOjAyXSAgIGdmbjogMDAwMDQyNWQgIG1mbjogMDAwMDQyNWQNCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDJdICAgZ2ZuOiAwMDAwNDI1ZSAgbWZuOiAwMDAw
-NDI1ZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowMl0gICBnZm46IDAwMDA0MjVmICBt
-Zm46IDAwMDA0MjVmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjAyXSAgIGdmbjogMDAw
-MDQyNjAgIG1mbjogMDAwMDQyNjANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDJdICAg
-Z2ZuOiAwMDAwNDI2MSAgbWZuOiAwMDAwNDI2MQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-MjowMl0gICBnZm46IDAwMDA0MjYyICBtZm46IDAwMDA0MjYyDQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMyOjAyXSAgIGdmbjogMDAwMDQyNjMgIG1mbjogMDAwMDQyNjMNCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzI6MDJdICAgZ2ZuOiAwMDAwNDI2NCAgbWZuOiAwMDAwNDI2NA0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowMl0gICBnZm46IDAwMDA0MjY1ICBtZm46IDAw
-MDA0MjY1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjAyXSAgIGdmbjogMDAwMDQyNjYg
-IG1mbjogMDAwMDQyNjYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDJdICAgZ2ZuOiAw
-MDAwNDI2NyAgbWZuOiAwMDAwNDI2Nw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowMl0g
-ICBnZm46IDAwMDA0MjY4ICBtZm46IDAwMDA0MjY4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMyOjAyXSAgIGdmbjogMDAwMDQyNjkgIG1mbjogMDAwMDQyNjkNCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzI6MDJdICAgZ2ZuOiAwMDAwNDI2YSAgbWZuOiAwMDAwNDI2YQ0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMjowMl0gICBnZm46IDAwMDA0MjZiICBtZm46IDAwMDA0MjZi
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjAyXSAgIGdmbjogMDAwMDQyNmMgIG1mbjog
-MDAwMDQyNmMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDJdICAgZ2ZuOiAwMDAwNDI2
-ZCAgbWZuOiAwMDAwNDI2ZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowMl0gICBnZm46
-IDAwMDA0MjZlICBtZm46IDAwMDA0MjZlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjAy
-XSAgIGdmbjogMDAwMDQyNmYgIG1mbjogMDAwMDQyNmYNCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzI6MDJdICAgZ2ZuOiAwMDAwNDI3MCAgbWZuOiAwMDAwNDI3MA0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMjowMl0gICBnZm46IDAwMDA0MjcxICBtZm46IDAwMDA0MjcxDQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjAyXSAgIGdmbjogMDAwMDQyNzIgIG1mbjogMDAwMDQy
-NzINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDJdICAgZ2ZuOiAwMDAwNDI3MyAgbWZu
-OiAwMDAwNDI3Mw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowMl0gICBnZm46IDAwMDA0
-Mjc0ICBtZm46IDAwMDA0Mjc0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjAyXSAgIGdm
-bjogMDAwMDQyNzUgIG1mbjogMDAwMDQyNzUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
-MDJdICAgZ2ZuOiAwMDAwNDI3NiAgbWZuOiAwMDAwNDI3Ng0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMjowMl0gICBnZm46IDAwMDA0Mjc3ICBtZm46IDAwMDA0Mjc3DQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMyOjAyXSAgIGdmbjogMDAwMDQyNzggIG1mbjogMDAwMDQyNzgNCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDJdICAgZ2ZuOiAwMDAwNDI3OSAgbWZuOiAwMDAw
-NDI3OQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowM10gICBnZm46IDAwMDA0MjdhICBt
-Zm46IDAwMDA0MjdhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjAzXSAgIGdmbjogMDAw
-MDQyN2IgIG1mbjogMDAwMDQyN2INCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDNdICAg
-Z2ZuOiAwMDAwNDI3YyAgbWZuOiAwMDAwNDI3Yw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-MjowM10gICBnZm46IDAwMDA0MjdkICBtZm46IDAwMDA0MjdkDQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMyOjAzXSAgIGdmbjogMDAwMDQyN2UgIG1mbjogMDAwMDQyN2UNCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzI6MDNdICAgZ2ZuOiAwMDAwNDI3ZiAgbWZuOiAwMDAwNDI3Zg0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowM10gICBnZm46IDAwMDA0MjgwICBtZm46IDAw
-MDA0MjgwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjAzXSAgIGdmbjogMDAwMDQyODEg
-IG1mbjogMDAwMDQyODENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDNdICAgZ2ZuOiAw
-MDAwNDI4MiAgbWZuOiAwMDAwNDI4Mg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowM10g
-ICBnZm46IDAwMDA0MjgzICBtZm46IDAwMDA0MjgzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMyOjAzXSAgIGdmbjogMDAwMDQyODQgIG1mbjogMDAwMDQyODQNCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzI6MDNdICAgZ2ZuOiAwMDAwNDI4NSAgbWZuOiAwMDAwNDI4NQ0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMjowM10gICBnZm46IDAwMDA0Mjg2ICBtZm46IDAwMDA0Mjg2
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjAzXSAgIGdmbjogMDAwMDQyODcgIG1mbjog
-MDAwMDQyODcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDNdICAgZ2ZuOiAwMDAwNDI4
-OCAgbWZuOiAwMDAwNDI4OA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowM10gICBnZm46
-IDAwMDA0Mjg5ICBtZm46IDAwMDA0Mjg5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjAz
-XSAgIGdmbjogMDAwMDQyOGEgIG1mbjogMDAwMDQyOGENCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzI6MDNdICAgZ2ZuOiAwMDAwNDI4YiAgbWZuOiAwMDAwNDI4Yg0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMjowM10gICBnZm46IDAwMDA0MjhjICBtZm46IDAwMDA0MjhjDQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjAzXSAgIGdmbjogMDAwMDQyOGQgIG1mbjogMDAwMDQy
-OGQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDNdICAgZ2ZuOiAwMDAwNDI4ZSAgbWZu
-OiAwMDAwNDI4ZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowM10gICBnZm46IDAwMDA0
-MjhmICBtZm46IDAwMDA0MjhmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjAzXSAgIGdm
-bjogMDAwMDQyOTAgIG1mbjogMDAwMDQyOTANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
-MDNdICAgZ2ZuOiAwMDAwNDI5MSAgbWZuOiAwMDAwNDI5MQ0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMjowM10gICBnZm46IDAwMDA0MjkyICBtZm46IDAwMDA0MjkyDQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMyOjAzXSAgIGdmbjogMDAwMDQyOTMgIG1mbjogMDAwMDQyOTMNCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDNdICAgZ2ZuOiAwMDAwNDI5NCAgbWZuOiAwMDAw
-NDI5NA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowM10gICBnZm46IDAwMDA0Mjk1ICBt
-Zm46IDAwMDA0Mjk1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjAzXSAgIGdmbjogMDAw
-MDQyOTYgIG1mbjogMDAwMDQyOTYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDNdICAg
-Z2ZuOiAwMDAwNDI5NyAgbWZuOiAwMDAwNDI5Nw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-MjowM10gICBnZm46IDAwMDA0Mjk4ICBtZm46IDAwMDA0Mjk4DQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMyOjAzXSAgIGdmbjogMDAwMDQyOTkgIG1mbjogMDAwMDQyOTkNCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzI6MDNdICAgZ2ZuOiAwMDAwNDI5YSAgbWZuOiAwMDAwNDI5YQ0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowM10gICBnZm46IDAwMDA0MjliICBtZm46IDAw
-MDA0MjliDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjAzXSAgIGdmbjogMDAwMDQyOWMg
-IG1mbjogMDAwMDQyOWMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDNdICAgZ2ZuOiAw
-MDAwNDI5ZCAgbWZuOiAwMDAwNDI5ZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowM10g
-ICBnZm46IDAwMDA0MjllICBtZm46IDAwMDA0MjllDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMyOjAzXSAgIGdmbjogMDAwMDQyOWYgIG1mbjogMDAwMDQyOWYNCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzI6MDNdICAgZ2ZuOiAwMDAwNDJhMCAgbWZuOiAwMDAwNDJhMA0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMjowM10gICBnZm46IDAwMDA0MmExICBtZm46IDAwMDA0MmEx
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjAzXSAgIGdmbjogMDAwMDQyYTIgIG1mbjog
-MDAwMDQyYTINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDNdICAgZ2ZuOiAwMDAwNDJh
-MyAgbWZuOiAwMDAwNDJhMw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowM10gICBnZm46
-IDAwMDA0MmE0ICBtZm46IDAwMDA0MmE0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjAz
-XSAgIGdmbjogMDAwMDQyYTUgIG1mbjogMDAwMDQyYTUNCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzI6MDNdICAgZ2ZuOiAwMDAwNDJhNiAgbWZuOiAwMDAwNDJhNg0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMjowM10gICBnZm46IDAwMDA0MmE3ICBtZm46IDAwMDA0MmE3DQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjAzXSAgIGdmbjogMDAwMDQyYTggIG1mbjogMDAwMDQy
-YTgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDNdICAgZ2ZuOiAwMDAwNDJhOSAgbWZu
-OiAwMDAwNDJhOQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowM10gICBnZm46IDAwMDA0
-MmFhICBtZm46IDAwMDA0MmFhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjAzXSAgIGdm
-bjogMDAwMDQyYWIgIG1mbjogMDAwMDQyYWINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
-MDNdICAgZ2ZuOiAwMDAwNDJhYyAgbWZuOiAwMDAwNDJhYw0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMjowM10gICBnZm46IDAwMDA0MmFkICBtZm46IDAwMDA0MmFkDQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMyOjAzXSAgIGdmbjogMDAwMDQyYWUgIG1mbjogMDAwMDQyYWUNCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDNdICAgZ2ZuOiAwMDAwNDJhZiAgbWZuOiAwMDAw
-NDJhZg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowM10gICBnZm46IDAwMDA0MmIwICBt
-Zm46IDAwMDA0MmIwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjAzXSAgIGdmbjogMDAw
-MDQyYjEgIG1mbjogMDAwMDQyYjENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDNdICAg
-Z2ZuOiAwMDAwNDJiMiAgbWZuOiAwMDAwNDJiMg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-MjowM10gICBnZm46IDAwMDA0MmIzICBtZm46IDAwMDA0MmIzDQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMyOjAzXSAgIGdmbjogMDAwMDQyYjQgIG1mbjogMDAwMDQyYjQNCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzI6MDNdICAgZ2ZuOiAwMDAwNDJiNSAgbWZuOiAwMDAwNDJiNQ0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowM10gICBnZm46IDAwMDA0MmI2ICBtZm46IDAw
-MDA0MmI2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjAzXSAgIGdmbjogMDAwMDQyYjcg
-IG1mbjogMDAwMDQyYjcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDNdICAgZ2ZuOiAw
-MDAwNDJiOCAgbWZuOiAwMDAwNDJiOA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowM10g
-ICBnZm46IDAwMDA0MmI5ICBtZm46IDAwMDA0MmI5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMyOjA0XSAgIGdmbjogMDAwMDQyYmEgIG1mbjogMDAwMDQyYmENCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzI6MDRdICAgZ2ZuOiAwMDAwNDJiYiAgbWZuOiAwMDAwNDJiYg0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMjowNF0gICBnZm46IDAwMDA0MmJjICBtZm46IDAwMDA0MmJj
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA0XSAgIGdmbjogMDAwMDQyYmQgIG1mbjog
-MDAwMDQyYmQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDRdICAgZ2ZuOiAwMDAwNDJi
-ZSAgbWZuOiAwMDAwNDJiZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowNF0gICBnZm46
-IDAwMDA0MmJmICBtZm46IDAwMDA0MmJmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA0
-XSAgIGdmbjogMDAwMDQyYzAgIG1mbjogMDAwMDQyYzANCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzI6MDRdICAgZ2ZuOiAwMDAwNDJjMSAgbWZuOiAwMDAwNDJjMQ0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMjowNF0gICBnZm46IDAwMDA0MmMyICBtZm46IDAwMDA0MmMyDQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA0XSAgIGdmbjogMDAwMDQyYzMgIG1mbjogMDAwMDQy
-YzMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDRdICAgZ2ZuOiAwMDAwNDJjNCAgbWZu
-OiAwMDAwNDJjNA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowNF0gICBnZm46IDAwMDA0
-MmM1ICBtZm46IDAwMDA0MmM1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA0XSAgIGdm
-bjogMDAwMDQyYzYgIG1mbjogMDAwMDQyYzYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
-MDRdICAgZ2ZuOiAwMDAwNDJjNyAgbWZuOiAwMDAwNDJjNw0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMjowNF0gICBnZm46IDAwMDA0MmM4ICBtZm46IDAwMDA0MmM4DQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMyOjA0XSAgIGdmbjogMDAwMDQyYzkgIG1mbjogMDAwMDQyYzkNCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDRdICAgZ2ZuOiAwMDAwNDJjYSAgbWZuOiAwMDAw
-NDJjYQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowNF0gICBnZm46IDAwMDA0MmNiICBt
-Zm46IDAwMDA0MmNiDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA0XSAgIGdmbjogMDAw
-MDQyY2MgIG1mbjogMDAwMDQyY2MNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDRdICAg
-Z2ZuOiAwMDAwNDJjZCAgbWZuOiAwMDAwNDJjZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-MjowNF0gICBnZm46IDAwMDA0MmNlICBtZm46IDAwMDA0MmNlDQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMyOjA0XSAgIGdmbjogMDAwMDQyY2YgIG1mbjogMDAwMDQyY2YNCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzI6MDRdICAgZ2ZuOiAwMDAwNDJkMCAgbWZuOiAwMDAwNDJkMA0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowNF0gICBnZm46IDAwMDA0MmQxICBtZm46IDAw
-MDA0MmQxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA0XSAgIGdmbjogMDAwMDQyZDIg
-IG1mbjogMDAwMDQyZDINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDRdICAgZ2ZuOiAw
-MDAwNDJkMyAgbWZuOiAwMDAwNDJkMw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowNF0g
-ICBnZm46IDAwMDA0MmQ0ICBtZm46IDAwMDA0MmQ0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMyOjA0XSAgIGdmbjogMDAwMDQyZDUgIG1mbjogMDAwMDQyZDUNCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzI6MDRdICAgZ2ZuOiAwMDAwNDJkNiAgbWZuOiAwMDAwNDJkNg0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMjowNF0gICBnZm46IDAwMDA0MmQ3ICBtZm46IDAwMDA0MmQ3
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA0XSAgIGdmbjogMDAwMDQyZDggIG1mbjog
-MDAwMDQyZDgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDRdICAgZ2ZuOiAwMDAwNDJk
-OSAgbWZuOiAwMDAwNDJkOQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowNF0gICBnZm46
-IDAwMDA0MmRhICBtZm46IDAwMDA0MmRhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA0
-XSAgIGdmbjogMDAwMDQyZGIgIG1mbjogMDAwMDQyZGINCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzI6MDRdICAgZ2ZuOiAwMDAwNDJkYyAgbWZuOiAwMDAwNDJkYw0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMjowNF0gICBnZm46IDAwMDA0MmRkICBtZm46IDAwMDA0MmRkDQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA0XSAgIGdmbjogMDAwMDQyZGUgIG1mbjogMDAwMDQy
-ZGUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDRdICAgZ2ZuOiAwMDAwNDJkZiAgbWZu
-OiAwMDAwNDJkZg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowNF0gICBnZm46IDAwMDA0
-MmUwICBtZm46IDAwMDA0MmUwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA0XSAgIGdm
-bjogMDAwMDQyZTEgIG1mbjogMDAwMDQyZTENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
-MDRdICAgZ2ZuOiAwMDAwNDJlMiAgbWZuOiAwMDAwNDJlMg0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMjowNF0gICBnZm46IDAwMDA0MmUzICBtZm46IDAwMDA0MmUzDQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMyOjA0XSAgIGdmbjogMDAwMDQyZTQgIG1mbjogMDAwMDQyZTQNCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDRdICAgZ2ZuOiAwMDAwNDJlNSAgbWZuOiAwMDAw
-NDJlNQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowNF0gICBnZm46IDAwMDA0MmU2ICBt
-Zm46IDAwMDA0MmU2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA0XSAgIGdmbjogMDAw
-MDQyZTcgIG1mbjogMDAwMDQyZTcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDRdICAg
-Z2ZuOiAwMDAwNDJlOCAgbWZuOiAwMDAwNDJlOA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-MjowNF0gICBnZm46IDAwMDA0MmU5ICBtZm46IDAwMDA0MmU5DQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMyOjA0XSAgIGdmbjogMDAwMDQyZWEgIG1mbjogMDAwMDQyZWENCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzI6MDRdICAgZ2ZuOiAwMDAwNDJlYiAgbWZuOiAwMDAwNDJlYg0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowNF0gICBnZm46IDAwMDA0MmVjICBtZm46IDAw
-MDA0MmVjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA0XSAgIGdmbjogMDAwMDQyZWQg
-IG1mbjogMDAwMDQyZWQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDRdICAgZ2ZuOiAw
-MDAwNDJlZSAgbWZuOiAwMDAwNDJlZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowNF0g
-ICBnZm46IDAwMDA0MmVmICBtZm46IDAwMDA0MmVmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMyOjA0XSAgIGdmbjogMDAwMDQyZjAgIG1mbjogMDAwMDQyZjANCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzI6MDRdICAgZ2ZuOiAwMDAwNDJmMSAgbWZuOiAwMDAwNDJmMQ0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMjowNF0gICBnZm46IDAwMDA0MmYyICBtZm46IDAwMDA0MmYy
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA0XSAgIGdmbjogMDAwMDQyZjMgIG1mbjog
-MDAwMDQyZjMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDRdICAgZ2ZuOiAwMDAwNDJm
-NCAgbWZuOiAwMDAwNDJmNA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowNF0gICBnZm46
-IDAwMDA0MmY1ICBtZm46IDAwMDA0MmY1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA0
-XSAgIGdmbjogMDAwMDQyZjYgIG1mbjogMDAwMDQyZjYNCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzI6MDRdICAgZ2ZuOiAwMDAwNDJmNyAgbWZuOiAwMDAwNDJmNw0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMjowNF0gICBnZm46IDAwMDA0MmY4ICBtZm46IDAwMDA0MmY4DQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA0XSAgIGdmbjogMDAwMDQyZjkgIG1mbjogMDAwMDQy
-ZjkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDRdICAgZ2ZuOiAwMDAwNDJmYSAgbWZu
-OiAwMDAwNDJmYQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowNV0gICBnZm46IDAwMDA0
-MmZiICBtZm46IDAwMDA0MmZiDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA1XSAgIGdm
-bjogMDAwMDQyZmMgIG1mbjogMDAwMDQyZmMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
-MDVdICAgZ2ZuOiAwMDAwNDJmZCAgbWZuOiAwMDAwNDJmZA0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMjowNV0gICBnZm46IDAwMDA0MmZlICBtZm46IDAwMDA0MmZlDQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMyOjA1XSAgIGdmbjogMDAwMDQyZmYgIG1mbjogMDAwMDQyZmYNCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDVdICAgZ2ZuOiAwMDAwNDMwMCAgbWZuOiAwMDAw
-NDMwMA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowNV0gICBnZm46IDAwMDA0MzAxICBt
-Zm46IDAwMDA0MzAxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA1XSAgIGdmbjogMDAw
-MDQzMDIgIG1mbjogMDAwMDQzMDINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDVdICAg
-Z2ZuOiAwMDAwNDMwMyAgbWZuOiAwMDAwNDMwMw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-MjowNV0gICBnZm46IDAwMDA0MzA0ICBtZm46IDAwMDA0MzA0DQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMyOjA1XSAgIGdmbjogMDAwMDQzMDUgIG1mbjogMDAwMDQzMDUNCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzI6MDVdICAgZ2ZuOiAwMDAwNDMwNiAgbWZuOiAwMDAwNDMwNg0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowNV0gICBnZm46IDAwMDA0MzA3ICBtZm46IDAw
-MDA0MzA3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA1XSAgIGdmbjogMDAwMDQzMDgg
-IG1mbjogMDAwMDQzMDgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDVdICAgZ2ZuOiAw
-MDAwNDMwOSAgbWZuOiAwMDAwNDMwOQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowNV0g
-ICBnZm46IDAwMDA0MzBhICBtZm46IDAwMDA0MzBhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMyOjA1XSAgIGdmbjogMDAwMDQzMGIgIG1mbjogMDAwMDQzMGINCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzI6MDVdICAgZ2ZuOiAwMDAwNDMwYyAgbWZuOiAwMDAwNDMwYw0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMjowNV0gICBnZm46IDAwMDA0MzBkICBtZm46IDAwMDA0MzBk
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA1XSAgIGdmbjogMDAwMDQzMGUgIG1mbjog
-MDAwMDQzMGUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDVdICAgZ2ZuOiAwMDAwNDMw
-ZiAgbWZuOiAwMDAwNDMwZg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowNV0gICBnZm46
-IDAwMDA0MzEwICBtZm46IDAwMDA0MzEwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA1
-XSAgIGdmbjogMDAwMDQzMTEgIG1mbjogMDAwMDQzMTENCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzI6MDVdICAgZ2ZuOiAwMDAwNDMxMiAgbWZuOiAwMDAwNDMxMg0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMjowNV0gICBnZm46IDAwMDA0MzEzICBtZm46IDAwMDA0MzEzDQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA1XSAgIGdmbjogMDAwMDQzMTQgIG1mbjogMDAwMDQz
-MTQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDVdICAgZ2ZuOiAwMDAwNDMxNSAgbWZu
-OiAwMDAwNDMxNQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowNV0gICBnZm46IDAwMDA0
-MzE2ICBtZm46IDAwMDA0MzE2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA1XSAgIGdm
-bjogMDAwMDQzMTcgIG1mbjogMDAwMDQzMTcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
-MDVdICAgZ2ZuOiAwMDAwNDMxOCAgbWZuOiAwMDAwNDMxOA0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMjowNV0gICBnZm46IDAwMDA0MzE5ICBtZm46IDAwMDA0MzE5DQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMyOjA1XSAgIGdmbjogMDAwMDQzMWEgIG1mbjogMDAwMDQzMWENCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDVdICAgZ2ZuOiAwMDAwNDMxYiAgbWZuOiAwMDAw
-NDMxYg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowNV0gICBnZm46IDAwMDA0MzFjICBt
-Zm46IDAwMDA0MzFjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA1XSAgIGdmbjogMDAw
-MDQzMWQgIG1mbjogMDAwMDQzMWQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDVdICAg
-Z2ZuOiAwMDAwNDMxZSAgbWZuOiAwMDAwNDMxZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-MjowNV0gICBnZm46IDAwMDA0MzFmICBtZm46IDAwMDA0MzFmDQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMyOjA1XSAgIGdmbjogMDAwMDQzMjAgIG1mbjogMDAwMDQzMjANCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzI6MDVdICAgZ2ZuOiAwMDAwNDMyMSAgbWZuOiAwMDAwNDMyMQ0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowNV0gICBnZm46IDAwMDA0MzIyICBtZm46IDAw
-MDA0MzIyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA1XSAgIGdmbjogMDAwMDQzMjMg
-IG1mbjogMDAwMDQzMjMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDVdICAgZ2ZuOiAw
-MDAwNDMyNCAgbWZuOiAwMDAwNDMyNA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowNV0g
-ICBnZm46IDAwMDA0MzI1ICBtZm46IDAwMDA0MzI1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMyOjA1XSAgIGdmbjogMDAwMDQzMjYgIG1mbjogMDAwMDQzMjYNCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzI6MDVdICAgZ2ZuOiAwMDAwNDMyNyAgbWZuOiAwMDAwNDMyNw0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMjowNV0gICBnZm46IDAwMDA0MzI4ICBtZm46IDAwMDA0MzI4
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA1XSAgIGdmbjogMDAwMDQzMjkgIG1mbjog
-MDAwMDQzMjkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDVdICAgZ2ZuOiAwMDAwNDMy
-YSAgbWZuOiAwMDAwNDMyYQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowNV0gICBnZm46
-IDAwMDA0MzJiICBtZm46IDAwMDA0MzJiDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA1
-XSAgIGdmbjogMDAwMDQzMmMgIG1mbjogMDAwMDQzMmMNCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzI6MDVdICAgZ2ZuOiAwMDAwNDMyZCAgbWZuOiAwMDAwNDMyZA0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMjowNV0gICBnZm46IDAwMDA0MzJlICBtZm46IDAwMDA0MzJlDQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA1XSAgIGdmbjogMDAwMDQzMmYgIG1mbjogMDAwMDQz
-MmYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDVdICAgZ2ZuOiAwMDAwNDMzMCAgbWZu
-OiAwMDAwNDMzMA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowNV0gICBnZm46IDAwMDA0
-MzMxICBtZm46IDAwMDA0MzMxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA1XSAgIGdm
-bjogMDAwMDQzMzIgIG1mbjogMDAwMDQzMzINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
-MDVdICAgZ2ZuOiAwMDAwNDMzMyAgbWZuOiAwMDAwNDMzMw0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMjowNV0gICBnZm46IDAwMDA0MzM0ICBtZm46IDAwMDA0MzM0DQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMyOjA1XSAgIGdmbjogMDAwMDQzMzUgIG1mbjogMDAwMDQzMzUNCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDVdICAgZ2ZuOiAwMDAwNDMzNiAgbWZuOiAwMDAw
-NDMzNg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowNV0gICBnZm46IDAwMDA0MzM3ICBt
-Zm46IDAwMDA0MzM3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA1XSAgIGdmbjogMDAw
-MDQzMzggIG1mbjogMDAwMDQzMzgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDVdICAg
-Z2ZuOiAwMDAwNDMzOSAgbWZuOiAwMDAwNDMzOQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-MjowNV0gICBnZm46IDAwMDA0MzNhICBtZm46IDAwMDA0MzNhDQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMyOjA2XSAgIGdmbjogMDAwMDQzM2IgIG1mbjogMDAwMDQzM2INCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzI6MDZdICAgZ2ZuOiAwMDAwNDMzYyAgbWZuOiAwMDAwNDMzYw0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowNl0gICBnZm46IDAwMDA0MzNkICBtZm46IDAw
-MDA0MzNkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA2XSAgIGdmbjogMDAwMDQzM2Ug
-IG1mbjogMDAwMDQzM2UNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDZdICAgZ2ZuOiAw
-MDAwNDMzZiAgbWZuOiAwMDAwNDMzZg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowNl0g
-ICBnZm46IDAwMDA0MzQwICBtZm46IDAwMDA0MzQwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMyOjA2XSAgIGdmbjogMDAwMDQzNDEgIG1mbjogMDAwMDQzNDENCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzI6MDZdICAgZ2ZuOiAwMDAwNDM0MiAgbWZuOiAwMDAwNDM0Mg0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMjowNl0gICBnZm46IDAwMDA0MzQzICBtZm46IDAwMDA0MzQz
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA2XSAgIGdmbjogMDAwMDQzNDQgIG1mbjog
-MDAwMDQzNDQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDZdICAgZ2ZuOiAwMDAwNDM0
-NSAgbWZuOiAwMDAwNDM0NQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowNl0gICBnZm46
-IDAwMDA0MzQ2ICBtZm46IDAwMDA0MzQ2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA2
-XSAgIGdmbjogMDAwMDQzNDcgIG1mbjogMDAwMDQzNDcNCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzI6MDZdICAgZ2ZuOiAwMDAwNDM0OCAgbWZuOiAwMDAwNDM0OA0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMjowNl0gICBnZm46IDAwMDA0MzQ5ICBtZm46IDAwMDA0MzQ5DQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA2XSAgIGdmbjogMDAwMDQzNGEgIG1mbjogMDAwMDQz
-NGENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDZdICAgZ2ZuOiAwMDAwNDM0YiAgbWZu
-OiAwMDAwNDM0Yg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowNl0gICBnZm46IDAwMDA0
-MzRjICBtZm46IDAwMDA0MzRjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA2XSAgIGdm
-bjogMDAwMDQzNGQgIG1mbjogMDAwMDQzNGQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
-MDZdICAgZ2ZuOiAwMDAwNDM0ZSAgbWZuOiAwMDAwNDM0ZQ0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMjowNl0gICBnZm46IDAwMDA0MzRmICBtZm46IDAwMDA0MzRmDQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMyOjA2XSAgIGdmbjogMDAwMDQzNTAgIG1mbjogMDAwMDQzNTANCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDZdICAgZ2ZuOiAwMDAwNDM1MSAgbWZuOiAwMDAw
-NDM1MQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowNl0gICBnZm46IDAwMDA0MzUyICBt
-Zm46IDAwMDA0MzUyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA2XSAgIGdmbjogMDAw
-MDQzNTMgIG1mbjogMDAwMDQzNTMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDZdICAg
-Z2ZuOiAwMDAwNDM1NCAgbWZuOiAwMDAwNDM1NA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-MjowNl0gICBnZm46IDAwMDA0MzU1ICBtZm46IDAwMDA0MzU1DQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMyOjA2XSAgIGdmbjogMDAwMDQzNTYgIG1mbjogMDAwMDQzNTYNCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzI6MDZdICAgZ2ZuOiAwMDAwNDM1NyAgbWZuOiAwMDAwNDM1Nw0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowNl0gICBnZm46IDAwMDA0MzU4ICBtZm46IDAw
-MDA0MzU4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA2XSAgIGdmbjogMDAwMDQzNTkg
-IG1mbjogMDAwMDQzNTkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDZdICAgZ2ZuOiAw
-MDAwNDM1YSAgbWZuOiAwMDAwNDM1YQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowNl0g
-ICBnZm46IDAwMDA0MzViICBtZm46IDAwMDA0MzViDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMyOjA2XSAgIGdmbjogMDAwMDQzNWMgIG1mbjogMDAwMDQzNWMNCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzI6MDZdICAgZ2ZuOiAwMDAwNDM1ZCAgbWZuOiAwMDAwNDM1ZA0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMjowNl0gICBnZm46IDAwMDA0MzVlICBtZm46IDAwMDA0MzVl
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA2XSAgIGdmbjogMDAwMDQzNWYgIG1mbjog
-MDAwMDQzNWYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDZdICAgZ2ZuOiAwMDAwNDM2
-MCAgbWZuOiAwMDAwNDM2MA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowNl0gICBnZm46
-IDAwMDA0MzYxICBtZm46IDAwMDA0MzYxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA2
-XSAgIGdmbjogMDAwMDQzNjIgIG1mbjogMDAwMDQzNjINCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzI6MDZdICAgZ2ZuOiAwMDAwNDM2MyAgbWZuOiAwMDAwNDM2Mw0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMjowNl0gICBnZm46IDAwMDA0MzY0ICBtZm46IDAwMDA0MzY0DQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA2XSAgIGdmbjogMDAwMDQzNjUgIG1mbjogMDAwMDQz
-NjUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDZdICAgZ2ZuOiAwMDAwNDM2NiAgbWZu
-OiAwMDAwNDM2Ng0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowNl0gICBnZm46IDAwMDA0
-MzY3ICBtZm46IDAwMDA0MzY3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA2XSAgIGdm
-bjogMDAwMDQzNjggIG1mbjogMDAwMDQzNjgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
-MDZdICAgZ2ZuOiAwMDAwNDM2OSAgbWZuOiAwMDAwNDM2OQ0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMjowNl0gICBnZm46IDAwMDA0MzZhICBtZm46IDAwMDA0MzZhDQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMyOjA2XSAgIGdmbjogMDAwMDQzNmIgIG1mbjogMDAwMDQzNmINCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDZdICAgZ2ZuOiAwMDAwNDM2YyAgbWZuOiAwMDAw
-NDM2Yw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowNl0gICBnZm46IDAwMDA0MzZkICBt
-Zm46IDAwMDA0MzZkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA2XSAgIGdmbjogMDAw
-MDQzNmUgIG1mbjogMDAwMDQzNmUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDZdICAg
-Z2ZuOiAwMDAwNDM2ZiAgbWZuOiAwMDAwNDM2Zg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-MjowNl0gICBnZm46IDAwMDA0MzcwICBtZm46IDAwMDA0MzcwDQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMyOjA2XSAgIGdmbjogMDAwMDQzNzEgIG1mbjogMDAwMDQzNzENCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzI6MDZdICAgZ2ZuOiAwMDAwNDM3MiAgbWZuOiAwMDAwNDM3Mg0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowNl0gICBnZm46IDAwMDA0MzczICBtZm46IDAw
-MDA0MzczDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA2XSAgIGdmbjogMDAwMDQzNzQg
-IG1mbjogMDAwMDQzNzQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDZdICAgZ2ZuOiAw
-MDAwNDM3NSAgbWZuOiAwMDAwNDM3NQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowNl0g
-ICBnZm46IDAwMDA0Mzc2ICBtZm46IDAwMDA0Mzc2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMyOjA2XSAgIGdmbjogMDAwMDQzNzcgIG1mbjogMDAwMDQzNzcNCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzI6MDZdICAgZ2ZuOiAwMDAwNDM3OCAgbWZuOiAwMDAwNDM3OA0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMjowNl0gICBnZm46IDAwMDA0Mzc5ICBtZm46IDAwMDA0Mzc5
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA2XSAgIGdmbjogMDAwMDQzN2EgIG1mbjog
-MDAwMDQzN2ENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDddICAgZ2ZuOiAwMDAwNDM3
-YiAgbWZuOiAwMDAwNDM3Yg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowN10gICBnZm46
-IDAwMDA0MzdjICBtZm46IDAwMDA0MzdjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA3
-XSAgIGdmbjogMDAwMDQzN2QgIG1mbjogMDAwMDQzN2QNCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzI6MDddICAgZ2ZuOiAwMDAwNDM3ZSAgbWZuOiAwMDAwNDM3ZQ0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMjowN10gICBnZm46IDAwMDA0MzdmICBtZm46IDAwMDA0MzdmDQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA3XSAgIGdmbjogMDAwMDQzODAgIG1mbjogMDAwMDQz
-ODANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDddICAgZ2ZuOiAwMDAwNDM4MSAgbWZu
-OiAwMDAwNDM4MQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowN10gICBnZm46IDAwMDA0
-MzgyICBtZm46IDAwMDA0MzgyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA3XSAgIGdm
-bjogMDAwMDQzODMgIG1mbjogMDAwMDQzODMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
-MDddICAgZ2ZuOiAwMDAwNDM4NCAgbWZuOiAwMDAwNDM4NA0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMjowN10gICBnZm46IDAwMDA0Mzg1ICBtZm46IDAwMDA0Mzg1DQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMyOjA3XSAgIGdmbjogMDAwMDQzODYgIG1mbjogMDAwMDQzODYNCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDddICAgZ2ZuOiAwMDAwNDM4NyAgbWZuOiAwMDAw
-NDM4Nw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowN10gICBnZm46IDAwMDA0Mzg4ICBt
-Zm46IDAwMDA0Mzg4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA3XSAgIGdmbjogMDAw
-MDQzODkgIG1mbjogMDAwMDQzODkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDddICAg
-Z2ZuOiAwMDAwNDM4YSAgbWZuOiAwMDAwNDM4YQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-MjowN10gICBnZm46IDAwMDA0MzhiICBtZm46IDAwMDA0MzhiDQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMyOjA3XSAgIGdmbjogMDAwMDQzOGMgIG1mbjogMDAwMDQzOGMNCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzI6MDddICAgZ2ZuOiAwMDAwNDM4ZCAgbWZuOiAwMDAwNDM4ZA0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowN10gICBnZm46IDAwMDA0MzhlICBtZm46IDAw
-MDA0MzhlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA3XSAgIGdmbjogMDAwMDQzOGYg
-IG1mbjogMDAwMDQzOGYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDddICAgZ2ZuOiAw
-MDAwNDM5MCAgbWZuOiAwMDAwNDM5MA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowN10g
-ICBnZm46IDAwMDA0MzkxICBtZm46IDAwMDA0MzkxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMyOjA3XSAgIGdmbjogMDAwMDQzOTIgIG1mbjogMDAwMDQzOTINCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzI6MDddICAgZ2ZuOiAwMDAwNDM5MyAgbWZuOiAwMDAwNDM5Mw0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMjowN10gICBnZm46IDAwMDA0Mzk0ICBtZm46IDAwMDA0Mzk0
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA3XSAgIGdmbjogMDAwMDQzOTUgIG1mbjog
-MDAwMDQzOTUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDddICAgZ2ZuOiAwMDAwNDM5
-NiAgbWZuOiAwMDAwNDM5Ng0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowN10gICBnZm46
-IDAwMDA0Mzk3ICBtZm46IDAwMDA0Mzk3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA3
-XSAgIGdmbjogMDAwMDQzOTggIG1mbjogMDAwMDQzOTgNCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzI6MDddICAgZ2ZuOiAwMDAwNDM5OSAgbWZuOiAwMDAwNDM5OQ0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMjowN10gICBnZm46IDAwMDA0MzlhICBtZm46IDAwMDA0MzlhDQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA3XSAgIGdmbjogMDAwMDQzOWIgIG1mbjogMDAwMDQz
-OWINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDddICAgZ2ZuOiAwMDAwNDM5YyAgbWZu
-OiAwMDAwNDM5Yw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowN10gICBnZm46IDAwMDA0
-MzlkICBtZm46IDAwMDA0MzlkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA3XSAgIGdm
-bjogMDAwMDQzOWUgIG1mbjogMDAwMDQzOWUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
-MDddICAgZ2ZuOiAwMDAwNDM5ZiAgbWZuOiAwMDAwNDM5Zg0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMjowN10gICBnZm46IDAwMDA0M2EwICBtZm46IDAwMDA0M2EwDQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMyOjA3XSAgIGdmbjogMDAwMDQzYTEgIG1mbjogMDAwMDQzYTENCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDddICAgZ2ZuOiAwMDAwNDNhMiAgbWZuOiAwMDAw
-NDNhMg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowN10gICBnZm46IDAwMDA0M2EzICBt
-Zm46IDAwMDA0M2EzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA3XSAgIGdmbjogMDAw
-MDQzYTQgIG1mbjogMDAwMDQzYTQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDddICAg
-Z2ZuOiAwMDAwNDNhNSAgbWZuOiAwMDAwNDNhNQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-MjowN10gICBnZm46IDAwMDA0M2E2ICBtZm46IDAwMDA0M2E2DQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMyOjA3XSAgIGdmbjogMDAwMDQzYTcgIG1mbjogMDAwMDQzYTcNCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzI6MDddICAgZ2ZuOiAwMDAwNDNhOCAgbWZuOiAwMDAwNDNhOA0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowN10gICBnZm46IDAwMDA0M2E5ICBtZm46IDAw
-MDA0M2E5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA3XSAgIGdmbjogMDAwMDQzYWEg
-IG1mbjogMDAwMDQzYWENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDddICAgZ2ZuOiAw
-MDAwNDNhYiAgbWZuOiAwMDAwNDNhYg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowN10g
-ICBnZm46IDAwMDA0M2FjICBtZm46IDAwMDA0M2FjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMyOjA3XSAgIGdmbjogMDAwMDQzYWQgIG1mbjogMDAwMDQzYWQNCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzI6MDddICAgZ2ZuOiAwMDAwNDNhZSAgbWZuOiAwMDAwNDNhZQ0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMjowN10gICBnZm46IDAwMDA0M2FmICBtZm46IDAwMDA0M2Fm
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA3XSAgIGdmbjogMDAwMDQzYjAgIG1mbjog
-MDAwMDQzYjANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDddICAgZ2ZuOiAwMDAwNDNi
-MSAgbWZuOiAwMDAwNDNiMQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowN10gICBnZm46
-IDAwMDA0M2IyICBtZm46IDAwMDA0M2IyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA3
-XSAgIGdmbjogMDAwMDQzYjMgIG1mbjogMDAwMDQzYjMNCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzI6MDddICAgZ2ZuOiAwMDAwNDNiNCAgbWZuOiAwMDAwNDNiNA0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMjowN10gICBnZm46IDAwMDA0M2I1ICBtZm46IDAwMDA0M2I1DQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA3XSAgIGdmbjogMDAwMDQzYjYgIG1mbjogMDAwMDQz
-YjYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDddICAgZ2ZuOiAwMDAwNDNiNyAgbWZu
-OiAwMDAwNDNiNw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowN10gICBnZm46IDAwMDA0
-M2I4ICBtZm46IDAwMDA0M2I4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA3XSAgIGdm
-bjogMDAwMDQzYjkgIG1mbjogMDAwMDQzYjkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
-MDddICAgZ2ZuOiAwMDAwNDNiYSAgbWZuOiAwMDAwNDNiYQ0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMjowOF0gICBnZm46IDAwMDA0M2JiICBtZm46IDAwMDA0M2JiDQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMyOjA4XSAgIGdmbjogMDAwMDQzYmMgIG1mbjogMDAwMDQzYmMNCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDhdICAgZ2ZuOiAwMDAwNDNiZCAgbWZuOiAwMDAw
-NDNiZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowOF0gICBnZm46IDAwMDA0M2JlICBt
-Zm46IDAwMDA0M2JlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA4XSAgIGdmbjogMDAw
-MDQzYmYgIG1mbjogMDAwMDQzYmYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDhdICAg
-Z2ZuOiAwMDAwNDNjMCAgbWZuOiAwMDAwNDNjMA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-MjowOF0gICBnZm46IDAwMDA0M2MxICBtZm46IDAwMDA0M2MxDQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMyOjA4XSAgIGdmbjogMDAwMDQzYzIgIG1mbjogMDAwMDQzYzINCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzI6MDhdICAgZ2ZuOiAwMDAwNDNjMyAgbWZuOiAwMDAwNDNjMw0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowOF0gICBnZm46IDAwMDA0M2M0ICBtZm46IDAw
-MDA0M2M0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA4XSAgIGdmbjogMDAwMDQzYzUg
-IG1mbjogMDAwMDQzYzUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDhdICAgZ2ZuOiAw
-MDAwNDNjNiAgbWZuOiAwMDAwNDNjNg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowOF0g
-ICBnZm46IDAwMDA0M2M3ICBtZm46IDAwMDA0M2M3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMyOjA4XSAgIGdmbjogMDAwMDQzYzggIG1mbjogMDAwMDQzYzgNCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzI6MDhdICAgZ2ZuOiAwMDAwNDNjOSAgbWZuOiAwMDAwNDNjOQ0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMjowOF0gICBnZm46IDAwMDA0M2NhICBtZm46IDAwMDA0M2Nh
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA4XSAgIGdmbjogMDAwMDQzY2IgIG1mbjog
-MDAwMDQzY2INCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDhdICAgZ2ZuOiAwMDAwNDNj
-YyAgbWZuOiAwMDAwNDNjYw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowOF0gICBnZm46
-IDAwMDA0M2NkICBtZm46IDAwMDA0M2NkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA4
-XSAgIGdmbjogMDAwMDQzY2UgIG1mbjogMDAwMDQzY2UNCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzI6MDhdICAgZ2ZuOiAwMDAwNDNjZiAgbWZuOiAwMDAwNDNjZg0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMjowOF0gICBnZm46IDAwMDA0M2QwICBtZm46IDAwMDA0M2QwDQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA4XSAgIGdmbjogMDAwMDQzZDEgIG1mbjogMDAwMDQz
-ZDENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDhdICAgZ2ZuOiAwMDAwNDNkMiAgbWZu
-OiAwMDAwNDNkMg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowOF0gICBnZm46IDAwMDA0
-M2QzICBtZm46IDAwMDA0M2QzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA4XSAgIGdm
-bjogMDAwMDQzZDQgIG1mbjogMDAwMDQzZDQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
-MDhdICAgZ2ZuOiAwMDAwNDNkNSAgbWZuOiAwMDAwNDNkNQ0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMjowOF0gICBnZm46IDAwMDA0M2Q2ICBtZm46IDAwMDA0M2Q2DQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMyOjA4XSAgIGdmbjogMDAwMDQzZDcgIG1mbjogMDAwMDQzZDcNCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDhdICAgZ2ZuOiAwMDAwNDNkOCAgbWZuOiAwMDAw
-NDNkOA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowOF0gICBnZm46IDAwMDA0M2Q5ICBt
-Zm46IDAwMDA0M2Q5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA4XSAgIGdmbjogMDAw
-MDQzZGEgIG1mbjogMDAwMDQzZGENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDhdICAg
-Z2ZuOiAwMDAwNDNkYiAgbWZuOiAwMDAwNDNkYg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-MjowOF0gICBnZm46IDAwMDA0M2RjICBtZm46IDAwMDA0M2RjDQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMyOjA4XSAgIGdmbjogMDAwMDQzZGQgIG1mbjogMDAwMDQzZGQNCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzI6MDhdICAgZ2ZuOiAwMDAwNDNkZSAgbWZuOiAwMDAwNDNkZQ0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowOF0gICBnZm46IDAwMDA0M2RmICBtZm46IDAw
-MDA0M2RmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA4XSAgIGdmbjogMDAwMDQzZTAg
-IG1mbjogMDAwMDQzZTANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDhdICAgZ2ZuOiAw
-MDAwNDNlMSAgbWZuOiAwMDAwNDNlMQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowOF0g
-ICBnZm46IDAwMDA0M2UyICBtZm46IDAwMDA0M2UyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMyOjA4XSAgIGdmbjogMDAwMDQzZTMgIG1mbjogMDAwMDQzZTMNCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzI6MDhdICAgZ2ZuOiAwMDAwNDNlNCAgbWZuOiAwMDAwNDNlNA0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMjowOF0gICBnZm46IDAwMDA0M2U1ICBtZm46IDAwMDA0M2U1
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA4XSAgIGdmbjogMDAwMDQzZTYgIG1mbjog
-MDAwMDQzZTYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDhdICAgZ2ZuOiAwMDAwNDNl
-NyAgbWZuOiAwMDAwNDNlNw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowOF0gICBnZm46
-IDAwMDA0M2U4ICBtZm46IDAwMDA0M2U4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA4
-XSAgIGdmbjogMDAwMDQzZTkgIG1mbjogMDAwMDQzZTkNCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzI6MDhdICAgZ2ZuOiAwMDAwNDNlYSAgbWZuOiAwMDAwNDNlYQ0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMjowOF0gICBnZm46IDAwMDA0M2ViICBtZm46IDAwMDA0M2ViDQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA4XSAgIGdmbjogMDAwMDQzZWMgIG1mbjogMDAwMDQz
-ZWMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDhdICAgZ2ZuOiAwMDAwNDNlZCAgbWZu
-OiAwMDAwNDNlZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowOF0gICBnZm46IDAwMDA0
-M2VlICBtZm46IDAwMDA0M2VlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA4XSAgIGdm
-bjogMDAwMDQzZWYgIG1mbjogMDAwMDQzZWYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
-MDhdICAgZ2ZuOiAwMDAwNDNmMCAgbWZuOiAwMDAwNDNmMA0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMjowOF0gICBnZm46IDAwMDA0M2YxICBtZm46IDAwMDA0M2YxDQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMyOjA4XSAgIGdmbjogMDAwMDQzZjIgIG1mbjogMDAwMDQzZjINCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDhdICAgZ2ZuOiAwMDAwNDNmMyAgbWZuOiAwMDAw
-NDNmMw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowOF0gICBnZm46IDAwMDA0M2Y0ICBt
-Zm46IDAwMDA0M2Y0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA4XSAgIGdmbjogMDAw
-MDQzZjUgIG1mbjogMDAwMDQzZjUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDhdICAg
-Z2ZuOiAwMDAwNDNmNiAgbWZuOiAwMDAwNDNmNg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-MjowOF0gICBnZm46IDAwMDA0M2Y3ICBtZm46IDAwMDA0M2Y3DQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMyOjA4XSAgIGdmbjogMDAwMDQzZjggIG1mbjogMDAwMDQzZjgNCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzI6MDhdICAgZ2ZuOiAwMDAwNDNmOSAgbWZuOiAwMDAwNDNmOQ0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowOF0gICBnZm46IDAwMDA0M2ZhICBtZm46IDAw
-MDA0M2ZhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA5XSAgIGdmbjogMDAwMDQzZmIg
-IG1mbjogMDAwMDQzZmINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDldICAgZ2ZuOiAw
-MDAwNDNmYyAgbWZuOiAwMDAwNDNmYw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowOV0g
-ICBnZm46IDAwMDA0M2ZkICBtZm46IDAwMDA0M2ZkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMyOjA5XSAgIGdmbjogMDAwMDQzZmUgIG1mbjogMDAwMDQzZmUNCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzI6MDldICAgZ2ZuOiAwMDAwNDNmZiAgbWZuOiAwMDAwNDNmZg0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMjowOV0gICBnZm46IDAwMDA0NDAwICBtZm46IDAwMDA0NDAw
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA5XSAgIGdmbjogMDAwMDQ0MDEgIG1mbjog
-MDAwMDQ0MDENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDldICAgZ2ZuOiAwMDAwNDQw
-MiAgbWZuOiAwMDAwNDQwMg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowOV0gICBnZm46
-IDAwMDA0NDAzICBtZm46IDAwMDA0NDAzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA5
-XSAgIGdmbjogMDAwMDQ0MDQgIG1mbjogMDAwMDQ0MDQNCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzI6MDldICAgZ2ZuOiAwMDAwNDQwNSAgbWZuOiAwMDAwNDQwNQ0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMjowOV0gICBnZm46IDAwMDA0NDA2ICBtZm46IDAwMDA0NDA2DQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA5XSAgIGdmbjogMDAwMDQ0MDcgIG1mbjogMDAwMDQ0
-MDcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDldICAgZ2ZuOiAwMDAwNDQwOCAgbWZu
-OiAwMDAwNDQwOA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowOV0gICBnZm46IDAwMDA0
-NDA5ICBtZm46IDAwMDA0NDA5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA5XSAgIGdm
-bjogMDAwMDQ0MGEgIG1mbjogMDAwMDQ0MGENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
-MDldICAgZ2ZuOiAwMDAwNDQwYiAgbWZuOiAwMDAwNDQwYg0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMjowOV0gICBnZm46IDAwMDA0NDBjICBtZm46IDAwMDA0NDBjDQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMyOjA5XSAgIGdmbjogMDAwMDQ0MGQgIG1mbjogMDAwMDQ0MGQNCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDldICAgZ2ZuOiAwMDAwNDQwZSAgbWZuOiAwMDAw
-NDQwZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowOV0gICBnZm46IDAwMDA0NDBmICBt
-Zm46IDAwMDA0NDBmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA5XSAgIGdmbjogMDAw
-MDQ0MTAgIG1mbjogMDAwMDQ0MTANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDldICAg
-Z2ZuOiAwMDAwNDQxMSAgbWZuOiAwMDAwNDQxMQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-MjowOV0gICBnZm46IDAwMDA0NDEyICBtZm46IDAwMDA0NDEyDQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMyOjA5XSAgIGdmbjogMDAwMDQ0MTMgIG1mbjogMDAwMDQ0MTMNCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzI6MDldICAgZ2ZuOiAwMDAwNDQxNCAgbWZuOiAwMDAwNDQxNA0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowOV0gICBnZm46IDAwMDA0NDE1ICBtZm46IDAw
-MDA0NDE1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA5XSAgIGdmbjogMDAwMDQ0MTYg
-IG1mbjogMDAwMDQ0MTYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDldICAgZ2ZuOiAw
-MDAwNDQxNyAgbWZuOiAwMDAwNDQxNw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowOV0g
-ICBnZm46IDAwMDA0NDE4ICBtZm46IDAwMDA0NDE4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMyOjA5XSAgIGdmbjogMDAwMDQ0MTkgIG1mbjogMDAwMDQ0MTkNCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzI6MDldICAgZ2ZuOiAwMDAwNDQxYSAgbWZuOiAwMDAwNDQxYQ0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMjowOV0gICBnZm46IDAwMDA0NDFiICBtZm46IDAwMDA0NDFi
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA5XSAgIGdmbjogMDAwMDQ0MWMgIG1mbjog
-MDAwMDQ0MWMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDldICAgZ2ZuOiAwMDAwNDQx
-ZCAgbWZuOiAwMDAwNDQxZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowOV0gICBnZm46
-IDAwMDA0NDFlICBtZm46IDAwMDA0NDFlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA5
-XSAgIGdmbjogMDAwMDQ0MWYgIG1mbjogMDAwMDQ0MWYNCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzI6MDldICAgZ2ZuOiAwMDAwNDQyMCAgbWZuOiAwMDAwNDQyMA0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMjowOV0gICBnZm46IDAwMDA0NDIxICBtZm46IDAwMDA0NDIxDQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA5XSAgIGdmbjogMDAwMDQ0MjIgIG1mbjogMDAwMDQ0
-MjINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDldICAgZ2ZuOiAwMDAwNDQyMyAgbWZu
-OiAwMDAwNDQyMw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowOV0gICBnZm46IDAwMDA0
-NDI0ICBtZm46IDAwMDA0NDI0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA5XSAgIGdm
-bjogMDAwMDQ0MjUgIG1mbjogMDAwMDQ0MjUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
-MDldICAgZ2ZuOiAwMDAwNDQyNiAgbWZuOiAwMDAwNDQyNg0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMjowOV0gICBnZm46IDAwMDA0NDI3ICBtZm46IDAwMDA0NDI3DQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMyOjA5XSAgIGdmbjogMDAwMDQ0MjggIG1mbjogMDAwMDQ0MjgNCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDldICAgZ2ZuOiAwMDAwNDQyOSAgbWZuOiAwMDAw
-NDQyOQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowOV0gICBnZm46IDAwMDA0NDJhICBt
-Zm46IDAwMDA0NDJhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA5XSAgIGdmbjogMDAw
-MDQ0MmIgIG1mbjogMDAwMDQ0MmINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDldICAg
-Z2ZuOiAwMDAwNDQyYyAgbWZuOiAwMDAwNDQyYw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-MjowOV0gICBnZm46IDAwMDA0NDJkICBtZm46IDAwMDA0NDJkDQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMyOjA5XSAgIGdmbjogMDAwMDQ0MmUgIG1mbjogMDAwMDQ0MmUNCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzI6MDldICAgZ2ZuOiAwMDAwNDQyZiAgbWZuOiAwMDAwNDQyZg0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowOV0gICBnZm46IDAwMDA0NDMwICBtZm46IDAw
-MDA0NDMwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA5XSAgIGdmbjogMDAwMDQ0MzEg
-IG1mbjogMDAwMDQ0MzENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDldICAgZ2ZuOiAw
-MDAwNDQzMiAgbWZuOiAwMDAwNDQzMg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowOV0g
-ICBnZm46IDAwMDA0NDMzICBtZm46IDAwMDA0NDMzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMyOjA5XSAgIGdmbjogMDAwMDQ0MzQgIG1mbjogMDAwMDQ0MzQNCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzI6MDldICAgZ2ZuOiAwMDAwNDQzNSAgbWZuOiAwMDAwNDQzNQ0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMjowOV0gICBnZm46IDAwMDA0NDM2ICBtZm46IDAwMDA0NDM2
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA5XSAgIGdmbjogMDAwMDQ0MzcgIG1mbjog
-MDAwMDQ0MzcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MDldICAgZ2ZuOiAwMDAwNDQz
-OCAgbWZuOiAwMDAwNDQzOA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjowOV0gICBnZm46
-IDAwMDA0NDM5ICBtZm46IDAwMDA0NDM5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjA5
-XSAgIGdmbjogMDAwMDQ0M2EgIG1mbjogMDAwMDQ0M2ENCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzI6MTBdICAgZ2ZuOiAwMDAwNDQzYiAgbWZuOiAwMDAwNDQzYg0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMjoxMF0gICBnZm46IDAwMDA0NDNjICBtZm46IDAwMDA0NDNjDQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjEwXSAgIGdmbjogMDAwMDQ0M2QgIG1mbjogMDAwMDQ0
-M2QNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTBdICAgZ2ZuOiAwMDAwNDQzZSAgbWZu
-OiAwMDAwNDQzZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxMF0gICBnZm46IDAwMDA0
-NDNmICBtZm46IDAwMDA0NDNmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjEwXSAgIGdm
-bjogMDAwMDQ0NDAgIG1mbjogMDAwMDQ0NDANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
-MTBdICAgZ2ZuOiAwMDAwNDQ0MSAgbWZuOiAwMDAwNDQ0MQ0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMjoxMF0gICBnZm46IDAwMDA0NDQyICBtZm46IDAwMDA0NDQyDQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMyOjEwXSAgIGdmbjogMDAwMDQ0NDMgIG1mbjogMDAwMDQ0NDMNCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTBdICAgZ2ZuOiAwMDAwNDQ0NCAgbWZuOiAwMDAw
-NDQ0NA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxMF0gICBnZm46IDAwMDA0NDQ1ICBt
-Zm46IDAwMDA0NDQ1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjEwXSAgIGdmbjogMDAw
-MDQ0NDYgIG1mbjogMDAwMDQ0NDYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTBdICAg
-Z2ZuOiAwMDAwNDQ0NyAgbWZuOiAwMDAwNDQ0Nw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-MjoxMF0gICBnZm46IDAwMDA0NDQ4ICBtZm46IDAwMDA0NDQ4DQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMyOjEwXSAgIGdmbjogMDAwMDQ0NDkgIG1mbjogMDAwMDQ0NDkNCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzI6MTBdICAgZ2ZuOiAwMDAwNDQ0YSAgbWZuOiAwMDAwNDQ0YQ0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxMF0gICBnZm46IDAwMDA0NDRiICBtZm46IDAw
-MDA0NDRiDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjEwXSAgIGdmbjogMDAwMDQ0NGMg
-IG1mbjogMDAwMDQ0NGMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTBdICAgZ2ZuOiAw
-MDAwNDQ0ZCAgbWZuOiAwMDAwNDQ0ZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxMF0g
-ICBnZm46IDAwMDA0NDRlICBtZm46IDAwMDA0NDRlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMyOjEwXSAgIGdmbjogMDAwMDQ0NGYgIG1mbjogMDAwMDQ0NGYNCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzI6MTBdICAgZ2ZuOiAwMDAwNDQ1MCAgbWZuOiAwMDAwNDQ1MA0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMjoxMF0gICBnZm46IDAwMDA0NDUxICBtZm46IDAwMDA0NDUx
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjEwXSAgIGdmbjogMDAwMDQ0NTIgIG1mbjog
-MDAwMDQ0NTINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTBdICAgZ2ZuOiAwMDAwNDQ1
-MyAgbWZuOiAwMDAwNDQ1Mw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxMF0gICBnZm46
-IDAwMDA0NDU0ICBtZm46IDAwMDA0NDU0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjEw
-XSAgIGdmbjogMDAwMDQ0NTUgIG1mbjogMDAwMDQ0NTUNCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzI6MTBdICAgZ2ZuOiAwMDAwNDQ1NiAgbWZuOiAwMDAwNDQ1Ng0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMjoxMF0gICBnZm46IDAwMDA0NDU3ICBtZm46IDAwMDA0NDU3DQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjEwXSAgIGdmbjogMDAwMDQ0NTggIG1mbjogMDAwMDQ0
-NTgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTBdICAgZ2ZuOiAwMDAwNDQ1OSAgbWZu
-OiAwMDAwNDQ1OQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxMF0gICBnZm46IDAwMDA0
-NDVhICBtZm46IDAwMDA0NDVhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjEwXSAgIGdm
-bjogMDAwMDQ0NWIgIG1mbjogMDAwMDQ0NWINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
-MTBdICAgZ2ZuOiAwMDAwNDQ1YyAgbWZuOiAwMDAwNDQ1Yw0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMjoxMF0gICBnZm46IDAwMDA0NDVkICBtZm46IDAwMDA0NDVkDQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMyOjEwXSAgIGdmbjogMDAwMDQ0NWUgIG1mbjogMDAwMDQ0NWUNCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTBdICAgZ2ZuOiAwMDAwNDQ1ZiAgbWZuOiAwMDAw
-NDQ1Zg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxMF0gICBnZm46IDAwMDA0NDYwICBt
-Zm46IDAwMDA0NDYwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjEwXSAgIGdmbjogMDAw
-MDQ0NjEgIG1mbjogMDAwMDQ0NjENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTBdICAg
-Z2ZuOiAwMDAwNDQ2MiAgbWZuOiAwMDAwNDQ2Mg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-MjoxMF0gICBnZm46IDAwMDA0NDYzICBtZm46IDAwMDA0NDYzDQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMyOjEwXSAgIGdmbjogMDAwMDQ0NjQgIG1mbjogMDAwMDQ0NjQNCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzI6MTBdICAgZ2ZuOiAwMDAwNDQ2NSAgbWZuOiAwMDAwNDQ2NQ0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxMF0gICBnZm46IDAwMDA0NDY2ICBtZm46IDAw
-MDA0NDY2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjEwXSAgIGdmbjogMDAwMDQ0Njcg
-IG1mbjogMDAwMDQ0NjcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTBdICAgZ2ZuOiAw
-MDAwNDQ2OCAgbWZuOiAwMDAwNDQ2OA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxMF0g
-ICBnZm46IDAwMDA0NDY5ICBtZm46IDAwMDA0NDY5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMyOjEwXSAgIGdmbjogMDAwMDQ0NmEgIG1mbjogMDAwMDQ0NmENCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzI6MTBdICAgZ2ZuOiAwMDAwNDQ2YiAgbWZuOiAwMDAwNDQ2Yg0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMjoxMF0gICBnZm46IDAwMDA0NDZjICBtZm46IDAwMDA0NDZj
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjEwXSAgIGdmbjogMDAwMDQ0NmQgIG1mbjog
-MDAwMDQ0NmQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTBdICAgZ2ZuOiAwMDAwNDQ2
-ZSAgbWZuOiAwMDAwNDQ2ZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxMF0gICBnZm46
-IDAwMDA0NDZmICBtZm46IDAwMDA0NDZmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjEw
-XSAgIGdmbjogMDAwMDQ0NzAgIG1mbjogMDAwMDQ0NzANCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzI6MTBdICAgZ2ZuOiAwMDAwNDQ3MSAgbWZuOiAwMDAwNDQ3MQ0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMjoxMF0gICBnZm46IDAwMDA0NDcyICBtZm46IDAwMDA0NDcyDQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjEwXSAgIGdmbjogMDAwMDQ0NzMgIG1mbjogMDAwMDQ0
-NzMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTBdICAgZ2ZuOiAwMDAwNDQ3NCAgbWZu
-OiAwMDAwNDQ3NA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxMF0gICBnZm46IDAwMDA0
-NDc1ICBtZm46IDAwMDA0NDc1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjEwXSAgIGdm
-bjogMDAwMDQ0NzYgIG1mbjogMDAwMDQ0NzYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
-MTBdICAgZ2ZuOiAwMDAwNDQ3NyAgbWZuOiAwMDAwNDQ3Nw0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMjoxMF0gICBnZm46IDAwMDA0NDc4ICBtZm46IDAwMDA0NDc4DQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMyOjEwXSAgIGdmbjogMDAwMDQ0NzkgIG1mbjogMDAwMDQ0NzkNCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTBdICAgZ2ZuOiAwMDAwNDQ3YSAgbWZuOiAwMDAw
-NDQ3YQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxMV0gICBnZm46IDAwMDA0NDdiICBt
-Zm46IDAwMDA0NDdiDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjExXSAgIGdmbjogMDAw
-MDQ0N2MgIG1mbjogMDAwMDQ0N2MNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTFdICAg
-Z2ZuOiAwMDAwNDQ3ZCAgbWZuOiAwMDAwNDQ3ZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-MjoxMV0gICBnZm46IDAwMDA0NDdlICBtZm46IDAwMDA0NDdlDQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMyOjExXSAgIGdmbjogMDAwMDQ0N2YgIG1mbjogMDAwMDQ0N2YNCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzI6MTFdICAgZ2ZuOiAwMDAwNDQ4MCAgbWZuOiAwMDAwNDQ4MA0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxMV0gICBnZm46IDAwMDA0NDgxICBtZm46IDAw
-MDA0NDgxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjExXSAgIGdmbjogMDAwMDQ0ODIg
-IG1mbjogMDAwMDQ0ODINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTFdICAgZ2ZuOiAw
-MDAwNDQ4MyAgbWZuOiAwMDAwNDQ4Mw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxMV0g
-ICBnZm46IDAwMDA0NDg0ICBtZm46IDAwMDA0NDg0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMyOjExXSAgIGdmbjogMDAwMDQ0ODUgIG1mbjogMDAwMDQ0ODUNCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzI6MTFdICAgZ2ZuOiAwMDAwNDQ4NiAgbWZuOiAwMDAwNDQ4Ng0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMjoxMV0gICBnZm46IDAwMDA0NDg3ICBtZm46IDAwMDA0NDg3
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjExXSAgIGdmbjogMDAwMDQ0ODggIG1mbjog
-MDAwMDQ0ODgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTFdICAgZ2ZuOiAwMDAwNDQ4
-OSAgbWZuOiAwMDAwNDQ4OQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxMV0gICBnZm46
-IDAwMDA0NDhhICBtZm46IDAwMDA0NDhhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjEx
-XSAgIGdmbjogMDAwMDQ0OGIgIG1mbjogMDAwMDQ0OGINCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzI6MTFdICAgZ2ZuOiAwMDAwNDQ4YyAgbWZuOiAwMDAwNDQ4Yw0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMjoxMV0gICBnZm46IDAwMDA0NDhkICBtZm46IDAwMDA0NDhkDQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjExXSAgIGdmbjogMDAwMDQ0OGUgIG1mbjogMDAwMDQ0
-OGUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTFdICAgZ2ZuOiAwMDAwNDQ4ZiAgbWZu
-OiAwMDAwNDQ4Zg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxMV0gICBnZm46IDAwMDA0
-NDkwICBtZm46IDAwMDA0NDkwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjExXSAgIGdm
-bjogMDAwMDQ0OTEgIG1mbjogMDAwMDQ0OTENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
-MTFdICAgZ2ZuOiAwMDAwNDQ5MiAgbWZuOiAwMDAwNDQ5Mg0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMjoxMV0gICBnZm46IDAwMDA0NDkzICBtZm46IDAwMDA0NDkzDQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMyOjExXSAgIGdmbjogMDAwMDQ0OTQgIG1mbjogMDAwMDQ0OTQNCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTFdICAgZ2ZuOiAwMDAwNDQ5NSAgbWZuOiAwMDAw
-NDQ5NQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxMV0gICBnZm46IDAwMDA0NDk2ICBt
-Zm46IDAwMDA0NDk2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjExXSAgIGdmbjogMDAw
-MDQ0OTcgIG1mbjogMDAwMDQ0OTcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTFdICAg
-Z2ZuOiAwMDAwNDQ5OCAgbWZuOiAwMDAwNDQ5OA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-MjoxMV0gICBnZm46IDAwMDA0NDk5ICBtZm46IDAwMDA0NDk5DQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMyOjExXSAgIGdmbjogMDAwMDQ0OWEgIG1mbjogMDAwMDQ0OWENCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzI6MTFdICAgZ2ZuOiAwMDAwNDQ5YiAgbWZuOiAwMDAwNDQ5Yg0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxMV0gICBnZm46IDAwMDA0NDljICBtZm46IDAw
-MDA0NDljDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjExXSAgIGdmbjogMDAwMDQ0OWQg
-IG1mbjogMDAwMDQ0OWQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTFdICAgZ2ZuOiAw
-MDAwNDQ5ZSAgbWZuOiAwMDAwNDQ5ZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxMV0g
-ICBnZm46IDAwMDA0NDlmICBtZm46IDAwMDA0NDlmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMyOjExXSAgIGdmbjogMDAwMDQ0YTAgIG1mbjogMDAwMDQ0YTANCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzI6MTFdICAgZ2ZuOiAwMDAwNDRhMSAgbWZuOiAwMDAwNDRhMQ0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMjoxMV0gICBnZm46IDAwMDA0NGEyICBtZm46IDAwMDA0NGEy
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjExXSAgIGdmbjogMDAwMDQ0YTMgIG1mbjog
-MDAwMDQ0YTMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTFdICAgZ2ZuOiAwMDAwNDRh
-NCAgbWZuOiAwMDAwNDRhNA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxMV0gICBnZm46
-IDAwMDA0NGE1ICBtZm46IDAwMDA0NGE1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjEx
-XSAgIGdmbjogMDAwMDQ0YTYgIG1mbjogMDAwMDQ0YTYNCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzI6MTFdICAgZ2ZuOiAwMDAwNDRhNyAgbWZuOiAwMDAwNDRhNw0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMjoxMV0gICBnZm46IDAwMDA0NGE4ICBtZm46IDAwMDA0NGE4DQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjExXSAgIGdmbjogMDAwMDQ0YTkgIG1mbjogMDAwMDQ0
-YTkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTFdICAgZ2ZuOiAwMDAwNDRhYSAgbWZu
-OiAwMDAwNDRhYQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxMV0gICBnZm46IDAwMDA0
-NGFiICBtZm46IDAwMDA0NGFiDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjExXSAgIGdm
-bjogMDAwMDQ0YWMgIG1mbjogMDAwMDQ0YWMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
-MTFdICAgZ2ZuOiAwMDAwNDRhZCAgbWZuOiAwMDAwNDRhZA0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMjoxMV0gICBnZm46IDAwMDA0NGFlICBtZm46IDAwMDA0NGFlDQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMyOjExXSAgIGdmbjogMDAwMDQ0YWYgIG1mbjogMDAwMDQ0YWYNCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTFdICAgZ2ZuOiAwMDAwNDRiMCAgbWZuOiAwMDAw
-NDRiMA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxMV0gICBnZm46IDAwMDA0NGIxICBt
-Zm46IDAwMDA0NGIxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjExXSAgIGdmbjogMDAw
-MDQ0YjIgIG1mbjogMDAwMDQ0YjINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTFdICAg
-Z2ZuOiAwMDAwNDRiMyAgbWZuOiAwMDAwNDRiMw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-MjoxMV0gICBnZm46IDAwMDA0NGI0ICBtZm46IDAwMDA0NGI0DQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMyOjExXSAgIGdmbjogMDAwMDQ0YjUgIG1mbjogMDAwMDQ0YjUNCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzI6MTFdICAgZ2ZuOiAwMDAwNDRiNiAgbWZuOiAwMDAwNDRiNg0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxMV0gICBnZm46IDAwMDA0NGI3ICBtZm46IDAw
-MDA0NGI3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjExXSAgIGdmbjogMDAwMDQ0Yjgg
-IG1mbjogMDAwMDQ0YjgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTFdICAgZ2ZuOiAw
-MDAwNDRiOSAgbWZuOiAwMDAwNDRiOQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxMV0g
-ICBnZm46IDAwMDA0NGJhICBtZm46IDAwMDA0NGJhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMyOjEyXSAgIGdmbjogMDAwMDQ0YmIgIG1mbjogMDAwMDQ0YmINCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzI6MTJdICAgZ2ZuOiAwMDAwNDRiYyAgbWZuOiAwMDAwNDRiYw0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMjoxMl0gICBnZm46IDAwMDA0NGJkICBtZm46IDAwMDA0NGJk
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjEyXSAgIGdmbjogMDAwMDQ0YmUgIG1mbjog
-MDAwMDQ0YmUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTJdICAgZ2ZuOiAwMDAwNDRi
-ZiAgbWZuOiAwMDAwNDRiZg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxMl0gICBnZm46
-IDAwMDA0NGMwICBtZm46IDAwMDA0NGMwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjEy
-XSAgIGdmbjogMDAwMDQ0YzEgIG1mbjogMDAwMDQ0YzENCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzI6MTJdICAgZ2ZuOiAwMDAwNDRjMiAgbWZuOiAwMDAwNDRjMg0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMjoxMl0gICBnZm46IDAwMDA0NGMzICBtZm46IDAwMDA0NGMzDQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjEyXSAgIGdmbjogMDAwMDQ0YzQgIG1mbjogMDAwMDQ0
-YzQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTJdICAgZ2ZuOiAwMDAwNDRjNSAgbWZu
-OiAwMDAwNDRjNQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxMl0gICBnZm46IDAwMDA0
-NGM2ICBtZm46IDAwMDA0NGM2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjEyXSAgIGdm
-bjogMDAwMDQ0YzcgIG1mbjogMDAwMDQ0YzcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
-MTJdICAgZ2ZuOiAwMDAwNDRjOCAgbWZuOiAwMDAwNDRjOA0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMjoxMl0gICBnZm46IDAwMDA0NGM5ICBtZm46IDAwMDA0NGM5DQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMyOjEyXSAgIGdmbjogMDAwMDQ0Y2EgIG1mbjogMDAwMDQ0Y2ENCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTJdICAgZ2ZuOiAwMDAwNDRjYiAgbWZuOiAwMDAw
-NDRjYg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxMl0gICBnZm46IDAwMDA0NGNjICBt
-Zm46IDAwMDA0NGNjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjEyXSAgIGdmbjogMDAw
-MDQ0Y2QgIG1mbjogMDAwMDQ0Y2QNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTJdICAg
-Z2ZuOiAwMDAwNDRjZSAgbWZuOiAwMDAwNDRjZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-MjoxMl0gICBnZm46IDAwMDA0NGNmICBtZm46IDAwMDA0NGNmDQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMyOjEyXSAgIGdmbjogMDAwMDQ0ZDAgIG1mbjogMDAwMDQ0ZDANCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzI6MTJdICAgZ2ZuOiAwMDAwNDRkMSAgbWZuOiAwMDAwNDRkMQ0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxMl0gICBnZm46IDAwMDA0NGQyICBtZm46IDAw
-MDA0NGQyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjEyXSAgIGdmbjogMDAwMDQ0ZDMg
-IG1mbjogMDAwMDQ0ZDMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTJdICAgZ2ZuOiAw
-MDAwNDRkNCAgbWZuOiAwMDAwNDRkNA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxMl0g
-ICBnZm46IDAwMDA0NGQ1ICBtZm46IDAwMDA0NGQ1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMyOjEyXSAgIGdmbjogMDAwMDQ0ZDYgIG1mbjogMDAwMDQ0ZDYNCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzI6MTJdICAgZ2ZuOiAwMDAwNDRkNyAgbWZuOiAwMDAwNDRkNw0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMjoxMl0gICBnZm46IDAwMDA0NGQ4ICBtZm46IDAwMDA0NGQ4
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjEyXSAgIGdmbjogMDAwMDQ0ZDkgIG1mbjog
-MDAwMDQ0ZDkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTJdICAgZ2ZuOiAwMDAwNDRk
-YSAgbWZuOiAwMDAwNDRkYQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxMl0gICBnZm46
-IDAwMDA0NGRiICBtZm46IDAwMDA0NGRiDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjEy
-XSAgIGdmbjogMDAwMDQ0ZGMgIG1mbjogMDAwMDQ0ZGMNCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzI6MTJdICAgZ2ZuOiAwMDAwNDRkZCAgbWZuOiAwMDAwNDRkZA0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMjoxMl0gICBnZm46IDAwMDA0NGRlICBtZm46IDAwMDA0NGRlDQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjEyXSAgIGdmbjogMDAwMDQ0ZGYgIG1mbjogMDAwMDQ0
-ZGYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTJdICAgZ2ZuOiAwMDAwNDRlMCAgbWZu
-OiAwMDAwNDRlMA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxMl0gICBnZm46IDAwMDA0
-NGUxICBtZm46IDAwMDA0NGUxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjEyXSAgIGdm
-bjogMDAwMDQ0ZTIgIG1mbjogMDAwMDQ0ZTINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
-MTJdICAgZ2ZuOiAwMDAwNDRlMyAgbWZuOiAwMDAwNDRlMw0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMjoxMl0gICBnZm46IDAwMDA0NGU0ICBtZm46IDAwMDA0NGU0DQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMyOjEyXSAgIGdmbjogMDAwMDQ0ZTUgIG1mbjogMDAwMDQ0ZTUNCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTJdICAgZ2ZuOiAwMDAwNDRlNiAgbWZuOiAwMDAw
-NDRlNg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxMl0gICBnZm46IDAwMDA0NGU3ICBt
-Zm46IDAwMDA0NGU3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjEyXSAgIGdmbjogMDAw
-MDQ0ZTggIG1mbjogMDAwMDQ0ZTgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTJdICAg
-Z2ZuOiAwMDAwNDRlOSAgbWZuOiAwMDAwNDRlOQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-MjoxMl0gICBnZm46IDAwMDA0NGVhICBtZm46IDAwMDA0NGVhDQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMyOjEyXSAgIGdmbjogMDAwMDQ0ZWIgIG1mbjogMDAwMDQ0ZWINCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzI6MTJdICAgZ2ZuOiAwMDAwNDRlYyAgbWZuOiAwMDAwNDRlYw0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxMl0gICBnZm46IDAwMDA0NGVkICBtZm46IDAw
-MDA0NGVkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjEyXSAgIGdmbjogMDAwMDQ0ZWUg
-IG1mbjogMDAwMDQ0ZWUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTJdICAgZ2ZuOiAw
-MDAwNDRlZiAgbWZuOiAwMDAwNDRlZg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxMl0g
-ICBnZm46IDAwMDA0NGYwICBtZm46IDAwMDA0NGYwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMyOjEyXSAgIGdmbjogMDAwMDQ0ZjEgIG1mbjogMDAwMDQ0ZjENCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzI6MTJdICAgZ2ZuOiAwMDAwNDRmMiAgbWZuOiAwMDAwNDRmMg0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMjoxMl0gICBnZm46IDAwMDA0NGYzICBtZm46IDAwMDA0NGYz
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjEyXSAgIGdmbjogMDAwMDQ0ZjQgIG1mbjog
-MDAwMDQ0ZjQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTJdICAgZ2ZuOiAwMDAwNDRm
-NSAgbWZuOiAwMDAwNDRmNQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxMl0gICBnZm46
-IDAwMDA0NGY2ICBtZm46IDAwMDA0NGY2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjEy
-XSAgIGdmbjogMDAwMDQ0ZjcgIG1mbjogMDAwMDQ0ZjcNCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzI6MTJdICAgZ2ZuOiAwMDAwNDRmOCAgbWZuOiAwMDAwNDRmOA0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMjoxMl0gICBnZm46IDAwMDA0NGY5ICBtZm46IDAwMDA0NGY5DQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjEyXSAgIGdmbjogMDAwMDQ0ZmEgIG1mbjogMDAwMDQ0
-ZmENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTJdICAgZ2ZuOiAwMDAwNDRmYiAgbWZu
-OiAwMDAwNDRmYg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxM10gICBnZm46IDAwMDA0
-NGZjICBtZm46IDAwMDA0NGZjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjEzXSAgIGdm
-bjogMDAwMDQ0ZmQgIG1mbjogMDAwMDQ0ZmQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
-MTNdICAgZ2ZuOiAwMDAwNDRmZSAgbWZuOiAwMDAwNDRmZQ0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMjoxM10gICBnZm46IDAwMDA0NGZmICBtZm46IDAwMDA0NGZmDQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMyOjEzXSAgIGdmbjogMDAwMDQ1MDAgIG1mbjogMDAwMDQ1MDANCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTNdICAgZ2ZuOiAwMDAwNDUwMSAgbWZuOiAwMDAw
-NDUwMQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxM10gICBnZm46IDAwMDA0NTAyICBt
-Zm46IDAwMDA0NTAyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjEzXSAgIGdmbjogMDAw
-MDQ1MDMgIG1mbjogMDAwMDQ1MDMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTNdICAg
-Z2ZuOiAwMDAwNDUwNCAgbWZuOiAwMDAwNDUwNA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-MjoxM10gICBnZm46IDAwMDA0NTA1ICBtZm46IDAwMDA0NTA1DQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMyOjEzXSAgIGdmbjogMDAwMDQ1MDYgIG1mbjogMDAwMDQ1MDYNCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzI6MTNdICAgZ2ZuOiAwMDAwNDUwNyAgbWZuOiAwMDAwNDUwNw0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxM10gICBnZm46IDAwMDA0NTA4ICBtZm46IDAw
-MDA0NTA4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjEzXSAgIGdmbjogMDAwMDQ1MDkg
-IG1mbjogMDAwMDQ1MDkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTNdICAgZ2ZuOiAw
-MDAwNDUwYSAgbWZuOiAwMDAwNDUwYQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxM10g
-ICBnZm46IDAwMDA0NTBiICBtZm46IDAwMDA0NTBiDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMyOjEzXSAgIGdmbjogMDAwMDQ1MGMgIG1mbjogMDAwMDQ1MGMNCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzI6MTNdICAgZ2ZuOiAwMDAwNDUwZCAgbWZuOiAwMDAwNDUwZA0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMjoxM10gICBnZm46IDAwMDA0NTBlICBtZm46IDAwMDA0NTBl
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjEzXSAgIGdmbjogMDAwMDQ1MGYgIG1mbjog
-MDAwMDQ1MGYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTNdICAgZ2ZuOiAwMDAwNDUx
-MCAgbWZuOiAwMDAwNDUxMA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxM10gICBnZm46
-IDAwMDA0NTExICBtZm46IDAwMDA0NTExDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjEz
-XSAgIGdmbjogMDAwMDQ1MTIgIG1mbjogMDAwMDQ1MTINCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzI6MTNdICAgZ2ZuOiAwMDAwNDUxMyAgbWZuOiAwMDAwNDUxMw0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMjoxM10gICBnZm46IDAwMDA0NTE0ICBtZm46IDAwMDA0NTE0DQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjEzXSAgIGdmbjogMDAwMDQ1MTUgIG1mbjogMDAwMDQ1
-MTUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTNdICAgZ2ZuOiAwMDAwNDUxNiAgbWZu
-OiAwMDAwNDUxNg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxM10gICBnZm46IDAwMDA0
-NTE3ICBtZm46IDAwMDA0NTE3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjEzXSAgIGdm
-bjogMDAwMDQ1MTggIG1mbjogMDAwMDQ1MTgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
-MTNdICAgZ2ZuOiAwMDAwNDUxOSAgbWZuOiAwMDAwNDUxOQ0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMjoxM10gICBnZm46IDAwMDA0NTFhICBtZm46IDAwMDA0NTFhDQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMyOjEzXSAgIGdmbjogMDAwMDQ1MWIgIG1mbjogMDAwMDQ1MWINCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTNdICAgZ2ZuOiAwMDAwNDUxYyAgbWZuOiAwMDAw
-NDUxYw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxM10gICBnZm46IDAwMDA0NTFkICBt
-Zm46IDAwMDA0NTFkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjEzXSAgIGdmbjogMDAw
-MDQ1MWUgIG1mbjogMDAwMDQ1MWUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTNdICAg
-Z2ZuOiAwMDAwNDUxZiAgbWZuOiAwMDAwNDUxZg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-MjoxM10gICBnZm46IDAwMDA0NTIwICBtZm46IDAwMDA0NTIwDQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMyOjEzXSAgIGdmbjogMDAwMDQ1MjEgIG1mbjogMDAwMDQ1MjENCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzI6MTNdICAgZ2ZuOiAwMDAwNDUyMiAgbWZuOiAwMDAwNDUyMg0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxM10gICBnZm46IDAwMDA0NTIzICBtZm46IDAw
-MDA0NTIzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjEzXSAgIGdmbjogMDAwMDQ1MjQg
-IG1mbjogMDAwMDQ1MjQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTNdICAgZ2ZuOiAw
-MDAwNDUyNSAgbWZuOiAwMDAwNDUyNQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxM10g
-ICBnZm46IDAwMDA0NTI2ICBtZm46IDAwMDA0NTI2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMyOjEzXSAgIGdmbjogMDAwMDQ1MjcgIG1mbjogMDAwMDQ1MjcNCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzI6MTNdICAgZ2ZuOiAwMDAwNDUyOCAgbWZuOiAwMDAwNDUyOA0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMjoxM10gICBnZm46IDAwMDA0NTI5ICBtZm46IDAwMDA0NTI5
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjEzXSAgIGdmbjogMDAwMDQ1MmEgIG1mbjog
-MDAwMDQ1MmENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTNdICAgZ2ZuOiAwMDAwNDUy
-YiAgbWZuOiAwMDAwNDUyYg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxM10gICBnZm46
-IDAwMDA0NTJjICBtZm46IDAwMDA0NTJjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjEz
-XSAgIGdmbjogMDAwMDQ1MmQgIG1mbjogMDAwMDQ1MmQNCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzI6MTNdICAgZ2ZuOiAwMDAwNDUyZSAgbWZuOiAwMDAwNDUyZQ0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMjoxM10gICBnZm46IDAwMDA0NTJmICBtZm46IDAwMDA0NTJmDQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjEzXSAgIGdmbjogMDAwMDQ1MzAgIG1mbjogMDAwMDQ1
-MzANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTNdICAgZ2ZuOiAwMDAwNDUzMSAgbWZu
-OiAwMDAwNDUzMQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxM10gICBnZm46IDAwMDA0
-NTMyICBtZm46IDAwMDA0NTMyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjEzXSAgIGdm
-bjogMDAwMDQ1MzMgIG1mbjogMDAwMDQ1MzMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
-MTNdICAgZ2ZuOiAwMDAwNDUzNCAgbWZuOiAwMDAwNDUzNA0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMjoxM10gICBnZm46IDAwMDA0NTM1ICBtZm46IDAwMDA0NTM1DQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMyOjEzXSAgIGdmbjogMDAwMDQ1MzYgIG1mbjogMDAwMDQ1MzYNCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTNdICAgZ2ZuOiAwMDAwNDUzNyAgbWZuOiAwMDAw
-NDUzNw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxM10gICBnZm46IDAwMDA0NTM4ICBt
-Zm46IDAwMDA0NTM4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjEzXSAgIGdmbjogMDAw
-MDQ1MzkgIG1mbjogMDAwMDQ1MzkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTNdICAg
-Z2ZuOiAwMDAwNDUzYSAgbWZuOiAwMDAwNDUzYQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-MjoxM10gICBnZm46IDAwMDA0NTNiICBtZm46IDAwMDA0NTNiDQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMyOjE0XSAgIGdmbjogMDAwMDQ1M2MgIG1mbjogMDAwMDQ1M2MNCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzI6MTRdICAgZ2ZuOiAwMDAwNDUzZCAgbWZuOiAwMDAwNDUzZA0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxNF0gICBnZm46IDAwMDA0NTNlICBtZm46IDAw
-MDA0NTNlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE0XSAgIGdmbjogMDAwMDQ1M2Yg
-IG1mbjogMDAwMDQ1M2YNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTRdICAgZ2ZuOiAw
-MDAwNDU0MCAgbWZuOiAwMDAwNDU0MA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxNF0g
-ICBnZm46IDAwMDA0NTQxICBtZm46IDAwMDA0NTQxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMyOjE0XSAgIGdmbjogMDAwMDQ1NDIgIG1mbjogMDAwMDQ1NDINCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzI6MTRdICAgZ2ZuOiAwMDAwNDU0MyAgbWZuOiAwMDAwNDU0Mw0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMjoxNF0gICBnZm46IDAwMDA0NTQ0ICBtZm46IDAwMDA0NTQ0
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE0XSAgIGdmbjogMDAwMDQ1NDUgIG1mbjog
-MDAwMDQ1NDUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTRdICAgZ2ZuOiAwMDAwNDU0
-NiAgbWZuOiAwMDAwNDU0Ng0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxNF0gICBnZm46
-IDAwMDA0NTQ3ICBtZm46IDAwMDA0NTQ3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE0
-XSAgIGdmbjogMDAwMDQ1NDggIG1mbjogMDAwMDQ1NDgNCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzI6MTRdICAgZ2ZuOiAwMDAwNDU0OSAgbWZuOiAwMDAwNDU0OQ0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMjoxNF0gICBnZm46IDAwMDA0NTRhICBtZm46IDAwMDA0NTRhDQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE0XSAgIGdmbjogMDAwMDQ1NGIgIG1mbjogMDAwMDQ1
-NGINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTRdICAgZ2ZuOiAwMDAwNDU0YyAgbWZu
-OiAwMDAwNDU0Yw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxNF0gICBnZm46IDAwMDA0
-NTRkICBtZm46IDAwMDA0NTRkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE0XSAgIGdm
-bjogMDAwMDQ1NGUgIG1mbjogMDAwMDQ1NGUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
-MTRdICAgZ2ZuOiAwMDAwNDU0ZiAgbWZuOiAwMDAwNDU0Zg0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMjoxNF0gICBnZm46IDAwMDA0NTUwICBtZm46IDAwMDA0NTUwDQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMyOjE0XSAgIGdmbjogMDAwMDQ1NTEgIG1mbjogMDAwMDQ1NTENCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTRdICAgZ2ZuOiAwMDAwNDU1MiAgbWZuOiAwMDAw
-NDU1Mg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxNF0gICBnZm46IDAwMDA0NTUzICBt
-Zm46IDAwMDA0NTUzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE0XSAgIGdmbjogMDAw
-MDQ1NTQgIG1mbjogMDAwMDQ1NTQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTRdICAg
-Z2ZuOiAwMDAwNDU1NSAgbWZuOiAwMDAwNDU1NQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-MjoxNF0gICBnZm46IDAwMDA0NTU2ICBtZm46IDAwMDA0NTU2DQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMyOjE0XSAgIGdmbjogMDAwMDQ1NTcgIG1mbjogMDAwMDQ1NTcNCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzI6MTRdICAgZ2ZuOiAwMDAwNDU1OCAgbWZuOiAwMDAwNDU1OA0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxNF0gICBnZm46IDAwMDA0NTU5ICBtZm46IDAw
-MDA0NTU5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE0XSAgIGdmbjogMDAwMDQ1NWEg
-IG1mbjogMDAwMDQ1NWENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTRdICAgZ2ZuOiAw
-MDAwNDU1YiAgbWZuOiAwMDAwNDU1Yg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxNF0g
-ICBnZm46IDAwMDA0NTVjICBtZm46IDAwMDA0NTVjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMyOjE0XSAgIGdmbjogMDAwMDQ1NWQgIG1mbjogMDAwMDQ1NWQNCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzI6MTRdICAgZ2ZuOiAwMDAwNDU1ZSAgbWZuOiAwMDAwNDU1ZQ0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMjoxNF0gICBnZm46IDAwMDA0NTVmICBtZm46IDAwMDA0NTVm
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE0XSAgIGdmbjogMDAwMDQ1NjAgIG1mbjog
-MDAwMDQ1NjANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTRdICAgZ2ZuOiAwMDAwNDU2
-MSAgbWZuOiAwMDAwNDU2MQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxNF0gICBnZm46
-IDAwMDA0NTYyICBtZm46IDAwMDA0NTYyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE0
-XSAgIGdmbjogMDAwMDQ1NjMgIG1mbjogMDAwMDQ1NjMNCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzI6MTRdICAgZ2ZuOiAwMDAwNDU2NCAgbWZuOiAwMDAwNDU2NA0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMjoxNF0gICBnZm46IDAwMDA0NTY1ICBtZm46IDAwMDA0NTY1DQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE0XSAgIGdmbjogMDAwMDQ1NjYgIG1mbjogMDAwMDQ1
-NjYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTRdICAgZ2ZuOiAwMDAwNDU2NyAgbWZu
-OiAwMDAwNDU2Nw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxNF0gICBnZm46IDAwMDA0
-NTY4ICBtZm46IDAwMDA0NTY4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE0XSAgIGdm
-bjogMDAwMDQ1NjkgIG1mbjogMDAwMDQ1NjkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
-MTRdICAgZ2ZuOiAwMDAwNDU2YSAgbWZuOiAwMDAwNDU2YQ0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMjoxNF0gICBnZm46IDAwMDA0NTZiICBtZm46IDAwMDA0NTZiDQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMyOjE0XSAgIGdmbjogMDAwMDQ1NmMgIG1mbjogMDAwMDQ1NmMNCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTRdICAgZ2ZuOiAwMDAwNDU2ZCAgbWZuOiAwMDAw
-NDU2ZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxNF0gICBnZm46IDAwMDA0NTZlICBt
-Zm46IDAwMDA0NTZlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE0XSAgIGdmbjogMDAw
-MDQ1NmYgIG1mbjogMDAwMDQ1NmYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTRdICAg
-Z2ZuOiAwMDAwNDU3MCAgbWZuOiAwMDAwNDU3MA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-MjoxNF0gICBnZm46IDAwMDA0NTcxICBtZm46IDAwMDA0NTcxDQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMyOjE0XSAgIGdmbjogMDAwMDQ1NzIgIG1mbjogMDAwMDQ1NzINCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzI6MTRdICAgZ2ZuOiAwMDAwNDU3MyAgbWZuOiAwMDAwNDU3Mw0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxNF0gICBnZm46IDAwMDA0NTc0ICBtZm46IDAw
-MDA0NTc0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE0XSAgIGdmbjogMDAwMDQ1NzUg
-IG1mbjogMDAwMDQ1NzUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTRdICAgZ2ZuOiAw
-MDAwNDU3NiAgbWZuOiAwMDAwNDU3Ng0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxNF0g
-ICBnZm46IDAwMDA0NTc3ICBtZm46IDAwMDA0NTc3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMyOjE0XSAgIGdmbjogMDAwMDQ1NzggIG1mbjogMDAwMDQ1NzgNCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzI6MTRdICAgZ2ZuOiAwMDAwNDU3OSAgbWZuOiAwMDAwNDU3OQ0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMjoxNF0gICBnZm46IDAwMDA0NTdhICBtZm46IDAwMDA0NTdh
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE0XSAgIGdmbjogMDAwMDQ1N2IgIG1mbjog
-MDAwMDQ1N2INCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTVdICAgZ2ZuOiAwMDAwNDU3
-YyAgbWZuOiAwMDAwNDU3Yw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxNV0gICBnZm46
-IDAwMDA0NTdkICBtZm46IDAwMDA0NTdkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE1
-XSAgIGdmbjogMDAwMDQ1N2UgIG1mbjogMDAwMDQ1N2UNCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzI6MTVdICAgZ2ZuOiAwMDAwNDU3ZiAgbWZuOiAwMDAwNDU3Zg0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMjoxNV0gICBnZm46IDAwMDA0NTgwICBtZm46IDAwMDA0NTgwDQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE1XSAgIGdmbjogMDAwMDQ1ODEgIG1mbjogMDAwMDQ1
-ODENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTVdICAgZ2ZuOiAwMDAwNDU4MiAgbWZu
-OiAwMDAwNDU4Mg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxNV0gICBnZm46IDAwMDA0
-NTgzICBtZm46IDAwMDA0NTgzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE1XSAgIGdm
-bjogMDAwMDQ1ODQgIG1mbjogMDAwMDQ1ODQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
-MTVdICAgZ2ZuOiAwMDAwNDU4NSAgbWZuOiAwMDAwNDU4NQ0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMjoxNV0gICBnZm46IDAwMDA0NTg2ICBtZm46IDAwMDA0NTg2DQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMyOjE1XSAgIGdmbjogMDAwMDQ1ODcgIG1mbjogMDAwMDQ1ODcNCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTVdICAgZ2ZuOiAwMDAwNDU4OCAgbWZuOiAwMDAw
-NDU4OA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxNV0gICBnZm46IDAwMDA0NTg5ICBt
-Zm46IDAwMDA0NTg5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE1XSAgIGdmbjogMDAw
-MDQ1OGEgIG1mbjogMDAwMDQ1OGENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTVdICAg
-Z2ZuOiAwMDAwNDU4YiAgbWZuOiAwMDAwNDU4Yg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-MjoxNV0gICBnZm46IDAwMDA0NThjICBtZm46IDAwMDA0NThjDQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMyOjE1XSAgIGdmbjogMDAwMDQ1OGQgIG1mbjogMDAwMDQ1OGQNCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzI6MTVdICAgZ2ZuOiAwMDAwNDU4ZSAgbWZuOiAwMDAwNDU4ZQ0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxNV0gICBnZm46IDAwMDA0NThmICBtZm46IDAw
-MDA0NThmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE1XSAgIGdmbjogMDAwMDQ1OTAg
-IG1mbjogMDAwMDQ1OTANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTVdICAgZ2ZuOiAw
-MDAwNDU5MSAgbWZuOiAwMDAwNDU5MQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxNV0g
-ICBnZm46IDAwMDA0NTkyICBtZm46IDAwMDA0NTkyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMyOjE1XSAgIGdmbjogMDAwMDQ1OTMgIG1mbjogMDAwMDQ1OTMNCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzI6MTVdICAgZ2ZuOiAwMDAwNDU5NCAgbWZuOiAwMDAwNDU5NA0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMjoxNV0gICBnZm46IDAwMDA0NTk1ICBtZm46IDAwMDA0NTk1
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE1XSAgIGdmbjogMDAwMDQ1OTYgIG1mbjog
-MDAwMDQ1OTYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTVdICAgZ2ZuOiAwMDAwNDU5
-NyAgbWZuOiAwMDAwNDU5Nw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxNV0gICBnZm46
-IDAwMDA0NTk4ICBtZm46IDAwMDA0NTk4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE1
-XSAgIGdmbjogMDAwMDQ1OTkgIG1mbjogMDAwMDQ1OTkNCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzI6MTVdICAgZ2ZuOiAwMDAwNDU5YSAgbWZuOiAwMDAwNDU5YQ0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMjoxNV0gICBnZm46IDAwMDA0NTliICBtZm46IDAwMDA0NTliDQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE1XSAgIGdmbjogMDAwMDQ1OWMgIG1mbjogMDAwMDQ1
-OWMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTVdICAgZ2ZuOiAwMDAwNDU5ZCAgbWZu
-OiAwMDAwNDU5ZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxNV0gICBnZm46IDAwMDA0
-NTllICBtZm46IDAwMDA0NTllDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE1XSAgIGdm
-bjogMDAwMDQ1OWYgIG1mbjogMDAwMDQ1OWYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
-MTVdICAgZ2ZuOiAwMDAwNDVhMCAgbWZuOiAwMDAwNDVhMA0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMjoxNV0gICBnZm46IDAwMDA0NWExICBtZm46IDAwMDA0NWExDQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMyOjE1XSAgIGdmbjogMDAwMDQ1YTIgIG1mbjogMDAwMDQ1YTINCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTVdICAgZ2ZuOiAwMDAwNDVhMyAgbWZuOiAwMDAw
-NDVhMw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxNV0gICBnZm46IDAwMDA0NWE0ICBt
-Zm46IDAwMDA0NWE0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE1XSAgIGdmbjogMDAw
-MDQ1YTUgIG1mbjogMDAwMDQ1YTUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTVdICAg
-Z2ZuOiAwMDAwNDVhNiAgbWZuOiAwMDAwNDVhNg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-MjoxNV0gICBnZm46IDAwMDA0NWE3ICBtZm46IDAwMDA0NWE3DQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMyOjE1XSAgIGdmbjogMDAwMDQ1YTggIG1mbjogMDAwMDQ1YTgNCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzI6MTVdICAgZ2ZuOiAwMDAwNDVhOSAgbWZuOiAwMDAwNDVhOQ0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxNV0gICBnZm46IDAwMDA0NWFhICBtZm46IDAw
-MDA0NWFhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE1XSAgIGdmbjogMDAwMDQ1YWIg
-IG1mbjogMDAwMDQ1YWINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTVdICAgZ2ZuOiAw
-MDAwNDVhYyAgbWZuOiAwMDAwNDVhYw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxNV0g
-ICBnZm46IDAwMDA0NWFkICBtZm46IDAwMDA0NWFkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMyOjE1XSAgIGdmbjogMDAwMDQ1YWUgIG1mbjogMDAwMDQ1YWUNCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzI6MTVdICAgZ2ZuOiAwMDAwNDVhZiAgbWZuOiAwMDAwNDVhZg0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMjoxNV0gICBnZm46IDAwMDA0NWIwICBtZm46IDAwMDA0NWIw
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE1XSAgIGdmbjogMDAwMDQ1YjEgIG1mbjog
-MDAwMDQ1YjENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTVdICAgZ2ZuOiAwMDAwNDVi
-MiAgbWZuOiAwMDAwNDViMg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxNV0gICBnZm46
-IDAwMDA0NWIzICBtZm46IDAwMDA0NWIzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE1
-XSAgIGdmbjogMDAwMDQ1YjQgIG1mbjogMDAwMDQ1YjQNCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzI6MTVdICAgZ2ZuOiAwMDAwNDViNSAgbWZuOiAwMDAwNDViNQ0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMjoxNV0gICBnZm46IDAwMDA0NWI2ICBtZm46IDAwMDA0NWI2DQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE1XSAgIGdmbjogMDAwMDQ1YjcgIG1mbjogMDAwMDQ1
-YjcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTVdICAgZ2ZuOiAwMDAwNDViOCAgbWZu
-OiAwMDAwNDViOA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxNV0gICBnZm46IDAwMDA0
-NWI5ICBtZm46IDAwMDA0NWI5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE1XSAgIGdm
-bjogMDAwMDQ1YmEgIG1mbjogMDAwMDQ1YmENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
-MTVdICAgZ2ZuOiAwMDAwNDViYiAgbWZuOiAwMDAwNDViYg0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMjoxNl0gICBnZm46IDAwMDA0NWJjICBtZm46IDAwMDA0NWJjDQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMyOjE2XSAgIGdmbjogMDAwMDQ1YmQgIG1mbjogMDAwMDQ1YmQNCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTZdICAgZ2ZuOiAwMDAwNDViZSAgbWZuOiAwMDAw
-NDViZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxNl0gICBnZm46IDAwMDA0NWJmICBt
-Zm46IDAwMDA0NWJmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE2XSAgIGdmbjogMDAw
-MDQ1YzAgIG1mbjogMDAwMDQ1YzANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTZdICAg
-Z2ZuOiAwMDAwNDVjMSAgbWZuOiAwMDAwNDVjMQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-MjoxNl0gICBnZm46IDAwMDA0NWMyICBtZm46IDAwMDA0NWMyDQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMyOjE2XSAgIGdmbjogMDAwMDQ1YzMgIG1mbjogMDAwMDQ1YzMNCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzI6MTZdICAgZ2ZuOiAwMDAwNDVjNCAgbWZuOiAwMDAwNDVjNA0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxNl0gICBnZm46IDAwMDA0NWM1ICBtZm46IDAw
-MDA0NWM1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE2XSAgIGdmbjogMDAwMDQ1YzYg
-IG1mbjogMDAwMDQ1YzYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTZdICAgZ2ZuOiAw
-MDAwNDVjNyAgbWZuOiAwMDAwNDVjNw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxNl0g
-ICBnZm46IDAwMDA0NWM4ICBtZm46IDAwMDA0NWM4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMyOjE2XSAgIGdmbjogMDAwMDQ1YzkgIG1mbjogMDAwMDQ1YzkNCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzI6MTZdICAgZ2ZuOiAwMDAwNDVjYSAgbWZuOiAwMDAwNDVjYQ0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMjoxNl0gICBnZm46IDAwMDA0NWNiICBtZm46IDAwMDA0NWNi
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE2XSAgIGdmbjogMDAwMDQ1Y2MgIG1mbjog
-MDAwMDQ1Y2MNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTZdICAgZ2ZuOiAwMDAwNDVj
-ZCAgbWZuOiAwMDAwNDVjZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxNl0gICBnZm46
-IDAwMDA0NWNlICBtZm46IDAwMDA0NWNlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE2
-XSAgIGdmbjogMDAwMDQ1Y2YgIG1mbjogMDAwMDQ1Y2YNCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzI6MTZdICAgZ2ZuOiAwMDAwNDVkMCAgbWZuOiAwMDAwNDVkMA0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMjoxNl0gICBnZm46IDAwMDA0NWQxICBtZm46IDAwMDA0NWQxDQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE2XSAgIGdmbjogMDAwMDQ1ZDIgIG1mbjogMDAwMDQ1
-ZDINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTZdICAgZ2ZuOiAwMDAwNDVkMyAgbWZu
-OiAwMDAwNDVkMw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxNl0gICBnZm46IDAwMDA0
-NWQ0ICBtZm46IDAwMDA0NWQ0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE2XSAgIGdm
-bjogMDAwMDQ1ZDUgIG1mbjogMDAwMDQ1ZDUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
-MTZdICAgZ2ZuOiAwMDAwNDVkNiAgbWZuOiAwMDAwNDVkNg0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMjoxNl0gICBnZm46IDAwMDA0NWQ3ICBtZm46IDAwMDA0NWQ3DQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMyOjE2XSAgIGdmbjogMDAwMDQ1ZDggIG1mbjogMDAwMDQ1ZDgNCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTZdICAgZ2ZuOiAwMDAwNDVkOSAgbWZuOiAwMDAw
-NDVkOQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxNl0gICBnZm46IDAwMDA0NWRhICBt
-Zm46IDAwMDA0NWRhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE2XSAgIGdmbjogMDAw
-MDQ1ZGIgIG1mbjogMDAwMDQ1ZGINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTZdICAg
-Z2ZuOiAwMDAwNDVkYyAgbWZuOiAwMDAwNDVkYw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-MjoxNl0gICBnZm46IDAwMDA0NWRkICBtZm46IDAwMDA0NWRkDQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMyOjE2XSAgIGdmbjogMDAwMDQ1ZGUgIG1mbjogMDAwMDQ1ZGUNCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzI6MTZdICAgZ2ZuOiAwMDAwNDVkZiAgbWZuOiAwMDAwNDVkZg0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxNl0gICBnZm46IDAwMDA0NWUwICBtZm46IDAw
-MDA0NWUwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE2XSAgIGdmbjogMDAwMDQ1ZTEg
-IG1mbjogMDAwMDQ1ZTENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTZdICAgZ2ZuOiAw
-MDAwNDVlMiAgbWZuOiAwMDAwNDVlMg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxNl0g
-ICBnZm46IDAwMDA0NWUzICBtZm46IDAwMDA0NWUzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMyOjE2XSAgIGdmbjogMDAwMDQ1ZTQgIG1mbjogMDAwMDQ1ZTQNCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzI6MTZdICAgZ2ZuOiAwMDAwNDVlNSAgbWZuOiAwMDAwNDVlNQ0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMjoxNl0gICBnZm46IDAwMDA0NWU2ICBtZm46IDAwMDA0NWU2
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE2XSAgIGdmbjogMDAwMDQ1ZTcgIG1mbjog
-MDAwMDQ1ZTcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTZdICAgZ2ZuOiAwMDAwNDVl
-OCAgbWZuOiAwMDAwNDVlOA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxNl0gICBnZm46
-IDAwMDA0NWU5ICBtZm46IDAwMDA0NWU5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE2
-XSAgIGdmbjogMDAwMDQ1ZWEgIG1mbjogMDAwMDQ1ZWENCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzI6MTZdICAgZ2ZuOiAwMDAwNDVlYiAgbWZuOiAwMDAwNDVlYg0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMjoxNl0gICBnZm46IDAwMDA0NWVjICBtZm46IDAwMDA0NWVjDQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE2XSAgIGdmbjogMDAwMDQ1ZWQgIG1mbjogMDAwMDQ1
-ZWQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTZdICAgZ2ZuOiAwMDAwNDVlZSAgbWZu
-OiAwMDAwNDVlZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxNl0gICBnZm46IDAwMDA0
-NWVmICBtZm46IDAwMDA0NWVmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE2XSAgIGdm
-bjogMDAwMDQ1ZjAgIG1mbjogMDAwMDQ1ZjANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
-MTZdICAgZ2ZuOiAwMDAwNDVmMSAgbWZuOiAwMDAwNDVmMQ0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMjoxNl0gICBnZm46IDAwMDA0NWYyICBtZm46IDAwMDA0NWYyDQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMyOjE2XSAgIGdmbjogMDAwMDQ1ZjMgIG1mbjogMDAwMDQ1ZjMNCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTZdICAgZ2ZuOiAwMDAwNDVmNCAgbWZuOiAwMDAw
-NDVmNA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxNl0gICBnZm46IDAwMDA0NWY1ICBt
-Zm46IDAwMDA0NWY1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE2XSAgIGdmbjogMDAw
-MDQ1ZjYgIG1mbjogMDAwMDQ1ZjYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTZdICAg
-Z2ZuOiAwMDAwNDVmNyAgbWZuOiAwMDAwNDVmNw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-MjoxNl0gICBnZm46IDAwMDA0NWY4ICBtZm46IDAwMDA0NWY4DQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMyOjE2XSAgIGdmbjogMDAwMDQ1ZjkgIG1mbjogMDAwMDQ1ZjkNCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzI6MTZdICAgZ2ZuOiAwMDAwNDVmYSAgbWZuOiAwMDAwNDVmYQ0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxNl0gICBnZm46IDAwMDA0NWZiICBtZm46IDAw
-MDA0NWZiDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE3XSAgIGdmbjogMDAwMDQ1ZmMg
-IG1mbjogMDAwMDQ1ZmMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTddICAgZ2ZuOiAw
-MDAwNDVmZCAgbWZuOiAwMDAwNDVmZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxN10g
-ICBnZm46IDAwMDA0NWZlICBtZm46IDAwMDA0NWZlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMyOjE3XSAgIGdmbjogMDAwMDQ1ZmYgIG1mbjogMDAwMDQ1ZmYNCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzI6MTddICAgZ2ZuOiAwMDAwNDYwMCAgbWZuOiAwMDAwNDYwMA0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMjoxN10gICBnZm46IDAwMDA0NjAxICBtZm46IDAwMDA0NjAx
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE3XSAgIGdmbjogMDAwMDQ2MDIgIG1mbjog
-MDAwMDQ2MDINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTddICAgZ2ZuOiAwMDAwNDYw
-MyAgbWZuOiAwMDAwNDYwMw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxN10gICBnZm46
-IDAwMDA0NjA0ICBtZm46IDAwMDA0NjA0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE3
-XSAgIGdmbjogMDAwMDQ2MDUgIG1mbjogMDAwMDQ2MDUNCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzI6MTddICAgZ2ZuOiAwMDAwNDYwNiAgbWZuOiAwMDAwNDYwNg0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMjoxN10gICBnZm46IDAwMDA0NjA3ICBtZm46IDAwMDA0NjA3DQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE3XSAgIGdmbjogMDAwMDQ2MDggIG1mbjogMDAwMDQ2
-MDgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTddICAgZ2ZuOiAwMDAwNDYwOSAgbWZu
-OiAwMDAwNDYwOQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxN10gICBnZm46IDAwMDA0
-NjBhICBtZm46IDAwMDA0NjBhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE3XSAgIGdm
-bjogMDAwMDQ2MGIgIG1mbjogMDAwMDQ2MGINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
-MTddICAgZ2ZuOiAwMDAwNDYwYyAgbWZuOiAwMDAwNDYwYw0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMjoxN10gICBnZm46IDAwMDA0NjBkICBtZm46IDAwMDA0NjBkDQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMyOjE3XSAgIGdmbjogMDAwMDQ2MGUgIG1mbjogMDAwMDQ2MGUNCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTddICAgZ2ZuOiAwMDAwNDYwZiAgbWZuOiAwMDAw
-NDYwZg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxN10gICBnZm46IDAwMDA0NjEwICBt
-Zm46IDAwMDA0NjEwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE3XSAgIGdmbjogMDAw
-MDQ2MTEgIG1mbjogMDAwMDQ2MTENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTddICAg
-Z2ZuOiAwMDAwNDYxMiAgbWZuOiAwMDAwNDYxMg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-MjoxN10gICBnZm46IDAwMDA0NjEzICBtZm46IDAwMDA0NjEzDQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMyOjE3XSAgIGdmbjogMDAwMDQ2MTQgIG1mbjogMDAwMDQ2MTQNCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzI6MTddICAgZ2ZuOiAwMDAwNDYxNSAgbWZuOiAwMDAwNDYxNQ0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxN10gICBnZm46IDAwMDA0NjE2ICBtZm46IDAw
-MDA0NjE2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE3XSAgIGdmbjogMDAwMDQ2MTcg
-IG1mbjogMDAwMDQ2MTcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTddICAgZ2ZuOiAw
-MDAwNDYxOCAgbWZuOiAwMDAwNDYxOA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxN10g
-ICBnZm46IDAwMDA0NjE5ICBtZm46IDAwMDA0NjE5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMyOjE3XSAgIGdmbjogMDAwMDQ2MWEgIG1mbjogMDAwMDQ2MWENCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzI6MTddICAgZ2ZuOiAwMDAwNDYxYiAgbWZuOiAwMDAwNDYxYg0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMjoxN10gICBnZm46IDAwMDA0NjFjICBtZm46IDAwMDA0NjFj
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE3XSAgIGdmbjogMDAwMDQ2MWQgIG1mbjog
-MDAwMDQ2MWQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTddICAgZ2ZuOiAwMDAwNDYx
-ZSAgbWZuOiAwMDAwNDYxZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxN10gICBnZm46
-IDAwMDA0NjFmICBtZm46IDAwMDA0NjFmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE3
-XSAgIGdmbjogMDAwMDQ2MjAgIG1mbjogMDAwMDQ2MjANCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzI6MTddICAgZ2ZuOiAwMDAwNDYyMSAgbWZuOiAwMDAwNDYyMQ0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMjoxN10gICBnZm46IDAwMDA0NjIyICBtZm46IDAwMDA0NjIyDQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE3XSAgIGdmbjogMDAwMDQ2MjMgIG1mbjogMDAwMDQ2
-MjMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTddICAgZ2ZuOiAwMDAwNDYyNCAgbWZu
-OiAwMDAwNDYyNA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxN10gICBnZm46IDAwMDA0
-NjI1ICBtZm46IDAwMDA0NjI1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE3XSAgIGdm
-bjogMDAwMDQ2MjYgIG1mbjogMDAwMDQ2MjYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
-MTddICAgZ2ZuOiAwMDAwNDYyNyAgbWZuOiAwMDAwNDYyNw0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMjoxN10gICBnZm46IDAwMDA0NjI4ICBtZm46IDAwMDA0NjI4DQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMyOjE3XSAgIGdmbjogMDAwMDQ2MjkgIG1mbjogMDAwMDQ2MjkNCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTddICAgZ2ZuOiAwMDAwNDYyYSAgbWZuOiAwMDAw
-NDYyYQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxN10gICBnZm46IDAwMDA0NjJiICBt
-Zm46IDAwMDA0NjJiDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE3XSAgIGdmbjogMDAw
-MDQ2MmMgIG1mbjogMDAwMDQ2MmMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTddICAg
-Z2ZuOiAwMDAwNDYyZCAgbWZuOiAwMDAwNDYyZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-MjoxN10gICBnZm46IDAwMDA0NjJlICBtZm46IDAwMDA0NjJlDQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMyOjE3XSAgIGdmbjogMDAwMDQ2MmYgIG1mbjogMDAwMDQ2MmYNCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzI6MTddICAgZ2ZuOiAwMDAwNDYzMCAgbWZuOiAwMDAwNDYzMA0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxN10gICBnZm46IDAwMDA0NjMxICBtZm46IDAw
-MDA0NjMxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE3XSAgIGdmbjogMDAwMDQ2MzIg
-IG1mbjogMDAwMDQ2MzINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTddICAgZ2ZuOiAw
-MDAwNDYzMyAgbWZuOiAwMDAwNDYzMw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxN10g
-ICBnZm46IDAwMDA0NjM0ICBtZm46IDAwMDA0NjM0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMyOjE3XSAgIGdmbjogMDAwMDQ2MzUgIG1mbjogMDAwMDQ2MzUNCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzI6MTddICAgZ2ZuOiAwMDAwNDYzNiAgbWZuOiAwMDAwNDYzNg0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMjoxN10gICBnZm46IDAwMDA0NjM3ICBtZm46IDAwMDA0NjM3
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE3XSAgIGdmbjogMDAwMDQ2MzggIG1mbjog
-MDAwMDQ2MzgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTddICAgZ2ZuOiAwMDAwNDYz
-OSAgbWZuOiAwMDAwNDYzOQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxN10gICBnZm46
-IDAwMDA0NjNhICBtZm46IDAwMDA0NjNhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE3
-XSAgIGdmbjogMDAwMDQ2M2IgIG1mbjogMDAwMDQ2M2INCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzI6MThdICAgZ2ZuOiAwMDAwNDYzYyAgbWZuOiAwMDAwNDYzYw0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMjoxOF0gICBnZm46IDAwMDA0NjNkICBtZm46IDAwMDA0NjNkDQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE4XSAgIGdmbjogMDAwMDQ2M2UgIG1mbjogMDAwMDQ2
-M2UNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MThdICAgZ2ZuOiAwMDAwNDYzZiAgbWZu
-OiAwMDAwNDYzZg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxOF0gICBnZm46IDAwMDA0
-NjQwICBtZm46IDAwMDA0NjQwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE4XSAgIGdm
-bjogMDAwMDQ2NDEgIG1mbjogMDAwMDQ2NDENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
-MThdICAgZ2ZuOiAwMDAwNDY0MiAgbWZuOiAwMDAwNDY0Mg0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMjoxOF0gICBnZm46IDAwMDA0NjQzICBtZm46IDAwMDA0NjQzDQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMyOjE4XSAgIGdmbjogMDAwMDQ2NDQgIG1mbjogMDAwMDQ2NDQNCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MThdICAgZ2ZuOiAwMDAwNDY0NSAgbWZuOiAwMDAw
-NDY0NQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxOF0gICBnZm46IDAwMDA0NjQ2ICBt
-Zm46IDAwMDA0NjQ2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE4XSAgIGdmbjogMDAw
-MDQ2NDcgIG1mbjogMDAwMDQ2NDcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MThdICAg
-Z2ZuOiAwMDAwNDY0OCAgbWZuOiAwMDAwNDY0OA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-MjoxOF0gICBnZm46IDAwMDA0NjQ5ICBtZm46IDAwMDA0NjQ5DQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMyOjE4XSAgIGdmbjogMDAwMDQ2NGEgIG1mbjogMDAwMDQ2NGENCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzI6MThdICAgZ2ZuOiAwMDAwNDY0YiAgbWZuOiAwMDAwNDY0Yg0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxOF0gICBnZm46IDAwMDA0NjRjICBtZm46IDAw
-MDA0NjRjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE4XSAgIGdmbjogMDAwMDQ2NGQg
-IG1mbjogMDAwMDQ2NGQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MThdICAgZ2ZuOiAw
-MDAwNDY0ZSAgbWZuOiAwMDAwNDY0ZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxOF0g
-ICBnZm46IDAwMDA0NjRmICBtZm46IDAwMDA0NjRmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMyOjE4XSAgIGdmbjogMDAwMDQ2NTAgIG1mbjogMDAwMDQ2NTANCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzI6MThdICAgZ2ZuOiAwMDAwNDY1MSAgbWZuOiAwMDAwNDY1MQ0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMjoxOF0gICBnZm46IDAwMDA0NjUyICBtZm46IDAwMDA0NjUy
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE4XSAgIGdmbjogMDAwMDQ2NTMgIG1mbjog
-MDAwMDQ2NTMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MThdICAgZ2ZuOiAwMDAwNDY1
-NCAgbWZuOiAwMDAwNDY1NA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxOF0gICBnZm46
-IDAwMDA0NjU1ICBtZm46IDAwMDA0NjU1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE4
-XSAgIGdmbjogMDAwMDQ2NTYgIG1mbjogMDAwMDQ2NTYNCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzI6MThdICAgZ2ZuOiAwMDAwNDY1NyAgbWZuOiAwMDAwNDY1Nw0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMjoxOF0gICBnZm46IDAwMDA0NjU4ICBtZm46IDAwMDA0NjU4DQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE4XSAgIGdmbjogMDAwMDQ2NTkgIG1mbjogMDAwMDQ2
-NTkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MThdICAgZ2ZuOiAwMDAwNDY1YSAgbWZu
-OiAwMDAwNDY1YQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxOF0gICBnZm46IDAwMDA0
-NjViICBtZm46IDAwMDA0NjViDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE4XSAgIGdm
-bjogMDAwMDQ2NWMgIG1mbjogMDAwMDQ2NWMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
-MThdICAgZ2ZuOiAwMDAwNDY1ZCAgbWZuOiAwMDAwNDY1ZA0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMjoxOF0gICBnZm46IDAwMDA0NjVlICBtZm46IDAwMDA0NjVlDQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMyOjE4XSAgIGdmbjogMDAwMDQ2NWYgIG1mbjogMDAwMDQ2NWYNCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MThdICAgZ2ZuOiAwMDAwNDY2MCAgbWZuOiAwMDAw
-NDY2MA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxOF0gICBnZm46IDAwMDA0NjYxICBt
-Zm46IDAwMDA0NjYxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE4XSAgIGdmbjogMDAw
-MDQ2NjIgIG1mbjogMDAwMDQ2NjINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MThdICAg
-Z2ZuOiAwMDAwNDY2MyAgbWZuOiAwMDAwNDY2Mw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-MjoxOF0gICBnZm46IDAwMDA0NjY0ICBtZm46IDAwMDA0NjY0DQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMyOjE4XSAgIGdmbjogMDAwMDQ2NjUgIG1mbjogMDAwMDQ2NjUNCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzI6MThdICAgZ2ZuOiAwMDAwNDY2NiAgbWZuOiAwMDAwNDY2Ng0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxOF0gICBnZm46IDAwMDA0NjY3ICBtZm46IDAw
-MDA0NjY3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE4XSAgIGdmbjogMDAwMDQ2Njgg
-IG1mbjogMDAwMDQ2NjgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MThdICAgZ2ZuOiAw
-MDAwNDY2OSAgbWZuOiAwMDAwNDY2OQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxOF0g
-ICBnZm46IDAwMDA0NjZhICBtZm46IDAwMDA0NjZhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMyOjE4XSAgIGdmbjogMDAwMDQ2NmIgIG1mbjogMDAwMDQ2NmINCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzI6MThdICAgZ2ZuOiAwMDAwNDY2YyAgbWZuOiAwMDAwNDY2Yw0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMjoxOF0gICBnZm46IDAwMDA0NjZkICBtZm46IDAwMDA0NjZk
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE4XSAgIGdmbjogMDAwMDQ2NmUgIG1mbjog
-MDAwMDQ2NmUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MThdICAgZ2ZuOiAwMDAwNDY2
-ZiAgbWZuOiAwMDAwNDY2Zg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxOF0gICBnZm46
-IDAwMDA0NjcwICBtZm46IDAwMDA0NjcwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE4
-XSAgIGdmbjogMDAwMDQ2NzEgIG1mbjogMDAwMDQ2NzENCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzI6MThdICAgZ2ZuOiAwMDAwNDY3MiAgbWZuOiAwMDAwNDY3Mg0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMjoxOF0gICBnZm46IDAwMDA0NjczICBtZm46IDAwMDA0NjczDQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE4XSAgIGdmbjogMDAwMDQ2NzQgIG1mbjogMDAwMDQ2
-NzQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MThdICAgZ2ZuOiAwMDAwNDY3NSAgbWZu
-OiAwMDAwNDY3NQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxOF0gICBnZm46IDAwMDA0
-Njc2ICBtZm46IDAwMDA0Njc2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE4XSAgIGdm
-bjogMDAwMDQ2NzcgIG1mbjogMDAwMDQ2NzcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
-MThdICAgZ2ZuOiAwMDAwNDY3OCAgbWZuOiAwMDAwNDY3OA0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMjoxOF0gICBnZm46IDAwMDA0Njc5ICBtZm46IDAwMDA0Njc5DQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMyOjE4XSAgIGdmbjogMDAwMDQ2N2EgIG1mbjogMDAwMDQ2N2ENCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MThdICAgZ2ZuOiAwMDAwNDY3YiAgbWZuOiAwMDAw
-NDY3Yg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxOV0gICBnZm46IDAwMDA0NjdjICBt
-Zm46IDAwMDA0NjdjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE5XSAgIGdmbjogMDAw
-MDQ2N2QgIG1mbjogMDAwMDQ2N2QNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTldICAg
-Z2ZuOiAwMDAwNDY3ZSAgbWZuOiAwMDAwNDY3ZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-MjoxOV0gICBnZm46IDAwMDA0NjdmICBtZm46IDAwMDA0NjdmDQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMyOjE5XSAgIGdmbjogMDAwMDQ2ODAgIG1mbjogMDAwMDQ2ODANCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzI6MTldICAgZ2ZuOiAwMDAwNDY4MSAgbWZuOiAwMDAwNDY4MQ0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxOV0gICBnZm46IDAwMDA0NjgyICBtZm46IDAw
-MDA0NjgyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE5XSAgIGdmbjogMDAwMDQ2ODMg
-IG1mbjogMDAwMDQ2ODMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTldICAgZ2ZuOiAw
-MDAwNDY4NCAgbWZuOiAwMDAwNDY4NA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxOV0g
-ICBnZm46IDAwMDA0Njg1ICBtZm46IDAwMDA0Njg1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMyOjE5XSAgIGdmbjogMDAwMDQ2ODYgIG1mbjogMDAwMDQ2ODYNCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzI6MTldICAgZ2ZuOiAwMDAwNDY4NyAgbWZuOiAwMDAwNDY4Nw0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMjoxOV0gICBnZm46IDAwMDA0Njg4ICBtZm46IDAwMDA0Njg4
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE5XSAgIGdmbjogMDAwMDQ2ODkgIG1mbjog
-MDAwMDQ2ODkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTldICAgZ2ZuOiAwMDAwNDY4
-YSAgbWZuOiAwMDAwNDY4YQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxOV0gICBnZm46
-IDAwMDA0NjhiICBtZm46IDAwMDA0NjhiDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE5
-XSAgIGdmbjogMDAwMDQ2OGMgIG1mbjogMDAwMDQ2OGMNCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzI6MTldICAgZ2ZuOiAwMDAwNDY4ZCAgbWZuOiAwMDAwNDY4ZA0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMjoxOV0gICBnZm46IDAwMDA0NjhlICBtZm46IDAwMDA0NjhlDQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE5XSAgIGdmbjogMDAwMDQ2OGYgIG1mbjogMDAwMDQ2
-OGYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTldICAgZ2ZuOiAwMDAwNDY5MCAgbWZu
-OiAwMDAwNDY5MA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxOV0gICBnZm46IDAwMDA0
-NjkxICBtZm46IDAwMDA0NjkxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE5XSAgIGdm
-bjogMDAwMDQ2OTIgIG1mbjogMDAwMDQ2OTINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
-MTldICAgZ2ZuOiAwMDAwNDY5MyAgbWZuOiAwMDAwNDY5Mw0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMjoxOV0gICBnZm46IDAwMDA0Njk0ICBtZm46IDAwMDA0Njk0DQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMyOjE5XSAgIGdmbjogMDAwMDQ2OTUgIG1mbjogMDAwMDQ2OTUNCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTldICAgZ2ZuOiAwMDAwNDY5NiAgbWZuOiAwMDAw
-NDY5Ng0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxOV0gICBnZm46IDAwMDA0Njk3ICBt
-Zm46IDAwMDA0Njk3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE5XSAgIGdmbjogMDAw
-MDQ2OTggIG1mbjogMDAwMDQ2OTgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTldICAg
-Z2ZuOiAwMDAwNDY5OSAgbWZuOiAwMDAwNDY5OQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-MjoxOV0gICBnZm46IDAwMDA0NjlhICBtZm46IDAwMDA0NjlhDQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMyOjE5XSAgIGdmbjogMDAwMDQ2OWIgIG1mbjogMDAwMDQ2OWINCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzI6MTldICAgZ2ZuOiAwMDAwNDY5YyAgbWZuOiAwMDAwNDY5Yw0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxOV0gICBnZm46IDAwMDA0NjlkICBtZm46IDAw
-MDA0NjlkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE5XSAgIGdmbjogMDAwMDQ2OWUg
-IG1mbjogMDAwMDQ2OWUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTldICAgZ2ZuOiAw
-MDAwNDY5ZiAgbWZuOiAwMDAwNDY5Zg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxOV0g
-ICBnZm46IDAwMDA0NmEwICBtZm46IDAwMDA0NmEwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMyOjE5XSAgIGdmbjogMDAwMDQ2YTEgIG1mbjogMDAwMDQ2YTENCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzI6MTldICAgZ2ZuOiAwMDAwNDZhMiAgbWZuOiAwMDAwNDZhMg0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMjoxOV0gICBnZm46IDAwMDA0NmEzICBtZm46IDAwMDA0NmEz
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE5XSAgIGdmbjogMDAwMDQ2YTQgIG1mbjog
-MDAwMDQ2YTQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTldICAgZ2ZuOiAwMDAwNDZh
-NSAgbWZuOiAwMDAwNDZhNQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxOV0gICBnZm46
-IDAwMDA0NmE2ICBtZm46IDAwMDA0NmE2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE5
-XSAgIGdmbjogMDAwMDQ2YTcgIG1mbjogMDAwMDQ2YTcNCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzI6MTldICAgZ2ZuOiAwMDAwNDZhOCAgbWZuOiAwMDAwNDZhOA0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMjoxOV0gICBnZm46IDAwMDA0NmE5ICBtZm46IDAwMDA0NmE5DQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE5XSAgIGdmbjogMDAwMDQ2YWEgIG1mbjogMDAwMDQ2
-YWENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTldICAgZ2ZuOiAwMDAwNDZhYiAgbWZu
-OiAwMDAwNDZhYg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxOV0gICBnZm46IDAwMDA0
-NmFjICBtZm46IDAwMDA0NmFjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE5XSAgIGdm
-bjogMDAwMDQ2YWQgIG1mbjogMDAwMDQ2YWQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
-MTldICAgZ2ZuOiAwMDAwNDZhZSAgbWZuOiAwMDAwNDZhZQ0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMjoxOV0gICBnZm46IDAwMDA0NmFmICBtZm46IDAwMDA0NmFmDQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMyOjE5XSAgIGdmbjogMDAwMDQ2YjAgIG1mbjogMDAwMDQ2YjANCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTldICAgZ2ZuOiAwMDAwNDZiMSAgbWZuOiAwMDAw
-NDZiMQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxOV0gICBnZm46IDAwMDA0NmIyICBt
-Zm46IDAwMDA0NmIyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE5XSAgIGdmbjogMDAw
-MDQ2YjMgIG1mbjogMDAwMDQ2YjMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTldICAg
-Z2ZuOiAwMDAwNDZiNCAgbWZuOiAwMDAwNDZiNA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-MjoxOV0gICBnZm46IDAwMDA0NmI1ICBtZm46IDAwMDA0NmI1DQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMyOjE5XSAgIGdmbjogMDAwMDQ2YjYgIG1mbjogMDAwMDQ2YjYNCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzI6MTldICAgZ2ZuOiAwMDAwNDZiNyAgbWZuOiAwMDAwNDZiNw0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxOV0gICBnZm46IDAwMDA0NmI4ICBtZm46IDAw
-MDA0NmI4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjE5XSAgIGdmbjogMDAwMDQ2Yjkg
-IG1mbjogMDAwMDQ2YjkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MTldICAgZ2ZuOiAw
-MDAwNDZiYSAgbWZuOiAwMDAwNDZiYQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoxOV0g
-ICBnZm46IDAwMDA0NmJiICBtZm46IDAwMDA0NmJiDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMyOjIwXSAgIGdmbjogMDAwMDQ2YmMgIG1mbjogMDAwMDQ2YmMNCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzI6MjBdICAgZ2ZuOiAwMDAwNDZiZCAgbWZuOiAwMDAwNDZiZA0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMjoyMF0gICBnZm46IDAwMDA0NmJlICBtZm46IDAwMDA0NmJl
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjIwXSAgIGdmbjogMDAwMDQ2YmYgIG1mbjog
-MDAwMDQ2YmYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjBdICAgZ2ZuOiAwMDAwNDZj
-MCAgbWZuOiAwMDAwNDZjMA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyMF0gICBnZm46
-IDAwMDA0NmMxICBtZm46IDAwMDA0NmMxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjIw
-XSAgIGdmbjogMDAwMDQ2YzIgIG1mbjogMDAwMDQ2YzINCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzI6MjBdICAgZ2ZuOiAwMDAwNDZjMyAgbWZuOiAwMDAwNDZjMw0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMjoyMF0gICBnZm46IDAwMDA0NmM0ICBtZm46IDAwMDA0NmM0DQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjIwXSAgIGdmbjogMDAwMDQ2YzUgIG1mbjogMDAwMDQ2
-YzUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjBdICAgZ2ZuOiAwMDAwNDZjNiAgbWZu
-OiAwMDAwNDZjNg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyMF0gICBnZm46IDAwMDA0
-NmM3ICBtZm46IDAwMDA0NmM3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjIwXSAgIGdm
-bjogMDAwMDQ2YzggIG1mbjogMDAwMDQ2YzgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
-MjBdICAgZ2ZuOiAwMDAwNDZjOSAgbWZuOiAwMDAwNDZjOQ0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMjoyMF0gICBnZm46IDAwMDA0NmNhICBtZm46IDAwMDA0NmNhDQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMyOjIwXSAgIGdmbjogMDAwMDQ2Y2IgIG1mbjogMDAwMDQ2Y2INCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjBdICAgZ2ZuOiAwMDAwNDZjYyAgbWZuOiAwMDAw
-NDZjYw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyMF0gICBnZm46IDAwMDA0NmNkICBt
-Zm46IDAwMDA0NmNkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjIwXSAgIGdmbjogMDAw
-MDQ2Y2UgIG1mbjogMDAwMDQ2Y2UNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjBdICAg
-Z2ZuOiAwMDAwNDZjZiAgbWZuOiAwMDAwNDZjZg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-MjoyMF0gICBnZm46IDAwMDA0NmQwICBtZm46IDAwMDA0NmQwDQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMyOjIwXSAgIGdmbjogMDAwMDQ2ZDEgIG1mbjogMDAwMDQ2ZDENCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzI6MjBdICAgZ2ZuOiAwMDAwNDZkMiAgbWZuOiAwMDAwNDZkMg0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyMF0gICBnZm46IDAwMDA0NmQzICBtZm46IDAw
-MDA0NmQzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjIwXSAgIGdmbjogMDAwMDQ2ZDQg
-IG1mbjogMDAwMDQ2ZDQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjBdICAgZ2ZuOiAw
-MDAwNDZkNSAgbWZuOiAwMDAwNDZkNQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyMF0g
-ICBnZm46IDAwMDA0NmQ2ICBtZm46IDAwMDA0NmQ2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMyOjIwXSAgIGdmbjogMDAwMDQ2ZDcgIG1mbjogMDAwMDQ2ZDcNCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzI6MjBdICAgZ2ZuOiAwMDAwNDZkOCAgbWZuOiAwMDAwNDZkOA0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMjoyMF0gICBnZm46IDAwMDA0NmQ5ICBtZm46IDAwMDA0NmQ5
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjIwXSAgIGdmbjogMDAwMDQ2ZGEgIG1mbjog
-MDAwMDQ2ZGENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjBdICAgZ2ZuOiAwMDAwNDZk
-YiAgbWZuOiAwMDAwNDZkYg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyMF0gICBnZm46
-IDAwMDA0NmRjICBtZm46IDAwMDA0NmRjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjIw
-XSAgIGdmbjogMDAwMDQ2ZGQgIG1mbjogMDAwMDQ2ZGQNCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzI6MjBdICAgZ2ZuOiAwMDAwNDZkZSAgbWZuOiAwMDAwNDZkZQ0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMjoyMF0gICBnZm46IDAwMDA0NmRmICBtZm46IDAwMDA0NmRmDQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjIwXSAgIGdmbjogMDAwMDQ2ZTAgIG1mbjogMDAwMDQ2
-ZTANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjBdICAgZ2ZuOiAwMDAwNDZlMSAgbWZu
-OiAwMDAwNDZlMQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyMF0gICBnZm46IDAwMDA0
-NmUyICBtZm46IDAwMDA0NmUyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjIwXSAgIGdm
-bjogMDAwMDQ2ZTMgIG1mbjogMDAwMDQ2ZTMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
-MjBdICAgZ2ZuOiAwMDAwNDZlNCAgbWZuOiAwMDAwNDZlNA0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMjoyMF0gICBnZm46IDAwMDA0NmU1ICBtZm46IDAwMDA0NmU1DQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMyOjIwXSAgIGdmbjogMDAwMDQ2ZTYgIG1mbjogMDAwMDQ2ZTYNCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjBdICAgZ2ZuOiAwMDAwNDZlNyAgbWZuOiAwMDAw
-NDZlNw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyMF0gICBnZm46IDAwMDA0NmU4ICBt
-Zm46IDAwMDA0NmU4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjIwXSAgIGdmbjogMDAw
-MDQ2ZTkgIG1mbjogMDAwMDQ2ZTkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjBdICAg
-Z2ZuOiAwMDAwNDZlYSAgbWZuOiAwMDAwNDZlYQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-MjoyMF0gICBnZm46IDAwMDA0NmViICBtZm46IDAwMDA0NmViDQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMyOjIwXSAgIGdmbjogMDAwMDQ2ZWMgIG1mbjogMDAwMDQ2ZWMNCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzI6MjBdICAgZ2ZuOiAwMDAwNDZlZCAgbWZuOiAwMDAwNDZlZA0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyMF0gICBnZm46IDAwMDA0NmVlICBtZm46IDAw
-MDA0NmVlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjIwXSAgIGdmbjogMDAwMDQ2ZWYg
-IG1mbjogMDAwMDQ2ZWYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjBdICAgZ2ZuOiAw
-MDAwNDZmMCAgbWZuOiAwMDAwNDZmMA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyMF0g
-ICBnZm46IDAwMDA0NmYxICBtZm46IDAwMDA0NmYxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMyOjIwXSAgIGdmbjogMDAwMDQ2ZjIgIG1mbjogMDAwMDQ2ZjINCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzI6MjBdICAgZ2ZuOiAwMDAwNDZmMyAgbWZuOiAwMDAwNDZmMw0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMjoyMF0gICBnZm46IDAwMDA0NmY0ICBtZm46IDAwMDA0NmY0
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjIwXSAgIGdmbjogMDAwMDQ2ZjUgIG1mbjog
-MDAwMDQ2ZjUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjBdICAgZ2ZuOiAwMDAwNDZm
-NiAgbWZuOiAwMDAwNDZmNg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyMF0gICBnZm46
-IDAwMDA0NmY3ICBtZm46IDAwMDA0NmY3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjIw
-XSAgIGdmbjogMDAwMDQ2ZjggIG1mbjogMDAwMDQ2ZjgNCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzI6MjBdICAgZ2ZuOiAwMDAwNDZmOSAgbWZuOiAwMDAwNDZmOQ0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMjoyMF0gICBnZm46IDAwMDA0NmZhICBtZm46IDAwMDA0NmZhDQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjIwXSAgIGdmbjogMDAwMDQ2ZmIgIG1mbjogMDAwMDQ2
-ZmINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjFdICAgZ2ZuOiAwMDAwNDZmYyAgbWZu
-OiAwMDAwNDZmYw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyMV0gICBnZm46IDAwMDA0
-NmZkICBtZm46IDAwMDA0NmZkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjIxXSAgIGdm
-bjogMDAwMDQ2ZmUgIG1mbjogMDAwMDQ2ZmUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
-MjFdICAgZ2ZuOiAwMDAwNDZmZiAgbWZuOiAwMDAwNDZmZg0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMjoyMV0gICBnZm46IDAwMDA0NzAwICBtZm46IDAwMDA0NzAwDQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMyOjIxXSAgIGdmbjogMDAwMDQ3MDEgIG1mbjogMDAwMDQ3MDENCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjFdICAgZ2ZuOiAwMDAwNDcwMiAgbWZuOiAwMDAw
-NDcwMg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyMV0gICBnZm46IDAwMDA0NzAzICBt
-Zm46IDAwMDA0NzAzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjIxXSAgIGdmbjogMDAw
-MDQ3MDQgIG1mbjogMDAwMDQ3MDQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjFdICAg
-Z2ZuOiAwMDAwNDcwNSAgbWZuOiAwMDAwNDcwNQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-MjoyMV0gICBnZm46IDAwMDA0NzA2ICBtZm46IDAwMDA0NzA2DQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMyOjIxXSAgIGdmbjogMDAwMDQ3MDcgIG1mbjogMDAwMDQ3MDcNCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzI6MjFdICAgZ2ZuOiAwMDAwNDcwOCAgbWZuOiAwMDAwNDcwOA0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyMV0gICBnZm46IDAwMDA0NzA5ICBtZm46IDAw
-MDA0NzA5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjIxXSAgIGdmbjogMDAwMDQ3MGEg
-IG1mbjogMDAwMDQ3MGENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjFdICAgZ2ZuOiAw
-MDAwNDcwYiAgbWZuOiAwMDAwNDcwYg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyMV0g
-ICBnZm46IDAwMDA0NzBjICBtZm46IDAwMDA0NzBjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMyOjIxXSAgIGdmbjogMDAwMDQ3MGQgIG1mbjogMDAwMDQ3MGQNCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzI6MjFdICAgZ2ZuOiAwMDAwNDcwZSAgbWZuOiAwMDAwNDcwZQ0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMjoyMV0gICBnZm46IDAwMDA0NzBmICBtZm46IDAwMDA0NzBm
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjIxXSAgIGdmbjogMDAwMDQ3MTAgIG1mbjog
-MDAwMDQ3MTANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjFdICAgZ2ZuOiAwMDAwNDcx
-MSAgbWZuOiAwMDAwNDcxMQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyMV0gICBnZm46
-IDAwMDA0NzEyICBtZm46IDAwMDA0NzEyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjIx
-XSAgIGdmbjogMDAwMDQ3MTMgIG1mbjogMDAwMDQ3MTMNCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzI6MjFdICAgZ2ZuOiAwMDAwNDcxNCAgbWZuOiAwMDAwNDcxNA0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMjoyMV0gICBnZm46IDAwMDA0NzE1ICBtZm46IDAwMDA0NzE1DQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjIxXSAgIGdmbjogMDAwMDQ3MTYgIG1mbjogMDAwMDQ3
-MTYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjFdICAgZ2ZuOiAwMDAwNDcxNyAgbWZu
-OiAwMDAwNDcxNw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyMV0gICBnZm46IDAwMDA0
-NzE4ICBtZm46IDAwMDA0NzE4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjIxXSAgIGdm
-bjogMDAwMDQ3MTkgIG1mbjogMDAwMDQ3MTkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
-MjFdICAgZ2ZuOiAwMDAwNDcxYSAgbWZuOiAwMDAwNDcxYQ0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMjoyMV0gICBnZm46IDAwMDA0NzFiICBtZm46IDAwMDA0NzFiDQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMyOjIxXSAgIGdmbjogMDAwMDQ3MWMgIG1mbjogMDAwMDQ3MWMNCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjFdICAgZ2ZuOiAwMDAwNDcxZCAgbWZuOiAwMDAw
-NDcxZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyMV0gICBnZm46IDAwMDA0NzFlICBt
-Zm46IDAwMDA0NzFlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjIxXSAgIGdmbjogMDAw
-MDQ3MWYgIG1mbjogMDAwMDQ3MWYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjFdICAg
-Z2ZuOiAwMDAwNDcyMCAgbWZuOiAwMDAwNDcyMA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-MjoyMV0gICBnZm46IDAwMDA0NzIxICBtZm46IDAwMDA0NzIxDQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMyOjIxXSAgIGdmbjogMDAwMDQ3MjIgIG1mbjogMDAwMDQ3MjINCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzI6MjFdICAgZ2ZuOiAwMDAwNDcyMyAgbWZuOiAwMDAwNDcyMw0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyMV0gICBnZm46IDAwMDA0NzI0ICBtZm46IDAw
-MDA0NzI0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjIxXSAgIGdmbjogMDAwMDQ3MjUg
-IG1mbjogMDAwMDQ3MjUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjFdICAgZ2ZuOiAw
-MDAwNDcyNiAgbWZuOiAwMDAwNDcyNg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyMV0g
-ICBnZm46IDAwMDA0NzI3ICBtZm46IDAwMDA0NzI3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMyOjIxXSAgIGdmbjogMDAwMDQ3MjggIG1mbjogMDAwMDQ3MjgNCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzI6MjFdICAgZ2ZuOiAwMDAwNDcyOSAgbWZuOiAwMDAwNDcyOQ0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMjoyMV0gICBnZm46IDAwMDA0NzJhICBtZm46IDAwMDA0NzJh
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjIxXSAgIGdmbjogMDAwMDQ3MmIgIG1mbjog
-MDAwMDQ3MmINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjFdICAgZ2ZuOiAwMDAwNDcy
-YyAgbWZuOiAwMDAwNDcyYw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyMV0gICBnZm46
-IDAwMDA0NzJkICBtZm46IDAwMDA0NzJkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjIx
-XSAgIGdmbjogMDAwMDQ3MmUgIG1mbjogMDAwMDQ3MmUNCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzI6MjFdICAgZ2ZuOiAwMDAwNDcyZiAgbWZuOiAwMDAwNDcyZg0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMjoyMV0gICBnZm46IDAwMDA0NzMwICBtZm46IDAwMDA0NzMwDQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjIxXSAgIGdmbjogMDAwMDQ3MzEgIG1mbjogMDAwMDQ3
-MzENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjFdICAgZ2ZuOiAwMDAwNDczMiAgbWZu
-OiAwMDAwNDczMg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyMV0gICBnZm46IDAwMDA0
-NzMzICBtZm46IDAwMDA0NzMzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjIxXSAgIGdm
-bjogMDAwMDQ3MzQgIG1mbjogMDAwMDQ3MzQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
-MjFdICAgZ2ZuOiAwMDAwNDczNSAgbWZuOiAwMDAwNDczNQ0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMjoyMV0gICBnZm46IDAwMDA0NzM2ICBtZm46IDAwMDA0NzM2DQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMyOjIxXSAgIGdmbjogMDAwMDQ3MzcgIG1mbjogMDAwMDQ3MzcNCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjFdICAgZ2ZuOiAwMDAwNDczOCAgbWZuOiAwMDAw
-NDczOA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyMV0gICBnZm46IDAwMDA0NzM5ICBt
-Zm46IDAwMDA0NzM5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjIxXSAgIGdmbjogMDAw
-MDQ3M2EgIG1mbjogMDAwMDQ3M2ENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjFdICAg
-Z2ZuOiAwMDAwNDczYiAgbWZuOiAwMDAwNDczYg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-MjoyMl0gICBnZm46IDAwMDA0NzNjICBtZm46IDAwMDA0NzNjDQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMyOjIyXSAgIGdmbjogMDAwMDQ3M2QgIG1mbjogMDAwMDQ3M2QNCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzI6MjJdICAgZ2ZuOiAwMDAwNDczZSAgbWZuOiAwMDAwNDczZQ0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyMl0gICBnZm46IDAwMDA0NzNmICBtZm46IDAw
-MDA0NzNmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjIyXSAgIGdmbjogMDAwMDQ3NDAg
-IG1mbjogMDAwMDQ3NDANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjJdICAgZ2ZuOiAw
-MDAwNDc0MSAgbWZuOiAwMDAwNDc0MQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyMl0g
-ICBnZm46IDAwMDA0NzQyICBtZm46IDAwMDA0NzQyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMyOjIyXSAgIGdmbjogMDAwMDQ3NDMgIG1mbjogMDAwMDQ3NDMNCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzI6MjJdICAgZ2ZuOiAwMDAwNDc0NCAgbWZuOiAwMDAwNDc0NA0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMjoyMl0gICBnZm46IDAwMDA0NzQ1ICBtZm46IDAwMDA0NzQ1
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjIyXSAgIGdmbjogMDAwMDQ3NDYgIG1mbjog
-MDAwMDQ3NDYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjJdICAgZ2ZuOiAwMDAwNDc0
-NyAgbWZuOiAwMDAwNDc0Nw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyMl0gICBnZm46
-IDAwMDA0NzQ4ICBtZm46IDAwMDA0NzQ4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjIy
-XSAgIGdmbjogMDAwMDQ3NDkgIG1mbjogMDAwMDQ3NDkNCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzI6MjJdICAgZ2ZuOiAwMDAwNDc0YSAgbWZuOiAwMDAwNDc0YQ0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMjoyMl0gICBnZm46IDAwMDA0NzRiICBtZm46IDAwMDA0NzRiDQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjIyXSAgIGdmbjogMDAwMDQ3NGMgIG1mbjogMDAwMDQ3
-NGMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjJdICAgZ2ZuOiAwMDAwNDc0ZCAgbWZu
-OiAwMDAwNDc0ZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyMl0gICBnZm46IDAwMDA0
-NzRlICBtZm46IDAwMDA0NzRlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjIyXSAgIGdm
-bjogMDAwMDQ3NGYgIG1mbjogMDAwMDQ3NGYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
-MjJdICAgZ2ZuOiAwMDAwNDc1MCAgbWZuOiAwMDAwNDc1MA0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMjoyMl0gICBnZm46IDAwMDA0NzUxICBtZm46IDAwMDA0NzUxDQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMyOjIyXSAgIGdmbjogMDAwMDQ3NTIgIG1mbjogMDAwMDQ3NTINCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjJdICAgZ2ZuOiAwMDAwNDc1MyAgbWZuOiAwMDAw
-NDc1Mw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyMl0gICBnZm46IDAwMDA0NzU0ICBt
-Zm46IDAwMDA0NzU0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjIyXSAgIGdmbjogMDAw
-MDQ3NTUgIG1mbjogMDAwMDQ3NTUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjJdICAg
-Z2ZuOiAwMDAwNDc1NiAgbWZuOiAwMDAwNDc1Ng0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-MjoyMl0gICBnZm46IDAwMDA0NzU3ICBtZm46IDAwMDA0NzU3DQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMyOjIyXSAgIGdmbjogMDAwMDQ3NTggIG1mbjogMDAwMDQ3NTgNCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzI6MjJdICAgZ2ZuOiAwMDAwNDc1OSAgbWZuOiAwMDAwNDc1OQ0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyMl0gICBnZm46IDAwMDA0NzVhICBtZm46IDAw
-MDA0NzVhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjIyXSAgIGdmbjogMDAwMDQ3NWIg
-IG1mbjogMDAwMDQ3NWINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjJdICAgZ2ZuOiAw
-MDAwNDc1YyAgbWZuOiAwMDAwNDc1Yw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyMl0g
-ICBnZm46IDAwMDA0NzVkICBtZm46IDAwMDA0NzVkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMyOjIyXSAgIGdmbjogMDAwMDQ3NWUgIG1mbjogMDAwMDQ3NWUNCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzI6MjJdICAgZ2ZuOiAwMDAwNDc1ZiAgbWZuOiAwMDAwNDc1Zg0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMjoyMl0gICBnZm46IDAwMDA0NzYwICBtZm46IDAwMDA0NzYw
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjIyXSAgIGdmbjogMDAwMDQ3NjEgIG1mbjog
-MDAwMDQ3NjENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjJdICAgZ2ZuOiAwMDAwNDc2
-MiAgbWZuOiAwMDAwNDc2Mg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyMl0gICBnZm46
-IDAwMDA0NzYzICBtZm46IDAwMDA0NzYzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjIy
-XSAgIGdmbjogMDAwMDQ3NjQgIG1mbjogMDAwMDQ3NjQNCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzI6MjJdICAgZ2ZuOiAwMDAwNDc2NSAgbWZuOiAwMDAwNDc2NQ0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMjoyMl0gICBnZm46IDAwMDA0NzY2ICBtZm46IDAwMDA0NzY2DQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjIyXSAgIGdmbjogMDAwMDQ3NjcgIG1mbjogMDAwMDQ3
-NjcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjJdICAgZ2ZuOiAwMDAwNDc2OCAgbWZu
-OiAwMDAwNDc2OA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyMl0gICBnZm46IDAwMDA0
-NzY5ICBtZm46IDAwMDA0NzY5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjIyXSAgIGdm
-bjogMDAwMDQ3NmEgIG1mbjogMDAwMDQ3NmENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
-MjJdICAgZ2ZuOiAwMDAwNDc2YiAgbWZuOiAwMDAwNDc2Yg0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMjoyMl0gICBnZm46IDAwMDA0NzZjICBtZm46IDAwMDA0NzZjDQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMyOjIyXSAgIGdmbjogMDAwMDQ3NmQgIG1mbjogMDAwMDQ3NmQNCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjJdICAgZ2ZuOiAwMDAwNDc2ZSAgbWZuOiAwMDAw
-NDc2ZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyMl0gICBnZm46IDAwMDA0NzZmICBt
-Zm46IDAwMDA0NzZmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjIyXSAgIGdmbjogMDAw
-MDQ3NzAgIG1mbjogMDAwMDQ3NzANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjJdICAg
-Z2ZuOiAwMDAwNDc3MSAgbWZuOiAwMDAwNDc3MQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-MjoyMl0gICBnZm46IDAwMDA0NzcyICBtZm46IDAwMDA0NzcyDQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMyOjIyXSAgIGdmbjogMDAwMDQ3NzMgIG1mbjogMDAwMDQ3NzMNCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzI6MjJdICAgZ2ZuOiAwMDAwNDc3NCAgbWZuOiAwMDAwNDc3NA0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyMl0gICBnZm46IDAwMDA0Nzc1ICBtZm46IDAw
-MDA0Nzc1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjIyXSAgIGdmbjogMDAwMDQ3NzYg
-IG1mbjogMDAwMDQ3NzYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjJdICAgZ2ZuOiAw
-MDAwNDc3NyAgbWZuOiAwMDAwNDc3Nw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyMl0g
-ICBnZm46IDAwMDA0Nzc4ICBtZm46IDAwMDA0Nzc4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMyOjIyXSAgIGdmbjogMDAwMDQ3NzkgIG1mbjogMDAwMDQ3NzkNCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzI6MjJdICAgZ2ZuOiAwMDAwNDc3YSAgbWZuOiAwMDAwNDc3YQ0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMjoyMl0gICBnZm46IDAwMDA0NzdiICBtZm46IDAwMDA0Nzdi
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjIyXSAgIGdmbjogMDAwMDQ3N2MgIG1mbjog
-MDAwMDQ3N2MNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjNdICAgZ2ZuOiAwMDAwNDc3
-ZCAgbWZuOiAwMDAwNDc3ZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyM10gICBnZm46
-IDAwMDA0NzdlICBtZm46IDAwMDA0NzdlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjIz
-XSAgIGdmbjogMDAwMDQ3N2YgIG1mbjogMDAwMDQ3N2YNCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzI6MjNdICAgZ2ZuOiAwMDAwNDc4MCAgbWZuOiAwMDAwNDc4MA0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMjoyM10gICBnZm46IDAwMDA0NzgxICBtZm46IDAwMDA0NzgxDQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjIzXSAgIGdmbjogMDAwMDQ3ODIgIG1mbjogMDAwMDQ3
-ODINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjNdICAgZ2ZuOiAwMDAwNDc4MyAgbWZu
-OiAwMDAwNDc4Mw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyM10gICBnZm46IDAwMDA0
-Nzg0ICBtZm46IDAwMDA0Nzg0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjIzXSAgIGdm
-bjogMDAwMDQ3ODUgIG1mbjogMDAwMDQ3ODUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
-MjNdICAgZ2ZuOiAwMDAwNDc4NiAgbWZuOiAwMDAwNDc4Ng0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMjoyM10gICBnZm46IDAwMDA0Nzg3ICBtZm46IDAwMDA0Nzg3DQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMyOjIzXSAgIGdmbjogMDAwMDQ3ODggIG1mbjogMDAwMDQ3ODgNCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjNdICAgZ2ZuOiAwMDAwNDc4OSAgbWZuOiAwMDAw
-NDc4OQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyM10gICBnZm46IDAwMDA0NzhhICBt
-Zm46IDAwMDA0NzhhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjIzXSAgIGdmbjogMDAw
-MDQ3OGIgIG1mbjogMDAwMDQ3OGINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjNdICAg
-Z2ZuOiAwMDAwNDc4YyAgbWZuOiAwMDAwNDc4Yw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-MjoyM10gICBnZm46IDAwMDA0NzhkICBtZm46IDAwMDA0NzhkDQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMyOjIzXSAgIGdmbjogMDAwMDQ3OGUgIG1mbjogMDAwMDQ3OGUNCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzI6MjNdICAgZ2ZuOiAwMDAwNDc4ZiAgbWZuOiAwMDAwNDc4Zg0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyM10gICBnZm46IDAwMDA0NzkwICBtZm46IDAw
-MDA0NzkwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjIzXSAgIGdmbjogMDAwMDQ3OTEg
-IG1mbjogMDAwMDQ3OTENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjNdICAgZ2ZuOiAw
-MDAwNDc5MiAgbWZuOiAwMDAwNDc5Mg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyM10g
-ICBnZm46IDAwMDA0NzkzICBtZm46IDAwMDA0NzkzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMyOjIzXSAgIGdmbjogMDAwMDQ3OTQgIG1mbjogMDAwMDQ3OTQNCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzI6MjNdICAgZ2ZuOiAwMDAwNDc5NSAgbWZuOiAwMDAwNDc5NQ0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMjoyM10gICBnZm46IDAwMDA0Nzk2ICBtZm46IDAwMDA0Nzk2
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjIzXSAgIGdmbjogMDAwMDQ3OTcgIG1mbjog
-MDAwMDQ3OTcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjNdICAgZ2ZuOiAwMDAwNDc5
-OCAgbWZuOiAwMDAwNDc5OA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyM10gICBnZm46
-IDAwMDA0Nzk5ICBtZm46IDAwMDA0Nzk5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjIz
-XSAgIGdmbjogMDAwMDQ3OWEgIG1mbjogMDAwMDQ3OWENCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzI6MjNdICAgZ2ZuOiAwMDAwNDc5YiAgbWZuOiAwMDAwNDc5Yg0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMjoyM10gICBnZm46IDAwMDA0NzljICBtZm46IDAwMDA0NzljDQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjIzXSAgIGdmbjogMDAwMDQ3OWQgIG1mbjogMDAwMDQ3
-OWQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjNdICAgZ2ZuOiAwMDAwNDc5ZSAgbWZu
-OiAwMDAwNDc5ZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyM10gICBnZm46IDAwMDA0
-NzlmICBtZm46IDAwMDA0NzlmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjIzXSAgIGdm
-bjogMDAwMDQ3YTAgIG1mbjogMDAwMDQ3YTANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
-MjNdICAgZ2ZuOiAwMDAwNDdhMSAgbWZuOiAwMDAwNDdhMQ0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMjoyM10gICBnZm46IDAwMDA0N2EyICBtZm46IDAwMDA0N2EyDQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMyOjIzXSAgIGdmbjogMDAwMDQ3YTMgIG1mbjogMDAwMDQ3YTMNCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjNdICAgZ2ZuOiAwMDAwNDdhNCAgbWZuOiAwMDAw
-NDdhNA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyM10gICBnZm46IDAwMDA0N2E1ICBt
-Zm46IDAwMDA0N2E1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjIzXSAgIGdmbjogMDAw
-MDQ3YTYgIG1mbjogMDAwMDQ3YTYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjNdICAg
-Z2ZuOiAwMDAwNDdhNyAgbWZuOiAwMDAwNDdhNw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-MjoyM10gICBnZm46IDAwMDA0N2E4ICBtZm46IDAwMDA0N2E4DQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMyOjIzXSAgIGdmbjogMDAwMDQ3YTkgIG1mbjogMDAwMDQ3YTkNCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzI6MjNdICAgZ2ZuOiAwMDAwNDdhYSAgbWZuOiAwMDAwNDdhYQ0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyM10gICBnZm46IDAwMDA0N2FiICBtZm46IDAw
-MDA0N2FiDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjIzXSAgIGdmbjogMDAwMDQ3YWMg
-IG1mbjogMDAwMDQ3YWMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjNdICAgZ2ZuOiAw
-MDAwNDdhZCAgbWZuOiAwMDAwNDdhZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyM10g
-ICBnZm46IDAwMDA0N2FlICBtZm46IDAwMDA0N2FlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMyOjIzXSAgIGdmbjogMDAwMDQ3YWYgIG1mbjogMDAwMDQ3YWYNCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzI6MjNdICAgZ2ZuOiAwMDAwNDdiMCAgbWZuOiAwMDAwNDdiMA0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMjoyM10gICBnZm46IDAwMDA0N2IxICBtZm46IDAwMDA0N2Ix
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjIzXSAgIGdmbjogMDAwMDQ3YjIgIG1mbjog
-MDAwMDQ3YjINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjNdICAgZ2ZuOiAwMDAwNDdi
-MyAgbWZuOiAwMDAwNDdiMw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyM10gICBnZm46
-IDAwMDA0N2I0ICBtZm46IDAwMDA0N2I0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjIz
-XSAgIGdmbjogMDAwMDQ3YjUgIG1mbjogMDAwMDQ3YjUNCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzI6MjNdICAgZ2ZuOiAwMDAwNDdiNiAgbWZuOiAwMDAwNDdiNg0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMjoyM10gICBnZm46IDAwMDA0N2I3ICBtZm46IDAwMDA0N2I3DQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjIzXSAgIGdmbjogMDAwMDQ3YjggIG1mbjogMDAwMDQ3
-YjgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjNdICAgZ2ZuOiAwMDAwNDdiOSAgbWZu
-OiAwMDAwNDdiOQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyM10gICBnZm46IDAwMDA0
-N2JhICBtZm46IDAwMDA0N2JhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjIzXSAgIGdm
-bjogMDAwMDQ3YmIgIG1mbjogMDAwMDQ3YmINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
-MjNdICAgZ2ZuOiAwMDAwNDdiYyAgbWZuOiAwMDAwNDdiYw0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMjoyNF0gICBnZm46IDAwMDA0N2JkICBtZm46IDAwMDA0N2JkDQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMyOjI0XSAgIGdmbjogMDAwMDQ3YmUgIG1mbjogMDAwMDQ3YmUNCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjRdICAgZ2ZuOiAwMDAwNDdiZiAgbWZuOiAwMDAw
-NDdiZg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyNF0gICBnZm46IDAwMDA0N2MwICBt
-Zm46IDAwMDA0N2MwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI0XSAgIGdmbjogMDAw
-MDQ3YzEgIG1mbjogMDAwMDQ3YzENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjRdICAg
-Z2ZuOiAwMDAwNDdjMiAgbWZuOiAwMDAwNDdjMg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-MjoyNF0gICBnZm46IDAwMDA0N2MzICBtZm46IDAwMDA0N2MzDQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMyOjI0XSAgIGdmbjogMDAwMDQ3YzQgIG1mbjogMDAwMDQ3YzQNCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzI6MjRdICAgZ2ZuOiAwMDAwNDdjNSAgbWZuOiAwMDAwNDdjNQ0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyNF0gICBnZm46IDAwMDA0N2M2ICBtZm46IDAw
-MDA0N2M2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI0XSAgIGdmbjogMDAwMDQ3Yzcg
-IG1mbjogMDAwMDQ3YzcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjRdICAgZ2ZuOiAw
-MDAwNDdjOCAgbWZuOiAwMDAwNDdjOA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyNF0g
-ICBnZm46IDAwMDA0N2M5ICBtZm46IDAwMDA0N2M5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMyOjI0XSAgIGdmbjogMDAwMDQ3Y2EgIG1mbjogMDAwMDQ3Y2ENCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzI6MjRdICAgZ2ZuOiAwMDAwNDdjYiAgbWZuOiAwMDAwNDdjYg0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMjoyNF0gICBnZm46IDAwMDA0N2NjICBtZm46IDAwMDA0N2Nj
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI0XSAgIGdmbjogMDAwMDQ3Y2QgIG1mbjog
-MDAwMDQ3Y2QNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjRdICAgZ2ZuOiAwMDAwNDdj
-ZSAgbWZuOiAwMDAwNDdjZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyNF0gICBnZm46
-IDAwMDA0N2NmICBtZm46IDAwMDA0N2NmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI0
-XSAgIGdmbjogMDAwMDQ3ZDAgIG1mbjogMDAwMDQ3ZDANCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzI6MjRdICAgZ2ZuOiAwMDAwNDdkMSAgbWZuOiAwMDAwNDdkMQ0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMjoyNF0gICBnZm46IDAwMDA0N2QyICBtZm46IDAwMDA0N2QyDQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI0XSAgIGdmbjogMDAwMDQ3ZDMgIG1mbjogMDAwMDQ3
-ZDMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjRdICAgZ2ZuOiAwMDAwNDdkNCAgbWZu
-OiAwMDAwNDdkNA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyNF0gICBnZm46IDAwMDA0
-N2Q1ICBtZm46IDAwMDA0N2Q1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI0XSAgIGdm
-bjogMDAwMDQ3ZDYgIG1mbjogMDAwMDQ3ZDYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
-MjRdICAgZ2ZuOiAwMDAwNDdkNyAgbWZuOiAwMDAwNDdkNw0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMjoyNF0gICBnZm46IDAwMDA0N2Q4ICBtZm46IDAwMDA0N2Q4DQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMyOjI0XSAgIGdmbjogMDAwMDQ3ZDkgIG1mbjogMDAwMDQ3ZDkNCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjRdICAgZ2ZuOiAwMDAwNDdkYSAgbWZuOiAwMDAw
-NDdkYQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyNF0gICBnZm46IDAwMDA0N2RiICBt
-Zm46IDAwMDA0N2RiDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI0XSAgIGdmbjogMDAw
-MDQ3ZGMgIG1mbjogMDAwMDQ3ZGMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjRdICAg
-Z2ZuOiAwMDAwNDdkZCAgbWZuOiAwMDAwNDdkZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-MjoyNF0gICBnZm46IDAwMDA0N2RlICBtZm46IDAwMDA0N2RlDQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMyOjI0XSAgIGdmbjogMDAwMDQ3ZGYgIG1mbjogMDAwMDQ3ZGYNCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzI6MjRdICAgZ2ZuOiAwMDAwNDdlMCAgbWZuOiAwMDAwNDdlMA0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyNF0gICBnZm46IDAwMDA0N2UxICBtZm46IDAw
-MDA0N2UxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI0XSAgIGdmbjogMDAwMDQ3ZTIg
-IG1mbjogMDAwMDQ3ZTINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjRdICAgZ2ZuOiAw
-MDAwNDdlMyAgbWZuOiAwMDAwNDdlMw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyNF0g
-ICBnZm46IDAwMDA0N2U0ICBtZm46IDAwMDA0N2U0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMyOjI0XSAgIGdmbjogMDAwMDQ3ZTUgIG1mbjogMDAwMDQ3ZTUNCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzI6MjRdICAgZ2ZuOiAwMDAwNDdlNiAgbWZuOiAwMDAwNDdlNg0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMjoyNF0gICBnZm46IDAwMDA0N2U3ICBtZm46IDAwMDA0N2U3
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI0XSAgIGdmbjogMDAwMDQ3ZTggIG1mbjog
-MDAwMDQ3ZTgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjRdICAgZ2ZuOiAwMDAwNDdl
-OSAgbWZuOiAwMDAwNDdlOQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyNF0gICBnZm46
-IDAwMDA0N2VhICBtZm46IDAwMDA0N2VhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI0
-XSAgIGdmbjogMDAwMDQ3ZWIgIG1mbjogMDAwMDQ3ZWINCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzI6MjRdICAgZ2ZuOiAwMDAwNDdlYyAgbWZuOiAwMDAwNDdlYw0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMjoyNF0gICBnZm46IDAwMDA0N2VkICBtZm46IDAwMDA0N2VkDQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI0XSAgIGdmbjogMDAwMDQ3ZWUgIG1mbjogMDAwMDQ3
-ZWUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjRdICAgZ2ZuOiAwMDAwNDdlZiAgbWZu
-OiAwMDAwNDdlZg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyNF0gICBnZm46IDAwMDA0
-N2YwICBtZm46IDAwMDA0N2YwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI0XSAgIGdm
-bjogMDAwMDQ3ZjEgIG1mbjogMDAwMDQ3ZjENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
-MjRdICAgZ2ZuOiAwMDAwNDdmMiAgbWZuOiAwMDAwNDdmMg0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMjoyNF0gICBnZm46IDAwMDA0N2YzICBtZm46IDAwMDA0N2YzDQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMyOjI0XSAgIGdmbjogMDAwMDQ3ZjQgIG1mbjogMDAwMDQ3ZjQNCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjRdICAgZ2ZuOiAwMDAwNDdmNSAgbWZuOiAwMDAw
-NDdmNQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyNF0gICBnZm46IDAwMDA0N2Y2ICBt
-Zm46IDAwMDA0N2Y2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI0XSAgIGdmbjogMDAw
-MDQ3ZjcgIG1mbjogMDAwMDQ3ZjcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjRdICAg
-Z2ZuOiAwMDAwNDdmOCAgbWZuOiAwMDAwNDdmOA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-MjoyNF0gICBnZm46IDAwMDA0N2Y5ICBtZm46IDAwMDA0N2Y5DQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMyOjI0XSAgIGdmbjogMDAwMDQ3ZmEgIG1mbjogMDAwMDQ3ZmENCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzI6MjRdICAgZ2ZuOiAwMDAwNDdmYiAgbWZuOiAwMDAwNDdmYg0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyNF0gICBnZm46IDAwMDA0N2ZjICBtZm46IDAw
-MDA0N2ZjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI1XSAgIGdmbjogMDAwMDQ3ZmQg
-IG1mbjogMDAwMDQ3ZmQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjVdICAgZ2ZuOiAw
-MDAwNDdmZSAgbWZuOiAwMDAwNDdmZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyNV0g
-ICBnZm46IDAwMDA0N2ZmICBtZm46IDAwMDA0N2ZmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMyOjI1XSAgIGdmbjogMDAwMDQ4MDAgIG1mbjogMDAwMDQ4MDANCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzI6MjVdICAgZ2ZuOiAwMDAwNDgwMSAgbWZuOiAwMDAwNDgwMQ0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMjoyNV0gICBnZm46IDAwMDA0ODAyICBtZm46IDAwMDA0ODAy
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI1XSAgIGdmbjogMDAwMDQ4MDMgIG1mbjog
-MDAwMDQ4MDMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjVdICAgZ2ZuOiAwMDAwNDgw
-NCAgbWZuOiAwMDAwNDgwNA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyNV0gICBnZm46
-IDAwMDA0ODA1ICBtZm46IDAwMDA0ODA1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI1
-XSAgIGdmbjogMDAwMDQ4MDYgIG1mbjogMDAwMDQ4MDYNCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzI6MjVdICAgZ2ZuOiAwMDAwNDgwNyAgbWZuOiAwMDAwNDgwNw0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMjoyNV0gICBnZm46IDAwMDA0ODA4ICBtZm46IDAwMDA0ODA4DQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI1XSAgIGdmbjogMDAwMDQ4MDkgIG1mbjogMDAwMDQ4
-MDkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjVdICAgZ2ZuOiAwMDAwNDgwYSAgbWZu
-OiAwMDAwNDgwYQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyNV0gICBnZm46IDAwMDA0
-ODBiICBtZm46IDAwMDA0ODBiDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI1XSAgIGdm
-bjogMDAwMDQ4MGMgIG1mbjogMDAwMDQ4MGMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
-MjVdICAgZ2ZuOiAwMDAwNDgwZCAgbWZuOiAwMDAwNDgwZA0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMjoyNV0gICBnZm46IDAwMDA0ODBlICBtZm46IDAwMDA0ODBlDQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMyOjI1XSAgIGdmbjogMDAwMDQ4MGYgIG1mbjogMDAwMDQ4MGYNCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjVdICAgZ2ZuOiAwMDAwNDgxMCAgbWZuOiAwMDAw
-NDgxMA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyNV0gICBnZm46IDAwMDA0ODExICBt
-Zm46IDAwMDA0ODExDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI1XSAgIGdmbjogMDAw
-MDQ4MTIgIG1mbjogMDAwMDQ4MTINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjVdICAg
-Z2ZuOiAwMDAwNDgxMyAgbWZuOiAwMDAwNDgxMw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-MjoyNV0gICBnZm46IDAwMDA0ODE0ICBtZm46IDAwMDA0ODE0DQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMyOjI1XSAgIGdmbjogMDAwMDQ4MTUgIG1mbjogMDAwMDQ4MTUNCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzI6MjVdICAgZ2ZuOiAwMDAwNDgxNiAgbWZuOiAwMDAwNDgxNg0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyNV0gICBnZm46IDAwMDA0ODE3ICBtZm46IDAw
-MDA0ODE3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI1XSAgIGdmbjogMDAwMDQ4MTgg
-IG1mbjogMDAwMDQ4MTgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjVdICAgZ2ZuOiAw
-MDAwNDgxOSAgbWZuOiAwMDAwNDgxOQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyNV0g
-ICBnZm46IDAwMDA0ODFhICBtZm46IDAwMDA0ODFhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMyOjI1XSAgIGdmbjogMDAwMDQ4MWIgIG1mbjogMDAwMDQ4MWINCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzI6MjVdICAgZ2ZuOiAwMDAwNDgxYyAgbWZuOiAwMDAwNDgxYw0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMjoyNV0gICBnZm46IDAwMDA0ODFkICBtZm46IDAwMDA0ODFk
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI1XSAgIGdmbjogMDAwMDQ4MWUgIG1mbjog
-MDAwMDQ4MWUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjVdICAgZ2ZuOiAwMDAwNDgx
-ZiAgbWZuOiAwMDAwNDgxZg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyNV0gICBnZm46
-IDAwMDA0ODIwICBtZm46IDAwMDA0ODIwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI1
-XSAgIGdmbjogMDAwMDQ4MjEgIG1mbjogMDAwMDQ4MjENCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzI6MjVdICAgZ2ZuOiAwMDAwNDgyMiAgbWZuOiAwMDAwNDgyMg0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMjoyNV0gICBnZm46IDAwMDA0ODIzICBtZm46IDAwMDA0ODIzDQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI1XSAgIGdmbjogMDAwMDQ4MjQgIG1mbjogMDAwMDQ4
-MjQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjVdICAgZ2ZuOiAwMDAwNDgyNSAgbWZu
-OiAwMDAwNDgyNQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyNV0gICBnZm46IDAwMDA0
-ODI2ICBtZm46IDAwMDA0ODI2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI1XSAgIGdm
-bjogMDAwMDQ4MjcgIG1mbjogMDAwMDQ4MjcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
-MjVdICAgZ2ZuOiAwMDAwNDgyOCAgbWZuOiAwMDAwNDgyOA0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMjoyNV0gICBnZm46IDAwMDA0ODI5ICBtZm46IDAwMDA0ODI5DQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMyOjI1XSAgIGdmbjogMDAwMDQ4MmEgIG1mbjogMDAwMDQ4MmENCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjVdICAgZ2ZuOiAwMDAwNDgyYiAgbWZuOiAwMDAw
-NDgyYg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyNV0gICBnZm46IDAwMDA0ODJjICBt
-Zm46IDAwMDA0ODJjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI1XSAgIGdmbjogMDAw
-MDQ4MmQgIG1mbjogMDAwMDQ4MmQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjVdICAg
-Z2ZuOiAwMDAwNDgyZSAgbWZuOiAwMDAwNDgyZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-MjoyNV0gICBnZm46IDAwMDA0ODJmICBtZm46IDAwMDA0ODJmDQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMyOjI1XSAgIGdmbjogMDAwMDQ4MzAgIG1mbjogMDAwMDQ4MzANCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzI6MjVdICAgZ2ZuOiAwMDAwNDgzMSAgbWZuOiAwMDAwNDgzMQ0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyNV0gICBnZm46IDAwMDA0ODMyICBtZm46IDAw
-MDA0ODMyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI1XSAgIGdmbjogMDAwMDQ4MzMg
-IG1mbjogMDAwMDQ4MzMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjVdICAgZ2ZuOiAw
-MDAwNDgzNCAgbWZuOiAwMDAwNDgzNA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyNV0g
-ICBnZm46IDAwMDA0ODM1ICBtZm46IDAwMDA0ODM1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMyOjI1XSAgIGdmbjogMDAwMDQ4MzYgIG1mbjogMDAwMDQ4MzYNCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzI6MjVdICAgZ2ZuOiAwMDAwNDgzNyAgbWZuOiAwMDAwNDgzNw0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMjoyNV0gICBnZm46IDAwMDA0ODM4ICBtZm46IDAwMDA0ODM4
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI1XSAgIGdmbjogMDAwMDQ4MzkgIG1mbjog
-MDAwMDQ4MzkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjVdICAgZ2ZuOiAwMDAwNDgz
-YSAgbWZuOiAwMDAwNDgzYQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyNV0gICBnZm46
-IDAwMDA0ODNiICBtZm46IDAwMDA0ODNiDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI1
-XSAgIGdmbjogMDAwMDQ4M2MgIG1mbjogMDAwMDQ4M2MNCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzI6MjZdICAgZ2ZuOiAwMDAwNDgzZCAgbWZuOiAwMDAwNDgzZA0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMjoyNl0gICBnZm46IDAwMDA0ODNlICBtZm46IDAwMDA0ODNlDQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI2XSAgIGdmbjogMDAwMDQ4M2YgIG1mbjogMDAwMDQ4
-M2YNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjZdICAgZ2ZuOiAwMDAwNDg0MCAgbWZu
-OiAwMDAwNDg0MA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyNl0gICBnZm46IDAwMDA0
-ODQxICBtZm46IDAwMDA0ODQxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI2XSAgIGdm
-bjogMDAwMDQ4NDIgIG1mbjogMDAwMDQ4NDINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
-MjZdICAgZ2ZuOiAwMDAwNDg0MyAgbWZuOiAwMDAwNDg0Mw0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMjoyNl0gICBnZm46IDAwMDA0ODQ0ICBtZm46IDAwMDA0ODQ0DQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMyOjI2XSAgIGdmbjogMDAwMDQ4NDUgIG1mbjogMDAwMDQ4NDUNCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjZdICAgZ2ZuOiAwMDAwNDg0NiAgbWZuOiAwMDAw
-NDg0Ng0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyNl0gICBnZm46IDAwMDA0ODQ3ICBt
-Zm46IDAwMDA0ODQ3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI2XSAgIGdmbjogMDAw
-MDQ4NDggIG1mbjogMDAwMDQ4NDgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjZdICAg
-Z2ZuOiAwMDAwNDg0OSAgbWZuOiAwMDAwNDg0OQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-MjoyNl0gICBnZm46IDAwMDA0ODRhICBtZm46IDAwMDA0ODRhDQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMyOjI2XSAgIGdmbjogMDAwMDQ4NGIgIG1mbjogMDAwMDQ4NGINCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzI6MjZdICAgZ2ZuOiAwMDAwNDg0YyAgbWZuOiAwMDAwNDg0Yw0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyNl0gICBnZm46IDAwMDA0ODRkICBtZm46IDAw
-MDA0ODRkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI2XSAgIGdmbjogMDAwMDQ4NGUg
-IG1mbjogMDAwMDQ4NGUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjZdICAgZ2ZuOiAw
-MDAwNDg0ZiAgbWZuOiAwMDAwNDg0Zg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyNl0g
-ICBnZm46IDAwMDA0ODUwICBtZm46IDAwMDA0ODUwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMyOjI2XSAgIGdmbjogMDAwMDQ4NTEgIG1mbjogMDAwMDQ4NTENCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzI6MjZdICAgZ2ZuOiAwMDAwNDg1MiAgbWZuOiAwMDAwNDg1Mg0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMjoyNl0gICBnZm46IDAwMDA0ODUzICBtZm46IDAwMDA0ODUz
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI2XSAgIGdmbjogMDAwMDQ4NTQgIG1mbjog
-MDAwMDQ4NTQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjZdICAgZ2ZuOiAwMDAwNDg1
-NSAgbWZuOiAwMDAwNDg1NQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyNl0gICBnZm46
-IDAwMDA0ODU2ICBtZm46IDAwMDA0ODU2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI2
-XSAgIGdmbjogMDAwMDQ4NTcgIG1mbjogMDAwMDQ4NTcNCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzI6MjZdICAgZ2ZuOiAwMDAwNDg1OCAgbWZuOiAwMDAwNDg1OA0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMjoyNl0gICBnZm46IDAwMDA0ODU5ICBtZm46IDAwMDA0ODU5DQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI2XSAgIGdmbjogMDAwMDQ4NWEgIG1mbjogMDAwMDQ4
-NWENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjZdICAgZ2ZuOiAwMDAwNDg1YiAgbWZu
-OiAwMDAwNDg1Yg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyNl0gICBnZm46IDAwMDA0
-ODVjICBtZm46IDAwMDA0ODVjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI2XSAgIGdm
-bjogMDAwMDQ4NWQgIG1mbjogMDAwMDQ4NWQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
-MjZdICAgZ2ZuOiAwMDAwNDg1ZSAgbWZuOiAwMDAwNDg1ZQ0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMjoyNl0gICBnZm46IDAwMDA0ODVmICBtZm46IDAwMDA0ODVmDQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMyOjI2XSAgIGdmbjogMDAwMDQ4NjAgIG1mbjogMDAwMDQ4NjANCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjZdICAgZ2ZuOiAwMDAwNDg2MSAgbWZuOiAwMDAw
-NDg2MQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyNl0gICBnZm46IDAwMDA0ODYyICBt
-Zm46IDAwMDA0ODYyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI2XSAgIGdmbjogMDAw
-MDQ4NjMgIG1mbjogMDAwMDQ4NjMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjZdICAg
-Z2ZuOiAwMDAwNDg2NCAgbWZuOiAwMDAwNDg2NA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-MjoyNl0gICBnZm46IDAwMDA0ODY1ICBtZm46IDAwMDA0ODY1DQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMyOjI2XSAgIGdmbjogMDAwMDQ4NjYgIG1mbjogMDAwMDQ4NjYNCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzI6MjZdICAgZ2ZuOiAwMDAwNDg2NyAgbWZuOiAwMDAwNDg2Nw0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyNl0gICBnZm46IDAwMDA0ODY4ICBtZm46IDAw
-MDA0ODY4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI2XSAgIGdmbjogMDAwMDQ4Njkg
-IG1mbjogMDAwMDQ4NjkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjZdICAgZ2ZuOiAw
-MDAwNDg2YSAgbWZuOiAwMDAwNDg2YQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyNl0g
-ICBnZm46IDAwMDA0ODZiICBtZm46IDAwMDA0ODZiDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMyOjI2XSAgIGdmbjogMDAwMDQ4NmMgIG1mbjogMDAwMDQ4NmMNCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzI6MjZdICAgZ2ZuOiAwMDAwNDg2ZCAgbWZuOiAwMDAwNDg2ZA0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMjoyNl0gICBnZm46IDAwMDA0ODZlICBtZm46IDAwMDA0ODZl
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI2XSAgIGdmbjogMDAwMDQ4NmYgIG1mbjog
-MDAwMDQ4NmYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjZdICAgZ2ZuOiAwMDAwNDg3
-MCAgbWZuOiAwMDAwNDg3MA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyNl0gICBnZm46
-IDAwMDA0ODcxICBtZm46IDAwMDA0ODcxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI2
-XSAgIGdmbjogMDAwMDQ4NzIgIG1mbjogMDAwMDQ4NzINCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzI6MjZdICAgZ2ZuOiAwMDAwNDg3MyAgbWZuOiAwMDAwNDg3Mw0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMjoyNl0gICBnZm46IDAwMDA0ODc0ICBtZm46IDAwMDA0ODc0DQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI2XSAgIGdmbjogMDAwMDQ4NzUgIG1mbjogMDAwMDQ4
-NzUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjZdICAgZ2ZuOiAwMDAwNDg3NiAgbWZu
-OiAwMDAwNDg3Ng0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyNl0gICBnZm46IDAwMDA0
-ODc3ICBtZm46IDAwMDA0ODc3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI2XSAgIGdm
-bjogMDAwMDQ4NzggIG1mbjogMDAwMDQ4NzgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
-MjZdICAgZ2ZuOiAwMDAwNDg3OSAgbWZuOiAwMDAwNDg3OQ0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMjoyNl0gICBnZm46IDAwMDA0ODdhICBtZm46IDAwMDA0ODdhDQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMyOjI2XSAgIGdmbjogMDAwMDQ4N2IgIG1mbjogMDAwMDQ4N2INCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjZdICAgZ2ZuOiAwMDAwNDg3YyAgbWZuOiAwMDAw
-NDg3Yw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyN10gICBnZm46IDAwMDA0ODdkICBt
-Zm46IDAwMDA0ODdkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI3XSAgIGdmbjogMDAw
-MDQ4N2UgIG1mbjogMDAwMDQ4N2UNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjddICAg
-Z2ZuOiAwMDAwNDg3ZiAgbWZuOiAwMDAwNDg3Zg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-MjoyN10gICBnZm46IDAwMDA0ODgwICBtZm46IDAwMDA0ODgwDQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMyOjI3XSAgIGdmbjogMDAwMDQ4ODEgIG1mbjogMDAwMDQ4ODENCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzI6MjddICAgZ2ZuOiAwMDAwNDg4MiAgbWZuOiAwMDAwNDg4Mg0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyN10gICBnZm46IDAwMDA0ODgzICBtZm46IDAw
-MDA0ODgzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI3XSAgIGdmbjogMDAwMDQ4ODQg
-IG1mbjogMDAwMDQ4ODQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjddICAgZ2ZuOiAw
-MDAwNDg4NSAgbWZuOiAwMDAwNDg4NQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyN10g
-ICBnZm46IDAwMDA0ODg2ICBtZm46IDAwMDA0ODg2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMyOjI3XSAgIGdmbjogMDAwMDQ4ODcgIG1mbjogMDAwMDQ4ODcNCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzI6MjddICAgZ2ZuOiAwMDAwNDg4OCAgbWZuOiAwMDAwNDg4OA0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMjoyN10gICBnZm46IDAwMDA0ODg5ICBtZm46IDAwMDA0ODg5
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI3XSAgIGdmbjogMDAwMDQ4OGEgIG1mbjog
-MDAwMDQ4OGENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjddICAgZ2ZuOiAwMDAwNDg4
-YiAgbWZuOiAwMDAwNDg4Yg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyN10gICBnZm46
-IDAwMDA0ODhjICBtZm46IDAwMDA0ODhjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI3
-XSAgIGdmbjogMDAwMDQ4OGQgIG1mbjogMDAwMDQ4OGQNCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzI6MjddICAgZ2ZuOiAwMDAwNDg4ZSAgbWZuOiAwMDAwNDg4ZQ0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMjoyN10gICBnZm46IDAwMDA0ODhmICBtZm46IDAwMDA0ODhmDQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI3XSAgIGdmbjogMDAwMDQ4OTAgIG1mbjogMDAwMDQ4
-OTANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjddICAgZ2ZuOiAwMDAwNDg5MSAgbWZu
-OiAwMDAwNDg5MQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyN10gICBnZm46IDAwMDA0
-ODkyICBtZm46IDAwMDA0ODkyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI3XSAgIGdm
-bjogMDAwMDQ4OTMgIG1mbjogMDAwMDQ4OTMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
-MjddICAgZ2ZuOiAwMDAwNDg5NCAgbWZuOiAwMDAwNDg5NA0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMjoyN10gICBnZm46IDAwMDA0ODk1ICBtZm46IDAwMDA0ODk1DQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMyOjI3XSAgIGdmbjogMDAwMDQ4OTYgIG1mbjogMDAwMDQ4OTYNCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjddICAgZ2ZuOiAwMDAwNDg5NyAgbWZuOiAwMDAw
-NDg5Nw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyN10gICBnZm46IDAwMDA0ODk4ICBt
-Zm46IDAwMDA0ODk4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI3XSAgIGdmbjogMDAw
-MDQ4OTkgIG1mbjogMDAwMDQ4OTkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjddICAg
-Z2ZuOiAwMDAwNDg5YSAgbWZuOiAwMDAwNDg5YQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-MjoyN10gICBnZm46IDAwMDA0ODliICBtZm46IDAwMDA0ODliDQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMyOjI3XSAgIGdmbjogMDAwMDQ4OWMgIG1mbjogMDAwMDQ4OWMNCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzI6MjddICAgZ2ZuOiAwMDAwNDg5ZCAgbWZuOiAwMDAwNDg5ZA0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyN10gICBnZm46IDAwMDA0ODllICBtZm46IDAw
-MDA0ODllDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI3XSAgIGdmbjogMDAwMDQ4OWYg
-IG1mbjogMDAwMDQ4OWYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjddICAgZ2ZuOiAw
-MDAwNDhhMCAgbWZuOiAwMDAwNDhhMA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyN10g
-ICBnZm46IDAwMDA0OGExICBtZm46IDAwMDA0OGExDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMyOjI3XSAgIGdmbjogMDAwMDQ4YTIgIG1mbjogMDAwMDQ4YTINCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzI6MjddICAgZ2ZuOiAwMDAwNDhhMyAgbWZuOiAwMDAwNDhhMw0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMjoyN10gICBnZm46IDAwMDA0OGE0ICBtZm46IDAwMDA0OGE0
-DQoNClsgIDQxMy42MDAyMDVdIGEoWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyN10gICBnZm46
-IDAwMDA0OGE1ICBtZm46IDAwMDA0OGE1DQoNCnRhMS4wMDogZXhjZXB0aW9uIEVtYXNrIDB4
-MCBTQWN0KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjddICAgZ2ZuOiAwMDAwNDhhNiAgbWZu
-OiAwMDAwNDhhNg0KDQogMHgxIFNFcnIgMHgwIGFjKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
-MjddICAgZ2ZuOiAwMDAwNDhhNyAgbWZuOiAwMDAwNDhhNw0KDQp0aW9uIDB4NiBmcm96ZW4N
-Cg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyN10gICBnZm46IDAwMDA0OGE4ICBtZm46
-IDAwMDA0OGE4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI3XSAgIGdmbjogMDAwMDQ4
-YTkgIG1mbjogMDAwMDQ4YTkNCg0KWyAgNDEzLjY5OTU5Ml0gYShYRU4pIFsyMDEyLTA4LTMx
-IDIxOjMyOjI3XSAgIGdmbjogMDAwMDQ4YWEgIG1mbjogMDAwMDQ4YWENCg0KdGExLjAwOiBm
-YWlsZWQgYyhYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI3XSAgIGdmbjogMDAwMDQ4YWIgIG1m
-bjogMDAwMDQ4YWINCg0Kb21tYW5kOiBSRUFEIEZQRE1BIFFVRVVFRA0KDQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMyOjI3XSAgIGdmbjogMDAwMDQ4YWMgIG1mbjogMDAwMDQ4YWMNCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjddICAgZ2ZuOiAwMDAwNDhhZCAgbWZuOiAwMDAw
-NDhhZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyN10gICBnZm46IDAwMDA0OGFlICBt
-Zm46IDAwMDA0OGFlDQoNClsgIDQxMy43Nzg1MDRdIGEoWEVOKSBbMjAxMi0wOC0zMSAyMToz
-MjoyN10gICBnZm46IDAwMDA0OGFmICBtZm46IDAwMDA0OGFmDQoNCnRhMS4wMDogY21kIDYw
-LzEoWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyN10gICBnZm46IDAwMDA0OGIwICBtZm46IDAw
-MDA0OGIwDQoNCjA6MDA6NTE6MTE6OTUvMDAoWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyN10g
-ICBnZm46IDAwMDA0OGIxICBtZm46IDAwMDA0OGIxDQoNCjowMDo4ZTowMDowMC80MCB0YWcg
-MCBuY3EgODE5MiBpKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjddICAgZ2ZuOiAwMDAwNDhi
-MiAgbWZuOiAwMDAwNDhiMg0KDQpuDQoNCg0KWyAgNDEzLjc3ODUwNChYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMyOjI3XSAgIGdmbjogMDAwMDQ4YjMgIG1mbjogMDAwMDQ4YjMNCg0KXSAgICAg
-ICAgICByZXMgNDAvMDA6ZmY6MDA6MDA6MDAoWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyN10g
-ICBnZm46IDAwMDA0OGI0ICBtZm46IDAwMDA0OGI0DQoNCi8wMDowMDowMDowMDowMC8oWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMjoyN10gICBnZm46IDAwMDA0OGI1ICBtZm46IDAwMDA0OGI1
-DQoNCjAwIEVtYXNrIDB4NCAodGltZW91dCkNCg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-MjoyN10gICBnZm46IDAwMDA0OGI2ICBtZm46IDAwMDA0OGI2DQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMyOjI3XSAgIGdmbjogMDAwMDQ4YjcgIG1mbjogMDAwMDQ4YjcNCg0KWyAgNDEz
-Ljk3ODE5OF0gYXRhMS4wMDogc3RhdHVzOiAoWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyOF0g
-ICBnZm46IDAwMDA0OGI4ICBtZm46IDAwMDA0OGI4DQoNCnsgRFJEWSB9DQoNCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzI6MjhdICAgZ2ZuOiAwMDAwNDhiOSAgbWZuOiAwMDAwNDhiOQ0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyOF0gICBnZm46IDAwMDA0OGJhICBtZm46IDAw
-MDA0OGJhDQoNClsgIDQxNC4wMzY0MDddIGEoWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyOF0g
-ICBnZm46IDAwMDA0OGJiICBtZm46IDAwMDA0OGJiDQoNCnRhMTogaGFyZCByZXNldHQoWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMjoyOF0gICBnZm46IDAwMDA0OGJjICBtZm46IDAwMDA0OGJj
-DQoNCmluZyBsaW5rDQoNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjhdICAgZ2ZuOiAw
-MDAwNDhiZCAgbWZuOiAwMDAwNDhiZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyOF0g
-ICBnZm46IDAwMDA0OGJlICBtZm46IDAwMDA0OGJlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMyOjI4XSAgIGdmbjogMDAwMDQ4YmYgIG1mbjogMDAwMDQ4YmYNCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzI6MjhdICAgZ2ZuOiAwMDAwNDhjMCAgbWZuOiAwMDAwNDhjMA0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMjoyOF0gICBnZm46IDAwMDA0OGMxICBtZm46IDAwMDA0OGMx
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI4XSAgIGdmbjogMDAwMDQ4YzIgIG1mbjog
-MDAwMDQ4YzINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjhdICAgZ2ZuOiAwMDAwNDhj
-MyAgbWZuOiAwMDAwNDhjMw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyOF0gICBnZm46
-IDAwMDA0OGM0ICBtZm46IDAwMDA0OGM0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI4
-XSAgIGdmbjogMDAwMDQ4YzUgIG1mbjogMDAwMDQ4YzUNCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzI6MjhdICAgZ2ZuOiAwMDAwNDhjNiAgbWZuOiAwMDAwNDhjNg0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMjoyOF0gICBnZm46IDAwMDA0OGM3ICBtZm46IDAwMDA0OGM3DQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI4XSAgIGdmbjogMDAwMDQ4YzggIG1mbjogMDAwMDQ4
-YzgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjhdICAgZ2ZuOiAwMDAwNDhjOSAgbWZu
-OiAwMDAwNDhjOQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyOF0gICBnZm46IDAwMDA0
-OGNhICBtZm46IDAwMDA0OGNhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI4XSAgIGdm
-bjogMDAwMDQ4Y2IgIG1mbjogMDAwMDQ4Y2INCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
-MjhdICAgZ2ZuOiAwMDAwNDhjYyAgbWZuOiAwMDAwNDhjYw0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMjoyOF0gICBnZm46IDAwMDA0OGNkICBtZm46IDAwMDA0OGNkDQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMyOjI4XSAgIGdmbjogMDAwMDQ4Y2UgIG1mbjogMDAwMDQ4Y2UNCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjhdICAgZ2ZuOiAwMDAwNDhjZiAgbWZuOiAwMDAw
-NDhjZg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyOF0gICBnZm46IDAwMDA0OGQwICBt
-Zm46IDAwMDA0OGQwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI4XSAgIGdmbjogMDAw
-MDQ4ZDEgIG1mbjogMDAwMDQ4ZDENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjhdICAg
-Z2ZuOiAwMDAwNDhkMiAgbWZuOiAwMDAwNDhkMg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-MjoyOF0gICBnZm46IDAwMDA0OGQzICBtZm46IDAwMDA0OGQzDQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMyOjI4XSAgIGdmbjogMDAwMDQ4ZDQgIG1mbjogMDAwMDQ4ZDQNCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzI6MjhdICAgZ2ZuOiAwMDAwNDhkNSAgbWZuOiAwMDAwNDhkNQ0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyOF0gICBnZm46IDAwMDA0OGQ2ICBtZm46IDAw
-MDA0OGQ2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI4XSAgIGdmbjogMDAwMDQ4ZDcg
-IG1mbjogMDAwMDQ4ZDcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjhdICAgZ2ZuOiAw
-MDAwNDhkOCAgbWZuOiAwMDAwNDhkOA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyOF0g
-ICBnZm46IDAwMDA0OGQ5ICBtZm46IDAwMDA0OGQ5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMyOjI4XSAgIGdmbjogMDAwMDQ4ZGEgIG1mbjogMDAwMDQ4ZGENCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzI6MjhdICAgZ2ZuOiAwMDAwNDhkYiAgbWZuOiAwMDAwNDhkYg0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMjoyOF0gICBnZm46IDAwMDA0OGRjICBtZm46IDAwMDA0OGRj
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI4XSAgIGdmbjogMDAwMDQ4ZGQgIG1mbjog
-MDAwMDQ4ZGQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjhdICAgZ2ZuOiAwMDAwNDhk
-ZSAgbWZuOiAwMDAwNDhkZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyOF0gICBnZm46
-IDAwMDA0OGRmICBtZm46IDAwMDA0OGRmDQoNClsgIDQxNC42MjMyMTRdIGF0YTE6IFNBVEEg
-bGluayB1KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjhdICAgZ2ZuOiAwMDAwNDhlMCAgbWZu
-OiAwMDAwNDhlMA0KDQpwIDMuMCBHYnBzIChTU3RhKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
-MjhdICAgZ2ZuOiAwMDAwNDhlMSAgbWZuOiAwMDAwNDhlMQ0KDQp0dXMgMTIzIFNDb250cm9s
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjhdICAgZ2ZuOiAwMDAwNDhlMiAgbWZuOiAwMDAw
-NDhlMg0KDQogMzAwKQ0KDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI4XSAgIGdmbjog
-MDAwMDQ4ZTMgIG1mbjogMDAwMDQ4ZTMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6Mjhd
-ICAgZ2ZuOiAwMDAwNDhlNCAgbWZuOiAwMDAwNDhlNA0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
-MTozMjoyOF0gICBnZm46IDAwMDA0OGU1ICBtZm46IDAwMDA0OGU1DQoNCihYRU4pIFsyMDEy
-LTA4LTMxIDIxOjMyOjI4XSAgIGdmbjogMDAwMDQ4ZTYgIG1mbjogMDAwMDQ4ZTYNCg0KKFhF
-TikgWzIwMTItMDgtMzEgMjE6MzI6MjhdICAgZ2ZuOiAwMDAwNDhlNyAgbWZuOiAwMDAwNDhl
-Nw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyOF0gICBnZm46IDAwMDA0OGU4ICBtZm46
-IDAwMDA0OGU4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI4XSAgIGdmbjogMDAwMDQ4
-ZTkgIG1mbjogMDAwMDQ4ZTkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjhdICAgZ2Zu
-OiAwMDAwNDhlYSAgbWZuOiAwMDAwNDhlYQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoy
-OF0gICBnZm46IDAwMDA0OGViICBtZm46IDAwMDA0OGViDQoNCihYRU4pIFsyMDEyLTA4LTMx
-IDIxOjMyOjI4XSAgIGdmbjogMDAwMDQ4ZWMgIG1mbjogMDAwMDQ4ZWMNCg0KKFhFTikgWzIw
-MTItMDgtMzEgMjE6MzI6MjhdICAgZ2ZuOiAwMDAwNDhlZCAgbWZuOiAwMDAwNDhlZA0KDQoo
-WEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyOF0gICBnZm46IDAwMDA0OGVlICBtZm46IDAwMDA0
-OGVlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI4XSAgIGdmbjogMDAwMDQ4ZWYgIG1m
-bjogMDAwMDQ4ZWYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjhdICAgZ2ZuOiAwMDAw
-NDhmMCAgbWZuOiAwMDAwNDhmMA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyOF0gICBn
-Zm46IDAwMDA0OGYxICBtZm46IDAwMDA0OGYxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMy
-OjI4XSAgIGdmbjogMDAwMDQ4ZjIgIG1mbjogMDAwMDQ4ZjINCg0KKFhFTikgWzIwMTItMDgt
-MzEgMjE6MzI6MjhdICAgZ2ZuOiAwMDAwNDhmMyAgbWZuOiAwMDAwNDhmMw0KDQooWEVOKSBb
-MjAxMi0wOC0zMSAyMTozMjoyOF0gICBnZm46IDAwMDA0OGY0ICBtZm46IDAwMDA0OGY0DQoN
-CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI5XSAgIGdmbjogMDAwMDQ4ZjUgIG1mbjogMDAw
-MDQ4ZjUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjldICAgZ2ZuOiAwMDAwNDhmNiAg
-bWZuOiAwMDAwNDhmNg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyOV0gICBnZm46IDAw
-MDA0OGY3ICBtZm46IDAwMDA0OGY3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI5XSAg
-IGdmbjogMDAwMDQ4ZjggIG1mbjogMDAwMDQ4ZjgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
-MzI6MjldICAgZ2ZuOiAwMDAwNDhmOSAgbWZuOiAwMDAwNDhmOQ0KDQooWEVOKSBbMjAxMi0w
-OC0zMSAyMTozMjoyOV0gICBnZm46IDAwMDA0OGZhICBtZm46IDAwMDA0OGZhDQoNCihYRU4p
-IFsyMDEyLTA4LTMxIDIxOjMyOjI5XSAgIGdmbjogMDAwMDQ4ZmIgIG1mbjogMDAwMDQ4ZmIN
-Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjldICAgZ2ZuOiAwMDAwNDhmYyAgbWZuOiAw
-MDAwNDhmYw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyOV0gICBnZm46IDAwMDA0OGZk
-ICBtZm46IDAwMDA0OGZkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI5XSAgIGdmbjog
-MDAwMDQ4ZmUgIG1mbjogMDAwMDQ4ZmUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6Mjld
-ICAgZ2ZuOiAwMDAwNDhmZiAgbWZuOiAwMDAwNDhmZg0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
-MTozMjoyOV0gICBnZm46IDAwMDA0OTAwICBtZm46IDAwMDA0OTAwDQoNCihYRU4pIFsyMDEy
-LTA4LTMxIDIxOjMyOjI5XSAgIGdmbjogMDAwMDQ5MDEgIG1mbjogMDAwMDQ5MDENCg0KKFhF
-TikgWzIwMTItMDgtMzEgMjE6MzI6MjldICAgZ2ZuOiAwMDAwNDkwMiAgbWZuOiAwMDAwNDkw
-Mg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyOV0gICBnZm46IDAwMDA0OTAzICBtZm46
-IDAwMDA0OTAzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI5XSAgIGdmbjogMDAwMDQ5
-MDQgIG1mbjogMDAwMDQ5MDQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjldICAgZ2Zu
-OiAwMDAwNDkwNSAgbWZuOiAwMDAwNDkwNQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoy
-OV0gICBnZm46IDAwMDA0OTA2ICBtZm46IDAwMDA0OTA2DQoNCihYRU4pIFsyMDEyLTA4LTMx
-IDIxOjMyOjI5XSAgIGdmbjogMDAwMDQ5MDcgIG1mbjogMDAwMDQ5MDcNCg0KKFhFTikgWzIw
-MTItMDgtMzEgMjE6MzI6MjldICAgZ2ZuOiAwMDAwNDkwOCAgbWZuOiAwMDAwNDkwOA0KDQoo
-WEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyOV0gICBnZm46IDAwMDA0OTA5ICBtZm46IDAwMDA0
-OTA5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI5XSAgIGdmbjogMDAwMDQ5MGEgIG1m
-bjogMDAwMDQ5MGENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjldICAgZ2ZuOiAwMDAw
-NDkwYiAgbWZuOiAwMDAwNDkwYg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyOV0gICBn
-Zm46IDAwMDA0OTBjICBtZm46IDAwMDA0OTBjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMy
-OjI5XSAgIGdmbjogMDAwMDQ5MGQgIG1mbjogMDAwMDQ5MGQNCg0KKFhFTikgWzIwMTItMDgt
-MzEgMjE6MzI6MjldICAgZ2ZuOiAwMDAwNDkwZSAgbWZuOiAwMDAwNDkwZQ0KDQooWEVOKSBb
-MjAxMi0wOC0zMSAyMTozMjoyOV0gICBnZm46IDAwMDA0OTBmICBtZm46IDAwMDA0OTBmDQoN
-CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI5XSAgIGdmbjogMDAwMDQ5MTAgIG1mbjogMDAw
-MDQ5MTANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjldICAgZ2ZuOiAwMDAwNDkxMSAg
-bWZuOiAwMDAwNDkxMQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyOV0gICBnZm46IDAw
-MDA0OTEyICBtZm46IDAwMDA0OTEyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI5XSAg
-IGdmbjogMDAwMDQ5MTMgIG1mbjogMDAwMDQ5MTMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
-MzI6MjldICAgZ2ZuOiAwMDAwNDkxNCAgbWZuOiAwMDAwNDkxNA0KDQooWEVOKSBbMjAxMi0w
-OC0zMSAyMTozMjoyOV0gICBnZm46IDAwMDA0OTE1ICBtZm46IDAwMDA0OTE1DQoNCihYRU4p
-IFsyMDEyLTA4LTMxIDIxOjMyOjI5XSAgIGdmbjogMDAwMDQ5MTYgIG1mbjogMDAwMDQ5MTYN
-Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjldICAgZ2ZuOiAwMDAwNDkxNyAgbWZuOiAw
-MDAwNDkxNw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyOV0gICBnZm46IDAwMDA0OTE4
-ICBtZm46IDAwMDA0OTE4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI5XSAgIGdmbjog
-MDAwMDQ5MTkgIG1mbjogMDAwMDQ5MTkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6Mjld
-ICAgZ2ZuOiAwMDAwNDkxYSAgbWZuOiAwMDAwNDkxYQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
-MTozMjoyOV0gICBnZm46IDAwMDA0OTFiICBtZm46IDAwMDA0OTFiDQoNCihYRU4pIFsyMDEy
-LTA4LTMxIDIxOjMyOjI5XSAgIGdmbjogMDAwMDQ5MWMgIG1mbjogMDAwMDQ5MWMNCg0KKFhF
-TikgWzIwMTItMDgtMzEgMjE6MzI6MjldICAgZ2ZuOiAwMDAwNDkxZCAgbWZuOiAwMDAwNDkx
-ZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyOV0gICBnZm46IDAwMDA0OTFlICBtZm46
-IDAwMDA0OTFlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI5XSAgIGdmbjogMDAwMDQ5
-MWYgIG1mbjogMDAwMDQ5MWYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjldICAgZ2Zu
-OiAwMDAwNDkyMCAgbWZuOiAwMDAwNDkyMA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoy
-OV0gICBnZm46IDAwMDA0OTIxICBtZm46IDAwMDA0OTIxDQoNCihYRU4pIFsyMDEyLTA4LTMx
-IDIxOjMyOjI5XSAgIGdmbjogMDAwMDQ5MjIgIG1mbjogMDAwMDQ5MjINCg0KKFhFTikgWzIw
-MTItMDgtMzEgMjE6MzI6MjldICAgZ2ZuOiAwMDAwNDkyMyAgbWZuOiAwMDAwNDkyMw0KDQoo
-WEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyOV0gICBnZm46IDAwMDA0OTI0ICBtZm46IDAwMDA0
-OTI0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI5XSAgIGdmbjogMDAwMDQ5MjUgIG1m
-bjogMDAwMDQ5MjUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjldICAgZ2ZuOiAwMDAw
-NDkyNiAgbWZuOiAwMDAwNDkyNg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyOV0gICBn
-Zm46IDAwMDA0OTI3ICBtZm46IDAwMDA0OTI3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMy
-OjI5XSAgIGdmbjogMDAwMDQ5MjggIG1mbjogMDAwMDQ5MjgNCg0KKFhFTikgWzIwMTItMDgt
-MzEgMjE6MzI6MjldICAgZ2ZuOiAwMDAwNDkyOSAgbWZuOiAwMDAwNDkyOQ0KDQooWEVOKSBb
-MjAxMi0wOC0zMSAyMTozMjoyOV0gICBnZm46IDAwMDA0OTJhICBtZm46IDAwMDA0OTJhDQoN
-CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI5XSAgIGdmbjogMDAwMDQ5MmIgIG1mbjogMDAw
-MDQ5MmINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjldICAgZ2ZuOiAwMDAwNDkyYyAg
-bWZuOiAwMDAwNDkyYw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyOV0gICBnZm46IDAw
-MDA0OTJkICBtZm46IDAwMDA0OTJkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI5XSAg
-IGdmbjogMDAwMDQ5MmUgIG1mbjogMDAwMDQ5MmUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
-MzI6MjldICAgZ2ZuOiAwMDAwNDkyZiAgbWZuOiAwMDAwNDkyZg0KDQooWEVOKSBbMjAxMi0w
-OC0zMSAyMTozMjoyOV0gICBnZm46IDAwMDA0OTMwICBtZm46IDAwMDA0OTMwDQoNCihYRU4p
-IFsyMDEyLTA4LTMxIDIxOjMyOjI5XSAgIGdmbjogMDAwMDQ5MzEgIG1mbjogMDAwMDQ5MzEN
-Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MjldICAgZ2ZuOiAwMDAwNDkzMiAgbWZuOiAw
-MDAwNDkzMg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoyOV0gICBnZm46IDAwMDA0OTMz
-ICBtZm46IDAwMDA0OTMzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjI5XSAgIGdmbjog
-MDAwMDQ5MzQgIG1mbjogMDAwMDQ5MzQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6Mjld
-ICAgZ2ZuOiAwMDAwNDkzNSAgbWZuOiAwMDAwNDkzNQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
-MTozMjozMF0gICBnZm46IDAwMDA0OTM2ICBtZm46IDAwMDA0OTM2DQoNCihYRU4pIFsyMDEy
-LTA4LTMxIDIxOjMyOjMwXSAgIGdmbjogMDAwMDQ5MzcgIG1mbjogMDAwMDQ5MzcNCg0KKFhF
-TikgWzIwMTItMDgtMzEgMjE6MzI6MzBdICAgZ2ZuOiAwMDAwNDkzOCAgbWZuOiAwMDAwNDkz
-OA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozMF0gICBnZm46IDAwMDA0OTM5ICBtZm46
-IDAwMDA0OTM5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjMwXSAgIGdmbjogMDAwMDQ5
-M2EgIG1mbjogMDAwMDQ5M2ENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzBdICAgZ2Zu
-OiAwMDAwNDkzYiAgbWZuOiAwMDAwNDkzYg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoz
-MF0gICBnZm46IDAwMDA0OTNjICBtZm46IDAwMDA0OTNjDQoNCihYRU4pIFsyMDEyLTA4LTMx
-IDIxOjMyOjMwXSAgIGdmbjogMDAwMDQ5M2QgIG1mbjogMDAwMDQ5M2QNCg0KKFhFTikgWzIw
-MTItMDgtMzEgMjE6MzI6MzBdICAgZ2ZuOiAwMDAwNDkzZSAgbWZuOiAwMDAwNDkzZQ0KDQoo
-WEVOKSBbMjAxMi0wOC0zMSAyMTozMjozMF0gICBnZm46IDAwMDA0OTNmICBtZm46IDAwMDA0
-OTNmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjMwXSAgIGdmbjogMDAwMDQ5NDAgIG1m
-bjogMDAwMDQ5NDANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzBdICAgZ2ZuOiAwMDAw
-NDk0MSAgbWZuOiAwMDAwNDk0MQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozMF0gICBn
-Zm46IDAwMDA0OTQyICBtZm46IDAwMDA0OTQyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMy
-OjMwXSAgIGdmbjogMDAwMDQ5NDMgIG1mbjogMDAwMDQ5NDMNCg0KKFhFTikgWzIwMTItMDgt
-MzEgMjE6MzI6MzBdICAgZ2ZuOiAwMDAwNDk0NCAgbWZuOiAwMDAwNDk0NA0KDQooWEVOKSBb
-MjAxMi0wOC0zMSAyMTozMjozMF0gICBnZm46IDAwMDA0OTQ1ICBtZm46IDAwMDA0OTQ1DQoN
-CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjMwXSAgIGdmbjogMDAwMDQ5NDYgIG1mbjogMDAw
-MDQ5NDYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzBdICAgZ2ZuOiAwMDAwNDk0NyAg
-bWZuOiAwMDAwNDk0Nw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozMF0gICBnZm46IDAw
-MDA0OTQ4ICBtZm46IDAwMDA0OTQ4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjMwXSAg
-IGdmbjogMDAwMDQ5NDkgIG1mbjogMDAwMDQ5NDkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
-MzI6MzBdICAgZ2ZuOiAwMDAwNDk0YSAgbWZuOiAwMDAwNDk0YQ0KDQooWEVOKSBbMjAxMi0w
-OC0zMSAyMTozMjozMF0gICBnZm46IDAwMDA0OTRiICBtZm46IDAwMDA0OTRiDQoNCihYRU4p
-IFsyMDEyLTA4LTMxIDIxOjMyOjMwXSAgIGdmbjogMDAwMDQ5NGMgIG1mbjogMDAwMDQ5NGMN
-Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzBdICAgZ2ZuOiAwMDAwNDk0ZCAgbWZuOiAw
-MDAwNDk0ZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozMF0gICBnZm46IDAwMDA0OTRl
-ICBtZm46IDAwMDA0OTRlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjMwXSAgIGdmbjog
-MDAwMDQ5NGYgIG1mbjogMDAwMDQ5NGYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzBd
-ICAgZ2ZuOiAwMDAwNDk1MCAgbWZuOiAwMDAwNDk1MA0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
-MTozMjozMF0gICBnZm46IDAwMDA0OTUxICBtZm46IDAwMDA0OTUxDQoNCihYRU4pIFsyMDEy
-LTA4LTMxIDIxOjMyOjMwXSAgIGdmbjogMDAwMDQ5NTIgIG1mbjogMDAwMDQ5NTINCg0KKFhF
-TikgWzIwMTItMDgtMzEgMjE6MzI6MzBdICAgZ2ZuOiAwMDAwNDk1MyAgbWZuOiAwMDAwNDk1
-Mw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozMF0gICBnZm46IDAwMDA0OTU0ICBtZm46
-IDAwMDA0OTU0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjMwXSAgIGdmbjogMDAwMDQ5
-NTUgIG1mbjogMDAwMDQ5NTUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzBdICAgZ2Zu
-OiAwMDAwNDk1NiAgbWZuOiAwMDAwNDk1Ng0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoz
-MF0gICBnZm46IDAwMDA0OTU3ICBtZm46IDAwMDA0OTU3DQoNCihYRU4pIFsyMDEyLTA4LTMx
-IDIxOjMyOjMwXSAgIGdmbjogMDAwMDQ5NTggIG1mbjogMDAwMDQ5NTgNCg0KKFhFTikgWzIw
-MTItMDgtMzEgMjE6MzI6MzBdICAgZ2ZuOiAwMDAwNDk1OSAgbWZuOiAwMDAwNDk1OQ0KDQoo
-WEVOKSBbMjAxMi0wOC0zMSAyMTozMjozMF0gICBnZm46IDAwMDA0OTVhICBtZm46IDAwMDA0
-OTVhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjMwXSAgIGdmbjogMDAwMDQ5NWIgIG1m
-bjogMDAwMDQ5NWINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzBdICAgZ2ZuOiAwMDAw
-NDk1YyAgbWZuOiAwMDAwNDk1Yw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozMF0gICBn
-Zm46IDAwMDA0OTVkICBtZm46IDAwMDA0OTVkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMy
-OjMwXSAgIGdmbjogMDAwMDQ5NWUgIG1mbjogMDAwMDQ5NWUNCg0KKFhFTikgWzIwMTItMDgt
-MzEgMjE6MzI6MzBdICAgZ2ZuOiAwMDAwNDk1ZiAgbWZuOiAwMDAwNDk1Zg0KDQooWEVOKSBb
-MjAxMi0wOC0zMSAyMTozMjozMF0gICBnZm46IDAwMDA0OTYwICBtZm46IDAwMDA0OTYwDQoN
-CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjMwXSAgIGdmbjogMDAwMDQ5NjEgIG1mbjogMDAw
-MDQ5NjENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzBdICAgZ2ZuOiAwMDAwNDk2MiAg
-bWZuOiAwMDAwNDk2Mg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozMF0gICBnZm46IDAw
-MDA0OTYzICBtZm46IDAwMDA0OTYzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjMwXSAg
-IGdmbjogMDAwMDQ5NjQgIG1mbjogMDAwMDQ5NjQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
-MzI6MzBdICAgZ2ZuOiAwMDAwNDk2NSAgbWZuOiAwMDAwNDk2NQ0KDQooWEVOKSBbMjAxMi0w
-OC0zMSAyMTozMjozMF0gICBnZm46IDAwMDA0OTY2ICBtZm46IDAwMDA0OTY2DQoNCihYRU4p
-IFsyMDEyLTA4LTMxIDIxOjMyOjMwXSAgIGdmbjogMDAwMDQ5NjcgIG1mbjogMDAwMDQ5NjcN
-Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzBdICAgZ2ZuOiAwMDAwNDk2OCAgbWZuOiAw
-MDAwNDk2OA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozMF0gICBnZm46IDAwMDA0OTY5
-ICBtZm46IDAwMDA0OTY5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjMwXSAgIGdmbjog
-MDAwMDQ5NmEgIG1mbjogMDAwMDQ5NmENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzBd
-ICAgZ2ZuOiAwMDAwNDk2YiAgbWZuOiAwMDAwNDk2Yg0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
-MTozMjozMF0gICBnZm46IDAwMDA0OTZjICBtZm46IDAwMDA0OTZjDQoNCihYRU4pIFsyMDEy
-LTA4LTMxIDIxOjMyOjMwXSAgIGdmbjogMDAwMDQ5NmQgIG1mbjogMDAwMDQ5NmQNCg0KKFhF
-TikgWzIwMTItMDgtMzEgMjE6MzI6MzBdICAgZ2ZuOiAwMDAwNDk2ZSAgbWZuOiAwMDAwNDk2
-ZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozMF0gICBnZm46IDAwMDA0OTZmICBtZm46
-IDAwMDA0OTZmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjMwXSAgIGdmbjogMDAwMDQ5
-NzAgIG1mbjogMDAwMDQ5NzANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzBdICAgZ2Zu
-OiAwMDAwNDk3MSAgbWZuOiAwMDAwNDk3MQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoz
-MF0gICBnZm46IDAwMDA0OTcyICBtZm46IDAwMDA0OTcyDQoNCihYRU4pIFsyMDEyLTA4LTMx
-IDIxOjMyOjMwXSAgIGdmbjogMDAwMDQ5NzMgIG1mbjogMDAwMDQ5NzMNCg0KKFhFTikgWzIw
-MTItMDgtMzEgMjE6MzI6MzBdICAgZ2ZuOiAwMDAwNDk3NCAgbWZuOiAwMDAwNDk3NA0KDQoo
-WEVOKSBbMjAxMi0wOC0zMSAyMTozMjozMF0gICBnZm46IDAwMDA0OTc1ICBtZm46IDAwMDA0
-OTc1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjMxXSAgIGdmbjogMDAwMDQ5NzYgIG1m
-bjogMDAwMDQ5NzYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzFdICAgZ2ZuOiAwMDAw
-NDk3NyAgbWZuOiAwMDAwNDk3Nw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozMV0gICBn
-Zm46IDAwMDA0OTc4ICBtZm46IDAwMDA0OTc4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMy
-OjMxXSAgIGdmbjogMDAwMDQ5NzkgIG1mbjogMDAwMDQ5NzkNCg0KKFhFTikgWzIwMTItMDgt
-MzEgMjE6MzI6MzFdICAgZ2ZuOiAwMDAwNDk3YSAgbWZuOiAwMDAwNDk3YQ0KDQooWEVOKSBb
-MjAxMi0wOC0zMSAyMTozMjozMV0gICBnZm46IDAwMDA0OTdiICBtZm46IDAwMDA0OTdiDQoN
-CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjMxXSAgIGdmbjogMDAwMDQ5N2MgIG1mbjogMDAw
-MDQ5N2MNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzFdICAgZ2ZuOiAwMDAwNDk3ZCAg
-bWZuOiAwMDAwNDk3ZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozMV0gICBnZm46IDAw
-MDA0OTdlICBtZm46IDAwMDA0OTdlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjMxXSAg
-IGdmbjogMDAwMDQ5N2YgIG1mbjogMDAwMDQ5N2YNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
-MzI6MzFdICAgZ2ZuOiAwMDAwNDk4MCAgbWZuOiAwMDAwNDk4MA0KDQooWEVOKSBbMjAxMi0w
-OC0zMSAyMTozMjozMV0gICBnZm46IDAwMDA0OTgxICBtZm46IDAwMDA0OTgxDQoNCihYRU4p
-IFsyMDEyLTA4LTMxIDIxOjMyOjMxXSAgIGdmbjogMDAwMDQ5ODIgIG1mbjogMDAwMDQ5ODIN
-Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzFdICAgZ2ZuOiAwMDAwNDk4MyAgbWZuOiAw
-MDAwNDk4Mw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozMV0gICBnZm46IDAwMDA0OTg0
-ICBtZm46IDAwMDA0OTg0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjMxXSAgIGdmbjog
-MDAwMDQ5ODUgIG1mbjogMDAwMDQ5ODUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzFd
-ICAgZ2ZuOiAwMDAwNDk4NiAgbWZuOiAwMDAwNDk4Ng0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
-MTozMjozMV0gICBnZm46IDAwMDA0OTg3ICBtZm46IDAwMDA0OTg3DQoNCihYRU4pIFsyMDEy
-LTA4LTMxIDIxOjMyOjMxXSAgIGdmbjogMDAwMDQ5ODggIG1mbjogMDAwMDQ5ODgNCg0KKFhF
-TikgWzIwMTItMDgtMzEgMjE6MzI6MzFdICAgZ2ZuOiAwMDAwNDk4OSAgbWZuOiAwMDAwNDk4
-OQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozMV0gICBnZm46IDAwMDA0OThhICBtZm46
-IDAwMDA0OThhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjMxXSAgIGdmbjogMDAwMDQ5
-OGIgIG1mbjogMDAwMDQ5OGINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzFdICAgZ2Zu
-OiAwMDAwNDk4YyAgbWZuOiAwMDAwNDk4Yw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoz
-MV0gICBnZm46IDAwMDA0OThkICBtZm46IDAwMDA0OThkDQoNCihYRU4pIFsyMDEyLTA4LTMx
-IDIxOjMyOjMxXSAgIGdmbjogMDAwMDQ5OGUgIG1mbjogMDAwMDQ5OGUNCg0KKFhFTikgWzIw
-MTItMDgtMzEgMjE6MzI6MzFdICAgZ2ZuOiAwMDAwNDk4ZiAgbWZuOiAwMDAwNDk4Zg0KDQoo
-WEVOKSBbMjAxMi0wOC0zMSAyMTozMjozMV0gICBnZm46IDAwMDA0OTkwICBtZm46IDAwMDA0
-OTkwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjMxXSAgIGdmbjogMDAwMDQ5OTEgIG1m
-bjogMDAwMDQ5OTENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzFdICAgZ2ZuOiAwMDAw
-NDk5MiAgbWZuOiAwMDAwNDk5Mg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozMV0gICBn
-Zm46IDAwMDA0OTkzICBtZm46IDAwMDA0OTkzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMy
-OjMxXSAgIGdmbjogMDAwMDQ5OTQgIG1mbjogMDAwMDQ5OTQNCg0KKFhFTikgWzIwMTItMDgt
-MzEgMjE6MzI6MzFdICAgZ2ZuOiAwMDAwNDk5NSAgbWZuOiAwMDAwNDk5NQ0KDQooWEVOKSBb
-MjAxMi0wOC0zMSAyMTozMjozMV0gICBnZm46IDAwMDA0OTk2ICBtZm46IDAwMDA0OTk2DQoN
-CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjMxXSAgIGdmbjogMDAwMDQ5OTcgIG1mbjogMDAw
-MDQ5OTcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzFdICAgZ2ZuOiAwMDAwNDk5OCAg
-bWZuOiAwMDAwNDk5OA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozMV0gICBnZm46IDAw
-MDA0OTk5ICBtZm46IDAwMDA0OTk5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjMxXSAg
-IGdmbjogMDAwMDQ5OWEgIG1mbjogMDAwMDQ5OWENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
-MzI6MzFdICAgZ2ZuOiAwMDAwNDk5YiAgbWZuOiAwMDAwNDk5Yg0KDQooWEVOKSBbMjAxMi0w
-OC0zMSAyMTozMjozMV0gICBnZm46IDAwMDA0OTljICBtZm46IDAwMDA0OTljDQoNCihYRU4p
-IFsyMDEyLTA4LTMxIDIxOjMyOjMxXSAgIGdmbjogMDAwMDQ5OWQgIG1mbjogMDAwMDQ5OWQN
-Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzFdICAgZ2ZuOiAwMDAwNDk5ZSAgbWZuOiAw
-MDAwNDk5ZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozMV0gICBnZm46IDAwMDA0OTlm
-ICBtZm46IDAwMDA0OTlmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjMxXSAgIGdmbjog
-MDAwMDQ5YTAgIG1mbjogMDAwMDQ5YTANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzFd
-ICAgZ2ZuOiAwMDAwNDlhMSAgbWZuOiAwMDAwNDlhMQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
-MTozMjozMV0gICBnZm46IDAwMDA0OWEyICBtZm46IDAwMDA0OWEyDQoNCihYRU4pIFsyMDEy
-LTA4LTMxIDIxOjMyOjMxXSAgIGdmbjogMDAwMDQ5YTMgIG1mbjogMDAwMDQ5YTMNCg0KKFhF
-TikgWzIwMTItMDgtMzEgMjE6MzI6MzFdICAgZ2ZuOiAwMDAwNDlhNCAgbWZuOiAwMDAwNDlh
-NA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozMV0gICBnZm46IDAwMDA0OWE1ICBtZm46
-IDAwMDA0OWE1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjMxXSAgIGdmbjogMDAwMDQ5
-YTYgIG1mbjogMDAwMDQ5YTYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzFdICAgZ2Zu
-OiAwMDAwNDlhNyAgbWZuOiAwMDAwNDlhNw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoz
-MV0gICBnZm46IDAwMDA0OWE4ICBtZm46IDAwMDA0OWE4DQoNCihYRU4pIFsyMDEyLTA4LTMx
-IDIxOjMyOjMxXSAgIGdmbjogMDAwMDQ5YTkgIG1mbjogMDAwMDQ5YTkNCg0KKFhFTikgWzIw
-MTItMDgtMzEgMjE6MzI6MzFdICAgZ2ZuOiAwMDAwNDlhYSAgbWZuOiAwMDAwNDlhYQ0KDQoo
-WEVOKSBbMjAxMi0wOC0zMSAyMTozMjozMV0gICBnZm46IDAwMDA0OWFiICBtZm46IDAwMDA0
-OWFiDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjMxXSAgIGdmbjogMDAwMDQ5YWMgIG1m
-bjogMDAwMDQ5YWMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzFdICAgZ2ZuOiAwMDAw
-NDlhZCAgbWZuOiAwMDAwNDlhZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozMV0gICBn
-Zm46IDAwMDA0OWFlICBtZm46IDAwMDA0OWFlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMy
-OjMxXSAgIGdmbjogMDAwMDQ5YWYgIG1mbjogMDAwMDQ5YWYNCg0KKFhFTikgWzIwMTItMDgt
-MzEgMjE6MzI6MzFdICAgZ2ZuOiAwMDAwNDliMCAgbWZuOiAwMDAwNDliMA0KDQooWEVOKSBb
-MjAxMi0wOC0zMSAyMTozMjozMV0gICBnZm46IDAwMDA0OWIxICBtZm46IDAwMDA0OWIxDQoN
-CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjMxXSAgIGdmbjogMDAwMDQ5YjIgIG1mbjogMDAw
-MDQ5YjINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzFdICAgZ2ZuOiAwMDAwNDliMyAg
-bWZuOiAwMDAwNDliMw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozMV0gICBnZm46IDAw
-MDA0OWI0ICBtZm46IDAwMDA0OWI0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjMxXSAg
-IGdmbjogMDAwMDQ5YjUgIG1mbjogMDAwMDQ5YjUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
-MzI6MzJdICAgZ2ZuOiAwMDAwNDliNiAgbWZuOiAwMDAwNDliNg0KDQooWEVOKSBbMjAxMi0w
-OC0zMSAyMTozMjozMl0gICBnZm46IDAwMDA0OWI3ICBtZm46IDAwMDA0OWI3DQoNCihYRU4p
-IFsyMDEyLTA4LTMxIDIxOjMyOjMyXSAgIGdmbjogMDAwMDQ5YjggIG1mbjogMDAwMDQ5YjgN
-Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzJdICAgZ2ZuOiAwMDAwNDliOSAgbWZuOiAw
-MDAwNDliOQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozMl0gICBnZm46IDAwMDA0OWJh
-ICBtZm46IDAwMDA0OWJhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjMyXSAgIGdmbjog
-MDAwMDQ5YmIgIG1mbjogMDAwMDQ5YmINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzJd
-ICAgZ2ZuOiAwMDAwNDliYyAgbWZuOiAwMDAwNDliYw0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
-MTozMjozMl0gICBnZm46IDAwMDA0OWJkICBtZm46IDAwMDA0OWJkDQoNCihYRU4pIFsyMDEy
-LTA4LTMxIDIxOjMyOjMyXSAgIGdmbjogMDAwMDQ5YmUgIG1mbjogMDAwMDQ5YmUNCg0KKFhF
-TikgWzIwMTItMDgtMzEgMjE6MzI6MzJdICAgZ2ZuOiAwMDAwNDliZiAgbWZuOiAwMDAwNDli
-Zg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozMl0gICBnZm46IDAwMDA0OWMwICBtZm46
-IDAwMDA0OWMwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjMyXSAgIGdmbjogMDAwMDQ5
-YzEgIG1mbjogMDAwMDQ5YzENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzJdICAgZ2Zu
-OiAwMDAwNDljMiAgbWZuOiAwMDAwNDljMg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoz
-Ml0gICBnZm46IDAwMDA0OWMzICBtZm46IDAwMDA0OWMzDQoNCihYRU4pIFsyMDEyLTA4LTMx
-IDIxOjMyOjMyXSAgIGdmbjogMDAwMDQ5YzQgIG1mbjogMDAwMDQ5YzQNCg0KKFhFTikgWzIw
-MTItMDgtMzEgMjE6MzI6MzJdICAgZ2ZuOiAwMDAwNDljNSAgbWZuOiAwMDAwNDljNQ0KDQoo
-WEVOKSBbMjAxMi0wOC0zMSAyMTozMjozMl0gICBnZm46IDAwMDA0OWM2ICBtZm46IDAwMDA0
-OWM2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjMyXSAgIGdmbjogMDAwMDQ5YzcgIG1m
-bjogMDAwMDQ5YzcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzJdICAgZ2ZuOiAwMDAw
-NDljOCAgbWZuOiAwMDAwNDljOA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozMl0gICBn
-Zm46IDAwMDA0OWM5ICBtZm46IDAwMDA0OWM5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMy
-OjMyXSAgIGdmbjogMDAwMDQ5Y2EgIG1mbjogMDAwMDQ5Y2ENCg0KKFhFTikgWzIwMTItMDgt
-MzEgMjE6MzI6MzJdICAgZ2ZuOiAwMDAwNDljYiAgbWZuOiAwMDAwNDljYg0KDQooWEVOKSBb
-MjAxMi0wOC0zMSAyMTozMjozMl0gICBnZm46IDAwMDA0OWNjICBtZm46IDAwMDA0OWNjDQoN
-CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjMyXSAgIGdmbjogMDAwMDQ5Y2QgIG1mbjogMDAw
-MDQ5Y2QNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzJdICAgZ2ZuOiAwMDAwNDljZSAg
-bWZuOiAwMDAwNDljZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozMl0gICBnZm46IDAw
-MDA0OWNmICBtZm46IDAwMDA0OWNmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjMyXSAg
-IGdmbjogMDAwMDQ5ZDAgIG1mbjogMDAwMDQ5ZDANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
-MzI6MzJdICAgZ2ZuOiAwMDAwNDlkMSAgbWZuOiAwMDAwNDlkMQ0KDQooWEVOKSBbMjAxMi0w
-OC0zMSAyMTozMjozMl0gICBnZm46IDAwMDA0OWQyICBtZm46IDAwMDA0OWQyDQoNCihYRU4p
-IFsyMDEyLTA4LTMxIDIxOjMyOjMyXSAgIGdmbjogMDAwMDQ5ZDMgIG1mbjogMDAwMDQ5ZDMN
-Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzJdICAgZ2ZuOiAwMDAwNDlkNCAgbWZuOiAw
-MDAwNDlkNA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozMl0gICBnZm46IDAwMDA0OWQ1
-ICBtZm46IDAwMDA0OWQ1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjMyXSAgIGdmbjog
-MDAwMDQ5ZDYgIG1mbjogMDAwMDQ5ZDYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzJd
-ICAgZ2ZuOiAwMDAwNDlkNyAgbWZuOiAwMDAwNDlkNw0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
-MTozMjozMl0gICBnZm46IDAwMDA0OWQ4ICBtZm46IDAwMDA0OWQ4DQoNCihYRU4pIFsyMDEy
-LTA4LTMxIDIxOjMyOjMyXSAgIGdmbjogMDAwMDQ5ZDkgIG1mbjogMDAwMDQ5ZDkNCg0KKFhF
-TikgWzIwMTItMDgtMzEgMjE6MzI6MzJdICAgZ2ZuOiAwMDAwNDlkYSAgbWZuOiAwMDAwNDlk
-YQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozMl0gICBnZm46IDAwMDA0OWRiICBtZm46
-IDAwMDA0OWRiDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjMyXSAgIGdmbjogMDAwMDQ5
-ZGMgIG1mbjogMDAwMDQ5ZGMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzJdICAgZ2Zu
-OiAwMDAwNDlkZCAgbWZuOiAwMDAwNDlkZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoz
-Ml0gICBnZm46IDAwMDA0OWRlICBtZm46IDAwMDA0OWRlDQoNCihYRU4pIFsyMDEyLTA4LTMx
-IDIxOjMyOjMyXSAgIGdmbjogMDAwMDQ5ZGYgIG1mbjogMDAwMDQ5ZGYNCg0KKFhFTikgWzIw
-MTItMDgtMzEgMjE6MzI6MzJdICAgZ2ZuOiAwMDAwNDllMCAgbWZuOiAwMDAwNDllMA0KDQoo
-WEVOKSBbMjAxMi0wOC0zMSAyMTozMjozMl0gICBnZm46IDAwMDA0OWUxICBtZm46IDAwMDA0
-OWUxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjMyXSAgIGdmbjogMDAwMDQ5ZTIgIG1m
-bjogMDAwMDQ5ZTINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzJdICAgZ2ZuOiAwMDAw
-NDllMyAgbWZuOiAwMDAwNDllMw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozMl0gICBn
-Zm46IDAwMDA0OWU0ICBtZm46IDAwMDA0OWU0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMy
-OjMyXSAgIGdmbjogMDAwMDQ5ZTUgIG1mbjogMDAwMDQ5ZTUNCg0KKFhFTikgWzIwMTItMDgt
-MzEgMjE6MzI6MzJdICAgZ2ZuOiAwMDAwNDllNiAgbWZuOiAwMDAwNDllNg0KDQooWEVOKSBb
-MjAxMi0wOC0zMSAyMTozMjozMl0gICBnZm46IDAwMDA0OWU3ICBtZm46IDAwMDA0OWU3DQoN
-CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjMyXSAgIGdmbjogMDAwMDQ5ZTggIG1mbjogMDAw
-MDQ5ZTgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzJdICAgZ2ZuOiAwMDAwNDllOSAg
-bWZuOiAwMDAwNDllOQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozMl0gICBnZm46IDAw
-MDA0OWVhICBtZm46IDAwMDA0OWVhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjMyXSAg
-IGdmbjogMDAwMDQ5ZWIgIG1mbjogMDAwMDQ5ZWINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
-MzI6MzJdICAgZ2ZuOiAwMDAwNDllYyAgbWZuOiAwMDAwNDllYw0KDQooWEVOKSBbMjAxMi0w
-OC0zMSAyMTozMjozMl0gICBnZm46IDAwMDA0OWVkICBtZm46IDAwMDA0OWVkDQoNCihYRU4p
-IFsyMDEyLTA4LTMxIDIxOjMyOjMyXSAgIGdmbjogMDAwMDQ5ZWUgIG1mbjogMDAwMDQ5ZWUN
-Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzJdICAgZ2ZuOiAwMDAwNDllZiAgbWZuOiAw
-MDAwNDllZg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozMl0gICBnZm46IDAwMDA0OWYw
-ICBtZm46IDAwMDA0OWYwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjMyXSAgIGdmbjog
-MDAwMDQ5ZjEgIG1mbjogMDAwMDQ5ZjENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzJd
-ICAgZ2ZuOiAwMDAwNDlmMiAgbWZuOiAwMDAwNDlmMg0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
-MTozMjozMl0gICBnZm46IDAwMDA0OWYzICBtZm46IDAwMDA0OWYzDQoNCihYRU4pIFsyMDEy
-LTA4LTMxIDIxOjMyOjMyXSAgIGdmbjogMDAwMDQ5ZjQgIG1mbjogMDAwMDQ5ZjQNCg0KKFhF
-TikgWzIwMTItMDgtMzEgMjE6MzI6MzJdICAgZ2ZuOiAwMDAwNDlmNSAgbWZuOiAwMDAwNDlm
-NQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozM10gICBnZm46IDAwMDA0OWY2ICBtZm46
-IDAwMDA0OWY2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjMzXSAgIGdmbjogMDAwMDQ5
-ZjcgIG1mbjogMDAwMDQ5ZjcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzNdICAgZ2Zu
-OiAwMDAwNDlmOCAgbWZuOiAwMDAwNDlmOA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoz
-M10gICBnZm46IDAwMDA0OWY5ICBtZm46IDAwMDA0OWY5DQoNCihYRU4pIFsyMDEyLTA4LTMx
-IDIxOjMyOjMzXSAgIGdmbjogMDAwMDQ5ZmEgIG1mbjogMDAwMDQ5ZmENCg0KKFhFTikgWzIw
-MTItMDgtMzEgMjE6MzI6MzNdICAgZ2ZuOiAwMDAwNDlmYiAgbWZuOiAwMDAwNDlmYg0KDQoo
-WEVOKSBbMjAxMi0wOC0zMSAyMTozMjozM10gICBnZm46IDAwMDA0OWZjICBtZm46IDAwMDA0
-OWZjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjMzXSAgIGdmbjogMDAwMDQ5ZmQgIG1m
-bjogMDAwMDQ5ZmQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzNdICAgZ2ZuOiAwMDAw
-NDlmZSAgbWZuOiAwMDAwNDlmZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozM10gICBn
-Zm46IDAwMDA0OWZmICBtZm46IDAwMDA0OWZmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMy
-OjMzXSAgIGdmbjogMDAwMDRhMDAgIG1mbjogMDAwMDRhMDANCg0KKFhFTikgWzIwMTItMDgt
-MzEgMjE6MzI6MzNdICAgZ2ZuOiAwMDAwNGEwMSAgbWZuOiAwMDAwNGEwMQ0KDQooWEVOKSBb
-MjAxMi0wOC0zMSAyMTozMjozM10gICBnZm46IDAwMDA0YTAyICBtZm46IDAwMDA0YTAyDQoN
-CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjMzXSAgIGdmbjogMDAwMDRhMDMgIG1mbjogMDAw
-MDRhMDMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzNdICAgZ2ZuOiAwMDAwNGEwNCAg
-bWZuOiAwMDAwNGEwNA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozM10gICBnZm46IDAw
-MDA0YTA1ICBtZm46IDAwMDA0YTA1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjMzXSAg
-IGdmbjogMDAwMDRhMDYgIG1mbjogMDAwMDRhMDYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
-MzI6MzNdICAgZ2ZuOiAwMDAwNGEwNyAgbWZuOiAwMDAwNGEwNw0KDQooWEVOKSBbMjAxMi0w
-OC0zMSAyMTozMjozM10gICBnZm46IDAwMDA0YTA4ICBtZm46IDAwMDA0YTA4DQoNCihYRU4p
-IFsyMDEyLTA4LTMxIDIxOjMyOjMzXSAgIGdmbjogMDAwMDRhMDkgIG1mbjogMDAwMDRhMDkN
-Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzNdICAgZ2ZuOiAwMDAwNGEwYSAgbWZuOiAw
-MDAwNGEwYQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozM10gICBnZm46IDAwMDA0YTBi
-ICBtZm46IDAwMDA0YTBiDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjMzXSAgIGdmbjog
-MDAwMDRhMGMgIG1mbjogMDAwMDRhMGMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzNd
-ICAgZ2ZuOiAwMDAwNGEwZCAgbWZuOiAwMDAwNGEwZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
-MTozMjozM10gICBnZm46IDAwMDA0YTBlICBtZm46IDAwMDA0YTBlDQoNCihYRU4pIFsyMDEy
-LTA4LTMxIDIxOjMyOjMzXSAgIGdmbjogMDAwMDRhMGYgIG1mbjogMDAwMDRhMGYNCg0KKFhF
-TikgWzIwMTItMDgtMzEgMjE6MzI6MzNdICAgZ2ZuOiAwMDAwNGExMCAgbWZuOiAwMDAwNGEx
-MA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozM10gICBnZm46IDAwMDA0YTExICBtZm46
-IDAwMDA0YTExDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjMzXSAgIGdmbjogMDAwMDRh
-MTIgIG1mbjogMDAwMDRhMTINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzNdICAgZ2Zu
-OiAwMDAwNGExMyAgbWZuOiAwMDAwNGExMw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoz
-M10gICBnZm46IDAwMDA0YTE0ICBtZm46IDAwMDA0YTE0DQoNCihYRU4pIFsyMDEyLTA4LTMx
-IDIxOjMyOjMzXSAgIGdmbjogMDAwMDRhMTUgIG1mbjogMDAwMDRhMTUNCg0KKFhFTikgWzIw
-MTItMDgtMzEgMjE6MzI6MzNdICAgZ2ZuOiAwMDAwNGExNiAgbWZuOiAwMDAwNGExNg0KDQoo
-WEVOKSBbMjAxMi0wOC0zMSAyMTozMjozM10gICBnZm46IDAwMDA0YTE3ICBtZm46IDAwMDA0
-YTE3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjMzXSAgIGdmbjogMDAwMDRhMTggIG1m
-bjogMDAwMDRhMTgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzNdICAgZ2ZuOiAwMDAw
-NGExOSAgbWZuOiAwMDAwNGExOQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozM10gICBn
-Zm46IDAwMDA0YTFhICBtZm46IDAwMDA0YTFhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMy
-OjMzXSAgIGdmbjogMDAwMDRhMWIgIG1mbjogMDAwMDRhMWINCg0KKFhFTikgWzIwMTItMDgt
-MzEgMjE6MzI6MzNdICAgZ2ZuOiAwMDAwNGExYyAgbWZuOiAwMDAwNGExYw0KDQooWEVOKSBb
-MjAxMi0wOC0zMSAyMTozMjozM10gICBnZm46IDAwMDA0YTFkICBtZm46IDAwMDA0YTFkDQoN
-CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjMzXSAgIGdmbjogMDAwMDRhMWUgIG1mbjogMDAw
-MDRhMWUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzNdICAgZ2ZuOiAwMDAwNGExZiAg
-bWZuOiAwMDAwNGExZg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozM10gICBnZm46IDAw
-MDA0YTIwICBtZm46IDAwMDA0YTIwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjMzXSAg
-IGdmbjogMDAwMDRhMjEgIG1mbjogMDAwMDRhMjENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
-MzI6MzNdICAgZ2ZuOiAwMDAwNGEyMiAgbWZuOiAwMDAwNGEyMg0KDQooWEVOKSBbMjAxMi0w
-OC0zMSAyMTozMjozM10gICBnZm46IDAwMDA0YTIzICBtZm46IDAwMDA0YTIzDQoNCihYRU4p
-IFsyMDEyLTA4LTMxIDIxOjMyOjMzXSAgIGdmbjogMDAwMDRhMjQgIG1mbjogMDAwMDRhMjQN
-Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzNdICAgZ2ZuOiAwMDAwNGEyNSAgbWZuOiAw
-MDAwNGEyNQ0KDQpbICA0MTkuNzI3NTc1XSBhdGExLjAwOiBxYyB0aW1lbyhYRU4pIFsyMDEy
-LTA4LTMxIDIxOjMyOjMzXSAgIGdmbjogMDAwMDRhMjYgIG1mbjogMDAwMDRhMjYNCg0KdXQg
-KGNtZCAweGVjKQ0KDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjMzXSAgIGdmbjogMDAw
-MDRhMjcgIG1mbjogMDAwMDRhMjcNCg0KWyAgNDE5Ljc4NTU2OV0gYXRhMS4wMDogZmFpbGVk
-IHQoWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozM10gICBnZm46IDAwMDA0YTI4ICBtZm46IDAw
-MDA0YTI4DQoNCm8gSURFTlRJRlkgKEkvTyAoWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozM10g
-ICBnZm46IDAwMDA0YTI5ICBtZm46IDAwMDA0YTI5DQoNCmVycm9yLCBlcnJfbWFzaz0weDQp
-DQoNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzNdICAgZ2ZuOiAwMDAwNGEyYSAgbWZu
-OiAwMDAwNGEyYQ0KDQpbICA0MTkuODUxOTg1XSBhKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
-MzNdICAgZ2ZuOiAwMDAwNGEyYiAgbWZuOiAwMDAwNGEyYg0KDQp0YTEuMDA6IHJldmFsaWRh
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzNdICAgZ2ZuOiAwMDAwNGEyYyAgbWZuOiAwMDAw
-NGEyYw0KDQp0aW9uIGZhaWxlZCAoZXJyKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzNdICAg
-Z2ZuOiAwMDAwNGEyZCAgbWZuOiAwMDAwNGEyZA0KDQpubz0tNSkNCg0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMjozM10gICBnZm46IDAwMDA0YTJlICBtZm46IDAwMDA0YTJlDQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjMzXSAgIGdmbjogMDAwMDRhMmYgIG1mbjogMDAwMDRh
-MmYNCg0KWyAgNDE5LjkzMTA1MV0gYXRhMTogaGFyZCByZXNldHQoWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMjozM10gICBnZm46IDAwMDA0YTMwICBtZm46IDAwMDA0YTMwDQoNCmluZyBsaW5r
-DQoNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzNdICAgZ2ZuOiAwMDAwNGEzMSAgbWZu
-OiAwMDAwNGEzMQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozNF0gICBnZm46IDAwMDA0
-YTMyICBtZm46IDAwMDA0YTMyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM0XSAgIGdm
-bjogMDAwMDRhMzMgIG1mbjogMDAwMDRhMzMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
-MzRdICAgZ2ZuOiAwMDAwNGEzNCAgbWZuOiAwMDAwNGEzNA0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMjozNF0gICBnZm46IDAwMDA0YTM1ICBtZm46IDAwMDA0YTM1DQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMyOjM0XSAgIGdmbjogMDAwMDRhMzYgIG1mbjogMDAwMDRhMzYNCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzRdICAgZ2ZuOiAwMDAwNGEzNyAgbWZuOiAwMDAw
-NGEzNw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozNF0gICBnZm46IDAwMDA0YTM4ICBt
-Zm46IDAwMDA0YTM4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM0XSAgIGdmbjogMDAw
-MDRhMzkgIG1mbjogMDAwMDRhMzkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzRdICAg
-Z2ZuOiAwMDAwNGEzYSAgbWZuOiAwMDAwNGEzYQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-MjozNF0gICBnZm46IDAwMDA0YTNiICBtZm46IDAwMDA0YTNiDQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMyOjM0XSAgIGdmbjogMDAwMDRhM2MgIG1mbjogMDAwMDRhM2MNCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzI6MzRdICAgZ2ZuOiAwMDAwNGEzZCAgbWZuOiAwMDAwNGEzZA0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozNF0gICBnZm46IDAwMDA0YTNlICBtZm46IDAw
-MDA0YTNlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM0XSAgIGdmbjogMDAwMDRhM2Yg
-IG1mbjogMDAwMDRhM2YNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzRdICAgZ2ZuOiAw
-MDAwNGE0MCAgbWZuOiAwMDAwNGE0MA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozNF0g
-ICBnZm46IDAwMDA0YTQxICBtZm46IDAwMDA0YTQxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMyOjM0XSAgIGdmbjogMDAwMDRhNDIgIG1mbjogMDAwMDRhNDINCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzI6MzRdICAgZ2ZuOiAwMDAwNGE0MyAgbWZuOiAwMDAwNGE0Mw0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMjozNF0gICBnZm46IDAwMDA0YTQ0ICBtZm46IDAwMDA0YTQ0
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM0XSAgIGdmbjogMDAwMDRhNDUgIG1mbjog
-MDAwMDRhNDUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzRdICAgZ2ZuOiAwMDAwNGE0
-NiAgbWZuOiAwMDAwNGE0Ng0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozNF0gICBnZm46
-IDAwMDA0YTQ3ICBtZm46IDAwMDA0YTQ3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM0
-XSAgIGdmbjogMDAwMDRhNDggIG1mbjogMDAwMDRhNDgNCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzI6MzRdICAgZ2ZuOiAwMDAwNGE0OSAgbWZuOiAwMDAwNGE0OQ0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMjozNF0gICBnZm46IDAwMDA0YTRhICBtZm46IDAwMDA0YTRhDQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM0XSAgIGdmbjogMDAwMDRhNGIgIG1mbjogMDAwMDRh
-NGINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzRdICAgZ2ZuOiAwMDAwNGE0YyAgbWZu
-OiAwMDAwNGE0Yw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozNF0gICBnZm46IDAwMDA0
-YTRkICBtZm46IDAwMDA0YTRkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM0XSAgIGdm
-bjogMDAwMDRhNGUgIG1mbjogMDAwMDRhNGUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
-MzRdICAgZ2ZuOiAwMDAwNGE0ZiAgbWZuOiAwMDAwNGE0Zg0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMjozNF0gICBnZm46IDAwMDA0YTUwICBtZm46IDAwMDA0YTUwDQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMyOjM0XSAgIGdmbjogMDAwMDRhNTEgIG1mbjogMDAwMDRhNTENCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzRdICAgZ2ZuOiAwMDAwNGE1MiAgbWZuOiAwMDAw
-NGE1Mg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozNF0gICBnZm46IDAwMDA0YTUzICBt
-Zm46IDAwMDA0YTUzDQoNClsgIDQyMC41MDA5ODFdIGF0YTE6IFNBVEEgbGluayB1KFhFTikg
-WzIwMTItMDgtMzEgMjE6MzI6MzRdICAgZ2ZuOiAwMDAwNGE1NCAgbWZuOiAwMDAwNGE1NA0K
-DQpwIDMuMCBHYnBzIChTU3RhKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzRdICAgZ2ZuOiAw
-MDAwNGE1NSAgbWZuOiAwMDAwNGE1NQ0KDQp0dXMgMTIzIFNDb250cm9sIDMwMCkNCg0KDQoo
-WEVOKSBbMjAxMi0wOC0zMSAyMTozMjozNF0gICBnZm46IDAwMDA0YTU2ICBtZm46IDAwMDA0
-YTU2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM0XSAgIGdmbjogMDAwMDRhNTcgIG1m
-bjogMDAwMDRhNTcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzRdICAgZ2ZuOiAwMDAw
-NGE1OCAgbWZuOiAwMDAwNGE1OA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozNF0gICBn
-Zm46IDAwMDA0YTU5ICBtZm46IDAwMDA0YTU5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMy
-OjM0XSAgIGdmbjogMDAwMDRhNWEgIG1mbjogMDAwMDRhNWENCg0KKFhFTikgWzIwMTItMDgt
-MzEgMjE6MzI6MzRdICAgZ2ZuOiAwMDAwNGE1YiAgbWZuOiAwMDAwNGE1Yg0KDQooWEVOKSBb
-MjAxMi0wOC0zMSAyMTozMjozNF0gICBnZm46IDAwMDA0YTVjICBtZm46IDAwMDA0YTVjDQoN
-CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM0XSAgIGdmbjogMDAwMDRhNWQgIG1mbjogMDAw
-MDRhNWQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzRdICAgZ2ZuOiAwMDAwNGE1ZSAg
-bWZuOiAwMDAwNGE1ZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozNF0gICBnZm46IDAw
-MDA0YTVmICBtZm46IDAwMDA0YTVmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM0XSAg
-IGdmbjogMDAwMDRhNjAgIG1mbjogMDAwMDRhNjANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
-MzI6MzRdICAgZ2ZuOiAwMDAwNGE2MSAgbWZuOiAwMDAwNGE2MQ0KDQooWEVOKSBbMjAxMi0w
-OC0zMSAyMTozMjozNF0gICBnZm46IDAwMDA0YTYyICBtZm46IDAwMDA0YTYyDQoNCihYRU4p
-IFsyMDEyLTA4LTMxIDIxOjMyOjM0XSAgIGdmbjogMDAwMDRhNjMgIG1mbjogMDAwMDRhNjMN
-Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzRdICAgZ2ZuOiAwMDAwNGE2NCAgbWZuOiAw
-MDAwNGE2NA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozNF0gICBnZm46IDAwMDA0YTY1
-ICBtZm46IDAwMDA0YTY1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM0XSAgIGdmbjog
-MDAwMDRhNjYgIG1mbjogMDAwMDRhNjYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzRd
-ICAgZ2ZuOiAwMDAwNGE2NyAgbWZuOiAwMDAwNGE2Nw0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
-MTozMjozNF0gICBnZm46IDAwMDA0YTY4ICBtZm46IDAwMDA0YTY4DQoNCihYRU4pIFsyMDEy
-LTA4LTMxIDIxOjMyOjM0XSAgIGdmbjogMDAwMDRhNjkgIG1mbjogMDAwMDRhNjkNCg0KKFhF
-TikgWzIwMTItMDgtMzEgMjE6MzI6MzRdICAgZ2ZuOiAwMDAwNGE2YSAgbWZuOiAwMDAwNGE2
-YQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozNF0gICBnZm46IDAwMDA0YTZiICBtZm46
-IDAwMDA0YTZiDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM0XSAgIGdmbjogMDAwMDRh
-NmMgIG1mbjogMDAwMDRhNmMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzRdICAgZ2Zu
-OiAwMDAwNGE2ZCAgbWZuOiAwMDAwNGE2ZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoz
-NF0gICBnZm46IDAwMDA0YTZlICBtZm46IDAwMDA0YTZlDQoNCihYRU4pIFsyMDEyLTA4LTMx
-IDIxOjMyOjM0XSAgIGdmbjogMDAwMDRhNmYgIG1mbjogMDAwMDRhNmYNCg0KKFhFTikgWzIw
-MTItMDgtMzEgMjE6MzI6MzRdICAgZ2ZuOiAwMDAwNGE3MCAgbWZuOiAwMDAwNGE3MA0KDQoo
-WEVOKSBbMjAxMi0wOC0zMSAyMTozMjozNV0gICBnZm46IDAwMDA0YTcxICBtZm46IDAwMDA0
-YTcxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM1XSAgIGdmbjogMDAwMDRhNzIgIG1m
-bjogMDAwMDRhNzINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzVdICAgZ2ZuOiAwMDAw
-NGE3MyAgbWZuOiAwMDAwNGE3Mw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozNV0gICBn
-Zm46IDAwMDA0YTc0ICBtZm46IDAwMDA0YTc0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMy
-OjM1XSAgIGdmbjogMDAwMDRhNzUgIG1mbjogMDAwMDRhNzUNCg0KKFhFTikgWzIwMTItMDgt
-MzEgMjE6MzI6MzVdICAgZ2ZuOiAwMDAwNGE3NiAgbWZuOiAwMDAwNGE3Ng0KDQooWEVOKSBb
-MjAxMi0wOC0zMSAyMTozMjozNV0gICBnZm46IDAwMDA0YTc3ICBtZm46IDAwMDA0YTc3DQoN
-CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM1XSAgIGdmbjogMDAwMDRhNzggIG1mbjogMDAw
-MDRhNzgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzVdICAgZ2ZuOiAwMDAwNGE3OSAg
-bWZuOiAwMDAwNGE3OQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozNV0gICBnZm46IDAw
-MDA0YTdhICBtZm46IDAwMDA0YTdhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM1XSAg
-IGdmbjogMDAwMDRhN2IgIG1mbjogMDAwMDRhN2INCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
-MzI6MzVdICAgZ2ZuOiAwMDAwNGE3YyAgbWZuOiAwMDAwNGE3Yw0KDQooWEVOKSBbMjAxMi0w
-OC0zMSAyMTozMjozNV0gICBnZm46IDAwMDA0YTdkICBtZm46IDAwMDA0YTdkDQoNCihYRU4p
-IFsyMDEyLTA4LTMxIDIxOjMyOjM1XSAgIGdmbjogMDAwMDRhN2UgIG1mbjogMDAwMDRhN2UN
-Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzVdICAgZ2ZuOiAwMDAwNGE3ZiAgbWZuOiAw
-MDAwNGE3Zg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozNV0gICBnZm46IDAwMDA0YTgw
-ICBtZm46IDAwMDA0YTgwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM1XSAgIGdmbjog
-MDAwMDRhODEgIG1mbjogMDAwMDRhODENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzVd
-ICAgZ2ZuOiAwMDAwNGE4MiAgbWZuOiAwMDAwNGE4Mg0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
-MTozMjozNV0gICBnZm46IDAwMDA0YTgzICBtZm46IDAwMDA0YTgzDQoNCihYRU4pIFsyMDEy
-LTA4LTMxIDIxOjMyOjM1XSAgIGdmbjogMDAwMDRhODQgIG1mbjogMDAwMDRhODQNCg0KKFhF
-TikgWzIwMTItMDgtMzEgMjE6MzI6MzVdICAgZ2ZuOiAwMDAwNGE4NSAgbWZuOiAwMDAwNGE4
-NQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozNV0gICBnZm46IDAwMDA0YTg2ICBtZm46
-IDAwMDA0YTg2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM1XSAgIGdmbjogMDAwMDRh
-ODcgIG1mbjogMDAwMDRhODcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzVdICAgZ2Zu
-OiAwMDAwNGE4OCAgbWZuOiAwMDAwNGE4OA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoz
-NV0gICBnZm46IDAwMDA0YTg5ICBtZm46IDAwMDA0YTg5DQoNCihYRU4pIFsyMDEyLTA4LTMx
-IDIxOjMyOjM1XSAgIGdmbjogMDAwMDRhOGEgIG1mbjogMDAwMDRhOGENCg0KKFhFTikgWzIw
-MTItMDgtMzEgMjE6MzI6MzVdICAgZ2ZuOiAwMDAwNGE4YiAgbWZuOiAwMDAwNGE4Yg0KDQoo
-WEVOKSBbMjAxMi0wOC0zMSAyMTozMjozNV0gICBnZm46IDAwMDA0YThjICBtZm46IDAwMDA0
-YThjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM1XSAgIGdmbjogMDAwMDRhOGQgIG1m
-bjogMDAwMDRhOGQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzVdICAgZ2ZuOiAwMDAw
-NGE4ZSAgbWZuOiAwMDAwNGE4ZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozNV0gICBn
-Zm46IDAwMDA0YThmICBtZm46IDAwMDA0YThmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMy
-OjM1XSAgIGdmbjogMDAwMDRhOTAgIG1mbjogMDAwMDRhOTANCg0KKFhFTikgWzIwMTItMDgt
-MzEgMjE6MzI6MzVdICAgZ2ZuOiAwMDAwNGE5MSAgbWZuOiAwMDAwNGE5MQ0KDQooWEVOKSBb
-MjAxMi0wOC0zMSAyMTozMjozNV0gICBnZm46IDAwMDA0YTkyICBtZm46IDAwMDA0YTkyDQoN
-CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM1XSAgIGdmbjogMDAwMDRhOTMgIG1mbjogMDAw
-MDRhOTMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzVdICAgZ2ZuOiAwMDAwNGE5NCAg
-bWZuOiAwMDAwNGE5NA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozNV0gICBnZm46IDAw
-MDA0YTk1ICBtZm46IDAwMDA0YTk1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM1XSAg
-IGdmbjogMDAwMDRhOTYgIG1mbjogMDAwMDRhOTYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
-MzI6MzVdICAgZ2ZuOiAwMDAwNGE5NyAgbWZuOiAwMDAwNGE5Nw0KDQooWEVOKSBbMjAxMi0w
-OC0zMSAyMTozMjozNV0gICBnZm46IDAwMDA0YTk4ICBtZm46IDAwMDA0YTk4DQoNCihYRU4p
-IFsyMDEyLTA4LTMxIDIxOjMyOjM1XSAgIGdmbjogMDAwMDRhOTkgIG1mbjogMDAwMDRhOTkN
-Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzVdICAgZ2ZuOiAwMDAwNGE5YSAgbWZuOiAw
-MDAwNGE5YQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozNV0gICBnZm46IDAwMDA0YTli
-ICBtZm46IDAwMDA0YTliDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM1XSAgIGdmbjog
-MDAwMDRhOWMgIG1mbjogMDAwMDRhOWMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzVd
-ICAgZ2ZuOiAwMDAwNGE5ZCAgbWZuOiAwMDAwNGE5ZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
-MTozMjozNV0gICBnZm46IDAwMDA0YTllICBtZm46IDAwMDA0YTllDQoNCihYRU4pIFsyMDEy
-LTA4LTMxIDIxOjMyOjM1XSAgIGdmbjogMDAwMDRhOWYgIG1mbjogMDAwMDRhOWYNCg0KKFhF
-TikgWzIwMTItMDgtMzEgMjE6MzI6MzVdICAgZ2ZuOiAwMDAwNGFhMCAgbWZuOiAwMDAwNGFh
-MA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozNV0gICBnZm46IDAwMDA0YWExICBtZm46
-IDAwMDA0YWExDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM1XSAgIGdmbjogMDAwMDRh
-YTIgIG1mbjogMDAwMDRhYTINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzVdICAgZ2Zu
-OiAwMDAwNGFhMyAgbWZuOiAwMDAwNGFhMw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoz
-NV0gICBnZm46IDAwMDA0YWE0ICBtZm46IDAwMDA0YWE0DQoNCihYRU4pIFsyMDEyLTA4LTMx
-IDIxOjMyOjM1XSAgIGdmbjogMDAwMDRhYTUgIG1mbjogMDAwMDRhYTUNCg0KKFhFTikgWzIw
-MTItMDgtMzEgMjE6MzI6MzVdICAgZ2ZuOiAwMDAwNGFhNiAgbWZuOiAwMDAwNGFhNg0KDQoo
-WEVOKSBbMjAxMi0wOC0zMSAyMTozMjozNV0gICBnZm46IDAwMDA0YWE3ICBtZm46IDAwMDA0
-YWE3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM1XSAgIGdmbjogMDAwMDRhYTggIG1m
-bjogMDAwMDRhYTgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzVdICAgZ2ZuOiAwMDAw
-NGFhOSAgbWZuOiAwMDAwNGFhOQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozNV0gICBn
-Zm46IDAwMDA0YWFhICBtZm46IDAwMDA0YWFhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMy
-OjM1XSAgIGdmbjogMDAwMDRhYWIgIG1mbjogMDAwMDRhYWINCg0KKFhFTikgWzIwMTItMDgt
-MzEgMjE6MzI6MzVdICAgZ2ZuOiAwMDAwNGFhYyAgbWZuOiAwMDAwNGFhYw0KDQooWEVOKSBb
-MjAxMi0wOC0zMSAyMTozMjozNV0gICBnZm46IDAwMDA0YWFkICBtZm46IDAwMDA0YWFkDQoN
-CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM1XSAgIGdmbjogMDAwMDRhYWUgIG1mbjogMDAw
-MDRhYWUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzVdICAgZ2ZuOiAwMDAwNGFhZiAg
-bWZuOiAwMDAwNGFhZg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozNV0gICBnZm46IDAw
-MDA0YWIwICBtZm46IDAwMDA0YWIwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM2XSAg
-IGdmbjogMDAwMDRhYjEgIG1mbjogMDAwMDRhYjENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
-MzI6MzZdICAgZ2ZuOiAwMDAwNGFiMiAgbWZuOiAwMDAwNGFiMg0KDQooWEVOKSBbMjAxMi0w
-OC0zMSAyMTozMjozNl0gICBnZm46IDAwMDA0YWIzICBtZm46IDAwMDA0YWIzDQoNCihYRU4p
-IFsyMDEyLTA4LTMxIDIxOjMyOjM2XSAgIGdmbjogMDAwMDRhYjQgIG1mbjogMDAwMDRhYjQN
-Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzZdICAgZ2ZuOiAwMDAwNGFiNSAgbWZuOiAw
-MDAwNGFiNQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozNl0gICBnZm46IDAwMDA0YWI2
-ICBtZm46IDAwMDA0YWI2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM2XSAgIGdmbjog
-MDAwMDRhYjcgIG1mbjogMDAwMDRhYjcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzZd
-ICAgZ2ZuOiAwMDAwNGFiOCAgbWZuOiAwMDAwNGFiOA0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
-MTozMjozNl0gICBnZm46IDAwMDA0YWI5ICBtZm46IDAwMDA0YWI5DQoNCihYRU4pIFsyMDEy
-LTA4LTMxIDIxOjMyOjM2XSAgIGdmbjogMDAwMDRhYmEgIG1mbjogMDAwMDRhYmENCg0KKFhF
-TikgWzIwMTItMDgtMzEgMjE6MzI6MzZdICAgZ2ZuOiAwMDAwNGFiYiAgbWZuOiAwMDAwNGFi
-Yg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozNl0gICBnZm46IDAwMDA0YWJjICBtZm46
-IDAwMDA0YWJjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM2XSAgIGdmbjogMDAwMDRh
-YmQgIG1mbjogMDAwMDRhYmQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzZdICAgZ2Zu
-OiAwMDAwNGFiZSAgbWZuOiAwMDAwNGFiZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoz
-Nl0gICBnZm46IDAwMDA0YWJmICBtZm46IDAwMDA0YWJmDQoNCihYRU4pIFsyMDEyLTA4LTMx
-IDIxOjMyOjM2XSAgIGdmbjogMDAwMDRhYzAgIG1mbjogMDAwMDRhYzANCg0KKFhFTikgWzIw
-MTItMDgtMzEgMjE6MzI6MzZdICAgZ2ZuOiAwMDAwNGFjMSAgbWZuOiAwMDAwNGFjMQ0KDQoo
-WEVOKSBbMjAxMi0wOC0zMSAyMTozMjozNl0gICBnZm46IDAwMDA0YWMyICBtZm46IDAwMDA0
-YWMyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM2XSAgIGdmbjogMDAwMDRhYzMgIG1m
-bjogMDAwMDRhYzMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzZdICAgZ2ZuOiAwMDAw
-NGFjNCAgbWZuOiAwMDAwNGFjNA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozNl0gICBn
-Zm46IDAwMDA0YWM1ICBtZm46IDAwMDA0YWM1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMy
-OjM2XSAgIGdmbjogMDAwMDRhYzYgIG1mbjogMDAwMDRhYzYNCg0KKFhFTikgWzIwMTItMDgt
-MzEgMjE6MzI6MzZdICAgZ2ZuOiAwMDAwNGFjNyAgbWZuOiAwMDAwNGFjNw0KDQooWEVOKSBb
-MjAxMi0wOC0zMSAyMTozMjozNl0gICBnZm46IDAwMDA0YWM4ICBtZm46IDAwMDA0YWM4DQoN
-CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM2XSAgIGdmbjogMDAwMDRhYzkgIG1mbjogMDAw
-MDRhYzkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzZdICAgZ2ZuOiAwMDAwNGFjYSAg
-bWZuOiAwMDAwNGFjYQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozNl0gICBnZm46IDAw
-MDA0YWNiICBtZm46IDAwMDA0YWNiDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM2XSAg
-IGdmbjogMDAwMDRhY2MgIG1mbjogMDAwMDRhY2MNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
-MzI6MzZdICAgZ2ZuOiAwMDAwNGFjZCAgbWZuOiAwMDAwNGFjZA0KDQooWEVOKSBbMjAxMi0w
-OC0zMSAyMTozMjozNl0gICBnZm46IDAwMDA0YWNlICBtZm46IDAwMDA0YWNlDQoNCihYRU4p
-IFsyMDEyLTA4LTMxIDIxOjMyOjM2XSAgIGdmbjogMDAwMDRhY2YgIG1mbjogMDAwMDRhY2YN
-Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzZdICAgZ2ZuOiAwMDAwNGFkMCAgbWZuOiAw
-MDAwNGFkMA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozNl0gICBnZm46IDAwMDA0YWQx
-ICBtZm46IDAwMDA0YWQxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM2XSAgIGdmbjog
-MDAwMDRhZDIgIG1mbjogMDAwMDRhZDINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzZd
-ICAgZ2ZuOiAwMDAwNGFkMyAgbWZuOiAwMDAwNGFkMw0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
-MTozMjozNl0gICBnZm46IDAwMDA0YWQ0ICBtZm46IDAwMDA0YWQ0DQoNCihYRU4pIFsyMDEy
-LTA4LTMxIDIxOjMyOjM2XSAgIGdmbjogMDAwMDRhZDUgIG1mbjogMDAwMDRhZDUNCg0KKFhF
-TikgWzIwMTItMDgtMzEgMjE6MzI6MzZdICAgZ2ZuOiAwMDAwNGFkNiAgbWZuOiAwMDAwNGFk
-Ng0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozNl0gICBnZm46IDAwMDA0YWQ3ICBtZm46
-IDAwMDA0YWQ3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM2XSAgIGdmbjogMDAwMDRh
-ZDggIG1mbjogMDAwMDRhZDgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzZdICAgZ2Zu
-OiAwMDAwNGFkOSAgbWZuOiAwMDAwNGFkOQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoz
-Nl0gICBnZm46IDAwMDA0YWRhICBtZm46IDAwMDA0YWRhDQoNCihYRU4pIFsyMDEyLTA4LTMx
-IDIxOjMyOjM2XSAgIGdmbjogMDAwMDRhZGIgIG1mbjogMDAwMDRhZGINCg0KKFhFTikgWzIw
-MTItMDgtMzEgMjE6MzI6MzZdICAgZ2ZuOiAwMDAwNGFkYyAgbWZuOiAwMDAwNGFkYw0KDQoo
-WEVOKSBbMjAxMi0wOC0zMSAyMTozMjozNl0gICBnZm46IDAwMDA0YWRkICBtZm46IDAwMDA0
-YWRkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM2XSAgIGdmbjogMDAwMDRhZGUgIG1m
-bjogMDAwMDRhZGUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzZdICAgZ2ZuOiAwMDAw
-NGFkZiAgbWZuOiAwMDAwNGFkZg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozNl0gICBn
-Zm46IDAwMDA0YWUwICBtZm46IDAwMDA0YWUwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMy
-OjM2XSAgIGdmbjogMDAwMDRhZTEgIG1mbjogMDAwMDRhZTENCg0KKFhFTikgWzIwMTItMDgt
-MzEgMjE6MzI6MzZdICAgZ2ZuOiAwMDAwNGFlMiAgbWZuOiAwMDAwNGFlMg0KDQooWEVOKSBb
-MjAxMi0wOC0zMSAyMTozMjozNl0gICBnZm46IDAwMDA0YWUzICBtZm46IDAwMDA0YWUzDQoN
-CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM2XSAgIGdmbjogMDAwMDRhZTQgIG1mbjogMDAw
-MDRhZTQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzZdICAgZ2ZuOiAwMDAwNGFlNSAg
-bWZuOiAwMDAwNGFlNQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozNl0gICBnZm46IDAw
-MDA0YWU2ICBtZm46IDAwMDA0YWU2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM2XSAg
-IGdmbjogMDAwMDRhZTcgIG1mbjogMDAwMDRhZTcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
-MzI6MzZdICAgZ2ZuOiAwMDAwNGFlOCAgbWZuOiAwMDAwNGFlOA0KDQooWEVOKSBbMjAxMi0w
-OC0zMSAyMTozMjozNl0gICBnZm46IDAwMDA0YWU5ICBtZm46IDAwMDA0YWU5DQoNCihYRU4p
-IFsyMDEyLTA4LTMxIDIxOjMyOjM2XSAgIGdmbjogMDAwMDRhZWEgIG1mbjogMDAwMDRhZWEN
-Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzZdICAgZ2ZuOiAwMDAwNGFlYiAgbWZuOiAw
-MDAwNGFlYg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozNl0gICBnZm46IDAwMDA0YWVj
-ICBtZm46IDAwMDA0YWVjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM2XSAgIGdmbjog
-MDAwMDRhZWQgIG1mbjogMDAwMDRhZWQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzZd
-ICAgZ2ZuOiAwMDAwNGFlZSAgbWZuOiAwMDAwNGFlZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
-MTozMjozNl0gICBnZm46IDAwMDA0YWVmICBtZm46IDAwMDA0YWVmDQoNCihYRU4pIFsyMDEy
-LTA4LTMxIDIxOjMyOjM2XSAgIGdmbjogMDAwMDRhZjAgIG1mbjogMDAwMDRhZjANCg0KKFhF
-TikgWzIwMTItMDgtMzEgMjE6MzI6MzddICAgZ2ZuOiAwMDAwNGFmMSAgbWZuOiAwMDAwNGFm
-MQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozN10gICBnZm46IDAwMDA0YWYyICBtZm46
-IDAwMDA0YWYyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM3XSAgIGdmbjogMDAwMDRh
-ZjMgIG1mbjogMDAwMDRhZjMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzddICAgZ2Zu
-OiAwMDAwNGFmNCAgbWZuOiAwMDAwNGFmNA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoz
-N10gICBnZm46IDAwMDA0YWY1ICBtZm46IDAwMDA0YWY1DQoNCihYRU4pIFsyMDEyLTA4LTMx
-IDIxOjMyOjM3XSAgIGdmbjogMDAwMDRhZjYgIG1mbjogMDAwMDRhZjYNCg0KKFhFTikgWzIw
-MTItMDgtMzEgMjE6MzI6MzddICAgZ2ZuOiAwMDAwNGFmNyAgbWZuOiAwMDAwNGFmNw0KDQoo
-WEVOKSBbMjAxMi0wOC0zMSAyMTozMjozN10gICBnZm46IDAwMDA0YWY4ICBtZm46IDAwMDA0
-YWY4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM3XSAgIGdmbjogMDAwMDRhZjkgIG1m
-bjogMDAwMDRhZjkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzddICAgZ2ZuOiAwMDAw
-NGFmYSAgbWZuOiAwMDAwNGFmYQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozN10gICBn
-Zm46IDAwMDA0YWZiICBtZm46IDAwMDA0YWZiDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMy
-OjM3XSAgIGdmbjogMDAwMDRhZmMgIG1mbjogMDAwMDRhZmMNCg0KKFhFTikgWzIwMTItMDgt
-MzEgMjE6MzI6MzddICAgZ2ZuOiAwMDAwNGFmZCAgbWZuOiAwMDAwNGFmZA0KDQooWEVOKSBb
-MjAxMi0wOC0zMSAyMTozMjozN10gICBnZm46IDAwMDA0YWZlICBtZm46IDAwMDA0YWZlDQoN
-CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM3XSAgIGdmbjogMDAwMDRhZmYgIG1mbjogMDAw
-MDRhZmYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzddICAgZ2ZuOiAwMDAwNGIwMCAg
-bWZuOiAwMDAwNGIwMA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozN10gICBnZm46IDAw
-MDA0YjAxICBtZm46IDAwMDA0YjAxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM3XSAg
-IGdmbjogMDAwMDRiMDIgIG1mbjogMDAwMDRiMDINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
-MzI6MzddICAgZ2ZuOiAwMDAwNGIwMyAgbWZuOiAwMDAwNGIwMw0KDQooWEVOKSBbMjAxMi0w
-OC0zMSAyMTozMjozN10gICBnZm46IDAwMDA0YjA0ICBtZm46IDAwMDA0YjA0DQoNCihYRU4p
-IFsyMDEyLTA4LTMxIDIxOjMyOjM3XSAgIGdmbjogMDAwMDRiMDUgIG1mbjogMDAwMDRiMDUN
-Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzddICAgZ2ZuOiAwMDAwNGIwNiAgbWZuOiAw
-MDAwNGIwNg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozN10gICBnZm46IDAwMDA0YjA3
-ICBtZm46IDAwMDA0YjA3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM3XSAgIGdmbjog
-MDAwMDRiMDggIG1mbjogMDAwMDRiMDgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6Mzdd
-ICAgZ2ZuOiAwMDAwNGIwOSAgbWZuOiAwMDAwNGIwOQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
-MTozMjozN10gICBnZm46IDAwMDA0YjBhICBtZm46IDAwMDA0YjBhDQoNCihYRU4pIFsyMDEy
-LTA4LTMxIDIxOjMyOjM3XSAgIGdmbjogMDAwMDRiMGIgIG1mbjogMDAwMDRiMGINCg0KKFhF
-TikgWzIwMTItMDgtMzEgMjE6MzI6MzddICAgZ2ZuOiAwMDAwNGIwYyAgbWZuOiAwMDAwNGIw
-Yw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozN10gICBnZm46IDAwMDA0YjBkICBtZm46
-IDAwMDA0YjBkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM3XSAgIGdmbjogMDAwMDRi
-MGUgIG1mbjogMDAwMDRiMGUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzddICAgZ2Zu
-OiAwMDAwNGIwZiAgbWZuOiAwMDAwNGIwZg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoz
-N10gICBnZm46IDAwMDA0YjEwICBtZm46IDAwMDA0YjEwDQoNCihYRU4pIFsyMDEyLTA4LTMx
-IDIxOjMyOjM3XSAgIGdmbjogMDAwMDRiMTEgIG1mbjogMDAwMDRiMTENCg0KKFhFTikgWzIw
-MTItMDgtMzEgMjE6MzI6MzddICAgZ2ZuOiAwMDAwNGIxMiAgbWZuOiAwMDAwNGIxMg0KDQoo
-WEVOKSBbMjAxMi0wOC0zMSAyMTozMjozN10gICBnZm46IDAwMDA0YjEzICBtZm46IDAwMDA0
-YjEzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM3XSAgIGdmbjogMDAwMDRiMTQgIG1m
-bjogMDAwMDRiMTQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzddICAgZ2ZuOiAwMDAw
-NGIxNSAgbWZuOiAwMDAwNGIxNQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozN10gICBn
-Zm46IDAwMDA0YjE2ICBtZm46IDAwMDA0YjE2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMy
-OjM3XSAgIGdmbjogMDAwMDRiMTcgIG1mbjogMDAwMDRiMTcNCg0KKFhFTikgWzIwMTItMDgt
-MzEgMjE6MzI6MzddICAgZ2ZuOiAwMDAwNGIxOCAgbWZuOiAwMDAwNGIxOA0KDQooWEVOKSBb
-MjAxMi0wOC0zMSAyMTozMjozN10gICBnZm46IDAwMDA0YjE5ICBtZm46IDAwMDA0YjE5DQoN
-CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM3XSAgIGdmbjogMDAwMDRiMWEgIG1mbjogMDAw
-MDRiMWENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzddICAgZ2ZuOiAwMDAwNGIxYiAg
-bWZuOiAwMDAwNGIxYg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozN10gICBnZm46IDAw
-MDA0YjFjICBtZm46IDAwMDA0YjFjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM3XSAg
-IGdmbjogMDAwMDRiMWQgIG1mbjogMDAwMDRiMWQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
-MzI6MzddICAgZ2ZuOiAwMDAwNGIxZSAgbWZuOiAwMDAwNGIxZQ0KDQooWEVOKSBbMjAxMi0w
-OC0zMSAyMTozMjozN10gICBnZm46IDAwMDA0YjFmICBtZm46IDAwMDA0YjFmDQoNCihYRU4p
-IFsyMDEyLTA4LTMxIDIxOjMyOjM3XSAgIGdmbjogMDAwMDRiMjAgIG1mbjogMDAwMDRiMjAN
-Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzddICAgZ2ZuOiAwMDAwNGIyMSAgbWZuOiAw
-MDAwNGIyMQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozN10gICBnZm46IDAwMDA0YjIy
-ICBtZm46IDAwMDA0YjIyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM3XSAgIGdmbjog
-MDAwMDRiMjMgIG1mbjogMDAwMDRiMjMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6Mzdd
-ICAgZ2ZuOiAwMDAwNGIyNCAgbWZuOiAwMDAwNGIyNA0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
-MTozMjozN10gICBnZm46IDAwMDA0YjI1ICBtZm46IDAwMDA0YjI1DQoNCihYRU4pIFsyMDEy
-LTA4LTMxIDIxOjMyOjM3XSAgIGdmbjogMDAwMDRiMjYgIG1mbjogMDAwMDRiMjYNCg0KKFhF
-TikgWzIwMTItMDgtMzEgMjE6MzI6MzddICAgZ2ZuOiAwMDAwNGIyNyAgbWZuOiAwMDAwNGIy
-Nw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozN10gICBnZm46IDAwMDA0YjI4ICBtZm46
-IDAwMDA0YjI4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM3XSAgIGdmbjogMDAwMDRi
-MjkgIG1mbjogMDAwMDRiMjkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzddICAgZ2Zu
-OiAwMDAwNGIyYSAgbWZuOiAwMDAwNGIyYQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoz
-N10gICBnZm46IDAwMDA0YjJiICBtZm46IDAwMDA0YjJiDQoNCihYRU4pIFsyMDEyLTA4LTMx
-IDIxOjMyOjM3XSAgIGdmbjogMDAwMDRiMmMgIG1mbjogMDAwMDRiMmMNCg0KKFhFTikgWzIw
-MTItMDgtMzEgMjE6MzI6MzddICAgZ2ZuOiAwMDAwNGIyZCAgbWZuOiAwMDAwNGIyZA0KDQoo
-WEVOKSBbMjAxMi0wOC0zMSAyMTozMjozN10gICBnZm46IDAwMDA0YjJlICBtZm46IDAwMDA0
-YjJlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM3XSAgIGdmbjogMDAwMDRiMmYgIG1m
-bjogMDAwMDRiMmYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzddICAgZ2ZuOiAwMDAw
-NGIzMCAgbWZuOiAwMDAwNGIzMA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozN10gICBn
-Zm46IDAwMDA0YjMxICBtZm46IDAwMDA0YjMxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMy
-OjM4XSAgIGdmbjogMDAwMDRiMzIgIG1mbjogMDAwMDRiMzINCg0KKFhFTikgWzIwMTItMDgt
-MzEgMjE6MzI6MzhdICAgZ2ZuOiAwMDAwNGIzMyAgbWZuOiAwMDAwNGIzMw0KDQooWEVOKSBb
-MjAxMi0wOC0zMSAyMTozMjozOF0gICBnZm46IDAwMDA0YjM0ICBtZm46IDAwMDA0YjM0DQoN
-CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM4XSAgIGdmbjogMDAwMDRiMzUgIG1mbjogMDAw
-MDRiMzUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzhdICAgZ2ZuOiAwMDAwNGIzNiAg
-bWZuOiAwMDAwNGIzNg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozOF0gICBnZm46IDAw
-MDA0YjM3ICBtZm46IDAwMDA0YjM3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM4XSAg
-IGdmbjogMDAwMDRiMzggIG1mbjogMDAwMDRiMzgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
-MzI6MzhdICAgZ2ZuOiAwMDAwNGIzOSAgbWZuOiAwMDAwNGIzOQ0KDQooWEVOKSBbMjAxMi0w
-OC0zMSAyMTozMjozOF0gICBnZm46IDAwMDA0YjNhICBtZm46IDAwMDA0YjNhDQoNCihYRU4p
-IFsyMDEyLTA4LTMxIDIxOjMyOjM4XSAgIGdmbjogMDAwMDRiM2IgIG1mbjogMDAwMDRiM2IN
-Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzhdICAgZ2ZuOiAwMDAwNGIzYyAgbWZuOiAw
-MDAwNGIzYw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozOF0gICBnZm46IDAwMDA0YjNk
-ICBtZm46IDAwMDA0YjNkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM4XSAgIGdmbjog
-MDAwMDRiM2UgIG1mbjogMDAwMDRiM2UNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6Mzhd
-ICAgZ2ZuOiAwMDAwNGIzZiAgbWZuOiAwMDAwNGIzZg0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
-MTozMjozOF0gICBnZm46IDAwMDA0YjQwICBtZm46IDAwMDA0YjQwDQoNCihYRU4pIFsyMDEy
-LTA4LTMxIDIxOjMyOjM4XSAgIGdmbjogMDAwMDRiNDEgIG1mbjogMDAwMDRiNDENCg0KKFhF
-TikgWzIwMTItMDgtMzEgMjE6MzI6MzhdICAgZ2ZuOiAwMDAwNGI0MiAgbWZuOiAwMDAwNGI0
-Mg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozOF0gICBnZm46IDAwMDA0YjQzICBtZm46
-IDAwMDA0YjQzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM4XSAgIGdmbjogMDAwMDRi
-NDQgIG1mbjogMDAwMDRiNDQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzhdICAgZ2Zu
-OiAwMDAwNGI0NSAgbWZuOiAwMDAwNGI0NQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoz
-OF0gICBnZm46IDAwMDA0YjQ2ICBtZm46IDAwMDA0YjQ2DQoNCihYRU4pIFsyMDEyLTA4LTMx
-IDIxOjMyOjM4XSAgIGdmbjogMDAwMDRiNDcgIG1mbjogMDAwMDRiNDcNCg0KKFhFTikgWzIw
-MTItMDgtMzEgMjE6MzI6MzhdICAgZ2ZuOiAwMDAwNGI0OCAgbWZuOiAwMDAwNGI0OA0KDQoo
-WEVOKSBbMjAxMi0wOC0zMSAyMTozMjozOF0gICBnZm46IDAwMDA0YjQ5ICBtZm46IDAwMDA0
-YjQ5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM4XSAgIGdmbjogMDAwMDRiNGEgIG1m
-bjogMDAwMDRiNGENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzhdICAgZ2ZuOiAwMDAw
-NGI0YiAgbWZuOiAwMDAwNGI0Yg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozOF0gICBn
-Zm46IDAwMDA0YjRjICBtZm46IDAwMDA0YjRjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMy
-OjM4XSAgIGdmbjogMDAwMDRiNGQgIG1mbjogMDAwMDRiNGQNCg0KKFhFTikgWzIwMTItMDgt
-MzEgMjE6MzI6MzhdICAgZ2ZuOiAwMDAwNGI0ZSAgbWZuOiAwMDAwNGI0ZQ0KDQooWEVOKSBb
-MjAxMi0wOC0zMSAyMTozMjozOF0gICBnZm46IDAwMDA0YjRmICBtZm46IDAwMDA0YjRmDQoN
-CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM4XSAgIGdmbjogMDAwMDRiNTAgIG1mbjogMDAw
-MDRiNTANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzhdICAgZ2ZuOiAwMDAwNGI1MSAg
-bWZuOiAwMDAwNGI1MQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozOF0gICBnZm46IDAw
-MDA0YjUyICBtZm46IDAwMDA0YjUyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM4XSAg
-IGdmbjogMDAwMDRiNTMgIG1mbjogMDAwMDRiNTMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
-MzI6MzhdICAgZ2ZuOiAwMDAwNGI1NCAgbWZuOiAwMDAwNGI1NA0KDQooWEVOKSBbMjAxMi0w
-OC0zMSAyMTozMjozOF0gICBnZm46IDAwMDA0YjU1ICBtZm46IDAwMDA0YjU1DQoNCihYRU4p
-IFsyMDEyLTA4LTMxIDIxOjMyOjM4XSAgIGdmbjogMDAwMDRiNTYgIG1mbjogMDAwMDRiNTYN
-Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzhdICAgZ2ZuOiAwMDAwNGI1NyAgbWZuOiAw
-MDAwNGI1Nw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozOF0gICBnZm46IDAwMDA0YjU4
-ICBtZm46IDAwMDA0YjU4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM4XSAgIGdmbjog
-MDAwMDRiNTkgIG1mbjogMDAwMDRiNTkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6Mzhd
-ICAgZ2ZuOiAwMDAwNGI1YSAgbWZuOiAwMDAwNGI1YQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
-MTozMjozOF0gICBnZm46IDAwMDA0YjViICBtZm46IDAwMDA0YjViDQoNCihYRU4pIFsyMDEy
-LTA4LTMxIDIxOjMyOjM4XSAgIGdmbjogMDAwMDRiNWMgIG1mbjogMDAwMDRiNWMNCg0KKFhF
-TikgWzIwMTItMDgtMzEgMjE6MzI6MzhdICAgZ2ZuOiAwMDAwNGI1ZCAgbWZuOiAwMDAwNGI1
-ZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozOF0gICBnZm46IDAwMDA0YjVlICBtZm46
-IDAwMDA0YjVlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM4XSAgIGdmbjogMDAwMDRi
-NWYgIG1mbjogMDAwMDRiNWYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzhdICAgZ2Zu
-OiAwMDAwNGI2MCAgbWZuOiAwMDAwNGI2MA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoz
-OF0gICBnZm46IDAwMDA0YjYxICBtZm46IDAwMDA0YjYxDQoNCihYRU4pIFsyMDEyLTA4LTMx
-IDIxOjMyOjM4XSAgIGdmbjogMDAwMDRiNjIgIG1mbjogMDAwMDRiNjINCg0KKFhFTikgWzIw
-MTItMDgtMzEgMjE6MzI6MzhdICAgZ2ZuOiAwMDAwNGI2MyAgbWZuOiAwMDAwNGI2Mw0KDQoo
-WEVOKSBbMjAxMi0wOC0zMSAyMTozMjozOF0gICBnZm46IDAwMDA0YjY0ICBtZm46IDAwMDA0
-YjY0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM4XSAgIGdmbjogMDAwMDRiNjUgIG1m
-bjogMDAwMDRiNjUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzhdICAgZ2ZuOiAwMDAw
-NGI2NiAgbWZuOiAwMDAwNGI2Ng0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozOF0gICBn
-Zm46IDAwMDA0YjY3ICBtZm46IDAwMDA0YjY3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMy
-OjM4XSAgIGdmbjogMDAwMDRiNjggIG1mbjogMDAwMDRiNjgNCg0KKFhFTikgWzIwMTItMDgt
-MzEgMjE6MzI6MzhdICAgZ2ZuOiAwMDAwNGI2OSAgbWZuOiAwMDAwNGI2OQ0KDQooWEVOKSBb
-MjAxMi0wOC0zMSAyMTozMjozOF0gICBnZm46IDAwMDA0YjZhICBtZm46IDAwMDA0YjZhDQoN
-CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM4XSAgIGdmbjogMDAwMDRiNmIgIG1mbjogMDAw
-MDRiNmINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzhdICAgZ2ZuOiAwMDAwNGI2YyAg
-bWZuOiAwMDAwNGI2Yw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozOF0gICBnZm46IDAw
-MDA0YjZkICBtZm46IDAwMDA0YjZkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM4XSAg
-IGdmbjogMDAwMDRiNmUgIG1mbjogMDAwMDRiNmUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
-MzI6MzhdICAgZ2ZuOiAwMDAwNGI2ZiAgbWZuOiAwMDAwNGI2Zg0KDQooWEVOKSBbMjAxMi0w
-OC0zMSAyMTozMjozOF0gICBnZm46IDAwMDA0YjcwICBtZm46IDAwMDA0YjcwDQoNCihYRU4p
-IFsyMDEyLTA4LTMxIDIxOjMyOjM4XSAgIGdmbjogMDAwMDRiNzEgIG1mbjogMDAwMDRiNzEN
-Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzldICAgZ2ZuOiAwMDAwNGI3MiAgbWZuOiAw
-MDAwNGI3Mg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozOV0gICBnZm46IDAwMDA0Yjcz
-ICBtZm46IDAwMDA0YjczDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM5XSAgIGdmbjog
-MDAwMDRiNzQgIG1mbjogMDAwMDRiNzQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6Mzld
-ICAgZ2ZuOiAwMDAwNGI3NSAgbWZuOiAwMDAwNGI3NQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
-MTozMjozOV0gICBnZm46IDAwMDA0Yjc2ICBtZm46IDAwMDA0Yjc2DQoNCihYRU4pIFsyMDEy
-LTA4LTMxIDIxOjMyOjM5XSAgIGdmbjogMDAwMDRiNzcgIG1mbjogMDAwMDRiNzcNCg0KKFhF
-TikgWzIwMTItMDgtMzEgMjE6MzI6MzldICAgZ2ZuOiAwMDAwNGI3OCAgbWZuOiAwMDAwNGI3
-OA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozOV0gICBnZm46IDAwMDA0Yjc5ICBtZm46
-IDAwMDA0Yjc5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM5XSAgIGdmbjogMDAwMDRi
-N2EgIG1mbjogMDAwMDRiN2ENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzldICAgZ2Zu
-OiAwMDAwNGI3YiAgbWZuOiAwMDAwNGI3Yg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoz
-OV0gICBnZm46IDAwMDA0YjdjICBtZm46IDAwMDA0YjdjDQoNCihYRU4pIFsyMDEyLTA4LTMx
-IDIxOjMyOjM5XSAgIGdmbjogMDAwMDRiN2QgIG1mbjogMDAwMDRiN2QNCg0KKFhFTikgWzIw
-MTItMDgtMzEgMjE6MzI6MzldICAgZ2ZuOiAwMDAwNGI3ZSAgbWZuOiAwMDAwNGI3ZQ0KDQoo
-WEVOKSBbMjAxMi0wOC0zMSAyMTozMjozOV0gICBnZm46IDAwMDA0YjdmICBtZm46IDAwMDA0
-YjdmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM5XSAgIGdmbjogMDAwMDRiODAgIG1m
-bjogMDAwMDRiODANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzldICAgZ2ZuOiAwMDAw
-NGI4MSAgbWZuOiAwMDAwNGI4MQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozOV0gICBn
-Zm46IDAwMDA0YjgyICBtZm46IDAwMDA0YjgyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMy
-OjM5XSAgIGdmbjogMDAwMDRiODMgIG1mbjogMDAwMDRiODMNCg0KKFhFTikgWzIwMTItMDgt
-MzEgMjE6MzI6MzldICAgZ2ZuOiAwMDAwNGI4NCAgbWZuOiAwMDAwNGI4NA0KDQooWEVOKSBb
-MjAxMi0wOC0zMSAyMTozMjozOV0gICBnZm46IDAwMDA0Yjg1ICBtZm46IDAwMDA0Yjg1DQoN
-CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM5XSAgIGdmbjogMDAwMDRiODYgIG1mbjogMDAw
-MDRiODYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzldICAgZ2ZuOiAwMDAwNGI4NyAg
-bWZuOiAwMDAwNGI4Nw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozOV0gICBnZm46IDAw
-MDA0Yjg4ICBtZm46IDAwMDA0Yjg4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM5XSAg
-IGdmbjogMDAwMDRiODkgIG1mbjogMDAwMDRiODkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
-MzI6MzldICAgZ2ZuOiAwMDAwNGI4YSAgbWZuOiAwMDAwNGI4YQ0KDQooWEVOKSBbMjAxMi0w
-OC0zMSAyMTozMjozOV0gICBnZm46IDAwMDA0YjhiICBtZm46IDAwMDA0YjhiDQoNCihYRU4p
-IFsyMDEyLTA4LTMxIDIxOjMyOjM5XSAgIGdmbjogMDAwMDRiOGMgIG1mbjogMDAwMDRiOGMN
-Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzldICAgZ2ZuOiAwMDAwNGI4ZCAgbWZuOiAw
-MDAwNGI4ZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozOV0gICBnZm46IDAwMDA0Yjhl
-ICBtZm46IDAwMDA0YjhlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM5XSAgIGdmbjog
-MDAwMDRiOGYgIG1mbjogMDAwMDRiOGYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6Mzld
-ICAgZ2ZuOiAwMDAwNGI5MCAgbWZuOiAwMDAwNGI5MA0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
-MTozMjozOV0gICBnZm46IDAwMDA0YjkxICBtZm46IDAwMDA0YjkxDQoNCihYRU4pIFsyMDEy
-LTA4LTMxIDIxOjMyOjM5XSAgIGdmbjogMDAwMDRiOTIgIG1mbjogMDAwMDRiOTINCg0KKFhF
-TikgWzIwMTItMDgtMzEgMjE6MzI6MzldICAgZ2ZuOiAwMDAwNGI5MyAgbWZuOiAwMDAwNGI5
-Mw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozOV0gICBnZm46IDAwMDA0Yjk0ICBtZm46
-IDAwMDA0Yjk0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM5XSAgIGdmbjogMDAwMDRi
-OTUgIG1mbjogMDAwMDRiOTUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzldICAgZ2Zu
-OiAwMDAwNGI5NiAgbWZuOiAwMDAwNGI5Ng0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjoz
-OV0gICBnZm46IDAwMDA0Yjk3ICBtZm46IDAwMDA0Yjk3DQoNCihYRU4pIFsyMDEyLTA4LTMx
-IDIxOjMyOjM5XSAgIGdmbjogMDAwMDRiOTggIG1mbjogMDAwMDRiOTgNCg0KKFhFTikgWzIw
-MTItMDgtMzEgMjE6MzI6MzldICAgZ2ZuOiAwMDAwNGI5OSAgbWZuOiAwMDAwNGI5OQ0KDQoo
-WEVOKSBbMjAxMi0wOC0zMSAyMTozMjozOV0gICBnZm46IDAwMDA0YjlhICBtZm46IDAwMDA0
-YjlhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM5XSAgIGdmbjogMDAwMDRiOWIgIG1m
-bjogMDAwMDRiOWINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzldICAgZ2ZuOiAwMDAw
-NGI5YyAgbWZuOiAwMDAwNGI5Yw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozOV0gICBn
-Zm46IDAwMDA0YjlkICBtZm46IDAwMDA0YjlkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMy
-OjM5XSAgIGdmbjogMDAwMDRiOWUgIG1mbjogMDAwMDRiOWUNCg0KKFhFTikgWzIwMTItMDgt
-MzEgMjE6MzI6MzldICAgZ2ZuOiAwMDAwNGI5ZiAgbWZuOiAwMDAwNGI5Zg0KDQooWEVOKSBb
-MjAxMi0wOC0zMSAyMTozMjozOV0gICBnZm46IDAwMDA0YmEwICBtZm46IDAwMDA0YmEwDQoN
-CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM5XSAgIGdmbjogMDAwMDRiYTEgIG1mbjogMDAw
-MDRiYTENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzldICAgZ2ZuOiAwMDAwNGJhMiAg
-bWZuOiAwMDAwNGJhMg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozOV0gICBnZm46IDAw
-MDA0YmEzICBtZm46IDAwMDA0YmEzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM5XSAg
-IGdmbjogMDAwMDRiYTQgIG1mbjogMDAwMDRiYTQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
-MzI6MzldICAgZ2ZuOiAwMDAwNGJhNSAgbWZuOiAwMDAwNGJhNQ0KDQooWEVOKSBbMjAxMi0w
-OC0zMSAyMTozMjozOV0gICBnZm46IDAwMDA0YmE2ICBtZm46IDAwMDA0YmE2DQoNCihYRU4p
-IFsyMDEyLTA4LTMxIDIxOjMyOjM5XSAgIGdmbjogMDAwMDRiYTcgIG1mbjogMDAwMDRiYTcN
-Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzldICAgZ2ZuOiAwMDAwNGJhOCAgbWZuOiAw
-MDAwNGJhOA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozOV0gICBnZm46IDAwMDA0YmE5
-ICBtZm46IDAwMDA0YmE5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM5XSAgIGdmbjog
-MDAwMDRiYWEgIG1mbjogMDAwMDRiYWENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6Mzld
-ICAgZ2ZuOiAwMDAwNGJhYiAgbWZuOiAwMDAwNGJhYg0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
-MTozMjozOV0gICBnZm46IDAwMDA0YmFjICBtZm46IDAwMDA0YmFjDQoNCihYRU4pIFsyMDEy
-LTA4LTMxIDIxOjMyOjM5XSAgIGdmbjogMDAwMDRiYWQgIG1mbjogMDAwMDRiYWQNCg0KKFhF
-TikgWzIwMTItMDgtMzEgMjE6MzI6MzldICAgZ2ZuOiAwMDAwNGJhZSAgbWZuOiAwMDAwNGJh
-ZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjozOV0gICBnZm46IDAwMDA0YmFmICBtZm46
-IDAwMDA0YmFmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjM5XSAgIGdmbjogMDAwMDRi
-YjAgIG1mbjogMDAwMDRiYjANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6MzldICAgZ2Zu
-OiAwMDAwNGJiMSAgbWZuOiAwMDAwNGJiMQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0
-MF0gICBnZm46IDAwMDA0YmIyICBtZm46IDAwMDA0YmIyDQoNCihYRU4pIFsyMDEyLTA4LTMx
-IDIxOjMyOjQwXSAgIGdmbjogMDAwMDRiYjMgIG1mbjogMDAwMDRiYjMNCg0KKFhFTikgWzIw
-MTItMDgtMzEgMjE6MzI6NDBdICAgZ2ZuOiAwMDAwNGJiNCAgbWZuOiAwMDAwNGJiNA0KDQoo
-WEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0MF0gICBnZm46IDAwMDA0YmI1ICBtZm46IDAwMDA0
-YmI1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQwXSAgIGdmbjogMDAwMDRiYjYgIG1m
-bjogMDAwMDRiYjYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDBdICAgZ2ZuOiAwMDAw
-NGJiNyAgbWZuOiAwMDAwNGJiNw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0MF0gICBn
-Zm46IDAwMDA0YmI4ICBtZm46IDAwMDA0YmI4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMy
-OjQwXSAgIGdmbjogMDAwMDRiYjkgIG1mbjogMDAwMDRiYjkNCg0KKFhFTikgWzIwMTItMDgt
-MzEgMjE6MzI6NDBdICAgZ2ZuOiAwMDAwNGJiYSAgbWZuOiAwMDAwNGJiYQ0KDQooWEVOKSBb
-MjAxMi0wOC0zMSAyMTozMjo0MF0gICBnZm46IDAwMDA0YmJiICBtZm46IDAwMDA0YmJiDQoN
-CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQwXSAgIGdmbjogMDAwMDRiYmMgIG1mbjogMDAw
-MDRiYmMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDBdICAgZ2ZuOiAwMDAwNGJiZCAg
-bWZuOiAwMDAwNGJiZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0MF0gICBnZm46IDAw
-MDA0YmJlICBtZm46IDAwMDA0YmJlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQwXSAg
-IGdmbjogMDAwMDRiYmYgIG1mbjogMDAwMDRiYmYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
-MzI6NDBdICAgZ2ZuOiAwMDAwNGJjMCAgbWZuOiAwMDAwNGJjMA0KDQooWEVOKSBbMjAxMi0w
-OC0zMSAyMTozMjo0MF0gICBnZm46IDAwMDA0YmMxICBtZm46IDAwMDA0YmMxDQoNCihYRU4p
-IFsyMDEyLTA4LTMxIDIxOjMyOjQwXSAgIGdmbjogMDAwMDRiYzIgIG1mbjogMDAwMDRiYzIN
-Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDBdICAgZ2ZuOiAwMDAwNGJjMyAgbWZuOiAw
-MDAwNGJjMw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0MF0gICBnZm46IDAwMDA0YmM0
-ICBtZm46IDAwMDA0YmM0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQwXSAgIGdmbjog
-MDAwMDRiYzUgIG1mbjogMDAwMDRiYzUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDBd
-ICAgZ2ZuOiAwMDAwNGJjNiAgbWZuOiAwMDAwNGJjNg0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
-MTozMjo0MF0gICBnZm46IDAwMDA0YmM3ICBtZm46IDAwMDA0YmM3DQoNCihYRU4pIFsyMDEy
-LTA4LTMxIDIxOjMyOjQwXSAgIGdmbjogMDAwMDRiYzggIG1mbjogMDAwMDRiYzgNCg0KKFhF
-TikgWzIwMTItMDgtMzEgMjE6MzI6NDBdICAgZ2ZuOiAwMDAwNGJjOSAgbWZuOiAwMDAwNGJj
-OQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0MF0gICBnZm46IDAwMDA0YmNhICBtZm46
-IDAwMDA0YmNhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQwXSAgIGdmbjogMDAwMDRi
-Y2IgIG1mbjogMDAwMDRiY2INCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDBdICAgZ2Zu
-OiAwMDAwNGJjYyAgbWZuOiAwMDAwNGJjYw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0
-MF0gICBnZm46IDAwMDA0YmNkICBtZm46IDAwMDA0YmNkDQoNCihYRU4pIFsyMDEyLTA4LTMx
-IDIxOjMyOjQwXSAgIGdmbjogMDAwMDRiY2UgIG1mbjogMDAwMDRiY2UNCg0KKFhFTikgWzIw
-MTItMDgtMzEgMjE6MzI6NDBdICAgZ2ZuOiAwMDAwNGJjZiAgbWZuOiAwMDAwNGJjZg0KDQoo
-WEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0MF0gICBnZm46IDAwMDA0YmQwICBtZm46IDAwMDA0
-YmQwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQwXSAgIGdmbjogMDAwMDRiZDEgIG1m
-bjogMDAwMDRiZDENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDBdICAgZ2ZuOiAwMDAw
-NGJkMiAgbWZuOiAwMDAwNGJkMg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0MF0gICBn
-Zm46IDAwMDA0YmQzICBtZm46IDAwMDA0YmQzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMy
-OjQwXSAgIGdmbjogMDAwMDRiZDQgIG1mbjogMDAwMDRiZDQNCg0KKFhFTikgWzIwMTItMDgt
-MzEgMjE6MzI6NDBdICAgZ2ZuOiAwMDAwNGJkNSAgbWZuOiAwMDAwNGJkNQ0KDQooWEVOKSBb
-MjAxMi0wOC0zMSAyMTozMjo0MF0gICBnZm46IDAwMDA0YmQ2ICBtZm46IDAwMDA0YmQ2DQoN
-CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQwXSAgIGdmbjogMDAwMDRiZDcgIG1mbjogMDAw
-MDRiZDcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDBdICAgZ2ZuOiAwMDAwNGJkOCAg
-bWZuOiAwMDAwNGJkOA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0MF0gICBnZm46IDAw
-MDA0YmQ5ICBtZm46IDAwMDA0YmQ5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQwXSAg
-IGdmbjogMDAwMDRiZGEgIG1mbjogMDAwMDRiZGENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
-MzI6NDBdICAgZ2ZuOiAwMDAwNGJkYiAgbWZuOiAwMDAwNGJkYg0KDQooWEVOKSBbMjAxMi0w
-OC0zMSAyMTozMjo0MF0gICBnZm46IDAwMDA0YmRjICBtZm46IDAwMDA0YmRjDQoNCihYRU4p
-IFsyMDEyLTA4LTMxIDIxOjMyOjQwXSAgIGdmbjogMDAwMDRiZGQgIG1mbjogMDAwMDRiZGQN
-Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDBdICAgZ2ZuOiAwMDAwNGJkZSAgbWZuOiAw
-MDAwNGJkZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0MF0gICBnZm46IDAwMDA0YmRm
-ICBtZm46IDAwMDA0YmRmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQwXSAgIGdmbjog
-MDAwMDRiZTAgIG1mbjogMDAwMDRiZTANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDBd
-ICAgZ2ZuOiAwMDAwNGJlMSAgbWZuOiAwMDAwNGJlMQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
-MTozMjo0MF0gICBnZm46IDAwMDA0YmUyICBtZm46IDAwMDA0YmUyDQoNCihYRU4pIFsyMDEy
-LTA4LTMxIDIxOjMyOjQwXSAgIGdmbjogMDAwMDRiZTMgIG1mbjogMDAwMDRiZTMNCg0KKFhF
-TikgWzIwMTItMDgtMzEgMjE6MzI6NDBdICAgZ2ZuOiAwMDAwNGJlNCAgbWZuOiAwMDAwNGJl
-NA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0MF0gICBnZm46IDAwMDA0YmU1ICBtZm46
-IDAwMDA0YmU1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQwXSAgIGdmbjogMDAwMDRi
-ZTYgIG1mbjogMDAwMDRiZTYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDBdICAgZ2Zu
-OiAwMDAwNGJlNyAgbWZuOiAwMDAwNGJlNw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0
-MF0gICBnZm46IDAwMDA0YmU4ICBtZm46IDAwMDA0YmU4DQoNCihYRU4pIFsyMDEyLTA4LTMx
-IDIxOjMyOjQwXSAgIGdmbjogMDAwMDRiZTkgIG1mbjogMDAwMDRiZTkNCg0KKFhFTikgWzIw
-MTItMDgtMzEgMjE6MzI6NDBdICAgZ2ZuOiAwMDAwNGJlYSAgbWZuOiAwMDAwNGJlYQ0KDQoo
-WEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0MF0gICBnZm46IDAwMDA0YmViICBtZm46IDAwMDA0
-YmViDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQwXSAgIGdmbjogMDAwMDRiZWMgIG1m
-bjogMDAwMDRiZWMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDBdICAgZ2ZuOiAwMDAw
-NGJlZCAgbWZuOiAwMDAwNGJlZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0MF0gICBn
-Zm46IDAwMDA0YmVlICBtZm46IDAwMDA0YmVlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMy
-OjQwXSAgIGdmbjogMDAwMDRiZWYgIG1mbjogMDAwMDRiZWYNCg0KKFhFTikgWzIwMTItMDgt
-MzEgMjE6MzI6NDBdICAgZ2ZuOiAwMDAwNGJmMCAgbWZuOiAwMDAwNGJmMA0KDQooWEVOKSBb
-MjAxMi0wOC0zMSAyMTozMjo0MF0gICBnZm46IDAwMDA0YmYxICBtZm46IDAwMDA0YmYxDQoN
-CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQxXSAgIGdmbjogMDAwMDRiZjIgIG1mbjogMDAw
-MDRiZjINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDFdICAgZ2ZuOiAwMDAwNGJmMyAg
-bWZuOiAwMDAwNGJmMw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0MV0gICBnZm46IDAw
-MDA0YmY0ICBtZm46IDAwMDA0YmY0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQxXSAg
-IGdmbjogMDAwMDRiZjUgIG1mbjogMDAwMDRiZjUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
-MzI6NDFdICAgZ2ZuOiAwMDAwNGJmNiAgbWZuOiAwMDAwNGJmNg0KDQooWEVOKSBbMjAxMi0w
-OC0zMSAyMTozMjo0MV0gICBnZm46IDAwMDA0YmY3ICBtZm46IDAwMDA0YmY3DQoNCihYRU4p
-IFsyMDEyLTA4LTMxIDIxOjMyOjQxXSAgIGdmbjogMDAwMDRiZjggIG1mbjogMDAwMDRiZjgN
-Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDFdICAgZ2ZuOiAwMDAwNGJmOSAgbWZuOiAw
-MDAwNGJmOQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0MV0gICBnZm46IDAwMDA0YmZh
-ICBtZm46IDAwMDA0YmZhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQxXSAgIGdmbjog
-MDAwMDRiZmIgIG1mbjogMDAwMDRiZmINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDFd
-ICAgZ2ZuOiAwMDAwNGJmYyAgbWZuOiAwMDAwNGJmYw0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
-MTozMjo0MV0gICBnZm46IDAwMDA0YmZkICBtZm46IDAwMDA0YmZkDQoNCihYRU4pIFsyMDEy
-LTA4LTMxIDIxOjMyOjQxXSAgIGdmbjogMDAwMDRiZmUgIG1mbjogMDAwMDRiZmUNCg0KKFhF
-TikgWzIwMTItMDgtMzEgMjE6MzI6NDFdICAgZ2ZuOiAwMDAwNGJmZiAgbWZuOiAwMDAwNGJm
-Zg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0MV0gICBnZm46IDAwMDA0YzAwICBtZm46
-IDAwMDA0YzAwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQxXSAgIGdmbjogMDAwMDRj
-MDEgIG1mbjogMDAwMDRjMDENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDFdICAgZ2Zu
-OiAwMDAwNGMwMiAgbWZuOiAwMDAwNGMwMg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0
-MV0gICBnZm46IDAwMDA0YzAzICBtZm46IDAwMDA0YzAzDQoNCihYRU4pIFsyMDEyLTA4LTMx
-IDIxOjMyOjQxXSAgIGdmbjogMDAwMDRjMDQgIG1mbjogMDAwMDRjMDQNCg0KKFhFTikgWzIw
-MTItMDgtMzEgMjE6MzI6NDFdICAgZ2ZuOiAwMDAwNGMwNSAgbWZuOiAwMDAwNGMwNQ0KDQoo
-WEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0MV0gICBnZm46IDAwMDA0YzA2ICBtZm46IDAwMDA0
-YzA2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQxXSAgIGdmbjogMDAwMDRjMDcgIG1m
-bjogMDAwMDRjMDcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDFdICAgZ2ZuOiAwMDAw
-NGMwOCAgbWZuOiAwMDAwNGMwOA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0MV0gICBn
-Zm46IDAwMDA0YzA5ICBtZm46IDAwMDA0YzA5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMy
-OjQxXSAgIGdmbjogMDAwMDRjMGEgIG1mbjogMDAwMDRjMGENCg0KKFhFTikgWzIwMTItMDgt
-MzEgMjE6MzI6NDFdICAgZ2ZuOiAwMDAwNGMwYiAgbWZuOiAwMDAwNGMwYg0KDQooWEVOKSBb
-MjAxMi0wOC0zMSAyMTozMjo0MV0gICBnZm46IDAwMDA0YzBjICBtZm46IDAwMDA0YzBjDQoN
-CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQxXSAgIGdmbjogMDAwMDRjMGQgIG1mbjogMDAw
-MDRjMGQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDFdICAgZ2ZuOiAwMDAwNGMwZSAg
-bWZuOiAwMDAwNGMwZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0MV0gICBnZm46IDAw
-MDA0YzBmICBtZm46IDAwMDA0YzBmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQxXSAg
-IGdmbjogMDAwMDRjMTAgIG1mbjogMDAwMDRjMTANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
-MzI6NDFdICAgZ2ZuOiAwMDAwNGMxMSAgbWZuOiAwMDAwNGMxMQ0KDQooWEVOKSBbMjAxMi0w
-OC0zMSAyMTozMjo0MV0gICBnZm46IDAwMDA0YzEyICBtZm46IDAwMDA0YzEyDQoNCihYRU4p
-IFsyMDEyLTA4LTMxIDIxOjMyOjQxXSAgIGdmbjogMDAwMDRjMTMgIG1mbjogMDAwMDRjMTMN
-Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDFdICAgZ2ZuOiAwMDAwNGMxNCAgbWZuOiAw
-MDAwNGMxNA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0MV0gICBnZm46IDAwMDA0YzE1
-ICBtZm46IDAwMDA0YzE1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQxXSAgIGdmbjog
-MDAwMDRjMTYgIG1mbjogMDAwMDRjMTYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDFd
-ICAgZ2ZuOiAwMDAwNGMxNyAgbWZuOiAwMDAwNGMxNw0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
-MTozMjo0MV0gICBnZm46IDAwMDA0YzE4ICBtZm46IDAwMDA0YzE4DQoNCihYRU4pIFsyMDEy
-LTA4LTMxIDIxOjMyOjQxXSAgIGdmbjogMDAwMDRjMTkgIG1mbjogMDAwMDRjMTkNCg0KKFhF
-TikgWzIwMTItMDgtMzEgMjE6MzI6NDFdICAgZ2ZuOiAwMDAwNGMxYSAgbWZuOiAwMDAwNGMx
-YQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0MV0gICBnZm46IDAwMDA0YzFiICBtZm46
-IDAwMDA0YzFiDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQxXSAgIGdmbjogMDAwMDRj
-MWMgIG1mbjogMDAwMDRjMWMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDFdICAgZ2Zu
-OiAwMDAwNGMxZCAgbWZuOiAwMDAwNGMxZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0
-MV0gICBnZm46IDAwMDA0YzFlICBtZm46IDAwMDA0YzFlDQoNCihYRU4pIFsyMDEyLTA4LTMx
-IDIxOjMyOjQxXSAgIGdmbjogMDAwMDRjMWYgIG1mbjogMDAwMDRjMWYNCg0KKFhFTikgWzIw
-MTItMDgtMzEgMjE6MzI6NDFdICAgZ2ZuOiAwMDAwNGMyMCAgbWZuOiAwMDAwNGMyMA0KDQoo
-WEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0MV0gICBnZm46IDAwMDA0YzIxICBtZm46IDAwMDA0
-YzIxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQxXSAgIGdmbjogMDAwMDRjMjIgIG1m
-bjogMDAwMDRjMjINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDFdICAgZ2ZuOiAwMDAw
-NGMyMyAgbWZuOiAwMDAwNGMyMw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0MV0gICBn
-Zm46IDAwMDA0YzI0ICBtZm46IDAwMDA0YzI0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMy
-OjQxXSAgIGdmbjogMDAwMDRjMjUgIG1mbjogMDAwMDRjMjUNCg0KKFhFTikgWzIwMTItMDgt
-MzEgMjE6MzI6NDFdICAgZ2ZuOiAwMDAwNGMyNiAgbWZuOiAwMDAwNGMyNg0KDQooWEVOKSBb
-MjAxMi0wOC0zMSAyMTozMjo0MV0gICBnZm46IDAwMDA0YzI3ICBtZm46IDAwMDA0YzI3DQoN
-CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQxXSAgIGdmbjogMDAwMDRjMjggIG1mbjogMDAw
-MDRjMjgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDFdICAgZ2ZuOiAwMDAwNGMyOSAg
-bWZuOiAwMDAwNGMyOQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0MV0gICBnZm46IDAw
-MDA0YzJhICBtZm46IDAwMDA0YzJhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQxXSAg
-IGdmbjogMDAwMDRjMmIgIG1mbjogMDAwMDRjMmINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
-MzI6NDFdICAgZ2ZuOiAwMDAwNGMyYyAgbWZuOiAwMDAwNGMyYw0KDQooWEVOKSBbMjAxMi0w
-OC0zMSAyMTozMjo0MV0gICBnZm46IDAwMDA0YzJkICBtZm46IDAwMDA0YzJkDQoNCihYRU4p
-IFsyMDEyLTA4LTMxIDIxOjMyOjQxXSAgIGdmbjogMDAwMDRjMmUgIG1mbjogMDAwMDRjMmUN
-Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDFdICAgZ2ZuOiAwMDAwNGMyZiAgbWZuOiAw
-MDAwNGMyZg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0MV0gICBnZm46IDAwMDA0YzMw
-ICBtZm46IDAwMDA0YzMwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQxXSAgIGdmbjog
-MDAwMDRjMzEgIG1mbjogMDAwMDRjMzENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDJd
-ICAgZ2ZuOiAwMDAwNGMzMiAgbWZuOiAwMDAwNGMzMg0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
-MTozMjo0Ml0gICBnZm46IDAwMDA0YzMzICBtZm46IDAwMDA0YzMzDQoNCihYRU4pIFsyMDEy
-LTA4LTMxIDIxOjMyOjQyXSAgIGdmbjogMDAwMDRjMzQgIG1mbjogMDAwMDRjMzQNCg0KKFhF
-TikgWzIwMTItMDgtMzEgMjE6MzI6NDJdICAgZ2ZuOiAwMDAwNGMzNSAgbWZuOiAwMDAwNGMz
-NQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0Ml0gICBnZm46IDAwMDA0YzM2ICBtZm46
-IDAwMDA0YzM2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQyXSAgIGdmbjogMDAwMDRj
-MzcgIG1mbjogMDAwMDRjMzcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDJdICAgZ2Zu
-OiAwMDAwNGMzOCAgbWZuOiAwMDAwNGMzOA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0
-Ml0gICBnZm46IDAwMDA0YzM5ICBtZm46IDAwMDA0YzM5DQoNCihYRU4pIFsyMDEyLTA4LTMx
-IDIxOjMyOjQyXSAgIGdmbjogMDAwMDRjM2EgIG1mbjogMDAwMDRjM2ENCg0KKFhFTikgWzIw
-MTItMDgtMzEgMjE6MzI6NDJdICAgZ2ZuOiAwMDAwNGMzYiAgbWZuOiAwMDAwNGMzYg0KDQoo
-WEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0Ml0gICBnZm46IDAwMDA0YzNjICBtZm46IDAwMDA0
-YzNjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQyXSAgIGdmbjogMDAwMDRjM2QgIG1m
-bjogMDAwMDRjM2QNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDJdICAgZ2ZuOiAwMDAw
-NGMzZSAgbWZuOiAwMDAwNGMzZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0Ml0gICBn
-Zm46IDAwMDA0YzNmICBtZm46IDAwMDA0YzNmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMy
-OjQyXSAgIGdmbjogMDAwMDRjNDAgIG1mbjogMDAwMDRjNDANCg0KKFhFTikgWzIwMTItMDgt
-MzEgMjE6MzI6NDJdICAgZ2ZuOiAwMDAwNGM0MSAgbWZuOiAwMDAwNGM0MQ0KDQooWEVOKSBb
-MjAxMi0wOC0zMSAyMTozMjo0Ml0gICBnZm46IDAwMDA0YzQyICBtZm46IDAwMDA0YzQyDQoN
-CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQyXSAgIGdmbjogMDAwMDRjNDMgIG1mbjogMDAw
-MDRjNDMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDJdICAgZ2ZuOiAwMDAwNGM0NCAg
-bWZuOiAwMDAwNGM0NA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0Ml0gICBnZm46IDAw
-MDA0YzQ1ICBtZm46IDAwMDA0YzQ1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQyXSAg
-IGdmbjogMDAwMDRjNDYgIG1mbjogMDAwMDRjNDYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
-MzI6NDJdICAgZ2ZuOiAwMDAwNGM0NyAgbWZuOiAwMDAwNGM0Nw0KDQooWEVOKSBbMjAxMi0w
-OC0zMSAyMTozMjo0Ml0gICBnZm46IDAwMDA0YzQ4ICBtZm46IDAwMDA0YzQ4DQoNCihYRU4p
-IFsyMDEyLTA4LTMxIDIxOjMyOjQyXSAgIGdmbjogMDAwMDRjNDkgIG1mbjogMDAwMDRjNDkN
-Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDJdICAgZ2ZuOiAwMDAwNGM0YSAgbWZuOiAw
-MDAwNGM0YQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0Ml0gICBnZm46IDAwMDA0YzRi
-ICBtZm46IDAwMDA0YzRiDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQyXSAgIGdmbjog
-MDAwMDRjNGMgIG1mbjogMDAwMDRjNGMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDJd
-ICAgZ2ZuOiAwMDAwNGM0ZCAgbWZuOiAwMDAwNGM0ZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
-MTozMjo0Ml0gICBnZm46IDAwMDA0YzRlICBtZm46IDAwMDA0YzRlDQoNCihYRU4pIFsyMDEy
-LTA4LTMxIDIxOjMyOjQyXSAgIGdmbjogMDAwMDRjNGYgIG1mbjogMDAwMDRjNGYNCg0KKFhF
-TikgWzIwMTItMDgtMzEgMjE6MzI6NDJdICAgZ2ZuOiAwMDAwNGM1MCAgbWZuOiAwMDAwNGM1
-MA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0Ml0gICBnZm46IDAwMDA0YzUxICBtZm46
-IDAwMDA0YzUxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQyXSAgIGdmbjogMDAwMDRj
-NTIgIG1mbjogMDAwMDRjNTINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDJdICAgZ2Zu
-OiAwMDAwNGM1MyAgbWZuOiAwMDAwNGM1Mw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0
-Ml0gICBnZm46IDAwMDA0YzU0ICBtZm46IDAwMDA0YzU0DQoNCihYRU4pIFsyMDEyLTA4LTMx
-IDIxOjMyOjQyXSAgIGdmbjogMDAwMDRjNTUgIG1mbjogMDAwMDRjNTUNCg0KKFhFTikgWzIw
-MTItMDgtMzEgMjE6MzI6NDJdICAgZ2ZuOiAwMDAwNGM1NiAgbWZuOiAwMDAwNGM1Ng0KDQoo
-WEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0Ml0gICBnZm46IDAwMDA0YzU3ICBtZm46IDAwMDA0
-YzU3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQyXSAgIGdmbjogMDAwMDRjNTggIG1m
-bjogMDAwMDRjNTgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDJdICAgZ2ZuOiAwMDAw
-NGM1OSAgbWZuOiAwMDAwNGM1OQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0Ml0gICBn
-Zm46IDAwMDA0YzVhICBtZm46IDAwMDA0YzVhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMy
-OjQyXSAgIGdmbjogMDAwMDRjNWIgIG1mbjogMDAwMDRjNWINCg0KKFhFTikgWzIwMTItMDgt
-MzEgMjE6MzI6NDJdICAgZ2ZuOiAwMDAwNGM1YyAgbWZuOiAwMDAwNGM1Yw0KDQooWEVOKSBb
-MjAxMi0wOC0zMSAyMTozMjo0Ml0gICBnZm46IDAwMDA0YzVkICBtZm46IDAwMDA0YzVkDQoN
-CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQyXSAgIGdmbjogMDAwMDRjNWUgIG1mbjogMDAw
-MDRjNWUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDJdICAgZ2ZuOiAwMDAwNGM1ZiAg
-bWZuOiAwMDAwNGM1Zg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0Ml0gICBnZm46IDAw
-MDA0YzYwICBtZm46IDAwMDA0YzYwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQyXSAg
-IGdmbjogMDAwMDRjNjEgIG1mbjogMDAwMDRjNjENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
-MzI6NDJdICAgZ2ZuOiAwMDAwNGM2MiAgbWZuOiAwMDAwNGM2Mg0KDQooWEVOKSBbMjAxMi0w
-OC0zMSAyMTozMjo0Ml0gICBnZm46IDAwMDA0YzYzICBtZm46IDAwMDA0YzYzDQoNCihYRU4p
-IFsyMDEyLTA4LTMxIDIxOjMyOjQyXSAgIGdmbjogMDAwMDRjNjQgIG1mbjogMDAwMDRjNjQN
-Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDJdICAgZ2ZuOiAwMDAwNGM2NSAgbWZuOiAw
-MDAwNGM2NQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0Ml0gICBnZm46IDAwMDA0YzY2
-ICBtZm46IDAwMDA0YzY2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQyXSAgIGdmbjog
-MDAwMDRjNjcgIG1mbjogMDAwMDRjNjcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDJd
-ICAgZ2ZuOiAwMDAwNGM2OCAgbWZuOiAwMDAwNGM2OA0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
-MTozMjo0Ml0gICBnZm46IDAwMDA0YzY5ICBtZm46IDAwMDA0YzY5DQoNCihYRU4pIFsyMDEy
-LTA4LTMxIDIxOjMyOjQyXSAgIGdmbjogMDAwMDRjNmEgIG1mbjogMDAwMDRjNmENCg0KKFhF
-TikgWzIwMTItMDgtMzEgMjE6MzI6NDJdICAgZ2ZuOiAwMDAwNGM2YiAgbWZuOiAwMDAwNGM2
-Yg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0Ml0gICBnZm46IDAwMDA0YzZjICBtZm46
-IDAwMDA0YzZjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQyXSAgIGdmbjogMDAwMDRj
-NmQgIG1mbjogMDAwMDRjNmQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDJdICAgZ2Zu
-OiAwMDAwNGM2ZSAgbWZuOiAwMDAwNGM2ZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0
-Ml0gICBnZm46IDAwMDA0YzZmICBtZm46IDAwMDA0YzZmDQoNCihYRU4pIFsyMDEyLTA4LTMx
-IDIxOjMyOjQyXSAgIGdmbjogMDAwMDRjNzAgIG1mbjogMDAwMDRjNzANCg0KKFhFTikgWzIw
-MTItMDgtMzEgMjE6MzI6NDJdICAgZ2ZuOiAwMDAwNGM3MSAgbWZuOiAwMDAwNGM3MQ0KDQoo
-WEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0M10gICBnZm46IDAwMDA0YzcyICBtZm46IDAwMDA0
-YzcyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQzXSAgIGdmbjogMDAwMDRjNzMgIG1m
-bjogMDAwMDRjNzMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDNdICAgZ2ZuOiAwMDAw
-NGM3NCAgbWZuOiAwMDAwNGM3NA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0M10gICBn
-Zm46IDAwMDA0Yzc1ICBtZm46IDAwMDA0Yzc1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMy
-OjQzXSAgIGdmbjogMDAwMDRjNzYgIG1mbjogMDAwMDRjNzYNCg0KKFhFTikgWzIwMTItMDgt
-MzEgMjE6MzI6NDNdICAgZ2ZuOiAwMDAwNGM3NyAgbWZuOiAwMDAwNGM3Nw0KDQooWEVOKSBb
-MjAxMi0wOC0zMSAyMTozMjo0M10gICBnZm46IDAwMDA0Yzc4ICBtZm46IDAwMDA0Yzc4DQoN
-CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQzXSAgIGdmbjogMDAwMDRjNzkgIG1mbjogMDAw
-MDRjNzkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDNdICAgZ2ZuOiAwMDAwNGM3YSAg
-bWZuOiAwMDAwNGM3YQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0M10gICBnZm46IDAw
-MDA0YzdiICBtZm46IDAwMDA0YzdiDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQzXSAg
-IGdmbjogMDAwMDRjN2MgIG1mbjogMDAwMDRjN2MNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
-MzI6NDNdICAgZ2ZuOiAwMDAwNGM3ZCAgbWZuOiAwMDAwNGM3ZA0KDQooWEVOKSBbMjAxMi0w
-OC0zMSAyMTozMjo0M10gICBnZm46IDAwMDA0YzdlICBtZm46IDAwMDA0YzdlDQoNCihYRU4p
-IFsyMDEyLTA4LTMxIDIxOjMyOjQzXSAgIGdmbjogMDAwMDRjN2YgIG1mbjogMDAwMDRjN2YN
-Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDNdICAgZ2ZuOiAwMDAwNGM4MCAgbWZuOiAw
-MDAwNGM4MA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0M10gICBnZm46IDAwMDA0Yzgx
-ICBtZm46IDAwMDA0YzgxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQzXSAgIGdmbjog
-MDAwMDRjODIgIG1mbjogMDAwMDRjODINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDNd
-ICAgZ2ZuOiAwMDAwNGM4MyAgbWZuOiAwMDAwNGM4Mw0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
-MTozMjo0M10gICBnZm46IDAwMDA0Yzg0ICBtZm46IDAwMDA0Yzg0DQoNCihYRU4pIFsyMDEy
-LTA4LTMxIDIxOjMyOjQzXSAgIGdmbjogMDAwMDRjODUgIG1mbjogMDAwMDRjODUNCg0KKFhF
-TikgWzIwMTItMDgtMzEgMjE6MzI6NDNdICAgZ2ZuOiAwMDAwNGM4NiAgbWZuOiAwMDAwNGM4
-Ng0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0M10gICBnZm46IDAwMDA0Yzg3ICBtZm46
-IDAwMDA0Yzg3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQzXSAgIGdmbjogMDAwMDRj
-ODggIG1mbjogMDAwMDRjODgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDNdICAgZ2Zu
-OiAwMDAwNGM4OSAgbWZuOiAwMDAwNGM4OQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0
-M10gICBnZm46IDAwMDA0YzhhICBtZm46IDAwMDA0YzhhDQoNCihYRU4pIFsyMDEyLTA4LTMx
-IDIxOjMyOjQzXSAgIGdmbjogMDAwMDRjOGIgIG1mbjogMDAwMDRjOGINCg0KKFhFTikgWzIw
-MTItMDgtMzEgMjE6MzI6NDNdICAgZ2ZuOiAwMDAwNGM4YyAgbWZuOiAwMDAwNGM4Yw0KDQoo
-WEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0M10gICBnZm46IDAwMDA0YzhkICBtZm46IDAwMDA0
-YzhkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQzXSAgIGdmbjogMDAwMDRjOGUgIG1m
-bjogMDAwMDRjOGUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDNdICAgZ2ZuOiAwMDAw
-NGM4ZiAgbWZuOiAwMDAwNGM4Zg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0M10gICBn
-Zm46IDAwMDA0YzkwICBtZm46IDAwMDA0YzkwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMy
-OjQzXSAgIGdmbjogMDAwMDRjOTEgIG1mbjogMDAwMDRjOTENCg0KKFhFTikgWzIwMTItMDgt
-MzEgMjE6MzI6NDNdICAgZ2ZuOiAwMDAwNGM5MiAgbWZuOiAwMDAwNGM5Mg0KDQooWEVOKSBb
-MjAxMi0wOC0zMSAyMTozMjo0M10gICBnZm46IDAwMDA0YzkzICBtZm46IDAwMDA0YzkzDQoN
-CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQzXSAgIGdmbjogMDAwMDRjOTQgIG1mbjogMDAw
-MDRjOTQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDNdICAgZ2ZuOiAwMDAwNGM5NSAg
-bWZuOiAwMDAwNGM5NQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0M10gICBnZm46IDAw
-MDA0Yzk2ICBtZm46IDAwMDA0Yzk2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQzXSAg
-IGdmbjogMDAwMDRjOTcgIG1mbjogMDAwMDRjOTcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
-MzI6NDNdICAgZ2ZuOiAwMDAwNGM5OCAgbWZuOiAwMDAwNGM5OA0KDQooWEVOKSBbMjAxMi0w
-OC0zMSAyMTozMjo0M10gICBnZm46IDAwMDA0Yzk5ICBtZm46IDAwMDA0Yzk5DQoNCihYRU4p
-IFsyMDEyLTA4LTMxIDIxOjMyOjQzXSAgIGdmbjogMDAwMDRjOWEgIG1mbjogMDAwMDRjOWEN
-Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDNdICAgZ2ZuOiAwMDAwNGM5YiAgbWZuOiAw
-MDAwNGM5Yg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0M10gICBnZm46IDAwMDA0Yzlj
-ICBtZm46IDAwMDA0YzljDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQzXSAgIGdmbjog
-MDAwMDRjOWQgIG1mbjogMDAwMDRjOWQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDNd
-ICAgZ2ZuOiAwMDAwNGM5ZSAgbWZuOiAwMDAwNGM5ZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
-MTozMjo0M10gICBnZm46IDAwMDA0YzlmICBtZm46IDAwMDA0YzlmDQoNCihYRU4pIFsyMDEy
-LTA4LTMxIDIxOjMyOjQzXSAgIGdmbjogMDAwMDRjYTAgIG1mbjogMDAwMDRjYTANCg0KKFhF
-TikgWzIwMTItMDgtMzEgMjE6MzI6NDNdICAgZ2ZuOiAwMDAwNGNhMSAgbWZuOiAwMDAwNGNh
-MQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0M10gICBnZm46IDAwMDA0Y2EyICBtZm46
-IDAwMDA0Y2EyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQzXSAgIGdmbjogMDAwMDRj
-YTMgIG1mbjogMDAwMDRjYTMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDNdICAgZ2Zu
-OiAwMDAwNGNhNCAgbWZuOiAwMDAwNGNhNA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0
-M10gICBnZm46IDAwMDA0Y2E1ICBtZm46IDAwMDA0Y2E1DQoNCihYRU4pIFsyMDEyLTA4LTMx
-IDIxOjMyOjQzXSAgIGdmbjogMDAwMDRjYTYgIG1mbjogMDAwMDRjYTYNCg0KKFhFTikgWzIw
-MTItMDgtMzEgMjE6MzI6NDNdICAgZ2ZuOiAwMDAwNGNhNyAgbWZuOiAwMDAwNGNhNw0KDQoo
-WEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0M10gICBnZm46IDAwMDA0Y2E4ICBtZm46IDAwMDA0
-Y2E4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQzXSAgIGdmbjogMDAwMDRjYTkgIG1m
-bjogMDAwMDRjYTkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDNdICAgZ2ZuOiAwMDAw
-NGNhYSAgbWZuOiAwMDAwNGNhYQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0M10gICBn
-Zm46IDAwMDA0Y2FiICBtZm46IDAwMDA0Y2FiDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMy
-OjQzXSAgIGdmbjogMDAwMDRjYWMgIG1mbjogMDAwMDRjYWMNCg0KKFhFTikgWzIwMTItMDgt
-MzEgMjE6MzI6NDNdICAgZ2ZuOiAwMDAwNGNhZCAgbWZuOiAwMDAwNGNhZA0KDQooWEVOKSBb
-MjAxMi0wOC0zMSAyMTozMjo0M10gICBnZm46IDAwMDA0Y2FlICBtZm46IDAwMDA0Y2FlDQoN
-CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQzXSAgIGdmbjogMDAwMDRjYWYgIG1mbjogMDAw
-MDRjYWYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDNdICAgZ2ZuOiAwMDAwNGNiMCAg
-bWZuOiAwMDAwNGNiMA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0M10gICBnZm46IDAw
-MDA0Y2IxICBtZm46IDAwMDA0Y2IxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ0XSAg
-IGdmbjogMDAwMDRjYjIgIG1mbjogMDAwMDRjYjINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
-MzI6NDRdICAgZ2ZuOiAwMDAwNGNiMyAgbWZuOiAwMDAwNGNiMw0KDQooWEVOKSBbMjAxMi0w
-OC0zMSAyMTozMjo0NF0gICBnZm46IDAwMDA0Y2I0ICBtZm46IDAwMDA0Y2I0DQoNCihYRU4p
-IFsyMDEyLTA4LTMxIDIxOjMyOjQ0XSAgIGdmbjogMDAwMDRjYjUgIG1mbjogMDAwMDRjYjUN
-Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDRdICAgZ2ZuOiAwMDAwNGNiNiAgbWZuOiAw
-MDAwNGNiNg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0NF0gICBnZm46IDAwMDA0Y2I3
-ICBtZm46IDAwMDA0Y2I3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ0XSAgIGdmbjog
-MDAwMDRjYjggIG1mbjogMDAwMDRjYjgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDRd
-ICAgZ2ZuOiAwMDAwNGNiOSAgbWZuOiAwMDAwNGNiOQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
-MTozMjo0NF0gICBnZm46IDAwMDA0Y2JhICBtZm46IDAwMDA0Y2JhDQoNCihYRU4pIFsyMDEy
-LTA4LTMxIDIxOjMyOjQ0XSAgIGdmbjogMDAwMDRjYmIgIG1mbjogMDAwMDRjYmINCg0KKFhF
-TikgWzIwMTItMDgtMzEgMjE6MzI6NDRdICAgZ2ZuOiAwMDAwNGNiYyAgbWZuOiAwMDAwNGNi
-Yw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0NF0gICBnZm46IDAwMDA0Y2JkICBtZm46
-IDAwMDA0Y2JkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ0XSAgIGdmbjogMDAwMDRj
-YmUgIG1mbjogMDAwMDRjYmUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDRdICAgZ2Zu
-OiAwMDAwNGNiZiAgbWZuOiAwMDAwNGNiZg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0
-NF0gICBnZm46IDAwMDA0Y2MwICBtZm46IDAwMDA0Y2MwDQoNCihYRU4pIFsyMDEyLTA4LTMx
-IDIxOjMyOjQ0XSAgIGdmbjogMDAwMDRjYzEgIG1mbjogMDAwMDRjYzENCg0KKFhFTikgWzIw
-MTItMDgtMzEgMjE6MzI6NDRdICAgZ2ZuOiAwMDAwNGNjMiAgbWZuOiAwMDAwNGNjMg0KDQoo
-WEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0NF0gICBnZm46IDAwMDA0Y2MzICBtZm46IDAwMDA0
-Y2MzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ0XSAgIGdmbjogMDAwMDRjYzQgIG1m
-bjogMDAwMDRjYzQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDRdICAgZ2ZuOiAwMDAw
-NGNjNSAgbWZuOiAwMDAwNGNjNQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0NF0gICBn
-Zm46IDAwMDA0Y2M2ICBtZm46IDAwMDA0Y2M2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMy
-OjQ0XSAgIGdmbjogMDAwMDRjYzcgIG1mbjogMDAwMDRjYzcNCg0KKFhFTikgWzIwMTItMDgt
-MzEgMjE6MzI6NDRdICAgZ2ZuOiAwMDAwNGNjOCAgbWZuOiAwMDAwNGNjOA0KDQooWEVOKSBb
-MjAxMi0wOC0zMSAyMTozMjo0NF0gICBnZm46IDAwMDA0Y2M5ICBtZm46IDAwMDA0Y2M5DQoN
-CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ0XSAgIGdmbjogMDAwMDRjY2EgIG1mbjogMDAw
-MDRjY2ENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDRdICAgZ2ZuOiAwMDAwNGNjYiAg
-bWZuOiAwMDAwNGNjYg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0NF0gICBnZm46IDAw
-MDA0Y2NjICBtZm46IDAwMDA0Y2NjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ0XSAg
-IGdmbjogMDAwMDRjY2QgIG1mbjogMDAwMDRjY2QNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
-MzI6NDRdICAgZ2ZuOiAwMDAwNGNjZSAgbWZuOiAwMDAwNGNjZQ0KDQooWEVOKSBbMjAxMi0w
-OC0zMSAyMTozMjo0NF0gICBnZm46IDAwMDA0Y2NmICBtZm46IDAwMDA0Y2NmDQoNCihYRU4p
-IFsyMDEyLTA4LTMxIDIxOjMyOjQ0XSAgIGdmbjogMDAwMDRjZDAgIG1mbjogMDAwMDRjZDAN
-Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDRdICAgZ2ZuOiAwMDAwNGNkMSAgbWZuOiAw
-MDAwNGNkMQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0NF0gICBnZm46IDAwMDA0Y2Qy
-ICBtZm46IDAwMDA0Y2QyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ0XSAgIGdmbjog
-MDAwMDRjZDMgIG1mbjogMDAwMDRjZDMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDRd
-ICAgZ2ZuOiAwMDAwNGNkNCAgbWZuOiAwMDAwNGNkNA0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
-MTozMjo0NF0gICBnZm46IDAwMDA0Y2Q1ICBtZm46IDAwMDA0Y2Q1DQoNCihYRU4pIFsyMDEy
-LTA4LTMxIDIxOjMyOjQ0XSAgIGdmbjogMDAwMDRjZDYgIG1mbjogMDAwMDRjZDYNCg0KKFhF
-TikgWzIwMTItMDgtMzEgMjE6MzI6NDRdICAgZ2ZuOiAwMDAwNGNkNyAgbWZuOiAwMDAwNGNk
-Nw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0NF0gICBnZm46IDAwMDA0Y2Q4ICBtZm46
-IDAwMDA0Y2Q4DQoNClsgIDQzMC41ODQ4NzFdIGEoWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0
-NF0gICBnZm46IDAwMDA0Y2Q5ICBtZm46IDAwMDA0Y2Q5DQoNCnRhMS4wMDogcWMgdGltZW91
-dCAoY21kIDB4ZWMpDQoNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDRdICAgZ2ZuOiAw
-MDAwNGNkYSAgbWZuOiAwMDAwNGNkYQ0KDQpbICA0MzAuNjQyNzEyXSBhKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzI6NDRdICAgZ2ZuOiAwMDAwNGNkYiAgbWZuOiAwMDAwNGNkYg0KDQp0YTEu
-MDA6IGZhaWxlZCB0KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDRdICAgZ2ZuOiAwMDAwNGNk
-YyAgbWZuOiAwMDAwNGNkYw0KDQpvIElERU5USUZZIChJL08gKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzI6NDRdICAgZ2ZuOiAwMDAwNGNkZCAgbWZuOiAwMDAwNGNkZA0KDQplcnJvciwgZXJy
-X21hc2s9KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDRdICAgZ2ZuOiAwMDAwNGNkZSAgbWZu
-OiAwMDAwNGNkZQ0KDQoweDQpDQoNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDRdICAg
-Z2ZuOiAwMDAwNGNkZiAgbWZuOiAwMDAwNGNkZg0KDQpbICA0MzAuNzM4MzA4XSBhKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzI6NDRdICAgZ2ZuOiAwMDAwNGNlMCAgbWZuOiAwMDAwNGNlMA0K
-DQp0YTEuMDA6IHJldmFsaWRhKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDRdICAgZ2ZuOiAw
-MDAwNGNlMSAgbWZuOiAwMDAwNGNlMQ0KDQp0aW9uIGZhaWxlZCAoZXJybm89LTUpDQoNCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDRdICAgZ2ZuOiAwMDAwNGNlMiAgbWZuOiAwMDAw
-NGNlMg0KDQpbICA0MzAuODAwNjc4XSBhKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDRdICAg
-Z2ZuOiAwMDAwNGNlMyAgbWZuOiAwMDAwNGNlMw0KDQp0YTE6IGxpbWl0aW5nIFNBKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzI6NDRdICAgZ2ZuOiAwMDAwNGNlNCAgbWZuOiAwMDAwNGNlNA0K
-DQpUQSBsaW5rIHNwZWVkIHRvKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDRdICAgZ2ZuOiAw
-MDAwNGNlNSAgbWZuOiAwMDAwNGNlNQ0KDQogMS41IEdicHMNCg0KDQooWEVOKSBbMjAxMi0w
-OC0zMSAyMTozMjo0NF0gICBnZm46IDAwMDA0Y2U2ICBtZm46IDAwMDA0Y2U2DQoNCihYRU4p
-IFsyMDEyLTA4LTMxIDIxOjMyOjQ0XSAgIGdmbjogMDAwMDRjZTcgIG1mbjogMDAwMDRjZTcN
-Cg0KWyAgNDMwLjg3OTcyMV0gYShYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ0XSAgIGdmbjog
-MDAwMDRjZTggIG1mbjogMDAwMDRjZTgNCg0KdGExOiBoYXJkIHJlc2V0dChYRU4pIFsyMDEy
-LTA4LTMxIDIxOjMyOjQ0XSAgIGdmbjogMDAwMDRjZTkgIG1mbjogMDAwMDRjZTkNCg0KaW5n
-IGxpbmsNCg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0NF0gICBnZm46IDAwMDA0Y2Vh
-ICBtZm46IDAwMDA0Y2VhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ0XSAgIGdmbjog
-MDAwMDRjZWIgIG1mbjogMDAwMDRjZWINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDRd
-ICAgZ2ZuOiAwMDAwNGNlYyAgbWZuOiAwMDAwNGNlYw0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
-MTozMjo0NV0gICBnZm46IDAwMDA0Y2VkICBtZm46IDAwMDA0Y2VkDQoNCihYRU4pIFsyMDEy
-LTA4LTMxIDIxOjMyOjQ1XSAgIGdmbjogMDAwMDRjZWUgIG1mbjogMDAwMDRjZWUNCg0KKFhF
-TikgWzIwMTItMDgtMzEgMjE6MzI6NDVdICAgZ2ZuOiAwMDAwNGNlZiAgbWZuOiAwMDAwNGNl
-Zg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0NV0gICBnZm46IDAwMDA0Y2YwICBtZm46
-IDAwMDA0Y2YwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ1XSAgIGdmbjogMDAwMDRj
-ZjEgIG1mbjogMDAwMDRjZjENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDVdICAgZ2Zu
-OiAwMDAwNGNmMiAgbWZuOiAwMDAwNGNmMg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0
-NV0gICBnZm46IDAwMDA0Y2YzICBtZm46IDAwMDA0Y2YzDQoNCihYRU4pIFsyMDEyLTA4LTMx
-IDIxOjMyOjQ1XSAgIGdmbjogMDAwMDRjZjQgIG1mbjogMDAwMDRjZjQNCg0KKFhFTikgWzIw
-MTItMDgtMzEgMjE6MzI6NDVdICAgZ2ZuOiAwMDAwNGNmNSAgbWZuOiAwMDAwNGNmNQ0KDQoo
-WEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0NV0gICBnZm46IDAwMDA0Y2Y2ICBtZm46IDAwMDA0
-Y2Y2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ1XSAgIGdmbjogMDAwMDRjZjcgIG1m
-bjogMDAwMDRjZjcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDVdICAgZ2ZuOiAwMDAw
-NGNmOCAgbWZuOiAwMDAwNGNmOA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0NV0gICBn
-Zm46IDAwMDA0Y2Y5ICBtZm46IDAwMDA0Y2Y5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMy
-OjQ1XSAgIGdmbjogMDAwMDRjZmEgIG1mbjogMDAwMDRjZmENCg0KKFhFTikgWzIwMTItMDgt
-MzEgMjE6MzI6NDVdICAgZ2ZuOiAwMDAwNGNmYiAgbWZuOiAwMDAwNGNmYg0KDQooWEVOKSBb
-MjAxMi0wOC0zMSAyMTozMjo0NV0gICBnZm46IDAwMDA0Y2ZjICBtZm46IDAwMDA0Y2ZjDQoN
-CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ1XSAgIGdmbjogMDAwMDRjZmQgIG1mbjogMDAw
-MDRjZmQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDVdICAgZ2ZuOiAwMDAwNGNmZSAg
-bWZuOiAwMDAwNGNmZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0NV0gICBnZm46IDAw
-MDA0Y2ZmICBtZm46IDAwMDA0Y2ZmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ1XSAg
-IGdmbjogMDAwMDRkMDAgIG1mbjogMDAwMDRkMDANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
-MzI6NDVdICAgZ2ZuOiAwMDAwNGQwMSAgbWZuOiAwMDAwNGQwMQ0KDQooWEVOKSBbMjAxMi0w
-OC0zMSAyMTozMjo0NV0gICBnZm46IDAwMDA0ZDAyICBtZm46IDAwMDA0ZDAyDQoNCihYRU4p
-IFsyMDEyLTA4LTMxIDIxOjMyOjQ1XSAgIGdmbjogMDAwMDRkMDMgIG1mbjogMDAwMDRkMDMN
-Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDVdICAgZ2ZuOiAwMDAwNGQwNCAgbWZuOiAw
-MDAwNGQwNA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0NV0gICBnZm46IDAwMDA0ZDA1
-ICBtZm46IDAwMDA0ZDA1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ1XSAgIGdmbjog
-MDAwMDRkMDYgIG1mbjogMDAwMDRkMDYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDVd
-ICAgZ2ZuOiAwMDAwNGQwNyAgbWZuOiAwMDAwNGQwNw0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
-MTozMjo0NV0gICBnZm46IDAwMDA0ZDA4ICBtZm46IDAwMDA0ZDA4DQoNCihYRU4pIFsyMDEy
-LTA4LTMxIDIxOjMyOjQ1XSAgIGdmbjogMDAwMDRkMDkgIG1mbjogMDAwMDRkMDkNCg0KKFhF
-TikgWzIwMTItMDgtMzEgMjE6MzI6NDVdICAgZ2ZuOiAwMDAwNGQwYSAgbWZuOiAwMDAwNGQw
-YQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0NV0gICBnZm46IDAwMDA0ZDBiICBtZm46
-IDAwMDA0ZDBiDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ1XSAgIGdmbjogMDAwMDRk
-MGMgIG1mbjogMDAwMDRkMGMNCg0KWyAgNDMxLjQ2NjQxM10gYShYRU4pIFsyMDEyLTA4LTMx
-IDIxOjMyOjQ1XSAgIGdmbjogMDAwMDRkMGQgIG1mbjogMDAwMDRkMGQNCg0KdGExOiBTQVRB
-IGxpbmsgdShYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ1XSAgIGdmbjogMDAwMDRkMGUgIG1m
-bjogMDAwMDRkMGUNCg0KcCAxLjUgR2JwcyAoU1N0YShYRU4pIFsyMDEyLTA4LTMxIDIxOjMy
-OjQ1XSAgIGdmbjogMDAwMDRkMGYgIG1mbjogMDAwMDRkMGYNCg0KdHVzIDExMyBTQ29udHJv
-bCAzMTApDQoNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDVdICAgZ2ZuOiAwMDAwNGQx
-MCAgbWZuOiAwMDAwNGQxMA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0NV0gICBnZm46
-IDAwMDA0ZDExICBtZm46IDAwMDA0ZDExDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ1
-XSAgIGdmbjogMDAwMDRkMTIgIG1mbjogMDAwMDRkMTINCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzI6NDVdICAgZ2ZuOiAwMDAwNGQxMyAgbWZuOiAwMDAwNGQxMw0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMjo0NV0gICBnZm46IDAwMDA0ZDE0ICBtZm46IDAwMDA0ZDE0DQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ1XSAgIGdmbjogMDAwMDRkMTUgIG1mbjogMDAwMDRk
-MTUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDVdICAgZ2ZuOiAwMDAwNGQxNiAgbWZu
-OiAwMDAwNGQxNg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0NV0gICBnZm46IDAwMDA0
-ZDE3ICBtZm46IDAwMDA0ZDE3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ1XSAgIGdm
-bjogMDAwMDRkMTggIG1mbjogMDAwMDRkMTgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
-NDVdICAgZ2ZuOiAwMDAwNGQxOSAgbWZuOiAwMDAwNGQxOQ0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMjo0NV0gICBnZm46IDAwMDA0ZDFhICBtZm46IDAwMDA0ZDFhDQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMyOjQ1XSAgIGdmbjogMDAwMDRkMWIgIG1mbjogMDAwMDRkMWINCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDVdICAgZ2ZuOiAwMDAwNGQxYyAgbWZuOiAwMDAw
-NGQxYw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0NV0gICBnZm46IDAwMDA0ZDFkICBt
-Zm46IDAwMDA0ZDFkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ1XSAgIGdmbjogMDAw
-MDRkMWUgIG1mbjogMDAwMDRkMWUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDVdICAg
-Z2ZuOiAwMDAwNGQxZiAgbWZuOiAwMDAwNGQxZg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-Mjo0NV0gICBnZm46IDAwMDA0ZDIwICBtZm46IDAwMDA0ZDIwDQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMyOjQ1XSAgIGdmbjogMDAwMDRkMjEgIG1mbjogMDAwMDRkMjENCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzI6NDVdICAgZ2ZuOiAwMDAwNGQyMiAgbWZuOiAwMDAwNGQyMg0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0NV0gICBnZm46IDAwMDA0ZDIzICBtZm46IDAw
-MDA0ZDIzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ1XSAgIGdmbjogMDAwMDRkMjQg
-IG1mbjogMDAwMDRkMjQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDVdICAgZ2ZuOiAw
-MDAwNGQyNSAgbWZuOiAwMDAwNGQyNQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0NV0g
-ICBnZm46IDAwMDA0ZDI2ICBtZm46IDAwMDA0ZDI2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMyOjQ1XSAgIGdmbjogMDAwMDRkMjcgIG1mbjogMDAwMDRkMjcNCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzI6NDVdICAgZ2ZuOiAwMDAwNGQyOCAgbWZuOiAwMDAwNGQyOA0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMjo0NV0gICBnZm46IDAwMDA0ZDI5ICBtZm46IDAwMDA0ZDI5
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ1XSAgIGdmbjogMDAwMDRkMmEgIG1mbjog
-MDAwMDRkMmENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDVdICAgZ2ZuOiAwMDAwNGQy
-YiAgbWZuOiAwMDAwNGQyYg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0Nl0gICBnZm46
-IDAwMDA0ZDJjICBtZm46IDAwMDA0ZDJjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ2
-XSAgIGdmbjogMDAwMDRkMmQgIG1mbjogMDAwMDRkMmQNCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzI6NDZdICAgZ2ZuOiAwMDAwNGQyZSAgbWZuOiAwMDAwNGQyZQ0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMjo0Nl0gICBnZm46IDAwMDA0ZDJmICBtZm46IDAwMDA0ZDJmDQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ2XSAgIGdmbjogMDAwMDRkMzAgIG1mbjogMDAwMDRk
-MzANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDZdICAgZ2ZuOiAwMDAwNGQzMSAgbWZu
-OiAwMDAwNGQzMQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0Nl0gICBnZm46IDAwMDA0
-ZDMyICBtZm46IDAwMDA0ZDMyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ2XSAgIGdm
-bjogMDAwMDRkMzMgIG1mbjogMDAwMDRkMzMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
-NDZdICAgZ2ZuOiAwMDAwNGQzNCAgbWZuOiAwMDAwNGQzNA0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMjo0Nl0gICBnZm46IDAwMDA0ZDM1ICBtZm46IDAwMDA0ZDM1DQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMyOjQ2XSAgIGdmbjogMDAwMDRkMzYgIG1mbjogMDAwMDRkMzYNCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDZdICAgZ2ZuOiAwMDAwNGQzNyAgbWZuOiAwMDAw
-NGQzNw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0Nl0gICBnZm46IDAwMDA0ZDM4ICBt
-Zm46IDAwMDA0ZDM4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ2XSAgIGdmbjogMDAw
-MDRkMzkgIG1mbjogMDAwMDRkMzkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDZdICAg
-Z2ZuOiAwMDAwNGQzYSAgbWZuOiAwMDAwNGQzYQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-Mjo0Nl0gICBnZm46IDAwMDA0ZDNiICBtZm46IDAwMDA0ZDNiDQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMyOjQ2XSAgIGdmbjogMDAwMDRkM2MgIG1mbjogMDAwMDRkM2MNCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzI6NDZdICAgZ2ZuOiAwMDAwNGQzZCAgbWZuOiAwMDAwNGQzZA0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0Nl0gICBnZm46IDAwMDA0ZDNlICBtZm46IDAw
-MDA0ZDNlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ2XSAgIGdmbjogMDAwMDRkM2Yg
-IG1mbjogMDAwMDRkM2YNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDZdICAgZ2ZuOiAw
-MDAwNGQ0MCAgbWZuOiAwMDAwNGQ0MA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0Nl0g
-ICBnZm46IDAwMDA0ZDQxICBtZm46IDAwMDA0ZDQxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMyOjQ2XSAgIGdmbjogMDAwMDRkNDIgIG1mbjogMDAwMDRkNDINCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzI6NDZdICAgZ2ZuOiAwMDAwNGQ0MyAgbWZuOiAwMDAwNGQ0Mw0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMjo0Nl0gICBnZm46IDAwMDA0ZDQ0ICBtZm46IDAwMDA0ZDQ0
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ2XSAgIGdmbjogMDAwMDRkNDUgIG1mbjog
-MDAwMDRkNDUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDZdICAgZ2ZuOiAwMDAwNGQ0
-NiAgbWZuOiAwMDAwNGQ0Ng0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0Nl0gICBnZm46
-IDAwMDA0ZDQ3ICBtZm46IDAwMDA0ZDQ3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ2
-XSAgIGdmbjogMDAwMDRkNDggIG1mbjogMDAwMDRkNDgNCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzI6NDZdICAgZ2ZuOiAwMDAwNGQ0OSAgbWZuOiAwMDAwNGQ0OQ0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMjo0Nl0gICBnZm46IDAwMDA0ZDRhICBtZm46IDAwMDA0ZDRhDQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ2XSAgIGdmbjogMDAwMDRkNGIgIG1mbjogMDAwMDRk
-NGINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDZdICAgZ2ZuOiAwMDAwNGQ0YyAgbWZu
-OiAwMDAwNGQ0Yw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0Nl0gICBnZm46IDAwMDA0
-ZDRkICBtZm46IDAwMDA0ZDRkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ2XSAgIGdm
-bjogMDAwMDRkNGUgIG1mbjogMDAwMDRkNGUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
-NDZdICAgZ2ZuOiAwMDAwNGQ0ZiAgbWZuOiAwMDAwNGQ0Zg0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMjo0Nl0gICBnZm46IDAwMDA0ZDUwICBtZm46IDAwMDA0ZDUwDQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMyOjQ2XSAgIGdmbjogMDAwMDRkNTEgIG1mbjogMDAwMDRkNTENCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDZdICAgZ2ZuOiAwMDAwNGQ1MiAgbWZuOiAwMDAw
-NGQ1Mg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0Nl0gICBnZm46IDAwMDA0ZDUzICBt
-Zm46IDAwMDA0ZDUzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ2XSAgIGdmbjogMDAw
-MDRkNTQgIG1mbjogMDAwMDRkNTQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDZdICAg
-Z2ZuOiAwMDAwNGQ1NSAgbWZuOiAwMDAwNGQ1NQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-Mjo0Nl0gICBnZm46IDAwMDA0ZDU2ICBtZm46IDAwMDA0ZDU2DQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMyOjQ2XSAgIGdmbjogMDAwMDRkNTcgIG1mbjogMDAwMDRkNTcNCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzI6NDZdICAgZ2ZuOiAwMDAwNGQ1OCAgbWZuOiAwMDAwNGQ1OA0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0Nl0gICBnZm46IDAwMDA0ZDU5ICBtZm46IDAw
-MDA0ZDU5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ2XSAgIGdmbjogMDAwMDRkNWEg
-IG1mbjogMDAwMDRkNWENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDZdICAgZ2ZuOiAw
-MDAwNGQ1YiAgbWZuOiAwMDAwNGQ1Yg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0Nl0g
-ICBnZm46IDAwMDA0ZDVjICBtZm46IDAwMDA0ZDVjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMyOjQ2XSAgIGdmbjogMDAwMDRkNWQgIG1mbjogMDAwMDRkNWQNCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzI6NDZdICAgZ2ZuOiAwMDAwNGQ1ZSAgbWZuOiAwMDAwNGQ1ZQ0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMjo0Nl0gICBnZm46IDAwMDA0ZDVmICBtZm46IDAwMDA0ZDVm
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ2XSAgIGdmbjogMDAwMDRkNjAgIG1mbjog
-MDAwMDRkNjANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDZdICAgZ2ZuOiAwMDAwNGQ2
-MSAgbWZuOiAwMDAwNGQ2MQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0Nl0gICBnZm46
-IDAwMDA0ZDYyICBtZm46IDAwMDA0ZDYyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ2
-XSAgIGdmbjogMDAwMDRkNjMgIG1mbjogMDAwMDRkNjMNCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzI6NDZdICAgZ2ZuOiAwMDAwNGQ2NCAgbWZuOiAwMDAwNGQ2NA0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMjo0Nl0gICBnZm46IDAwMDA0ZDY1ICBtZm46IDAwMDA0ZDY1DQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ2XSAgIGdmbjogMDAwMDRkNjYgIG1mbjogMDAwMDRk
-NjYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDZdICAgZ2ZuOiAwMDAwNGQ2NyAgbWZu
-OiAwMDAwNGQ2Nw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0Nl0gICBnZm46IDAwMDA0
-ZDY4ICBtZm46IDAwMDA0ZDY4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ2XSAgIGdm
-bjogMDAwMDRkNjkgIG1mbjogMDAwMDRkNjkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
-NDZdICAgZ2ZuOiAwMDAwNGQ2YSAgbWZuOiAwMDAwNGQ2YQ0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMjo0Nl0gICBnZm46IDAwMDA0ZDZiICBtZm46IDAwMDA0ZDZiDQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMyOjQ3XSAgIGdmbjogMDAwMDRkNmMgIG1mbjogMDAwMDRkNmMNCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDddICAgZ2ZuOiAwMDAwNGQ2ZCAgbWZuOiAwMDAw
-NGQ2ZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0N10gICBnZm46IDAwMDA0ZDZlICBt
-Zm46IDAwMDA0ZDZlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ3XSAgIGdmbjogMDAw
-MDRkNmYgIG1mbjogMDAwMDRkNmYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDddICAg
-Z2ZuOiAwMDAwNGQ3MCAgbWZuOiAwMDAwNGQ3MA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-Mjo0N10gICBnZm46IDAwMDA0ZDcxICBtZm46IDAwMDA0ZDcxDQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMyOjQ3XSAgIGdmbjogMDAwMDRkNzIgIG1mbjogMDAwMDRkNzINCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzI6NDddICAgZ2ZuOiAwMDAwNGQ3MyAgbWZuOiAwMDAwNGQ3Mw0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0N10gICBnZm46IDAwMDA0ZDc0ICBtZm46IDAw
-MDA0ZDc0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ3XSAgIGdmbjogMDAwMDRkNzUg
-IG1mbjogMDAwMDRkNzUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDddICAgZ2ZuOiAw
-MDAwNGQ3NiAgbWZuOiAwMDAwNGQ3Ng0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0N10g
-ICBnZm46IDAwMDA0ZDc3ICBtZm46IDAwMDA0ZDc3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMyOjQ3XSAgIGdmbjogMDAwMDRkNzggIG1mbjogMDAwMDRkNzgNCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzI6NDddICAgZ2ZuOiAwMDAwNGQ3OSAgbWZuOiAwMDAwNGQ3OQ0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMjo0N10gICBnZm46IDAwMDA0ZDdhICBtZm46IDAwMDA0ZDdh
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ3XSAgIGdmbjogMDAwMDRkN2IgIG1mbjog
-MDAwMDRkN2INCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDddICAgZ2ZuOiAwMDAwNGQ3
-YyAgbWZuOiAwMDAwNGQ3Yw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0N10gICBnZm46
-IDAwMDA0ZDdkICBtZm46IDAwMDA0ZDdkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ3
-XSAgIGdmbjogMDAwMDRkN2UgIG1mbjogMDAwMDRkN2UNCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzI6NDddICAgZ2ZuOiAwMDAwNGQ3ZiAgbWZuOiAwMDAwNGQ3Zg0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMjo0N10gICBnZm46IDAwMDA0ZDgwICBtZm46IDAwMDA0ZDgwDQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ3XSAgIGdmbjogMDAwMDRkODEgIG1mbjogMDAwMDRk
-ODENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDddICAgZ2ZuOiAwMDAwNGQ4MiAgbWZu
-OiAwMDAwNGQ4Mg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0N10gICBnZm46IDAwMDA0
-ZDgzICBtZm46IDAwMDA0ZDgzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ3XSAgIGdm
-bjogMDAwMDRkODQgIG1mbjogMDAwMDRkODQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
-NDddICAgZ2ZuOiAwMDAwNGQ4NSAgbWZuOiAwMDAwNGQ4NQ0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMjo0N10gICBnZm46IDAwMDA0ZDg2ICBtZm46IDAwMDA0ZDg2DQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMyOjQ3XSAgIGdmbjogMDAwMDRkODcgIG1mbjogMDAwMDRkODcNCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDddICAgZ2ZuOiAwMDAwNGQ4OCAgbWZuOiAwMDAw
-NGQ4OA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0N10gICBnZm46IDAwMDA0ZDg5ICBt
-Zm46IDAwMDA0ZDg5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ3XSAgIGdmbjogMDAw
-MDRkOGEgIG1mbjogMDAwMDRkOGENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDddICAg
-Z2ZuOiAwMDAwNGQ4YiAgbWZuOiAwMDAwNGQ4Yg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-Mjo0N10gICBnZm46IDAwMDA0ZDhjICBtZm46IDAwMDA0ZDhjDQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMyOjQ3XSAgIGdmbjogMDAwMDRkOGQgIG1mbjogMDAwMDRkOGQNCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzI6NDddICAgZ2ZuOiAwMDAwNGQ4ZSAgbWZuOiAwMDAwNGQ4ZQ0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0N10gICBnZm46IDAwMDA0ZDhmICBtZm46IDAw
-MDA0ZDhmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ3XSAgIGdmbjogMDAwMDRkOTAg
-IG1mbjogMDAwMDRkOTANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDddICAgZ2ZuOiAw
-MDAwNGQ5MSAgbWZuOiAwMDAwNGQ5MQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0N10g
-ICBnZm46IDAwMDA0ZDkyICBtZm46IDAwMDA0ZDkyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMyOjQ3XSAgIGdmbjogMDAwMDRkOTMgIG1mbjogMDAwMDRkOTMNCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzI6NDddICAgZ2ZuOiAwMDAwNGQ5NCAgbWZuOiAwMDAwNGQ5NA0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMjo0N10gICBnZm46IDAwMDA0ZDk1ICBtZm46IDAwMDA0ZDk1
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ3XSAgIGdmbjogMDAwMDRkOTYgIG1mbjog
-MDAwMDRkOTYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDddICAgZ2ZuOiAwMDAwNGQ5
-NyAgbWZuOiAwMDAwNGQ5Nw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0N10gICBnZm46
-IDAwMDA0ZDk4ICBtZm46IDAwMDA0ZDk4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ3
-XSAgIGdmbjogMDAwMDRkOTkgIG1mbjogMDAwMDRkOTkNCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzI6NDddICAgZ2ZuOiAwMDAwNGQ5YSAgbWZuOiAwMDAwNGQ5YQ0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMjo0N10gICBnZm46IDAwMDA0ZDliICBtZm46IDAwMDA0ZDliDQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ3XSAgIGdmbjogMDAwMDRkOWMgIG1mbjogMDAwMDRk
-OWMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDddICAgZ2ZuOiAwMDAwNGQ5ZCAgbWZu
-OiAwMDAwNGQ5ZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0N10gICBnZm46IDAwMDA0
-ZDllICBtZm46IDAwMDA0ZDllDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ3XSAgIGdm
-bjogMDAwMDRkOWYgIG1mbjogMDAwMDRkOWYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
-NDddICAgZ2ZuOiAwMDAwNGRhMCAgbWZuOiAwMDAwNGRhMA0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMjo0N10gICBnZm46IDAwMDA0ZGExICBtZm46IDAwMDA0ZGExDQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMyOjQ3XSAgIGdmbjogMDAwMDRkYTIgIG1mbjogMDAwMDRkYTINCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDddICAgZ2ZuOiAwMDAwNGRhMyAgbWZuOiAwMDAw
-NGRhMw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0N10gICBnZm46IDAwMDA0ZGE0ICBt
-Zm46IDAwMDA0ZGE0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ3XSAgIGdmbjogMDAw
-MDRkYTUgIG1mbjogMDAwMDRkYTUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDddICAg
-Z2ZuOiAwMDAwNGRhNiAgbWZuOiAwMDAwNGRhNg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-Mjo0N10gICBnZm46IDAwMDA0ZGE3ICBtZm46IDAwMDA0ZGE3DQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMyOjQ3XSAgIGdmbjogMDAwMDRkYTggIG1mbjogMDAwMDRkYTgNCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzI6NDddICAgZ2ZuOiAwMDAwNGRhOSAgbWZuOiAwMDAwNGRhOQ0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0N10gICBnZm46IDAwMDA0ZGFhICBtZm46IDAw
-MDA0ZGFhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ3XSAgIGdmbjogMDAwMDRkYWIg
-IG1mbjogMDAwMDRkYWINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDddICAgZ2ZuOiAw
-MDAwNGRhYyAgbWZuOiAwMDAwNGRhYw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0OF0g
-ICBnZm46IDAwMDA0ZGFkICBtZm46IDAwMDA0ZGFkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMyOjQ4XSAgIGdmbjogMDAwMDRkYWUgIG1mbjogMDAwMDRkYWUNCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzI6NDhdICAgZ2ZuOiAwMDAwNGRhZiAgbWZuOiAwMDAwNGRhZg0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMjo0OF0gICBnZm46IDAwMDA0ZGIwICBtZm46IDAwMDA0ZGIw
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ4XSAgIGdmbjogMDAwMDRkYjEgIG1mbjog
-MDAwMDRkYjENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDhdICAgZ2ZuOiAwMDAwNGRi
-MiAgbWZuOiAwMDAwNGRiMg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0OF0gICBnZm46
-IDAwMDA0ZGIzICBtZm46IDAwMDA0ZGIzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ4
-XSAgIGdmbjogMDAwMDRkYjQgIG1mbjogMDAwMDRkYjQNCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzI6NDhdICAgZ2ZuOiAwMDAwNGRiNSAgbWZuOiAwMDAwNGRiNQ0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMjo0OF0gICBnZm46IDAwMDA0ZGI2ICBtZm46IDAwMDA0ZGI2DQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ4XSAgIGdmbjogMDAwMDRkYjcgIG1mbjogMDAwMDRk
-YjcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDhdICAgZ2ZuOiAwMDAwNGRiOCAgbWZu
-OiAwMDAwNGRiOA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0OF0gICBnZm46IDAwMDA0
-ZGI5ICBtZm46IDAwMDA0ZGI5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ4XSAgIGdm
-bjogMDAwMDRkYmEgIG1mbjogMDAwMDRkYmENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
-NDhdICAgZ2ZuOiAwMDAwNGRiYiAgbWZuOiAwMDAwNGRiYg0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMjo0OF0gICBnZm46IDAwMDA0ZGJjICBtZm46IDAwMDA0ZGJjDQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMyOjQ4XSAgIGdmbjogMDAwMDRkYmQgIG1mbjogMDAwMDRkYmQNCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDhdICAgZ2ZuOiAwMDAwNGRiZSAgbWZuOiAwMDAw
-NGRiZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0OF0gICBnZm46IDAwMDA0ZGJmICBt
-Zm46IDAwMDA0ZGJmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ4XSAgIGdmbjogMDAw
-MDRkYzAgIG1mbjogMDAwMDRkYzANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDhdICAg
-Z2ZuOiAwMDAwNGRjMSAgbWZuOiAwMDAwNGRjMQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-Mjo0OF0gICBnZm46IDAwMDA0ZGMyICBtZm46IDAwMDA0ZGMyDQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMyOjQ4XSAgIGdmbjogMDAwMDRkYzMgIG1mbjogMDAwMDRkYzMNCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzI6NDhdICAgZ2ZuOiAwMDAwNGRjNCAgbWZuOiAwMDAwNGRjNA0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0OF0gICBnZm46IDAwMDA0ZGM1ICBtZm46IDAw
-MDA0ZGM1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ4XSAgIGdmbjogMDAwMDRkYzYg
-IG1mbjogMDAwMDRkYzYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDhdICAgZ2ZuOiAw
-MDAwNGRjNyAgbWZuOiAwMDAwNGRjNw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0OF0g
-ICBnZm46IDAwMDA0ZGM4ICBtZm46IDAwMDA0ZGM4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMyOjQ4XSAgIGdmbjogMDAwMDRkYzkgIG1mbjogMDAwMDRkYzkNCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzI6NDhdICAgZ2ZuOiAwMDAwNGRjYSAgbWZuOiAwMDAwNGRjYQ0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMjo0OF0gICBnZm46IDAwMDA0ZGNiICBtZm46IDAwMDA0ZGNi
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ4XSAgIGdmbjogMDAwMDRkY2MgIG1mbjog
-MDAwMDRkY2MNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDhdICAgZ2ZuOiAwMDAwNGRj
-ZCAgbWZuOiAwMDAwNGRjZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0OF0gICBnZm46
-IDAwMDA0ZGNlICBtZm46IDAwMDA0ZGNlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ4
-XSAgIGdmbjogMDAwMDRkY2YgIG1mbjogMDAwMDRkY2YNCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzI6NDhdICAgZ2ZuOiAwMDAwNGRkMCAgbWZuOiAwMDAwNGRkMA0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMjo0OF0gICBnZm46IDAwMDA0ZGQxICBtZm46IDAwMDA0ZGQxDQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ4XSAgIGdmbjogMDAwMDRkZDIgIG1mbjogMDAwMDRk
-ZDINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDhdICAgZ2ZuOiAwMDAwNGRkMyAgbWZu
-OiAwMDAwNGRkMw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0OF0gICBnZm46IDAwMDA0
-ZGQ0ICBtZm46IDAwMDA0ZGQ0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ4XSAgIGdm
-bjogMDAwMDRkZDUgIG1mbjogMDAwMDRkZDUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
-NDhdICAgZ2ZuOiAwMDAwNGRkNiAgbWZuOiAwMDAwNGRkNg0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMjo0OF0gICBnZm46IDAwMDA0ZGQ3ICBtZm46IDAwMDA0ZGQ3DQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMyOjQ4XSAgIGdmbjogMDAwMDRkZDggIG1mbjogMDAwMDRkZDgNCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDhdICAgZ2ZuOiAwMDAwNGRkOSAgbWZuOiAwMDAw
-NGRkOQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0OF0gICBnZm46IDAwMDA0ZGRhICBt
-Zm46IDAwMDA0ZGRhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ4XSAgIGdmbjogMDAw
-MDRkZGIgIG1mbjogMDAwMDRkZGINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDhdICAg
-Z2ZuOiAwMDAwNGRkYyAgbWZuOiAwMDAwNGRkYw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-Mjo0OF0gICBnZm46IDAwMDA0ZGRkICBtZm46IDAwMDA0ZGRkDQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMyOjQ4XSAgIGdmbjogMDAwMDRkZGUgIG1mbjogMDAwMDRkZGUNCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzI6NDhdICAgZ2ZuOiAwMDAwNGRkZiAgbWZuOiAwMDAwNGRkZg0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0OF0gICBnZm46IDAwMDA0ZGUwICBtZm46IDAw
-MDA0ZGUwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ4XSAgIGdmbjogMDAwMDRkZTEg
-IG1mbjogMDAwMDRkZTENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDhdICAgZ2ZuOiAw
-MDAwNGRlMiAgbWZuOiAwMDAwNGRlMg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0OF0g
-ICBnZm46IDAwMDA0ZGUzICBtZm46IDAwMDA0ZGUzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMyOjQ4XSAgIGdmbjogMDAwMDRkZTQgIG1mbjogMDAwMDRkZTQNCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzI6NDhdICAgZ2ZuOiAwMDAwNGRlNSAgbWZuOiAwMDAwNGRlNQ0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMjo0OF0gICBnZm46IDAwMDA0ZGU2ICBtZm46IDAwMDA0ZGU2
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ4XSAgIGdmbjogMDAwMDRkZTcgIG1mbjog
-MDAwMDRkZTcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDhdICAgZ2ZuOiAwMDAwNGRl
-OCAgbWZuOiAwMDAwNGRlOA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0OF0gICBnZm46
-IDAwMDA0ZGU5ICBtZm46IDAwMDA0ZGU5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ4
-XSAgIGdmbjogMDAwMDRkZWEgIG1mbjogMDAwMDRkZWENCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzI6NDhdICAgZ2ZuOiAwMDAwNGRlYiAgbWZuOiAwMDAwNGRlYg0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMjo0OF0gICBnZm46IDAwMDA0ZGVjICBtZm46IDAwMDA0ZGVjDQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ5XSAgIGdmbjogMDAwMDRkZWQgIG1mbjogMDAwMDRk
-ZWQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDldICAgZ2ZuOiAwMDAwNGRlZSAgbWZu
-OiAwMDAwNGRlZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0OV0gICBnZm46IDAwMDA0
-ZGVmICBtZm46IDAwMDA0ZGVmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ5XSAgIGdm
-bjogMDAwMDRkZjAgIG1mbjogMDAwMDRkZjANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
-NDldICAgZ2ZuOiAwMDAwNGRmMSAgbWZuOiAwMDAwNGRmMQ0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMjo0OV0gICBnZm46IDAwMDA0ZGYyICBtZm46IDAwMDA0ZGYyDQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMyOjQ5XSAgIGdmbjogMDAwMDRkZjMgIG1mbjogMDAwMDRkZjMNCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDldICAgZ2ZuOiAwMDAwNGRmNCAgbWZuOiAwMDAw
-NGRmNA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0OV0gICBnZm46IDAwMDA0ZGY1ICBt
-Zm46IDAwMDA0ZGY1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ5XSAgIGdmbjogMDAw
-MDRkZjYgIG1mbjogMDAwMDRkZjYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDldICAg
-Z2ZuOiAwMDAwNGRmNyAgbWZuOiAwMDAwNGRmNw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-Mjo0OV0gICBnZm46IDAwMDA0ZGY4ICBtZm46IDAwMDA0ZGY4DQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMyOjQ5XSAgIGdmbjogMDAwMDRkZjkgIG1mbjogMDAwMDRkZjkNCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzI6NDldICAgZ2ZuOiAwMDAwNGRmYSAgbWZuOiAwMDAwNGRmYQ0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0OV0gICBnZm46IDAwMDA0ZGZiICBtZm46IDAw
-MDA0ZGZiDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ5XSAgIGdmbjogMDAwMDRkZmMg
-IG1mbjogMDAwMDRkZmMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDldICAgZ2ZuOiAw
-MDAwNGRmZCAgbWZuOiAwMDAwNGRmZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0OV0g
-ICBnZm46IDAwMDA0ZGZlICBtZm46IDAwMDA0ZGZlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMyOjQ5XSAgIGdmbjogMDAwMDRkZmYgIG1mbjogMDAwMDRkZmYNCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzI6NDldICAgZ2ZuOiAwMDAwNGUwMCAgbWZuOiAwMDAwNGUwMA0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMjo0OV0gICBnZm46IDAwMDA0ZTAxICBtZm46IDAwMDA0ZTAx
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ5XSAgIGdmbjogMDAwMDRlMDIgIG1mbjog
-MDAwMDRlMDINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDldICAgZ2ZuOiAwMDAwNGUw
-MyAgbWZuOiAwMDAwNGUwMw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0OV0gICBnZm46
-IDAwMDA0ZTA0ICBtZm46IDAwMDA0ZTA0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ5
-XSAgIGdmbjogMDAwMDRlMDUgIG1mbjogMDAwMDRlMDUNCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzI6NDldICAgZ2ZuOiAwMDAwNGUwNiAgbWZuOiAwMDAwNGUwNg0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMjo0OV0gICBnZm46IDAwMDA0ZTA3ICBtZm46IDAwMDA0ZTA3DQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ5XSAgIGdmbjogMDAwMDRlMDggIG1mbjogMDAwMDRl
-MDgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDldICAgZ2ZuOiAwMDAwNGUwOSAgbWZu
-OiAwMDAwNGUwOQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0OV0gICBnZm46IDAwMDA0
-ZTBhICBtZm46IDAwMDA0ZTBhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ5XSAgIGdm
-bjogMDAwMDRlMGIgIG1mbjogMDAwMDRlMGINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
-NDldICAgZ2ZuOiAwMDAwNGUwYyAgbWZuOiAwMDAwNGUwYw0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMjo0OV0gICBnZm46IDAwMDA0ZTBkICBtZm46IDAwMDA0ZTBkDQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMyOjQ5XSAgIGdmbjogMDAwMDRlMGUgIG1mbjogMDAwMDRlMGUNCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDldICAgZ2ZuOiAwMDAwNGUwZiAgbWZuOiAwMDAw
-NGUwZg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0OV0gICBnZm46IDAwMDA0ZTEwICBt
-Zm46IDAwMDA0ZTEwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ5XSAgIGdmbjogMDAw
-MDRlMTEgIG1mbjogMDAwMDRlMTENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDldICAg
-Z2ZuOiAwMDAwNGUxMiAgbWZuOiAwMDAwNGUxMg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-Mjo0OV0gICBnZm46IDAwMDA0ZTEzICBtZm46IDAwMDA0ZTEzDQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMyOjQ5XSAgIGdmbjogMDAwMDRlMTQgIG1mbjogMDAwMDRlMTQNCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzI6NDldICAgZ2ZuOiAwMDAwNGUxNSAgbWZuOiAwMDAwNGUxNQ0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0OV0gICBnZm46IDAwMDA0ZTE2ICBtZm46IDAw
-MDA0ZTE2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ5XSAgIGdmbjogMDAwMDRlMTcg
-IG1mbjogMDAwMDRlMTcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDldICAgZ2ZuOiAw
-MDAwNGUxOCAgbWZuOiAwMDAwNGUxOA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0OV0g
-ICBnZm46IDAwMDA0ZTE5ICBtZm46IDAwMDA0ZTE5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMyOjQ5XSAgIGdmbjogMDAwMDRlMWEgIG1mbjogMDAwMDRlMWENCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzI6NDldICAgZ2ZuOiAwMDAwNGUxYiAgbWZuOiAwMDAwNGUxYg0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMjo0OV0gICBnZm46IDAwMDA0ZTFjICBtZm46IDAwMDA0ZTFj
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ5XSAgIGdmbjogMDAwMDRlMWQgIG1mbjog
-MDAwMDRlMWQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDldICAgZ2ZuOiAwMDAwNGUx
-ZSAgbWZuOiAwMDAwNGUxZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0OV0gICBnZm46
-IDAwMDA0ZTFmICBtZm46IDAwMDA0ZTFmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ5
-XSAgIGdmbjogMDAwMDRlMjAgIG1mbjogMDAwMDRlMjANCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzI6NDldICAgZ2ZuOiAwMDAwNGUyMSAgbWZuOiAwMDAwNGUyMQ0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMjo0OV0gICBnZm46IDAwMDA0ZTIyICBtZm46IDAwMDA0ZTIyDQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ5XSAgIGdmbjogMDAwMDRlMjMgIG1mbjogMDAwMDRl
-MjMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDldICAgZ2ZuOiAwMDAwNGUyNCAgbWZu
-OiAwMDAwNGUyNA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0OV0gICBnZm46IDAwMDA0
-ZTI1ICBtZm46IDAwMDA0ZTI1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ5XSAgIGdm
-bjogMDAwMDRlMjYgIG1mbjogMDAwMDRlMjYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
-NDldICAgZ2ZuOiAwMDAwNGUyNyAgbWZuOiAwMDAwNGUyNw0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMjo0OV0gICBnZm46IDAwMDA0ZTI4ICBtZm46IDAwMDA0ZTI4DQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMyOjQ5XSAgIGdmbjogMDAwMDRlMjkgIG1mbjogMDAwMDRlMjkNCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NDldICAgZ2ZuOiAwMDAwNGUyYSAgbWZuOiAwMDAw
-NGUyYQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo0OV0gICBnZm46IDAwMDA0ZTJiICBt
-Zm46IDAwMDA0ZTJiDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjQ5XSAgIGdmbjogMDAw
-MDRlMmMgIG1mbjogMDAwMDRlMmMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTBdICAg
-Z2ZuOiAwMDAwNGUyZCAgbWZuOiAwMDAwNGUyZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-Mjo1MF0gICBnZm46IDAwMDA0ZTJlICBtZm46IDAwMDA0ZTJlDQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMyOjUwXSAgIGdmbjogMDAwMDRlMmYgIG1mbjogMDAwMDRlMmYNCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzI6NTBdICAgZ2ZuOiAwMDAwNGUzMCAgbWZuOiAwMDAwNGUzMA0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1MF0gICBnZm46IDAwMDA0ZTMxICBtZm46IDAw
-MDA0ZTMxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjUwXSAgIGdmbjogMDAwMDRlMzIg
-IG1mbjogMDAwMDRlMzINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTBdICAgZ2ZuOiAw
-MDAwNGUzMyAgbWZuOiAwMDAwNGUzMw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1MF0g
-ICBnZm46IDAwMDA0ZTM0ICBtZm46IDAwMDA0ZTM0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMyOjUwXSAgIGdmbjogMDAwMDRlMzUgIG1mbjogMDAwMDRlMzUNCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzI6NTBdICAgZ2ZuOiAwMDAwNGUzNiAgbWZuOiAwMDAwNGUzNg0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMjo1MF0gICBnZm46IDAwMDA0ZTM3ICBtZm46IDAwMDA0ZTM3
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjUwXSAgIGdmbjogMDAwMDRlMzggIG1mbjog
-MDAwMDRlMzgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTBdICAgZ2ZuOiAwMDAwNGUz
-OSAgbWZuOiAwMDAwNGUzOQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1MF0gICBnZm46
-IDAwMDA0ZTNhICBtZm46IDAwMDA0ZTNhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjUw
-XSAgIGdmbjogMDAwMDRlM2IgIG1mbjogMDAwMDRlM2INCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzI6NTBdICAgZ2ZuOiAwMDAwNGUzYyAgbWZuOiAwMDAwNGUzYw0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMjo1MF0gICBnZm46IDAwMDA0ZTNkICBtZm46IDAwMDA0ZTNkDQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjUwXSAgIGdmbjogMDAwMDRlM2UgIG1mbjogMDAwMDRl
-M2UNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTBdICAgZ2ZuOiAwMDAwNGUzZiAgbWZu
-OiAwMDAwNGUzZg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1MF0gICBnZm46IDAwMDA0
-ZTQwICBtZm46IDAwMDA0ZTQwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjUwXSAgIGdm
-bjogMDAwMDRlNDEgIG1mbjogMDAwMDRlNDENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
-NTBdICAgZ2ZuOiAwMDAwNGU0MiAgbWZuOiAwMDAwNGU0Mg0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMjo1MF0gICBnZm46IDAwMDA0ZTQzICBtZm46IDAwMDA0ZTQzDQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMyOjUwXSAgIGdmbjogMDAwMDRlNDQgIG1mbjogMDAwMDRlNDQNCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTBdICAgZ2ZuOiAwMDAwNGU0NSAgbWZuOiAwMDAw
-NGU0NQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1MF0gICBnZm46IDAwMDA0ZTQ2ICBt
-Zm46IDAwMDA0ZTQ2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjUwXSAgIGdmbjogMDAw
-MDRlNDcgIG1mbjogMDAwMDRlNDcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTBdICAg
-Z2ZuOiAwMDAwNGU0OCAgbWZuOiAwMDAwNGU0OA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-Mjo1MF0gICBnZm46IDAwMDA0ZTQ5ICBtZm46IDAwMDA0ZTQ5DQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMyOjUwXSAgIGdmbjogMDAwMDRlNGEgIG1mbjogMDAwMDRlNGENCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzI6NTBdICAgZ2ZuOiAwMDAwNGU0YiAgbWZuOiAwMDAwNGU0Yg0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1MF0gICBnZm46IDAwMDA0ZTRjICBtZm46IDAw
-MDA0ZTRjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjUwXSAgIGdmbjogMDAwMDRlNGQg
-IG1mbjogMDAwMDRlNGQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTBdICAgZ2ZuOiAw
-MDAwNGU0ZSAgbWZuOiAwMDAwNGU0ZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1MF0g
-ICBnZm46IDAwMDA0ZTRmICBtZm46IDAwMDA0ZTRmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMyOjUwXSAgIGdmbjogMDAwMDRlNTAgIG1mbjogMDAwMDRlNTANCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzI6NTBdICAgZ2ZuOiAwMDAwNGU1MSAgbWZuOiAwMDAwNGU1MQ0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMjo1MF0gICBnZm46IDAwMDA0ZTUyICBtZm46IDAwMDA0ZTUy
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjUwXSAgIGdmbjogMDAwMDRlNTMgIG1mbjog
-MDAwMDRlNTMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTBdICAgZ2ZuOiAwMDAwNGU1
-NCAgbWZuOiAwMDAwNGU1NA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1MF0gICBnZm46
-IDAwMDA0ZTU1ICBtZm46IDAwMDA0ZTU1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjUw
-XSAgIGdmbjogMDAwMDRlNTYgIG1mbjogMDAwMDRlNTYNCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzI6NTBdICAgZ2ZuOiAwMDAwNGU1NyAgbWZuOiAwMDAwNGU1Nw0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMjo1MF0gICBnZm46IDAwMDA0ZTU4ICBtZm46IDAwMDA0ZTU4DQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjUwXSAgIGdmbjogMDAwMDRlNTkgIG1mbjogMDAwMDRl
-NTkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTBdICAgZ2ZuOiAwMDAwNGU1YSAgbWZu
-OiAwMDAwNGU1YQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1MF0gICBnZm46IDAwMDA0
-ZTViICBtZm46IDAwMDA0ZTViDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjUwXSAgIGdm
-bjogMDAwMDRlNWMgIG1mbjogMDAwMDRlNWMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
-NTBdICAgZ2ZuOiAwMDAwNGU1ZCAgbWZuOiAwMDAwNGU1ZA0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMjo1MF0gICBnZm46IDAwMDA0ZTVlICBtZm46IDAwMDA0ZTVlDQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMyOjUwXSAgIGdmbjogMDAwMDRlNWYgIG1mbjogMDAwMDRlNWYNCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTBdICAgZ2ZuOiAwMDAwNGU2MCAgbWZuOiAwMDAw
-NGU2MA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1MF0gICBnZm46IDAwMDA0ZTYxICBt
-Zm46IDAwMDA0ZTYxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjUwXSAgIGdmbjogMDAw
-MDRlNjIgIG1mbjogMDAwMDRlNjINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTBdICAg
-Z2ZuOiAwMDAwNGU2MyAgbWZuOiAwMDAwNGU2Mw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-Mjo1MF0gICBnZm46IDAwMDA0ZTY0ICBtZm46IDAwMDA0ZTY0DQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMyOjUwXSAgIGdmbjogMDAwMDRlNjUgIG1mbjogMDAwMDRlNjUNCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzI6NTBdICAgZ2ZuOiAwMDAwNGU2NiAgbWZuOiAwMDAwNGU2Ng0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1MF0gICBnZm46IDAwMDA0ZTY3ICBtZm46IDAw
-MDA0ZTY3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjUwXSAgIGdmbjogMDAwMDRlNjgg
-IG1mbjogMDAwMDRlNjgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTBdICAgZ2ZuOiAw
-MDAwNGU2OSAgbWZuOiAwMDAwNGU2OQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1MF0g
-ICBnZm46IDAwMDA0ZTZhICBtZm46IDAwMDA0ZTZhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMyOjUwXSAgIGdmbjogMDAwMDRlNmIgIG1mbjogMDAwMDRlNmINCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzI6NTBdICAgZ2ZuOiAwMDAwNGU2YyAgbWZuOiAwMDAwNGU2Yw0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMjo1MV0gICBnZm46IDAwMDA0ZTZkICBtZm46IDAwMDA0ZTZk
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjUxXSAgIGdmbjogMDAwMDRlNmUgIG1mbjog
-MDAwMDRlNmUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTFdICAgZ2ZuOiAwMDAwNGU2
-ZiAgbWZuOiAwMDAwNGU2Zg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1MV0gICBnZm46
-IDAwMDA0ZTcwICBtZm46IDAwMDA0ZTcwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjUx
-XSAgIGdmbjogMDAwMDRlNzEgIG1mbjogMDAwMDRlNzENCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzI6NTFdICAgZ2ZuOiAwMDAwNGU3MiAgbWZuOiAwMDAwNGU3Mg0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMjo1MV0gICBnZm46IDAwMDA0ZTczICBtZm46IDAwMDA0ZTczDQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjUxXSAgIGdmbjogMDAwMDRlNzQgIG1mbjogMDAwMDRl
-NzQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTFdICAgZ2ZuOiAwMDAwNGU3NSAgbWZu
-OiAwMDAwNGU3NQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1MV0gICBnZm46IDAwMDA0
-ZTc2ICBtZm46IDAwMDA0ZTc2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjUxXSAgIGdm
-bjogMDAwMDRlNzcgIG1mbjogMDAwMDRlNzcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
-NTFdICAgZ2ZuOiAwMDAwNGU3OCAgbWZuOiAwMDAwNGU3OA0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMjo1MV0gICBnZm46IDAwMDA0ZTc5ICBtZm46IDAwMDA0ZTc5DQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMyOjUxXSAgIGdmbjogMDAwMDRlN2EgIG1mbjogMDAwMDRlN2ENCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTFdICAgZ2ZuOiAwMDAwNGU3YiAgbWZuOiAwMDAw
-NGU3Yg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1MV0gICBnZm46IDAwMDA0ZTdjICBt
-Zm46IDAwMDA0ZTdjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjUxXSAgIGdmbjogMDAw
-MDRlN2QgIG1mbjogMDAwMDRlN2QNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTFdICAg
-Z2ZuOiAwMDAwNGU3ZSAgbWZuOiAwMDAwNGU3ZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-Mjo1MV0gICBnZm46IDAwMDA0ZTdmICBtZm46IDAwMDA0ZTdmDQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMyOjUxXSAgIGdmbjogMDAwMDRlODAgIG1mbjogMDAwMDRlODANCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzI6NTFdICAgZ2ZuOiAwMDAwNGU4MSAgbWZuOiAwMDAwNGU4MQ0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1MV0gICBnZm46IDAwMDA0ZTgyICBtZm46IDAw
-MDA0ZTgyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjUxXSAgIGdmbjogMDAwMDRlODMg
-IG1mbjogMDAwMDRlODMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTFdICAgZ2ZuOiAw
-MDAwNGU4NCAgbWZuOiAwMDAwNGU4NA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1MV0g
-ICBnZm46IDAwMDA0ZTg1ICBtZm46IDAwMDA0ZTg1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMyOjUxXSAgIGdmbjogMDAwMDRlODYgIG1mbjogMDAwMDRlODYNCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzI6NTFdICAgZ2ZuOiAwMDAwNGU4NyAgbWZuOiAwMDAwNGU4Nw0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMjo1MV0gICBnZm46IDAwMDA0ZTg4ICBtZm46IDAwMDA0ZTg4
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjUxXSAgIGdmbjogMDAwMDRlODkgIG1mbjog
-MDAwMDRlODkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTFdICAgZ2ZuOiAwMDAwNGU4
-YSAgbWZuOiAwMDAwNGU4YQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1MV0gICBnZm46
-IDAwMDA0ZThiICBtZm46IDAwMDA0ZThiDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjUx
-XSAgIGdmbjogMDAwMDRlOGMgIG1mbjogMDAwMDRlOGMNCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzI6NTFdICAgZ2ZuOiAwMDAwNGU4ZCAgbWZuOiAwMDAwNGU4ZA0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMjo1MV0gICBnZm46IDAwMDA0ZThlICBtZm46IDAwMDA0ZThlDQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjUxXSAgIGdmbjogMDAwMDRlOGYgIG1mbjogMDAwMDRl
-OGYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTFdICAgZ2ZuOiAwMDAwNGU5MCAgbWZu
-OiAwMDAwNGU5MA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1MV0gICBnZm46IDAwMDA0
-ZTkxICBtZm46IDAwMDA0ZTkxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjUxXSAgIGdm
-bjogMDAwMDRlOTIgIG1mbjogMDAwMDRlOTINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
-NTFdICAgZ2ZuOiAwMDAwNGU5MyAgbWZuOiAwMDAwNGU5Mw0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMjo1MV0gICBnZm46IDAwMDA0ZTk0ICBtZm46IDAwMDA0ZTk0DQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMyOjUxXSAgIGdmbjogMDAwMDRlOTUgIG1mbjogMDAwMDRlOTUNCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTFdICAgZ2ZuOiAwMDAwNGU5NiAgbWZuOiAwMDAw
-NGU5Ng0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1MV0gICBnZm46IDAwMDA0ZTk3ICBt
-Zm46IDAwMDA0ZTk3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjUxXSAgIGdmbjogMDAw
-MDRlOTggIG1mbjogMDAwMDRlOTgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTFdICAg
-Z2ZuOiAwMDAwNGU5OSAgbWZuOiAwMDAwNGU5OQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-Mjo1MV0gICBnZm46IDAwMDA0ZTlhICBtZm46IDAwMDA0ZTlhDQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMyOjUxXSAgIGdmbjogMDAwMDRlOWIgIG1mbjogMDAwMDRlOWINCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzI6NTFdICAgZ2ZuOiAwMDAwNGU5YyAgbWZuOiAwMDAwNGU5Yw0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1MV0gICBnZm46IDAwMDA0ZTlkICBtZm46IDAw
-MDA0ZTlkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjUxXSAgIGdmbjogMDAwMDRlOWUg
-IG1mbjogMDAwMDRlOWUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTFdICAgZ2ZuOiAw
-MDAwNGU5ZiAgbWZuOiAwMDAwNGU5Zg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1MV0g
-ICBnZm46IDAwMDA0ZWEwICBtZm46IDAwMDA0ZWEwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMyOjUxXSAgIGdmbjogMDAwMDRlYTEgIG1mbjogMDAwMDRlYTENCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzI6NTFdICAgZ2ZuOiAwMDAwNGVhMiAgbWZuOiAwMDAwNGVhMg0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMjo1MV0gICBnZm46IDAwMDA0ZWEzICBtZm46IDAwMDA0ZWEz
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjUxXSAgIGdmbjogMDAwMDRlYTQgIG1mbjog
-MDAwMDRlYTQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTFdICAgZ2ZuOiAwMDAwNGVh
-NSAgbWZuOiAwMDAwNGVhNQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1MV0gICBnZm46
-IDAwMDA0ZWE2ICBtZm46IDAwMDA0ZWE2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjUx
-XSAgIGdmbjogMDAwMDRlYTcgIG1mbjogMDAwMDRlYTcNCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzI6NTFdICAgZ2ZuOiAwMDAwNGVhOCAgbWZuOiAwMDAwNGVhOA0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMjo1MV0gICBnZm46IDAwMDA0ZWE5ICBtZm46IDAwMDA0ZWE5DQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjUxXSAgIGdmbjogMDAwMDRlYWEgIG1mbjogMDAwMDRl
-YWENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTFdICAgZ2ZuOiAwMDAwNGVhYiAgbWZu
-OiAwMDAwNGVhYg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1MV0gICBnZm46IDAwMDA0
-ZWFjICBtZm46IDAwMDA0ZWFjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjUyXSAgIGdm
-bjogMDAwMDRlYWQgIG1mbjogMDAwMDRlYWQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
-NTJdICAgZ2ZuOiAwMDAwNGVhZSAgbWZuOiAwMDAwNGVhZQ0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMjo1Ml0gICBnZm46IDAwMDA0ZWFmICBtZm46IDAwMDA0ZWFmDQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMyOjUyXSAgIGdmbjogMDAwMDRlYjAgIG1mbjogMDAwMDRlYjANCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTJdICAgZ2ZuOiAwMDAwNGViMSAgbWZuOiAwMDAw
-NGViMQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1Ml0gICBnZm46IDAwMDA0ZWIyICBt
-Zm46IDAwMDA0ZWIyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjUyXSAgIGdmbjogMDAw
-MDRlYjMgIG1mbjogMDAwMDRlYjMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTJdICAg
-Z2ZuOiAwMDAwNGViNCAgbWZuOiAwMDAwNGViNA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-Mjo1Ml0gICBnZm46IDAwMDA0ZWI1ICBtZm46IDAwMDA0ZWI1DQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMyOjUyXSAgIGdmbjogMDAwMDRlYjYgIG1mbjogMDAwMDRlYjYNCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzI6NTJdICAgZ2ZuOiAwMDAwNGViNyAgbWZuOiAwMDAwNGViNw0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1Ml0gICBnZm46IDAwMDA0ZWI4ICBtZm46IDAw
-MDA0ZWI4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjUyXSAgIGdmbjogMDAwMDRlYjkg
-IG1mbjogMDAwMDRlYjkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTJdICAgZ2ZuOiAw
-MDAwNGViYSAgbWZuOiAwMDAwNGViYQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1Ml0g
-ICBnZm46IDAwMDA0ZWJiICBtZm46IDAwMDA0ZWJiDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMyOjUyXSAgIGdmbjogMDAwMDRlYmMgIG1mbjogMDAwMDRlYmMNCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzI6NTJdICAgZ2ZuOiAwMDAwNGViZCAgbWZuOiAwMDAwNGViZA0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMjo1Ml0gICBnZm46IDAwMDA0ZWJlICBtZm46IDAwMDA0ZWJl
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjUyXSAgIGdmbjogMDAwMDRlYmYgIG1mbjog
-MDAwMDRlYmYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTJdICAgZ2ZuOiAwMDAwNGVj
-MCAgbWZuOiAwMDAwNGVjMA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1Ml0gICBnZm46
-IDAwMDA0ZWMxICBtZm46IDAwMDA0ZWMxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjUy
-XSAgIGdmbjogMDAwMDRlYzIgIG1mbjogMDAwMDRlYzINCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzI6NTJdICAgZ2ZuOiAwMDAwNGVjMyAgbWZuOiAwMDAwNGVjMw0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMjo1Ml0gICBnZm46IDAwMDA0ZWM0ICBtZm46IDAwMDA0ZWM0DQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjUyXSAgIGdmbjogMDAwMDRlYzUgIG1mbjogMDAwMDRl
-YzUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTJdICAgZ2ZuOiAwMDAwNGVjNiAgbWZu
-OiAwMDAwNGVjNg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1Ml0gICBnZm46IDAwMDA0
-ZWM3ICBtZm46IDAwMDA0ZWM3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjUyXSAgIGdm
-bjogMDAwMDRlYzggIG1mbjogMDAwMDRlYzgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
-NTJdICAgZ2ZuOiAwMDAwNGVjOSAgbWZuOiAwMDAwNGVjOQ0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMjo1Ml0gICBnZm46IDAwMDA0ZWNhICBtZm46IDAwMDA0ZWNhDQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMyOjUyXSAgIGdmbjogMDAwMDRlY2IgIG1mbjogMDAwMDRlY2INCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTJdICAgZ2ZuOiAwMDAwNGVjYyAgbWZuOiAwMDAw
-NGVjYw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1Ml0gICBnZm46IDAwMDA0ZWNkICBt
-Zm46IDAwMDA0ZWNkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjUyXSAgIGdmbjogMDAw
-MDRlY2UgIG1mbjogMDAwMDRlY2UNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTJdICAg
-Z2ZuOiAwMDAwNGVjZiAgbWZuOiAwMDAwNGVjZg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-Mjo1Ml0gICBnZm46IDAwMDA0ZWQwICBtZm46IDAwMDA0ZWQwDQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMyOjUyXSAgIGdmbjogMDAwMDRlZDEgIG1mbjogMDAwMDRlZDENCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzI6NTJdICAgZ2ZuOiAwMDAwNGVkMiAgbWZuOiAwMDAwNGVkMg0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1Ml0gICBnZm46IDAwMDA0ZWQzICBtZm46IDAw
-MDA0ZWQzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjUyXSAgIGdmbjogMDAwMDRlZDQg
-IG1mbjogMDAwMDRlZDQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTJdICAgZ2ZuOiAw
-MDAwNGVkNSAgbWZuOiAwMDAwNGVkNQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1Ml0g
-ICBnZm46IDAwMDA0ZWQ2ICBtZm46IDAwMDA0ZWQ2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMyOjUyXSAgIGdmbjogMDAwMDRlZDcgIG1mbjogMDAwMDRlZDcNCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzI6NTJdICAgZ2ZuOiAwMDAwNGVkOCAgbWZuOiAwMDAwNGVkOA0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMjo1Ml0gICBnZm46IDAwMDA0ZWQ5ICBtZm46IDAwMDA0ZWQ5
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjUyXSAgIGdmbjogMDAwMDRlZGEgIG1mbjog
-MDAwMDRlZGENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTJdICAgZ2ZuOiAwMDAwNGVk
-YiAgbWZuOiAwMDAwNGVkYg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1Ml0gICBnZm46
-IDAwMDA0ZWRjICBtZm46IDAwMDA0ZWRjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjUy
-XSAgIGdmbjogMDAwMDRlZGQgIG1mbjogMDAwMDRlZGQNCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzI6NTJdICAgZ2ZuOiAwMDAwNGVkZSAgbWZuOiAwMDAwNGVkZQ0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMjo1Ml0gICBnZm46IDAwMDA0ZWRmICBtZm46IDAwMDA0ZWRmDQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjUyXSAgIGdmbjogMDAwMDRlZTAgIG1mbjogMDAwMDRl
-ZTANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTJdICAgZ2ZuOiAwMDAwNGVlMSAgbWZu
-OiAwMDAwNGVlMQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1Ml0gICBnZm46IDAwMDA0
-ZWUyICBtZm46IDAwMDA0ZWUyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjUyXSAgIGdm
-bjogMDAwMDRlZTMgIG1mbjogMDAwMDRlZTMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
-NTJdICAgZ2ZuOiAwMDAwNGVlNCAgbWZuOiAwMDAwNGVlNA0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMjo1Ml0gICBnZm46IDAwMDA0ZWU1ICBtZm46IDAwMDA0ZWU1DQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMyOjUyXSAgIGdmbjogMDAwMDRlZTYgIG1mbjogMDAwMDRlZTYNCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTJdICAgZ2ZuOiAwMDAwNGVlNyAgbWZuOiAwMDAw
-NGVlNw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1Ml0gICBnZm46IDAwMDA0ZWU4ICBt
-Zm46IDAwMDA0ZWU4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjUyXSAgIGdmbjogMDAw
-MDRlZTkgIG1mbjogMDAwMDRlZTkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTJdICAg
-Z2ZuOiAwMDAwNGVlYSAgbWZuOiAwMDAwNGVlYQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-Mjo1Ml0gICBnZm46IDAwMDA0ZWViICBtZm46IDAwMDA0ZWViDQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMyOjUyXSAgIGdmbjogMDAwMDRlZWMgIG1mbjogMDAwMDRlZWMNCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzI6NTNdICAgZ2ZuOiAwMDAwNGVlZCAgbWZuOiAwMDAwNGVlZA0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1M10gICBnZm46IDAwMDA0ZWVlICBtZm46IDAw
-MDA0ZWVlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjUzXSAgIGdmbjogMDAwMDRlZWYg
-IG1mbjogMDAwMDRlZWYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTNdICAgZ2ZuOiAw
-MDAwNGVmMCAgbWZuOiAwMDAwNGVmMA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1M10g
-ICBnZm46IDAwMDA0ZWYxICBtZm46IDAwMDA0ZWYxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMyOjUzXSAgIGdmbjogMDAwMDRlZjIgIG1mbjogMDAwMDRlZjINCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzI6NTNdICAgZ2ZuOiAwMDAwNGVmMyAgbWZuOiAwMDAwNGVmMw0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMjo1M10gICBnZm46IDAwMDA0ZWY0ICBtZm46IDAwMDA0ZWY0
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjUzXSAgIGdmbjogMDAwMDRlZjUgIG1mbjog
-MDAwMDRlZjUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTNdICAgZ2ZuOiAwMDAwNGVm
-NiAgbWZuOiAwMDAwNGVmNg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1M10gICBnZm46
-IDAwMDA0ZWY3ICBtZm46IDAwMDA0ZWY3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjUz
-XSAgIGdmbjogMDAwMDRlZjggIG1mbjogMDAwMDRlZjgNCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzI6NTNdICAgZ2ZuOiAwMDAwNGVmOSAgbWZuOiAwMDAwNGVmOQ0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMjo1M10gICBnZm46IDAwMDA0ZWZhICBtZm46IDAwMDA0ZWZhDQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjUzXSAgIGdmbjogMDAwMDRlZmIgIG1mbjogMDAwMDRl
-ZmINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTNdICAgZ2ZuOiAwMDAwNGVmYyAgbWZu
-OiAwMDAwNGVmYw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1M10gICBnZm46IDAwMDA0
-ZWZkICBtZm46IDAwMDA0ZWZkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjUzXSAgIGdm
-bjogMDAwMDRlZmUgIG1mbjogMDAwMDRlZmUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
-NTNdICAgZ2ZuOiAwMDAwNGVmZiAgbWZuOiAwMDAwNGVmZg0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMjo1M10gICBnZm46IDAwMDA0ZjAwICBtZm46IDAwMDA0ZjAwDQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMyOjUzXSAgIGdmbjogMDAwMDRmMDEgIG1mbjogMDAwMDRmMDENCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTNdICAgZ2ZuOiAwMDAwNGYwMiAgbWZuOiAwMDAw
-NGYwMg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1M10gICBnZm46IDAwMDA0ZjAzICBt
-Zm46IDAwMDA0ZjAzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjUzXSAgIGdmbjogMDAw
-MDRmMDQgIG1mbjogMDAwMDRmMDQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTNdICAg
-Z2ZuOiAwMDAwNGYwNSAgbWZuOiAwMDAwNGYwNQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-Mjo1M10gICBnZm46IDAwMDA0ZjA2ICBtZm46IDAwMDA0ZjA2DQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMyOjUzXSAgIGdmbjogMDAwMDRmMDcgIG1mbjogMDAwMDRmMDcNCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzI6NTNdICAgZ2ZuOiAwMDAwNGYwOCAgbWZuOiAwMDAwNGYwOA0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1M10gICBnZm46IDAwMDA0ZjA5ICBtZm46IDAw
-MDA0ZjA5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjUzXSAgIGdmbjogMDAwMDRmMGEg
-IG1mbjogMDAwMDRmMGENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTNdICAgZ2ZuOiAw
-MDAwNGYwYiAgbWZuOiAwMDAwNGYwYg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1M10g
-ICBnZm46IDAwMDA0ZjBjICBtZm46IDAwMDA0ZjBjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMyOjUzXSAgIGdmbjogMDAwMDRmMGQgIG1mbjogMDAwMDRmMGQNCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzI6NTNdICAgZ2ZuOiAwMDAwNGYwZSAgbWZuOiAwMDAwNGYwZQ0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMjo1M10gICBnZm46IDAwMDA0ZjBmICBtZm46IDAwMDA0ZjBm
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjUzXSAgIGdmbjogMDAwMDRmMTAgIG1mbjog
-MDAwMDRmMTANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTNdICAgZ2ZuOiAwMDAwNGYx
-MSAgbWZuOiAwMDAwNGYxMQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1M10gICBnZm46
-IDAwMDA0ZjEyICBtZm46IDAwMDA0ZjEyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjUz
-XSAgIGdmbjogMDAwMDRmMTMgIG1mbjogMDAwMDRmMTMNCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzI6NTNdICAgZ2ZuOiAwMDAwNGYxNCAgbWZuOiAwMDAwNGYxNA0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMjo1M10gICBnZm46IDAwMDA0ZjE1ICBtZm46IDAwMDA0ZjE1DQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjUzXSAgIGdmbjogMDAwMDRmMTYgIG1mbjogMDAwMDRm
-MTYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTNdICAgZ2ZuOiAwMDAwNGYxNyAgbWZu
-OiAwMDAwNGYxNw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1M10gICBnZm46IDAwMDA0
-ZjE4ICBtZm46IDAwMDA0ZjE4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjUzXSAgIGdm
-bjogMDAwMDRmMTkgIG1mbjogMDAwMDRmMTkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
-NTNdICAgZ2ZuOiAwMDAwNGYxYSAgbWZuOiAwMDAwNGYxYQ0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMjo1M10gICBnZm46IDAwMDA0ZjFiICBtZm46IDAwMDA0ZjFiDQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMyOjUzXSAgIGdmbjogMDAwMDRmMWMgIG1mbjogMDAwMDRmMWMNCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTNdICAgZ2ZuOiAwMDAwNGYxZCAgbWZuOiAwMDAw
-NGYxZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1M10gICBnZm46IDAwMDA0ZjFlICBt
-Zm46IDAwMDA0ZjFlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjUzXSAgIGdmbjogMDAw
-MDRmMWYgIG1mbjogMDAwMDRmMWYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTNdICAg
-Z2ZuOiAwMDAwNGYyMCAgbWZuOiAwMDAwNGYyMA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-Mjo1M10gICBnZm46IDAwMDA0ZjIxICBtZm46IDAwMDA0ZjIxDQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMyOjUzXSAgIGdmbjogMDAwMDRmMjIgIG1mbjogMDAwMDRmMjINCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzI6NTNdICAgZ2ZuOiAwMDAwNGYyMyAgbWZuOiAwMDAwNGYyMw0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1M10gICBnZm46IDAwMDA0ZjI0ICBtZm46IDAw
-MDA0ZjI0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjUzXSAgIGdmbjogMDAwMDRmMjUg
-IG1mbjogMDAwMDRmMjUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTNdICAgZ2ZuOiAw
-MDAwNGYyNiAgbWZuOiAwMDAwNGYyNg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1M10g
-ICBnZm46IDAwMDA0ZjI3ICBtZm46IDAwMDA0ZjI3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMyOjUzXSAgIGdmbjogMDAwMDRmMjggIG1mbjogMDAwMDRmMjgNCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzI6NTNdICAgZ2ZuOiAwMDAwNGYyOSAgbWZuOiAwMDAwNGYyOQ0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMjo1M10gICBnZm46IDAwMDA0ZjJhICBtZm46IDAwMDA0ZjJh
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjUzXSAgIGdmbjogMDAwMDRmMmIgIG1mbjog
-MDAwMDRmMmINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTNdICAgZ2ZuOiAwMDAwNGYy
-YyAgbWZuOiAwMDAwNGYyYw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1NF0gICBnZm46
-IDAwMDA0ZjJkICBtZm46IDAwMDA0ZjJkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU0
-XSAgIGdmbjogMDAwMDRmMmUgIG1mbjogMDAwMDRmMmUNCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzI6NTRdICAgZ2ZuOiAwMDAwNGYyZiAgbWZuOiAwMDAwNGYyZg0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMjo1NF0gICBnZm46IDAwMDA0ZjMwICBtZm46IDAwMDA0ZjMwDQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU0XSAgIGdmbjogMDAwMDRmMzEgIG1mbjogMDAwMDRm
-MzENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTRdICAgZ2ZuOiAwMDAwNGYzMiAgbWZu
-OiAwMDAwNGYzMg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1NF0gICBnZm46IDAwMDA0
-ZjMzICBtZm46IDAwMDA0ZjMzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU0XSAgIGdm
-bjogMDAwMDRmMzQgIG1mbjogMDAwMDRmMzQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
-NTRdICAgZ2ZuOiAwMDAwNGYzNSAgbWZuOiAwMDAwNGYzNQ0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMjo1NF0gICBnZm46IDAwMDA0ZjM2ICBtZm46IDAwMDA0ZjM2DQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMyOjU0XSAgIGdmbjogMDAwMDRmMzcgIG1mbjogMDAwMDRmMzcNCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTRdICAgZ2ZuOiAwMDAwNGYzOCAgbWZuOiAwMDAw
-NGYzOA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1NF0gICBnZm46IDAwMDA0ZjM5ICBt
-Zm46IDAwMDA0ZjM5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU0XSAgIGdmbjogMDAw
-MDRmM2EgIG1mbjogMDAwMDRmM2ENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTRdICAg
-Z2ZuOiAwMDAwNGYzYiAgbWZuOiAwMDAwNGYzYg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-Mjo1NF0gICBnZm46IDAwMDA0ZjNjICBtZm46IDAwMDA0ZjNjDQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMyOjU0XSAgIGdmbjogMDAwMDRmM2QgIG1mbjogMDAwMDRmM2QNCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzI6NTRdICAgZ2ZuOiAwMDAwNGYzZSAgbWZuOiAwMDAwNGYzZQ0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1NF0gICBnZm46IDAwMDA0ZjNmICBtZm46IDAw
-MDA0ZjNmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU0XSAgIGdmbjogMDAwMDRmNDAg
-IG1mbjogMDAwMDRmNDANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTRdICAgZ2ZuOiAw
-MDAwNGY0MSAgbWZuOiAwMDAwNGY0MQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1NF0g
-ICBnZm46IDAwMDA0ZjQyICBtZm46IDAwMDA0ZjQyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMyOjU0XSAgIGdmbjogMDAwMDRmNDMgIG1mbjogMDAwMDRmNDMNCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzI6NTRdICAgZ2ZuOiAwMDAwNGY0NCAgbWZuOiAwMDAwNGY0NA0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMjo1NF0gICBnZm46IDAwMDA0ZjQ1ICBtZm46IDAwMDA0ZjQ1
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU0XSAgIGdmbjogMDAwMDRmNDYgIG1mbjog
-MDAwMDRmNDYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTRdICAgZ2ZuOiAwMDAwNGY0
-NyAgbWZuOiAwMDAwNGY0Nw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1NF0gICBnZm46
-IDAwMDA0ZjQ4ICBtZm46IDAwMDA0ZjQ4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU0
-XSAgIGdmbjogMDAwMDRmNDkgIG1mbjogMDAwMDRmNDkNCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzI6NTRdICAgZ2ZuOiAwMDAwNGY0YSAgbWZuOiAwMDAwNGY0YQ0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMjo1NF0gICBnZm46IDAwMDA0ZjRiICBtZm46IDAwMDA0ZjRiDQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU0XSAgIGdmbjogMDAwMDRmNGMgIG1mbjogMDAwMDRm
-NGMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTRdICAgZ2ZuOiAwMDAwNGY0ZCAgbWZu
-OiAwMDAwNGY0ZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1NF0gICBnZm46IDAwMDA0
-ZjRlICBtZm46IDAwMDA0ZjRlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU0XSAgIGdm
-bjogMDAwMDRmNGYgIG1mbjogMDAwMDRmNGYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
-NTRdICAgZ2ZuOiAwMDAwNGY1MCAgbWZuOiAwMDAwNGY1MA0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMjo1NF0gICBnZm46IDAwMDA0ZjUxICBtZm46IDAwMDA0ZjUxDQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMyOjU0XSAgIGdmbjogMDAwMDRmNTIgIG1mbjogMDAwMDRmNTINCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTRdICAgZ2ZuOiAwMDAwNGY1MyAgbWZuOiAwMDAw
-NGY1Mw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1NF0gICBnZm46IDAwMDA0ZjU0ICBt
-Zm46IDAwMDA0ZjU0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU0XSAgIGdmbjogMDAw
-MDRmNTUgIG1mbjogMDAwMDRmNTUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTRdICAg
-Z2ZuOiAwMDAwNGY1NiAgbWZuOiAwMDAwNGY1Ng0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-Mjo1NF0gICBnZm46IDAwMDA0ZjU3ICBtZm46IDAwMDA0ZjU3DQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMyOjU0XSAgIGdmbjogMDAwMDRmNTggIG1mbjogMDAwMDRmNTgNCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzI6NTRdICAgZ2ZuOiAwMDAwNGY1OSAgbWZuOiAwMDAwNGY1OQ0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1NF0gICBnZm46IDAwMDA0ZjVhICBtZm46IDAw
-MDA0ZjVhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU0XSAgIGdmbjogMDAwMDRmNWIg
-IG1mbjogMDAwMDRmNWINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTRdICAgZ2ZuOiAw
-MDAwNGY1YyAgbWZuOiAwMDAwNGY1Yw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1NF0g
-ICBnZm46IDAwMDA0ZjVkICBtZm46IDAwMDA0ZjVkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMyOjU0XSAgIGdmbjogMDAwMDRmNWUgIG1mbjogMDAwMDRmNWUNCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzI6NTRdICAgZ2ZuOiAwMDAwNGY1ZiAgbWZuOiAwMDAwNGY1Zg0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMjo1NF0gICBnZm46IDAwMDA0ZjYwICBtZm46IDAwMDA0ZjYw
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU0XSAgIGdmbjogMDAwMDRmNjEgIG1mbjog
-MDAwMDRmNjENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTRdICAgZ2ZuOiAwMDAwNGY2
-MiAgbWZuOiAwMDAwNGY2Mg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1NF0gICBnZm46
-IDAwMDA0ZjYzICBtZm46IDAwMDA0ZjYzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU0
-XSAgIGdmbjogMDAwMDRmNjQgIG1mbjogMDAwMDRmNjQNCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzI6NTRdICAgZ2ZuOiAwMDAwNGY2NSAgbWZuOiAwMDAwNGY2NQ0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMjo1NF0gICBnZm46IDAwMDA0ZjY2ICBtZm46IDAwMDA0ZjY2DQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU0XSAgIGdmbjogMDAwMDRmNjcgIG1mbjogMDAwMDRm
-NjcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTRdICAgZ2ZuOiAwMDAwNGY2OCAgbWZu
-OiAwMDAwNGY2OA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1NF0gICBnZm46IDAwMDA0
-ZjY5ICBtZm46IDAwMDA0ZjY5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU0XSAgIGdm
-bjogMDAwMDRmNmEgIG1mbjogMDAwMDRmNmENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
-NTRdICAgZ2ZuOiAwMDAwNGY2YiAgbWZuOiAwMDAwNGY2Yg0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMjo1NF0gICBnZm46IDAwMDA0ZjZjICBtZm46IDAwMDA0ZjZjDQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMyOjU1XSAgIGdmbjogMDAwMDRmNmQgIG1mbjogMDAwMDRmNmQNCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTVdICAgZ2ZuOiAwMDAwNGY2ZSAgbWZuOiAwMDAw
-NGY2ZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1NV0gICBnZm46IDAwMDA0ZjZmICBt
-Zm46IDAwMDA0ZjZmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU1XSAgIGdmbjogMDAw
-MDRmNzAgIG1mbjogMDAwMDRmNzANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTVdICAg
-Z2ZuOiAwMDAwNGY3MSAgbWZuOiAwMDAwNGY3MQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-Mjo1NV0gICBnZm46IDAwMDA0ZjcyICBtZm46IDAwMDA0ZjcyDQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMyOjU1XSAgIGdmbjogMDAwMDRmNzMgIG1mbjogMDAwMDRmNzMNCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzI6NTVdICAgZ2ZuOiAwMDAwNGY3NCAgbWZuOiAwMDAwNGY3NA0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1NV0gICBnZm46IDAwMDA0Zjc1ICBtZm46IDAw
-MDA0Zjc1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU1XSAgIGdmbjogMDAwMDRmNzYg
-IG1mbjogMDAwMDRmNzYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTVdICAgZ2ZuOiAw
-MDAwNGY3NyAgbWZuOiAwMDAwNGY3Nw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1NV0g
-ICBnZm46IDAwMDA0Zjc4ICBtZm46IDAwMDA0Zjc4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMyOjU1XSAgIGdmbjogMDAwMDRmNzkgIG1mbjogMDAwMDRmNzkNCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzI6NTVdICAgZ2ZuOiAwMDAwNGY3YSAgbWZuOiAwMDAwNGY3YQ0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMjo1NV0gICBnZm46IDAwMDA0ZjdiICBtZm46IDAwMDA0Zjdi
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU1XSAgIGdmbjogMDAwMDRmN2MgIG1mbjog
-MDAwMDRmN2MNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTVdICAgZ2ZuOiAwMDAwNGY3
-ZCAgbWZuOiAwMDAwNGY3ZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1NV0gICBnZm46
-IDAwMDA0ZjdlICBtZm46IDAwMDA0ZjdlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU1
-XSAgIGdmbjogMDAwMDRmN2YgIG1mbjogMDAwMDRmN2YNCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzI6NTVdICAgZ2ZuOiAwMDAwNGY4MCAgbWZuOiAwMDAwNGY4MA0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMjo1NV0gICBnZm46IDAwMDA0ZjgxICBtZm46IDAwMDA0ZjgxDQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU1XSAgIGdmbjogMDAwMDRmODIgIG1mbjogMDAwMDRm
-ODINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTVdICAgZ2ZuOiAwMDAwNGY4MyAgbWZu
-OiAwMDAwNGY4Mw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1NV0gICBnZm46IDAwMDA0
-Zjg0ICBtZm46IDAwMDA0Zjg0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU1XSAgIGdm
-bjogMDAwMDRmODUgIG1mbjogMDAwMDRmODUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
-NTVdICAgZ2ZuOiAwMDAwNGY4NiAgbWZuOiAwMDAwNGY4Ng0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMjo1NV0gICBnZm46IDAwMDA0Zjg3ICBtZm46IDAwMDA0Zjg3DQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMyOjU1XSAgIGdmbjogMDAwMDRmODggIG1mbjogMDAwMDRmODgNCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTVdICAgZ2ZuOiAwMDAwNGY4OSAgbWZuOiAwMDAw
-NGY4OQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1NV0gICBnZm46IDAwMDA0ZjhhICBt
-Zm46IDAwMDA0ZjhhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU1XSAgIGdmbjogMDAw
-MDRmOGIgIG1mbjogMDAwMDRmOGINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTVdICAg
-Z2ZuOiAwMDAwNGY4YyAgbWZuOiAwMDAwNGY4Yw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-Mjo1NV0gICBnZm46IDAwMDA0ZjhkICBtZm46IDAwMDA0ZjhkDQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMyOjU1XSAgIGdmbjogMDAwMDRmOGUgIG1mbjogMDAwMDRmOGUNCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzI6NTVdICAgZ2ZuOiAwMDAwNGY4ZiAgbWZuOiAwMDAwNGY4Zg0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1NV0gICBnZm46IDAwMDA0ZjkwICBtZm46IDAw
-MDA0ZjkwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU1XSAgIGdmbjogMDAwMDRmOTEg
-IG1mbjogMDAwMDRmOTENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTVdICAgZ2ZuOiAw
-MDAwNGY5MiAgbWZuOiAwMDAwNGY5Mg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1NV0g
-ICBnZm46IDAwMDA0ZjkzICBtZm46IDAwMDA0ZjkzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMyOjU1XSAgIGdmbjogMDAwMDRmOTQgIG1mbjogMDAwMDRmOTQNCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzI6NTVdICAgZ2ZuOiAwMDAwNGY5NSAgbWZuOiAwMDAwNGY5NQ0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMjo1NV0gICBnZm46IDAwMDA0Zjk2ICBtZm46IDAwMDA0Zjk2
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU1XSAgIGdmbjogMDAwMDRmOTcgIG1mbjog
-MDAwMDRmOTcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTVdICAgZ2ZuOiAwMDAwNGY5
-OCAgbWZuOiAwMDAwNGY5OA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1NV0gICBnZm46
-IDAwMDA0Zjk5ICBtZm46IDAwMDA0Zjk5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU1
-XSAgIGdmbjogMDAwMDRmOWEgIG1mbjogMDAwMDRmOWENCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzI6NTVdICAgZ2ZuOiAwMDAwNGY5YiAgbWZuOiAwMDAwNGY5Yg0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMjo1NV0gICBnZm46IDAwMDA0ZjljICBtZm46IDAwMDA0ZjljDQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU1XSAgIGdmbjogMDAwMDRmOWQgIG1mbjogMDAwMDRm
-OWQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTVdICAgZ2ZuOiAwMDAwNGY5ZSAgbWZu
-OiAwMDAwNGY5ZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1NV0gICBnZm46IDAwMDA0
-ZjlmICBtZm46IDAwMDA0ZjlmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU1XSAgIGdm
-bjogMDAwMDRmYTAgIG1mbjogMDAwMDRmYTANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
-NTVdICAgZ2ZuOiAwMDAwNGZhMSAgbWZuOiAwMDAwNGZhMQ0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMjo1NV0gICBnZm46IDAwMDA0ZmEyICBtZm46IDAwMDA0ZmEyDQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMyOjU1XSAgIGdmbjogMDAwMDRmYTMgIG1mbjogMDAwMDRmYTMNCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTVdICAgZ2ZuOiAwMDAwNGZhNCAgbWZuOiAwMDAw
-NGZhNA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1NV0gICBnZm46IDAwMDA0ZmE1ICBt
-Zm46IDAwMDA0ZmE1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU1XSAgIGdmbjogMDAw
-MDRmYTYgIG1mbjogMDAwMDRmYTYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTVdICAg
-Z2ZuOiAwMDAwNGZhNyAgbWZuOiAwMDAwNGZhNw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-Mjo1NV0gICBnZm46IDAwMDA0ZmE4ICBtZm46IDAwMDA0ZmE4DQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMyOjU1XSAgIGdmbjogMDAwMDRmYTkgIG1mbjogMDAwMDRmYTkNCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzI6NTVdICAgZ2ZuOiAwMDAwNGZhYSAgbWZuOiAwMDAwNGZhYQ0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1NV0gICBnZm46IDAwMDA0ZmFiICBtZm46IDAw
-MDA0ZmFiDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU1XSAgIGdmbjogMDAwMDRmYWMg
-IG1mbjogMDAwMDRmYWMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTVdICAgZ2ZuOiAw
-MDAwNGZhZCAgbWZuOiAwMDAwNGZhZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1Nl0g
-ICBnZm46IDAwMDA0ZmFlICBtZm46IDAwMDA0ZmFlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMyOjU2XSAgIGdmbjogMDAwMDRmYWYgIG1mbjogMDAwMDRmYWYNCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzI6NTZdICAgZ2ZuOiAwMDAwNGZiMCAgbWZuOiAwMDAwNGZiMA0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMjo1Nl0gICBnZm46IDAwMDA0ZmIxICBtZm46IDAwMDA0ZmIx
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU2XSAgIGdmbjogMDAwMDRmYjIgIG1mbjog
-MDAwMDRmYjINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTZdICAgZ2ZuOiAwMDAwNGZi
-MyAgbWZuOiAwMDAwNGZiMw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1Nl0gICBnZm46
-IDAwMDA0ZmI0ICBtZm46IDAwMDA0ZmI0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU2
-XSAgIGdmbjogMDAwMDRmYjUgIG1mbjogMDAwMDRmYjUNCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzI6NTZdICAgZ2ZuOiAwMDAwNGZiNiAgbWZuOiAwMDAwNGZiNg0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMjo1Nl0gICBnZm46IDAwMDA0ZmI3ICBtZm46IDAwMDA0ZmI3DQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU2XSAgIGdmbjogMDAwMDRmYjggIG1mbjogMDAwMDRm
-YjgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTZdICAgZ2ZuOiAwMDAwNGZiOSAgbWZu
-OiAwMDAwNGZiOQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1Nl0gICBnZm46IDAwMDA0
-ZmJhICBtZm46IDAwMDA0ZmJhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU2XSAgIGdm
-bjogMDAwMDRmYmIgIG1mbjogMDAwMDRmYmINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
-NTZdICAgZ2ZuOiAwMDAwNGZiYyAgbWZuOiAwMDAwNGZiYw0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMjo1Nl0gICBnZm46IDAwMDA0ZmJkICBtZm46IDAwMDA0ZmJkDQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMyOjU2XSAgIGdmbjogMDAwMDRmYmUgIG1mbjogMDAwMDRmYmUNCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTZdICAgZ2ZuOiAwMDAwNGZiZiAgbWZuOiAwMDAw
-NGZiZg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1Nl0gICBnZm46IDAwMDA0ZmMwICBt
-Zm46IDAwMDA0ZmMwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU2XSAgIGdmbjogMDAw
-MDRmYzEgIG1mbjogMDAwMDRmYzENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTZdICAg
-Z2ZuOiAwMDAwNGZjMiAgbWZuOiAwMDAwNGZjMg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-Mjo1Nl0gICBnZm46IDAwMDA0ZmMzICBtZm46IDAwMDA0ZmMzDQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMyOjU2XSAgIGdmbjogMDAwMDRmYzQgIG1mbjogMDAwMDRmYzQNCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzI6NTZdICAgZ2ZuOiAwMDAwNGZjNSAgbWZuOiAwMDAwNGZjNQ0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1Nl0gICBnZm46IDAwMDA0ZmM2ICBtZm46IDAw
-MDA0ZmM2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU2XSAgIGdmbjogMDAwMDRmYzcg
-IG1mbjogMDAwMDRmYzcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTZdICAgZ2ZuOiAw
-MDAwNGZjOCAgbWZuOiAwMDAwNGZjOA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1Nl0g
-ICBnZm46IDAwMDA0ZmM5ICBtZm46IDAwMDA0ZmM5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMyOjU2XSAgIGdmbjogMDAwMDRmY2EgIG1mbjogMDAwMDRmY2ENCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzI6NTZdICAgZ2ZuOiAwMDAwNGZjYiAgbWZuOiAwMDAwNGZjYg0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMjo1Nl0gICBnZm46IDAwMDA0ZmNjICBtZm46IDAwMDA0ZmNj
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU2XSAgIGdmbjogMDAwMDRmY2QgIG1mbjog
-MDAwMDRmY2QNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTZdICAgZ2ZuOiAwMDAwNGZj
-ZSAgbWZuOiAwMDAwNGZjZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1Nl0gICBnZm46
-IDAwMDA0ZmNmICBtZm46IDAwMDA0ZmNmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU2
-XSAgIGdmbjogMDAwMDRmZDAgIG1mbjogMDAwMDRmZDANCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzI6NTZdICAgZ2ZuOiAwMDAwNGZkMSAgbWZuOiAwMDAwNGZkMQ0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMjo1Nl0gICBnZm46IDAwMDA0ZmQyICBtZm46IDAwMDA0ZmQyDQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU2XSAgIGdmbjogMDAwMDRmZDMgIG1mbjogMDAwMDRm
-ZDMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTZdICAgZ2ZuOiAwMDAwNGZkNCAgbWZu
-OiAwMDAwNGZkNA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1Nl0gICBnZm46IDAwMDA0
-ZmQ1ICBtZm46IDAwMDA0ZmQ1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU2XSAgIGdm
-bjogMDAwMDRmZDYgIG1mbjogMDAwMDRmZDYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
-NTZdICAgZ2ZuOiAwMDAwNGZkNyAgbWZuOiAwMDAwNGZkNw0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMjo1Nl0gICBnZm46IDAwMDA0ZmQ4ICBtZm46IDAwMDA0ZmQ4DQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMyOjU2XSAgIGdmbjogMDAwMDRmZDkgIG1mbjogMDAwMDRmZDkNCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTZdICAgZ2ZuOiAwMDAwNGZkYSAgbWZuOiAwMDAw
-NGZkYQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1Nl0gICBnZm46IDAwMDA0ZmRiICBt
-Zm46IDAwMDA0ZmRiDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU2XSAgIGdmbjogMDAw
-MDRmZGMgIG1mbjogMDAwMDRmZGMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTZdICAg
-Z2ZuOiAwMDAwNGZkZCAgbWZuOiAwMDAwNGZkZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-Mjo1Nl0gICBnZm46IDAwMDA0ZmRlICBtZm46IDAwMDA0ZmRlDQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMyOjU2XSAgIGdmbjogMDAwMDRmZGYgIG1mbjogMDAwMDRmZGYNCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzI6NTZdICAgZ2ZuOiAwMDAwNGZlMCAgbWZuOiAwMDAwNGZlMA0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1Nl0gICBnZm46IDAwMDA0ZmUxICBtZm46IDAw
-MDA0ZmUxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU2XSAgIGdmbjogMDAwMDRmZTIg
-IG1mbjogMDAwMDRmZTINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTZdICAgZ2ZuOiAw
-MDAwNGZlMyAgbWZuOiAwMDAwNGZlMw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1Nl0g
-ICBnZm46IDAwMDA0ZmU0ICBtZm46IDAwMDA0ZmU0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMyOjU2XSAgIGdmbjogMDAwMDRmZTUgIG1mbjogMDAwMDRmZTUNCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzI6NTZdICAgZ2ZuOiAwMDAwNGZlNiAgbWZuOiAwMDAwNGZlNg0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMjo1Nl0gICBnZm46IDAwMDA0ZmU3ICBtZm46IDAwMDA0ZmU3
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU2XSAgIGdmbjogMDAwMDRmZTggIG1mbjog
-MDAwMDRmZTgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTZdICAgZ2ZuOiAwMDAwNGZl
-OSAgbWZuOiAwMDAwNGZlOQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1Nl0gICBnZm46
-IDAwMDA0ZmVhICBtZm46IDAwMDA0ZmVhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU2
-XSAgIGdmbjogMDAwMDRmZWIgIG1mbjogMDAwMDRmZWINCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzI6NTZdICAgZ2ZuOiAwMDAwNGZlYyAgbWZuOiAwMDAwNGZlYw0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMjo1Nl0gICBnZm46IDAwMDA0ZmVkICBtZm46IDAwMDA0ZmVkDQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU3XSAgIGdmbjogMDAwMDRmZWUgIG1mbjogMDAwMDRm
-ZWUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTddICAgZ2ZuOiAwMDAwNGZlZiAgbWZu
-OiAwMDAwNGZlZg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1N10gICBnZm46IDAwMDA0
-ZmYwICBtZm46IDAwMDA0ZmYwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU3XSAgIGdm
-bjogMDAwMDRmZjEgIG1mbjogMDAwMDRmZjENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
-NTddICAgZ2ZuOiAwMDAwNGZmMiAgbWZuOiAwMDAwNGZmMg0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMjo1N10gICBnZm46IDAwMDA0ZmYzICBtZm46IDAwMDA0ZmYzDQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMyOjU3XSAgIGdmbjogMDAwMDRmZjQgIG1mbjogMDAwMDRmZjQNCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTddICAgZ2ZuOiAwMDAwNGZmNSAgbWZuOiAwMDAw
-NGZmNQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1N10gICBnZm46IDAwMDA0ZmY2ICBt
-Zm46IDAwMDA0ZmY2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU3XSAgIGdmbjogMDAw
-MDRmZjcgIG1mbjogMDAwMDRmZjcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTddICAg
-Z2ZuOiAwMDAwNGZmOCAgbWZuOiAwMDAwNGZmOA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-Mjo1N10gICBnZm46IDAwMDA0ZmY5ICBtZm46IDAwMDA0ZmY5DQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMyOjU3XSAgIGdmbjogMDAwMDRmZmEgIG1mbjogMDAwMDRmZmENCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzI6NTddICAgZ2ZuOiAwMDAwNGZmYiAgbWZuOiAwMDAwNGZmYg0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1N10gICBnZm46IDAwMDA0ZmZjICBtZm46IDAw
-MDA0ZmZjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU3XSAgIGdmbjogMDAwMDRmZmQg
-IG1mbjogMDAwMDRmZmQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTddICAgZ2ZuOiAw
-MDAwNGZmZSAgbWZuOiAwMDAwNGZmZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1N10g
-ICBnZm46IDAwMDA0ZmZmICBtZm46IDAwMDA0ZmZmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMyOjU3XSAgIGdmbjogMDAwMDUwMDAgIG1mbjogMDAwMDUwMDANCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzI6NTddICAgZ2ZuOiAwMDAwNTAwMSAgbWZuOiAwMDAwNTAwMQ0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMjo1N10gICBnZm46IDAwMDA1MDAyICBtZm46IDAwMDA1MDAy
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU3XSAgIGdmbjogMDAwMDUwMDMgIG1mbjog
-MDAwMDUwMDMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTddICAgZ2ZuOiAwMDAwNTAw
-NCAgbWZuOiAwMDAwNTAwNA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1N10gICBnZm46
-IDAwMDA1MDA1ICBtZm46IDAwMDA1MDA1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU3
-XSAgIGdmbjogMDAwMDUwMDYgIG1mbjogMDAwMDUwMDYNCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzI6NTddICAgZ2ZuOiAwMDAwNTAwNyAgbWZuOiAwMDAwNTAwNw0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMjo1N10gICBnZm46IDAwMDA1MDA4ICBtZm46IDAwMDA1MDA4DQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU3XSAgIGdmbjogMDAwMDUwMDkgIG1mbjogMDAwMDUw
-MDkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTddICAgZ2ZuOiAwMDAwNTAwYSAgbWZu
-OiAwMDAwNTAwYQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1N10gICBnZm46IDAwMDA1
-MDBiICBtZm46IDAwMDA1MDBiDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU3XSAgIGdm
-bjogMDAwMDUwMGMgIG1mbjogMDAwMDUwMGMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
-NTddICAgZ2ZuOiAwMDAwNTAwZCAgbWZuOiAwMDAwNTAwZA0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMjo1N10gICBnZm46IDAwMDA1MDBlICBtZm46IDAwMDA1MDBlDQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMyOjU3XSAgIGdmbjogMDAwMDUwMGYgIG1mbjogMDAwMDUwMGYNCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTddICAgZ2ZuOiAwMDAwNTAxMCAgbWZuOiAwMDAw
-NTAxMA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1N10gICBnZm46IDAwMDA1MDExICBt
-Zm46IDAwMDA1MDExDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU3XSAgIGdmbjogMDAw
-MDUwMTIgIG1mbjogMDAwMDUwMTINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTddICAg
-Z2ZuOiAwMDAwNTAxMyAgbWZuOiAwMDAwNTAxMw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-Mjo1N10gICBnZm46IDAwMDA1MDE0ICBtZm46IDAwMDA1MDE0DQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMyOjU3XSAgIGdmbjogMDAwMDUwMTUgIG1mbjogMDAwMDUwMTUNCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzI6NTddICAgZ2ZuOiAwMDAwNTAxNiAgbWZuOiAwMDAwNTAxNg0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1N10gICBnZm46IDAwMDA1MDE3ICBtZm46IDAw
-MDA1MDE3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU3XSAgIGdmbjogMDAwMDUwMTgg
-IG1mbjogMDAwMDUwMTgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTddICAgZ2ZuOiAw
-MDAwNTAxOSAgbWZuOiAwMDAwNTAxOQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1N10g
-ICBnZm46IDAwMDA1MDFhICBtZm46IDAwMDA1MDFhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMyOjU3XSAgIGdmbjogMDAwMDUwMWIgIG1mbjogMDAwMDUwMWINCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzI6NTddICAgZ2ZuOiAwMDAwNTAxYyAgbWZuOiAwMDAwNTAxYw0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMjo1N10gICBnZm46IDAwMDA1MDFkICBtZm46IDAwMDA1MDFk
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU3XSAgIGdmbjogMDAwMDUwMWUgIG1mbjog
-MDAwMDUwMWUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTddICAgZ2ZuOiAwMDAwNTAx
-ZiAgbWZuOiAwMDAwNTAxZg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1N10gICBnZm46
-IDAwMDA1MDIwICBtZm46IDAwMDA1MDIwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU3
-XSAgIGdmbjogMDAwMDUwMjEgIG1mbjogMDAwMDUwMjENCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzI6NTddICAgZ2ZuOiAwMDAwNTAyMiAgbWZuOiAwMDAwNTAyMg0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMjo1N10gICBnZm46IDAwMDA1MDIzICBtZm46IDAwMDA1MDIzDQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU3XSAgIGdmbjogMDAwMDUwMjQgIG1mbjogMDAwMDUw
-MjQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTddICAgZ2ZuOiAwMDAwNTAyNSAgbWZu
-OiAwMDAwNTAyNQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1N10gICBnZm46IDAwMDA1
-MDI2ICBtZm46IDAwMDA1MDI2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU3XSAgIGdm
-bjogMDAwMDUwMjcgIG1mbjogMDAwMDUwMjcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
-NTddICAgZ2ZuOiAwMDAwNTAyOCAgbWZuOiAwMDAwNTAyOA0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMjo1N10gICBnZm46IDAwMDA1MDI5ICBtZm46IDAwMDA1MDI5DQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMyOjU3XSAgIGdmbjogMDAwMDUwMmEgIG1mbjogMDAwMDUwMmENCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTddICAgZ2ZuOiAwMDAwNTAyYiAgbWZuOiAwMDAw
-NTAyYg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1N10gICBnZm46IDAwMDA1MDJjICBt
-Zm46IDAwMDA1MDJjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU3XSAgIGdmbjogMDAw
-MDUwMmQgIG1mbjogMDAwMDUwMmQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NThdICAg
-Z2ZuOiAwMDAwNTAyZSAgbWZuOiAwMDAwNTAyZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-Mjo1OF0gICBnZm46IDAwMDA1MDJmICBtZm46IDAwMDA1MDJmDQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMyOjU4XSAgIGdmbjogMDAwMDUwMzAgIG1mbjogMDAwMDUwMzANCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzI6NThdICAgZ2ZuOiAwMDAwNTAzMSAgbWZuOiAwMDAwNTAzMQ0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1OF0gICBnZm46IDAwMDA1MDMyICBtZm46IDAw
-MDA1MDMyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU4XSAgIGdmbjogMDAwMDUwMzMg
-IG1mbjogMDAwMDUwMzMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NThdICAgZ2ZuOiAw
-MDAwNTAzNCAgbWZuOiAwMDAwNTAzNA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1OF0g
-ICBnZm46IDAwMDA1MDM1ICBtZm46IDAwMDA1MDM1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMyOjU4XSAgIGdmbjogMDAwMDUwMzYgIG1mbjogMDAwMDUwMzYNCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzI6NThdICAgZ2ZuOiAwMDAwNTAzNyAgbWZuOiAwMDAwNTAzNw0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMjo1OF0gICBnZm46IDAwMDA1MDM4ICBtZm46IDAwMDA1MDM4
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU4XSAgIGdmbjogMDAwMDUwMzkgIG1mbjog
-MDAwMDUwMzkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NThdICAgZ2ZuOiAwMDAwNTAz
-YSAgbWZuOiAwMDAwNTAzYQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1OF0gICBnZm46
-IDAwMDA1MDNiICBtZm46IDAwMDA1MDNiDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU4
-XSAgIGdmbjogMDAwMDUwM2MgIG1mbjogMDAwMDUwM2MNCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzI6NThdICAgZ2ZuOiAwMDAwNTAzZCAgbWZuOiAwMDAwNTAzZA0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMjo1OF0gICBnZm46IDAwMDA1MDNlICBtZm46IDAwMDA1MDNlDQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU4XSAgIGdmbjogMDAwMDUwM2YgIG1mbjogMDAwMDUw
-M2YNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NThdICAgZ2ZuOiAwMDAwNTA0MCAgbWZu
-OiAwMDAwNTA0MA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1OF0gICBnZm46IDAwMDA1
-MDQxICBtZm46IDAwMDA1MDQxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU4XSAgIGdm
-bjogMDAwMDUwNDIgIG1mbjogMDAwMDUwNDINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
-NThdICAgZ2ZuOiAwMDAwNTA0MyAgbWZuOiAwMDAwNTA0Mw0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMjo1OF0gICBnZm46IDAwMDA1MDQ0ICBtZm46IDAwMDA1MDQ0DQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMyOjU4XSAgIGdmbjogMDAwMDUwNDUgIG1mbjogMDAwMDUwNDUNCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NThdICAgZ2ZuOiAwMDAwNTA0NiAgbWZuOiAwMDAw
-NTA0Ng0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1OF0gICBnZm46IDAwMDA1MDQ3ICBt
-Zm46IDAwMDA1MDQ3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU4XSAgIGdmbjogMDAw
-MDUwNDggIG1mbjogMDAwMDUwNDgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NThdICAg
-Z2ZuOiAwMDAwNTA0OSAgbWZuOiAwMDAwNTA0OQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-Mjo1OF0gICBnZm46IDAwMDA1MDRhICBtZm46IDAwMDA1MDRhDQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMyOjU4XSAgIGdmbjogMDAwMDUwNGIgIG1mbjogMDAwMDUwNGINCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzI6NThdICAgZ2ZuOiAwMDAwNTA0YyAgbWZuOiAwMDAwNTA0Yw0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1OF0gICBnZm46IDAwMDA1MDRkICBtZm46IDAw
-MDA1MDRkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU4XSAgIGdmbjogMDAwMDUwNGUg
-IG1mbjogMDAwMDUwNGUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NThdICAgZ2ZuOiAw
-MDAwNTA0ZiAgbWZuOiAwMDAwNTA0Zg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1OF0g
-ICBnZm46IDAwMDA1MDUwICBtZm46IDAwMDA1MDUwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMyOjU4XSAgIGdmbjogMDAwMDUwNTEgIG1mbjogMDAwMDUwNTENCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzI6NThdICAgZ2ZuOiAwMDAwNTA1MiAgbWZuOiAwMDAwNTA1Mg0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMjo1OF0gICBnZm46IDAwMDA1MDUzICBtZm46IDAwMDA1MDUz
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU4XSAgIGdmbjogMDAwMDUwNTQgIG1mbjog
-MDAwMDUwNTQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NThdICAgZ2ZuOiAwMDAwNTA1
-NSAgbWZuOiAwMDAwNTA1NQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1OF0gICBnZm46
-IDAwMDA1MDU2ICBtZm46IDAwMDA1MDU2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU4
-XSAgIGdmbjogMDAwMDUwNTcgIG1mbjogMDAwMDUwNTcNCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzI6NThdICAgZ2ZuOiAwMDAwNTA1OCAgbWZuOiAwMDAwNTA1OA0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMjo1OF0gICBnZm46IDAwMDA1MDU5ICBtZm46IDAwMDA1MDU5DQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU4XSAgIGdmbjogMDAwMDUwNWEgIG1mbjogMDAwMDUw
-NWENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NThdICAgZ2ZuOiAwMDAwNTA1YiAgbWZu
-OiAwMDAwNTA1Yg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1OF0gICBnZm46IDAwMDA1
-MDVjICBtZm46IDAwMDA1MDVjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU4XSAgIGdm
-bjogMDAwMDUwNWQgIG1mbjogMDAwMDUwNWQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
-NThdICAgZ2ZuOiAwMDAwNTA1ZSAgbWZuOiAwMDAwNTA1ZQ0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMjo1OF0gICBnZm46IDAwMDA1MDVmICBtZm46IDAwMDA1MDVmDQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMyOjU4XSAgIGdmbjogMDAwMDUwNjAgIG1mbjogMDAwMDUwNjANCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NThdICAgZ2ZuOiAwMDAwNTA2MSAgbWZuOiAwMDAw
-NTA2MQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1OF0gICBnZm46IDAwMDA1MDYyICBt
-Zm46IDAwMDA1MDYyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU4XSAgIGdmbjogMDAw
-MDUwNjMgIG1mbjogMDAwMDUwNjMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NThdICAg
-Z2ZuOiAwMDAwNTA2NCAgbWZuOiAwMDAwNTA2NA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-Mjo1OF0gICBnZm46IDAwMDA1MDY1ICBtZm46IDAwMDA1MDY1DQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMyOjU4XSAgIGdmbjogMDAwMDUwNjYgIG1mbjogMDAwMDUwNjYNCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzI6NThdICAgZ2ZuOiAwMDAwNTA2NyAgbWZuOiAwMDAwNTA2Nw0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1OF0gICBnZm46IDAwMDA1MDY4ICBtZm46IDAw
-MDA1MDY4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU4XSAgIGdmbjogMDAwMDUwNjkg
-IG1mbjogMDAwMDUwNjkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NThdICAgZ2ZuOiAw
-MDAwNTA2YSAgbWZuOiAwMDAwNTA2YQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1OF0g
-ICBnZm46IDAwMDA1MDZiICBtZm46IDAwMDA1MDZiDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMyOjU4XSAgIGdmbjogMDAwMDUwNmMgIG1mbjogMDAwMDUwNmMNCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzI6NThdICAgZ2ZuOiAwMDAwNTA2ZCAgbWZuOiAwMDAwNTA2ZA0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMjo1OV0gICBnZm46IDAwMDA1MDZlICBtZm46IDAwMDA1MDZl
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU5XSAgIGdmbjogMDAwMDUwNmYgIG1mbjog
-MDAwMDUwNmYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTldICAgZ2ZuOiAwMDAwNTA3
-MCAgbWZuOiAwMDAwNTA3MA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1OV0gICBnZm46
-IDAwMDA1MDcxICBtZm46IDAwMDA1MDcxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU5
-XSAgIGdmbjogMDAwMDUwNzIgIG1mbjogMDAwMDUwNzINCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzI6NTldICAgZ2ZuOiAwMDAwNTA3MyAgbWZuOiAwMDAwNTA3Mw0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMjo1OV0gICBnZm46IDAwMDA1MDc0ICBtZm46IDAwMDA1MDc0DQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU5XSAgIGdmbjogMDAwMDUwNzUgIG1mbjogMDAwMDUw
-NzUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTldICAgZ2ZuOiAwMDAwNTA3NiAgbWZu
-OiAwMDAwNTA3Ng0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1OV0gICBnZm46IDAwMDA1
-MDc3ICBtZm46IDAwMDA1MDc3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU5XSAgIGdm
-bjogMDAwMDUwNzggIG1mbjogMDAwMDUwNzgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
-NTldICAgZ2ZuOiAwMDAwNTA3OSAgbWZuOiAwMDAwNTA3OQ0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMjo1OV0gICBnZm46IDAwMDA1MDdhICBtZm46IDAwMDA1MDdhDQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMyOjU5XSAgIGdmbjogMDAwMDUwN2IgIG1mbjogMDAwMDUwN2INCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTldICAgZ2ZuOiAwMDAwNTA3YyAgbWZuOiAwMDAw
-NTA3Yw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1OV0gICBnZm46IDAwMDA1MDdkICBt
-Zm46IDAwMDA1MDdkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU5XSAgIGdmbjogMDAw
-MDUwN2UgIG1mbjogMDAwMDUwN2UNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTldICAg
-Z2ZuOiAwMDAwNTA3ZiAgbWZuOiAwMDAwNTA3Zg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-Mjo1OV0gICBnZm46IDAwMDA1MDgwICBtZm46IDAwMDA1MDgwDQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMyOjU5XSAgIGdmbjogMDAwMDUwODEgIG1mbjogMDAwMDUwODENCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzI6NTldICAgZ2ZuOiAwMDAwNTA4MiAgbWZuOiAwMDAwNTA4Mg0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1OV0gICBnZm46IDAwMDA1MDgzICBtZm46IDAw
-MDA1MDgzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU5XSAgIGdmbjogMDAwMDUwODQg
-IG1mbjogMDAwMDUwODQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTldICAgZ2ZuOiAw
-MDAwNTA4NSAgbWZuOiAwMDAwNTA4NQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1OV0g
-ICBnZm46IDAwMDA1MDg2ICBtZm46IDAwMDA1MDg2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMyOjU5XSAgIGdmbjogMDAwMDUwODcgIG1mbjogMDAwMDUwODcNCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzI6NTldICAgZ2ZuOiAwMDAwNTA4OCAgbWZuOiAwMDAwNTA4OA0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMjo1OV0gICBnZm46IDAwMDA1MDg5ICBtZm46IDAwMDA1MDg5
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU5XSAgIGdmbjogMDAwMDUwOGEgIG1mbjog
-MDAwMDUwOGENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTldICAgZ2ZuOiAwMDAwNTA4
-YiAgbWZuOiAwMDAwNTA4Yg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1OV0gICBnZm46
-IDAwMDA1MDhjICBtZm46IDAwMDA1MDhjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU5
-XSAgIGdmbjogMDAwMDUwOGQgIG1mbjogMDAwMDUwOGQNCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzI6NTldICAgZ2ZuOiAwMDAwNTA4ZSAgbWZuOiAwMDAwNTA4ZQ0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMjo1OV0gICBnZm46IDAwMDA1MDhmICBtZm46IDAwMDA1MDhmDQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU5XSAgIGdmbjogMDAwMDUwOTAgIG1mbjogMDAwMDUw
-OTANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTldICAgZ2ZuOiAwMDAwNTA5MSAgbWZu
-OiAwMDAwNTA5MQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1OV0gICBnZm46IDAwMDA1
-MDkyICBtZm46IDAwMDA1MDkyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU5XSAgIGdm
-bjogMDAwMDUwOTMgIG1mbjogMDAwMDUwOTMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6
-NTldICAgZ2ZuOiAwMDAwNTA5NCAgbWZuOiAwMDAwNTA5NA0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMjo1OV0gICBnZm46IDAwMDA1MDk1ICBtZm46IDAwMDA1MDk1DQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMyOjU5XSAgIGdmbjogMDAwMDUwOTYgIG1mbjogMDAwMDUwOTYNCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTldICAgZ2ZuOiAwMDAwNTA5NyAgbWZuOiAwMDAw
-NTA5Nw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1OV0gICBnZm46IDAwMDA1MDk4ICBt
-Zm46IDAwMDA1MDk4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU5XSAgIGdmbjogMDAw
-MDUwOTkgIG1mbjogMDAwMDUwOTkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTldICAg
-Z2ZuOiAwMDAwNTA5YSAgbWZuOiAwMDAwNTA5YQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-Mjo1OV0gICBnZm46IDAwMDA1MDliICBtZm46IDAwMDA1MDliDQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMyOjU5XSAgIGdmbjogMDAwMDUwOWMgIG1mbjogMDAwMDUwOWMNCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzI6NTldICAgZ2ZuOiAwMDAwNTA5ZCAgbWZuOiAwMDAwNTA5ZA0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1OV0gICBnZm46IDAwMDA1MDllICBtZm46IDAw
-MDA1MDllDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU5XSAgIGdmbjogMDAwMDUwOWYg
-IG1mbjogMDAwMDUwOWYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTldICAgZ2ZuOiAw
-MDAwNTBhMCAgbWZuOiAwMDAwNTBhMA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1OV0g
-ICBnZm46IDAwMDA1MGExICBtZm46IDAwMDA1MGExDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMyOjU5XSAgIGdmbjogMDAwMDUwYTIgIG1mbjogMDAwMDUwYTINCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzI6NTldICAgZ2ZuOiAwMDAwNTBhMyAgbWZuOiAwMDAwNTBhMw0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMjo1OV0gICBnZm46IDAwMDA1MGE0ICBtZm46IDAwMDA1MGE0
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU5XSAgIGdmbjogMDAwMDUwYTUgIG1mbjog
-MDAwMDUwYTUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTldICAgZ2ZuOiAwMDAwNTBh
-NiAgbWZuOiAwMDAwNTBhNg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1OV0gICBnZm46
-IDAwMDA1MGE3ICBtZm46IDAwMDA1MGE3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU5
-XSAgIGdmbjogMDAwMDUwYTggIG1mbjogMDAwMDUwYTgNCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzI6NTldICAgZ2ZuOiAwMDAwNTBhOSAgbWZuOiAwMDAwNTBhOQ0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMjo1OV0gICBnZm46IDAwMDA1MGFhICBtZm46IDAwMDA1MGFhDQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMyOjU5XSAgIGdmbjogMDAwMDUwYWIgIG1mbjogMDAwMDUw
-YWINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzI6NTldICAgZ2ZuOiAwMDAwNTBhYyAgbWZu
-OiAwMDAwNTBhYw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMjo1OV0gICBnZm46IDAwMDA1
-MGFkICBtZm46IDAwMDA1MGFkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjAwXSAgIGdm
-bjogMDAwMDUwYWUgIG1mbjogMDAwMDUwYWUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6
-MDBdICAgZ2ZuOiAwMDAwNTBhZiAgbWZuOiAwMDAwNTBhZg0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMzowMF0gICBnZm46IDAwMDA1MGIwICBtZm46IDAwMDA1MGIwDQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMzOjAwXSAgIGdmbjogMDAwMDUwYjEgIG1mbjogMDAwMDUwYjENCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDBdICAgZ2ZuOiAwMDAwNTBiMiAgbWZuOiAwMDAw
-NTBiMg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowMF0gICBnZm46IDAwMDA1MGIzICBt
-Zm46IDAwMDA1MGIzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjAwXSAgIGdmbjogMDAw
-MDUwYjQgIG1mbjogMDAwMDUwYjQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDBdICAg
-Z2ZuOiAwMDAwNTBiNSAgbWZuOiAwMDAwNTBiNQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-MzowMF0gICBnZm46IDAwMDA1MGI2ICBtZm46IDAwMDA1MGI2DQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMzOjAwXSAgIGdmbjogMDAwMDUwYjcgIG1mbjogMDAwMDUwYjcNCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzM6MDBdICAgZ2ZuOiAwMDAwNTBiOCAgbWZuOiAwMDAwNTBiOA0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowMF0gICBnZm46IDAwMDA1MGI5ICBtZm46IDAw
-MDA1MGI5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjAwXSAgIGdmbjogMDAwMDUwYmEg
-IG1mbjogMDAwMDUwYmENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDBdICAgZ2ZuOiAw
-MDAwNTBiYiAgbWZuOiAwMDAwNTBiYg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowMF0g
-ICBnZm46IDAwMDA1MGJjICBtZm46IDAwMDA1MGJjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMzOjAwXSAgIGdmbjogMDAwMDUwYmQgIG1mbjogMDAwMDUwYmQNCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzM6MDBdICAgZ2ZuOiAwMDAwNTBiZSAgbWZuOiAwMDAwNTBiZQ0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMzowMF0gICBnZm46IDAwMDA1MGJmICBtZm46IDAwMDA1MGJm
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjAwXSAgIGdmbjogMDAwMDUwYzAgIG1mbjog
-MDAwMDUwYzANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDBdICAgZ2ZuOiAwMDAwNTBj
-MSAgbWZuOiAwMDAwNTBjMQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowMF0gICBnZm46
-IDAwMDA1MGMyICBtZm46IDAwMDA1MGMyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjAw
-XSAgIGdmbjogMDAwMDUwYzMgIG1mbjogMDAwMDUwYzMNCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzM6MDBdICAgZ2ZuOiAwMDAwNTBjNCAgbWZuOiAwMDAwNTBjNA0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMzowMF0gICBnZm46IDAwMDA1MGM1ICBtZm46IDAwMDA1MGM1DQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMzOjAwXSAgIGdmbjogMDAwMDUwYzYgIG1mbjogMDAwMDUw
-YzYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDBdICAgZ2ZuOiAwMDAwNTBjNyAgbWZu
-OiAwMDAwNTBjNw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowMF0gICBnZm46IDAwMDA1
-MGM4ICBtZm46IDAwMDA1MGM4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjAwXSAgIGdm
-bjogMDAwMDUwYzkgIG1mbjogMDAwMDUwYzkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6
-MDBdICAgZ2ZuOiAwMDAwNTBjYSAgbWZuOiAwMDAwNTBjYQ0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMzowMF0gICBnZm46IDAwMDA1MGNiICBtZm46IDAwMDA1MGNiDQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMzOjAwXSAgIGdmbjogMDAwMDUwY2MgIG1mbjogMDAwMDUwY2MNCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDBdICAgZ2ZuOiAwMDAwNTBjZCAgbWZuOiAwMDAw
-NTBjZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowMF0gICBnZm46IDAwMDA1MGNlICBt
-Zm46IDAwMDA1MGNlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjAwXSAgIGdmbjogMDAw
-MDUwY2YgIG1mbjogMDAwMDUwY2YNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDBdICAg
-Z2ZuOiAwMDAwNTBkMCAgbWZuOiAwMDAwNTBkMA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-MzowMF0gICBnZm46IDAwMDA1MGQxICBtZm46IDAwMDA1MGQxDQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMzOjAwXSAgIGdmbjogMDAwMDUwZDIgIG1mbjogMDAwMDUwZDINCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzM6MDBdICAgZ2ZuOiAwMDAwNTBkMyAgbWZuOiAwMDAwNTBkMw0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowMF0gICBnZm46IDAwMDA1MGQ0ICBtZm46IDAw
-MDA1MGQ0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjAwXSAgIGdmbjogMDAwMDUwZDUg
-IG1mbjogMDAwMDUwZDUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDBdICAgZ2ZuOiAw
-MDAwNTBkNiAgbWZuOiAwMDAwNTBkNg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowMF0g
-ICBnZm46IDAwMDA1MGQ3ICBtZm46IDAwMDA1MGQ3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMzOjAwXSAgIGdmbjogMDAwMDUwZDggIG1mbjogMDAwMDUwZDgNCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzM6MDBdICAgZ2ZuOiAwMDAwNTBkOSAgbWZuOiAwMDAwNTBkOQ0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMzowMF0gICBnZm46IDAwMDA1MGRhICBtZm46IDAwMDA1MGRh
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjAwXSAgIGdmbjogMDAwMDUwZGIgIG1mbjog
-MDAwMDUwZGINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDBdICAgZ2ZuOiAwMDAwNTBk
-YyAgbWZuOiAwMDAwNTBkYw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowMF0gICBnZm46
-IDAwMDA1MGRkICBtZm46IDAwMDA1MGRkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjAw
-XSAgIGdmbjogMDAwMDUwZGUgIG1mbjogMDAwMDUwZGUNCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzM6MDBdICAgZ2ZuOiAwMDAwNTBkZiAgbWZuOiAwMDAwNTBkZg0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMzowMF0gICBnZm46IDAwMDA1MGUwICBtZm46IDAwMDA1MGUwDQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMzOjAwXSAgIGdmbjogMDAwMDUwZTEgIG1mbjogMDAwMDUw
-ZTENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDBdICAgZ2ZuOiAwMDAwNTBlMiAgbWZu
-OiAwMDAwNTBlMg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowMF0gICBnZm46IDAwMDA1
-MGUzICBtZm46IDAwMDA1MGUzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjAwXSAgIGdm
-bjogMDAwMDUwZTQgIG1mbjogMDAwMDUwZTQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6
-MDBdICAgZ2ZuOiAwMDAwNTBlNSAgbWZuOiAwMDAwNTBlNQ0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMzowMF0gICBnZm46IDAwMDA1MGU2ICBtZm46IDAwMDA1MGU2DQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMzOjAwXSAgIGdmbjogMDAwMDUwZTcgIG1mbjogMDAwMDUwZTcNCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDBdICAgZ2ZuOiAwMDAwNTBlOCAgbWZuOiAwMDAw
-NTBlOA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowMF0gICBnZm46IDAwMDA1MGU5ICBt
-Zm46IDAwMDA1MGU5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjAwXSAgIGdmbjogMDAw
-MDUwZWEgIG1mbjogMDAwMDUwZWENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDBdICAg
-Z2ZuOiAwMDAwNTBlYiAgbWZuOiAwMDAwNTBlYg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-MzowMF0gICBnZm46IDAwMDA1MGVjICBtZm46IDAwMDA1MGVjDQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMzOjAwXSAgIGdmbjogMDAwMDUwZWQgIG1mbjogMDAwMDUwZWQNCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzM6MDFdICAgZ2ZuOiAwMDAwNTBlZSAgbWZuOiAwMDAwNTBlZQ0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowMV0gICBnZm46IDAwMDA1MGVmICBtZm46IDAw
-MDA1MGVmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjAxXSAgIGdmbjogMDAwMDUwZjAg
-IG1mbjogMDAwMDUwZjANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDFdICAgZ2ZuOiAw
-MDAwNTBmMSAgbWZuOiAwMDAwNTBmMQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowMV0g
-ICBnZm46IDAwMDA1MGYyICBtZm46IDAwMDA1MGYyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMzOjAxXSAgIGdmbjogMDAwMDUwZjMgIG1mbjogMDAwMDUwZjMNCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzM6MDFdICAgZ2ZuOiAwMDAwNTBmNCAgbWZuOiAwMDAwNTBmNA0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMzowMV0gICBnZm46IDAwMDA1MGY1ICBtZm46IDAwMDA1MGY1
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjAxXSAgIGdmbjogMDAwMDUwZjYgIG1mbjog
-MDAwMDUwZjYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDFdICAgZ2ZuOiAwMDAwNTBm
-NyAgbWZuOiAwMDAwNTBmNw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowMV0gICBnZm46
-IDAwMDA1MGY4ICBtZm46IDAwMDA1MGY4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjAx
-XSAgIGdmbjogMDAwMDUwZjkgIG1mbjogMDAwMDUwZjkNCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzM6MDFdICAgZ2ZuOiAwMDAwNTBmYSAgbWZuOiAwMDAwNTBmYQ0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMzowMV0gICBnZm46IDAwMDA1MGZiICBtZm46IDAwMDA1MGZiDQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMzOjAxXSAgIGdmbjogMDAwMDUwZmMgIG1mbjogMDAwMDUw
-ZmMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDFdICAgZ2ZuOiAwMDAwNTBmZCAgbWZu
-OiAwMDAwNTBmZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowMV0gICBnZm46IDAwMDA1
-MGZlICBtZm46IDAwMDA1MGZlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjAxXSAgIGdm
-bjogMDAwMDUwZmYgIG1mbjogMDAwMDUwZmYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6
-MDFdICAgZ2ZuOiAwMDAwNTEwMCAgbWZuOiAwMDAwNTEwMA0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMzowMV0gICBnZm46IDAwMDA1MTAxICBtZm46IDAwMDA1MTAxDQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMzOjAxXSAgIGdmbjogMDAwMDUxMDIgIG1mbjogMDAwMDUxMDINCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDFdICAgZ2ZuOiAwMDAwNTEwMyAgbWZuOiAwMDAw
-NTEwMw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowMV0gICBnZm46IDAwMDA1MTA0ICBt
-Zm46IDAwMDA1MTA0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjAxXSAgIGdmbjogMDAw
-MDUxMDUgIG1mbjogMDAwMDUxMDUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDFdICAg
-Z2ZuOiAwMDAwNTEwNiAgbWZuOiAwMDAwNTEwNg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-MzowMV0gICBnZm46IDAwMDA1MTA3ICBtZm46IDAwMDA1MTA3DQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMzOjAxXSAgIGdmbjogMDAwMDUxMDggIG1mbjogMDAwMDUxMDgNCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzM6MDFdICAgZ2ZuOiAwMDAwNTEwOSAgbWZuOiAwMDAwNTEwOQ0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowMV0gICBnZm46IDAwMDA1MTBhICBtZm46IDAw
-MDA1MTBhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjAxXSAgIGdmbjogMDAwMDUxMGIg
-IG1mbjogMDAwMDUxMGINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDFdICAgZ2ZuOiAw
-MDAwNTEwYyAgbWZuOiAwMDAwNTEwYw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowMV0g
-ICBnZm46IDAwMDA1MTBkICBtZm46IDAwMDA1MTBkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMzOjAxXSAgIGdmbjogMDAwMDUxMGUgIG1mbjogMDAwMDUxMGUNCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzM6MDFdICAgZ2ZuOiAwMDAwNTEwZiAgbWZuOiAwMDAwNTEwZg0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMzowMV0gICBnZm46IDAwMDA1MTEwICBtZm46IDAwMDA1MTEw
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjAxXSAgIGdmbjogMDAwMDUxMTEgIG1mbjog
-MDAwMDUxMTENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDFdICAgZ2ZuOiAwMDAwNTEx
-MiAgbWZuOiAwMDAwNTExMg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowMV0gICBnZm46
-IDAwMDA1MTEzICBtZm46IDAwMDA1MTEzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjAx
-XSAgIGdmbjogMDAwMDUxMTQgIG1mbjogMDAwMDUxMTQNCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzM6MDFdICAgZ2ZuOiAwMDAwNTExNSAgbWZuOiAwMDAwNTExNQ0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMzowMV0gICBnZm46IDAwMDA1MTE2ICBtZm46IDAwMDA1MTE2DQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMzOjAxXSAgIGdmbjogMDAwMDUxMTcgIG1mbjogMDAwMDUx
-MTcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDFdICAgZ2ZuOiAwMDAwNTExOCAgbWZu
-OiAwMDAwNTExOA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowMV0gICBnZm46IDAwMDA1
-MTE5ICBtZm46IDAwMDA1MTE5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjAxXSAgIGdm
-bjogMDAwMDUxMWEgIG1mbjogMDAwMDUxMWENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6
-MDFdICAgZ2ZuOiAwMDAwNTExYiAgbWZuOiAwMDAwNTExYg0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMzowMV0gICBnZm46IDAwMDA1MTFjICBtZm46IDAwMDA1MTFjDQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMzOjAxXSAgIGdmbjogMDAwMDUxMWQgIG1mbjogMDAwMDUxMWQNCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDFdICAgZ2ZuOiAwMDAwNTExZSAgbWZuOiAwMDAw
-NTExZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowMV0gICBnZm46IDAwMDA1MTFmICBt
-Zm46IDAwMDA1MTFmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjAxXSAgIGdmbjogMDAw
-MDUxMjAgIG1mbjogMDAwMDUxMjANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDFdICAg
-Z2ZuOiAwMDAwNTEyMSAgbWZuOiAwMDAwNTEyMQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-MzowMV0gICBnZm46IDAwMDA1MTIyICBtZm46IDAwMDA1MTIyDQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMzOjAxXSAgIGdmbjogMDAwMDUxMjMgIG1mbjogMDAwMDUxMjMNCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzM6MDFdICAgZ2ZuOiAwMDAwNTEyNCAgbWZuOiAwMDAwNTEyNA0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowMV0gICBnZm46IDAwMDA1MTI1ICBtZm46IDAw
-MDA1MTI1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjAxXSAgIGdmbjogMDAwMDUxMjYg
-IG1mbjogMDAwMDUxMjYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDFdICAgZ2ZuOiAw
-MDAwNTEyNyAgbWZuOiAwMDAwNTEyNw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowMV0g
-ICBnZm46IDAwMDA1MTI4ICBtZm46IDAwMDA1MTI4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMzOjAxXSAgIGdmbjogMDAwMDUxMjkgIG1mbjogMDAwMDUxMjkNCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzM6MDFdICAgZ2ZuOiAwMDAwNTEyYSAgbWZuOiAwMDAwNTEyYQ0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMzowMV0gICBnZm46IDAwMDA1MTJiICBtZm46IDAwMDA1MTJi
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjAxXSAgIGdmbjogMDAwMDUxMmMgIG1mbjog
-MDAwMDUxMmMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDFdICAgZ2ZuOiAwMDAwNTEy
-ZCAgbWZuOiAwMDAwNTEyZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowMl0gICBnZm46
-IDAwMDA1MTJlICBtZm46IDAwMDA1MTJlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjAy
-XSAgIGdmbjogMDAwMDUxMmYgIG1mbjogMDAwMDUxMmYNCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzM6MDJdICAgZ2ZuOiAwMDAwNTEzMCAgbWZuOiAwMDAwNTEzMA0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMzowMl0gICBnZm46IDAwMDA1MTMxICBtZm46IDAwMDA1MTMxDQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMzOjAyXSAgIGdmbjogMDAwMDUxMzIgIG1mbjogMDAwMDUx
-MzINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDJdICAgZ2ZuOiAwMDAwNTEzMyAgbWZu
-OiAwMDAwNTEzMw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowMl0gICBnZm46IDAwMDA1
-MTM0ICBtZm46IDAwMDA1MTM0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjAyXSAgIGdm
-bjogMDAwMDUxMzUgIG1mbjogMDAwMDUxMzUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6
-MDJdICAgZ2ZuOiAwMDAwNTEzNiAgbWZuOiAwMDAwNTEzNg0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMzowMl0gICBnZm46IDAwMDA1MTM3ICBtZm46IDAwMDA1MTM3DQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMzOjAyXSAgIGdmbjogMDAwMDUxMzggIG1mbjogMDAwMDUxMzgNCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDJdICAgZ2ZuOiAwMDAwNTEzOSAgbWZuOiAwMDAw
-NTEzOQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowMl0gICBnZm46IDAwMDA1MTNhICBt
-Zm46IDAwMDA1MTNhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjAyXSAgIGdmbjogMDAw
-MDUxM2IgIG1mbjogMDAwMDUxM2INCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDJdICAg
-Z2ZuOiAwMDAwNTEzYyAgbWZuOiAwMDAwNTEzYw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-MzowMl0gICBnZm46IDAwMDA1MTNkICBtZm46IDAwMDA1MTNkDQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMzOjAyXSAgIGdmbjogMDAwMDUxM2UgIG1mbjogMDAwMDUxM2UNCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzM6MDJdICAgZ2ZuOiAwMDAwNTEzZiAgbWZuOiAwMDAwNTEzZg0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowMl0gICBnZm46IDAwMDA1MTQwICBtZm46IDAw
-MDA1MTQwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjAyXSAgIGdmbjogMDAwMDUxNDEg
-IG1mbjogMDAwMDUxNDENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDJdICAgZ2ZuOiAw
-MDAwNTE0MiAgbWZuOiAwMDAwNTE0Mg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowMl0g
-ICBnZm46IDAwMDA1MTQzICBtZm46IDAwMDA1MTQzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMzOjAyXSAgIGdmbjogMDAwMDUxNDQgIG1mbjogMDAwMDUxNDQNCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzM6MDJdICAgZ2ZuOiAwMDAwNTE0NSAgbWZuOiAwMDAwNTE0NQ0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMzowMl0gICBnZm46IDAwMDA1MTQ2ICBtZm46IDAwMDA1MTQ2
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjAyXSAgIGdmbjogMDAwMDUxNDcgIG1mbjog
-MDAwMDUxNDcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDJdICAgZ2ZuOiAwMDAwNTE0
-OCAgbWZuOiAwMDAwNTE0OA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowMl0gICBnZm46
-IDAwMDA1MTQ5ICBtZm46IDAwMDA1MTQ5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjAy
-XSAgIGdmbjogMDAwMDUxNGEgIG1mbjogMDAwMDUxNGENCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzM6MDJdICAgZ2ZuOiAwMDAwNTE0YiAgbWZuOiAwMDAwNTE0Yg0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMzowMl0gICBnZm46IDAwMDA1MTRjICBtZm46IDAwMDA1MTRjDQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMzOjAyXSAgIGdmbjogMDAwMDUxNGQgIG1mbjogMDAwMDUx
-NGQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDJdICAgZ2ZuOiAwMDAwNTE0ZSAgbWZu
-OiAwMDAwNTE0ZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowMl0gICBnZm46IDAwMDA1
-MTRmICBtZm46IDAwMDA1MTRmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjAyXSAgIGdm
-bjogMDAwMDUxNTAgIG1mbjogMDAwMDUxNTANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6
-MDJdICAgZ2ZuOiAwMDAwNTE1MSAgbWZuOiAwMDAwNTE1MQ0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMzowMl0gICBnZm46IDAwMDA1MTUyICBtZm46IDAwMDA1MTUyDQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMzOjAyXSAgIGdmbjogMDAwMDUxNTMgIG1mbjogMDAwMDUxNTMNCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDJdICAgZ2ZuOiAwMDAwNTE1NCAgbWZuOiAwMDAw
-NTE1NA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowMl0gICBnZm46IDAwMDA1MTU1ICBt
-Zm46IDAwMDA1MTU1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjAyXSAgIGdmbjogMDAw
-MDUxNTYgIG1mbjogMDAwMDUxNTYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDJdICAg
-Z2ZuOiAwMDAwNTE1NyAgbWZuOiAwMDAwNTE1Nw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-MzowMl0gICBnZm46IDAwMDA1MTU4ICBtZm46IDAwMDA1MTU4DQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMzOjAyXSAgIGdmbjogMDAwMDUxNTkgIG1mbjogMDAwMDUxNTkNCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzM6MDJdICAgZ2ZuOiAwMDAwNTE1YSAgbWZuOiAwMDAwNTE1YQ0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowMl0gICBnZm46IDAwMDA1MTViICBtZm46IDAw
-MDA1MTViDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjAyXSAgIGdmbjogMDAwMDUxNWMg
-IG1mbjogMDAwMDUxNWMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDJdICAgZ2ZuOiAw
-MDAwNTE1ZCAgbWZuOiAwMDAwNTE1ZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowMl0g
-ICBnZm46IDAwMDA1MTVlICBtZm46IDAwMDA1MTVlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMzOjAyXSAgIGdmbjogMDAwMDUxNWYgIG1mbjogMDAwMDUxNWYNCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzM6MDJdICAgZ2ZuOiAwMDAwNTE2MCAgbWZuOiAwMDAwNTE2MA0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMzowMl0gICBnZm46IDAwMDA1MTYxICBtZm46IDAwMDA1MTYx
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjAyXSAgIGdmbjogMDAwMDUxNjIgIG1mbjog
-MDAwMDUxNjINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDJdICAgZ2ZuOiAwMDAwNTE2
-MyAgbWZuOiAwMDAwNTE2Mw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowMl0gICBnZm46
-IDAwMDA1MTY0ICBtZm46IDAwMDA1MTY0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjAy
-XSAgIGdmbjogMDAwMDUxNjUgIG1mbjogMDAwMDUxNjUNCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzM6MDJdICAgZ2ZuOiAwMDAwNTE2NiAgbWZuOiAwMDAwNTE2Ng0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMzowMl0gICBnZm46IDAwMDA1MTY3ICBtZm46IDAwMDA1MTY3DQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMzOjAyXSAgIGdmbjogMDAwMDUxNjggIG1mbjogMDAwMDUx
-NjgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDJdICAgZ2ZuOiAwMDAwNTE2OSAgbWZu
-OiAwMDAwNTE2OQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowMl0gICBnZm46IDAwMDA1
-MTZhICBtZm46IDAwMDA1MTZhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjAyXSAgIGdm
-bjogMDAwMDUxNmIgIG1mbjogMDAwMDUxNmINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6
-MDJdICAgZ2ZuOiAwMDAwNTE2YyAgbWZuOiAwMDAwNTE2Yw0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMzowMl0gICBnZm46IDAwMDA1MTZkICBtZm46IDAwMDA1MTZkDQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMzOjAzXSAgIGdmbjogMDAwMDUxNmUgIG1mbjogMDAwMDUxNmUNCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDNdICAgZ2ZuOiAwMDAwNTE2ZiAgbWZuOiAwMDAw
-NTE2Zg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowM10gICBnZm46IDAwMDA1MTcwICBt
-Zm46IDAwMDA1MTcwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjAzXSAgIGdmbjogMDAw
-MDUxNzEgIG1mbjogMDAwMDUxNzENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDNdICAg
-Z2ZuOiAwMDAwNTE3MiAgbWZuOiAwMDAwNTE3Mg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-MzowM10gICBnZm46IDAwMDA1MTczICBtZm46IDAwMDA1MTczDQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMzOjAzXSAgIGdmbjogMDAwMDUxNzQgIG1mbjogMDAwMDUxNzQNCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzM6MDNdICAgZ2ZuOiAwMDAwNTE3NSAgbWZuOiAwMDAwNTE3NQ0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowM10gICBnZm46IDAwMDA1MTc2ICBtZm46IDAw
-MDA1MTc2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjAzXSAgIGdmbjogMDAwMDUxNzcg
-IG1mbjogMDAwMDUxNzcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDNdICAgZ2ZuOiAw
-MDAwNTE3OCAgbWZuOiAwMDAwNTE3OA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowM10g
-ICBnZm46IDAwMDA1MTc5ICBtZm46IDAwMDA1MTc5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMzOjAzXSAgIGdmbjogMDAwMDUxN2EgIG1mbjogMDAwMDUxN2ENCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzM6MDNdICAgZ2ZuOiAwMDAwNTE3YiAgbWZuOiAwMDAwNTE3Yg0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMzowM10gICBnZm46IDAwMDA1MTdjICBtZm46IDAwMDA1MTdj
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjAzXSAgIGdmbjogMDAwMDUxN2QgIG1mbjog
-MDAwMDUxN2QNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDNdICAgZ2ZuOiAwMDAwNTE3
-ZSAgbWZuOiAwMDAwNTE3ZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowM10gICBnZm46
-IDAwMDA1MTdmICBtZm46IDAwMDA1MTdmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjAz
-XSAgIGdmbjogMDAwMDUxODAgIG1mbjogMDAwMDUxODANCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzM6MDNdICAgZ2ZuOiAwMDAwNTE4MSAgbWZuOiAwMDAwNTE4MQ0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMzowM10gICBnZm46IDAwMDA1MTgyICBtZm46IDAwMDA1MTgyDQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMzOjAzXSAgIGdmbjogMDAwMDUxODMgIG1mbjogMDAwMDUx
-ODMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDNdICAgZ2ZuOiAwMDAwNTE4NCAgbWZu
-OiAwMDAwNTE4NA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowM10gICBnZm46IDAwMDA1
-MTg1ICBtZm46IDAwMDA1MTg1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjAzXSAgIGdm
-bjogMDAwMDUxODYgIG1mbjogMDAwMDUxODYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6
-MDNdICAgZ2ZuOiAwMDAwNTE4NyAgbWZuOiAwMDAwNTE4Nw0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMzowM10gICBnZm46IDAwMDA1MTg4ICBtZm46IDAwMDA1MTg4DQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMzOjAzXSAgIGdmbjogMDAwMDUxODkgIG1mbjogMDAwMDUxODkNCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDNdICAgZ2ZuOiAwMDAwNTE4YSAgbWZuOiAwMDAw
-NTE4YQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowM10gICBnZm46IDAwMDA1MThiICBt
-Zm46IDAwMDA1MThiDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjAzXSAgIGdmbjogMDAw
-MDUxOGMgIG1mbjogMDAwMDUxOGMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDNdICAg
-Z2ZuOiAwMDAwNTE4ZCAgbWZuOiAwMDAwNTE4ZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-MzowM10gICBnZm46IDAwMDA1MThlICBtZm46IDAwMDA1MThlDQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMzOjAzXSAgIGdmbjogMDAwMDUxOGYgIG1mbjogMDAwMDUxOGYNCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzM6MDNdICAgZ2ZuOiAwMDAwNTE5MCAgbWZuOiAwMDAwNTE5MA0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowM10gICBnZm46IDAwMDA1MTkxICBtZm46IDAw
-MDA1MTkxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjAzXSAgIGdmbjogMDAwMDUxOTIg
-IG1mbjogMDAwMDUxOTINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDNdICAgZ2ZuOiAw
-MDAwNTE5MyAgbWZuOiAwMDAwNTE5Mw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowM10g
-ICBnZm46IDAwMDA1MTk0ICBtZm46IDAwMDA1MTk0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMzOjAzXSAgIGdmbjogMDAwMDUxOTUgIG1mbjogMDAwMDUxOTUNCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzM6MDNdICAgZ2ZuOiAwMDAwNTE5NiAgbWZuOiAwMDAwNTE5Ng0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMzowM10gICBnZm46IDAwMDA1MTk3ICBtZm46IDAwMDA1MTk3
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjAzXSAgIGdmbjogMDAwMDUxOTggIG1mbjog
-MDAwMDUxOTgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDNdICAgZ2ZuOiAwMDAwNTE5
-OSAgbWZuOiAwMDAwNTE5OQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowM10gICBnZm46
-IDAwMDA1MTlhICBtZm46IDAwMDA1MTlhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjAz
-XSAgIGdmbjogMDAwMDUxOWIgIG1mbjogMDAwMDUxOWINCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzM6MDNdICAgZ2ZuOiAwMDAwNTE5YyAgbWZuOiAwMDAwNTE5Yw0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMzowM10gICBnZm46IDAwMDA1MTlkICBtZm46IDAwMDA1MTlkDQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMzOjAzXSAgIGdmbjogMDAwMDUxOWUgIG1mbjogMDAwMDUx
-OWUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDNdICAgZ2ZuOiAwMDAwNTE5ZiAgbWZu
-OiAwMDAwNTE5Zg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowM10gICBnZm46IDAwMDA1
-MWEwICBtZm46IDAwMDA1MWEwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjAzXSAgIGdm
-bjogMDAwMDUxYTEgIG1mbjogMDAwMDUxYTENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6
-MDNdICAgZ2ZuOiAwMDAwNTFhMiAgbWZuOiAwMDAwNTFhMg0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMzowM10gICBnZm46IDAwMDA1MWEzICBtZm46IDAwMDA1MWEzDQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMzOjAzXSAgIGdmbjogMDAwMDUxYTQgIG1mbjogMDAwMDUxYTQNCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDNdICAgZ2ZuOiAwMDAwNTFhNSAgbWZuOiAwMDAw
-NTFhNQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowM10gICBnZm46IDAwMDA1MWE2ICBt
-Zm46IDAwMDA1MWE2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjAzXSAgIGdmbjogMDAw
-MDUxYTcgIG1mbjogMDAwMDUxYTcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDNdICAg
-Z2ZuOiAwMDAwNTFhOCAgbWZuOiAwMDAwNTFhOA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-MzowM10gICBnZm46IDAwMDA1MWE5ICBtZm46IDAwMDA1MWE5DQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMzOjAzXSAgIGdmbjogMDAwMDUxYWEgIG1mbjogMDAwMDUxYWENCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzM6MDNdICAgZ2ZuOiAwMDAwNTFhYiAgbWZuOiAwMDAwNTFhYg0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowM10gICBnZm46IDAwMDA1MWFjICBtZm46IDAw
-MDA1MWFjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjAzXSAgIGdmbjogMDAwMDUxYWQg
-IG1mbjogMDAwMDUxYWQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDRdICAgZ2ZuOiAw
-MDAwNTFhZSAgbWZuOiAwMDAwNTFhZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowNF0g
-ICBnZm46IDAwMDA1MWFmICBtZm46IDAwMDA1MWFmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMzOjA0XSAgIGdmbjogMDAwMDUxYjAgIG1mbjogMDAwMDUxYjANCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzM6MDRdICAgZ2ZuOiAwMDAwNTFiMSAgbWZuOiAwMDAwNTFiMQ0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMzowNF0gICBnZm46IDAwMDA1MWIyICBtZm46IDAwMDA1MWIy
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA0XSAgIGdmbjogMDAwMDUxYjMgIG1mbjog
-MDAwMDUxYjMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDRdICAgZ2ZuOiAwMDAwNTFi
-NCAgbWZuOiAwMDAwNTFiNA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowNF0gICBnZm46
-IDAwMDA1MWI1ICBtZm46IDAwMDA1MWI1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA0
-XSAgIGdmbjogMDAwMDUxYjYgIG1mbjogMDAwMDUxYjYNCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzM6MDRdICAgZ2ZuOiAwMDAwNTFiNyAgbWZuOiAwMDAwNTFiNw0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMzowNF0gICBnZm46IDAwMDA1MWI4ICBtZm46IDAwMDA1MWI4DQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA0XSAgIGdmbjogMDAwMDUxYjkgIG1mbjogMDAwMDUx
-YjkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDRdICAgZ2ZuOiAwMDAwNTFiYSAgbWZu
-OiAwMDAwNTFiYQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowNF0gICBnZm46IDAwMDA1
-MWJiICBtZm46IDAwMDA1MWJiDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA0XSAgIGdm
-bjogMDAwMDUxYmMgIG1mbjogMDAwMDUxYmMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6
-MDRdICAgZ2ZuOiAwMDAwNTFiZCAgbWZuOiAwMDAwNTFiZA0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMzowNF0gICBnZm46IDAwMDA1MWJlICBtZm46IDAwMDA1MWJlDQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMzOjA0XSAgIGdmbjogMDAwMDUxYmYgIG1mbjogMDAwMDUxYmYNCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDRdICAgZ2ZuOiAwMDAwNTFjMCAgbWZuOiAwMDAw
-NTFjMA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowNF0gICBnZm46IDAwMDA1MWMxICBt
-Zm46IDAwMDA1MWMxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA0XSAgIGdmbjogMDAw
-MDUxYzIgIG1mbjogMDAwMDUxYzINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDRdICAg
-Z2ZuOiAwMDAwNTFjMyAgbWZuOiAwMDAwNTFjMw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-MzowNF0gICBnZm46IDAwMDA1MWM0ICBtZm46IDAwMDA1MWM0DQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMzOjA0XSAgIGdmbjogMDAwMDUxYzUgIG1mbjogMDAwMDUxYzUNCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzM6MDRdICAgZ2ZuOiAwMDAwNTFjNiAgbWZuOiAwMDAwNTFjNg0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowNF0gICBnZm46IDAwMDA1MWM3ICBtZm46IDAw
-MDA1MWM3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA0XSAgIGdmbjogMDAwMDUxYzgg
-IG1mbjogMDAwMDUxYzgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDRdICAgZ2ZuOiAw
-MDAwNTFjOSAgbWZuOiAwMDAwNTFjOQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowNF0g
-ICBnZm46IDAwMDA1MWNhICBtZm46IDAwMDA1MWNhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMzOjA0XSAgIGdmbjogMDAwMDUxY2IgIG1mbjogMDAwMDUxY2INCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzM6MDRdICAgZ2ZuOiAwMDAwNTFjYyAgbWZuOiAwMDAwNTFjYw0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMzowNF0gICBnZm46IDAwMDA1MWNkICBtZm46IDAwMDA1MWNk
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA0XSAgIGdmbjogMDAwMDUxY2UgIG1mbjog
-MDAwMDUxY2UNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDRdICAgZ2ZuOiAwMDAwNTFj
-ZiAgbWZuOiAwMDAwNTFjZg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowNF0gICBnZm46
-IDAwMDA1MWQwICBtZm46IDAwMDA1MWQwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA0
-XSAgIGdmbjogMDAwMDUxZDEgIG1mbjogMDAwMDUxZDENCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzM6MDRdICAgZ2ZuOiAwMDAwNTFkMiAgbWZuOiAwMDAwNTFkMg0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMzowNF0gICBnZm46IDAwMDA1MWQzICBtZm46IDAwMDA1MWQzDQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA0XSAgIGdmbjogMDAwMDUxZDQgIG1mbjogMDAwMDUx
-ZDQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDRdICAgZ2ZuOiAwMDAwNTFkNSAgbWZu
-OiAwMDAwNTFkNQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowNF0gICBnZm46IDAwMDA1
-MWQ2ICBtZm46IDAwMDA1MWQ2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA0XSAgIGdm
-bjogMDAwMDUxZDcgIG1mbjogMDAwMDUxZDcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6
-MDRdICAgZ2ZuOiAwMDAwNTFkOCAgbWZuOiAwMDAwNTFkOA0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMzowNF0gICBnZm46IDAwMDA1MWQ5ICBtZm46IDAwMDA1MWQ5DQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMzOjA0XSAgIGdmbjogMDAwMDUxZGEgIG1mbjogMDAwMDUxZGENCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDRdICAgZ2ZuOiAwMDAwNTFkYiAgbWZuOiAwMDAw
-NTFkYg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowNF0gICBnZm46IDAwMDA1MWRjICBt
-Zm46IDAwMDA1MWRjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA0XSAgIGdmbjogMDAw
-MDUxZGQgIG1mbjogMDAwMDUxZGQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDRdICAg
-Z2ZuOiAwMDAwNTFkZSAgbWZuOiAwMDAwNTFkZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-MzowNF0gICBnZm46IDAwMDA1MWRmICBtZm46IDAwMDA1MWRmDQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMzOjA0XSAgIGdmbjogMDAwMDUxZTAgIG1mbjogMDAwMDUxZTANCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzM6MDRdICAgZ2ZuOiAwMDAwNTFlMSAgbWZuOiAwMDAwNTFlMQ0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowNF0gICBnZm46IDAwMDA1MWUyICBtZm46IDAw
-MDA1MWUyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA0XSAgIGdmbjogMDAwMDUxZTMg
-IG1mbjogMDAwMDUxZTMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDRdICAgZ2ZuOiAw
-MDAwNTFlNCAgbWZuOiAwMDAwNTFlNA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowNF0g
-ICBnZm46IDAwMDA1MWU1ICBtZm46IDAwMDA1MWU1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMzOjA0XSAgIGdmbjogMDAwMDUxZTYgIG1mbjogMDAwMDUxZTYNCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzM6MDRdICAgZ2ZuOiAwMDAwNTFlNyAgbWZuOiAwMDAwNTFlNw0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMzowNF0gICBnZm46IDAwMDA1MWU4ICBtZm46IDAwMDA1MWU4
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA0XSAgIGdmbjogMDAwMDUxZTkgIG1mbjog
-MDAwMDUxZTkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDRdICAgZ2ZuOiAwMDAwNTFl
-YSAgbWZuOiAwMDAwNTFlYQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowNF0gICBnZm46
-IDAwMDA1MWViICBtZm46IDAwMDA1MWViDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA0
-XSAgIGdmbjogMDAwMDUxZWMgIG1mbjogMDAwMDUxZWMNCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzM6MDRdICAgZ2ZuOiAwMDAwNTFlZCAgbWZuOiAwMDAwNTFlZA0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMzowNV0gICBnZm46IDAwMDA1MWVlICBtZm46IDAwMDA1MWVlDQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA1XSAgIGdmbjogMDAwMDUxZWYgIG1mbjogMDAwMDUx
-ZWYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDVdICAgZ2ZuOiAwMDAwNTFmMCAgbWZu
-OiAwMDAwNTFmMA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowNV0gICBnZm46IDAwMDA1
-MWYxICBtZm46IDAwMDA1MWYxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA1XSAgIGdm
-bjogMDAwMDUxZjIgIG1mbjogMDAwMDUxZjINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6
-MDVdICAgZ2ZuOiAwMDAwNTFmMyAgbWZuOiAwMDAwNTFmMw0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMzowNV0gICBnZm46IDAwMDA1MWY0ICBtZm46IDAwMDA1MWY0DQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMzOjA1XSAgIGdmbjogMDAwMDUxZjUgIG1mbjogMDAwMDUxZjUNCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDVdICAgZ2ZuOiAwMDAwNTFmNiAgbWZuOiAwMDAw
-NTFmNg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowNV0gICBnZm46IDAwMDA1MWY3ICBt
-Zm46IDAwMDA1MWY3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA1XSAgIGdmbjogMDAw
-MDUxZjggIG1mbjogMDAwMDUxZjgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDVdICAg
-Z2ZuOiAwMDAwNTFmOSAgbWZuOiAwMDAwNTFmOQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-MzowNV0gICBnZm46IDAwMDA1MWZhICBtZm46IDAwMDA1MWZhDQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMzOjA1XSAgIGdmbjogMDAwMDUxZmIgIG1mbjogMDAwMDUxZmINCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzM6MDVdICAgZ2ZuOiAwMDAwNTFmYyAgbWZuOiAwMDAwNTFmYw0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowNV0gICBnZm46IDAwMDA1MWZkICBtZm46IDAw
-MDA1MWZkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA1XSAgIGdmbjogMDAwMDUxZmUg
-IG1mbjogMDAwMDUxZmUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDVdICAgZ2ZuOiAw
-MDAwNTFmZiAgbWZuOiAwMDAwNTFmZg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowNV0g
-ICBnZm46IDAwMDA1MjAwICBtZm46IDAwMDA1MjAwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMzOjA1XSAgIGdmbjogMDAwMDUyMDEgIG1mbjogMDAwMDUyMDENCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzM6MDVdICAgZ2ZuOiAwMDAwNTIwMiAgbWZuOiAwMDAwNTIwMg0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMzowNV0gICBnZm46IDAwMDA1MjAzICBtZm46IDAwMDA1MjAz
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA1XSAgIGdmbjogMDAwMDUyMDQgIG1mbjog
-MDAwMDUyMDQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDVdICAgZ2ZuOiAwMDAwNTIw
-NSAgbWZuOiAwMDAwNTIwNQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowNV0gICBnZm46
-IDAwMDA1MjA2ICBtZm46IDAwMDA1MjA2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA1
-XSAgIGdmbjogMDAwMDUyMDcgIG1mbjogMDAwMDUyMDcNCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzM6MDVdICAgZ2ZuOiAwMDAwNTIwOCAgbWZuOiAwMDAwNTIwOA0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMzowNV0gICBnZm46IDAwMDA1MjA5ICBtZm46IDAwMDA1MjA5DQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA1XSAgIGdmbjogMDAwMDUyMGEgIG1mbjogMDAwMDUy
-MGENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDVdICAgZ2ZuOiAwMDAwNTIwYiAgbWZu
-OiAwMDAwNTIwYg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowNV0gICBnZm46IDAwMDA1
-MjBjICBtZm46IDAwMDA1MjBjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA1XSAgIGdm
-bjogMDAwMDUyMGQgIG1mbjogMDAwMDUyMGQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6
-MDVdICAgZ2ZuOiAwMDAwNTIwZSAgbWZuOiAwMDAwNTIwZQ0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMzowNV0gICBnZm46IDAwMDA1MjBmICBtZm46IDAwMDA1MjBmDQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMzOjA1XSAgIGdmbjogMDAwMDUyMTAgIG1mbjogMDAwMDUyMTANCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDVdICAgZ2ZuOiAwMDAwNTIxMSAgbWZuOiAwMDAw
-NTIxMQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowNV0gICBnZm46IDAwMDA1MjEyICBt
-Zm46IDAwMDA1MjEyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA1XSAgIGdmbjogMDAw
-MDUyMTMgIG1mbjogMDAwMDUyMTMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDVdICAg
-Z2ZuOiAwMDAwNTIxNCAgbWZuOiAwMDAwNTIxNA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-MzowNV0gICBnZm46IDAwMDA1MjE1ICBtZm46IDAwMDA1MjE1DQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMzOjA1XSAgIGdmbjogMDAwMDUyMTYgIG1mbjogMDAwMDUyMTYNCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzM6MDVdICAgZ2ZuOiAwMDAwNTIxNyAgbWZuOiAwMDAwNTIxNw0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowNV0gICBnZm46IDAwMDA1MjE4ICBtZm46IDAw
-MDA1MjE4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA1XSAgIGdmbjogMDAwMDUyMTkg
-IG1mbjogMDAwMDUyMTkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDVdICAgZ2ZuOiAw
-MDAwNTIxYSAgbWZuOiAwMDAwNTIxYQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowNV0g
-ICBnZm46IDAwMDA1MjFiICBtZm46IDAwMDA1MjFiDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMzOjA1XSAgIGdmbjogMDAwMDUyMWMgIG1mbjogMDAwMDUyMWMNCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzM6MDVdICAgZ2ZuOiAwMDAwNTIxZCAgbWZuOiAwMDAwNTIxZA0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMzowNV0gICBnZm46IDAwMDA1MjFlICBtZm46IDAwMDA1MjFl
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA1XSAgIGdmbjogMDAwMDUyMWYgIG1mbjog
-MDAwMDUyMWYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDVdICAgZ2ZuOiAwMDAwNTIy
-MCAgbWZuOiAwMDAwNTIyMA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowNV0gICBnZm46
-IDAwMDA1MjIxICBtZm46IDAwMDA1MjIxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA1
-XSAgIGdmbjogMDAwMDUyMjIgIG1mbjogMDAwMDUyMjINCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzM6MDVdICAgZ2ZuOiAwMDAwNTIyMyAgbWZuOiAwMDAwNTIyMw0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMzowNV0gICBnZm46IDAwMDA1MjI0ICBtZm46IDAwMDA1MjI0DQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA1XSAgIGdmbjogMDAwMDUyMjUgIG1mbjogMDAwMDUy
-MjUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDVdICAgZ2ZuOiAwMDAwNTIyNiAgbWZu
-OiAwMDAwNTIyNg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowNV0gICBnZm46IDAwMDA1
-MjI3ICBtZm46IDAwMDA1MjI3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA1XSAgIGdm
-bjogMDAwMDUyMjggIG1mbjogMDAwMDUyMjgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6
-MDVdICAgZ2ZuOiAwMDAwNTIyOSAgbWZuOiAwMDAwNTIyOQ0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMzowNV0gICBnZm46IDAwMDA1MjJhICBtZm46IDAwMDA1MjJhDQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMzOjA1XSAgIGdmbjogMDAwMDUyMmIgIG1mbjogMDAwMDUyMmINCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDVdICAgZ2ZuOiAwMDAwNTIyYyAgbWZuOiAwMDAw
-NTIyYw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowNV0gICBnZm46IDAwMDA1MjJkICBt
-Zm46IDAwMDA1MjJkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA1XSAgIGdmbjogMDAw
-MDUyMmUgIG1mbjogMDAwMDUyMmUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDZdICAg
-Z2ZuOiAwMDAwNTIyZiAgbWZuOiAwMDAwNTIyZg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-MzowNl0gICBnZm46IDAwMDA1MjMwICBtZm46IDAwMDA1MjMwDQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMzOjA2XSAgIGdmbjogMDAwMDUyMzEgIG1mbjogMDAwMDUyMzENCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzM6MDZdICAgZ2ZuOiAwMDAwNTIzMiAgbWZuOiAwMDAwNTIzMg0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowNl0gICBnZm46IDAwMDA1MjMzICBtZm46IDAw
-MDA1MjMzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA2XSAgIGdmbjogMDAwMDUyMzQg
-IG1mbjogMDAwMDUyMzQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDZdICAgZ2ZuOiAw
-MDAwNTIzNSAgbWZuOiAwMDAwNTIzNQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowNl0g
-ICBnZm46IDAwMDA1MjM2ICBtZm46IDAwMDA1MjM2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMzOjA2XSAgIGdmbjogMDAwMDUyMzcgIG1mbjogMDAwMDUyMzcNCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzM6MDZdICAgZ2ZuOiAwMDAwNTIzOCAgbWZuOiAwMDAwNTIzOA0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMzowNl0gICBnZm46IDAwMDA1MjM5ICBtZm46IDAwMDA1MjM5
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA2XSAgIGdmbjogMDAwMDUyM2EgIG1mbjog
-MDAwMDUyM2ENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDZdICAgZ2ZuOiAwMDAwNTIz
-YiAgbWZuOiAwMDAwNTIzYg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowNl0gICBnZm46
-IDAwMDA1MjNjICBtZm46IDAwMDA1MjNjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA2
-XSAgIGdmbjogMDAwMDUyM2QgIG1mbjogMDAwMDUyM2QNCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzM6MDZdICAgZ2ZuOiAwMDAwNTIzZSAgbWZuOiAwMDAwNTIzZQ0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMzowNl0gICBnZm46IDAwMDA1MjNmICBtZm46IDAwMDA1MjNmDQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA2XSAgIGdmbjogMDAwMDUyNDAgIG1mbjogMDAwMDUy
-NDANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDZdICAgZ2ZuOiAwMDAwNTI0MSAgbWZu
-OiAwMDAwNTI0MQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowNl0gICBnZm46IDAwMDA1
-MjQyICBtZm46IDAwMDA1MjQyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA2XSAgIGdm
-bjogMDAwMDUyNDMgIG1mbjogMDAwMDUyNDMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6
-MDZdICAgZ2ZuOiAwMDAwNTI0NCAgbWZuOiAwMDAwNTI0NA0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMzowNl0gICBnZm46IDAwMDA1MjQ1ICBtZm46IDAwMDA1MjQ1DQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMzOjA2XSAgIGdmbjogMDAwMDUyNDYgIG1mbjogMDAwMDUyNDYNCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDZdICAgZ2ZuOiAwMDAwNTI0NyAgbWZuOiAwMDAw
-NTI0Nw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowNl0gICBnZm46IDAwMDA1MjQ4ICBt
-Zm46IDAwMDA1MjQ4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA2XSAgIGdmbjogMDAw
-MDUyNDkgIG1mbjogMDAwMDUyNDkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDZdICAg
-Z2ZuOiAwMDAwNTI0YSAgbWZuOiAwMDAwNTI0YQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-MzowNl0gICBnZm46IDAwMDA1MjRiICBtZm46IDAwMDA1MjRiDQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMzOjA2XSAgIGdmbjogMDAwMDUyNGMgIG1mbjogMDAwMDUyNGMNCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzM6MDZdICAgZ2ZuOiAwMDAwNTI0ZCAgbWZuOiAwMDAwNTI0ZA0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowNl0gICBnZm46IDAwMDA1MjRlICBtZm46IDAw
-MDA1MjRlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA2XSAgIGdmbjogMDAwMDUyNGYg
-IG1mbjogMDAwMDUyNGYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDZdICAgZ2ZuOiAw
-MDAwNTI1MCAgbWZuOiAwMDAwNTI1MA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowNl0g
-ICBnZm46IDAwMDA1MjUxICBtZm46IDAwMDA1MjUxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMzOjA2XSAgIGdmbjogMDAwMDUyNTIgIG1mbjogMDAwMDUyNTINCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzM6MDZdICAgZ2ZuOiAwMDAwNTI1MyAgbWZuOiAwMDAwNTI1Mw0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMzowNl0gICBnZm46IDAwMDA1MjU0ICBtZm46IDAwMDA1MjU0
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA2XSAgIGdmbjogMDAwMDUyNTUgIG1mbjog
-MDAwMDUyNTUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDZdICAgZ2ZuOiAwMDAwNTI1
-NiAgbWZuOiAwMDAwNTI1Ng0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowNl0gICBnZm46
-IDAwMDA1MjU3ICBtZm46IDAwMDA1MjU3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA2
-XSAgIGdmbjogMDAwMDUyNTggIG1mbjogMDAwMDUyNTgNCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzM6MDZdICAgZ2ZuOiAwMDAwNTI1OSAgbWZuOiAwMDAwNTI1OQ0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMzowNl0gICBnZm46IDAwMDA1MjVhICBtZm46IDAwMDA1MjVhDQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA2XSAgIGdmbjogMDAwMDUyNWIgIG1mbjogMDAwMDUy
-NWINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDZdICAgZ2ZuOiAwMDAwNTI1YyAgbWZu
-OiAwMDAwNTI1Yw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowNl0gICBnZm46IDAwMDA1
-MjVkICBtZm46IDAwMDA1MjVkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA2XSAgIGdm
-bjogMDAwMDUyNWUgIG1mbjogMDAwMDUyNWUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6
-MDZdICAgZ2ZuOiAwMDAwNTI1ZiAgbWZuOiAwMDAwNTI1Zg0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMzowNl0gICBnZm46IDAwMDA1MjYwICBtZm46IDAwMDA1MjYwDQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMzOjA2XSAgIGdmbjogMDAwMDUyNjEgIG1mbjogMDAwMDUyNjENCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDZdICAgZ2ZuOiAwMDAwNTI2MiAgbWZuOiAwMDAw
-NTI2Mg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowNl0gICBnZm46IDAwMDA1MjYzICBt
-Zm46IDAwMDA1MjYzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA2XSAgIGdmbjogMDAw
-MDUyNjQgIG1mbjogMDAwMDUyNjQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDZdICAg
-Z2ZuOiAwMDAwNTI2NSAgbWZuOiAwMDAwNTI2NQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-MzowNl0gICBnZm46IDAwMDA1MjY2ICBtZm46IDAwMDA1MjY2DQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMzOjA2XSAgIGdmbjogMDAwMDUyNjcgIG1mbjogMDAwMDUyNjcNCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzM6MDZdICAgZ2ZuOiAwMDAwNTI2OCAgbWZuOiAwMDAwNTI2OA0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowNl0gICBnZm46IDAwMDA1MjY5ICBtZm46IDAw
-MDA1MjY5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA2XSAgIGdmbjogMDAwMDUyNmEg
-IG1mbjogMDAwMDUyNmENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDZdICAgZ2ZuOiAw
-MDAwNTI2YiAgbWZuOiAwMDAwNTI2Yg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowNl0g
-ICBnZm46IDAwMDA1MjZjICBtZm46IDAwMDA1MjZjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMzOjA2XSAgIGdmbjogMDAwMDUyNmQgIG1mbjogMDAwMDUyNmQNCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzM6MDZdICAgZ2ZuOiAwMDAwNTI2ZSAgbWZuOiAwMDAwNTI2ZQ0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMzowN10gICBnZm46IDAwMDA1MjZmICBtZm46IDAwMDA1MjZm
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA3XSAgIGdmbjogMDAwMDUyNzAgIG1mbjog
-MDAwMDUyNzANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDddICAgZ2ZuOiAwMDAwNTI3
-MSAgbWZuOiAwMDAwNTI3MQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowN10gICBnZm46
-IDAwMDA1MjcyICBtZm46IDAwMDA1MjcyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA3
-XSAgIGdmbjogMDAwMDUyNzMgIG1mbjogMDAwMDUyNzMNCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzM6MDddICAgZ2ZuOiAwMDAwNTI3NCAgbWZuOiAwMDAwNTI3NA0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMzowN10gICBnZm46IDAwMDA1Mjc1ICBtZm46IDAwMDA1Mjc1DQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA3XSAgIGdmbjogMDAwMDUyNzYgIG1mbjogMDAwMDUy
-NzYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDddICAgZ2ZuOiAwMDAwNTI3NyAgbWZu
-OiAwMDAwNTI3Nw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowN10gICBnZm46IDAwMDA1
-Mjc4ICBtZm46IDAwMDA1Mjc4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA3XSAgIGdm
-bjogMDAwMDUyNzkgIG1mbjogMDAwMDUyNzkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6
-MDddICAgZ2ZuOiAwMDAwNTI3YSAgbWZuOiAwMDAwNTI3YQ0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMzowN10gICBnZm46IDAwMDA1MjdiICBtZm46IDAwMDA1MjdiDQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMzOjA3XSAgIGdmbjogMDAwMDUyN2MgIG1mbjogMDAwMDUyN2MNCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDddICAgZ2ZuOiAwMDAwNTI3ZCAgbWZuOiAwMDAw
-NTI3ZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowN10gICBnZm46IDAwMDA1MjdlICBt
-Zm46IDAwMDA1MjdlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA3XSAgIGdmbjogMDAw
-MDUyN2YgIG1mbjogMDAwMDUyN2YNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDddICAg
-Z2ZuOiAwMDAwNTI4MCAgbWZuOiAwMDAwNTI4MA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-MzowN10gICBnZm46IDAwMDA1MjgxICBtZm46IDAwMDA1MjgxDQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMzOjA3XSAgIGdmbjogMDAwMDUyODIgIG1mbjogMDAwMDUyODINCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzM6MDddICAgZ2ZuOiAwMDAwNTI4MyAgbWZuOiAwMDAwNTI4Mw0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowN10gICBnZm46IDAwMDA1Mjg0ICBtZm46IDAw
-MDA1Mjg0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA3XSAgIGdmbjogMDAwMDUyODUg
-IG1mbjogMDAwMDUyODUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDddICAgZ2ZuOiAw
-MDAwNTI4NiAgbWZuOiAwMDAwNTI4Ng0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowN10g
-ICBnZm46IDAwMDA1Mjg3ICBtZm46IDAwMDA1Mjg3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMzOjA3XSAgIGdmbjogMDAwMDUyODggIG1mbjogMDAwMDUyODgNCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzM6MDddICAgZ2ZuOiAwMDAwNTI4OSAgbWZuOiAwMDAwNTI4OQ0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMzowN10gICBnZm46IDAwMDA1MjhhICBtZm46IDAwMDA1Mjhh
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA3XSAgIGdmbjogMDAwMDUyOGIgIG1mbjog
-MDAwMDUyOGINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDddICAgZ2ZuOiAwMDAwNTI4
-YyAgbWZuOiAwMDAwNTI4Yw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowN10gICBnZm46
-IDAwMDA1MjhkICBtZm46IDAwMDA1MjhkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA3
-XSAgIGdmbjogMDAwMDUyOGUgIG1mbjogMDAwMDUyOGUNCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzM6MDddICAgZ2ZuOiAwMDAwNTI4ZiAgbWZuOiAwMDAwNTI4Zg0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMzowN10gICBnZm46IDAwMDA1MjkwICBtZm46IDAwMDA1MjkwDQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA3XSAgIGdmbjogMDAwMDUyOTEgIG1mbjogMDAwMDUy
-OTENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDddICAgZ2ZuOiAwMDAwNTI5MiAgbWZu
-OiAwMDAwNTI5Mg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowN10gICBnZm46IDAwMDA1
-MjkzICBtZm46IDAwMDA1MjkzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA3XSAgIGdm
-bjogMDAwMDUyOTQgIG1mbjogMDAwMDUyOTQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6
-MDddICAgZ2ZuOiAwMDAwNTI5NSAgbWZuOiAwMDAwNTI5NQ0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMzowN10gICBnZm46IDAwMDA1Mjk2ICBtZm46IDAwMDA1Mjk2DQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMzOjA3XSAgIGdmbjogMDAwMDUyOTcgIG1mbjogMDAwMDUyOTcNCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDddICAgZ2ZuOiAwMDAwNTI5OCAgbWZuOiAwMDAw
-NTI5OA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowN10gICBnZm46IDAwMDA1Mjk5ICBt
-Zm46IDAwMDA1Mjk5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA3XSAgIGdmbjogMDAw
-MDUyOWEgIG1mbjogMDAwMDUyOWENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDddICAg
-Z2ZuOiAwMDAwNTI5YiAgbWZuOiAwMDAwNTI5Yg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-MzowN10gICBnZm46IDAwMDA1MjljICBtZm46IDAwMDA1MjljDQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMzOjA3XSAgIGdmbjogMDAwMDUyOWQgIG1mbjogMDAwMDUyOWQNCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzM6MDddICAgZ2ZuOiAwMDAwNTI5ZSAgbWZuOiAwMDAwNTI5ZQ0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowN10gICBnZm46IDAwMDA1MjlmICBtZm46IDAw
-MDA1MjlmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA3XSAgIGdmbjogMDAwMDUyYTAg
-IG1mbjogMDAwMDUyYTANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDddICAgZ2ZuOiAw
-MDAwNTJhMSAgbWZuOiAwMDAwNTJhMQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowN10g
-ICBnZm46IDAwMDA1MmEyICBtZm46IDAwMDA1MmEyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMzOjA3XSAgIGdmbjogMDAwMDUyYTMgIG1mbjogMDAwMDUyYTMNCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzM6MDddICAgZ2ZuOiAwMDAwNTJhNCAgbWZuOiAwMDAwNTJhNA0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMzowN10gICBnZm46IDAwMDA1MmE1ICBtZm46IDAwMDA1MmE1
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA3XSAgIGdmbjogMDAwMDUyYTYgIG1mbjog
-MDAwMDUyYTYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDddICAgZ2ZuOiAwMDAwNTJh
-NyAgbWZuOiAwMDAwNTJhNw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowN10gICBnZm46
-IDAwMDA1MmE4ICBtZm46IDAwMDA1MmE4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA3
-XSAgIGdmbjogMDAwMDUyYTkgIG1mbjogMDAwMDUyYTkNCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzM6MDddICAgZ2ZuOiAwMDAwNTJhYSAgbWZuOiAwMDAwNTJhYQ0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMzowN10gICBnZm46IDAwMDA1MmFiICBtZm46IDAwMDA1MmFiDQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA3XSAgIGdmbjogMDAwMDUyYWMgIG1mbjogMDAwMDUy
-YWMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDddICAgZ2ZuOiAwMDAwNTJhZCAgbWZu
-OiAwMDAwNTJhZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowN10gICBnZm46IDAwMDA1
-MmFlICBtZm46IDAwMDA1MmFlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA4XSAgIGdm
-bjogMDAwMDUyYWYgIG1mbjogMDAwMDUyYWYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6
-MDhdICAgZ2ZuOiAwMDAwNTJiMCAgbWZuOiAwMDAwNTJiMA0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMzowOF0gICBnZm46IDAwMDA1MmIxICBtZm46IDAwMDA1MmIxDQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMzOjA4XSAgIGdmbjogMDAwMDUyYjIgIG1mbjogMDAwMDUyYjINCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDhdICAgZ2ZuOiAwMDAwNTJiMyAgbWZuOiAwMDAw
-NTJiMw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowOF0gICBnZm46IDAwMDA1MmI0ICBt
-Zm46IDAwMDA1MmI0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA4XSAgIGdmbjogMDAw
-MDUyYjUgIG1mbjogMDAwMDUyYjUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDhdICAg
-Z2ZuOiAwMDAwNTJiNiAgbWZuOiAwMDAwNTJiNg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-MzowOF0gICBnZm46IDAwMDA1MmI3ICBtZm46IDAwMDA1MmI3DQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMzOjA4XSAgIGdmbjogMDAwMDUyYjggIG1mbjogMDAwMDUyYjgNCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzM6MDhdICAgZ2ZuOiAwMDAwNTJiOSAgbWZuOiAwMDAwNTJiOQ0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowOF0gICBnZm46IDAwMDA1MmJhICBtZm46IDAw
-MDA1MmJhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA4XSAgIGdmbjogMDAwMDUyYmIg
-IG1mbjogMDAwMDUyYmINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDhdICAgZ2ZuOiAw
-MDAwNTJiYyAgbWZuOiAwMDAwNTJiYw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowOF0g
-ICBnZm46IDAwMDA1MmJkICBtZm46IDAwMDA1MmJkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMzOjA4XSAgIGdmbjogMDAwMDUyYmUgIG1mbjogMDAwMDUyYmUNCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzM6MDhdICAgZ2ZuOiAwMDAwNTJiZiAgbWZuOiAwMDAwNTJiZg0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMzowOF0gICBnZm46IDAwMDA1MmMwICBtZm46IDAwMDA1MmMw
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA4XSAgIGdmbjogMDAwMDUyYzEgIG1mbjog
-MDAwMDUyYzENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDhdICAgZ2ZuOiAwMDAwNTJj
-MiAgbWZuOiAwMDAwNTJjMg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowOF0gICBnZm46
-IDAwMDA1MmMzICBtZm46IDAwMDA1MmMzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA4
-XSAgIGdmbjogMDAwMDUyYzQgIG1mbjogMDAwMDUyYzQNCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzM6MDhdICAgZ2ZuOiAwMDAwNTJjNSAgbWZuOiAwMDAwNTJjNQ0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMzowOF0gICBnZm46IDAwMDA1MmM2ICBtZm46IDAwMDA1MmM2DQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA4XSAgIGdmbjogMDAwMDUyYzcgIG1mbjogMDAwMDUy
-YzcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDhdICAgZ2ZuOiAwMDAwNTJjOCAgbWZu
-OiAwMDAwNTJjOA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowOF0gICBnZm46IDAwMDA1
-MmM5ICBtZm46IDAwMDA1MmM5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA4XSAgIGdm
-bjogMDAwMDUyY2EgIG1mbjogMDAwMDUyY2ENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6
-MDhdICAgZ2ZuOiAwMDAwNTJjYiAgbWZuOiAwMDAwNTJjYg0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMzowOF0gICBnZm46IDAwMDA1MmNjICBtZm46IDAwMDA1MmNjDQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMzOjA4XSAgIGdmbjogMDAwMDUyY2QgIG1mbjogMDAwMDUyY2QNCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDhdICAgZ2ZuOiAwMDAwNTJjZSAgbWZuOiAwMDAw
-NTJjZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowOF0gICBnZm46IDAwMDA1MmNmICBt
-Zm46IDAwMDA1MmNmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA4XSAgIGdmbjogMDAw
-MDUyZDAgIG1mbjogMDAwMDUyZDANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDhdICAg
-Z2ZuOiAwMDAwNTJkMSAgbWZuOiAwMDAwNTJkMQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-MzowOF0gICBnZm46IDAwMDA1MmQyICBtZm46IDAwMDA1MmQyDQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMzOjA4XSAgIGdmbjogMDAwMDUyZDMgIG1mbjogMDAwMDUyZDMNCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzM6MDhdICAgZ2ZuOiAwMDAwNTJkNCAgbWZuOiAwMDAwNTJkNA0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowOF0gICBnZm46IDAwMDA1MmQ1ICBtZm46IDAw
-MDA1MmQ1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA4XSAgIGdmbjogMDAwMDUyZDYg
-IG1mbjogMDAwMDUyZDYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDhdICAgZ2ZuOiAw
-MDAwNTJkNyAgbWZuOiAwMDAwNTJkNw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowOF0g
-ICBnZm46IDAwMDA1MmQ4ICBtZm46IDAwMDA1MmQ4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMzOjA4XSAgIGdmbjogMDAwMDUyZDkgIG1mbjogMDAwMDUyZDkNCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzM6MDhdICAgZ2ZuOiAwMDAwNTJkYSAgbWZuOiAwMDAwNTJkYQ0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMzowOF0gICBnZm46IDAwMDA1MmRiICBtZm46IDAwMDA1MmRi
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA4XSAgIGdmbjogMDAwMDUyZGMgIG1mbjog
-MDAwMDUyZGMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDhdICAgZ2ZuOiAwMDAwNTJk
-ZCAgbWZuOiAwMDAwNTJkZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowOF0gICBnZm46
-IDAwMDA1MmRlICBtZm46IDAwMDA1MmRlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA4
-XSAgIGdmbjogMDAwMDUyZGYgIG1mbjogMDAwMDUyZGYNCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzM6MDhdICAgZ2ZuOiAwMDAwNTJlMCAgbWZuOiAwMDAwNTJlMA0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMzowOF0gICBnZm46IDAwMDA1MmUxICBtZm46IDAwMDA1MmUxDQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA4XSAgIGdmbjogMDAwMDUyZTIgIG1mbjogMDAwMDUy
-ZTINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDhdICAgZ2ZuOiAwMDAwNTJlMyAgbWZu
-OiAwMDAwNTJlMw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowOF0gICBnZm46IDAwMDA1
-MmU0ICBtZm46IDAwMDA1MmU0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA4XSAgIGdm
-bjogMDAwMDUyZTUgIG1mbjogMDAwMDUyZTUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6
-MDhdICAgZ2ZuOiAwMDAwNTJlNiAgbWZuOiAwMDAwNTJlNg0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMzowOF0gICBnZm46IDAwMDA1MmU3ICBtZm46IDAwMDA1MmU3DQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMzOjA4XSAgIGdmbjogMDAwMDUyZTggIG1mbjogMDAwMDUyZTgNCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDhdICAgZ2ZuOiAwMDAwNTJlOSAgbWZuOiAwMDAw
-NTJlOQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowOF0gICBnZm46IDAwMDA1MmVhICBt
-Zm46IDAwMDA1MmVhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA4XSAgIGdmbjogMDAw
-MDUyZWIgIG1mbjogMDAwMDUyZWINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDhdICAg
-Z2ZuOiAwMDAwNTJlYyAgbWZuOiAwMDAwNTJlYw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-MzowOF0gICBnZm46IDAwMDA1MmVkICBtZm46IDAwMDA1MmVkDQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMzOjA4XSAgIGdmbjogMDAwMDUyZWUgIG1mbjogMDAwMDUyZWUNCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzM6MDldICAgZ2ZuOiAwMDAwNTJlZiAgbWZuOiAwMDAwNTJlZg0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowOV0gICBnZm46IDAwMDA1MmYwICBtZm46IDAw
-MDA1MmYwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA5XSAgIGdmbjogMDAwMDUyZjEg
-IG1mbjogMDAwMDUyZjENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDldICAgZ2ZuOiAw
-MDAwNTJmMiAgbWZuOiAwMDAwNTJmMg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowOV0g
-ICBnZm46IDAwMDA1MmYzICBtZm46IDAwMDA1MmYzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMzOjA5XSAgIGdmbjogMDAwMDUyZjQgIG1mbjogMDAwMDUyZjQNCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzM6MDldICAgZ2ZuOiAwMDAwNTJmNSAgbWZuOiAwMDAwNTJmNQ0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMzowOV0gICBnZm46IDAwMDA1MmY2ICBtZm46IDAwMDA1MmY2
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA5XSAgIGdmbjogMDAwMDUyZjcgIG1mbjog
-MDAwMDUyZjcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDldICAgZ2ZuOiAwMDAwNTJm
-OCAgbWZuOiAwMDAwNTJmOA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowOV0gICBnZm46
-IDAwMDA1MmY5ICBtZm46IDAwMDA1MmY5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA5
-XSAgIGdmbjogMDAwMDUyZmEgIG1mbjogMDAwMDUyZmENCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzM6MDldICAgZ2ZuOiAwMDAwNTJmYiAgbWZuOiAwMDAwNTJmYg0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMzowOV0gICBnZm46IDAwMDA1MmZjICBtZm46IDAwMDA1MmZjDQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA5XSAgIGdmbjogMDAwMDUyZmQgIG1mbjogMDAwMDUy
-ZmQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDldICAgZ2ZuOiAwMDAwNTJmZSAgbWZu
-OiAwMDAwNTJmZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowOV0gICBnZm46IDAwMDA1
-MmZmICBtZm46IDAwMDA1MmZmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA5XSAgIGdm
-bjogMDAwMDUzMDAgIG1mbjogMDAwMDUzMDANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6
-MDldICAgZ2ZuOiAwMDAwNTMwMSAgbWZuOiAwMDAwNTMwMQ0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMzowOV0gICBnZm46IDAwMDA1MzAyICBtZm46IDAwMDA1MzAyDQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMzOjA5XSAgIGdmbjogMDAwMDUzMDMgIG1mbjogMDAwMDUzMDMNCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDldICAgZ2ZuOiAwMDAwNTMwNCAgbWZuOiAwMDAw
-NTMwNA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowOV0gICBnZm46IDAwMDA1MzA1ICBt
-Zm46IDAwMDA1MzA1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA5XSAgIGdmbjogMDAw
-MDUzMDYgIG1mbjogMDAwMDUzMDYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDldICAg
-Z2ZuOiAwMDAwNTMwNyAgbWZuOiAwMDAwNTMwNw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-MzowOV0gICBnZm46IDAwMDA1MzA4ICBtZm46IDAwMDA1MzA4DQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMzOjA5XSAgIGdmbjogMDAwMDUzMDkgIG1mbjogMDAwMDUzMDkNCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzM6MDldICAgZ2ZuOiAwMDAwNTMwYSAgbWZuOiAwMDAwNTMwYQ0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowOV0gICBnZm46IDAwMDA1MzBiICBtZm46IDAw
-MDA1MzBiDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA5XSAgIGdmbjogMDAwMDUzMGMg
-IG1mbjogMDAwMDUzMGMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDldICAgZ2ZuOiAw
-MDAwNTMwZCAgbWZuOiAwMDAwNTMwZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowOV0g
-ICBnZm46IDAwMDA1MzBlICBtZm46IDAwMDA1MzBlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMzOjA5XSAgIGdmbjogMDAwMDUzMGYgIG1mbjogMDAwMDUzMGYNCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzM6MDldICAgZ2ZuOiAwMDAwNTMxMCAgbWZuOiAwMDAwNTMxMA0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMzowOV0gICBnZm46IDAwMDA1MzExICBtZm46IDAwMDA1MzEx
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA5XSAgIGdmbjogMDAwMDUzMTIgIG1mbjog
-MDAwMDUzMTINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDldICAgZ2ZuOiAwMDAwNTMx
-MyAgbWZuOiAwMDAwNTMxMw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowOV0gICBnZm46
-IDAwMDA1MzE0ICBtZm46IDAwMDA1MzE0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA5
-XSAgIGdmbjogMDAwMDUzMTUgIG1mbjogMDAwMDUzMTUNCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzM6MDldICAgZ2ZuOiAwMDAwNTMxNiAgbWZuOiAwMDAwNTMxNg0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMzowOV0gICBnZm46IDAwMDA1MzE3ICBtZm46IDAwMDA1MzE3DQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA5XSAgIGdmbjogMDAwMDUzMTggIG1mbjogMDAwMDUz
-MTgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDldICAgZ2ZuOiAwMDAwNTMxOSAgbWZu
-OiAwMDAwNTMxOQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowOV0gICBnZm46IDAwMDA1
-MzFhICBtZm46IDAwMDA1MzFhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA5XSAgIGdm
-bjogMDAwMDUzMWIgIG1mbjogMDAwMDUzMWINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6
-MDldICAgZ2ZuOiAwMDAwNTMxYyAgbWZuOiAwMDAwNTMxYw0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMzowOV0gICBnZm46IDAwMDA1MzFkICBtZm46IDAwMDA1MzFkDQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMzOjA5XSAgIGdmbjogMDAwMDUzMWUgIG1mbjogMDAwMDUzMWUNCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDldICAgZ2ZuOiAwMDAwNTMxZiAgbWZuOiAwMDAw
-NTMxZg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowOV0gICBnZm46IDAwMDA1MzIwICBt
-Zm46IDAwMDA1MzIwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA5XSAgIGdmbjogMDAw
-MDUzMjEgIG1mbjogMDAwMDUzMjENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDldICAg
-Z2ZuOiAwMDAwNTMyMiAgbWZuOiAwMDAwNTMyMg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-MzowOV0gICBnZm46IDAwMDA1MzIzICBtZm46IDAwMDA1MzIzDQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMzOjA5XSAgIGdmbjogMDAwMDUzMjQgIG1mbjogMDAwMDUzMjQNCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzM6MDldICAgZ2ZuOiAwMDAwNTMyNSAgbWZuOiAwMDAwNTMyNQ0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowOV0gICBnZm46IDAwMDA1MzI2ICBtZm46IDAw
-MDA1MzI2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA5XSAgIGdmbjogMDAwMDUzMjcg
-IG1mbjogMDAwMDUzMjcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDldICAgZ2ZuOiAw
-MDAwNTMyOCAgbWZuOiAwMDAwNTMyOA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzowOV0g
-ICBnZm46IDAwMDA1MzI5ICBtZm46IDAwMDA1MzI5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMzOjA5XSAgIGdmbjogMDAwMDUzMmEgIG1mbjogMDAwMDUzMmENCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzM6MDldICAgZ2ZuOiAwMDAwNTMyYiAgbWZuOiAwMDAwNTMyYg0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMzowOV0gICBnZm46IDAwMDA1MzJjICBtZm46IDAwMDA1MzJj
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjA5XSAgIGdmbjogMDAwMDUzMmQgIG1mbjog
-MDAwMDUzMmQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MDldICAgZ2ZuOiAwMDAwNTMy
-ZSAgbWZuOiAwMDAwNTMyZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxMF0gICBnZm46
-IDAwMDA1MzJmICBtZm46IDAwMDA1MzJmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjEw
-XSAgIGdmbjogMDAwMDUzMzAgIG1mbjogMDAwMDUzMzANCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzM6MTBdICAgZ2ZuOiAwMDAwNTMzMSAgbWZuOiAwMDAwNTMzMQ0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMzoxMF0gICBnZm46IDAwMDA1MzMyICBtZm46IDAwMDA1MzMyDQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMzOjEwXSAgIGdmbjogMDAwMDUzMzMgIG1mbjogMDAwMDUz
-MzMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTBdICAgZ2ZuOiAwMDAwNTMzNCAgbWZu
-OiAwMDAwNTMzNA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxMF0gICBnZm46IDAwMDA1
-MzM1ICBtZm46IDAwMDA1MzM1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjEwXSAgIGdm
-bjogMDAwMDUzMzYgIG1mbjogMDAwMDUzMzYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6
-MTBdICAgZ2ZuOiAwMDAwNTMzNyAgbWZuOiAwMDAwNTMzNw0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMzoxMF0gICBnZm46IDAwMDA1MzM4ICBtZm46IDAwMDA1MzM4DQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMzOjEwXSAgIGdmbjogMDAwMDUzMzkgIG1mbjogMDAwMDUzMzkNCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTBdICAgZ2ZuOiAwMDAwNTMzYSAgbWZuOiAwMDAw
-NTMzYQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxMF0gICBnZm46IDAwMDA1MzNiICBt
-Zm46IDAwMDA1MzNiDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjEwXSAgIGdmbjogMDAw
-MDUzM2MgIG1mbjogMDAwMDUzM2MNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTBdICAg
-Z2ZuOiAwMDAwNTMzZCAgbWZuOiAwMDAwNTMzZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-MzoxMF0gICBnZm46IDAwMDA1MzNlICBtZm46IDAwMDA1MzNlDQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMzOjEwXSAgIGdmbjogMDAwMDUzM2YgIG1mbjogMDAwMDUzM2YNCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzM6MTBdICAgZ2ZuOiAwMDAwNTM0MCAgbWZuOiAwMDAwNTM0MA0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxMF0gICBnZm46IDAwMDA1MzQxICBtZm46IDAw
-MDA1MzQxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjEwXSAgIGdmbjogMDAwMDUzNDIg
-IG1mbjogMDAwMDUzNDINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTBdICAgZ2ZuOiAw
-MDAwNTM0MyAgbWZuOiAwMDAwNTM0Mw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxMF0g
-ICBnZm46IDAwMDA1MzQ0ICBtZm46IDAwMDA1MzQ0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMzOjEwXSAgIGdmbjogMDAwMDUzNDUgIG1mbjogMDAwMDUzNDUNCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzM6MTBdICAgZ2ZuOiAwMDAwNTM0NiAgbWZuOiAwMDAwNTM0Ng0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMzoxMF0gICBnZm46IDAwMDA1MzQ3ICBtZm46IDAwMDA1MzQ3
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjEwXSAgIGdmbjogMDAwMDUzNDggIG1mbjog
-MDAwMDUzNDgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTBdICAgZ2ZuOiAwMDAwNTM0
-OSAgbWZuOiAwMDAwNTM0OQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxMF0gICBnZm46
-IDAwMDA1MzRhICBtZm46IDAwMDA1MzRhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjEw
-XSAgIGdmbjogMDAwMDUzNGIgIG1mbjogMDAwMDUzNGINCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzM6MTBdICAgZ2ZuOiAwMDAwNTM0YyAgbWZuOiAwMDAwNTM0Yw0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMzoxMF0gICBnZm46IDAwMDA1MzRkICBtZm46IDAwMDA1MzRkDQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMzOjEwXSAgIGdmbjogMDAwMDUzNGUgIG1mbjogMDAwMDUz
-NGUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTBdICAgZ2ZuOiAwMDAwNTM0ZiAgbWZu
-OiAwMDAwNTM0Zg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxMF0gICBnZm46IDAwMDA1
-MzUwICBtZm46IDAwMDA1MzUwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjEwXSAgIGdm
-bjogMDAwMDUzNTEgIG1mbjogMDAwMDUzNTENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6
-MTBdICAgZ2ZuOiAwMDAwNTM1MiAgbWZuOiAwMDAwNTM1Mg0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMzoxMF0gICBnZm46IDAwMDA1MzUzICBtZm46IDAwMDA1MzUzDQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMzOjEwXSAgIGdmbjogMDAwMDUzNTQgIG1mbjogMDAwMDUzNTQNCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTBdICAgZ2ZuOiAwMDAwNTM1NSAgbWZuOiAwMDAw
-NTM1NQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxMF0gICBnZm46IDAwMDA1MzU2ICBt
-Zm46IDAwMDA1MzU2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjEwXSAgIGdmbjogMDAw
-MDUzNTcgIG1mbjogMDAwMDUzNTcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTBdICAg
-Z2ZuOiAwMDAwNTM1OCAgbWZuOiAwMDAwNTM1OA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-MzoxMF0gICBnZm46IDAwMDA1MzU5ICBtZm46IDAwMDA1MzU5DQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMzOjEwXSAgIGdmbjogMDAwMDUzNWEgIG1mbjogMDAwMDUzNWENCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzM6MTBdICAgZ2ZuOiAwMDAwNTM1YiAgbWZuOiAwMDAwNTM1Yg0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxMF0gICBnZm46IDAwMDA1MzVjICBtZm46IDAw
-MDA1MzVjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjEwXSAgIGdmbjogMDAwMDUzNWQg
-IG1mbjogMDAwMDUzNWQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTBdICAgZ2ZuOiAw
-MDAwNTM1ZSAgbWZuOiAwMDAwNTM1ZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxMF0g
-ICBnZm46IDAwMDA1MzVmICBtZm46IDAwMDA1MzVmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMzOjEwXSAgIGdmbjogMDAwMDUzNjAgIG1mbjogMDAwMDUzNjANCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzM6MTBdICAgZ2ZuOiAwMDAwNTM2MSAgbWZuOiAwMDAwNTM2MQ0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMzoxMF0gICBnZm46IDAwMDA1MzYyICBtZm46IDAwMDA1MzYy
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjEwXSAgIGdmbjogMDAwMDUzNjMgIG1mbjog
-MDAwMDUzNjMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTBdICAgZ2ZuOiAwMDAwNTM2
-NCAgbWZuOiAwMDAwNTM2NA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxMF0gICBnZm46
-IDAwMDA1MzY1ICBtZm46IDAwMDA1MzY1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjEw
-XSAgIGdmbjogMDAwMDUzNjYgIG1mbjogMDAwMDUzNjYNCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzM6MTBdICAgZ2ZuOiAwMDAwNTM2NyAgbWZuOiAwMDAwNTM2Nw0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMzoxMF0gICBnZm46IDAwMDA1MzY4ICBtZm46IDAwMDA1MzY4DQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMzOjEwXSAgIGdmbjogMDAwMDUzNjkgIG1mbjogMDAwMDUz
-NjkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTBdICAgZ2ZuOiAwMDAwNTM2YSAgbWZu
-OiAwMDAwNTM2YQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxMF0gICBnZm46IDAwMDA1
-MzZiICBtZm46IDAwMDA1MzZiDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjEwXSAgIGdm
-bjogMDAwMDUzNmMgIG1mbjogMDAwMDUzNmMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6
-MTBdICAgZ2ZuOiAwMDAwNTM2ZCAgbWZuOiAwMDAwNTM2ZA0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMzoxMF0gICBnZm46IDAwMDA1MzZlICBtZm46IDAwMDA1MzZlDQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMzOjExXSAgIGdmbjogMDAwMDUzNmYgIG1mbjogMDAwMDUzNmYNCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTFdICAgZ2ZuOiAwMDAwNTM3MCAgbWZuOiAwMDAw
-NTM3MA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxMV0gICBnZm46IDAwMDA1MzcxICBt
-Zm46IDAwMDA1MzcxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjExXSAgIGdmbjogMDAw
-MDUzNzIgIG1mbjogMDAwMDUzNzINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTFdICAg
-Z2ZuOiAwMDAwNTM3MyAgbWZuOiAwMDAwNTM3Mw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-MzoxMV0gICBnZm46IDAwMDA1Mzc0ICBtZm46IDAwMDA1Mzc0DQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMzOjExXSAgIGdmbjogMDAwMDUzNzUgIG1mbjogMDAwMDUzNzUNCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzM6MTFdICAgZ2ZuOiAwMDAwNTM3NiAgbWZuOiAwMDAwNTM3Ng0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxMV0gICBnZm46IDAwMDA1Mzc3ICBtZm46IDAw
-MDA1Mzc3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjExXSAgIGdmbjogMDAwMDUzNzgg
-IG1mbjogMDAwMDUzNzgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTFdICAgZ2ZuOiAw
-MDAwNTM3OSAgbWZuOiAwMDAwNTM3OQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxMV0g
-ICBnZm46IDAwMDA1MzdhICBtZm46IDAwMDA1MzdhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMzOjExXSAgIGdmbjogMDAwMDUzN2IgIG1mbjogMDAwMDUzN2INCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzM6MTFdICAgZ2ZuOiAwMDAwNTM3YyAgbWZuOiAwMDAwNTM3Yw0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMzoxMV0gICBnZm46IDAwMDA1MzdkICBtZm46IDAwMDA1Mzdk
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjExXSAgIGdmbjogMDAwMDUzN2UgIG1mbjog
-MDAwMDUzN2UNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTFdICAgZ2ZuOiAwMDAwNTM3
-ZiAgbWZuOiAwMDAwNTM3Zg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxMV0gICBnZm46
-IDAwMDA1MzgwICBtZm46IDAwMDA1MzgwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjEx
-XSAgIGdmbjogMDAwMDUzODEgIG1mbjogMDAwMDUzODENCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzM6MTFdICAgZ2ZuOiAwMDAwNTM4MiAgbWZuOiAwMDAwNTM4Mg0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMzoxMV0gICBnZm46IDAwMDA1MzgzICBtZm46IDAwMDA1MzgzDQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMzOjExXSAgIGdmbjogMDAwMDUzODQgIG1mbjogMDAwMDUz
-ODQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTFdICAgZ2ZuOiAwMDAwNTM4NSAgbWZu
-OiAwMDAwNTM4NQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxMV0gICBnZm46IDAwMDA1
-Mzg2ICBtZm46IDAwMDA1Mzg2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjExXSAgIGdm
-bjogMDAwMDUzODcgIG1mbjogMDAwMDUzODcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6
-MTFdICAgZ2ZuOiAwMDAwNTM4OCAgbWZuOiAwMDAwNTM4OA0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMzoxMV0gICBnZm46IDAwMDA1Mzg5ICBtZm46IDAwMDA1Mzg5DQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMzOjExXSAgIGdmbjogMDAwMDUzOGEgIG1mbjogMDAwMDUzOGENCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTFdICAgZ2ZuOiAwMDAwNTM4YiAgbWZuOiAwMDAw
-NTM4Yg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxMV0gICBnZm46IDAwMDA1MzhjICBt
-Zm46IDAwMDA1MzhjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjExXSAgIGdmbjogMDAw
-MDUzOGQgIG1mbjogMDAwMDUzOGQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTFdICAg
-Z2ZuOiAwMDAwNTM4ZSAgbWZuOiAwMDAwNTM4ZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-MzoxMV0gICBnZm46IDAwMDA1MzhmICBtZm46IDAwMDA1MzhmDQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMzOjExXSAgIGdmbjogMDAwMDUzOTAgIG1mbjogMDAwMDUzOTANCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzM6MTFdICAgZ2ZuOiAwMDAwNTM5MSAgbWZuOiAwMDAwNTM5MQ0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxMV0gICBnZm46IDAwMDA1MzkyICBtZm46IDAw
-MDA1MzkyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjExXSAgIGdmbjogMDAwMDUzOTMg
-IG1mbjogMDAwMDUzOTMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTFdICAgZ2ZuOiAw
-MDAwNTM5NCAgbWZuOiAwMDAwNTM5NA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxMV0g
-ICBnZm46IDAwMDA1Mzk1ICBtZm46IDAwMDA1Mzk1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMzOjExXSAgIGdmbjogMDAwMDUzOTYgIG1mbjogMDAwMDUzOTYNCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzM6MTFdICAgZ2ZuOiAwMDAwNTM5NyAgbWZuOiAwMDAwNTM5Nw0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMzoxMV0gICBnZm46IDAwMDA1Mzk4ICBtZm46IDAwMDA1Mzk4
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjExXSAgIGdmbjogMDAwMDUzOTkgIG1mbjog
-MDAwMDUzOTkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTFdICAgZ2ZuOiAwMDAwNTM5
-YSAgbWZuOiAwMDAwNTM5YQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxMV0gICBnZm46
-IDAwMDA1MzliICBtZm46IDAwMDA1MzliDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjEx
-XSAgIGdmbjogMDAwMDUzOWMgIG1mbjogMDAwMDUzOWMNCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzM6MTFdICAgZ2ZuOiAwMDAwNTM5ZCAgbWZuOiAwMDAwNTM5ZA0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMzoxMV0gICBnZm46IDAwMDA1MzllICBtZm46IDAwMDA1MzllDQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMzOjExXSAgIGdmbjogMDAwMDUzOWYgIG1mbjogMDAwMDUz
-OWYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTFdICAgZ2ZuOiAwMDAwNTNhMCAgbWZu
-OiAwMDAwNTNhMA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxMV0gICBnZm46IDAwMDA1
-M2ExICBtZm46IDAwMDA1M2ExDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjExXSAgIGdm
-bjogMDAwMDUzYTIgIG1mbjogMDAwMDUzYTINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6
-MTFdICAgZ2ZuOiAwMDAwNTNhMyAgbWZuOiAwMDAwNTNhMw0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMzoxMV0gICBnZm46IDAwMDA1M2E0ICBtZm46IDAwMDA1M2E0DQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMzOjExXSAgIGdmbjogMDAwMDUzYTUgIG1mbjogMDAwMDUzYTUNCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTFdICAgZ2ZuOiAwMDAwNTNhNiAgbWZuOiAwMDAw
-NTNhNg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxMV0gICBnZm46IDAwMDA1M2E3ICBt
-Zm46IDAwMDA1M2E3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjExXSAgIGdmbjogMDAw
-MDUzYTggIG1mbjogMDAwMDUzYTgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTFdICAg
-Z2ZuOiAwMDAwNTNhOSAgbWZuOiAwMDAwNTNhOQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-MzoxMV0gICBnZm46IDAwMDA1M2FhICBtZm46IDAwMDA1M2FhDQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMzOjExXSAgIGdmbjogMDAwMDUzYWIgIG1mbjogMDAwMDUzYWINCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzM6MTFdICAgZ2ZuOiAwMDAwNTNhYyAgbWZuOiAwMDAwNTNhYw0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxMV0gICBnZm46IDAwMDA1M2FkICBtZm46IDAw
-MDA1M2FkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjExXSAgIGdmbjogMDAwMDUzYWUg
-IG1mbjogMDAwMDUzYWUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTJdICAgZ2ZuOiAw
-MDAwNTNhZiAgbWZuOiAwMDAwNTNhZg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxMl0g
-ICBnZm46IDAwMDA1M2IwICBtZm46IDAwMDA1M2IwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMzOjEyXSAgIGdmbjogMDAwMDUzYjEgIG1mbjogMDAwMDUzYjENCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzM6MTJdICAgZ2ZuOiAwMDAwNTNiMiAgbWZuOiAwMDAwNTNiMg0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMzoxMl0gICBnZm46IDAwMDA1M2IzICBtZm46IDAwMDA1M2Iz
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjEyXSAgIGdmbjogMDAwMDUzYjQgIG1mbjog
-MDAwMDUzYjQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTJdICAgZ2ZuOiAwMDAwNTNi
-NSAgbWZuOiAwMDAwNTNiNQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxMl0gICBnZm46
-IDAwMDA1M2I2ICBtZm46IDAwMDA1M2I2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjEy
-XSAgIGdmbjogMDAwMDUzYjcgIG1mbjogMDAwMDUzYjcNCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzM6MTJdICAgZ2ZuOiAwMDAwNTNiOCAgbWZuOiAwMDAwNTNiOA0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMzoxMl0gICBnZm46IDAwMDA1M2I5ICBtZm46IDAwMDA1M2I5DQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMzOjEyXSAgIGdmbjogMDAwMDUzYmEgIG1mbjogMDAwMDUz
-YmENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTJdICAgZ2ZuOiAwMDAwNTNiYiAgbWZu
-OiAwMDAwNTNiYg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxMl0gICBnZm46IDAwMDA1
-M2JjICBtZm46IDAwMDA1M2JjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjEyXSAgIGdm
-bjogMDAwMDUzYmQgIG1mbjogMDAwMDUzYmQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6
-MTJdICAgZ2ZuOiAwMDAwNTNiZSAgbWZuOiAwMDAwNTNiZQ0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMzoxMl0gICBnZm46IDAwMDA1M2JmICBtZm46IDAwMDA1M2JmDQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMzOjEyXSAgIGdmbjogMDAwMDUzYzAgIG1mbjogMDAwMDUzYzANCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTJdICAgZ2ZuOiAwMDAwNTNjMSAgbWZuOiAwMDAw
-NTNjMQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxMl0gICBnZm46IDAwMDA1M2MyICBt
-Zm46IDAwMDA1M2MyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjEyXSAgIGdmbjogMDAw
-MDUzYzMgIG1mbjogMDAwMDUzYzMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTJdICAg
-Z2ZuOiAwMDAwNTNjNCAgbWZuOiAwMDAwNTNjNA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-MzoxMl0gICBnZm46IDAwMDA1M2M1ICBtZm46IDAwMDA1M2M1DQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMzOjEyXSAgIGdmbjogMDAwMDUzYzYgIG1mbjogMDAwMDUzYzYNCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzM6MTJdICAgZ2ZuOiAwMDAwNTNjNyAgbWZuOiAwMDAwNTNjNw0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxMl0gICBnZm46IDAwMDA1M2M4ICBtZm46IDAw
-MDA1M2M4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjEyXSAgIGdmbjogMDAwMDUzYzkg
-IG1mbjogMDAwMDUzYzkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTJdICAgZ2ZuOiAw
-MDAwNTNjYSAgbWZuOiAwMDAwNTNjYQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxMl0g
-ICBnZm46IDAwMDA1M2NiICBtZm46IDAwMDA1M2NiDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMzOjEyXSAgIGdmbjogMDAwMDUzY2MgIG1mbjogMDAwMDUzY2MNCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzM6MTJdICAgZ2ZuOiAwMDAwNTNjZCAgbWZuOiAwMDAwNTNjZA0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMzoxMl0gICBnZm46IDAwMDA1M2NlICBtZm46IDAwMDA1M2Nl
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjEyXSAgIGdmbjogMDAwMDUzY2YgIG1mbjog
-MDAwMDUzY2YNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTJdICAgZ2ZuOiAwMDAwNTNk
-MCAgbWZuOiAwMDAwNTNkMA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxMl0gICBnZm46
-IDAwMDA1M2QxICBtZm46IDAwMDA1M2QxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjEy
-XSAgIGdmbjogMDAwMDUzZDIgIG1mbjogMDAwMDUzZDINCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzM6MTJdICAgZ2ZuOiAwMDAwNTNkMyAgbWZuOiAwMDAwNTNkMw0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMzoxMl0gICBnZm46IDAwMDA1M2Q0ICBtZm46IDAwMDA1M2Q0DQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMzOjEyXSAgIGdmbjogMDAwMDUzZDUgIG1mbjogMDAwMDUz
-ZDUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTJdICAgZ2ZuOiAwMDAwNTNkNiAgbWZu
-OiAwMDAwNTNkNg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxMl0gICBnZm46IDAwMDA1
-M2Q3ICBtZm46IDAwMDA1M2Q3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjEyXSAgIGdm
-bjogMDAwMDUzZDggIG1mbjogMDAwMDUzZDgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6
-MTJdICAgZ2ZuOiAwMDAwNTNkOSAgbWZuOiAwMDAwNTNkOQ0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMzoxMl0gICBnZm46IDAwMDA1M2RhICBtZm46IDAwMDA1M2RhDQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMzOjEyXSAgIGdmbjogMDAwMDUzZGIgIG1mbjogMDAwMDUzZGINCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTJdICAgZ2ZuOiAwMDAwNTNkYyAgbWZuOiAwMDAw
-NTNkYw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxMl0gICBnZm46IDAwMDA1M2RkICBt
-Zm46IDAwMDA1M2RkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjEyXSAgIGdmbjogMDAw
-MDUzZGUgIG1mbjogMDAwMDUzZGUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTJdICAg
-Z2ZuOiAwMDAwNTNkZiAgbWZuOiAwMDAwNTNkZg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-MzoxMl0gICBnZm46IDAwMDA1M2UwICBtZm46IDAwMDA1M2UwDQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMzOjEyXSAgIGdmbjogMDAwMDUzZTEgIG1mbjogMDAwMDUzZTENCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzM6MTJdICAgZ2ZuOiAwMDAwNTNlMiAgbWZuOiAwMDAwNTNlMg0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxMl0gICBnZm46IDAwMDA1M2UzICBtZm46IDAw
-MDA1M2UzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjEyXSAgIGdmbjogMDAwMDUzZTQg
-IG1mbjogMDAwMDUzZTQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTJdICAgZ2ZuOiAw
-MDAwNTNlNSAgbWZuOiAwMDAwNTNlNQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxMl0g
-ICBnZm46IDAwMDA1M2U2ICBtZm46IDAwMDA1M2U2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMzOjEyXSAgIGdmbjogMDAwMDUzZTcgIG1mbjogMDAwMDUzZTcNCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzM6MTJdICAgZ2ZuOiAwMDAwNTNlOCAgbWZuOiAwMDAwNTNlOA0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMzoxMl0gICBnZm46IDAwMDA1M2U5ICBtZm46IDAwMDA1M2U5
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjEyXSAgIGdmbjogMDAwMDUzZWEgIG1mbjog
-MDAwMDUzZWENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTJdICAgZ2ZuOiAwMDAwNTNl
-YiAgbWZuOiAwMDAwNTNlYg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxMl0gICBnZm46
-IDAwMDA1M2VjICBtZm46IDAwMDA1M2VjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjEy
-XSAgIGdmbjogMDAwMDUzZWQgIG1mbjogMDAwMDUzZWQNCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzM6MTJdICAgZ2ZuOiAwMDAwNTNlZSAgbWZuOiAwMDAwNTNlZQ0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMzoxM10gICBnZm46IDAwMDA1M2VmICBtZm46IDAwMDA1M2VmDQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMzOjEzXSAgIGdmbjogMDAwMDUzZjAgIG1mbjogMDAwMDUz
-ZjANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTNdICAgZ2ZuOiAwMDAwNTNmMSAgbWZu
-OiAwMDAwNTNmMQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxM10gICBnZm46IDAwMDA1
-M2YyICBtZm46IDAwMDA1M2YyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjEzXSAgIGdm
-bjogMDAwMDUzZjMgIG1mbjogMDAwMDUzZjMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6
-MTNdICAgZ2ZuOiAwMDAwNTNmNCAgbWZuOiAwMDAwNTNmNA0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMzoxM10gICBnZm46IDAwMDA1M2Y1ICBtZm46IDAwMDA1M2Y1DQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMzOjEzXSAgIGdmbjogMDAwMDUzZjYgIG1mbjogMDAwMDUzZjYNCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTNdICAgZ2ZuOiAwMDAwNTNmNyAgbWZuOiAwMDAw
-NTNmNw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxM10gICBnZm46IDAwMDA1M2Y4ICBt
-Zm46IDAwMDA1M2Y4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjEzXSAgIGdmbjogMDAw
-MDUzZjkgIG1mbjogMDAwMDUzZjkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTNdICAg
-Z2ZuOiAwMDAwNTNmYSAgbWZuOiAwMDAwNTNmYQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-MzoxM10gICBnZm46IDAwMDA1M2ZiICBtZm46IDAwMDA1M2ZiDQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMzOjEzXSAgIGdmbjogMDAwMDUzZmMgIG1mbjogMDAwMDUzZmMNCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzM6MTNdICAgZ2ZuOiAwMDAwNTNmZCAgbWZuOiAwMDAwNTNmZA0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxM10gICBnZm46IDAwMDA1M2ZlICBtZm46IDAw
-MDA1M2ZlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjEzXSAgIGdmbjogMDAwMDUzZmYg
-IG1mbjogMDAwMDUzZmYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTNdICAgZ2ZuOiAw
-MDAwNTQwMCAgbWZuOiAwMDAwNTQwMA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxM10g
-ICBnZm46IDAwMDA1NDAxICBtZm46IDAwMDA1NDAxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMzOjEzXSAgIGdmbjogMDAwMDU0MDIgIG1mbjogMDAwMDU0MDINCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzM6MTNdICAgZ2ZuOiAwMDAwNTQwMyAgbWZuOiAwMDAwNTQwMw0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMzoxM10gICBnZm46IDAwMDA1NDA0ICBtZm46IDAwMDA1NDA0
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjEzXSAgIGdmbjogMDAwMDU0MDUgIG1mbjog
-MDAwMDU0MDUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTNdICAgZ2ZuOiAwMDAwNTQw
-NiAgbWZuOiAwMDAwNTQwNg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxM10gICBnZm46
-IDAwMDA1NDA3ICBtZm46IDAwMDA1NDA3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjEz
-XSAgIGdmbjogMDAwMDU0MDggIG1mbjogMDAwMDU0MDgNCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzM6MTNdICAgZ2ZuOiAwMDAwNTQwOSAgbWZuOiAwMDAwNTQwOQ0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMzoxM10gICBnZm46IDAwMDA1NDBhICBtZm46IDAwMDA1NDBhDQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMzOjEzXSAgIGdmbjogMDAwMDU0MGIgIG1mbjogMDAwMDU0
-MGINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTNdICAgZ2ZuOiAwMDAwNTQwYyAgbWZu
-OiAwMDAwNTQwYw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxM10gICBnZm46IDAwMDA1
-NDBkICBtZm46IDAwMDA1NDBkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjEzXSAgIGdm
-bjogMDAwMDU0MGUgIG1mbjogMDAwMDU0MGUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6
-MTNdICAgZ2ZuOiAwMDAwNTQwZiAgbWZuOiAwMDAwNTQwZg0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMzoxM10gICBnZm46IDAwMDA1NDEwICBtZm46IDAwMDA1NDEwDQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMzOjEzXSAgIGdmbjogMDAwMDU0MTEgIG1mbjogMDAwMDU0MTENCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTNdICAgZ2ZuOiAwMDAwNTQxMiAgbWZuOiAwMDAw
-NTQxMg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxM10gICBnZm46IDAwMDA1NDEzICBt
-Zm46IDAwMDA1NDEzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjEzXSAgIGdmbjogMDAw
-MDU0MTQgIG1mbjogMDAwMDU0MTQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTNdICAg
-Z2ZuOiAwMDAwNTQxNSAgbWZuOiAwMDAwNTQxNQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-MzoxM10gICBnZm46IDAwMDA1NDE2ICBtZm46IDAwMDA1NDE2DQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMzOjEzXSAgIGdmbjogMDAwMDU0MTcgIG1mbjogMDAwMDU0MTcNCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzM6MTNdICAgZ2ZuOiAwMDAwNTQxOCAgbWZuOiAwMDAwNTQxOA0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxM10gICBnZm46IDAwMDA1NDE5ICBtZm46IDAw
-MDA1NDE5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjEzXSAgIGdmbjogMDAwMDU0MWEg
-IG1mbjogMDAwMDU0MWENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTNdICAgZ2ZuOiAw
-MDAwNTQxYiAgbWZuOiAwMDAwNTQxYg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxM10g
-ICBnZm46IDAwMDA1NDFjICBtZm46IDAwMDA1NDFjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMzOjEzXSAgIGdmbjogMDAwMDU0MWQgIG1mbjogMDAwMDU0MWQNCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzM6MTNdICAgZ2ZuOiAwMDAwNTQxZSAgbWZuOiAwMDAwNTQxZQ0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMzoxM10gICBnZm46IDAwMDA1NDFmICBtZm46IDAwMDA1NDFm
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjEzXSAgIGdmbjogMDAwMDU0MjAgIG1mbjog
-MDAwMDU0MjANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTNdICAgZ2ZuOiAwMDAwNTQy
-MSAgbWZuOiAwMDAwNTQyMQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxM10gICBnZm46
-IDAwMDA1NDIyICBtZm46IDAwMDA1NDIyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjEz
-XSAgIGdmbjogMDAwMDU0MjMgIG1mbjogMDAwMDU0MjMNCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzM6MTNdICAgZ2ZuOiAwMDAwNTQyNCAgbWZuOiAwMDAwNTQyNA0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMzoxM10gICBnZm46IDAwMDA1NDI1ICBtZm46IDAwMDA1NDI1DQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMzOjEzXSAgIGdmbjogMDAwMDU0MjYgIG1mbjogMDAwMDU0
-MjYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTNdICAgZ2ZuOiAwMDAwNTQyNyAgbWZu
-OiAwMDAwNTQyNw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxM10gICBnZm46IDAwMDA1
-NDI4ICBtZm46IDAwMDA1NDI4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjEzXSAgIGdm
-bjogMDAwMDU0MjkgIG1mbjogMDAwMDU0MjkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6
-MTNdICAgZ2ZuOiAwMDAwNTQyYSAgbWZuOiAwMDAwNTQyYQ0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMzoxM10gICBnZm46IDAwMDA1NDJiICBtZm46IDAwMDA1NDJiDQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMzOjEzXSAgIGdmbjogMDAwMDU0MmMgIG1mbjogMDAwMDU0MmMNCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTNdICAgZ2ZuOiAwMDAwNTQyZCAgbWZuOiAwMDAw
-NTQyZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxM10gICBnZm46IDAwMDA1NDJlICBt
-Zm46IDAwMDA1NDJlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjE0XSAgIGdmbjogMDAw
-MDU0MmYgIG1mbjogMDAwMDU0MmYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTRdICAg
-Z2ZuOiAwMDAwNTQzMCAgbWZuOiAwMDAwNTQzMA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-MzoxNF0gICBnZm46IDAwMDA1NDMxICBtZm46IDAwMDA1NDMxDQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMzOjE0XSAgIGdmbjogMDAwMDU0MzIgIG1mbjogMDAwMDU0MzINCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzM6MTRdICAgZ2ZuOiAwMDAwNTQzMyAgbWZuOiAwMDAwNTQzMw0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxNF0gICBnZm46IDAwMDA1NDM0ICBtZm46IDAw
-MDA1NDM0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjE0XSAgIGdmbjogMDAwMDU0MzUg
-IG1mbjogMDAwMDU0MzUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTRdICAgZ2ZuOiAw
-MDAwNTQzNiAgbWZuOiAwMDAwNTQzNg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxNF0g
-ICBnZm46IDAwMDA1NDM3ICBtZm46IDAwMDA1NDM3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMzOjE0XSAgIGdmbjogMDAwMDU0MzggIG1mbjogMDAwMDU0MzgNCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzM6MTRdICAgZ2ZuOiAwMDAwNTQzOSAgbWZuOiAwMDAwNTQzOQ0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMzoxNF0gICBnZm46IDAwMDA1NDNhICBtZm46IDAwMDA1NDNh
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjE0XSAgIGdmbjogMDAwMDU0M2IgIG1mbjog
-MDAwMDU0M2INCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTRdICAgZ2ZuOiAwMDAwNTQz
-YyAgbWZuOiAwMDAwNTQzYw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxNF0gICBnZm46
-IDAwMDA1NDNkICBtZm46IDAwMDA1NDNkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjE0
-XSAgIGdmbjogMDAwMDU0M2UgIG1mbjogMDAwMDU0M2UNCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzM6MTRdICAgZ2ZuOiAwMDAwNTQzZiAgbWZuOiAwMDAwNTQzZg0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMzoxNF0gICBnZm46IDAwMDA1NDQwICBtZm46IDAwMDA1NDQwDQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMzOjE0XSAgIGdmbjogMDAwMDU0NDEgIG1mbjogMDAwMDU0
-NDENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTRdICAgZ2ZuOiAwMDAwNTQ0MiAgbWZu
-OiAwMDAwNTQ0Mg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxNF0gICBnZm46IDAwMDA1
-NDQzICBtZm46IDAwMDA1NDQzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjE0XSAgIGdm
-bjogMDAwMDU0NDQgIG1mbjogMDAwMDU0NDQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6
-MTRdICAgZ2ZuOiAwMDAwNTQ0NSAgbWZuOiAwMDAwNTQ0NQ0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMzoxNF0gICBnZm46IDAwMDA1NDQ2ICBtZm46IDAwMDA1NDQ2DQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMzOjE0XSAgIGdmbjogMDAwMDU0NDcgIG1mbjogMDAwMDU0NDcNCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTRdICAgZ2ZuOiAwMDAwNTQ0OCAgbWZuOiAwMDAw
-NTQ0OA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxNF0gICBnZm46IDAwMDA1NDQ5ICBt
-Zm46IDAwMDA1NDQ5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjE0XSAgIGdmbjogMDAw
-MDU0NGEgIG1mbjogMDAwMDU0NGENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTRdICAg
-Z2ZuOiAwMDAwNTQ0YiAgbWZuOiAwMDAwNTQ0Yg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-MzoxNF0gICBnZm46IDAwMDA1NDRjICBtZm46IDAwMDA1NDRjDQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMzOjE0XSAgIGdmbjogMDAwMDU0NGQgIG1mbjogMDAwMDU0NGQNCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzM6MTRdICAgZ2ZuOiAwMDAwNTQ0ZSAgbWZuOiAwMDAwNTQ0ZQ0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxNF0gICBnZm46IDAwMDA1NDRmICBtZm46IDAw
-MDA1NDRmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjE0XSAgIGdmbjogMDAwMDU0NTAg
-IG1mbjogMDAwMDU0NTANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTRdICAgZ2ZuOiAw
-MDAwNTQ1MSAgbWZuOiAwMDAwNTQ1MQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxNF0g
-ICBnZm46IDAwMDA1NDUyICBtZm46IDAwMDA1NDUyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMzOjE0XSAgIGdmbjogMDAwMDU0NTMgIG1mbjogMDAwMDU0NTMNCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzM6MTRdICAgZ2ZuOiAwMDAwNTQ1NCAgbWZuOiAwMDAwNTQ1NA0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMzoxNF0gICBnZm46IDAwMDA1NDU1ICBtZm46IDAwMDA1NDU1
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjE0XSAgIGdmbjogMDAwMDU0NTYgIG1mbjog
-MDAwMDU0NTYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTRdICAgZ2ZuOiAwMDAwNTQ1
-NyAgbWZuOiAwMDAwNTQ1Nw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxNF0gICBnZm46
-IDAwMDA1NDU4ICBtZm46IDAwMDA1NDU4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjE0
-XSAgIGdmbjogMDAwMDU0NTkgIG1mbjogMDAwMDU0NTkNCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzM6MTRdICAgZ2ZuOiAwMDAwNTQ1YSAgbWZuOiAwMDAwNTQ1YQ0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMzoxNF0gICBnZm46IDAwMDA1NDViICBtZm46IDAwMDA1NDViDQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMzOjE0XSAgIGdmbjogMDAwMDU0NWMgIG1mbjogMDAwMDU0
-NWMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTRdICAgZ2ZuOiAwMDAwNTQ1ZCAgbWZu
-OiAwMDAwNTQ1ZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxNF0gICBnZm46IDAwMDA1
-NDVlICBtZm46IDAwMDA1NDVlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjE0XSAgIGdm
-bjogMDAwMDU0NWYgIG1mbjogMDAwMDU0NWYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6
-MTRdICAgZ2ZuOiAwMDAwNTQ2MCAgbWZuOiAwMDAwNTQ2MA0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMzoxNF0gICBnZm46IDAwMDA1NDYxICBtZm46IDAwMDA1NDYxDQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMzOjE0XSAgIGdmbjogMDAwMDU0NjIgIG1mbjogMDAwMDU0NjINCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTRdICAgZ2ZuOiAwMDAwNTQ2MyAgbWZuOiAwMDAw
-NTQ2Mw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxNF0gICBnZm46IDAwMDA1NDY0ICBt
-Zm46IDAwMDA1NDY0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjE0XSAgIGdmbjogMDAw
-MDU0NjUgIG1mbjogMDAwMDU0NjUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTRdICAg
-Z2ZuOiAwMDAwNTQ2NiAgbWZuOiAwMDAwNTQ2Ng0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-MzoxNF0gICBnZm46IDAwMDA1NDY3ICBtZm46IDAwMDA1NDY3DQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMzOjE0XSAgIGdmbjogMDAwMDU0NjggIG1mbjogMDAwMDU0NjgNCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzM6MTRdICAgZ2ZuOiAwMDAwNTQ2OSAgbWZuOiAwMDAwNTQ2OQ0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxNF0gICBnZm46IDAwMDA1NDZhICBtZm46IDAw
-MDA1NDZhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjE0XSAgIGdmbjogMDAwMDU0NmIg
-IG1mbjogMDAwMDU0NmINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTRdICAgZ2ZuOiAw
-MDAwNTQ2YyAgbWZuOiAwMDAwNTQ2Yw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxNF0g
-ICBnZm46IDAwMDA1NDZkICBtZm46IDAwMDA1NDZkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMzOjE0XSAgIGdmbjogMDAwMDU0NmUgIG1mbjogMDAwMDU0NmUNCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzM6MTVdICAgZ2ZuOiAwMDAwNTQ2ZiAgbWZuOiAwMDAwNTQ2Zg0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMzoxNV0gICBnZm46IDAwMDA1NDcwICBtZm46IDAwMDA1NDcw
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjE1XSAgIGdmbjogMDAwMDU0NzEgIG1mbjog
-MDAwMDU0NzENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTVdICAgZ2ZuOiAwMDAwNTQ3
-MiAgbWZuOiAwMDAwNTQ3Mg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxNV0gICBnZm46
-IDAwMDA1NDczICBtZm46IDAwMDA1NDczDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjE1
-XSAgIGdmbjogMDAwMDU0NzQgIG1mbjogMDAwMDU0NzQNCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzM6MTVdICAgZ2ZuOiAwMDAwNTQ3NSAgbWZuOiAwMDAwNTQ3NQ0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMzoxNV0gICBnZm46IDAwMDA1NDc2ICBtZm46IDAwMDA1NDc2DQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMzOjE1XSAgIGdmbjogMDAwMDU0NzcgIG1mbjogMDAwMDU0
-NzcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTVdICAgZ2ZuOiAwMDAwNTQ3OCAgbWZu
-OiAwMDAwNTQ3OA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxNV0gICBnZm46IDAwMDA1
-NDc5ICBtZm46IDAwMDA1NDc5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjE1XSAgIGdm
-bjogMDAwMDU0N2EgIG1mbjogMDAwMDU0N2ENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6
-MTVdICAgZ2ZuOiAwMDAwNTQ3YiAgbWZuOiAwMDAwNTQ3Yg0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMzoxNV0gICBnZm46IDAwMDA1NDdjICBtZm46IDAwMDA1NDdjDQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMzOjE1XSAgIGdmbjogMDAwMDU0N2QgIG1mbjogMDAwMDU0N2QNCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTVdICAgZ2ZuOiAwMDAwNTQ3ZSAgbWZuOiAwMDAw
-NTQ3ZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxNV0gICBnZm46IDAwMDA1NDdmICBt
-Zm46IDAwMDA1NDdmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjE1XSAgIGdmbjogMDAw
-MDU0ODAgIG1mbjogMDAwMDU0ODANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTVdICAg
-Z2ZuOiAwMDAwNTQ4MSAgbWZuOiAwMDAwNTQ4MQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-MzoxNV0gICBnZm46IDAwMDA1NDgyICBtZm46IDAwMDA1NDgyDQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMzOjE1XSAgIGdmbjogMDAwMDU0ODMgIG1mbjogMDAwMDU0ODMNCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzM6MTVdICAgZ2ZuOiAwMDAwNTQ4NCAgbWZuOiAwMDAwNTQ4NA0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxNV0gICBnZm46IDAwMDA1NDg1ICBtZm46IDAw
-MDA1NDg1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjE1XSAgIGdmbjogMDAwMDU0ODYg
-IG1mbjogMDAwMDU0ODYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTVdICAgZ2ZuOiAw
-MDAwNTQ4NyAgbWZuOiAwMDAwNTQ4Nw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxNV0g
-ICBnZm46IDAwMDA1NDg4ICBtZm46IDAwMDA1NDg4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMzOjE1XSAgIGdmbjogMDAwMDU0ODkgIG1mbjogMDAwMDU0ODkNCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzM6MTVdICAgZ2ZuOiAwMDAwNTQ4YSAgbWZuOiAwMDAwNTQ4YQ0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMzoxNV0gICBnZm46IDAwMDA1NDhiICBtZm46IDAwMDA1NDhi
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjE1XSAgIGdmbjogMDAwMDU0OGMgIG1mbjog
-MDAwMDU0OGMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTVdICAgZ2ZuOiAwMDAwNTQ4
-ZCAgbWZuOiAwMDAwNTQ4ZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxNV0gICBnZm46
-IDAwMDA1NDhlICBtZm46IDAwMDA1NDhlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjE1
-XSAgIGdmbjogMDAwMDU0OGYgIG1mbjogMDAwMDU0OGYNCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzM6MTVdICAgZ2ZuOiAwMDAwNTQ5MCAgbWZuOiAwMDAwNTQ5MA0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMzoxNV0gICBnZm46IDAwMDA1NDkxICBtZm46IDAwMDA1NDkxDQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMzOjE1XSAgIGdmbjogMDAwMDU0OTIgIG1mbjogMDAwMDU0
-OTINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTVdICAgZ2ZuOiAwMDAwNTQ5MyAgbWZu
-OiAwMDAwNTQ5Mw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxNV0gICBnZm46IDAwMDA1
-NDk0ICBtZm46IDAwMDA1NDk0DQoNClsgIDQ2MS41NTkwMzBdIGEoWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMzoxNV0gICBnZm46IDAwMDA1NDk1ICBtZm46IDAwMDA1NDk1DQoNCnRhMS4wMDog
-cWMgdGltZW8oWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxNV0gICBnZm46IDAwMDA1NDk2ICBt
-Zm46IDAwMDA1NDk2DQoNCnV0IChjbWQgMHhlYykNCg0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
-MTozMzoxNV0gICBnZm46IDAwMDA1NDk3ICBtZm46IDAwMDA1NDk3DQoNClsgIDQ2MS42MzM3
-MzJdIGEoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxNV0gICBnZm46IDAwMDA1NDk4ICBtZm46
-IDAwMDA1NDk4DQoNCnRhMS4wMDogZmFpbGVkIHQoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzox
-NV0gICBnZm46IDAwMDA1NDk5ICBtZm46IDAwMDA1NDk5DQoNCm8gSURFTlRJRlkgKEkvTyBl
-cnJvciwgZXJyX21hc2s9KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTVdICAgZ2ZuOiAwMDAw
-NTQ5YSAgbWZuOiAwMDAwNTQ5YQ0KDQoweDQpDQoNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
-MzM6MTVdICAgZ2ZuOiAwMDAwNTQ5YiAgbWZuOiAwMDAwNTQ5Yg0KDQpbICA0NjEuNzE2ODk1
-XSBhdGExLjAwOiByZXZhbGlkYShYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjE1XSAgIGdmbjog
-MDAwMDU0OWMgIG1mbjogMDAwMDU0OWMNCg0KdGlvbiBmYWlsZWQgKGVycihYRU4pIFsyMDEy
-LTA4LTMxIDIxOjMzOjE1XSAgIGdmbjogMDAwMDU0OWQgIG1mbjogMDAwMDU0OWQNCg0Kbm89
-LTUpDQoNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTVdICAgZ2ZuOiAwMDAwNTQ5ZSAg
-bWZuOiAwMDAwNTQ5ZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxNV0gICBnZm46IDAw
-MDA1NDlmICBtZm46IDAwMDA1NDlmDQoNClsgIDQ2MS43NzkzNDRdIGEoWEVOKSBbMjAxMi0w
-OC0zMSAyMTozMzoxNV0gICBnZm46IDAwMDA1NGEwICBtZm46IDAwMDA1NGEwDQoNCnRhMS4w
-MDogZGlzYWJsZWQoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxNV0gICBnZm46IDAwMDA1NGEx
-ICBtZm46IDAwMDA1NGExDQoNCg0KDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjE1XSAg
-IGdmbjogMDAwMDU0YTIgIG1mbjogMDAwMDU0YTINCg0KWyAgNDYxLjg1MDA3OF0gYShYRU4p
-IFsyMDEyLTA4LTMxIDIxOjMzOjE1XSAgIGdmbjogMDAwMDU0YTMgIG1mbjogMDAwMDU0YTMN
-Cg0KdGExLjAwOiBkZXZpY2UgcihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjE1XSAgIGdmbjog
-MDAwMDU0YTQgIG1mbjogMDAwMDU0YTQNCg0KZXBvcnRlZCBpbnZhbGlkIChYRU4pIFsyMDEy
-LTA4LTMxIDIxOjMzOjE1XSAgIGdmbjogMDAwMDU0YTUgIG1mbjogMDAwMDU0YTUNCg0KQ0hT
-IHNlY3RvciAwDQoNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTVdICAgZ2ZuOiAwMDAw
-NTRhNiAgbWZuOiAwMDAwNTRhNg0KDQpbICA0NjEuOTI5MTUwXSBhKFhFTikgWzIwMTItMDgt
-MzEgMjE6MzM6MTVdICAgZ2ZuOiAwMDAwNTRhNyAgbWZuOiAwMDAwNTRhNw0KDQp0YTE6IGhh
-cmQgcmVzZXR0aW5nIGxpbmsNCg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxNV0gICBn
-Zm46IDAwMDA1NGE4ICBtZm46IDAwMDA1NGE4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMz
-OjE1XSAgIGdmbjogMDAwMDU0YTkgIG1mbjogMDAwMDU0YTkNCg0KKFhFTikgWzIwMTItMDgt
-MzEgMjE6MzM6MTZdICAgZ2ZuOiAwMDAwNTRhYSAgbWZuOiAwMDAwNTRhYQ0KDQooWEVOKSBb
-MjAxMi0wOC0zMSAyMTozMzoxNl0gICBnZm46IDAwMDA1NGFiICBtZm46IDAwMDA1NGFiDQoN
-CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjE2XSAgIGdmbjogMDAwMDU0YWMgIG1mbjogMDAw
-MDU0YWMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTZdICAgZ2ZuOiAwMDAwNTRhZCAg
-bWZuOiAwMDAwNTRhZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxNl0gICBnZm46IDAw
-MDA1NGFlICBtZm46IDAwMDA1NGFlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjE2XSAg
-IGdmbjogMDAwMDU0YWYgIG1mbjogMDAwMDU0YWYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
-MzM6MTZdICAgZ2ZuOiAwMDAwNTRiMCAgbWZuOiAwMDAwNTRiMA0KDQooWEVOKSBbMjAxMi0w
-OC0zMSAyMTozMzoxNl0gICBnZm46IDAwMDA1NGIxICBtZm46IDAwMDA1NGIxDQoNCihYRU4p
-IFsyMDEyLTA4LTMxIDIxOjMzOjE2XSAgIGdmbjogMDAwMDU0YjIgIG1mbjogMDAwMDU0YjIN
-Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTZdICAgZ2ZuOiAwMDAwNTRiMyAgbWZuOiAw
-MDAwNTRiMw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxNl0gICBnZm46IDAwMDA1NGI0
-ICBtZm46IDAwMDA1NGI0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjE2XSAgIGdmbjog
-MDAwMDU0YjUgIG1mbjogMDAwMDU0YjUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTZd
-ICAgZ2ZuOiAwMDAwNTRiNiAgbWZuOiAwMDAwNTRiNg0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
-MTozMzoxNl0gICBnZm46IDAwMDA1NGI3ICBtZm46IDAwMDA1NGI3DQoNCihYRU4pIFsyMDEy
-LTA4LTMxIDIxOjMzOjE2XSAgIGdmbjogMDAwMDU0YjggIG1mbjogMDAwMDU0YjgNCg0KKFhF
-TikgWzIwMTItMDgtMzEgMjE6MzM6MTZdICAgZ2ZuOiAwMDAwNTRiOSAgbWZuOiAwMDAwNTRi
-OQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxNl0gICBnZm46IDAwMDA1NGJhICBtZm46
-IDAwMDA1NGJhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjE2XSAgIGdmbjogMDAwMDU0
-YmIgIG1mbjogMDAwMDU0YmINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTZdICAgZ2Zu
-OiAwMDAwNTRiYyAgbWZuOiAwMDAwNTRiYw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzox
-Nl0gICBnZm46IDAwMDA1NGJkICBtZm46IDAwMDA1NGJkDQoNCihYRU4pIFsyMDEyLTA4LTMx
-IDIxOjMzOjE2XSAgIGdmbjogMDAwMDU0YmUgIG1mbjogMDAwMDU0YmUNCg0KKFhFTikgWzIw
-MTItMDgtMzEgMjE6MzM6MTZdICAgZ2ZuOiAwMDAwNTRiZiAgbWZuOiAwMDAwNTRiZg0KDQoo
-WEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxNl0gICBnZm46IDAwMDA1NGMwICBtZm46IDAwMDA1
-NGMwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjE2XSAgIGdmbjogMDAwMDU0YzEgIG1m
-bjogMDAwMDU0YzENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTZdICAgZ2ZuOiAwMDAw
-NTRjMiAgbWZuOiAwMDAwNTRjMg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxNl0gICBn
-Zm46IDAwMDA1NGMzICBtZm46IDAwMDA1NGMzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMz
-OjE2XSAgIGdmbjogMDAwMDU0YzQgIG1mbjogMDAwMDU0YzQNCg0KKFhFTikgWzIwMTItMDgt
-MzEgMjE6MzM6MTZdICAgZ2ZuOiAwMDAwNTRjNSAgbWZuOiAwMDAwNTRjNQ0KDQooWEVOKSBb
-MjAxMi0wOC0zMSAyMTozMzoxNl0gICBnZm46IDAwMDA1NGM2ICBtZm46IDAwMDA1NGM2DQoN
-CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjE2XSAgIGdmbjogMDAwMDU0YzcgIG1mbjogMDAw
-MDU0YzcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTZdICAgZ2ZuOiAwMDAwNTRjOCAg
-bWZuOiAwMDAwNTRjOA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxNl0gICBnZm46IDAw
-MDA1NGM5ICBtZm46IDAwMDA1NGM5DQoNClsgIDQ2Mi40ODY4MDVdIGEoWEVOKSBbMjAxMi0w
-OC0zMSAyMTozMzoxNl0gICBnZm46IDAwMDA1NGNhICBtZm46IDAwMDA1NGNhDQoNCnRhMTog
-U0FUQSBsaW5rIHUoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxNl0gICBnZm46IDAwMDA1NGNi
-ICBtZm46IDAwMDA1NGNiDQoNCnAgMS41IEdicHMgKFNTdGEoWEVOKSBbMjAxMi0wOC0zMSAy
-MTozMzoxNl0gICBnZm46IDAwMDA1NGNjICBtZm46IDAwMDA1NGNjDQoNCnR1cyAxMTMgU0Nv
-bnRyb2woWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxNl0gICBnZm46IDAwMDA1NGNkICBtZm46
-IDAwMDA1NGNkDQoNCiAzMTApDQoNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTZdICAg
-Z2ZuOiAwMDAwNTRjZSAgbWZuOiAwMDAwNTRjZQ0KDQpbICA0NjIuNTgyMjMwXSBzKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzM6MTZdICAgZ2ZuOiAwMDAwNTRjZiAgbWZuOiAwMDAwNTRjZg0K
-DQpkIDA6MDowOjA6IFtzZGFdKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTZdICAgZ2ZuOiAw
-MDAwNTRkMCAgbWZuOiAwMDAwNTRkMA0KDQogIA0KDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMzOjE2XSAgIGdmbjogMDAwMDU0ZDEgIG1mbjogMDAwMDU0ZDENCg0KWyAgNDYyLjY0MDM5
-Ml0gUmVzdWx0OiBob3N0Ynl0ZT0oWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxNl0gICBnZm46
-IDAwMDA1NGQyICBtZm46IDAwMDA1NGQyDQoNCkRJRF9PSyBkcml2ZXJieXQoWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMzoxNl0gICBnZm46IDAwMDA1NGQzICBtZm46IDAwMDA1NGQzDQoNCmU9
-RFJJVkVSX1NFTlNFDQoNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTZdICAgZ2ZuOiAw
-MDAwNTRkNCAgbWZuOiAwMDAwNTRkNA0KDQpbICA0NjIuNzAyODQ1XSBzKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzM6MTZdICAgZ2ZuOiAwMDAwNTRkNSAgbWZuOiAwMDAwNTRkNQ0KDQpkIDA6
-MDowOjA6IFtzZGFdKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTZdICAgZ2ZuOiAwMDAwNTRk
-NiAgbWZuOiAwMDAwNTRkNg0KDQogIA0KDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjE2
-XSAgIGdmbjogMDAwMDU0ZDcgIG1mbjogMDAwMDU0ZDcNCg0KWyAgNDYyLjc1NjkyOF0gUyhY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMzOjE2XSAgIGdmbjogMDAwMDU0ZDggIG1mbjogMDAwMDU0
-ZDgNCg0KZW5zZSBLZXkgOiBBYm9ydChYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjE2XSAgIGdm
-bjogMDAwMDU0ZDkgIG1mbjogMDAwMDU0ZDkNCg0KZWQgQ29tbWFuZCAoWEVOKSBbMjAxMi0w
-OC0zMSAyMTozMzoxNl0gICBnZm46IDAwMDA1NGRhICBtZm46IDAwMDA1NGRhDQoNCltjdXJy
-ZW50XSAoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxNl0gICBnZm46IDAwMDA1NGRiICBtZm46
-IDAwMDA1NGRiDQoNCltkZXNjcmlwdG9yXShYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjE2XSAg
-IGdmbjogMDAwMDU0ZGMgIG1mbjogMDAwMDU0ZGMNCg0KDQoNCg0KKFhFTikgWzIwMTItMDgt
-MzEgMjE6MzM6MTZdICAgZ2ZuOiAwMDAwNTRkZCAgbWZuOiAwMDAwNTRkZA0KDQpbICA0NjIu
-ODY5MTk4XSBEKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTZdICAgZ2ZuOiAwMDAwNTRkZSAg
-bWZuOiAwMDAwNTRkZQ0KDQplc2NyaXB0b3Igc2Vuc2UgKFhFTikgWzIwMTItMDgtMzEgMjE6
-MzM6MTZdICAgZ2ZuOiAwMDAwNTRkZiAgbWZuOiAwMDAwNTRkZg0KDQpkYXRhIHdpdGggc2Vu
-c2UgZGVzY3JpcHRvcnMgKGluIChYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjE2XSAgIGdmbjog
-MDAwMDU0ZTAgIG1mbjogMDAwMDU0ZTANCg0KaGV4KTooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-MzoxNl0gICBnZm46IDAwMDA1NGUxICBtZm46IDAwMDA1NGUxDQoNCg0KDQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMzOjE2XSAgIGdmbjogMDAwMDU0ZTIgIG1mbjogMDAwMDU0ZTINCg0K
-WyAgNDYyLjk2NDg1NF0gIChYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjE2XSAgIGdmbjogMDAw
-MDU0ZTMgIG1mbjogMDAwMDU0ZTMNCg0KICAgICAgIChYRU4pIFsyMDEyLTA4LTMxIDIxOjMz
-OjE3XSAgIGdmbjogMDAwMDU0ZTQgIG1mbjogMDAwMDU0ZTQNCg0KNzIgKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzM6MTddICAgZ2ZuOiAwMDAwNTRlNSAgbWZuOiAwMDAwNTRlNQ0KDQowYiAw
-MCAwMCAoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxN10gICBnZm46IDAwMDA1NGU2ICBtZm46
-IDAwMDA1NGU2DQoNCjAwIChYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjE3XSAgIGdmbjogMDAw
-MDU0ZTcgIG1mbjogMDAwMDU0ZTcNCg0KMDAgKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTdd
-ICAgZ2ZuOiAwMDAwNTRlOCAgbWZuOiAwMDAwNTRlOA0KDQowMCAoWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMzoxN10gICBnZm46IDAwMDA1NGU5ICBtZm46IDAwMDA1NGU5DQoNCjBjIChYRU4p
-IFsyMDEyLTA4LTMxIDIxOjMzOjE3XSAgIGdmbjogMDAwMDU0ZWEgIG1mbjogMDAwMDU0ZWEN
-Cg0KMDAgKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTddICAgZ2ZuOiAwMDAwNTRlYiAgbWZu
-OiAwMDAwNTRlYg0KDQowYSAoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxN10gICBnZm46IDAw
-MDA1NGVjICBtZm46IDAwMDA1NGVjDQoNCjgwIChYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjE3
-XSAgIGdmbjogMDAwMDU0ZWQgIG1mbjogMDAwMDU0ZWQNCg0KMDAgMDAgMDAgKFhFTikgWzIw
-MTItMDgtMzEgMjE6MzM6MTddICAgZ2ZuOiAwMDAwNTRlZSAgbWZuOiAwMDAwNTRlZQ0KDQow
-MCAoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxN10gICBnZm46IDAwMDA1NGVmICBtZm46IDAw
-MDA1NGVmDQoNCjAwIChYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjE3XSAgIGdmbjogMDAwMDU0
-ZjAgIG1mbjogMDAwMDU0ZjANCg0KDQoNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTdd
-ICAgZ2ZuOiAwMDAwNTRmMSAgbWZuOiAwMDAwNTRmMQ0KDQpbICA0NjMuMjE4NTk3XSAgKFhF
-TikgWzIwMTItMDgtMzEgMjE6MzM6MTddICAgZ2ZuOiAwMDAwNTRmMiAgbWZuOiAwMDAwNTRm
-Mg0KDQogICAgICAgKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTddICAgZ2ZuOiAwMDAwNTRm
-MyAgbWZuOiAwMDAwNTRmMw0KDQowMCAwMCAwMCAoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzox
-N10gICBnZm46IDAwMDA1NGY0ICBtZm46IDAwMDA1NGY0DQoNCjAwIChYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMzOjE3XSAgIGdmbjogMDAwMDU0ZjUgIG1mbjogMDAwMDU0ZjUNCg0KDQoNCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTddICAgZ2ZuOiAwMDAwNTRmNiAgbWZuOiAwMDAw
-NTRmNg0KDQpbICA0NjMuMzA1OTg3XSBzKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTddICAg
-Z2ZuOiAwMDAwNTRmNyAgbWZuOiAwMDAwNTRmNw0KDQpkIDA6MDowOjA6IFtzZGFdKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzM6MTddICAgZ2ZuOiAwMDAwNTRmOCAgbWZuOiAwMDAwNTRmOA0K
-DQogIA0KDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjE3XSAgIGdmbjogMDAwMDU0Zjkg
-IG1mbjogMDAwMDU0ZjkNCg0KWyAgNDYzLjM2NDIyMl0gQShYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMzOjE3XSAgIGdmbjogMDAwMDU0ZmEgIG1mbjogMDAwMDU0ZmENCg0KZGQuIFNlbnNlOiBO
-byBhZChYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjE3XSAgIGdmbjogMDAwMDU0ZmIgIG1mbjog
-MDAwMDU0ZmINCg0KZGl0aW9uYWwgc2Vuc2UgaShYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjE3
-XSAgIGdmbjogMDAwMDU0ZmMgIG1mbjogMDAwMDU0ZmMNCg0KbmZvcm1hdGlvbihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMzOjE3XSAgIGdmbjogMDAwMDU0ZmQgIG1mbjogMDAwMDU0ZmQNCg0K
-DQoNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTddICAgZ2ZuOiAwMDAwNTRmZSAgbWZu
-OiAwMDAwNTRmZQ0KDQpbICA0NjMuNDU5ODY2XSBzKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6
-MTddICAgZ2ZuOiAwMDAwNTRmZiAgbWZuOiAwMDAwNTRmZg0KDQpkIDA6MDowOjA6IFtzZGFd
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTddICAgZ2ZuOiAwMDAwNTUwMCAgbWZuOiAwMDAw
-NTUwMA0KDQogQ0RCOiANCg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxN10gICBnZm46
-IDAwMDA1NTAxICBtZm46IDAwMDA1NTAxDQoNClsgIDQ2My41MTM5NzZdIFIoWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMzoxN10gICBnZm46IDAwMDA1NTAyICBtZm46IDAwMDA1NTAyDQoNCmVh
-ZCgxMCkoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxN10gICBnZm46IDAwMDA1NTAzICBtZm46
-IDAwMDA1NTAzDQoNCjooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxN10gICBnZm46IDAwMDA1
-NTA0ICBtZm46IDAwMDA1NTA0DQoNCiAyOChYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjE3XSAg
-IGdmbjogMDAwMDU1MDUgIG1mbjogMDAwMDU1MDUNCg0KIDAwKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzM6MTddICAgZ2ZuOiAwMDAwNTUwNiAgbWZuOiAwMDAwNTUwNg0KDQogOGUoWEVOKSBb
-MjAxMi0wOC0zMSAyMTozMzoxN10gICBnZm46IDAwMDA1NTA3ICBtZm46IDAwMDA1NTA3DQoN
-CiA5NShYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjE3XSAgIGdmbjogMDAwMDU1MDggIG1mbjog
-MDAwMDU1MDgNCg0KIDExKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTddICAgZ2ZuOiAwMDAw
-NTUwOSAgbWZuOiAwMDAwNTUwOQ0KDQogNTEoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxN10g
-ICBnZm46IDAwMDA1NTBhICBtZm46IDAwMDA1NTBhDQoNCiAwMChYRU4pIFsyMDEyLTA4LTMx
-IDIxOjMzOjE3XSAgIGdmbjogMDAwMDU1MGIgIG1mbjogMDAwMDU1MGINCg0KIDAwKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzM6MTddICAgZ2ZuOiAwMDAwNTUwYyAgbWZuOiAwMDAwNTUwYw0K
-DQogMTAoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxN10gICBnZm46IDAwMDA1NTBkICBtZm46
-IDAwMDA1NTBkDQoNCiAwMChYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjE3XSAgIGdmbjogMDAw
-MDU1MGUgIG1mbjogMDAwMDU1MGUNCg0KDQoNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6
-MTddICAgZ2ZuOiAwMDAwNTUwZiAgbWZuOiAwMDAwNTUwZg0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMzoxN10gICBnZm46IDAwMDA1NTEwICBtZm46IDAwMDA1NTEwDQoNClsgIDQ2My43
-NjM2NjJdIGUoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxN10gICBnZm46IDAwMDA1NTExICBt
-Zm46IDAwMDA1NTExDQoNCm5kX3JlcXVlc3Q6IEkvTyAoWEVOKSBbMjAxMi0wOC0zMSAyMToz
-MzoxN10gICBnZm46IDAwMDA1NTEyICBtZm46IDAwMDA1NTEyDQoNCmVycm9yLCBkZXYgc2Rh
-LCAoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxN10gICBnZm46IDAwMDA1NTEzICBtZm46IDAw
-MDA1NTEzDQoNCnNlY3RvciAyMzkyMTMzOTYoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxN10g
-ICBnZm46IDAwMDA1NTE0ICBtZm46IDAwMDA1NTE0DQoNCjkNCg0KDQooWEVOKSBbMjAxMi0w
-OC0zMSAyMTozMzoxN10gICBnZm46IDAwMDA1NTE1ICBtZm46IDAwMDA1NTE1DQoNClsgIDQ2
-My44NTk0MTBdIGEoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxN10gICBnZm46IDAwMDA1NTE2
-ICBtZm46IDAwMDA1NTE2DQoNCnRhMTogRUggY29tcGxldGUoWEVOKSBbMjAxMi0wOC0zMSAy
-MTozMzoxN10gICBnZm46IDAwMDA1NTE3ICBtZm46IDAwMDA1NTE3DQoNCg0KDQoNCihYRU4p
-IFsyMDEyLTA4LTMxIDIxOjMzOjE3XSAgIGdmbjogMDAwMDU1MTggIG1mbjogMDAwMDU1MTgN
-Cg0KWyAgNDYzLjkxNzU5MV0gcyhYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjE3XSAgIGdmbjog
-MDAwMDU1MTkgIG1mbjogMDAwMDU1MTkNCg0KZCAwOjA6MDowOiBbc2RhXShYRU4pIFsyMDEy
-LTA4LTMxIDIxOjMzOjE3XSAgIGdmbjogMDAwMDU1MWEgIG1mbjogMDAwMDU1MWENCg0KIFVu
-aGFuZGxlZCBlcnJvcihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjE3XSAgIGdmbjogMDAwMDU1
-MWIgIG1mbjogMDAwMDU1MWINCg0KIGNvZGUNCg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-MzoxN10gICBnZm46IDAwMDA1NTFjICBtZm46IDAwMDA1NTFjDQoNClsgIDQ2My45MjE4MDBd
-IHMoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxOF0gICBnZm46IDAwMDA1NTFkICBtZm46IDAw
-MDA1NTFkDQoNCmQgMDowOjA6MDogW3NkYV0oWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxOF0g
-ICBnZm46IDAwMDA1NTFlICBtZm46IDAwMDA1NTFlDQoNCiBVbmhhbmRsZWQgZXJyb3IoWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMzoxOF0gICBnZm46IDAwMDA1NTFmICBtZm46IDAwMDA1NTFm
-DQoNCiBjb2RlDQoNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MThdICAgZ2ZuOiAwMDAw
-NTUyMCAgbWZuOiAwMDAwNTUyMA0KDQpbICA0NjMuOTIxODAyXSBzKFhFTikgWzIwMTItMDgt
-MzEgMjE6MzM6MThdICAgZ2ZuOiAwMDAwNTUyMSAgbWZuOiAwMDAwNTUyMQ0KDQpkIDA6MDow
-OjA6IFtzZGFdKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MThdICAgZ2ZuOiAwMDAwNTUyMiAg
-bWZuOiAwMDAwNTUyMg0KDQogIA0KDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjE4XSAg
-IGdmbjogMDAwMDU1MjMgIG1mbjogMDAwMDU1MjMNCg0KWyAgNDYzLjkyMTgwM10gUmVzdWx0
-OiBob3N0Ynl0ZT0oWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxOF0gICBnZm46IDAwMDA1NTI0
-ICBtZm46IDAwMDA1NTI0DQoNCkRJRF9CQURfVEFSR0VUIGQoWEVOKSBbMjAxMi0wOC0zMSAy
-MTozMzoxOF0gICBnZm46IDAwMDA1NTI1ICBtZm46IDAwMDA1NTI1DQoNCnJpdmVyYnl0ZT1E
-UklWRVJfT0sNCg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxOF0gICBnZm46IDAwMDA1
-NTI2ICBtZm46IDAwMDA1NTI2DQoNClsgIDQ2My45MjE4MDRdIHMoWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMzoxOF0gICBnZm46IDAwMDA1NTI3ICBtZm46IDAwMDA1NTI3DQoNCmQgMDowOjA6
-MDogW3NkYV0gQ0RCOiANCg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxOF0gICBnZm46
-IDAwMDA1NTI4ICBtZm46IDAwMDA1NTI4DQoNClsgIDQ2My45MjE4MDldIFcoWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMzoxOF0gICBnZm46IDAwMDA1NTI5ICBtZm46IDAwMDA1NTI5DQoNCnJp
-dGUoMTApOiAyYSAwMCAwMSAyYSBhZCBjMSAwMCAwKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6
-MThdICAgZ2ZuOiAwMDAwNTUyYSAgbWZuOiAwMDAwNTUyYQ0KDQowIDEwIDAwDQoNCg0KKFhF
-TikgWzIwMTItMDgtMzEgMjE6MzM6MThdICAgZ2ZuOiAwMDAwNTUyYiAgbWZuOiAwMDAwNTUy
-Yg0KDQpbICA0NjMuOTIxODEwXSBlbmRfcmVxdWVzdDogSS9PIChYRU4pIFsyMDEyLTA4LTMx
-IDIxOjMzOjE4XSAgIGdmbjogMDAwMDU1MmMgIG1mbjogMDAwMDU1MmMNCg0KZXJyb3IsIGRl
-diBzZGEsIChYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjE4XSAgIGdmbjogMDAwMDU1MmQgIG1m
-bjogMDAwMDU1MmQNCg0Kc2VjdG9yIDE5NTc0MjA5DQoNCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzM6MThdICAgZ2ZuOiAwMDAwNTUyZSAgbWZuOiAwMDAwNTUyZQ0KDQpbICA0NjMuOTIx
-ODUzXSBzKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MThdICAgZ2ZuOiAwMDAwNTUyZiAgbWZu
-OiAwMDAwNTUyZg0KDQpkIDA6MDowOjA6IFtzZGFdIFVuaGFuZGxlZCBlcnJvcihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMzOjE4XSAgIGdmbjogMDAwMDU1MzAgIG1mbjogMDAwMDU1MzANCg0K
-IGNvZGUNCg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxOF0gICBnZm46IDAwMDA1NTMx
-ICBtZm46IDAwMDA1NTMxDQoNClsgIDQ2My45MjE4NTRdIHNkIDA6MDowOjA6IFtzZGFdKFhF
-TikgWzIwMTItMDgtMzEgMjE6MzM6MThdICAgZ2ZuOiAwMDAwNTUzMiAgbWZuOiAwMDAwNTUz
-Mg0KDQogIA0KDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjE4XSAgIGdmbjogMDAwMDU1
-MzMgIG1mbjogMDAwMDU1MzMNCg0KWyAgNDYzLjkyMTg1NF0gUmVzdWx0OiBob3N0Ynl0ZT0o
-WEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxOF0gICBnZm46IDAwMDA1NTM0ICBtZm46IDAwMDA1
-NTM0DQoNCkRJRF9CQURfVEFSR0VUIGQoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxOF0gICBn
-Zm46IDAwMDA1NTM1ICBtZm46IDAwMDA1NTM1DQoNCnJpdmVyYnl0ZT1EUklWRVJfT0sNCg0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxOF0gICBnZm46IDAwMDA1NTM2ICBtZm46IDAw
-MDA1NTM2DQoNClsgIDQ2My45MjE4NTVdIHMoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxOF0g
-ICBnZm46IDAwMDA1NTM3ICBtZm46IDAwMDA1NTM3DQoNCmQgMDowOjA6MDogW3NkYV0gQ0RC
-OiANCg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxOF0gICBnZm46IDAwMDA1NTM4ICBt
-Zm46IDAwMDA1NTM4DQoNClsgIDQ2My45MjE4NThdIFcoWEVOKSBbMjAxMi0wOC0zMSAyMToz
-MzoxOF0gICBnZm46IDAwMDA1NTM5ICBtZm46IDAwMDA1NTM5DQoNCnJpdGUoMTApOiAyYSAw
-MCAwMiAzZSA1NSAwMSAwMCAwMCAwOCAwMA0KDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMz
-OjE4XSAgIGdmbjogMDAwMDU1M2EgIG1mbjogMDAwMDU1M2ENCg0KWyAgNDYzLjkyMTg1OV0g
-ZShYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjE4XSAgIGdmbjogMDAwMDU1M2IgIG1mbjogMDAw
-MDU1M2INCg0KbmRfcmVxdWVzdDogSS9PIChYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjE4XSAg
-IGdmbjogMDAwMDU1M2MgIG1mbjogMDAwMDU1M2MNCg0KZXJyb3IsIGRldiBzZGEsIChYRU4p
-IFsyMDEyLTA4LTMxIDIxOjMzOjE4XSAgIGdmbjogMDAwMDU1M2QgIG1mbjogMDAwMDU1M2QN
-Cg0Kc2VjdG9yIDM3NjM5NDI1DQoNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MThdICAg
-Z2ZuOiAwMDAwNTUzZSAgbWZuOiAwMDAwNTUzZQ0KDQpbICA0NjMuOTIxODY0XSBCKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzM6MThdICAgZ2ZuOiAwMDAwNTUzZiAgbWZuOiAwMDAwNTUzZg0K
-DQp1ZmZlciBJL08gZXJyb3Igb24gZGV2aWNlIGRtLTAsIChYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMzOjE4XSAgIGdmbjogMDAwMDU1NDAgIG1mbjogMDAwMDU1NDANCg0KbG9naWNhbCBibG9j
-ayAyMihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjE4XSAgIGdmbjogMDAwMDU1NDEgIG1mbjog
-MDAwMDU1NDENCg0KNjA5OTINCg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxOF0gICBn
-Zm46IDAwMDA1NTQyICBtZm46IDAwMDA1NTQyDQoNClsgIDQ2My45MjE4NjRdIGwoWEVOKSBb
-MjAxMi0wOC0zMSAyMTozMzoxOF0gICBnZm46IDAwMDA1NTQzICBtZm46IDAwMDA1NTQzDQoN
-Cm9zdCBwYWdlIHdyaXRlIGQoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxOF0gICBnZm46IDAw
-MDA1NTQ0ICBtZm46IDAwMDA1NTQ0DQoNCnVlIHRvIEkvTyBlcnJvciAoWEVOKSBbMjAxMi0w
-OC0zMSAyMTozMzoxOF0gICBnZm46IDAwMDA1NTQ1ICBtZm46IDAwMDA1NTQ1DQoNCm9uIGRt
-LTANCg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxOF0gICBnZm46IDAwMDA1NTQ2ICBt
-Zm46IDAwMDA1NTQ2DQoNClsgIDQ2My45MjE4NzhdIHMoWEVOKSBbMjAxMi0wOC0zMSAyMToz
-MzoxOF0gICBnZm46IDAwMDA1NTQ3ICBtZm46IDAwMDA1NTQ3DQoNCmQgMDowOjA6MDogW3Nk
-YV0oWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxOF0gICBnZm46IDAwMDA1NTQ4ICBtZm46IDAw
-MDA1NTQ4DQoNCiBVbmhhbmRsZWQgZXJyb3IoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxOF0g
-ICBnZm46IDAwMDA1NTQ5ICBtZm46IDAwMDA1NTQ5DQoNCiBjb2RlDQoNCg0KKFhFTikgWzIw
-MTItMDgtMzEgMjE6MzM6MThdICAgZ2ZuOiAwMDAwNTU0YSAgbWZuOiAwMDAwNTU0YQ0KDQpb
-ICA0NjMuOTIxODc5XSBzKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MThdICAgZ2ZuOiAwMDAw
-NTU0YiAgbWZuOiAwMDAwNTU0Yg0KDQpkIDA6MDowOjA6IFtzZGFdKFhFTikgWzIwMTItMDgt
-MzEgMjE6MzM6MThdICAgZ2ZuOiAwMDAwNTU0YyAgbWZuOiAwMDAwNTU0Yw0KDQogIA0KDQoN
-CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjE4XSAgIGdmbjogMDAwMDU1NGQgIG1mbjogMDAw
-MDU1NGQNCg0KWyAgNDYzLjkyMTg4MF0gUmVzdWx0OiBob3N0Ynl0ZT0oWEVOKSBbMjAxMi0w
-OC0zMSAyMTozMzoxOV0gICBnZm46IDAwMDA1NTRlICBtZm46IDAwMDA1NTRlDQoNCkRJRF9C
-QURfVEFSR0VUIGQoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxOV0gICBnZm46IDAwMDA1NTRm
-ICBtZm46IDAwMDA1NTRmDQoNCnJpdmVyYnl0ZT1EUklWRVJfT0sNCg0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMzoxOV0gICBnZm46IDAwMDA1NTUwICBtZm46IDAwMDA1NTUwDQoNClsg
-IDQ2My45MjE4ODFdIHMoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxOV0gICBnZm46IDAwMDA1
-NTUxICBtZm46IDAwMDA1NTUxDQoNCmQgMDowOjA6MDogW3NkYV0gQ0RCOiANCg0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMzoxOV0gICBnZm46IDAwMDA1NTUyICBtZm46IDAwMDA1NTUy
-DQoNClsgIDQ2My45MjE4ODRdIFcoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxOV0gICBnZm46
-IDAwMDA1NTUzICBtZm46IDAwMDA1NTUzDQoNCnJpdGUoMTApOiAyYSAwMCAwNSAyZSA1NSA4
-MSAwMCAwKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTldICAgZ2ZuOiAwMDAwNTU1NCAgbWZu
-OiAwMDAwNTU1NA0KDQowIDA4IDAwDQoNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTld
-ICAgZ2ZuOiAwMDAwNTU1NSAgbWZuOiAwMDAwNTU1NQ0KDQpbICA0NjMuOTIxODg0XSBlbmRf
-cmVxdWVzdDogSS9PIChYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjE5XSAgIGdmbjogMDAwMDU1
-NTYgIG1mbjogMDAwMDU1NTYNCg0KZXJyb3IsIGRldiBzZGEsIChYRU4pIFsyMDEyLTA4LTMx
-IDIxOjMzOjE5XSAgIGdmbjogMDAwMDU1NTcgIG1mbjogMDAwMDU1NTcNCg0Kc2VjdG9yIDg2
-OTIyNjI1DQoNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTldICAgZ2ZuOiAwMDAwNTU1
-OCAgbWZuOiAwMDAwNTU1OA0KDQpbICA0NjMuOTIxODg3XSBCKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzM6MTldICAgZ2ZuOiAwMDAwNTU1OSAgbWZuOiAwMDAwNTU1OQ0KDQp1ZmZlciBJL08g
-ZXJyb3Igb24gZGV2aWNlIGRtLTAsIChYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjE5XSAgIGdm
-bjogMDAwMDU1NWEgIG1mbjogMDAwMDU1NWENCg0KbG9naWNhbCBibG9jayA4NChYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMzOjE5XSAgIGdmbjogMDAwMDU1NWIgIG1mbjogMDAwMDU1NWINCg0K
-MjEzOTINCg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxOV0gICBnZm46IDAwMDA1NTVj
-ICBtZm46IDAwMDA1NTVjDQoNClsgIDQ2My45MjE4ODddIGwoWEVOKSBbMjAxMi0wOC0zMSAy
-MTozMzoxOV0gICBnZm46IDAwMDA1NTVkICBtZm46IDAwMDA1NTVkDQoNCm9zdCBwYWdlIHdy
-aXRlIGQoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxOV0gICBnZm46IDAwMDA1NTVlICBtZm46
-IDAwMDA1NTVlDQoNCnVlIHRvIEkvTyBlcnJvciAoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzox
-OV0gICBnZm46IDAwMDA1NTVmICBtZm46IDAwMDA1NTVmDQoNCm9uIGRtLTANCg0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMzoxOV0gICBnZm46IDAwMDA1NTYwICBtZm46IDAwMDA1NTYw
-DQoNClsgIDQ2My45MjE4OTZdIHMoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxOV0gICBnZm46
-IDAwMDA1NTYxICBtZm46IDAwMDA1NTYxDQoNCmQgMDowOjA6MDogW3NkYV0gVW5oYW5kbGVk
-IGVycm9yKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTldICAgZ2ZuOiAwMDAwNTU2MiAgbWZu
-OiAwMDAwNTU2Mg0KDQogY29kZQ0KDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjE5XSAg
-IGdmbjogMDAwMDU1NjMgIG1mbjogMDAwMDU1NjMNCg0KWyAgNDYzLjkyMTg5N10gcyhYRU4p
-IFsyMDEyLTA4LTMxIDIxOjMzOjE5XSAgIGdmbjogMDAwMDU1NjQgIG1mbjogMDAwMDU1NjQN
-Cg0KZCAwOjA6MDowOiBbc2RhXShYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjE5XSAgIGdmbjog
-MDAwMDU1NjUgIG1mbjogMDAwMDU1NjUNCg0KICANCg0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
-MTozMzoxOV0gICBnZm46IDAwMDA1NTY2ICBtZm46IDAwMDA1NTY2DQoNClsgIDQ2My45MjE4
-OTddIFIoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxOV0gICBnZm46IDAwMDA1NTY3ICBtZm46
-IDAwMDA1NTY3DQoNCmVzdWx0OiBob3N0Ynl0ZT1ESURfQkFEX1RBUkdFVCBkKFhFTikgWzIw
-MTItMDgtMzEgMjE6MzM6MTldICAgZ2ZuOiAwMDAwNTU2OCAgbWZuOiAwMDAwNTU2OA0KDQpy
-aXZlcmJ5dGU9RFJJVkVSKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTldICAgZ2ZuOiAwMDAw
-NTU2OSAgbWZuOiAwMDAwNTU2OQ0KDQpfT0sNCg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-MzoxOV0gICBnZm46IDAwMDA1NTZhICBtZm46IDAwMDA1NTZhDQoNClsgIDQ2My45MjE4OThd
-IHMoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxOV0gICBnZm46IDAwMDA1NTZiICBtZm46IDAw
-MDA1NTZiDQoNCmQgMDowOjA6MDogW3NkYV0oWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxOV0g
-ICBnZm46IDAwMDA1NTZjICBtZm46IDAwMDA1NTZjDQoNCiBDREI6IA0KDQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMzOjE5XSAgIGdmbjogMDAwMDU1NmQgIG1mbjogMDAwMDU1NmQNCg0K
-WyAgNDYzLjkyMTkwMV0gVyhYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjE5XSAgIGdmbjogMDAw
-MDU1NmUgIG1mbjogMDAwMDU1NmUNCg0Kcml0ZSgxMCk6IDJhIDAwIChYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMzOjE5XSAgIGdmbjogMDAwMDU1NmYgIG1mbjogMDAwMDU1NmYNCg0KMDUgMmUg
-NTcgNDEgMDAgMDAgMDggMDANCg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxOV0gICBn
-Zm46IDAwMDA1NTcwICBtZm46IDAwMDA1NTcwDQoNClsgIDQ2My45MjE5MDJdIGUoWEVOKSBb
-MjAxMi0wOC0zMSAyMTozMzoxOV0gICBnZm46IDAwMDA1NTcxICBtZm46IDAwMDA1NTcxDQoN
-Cm5kX3JlcXVlc3Q6IEkvTyBlcnJvciwgZGV2IHNkYSwgKFhFTikgWzIwMTItMDgtMzEgMjE6
-MzM6MTldICAgZ2ZuOiAwMDAwNTU3MiAgbWZuOiAwMDAwNTU3Mg0KDQpzZWN0b3IgODY5MjMw
-NzMNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjE5XSAgIGdmbjogMDAwMDU1NzMgIG1mbjog
-MDAwMDU1NzMNCg0KDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjE5XSAgIGdmbjogMDAw
-MDU1NzQgIG1mbjogMDAwMDU1NzQNCg0KWyAgNDYzLjkyMTkwNF0gQihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMzOjE5XSAgIGdmbjogMDAwMDU1NzUgIG1mbjogMDAwMDU1NzUNCg0KdWZmZXIg
-SS9PIGVycm9yIChYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjE5XSAgIGdmbjogMDAwMDU1NzYg
-IG1mbjogMDAwMDU1NzYNCg0Kb24gZGV2aWNlIGRtLTAsIChYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMzOjE5XSAgIGdmbjogMDAwMDU1NzcgIG1mbjogMDAwMDU1NzcNCg0KbG9naWNhbCBibG9j
-ayA4NDIxNDQ4DQoNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTldICAgZ2ZuOiAwMDAw
-NTU3OCAgbWZuOiAwMDAwNTU3OA0KDQpbICA0NjMuOTIxOTA1XSBsKFhFTikgWzIwMTItMDgt
-MzEgMjE6MzM6MTldICAgZ2ZuOiAwMDAwNTU3OSAgbWZuOiAwMDAwNTU3OQ0KDQpvc3QgcGFn
-ZSB3cml0ZSBkdWUgdG8gSS9PIGVycm9yIChYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjE5XSAg
-IGdmbjogMDAwMDU1N2EgIG1mbjogMDAwMDU1N2ENCg0Kb24gZG0tMA0KDQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMzOjE5XSAgIGdmbjogMDAwMDU1N2IgIG1mbjogMDAwMDU1N2INCg0K
-WyAgNDYzLjkyMTkxNF0gc2QgMDowOjA6MDogW3NkYV0oWEVOKSBbMjAxMi0wOC0zMSAyMToz
-MzoxOV0gICBnZm46IDAwMDA1NTdjICBtZm46IDAwMDA1NTdjDQoNCiBVbmhhbmRsZWQgZXJy
-b3IoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoxOV0gICBnZm46IDAwMDA1NTdkICBtZm46IDAw
-MDA1NTdkDQoNCiBjb2RlDQoNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MTldICAgZ2Zu
-OiAwMDAwNTU3ZSAgbWZuOiAwMDAwNTU3ZQ0KDQpbICA0NjMuOTIxOTE1XSBzKFhFTikgWzIw
-MTItMDgtMzEgMjE6MzM6MjBdICAgZ2ZuOiAwMDAwNTU3ZiAgbWZuOiAwMDAwNTU3Zg0KDQpk
-IDA6MDowOjA6IFtzZGFdICANCg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyMF0gICBn
-Zm46IDAwMDA1NTgwICBtZm46IDAwMDA1NTgwDQoNClsgIDQ2My45MjE5MTVdIFIoWEVOKSBb
-MjAxMi0wOC0zMSAyMTozMzoyMF0gICBnZm46IDAwMDA1NTgxICBtZm46IDAwMDA1NTgxDQoN
-CmVzdWx0OiBob3N0Ynl0ZT1ESURfQkFEX1RBUkdFVCBkKFhFTikgWzIwMTItMDgtMzEgMjE6
-MzM6MjBdICAgZ2ZuOiAwMDAwNTU4MiAgbWZuOiAwMDAwNTU4Mg0KDQpyaXZlcmJ5dGU9RFJJ
-VkVSKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjBdICAgZ2ZuOiAwMDAwNTU4MyAgbWZuOiAw
-MDAwNTU4Mw0KDQpfT0sNCg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyMF0gICBnZm46
-IDAwMDA1NTg0ICBtZm46IDAwMDA1NTg0DQoNClsgIDQ2My45MjE5MTZdIHMoWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMzoyMF0gICBnZm46IDAwMDA1NTg1ICBtZm46IDAwMDA1NTg1DQoNCmQg
-MDowOjA6MDogW3NkYV0oWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyMF0gICBnZm46IDAwMDA1
-NTg2ICBtZm46IDAwMDA1NTg2DQoNCiBDREI6IA0KDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMzOjIwXSAgIGdmbjogMDAwMDU1ODcgIG1mbjogMDAwMDU1ODcNCg0KWyAgNDYzLjkyMTkx
-OV0gV3JpdGUoMTApOiAyYSAwMCAoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyMF0gICBnZm46
-IDAwMDA1NTg4ICBtZm46IDAwMDA1NTg4DQoNCjA1IDM2IDU1IDE5IDAwIDAoWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMzoyMF0gICBnZm46IDAwMDA1NTg5ICBtZm46IDAwMDA1NTg5DQoNCjAg
-MDggMDANCg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyMF0gICBnZm46IDAwMDA1NThh
-ICBtZm46IDAwMDA1NThhDQoNClsgIDQ2My45MjE5MjBdIGUoWEVOKSBbMjAxMi0wOC0zMSAy
-MTozMzoyMF0gICBnZm46IDAwMDA1NThiICBtZm46IDAwMDA1NThiDQoNCm5kX3JlcXVlc3Q6
-IEkvTyBlcnJvciwgZGV2IHNkYSwgKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjBdICAgZ2Zu
-OiAwMDAwNTU4YyAgbWZuOiAwMDAwNTU4Yw0KDQpzZWN0b3IgODc0NDY4MDkNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMzOjIwXSAgIGdmbjogMDAwMDU1OGQgIG1mbjogMDAwMDU1OGQNCg0K
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjIwXSAgIGdmbjogMDAwMDU1OGUgIG1mbjog
-MDAwMDU1OGUNCg0KWyAgNDYzLjkyMTkyMl0gQihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjIw
-XSAgIGdmbjogMDAwMDU1OGYgIG1mbjogMDAwMDU1OGYNCg0KdWZmZXIgSS9PIGVycm9yIChY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMzOjIwXSAgIGdmbjogMDAwMDU1OTAgIG1mbjogMDAwMDU1
-OTANCg0Kb24gZGV2aWNlIGRtLTAsIChYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjIwXSAgIGdm
-bjogMDAwMDU1OTEgIG1mbjogMDAwMDU1OTENCg0KbG9naWNhbCBibG9jayA4NDg2OTE1DQoN
-Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjBdICAgZ2ZuOiAwMDAwNTU5MiAgbWZuOiAw
-MDAwNTU5Mg0KDQpbICA0NjMuOTIxOTIzXSBsKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjBd
-ICAgZ2ZuOiAwMDAwNTU5MyAgbWZuOiAwMDAwNTU5Mw0KDQpvc3QgcGFnZSB3cml0ZSBkdWUg
-dG8gSS9PIGVycm9yIChYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjIwXSAgIGdmbjogMDAwMDU1
-OTQgIG1mbjogMDAwMDU1OTQNCg0Kb24gZG0tMA0KDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMzOjIwXSAgIGdmbjogMDAwMDU1OTUgIG1mbjogMDAwMDU1OTUNCg0KWyAgNDYzLjkyMTkz
-MF0gcyhYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjIwXSAgIGdmbjogMDAwMDU1OTYgIG1mbjog
-MDAwMDU1OTYNCg0KZCAwOjA6MDowOiBbc2RhXShYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjIw
-XSAgIGdmbjogMDAwMDU1OTcgIG1mbjogMDAwMDU1OTcNCg0KIFVuaGFuZGxlZCBlcnJvciBj
-b2RlDQoNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjBdICAgZ2ZuOiAwMDAwNTU5OCAg
-bWZuOiAwMDAwNTU5OA0KDQpbICA0NjMuOTIxOTMxXSBzKFhFTikgWzIwMTItMDgtMzEgMjE6
-MzM6MjBdICAgZ2ZuOiAwMDAwNTU5OSAgbWZuOiAwMDAwNTU5OQ0KDQpkIDA6MDowOjA6IFtz
-ZGFdICANCg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyMF0gICBnZm46IDAwMDA1NTlh
-ICBtZm46IDAwMDA1NTlhDQoNClsgIDQ2My45MjE5MzJdIFIoWEVOKSBbMjAxMi0wOC0zMSAy
-MTozMzoyMF0gICBnZm46IDAwMDA1NTliICBtZm46IDAwMDA1NTliDQoNCmVzdWx0OiBob3N0
-Ynl0ZT1ESURfQkFEX1RBUkdFVCBkKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjBdICAgZ2Zu
-OiAwMDAwNTU5YyAgbWZuOiAwMDAwNTU5Yw0KDQpyaXZlcmJ5dGU9RFJJVkVSKFhFTikgWzIw
-MTItMDgtMzEgMjE6MzM6MjBdICAgZ2ZuOiAwMDAwNTU5ZCAgbWZuOiAwMDAwNTU5ZA0KDQpf
-T0sNCg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyMF0gICBnZm46IDAwMDA1NTllICBt
-Zm46IDAwMDA1NTllDQoNClsgIDQ2My45MjE5MzNdIHMoWEVOKSBbMjAxMi0wOC0zMSAyMToz
-MzoyMF0gICBnZm46IDAwMDA1NTlmICBtZm46IDAwMDA1NTlmDQoNCmQgMDowOjA6MDogW3Nk
-YV0oWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyMF0gICBnZm46IDAwMDA1NWEwICBtZm46IDAw
-MDA1NWEwDQoNCiBDREI6IA0KDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjIwXSAgIGdm
-bjogMDAwMDU1YTEgIG1mbjogMDAwMDU1YTENCg0KWyAgNDYzLjkyMTkzNl0gV3JpdGUoMTAp
-OiAyYSAwMCAoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyMF0gICBnZm46IDAwMDA1NWEyICBt
-Zm46IDAwMDA1NWEyDQoNCjA1IGI2IDU3IDYxIDAwIDAoWEVOKSBbMjAxMi0wOC0zMSAyMToz
-MzoyMF0gICBnZm46IDAwMDA1NWEzICBtZm46IDAwMDA1NWEzDQoNCjAgMDggMDANCg0KDQoo
-WEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyMF0gICBnZm46IDAwMDA1NWE0ICBtZm46IDAwMDA1
-NWE0DQoNClsgIDQ2My45MjE5MzddIGUoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyMF0gICBn
-Zm46IDAwMDA1NWE1ICBtZm46IDAwMDA1NWE1DQoNCm5kX3JlcXVlc3Q6IEkvTyAoWEVOKSBb
-MjAxMi0wOC0zMSAyMTozMzoyMF0gICBnZm46IDAwMDA1NWE2ICBtZm46IDAwMDA1NWE2DQoN
-CmVycm9yLCBkZXYgc2RhLCAoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyMF0gICBnZm46IDAw
-MDA1NWE3ICBtZm46IDAwMDA1NWE3DQoNCnNlY3RvciA5NTgzNjAwMQ0KDQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMzOjIwXSAgIGdmbjogMDAwMDU1YTggIG1mbjogMDAwMDU1YTgNCg0K
-WyAgNDYzLjkyMTkzOV0gQihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjIwXSAgIGdmbjogMDAw
-MDU1YTkgIG1mbjogMDAwMDU1YTkNCg0KdWZmZXIgSS9PIGVycm9yIG9uIGRldmljZSBkbS0w
-LCAoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyMF0gICBnZm46IDAwMDA1NWFhICBtZm46IDAw
-MDA1NWFhDQoNCmxvZ2ljYWwgYmxvY2sgOTUoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyMF0g
-ICBnZm46IDAwMDA1NWFiICBtZm46IDAwMDA1NWFiDQoNCjM1NTY0DQoNCg0KKFhFTikgWzIw
-MTItMDgtMzEgMjE6MzM6MjBdICAgZ2ZuOiAwMDAwNTVhYyAgbWZuOiAwMDAwNTVhYw0KDQpb
-ICA0NjMuOTIxOTM5XSBsKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjBdICAgZ2ZuOiAwMDAw
-NTVhZCAgbWZuOiAwMDAwNTVhZA0KDQpvc3QgcGFnZSB3cml0ZSBkKFhFTikgWzIwMTItMDgt
-MzEgMjE6MzM6MjBdICAgZ2ZuOiAwMDAwNTVhZSAgbWZuOiAwMDAwNTVhZQ0KDQp1ZSB0byBJ
-L08gZXJyb3IgKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjBdICAgZ2ZuOiAwMDAwNTVhZiAg
-bWZuOiAwMDAwNTVhZg0KDQpvbiBkbS0wDQoNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6
-MjBdICAgZ2ZuOiAwMDAwNTViMCAgbWZuOiAwMDAwNTViMA0KDQpbICA0NjMuOTIxOTQ4XSBz
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjFdICAgZ2ZuOiAwMDAwNTViMSAgbWZuOiAwMDAw
-NTViMQ0KDQpkIDA6MDowOjA6IFtzZGFdIFVuaGFuZGxlZCBlcnJvcihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMzOjIxXSAgIGdmbjogMDAwMDU1YjIgIG1mbjogMDAwMDU1YjINCg0KIGNvZGUN
-Cg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyMV0gICBnZm46IDAwMDA1NWIzICBtZm46
-IDAwMDA1NWIzDQoNClsgIDQ2My45MjE5NDldIHNkIDA6MDowOjA6IFtzZGFdKFhFTikgWzIw
-MTItMDgtMzEgMjE6MzM6MjFdICAgZ2ZuOiAwMDAwNTViNCAgbWZuOiAwMDAwNTViNA0KDQog
-IA0KDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjIxXSAgIGdmbjogMDAwMDU1YjUgIG1m
-bjogMDAwMDU1YjUNCg0KWyAgNDYzLjkyMTk1MF0gUihYRU4pIFsyMDEyLTA4LTMxIDIxOjMz
-OjIxXSAgIGdmbjogMDAwMDU1YjYgIG1mbjogMDAwMDU1YjYNCg0KZXN1bHQ6IGhvc3RieXRl
-PShYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjIxXSAgIGdmbjogMDAwMDU1YjcgIG1mbjogMDAw
-MDU1YjcNCg0KRElEX0JBRF9UQVJHRVQgZHJpdmVyYnl0ZT1EUklWRVIoWEVOKSBbMjAxMi0w
-OC0zMSAyMTozMzoyMV0gICBnZm46IDAwMDA1NWI4ICBtZm46IDAwMDA1NWI4DQoNCl9PSw0K
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjIxXSAgIGdmbjogMDAwMDU1YjkgIG1mbjog
-MDAwMDU1YjkNCg0KWyAgNDYzLjkyMTk1MV0gc2QgMDowOjA6MDogW3NkYV0oWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMzoyMV0gICBnZm46IDAwMDA1NWJhICBtZm46IDAwMDA1NWJhDQoNCiBD
-REI6IA0KDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjIxXSAgIGdmbjogMDAwMDU1YmIg
-IG1mbjogMDAwMDU1YmINCg0KWyAgNDYzLjkyMTk1NF0gV3JpdGUoMTApOiAyYSAwMCAoWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMzoyMV0gICBnZm46IDAwMDA1NWJjICBtZm46IDAwMDA1NWJj
-DQoNCjA2IDllIDU1IDAxIDAwIDAoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyMV0gICBnZm46
-IDAwMDA1NWJkICBtZm46IDAwMDA1NWJkDQoNCjAgMTggMDANCg0KDQooWEVOKSBbMjAxMi0w
-OC0zMSAyMTozMzoyMV0gICBnZm46IDAwMDA1NWJlICBtZm46IDAwMDA1NWJlDQoNClsgIDQ2
-My45MjE5NTVdIGUoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyMV0gICBnZm46IDAwMDA1NWJm
-ICBtZm46IDAwMDA1NWJmDQoNCm5kX3JlcXVlc3Q6IEkvTyAoWEVOKSBbMjAxMi0wOC0zMSAy
-MTozMzoyMV0gICBnZm46IDAwMDA1NWMwICBtZm46IDAwMDA1NWMwDQoNCmVycm9yLCBkZXYg
-c2RhLCAoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyMV0gICBnZm46IDAwMDA1NWMxICBtZm46
-IDAwMDA1NWMxDQoNCnNlY3RvciAxMTEwMzk3NDUoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoy
-MV0gICBnZm46IDAwMDA1NWMyICBtZm46IDAwMDA1NWMyDQoNCg0KDQoNCihYRU4pIFsyMDEy
-LTA4LTMxIDIxOjMzOjIxXSAgIGdmbjogMDAwMDU1YzMgIG1mbjogMDAwMDU1YzMNCg0KWyAg
-NDYzLjkyMTk1N10gQnVmZmVyIEkvTyBlcnJvciAoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoy
-MV0gICBnZm46IDAwMDA1NWM0ICBtZm46IDAwMDA1NWM0DQoNCm9uIGRldmljZSBkbS0wLCAo
-WEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyMV0gICBnZm46IDAwMDA1NWM1ICBtZm46IDAwMDA1
-NWM1DQoNCmxvZ2ljYWwgYmxvY2sgMTE0MzYwMzINCg0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
-MTozMzoyMV0gICBnZm46IDAwMDA1NWM2ICBtZm46IDAwMDA1NWM2DQoNClsgIDQ2My45MjE5
-NTddIGwoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyMV0gICBnZm46IDAwMDA1NWM3ICBtZm46
-IDAwMDA1NWM3DQoNCm9zdCBwYWdlIHdyaXRlIGQoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoy
-MV0gICBnZm46IDAwMDA1NWM4ICBtZm46IDAwMDA1NWM4DQoNCnVlIHRvIEkvTyBlcnJvciAo
-WEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyMV0gICBnZm46IDAwMDA1NWM5ICBtZm46IDAwMDA1
-NWM5DQoNCm9uIGRtLTANCg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyMV0gICBnZm46
-IDAwMDA1NWNhICBtZm46IDAwMDA1NWNhDQoNClsgIDQ2My45MjE5NjBdIEIoWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMzoyMV0gICBnZm46IDAwMDA1NWNiICBtZm46IDAwMDA1NWNiDQoNCnVm
-ZmVyIEkvTyBlcnJvciBvbiBkZXZpY2UgZG0tMCwgKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6
-MjFdICAgZ2ZuOiAwMDAwNTVjYyAgbWZuOiAwMDAwNTVjYw0KDQpsb2dpY2FsIGJsb2NrIDEx
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjFdICAgZ2ZuOiAwMDAwNTVjZCAgbWZuOiAwMDAw
-NTVjZA0KDQo0MzYwMzMNCg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyMV0gICBnZm46
-IDAwMDA1NWNlICBtZm46IDAwMDA1NWNlDQoNClsgIDQ2My45MjE5NjFdIGwoWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMzoyMV0gICBnZm46IDAwMDA1NWNmICBtZm46IDAwMDA1NWNmDQoNCm9z
-dCBwYWdlIHdyaXRlIGQoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyMV0gICBnZm46IDAwMDA1
-NWQwICBtZm46IDAwMDA1NWQwDQoNCnVlIHRvIEkvTyBlcnJvciAoWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMzoyMV0gICBnZm46IDAwMDA1NWQxICBtZm46IDAwMDA1NWQxDQoNCm9uIGRtLTAN
-Cg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyMV0gICBnZm46IDAwMDA1NWQyICBtZm46
-IDAwMDA1NWQyDQoNClsgIDQ2My45MjE5NjNdIEIoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoy
-MV0gICBnZm46IDAwMDA1NWQzICBtZm46IDAwMDA1NWQzDQoNCnVmZmVyIEkvTyBlcnJvciAo
-WEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyMV0gICBnZm46IDAwMDA1NWQ0ICBtZm46IDAwMDA1
-NWQ0DQoNCm9uIGRldmljZSBkbS0wLCAoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyMV0gICBn
-Zm46IDAwMDA1NWQ1ICBtZm46IDAwMDA1NWQ1DQoNCmxvZ2ljYWwgYmxvY2sgMTE0MzYwMzQN
-Cg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyMV0gICBnZm46IDAwMDA1NWQ2ICBtZm46
-IDAwMDA1NWQ2DQoNClsgIDQ2My45MjE5NjNdIGwoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoy
-MV0gICBnZm46IDAwMDA1NWQ3ICBtZm46IDAwMDA1NWQ3DQoNCm9zdCBwYWdlIHdyaXRlIGR1
-ZSB0byBJL08gZXJyb3IgKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjFdICAgZ2ZuOiAwMDAw
-NTVkOCAgbWZuOiAwMDAwNTVkOA0KDQpvbiBkbS0wDQoNCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzM6MjFdICAgZ2ZuOiAwMDAwNTVkOSAgbWZuOiAwMDAwNTVkOQ0KDQpbICA0NjMuOTIx
-OTcwXSBzZCAwOjA6MDowOiBbc2RhXShYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjIxXSAgIGdm
-bjogMDAwMDU1ZGEgIG1mbjogMDAwMDU1ZGENCg0KIFVuaGFuZGxlZCBlcnJvcihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMzOjIxXSAgIGdmbjogMDAwMDU1ZGIgIG1mbjogMDAwMDU1ZGINCg0K
-IGNvZGUNCg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyMV0gICBnZm46IDAwMDA1NWRj
-ICBtZm46IDAwMDA1NWRjDQoNClsgIDQ2My45MjE5NzFdIHMoWEVOKSBbMjAxMi0wOC0zMSAy
-MTozMzoyMV0gICBnZm46IDAwMDA1NWRkICBtZm46IDAwMDA1NWRkDQoNCmQgMDowOjA6MDog
-W3NkYV0oWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyMV0gICBnZm46IDAwMDA1NWRlICBtZm46
-IDAwMDA1NWRlDQoNCiAgDQoNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjFdICAgZ2Zu
-OiAwMDAwNTVkZiAgbWZuOiAwMDAwNTVkZg0KDQpbICA0NjMuOTIxOTcxXSBSZXN1bHQ6IGhv
-c3RieXRlPShYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjIxXSAgIGdmbjogMDAwMDU1ZTAgIG1m
-bjogMDAwMDU1ZTANCg0KRElEX0JBRF9UQVJHRVQgZChYRU4pIFsyMDEyLTA4LTMxIDIxOjMz
-OjIxXSAgIGdmbjogMDAwMDU1ZTEgIG1mbjogMDAwMDU1ZTENCg0Kcml2ZXJieXRlPURSSVZF
-UihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjIxXSAgIGdmbjogMDAwMDU1ZTIgIG1mbjogMDAw
-MDU1ZTINCg0KX09LDQoNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjJdICAgZ2ZuOiAw
-MDAwNTVlMyAgbWZuOiAwMDAwNTVlMw0KDQpbICA0NjMuOTIxOTcyXSBzZCAwOjA6MDowOiBb
-c2RhXShYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjIyXSAgIGdmbjogMDAwMDU1ZTQgIG1mbjog
-MDAwMDU1ZTQNCg0KIENEQjogDQoNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjJdICAg
-Z2ZuOiAwMDAwNTVlNSAgbWZuOiAwMDAwNTVlNQ0KDQpbICA0NjMuOTIxOTc1XSBXKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzM6MjJdICAgZ2ZuOiAwMDAwNTVlNiAgbWZuOiAwMDAwNTVlNg0K
-DQpyaXRlKDEwKTogMmEgMDAgKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjJdICAgZ2ZuOiAw
-MDAwNTVlNyAgbWZuOiAwMDAwNTVlNw0KDQowNiA5ZSA1YSBiMSAwMCAwKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzM6MjJdICAgZ2ZuOiAwMDAwNTVlOCAgbWZuOiAwMDAwNTVlOA0KDQowIDA4
-IDAwDQoNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjJdICAgZ2ZuOiAwMDAwNTVlOSAg
-bWZuOiAwMDAwNTVlOQ0KDQpbICA0NjMuOTIxOTc2XSBlKFhFTikgWzIwMTItMDgtMzEgMjE6
-MzM6MjJdICAgZ2ZuOiAwMDAwNTVlYSAgbWZuOiAwMDAwNTVlYQ0KDQpuZF9yZXF1ZXN0OiBJ
-L08gKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjJdICAgZ2ZuOiAwMDAwNTVlYiAgbWZuOiAw
-MDAwNTVlYg0KDQplcnJvciwgZGV2IHNkYSwgc2VjdG9yIDExMTA0MTIwMShYRU4pIFsyMDEy
-LTA4LTMxIDIxOjMzOjIyXSAgIGdmbjogMDAwMDU1ZWMgIG1mbjogMDAwMDU1ZWMNCg0KDQoN
-Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjJdICAgZ2ZuOiAwMDAwNTVlZCAgbWZuOiAw
-MDAwNTVlZA0KDQpbICA0NjMuOTIxOTc4XSBCdWZmZXIgSS9PIGVycm9yIChYRU4pIFsyMDEy
-LTA4LTMxIDIxOjMzOjIyXSAgIGdmbjogMDAwMDU1ZWUgIG1mbjogMDAwMDU1ZWUNCg0Kb24g
-ZGV2aWNlIGRtLTAsIChYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjIyXSAgIGdmbjogMDAwMDU1
-ZWYgIG1mbjogMDAwMDU1ZWYNCg0KbG9naWNhbCBibG9jayAxMTQzNjIxNA0KDQoNCihYRU4p
-IFsyMDEyLTA4LTMxIDIxOjMzOjIyXSAgIGdmbjogMDAwMDU1ZjAgIG1mbjogMDAwMDU1ZjAN
-Cg0KWyAgNDYzLjkyMTk3OF0gbChYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjIyXSAgIGdmbjog
-MDAwMDU1ZjEgIG1mbjogMDAwMDU1ZjENCg0Kb3N0IHBhZ2Ugd3JpdGUgZHVlIHRvIEkvTyBl
-cnJvciAoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyMl0gICBnZm46IDAwMDA1NWYyICBtZm46
-IDAwMDA1NWYyDQoNCm9uIGRtLTANCg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyMl0g
-ICBnZm46IDAwMDA1NWYzICBtZm46IDAwMDA1NWYzDQoNClsgIDQ2My45MjE5ODZdIHNkIDA6
-MDowOjA6IFtzZGFdKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjJdICAgZ2ZuOiAwMDAwNTVm
-NCAgbWZuOiAwMDAwNTVmNA0KDQogVW5oYW5kbGVkIGVycm9yKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzM6MjJdICAgZ2ZuOiAwMDAwNTVmNSAgbWZuOiAwMDAwNTVmNQ0KDQogY29kZQ0KDQoN
-CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjIyXSAgIGdmbjogMDAwMDU1ZjYgIG1mbjogMDAw
-MDU1ZjYNCg0KWyAgNDYzLjkyMTk4N10gcyhYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjIyXSAg
-IGdmbjogMDAwMDU1ZjcgIG1mbjogMDAwMDU1ZjcNCg0KZCAwOjA6MDowOiBbc2RhXSAgDQoN
-Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjJdICAgZ2ZuOiAwMDAwNTVmOCAgbWZuOiAw
-MDAwNTVmOA0KDQpbICA0NjMuOTIxOTg4XSBSKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjJd
-ICAgZ2ZuOiAwMDAwNTVmOSAgbWZuOiAwMDAwNTVmOQ0KDQplc3VsdDogaG9zdGJ5dGU9KFhF
-TikgWzIwMTItMDgtMzEgMjE6MzM6MjJdICAgZ2ZuOiAwMDAwNTVmYSAgbWZuOiAwMDAwNTVm
-YQ0KDQpESURfQkFEX1RBUkdFVCBkKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjJdICAgZ2Zu
-OiAwMDAwNTVmYiAgbWZuOiAwMDAwNTVmYg0KDQpyaXZlcmJ5dGU9RFJJVkVSX09LDQoNCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjJdICAgZ2ZuOiAwMDAwNTVmYyAgbWZuOiAwMDAw
-NTVmYw0KDQpbICA0NjMuOTIxOTg4XSBzKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjJdICAg
-Z2ZuOiAwMDAwNTVmZCAgbWZuOiAwMDAwNTVmZA0KDQpkIDA6MDowOjA6IFtzZGFdIENEQjog
-DQoNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjJdICAgZ2ZuOiAwMDAwNTVmZSAgbWZu
-OiAwMDAwNTVmZQ0KDQpbICA0NjMuOTIxOTkxXSBXKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6
-MjJdICAgZ2ZuOiAwMDAwNTVmZiAgbWZuOiAwMDAwNTVmZg0KDQpyaXRlKDEwKTogMmEgMDAg
-MDYgOWUgNjUgZTEgMDAgMChYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjIyXSAgIGdmbjogMDAw
-MDU2MDAgIG1mbjogMDAwMDU2MDANCg0KMCAwOCAwMA0KDQoNCihYRU4pIFsyMDEyLTA4LTMx
-IDIxOjMzOjIyXSAgIGdmbjogMDAwMDU2MDEgIG1mbjogMDAwMDU2MDENCg0KWyAgNDYzLjky
-MTk5Ml0gZW5kX3JlcXVlc3Q6IEkvTyBlcnJvciwgZGV2IHNkYSwgKFhFTikgWzIwMTItMDgt
-MzEgMjE6MzM6MjJdICAgZ2ZuOiAwMDAwNTYwMiAgbWZuOiAwMDAwNTYwMg0KDQpzZWN0b3Ig
-MTExMDQ0MDY1KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjJdICAgZ2ZuOiAwMDAwNTYwMyAg
-bWZuOiAwMDAwNTYwMw0KDQoNCg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyMl0gICBn
-Zm46IDAwMDA1NjA0ICBtZm46IDAwMDA1NjA0DQoNClsgIDQ2My45MjE5OTVdIEIoWEVOKSBb
-MjAxMi0wOC0zMSAyMTozMzoyMl0gICBnZm46IDAwMDA1NjA1ICBtZm46IDAwMDA1NjA1DQoN
-CnVmZmVyIEkvTyBlcnJvciAoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyMl0gICBnZm46IDAw
-MDA1NjA2ICBtZm46IDAwMDA1NjA2DQoNCm9uIGRldmljZSBkbS0wLCAoWEVOKSBbMjAxMi0w
-OC0zMSAyMTozMzoyMl0gICBnZm46IDAwMDA1NjA3ICBtZm46IDAwMDA1NjA3DQoNCmxvZ2lj
-YWwgYmxvY2sgMTE0MzY1NzINCg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyMl0gICBn
-Zm46IDAwMDA1NjA4ICBtZm46IDAwMDA1NjA4DQoNClsgIDQ2My45MjE5OTZdIGwoWEVOKSBb
-MjAxMi0wOC0zMSAyMTozMzoyMl0gICBnZm46IDAwMDA1NjA5ICBtZm46IDAwMDA1NjA5DQoN
-Cm9zdCBwYWdlIHdyaXRlIGR1ZSB0byBJL08gZXJyb3IgKFhFTikgWzIwMTItMDgtMzEgMjE6
-MzM6MjJdICAgZ2ZuOiAwMDAwNTYwYSAgbWZuOiAwMDAwNTYwYQ0KDQpvbiBkbS0wDQoNCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjJdICAgZ2ZuOiAwMDAwNTYwYiAgbWZuOiAwMDAw
-NTYwYg0KDQpbICA0NjMuOTIyMDIxXSBBYm9ydGluZyBqb3VybmFsIChYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMzOjIyXSAgIGdmbjogMDAwMDU2MGMgIG1mbjogMDAwMDU2MGMNCg0Kb24gZGV2
-aWNlIGRtLTAtOChYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjIyXSAgIGdmbjogMDAwMDU2MGQg
-IG1mbjogMDAwMDU2MGQNCg0KLg0KDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjIyXSAg
-IGdmbjogMDAwMDU2MGUgIG1mbjogMDAwMDU2MGUNCg0KWyAgNDYzLjkyMjA4MF0gRShYRU4p
-IFsyMDEyLTA4LTMxIDIxOjMzOjIyXSAgIGdmbjogMDAwMDU2MGYgIG1mbjogMDAwMDU2MGYN
-Cg0KWFQ0LWZzIChkbS0wKTogZChYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjIyXSAgIGdmbjog
-MDAwMDU2MTAgIG1mbjogMDAwMDU2MTANCg0KZWxheWVkIGJsb2NrIGFsbChYRU4pIFsyMDEy
-LTA4LTMxIDIxOjMzOjIyXSAgIGdmbjogMDAwMDU2MTEgIG1mbjogMDAwMDU2MTENCg0Kb2Nh
-dGlvbiBmYWlsZWQgZm9yIGlub2RlIDIxMDU0MTkoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoy
-Ml0gICBnZm46IDAwMDA1NjEyICBtZm46IDAwMDA1NjEyDQoNCiBhdCBsb2dpY2FsIG9mZnMo
-WEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyMl0gICBnZm46IDAwMDA1NjEzICBtZm46IDAwMDA1
-NjEzDQoNCmV0IDM5IHdpdGggbWF4IGJsb2NrcyA1IHdpdGggZXJyKFhFTikgWzIwMTItMDgt
-MzEgMjE6MzM6MjNdICAgZ2ZuOiAwMDAwNTYxNCAgbWZuOiAwMDAwNTYxNA0KDQpvciAtMzAN
-Cg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyM10gICBnZm46IDAwMDA1NjE1ICBtZm46
-IDAwMDA1NjE1DQoNClsgIDQ2My45MjIwODFdIEVYVDQtZnMgKGRtLTApOiBUKFhFTikgWzIw
-MTItMDgtMzEgMjE6MzM6MjNdICAgZ2ZuOiAwMDAwNTYxNiAgbWZuOiAwMDAwNTYxNg0KDQpo
-aXMgc2hvdWxkIG5vdCBoKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjNdICAgZ2ZuOiAwMDAw
-NTYxNyAgbWZuOiAwMDAwNTYxNw0KDQphcHBlbiEhIERhdGEgd2lsbCBiZSBsb3N0DQoNCg0K
-WyAgNDYoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyM10gICBnZm46IDAwMDA1NjE4ICBtZm46
-IDAwMDA1NjE4DQoNCjMuOTIyMDgxXSANCg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoy
-M10gICBnZm46IDAwMDA1NjE5ICBtZm46IDAwMDA1NjE5DQoNClsgIDQ2My45MjIxMzFdIEVY
-VDQtZnMgZXJyb3IgKGRlKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjNdICAgZ2ZuOiAwMDAw
-NTYxYSAgbWZuOiAwMDAwNTYxYQ0KDQp2aWNlIGRtLTApIGluIGV4KFhFTikgWzIwMTItMDgt
-MzEgMjE6MzM6MjNdICAgZ2ZuOiAwMDAwNTYxYiAgbWZuOiAwMDAwNTYxYg0KDQp0NF9kYV93
-cml0ZXBhZ2VzOjIzOTg6IEpvdXJuYWwgaChYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjIzXSAg
-IGdmbjogMDAwMDU2MWMgIG1mbjogMDAwMDU2MWMNCg0KYXMgYWJvcnRlZA0KDQoNCihYRU4p
-IFsyMDEyLTA4LTMxIDIxOjMzOjIzXSAgIGdmbjogMDAwMDU2MWQgIG1mbjogMDAwMDU2MWQN
-Cg0KWyAgNDYzLjkyMjIzM10gRVhUNC1mcyBlcnJvciAoZGUoWEVOKSBbMjAxMi0wOC0zMSAy
-MTozMzoyM10gICBnZm46IDAwMDA1NjFlICBtZm46IDAwMDA1NjFlDQoNCnZpY2UgZG0tMCkg
-aW4gZXgoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyM10gICBnZm46IDAwMDA1NjFmICBtZm46
-IDAwMDA1NjFmDQoNCnQ0X3Jlc2VydmVfaW5vZGVfd3JpdGU6NDU0MzogSm91KFhFTikgWzIw
-MTItMDgtMzEgMjE6MzM6MjNdICAgZ2ZuOiAwMDAwNTYyMCAgbWZuOiAwMDAwNTYyMA0KDQpy
-bmFsIGhhcyBhYm9ydGVkKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjNdICAgZ2ZuOiAwMDAw
-NTYyMSAgbWZuOiAwMDAwNTYyMQ0KDQoNCg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoy
-M10gICBnZm46IDAwMDA1NjIyICBtZm46IDAwMDA1NjIyDQoNClsgIDQ2My45MjIyNjldIHMo
-WEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyM10gICBnZm46IDAwMDA1NjIzICBtZm46IDAwMDA1
-NjIzDQoNCmQgMDowOjA6MDogW3NkYV0gVW5oYW5kbGVkIGVycm9yKFhFTikgWzIwMTItMDgt
-MzEgMjE6MzM6MjNdICAgZ2ZuOiAwMDAwNTYyNCAgbWZuOiAwMDAwNTYyNA0KDQogY29kZQ0K
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjIzXSAgIGdmbjogMDAwMDU2MjUgIG1mbjog
-MDAwMDU2MjUNCg0KWyAgNDYzLjkyMjI3MF0gc2QgMDowOjA6MDogW3NkYV0oWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMzoyM10gICBnZm46IDAwMDA1NjI2ICBtZm46IDAwMDA1NjI2DQoNCiAg
-DQoNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjNdICAgZ2ZuOiAwMDAwNTYyNyAgbWZu
-OiAwMDAwNTYyNw0KDQpbICA0NjMuOTIyMjcxXSBSZXN1bHQ6IGhvc3RieXRlPShYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMzOjIzXSAgIGdmbjogMDAwMDU2MjggIG1mbjogMDAwMDU2MjgNCg0K
-RElEX0JBRF9UQVJHRVQgZChYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjIzXSAgIGdmbjogMDAw
-MDU2MjkgIG1mbjogMDAwMDU2MjkNCg0Kcml2ZXJieXRlPURSSVZFUl9PSw0KDQoNCihYRU4p
-IFsyMDEyLTA4LTMxIDIxOjMzOjIzXSAgIGdmbjogMDAwMDU2MmEgIG1mbjogMDAwMDU2MmEN
-Cg0KWyAgNDYzLjkyMjI3Ml0gcyhYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjIzXSAgIGdmbjog
-MDAwMDU2MmIgIG1mbjogMDAwMDU2MmINCg0KZCAwOjA6MDowOiBbc2RhXSBDREI6IA0KDQoN
-CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjIzXSAgIGdmbjogMDAwMDU2MmMgIG1mbjogMDAw
-MDU2MmMNCg0KWyAgNDYzLjkyMjI3NV0gVyhYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjIzXSAg
-IGdmbjogMDAwMDU2MmQgIG1mbjogMDAwMDU2MmQNCg0Kcml0ZSgxMCk6IDJhIDAwIDAxIDJh
-IDg1IDQ5IDAwIDAoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyM10gICBnZm46IDAwMDA1NjJl
-ICBtZm46IDAwMDA1NjJlDQoNCjAgMDggMDANCg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-MzoyM10gICBnZm46IDAwMDA1NjJmICBtZm46IDAwMDA1NjJmDQoNClsgIDQ2My45MjIyNzZd
-IGVuZF9yZXF1ZXN0OiBJL08gKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjNdICAgZ2ZuOiAw
-MDAwNTYzMCAgbWZuOiAwMDAwNTYzMA0KDQplcnJvciwgZGV2IHNkYSwgKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzM6MjNdICAgZ2ZuOiAwMDAwNTYzMSAgbWZuOiAwMDAwNTYzMQ0KDQpzZWN0
-b3IgMTk1NjM4NDkNCg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyM10gICBnZm46IDAw
-MDA1NjMyICBtZm46IDAwMDA1NjMyDQoNClsgIDQ2My45MjIyOTJdIEooWEVOKSBbMjAxMi0w
-OC0zMSAyMTozMzoyM10gICBnZm46IDAwMDA1NjMzICBtZm46IDAwMDA1NjMzDQoNCkJEMjog
-RXJyb3IgLTUgZGV0ZWN0ZWQgd2hlbiB1cGRhdGluZyBqb3VybmFsIHN1cChYRU4pIFsyMDEy
-LTA4LTMxIDIxOjMzOjIzXSAgIGdmbjogMDAwMDU2MzQgIG1mbjogMDAwMDU2MzQNCg0KZXJi
-bG9jayBmb3IgZG0tMChYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjIzXSAgIGdmbjogMDAwMDU2
-MzUgIG1mbjogMDAwMDU2MzUNCg0KLTguDQoNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6
-MjNdICAgZ2ZuOiAwMDAwNTYzNiAgbWZuOiAwMDAwNTYzNg0KDQpbICA0NjMuOTIyMzU3XSBz
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjNdICAgZ2ZuOiAwMDAwNTYzNyAgbWZuOiAwMDAw
-NTYzNw0KDQpkIDA6MDowOjA6IFtzZGFdKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjNdICAg
-Z2ZuOiAwMDAwNTYzOCAgbWZuOiAwMDAwNTYzOA0KDQogVW5oYW5kbGVkIGVycm9yKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzM6MjNdICAgZ2ZuOiAwMDAwNTYzOSAgbWZuOiAwMDAwNTYzOQ0K
-DQogY29kZQ0KDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjIzXSAgIGdmbjogMDAwMDU2
-M2EgIG1mbjogMDAwMDU2M2ENCg0KWyAgNDYzLjkyMjM1OF0gcyhYRU4pIFsyMDEyLTA4LTMx
-IDIxOjMzOjIzXSAgIGdmbjogMDAwMDU2M2IgIG1mbjogMDAwMDU2M2INCg0KZCAwOjA6MDow
-OiBbc2RhXSAgDQoNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjNdICAgZ2ZuOiAwMDAw
-NTYzYyAgbWZuOiAwMDAwNTYzYw0KDQpbICA0NjMuOTIyMzU4XSBSKFhFTikgWzIwMTItMDgt
-MzEgMjE6MzM6MjNdICAgZ2ZuOiAwMDAwNTYzZCAgbWZuOiAwMDAwNTYzZA0KDQplc3VsdDog
-aG9zdGJ5dGU9RElEX0JBRF9UQVJHRVQgZChYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjIzXSAg
-IGdmbjogMDAwMDU2M2UgIG1mbjogMDAwMDU2M2UNCg0Kcml2ZXJieXRlPURSSVZFUihYRU4p
-IFsyMDEyLTA4LTMxIDIxOjMzOjIzXSAgIGdmbjogMDAwMDU2M2YgIG1mbjogMDAwMDU2M2YN
-Cg0KX09LDQoNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjNdICAgZ2ZuOiAwMDAwNTY0
-MCAgbWZuOiAwMDAwNTY0MA0KDQpbICA0NjMuOTIyMzU5XSBzKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzM6MjNdICAgZ2ZuOiAwMDAwNTY0MSAgbWZuOiAwMDAwNTY0MQ0KDQpkIDA6MDowOjA6
-IFtzZGFdKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjNdICAgZ2ZuOiAwMDAwNTY0MiAgbWZu
-OiAwMDAwNTY0Mg0KDQogQ0RCOiANCg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyM10g
-ICBnZm46IDAwMDA1NjQzICBtZm46IDAwMDA1NjQzDQoNClsgIDQ2My45MjIzNjNdIFdyaXRl
-KDEwKTogMmEgMDAgKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjRdICAgZ2ZuOiAwMDAwNTY0
-NCAgbWZuOiAwMDAwNTY0NA0KDQowMSAyYSA1NSAwMSAwMCAwKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzM6MjRdICAgZ2ZuOiAwMDAwNTY0NSAgbWZuOiAwMDAwNTY0NQ0KDQowIDA4IDAwDQoN
-Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjRdICAgZ2ZuOiAwMDAwNTY0NiAgbWZuOiAw
-MDAwNTY0Ng0KDQpbICA0NjMuOTIyMzYzXSBlKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjRd
-ICAgZ2ZuOiAwMDAwNTY0NyAgbWZuOiAwMDAwNTY0Nw0KDQpuZF9yZXF1ZXN0OiBJL08gZXJy
-b3IsIGRldiBzZGEsIChYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI0XSAgIGdmbjogMDAwMDU2
-NDggIG1mbjogMDAwMDU2NDgNCg0Kc2VjdG9yIDE5NTUxNDg5DQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMzoyNF0gICBnZm46IDAwMDA1NjQ5ICBtZm46IDAwMDA1NjQ5DQoNCg0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMzoyNF0gICBnZm46IDAwMDA1NjRhICBtZm46IDAwMDA1NjRh
-DQoNClsgIDQ2My45MjI1MjJdIHMoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyNF0gICBnZm46
-IDAwMDA1NjRiICBtZm46IDAwMDA1NjRiDQoNCmQgMDowOjA6MDogW3NkYV0oWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMzoyNF0gICBnZm46IDAwMDA1NjRjICBtZm46IDAwMDA1NjRjDQoNCiBV
-bmhhbmRsZWQgZXJyb3IoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyNF0gICBnZm46IDAwMDA1
-NjRkICBtZm46IDAwMDA1NjRkDQoNCiBjb2RlDQoNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
-MzM6MjRdICAgZ2ZuOiAwMDAwNTY0ZSAgbWZuOiAwMDAwNTY0ZQ0KDQpbICA0NjMuOTIyNTIz
-XSBzKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjRdICAgZ2ZuOiAwMDAwNTY0ZiAgbWZuOiAw
-MDAwNTY0Zg0KDQpkIDA6MDowOjA6IFtzZGFdKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjRd
-ICAgZ2ZuOiAwMDAwNTY1MCAgbWZuOiAwMDAwNTY1MA0KDQogIA0KDQoNCihYRU4pIFsyMDEy
-LTA4LTMxIDIxOjMzOjI0XSAgIGdmbjogMDAwMDU2NTEgIG1mbjogMDAwMDU2NTENCg0KWyAg
-NDYzLjkyMjUyNF0gUmVzdWx0OiBob3N0Ynl0ZT0oWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoy
-NF0gICBnZm46IDAwMDA1NjUyICBtZm46IDAwMDA1NjUyDQoNCkRJRF9CQURfVEFSR0VUIGQo
-WEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyNF0gICBnZm46IDAwMDA1NjUzICBtZm46IDAwMDA1
-NjUzDQoNCnJpdmVyYnl0ZT1EUklWRVJfT0sNCg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-MzoyNF0gICBnZm46IDAwMDA1NjU0ICBtZm46IDAwMDA1NjU0DQoNClsgIDQ2My45MjI1MjVd
-IHMoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyNF0gICBnZm46IDAwMDA1NjU1ICBtZm46IDAw
-MDA1NjU1DQoNCmQgMDowOjA6MDogW3NkYV0gQ0RCOiANCg0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMzoyNF0gICBnZm46IDAwMDA1NjU2ICBtZm46IDAwMDA1NjU2DQoNClsgIDQ2My45
-MjI1MjhdIFcoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyNF0gICBnZm46IDAwMDA1NjU3ICBt
-Zm46IDAwMDA1NjU3DQoNCnJpdGUoMTApOiAyYSAwMCAwMSAyYSA1NSAwMSAwMCAwKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzM6MjRdICAgZ2ZuOiAwMDAwNTY1OCAgbWZuOiAwMDAwNTY1OA0K
-DQowIDA4IDAwDQoNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjRdICAgZ2ZuOiAwMDAw
-NTY1OSAgbWZuOiAwMDAwNTY1OQ0KDQpbICA0NjMuOTIyNTI5XSBlbmRfcmVxdWVzdDogSS9P
-IChYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI0XSAgIGdmbjogMDAwMDU2NWEgIG1mbjogMDAw
-MDU2NWENCg0KZXJyb3IsIGRldiBzZGEsIChYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI0XSAg
-IGdmbjogMDAwMDU2NWIgIG1mbjogMDAwMDU2NWINCg0Kc2VjdG9yIDE5NTUxNDg5DQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMzoyNF0gICBnZm46IDAwMDA1NjVjICBtZm46IDAwMDA1NjVj
-DQoNCg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyNF0gICBnZm46IDAwMDA1NjVkICBt
-Zm46IDAwMDA1NjVkDQoNClsgIDQ2My45MjI1NDJdIEVYVDQtZnMgKGRtLTApOiBSKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzM6MjRdICAgZ2ZuOiAwMDAwNTY1ZSAgbWZuOiAwMDAwNTY1ZQ0K
-DQplbW91bnRpbmcgZmlsZXN5KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjRdICAgZ2ZuOiAw
-MDAwNTY1ZiAgbWZuOiAwMDAwNTY1Zg0KDQpzdGVtIHJlYWQtb25seQ0KDQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMzOjI0XSAgIGdmbjogMDAwMDU2NjAgIG1mbjogMDAwMDU2NjANCg0K
-WyAgNDYzLjkyMjU0NV0gRShYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI0XSAgIGdmbjogMDAw
-MDU2NjEgIG1mbjogMDAwMDU2NjENCg0KWFQ0LWZzIChkbS0wKTogZXh0NF9kYV93cml0ZXBh
-Z2UoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyNF0gICBnZm46IDAwMDA1NjYyICBtZm46IDAw
-MDA1NjYyDQoNCnM6IGpiZDJfc3RhcnQ6IDYoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyNF0g
-ICBnZm46IDAwMDA1NjYzICBtZm46IDAwMDA1NjYzDQoNCjE0NCBwYWdlcywgaW5vIDIoWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMzoyNF0gICBnZm46IDAwMDA1NjY0ICBtZm46IDAwMDA1NjY0
-DQoNCjEwNTQxOTsgZXJyIC0zMA0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjRdICAgZ2Zu
-OiAwMDAwNTY2NSAgbWZuOiAwMDAwNTY2NQ0KDQoNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
-MzM6MjRdICAgZ2ZuOiAwMDAwNTY2NiAgbWZuOiAwMDAwNTY2Ng0KDQpbICA0NjMuOTI1Njkz
-XSBFKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjRdICAgZ2ZuOiAwMDAwNTY2NyAgbWZuOiAw
-MDAwNTY2Nw0KDQpYVDQtZnMgZXJyb3IgKGRldmljZSBkbS0wKSBpbiBleChYRU4pIFsyMDEy
-LTA4LTMxIDIxOjMzOjI0XSAgIGdmbjogMDAwMDU2NjggIG1mbjogMDAwMDU2NjgNCg0KdDRf
-cmVzZXJ2ZV9pbm9kZShYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI0XSAgIGdmbjogMDAwMDU2
-NjkgIG1mbjogMDAwMDU2NjkNCg0KX3dyaXRlOjQ1NDM6IEpvdXJuYWwgaGFzIGFib3J0ZWQo
-WEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyNF0gICBnZm46IDAwMDA1NjZhICBtZm46IDAwMDA1
-NjZhDQoNCg0KDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI0XSAgIGdmbjogMDAwMDU2
-NmIgIG1mbjogMDAwMDU2NmINCg0KWyAgNDYzLjkyNTY5OF0gRVhUNC1mcyAoZG0tMCk6IHAo
-WEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyNF0gICBnZm46IDAwMDA1NjZjICBtZm46IDAwMDA1
-NjZjDQoNCnJldmlvdXMgSS9PIGVycm8oWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyNF0gICBn
-Zm46IDAwMDA1NjZkICBtZm46IDAwMDA1NjZkDQoNCnIgdG8gc3VwZXJibG9jayBkZXRlY3Rl
-ZA0KDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI0XSAgIGdmbjogMDAwMDU2NmUgIG1m
-bjogMDAwMDU2NmUNCg0KWyAgNDYzLjkyNTczM10gcyhYRU4pIFsyMDEyLTA4LTMxIDIxOjMz
-OjI0XSAgIGdmbjogMDAwMDU2NmYgIG1mbjogMDAwMDU2NmYNCg0KZCAwOjA6MDowOiBbc2Rh
-XShYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI0XSAgIGdmbjogMDAwMDU2NzAgIG1mbjogMDAw
-MDU2NzANCg0KIFVuaGFuZGxlZCBlcnJvcihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI0XSAg
-IGdmbjogMDAwMDU2NzEgIG1mbjogMDAwMDU2NzENCg0KIGNvZGUNCg0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMzoyNF0gICBnZm46IDAwMDA1NjcyICBtZm46IDAwMDA1NjcyDQoNClsg
-IDQ2My45MjU3MzRdIHMoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyNF0gICBnZm46IDAwMDA1
-NjczICBtZm46IDAwMDA1NjczDQoNCmQgMDowOjA6MDogW3NkYV0oWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMzoyNF0gICBnZm46IDAwMDA1Njc0ICBtZm46IDAwMDA1Njc0DQoNCiAgDQoNCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjRdICAgZ2ZuOiAwMDAwNTY3NSAgbWZuOiAwMDAw
-NTY3NQ0KDQpbICA0NjMuOTI1NzM0XSBSZXN1bHQ6IGhvc3RieXRlPShYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMzOjI1XSAgIGdmbjogMDAwMDU2NzYgIG1mbjogMDAwMDU2NzYNCg0KRElEX0JB
-RF9UQVJHRVQgZChYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI1XSAgIGdmbjogMDAwMDU2Nzcg
-IG1mbjogMDAwMDU2NzcNCg0Kcml2ZXJieXRlPURSSVZFUl9PSw0KDQoNCihYRU4pIFsyMDEy
-LTA4LTMxIDIxOjMzOjI1XSAgIGdmbjogMDAwMDU2NzggIG1mbjogMDAwMDU2NzgNCg0KWyAg
-NDYzLjkyNTczNV0gcyhYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI1XSAgIGdmbjogMDAwMDU2
-NzkgIG1mbjogMDAwMDU2NzkNCg0KZCAwOjA6MDowOiBbc2RhXSBDREI6IA0KDQoNCihYRU4p
-IFsyMDEyLTA4LTMxIDIxOjMzOjI1XSAgIGdmbjogMDAwMDU2N2EgIG1mbjogMDAwMDU2N2EN
-Cg0KWyAgNDYzLjkyNTczOV0gVyhYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI1XSAgIGdmbjog
-MDAwMDU2N2IgIG1mbjogMDAwMDU2N2INCg0Kcml0ZSgxMCk6IDJhIDAwIDAxIDJhIDU1IDAx
-IDAwIDAoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyNV0gICBnZm46IDAwMDA1NjdjICBtZm46
-IDAwMDA1NjdjDQoNCjAgMDggMDANCg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyNV0g
-ICBnZm46IDAwMDA1NjdkICBtZm46IDAwMDA1NjdkDQoNClsgIDQ2My45MjU3NDBdIGVuZF9y
-ZXF1ZXN0OiBJL08gKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjVdICAgZ2ZuOiAwMDAwNTY3
-ZSAgbWZuOiAwMDAwNTY3ZQ0KDQplcnJvciwgZGV2IHNkYSwgKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzM6MjVdICAgZ2ZuOiAwMDAwNTY3ZiAgbWZuOiAwMDAwNTY3Zg0KDQpzZWN0b3IgMTk1
-NTE0ODkNCg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyNV0gICBnZm46IDAwMDA1Njgw
-ICBtZm46IDAwMDA1NjgwDQoNClsgIDQ2My45MjU4NDhdIHMoWEVOKSBbMjAxMi0wOC0zMSAy
-MTozMzoyNV0gICBnZm46IDAwMDA1NjgxICBtZm46IDAwMDA1NjgxDQoNCmQgMDowOjA6MDog
-W3NkYV0gVW5oYW5kbGVkIGVycm9yKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjVdICAgZ2Zu
-OiAwMDAwNTY4MiAgbWZuOiAwMDAwNTY4Mg0KDQogY29kZQ0KDQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMzOjI1XSAgIGdmbjogMDAwMDU2ODMgIG1mbjogMDAwMDU2ODMNCg0KWyAgNDYz
-LjkyNTg0OV0gc2QgMDowOjA6MDogW3NkYV0oWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyNV0g
-ICBnZm46IDAwMDA1Njg0ICBtZm46IDAwMDA1Njg0DQoNCiAgDQoNCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzM6MjVdICAgZ2ZuOiAwMDAwNTY4NSAgbWZuOiAwMDAwNTY4NQ0KDQpbICA0
-NjMuOTI1ODQ5XSBSZXN1bHQ6IGhvc3RieXRlPShYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI1
-XSAgIGdmbjogMDAwMDU2ODYgIG1mbjogMDAwMDU2ODYNCg0KRElEX0JBRF9UQVJHRVQgZChY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI1XSAgIGdmbjogMDAwMDU2ODcgIG1mbjogMDAwMDU2
-ODcNCg0Kcml2ZXJieXRlPURSSVZFUl9PSw0KDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMz
-OjI1XSAgIGdmbjogMDAwMDU2ODggIG1mbjogMDAwMDU2ODgNCg0KWyAgNDYzLjkyNTg1MF0g
-cyhYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI1XSAgIGdmbjogMDAwMDU2ODkgIG1mbjogMDAw
-MDU2ODkNCg0KZCAwOjA6MDowOiBbc2RhXSBDREI6IA0KDQoNCihYRU4pIFsyMDEyLTA4LTMx
-IDIxOjMzOjI1XSAgIGdmbjogMDAwMDU2OGEgIG1mbjogMDAwMDU2OGENCg0KWyAgNDYzLjky
-NTg1NF0gVyhYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI1XSAgIGdmbjogMDAwMDU2OGIgIG1m
-bjogMDAwMDU2OGINCg0Kcml0ZSgxMCk6IDJhIDAwIDA1IDdhIDg4IGExIDAwIDAoWEVOKSBb
-MjAxMi0wOC0zMSAyMTozMzoyNV0gICBnZm46IDAwMDA1NjhjICBtZm46IDAwMDA1NjhjDQoN
-CjAgMDggMDANCg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyNV0gICBnZm46IDAwMDA1
-NjhkICBtZm46IDAwMDA1NjhkDQoNClsgIDQ2My45MjU4NTVdIGVuZF9yZXF1ZXN0OiBJL08g
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjVdICAgZ2ZuOiAwMDAwNTY4ZSAgbWZuOiAwMDAw
-NTY4ZQ0KDQplcnJvciwgZGV2IHNkYSwgKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjVdICAg
-Z2ZuOiAwMDAwNTY4ZiAgbWZuOiAwMDAwNTY4Zg0KDQpzZWN0b3IgOTE5MTY0NDkNCg0KDQoo
-WEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyNV0gICBnZm46IDAwMDA1NjkwICBtZm46IDAwMDA1
-NjkwDQoNClsgIDQ2My45MjU4NjZdIHMoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyNV0gICBn
-Zm46IDAwMDA1NjkxICBtZm46IDAwMDA1NjkxDQoNCmQgMDowOjA6MDogW3NkYV0gVW5oYW5k
-bGVkIGVycm9yKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjVdICAgZ2ZuOiAwMDAwNTY5MiAg
-bWZuOiAwMDAwNTY5Mg0KDQogY29kZQ0KDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI1
-XSAgIGdmbjogMDAwMDU2OTMgIG1mbjogMDAwMDU2OTMNCg0KWyAgNDYzLjkyNTg2N10gc2Qg
-MDowOjA6MDogW3NkYV0oWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyNV0gICBnZm46IDAwMDA1
-Njk0ICBtZm46IDAwMDA1Njk0DQoNCiAgDQoNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6
-MjVdICAgZ2ZuOiAwMDAwNTY5NSAgbWZuOiAwMDAwNTY5NQ0KDQpbICA0NjMuOTI1ODY4XSBS
-ZXN1bHQ6IGhvc3RieXRlPShYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI1XSAgIGdmbjogMDAw
-MDU2OTYgIG1mbjogMDAwMDU2OTYNCg0KRElEX0JBRF9UQVJHRVQgZChYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMzOjI1XSAgIGdmbjogMDAwMDU2OTcgIG1mbjogMDAwMDU2OTcNCg0Kcml2ZXJi
-eXRlPURSSVZFUl9PSw0KDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI1XSAgIGdmbjog
-MDAwMDU2OTggIG1mbjogMDAwMDU2OTgNCg0KWyAgNDYzLjkyNTg2OV0gcyhYRU4pIFsyMDEy
-LTA4LTMxIDIxOjMzOjI1XSAgIGdmbjogMDAwMDU2OTkgIG1mbjogMDAwMDU2OTkNCg0KZCAw
-OjA6MDowOiBbc2RhXSBDREI6IA0KDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI1XSAg
-IGdmbjogMDAwMDU2OWEgIG1mbjogMDAwMDU2OWENCg0KWyAgNDYzLjkyNTg3Ml0gVyhYRU4p
-IFsyMDEyLTA4LTMxIDIxOjMzOjI1XSAgIGdmbjogMDAwMDU2OWIgIG1mbjogMDAwMDU2OWIN
-Cg0Kcml0ZSgxMCk6IDJhIDAwIDA1IDdhIDk5IDYxIDAwIDAoWEVOKSBbMjAxMi0wOC0zMSAy
-MTozMzoyNV0gICBnZm46IDAwMDA1NjljICBtZm46IDAwMDA1NjljDQoNCjAgMDggMDANCg0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyNV0gICBnZm46IDAwMDA1NjlkICBtZm46IDAw
-MDA1NjlkDQoNClsgIDQ2My45MjU4NzJdIGVuZF9yZXF1ZXN0OiBJL08gKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzM6MjVdICAgZ2ZuOiAwMDAwNTY5ZSAgbWZuOiAwMDAwNTY5ZQ0KDQplcnJv
-ciwgZGV2IHNkYSwgKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjVdICAgZ2ZuOiAwMDAwNTY5
-ZiAgbWZuOiAwMDAwNTY5Zg0KDQpzZWN0b3IgOTE5MjA3MzcNCg0KDQooWEVOKSBbMjAxMi0w
-OC0zMSAyMTozMzoyNV0gICBnZm46IDAwMDA1NmEwICBtZm46IDAwMDA1NmEwDQoNClsgIDQ2
-My45MjU4NzldIHMoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyNV0gICBnZm46IDAwMDA1NmEx
-ICBtZm46IDAwMDA1NmExDQoNCmQgMDowOjA6MDogW3NkYV0gVW5oYW5kbGVkIGVycm9yKFhF
-TikgWzIwMTItMDgtMzEgMjE6MzM6MjVdICAgZ2ZuOiAwMDAwNTZhMiAgbWZuOiAwMDAwNTZh
-Mg0KDQogY29kZQ0KDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI1XSAgIGdmbjogMDAw
-MDU2YTMgIG1mbjogMDAwMDU2YTMNCg0KWyAgNDYzLjkyNTg3OV0gc2QgMDowOjA6MDogW3Nk
-YV0oWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyNV0gICBnZm46IDAwMDA1NmE0ICBtZm46IDAw
-MDA1NmE0DQoNCiAgDQoNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjZdICAgZ2ZuOiAw
-MDAwNTZhNSAgbWZuOiAwMDAwNTZhNQ0KDQpbICA0NjMuOTI1ODgwXSBSZXN1bHQ6IGhvc3Ri
-eXRlPShYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI2XSAgIGdmbjogMDAwMDU2YTYgIG1mbjog
-MDAwMDU2YTYNCg0KRElEX0JBRF9UQVJHRVQgZChYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI2
-XSAgIGdmbjogMDAwMDU2YTcgIG1mbjogMDAwMDU2YTcNCg0Kcml2ZXJieXRlPURSSVZFUl9P
-Sw0KDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI2XSAgIGdmbjogMDAwMDU2YTggIG1m
-bjogMDAwMDU2YTgNCg0KWyAgNDYzLjkyNTg4MV0gcyhYRU4pIFsyMDEyLTA4LTMxIDIxOjMz
-OjI2XSAgIGdmbjogMDAwMDU2YTkgIG1mbjogMDAwMDU2YTkNCg0KZCAwOjA6MDowOiBbc2Rh
-XSBDREI6IA0KDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI2XSAgIGdmbjogMDAwMDU2
-YWEgIG1mbjogMDAwMDU2YWENCg0KWyAgNDYzLjkyNTg4NF0gVyhYRU4pIFsyMDEyLTA4LTMx
-IDIxOjMzOjI2XSAgIGdmbjogMDAwMDU2YWIgIG1mbjogMDAwMDU2YWINCg0Kcml0ZSgxMCk6
-IDJhIDAwIDA1IGM2IGFmIDcxIDAwIDAoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyNl0gICBn
-Zm46IDAwMDA1NmFjICBtZm46IDAwMDA1NmFjDQoNCjAgMDggMDANCg0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMzoyNl0gICBnZm46IDAwMDA1NmFkICBtZm46IDAwMDA1NmFkDQoNClsg
-IDQ2My45MjU4ODVdIGVuZF9yZXF1ZXN0OiBJL08gKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6
-MjZdICAgZ2ZuOiAwMDAwNTZhZSAgbWZuOiAwMDAwNTZhZQ0KDQplcnJvciwgZGV2IHNkYSwg
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjZdICAgZ2ZuOiAwMDAwNTZhZiAgbWZuOiAwMDAw
-NTZhZg0KDQpzZWN0b3IgOTY5MDcxMjENCg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoy
-Nl0gICBnZm46IDAwMDA1NmIwICBtZm46IDAwMDA1NmIwDQoNClsgIDQ2My45MjU4OTFdIHMo
-WEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyNl0gICBnZm46IDAwMDA1NmIxICBtZm46IDAwMDA1
-NmIxDQoNCmQgMDowOjA6MDogW3NkYV0gVW5oYW5kbGVkIGVycm9yKFhFTikgWzIwMTItMDgt
-MzEgMjE6MzM6MjZdICAgZ2ZuOiAwMDAwNTZiMiAgbWZuOiAwMDAwNTZiMg0KDQogY29kZQ0K
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI2XSAgIGdmbjogMDAwMDU2YjMgIG1mbjog
-MDAwMDU2YjMNCg0KWyAgNDYzLjkyNTg5Ml0gc2QgMDowOjA6MDogW3NkYV0oWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMzoyNl0gICBnZm46IDAwMDA1NmI0ICBtZm46IDAwMDA1NmI0DQoNCiAg
-DQoNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjZdICAgZ2ZuOiAwMDAwNTZiNSAgbWZu
-OiAwMDAwNTZiNQ0KDQpbICA0NjMuOTI1ODkyXSBSZXN1bHQ6IGhvc3RieXRlPShYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMzOjI2XSAgIGdmbjogMDAwMDU2YjYgIG1mbjogMDAwMDU2YjYNCg0K
-RElEX0JBRF9UQVJHRVQgZChYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI2XSAgIGdmbjogMDAw
-MDU2YjcgIG1mbjogMDAwMDU2YjcNCg0Kcml2ZXJieXRlPURSSVZFUl9PSw0KDQoNCihYRU4p
-IFsyMDEyLTA4LTMxIDIxOjMzOjI2XSAgIGdmbjogMDAwMDU2YjggIG1mbjogMDAwMDU2YjgN
-Cg0KWyAgNDYzLjkyNTg5M10gcyhYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI2XSAgIGdmbjog
-MDAwMDU2YjkgIG1mbjogMDAwMDU2YjkNCg0KZCAwOjA6MDowOiBbc2RhXSBDREI6IA0KDQoN
-CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI2XSAgIGdmbjogMDAwMDU2YmEgIG1mbjogMDAw
-MDU2YmENCg0KWyAgNDYzLjkyNTg5Nl0gVyhYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI2XSAg
-IGdmbjogMDAwMDU2YmIgIG1mbjogMDAwMDU2YmINCg0Kcml0ZSgxMCk6IDJhIDAwIDAyIDRl
-IDk1IDExIDAwIDAoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyNl0gICBnZm46IDAwMDA1NmJj
-ICBtZm46IDAwMDA1NmJjDQoNCjAgMDggMDANCg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-MzoyNl0gICBnZm46IDAwMDA1NmJkICBtZm46IDAwMDA1NmJkDQoNClsgIDQ2My45MjU4OTdd
-IGUoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyNl0gICBnZm46IDAwMDA1NmJlICBtZm46IDAw
-MDA1NmJlDQoNCm5kX3JlcXVlc3Q6IEkvTyAoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyNl0g
-ICBnZm46IDAwMDA1NmJmICBtZm46IDAwMDA1NmJmDQoNCmVycm9yLCBkZXYgc2RhLCAoWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMzoyNl0gICBnZm46IDAwMDA1NmMwICBtZm46IDAwMDA1NmMw
-DQoNCnNlY3RvciAzODcwNDQwMQ0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjZdICAgZ2Zu
-OiAwMDAwNTZjMSAgbWZuOiAwMDAwNTZjMQ0KDQoNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
-MzM6MjZdICAgZ2ZuOiAwMDAwNTZjMiAgbWZuOiAwMDAwNTZjMg0KDQpbICA0NjMuOTI1OTA3
-XSBKKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjZdICAgZ2ZuOiAwMDAwNTZjMyAgbWZuOiAw
-MDAwNTZjMw0KDQpCRDI6IERldGVjdGVkIElPKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjZd
-ICAgZ2ZuOiAwMDAwNTZjNCAgbWZuOiAwMDAwNTZjNA0KDQogZXJyb3JzIHdoaWxlIGZsKFhF
-TikgWzIwMTItMDgtMzEgMjE6MzM6MjZdICAgZ2ZuOiAwMDAwNTZjNSAgbWZuOiAwMDAwNTZj
-NQ0KDQp1c2hpbmcgZmlsZSBkYXRhIG9uIGRtLTAtOA0KDQoNCihYRU4pIFsyMDEyLTA4LTMx
-IDIxOjMzOjI2XSAgIGdmbjogMDAwMDU2YzYgIG1mbjogMDAwMDU2YzYNCg0KWyAgNDcyLjY4
-MjMzOV0gcyhYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI2XSAgIGdmbjogMDAwMDU2YzcgIG1m
-bjogMDAwMDU2YzcNCg0KZCAwOjA6MDowOiBbc2RhXSAgDQoNCg0KKFhFTikgWzIwMTItMDgt
-MzEgMjE6MzM6MjZdICAgZ2ZuOiAwMDAwNTZjOCAgbWZuOiAwMDAwNTZjOA0KDQpbICA0NzIu
-NzIzOTE5XSBSKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjZdICAgZ2ZuOiAwMDAwNTZjOSAg
-bWZuOiAwMDAwNTZjOQ0KDQplc3VsdDogaG9zdGJ5dGU9RElEX0JBRF9UQVJHRVQgZHJpdmVy
-Ynl0ZT1EUklWRVIoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyNl0gICBnZm46IDAwMDA1NmNh
-ICBtZm46IDAwMDA1NmNhDQoNCl9PSw0KDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI2
-XSAgIGdmbjogMDAwMDU2Y2IgIG1mbjogMDAwMDU2Y2INCg0KWyAgNDcyLjc4NjM2MV0gc2Qg
-MDowOjA6MDogW3NkYV0oWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyNl0gICBnZm46IDAwMDA1
-NmNjICBtZm46IDAwMDA1NmNjDQoNCiBDREI6IA0KDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMzOjI2XSAgIGdmbjogMDAwMDU2Y2QgIG1mbjogMDAwMDU2Y2QNCg0KWyAgNDcyLjgyNzk2
-MF0gV3JpdGUoMTApKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjZdICAgZ2ZuOiAwMDAwNTZj
-ZSAgbWZuOiAwMDAwNTZjZQ0KDQo6KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjZdICAgZ2Zu
-OiAwMDAwNTZjZiAgbWZuOiAwMDAwNTZjZg0KDQogMmEgMDAoWEVOKSBbMjAxMi0wOC0zMSAy
-MTozMzoyNl0gICBnZm46IDAwMDA1NmQwICBtZm46IDAwMDA1NmQwDQoNCiBiZihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMzOjI2XSAgIGdmbjogMDAwMDU2ZDEgIG1mbjogMDAwMDU2ZDENCg0K
-IDA5KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjZdICAgZ2ZuOiAwMDAwNTZkMiAgbWZuOiAw
-MDAwNTZkMg0KDQogMzcoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyNl0gICBnZm46IDAwMDA1
-NmQzICBtZm46IDAwMDA1NmQzDQoNCiAxMShYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI2XSAg
-IGdmbjogMDAwMDU2ZDQgIG1mbjogMDAwMDU2ZDQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
-MzM6MjZdICAgZ2ZuOiAwMDAwNTZkNSAgbWZuOiAwMDAwNTZkNQ0KDQogMDAoWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMzoyNl0gICBnZm46IDAwMDA1NmQ2ICBtZm46IDAwMDA1NmQ2DQoNCiAw
-MChYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI2XSAgIGdmbjogMDAwMDU2ZDcgIG1mbjogMDAw
-MDU2ZDcNCg0KIGIwKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjddICAgZ2ZuOiAwMDAwNTZk
-OCAgbWZuOiAwMDAwNTZkOA0KDQogMDAoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyN10gICBn
-Zm46IDAwMDA1NmQ5ICBtZm46IDAwMDA1NmQ5DQoNCg0KDQoNCihYRU4pIFsyMDEyLTA4LTMx
-IDIxOjMzOjI3XSAgIGdmbjogMDAwMDU2ZGEgIG1mbjogMDAwMDU2ZGENCg0KWyAgNDczLjA0
-ODQzNF0gZShYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI3XSAgIGdmbjogMDAwMDU2ZGIgIG1m
-bjogMDAwMDU2ZGINCg0KbmRfcmVxdWVzdDogSS9PIChYRU4pIFsyMDEyLTA4LTMxIDIxOjMz
-OjI3XSAgIGdmbjogMDAwMDU2ZGMgIG1mbjogMDAwMDU2ZGMNCg0KZXJyb3IsIGRldiBzZGEs
-IChYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI3XSAgIGdmbjogMDAwMDU2ZGQgIG1mbjogMDAw
-MDU2ZGQNCg0Kc2VjdG9yIDMyMDUwNTIxNzcNCg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-MzoyN10gICBnZm46IDAwMDA1NmRlICBtZm46IDAwMDA1NmRlDQoNClsgIDQ3My4xMjc1NDZd
-IHMoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyN10gICBnZm46IDAwMDA1NmRmICBtZm46IDAw
-MDA1NmRmDQoNCmQgMDowOjA6MDogW3NkYV0gVW5oYW5kbGVkIGVycm9yKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzM6MjddICAgZ2ZuOiAwMDAwNTZlMCAgbWZuOiAwMDAwNTZlMA0KDQogY29k
-ZQ0KDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI3XSAgIGdmbjogMDAwMDU2ZTEgIG1m
-bjogMDAwMDU2ZTENCg0KWyAgNDczLjE4OTg0MF0gc2QgMDowOjA6MDogW3NkYV0oWEVOKSBb
-MjAxMi0wOC0zMSAyMTozMzoyN10gICBnZm46IDAwMDA1NmUyICBtZm46IDAwMDA1NmUyDQoN
-CiAgDQoNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjddICAgZ2ZuOiAwMDAwNTZlMyAg
-bWZuOiAwMDAwNTZlMw0KDQpbICA0NzMuMjMxNDMzXSBSZXN1bHQ6IGhvc3RieXRlPShYRU4p
-IFsyMDEyLTA4LTMxIDIxOjMzOjI3XSAgIGdmbjogMDAwMDU2ZTQgIG1mbjogMDAwMDU2ZTQN
-Cg0KRElEX0JBRF9UQVJHRVQgZChYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI3XSAgIGdmbjog
-MDAwMDU2ZTUgIG1mbjogMDAwMDU2ZTUNCg0Kcml2ZXJieXRlPURSSVZFUl9PSw0KDQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI3XSAgIGdmbjogMDAwMDU2ZTYgIG1mbjogMDAwMDU2
-ZTYNCg0KWyAgNDczLjI5Mzg1NV0gcyhYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI3XSAgIGdm
-bjogMDAwMDU2ZTcgIG1mbjogMDAwMDU2ZTcNCg0KZCAwOjA6MDowOiBbc2RhXSBDREI6IA0K
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI3XSAgIGdmbjogMDAwMDU2ZTggIG1mbjog
-MDAwMDU2ZTgNCg0KWyAgNDczLjMzNTQ0OF0gUihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI3
-XSAgIGdmbjogMDAwMDU2ZTkgIG1mbjogMDAwMDU2ZTkNCg0KZWFkKDEwKShYRU4pIFsyMDEy
-LTA4LTMxIDIxOjMzOjI3XSAgIGdmbjogMDAwMDU2ZWEgIG1mbjogMDAwMDU2ZWENCg0KOihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI3XSAgIGdmbjogMDAwMDU2ZWIgIG1mbjogMDAwMDU2
-ZWINCg0KIDI4IDAwKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjddICAgZ2ZuOiAwMDAwNTZl
-YyAgbWZuOiAwMDAwNTZlYw0KDQogYmUoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyN10gICBn
-Zm46IDAwMDA1NmVkICBtZm46IDAwMDA1NmVkDQoNCiBkZihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMzOjI3XSAgIGdmbjogMDAwMDU2ZWUgIG1mbjogMDAwMDU2ZWUNCg0KIDhiKFhFTikgWzIw
-MTItMDgtMzEgMjE6MzM6MjddICAgZ2ZuOiAwMDAwNTZlZiAgbWZuOiAwMDAwNTZlZg0KDQog
-NjEoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyN10gICBnZm46IDAwMDA1NmYwICBtZm46IDAw
-MDA1NmYwDQoNCiAwMChYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI3XSAgIGdmbjogMDAwMDU2
-ZjEgIG1mbjogMDAwMDU2ZjENCg0KIDAyKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjddICAg
-Z2ZuOiAwMDAwNTZmMiAgbWZuOiAwMDAwNTZmMg0KDQogMDAoWEVOKSBbMjAxMi0wOC0zMSAy
-MTozMzoyN10gICBnZm46IDAwMDA1NmYzICBtZm46IDAwMDA1NmYzDQoNCiAwMChYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMzOjI3XSAgIGdmbjogMDAwMDU2ZjQgIG1mbjogMDAwMDU2ZjQNCg0K
-DQoNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjddICAgZ2ZuOiAwMDAwNTZmNSAgbWZu
-OiAwMDAwNTZmNQ0KDQpbICA0NzMuNTU1OTAxXSBlbmRfcmVxdWVzdDogSS9PIChYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMzOjI3XSAgIGdmbjogMDAwMDU2ZjYgIG1mbjogMDAwMDU2ZjYNCg0K
-ZXJyb3IsIGRldiBzZGEsIChYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI3XSAgIGdmbjogMDAw
-MDU2ZjcgIG1mbjogMDAwMDU2ZjcNCg0Kc2VjdG9yIDMyMDIzMjEyNDkNCg0KDQooWEVOKSBb
-MjAxMi0wOC0zMSAyMTozMzoyN10gICBnZm46IDAwMDA1NmY4ICBtZm46IDAwMDA1NmY4DQoN
-CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI3XSAgIGdmbjogMDAwMDU2ZjkgIG1mbjogMDAw
-MDU2ZjkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjddICAgZ2ZuOiAwMDAwNTZmYSAg
-bWZuOiAwMDAwNTZmYQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyN10gICBnZm46IDAw
-MDA1NmZiICBtZm46IDAwMDA1NmZiDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI3XSAg
-IGdmbjogMDAwMDU2ZmMgIG1mbjogMDAwMDU2ZmMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
-MzM6MjddICAgZ2ZuOiAwMDAwNTZmZCAgbWZuOiAwMDAwNTZmZA0KDQooWEVOKSBbMjAxMi0w
-OC0zMSAyMTozMzoyN10gICBnZm46IDAwMDA1NmZlICBtZm46IDAwMDA1NmZlDQoNCihYRU4p
-IFsyMDEyLTA4LTMxIDIxOjMzOjI3XSAgIGdmbjogMDAwMDU2ZmYgIG1mbjogMDAwMDU2ZmYN
-Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjddICAgZ2ZuOiAwMDAwNTcwMCAgbWZuOiAw
-MDAwNTcwMA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyN10gICBnZm46IDAwMDA1NzAx
-ICBtZm46IDAwMDA1NzAxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI3XSAgIGdmbjog
-MDAwMDU3MDIgIG1mbjogMDAwMDU3MDINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6Mjdd
-ICAgZ2ZuOiAwMDAwNTcwMyAgbWZuOiAwMDAwNTcwMw0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
-MTozMzoyN10gICBnZm46IDAwMDA1NzA0ICBtZm46IDAwMDA1NzA0DQoNCihYRU4pIFsyMDEy
-LTA4LTMxIDIxOjMzOjI3XSAgIGdmbjogMDAwMDU3MDUgIG1mbjogMDAwMDU3MDUNCg0KKFhF
-TikgWzIwMTItMDgtMzEgMjE6MzM6MjddICAgZ2ZuOiAwMDAwNTcwNiAgbWZuOiAwMDAwNTcw
-Ng0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyN10gICBnZm46IDAwMDA1NzA3ICBtZm46
-IDAwMDA1NzA3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI3XSAgIGdmbjogMDAwMDU3
-MDggIG1mbjogMDAwMDU3MDgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjddICAgZ2Zu
-OiAwMDAwNTcwOSAgbWZuOiAwMDAwNTcwOQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoy
-N10gICBnZm46IDAwMDA1NzBhICBtZm46IDAwMDA1NzBhDQoNCihYRU4pIFsyMDEyLTA4LTMx
-IDIxOjMzOjI3XSAgIGdmbjogMDAwMDU3MGIgIG1mbjogMDAwMDU3MGINCg0KKFhFTikgWzIw
-MTItMDgtMzEgMjE6MzM6MjddICAgZ2ZuOiAwMDAwNTcwYyAgbWZuOiAwMDAwNTcwYw0KDQoo
-WEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyN10gICBnZm46IDAwMDA1NzBkICBtZm46IDAwMDA1
-NzBkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI3XSAgIGdmbjogMDAwMDU3MGUgIG1m
-bjogMDAwMDU3MGUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjddICAgZ2ZuOiAwMDAw
-NTcwZiAgbWZuOiAwMDAwNTcwZg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyN10gICBn
-Zm46IDAwMDA1NzEwICBtZm46IDAwMDA1NzEwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMz
-OjI4XSAgIGdmbjogMDAwMDU3MTEgIG1mbjogMDAwMDU3MTENCg0KKFhFTikgWzIwMTItMDgt
-MzEgMjE6MzM6MjhdICAgZ2ZuOiAwMDAwNTcxMiAgbWZuOiAwMDAwNTcxMg0KDQooWEVOKSBb
-MjAxMi0wOC0zMSAyMTozMzoyOF0gICBnZm46IDAwMDA1NzEzICBtZm46IDAwMDA1NzEzDQoN
-CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI4XSAgIGdmbjogMDAwMDU3MTQgIG1mbjogMDAw
-MDU3MTQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjhdICAgZ2ZuOiAwMDAwNTcxNSAg
-bWZuOiAwMDAwNTcxNQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyOF0gICBnZm46IDAw
-MDA1NzE2ICBtZm46IDAwMDA1NzE2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI4XSAg
-IGdmbjogMDAwMDU3MTcgIG1mbjogMDAwMDU3MTcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
-MzM6MjhdICAgZ2ZuOiAwMDAwNTcxOCAgbWZuOiAwMDAwNTcxOA0KDQooWEVOKSBbMjAxMi0w
-OC0zMSAyMTozMzoyOF0gICBnZm46IDAwMDA1NzE5ICBtZm46IDAwMDA1NzE5DQoNCihYRU4p
-IFsyMDEyLTA4LTMxIDIxOjMzOjI4XSAgIGdmbjogMDAwMDU3MWEgIG1mbjogMDAwMDU3MWEN
-Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjhdICAgZ2ZuOiAwMDAwNTcxYiAgbWZuOiAw
-MDAwNTcxYg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyOF0gICBnZm46IDAwMDA1NzFj
-ICBtZm46IDAwMDA1NzFjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI4XSAgIGdmbjog
-MDAwMDU3MWQgIG1mbjogMDAwMDU3MWQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6Mjhd
-ICAgZ2ZuOiAwMDAwNTcxZSAgbWZuOiAwMDAwNTcxZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
-MTozMzoyOF0gICBnZm46IDAwMDA1NzFmICBtZm46IDAwMDA1NzFmDQoNCihYRU4pIFsyMDEy
-LTA4LTMxIDIxOjMzOjI4XSAgIGdmbjogMDAwMDU3MjAgIG1mbjogMDAwMDU3MjANCg0KKFhF
-TikgWzIwMTItMDgtMzEgMjE6MzM6MjhdICAgZ2ZuOiAwMDAwNTcyMSAgbWZuOiAwMDAwNTcy
-MQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyOF0gICBnZm46IDAwMDA1NzIyICBtZm46
-IDAwMDA1NzIyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI4XSAgIGdmbjogMDAwMDU3
-MjMgIG1mbjogMDAwMDU3MjMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjhdICAgZ2Zu
-OiAwMDAwNTcyNCAgbWZuOiAwMDAwNTcyNA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoy
-OF0gICBnZm46IDAwMDA1NzI1ICBtZm46IDAwMDA1NzI1DQoNCihYRU4pIFsyMDEyLTA4LTMx
-IDIxOjMzOjI4XSAgIGdmbjogMDAwMDU3MjYgIG1mbjogMDAwMDU3MjYNCg0KKFhFTikgWzIw
-MTItMDgtMzEgMjE6MzM6MjhdICAgZ2ZuOiAwMDAwNTcyNyAgbWZuOiAwMDAwNTcyNw0KDQoo
-WEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyOF0gICBnZm46IDAwMDA1NzI4ICBtZm46IDAwMDA1
-NzI4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI4XSAgIGdmbjogMDAwMDU3MjkgIG1m
-bjogMDAwMDU3MjkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjhdICAgZ2ZuOiAwMDAw
-NTcyYSAgbWZuOiAwMDAwNTcyYQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyOF0gICBn
-Zm46IDAwMDA1NzJiICBtZm46IDAwMDA1NzJiDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMz
-OjI4XSAgIGdmbjogMDAwMDU3MmMgIG1mbjogMDAwMDU3MmMNCg0KKFhFTikgWzIwMTItMDgt
-MzEgMjE6MzM6MjhdICAgZ2ZuOiAwMDAwNTcyZCAgbWZuOiAwMDAwNTcyZA0KDQooWEVOKSBb
-MjAxMi0wOC0zMSAyMTozMzoyOF0gICBnZm46IDAwMDA1NzJlICBtZm46IDAwMDA1NzJlDQoN
-CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI4XSAgIGdmbjogMDAwMDU3MmYgIG1mbjogMDAw
-MDU3MmYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjhdICAgZ2ZuOiAwMDAwNTczMCAg
-bWZuOiAwMDAwNTczMA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyOF0gICBnZm46IDAw
-MDA1NzMxICBtZm46IDAwMDA1NzMxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI4XSAg
-IGdmbjogMDAwMDU3MzIgIG1mbjogMDAwMDU3MzINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
-MzM6MjhdICAgZ2ZuOiAwMDAwNTczMyAgbWZuOiAwMDAwNTczMw0KDQooWEVOKSBbMjAxMi0w
-OC0zMSAyMTozMzoyOF0gICBnZm46IDAwMDA1NzM0ICBtZm46IDAwMDA1NzM0DQoNCihYRU4p
-IFsyMDEyLTA4LTMxIDIxOjMzOjI4XSAgIGdmbjogMDAwMDU3MzUgIG1mbjogMDAwMDU3MzUN
-Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjhdICAgZ2ZuOiAwMDAwNTczNiAgbWZuOiAw
-MDAwNTczNg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyOF0gICBnZm46IDAwMDA1NzM3
-ICBtZm46IDAwMDA1NzM3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI4XSAgIGdmbjog
-MDAwMDU3MzggIG1mbjogMDAwMDU3MzgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6Mjhd
-ICAgZ2ZuOiAwMDAwNTczOSAgbWZuOiAwMDAwNTczOQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
-MTozMzoyOF0gICBnZm46IDAwMDA1NzNhICBtZm46IDAwMDA1NzNhDQoNCihYRU4pIFsyMDEy
-LTA4LTMxIDIxOjMzOjI4XSAgIGdmbjogMDAwMDU3M2IgIG1mbjogMDAwMDU3M2INCg0KKFhF
-TikgWzIwMTItMDgtMzEgMjE6MzM6MjhdICAgZ2ZuOiAwMDAwNTczYyAgbWZuOiAwMDAwNTcz
-Yw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyOF0gICBnZm46IDAwMDA1NzNkICBtZm46
-IDAwMDA1NzNkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI4XSAgIGdmbjogMDAwMDU3
-M2UgIG1mbjogMDAwMDU3M2UNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjhdICAgZ2Zu
-OiAwMDAwNTczZiAgbWZuOiAwMDAwNTczZg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoy
-OF0gICBnZm46IDAwMDA1NzQwICBtZm46IDAwMDA1NzQwDQoNCihYRU4pIFsyMDEyLTA4LTMx
-IDIxOjMzOjI4XSAgIGdmbjogMDAwMDU3NDEgIG1mbjogMDAwMDU3NDENCg0KKFhFTikgWzIw
-MTItMDgtMzEgMjE6MzM6MjhdICAgZ2ZuOiAwMDAwNTc0MiAgbWZuOiAwMDAwNTc0Mg0KDQoo
-WEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyOF0gICBnZm46IDAwMDA1NzQzICBtZm46IDAwMDA1
-NzQzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI4XSAgIGdmbjogMDAwMDU3NDQgIG1m
-bjogMDAwMDU3NDQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjhdICAgZ2ZuOiAwMDAw
-NTc0NSAgbWZuOiAwMDAwNTc0NQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyOF0gICBn
-Zm46IDAwMDA1NzQ2ICBtZm46IDAwMDA1NzQ2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMz
-OjI4XSAgIGdmbjogMDAwMDU3NDcgIG1mbjogMDAwMDU3NDcNCg0KKFhFTikgWzIwMTItMDgt
-MzEgMjE6MzM6MjhdICAgZ2ZuOiAwMDAwNTc0OCAgbWZuOiAwMDAwNTc0OA0KDQooWEVOKSBb
-MjAxMi0wOC0zMSAyMTozMzoyOF0gICBnZm46IDAwMDA1NzQ5ICBtZm46IDAwMDA1NzQ5DQoN
-CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI4XSAgIGdmbjogMDAwMDU3NGEgIG1mbjogMDAw
-MDU3NGENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjhdICAgZ2ZuOiAwMDAwNTc0YiAg
-bWZuOiAwMDAwNTc0Yg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyOF0gICBnZm46IDAw
-MDA1NzRjICBtZm46IDAwMDA1NzRjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI4XSAg
-IGdmbjogMDAwMDU3NGQgIG1mbjogMDAwMDU3NGQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
-MzM6MjhdICAgZ2ZuOiAwMDAwNTc0ZSAgbWZuOiAwMDAwNTc0ZQ0KDQooWEVOKSBbMjAxMi0w
-OC0zMSAyMTozMzoyOF0gICBnZm46IDAwMDA1NzRmICBtZm46IDAwMDA1NzRmDQoNCihYRU4p
-IFsyMDEyLTA4LTMxIDIxOjMzOjI4XSAgIGdmbjogMDAwMDU3NTAgIG1mbjogMDAwMDU3NTAN
-Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjldICAgZ2ZuOiAwMDAwNTc1MSAgbWZuOiAw
-MDAwNTc1MQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyOV0gICBnZm46IDAwMDA1NzUy
-ICBtZm46IDAwMDA1NzUyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI5XSAgIGdmbjog
-MDAwMDU3NTMgIG1mbjogMDAwMDU3NTMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6Mjld
-ICAgZ2ZuOiAwMDAwNTc1NCAgbWZuOiAwMDAwNTc1NA0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
-MTozMzoyOV0gICBnZm46IDAwMDA1NzU1ICBtZm46IDAwMDA1NzU1DQoNCihYRU4pIFsyMDEy
-LTA4LTMxIDIxOjMzOjI5XSAgIGdmbjogMDAwMDU3NTYgIG1mbjogMDAwMDU3NTYNCg0KKFhF
-TikgWzIwMTItMDgtMzEgMjE6MzM6MjldICAgZ2ZuOiAwMDAwNTc1NyAgbWZuOiAwMDAwNTc1
-Nw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyOV0gICBnZm46IDAwMDA1NzU4ICBtZm46
-IDAwMDA1NzU4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI5XSAgIGdmbjogMDAwMDU3
-NTkgIG1mbjogMDAwMDU3NTkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjldICAgZ2Zu
-OiAwMDAwNTc1YSAgbWZuOiAwMDAwNTc1YQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoy
-OV0gICBnZm46IDAwMDA1NzViICBtZm46IDAwMDA1NzViDQoNCihYRU4pIFsyMDEyLTA4LTMx
-IDIxOjMzOjI5XSAgIGdmbjogMDAwMDU3NWMgIG1mbjogMDAwMDU3NWMNCg0KKFhFTikgWzIw
-MTItMDgtMzEgMjE6MzM6MjldICAgZ2ZuOiAwMDAwNTc1ZCAgbWZuOiAwMDAwNTc1ZA0KDQoo
-WEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyOV0gICBnZm46IDAwMDA1NzVlICBtZm46IDAwMDA1
-NzVlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI5XSAgIGdmbjogMDAwMDU3NWYgIG1m
-bjogMDAwMDU3NWYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjldICAgZ2ZuOiAwMDAw
-NTc2MCAgbWZuOiAwMDAwNTc2MA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyOV0gICBn
-Zm46IDAwMDA1NzYxICBtZm46IDAwMDA1NzYxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMz
-OjI5XSAgIGdmbjogMDAwMDU3NjIgIG1mbjogMDAwMDU3NjINCg0KKFhFTikgWzIwMTItMDgt
-MzEgMjE6MzM6MjldICAgZ2ZuOiAwMDAwNTc2MyAgbWZuOiAwMDAwNTc2Mw0KDQooWEVOKSBb
-MjAxMi0wOC0zMSAyMTozMzoyOV0gICBnZm46IDAwMDA1NzY0ICBtZm46IDAwMDA1NzY0DQoN
-CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI5XSAgIGdmbjogMDAwMDU3NjUgIG1mbjogMDAw
-MDU3NjUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjldICAgZ2ZuOiAwMDAwNTc2NiAg
-bWZuOiAwMDAwNTc2Ng0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyOV0gICBnZm46IDAw
-MDA1NzY3ICBtZm46IDAwMDA1NzY3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI5XSAg
-IGdmbjogMDAwMDU3NjggIG1mbjogMDAwMDU3NjgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
-MzM6MjldICAgZ2ZuOiAwMDAwNTc2OSAgbWZuOiAwMDAwNTc2OQ0KDQooWEVOKSBbMjAxMi0w
-OC0zMSAyMTozMzoyOV0gICBnZm46IDAwMDA1NzZhICBtZm46IDAwMDA1NzZhDQoNCihYRU4p
-IFsyMDEyLTA4LTMxIDIxOjMzOjI5XSAgIGdmbjogMDAwMDU3NmIgIG1mbjogMDAwMDU3NmIN
-Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjldICAgZ2ZuOiAwMDAwNTc2YyAgbWZuOiAw
-MDAwNTc2Yw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyOV0gICBnZm46IDAwMDA1NzZk
-ICBtZm46IDAwMDA1NzZkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI5XSAgIGdmbjog
-MDAwMDU3NmUgIG1mbjogMDAwMDU3NmUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6Mjld
-ICAgZ2ZuOiAwMDAwNTc2ZiAgbWZuOiAwMDAwNTc2Zg0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
-MTozMzoyOV0gICBnZm46IDAwMDA1NzcwICBtZm46IDAwMDA1NzcwDQoNCihYRU4pIFsyMDEy
-LTA4LTMxIDIxOjMzOjI5XSAgIGdmbjogMDAwMDU3NzEgIG1mbjogMDAwMDU3NzENCg0KKFhF
-TikgWzIwMTItMDgtMzEgMjE6MzM6MjldICAgZ2ZuOiAwMDAwNTc3MiAgbWZuOiAwMDAwNTc3
-Mg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyOV0gICBnZm46IDAwMDA1NzczICBtZm46
-IDAwMDA1NzczDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI5XSAgIGdmbjogMDAwMDU3
-NzQgIG1mbjogMDAwMDU3NzQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjldICAgZ2Zu
-OiAwMDAwNTc3NSAgbWZuOiAwMDAwNTc3NQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoy
-OV0gICBnZm46IDAwMDA1Nzc2ICBtZm46IDAwMDA1Nzc2DQoNCihYRU4pIFsyMDEyLTA4LTMx
-IDIxOjMzOjI5XSAgIGdmbjogMDAwMDU3NzcgIG1mbjogMDAwMDU3NzcNCg0KKFhFTikgWzIw
-MTItMDgtMzEgMjE6MzM6MjldICAgZ2ZuOiAwMDAwNTc3OCAgbWZuOiAwMDAwNTc3OA0KDQoo
-WEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyOV0gICBnZm46IDAwMDA1Nzc5ICBtZm46IDAwMDA1
-Nzc5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI5XSAgIGdmbjogMDAwMDU3N2EgIG1m
-bjogMDAwMDU3N2ENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjldICAgZ2ZuOiAwMDAw
-NTc3YiAgbWZuOiAwMDAwNTc3Yg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyOV0gICBn
-Zm46IDAwMDA1NzdjICBtZm46IDAwMDA1NzdjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMz
-OjI5XSAgIGdmbjogMDAwMDU3N2QgIG1mbjogMDAwMDU3N2QNCg0KKFhFTikgWzIwMTItMDgt
-MzEgMjE6MzM6MjldICAgZ2ZuOiAwMDAwNTc3ZSAgbWZuOiAwMDAwNTc3ZQ0KDQooWEVOKSBb
-MjAxMi0wOC0zMSAyMTozMzoyOV0gICBnZm46IDAwMDA1NzdmICBtZm46IDAwMDA1NzdmDQoN
-CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI5XSAgIGdmbjogMDAwMDU3ODAgIG1mbjogMDAw
-MDU3ODANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjldICAgZ2ZuOiAwMDAwNTc4MSAg
-bWZuOiAwMDAwNTc4MQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyOV0gICBnZm46IDAw
-MDA1NzgyICBtZm46IDAwMDA1NzgyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI5XSAg
-IGdmbjogMDAwMDU3ODMgIG1mbjogMDAwMDU3ODMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
-MzM6MjldICAgZ2ZuOiAwMDAwNTc4NCAgbWZuOiAwMDAwNTc4NA0KDQooWEVOKSBbMjAxMi0w
-OC0zMSAyMTozMzoyOV0gICBnZm46IDAwMDA1Nzg1ICBtZm46IDAwMDA1Nzg1DQoNCihYRU4p
-IFsyMDEyLTA4LTMxIDIxOjMzOjI5XSAgIGdmbjogMDAwMDU3ODYgIG1mbjogMDAwMDU3ODYN
-Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjldICAgZ2ZuOiAwMDAwNTc4NyAgbWZuOiAw
-MDAwNTc4Nw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyOV0gICBnZm46IDAwMDA1Nzg4
-ICBtZm46IDAwMDA1Nzg4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI5XSAgIGdmbjog
-MDAwMDU3ODkgIG1mbjogMDAwMDU3ODkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6Mjld
-ICAgZ2ZuOiAwMDAwNTc4YSAgbWZuOiAwMDAwNTc4YQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
-MTozMzoyOV0gICBnZm46IDAwMDA1NzhiICBtZm46IDAwMDA1NzhiDQoNCihYRU4pIFsyMDEy
-LTA4LTMxIDIxOjMzOjI5XSAgIGdmbjogMDAwMDU3OGMgIG1mbjogMDAwMDU3OGMNCg0KKFhF
-TikgWzIwMTItMDgtMzEgMjE6MzM6MjldICAgZ2ZuOiAwMDAwNTc4ZCAgbWZuOiAwMDAwNTc4
-ZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoyOV0gICBnZm46IDAwMDA1NzhlICBtZm46
-IDAwMDA1NzhlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjI5XSAgIGdmbjogMDAwMDU3
-OGYgIG1mbjogMDAwMDU3OGYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MjldICAgZ2Zu
-OiAwMDAwNTc5MCAgbWZuOiAwMDAwNTc5MA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoz
-MF0gICBnZm46IDAwMDA1NzkxICBtZm46IDAwMDA1NzkxDQoNCihYRU4pIFsyMDEyLTA4LTMx
-IDIxOjMzOjMwXSAgIGdmbjogMDAwMDU3OTIgIG1mbjogMDAwMDU3OTINCg0KKFhFTikgWzIw
-MTItMDgtMzEgMjE6MzM6MzBdICAgZ2ZuOiAwMDAwNTc5MyAgbWZuOiAwMDAwNTc5Mw0KDQoo
-WEVOKSBbMjAxMi0wOC0zMSAyMTozMzozMF0gICBnZm46IDAwMDA1Nzk0ICBtZm46IDAwMDA1
-Nzk0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjMwXSAgIGdmbjogMDAwMDU3OTUgIG1m
-bjogMDAwMDU3OTUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzBdICAgZ2ZuOiAwMDAw
-NTc5NiAgbWZuOiAwMDAwNTc5Ng0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozMF0gICBn
-Zm46IDAwMDA1Nzk3ICBtZm46IDAwMDA1Nzk3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMz
-OjMwXSAgIGdmbjogMDAwMDU3OTggIG1mbjogMDAwMDU3OTgNCg0KKFhFTikgWzIwMTItMDgt
-MzEgMjE6MzM6MzBdICAgZ2ZuOiAwMDAwNTc5OSAgbWZuOiAwMDAwNTc5OQ0KDQooWEVOKSBb
-MjAxMi0wOC0zMSAyMTozMzozMF0gICBnZm46IDAwMDA1NzlhICBtZm46IDAwMDA1NzlhDQoN
-CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjMwXSAgIGdmbjogMDAwMDU3OWIgIG1mbjogMDAw
-MDU3OWINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzBdICAgZ2ZuOiAwMDAwNTc5YyAg
-bWZuOiAwMDAwNTc5Yw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozMF0gICBnZm46IDAw
-MDA1NzlkICBtZm46IDAwMDA1NzlkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjMwXSAg
-IGdmbjogMDAwMDU3OWUgIG1mbjogMDAwMDU3OWUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
-MzM6MzBdICAgZ2ZuOiAwMDAwNTc5ZiAgbWZuOiAwMDAwNTc5Zg0KDQooWEVOKSBbMjAxMi0w
-OC0zMSAyMTozMzozMF0gICBnZm46IDAwMDA1N2EwICBtZm46IDAwMDA1N2EwDQoNCihYRU4p
-IFsyMDEyLTA4LTMxIDIxOjMzOjMwXSAgIGdmbjogMDAwMDU3YTEgIG1mbjogMDAwMDU3YTEN
-Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzBdICAgZ2ZuOiAwMDAwNTdhMiAgbWZuOiAw
-MDAwNTdhMg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozMF0gICBnZm46IDAwMDA1N2Ez
-ICBtZm46IDAwMDA1N2EzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjMwXSAgIGdmbjog
-MDAwMDU3YTQgIG1mbjogMDAwMDU3YTQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzBd
-ICAgZ2ZuOiAwMDAwNTdhNSAgbWZuOiAwMDAwNTdhNQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
-MTozMzozMF0gICBnZm46IDAwMDA1N2E2ICBtZm46IDAwMDA1N2E2DQoNCihYRU4pIFsyMDEy
-LTA4LTMxIDIxOjMzOjMwXSAgIGdmbjogMDAwMDU3YTcgIG1mbjogMDAwMDU3YTcNCg0KKFhF
-TikgWzIwMTItMDgtMzEgMjE6MzM6MzBdICAgZ2ZuOiAwMDAwNTdhOCAgbWZuOiAwMDAwNTdh
-OA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozMF0gICBnZm46IDAwMDA1N2E5ICBtZm46
-IDAwMDA1N2E5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjMwXSAgIGdmbjogMDAwMDU3
-YWEgIG1mbjogMDAwMDU3YWENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzBdICAgZ2Zu
-OiAwMDAwNTdhYiAgbWZuOiAwMDAwNTdhYg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoz
-MF0gICBnZm46IDAwMDA1N2FjICBtZm46IDAwMDA1N2FjDQoNCihYRU4pIFsyMDEyLTA4LTMx
-IDIxOjMzOjMwXSAgIGdmbjogMDAwMDU3YWQgIG1mbjogMDAwMDU3YWQNCg0KKFhFTikgWzIw
-MTItMDgtMzEgMjE6MzM6MzBdICAgZ2ZuOiAwMDAwNTdhZSAgbWZuOiAwMDAwNTdhZQ0KDQoo
-WEVOKSBbMjAxMi0wOC0zMSAyMTozMzozMF0gICBnZm46IDAwMDA1N2FmICBtZm46IDAwMDA1
-N2FmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjMwXSAgIGdmbjogMDAwMDU3YjAgIG1m
-bjogMDAwMDU3YjANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzBdICAgZ2ZuOiAwMDAw
-NTdiMSAgbWZuOiAwMDAwNTdiMQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozMF0gICBn
-Zm46IDAwMDA1N2IyICBtZm46IDAwMDA1N2IyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMz
-OjMwXSAgIGdmbjogMDAwMDU3YjMgIG1mbjogMDAwMDU3YjMNCg0KKFhFTikgWzIwMTItMDgt
-MzEgMjE6MzM6MzBdICAgZ2ZuOiAwMDAwNTdiNCAgbWZuOiAwMDAwNTdiNA0KDQooWEVOKSBb
-MjAxMi0wOC0zMSAyMTozMzozMF0gICBnZm46IDAwMDA1N2I1ICBtZm46IDAwMDA1N2I1DQoN
-CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjMwXSAgIGdmbjogMDAwMDU3YjYgIG1mbjogMDAw
-MDU3YjYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzBdICAgZ2ZuOiAwMDAwNTdiNyAg
-bWZuOiAwMDAwNTdiNw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozMF0gICBnZm46IDAw
-MDA1N2I4ICBtZm46IDAwMDA1N2I4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjMwXSAg
-IGdmbjogMDAwMDU3YjkgIG1mbjogMDAwMDU3YjkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
-MzM6MzBdICAgZ2ZuOiAwMDAwNTdiYSAgbWZuOiAwMDAwNTdiYQ0KDQooWEVOKSBbMjAxMi0w
-OC0zMSAyMTozMzozMF0gICBnZm46IDAwMDA1N2JiICBtZm46IDAwMDA1N2JiDQoNCihYRU4p
-IFsyMDEyLTA4LTMxIDIxOjMzOjMwXSAgIGdmbjogMDAwMDU3YmMgIG1mbjogMDAwMDU3YmMN
-Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzBdICAgZ2ZuOiAwMDAwNTdiZCAgbWZuOiAw
-MDAwNTdiZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozMF0gICBnZm46IDAwMDA1N2Jl
-ICBtZm46IDAwMDA1N2JlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjMwXSAgIGdmbjog
-MDAwMDU3YmYgIG1mbjogMDAwMDU3YmYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzBd
-ICAgZ2ZuOiAwMDAwNTdjMCAgbWZuOiAwMDAwNTdjMA0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
-MTozMzozMF0gICBnZm46IDAwMDA1N2MxICBtZm46IDAwMDA1N2MxDQoNCihYRU4pIFsyMDEy
-LTA4LTMxIDIxOjMzOjMwXSAgIGdmbjogMDAwMDU3YzIgIG1mbjogMDAwMDU3YzINCg0KKFhF
-TikgWzIwMTItMDgtMzEgMjE6MzM6MzBdICAgZ2ZuOiAwMDAwNTdjMyAgbWZuOiAwMDAwNTdj
-Mw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozMF0gICBnZm46IDAwMDA1N2M0ICBtZm46
-IDAwMDA1N2M0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjMwXSAgIGdmbjogMDAwMDU3
-YzUgIG1mbjogMDAwMDU3YzUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzBdICAgZ2Zu
-OiAwMDAwNTdjNiAgbWZuOiAwMDAwNTdjNg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoz
-MF0gICBnZm46IDAwMDA1N2M3ICBtZm46IDAwMDA1N2M3DQoNCihYRU4pIFsyMDEyLTA4LTMx
-IDIxOjMzOjMwXSAgIGdmbjogMDAwMDU3YzggIG1mbjogMDAwMDU3YzgNCg0KKFhFTikgWzIw
-MTItMDgtMzEgMjE6MzM6MzBdICAgZ2ZuOiAwMDAwNTdjOSAgbWZuOiAwMDAwNTdjOQ0KDQoo
-WEVOKSBbMjAxMi0wOC0zMSAyMTozMzozMF0gICBnZm46IDAwMDA1N2NhICBtZm46IDAwMDA1
-N2NhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjMwXSAgIGdmbjogMDAwMDU3Y2IgIG1m
-bjogMDAwMDU3Y2INCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzBdICAgZ2ZuOiAwMDAw
-NTdjYyAgbWZuOiAwMDAwNTdjYw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozMF0gICBn
-Zm46IDAwMDA1N2NkICBtZm46IDAwMDA1N2NkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMz
-OjMwXSAgIGdmbjogMDAwMDU3Y2UgIG1mbjogMDAwMDU3Y2UNCg0KKFhFTikgWzIwMTItMDgt
-MzEgMjE6MzM6MzBdICAgZ2ZuOiAwMDAwNTdjZiAgbWZuOiAwMDAwNTdjZg0KDQooWEVOKSBb
-MjAxMi0wOC0zMSAyMTozMzozMF0gICBnZm46IDAwMDA1N2QwICBtZm46IDAwMDA1N2QwDQoN
-CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjMxXSAgIGdmbjogMDAwMDU3ZDEgIG1mbjogMDAw
-MDU3ZDENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzFdICAgZ2ZuOiAwMDAwNTdkMiAg
-bWZuOiAwMDAwNTdkMg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozMV0gICBnZm46IDAw
-MDA1N2QzICBtZm46IDAwMDA1N2QzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjMxXSAg
-IGdmbjogMDAwMDU3ZDQgIG1mbjogMDAwMDU3ZDQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
-MzM6MzFdICAgZ2ZuOiAwMDAwNTdkNSAgbWZuOiAwMDAwNTdkNQ0KDQooWEVOKSBbMjAxMi0w
-OC0zMSAyMTozMzozMV0gICBnZm46IDAwMDA1N2Q2ICBtZm46IDAwMDA1N2Q2DQoNCihYRU4p
-IFsyMDEyLTA4LTMxIDIxOjMzOjMxXSAgIGdmbjogMDAwMDU3ZDcgIG1mbjogMDAwMDU3ZDcN
-Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzFdICAgZ2ZuOiAwMDAwNTdkOCAgbWZuOiAw
-MDAwNTdkOA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozMV0gICBnZm46IDAwMDA1N2Q5
-ICBtZm46IDAwMDA1N2Q5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjMxXSAgIGdmbjog
-MDAwMDU3ZGEgIG1mbjogMDAwMDU3ZGENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzFd
-ICAgZ2ZuOiAwMDAwNTdkYiAgbWZuOiAwMDAwNTdkYg0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
-MTozMzozMV0gICBnZm46IDAwMDA1N2RjICBtZm46IDAwMDA1N2RjDQoNCihYRU4pIFsyMDEy
-LTA4LTMxIDIxOjMzOjMxXSAgIGdmbjogMDAwMDU3ZGQgIG1mbjogMDAwMDU3ZGQNCg0KKFhF
-TikgWzIwMTItMDgtMzEgMjE6MzM6MzFdICAgZ2ZuOiAwMDAwNTdkZSAgbWZuOiAwMDAwNTdk
-ZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozMV0gICBnZm46IDAwMDA1N2RmICBtZm46
-IDAwMDA1N2RmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjMxXSAgIGdmbjogMDAwMDU3
-ZTAgIG1mbjogMDAwMDU3ZTANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzFdICAgZ2Zu
-OiAwMDAwNTdlMSAgbWZuOiAwMDAwNTdlMQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoz
-MV0gICBnZm46IDAwMDA1N2UyICBtZm46IDAwMDA1N2UyDQoNCihYRU4pIFsyMDEyLTA4LTMx
-IDIxOjMzOjMxXSAgIGdmbjogMDAwMDU3ZTMgIG1mbjogMDAwMDU3ZTMNCg0KKFhFTikgWzIw
-MTItMDgtMzEgMjE6MzM6MzFdICAgZ2ZuOiAwMDAwNTdlNCAgbWZuOiAwMDAwNTdlNA0KDQoo
-WEVOKSBbMjAxMi0wOC0zMSAyMTozMzozMV0gICBnZm46IDAwMDA1N2U1ICBtZm46IDAwMDA1
-N2U1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjMxXSAgIGdmbjogMDAwMDU3ZTYgIG1m
-bjogMDAwMDU3ZTYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzFdICAgZ2ZuOiAwMDAw
-NTdlNyAgbWZuOiAwMDAwNTdlNw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozMV0gICBn
-Zm46IDAwMDA1N2U4ICBtZm46IDAwMDA1N2U4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMz
-OjMxXSAgIGdmbjogMDAwMDU3ZTkgIG1mbjogMDAwMDU3ZTkNCg0KKFhFTikgWzIwMTItMDgt
-MzEgMjE6MzM6MzFdICAgZ2ZuOiAwMDAwNTdlYSAgbWZuOiAwMDAwNTdlYQ0KDQooWEVOKSBb
-MjAxMi0wOC0zMSAyMTozMzozMV0gICBnZm46IDAwMDA1N2ViICBtZm46IDAwMDA1N2ViDQoN
-CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjMxXSAgIGdmbjogMDAwMDU3ZWMgIG1mbjogMDAw
-MDU3ZWMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzFdICAgZ2ZuOiAwMDAwNTdlZCAg
-bWZuOiAwMDAwNTdlZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozMV0gICBnZm46IDAw
-MDA1N2VlICBtZm46IDAwMDA1N2VlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjMxXSAg
-IGdmbjogMDAwMDU3ZWYgIG1mbjogMDAwMDU3ZWYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
-MzM6MzFdICAgZ2ZuOiAwMDAwNTdmMCAgbWZuOiAwMDAwNTdmMA0KDQooWEVOKSBbMjAxMi0w
-OC0zMSAyMTozMzozMV0gICBnZm46IDAwMDA1N2YxICBtZm46IDAwMDA1N2YxDQoNCihYRU4p
-IFsyMDEyLTA4LTMxIDIxOjMzOjMxXSAgIGdmbjogMDAwMDU3ZjIgIG1mbjogMDAwMDU3ZjIN
-Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzFdICAgZ2ZuOiAwMDAwNTdmMyAgbWZuOiAw
-MDAwNTdmMw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozMV0gICBnZm46IDAwMDA1N2Y0
-ICBtZm46IDAwMDA1N2Y0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjMxXSAgIGdmbjog
-MDAwMDU3ZjUgIG1mbjogMDAwMDU3ZjUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzFd
-ICAgZ2ZuOiAwMDAwNTdmNiAgbWZuOiAwMDAwNTdmNg0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
-MTozMzozMV0gICBnZm46IDAwMDA1N2Y3ICBtZm46IDAwMDA1N2Y3DQoNCihYRU4pIFsyMDEy
-LTA4LTMxIDIxOjMzOjMxXSAgIGdmbjogMDAwMDU3ZjggIG1mbjogMDAwMDU3ZjgNCg0KKFhF
-TikgWzIwMTItMDgtMzEgMjE6MzM6MzFdICAgZ2ZuOiAwMDAwNTdmOSAgbWZuOiAwMDAwNTdm
-OQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozMV0gICBnZm46IDAwMDA1N2ZhICBtZm46
-IDAwMDA1N2ZhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjMxXSAgIGdmbjogMDAwMDU3
-ZmIgIG1mbjogMDAwMDU3ZmINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzFdICAgZ2Zu
-OiAwMDAwNTdmYyAgbWZuOiAwMDAwNTdmYw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoz
-MV0gICBnZm46IDAwMDA1N2ZkICBtZm46IDAwMDA1N2ZkDQoNCihYRU4pIFsyMDEyLTA4LTMx
-IDIxOjMzOjMxXSAgIGdmbjogMDAwMDU3ZmUgIG1mbjogMDAwMDU3ZmUNCg0KKFhFTikgWzIw
-MTItMDgtMzEgMjE6MzM6MzFdICAgZ2ZuOiAwMDAwNTdmZiAgbWZuOiAwMDAwNTdmZg0KDQoo
-WEVOKSBbMjAxMi0wOC0zMSAyMTozMzozMV0gICBnZm46IDAwMDA1ODAwICBtZm46IDAwMDA1
-ODAwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjMxXSAgIGdmbjogMDAwMDU4MDEgIG1m
-bjogMDAwMDU4MDENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzFdICAgZ2ZuOiAwMDAw
-NTgwMiAgbWZuOiAwMDAwNTgwMg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozMV0gICBn
-Zm46IDAwMDA1ODAzICBtZm46IDAwMDA1ODAzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMz
-OjMxXSAgIGdmbjogMDAwMDU4MDQgIG1mbjogMDAwMDU4MDQNCg0KKFhFTikgWzIwMTItMDgt
-MzEgMjE6MzM6MzFdICAgZ2ZuOiAwMDAwNTgwNSAgbWZuOiAwMDAwNTgwNQ0KDQooWEVOKSBb
-MjAxMi0wOC0zMSAyMTozMzozMV0gICBnZm46IDAwMDA1ODA2ICBtZm46IDAwMDA1ODA2DQoN
-CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjMxXSAgIGdmbjogMDAwMDU4MDcgIG1mbjogMDAw
-MDU4MDcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzFdICAgZ2ZuOiAwMDAwNTgwOCAg
-bWZuOiAwMDAwNTgwOA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozMV0gICBnZm46IDAw
-MDA1ODA5ICBtZm46IDAwMDA1ODA5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjMxXSAg
-IGdmbjogMDAwMDU4MGEgIG1mbjogMDAwMDU4MGENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
-MzM6MzFdICAgZ2ZuOiAwMDAwNTgwYiAgbWZuOiAwMDAwNTgwYg0KDQooWEVOKSBbMjAxMi0w
-OC0zMSAyMTozMzozMV0gICBnZm46IDAwMDA1ODBjICBtZm46IDAwMDA1ODBjDQoNCihYRU4p
-IFsyMDEyLTA4LTMxIDIxOjMzOjMxXSAgIGdmbjogMDAwMDU4MGQgIG1mbjogMDAwMDU4MGQN
-Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzFdICAgZ2ZuOiAwMDAwNTgwZSAgbWZuOiAw
-MDAwNTgwZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozMV0gICBnZm46IDAwMDA1ODBm
-ICBtZm46IDAwMDA1ODBmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjMxXSAgIGdmbjog
-MDAwMDU4MTAgIG1mbjogMDAwMDU4MTANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzJd
-ICAgZ2ZuOiAwMDAwNTgxMSAgbWZuOiAwMDAwNTgxMQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
-MTozMzozMl0gICBnZm46IDAwMDA1ODEyICBtZm46IDAwMDA1ODEyDQoNCihYRU4pIFsyMDEy
-LTA4LTMxIDIxOjMzOjMyXSAgIGdmbjogMDAwMDU4MTMgIG1mbjogMDAwMDU4MTMNCg0KKFhF
-TikgWzIwMTItMDgtMzEgMjE6MzM6MzJdICAgZ2ZuOiAwMDAwNTgxNCAgbWZuOiAwMDAwNTgx
-NA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozMl0gICBnZm46IDAwMDA1ODE1ICBtZm46
-IDAwMDA1ODE1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjMyXSAgIGdmbjogMDAwMDU4
-MTYgIG1mbjogMDAwMDU4MTYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzJdICAgZ2Zu
-OiAwMDAwNTgxNyAgbWZuOiAwMDAwNTgxNw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoz
-Ml0gICBnZm46IDAwMDA1ODE4ICBtZm46IDAwMDA1ODE4DQoNCihYRU4pIFsyMDEyLTA4LTMx
-IDIxOjMzOjMyXSAgIGdmbjogMDAwMDU4MTkgIG1mbjogMDAwMDU4MTkNCg0KKFhFTikgWzIw
-MTItMDgtMzEgMjE6MzM6MzJdICAgZ2ZuOiAwMDAwNTgxYSAgbWZuOiAwMDAwNTgxYQ0KDQoo
-WEVOKSBbMjAxMi0wOC0zMSAyMTozMzozMl0gICBnZm46IDAwMDA1ODFiICBtZm46IDAwMDA1
-ODFiDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjMyXSAgIGdmbjogMDAwMDU4MWMgIG1m
-bjogMDAwMDU4MWMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzJdICAgZ2ZuOiAwMDAw
-NTgxZCAgbWZuOiAwMDAwNTgxZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozMl0gICBn
-Zm46IDAwMDA1ODFlICBtZm46IDAwMDA1ODFlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMz
-OjMyXSAgIGdmbjogMDAwMDU4MWYgIG1mbjogMDAwMDU4MWYNCg0KKFhFTikgWzIwMTItMDgt
-MzEgMjE6MzM6MzJdICAgZ2ZuOiAwMDAwNTgyMCAgbWZuOiAwMDAwNTgyMA0KDQooWEVOKSBb
-MjAxMi0wOC0zMSAyMTozMzozMl0gICBnZm46IDAwMDA1ODIxICBtZm46IDAwMDA1ODIxDQoN
-CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjMyXSAgIGdmbjogMDAwMDU4MjIgIG1mbjogMDAw
-MDU4MjINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzJdICAgZ2ZuOiAwMDAwNTgyMyAg
-bWZuOiAwMDAwNTgyMw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozMl0gICBnZm46IDAw
-MDA1ODI0ICBtZm46IDAwMDA1ODI0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjMyXSAg
-IGdmbjogMDAwMDU4MjUgIG1mbjogMDAwMDU4MjUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
-MzM6MzJdICAgZ2ZuOiAwMDAwNTgyNiAgbWZuOiAwMDAwNTgyNg0KDQooWEVOKSBbMjAxMi0w
-OC0zMSAyMTozMzozMl0gICBnZm46IDAwMDA1ODI3ICBtZm46IDAwMDA1ODI3DQoNCihYRU4p
-IFsyMDEyLTA4LTMxIDIxOjMzOjMyXSAgIGdmbjogMDAwMDU4MjggIG1mbjogMDAwMDU4MjgN
-Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzJdICAgZ2ZuOiAwMDAwNTgyOSAgbWZuOiAw
-MDAwNTgyOQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozMl0gICBnZm46IDAwMDA1ODJh
-ICBtZm46IDAwMDA1ODJhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjMyXSAgIGdmbjog
-MDAwMDU4MmIgIG1mbjogMDAwMDU4MmINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzJd
-ICAgZ2ZuOiAwMDAwNTgyYyAgbWZuOiAwMDAwNTgyYw0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
-MTozMzozMl0gICBnZm46IDAwMDA1ODJkICBtZm46IDAwMDA1ODJkDQoNCihYRU4pIFsyMDEy
-LTA4LTMxIDIxOjMzOjMyXSAgIGdmbjogMDAwMDU4MmUgIG1mbjogMDAwMDU4MmUNCg0KKFhF
-TikgWzIwMTItMDgtMzEgMjE6MzM6MzJdICAgZ2ZuOiAwMDAwNTgyZiAgbWZuOiAwMDAwNTgy
-Zg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozMl0gICBnZm46IDAwMDA1ODMwICBtZm46
-IDAwMDA1ODMwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjMyXSAgIGdmbjogMDAwMDU4
-MzEgIG1mbjogMDAwMDU4MzENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzJdICAgZ2Zu
-OiAwMDAwNTgzMiAgbWZuOiAwMDAwNTgzMg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoz
-Ml0gICBnZm46IDAwMDA1ODMzICBtZm46IDAwMDA1ODMzDQoNCihYRU4pIFsyMDEyLTA4LTMx
-IDIxOjMzOjMyXSAgIGdmbjogMDAwMDU4MzQgIG1mbjogMDAwMDU4MzQNCg0KKFhFTikgWzIw
-MTItMDgtMzEgMjE6MzM6MzJdICAgZ2ZuOiAwMDAwNTgzNSAgbWZuOiAwMDAwNTgzNQ0KDQoo
-WEVOKSBbMjAxMi0wOC0zMSAyMTozMzozMl0gICBnZm46IDAwMDA1ODM2ICBtZm46IDAwMDA1
-ODM2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjMyXSAgIGdmbjogMDAwMDU4MzcgIG1m
-bjogMDAwMDU4MzcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzJdICAgZ2ZuOiAwMDAw
-NTgzOCAgbWZuOiAwMDAwNTgzOA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozMl0gICBn
-Zm46IDAwMDA1ODM5ICBtZm46IDAwMDA1ODM5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMz
-OjMyXSAgIGdmbjogMDAwMDU4M2EgIG1mbjogMDAwMDU4M2ENCg0KKFhFTikgWzIwMTItMDgt
-MzEgMjE6MzM6MzJdICAgZ2ZuOiAwMDAwNTgzYiAgbWZuOiAwMDAwNTgzYg0KDQooWEVOKSBb
-MjAxMi0wOC0zMSAyMTozMzozMl0gICBnZm46IDAwMDA1ODNjICBtZm46IDAwMDA1ODNjDQoN
-CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjMyXSAgIGdmbjogMDAwMDU4M2QgIG1mbjogMDAw
-MDU4M2QNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzJdICAgZ2ZuOiAwMDAwNTgzZSAg
-bWZuOiAwMDAwNTgzZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozMl0gICBnZm46IDAw
-MDA1ODNmICBtZm46IDAwMDA1ODNmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjMyXSAg
-IGdmbjogMDAwMDU4NDAgIG1mbjogMDAwMDU4NDANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
-MzM6MzJdICAgZ2ZuOiAwMDAwNTg0MSAgbWZuOiAwMDAwNTg0MQ0KDQooWEVOKSBbMjAxMi0w
-OC0zMSAyMTozMzozMl0gICBnZm46IDAwMDA1ODQyICBtZm46IDAwMDA1ODQyDQoNCihYRU4p
-IFsyMDEyLTA4LTMxIDIxOjMzOjMyXSAgIGdmbjogMDAwMDU4NDMgIG1mbjogMDAwMDU4NDMN
-Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzJdICAgZ2ZuOiAwMDAwNTg0NCAgbWZuOiAw
-MDAwNTg0NA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozMl0gICBnZm46IDAwMDA1ODQ1
-ICBtZm46IDAwMDA1ODQ1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjMyXSAgIGdmbjog
-MDAwMDU4NDYgIG1mbjogMDAwMDU4NDYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzJd
-ICAgZ2ZuOiAwMDAwNTg0NyAgbWZuOiAwMDAwNTg0Nw0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
-MTozMzozMl0gICBnZm46IDAwMDA1ODQ4ICBtZm46IDAwMDA1ODQ4DQoNCihYRU4pIFsyMDEy
-LTA4LTMxIDIxOjMzOjMyXSAgIGdmbjogMDAwMDU4NDkgIG1mbjogMDAwMDU4NDkNCg0KKFhF
-TikgWzIwMTItMDgtMzEgMjE6MzM6MzJdICAgZ2ZuOiAwMDAwNTg0YSAgbWZuOiAwMDAwNTg0
-YQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozMl0gICBnZm46IDAwMDA1ODRiICBtZm46
-IDAwMDA1ODRiDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjMyXSAgIGdmbjogMDAwMDU4
-NGMgIG1mbjogMDAwMDU4NGMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzJdICAgZ2Zu
-OiAwMDAwNTg0ZCAgbWZuOiAwMDAwNTg0ZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoz
-Ml0gICBnZm46IDAwMDA1ODRlICBtZm46IDAwMDA1ODRlDQoNCihYRU4pIFsyMDEyLTA4LTMx
-IDIxOjMzOjMyXSAgIGdmbjogMDAwMDU4NGYgIG1mbjogMDAwMDU4NGYNCg0KKFhFTikgWzIw
-MTItMDgtMzEgMjE6MzM6MzJdICAgZ2ZuOiAwMDAwNTg1MCAgbWZuOiAwMDAwNTg1MA0KDQoo
-WEVOKSBbMjAxMi0wOC0zMSAyMTozMzozM10gICBnZm46IDAwMDA1ODUxICBtZm46IDAwMDA1
-ODUxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjMzXSAgIGdmbjogMDAwMDU4NTIgIG1m
-bjogMDAwMDU4NTINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzNdICAgZ2ZuOiAwMDAw
-NTg1MyAgbWZuOiAwMDAwNTg1Mw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozM10gICBn
-Zm46IDAwMDA1ODU0ICBtZm46IDAwMDA1ODU0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMz
-OjMzXSAgIGdmbjogMDAwMDU4NTUgIG1mbjogMDAwMDU4NTUNCg0KKFhFTikgWzIwMTItMDgt
-MzEgMjE6MzM6MzNdICAgZ2ZuOiAwMDAwNTg1NiAgbWZuOiAwMDAwNTg1Ng0KDQooWEVOKSBb
-MjAxMi0wOC0zMSAyMTozMzozM10gICBnZm46IDAwMDA1ODU3ICBtZm46IDAwMDA1ODU3DQoN
-CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjMzXSAgIGdmbjogMDAwMDU4NTggIG1mbjogMDAw
-MDU4NTgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzNdICAgZ2ZuOiAwMDAwNTg1OSAg
-bWZuOiAwMDAwNTg1OQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozM10gICBnZm46IDAw
-MDA1ODVhICBtZm46IDAwMDA1ODVhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjMzXSAg
-IGdmbjogMDAwMDU4NWIgIG1mbjogMDAwMDU4NWINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
-MzM6MzNdICAgZ2ZuOiAwMDAwNTg1YyAgbWZuOiAwMDAwNTg1Yw0KDQooWEVOKSBbMjAxMi0w
-OC0zMSAyMTozMzozM10gICBnZm46IDAwMDA1ODVkICBtZm46IDAwMDA1ODVkDQoNCihYRU4p
-IFsyMDEyLTA4LTMxIDIxOjMzOjMzXSAgIGdmbjogMDAwMDU4NWUgIG1mbjogMDAwMDU4NWUN
-Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzNdICAgZ2ZuOiAwMDAwNTg1ZiAgbWZuOiAw
-MDAwNTg1Zg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozM10gICBnZm46IDAwMDA1ODYw
-ICBtZm46IDAwMDA1ODYwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjMzXSAgIGdmbjog
-MDAwMDU4NjEgIG1mbjogMDAwMDU4NjENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzNd
-ICAgZ2ZuOiAwMDAwNTg2MiAgbWZuOiAwMDAwNTg2Mg0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
-MTozMzozM10gICBnZm46IDAwMDA1ODYzICBtZm46IDAwMDA1ODYzDQoNCihYRU4pIFsyMDEy
-LTA4LTMxIDIxOjMzOjMzXSAgIGdmbjogMDAwMDU4NjQgIG1mbjogMDAwMDU4NjQNCg0KKFhF
-TikgWzIwMTItMDgtMzEgMjE6MzM6MzNdICAgZ2ZuOiAwMDAwNTg2NSAgbWZuOiAwMDAwNTg2
-NQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozM10gICBnZm46IDAwMDA1ODY2ICBtZm46
-IDAwMDA1ODY2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjMzXSAgIGdmbjogMDAwMDU4
-NjcgIG1mbjogMDAwMDU4NjcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzNdICAgZ2Zu
-OiAwMDAwNTg2OCAgbWZuOiAwMDAwNTg2OA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoz
-M10gICBnZm46IDAwMDA1ODY5ICBtZm46IDAwMDA1ODY5DQoNCihYRU4pIFsyMDEyLTA4LTMx
-IDIxOjMzOjMzXSAgIGdmbjogMDAwMDU4NmEgIG1mbjogMDAwMDU4NmENCg0KKFhFTikgWzIw
-MTItMDgtMzEgMjE6MzM6MzNdICAgZ2ZuOiAwMDAwNTg2YiAgbWZuOiAwMDAwNTg2Yg0KDQoo
-WEVOKSBbMjAxMi0wOC0zMSAyMTozMzozM10gICBnZm46IDAwMDA1ODZjICBtZm46IDAwMDA1
-ODZjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjMzXSAgIGdmbjogMDAwMDU4NmQgIG1m
-bjogMDAwMDU4NmQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzNdICAgZ2ZuOiAwMDAw
-NTg2ZSAgbWZuOiAwMDAwNTg2ZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozM10gICBn
-Zm46IDAwMDA1ODZmICBtZm46IDAwMDA1ODZmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMz
-OjMzXSAgIGdmbjogMDAwMDU4NzAgIG1mbjogMDAwMDU4NzANCg0KKFhFTikgWzIwMTItMDgt
-MzEgMjE6MzM6MzNdICAgZ2ZuOiAwMDAwNTg3MSAgbWZuOiAwMDAwNTg3MQ0KDQooWEVOKSBb
-MjAxMi0wOC0zMSAyMTozMzozM10gICBnZm46IDAwMDA1ODcyICBtZm46IDAwMDA1ODcyDQoN
-CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjMzXSAgIGdmbjogMDAwMDU4NzMgIG1mbjogMDAw
-MDU4NzMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzNdICAgZ2ZuOiAwMDAwNTg3NCAg
-bWZuOiAwMDAwNTg3NA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozM10gICBnZm46IDAw
-MDA1ODc1ICBtZm46IDAwMDA1ODc1DQoNClsgIDQ3OS41NTkzNDddIGEoWEVOKSBbMjAxMi0w
-OC0zMSAyMTozMzozM10gICBnZm46IDAwMDA1ODc2ICBtZm46IDAwMDA1ODc2DQoNCnRhMy4w
-MDogZXhjZXB0aW8oWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozM10gICBnZm46IDAwMDA1ODc3
-ICBtZm46IDAwMDA1ODc3DQoNCm4gRW1hc2sgMHgwIFNBY3QgMHgwIFNFcnIgMHgwIGFjKFhF
-TikgWzIwMTItMDgtMzEgMjE6MzM6MzNdICAgZ2ZuOiAwMDAwNTg3OCAgbWZuOiAwMDAwNTg3
-OA0KDQp0aW9uIDB4NiBmcm96ZW4NCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjMzXSAgIGdm
-bjogMDAwMDU4NzkgIG1mbjogMDAwMDU4NzkNCg0KDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMzOjMzXSAgIGdmbjogMDAwMDU4N2EgIG1mbjogMDAwMDU4N2ENCg0KWyAgNDc5LjY2Mzcz
-OF0gYShYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjMzXSAgIGdmbjogMDAwMDU4N2IgIG1mbjog
-MDAwMDU4N2INCg0KdGEzLjAwOiBmYWlsZWQgYyhYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjMz
-XSAgIGdmbjogMDAwMDU4N2MgIG1mbjogMDAwMDU4N2MNCg0Kb21tYW5kOiBDSEVDSyBQTyhY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMzOjMzXSAgIGdmbjogMDAwMDU4N2QgIG1mbjogMDAwMDU4
-N2QNCg0KV0VSIE1PREUNCg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozM10gICBnZm46
-IDAwMDA1ODdlICBtZm46IDAwMDA1ODdlDQoNClsgIDQ3OS43Mzc1NjNdIGEoWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMzozM10gICBnZm46IDAwMDA1ODdmICBtZm46IDAwMDA1ODdmDQoNCnRh
-My4wMDogY21kIGU1LzAoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozM10gICBnZm46IDAwMDA1
-ODgwICBtZm46IDAwMDA1ODgwDQoNCjA6MDA6MDA6MDA6MDAvMDAoWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMzozM10gICBnZm46IDAwMDA1ODgxICBtZm46IDAwMDA1ODgxDQoNCjowMDowMDow
-MDowMC80MCB0YWcgMA0KDQoNClsgIDQ3OS43MyhYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjMz
-XSAgIGdmbjogMDAwMDU4ODIgIG1mbjogMDAwMDU4ODINCg0KNzU2M10gICAgICAgICAgcihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMzOjMzXSAgIGdmbjogMDAwMDU4ODMgIG1mbjogMDAwMDU4
-ODMNCg0KZXMgNDAvMDA6ZmY6MDA6MDA6MDAvMDA6MDA6MDA6MDAoWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMzozM10gICBnZm46IDAwMDA1ODg0ICBtZm46IDAwMDA1ODg0DQoNCjowMC80MCBF
-bWFzayAweDQoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozM10gICBnZm46IDAwMDA1ODg1ICBt
-Zm46IDAwMDA1ODg1DQoNCiAodGltZW91dCkNCg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-MzozM10gICBnZm46IDAwMDA1ODg2ICBtZm46IDAwMDA1ODg2DQoNClsgIDQ3OS45MDUzMzZd
-IGEoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozM10gICBnZm46IDAwMDA1ODg3ICBtZm46IDAw
-MDA1ODg3DQoNCnRhMy4wMDogc3RhdHVzOiAoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozM10g
-ICBnZm46IDAwMDA1ODg4ICBtZm46IDAwMDA1ODg4DQoNCnsgRFJEWSB9DQoNCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzM6MzNdICAgZ2ZuOiAwMDAwNTg4OSAgbWZuOiAwMDAwNTg4OQ0K
-DQpbICA0NzkuOTYyMTUzXSBhKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzNdICAgZ2ZuOiAw
-MDAwNTg4YSAgbWZuOiAwMDAwNTg4YQ0KDQp0YTM6IGhhcmQgcmVzZXR0KFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzM6MzRdICAgZ2ZuOiAwMDAwNTg4YiAgbWZuOiAwMDAwNTg4Yg0KDQppbmcg
-bGluaw0KDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM0XSAgIGdmbjogMDAwMDU4OGMg
-IG1mbjogMDAwMDU4OGMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzRdICAgZ2ZuOiAw
-MDAwNTg4ZCAgbWZuOiAwMDAwNTg4ZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozNF0g
-ICBnZm46IDAwMDA1ODhlICBtZm46IDAwMDA1ODhlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMzOjM0XSAgIGdmbjogMDAwMDU4OGYgIG1mbjogMDAwMDU4OGYNCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzM6MzRdICAgZ2ZuOiAwMDAwNTg5MCAgbWZuOiAwMDAwNTg5MA0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMzozNF0gICBnZm46IDAwMDA1ODkxICBtZm46IDAwMDA1ODkx
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM0XSAgIGdmbjogMDAwMDU4OTIgIG1mbjog
-MDAwMDU4OTINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzRdICAgZ2ZuOiAwMDAwNTg5
-MyAgbWZuOiAwMDAwNTg5Mw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozNF0gICBnZm46
-IDAwMDA1ODk0ICBtZm46IDAwMDA1ODk0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM0
-XSAgIGdmbjogMDAwMDU4OTUgIG1mbjogMDAwMDU4OTUNCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzM6MzRdICAgZ2ZuOiAwMDAwNTg5NiAgbWZuOiAwMDAwNTg5Ng0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMzozNF0gICBnZm46IDAwMDA1ODk3ICBtZm46IDAwMDA1ODk3DQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM0XSAgIGdmbjogMDAwMDU4OTggIG1mbjogMDAwMDU4
-OTgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzRdICAgZ2ZuOiAwMDAwNTg5OSAgbWZu
-OiAwMDAwNTg5OQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozNF0gICBnZm46IDAwMDA1
-ODlhICBtZm46IDAwMDA1ODlhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM0XSAgIGdm
-bjogMDAwMDU4OWIgIG1mbjogMDAwMDU4OWINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6
-MzRdICAgZ2ZuOiAwMDAwNTg5YyAgbWZuOiAwMDAwNTg5Yw0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMzozNF0gICBnZm46IDAwMDA1ODlkICBtZm46IDAwMDA1ODlkDQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMzOjM0XSAgIGdmbjogMDAwMDU4OWUgIG1mbjogMDAwMDU4OWUNCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzRdICAgZ2ZuOiAwMDAwNTg5ZiAgbWZuOiAwMDAw
-NTg5Zg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozNF0gICBnZm46IDAwMDA1OGEwICBt
-Zm46IDAwMDA1OGEwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM0XSAgIGdmbjogMDAw
-MDU4YTEgIG1mbjogMDAwMDU4YTENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzRdICAg
-Z2ZuOiAwMDAwNThhMiAgbWZuOiAwMDAwNThhMg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-MzozNF0gICBnZm46IDAwMDA1OGEzICBtZm46IDAwMDA1OGEzDQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMzOjM0XSAgIGdmbjogMDAwMDU4YTQgIG1mbjogMDAwMDU4YTQNCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzM6MzRdICAgZ2ZuOiAwMDAwNThhNSAgbWZuOiAwMDAwNThhNQ0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozNF0gICBnZm46IDAwMDA1OGE2ICBtZm46IDAw
-MDA1OGE2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM0XSAgIGdmbjogMDAwMDU4YTcg
-IG1mbjogMDAwMDU4YTcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzRdICAgZ2ZuOiAw
-MDAwNThhOCAgbWZuOiAwMDAwNThhOA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozNF0g
-ICBnZm46IDAwMDA1OGE5ICBtZm46IDAwMDA1OGE5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMzOjM0XSAgIGdmbjogMDAwMDU4YWEgIG1mbjogMDAwMDU4YWENCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzM6MzRdICAgZ2ZuOiAwMDAwNThhYiAgbWZuOiAwMDAwNThhYg0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMzozNF0gICBnZm46IDAwMDA1OGFjICBtZm46IDAwMDA1OGFj
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM0XSAgIGdmbjogMDAwMDU4YWQgIG1mbjog
-MDAwMDU4YWQNCg0KWyAgNDgwLjUzNjIzOF0gYShYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM0
-XSAgIGdmbjogMDAwMDU4YWUgIG1mbjogMDAwMDU4YWUNCg0KdGEzOiBTQVRBIGxpbmsgdShY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM0XSAgIGdmbjogMDAwMDU4YWYgIG1mbjogMDAwMDU4
-YWYNCg0KcCA2LjAgR2JwcyAoU1N0YXR1cyAxMzMgU0NvbnRyb2woWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMzozNF0gICBnZm46IDAwMDA1OGIwICBtZm46IDAwMDA1OGIwDQoNCiAzMDApDQoN
-Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzRdICAgZ2ZuOiAwMDAwNThiMSAgbWZuOiAw
-MDAwNThiMQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozNF0gICBnZm46IDAwMDA1OGIy
-ICBtZm46IDAwMDA1OGIyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM0XSAgIGdmbjog
-MDAwMDU4YjMgIG1mbjogMDAwMDU4YjMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzRd
-ICAgZ2ZuOiAwMDAwNThiNCAgbWZuOiAwMDAwNThiNA0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
-MTozMzozNF0gICBnZm46IDAwMDA1OGI1ICBtZm46IDAwMDA1OGI1DQoNCihYRU4pIFsyMDEy
-LTA4LTMxIDIxOjMzOjM0XSAgIGdmbjogMDAwMDU4YjYgIG1mbjogMDAwMDU4YjYNCg0KKFhF
-TikgWzIwMTItMDgtMzEgMjE6MzM6MzRdICAgZ2ZuOiAwMDAwNThiNyAgbWZuOiAwMDAwNThi
-Nw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozNF0gICBnZm46IDAwMDA1OGI4ICBtZm46
-IDAwMDA1OGI4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM0XSAgIGdmbjogMDAwMDU4
-YjkgIG1mbjogMDAwMDU4YjkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzRdICAgZ2Zu
-OiAwMDAwNThiYSAgbWZuOiAwMDAwNThiYQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoz
-NF0gICBnZm46IDAwMDA1OGJiICBtZm46IDAwMDA1OGJiDQoNCihYRU4pIFsyMDEyLTA4LTMx
-IDIxOjMzOjM0XSAgIGdmbjogMDAwMDU4YmMgIG1mbjogMDAwMDU4YmMNCg0KKFhFTikgWzIw
-MTItMDgtMzEgMjE6MzM6MzRdICAgZ2ZuOiAwMDAwNThiZCAgbWZuOiAwMDAwNThiZA0KDQoo
-WEVOKSBbMjAxMi0wOC0zMSAyMTozMzozNF0gICBnZm46IDAwMDA1OGJlICBtZm46IDAwMDA1
-OGJlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM0XSAgIGdmbjogMDAwMDU4YmYgIG1m
-bjogMDAwMDU4YmYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzRdICAgZ2ZuOiAwMDAw
-NThjMCAgbWZuOiAwMDAwNThjMA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozNF0gICBn
-Zm46IDAwMDA1OGMxICBtZm46IDAwMDA1OGMxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMz
-OjM0XSAgIGdmbjogMDAwMDU4YzIgIG1mbjogMDAwMDU4YzINCg0KKFhFTikgWzIwMTItMDgt
-MzEgMjE6MzM6MzRdICAgZ2ZuOiAwMDAwNThjMyAgbWZuOiAwMDAwNThjMw0KDQooWEVOKSBb
-MjAxMi0wOC0zMSAyMTozMzozNF0gICBnZm46IDAwMDA1OGM0ICBtZm46IDAwMDA1OGM0DQoN
-CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM0XSAgIGdmbjogMDAwMDU4YzUgIG1mbjogMDAw
-MDU4YzUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzRdICAgZ2ZuOiAwMDAwNThjNiAg
-bWZuOiAwMDAwNThjNg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozNF0gICBnZm46IDAw
-MDA1OGM3ICBtZm46IDAwMDA1OGM3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM0XSAg
-IGdmbjogMDAwMDU4YzggIG1mbjogMDAwMDU4YzgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
-MzM6MzRdICAgZ2ZuOiAwMDAwNThjOSAgbWZuOiAwMDAwNThjOQ0KDQooWEVOKSBbMjAxMi0w
-OC0zMSAyMTozMzozNV0gICBnZm46IDAwMDA1OGNhICBtZm46IDAwMDA1OGNhDQoNCihYRU4p
-IFsyMDEyLTA4LTMxIDIxOjMzOjM1XSAgIGdmbjogMDAwMDU4Y2IgIG1mbjogMDAwMDU4Y2IN
-Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzVdICAgZ2ZuOiAwMDAwNThjYyAgbWZuOiAw
-MDAwNThjYw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozNV0gICBnZm46IDAwMDA1OGNk
-ICBtZm46IDAwMDA1OGNkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM1XSAgIGdmbjog
-MDAwMDU4Y2UgIG1mbjogMDAwMDU4Y2UNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzVd
-ICAgZ2ZuOiAwMDAwNThjZiAgbWZuOiAwMDAwNThjZg0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
-MTozMzozNV0gICBnZm46IDAwMDA1OGQwICBtZm46IDAwMDA1OGQwDQoNCihYRU4pIFsyMDEy
-LTA4LTMxIDIxOjMzOjM1XSAgIGdmbjogMDAwMDU4ZDEgIG1mbjogMDAwMDU4ZDENCg0KKFhF
-TikgWzIwMTItMDgtMzEgMjE6MzM6MzVdICAgZ2ZuOiAwMDAwNThkMiAgbWZuOiAwMDAwNThk
-Mg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozNV0gICBnZm46IDAwMDA1OGQzICBtZm46
-IDAwMDA1OGQzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM1XSAgIGdmbjogMDAwMDU4
-ZDQgIG1mbjogMDAwMDU4ZDQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzVdICAgZ2Zu
-OiAwMDAwNThkNSAgbWZuOiAwMDAwNThkNQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoz
-NV0gICBnZm46IDAwMDA1OGQ2ICBtZm46IDAwMDA1OGQ2DQoNCihYRU4pIFsyMDEyLTA4LTMx
-IDIxOjMzOjM1XSAgIGdmbjogMDAwMDU4ZDcgIG1mbjogMDAwMDU4ZDcNCg0KKFhFTikgWzIw
-MTItMDgtMzEgMjE6MzM6MzVdICAgZ2ZuOiAwMDAwNThkOCAgbWZuOiAwMDAwNThkOA0KDQoo
-WEVOKSBbMjAxMi0wOC0zMSAyMTozMzozNV0gICBnZm46IDAwMDA1OGQ5ICBtZm46IDAwMDA1
-OGQ5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM1XSAgIGdmbjogMDAwMDU4ZGEgIG1m
-bjogMDAwMDU4ZGENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzVdICAgZ2ZuOiAwMDAw
-NThkYiAgbWZuOiAwMDAwNThkYg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozNV0gICBn
-Zm46IDAwMDA1OGRjICBtZm46IDAwMDA1OGRjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMz
-OjM1XSAgIGdmbjogMDAwMDU4ZGQgIG1mbjogMDAwMDU4ZGQNCg0KKFhFTikgWzIwMTItMDgt
-MzEgMjE6MzM6MzVdICAgZ2ZuOiAwMDAwNThkZSAgbWZuOiAwMDAwNThkZQ0KDQooWEVOKSBb
-MjAxMi0wOC0zMSAyMTozMzozNV0gICBnZm46IDAwMDA1OGRmICBtZm46IDAwMDA1OGRmDQoN
-CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM1XSAgIGdmbjogMDAwMDU4ZTAgIG1mbjogMDAw
-MDU4ZTANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzVdICAgZ2ZuOiAwMDAwNThlMSAg
-bWZuOiAwMDAwNThlMQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozNV0gICBnZm46IDAw
-MDA1OGUyICBtZm46IDAwMDA1OGUyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM1XSAg
-IGdmbjogMDAwMDU4ZTMgIG1mbjogMDAwMDU4ZTMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
-MzM6MzVdICAgZ2ZuOiAwMDAwNThlNCAgbWZuOiAwMDAwNThlNA0KDQooWEVOKSBbMjAxMi0w
-OC0zMSAyMTozMzozNV0gICBnZm46IDAwMDA1OGU1ICBtZm46IDAwMDA1OGU1DQoNCihYRU4p
-IFsyMDEyLTA4LTMxIDIxOjMzOjM1XSAgIGdmbjogMDAwMDU4ZTYgIG1mbjogMDAwMDU4ZTYN
-Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzVdICAgZ2ZuOiAwMDAwNThlNyAgbWZuOiAw
-MDAwNThlNw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozNV0gICBnZm46IDAwMDA1OGU4
-ICBtZm46IDAwMDA1OGU4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM1XSAgIGdmbjog
-MDAwMDU4ZTkgIG1mbjogMDAwMDU4ZTkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzVd
-ICAgZ2ZuOiAwMDAwNThlYSAgbWZuOiAwMDAwNThlYQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
-MTozMzozNV0gICBnZm46IDAwMDA1OGViICBtZm46IDAwMDA1OGViDQoNCihYRU4pIFsyMDEy
-LTA4LTMxIDIxOjMzOjM1XSAgIGdmbjogMDAwMDU4ZWMgIG1mbjogMDAwMDU4ZWMNCg0KKFhF
-TikgWzIwMTItMDgtMzEgMjE6MzM6MzVdICAgZ2ZuOiAwMDAwNThlZCAgbWZuOiAwMDAwNThl
-ZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozNV0gICBnZm46IDAwMDA1OGVlICBtZm46
-IDAwMDA1OGVlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM1XSAgIGdmbjogMDAwMDU4
-ZWYgIG1mbjogMDAwMDU4ZWYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzVdICAgZ2Zu
-OiAwMDAwNThmMCAgbWZuOiAwMDAwNThmMA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoz
-NV0gICBnZm46IDAwMDA1OGYxICBtZm46IDAwMDA1OGYxDQoNCihYRU4pIFsyMDEyLTA4LTMx
-IDIxOjMzOjM1XSAgIGdmbjogMDAwMDU4ZjIgIG1mbjogMDAwMDU4ZjINCg0KKFhFTikgWzIw
-MTItMDgtMzEgMjE6MzM6MzVdICAgZ2ZuOiAwMDAwNThmMyAgbWZuOiAwMDAwNThmMw0KDQoo
-WEVOKSBbMjAxMi0wOC0zMSAyMTozMzozNV0gICBnZm46IDAwMDA1OGY0ICBtZm46IDAwMDA1
-OGY0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM1XSAgIGdmbjogMDAwMDU4ZjUgIG1m
-bjogMDAwMDU4ZjUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzVdICAgZ2ZuOiAwMDAw
-NThmNiAgbWZuOiAwMDAwNThmNg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozNV0gICBn
-Zm46IDAwMDA1OGY3ICBtZm46IDAwMDA1OGY3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMz
-OjM1XSAgIGdmbjogMDAwMDU4ZjggIG1mbjogMDAwMDU4ZjgNCg0KKFhFTikgWzIwMTItMDgt
-MzEgMjE6MzM6MzVdICAgZ2ZuOiAwMDAwNThmOSAgbWZuOiAwMDAwNThmOQ0KDQooWEVOKSBb
-MjAxMi0wOC0zMSAyMTozMzozNV0gICBnZm46IDAwMDA1OGZhICBtZm46IDAwMDA1OGZhDQoN
-CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM1XSAgIGdmbjogMDAwMDU4ZmIgIG1mbjogMDAw
-MDU4ZmINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzVdICAgZ2ZuOiAwMDAwNThmYyAg
-bWZuOiAwMDAwNThmYw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozNV0gICBnZm46IDAw
-MDA1OGZkICBtZm46IDAwMDA1OGZkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM1XSAg
-IGdmbjogMDAwMDU4ZmUgIG1mbjogMDAwMDU4ZmUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
-MzM6MzVdICAgZ2ZuOiAwMDAwNThmZiAgbWZuOiAwMDAwNThmZg0KDQooWEVOKSBbMjAxMi0w
-OC0zMSAyMTozMzozNV0gICBnZm46IDAwMDA1OTAwICBtZm46IDAwMDA1OTAwDQoNCihYRU4p
-IFsyMDEyLTA4LTMxIDIxOjMzOjM1XSAgIGdmbjogMDAwMDU5MDEgIG1mbjogMDAwMDU5MDEN
-Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzVdICAgZ2ZuOiAwMDAwNTkwMiAgbWZuOiAw
-MDAwNTkwMg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozNV0gICBnZm46IDAwMDA1OTAz
-ICBtZm46IDAwMDA1OTAzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM1XSAgIGdmbjog
-MDAwMDU5MDQgIG1mbjogMDAwMDU5MDQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzVd
-ICAgZ2ZuOiAwMDAwNTkwNSAgbWZuOiAwMDAwNTkwNQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
-MTozMzozNV0gICBnZm46IDAwMDA1OTA2ICBtZm46IDAwMDA1OTA2DQoNCihYRU4pIFsyMDEy
-LTA4LTMxIDIxOjMzOjM1XSAgIGdmbjogMDAwMDU5MDcgIG1mbjogMDAwMDU5MDcNCg0KKFhF
-TikgWzIwMTItMDgtMzEgMjE6MzM6MzVdICAgZ2ZuOiAwMDAwNTkwOCAgbWZuOiAwMDAwNTkw
-OA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozNV0gICBnZm46IDAwMDA1OTA5ICBtZm46
-IDAwMDA1OTA5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM2XSAgIGdmbjogMDAwMDU5
-MGEgIG1mbjogMDAwMDU5MGENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzZdICAgZ2Zu
-OiAwMDAwNTkwYiAgbWZuOiAwMDAwNTkwYg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoz
-Nl0gICBnZm46IDAwMDA1OTBjICBtZm46IDAwMDA1OTBjDQoNCihYRU4pIFsyMDEyLTA4LTMx
-IDIxOjMzOjM2XSAgIGdmbjogMDAwMDU5MGQgIG1mbjogMDAwMDU5MGQNCg0KKFhFTikgWzIw
-MTItMDgtMzEgMjE6MzM6MzZdICAgZ2ZuOiAwMDAwNTkwZSAgbWZuOiAwMDAwNTkwZQ0KDQoo
-WEVOKSBbMjAxMi0wOC0zMSAyMTozMzozNl0gICBnZm46IDAwMDA1OTBmICBtZm46IDAwMDA1
-OTBmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM2XSAgIGdmbjogMDAwMDU5MTAgIG1m
-bjogMDAwMDU5MTANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzZdICAgZ2ZuOiAwMDAw
-NTkxMSAgbWZuOiAwMDAwNTkxMQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozNl0gICBn
-Zm46IDAwMDA1OTEyICBtZm46IDAwMDA1OTEyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMz
-OjM2XSAgIGdmbjogMDAwMDU5MTMgIG1mbjogMDAwMDU5MTMNCg0KKFhFTikgWzIwMTItMDgt
-MzEgMjE6MzM6MzZdICAgZ2ZuOiAwMDAwNTkxNCAgbWZuOiAwMDAwNTkxNA0KDQooWEVOKSBb
-MjAxMi0wOC0zMSAyMTozMzozNl0gICBnZm46IDAwMDA1OTE1ICBtZm46IDAwMDA1OTE1DQoN
-CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM2XSAgIGdmbjogMDAwMDU5MTYgIG1mbjogMDAw
-MDU5MTYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzZdICAgZ2ZuOiAwMDAwNTkxNyAg
-bWZuOiAwMDAwNTkxNw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozNl0gICBnZm46IDAw
-MDA1OTE4ICBtZm46IDAwMDA1OTE4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM2XSAg
-IGdmbjogMDAwMDU5MTkgIG1mbjogMDAwMDU5MTkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
-MzM6MzZdICAgZ2ZuOiAwMDAwNTkxYSAgbWZuOiAwMDAwNTkxYQ0KDQooWEVOKSBbMjAxMi0w
-OC0zMSAyMTozMzozNl0gICBnZm46IDAwMDA1OTFiICBtZm46IDAwMDA1OTFiDQoNCihYRU4p
-IFsyMDEyLTA4LTMxIDIxOjMzOjM2XSAgIGdmbjogMDAwMDU5MWMgIG1mbjogMDAwMDU5MWMN
-Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzZdICAgZ2ZuOiAwMDAwNTkxZCAgbWZuOiAw
-MDAwNTkxZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozNl0gICBnZm46IDAwMDA1OTFl
-ICBtZm46IDAwMDA1OTFlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM2XSAgIGdmbjog
-MDAwMDU5MWYgIG1mbjogMDAwMDU5MWYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzZd
-ICAgZ2ZuOiAwMDAwNTkyMCAgbWZuOiAwMDAwNTkyMA0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
-MTozMzozNl0gICBnZm46IDAwMDA1OTIxICBtZm46IDAwMDA1OTIxDQoNCihYRU4pIFsyMDEy
-LTA4LTMxIDIxOjMzOjM2XSAgIGdmbjogMDAwMDU5MjIgIG1mbjogMDAwMDU5MjINCg0KKFhF
-TikgWzIwMTItMDgtMzEgMjE6MzM6MzZdICAgZ2ZuOiAwMDAwNTkyMyAgbWZuOiAwMDAwNTky
-Mw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozNl0gICBnZm46IDAwMDA1OTI0ICBtZm46
-IDAwMDA1OTI0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM2XSAgIGdmbjogMDAwMDU5
-MjUgIG1mbjogMDAwMDU5MjUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzZdICAgZ2Zu
-OiAwMDAwNTkyNiAgbWZuOiAwMDAwNTkyNg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoz
-Nl0gICBnZm46IDAwMDA1OTI3ICBtZm46IDAwMDA1OTI3DQoNCihYRU4pIFsyMDEyLTA4LTMx
-IDIxOjMzOjM2XSAgIGdmbjogMDAwMDU5MjggIG1mbjogMDAwMDU5MjgNCg0KKFhFTikgWzIw
-MTItMDgtMzEgMjE6MzM6MzZdICAgZ2ZuOiAwMDAwNTkyOSAgbWZuOiAwMDAwNTkyOQ0KDQoo
-WEVOKSBbMjAxMi0wOC0zMSAyMTozMzozNl0gICBnZm46IDAwMDA1OTJhICBtZm46IDAwMDA1
-OTJhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM2XSAgIGdmbjogMDAwMDU5MmIgIG1m
-bjogMDAwMDU5MmINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzZdICAgZ2ZuOiAwMDAw
-NTkyYyAgbWZuOiAwMDAwNTkyYw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozNl0gICBn
-Zm46IDAwMDA1OTJkICBtZm46IDAwMDA1OTJkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMz
-OjM2XSAgIGdmbjogMDAwMDU5MmUgIG1mbjogMDAwMDU5MmUNCg0KKFhFTikgWzIwMTItMDgt
-MzEgMjE6MzM6MzZdICAgZ2ZuOiAwMDAwNTkyZiAgbWZuOiAwMDAwNTkyZg0KDQooWEVOKSBb
-MjAxMi0wOC0zMSAyMTozMzozNl0gICBnZm46IDAwMDA1OTMwICBtZm46IDAwMDA1OTMwDQoN
-CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM2XSAgIGdmbjogMDAwMDU5MzEgIG1mbjogMDAw
-MDU5MzENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzZdICAgZ2ZuOiAwMDAwNTkzMiAg
-bWZuOiAwMDAwNTkzMg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozNl0gICBnZm46IDAw
-MDA1OTMzICBtZm46IDAwMDA1OTMzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM2XSAg
-IGdmbjogMDAwMDU5MzQgIG1mbjogMDAwMDU5MzQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
-MzM6MzZdICAgZ2ZuOiAwMDAwNTkzNSAgbWZuOiAwMDAwNTkzNQ0KDQooWEVOKSBbMjAxMi0w
-OC0zMSAyMTozMzozNl0gICBnZm46IDAwMDA1OTM2ICBtZm46IDAwMDA1OTM2DQoNCihYRU4p
-IFsyMDEyLTA4LTMxIDIxOjMzOjM2XSAgIGdmbjogMDAwMDU5MzcgIG1mbjogMDAwMDU5MzcN
-Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzZdICAgZ2ZuOiAwMDAwNTkzOCAgbWZuOiAw
-MDAwNTkzOA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozNl0gICBnZm46IDAwMDA1OTM5
-ICBtZm46IDAwMDA1OTM5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM2XSAgIGdmbjog
-MDAwMDU5M2EgIG1mbjogMDAwMDU5M2ENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzZd
-ICAgZ2ZuOiAwMDAwNTkzYiAgbWZuOiAwMDAwNTkzYg0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
-MTozMzozNl0gICBnZm46IDAwMDA1OTNjICBtZm46IDAwMDA1OTNjDQoNCihYRU4pIFsyMDEy
-LTA4LTMxIDIxOjMzOjM2XSAgIGdmbjogMDAwMDU5M2QgIG1mbjogMDAwMDU5M2QNCg0KKFhF
-TikgWzIwMTItMDgtMzEgMjE6MzM6MzZdICAgZ2ZuOiAwMDAwNTkzZSAgbWZuOiAwMDAwNTkz
-ZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozNl0gICBnZm46IDAwMDA1OTNmICBtZm46
-IDAwMDA1OTNmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM2XSAgIGdmbjogMDAwMDU5
-NDAgIG1mbjogMDAwMDU5NDANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzZdICAgZ2Zu
-OiAwMDAwNTk0MSAgbWZuOiAwMDAwNTk0MQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoz
-Nl0gICBnZm46IDAwMDA1OTQyICBtZm46IDAwMDA1OTQyDQoNCihYRU4pIFsyMDEyLTA4LTMx
-IDIxOjMzOjM2XSAgIGdmbjogMDAwMDU5NDMgIG1mbjogMDAwMDU5NDMNCg0KKFhFTikgWzIw
-MTItMDgtMzEgMjE6MzM6MzZdICAgZ2ZuOiAwMDAwNTk0NCAgbWZuOiAwMDAwNTk0NA0KDQoo
-WEVOKSBbMjAxMi0wOC0zMSAyMTozMzozNl0gICBnZm46IDAwMDA1OTQ1ICBtZm46IDAwMDA1
-OTQ1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM2XSAgIGdmbjogMDAwMDU5NDYgIG1m
-bjogMDAwMDU5NDYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzZdICAgZ2ZuOiAwMDAw
-NTk0NyAgbWZuOiAwMDAwNTk0Nw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozNl0gICBn
-Zm46IDAwMDA1OTQ4ICBtZm46IDAwMDA1OTQ4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMz
-OjM2XSAgIGdmbjogMDAwMDU5NDkgIG1mbjogMDAwMDU5NDkNCg0KKFhFTikgWzIwMTItMDgt
-MzEgMjE6MzM6MzddICAgZ2ZuOiAwMDAwNTk0YSAgbWZuOiAwMDAwNTk0YQ0KDQooWEVOKSBb
-MjAxMi0wOC0zMSAyMTozMzozN10gICBnZm46IDAwMDA1OTRiICBtZm46IDAwMDA1OTRiDQoN
-CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM3XSAgIGdmbjogMDAwMDU5NGMgIG1mbjogMDAw
-MDU5NGMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzddICAgZ2ZuOiAwMDAwNTk0ZCAg
-bWZuOiAwMDAwNTk0ZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozN10gICBnZm46IDAw
-MDA1OTRlICBtZm46IDAwMDA1OTRlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM3XSAg
-IGdmbjogMDAwMDU5NGYgIG1mbjogMDAwMDU5NGYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
-MzM6MzddICAgZ2ZuOiAwMDAwNTk1MCAgbWZuOiAwMDAwNTk1MA0KDQooWEVOKSBbMjAxMi0w
-OC0zMSAyMTozMzozN10gICBnZm46IDAwMDA1OTUxICBtZm46IDAwMDA1OTUxDQoNCihYRU4p
-IFsyMDEyLTA4LTMxIDIxOjMzOjM3XSAgIGdmbjogMDAwMDU5NTIgIG1mbjogMDAwMDU5NTIN
-Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzddICAgZ2ZuOiAwMDAwNTk1MyAgbWZuOiAw
-MDAwNTk1Mw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozN10gICBnZm46IDAwMDA1OTU0
-ICBtZm46IDAwMDA1OTU0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM3XSAgIGdmbjog
-MDAwMDU5NTUgIG1mbjogMDAwMDU5NTUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6Mzdd
-ICAgZ2ZuOiAwMDAwNTk1NiAgbWZuOiAwMDAwNTk1Ng0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
-MTozMzozN10gICBnZm46IDAwMDA1OTU3ICBtZm46IDAwMDA1OTU3DQoNCihYRU4pIFsyMDEy
-LTA4LTMxIDIxOjMzOjM3XSAgIGdmbjogMDAwMDU5NTggIG1mbjogMDAwMDU5NTgNCg0KKFhF
-TikgWzIwMTItMDgtMzEgMjE6MzM6MzddICAgZ2ZuOiAwMDAwNTk1OSAgbWZuOiAwMDAwNTk1
-OQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozN10gICBnZm46IDAwMDA1OTVhICBtZm46
-IDAwMDA1OTVhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM3XSAgIGdmbjogMDAwMDU5
-NWIgIG1mbjogMDAwMDU5NWINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzddICAgZ2Zu
-OiAwMDAwNTk1YyAgbWZuOiAwMDAwNTk1Yw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoz
-N10gICBnZm46IDAwMDA1OTVkICBtZm46IDAwMDA1OTVkDQoNCihYRU4pIFsyMDEyLTA4LTMx
-IDIxOjMzOjM3XSAgIGdmbjogMDAwMDU5NWUgIG1mbjogMDAwMDU5NWUNCg0KKFhFTikgWzIw
-MTItMDgtMzEgMjE6MzM6MzddICAgZ2ZuOiAwMDAwNTk1ZiAgbWZuOiAwMDAwNTk1Zg0KDQoo
-WEVOKSBbMjAxMi0wOC0zMSAyMTozMzozN10gICBnZm46IDAwMDA1OTYwICBtZm46IDAwMDA1
-OTYwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM3XSAgIGdmbjogMDAwMDU5NjEgIG1m
-bjogMDAwMDU5NjENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzddICAgZ2ZuOiAwMDAw
-NTk2MiAgbWZuOiAwMDAwNTk2Mg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozN10gICBn
-Zm46IDAwMDA1OTYzICBtZm46IDAwMDA1OTYzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMz
-OjM3XSAgIGdmbjogMDAwMDU5NjQgIG1mbjogMDAwMDU5NjQNCg0KKFhFTikgWzIwMTItMDgt
-MzEgMjE6MzM6MzddICAgZ2ZuOiAwMDAwNTk2NSAgbWZuOiAwMDAwNTk2NQ0KDQooWEVOKSBb
-MjAxMi0wOC0zMSAyMTozMzozN10gICBnZm46IDAwMDA1OTY2ICBtZm46IDAwMDA1OTY2DQoN
-CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM3XSAgIGdmbjogMDAwMDU5NjcgIG1mbjogMDAw
-MDU5NjcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzddICAgZ2ZuOiAwMDAwNTk2OCAg
-bWZuOiAwMDAwNTk2OA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozN10gICBnZm46IDAw
-MDA1OTY5ICBtZm46IDAwMDA1OTY5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM3XSAg
-IGdmbjogMDAwMDU5NmEgIG1mbjogMDAwMDU5NmENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
-MzM6MzddICAgZ2ZuOiAwMDAwNTk2YiAgbWZuOiAwMDAwNTk2Yg0KDQooWEVOKSBbMjAxMi0w
-OC0zMSAyMTozMzozN10gICBnZm46IDAwMDA1OTZjICBtZm46IDAwMDA1OTZjDQoNCihYRU4p
-IFsyMDEyLTA4LTMxIDIxOjMzOjM3XSAgIGdmbjogMDAwMDU5NmQgIG1mbjogMDAwMDU5NmQN
-Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzddICAgZ2ZuOiAwMDAwNTk2ZSAgbWZuOiAw
-MDAwNTk2ZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozN10gICBnZm46IDAwMDA1OTZm
-ICBtZm46IDAwMDA1OTZmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM3XSAgIGdmbjog
-MDAwMDU5NzAgIG1mbjogMDAwMDU5NzANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6Mzdd
-ICAgZ2ZuOiAwMDAwNTk3MSAgbWZuOiAwMDAwNTk3MQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
-MTozMzozN10gICBnZm46IDAwMDA1OTcyICBtZm46IDAwMDA1OTcyDQoNCihYRU4pIFsyMDEy
-LTA4LTMxIDIxOjMzOjM3XSAgIGdmbjogMDAwMDU5NzMgIG1mbjogMDAwMDU5NzMNCg0KKFhF
-TikgWzIwMTItMDgtMzEgMjE6MzM6MzddICAgZ2ZuOiAwMDAwNTk3NCAgbWZuOiAwMDAwNTk3
-NA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozN10gICBnZm46IDAwMDA1OTc1ICBtZm46
-IDAwMDA1OTc1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM3XSAgIGdmbjogMDAwMDU5
-NzYgIG1mbjogMDAwMDU5NzYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzddICAgZ2Zu
-OiAwMDAwNTk3NyAgbWZuOiAwMDAwNTk3Nw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoz
-N10gICBnZm46IDAwMDA1OTc4ICBtZm46IDAwMDA1OTc4DQoNCihYRU4pIFsyMDEyLTA4LTMx
-IDIxOjMzOjM3XSAgIGdmbjogMDAwMDU5NzkgIG1mbjogMDAwMDU5NzkNCg0KKFhFTikgWzIw
-MTItMDgtMzEgMjE6MzM6MzddICAgZ2ZuOiAwMDAwNTk3YSAgbWZuOiAwMDAwNTk3YQ0KDQoo
-WEVOKSBbMjAxMi0wOC0zMSAyMTozMzozN10gICBnZm46IDAwMDA1OTdiICBtZm46IDAwMDA1
-OTdiDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM3XSAgIGdmbjogMDAwMDU5N2MgIG1m
-bjogMDAwMDU5N2MNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzddICAgZ2ZuOiAwMDAw
-NTk3ZCAgbWZuOiAwMDAwNTk3ZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozN10gICBn
-Zm46IDAwMDA1OTdlICBtZm46IDAwMDA1OTdlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMz
-OjM3XSAgIGdmbjogMDAwMDU5N2YgIG1mbjogMDAwMDU5N2YNCg0KKFhFTikgWzIwMTItMDgt
-MzEgMjE6MzM6MzddICAgZ2ZuOiAwMDAwNTk4MCAgbWZuOiAwMDAwNTk4MA0KDQooWEVOKSBb
-MjAxMi0wOC0zMSAyMTozMzozN10gICBnZm46IDAwMDA1OTgxICBtZm46IDAwMDA1OTgxDQoN
-CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM3XSAgIGdmbjogMDAwMDU5ODIgIG1mbjogMDAw
-MDU5ODINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzddICAgZ2ZuOiAwMDAwNTk4MyAg
-bWZuOiAwMDAwNTk4Mw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozN10gICBnZm46IDAw
-MDA1OTg0ICBtZm46IDAwMDA1OTg0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM3XSAg
-IGdmbjogMDAwMDU5ODUgIG1mbjogMDAwMDU5ODUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
-MzM6MzddICAgZ2ZuOiAwMDAwNTk4NiAgbWZuOiAwMDAwNTk4Ng0KDQooWEVOKSBbMjAxMi0w
-OC0zMSAyMTozMzozN10gICBnZm46IDAwMDA1OTg3ICBtZm46IDAwMDA1OTg3DQoNCihYRU4p
-IFsyMDEyLTA4LTMxIDIxOjMzOjM3XSAgIGdmbjogMDAwMDU5ODggIG1mbjogMDAwMDU5ODgN
-Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzddICAgZ2ZuOiAwMDAwNTk4OSAgbWZuOiAw
-MDAwNTk4OQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozOF0gICBnZm46IDAwMDA1OThh
-ICBtZm46IDAwMDA1OThhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM4XSAgIGdmbjog
-MDAwMDU5OGIgIG1mbjogMDAwMDU5OGINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6Mzhd
-ICAgZ2ZuOiAwMDAwNTk4YyAgbWZuOiAwMDAwNTk4Yw0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
-MTozMzozOF0gICBnZm46IDAwMDA1OThkICBtZm46IDAwMDA1OThkDQoNCihYRU4pIFsyMDEy
-LTA4LTMxIDIxOjMzOjM4XSAgIGdmbjogMDAwMDU5OGUgIG1mbjogMDAwMDU5OGUNCg0KKFhF
-TikgWzIwMTItMDgtMzEgMjE6MzM6MzhdICAgZ2ZuOiAwMDAwNTk4ZiAgbWZuOiAwMDAwNTk4
-Zg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozOF0gICBnZm46IDAwMDA1OTkwICBtZm46
-IDAwMDA1OTkwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM4XSAgIGdmbjogMDAwMDU5
-OTEgIG1mbjogMDAwMDU5OTENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzhdICAgZ2Zu
-OiAwMDAwNTk5MiAgbWZuOiAwMDAwNTk5Mg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoz
-OF0gICBnZm46IDAwMDA1OTkzICBtZm46IDAwMDA1OTkzDQoNCihYRU4pIFsyMDEyLTA4LTMx
-IDIxOjMzOjM4XSAgIGdmbjogMDAwMDU5OTQgIG1mbjogMDAwMDU5OTQNCg0KKFhFTikgWzIw
-MTItMDgtMzEgMjE6MzM6MzhdICAgZ2ZuOiAwMDAwNTk5NSAgbWZuOiAwMDAwNTk5NQ0KDQoo
-WEVOKSBbMjAxMi0wOC0zMSAyMTozMzozOF0gICBnZm46IDAwMDA1OTk2ICBtZm46IDAwMDA1
-OTk2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM4XSAgIGdmbjogMDAwMDU5OTcgIG1m
-bjogMDAwMDU5OTcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzhdICAgZ2ZuOiAwMDAw
-NTk5OCAgbWZuOiAwMDAwNTk5OA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozOF0gICBn
-Zm46IDAwMDA1OTk5ICBtZm46IDAwMDA1OTk5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMz
-OjM4XSAgIGdmbjogMDAwMDU5OWEgIG1mbjogMDAwMDU5OWENCg0KKFhFTikgWzIwMTItMDgt
-MzEgMjE6MzM6MzhdICAgZ2ZuOiAwMDAwNTk5YiAgbWZuOiAwMDAwNTk5Yg0KDQooWEVOKSBb
-MjAxMi0wOC0zMSAyMTozMzozOF0gICBnZm46IDAwMDA1OTljICBtZm46IDAwMDA1OTljDQoN
-CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM4XSAgIGdmbjogMDAwMDU5OWQgIG1mbjogMDAw
-MDU5OWQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzhdICAgZ2ZuOiAwMDAwNTk5ZSAg
-bWZuOiAwMDAwNTk5ZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozOF0gICBnZm46IDAw
-MDA1OTlmICBtZm46IDAwMDA1OTlmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM4XSAg
-IGdmbjogMDAwMDU5YTAgIG1mbjogMDAwMDU5YTANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
-MzM6MzhdICAgZ2ZuOiAwMDAwNTlhMSAgbWZuOiAwMDAwNTlhMQ0KDQooWEVOKSBbMjAxMi0w
-OC0zMSAyMTozMzozOF0gICBnZm46IDAwMDA1OWEyICBtZm46IDAwMDA1OWEyDQoNCihYRU4p
-IFsyMDEyLTA4LTMxIDIxOjMzOjM4XSAgIGdmbjogMDAwMDU5YTMgIG1mbjogMDAwMDU5YTMN
-Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzhdICAgZ2ZuOiAwMDAwNTlhNCAgbWZuOiAw
-MDAwNTlhNA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozOF0gICBnZm46IDAwMDA1OWE1
-ICBtZm46IDAwMDA1OWE1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM4XSAgIGdmbjog
-MDAwMDU5YTYgIG1mbjogMDAwMDU5YTYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6Mzhd
-ICAgZ2ZuOiAwMDAwNTlhNyAgbWZuOiAwMDAwNTlhNw0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
-MTozMzozOF0gICBnZm46IDAwMDA1OWE4ICBtZm46IDAwMDA1OWE4DQoNCihYRU4pIFsyMDEy
-LTA4LTMxIDIxOjMzOjM4XSAgIGdmbjogMDAwMDU5YTkgIG1mbjogMDAwMDU5YTkNCg0KKFhF
-TikgWzIwMTItMDgtMzEgMjE6MzM6MzhdICAgZ2ZuOiAwMDAwNTlhYSAgbWZuOiAwMDAwNTlh
-YQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozOF0gICBnZm46IDAwMDA1OWFiICBtZm46
-IDAwMDA1OWFiDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM4XSAgIGdmbjogMDAwMDU5
-YWMgIG1mbjogMDAwMDU5YWMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzhdICAgZ2Zu
-OiAwMDAwNTlhZCAgbWZuOiAwMDAwNTlhZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoz
-OF0gICBnZm46IDAwMDA1OWFlICBtZm46IDAwMDA1OWFlDQoNCihYRU4pIFsyMDEyLTA4LTMx
-IDIxOjMzOjM4XSAgIGdmbjogMDAwMDU5YWYgIG1mbjogMDAwMDU5YWYNCg0KKFhFTikgWzIw
-MTItMDgtMzEgMjE6MzM6MzhdICAgZ2ZuOiAwMDAwNTliMCAgbWZuOiAwMDAwNTliMA0KDQoo
-WEVOKSBbMjAxMi0wOC0zMSAyMTozMzozOF0gICBnZm46IDAwMDA1OWIxICBtZm46IDAwMDA1
-OWIxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM4XSAgIGdmbjogMDAwMDU5YjIgIG1m
-bjogMDAwMDU5YjINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzhdICAgZ2ZuOiAwMDAw
-NTliMyAgbWZuOiAwMDAwNTliMw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozOF0gICBn
-Zm46IDAwMDA1OWI0ICBtZm46IDAwMDA1OWI0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMz
-OjM4XSAgIGdmbjogMDAwMDU5YjUgIG1mbjogMDAwMDU5YjUNCg0KKFhFTikgWzIwMTItMDgt
-MzEgMjE6MzM6MzhdICAgZ2ZuOiAwMDAwNTliNiAgbWZuOiAwMDAwNTliNg0KDQooWEVOKSBb
-MjAxMi0wOC0zMSAyMTozMzozOF0gICBnZm46IDAwMDA1OWI3ICBtZm46IDAwMDA1OWI3DQoN
-CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM4XSAgIGdmbjogMDAwMDU5YjggIG1mbjogMDAw
-MDU5YjgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzhdICAgZ2ZuOiAwMDAwNTliOSAg
-bWZuOiAwMDAwNTliOQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozOF0gICBnZm46IDAw
-MDA1OWJhICBtZm46IDAwMDA1OWJhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM4XSAg
-IGdmbjogMDAwMDU5YmIgIG1mbjogMDAwMDU5YmINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
-MzM6MzhdICAgZ2ZuOiAwMDAwNTliYyAgbWZuOiAwMDAwNTliYw0KDQooWEVOKSBbMjAxMi0w
-OC0zMSAyMTozMzozOF0gICBnZm46IDAwMDA1OWJkICBtZm46IDAwMDA1OWJkDQoNCihYRU4p
-IFsyMDEyLTA4LTMxIDIxOjMzOjM4XSAgIGdmbjogMDAwMDU5YmUgIG1mbjogMDAwMDU5YmUN
-Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzhdICAgZ2ZuOiAwMDAwNTliZiAgbWZuOiAw
-MDAwNTliZg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozOF0gICBnZm46IDAwMDA1OWMw
-ICBtZm46IDAwMDA1OWMwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM4XSAgIGdmbjog
-MDAwMDU5YzEgIG1mbjogMDAwMDU5YzENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6Mzhd
-ICAgZ2ZuOiAwMDAwNTljMiAgbWZuOiAwMDAwNTljMg0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
-MTozMzozOF0gICBnZm46IDAwMDA1OWMzICBtZm46IDAwMDA1OWMzDQoNCihYRU4pIFsyMDEy
-LTA4LTMxIDIxOjMzOjM4XSAgIGdmbjogMDAwMDU5YzQgIG1mbjogMDAwMDU5YzQNCg0KKFhF
-TikgWzIwMTItMDgtMzEgMjE6MzM6MzhdICAgZ2ZuOiAwMDAwNTljNSAgbWZuOiAwMDAwNTlj
-NQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozOF0gICBnZm46IDAwMDA1OWM2ICBtZm46
-IDAwMDA1OWM2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM4XSAgIGdmbjogMDAwMDU5
-YzcgIG1mbjogMDAwMDU5YzcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzhdICAgZ2Zu
-OiAwMDAwNTljOCAgbWZuOiAwMDAwNTljOA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoz
-OF0gICBnZm46IDAwMDA1OWM5ICBtZm46IDAwMDA1OWM5DQoNCihYRU4pIFsyMDEyLTA4LTMx
-IDIxOjMzOjM4XSAgIGdmbjogMDAwMDU5Y2EgIG1mbjogMDAwMDU5Y2ENCg0KKFhFTikgWzIw
-MTItMDgtMzEgMjE6MzM6MzldICAgZ2ZuOiAwMDAwNTljYiAgbWZuOiAwMDAwNTljYg0KDQoo
-WEVOKSBbMjAxMi0wOC0zMSAyMTozMzozOV0gICBnZm46IDAwMDA1OWNjICBtZm46IDAwMDA1
-OWNjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM5XSAgIGdmbjogMDAwMDU5Y2QgIG1m
-bjogMDAwMDU5Y2QNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzldICAgZ2ZuOiAwMDAw
-NTljZSAgbWZuOiAwMDAwNTljZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozOV0gICBn
-Zm46IDAwMDA1OWNmICBtZm46IDAwMDA1OWNmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMz
-OjM5XSAgIGdmbjogMDAwMDU5ZDAgIG1mbjogMDAwMDU5ZDANCg0KKFhFTikgWzIwMTItMDgt
-MzEgMjE6MzM6MzldICAgZ2ZuOiAwMDAwNTlkMSAgbWZuOiAwMDAwNTlkMQ0KDQooWEVOKSBb
-MjAxMi0wOC0zMSAyMTozMzozOV0gICBnZm46IDAwMDA1OWQyICBtZm46IDAwMDA1OWQyDQoN
-CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM5XSAgIGdmbjogMDAwMDU5ZDMgIG1mbjogMDAw
-MDU5ZDMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzldICAgZ2ZuOiAwMDAwNTlkNCAg
-bWZuOiAwMDAwNTlkNA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozOV0gICBnZm46IDAw
-MDA1OWQ1ICBtZm46IDAwMDA1OWQ1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM5XSAg
-IGdmbjogMDAwMDU5ZDYgIG1mbjogMDAwMDU5ZDYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
-MzM6MzldICAgZ2ZuOiAwMDAwNTlkNyAgbWZuOiAwMDAwNTlkNw0KDQooWEVOKSBbMjAxMi0w
-OC0zMSAyMTozMzozOV0gICBnZm46IDAwMDA1OWQ4ICBtZm46IDAwMDA1OWQ4DQoNCihYRU4p
-IFsyMDEyLTA4LTMxIDIxOjMzOjM5XSAgIGdmbjogMDAwMDU5ZDkgIG1mbjogMDAwMDU5ZDkN
-Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzldICAgZ2ZuOiAwMDAwNTlkYSAgbWZuOiAw
-MDAwNTlkYQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozOV0gICBnZm46IDAwMDA1OWRi
-ICBtZm46IDAwMDA1OWRiDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM5XSAgIGdmbjog
-MDAwMDU5ZGMgIG1mbjogMDAwMDU5ZGMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6Mzld
-ICAgZ2ZuOiAwMDAwNTlkZCAgbWZuOiAwMDAwNTlkZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
-MTozMzozOV0gICBnZm46IDAwMDA1OWRlICBtZm46IDAwMDA1OWRlDQoNCihYRU4pIFsyMDEy
-LTA4LTMxIDIxOjMzOjM5XSAgIGdmbjogMDAwMDU5ZGYgIG1mbjogMDAwMDU5ZGYNCg0KKFhF
-TikgWzIwMTItMDgtMzEgMjE6MzM6MzldICAgZ2ZuOiAwMDAwNTllMCAgbWZuOiAwMDAwNTll
-MA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozOV0gICBnZm46IDAwMDA1OWUxICBtZm46
-IDAwMDA1OWUxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM5XSAgIGdmbjogMDAwMDU5
-ZTIgIG1mbjogMDAwMDU5ZTINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzldICAgZ2Zu
-OiAwMDAwNTllMyAgbWZuOiAwMDAwNTllMw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzoz
-OV0gICBnZm46IDAwMDA1OWU0ICBtZm46IDAwMDA1OWU0DQoNCihYRU4pIFsyMDEyLTA4LTMx
-IDIxOjMzOjM5XSAgIGdmbjogMDAwMDU5ZTUgIG1mbjogMDAwMDU5ZTUNCg0KKFhFTikgWzIw
-MTItMDgtMzEgMjE6MzM6MzldICAgZ2ZuOiAwMDAwNTllNiAgbWZuOiAwMDAwNTllNg0KDQoo
-WEVOKSBbMjAxMi0wOC0zMSAyMTozMzozOV0gICBnZm46IDAwMDA1OWU3ICBtZm46IDAwMDA1
-OWU3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM5XSAgIGdmbjogMDAwMDU5ZTggIG1m
-bjogMDAwMDU5ZTgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzldICAgZ2ZuOiAwMDAw
-NTllOSAgbWZuOiAwMDAwNTllOQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozOV0gICBn
-Zm46IDAwMDA1OWVhICBtZm46IDAwMDA1OWVhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMz
-OjM5XSAgIGdmbjogMDAwMDU5ZWIgIG1mbjogMDAwMDU5ZWINCg0KKFhFTikgWzIwMTItMDgt
-MzEgMjE6MzM6MzldICAgZ2ZuOiAwMDAwNTllYyAgbWZuOiAwMDAwNTllYw0KDQooWEVOKSBb
-MjAxMi0wOC0zMSAyMTozMzozOV0gICBnZm46IDAwMDA1OWVkICBtZm46IDAwMDA1OWVkDQoN
-CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM5XSAgIGdmbjogMDAwMDU5ZWUgIG1mbjogMDAw
-MDU5ZWUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzldICAgZ2ZuOiAwMDAwNTllZiAg
-bWZuOiAwMDAwNTllZg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozOV0gICBnZm46IDAw
-MDA1OWYwICBtZm46IDAwMDA1OWYwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM5XSAg
-IGdmbjogMDAwMDU5ZjEgIG1mbjogMDAwMDU5ZjENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
-MzM6MzldICAgZ2ZuOiAwMDAwNTlmMiAgbWZuOiAwMDAwNTlmMg0KDQpbICA0ODUuNjIzNzkz
-XSBhKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzldICAgZ2ZuOiAwMDAwNTlmMyAgbWZuOiAw
-MDAwNTlmMw0KDQp0YTMuMDA6IHFjIHRpbWVvKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6Mzld
-ICAgZ2ZuOiAwMDAwNTlmNCAgbWZuOiAwMDAwNTlmNA0KDQp1dCAoY21kIDB4ZWMpDQoNCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzldICAgZ2ZuOiAwMDAwNTlmNSAgbWZuOiAwMDAw
-NTlmNQ0KDQpbICA0ODUuNjgxOTg0XSBhdGEzLjAwOiBmYWlsZWQgdChYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMzOjM5XSAgIGdmbjogMDAwMDU5ZjYgIG1mbjogMDAwMDU5ZjYNCg0KbyBJREVO
-VElGWSAoSS9PIChYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM5XSAgIGdmbjogMDAwMDU5Zjcg
-IG1mbjogMDAwMDU5ZjcNCg0KZXJyb3IsIGVycl9tYXNrPTB4NCkNCg0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMzozOV0gICBnZm46IDAwMDA1OWY4ICBtZm46IDAwMDA1OWY4DQoNClsg
-IDQ4NS43NDg1MzBdIGEoWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozOV0gICBnZm46IDAwMDA1
-OWY5ICBtZm46IDAwMDA1OWY5DQoNCnRhMy4wMDogcmV2YWxpZGF0aW9uIGZhaWxlZCAoZXJy
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzldICAgZ2ZuOiAwMDAwNTlmYSAgbWZuOiAwMDAw
-NTlmYQ0KDQpubz0tNSkNCg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozOV0gICBnZm46
-IDAwMDA1OWZiICBtZm46IDAwMDA1OWZiDQoNClsgIDQ4NS44MTA5MjBdIGF0YTM6IGhhcmQg
-cmVzZXR0KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzldICAgZ2ZuOiAwMDAwNTlmYyAgbWZu
-OiAwMDAwNTlmYw0KDQppbmcgbGluaw0KDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM5
-XSAgIGdmbjogMDAwMDU5ZmQgIG1mbjogMDAwMDU5ZmQNCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzM6MzldICAgZ2ZuOiAwMDAwNTlmZSAgbWZuOiAwMDAwNTlmZQ0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMzozOV0gICBnZm46IDAwMDA1OWZmICBtZm46IDAwMDA1OWZmDQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM5XSAgIGdmbjogMDAwMDVhMDAgIG1mbjogMDAwMDVh
-MDANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6MzldICAgZ2ZuOiAwMDAwNWEwMSAgbWZu
-OiAwMDAwNWEwMQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzozOV0gICBnZm46IDAwMDA1
-YTAyICBtZm46IDAwMDA1YTAyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjM5XSAgIGdm
-bjogMDAwMDVhMDMgIG1mbjogMDAwMDVhMDMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6
-MzldICAgZ2ZuOiAwMDAwNWEwNCAgbWZuOiAwMDAwNWEwNA0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMzozOV0gICBnZm46IDAwMDA1YTA1ICBtZm46IDAwMDA1YTA1DQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMzOjM5XSAgIGdmbjogMDAwMDVhMDYgIG1mbjogMDAwMDVhMDYNCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDBdICAgZ2ZuOiAwMDAwNWEwNyAgbWZuOiAwMDAw
-NWEwNw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0MF0gICBnZm46IDAwMDA1YTA4ICBt
-Zm46IDAwMDA1YTA4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQwXSAgIGdmbjogMDAw
-MDVhMDkgIG1mbjogMDAwMDVhMDkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDBdICAg
-Z2ZuOiAwMDAwNWEwYSAgbWZuOiAwMDAwNWEwYQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-Mzo0MF0gICBnZm46IDAwMDA1YTBiICBtZm46IDAwMDA1YTBiDQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMzOjQwXSAgIGdmbjogMDAwMDVhMGMgIG1mbjogMDAwMDVhMGMNCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzM6NDBdICAgZ2ZuOiAwMDAwNWEwZCAgbWZuOiAwMDAwNWEwZA0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0MF0gICBnZm46IDAwMDA1YTBlICBtZm46IDAw
-MDA1YTBlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQwXSAgIGdmbjogMDAwMDVhMGYg
-IG1mbjogMDAwMDVhMGYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDBdICAgZ2ZuOiAw
-MDAwNWExMCAgbWZuOiAwMDAwNWExMA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0MF0g
-ICBnZm46IDAwMDA1YTExICBtZm46IDAwMDA1YTExDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMzOjQwXSAgIGdmbjogMDAwMDVhMTIgIG1mbjogMDAwMDVhMTINCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzM6NDBdICAgZ2ZuOiAwMDAwNWExMyAgbWZuOiAwMDAwNWExMw0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMzo0MF0gICBnZm46IDAwMDA1YTE0ICBtZm46IDAwMDA1YTE0
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQwXSAgIGdmbjogMDAwMDVhMTUgIG1mbjog
-MDAwMDVhMTUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDBdICAgZ2ZuOiAwMDAwNWEx
-NiAgbWZuOiAwMDAwNWExNg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0MF0gICBnZm46
-IDAwMDA1YTE3ICBtZm46IDAwMDA1YTE3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQw
-XSAgIGdmbjogMDAwMDVhMTggIG1mbjogMDAwMDVhMTgNCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzM6NDBdICAgZ2ZuOiAwMDAwNWExOSAgbWZuOiAwMDAwNWExOQ0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMzo0MF0gICBnZm46IDAwMDA1YTFhICBtZm46IDAwMDA1YTFhDQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQwXSAgIGdmbjogMDAwMDVhMWIgIG1mbjogMDAwMDVh
-MWINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDBdICAgZ2ZuOiAwMDAwNWExYyAgbWZu
-OiAwMDAwNWExYw0KDQpbICA0ODYuMzQyMDYxXSBhKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6
-NDBdICAgZ2ZuOiAwMDAwNWExZCAgbWZuOiAwMDAwNWExZA0KDQp0YTM6IFNBVEEgbGluayB1
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDBdICAgZ2ZuOiAwMDAwNWExZSAgbWZuOiAwMDAw
-NWExZQ0KDQpwIDYuMCBHYnBzIChTU3RhKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDBdICAg
-Z2ZuOiAwMDAwNWExZiAgbWZuOiAwMDAwNWExZg0KDQp0dXMgMTMzIFNDb250cm9sIDMwMCkN
-Cg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0MF0gICBnZm46IDAwMDA1YTIwICBtZm46
-IDAwMDA1YTIwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQwXSAgIGdmbjogMDAwMDVh
-MjEgIG1mbjogMDAwMDVhMjENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDBdICAgZ2Zu
-OiAwMDAwNWEyMiAgbWZuOiAwMDAwNWEyMg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0
-MF0gICBnZm46IDAwMDA1YTIzICBtZm46IDAwMDA1YTIzDQoNCihYRU4pIFsyMDEyLTA4LTMx
-IDIxOjMzOjQwXSAgIGdmbjogMDAwMDVhMjQgIG1mbjogMDAwMDVhMjQNCg0KKFhFTikgWzIw
-MTItMDgtMzEgMjE6MzM6NDBdICAgZ2ZuOiAwMDAwNWEyNSAgbWZuOiAwMDAwNWEyNQ0KDQoo
-WEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0MF0gICBnZm46IDAwMDA1YTI2ICBtZm46IDAwMDA1
-YTI2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQwXSAgIGdmbjogMDAwMDVhMjcgIG1m
-bjogMDAwMDVhMjcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDBdICAgZ2ZuOiAwMDAw
-NWEyOCAgbWZuOiAwMDAwNWEyOA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0MF0gICBn
-Zm46IDAwMDA1YTI5ICBtZm46IDAwMDA1YTI5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMz
-OjQwXSAgIGdmbjogMDAwMDVhMmEgIG1mbjogMDAwMDVhMmENCg0KKFhFTikgWzIwMTItMDgt
-MzEgMjE6MzM6NDBdICAgZ2ZuOiAwMDAwNWEyYiAgbWZuOiAwMDAwNWEyYg0KDQooWEVOKSBb
-MjAxMi0wOC0zMSAyMTozMzo0MF0gICBnZm46IDAwMDA1YTJjICBtZm46IDAwMDA1YTJjDQoN
-CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQwXSAgIGdmbjogMDAwMDVhMmQgIG1mbjogMDAw
-MDVhMmQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDBdICAgZ2ZuOiAwMDAwNWEyZSAg
-bWZuOiAwMDAwNWEyZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0MF0gICBnZm46IDAw
-MDA1YTJmICBtZm46IDAwMDA1YTJmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQwXSAg
-IGdmbjogMDAwMDVhMzAgIG1mbjogMDAwMDVhMzANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
-MzM6NDBdICAgZ2ZuOiAwMDAwNWEzMSAgbWZuOiAwMDAwNWEzMQ0KDQooWEVOKSBbMjAxMi0w
-OC0zMSAyMTozMzo0MF0gICBnZm46IDAwMDA1YTMyICBtZm46IDAwMDA1YTMyDQoNCihYRU4p
-IFsyMDEyLTA4LTMxIDIxOjMzOjQwXSAgIGdmbjogMDAwMDVhMzMgIG1mbjogMDAwMDVhMzMN
-Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDBdICAgZ2ZuOiAwMDAwNWEzNCAgbWZuOiAw
-MDAwNWEzNA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0MF0gICBnZm46IDAwMDA1YTM1
-ICBtZm46IDAwMDA1YTM1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQwXSAgIGdmbjog
-MDAwMDVhMzYgIG1mbjogMDAwMDVhMzYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDBd
-ICAgZ2ZuOiAwMDAwNWEzNyAgbWZuOiAwMDAwNWEzNw0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
-MTozMzo0MF0gICBnZm46IDAwMDA1YTM4ICBtZm46IDAwMDA1YTM4DQoNCihYRU4pIFsyMDEy
-LTA4LTMxIDIxOjMzOjQwXSAgIGdmbjogMDAwMDVhMzkgIG1mbjogMDAwMDVhMzkNCg0KKFhF
-TikgWzIwMTItMDgtMzEgMjE6MzM6NDBdICAgZ2ZuOiAwMDAwNWEzYSAgbWZuOiAwMDAwNWEz
-YQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0MF0gICBnZm46IDAwMDA1YTNiICBtZm46
-IDAwMDA1YTNiDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQwXSAgIGdmbjogMDAwMDVh
-M2MgIG1mbjogMDAwMDVhM2MNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDBdICAgZ2Zu
-OiAwMDAwNWEzZCAgbWZuOiAwMDAwNWEzZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0
-MF0gICBnZm46IDAwMDA1YTNlICBtZm46IDAwMDA1YTNlDQoNCihYRU4pIFsyMDEyLTA4LTMx
-IDIxOjMzOjQwXSAgIGdmbjogMDAwMDVhM2YgIG1mbjogMDAwMDVhM2YNCg0KKFhFTikgWzIw
-MTItMDgtMzEgMjE6MzM6NDBdICAgZ2ZuOiAwMDAwNWE0MCAgbWZuOiAwMDAwNWE0MA0KDQoo
-WEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0MF0gICBnZm46IDAwMDA1YTQxICBtZm46IDAwMDA1
-YTQxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQwXSAgIGdmbjogMDAwMDVhNDIgIG1m
-bjogMDAwMDVhNDINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDBdICAgZ2ZuOiAwMDAw
-NWE0MyAgbWZuOiAwMDAwNWE0Mw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0MF0gICBn
-Zm46IDAwMDA1YTQ0ICBtZm46IDAwMDA1YTQ0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMz
-OjQwXSAgIGdmbjogMDAwMDVhNDUgIG1mbjogMDAwMDVhNDUNCg0KKFhFTikgWzIwMTItMDgt
-MzEgMjE6MzM6NDFdICAgZ2ZuOiAwMDAwNWE0NiAgbWZuOiAwMDAwNWE0Ng0KDQooWEVOKSBb
-MjAxMi0wOC0zMSAyMTozMzo0MV0gICBnZm46IDAwMDA1YTQ3ICBtZm46IDAwMDA1YTQ3DQoN
-CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQxXSAgIGdmbjogMDAwMDVhNDggIG1mbjogMDAw
-MDVhNDgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDFdICAgZ2ZuOiAwMDAwNWE0OSAg
-bWZuOiAwMDAwNWE0OQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0MV0gICBnZm46IDAw
-MDA1YTRhICBtZm46IDAwMDA1YTRhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQxXSAg
-IGdmbjogMDAwMDVhNGIgIG1mbjogMDAwMDVhNGINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
-MzM6NDFdICAgZ2ZuOiAwMDAwNWE0YyAgbWZuOiAwMDAwNWE0Yw0KDQooWEVOKSBbMjAxMi0w
-OC0zMSAyMTozMzo0MV0gICBnZm46IDAwMDA1YTRkICBtZm46IDAwMDA1YTRkDQoNCihYRU4p
-IFsyMDEyLTA4LTMxIDIxOjMzOjQxXSAgIGdmbjogMDAwMDVhNGUgIG1mbjogMDAwMDVhNGUN
-Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDFdICAgZ2ZuOiAwMDAwNWE0ZiAgbWZuOiAw
-MDAwNWE0Zg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0MV0gICBnZm46IDAwMDA1YTUw
-ICBtZm46IDAwMDA1YTUwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQxXSAgIGdmbjog
-MDAwMDVhNTEgIG1mbjogMDAwMDVhNTENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDFd
-ICAgZ2ZuOiAwMDAwNWE1MiAgbWZuOiAwMDAwNWE1Mg0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
-MTozMzo0MV0gICBnZm46IDAwMDA1YTUzICBtZm46IDAwMDA1YTUzDQoNCihYRU4pIFsyMDEy
-LTA4LTMxIDIxOjMzOjQxXSAgIGdmbjogMDAwMDVhNTQgIG1mbjogMDAwMDVhNTQNCg0KKFhF
-TikgWzIwMTItMDgtMzEgMjE6MzM6NDFdICAgZ2ZuOiAwMDAwNWE1NSAgbWZuOiAwMDAwNWE1
-NQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0MV0gICBnZm46IDAwMDA1YTU2ICBtZm46
-IDAwMDA1YTU2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQxXSAgIGdmbjogMDAwMDVh
-NTcgIG1mbjogMDAwMDVhNTcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDFdICAgZ2Zu
-OiAwMDAwNWE1OCAgbWZuOiAwMDAwNWE1OA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0
-MV0gICBnZm46IDAwMDA1YTU5ICBtZm46IDAwMDA1YTU5DQoNCihYRU4pIFsyMDEyLTA4LTMx
-IDIxOjMzOjQxXSAgIGdmbjogMDAwMDVhNWEgIG1mbjogMDAwMDVhNWENCg0KKFhFTikgWzIw
-MTItMDgtMzEgMjE6MzM6NDFdICAgZ2ZuOiAwMDAwNWE1YiAgbWZuOiAwMDAwNWE1Yg0KDQoo
-WEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0MV0gICBnZm46IDAwMDA1YTVjICBtZm46IDAwMDA1
-YTVjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQxXSAgIGdmbjogMDAwMDVhNWQgIG1m
-bjogMDAwMDVhNWQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDFdICAgZ2ZuOiAwMDAw
-NWE1ZSAgbWZuOiAwMDAwNWE1ZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0MV0gICBn
-Zm46IDAwMDA1YTVmICBtZm46IDAwMDA1YTVmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMz
-OjQxXSAgIGdmbjogMDAwMDVhNjAgIG1mbjogMDAwMDVhNjANCg0KKFhFTikgWzIwMTItMDgt
-MzEgMjE6MzM6NDFdICAgZ2ZuOiAwMDAwNWE2MSAgbWZuOiAwMDAwNWE2MQ0KDQooWEVOKSBb
-MjAxMi0wOC0zMSAyMTozMzo0MV0gICBnZm46IDAwMDA1YTYyICBtZm46IDAwMDA1YTYyDQoN
-CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQxXSAgIGdmbjogMDAwMDVhNjMgIG1mbjogMDAw
-MDVhNjMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDFdICAgZ2ZuOiAwMDAwNWE2NCAg
-bWZuOiAwMDAwNWE2NA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0MV0gICBnZm46IDAw
-MDA1YTY1ICBtZm46IDAwMDA1YTY1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQxXSAg
-IGdmbjogMDAwMDVhNjYgIG1mbjogMDAwMDVhNjYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
-MzM6NDFdICAgZ2ZuOiAwMDAwNWE2NyAgbWZuOiAwMDAwNWE2Nw0KDQooWEVOKSBbMjAxMi0w
-OC0zMSAyMTozMzo0MV0gICBnZm46IDAwMDA1YTY4ICBtZm46IDAwMDA1YTY4DQoNCihYRU4p
-IFsyMDEyLTA4LTMxIDIxOjMzOjQxXSAgIGdmbjogMDAwMDVhNjkgIG1mbjogMDAwMDVhNjkN
-Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDFdICAgZ2ZuOiAwMDAwNWE2YSAgbWZuOiAw
-MDAwNWE2YQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0MV0gICBnZm46IDAwMDA1YTZi
-ICBtZm46IDAwMDA1YTZiDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQxXSAgIGdmbjog
-MDAwMDVhNmMgIG1mbjogMDAwMDVhNmMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDFd
-ICAgZ2ZuOiAwMDAwNWE2ZCAgbWZuOiAwMDAwNWE2ZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
-MTozMzo0MV0gICBnZm46IDAwMDA1YTZlICBtZm46IDAwMDA1YTZlDQoNCihYRU4pIFsyMDEy
-LTA4LTMxIDIxOjMzOjQxXSAgIGdmbjogMDAwMDVhNmYgIG1mbjogMDAwMDVhNmYNCg0KKFhF
-TikgWzIwMTItMDgtMzEgMjE6MzM6NDFdICAgZ2ZuOiAwMDAwNWE3MCAgbWZuOiAwMDAwNWE3
-MA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0MV0gICBnZm46IDAwMDA1YTcxICBtZm46
-IDAwMDA1YTcxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQxXSAgIGdmbjogMDAwMDVh
-NzIgIG1mbjogMDAwMDVhNzINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDFdICAgZ2Zu
-OiAwMDAwNWE3MyAgbWZuOiAwMDAwNWE3Mw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0
-MV0gICBnZm46IDAwMDA1YTc0ICBtZm46IDAwMDA1YTc0DQoNCihYRU4pIFsyMDEyLTA4LTMx
-IDIxOjMzOjQxXSAgIGdmbjogMDAwMDVhNzUgIG1mbjogMDAwMDVhNzUNCg0KKFhFTikgWzIw
-MTItMDgtMzEgMjE6MzM6NDFdICAgZ2ZuOiAwMDAwNWE3NiAgbWZuOiAwMDAwNWE3Ng0KDQoo
-WEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0MV0gICBnZm46IDAwMDA1YTc3ICBtZm46IDAwMDA1
-YTc3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQxXSAgIGdmbjogMDAwMDVhNzggIG1m
-bjogMDAwMDVhNzgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDFdICAgZ2ZuOiAwMDAw
-NWE3OSAgbWZuOiAwMDAwNWE3OQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0MV0gICBn
-Zm46IDAwMDA1YTdhICBtZm46IDAwMDA1YTdhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMz
-OjQxXSAgIGdmbjogMDAwMDVhN2IgIG1mbjogMDAwMDVhN2INCg0KKFhFTikgWzIwMTItMDgt
-MzEgMjE6MzM6NDFdICAgZ2ZuOiAwMDAwNWE3YyAgbWZuOiAwMDAwNWE3Yw0KDQooWEVOKSBb
-MjAxMi0wOC0zMSAyMTozMzo0MV0gICBnZm46IDAwMDA1YTdkICBtZm46IDAwMDA1YTdkDQoN
-CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQxXSAgIGdmbjogMDAwMDVhN2UgIG1mbjogMDAw
-MDVhN2UNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDFdICAgZ2ZuOiAwMDAwNWE3ZiAg
-bWZuOiAwMDAwNWE3Zg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0MV0gICBnZm46IDAw
-MDA1YTgwICBtZm46IDAwMDA1YTgwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQxXSAg
-IGdmbjogMDAwMDVhODEgIG1mbjogMDAwMDVhODENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
-MzM6NDFdICAgZ2ZuOiAwMDAwNWE4MiAgbWZuOiAwMDAwNWE4Mg0KDQooWEVOKSBbMjAxMi0w
-OC0zMSAyMTozMzo0MV0gICBnZm46IDAwMDA1YTgzICBtZm46IDAwMDA1YTgzDQoNCihYRU4p
-IFsyMDEyLTA4LTMxIDIxOjMzOjQxXSAgIGdmbjogMDAwMDVhODQgIG1mbjogMDAwMDVhODQN
-Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDFdICAgZ2ZuOiAwMDAwNWE4NSAgbWZuOiAw
-MDAwNWE4NQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0Ml0gICBnZm46IDAwMDA1YTg2
-ICBtZm46IDAwMDA1YTg2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQyXSAgIGdmbjog
-MDAwMDVhODcgIG1mbjogMDAwMDVhODcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDJd
-ICAgZ2ZuOiAwMDAwNWE4OCAgbWZuOiAwMDAwNWE4OA0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
-MTozMzo0Ml0gICBnZm46IDAwMDA1YTg5ICBtZm46IDAwMDA1YTg5DQoNCihYRU4pIFsyMDEy
-LTA4LTMxIDIxOjMzOjQyXSAgIGdmbjogMDAwMDVhOGEgIG1mbjogMDAwMDVhOGENCg0KKFhF
-TikgWzIwMTItMDgtMzEgMjE6MzM6NDJdICAgZ2ZuOiAwMDAwNWE4YiAgbWZuOiAwMDAwNWE4
-Yg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0Ml0gICBnZm46IDAwMDA1YThjICBtZm46
-IDAwMDA1YThjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQyXSAgIGdmbjogMDAwMDVh
-OGQgIG1mbjogMDAwMDVhOGQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDJdICAgZ2Zu
-OiAwMDAwNWE4ZSAgbWZuOiAwMDAwNWE4ZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0
-Ml0gICBnZm46IDAwMDA1YThmICBtZm46IDAwMDA1YThmDQoNCihYRU4pIFsyMDEyLTA4LTMx
-IDIxOjMzOjQyXSAgIGdmbjogMDAwMDVhOTAgIG1mbjogMDAwMDVhOTANCg0KKFhFTikgWzIw
-MTItMDgtMzEgMjE6MzM6NDJdICAgZ2ZuOiAwMDAwNWE5MSAgbWZuOiAwMDAwNWE5MQ0KDQoo
-WEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0Ml0gICBnZm46IDAwMDA1YTkyICBtZm46IDAwMDA1
-YTkyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQyXSAgIGdmbjogMDAwMDVhOTMgIG1m
-bjogMDAwMDVhOTMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDJdICAgZ2ZuOiAwMDAw
-NWE5NCAgbWZuOiAwMDAwNWE5NA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0Ml0gICBn
-Zm46IDAwMDA1YTk1ICBtZm46IDAwMDA1YTk1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMz
-OjQyXSAgIGdmbjogMDAwMDVhOTYgIG1mbjogMDAwMDVhOTYNCg0KKFhFTikgWzIwMTItMDgt
-MzEgMjE6MzM6NDJdICAgZ2ZuOiAwMDAwNWE5NyAgbWZuOiAwMDAwNWE5Nw0KDQooWEVOKSBb
-MjAxMi0wOC0zMSAyMTozMzo0Ml0gICBnZm46IDAwMDA1YTk4ICBtZm46IDAwMDA1YTk4DQoN
-CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQyXSAgIGdmbjogMDAwMDVhOTkgIG1mbjogMDAw
-MDVhOTkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDJdICAgZ2ZuOiAwMDAwNWE5YSAg
-bWZuOiAwMDAwNWE5YQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0Ml0gICBnZm46IDAw
-MDA1YTliICBtZm46IDAwMDA1YTliDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQyXSAg
-IGdmbjogMDAwMDVhOWMgIG1mbjogMDAwMDVhOWMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
-MzM6NDJdICAgZ2ZuOiAwMDAwNWE5ZCAgbWZuOiAwMDAwNWE5ZA0KDQooWEVOKSBbMjAxMi0w
-OC0zMSAyMTozMzo0Ml0gICBnZm46IDAwMDA1YTllICBtZm46IDAwMDA1YTllDQoNCihYRU4p
-IFsyMDEyLTA4LTMxIDIxOjMzOjQyXSAgIGdmbjogMDAwMDVhOWYgIG1mbjogMDAwMDVhOWYN
-Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDJdICAgZ2ZuOiAwMDAwNWFhMCAgbWZuOiAw
-MDAwNWFhMA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0Ml0gICBnZm46IDAwMDA1YWEx
-ICBtZm46IDAwMDA1YWExDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQyXSAgIGdmbjog
-MDAwMDVhYTIgIG1mbjogMDAwMDVhYTINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDJd
-ICAgZ2ZuOiAwMDAwNWFhMyAgbWZuOiAwMDAwNWFhMw0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
-MTozMzo0Ml0gICBnZm46IDAwMDA1YWE0ICBtZm46IDAwMDA1YWE0DQoNCihYRU4pIFsyMDEy
-LTA4LTMxIDIxOjMzOjQyXSAgIGdmbjogMDAwMDVhYTUgIG1mbjogMDAwMDVhYTUNCg0KKFhF
-TikgWzIwMTItMDgtMzEgMjE6MzM6NDJdICAgZ2ZuOiAwMDAwNWFhNiAgbWZuOiAwMDAwNWFh
-Ng0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0Ml0gICBnZm46IDAwMDA1YWE3ICBtZm46
-IDAwMDA1YWE3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQyXSAgIGdmbjogMDAwMDVh
-YTggIG1mbjogMDAwMDVhYTgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDJdICAgZ2Zu
-OiAwMDAwNWFhOSAgbWZuOiAwMDAwNWFhOQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0
-Ml0gICBnZm46IDAwMDA1YWFhICBtZm46IDAwMDA1YWFhDQoNCihYRU4pIFsyMDEyLTA4LTMx
-IDIxOjMzOjQyXSAgIGdmbjogMDAwMDVhYWIgIG1mbjogMDAwMDVhYWINCg0KKFhFTikgWzIw
-MTItMDgtMzEgMjE6MzM6NDJdICAgZ2ZuOiAwMDAwNWFhYyAgbWZuOiAwMDAwNWFhYw0KDQoo
-WEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0Ml0gICBnZm46IDAwMDA1YWFkICBtZm46IDAwMDA1
-YWFkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQyXSAgIGdmbjogMDAwMDVhYWUgIG1m
-bjogMDAwMDVhYWUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDJdICAgZ2ZuOiAwMDAw
-NWFhZiAgbWZuOiAwMDAwNWFhZg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0Ml0gICBn
-Zm46IDAwMDA1YWIwICBtZm46IDAwMDA1YWIwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMz
-OjQyXSAgIGdmbjogMDAwMDVhYjEgIG1mbjogMDAwMDVhYjENCg0KKFhFTikgWzIwMTItMDgt
-MzEgMjE6MzM6NDJdICAgZ2ZuOiAwMDAwNWFiMiAgbWZuOiAwMDAwNWFiMg0KDQooWEVOKSBb
-MjAxMi0wOC0zMSAyMTozMzo0Ml0gICBnZm46IDAwMDA1YWIzICBtZm46IDAwMDA1YWIzDQoN
-CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQyXSAgIGdmbjogMDAwMDVhYjQgIG1mbjogMDAw
-MDVhYjQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDJdICAgZ2ZuOiAwMDAwNWFiNSAg
-bWZuOiAwMDAwNWFiNQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0Ml0gICBnZm46IDAw
-MDA1YWI2ICBtZm46IDAwMDA1YWI2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQyXSAg
-IGdmbjogMDAwMDVhYjcgIG1mbjogMDAwMDVhYjcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
-MzM6NDJdICAgZ2ZuOiAwMDAwNWFiOCAgbWZuOiAwMDAwNWFiOA0KDQooWEVOKSBbMjAxMi0w
-OC0zMSAyMTozMzo0Ml0gICBnZm46IDAwMDA1YWI5ICBtZm46IDAwMDA1YWI5DQoNCihYRU4p
-IFsyMDEyLTA4LTMxIDIxOjMzOjQyXSAgIGdmbjogMDAwMDVhYmEgIG1mbjogMDAwMDVhYmEN
-Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDJdICAgZ2ZuOiAwMDAwNWFiYiAgbWZuOiAw
-MDAwNWFiYg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0Ml0gICBnZm46IDAwMDA1YWJj
-ICBtZm46IDAwMDA1YWJjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQyXSAgIGdmbjog
-MDAwMDVhYmQgIG1mbjogMDAwMDVhYmQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDJd
-ICAgZ2ZuOiAwMDAwNWFiZSAgbWZuOiAwMDAwNWFiZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
-MTozMzo0Ml0gICBnZm46IDAwMDA1YWJmICBtZm46IDAwMDA1YWJmDQoNCihYRU4pIFsyMDEy
-LTA4LTMxIDIxOjMzOjQyXSAgIGdmbjogMDAwMDVhYzAgIG1mbjogMDAwMDVhYzANCg0KKFhF
-TikgWzIwMTItMDgtMzEgMjE6MzM6NDJdICAgZ2ZuOiAwMDAwNWFjMSAgbWZuOiAwMDAwNWFj
-MQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0Ml0gICBnZm46IDAwMDA1YWMyICBtZm46
-IDAwMDA1YWMyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQyXSAgIGdmbjogMDAwMDVh
-YzMgIG1mbjogMDAwMDVhYzMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDJdICAgZ2Zu
-OiAwMDAwNWFjNCAgbWZuOiAwMDAwNWFjNA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0
-Ml0gICBnZm46IDAwMDA1YWM1ICBtZm46IDAwMDA1YWM1DQoNCihYRU4pIFsyMDEyLTA4LTMx
-IDIxOjMzOjQzXSAgIGdmbjogMDAwMDVhYzYgIG1mbjogMDAwMDVhYzYNCg0KKFhFTikgWzIw
-MTItMDgtMzEgMjE6MzM6NDNdICAgZ2ZuOiAwMDAwNWFjNyAgbWZuOiAwMDAwNWFjNw0KDQoo
-WEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0M10gICBnZm46IDAwMDA1YWM4ICBtZm46IDAwMDA1
-YWM4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQzXSAgIGdmbjogMDAwMDVhYzkgIG1m
-bjogMDAwMDVhYzkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDNdICAgZ2ZuOiAwMDAw
-NWFjYSAgbWZuOiAwMDAwNWFjYQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0M10gICBn
-Zm46IDAwMDA1YWNiICBtZm46IDAwMDA1YWNiDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMz
-OjQzXSAgIGdmbjogMDAwMDVhY2MgIG1mbjogMDAwMDVhY2MNCg0KKFhFTikgWzIwMTItMDgt
-MzEgMjE6MzM6NDNdICAgZ2ZuOiAwMDAwNWFjZCAgbWZuOiAwMDAwNWFjZA0KDQooWEVOKSBb
-MjAxMi0wOC0zMSAyMTozMzo0M10gICBnZm46IDAwMDA1YWNlICBtZm46IDAwMDA1YWNlDQoN
-CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQzXSAgIGdmbjogMDAwMDVhY2YgIG1mbjogMDAw
-MDVhY2YNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDNdICAgZ2ZuOiAwMDAwNWFkMCAg
-bWZuOiAwMDAwNWFkMA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0M10gICBnZm46IDAw
-MDA1YWQxICBtZm46IDAwMDA1YWQxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQzXSAg
-IGdmbjogMDAwMDVhZDIgIG1mbjogMDAwMDVhZDINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
-MzM6NDNdICAgZ2ZuOiAwMDAwNWFkMyAgbWZuOiAwMDAwNWFkMw0KDQooWEVOKSBbMjAxMi0w
-OC0zMSAyMTozMzo0M10gICBnZm46IDAwMDA1YWQ0ICBtZm46IDAwMDA1YWQ0DQoNCihYRU4p
-IFsyMDEyLTA4LTMxIDIxOjMzOjQzXSAgIGdmbjogMDAwMDVhZDUgIG1mbjogMDAwMDVhZDUN
-Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDNdICAgZ2ZuOiAwMDAwNWFkNiAgbWZuOiAw
-MDAwNWFkNg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0M10gICBnZm46IDAwMDA1YWQ3
-ICBtZm46IDAwMDA1YWQ3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQzXSAgIGdmbjog
-MDAwMDVhZDggIG1mbjogMDAwMDVhZDgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDNd
-ICAgZ2ZuOiAwMDAwNWFkOSAgbWZuOiAwMDAwNWFkOQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
-MTozMzo0M10gICBnZm46IDAwMDA1YWRhICBtZm46IDAwMDA1YWRhDQoNCihYRU4pIFsyMDEy
-LTA4LTMxIDIxOjMzOjQzXSAgIGdmbjogMDAwMDVhZGIgIG1mbjogMDAwMDVhZGINCg0KKFhF
-TikgWzIwMTItMDgtMzEgMjE6MzM6NDNdICAgZ2ZuOiAwMDAwNWFkYyAgbWZuOiAwMDAwNWFk
-Yw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0M10gICBnZm46IDAwMDA1YWRkICBtZm46
-IDAwMDA1YWRkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQzXSAgIGdmbjogMDAwMDVh
-ZGUgIG1mbjogMDAwMDVhZGUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDNdICAgZ2Zu
-OiAwMDAwNWFkZiAgbWZuOiAwMDAwNWFkZg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0
-M10gICBnZm46IDAwMDA1YWUwICBtZm46IDAwMDA1YWUwDQoNCihYRU4pIFsyMDEyLTA4LTMx
-IDIxOjMzOjQzXSAgIGdmbjogMDAwMDVhZTEgIG1mbjogMDAwMDVhZTENCg0KKFhFTikgWzIw
-MTItMDgtMzEgMjE6MzM6NDNdICAgZ2ZuOiAwMDAwNWFlMiAgbWZuOiAwMDAwNWFlMg0KDQoo
-WEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0M10gICBnZm46IDAwMDA1YWUzICBtZm46IDAwMDA1
-YWUzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQzXSAgIGdmbjogMDAwMDVhZTQgIG1m
-bjogMDAwMDVhZTQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDNdICAgZ2ZuOiAwMDAw
-NWFlNSAgbWZuOiAwMDAwNWFlNQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0M10gICBn
-Zm46IDAwMDA1YWU2ICBtZm46IDAwMDA1YWU2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMz
-OjQzXSAgIGdmbjogMDAwMDVhZTcgIG1mbjogMDAwMDVhZTcNCg0KKFhFTikgWzIwMTItMDgt
-MzEgMjE6MzM6NDNdICAgZ2ZuOiAwMDAwNWFlOCAgbWZuOiAwMDAwNWFlOA0KDQooWEVOKSBb
-MjAxMi0wOC0zMSAyMTozMzo0M10gICBnZm46IDAwMDA1YWU5ICBtZm46IDAwMDA1YWU5DQoN
-CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQzXSAgIGdmbjogMDAwMDVhZWEgIG1mbjogMDAw
-MDVhZWENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDNdICAgZ2ZuOiAwMDAwNWFlYiAg
-bWZuOiAwMDAwNWFlYg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0M10gICBnZm46IDAw
-MDA1YWVjICBtZm46IDAwMDA1YWVjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQzXSAg
-IGdmbjogMDAwMDVhZWQgIG1mbjogMDAwMDVhZWQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
-MzM6NDNdICAgZ2ZuOiAwMDAwNWFlZSAgbWZuOiAwMDAwNWFlZQ0KDQooWEVOKSBbMjAxMi0w
-OC0zMSAyMTozMzo0M10gICBnZm46IDAwMDA1YWVmICBtZm46IDAwMDA1YWVmDQoNCihYRU4p
-IFsyMDEyLTA4LTMxIDIxOjMzOjQzXSAgIGdmbjogMDAwMDVhZjAgIG1mbjogMDAwMDVhZjAN
-Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDNdICAgZ2ZuOiAwMDAwNWFmMSAgbWZuOiAw
-MDAwNWFmMQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0M10gICBnZm46IDAwMDA1YWYy
-ICBtZm46IDAwMDA1YWYyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQzXSAgIGdmbjog
-MDAwMDVhZjMgIG1mbjogMDAwMDVhZjMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDNd
-ICAgZ2ZuOiAwMDAwNWFmNCAgbWZuOiAwMDAwNWFmNA0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
-MTozMzo0M10gICBnZm46IDAwMDA1YWY1ICBtZm46IDAwMDA1YWY1DQoNCihYRU4pIFsyMDEy
-LTA4LTMxIDIxOjMzOjQzXSAgIGdmbjogMDAwMDVhZjYgIG1mbjogMDAwMDVhZjYNCg0KKFhF
-TikgWzIwMTItMDgtMzEgMjE6MzM6NDNdICAgZ2ZuOiAwMDAwNWFmNyAgbWZuOiAwMDAwNWFm
-Nw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0M10gICBnZm46IDAwMDA1YWY4ICBtZm46
-IDAwMDA1YWY4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQzXSAgIGdmbjogMDAwMDVh
-ZjkgIG1mbjogMDAwMDVhZjkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDNdICAgZ2Zu
-OiAwMDAwNWFmYSAgbWZuOiAwMDAwNWFmYQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0
-M10gICBnZm46IDAwMDA1YWZiICBtZm46IDAwMDA1YWZiDQoNCihYRU4pIFsyMDEyLTA4LTMx
-IDIxOjMzOjQzXSAgIGdmbjogMDAwMDVhZmMgIG1mbjogMDAwMDVhZmMNCg0KKFhFTikgWzIw
-MTItMDgtMzEgMjE6MzM6NDNdICAgZ2ZuOiAwMDAwNWFmZCAgbWZuOiAwMDAwNWFmZA0KDQoo
-WEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0M10gICBnZm46IDAwMDA1YWZlICBtZm46IDAwMDA1
-YWZlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQzXSAgIGdmbjogMDAwMDVhZmYgIG1m
-bjogMDAwMDVhZmYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDNdICAgZ2ZuOiAwMDAw
-NWIwMCAgbWZuOiAwMDAwNWIwMA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0M10gICBn
-Zm46IDAwMDA1YjAxICBtZm46IDAwMDA1YjAxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMz
-OjQzXSAgIGdmbjogMDAwMDViMDIgIG1mbjogMDAwMDViMDINCg0KKFhFTikgWzIwMTItMDgt
-MzEgMjE6MzM6NDNdICAgZ2ZuOiAwMDAwNWIwMyAgbWZuOiAwMDAwNWIwMw0KDQooWEVOKSBb
-MjAxMi0wOC0zMSAyMTozMzo0M10gICBnZm46IDAwMDA1YjA0ICBtZm46IDAwMDA1YjA0DQoN
-CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQzXSAgIGdmbjogMDAwMDViMDUgIG1mbjogMDAw
-MDViMDUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDRdICAgZ2ZuOiAwMDAwNWIwNiAg
-bWZuOiAwMDAwNWIwNg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0NF0gICBnZm46IDAw
-MDA1YjA3ICBtZm46IDAwMDA1YjA3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQ0XSAg
-IGdmbjogMDAwMDViMDggIG1mbjogMDAwMDViMDgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
-MzM6NDRdICAgZ2ZuOiAwMDAwNWIwOSAgbWZuOiAwMDAwNWIwOQ0KDQooWEVOKSBbMjAxMi0w
-OC0zMSAyMTozMzo0NF0gICBnZm46IDAwMDA1YjBhICBtZm46IDAwMDA1YjBhDQoNCihYRU4p
-IFsyMDEyLTA4LTMxIDIxOjMzOjQ0XSAgIGdmbjogMDAwMDViMGIgIG1mbjogMDAwMDViMGIN
-Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDRdICAgZ2ZuOiAwMDAwNWIwYyAgbWZuOiAw
-MDAwNWIwYw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0NF0gICBnZm46IDAwMDA1YjBk
-ICBtZm46IDAwMDA1YjBkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQ0XSAgIGdmbjog
-MDAwMDViMGUgIG1mbjogMDAwMDViMGUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDRd
-ICAgZ2ZuOiAwMDAwNWIwZiAgbWZuOiAwMDAwNWIwZg0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
-MTozMzo0NF0gICBnZm46IDAwMDA1YjEwICBtZm46IDAwMDA1YjEwDQoNCihYRU4pIFsyMDEy
-LTA4LTMxIDIxOjMzOjQ0XSAgIGdmbjogMDAwMDViMTEgIG1mbjogMDAwMDViMTENCg0KKFhF
-TikgWzIwMTItMDgtMzEgMjE6MzM6NDRdICAgZ2ZuOiAwMDAwNWIxMiAgbWZuOiAwMDAwNWIx
-Mg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0NF0gICBnZm46IDAwMDA1YjEzICBtZm46
-IDAwMDA1YjEzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQ0XSAgIGdmbjogMDAwMDVi
-MTQgIG1mbjogMDAwMDViMTQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDRdICAgZ2Zu
-OiAwMDAwNWIxNSAgbWZuOiAwMDAwNWIxNQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0
-NF0gICBnZm46IDAwMDA1YjE2ICBtZm46IDAwMDA1YjE2DQoNCihYRU4pIFsyMDEyLTA4LTMx
-IDIxOjMzOjQ0XSAgIGdmbjogMDAwMDViMTcgIG1mbjogMDAwMDViMTcNCg0KKFhFTikgWzIw
-MTItMDgtMzEgMjE6MzM6NDRdICAgZ2ZuOiAwMDAwNWIxOCAgbWZuOiAwMDAwNWIxOA0KDQoo
-WEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0NF0gICBnZm46IDAwMDA1YjE5ICBtZm46IDAwMDA1
-YjE5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQ0XSAgIGdmbjogMDAwMDViMWEgIG1m
-bjogMDAwMDViMWENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDRdICAgZ2ZuOiAwMDAw
-NWIxYiAgbWZuOiAwMDAwNWIxYg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0NF0gICBn
-Zm46IDAwMDA1YjFjICBtZm46IDAwMDA1YjFjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMz
-OjQ0XSAgIGdmbjogMDAwMDViMWQgIG1mbjogMDAwMDViMWQNCg0KKFhFTikgWzIwMTItMDgt
-MzEgMjE6MzM6NDRdICAgZ2ZuOiAwMDAwNWIxZSAgbWZuOiAwMDAwNWIxZQ0KDQooWEVOKSBb
-MjAxMi0wOC0zMSAyMTozMzo0NF0gICBnZm46IDAwMDA1YjFmICBtZm46IDAwMDA1YjFmDQoN
-CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQ0XSAgIGdmbjogMDAwMDViMjAgIG1mbjogMDAw
-MDViMjANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDRdICAgZ2ZuOiAwMDAwNWIyMSAg
-bWZuOiAwMDAwNWIyMQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0NF0gICBnZm46IDAw
-MDA1YjIyICBtZm46IDAwMDA1YjIyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQ0XSAg
-IGdmbjogMDAwMDViMjMgIG1mbjogMDAwMDViMjMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
-MzM6NDRdICAgZ2ZuOiAwMDAwNWIyNCAgbWZuOiAwMDAwNWIyNA0KDQooWEVOKSBbMjAxMi0w
-OC0zMSAyMTozMzo0NF0gICBnZm46IDAwMDA1YjI1ICBtZm46IDAwMDA1YjI1DQoNCihYRU4p
-IFsyMDEyLTA4LTMxIDIxOjMzOjQ0XSAgIGdmbjogMDAwMDViMjYgIG1mbjogMDAwMDViMjYN
-Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDRdICAgZ2ZuOiAwMDAwNWIyNyAgbWZuOiAw
-MDAwNWIyNw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0NF0gICBnZm46IDAwMDA1YjI4
-ICBtZm46IDAwMDA1YjI4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQ0XSAgIGdmbjog
-MDAwMDViMjkgIG1mbjogMDAwMDViMjkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDRd
-ICAgZ2ZuOiAwMDAwNWIyYSAgbWZuOiAwMDAwNWIyYQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
-MTozMzo0NF0gICBnZm46IDAwMDA1YjJiICBtZm46IDAwMDA1YjJiDQoNCihYRU4pIFsyMDEy
-LTA4LTMxIDIxOjMzOjQ0XSAgIGdmbjogMDAwMDViMmMgIG1mbjogMDAwMDViMmMNCg0KKFhF
-TikgWzIwMTItMDgtMzEgMjE6MzM6NDRdICAgZ2ZuOiAwMDAwNWIyZCAgbWZuOiAwMDAwNWIy
-ZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0NF0gICBnZm46IDAwMDA1YjJlICBtZm46
-IDAwMDA1YjJlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQ0XSAgIGdmbjogMDAwMDVi
-MmYgIG1mbjogMDAwMDViMmYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDRdICAgZ2Zu
-OiAwMDAwNWIzMCAgbWZuOiAwMDAwNWIzMA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0
-NF0gICBnZm46IDAwMDA1YjMxICBtZm46IDAwMDA1YjMxDQoNCihYRU4pIFsyMDEyLTA4LTMx
-IDIxOjMzOjQ0XSAgIGdmbjogMDAwMDViMzIgIG1mbjogMDAwMDViMzINCg0KKFhFTikgWzIw
-MTItMDgtMzEgMjE6MzM6NDRdICAgZ2ZuOiAwMDAwNWIzMyAgbWZuOiAwMDAwNWIzMw0KDQoo
-WEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0NF0gICBnZm46IDAwMDA1YjM0ICBtZm46IDAwMDA1
-YjM0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQ0XSAgIGdmbjogMDAwMDViMzUgIG1m
-bjogMDAwMDViMzUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDRdICAgZ2ZuOiAwMDAw
-NWIzNiAgbWZuOiAwMDAwNWIzNg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0NF0gICBn
-Zm46IDAwMDA1YjM3ICBtZm46IDAwMDA1YjM3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMz
-OjQ0XSAgIGdmbjogMDAwMDViMzggIG1mbjogMDAwMDViMzgNCg0KKFhFTikgWzIwMTItMDgt
-MzEgMjE6MzM6NDRdICAgZ2ZuOiAwMDAwNWIzOSAgbWZuOiAwMDAwNWIzOQ0KDQooWEVOKSBb
-MjAxMi0wOC0zMSAyMTozMzo0NF0gICBnZm46IDAwMDA1YjNhICBtZm46IDAwMDA1YjNhDQoN
-CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQ0XSAgIGdmbjogMDAwMDViM2IgIG1mbjogMDAw
-MDViM2INCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDRdICAgZ2ZuOiAwMDAwNWIzYyAg
-bWZuOiAwMDAwNWIzYw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0NF0gICBnZm46IDAw
-MDA1YjNkICBtZm46IDAwMDA1YjNkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQ0XSAg
-IGdmbjogMDAwMDViM2UgIG1mbjogMDAwMDViM2UNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
-MzM6NDRdICAgZ2ZuOiAwMDAwNWIzZiAgbWZuOiAwMDAwNWIzZg0KDQooWEVOKSBbMjAxMi0w
-OC0zMSAyMTozMzo0NF0gICBnZm46IDAwMDA1YjQwICBtZm46IDAwMDA1YjQwDQoNCihYRU4p
-IFsyMDEyLTA4LTMxIDIxOjMzOjQ0XSAgIGdmbjogMDAwMDViNDEgIG1mbjogMDAwMDViNDEN
-Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDRdICAgZ2ZuOiAwMDAwNWI0MiAgbWZuOiAw
-MDAwNWI0Mg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0NF0gICBnZm46IDAwMDA1YjQz
-ICBtZm46IDAwMDA1YjQzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQ0XSAgIGdmbjog
-MDAwMDViNDQgIG1mbjogMDAwMDViNDQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDRd
-ICAgZ2ZuOiAwMDAwNWI0NSAgbWZuOiAwMDAwNWI0NQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
-MTozMzo0NV0gICBnZm46IDAwMDA1YjQ2ICBtZm46IDAwMDA1YjQ2DQoNCihYRU4pIFsyMDEy
-LTA4LTMxIDIxOjMzOjQ1XSAgIGdmbjogMDAwMDViNDcgIG1mbjogMDAwMDViNDcNCg0KKFhF
-TikgWzIwMTItMDgtMzEgMjE6MzM6NDVdICAgZ2ZuOiAwMDAwNWI0OCAgbWZuOiAwMDAwNWI0
-OA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0NV0gICBnZm46IDAwMDA1YjQ5ICBtZm46
-IDAwMDA1YjQ5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQ1XSAgIGdmbjogMDAwMDVi
-NGEgIG1mbjogMDAwMDViNGENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDVdICAgZ2Zu
-OiAwMDAwNWI0YiAgbWZuOiAwMDAwNWI0Yg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0
-NV0gICBnZm46IDAwMDA1YjRjICBtZm46IDAwMDA1YjRjDQoNCihYRU4pIFsyMDEyLTA4LTMx
-IDIxOjMzOjQ1XSAgIGdmbjogMDAwMDViNGQgIG1mbjogMDAwMDViNGQNCg0KKFhFTikgWzIw
-MTItMDgtMzEgMjE6MzM6NDVdICAgZ2ZuOiAwMDAwNWI0ZSAgbWZuOiAwMDAwNWI0ZQ0KDQoo
-WEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0NV0gICBnZm46IDAwMDA1YjRmICBtZm46IDAwMDA1
-YjRmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQ1XSAgIGdmbjogMDAwMDViNTAgIG1m
-bjogMDAwMDViNTANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDVdICAgZ2ZuOiAwMDAw
-NWI1MSAgbWZuOiAwMDAwNWI1MQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0NV0gICBn
-Zm46IDAwMDA1YjUyICBtZm46IDAwMDA1YjUyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMz
-OjQ1XSAgIGdmbjogMDAwMDViNTMgIG1mbjogMDAwMDViNTMNCg0KKFhFTikgWzIwMTItMDgt
-MzEgMjE6MzM6NDVdICAgZ2ZuOiAwMDAwNWI1NCAgbWZuOiAwMDAwNWI1NA0KDQooWEVOKSBb
-MjAxMi0wOC0zMSAyMTozMzo0NV0gICBnZm46IDAwMDA1YjU1ICBtZm46IDAwMDA1YjU1DQoN
-CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQ1XSAgIGdmbjogMDAwMDViNTYgIG1mbjogMDAw
-MDViNTYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDVdICAgZ2ZuOiAwMDAwNWI1NyAg
-bWZuOiAwMDAwNWI1Nw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0NV0gICBnZm46IDAw
-MDA1YjU4ICBtZm46IDAwMDA1YjU4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQ1XSAg
-IGdmbjogMDAwMDViNTkgIG1mbjogMDAwMDViNTkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
-MzM6NDVdICAgZ2ZuOiAwMDAwNWI1YSAgbWZuOiAwMDAwNWI1YQ0KDQooWEVOKSBbMjAxMi0w
-OC0zMSAyMTozMzo0NV0gICBnZm46IDAwMDA1YjViICBtZm46IDAwMDA1YjViDQoNCihYRU4p
-IFsyMDEyLTA4LTMxIDIxOjMzOjQ1XSAgIGdmbjogMDAwMDViNWMgIG1mbjogMDAwMDViNWMN
-Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDVdICAgZ2ZuOiAwMDAwNWI1ZCAgbWZuOiAw
-MDAwNWI1ZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0NV0gICBnZm46IDAwMDA1YjVl
-ICBtZm46IDAwMDA1YjVlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQ1XSAgIGdmbjog
-MDAwMDViNWYgIG1mbjogMDAwMDViNWYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDVd
-ICAgZ2ZuOiAwMDAwNWI2MCAgbWZuOiAwMDAwNWI2MA0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
-MTozMzo0NV0gICBnZm46IDAwMDA1YjYxICBtZm46IDAwMDA1YjYxDQoNCihYRU4pIFsyMDEy
-LTA4LTMxIDIxOjMzOjQ1XSAgIGdmbjogMDAwMDViNjIgIG1mbjogMDAwMDViNjINCg0KKFhF
-TikgWzIwMTItMDgtMzEgMjE6MzM6NDVdICAgZ2ZuOiAwMDAwNWI2MyAgbWZuOiAwMDAwNWI2
-Mw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0NV0gICBnZm46IDAwMDA1YjY0ICBtZm46
-IDAwMDA1YjY0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQ1XSAgIGdmbjogMDAwMDVi
-NjUgIG1mbjogMDAwMDViNjUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDVdICAgZ2Zu
-OiAwMDAwNWI2NiAgbWZuOiAwMDAwNWI2Ng0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0
-NV0gICBnZm46IDAwMDA1YjY3ICBtZm46IDAwMDA1YjY3DQoNCihYRU4pIFsyMDEyLTA4LTMx
-IDIxOjMzOjQ1XSAgIGdmbjogMDAwMDViNjggIG1mbjogMDAwMDViNjgNCg0KKFhFTikgWzIw
-MTItMDgtMzEgMjE6MzM6NDVdICAgZ2ZuOiAwMDAwNWI2OSAgbWZuOiAwMDAwNWI2OQ0KDQoo
-WEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0NV0gICBnZm46IDAwMDA1YjZhICBtZm46IDAwMDA1
-YjZhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQ1XSAgIGdmbjogMDAwMDViNmIgIG1m
-bjogMDAwMDViNmINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDVdICAgZ2ZuOiAwMDAw
-NWI2YyAgbWZuOiAwMDAwNWI2Yw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0NV0gICBn
-Zm46IDAwMDA1YjZkICBtZm46IDAwMDA1YjZkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMz
-OjQ1XSAgIGdmbjogMDAwMDViNmUgIG1mbjogMDAwMDViNmUNCg0KKFhFTikgWzIwMTItMDgt
-MzEgMjE6MzM6NDVdICAgZ2ZuOiAwMDAwNWI2ZiAgbWZuOiAwMDAwNWI2Zg0KDQooWEVOKSBb
-MjAxMi0wOC0zMSAyMTozMzo0NV0gICBnZm46IDAwMDA1YjcwICBtZm46IDAwMDA1YjcwDQoN
-CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQ1XSAgIGdmbjogMDAwMDViNzEgIG1mbjogMDAw
-MDViNzENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDVdICAgZ2ZuOiAwMDAwNWI3MiAg
-bWZuOiAwMDAwNWI3Mg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0NV0gICBnZm46IDAw
-MDA1YjczICBtZm46IDAwMDA1YjczDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQ1XSAg
-IGdmbjogMDAwMDViNzQgIG1mbjogMDAwMDViNzQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
-MzM6NDVdICAgZ2ZuOiAwMDAwNWI3NSAgbWZuOiAwMDAwNWI3NQ0KDQooWEVOKSBbMjAxMi0w
-OC0zMSAyMTozMzo0NV0gICBnZm46IDAwMDA1Yjc2ICBtZm46IDAwMDA1Yjc2DQoNCihYRU4p
-IFsyMDEyLTA4LTMxIDIxOjMzOjQ1XSAgIGdmbjogMDAwMDViNzcgIG1mbjogMDAwMDViNzcN
-Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDVdICAgZ2ZuOiAwMDAwNWI3OCAgbWZuOiAw
-MDAwNWI3OA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0NV0gICBnZm46IDAwMDA1Yjc5
-ICBtZm46IDAwMDA1Yjc5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQ1XSAgIGdmbjog
-MDAwMDViN2EgIG1mbjogMDAwMDViN2ENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDVd
-ICAgZ2ZuOiAwMDAwNWI3YiAgbWZuOiAwMDAwNWI3Yg0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
-MTozMzo0NV0gICBnZm46IDAwMDA1YjdjICBtZm46IDAwMDA1YjdjDQoNCihYRU4pIFsyMDEy
-LTA4LTMxIDIxOjMzOjQ1XSAgIGdmbjogMDAwMDViN2QgIG1mbjogMDAwMDViN2QNCg0KKFhF
-TikgWzIwMTItMDgtMzEgMjE6MzM6NDVdICAgZ2ZuOiAwMDAwNWI3ZSAgbWZuOiAwMDAwNWI3
-ZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0NV0gICBnZm46IDAwMDA1YjdmICBtZm46
-IDAwMDA1YjdmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQ1XSAgIGdmbjogMDAwMDVi
-ODAgIG1mbjogMDAwMDViODANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDVdICAgZ2Zu
-OiAwMDAwNWI4MSAgbWZuOiAwMDAwNWI4MQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0
-NV0gICBnZm46IDAwMDA1YjgyICBtZm46IDAwMDA1YjgyDQoNCihYRU4pIFsyMDEyLTA4LTMx
-IDIxOjMzOjQ1XSAgIGdmbjogMDAwMDViODMgIG1mbjogMDAwMDViODMNCg0KKFhFTikgWzIw
-MTItMDgtMzEgMjE6MzM6NDVdICAgZ2ZuOiAwMDAwNWI4NCAgbWZuOiAwMDAwNWI4NA0KDQoo
-WEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0NV0gICBnZm46IDAwMDA1Yjg1ICBtZm46IDAwMDA1
-Yjg1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQ2XSAgIGdmbjogMDAwMDViODYgIG1m
-bjogMDAwMDViODYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDZdICAgZ2ZuOiAwMDAw
-NWI4NyAgbWZuOiAwMDAwNWI4Nw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0Nl0gICBn
-Zm46IDAwMDA1Yjg4ICBtZm46IDAwMDA1Yjg4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMz
-OjQ2XSAgIGdmbjogMDAwMDViODkgIG1mbjogMDAwMDViODkNCg0KKFhFTikgWzIwMTItMDgt
-MzEgMjE6MzM6NDZdICAgZ2ZuOiAwMDAwNWI4YSAgbWZuOiAwMDAwNWI4YQ0KDQooWEVOKSBb
-MjAxMi0wOC0zMSAyMTozMzo0Nl0gICBnZm46IDAwMDA1YjhiICBtZm46IDAwMDA1YjhiDQoN
-CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQ2XSAgIGdmbjogMDAwMDViOGMgIG1mbjogMDAw
-MDViOGMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDZdICAgZ2ZuOiAwMDAwNWI4ZCAg
-bWZuOiAwMDAwNWI4ZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0Nl0gICBnZm46IDAw
-MDA1YjhlICBtZm46IDAwMDA1YjhlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQ2XSAg
-IGdmbjogMDAwMDViOGYgIG1mbjogMDAwMDViOGYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
-MzM6NDZdICAgZ2ZuOiAwMDAwNWI5MCAgbWZuOiAwMDAwNWI5MA0KDQooWEVOKSBbMjAxMi0w
-OC0zMSAyMTozMzo0Nl0gICBnZm46IDAwMDA1YjkxICBtZm46IDAwMDA1YjkxDQoNCihYRU4p
-IFsyMDEyLTA4LTMxIDIxOjMzOjQ2XSAgIGdmbjogMDAwMDViOTIgIG1mbjogMDAwMDViOTIN
-Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDZdICAgZ2ZuOiAwMDAwNWI5MyAgbWZuOiAw
-MDAwNWI5Mw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0Nl0gICBnZm46IDAwMDA1Yjk0
-ICBtZm46IDAwMDA1Yjk0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQ2XSAgIGdmbjog
-MDAwMDViOTUgIG1mbjogMDAwMDViOTUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDZd
-ICAgZ2ZuOiAwMDAwNWI5NiAgbWZuOiAwMDAwNWI5Ng0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
-MTozMzo0Nl0gICBnZm46IDAwMDA1Yjk3ICBtZm46IDAwMDA1Yjk3DQoNCihYRU4pIFsyMDEy
-LTA4LTMxIDIxOjMzOjQ2XSAgIGdmbjogMDAwMDViOTggIG1mbjogMDAwMDViOTgNCg0KKFhF
-TikgWzIwMTItMDgtMzEgMjE6MzM6NDZdICAgZ2ZuOiAwMDAwNWI5OSAgbWZuOiAwMDAwNWI5
-OQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0Nl0gICBnZm46IDAwMDA1YjlhICBtZm46
-IDAwMDA1YjlhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQ2XSAgIGdmbjogMDAwMDVi
-OWIgIG1mbjogMDAwMDViOWINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDZdICAgZ2Zu
-OiAwMDAwNWI5YyAgbWZuOiAwMDAwNWI5Yw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0
-Nl0gICBnZm46IDAwMDA1YjlkICBtZm46IDAwMDA1YjlkDQoNCihYRU4pIFsyMDEyLTA4LTMx
-IDIxOjMzOjQ2XSAgIGdmbjogMDAwMDViOWUgIG1mbjogMDAwMDViOWUNCg0KKFhFTikgWzIw
-MTItMDgtMzEgMjE6MzM6NDZdICAgZ2ZuOiAwMDAwNWI5ZiAgbWZuOiAwMDAwNWI5Zg0KDQoo
-WEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0Nl0gICBnZm46IDAwMDA1YmEwICBtZm46IDAwMDA1
-YmEwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQ2XSAgIGdmbjogMDAwMDViYTEgIG1m
-bjogMDAwMDViYTENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDZdICAgZ2ZuOiAwMDAw
-NWJhMiAgbWZuOiAwMDAwNWJhMg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0Nl0gICBn
-Zm46IDAwMDA1YmEzICBtZm46IDAwMDA1YmEzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMz
-OjQ2XSAgIGdmbjogMDAwMDViYTQgIG1mbjogMDAwMDViYTQNCg0KKFhFTikgWzIwMTItMDgt
-MzEgMjE6MzM6NDZdICAgZ2ZuOiAwMDAwNWJhNSAgbWZuOiAwMDAwNWJhNQ0KDQooWEVOKSBb
-MjAxMi0wOC0zMSAyMTozMzo0Nl0gICBnZm46IDAwMDA1YmE2ICBtZm46IDAwMDA1YmE2DQoN
-CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQ2XSAgIGdmbjogMDAwMDViYTcgIG1mbjogMDAw
-MDViYTcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDZdICAgZ2ZuOiAwMDAwNWJhOCAg
-bWZuOiAwMDAwNWJhOA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0Nl0gICBnZm46IDAw
-MDA1YmE5ICBtZm46IDAwMDA1YmE5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQ2XSAg
-IGdmbjogMDAwMDViYWEgIG1mbjogMDAwMDViYWENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
-MzM6NDZdICAgZ2ZuOiAwMDAwNWJhYiAgbWZuOiAwMDAwNWJhYg0KDQooWEVOKSBbMjAxMi0w
-OC0zMSAyMTozMzo0Nl0gICBnZm46IDAwMDA1YmFjICBtZm46IDAwMDA1YmFjDQoNCihYRU4p
-IFsyMDEyLTA4LTMxIDIxOjMzOjQ2XSAgIGdmbjogMDAwMDViYWQgIG1mbjogMDAwMDViYWQN
-Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDZdICAgZ2ZuOiAwMDAwNWJhZSAgbWZuOiAw
-MDAwNWJhZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0Nl0gICBnZm46IDAwMDA1YmFm
-ICBtZm46IDAwMDA1YmFmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQ2XSAgIGdmbjog
-MDAwMDViYjAgIG1mbjogMDAwMDViYjANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDZd
-ICAgZ2ZuOiAwMDAwNWJiMSAgbWZuOiAwMDAwNWJiMQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
-MTozMzo0Nl0gICBnZm46IDAwMDA1YmIyICBtZm46IDAwMDA1YmIyDQoNCihYRU4pIFsyMDEy
-LTA4LTMxIDIxOjMzOjQ2XSAgIGdmbjogMDAwMDViYjMgIG1mbjogMDAwMDViYjMNCg0KKFhF
-TikgWzIwMTItMDgtMzEgMjE6MzM6NDZdICAgZ2ZuOiAwMDAwNWJiNCAgbWZuOiAwMDAwNWJi
-NA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0Nl0gICBnZm46IDAwMDA1YmI1ICBtZm46
-IDAwMDA1YmI1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQ2XSAgIGdmbjogMDAwMDVi
-YjYgIG1mbjogMDAwMDViYjYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDZdICAgZ2Zu
-OiAwMDAwNWJiNyAgbWZuOiAwMDAwNWJiNw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0
-Nl0gICBnZm46IDAwMDA1YmI4ICBtZm46IDAwMDA1YmI4DQoNCihYRU4pIFsyMDEyLTA4LTMx
-IDIxOjMzOjQ2XSAgIGdmbjogMDAwMDViYjkgIG1mbjogMDAwMDViYjkNCg0KKFhFTikgWzIw
-MTItMDgtMzEgMjE6MzM6NDZdICAgZ2ZuOiAwMDAwNWJiYSAgbWZuOiAwMDAwNWJiYQ0KDQoo
-WEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0Nl0gICBnZm46IDAwMDA1YmJiICBtZm46IDAwMDA1
-YmJiDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQ2XSAgIGdmbjogMDAwMDViYmMgIG1m
-bjogMDAwMDViYmMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDZdICAgZ2ZuOiAwMDAw
-NWJiZCAgbWZuOiAwMDAwNWJiZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0Nl0gICBn
-Zm46IDAwMDA1YmJlICBtZm46IDAwMDA1YmJlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMz
-OjQ2XSAgIGdmbjogMDAwMDViYmYgIG1mbjogMDAwMDViYmYNCg0KKFhFTikgWzIwMTItMDgt
-MzEgMjE6MzM6NDZdICAgZ2ZuOiAwMDAwNWJjMCAgbWZuOiAwMDAwNWJjMA0KDQooWEVOKSBb
-MjAxMi0wOC0zMSAyMTozMzo0Nl0gICBnZm46IDAwMDA1YmMxICBtZm46IDAwMDA1YmMxDQoN
-CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQ2XSAgIGdmbjogMDAwMDViYzIgIG1mbjogMDAw
-MDViYzINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDZdICAgZ2ZuOiAwMDAwNWJjMyAg
-bWZuOiAwMDAwNWJjMw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0Nl0gICBnZm46IDAw
-MDA1YmM0ICBtZm46IDAwMDA1YmM0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQ2XSAg
-IGdmbjogMDAwMDViYzUgIG1mbjogMDAwMDViYzUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
-MzM6NDddICAgZ2ZuOiAwMDAwNWJjNiAgbWZuOiAwMDAwNWJjNg0KDQooWEVOKSBbMjAxMi0w
-OC0zMSAyMTozMzo0N10gICBnZm46IDAwMDA1YmM3ICBtZm46IDAwMDA1YmM3DQoNCihYRU4p
-IFsyMDEyLTA4LTMxIDIxOjMzOjQ3XSAgIGdmbjogMDAwMDViYzggIG1mbjogMDAwMDViYzgN
-Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDddICAgZ2ZuOiAwMDAwNWJjOSAgbWZuOiAw
-MDAwNWJjOQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0N10gICBnZm46IDAwMDA1YmNh
-ICBtZm46IDAwMDA1YmNhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQ3XSAgIGdmbjog
-MDAwMDViY2IgIG1mbjogMDAwMDViY2INCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDdd
-ICAgZ2ZuOiAwMDAwNWJjYyAgbWZuOiAwMDAwNWJjYw0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
-MTozMzo0N10gICBnZm46IDAwMDA1YmNkICBtZm46IDAwMDA1YmNkDQoNCihYRU4pIFsyMDEy
-LTA4LTMxIDIxOjMzOjQ3XSAgIGdmbjogMDAwMDViY2UgIG1mbjogMDAwMDViY2UNCg0KKFhF
-TikgWzIwMTItMDgtMzEgMjE6MzM6NDddICAgZ2ZuOiAwMDAwNWJjZiAgbWZuOiAwMDAwNWJj
-Zg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0N10gICBnZm46IDAwMDA1YmQwICBtZm46
-IDAwMDA1YmQwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQ3XSAgIGdmbjogMDAwMDVi
-ZDEgIG1mbjogMDAwMDViZDENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDddICAgZ2Zu
-OiAwMDAwNWJkMiAgbWZuOiAwMDAwNWJkMg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0
-N10gICBnZm46IDAwMDA1YmQzICBtZm46IDAwMDA1YmQzDQoNCihYRU4pIFsyMDEyLTA4LTMx
-IDIxOjMzOjQ3XSAgIGdmbjogMDAwMDViZDQgIG1mbjogMDAwMDViZDQNCg0KKFhFTikgWzIw
-MTItMDgtMzEgMjE6MzM6NDddICAgZ2ZuOiAwMDAwNWJkNSAgbWZuOiAwMDAwNWJkNQ0KDQoo
-WEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0N10gICBnZm46IDAwMDA1YmQ2ICBtZm46IDAwMDA1
-YmQ2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQ3XSAgIGdmbjogMDAwMDViZDcgIG1m
-bjogMDAwMDViZDcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDddICAgZ2ZuOiAwMDAw
-NWJkOCAgbWZuOiAwMDAwNWJkOA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0N10gICBn
-Zm46IDAwMDA1YmQ5ICBtZm46IDAwMDA1YmQ5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMz
-OjQ3XSAgIGdmbjogMDAwMDViZGEgIG1mbjogMDAwMDViZGENCg0KKFhFTikgWzIwMTItMDgt
-MzEgMjE6MzM6NDddICAgZ2ZuOiAwMDAwNWJkYiAgbWZuOiAwMDAwNWJkYg0KDQooWEVOKSBb
-MjAxMi0wOC0zMSAyMTozMzo0N10gICBnZm46IDAwMDA1YmRjICBtZm46IDAwMDA1YmRjDQoN
-CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQ3XSAgIGdmbjogMDAwMDViZGQgIG1mbjogMDAw
-MDViZGQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDddICAgZ2ZuOiAwMDAwNWJkZSAg
-bWZuOiAwMDAwNWJkZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0N10gICBnZm46IDAw
-MDA1YmRmICBtZm46IDAwMDA1YmRmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQ3XSAg
-IGdmbjogMDAwMDViZTAgIG1mbjogMDAwMDViZTANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
-MzM6NDddICAgZ2ZuOiAwMDAwNWJlMSAgbWZuOiAwMDAwNWJlMQ0KDQooWEVOKSBbMjAxMi0w
-OC0zMSAyMTozMzo0N10gICBnZm46IDAwMDA1YmUyICBtZm46IDAwMDA1YmUyDQoNCihYRU4p
-IFsyMDEyLTA4LTMxIDIxOjMzOjQ3XSAgIGdmbjogMDAwMDViZTMgIG1mbjogMDAwMDViZTMN
-Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDddICAgZ2ZuOiAwMDAwNWJlNCAgbWZuOiAw
-MDAwNWJlNA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0N10gICBnZm46IDAwMDA1YmU1
-ICBtZm46IDAwMDA1YmU1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQ3XSAgIGdmbjog
-MDAwMDViZTYgIG1mbjogMDAwMDViZTYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDdd
-ICAgZ2ZuOiAwMDAwNWJlNyAgbWZuOiAwMDAwNWJlNw0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
-MTozMzo0N10gICBnZm46IDAwMDA1YmU4ICBtZm46IDAwMDA1YmU4DQoNCihYRU4pIFsyMDEy
-LTA4LTMxIDIxOjMzOjQ3XSAgIGdmbjogMDAwMDViZTkgIG1mbjogMDAwMDViZTkNCg0KKFhF
-TikgWzIwMTItMDgtMzEgMjE6MzM6NDddICAgZ2ZuOiAwMDAwNWJlYSAgbWZuOiAwMDAwNWJl
-YQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0N10gICBnZm46IDAwMDA1YmViICBtZm46
-IDAwMDA1YmViDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQ3XSAgIGdmbjogMDAwMDVi
-ZWMgIG1mbjogMDAwMDViZWMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDddICAgZ2Zu
-OiAwMDAwNWJlZCAgbWZuOiAwMDAwNWJlZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0
-N10gICBnZm46IDAwMDA1YmVlICBtZm46IDAwMDA1YmVlDQoNCihYRU4pIFsyMDEyLTA4LTMx
-IDIxOjMzOjQ3XSAgIGdmbjogMDAwMDViZWYgIG1mbjogMDAwMDViZWYNCg0KKFhFTikgWzIw
-MTItMDgtMzEgMjE6MzM6NDddICAgZ2ZuOiAwMDAwNWJmMCAgbWZuOiAwMDAwNWJmMA0KDQoo
-WEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0N10gICBnZm46IDAwMDA1YmYxICBtZm46IDAwMDA1
-YmYxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQ3XSAgIGdmbjogMDAwMDViZjIgIG1m
-bjogMDAwMDViZjINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDddICAgZ2ZuOiAwMDAw
-NWJmMyAgbWZuOiAwMDAwNWJmMw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0N10gICBn
-Zm46IDAwMDA1YmY0ICBtZm46IDAwMDA1YmY0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMz
-OjQ3XSAgIGdmbjogMDAwMDViZjUgIG1mbjogMDAwMDViZjUNCg0KKFhFTikgWzIwMTItMDgt
-MzEgMjE6MzM6NDddICAgZ2ZuOiAwMDAwNWJmNiAgbWZuOiAwMDAwNWJmNg0KDQooWEVOKSBb
-MjAxMi0wOC0zMSAyMTozMzo0N10gICBnZm46IDAwMDA1YmY3ICBtZm46IDAwMDA1YmY3DQoN
-CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQ3XSAgIGdmbjogMDAwMDViZjggIG1mbjogMDAw
-MDViZjgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDddICAgZ2ZuOiAwMDAwNWJmOSAg
-bWZuOiAwMDAwNWJmOQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0N10gICBnZm46IDAw
-MDA1YmZhICBtZm46IDAwMDA1YmZhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQ3XSAg
-IGdmbjogMDAwMDViZmIgIG1mbjogMDAwMDViZmINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
-MzM6NDddICAgZ2ZuOiAwMDAwNWJmYyAgbWZuOiAwMDAwNWJmYw0KDQooWEVOKSBbMjAxMi0w
-OC0zMSAyMTozMzo0N10gICBnZm46IDAwMDA1YmZkICBtZm46IDAwMDA1YmZkDQoNCihYRU4p
-IFsyMDEyLTA4LTMxIDIxOjMzOjQ3XSAgIGdmbjogMDAwMDViZmUgIG1mbjogMDAwMDViZmUN
-Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDddICAgZ2ZuOiAwMDAwNWJmZiAgbWZuOiAw
-MDAwNWJmZg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0N10gICBnZm46IDAwMDA1YzAw
-ICBtZm46IDAwMDA1YzAwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQ3XSAgIGdmbjog
-MDAwMDVjMDEgIG1mbjogMDAwMDVjMDENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDdd
-ICAgZ2ZuOiAwMDAwNWMwMiAgbWZuOiAwMDAwNWMwMg0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
-MTozMzo0N10gICBnZm46IDAwMDA1YzAzICBtZm46IDAwMDA1YzAzDQoNCihYRU4pIFsyMDEy
-LTA4LTMxIDIxOjMzOjQ3XSAgIGdmbjogMDAwMDVjMDQgIG1mbjogMDAwMDVjMDQNCg0KKFhF
-TikgWzIwMTItMDgtMzEgMjE6MzM6NDddICAgZ2ZuOiAwMDAwNWMwNSAgbWZuOiAwMDAwNWMw
-NQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0OF0gICBnZm46IDAwMDA1YzA2ICBtZm46
-IDAwMDA1YzA2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQ4XSAgIGdmbjogMDAwMDVj
-MDcgIG1mbjogMDAwMDVjMDcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDhdICAgZ2Zu
-OiAwMDAwNWMwOCAgbWZuOiAwMDAwNWMwOA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0
-OF0gICBnZm46IDAwMDA1YzA5ICBtZm46IDAwMDA1YzA5DQoNCihYRU4pIFsyMDEyLTA4LTMx
-IDIxOjMzOjQ4XSAgIGdmbjogMDAwMDVjMGEgIG1mbjogMDAwMDVjMGENCg0KKFhFTikgWzIw
-MTItMDgtMzEgMjE6MzM6NDhdICAgZ2ZuOiAwMDAwNWMwYiAgbWZuOiAwMDAwNWMwYg0KDQoo
-WEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0OF0gICBnZm46IDAwMDA1YzBjICBtZm46IDAwMDA1
-YzBjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQ4XSAgIGdmbjogMDAwMDVjMGQgIG1m
-bjogMDAwMDVjMGQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDhdICAgZ2ZuOiAwMDAw
-NWMwZSAgbWZuOiAwMDAwNWMwZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0OF0gICBn
-Zm46IDAwMDA1YzBmICBtZm46IDAwMDA1YzBmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMz
-OjQ4XSAgIGdmbjogMDAwMDVjMTAgIG1mbjogMDAwMDVjMTANCg0KKFhFTikgWzIwMTItMDgt
-MzEgMjE6MzM6NDhdICAgZ2ZuOiAwMDAwNWMxMSAgbWZuOiAwMDAwNWMxMQ0KDQooWEVOKSBb
-MjAxMi0wOC0zMSAyMTozMzo0OF0gICBnZm46IDAwMDA1YzEyICBtZm46IDAwMDA1YzEyDQoN
-CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQ4XSAgIGdmbjogMDAwMDVjMTMgIG1mbjogMDAw
-MDVjMTMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDhdICAgZ2ZuOiAwMDAwNWMxNCAg
-bWZuOiAwMDAwNWMxNA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0OF0gICBnZm46IDAw
-MDA1YzE1ICBtZm46IDAwMDA1YzE1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQ4XSAg
-IGdmbjogMDAwMDVjMTYgIG1mbjogMDAwMDVjMTYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
-MzM6NDhdICAgZ2ZuOiAwMDAwNWMxNyAgbWZuOiAwMDAwNWMxNw0KDQooWEVOKSBbMjAxMi0w
-OC0zMSAyMTozMzo0OF0gICBnZm46IDAwMDA1YzE4ICBtZm46IDAwMDA1YzE4DQoNCihYRU4p
-IFsyMDEyLTA4LTMxIDIxOjMzOjQ4XSAgIGdmbjogMDAwMDVjMTkgIG1mbjogMDAwMDVjMTkN
-Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDhdICAgZ2ZuOiAwMDAwNWMxYSAgbWZuOiAw
-MDAwNWMxYQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0OF0gICBnZm46IDAwMDA1YzFi
-ICBtZm46IDAwMDA1YzFiDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQ4XSAgIGdmbjog
-MDAwMDVjMWMgIG1mbjogMDAwMDVjMWMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDhd
-ICAgZ2ZuOiAwMDAwNWMxZCAgbWZuOiAwMDAwNWMxZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
-MTozMzo0OF0gICBnZm46IDAwMDA1YzFlICBtZm46IDAwMDA1YzFlDQoNCihYRU4pIFsyMDEy
-LTA4LTMxIDIxOjMzOjQ4XSAgIGdmbjogMDAwMDVjMWYgIG1mbjogMDAwMDVjMWYNCg0KKFhF
-TikgWzIwMTItMDgtMzEgMjE6MzM6NDhdICAgZ2ZuOiAwMDAwNWMyMCAgbWZuOiAwMDAwNWMy
-MA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0OF0gICBnZm46IDAwMDA1YzIxICBtZm46
-IDAwMDA1YzIxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQ4XSAgIGdmbjogMDAwMDVj
-MjIgIG1mbjogMDAwMDVjMjINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDhdICAgZ2Zu
-OiAwMDAwNWMyMyAgbWZuOiAwMDAwNWMyMw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0
-OF0gICBnZm46IDAwMDA1YzI0ICBtZm46IDAwMDA1YzI0DQoNCihYRU4pIFsyMDEyLTA4LTMx
-IDIxOjMzOjQ4XSAgIGdmbjogMDAwMDVjMjUgIG1mbjogMDAwMDVjMjUNCg0KKFhFTikgWzIw
-MTItMDgtMzEgMjE6MzM6NDhdICAgZ2ZuOiAwMDAwNWMyNiAgbWZuOiAwMDAwNWMyNg0KDQoo
-WEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0OF0gICBnZm46IDAwMDA1YzI3ICBtZm46IDAwMDA1
-YzI3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQ4XSAgIGdmbjogMDAwMDVjMjggIG1m
-bjogMDAwMDVjMjgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDhdICAgZ2ZuOiAwMDAw
-NWMyOSAgbWZuOiAwMDAwNWMyOQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0OF0gICBn
-Zm46IDAwMDA1YzJhICBtZm46IDAwMDA1YzJhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMz
-OjQ4XSAgIGdmbjogMDAwMDVjMmIgIG1mbjogMDAwMDVjMmINCg0KKFhFTikgWzIwMTItMDgt
-MzEgMjE6MzM6NDhdICAgZ2ZuOiAwMDAwNWMyYyAgbWZuOiAwMDAwNWMyYw0KDQooWEVOKSBb
-MjAxMi0wOC0zMSAyMTozMzo0OF0gICBnZm46IDAwMDA1YzJkICBtZm46IDAwMDA1YzJkDQoN
-CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQ4XSAgIGdmbjogMDAwMDVjMmUgIG1mbjogMDAw
-MDVjMmUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDhdICAgZ2ZuOiAwMDAwNWMyZiAg
-bWZuOiAwMDAwNWMyZg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0OF0gICBnZm46IDAw
-MDA1YzMwICBtZm46IDAwMDA1YzMwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQ4XSAg
-IGdmbjogMDAwMDVjMzEgIG1mbjogMDAwMDVjMzENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
-MzM6NDhdICAgZ2ZuOiAwMDAwNWMzMiAgbWZuOiAwMDAwNWMzMg0KDQooWEVOKSBbMjAxMi0w
-OC0zMSAyMTozMzo0OF0gICBnZm46IDAwMDA1YzMzICBtZm46IDAwMDA1YzMzDQoNCihYRU4p
-IFsyMDEyLTA4LTMxIDIxOjMzOjQ4XSAgIGdmbjogMDAwMDVjMzQgIG1mbjogMDAwMDVjMzQN
-Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDhdICAgZ2ZuOiAwMDAwNWMzNSAgbWZuOiAw
-MDAwNWMzNQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0OF0gICBnZm46IDAwMDA1YzM2
-ICBtZm46IDAwMDA1YzM2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQ4XSAgIGdmbjog
-MDAwMDVjMzcgIG1mbjogMDAwMDVjMzcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDhd
-ICAgZ2ZuOiAwMDAwNWMzOCAgbWZuOiAwMDAwNWMzOA0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
-MTozMzo0OF0gICBnZm46IDAwMDA1YzM5ICBtZm46IDAwMDA1YzM5DQoNCihYRU4pIFsyMDEy
-LTA4LTMxIDIxOjMzOjQ4XSAgIGdmbjogMDAwMDVjM2EgIG1mbjogMDAwMDVjM2ENCg0KKFhF
-TikgWzIwMTItMDgtMzEgMjE6MzM6NDhdICAgZ2ZuOiAwMDAwNWMzYiAgbWZuOiAwMDAwNWMz
-Yg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0OF0gICBnZm46IDAwMDA1YzNjICBtZm46
-IDAwMDA1YzNjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQ4XSAgIGdmbjogMDAwMDVj
-M2QgIG1mbjogMDAwMDVjM2QNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDhdICAgZ2Zu
-OiAwMDAwNWMzZSAgbWZuOiAwMDAwNWMzZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0
-OF0gICBnZm46IDAwMDA1YzNmICBtZm46IDAwMDA1YzNmDQoNCihYRU4pIFsyMDEyLTA4LTMx
-IDIxOjMzOjQ4XSAgIGdmbjogMDAwMDVjNDAgIG1mbjogMDAwMDVjNDANCg0KKFhFTikgWzIw
-MTItMDgtMzEgMjE6MzM6NDhdICAgZ2ZuOiAwMDAwNWM0MSAgbWZuOiAwMDAwNWM0MQ0KDQoo
-WEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0OF0gICBnZm46IDAwMDA1YzQyICBtZm46IDAwMDA1
-YzQyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQ4XSAgIGdmbjogMDAwMDVjNDMgIG1m
-bjogMDAwMDVjNDMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDhdICAgZ2ZuOiAwMDAw
-NWM0NCAgbWZuOiAwMDAwNWM0NA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0OF0gICBn
-Zm46IDAwMDA1YzQ1ICBtZm46IDAwMDA1YzQ1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMz
-OjQ5XSAgIGdmbjogMDAwMDVjNDYgIG1mbjogMDAwMDVjNDYNCg0KKFhFTikgWzIwMTItMDgt
-MzEgMjE6MzM6NDldICAgZ2ZuOiAwMDAwNWM0NyAgbWZuOiAwMDAwNWM0Nw0KDQooWEVOKSBb
-MjAxMi0wOC0zMSAyMTozMzo0OV0gICBnZm46IDAwMDA1YzQ4ICBtZm46IDAwMDA1YzQ4DQoN
-CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQ5XSAgIGdmbjogMDAwMDVjNDkgIG1mbjogMDAw
-MDVjNDkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDldICAgZ2ZuOiAwMDAwNWM0YSAg
-bWZuOiAwMDAwNWM0YQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0OV0gICBnZm46IDAw
-MDA1YzRiICBtZm46IDAwMDA1YzRiDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQ5XSAg
-IGdmbjogMDAwMDVjNGMgIG1mbjogMDAwMDVjNGMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
-MzM6NDldICAgZ2ZuOiAwMDAwNWM0ZCAgbWZuOiAwMDAwNWM0ZA0KDQooWEVOKSBbMjAxMi0w
-OC0zMSAyMTozMzo0OV0gICBnZm46IDAwMDA1YzRlICBtZm46IDAwMDA1YzRlDQoNCihYRU4p
-IFsyMDEyLTA4LTMxIDIxOjMzOjQ5XSAgIGdmbjogMDAwMDVjNGYgIG1mbjogMDAwMDVjNGYN
-Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDldICAgZ2ZuOiAwMDAwNWM1MCAgbWZuOiAw
-MDAwNWM1MA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0OV0gICBnZm46IDAwMDA1YzUx
-ICBtZm46IDAwMDA1YzUxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQ5XSAgIGdmbjog
-MDAwMDVjNTIgIG1mbjogMDAwMDVjNTINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDld
-ICAgZ2ZuOiAwMDAwNWM1MyAgbWZuOiAwMDAwNWM1Mw0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
-MTozMzo0OV0gICBnZm46IDAwMDA1YzU0ICBtZm46IDAwMDA1YzU0DQoNCihYRU4pIFsyMDEy
-LTA4LTMxIDIxOjMzOjQ5XSAgIGdmbjogMDAwMDVjNTUgIG1mbjogMDAwMDVjNTUNCg0KKFhF
-TikgWzIwMTItMDgtMzEgMjE6MzM6NDldICAgZ2ZuOiAwMDAwNWM1NiAgbWZuOiAwMDAwNWM1
-Ng0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0OV0gICBnZm46IDAwMDA1YzU3ICBtZm46
-IDAwMDA1YzU3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQ5XSAgIGdmbjogMDAwMDVj
-NTggIG1mbjogMDAwMDVjNTgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDldICAgZ2Zu
-OiAwMDAwNWM1OSAgbWZuOiAwMDAwNWM1OQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0
-OV0gICBnZm46IDAwMDA1YzVhICBtZm46IDAwMDA1YzVhDQoNCihYRU4pIFsyMDEyLTA4LTMx
-IDIxOjMzOjQ5XSAgIGdmbjogMDAwMDVjNWIgIG1mbjogMDAwMDVjNWINCg0KKFhFTikgWzIw
-MTItMDgtMzEgMjE6MzM6NDldICAgZ2ZuOiAwMDAwNWM1YyAgbWZuOiAwMDAwNWM1Yw0KDQoo
-WEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0OV0gICBnZm46IDAwMDA1YzVkICBtZm46IDAwMDA1
-YzVkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQ5XSAgIGdmbjogMDAwMDVjNWUgIG1m
-bjogMDAwMDVjNWUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDldICAgZ2ZuOiAwMDAw
-NWM1ZiAgbWZuOiAwMDAwNWM1Zg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0OV0gICBn
-Zm46IDAwMDA1YzYwICBtZm46IDAwMDA1YzYwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMz
-OjQ5XSAgIGdmbjogMDAwMDVjNjEgIG1mbjogMDAwMDVjNjENCg0KKFhFTikgWzIwMTItMDgt
-MzEgMjE6MzM6NDldICAgZ2ZuOiAwMDAwNWM2MiAgbWZuOiAwMDAwNWM2Mg0KDQooWEVOKSBb
-MjAxMi0wOC0zMSAyMTozMzo0OV0gICBnZm46IDAwMDA1YzYzICBtZm46IDAwMDA1YzYzDQoN
-CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQ5XSAgIGdmbjogMDAwMDVjNjQgIG1mbjogMDAw
-MDVjNjQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDldICAgZ2ZuOiAwMDAwNWM2NSAg
-bWZuOiAwMDAwNWM2NQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0OV0gICBnZm46IDAw
-MDA1YzY2ICBtZm46IDAwMDA1YzY2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQ5XSAg
-IGdmbjogMDAwMDVjNjcgIG1mbjogMDAwMDVjNjcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
-MzM6NDldICAgZ2ZuOiAwMDAwNWM2OCAgbWZuOiAwMDAwNWM2OA0KDQooWEVOKSBbMjAxMi0w
-OC0zMSAyMTozMzo0OV0gICBnZm46IDAwMDA1YzY5ICBtZm46IDAwMDA1YzY5DQoNCihYRU4p
-IFsyMDEyLTA4LTMxIDIxOjMzOjQ5XSAgIGdmbjogMDAwMDVjNmEgIG1mbjogMDAwMDVjNmEN
-Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDldICAgZ2ZuOiAwMDAwNWM2YiAgbWZuOiAw
-MDAwNWM2Yg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0OV0gICBnZm46IDAwMDA1YzZj
-ICBtZm46IDAwMDA1YzZjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQ5XSAgIGdmbjog
-MDAwMDVjNmQgIG1mbjogMDAwMDVjNmQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDld
-ICAgZ2ZuOiAwMDAwNWM2ZSAgbWZuOiAwMDAwNWM2ZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
-MTozMzo0OV0gICBnZm46IDAwMDA1YzZmICBtZm46IDAwMDA1YzZmDQoNCihYRU4pIFsyMDEy
-LTA4LTMxIDIxOjMzOjQ5XSAgIGdmbjogMDAwMDVjNzAgIG1mbjogMDAwMDVjNzANCg0KKFhF
-TikgWzIwMTItMDgtMzEgMjE6MzM6NDldICAgZ2ZuOiAwMDAwNWM3MSAgbWZuOiAwMDAwNWM3
-MQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0OV0gICBnZm46IDAwMDA1YzcyICBtZm46
-IDAwMDA1YzcyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQ5XSAgIGdmbjogMDAwMDVj
-NzMgIG1mbjogMDAwMDVjNzMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDldICAgZ2Zu
-OiAwMDAwNWM3NCAgbWZuOiAwMDAwNWM3NA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0
-OV0gICBnZm46IDAwMDA1Yzc1ICBtZm46IDAwMDA1Yzc1DQoNCihYRU4pIFsyMDEyLTA4LTMx
-IDIxOjMzOjQ5XSAgIGdmbjogMDAwMDVjNzYgIG1mbjogMDAwMDVjNzYNCg0KKFhFTikgWzIw
-MTItMDgtMzEgMjE6MzM6NDldICAgZ2ZuOiAwMDAwNWM3NyAgbWZuOiAwMDAwNWM3Nw0KDQoo
-WEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0OV0gICBnZm46IDAwMDA1Yzc4ICBtZm46IDAwMDA1
-Yzc4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQ5XSAgIGdmbjogMDAwMDVjNzkgIG1m
-bjogMDAwMDVjNzkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDldICAgZ2ZuOiAwMDAw
-NWM3YSAgbWZuOiAwMDAwNWM3YQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0OV0gICBn
-Zm46IDAwMDA1YzdiICBtZm46IDAwMDA1YzdiDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMz
-OjQ5XSAgIGdmbjogMDAwMDVjN2MgIG1mbjogMDAwMDVjN2MNCg0KKFhFTikgWzIwMTItMDgt
-MzEgMjE6MzM6NDldICAgZ2ZuOiAwMDAwNWM3ZCAgbWZuOiAwMDAwNWM3ZA0KDQooWEVOKSBb
-MjAxMi0wOC0zMSAyMTozMzo0OV0gICBnZm46IDAwMDA1YzdlICBtZm46IDAwMDA1YzdlDQoN
-CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQ5XSAgIGdmbjogMDAwMDVjN2YgIG1mbjogMDAw
-MDVjN2YNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDldICAgZ2ZuOiAwMDAwNWM4MCAg
-bWZuOiAwMDAwNWM4MA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo0OV0gICBnZm46IDAw
-MDA1YzgxICBtZm46IDAwMDA1YzgxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjQ5XSAg
-IGdmbjogMDAwMDVjODIgIG1mbjogMDAwMDVjODINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
-MzM6NDldICAgZ2ZuOiAwMDAwNWM4MyAgbWZuOiAwMDAwNWM4Mw0KDQooWEVOKSBbMjAxMi0w
-OC0zMSAyMTozMzo0OV0gICBnZm46IDAwMDA1Yzg0ICBtZm46IDAwMDA1Yzg0DQoNCihYRU4p
-IFsyMDEyLTA4LTMxIDIxOjMzOjQ5XSAgIGdmbjogMDAwMDVjODUgIG1mbjogMDAwMDVjODUN
-Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NDldICAgZ2ZuOiAwMDAwNWM4NiAgbWZuOiAw
-MDAwNWM4Ng0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1MF0gICBnZm46IDAwMDA1Yzg3
-ICBtZm46IDAwMDA1Yzg3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjUwXSAgIGdmbjog
-MDAwMDVjODggIG1mbjogMDAwMDVjODgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTBd
-ICAgZ2ZuOiAwMDAwNWM4OSAgbWZuOiAwMDAwNWM4OQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
-MTozMzo1MF0gICBnZm46IDAwMDA1YzhhICBtZm46IDAwMDA1YzhhDQoNCihYRU4pIFsyMDEy
-LTA4LTMxIDIxOjMzOjUwXSAgIGdmbjogMDAwMDVjOGIgIG1mbjogMDAwMDVjOGINCg0KKFhF
-TikgWzIwMTItMDgtMzEgMjE6MzM6NTBdICAgZ2ZuOiAwMDAwNWM4YyAgbWZuOiAwMDAwNWM4
-Yw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1MF0gICBnZm46IDAwMDA1YzhkICBtZm46
-IDAwMDA1YzhkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjUwXSAgIGdmbjogMDAwMDVj
-OGUgIG1mbjogMDAwMDVjOGUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTBdICAgZ2Zu
-OiAwMDAwNWM4ZiAgbWZuOiAwMDAwNWM4Zg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1
-MF0gICBnZm46IDAwMDA1YzkwICBtZm46IDAwMDA1YzkwDQoNCihYRU4pIFsyMDEyLTA4LTMx
-IDIxOjMzOjUwXSAgIGdmbjogMDAwMDVjOTEgIG1mbjogMDAwMDVjOTENCg0KKFhFTikgWzIw
-MTItMDgtMzEgMjE6MzM6NTBdICAgZ2ZuOiAwMDAwNWM5MiAgbWZuOiAwMDAwNWM5Mg0KDQoo
-WEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1MF0gICBnZm46IDAwMDA1YzkzICBtZm46IDAwMDA1
-YzkzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjUwXSAgIGdmbjogMDAwMDVjOTQgIG1m
-bjogMDAwMDVjOTQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTBdICAgZ2ZuOiAwMDAw
-NWM5NSAgbWZuOiAwMDAwNWM5NQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1MF0gICBn
-Zm46IDAwMDA1Yzk2ICBtZm46IDAwMDA1Yzk2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMz
-OjUwXSAgIGdmbjogMDAwMDVjOTcgIG1mbjogMDAwMDVjOTcNCg0KKFhFTikgWzIwMTItMDgt
-MzEgMjE6MzM6NTBdICAgZ2ZuOiAwMDAwNWM5OCAgbWZuOiAwMDAwNWM5OA0KDQooWEVOKSBb
-MjAxMi0wOC0zMSAyMTozMzo1MF0gICBnZm46IDAwMDA1Yzk5ICBtZm46IDAwMDA1Yzk5DQoN
-CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjUwXSAgIGdmbjogMDAwMDVjOWEgIG1mbjogMDAw
-MDVjOWENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTBdICAgZ2ZuOiAwMDAwNWM5YiAg
-bWZuOiAwMDAwNWM5Yg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1MF0gICBnZm46IDAw
-MDA1YzljICBtZm46IDAwMDA1YzljDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjUwXSAg
-IGdmbjogMDAwMDVjOWQgIG1mbjogMDAwMDVjOWQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
-MzM6NTBdICAgZ2ZuOiAwMDAwNWM5ZSAgbWZuOiAwMDAwNWM5ZQ0KDQooWEVOKSBbMjAxMi0w
-OC0zMSAyMTozMzo1MF0gICBnZm46IDAwMDA1YzlmICBtZm46IDAwMDA1YzlmDQoNCihYRU4p
-IFsyMDEyLTA4LTMxIDIxOjMzOjUwXSAgIGdmbjogMDAwMDVjYTAgIG1mbjogMDAwMDVjYTAN
-Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTBdICAgZ2ZuOiAwMDAwNWNhMSAgbWZuOiAw
-MDAwNWNhMQ0KDQpbICA0OTYuNDE4NjcxXSBhKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTBd
-ICAgZ2ZuOiAwMDAwNWNhMiAgbWZuOiAwMDAwNWNhMg0KDQp0YTMuMDA6IHFjIHRpbWVvKFhF
-TikgWzIwMTItMDgtMzEgMjE6MzM6NTBdICAgZ2ZuOiAwMDAwNWNhMyAgbWZuOiAwMDAwNWNh
-Mw0KDQp1dCAoY21kIDB4ZWMpDQoNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTBdICAg
-Z2ZuOiAwMDAwNWNhNCAgbWZuOiAwMDAwNWNhNA0KDQpbICA0OTYuNDc2OTUxXSBhKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzM6NTBdICAgZ2ZuOiAwMDAwNWNhNSAgbWZuOiAwMDAwNWNhNQ0K
-DQp0YTMuMDA6IGZhaWxlZCB0byBJREVOVElGWSAoSS9PIChYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMzOjUwXSAgIGdmbjogMDAwMDVjYTYgIG1mbjogMDAwMDVjYTYNCg0KZXJyb3IsIGVycl9t
-YXNrPShYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjUwXSAgIGdmbjogMDAwMDVjYTcgIG1mbjog
-MDAwMDVjYTcNCg0KMHg0KQ0KDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjUwXSAgIGdm
-bjogMDAwMDVjYTggIG1mbjogMDAwMDVjYTgNCg0KWyAgNDk2LjU1NTkwNF0gYShYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMzOjUwXSAgIGdmbjogMDAwMDVjYTkgIG1mbjogMDAwMDVjYTkNCg0K
-dGEzLjAwOiByZXZhbGlkYShYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjUwXSAgIGdmbjogMDAw
-MDVjYWEgIG1mbjogMDAwMDVjYWENCg0KdGlvbiBmYWlsZWQgKGVycihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMzOjUwXSAgIGdmbjogMDAwMDVjYWIgIG1mbjogMDAwMDVjYWINCg0Kbm89LTUp
-DQoNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTBdICAgZ2ZuOiAwMDAwNWNhYyAgbWZu
-OiAwMDAwNWNhYw0KDQpbICA0OTYuNjM1MDE1XSBhKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6
-NTBdICAgZ2ZuOiAwMDAwNWNhZCAgbWZuOiAwMDAwNWNhZA0KDQp0YTM6IGxpbWl0aW5nIFNB
-VEEgbGluayBzcGVlZCB0byhYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjUwXSAgIGdmbjogMDAw
-MDVjYWUgIG1mbjogMDAwMDVjYWUNCg0KIDMuMCBHYnBzDQoNCg0KKFhFTikgWzIwMTItMDgt
-MzEgMjE6MzM6NTBdICAgZ2ZuOiAwMDAwNWNhZiAgbWZuOiAwMDAwNWNhZg0KDQpbICA0OTYu
-Njk3MzMwXSBhdGEzOiBoYXJkIHJlc2V0dChYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjUwXSAg
-IGdmbjogMDAwMDVjYjAgIG1mbjogMDAwMDVjYjANCg0KaW5nIGxpbmsNCg0KDQooWEVOKSBb
-MjAxMi0wOC0zMSAyMTozMzo1MF0gICBnZm46IDAwMDA1Y2IxICBtZm46IDAwMDA1Y2IxDQoN
-CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjUwXSAgIGdmbjogMDAwMDVjYjIgIG1mbjogMDAw
-MDVjYjINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTBdICAgZ2ZuOiAwMDAwNWNiMyAg
-bWZuOiAwMDAwNWNiMw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1MF0gICBnZm46IDAw
-MDA1Y2I0ICBtZm46IDAwMDA1Y2I0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjUwXSAg
-IGdmbjogMDAwMDVjYjUgIG1mbjogMDAwMDVjYjUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
-MzM6NTBdICAgZ2ZuOiAwMDAwNWNiNiAgbWZuOiAwMDAwNWNiNg0KDQooWEVOKSBbMjAxMi0w
-OC0zMSAyMTozMzo1MF0gICBnZm46IDAwMDA1Y2I3ICBtZm46IDAwMDA1Y2I3DQoNCihYRU4p
-IFsyMDEyLTA4LTMxIDIxOjMzOjUwXSAgIGdmbjogMDAwMDVjYjggIG1mbjogMDAwMDVjYjgN
-Cg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTBdICAgZ2ZuOiAwMDAwNWNiOSAgbWZuOiAw
-MDAwNWNiOQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1MF0gICBnZm46IDAwMDA1Y2Jh
-ICBtZm46IDAwMDA1Y2JhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjUwXSAgIGdmbjog
-MDAwMDVjYmIgIG1mbjogMDAwMDVjYmINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTBd
-ICAgZ2ZuOiAwMDAwNWNiYyAgbWZuOiAwMDAwNWNiYw0KDQooWEVOKSBbMjAxMi0wOC0zMSAy
-MTozMzo1MF0gICBnZm46IDAwMDA1Y2JkICBtZm46IDAwMDA1Y2JkDQoNCihYRU4pIFsyMDEy
-LTA4LTMxIDIxOjMzOjUwXSAgIGdmbjogMDAwMDVjYmUgIG1mbjogMDAwMDVjYmUNCg0KKFhF
-TikgWzIwMTItMDgtMzEgMjE6MzM6NTBdICAgZ2ZuOiAwMDAwNWNiZiAgbWZuOiAwMDAwNWNi
-Zg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1MF0gICBnZm46IDAwMDA1Y2MwICBtZm46
-IDAwMDA1Y2MwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjUwXSAgIGdmbjogMDAwMDVj
-YzEgIG1mbjogMDAwMDVjYzENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTFdICAgZ2Zu
-OiAwMDAwNWNjMiAgbWZuOiAwMDAwNWNjMg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1
-MV0gICBnZm46IDAwMDA1Y2MzICBtZm46IDAwMDA1Y2MzDQoNCihYRU4pIFsyMDEyLTA4LTMx
-IDIxOjMzOjUxXSAgIGdmbjogMDAwMDVjYzQgIG1mbjogMDAwMDVjYzQNCg0KKFhFTikgWzIw
-MTItMDgtMzEgMjE6MzM6NTFdICAgZ2ZuOiAwMDAwNWNjNSAgbWZuOiAwMDAwNWNjNQ0KDQoo
-WEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1MV0gICBnZm46IDAwMDA1Y2M2ICBtZm46IDAwMDA1
-Y2M2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjUxXSAgIGdmbjogMDAwMDVjYzcgIG1m
-bjogMDAwMDVjYzcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTFdICAgZ2ZuOiAwMDAw
-NWNjOCAgbWZuOiAwMDAwNWNjOA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1MV0gICBn
-Zm46IDAwMDA1Y2M5ICBtZm46IDAwMDA1Y2M5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMz
-OjUxXSAgIGdmbjogMDAwMDVjY2EgIG1mbjogMDAwMDVjY2ENCg0KKFhFTikgWzIwMTItMDgt
-MzEgMjE6MzM6NTFdICAgZ2ZuOiAwMDAwNWNjYiAgbWZuOiAwMDAwNWNjYg0KDQooWEVOKSBb
-MjAxMi0wOC0zMSAyMTozMzo1MV0gICBnZm46IDAwMDA1Y2NjICBtZm46IDAwMDA1Y2NjDQoN
-CihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjUxXSAgIGdmbjogMDAwMDVjY2QgIG1mbjogMDAw
-MDVjY2QNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTFdICAgZ2ZuOiAwMDAwNWNjZSAg
-bWZuOiAwMDAwNWNjZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1MV0gICBnZm46IDAw
-MDA1Y2NmICBtZm46IDAwMDA1Y2NmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjUxXSAg
-IGdmbjogMDAwMDVjZDAgIG1mbjogMDAwMDVjZDANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6
-MzM6NTFdICAgZ2ZuOiAwMDAwNWNkMSAgbWZuOiAwMDAwNWNkMQ0KDQpbICA0OTcuMjQyMTc3
-XSBhKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTFdICAgZ2ZuOiAwMDAwNWNkMiAgbWZuOiAw
-MDAwNWNkMg0KDQp0YTM6IFNBVEEgbGluayB1KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTFd
-ICAgZ2ZuOiAwMDAwNWNkMyAgbWZuOiAwMDAwNWNkMw0KDQpwIDMuMCBHYnBzIChTU3RhdHVz
-IDEyMyBTQ29udHJvbChYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjUxXSAgIGdmbjogMDAwMDVj
-ZDQgIG1mbjogMDAwMDVjZDQNCg0KIDMyMCkNCg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-Mzo1MV0gICBnZm46IDAwMDA1Y2Q1ICBtZm46IDAwMDA1Y2Q1DQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMzOjUxXSAgIGdmbjogMDAwMDVjZDYgIG1mbjogMDAwMDVjZDYNCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzM6NTFdICAgZ2ZuOiAwMDAwNWNkNyAgbWZuOiAwMDAwNWNkNw0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1MV0gICBnZm46IDAwMDA1Y2Q4ICBtZm46IDAw
-MDA1Y2Q4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjUxXSAgIGdmbjogMDAwMDVjZDkg
-IG1mbjogMDAwMDVjZDkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTFdICAgZ2ZuOiAw
-MDAwNWNkYSAgbWZuOiAwMDAwNWNkYQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1MV0g
-ICBnZm46IDAwMDA1Y2RiICBtZm46IDAwMDA1Y2RiDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMzOjUxXSAgIGdmbjogMDAwMDVjZGMgIG1mbjogMDAwMDVjZGMNCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzM6NTFdICAgZ2ZuOiAwMDAwNWNkZCAgbWZuOiAwMDAwNWNkZA0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMzo1MV0gICBnZm46IDAwMDA1Y2RlICBtZm46IDAwMDA1Y2Rl
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjUxXSAgIGdmbjogMDAwMDVjZGYgIG1mbjog
-MDAwMDVjZGYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTFdICAgZ2ZuOiAwMDAwNWNl
-MCAgbWZuOiAwMDAwNWNlMA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1MV0gICBnZm46
-IDAwMDA1Y2UxICBtZm46IDAwMDA1Y2UxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjUx
-XSAgIGdmbjogMDAwMDVjZTIgIG1mbjogMDAwMDVjZTINCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzM6NTFdICAgZ2ZuOiAwMDAwNWNlMyAgbWZuOiAwMDAwNWNlMw0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMzo1MV0gICBnZm46IDAwMDA1Y2U0ICBtZm46IDAwMDA1Y2U0DQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMzOjUxXSAgIGdmbjogMDAwMDVjZTUgIG1mbjogMDAwMDVj
-ZTUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTFdICAgZ2ZuOiAwMDAwNWNlNiAgbWZu
-OiAwMDAwNWNlNg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1MV0gICBnZm46IDAwMDA1
-Y2U3ICBtZm46IDAwMDA1Y2U3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjUxXSAgIGdm
-bjogMDAwMDVjZTggIG1mbjogMDAwMDVjZTgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6
-NTFdICAgZ2ZuOiAwMDAwNWNlOSAgbWZuOiAwMDAwNWNlOQ0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMzo1MV0gICBnZm46IDAwMDA1Y2VhICBtZm46IDAwMDA1Y2VhDQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMzOjUxXSAgIGdmbjogMDAwMDVjZWIgIG1mbjogMDAwMDVjZWINCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTFdICAgZ2ZuOiAwMDAwNWNlYyAgbWZuOiAwMDAw
-NWNlYw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1MV0gICBnZm46IDAwMDA1Y2VkICBt
-Zm46IDAwMDA1Y2VkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjUxXSAgIGdmbjogMDAw
-MDVjZWUgIG1mbjogMDAwMDVjZWUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTFdICAg
-Z2ZuOiAwMDAwNWNlZiAgbWZuOiAwMDAwNWNlZg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-Mzo1MV0gICBnZm46IDAwMDA1Y2YwICBtZm46IDAwMDA1Y2YwDQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMzOjUxXSAgIGdmbjogMDAwMDVjZjEgIG1mbjogMDAwMDVjZjENCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzM6NTFdICAgZ2ZuOiAwMDAwNWNmMiAgbWZuOiAwMDAwNWNmMg0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1MV0gICBnZm46IDAwMDA1Y2YzICBtZm46IDAw
-MDA1Y2YzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjUxXSAgIGdmbjogMDAwMDVjZjQg
-IG1mbjogMDAwMDVjZjQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTFdICAgZ2ZuOiAw
-MDAwNWNmNSAgbWZuOiAwMDAwNWNmNQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1MV0g
-ICBnZm46IDAwMDA1Y2Y2ICBtZm46IDAwMDA1Y2Y2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMzOjUxXSAgIGdmbjogMDAwMDVjZjcgIG1mbjogMDAwMDVjZjcNCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzM6NTFdICAgZ2ZuOiAwMDAwNWNmOCAgbWZuOiAwMDAwNWNmOA0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMzo1MV0gICBnZm46IDAwMDA1Y2Y5ICBtZm46IDAwMDA1Y2Y5
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjUxXSAgIGdmbjogMDAwMDVjZmEgIG1mbjog
-MDAwMDVjZmENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTFdICAgZ2ZuOiAwMDAwNWNm
-YiAgbWZuOiAwMDAwNWNmYg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1MV0gICBnZm46
-IDAwMDA1Y2ZjICBtZm46IDAwMDA1Y2ZjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjUx
-XSAgIGdmbjogMDAwMDVjZmQgIG1mbjogMDAwMDVjZmQNCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzM6NTFdICAgZ2ZuOiAwMDAwNWNmZSAgbWZuOiAwMDAwNWNmZQ0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMzo1MV0gICBnZm46IDAwMDA1Y2ZmICBtZm46IDAwMDA1Y2ZmDQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMzOjUxXSAgIGdmbjogMDAwMDVkMDAgIG1mbjogMDAwMDVk
-MDANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTJdICAgZ2ZuOiAwMDAwNWQwMSAgbWZu
-OiAwMDAwNWQwMQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1Ml0gICBnZm46IDAwMDA1
-ZDAyICBtZm46IDAwMDA1ZDAyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjUyXSAgIGdm
-bjogMDAwMDVkMDMgIG1mbjogMDAwMDVkMDMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6
-NTJdICAgZ2ZuOiAwMDAwNWQwNCAgbWZuOiAwMDAwNWQwNA0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMzo1Ml0gICBnZm46IDAwMDA1ZDA1ICBtZm46IDAwMDA1ZDA1DQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMzOjUyXSAgIGdmbjogMDAwMDVkMDYgIG1mbjogMDAwMDVkMDYNCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTJdICAgZ2ZuOiAwMDAwNWQwNyAgbWZuOiAwMDAw
-NWQwNw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1Ml0gICBnZm46IDAwMDA1ZDA4ICBt
-Zm46IDAwMDA1ZDA4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjUyXSAgIGdmbjogMDAw
-MDVkMDkgIG1mbjogMDAwMDVkMDkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTJdICAg
-Z2ZuOiAwMDAwNWQwYSAgbWZuOiAwMDAwNWQwYQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-Mzo1Ml0gICBnZm46IDAwMDA1ZDBiICBtZm46IDAwMDA1ZDBiDQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMzOjUyXSAgIGdmbjogMDAwMDVkMGMgIG1mbjogMDAwMDVkMGMNCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzM6NTJdICAgZ2ZuOiAwMDAwNWQwZCAgbWZuOiAwMDAwNWQwZA0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1Ml0gICBnZm46IDAwMDA1ZDBlICBtZm46IDAw
-MDA1ZDBlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjUyXSAgIGdmbjogMDAwMDVkMGYg
-IG1mbjogMDAwMDVkMGYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTJdICAgZ2ZuOiAw
-MDAwNWQxMCAgbWZuOiAwMDAwNWQxMA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1Ml0g
-ICBnZm46IDAwMDA1ZDExICBtZm46IDAwMDA1ZDExDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMzOjUyXSAgIGdmbjogMDAwMDVkMTIgIG1mbjogMDAwMDVkMTINCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzM6NTJdICAgZ2ZuOiAwMDAwNWQxMyAgbWZuOiAwMDAwNWQxMw0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMzo1Ml0gICBnZm46IDAwMDA1ZDE0ICBtZm46IDAwMDA1ZDE0
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjUyXSAgIGdmbjogMDAwMDVkMTUgIG1mbjog
-MDAwMDVkMTUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTJdICAgZ2ZuOiAwMDAwNWQx
-NiAgbWZuOiAwMDAwNWQxNg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1Ml0gICBnZm46
-IDAwMDA1ZDE3ICBtZm46IDAwMDA1ZDE3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjUy
-XSAgIGdmbjogMDAwMDVkMTggIG1mbjogMDAwMDVkMTgNCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzM6NTJdICAgZ2ZuOiAwMDAwNWQxOSAgbWZuOiAwMDAwNWQxOQ0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMzo1Ml0gICBnZm46IDAwMDA1ZDFhICBtZm46IDAwMDA1ZDFhDQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMzOjUyXSAgIGdmbjogMDAwMDVkMWIgIG1mbjogMDAwMDVk
-MWINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTJdICAgZ2ZuOiAwMDAwNWQxYyAgbWZu
-OiAwMDAwNWQxYw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1Ml0gICBnZm46IDAwMDA1
-ZDFkICBtZm46IDAwMDA1ZDFkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjUyXSAgIGdm
-bjogMDAwMDVkMWUgIG1mbjogMDAwMDVkMWUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6
-NTJdICAgZ2ZuOiAwMDAwNWQxZiAgbWZuOiAwMDAwNWQxZg0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMzo1Ml0gICBnZm46IDAwMDA1ZDIwICBtZm46IDAwMDA1ZDIwDQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMzOjUyXSAgIGdmbjogMDAwMDVkMjEgIG1mbjogMDAwMDVkMjENCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTJdICAgZ2ZuOiAwMDAwNWQyMiAgbWZuOiAwMDAw
-NWQyMg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1Ml0gICBnZm46IDAwMDA1ZDIzICBt
-Zm46IDAwMDA1ZDIzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjUyXSAgIGdmbjogMDAw
-MDVkMjQgIG1mbjogMDAwMDVkMjQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTJdICAg
-Z2ZuOiAwMDAwNWQyNSAgbWZuOiAwMDAwNWQyNQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-Mzo1Ml0gICBnZm46IDAwMDA1ZDI2ICBtZm46IDAwMDA1ZDI2DQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMzOjUyXSAgIGdmbjogMDAwMDVkMjcgIG1mbjogMDAwMDVkMjcNCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzM6NTJdICAgZ2ZuOiAwMDAwNWQyOCAgbWZuOiAwMDAwNWQyOA0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1Ml0gICBnZm46IDAwMDA1ZDI5ICBtZm46IDAw
-MDA1ZDI5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjUyXSAgIGdmbjogMDAwMDVkMmEg
-IG1mbjogMDAwMDVkMmENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTJdICAgZ2ZuOiAw
-MDAwNWQyYiAgbWZuOiAwMDAwNWQyYg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1Ml0g
-ICBnZm46IDAwMDA1ZDJjICBtZm46IDAwMDA1ZDJjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMzOjUyXSAgIGdmbjogMDAwMDVkMmQgIG1mbjogMDAwMDVkMmQNCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzM6NTJdICAgZ2ZuOiAwMDAwNWQyZSAgbWZuOiAwMDAwNWQyZQ0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMzo1Ml0gICBnZm46IDAwMDA1ZDJmICBtZm46IDAwMDA1ZDJm
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjUyXSAgIGdmbjogMDAwMDVkMzAgIG1mbjog
-MDAwMDVkMzANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTJdICAgZ2ZuOiAwMDAwNWQz
-MSAgbWZuOiAwMDAwNWQzMQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1Ml0gICBnZm46
-IDAwMDA1ZDMyICBtZm46IDAwMDA1ZDMyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjUy
-XSAgIGdmbjogMDAwMDVkMzMgIG1mbjogMDAwMDVkMzMNCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzM6NTJdICAgZ2ZuOiAwMDAwNWQzNCAgbWZuOiAwMDAwNWQzNA0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMzo1Ml0gICBnZm46IDAwMDA1ZDM1ICBtZm46IDAwMDA1ZDM1DQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMzOjUyXSAgIGdmbjogMDAwMDVkMzYgIG1mbjogMDAwMDVk
-MzYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTJdICAgZ2ZuOiAwMDAwNWQzNyAgbWZu
-OiAwMDAwNWQzNw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1Ml0gICBnZm46IDAwMDA1
-ZDM4ICBtZm46IDAwMDA1ZDM4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjUyXSAgIGdm
-bjogMDAwMDVkMzkgIG1mbjogMDAwMDVkMzkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6
-NTJdICAgZ2ZuOiAwMDAwNWQzYSAgbWZuOiAwMDAwNWQzYQ0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMzo1Ml0gICBnZm46IDAwMDA1ZDNiICBtZm46IDAwMDA1ZDNiDQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMzOjUyXSAgIGdmbjogMDAwMDVkM2MgIG1mbjogMDAwMDVkM2MNCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTJdICAgZ2ZuOiAwMDAwNWQzZCAgbWZuOiAwMDAw
-NWQzZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1Ml0gICBnZm46IDAwMDA1ZDNlICBt
-Zm46IDAwMDA1ZDNlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjUyXSAgIGdmbjogMDAw
-MDVkM2YgIG1mbjogMDAwMDVkM2YNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTJdICAg
-Z2ZuOiAwMDAwNWQ0MCAgbWZuOiAwMDAwNWQ0MA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-Mzo1M10gICBnZm46IDAwMDA1ZDQxICBtZm46IDAwMDA1ZDQxDQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMzOjUzXSAgIGdmbjogMDAwMDVkNDIgIG1mbjogMDAwMDVkNDINCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzM6NTNdICAgZ2ZuOiAwMDAwNWQ0MyAgbWZuOiAwMDAwNWQ0Mw0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1M10gICBnZm46IDAwMDA1ZDQ0ICBtZm46IDAw
-MDA1ZDQ0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjUzXSAgIGdmbjogMDAwMDVkNDUg
-IG1mbjogMDAwMDVkNDUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTNdICAgZ2ZuOiAw
-MDAwNWQ0NiAgbWZuOiAwMDAwNWQ0Ng0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1M10g
-ICBnZm46IDAwMDA1ZDQ3ICBtZm46IDAwMDA1ZDQ3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMzOjUzXSAgIGdmbjogMDAwMDVkNDggIG1mbjogMDAwMDVkNDgNCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzM6NTNdICAgZ2ZuOiAwMDAwNWQ0OSAgbWZuOiAwMDAwNWQ0OQ0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMzo1M10gICBnZm46IDAwMDA1ZDRhICBtZm46IDAwMDA1ZDRh
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjUzXSAgIGdmbjogMDAwMDVkNGIgIG1mbjog
-MDAwMDVkNGINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTNdICAgZ2ZuOiAwMDAwNWQ0
-YyAgbWZuOiAwMDAwNWQ0Yw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1M10gICBnZm46
-IDAwMDA1ZDRkICBtZm46IDAwMDA1ZDRkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjUz
-XSAgIGdmbjogMDAwMDVkNGUgIG1mbjogMDAwMDVkNGUNCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzM6NTNdICAgZ2ZuOiAwMDAwNWQ0ZiAgbWZuOiAwMDAwNWQ0Zg0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMzo1M10gICBnZm46IDAwMDA1ZDUwICBtZm46IDAwMDA1ZDUwDQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMzOjUzXSAgIGdmbjogMDAwMDVkNTEgIG1mbjogMDAwMDVk
-NTENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTNdICAgZ2ZuOiAwMDAwNWQ1MiAgbWZu
-OiAwMDAwNWQ1Mg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1M10gICBnZm46IDAwMDA1
-ZDUzICBtZm46IDAwMDA1ZDUzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjUzXSAgIGdm
-bjogMDAwMDVkNTQgIG1mbjogMDAwMDVkNTQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6
-NTNdICAgZ2ZuOiAwMDAwNWQ1NSAgbWZuOiAwMDAwNWQ1NQ0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMzo1M10gICBnZm46IDAwMDA1ZDU2ICBtZm46IDAwMDA1ZDU2DQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMzOjUzXSAgIGdmbjogMDAwMDVkNTcgIG1mbjogMDAwMDVkNTcNCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTNdICAgZ2ZuOiAwMDAwNWQ1OCAgbWZuOiAwMDAw
-NWQ1OA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1M10gICBnZm46IDAwMDA1ZDU5ICBt
-Zm46IDAwMDA1ZDU5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjUzXSAgIGdmbjogMDAw
-MDVkNWEgIG1mbjogMDAwMDVkNWENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTNdICAg
-Z2ZuOiAwMDAwNWQ1YiAgbWZuOiAwMDAwNWQ1Yg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-Mzo1M10gICBnZm46IDAwMDA1ZDVjICBtZm46IDAwMDA1ZDVjDQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMzOjUzXSAgIGdmbjogMDAwMDVkNWQgIG1mbjogMDAwMDVkNWQNCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzM6NTNdICAgZ2ZuOiAwMDAwNWQ1ZSAgbWZuOiAwMDAwNWQ1ZQ0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1M10gICBnZm46IDAwMDA1ZDVmICBtZm46IDAw
-MDA1ZDVmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjUzXSAgIGdmbjogMDAwMDVkNjAg
-IG1mbjogMDAwMDVkNjANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTNdICAgZ2ZuOiAw
-MDAwNWQ2MSAgbWZuOiAwMDAwNWQ2MQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1M10g
-ICBnZm46IDAwMDA1ZDYyICBtZm46IDAwMDA1ZDYyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMzOjUzXSAgIGdmbjogMDAwMDVkNjMgIG1mbjogMDAwMDVkNjMNCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzM6NTNdICAgZ2ZuOiAwMDAwNWQ2NCAgbWZuOiAwMDAwNWQ2NA0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMzo1M10gICBnZm46IDAwMDA1ZDY1ICBtZm46IDAwMDA1ZDY1
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjUzXSAgIGdmbjogMDAwMDVkNjYgIG1mbjog
-MDAwMDVkNjYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTNdICAgZ2ZuOiAwMDAwNWQ2
-NyAgbWZuOiAwMDAwNWQ2Nw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1M10gICBnZm46
-IDAwMDA1ZDY4ICBtZm46IDAwMDA1ZDY4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjUz
-XSAgIGdmbjogMDAwMDVkNjkgIG1mbjogMDAwMDVkNjkNCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzM6NTNdICAgZ2ZuOiAwMDAwNWQ2YSAgbWZuOiAwMDAwNWQ2YQ0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMzo1M10gICBnZm46IDAwMDA1ZDZiICBtZm46IDAwMDA1ZDZiDQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMzOjUzXSAgIGdmbjogMDAwMDVkNmMgIG1mbjogMDAwMDVk
-NmMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTNdICAgZ2ZuOiAwMDAwNWQ2ZCAgbWZu
-OiAwMDAwNWQ2ZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1M10gICBnZm46IDAwMDA1
-ZDZlICBtZm46IDAwMDA1ZDZlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjUzXSAgIGdm
-bjogMDAwMDVkNmYgIG1mbjogMDAwMDVkNmYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6
-NTNdICAgZ2ZuOiAwMDAwNWQ3MCAgbWZuOiAwMDAwNWQ3MA0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMzo1M10gICBnZm46IDAwMDA1ZDcxICBtZm46IDAwMDA1ZDcxDQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMzOjUzXSAgIGdmbjogMDAwMDVkNzIgIG1mbjogMDAwMDVkNzINCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTNdICAgZ2ZuOiAwMDAwNWQ3MyAgbWZuOiAwMDAw
-NWQ3Mw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1M10gICBnZm46IDAwMDA1ZDc0ICBt
-Zm46IDAwMDA1ZDc0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjUzXSAgIGdmbjogMDAw
-MDVkNzUgIG1mbjogMDAwMDVkNzUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTNdICAg
-Z2ZuOiAwMDAwNWQ3NiAgbWZuOiAwMDAwNWQ3Ng0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-Mzo1M10gICBnZm46IDAwMDA1ZDc3ICBtZm46IDAwMDA1ZDc3DQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMzOjUzXSAgIGdmbjogMDAwMDVkNzggIG1mbjogMDAwMDVkNzgNCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzM6NTNdICAgZ2ZuOiAwMDAwNWQ3OSAgbWZuOiAwMDAwNWQ3OQ0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1M10gICBnZm46IDAwMDA1ZDdhICBtZm46IDAw
-MDA1ZDdhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjUzXSAgIGdmbjogMDAwMDVkN2Ig
-IG1mbjogMDAwMDVkN2INCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTNdICAgZ2ZuOiAw
-MDAwNWQ3YyAgbWZuOiAwMDAwNWQ3Yw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1M10g
-ICBnZm46IDAwMDA1ZDdkICBtZm46IDAwMDA1ZDdkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMzOjUzXSAgIGdmbjogMDAwMDVkN2UgIG1mbjogMDAwMDVkN2UNCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzM6NTNdICAgZ2ZuOiAwMDAwNWQ3ZiAgbWZuOiAwMDAwNWQ3Zg0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMzo1M10gICBnZm46IDAwMDA1ZDgwICBtZm46IDAwMDA1ZDgw
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjU0XSAgIGdmbjogMDAwMDVkODEgIG1mbjog
-MDAwMDVkODENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTRdICAgZ2ZuOiAwMDAwNWQ4
-MiAgbWZuOiAwMDAwNWQ4Mg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1NF0gICBnZm46
-IDAwMDA1ZDgzICBtZm46IDAwMDA1ZDgzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjU0
-XSAgIGdmbjogMDAwMDVkODQgIG1mbjogMDAwMDVkODQNCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzM6NTRdICAgZ2ZuOiAwMDAwNWQ4NSAgbWZuOiAwMDAwNWQ4NQ0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMzo1NF0gICBnZm46IDAwMDA1ZDg2ICBtZm46IDAwMDA1ZDg2DQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMzOjU0XSAgIGdmbjogMDAwMDVkODcgIG1mbjogMDAwMDVk
-ODcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTRdICAgZ2ZuOiAwMDAwNWQ4OCAgbWZu
-OiAwMDAwNWQ4OA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1NF0gICBnZm46IDAwMDA1
-ZDg5ICBtZm46IDAwMDA1ZDg5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjU0XSAgIGdm
-bjogMDAwMDVkOGEgIG1mbjogMDAwMDVkOGENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6
-NTRdICAgZ2ZuOiAwMDAwNWQ4YiAgbWZuOiAwMDAwNWQ4Yg0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMzo1NF0gICBnZm46IDAwMDA1ZDhjICBtZm46IDAwMDA1ZDhjDQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMzOjU0XSAgIGdmbjogMDAwMDVkOGQgIG1mbjogMDAwMDVkOGQNCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTRdICAgZ2ZuOiAwMDAwNWQ4ZSAgbWZuOiAwMDAw
-NWQ4ZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1NF0gICBnZm46IDAwMDA1ZDhmICBt
-Zm46IDAwMDA1ZDhmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjU0XSAgIGdmbjogMDAw
-MDVkOTAgIG1mbjogMDAwMDVkOTANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTRdICAg
-Z2ZuOiAwMDAwNWQ5MSAgbWZuOiAwMDAwNWQ5MQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-Mzo1NF0gICBnZm46IDAwMDA1ZDkyICBtZm46IDAwMDA1ZDkyDQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMzOjU0XSAgIGdmbjogMDAwMDVkOTMgIG1mbjogMDAwMDVkOTMNCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzM6NTRdICAgZ2ZuOiAwMDAwNWQ5NCAgbWZuOiAwMDAwNWQ5NA0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1NF0gICBnZm46IDAwMDA1ZDk1ICBtZm46IDAw
-MDA1ZDk1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjU0XSAgIGdmbjogMDAwMDVkOTYg
-IG1mbjogMDAwMDVkOTYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTRdICAgZ2ZuOiAw
-MDAwNWQ5NyAgbWZuOiAwMDAwNWQ5Nw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1NF0g
-ICBnZm46IDAwMDA1ZDk4ICBtZm46IDAwMDA1ZDk4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMzOjU0XSAgIGdmbjogMDAwMDVkOTkgIG1mbjogMDAwMDVkOTkNCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzM6NTRdICAgZ2ZuOiAwMDAwNWQ5YSAgbWZuOiAwMDAwNWQ5YQ0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMzo1NF0gICBnZm46IDAwMDA1ZDliICBtZm46IDAwMDA1ZDli
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjU0XSAgIGdmbjogMDAwMDVkOWMgIG1mbjog
-MDAwMDVkOWMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTRdICAgZ2ZuOiAwMDAwNWQ5
-ZCAgbWZuOiAwMDAwNWQ5ZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1NF0gICBnZm46
-IDAwMDA1ZDllICBtZm46IDAwMDA1ZDllDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjU0
-XSAgIGdmbjogMDAwMDVkOWYgIG1mbjogMDAwMDVkOWYNCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzM6NTRdICAgZ2ZuOiAwMDAwNWRhMCAgbWZuOiAwMDAwNWRhMA0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMzo1NF0gICBnZm46IDAwMDA1ZGExICBtZm46IDAwMDA1ZGExDQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMzOjU0XSAgIGdmbjogMDAwMDVkYTIgIG1mbjogMDAwMDVk
-YTINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTRdICAgZ2ZuOiAwMDAwNWRhMyAgbWZu
-OiAwMDAwNWRhMw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1NF0gICBnZm46IDAwMDA1
-ZGE0ICBtZm46IDAwMDA1ZGE0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjU0XSAgIGdm
-bjogMDAwMDVkYTUgIG1mbjogMDAwMDVkYTUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6
-NTRdICAgZ2ZuOiAwMDAwNWRhNiAgbWZuOiAwMDAwNWRhNg0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMzo1NF0gICBnZm46IDAwMDA1ZGE3ICBtZm46IDAwMDA1ZGE3DQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMzOjU0XSAgIGdmbjogMDAwMDVkYTggIG1mbjogMDAwMDVkYTgNCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTRdICAgZ2ZuOiAwMDAwNWRhOSAgbWZuOiAwMDAw
-NWRhOQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1NF0gICBnZm46IDAwMDA1ZGFhICBt
-Zm46IDAwMDA1ZGFhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjU0XSAgIGdmbjogMDAw
-MDVkYWIgIG1mbjogMDAwMDVkYWINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTRdICAg
-Z2ZuOiAwMDAwNWRhYyAgbWZuOiAwMDAwNWRhYw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-Mzo1NF0gICBnZm46IDAwMDA1ZGFkICBtZm46IDAwMDA1ZGFkDQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMzOjU0XSAgIGdmbjogMDAwMDVkYWUgIG1mbjogMDAwMDVkYWUNCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzM6NTRdICAgZ2ZuOiAwMDAwNWRhZiAgbWZuOiAwMDAwNWRhZg0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1NF0gICBnZm46IDAwMDA1ZGIwICBtZm46IDAw
-MDA1ZGIwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjU0XSAgIGdmbjogMDAwMDVkYjEg
-IG1mbjogMDAwMDVkYjENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTRdICAgZ2ZuOiAw
-MDAwNWRiMiAgbWZuOiAwMDAwNWRiMg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1NF0g
-ICBnZm46IDAwMDA1ZGIzICBtZm46IDAwMDA1ZGIzDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMzOjU0XSAgIGdmbjogMDAwMDVkYjQgIG1mbjogMDAwMDVkYjQNCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzM6NTRdICAgZ2ZuOiAwMDAwNWRiNSAgbWZuOiAwMDAwNWRiNQ0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMzo1NF0gICBnZm46IDAwMDA1ZGI2ICBtZm46IDAwMDA1ZGI2
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjU0XSAgIGdmbjogMDAwMDVkYjcgIG1mbjog
-MDAwMDVkYjcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTRdICAgZ2ZuOiAwMDAwNWRi
-OCAgbWZuOiAwMDAwNWRiOA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1NF0gICBnZm46
-IDAwMDA1ZGI5ICBtZm46IDAwMDA1ZGI5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjU0
-XSAgIGdmbjogMDAwMDVkYmEgIG1mbjogMDAwMDVkYmENCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzM6NTRdICAgZ2ZuOiAwMDAwNWRiYiAgbWZuOiAwMDAwNWRiYg0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMzo1NF0gICBnZm46IDAwMDA1ZGJjICBtZm46IDAwMDA1ZGJjDQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMzOjU0XSAgIGdmbjogMDAwMDVkYmQgIG1mbjogMDAwMDVk
-YmQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTRdICAgZ2ZuOiAwMDAwNWRiZSAgbWZu
-OiAwMDAwNWRiZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1NF0gICBnZm46IDAwMDA1
-ZGJmICBtZm46IDAwMDA1ZGJmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjU0XSAgIGdm
-bjogMDAwMDVkYzAgIG1mbjogMDAwMDVkYzANCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6
-NTVdICAgZ2ZuOiAwMDAwNWRjMSAgbWZuOiAwMDAwNWRjMQ0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMzo1NV0gICBnZm46IDAwMDA1ZGMyICBtZm46IDAwMDA1ZGMyDQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMzOjU1XSAgIGdmbjogMDAwMDVkYzMgIG1mbjogMDAwMDVkYzMNCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTVdICAgZ2ZuOiAwMDAwNWRjNCAgbWZuOiAwMDAw
-NWRjNA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1NV0gICBnZm46IDAwMDA1ZGM1ICBt
-Zm46IDAwMDA1ZGM1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjU1XSAgIGdmbjogMDAw
-MDVkYzYgIG1mbjogMDAwMDVkYzYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTVdICAg
-Z2ZuOiAwMDAwNWRjNyAgbWZuOiAwMDAwNWRjNw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-Mzo1NV0gICBnZm46IDAwMDA1ZGM4ICBtZm46IDAwMDA1ZGM4DQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMzOjU1XSAgIGdmbjogMDAwMDVkYzkgIG1mbjogMDAwMDVkYzkNCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzM6NTVdICAgZ2ZuOiAwMDAwNWRjYSAgbWZuOiAwMDAwNWRjYQ0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1NV0gICBnZm46IDAwMDA1ZGNiICBtZm46IDAw
-MDA1ZGNiDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjU1XSAgIGdmbjogMDAwMDVkY2Mg
-IG1mbjogMDAwMDVkY2MNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTVdICAgZ2ZuOiAw
-MDAwNWRjZCAgbWZuOiAwMDAwNWRjZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1NV0g
-ICBnZm46IDAwMDA1ZGNlICBtZm46IDAwMDA1ZGNlDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMzOjU1XSAgIGdmbjogMDAwMDVkY2YgIG1mbjogMDAwMDVkY2YNCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzM6NTVdICAgZ2ZuOiAwMDAwNWRkMCAgbWZuOiAwMDAwNWRkMA0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMzo1NV0gICBnZm46IDAwMDA1ZGQxICBtZm46IDAwMDA1ZGQx
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjU1XSAgIGdmbjogMDAwMDVkZDIgIG1mbjog
-MDAwMDVkZDINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTVdICAgZ2ZuOiAwMDAwNWRk
-MyAgbWZuOiAwMDAwNWRkMw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1NV0gICBnZm46
-IDAwMDA1ZGQ0ICBtZm46IDAwMDA1ZGQ0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjU1
-XSAgIGdmbjogMDAwMDVkZDUgIG1mbjogMDAwMDVkZDUNCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzM6NTVdICAgZ2ZuOiAwMDAwNWRkNiAgbWZuOiAwMDAwNWRkNg0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMzo1NV0gICBnZm46IDAwMDA1ZGQ3ICBtZm46IDAwMDA1ZGQ3DQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMzOjU1XSAgIGdmbjogMDAwMDVkZDggIG1mbjogMDAwMDVk
-ZDgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTVdICAgZ2ZuOiAwMDAwNWRkOSAgbWZu
-OiAwMDAwNWRkOQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1NV0gICBnZm46IDAwMDA1
-ZGRhICBtZm46IDAwMDA1ZGRhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjU1XSAgIGdm
-bjogMDAwMDVkZGIgIG1mbjogMDAwMDVkZGINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6
-NTVdICAgZ2ZuOiAwMDAwNWRkYyAgbWZuOiAwMDAwNWRkYw0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMzo1NV0gICBnZm46IDAwMDA1ZGRkICBtZm46IDAwMDA1ZGRkDQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMzOjU1XSAgIGdmbjogMDAwMDVkZGUgIG1mbjogMDAwMDVkZGUNCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTVdICAgZ2ZuOiAwMDAwNWRkZiAgbWZuOiAwMDAw
-NWRkZg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1NV0gICBnZm46IDAwMDA1ZGUwICBt
-Zm46IDAwMDA1ZGUwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjU1XSAgIGdmbjogMDAw
-MDVkZTEgIG1mbjogMDAwMDVkZTENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTVdICAg
-Z2ZuOiAwMDAwNWRlMiAgbWZuOiAwMDAwNWRlMg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-Mzo1NV0gICBnZm46IDAwMDA1ZGUzICBtZm46IDAwMDA1ZGUzDQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMzOjU1XSAgIGdmbjogMDAwMDVkZTQgIG1mbjogMDAwMDVkZTQNCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzM6NTVdICAgZ2ZuOiAwMDAwNWRlNSAgbWZuOiAwMDAwNWRlNQ0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1NV0gICBnZm46IDAwMDA1ZGU2ICBtZm46IDAw
-MDA1ZGU2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjU1XSAgIGdmbjogMDAwMDVkZTcg
-IG1mbjogMDAwMDVkZTcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTVdICAgZ2ZuOiAw
-MDAwNWRlOCAgbWZuOiAwMDAwNWRlOA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1NV0g
-ICBnZm46IDAwMDA1ZGU5ICBtZm46IDAwMDA1ZGU5DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMzOjU1XSAgIGdmbjogMDAwMDVkZWEgIG1mbjogMDAwMDVkZWENCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzM6NTVdICAgZ2ZuOiAwMDAwNWRlYiAgbWZuOiAwMDAwNWRlYg0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMzo1NV0gICBnZm46IDAwMDA1ZGVjICBtZm46IDAwMDA1ZGVj
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjU1XSAgIGdmbjogMDAwMDVkZWQgIG1mbjog
-MDAwMDVkZWQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTVdICAgZ2ZuOiAwMDAwNWRl
-ZSAgbWZuOiAwMDAwNWRlZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1NV0gICBnZm46
-IDAwMDA1ZGVmICBtZm46IDAwMDA1ZGVmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjU1
-XSAgIGdmbjogMDAwMDVkZjAgIG1mbjogMDAwMDVkZjANCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzM6NTVdICAgZ2ZuOiAwMDAwNWRmMSAgbWZuOiAwMDAwNWRmMQ0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMzo1NV0gICBnZm46IDAwMDA1ZGYyICBtZm46IDAwMDA1ZGYyDQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMzOjU1XSAgIGdmbjogMDAwMDVkZjMgIG1mbjogMDAwMDVk
-ZjMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTVdICAgZ2ZuOiAwMDAwNWRmNCAgbWZu
-OiAwMDAwNWRmNA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1NV0gICBnZm46IDAwMDA1
-ZGY1ICBtZm46IDAwMDA1ZGY1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjU1XSAgIGdm
-bjogMDAwMDVkZjYgIG1mbjogMDAwMDVkZjYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6
-NTVdICAgZ2ZuOiAwMDAwNWRmNyAgbWZuOiAwMDAwNWRmNw0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMzo1NV0gICBnZm46IDAwMDA1ZGY4ICBtZm46IDAwMDA1ZGY4DQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMzOjU1XSAgIGdmbjogMDAwMDVkZjkgIG1mbjogMDAwMDVkZjkNCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTVdICAgZ2ZuOiAwMDAwNWRmYSAgbWZuOiAwMDAw
-NWRmYQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1NV0gICBnZm46IDAwMDA1ZGZiICBt
-Zm46IDAwMDA1ZGZiDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjU1XSAgIGdmbjogMDAw
-MDVkZmMgIG1mbjogMDAwMDVkZmMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTVdICAg
-Z2ZuOiAwMDAwNWRmZCAgbWZuOiAwMDAwNWRmZA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-Mzo1NV0gICBnZm46IDAwMDA1ZGZlICBtZm46IDAwMDA1ZGZlDQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMzOjU1XSAgIGdmbjogMDAwMDVkZmYgIG1mbjogMDAwMDVkZmYNCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzM6NTVdICAgZ2ZuOiAwMDAwNWUwMCAgbWZuOiAwMDAwNWUwMA0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1Nl0gICBnZm46IDAwMDA1ZTAxICBtZm46IDAw
-MDA1ZTAxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjU2XSAgIGdmbjogMDAwMDVlMDIg
-IG1mbjogMDAwMDVlMDINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTZdICAgZ2ZuOiAw
-MDAwNWUwMyAgbWZuOiAwMDAwNWUwMw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1Nl0g
-ICBnZm46IDAwMDA1ZTA0ICBtZm46IDAwMDA1ZTA0DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMzOjU2XSAgIGdmbjogMDAwMDVlMDUgIG1mbjogMDAwMDVlMDUNCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzM6NTZdICAgZ2ZuOiAwMDAwNWUwNiAgbWZuOiAwMDAwNWUwNg0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMzo1Nl0gICBnZm46IDAwMDA1ZTA3ICBtZm46IDAwMDA1ZTA3
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjU2XSAgIGdmbjogMDAwMDVlMDggIG1mbjog
-MDAwMDVlMDgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTZdICAgZ2ZuOiAwMDAwNWUw
-OSAgbWZuOiAwMDAwNWUwOQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1Nl0gICBnZm46
-IDAwMDA1ZTBhICBtZm46IDAwMDA1ZTBhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjU2
-XSAgIGdmbjogMDAwMDVlMGIgIG1mbjogMDAwMDVlMGINCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzM6NTZdICAgZ2ZuOiAwMDAwNWUwYyAgbWZuOiAwMDAwNWUwYw0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMzo1Nl0gICBnZm46IDAwMDA1ZTBkICBtZm46IDAwMDA1ZTBkDQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMzOjU2XSAgIGdmbjogMDAwMDVlMGUgIG1mbjogMDAwMDVl
-MGUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTZdICAgZ2ZuOiAwMDAwNWUwZiAgbWZu
-OiAwMDAwNWUwZg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1Nl0gICBnZm46IDAwMDA1
-ZTEwICBtZm46IDAwMDA1ZTEwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjU2XSAgIGdm
-bjogMDAwMDVlMTEgIG1mbjogMDAwMDVlMTENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6
-NTZdICAgZ2ZuOiAwMDAwNWUxMiAgbWZuOiAwMDAwNWUxMg0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMzo1Nl0gICBnZm46IDAwMDA1ZTEzICBtZm46IDAwMDA1ZTEzDQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMzOjU2XSAgIGdmbjogMDAwMDVlMTQgIG1mbjogMDAwMDVlMTQNCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTZdICAgZ2ZuOiAwMDAwNWUxNSAgbWZuOiAwMDAw
-NWUxNQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1Nl0gICBnZm46IDAwMDA1ZTE2ICBt
-Zm46IDAwMDA1ZTE2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjU2XSAgIGdmbjogMDAw
-MDVlMTcgIG1mbjogMDAwMDVlMTcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTZdICAg
-Z2ZuOiAwMDAwNWUxOCAgbWZuOiAwMDAwNWUxOA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-Mzo1Nl0gICBnZm46IDAwMDA1ZTE5ICBtZm46IDAwMDA1ZTE5DQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMzOjU2XSAgIGdmbjogMDAwMDVlMWEgIG1mbjogMDAwMDVlMWENCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzM6NTZdICAgZ2ZuOiAwMDAwNWUxYiAgbWZuOiAwMDAwNWUxYg0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1Nl0gICBnZm46IDAwMDA1ZTFjICBtZm46IDAw
-MDA1ZTFjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjU2XSAgIGdmbjogMDAwMDVlMWQg
-IG1mbjogMDAwMDVlMWQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTZdICAgZ2ZuOiAw
-MDAwNWUxZSAgbWZuOiAwMDAwNWUxZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1Nl0g
-ICBnZm46IDAwMDA1ZTFmICBtZm46IDAwMDA1ZTFmDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMzOjU2XSAgIGdmbjogMDAwMDVlMjAgIG1mbjogMDAwMDVlMjANCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzM6NTZdICAgZ2ZuOiAwMDAwNWUyMSAgbWZuOiAwMDAwNWUyMQ0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMzo1Nl0gICBnZm46IDAwMDA1ZTIyICBtZm46IDAwMDA1ZTIy
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjU2XSAgIGdmbjogMDAwMDVlMjMgIG1mbjog
-MDAwMDVlMjMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTZdICAgZ2ZuOiAwMDAwNWUy
-NCAgbWZuOiAwMDAwNWUyNA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1Nl0gICBnZm46
-IDAwMDA1ZTI1ICBtZm46IDAwMDA1ZTI1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjU2
-XSAgIGdmbjogMDAwMDVlMjYgIG1mbjogMDAwMDVlMjYNCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzM6NTZdICAgZ2ZuOiAwMDAwNWUyNyAgbWZuOiAwMDAwNWUyNw0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMzo1Nl0gICBnZm46IDAwMDA1ZTI4ICBtZm46IDAwMDA1ZTI4DQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMzOjU2XSAgIGdmbjogMDAwMDVlMjkgIG1mbjogMDAwMDVl
-MjkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTZdICAgZ2ZuOiAwMDAwNWUyYSAgbWZu
-OiAwMDAwNWUyYQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1Nl0gICBnZm46IDAwMDA1
-ZTJiICBtZm46IDAwMDA1ZTJiDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjU2XSAgIGdm
-bjogMDAwMDVlMmMgIG1mbjogMDAwMDVlMmMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6
-NTZdICAgZ2ZuOiAwMDAwNWUyZCAgbWZuOiAwMDAwNWUyZA0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMzo1Nl0gICBnZm46IDAwMDA1ZTJlICBtZm46IDAwMDA1ZTJlDQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMzOjU2XSAgIGdmbjogMDAwMDVlMmYgIG1mbjogMDAwMDVlMmYNCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTZdICAgZ2ZuOiAwMDAwNWUzMCAgbWZuOiAwMDAw
-NWUzMA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1Nl0gICBnZm46IDAwMDA1ZTMxICBt
-Zm46IDAwMDA1ZTMxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjU2XSAgIGdmbjogMDAw
-MDVlMzIgIG1mbjogMDAwMDVlMzINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTZdICAg
-Z2ZuOiAwMDAwNWUzMyAgbWZuOiAwMDAwNWUzMw0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-Mzo1Nl0gICBnZm46IDAwMDA1ZTM0ICBtZm46IDAwMDA1ZTM0DQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMzOjU2XSAgIGdmbjogMDAwMDVlMzUgIG1mbjogMDAwMDVlMzUNCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzM6NTZdICAgZ2ZuOiAwMDAwNWUzNiAgbWZuOiAwMDAwNWUzNg0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1Nl0gICBnZm46IDAwMDA1ZTM3ICBtZm46IDAw
-MDA1ZTM3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjU2XSAgIGdmbjogMDAwMDVlMzgg
-IG1mbjogMDAwMDVlMzgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTZdICAgZ2ZuOiAw
-MDAwNWUzOSAgbWZuOiAwMDAwNWUzOQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1Nl0g
-ICBnZm46IDAwMDA1ZTNhICBtZm46IDAwMDA1ZTNhDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMzOjU2XSAgIGdmbjogMDAwMDVlM2IgIG1mbjogMDAwMDVlM2INCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzM6NTZdICAgZ2ZuOiAwMDAwNWUzYyAgbWZuOiAwMDAwNWUzYw0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMzo1Nl0gICBnZm46IDAwMDA1ZTNkICBtZm46IDAwMDA1ZTNk
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjU2XSAgIGdmbjogMDAwMDVlM2UgIG1mbjog
-MDAwMDVlM2UNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTZdICAgZ2ZuOiAwMDAwNWUz
-ZiAgbWZuOiAwMDAwNWUzZg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1Nl0gICBnZm46
-IDAwMDA1ZTQwICBtZm46IDAwMDA1ZTQwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjU2
-XSAgIGdmbjogMDAwMDVlNDEgIG1mbjogMDAwMDVlNDENCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzM6NTddICAgZ2ZuOiAwMDAwNWU0MiAgbWZuOiAwMDAwNWU0Mg0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMzo1N10gICBnZm46IDAwMDA1ZTQzICBtZm46IDAwMDA1ZTQzDQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMzOjU3XSAgIGdmbjogMDAwMDVlNDQgIG1mbjogMDAwMDVl
-NDQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTddICAgZ2ZuOiAwMDAwNWU0NSAgbWZu
-OiAwMDAwNWU0NQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1N10gICBnZm46IDAwMDA1
-ZTQ2ICBtZm46IDAwMDA1ZTQ2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjU3XSAgIGdm
-bjogMDAwMDVlNDcgIG1mbjogMDAwMDVlNDcNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6
-NTddICAgZ2ZuOiAwMDAwNWU0OCAgbWZuOiAwMDAwNWU0OA0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMzo1N10gICBnZm46IDAwMDA1ZTQ5ICBtZm46IDAwMDA1ZTQ5DQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMzOjU3XSAgIGdmbjogMDAwMDVlNGEgIG1mbjogMDAwMDVlNGENCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTddICAgZ2ZuOiAwMDAwNWU0YiAgbWZuOiAwMDAw
-NWU0Yg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1N10gICBnZm46IDAwMDA1ZTRjICBt
-Zm46IDAwMDA1ZTRjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjU3XSAgIGdmbjogMDAw
-MDVlNGQgIG1mbjogMDAwMDVlNGQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTddICAg
-Z2ZuOiAwMDAwNWU0ZSAgbWZuOiAwMDAwNWU0ZQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-Mzo1N10gICBnZm46IDAwMDA1ZTRmICBtZm46IDAwMDA1ZTRmDQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMzOjU3XSAgIGdmbjogMDAwMDVlNTAgIG1mbjogMDAwMDVlNTANCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzM6NTddICAgZ2ZuOiAwMDAwNWU1MSAgbWZuOiAwMDAwNWU1MQ0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1N10gICBnZm46IDAwMDA1ZTUyICBtZm46IDAw
-MDA1ZTUyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjU3XSAgIGdmbjogMDAwMDVlNTMg
-IG1mbjogMDAwMDVlNTMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTddICAgZ2ZuOiAw
-MDAwNWU1NCAgbWZuOiAwMDAwNWU1NA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1N10g
-ICBnZm46IDAwMDA1ZTU1ICBtZm46IDAwMDA1ZTU1DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMzOjU3XSAgIGdmbjogMDAwMDVlNTYgIG1mbjogMDAwMDVlNTYNCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzM6NTddICAgZ2ZuOiAwMDAwNWU1NyAgbWZuOiAwMDAwNWU1Nw0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMzo1N10gICBnZm46IDAwMDA1ZTU4ICBtZm46IDAwMDA1ZTU4
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjU3XSAgIGdmbjogMDAwMDVlNTkgIG1mbjog
-MDAwMDVlNTkNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTddICAgZ2ZuOiAwMDAwNWU1
-YSAgbWZuOiAwMDAwNWU1YQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1N10gICBnZm46
-IDAwMDA1ZTViICBtZm46IDAwMDA1ZTViDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjU3
-XSAgIGdmbjogMDAwMDVlNWMgIG1mbjogMDAwMDVlNWMNCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzM6NTddICAgZ2ZuOiAwMDAwNWU1ZCAgbWZuOiAwMDAwNWU1ZA0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMzo1N10gICBnZm46IDAwMDA1ZTVlICBtZm46IDAwMDA1ZTVlDQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMzOjU3XSAgIGdmbjogMDAwMDVlNWYgIG1mbjogMDAwMDVl
-NWYNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTddICAgZ2ZuOiAwMDAwNWU2MCAgbWZu
-OiAwMDAwNWU2MA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1N10gICBnZm46IDAwMDA1
-ZTYxICBtZm46IDAwMDA1ZTYxDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjU3XSAgIGdm
-bjogMDAwMDVlNjIgIG1mbjogMDAwMDVlNjINCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6
-NTddICAgZ2ZuOiAwMDAwNWU2MyAgbWZuOiAwMDAwNWU2Mw0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMzo1N10gICBnZm46IDAwMDA1ZTY0ICBtZm46IDAwMDA1ZTY0DQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMzOjU3XSAgIGdmbjogMDAwMDVlNjUgIG1mbjogMDAwMDVlNjUNCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTddICAgZ2ZuOiAwMDAwNWU2NiAgbWZuOiAwMDAw
-NWU2Ng0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1N10gICBnZm46IDAwMDA1ZTY3ICBt
-Zm46IDAwMDA1ZTY3DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjU3XSAgIGdmbjogMDAw
-MDVlNjggIG1mbjogMDAwMDVlNjgNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTddICAg
-Z2ZuOiAwMDAwNWU2OSAgbWZuOiAwMDAwNWU2OQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-Mzo1N10gICBnZm46IDAwMDA1ZTZhICBtZm46IDAwMDA1ZTZhDQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMzOjU3XSAgIGdmbjogMDAwMDVlNmIgIG1mbjogMDAwMDVlNmINCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzM6NTddICAgZ2ZuOiAwMDAwNWU2YyAgbWZuOiAwMDAwNWU2Yw0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1N10gICBnZm46IDAwMDA1ZTZkICBtZm46IDAw
-MDA1ZTZkDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjU3XSAgIGdmbjogMDAwMDVlNmUg
-IG1mbjogMDAwMDVlNmUNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTddICAgZ2ZuOiAw
-MDAwNWU2ZiAgbWZuOiAwMDAwNWU2Zg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1N10g
-ICBnZm46IDAwMDA1ZTcwICBtZm46IDAwMDA1ZTcwDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIx
-OjMzOjU3XSAgIGdmbjogMDAwMDVlNzEgIG1mbjogMDAwMDVlNzENCg0KKFhFTikgWzIwMTIt
-MDgtMzEgMjE6MzM6NTddICAgZ2ZuOiAwMDAwNWU3MiAgbWZuOiAwMDAwNWU3Mg0KDQooWEVO
-KSBbMjAxMi0wOC0zMSAyMTozMzo1N10gICBnZm46IDAwMDA1ZTczICBtZm46IDAwMDA1ZTcz
-DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjU3XSAgIGdmbjogMDAwMDVlNzQgIG1mbjog
-MDAwMDVlNzQNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTddICAgZ2ZuOiAwMDAwNWU3
-NSAgbWZuOiAwMDAwNWU3NQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1N10gICBnZm46
-IDAwMDA1ZTc2ICBtZm46IDAwMDA1ZTc2DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjU3
-XSAgIGdmbjogMDAwMDVlNzcgIG1mbjogMDAwMDVlNzcNCg0KKFhFTikgWzIwMTItMDgtMzEg
-MjE6MzM6NTddICAgZ2ZuOiAwMDAwNWU3OCAgbWZuOiAwMDAwNWU3OA0KDQooWEVOKSBbMjAx
-Mi0wOC0zMSAyMTozMzo1N10gICBnZm46IDAwMDA1ZTc5ICBtZm46IDAwMDA1ZTc5DQoNCihY
-RU4pIFsyMDEyLTA4LTMxIDIxOjMzOjU3XSAgIGdmbjogMDAwMDVlN2EgIG1mbjogMDAwMDVl
-N2ENCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTddICAgZ2ZuOiAwMDAwNWU3YiAgbWZu
-OiAwMDAwNWU3Yg0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1N10gICBnZm46IDAwMDA1
-ZTdjICBtZm46IDAwMDA1ZTdjDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjU3XSAgIGdm
-bjogMDAwMDVlN2QgIG1mbjogMDAwMDVlN2QNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6
-NTddICAgZ2ZuOiAwMDAwNWU3ZSAgbWZuOiAwMDAwNWU3ZQ0KDQooWEVOKSBbMjAxMi0wOC0z
-MSAyMTozMzo1N10gICBnZm46IDAwMDA1ZTdmICBtZm46IDAwMDA1ZTdmDQoNCihYRU4pIFsy
-MDEyLTA4LTMxIDIxOjMzOjU3XSAgIGdmbjogMDAwMDVlODAgIG1mbjogMDAwMDVlODANCg0K
-KFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NTddICAgZ2ZuOiAwMDAwNWU4MSAgbWZuOiAwMDAw
-NWU4MQ0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1OF0gICBnZm46IDAwMDA1ZTgyICBt
-Zm46IDAwMDA1ZTgyDQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjU4XSAgIGdmbjogMDAw
-MDVlODMgIG1mbjogMDAwMDVlODMNCg0KKFhFTikgWzIwMTItMDgtMzEgMjE6MzM6NThdICAg
-Z2ZuOiAwMDAwNWU4NCAgbWZuOiAwMDAwNWU4NA0KDQooWEVOKSBbMjAxMi0wOC0zMSAyMToz
-Mzo1OF0gICBnZm46IDAwMDA1ZTg1ICBtZm46IDAwMDA1ZTg1DQoNCihYRU4pIFsyMDEyLTA4
-LTMxIDIxOjMzOjU4XSAgIGdmbjogMDAwMDVlODYgIG1mbjogMDAwMDVlODYNCg0KKFhFTikg
-WzIwMTItMDgtMzEgMjE6MzM6NThdICAgZ2ZuOiAwMDAwNWU4NyAgbWZuOiAwMDAwNWU4Nw0K
-DQooWEVOKSBbMjAxMi0wOC0zMSAyMTozMzo1OF0gICBnZm46IDAwMDA1ZTg4ICBtZm46IDAw
-MDA1ZTg4DQoNCihYRU4pIFsyMDEyLTA4LTMxIDIxOjMzOjU4XSAgIGdmbjogMDAwMDVlODkg
-IG1mbjogMDAwMDVlODk=
-------------03F05B075321531C3
-Content-Type: text/plain; charset="us-ascii"
-MIME-Version: 1.0
-Content-Transfer-Encoding: 7bit
-Content-Disposition: inline
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
-------------03F05B075321531C3--
-
-
-
diff --git a/test/corpus/<7392D0E0-02A4-48D7-8B16-4F93EA01F3AF@gridcentric.ca> b/test/corpus/<7392D0E0-02A4-48D7-8B16-4F93EA01F3AF@gridcentric.ca>
deleted file mode 100644 (file)
index af7b0ab..0000000
+++ /dev/null
@@ -1,337 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Aug 29 17:19:41 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 29 Aug 2012 17:19:41 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T6kzS-0008Dh-4M
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 29 Aug 2012 17:19:41 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T6kul-0008Px-NG; Wed, 29 Aug 2012 16:14:47 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <andreslc@gridcentric.ca>) id 1T6kuj-0008Pn-10
-       for xen-devel@lists.xensource.com; Wed, 29 Aug 2012 16:14:47 +0000
-Received: from [85.158.138.51:20076] by server-4.bemta-3.messagelabs.com id
-       96/81-04276-9EF3E305; Wed, 29 Aug 2012 16:14:33 +0000
-X-Env-Sender: andreslc@gridcentric.ca
-X-Msg-Ref: server-11.tower-174.messagelabs.com!1346256870!27503437!1
-X-Originating-IP: [209.85.160.43]
-X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 24107 invoked from network); 29 Aug 2012 16:14:32 -0000
-Received: from mail-pb0-f43.google.com (HELO mail-pb0-f43.google.com)
-       (209.85.160.43)
-       by server-11.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
-       29 Aug 2012 16:14:32 -0000
-Received: by pbbrq2 with SMTP id rq2so1673319pbb.30
-       for <xen-devel@lists.xensource.com>;
-       Wed, 29 Aug 2012 09:14:16 -0700 (PDT)
-X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
-       d=google.com; s=20120113;
-       h=subject:mime-version:content-type:from:in-reply-to:date:cc
-       :content-transfer-encoding:message-id:references:to:x-mailer
-       :x-gm-message-state;
-       bh=hkcsOj/tMbYR9O6C7NWOBt9CHga7CV0h95unRSZpM3g=;
-       b=lldPlFyePMAnO+k9IABsUV5Fo9qNYygIXHYE24GDCDRfJjpX26KIdxnPxVsKEIxFwK
-       M63eFiNQxWgr52N05he5LDMRvYy2sbtbSL5RW8HYTWNts4RuUkqksdUvdchI0TIvuX4p
-       zYlcRZwtldh0oyA2ocz064u4UE2nl581LvyadghQeJL/cc/RmrbgHbLmPzibtkCGw/2A
-       8eqD6a2AjLiCIQsZkC84QZpaVYFBrI9TkblwVSKTkBfGCMYQqMI7YciGw3Alt1hmaksR
-       TUdK7M0kqQz56BBvwE38IbbjRry1ecfEM3H3IILRzm33Re7uZTz1JlJahL0F8B6ALjuC
-       djBA==
-Received: by 10.68.141.46 with SMTP id rl14mr5825640pbb.2.1346256855750;
-       Wed, 29 Aug 2012 09:14:15 -0700 (PDT)
-Received: from [10.10.4.42] (0127ahost2.starwoodbroadband.com. [12.105.246.2])
-       by mx.google.com with ESMTPS id
-       gv1sm19578177pbc.38.2012.08.29.09.14.14
-       (version=TLSv1/SSLv3 cipher=OTHER);
-       Wed, 29 Aug 2012 09:14:15 -0700 (PDT)
-Mime-Version: 1.0 (Apple Message framework v1278)
-From: Andres Lagar-Cavilla <andreslc@gridcentric.ca>
-In-Reply-To: <1346246116-29999-3-git-send-email-david.vrabel@citrix.com>
-Date: Wed, 29 Aug 2012 12:14:17 -0400
-Message-Id: <7392D0E0-02A4-48D7-8B16-4F93EA01F3AF@gridcentric.ca>
-References: <1346246116-29999-1-git-send-email-david.vrabel@citrix.com>
-       <1346246116-29999-3-git-send-email-david.vrabel@citrix.com>
-To: David Vrabel <david.vrabel@citrix.com>
-X-Mailer: Apple Mail (2.1278)
-X-Gm-Message-State: ALoCoQl9bNZRiT6go1FTHwxTiz3hqeuK6eQgtRCC9iJTLrPn9aJ4vAdtb/cKKMOLzboWqaI1pmi3
-Cc: xen-devel@lists.xensource.com,
-       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="windows-1252"
-Content-Transfer-Encoding: quoted-printable
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 2/2] xen/privcmd: add PRIVCMD_MMAPBATCH_V2
-       ioctl
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-
-On Aug 29, 2012, at 9:15 AM, David Vrabel wrote:
-
-> From: David Vrabel <david.vrabel@citrix.com>
-> =
-
-> PRIVCMD_MMAPBATCH_V2 extends PRIVCMD_MMAPBATCH with an additional
-> field for reporting the error code for every frame that could not be
-> mapped.  libxc prefers PRIVCMD_MMAPBATCH_V2 over PRIVCMD_MMAPBATCH.
-> =
-
-> Signed-off-by: David Vrabel <david.vrabel@citrix.com>
-> ---
-> drivers/xen/privcmd.c |   78 +++++++++++++++++++++++++++++++++++++-------=
-----
-> include/xen/privcmd.h |   21 ++++++++++++-
-> 2 files changed, 80 insertions(+), 19 deletions(-)
-> =
-
-> diff --git a/drivers/xen/privcmd.c b/drivers/xen/privcmd.c
-> index ccee0f1..ddd32cf 100644
-> --- a/drivers/xen/privcmd.c
-> +++ b/drivers/xen/privcmd.c
-> @@ -248,18 +248,23 @@ struct mmap_batch_state {
->      struct vm_area_struct *vma;
->      int err;
-> =
-
-> -    xen_pfn_t __user *user;
-> +    xen_pfn_t __user *user_mfn;
-> +    int __user *user_err;
-> };
-> =
-
-> static int mmap_batch_fn(void *data, void *state)
-> {
->      xen_pfn_t *mfnp =3D data;
-> +    int *err =3D data;
-Am I missing something or is there an aliasing here? Both mfnp and err poin=
-t to data?
->      struct mmap_batch_state *st =3D state;
-> +    int ret;
-> =
-
-> -    if (xen_remap_domain_mfn_range(st->vma, st->va & PAGE_MASK, *mfnp, 1,
-> -                                   st->vma->vm_page_prot, st->domain) < 0) {
-> -            *mfnp |=3D 0xf0000000U;
-> -            st->err++;
-> +    ret =3D xen_remap_domain_mfn_range(st->vma, st->va & PAGE_MASK, *mfnp, =
-1,
-> +                                     st->vma->vm_page_prot, st->domain);
-> +    if (ret < 0) {
-> +            *err =3D ret;
-> +            if (st->err =3D=3D 0 || st->err =3D=3D -ENOENT)
-> +                    st->err =3D ret;
-This will unset -ENOENT if a frame after an ENOENT error fails differently.
-
->      }
->      st->va +=3D PAGE_SIZE;
-> =
-
-> @@ -268,18 +273,30 @@ static int mmap_batch_fn(void *data, void *state)
-> =
-
-> static int mmap_return_errors(void *data, void *state)
-> {
-> -    xen_pfn_t *mfnp =3D data;
-> +    int *err =3D data;
->      struct mmap_batch_state *st =3D state;
-> +    int ret;
-> +
-> +    if (st->user_err)
-> +            return __put_user(*err, st->user_err++);
-> +    else {
-> +            xen_pfn_t mfn;
-> =
-
-> -    return put_user(*mfnp, st->user++);
-> +            ret =3D __get_user(mfn, st->user_mfn);
-> +            if (ret < 0)
-> +                    return ret;
-> +
-> +            mfn |=3D PRIVCMD_MMAPBATCH_MFN_ERROR;
-> +            return __put_user(mfn, st->user_mfn++);
-> +    }
-> }
-> =
-
-> static struct vm_operations_struct privcmd_vm_ops;
-> =
-
-> -static long privcmd_ioctl_mmap_batch(void __user *udata)
-> +static long privcmd_ioctl_mmap_batch(void __user *udata, int version)
-> {
->      int ret;
-> -    struct privcmd_mmapbatch m;
-> +    struct privcmd_mmapbatch_v2 m;
->      struct mm_struct *mm =3D current->mm;
->      struct vm_area_struct *vma;
->      unsigned long nr_pages;
-> @@ -289,15 +306,32 @@ static long privcmd_ioctl_mmap_batch(void __user *u=
-data)
->      if (!xen_initial_domain())
->              return -EPERM;
-> =
-
-> -    if (copy_from_user(&m, udata, sizeof(m)))
-> -            return -EFAULT;
-> +    switch (version) {
-> +    case 1:
-> +            if (copy_from_user(&m, udata, sizeof(struct privcmd_mmapbatch)))
-> +                    return -EFAULT;
-> +            /* Returns per-frame error in m.arr. */
-> +            m.err =3D NULL;
-> +            if (!access_ok(VERIFY_WRITE, m.arr, m.num * sizeof(*m.arr)))
-> +                    return -EFAULT;
-> +            break;
-> +    case 2:
-> +            if (copy_from_user(&m, udata, sizeof(struct privcmd_mmapbatch_v2)))
-> +                    return -EFAULT;
-> +            /* Returns per-frame error code in m.err. */
-> +            if (!access_ok(VERIFY_WRITE, m.err, m.num * (sizeof(*m.err))))
-> +                    return -EFAULT;
-> +            break;
-> +    default:
-> +            return -EINVAL;
-> +    }
-> =
-
->      nr_pages =3D m.num;
->      if ((m.num <=3D 0) || (nr_pages > (LONG_MAX >> PAGE_SHIFT)))
->              return -EINVAL;
-> =
-
->      ret =3D gather_array(&pagelist, m.num, sizeof(xen_pfn_t),
-> -                       m.arr);
-> +                       (xen_pfn_t *)m.arr);
-> =
-
->      if (ret || list_empty(&pagelist))
->              goto out;
-> @@ -325,12 +359,16 @@ static long privcmd_ioctl_mmap_batch(void __user *u=
-data)
-> =
-
->      up_write(&mm->mmap_sem);
-> =
-
-> -    if (state.err > 0) {
-> -            state.user =3D m.arr;
-> +    if (state.err) {
-> +            state.user_mfn =3D (xen_pfn_t *)m.arr;
-> +            state.user_err =3D m.err;
->              ret =3D traverse_pages(m.num, sizeof(xen_pfn_t),
-> -                           &pagelist,
-> -                           mmap_return_errors, &state);
-> -    }
-> +                                 &pagelist,
-> +                                 mmap_return_errors, &state);
-The callback now maps data to err (instead of mfnp =85 but I see no change =
-to the gather_array other than a cast =85am I missing something?
-
-Thanks
-Andres
-> +            if (!ret)
-> +                    ret =3D state.err;
-> +    } else if (m.err)
-> +            __clear_user(m.err, m.num * sizeof(*m.err));
-> =
-
-> out:
->      free_page_list(&pagelist);
-> @@ -354,7 +392,11 @@ static long privcmd_ioctl(struct file *file,
->              break;
-> =
-
->      case IOCTL_PRIVCMD_MMAPBATCH:
-> -            ret =3D privcmd_ioctl_mmap_batch(udata);
-> +            ret =3D privcmd_ioctl_mmap_batch(udata, 1);
-> +            break;
-> +
-> +    case IOCTL_PRIVCMD_MMAPBATCH_V2:
-> +            ret =3D privcmd_ioctl_mmap_batch(udata, 2);
->              break;
-> =
-
->      default:
-> diff --git a/include/xen/privcmd.h b/include/xen/privcmd.h
-> index 17857fb..37e5255 100644
-> --- a/include/xen/privcmd.h
-> +++ b/include/xen/privcmd.h
-> @@ -59,13 +59,30 @@ struct privcmd_mmapbatch {
->      int num;     /* number of pages to populate */
->      domid_t dom; /* target domain */
->      __u64 addr;  /* virtual address */
-> -    xen_pfn_t __user *arr; /* array of mfns - top nibble set on err */
-> +    xen_pfn_t __user *arr; /* array of mfns - or'd with
-> +                              PRIVCMD_MMAPBATCH_MFN_ERROR on err */
-> +};
-> +
-> +#define PRIVCMD_MMAPBATCH_MFN_ERROR 0xf0000000U
-> +
-> +struct privcmd_mmapbatch_v2 {
-> +    unsigned int num; /* number of pages to populate */
-> +    domid_t dom;      /* target domain */
-> +    __u64 addr;       /* virtual address */
-> +    const xen_pfn_t __user *arr; /* array of mfns */
-> +    int __user *err;  /* array of error codes */
-> };
-> =
-
-> /*
->  * @cmd: IOCTL_PRIVCMD_HYPERCALL
->  * @arg: &privcmd_hypercall_t
->  * Return: Value returned from execution of the specified hypercall.
-> + *
-> + * @cmd: IOCTL_PRIVCMD_MMAPBATCH_V2
-> + * @arg: &struct privcmd_mmapbatch_v2
-> + * Return: 0 if all pages were mapped successfully. -ENOENT if all
-> + * failed mappings returned -ENOENT, otherwise the error code of the
-> + * first failed mapping.
->  */
-> #define IOCTL_PRIVCMD_HYPERCALL                                      \
->      _IOC(_IOC_NONE, 'P', 0, sizeof(struct privcmd_hypercall))
-> @@ -73,5 +90,7 @@ struct privcmd_mmapbatch {
->      _IOC(_IOC_NONE, 'P', 2, sizeof(struct privcmd_mmap))
-> #define IOCTL_PRIVCMD_MMAPBATCH                                      \
->      _IOC(_IOC_NONE, 'P', 3, sizeof(struct privcmd_mmapbatch))
-> +#define IOCTL_PRIVCMD_MMAPBATCH_V2                          \
-> +    _IOC(_IOC_NONE, 'P', 4, sizeof(struct privcmd_mmapbatch_v2))
-> =
-
-> #endif /* __LINUX_PUBLIC_PRIVCMD_H__ */
-> -- =
-
-> 1.7.2.5
-> =
-
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<768327829.20120904102146@eikelenboom.it> b/test/corpus/<768327829.20120904102146@eikelenboom.it>
deleted file mode 100644 (file)
index d13b35e..0000000
+++ /dev/null
@@ -1,151 +0,0 @@
-From xen-devel-bounces@lists.xen.org Tue Sep 04 09:26:00 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Tue, 04 Sep 2012 09:26:00 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T8oSI-0001VJ-An
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 04 Sep 2012 09:26:00 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T8oPC-0005Ft-57; Tue, 04 Sep 2012 08:22:42 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <linux@eikelenboom.it>) id 1T8oPB-0005Fg-CN
-       for xen-devel@lists.xen.org; Tue, 04 Sep 2012 08:22:41 +0000
-Received: from [85.158.143.99:48403] by server-3.bemta-4.messagelabs.com id
-       2A/A5-08232-05AB5405; Tue, 04 Sep 2012 08:22:40 +0000
-X-Env-Sender: linux@eikelenboom.it
-X-Msg-Ref: server-10.tower-216.messagelabs.com!1346746908!21996902!1
-X-Originating-IP: [188.40.164.121]
-X-SpamReason: No, hits=0.0 required=7.0 tests=
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 20228 invoked from network); 4 Sep 2012 08:21:49 -0000
-Received: from static.121.164.40.188.clients.your-server.de (HELO
-       smtp.eikelenboom.it) (188.40.164.121)
-       by server-10.tower-216.messagelabs.com with AES256-SHA encrypted SMTP;
-       4 Sep 2012 08:21:49 -0000
-Received: from 26-69-ftth.onsneteindhoven.nl ([88.159.69.26]:49734
-       helo=[172.16.1.20])
-       by smtp.eikelenboom.it with esmtpsa (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72) (envelope-from <linux@eikelenboom.it>)
-       id 1T8oLH-0002Se-Hy; Tue, 04 Sep 2012 10:18:39 +0200
-Date: Tue, 4 Sep 2012 10:21:46 +0200
-From: Sander Eikelenboom <linux@eikelenboom.it>
-Organization: Eikelenboom IT services
-X-Priority: 3 (Normal)
-Message-ID: <768327829.20120904102146@eikelenboom.it>
-To: Wei Wang <wei.wang2@amd.com>
-In-Reply-To: <5044CAD7.8030800@amd.com>
-References: <40501859.20120902104331@eikelenboom.it>
-       <CC6932C2.3D99D%keir.xen@gmail.com>
-       <217459398.20120902171441@eikelenboom.it>
-       <5044CAD7.8030800@amd.com>
-MIME-Version: 1.0
-Cc: Keir Fraser <keir.xen@gmail.com>, Santosh Jodh <Santosh.Jodh@citrix.com>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] Using debug-key 'o:  Dump IOMMU p2m table,
-       locks up machine
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-Hello Wei,
-
-Monday, September 3, 2012, 5:20:55 PM, you wrote:
-
-> On 09/02/2012 05:14 PM, Sander Eikelenboom wrote:
->> Sunday, September 2, 2012, 4:58:58 PM, you wrote:
->>
->>> On 02/09/2012 09:43, "Sander Eikelenboom"<linux@eikelenboom.it>  wrote:
->>
->>>>> Quite simply, there likely needs to be more tracing on the IOMMU fault path.
->>>>> That's a separate concern from your keyhandler of course, but just saying
->>>>> I'd be looking for the former rather than the latter, for diagnosing
->>>>> Sander's bug.
->>>>
->>>> Are there any printk's I could add to get more relevant info about the AMD-Vi:
->>>> IO_PAGE_FAULT ?
->>
->>> No really straightforward one. I think we need a per-IOMMU-type handler to
->>> walk the IOMMU page table for a given virtual address, and dump every
->>> page-table-entry on the path. Like an IOMMU version of show_page_walk().
->>> Personally I would suspect this is more useful than the dump-everything
->>> handlers: just give a *full* *detailed* walk for the actually interesting
->>> virtual address (the one faulted on).
->>
->>>> I have attached new output from xl dmesg, this time with iommu=debug on (the
->>>> option changed from 4.1 to 4.2).
->>
->>> Not easy to glean any more from that, without extra tracing such as
->>> described above, and/or digging into the guest to find what driver-side
->>> actions are causing the faults.
->>
->> OK, too bad!
->> With xen 4.1 i haven't experienced those page faults, but a diff between /xen/drivers/passthrough/amd in both trees show quite some changes :(
-
-> Did you also update xen tools accordingly? Sometime I also saw a few 
-> IO_PAGE_FAULTs came from nic if my tools version and HV version did not 
-> match. But using recent 4.2 and corresponding xl, my tests went well.
-> BTW: You could also try iommu=no-sharept to see if it helps.
-
-I have done a make world && make install, after that checked the date on (most of) the binaries and libs.
-All should be 4.2, will try the iommu=no-sharept, but as said, this wasn't necessary with 4.1.3.
-
-
-> Thanks,
-> Wei
-
->>>   -- Keir
->>
->>>>
->>>>
->>>>>   -- Keir
->>>>
->>
->>
->>
->>
->>
->>
-
-
-
-
-
-
--- 
-Best regards,
- Sander                            mailto:linux@eikelenboom.it
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<7914B38A4445B34AA16EB9F1352942F1012F0F6F4AE2@SJCPMAILBOX01.citrite.net> b/test/corpus/<7914B38A4445B34AA16EB9F1352942F1012F0F6F4AE2@SJCPMAILBOX01.citrite.net>
deleted file mode 100644 (file)
index 3f6df23..0000000
+++ /dev/null
@@ -1,121 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Aug 31 23:28:48 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 31 Aug 2012 23:28:48 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T7Zhm-0008Ss-A1
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 31 Aug 2012 23:28:48 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T7Ze7-0007or-IG; Fri, 31 Aug 2012 22:24:59 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Santosh.Jodh@citrix.com>) id 1T7Ze5-0007oj-1p
-       for xen-devel@lists.xen.org; Fri, 31 Aug 2012 22:24:57 +0000
-Received: from [85.158.143.99:50160] by server-1.bemta-4.messagelabs.com id
-       FB/82-12504-8B931405; Fri, 31 Aug 2012 22:24:56 +0000
-X-Env-Sender: Santosh.Jodh@citrix.com
-X-Msg-Ref: server-2.tower-216.messagelabs.com!1346451891!22594600!1
-X-Originating-IP: [66.165.176.63]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyNzU0NjM=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 32714 invoked from network); 31 Aug 2012 22:24:54 -0000
-Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
-       by server-2.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
-       31 Aug 2012 22:24:54 -0000
-X-IronPort-AV: E=Sophos;i="4.80,349,1344211200"; d="scan'208";a="206834383"
-Received: from sjcpmailmx01.citrite.net ([10.216.14.74])
-       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       31 Aug 2012 22:24:50 +0000
-Received: from SJCPMAILBOX01.citrite.net ([10.216.4.72]) by
-       SJCPMAILMX01.citrite.net ([10.216.14.74]) with mapi; Fri, 31 Aug 2012
-       15:24:50 -0700
-From: Santosh Jodh <Santosh.Jodh@citrix.com>
-To: Sander Eikelenboom <linux@eikelenboom.it>, "wei.wang2@amd.com"
-       <wei.wang2@amd.com>
-Date: Fri, 31 Aug 2012 15:24:32 -0700
-Thread-Topic: Using debug-key 'o:  Dump IOMMU p2m table, locks up machine
-Thread-Index: Ac2HweyIv5hYCE9zTGOx/ZCh1l3JGQAAw+qw
-Message-ID: <7914B38A4445B34AA16EB9F1352942F1012F0F6F4AE2@SJCPMAILBOX01.citrite.net>
-References: <647712821.20120831234512@eikelenboom.it>
-In-Reply-To: <647712821.20120831234512@eikelenboom.it>
-Accept-Language: en-US
-Content-Language: en-US
-X-MS-Has-Attach: 
-X-MS-TNEF-Correlator: 
-acceptlanguage: en-US
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] Using debug-key 'o:  Dump IOMMU p2m table,
-       locks up machine
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-Depending on how many VMs you have and the size of the IOMMU p2m table, it can take a while. It should not be infinite though. 
-
-How many VMs do you have running?
-
-Can you please send the serial output when you press 'o'?
-
-Santosh
-
-> -----Original Message-----
-> From: Sander Eikelenboom [mailto:linux@eikelenboom.it]
-> Sent: Friday, August 31, 2012 2:45 PM
-> To: Santosh Jodh; wei.wang2@amd.com
-> Cc: xen-devel@lists.xen.org
-> Subject: Using debug-key 'o: Dump IOMMU p2m table, locks up machine
-> 
-> 
-> I was trying to use the 'o' debug key to make a bug report about an "AMD-Vi:
-> IO_PAGE_FAULT".
-> 
-> The result:
-> - When using "xl debug-keys o", the machine seems in a infinite loop, can
-> hardly login, eventually resulting in a kernel RCU stall and complete lockup.
-> - When using serial console: I get a infinite stream of "gfn:  mfn: " lines, mean
-> while on the normal console, S-ATA devices are starting to give errors.
-> 
-> So either option trashes the machine, other debug-keys work fine.
-> 
-> Machine has a 890-fx chipset and AMD phenom x6 proc.
-> 
-> xl dmesg with bootup and output from some other debug-keys is attached.
-> 
-> --
-> 
-> Sander
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<7914B38A4445B34AA16EB9F1352942F1012F0F6F4B01@SJCPMAILBOX01.citrite.net> b/test/corpus/<7914B38A4445B34AA16EB9F1352942F1012F0F6F4B01@SJCPMAILBOX01.citrite.net>
deleted file mode 100644 (file)
index 017e4ea..0000000
+++ /dev/null
@@ -1,156 +0,0 @@
-From xen-devel-bounces@lists.xen.org Sat Sep 01 00:03:12 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Sat, 01 Sep 2012 00:03:12 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T7aF4-00006r-88
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Sat, 01 Sep 2012 00:03:12 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T7aAD-0008HA-8J; Fri, 31 Aug 2012 22:58:09 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Santosh.Jodh@citrix.com>) id 1T7aAB-0008H5-KM
-       for xen-devel@lists.xen.org; Fri, 31 Aug 2012 22:58:07 +0000
-Received: from [85.158.143.35:41071] by server-1.bemta-4.messagelabs.com id
-       22/8C-12504-E7141405; Fri, 31 Aug 2012 22:58:06 +0000
-X-Env-Sender: Santosh.Jodh@citrix.com
-X-Msg-Ref: server-16.tower-21.messagelabs.com!1346453883!13621648!1
-X-Originating-IP: [66.165.176.89]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNjc1NTc=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 4582 invoked from network); 31 Aug 2012 22:58:04 -0000
-Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
-       by server-16.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
-       31 Aug 2012 22:58:04 -0000
-X-IronPort-AV: E=Sophos;i="4.80,349,1344211200"; d="scan'208";a="36489112"
-Received: from sjcpmailmx01.citrite.net ([10.216.14.74])
-       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       31 Aug 2012 22:58:02 +0000
-Received: from SJCPMAILBOX01.citrite.net ([10.216.4.72]) by
-       SJCPMAILMX01.citrite.net ([10.216.14.74]) with mapi; Fri, 31 Aug 2012
-       15:58:02 -0700
-From: Santosh Jodh <Santosh.Jodh@citrix.com>
-To: Sander Eikelenboom <linux@eikelenboom.it>
-Date: Fri, 31 Aug 2012 15:57:45 -0700
-Thread-Topic: Using debug-key 'o:  Dump IOMMU p2m table, locks up machine
-Thread-Index: Ac2HygBemrKmdBKQSXeAP3wUbiv4UQAATdbA
-Message-ID: <7914B38A4445B34AA16EB9F1352942F1012F0F6F4B01@SJCPMAILBOX01.citrite.net>
-References: <647712821.20120831234512@eikelenboom.it>
-       <7914B38A4445B34AA16EB9F1352942F1012F0F6F4AE2@SJCPMAILBOX01.citrite.net>
-       <723041396.20120901004249@eikelenboom.it>
-In-Reply-To: <723041396.20120901004249@eikelenboom.it>
-Accept-Language: en-US
-Content-Language: en-US
-X-MS-Has-Attach: 
-X-MS-TNEF-Correlator: 
-acceptlanguage: en-US
-MIME-Version: 1.0
-Cc: "wei.wang2@amd.com" <wei.wang2@amd.com>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] Using debug-key 'o:  Dump IOMMU p2m table,
-       locks up machine
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-The dump should complete - would be curious to see how long it takes on serial console. What baudrate is the console running at?
-
-The code does allow processing of pending softirqs quite frequently. I am not sure why you are still seeing SATA errors.
-
-> -----Original Message-----
-> From: Sander Eikelenboom [mailto:linux@eikelenboom.it]
-> Sent: Friday, August 31, 2012 3:43 PM
-> To: Santosh Jodh
-> Cc: wei.wang2@amd.com; xen-devel@lists.xen.org
-> Subject: Re: Using debug-key 'o: Dump IOMMU p2m table, locks up machine
-> 
-> 
-> Saturday, September 1, 2012, 12:24:32 AM, you wrote:
-> 
-> > Depending on how many VMs you have and the size of the IOMMU p2m
-> table, it can take a while. It should not be infinite though.
-> 
-> > How many VMs do you have running?
-> 
-> 15
-> 
-> > Can you please send the serial output when you press 'o'?
-> 
-> Attached, to the end you will see the s-ata errors coming through while the
-> dump still runs.
-> This is not a complete dump, only a few minutes after which i did a hard
-> reset.
-> 
-> > Santosh
-> 
-> >> -----Original Message-----
-> >> From: Sander Eikelenboom [mailto:linux@eikelenboom.it]
-> >> Sent: Friday, August 31, 2012 2:45 PM
-> >> To: Santosh Jodh; wei.wang2@amd.com
-> >> Cc: xen-devel@lists.xen.org
-> >> Subject: Using debug-key 'o: Dump IOMMU p2m table, locks up machine
-> >>
-> >>
-> >> I was trying to use the 'o' debug key to make a bug report about an "AMD-
-> Vi:
-> >> IO_PAGE_FAULT".
-> >>
-> >> The result:
-> >> - When using "xl debug-keys o", the machine seems in a infinite loop,
-> >> can hardly login, eventually resulting in a kernel RCU stall and complete
-> lockup.
-> >> - When using serial console: I get a infinite stream of "gfn:  mfn: "
-> >> lines, mean while on the normal console, S-ATA devices are starting to
-> give errors.
-> >>
-> >> So either option trashes the machine, other debug-keys work fine.
-> >>
-> >> Machine has a 890-fx chipset and AMD phenom x6 proc.
-> >>
-> >> xl dmesg with bootup and output from some other debug-keys is
-> attached.
-> >>
-> >> --
-> >>
-> >> Sander
-> 
-> 
-> 
-> 
-> --
-> Best regards,
->  Sander                            mailto:linux@eikelenboom.it
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<7914B38A4445B34AA16EB9F1352942F1012F0F6F4B3C@SJCPMAILBOX01.citrite.net> b/test/corpus/<7914B38A4445B34AA16EB9F1352942F1012F0F6F4B3C@SJCPMAILBOX01.citrite.net>
deleted file mode 100644 (file)
index 4b7cc2e..0000000
+++ /dev/null
@@ -1,201 +0,0 @@
-From xen-devel-bounces@lists.xen.org Sat Sep 01 01:03:39 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Sat, 01 Sep 2012 01:03:39 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T7bBX-0000GN-Bx
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Sat, 01 Sep 2012 01:03:39 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T7b6w-0000aE-HS; Fri, 31 Aug 2012 23:58:50 +0000
-Received: from mail27.messagelabs.com ([193.109.254.147])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Santosh.Jodh@citrix.com>) id 1T7b6u-0000a6-0d
-       for xen-devel@lists.xen.org; Fri, 31 Aug 2012 23:58:48 +0000
-X-Env-Sender: Santosh.Jodh@citrix.com
-X-Msg-Ref: server-15.tower-27.messagelabs.com!1346457518!2083090!1
-X-Originating-IP: [66.165.176.89]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNjc1NTc=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 15166 invoked from network); 31 Aug 2012 23:58:40 -0000
-Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
-       by server-15.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
-       31 Aug 2012 23:58:40 -0000
-X-IronPort-AV: E=Sophos;i="4.80,351,1344211200"; d="scan'208";a="36491518"
-Received: from sjcpmailmx01.citrite.net ([10.216.14.74])
-       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       31 Aug 2012 23:58:38 +0000
-Received: from SJCPMAILBOX01.citrite.net ([10.216.4.72]) by
-       SJCPMAILMX01.citrite.net ([10.216.14.74]) with mapi; Fri, 31 Aug 2012
-       16:58:37 -0700
-From: Santosh Jodh <Santosh.Jodh@citrix.com>
-To: Sander Eikelenboom <linux@eikelenboom.it>
-Date: Fri, 31 Aug 2012 16:58:20 -0700
-Thread-Topic: Using debug-key 'o:  Dump IOMMU p2m table, locks up machine
-Thread-Index: Ac2Hzqq+LRXFiknsRxabJDC8y7W61AAALreg
-Message-ID: <7914B38A4445B34AA16EB9F1352942F1012F0F6F4B3C@SJCPMAILBOX01.citrite.net>
-References: <647712821.20120831234512@eikelenboom.it>
-       <7914B38A4445B34AA16EB9F1352942F1012F0F6F4AE2@SJCPMAILBOX01.citrite.net>
-       <723041396.20120901004249@eikelenboom.it>
-       <7914B38A4445B34AA16EB9F1352942F1012F0F6F4B01@SJCPMAILBOX01.citrite.net>
-       <1377403931.20120901011625@eikelenboom.it>
-In-Reply-To: <1377403931.20120901011625@eikelenboom.it>
-Accept-Language: en-US
-Content-Language: en-US
-X-MS-Has-Attach: 
-X-MS-TNEF-Correlator: 
-acceptlanguage: en-US
-MIME-Version: 1.0
-Cc: "wei.wang2@amd.com" <wei.wang2@amd.com>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] Using debug-key 'o:  Dump IOMMU p2m table,
-       locks up machine
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-1:1 mapping is not the common case for gfn-mfn. It is hard to say how much output would shrink by dumping contiguous ranges instead of individual pfns in the general case.
-
-> -----Original Message-----
-> From: Sander Eikelenboom [mailto:linux@eikelenboom.it]
-> Sent: Friday, August 31, 2012 4:16 PM
-> To: Santosh Jodh
-> Cc: wei.wang2@amd.com; xen-devel@lists.xen.org
-> Subject: Re: Using debug-key 'o: Dump IOMMU p2m table, locks up machine
-> 
-> 
-> Saturday, September 1, 2012, 12:57:45 AM, you wrote:
-> 
-> > The dump should complete - would be curious to see how long it takes on
-> serial console. What baudrate is the console running at?
-> 
-> I think for ages, this part seems only to cover a bit of the first of 3 pv guests
-> which have devices passed through.
-> 38400
-> 
-> And i wonder if the information is very valuable, gfn == mfn for every line ...
-> at an increment of 1 ...
-> Perhaps a uhmmm more compact way of getting the interesting data would
-> be handy ?
-> Or is this the intended output ?
-> 
-> > The code does allow processing of pending softirqs quite frequently. I am
-> not sure why you are still seeing SATA errors.
-> 
-> The machine is completely unresponsive in every way.
-> 
-> And using it with "xl debug-keys o" is never going to work i guess, since the
-> information flood is far larger than "xl dmesg" keeps ?
-> 
-> 
-> 
-> >> -----Original Message-----
-> >> From: Sander Eikelenboom [mailto:linux@eikelenboom.it]
-> >> Sent: Friday, August 31, 2012 3:43 PM
-> >> To: Santosh Jodh
-> >> Cc: wei.wang2@amd.com; xen-devel@lists.xen.org
-> >> Subject: Re: Using debug-key 'o: Dump IOMMU p2m table, locks up
-> >> machine
-> >>
-> >>
-> >> Saturday, September 1, 2012, 12:24:32 AM, you wrote:
-> >>
-> >> > Depending on how many VMs you have and the size of the IOMMU
-> p2m
-> >> table, it can take a while. It should not be infinite though.
-> >>
-> >> > How many VMs do you have running?
-> >>
-> >> 15
-> >>
-> >> > Can you please send the serial output when you press 'o'?
-> >>
-> >> Attached, to the end you will see the s-ata errors coming through
-> >> while the dump still runs.
-> >> This is not a complete dump, only a few minutes after which i did a
-> >> hard reset.
-> >>
-> >> > Santosh
-> >>
-> >> >> -----Original Message-----
-> >> >> From: Sander Eikelenboom [mailto:linux@eikelenboom.it]
-> >> >> Sent: Friday, August 31, 2012 2:45 PM
-> >> >> To: Santosh Jodh; wei.wang2@amd.com
-> >> >> Cc: xen-devel@lists.xen.org
-> >> >> Subject: Using debug-key 'o: Dump IOMMU p2m table, locks up
-> >> >> machine
-> >> >>
-> >> >>
-> >> >> I was trying to use the 'o' debug key to make a bug report about
-> >> >> an "AMD-
-> >> Vi:
-> >> >> IO_PAGE_FAULT".
-> >> >>
-> >> >> The result:
-> >> >> - When using "xl debug-keys o", the machine seems in a infinite
-> >> >> loop, can hardly login, eventually resulting in a kernel RCU stall
-> >> >> and complete
-> >> lockup.
-> >> >> - When using serial console: I get a infinite stream of "gfn:  mfn: "
-> >> >> lines, mean while on the normal console, S-ATA devices are
-> >> >> starting to
-> >> give errors.
-> >> >>
-> >> >> So either option trashes the machine, other debug-keys work fine.
-> >> >>
-> >> >> Machine has a 890-fx chipset and AMD phenom x6 proc.
-> >> >>
-> >> >> xl dmesg with bootup and output from some other debug-keys is
-> >> attached.
-> >> >>
-> >> >> --
-> >> >>
-> >> >> Sander
-> >>
-> >>
-> >>
-> >>
-> >> --
-> >> Best regards,
-> >>  Sander                            mailto:linux@eikelenboom.it
-> 
-> 
-> 
-> 
-> --
-> Best regards,
->  Sander                            mailto:linux@eikelenboom.it
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<7914B38A4445B34AA16EB9F1352942F1012F0F6F4B5B@SJCPMAILBOX01.citrite.net> b/test/corpus/<7914B38A4445B34AA16EB9F1352942F1012F0F6F4B5B@SJCPMAILBOX01.citrite.net>
deleted file mode 100644 (file)
index 45d243f..0000000
+++ /dev/null
@@ -1,218 +0,0 @@
-From xen-devel-bounces@lists.xen.org Sat Sep 01 01:48:06 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Sat, 01 Sep 2012 01:48:06 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T7bsZ-0000LZ-CC
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Sat, 01 Sep 2012 01:48:06 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T7bnk-0001Ms-4I; Sat, 01 Sep 2012 00:43:04 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Santosh.Jodh@citrix.com>) id 1T7bni-0001Mn-0I
-       for xen-devel@lists.xen.org; Sat, 01 Sep 2012 00:43:02 +0000
-Received: from [85.158.139.83:34915] by server-11.bemta-5.messagelabs.com id
-       6B/92-24658-51A51405; Sat, 01 Sep 2012 00:43:01 +0000
-X-Env-Sender: Santosh.Jodh@citrix.com
-X-Msg-Ref: server-11.tower-182.messagelabs.com!1346460179!20768308!1
-X-Originating-IP: [66.165.176.89]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNjc1NTc=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 20832 invoked from network); 1 Sep 2012 00:43:00 -0000
-Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
-       by server-11.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
-       1 Sep 2012 00:43:00 -0000
-X-IronPort-AV: E=Sophos;i="4.80,351,1344211200"; d="scan'208";a="36493191"
-Received: from sjcpmailmx02.citrite.net ([10.216.14.75])
-       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       01 Sep 2012 00:42:31 +0000
-Received: from SJCPMAILBOX01.citrite.net ([10.216.4.72]) by
-       SJCPMAILMX02.citrite.net ([10.216.14.75]) with mapi; Fri, 31 Aug 2012
-       17:42:29 -0700
-From: Santosh Jodh <Santosh.Jodh@citrix.com>
-To: Sander Eikelenboom <linux@eikelenboom.it>
-Date: Fri, 31 Aug 2012 17:42:06 -0700
-Thread-Topic: Using debug-key 'o:  Dump IOMMU p2m table, locks up machine
-Thread-Index: Ac2Hzqq+LRXFiknsRxabJDC8y7W61AAALregAAK8FuA=
-Message-ID: <7914B38A4445B34AA16EB9F1352942F1012F0F6F4B5B@SJCPMAILBOX01.citrite.net>
-References: <647712821.20120831234512@eikelenboom.it>
-       <7914B38A4445B34AA16EB9F1352942F1012F0F6F4AE2@SJCPMAILBOX01.citrite.net>
-       <723041396.20120901004249@eikelenboom.it>
-       <7914B38A4445B34AA16EB9F1352942F1012F0F6F4B01@SJCPMAILBOX01.citrite.net>
-       <1377403931.20120901011625@eikelenboom.it> 
-Accept-Language: en-US
-Content-Language: en-US
-X-MS-Has-Attach: 
-X-MS-TNEF-Correlator: 
-acceptlanguage: en-US
-MIME-Version: 1.0
-Cc: "wei.wang2@amd.com" <wei.wang2@amd.com>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] Using debug-key 'o:  Dump IOMMU p2m table,
-       locks up machine
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-BTW, I should add that 1:1 mapping for the VM seems very suspicious. Wei can comment for sure.
-
-> -----Original Message-----
-> From: Santosh Jodh
-> Sent: Friday, August 31, 2012 4:58 PM
-> To: 'Sander Eikelenboom'
-> Cc: wei.wang2@amd.com; xen-devel@lists.xen.org
-> Subject: RE: Using debug-key 'o: Dump IOMMU p2m table, locks up machine
-> 
-> 1:1 mapping is not the common case for gfn-mfn. It is hard to say how much
-> output would shrink by dumping contiguous ranges instead of individual pfns
-> in the general case.
-> 
-> > -----Original Message-----
-> > From: Sander Eikelenboom [mailto:linux@eikelenboom.it]
-> > Sent: Friday, August 31, 2012 4:16 PM
-> > To: Santosh Jodh
-> > Cc: wei.wang2@amd.com; xen-devel@lists.xen.org
-> > Subject: Re: Using debug-key 'o: Dump IOMMU p2m table, locks up
-> > machine
-> >
-> >
-> > Saturday, September 1, 2012, 12:57:45 AM, you wrote:
-> >
-> > > The dump should complete - would be curious to see how long it takes
-> > > on
-> > serial console. What baudrate is the console running at?
-> >
-> > I think for ages, this part seems only to cover a bit of the first of
-> > 3 pv guests which have devices passed through.
-> > 38400
-> >
-> > And i wonder if the information is very valuable, gfn == mfn for every line
-> ...
-> > at an increment of 1 ...
-> > Perhaps a uhmmm more compact way of getting the interesting data
-> would
-> > be handy ?
-> > Or is this the intended output ?
-> >
-> > > The code does allow processing of pending softirqs quite frequently.
-> > > I am
-> > not sure why you are still seeing SATA errors.
-> >
-> > The machine is completely unresponsive in every way.
-> >
-> > And using it with "xl debug-keys o" is never going to work i guess,
-> > since the information flood is far larger than "xl dmesg" keeps ?
-> >
-> >
-> >
-> > >> -----Original Message-----
-> > >> From: Sander Eikelenboom [mailto:linux@eikelenboom.it]
-> > >> Sent: Friday, August 31, 2012 3:43 PM
-> > >> To: Santosh Jodh
-> > >> Cc: wei.wang2@amd.com; xen-devel@lists.xen.org
-> > >> Subject: Re: Using debug-key 'o: Dump IOMMU p2m table, locks up
-> > >> machine
-> > >>
-> > >>
-> > >> Saturday, September 1, 2012, 12:24:32 AM, you wrote:
-> > >>
-> > >> > Depending on how many VMs you have and the size of the IOMMU
-> > p2m
-> > >> table, it can take a while. It should not be infinite though.
-> > >>
-> > >> > How many VMs do you have running?
-> > >>
-> > >> 15
-> > >>
-> > >> > Can you please send the serial output when you press 'o'?
-> > >>
-> > >> Attached, to the end you will see the s-ata errors coming through
-> > >> while the dump still runs.
-> > >> This is not a complete dump, only a few minutes after which i did a
-> > >> hard reset.
-> > >>
-> > >> > Santosh
-> > >>
-> > >> >> -----Original Message-----
-> > >> >> From: Sander Eikelenboom [mailto:linux@eikelenboom.it]
-> > >> >> Sent: Friday, August 31, 2012 2:45 PM
-> > >> >> To: Santosh Jodh; wei.wang2@amd.com
-> > >> >> Cc: xen-devel@lists.xen.org
-> > >> >> Subject: Using debug-key 'o: Dump IOMMU p2m table, locks up
-> > >> >> machine
-> > >> >>
-> > >> >>
-> > >> >> I was trying to use the 'o' debug key to make a bug report about
-> > >> >> an "AMD-
-> > >> Vi:
-> > >> >> IO_PAGE_FAULT".
-> > >> >>
-> > >> >> The result:
-> > >> >> - When using "xl debug-keys o", the machine seems in a infinite
-> > >> >> loop, can hardly login, eventually resulting in a kernel RCU
-> > >> >> stall and complete
-> > >> lockup.
-> > >> >> - When using serial console: I get a infinite stream of "gfn:  mfn: "
-> > >> >> lines, mean while on the normal console, S-ATA devices are
-> > >> >> starting to
-> > >> give errors.
-> > >> >>
-> > >> >> So either option trashes the machine, other debug-keys work fine.
-> > >> >>
-> > >> >> Machine has a 890-fx chipset and AMD phenom x6 proc.
-> > >> >>
-> > >> >> xl dmesg with bootup and output from some other debug-keys is
-> > >> attached.
-> > >> >>
-> > >> >> --
-> > >> >>
-> > >> >> Sander
-> > >>
-> > >>
-> > >>
-> > >>
-> > >> --
-> > >> Best regards,
-> > >>  Sander                            mailto:linux@eikelenboom.it
-> >
-> >
-> >
-> >
-> > --
-> > Best regards,
-> >  Sander                            mailto:linux@eikelenboom.it
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<7914B38A4445B34AA16EB9F1352942F1012F0F6F4B98@SJCPMAILBOX01.citrite.net> b/test/corpus/<7914B38A4445B34AA16EB9F1352942F1012F0F6F4B98@SJCPMAILBOX01.citrite.net>
deleted file mode 100644 (file)
index 5d14c00..0000000
+++ /dev/null
@@ -1,136 +0,0 @@
-From xen-devel-bounces@lists.xen.org Sat Sep 01 18:10:36 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Sat, 01 Sep 2012 18:10:36 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T7rDO-0006Lw-Bv
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Sat, 01 Sep 2012 18:10:36 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T7r7O-0002OV-73; Sat, 01 Sep 2012 17:04:22 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Santosh.Jodh@citrix.com>) id 1T7r7M-0002OQ-7B
-       for xen-devel@lists.xen.org; Sat, 01 Sep 2012 17:04:20 +0000
-Received: from [85.158.143.99:13942] by server-3.bemta-4.messagelabs.com id
-       21/54-08232-31042405; Sat, 01 Sep 2012 17:04:19 +0000
-X-Env-Sender: Santosh.Jodh@citrix.com
-X-Msg-Ref: server-2.tower-216.messagelabs.com!1346519057!22671298!1
-X-Originating-IP: [66.165.176.89]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNjc3MTY=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 17739 invoked from network); 1 Sep 2012 17:04:18 -0000
-Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
-       by server-2.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
-       1 Sep 2012 17:04:18 -0000
-X-IronPort-AV: E=Sophos;i="4.80,353,1344211200"; d="scan'208";a="36519459"
-Received: from sjcpmailmx02.citrite.net ([10.216.14.75])
-       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       01 Sep 2012 17:04:13 +0000
-Received: from SJCPMAILBOX01.citrite.net ([10.216.4.72]) by
-       SJCPMAILMX02.citrite.net ([10.216.14.75]) with mapi;
-       Sat, 1 Sep 2012 10:04:12 -0700
-From: Santosh Jodh <Santosh.Jodh@citrix.com>
-To: Keir Fraser <keir.xen@gmail.com>, Sander Eikelenboom <linux@eikelenboom.it>
-Date: Sat, 1 Sep 2012 10:03:54 -0700
-Thread-Topic: [Xen-devel] Using debug-key 'o:  Dump IOMMU p2m table, locks
-       up machine
-Thread-Index: Ac2H5anSA9JOwrAdv0yUGY6DtFwLdQAfNVTw
-Message-ID: <7914B38A4445B34AA16EB9F1352942F1012F0F6F4B98@SJCPMAILBOX01.citrite.net>
-References: <1377403931.20120901011625@eikelenboom.it>
-       <CC672AF9.3D8E2%keir.xen@gmail.com>
-In-Reply-To: <CC672AF9.3D8E2%keir.xen@gmail.com>
-Accept-Language: en-US
-Content-Language: en-US
-X-MS-Has-Attach: 
-X-MS-TNEF-Correlator: 
-acceptlanguage: en-US
-MIME-Version: 1.0
-Cc: "wei.wang2@amd.com" <wei.wang2@amd.com>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] Using debug-key 'o:  Dump IOMMU p2m table,
- locks up machine
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-
-
-> -----Original Message-----
-> From: Keir Fraser [mailto:keir.xen@gmail.com]
-> Sent: Friday, August 31, 2012 7:01 PM
-> To: Sander Eikelenboom; Santosh Jodh
-> Cc: wei.wang2@amd.com; xen-devel@lists.xen.org
-> Subject: Re: [Xen-devel] Using debug-key 'o: Dump IOMMU p2m table, locks
-> up machine
-> 
-> On 01/09/2012 00:16, "Sander Eikelenboom" <linux@eikelenboom.it> wrote:
-> 
-> >
-> > Saturday, September 1, 2012, 12:57:45 AM, you wrote:
-> >
-> >> The dump should complete - would be curious to see how long it takes
-> >> on serial console. What baudrate is the console running at?
-> >
-> > I think for ages, this part seems only to cover a bit of the first of
-> > 3 pv guests which have devices passed through.
-> > 38400
-> >
-> > And i wonder if the information is very valuable, gfn == mfn for every
-> > line ... at an increment of 1 ...
-> > Perhaps a uhmmm more compact way of getting the interesting data
-> would
-> > be handy ?
-> > Or is this the intended output ?
-> >
-> >> The code does allow processing of pending softirqs quite frequently.
-> >> I am not sure why you are still seeing SATA errors.
-> >
-> > The machine is completely unresponsive in every way.
-> 
-> It might schedule softirqs but that won't include scheduling or running any
-> guest vcpus. The vcpu that happens to be running on that cpu at the time the
-> debug dump starts, will be stuck unrunnable until the dump completes.
-
-Why does'nt that vCPU get scheduled on some other pCPU? Is there  a way to yield the CPU from the key handler?
-
-> 
-> Well, anyway, I don't know how useful a massive dump of the entire p2m is
-> going to be for debugging anyway. If investigating an IOMMU page fault, I'd
-> just want the info pertaining to that fault, and all the mapping information for
-> that IO virtual address, dumped. :)
-
-It is not a generically useful command - its usefulness is in the same category as dumping the MMU table. Unfortunately, there is no way to pass arguments to the key handler - to say provide the VM and or starting gfn and length for a more selective output.
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<7914B38A4445B34AA16EB9F1352942F1012F0F6F4BA7@SJCPMAILBOX01.citrite.net> b/test/corpus/<7914B38A4445B34AA16EB9F1352942F1012F0F6F4BA7@SJCPMAILBOX01.citrite.net>
deleted file mode 100644 (file)
index f893fea..0000000
+++ /dev/null
@@ -1,119 +0,0 @@
-From xen-devel-bounces@lists.xen.org Sun Sep 02 03:14:15 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Sun, 02 Sep 2012 03:14:15 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T7zhU-00077T-NK
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Sun, 02 Sep 2012 03:14:15 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T7zcc-0003Pt-JZ; Sun, 02 Sep 2012 02:09:10 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Santosh.Jodh@citrix.com>) id 1T7zcb-0003Pl-4h
-       for xen-devel@lists.xen.org; Sun, 02 Sep 2012 02:09:09 +0000
-Received: from [85.158.138.51:60626] by server-4.bemta-3.messagelabs.com id
-       95/5B-24831-FBFB2405; Sun, 02 Sep 2012 02:09:03 +0000
-X-Env-Sender: Santosh.Jodh@citrix.com
-X-Msg-Ref: server-13.tower-174.messagelabs.com!1346551739!9419520!1
-X-Originating-IP: [66.165.176.89]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNjc3NDQ=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 902 invoked from network); 2 Sep 2012 02:09:01 -0000
-Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
-       by server-13.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
-       2 Sep 2012 02:09:01 -0000
-X-IronPort-AV: E=Sophos;i="4.80,354,1344211200"; d="scan'208";a="36532845"
-Received: from sjcpmailmx02.citrite.net ([10.216.14.75])
-       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       02 Sep 2012 02:08:59 +0000
-Received: from SJCPMAILBOX01.citrite.net ([10.216.4.72]) by
-       SJCPMAILMX02.citrite.net ([10.216.14.75]) with mapi;
-       Sat, 1 Sep 2012 19:08:58 -0700
-From: Santosh Jodh <Santosh.Jodh@citrix.com>
-To: Keir Fraser <keir.xen@gmail.com>, Sander Eikelenboom <linux@eikelenboom.it>
-Date: Sat, 1 Sep 2012 19:08:39 -0700
-Thread-Topic: [Xen-devel] Using debug-key 'o:  Dump IOMMU p2m table, locks
-       up machine
-Thread-Index: Ac2H5anSA9JOwrAdv0yUGY6DtFwLdQAfNVTwAATWEUoADm300A==
-Message-ID: <7914B38A4445B34AA16EB9F1352942F1012F0F6F4BA7@SJCPMAILBOX01.citrite.net>
-References: <7914B38A4445B34AA16EB9F1352942F1012F0F6F4B98@SJCPMAILBOX01.citrite.net>
-       <CC681CDD.3D966%keir.xen@gmail.com>
-In-Reply-To: <CC681CDD.3D966%keir.xen@gmail.com>
-Accept-Language: en-US
-Content-Language: en-US
-X-MS-Has-Attach: 
-X-MS-TNEF-Correlator: 
-acceptlanguage: en-US
-MIME-Version: 1.0
-Cc: "wei.wang2@amd.com" <wei.wang2@amd.com>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] Using debug-key 'o:  Dump IOMMU p2m table,
- locks up machine
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-
-> -----Original Message-----
-> From: Keir Fraser [mailto:keir.xen@gmail.com]
-> Sent: Saturday, September 01, 2012 12:13 PM
-> To: Santosh Jodh; Sander Eikelenboom
-> Cc: wei.wang2@amd.com; xen-devel@lists.xen.org
-> Subject: Re: [Xen-devel] Using debug-key 'o: Dump IOMMU p2m table, locks
-> up machine
-> 
-> On 01/09/2012 18:03, "Santosh Jodh" <Santosh.Jodh@citrix.com> wrote:
-> 
-> >> It might schedule softirqs but that won't include scheduling or
-> >> running any guest vcpus. The vcpu that happens to be running on that
-> >> cpu at the time the debug dump starts, will be stuck unrunnable until the
-> dump completes.
-> >
-> > Why does'nt that vCPU get scheduled on some other pCPU? Is there  a
-> > way to yield the CPU from the key handler?
-> 
-> It can't be descheduled from this pCPU without running through the
-> scheduler. You could try running the handler in a tasklet -- a tasklet causes
-> other vCPUs to be descheduled from that pCPU, before it starts running.
-> 
-> So you'd register a keyhandler which does a tasklet_schedule(), and do your
-> logging work in the tasklet handler.
-> 
-> Worth a shot maybe?
-
-Yes - certainly. Is there a reason why all key handlers should not be tasklets?
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<814436011.20120905141155@eikelenboom.it> b/test/corpus/<814436011.20120905141155@eikelenboom.it>
deleted file mode 100644 (file)
index 1f988f8..0000000
+++ /dev/null
@@ -1,130 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Sep 05 13:16:29 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 05 Sep 2012 13:16:29 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T9EWt-0002eS-30
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 05 Sep 2012 13:16:28 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T9ESr-0002h3-T7; Wed, 05 Sep 2012 12:12:13 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <linux@eikelenboom.it>) id 1T9ESq-0002gt-1L
-       for xen-devel@lists.xen.org; Wed, 05 Sep 2012 12:12:12 +0000
-Received: from [85.158.143.35:57916] by server-3.bemta-4.messagelabs.com id
-       1E/86-08232-B9147405; Wed, 05 Sep 2012 12:12:11 +0000
-X-Env-Sender: linux@eikelenboom.it
-X-Msg-Ref: server-9.tower-21.messagelabs.com!1346847120!5732020!1
-X-Originating-IP: [188.40.164.121]
-X-SpamReason: No, hits=0.0 required=7.0 tests=
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 12279 invoked from network); 5 Sep 2012 12:12:09 -0000
-Received: from static.121.164.40.188.clients.your-server.de (HELO
-       smtp.eikelenboom.it) (188.40.164.121)
-       by server-9.tower-21.messagelabs.com with AES256-SHA encrypted SMTP;
-       5 Sep 2012 12:12:09 -0000
-Received: from 128-64-ftth.onsneteindhoven.nl ([88.159.64.128]:52179
-       helo=[172.16.1.20])
-       by smtp.eikelenboom.it with esmtpsa (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72) (envelope-from <linux@eikelenboom.it>)
-       id 1T9EPa-0008GL-IU; Wed, 05 Sep 2012 14:08:50 +0200
-Date: Wed, 5 Sep 2012 14:11:55 +0200
-From: Sander Eikelenboom <linux@eikelenboom.it>
-Organization: Eikelenboom IT services
-X-Priority: 3 (Normal)
-Message-ID: <814436011.20120905141155@eikelenboom.it>
-To: "Jan Beulich" <JBeulich@suse.com>
-In-Reply-To: <504756850200007800098D1A@nat28.tlf.novell.com>
-References: <40501859.20120902104331@eikelenboom.it>
-       <CC6932C2.3D99D%keir.xen@gmail.com>
-       <217459398.20120902171441@eikelenboom.it>
-       <5044CAD7.8030800@amd.com>
-       <1144695277.20120904184345@eikelenboom.it>
-       <5047420A0200007800098BB1@nat28.tlf.novell.com>
-       <348297741.20120905122542@eikelenboom.it>
-       <5047483F0200007800098C18@nat28.tlf.novell.com>
-       <88861335.20120905124810@eikelenboom.it>
-       <504756850200007800098D1A@nat28.tlf.novell.com>
-MIME-Version: 1.0
-Cc: Wei Wang <wei.wang2@amd.com>, Keir Fraser <keir.xen@gmail.com>,
-       Santosh Jodh <Santosh.Jodh@citrix.com>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="utf-8"
-Content-Transfer-Encoding: base64
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] Using debug-key 'o:  Dump IOMMU p2m table,
-       locks up machine
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-DQpXZWRuZXNkYXksIFNlcHRlbWJlciA1LCAyMDEyLCAxOjQxOjI1IFBNLCB5b3Ugd3JvdGU6Cgo+
-Pj4+IE9uIDA1LjA5LjEyIGF0IDEyOjQ4LCBTYW5kZXIgRWlrZWxlbmJvb20gPGxpbnV4QGVpa2Vs
-ZW5ib29tLml0PiB3cm90ZToKCj4+IFdlZG5lc2RheSwgU2VwdGVtYmVyIDUsIDIwMTIsIDEyOjQw
-OjMxIFBNLCB5b3Ugd3JvdGU6Cj4+IAo+Pj4+Pj4gT24gMDUuMDkuMTIgYXQgMTI6MjUsIFNhbmRl
-ciBFaWtlbGVuYm9vbSA8bGludXhAZWlrZWxlbmJvb20uaXQ+IHdyb3RlOgo+Pj4+IFdlZG5lc2Rh
-eSwgU2VwdGVtYmVyIDUsIDIwMTIsIDEyOjE0OjAyIFBNLCB5b3Ugd3JvdGU6Cj4+Pj4+Pj4+IE9u
-IDA0LjA5LjEyIGF0IDE4OjQzLCBTYW5kZXIgRWlrZWxlbmJvb20gPGxpbnV4QGVpa2VsZW5ib29t
-Lml0PiB3cm90ZToKPj4+Pj4+IC4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLjwwPkFNRC1WaTog
-SU9fUEFHRV9GQVVMVDogZG9tYWluID0gMCwgZGV2aWNlIGlkID0gCj4+Pj4+PiAweDBhMDYsIGZh
-dWx0IGFkZHJlc3MgPSAweGMyYzJjMmMwCj4+Pj4gCj4+Pj4+IExvb2tzIGxpa2UgdXNlIG9mIHVu
-aW5pdGlhbGl6ZWQgbWVtb3J5IChhc3N1bWluZyB5b3UncmUgdXNpbmcgYQo+Pj4+PiBkZWJ1ZyBo
-eXBlcnZpc29yLCB0aGF0J3MgdGhlIHBhdHRlcm4gc2NydWJfb25lX3BhZ2UoKSBwdXRzCj4+Pj4+
-IHRoZXJlKS4gQnV0IGl0J3MgdW5jbGVhciB0byBtZSB3aGF0IGRldmljZSBzaG91bGQgYmUgZG9p
-bmcgYW55Cj4+Pj4+IEkvTyBhdCB0aGF0IHBvaW50IChhbmQgZXZlbiBpZiBvbmUgZG9lcywgaG93
-IGl0IHdvdWxkIGdldCB0aGUKPj4+Pj4gYmFkIGFkZHJlc3MgbG9hZGVkKS4gV2hhdCBpcyAwYTow
-MC42Pwo+Pj4+IAo+Pj4+IHNpbmNlIDQuMi1yYzQgaXMgc3RpbGwgdW5zdGFibGUgaXQgaGFzIGRl
-YnVnPXkgZm9yIHdoYXQgaSBrbm93LCBzbyB5ZXMuCj4+Pj4gVGhpcyBwYXJ0aWN1bGFyIElPX1BB
-R0VfRkFVTFQgaGFwcGVuZWQgYmVmb3JlIHRoZSBrZXJuZWwgbG9hZHMsIHNvIHRoZSAKPj4+PiBr
-ZXJuZWwgYW5kIHBjaWJhY2sgc2hvdWxkbid0IGJlIGNhdXNpbmcgdGhlIGlzc3VlIG9uZSB3b3Vs
-ZCBzYXkuCj4+Pj4gV2l0aCBwY2liYWNrIGknbSBoaWRpbmcgMDM6MDYuMCwgMDQ6MDAuKiwgMDU6
-MDAuMCwgMGE6MDAuKiBhbmQgMDc6MDAuMCBhdCAKPj4+PiBib290Lgo+Pj4+IAo+Pj4+IElzIHRo
-ZXJlIGFueSBjb2RlIGkgY291bGQgYWRkIHRvIGdldCBtb3JlIGluZm8gd2hlcmUgaXQgY29tZXMg
-ZnJvbSA/Cj4+IAo+Pj4gSGFyZGx5LCBzaW5jZSB0aG9zZSBhY2Nlc3NlcyBhcmUgYXN5bmNocm9u
-b3VzIHRvIHdoYXQgdGhlIENQVXMKPj4+IGRvLiBCdXQgLi4uCj4+IAo+Pj4+IDBhOjAwLjYgVVNC
-IGNvbnRyb2xsZXI6IE5ldE1vcyBUZWNobm9sb2d5IE1DUzk5OTAgUENJZSB0byA0w6JQb3J0IFVT
-QiAyLjAgCj4+IEhvc3QgQ29udHJvbGxlcgo+PiAKPj4+IC4uLiBhcmUgeW91ciBrZXlib2FyZC9t
-b3VzZSBwZXJoYXBzIGNvbm5lY3RlZCB0byB0aGlzIG9uZT8gSW4KPj4+IHdoaWNoIGNhc2UgSSdk
-IHN1cHBvc2UgdGhlIDE6MSB0YWJsZXMgc2V0IHVwIGZvciBEb20wIG1pZ2h0IG5vdAo+Pj4gYmUg
-Y29tcGxldGUuIFdlaT8KPj4gCj4+IE5vcGUgdGhpcyBtYWNoaW5lIGlzIHJ1bm5pbmcgd2l0aG91
-dCBhbnkga2V5Ym9hcmQvbW91c2UsIHRoZSBVU0IgY29udHJvbGxlciAKPj4gYXQgcHJlc2VudCBo
-YXMgb25seSBvbmUgZGV2aWNlIGNvbm5lY3RlZCB0byBpdDoKPj4gaW4gdGhlIHB2IGd1ZXN0IGxz
-dXNiOgo+PiBCdXMgMDA3IERldmljZSAwMDI6IElEIDEwY2Y6NTUwMCBWZWxsZW1hbiBDb21wb25l
-bnRzLCBJbmMuIDgwNTUgRXhwZXJpbWVudCAKPj4gSW50ZXJmYWNlIEJvYXJkIChhZGRyZXNzPTAp
-Cgo+IEFuZCB0aGlzIGlzIG5vdCBieSBjaGFuY2UgaGFuZ2luZyBvZmYgdGhlIGNvbnRyb2xsZXIg
-dGhhdCB0aGUgZmF1bHQKPiB3YXMgcmVwb3J0ZWQgZm9yPwoKWWVzIGJ1dCBpIGFsc28gZ2V0IGZh
-dWx0cyBmb3IgdGhlIDA3OjAwLjAgbGF0ZXIgb24gYm9vdGluZy4KCj4+IEFuZCBhcyBpIHNhaWQs
-IHRoZSBoYXJkd2FyZSBkaWRuJ3QgY2hhbmdlIGJldHdlZW4gbXkgc3dpdGNoIGZyb20geGVuLTQu
-MS4zIAo+PiB0byB4ZW4tNC4yLgoKPiBJIHVuZGVyc3RhbmQgdGhhdCwgYnV0IHRoZSBwcm9ibGVt
-IGhlcmUgc2hvd2VkIHVwIG9ubHkgYWZ0ZXIKPiB0b2dnbGluZyB0aGUgcGFnZSB0YWJsZSBzaGFy
-aW5nIG9wdGlvbiBpaXJjLgoKWW91IG1lYW4gdGhhdCB0aGUgZmF1bHQgb2NjdXJyaW5nIHRoaXMg
-ZWFybHkgZHVyaW5nIGJvb3QsIG9ubHkgaGFwcGVuZWQgYWZ0ZXIgZW5hYmxpbmcgdGhlICJpb21t
-dT1uby1zaGFyZXB0IiA/ClRoYXQncyBjb3JyZWN0IGFsdGhvdWdoIGl0J3Mgbm90IGNsZWFyIGlm
-IHRoYXQgaXMgY29pbmNpZGVuY2Ugb3Igbm90LgoKPiBKYW4KCgoKX19fX19fX19fX19fX19fX19f
-X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4t
-ZGV2ZWxAbGlzdHMueGVuLm9yZwpodHRwOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK
-
diff --git a/test/corpus/<85F40D8D-2FBE-4F5A-A895-E299DA20C445@gridcentric.ca> b/test/corpus/<85F40D8D-2FBE-4F5A-A895-E299DA20C445@gridcentric.ca>
deleted file mode 100644 (file)
index a9e2cb4..0000000
+++ /dev/null
@@ -1,220 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Aug 29 19:14:49 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 29 Aug 2012 19:14:49 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T6mms-00007w-AO
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 29 Aug 2012 19:14:49 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T6mit-0001SB-8E; Wed, 29 Aug 2012 18:10:39 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <andreslc@gridcentric.ca>) id 1T6mir-0001Rz-Jg
-       for xen-devel@lists.xensource.com; Wed, 29 Aug 2012 18:10:37 +0000
-Received: from [85.158.138.51:60845] by server-1.bemta-3.messagelabs.com id
-       92/42-09327-C1B5E305; Wed, 29 Aug 2012 18:10:36 +0000
-X-Env-Sender: andreslc@gridcentric.ca
-X-Msg-Ref: server-12.tower-174.messagelabs.com!1346263832!19576389!1
-X-Originating-IP: [209.85.160.43]
-X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 22618 invoked from network); 29 Aug 2012 18:10:34 -0000
-Received: from mail-pb0-f43.google.com (HELO mail-pb0-f43.google.com)
-       (209.85.160.43)
-       by server-12.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
-       29 Aug 2012 18:10:34 -0000
-Received: by pbbrq2 with SMTP id rq2so1862756pbb.30
-       for <xen-devel@lists.xensource.com>;
-       Wed, 29 Aug 2012 11:10:32 -0700 (PDT)
-X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
-       d=google.com; s=20120113;
-       h=subject:mime-version:content-type:from:in-reply-to:date:cc
-       :content-transfer-encoding:message-id:references:to:x-mailer
-       :x-gm-message-state;
-       bh=HzyGisBMJwa8kXRFzpHEQqhrKcH1y4aZZAaeXO/RgLs=;
-       b=jM6sC7ihNVRWn/JfP/FVLfjkHLJ6XOhFYHlpd86vkAKwWp2kJvPxebDePjTmkNp2Ww
-       jsE8E1Z9zKiI5kcoSRnvXQrEjH68CBy23lTHzyycCM+07TjiGtvZo2QjZFCNsIp3JsIl
-       OITRnEWtVM9HeQOZz2Obj0LTDHzDVI1qGf9knKOD+4Vk3vSQ3WjhWjaX236X5Hv5I0zJ
-       nq5x8Y61jxSEISRO7uCmLUi9Uy+7/Y+v8PRoTNHMdBkkJGMimRyg/RmP6hV0PSChVYJ6
-       4oPrLjC1txni3mVCOMtdvUXmPLcosmDQmOA9d43ngvz40Vy4GU11bfwL1uVCx4jwbuYi
-       C+0Q==
-Received: by 10.68.239.103 with SMTP id vr7mr6412811pbc.0.1346263832123;
-       Wed, 29 Aug 2012 11:10:32 -0700 (PDT)
-Received: from [192.168.1.130] (wsip-174-79-253-34.sd.sd.cox.net.
-       [174.79.253.34])
-       by mx.google.com with ESMTPS id sj5sm19729355pbc.30.2012.08.29.11.10.30
-       (version=TLSv1/SSLv3 cipher=OTHER);
-       Wed, 29 Aug 2012 11:10:31 -0700 (PDT)
-Mime-Version: 1.0 (Apple Message framework v1278)
-From: Andres Lagar-Cavilla <andreslc@gridcentric.ca>
-In-Reply-To: <503E451A.20107@citrix.com>
-Date: Wed, 29 Aug 2012 14:10:34 -0400
-Message-Id: <85F40D8D-2FBE-4F5A-A895-E299DA20C445@gridcentric.ca>
-References: <1346246116-29999-1-git-send-email-david.vrabel@citrix.com>
-       <1346246116-29999-3-git-send-email-david.vrabel@citrix.com>
-       <7392D0E0-02A4-48D7-8B16-4F93EA01F3AF@gridcentric.ca>
-       <503E451A.20107@citrix.com>
-To: David Vrabel <david.vrabel@citrix.com>
-X-Mailer: Apple Mail (2.1278)
-X-Gm-Message-State: ALoCoQlTuzWFS8IL3QfQuP9j+KFcYSAVc4rleddayIJSyZQnytNj8CM8NIEpn9ny28zCTb0ESVVx
-Cc: Andres Lagar-Cavilla <andreslc@gridcentric.ca>,
-       "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
-       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="windows-1252"
-Content-Transfer-Encoding: quoted-printable
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 2/2] xen/privcmd: add PRIVCMD_MMAPBATCH_V2
-       ioctl
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-
-On Aug 29, 2012, at 12:36 PM, David Vrabel wrote:
-
-> On 29/08/12 17:14, Andres Lagar-Cavilla wrote:
->> =
-
->> On Aug 29, 2012, at 9:15 AM, David Vrabel wrote:
->> =
-
->>> From: David Vrabel <david.vrabel@citrix.com>
->>> =
-
->>> PRIVCMD_MMAPBATCH_V2 extends PRIVCMD_MMAPBATCH with an additional
->>> field for reporting the error code for every frame that could not be
->>> mapped.  libxc prefers PRIVCMD_MMAPBATCH_V2 over PRIVCMD_MMAPBATCH.
-> [...]
->>> diff --git a/drivers/xen/privcmd.c b/drivers/xen/privcmd.c
->>> index ccee0f1..ddd32cf 100644
->>> --- a/drivers/xen/privcmd.c
->>> +++ b/drivers/xen/privcmd.c
->>> @@ -248,18 +248,23 @@ struct mmap_batch_state {
->>>    struct vm_area_struct *vma;
->>>    int err;
->>> =
-
->>> -  xen_pfn_t __user *user;
->>> +  xen_pfn_t __user *user_mfn;
->>> +  int __user *user_err;
->>> };
->>> =
-
->>> static int mmap_batch_fn(void *data, void *state)
->>> {
->>>    xen_pfn_t *mfnp =3D data;
->>> +  int *err =3D data;
->> Am I missing something or is there an aliasing here? Both mfnp and err p=
-oint to data?
-> =
-
-> There is deliberate aliasing here.  We use the mfn array to save the
-> error codes for later processing.
-
-May I suggest a comment to clarify this here? Are xen_pfn_t and int the sam=
-e size in both bitnesses? The very fact that I raise the question is an arg=
-ument against this black-magic aliasing. Imho.
-
-A explicit union for each slot in the *data, or passing both arrays to the =
-callback looks better to me.
-
-> =
-
->>>    struct mmap_batch_state *st =3D state;
->>> +  int ret;
->>> =
-
->>> -  if (xen_remap_domain_mfn_range(st->vma, st->va & PAGE_MASK, *mfnp, 1,
->>> -                                 st->vma->vm_page_prot, st->domain) < 0) {
->>> -          *mfnp |=3D 0xf0000000U;
->>> -          st->err++;
->>> +  ret =3D xen_remap_domain_mfn_range(st->vma, st->va & PAGE_MASK, *mfnp=
-, 1,
->>> +                                   st->vma->vm_page_prot, st->domain);
->>> +  if (ret < 0) {
->>> +          *err =3D ret;
->>> +          if (st->err =3D=3D 0 || st->err =3D=3D -ENOENT)
->>> +                  st->err =3D ret;
->> This will unset -ENOENT if a frame after an ENOENT error fails different=
-ly.
-> =
-
-> I thought that was what the original implementation did but it seems it
-> does not
-I think the best way to do this is:
-
-if ((ret =3D=3D -ENOENT) && (st->err =3D=3D 0))
-       st->err =3D -ENOENT;
-
-Then st->err is -ENOENT if at least there was one individual -ENOENT or zer=
-o otherwise. Which is the expectation of libxc (barring an EFAULT or some o=
-ther higher-level whole-operation error).
-
-Andres
-
-> .
-> =
-
->>> @@ -325,12 +359,16 @@ static long privcmd_ioctl_mmap_batch(void __user =
-*udata)
->>> =
-
->>>    up_write(&mm->mmap_sem);
->>> =
-
->>> -  if (state.err > 0) {
->>> -          state.user =3D m.arr;
->>> +  if (state.err) {
->>> +          state.user_mfn =3D (xen_pfn_t *)m.arr;
->>> +          state.user_err =3D m.err;
->>>            ret =3D traverse_pages(m.num, sizeof(xen_pfn_t),
->>> -                         &pagelist,
->>> -                         mmap_return_errors, &state);
->>> -  }
->>> +                               &pagelist,
->>> +                               mmap_return_errors, &state);
-> =
-
->> The callback now maps data to err (instead of mfnp =85 but I see no
->> change to the gather_array other than a cast =85am I missing something?
-> =
-
-> The kernel mfn and the err array are aliased.
-> =
-
-> I could have made gather_array() allow the kernel array to have larger
-> elements than the user array but that looked like too much work.
-> =
-
-> David
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<8747cb48d50a10784df56904db29ca8b6e8c5d80.1345552068.git.julien.grall@citrix.com> b/test/corpus/<8747cb48d50a10784df56904db29ca8b6e8c5d80.1345552068.git.julien.grall@citrix.com>
deleted file mode 100644 (file)
index 8185599..0000000
+++ /dev/null
@@ -1,288 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Aug 22 19:59:04 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 22 Aug 2012 19:59:04 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T4G8o-0002qI-N5
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 22 Aug 2012 19:59:04 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T4G5O-0006uL-6a; Wed, 22 Aug 2012 18:55:26 +0000
-Received: from mail27.messagelabs.com ([193.109.254.147])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <julien.grall@citrix.com>) id 1T4G5L-0006jm-RX
-       for xen-devel@lists.xen.org; Wed, 22 Aug 2012 18:55:24 +0000
-X-Env-Sender: julien.grall@citrix.com
-X-Msg-Ref: server-12.tower-27.messagelabs.com!1345661712!9781420!4
-X-Originating-IP: [66.165.176.89]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNjU4OTQ=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 7403 invoked from network); 22 Aug 2012 18:55:17 -0000
-Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
-       by server-12.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
-       22 Aug 2012 18:55:17 -0000
-X-IronPort-AV: E=Sophos;i="4.80,809,1344225600"; d="scan'208";a="35484799"
-Received: from ftlpmailmx01.citrite.net ([10.13.107.65])
-       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       22 Aug 2012 14:55:16 -0400
-Received: from meteora.cam.xci-test.com (10.80.248.22) by smtprelay.citrix.com
-       (10.13.107.65) with Microsoft SMTP Server id 8.3.213.0;
-       Wed, 22 Aug 2012 14:55:16 -0400
-From: Julien Grall <julien.grall@citrix.com>
-To: qemu-devel@nongnu.org
-Date: Wed, 22 Aug 2012 13:31:55 +0100
-Message-ID: <8747cb48d50a10784df56904db29ca8b6e8c5d80.1345552068.git.julien.grall@citrix.com>
-X-Mailer: git-send-email 1.7.2.5
-In-Reply-To: <cover.1345552068.git.julien.grall@citrix.com>
-References: <cover.1345552068.git.julien.grall@citrix.com>
-MIME-Version: 1.0
-Cc: Julien Grall <julien.grall@citrix.com>, christian.limpach@gmail.com,
-       Stefano.Stabellini@eu.citrix.com, xen-devel@lists.xen.org
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DATE_IN_PAST_06_12,
-       RCVD_IN_DNSWL_MED,RP_MATCHES_RCVD autolearn=ham version=3.3.1
-Subject: [Xen-devel] [XEN][RFC PATCH V2 09/17] xc: Add the hypercall for
-       multiple servers
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-This patch add 5 hypercalls to register server, io range and PCI.
-
-Signed-off-by: Julien Grall <julien.grall@citrix.com>
----
- tools/libxc/xc_domain.c |  155 +++++++++++++++++++++++++++++++++++++++++++++++
- tools/libxc/xenctrl.h   |   21 ++++++
- 2 files changed, 176 insertions(+), 0 deletions(-)
-
-diff --git a/tools/libxc/xc_domain.c b/tools/libxc/xc_domain.c
-index d98e68b..cb186c1 100644
---- a/tools/libxc/xc_domain.c
-+++ b/tools/libxc/xc_domain.c
-@@ -1514,6 +1514,161 @@ int xc_domain_set_virq_handler(xc_interface *xch, uint32_t domid, int virq)
-     return do_domctl(xch, &domctl);
- }
-+ioservid_or_error_t xc_hvm_register_ioreq_server(xc_interface *xch,
-+                                                 domid_t dom)
-+{
-+    DECLARE_HYPERCALL;
-+    DECLARE_HYPERCALL_BUFFER(xen_hvm_register_ioreq_server_t, arg);
-+    ioservid_or_error_t rc = -1;
-+
-+    arg = xc_hypercall_buffer_alloc(xch, arg, sizeof (*arg));
-+    if ( !arg )
-+    {
-+        PERROR("Could not allocate memory for xc_hvm_register_ioreq_server hypercall");
-+        goto out;
-+    }
-+
-+    hypercall.op        = __HYPERVISOR_hvm_op;
-+    hypercall.arg[0]    = HVMOP_register_ioreq_server;
-+    hypercall.arg[1]    = HYPERCALL_BUFFER_AS_ARG(arg);
-+
-+    arg->domid = dom;
-+    rc = do_xen_hypercall(xch, &hypercall);
-+    if ( !rc )
-+        rc = arg->id;
-+
-+    xc_hypercall_buffer_free(xch, arg);
-+out:
-+    return rc;
-+}
-+
-+evtchn_port_or_error_t xc_hvm_get_ioreq_server_buf_channel(xc_interface *xch,
-+                                                           domid_t dom,
-+                                                           ioservid_t id)
-+{
-+    DECLARE_HYPERCALL;
-+    DECLARE_HYPERCALL_BUFFER(xen_hvm_get_ioreq_server_buf_channel_t, arg);
-+    evtchn_port_or_error_t rc = -1;
-+
-+    arg = xc_hypercall_buffer_alloc(xch, arg, sizeof (*arg));
-+    if ( !arg )
-+    {
-+        PERROR("Could not allocate memory for xc_hvm_get_ioreq_servr_buf_channel");
-+        goto out;
-+    }
-+
-+    hypercall.op        = __HYPERVISOR_hvm_op;
-+    hypercall.arg[0]    = HVMOP_get_ioreq_server_buf_channel;
-+    hypercall.arg[1]    = HYPERCALL_BUFFER_AS_ARG(arg);
-+
-+    arg->domid = dom;
-+    arg->id = id;
-+    rc = do_xen_hypercall(xch, &hypercall);
-+
-+    if ( !rc )
-+        rc = arg->channel;
-+
-+    xc_hypercall_buffer_free(xch, arg);
-+
-+out:
-+    return rc;
-+}
-+
-+int xc_hvm_map_io_range_to_ioreq_server(xc_interface *xch, domid_t dom,
-+                                        ioservid_t id, int is_mmio,
-+                                        uint64_t start, uint64_t end)
-+{
-+    DECLARE_HYPERCALL;
-+    DECLARE_HYPERCALL_BUFFER(xen_hvm_map_io_range_to_ioreq_server_t, arg);
-+    int rc = -1;
-+
-+    arg = xc_hypercall_buffer_alloc(xch, arg, sizeof (*arg));
-+    if ( !arg )
-+    {
-+        PERROR("Could not allocate memory for xc_hvm_map_io_range_to_ioreq_server hypercall");
-+        goto out;
-+    }
-+
-+    hypercall.op        = __HYPERVISOR_hvm_op;
-+    hypercall.arg[0]    = HVMOP_map_io_range_to_ioreq_server;
-+    hypercall.arg[1]    = HYPERCALL_BUFFER_AS_ARG(arg);
-+
-+    arg->domid = dom;
-+    arg->id = id;
-+    arg->is_mmio = is_mmio;
-+    arg->s = start;
-+    arg->e = end;
-+
-+    rc = do_xen_hypercall(xch, &hypercall);
-+
-+    xc_hypercall_buffer_free(xch, arg);
-+out:
-+    return rc;
-+}
-+
-+int xc_hvm_unmap_io_range_from_ioreq_server(xc_interface *xch, domid_t dom,
-+                                            ioservid_t id, int is_mmio,
-+                                            uint64_t addr)
-+{
-+    DECLARE_HYPERCALL;
-+    DECLARE_HYPERCALL_BUFFER(xen_hvm_unmap_io_range_from_ioreq_server_t, arg);
-+    int rc = -1;
-+
-+    arg = xc_hypercall_buffer_alloc(xch, arg, sizeof (*arg));
-+    if ( !arg )
-+    {
-+        PERROR("Could not allocate memory for xc_hvm_unmap_io_range_from_ioreq_server hypercall");
-+        goto out;
-+    }
-+
-+    hypercall.op        = __HYPERVISOR_hvm_op;
-+    hypercall.arg[0]    = HVMOP_unmap_io_range_from_ioreq_server;
-+    hypercall.arg[1]    = HYPERCALL_BUFFER_AS_ARG(arg);
-+
-+    arg->domid = dom;
-+    arg->id = id;
-+    arg->is_mmio = is_mmio;
-+    arg->addr = addr;
-+    rc = do_xen_hypercall(xch, &hypercall);
-+
-+    xc_hypercall_buffer_free(xch, arg);
-+out:
-+    return rc;
-+}
-+
-+int xc_hvm_register_pcidev(xc_interface *xch, domid_t dom, ioservid_t id,
-+                           uint8_t domain, uint8_t bus, uint8_t device,
-+                           uint8_t function)
-+{
-+    DECLARE_HYPERCALL;
-+    DECLARE_HYPERCALL_BUFFER(xen_hvm_register_pcidev_t, arg);
-+    int rc = -1;
-+
-+    arg = xc_hypercall_buffer_alloc(xch, arg, sizeof (*arg));
-+    if ( !arg )
-+    {
-+        PERROR("Could not allocate memory for xc_hvm_create_pci hypercall");
-+        goto out;
-+    }
-+
-+    hypercall.op        = __HYPERVISOR_hvm_op;
-+    hypercall.arg[0]    = HVMOP_register_pcidev;
-+    hypercall.arg[1]    = HYPERCALL_BUFFER_AS_ARG(arg);
-+
-+    arg->domid = dom;
-+    arg->id = id;
-+    arg->domain = domain;
-+    arg->bus = bus;
-+    arg->device = device;
-+    arg->function = function;
-+    rc = do_xen_hypercall(xch, &hypercall);
-+
-+    xc_hypercall_buffer_free(xch, arg);
-+out:
-+    return rc;
-+}
-+
-+
- /*
-  * Local variables:
-  * mode: C
-diff --git a/tools/libxc/xenctrl.h b/tools/libxc/xenctrl.h
-index b7741ca..65a950e 100644
---- a/tools/libxc/xenctrl.h
-+++ b/tools/libxc/xenctrl.h
-@@ -1659,6 +1659,27 @@ void xc_clear_last_error(xc_interface *xch);
- int xc_set_hvm_param(xc_interface *handle, domid_t dom, int param, unsigned long value);
- int xc_get_hvm_param(xc_interface *handle, domid_t dom, int param, unsigned long *value);
-+/* A IO server identifier is guaranteed to fit in 31 bits. */
-+typedef int ioservid_or_error_t;
-+
-+ioservid_or_error_t xc_hvm_register_ioreq_server(xc_interface *xch,
-+                                                 domid_t dom);
-+evtchn_port_or_error_t xc_hvm_get_ioreq_server_buf_channel(xc_interface *xch,
-+                                                           domid_t dom,
-+                                                           ioservid_t id);
-+int xc_hvm_map_io_range_to_ioreq_server(xc_interface *xch, domid_t dom,
-+                                        ioservid_t id, int is_mmio,
-+                                        uint64_t start, uint64_t end);
-+int xc_hvm_unmap_io_range_from_ioreq_server(xc_interface *xch, domid_t dom,
-+                                            ioservid_t id, int is_mmio,
-+                                            uint64_t addr);
-+/*
-+ * Register a PCI device
-+ */
-+int xc_hvm_register_pcidev(xc_interface *xch, domid_t dom, unsigned int id,
-+                           uint8_t domain, uint8_t bus, uint8_t device,
-+                           uint8_t function);
-+
- /* IA64 specific, nvram save */
- int xc_ia64_save_to_nvram(xc_interface *xch, uint32_t dom);
--- 
-Julien Grall
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<88861335.20120905124810@eikelenboom.it> b/test/corpus/<88861335.20120905124810@eikelenboom.it>
deleted file mode 100644 (file)
index df13b5d..0000000
+++ /dev/null
@@ -1,118 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Sep 05 11:52:13 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 05 Sep 2012 11:52:13 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T9DDL-0002L7-GN
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 05 Sep 2012 11:52:13 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T9D9e-0002iW-29; Wed, 05 Sep 2012 10:48:18 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <linux@eikelenboom.it>) id 1T9D9c-0002iO-5N
-       for xen-devel@lists.xen.org; Wed, 05 Sep 2012 10:48:16 +0000
-Received: from [85.158.139.83:60036] by server-6.bemta-5.messagelabs.com id
-       0A/69-21336-FED27405; Wed, 05 Sep 2012 10:48:15 +0000
-X-Env-Sender: linux@eikelenboom.it
-X-Msg-Ref: server-11.tower-182.messagelabs.com!1346842094!21455358!1
-X-Originating-IP: [188.40.164.121]
-X-SpamReason: No, hits=0.0 required=7.0 tests=
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 5596 invoked from network); 5 Sep 2012 10:48:14 -0000
-Received: from static.121.164.40.188.clients.your-server.de (HELO
-       smtp.eikelenboom.it) (188.40.164.121)
-       by server-11.tower-182.messagelabs.com with AES256-SHA encrypted SMTP;
-       5 Sep 2012 10:48:14 -0000
-Received: from 128-64-ftth.onsneteindhoven.nl ([88.159.64.128]:51876
-       helo=[172.16.1.20])
-       by smtp.eikelenboom.it with esmtpsa (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72) (envelope-from <linux@eikelenboom.it>)
-       id 1T9D6X-0007si-Cj; Wed, 05 Sep 2012 12:45:05 +0200
-Date: Wed, 5 Sep 2012 12:48:10 +0200
-From: Sander Eikelenboom <linux@eikelenboom.it>
-Organization: Eikelenboom IT services
-X-Priority: 3 (Normal)
-Message-ID: <88861335.20120905124810@eikelenboom.it>
-To: "Jan Beulich" <JBeulich@suse.com>
-In-Reply-To: <5047483F0200007800098C18@nat28.tlf.novell.com>
-References: <40501859.20120902104331@eikelenboom.it>
-       <CC6932C2.3D99D%keir.xen@gmail.com>
-       <217459398.20120902171441@eikelenboom.it>
-       <5044CAD7.8030800@amd.com>
-       <1144695277.20120904184345@eikelenboom.it>
-       <5047420A0200007800098BB1@nat28.tlf.novell.com>
-       <348297741.20120905122542@eikelenboom.it>
-       <5047483F0200007800098C18@nat28.tlf.novell.com>
-MIME-Version: 1.0
-Cc: Wei Wang <wei.wang2@amd.com>, Keir Fraser <keir.xen@gmail.com>,
-       Santosh Jodh <Santosh.Jodh@citrix.com>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="utf-8"
-Content-Transfer-Encoding: base64
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] Using debug-key 'o:  Dump IOMMU p2m table,
-       locks up machine
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-DQpXZWRuZXNkYXksIFNlcHRlbWJlciA1LCAyMDEyLCAxMjo0MDozMSBQTSwgeW91IHdyb3RlOgoK
-Pj4+PiBPbiAwNS4wOS4xMiBhdCAxMjoyNSwgU2FuZGVyIEVpa2VsZW5ib29tIDxsaW51eEBlaWtl
-bGVuYm9vbS5pdD4gd3JvdGU6Cj4+IFdlZG5lc2RheSwgU2VwdGVtYmVyIDUsIDIwMTIsIDEyOjE0
-OjAyIFBNLCB5b3Ugd3JvdGU6Cj4+Pj4+PiBPbiAwNC4wOS4xMiBhdCAxODo0MywgU2FuZGVyIEVp
-a2VsZW5ib29tIDxsaW51eEBlaWtlbGVuYm9vbS5pdD4gd3JvdGU6Cj4+Pj4gLi4uLi4uLi4uLi4u
-Li4uLi4uLi4uLi4uLi4uPDA+QU1ELVZpOiBJT19QQUdFX0ZBVUxUOiBkb21haW4gPSAwLCBkZXZp
-Y2UgaWQgPSAKPj4+PiAweDBhMDYsIGZhdWx0IGFkZHJlc3MgPSAweGMyYzJjMmMwCj4+IAo+Pj4g
-TG9va3MgbGlrZSB1c2Ugb2YgdW5pbml0aWFsaXplZCBtZW1vcnkgKGFzc3VtaW5nIHlvdSdyZSB1
-c2luZyBhCj4+PiBkZWJ1ZyBoeXBlcnZpc29yLCB0aGF0J3MgdGhlIHBhdHRlcm4gc2NydWJfb25l
-X3BhZ2UoKSBwdXRzCj4+PiB0aGVyZSkuIEJ1dCBpdCdzIHVuY2xlYXIgdG8gbWUgd2hhdCBkZXZp
-Y2Ugc2hvdWxkIGJlIGRvaW5nIGFueQo+Pj4gSS9PIGF0IHRoYXQgcG9pbnQgKGFuZCBldmVuIGlm
-IG9uZSBkb2VzLCBob3cgaXQgd291bGQgZ2V0IHRoZQo+Pj4gYmFkIGFkZHJlc3MgbG9hZGVkKS4g
-V2hhdCBpcyAwYTowMC42Pwo+PiAKPj4gc2luY2UgNC4yLXJjNCBpcyBzdGlsbCB1bnN0YWJsZSBp
-dCBoYXMgZGVidWc9eSBmb3Igd2hhdCBpIGtub3csIHNvIHllcy4KPj4gVGhpcyBwYXJ0aWN1bGFy
-IElPX1BBR0VfRkFVTFQgaGFwcGVuZWQgYmVmb3JlIHRoZSBrZXJuZWwgbG9hZHMsIHNvIHRoZSAK
-Pj4ga2VybmVsIGFuZCBwY2liYWNrIHNob3VsZG4ndCBiZSBjYXVzaW5nIHRoZSBpc3N1ZSBvbmUg
-d291bGQgc2F5Lgo+PiBXaXRoIHBjaWJhY2sgaSdtIGhpZGluZyAwMzowNi4wLCAwNDowMC4qLCAw
-NTowMC4wLCAwYTowMC4qIGFuZCAwNzowMC4wIGF0IAo+PiBib290Lgo+PiAKPj4gSXMgdGhlcmUg
-YW55IGNvZGUgaSBjb3VsZCBhZGQgdG8gZ2V0IG1vcmUgaW5mbyB3aGVyZSBpdCBjb21lcyBmcm9t
-ID8KCj4gSGFyZGx5LCBzaW5jZSB0aG9zZSBhY2Nlc3NlcyBhcmUgYXN5bmNocm9ub3VzIHRvIHdo
-YXQgdGhlIENQVXMKPiBkby4gQnV0IC4uLgoKPj4gMGE6MDAuNiBVU0IgY29udHJvbGxlcjogTmV0
-TW9zIFRlY2hub2xvZ3kgTUNTOTk5MCBQQ0llIHRvIDTDolBvcnQgVVNCIDIuMCBIb3N0IENvbnRy
-b2xsZXIKCj4gLi4uIGFyZSB5b3VyIGtleWJvYXJkL21vdXNlIHBlcmhhcHMgY29ubmVjdGVkIHRv
-IHRoaXMgb25lPyBJbgo+IHdoaWNoIGNhc2UgSSdkIHN1cHBvc2UgdGhlIDE6MSB0YWJsZXMgc2V0
-IHVwIGZvciBEb20wIG1pZ2h0IG5vdAo+IGJlIGNvbXBsZXRlLiBXZWk/CgpOb3BlIHRoaXMgbWFj
-aGluZSBpcyBydW5uaW5nIHdpdGhvdXQgYW55IGtleWJvYXJkL21vdXNlLCB0aGUgVVNCIGNvbnRy
-b2xsZXIgYXQgcHJlc2VudCBoYXMgb25seSBvbmUgZGV2aWNlIGNvbm5lY3RlZCB0byBpdDoKaW4g
-dGhlIHB2IGd1ZXN0IGxzdXNiOgpCdXMgMDA3IERldmljZSAwMDI6IElEIDEwY2Y6NTUwMCBWZWxs
-ZW1hbiBDb21wb25lbnRzLCBJbmMuIDgwNTUgRXhwZXJpbWVudCBJbnRlcmZhY2UgQm9hcmQgKGFk
-ZHJlc3M9MCkKCkFuZCBhcyBpIHNhaWQsIHRoZSBoYXJkd2FyZSBkaWRuJ3QgY2hhbmdlIGJldHdl
-ZW4gbXkgc3dpdGNoIGZyb20geGVuLTQuMS4zIHRvIHhlbi00LjIuCgpCdXQgaSB3aWxsIHJldmVy
-dCB0byA0LjEgYW5kIHNlZSBpZiBpIGNhbiBzcG90IGFueSBkaWZmZXJlbmNlIGluIHhsIGRtZXNn
-IGJldHdlZW4gdGhlIHR3by4KCgo+IEphbgoKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19f
-X19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0
-cy54ZW4ub3JnCmh0dHA6Ly9saXN0cy54ZW4ub3JnL3hlbi1kZXZlbAo=
-
diff --git a/test/corpus/<89b7274240cda4511d4e7e11fc9c21a53ba23887.1345552068.git.julien.grall@citrix.com> b/test/corpus/<89b7274240cda4511d4e7e11fc9c21a53ba23887.1345552068.git.julien.grall@citrix.com>
deleted file mode 100644 (file)
index f57b64e..0000000
+++ /dev/null
@@ -1,242 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Aug 22 19:58:54 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 22 Aug 2012 19:58:54 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T4G8d-0002nC-KA
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 22 Aug 2012 19:58:54 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T4G5M-0006rq-Mq; Wed, 22 Aug 2012 18:55:24 +0000
-Received: from mail27.messagelabs.com ([193.109.254.147])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <julien.grall@citrix.com>) id 1T4G5K-0006hc-3u
-       for xen-devel@lists.xen.org; Wed, 22 Aug 2012 18:55:22 +0000
-X-Env-Sender: julien.grall@citrix.com
-X-Msg-Ref: server-12.tower-27.messagelabs.com!1345661712!9781420!2
-X-Originating-IP: [66.165.176.89]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNjU4OTQ=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 7320 invoked from network); 22 Aug 2012 18:55:14 -0000
-Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
-       by server-12.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
-       22 Aug 2012 18:55:14 -0000
-X-IronPort-AV: E=Sophos;i="4.80,809,1344225600"; d="scan'208";a="35484789"
-Received: from ftlpmailmx01.citrite.net ([10.13.107.65])
-       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       22 Aug 2012 14:55:13 -0400
-Received: from meteora.cam.xci-test.com (10.80.248.22) by smtprelay.citrix.com
-       (10.13.107.65) with Microsoft SMTP Server id 8.3.213.0;
-       Wed, 22 Aug 2012 14:55:12 -0400
-From: Julien Grall <julien.grall@citrix.com>
-To: qemu-devel@nongnu.org
-Date: Wed, 22 Aug 2012 13:31:52 +0100
-Message-ID: <89b7274240cda4511d4e7e11fc9c21a53ba23887.1345552068.git.julien.grall@citrix.com>
-X-Mailer: git-send-email 1.7.2.5
-In-Reply-To: <cover.1345552068.git.julien.grall@citrix.com>
-References: <cover.1345552068.git.julien.grall@citrix.com>
-MIME-Version: 1.0
-Cc: Julien Grall <julien.grall@citrix.com>, christian.limpach@gmail.com,
-       Stefano.Stabellini@eu.citrix.com, xen-devel@lists.xen.org
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DATE_IN_PAST_06_12,
-       RCVD_IN_DNSWL_MED,RP_MATCHES_RCVD autolearn=unavailable version=3.3.1
-Subject: [Xen-devel] [XEN][RFC PATCH V2 06/17] hvm-io: IO refactoring with
-       ioreq server
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-Modification of several parts of the IO handle.
-Each vcpu now contain a pointer to the current IO shared page.
-A default shared page has been created for IO handle by Xen.
-Each time that Xen receives an ioreq, it will use the default
-shared page and set the right shared page when it's able to
-know the server.
-
-Moreover, all IO which are unhandleabled by Xen or by a server
-will be directly discard inside Xen.
-
-Signed-off-by: Julien Grall <julien.grall@citrix.com>
----
- xen/arch/x86/hvm/emulate.c        |   56 +++++++++++++++++++++++++++++++++++++
- xen/arch/x86/hvm/hvm.c            |    5 ++-
- xen/include/asm-x86/hvm/support.h |   26 ++++++++++++++--
- 3 files changed, 81 insertions(+), 6 deletions(-)
-
-diff --git a/xen/arch/x86/hvm/emulate.c b/xen/arch/x86/hvm/emulate.c
-index 9bfba48..9e636b6 100644
---- a/xen/arch/x86/hvm/emulate.c
-+++ b/xen/arch/x86/hvm/emulate.c
-@@ -49,6 +49,55 @@ static void hvmtrace_io_assist(int is_mmio, ioreq_t *p)
-     trace_var(event, 0/*!cycles*/, size, buffer);
- }
-+static int hvmemul_prepare_assist(ioreq_t *p)
-+{
-+    struct vcpu *v = current;
-+    struct hvm_ioreq_server *s;
-+    int i;
-+    int sign;
-+    uint32_t data = ~0;
-+
-+    if ( p->type == IOREQ_TYPE_PCI_CONFIG )
-+        return X86EMUL_UNHANDLEABLE;
-+
-+    spin_lock(&v->domain->arch.hvm_domain.ioreq_server_lock);
-+    for ( s = v->domain->arch.hvm_domain.ioreq_server_list; s; s = s->next )
-+    {
-+        struct hvm_io_range *x = (p->type == IOREQ_TYPE_COPY)
-+            ? s->mmio_range_list : s->portio_range_list;
-+
-+        for ( ; x; x = x->next )
-+        {
-+            if ( (p->addr >= x->s) && (p->addr <= x->e) )
-+                goto done_server_scan;
-+        }
-+    }
-+
-+    spin_unlock(&v->domain->arch.hvm_domain.ioreq_server_lock);
-+
-+    sign = p->df ? -1 : 1;
-+
-+    if ( p->dir != IOREQ_WRITE )
-+    {
-+        if ( !p->data_is_ptr )
-+            p->data = ~0;
-+        else
-+        {
-+            for ( i = 0; i < p->count; i++ )
-+                hvm_copy_to_guest_phys(p->data + sign * i * p->size, &data,
-+                                       p->size);
-+        }
-+    }
-+
-+    return X86EMUL_OKAY;
-+
-+  done_server_scan:
-+    set_ioreq(v, &s->ioreq, p);
-+    spin_unlock(&v->domain->arch.hvm_domain.ioreq_server_lock);
-+
-+    return X86EMUL_UNHANDLEABLE;
-+}
-+
- static int hvmemul_do_io(
-     int is_mmio, paddr_t addr, unsigned long *reps, int size,
-     paddr_t ram_gpa, int dir, int df, void *p_data)
-@@ -173,6 +222,10 @@ static int hvmemul_do_io(
-         (p_data == NULL) ? HVMIO_dispatched : HVMIO_awaiting_completion;
-     vio->io_size = size;
-+    /* Use the default shared page */
-+    current->arch.hvm_vcpu.ioreq = &curr->domain->arch.hvm_domain.ioreq;
-+    p = get_ioreq(current);
-+
-     p->dir = dir;
-     p->data_is_ptr = value_is_ptr;
-     p->type = is_mmio ? IOREQ_TYPE_COPY : IOREQ_TYPE_PIO;
-@@ -196,6 +249,9 @@ static int hvmemul_do_io(
-         rc = hvm_portio_intercept(p);
-     }
-+    if ( rc == X86EMUL_UNHANDLEABLE )
-+        rc = hvmemul_prepare_assist(p);
-+
-     switch ( rc )
-     {
-     case X86EMUL_OKAY:
-diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
-index a2cd9b3..33ef0f2 100644
---- a/xen/arch/x86/hvm/hvm.c
-+++ b/xen/arch/x86/hvm/hvm.c
-@@ -1223,14 +1223,15 @@ bool_t hvm_send_assist_req(struct vcpu *v)
-         return 0;
-     }
--    prepare_wait_on_xen_event_channel(v->arch.hvm_vcpu.xen_port);
-+    prepare_wait_on_xen_event_channel(p->vp_eport);
-     /*
-      * Following happens /after/ blocking and setting up ioreq contents.
-      * prepare_wait_on_xen_event_channel() is an implicit barrier.
-      */
-     p->state = STATE_IOREQ_READY;
--    notify_via_xen_event_channel(v->domain, v->arch.hvm_vcpu.xen_port);
-+
-+    notify_via_xen_event_channel(v->domain, p->vp_eport);
-     return 1;
- }
-diff --git a/xen/include/asm-x86/hvm/support.h b/xen/include/asm-x86/hvm/support.h
-index f9b102f..44acd37 100644
---- a/xen/include/asm-x86/hvm/support.h
-+++ b/xen/include/asm-x86/hvm/support.h
-@@ -29,13 +29,31 @@
- static inline ioreq_t *get_ioreq(struct vcpu *v)
- {
--    struct domain *d = v->domain;
--    shared_iopage_t *p = d->arch.hvm_domain.ioreq.va;
--    ASSERT((v == current) || spin_is_locked(&d->arch.hvm_domain.ioreq.lock));
--    ASSERT(d->arch.hvm_domain.ioreq.va != NULL);
-+    shared_iopage_t *p = v->arch.hvm_vcpu.ioreq->va;
-+    ASSERT((v == current) || spin_is_locked(&v->arch.hvm_vcpu.ioreq->lock));
-+    ASSERT(v->arch.hvm_vcpu.ioreq->va != NULL);
-     return &p->vcpu_ioreq[v->vcpu_id];
- }
-+static inline void set_ioreq(struct vcpu *v, struct hvm_ioreq_page *page,
-+                           ioreq_t *p)
-+{
-+    ioreq_t *np;
-+
-+    v->arch.hvm_vcpu.ioreq = page;
-+    spin_lock(&v->arch.hvm_vcpu.ioreq->lock);
-+    np = get_ioreq(v);
-+    np->dir = p->dir;
-+    np->data_is_ptr = p->data_is_ptr;
-+    np->type = p->type;
-+    np->size = p->size;
-+    np->addr = p->addr;
-+    np->count = p->count;
-+    np->df = p->df;
-+    np->data = p->data;
-+    spin_unlock(&v->arch.hvm_vcpu.ioreq->lock);
-+}
-+
- #define HVM_DELIVER_NO_ERROR_CODE  -1
- #ifndef NDEBUG
--- 
-Julien Grall
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<9522ee398a1fd3cdce48cfe883b307336ae6674f.1345552068.git.julien.grall@citrix.com> b/test/corpus/<9522ee398a1fd3cdce48cfe883b307336ae6674f.1345552068.git.julien.grall@citrix.com>
deleted file mode 100644 (file)
index aed2ceb..0000000
+++ /dev/null
@@ -1,1260 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Aug 22 19:59:24 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 22 Aug 2012 19:59:24 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T4G98-0002sn-Bz
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 22 Aug 2012 19:59:24 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T4G5U-00077j-QE; Wed, 22 Aug 2012 18:55:32 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <julien.grall@citrix.com>) id 1T4G5R-00070A-6s
-       for xen-devel@lists.xen.org; Wed, 22 Aug 2012 18:55:30 +0000
-Received: from [85.158.138.51:26672] by server-7.bemta-3.messagelabs.com id
-       77/79-01906-02B25305; Wed, 22 Aug 2012 18:55:28 +0000
-X-Env-Sender: julien.grall@citrix.com
-X-Msg-Ref: server-5.tower-174.messagelabs.com!1345661707!27566656!7
-X-Originating-IP: [66.165.176.63]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyNzMzNjM=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 10498 invoked from network); 22 Aug 2012 18:55:25 -0000
-Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
-       by server-5.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
-       22 Aug 2012 18:55:25 -0000
-X-IronPort-AV: E=Sophos;i="4.80,809,1344225600"; d="scan'208";a="205943138"
-Received: from ftlpmailmx01.citrite.net ([10.13.107.65])
-       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       22 Aug 2012 14:55:24 -0400
-Received: from meteora.cam.xci-test.com (10.80.248.22) by smtprelay.citrix.com
-       (10.13.107.65) with Microsoft SMTP Server id 8.3.213.0;
-       Wed, 22 Aug 2012 14:55:23 -0400
-From: Julien Grall <julien.grall@citrix.com>
-To: qemu-devel@nongnu.org
-Date: Wed, 22 Aug 2012 13:32:01 +0100
-Message-ID: <9522ee398a1fd3cdce48cfe883b307336ae6674f.1345552068.git.julien.grall@citrix.com>
-X-Mailer: git-send-email 1.7.2.5
-In-Reply-To: <cover.1345552068.git.julien.grall@citrix.com>
-References: <cover.1345552068.git.julien.grall@citrix.com>
-MIME-Version: 1.0
-Cc: Julien Grall <julien.grall@citrix.com>, christian.limpach@gmail.com,
-       Stefano.Stabellini@eu.citrix.com, xen-devel@lists.xen.org
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DATE_IN_PAST_06_12,
-       RCVD_IN_DNSWL_MED,RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham
-       version=3.3.1
-Subject: [Xen-devel] [XEN][RFC PATCH V2 15/17] xl: support spawn/destroy on
-       multiple device model
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-Old configuration file is still working with qemu disaggregation.
-Before to spawn any QEMU, the toolstack will fill correctly, if needed,
-configuration structure.
-
-For the moment, the toolstack spawns device models one by one.
-
-Signed-off-by: Julien Grall <julien.grall@citrix.com>
----
- tools/libxl/libxl.c          |   16 ++-
- tools/libxl/libxl_create.c   |  150 +++++++++++++-----
- tools/libxl/libxl_device.c   |    7 +-
- tools/libxl/libxl_dm.c       |  369 ++++++++++++++++++++++++++++++------------
- tools/libxl/libxl_dom.c      |    4 +-
- tools/libxl/libxl_internal.h |   36 +++--
- 6 files changed, 421 insertions(+), 161 deletions(-)
-
-diff --git a/tools/libxl/libxl.c b/tools/libxl/libxl.c
-index 8ea3478..60718b6 100644
---- a/tools/libxl/libxl.c
-+++ b/tools/libxl/libxl.c
-@@ -1330,7 +1330,8 @@ static void stubdom_destroy_callback(libxl__egc *egc,
-     }
-     dds->stubdom_finished = 1;
--    savefile = libxl__device_model_savefile(gc, dis->domid);
-+    /* FIXME: get dmid */
-+    savefile = libxl__device_model_savefile(gc, dis->domid, 0);
-     rc = libxl__remove_file(gc, savefile);
-     /*
-      * On suspend libxl__domain_save_device_model will have already
-@@ -1423,10 +1424,8 @@ void libxl__destroy_domid(libxl__egc *egc, libxl__destroy_domid_state *dis)
-         LIBXL__LOG_ERRNOVAL(ctx, LIBXL__LOG_ERROR, rc, "xc_domain_pause failed for %d", domid);
-     }
-     if (dm_present) {
--        if (libxl__destroy_device_model(gc, domid) < 0)
--            LIBXL__LOG(ctx, LIBXL__LOG_ERROR, "libxl__destroy_device_model failed for %d", domid);
--
--        libxl__qmp_cleanup(gc, domid);
-+        if (libxl__destroy_device_models(gc, domid) < 0)
-+            LIBXL__LOG(ctx, LIBXL__LOG_ERROR, "libxl__destroy_device_models failed for %d", domid);
-     }
-     dis->drs.ao = ao;
-     dis->drs.domid = domid;
-@@ -1725,6 +1724,13 @@ out:
- /******************************************************************************/
-+int libxl__dm_setdefault(libxl__gc *gc, libxl_dm *dm)
-+{
-+    return 0;
-+}
-+
-+/******************************************************************************/
-+
- int libxl__device_disk_setdefault(libxl__gc *gc, libxl_device_disk *disk)
- {
-     int rc;
-diff --git a/tools/libxl/libxl_create.c b/tools/libxl/libxl_create.c
-index 5f0d26f..7160c78 100644
---- a/tools/libxl/libxl_create.c
-+++ b/tools/libxl/libxl_create.c
-@@ -35,6 +35,10 @@ void libxl_domain_config_dispose(libxl_domain_config *d_config)
- {
-     int i;
-+    for (i=0; i<d_config->num_dms; i++)
-+        libxl_dm_dispose(&d_config->dms[i]);
-+    free(d_config->dms);
-+
-     for (i=0; i<d_config->num_disks; i++)
-         libxl_device_disk_dispose(&d_config->disks[i]);
-     free(d_config->disks);
-@@ -59,6 +63,50 @@ void libxl_domain_config_dispose(libxl_domain_config *d_config)
-     libxl_domain_build_info_dispose(&d_config->b_info);
- }
-+static int libxl__domain_config_setdefault(libxl__gc *gc,
-+                                           libxl_domain_config *d_config)
-+{
-+    libxl_domain_build_info *b_info = &d_config->b_info;
-+    uint64_t cap = 0;
-+    int i = 0;
-+    int ret = 0;
-+    libxl_dm *default_dm = NULL;
-+
-+    if (b_info->device_model_version == LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN_TRADITIONAL
-+        && (d_config->num_dms > 1))
-+        return ERROR_INVAL;
-+
-+    if (!d_config->num_dms) {
-+        d_config->dms = malloc(sizeof (*d_config->dms));
-+        if (!d_config->dms)
-+            return ERROR_NOMEM;
-+        libxl_dm_init(d_config->dms);
-+        d_config->num_dms = 1;
-+    }
-+
-+    for (i = 0; i < d_config->num_dms; i++)
-+    {
-+        ret = libxl__dm_setdefault(gc, &d_config->dms[i]);
-+        if (ret) return ret;
-+
-+        if (cap & d_config->dms[i].capabilities)
-+            /* Some capabilities are already emulated */
-+            return ERROR_INVAL;
-+
-+        cap |= d_config->dms[i].capabilities;
-+        if (d_config->dms[i].capabilities & LIBXL_DM_CAP_UI)
-+            default_dm = &d_config->dms[i];
-+    }
-+
-+    if (!default_dm)
-+        default_dm = &d_config->dms[0];
-+
-+    /* The default device model emulates all that the others don't emulate */
-+    default_dm->capabilities |= ~cap;
-+
-+    return ret;
-+}
-+
- int libxl__domain_create_info_setdefault(libxl__gc *gc,
-                                          libxl_domain_create_info *c_info)
- {
-@@ -145,11 +193,11 @@ int libxl__domain_build_info_setdefault(libxl__gc *gc,
-                 LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN_TRADITIONAL;
-         else {
-             const char *dm;
--            int rc;
-+            int rc = 0;
-             b_info->device_model_version =
-                 LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN;
--            dm = libxl__domain_device_model(gc, b_info);
-+            dm = libxl__domain_device_model(gc, ~0, b_info);
-             rc = access(dm, X_OK);
-             if (rc < 0) {
-                 /* qemu-xen unavailable, use qemu-xen-traditional */
-@@ -651,11 +699,13 @@ static void initiate_domain_create(libxl__egc *egc,
-     }
-     dcs->guest_domid = domid;
--    dcs->dmss.dm.guest_domid = 0; /* means we haven't spawned */
-     ret = libxl__domain_build_info_setdefault(gc, &d_config->b_info);
-     if (ret) goto error_out;
-+    ret = libxl__domain_config_setdefault(gc, d_config);
-+    if (ret) goto error_out;
-+
-     if (!sched_params_valid(gc, domid, &d_config->b_info.sched_params)) {
-         LOG(ERROR, "Invalid scheduling parameters\n");
-         ret = ERROR_INVAL;
-@@ -667,6 +717,15 @@ static void initiate_domain_create(libxl__egc *egc,
-         if (ret) goto error_out;
-     }
-+    dcs->current_dmid = 0;
-+    dcs->build_state.num_dms = d_config->num_dms;
-+    GCNEW_ARRAY(dcs->dmss, d_config->num_dms);
-+
-+    for (i = 0; i < d_config->num_dms; i++) {
-+        dcs->dmss[i].dm.guest_domid = 0; /* Means we haven't spawned */
-+        dcs->dmss[i].dm.dcs = dcs;
-+    }
-+
-     dcs->bl.ao = ao;
-     libxl_device_disk *bootdisk =
-         d_config->num_disks > 0 ? &d_config->disks[0] : NULL;
-@@ -709,6 +768,26 @@ static void domcreate_console_available(libxl__egc *egc,
-                                         dcs->guest_domid));
- }
-+static void domcreate_spawn_devmodel(libxl__egc *egc,
-+                                    libxl__domain_create_state *dcs,
-+                                    libxl_dmid dmid)
-+{
-+    libxl__stub_dm_spawn_state *dmss = &dcs->dmss[dmid];
-+    STATE_AO_GC(dcs->ao);
-+
-+    /* We might be going to call libxl__spawn_local_dm, or _spawn_stub_dm.
-+     * Fill in any field required by either, including both relevant
-+     * callbacks (_spawn_stub_dm will overwrite our trespass if needed). */
-+    dmss->dm.spawn.ao = ao;
-+    dmss->dm.guest_config = dcs->guest_config;
-+    dmss->dm.build_state = &dcs->build_state;
-+    dmss->dm.callback = domcreate_devmodel_started;
-+    dmss->callback = domcreate_devmodel_started;
-+    dmss->dm.dmid = dmid;
-+
-+    libxl__spawn_dm(egc, dmss);
-+}
-+
- static void domcreate_bootloader_done(libxl__egc *egc,
-                                       libxl__bootloader_state *bl,
-                                       int rc)
-@@ -735,15 +814,6 @@ static void domcreate_bootloader_done(libxl__egc *egc,
-      */
-     state->pv_cmdline = bl->cmdline;
--    /* We might be going to call libxl__spawn_local_dm, or _spawn_stub_dm.
--     * Fill in any field required by either, including both relevant
--     * callbacks (_spawn_stub_dm will overwrite our trespass if needed). */
--    dcs->dmss.dm.spawn.ao = ao;
--    dcs->dmss.dm.guest_config = dcs->guest_config;
--    dcs->dmss.dm.build_state = &dcs->build_state;
--    dcs->dmss.dm.callback = domcreate_devmodel_started;
--    dcs->dmss.callback = domcreate_devmodel_started;
--
-     if ( restore_fd < 0 ) {
-         rc = libxl__domain_build(gc, &d_config->b_info, domid, state);
-         domcreate_rebuild_done(egc, dcs, rc);
-@@ -962,11 +1032,7 @@ static void domcreate_launch_dm(libxl__egc *egc, libxl__multidev *multidev,
-         libxl__device_vkb_add(gc, domid, &vkb);
-         libxl_device_vkb_dispose(&vkb);
--        dcs->dmss.dm.guest_domid = domid;
--        if (libxl_defbool_val(d_config->b_info.device_model_stubdomain))
--            libxl__spawn_stub_dm(egc, &dcs->dmss);
--        else
--            libxl__spawn_local_dm(egc, &dcs->dmss.dm);
-+        domcreate_spawn_devmodel(egc, dcs, dcs->current_dmid);
-         return;
-     }
-     case LIBXL_DOMAIN_TYPE_PV:
-@@ -991,12 +1057,11 @@ static void domcreate_launch_dm(libxl__egc *egc, libxl__multidev *multidev,
-         libxl__device_console_dispose(&console);
-         if (need_qemu) {
--            dcs->dmss.dm.guest_domid = domid;
--            libxl__spawn_local_dm(egc, &dcs->dmss.dm);
-+            assert(dcs->dmss);
-+            domcreate_spawn_devmodel(egc, dcs, dcs->current_dmid);
-             return;
-         } else {
--            assert(!dcs->dmss.dm.guest_domid);
--            domcreate_devmodel_started(egc, &dcs->dmss.dm, 0);
-+            assert(!dcs->dmss);
-             return;
-         }
-     }
-@@ -1015,7 +1080,7 @@ static void domcreate_devmodel_started(libxl__egc *egc,
-                                        libxl__dm_spawn_state *dmss,
-                                        int ret)
- {
--    libxl__domain_create_state *dcs = CONTAINER_OF(dmss, *dcs, dmss.dm);
-+    libxl__domain_create_state *dcs = dmss->dcs;
-     STATE_AO_GC(dmss->spawn.ao);
-     libxl_ctx *ctx = CTX;
-     int domid = dcs->guest_domid;
-@@ -1029,15 +1094,15 @@ static void domcreate_devmodel_started(libxl__egc *egc,
-         goto error_out;
-     }
--    if (dcs->dmss.dm.guest_domid) {
-+    if (dmss->guest_domid) {
-         if (d_config->b_info.device_model_version
-             == LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN) {
--            libxl__qmp_initializations(gc, domid, d_config);
-+            libxl__qmp_initializations(gc, domid, dmss->dmid, d_config);
-         }
-     }
-     /* Plug nic interfaces */
--    if (d_config->num_nics > 0) {
-+    if (d_config->num_nics > 0 && dmss->dmid == 0) {
-         /* Attach nics */
-         libxl__multidev_begin(ao, &dcs->multidev);
-         dcs->multidev.callback = domcreate_attach_pci;
-@@ -1071,23 +1136,34 @@ static void domcreate_attach_pci(libxl__egc *egc, libxl__multidev *multidev,
-         goto error_out;
-     }
--    for (i = 0; i < d_config->num_pcidevs; i++)
--        libxl__device_pci_add(gc, domid, &d_config->pcidevs[i], 1);
-+    /* TO FIX: for the moment only add to device model 0 */
--    if (d_config->num_pcidevs > 0) {
--        ret = libxl__create_pci_backend(gc, domid, d_config->pcidevs,
--            d_config->num_pcidevs);
--        if (ret < 0) {
--            LIBXL__LOG(ctx, LIBXL__LOG_ERROR,
--                "libxl_create_pci_backend failed: %d", ret);
--            goto error_out;
-+    if (dcs->current_dmid == 0) {
-+        for (i = 0; i < d_config->num_pcidevs; i++)
-+            libxl__device_pci_add(gc, domid,
-+                                  &d_config->pcidevs[i], 1);
-+
-+        if (d_config->num_pcidevs > 0) {
-+            ret = libxl__create_pci_backend(gc, domid, d_config->pcidevs,
-+                d_config->num_pcidevs);
-+            if (ret < 0) {
-+                LIBXL__LOG(ctx, LIBXL__LOG_ERROR,
-+                    "libxl_create_pci_backend failed: %d", ret);
-+                goto error_out;
-+            }
-         }
-     }
--    libxl__arch_domain_create(gc, d_config, domid);
--    domcreate_console_available(egc, dcs);
-+    dcs->current_dmid++;
-+
-+    if (dcs->current_dmid >= dcs->guest_config->num_dms) {
-+        libxl__arch_domain_create(gc, d_config, domid);
-+        domcreate_console_available(egc, dcs);
-+        domcreate_complete(egc, dcs, 0);
-+    } else {
-+        domcreate_spawn_devmodel(egc, dcs, dcs->current_dmid);
-+    }
--    domcreate_complete(egc, dcs, 0);
-     return;
- error_out:
-diff --git a/tools/libxl/libxl_device.c b/tools/libxl/libxl_device.c
-index 8e8410e..798665e 100644
---- a/tools/libxl/libxl_device.c
-+++ b/tools/libxl/libxl_device.c
-@@ -1034,8 +1034,8 @@ static void devices_remove_callback(libxl__egc *egc,
-     return;
- }
--int libxl__wait_for_device_model(libxl__gc *gc,
--                                 uint32_t domid, char *state,
-+int libxl__wait_for_device_model(libxl__gc *gc, libxl_domid domid,
-+                                 libxl_dmid dmid, char *state,
-                                  libxl__spawn_starting *spawning,
-                                  int (*check_callback)(libxl__gc *gc,
-                                                        uint32_t domid,
-@@ -1044,7 +1044,8 @@ int libxl__wait_for_device_model(libxl__gc *gc,
-                                  void *check_callback_userdata)
- {
-     char *path;
--    path = libxl__sprintf(gc, "/local/domain/0/device-model/%d/state", domid);
-+    path = libxl__sprintf(gc, "/local/domain/0/dms/%u/%u/state",
-+                          domid, dmid);
-     return libxl__wait_for_offspring(gc, domid,
-                                      LIBXL_DEVICE_MODEL_START_TIMEOUT,
-                                      "Device Model", path, state, spawning,
-diff --git a/tools/libxl/libxl_dm.c b/tools/libxl/libxl_dm.c
-index 0c0084f..de7138f 100644
---- a/tools/libxl/libxl_dm.c
-+++ b/tools/libxl/libxl_dm.c
-@@ -28,24 +28,30 @@ static const char *libxl_tapif_script(libxl__gc *gc)
- #endif
- }
--const char *libxl__device_model_savefile(libxl__gc *gc, uint32_t domid)
-+const char *libxl__device_model_savefile(libxl__gc *gc, libxl_domid domid,
-+                                         libxl_dmid dmid)
- {
--    return libxl__sprintf(gc, "/var/lib/xen/qemu-save.%d", domid);
-+    return libxl__sprintf(gc, "/var/lib/xen/qemu-save.%u.%u", domid, dmid);
- }
- const char *libxl__domain_device_model(libxl__gc *gc,
--                                       const libxl_domain_build_info *info)
-+                                       uint32_t dmid,
-+                                       const libxl_domain_build_info *b_info)
- {
-     libxl_ctx *ctx = libxl__gc_owner(gc);
-     const char *dm;
-+    libxl_domain_config *guest_config = CONTAINER_OF(b_info, *guest_config,
-+                                                     b_info);
--    if (libxl_defbool_val(info->device_model_stubdomain))
-+    if (libxl_defbool_val(guest_config->b_info.device_model_stubdomain))
-         return NULL;
--    if (info->device_model) {
--        dm = libxl__strdup(gc, info->device_model);
-+    if (dmid < guest_config->num_dms && guest_config->dms[dmid].path) {
-+        dm = libxl__strdup(gc, guest_config->dms[dmid].path);
-+    } else if (guest_config->b_info.device_model) {
-+        dm = libxl__strdup(gc, guest_config->b_info.device_model);
-     } else {
--        switch (info->device_model_version) {
-+        switch (guest_config->b_info.device_model_version) {
-         case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN_TRADITIONAL:
-             dm = libxl__abs_path(gc, "qemu-dm", libxl__libexec_path());
-             break;
-@@ -55,7 +61,7 @@ const char *libxl__domain_device_model(libxl__gc *gc,
-         default:
-             LIBXL__LOG(ctx, LIBXL__LOG_ERROR,
-                        "invalid device model version %d\n",
--                       info->device_model_version);
-+                       guest_config->b_info.device_model_version);
-             dm = NULL;
-             break;
-         }
-@@ -63,7 +69,8 @@ const char *libxl__domain_device_model(libxl__gc *gc,
-     return dm;
- }
--const libxl_vnc_info *libxl__dm_vnc(const libxl_domain_config *guest_config)
-+const libxl_vnc_info *libxl__dm_vnc(libxl_dmid dmid,
-+                                    const libxl_domain_config *guest_config)
- {
-     const libxl_vnc_info *vnc = NULL;
-     if (guest_config->b_info.type == LIBXL_DOMAIN_TYPE_HVM) {
-@@ -103,7 +110,7 @@ static char ** libxl__build_device_model_args_old(libxl__gc *gc,
-     const libxl_domain_create_info *c_info = &guest_config->c_info;
-     const libxl_domain_build_info *b_info = &guest_config->b_info;
-     const libxl_device_nic *nics = guest_config->nics;
--    const libxl_vnc_info *vnc = libxl__dm_vnc(guest_config);
-+    const libxl_vnc_info *vnc = libxl__dm_vnc(0, guest_config);
-     const libxl_sdl_info *sdl = dm_sdl(guest_config);
-     const int num_nics = guest_config->num_nics;
-     const char *keymap = dm_keymap(guest_config);
-@@ -321,24 +328,58 @@ static char *dm_spice_options(libxl__gc *gc,
-     return opt;
- }
-+static int libxl__dm_has_vif(const char *vifname, libxl_dmid dmid,
-+                             const libxl_domain_config *guest_config)
-+{
-+    const libxl_dm *dm_config = &guest_config->dms[dmid];
-+    int i = 0;
-+
-+    if (!vifname && (dm_config->capabilities & LIBXL_DM_CAP_UI))
-+        return 1;
-+
-+    if (!dm_config->vifs)
-+        return 0;
-+
-+    for (i = 0; dm_config->vifs[i]; i++) {
-+        if (!strcmp(dm_config->vifs[i], vifname))
-+            return 1;
-+    }
-+
-+    return 0;
-+}
-+
- static char ** libxl__build_device_model_args_new(libxl__gc *gc,
--                                        const char *dm, int guest_domid,
-+                                        const char *dm, libxl_dmid guest_domid,
-+                                        libxl_dmid dmid,
-                                         const libxl_domain_config *guest_config,
-                                         const libxl__domain_build_state *state)
- {
-+    /**
-+     * PCI device number. Before 3, we have IDE, ISA, SouthBridge and
-+     * XEN PCI. Theses devices will be emulate in each QEMU, but only
-+     * one QEMU (the one which emulates default device) will register
-+     * these devices through Xen PCI hypercall.
-+     */
-+    static unsigned int bdf = 3;
-+
-     libxl_ctx *ctx = libxl__gc_owner(gc);
-     const libxl_domain_create_info *c_info = &guest_config->c_info;
-     const libxl_domain_build_info *b_info = &guest_config->b_info;
-+    const libxl_dm *dm_config = &guest_config->dms[dmid];
-     const libxl_device_disk *disks = guest_config->disks;
-     const libxl_device_nic *nics = guest_config->nics;
-     const int num_disks = guest_config->num_disks;
-     const int num_nics = guest_config->num_nics;
--    const libxl_vnc_info *vnc = libxl__dm_vnc(guest_config);
-+    const libxl_vnc_info *vnc = libxl__dm_vnc(dmid, guest_config);
-     const libxl_sdl_info *sdl = dm_sdl(guest_config);
-     const char *keymap = dm_keymap(guest_config);
-     flexarray_t *dm_args;
-     int i;
-     uint64_t ram_size;
-+    uint32_t cap_ui = dm_config->capabilities & LIBXL_DM_CAP_UI;
-+    uint32_t cap_ide = dm_config->capabilities & LIBXL_DM_CAP_IDE;
-+    uint32_t cap_serial = dm_config->capabilities & LIBXL_DM_CAP_SERIAL;
-+    uint32_t cap_audio = dm_config->capabilities & LIBXL_DM_CAP_AUDIO;
-     dm_args = flexarray_make(16, 1);
-     if (!dm_args)
-@@ -348,11 +389,12 @@ static char ** libxl__build_device_model_args_new(libxl__gc *gc,
-                       "-xen-domid",
-                       libxl__sprintf(gc, "%d", guest_domid), NULL);
-+    flexarray_append(dm_args, "-nodefaults");
-     flexarray_append(dm_args, "-chardev");
-     flexarray_append(dm_args,
-                      libxl__sprintf(gc, "socket,id=libxl-cmd,"
--                                    "path=%s/qmp-libxl-%d,server,nowait",
--                                    libxl__run_dir_path(), guest_domid));
-+                                    "path=%s/qmp-libxl-%u-%u,server,nowait",
-+                                    libxl__run_dir_path(), guest_domid, dmid));
-     flexarray_append(dm_args, "-mon");
-     flexarray_append(dm_args, "chardev=libxl-cmd,mode=control");
-@@ -364,7 +406,8 @@ static char ** libxl__build_device_model_args_new(libxl__gc *gc,
-     if (c_info->name) {
-         flexarray_vappend(dm_args, "-name", c_info->name, NULL);
-     }
--    if (vnc) {
-+
-+    if (vnc && cap_ui) {
-         int display = 0;
-         const char *listen = "127.0.0.1";
-         char *vncarg = NULL;
-@@ -395,7 +438,7 @@ static char ** libxl__build_device_model_args_new(libxl__gc *gc,
-         }
-         flexarray_append(dm_args, vncarg);
-     }
--    if (sdl) {
-+    if (sdl && cap_ui) {
-         flexarray_append(dm_args, "-sdl");
-         /* XXX sdl->{display,xauthority} into $DISPLAY/$XAUTHORITY */
-     }
-@@ -411,13 +454,27 @@ static char ** libxl__build_device_model_args_new(libxl__gc *gc,
-     if (b_info->type == LIBXL_DOMAIN_TYPE_HVM) {
-         int ioemu_nics = 0;
--        if (b_info->u.hvm.serial) {
-+        if (b_info->u.hvm.serial && cap_serial) {
-             flexarray_vappend(dm_args, "-serial", b_info->u.hvm.serial, NULL);
-         }
--        if (libxl_defbool_val(b_info->u.hvm.nographic) && (!sdl && !vnc)) {
-+        if ((libxl_defbool_val(b_info->u.hvm.nographic) && (!sdl && !vnc))
-+            || !cap_ui) {
-             flexarray_append(dm_args, "-nographic");
-         }
-+        else {
-+            switch (b_info->u.hvm.vga.kind) {
-+            case LIBXL_VGA_INTERFACE_TYPE_STD:
-+                flexarray_vappend(dm_args, "-device",
-+                                  GCSPRINTF("VGA,addr=%u", bdf++), NULL);
-+                break;
-+            case LIBXL_VGA_INTERFACE_TYPE_CIRRUS:
-+                flexarray_vappend(dm_args, "-device",
-+                                  GCSPRINTF("cirrus-vga,addr=%u", bdf++),
-+                                  NULL);
-+                break;
-+            }
-+        }
-         if (libxl_defbool_val(b_info->u.hvm.spice.enable)) {
-             const libxl_spice_info *spice = &b_info->u.hvm.spice;
-@@ -429,27 +486,19 @@ static char ** libxl__build_device_model_args_new(libxl__gc *gc,
-             flexarray_append(dm_args, spiceoptions);
-         }
--        switch (b_info->u.hvm.vga.kind) {
--        case LIBXL_VGA_INTERFACE_TYPE_STD:
--            flexarray_vappend(dm_args, "-vga", "std", NULL);
--            break;
--        case LIBXL_VGA_INTERFACE_TYPE_CIRRUS:
--            flexarray_vappend(dm_args, "-vga", "cirrus", NULL);
--            break;
--        }
--
-         if (b_info->u.hvm.boot) {
-             flexarray_vappend(dm_args, "-boot",
-                     libxl__sprintf(gc, "order=%s", b_info->u.hvm.boot), NULL);
-         }
--        if (libxl_defbool_val(b_info->u.hvm.usb) || b_info->u.hvm.usbdevice) {
-+        if ((libxl_defbool_val(b_info->u.hvm.usb) || b_info->u.hvm.usbdevice)
-+            && cap_ui) {
-             flexarray_append(dm_args, "-usb");
-             if (b_info->u.hvm.usbdevice) {
-                 flexarray_vappend(dm_args,
-                                   "-usbdevice", b_info->u.hvm.usbdevice, NULL);
-             }
-         }
--        if (b_info->u.hvm.soundhw) {
-+        if (b_info->u.hvm.soundhw && cap_audio) {
-             flexarray_vappend(dm_args, "-soundhw", b_info->u.hvm.soundhw, NULL);
-         }
-         if (!libxl_defbool_val(b_info->u.hvm.acpi)) {
-@@ -469,7 +518,8 @@ static char ** libxl__build_device_model_args_new(libxl__gc *gc,
-                                                          b_info->max_vcpus));
-         }
-         for (i = 0; i < num_nics; i++) {
--            if (nics[i].nictype == LIBXL_NIC_TYPE_VIF_IOEMU) {
-+            if (nics[i].nictype == LIBXL_NIC_TYPE_VIF_IOEMU
-+                && libxl__dm_has_vif(nics[i].id, dmid, guest_config)) {
-                 char *smac = libxl__sprintf(gc,
-                                 LIBXL_MAC_FMT, LIBXL_MAC_BYTES(nics[i].mac));
-                 const char *ifname = libxl__device_nic_devname(gc,
-@@ -477,9 +527,9 @@ static char ** libxl__build_device_model_args_new(libxl__gc *gc,
-                                                 LIBXL_NIC_TYPE_VIF_IOEMU);
-                 flexarray_append(dm_args, "-device");
-                 flexarray_append(dm_args,
--                   libxl__sprintf(gc, "%s,id=nic%d,netdev=net%d,mac=%s",
--                                                nics[i].model, nics[i].devid,
--                                                nics[i].devid, smac));
-+                            GCSPRINTF("%s,id=nic%d,netdev=net%d,mac=%s,addr=%u",
-+                                      nics[i].model, nics[i].devid,
-+                                      nics[i].devid, smac, bdf++));
-                 flexarray_append(dm_args, "-netdev");
-                 flexarray_append(dm_args, GCSPRINTF(
-                                           "type=tap,id=net%d,ifname=%s,"
-@@ -495,7 +545,7 @@ static char ** libxl__build_device_model_args_new(libxl__gc *gc,
-             flexarray_append(dm_args, "-net");
-             flexarray_append(dm_args, "none");
-         }
--        if (libxl_defbool_val(b_info->u.hvm.gfx_passthru)) {
-+        if (libxl_defbool_val(b_info->u.hvm.gfx_passthru) && cap_ui) {
-             flexarray_append(dm_args, "-gfx_passthru");
-         }
-     } else {
-@@ -506,13 +556,14 @@ static char ** libxl__build_device_model_args_new(libxl__gc *gc,
-     if (state->saved_state) {
-         /* This file descriptor is meant to be used by QEMU */
--        int migration_fd = open(state->saved_state, O_RDONLY);
-+        int migration_fd = open(libxl__sprintf(gc, "%s.%u", state->saved_state,
-+                                               dmid), O_RDONLY);
-         flexarray_append(dm_args, "-incoming");
-         flexarray_append(dm_args, libxl__sprintf(gc, "fd:%d", migration_fd));
-     }
-     for (i = 0; b_info->extra && b_info->extra[i] != NULL; i++)
-         flexarray_append(dm_args, b_info->extra[i]);
--    flexarray_append(dm_args, "-M");
-+    flexarray_append(dm_args, "-machine");
-     switch (b_info->type) {
-     case LIBXL_DOMAIN_TYPE_PV:
-         flexarray_append(dm_args, "xenpv");
-@@ -520,7 +571,11 @@ static char ** libxl__build_device_model_args_new(libxl__gc *gc,
-             flexarray_append(dm_args, b_info->extra_pv[i]);
-         break;
-     case LIBXL_DOMAIN_TYPE_HVM:
--        flexarray_append(dm_args, "xenfv");
-+        flexarray_append(dm_args,
-+                         libxl__sprintf(gc,
-+                                        "xenfv,xen_dmid=%u,xen_default_dev=%s,xen_emulate_ide=%s",
-+                                        dmid, (cap_ui) ? "on" : "off",
-+                                        (cap_ide) ? "on" : "off"));
-         for (i = 0; b_info->extra_hvm && b_info->extra_hvm[i] != NULL; i++)
-             flexarray_append(dm_args, b_info->extra_hvm[i]);
-         break;
-@@ -528,65 +583,69 @@ static char ** libxl__build_device_model_args_new(libxl__gc *gc,
-         abort();
-     }
--    ram_size = libxl__sizekb_to_mb(b_info->max_memkb - b_info->video_memkb);
-+    // Allocate ram space of 32Mo per previous device model to store rom
-+    ram_size = libxl__sizekb_to_mb(b_info->max_memkb - b_info->video_memkb)
-+        + 32 * dmid;
-     flexarray_append(dm_args, "-m");
-     flexarray_append(dm_args, libxl__sprintf(gc, "%"PRId64, ram_size));
-     if (b_info->type == LIBXL_DOMAIN_TYPE_HVM) {
--        for (i = 0; i < num_disks; i++) {
--            int disk, part;
--            int dev_number =
--                libxl__device_disk_dev_number(disks[i].vdev, &disk, &part);
--            const char *format = qemu_disk_format_string(disks[i].format);
--            char *drive;
--
--            if (dev_number == -1) {
--                LIBXL__LOG(ctx, LIBXL__LOG_WARNING, "unable to determine"
--                           " disk number for %s", disks[i].vdev);
--                continue;
--            }
--
--            if (disks[i].is_cdrom) {
--                if (disks[i].format == LIBXL_DISK_FORMAT_EMPTY)
--                    drive = libxl__sprintf
--                        (gc, "if=ide,index=%d,media=cdrom", disk);
--                else
--                    drive = libxl__sprintf
--                        (gc, "file=%s,if=ide,index=%d,media=cdrom,format=%s",
--                         disks[i].pdev_path, disk, format);
--            } else {
--                if (disks[i].format == LIBXL_DISK_FORMAT_EMPTY) {
--                    LIBXL__LOG(ctx, LIBXL__LOG_WARNING, "cannot support"
--                               " empty disk format for %s", disks[i].vdev);
-+        if (cap_ide) {
-+            for (i = 0; i < num_disks; i++) {
-+                int disk, part;
-+                int dev_number =
-+                    libxl__device_disk_dev_number(disks[i].vdev, &disk, &part);
-+                const char *format = qemu_disk_format_string(disks[i].format);
-+                char *drive;
-+
-+                if (dev_number == -1) {
-+                    LIBXL__LOG(ctx, LIBXL__LOG_WARNING, "unable to determine"
-+                               " disk number for %s", disks[i].vdev);
-                     continue;
-                 }
--                if (format == NULL) {
--                    LIBXL__LOG(ctx, LIBXL__LOG_WARNING, "unable to determine"
--                               " disk image format %s", disks[i].vdev);
--                    continue;
-+                if (disks[i].is_cdrom) {
-+                    if (disks[i].format == LIBXL_DISK_FORMAT_EMPTY)
-+                        drive = libxl__sprintf
-+                            (gc, "if=ide,index=%d,media=cdrom", disk);
-+                    else
-+                        drive = libxl__sprintf
-+                            (gc, "file=%s,if=ide,index=%d,media=cdrom,format=%s",
-+                             disks[i].pdev_path, disk, format);
-+                } else {
-+                    if (disks[i].format == LIBXL_DISK_FORMAT_EMPTY) {
-+                        LIBXL__LOG(ctx, LIBXL__LOG_WARNING, "cannot support"
-+                                   " empty disk format for %s", disks[i].vdev);
-+                        continue;
-+                    }
-+
-+                    if (format == NULL) {
-+                        LIBXL__LOG(ctx, LIBXL__LOG_WARNING, "unable to determine"
-+                                   " disk image format %s", disks[i].vdev);
-+                        continue;
-+                    }
-+
-+                    /*
-+                     * Explicit sd disks are passed through as is.
-+                     *
-+                     * For other disks we translate devices 0..3 into
-+                     * hd[a-d] and ignore the rest.
-+                     */
-+                    if (strncmp(disks[i].vdev, "sd", 2) == 0)
-+                        drive = libxl__sprintf
-+                            (gc, "file=%s,if=scsi,bus=0,unit=%d,format=%s",
-+                             disks[i].pdev_path, disk, format);
-+                    else if (disk < 4)
-+                        drive = libxl__sprintf
-+                            (gc, "file=%s,if=ide,index=%d,media=disk,format=%s",
-+                             disks[i].pdev_path, disk, format);
-+                    else
-+                        continue; /* Do not emulate this disk */
-                 }
--                /*
--                 * Explicit sd disks are passed through as is.
--                 *
--                 * For other disks we translate devices 0..3 into
--                 * hd[a-d] and ignore the rest.
--                 */
--                if (strncmp(disks[i].vdev, "sd", 2) == 0)
--                    drive = libxl__sprintf
--                        (gc, "file=%s,if=scsi,bus=0,unit=%d,format=%s",
--                         disks[i].pdev_path, disk, format);
--                else if (disk < 4)
--                    drive = libxl__sprintf
--                        (gc, "file=%s,if=ide,index=%d,media=disk,format=%s",
--                         disks[i].pdev_path, disk, format);
--                else
--                    continue; /* Do not emulate this disk */
-+                flexarray_append(dm_args, "-drive");
-+                flexarray_append(dm_args, drive);
-             }
--
--            flexarray_append(dm_args, "-drive");
--            flexarray_append(dm_args, drive);
-         }
-     }
-     flexarray_append(dm_args, NULL);
-@@ -594,7 +653,9 @@ static char ** libxl__build_device_model_args_new(libxl__gc *gc,
- }
- static char ** libxl__build_device_model_args(libxl__gc *gc,
--                                        const char *dm, int guest_domid,
-+                                        const char *dm,
-+                                        libxl_domid guest_domid,
-+                                        libxl_dmid dmid,
-                                         const libxl_domain_config *guest_config,
-                                         const libxl__domain_build_state *state)
- {
-@@ -607,8 +668,8 @@ static char ** libxl__build_device_model_args(libxl__gc *gc,
-                                                   state);
-     case LIBXL_DEVICE_MODEL_VERSION_QEMU_XEN:
-         return libxl__build_device_model_args_new(gc, dm,
--                                                  guest_domid, guest_config,
--                                                  state);
-+                                                  guest_domid, dmid,
-+                                                  guest_config, state);
-     default:
-         LIBXL__LOG_ERRNO(ctx, LIBXL__LOG_ERROR, "unknown device model version %d",
-                          guest_config->b_info.device_model_version);
-@@ -729,7 +790,8 @@ char *libxl__stub_dm_name(libxl__gc *gc, const char *guest_name)
-     return libxl__sprintf(gc, "%s-dm", guest_name);
- }
--void libxl__spawn_stub_dm(libxl__egc *egc, libxl__stub_dm_spawn_state *sdss)
-+static void libxl__spawn_stub_dm(libxl__egc *egc,
-+                                 libxl__stub_dm_spawn_state *sdss)
- {
-     STATE_AO_GC(sdss->dm.spawn.ao);
-     libxl_ctx *ctx = libxl__gc_owner(gc);
-@@ -815,7 +877,7 @@ void libxl__spawn_stub_dm(libxl__egc *egc, libxl__stub_dm_spawn_state *sdss)
-     if (ret)
-         goto out;
--    args = libxl__build_device_model_args(gc, "stubdom-dm", guest_domid,
-+    args = libxl__build_device_model_args(gc, "stubdom-dm", guest_domid, 0,
-                                           guest_config, d_state);
-     if (!args) {
-         ret = ERROR_FAIL;
-@@ -871,12 +933,16 @@ out:
-     spawn_stubdom_pvqemu_cb(egc, &sdss->pvqemu, ret);
- }
-+static void libxl__spawn_local_dm(libxl__egc *egc,
-+                                  libxl__dm_spawn_state *sdss);
-+
- static void spawn_stub_launch_dm(libxl__egc *egc,
-                                  libxl__multidev *multidev, int ret)
- {
-     libxl__stub_dm_spawn_state *sdss = CONTAINER_OF(multidev, *sdss, multidev);
-     STATE_AO_GC(sdss->dm.spawn.ao);
-     libxl_ctx *ctx = libxl__gc_owner(gc);
-+    libxl_dmid dmid = sdss->dm.dmid;
-     int i, num_console = STUBDOM_SPECIAL_CONSOLES;
-     libxl__device_console *console;
-@@ -937,7 +1003,8 @@ static void spawn_stub_launch_dm(libxl__egc *egc,
-                 break;
-             case STUBDOM_CONSOLE_SAVE:
-                 console[i].output = libxl__sprintf(gc, "file:%s",
--                                libxl__device_model_savefile(gc, guest_domid));
-+                                libxl__device_model_savefile(gc, guest_domid,
-+                                                             dmid));
-                 break;
-             case STUBDOM_CONSOLE_RESTORE:
-                 if (d_state->saved_state)
-@@ -1049,10 +1116,11 @@ static void device_model_spawn_outcome(libxl__egc *egc,
-                                        libxl__dm_spawn_state *dmss,
-                                        int rc);
--void libxl__spawn_local_dm(libxl__egc *egc, libxl__dm_spawn_state *dmss)
-+static void libxl__spawn_local_dm(libxl__egc *egc, libxl__dm_spawn_state *dmss)
- {
-     /* convenience aliases */
-     const int domid = dmss->guest_domid;
-+    const libxl_dmid dmid = dmss->dmid;
-     libxl__domain_build_state *const state = dmss->build_state;
-     libxl__spawn_state *const spawn = &dmss->spawn;
-@@ -1062,7 +1130,8 @@ void libxl__spawn_local_dm(libxl__egc *egc, libxl__dm_spawn_state *dmss)
-     libxl_domain_config *guest_config = dmss->guest_config;
-     const libxl_domain_create_info *c_info = &guest_config->c_info;
-     const libxl_domain_build_info *b_info = &guest_config->b_info;
--    const libxl_vnc_info *vnc = libxl__dm_vnc(guest_config);
-+    const libxl_vnc_info *vnc = libxl__dm_vnc(dmid, guest_config);
-+    const libxl_dm *dm_config = &guest_config->dms[dmid];
-     char *path, *logfile;
-     int logfile_w, null;
-     int rc;
-@@ -1071,12 +1140,13 @@ void libxl__spawn_local_dm(libxl__egc *egc, libxl__dm_spawn_state *dmss)
-     char *vm_path;
-     char **pass_stuff;
-     const char *dm;
-+    const char *name;
-     if (libxl_defbool_val(b_info->device_model_stubdomain)) {
-         abort();
-     }
--    dm = libxl__domain_device_model(gc, b_info);
-+    dm = libxl__domain_device_model(gc, dmid, b_info);
-     if (!dm) {
-         rc = ERROR_FAIL;
-         goto out;
-@@ -1087,7 +1157,7 @@ void libxl__spawn_local_dm(libxl__egc *egc, libxl__dm_spawn_state *dmss)
-         rc = ERROR_FAIL;
-         goto out;
-     }
--    args = libxl__build_device_model_args(gc, dm, domid, guest_config, state);
-+    args = libxl__build_device_model_args(gc, dm, domid, dmid, guest_config, state);
-     if (!args) {
-         rc = ERROR_FAIL;
-         goto out;
-@@ -1101,7 +1171,7 @@ void libxl__spawn_local_dm(libxl__egc *egc, libxl__dm_spawn_state *dmss)
-         free(path);
-     }
--    path = libxl__sprintf(gc, "/local/domain/0/device-model/%d", domid);
-+    path = libxl__sprintf(gc, "/local/domain/0/dms/%u/%u", domid, dmid);
-     xs_mkdir(ctx->xsh, XBT_NULL, path);
-     if (b_info->type == LIBXL_DOMAIN_TYPE_HVM &&
-@@ -1110,8 +1180,13 @@ void libxl__spawn_local_dm(libxl__egc *egc, libxl__dm_spawn_state *dmss)
-         libxl__xs_write(gc, XBT_NULL, libxl__sprintf(gc, "%s/disable_pf", path),
-                     "%d", !libxl_defbool_val(b_info->u.hvm.xen_platform_pci));
-+
-+    name = dm_config->name;
-+    if (!name)
-+        name = libxl__sprintf(gc, "%u", dmid);
-+
-     libxl_create_logfile(ctx,
--                         libxl__sprintf(gc, "qemu-dm-%s", c_info->name),
-+                         libxl__sprintf(gc, "qemu-%s-%s", name, c_info->name),
-                          &logfile);
-     logfile_w = open(logfile, O_WRONLY|O_CREAT|O_APPEND, 0644);
-     free(logfile);
-@@ -1143,10 +1218,10 @@ retry_transaction:
-     for (arg = args; *arg; arg++)
-         LIBXL__LOG(CTX, XTL_DEBUG, "  %s", *arg);
--    spawn->what = GCSPRINTF("domain %d device model", domid);
--    spawn->xspath = GCSPRINTF("/local/domain/0/device-model/%d/state", domid);
-+    spawn->what = GCSPRINTF("domain %d device model %s", domid, name);
-+    spawn->xspath = GCSPRINTF("/local/domain/0/dms/%u/%u/state", domid, dmid);
-     spawn->timeout_ms = LIBXL_DEVICE_MODEL_START_TIMEOUT * 1000;
--    spawn->pidpath = GCSPRINTF("%s/image/device-model-pid", dom_path);
-+    spawn->pidpath = GCSPRINTF("%s/image/dms/%u-pid", dom_path, dmid);
-     spawn->midproc_cb = libxl__spawn_record_pid;
-     spawn->confirm_cb = device_model_confirm;
-     spawn->failure_cb = device_model_startup_failed;
-@@ -1171,6 +1246,32 @@ out:
-         device_model_spawn_outcome(egc, dmss, rc);
- }
-+void libxl__spawn_dm(libxl__egc *egc, libxl__stub_dm_spawn_state *dmss)
-+{
-+    libxl__domain_create_state *dcs = dmss->dm.dcs;
-+    libxl_domain_config *const d_config = dcs->guest_config;
-+    STATE_AO_GC(dmss->dm.spawn.ao);
-+
-+    switch (d_config->c_info.type) {
-+    case LIBXL_DOMAIN_TYPE_HVM:
-+    {
-+        dmss->dm.guest_domid = dcs->guest_domid;
-+        if (libxl_defbool_val(d_config->b_info.device_model_stubdomain))
-+            libxl__spawn_stub_dm(egc, dmss);
-+        else
-+            libxl__spawn_local_dm(egc, &dmss->dm);
-+        break;
-+    }
-+    case LIBXL_DOMAIN_TYPE_PV:
-+    {
-+        dmss->dm.guest_domid = dcs->guest_domid;
-+        libxl__spawn_local_dm(egc, &dmss->dm);
-+        break;
-+    }
-+    default:
-+        LIBXL__LOG(CTX, XTL_ERROR, "Unknow type %u", d_config->c_info.type);
-+    }
-+}
- static void device_model_confirm(libxl__egc *egc, libxl__spawn_state *spawn,
-                                  const char *xsdata)
-@@ -1207,6 +1308,7 @@ static void device_model_spawn_outcome(libxl__egc *egc,
- {
-     STATE_AO_GC(dmss->spawn.ao);
-     int ret2;
-+    char *filename;
-     if (rc)
-         LOG(ERROR, "%s: spawn failed (rc=%d)", dmss->spawn.what, rc);
-@@ -1214,10 +1316,11 @@ static void device_model_spawn_outcome(libxl__egc *egc,
-     libxl__domain_build_state *state = dmss->build_state;
-     if (state->saved_state) {
--        ret2 = unlink(state->saved_state);
-+        filename = GCSPRINTF("%s.%u", state->saved_state, dmss->dmid);
-+        ret2 = unlink(filename);
-         if (ret2) {
-             LOGE(ERROR, "%s: failed to remove device-model state %s",
--                 dmss->spawn.what, state->saved_state);
-+                 dmss->spawn.what, filename);
-             rc = ERROR_FAIL;
-             goto out;
-         }
-@@ -1229,12 +1332,14 @@ static void device_model_spawn_outcome(libxl__egc *egc,
-     dmss->callback(egc, dmss, rc);
- }
--int libxl__destroy_device_model(libxl__gc *gc, uint32_t domid)
-+static int libxl__destroy_device_model(libxl__gc *gc, libxl_domid domid,
-+                                       libxl_dmid dmid)
- {
-     char *pid;
-     int ret;
--    pid = libxl__xs_read(gc, XBT_NULL, libxl__sprintf(gc, "/local/domain/%d/image/device-model-pid", domid));
-+    pid = libxl__xs_read(gc, XBT_NULL, GCSPRINTF("/local/domain/%u/image/dms/%u-pid",
-+                                                 domid, dmid));
-     if (!pid || !atoi(pid)) {
-         LOG(ERROR, "could not find device-model's pid for dom %u", domid);
-         ret = ERROR_FAIL;
-@@ -1300,6 +1405,60 @@ out:
-     return ret;
- }
-+libxl_dmid *libxl__list_device_models(libxl__gc *gc, libxl_domid domid,
-+                                      unsigned *num_dms)
-+{
-+    unsigned int i = 0;
-+    char **dir = NULL;
-+    libxl_dmid *dms = NULL;
-+    unsigned int num = 0;
-+
-+    dir = libxl__xs_directory(gc, XBT_NULL,
-+                              GCSPRINTF("/local/domain/0/dms/%u", domid),
-+                              &num);
-+    if (dir) {
-+        GCNEW_ARRAY(dms, num);
-+
-+        if (num_dms)
-+            *num_dms = num;
-+
-+        for (i = 0; i < num; i++) {
-+            dms[i] = atoi(dir[i]);
-+        }
-+
-+        return dms;
-+    }
-+    else
-+        return NULL;
-+}
-+
-+int libxl__destroy_device_models(libxl__gc *gc,
-+                                 libxl_domid domid)
-+{
-+    libxl_ctx *ctx = libxl__gc_owner(gc);
-+    int ret = 0;
-+    libxl_dmid *dms = NULL;
-+    unsigned int num_dms;
-+    unsigned int i;
-+
-+    dms = libxl__list_device_models(gc, domid, &num_dms);
-+
-+    if (!dms)
-+        return ERROR_FAIL;
-+
-+    for (i = 0; i < num_dms; i++)
-+        ret |= libxl__destroy_device_model(gc, domid, dms[i]);
-+
-+    if (!ret) {
-+        xs_rm(ctx->xsh, XBT_NULL, libxl__sprintf(gc, "/local/domain/0/dms/%u",
-+                                                 domid));
-+        xs_rm(ctx->xsh, XBT_NULL, libxl__sprintf(gc, "/local/domain/0/device-model/%u",
-+                                                 domid));
-+    }
-+
-+    return ret;
-+ }
-+
- /*
-  * Local variables:
-  * mode: C
-diff --git a/tools/libxl/libxl_dom.c b/tools/libxl/libxl_dom.c
-index 06d5e4f..475fea8 100644
---- a/tools/libxl/libxl_dom.c
-+++ b/tools/libxl/libxl_dom.c
-@@ -544,6 +544,7 @@ int libxl__build_hvm(libxl__gc *gc, uint32_t domid,
-     libxl_ctx *ctx = libxl__gc_owner(gc);
-     int ret, rc = ERROR_FAIL;
-     const char *firmware = libxl__domain_firmware(gc, info);
-+    libxl_domain_config *d_config = CONTAINER_OF(info, *d_config, b_info);
-     if (!firmware)
-         goto out;
-@@ -552,7 +553,8 @@ int libxl__build_hvm(libxl__gc *gc, uint32_t domid,
-         domid,
-         (info->max_memkb - info->video_memkb) / 1024,
-         (info->target_memkb - info->video_memkb) / 1024,
--        firmware);
-+        firmware,
-+        state->num_dms * 2 + 1);
-     if (ret) {
-         LIBXL__LOG_ERRNOVAL(ctx, LIBXL__LOG_ERROR, ret, "hvm building failed");
-         goto out;
-diff --git a/tools/libxl/libxl_internal.h b/tools/libxl/libxl_internal.h
-index 71e4970..2e6eedc 100644
---- a/tools/libxl/libxl_internal.h
-+++ b/tools/libxl/libxl_internal.h
-@@ -867,6 +867,7 @@ typedef struct {
-     unsigned long console_mfn;
-     unsigned long vm_generationid_addr;
-+    unsigned long num_dms;
-     char *saved_state;
-@@ -887,7 +888,7 @@ _hidden int libxl__build_hvm(libxl__gc *gc, uint32_t domid,
-               libxl_domain_build_info *info,
-               libxl__domain_build_state *state);
--_hidden int libxl__qemu_traditional_cmd(libxl__gc *gc, uint32_t domid,
-+_hidden int libxl__qemu_traditional_cmd(libxl__gc *gc, libxl_domid domid,
-                                         const char *cmd);
- _hidden int libxl__domain_rename(libxl__gc *gc, uint32_t domid,
-                                  const char *old_name, const char *new_name,
-@@ -947,6 +948,8 @@ _hidden int libxl__domain_create_info_setdefault(libxl__gc *gc,
-                                         libxl_domain_create_info *c_info);
- _hidden int libxl__domain_build_info_setdefault(libxl__gc *gc,
-                                         libxl_domain_build_info *b_info);
-+_hidden int libxl__dm_setdefault(libxl__gc *gc,
-+                                 libxl_dm *dm);
- _hidden int libxl__device_disk_setdefault(libxl__gc *gc,
-                                           libxl_device_disk *disk);
- _hidden int libxl__device_nic_setdefault(libxl__gc *gc, libxl_device_nic *nic,
-@@ -1042,7 +1045,9 @@ _hidden char *libxl__devid_to_localdev(libxl__gc *gc, int devid);
- /* from libxl_pci */
--_hidden int libxl__device_pci_add(libxl__gc *gc, uint32_t domid, libxl_device_pci *pcidev, int starting);
-+_hidden int libxl__device_pci_add(libxl__gc *gc, libxl_domid domid,
-+                                  libxl_device_pci *pcidev,
-+                                  int starting);
- _hidden int libxl__create_pci_backend(libxl__gc *gc, uint32_t domid,
-                                       libxl_device_pci *pcidev, int num);
- _hidden int libxl__device_pci_destroy_all(libxl__gc *gc, uint32_t domid);
-@@ -1272,6 +1277,7 @@ _hidden int libxl__domain_build(libxl__gc *gc,
- /* for device model creation */
- _hidden const char *libxl__domain_device_model(libxl__gc *gc,
-+                                        libxl_dmid dmid,
-                                         const libxl_domain_build_info *info);
- _hidden int libxl__need_xenpv_qemu(libxl__gc *gc,
-         int nr_consoles, libxl__device_console *consoles,
-@@ -1281,7 +1287,9 @@ _hidden int libxl__need_xenpv_qemu(libxl__gc *gc,
-    * return pass *starting_r (which will be non-0) to
-    * libxl__confirm_device_model_startup or libxl__detach_device_model. */
- _hidden int libxl__wait_for_device_model(libxl__gc *gc,
--                                uint32_t domid, char *state,
-+                                libxl_domid domid,
-+                                libxl_dmid dmid,
-+                                char *state,
-                                 libxl__spawn_starting *spawning,
-                                 int (*check_callback)(libxl__gc *gc,
-                                                       uint32_t domid,
-@@ -1289,9 +1297,14 @@ _hidden int libxl__wait_for_device_model(libxl__gc *gc,
-                                                       void *userdata),
-                                 void *check_callback_userdata);
--_hidden int libxl__destroy_device_model(libxl__gc *gc, uint32_t domid);
-+_hidden libxl_dmid *libxl__list_device_models(libxl__gc *gc,
-+                                              libxl_domid domid,
-+                                              unsigned int *num_dms);
--_hidden const libxl_vnc_info *libxl__dm_vnc(const libxl_domain_config *g_cfg);
-+_hidden int libxl__destroy_device_models(libxl__gc *gc, libxl_domid domid);
-+
-+_hidden const libxl_vnc_info *libxl__dm_vnc(libxl_dmid dmid,
-+                                            const libxl_domain_config *g_cfg);
- _hidden char *libxl__abs_path(libxl__gc *gc, const char *s, const char *path);
-@@ -2427,10 +2440,10 @@ struct libxl__dm_spawn_state {
-     libxl_domain_config *guest_config;
-     libxl__domain_build_state *build_state; /* relates to guest_domid */
-     libxl__dm_spawn_cb *callback;
-+    libxl_dmid dmid;
-+    struct libxl__domain_create_state *dcs;
- };
--_hidden void libxl__spawn_local_dm(libxl__egc *egc, libxl__dm_spawn_state*);
--
- /* Stubdom device models. */
- typedef struct {
-@@ -2447,7 +2460,7 @@ typedef struct {
-     libxl__multidev multidev;
- } libxl__stub_dm_spawn_state;
--_hidden void libxl__spawn_stub_dm(libxl__egc *egc, libxl__stub_dm_spawn_state*);
-+_hidden void libxl__spawn_dm(libxl__egc *egc, libxl__stub_dm_spawn_state*);
- _hidden char *libxl__stub_dm_name(libxl__gc *gc, const char * guest_name);
-@@ -2470,7 +2483,8 @@ struct libxl__domain_create_state {
-     int guest_domid;
-     libxl__domain_build_state build_state;
-     libxl__bootloader_state bl;
--    libxl__stub_dm_spawn_state dmss;
-+    libxl_dmid current_dmid;
-+    libxl__stub_dm_spawn_state* dmss;
-         /* If we're not doing stubdom, we use only dmss.dm,
-          * for the non-stubdom device model. */
-     libxl__save_helper_state shs;
-@@ -2527,7 +2541,9 @@ _hidden void libxl__domain_save_device_model(libxl__egc *egc,
-                                      libxl__domain_suspend_state *dss,
-                                      libxl__save_device_model_cb *callback);
--_hidden const char *libxl__device_model_savefile(libxl__gc *gc, uint32_t domid);
-+_hidden const char *libxl__device_model_savefile(libxl__gc *gc,
-+                                                 libxl_domid domid,
-+                                                 libxl_dmid dmid);
- /*
--- 
-Julien Grall
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<96d6442c911f6ed7f6cb24670901b151fa1570d6.1345552068.git.julien.grall@citrix.com> b/test/corpus/<96d6442c911f6ed7f6cb24670901b151fa1570d6.1345552068.git.julien.grall@citrix.com>
deleted file mode 100644 (file)
index 037cb20..0000000
+++ /dev/null
@@ -1,316 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Aug 22 19:58:50 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 22 Aug 2012 19:58:50 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T4G8Y-0002lf-D8
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 22 Aug 2012 19:58:50 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T4G5A-0006eT-GN; Wed, 22 Aug 2012 18:55:12 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <julien.grall@citrix.com>) id 1T4G58-0006d8-Mc
-       for xen-devel@lists.xen.org; Wed, 22 Aug 2012 18:55:11 +0000
-Received: from [85.158.138.51:25959] by server-10.bemta-3.messagelabs.com id
-       3A/4C-20518-D0B25305; Wed, 22 Aug 2012 18:55:09 +0000
-X-Env-Sender: julien.grall@citrix.com
-X-Msg-Ref: server-5.tower-174.messagelabs.com!1345661707!27566656!1
-X-Originating-IP: [66.165.176.63]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyNzMzNjM=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 9650 invoked from network); 22 Aug 2012 18:55:08 -0000
-Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
-       by server-5.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
-       22 Aug 2012 18:55:08 -0000
-X-IronPort-AV: E=Sophos;i="4.80,809,1344225600"; d="scan'208";a="205943108"
-Received: from ftlpmailmx01.citrite.net ([10.13.107.65])
-       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       22 Aug 2012 14:55:06 -0400
-Received: from meteora.cam.xci-test.com (10.80.248.22) by smtprelay.citrix.com
-       (10.13.107.65) with Microsoft SMTP Server id 8.3.213.0;
-       Wed, 22 Aug 2012 14:55:06 -0400
-From: Julien Grall <julien.grall@citrix.com>
-To: qemu-devel@nongnu.org
-Date: Wed, 22 Aug 2012 13:31:47 +0100
-Message-ID: <96d6442c911f6ed7f6cb24670901b151fa1570d6.1345552068.git.julien.grall@citrix.com>
-X-Mailer: git-send-email 1.7.2.5
-In-Reply-To: <cover.1345552068.git.julien.grall@citrix.com>
-References: <cover.1345552068.git.julien.grall@citrix.com>
-MIME-Version: 1.0
-Cc: Julien Grall <julien.grall@citrix.com>, christian.limpach@gmail.com,
-       Stefano.Stabellini@eu.citrix.com, xen-devel@lists.xen.org
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DATE_IN_PAST_06_12,
-       RCVD_IN_DNSWL_MED,RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham
-       version=3.3.1
-Subject: [Xen-devel] [XEN][RFC PATCH V2 01/17] hvm: Modify interface to
-       support multiple ioreq server
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-Add structure to handle ioreq server. It's a server which can
-handle a range of IO (MMIO and/or PIO) and emulate a PCI device.
-Each server has its own shared page to receive ioreq. So
-we have introduced to HVM PARAM to set/get the first and
-the last shared page used for ioreq. With this id, the server
-is able to retrieve its page.
-
-Introduce a new kind of ioreq type IOREQ_TYPE_PCICONFIG
-which permits to forward easily PCI config space access.
-
-Signed-off-by: Julien Grall <julien.grall@citrix.com>
----
- xen/include/asm-x86/hvm/domain.h |   25 ++++++++++++++++++-
- xen/include/asm-x86/hvm/vcpu.h   |    4 ++-
- xen/include/public/hvm/hvm_op.h  |   51 ++++++++++++++++++++++++++++++++++++++
- xen/include/public/hvm/ioreq.h   |    1 +
- xen/include/public/hvm/params.h  |    6 +++-
- xen/include/public/xen.h         |    1 +
- xen/include/xen/hvm/pci_emul.h   |   29 +++++++++++++++++++++
- 7 files changed, 114 insertions(+), 3 deletions(-)
- create mode 100644 xen/include/xen/hvm/pci_emul.h
-
-diff --git a/xen/include/asm-x86/hvm/domain.h b/xen/include/asm-x86/hvm/domain.h
-index 27b3de5..49d1ca0 100644
---- a/xen/include/asm-x86/hvm/domain.h
-+++ b/xen/include/asm-x86/hvm/domain.h
-@@ -28,6 +28,7 @@
- #include <asm/hvm/vioapic.h>
- #include <asm/hvm/io.h>
- #include <xen/hvm/iommu.h>
-+#include <xen/hvm/pci_emul.h>
- #include <asm/hvm/viridian.h>
- #include <asm/hvm/vmx/vmcs.h>
- #include <asm/hvm/svm/vmcb.h>
-@@ -41,14 +42,36 @@ struct hvm_ioreq_page {
-     void *va;
- };
-+struct hvm_io_range {
-+    uint64_t s, e;
-+    struct hvm_io_range *next;
-+};
-+
-+struct hvm_ioreq_server {
-+    unsigned int id;
-+    domid_t domid;
-+    struct hvm_io_range *mmio_range_list;
-+    struct hvm_io_range *portio_range_list;
-+    struct hvm_ioreq_server *next;
-+    struct hvm_ioreq_page ioreq;
-+    struct hvm_ioreq_page buf_ioreq;
-+    unsigned int buf_ioreq_evtchn;
-+};
-+
- struct hvm_domain {
-+    /* Use for the IO handles by Xen */
-     struct hvm_ioreq_page  ioreq;
--    struct hvm_ioreq_page  buf_ioreq;
-+    struct hvm_ioreq_server *ioreq_server_list;
-+    uint32_t               nr_ioreq_server;
-+    spinlock_t               ioreq_server_lock;
-     struct pl_time         pl_time;
-     struct hvm_io_handler *io_handler;
-+    /* PCI Information */
-+    struct pci_root_emul pci_root;
-+
-     /* Lock protects access to irq, vpic and vioapic. */
-     spinlock_t             irq_lock;
-     struct hvm_irq         irq;
-diff --git a/xen/include/asm-x86/hvm/vcpu.h b/xen/include/asm-x86/hvm/vcpu.h
-index 9d68ed2..812b16e 100644
---- a/xen/include/asm-x86/hvm/vcpu.h
-+++ b/xen/include/asm-x86/hvm/vcpu.h
-@@ -125,7 +125,9 @@ struct hvm_vcpu {
-     spinlock_t          tm_lock;
-     struct list_head    tm_list;
--    int                 xen_port;
-+    struct hvm_ioreq_page     *ioreq;
-+    /* PCI Information */
-+    uint32_t          pci_cf8;
-     bool_t              flag_dr_dirty;
-     bool_t              debug_state_latch;
-diff --git a/xen/include/public/hvm/hvm_op.h b/xen/include/public/hvm/hvm_op.h
-index a9aab4b..6b17c5f 100644
---- a/xen/include/public/hvm/hvm_op.h
-+++ b/xen/include/public/hvm/hvm_op.h
-@@ -23,6 +23,9 @@
- #include "../xen.h"
- #include "../trace.h"
-+#include "../event_channel.h"
-+
-+#include "hvm_info_table.h" /* HVM_MAX_VCPUS */
- /* Get/set subcommands: extra argument == pointer to xen_hvm_param struct. */
- #define HVMOP_set_param           0
-@@ -238,6 +241,54 @@ struct xen_hvm_inject_trap {
- typedef struct xen_hvm_inject_trap xen_hvm_inject_trap_t;
- DEFINE_XEN_GUEST_HANDLE(xen_hvm_inject_trap_t);
-+#define HVMOP_register_ioreq_server 20
-+struct xen_hvm_register_ioreq_server {
-+    domid_t domid;  /* IN - domain to be serviced */
-+    ioservid_t id;  /* OUT - handle for identifying this server */
-+};
-+typedef struct xen_hvm_register_ioreq_server xen_hvm_register_ioreq_server_t;
-+DEFINE_XEN_GUEST_HANDLE(xen_hvm_register_ioreq_server_t);
-+
-+#define HVMOP_get_ioreq_server_buf_channel 21
-+struct xen_hvm_get_ioreq_server_buf_channel {
-+    domid_t domid;            /* IN - domain to be serviced */
-+    ioservid_t id;            /* IN - handle from HVMOP_register_ioreq_server */
-+    evtchn_port_t channel;  /* OUT - buf ioreq channel */
-+};
-+typedef struct xen_hvm_get_ioreq_server_buf_channel xen_hvm_get_ioreq_server_buf_channel_t;
-+DEFINE_XEN_GUEST_HANDLE(xen_hvm_get_ioreq_server_buf_channel_t);
-+
-+#define HVMOP_map_io_range_to_ioreq_server 22
-+struct xen_hvm_map_io_range_to_ioreq_server {
-+    domid_t domid;          /* IN - domain to be serviced */
-+    int is_mmio;         /* IN - MMIO or port IO? */
-+    ioservid_t id;          /* IN - handle from HVMOP_register_ioreq_server */
-+    uint64_aligned_t s, e;  /* IN - inclusive start and end of range */
-+};
-+typedef struct xen_hvm_map_io_range_to_ioreq_server xen_hvm_map_io_range_to_ioreq_server_t;
-+DEFINE_XEN_GUEST_HANDLE(xen_hvm_map_io_range_to_ioreq_server_t);
-+
-+#define HVMOP_unmap_io_range_from_ioreq_server 23
-+struct xen_hvm_unmap_io_range_from_ioreq_server {
-+    domid_t domid;          /* IN - domain to be serviced */
-+    uint8_t is_mmio;        /* IN - MMIO or port IO? */
-+    ioservid_t id;          /* IN - handle from HVMOP_register_ioreq_server */
-+    uint64_aligned_t addr;  /* IN - address inside the range to remove */
-+};
-+typedef struct xen_hvm_unmap_io_range_from_ioreq_server xen_hvm_unmap_io_range_from_ioreq_server_t;
-+DEFINE_XEN_GUEST_HANDLE(xen_hvm_unmap_io_range_from_ioreq_server_t);
-+
-+#define HVMOP_register_pcidev 24
-+struct xen_hvm_register_pcidev {
-+    domid_t domid;       /* IN - domain to be serviced */
-+    ioservid_t id;       /* IN - handle from HVMOP_register_ioreq_server */
-+    /* IN - PCI identification in PCI topology (domain:bus:device:function) */
-+    uint8_t domain, bus, device, function;
-+};
-+typedef struct xen_hvm_register_pcidev xen_hvm_register_pcidev_t;
-+DEFINE_XEN_GUEST_HANDLE(xen_hvm_register_pcidev_t);
-+
-+
- #endif /* defined(__XEN__) || defined(__XEN_TOOLS__) */
- #define HVMOP_get_mem_type    15
-diff --git a/xen/include/public/hvm/ioreq.h b/xen/include/public/hvm/ioreq.h
-index 4022a1d..87aacd3 100644
---- a/xen/include/public/hvm/ioreq.h
-+++ b/xen/include/public/hvm/ioreq.h
-@@ -34,6 +34,7 @@
- #define IOREQ_TYPE_PIO          0 /* pio */
- #define IOREQ_TYPE_COPY         1 /* mmio ops */
-+#define IOREQ_TYPE_PCI_CONFIG   2 /* pci config space ops */
- #define IOREQ_TYPE_TIMEOFFSET   7
- #define IOREQ_TYPE_INVALIDATE   8 /* mapcache */
-diff --git a/xen/include/public/hvm/params.h b/xen/include/public/hvm/params.h
-index 55c1b57..309ac1b 100644
---- a/xen/include/public/hvm/params.h
-+++ b/xen/include/public/hvm/params.h
-@@ -147,6 +147,10 @@
- #define HVM_PARAM_ACCESS_RING_PFN   28
- #define HVM_PARAM_SHARING_RING_PFN  29
--#define HVM_NR_PARAMS          30
-+/* Param for ioreq servers */
-+#define HVM_PARAM_IO_PFN_FIRST        30
-+#define HVM_PARAM_IO_PFN_LAST 31
-+
-+#define HVM_NR_PARAMS          32
- #endif /* __XEN_PUBLIC_HVM_PARAMS_H__ */
-diff --git a/xen/include/public/xen.h b/xen/include/public/xen.h
-index b2f6c50..0de17b2 100644
---- a/xen/include/public/xen.h
-+++ b/xen/include/public/xen.h
-@@ -466,6 +466,7 @@ DEFINE_XEN_GUEST_HANDLE(mmuext_op_t);
- #ifndef __ASSEMBLY__
- typedef uint16_t domid_t;
-+typedef uint32_t ioservid_t;
- /* Domain ids >= DOMID_FIRST_RESERVED cannot be used for ordinary domains. */
- #define DOMID_FIRST_RESERVED (0x7FF0U)
-diff --git a/xen/include/xen/hvm/pci_emul.h b/xen/include/xen/hvm/pci_emul.h
-new file mode 100644
-index 0000000..4dfb577
---- /dev/null
-+++ b/xen/include/xen/hvm/pci_emul.h
-@@ -0,0 +1,29 @@
-+#ifndef PCI_EMUL_H_
-+# define PCI_EMUL_H_
-+
-+# include <xen/radix-tree.h>
-+# include <xen/spinlock.h>
-+# include <xen/types.h>
-+
-+void hvm_init_pci_emul(struct domain *d);
-+void hvm_destroy_pci_emul(struct domain *d);
-+int hvm_register_pcidev(domid_t domid, ioservid_t id,
-+                        uint8_t domain, uint8_t bus,
-+                        uint8_t device, uint8_t function);
-+
-+struct pci_root_emul {
-+    spinlock_t pci_lock;
-+    struct radix_tree_root pci_list;
-+};
-+
-+#endif /* !PCI_EMUL_H_ */
-+
-+/*
-+ * Local variables:
-+ * mode: C
-+ * c-set-style: "BSD"
-+ * c-basic-offset: 4
-+ * tab-width: 4
-+ * indent-tabs-mode: nil
-+ * End:
-+ */
--- 
-Julien Grall
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<A8575D3216834DFCAA86F5B2B3546613@LarryE6400> b/test/corpus/<A8575D3216834DFCAA86F5B2B3546613@LarryE6400>
deleted file mode 100644 (file)
index 0bee902..0000000
+++ /dev/null
@@ -1,251 +0,0 @@
-From xen-devel-bounces@lists.xen.org Sat Jul 21 02:04:58 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Sat, 21 Jul 2012 02:04:58 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SsO7r-0001bL-Ke
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Sat, 21 Jul 2012 02:04:58 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SsO25-0005pw-FF; Sat, 21 Jul 2012 00:58:57 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <lmw@satx.rr.com>) id 1SsO24-0005pr-BQ
-       for xen-devel@lists.xen.org; Sat, 21 Jul 2012 00:58:56 +0000
-Received: from [85.158.139.83:21328] by server-3.bemta-5.messagelabs.com id
-       4A/4F-03367-FCEF9005; Sat, 21 Jul 2012 00:58:55 +0000
-X-Env-Sender: lmw@satx.rr.com
-X-Msg-Ref: server-7.tower-182.messagelabs.com!1342832334!23936985!1
-X-Originating-IP: [75.180.132.120]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       QmFkIElQOiA3NS4xODAuMTMyLjEyMCA9PiA4OTUwMA==\n,sa_preprocessor: 
-       QmFkIElQOiA3NS4xODAuMTMyLjEyMCA9PiA4OTUwMA==\n,HTML_MESSAGE
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.2; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 14553 invoked from network); 21 Jul 2012 00:58:54 -0000
-Received: from cdptpa-omtalb.mail.rr.com (HELO cdptpa-omtalb.mail.rr.com)
-       (75.180.132.120) by server-7.tower-182.messagelabs.com with SMTP;
-       21 Jul 2012 00:58:54 -0000
-X-Authority-Analysis: v=2.0 cv=QrvcLCOd c=1 sm=0 a=r1aGfrPin9q3IVjnGKu9DA==:17
-       a=mkDZTsCubmwA:10 a=nmTPCi7FtckA:10 a=05ChyHeVI94A:10
-       a=ayC55rCoAAAA:8 a=wRPtPBoL2NLJFthSNDMA:9 a=CjuIK1q_8ugA:10
-       a=SSmOFEACAAAA:8 a=hR34-ut9ZwHx7xY_JFUA:9 a=gKO2Hq4RSVkA:10
-       a=UiCQ7L4-1S4A:10 a=hTZeC7Yk6K0A:10
-       a=r1aGfrPin9q3IVjnGKu9DA==:117
-X-Cloudmark-Score: 0
-X-Originating-IP: 66.69.0.49
-Received: from [66.69.0.49] ([66.69.0.49:49569] helo=LarryE6400)
-       by cdptpa-oedge04.mail.rr.com (envelope-from <lmw@satx.rr.com>)
-       (ecelerity 2.2.3.46 r()) with ESMTP
-       id E3/DA-28917-ECEF9005; Sat, 21 Jul 2012 00:58:54 +0000
-From: "Larry White" <lmw@satx.rr.com>
-To: <xen-devel@lists.xen.org>
-Date: Fri, 20 Jul 2012 19:58:49 -0500
-Message-ID: <A8575D3216834DFCAA86F5B2B3546613@LarryE6400>
-MIME-Version: 1.0
-X-Mailer: Microsoft Office Outlook 11
-X-MimeOLE: Produced By Microsoft MimeOLE V6.1.7601.17609
-Thread-Index: Ac1m2/yuJJyO+ROQQxKMLV1mGoHskA==
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: multipart/mixed; boundary="===============2993385947562903206=="
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,HTML_MESSAGE,
-       RCVD_IN_DNSWL_MED,T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham
-       version=3.3.1
-Subject: [Xen-devel] XenStore as a data transfer path?
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-This is a multi-part message in MIME format.
-
---===============2993385947562903206==
-Content-Type: multipart/alternative;
-       boundary="----=_NextPart_000_0003_01CD66B2.146DE290"
-
-This is a multi-part message in MIME format.
-
-------=_NextPart_000_0003_01CD66B2.146DE290
-Content-Type: text/plain;
-       charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-
-Can the XenStore database be accessed by domU's?  
-
-
-If so, could it be used to pass small amounts of data back and forth between
-dom0 and domU's using XenStore key entries?  If this is possible, it would
-seem that this could eliminate the need to create a "device" driver for a
-simple communication path.
-
-
-Also, what type of Guest Fedora Kernel would be needed to perform this type
-of Xen functionality in a HVM domU guest configuration?  I assume that a
-normal Fedora kernel would not work.  However, I have read the Fedora 14 and
-later has some type of Xen support out of the box.  Not sure what type of
-support.
-
-
-Thanks,
-
-Larry
-
-
-
-------=_NextPart_000_0003_01CD66B2.146DE290
-Content-Type: text/html;
-       charset="us-ascii"
-Content-Transfer-Encoding: quoted-printable
-
-<html xmlns:v=3D"urn:schemas-microsoft-com:vml" =
-xmlns:o=3D"urn:schemas-microsoft-com:office:office" =
-xmlns:w=3D"urn:schemas-microsoft-com:office:word" =
-xmlns=3D"http://www.w3.org/TR/REC-html40">
-
-<head>
-<meta http-equiv=3DContent-Type content=3D"text/html; =
-charset=3Dus-ascii">
-<meta name=3DGenerator content=3D"Microsoft Word 11 (filtered medium)">
-<style>
-<!--
- /* Style Definitions */
- p.MsoNormal, li.MsoNormal, div.MsoNormal
-       {margin:0in;
-       margin-bottom:.0001pt;
-       font-size:12.0pt;
-       font-family:"Times New Roman";}
-a:link, span.MsoHyperlink
-       {color:blue;
-       text-decoration:underline;}
-a:visited, span.MsoHyperlinkFollowed
-       {color:purple;
-       text-decoration:underline;}
-span.EmailStyle17
-       {mso-style-type:personal-compose;
-       font-family:Arial;
-       color:windowtext;}
-@page Section1
-       {size:8.5in 11.0in;
-       margin:1.0in 1.25in 1.0in 1.25in;}
-div.Section1
-       {page:Section1;}
--->
-</style>
-<!--[if gte mso 9]><xml>
- <o:shapedefaults v:ext=3D"edit" spidmax=3D"1026" />
-</xml><![endif]--><!--[if gte mso 9]><xml>
- <o:shapelayout v:ext=3D"edit">
-  <o:idmap v:ext=3D"edit" data=3D"1" />
- </o:shapelayout></xml><![endif]-->
-</head>
-
-<body lang=3DEN-US link=3Dblue vlink=3Dpurple>
-
-<div class=3DSection1>
-
-<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
-style=3D'font-size:10.0pt;
-font-family:Arial'>Can the XenStore database be accessed by =
-domU&#8217;s?&nbsp;
-<o:p></o:p></span></font></p>
-
-<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
-style=3D'font-size:10.0pt;
-font-family:Arial'><o:p>&nbsp;</o:p></span></font></p>
-
-<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
-style=3D'font-size:10.0pt;
-font-family:Arial'>If so, could it be used to pass small amounts of data =
-back
-and forth between dom0 and domU&#8217;s using XenStore key =
-entries?&nbsp; If
-this is possible, it would seem that this could eliminate the need to =
-create a &#8220;device&#8221;
-driver for a simple communication path.<o:p></o:p></span></font></p>
-
-<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
-style=3D'font-size:10.0pt;
-font-family:Arial'><o:p>&nbsp;</o:p></span></font></p>
-
-<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
-style=3D'font-size:10.0pt;
-font-family:Arial'>Also, what type of Guest Fedora Kernel would be =
-needed to perform
-this type of Xen functionality in a HVM domU guest configuration?&nbsp; =
-I
-assume that a normal Fedora kernel would not work.&nbsp; However, I have =
-read
-the Fedora 14 and later has some type of Xen support out of the =
-box.&nbsp; Not
-sure what type of support.<o:p></o:p></span></font></p>
-
-<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
-style=3D'font-size:10.0pt;
-font-family:Arial'><o:p>&nbsp;</o:p></span></font></p>
-
-<div>
-
-<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
-style=3D'font-size:10.0pt;
-font-family:Arial'>Thanks,</span></font><o:p></o:p></p>
-
-<p class=3DMsoNormal><font size=3D2 face=3DArial><span =
-style=3D'font-size:10.0pt;
-font-family:Arial'>Larry</span></font><o:p></o:p></p>
-
-</div>
-
-<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
-style=3D'font-size:
-12.0pt'><o:p>&nbsp;</o:p></span></font></p>
-
-</div>
-
-</body>
-
-</html>
-
-------=_NextPart_000_0003_01CD66B2.146DE290--
-
-
-
-
---===============2993385947562903206==
-Content-Type: text/plain; charset="us-ascii"
-MIME-Version: 1.0
-Content-Transfer-Encoding: 7bit
-Content-Disposition: inline
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
---===============2993385947562903206==--
-
-
-
-
diff --git a/test/corpus/<C96058547A5A42DDB1A89B2F8880BCE2@LarryE6400> b/test/corpus/<C96058547A5A42DDB1A89B2F8880BCE2@LarryE6400>
deleted file mode 100644 (file)
index 6c5080a..0000000
+++ /dev/null
@@ -1,122 +0,0 @@
-From xen-devel-bounces@lists.xen.org Sat Jul 21 19:05:42 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Sat, 21 Jul 2012 19:05:42 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1Sse3f-0007mJ-SR
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Sat, 21 Jul 2012 19:05:42 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1Ssdxr-0007Ps-K5; Sat, 21 Jul 2012 17:59:39 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <lmw@satx.rr.com>) id 1Ssdxq-0007Pn-H5
-       for xen-devel@lists.xen.org; Sat, 21 Jul 2012 17:59:38 +0000
-Received: from [85.158.139.83:22641] by server-1.bemta-5.messagelabs.com id
-       78/95-29759-90EEA005; Sat, 21 Jul 2012 17:59:37 +0000
-X-Env-Sender: lmw@satx.rr.com
-X-Msg-Ref: server-14.tower-182.messagelabs.com!1342893576!23216271!1
-X-Originating-IP: [75.180.132.120]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       QmFkIElQOiA3NS4xODAuMTMyLjEyMCA9PiA4OTE1OA==\n,sa_preprocessor: 
-       QmFkIElQOiA3NS4xODAuMTMyLjEyMCA9PiA4OTE1OA==\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.2; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 8410 invoked from network); 21 Jul 2012 17:59:36 -0000
-Received: from cdptpa-omtalb.mail.rr.com (HELO cdptpa-omtalb.mail.rr.com)
-       (75.180.132.120) by server-14.tower-182.messagelabs.com with SMTP;
-       21 Jul 2012 17:59:36 -0000
-X-Authority-Analysis: v=2.0 cv=OtDNOlDt c=1 sm=0 a=r1aGfrPin9q3IVjnGKu9DA==:17
-       a=mkDZTsCubmwA:10 a=YIV_H7EphM0A:10 a=05ChyHeVI94A:10
-       a=kj9zAlcOel0A:10 a=ayC55rCoAAAA:8 a=P3U7S8cuHsd9lTPnzQwA:9
-       a=CjuIK1q_8ugA:10 a=r1aGfrPin9q3IVjnGKu9DA==:117
-X-Cloudmark-Score: 0
-X-Originating-IP: 66.69.0.49
-Received: from [66.69.0.49] ([66.69.0.49:51488] helo=LarryE6400)
-       by cdptpa-oedge01.mail.rr.com (envelope-from <lmw@satx.rr.com>)
-       (ecelerity 2.2.3.46 r()) with ESMTP
-       id FC/33-29356-80EEA005; Sat, 21 Jul 2012 17:59:36 +0000
-From: "Larry White" <lmw@satx.rr.com>
-To: "'Konrad Rzeszutek Wilk'" <konrad.wilk@oracle.com>,
-       <xen-devel@lists.xen.org>
-References: <A8575D3216834DFCAA86F5B2B3546613@LarryE6400>
-       <6035A0D088A63A46850C3988ED045A4B299B8A95@BITCOM1.int.sbss.com.au>
-       <1E8F546AD8E64BF1B2D68D24F3BD4050@LarryE6400>
-       <6035A0D088A63A46850C3988ED045A4B299B8F9D@BITCOM1.int.sbss.com.au>
-In-Reply-To: <6035A0D088A63A46850C3988ED045A4B299B8F9D@BITCOM1.int.sbss.com.au>
-Date: Sat, 21 Jul 2012 12:59:31 -0500
-Message-ID: <C96058547A5A42DDB1A89B2F8880BCE2@LarryE6400>
-MIME-Version: 1.0
-X-Mailer: Microsoft Office Outlook 11
-X-MimeOLE: Produced By Microsoft MimeOLE V6.1.7601.17609
-Thread-Index: Ac1m2/yuJJyO+ROQQxKMLV1mGoHskAABhbjAAABDEwAAAe6rkAAfoGxA
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] XenStore as a data transfer path?
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-Hi Konrad,
-
->On Tue, Jul 17, 2012 at 11:22:28PM -0500, LarryWhite wrote:
->I am new to Xen and want to provide simple communication between my DomU
->and
->Dom0 environments.  I just need to be able to pass a few bytes of
->information back and forth between DomU and Dom0 while using some form of
->event management to know when an update occurs so I can act on it.  At
->first, it appeared that using XenBus and XenStore might be the right
->solution for this.  However, after looking over the documentation, it seems
->that XenBus and XenStore should only be used in a PVM Xen configuration,
->not
->a HVM model like mine.  Is this true?  
-
->>It can be done in HVM.
-
->What would be the best way to accomplish this?  Is there any sample code
->which demonstrates this for a HVM Xen environment?
-
->>libvchan is your best bet.
-
-Have been looking at libvchan as you suggested.  An additional bit of
-information that I left out on my original post was that I would like to do
-this in a "one to many" environment.  In other words, I want to support data
-transfer from dom0 to a number of different domU's.  Would an approach such
-as libvchan allow for this or would I need a separate process in dom0 for
-each of the different domU channels?  I was really hoping to have a single
-process running in dom0 to manage this. 
-
-Thanks,
-Larry
-
-
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<CACJDEmr3V71cSdV3+i-n7=wfOnDBza04Lk+6+B6Fyx7LhQrdEg@mail.gmail.com> b/test/corpus/<CACJDEmr3V71cSdV3+i-n7=wfOnDBza04Lk+6+B6Fyx7LhQrdEg@mail.gmail.com>
deleted file mode 100644 (file)
index 56fbcac..0000000
+++ /dev/null
@@ -1,127 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Oct 12 15:34:51 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 12 Oct 2012 15:34:51 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TMgK5-0002Eh-Mg
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 12 Oct 2012 15:34:51 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TMgFM-0001kV-Rd; Fri, 12 Oct 2012 14:29:52 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <ketuzsezr@gmail.com>) id 1TMgFL-0001kQ-7P
-       for xen-devel@lists.xen.org; Fri, 12 Oct 2012 14:29:51 +0000
-Received: from [85.158.139.211:16434] by server-6.bemta-5.messagelabs.com id
-       97/28-08519-E5928705; Fri, 12 Oct 2012 14:29:50 +0000
-X-Env-Sender: ketuzsezr@gmail.com
-X-Msg-Ref: server-10.tower-206.messagelabs.com!1350052188!22070941!1
-X-Originating-IP: [209.85.219.45]
-X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 435 invoked from network); 12 Oct 2012 14:29:49 -0000
-Received: from mail-oa0-f45.google.com (HELO mail-oa0-f45.google.com)
-       (209.85.219.45)
-       by server-10.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
-       12 Oct 2012 14:29:49 -0000
-Received: by mail-oa0-f45.google.com with SMTP id i18so3851210oag.32
-       for <xen-devel@lists.xen.org>; Fri, 12 Oct 2012 07:29:48 -0700 (PDT)
-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
-       h=mime-version:sender:in-reply-to:references:date
-       :x-google-sender-auth:message-id:subject:from:to:cc:content-type;
-       bh=f6C0a0cv0vuPrx0NsQt5HsMcMweaxzVjBMFkwJF0s6g=;
-       b=SBjJBskgvOB2zCILjf0xzeg58d/VmrunNAGFk3JOmmLVpHG0aKQB6IlhU+DCNWowAn
-       zZMfz20To26/RqxZh+M/YmXVK+bnwhYg/gBtLVmhkIST4yske/Ke6UTGRL+6biWhoQFL
-       yW8sLdKBrWpfmRDZS5BfeWsOfOnGt5q1w2sjCY3jhRssT8tYhZvdYcvjqCPMkExg6xu6
-       sDc20J9rbdtNCB+Z05J5VCE9jUatiZWiw080MwcH6QJzhpUoV5Y6AvF+0A4rh5gWMVzh
-       rwjkkuqRl8mdLATDwuzJZxvJQ8WjzRWQEhR/UNqGwuOjbommn8xcuH7daHtWGgHi6WLK
-       e7gA==
-MIME-Version: 1.0
-Received: by 10.182.110.67 with SMTP id hy3mr3676157obb.52.1350052187944; Fri,
-       12 Oct 2012 07:29:47 -0700 (PDT)
-Received: by 10.60.47.227 with HTTP; Fri, 12 Oct 2012 07:29:47 -0700 (PDT)
-In-Reply-To: <507822ED.2090900@citrix.com>
-References: <1350046634-2462-1-git-send-email-david.vrabel@citrix.com>
-       <1350046634-2462-4-git-send-email-david.vrabel@citrix.com>
-       <20121012134147.GA11778@phenom.dumpdata.com>
-       <507822ED.2090900@citrix.com>
-Date: Fri, 12 Oct 2012 10:29:47 -0400
-X-Google-Sender-Auth: k7q6yjotedHEfE5LIENqJm8mVd0
-Message-ID: <CACJDEmr3V71cSdV3+i-n7=wfOnDBza04Lk+6+B6Fyx7LhQrdEg@mail.gmail.com>
-From: Konrad Rzeszutek Wilk <konrad@kernel.org>
-To: David Vrabel <david.vrabel@citrix.com>
-Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
-       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,T_DKIM_INVALID,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 3/3] xen/privcmd: add
- IOCTL_PRIVCMD_SYNC_WALLCLOCK to sync Xen's wallclock
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Fri, Oct 12, 2012 at 10:02 AM, David Vrabel <david.vrabel@citrix.com> wrote:
-> On 12/10/12 14:41, Konrad Rzeszutek Wilk wrote:
->> On Fri, Oct 12, 2012 at 01:57:14PM +0100, David Vrabel wrote:
->>> From: David Vrabel <david.vrabel@citrix.com>
->>>
->>> Add a new ioctl to synchronize Xen's wallclock with the current system
->>> time.
->>>
->>> This may be used by the tools to ensure that newly created domains see
->>> the correct wallclock time if NTP is not used in dom0 or if domains
->>> are started before NTP has synchronized.
->>
->> So... how does this work with NTPD? As in does ntpd _not_ update the
->> hwclock enough?
->
-> Once NTPD is synchronized then the kernel updates the wallclock (and the
-> RTC with patch #1) every 11 mins.  I assume this is often enough given
-> how NTP adjusts the system time.
->
-> You only really need the tools to sync wallclock if system time was
-> stepped at start of day.  e.g., init scripts could do something like:
->
-> ntpdate pool.ntp.org
-> hwclock --systohc
-> xen-wallclock --systowc
-
-I think I am missing something. The hwclock should end up in the
-xen_set_wallclock call. And from there on, the ntpd would update the
-wallclock if it got skewed enough? Or is the system time not calling
-the wall-clock enough? If that is the case, would just adding this in
-the crontab be enough:
-
-*/11 * * * * hwclock --systohc
-
-?
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<CAFLBxZYx4HdsR6-AbgybpTyEjZyN5n=QuuT_rmMbhpfRHHOEzg@mail.gmail.com> b/test/corpus/<CAFLBxZYx4HdsR6-AbgybpTyEjZyN5n=QuuT_rmMbhpfRHHOEzg@mail.gmail.com>
deleted file mode 100644 (file)
index 91cfd02..0000000
+++ /dev/null
@@ -1,114 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Jul 25 11:15:35 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 25 Jul 2012 11:15:35 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1Stycv-0008P0-8U
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 25 Jul 2012 11:15:35 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1StyYF-0000dH-9V; Wed, 25 Jul 2012 10:10:43 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <dunlapg@gmail.com>) id 1StyYD-0000dC-3L
-       for xen-devel@lists.xen.org; Wed, 25 Jul 2012 10:10:41 +0000
-Received: from [85.158.143.99:12430] by server-2.bemta-4.messagelabs.com id
-       08/B7-17938-026CF005; Wed, 25 Jul 2012 10:10:40 +0000
-X-Env-Sender: dunlapg@gmail.com
-X-Msg-Ref: server-5.tower-216.messagelabs.com!1343211038!28254641!1
-X-Originating-IP: [209.85.217.173]
-X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.2; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 16854 invoked from network); 25 Jul 2012 10:10:39 -0000
-Received: from mail-lb0-f173.google.com (HELO mail-lb0-f173.google.com)
-       (209.85.217.173)
-       by server-5.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
-       25 Jul 2012 10:10:39 -0000
-Received: by lbok6 with SMTP id k6so577361lbo.32
-       for <xen-devel@lists.xen.org>; Wed, 25 Jul 2012 03:10:38 -0700 (PDT)
-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
-       h=mime-version:sender:in-reply-to:references:date
-       :x-google-sender-auth:message-id:subject:from:to:cc:content-type;
-       bh=qt9s11ZcDlj69W+6zFanwBZ4PbzYWPQ+1y/AbE9Z1Nc=;
-       b=nezjKpiXmKGAE4ZaDbsKChw3QiSYMKmK6unnFpTk+49ahtFGJhO2B7XmY0siQM8e8o
-       q95V6pVHR5YpCuekrH+T+tRChJ8upy+dwQcQOv6LWUQJ9TlwBDKDLlbH6qbIq83WwUOb
-       KaXxcL0Du7DsIJEO7/Ezql/7167R49cBTaZTEr3T/5g+DIcC2v9ORTD4gPO0W07/A92U
-       EerVJVujVih3qlYVr3mFl4TeIdNc7vfEZGSmZTyFfvZAw3afLe9og3FtXdYVblidBOK3
-       fLqUflTmvU7VzVSCfBqFlUlx9L6YoxMuSG8hy7md0FvOo0FBnX/hOcxYiZ/xmVbHBRaz
-       9K4Q==
-MIME-Version: 1.0
-Received: by 10.112.30.226 with SMTP id v2mr11369141lbh.103.1343211038136;
-       Wed, 25 Jul 2012 03:10:38 -0700 (PDT)
-Received: by 10.112.24.42 with HTTP; Wed, 25 Jul 2012 03:10:38 -0700 (PDT)
-In-Reply-To: <C96058547A5A42DDB1A89B2F8880BCE2@LarryE6400>
-References: <A8575D3216834DFCAA86F5B2B3546613@LarryE6400>
-       <6035A0D088A63A46850C3988ED045A4B299B8A95@BITCOM1.int.sbss.com.au>
-       <1E8F546AD8E64BF1B2D68D24F3BD4050@LarryE6400>
-       <6035A0D088A63A46850C3988ED045A4B299B8F9D@BITCOM1.int.sbss.com.au>
-       <C96058547A5A42DDB1A89B2F8880BCE2@LarryE6400>
-Date: Wed, 25 Jul 2012 11:10:38 +0100
-X-Google-Sender-Auth: lFh4RzT8IYY4VTGOEEICQKANXqs
-Message-ID: <CAFLBxZYx4HdsR6-AbgybpTyEjZyN5n=QuuT_rmMbhpfRHHOEzg@mail.gmail.com>
-From: George Dunlap <George.Dunlap@eu.citrix.com>
-To: Larry White <lmw@satx.rr.com>
-Cc: xen-devel@lists.xen.org, Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_DKIM_INVALID,T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] XenStore as a data transfer path?
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Sat, Jul 21, 2012 at 6:59 PM, Larry White <lmw@satx.rr.com> wrote:
->>>libvchan is your best bet.
->
-> Have been looking at libvchan as you suggested.  An additional bit of
-> information that I left out on my original post was that I would like to do
-> this in a "one to many" environment.  In other words, I want to support data
-> transfer from dom0 to a number of different domU's.  Would an approach such
-> as libvchan allow for this or would I need a separate process in dom0 for
-> each of the different domU channels?  I was really hoping to have a single
-> process running in dom0 to manage this.
-
-Depending on how "bleeding edge" you want to be, you may want to look
-at the v4v patchset as well (currently under discussion).  I believe
-one of the features of v4v was the ability to do one-to-many.
-
-Regarding using XenStore for data transfer: it is, of course,
-technically possible; but I think we want to discourage people from
-doing that, as xenstore wasn't really designed for that purpose. I
-don't think it should be relied on for latency, and using it as a
-communication channel may have unfortunate side-effects on other users
-of xenstore.
-
- -George
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<CAFLBxZbP2d=0gj7DqAc9nXga3H8Rv+RZPPSHHNbrbUv_=wzORA@mail.gmail.com> b/test/corpus/<CAFLBxZbP2d=0gj7DqAc9nXga3H8Rv+RZPPSHHNbrbUv_=wzORA@mail.gmail.com>
deleted file mode 100644 (file)
index 20816b6..0000000
+++ /dev/null
@@ -1,188 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Aug 15 16:51:42 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 15 Aug 2012 16:51:42 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T1fsh-0006xh-BO
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 15 Aug 2012 16:51:42 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T1fo9-0000RG-B2; Wed, 15 Aug 2012 15:46:57 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <dunlapg@gmail.com>) id 1T1fo7-0000R7-KD
-       for xen-devel@lists.xen.org; Wed, 15 Aug 2012 15:46:55 +0000
-Received: from [85.158.143.99:64617] by server-3.bemta-4.messagelabs.com id
-       07/87-09529-E64CB205; Wed, 15 Aug 2012 15:46:54 +0000
-X-Env-Sender: dunlapg@gmail.com
-X-Msg-Ref: server-7.tower-216.messagelabs.com!1345045613!24964250!1
-X-Originating-IP: [209.85.215.173]
-X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 26872 invoked from network); 15 Aug 2012 15:46:54 -0000
-Received: from mail-ey0-f173.google.com (HELO mail-ey0-f173.google.com)
-       (209.85.215.173)
-       by server-7.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
-       15 Aug 2012 15:46:54 -0000
-Received: by eaac13 with SMTP id c13so535564eaa.32
-       for <multiple recipients>; Wed, 15 Aug 2012 08:46:53 -0700 (PDT)
-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
-       h=mime-version:sender:in-reply-to:references:date
-       :x-google-sender-auth:message-id:subject:from:to:cc:content-type
-       :content-transfer-encoding;
-       bh=GynLBU0JXm8OTAlwK2i8Nd7S/JzaCrvaqJWC06Feges=;
-       b=cyYfD1F7sJ5GIE3dCoMNmBhzEvD7z4KOvrxptA3et7iUMGJ+djaUt7K6jbW3g6Hiln
-       n6nLvnAzEjPT28THxQzepX8Xp8GAO8tRGiXTPJ7QpUB4sXTPby95cMMgEE9ABudrPpxs
-       RMfWA0ZUYLDs9ebvdaJ5BIyEPTlR6ZT01JTgKILx1sp4mIaFRwheDhcSKsEl2/bAbABJ
-       4TcA3TKe0tiC/GbjmUjiJjT8IsTEDM0UY/vBHiKTLBNyiUYXpnMGaPIzdjNxK7bVvZjP
-       97nDCyZPDDDWDsukyFDFIOnswX+WwAIpE8x4dR6xscqI5mojTvuTopIgjViC03dEI1+u
-       zs7w==
-MIME-Version: 1.0
-Received: by 10.14.4.201 with SMTP id 49mr15380785eej.0.1345045613717; Wed, 15
-       Aug 2012 08:46:53 -0700 (PDT)
-Received: by 10.14.215.195 with HTTP; Wed, 15 Aug 2012 08:46:53 -0700 (PDT)
-In-Reply-To: <1344935141.5926.6.camel@zakaz.uk.xensource.com>
-References: <1344935141.5926.6.camel@zakaz.uk.xensource.com>
-Date: Wed, 15 Aug 2012 16:46:53 +0100
-X-Google-Sender-Auth: IsYJOc8F5r5sFCPSxTruqYEq0WI
-Message-ID: <CAFLBxZbP2d=0gj7DqAc9nXga3H8Rv+RZPPSHHNbrbUv_=wzORA@mail.gmail.com>
-From: George Dunlap <George.Dunlap@eu.citrix.com>
-To: Ian Campbell <Ian.Campbell@citrix.com>
-Cc: xen-users <xen-users@lists.xen.org>, xen-devel <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="iso-8859-1"
-Content-Transfer-Encoding: quoted-printable
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_DKIM_INVALID,T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] Xen 4.2 TODO / Release Plan
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Tue, Aug 14, 2012 at 10:05 AM, Ian Campbell <Ian.Campbell@citrix.com> wr=
-ote:
-> tools, blockers:
-    * qemu-traditional has 50% cpu utilization on an idle Windows
-system if USB is enabled
-       Not 100% clear whether this is Xen or qemu.  George is seeing
-if any XenServer patches
-      address the issue.
-
->
->     * libxl stable API -- we would like 4.2 to define a stable API
->       which downstream's can start to rely on not changing. Aspects of
->       this are:
->
->         * None known
->
->     * xl compatibility with xm:
->
->         * No known issues
->
->     * [CHECK] More formally deprecate xm/xend. Manpage patches already
->       in tree. Needs release noting and communication around -rc1 to
->       remind people to test xl.
->
->     * [CHECK] Confirm that migration from Xen 4.1 -> 4.2 works.
->
->     * Bump library SONAMES as necessary.
->       <20502.39440.969619.824976@mariner.uk.xensource.com>
->
-> hypervisor, nice to have:
->
->     * vMCE save/restore changes, to simplify migration 4.2->4.3 with
->       new vMCE in 4.3. (Jinsong Liu, Jan Beulich, DONE for 4.2)
->
->     * [BUG(?)] Under certain conditions, the p2m_pod_sweep code will
->       stop halfway through searching, causing a guest to crash even if
->       there was zeroed memory available.  This is NOT a regression
->       from 4.1, and is a very rare case, so probably shouldn't be a
->       blocker.  (In fact, I'd be open to the idea that it should wait
->       until after the release to get more testing.)
->             (George Dunlap)
->
->     * S3 regression(s?) reported by Ben Guthro (Ben & Jan Beulich)
->
->     * address PoD problems with early host side accesses to guest
->       address space (draft patch for 4.0.x exists, needs to be ported
->       over to -unstable, which I'll expect to get to today, Jan
->       Beulich)
->
->     * fix high change rate to CMOS RTC periodic interrupt causing
->       guest wall clock time to lag (possible fix outlined, needs to be
->       put in patch form and thoroughly reviewed/tested for unwanted
->       side effects, Jan Beulich)
->
-> tools, nice to have:
->
->     * xl compatibility with xm:
->
->         * None
->
->     * xl.cfg(5) documentation patch for qemu-upstream
->       videoram/videomem support:
->       http://lists.xen.org/archives/html/xen-devel/2012-05/msg00250.html
->       qemu-upstream doesn't support specifying videomem size for the
->       HVM guest cirrus/stdvga.  (but this works with
->       qemu-xen-traditional). (Pasi K=E4rkk=E4inen)
->
->     * [BUG] long stop during the guest boot process with qcow image,
->       reported by Intel: http://bugzilla.xen.org/bugzilla/show_bug.cgi?id=
-=3D1821
->
->     * [BUG] vcpu-set doesn't take effect on guest, reported by Intel:
->       http://bugzilla.xen.org/bugzilla/show_bug.cgi?id=3D1822
->
->     * Load blktap driver from xencommons initscript if available, thread =
-at:
->       <db614e92faf743e20b3f.1337096977@kodo2>. To be fixed more
->       properly in 4.3. (Patch posted, discussion, plan to take simple
->       xencommons patch for 4.2 and revist for 4.3. Ping sent)
->
->     * [BUG] xl allows same PCI device to be assigned to multiple
->       guests. http://bugzilla.xen.org/bugzilla/show_bug.cgi?id=3D1826
->       (<E4558C0C96688748837EB1B05BEED75A0FD5574A@SHSMSX102.ccr.corp.intel=
-.com>)
->
->     * [BUG(?)] If domain 0 attempts to access a guests' memory before
->       it is finished being built, and it is being built in PoD mode,
->       this may cause the guest to crash.  Again, this is NOT a
->       regression from 4.1.  Furthermore, it's only been reported
->       (AIUI) by a customer of SuSE; so it shoudn't be a blocker.
->       (Again, I'd be open to the idea that it should wait until after
->       the release to get more testing.)
->           (George Dunlap / Jan Beulich)
->
->
->
-> _______________________________________________
-> Xen-devel mailing list
-> Xen-devel@lists.xen.org
-> http://lists.xen.org/xen-devel
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<CAJ75kXYG3uPmMhUwB9ivHt0w5gm14aqAynSWQwooWg65xLTzPw@mail.gmail.com> b/test/corpus/<CAJ75kXYG3uPmMhUwB9ivHt0w5gm14aqAynSWQwooWg65xLTzPw@mail.gmail.com>
deleted file mode 100644 (file)
index 8c6913f..0000000
+++ /dev/null
@@ -1,103 +0,0 @@
-From xen-devel-bounces@lists.xen.org Mon Sep 17 19:11:31 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Mon, 17 Sep 2012 19:11:31 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TDfn7-0001fT-2i
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Mon, 17 Sep 2012 19:11:31 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TDfif-0004YE-KN; Mon, 17 Sep 2012 18:06:53 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <wdauchy@gmail.com>) id 1TDfid-0004Y9-I3
-       for xen-devel@lists.xensource.com; Mon, 17 Sep 2012 18:06:51 +0000
-Received: from [85.158.138.51:55195] by server-1.bemta-3.messagelabs.com id
-       FB/7C-05884-AB667505; Mon, 17 Sep 2012 18:06:50 +0000
-X-Env-Sender: wdauchy@gmail.com
-X-Msg-Ref: server-9.tower-174.messagelabs.com!1347905208!29225680!1
-X-Originating-IP: [209.85.160.43]
-X-SpamReason: No, hits=0.3 required=7.0 tests=ML_RADAR_SPEW_LINKS_14,
-       RCVD_BY_IP,spamassassin: 
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 32751 invoked from network); 17 Sep 2012 18:06:50 -0000
-Received: from mail-pb0-f43.google.com (HELO mail-pb0-f43.google.com)
-       (209.85.160.43)
-       by server-9.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
-       17 Sep 2012 18:06:50 -0000
-Received: by pbbrq2 with SMTP id rq2so11963253pbb.30
-       for <xen-devel@lists.xensource.com>;
-       Mon, 17 Sep 2012 11:06:48 -0700 (PDT)
-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
-       h=mime-version:in-reply-to:references:from:date:message-id:subject:to
-       :cc:content-type;
-       bh=tMRkgwN8hflDSeN3f3sYe5ZQk2zYuKnR8dX8TSS3BoA=;
-       b=nbMa8UbVV2uW9fHUJg39m4TVPugBiNgW9r9KRpHHsnrMfP9EH5Ir36YhZdBRZNAd7f
-       AXpsqdAwCn7NFzV0uIgqR73sbeJ/sZPc/xbPLtY7iBDBbc6/6k3SHygpvZunDtzfTgHP
-       F5cggVKo6edHmDD/Of5MCK2U1Y1aC0k1IGYBPpcympJis0FicpSiTBtktEHTg9Y70Opn
-       KaarMLZOF4lXvCBNGtUQiCUzujawe6S/XpjljdNiONS6b5GYn1mSGhQ8vEwwlz1OZiJa
-       Vred94gpuXVovoMTwtw6TNksKiBX6DdSFKFdSZSAmO6OJSm0VaHSjXfnKka/1Nk0OyQJ
-       351w==
-Received: by 10.68.193.194 with SMTP id hq2mr23982679pbc.93.1347905207817;
-       Mon, 17 Sep 2012 11:06:47 -0700 (PDT)
-MIME-Version: 1.0
-Received: by 10.68.135.42 with HTTP; Mon, 17 Sep 2012 11:06:26 -0700 (PDT)
-In-Reply-To: <1345133009-21941-12-git-send-email-konrad.wilk@oracle.com>
-References: <1345133009-21941-1-git-send-email-konrad.wilk@oracle.com>
-       <1345133009-21941-12-git-send-email-konrad.wilk@oracle.com>
-From: William Dauchy <wdauchy@gmail.com>
-Date: Mon, 17 Sep 2012 20:06:26 +0200
-Message-ID: <CAJ75kXYG3uPmMhUwB9ivHt0w5gm14aqAynSWQwooWg65xLTzPw@mail.gmail.com>
-To: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-Cc: xen-devel@lists.xensource.com, linux-kernel@vger.kernel.org
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.7 required=5.0 tests=BAYES_00,FREEMAIL_FROM,
-       RCVD_IN_DNSWL_MED,RP_MATCHES_RCVD,T_DKIM_INVALID,UNPARSEABLE_RELAY
-       autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 11/11] xen/mmu: Release just the MFN list,
- not MFN list and part of pagetables.
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-Hello Konrad,
-
-On Thu, Aug 16, 2012 at 6:03 PM, Konrad Rzeszutek Wilk
-<konrad.wilk@oracle.com> wrote:
-> (XEN) mm.c:908:d0 Error getting mfn 116a83 (pfn 14e2a) from L1 entry 8000000116a83067 for l1e_owner=0, pg_owner=0
-> (XEN) mm.c:908:d0 Error getting mfn 4040 (pfn 5555555555555555) from L1 entry 0000000004040601 for l1e_owner=0, pg_owner=0
-
-This is something I also have on my 3.4.x branch. Since then mmu.c has
-change a lot; is there an easy fix to make a backport for 3.4.x?
-
--- 
-William
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<CAOzFzEhh7pfpcq+0X-g7BXGAyNqgb8dZT4=Ys=Pmu1dFqH+46A@mail.gmail.com> b/test/corpus/<CAOzFzEhh7pfpcq+0X-g7BXGAyNqgb8dZT4=Ys=Pmu1dFqH+46A@mail.gmail.com>
deleted file mode 100644 (file)
index 9ab23a8..0000000
+++ /dev/null
@@ -1,133 +0,0 @@
-From xen-devel-bounces@lists.xen.org Sun Sep 16 10:05:39 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Sun, 16 Sep 2012 10:05:39 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TDAnI-0000Dy-W1
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Sun, 16 Sep 2012 10:05:39 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TDAiP-00084m-I4; Sun, 16 Sep 2012 09:00:33 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <joseph.glanville@orionvm.com.au>) id 1TDAiM-00084h-PD
-       for xen-devel@lists.xen.org; Sun, 16 Sep 2012 09:00:31 +0000
-Received: from [85.158.138.51:59913] by server-7.bemta-3.messagelabs.com id
-       A5/96-32000-E2595505; Sun, 16 Sep 2012 09:00:30 +0000
-X-Env-Sender: joseph.glanville@orionvm.com.au
-X-Msg-Ref: server-8.tower-174.messagelabs.com!1347786027!30685642!1
-X-Originating-IP: [209.85.214.173]
-X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 26250 invoked from network); 16 Sep 2012 09:00:28 -0000
-Received: from mail-ob0-f173.google.com (HELO mail-ob0-f173.google.com)
-       (209.85.214.173)
-       by server-8.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
-       16 Sep 2012 09:00:28 -0000
-Received: by obbta14 with SMTP id ta14so9950580obb.32
-       for <xen-devel@lists.xen.org>; Sun, 16 Sep 2012 02:00:26 -0700 (PDT)
-X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
-       d=google.com; s=20120113;
-       h=mime-version:x-originating-ip:in-reply-to:references:date
-       :message-id:subject:from:to:cc:content-type:x-gm-message-state;
-       bh=B9h40DwTy3mUZbuiyF6xhoOqAJ4jjgu5vZuU7X6WUWw=;
-       b=C2Xb2L8awmGEO0dWSbMsi8QO8U0k/XmlwASIZ9627dG4MrvjrDGI9ldh+MQ5mpRF4w
-       unZlP2sDZd86XwZQRpzqdZh4IJeuyqOwKfirtnidNMPOrzMJjsAncu0P697b5SwixMCa
-       vbU1fKqlC84yhhZh17bQ8QWziAqdsUTY94aZUlOr1JIFV1w9VN8mkUXp5g32BFjEunDk
-       sIDasfgGVfUlvWOK1zrVnx2G56XGQvy8P/WuQdj94GlnAZLazwHBFiPoy6i9WYif0Kpt
-       NENTnmjImFmurkuo2jlMEvhDeyAXCyWKq2M0FUAjleDnqkjGeFWUqOItpLzRlSi8MgYv
-       FPkg==
-MIME-Version: 1.0
-Received: by 10.60.5.234 with SMTP id v10mr8780176oev.59.1347786026732; Sun,
-       16 Sep 2012 02:00:26 -0700 (PDT)
-Received: by 10.182.80.200 with HTTP; Sun, 16 Sep 2012 02:00:26 -0700 (PDT)
-X-Originating-IP: [121.44.24.60]
-In-Reply-To: <CC7B4CE4.3EE74%keir.xen@gmail.com>
-References: <CAOzFzEiZopdFQuZkUcSWWre9b=NeZpJM9n2VtEoZcRo=ejYQPA@mail.gmail.com>
-       <CC7B4CE4.3EE74%keir.xen@gmail.com>
-Date: Sun, 16 Sep 2012 19:00:26 +1000
-Message-ID: <CAOzFzEhh7pfpcq+0X-g7BXGAyNqgb8dZT4=Ys=Pmu1dFqH+46A@mail.gmail.com>
-From: Joseph Glanville <joseph.glanville@orionvm.com.au>
-To: Keir Fraser <keir.xen@gmail.com>
-X-Gm-Message-State: ALoCoQkaVKtffZAi2rOdXx4ISzFXIqbUojXAQ1sZbeErnG0ozRX/kD3ilN+X//oDjsRqub1TYGaV
-Cc: James Harper <james.harper@bendigoit.com.au>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
-       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.7 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] bug when using 4K sectors?
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On 16 September 2012 18:31, Keir Fraser <keir.xen@gmail.com> wrote:
-> On 16/09/2012 08:00, "Joseph Glanville" <joseph.glanville@orionvm.com.au>
-> wrote:
->
->> After reading through blkback it appears that it can only support 512
->> byte sector sizes and removing this limitation would take quite abit
->> of work.
->> It uses hard coded bitshifts pervasively to convert between number of
->> requests/pages and size of sectors etc. (that is all the >> 9
->> everywhere)
->>
->> I am going to see what I can about working on getting it to support 4k
->> sectors too and eventually uncoupled logical/physical sizes but that
->> would take even more work as far as I can tell.
->>
->> Being able to use 4k sectors seems like it would provide pretty
->> massive gains in performance just by being more efficient let alone
->> increasing byte aligned writes to the underlying block storage system.
->
-> The PV blk transport may be based on 512-byte sectors, but the real sector
-> size is communicated between blkfront and blkback via xenbus (field
-> 'sector-size') and blkfront is expected to only make requests that are
-> multiple of, and aligned according to, that real 'sector-size'.
->
-> I would kind of expect it to work, as CD-ROMs have a larger sector size (2kB
-> IIRC) and we support those...
->
-> Bashing your head against the PV blk transport code may be premature. ;)
->
->  -- Keir
->
->
-
-Understood, still have a fair bit of reading to do. :)
-
-Thanks,
-Joseph.
-
--- 
-CTO | Orion Virtualisation Solutions | www.orionvm.com.au
-Phone: 1300 56 99 52 | Mobile: 0428 754 846
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<CAOzFzEiZopdFQuZkUcSWWre9b=NeZpJM9n2VtEoZcRo=ejYQPA@mail.gmail.com> b/test/corpus/<CAOzFzEiZopdFQuZkUcSWWre9b=NeZpJM9n2VtEoZcRo=ejYQPA@mail.gmail.com>
deleted file mode 100644 (file)
index c0adccc..0000000
+++ /dev/null
@@ -1,154 +0,0 @@
-From xen-devel-bounces@lists.xen.org Sun Sep 16 08:05:46 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Sun, 16 Sep 2012 08:05:46 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TD8vI-0005ru-1c
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Sun, 16 Sep 2012 08:05:46 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TD8q5-0006i8-OB; Sun, 16 Sep 2012 07:00:21 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <joseph.glanville@orionvm.com.au>) id 1TD8q3-0006i3-Jc
-       for xen-devel@lists.xen.org; Sun, 16 Sep 2012 07:00:19 +0000
-Received: from [85.158.137.99:62906] by server-8.bemta-3.messagelabs.com id
-       BB/04-24700-20975505; Sun, 16 Sep 2012 07:00:18 +0000
-X-Env-Sender: joseph.glanville@orionvm.com.au
-X-Msg-Ref: server-6.tower-217.messagelabs.com!1347778816!12718239!1
-X-Originating-IP: [209.85.219.45]
-X-SpamReason: No, hits=0.8 required=7.0 tests=BODY_RANDOM_LONG,
-  RCVD_BY_IP
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 25291 invoked from network); 16 Sep 2012 07:00:17 -0000
-Received: from mail-oa0-f45.google.com (HELO mail-oa0-f45.google.com)
-       (209.85.219.45)
-       by server-6.tower-217.messagelabs.com with RC4-SHA encrypted SMTP;
-       16 Sep 2012 07:00:17 -0000
-Received: by oagn12 with SMTP id n12so4883633oag.32
-       for <xen-devel@lists.xen.org>; Sun, 16 Sep 2012 00:00:15 -0700 (PDT)
-X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
-       d=google.com; s=20120113;
-       h=mime-version:x-originating-ip:in-reply-to:references:date
-       :message-id:subject:from:to:cc:content-type:x-gm-message-state;
-       bh=WRrYdlau8GQa7+LppKNuiUkOYrKbFruC7Yez6ZVUluY=;
-       b=YlW4hD7TZaQmDuyAJkbwDVcTCLogB1AVxy5YzHZYxRV9xnQILBSlGdsCqqOdjp/pjv
-       WlSaeRRJvv6Ajh/DGwzn0Dm3manWoIA1ubyhIcOfi54ajasgh3zGQm8IYgWpUo6n+LCh
-       IJUVcv2++FKIA2D6wgmRN9StcCJxGyxcyVt6rE2S4V60zbq+59DIMv4Lc2DEGFjVYhgJ
-       jWdNy2LMqy8bUW6DyhEULCURJgx2sRMDVav9QWob+0O6npTGwNUuaQRcO1SGgt1lNDHR
-       hFnFtyNgh5c9SyGrMzaOAooUNKIlX3m2T5UYncgSvdN0qj/XE9HMuKMy10Cf0M8R53Nb
-       raVQ==
-MIME-Version: 1.0
-Received: by 10.60.24.7 with SMTP id q7mr8611338oef.54.1347778815406; Sun, 16
-       Sep 2012 00:00:15 -0700 (PDT)
-Received: by 10.182.80.200 with HTTP; Sun, 16 Sep 2012 00:00:15 -0700 (PDT)
-X-Originating-IP: [121.44.24.60]
-In-Reply-To: <20120906105822.GB3668@phenom.dumpdata.com>
-References: <6035A0D088A63A46850C3988ED045A4B299F74F8@BITCOM1.int.sbss.com.au>
-       <20120905202927.GD27814@phenom.dumpdata.com>
-       <6035A0D088A63A46850C3988ED045A4B29B5D23E@BITCOM1.int.sbss.com.au>
-       <20120906105822.GB3668@phenom.dumpdata.com>
-Date: Sun, 16 Sep 2012 17:00:15 +1000
-Message-ID: <CAOzFzEiZopdFQuZkUcSWWre9b=NeZpJM9n2VtEoZcRo=ejYQPA@mail.gmail.com>
-From: Joseph Glanville <joseph.glanville@orionvm.com.au>
-To: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-X-Gm-Message-State: ALoCoQm/KSwEtHyJnXtqU3YmApZWDugg1Nfa7uiw9ylbc0am+Qg2KUG2Qk9Hdl84gp0MH0zdFFia
-Cc: James Harper <james.harper@bendigoit.com.au>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.7 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] bug when using 4K sectors?
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On 6 September 2012 20:58, Konrad Rzeszutek Wilk <konrad.wilk@oracle.com> wrote:
-> On Wed, Sep 05, 2012 at 11:56:08PM +0000, James Harper wrote:
->> > On Mon, Aug 13, 2012 at 02:12:58PM +0000, James Harper wrote:
->> > > I notice this code in drivers/block/xen-blkback/common.h
->> > >
->> > > #define vbd_sz(_v)      ((_v)->bdev->bd_part ? \
->> > >                          (_v)->bdev->bd_part->nr_sects : \
->> > >                           get_capacity((_v)->bdev->bd_disk))
->> > >
->> > > is the value returned by vbd_sz(_v) the number of sectors in the Linux
->> > > device (eg size / 4096), or the number of 512 byte sectors? I suspect
->> > > the former which is causing block requests beyond 1/8th the size of
->> > > the device to fail (assuming 4K sectors are expected to work at all -
->> > > I can't quite get my head around how it would be expected to work -
->> > > does Linux do the read-modify-write if required?)
->> >
->> > I think you need to instrument it to be sure.. But more interesting, do you
->> > actually have a disk that exposes a 4KB hardware and logical sector? So far
->> > I've only found SSDs that expose a 512kB logical sector but also expose the
->> > 4KB hardware.
->> >
->> > Never could figure out how that is all suppose to work as the blkback is filled
->> > with << 9 on a bunch of things.
->> >
->>
->> I was using bcache which does expose a 4K block size, by default. I changed it to 512 and it all works now, although I haven't tested if there is any loss of performance.
->
-> OK, let me see how I can setup bcache and play with that.
->>
->> Does Xen provide a way to tell Windows that the underlying device is 512e (4K sector with 512 byte emulated interface)? This would keep everything working as is but allow windows to align writes to 4K boundaries where possible.
->
-> We can certainly expose that via the XenBus interface.
->>
->> James
->
-> _______________________________________________
-> Xen-devel mailing list
-> Xen-devel@lists.xen.org
-> http://lists.xen.org/xen-devel
-
-After reading through blkback it appears that it can only support 512
-byte sector sizes and removing this limitation would take quite abit
-of work.
-It uses hard coded bitshifts pervasively to convert between number of
-requests/pages and size of sectors etc. (that is all the >> 9
-everywhere)
-
-I am going to see what I can about working on getting it to support 4k
-sectors too and eventually uncoupled logical/physical sizes but that
-would take even more work as far as I can tell.
-
-Being able to use 4k sectors seems like it would provide pretty
-massive gains in performance just by being more efficient let alone
-increasing byte aligned writes to the underlying block storage system.
-
-Joseph.
-
--- 
-CTO | Orion Virtualisation Solutions | www.orionvm.com.au
-Phone: 1300 56 99 52 | Mobile: 0428 754 846
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<CC501EBB.48C47%keir@xen.org> b/test/corpus/<CC501EBB.48C47%keir@xen.org>
deleted file mode 100644 (file)
index 2b91562..0000000
+++ /dev/null
@@ -1,110 +0,0 @@
-From xen-devel-bounces@lists.xen.org Tue Aug 14 15:30:28 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Tue, 14 Aug 2012 15:30:28 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T1I8X-0005tJ-69
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 14 Aug 2012 15:30:28 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T1I5C-0003v0-KP; Tue, 14 Aug 2012 14:26:58 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <keir.xen@gmail.com>) id 1T1I5A-0003ua-R0
-       for xen-devel@lists.xen.org; Tue, 14 Aug 2012 14:26:56 +0000
-Received: from [85.158.143.99:19479] by server-3.bemta-4.messagelabs.com id
-       E1/F4-09529-0306A205; Tue, 14 Aug 2012 14:26:56 +0000
-X-Env-Sender: keir.xen@gmail.com
-X-Msg-Ref: server-11.tower-216.messagelabs.com!1344954415!20607447!1
-X-Originating-IP: [74.125.83.45]
-X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 1756 invoked from network); 14 Aug 2012 14:26:56 -0000
-Received: from mail-ee0-f45.google.com (HELO mail-ee0-f45.google.com)
-       (74.125.83.45)
-       by server-11.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
-       14 Aug 2012 14:26:56 -0000
-Received: by eeke53 with SMTP id e53so180902eek.32
-       for <xen-devel@lists.xen.org>; Tue, 14 Aug 2012 07:26:55 -0700 (PDT)
-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
-       h=sender:user-agent:date:subject:from:to:cc:message-id:thread-topic
-       :thread-index:in-reply-to:mime-version:content-type
-       :content-transfer-encoding;
-       bh=c//g6wABO+tzXOxhTWq24SBdGnN1VRsE1iI2Nt0FPnw=;
-       b=y/l7nrTm3N5jlgi7K++B2Ya4bmaOr6c8VvxB09k5ZDbrTfjgnOX1HvpkovP4wUPTOH
-       arKDDE5uu+Biy6HNMRuF3UhBG0jppbWPqKOXOWTTyila4uNm1lHYt+aKloX9B97Xl03a
-       iOB4X+3fvzmVk1lMg3h+4PIGXh2VVFyB3Vs7iciC8KK4e5TNwTHP+v7Zr0u/921xGGf4
-       CeDVjR0D4sI4DmrMAKuT4dm00q4E85NMl+WIah0XrogleWitYqI2ZkLU40+kMP9u+YrF
-       3cYHF/p2p42eqLjFyWs4WNjT769v5pVXeMww2aqC2KpN4J3vL3fUGCAQMsofSzTWofsc
-       Zg+A==
-Received: by 10.14.179.200 with SMTP id h48mr19877670eem.12.1344954415831;
-       Tue, 14 Aug 2012 07:26:55 -0700 (PDT)
-Received: from [192.168.1.3] (host86-157-166-190.range86-157.btcentralplus.com.
-       [86.157.166.190])
-       by mx.google.com with ESMTPS id a7sm7296187eep.14.2012.08.14.07.26.54
-       (version=SSLv3 cipher=OTHER); Tue, 14 Aug 2012 07:26:55 -0700 (PDT)
-User-Agent: Microsoft-Entourage/12.33.0.120411
-Date: Tue, 14 Aug 2012 15:26:51 +0100
-From: Keir Fraser <keir@xen.org>
-To: Ian Campbell <Ian.Campbell@citrix.com>,
-       Pasi =?ISO-8859-1?B?S+Rya2vkaW5lbg==?= <pasik@iki.fi>
-Message-ID: <CC501EBB.48C47%keir@xen.org>
-Thread-Topic: [Xen-devel] Xen 4.2 TODO / Release Plan / ipxe gcc 4.7
-Thread-Index: Ac16KNhPy3azBAy8W0KZW/VVpzdOGg==
-In-Reply-To: <1344949140.5926.30.camel@zakaz.uk.xensource.com>
-Mime-version: 1.0
-Cc: xen-devel <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_DKIM_INVALID,T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] Xen 4.2 TODO / Release Plan / ipxe gcc 4.7
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On 14/08/2012 13:59, "Ian Campbell" <Ian.Campbell@citrix.com> wrote:
-
->> And the needed patches are listed here:
->> http://lists.xen.org/archives/html/xen-devel/2012-08/msg01048.html
-> 
-> I think taking the individual patches would be more sensible than a
-> wholesale refresh at this stage, Keir?
-> 
-> NB: I didn't actually look at the patches...
-
-Yes, I will do the work to integrate the patches into the tree (simple job).
-
-We can nudge ourselves up to tip of ipxe after 4.2.
-
- -- Keir
-
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<CC5BEE01.3CBD1%keir.xen@gmail.com> b/test/corpus/<CC5BEE01.3CBD1%keir.xen@gmail.com>
deleted file mode 100644 (file)
index 7f29421..0000000
+++ /dev/null
@@ -1,125 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Aug 23 14:30:41 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 23 Aug 2012 14:30:41 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T4XUc-0002L7-U4
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 23 Aug 2012 14:30:41 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T4XQZ-00079s-OT; Thu, 23 Aug 2012 13:26:27 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <keir.xen@gmail.com>) id 1T4XQX-00079h-JR
-       for xen-devel@lists.xen.org; Thu, 23 Aug 2012 13:26:25 +0000
-Received: from [85.158.143.99:50648] by server-3.bemta-4.messagelabs.com id
-       46/FD-08232-08F26305; Thu, 23 Aug 2012 13:26:24 +0000
-X-Env-Sender: keir.xen@gmail.com
-X-Msg-Ref: server-10.tower-216.messagelabs.com!1345728380!21203716!1
-X-Originating-IP: [209.85.213.173]
-X-SpamReason: No, hits=0.3 required=7.0 tests=ML_RADAR_SPEW_LINKS_14,
-       RCVD_BY_IP,spamassassin: 
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 4278 invoked from network); 23 Aug 2012 13:26:21 -0000
-Received: from mail-yx0-f173.google.com (HELO mail-yx0-f173.google.com)
-       (209.85.213.173)
-       by server-10.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
-       23 Aug 2012 13:26:21 -0000
-Received: by yenm4 with SMTP id m4so176561yen.32
-       for <xen-devel@lists.xen.org>; Thu, 23 Aug 2012 06:26:19 -0700 (PDT)
-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
-       h=user-agent:date:subject:from:to:cc:message-id:thread-topic
-       :thread-index:in-reply-to:mime-version:content-type
-       :content-transfer-encoding;
-       bh=+DJMWrtWOFFUiunw5mecPWy5Xiszeu8+raQt2YSGPdQ=;
-       b=0pNcrspoYV/3KT/Bncj50iW2yB3S15V5QxwD+rEihLC96gR1Fvaf34qPKjGwBO9Cgg
-       1AFjOaSsMAY8XRqYc2vWuSKTApAXXLVEQX5XwvYDntRUben7iid8Gts2QoXOBcLfZX7J
-       ZNJIez8DkG4rP6NzN8kPQ3zGU7Q3HOOgGMrdzLPGexO5Nl/Naqs4w/zNlmemZSoQbnPK
-       MdKHSSou8/Tl9tqDj+TexdvuN0A+CHcXJYBIQ6PEcZJlJq9NZ9o2PbBKRJBhEgiDxweS
-       7jdmp0WqOI0GGQ9Y2Mq0currjiMRXbOUOmQZHYcicGTsLqFtqC7G3TfOrbVZi5nY4ez0
-       I9dg==
-Received: by 10.100.84.18 with SMTP id h18mr365971anb.57.1345728379832;
-       Thu, 23 Aug 2012 06:26:19 -0700 (PDT)
-Received: from [10.80.114.52] (firewall.ctxuk.citrix.com. [62.200.22.2])
-       by mx.google.com with ESMTPS id h8sm6751651ank.9.2012.08.23.06.26.16
-       (version=SSLv3 cipher=OTHER); Thu, 23 Aug 2012 06:26:18 -0700 (PDT)
-User-Agent: Microsoft-Entourage/12.32.0.111121
-Date: Thu, 23 Aug 2012 14:26:09 +0100
-From: Keir Fraser <keir.xen@gmail.com>
-To: Ian Campbell <Ian.Campbell@citrix.com>,
-       Julien Grall <julien.grall@citrix.com>
-Message-ID: <CC5BEE01.3CBD1%keir.xen@gmail.com>
-Thread-Topic: [Xen-devel] [XEN][RFC PATCH V2 01/17] hvm: Modify interface to
-       support multiple ioreq server
-Thread-Index: Ac2BMts6OtxgIZ01IU21qAuqa9Ijjw==
-In-Reply-To: <1345727912.12501.83.camel@zakaz.uk.xensource.com>
-Mime-version: 1.0
-Cc: "christian.limpach@gmail.com" <christian.limpach@gmail.com>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>,
-       "qemu-devel@nongnu.org" <qemu-devel@nongnu.org>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,FREEMAIL_FROM,
-       RCVD_IN_DNSWL_MED,RP_MATCHES_RCVD,T_DKIM_INVALID,UNPARSEABLE_RELAY
-       autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [XEN][RFC PATCH V2 01/17] hvm: Modify interface to
- support multiple ioreq server
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On 23/08/2012 14:18, "Ian Campbell" <Ian.Campbell@citrix.com> wrote:
-
->> diff --git a/xen/include/public/hvm/ioreq.h b/xen/include/public/hvm/ioreq.h
->> index 4022a1d..87aacd3 100644
->> --- a/xen/include/public/hvm/ioreq.h
->> +++ b/xen/include/public/hvm/ioreq.h
->> @@ -34,6 +34,7 @@
->>  
->>  #define IOREQ_TYPE_PIO          0 /* pio */
->>  #define IOREQ_TYPE_COPY         1 /* mmio ops */
->> +#define IOREQ_TYPE_PCI_CONFIG   2 /* pci config space ops */
->>  #define IOREQ_TYPE_TIMEOFFSET   7
->>  #define IOREQ_TYPE_INVALIDATE   8 /* mapcache */
-> 
-> I wonder why we skip 2-6 now -- perhaps they used to be something else
-> and we are avoiding them to avoid strange errors? In which case adding
-> the new on as 9 might be a good idea.
-
-They were almost certainly used for representing R-M-W ALU operations back
-in the days of the old IO emulator, very long ago. Still, there's no harm in
-leaving them unused.
-
- -- Keir
-
-
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<CC672AF9.3D8E2%keir.xen@gmail.com> b/test/corpus/<CC672AF9.3D8E2%keir.xen@gmail.com>
deleted file mode 100644 (file)
index 9190e66..0000000
+++ /dev/null
@@ -1,204 +0,0 @@
-From xen-devel-bounces@lists.xen.org Sat Sep 01 03:06:49 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Sat, 01 Sep 2012 03:06:49 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T7d6l-0000Vm-4T
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Sat, 01 Sep 2012 03:06:49 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T7d1k-0008RF-4P; Sat, 01 Sep 2012 02:01:36 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <keir.xen@gmail.com>) id 1T7d1g-0007q4-Rq
-       for xen-devel@lists.xen.org; Sat, 01 Sep 2012 02:01:33 +0000
-Received: from [85.158.139.83:21971] by server-11.bemta-5.messagelabs.com id
-       95/C4-24658-C7C61405; Sat, 01 Sep 2012 02:01:32 +0000
-X-Env-Sender: keir.xen@gmail.com
-X-Msg-Ref: server-16.tower-182.messagelabs.com!1346464887!20653542!1
-X-Originating-IP: [209.85.210.45]
-X-SpamReason: No, hits=0.3 required=7.0 tests=ML_RADAR_SPEW_LINKS_14,
-       RCVD_BY_IP,spamassassin: 
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 15837 invoked from network); 1 Sep 2012 02:01:29 -0000
-Received: from mail-pz0-f45.google.com (HELO mail-pz0-f45.google.com)
-       (209.85.210.45)
-       by server-16.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
-       1 Sep 2012 02:01:29 -0000
-Received: by dadn15 with SMTP id n15so2190608dad.32
-       for <xen-devel@lists.xen.org>; Fri, 31 Aug 2012 19:01:27 -0700 (PDT)
-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
-       h=user-agent:date:subject:from:to:cc:message-id:thread-topic
-       :thread-index:in-reply-to:mime-version:content-type
-       :content-transfer-encoding;
-       bh=UXb5GfLrw9FZGF5G4fVaAVaTnPRdlVjPi0oSItOxV+g=;
-       b=rhmTKZvMnvHaoH3cVkCB+kG6bi+qALxRF7/1gxfZVj5ALo0eZ4gIEQ81+9lCEWowOj
-       Q7tBQ2URodIM1LfAPe8wjRZV7iRHCnGivkNP17qdIMX2kcQo/JG6Jqh5CiR53HVE42Ho
-       fSYECI9/M00iTlgmVV49e6ChZhEpIJ6c8lx6uUf5nYtTEbsKp8XCl4ujBvLkXrbUM6aQ
-       Fu5Ermk0WO8qr1nkyTaUnphoWxw24J6pXMDDAWzeM1urVe7pWrwqMW087txKa7EBYRqu
-       emSH9Q/DBzoEb7/NIGADvp5SRGKtBoXt/01XHpx9Ts7p1yYvzb/tDTxlLVvkYmrrXoxI
-       2qJw==
-Received: by 10.68.218.72 with SMTP id pe8mr21328756pbc.33.1346464887085;
-       Fri, 31 Aug 2012 19:01:27 -0700 (PDT)
-Received: from [10.20.235.159] ([204.239.250.1])
-       by mx.google.com with ESMTPS id wh7sm4602909pbc.33.2012.08.31.19.01.23
-       (version=SSLv3 cipher=OTHER); Fri, 31 Aug 2012 19:01:25 -0700 (PDT)
-User-Agent: Microsoft-Entourage/12.32.0.111121
-Date: Sat, 01 Sep 2012 03:01:13 +0100
-From: Keir Fraser <keir.xen@gmail.com>
-To: Sander Eikelenboom <linux@eikelenboom.it>,
-       Santosh Jodh <Santosh.Jodh@citrix.com>
-Message-ID: <CC672AF9.3D8E2%keir.xen@gmail.com>
-Thread-Topic: [Xen-devel] Using debug-key 'o:  Dump IOMMU p2m table, locks up
-       machine
-Thread-Index: Ac2H5anSA9JOwrAdv0yUGY6DtFwLdQ==
-In-Reply-To: <1377403931.20120901011625@eikelenboom.it>
-Mime-version: 1.0
-Cc: "wei.wang2@amd.com" <wei.wang2@amd.com>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-3.6 required=5.0 tests=BAYES_00,FREEMAIL_FROM,
-       RCVD_IN_DNSWL_MED,RCVD_IN_SORBS_WEB,RP_MATCHES_RCVD,T_DKIM_INVALID,
-       UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] Using debug-key 'o:  Dump IOMMU p2m table,
- locks up machine
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On 01/09/2012 00:16, "Sander Eikelenboom" <linux@eikelenboom.it> wrote:
-
-> 
-> Saturday, September 1, 2012, 12:57:45 AM, you wrote:
-> 
->> The dump should complete - would be curious to see how long it takes on
->> serial console. What baudrate is the console running at?
-> 
-> I think for ages, this part seems only to cover a bit of the first of 3 pv
-> guests which have devices passed through.
-> 38400
-> 
-> And i wonder if the information is very valuable, gfn == mfn for every line
-> ... at an increment of 1 ...
-> Perhaps a uhmmm more compact way of getting the interesting data would be
-> handy ?
-> Or is this the intended output ?
-> 
->> The code does allow processing of pending softirqs quite frequently. I am not
->> sure why you are still seeing SATA errors.
-> 
-> The machine is completely unresponsive in every way.
-
-It might schedule softirqs but that won't include scheduling or running any
-guest vcpus. The vcpu that happens to be running on that cpu at the time the
-debug dump starts, will be stuck unrunnable until the dump completes.
-
-Well, anyway, I don't know how useful a massive dump of the entire p2m is
-going to be for debugging anyway. If investigating an IOMMU page fault, I'd
-just want the info pertaining to that fault, and all the mapping information
-for that IO virtual address, dumped. :)
-
- -- Keir
-
-> And using it with "xl debug-keys o" is never going to work i guess, since the
-> information flood is far larger than "xl dmesg" keeps ?
-> 
-> 
-> 
->>> -----Original Message-----
->>> From: Sander Eikelenboom [mailto:linux@eikelenboom.it]
->>> Sent: Friday, August 31, 2012 3:43 PM
->>> To: Santosh Jodh
->>> Cc: wei.wang2@amd.com; xen-devel@lists.xen.org
->>> Subject: Re: Using debug-key 'o: Dump IOMMU p2m table, locks up machine
->>> 
->>> 
->>> Saturday, September 1, 2012, 12:24:32 AM, you wrote:
->>> 
->>>> Depending on how many VMs you have and the size of the IOMMU p2m
->>> table, it can take a while. It should not be infinite though.
->>> 
->>>> How many VMs do you have running?
->>> 
->>> 15
->>> 
->>>> Can you please send the serial output when you press 'o'?
->>> 
->>> Attached, to the end you will see the s-ata errors coming through while the
->>> dump still runs.
->>> This is not a complete dump, only a few minutes after which i did a hard
->>> reset.
->>> 
->>>> Santosh
->>> 
->>>>> -----Original Message-----
->>>>> From: Sander Eikelenboom [mailto:linux@eikelenboom.it]
->>>>> Sent: Friday, August 31, 2012 2:45 PM
->>>>> To: Santosh Jodh; wei.wang2@amd.com
->>>>> Cc: xen-devel@lists.xen.org
->>>>> Subject: Using debug-key 'o: Dump IOMMU p2m table, locks up machine
->>>>> 
->>>>> 
->>>>> I was trying to use the 'o' debug key to make a bug report about an "AMD-
->>> Vi:
->>>>> IO_PAGE_FAULT".
->>>>> 
->>>>> The result:
->>>>> - When using "xl debug-keys o", the machine seems in a infinite loop,
->>>>> can hardly login, eventually resulting in a kernel RCU stall and complete
->>> lockup.
->>>>> - When using serial console: I get a infinite stream of "gfn:  mfn: "
->>>>> lines, mean while on the normal console, S-ATA devices are starting to
->>> give errors.
->>>>> 
->>>>> So either option trashes the machine, other debug-keys work fine.
->>>>> 
->>>>> Machine has a 890-fx chipset and AMD phenom x6 proc.
->>>>> 
->>>>> xl dmesg with bootup and output from some other debug-keys is
->>> attached.
->>>>> 
->>>>> --
->>>>> 
->>>>> Sander
->>> 
->>> 
->>> 
->>> 
->>> --
->>> Best regards,
->>>  Sander                            mailto:linux@eikelenboom.it
-> 
-> 
-> 
-
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<CC681CDD.3D966%keir.xen@gmail.com> b/test/corpus/<CC681CDD.3D966%keir.xen@gmail.com>
deleted file mode 100644 (file)
index 2876b65..0000000
+++ /dev/null
@@ -1,137 +0,0 @@
-From xen-devel-bounces@lists.xen.org Sat Sep 01 20:19:19 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Sat, 01 Sep 2012 20:19:19 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T7tDx-0006Xe-1s
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Sat, 01 Sep 2012 20:19:19 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T7t8P-00030e-2X; Sat, 01 Sep 2012 19:13:33 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <keir.xen@gmail.com>) id 1T7t8M-00030Z-L3
-       for xen-devel@lists.xen.org; Sat, 01 Sep 2012 19:13:30 +0000
-Received: from [85.158.143.99:32629] by server-1.bemta-4.messagelabs.com id
-       2E/6E-12504-95E52405; Sat, 01 Sep 2012 19:13:29 +0000
-X-Env-Sender: keir.xen@gmail.com
-X-Msg-Ref: server-15.tower-216.messagelabs.com!1346526808!27989165!1
-X-Originating-IP: [209.85.212.173]
-X-SpamReason: No, hits=0.3 required=7.0 tests=ML_RADAR_SPEW_LINKS_14,
-       RCVD_BY_IP,spamassassin: 
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 6535 invoked from network); 1 Sep 2012 19:13:29 -0000
-Received: from mail-wi0-f173.google.com (HELO mail-wi0-f173.google.com)
-       (209.85.212.173)
-       by server-15.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
-       1 Sep 2012 19:13:29 -0000
-Received: by wibhm6 with SMTP id hm6so2184431wib.14
-       for <xen-devel@lists.xen.org>; Sat, 01 Sep 2012 12:13:28 -0700 (PDT)
-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
-       h=user-agent:date:subject:from:to:cc:message-id:thread-topic
-       :thread-index:in-reply-to:mime-version:content-type
-       :content-transfer-encoding;
-       bh=lo6cFGjdF41uFen0A+xHuluh0Gzs+ifvMqxG5T/rKTk=;
-       b=HVcRLDBtxAxgESlk6ZFpXD9zZkHyqx9+hN9OX7GyoY7CUpFcc8nClWiwznfTd2Thls
-       sFOUR5a/2iWNG+U5TqOToKhrwrYahC6LbUn+77rzo/YvNBkUJmDhfLTPmQNSZ+y7HSmP
-       TvvkNol506Sx3/lVmcyZwyqLUaQ/CQqoQNyi2nEAo9tJubzAgiPaxhgZxs6ylj8d0MDa
-       NF9hqT4eS1P6JUFlI2wV+44UqFud4dQlF36HVAnfIK+kS3uLvjU6jwL9X+azdeugo3Me
-       nbIkZrHPxCKvZRGjWAjzHTCQDXWvzHA4FKxDeNHktpHxUQg9Y8MoxKfMZDPImr3Lm8hH
-       CwvA==
-Received: by 10.180.20.204 with SMTP id p12mr12550432wie.7.1346526808585;
-       Sat, 01 Sep 2012 12:13:28 -0700 (PDT)
-Received: from [192.168.1.69] (host86-184-74-117.range86-184.btcentralplus.com.
-       [86.184.74.117])
-       by mx.google.com with ESMTPS id cu1sm8715755wib.6.2012.09.01.12.13.24
-       (version=SSLv3 cipher=OTHER); Sat, 01 Sep 2012 12:13:27 -0700 (PDT)
-User-Agent: Microsoft-Entourage/12.32.0.111121
-Date: Sat, 01 Sep 2012 20:13:17 +0100
-From: Keir Fraser <keir.xen@gmail.com>
-To: Santosh Jodh <Santosh.Jodh@citrix.com>,
-       Sander Eikelenboom <linux@eikelenboom.it>
-Message-ID: <CC681CDD.3D966%keir.xen@gmail.com>
-Thread-Topic: [Xen-devel] Using debug-key 'o:  Dump IOMMU p2m table, locks up
-       machine
-Thread-Index: Ac2H5anSA9JOwrAdv0yUGY6DtFwLdQAfNVTwAATWEUo=
-In-Reply-To: <7914B38A4445B34AA16EB9F1352942F1012F0F6F4B98@SJCPMAILBOX01.citrite.net>
-Mime-version: 1.0
-Cc: "wei.wang2@amd.com" <wei.wang2@amd.com>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,FREEMAIL_FROM,
-       RCVD_IN_DNSWL_MED,RP_MATCHES_RCVD,T_DKIM_INVALID,UNPARSEABLE_RELAY
-       autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] Using debug-key 'o:  Dump IOMMU p2m table,
- locks up machine
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On 01/09/2012 18:03, "Santosh Jodh" <Santosh.Jodh@citrix.com> wrote:
-
->> It might schedule softirqs but that won't include scheduling or running any
->> guest vcpus. The vcpu that happens to be running on that cpu at the time the
->> debug dump starts, will be stuck unrunnable until the dump completes.
-> 
-> Why does'nt that vCPU get scheduled on some other pCPU? Is there  a way to
-> yield the CPU from the key handler?
-
-It can't be descheduled from this pCPU without running through the
-scheduler. You could try running the handler in a tasklet -- a tasklet
-causes other vCPUs to be descheduled from that pCPU, before it starts
-running.
-
-So you'd register a keyhandler which does a tasklet_schedule(), and do your
-logging work in the tasklet handler.
-
-Worth a shot maybe?
-
->> 
->> Well, anyway, I don't know how useful a massive dump of the entire p2m is
->> going to be for debugging anyway. If investigating an IOMMU page fault, I'd
->> just want the info pertaining to that fault, and all the mapping information
->> for
->> that IO virtual address, dumped. :)
-> 
-> It is not a generically useful command - its usefulness is in the same
-> category as dumping the MMU table. Unfortunately, there is no way to pass
-> arguments to the key handler - to say provide the VM and or starting gfn and
-> length for a more selective output.
-
-Quite simply, there likely needs to be more tracing on the IOMMU fault path.
-That's a separate concern from your keyhandler of course, but just saying
-I'd be looking for the former rather than the latter, for diagnosing
-Sander's bug.
-
- -- Keir
-
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<CC68C5A1.3D97A%keir.xen@gmail.com> b/test/corpus/<CC68C5A1.3D97A%keir.xen@gmail.com>
deleted file mode 100644 (file)
index 65a9d8f..0000000
+++ /dev/null
@@ -1,129 +0,0 @@
-From xen-devel-bounces@lists.xen.org Sun Sep 02 08:18:40 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Sun, 02 Sep 2012 08:18:40 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T84S5-0004kG-Gd
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Sun, 02 Sep 2012 08:18:39 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T84N7-0005iA-2M; Sun, 02 Sep 2012 07:13:29 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <keir.xen@gmail.com>) id 1T84N5-0005i5-7F
-       for xen-devel@lists.xen.org; Sun, 02 Sep 2012 07:13:27 +0000
-Received: from [85.158.143.99:54387] by server-2.bemta-4.messagelabs.com id
-       94/3E-21239-61703405; Sun, 02 Sep 2012 07:13:26 +0000
-X-Env-Sender: keir.xen@gmail.com
-X-Msg-Ref: server-5.tower-216.messagelabs.com!1346570005!27723670!1
-X-Originating-IP: [209.85.212.179]
-X-SpamReason: No, hits=0.3 required=7.0 tests=ML_RADAR_SPEW_LINKS_14,
-       RCVD_BY_IP,spamassassin: 
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 23954 invoked from network); 2 Sep 2012 07:13:26 -0000
-Received: from mail-wi0-f179.google.com (HELO mail-wi0-f179.google.com)
-       (209.85.212.179)
-       by server-5.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
-       2 Sep 2012 07:13:26 -0000
-Received: by wibhq4 with SMTP id hq4so2333328wib.14
-       for <xen-devel@lists.xen.org>; Sun, 02 Sep 2012 00:13:25 -0700 (PDT)
-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
-       h=user-agent:date:subject:from:to:cc:message-id:thread-topic
-       :thread-index:in-reply-to:mime-version:content-type
-       :content-transfer-encoding;
-       bh=VPjLZPtzsJv4Uh5RNI6HPNZqalZ+Cc5A8XxFaFo6DX8=;
-       b=0sQb0mWUWfAZ6+3Gja7OE2N6l8kNRw4kT/UrR+aRQZ9sw0lR9F3J3edVXQF4c4dnN6
-       lGVa6rY7RdCmb3wFfcJdqQb0WoSNDby8F8Zi61Bsx4sl0cGVjcGpxmyPDsNfj71Cp5gH
-       /7PB9TDuckYgKyBZ5CxFhB/4z7QH1RCWvpYgHWcnk2SuOmFsQ4wxr4cNsQh4ZC44EIj5
-       RslUhJRIbCqBneJbH7H3FPlxAcIuLdyJEAUUXhcQkFs4H8skYD3UCXEHAg4Y8Gi2qGk5
-       buZduiyVcCsly33Rdk3gBKEzp7Wb2q/HuYht71pKi8h3yWjXcnKp/0LST7vHU0Nns1Y0
-       wmsw==
-Received: by 10.216.3.85 with SMTP id 63mr788664weg.134.1346570005747;
-       Sun, 02 Sep 2012 00:13:25 -0700 (PDT)
-Received: from [192.168.1.69] (host86-184-74-117.range86-184.btcentralplus.com.
-       [86.184.74.117])
-       by mx.google.com with ESMTPS id k2sm16990259wiz.7.2012.09.02.00.13.24
-       (version=SSLv3 cipher=OTHER); Sun, 02 Sep 2012 00:13:25 -0700 (PDT)
-User-Agent: Microsoft-Entourage/12.32.0.111121
-Date: Sun, 02 Sep 2012 08:13:21 +0100
-From: Keir Fraser <keir.xen@gmail.com>
-To: Santosh Jodh <Santosh.Jodh@citrix.com>,
-       Sander Eikelenboom <linux@eikelenboom.it>
-Message-ID: <CC68C5A1.3D97A%keir.xen@gmail.com>
-Thread-Topic: [Xen-devel] Using debug-key 'o:  Dump IOMMU p2m table, locks up
-       machine
-Thread-Index: Ac2H5anSA9JOwrAdv0yUGY6DtFwLdQAfNVTwAATWEUoADm300AAKt/F2
-In-Reply-To: <7914B38A4445B34AA16EB9F1352942F1012F0F6F4BA7@SJCPMAILBOX01.citrite.net>
-Mime-version: 1.0
-Cc: "wei.wang2@amd.com" <wei.wang2@amd.com>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,FREEMAIL_FROM,
-       RCVD_IN_DNSWL_MED,RP_MATCHES_RCVD,T_DKIM_INVALID,UNPARSEABLE_RELAY
-       autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] Using debug-key 'o:  Dump IOMMU p2m table,
- locks up machine
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On 02/09/2012 03:08, "Santosh Jodh" <Santosh.Jodh@citrix.com> wrote:
-
->>>> It might schedule softirqs but that won't include scheduling or
->>>> running any guest vcpus. The vcpu that happens to be running on that
->>>> cpu at the time the debug dump starts, will be stuck unrunnable until the
->> dump completes.
->>> 
->>> Why does'nt that vCPU get scheduled on some other pCPU? Is there  a
->>> way to yield the CPU from the key handler?
->> 
->> It can't be descheduled from this pCPU without running through the
->> scheduler. You could try running the handler in a tasklet -- a tasklet causes
->> other vCPUs to be descheduled from that pCPU, before it starts running.
->> 
->> So you'd register a keyhandler which does a tasklet_schedule(), and do your
->> logging work in the tasklet handler.
->> 
->> Worth a shot maybe?
-> 
-> Yes - certainly. Is there a reason why all key handlers should not be
-> tasklets?
-
-Some keys you want to print immediately (stack trace), or you are using them
-when the system is in a bad way, and deferring the tracing may cause you to
-get no tracing at all. There may be a few informational keys, for irqs and
-the like, that could be moved to tasklet context though, yes. It's just the
-tasklet-in-hypervisor-thread mechanism is newer than the key handlers. ;-)
-
- -- Keir
-
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<CC68C71C.3D981%keir.xen@gmail.com> b/test/corpus/<CC68C71C.3D981%keir.xen@gmail.com>
deleted file mode 100644 (file)
index 988454c..0000000
+++ /dev/null
@@ -1,145 +0,0 @@
-From xen-devel-bounces@lists.xen.org Sun Sep 02 08:24:40 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Sun, 02 Sep 2012 08:24:40 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T84Xt-0004kn-Dy
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Sun, 02 Sep 2012 08:24:40 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T84TD-0005qh-Sg; Sun, 02 Sep 2012 07:19:47 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <keir.xen@gmail.com>) id 1T84TC-0005qY-DO
-       for xen-devel@lists.xen.org; Sun, 02 Sep 2012 07:19:46 +0000
-Received: from [85.158.143.99:6182] by server-3.bemta-4.messagelabs.com id
-       AA/F5-08232-19803405; Sun, 02 Sep 2012 07:19:45 +0000
-X-Env-Sender: keir.xen@gmail.com
-X-Msg-Ref: server-5.tower-216.messagelabs.com!1346570384!27724122!1
-X-Originating-IP: [74.125.82.173]
-X-SpamReason: No, hits=0.3 required=7.0 tests=ML_RADAR_SPEW_LINKS_14,
-       RCVD_BY_IP,spamassassin: 
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 6446 invoked from network); 2 Sep 2012 07:19:44 -0000
-Received: from mail-we0-f173.google.com (HELO mail-we0-f173.google.com)
-       (74.125.82.173)
-       by server-5.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
-       2 Sep 2012 07:19:44 -0000
-Received: by weyz53 with SMTP id z53so2821277wey.32
-       for <xen-devel@lists.xen.org>; Sun, 02 Sep 2012 00:19:44 -0700 (PDT)
-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
-       h=user-agent:date:subject:from:to:cc:message-id:thread-topic
-       :thread-index:in-reply-to:mime-version:content-type
-       :content-transfer-encoding;
-       bh=kfKFA2B7rxAhmbReoBU47bDede3hRnCJS0/bTFkazAw=;
-       b=Y3ajfsPJEEVvpRrnwa8OFP1vl2awIjSpRtGQKbE03NhdDWbItHMXtNlUble3985yxA
-       akOjx6ccYBQZ9N+I+i6xhNc2Z4BStsrjyFEYtXl+19Uh5cwBO9V7uk+5I3ha4fxjkeCt
-       SBGw5FKvizebJOWuFo/nx+221gQjzZNm70Un70EQOqgcdotM+KIoG1Wdg4Ek4aTVJKQ5
-       Bo4i27lQJtz/92cJGrh92BOagWpmoGWhIuLm4bBCeGA7ZueS5/x4PntB2dwpDi+YaoNJ
-       njRQCwgpJRDJQlJdGP/JQAyjO8A41PX1irHE0N6mfXEWdmFf+ydoUl+SbCIgE9PXVzWf
-       1B4Q==
-Received: by 10.217.1.206 with SMTP id n56mr7323407wes.151.1346570384337;
-       Sun, 02 Sep 2012 00:19:44 -0700 (PDT)
-Received: from [192.168.1.69] (host86-184-74-117.range86-184.btcentralplus.com.
-       [86.184.74.117])
-       by mx.google.com with ESMTPS id bc2sm17041325wib.0.2012.09.02.00.19.42
-       (version=SSLv3 cipher=OTHER); Sun, 02 Sep 2012 00:19:43 -0700 (PDT)
-User-Agent: Microsoft-Entourage/12.32.0.111121
-Date: Sun, 02 Sep 2012 08:19:40 +0100
-From: Keir Fraser <keir.xen@gmail.com>
-To: Santosh Jodh <Santosh.Jodh@citrix.com>,
-       Sander Eikelenboom <linux@eikelenboom.it>
-Message-ID: <CC68C71C.3D981%keir.xen@gmail.com>
-Thread-Topic: [Xen-devel] Using debug-key 'o:  Dump IOMMU p2m table, locks up
-       machine
-Thread-Index: Ac2H5anSA9JOwrAdv0yUGY6DtFwLdQAfNVTwAATWEUoADm300AAKt/F2AAA4elk=
-In-Reply-To: <CC68C5A1.3D97A%keir.xen@gmail.com>
-Mime-version: 1.0
-Cc: "wei.wang2@amd.com" <wei.wang2@amd.com>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,FREEMAIL_FROM,
-       RCVD_IN_DNSWL_MED,RP_MATCHES_RCVD,T_DKIM_INVALID,UNPARSEABLE_RELAY
-       autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] Using debug-key 'o:  Dump IOMMU p2m table,
- locks up machine
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On 02/09/2012 08:13, "Keir Fraser" <keir.xen@gmail.com> wrote:
-
-> On 02/09/2012 03:08, "Santosh Jodh" <Santosh.Jodh@citrix.com> wrote:
-> 
->>>>> It might schedule softirqs but that won't include scheduling or
->>>>> running any guest vcpus. The vcpu that happens to be running on that
->>>>> cpu at the time the debug dump starts, will be stuck unrunnable until the
->>> dump completes.
->>>> 
->>>> Why does'nt that vCPU get scheduled on some other pCPU? Is there  a
->>>> way to yield the CPU from the key handler?
->>> 
->>> It can't be descheduled from this pCPU without running through the
->>> scheduler. You could try running the handler in a tasklet -- a tasklet
->>> causes
->>> other vCPUs to be descheduled from that pCPU, before it starts running.
->>> 
->>> So you'd register a keyhandler which does a tasklet_schedule(), and do your
->>> logging work in the tasklet handler.
->>> 
->>> Worth a shot maybe?
->> 
->> Yes - certainly. Is there a reason why all key handlers should not be
->> tasklets?
-> 
-> Some keys you want to print immediately (stack trace), or you are using them
-> when the system is in a bad way, and deferring the tracing may cause you to
-> get no tracing at all. There may be a few informational keys, for irqs and
-> the like, that could be moved to tasklet context though, yes. It's just the
-> tasklet-in-hypervisor-thread mechanism is newer than the key handlers. ;-)
-
-Actually, ignore me, most keyhandlers are getting deferred to a tasklet
-context already. At least when triggered from a serial irq. See
-common/keyhandler.c:handle_keypress().
-
-So your handler, when triggered by 'o' over the serial line, will be running
-in tasklet context already. So vCPU execution is getting stalled just
-because, I'm not sure, not running through the scheduler softirq for ages on
-that pCPU is maybe confusing the scheduler? :(
-
- -- Ker
-
->  -- Keir
-> 
-> 
-
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<CC68CC67.3D984%keir.xen@gmail.com> b/test/corpus/<CC68CC67.3D984%keir.xen@gmail.com>
deleted file mode 100644 (file)
index 5a71d6e..0000000
+++ /dev/null
@@ -1,139 +0,0 @@
-From xen-devel-bounces@lists.xen.org Sun Sep 02 08:47:30 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Sun, 02 Sep 2012 08:47:30 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T84u0-0004nA-6K
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Sun, 02 Sep 2012 08:47:30 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T84pA-00064X-38; Sun, 02 Sep 2012 07:42:28 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <keir.xen@gmail.com>) id 1T84p8-00064S-GL
-       for xen-devel@lists.xen.org; Sun, 02 Sep 2012 07:42:26 +0000
-Received: from [85.158.139.83:26732] by server-1.bemta-5.messagelabs.com id
-       B7/8D-32692-1ED03405; Sun, 02 Sep 2012 07:42:25 +0000
-X-Env-Sender: keir.xen@gmail.com
-X-Msg-Ref: server-12.tower-182.messagelabs.com!1346571743!27935380!1
-X-Originating-IP: [74.125.82.51]
-X-SpamReason: No, hits=0.3 required=7.0 tests=ML_RADAR_SPEW_LINKS_14,
-       RCVD_BY_IP,spamassassin: 
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 31598 invoked from network); 2 Sep 2012 07:42:23 -0000
-Received: from mail-wg0-f51.google.com (HELO mail-wg0-f51.google.com)
-       (74.125.82.51)
-       by server-12.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
-       2 Sep 2012 07:42:23 -0000
-Received: by wgbed3 with SMTP id ed3so2564131wgb.32
-       for <xen-devel@lists.xen.org>; Sun, 02 Sep 2012 00:42:23 -0700 (PDT)
-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
-       h=user-agent:date:subject:from:to:cc:message-id:thread-topic
-       :thread-index:in-reply-to:mime-version:content-type
-       :content-transfer-encoding;
-       bh=w9blQ7PuytmUt7yPAZBUqRok/xzKICKZ8fwlvU954QY=;
-       b=hElaZu8TY8D5iTgvxxPoCW/disitX8m9ipGA0nHVHh2BkgY74X9KYyOybJlBrkjJHy
-       pWlo4yuKUOfBi8qyL+BtR+TzhjPAjdh6JTcydVAGQVpda7uEf8/6Eo/tLxTxzcHCyodg
-       bvvDg6zA15tEeaysSilpTxT4ddnfiLKU5+yE9Zr656n9ZDNWKQ+loQG4hD0iISetnFmB
-       aEDI6fN2e/cQgsb99fZHHk+9buOmrJfroKfbhIODnyWyrgyBemNzB/Juu0SjPeyoNJK2
-       EI+usMRfTraFo8gzQ5X5nhalwJszCkLDylKFclVcPl8FJPv3pHyoS1tVz/1/+2IMSzkM
-       Py+A==
-Received: by 10.217.1.79 with SMTP id m57mr7361500wes.121.1346571742957;
-       Sun, 02 Sep 2012 00:42:22 -0700 (PDT)
-Received: from [192.168.1.69] (host86-184-74-117.range86-184.btcentralplus.com.
-       [86.184.74.117])
-       by mx.google.com with ESMTPS id k20sm11657483wiv.11.2012.09.02.00.42.20
-       (version=SSLv3 cipher=OTHER); Sun, 02 Sep 2012 00:42:22 -0700 (PDT)
-User-Agent: Microsoft-Entourage/12.32.0.111121
-Date: Sun, 02 Sep 2012 08:42:15 +0100
-From: Keir Fraser <keir.xen@gmail.com>
-To: Sander Eikelenboom <linux@eikelenboom.it>,
-       Santosh Jodh <santosh.jodh@citrix.com>, <wei.wang2@amd.com>
-Message-ID: <CC68CC67.3D984%keir.xen@gmail.com>
-Thread-Topic: [Xen-devel] Using debug-key 'o:  Dump IOMMU p2m table, locks up
-       machine
-Thread-Index: Ac2I3niJ0Q4uQqsNykiQU+v9bEIzQw==
-In-Reply-To: <647712821.20120831234512@eikelenboom.it>
-Mime-version: 1.0
-Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,FREEMAIL_FROM,
-       RCVD_IN_DNSWL_MED,RP_MATCHES_RCVD,T_DKIM_INVALID,UNPARSEABLE_RELAY
-       autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] Using debug-key 'o:  Dump IOMMU p2m table,
- locks up machine
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On 31/08/2012 22:45, "Sander Eikelenboom" <linux@eikelenboom.it> wrote:
-
-> 
-> I was trying to use the 'o' debug key to make a bug report about an "AMD-Vi:
-> IO_PAGE_FAULT".
-> 
-> The result:
-> - When using "xl debug-keys o", the machine seems in a infinite loop, can
-> hardly login, eventually resulting in a kernel RCU stall and complete lockup.
-
-We don't defer the key handler to tasklet context in this case (because of
-'if !in_irq()' check in keyhandler.c:handle_keypress()). Hence the dom0 vCPU
-gets 'stuck' while the handler executes. Possibly we should always defer
-non-irq keyhandlers to tasklet context, even when executed via sysctl.
-
-> - When using serial console: I get a infinite stream of "gfn:  mfn: " lines,
-> mean while on the normal console, S-ATA devices are starting to give errors.
-
-In this case the handler must be running in tasklet context. Not sure why
-SATA interrupts would be affected as hardirq and softirq work will still be
-carried out during execution of the keyhandler (the handler voluntarily
-preempts itself for softirq work).
-
-Would need more investigation. :)
-
- -- Keir
-
-> So either option trashes the machine, other debug-keys work fine.
-> 
-> Machine has a 890-fx chipset and AMD phenom x6 proc.
-> 
-> xl dmesg with bootup and output from some other debug-keys is attached.
-> 
-> --
-> 
-> Sander
-> _______________________________________________
-> Xen-devel mailing list
-> Xen-devel@lists.xen.org
-> http://lists.xen.org/xen-devel
-
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<CC6932C2.3D99D%keir.xen@gmail.com> b/test/corpus/<CC6932C2.3D99D%keir.xen@gmail.com>
deleted file mode 100644 (file)
index 588e12f..0000000
+++ /dev/null
@@ -1,130 +0,0 @@
-From xen-devel-bounces@lists.xen.org Sun Sep 02 16:04:57 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Sun, 02 Sep 2012 16:04:57 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T8BjK-0005T7-JK
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Sun, 02 Sep 2012 16:04:57 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T8Bdn-00089b-Sj; Sun, 02 Sep 2012 14:59:11 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <keir.xen@gmail.com>) id 1T8Bdl-00089T-RI
-       for xen-devel@lists.xen.org; Sun, 02 Sep 2012 14:59:10 +0000
-Received: from [85.158.139.83:9817] by server-5.bemta-5.messagelabs.com id
-       4A/54-30514-D3473405; Sun, 02 Sep 2012 14:59:09 +0000
-X-Env-Sender: keir.xen@gmail.com
-X-Msg-Ref: server-14.tower-182.messagelabs.com!1346597946!23871711!1
-X-Originating-IP: [74.125.83.45]
-X-SpamReason: No, hits=0.3 required=7.0 tests=ML_RADAR_SPEW_LINKS_14,
-       RCVD_BY_IP,spamassassin: 
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 1183 invoked from network); 2 Sep 2012 14:59:07 -0000
-Received: from mail-ee0-f45.google.com (HELO mail-ee0-f45.google.com)
-       (74.125.83.45)
-       by server-14.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
-       2 Sep 2012 14:59:07 -0000
-Received: by eeke53 with SMTP id e53so1822412eek.32
-       for <xen-devel@lists.xen.org>; Sun, 02 Sep 2012 07:59:06 -0700 (PDT)
-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
-       h=user-agent:date:subject:from:to:cc:message-id:thread-topic
-       :thread-index:in-reply-to:mime-version:content-type
-       :content-transfer-encoding;
-       bh=cxbObWqzfKpGgJQIedRktVC+MyWwal42nEHioXLnv4U=;
-       b=s6p0GnX8a9op8Vom9G5bcv0EQwgmqP02sUIE74gAil+3q9GesSMng163pur3uz+T+6
-       mBUN9LaxrH4kN/Ozn3x8zzxi1dPnwPb5YQVHus9MZi1V5Fq9VmD9GWLyQyCQKSwaub1B
-       YymMXrH0+hhiDz+wjh1mGbImVL0S/BcCjsEI1Z/frjmxjlJB1aLl9abY10lLZZKqKW10
-       AsrmkwWpb2FMY1w6axLhEsrTY5XNGPEd63zA1gxKrGP1nl22VHnhTjGTRJoUD05cgYRf
-       DCdP3INd78sqGDlZXVorWFSPoCQm0OQTrmByPL5niSGF/I/pd6O7H5/GIlgSaXoRawYs
-       +A2w==
-Received: by 10.14.4.201 with SMTP id 49mr17953608eej.0.1346597946743;
-       Sun, 02 Sep 2012 07:59:06 -0700 (PDT)
-Received: from [192.168.1.69] (host86-184-74-117.range86-184.btcentralplus.com.
-       [86.184.74.117])
-       by mx.google.com with ESMTPS id 45sm28739266eeb.8.2012.09.02.07.59.02
-       (version=SSLv3 cipher=OTHER); Sun, 02 Sep 2012 07:59:06 -0700 (PDT)
-User-Agent: Microsoft-Entourage/12.32.0.111121
-Date: Sun, 02 Sep 2012 15:58:58 +0100
-From: Keir Fraser <keir.xen@gmail.com>
-To: Sander Eikelenboom <linux@eikelenboom.it>
-Message-ID: <CC6932C2.3D99D%keir.xen@gmail.com>
-Thread-Topic: [Xen-devel] Using debug-key 'o:  Dump IOMMU p2m table, locks up
-       machine
-Thread-Index: Ac2JG3q9vAd49JMnbUy0lmDWqo6J3w==
-In-Reply-To: <40501859.20120902104331@eikelenboom.it>
-Mime-version: 1.0
-Cc: "wei.wang2@amd.com" <wei.wang2@amd.com>,
-       Santosh Jodh <Santosh.Jodh@citrix.com>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,FREEMAIL_FROM,
-       RCVD_IN_DNSWL_MED,RP_MATCHES_RCVD,T_DKIM_INVALID,UNPARSEABLE_RELAY
-       autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] Using debug-key 'o:  Dump IOMMU p2m table,
- locks up machine
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On 02/09/2012 09:43, "Sander Eikelenboom" <linux@eikelenboom.it> wrote:
-
->> Quite simply, there likely needs to be more tracing on the IOMMU fault path.
->> That's a separate concern from your keyhandler of course, but just saying
->> I'd be looking for the former rather than the latter, for diagnosing
->> Sander's bug.
-> 
-> Are there any printk's I could add to get more relevant info about the AMD-Vi:
-> IO_PAGE_FAULT ?
-
-No really straightforward one. I think we need a per-IOMMU-type handler to
-walk the IOMMU page table for a given virtual address, and dump every
-page-table-entry on the path. Like an IOMMU version of show_page_walk().
-Personally I would suspect this is more useful than the dump-everything
-handlers: just give a *full* *detailed* walk for the actually interesting
-virtual address (the one faulted on).
-
-> I have attached new output from xl dmesg, this time with iommu=debug on (the
-> option changed from 4.1 to 4.2).
-
-Not easy to glean any more from that, without extra tracing such as
-described above, and/or digging into the guest to find what driver-side
-actions are causing the faults.
-
- -- Keir
-
-> 
-> 
->>  -- Keir
-> 
-
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<CC6B6568.3DAAD%keir.xen@gmail.com> b/test/corpus/<CC6B6568.3DAAD%keir.xen@gmail.com>
deleted file mode 100644 (file)
index 9b52d67..0000000
+++ /dev/null
@@ -1,130 +0,0 @@
-From xen-devel-bounces@lists.xen.org Tue Sep 04 08:04:30 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Tue, 04 Sep 2012 08:04:30 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T8nBQ-0001EP-1H
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 04 Sep 2012 08:04:30 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T8n6z-0000zT-IB; Tue, 04 Sep 2012 06:59:49 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <keir.xen@gmail.com>) id 1T8n6x-0000zO-P6
-       for xen-devel@lists.xen.org; Tue, 04 Sep 2012 06:59:47 +0000
-Received: from [85.158.143.35:13915] by server-1.bemta-4.messagelabs.com id
-       D5/CC-12504-2E6A5405; Tue, 04 Sep 2012 06:59:46 +0000
-X-Env-Sender: keir.xen@gmail.com
-X-Msg-Ref: server-11.tower-21.messagelabs.com!1346741985!11381864!1
-X-Originating-IP: [209.85.215.173]
-X-SpamReason: No, hits=0.3 required=7.0 tests=ML_RADAR_SPEW_LINKS_14,
-       RCVD_BY_IP,spamassassin: 
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 4718 invoked from network); 4 Sep 2012 06:59:46 -0000
-Received: from mail-ey0-f173.google.com (HELO mail-ey0-f173.google.com)
-       (209.85.215.173)
-       by server-11.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
-       4 Sep 2012 06:59:46 -0000
-Received: by eaac13 with SMTP id c13so1954112eaa.32
-       for <xen-devel@lists.xen.org>; Mon, 03 Sep 2012 23:59:45 -0700 (PDT)
-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
-       h=user-agent:date:subject:from:to:cc:message-id:thread-topic
-       :thread-index:in-reply-to:mime-version:content-type
-       :content-transfer-encoding;
-       bh=+dKocxMSLwymvf2YptnMx5FF4tHmPlfcOOodFO7BMUk=;
-       b=jZGtponIaOY3uiMxbuAkKHVCad6FNi5FImNZcS+rVq9v07Qxvzar973nGFFoMUvVcB
-       UN/Gvk/Xt4FZyFDFXVra5eJc+GYBwL7eHr1TRuc0/79M7XtriF3G5BzSjle1hHyZrina
-       SS6i0h37VYrzGkEkIQPGW2LT1XxwoIUfuQqzE4q+DzOXTaY20RQ2bEYR9z/8KKkGpGrI
-       AKozl9JdKlshZ4gJVNX623z8zxk5fJzIpdokd4rIfZa2NdFUQPgUQdHDpWmTrAjpMr3v
-       uxiqs8J7tZhtz6GdRKClOhLymUCdoD5BRoCKirZdGYVrTiArm8AtNNhDD8pa9/r3wL2I
-       ARSg==
-Received: by 10.14.207.9 with SMTP id m9mr24718169eeo.5.1346741985825;
-       Mon, 03 Sep 2012 23:59:45 -0700 (PDT)
-Received: from [192.168.1.69] (host86-184-74-117.range86-184.btcentralplus.com.
-       [86.184.74.117])
-       by mx.google.com with ESMTPS id v3sm42636318eep.10.2012.09.03.23.59.42
-       (version=SSLv3 cipher=OTHER); Mon, 03 Sep 2012 23:59:45 -0700 (PDT)
-User-Agent: Microsoft-Entourage/12.32.0.111121
-Date: Tue, 04 Sep 2012 07:59:36 +0100
-From: Keir Fraser <keir.xen@gmail.com>
-To: Jan Beulich <JBeulich@suse.com>, Sander Eikelenboom <linux@eikelenboom.it>,
-       George Dunlap <George.Dunlap@eu.citrix.com>
-Message-ID: <CC6B6568.3DAAD%keir.xen@gmail.com>
-Thread-Topic: [Xen-devel] Using debug-key 'o:  Dump IOMMU p2m table, locks up
-       machine
-Thread-Index: Ac2KatgUGFZFxbeHDkeffgybugnEcA==
-In-Reply-To: <5045BD5C02000078000985A7@nat28.tlf.novell.com>
-Mime-version: 1.0
-Cc: wei.wang2@amd.com, Santosh Jodh <santosh.jodh@citrix.com>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,FREEMAIL_FROM,
-       RCVD_IN_DNSWL_MED,RP_MATCHES_RCVD,T_DKIM_INVALID,UNPARSEABLE_RELAY
-       autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] Using debug-key 'o:  Dump IOMMU p2m table,
- locks up machine
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On 04/09/2012 07:35, "Jan Beulich" <JBeulich@suse.com> wrote:
-
->>>> On 02.09.12 at 09:42, Keir Fraser <keir.xen@gmail.com> wrote:
->> On 31/08/2012 22:45, "Sander Eikelenboom" <linux@eikelenboom.it> wrote:
->>> - When using serial console: I get a infinite stream of "gfn:  mfn: " lines,
->>> mean while on the normal console, S-ATA devices are starting to give errors.
->> 
->> In this case the handler must be running in tasklet context. Not sure why
->> SATA interrupts would be affected as hardirq and softirq work will still be
->> carried out during execution of the keyhandler (the handler voluntarily
->> preempts itself for softirq work).
->> 
->> Would need more investigation. :)
-> 
-> Isn't that because tasklets (i.e. idle vCPU-s with tasklets active)
-> get preferred in the schedulers? Some compensation might be
-> needed for the penalized vCPU, at least if that one is pinned
-> (not sure whether load balancing would be able to steal the
-> head of the run queue from a remote CPU). Sander - are you
-> by chance pinning Dom0 vCPU-s? And how many of them does
-> your Dom0 have?
-
-Jan, Yes you could be right, if Sander is pinning CPUs. Anyway, I wasn't
-going to expend too much brain power on this situation. The case of spending
-a few minutes in one key handler is not one I think is particularly sane.
-
- -- Keir
-
-> Jan
-> 
-
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<CC6B65F2.3DAAF%keir.xen@gmail.com> b/test/corpus/<CC6B65F2.3DAAF%keir.xen@gmail.com>
deleted file mode 100644 (file)
index 0029f62..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-From xen-devel-bounces@lists.xen.org Tue Sep 04 08:06:18 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Tue, 04 Sep 2012 08:06:18 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T8nDA-0001Ez-2I
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 04 Sep 2012 08:06:17 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T8n9A-0001G7-WF; Tue, 04 Sep 2012 07:02:05 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <keir.xen@gmail.com>) id 1T8n98-0001Fz-LZ
-       for xen-devel@lists.xen.org; Tue, 04 Sep 2012 07:02:02 +0000
-Received: from [85.158.139.83:62087] by server-5.bemta-5.messagelabs.com id
-       6E/05-30514-967A5405; Tue, 04 Sep 2012 07:02:01 +0000
-X-Env-Sender: keir.xen@gmail.com
-X-Msg-Ref: server-4.tower-182.messagelabs.com!1346742121!25685685!1
-X-Originating-IP: [209.85.215.173]
-X-SpamReason: No, hits=0.3 required=7.0 tests=ML_RADAR_SPEW_LINKS_14,
-       RCVD_BY_IP,spamassassin: 
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 2100 invoked from network); 4 Sep 2012 07:02:01 -0000
-Received: from mail-ey0-f173.google.com (HELO mail-ey0-f173.google.com)
-       (209.85.215.173)
-       by server-4.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
-       4 Sep 2012 07:02:01 -0000
-Received: by eaac13 with SMTP id c13so1954977eaa.32
-       for <xen-devel@lists.xen.org>; Tue, 04 Sep 2012 00:02:01 -0700 (PDT)
-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
-       h=user-agent:date:subject:from:to:cc:message-id:thread-topic
-       :thread-index:in-reply-to:mime-version:content-type
-       :content-transfer-encoding;
-       bh=oHvtHbLWPl7Dyx7z1l4Vx/Kbf4nkhTVV4Rqr9nI93eM=;
-       b=d1wFG9qgKbmY6jt02GVhJUVtvg3Cl1L559u+uWMdMKvUtPhd5kzRKiISKrKI9U5wGN
-       pgHTF6zBkT7Kq3w8N4EAaGk9utRrJ5TJhW6vrnetoRowd1ik7jJ942Hb4ANccxkuuLbY
-       Znz8krUsbgbtsuhktId8GDnnZ4DWiJvA55sKJib2+7noQB5EMQZniKDBu2oEo8j1klT2
-       YugVxrZPqRbJZ6HzjpgcRMduuF6Vu5uCMLopmU9k8TK9P58Ga2WvQHGxCmzhbiMn54ea
-       dfbk6UqCQiYgDR44kPb3/ftj35G/AfQ6cAagtXfmFHtylcTh3ryYG6Q9Tf4BuvVhWBiO
-       Vj5Q==
-Received: by 10.14.211.3 with SMTP id v3mr24637561eeo.43.1346742121180;
-       Tue, 04 Sep 2012 00:02:01 -0700 (PDT)
-Received: from [192.168.1.69] (host86-184-74-117.range86-184.btcentralplus.com.
-       [86.184.74.117])
-       by mx.google.com with ESMTPS id v3sm42652597eep.10.2012.09.04.00.01.58
-       (version=SSLv3 cipher=OTHER); Tue, 04 Sep 2012 00:02:00 -0700 (PDT)
-User-Agent: Microsoft-Entourage/12.32.0.111121
-Date: Tue, 04 Sep 2012 08:01:54 +0100
-From: Keir Fraser <keir.xen@gmail.com>
-To: Sander Eikelenboom <linux@eikelenboom.it>, Jan Beulich <JBeulich@suse.com>
-Message-ID: <CC6B65F2.3DAAF%keir.xen@gmail.com>
-Thread-Topic: [Xen-devel] Using debug-key 'o:  Dump IOMMU p2m table, locks up
-       machine
-Thread-Index: Ac2KaypVHnBMx0Z6PkKEs6UxLRYpGw==
-In-Reply-To: <1576173912.20120904085238@eikelenboom.it>
-Mime-version: 1.0
-Cc: George Dunlap <George.Dunlap@eu.citrix.com>, wei.wang2@amd.com,
-       Santosh Jodh <santosh.jodh@citrix.com>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,FREEMAIL_FROM,
-       RCVD_IN_DNSWL_MED,RP_MATCHES_RCVD,T_DKIM_INVALID,UNPARSEABLE_RELAY
-       autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] Using debug-key 'o:  Dump IOMMU p2m table,
- locks up machine
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On 04/09/2012 07:52, "Sander Eikelenboom" <linux@eikelenboom.it> wrote:
-
->> Isn't that because tasklets (i.e. idle vCPU-s with tasklets active)
->> get preferred in the schedulers? Some compensation might be
->> needed for the penalized vCPU, at least if that one is pinned
->> (not sure whether load balancing would be able to steal the
->> head of the run queue from a remote CPU). Sander - are you
->> by chance pinning Dom0 vCPU-s? And how many of them does
->> your Dom0 have?
->
-> Yes i do, could perhaps be the pinning of CPU0 ?
-
-Yeah. :) Case closed?
-
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<CC6B74A7.3DAC1%keir.xen@gmail.com> b/test/corpus/<CC6B74A7.3DAC1%keir.xen@gmail.com>
deleted file mode 100644 (file)
index 4b3dac9..0000000
+++ /dev/null
@@ -1,125 +0,0 @@
-From xen-devel-bounces@lists.xen.org Tue Sep 04 09:13:11 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Tue, 04 Sep 2012 09:13:11 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T8oFs-0001Qg-Qo
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 04 Sep 2012 09:13:11 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T8oBa-00042x-Px; Tue, 04 Sep 2012 08:08:38 +0000
-Received: from mail27.messagelabs.com ([193.109.254.147])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <keir.xen@gmail.com>) id 1T8oBZ-00042W-6W
-       for xen-devel@lists.xen.org; Tue, 04 Sep 2012 08:08:37 +0000
-X-Env-Sender: keir.xen@gmail.com
-X-Msg-Ref: server-10.tower-27.messagelabs.com!1346745885!4296471!1
-X-Originating-IP: [74.125.83.45]
-X-SpamReason: No, hits=0.3 required=7.0 tests=ML_RADAR_SPEW_LINKS_14,
-       RCVD_BY_IP,spamassassin: 
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 7946 invoked from network); 4 Sep 2012 08:04:45 -0000
-Received: from mail-ee0-f45.google.com (HELO mail-ee0-f45.google.com)
-       (74.125.83.45)
-       by server-10.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
-       4 Sep 2012 08:04:45 -0000
-Received: by eeke53 with SMTP id e53so2488847eek.32
-       for <xen-devel@lists.xen.org>; Tue, 04 Sep 2012 01:04:45 -0700 (PDT)
-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
-       h=user-agent:date:subject:from:to:cc:message-id:thread-topic
-       :thread-index:in-reply-to:mime-version:content-type
-       :content-transfer-encoding;
-       bh=axV4W47eX7/ByDKtExRW86JYEt3N714aqk8zGKPU5YE=;
-       b=hV1HpUXZ0w9H7ogVO2qiltSjI33cUcjVDCvuQ1t1Fkxqcx6USnKlJixzXGPfDMgyhp
-       3/8x6pgwLx3bMsd/6W4Kar55Zp00IizqApex8dz9icEXi75jw+w/wHnrkv3ObOzuokoR
-       PIEmZySAmPi8+zzNsdt0NvScfuJpADWEDL841LBo0+R9/SDoPkU7vjPQc4xIVF58T3LN
-       ypXnBm+fjkD52r3JoZozsurYr0jVtSuJMgALbRb517ZXXpTeth41xkLzCVUerrHVCG+g
-       4yEwUQiHLfxgD+SZtM2hH1N0tE8ArdqG/mgPGzHthLVcx8OH7BYoHNbm45mj8qLU3evc
-       ZBpA==
-Received: by 10.14.213.137 with SMTP id a9mr24912372eep.38.1346745885046;
-       Tue, 04 Sep 2012 01:04:45 -0700 (PDT)
-Received: from [192.168.1.69] (host86-184-74-117.range86-184.btcentralplus.com.
-       [86.184.74.117])
-       by mx.google.com with ESMTPS id k49sm43147200een.4.2012.09.04.01.04.43
-       (version=SSLv3 cipher=OTHER); Tue, 04 Sep 2012 01:04:44 -0700 (PDT)
-User-Agent: Microsoft-Entourage/12.32.0.111121
-Date: Tue, 04 Sep 2012 09:04:39 +0100
-From: Keir Fraser <keir.xen@gmail.com>
-To: Jan Beulich <JBeulich@suse.com>,
-       George Dunlap <George.Dunlap@eu.citrix.com>
-Message-ID: <CC6B74A7.3DAC1%keir.xen@gmail.com>
-Thread-Topic: [Xen-devel] Using debug-key 'o:  Dump IOMMU p2m table, locks up
-       machine
-Thread-Index: Ac2Kc+5zmAQer1s5wU6OpsJ21FMcnA==
-In-Reply-To: <5045D0190200007800098608@nat28.tlf.novell.com>
-Mime-version: 1.0
-Cc: wei.wang2@amd.com, Sander Eikelenboom <linux@eikelenboom.it>,
-       Santosh Jodh <santosh.jodh@citrix.com>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,FREEMAIL_FROM,
-       RCVD_IN_DNSWL_MED,RP_MATCHES_RCVD,T_DKIM_INVALID autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] Using debug-key 'o:  Dump IOMMU p2m table,
- locks up machine
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On 04/09/2012 08:55, "Jan Beulich" <JBeulich@suse.com> wrote:
-
->> Jan, Yes you could be right, if Sander is pinning CPUs. Anyway, I wasn't
->> going to expend too much brain power on this situation. The case of spending
->> a few minutes in one key handler is not one I think is particularly sane.
-> 
-> Which imo would call for reverting the patch. But then again, other
-> key handlers can easily take pretty long too (particularly on large
-> systems, albeit it is clear that the one here is particularly bad), and
-> declaring all of them pretty much useless probably isn't the best
-> choice (as then we could as well rip them all out).
-> 
-> Bottom line - _I_ think we should try to do something about this.
-> An apparent option would be to have low priority tasklets (for
-> just this purpose, as all others we certainly want to take priority),
-> if that can reasonably be integrated with the schedulers.
-
-Do you expect to be able to use the log-running key handlers and still need
-a running system afterwards (rather than using them as a final
-dump-everything when the system has already gone bad)? Then I suppose you
-would need something like this, with voluntary preemption in the key
-handlers. You then need to be able to recommence the keyhandlers where they
-left off, retaking locks, finding their place in lists, trees, etc, even
-when state of the system has significantly changed between preemption and
-resumption. Well, I'm sure it can be done, but can anyone be bothered.
-
- -- Keir
-
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<CC6B764E.3DACF%keir.xen@gmail.com> b/test/corpus/<CC6B764E.3DACF%keir.xen@gmail.com>
deleted file mode 100644 (file)
index f7dc5ae..0000000
+++ /dev/null
@@ -1,139 +0,0 @@
-From xen-devel-bounces@lists.xen.org Tue Sep 04 09:15:57 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Tue, 04 Sep 2012 09:15:57 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T8oIc-0001ST-3X
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 04 Sep 2012 09:15:57 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T8oEj-0004Gz-Is; Tue, 04 Sep 2012 08:11:53 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <keir.xen@gmail.com>) id 1T8oEh-0004Gk-LP
-       for xen-devel@lists.xen.org; Tue, 04 Sep 2012 08:11:51 +0000
-Received: from [85.158.143.99:16483] by server-1.bemta-4.messagelabs.com id
-       EC/77-12504-6C7B5405; Tue, 04 Sep 2012 08:11:50 +0000
-X-Env-Sender: keir.xen@gmail.com
-X-Msg-Ref: server-6.tower-216.messagelabs.com!1346746310!21351303!1
-X-Originating-IP: [209.85.215.173]
-X-SpamReason: No, hits=0.3 required=7.0 tests=ML_RADAR_SPEW_LINKS_14,
-       RCVD_BY_IP,spamassassin: 
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 9946 invoked from network); 4 Sep 2012 08:11:50 -0000
-Received: from mail-ey0-f173.google.com (HELO mail-ey0-f173.google.com)
-       (209.85.215.173)
-       by server-6.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
-       4 Sep 2012 08:11:50 -0000
-Received: by eaac13 with SMTP id c13so1979690eaa.32
-       for <xen-devel@lists.xen.org>; Tue, 04 Sep 2012 01:11:50 -0700 (PDT)
-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
-       h=user-agent:date:subject:from:to:cc:message-id:thread-topic
-       :thread-index:in-reply-to:mime-version:content-type
-       :content-transfer-encoding;
-       bh=6HvvyS+mhfR45jJLqt5w+C0iIQxeYgOMyYfg1myQtkI=;
-       b=GSzTKUH11gnDDdjxvPQytHOep6K/H8ubiq4AuEachNX8kkV8ZF2+x7WPxfoTCcCb2L
-       zA8UblaB3dnKTprlqe1dg+lLYD3LDyNCTbeIEeHkRSCCIHT9Hat2+LzUieCXf/oen59J
-       q3LOM4Tcv7yytrxHT/DAXdapKLhrmINmzG61L1SszpQSj3bgR7ZYvxue88cLulhPJTY2
-       4TlflHj7I1OVHEpkoY3sSEc2VGWufHz/QiSlEargV63NqimgXUT9RaC0j7UO5AjijBq9
-       rlXwKdiufCHMUl/yLIfwEC6yLrKUtQm0RA4HHevbZPBBr9q7j8DpRxs748CEgS/VRm3r
-       KQBQ==
-Received: by 10.14.184.133 with SMTP id s5mr25108562eem.31.1346746310075;
-       Tue, 04 Sep 2012 01:11:50 -0700 (PDT)
-Received: from [192.168.1.69] (host86-184-74-117.range86-184.btcentralplus.com.
-       [86.184.74.117])
-       by mx.google.com with ESMTPS id y1sm43216469eel.0.2012.09.04.01.11.47
-       (version=SSLv3 cipher=OTHER); Tue, 04 Sep 2012 01:11:49 -0700 (PDT)
-User-Agent: Microsoft-Entourage/12.32.0.111121
-Date: Tue, 04 Sep 2012 09:11:42 +0100
-From: Keir Fraser <keir.xen@gmail.com>
-To: Jan Beulich <JBeulich@suse.com>,
-       George Dunlap <George.Dunlap@eu.citrix.com>
-Message-ID: <CC6B764E.3DACF%keir.xen@gmail.com>
-Thread-Topic: [Xen-devel] Using debug-key 'o:  Dump IOMMU p2m table, locks up
-       machine
-Thread-Index: Ac2Kc+5zmAQer1s5wU6OpsJ21FMcnAAAPwgG
-In-Reply-To: <CC6B74A7.3DAC1%keir.xen@gmail.com>
-Mime-version: 1.0
-Cc: wei.wang2@amd.com, Sander Eikelenboom <linux@eikelenboom.it>,
-       Santosh Jodh <santosh.jodh@citrix.com>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,FREEMAIL_FROM,
-       RCVD_IN_DNSWL_MED,RP_MATCHES_RCVD,T_DKIM_INVALID,UNPARSEABLE_RELAY
-       autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] Using debug-key 'o:  Dump IOMMU p2m table,
- locks up machine
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On 04/09/2012 09:04, "Keir Fraser" <keir.xen@gmail.com> wrote:
-
-> On 04/09/2012 08:55, "Jan Beulich" <JBeulich@suse.com> wrote:
-> 
->>> Jan, Yes you could be right, if Sander is pinning CPUs. Anyway, I wasn't
->>> going to expend too much brain power on this situation. The case of spending
->>> a few minutes in one key handler is not one I think is particularly sane.
->> 
->> Which imo would call for reverting the patch. But then again, other
->> key handlers can easily take pretty long too (particularly on large
->> systems, albeit it is clear that the one here is particularly bad), and
->> declaring all of them pretty much useless probably isn't the best
->> choice (as then we could as well rip them all out).
->> 
->> Bottom line - _I_ think we should try to do something about this.
->> An apparent option would be to have low priority tasklets (for
->> just this purpose, as all others we certainly want to take priority),
->> if that can reasonably be integrated with the schedulers.
-> 
-> Do you expect to be able to use the log-running key handlers and still need
-> a running system afterwards (rather than using them as a final
-> dump-everything when the system has already gone bad)? Then I suppose you
-> would need something like this, with voluntary preemption in the key
-> handlers. You then need to be able to recommence the keyhandlers where they
-> left off, retaking locks, finding their place in lists, trees, etc, even
-> when state of the system has significantly changed between preemption and
-> resumption. Well, I'm sure it can be done, but can anyone be bothered.
-
-My pragmatic take would be that: (a) Really long-running handlers that want
-to dump every page mapping of every domain are pretty bloody stupid, and yes
-we should consider if they are worthwhile at all; (b) moderately
-long-running but useful handlers which nonetheless take a long time to dump
-to Xen's console, I would consider a sysctl to allow dom0 to request dump
-into a supplied memory buffer.
-
->  -- Keir
-> 
-> 
-
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<CC6B803A.4A8E0%keir@xen.org> b/test/corpus/<CC6B803A.4A8E0%keir@xen.org>
deleted file mode 100644 (file)
index f3431e8..0000000
+++ /dev/null
@@ -1,120 +0,0 @@
-From xen-devel-bounces@lists.xen.org Tue Sep 04 09:58:29 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Tue, 04 Sep 2012 09:58:29 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T8oxj-0001bC-2b
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 04 Sep 2012 09:58:28 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T8otk-0006fH-Gz; Tue, 04 Sep 2012 08:54:16 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <keir.xen@gmail.com>) id 1T8oti-0006f6-Py
-       for xen-devel@lists.xen.org; Tue, 04 Sep 2012 08:54:15 +0000
-Received: from [85.158.139.83:31117] by server-9.bemta-5.messagelabs.com id
-       59/0F-20529-6B1C5405; Tue, 04 Sep 2012 08:54:14 +0000
-X-Env-Sender: keir.xen@gmail.com
-X-Msg-Ref: server-3.tower-182.messagelabs.com!1346748853!28414139!1
-X-Originating-IP: [209.85.215.173]
-X-SpamReason: No, hits=0.3 required=7.0 tests=RCVD_BY_IP
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 28419 invoked from network); 4 Sep 2012 08:54:13 -0000
-Received: from mail-ey0-f173.google.com (HELO mail-ey0-f173.google.com)
-       (209.85.215.173)
-       by server-3.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
-       4 Sep 2012 08:54:13 -0000
-Received: by eaac13 with SMTP id c13so1996606eaa.32
-       for <xen-devel@lists.xen.org>; Tue, 04 Sep 2012 01:54:13 -0700 (PDT)
-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
-       h=sender:user-agent:date:subject:from:to:cc:message-id:thread-topic
-       :thread-index:in-reply-to:mime-version:content-type
-       :content-transfer-encoding;
-       bh=ZmdxEKaNiqfz1zaTf2RgHJ66iQhYTz3+1B8bGgL+h+s=;
-       b=wljSap92C+LlaThL2Fy4f/nUQ5JYAsy5kQPf5+KXF2p+WbrlDe7YkKlove2k+Sz+hG
-       qSR54+BkpMx7ROL3gLLUHVLNbMEdK9cMgmyCP0IBtus9E0szZ8rYmFwUC9IDkoqwsQw8
-       BxIPK+L5NsCE1OGmiibqq95Fl8M7HEs+KGT+CRsZS91bhw+//HBEb5hGQTU5SbXEa/xi
-       csHC2wG3Bj/A5GP4IxyP4s1TM+6ftIVWAe4HVD94n4YkqcNvdzUZefw/onsW9I7uL6Xn
-       vNktS7McSPipgmyRtC40ikoOUj7GT+BDCwveZ4rsiYgK7EWcpXj8Vnve76jFs4K6kbwL
-       V//w==
-Received: by 10.14.223.9 with SMTP id u9mr25160745eep.10.1346748853365;
-       Tue, 04 Sep 2012 01:54:13 -0700 (PDT)
-Received: from [192.168.1.3] (host86-184-74-117.range86-184.btcentralplus.com.
-       [86.184.74.117])
-       by mx.google.com with ESMTPS id h42sm43510644eem.5.2012.09.04.01.54.10
-       (version=SSLv3 cipher=OTHER); Tue, 04 Sep 2012 01:54:12 -0700 (PDT)
-User-Agent: Microsoft-Entourage/12.33.0.120411
-Date: Tue, 04 Sep 2012 09:54:02 +0100
-From: Keir Fraser <keir@xen.org>
-To: Jan Beulich <JBeulich@suse.com>,
-       George Dunlap <George.Dunlap@eu.citrix.com>
-Message-ID: <CC6B803A.4A8E0%keir@xen.org>
-Thread-Topic: [Xen-devel] Using debug-key 'o:  Dump IOMMU p2m table, locks up
-       machine
-Thread-Index: Ac2KetSIIXAo9+QaXE+y6WvmNgbl1A==
-In-Reply-To: <5045DA360200007800098688@nat28.tlf.novell.com>
-Mime-version: 1.0
-Cc: wei.wang2@amd.com, Sander Eikelenboom <linux@eikelenboom.it>,
-       Santosh Jodh <santosh.jodh@citrix.com>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,T_DKIM_INVALID,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] Using debug-key 'o:  Dump IOMMU p2m table,
- locks up machine
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On 04/09/2012 09:38, "Jan Beulich" <JBeulich@suse.com> wrote:
-
->> My pragmatic take would be that: (a) Really long-running handlers that want
->> to dump every page mapping of every domain are pretty bloody stupid, and yes
->> we should consider if they are worthwhile at all; (b) moderately
->> long-running but useful handlers which nonetheless take a long time to dump
->> to Xen's console, I would consider a sysctl to allow dom0 to request dump
->> into a supplied memory buffer.
-> 
-> At a first glance that sounds like a viable option, assuming that
-> the bulk of the time otherwise is being spent actually getting the
-> data out through the serial line. But if the long-running-ness is
-> in the nature of the keyhandler itself, then this wouldn't help
-> much though. And I'd be afraid that ought to be the common
-> case when not running with sync_console, since actual serial
-> output happens asynchronously and hence shouldn't affect the
-> latency of the keyhandler's completion too much.
-
-Well then, have we actually seen problems with async serial output, a
-decent-sized serial output buffer, and the 'd'/'0' handlers? Because if not,
-we don't have a problem to be solved. :)
-
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<CC7B4CE4.3EE74%keir.xen@gmail.com> b/test/corpus/<CC7B4CE4.3EE74%keir.xen@gmail.com>
deleted file mode 100644 (file)
index 8338cfd..0000000
+++ /dev/null
@@ -1,127 +0,0 @@
-From xen-devel-bounces@lists.xen.org Sun Sep 16 09:36:56 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Sun, 16 Sep 2012 09:36:56 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TDALU-0000Bs-4m
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Sun, 16 Sep 2012 09:36:55 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TDAGJ-0007qB-PB; Sun, 16 Sep 2012 08:31:31 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <keir.xen@gmail.com>) id 1TDAGI-0007q6-DG
-       for xen-devel@lists.xen.org; Sun, 16 Sep 2012 08:31:30 +0000
-Received: from [85.158.143.35:21260] by server-3.bemta-4.messagelabs.com id
-       FF/44-08232-16E85505; Sun, 16 Sep 2012 08:31:29 +0000
-X-Env-Sender: keir.xen@gmail.com
-X-Msg-Ref: server-15.tower-21.messagelabs.com!1347784285!14843324!1
-X-Originating-IP: [74.125.82.41]
-X-SpamReason: No, hits=0.3 required=7.0 tests=ML_RADAR_SPEW_LINKS_14,
-       RCVD_BY_IP,spamassassin: 
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 18031 invoked from network); 16 Sep 2012 08:31:25 -0000
-Received: from mail-wg0-f41.google.com (HELO mail-wg0-f41.google.com)
-       (74.125.82.41)
-       by server-15.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
-       16 Sep 2012 08:31:25 -0000
-Received: by wgbds1 with SMTP id ds1so2158575wgb.2
-       for <xen-devel@lists.xen.org>; Sun, 16 Sep 2012 01:31:25 -0700 (PDT)
-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
-       h=user-agent:date:subject:from:to:cc:message-id:thread-topic
-       :thread-index:in-reply-to:mime-version:content-type
-       :content-transfer-encoding;
-       bh=IDf4hD1mhdG/EOTUdT+Y7I1E31hMeo+17ETZIxM1zA8=;
-       b=N1WQpPo0hU76BlyE2oU/gf7f8xseNTLNOcZTXudR8kVQoW4lIUGOFosQ/zN60iUds0
-       fnYVpJ9+nGxPG7EDZLt62RWjozycvp2ik6lb6j85eyfOazMm7iSG7mwqxWCXhM3h2Op4
-       BhaPX0v5BMxc++GaiMiQ5TF+An9IzEwxdEMFx7P+T11+P1R8K7N7STN/5h5jsyoHCKYq
-       tU9pEpb9W2wQ0JbIxMq3I7Pjn7IkVV362CAFtWxMBBrKtZWyM/4L+1piniwfD0sp/esW
-       lAnzaKv9U5wu5dzWxdY9ErqPa+NMmeyryrNdZAQhMzETqKTBo08/NbifQUgcA3w/0NAs
-       u1pQ==
-Received: by 10.180.98.200 with SMTP id ek8mr8836495wib.0.1347784285087;
-       Sun, 16 Sep 2012 01:31:25 -0700 (PDT)
-Received: from [192.168.1.69] (host86-183-251-65.range86-183.btcentralplus.com.
-       [86.183.251.65])
-       by mx.google.com with ESMTPS id hv8sm14704673wib.0.2012.09.16.01.31.23
-       (version=SSLv3 cipher=OTHER); Sun, 16 Sep 2012 01:31:24 -0700 (PDT)
-User-Agent: Microsoft-Entourage/12.32.0.111121
-Date: Sun, 16 Sep 2012 09:31:16 +0100
-From: Keir Fraser <keir.xen@gmail.com>
-To: Joseph Glanville <joseph.glanville@orionvm.com.au>,
-       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-Message-ID: <CC7B4CE4.3EE74%keir.xen@gmail.com>
-Thread-Topic: [Xen-devel] bug when using 4K sectors?
-Thread-Index: Ac2T5aNKxk0Xqe8BtEqgMpw2Z20LZA==
-In-Reply-To: <CAOzFzEiZopdFQuZkUcSWWre9b=NeZpJM9n2VtEoZcRo=ejYQPA@mail.gmail.com>
-Mime-version: 1.0
-Cc: James Harper <james.harper@bendigoit.com.au>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.7 required=5.0 tests=BAYES_00,FREEMAIL_FROM,
-       RCVD_IN_DNSWL_MED,RP_MATCHES_RCVD,T_DKIM_INVALID,UNPARSEABLE_RELAY
-       autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] bug when using 4K sectors?
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On 16/09/2012 08:00, "Joseph Glanville" <joseph.glanville@orionvm.com.au>
-wrote:
-
-> After reading through blkback it appears that it can only support 512
-> byte sector sizes and removing this limitation would take quite abit
-> of work.
-> It uses hard coded bitshifts pervasively to convert between number of
-> requests/pages and size of sectors etc. (that is all the >> 9
-> everywhere)
-> 
-> I am going to see what I can about working on getting it to support 4k
-> sectors too and eventually uncoupled logical/physical sizes but that
-> would take even more work as far as I can tell.
-> 
-> Being able to use 4k sectors seems like it would provide pretty
-> massive gains in performance just by being more efficient let alone
-> increasing byte aligned writes to the underlying block storage system.
-
-The PV blk transport may be based on 512-byte sectors, but the real sector
-size is communicated between blkfront and blkback via xenbus (field
-'sector-size') and blkfront is expected to only make requests that are
-multiple of, and aligned according to, that real 'sector-size'.
-
-I would kind of expect it to work, as CD-ROMs have a larger sector size (2kB
-IIRC) and we support those...
-
-Bashing your head against the PV blk transport code may be premature. ;)
-
- -- Keir
-
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<CC7B740A.3EE89%keir.xen@gmail.com> b/test/corpus/<CC7B740A.3EE89%keir.xen@gmail.com>
deleted file mode 100644 (file)
index 184d909..0000000
+++ /dev/null
@@ -1,129 +0,0 @@
-From xen-devel-bounces@lists.xen.org Sun Sep 16 12:23:54 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Sun, 16 Sep 2012 12:23:54 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TDCx5-0000eP-EW
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Sun, 16 Sep 2012 12:23:54 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TDCru-0000LD-LY; Sun, 16 Sep 2012 11:18:30 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <keir.xen@gmail.com>) id 1TDCrs-0000L8-Ls
-       for xen-devel@lists.xen.org; Sun, 16 Sep 2012 11:18:28 +0000
-Received: from [85.158.139.211:34213] by server-5.bemta-5.messagelabs.com id
-       2D/C1-30514-385B5505; Sun, 16 Sep 2012 11:18:27 +0000
-X-Env-Sender: keir.xen@gmail.com
-X-Msg-Ref: server-9.tower-206.messagelabs.com!1347794307!17232549!1
-X-Originating-IP: [74.125.82.173]
-X-SpamReason: No, hits=0.3 required=7.0 tests=ML_RADAR_SPEW_LINKS_14,
-       RCVD_BY_IP,spamassassin: 
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 25870 invoked from network); 16 Sep 2012 11:18:27 -0000
-Received: from mail-we0-f173.google.com (HELO mail-we0-f173.google.com)
-       (74.125.82.173)
-       by server-9.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
-       16 Sep 2012 11:18:27 -0000
-Received: by weyz53 with SMTP id z53so3935678wey.32
-       for <xen-devel@lists.xen.org>; Sun, 16 Sep 2012 04:18:27 -0700 (PDT)
-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113;
-       h=user-agent:date:subject:from:to:cc:message-id:thread-topic
-       :thread-index:in-reply-to:mime-version:content-type
-       :content-transfer-encoding;
-       bh=pROnYNd7qiDjtLddakQicLeKE5/G+3m6hGvwdQDW0Oc=;
-       b=HOzufG6feosp6vD3mXy28I6+QPfNXjCJowoO/wKQr2QJj4k3MXqgTt8qtF6fMepQ6o
-       XYU1JLXTQ+6rmMHN0m9RSidXAawKhupIpM9iZhaWU7FdAmezn9VqWr23TIGZU/ZEFkAf
-       Ucm2bgAhNzhTOb4yV354R7nL+DPm5gbmQxIu+XAH/WFyl/1hy/M8RR2dVK2qzRMcwVNN
-       tTVGBb9gw3kZ+HMLhbLQvmBaHjLPPY4UmBw9NBh0BZFnM6wlRbT0XhGkcqLfjhIlORMN
-       uckdJJhxKFUCjOqxlIcBPOFayslx9csgo962uMGMFyw0zdJZXnTtYyud9XVx7jXOc2cv
-       gHHQ==
-Received: by 10.216.194.223 with SMTP id m73mr4606315wen.144.1347794306972;
-       Sun, 16 Sep 2012 04:18:26 -0700 (PDT)
-Received: from [192.168.1.69] (host86-183-251-65.range86-183.btcentralplus.com.
-       [86.183.251.65])
-       by mx.google.com with ESMTPS id t8sm11156407wiy.3.2012.09.16.04.18.24
-       (version=SSLv3 cipher=OTHER); Sun, 16 Sep 2012 04:18:26 -0700 (PDT)
-User-Agent: Microsoft-Entourage/12.32.0.111121
-Date: Sun, 16 Sep 2012 12:18:18 +0100
-From: Keir Fraser <keir.xen@gmail.com>
-To: James Harper <james.harper@bendigoit.com.au>,
-       Joseph Glanville <joseph.glanville@orionvm.com.au>,
-       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-Message-ID: <CC7B740A.3EE89%keir.xen@gmail.com>
-Thread-Topic: [Xen-devel] bug when using 4K sectors?
-Thread-Index: Ac15XJ9mOEWrLpZlQnymzekcRdWXAQR9LPqAABwcDwAAAjyqAAHumRqAAAMtwQAAGTSEYAABlUzV
-In-Reply-To: <6035A0D088A63A46850C3988ED045A4B29B96FA1@BITCOM1.int.sbss.com.au>
-Mime-version: 1.0
-Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.7 required=5.0 tests=BAYES_00,FREEMAIL_FROM,
-       RCVD_IN_DNSWL_MED,RP_MATCHES_RCVD,T_DKIM_INVALID,UNPARSEABLE_RELAY
-       autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] bug when using 4K sectors?
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On 16/09/2012 11:37, "James Harper" <james.harper@bendigoit.com.au> wrote:
-
->>> Being able to use 4k sectors seems like it would provide pretty
->>> massive gains in performance just by being more efficient let alone
->>> increasing byte aligned writes to the underlying block storage system.
->> 
->> The PV blk transport may be based on 512-byte sectors, but the real sector
->> size is communicated between blkfront and blkback via xenbus (field
->> 'sector-size') and blkfront is expected to only make requests that are
->> multiple of, and aligned according to, that real 'sector-size'.
->> 
->> I would kind of expect it to work, as CD-ROMs have a larger sector size (2kB
->> IIRC) and we support those...
->> 
->> Bashing your head against the PV blk transport code may be premature. ;)
->> 
-> 
-> So a sector-size of 4096 would basically be a 512e device, allowing the
-> underlying OS to communicate in 512 byte blocks but knowing that things will
-> work best in 4096 byte sized transfers aligned to multiples of 4096 bytes,
-> right?
-
-My recollection is that blkfront is required to submit only appropriately
--sized and -aligned requests; i.e. it's not merely advisory. I remember this
-got added for CD-ROM support and if they had worked without this, I'm sure
-we wouldn't have bothered!
-
- -- Keir
-
-> James
-> 
-
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<D42A53061A72429CA5138077DF2BDC0C@LarryE6400> b/test/corpus/<D42A53061A72429CA5138077DF2BDC0C@LarryE6400>
deleted file mode 100644 (file)
index 83dadaa..0000000
+++ /dev/null
@@ -1,123 +0,0 @@
-From xen-devel-bounces@lists.xen.org Sat Jul 21 19:07:31 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Sat, 21 Jul 2012 19:07:31 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1Sse5Q-0007mc-SZ
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Sat, 21 Jul 2012 19:07:31 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1Sse0T-0007Yi-59; Sat, 21 Jul 2012 18:02:21 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <lmw@satx.rr.com>) id 1Sse0Q-0007YZ-WF
-       for xen-devel@lists.xen.org; Sat, 21 Jul 2012 18:02:19 +0000
-Received: from [85.158.138.51:3288] by server-4.bemta-3.messagelabs.com id
-       43/C9-29069-AAEEA005; Sat, 21 Jul 2012 18:02:18 +0000
-X-Env-Sender: lmw@satx.rr.com
-X-Msg-Ref: server-8.tower-174.messagelabs.com!1342893737!28062593!1
-X-Originating-IP: [75.180.132.120]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       QmFkIElQOiA3NS4xODAuMTMyLjEyMCA9PiA4OTE1OA==\n,sa_preprocessor: 
-       QmFkIElQOiA3NS4xODAuMTMyLjEyMCA9PiA4OTE1OA==\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.2; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 13653 invoked from network); 21 Jul 2012 18:02:17 -0000
-Received: from cdptpa-omtalb.mail.rr.com (HELO cdptpa-omtalb.mail.rr.com)
-       (75.180.132.120) by server-8.tower-174.messagelabs.com with SMTP;
-       21 Jul 2012 18:02:17 -0000
-X-Authority-Analysis: v=2.0 cv=OtDNOlDt c=1 sm=0 a=r1aGfrPin9q3IVjnGKu9DA==:17
-       a=mkDZTsCubmwA:10 a=n0q2T-vHkU8A:10 a=05ChyHeVI94A:10
-       a=kj9zAlcOel0A:10 a=ayC55rCoAAAA:8 a=P3U7S8cuHsd9lTPnzQwA:9
-       a=CjuIK1q_8ugA:10 a=r1aGfrPin9q3IVjnGKu9DA==:117
-X-Cloudmark-Score: 0
-X-Originating-IP: 66.69.0.49
-Received: from [66.69.0.49] ([66.69.0.49:51518] helo=LarryE6400)
-       by cdptpa-oedge01.mail.rr.com (envelope-from <lmw@satx.rr.com>)
-       (ecelerity 2.2.3.46 r()) with ESMTP
-       id CE/56-29356-8AEEA005; Sat, 21 Jul 2012 18:02:16 +0000
-From: "Larry White" <lmw@satx.rr.com>
-To: "'Konrad Rzeszutek Wilk'" <konrad.wilk@oracle.com>,
-       <xen-devel@lists.xen.org>
-References: <A8575D3216834DFCAA86F5B2B3546613@LarryE6400>
-       <6035A0D088A63A46850C3988ED045A4B299B8A95@BITCOM1.int.sbss.com.au>
-       <1E8F546AD8E64BF1B2D68D24F3BD4050@LarryE6400>
-       <6035A0D088A63A46850C3988ED045A4B299B8F9D@BITCOM1.int.sbss.com.au>
-In-Reply-To: 
-Date: Sat, 21 Jul 2012 13:02:11 -0500
-Message-ID: <D42A53061A72429CA5138077DF2BDC0C@LarryE6400>
-MIME-Version: 1.0
-X-Mailer: Microsoft Office Outlook 11
-X-MimeOLE: Produced By Microsoft MimeOLE V6.1.7601.17609
-Thread-Index: Ac1m2/yuJJyO+ROQQxKMLV1mGoHskAABhbjAAABDEwAAAe6rkAAfoGxAAABgKpA=
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] DomU to Dom0 Communication in Xen HVM?
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-
-Hi Konrad,
-
->On Tue, Jul 17, 2012 at 11:22:28PM -0500, LarryWhite wrote:
->I am new to Xen and want to provide simple communication between my DomU
->and
->Dom0 environments.  I just need to be able to pass a few bytes of
->information back and forth between DomU and Dom0 while using some form of
->event management to know when an update occurs so I can act on it.  At
->first, it appeared that using XenBus and XenStore might be the right
->solution for this.  However, after looking over the documentation, it seems
->that XenBus and XenStore should only be used in a PVM Xen configuration,
->not
->a HVM model like mine.  Is this true?  
-
->>It can be done in HVM.
-
->What would be the best way to accomplish this?  Is there any sample code
->which demonstrates this for a HVM Xen environment?
-
->>libvchan is your best bet.
-
-Have been looking at libvchan as you suggested.  An additional bit of
-information that I left out on my original post was that I would like to do
-this in a "one to many" environment.  In other words, I want to support data
-transfer from dom0 to a number of different domU's.  Would an approach such
-as libvchan allow for this or would I need a separate process in dom0 for
-each of the different domU channels?  I was really hoping to have a single
-process running in dom0 to manage this. 
-
-Thanks,
-Larry
-
-
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<E1T9C4K-0003Su-2p@mariner.uk.xensource.com> b/test/corpus/<E1T9C4K-0003Su-2p@mariner.uk.xensource.com>
deleted file mode 100644 (file)
index 31b627c..0000000
+++ /dev/null
@@ -1,196 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Sep 05 10:45:15 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 05 Sep 2012 10:45:15 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T9CAa-00023w-PL
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 05 Sep 2012 10:45:15 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T9C6B-0007R2-QN; Wed, 05 Sep 2012 09:40:39 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Ian.Jackson@eu.citrix.com>) id 1T9C6A-0007Qt-Re
-       for xen-devel@lists.xen.org; Wed, 05 Sep 2012 09:40:39 +0000
-Received: from [85.158.139.83:61115] by server-11.bemta-5.messagelabs.com id
-       1F/C8-24658-51E17405; Wed, 05 Sep 2012 09:40:37 +0000
-X-Env-Sender: Ian.Jackson@eu.citrix.com
-X-Msg-Ref: server-13.tower-182.messagelabs.com!1346837936!28122186!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTE5ODY=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 19268 invoked from network); 5 Sep 2012 09:38:57 -0000
-Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-13.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
-       5 Sep 2012 09:38:57 -0000
-X-IronPort-AV: E=Sophos;i="4.80,372,1344211200"; d="scan'208";a="14353051"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       05 Sep 2012 09:38:44 +0000
-Received: from norwich.cam.xci-test.com (10.80.248.129) by
-       smtprelay.citrix.com (10.30.203.162) with Microsoft SMTP Server id
-       8.3.279.1; Wed, 5 Sep 2012 10:38:44 +0100
-Received: from mariner.cam.xci-test.com        ([10.80.2.22]
-       helo=mariner.uk.xensource.com ident=Debian-exim)        by
-       norwich.cam.xci-test.com
-       with esmtp (Exim 4.72)  (envelope-from <Ian.Jackson@eu.citrix.com>)     id
-       1T9C4K-0001aP-6p; Wed, 05 Sep 2012 09:38:44 +0000
-Received: from iwj by mariner.uk.xensource.com with local (Exim 4.72)
-       (envelope-from <Ian.Jackson@eu.citrix.com>)     id 1T9C4K-0003Su-2p;
-       Wed, 05 Sep 2012 10:38:44 +0100
-Date: Wed, 5 Sep 2012 10:38:44 +0100
-Message-ID: <E1T9C4K-0003Su-2p@mariner.uk.xensource.com>
-Content-Type: multipart/mixed; boundary="=separator"; charset="utf-8"
-MIME-Version: 1.0
-X-Mailer: MIME-tools 5.428 (Entity 5.428)
-To: xen-announce@lists.xen.org, xen-devel@lists.xen.org,
-       xen-users@lists.xen.org, oss-security@lists.openwall.com
-From: Xen.org security team <security@xen.org>
-Cc: "Xen.org security team" <security@xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: [Xen-devel] Xen Security Advisory 12 (CVE-2012-3494) - hypercall
- set_debugreg vulnerability
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
---=separator
-Content-Type: text/plain; charset="utf-8"
-Content-Disposition: inline
-Content-Transfer-Encoding: 7bit
-
------BEGIN PGP SIGNED MESSAGE-----
-Hash: SHA1
-
-            Xen Security Advisory CVE-2012-3494 / XSA-12
-                             version 3
-
-             hypercall set_debugreg vulnerability
-
-UPDATES IN VERSION 3
-====================
-
-Public release.
-
-ISSUE DESCRIPTION
-=================
-
-set_debugreg allows writes to reserved bits of the DR7 debug control
-register on x86-64.
-
-IMPACT
-======
-
-A malicious guest can cause the host to crash, leading to a DoS.
-
-If the vulnerable hypervisor is run on future hardware, the impact of
-the vulnerability might be widened depending on the future assignment
-of the currently-reserved debug register bits.
-
-VULNERABLE SYSTEMS
-==================
-
-All systems running 64-bit paravirtualised guests.
-
-The vulnerability dates back to at least Xen 4.0.  4.0, 4.1, the 4.2
-RCs, and xen-unstable.hg are all vulnerable.
-
-MITIGATION
-==========
-
-This issue can be mitigated by ensuring (inside the guest) that the
-kernel is trustworthy, or by running only 32-bit or HVM guests.
-
-RESOLUTION
-==========
-
-Applying the appropriate attached patch will resolve the issue.
-
-PATCH INFORMATION
-=================
-
-The attached patch resolves this issue:
-
- Xen unstable, 4.1 and 4.0             xsa12-all.patch
-
-$ sha256sum xsa12-all.patch
-2415ee133e28b1c848c5ae3ce766cc2a67009bad8d026879030a6511b85dbc13  xsa12-all.patch
------BEGIN PGP SIGNATURE-----
-Version: GnuPG v1.4.10 (GNU/Linux)
-
-iQEcBAEBAgAGBQJQRx0+AAoJEIP+FMlX6CvZnMAH/0fcm9nfiChokydCyqXgdKtJ
-U2NqeqKzEP6emwLE+cvc+2EBP40fiBXsNATVdXc6Vx15eyzSMfJD3ndYF9OaKMVH
-MVP6KU/tyK1G/9WgQK9PHBj/Kzp8hwrY0Qw45od7z+R7XMGieLH9l1O1xwkNCYDw
-R8Xy2GI9IqsXLNpwy3BFYSyGYIX9o8/aBx4ZxHCV8H0OYUWv5hDGZZVXPDqGm11c
-N+qmUaPV2QlW8Aoww1SiwW5E+/CpyJT5+awEMgZ4IOHPbCBXJfyXbw4aMM2q5Soe
-mStqvPKL4H10SahaygdjxO+e4NqCHao0rYUXXpUr+aikIXvEearukp3FezR5IUE=
-=/LmZ
------END PGP SIGNATURE-----
-
---=separator
-Content-Type: application/octet-stream; name="xsa12-all.patch"
-Content-Disposition: attachment; filename="xsa12-all.patch"
-Content-Transfer-Encoding: base64
-
-eGVuOiBwcmV2ZW50IGEgNjQgYml0IGd1ZXN0IHNldHRpbmcgcmVzZXJ2ZWQg
-Yml0cyBpbiBEUjcKClRoZSB1cHBlciAzMiBiaXRzIG9mIHRoaXMgcmVnaXN0
-ZXIgYXJlIHJlc2VydmVkIGFuZCBzaG91bGQgYmUgd3JpdHRlbiBhcwp6ZXJv
-LgoKVGhpcyBpcyBYU0EtMTIgLyBDVkUtMjAxMi0zNDk0CgpTaWduZWQtb2Zm
-LWJ5OiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+ClJldmlld2Vk
-LWJ5OiBJYW4gQ2FtcGJlbGwgPGlhbi5jYW1wYmVsbEBjaXRyaXguY29tPgoK
-ZGlmZiAtciAzNTNiYzA4MDFiMTEgeGVuL2luY2x1ZGUvYXNtLXg4Ni9kZWJ1
-Z3JlZy5oCi0tLSBhL3hlbi9pbmNsdWRlL2FzbS14ODYvZGVidWdyZWcuaAlN
-b24gQXVnIDA2IDEyOjI4OjAzIDIwMTIgKzAxMDAKKysrIGIveGVuL2luY2x1
-ZGUvYXNtLXg4Ni9kZWJ1Z3JlZy5oCVdlZCBBdWcgMTUgMTI6MDA6MjEgMjAx
-MiArMDEwMApAQCAtNTgsNyArNTgsNyBAQAogICAgV2UgY2FuIHNsb3cgdGhl
-IGluc3RydWN0aW9uIHBpcGVsaW5lIGZvciBpbnN0cnVjdGlvbnMgY29taW5n
-IHZpYSB0aGUKICAgIGdkdCBvciB0aGUgbGR0IGlmIHdlIHdhbnQgdG8uICBJ
-IGFtIG5vdCBzdXJlIHdoeSB0aGlzIGlzIGFuIGFkdmFudGFnZSAqLwogCi0j
-ZGVmaW5lIERSX0NPTlRST0xfUkVTRVJWRURfWkVSTyAoMHgwMDAwZDgwMHVs
-KSAvKiBSZXNlcnZlZCwgcmVhZCBhcyB6ZXJvICovCisjZGVmaW5lIERSX0NP
-TlRST0xfUkVTRVJWRURfWkVSTyAofjB4ZmZmZjI3ZmZ1bCkgLyogUmVzZXJ2
-ZWQsIHJlYWQgYXMgemVybyAqLwogI2RlZmluZSBEUl9DT05UUk9MX1JFU0VS
-VkVEX09ORSAgKDB4MDAwMDA0MDB1bCkgLyogUmVzZXJ2ZWQsIHJlYWQgYXMg
-b25lICovCiAjZGVmaW5lIERSX0xPQ0FMX0VYQUNUX0VOQUJMRSAgICAoMHgw
-MDAwMDEwMHVsKSAvKiBMb2NhbCBleGFjdCBlbmFibGUgKi8KICNkZWZpbmUg
-RFJfR0xPQkFMX0VYQUNUX0VOQUJMRSAgICgweDAwMDAwMjAwdWwpIC8qIEds
-b2JhbCBleGFjdCBlbmFibGUgKi8K
-
---=separator
-Content-Type: text/plain; charset="us-ascii"
-MIME-Version: 1.0
-Content-Transfer-Encoding: 7bit
-Content-Disposition: inline
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
---=separator--
-
-
diff --git a/test/corpus/<alpine.DEB.2.00.1205281439080.26786@kaball-desktop> b/test/corpus/<alpine.DEB.2.00.1205281439080.26786@kaball-desktop>
deleted file mode 100644 (file)
index 75f30c4..0000000
+++ /dev/null
@@ -1,207 +0,0 @@
-From xen-devel-bounces@lists.xen.org Tue May 29 11:42:51 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Tue, 29 May 2012 11:42:51 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SZJt0-00033T-UO
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 29 May 2012 11:42:51 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SZJp5-0005Tk-Ow; Tue, 29 May 2012 10:38:43 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1SZJp3-0005Tf-Jv
-       for xen-devel@lists.xensource.com; Tue, 29 May 2012 10:38:41 +0000
-Received: from [85.158.139.83:15985] by server-11.bemta-5.messagelabs.com id
-       7A/E7-12711-037A4CF4; Tue, 29 May 2012 10:38:40 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-7.tower-182.messagelabs.com!1338287919!26944363!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiA5OTk2Nw==\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 24347 invoked from network); 29 May 2012 10:38:40 -0000
-Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-7.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
-       29 May 2012 10:38:40 -0000
-X-IronPort-AV: E=Sophos;i="4.75,677,1330905600"; d="scan'208";a="12708694"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       29 May 2012 10:38:35 +0000
-Received: from kaball.uk.xensource.com (10.80.2.59) by
-       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
-       8.3.213.0; Tue, 29 May 2012 11:38:35 +0100
-Date: Tue, 29 May 2012 11:38:30 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-X-Sender: sstabellini@kaball-desktop
-To: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>
-Message-ID: <alpine.DEB.2.00.1205281439080.26786@kaball-desktop>
-User-Agent: Alpine 2.00 (DEB 1167 2008-08-23)
-MIME-Version: 1.0
-Cc: Ian Jackson <Ian.Jackson@eu.citrix.com>,
-       Ian Campbell <Ian.Campbell@citrix.com>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: [Xen-devel] [PATCH v8 0/11] qdisk local attach
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-Hi all,
-this patch implements local_attach support for QDISK: that means that
-you can use qcow2 as disk format for your PV guests disks and use
-pygrub to retrieve the kernel and initrd in dom0.
-
-The idea is that we start a QEMU instance at boot time to listen to
-local_attach requests. When libxl_device_disk_local_attach is called on
-a QDISK images, libxl sets up a backend/frontend pair in dom0 for the disk
-so that blkfront in dom0 will create a new xvd device for it.
-Then pygrub can be pointed at this device to retrieve kernel and
-initrd.
-
-
-Changes in v8:
-- keep libxl__device_disk_local_attach/detach in libxl.c;
-- free pdev_path and script in local_detach;
-- use libxl__strdup instead of strdup.
-
-
-Changes in v7:
-- rename tmpdisk to localdisk;
-- add a comment in libxl__bootloader_state about localdisk;
-- keep libxl__device_from_disk in libxl.c;
-- implement libxl__device_disk_add in libxl.c;
-- remove the upper bound in libxl__devid_to_localdev and document why.
-
-
-Changes in v6:
-- rebase on "nstore: rename public xenstore headers";
-- new patch: "libxl_string_to_backend: add qdisk";
-- new patch: "main_blockdetach: destroy the disk on successful removal";
-- split "libxl: introduce libxl__device_disk_add" in two patches;
-- return error in case pdev_path is NULL;
-- libxl__device_disk_local_attach update the new disk, the caller
-allocates it;
-- remove \n from logs;
-- document blkdev_start;
-- use libxl__strdup to allocate blkdev_start; 
-- more comments in libxl__devid_to_localdev;
-- inline GCSPRINTF;
-- introduce ret for xs_* error codes.
-
-
-Changes in v5:
-- remove _hidden from the libxl_device_disk_local_attach/detach
-  implementation;
-- libxl__device_disk_local_attach: rename disk to in_disk;
-- libxl__device_disk_local_attach: rename tmpdisk to disk;
-- libxl__device_disk_local_attach: copy disk to new_disk only on success;
-- libxl__device_disk_local_attach: remove check on libxl__zalloc success.
-- rename libxl__device_generic_add_t to libxl__device_generic_add;
-- change the type of the blkdev_start parameter to
-  libxl__device_disk_local_attach to const char *;
-- remove domid paramter to libxl__alloc_vdev (assume
-  LIBXL_TOOLSTACK_DOMID);
-- remove scaling limit from libxl__alloc_vdev;
-- libxl__device_disk_local_attach: replace LIBXL__LOG with LOG;
-- libxl__device_disk_local_attach: unify error paths.
-
-
-Changes in v4:
-- split the first patch into 2 patches: the first is a simple move, the
-  second one adds a new parameter;
-- libxl__device_generic_add: do not end the transaction is the caller
-  provided it;
-- libxl__device_generic_add: fix success exit path;
-- pass blkdev_start in libxl_domain_build_info;
-- rename libxl__devid_to_vdev to libxl__devid_to_localdev;
-- introduce upper bound for encode_disk_name;
-- improve error handling and exit paths in libxl__alloc_vdev and
-  libxl__device_disk_local_attach.
-
-
-Changes in v3:
-- libxl__device_disk_local_attach: wait for the backend to be
-"connected" before returning.
-
-
-Changes in v2:
-- make libxl_device_disk_local_(de)attach internal functions;
-- allocate the new disk in libxl_device_disk_local_attatch on the GC;
-- remove libxl__device_generic_add_t, add a transaction parameter to
-libxl__device_generic_add instead;
-- add a new patch to introduce a blkdev_start option to xl.conf;
-- reimplement libxl__alloc_vdev checking for the frontend path and
-starting from blkdev_start;
-- introduce a Linux specific libxl__devid_to_vdev function based on last
-Jan's patch to blkfront.
-
-
-Stefano Stabellini (11):
-      libxl: make libxl_device_disk_local_attach/detach internal functions
-      libxl: libxl__device_disk_local_attach return a new libxl_device_disk
-      libxl: add a transaction parameter to libxl__device_generic_add
-      libxl: export libxl__device_from_disk
-      libxl: introduce libxl__device_disk_add
-      xl/libxl: add a blkdev_start parameter
-      libxl: introduce libxl__alloc_vdev
-      xl/libxl: implement QDISK libxl_device_disk_local_attach
-      libxl__device_disk_local_attach: wait for state "connected"
-      libxl_string_to_backend: add qdisk
-      main_blockdetach: destroy the disk on successful removal
- docs/man/xl.conf.pod.5                          |    6 +
- tools/examples/xl.conf                          |    3 +
- tools/hotplug/Linux/init.d/sysconfig.xencommons |    3 +
- tools/hotplug/Linux/init.d/xencommons           |    3 +
- tools/libxl/libxl.c                             |  163 ++++++++++++++++++-----
- tools/libxl/libxl.h                             |    7 -
- tools/libxl/libxl_bootloader.c                  |    5 +-
- tools/libxl/libxl_create.c                      |    3 +
- tools/libxl/libxl_device.c                      |   17 ++-
- tools/libxl/libxl_internal.h                    |   32 ++++-
- tools/libxl/libxl_linux.c                       |   52 +++++++
- tools/libxl/libxl_netbsd.c                      |    6 +
- tools/libxl/libxl_pci.c                         |    2 +-
- tools/libxl/libxl_types.idl                     |    1 +
- tools/libxl/libxl_utils.c                       |    2 +
- tools/libxl/xl.c                                |    3 +
- tools/libxl/xl.h                                |    1 +
- tools/libxl/xl_cmdimpl.c                        |    5 +-
- 18 files changed, 264 insertions(+), 50 deletions(-)
-
-
-Cheers,
-
-Stefano
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<alpine.DEB.2.00.1205291511560.26786@kaball-desktop> b/test/corpus/<alpine.DEB.2.00.1205291511560.26786@kaball-desktop>
deleted file mode 100644 (file)
index 30252e2..0000000
+++ /dev/null
@@ -1,185 +0,0 @@
-From xen-devel-bounces@lists.xen.org Tue May 29 15:34:20 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Tue, 29 May 2012 15:34:20 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SZNV0-0003lR-4g
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 29 May 2012 15:34:20 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SZNQn-0004UP-P4; Tue, 29 May 2012 14:29:53 +0000
-Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1SZNQl-0004UF-S2
-       for xen-devel@lists.xensource.com; Tue, 29 May 2012 14:29:52 +0000
-Received: from [193.109.254.147:53638] by server-7.bemta-14.messagelabs.com id
-       7F/2E-20336-E5DD4CF4; Tue, 29 May 2012 14:29:50 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-16.tower-27.messagelabs.com!1338301790!11623118!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiA5OTk2Nw==\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 4616 invoked from network); 29 May 2012 14:29:50 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-16.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
-       29 May 2012 14:29:50 -0000
-X-IronPort-AV: E=Sophos;i="4.75,677,1330905600"; d="scan'208";a="12717572"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       29 May 2012 14:29:49 +0000
-Received: from kaball.uk.xensource.com (10.80.2.59) by
-       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
-       8.3.213.0; Tue, 29 May 2012 15:29:49 +0100
-Date: Tue, 29 May 2012 15:29:43 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-X-Sender: sstabellini@kaball-desktop
-To: Ian Campbell <Ian.Campbell@citrix.com>
-In-Reply-To: <1338300632.14158.115.camel@zakaz.uk.xensource.com>
-Message-ID: <alpine.DEB.2.00.1205291511560.26786@kaball-desktop>
-References: <alpine.DEB.2.00.1205281439080.26786@kaball-desktop>
-       <1338287956-24691-2-git-send-email-stefano.stabellini@eu.citrix.com>
-       <1338300632.14158.115.camel@zakaz.uk.xensource.com>
-User-Agent: Alpine 2.00 (DEB 1167 2008-08-23)
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
-       Ian Jackson <Ian.Jackson@eu.citrix.com>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH v8 02/11] libxl:
- libxl__device_disk_local_attach return a new libxl_device_disk
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Tue, 29 May 2012, Ian Campbell wrote:
-> On Tue, 2012-05-29 at 11:39 +0100, Stefano Stabellini wrote:
-> > Introduce a new libxl_device_disk* parameter to
-> > libxl__device_disk_local_attach, the parameter is allocated by the
-> > caller. libxl__device_disk_local_attach is going to fill the new disk
-> > with informations about the new locally attached disk.  The new
-> > libxl_device_disk should be passed to libxl_device_disk_local_detach
-> > afterwards.
-> > 
-> > Changes in v8:
-> > - free pdev_path and script in local_detach;
-> > - use libxl__strdup instead of strdup.
-> > 
-> > Changes in v7:
-> > - rename tmpdisk to localdisk;
-> > - add a comment in libxl__bootloader_state about localdisk.
-> > 
-> > Changes in v6:
-> > - return error in case pdev_path is NULL;
-> > - libxl__device_disk_local_attach update the new disk, the caller
-> > allocates it;
-> > - remove \n from logs.
-> > 
-> > Changes in v5:
-> > - rename disk to in_disk;
-> > - rename tmpdisk to disk;
-> > - copy disk to new_disk only on success;
-> > - remove check on libxl__zalloc success.
-> > 
-> > Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-> > ---
-> >  tools/libxl/libxl.c            |   18 +++++++++++++++---
-> >  tools/libxl/libxl_bootloader.c |    4 ++--
-> >  tools/libxl/libxl_internal.h   |   10 +++++++++-
-> >  3 files changed, 26 insertions(+), 6 deletions(-)
-> > 
-> > diff --git a/tools/libxl/libxl.c b/tools/libxl/libxl.c
-> > index cd870c4..762e72a 100644
-> > --- a/tools/libxl/libxl.c
-> > +++ b/tools/libxl/libxl.c
-> > @@ -1735,13 +1735,24 @@ out:
-> >      return ret;
-> >  }
-> >  
-> > -char * libxl__device_disk_local_attach(libxl__gc *gc, libxl_device_disk *disk)
-> > +char * libxl__device_disk_local_attach(libxl__gc *gc,
-> > +        const libxl_device_disk *in_disk,
-> > +        libxl_device_disk *disk)
-> 
-> Why the weird indent?
-
-Uhm.. I don't know, I think it was just the default on vim.
-
-
-> >  {
-> >      libxl_ctx *ctx = gc->owner;
-> >      char *dev = NULL;
-> >      char *ret = NULL;
-> >      int rc;
-> >  
-> > +    if (in_disk->pdev_path == NULL)
-> > +        return NULL;
-> > +
-> > +    memcpy(disk, in_disk, sizeof(libxl_device_disk));
-> > +    disk->pdev_path = libxl__strdup(NULL, in_disk->pdev_path);
-> > +    if (in_disk->script != NULL)
-> > +        disk->script = libxl__strdup(NULL, in_disk->script);
-> > +    disk->vdev = NULL;
-> > +
-> >      rc = libxl__device_disk_setdefault(gc, disk);
-> >      if (rc) goto out;
-> >  
-> > @@ -1779,8 +1790,7 @@ char * libxl__device_disk_local_attach(libxl__gc *gc, libxl_device_disk *disk)
-> >                             " attach a qdisk image if the format is not raw");
-> >                  break;
-> >              }
-> > -            LIBXL__LOG(ctx, LIBXL__LOG_DEBUG, "locally attaching qdisk %s\n",
-> > -                       disk->pdev_path);
-> > +            LOG(DEBUG, "locally attaching qdisk %s", in_disk->pdev_path);
-> >              dev = disk->pdev_path;
-> >              break;
-> >          default:
-> > @@ -1804,6 +1814,8 @@ int libxl__device_disk_local_detach(libxl__gc *gc, libxl_device_disk *disk)
-> >       * needed by the soon to be started domain and do nothing.
-> >       */
-> >  
-> > +    free(disk->pdev_path);
-> > +    free(disk->script);
-> 
-> This is open coding libxl_device_disk_dispose(disk) but missed the vdev
-> member, is that deliberate?
-
-I think it is a mistake: all these strings used to be allocated on the
-gc, on previous versions of the series. However meanwhile the event
-series went in, changing completely libxl__bootloader_run (that is the
-caller of libxl__device_disk_local_attach).
-Allocating stuff on the gc is not correct anymore, so now they need to
-be explicitly freed. I think I should call libxl_device_disk_dispose
-here and strdup in libxl__device_disk_local_attach to make sure vdev is
-not on the gc.
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<alpine.DEB.2.00.1205291540590.26786@kaball-desktop> b/test/corpus/<alpine.DEB.2.00.1205291540590.26786@kaball-desktop>
deleted file mode 100644 (file)
index 9237148..0000000
+++ /dev/null
@@ -1,319 +0,0 @@
-From xen-devel-bounces@lists.xen.org Tue May 29 15:53:20 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Tue, 29 May 2012 15:53:20 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SZNnO-0003qO-CZ
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 29 May 2012 15:53:20 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SZNj1-0005oE-UT; Tue, 29 May 2012 14:48:43 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1SZNj0-0005o4-3h
-       for xen-devel@lists.xensource.com; Tue, 29 May 2012 14:48:42 +0000
-Received: from [85.158.138.51:21031] by server-10.bemta-3.messagelabs.com id
-       87/09-01101-9C1E4CF4; Tue, 29 May 2012 14:48:41 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-4.tower-174.messagelabs.com!1338302919!29680189!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiA5OTk2Nw==\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 20242 invoked from network); 29 May 2012 14:48:40 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-4.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
-       29 May 2012 14:48:40 -0000
-X-IronPort-AV: E=Sophos;i="4.75,677,1330905600"; d="scan'208";a="12718207"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       29 May 2012 14:48:39 +0000
-Received: from kaball.uk.xensource.com (10.80.2.59) by
-       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
-       8.3.213.0; Tue, 29 May 2012 15:48:39 +0100
-Date: Tue, 29 May 2012 15:48:34 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-X-Sender: sstabellini@kaball-desktop
-To: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-In-Reply-To: <alpine.DEB.2.00.1205291511560.26786@kaball-desktop>
-Message-ID: <alpine.DEB.2.00.1205291540590.26786@kaball-desktop>
-References: <alpine.DEB.2.00.1205281439080.26786@kaball-desktop>
-       <1338287956-24691-2-git-send-email-stefano.stabellini@eu.citrix.com>
-       <1338300632.14158.115.camel@zakaz.uk.xensource.com>
-       <alpine.DEB.2.00.1205291511560.26786@kaball-desktop>
-User-Agent: Alpine 2.00 (DEB 1167 2008-08-23)
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
-       Ian Jackson <Ian.Jackson@eu.citrix.com>,
-       Ian Campbell <Ian.Campbell@citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH v8 02/11] libxl:
- libxl__device_disk_local_attach return a new libxl_device_disk
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Tue, 29 May 2012, Stefano Stabellini wrote:
-> On Tue, 29 May 2012, Ian Campbell wrote:
-> > On Tue, 2012-05-29 at 11:39 +0100, Stefano Stabellini wrote:
-> > > Introduce a new libxl_device_disk* parameter to
-> > > libxl__device_disk_local_attach, the parameter is allocated by the
-> > > caller. libxl__device_disk_local_attach is going to fill the new disk
-> > > with informations about the new locally attached disk.  The new
-> > > libxl_device_disk should be passed to libxl_device_disk_local_detach
-> > > afterwards.
-> > > 
-> > > Changes in v8:
-> > > - free pdev_path and script in local_detach;
-> > > - use libxl__strdup instead of strdup.
-> > > 
-> > > Changes in v7:
-> > > - rename tmpdisk to localdisk;
-> > > - add a comment in libxl__bootloader_state about localdisk.
-> > > 
-> > > Changes in v6:
-> > > - return error in case pdev_path is NULL;
-> > > - libxl__device_disk_local_attach update the new disk, the caller
-> > > allocates it;
-> > > - remove \n from logs.
-> > > 
-> > > Changes in v5:
-> > > - rename disk to in_disk;
-> > > - rename tmpdisk to disk;
-> > > - copy disk to new_disk only on success;
-> > > - remove check on libxl__zalloc success.
-> > > 
-> > > Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-> > > ---
-> > >  tools/libxl/libxl.c            |   18 +++++++++++++++---
-> > >  tools/libxl/libxl_bootloader.c |    4 ++--
-> > >  tools/libxl/libxl_internal.h   |   10 +++++++++-
-> > >  3 files changed, 26 insertions(+), 6 deletions(-)
-> > > 
-> > > diff --git a/tools/libxl/libxl.c b/tools/libxl/libxl.c
-> > > index cd870c4..762e72a 100644
-> > > --- a/tools/libxl/libxl.c
-> > > +++ b/tools/libxl/libxl.c
-> > > @@ -1735,13 +1735,24 @@ out:
-> > >      return ret;
-> > >  }
-> > >  
-> > > -char * libxl__device_disk_local_attach(libxl__gc *gc, libxl_device_disk *disk)
-> > > +char * libxl__device_disk_local_attach(libxl__gc *gc,
-> > > +        const libxl_device_disk *in_disk,
-> > > +        libxl_device_disk *disk)
-> > 
-> > Why the weird indent?
-> 
-> Uhm.. I don't know, I think it was just the default on vim.
-> 
-> 
-> > >  {
-> > >      libxl_ctx *ctx = gc->owner;
-> > >      char *dev = NULL;
-> > >      char *ret = NULL;
-> > >      int rc;
-> > >  
-> > > +    if (in_disk->pdev_path == NULL)
-> > > +        return NULL;
-> > > +
-> > > +    memcpy(disk, in_disk, sizeof(libxl_device_disk));
-> > > +    disk->pdev_path = libxl__strdup(NULL, in_disk->pdev_path);
-> > > +    if (in_disk->script != NULL)
-> > > +        disk->script = libxl__strdup(NULL, in_disk->script);
-> > > +    disk->vdev = NULL;
-> > > +
-> > >      rc = libxl__device_disk_setdefault(gc, disk);
-> > >      if (rc) goto out;
-> > >  
-> > > @@ -1779,8 +1790,7 @@ char * libxl__device_disk_local_attach(libxl__gc *gc, libxl_device_disk *disk)
-> > >                             " attach a qdisk image if the format is not raw");
-> > >                  break;
-> > >              }
-> > > -            LIBXL__LOG(ctx, LIBXL__LOG_DEBUG, "locally attaching qdisk %s\n",
-> > > -                       disk->pdev_path);
-> > > +            LOG(DEBUG, "locally attaching qdisk %s", in_disk->pdev_path);
-> > >              dev = disk->pdev_path;
-> > >              break;
-> > >          default:
-> > > @@ -1804,6 +1814,8 @@ int libxl__device_disk_local_detach(libxl__gc *gc, libxl_device_disk *disk)
-> > >       * needed by the soon to be started domain and do nothing.
-> > >       */
-> > >  
-> > > +    free(disk->pdev_path);
-> > > +    free(disk->script);
-> > 
-> > This is open coding libxl_device_disk_dispose(disk) but missed the vdev
-> > member, is that deliberate?
-> 
-> I think it is a mistake: all these strings used to be allocated on the
-> gc, on previous versions of the series. However meanwhile the event
-> series went in, changing completely libxl__bootloader_run (that is the
-> caller of libxl__device_disk_local_attach).
-> Allocating stuff on the gc is not correct anymore, so now they need to
-> be explicitly freed. I think I should call libxl_device_disk_dispose
-> here and strdup in libxl__device_disk_local_attach to make sure vdev is
-> not on the gc.
-
-The appended patch switches back the behavior to what we had in v5 and
-before: pdev_path, script, and vdev are all allocated on the gc,
-therefore freed automatically.
-
-
----
-
-libxl: libxl__device_disk_local_attach return a new libxl_device_disk
-
-Introduce a new libxl_device_disk* parameter to
-libxl__device_disk_local_attach, the parameter is allocated by the
-caller. libxl__device_disk_local_attach is going to fill the new disk
-with informations about the new locally attached disk.  The new
-libxl_device_disk should be passed to libxl_device_disk_local_detach
-afterwards.
-
-Changes in v9:
-- allocate pdev_path, script, and vdev on the gc.
-
-Changes in v8:
-- free pdev_path and script in local_detach;
-- use libxl__strdup instead of strdup.
-
-Changes in v7:
-- rename tmpdisk to localdisk;
-- add a comment in libxl__bootloader_state about localdisk.
-
-Changes in v6:
-- return error in case pdev_path is NULL;
-- libxl__device_disk_local_attach update the new disk, the caller
-allocates it;
-- remove \n from logs.
-
-Changes in v5:
-- rename disk to in_disk;
-- rename tmpdisk to disk;
-- copy disk to new_disk only on success;
-- remove check on libxl__zalloc success.
-
-Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-
-diff --git a/tools/libxl/libxl.c b/tools/libxl/libxl.c
-index cd870c4..be1c900 100644
---- a/tools/libxl/libxl.c
-+++ b/tools/libxl/libxl.c
-@@ -1735,13 +1735,24 @@ out:
-     return ret;
- }
--char * libxl__device_disk_local_attach(libxl__gc *gc, libxl_device_disk *disk)
-+char * libxl__device_disk_local_attach(libxl__gc *gc,
-+        const libxl_device_disk *in_disk,
-+        libxl_device_disk *disk)
- {
-     libxl_ctx *ctx = gc->owner;
-     char *dev = NULL;
-     char *ret = NULL;
-     int rc;
-+    if (in_disk->pdev_path == NULL)
-+        return NULL;
-+
-+    memcpy(disk, in_disk, sizeof(libxl_device_disk));
-+    disk->pdev_path = libxl__strdup(gc, in_disk->pdev_path);
-+    if (in_disk->script != NULL)
-+        disk->script = libxl__strdup(gc, in_disk->script);
-+    disk->vdev = NULL;
-+
-     rc = libxl__device_disk_setdefault(gc, disk);
-     if (rc) goto out;
-@@ -1779,8 +1790,7 @@ char * libxl__device_disk_local_attach(libxl__gc *gc, libxl_device_disk *disk)
-                            " attach a qdisk image if the format is not raw");
-                 break;
-             }
--            LIBXL__LOG(ctx, LIBXL__LOG_DEBUG, "locally attaching qdisk %s\n",
--                       disk->pdev_path);
-+            LOG(DEBUG, "locally attaching qdisk %s", in_disk->pdev_path);
-             dev = disk->pdev_path;
-             break;
-         default:
-diff --git a/tools/libxl/libxl_bootloader.c b/tools/libxl/libxl_bootloader.c
-index e8950b1..82371f1 100644
---- a/tools/libxl/libxl_bootloader.c
-+++ b/tools/libxl/libxl_bootloader.c
-@@ -228,7 +228,7 @@ static void bootloader_cleanup(libxl__egc *egc, libxl__bootloader_state *bl)
-     if (bl->outputdir) libxl__remove_directory(gc, bl->outputdir);
-     if (bl->diskpath) {
--        libxl__device_disk_local_detach(gc, bl->disk);
-+        libxl__device_disk_local_detach(gc, &bl->localdisk);
-         free(bl->diskpath);
-         bl->diskpath = 0;
-     }
-@@ -330,7 +330,7 @@ void libxl__bootloader_run(libxl__egc *egc, libxl__bootloader_state *bl)
-         goto out;
-     }
--    bl->diskpath = libxl__device_disk_local_attach(gc, bl->disk);
-+    bl->diskpath = libxl__device_disk_local_attach(gc, bl->disk, &bl->localdisk);
-     if (!bl->diskpath) {
-         rc = ERROR_FAIL;
-         goto out;
-diff --git a/tools/libxl/libxl_internal.h b/tools/libxl/libxl_internal.h
-index d34e561..21b8b54 100644
---- a/tools/libxl/libxl_internal.h
-+++ b/tools/libxl/libxl_internal.h
-@@ -1265,7 +1265,8 @@ _hidden void libxl__device_destroy_tapdisk(libxl__gc *gc, char *be_path);
-  * a device.
-  */
- _hidden char * libxl__device_disk_local_attach(libxl__gc *gc,
--        libxl_device_disk *disk);
-+        const libxl_device_disk *in_disk,
-+        libxl_device_disk *new_disk);
- _hidden int libxl__device_disk_local_detach(libxl__gc *gc,
-         libxl_device_disk *disk);
-@@ -1803,6 +1804,13 @@ struct libxl__bootloader_state {
-     libxl__bootloader_console_callback *console_available;
-     libxl_domain_build_info *info; /* u.pv.{kernel,ramdisk,cmdline} updated */
-     libxl_device_disk *disk;
-+    /* Should be zeroed by caller on entry.  Will be filled in by
-+     * bootloader machinery; represents the local attachment of the
-+     * disk for the benefit of the bootloader.  Must be detached by
-+     * the caller using libxl__device_disk_local_detach, but only
-+     * after the domain's kernel and initramfs have been loaded into
-+     * memory and the file references disposed of. */
-+    libxl_device_disk localdisk;
-     uint32_t domid;
-     /* private to libxl__run_bootloader */
-     char *outputpath, *outputdir, *logfile;
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<alpine.DEB.2.00.1205291608430.26786@kaball-desktop> b/test/corpus/<alpine.DEB.2.00.1205291608430.26786@kaball-desktop>
deleted file mode 100644 (file)
index 037fee4..0000000
+++ /dev/null
@@ -1,125 +0,0 @@
-From xen-devel-bounces@lists.xen.org Tue May 29 16:14:57 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Tue, 29 May 2012 16:14:57 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SZO8K-0003xZ-CW
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 29 May 2012 16:14:57 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SZO42-0007ab-HR; Tue, 29 May 2012 15:10:26 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1SZO40-0007aL-QS
-       for xen-devel@lists.xensource.com; Tue, 29 May 2012 15:10:24 +0000
-Received: from [85.158.143.35:36483] by server-3.bemta-4.messagelabs.com id
-       AA/E2-05853-0E6E4CF4; Tue, 29 May 2012 15:10:24 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-2.tower-21.messagelabs.com!1338304222!6881286!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiA5OTk2Nw==\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 8946 invoked from network); 29 May 2012 15:10:22 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-2.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
-       29 May 2012 15:10:22 -0000
-X-IronPort-AV: E=Sophos;i="4.75,677,1330905600"; d="scan'208";a="12718842"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       29 May 2012 15:10:21 +0000
-Received: from kaball.uk.xensource.com (10.80.2.59) by
-       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
-       8.3.213.0; Tue, 29 May 2012 16:10:21 +0100
-Date: Tue, 29 May 2012 16:10:16 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-X-Sender: sstabellini@kaball-desktop
-To: Ian Campbell <Ian.Campbell@citrix.com>
-In-Reply-To: <1338303814.14158.125.camel@zakaz.uk.xensource.com>
-Message-ID: <alpine.DEB.2.00.1205291608430.26786@kaball-desktop>
-References: <alpine.DEB.2.00.1205281439080.26786@kaball-desktop>
-       <1338287956-24691-2-git-send-email-stefano.stabellini@eu.citrix.com>
-       <1338300632.14158.115.camel@zakaz.uk.xensource.com>
-       <alpine.DEB.2.00.1205291511560.26786@kaball-desktop> 
-       <alpine.DEB.2.00.1205291540590.26786@kaball-desktop>
-       <1338303814.14158.125.camel@zakaz.uk.xensource.com>
-User-Agent: Alpine 2.00 (DEB 1167 2008-08-23)
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
-       Ian Jackson <Ian.Jackson@eu.citrix.com>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH v8 02/11] libxl:
- libxl__device_disk_local_attach return a new libxl_device_disk
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Tue, 29 May 2012, Ian Campbell wrote:
-> On Tue, 2012-05-29 at 15:48 +0100, Stefano Stabellini wrote:
-> > On Tue, 29 May 2012, Stefano Stabellini wrote:
-> > > On Tue, 29 May 2012, Ian Campbell wrote:
-> > > > On Tue, 2012-05-29 at 11:39 +0100, Stefano Stabellini wrote:
-> > > > > @@ -1804,6 +1814,8 @@ int libxl__device_disk_local_detach(libxl__gc *gc, libxl_device_disk *disk)
-> > > > >       * needed by the soon to be started domain and do nothing.
-> > > > >       */
-> > > > >  
-> > > > > +    free(disk->pdev_path);
-> > > > > +    free(disk->script);
-> > > > 
-> > > > This is open coding libxl_device_disk_dispose(disk) but missed the vdev
-> > > > member, is that deliberate?
-> > > 
-> > > I think it is a mistake: all these strings used to be allocated on the
-> > > gc, on previous versions of the series. However meanwhile the event
-> > > series went in, changing completely libxl__bootloader_run (that is the
-> > > caller of libxl__device_disk_local_attach).
-> > > Allocating stuff on the gc is not correct anymore, so now they need to
-> > > be explicitly freed. I think I should call libxl_device_disk_dispose
-> > > here and strdup in libxl__device_disk_local_attach to make sure vdev is
-> > > not on the gc.
-> > 
-> > The appended patch switches back the behavior to what we had in v5 and
-> > before: pdev_path, script, and vdev are all allocated on the gc,
-> > therefore freed automatically.
-> 
-> Thanks, this looks good to me.
-> 
-> If I slot this in in the place of the original will the rest of the
-> series apply or shall I wait for a resend/retest?
-
-I have already tested the patch before sending it.
-I think you might find that 1 hunk of patch #8 won't apply automatically
-but it should be trivial to fix the conflict.
-Let me know if I need to resend.
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<alpine.DEB.2.02.1206051810270.6030@kaball.uk.xensource.com> b/test/corpus/<alpine.DEB.2.02.1206051810270.6030@kaball.uk.xensource.com>
deleted file mode 100644 (file)
index 3401918..0000000
+++ /dev/null
@@ -1,120 +0,0 @@
-From xen-devel-bounces@lists.xen.org Tue Jun 05 18:16:49 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Tue, 05 Jun 2012 18:16:49 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SbxN8-0001S2-RE
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 05 Jun 2012 18:16:49 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SbxIf-0004bZ-E1; Tue, 05 Jun 2012 17:12:09 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1SbxId-0004bO-4d
-       for xen-devel@lists.xen.org; Tue, 05 Jun 2012 17:12:07 +0000
-Received: from [85.158.139.83:56543] by server-8.bemta-5.messagelabs.com id
-       C3/4C-02058-6ED3ECF4; Tue, 05 Jun 2012 17:12:06 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-4.tower-182.messagelabs.com!1338916325!29410047!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDExNDU=\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 15730 invoked from network); 5 Jun 2012 17:12:05 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-4.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
-       5 Jun 2012 17:12:05 -0000
-X-IronPort-AV: E=Sophos;i="4.75,718,1330905600"; d="scan'208";a="12844376"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       05 Jun 2012 17:12:04 +0000
-Received: from sstabellini-Precision-WorkStation-T3500.local (10.80.238.169)
-       by smtprelay.citrix.com (10.30.203.162) with Microsoft SMTP Server id
-       8.3.213.0; Tue, 5 Jun 2012 18:12:04 +0100
-Date: Tue, 5 Jun 2012 18:11:58 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-X-Sender: sstabellini@kaball.uk.xensource.com
-To: Ian Campbell <ian.campbell@citrix.com>
-In-Reply-To: <1338565207-2888-19-git-send-email-ian.campbell@citrix.com>
-Message-ID: <alpine.DEB.2.02.1206051810270.6030@kaball.uk.xensource.com>
-References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
-       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-       <1338565207-2888-19-git-send-email-ian.campbell@citrix.com>
-User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 19/38] arm: context switch a bunch of guest
- state.
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Fri, 1 Jun 2012, Ian Campbell wrote:
-> diff --git a/xen/arch/arm/gic.c b/xen/arch/arm/gic.c
-> index 1a2b95f..339c327 100644
-> --- a/xen/arch/arm/gic.c
-> +++ b/xen/arch/arm/gic.c
-> @@ -61,6 +61,30 @@ static struct {
->  irq_desc_t irq_desc[NR_IRQS];
->  unsigned nr_lrs;
-> 
-> +void gic_save_state(struct vcpu *v)
-> +{
-> +    int i;
-> +
-> +    for ( i=0; i<nr_lrs; i++)
-> +        v->arch.gic_lr[i] = GICH[GICH_LR + i];
-> +    /* Disable until next VCPU scheduled */
-> +    GICH[GICH_HCR] = 0;
-> +    isb();
-> +}
-> +
-> +void gic_restore_state(struct vcpu *v)
-> +{
-> +    int i;
-> +
-> +    if ( is_idle_vcpu(v) )
-> +        return;
-> +
-> +    for ( i=0; i<nr_lrs; i++)
-> +        GICH[GICH_LR + i] = v->arch.gic_lr[i];
-> +    GICH[GICH_HCR] = GICH_HCR_EN;
-> +    isb();
-> +}
-> +
-
-it is still missing a bunch of stuff from the gic state but it is a step
-in the right direction, so I'll send out patches to complete the gic
-context switch separately, based on this one.
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<alpine.DEB.2.02.1206061345230.6030@kaball.uk.xensource.com> b/test/corpus/<alpine.DEB.2.02.1206061345230.6030@kaball.uk.xensource.com>
deleted file mode 100644 (file)
index e53f366..0000000
+++ /dev/null
@@ -1,131 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Jun 06 13:50:22 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 06 Jun 2012 13:50:22 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1ScFgp-0002mZ-Ci
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 06 Jun 2012 13:50:21 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1ScFcQ-0006U9-8l; Wed, 06 Jun 2012 12:45:46 +0000
-Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1ScFcN-0006U4-TK
-       for xen-devel@lists.xen.org; Wed, 06 Jun 2012 12:45:44 +0000
-Received: from [193.109.254.147:10281] by server-2.bemta-14.messagelabs.com id
-       FE/4E-27740-7F05FCF4; Wed, 06 Jun 2012 12:45:43 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-14.tower-27.messagelabs.com!1338986742!5146448!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDExMjA=\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 13058 invoked from network); 6 Jun 2012 12:45:42 -0000
-Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-14.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
-       6 Jun 2012 12:45:42 -0000
-X-IronPort-AV: E=Sophos;i="4.75,724,1330905600"; d="scan'208";a="12858596"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       06 Jun 2012 12:45:42 +0000
-Received: from sstabellini-Precision-WorkStation-T3500.local (10.80.238.169)
-       by smtprelay.citrix.com (10.30.203.162) with Microsoft SMTP Server id
-       8.3.213.0; Wed, 6 Jun 2012 13:45:42 +0100
-Date: Wed, 6 Jun 2012 13:45:35 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-X-Sender: sstabellini@kaball.uk.xensource.com
-To: Ian Campbell <ian.campbell@citrix.com>
-In-Reply-To: <1338565207-2888-4-git-send-email-ian.campbell@citrix.com>
-Message-ID: <alpine.DEB.2.02.1206061345230.6030@kaball.uk.xensource.com>
-References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
-       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-       <1338565207-2888-4-git-send-email-ian.campbell@citrix.com>
-User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 04/38] arm: correct and expand TLB flush
- CP15 registers
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Fri, 1 Jun 2012, Ian Campbell wrote:
-> Correct spelling of TLBIALLHIS and correct definition of TLBIALLNSNHIS.
-> 
-> Add a few more.
->
-> Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
-> ---
-
-Acked-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-
->  xen/include/asm-arm/cpregs.h |   11 +++++++++--
->  1 files changed, 9 insertions(+), 2 deletions(-)
-> 
-> diff --git a/xen/include/asm-arm/cpregs.h b/xen/include/asm-arm/cpregs.h
-> index ee8a287..7a0b49a 100644
-> --- a/xen/include/asm-arm/cpregs.h
-> +++ b/xen/include/asm-arm/cpregs.h
-> @@ -172,12 +172,19 @@
->  #define TLBIMVAIS       p15,0,c8,c3,1   /* Invalidate unified TLB entry by MVA inner shareable */
->  #define TLBIASIDIS      p15,0,c8,c3,2   /* Invalidate unified TLB by ASID match inner shareable */
->  #define TLBIMVAAIS      p15,0,c8,c3,3   /* Invalidate unified TLB entry by MVA all ASID inner shareable */
-> +#define ITLBIALL        p15,0,c8,c5,0   /* Invalidate instruction TLB */
-> +#define ITLBIMVA        p15,0,c8,c5,1   /* Invalidate instruction TLB entry by MVA */
-> +#define ITLBIASID       p15,0,c8,c5,2   /* Invalidate instruction TLB by ASID match */
->  #define DTLBIALL        p15,0,c8,c6,0   /* Invalidate data TLB */
->  #define DTLBIMVA        p15,0,c8,c6,1   /* Invalidate data TLB entry by MVA */
->  #define DTLBIASID       p15,0,c8,c6,2   /* Invalidate data TLB by ASID match */
-> -#define TLBILLHIS       p15,4,c8,c3,0   /* Invalidate Entire Hyp. Unified TLB inner shareable */
-> +#define TLBIALL         p15,0,c8,c7,0   /* invalidate unified TLB */
-> +#define TLBIMVA         p15,0,c8,c7,1   /* invalidate unified TLB entry by MVA */
-> +#define TLBIASID        p15,0,c8,c7,2   /* invalid unified TLB by ASID match */
-> +#define TLBIMVAA        p15,0,c8,c7,3   /* invalidate unified TLB entries by MVA all ASID */
-> +#define TLBIALLHIS      p15,4,c8,c3,0   /* Invalidate Entire Hyp. Unified TLB inner shareable */
->  #define TLBIMVAHIS      p15,4,c8,c3,1   /* Invalidate Unified Hyp. TLB by MVA inner shareable */
-> -#define TLBIALLNSNHIS   p15,4,c8,c7,4   /* Invalidate Entire Non-Secure Non-Hyp. Unified TLB inner shareable */
-> +#define TLBIALLNSNHIS   p15,4,c8,c3,4   /* Invalidate Entire Non-Secure Non-Hyp. Unified TLB inner shareable */
->  #define TLBIALLH        p15,4,c8,c7,0   /* Invalidate Entire Hyp. Unified TLB */
->  #define TLBIMVAH        p15,4,c8,c7,1   /* Invalidate Unified Hyp. TLB by MVA */
->  #define TLBIALLNSNH     p15,4,c8,c7,4   /* Invalidate Entire Non-Secure Non-Hyp. Unified TLB */
-> -- 
-> 1.7.9.1
-> 
-> 
-> _______________________________________________
-> Xen-devel mailing list
-> Xen-devel@lists.xen.org
-> http://lists.xen.org/xen-devel
-> 
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<alpine.DEB.2.02.1206061403450.6030@kaball.uk.xensource.com> b/test/corpus/<alpine.DEB.2.02.1206061403450.6030@kaball.uk.xensource.com>
deleted file mode 100644 (file)
index 8c2fbf6..0000000
+++ /dev/null
@@ -1,165 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Jun 06 14:07:48 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 06 Jun 2012 14:07:48 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1ScFxi-0002qP-3f
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 06 Jun 2012 14:07:48 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1ScFu5-0007Qe-Rc; Wed, 06 Jun 2012 13:04:01 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1ScFu3-0007QS-VG
-       for xen-devel@lists.xen.org; Wed, 06 Jun 2012 13:04:00 +0000
-Received: from [85.158.139.83:17534] by server-11.bemta-5.messagelabs.com id
-       E7/65-25194-F355FCF4; Wed, 06 Jun 2012 13:03:59 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-15.tower-182.messagelabs.com!1338987838!32167764!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDExMjA=\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 16160 invoked from network); 6 Jun 2012 13:03:58 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-15.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
-       6 Jun 2012 13:03:58 -0000
-X-IronPort-AV: E=Sophos;i="4.75,724,1330905600"; d="scan'208";a="12859111"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       06 Jun 2012 13:03:58 +0000
-Received: from sstabellini-Precision-WorkStation-T3500.local (10.80.238.169)
-       by smtprelay.citrix.com (10.30.203.162) with Microsoft SMTP Server id
-       8.3.213.0; Wed, 6 Jun 2012 14:03:58 +0100
-Date: Wed, 6 Jun 2012 14:03:51 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-X-Sender: sstabellini@kaball.uk.xensource.com
-To: Ian Campbell <ian.campbell@citrix.com>
-In-Reply-To: <1338565207-2888-5-git-send-email-ian.campbell@citrix.com>
-Message-ID: <alpine.DEB.2.02.1206061403450.6030@kaball.uk.xensource.com>
-References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
-       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-       <1338565207-2888-5-git-send-email-ian.campbell@citrix.com>
-User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 05/38] arm: restore stack on return from
- trap.
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Fri, 1 Jun 2012, Ian Campbell wrote:
-> We align the stack before calling into C code but we weren't undoing this on
-> return.
-> 
-> Collapse continue_(non)idle_domain into continue_new_vcpu.
-> 
-> Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
-
-
-Acked-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-
->  xen/arch/arm/domain.c |   16 +++-------------
->  xen/arch/arm/entry.S  |    5 ++++-
->  2 files changed, 7 insertions(+), 14 deletions(-)
-> 
-> diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
-> index 4b38790..9339a11 100644
-> --- a/xen/arch/arm/domain.c
-> +++ b/xen/arch/arm/domain.c
-> @@ -16,17 +16,6 @@
->  
->  DEFINE_PER_CPU(struct vcpu *, curr_vcpu);
->  
-> -static void continue_idle_domain(struct vcpu *v)
-> -{
-> -    reset_stack_and_jump(idle_loop);
-> -}
-> -
-> -static void continue_nonidle_domain(struct vcpu *v)
-> -{
-> -    /* check_wakeup_from_wait(); */
-> -    reset_stack_and_jump(return_from_trap);
-> -}
-> -
->  void idle_loop(void)
->  {
->      for ( ; ; )
-> @@ -72,9 +61,10 @@ static void continue_new_vcpu(struct vcpu *prev)
->      schedule_tail(prev);
->  
->      if ( is_idle_vcpu(current) )
-> -        continue_idle_domain(current);
-> +        reset_stack_and_jump(idle_loop);
->      else
-> -        continue_nonidle_domain(current);
-> +        /* check_wakeup_from_wait(); */
-> +        reset_stack_and_jump(return_to_new_vcpu);
->  }
->  
->  void context_switch(struct vcpu *prev, struct vcpu *next)
-> diff --git a/xen/arch/arm/entry.S b/xen/arch/arm/entry.S
-> index f261a9f..7a22e2d 100644
-> --- a/xen/arch/arm/entry.S
-> +++ b/xen/arch/arm/entry.S
-> @@ -72,7 +72,9 @@ DEFINE_TRAP_ENTRY(hypervisor)
->  DEFINE_TRAP_ENTRY(irq)
->  DEFINE_TRAP_ENTRY(fiq)
->  
-> -ENTRY(return_from_trap)
-> +return_from_trap:
-> +    mov sp, r11
-> +ENTRY(return_to_new_vcpu)
->      ldr r11, [sp, #UREGS_cpsr]
->      and r11, #PSR_MODE_MASK
->      cmp r11, #PSR_MODE_HYP
-> @@ -82,6 +84,7 @@ ENTRY(return_to_guest)
->      mov r11, sp
->      bic sp, #7 /* Align the stack pointer */
->      bl leave_hypervisor_tail
-> +    mov sp, r11
->      RESTORE_ONE_BANKED(SP_usr)
->      /* LR_usr is the same physical register as lr and is restored below */
->      RESTORE_BANKED(svc)
-> -- 
-> 1.7.9.1
-> 
-> 
-> _______________________________________________
-> Xen-devel mailing list
-> Xen-devel@lists.xen.org
-> http://lists.xen.org/xen-devel
-> 
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<alpine.DEB.2.02.1206061438000.6030@kaball.uk.xensource.com> b/test/corpus/<alpine.DEB.2.02.1206061438000.6030@kaball.uk.xensource.com>
deleted file mode 100644 (file)
index 8a08bc3..0000000
+++ /dev/null
@@ -1,173 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Jun 06 14:42:34 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 06 Jun 2012 14:42:34 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1ScGVI-00030c-FD
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 06 Jun 2012 14:42:34 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1ScGRK-0000Wv-Ao; Wed, 06 Jun 2012 13:38:22 +0000
-Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1ScGRI-0000Wm-5f
-       for xen-devel@lists.xen.org; Wed, 06 Jun 2012 13:38:20 +0000
-Received: from [193.109.254.147:16926] by server-11.bemta-14.messagelabs.com
-       id 63/FC-02727-B4D5FCF4; Wed, 06 Jun 2012 13:38:19 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-6.tower-27.messagelabs.com!1338989898!5132841!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDExMjA=\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 14090 invoked from network); 6 Jun 2012 13:38:19 -0000
-Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-6.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
-       6 Jun 2012 13:38:19 -0000
-X-IronPort-AV: E=Sophos;i="4.75,724,1330905600"; d="scan'208";a="12859977"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       06 Jun 2012 13:38:18 +0000
-Received: from sstabellini-Precision-WorkStation-T3500.local (10.80.238.169)
-       by smtprelay.citrix.com (10.30.203.162) with Microsoft SMTP Server id
-       8.3.213.0; Wed, 6 Jun 2012 14:38:18 +0100
-Date: Wed, 6 Jun 2012 14:38:11 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-X-Sender: sstabellini@kaball.uk.xensource.com
-To: Ian Campbell <ian.campbell@citrix.com>
-In-Reply-To: <1338565207-2888-6-git-send-email-ian.campbell@citrix.com>
-Message-ID: <alpine.DEB.2.02.1206061438000.6030@kaball.uk.xensource.com>
-References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
-       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-       <1338565207-2888-6-git-send-email-ian.campbell@citrix.com>
-User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 06/38] arm: enable interrupts while handling
- traps
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Fri, 1 Jun 2012, Ian Campbell wrote:
-> For most traps we can do this as soon as we have saved the necessary state.
-> For IRQs and FIQs we must wait until we have acked the interrupt with the GIC.
-> 
-> Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
-
-
-Acked-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-
->  xen/arch/arm/entry.S |   17 ++++++++++++++---
->  xen/arch/arm/gic.c   |    2 ++
->  xen/arch/arm/traps.c |    1 -
->  3 files changed, 16 insertions(+), 4 deletions(-)
-> 
-> diff --git a/xen/arch/arm/entry.S b/xen/arch/arm/entry.S
-> index 7a22e2d..5bc3906 100644
-> --- a/xen/arch/arm/entry.S
-> +++ b/xen/arch/arm/entry.S
-> @@ -46,6 +46,17 @@ save_guest_regs:
->      ALIGN;                                                                                          \
->  trap_##trap:                                                                                                \
->      SAVE_ALL;                                                                                       \
-> +    cpsie i;        /* local_irq_enable */                                                          \
-> +    adr lr, return_from_trap;                                                                       \
-> +    mov r0, sp;                                                                                     \
-> +    mov r11, sp;                                                                                    \
-> +    bic sp, #7; /* Align the stack pointer (noop on guest trap) */                                  \
-> +    b do_trap_##trap
-> +
-> +#define DEFINE_TRAP_ENTRY_NOIRQ(trap)                                                                       \
-> +    ALIGN;                                                                                          \
-> +trap_##trap:                                                                                                \
-> +    SAVE_ALL;                                                                                       \
->      adr lr, return_from_trap;                                                                       \
->      mov r0, sp;                                                                                     \
->      mov r11, sp;                                                                                    \
-> @@ -69,8 +80,8 @@ DEFINE_TRAP_ENTRY(supervisor_call)
->  DEFINE_TRAP_ENTRY(prefetch_abort)
->  DEFINE_TRAP_ENTRY(data_abort)
->  DEFINE_TRAP_ENTRY(hypervisor)
-> -DEFINE_TRAP_ENTRY(irq)
-> -DEFINE_TRAP_ENTRY(fiq)
-> +DEFINE_TRAP_ENTRY_NOIRQ(irq)
-> +DEFINE_TRAP_ENTRY_NOIRQ(fiq)
->  
->  return_from_trap:
->      mov sp, r11
-> @@ -83,7 +94,7 @@ ENTRY(return_to_new_vcpu)
->  ENTRY(return_to_guest)
->      mov r11, sp
->      bic sp, #7 /* Align the stack pointer */
-> -    bl leave_hypervisor_tail
-> +    bl leave_hypervisor_tail /* Disables interrupts on return */
->      mov sp, r11
->      RESTORE_ONE_BANKED(SP_usr)
->      /* LR_usr is the same physical register as lr and is restored below */
-> diff --git a/xen/arch/arm/gic.c b/xen/arch/arm/gic.c
-> index cc9d37b..1a2b95f 100644
-> --- a/xen/arch/arm/gic.c
-> +++ b/xen/arch/arm/gic.c
-> @@ -509,6 +509,8 @@ void gic_interrupt(struct cpu_user_regs *regs, int is_fiq)
->      uint32_t intack = GICC[GICC_IAR];
->      unsigned int irq = intack & GICC_IA_IRQ;
->  
-> +    local_irq_enable();
-> +
->      if ( irq == 1023 )
->          /* Spurious interrupt */
->          return;
-> diff --git a/xen/arch/arm/traps.c b/xen/arch/arm/traps.c
-> index abc26a3..5ed754f 100644
-> --- a/xen/arch/arm/traps.c
-> +++ b/xen/arch/arm/traps.c
-> @@ -412,7 +412,6 @@ static void do_debug_trap(struct cpu_user_regs *regs, unsigned int code)
->  static void do_trap_hypercall(struct cpu_user_regs *regs, unsigned long iss)
->  {
->      arm_hypercall_t *call = NULL;
-> -    local_irq_enable();
->  
->      if ( iss != XEN_HYPERCALL_TAG )
->      {
-> -- 
-> 1.7.9.1
-> 
-> 
-> _______________________________________________
-> Xen-devel mailing list
-> Xen-devel@lists.xen.org
-> http://lists.xen.org/xen-devel
-> 
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<alpine.DEB.2.02.1206061438560.6030@kaball.uk.xensource.com> b/test/corpus/<alpine.DEB.2.02.1206061438560.6030@kaball.uk.xensource.com>
deleted file mode 100644 (file)
index bb0ba7a..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Jun 06 14:42:36 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 06 Jun 2012 14:42:36 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1ScGVL-00030e-Ew
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 06 Jun 2012 14:42:36 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1ScGS7-0000ar-Oa; Wed, 06 Jun 2012 13:39:11 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1ScGS6-0000aZ-5a
-       for xen-devel@lists.xen.org; Wed, 06 Jun 2012 13:39:10 +0000
-Received: from [85.158.143.35:31336] by server-1.bemta-4.messagelabs.com id
-       EF/53-10042-D7D5FCF4; Wed, 06 Jun 2012 13:39:09 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-6.tower-21.messagelabs.com!1338989948!19039253!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDExMjA=\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 26091 invoked from network); 6 Jun 2012 13:39:09 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-6.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
-       6 Jun 2012 13:39:09 -0000
-X-IronPort-AV: E=Sophos;i="4.75,724,1330905600"; d="scan'208";a="12860000"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       06 Jun 2012 13:39:08 +0000
-Received: from sstabellini-Precision-WorkStation-T3500.local (10.80.238.169)
-       by smtprelay.citrix.com (10.30.203.162) with Microsoft SMTP Server id
-       8.3.213.0; Wed, 6 Jun 2012 14:39:08 +0100
-Date: Wed, 6 Jun 2012 14:39:02 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-X-Sender: sstabellini@kaball.uk.xensource.com
-To: Ian Campbell <ian.campbell@citrix.com>
-In-Reply-To: <1338565207-2888-7-git-send-email-ian.campbell@citrix.com>
-Message-ID: <alpine.DEB.2.02.1206061438560.6030@kaball.uk.xensource.com>
-References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
-       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-       <1338565207-2888-7-git-send-email-ian.campbell@citrix.com>
-User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 07/38] arm: hook up domctl and memory_op
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Fri, 1 Jun 2012, Ian Campbell wrote:
-> Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
-
-
-Acked-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-
->  xen/arch/arm/traps.c |    2 ++
->  1 files changed, 2 insertions(+), 0 deletions(-)
-> 
-> diff --git a/xen/arch/arm/traps.c b/xen/arch/arm/traps.c
-> index 5ed754f..5d8b7f9 100644
-> --- a/xen/arch/arm/traps.c
-> +++ b/xen/arch/arm/traps.c
-> @@ -373,6 +373,8 @@ typedef unsigned long arm_hypercall_t(
->      [ __HYPERVISOR_ ## x ] = (arm_hypercall_t *) do_ ## x
->  
->  static arm_hypercall_t *arm_hypercall_table[] = {
-> +    HYPERCALL(memory_op),
-> +    HYPERCALL(domctl),
->      HYPERCALL(arch_0),
->      HYPERCALL(sched_op),
->      HYPERCALL(console_io),
-> -- 
-> 1.7.9.1
-> 
-> 
-> _______________________________________________
-> Xen-devel mailing list
-> Xen-devel@lists.xen.org
-> http://lists.xen.org/xen-devel
-> 
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<alpine.DEB.2.02.1206061443300.6030@kaball.uk.xensource.com> b/test/corpus/<alpine.DEB.2.02.1206061443300.6030@kaball.uk.xensource.com>
deleted file mode 100644 (file)
index 0aedbbe..0000000
+++ /dev/null
@@ -1,237 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Jun 06 14:51:44 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 06 Jun 2012 14:51:44 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1ScGe5-000336-4B
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 06 Jun 2012 14:51:44 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1ScGaP-00014f-L7; Wed, 06 Jun 2012 13:47:45 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1ScGaO-00014N-6d
-       for xen-devel@lists.xen.org; Wed, 06 Jun 2012 13:47:44 +0000
-Received: from [85.158.143.35:25532] by server-2.bemta-4.messagelabs.com id
-       82/3A-17938-F7F5FCF4; Wed, 06 Jun 2012 13:47:43 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-5.tower-21.messagelabs.com!1338990458!7336433!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDExMjA=\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 16920 invoked from network); 6 Jun 2012 13:47:42 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-5.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
-       6 Jun 2012 13:47:42 -0000
-X-IronPort-AV: E=Sophos;i="4.75,724,1330905600"; d="scan'208";a="12860206"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       06 Jun 2012 13:46:40 +0000
-Received: from sstabellini-Precision-WorkStation-T3500.local (10.80.238.169)
-       by smtprelay.citrix.com (10.30.203.162) with Microsoft SMTP Server id
-       8.3.213.0; Wed, 6 Jun 2012 14:46:40 +0100
-Date: Wed, 6 Jun 2012 14:46:33 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-X-Sender: sstabellini@kaball.uk.xensource.com
-To: Ian Campbell <ian.campbell@citrix.com>
-In-Reply-To: <1338565207-2888-8-git-send-email-ian.campbell@citrix.com>
-Message-ID: <alpine.DEB.2.02.1206061443300.6030@kaball.uk.xensource.com>
-References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
-       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-       <1338565207-2888-8-git-send-email-ian.campbell@citrix.com>
-User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 08/38] arm: allocate and setup a guest vcpu.
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Fri, 1 Jun 2012, Ian Campbell wrote:
-> Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
-> ---
->  xen/arch/arm/domain.c         |   68 +++++++++++++++++++++++++++++++++++++++++
->  xen/arch/arm/dummy.S          |    3 --
->  xen/include/public/arch-arm.h |    9 -----
->  3 files changed, 68 insertions(+), 12 deletions(-)
-> 
-> diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
-> index 9339a11..62a2f3a 100644
-> --- a/xen/arch/arm/domain.c
-> +++ b/xen/arch/arm/domain.c
-> @@ -144,6 +144,17 @@ void free_vcpu_struct(struct vcpu *v)
->      free_xenheap_page(v);
->  }
->  
-> +struct vcpu_guest_context *alloc_vcpu_guest_context(void)
-> +{
-> +    return xmalloc(struct vcpu_guest_context);
-> +
-> +}
-> +
-> +void free_vcpu_guest_context(struct vcpu_guest_context *vgc)
-> +{
-> +    xfree(vgc);
-> +}
-> +
->  int vcpu_initialise(struct vcpu *v)
->  {
->      int rc = 0;
-> @@ -182,6 +193,9 @@ int arch_domain_create(struct domain *d, unsigned int domcr_flags)
->      if ( (rc = p2m_init(d)) != 0 )
->          goto fail;
->  
-> +    if ( (rc = domain_vgic_init(d)) != 0 )
-> +        goto fail;
-> +
-
-there is a call to domain_vgic_init already in arch_domain_create
-
-
->      if ( !is_idle_domain(d) )
->      {
->          rc = -ENOMEM;
-> @@ -212,6 +226,60 @@ void arch_domain_destroy(struct domain *d)
->      /* domain_vgic_destroy */
->  }
->  
-> +static int is_guest_psr(uint32_t psr)
-> +{
-> +    switch (psr & PSR_MODE_MASK)
-> +    {
-> +    case PSR_MODE_USR:
-> +    case PSR_MODE_FIQ:
-> +    case PSR_MODE_IRQ:
-> +    case PSR_MODE_SVC:
-> +    case PSR_MODE_ABT:
-> +    case PSR_MODE_UND:
-> +    case PSR_MODE_SYS:
-> +        return 1;
-> +    case PSR_MODE_MON:
-> +    case PSR_MODE_HYP:
-> +    default:
-> +        return 0;
-> +    }
-> +}
-> +
-> +int arch_set_info_guest(
-> +    struct vcpu *v, vcpu_guest_context_u c)
-> +{
-> +    struct cpu_user_regs *regs = &c.nat->user_regs;
-> +
-> +    if ( !is_guest_psr(regs->cpsr) )
-> +        return -EINVAL;
-> +
-> +    if ( regs->spsr_svc && !is_guest_psr(regs->spsr_svc) )
-> +        return -EINVAL;
-> +    if ( regs->spsr_abt && !is_guest_psr(regs->spsr_abt) )
-> +        return -EINVAL;
-> +    if ( regs->spsr_und && !is_guest_psr(regs->spsr_und) )
-> +        return -EINVAL;
-> +    if ( regs->spsr_irq && !is_guest_psr(regs->spsr_irq) )
-> +        return -EINVAL;
-> +    if ( regs->spsr_fiq && !is_guest_psr(regs->spsr_fiq) )
-> +        return -EINVAL;
-> +
-> +    v->arch.cpu_info->guest_cpu_user_regs = *regs;
-> +
-> +    /* XXX other state:
-> +     * - SCTLR
-> +     * - TTBR0/1
-> +     * - TTBCR
-> +     */
-> +
-> +    //if ( flags & VGCF_online )
-> +        clear_bit(_VPF_down, &v->pause_flags);
-> +    //else
-> +    //    set_bit(_VPF_down, &v->pause_flags);
-> +
-> +    return 0;
-> +}
-
-Do we really need to add commented out code like this?
-Also arch_set_info_guest could benefit by a couple of lines of comments
-to explain what it is supposed to do.
-
-
->  void arch_dump_domain_info(struct domain *d)
->  {
->  }
-> diff --git a/xen/arch/arm/dummy.S b/xen/arch/arm/dummy.S
-> index 016340c..3b48917 100644
-> --- a/xen/arch/arm/dummy.S
-> +++ b/xen/arch/arm/dummy.S
-> @@ -20,11 +20,8 @@ DUMMY(pirq_guest_unbind);
->  DUMMY(pirq_set_affinity);
->  
->  /* VCPU */
-> -DUMMY(alloc_vcpu_guest_context);
->  DUMMY(arch_get_info_guest);
-> -DUMMY(arch_set_info_guest);
->  DUMMY(arch_vcpu_reset);
-> -DUMMY(free_vcpu_guest_context);
->  DUMMY(sync_vcpu_execstate);
->  NOP(update_vcpu_system_time);
->  DUMMY(vcpu_show_execution_state);
-> diff --git a/xen/include/public/arch-arm.h b/xen/include/public/arch-arm.h
-> index 1b1bcf3..e439727 100644
-> --- a/xen/include/public/arch-arm.h
-> +++ b/xen/include/public/arch-arm.h
-> @@ -124,15 +124,6 @@ typedef uint32_t xen_ulong_t;
->  
->  struct vcpu_guest_context {
->      struct cpu_user_regs user_regs;         /* User-level CPU registers     */
-> -    union {
-> -        uint32_t reg[16];
-> -        struct {
-> -            uint32_t __pad[12];
-> -            uint32_t sp; /* r13 */
-> -            uint32_t lr; /* r14 */
-> -            uint32_t pc; /* r15 */
-> -        };
-> -    };
->  };
->  typedef struct vcpu_guest_context vcpu_guest_context_t;
->  DEFINE_XEN_GUEST_HANDLE(vcpu_guest_context_t);
-> -- 
-> 1.7.9.1
-> 
-> 
-> _______________________________________________
-> Xen-devel mailing list
-> Xen-devel@lists.xen.org
-> http://lists.xen.org/xen-devel
-> 
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<alpine.DEB.2.02.1206061446590.6030@kaball.uk.xensource.com> b/test/corpus/<alpine.DEB.2.02.1206061446590.6030@kaball.uk.xensource.com>
deleted file mode 100644 (file)
index 554ac8d..0000000
+++ /dev/null
@@ -1,137 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Jun 06 14:51:38 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 06 Jun 2012 14:51:38 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1ScGe4-000335-Ic
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 06 Jun 2012 14:51:38 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1ScGaO-00014P-90; Wed, 06 Jun 2012 13:47:44 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1ScGaM-00014H-AJ
-       for xen-devel@lists.xen.org; Wed, 06 Jun 2012 13:47:42 +0000
-Received: from [85.158.143.35:25396] by server-3.bemta-4.messagelabs.com id
-       FF/7D-29237-D7F5FCF4; Wed, 06 Jun 2012 13:47:41 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-9.tower-21.messagelabs.com!1338990460!4613255!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDExMjA=\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 28954 invoked from network); 6 Jun 2012 13:47:41 -0000
-Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-9.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
-       6 Jun 2012 13:47:41 -0000
-X-IronPort-AV: E=Sophos;i="4.75,724,1330905600"; d="scan'208";a="12860214"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       06 Jun 2012 13:47:11 +0000
-Received: from sstabellini-Precision-WorkStation-T3500.local (10.80.238.169)
-       by smtprelay.citrix.com (10.30.203.162) with Microsoft SMTP Server id
-       8.3.213.0; Wed, 6 Jun 2012 14:47:11 +0100
-Date: Wed, 6 Jun 2012 14:47:05 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-X-Sender: sstabellini@kaball.uk.xensource.com
-To: Ian Campbell <ian.campbell@citrix.com>
-In-Reply-To: <1338565207-2888-9-git-send-email-ian.campbell@citrix.com>
-Message-ID: <alpine.DEB.2.02.1206061446590.6030@kaball.uk.xensource.com>
-References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
-       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-       <1338565207-2888-9-git-send-email-ian.campbell@citrix.com>
-User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 09/38] arm: print domid as part of debug trap
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Fri, 1 Jun 2012, Ian Campbell wrote:
-> Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
-
-
-Acked-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-
-
->  xen/arch/arm/traps.c |   11 ++++++-----
->  1 files changed, 6 insertions(+), 5 deletions(-)
-> 
-> diff --git a/xen/arch/arm/traps.c b/xen/arch/arm/traps.c
-> index 5d8b7f9..40bb375 100644
-> --- a/xen/arch/arm/traps.c
-> +++ b/xen/arch/arm/traps.c
-> @@ -388,25 +388,26 @@ static arm_hypercall_t *arm_hypercall_table[] = {
->  static void do_debug_trap(struct cpu_user_regs *regs, unsigned int code)
->  {
->      uint32_t reg, *r;
-> -
-> +    uint32_t domid = current->domain->domain_id;
->      switch ( code ) {
->      case 0xe0 ... 0xef:
->          reg = code - 0xe0;
->          r = &regs->r0 + reg;
-> -        printk("R%d = %#010"PRIx32" at %#010"PRIx32"\n", reg, *r, regs->pc);
-> +        printk("DOM%d: R%d = %#010"PRIx32" at %#010"PRIx32"\n",
-> +               domid, reg, *r, regs->pc);
->          break;
->      case 0xfd:
-> -        printk("Reached %08"PRIx32"\n", regs->pc);
-> +        printk("DOM%d: Reached %#010"PRIx32"\n", domid, regs->pc);
->          break;
->      case 0xfe:
->          printk("%c", (char)(regs->r0 & 0xff));
->          break;
->      case 0xff:
-> -        printk("DEBUG\n");
-> +        printk("DOM%d: DEBUG\n", domid);
->          show_execution_state(regs);
->          break;
->      default:
-> -        panic("Unhandled debug trap %#x\n", code);
-> +        panic("DOM%d: Unhandled debug trap %#x\n", domid, code);
->          break;
->      }
->  }
-> -- 
-> 1.7.9.1
-> 
-> 
-> _______________________________________________
-> Xen-devel mailing list
-> Xen-devel@lists.xen.org
-> http://lists.xen.org/xen-devel
-> 
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<alpine.DEB.2.02.1206061447180.6030@kaball.uk.xensource.com> b/test/corpus/<alpine.DEB.2.02.1206061447180.6030@kaball.uk.xensource.com>
deleted file mode 100644 (file)
index 00bb903..0000000
+++ /dev/null
@@ -1,114 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Jun 06 14:51:38 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 06 Jun 2012 14:51:38 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1ScGe4-000334-9o
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 06 Jun 2012 14:51:38 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1ScGaT-00015I-1t; Wed, 06 Jun 2012 13:47:49 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1ScGaR-00014H-0X
-       for xen-devel@lists.xen.org; Wed, 06 Jun 2012 13:47:47 +0000
-Received: from [85.158.143.35:63381] by server-3.bemta-4.messagelabs.com id
-       68/AD-29237-28F5FCF4; Wed, 06 Jun 2012 13:47:46 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-15.tower-21.messagelabs.com!1338990466!14298542!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDExMjA=\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 6651 invoked from network); 6 Jun 2012 13:47:46 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-15.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
-       6 Jun 2012 13:47:46 -0000
-X-IronPort-AV: E=Sophos;i="4.75,724,1330905600"; d="scan'208";a="12860226"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       06 Jun 2012 13:47:32 +0000
-Received: from sstabellini-Precision-WorkStation-T3500.local (10.80.238.169)
-       by smtprelay.citrix.com (10.30.203.162) with Microsoft SMTP Server id
-       8.3.213.0; Wed, 6 Jun 2012 14:47:32 +0100
-Date: Wed, 6 Jun 2012 14:47:26 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-X-Sender: sstabellini@kaball.uk.xensource.com
-To: Ian Campbell <ian.campbell@citrix.com>
-In-Reply-To: <1338565207-2888-10-git-send-email-ian.campbell@citrix.com>
-Message-ID: <alpine.DEB.2.02.1206061447180.6030@kaball.uk.xensource.com>
-References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
-       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-       <1338565207-2888-10-git-send-email-ian.campbell@citrix.com>
-User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 10/38] arm: remove unnecessarily verbose
- print from p2m_load_VTTBR
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Fri, 1 Jun 2012, Ian Campbell wrote:
-> Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
-
-
-Acked-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-
->  xen/arch/arm/p2m.c |    2 --
->  1 files changed, 0 insertions(+), 2 deletions(-)
-> 
-> diff --git a/xen/arch/arm/p2m.c b/xen/arch/arm/p2m.c
-> index fdbecbc..095e608 100644
-> --- a/xen/arch/arm/p2m.c
-> +++ b/xen/arch/arm/p2m.c
-> @@ -47,8 +47,6 @@ void p2m_load_VTTBR(struct domain *d)
->  
->      vttbr |= ((uint64_t)p2m->vmid&0xff)<<48;
->  
-> -    printk("VTTBR dom%d = %"PRIx64"\n", d->domain_id, vttbr);
-> -
->      WRITE_CP64(vttbr, VTTBR);
->      isb(); /* Ensure update is visible */
->  }
-> -- 
-> 1.7.9.1
-> 
-> 
-> _______________________________________________
-> Xen-devel mailing list
-> Xen-devel@lists.xen.org
-> http://lists.xen.org/xen-devel
-> 
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<alpine.DEB.2.02.1206061452530.6030@kaball.uk.xensource.com> b/test/corpus/<alpine.DEB.2.02.1206061452530.6030@kaball.uk.xensource.com>
deleted file mode 100644 (file)
index 928c924..0000000
+++ /dev/null
@@ -1,224 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Jun 06 15:06:12 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 06 Jun 2012 15:06:12 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1ScGs9-00037F-Uu
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 06 Jun 2012 15:06:12 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1ScGod-0002AD-MQ; Wed, 06 Jun 2012 14:02:27 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1ScGoc-00029v-10
-       for xen-devel@lists.xen.org; Wed, 06 Jun 2012 14:02:26 +0000
-Received: from [85.158.138.51:19110] by server-1.bemta-3.messagelabs.com id
-       E3/D2-01327-1F26FCF4; Wed, 06 Jun 2012 14:02:25 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-5.tower-174.messagelabs.com!1338991344!31156714!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDExMjA=\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 28044 invoked from network); 6 Jun 2012 14:02:24 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-5.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
-       6 Jun 2012 14:02:24 -0000
-X-IronPort-AV: E=Sophos;i="4.75,724,1330905600"; d="scan'208";a="12860619"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       06 Jun 2012 14:01:37 +0000
-Received: from sstabellini-Precision-WorkStation-T3500.local (10.80.238.169)
-       by smtprelay.citrix.com (10.30.203.162) with Microsoft SMTP Server id
-       8.3.213.0; Wed, 6 Jun 2012 15:01:37 +0100
-Date: Wed, 6 Jun 2012 15:01:31 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-X-Sender: sstabellini@kaball.uk.xensource.com
-To: Ian Campbell <ian.campbell@citrix.com>
-In-Reply-To: <1338565207-2888-11-git-send-email-ian.campbell@citrix.com>
-Message-ID: <alpine.DEB.2.02.1206061452530.6030@kaball.uk.xensource.com>
-References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
-       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-       <1338565207-2888-11-git-send-email-ian.campbell@citrix.com>
-User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 11/38] arm: implement p2m lookup
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Fri, 1 Jun 2012, Ian Campbell wrote:
-> Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
-> ---
->  xen/arch/arm/p2m.c        |   71 ++++++++++++++++++++++++++++++++++++++++++--
->  xen/include/asm-arm/p2m.h |    3 ++
->  2 files changed, 70 insertions(+), 4 deletions(-)
-> 
-> diff --git a/xen/arch/arm/p2m.c b/xen/arch/arm/p2m.c
-> index 095e608..9b40e93 100644
-> --- a/xen/arch/arm/p2m.c
-> +++ b/xen/arch/arm/p2m.c
-> @@ -10,10 +10,20 @@ void dump_p2m_lookup(struct domain *d, paddr_t addr)
->      struct p2m_domain *p2m = &d->arch.p2m;
->      lpae_t *first = NULL, *second = NULL, *third = NULL;
->  
-> -    printk("dom%d IPA %#016llx\n", d->domain_id, addr);
-> +    printk("dom%d IPA %#"PRIpaddr"\n", d->domain_id, addr);
-> +
-> +    printk("P2M @ %p mfn:%#lx (%#03llx,%#03llx,%#03llx)\n",
-> +           p2m->first_level,
-> +           page_to_mfn(p2m->first_level),
-> +           first_table_offset(addr),
-> +           second_table_offset(addr),
-> +           third_table_offset(addr));
-> +
-> +    if ( first_table_offset(addr) >= LPAE_ENTRIES )
-> +        goto done;
->  
->      first = __map_domain_page(p2m->first_level);
-> -    printk("1ST[%#03llx] = %#016llx\n",
-> +    printk("1ST[%#03llx] = %#"PRIpaddr"\n",
->             first_table_offset(addr),
->             first[first_table_offset(addr)].bits);
->      if ( !first[first_table_offset(addr)].p2m.valid ||
-> @@ -21,7 +31,7 @@ void dump_p2m_lookup(struct domain *d, paddr_t addr)
->          goto done;
->  
->      second = map_domain_page(first[first_table_offset(addr)].p2m.base);
-> -    printk("2ND[%#03llx] = %#016llx\n",
-> +    printk("2ND[%#03llx] = %#"PRIpaddr"\n",
->             second_table_offset(addr),
->             second[second_table_offset(addr)].bits);
->      if ( !second[second_table_offset(addr)].p2m.valid ||
-> @@ -29,7 +39,7 @@ void dump_p2m_lookup(struct domain *d, paddr_t addr)
->          goto done;
->  
->      third = map_domain_page(second[second_table_offset(addr)].p2m.base);
-> -    printk("3RD[%#03llx] = %#016llx\n",
-> +    printk("3RD[%#03llx] = %#"PRIpaddr"\n",
->             third_table_offset(addr),
->             third[third_table_offset(addr)].bits);
->  
-> @@ -51,6 +61,59 @@ void p2m_load_VTTBR(struct domain *d)
->      isb(); /* Ensure update is visible */
->  }
-
-there is no need to introduce p2m_lookup in the same patch you do these
-unrelated printk adjustments, correct?
-
-
-> +/*
-> + * Lookup the MFN corresponding to a domain's PFN.
-> + *
-> + * There are no processor functions to do a stage 2 only lookup therefore we
-> + * do a a software walk.
-> + */
-> +paddr_t p2m_lookup(struct domain *d, paddr_t paddr)
-> +{
-> +    struct p2m_domain *p2m = &d->arch.p2m;
-> +    lpae_t pte, *first = NULL, *second = NULL, *third = NULL;
-> +    paddr_t maddr = INVALID_PADDR;
-> +
-> +    spin_lock(&p2m->lock);
-> +
-> +    first = __map_domain_page(p2m->first_level);
-> +    if ( !first[first_table_offset(paddr)].p2m.valid )
-> +        goto done_err;
-> +    if ( !first[first_table_offset(paddr)].p2m.table )
-> +    {
-> +        pte = first[first_table_offset(paddr)];
-> +        goto done;
-> +    }
-> +
-> +    second = map_domain_page(first[first_table_offset(paddr)].p2m.base);
-> +    if ( !second[second_table_offset(paddr)].p2m.valid )
-> +        goto done_err;
-> +    if ( !second[second_table_offset(paddr)].p2m.table )
-> +    {
-> +        pte = second[second_table_offset(paddr)];
-> +        goto done;
-> +    }
-> +
-> +    third = map_domain_page(second[second_table_offset(paddr)].p2m.base);
-> +    if ( !third[third_table_offset(paddr)].p2m.valid )
-> +        goto done_err;
-> +    if ( !third[third_table_offset(paddr)].p2m.table )
-> +        goto done_err;
-> +
-> +    pte = third[third_table_offset(paddr)];
-> +
-> +done:
-> +
-> +    maddr = (pte.bits & PADDR_MASK & PAGE_MASK) | (paddr & ~PAGE_MASK);
-> +done_err:
-> +    if (third) unmap_domain_page(third);
-> +    if (second) unmap_domain_page(second);
-> +    if (first) unmap_domain_page(first);
-> +
-> +    spin_unlock(&p2m->lock);
-> +
-> +    return maddr;
-> +}
-> +
-
-this function looks correct though
-
->  int guest_physmap_mark_populate_on_demand(struct domain *d,
->                                            unsigned long gfn,
->                                            unsigned int order)
-> diff --git a/xen/include/asm-arm/p2m.h b/xen/include/asm-arm/p2m.h
-> index 349923a..1afd5cb 100644
-> --- a/xen/include/asm-arm/p2m.h
-> +++ b/xen/include/asm-arm/p2m.h
-> @@ -32,6 +32,9 @@ int p2m_alloc_table(struct domain *d);
->  /* */
->  void p2m_load_VTTBR(struct domain *d);
->  
-> +/* */
-> +paddr_t p2m_lookup(struct domain *d, paddr_t gpfn);
-> +
->  /* Setup p2m RAM mapping for domain d from start-end. */
->  int p2m_populate_ram(struct domain *d, paddr_t start, paddr_t end);
->  /* Map MMIO regions in the p2m: start_gaddr and end_gaddr is the range
-> -- 
-> 1.7.9.1
-> 
-> 
-> _______________________________________________
-> Xen-devel mailing list
-> Xen-devel@lists.xen.org
-> http://lists.xen.org/xen-devel
-> 
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<alpine.DEB.2.02.1206061613210.6030@kaball.uk.xensource.com> b/test/corpus/<alpine.DEB.2.02.1206061613210.6030@kaball.uk.xensource.com>
deleted file mode 100644 (file)
index fa6bdf8..0000000
+++ /dev/null
@@ -1,118 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Jun 06 16:19:07 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 06 Jun 2012 16:19:07 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1ScI0j-0003SA-LI
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 06 Jun 2012 16:19:06 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1ScHvh-0005eJ-DM; Wed, 06 Jun 2012 15:13:49 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1ScHvf-0005eB-1F
-       for xen-devel@lists.xen.org; Wed, 06 Jun 2012 15:13:47 +0000
-Received: from [85.158.143.35:50818] by server-2.bemta-4.messagelabs.com id
-       39/F9-17938-AA37FCF4; Wed, 06 Jun 2012 15:13:46 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-2.tower-21.messagelabs.com!1338995625!8147596!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDExMjA=\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 30803 invoked from network); 6 Jun 2012 15:13:46 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-2.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
-       6 Jun 2012 15:13:46 -0000
-X-IronPort-AV: E=Sophos;i="4.75,724,1330905600"; d="scan'208";a="12862564"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       06 Jun 2012 15:13:45 +0000
-Received: from sstabellini-Precision-WorkStation-T3500.local (10.80.238.169)
-       by smtprelay.citrix.com (10.30.203.162) with Microsoft SMTP Server id
-       8.3.213.0; Wed, 6 Jun 2012 16:13:45 +0100
-Date: Wed, 6 Jun 2012 16:13:38 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-X-Sender: sstabellini@kaball.uk.xensource.com
-To: Ian Campbell <ian.campbell@citrix.com>
-In-Reply-To: <1338565207-2888-12-git-send-email-ian.campbell@citrix.com>
-Message-ID: <alpine.DEB.2.02.1206061613210.6030@kaball.uk.xensource.com>
-References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
-       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-       <1338565207-2888-12-git-send-email-ian.campbell@citrix.com>
-User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 12/38] arm: remove hard tabs from
- init_idle_domain
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Fri, 1 Jun 2012, Ian Campbell wrote:
-> Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
-
-
-Acked-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-
->  xen/arch/arm/setup.c |    6 +++---
->  1 files changed, 3 insertions(+), 3 deletions(-)
-> 
-> diff --git a/xen/arch/arm/setup.c b/xen/arch/arm/setup.c
-> index 0df3c1a..81ababb 100644
-> --- a/xen/arch/arm/setup.c
-> +++ b/xen/arch/arm/setup.c
-> @@ -47,9 +47,9 @@ static __attribute_used__ void init_done(void)
->  
->  static void __init init_idle_domain(void)
->  {
-> -        scheduler_init();
-> -        set_current(idle_vcpu[0]);
-> -        /* TODO: setup_idle_pagetable(); */
-> +    scheduler_init();
-> +    set_current(idle_vcpu[0]);
-> +    /* TODO: setup_idle_pagetable(); */
->  }
->  
->  static void __init processor_id(void)
-> -- 
-> 1.7.9.1
-> 
-> 
-> _______________________________________________
-> Xen-devel mailing list
-> Xen-devel@lists.xen.org
-> http://lists.xen.org/xen-devel
-> 
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<alpine.DEB.2.02.1206061615110.6030@kaball.uk.xensource.com> b/test/corpus/<alpine.DEB.2.02.1206061615110.6030@kaball.uk.xensource.com>
deleted file mode 100644 (file)
index 17087eb..0000000
+++ /dev/null
@@ -1,130 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Jun 06 16:19:11 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 06 Jun 2012 16:19:11 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1ScI0q-0003SS-M1
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 06 Jun 2012 16:19:11 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1ScHxK-0005iM-T7; Wed, 06 Jun 2012 15:15:30 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1ScHxJ-0005iG-5D
-       for xen-devel@lists.xen.org; Wed, 06 Jun 2012 15:15:29 +0000
-Received: from [85.158.139.83:56085] by server-3.bemta-5.messagelabs.com id
-       85/81-17554-0147FCF4; Wed, 06 Jun 2012 15:15:28 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-8.tower-182.messagelabs.com!1338995727!18452879!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDExMjA=\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 8452 invoked from network); 6 Jun 2012 15:15:28 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-8.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
-       6 Jun 2012 15:15:28 -0000
-X-IronPort-AV: E=Sophos;i="4.75,724,1330905600"; d="scan'208";a="12862611"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       06 Jun 2012 15:15:27 +0000
-Received: from sstabellini-Precision-WorkStation-T3500.local (10.80.238.169)
-       by smtprelay.citrix.com (10.30.203.162) with Microsoft SMTP Server id
-       8.3.213.0; Wed, 6 Jun 2012 16:15:27 +0100
-Date: Wed, 6 Jun 2012 16:15:21 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-X-Sender: sstabellini@kaball.uk.xensource.com
-To: Ian Campbell <ian.campbell@citrix.com>
-In-Reply-To: <1338565207-2888-13-git-send-email-ian.campbell@citrix.com>
-Message-ID: <alpine.DEB.2.02.1206061615110.6030@kaball.uk.xensource.com>
-References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
-       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-       <1338565207-2888-13-git-send-email-ian.campbell@citrix.com>
-User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 13/38] arm: stub out sync_vcpu_execstate
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Fri, 1 Jun 2012, Ian Campbell wrote:
-> We don't do lazy exec state switching so there isn't actually anything to do.
-> 
-> Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
-
-Acked-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-
->  xen/arch/arm/domain.c |    5 +++++
->  xen/arch/arm/dummy.S  |    1 -
->  2 files changed, 5 insertions(+), 1 deletions(-)
-> 
-> diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
-> index 62a2f3a..bd900f9 100644
-> --- a/xen/arch/arm/domain.c
-> +++ b/xen/arch/arm/domain.c
-> @@ -96,6 +96,11 @@ void sync_local_execstate(void)
->      /* Nothing to do -- no lazy switching */
->  }
->  
-> +void sync_vcpu_execstate(struct vcpu *v)
-> +{
-> +    /* Nothing to do -- no lazy switching */
-> +}
-> +
->  void startup_cpu_idle_loop(void)
->  {
->      struct vcpu *v = current;
-> diff --git a/xen/arch/arm/dummy.S b/xen/arch/arm/dummy.S
-> index 3b48917..8eddd15 100644
-> --- a/xen/arch/arm/dummy.S
-> +++ b/xen/arch/arm/dummy.S
-> @@ -22,7 +22,6 @@ DUMMY(pirq_set_affinity);
->  /* VCPU */
->  DUMMY(arch_get_info_guest);
->  DUMMY(arch_vcpu_reset);
-> -DUMMY(sync_vcpu_execstate);
->  NOP(update_vcpu_system_time);
->  DUMMY(vcpu_show_execution_state);
->  
-> -- 
-> 1.7.9.1
-> 
-> 
-> _______________________________________________
-> Xen-devel mailing list
-> Xen-devel@lists.xen.org
-> http://lists.xen.org/xen-devel
-> 
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<alpine.DEB.2.02.1206061620040.6030@kaball.uk.xensource.com> b/test/corpus/<alpine.DEB.2.02.1206061620040.6030@kaball.uk.xensource.com>
deleted file mode 100644 (file)
index 132457a..0000000
+++ /dev/null
@@ -1,129 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Jun 06 16:23:59 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 06 Jun 2012 16:23:59 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1ScI5V-0003UK-AN
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 06 Jun 2012 16:23:59 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1ScI2D-0005yA-0i; Wed, 06 Jun 2012 15:20:33 +0000
-Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1ScI2B-0005xx-E9
-       for xen-devel@lists.xen.org; Wed, 06 Jun 2012 15:20:31 +0000
-Received: from [193.109.254.147:11493] by server-7.bemta-14.messagelabs.com id
-       28/F9-29165-E357FCF4; Wed, 06 Jun 2012 15:20:30 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-16.tower-27.messagelabs.com!1338996022!12905102!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDExMjA=\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 792 invoked from network); 6 Jun 2012 15:20:23 -0000
-Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-16.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
-       6 Jun 2012 15:20:23 -0000
-X-IronPort-AV: E=Sophos;i="4.75,724,1330905600"; d="scan'208";a="12862716"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       06 Jun 2012 15:20:22 +0000
-Received: from sstabellini-Precision-WorkStation-T3500.local (10.80.238.169)
-       by smtprelay.citrix.com (10.30.203.162) with Microsoft SMTP Server id
-       8.3.213.0; Wed, 6 Jun 2012 16:20:22 +0100
-Date: Wed, 6 Jun 2012 16:20:16 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-X-Sender: sstabellini@kaball.uk.xensource.com
-To: Ian Campbell <Ian.Campbell@citrix.com>
-In-Reply-To: <1338995969.32319.139.camel@zakaz.uk.xensource.com>
-Message-ID: <alpine.DEB.2.02.1206061620040.6030@kaball.uk.xensource.com>
-References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
-       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-       <1338565207-2888-19-git-send-email-ian.campbell@citrix.com>
-       <alpine.DEB.2.02.1206051810270.6030@kaball.uk.xensource.com>
-       <1338995969.32319.139.camel@zakaz.uk.xensource.com>
-User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 19/38] arm: context switch a bunch of guest
- state.
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Wed, 6 Jun 2012, Ian Campbell wrote:
-> On Tue, 2012-06-05 at 18:11 +0100, Stefano Stabellini wrote:
-> > On Fri, 1 Jun 2012, Ian Campbell wrote:
-> > > diff --git a/xen/arch/arm/gic.c b/xen/arch/arm/gic.c
-> > > index 1a2b95f..339c327 100644
-> > > --- a/xen/arch/arm/gic.c
-> > > +++ b/xen/arch/arm/gic.c
-> > > @@ -61,6 +61,30 @@ static struct {
-> > >  irq_desc_t irq_desc[NR_IRQS];
-> > >  unsigned nr_lrs;
-> > > 
-> > > +void gic_save_state(struct vcpu *v)
-> > > +{
-> > > +    int i;
-> > > +
-> > > +    for ( i=0; i<nr_lrs; i++)
-> > > +        v->arch.gic_lr[i] = GICH[GICH_LR + i];
-> > > +    /* Disable until next VCPU scheduled */
-> > > +    GICH[GICH_HCR] = 0;
-> > > +    isb();
-> > > +}
-> > > +
-> > > +void gic_restore_state(struct vcpu *v)
-> > > +{
-> > > +    int i;
-> > > +
-> > > +    if ( is_idle_vcpu(v) )
-> > > +        return;
-> > > +
-> > > +    for ( i=0; i<nr_lrs; i++)
-> > > +        GICH[GICH_LR + i] = v->arch.gic_lr[i];
-> > > +    GICH[GICH_HCR] = GICH_HCR_EN;
-> > > +    isb();
-> > > +}
-> > > +
-> > 
-> > it is still missing a bunch of stuff from the gic state but it is a step
-> > in the right direction, so I'll send out patches to complete the gic
-> > context switch separately, based on this one.
-> 
-> Can I take this as an Ack for this patch for what it does?
-
-yes
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<alpine.DEB.2.02.1206061623240.6030@kaball.uk.xensource.com> b/test/corpus/<alpine.DEB.2.02.1206061623240.6030@kaball.uk.xensource.com>
deleted file mode 100644 (file)
index 1c8368d..0000000
+++ /dev/null
@@ -1,144 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Jun 06 16:31:06 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 06 Jun 2012 16:31:06 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1ScICK-0003Vy-Ee
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 06 Jun 2012 16:31:06 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1ScI86-0006C2-QF; Wed, 06 Jun 2012 15:26:38 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1ScI85-0006Bx-Gm
-       for xen-devel@lists.xen.org; Wed, 06 Jun 2012 15:26:37 +0000
-Received: from [85.158.143.35:30057] by server-2.bemta-4.messagelabs.com id
-       07/EC-17938-CA67FCF4; Wed, 06 Jun 2012 15:26:36 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-14.tower-21.messagelabs.com!1338996392!19140032!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDExMjA=\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 12678 invoked from network); 6 Jun 2012 15:26:32 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-14.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
-       6 Jun 2012 15:26:32 -0000
-X-IronPort-AV: E=Sophos;i="4.75,724,1330905600"; d="scan'208";a="12862831"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       06 Jun 2012 15:26:31 +0000
-Received: from sstabellini-Precision-WorkStation-T3500.local (10.80.238.169)
-       by smtprelay.citrix.com (10.30.203.162) with Microsoft SMTP Server id
-       8.3.213.0; Wed, 6 Jun 2012 16:26:31 +0100
-Date: Wed, 6 Jun 2012 16:26:25 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-X-Sender: sstabellini@kaball.uk.xensource.com
-To: Ian Campbell <ian.campbell@citrix.com>
-In-Reply-To: <1338565207-2888-14-git-send-email-ian.campbell@citrix.com>
-Message-ID: <alpine.DEB.2.02.1206061623240.6030@kaball.uk.xensource.com>
-References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
-       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-       <1338565207-2888-14-git-send-email-ian.campbell@citrix.com>
-User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 14/38] arm: do not set max_vcpus = 8 in
- arch_domain_create.
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Fri, 1 Jun 2012, Ian Campbell wrote:
-> XEN_DOMCTL_max_vcpus cannot reduce max_vcpus and therefore we can't create a
-> smaller guest.
-> 
-> The limit of 8 (due to GIC limits) should be expressed elsewhere, likely in
-> MAX_VIRT_CPUS -- but making that change caused:
-
-Are you sure? I made that change and I didn't see the error.
-I think this patch should set MAX_VIRT_CPUS to 8 as well as removing
-max_vcpus = 8.
-
-
->     (XEN) Unexpected Trap: Data Abort
->     (XEN) ----[ Xen-4.2-unstable  x86_64  debug=y  Not tainted ]----
->     (XEN) CPU:    0
->     (XEN) PC:     00222e48 _spin_lock+0x28/0x6c
->     (XEN) CPSR:   600001da MODE:HYP
->     (XEN)      R0: 002c4389 R1: 800001da R2: 00000001 R3: 0000ffff
->     (XEN)      R4: 002c4381 R5: 00000080 R6: 002c4380 R7: 002c4000
->     (XEN)      R8: 002c4380 R9: 4000015a R10:00000080 R11:40017d6c R12:00000000
->     (XEN)      SP: 40017d5c LR: 00222e34
->     (XEN)
->     [...]
->     (XEN) Xen call trace:
->     (XEN)    [<00222e48>] _spin_lock+0x28/0x6c
->     (XEN)    [<0022623c>] init_timer+0xbc/0x160
->     (XEN)    [<0021fbdc>] sched_init_vcpu+0x94/0x200
->     (XEN)    [<002061a4>] alloc_vcpu+0x124/0x210
->     (XEN)    [<00204890>] do_domctl+0xaa4/0x14e4
->     (XEN)    [<00241ab8>] do_trap_hypervisor+0x588/0x8cc
->     (XEN)    [<0023bbb0>] return_from_trap+0x0/0x4
-> 
-> so punt on that for now.
-> 
-> Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
-> ---
->  xen/arch/arm/domain.c |    2 --
->  1 files changed, 0 insertions(+), 2 deletions(-)
-> 
-> diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
-> index bd900f9..e867cb2 100644
-> --- a/xen/arch/arm/domain.c
-> +++ b/xen/arch/arm/domain.c
-> @@ -215,8 +215,6 @@ int arch_domain_create(struct domain *d, unsigned int domcr_flags)
->              goto fail;
->      }
->  
-> -    d->max_vcpus = 8;
-> -
->      if ( (rc = domain_vgic_init(d)) != 0 )
->          goto fail;
->  
-> -- 
-> 1.7.9.1
-> 
-> 
-> _______________________________________________
-> Xen-devel mailing list
-> Xen-devel@lists.xen.org
-> http://lists.xen.org/xen-devel
-> 
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<alpine.DEB.2.02.1206061627380.6030@kaball.uk.xensource.com> b/test/corpus/<alpine.DEB.2.02.1206061627380.6030@kaball.uk.xensource.com>
deleted file mode 100644 (file)
index eb687ad..0000000
+++ /dev/null
@@ -1,132 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Jun 06 16:31:45 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 06 Jun 2012 16:31:45 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1ScICx-0003WN-93
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 06 Jun 2012 16:31:44 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1ScI9Q-0006Fv-8e; Wed, 06 Jun 2012 15:28:00 +0000
-Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1ScI9O-0006Fm-Oh
-       for xen-devel@lists.xen.org; Wed, 06 Jun 2012 15:27:58 +0000
-Received: from [193.109.254.147:57454] by server-7.bemta-14.messagelabs.com id
-       17/41-29165-EF67FCF4; Wed, 06 Jun 2012 15:27:58 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-15.tower-27.messagelabs.com!1338996477!6251332!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDExMjA=\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 17829 invoked from network); 6 Jun 2012 15:27:57 -0000
-Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-15.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
-       6 Jun 2012 15:27:57 -0000
-X-IronPort-AV: E=Sophos;i="4.75,724,1330905600"; d="scan'208";a="12862863"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       06 Jun 2012 15:27:57 +0000
-Received: from sstabellini-Precision-WorkStation-T3500.local (10.80.238.169)
-       by smtprelay.citrix.com (10.30.203.162) with Microsoft SMTP Server id
-       8.3.213.0; Wed, 6 Jun 2012 16:27:57 +0100
-Date: Wed, 6 Jun 2012 16:27:50 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-X-Sender: sstabellini@kaball.uk.xensource.com
-To: Ian Campbell <ian.campbell@citrix.com>
-In-Reply-To: <1338565207-2888-15-git-send-email-ian.campbell@citrix.com>
-Message-ID: <alpine.DEB.2.02.1206061627380.6030@kaball.uk.xensource.com>
-References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
-       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-       <1338565207-2888-15-git-send-email-ian.campbell@citrix.com>
-User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 15/38] arm: implement stub version of
- flush_tlb_mask.
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Fri, 1 Jun 2012, Ian Campbell wrote:
-> Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
-
-Acked-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-
->  xen/arch/arm/dummy.S |    1 -
->  xen/arch/arm/smp.c   |    9 +++++++++
->  2 files changed, 9 insertions(+), 1 deletions(-)
-> 
-> diff --git a/xen/arch/arm/dummy.S b/xen/arch/arm/dummy.S
-> index 8eddd15..c001e8d 100644
-> --- a/xen/arch/arm/dummy.S
-> +++ b/xen/arch/arm/dummy.S
-> @@ -48,7 +48,6 @@ DUMMY(domain_get_maximum_gpfn);
->  DUMMY(domain_relinquish_resources);
->  DUMMY(domain_set_time_offset);
->  DUMMY(dom_cow);
-> -DUMMY(flush_tlb_mask);
->  DUMMY(gmfn_to_mfn);
->  DUMMY(hypercall_create_continuation);
->  DUMMY(send_timer_event);
-> diff --git a/xen/arch/arm/smp.c b/xen/arch/arm/smp.c
-> index cad84f5..824c8c8 100644
-> --- a/xen/arch/arm/smp.c
-> +++ b/xen/arch/arm/smp.c
-> @@ -1,5 +1,14 @@
->  #include <xen/config.h>
-> +#include <asm/system.h>
->  #include <asm/smp.h>
-> +#include <asm/cpregs.h>
-> +#include <asm/page.h>
-> +
-> +void flush_tlb_mask(const cpumask_t *mask)
-> +{
-> +    /* XXX IPI other processors */
-> +    flush_xen_data_tlb();
-> +}
->  
->  void smp_call_function(
->      void (*func) (void *info),
-> -- 
-> 1.7.9.1
-> 
-> 
-> _______________________________________________
-> Xen-devel mailing list
-> Xen-devel@lists.xen.org
-> http://lists.xen.org/xen-devel
-> 
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<alpine.DEB.2.02.1206061713410.6030@kaball.uk.xensource.com> b/test/corpus/<alpine.DEB.2.02.1206061713410.6030@kaball.uk.xensource.com>
deleted file mode 100644 (file)
index b19bdb6..0000000
+++ /dev/null
@@ -1,150 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Jun 06 17:17:38 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 06 Jun 2012 17:17:38 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1ScIvQ-0003im-Bj
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 06 Jun 2012 17:17:38 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1ScIrx-0000Yq-JI; Wed, 06 Jun 2012 16:14:01 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1ScIrw-0000Yh-6D
-       for xen-devel@lists.xen.org; Wed, 06 Jun 2012 16:14:00 +0000
-Received: from [85.158.143.35:8295] by server-1.bemta-4.messagelabs.com id
-       9E/09-10042-7C18FCF4; Wed, 06 Jun 2012 16:13:59 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-6.tower-21.messagelabs.com!1338999238!19066721!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDExMjA=\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 22818 invoked from network); 6 Jun 2012 16:13:59 -0000
-Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-6.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
-       6 Jun 2012 16:13:59 -0000
-X-IronPort-AV: E=Sophos;i="4.75,725,1330905600"; d="scan'208";a="12863982"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       06 Jun 2012 16:13:58 +0000
-Received: from sstabellini-Precision-WorkStation-T3500.local (10.80.238.169)
-       by smtprelay.citrix.com (10.30.203.162) with Microsoft SMTP Server id
-       8.3.213.0; Wed, 6 Jun 2012 17:13:59 +0100
-Date: Wed, 6 Jun 2012 17:13:52 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-X-Sender: sstabellini@kaball.uk.xensource.com
-To: Ian Campbell <ian.campbell@citrix.com>
-In-Reply-To: <1338565207-2888-16-git-send-email-ian.campbell@citrix.com>
-Message-ID: <alpine.DEB.2.02.1206061713410.6030@kaball.uk.xensource.com>
-References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
-       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-       <1338565207-2888-16-git-send-email-ian.campbell@citrix.com>
-User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 16/38] arm: Add simple cpu_{sibling,
- core}_mask
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Fri, 1 Jun 2012, Ian Campbell wrote:
-> Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
-
-
-Acked-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-
->  xen/arch/arm/dummy.S   |    2 --
->  xen/arch/arm/setup.c   |    7 +++++++
->  xen/arch/arm/smpboot.c |    5 +++++
->  3 files changed, 12 insertions(+), 2 deletions(-)
-> 
-> diff --git a/xen/arch/arm/dummy.S b/xen/arch/arm/dummy.S
-> index c001e8d..03f7489 100644
-> --- a/xen/arch/arm/dummy.S
-> +++ b/xen/arch/arm/dummy.S
-> @@ -7,8 +7,6 @@ x:   .word 0xe7f000f0 /* Undefined instruction */
->  x:  mov pc, lr
->      
->  /* SMP support */
-> -DUMMY(per_cpu__cpu_core_mask);
-> -DUMMY(per_cpu__cpu_sibling_mask);
->  DUMMY(node_online_map);
->  DUMMY(smp_send_state_dump);
->  
-> diff --git a/xen/arch/arm/setup.c b/xen/arch/arm/setup.c
-> index 81ababb..b0cfacc 100644
-> --- a/xen/arch/arm/setup.c
-> +++ b/xen/arch/arm/setup.c
-> @@ -230,6 +230,13 @@ void __init start_xen(unsigned long boot_phys_offset,
->          }
->      }
->  
-> +    if ( !zalloc_cpumask_var(&per_cpu(cpu_sibling_mask, 0)) ||
-> +         !zalloc_cpumask_var(&per_cpu(cpu_core_mask, 0)) )
-> +        BUG();
-> +
-> +    cpumask_clear(per_cpu(cpu_sibling_mask, 0));
-> +    cpumask_clear(per_cpu(cpu_core_mask, 0));
-> +
->      printk("Brought up %ld CPUs\n", (long)num_online_cpus());
->      /* TODO: smp_cpus_done(); */
->  
-> diff --git a/xen/arch/arm/smpboot.c b/xen/arch/arm/smpboot.c
-> index ea05afc..8517d86 100644
-> --- a/xen/arch/arm/smpboot.c
-> +++ b/xen/arch/arm/smpboot.c
-> @@ -52,6 +52,11 @@ unsigned long __initdata ready_cpus = 0;
->  
->  /* ID of the PCPU we're running on */
->  DEFINE_PER_CPU(unsigned int, cpu_id);
-> +/* XXX these seem awefully x86ish... */
-> +/* representing HT siblings of each logical CPU */
-> +DEFINE_PER_CPU_READ_MOSTLY(cpumask_var_t, cpu_sibling_mask);
-> +/* representing HT and core siblings of each logical CPU */
-> +DEFINE_PER_CPU_READ_MOSTLY(cpumask_var_t, cpu_core_mask);
->  
->  void __init
->  smp_prepare_cpus (unsigned int max_cpus)
-> -- 
-> 1.7.9.1
-> 
-> 
-> _______________________________________________
-> Xen-devel mailing list
-> Xen-devel@lists.xen.org
-> http://lists.xen.org/xen-devel
-> 
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<alpine.DEB.2.02.1206061725020.6030@kaball.uk.xensource.com> b/test/corpus/<alpine.DEB.2.02.1206061725020.6030@kaball.uk.xensource.com>
deleted file mode 100644 (file)
index 542f64c..0000000
+++ /dev/null
@@ -1,194 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Jun 06 17:32:58 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 06 Jun 2012 17:32:58 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1ScJAF-0003mw-TS
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 06 Jun 2012 17:32:58 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1ScJ58-0000ze-9c; Wed, 06 Jun 2012 16:27:38 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1ScJ56-0000zY-BM
-       for xen-devel@lists.xen.org; Wed, 06 Jun 2012 16:27:36 +0000
-Received: from [85.158.143.35:51423] by server-2.bemta-4.messagelabs.com id
-       BB/8E-17938-7F48FCF4; Wed, 06 Jun 2012 16:27:35 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-4.tower-21.messagelabs.com!1339000055!8664610!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDExMjA=\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 27494 invoked from network); 6 Jun 2012 16:27:35 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-4.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
-       6 Jun 2012 16:27:35 -0000
-X-IronPort-AV: E=Sophos;i="4.75,725,1330905600"; d="scan'208";a="12864315"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       06 Jun 2012 16:27:32 +0000
-Received: from sstabellini-Precision-WorkStation-T3500.local (10.80.238.169)
-       by smtprelay.citrix.com (10.30.203.162) with Microsoft SMTP Server id
-       8.3.213.0; Wed, 6 Jun 2012 17:27:32 +0100
-Date: Wed, 6 Jun 2012 17:27:25 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-X-Sender: sstabellini@kaball.uk.xensource.com
-To: Ian Campbell <ian.campbell@citrix.com>
-In-Reply-To: <1338565207-2888-17-git-send-email-ian.campbell@citrix.com>
-Message-ID: <alpine.DEB.2.02.1206061725020.6030@kaball.uk.xensource.com>
-References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
-       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-       <1338565207-2888-17-git-send-email-ian.campbell@citrix.com>
-User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 17/38] arm: allow p2m to be created with
- specific MATTR.
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Fri, 1 Jun 2012, Ian Campbell wrote:
-> Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
-> ---
->  xen/arch/arm/p2m.c         |   15 ++++++++-------
->  xen/include/asm-arm/page.h |    6 ++++--
->  2 files changed, 12 insertions(+), 9 deletions(-)
-> 
-> diff --git a/xen/arch/arm/p2m.c b/xen/arch/arm/p2m.c
-> index 9b40e93..46c6f17 100644
-> --- a/xen/arch/arm/p2m.c
-> +++ b/xen/arch/arm/p2m.c
-> @@ -148,7 +148,7 @@ static int p2m_create_entry(struct domain *d,
->      clear_page(p);
->      unmap_domain_page(p);
->  
-> -    pte = mfn_to_p2m_entry(page_to_mfn(page));
-> +    pte = mfn_to_p2m_entry(page_to_mfn(page), MATTR_MEM);
->  
->      write_pte(entry, pte);
->  
-
-This works because p2m_create_entry is always called to create first or
-second level entries only.
-Maybe we should rename p2m_create_entry to p2m_create_table_entry for
-clarity? Or add a comment?
-
-
-> @@ -159,7 +159,8 @@ static int create_p2m_entries(struct domain *d,
->                       int alloc,
->                       paddr_t start_gpaddr,
->                       paddr_t end_gpaddr,
-> -                     paddr_t maddr)
-> +                     paddr_t maddr,
-> +                     int mattr)
->  {
->      int rc;
->      struct p2m_domain *p2m = &d->arch.p2m;
-> @@ -235,11 +236,11 @@ static int create_p2m_entries(struct domain *d,
->                  goto out;
->              }
->  
-> -            pte = mfn_to_p2m_entry(page_to_mfn(page));
-> +            pte = mfn_to_p2m_entry(page_to_mfn(page), mattr);
->  
->              write_pte(&third[third_table_offset(addr)], pte);
->          } else {
-> -            lpae_t pte = mfn_to_p2m_entry(maddr >> PAGE_SHIFT);
-> +            lpae_t pte = mfn_to_p2m_entry(maddr >> PAGE_SHIFT, mattr);
->              write_pte(&third[third_table_offset(addr)], pte);
->              maddr += PAGE_SIZE;
->          }
-> @@ -263,7 +264,7 @@ int p2m_populate_ram(struct domain *d,
->                       paddr_t start,
->                       paddr_t end)
->  {
-> -    return create_p2m_entries(d, 1, start, end, 0);
-> +    return create_p2m_entries(d, 1, start, end, 0, MATTR_MEM);
->  }
->  
->  int map_mmio_regions(struct domain *d,
-> @@ -271,7 +272,7 @@ int map_mmio_regions(struct domain *d,
->                       paddr_t end_gaddr,
->                       paddr_t maddr)
->  {
-> -    return create_p2m_entries(d, 0, start_gaddr, end_gaddr, maddr);
-> +    return create_p2m_entries(d, 0, start_gaddr, end_gaddr, maddr, MATTR_DEV);
->  }
->  
->  int guest_physmap_add_page(struct domain *d,
-> @@ -281,7 +282,7 @@ int guest_physmap_add_page(struct domain *d,
->  {
->      return create_p2m_entries(d, 0, gpfn << PAGE_SHIFT,
->                                (gpfn + (1<<page_order)) << PAGE_SHIFT,
-> -                              mfn << PAGE_SHIFT);
-> +                              mfn << PAGE_SHIFT, MATTR_MEM);
->  }
->  
->  void guest_physmap_remove_page(struct domain *d,
-> diff --git a/xen/include/asm-arm/page.h b/xen/include/asm-arm/page.h
-> index c7b6530..bb1729a 100644
-> --- a/xen/include/asm-arm/page.h
-> +++ b/xen/include/asm-arm/page.h
-> @@ -46,6 +46,8 @@
->  #define DEV_WC        BUFFERABLE
->  #define DEV_CACHED    WRITEBACK
->  
-> +#define MATTR_DEV     0x1
-> +#define MATTR_MEM     0xf
->  
->  #ifndef __ASSEMBLY__
->  
-> @@ -169,7 +171,7 @@ static inline lpae_t mfn_to_xen_entry(unsigned long mfn)
->      return e;
->  }
->  
-> -static inline lpae_t mfn_to_p2m_entry(unsigned long mfn)
-> +static inline lpae_t mfn_to_p2m_entry(unsigned long mfn, unsigned int mattr)
->  {
->      paddr_t pa = ((paddr_t) mfn) << PAGE_SHIFT;
->      lpae_t e = (lpae_t) {
-> @@ -178,7 +180,7 @@ static inline lpae_t mfn_to_p2m_entry(unsigned long mfn)
->          .p2m.sh = LPAE_SH_OUTER,
->          .p2m.write = 1,
->          .p2m.read = 1,
-> -        .p2m.mattr = 0xf,
-> +        .p2m.mattr = mattr,
->          .p2m.table = 1,
->          .p2m.valid = 1,
->      };
-
-the rest of the patch is fine
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<alpine.DEB.2.02.1206061739130.6030@kaball.uk.xensource.com> b/test/corpus/<alpine.DEB.2.02.1206061739130.6030@kaball.uk.xensource.com>
deleted file mode 100644 (file)
index d8c10c7..0000000
+++ /dev/null
@@ -1,255 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Jun 06 18:03:13 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 06 Jun 2012 18:03:13 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1ScJdT-0003rK-0J
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 06 Jun 2012 18:03:13 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1ScJYQ-0001io-KJ; Wed, 06 Jun 2012 16:57:54 +0000
-Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1ScJYO-0001ij-KO
-       for xen-devel@lists.xen.org; Wed, 06 Jun 2012 16:57:52 +0000
-Received: from [193.109.254.147:23280] by server-4.bemta-14.messagelabs.com id
-       3E/9A-27598-F0C8FCF4; Wed, 06 Jun 2012 16:57:51 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-15.tower-27.messagelabs.com!1339001871!6265353!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDExMjA=\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 31521 invoked from network); 6 Jun 2012 16:57:51 -0000
-Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-15.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
-       6 Jun 2012 16:57:51 -0000
-X-IronPort-AV: E=Sophos;i="4.75,725,1330905600"; d="scan'208";a="12864769"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       06 Jun 2012 16:57:34 +0000
-Received: from sstabellini-Precision-WorkStation-T3500.local (10.80.238.169)
-       by smtprelay.citrix.com (10.30.203.162) with Microsoft SMTP Server id
-       8.3.213.0; Wed, 6 Jun 2012 17:57:34 +0100
-Date: Wed, 6 Jun 2012 17:57:27 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-X-Sender: sstabellini@kaball.uk.xensource.com
-To: Ian Campbell <ian.campbell@citrix.com>
-In-Reply-To: <1338565207-2888-18-git-send-email-ian.campbell@citrix.com>
-Message-ID: <alpine.DEB.2.02.1206061739130.6030@kaball.uk.xensource.com>
-References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
-       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-       <1338565207-2888-18-git-send-email-ian.campbell@citrix.com>
-User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 18/38] arm: implement vpl011 (UART) emulator.
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Fri, 1 Jun 2012, Ian Campbell wrote:
-> This is not interended to provide a full emulation, but rather just enough to
-> satisfy the use made by Linux' boot time decompressor code (which is too early
-> for DT etc)
-> 
-> Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
-> ---
->  xen/arch/arm/Makefile        |    1 +
->  xen/arch/arm/domain.c        |    4 +
->  xen/arch/arm/io.c            |    1 +
->  xen/arch/arm/io.h            |    1 +
->  xen/arch/arm/vpl011.c        |  155 ++++++++++++++++++++++++++++++++++++++++++
->  xen/arch/arm/vpl011.h        |   34 +++++++++
->  xen/include/asm-arm/domain.h |    8 ++
->  7 files changed, 204 insertions(+), 0 deletions(-)
->  create mode 100644 xen/arch/arm/vpl011.c
->  create mode 100644 xen/arch/arm/vpl011.h
-> 
-> diff --git a/xen/arch/arm/Makefile b/xen/arch/arm/Makefile
-> index 9440a21..5a87ba6 100644
-> --- a/xen/arch/arm/Makefile
-> +++ b/xen/arch/arm/Makefile
-> @@ -25,6 +25,7 @@ obj-y += shutdown.o
->  obj-y += traps.o
->  obj-y += vgic.o
->  obj-y += vtimer.o
-> +obj-y += vpl011.o
->  
->  #obj-bin-y += ....o
->  
-> diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
-> index e867cb2..d830980 100644
-> --- a/xen/arch/arm/domain.c
-> +++ b/xen/arch/arm/domain.c
-> @@ -13,6 +13,7 @@
->  
->  #include "gic.h"
->  #include "vtimer.h"
-> +#include "vpl011.h"
->  
->  DEFINE_PER_CPU(struct vcpu *, curr_vcpu);
->  
-> @@ -201,6 +202,9 @@ int arch_domain_create(struct domain *d, unsigned int domcr_flags)
->      if ( (rc = domain_vgic_init(d)) != 0 )
->          goto fail;
->  
-> +    if ( (rc = domain_uart0_init(d)) != 0 )
-> +        goto fail;
-> +
->      if ( !is_idle_domain(d) )
->      {
->          rc = -ENOMEM;
-> diff --git a/xen/arch/arm/io.c b/xen/arch/arm/io.c
-> index 4461225..18f6164 100644
-> --- a/xen/arch/arm/io.c
-> +++ b/xen/arch/arm/io.c
-> @@ -25,6 +25,7 @@
->  static const struct mmio_handler *const mmio_handlers[] =
->  {
->      &vgic_distr_mmio_handler,
-> +    &uart0_mmio_handler,
->  };
->  #define MMIO_HANDLER_NR ARRAY_SIZE(mmio_handlers)
->  
-> diff --git a/xen/arch/arm/io.h b/xen/arch/arm/io.h
-> index 8cc5ca7..9a507f5 100644
-> --- a/xen/arch/arm/io.h
-> +++ b/xen/arch/arm/io.h
-> @@ -40,6 +40,7 @@ struct mmio_handler {
->  };
->  
->  extern const struct mmio_handler vgic_distr_mmio_handler;
-> +extern const struct mmio_handler uart0_mmio_handler;
->  
->  extern int handle_mmio(mmio_info_t *info);
->  
-> diff --git a/xen/arch/arm/vpl011.c b/xen/arch/arm/vpl011.c
-> new file mode 100644
-> index 0000000..1491dcc
-> --- /dev/null
-> +++ b/xen/arch/arm/vpl011.c
-> @@ -0,0 +1,155 @@
-> +/*
-> + * xen/arch/arm/vpl011.c
-> + *
-> + * ARM PL011 UART Emulator (DEBUG)
-> + *
-> + * Ian Campbell <ian.campbell@citrix.com>
-> + * Copyright (c) 2012 Citrix Systems.
-> + *
-> + * This program is free software; you can redistribute it and/or modify
-> + * it under the terms of the GNU General Public License as published by
-> + * the Free Software Foundation; either version 2 of the License, or
-> + * (at your option) any later version.
-> + *
-> + * This program is distributed in the hope that it will be useful,
-> + * but WITHOUT ANY WARRANTY; without even the implied warranty of
-> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-> + * GNU General Public License for more details.
-> + */
-> +
-> +/*
-> + * This is not intended to be a full emulation of a PL011
-> + * device. Rather it is intended to provide a sufficient veneer of one
-> + * that early code (such as Linux's boot time decompressor) which
-> + * hardcodes output directly to such a device are able to make progress.
-> + *
-> + * This device is not intended to be enumerable or exposed to the OS
-> + * (e.g. via Device Tree).
-> + */
-> +
-> +#include <xen/config.h>
-> +#include <xen/lib.h>
-> +#include <xen/sched.h>
-> +#include <xen/errno.h>
-> +#include <xen/ctype.h>
-> +
-> +#include "io.h"
-> +
-> +#define UART0_BASE_ADDRESS 0x1c090000
-> +
-> +#define UARTDR 0x000
-> +#define UARTFR 0x018
-> +
-> +int domain_uart0_init(struct domain *d)
-> +{
-> +    int rc;
-> +    if ( d->domain_id == 0 )
-> +        return 0;
-> +
-> +    spin_lock_init(&d->arch.uart0.lock);
-> +    d->arch.uart0.idx = 0;
-> +
-> +    rc = -ENOMEM;
-> +    d->arch.uart0.buf = xzalloc_array(char, VPL011_BUF_SIZE);
-> +    if ( !d->arch.uart0.buf )
-> +        goto out;
-> +
-> +    rc = 0;
-> +out:
-> +    return rc;
-> +}
-> +
-> +static void uart0_print_char(char c)
-> +{
-> +    struct vpl011 *uart = &current->domain->arch.uart0;
-> +
-> +    /* Accept only printable characters, newline, and horizontal tab. */
-> +    if ( !isprint(c) && (c != '\n') && (c != '\t') )
-> +        return ;
-> +
-> +    spin_lock(&uart->lock);
-> +    uart->buf[uart->idx++] = c;
-> +    if ( (uart->idx == (VPL011_BUF_SIZE - 2)) || (c == '\n') )
-> +    {
-> +        if ( c != '\n' )
-> +            uart->buf[uart->idx++] = '\n';
-> +        uart->buf[uart->idx] = '\0';
-> +        printk(XENLOG_G_DEBUG "DOM%u: %s",
-> +               current->domain->domain_id, uart->buf);
-> +        uart->idx = 0;
-> +    }
-> +    spin_unlock(&uart->lock);
-> +}
-> +
-> +static int uart0_mmio_check(struct vcpu *v, paddr_t addr)
-> +{
-> +    return v->domain->domain_id && addr >= UART0_BASE_ADDRESS && addr < (UART0_BASE_ADDRESS+65536);
-> +}
-
-maybe we need UART0_BASE_ADDRESS_START and UART0_BASE_ADDRESS_END
-instead of having an arbitrary +65536
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<alpine.DEB.2.02.1206061825480.2415@kaball.uk.xensource.com> b/test/corpus/<alpine.DEB.2.02.1206061825480.2415@kaball.uk.xensource.com>
deleted file mode 100644 (file)
index 8034466..0000000
+++ /dev/null
@@ -1,207 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Jun 06 18:33:49 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 06 Jun 2012 18:33:49 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1ScK75-0003xY-44
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 06 Jun 2012 18:33:48 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1ScK1a-0002Nw-0h; Wed, 06 Jun 2012 17:28:02 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1ScK1X-0002Nr-WA
-       for xen-devel@lists.xen.org; Wed, 06 Jun 2012 17:28:00 +0000
-Received: from [85.158.143.35:45760] by server-3.bemta-4.messagelabs.com id
-       AB/F8-29237-F139FCF4; Wed, 06 Jun 2012 17:27:59 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-2.tower-21.messagelabs.com!1339003678!8166234!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDExMjA=\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 25572 invoked from network); 6 Jun 2012 17:27:58 -0000
-Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-2.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
-       6 Jun 2012 17:27:58 -0000
-X-IronPort-AV: E=Sophos;i="4.75,725,1330905600"; d="scan'208";a="12865213"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       06 Jun 2012 17:27:08 +0000
-Received: from kaball.uk.xensource.com (10.80.2.59) by
-       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
-       8.3.213.0; Wed, 6 Jun 2012 18:27:08 +0100
-Date: Wed, 6 Jun 2012 18:26:53 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-X-Sender: sstabellini@kaball.uk.xensource.com
-To: Ian Campbell <ian.campbell@citrix.com>
-In-Reply-To: <1338565207-2888-22-git-send-email-ian.campbell@citrix.com>
-Message-ID: <alpine.DEB.2.02.1206061825480.2415@kaball.uk.xensource.com>
-References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
-       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-       <1338565207-2888-22-git-send-email-ian.campbell@citrix.com>
-User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 22/38] arm: implement
- vcpu_show_execution_state
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Fri, 1 Jun 2012, Ian Campbell wrote:
-> Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
-> ---
->  xen/arch/arm/dummy.S |    1 -
->  xen/arch/arm/traps.c |   56 +++++++++++++++++++++++++++++++++++++++++++++----
->  2 files changed, 51 insertions(+), 6 deletions(-)
-> 
-> diff --git a/xen/arch/arm/dummy.S b/xen/arch/arm/dummy.S
-> index 03f7489..cab9522 100644
-> --- a/xen/arch/arm/dummy.S
-> +++ b/xen/arch/arm/dummy.S
-> @@ -21,7 +21,6 @@ DUMMY(pirq_set_affinity);
->  DUMMY(arch_get_info_guest);
->  DUMMY(arch_vcpu_reset);
->  NOP(update_vcpu_system_time);
-> -DUMMY(vcpu_show_execution_state);
->  
->  /* Page Reference & Type Maintenance */
->  DUMMY(get_page);
-> diff --git a/xen/arch/arm/traps.c b/xen/arch/arm/traps.c
-> index 35907ee..ec74298 100644
-> --- a/xen/arch/arm/traps.c
-> +++ b/xen/arch/arm/traps.c
-> @@ -170,7 +170,13 @@ void panic_PAR(uint64_t par, const char *when)
->      panic("Error during %s-to-physical address translation\n", when);
->  }
->  
-> -void show_registers(struct cpu_user_regs *regs)
-> +struct reg_ctxt {
-> +    uint32_t sctlr;
-> +    uint32_t ttbr0, ttbr1, ttbcr;
-> +};
-> +static void _show_registers(struct cpu_user_regs *regs,
-> +                            struct reg_ctxt *ctxt,
-> +                            int guest_mode)
->  {
->      static const char *mode_strings[] = {
->         [PSR_MODE_USR] = "USR",
-> @@ -187,7 +193,7 @@ void show_registers(struct cpu_user_regs *regs)
->      print_xen_info();
->      printk("CPU:    %d\n", smp_processor_id());
->      printk("PC:     %08"PRIx32, regs->pc);
-> -    if ( !guest_mode(regs) )
-> +    if ( !guest_mode )
->              print_symbol(" %s", regs->pc);
->      printk("\n");
->      printk("CPSR:   %08"PRIx32" MODE:%s\n", regs->cpsr,
-> @@ -199,7 +205,7 @@ void show_registers(struct cpu_user_regs *regs)
->      printk("     R8: %08"PRIx32" R9: %08"PRIx32" R10:%08"PRIx32" R11:%08"PRIx32" R12:%08"PRIx32"\n",
->             regs->r8, regs->r9, regs->r10, regs->r11, regs->r12);
->  
-> -    if ( guest_mode(regs) )
-> +    if ( guest_mode )
->      {
->          printk("USR: SP: %08"PRIx32" LR: %08"PRIx32" CPSR:%08"PRIx32"\n",
->                 regs->sp_usr, regs->lr_usr, regs->cpsr);
-> @@ -217,8 +223,8 @@ void show_registers(struct cpu_user_regs *regs)
->                 regs->r8_fiq, regs->r9_fiq, regs->r10_fiq, regs->r11_fiq, regs->r11_fiq);
->          printk("\n");
->          printk("TTBR0 %08"PRIx32" TTBR1 %08"PRIx32" TTBCR %08"PRIx32"\n",
-> -               READ_CP32(TTBR0), READ_CP32(TTBR1), READ_CP32(TTBCR));
-> -        printk("SCTLR %08"PRIx32"\n", READ_CP32(SCTLR));
-> +               ctxt->ttbr0, ctxt->ttbr1, ctxt->ttbcr);
-> +        printk("SCTLR %08"PRIx32"\n", ctxt->sctlr);
->          printk("VTTBR %010"PRIx64"\n", READ_CP64(VTTBR));
->          printk("\n");
->      }
-> @@ -241,6 +247,26 @@ void show_registers(struct cpu_user_regs *regs)
->      printk("\n");
->  }
->  
-> +void show_registers(struct cpu_user_regs *regs)
-> +{
-> +    struct reg_ctxt ctxt;
-> +    ctxt.sctlr = READ_CP32(SCTLR);
-> +    ctxt.ttbcr = READ_CP32(TTBCR);
-> +    ctxt.ttbr0 = READ_CP32(TTBR0);
-> +    ctxt.ttbr1 = READ_CP32(TTBR1);
-> +    _show_registers(regs, &ctxt, guest_mode(regs));
-> +}
-> +
-> +void vcpu_show_registers(const struct vcpu *v)
-> +{
-> +    struct reg_ctxt ctxt;
-> +    ctxt.sctlr = v->arch.sctlr;
-> +    ctxt.ttbcr = v->arch.ttbcr;
-> +    ctxt.ttbr0 = v->arch.ttbr0;
-> +    ctxt.ttbr1 = v->arch.ttbr1;
-> +    _show_registers(&v->arch.cpu_info->guest_cpu_user_regs, &ctxt, 1);
-> +}
-> +
->  static void show_guest_stack(struct cpu_user_regs *regs)
->  {
->      printk("GUEST STACK GOES HERE\n");
-> @@ -334,6 +360,26 @@ void show_execution_state(struct cpu_user_regs *regs)
->      show_stack(regs);
->  }
->  
-> +void vcpu_show_execution_state(struct vcpu *v)
-> +{
-> +    printk("*** Dumping Dom%d vcpu#%d state: ***\n",
-> +           v->domain->domain_id, v->vcpu_id);
-> +
-> +    if ( v == current )
-> +    {
-> +        show_execution_state(guest_cpu_user_regs());
-> +        return;
-> +    }
-> +
-> +    vcpu_pause(v); /* acceptably dangerous */
-> +
-> +    vcpu_show_registers(v);
-> +    if ( !usr_mode(&v->arch.cpu_info->guest_cpu_user_regs) )
-> +        show_guest_stack(&v->arch.cpu_info->guest_cpu_user_regs);
-
-isn't the if condition inverted?
-
-> +    vcpu_unpause(v);
-> +}
-> +
->  static void do_unexpected_trap(const char *msg, struct cpu_user_regs *regs)
->  {
->      printk("Unexpected Trap: %s\n", msg);
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<alpine.DEB.2.02.1206061833290.2415@kaball.uk.xensource.com> b/test/corpus/<alpine.DEB.2.02.1206061833290.2415@kaball.uk.xensource.com>
deleted file mode 100644 (file)
index 628e8ff..0000000
+++ /dev/null
@@ -1,165 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Jun 06 18:43:38 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 06 Jun 2012 18:43:38 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1ScKGd-000408-9M
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 06 Jun 2012 18:43:38 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1ScKBz-0002kS-B3; Wed, 06 Jun 2012 17:38:47 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1ScKBx-0002jg-Mf
-       for xen-devel@lists.xen.org; Wed, 06 Jun 2012 17:38:45 +0000
-Received: from [85.158.138.51:26508] by server-8.bemta-3.messagelabs.com id
-       BD/FB-22118-4A59FCF4; Wed, 06 Jun 2012 17:38:44 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-4.tower-174.messagelabs.com!1339004324!31072848!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDExMjA=\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 3548 invoked from network); 6 Jun 2012 17:38:44 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-4.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
-       6 Jun 2012 17:38:44 -0000
-X-IronPort-AV: E=Sophos;i="4.75,725,1330905600"; d="scan'208";a="12865382"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       06 Jun 2012 17:38:44 +0000
-Received: from kaball.uk.xensource.com (10.80.2.59) by
-       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
-       8.3.213.0; Wed, 6 Jun 2012 18:38:43 +0100
-Date: Wed, 6 Jun 2012 18:38:28 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-X-Sender: sstabellini@kaball.uk.xensource.com
-To: Ian Campbell <ian.campbell@citrix.com>
-In-Reply-To: <1338565207-2888-23-git-send-email-ian.campbell@citrix.com>
-Message-ID: <alpine.DEB.2.02.1206061833290.2415@kaball.uk.xensource.com>
-References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
-       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-       <1338565207-2888-23-git-send-email-ian.campbell@citrix.com>
-User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 23/38] arm: use correct attributes for
- mappings in copy_from_paddr()
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Fri, 1 Jun 2012, Ian Campbell wrote:
-> The DTB is in RAM (hence bufferable), kernel is in flash and therefor requires
-> a device type mapping (hence dev shared).
-> 
-> Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
-> ---
->  xen/arch/arm/kernel.c       |    8 ++++----
->  xen/arch/arm/setup.c        |    2 +-
->  xen/include/asm-arm/setup.h |    2 +-
->  3 files changed, 6 insertions(+), 6 deletions(-)
-> 
-> diff --git a/xen/arch/arm/kernel.c b/xen/arch/arm/kernel.c
-> index 130d488..1a705c9 100644
-> --- a/xen/arch/arm/kernel.c
-> +++ b/xen/arch/arm/kernel.c
-> @@ -39,7 +39,7 @@ struct minimal_dtb_header {
->   * @paddr: source physical address
->   * @len: length to copy
->   */
-> -void copy_from_paddr(void *dst, paddr_t paddr, unsigned long len)
-> +void copy_from_paddr(void *dst, paddr_t paddr, unsigned long len, int mattr)
->  {
->      void *src = (void *)FIXMAP_ADDR(FIXMAP_MISC);
->  
-> @@ -51,7 +51,7 @@ void copy_from_paddr(void *dst, paddr_t paddr, unsigned long len)
->          s = paddr & (PAGE_SIZE-1);
->          l = min(PAGE_SIZE - s, len);
->  
-> -        set_fixmap(FIXMAP_MISC, p, DEV_SHARED);
-> +        set_fixmap(FIXMAP_MISC, p, mattr);
->          memcpy(dst, src + s, l);
->  
->          paddr += l;
-> @@ -111,7 +111,7 @@ static int kernel_try_zimage_prepare(struct kernel_info *info)
->      /*
->       * Check for an appended DTB.
->       */
-> -    copy_from_paddr(&dtb_hdr, KERNEL_FLASH_ADDRESS + end - start, sizeof(dtb_hdr));
-> +    copy_from_paddr(&dtb_hdr, KERNEL_FLASH_ADDRESS + end - start, sizeof(dtb_hdr), DEV_SHARED);
->      if (be32_to_cpu(dtb_hdr.magic) == DTB_MAGIC) {
->          end += be32_to_cpu(dtb_hdr.total_size);
->      }
-> @@ -151,7 +151,7 @@ static int kernel_try_elf_prepare(struct kernel_info *info)
->      if ( info->kernel_img == NULL )
->          panic("Cannot allocate temporary buffer for kernel.\n");
->  
-> -    copy_from_paddr(info->kernel_img, KERNEL_FLASH_ADDRESS, KERNEL_FLASH_SIZE);
-> +    copy_from_paddr(info->kernel_img, KERNEL_FLASH_ADDRESS, KERNEL_FLASH_SIZE, DEV_SHARED);
->  
->      if ( (rc = elf_init(&info->elf.elf, info->kernel_img, KERNEL_FLASH_SIZE )) != 0 )
->          return rc;
-> diff --git a/xen/arch/arm/setup.c b/xen/arch/arm/setup.c
-> index b0cfacc..f5473cd 100644
-> --- a/xen/arch/arm/setup.c
-> +++ b/xen/arch/arm/setup.c
-> @@ -122,7 +122,7 @@ static void __init setup_mm(unsigned long dtb_paddr, size_t dtb_size)
->       * TODO: handle other payloads too.
->       */
->      device_tree_flattened = mfn_to_virt(alloc_boot_pages(dtb_pages, 1));
-> -    copy_from_paddr(device_tree_flattened, dtb_paddr, dtb_size);
-> +    copy_from_paddr(device_tree_flattened, dtb_paddr, dtb_size, BUFFERABLE);
->  
->      /* Add non-xenheap memory */
->      init_boot_pages(pfn_to_paddr(xenheap_mfn_start + xenheap_pages),
-> diff --git a/xen/include/asm-arm/setup.h b/xen/include/asm-arm/setup.h
-> index 05ff89e..faadccc 100644
-> --- a/xen/include/asm-arm/setup.h
-> +++ b/xen/include/asm-arm/setup.h
-> @@ -3,7 +3,7 @@
->  
->  #include <public/version.h>
->  
-> -void copy_from_paddr(void *dst, paddr_t paddr, unsigned long len);
-> +void copy_from_paddr(void *dst, paddr_t paddr, unsigned long len, int mattr);
->  
->  void arch_get_xen_caps(xen_capabilities_info_t *info);
->  
-
-The patch is correct, but it shouldn't call the new parameter mattr
-because it can easily be confused with the memattr bits (see
-http://marc.info/?l=xen-devel&m=133856578918985).
-I would call it "int attrindx" instead.
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<alpine.DEB.2.02.1206061839560.2415@kaball.uk.xensource.com> b/test/corpus/<alpine.DEB.2.02.1206061839560.2415@kaball.uk.xensource.com>
deleted file mode 100644 (file)
index 64ec673..0000000
+++ /dev/null
@@ -1,111 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Jun 06 18:44:37 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 06 Jun 2012 18:44:37 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1ScKHa-00040T-N3
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 06 Jun 2012 18:44:37 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1ScKDj-0002pt-RB; Wed, 06 Jun 2012 17:40:35 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1ScKDh-0002pm-Pa
-       for xen-devel@lists.xen.org; Wed, 06 Jun 2012 17:40:33 +0000
-Received: from [85.158.143.35:29578] by server-3.bemta-4.messagelabs.com id
-       20/C1-29237-1169FCF4; Wed, 06 Jun 2012 17:40:33 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-15.tower-21.messagelabs.com!1339004432!14333116!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDExMjA=\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 19650 invoked from network); 6 Jun 2012 17:40:32 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-15.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
-       6 Jun 2012 17:40:32 -0000
-X-IronPort-AV: E=Sophos;i="4.75,725,1330905600"; d="scan'208";a="12865396"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       06 Jun 2012 17:40:32 +0000
-Received: from kaball.uk.xensource.com (10.80.2.59) by
-       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
-       8.3.213.0; Wed, 6 Jun 2012 18:40:32 +0100
-Date: Wed, 6 Jun 2012 18:40:16 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-X-Sender: sstabellini@kaball.uk.xensource.com
-To: Ian Campbell <ian.campbell@citrix.com>
-In-Reply-To: <1338565207-2888-24-git-send-email-ian.campbell@citrix.com>
-Message-ID: <alpine.DEB.2.02.1206061839560.2415@kaball.uk.xensource.com>
-References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
-       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-       <1338565207-2888-24-git-send-email-ian.campbell@citrix.com>
-User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 24/38] arm: map fixmaps non-executable.
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Fri, 1 Jun 2012, Ian Campbell wrote:
-> Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
-
-Acked-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-
->  xen/arch/arm/mm.c |    1 +
->  1 files changed, 1 insertions(+), 0 deletions(-)
-> 
-> diff --git a/xen/arch/arm/mm.c b/xen/arch/arm/mm.c
-> index c332e4c..160a4e9 100644
-> --- a/xen/arch/arm/mm.c
-> +++ b/xen/arch/arm/mm.c
-> @@ -108,6 +108,7 @@ void set_fixmap(unsigned map, unsigned long mfn, unsigned attributes)
->      lpae_t pte = mfn_to_xen_entry(mfn);
->      pte.pt.table = 1; /* 4k mappings always have this bit set */
->      pte.pt.ai = attributes;
-> +    pte.pt.xn = 1;
->      write_pte(xen_fixmap + third_table_offset(FIXMAP_ADDR(map)), pte);
->      flush_xen_data_tlb_va(FIXMAP_ADDR(map));
->  }
-> -- 
-> 1.7.9.1
-> 
-> 
-> _______________________________________________
-> Xen-devel mailing list
-> Xen-devel@lists.xen.org
-> http://lists.xen.org/xen-devel
-> 
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<alpine.DEB.2.02.1206061846260.2415@kaball.uk.xensource.com> b/test/corpus/<alpine.DEB.2.02.1206061846260.2415@kaball.uk.xensource.com>
deleted file mode 100644 (file)
index b78896c..0000000
+++ /dev/null
@@ -1,110 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Jun 06 19:08:39 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 06 Jun 2012 19:08:39 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1ScKeo-00044y-0l
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 06 Jun 2012 19:08:39 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1ScKbE-0003Cq-95; Wed, 06 Jun 2012 18:04:52 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1ScKbC-0003Ch-Tk
-       for xen-devel@lists.xen.org; Wed, 06 Jun 2012 18:04:51 +0000
-Received: from [85.158.143.99:25609] by server-3.bemta-4.messagelabs.com id
-       03/02-29237-2CB9FCF4; Wed, 06 Jun 2012 18:04:50 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-10.tower-216.messagelabs.com!1339005889!25065969!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDExMjA=\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 23620 invoked from network); 6 Jun 2012 18:04:49 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-10.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
-       6 Jun 2012 18:04:49 -0000
-X-IronPort-AV: E=Sophos;i="4.75,725,1330905600"; d="scan'208";a="12865694"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       06 Jun 2012 18:04:49 +0000
-Received: from kaball.uk.xensource.com (10.80.2.59) by
-       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
-       8.3.213.0; Wed, 6 Jun 2012 19:04:48 +0100
-Date: Wed, 6 Jun 2012 19:04:33 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-X-Sender: sstabellini@kaball.uk.xensource.com
-To: Ian Campbell <ian.campbell@citrix.com>
-In-Reply-To: <1338565207-2888-25-git-send-email-ian.campbell@citrix.com>
-Message-ID: <alpine.DEB.2.02.1206061846260.2415@kaball.uk.xensource.com>
-References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
-       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-       <1338565207-2888-25-git-send-email-ian.campbell@citrix.com>
-User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 25/38] arm: remove old identity map of boot
- paddr when we are done with it.
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Fri, 1 Jun 2012, Ian Campbell wrote:
-> Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
-> ---
->  xen/arch/arm/mm.c |    8 ++++++++
->  1 files changed, 8 insertions(+), 0 deletions(-)
-> 
-> diff --git a/xen/arch/arm/mm.c b/xen/arch/arm/mm.c
-> index 160a4e9..ab52171 100644
-> --- a/xen/arch/arm/mm.c
-> +++ b/xen/arch/arm/mm.c
-> @@ -214,6 +214,14 @@ void __init setup_pagetables(unsigned long boot_phys_offset)
->      lpae_t pte, *p;
->      int i;
->  
-> +    if ( boot_phys_offset != 0 )
-> +    {
-> +        /* Remove the old identity mapping of the boot paddr */
-> +        pte.bits = 0;
-> +        dest_va = (unsigned long)_start + boot_phys_offset;
-> +        write_pte(xen_second + second_linear_offset(dest_va), pte);
-> +    }
-
-It looks like we are already doing this few lines below.
-Also now that I am thinking about it, considering that bits is a 64 bit
-field, shouldn't this be:
-
-pte.bits = 0ULL;
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<alpine.DEB.2.02.1206071126490.2415@kaball.uk.xensource.com> b/test/corpus/<alpine.DEB.2.02.1206071126490.2415@kaball.uk.xensource.com>
deleted file mode 100644 (file)
index 2a4ce46..0000000
+++ /dev/null
@@ -1,128 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Jun 07 11:31:17 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 07 Jun 2012 11:31:17 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1ScZzj-0003z3-Qv
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 07 Jun 2012 11:31:17 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1ScZvv-0002zV-Pe; Thu, 07 Jun 2012 10:27:15 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1ScZvt-0002zM-Vi
-       for xen-devel@lists.xen.org; Thu, 07 Jun 2012 10:27:14 +0000
-Received: from [85.158.138.51:64123] by server-2.bemta-3.messagelabs.com id
-       00/35-16299-10280DF4; Thu, 07 Jun 2012 10:27:13 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-16.tower-174.messagelabs.com!1339064832!28367720!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDE0Nzk=\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 3501 invoked from network); 7 Jun 2012 10:27:12 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-16.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
-       7 Jun 2012 10:27:12 -0000
-X-IronPort-AV: E=Sophos;i="4.75,730,1330905600"; d="scan'208";a="12877643"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       07 Jun 2012 10:27:11 +0000
-Received: from kaball.uk.xensource.com (10.80.2.59) by
-       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
-       8.3.213.0; Thu, 7 Jun 2012 11:27:11 +0100
-Date: Thu, 7 Jun 2012 11:26:55 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-X-Sender: sstabellini@kaball.uk.xensource.com
-To: Ian Campbell <ian.campbell@citrix.com>
-In-Reply-To: <1338565207-2888-26-git-send-email-ian.campbell@citrix.com>
-Message-ID: <alpine.DEB.2.02.1206071126490.2415@kaball.uk.xensource.com>
-References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
-       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-       <1338565207-2888-26-git-send-email-ian.campbell@citrix.com>
-User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 26/38] arm: fix locking in create_p2m_entries
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Fri, 1 Jun 2012, Ian Campbell wrote:
-> For some reason we were holding the lock over only the unmaps at the end of
-> the function, rather than for the whole walk.
-> 
-> We might want to be more clever in the future, but for now lets just lock for
-> the whole walk+create process.
-> 
-> Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
-
-
-Acked-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-
->  xen/arch/arm/p2m.c |    4 ++--
->  1 files changed, 2 insertions(+), 2 deletions(-)
-> 
-> diff --git a/xen/arch/arm/p2m.c b/xen/arch/arm/p2m.c
-> index 46c6f17..c4daf83 100644
-> --- a/xen/arch/arm/p2m.c
-> +++ b/xen/arch/arm/p2m.c
-> @@ -168,6 +168,8 @@ static int create_p2m_entries(struct domain *d,
->      paddr_t addr;
->      unsigned long cur_first_offset = ~0, cur_second_offset = ~0;
->  
-> +    spin_lock(&p2m->lock);
-> +
->      /* XXX Don't actually handle 40 bit guest physical addresses */
->      BUG_ON(start_gpaddr & 0x8000000000ULL);
->      BUG_ON(end_gpaddr   & 0x8000000000ULL);
-> @@ -249,8 +251,6 @@ static int create_p2m_entries(struct domain *d,
->      rc = 0;
->  
->  out:
-> -    spin_lock(&p2m->lock);
-> -
->      if (third) unmap_domain_page(third);
->      if (second) unmap_domain_page(second);
->      if (first) unmap_domain_page(first);
-> -- 
-> 1.7.9.1
-> 
-> 
-> _______________________________________________
-> Xen-devel mailing list
-> Xen-devel@lists.xen.org
-> http://lists.xen.org/xen-devel
-> 
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<alpine.DEB.2.02.1206071131370.2415@kaball.uk.xensource.com> b/test/corpus/<alpine.DEB.2.02.1206071131370.2415@kaball.uk.xensource.com>
deleted file mode 100644 (file)
index a3102df..0000000
+++ /dev/null
@@ -1,200 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Jun 07 11:39:16 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 07 Jun 2012 11:39:16 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1Sca7S-00041A-MI
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 07 Jun 2012 11:39:16 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1Sca3v-0003HI-8V; Thu, 07 Jun 2012 10:35:31 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1Sca3t-0003Gt-DZ
-       for xen-devel@lists.xen.org; Thu, 07 Jun 2012 10:35:29 +0000
-Received: from [85.158.143.99:29188] by server-3.bemta-4.messagelabs.com id
-       DA/CE-29237-0F380DF4; Thu, 07 Jun 2012 10:35:28 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-7.tower-216.messagelabs.com!1339065327!28348489!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDE0Nzk=\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 18009 invoked from network); 7 Jun 2012 10:35:27 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-7.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
-       7 Jun 2012 10:35:27 -0000
-X-IronPort-AV: E=Sophos;i="4.75,730,1330905600"; d="scan'208";a="12877844"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       07 Jun 2012 10:35:27 +0000
-Received: from kaball.uk.xensource.com (10.80.2.59) by
-       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
-       8.3.213.0; Thu, 7 Jun 2012 11:35:27 +0100
-Date: Thu, 7 Jun 2012 11:35:10 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-X-Sender: sstabellini@kaball.uk.xensource.com
-To: Ian Campbell <ian.campbell@citrix.com>
-In-Reply-To: <1338565207-2888-27-git-send-email-ian.campbell@citrix.com>
-Message-ID: <alpine.DEB.2.02.1206071131370.2415@kaball.uk.xensource.com>
-References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
-       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-       <1338565207-2888-27-git-send-email-ian.campbell@citrix.com>
-User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 27/38] arm: split pending SPIs (global) out
- from pending PPIs and SGIs (per CPU)
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Fri, 1 Jun 2012, Ian Campbell wrote:
-> This tracks SPIs in struct arch_domain and PPIs+SGIs in struct arch_vcpu which
-> seems more logical.
-> 
-> Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
-> ---
->  xen/arch/arm/vgic.c          |   17 ++++++++++-------
->  xen/include/asm-arm/domain.h |   10 ++++++++++
->  2 files changed, 20 insertions(+), 7 deletions(-)
-> 
-> diff --git a/xen/arch/arm/vgic.c b/xen/arch/arm/vgic.c
-> index 629a0da..91d6166 100644
-> --- a/xen/arch/arm/vgic.c
-> +++ b/xen/arch/arm/vgic.c
-> @@ -82,9 +82,8 @@ int domain_vgic_init(struct domain *d)
->      d->arch.vgic.shared_irqs =
->          xmalloc_array(struct vgic_irq_rank, DOMAIN_NR_RANKS(d));
->      d->arch.vgic.pending_irqs =
-> -        xmalloc_array(struct pending_irq,
-> -                d->arch.vgic.nr_lines + (32 * d->max_vcpus));
-> -    for (i=0; i<d->arch.vgic.nr_lines + (32 * d->max_vcpus); i++)
-> +        xzalloc_array(struct pending_irq, d->arch.vgic.nr_lines);
-> +    for (i=0; i<d->arch.vgic.nr_lines; i++)
->          INIT_LIST_HEAD(&d->arch.vgic.pending_irqs[i].inflight);
->      for (i=0; i<DOMAIN_NR_RANKS(d); i++)
->          spin_lock_init(&d->arch.vgic.shared_irqs[i].lock);
-> @@ -98,6 +97,10 @@ int vcpu_vgic_init(struct vcpu *v)
->  
->      spin_lock_init(&v->arch.vgic.private_irqs.lock);
->  
-> +    memset(&v->arch.vgic.pending_irqs, 0, sizeof(v->arch.vgic.pending_irqs));
-> +    for (i = 0; i < 32; i++)
-> +        INIT_LIST_HEAD(&v->arch.vgic.pending_irqs[i].inflight);
-> +
->      /* For SGI and PPI the target is always this CPU */
->      for ( i = 0 ; i < 8 ; i++ )
->          v->arch.vgic.private_irqs.itargets[i] =
-> @@ -535,8 +538,7 @@ struct pending_irq *irq_to_pending(struct vcpu *v, unsigned int irq)
->      /* Pending irqs allocation strategy: the first vgic.nr_lines irqs
->       * are used for SPIs; the rests are used for per cpu irqs */
->      if ( irq < 32 )
-> -        n = &v->domain->arch.vgic.pending_irqs[irq + (v->vcpu_id * 32)
-> -            + v->domain->arch.vgic.nr_lines];
-> +        n = &v->arch.vgic.pending_irqs[irq];
->      else
->          n = &v->domain->arch.vgic.pending_irqs[irq - 32];
->      return n;
-> @@ -548,6 +550,7 @@ void vgic_vcpu_inject_irq(struct vcpu *v, unsigned int irq, int virtual)
->      uint8_t priority;
->      struct vgic_irq_rank *rank = vgic_irq_rank(v, 8, idx);
->      struct pending_irq *iter, *n = irq_to_pending(v, irq);
-> +    unsigned long flags;
->  
->      /* irq still pending */
->      if (!list_empty(&n->inflight))
-> @@ -564,7 +567,7 @@ void vgic_vcpu_inject_irq(struct vcpu *v, unsigned int irq, int virtual)
->  
->      gic_set_guest_irq(irq, GICH_LR_PENDING, priority);
->  
-> -    spin_lock(&v->arch.vgic.lock);
-> +    spin_lock_irqsave(&v->arch.vgic.lock, flags);
->      list_for_each_entry ( iter, &v->arch.vgic.inflight_irqs, inflight )
->      {
->          if ( iter->priority > priority )
-> @@ -575,7 +578,7 @@ void vgic_vcpu_inject_irq(struct vcpu *v, unsigned int irq, int virtual)
->          }
->      }
->      list_add_tail(&n->inflight, &v->arch.vgic.inflight_irqs);
-> -    spin_unlock(&v->arch.vgic.lock);
-> +    spin_unlock_irqrestore(&v->arch.vgic.lock, flags);
->      /* we have a new higher priority irq, inject it into the guest */
->  }
-
-Besides moving PPIs and SGIs to struct vcpu, this patch also turns
-spin_lock into spin_lock_irqsave in vgic_vcpu_inject_irq: I think it is
-correct because it can be called in IRQ context, but it needs to be
-explicitly stated in the commit message.
-
-
-> diff --git a/xen/include/asm-arm/domain.h b/xen/include/asm-arm/domain.h
-> index 620b26e..32deb52 100644
-> --- a/xen/include/asm-arm/domain.h
-> +++ b/xen/include/asm-arm/domain.h
-> @@ -46,6 +46,10 @@ struct arch_domain
->          int ctlr;
->          int nr_lines;
->          struct vgic_irq_rank *shared_irqs;
-> +        /*
-> +         * SPIs are domain global, SGIs and PPIs are per-VCPU and stored in
-> +         * struct arch_vcpu.
-> +         */
->          struct pending_irq *pending_irqs;
->      } vgic;
->  
-> @@ -114,7 +118,13 @@ struct arch_vcpu
->      uint32_t gic_lr[64];
->  
->      struct {
-> +        /*
-> +         * SGIs and PPIs are per-VCPU, SPIs are domain global and in
-> +         * struct arch_domain.
-> +         */
-> +        struct pending_irq pending_irqs[32];
->          struct vgic_irq_rank private_irqs;
-> +
->          /* This list is ordered by IRQ priority and it is used to keep
->           * track of the IRQs that the VGIC injected into the guest.
->           * Depending on the availability of LR registers, the IRQs might
-> -- 
-> 1.7.9.1
-> 
-> 
-> _______________________________________________
-> Xen-devel mailing list
-> Xen-devel@lists.xen.org
-> http://lists.xen.org/xen-devel
-> 
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<alpine.DEB.2.02.1206071138250.2415@kaball.uk.xensource.com> b/test/corpus/<alpine.DEB.2.02.1206071138250.2415@kaball.uk.xensource.com>
deleted file mode 100644 (file)
index 290e295..0000000
+++ /dev/null
@@ -1,218 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Jun 07 11:43:26 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 07 Jun 2012 11:43:26 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1ScaBU-000423-JP
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 07 Jun 2012 11:43:26 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1Sca7x-0003aN-TZ; Thu, 07 Jun 2012 10:39:41 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1Sca7v-0003aG-VV
-       for xen-devel@lists.xen.org; Thu, 07 Jun 2012 10:39:40 +0000
-Received: from [85.158.139.83:30939] by server-9.bemta-5.messagelabs.com id
-       15/BA-29678-BE480DF4; Thu, 07 Jun 2012 10:39:39 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-3.tower-182.messagelabs.com!1339065578!30908547!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDE0Nzk=\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 12602 invoked from network); 7 Jun 2012 10:39:38 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-3.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
-       7 Jun 2012 10:39:38 -0000
-X-IronPort-AV: E=Sophos;i="4.75,730,1330905600"; d="scan'208";a="12877972"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       07 Jun 2012 10:39:38 +0000
-Received: from kaball.uk.xensource.com (10.80.2.59) by
-       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
-       8.3.213.0; Thu, 7 Jun 2012 11:39:38 +0100
-Date: Thu, 7 Jun 2012 11:39:22 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-X-Sender: sstabellini@kaball.uk.xensource.com
-To: Ian Campbell <ian.campbell@citrix.com>
-In-Reply-To: <1338565207-2888-28-git-send-email-ian.campbell@citrix.com>
-Message-ID: <alpine.DEB.2.02.1206071138250.2415@kaball.uk.xensource.com>
-References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
-       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-       <1338565207-2888-28-git-send-email-ian.campbell@citrix.com>
-User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 28/38] arm: map GICV in all domains,
- not just dom0.
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Fri, 1 Jun 2012, Ian Campbell wrote:
-> This requires that we allocate all p2m pages from domheap without a particular
-> dom because max pages is not setup yet so there is no allocation available to
-> us.
-> 
-> At some point we should create a separate p2m allocation (similar to x86's shadow allocation) and use that.
-> 
-> Also we seem to have been calling p2m_alloc_table twice for dom0.
-> 
-> Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
-
-
-Acked-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-
->  xen/arch/arm/domain.c       |   10 +++++++---
->  xen/arch/arm/domain_build.c |    5 -----
->  xen/arch/arm/gic.c          |    9 ++++-----
->  xen/arch/arm/gic.h          |    2 +-
->  xen/arch/arm/p2m.c          |    3 ++-
->  5 files changed, 14 insertions(+), 15 deletions(-)
-> 
-> diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
-> index a7fb227..e15c1e8 100644
-> --- a/xen/arch/arm/domain.c
-> +++ b/xen/arch/arm/domain.c
-> @@ -329,13 +329,17 @@ int arch_domain_create(struct domain *d, unsigned int domcr_flags)
->  
->          if ( (rc = p2m_alloc_table(d)) != 0 )
->              goto fail;
-> -    }
->  
-> -    if ( (rc = domain_vgic_init(d)) != 0 )
-> -        goto fail;
-> +        if ( (rc = gicv_setup(d)) != 0 )
-> +            goto fail;
-> +
-> +        if ( (rc = domain_vgic_init(d)) != 0 )
-> +            goto fail;
-> +    }
->  
->      rc = 0;
->  fail:
-> +    /*XXX unwind allocations etc */
->      return rc;
->  }
->  
-> diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
-> index 72e775c..1b19e54 100644
-> --- a/xen/arch/arm/domain_build.c
-> +++ b/xen/arch/arm/domain_build.c
-> @@ -270,9 +270,6 @@ int construct_dom0(struct domain *d)
->  
->      d->max_pages = ~0U;
->  
-> -    if ( (rc = p2m_alloc_table(d)) != 0 )
-> -        return rc;
-> -
->      rc = prepare_dtb(d, &kinfo);
->      if ( rc < 0 )
->          return rc;
-> @@ -288,8 +285,6 @@ int construct_dom0(struct domain *d)
->      printk("Map VGIC MMIO regions 1:1 in the P2M %#llx->%#llx\n", 0x2C008000ULL, 0x2DFFFFFFULL);
->      map_mmio_regions(d, 0x2C008000, 0x2DFFFFFF, 0x2C008000);
->  
-> -    gicv_setup(d);
-> -
->      printk("Routing peripheral interrupts to guest\n");
->      /* TODO Get from device tree */
->      gic_route_irq_to_guest(d, 34, "timer0");
-> diff --git a/xen/arch/arm/gic.c b/xen/arch/arm/gic.c
-> index 339c327..a398f92 100644
-> --- a/xen/arch/arm/gic.c
-> +++ b/xen/arch/arm/gic.c
-> @@ -541,14 +541,13 @@ void gic_interrupt(struct cpu_user_regs *regs, int is_fiq)
->      do_IRQ(regs, irq, is_fiq);
->  }
->  
-> -void gicv_setup(struct domain *d)
-> +int gicv_setup(struct domain *d)
->  {
-> +    printk("GICV setup for DOM%d\n", d->domain_id);
-> +
->      /* map the gic virtual cpu interface in the gic cpu interface region of
->       * the guest */
-> -    printk("mapping GICC at %#"PRIx32" to %#"PRIx32"\n",
-> -           GIC_BASE_ADDRESS + GIC_CR_OFFSET,
-> -           GIC_BASE_ADDRESS + GIC_VR_OFFSET);
-> -    map_mmio_regions(d, GIC_BASE_ADDRESS + GIC_CR_OFFSET,
-> +    return map_mmio_regions(d, GIC_BASE_ADDRESS + GIC_CR_OFFSET,
->                          GIC_BASE_ADDRESS + GIC_CR_OFFSET + (2 * PAGE_SIZE) - 1,
->                          GIC_BASE_ADDRESS + GIC_VR_OFFSET);
->  }
-> diff --git a/xen/arch/arm/gic.h b/xen/arch/arm/gic.h
-> index ac9cf3a..018d820 100644
-> --- a/xen/arch/arm/gic.h
-> +++ b/xen/arch/arm/gic.h
-> @@ -148,7 +148,7 @@ extern void gic_init_secondary_cpu(void);
->  /* Take down a CPU's per-CPU GIC interface */
->  extern void gic_disable_cpu(void);
->  /* setup the gic virtual interface for a guest */
-> -extern void gicv_setup(struct domain *d);
-> +extern int gicv_setup(struct domain *d);
->  
->  /* Context switch */
->  extern void gic_save_state(struct vcpu *v);
-> diff --git a/xen/arch/arm/p2m.c b/xen/arch/arm/p2m.c
-> index c4daf83..0665445 100644
-> --- a/xen/arch/arm/p2m.c
-> +++ b/xen/arch/arm/p2m.c
-> @@ -4,6 +4,7 @@
->  #include <xen/errno.h>
->  #include <xen/domain_page.h>
->  #include <asm/flushtlb.h>
-> +#include "gic.h"
->  
->  void dump_p2m_lookup(struct domain *d, paddr_t addr)
->  {
-> @@ -138,7 +139,7 @@ static int p2m_create_entry(struct domain *d,
->  
->      BUG_ON(entry->p2m.valid);
->  
-> -    page = alloc_domheap_page(d, 0);
-> +    page = alloc_domheap_page(NULL, 0);
->      if ( page == NULL )
->          return -ENOMEM;
->  
-> -- 
-> 1.7.9.1
-> 
-> 
-> _______________________________________________
-> Xen-devel mailing list
-> Xen-devel@lists.xen.org
-> http://lists.xen.org/xen-devel
-> 
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<alpine.DEB.2.02.1206071140160.2415@kaball.uk.xensource.com> b/test/corpus/<alpine.DEB.2.02.1206071140160.2415@kaball.uk.xensource.com>
deleted file mode 100644 (file)
index 0f0db89..0000000
+++ /dev/null
@@ -1,132 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Jun 07 11:45:31 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 07 Jun 2012 11:45:31 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1ScaDV-00042o-71
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 07 Jun 2012 11:45:30 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1ScaA7-0003jJ-FG; Thu, 07 Jun 2012 10:41:55 +0000
-Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1ScaA5-0003j9-Fk
-       for xen-devel@lists.xen.org; Thu, 07 Jun 2012 10:41:53 +0000
-Received: from [193.109.254.147:49178] by server-10.bemta-14.messagelabs.com
-       id C5/C7-25709-07580DF4; Thu, 07 Jun 2012 10:41:52 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-5.tower-27.messagelabs.com!1339065712!6130838!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDE0Nzk=\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 27676 invoked from network); 7 Jun 2012 10:41:52 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-5.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
-       7 Jun 2012 10:41:52 -0000
-X-IronPort-AV: E=Sophos;i="4.75,730,1330905600"; d="scan'208";a="12878042"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       07 Jun 2012 10:41:41 +0000
-Received: from kaball.uk.xensource.com (10.80.2.59) by
-       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
-       8.3.213.0; Thu, 7 Jun 2012 11:41:41 +0100
-Date: Thu, 7 Jun 2012 11:41:25 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-X-Sender: sstabellini@kaball.uk.xensource.com
-To: Ian Campbell <ian.campbell@citrix.com>
-In-Reply-To: <1338565207-2888-29-git-send-email-ian.campbell@citrix.com>
-Message-ID: <alpine.DEB.2.02.1206071140160.2415@kaball.uk.xensource.com>
-References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
-       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-       <1338565207-2888-29-git-send-email-ian.campbell@citrix.com>
-User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 29/38] arm: delay enabling data-cache until
- paging enabled.
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Fri, 1 Jun 2012, Ian Campbell wrote:
-> cached before paging was enabled had been mapped with to inconsistent sets of
-> attributes. I'm not convinced that isn't a model issue, nor am I convinced
-> this has really fixed anything, but it seems sensible enough.
-> 
-> Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
-> ---
->  xen/arch/arm/head.S |    9 +++++++--
->  1 files changed, 7 insertions(+), 2 deletions(-)
-> 
-> diff --git a/xen/arch/arm/head.S b/xen/arch/arm/head.S
-> index 9a7714a..71197af 100644
-> --- a/xen/arch/arm/head.S
-> +++ b/xen/arch/arm/head.S
-> @@ -148,10 +148,11 @@ hyp:
->       * Exceptions in LE ARM,
->       * Low-latency IRQs disabled,
->       * Write-implies-XN disabled (for now),
-> -     * I-cache and d-cache enabled,
-> +     * D-cache diabled (for now),
-                 ^ misspell
-> +     * I-cache enabled,
->       * Alignment checking enabled,
->       * MMU translation disabled (for now). */
-> -    ldr   r0, =(HSCTLR_BASE|SCTLR_A|SCTLR_C)
-> +    ldr   r0, =(HSCTLR_BASE|SCTLR_A)
->      mcr   CP32(r0, HSCTLR)
->  
->      /* Write Xen's PT's paddr into the HTTBR */
-> @@ -217,6 +218,10 @@ pt_ready:
->      mov   pc, r1                 /* Get a proper vaddr into PC */
->  paging:
->  
-> +    mrc   CP32(r0, HSCTLR)       /* Now enable data cache */
-> +    orr   r0, r0, #(SCTLR_C)
-> +    mcr   CP32(r0, HSCTLR)
-> +
->  #ifdef EARLY_UART_ADDRESS
->      /* Recover the UART address in the new address space. */
->      lsl   r11, #11
-> -- 
-> 1.7.9.1
-> 
-> 
-> _______________________________________________
-> Xen-devel mailing list
-> Xen-devel@lists.xen.org
-> http://lists.xen.org/xen-devel
-> 
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<alpine.DEB.2.02.1206071146180.2415@kaball.uk.xensource.com> b/test/corpus/<alpine.DEB.2.02.1206071146180.2415@kaball.uk.xensource.com>
deleted file mode 100644 (file)
index 95451c3..0000000
+++ /dev/null
@@ -1,175 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Jun 07 11:53:32 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 07 Jun 2012 11:53:32 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1ScaLK-00044b-2w
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 07 Jun 2012 11:53:32 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1ScaHy-000449-S3; Thu, 07 Jun 2012 10:50:02 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1ScaHx-000442-8z
-       for xen-devel@lists.xen.org; Thu, 07 Jun 2012 10:50:01 +0000
-Received: from [85.158.139.83:16635] by server-3.bemta-5.messagelabs.com id
-       CA/79-17554-85780DF4; Thu, 07 Jun 2012 10:50:00 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-7.tower-182.messagelabs.com!1339066199!28471347!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDE0Nzk=\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 8031 invoked from network); 7 Jun 2012 10:50:00 -0000
-Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-7.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
-       7 Jun 2012 10:50:00 -0000
-X-IronPort-AV: E=Sophos;i="4.75,730,1330905600"; d="scan'208";a="12878244"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       07 Jun 2012 10:49:59 +0000
-Received: from kaball.uk.xensource.com (10.80.2.59) by
-       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
-       8.3.213.0; Thu, 7 Jun 2012 11:50:00 +0100
-Date: Thu, 7 Jun 2012 11:49:43 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-X-Sender: sstabellini@kaball.uk.xensource.com
-To: Ian Campbell <ian.campbell@citrix.com>
-In-Reply-To: <1338565207-2888-31-git-send-email-ian.campbell@citrix.com>
-Message-ID: <alpine.DEB.2.02.1206071146180.2415@kaball.uk.xensource.com>
-References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
-       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-       <1338565207-2888-31-git-send-email-ian.campbell@citrix.com>
-User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 31/38] arm: gic.lock can be taken in
- interrupt context, so lock appropriately.
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Fri, 1 Jun 2012, Ian Campbell wrote:
-> In particular it is taken by gic_set_guest_irq which is called by
-> vgic_vcpu_inject_irq
-> 
-> Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
-> ---
->  xen/arch/arm/gic.c |   20 ++++++++++----------
->  1 files changed, 10 insertions(+), 10 deletions(-)
-> 
-> diff --git a/xen/arch/arm/gic.c b/xen/arch/arm/gic.c
-> index a398f92..ededa99 100644
-> --- a/xen/arch/arm/gic.c
-> +++ b/xen/arch/arm/gic.c
-> @@ -329,19 +329,19 @@ int __init gic_init(void)
->  /* Set up the per-CPU parts of the GIC for a secondary CPU */
->  void __cpuinit gic_init_secondary_cpu(void)
->  {
-> -    spin_lock(&gic.lock);
-> +    spin_lock_irq(&gic.lock);
->      gic_cpu_init();
->      gic_hyp_init();
-> -    spin_unlock(&gic.lock);
-> +    spin_unlock_irq(&gic.lock);
->  }
->  
->  /* Shut down the per-CPU GIC interface */
->  void gic_disable_cpu(void)
->  {
-> -    spin_lock(&gic.lock);
-> +    spin_lock_irq(&gic.lock);
->      gic_cpu_disable();
->      gic_hyp_disable();
-> -    spin_unlock(&gic.lock);
-> +    spin_unlock_irq(&gic.lock);
->  }
->  
->  void gic_route_irqs(void)
-> @@ -439,7 +439,7 @@ void gic_set_guest_irq(unsigned int virtual_irq,
->  
->      events_maintenance(current);
->  
-> -    spin_lock(&gic.lock);
-> +    spin_lock_irq(&gic.lock);
->  
->      if ( list_empty(&gic.lr_pending) )
->      {
-> @@ -465,7 +465,7 @@ void gic_set_guest_irq(unsigned int virtual_irq,
->      list_add_tail(&n->lr_queue, &gic.lr_pending);
->  
->  out:
-> -    spin_unlock(&gic.lock);
-> +    spin_unlock_irq(&gic.lock);
->      return;
->  }
->  
-> @@ -559,7 +559,7 @@ static void events_maintenance(struct vcpu *v)
->              (unsigned long *)&vcpu_info(v, evtchn_upcall_pending));
->  
->      if (!already_pending && gic.event_mask != 0) {
-> -        spin_lock(&gic.lock);
-> +        spin_lock_irq(&gic.lock);
->          while ((i = find_next_bit((const long unsigned int *) &gic.event_mask,
->                          sizeof(uint64_t), i)) < sizeof(uint64_t)) {
->  
-> @@ -569,7 +569,7 @@ static void events_maintenance(struct vcpu *v)
->  
->              i++;
->          }
-> -        spin_unlock(&gic.lock);
-> +        spin_unlock_irq(&gic.lock);
->      }
->  }
->  
-> @@ -585,7 +585,7 @@ static void maintenance_interrupt(int irq, void *dev_id, struct cpu_user_regs *r
->                                sizeof(eisr), i)) < sizeof(eisr)) {
->          struct pending_irq *p;
->  
-> -        spin_lock(&gic.lock);
-> +        spin_lock_irq(&gic.lock);
->          lr = GICH[GICH_LR + i];
->          virq = lr & GICH_LR_VIRTUAL_MASK;
->          GICH[GICH_LR + i] = 0;
-> @@ -601,7 +601,7 @@ static void maintenance_interrupt(int irq, void *dev_id, struct cpu_user_regs *r
->          } else {
->              gic_inject_irq_stop();
->          }
-> -        spin_unlock(&gic.lock);
-> +        spin_unlock_irq(&gic.lock);
->  
->          spin_lock(&current->arch.vgic.lock);
-               ^
-shouldn't you change this into spin_lock_irq too?
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<alpine.DEB.2.02.1206071154420.2415@kaball.uk.xensource.com> b/test/corpus/<alpine.DEB.2.02.1206071154420.2415@kaball.uk.xensource.com>
deleted file mode 100644 (file)
index a3db4de..0000000
+++ /dev/null
@@ -1,167 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Jun 07 12:01:38 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 07 Jun 2012 12:01:38 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1ScaT5-00046j-D5
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 07 Jun 2012 12:01:38 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1ScaPH-0004gv-Nf; Thu, 07 Jun 2012 10:57:35 +0000
-Received: from mail6.bemta14.messagelabs.com ([193.109.254.103])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1ScaPF-0004gg-Jg
-       for xen-devel@lists.xen.org; Thu, 07 Jun 2012 10:57:33 +0000
-Received: from [193.109.254.147:16687] by server-11.bemta-14.messagelabs.com
-       id D0/21-02727-C1980DF4; Thu, 07 Jun 2012 10:57:32 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-9.tower-27.messagelabs.com!1339066635!8550059!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDE0Nzk=\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 20197 invoked from network); 7 Jun 2012 10:57:15 -0000
-Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-9.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
-       7 Jun 2012 10:57:15 -0000
-X-IronPort-AV: E=Sophos;i="4.75,730,1330905600"; d="scan'208";a="12878438"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       07 Jun 2012 10:57:14 +0000
-Received: from kaball.uk.xensource.com (10.80.2.59) by
-       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
-       8.3.213.0; Thu, 7 Jun 2012 11:57:14 +0100
-Date: Thu, 7 Jun 2012 11:56:58 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-X-Sender: sstabellini@kaball.uk.xensource.com
-To: Ian Campbell <ian.campbell@citrix.com>
-In-Reply-To: <1338565207-2888-34-git-send-email-ian.campbell@citrix.com>
-Message-ID: <alpine.DEB.2.02.1206071154420.2415@kaball.uk.xensource.com>
-References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
-       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-       <1338565207-2888-34-git-send-email-ian.campbell@citrix.com>
-User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 34/38] HACK: arm: initial
- XENMAPSPACE_gmfn_foreign
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Fri, 1 Jun 2012, Ian Campbell wrote:
-> Should use same interface as hybrid x86.
-> ---
->  xen/arch/arm/mm.c             |   32 ++++++++++++++++++++++++++------
->  xen/arch/x86/mm.c             |    2 ++
->  xen/include/public/arch-arm.h |    1 +
->  xen/include/public/memory.h   |   12 +++++++-----
->  4 files changed, 36 insertions(+), 11 deletions(-)
-> 
-> diff --git a/xen/arch/arm/mm.c b/xen/arch/arm/mm.c
-> index ab52171..1832e7f 100644
-> --- a/xen/arch/arm/mm.c
-> +++ b/xen/arch/arm/mm.c
-> @@ -480,12 +480,32 @@ static int xenmem_add_to_physmap_once(
->  
->      switch ( xatp->space )
->      {
-> -        case XENMAPSPACE_shared_info:
-> -            if ( xatp->idx == 0 )
-> -                mfn = virt_to_mfn(d->shared_info);
-> -            break;
-> -        default:
-> -            return -ENOSYS;
-> +    case XENMAPSPACE_shared_info:
-> +        if ( xatp->idx == 0 )
-> +            mfn = virt_to_mfn(d->shared_info);
-> +        break;
-> +    case XENMAPSPACE_gmfn_foreign:
-> +    {
-> +        paddr_t maddr;
-> +        struct domain *od;
-> +
-> +        rc = rcu_lock_target_domain_by_id(xatp->foreign_domid, &od);
-> +        if ( rc < 0 )
-> +            return rc;
-> +        maddr = p2m_lookup(od, xatp->idx << PAGE_SHIFT);
-> +        if ( maddr == INVALID_PADDR )
-> +        {
-> +            printk("bad p2m lookup\n");
-> +            dump_p2m_lookup(od, xatp->idx << PAGE_SHIFT);
-> +            rcu_unlock_domain(od);
-> +            return -EINVAL;
-> +        }
-> +        mfn = maddr >> PAGE_SHIFT;
-> +        rcu_unlock_domain(od);
-> +        break;
-> +    }
-
-It is probably a good idea at least to test xatp->size and WARN if it is
-not 1 page.
-
-
-> +    default:
-> +        return -ENOSYS;
->      }
->  
->      domain_lock(d);
-> diff --git a/xen/arch/x86/mm.c b/xen/arch/x86/mm.c
-> index 876e1ef..d6c90f9 100644
-> --- a/xen/arch/x86/mm.c
-> +++ b/xen/arch/x86/mm.c
-> @@ -4572,6 +4572,8 @@ static int xenmem_add_to_physmap_once(
->              mfn = idx;
->              page = mfn_to_page(mfn);
->              break;
-> +        case XENMAPSPACE_gmfn_foreign:
-> +            return -ENOSYS;
->          }
->          default:
->              break;
-> diff --git a/xen/include/public/arch-arm.h b/xen/include/public/arch-arm.h
-> index e915cbf..b52bfc7 100644
-> --- a/xen/include/public/arch-arm.h
-> +++ b/xen/include/public/arch-arm.h
-> @@ -121,6 +121,7 @@ typedef uint64_t xen_pfn_t;
->  #define XEN_LEGACY_MAX_VCPUS 1
->  
->  typedef uint32_t xen_ulong_t;
-> +#define PRI_xen_ulong PRIx32
->  
->  struct vcpu_guest_context {
->      struct cpu_user_regs user_regs;         /* User-level CPU registers     */
-
-Why did you need to define this here?
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<alpine.DEB.2.02.1206071159120.2415@kaball.uk.xensource.com> b/test/corpus/<alpine.DEB.2.02.1206071159120.2415@kaball.uk.xensource.com>
deleted file mode 100644 (file)
index cdbdb0a..0000000
+++ /dev/null
@@ -1,108 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Jun 07 12:04:43 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 07 Jun 2012 12:04:43 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1ScaW9-00047d-Ke
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 07 Jun 2012 12:04:43 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1ScaSB-0004xr-C6; Thu, 07 Jun 2012 11:00:35 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1ScaS9-0004xj-Ow
-       for xen-devel@lists.xen.org; Thu, 07 Jun 2012 11:00:33 +0000
-Received: from [85.158.143.99:24202] by server-3.bemta-4.messagelabs.com id
-       4D/EB-29237-0D980DF4; Thu, 07 Jun 2012 11:00:32 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-5.tower-216.messagelabs.com!1339066831!31399469!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDE0Nzk=\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 3373 invoked from network); 7 Jun 2012 11:00:32 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-5.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
-       7 Jun 2012 11:00:32 -0000
-X-IronPort-AV: E=Sophos;i="4.75,730,1330905600"; d="scan'208";a="12878506"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       07 Jun 2012 11:00:30 +0000
-Received: from kaball.uk.xensource.com (10.80.2.59) by
-       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
-       8.3.213.0; Thu, 7 Jun 2012 12:00:31 +0100
-Date: Thu, 7 Jun 2012 12:00:14 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-X-Sender: sstabellini@kaball.uk.xensource.com
-To: Ian Campbell <ian.campbell@citrix.com>
-In-Reply-To: <1338565207-2888-38-git-send-email-ian.campbell@citrix.com>
-Message-ID: <alpine.DEB.2.02.1206071159120.2415@kaball.uk.xensource.com>
-References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
-       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-       <1338565207-2888-38-git-send-email-ian.campbell@citrix.com>
-User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 38/38] HACK: arm: disable hypercall
- continuations.
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Fri, 1 Jun 2012, Ian Campbell wrote:
-> Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
->  xen/include/xen/sched.h |    4 ++++
->  1 files changed, 4 insertions(+), 0 deletions(-)
-> 
-> diff --git a/xen/include/xen/sched.h b/xen/include/xen/sched.h
-> index 53804c8..15fa6b4 100644
-> --- a/xen/include/xen/sched.h
-> +++ b/xen/include/xen/sched.h
-> @@ -577,10 +577,14 @@ unsigned long hypercall_create_continuation(
->      unsigned int op, const char *format, ...);
->  void hypercall_cancel_continuation(void);
->  
-> +#ifdef CONFIG_ARM
-> +#define hypercall_preempt_check() (0)
-> +#else
->  #define hypercall_preempt_check() (unlikely(    \
->          softirq_pending(smp_processor_id()) |   \
->          local_events_need_delivery()            \
->      ))
-> +#endif
-
-
-I think it is fine for now, but could we add a TODO comment on it?
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<alpine.DEB.2.02.1206071214020.2415@kaball.uk.xensource.com> b/test/corpus/<alpine.DEB.2.02.1206071214020.2415@kaball.uk.xensource.com>
deleted file mode 100644 (file)
index a507d84..0000000
+++ /dev/null
@@ -1,553 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Jun 07 12:42:35 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 07 Jun 2012 12:42:35 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1Scb6l-0004Ht-G5
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 07 Jun 2012 12:42:35 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1Scb3U-0006li-80; Thu, 07 Jun 2012 11:39:08 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1Scb3S-0006lF-K6
-       for xen-devel@lists.xen.org; Thu, 07 Jun 2012 11:39:07 +0000
-Received: from [85.158.138.51:12717] by server-4.bemta-3.messagelabs.com id
-       DE/12-13598-9D290DF4; Thu, 07 Jun 2012 11:39:05 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-4.tower-174.messagelabs.com!1339069144!31209603!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDE0Nzk=\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 26786 invoked from network); 7 Jun 2012 11:39:04 -0000
-Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-4.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
-       7 Jun 2012 11:39:04 -0000
-X-IronPort-AV: E=Sophos;i="4.75,730,1330905600"; d="scan'208";a="12879406"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       07 Jun 2012 11:39:04 +0000
-Received: from kaball.uk.xensource.com (10.80.2.59) by
-       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
-       8.3.213.0; Thu, 7 Jun 2012 12:39:04 +0100
-Date: Thu, 7 Jun 2012 12:38:45 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-X-Sender: sstabellini@kaball.uk.xensource.com
-To: Ian Campbell <ian.campbell@citrix.com>
-In-Reply-To: <1338565207-2888-36-git-send-email-ian.campbell@citrix.com>
-Message-ID: <alpine.DEB.2.02.1206071214020.2415@kaball.uk.xensource.com>
-References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
-       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-       <1338565207-2888-36-git-send-email-ian.campbell@citrix.com>
-User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 36/38] libxc: add ARM support to xc_dom (PV
- domain building)
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Fri, 1 Jun 2012, Ian Campbell wrote:
-> Includes ARM zImage support.
-> 
-> Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
-> ---
->  tools/libxc/Makefile                 |    1 +
->  tools/libxc/xc_dom.h                 |    5 +-
->  tools/libxc/xc_dom_arm.c             |  135 +++++++++++++++++++++++++++-
->  tools/libxc/xc_dom_armzimageloader.c |  167 ++++++++++++++++++++++++++++++++++
->  tools/libxc/xc_dom_core.c            |   12 ++-
->  tools/libxc/xg_private.h             |    4 +
->  6 files changed, 315 insertions(+), 9 deletions(-)
->  create mode 100644 tools/libxc/xc_dom_armzimageloader.c
-> 
-> diff --git a/tools/libxc/Makefile b/tools/libxc/Makefile
-> index ca38cbd..a01d457 100644
-> --- a/tools/libxc/Makefile
-> +++ b/tools/libxc/Makefile
-> @@ -59,6 +59,7 @@ GUEST_SRCS-y += libelf-dominfo.c libelf-relocate.c
->  GUEST_SRCS-y                 += xc_dom_core.c xc_dom_boot.c
->  GUEST_SRCS-y                 += xc_dom_elfloader.c
->  GUEST_SRCS-$(CONFIG_X86)     += xc_dom_bzimageloader.c
-> +GUEST_SRCS-$(CONFIG_ARM)     += xc_dom_armzimageloader.c
->  GUEST_SRCS-y                 += xc_dom_binloader.c
->  GUEST_SRCS-y                 += xc_dom_compat_linux.c
-> 
-> diff --git a/tools/libxc/xc_dom.h b/tools/libxc/xc_dom.h
-> index 2aef64a..4db8fad 100644
-> --- a/tools/libxc/xc_dom.h
-> +++ b/tools/libxc/xc_dom.h
-> @@ -93,6 +93,7 @@ struct xc_dom_image {
->      void *p2m_guest;
-> 
->      /* physical memory */
-> +    xen_pfn_t rambase_pfn;
->      xen_pfn_t total_pages;
->      struct xc_dom_phys *phys_pages;
->      int realmodearea_log;
-> @@ -286,7 +287,7 @@ static inline xen_pfn_t xc_dom_p2m_host(struct xc_dom_image *dom, xen_pfn_t pfn)
->  {
->      if (dom->shadow_enabled)
->          return pfn;
-> -    return dom->p2m_host[pfn];
-> +    return dom->p2m_host[pfn - dom->rambase_pfn];
->  }
-> 
->  static inline xen_pfn_t xc_dom_p2m_guest(struct xc_dom_image *dom,
-> @@ -294,7 +295,7 @@ static inline xen_pfn_t xc_dom_p2m_guest(struct xc_dom_image *dom,
->  {
->      if (xc_dom_feature_translated(dom))
->          return pfn;
-> -    return dom->p2m_host[pfn];
-> +    return dom->p2m_host[pfn - dom->rambase_pfn];
->  }
-
-I take that rambase_pfn is the offset in the guest physical address
-space where the ram is located. It would be nice to write it down.
-
-
->  /* --- arch bits --------------------------------------------------- */
-> diff --git a/tools/libxc/xc_dom_arm.c b/tools/libxc/xc_dom_arm.c
-> index 122d0e8..9099cad 100644
-> --- a/tools/libxc/xc_dom_arm.c
-> +++ b/tools/libxc/xc_dom_arm.c
-> @@ -18,14 +18,138 @@
->   * Copyright (c) 2011, Citrix Systems
->   */
->  #include <inttypes.h>
-> +
->  #include <xen/xen.h>
-> +#include <xen/io/protocols.h>
-> +
->  #include "xg_private.h"
->  #include "xc_dom.h"
-> 
-> +/* ------------------------------------------------------------------------ */
-> +/*
-> + * arm guests are hybrid and start off with paging disabled, therefore no
-> + * pagetables and nothing to do here.
-> + */
-> +static int count_pgtables_arm(struct xc_dom_image *dom)
-> +{
-> +    DOMPRINTF_CALLED(dom->xch);
-> +    return 0;
-> +}
-> +
-> +static int setup_pgtables_arm(struct xc_dom_image *dom)
-> +{
-> +    DOMPRINTF_CALLED(dom->xch);
-> +    return 0;
-> +}
-> +
-> +/* ------------------------------------------------------------------------ */
-> +
-> +static int alloc_magic_pages(struct xc_dom_image *dom)
-> +{
-> +    DOMPRINTF_CALLED(dom->xch);
-> +    /* XXX
-> +     *   dom->p2m_guest
-> +     *   dom->start_info_pfn
-> +     *   dom->xenstore_pfn
-> +     *   dom->console_pfn
-> +     */
-> +    return 0;
-> +}
-> +
-> +/* ------------------------------------------------------------------------ */
-> +
-> +static int start_info_arm(struct xc_dom_image *dom)
-> +{
-> +    DOMPRINTF_CALLED(dom->xch);
-> +    /* XXX */
-> +    return 0;
-> +}
-> +
-> +static int shared_info_arm(struct xc_dom_image *dom, void *ptr)
-> +{
-> +    DOMPRINTF_CALLED(dom->xch);
-> +    /* XXX */
-> +    return 0;
-> +}
-> +
-> +/* ------------------------------------------------------------------------ */
-> +
-> +static int vcpu_arm(struct xc_dom_image *dom, void *ptr)
-> +{
-> +    vcpu_guest_context_t *ctxt = ptr;
-> +
-> +    DOMPRINTF_CALLED(dom->xch);
-> +
-> +    /* clear everything */
-> +    memset(ctxt, 0, sizeof(*ctxt));
-> +
-> +    ctxt->user_regs.pc = dom->parms.virt_entry;
-> +    ctxt->user_regs.r0 = 0; /* SBZ */
-> +    ctxt->user_regs.r1 = 2272; /* Machine NR: Versatile Express */
-> +
-> +    ctxt->user_regs.r2 = 0xffffffff; //devicetree_seg //dtb_paddr; //atags or dtb /* XXX using APPEND right now */
-> +    ctxt->user_regs.r3 = 0xdeadbeef;
-> +    ctxt->sctlr = /* #define SCTLR_BASE */0x00c50078;
-> +    ctxt->ttbr0 = 0;
-> +    ctxt->ttbr1 = 0;
-> +    ctxt->ttbcr = 0; /* Defined Reset Value */
-> +
-> +    ctxt->user_regs.cpsr = PSR_ABT_MASK|PSR_FIQ_MASK|PSR_IRQ_MASK|PSR_MODE_SVC;
-> +
-> +    DOMPRINTF("Initial state CPSR %#"PRIx32" PC %#"PRIx32,
-> +           ctxt->user_regs.cpsr, ctxt->user_regs.pc);
-> +
-> +    return 0;
-> +}
-> +
-> +/* ------------------------------------------------------------------------ */
-> +
-> +static struct xc_dom_arch xc_dom_32 = {
-> +    .guest_type = "xen-3.0-armv7l",
-> +    .native_protocol = XEN_IO_PROTO_ABI_ARM,
-> +    .page_shift = PAGE_SHIFT_ARM,
-> +    .sizeof_pfn = 8,
-> +    .alloc_magic_pages = alloc_magic_pages,
-> +    .count_pgtables = count_pgtables_arm,
-> +    .setup_pgtables = setup_pgtables_arm,
-> +    .start_info = start_info_arm,
-> +    .shared_info = shared_info_arm,
-> +    .vcpu = vcpu_arm,
-> +};
-> +
-> +static void __init register_arch_hooks(void)
-> +{
-> +    xc_dom_register_arch_hooks(&xc_dom_32);
-> +}
-> +
->  int arch_setup_meminit(struct xc_dom_image *dom)
->  {
-> -    errno = ENOSYS;
-> -    return -1;
-> +    int rc;
-> +    xen_pfn_t pfn, allocsz, i;
-> +
-> +    dom->shadow_enabled = 1;
-> +
-> +    dom->p2m_host = xc_dom_malloc(dom, sizeof(xen_pfn_t) * dom->total_pages);
-> +
-> +    /* setup initial p2m */
-> +    for ( pfn = 0; pfn < dom->total_pages; pfn++ )
-> +        dom->p2m_host[pfn] = pfn + dom->rambase_pfn;
-
-uhm.. so maybe rambase_pfn is the offset in the machine address space where
-the guest ram has been allocated?
-
-
-> +    /* allocate guest memory */
-> +    for ( i = rc = allocsz = 0;
-> +          (i < dom->total_pages) && !rc;
-> +          i += allocsz )
-> +    {
-> +        allocsz = dom->total_pages - i;
-> +        if ( allocsz > 1024*1024 )
-> +            allocsz = 1024*1024;
-> +
-> +        rc = xc_domain_populate_physmap_exact(
-> +            dom->xch, dom->guest_domid, allocsz,
-> +            0, 0, &dom->p2m_host[i]);
-> +    }
-> +
-> +    return 0;
->  }
-> 
->  int arch_setup_bootearly(struct xc_dom_image *dom)
-> @@ -36,9 +160,14 @@ int arch_setup_bootearly(struct xc_dom_image *dom)
-> 
->  int arch_setup_bootlate(struct xc_dom_image *dom)
->  {
-> -    DOMPRINTF("%s: doing nothing", __FUNCTION__);
-> +    /* XXX
-> +     *   map shared info
-> +     *   map grant tables
-> +     *   setup shared info
-> +     */
->      return 0;
->  }
-> +
->  /*
->   * Local variables:
->   * mode: C
-> diff --git a/tools/libxc/xc_dom_armzimageloader.c b/tools/libxc/xc_dom_armzimageloader.c
-> new file mode 100644
-> index 0000000..220176d
-> --- /dev/null
-> +++ b/tools/libxc/xc_dom_armzimageloader.c
-> @@ -0,0 +1,167 @@
-> +/*
-> + * Xen domain builder -- ARM zImage bits
-> + *
-> + * Parse and load ARM zImage kernel images.
-> + *
-> + * Copyright (C) 2012, Citrix Systems.
-> + *
-> + * This library is free software; you can redistribute it and/or
-> + * modify it under the terms of the GNU Lesser General Public
-> + * License as published by the Free Software Foundation;
-> + * version 2.1 of the License.
-> + *
-> + * This library is distributed in the hope that it will be useful,
-> + * but WITHOUT ANY WARRANTY; without even the implied warranty of
-> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-> + * Lesser General Public License for more details.
-> + *
-> + * You should have received a copy of the GNU Lesser General Public
-> + * License along with this library; if not, write to the Free Software
-> + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
-> + *
-> + */
-> +
-> +#include <stdio.h>
-> +#include <stdlib.h>
-> +#include <inttypes.h>
-> +
-> +#include "xg_private.h"
-> +#include "xc_dom.h"
-> +
-> +#include <arpa/inet.h> /* XXX ntohl is not the right function... */
-
-Yes, you are right, we should write a be32_to_cpu (the ones in Xen, QEMU
-and Linux are GPLv2 rather than LGLPv2).
-
-
-> +#define ZIMAGE_MAGIC_OFFSET 0x24
-> +#define ZIMAGE_START_OFFSET 0x28
-> +#define ZIMAGE_END_OFFSET   0x2c
-> +
-> +#define ZIMAGE_MAGIC 0x016f2818
-> +
-> +struct minimal_dtb_header {
-> +    uint32_t magic;
-> +    uint32_t total_size;
-> +    /* There are other fields but we don't use them yet. */
-> +};
-> +
-> +#define DTB_MAGIC 0xd00dfeed
-> +
-> +static int xc_dom_probe_zimage_kernel(struct xc_dom_image *dom)
-> +{
-> +    uint32_t *zimage;
-> +    uint32_t end;
-> +
-> +    if ( dom->kernel_blob == NULL )
-> +    {
-> +        xc_dom_panic(dom->xch, XC_INTERNAL_ERROR,
-> +                     "%s: no kernel image loaded", __FUNCTION__);
-> +        return -EINVAL;
-> +    }
-> +
-> +    if ( dom->kernel_size < 0x30 /*sizeof(struct setup_header)*/ )
-> +    {
-> +        xc_dom_printf(dom->xch, "%s: kernel image too small", __FUNCTION__);
-> +        return -EINVAL;
-> +    }
-> +
-> +    zimage = (uint32_t *)dom->kernel_blob;
-> +    if ( zimage[ZIMAGE_MAGIC_OFFSET/4] != ZIMAGE_MAGIC )
-> +    {
-> +        xc_dom_printf(dom->xch, "%s: kernel is not a bzImage", __FUNCTION__);
-> +        return -EINVAL;
-> +    }
-> +
-> +    end = zimage[ZIMAGE_END_OFFSET/4];
-> +
-> +    /*
-> +     * Check for an appended DTB.
-> +     */
-> +    if ( end + sizeof(struct minimal_dtb_header) < dom->kernel_size ) {
-> +        struct minimal_dtb_header *dtb_hdr;
-> +        dtb_hdr = (struct minimal_dtb_header *)(dom->kernel_blob + end);
-> +        if (ntohl/*be32_to_cpu*/(dtb_hdr->magic) == DTB_MAGIC) {
-> +            xc_dom_printf(dom->xch, "%s: found an appended DTB", __FUNCTION__);
-> +            end += ntohl/*be32_to_cpu*/(dtb_hdr->total_size);
-> +        }
-> +    }
-> +
-> +    dom->kernel_size = end;
-> +
-> +    return 0;
-> +}
-> +
-> +static int xc_dom_parse_zimage_kernel(struct xc_dom_image *dom)
-> +{
-> +    uint32_t *zimage;
-> +    uint32_t start, entry_addr;
-> +    uint64_t v_start, v_end;
-> +    uint64_t rambase = 0x80000000; /* XXX */
-> +
-> +    DOMPRINTF_CALLED(dom->xch);
-> +
-> +    zimage = (uint32_t *)dom->kernel_blob;
-> +
-> +    dom->rambase_pfn = rambase >> XC_PAGE_SHIFT;
-> +
-> +    v_start = rambase + 0x8000; /* XXX */
-> +    v_end = v_start + dom->kernel_size;
-> +
-> +    start = zimage[ZIMAGE_START_OFFSET/4];
-> +
-> +    if (start == 0)
-> +        entry_addr = v_start;
-> +    else
-> +        entry_addr = start;
-> +
-> +    /* find kernel segment */
-> +    dom->kernel_seg.vstart = v_start;
-> +    dom->kernel_seg.vend   = v_end;
-> +
-> +    dom->parms.virt_entry = entry_addr;
-> +
-> +    dom->guest_type = "xen-3.0-armv7l";
-> +    DOMPRINTF("%s: %s: RAM starts at %"PRI_xen_pfn,
-> +              __FUNCTION__, dom->guest_type, dom->rambase_pfn);
-> +    DOMPRINTF("%s: %s: 0x%" PRIx64 " -> 0x%" PRIx64 "",
-> +              __FUNCTION__, dom->guest_type,
-> +              dom->kernel_seg.vstart, dom->kernel_seg.vend);
-> +    return 0;
-> +}
-> +
-> +static int xc_dom_load_zimage_kernel(struct xc_dom_image *dom)
-> +{
-> +    void *dst;
-> +
-> +    DOMPRINTF_CALLED(dom->xch);
-> +
-> +    dst = xc_dom_seg_to_ptr(dom, &dom->kernel_seg);
-> +
-> +    DOMPRINTF("%s: kernel sed %#"PRIx64"-%#"PRIx64,
-> +              __func__, dom->kernel_seg.vstart, dom->kernel_seg.vend);
-> +    DOMPRINTF("%s: copy %zd bytes from blob %p to dst %p",
-> +              __func__, dom->kernel_size, dom->kernel_blob, dst);
-> +
-> +    memcpy(dst, dom->kernel_blob, dom->kernel_size);
-> +
-> +    return 0;
-> +}
-> +
-> +static struct xc_dom_loader zimage_loader = {
-> +    .name = "Linux zImage (ARM)",
-> +    .probe = xc_dom_probe_zimage_kernel,
-> +    .parser = xc_dom_parse_zimage_kernel,
-> +    .loader = xc_dom_load_zimage_kernel,
-> +};
-> +
-> +static void __init register_loader(void)
-> +{
-> +    xc_dom_register_loader(&zimage_loader);
-> +}
-> +
-> +/*
-> + * Local variables:
-> + * mode: C
-> + * c-set-style: "BSD"
-> + * c-basic-offset: 4
-> + * tab-width: 4
-> + * indent-tabs-mode: nil
-> + * End:
-> + */
-> diff --git a/tools/libxc/xc_dom_core.c b/tools/libxc/xc_dom_core.c
-> index fea9de5..b0d48d5 100644
-> --- a/tools/libxc/xc_dom_core.c
-> +++ b/tools/libxc/xc_dom_core.c
-> @@ -307,15 +307,17 @@ void *xc_dom_pfn_to_ptr(struct xc_dom_image *dom, xen_pfn_t pfn,
->                          xen_pfn_t count)
->  {
->      struct xc_dom_phys *phys;
-> +    xen_pfn_t offset;
->      unsigned int page_shift = XC_DOM_PAGE_SHIFT(dom);
->      char *mode = "unset";
-> 
-> -    if ( pfn > dom->total_pages ||    /* multiple checks to avoid overflows */
-> +    offset = pfn-dom->rambase_pfn;
-
-spaces around the '-' please
-
-
-> +    if ( offset > dom->total_pages ||    /* multiple checks to avoid overflows */
->           count > dom->total_pages ||
-> -         pfn > dom->total_pages - count )
-> +         offset > dom->total_pages - count )
->      {
-> -        DOMPRINTF("%s: pfn out of range (0x%" PRIpfn " > 0x%" PRIpfn ")",
-> -                  __FUNCTION__, pfn, dom->total_pages);
-> +        DOMPRINTF("%s: pfn %"PRI_xen_pfn" out of range (0x%" PRIpfn " > 0x%" PRIpfn ")",
-> +                  __FUNCTION__, pfn, offset, dom->total_pages);
->          return NULL;
->      }
-> 
-> @@ -599,6 +601,8 @@ struct xc_dom_image *xc_dom_allocate(xc_interface *xch,
->      dom->parms.virt_hv_start_low = UNSET_ADDR;
->      dom->parms.elf_paddr_offset = UNSET_ADDR;
-> 
-> +    dom->rambase_pfn = 0;
-> +
->      dom->alloc_malloc += sizeof(*dom);
->      return dom;
-
-There is no need to explicitly set rambase_pfn to 0, because the whole
-dom struct is memset to 0 few lines above.
-
-
-
-> diff --git a/tools/libxc/xg_private.h b/tools/libxc/xg_private.h
-> index a29fa26..a271942 100644
-> --- a/tools/libxc/xg_private.h
-> +++ b/tools/libxc/xg_private.h
-> @@ -148,6 +148,10 @@ typedef l4_pgentry_64_t l4_pgentry_t;
->  #define l4_table_offset(_a) l4_table_offset_x86_64(_a)
->  #endif
-> 
-> +#define PAGE_SHIFT_ARM          12
-> +#define PAGE_SIZE_ARM           (1UL << PAGE_SHIFT_ARM)
-> +#define PAGE_MASK_ARM           (~(PAGE_SIZE_ARM-1))
-> +
->  #define PAGE_SHIFT_X86          12
->  #define PAGE_SIZE_X86           (1UL << PAGE_SHIFT_X86)
->  #define PAGE_MASK_X86           (~(PAGE_SIZE_X86-1))
-> --
-> 1.7.9.1
-> 
-> 
-> _______________________________________________
-> Xen-devel mailing list
-> Xen-devel@lists.xen.org
-> http://lists.xen.org/xen-devel
-> 
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<alpine.DEB.2.02.1206071239250.2415@kaball.uk.xensource.com> b/test/corpus/<alpine.DEB.2.02.1206071239250.2415@kaball.uk.xensource.com>
deleted file mode 100644 (file)
index 6a7b2dd..0000000
+++ /dev/null
@@ -1,232 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Jun 07 12:46:14 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 07 Jun 2012 12:46:14 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1ScbAG-0004JD-VE
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 07 Jun 2012 12:46:14 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1Scb6b-0007AN-6d; Thu, 07 Jun 2012 11:42:21 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1Scb6Z-0007A8-6a
-       for xen-devel@lists.xen.org; Thu, 07 Jun 2012 11:42:19 +0000
-Received: from [85.158.139.83:33311] by server-11.bemta-5.messagelabs.com id
-       9E/DC-25194-A9390DF4; Thu, 07 Jun 2012 11:42:18 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-4.tower-182.messagelabs.com!1339069337!29724425!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDE0Nzk=\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 32593 invoked from network); 7 Jun 2012 11:42:17 -0000
-Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-4.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
-       7 Jun 2012 11:42:17 -0000
-X-IronPort-AV: E=Sophos;i="4.75,730,1330905600"; d="scan'208";a="12879482"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       07 Jun 2012 11:42:17 +0000
-Received: from kaball.uk.xensource.com (10.80.2.59) by
-       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
-       8.3.213.0; Thu, 7 Jun 2012 12:42:17 +0100
-Date: Thu, 7 Jun 2012 12:42:01 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-X-Sender: sstabellini@kaball.uk.xensource.com
-To: Ian Campbell <ian.campbell@citrix.com>
-In-Reply-To: <1338565207-2888-37-git-send-email-ian.campbell@citrix.com>
-Message-ID: <alpine.DEB.2.02.1206071239250.2415@kaball.uk.xensource.com>
-References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
-       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-       <1338565207-2888-37-git-send-email-ian.campbell@citrix.com>
-User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 37/38] HACK: add simple xcbuild
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Fri, 1 Jun 2012, Ian Campbell wrote:
-> Based on init-xenstore-domain.c.
-> 
-> Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
-> ---
->  tools/xcutils/Makefile  |    6 ++-
->  tools/xcutils/xcbuild.c |  100 +++++++++++++++++++++++++++++++++++++++++++++++
->  2 files changed, 105 insertions(+), 1 deletions(-)
->  create mode 100644 tools/xcutils/xcbuild.c
-> 
-> diff --git a/tools/xcutils/Makefile b/tools/xcutils/Makefile
-> index 6c502f1..dcd2c84 100644
-> --- a/tools/xcutils/Makefile
-> +++ b/tools/xcutils/Makefile
-> @@ -11,7 +11,7 @@
->  XEN_ROOT    = $(CURDIR)/../..
->  include $(XEN_ROOT)/tools/Rules.mk
->  
-> -PROGRAMS = xc_restore xc_save readnotes lsevtchn
-> +PROGRAMS = xc_restore xc_save readnotes lsevtchn xcbuild
->  
->  CFLAGS += -Werror
->  
-> @@ -19,6 +19,7 @@ CFLAGS_xc_restore.o := $(CFLAGS_libxenctrl) $(CFLAGS_libxenguest)
->  CFLAGS_xc_save.o    := $(CFLAGS_libxenctrl) $(CFLAGS_libxenguest) $(CFLAGS_libxenstore)
->  CFLAGS_readnotes.o  := $(CFLAGS_libxenctrl) $(CFLAGS_libxenguest)
->  CFLAGS_lsevtchn.o   := $(CFLAGS_libxenctrl)
-> +CFLAGS_xcbuild.o    := $(CFLAGS_libxenctrl) $(CFLAGS_libxenguest)
->  
->  .PHONY: all
->  all: build
-> @@ -32,6 +33,9 @@ xc_restore: xc_restore.o
->  xc_save: xc_save.o
->      $(CC) $(LDFLAGS) $^ -o $@ $(LDLIBS_libxenctrl) $(LDLIBS_libxenguest) $(LDLIBS_libxenstore) $(APPEND_LDFLAGS)
->  
-> +xcbuild: xcbuild.o
-> +    $(CC) $(LDFLAGS) $^ -o $@ $(LDLIBS_libxenctrl) $(LDLIBS_libxenguest) $(APPEND_LDFLAGS)
-> +
->  readnotes: readnotes.o
->      $(CC) $(LDFLAGS) $^ -o $@ $(LDLIBS_libxenctrl) $(LDLIBS_libxenguest) $(APPEND_LDFLAGS)
->  
-> diff --git a/tools/xcutils/xcbuild.c b/tools/xcutils/xcbuild.c
-> new file mode 100644
-> index 0000000..8f8660e
-> --- /dev/null
-> +++ b/tools/xcutils/xcbuild.c
-> @@ -0,0 +1,100 @@
-> +#include <unistd.h>
-> +#include <stdio.h>
-> +#include <stdlib.h>
-> +
-> +#include <errno.h>
-> +
-> +#include <xenctrl.h>
-> +#include <xentoollog.h>
-> +#include <xc_dom.h>
-> +
-> +int main(int argc, char **argv)
-> +{
-> +    xentoollog_logger *logger;
-> +    xc_interface *xch;
-> +    int rv;
-> +    const char *image;
-> +    uint32_t domid;
-> +    xen_domain_handle_t handle;
-> +    int maxmem = 128; /* MB */ //atoi(argv[2]);
-> +    int memory_kb = 2*(maxmem + 1)*1024; /* bit of slack... */
-> +    struct xc_dom_image *dom;
-> +
-> +    image = (argc < 2) ? "guest.img" : argv[1];
-> +    printf("Image: %s\n", image);
-> +    printf("Memory: %dKB\n", memory_kb);
-> +
-> +    logger = (xentoollog_logger*)
-> +            xtl_createlogger_stdiostream(stderr, XTL_DEBUG, 0);
-> +    if ( logger == NULL )
-> +    {
-> +            perror("xtl_createlogger_stdiostream");
-> +            exit(1);
-> +    }
-> +
-> +    xch = xc_interface_open(logger, logger, 0);
-> +    if ( xch == NULL )
-> +    {
-> +            perror("xc_interface_open");
-> +            exit(1);
-> +    }
-> +
-> +    rv = xc_dom_loginit(xch);
-> +    if (rv) return rv;
-> +
-> +    //rv = xc_flask_context_to_sid(xch, argv[3], strlen(argv[3]), &ssid);
-> +    //if (rv) return rv;
-> +
-> +    rv = xc_domain_create(xch, 0 /* ssid */, handle, 0 /* flags */, &domid);
-> +    printf("xc_domain_create: %d (%d)\n", rv, errno);
-> +    if ( rv < 0 )
-> +    {
-> +            perror("xc_domain_create");
-> +            exit(1);
-> +    }
-> +
-> +    printf("building dom%d\n", domid);
-> +
-> +    rv = xc_domain_max_vcpus(xch, domid, 1);
-> +    if ( rv < 0)
-> +    {
-> +            perror("xc_domain_max_vcpus");
-> +            exit(1);
-> +    }
-> +
-> +    rv = xc_domain_setmaxmem(xch, domid, memory_kb);
-> +    if ( rv < 0)
-> +    {
-> +            perror("xc_domain_setmaxmem");
-> +            exit(1);
-> +    }
-> +
-> +    dom = xc_dom_allocate(xch, "", NULL);
-> +    rv = xc_dom_kernel_file(dom, image);
-> +    if (rv) return rv;
-> +    rv = xc_dom_boot_xen_init(dom, xch, domid);
-> +    if (rv) return rv;
-> +    rv = xc_dom_parse_image(dom);
-> +    if (rv) return rv;
-> +    rv = xc_dom_mem_init(dom, 2*maxmem);/* XXX */
-> +    if (rv) return rv;
-> +    rv = xc_dom_boot_mem_init(dom);
-> +    if (rv) return rv;
-> +    rv = xc_dom_build_image(dom);
-> +    if (rv) return rv;
-> +    rv = xc_dom_boot_image(dom);
-> +    if (rv) return rv;
-> +
-> +    xc_dom_release(dom);
-> +
-> +    rv = xc_domain_unpause(xch, domid);
-> +    if ( rv )
-> +    {
-> +            perror("xc_domain_unpause");
-> +            exit(1);
-> +    }
-> +
-> +    xc_interface_close(xch);
-> +
-> +    return 0;
-> +}
-
-It is OK but I would remove the commented out code and add a very basic
-arguments check.
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<alpine.DEB.2.02.1206071759000.2415@kaball.uk.xensource.com> b/test/corpus/<alpine.DEB.2.02.1206071759000.2415@kaball.uk.xensource.com>
deleted file mode 100644 (file)
index 7da5504..0000000
+++ /dev/null
@@ -1,156 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Jun 07 18:03:31 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 07 Jun 2012 18:03:31 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1Scg7K-0005QS-93
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 07 Jun 2012 18:03:31 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1Scg3S-00030q-QV; Thu, 07 Jun 2012 16:59:26 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1Scg3R-00030h-6L
-       for xen-devel@lists.xen.org; Thu, 07 Jun 2012 16:59:25 +0000
-Received: from [85.158.138.51:10413] by server-1.bemta-3.messagelabs.com id
-       4E/85-01327-CEDD0DF4; Thu, 07 Jun 2012 16:59:24 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-13.tower-174.messagelabs.com!1339088363!12627916!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDE0Nzk=\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 32382 invoked from network); 7 Jun 2012 16:59:24 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-13.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
-       7 Jun 2012 16:59:24 -0000
-X-IronPort-AV: E=Sophos;i="4.75,732,1330905600"; d="scan'208";a="12892701"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       07 Jun 2012 16:59:23 +0000
-Received: from kaball.uk.xensource.com (10.80.2.59) by
-       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
-       8.3.213.0; Thu, 7 Jun 2012 17:59:23 +0100
-Date: Thu, 7 Jun 2012 17:59:07 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-X-Sender: sstabellini@kaball.uk.xensource.com
-To: Ian Campbell <Ian.Campbell@citrix.com>
-In-Reply-To: <1339088221.22331.6.camel@zakaz.uk.xensource.com>
-Message-ID: <alpine.DEB.2.02.1206071759000.2415@kaball.uk.xensource.com>
-References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
-       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-       <1338565207-2888-14-git-send-email-ian.campbell@citrix.com>
-       <alpine.DEB.2.02.1206061623240.6030@kaball.uk.xensource.com>
-       <1339088221.22331.6.camel@zakaz.uk.xensource.com>
-User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 14/38] arm: do not set max_vcpus = 8 in
- arch_domain_create.
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Thu, 7 Jun 2012, Ian Campbell wrote:
-> On Wed, 2012-06-06 at 16:26 +0100, Stefano Stabellini wrote:
-> > On Fri, 1 Jun 2012, Ian Campbell wrote:
-> > > XEN_DOMCTL_max_vcpus cannot reduce max_vcpus and therefore we can't create a
-> > > smaller guest.
-> > > 
-> > > The limit of 8 (due to GIC limits) should be expressed elsewhere, likely in
-> > > MAX_VIRT_CPUS -- but making that change caused:
-> > 
-> > Are you sure? I made that change and I didn't see the error.
-> > I think this patch should set MAX_VIRT_CPUS to 8 as well as removing
-> > max_vcpus = 8.
-> 
-> This was the same heap corruption again as seen in "[PATCH 16/38] arm:
-> Add simple cpu_{sibling,core}_mask"  and having fixed that I don't see
-> the crash with MAX_VIRT_CPUS == 8 any more...
-> 
-> The patch becomes:
-> 
-> From b68c4abe1dec44f3ed87a0d7ae98f4269043cce3 Mon Sep 17 00:00:00 2001
-> From: Ian Campbell <ian.campbell@citrix.com>
-> Date: Thu, 7 Jun 2012 16:52:46 +0000
-> Subject: [PATCH] arm: do not set max_vcpus = 8 in arch_domain_create.
-> 
-> XEN_DOMCTL_max_vcpus cannot reduce max_vcpus and therefore we can't create a
-> smaller guest.
-> 
-> The limit of 8 (due to GIC limits) should be expressed in MAX_VIRT_CPUS.
-> 
-> Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
-
-
-Acked-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-
->  xen/arch/arm/domain.c        |    2 --
->  xen/include/asm-arm/config.h |    2 +-
->  2 files changed, 1 insertions(+), 3 deletions(-)
-> 
-> diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
-> index 1336dc4..040a2ce 100644
-> --- a/xen/arch/arm/domain.c
-> +++ b/xen/arch/arm/domain.c
-> @@ -338,8 +338,6 @@ int arch_domain_create(struct domain *d, unsigned int domcr_flags)
->              goto fail;
->      }
->  
-> -    d->max_vcpus = 8;
-> -
->      if ( (rc = domain_vgic_init(d)) != 0 )
->          goto fail;
->  
-> diff --git a/xen/include/asm-arm/config.h b/xen/include/asm-arm/config.h
-> index 91e87e1..7d02cc7 100644
-> --- a/xen/include/asm-arm/config.h
-> +++ b/xen/include/asm-arm/config.h
-> @@ -27,7 +27,7 @@
->  #define NR_CPUS 128
->  #endif
->  
-> -#define MAX_VIRT_CPUS 128 /* XXX */
-> +#define MAX_VIRT_CPUS 8
->  #define MAX_HVM_VCPUS MAX_VIRT_CPUS
->  
->  #define asmlinkage /* Nothing needed */
-> -- 
-> 1.7.9.1
-> 
-> 
-> 
-> 
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<alpine.DEB.2.02.1206081100050.14957@kaball.uk.xensource.com> b/test/corpus/<alpine.DEB.2.02.1206081100050.14957@kaball.uk.xensource.com>
deleted file mode 100644 (file)
index 4f6b020..0000000
+++ /dev/null
@@ -1,244 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Jun 08 11:05:57 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 08 Jun 2012 11:05:57 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1Scw4l-0004P4-O4
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 08 Jun 2012 11:05:57 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1Scw0U-000352-Fp; Fri, 08 Jun 2012 10:01:26 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1Scw0S-00034u-JJ
-       for xen-devel@lists.xen.org; Fri, 08 Jun 2012 10:01:24 +0000
-Received: from [85.158.143.35:29284] by server-1.bemta-4.messagelabs.com id
-       31/1F-10042-37DC1DF4; Fri, 08 Jun 2012 10:01:23 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-8.tower-21.messagelabs.com!1339149643!14124250!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDE3NDc=\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 26110 invoked from network); 8 Jun 2012 10:00:44 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-8.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
-       8 Jun 2012 10:00:44 -0000
-X-IronPort-AV: E=Sophos;i="4.75,737,1330905600"; d="scan'208";a="12905299"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       08 Jun 2012 10:00:43 +0000
-Received: from kaball.uk.xensource.com (10.80.2.59) by
-       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
-       8.3.213.0; Fri, 8 Jun 2012 11:00:43 +0100
-Date: Fri, 8 Jun 2012 11:00:26 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-X-Sender: sstabellini@kaball.uk.xensource.com
-To: Ian Campbell <Ian.Campbell@citrix.com>
-In-Reply-To: <1339088579.22331.8.camel@zakaz.uk.xensource.com>
-Message-ID: <alpine.DEB.2.02.1206081100050.14957@kaball.uk.xensource.com>
-References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
-       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-       <1338565207-2888-8-git-send-email-ian.campbell@citrix.com>
-       <alpine.DEB.2.02.1206061443300.6030@kaball.uk.xensource.com> 
-       <1338990925.32319.103.camel@zakaz.uk.xensource.com>
-       <1339062030.15265.53.camel@zakaz.uk.xensource.com>
-       <1339088579.22331.8.camel@zakaz.uk.xensource.com>
-User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 08/38] arm: allocate and setup a guest vcpu.
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Thu, 7 Jun 2012, Ian Campbell wrote:
-> On Thu, 2012-06-07 at 10:40 +0100, Ian Campbell wrote:
-> > More head scratching required I think!
-> 
-> This turned out to be the problem with not initialising cpu_sibling_mask
-> properly, see the thread against "[PATCH 16/38] arm: Add simple
-> cpu_{sibling,core}_mask".
-> 
-> Having fixed that I updated based on your comments to:
-> 
-> 8<-----------------------------------------------------------
-> 
-> From 75cff29f4645dd19d07175109b5891fd44de9d60 Mon Sep 17 00:00:00 2001
-> From: Ian Campbell <ian.campbell@citrix.com>
-> Date: Fri, 13 Apr 2012 16:07:21 +0100
-> Subject: [PATCH] arm: allocate and setup a guest vcpu.
-> 
-> Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
-
-It looks OK now.
-
-
-Acked-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-
-
->  xen/arch/arm/domain.c         |   67 +++++++++++++++++++++++++++++++++++++++++
->  xen/arch/arm/dummy.S          |    3 --
->  xen/include/public/arch-arm.h |    9 -----
->  3 files changed, 67 insertions(+), 12 deletions(-)
-> 
-> diff --git a/xen/arch/arm/domain.c b/xen/arch/arm/domain.c
-> index 9339a11..b099d91 100644
-> --- a/xen/arch/arm/domain.c
-> +++ b/xen/arch/arm/domain.c
-> @@ -144,6 +144,17 @@ void free_vcpu_struct(struct vcpu *v)
->      free_xenheap_page(v);
->  }
->  
-> +struct vcpu_guest_context *alloc_vcpu_guest_context(void)
-> +{
-> +    return xmalloc(struct vcpu_guest_context);
-> +
-> +}
-> +
-> +void free_vcpu_guest_context(struct vcpu_guest_context *vgc)
-> +{
-> +    xfree(vgc);
-> +}
-> +
->  int vcpu_initialise(struct vcpu *v)
->  {
->      int rc = 0;
-> @@ -212,6 +223,62 @@ void arch_domain_destroy(struct domain *d)
->      /* domain_vgic_destroy */
->  }
->  
-> +static int is_guest_psr(uint32_t psr)
-> +{
-> +    switch (psr & PSR_MODE_MASK)
-> +    {
-> +    case PSR_MODE_USR:
-> +    case PSR_MODE_FIQ:
-> +    case PSR_MODE_IRQ:
-> +    case PSR_MODE_SVC:
-> +    case PSR_MODE_ABT:
-> +    case PSR_MODE_UND:
-> +    case PSR_MODE_SYS:
-> +        return 1;
-> +    case PSR_MODE_MON:
-> +    case PSR_MODE_HYP:
-> +    default:
-> +        return 0;
-> +    }
-> +}
-> +
-> +/*
-> + * Initialise VCPU state. The context can be supplied by either the
-> + * toolstack (XEN_DOMCTL_setvcpucontext) or the guest
-> + * (VCPUOP_initialise) and therefore must be properly validated.
-> + */
-> +int arch_set_info_guest(
-> +    struct vcpu *v, vcpu_guest_context_u c)
-> +{
-> +    struct cpu_user_regs *regs = &c.nat->user_regs;
-> +
-> +    if ( !is_guest_psr(regs->cpsr) )
-> +        return -EINVAL;
-> +
-> +    if ( regs->spsr_svc && !is_guest_psr(regs->spsr_svc) )
-> +        return -EINVAL;
-> +    if ( regs->spsr_abt && !is_guest_psr(regs->spsr_abt) )
-> +        return -EINVAL;
-> +    if ( regs->spsr_und && !is_guest_psr(regs->spsr_und) )
-> +        return -EINVAL;
-> +    if ( regs->spsr_irq && !is_guest_psr(regs->spsr_irq) )
-> +        return -EINVAL;
-> +    if ( regs->spsr_fiq && !is_guest_psr(regs->spsr_fiq) )
-> +        return -EINVAL;
-> +
-> +    v->arch.cpu_info->guest_cpu_user_regs = *regs;
-> +
-> +    /* XXX other state:
-> +     * - SCTLR
-> +     * - TTBR0/1
-> +     * - TTBCR
-> +     */
-> +
-> +    clear_bit(_VPF_down, &v->pause_flags);
-> +
-> +    return 0;
-> +}
-> +
->  void arch_dump_domain_info(struct domain *d)
->  {
->  }
-> diff --git a/xen/arch/arm/dummy.S b/xen/arch/arm/dummy.S
-> index 016340c..3b48917 100644
-> --- a/xen/arch/arm/dummy.S
-> +++ b/xen/arch/arm/dummy.S
-> @@ -20,11 +20,8 @@ DUMMY(pirq_guest_unbind);
->  DUMMY(pirq_set_affinity);
->  
->  /* VCPU */
-> -DUMMY(alloc_vcpu_guest_context);
->  DUMMY(arch_get_info_guest);
-> -DUMMY(arch_set_info_guest);
->  DUMMY(arch_vcpu_reset);
-> -DUMMY(free_vcpu_guest_context);
->  DUMMY(sync_vcpu_execstate);
->  NOP(update_vcpu_system_time);
->  DUMMY(vcpu_show_execution_state);
-> diff --git a/xen/include/public/arch-arm.h b/xen/include/public/arch-arm.h
-> index 1b1bcf3..e439727 100644
-> --- a/xen/include/public/arch-arm.h
-> +++ b/xen/include/public/arch-arm.h
-> @@ -124,15 +124,6 @@ typedef uint32_t xen_ulong_t;
->  
->  struct vcpu_guest_context {
->      struct cpu_user_regs user_regs;         /* User-level CPU registers     */
-> -    union {
-> -        uint32_t reg[16];
-> -        struct {
-> -            uint32_t __pad[12];
-> -            uint32_t sp; /* r13 */
-> -            uint32_t lr; /* r14 */
-> -            uint32_t pc; /* r15 */
-> -        };
-> -    };
->  };
->  typedef struct vcpu_guest_context vcpu_guest_context_t;
->  DEFINE_XEN_GUEST_HANDLE(vcpu_guest_context_t);
-> -- 
-> 1.7.9.1
-> 
-> 
-> 
-> 
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<alpine.DEB.2.02.1206261238560.27860@kaball.uk.xensource.com> b/test/corpus/<alpine.DEB.2.02.1206261238560.27860@kaball.uk.xensource.com>
deleted file mode 100644 (file)
index d782950..0000000
+++ /dev/null
@@ -1,109 +0,0 @@
-From xen-devel-bounces@lists.xen.org Tue Jun 26 12:46:47 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Tue, 26 Jun 2012 12:46:47 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SjUEE-00062v-9e
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 26 Jun 2012 12:46:47 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SjU9h-0006Ak-K2; Tue, 26 Jun 2012 11:42:01 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1SjU9g-0006Af-6T
-       for xen-devel@lists.xen.org; Tue, 26 Jun 2012 11:42:00 +0000
-Received: from [85.158.143.99:7715] by server-3.bemta-4.messagelabs.com id
-       E3/8F-05808-700A9EF4; Tue, 26 Jun 2012 11:41:59 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-14.tower-216.messagelabs.com!1340710918!19550201!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDI1OTk=\n
-X-StarScan-Version: 6.5.10; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 19530 invoked from network); 26 Jun 2012 11:41:59 -0000
-Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-14.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
-       26 Jun 2012 11:41:59 -0000
-X-IronPort-AV: E=Sophos;i="4.77,477,1336348800"; d="scan'208";a="13221701"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       26 Jun 2012 11:41:58 +0000
-Received: from kaball.uk.xensource.com (10.80.2.59) by
-       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
-       8.3.213.0; Tue, 26 Jun 2012 12:41:58 +0100
-Date: Tue, 26 Jun 2012 12:41:33 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-X-Sender: sstabellini@kaball.uk.xensource.com
-To: Ian Campbell <Ian.Campbell@citrix.com>
-In-Reply-To: <1340703351.3832.42.camel@zakaz.uk.xensource.com>
-Message-ID: <alpine.DEB.2.02.1206261238560.27860@kaball.uk.xensource.com>
-References: <1338565113.17466.141.camel@zakaz.uk.xensource.com>
-       <1338565207-2888-1-git-send-email-ian.campbell@citrix.com>
-       <1338565207-2888-31-git-send-email-ian.campbell@citrix.com>
-       <alpine.DEB.2.02.1206071146180.2415@kaball.uk.xensource.com>
-       <1340703351.3832.42.camel@zakaz.uk.xensource.com>
-User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 31/38] arm: gic.lock can be taken in
- interrupt context, so lock appropriately.
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Tue, 26 Jun 2012, Ian Campbell wrote:
-> > > @@ -601,7 +601,7 @@ static void maintenance_interrupt(int irq, void *dev_id, struct cpu_user_regs *r
-> > >          } else {
-> > >              gic_inject_irq_stop();
-> > >          }
-> > > -        spin_unlock(&gic.lock);
-> > > +        spin_unlock_irq(&gic.lock);
-> > >  
-> > >          spin_lock(&current->arch.vgic.lock);
-> >                ^
-> > shouldn't you change this into spin_lock_irq too?
-> 
-> 
-> If so then that should be in "arm: use interrupt safe spin locks in
-> vgic_vcpu_inject_irq" rather than here?
-> 
-> I think you've reworked this stuff a bit in one of your follow up series
-> -- is it worth me changing this here or do you handle it / make it
-> irrelevant?
-No, I am not, I am only removing everything related to
-events_maintenance. I think it is worth fixing it in one of your patches
-or in a follow up patch.
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com> b/test/corpus/<alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
deleted file mode 100644 (file)
index db54f9e..0000000
+++ /dev/null
@@ -1,336 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Jul 26 16:37:46 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 26 Jul 2012 16:37:46 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SuQ8F-0001Sj-Qm
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 26 Jul 2012 16:37:46 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SuQ58-0004OO-7i; Thu, 26 Jul 2012 15:34:30 +0000
-Received: from mail27.messagelabs.com ([193.109.254.147])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1SuQ55-0004LO-Fn
-       for xen-devel@lists.xensource.com; Thu, 26 Jul 2012 15:34:27 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-5.tower-27.messagelabs.com!1343316860!8391243!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDY5ODA=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.2; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 9607 invoked from network); 26 Jul 2012 15:34:21 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-5.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
-       26 Jul 2012 15:34:21 -0000
-X-IronPort-AV: E=Sophos;i="4.77,659,1336348800"; 
-       d="dts'?scan'208";a="13718763"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       26 Jul 2012 15:34:20 +0000
-Received: from kaball.uk.xensource.com (10.80.2.59) by
-       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
-       8.3.213.0; Thu, 26 Jul 2012 16:34:20 +0100
-Date: Thu, 26 Jul 2012 16:33:28 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-X-Sender: sstabellini@kaball.uk.xensource.com
-To: <linux-kernel@vger.kernel.org>
-Message-ID: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
-User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
-MIME-Version: 1.0
-Content-Type: multipart/mixed;
-       boundary="1342847746-2057181226-1343316148=:26163"
-Content-ID: <alpine.DEB.2.02.1207261622400.26163@kaball.uk.xensource.com>
-Cc: xen-devel@lists.xensource.com, linaro-dev@lists.linaro.org,
-       Ian Campbell <Ian.Campbell@citrix.com>, arnd@arndb.de,
-       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>, catalin.marinas@arm.com,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>,
-       Tim Deegan <tim@xen.org>, linux-arm-kernel@lists.infradead.org
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD autolearn=unavailable version=3.3.1
-Subject: [Xen-devel] [PATCH 00/24] Introduce Xen support on ARM
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
---1342847746-2057181226-1343316148=:26163
-Content-Type: text/plain; charset="US-ASCII"
-Content-ID: <alpine.DEB.2.02.1207261622401.26163@kaball.uk.xensource.com>
-
-Hi all,
-this patch series implements Xen support for ARMv7 with virtualization
-extensions.  It allows a Linux guest to boot as dom0 and
-as domU on Xen on ARM. PV console, disk and network frontends and
-backends are all working correctly.
-
-It has been tested on a Versatile Express Cortex A15 emulator, using the
-latest Xen, and a simple ad-hoc tool to build guest domains
-(marc.info/?l=xen-devel&m=134089788016546).
-
-The patch marked with [HACK] shouldn't be applied and is part of the
-series only because it is needed to create domUs.
-
-I am also attaching to this email the dts'es that I am currently using
-for dom0 and domU: vexpress-v2p-ca15-tc1.dts is the dts used for dom0
-and it is passed to Linux by Xen, while vexpress-virt.dts is the dts
-used for other domUs and it is appended in binary form to the guest
-kernel image. I am not sure where they are supposed to live yet, so I am
-just attaching them here so that people can actually try out this series
-if they want to.
-
-Comments are very welcome!
-
-
-Ian Campbell (2):
-      ARM: enable earlyprintk=xen
-      [HACK] xen/arm: implement xen_remap_domain_mfn_range
-
-Stefano Stabellini (22):
-      arm: initial Xen support
-      xen/arm: hypercalls
-      xen/arm: page.h definitions
-      xen/arm: sync_bitops
-      xen/arm: empty implementation of grant_table arch specific functions
-      xen: missing includes
-      xen/arm: Xen detection and shared_info page mapping
-      xen/arm: Introduce xen_pfn_t for pfn and mfn types
-      xen/arm: compile and run xenbus
-      xen: do not compile manage, balloon, pci, acpi and cpu_hotplug on ARM
-      xen/arm: introduce CONFIG_XEN on ARM
-      xen/arm: Introduce xen_guest_init
-      xen/arm: get privilege status
-      xen/arm: initialize grant_table on ARM
-      xen/arm: receive Xen events on ARM
-      xen/arm: implement alloc/free_xenballooned_pages with alloc_pages/kfree
-      xen: allow privcmd for HVM guests
-      xen/arm: compile blkfront and blkback
-      xen/arm: compile netback
-      xen: update xen_add_to_physmap interface
-      arm/v2m: initialize arch_timers even if v2m_timer is not present
-      hvc_xen: allow dom0_write_console for HVM guests
-
- arch/arm/Kconfig                           |   10 ++
- arch/arm/Makefile                          |    1 +
- arch/arm/include/asm/hypervisor.h          |    6 +
- arch/arm/include/asm/sync_bitops.h         |   17 ++
- arch/arm/include/asm/xen/hypercall.h       |   69 ++++++++
- arch/arm/include/asm/xen/hypervisor.h      |   19 +++
- arch/arm/include/asm/xen/interface.h       |   66 ++++++++
- arch/arm/include/asm/xen/page.h            |   77 +++++++++
- arch/arm/kernel/early_printk.c             |   11 ++-
- arch/arm/mach-vexpress/v2m.c               |   11 +-
- arch/arm/xen/Makefile                      |    1 +
- arch/arm/xen/enlighten.c                   |  244 ++++++++++++++++++++++++++++
- arch/arm/xen/grant-table.c                 |   53 ++++++
- arch/arm/xen/hypercall.S                   |   65 ++++++++
- arch/ia64/include/asm/xen/interface.h      |    2 +-
- arch/x86/include/asm/xen/interface.h       |    2 +
- arch/x86/xen/enlighten.c                   |    9 +
- arch/x86/xen/irq.c                         |    1 +
- arch/x86/xen/xen-ops.h                     |    1 -
- drivers/block/xen-blkback/blkback.c        |    1 +
- drivers/net/xen-netback/netback.c          |    1 +
- drivers/net/xen-netfront.c                 |    1 +
- drivers/tty/hvc/hvc_xen.c                  |   14 +-
- drivers/xen/Makefile                       |    9 +-
- drivers/xen/events.c                       |   18 ++-
- drivers/xen/grant-table.c                  |    3 +-
- drivers/xen/privcmd.c                      |   20 +--
- drivers/xen/xenbus/xenbus_comms.c          |    2 +-
- drivers/xen/xenbus/xenbus_probe.c          |   27 ++--
- drivers/xen/xenbus/xenbus_probe_frontend.c |    1 +
- drivers/xen/xenbus/xenbus_xs.c             |    1 +
- drivers/xen/xenfs/super.c                  |    7 +
- include/xen/events.h                       |    2 +
- include/xen/interface/features.h           |    3 +
- include/xen/interface/grant_table.h        |    4 +-
- include/xen/interface/io/protocols.h       |    3 +
- include/xen/interface/memory.h             |   19 ++-
- include/xen/interface/platform.h           |    4 +-
- include/xen/interface/xen.h                |    9 +-
- include/xen/privcmd.h                      |    3 +-
- include/xen/xen.h                          |    4 +-
- 41 files changed, 763 insertions(+), 58 deletions(-)
-
-
-A branch based on 3.5-rc7 is available here:
-
-git://xenbits.xen.org/people/sstabellini/linux-pvhvm.git 3.5-rc7-arm-1
-
-Cheers,
-
-Stefano
---1342847746-2057181226-1343316148=:26163
-Content-Type: text/plain; charset="US-ASCII"; name="vexpress-v2p-ca15-tc1.dts"
-Content-Transfer-Encoding: BASE64
-Content-ID: <alpine.DEB.2.02.1207261622280.26163@kaball.uk.xensource.com>
-Content-Description: 
-Content-Disposition: attachment; filename="vexpress-v2p-ca15-tc1.dts"
-
-LyoNCiAqIEFSTSBMdGQuIFZlcnNhdGlsZSBFeHByZXNzDQogKg0KICogQ29y
-ZVRpbGUgRXhwcmVzcyBBMTV4MiAodmVyc2lvbiB3aXRoIFRlc3QgQ2hpcCAx
-KQ0KICogQ29ydGV4LUExNSBNUENvcmUgKFYyUC1DQTE1KQ0KICoNCiAqIEhC
-SS0wMjM3QQ0KICovDQoNCi9kdHMtdjEvOw0KDQovIHsNCgltb2RlbCA9ICJW
-MlAtQ0ExNSI7DQoJYXJtLGhiaSA9IDwweDIzNz47DQoJY29tcGF0aWJsZSA9
-ICJhcm0sdmV4cHJlc3MsdjJwLWNhMTUsdGMxIiwgImFybSx2ZXhwcmVzcyx2
-MnAtY2ExNSIsICJhcm0sdmV4cHJlc3MiOw0KDQoJI2FkZHJlc3MtY2VsbHMg
-PSA8MT47DQoJI3NpemUtY2VsbHMgPSA8MT47DQoNCglpbnRlcnJ1cHQtcGFy
-ZW50ID0gPCZnaWM+Ow0KDQoJY2hvc2VuIHsNCiAgICAgICAgICAgICAgICAg
-Ym9vdGFyZ3MgPSAiZG9tMF9tZW09MTI4TSI7DQogICAgICAgICAgICAgICAg
-IHhlbixkb20wLWJvb3RhcmdzID0gImVhcmx5cHJpbnRrPXhlbmJvb3QgY29u
-c29sZT10dHlBTUExIHJvb3Q9L2Rldi9tbWNibGswIGRlYnVnIHJ3IjsNCgl9
-Ow0KDQoNCglhbGlhc2VzIHsNCgkJc2VyaWFsMCA9ICZ2Mm1fc2VyaWFsMDsN
-CgkJc2VyaWFsMSA9ICZ2Mm1fc2VyaWFsMTsNCgkJc2VyaWFsMiA9ICZ2Mm1f
-c2VyaWFsMjsNCgkJc2VyaWFsMyA9ICZ2Mm1fc2VyaWFsMzsNCgkJaTJjMCA9
-ICZ2Mm1faTJjX2R2aTsNCgkJaTJjMSA9ICZ2Mm1faTJjX3BjaWU7DQoJfTsN
-Cg0KCWNwdXMgew0KCQkjYWRkcmVzcy1jZWxscyA9IDwxPjsNCgkJI3NpemUt
-Y2VsbHMgPSA8MD47DQoNCgkJY3B1QDAgew0KCQkJZGV2aWNlX3R5cGUgPSAi
-Y3B1IjsNCgkJCWNvbXBhdGlibGUgPSAiYXJtLGNvcnRleC1hMTUiOw0KCQkJ
-cmVnID0gPDA+Ow0KCQl9Ow0KCX07DQoNCgltZW1vcnkgew0KCQlkZXZpY2Vf
-dHlwZSA9ICJtZW1vcnkiOw0KCQlyZWcgPSA8MHg4MDAwMDAwMCAweDgwMDAw
-MDAwPjsNCgl9Ow0KDQoJZ2ljOiBpbnRlcnJ1cHQtY29udHJvbGxlckAyYzAw
-MTAwMCB7DQoJCWNvbXBhdGlibGUgPSAiYXJtLGNvcnRleC1hOS1naWMiOw0K
-CQkjaW50ZXJydXB0LWNlbGxzID0gPDM+Ow0KCQkjYWRkcmVzcy1jZWxscyA9
-IDwwPjsNCgkJaW50ZXJydXB0LWNvbnRyb2xsZXI7DQoJCXJlZyA9IDwweDJj
-MDAxMDAwIDB4MTAwMD4sDQoJCSAgICAgIDwweDJjMDAyMDAwIDB4MTAwPjsN
-Cgl9Ow0KDQoJcG11IHsNCgkJY29tcGF0aWJsZSA9ICJhcm0sY29ydGV4LWE5
-LXBtdSI7DQoJCWludGVycnVwdHMgPSA8MCA2OCA0PiwNCgkJCSAgICAgPDAg
-NjkgND47DQoJfTsNCg0KCXhlbiB7DQoJCWNvbXBhdGlibGUgPSAiYXJtLHhl
-biI7DQoJCXJlZyA9IDwweGIwMDAwMDAwIDB4MjAwMDA+Ow0KCQlpbnRlcnJ1
-cHRzID0gPDEgMTUgMHhmMDg+Ow0KCX07DQoNCgltb3RoZXJib2FyZCB7DQoJ
-CXJhbmdlcyA9IDwwIDAgMHgwODAwMDAwMCAweDA0MDAwMDAwPiwNCgkJCSA8
-MSAwIDB4MTQwMDAwMDAgMHgwNDAwMDAwMD4sDQoJCQkgPDIgMCAweDE4MDAw
-MDAwIDB4MDQwMDAwMDA+LA0KCQkJIDwzIDAgMHgxYzAwMDAwMCAweDA0MDAw
-MDAwPiwNCgkJCSA8NCAwIDB4MGMwMDAwMDAgMHgwNDAwMDAwMD4sDQoJCQkg
-PDUgMCAweDEwMDAwMDAwIDB4MDQwMDAwMDA+Ow0KDQoJCWludGVycnVwdC1t
-YXAtbWFzayA9IDwwIDAgNjM+Ow0KCQlpbnRlcnJ1cHQtbWFwID0gPDAgMCAg
-MCAmZ2ljIDAgIDAgND4sDQoJCQkJPDAgMCAgMSAmZ2ljIDAgIDEgND4sDQoJ
-CQkJPDAgMCAgMiAmZ2ljIDAgIDIgND4sDQoJCQkJPDAgMCAgMyAmZ2ljIDAg
-IDMgND4sDQoJCQkJPDAgMCAgNCAmZ2ljIDAgIDQgND4sDQoJCQkJPDAgMCAg
-NSAmZ2ljIDAgIDUgND4sDQoJCQkJPDAgMCAgNiAmZ2ljIDAgIDYgND4sDQoJ
-CQkJPDAgMCAgNyAmZ2ljIDAgIDcgND4sDQoJCQkJPDAgMCAgOCAmZ2ljIDAg
-IDggND4sDQoJCQkJPDAgMCAgOSAmZ2ljIDAgIDkgND4sDQoJCQkJPDAgMCAx
-MCAmZ2ljIDAgMTAgND4sDQoJCQkJPDAgMCAxMSAmZ2ljIDAgMTEgND4sDQoJ
-CQkJPDAgMCAxMiAmZ2ljIDAgMTIgND4sDQoJCQkJPDAgMCAxMyAmZ2ljIDAg
-MTMgND4sDQoJCQkJPDAgMCAxNCAmZ2ljIDAgMTQgND4sDQoJCQkJPDAgMCAx
-NSAmZ2ljIDAgMTUgND4sDQoJCQkJPDAgMCAxNiAmZ2ljIDAgMTYgND4sDQoJ
-CQkJPDAgMCAxNyAmZ2ljIDAgMTcgND4sDQoJCQkJPDAgMCAxOCAmZ2ljIDAg
-MTggND4sDQoJCQkJPDAgMCAxOSAmZ2ljIDAgMTkgND4sDQoJCQkJPDAgMCAy
-MCAmZ2ljIDAgMjAgND4sDQoJCQkJPDAgMCAyMSAmZ2ljIDAgMjEgND4sDQoJ
-CQkJPDAgMCAyMiAmZ2ljIDAgMjIgND4sDQoJCQkJPDAgMCAyMyAmZ2ljIDAg
-MjMgND4sDQoJCQkJPDAgMCAyNCAmZ2ljIDAgMjQgND4sDQoJCQkJPDAgMCAy
-NSAmZ2ljIDAgMjUgND4sDQoJCQkJPDAgMCAyNiAmZ2ljIDAgMjYgND4sDQoJ
-CQkJPDAgMCAyNyAmZ2ljIDAgMjcgND4sDQoJCQkJPDAgMCAyOCAmZ2ljIDAg
-MjggND4sDQoJCQkJPDAgMCAyOSAmZ2ljIDAgMjkgND4sDQoJCQkJPDAgMCAz
-MCAmZ2ljIDAgMzAgND4sDQoJCQkJPDAgMCAzMSAmZ2ljIDAgMzEgND4sDQoJ
-CQkJPDAgMCAzMiAmZ2ljIDAgMzIgND4sDQoJCQkJPDAgMCAzMyAmZ2ljIDAg
-MzMgND4sDQoJCQkJPDAgMCAzNCAmZ2ljIDAgMzQgND4sDQoJCQkJPDAgMCAz
-NSAmZ2ljIDAgMzUgND4sDQoJCQkJPDAgMCAzNiAmZ2ljIDAgMzYgND4sDQoJ
-CQkJPDAgMCAzNyAmZ2ljIDAgMzcgND4sDQoJCQkJPDAgMCAzOCAmZ2ljIDAg
-MzggND4sDQoJCQkJPDAgMCAzOSAmZ2ljIDAgMzkgND4sDQoJCQkJPDAgMCA0
-MCAmZ2ljIDAgNDAgND4sDQoJCQkJPDAgMCA0MSAmZ2ljIDAgNDEgND4sDQoJ
-CQkJPDAgMCA0MiAmZ2ljIDAgNDIgND47DQoJfTsNCn07DQoNCi9pbmNsdWRl
-LyAidmV4cHJlc3MtdjJtLXJzMS1ydHNtLmR0c2kiDQo=
-
---1342847746-2057181226-1343316148=:26163
-Content-Type: text/plain; charset="US-ASCII"; name="vexpress-virt.dts"
-Content-Transfer-Encoding: BASE64
-Content-ID: <alpine.DEB.2.02.1207261622281.26163@kaball.uk.xensource.com>
-Content-Description: 
-Content-Disposition: attachment; filename="vexpress-virt.dts"
-
-LyoNCiAqIEFSTSBMdGQuIFZlcnNhdGlsZSBFeHByZXNzDQogKg0KICogQVJN
-IEVudmVsb3BlIE1vZGVsIHY3QSAoc2luZ2xlIENQVSkuDQogKi8NCg0KL2R0
-cy12MS87DQoNCi9pbmNsdWRlLyAic2tlbGV0b24uZHRzaSINCg0KLyB7DQoJ
-bW9kZWwgPSAiVjJQLUFFTXY3QSI7DQoJY29tcGF0aWJsZSA9ICJhcm0sdmV4
-cHJlc3MsdjJwLWFlbSx2N2EiLCAiYXJtLHZleHByZXNzLHYycC1hZW0iLCAi
-YXJtLHZleHByZXNzIjsNCglpbnRlcnJ1cHQtcGFyZW50ID0gPCZnaWM+Ow0K
-DQogICAgICAgIGNob3NlbiB7DQogICAgICAgICAgICAgICAgYm9vdGFyZ3Mg
-PSAiZWFybHlwcmludGs9eGVuIGRlYnVnIGxvZ2xldmVsPTkgY29uc29sZT1o
-dmMwIHJvb3Q9L2Rldi94dmRhIjsNCiAgICAgICAgfTsNCg0KCWNwdXMgew0K
-CQkjYWRkcmVzcy1jZWxscyA9IDwxPjsNCgkJI3NpemUtY2VsbHMgPSA8MD47
-DQoNCgkJY3B1QDAgew0KCQkJZGV2aWNlX3R5cGUgPSAiY3B1IjsNCgkJCWNv
-bXBhdGlibGUgPSAiYXJtLGNvcnRleC1hMTUiOw0KCQkJcmVnID0gPDA+Ow0K
-CQl9Ow0KCX07DQoNCgltZW1vcnkgew0KCQlkZXZpY2VfdHlwZSA9ICJtZW1v
-cnkiOw0KCQlyZWcgPSA8MHg4MDAwMDAwMCAweDA4MDAwMDAwPjsNCgl9Ow0K
-DQoJZ2ljOiBpbnRlcnJ1cHQtY29udHJvbGxlckAyYzAwMTAwMCB7DQoJCWNv
-bXBhdGlibGUgPSAiYXJtLGNvcnRleC1hOS1naWMiOw0KCQkjaW50ZXJydXB0
-LWNlbGxzID0gPDM+Ow0KCQkjYWRkcmVzcy1jZWxscyA9IDwwPjsNCgkJaW50
-ZXJydXB0LWNvbnRyb2xsZXI7DQoJCXJlZyA9IDwweDJjMDAxMDAwIDB4MTAw
-MD4sDQoJCSAgICAgIDwweDJjMDAyMDAwIDB4MTAwPjsNCgl9Ow0KDQoJdGlt
-ZXIgew0KCQljb21wYXRpYmxlID0gImFybSxhcm12Ny10aW1lciI7DQoJCWlu
-dGVycnVwdHMgPSA8MSAxMyAweGYwOD4sDQoJCQkgICAgIDwxIDE0IDB4ZjA4
-PiwNCgkJCSAgICAgPDEgMTEgMHhmMDg+LA0KCQkJICAgICA8MSAxMCAweGYw
-OD47DQoJfTsNCg0KCXhlbiB7DQoJCWNvbXBhdGlibGUgPSAiYXJtLHhlbiI7
-DQoJCXJlZyA9IDwweGIwMDAwMDAwIDB4MjAwMDA+Ow0KCQlpbnRlcnJ1cHRz
-ID0gPDEgMTUgMHhmMDg+Ow0KCX07DQoNCgltb3RoZXJib2FyZCB7DQoJCXJh
-bmdlcyA9IDwwIDAgMHgwODAwMDAwMCAweDA0MDAwMDAwPiwNCgkJCSA8MSAw
-IDB4MTQwMDAwMDAgMHgwNDAwMDAwMD4sDQoJCQkgPDIgMCAweDE4MDAwMDAw
-IDB4MDQwMDAwMDA+LA0KCQkJIDwzIDAgMHgxYzAwMDAwMCAweDA0MDAwMDAw
-PiwNCgkJCSA8NCAwIDB4MGMwMDAwMDAgMHgwNDAwMDAwMD4sDQoJCQkgPDUg
-MCAweDEwMDAwMDAwIDB4MDQwMDAwMDA+Ow0KDQoJCWludGVycnVwdC1tYXAt
-bWFzayA9IDwwIDAgNjM+Ow0KCQlpbnRlcnJ1cHQtbWFwID0gPDAgMCAgMCAm
-Z2ljIDAgIDAgND4sDQoJCQkJPDAgMCAgMSAmZ2ljIDAgIDEgND4sDQoJCQkJ
-PDAgMCAgMiAmZ2ljIDAgIDIgND4sDQoJCQkJPDAgMCAgMyAmZ2ljIDAgIDMg
-ND4sDQoJCQkJPDAgMCAgNCAmZ2ljIDAgIDQgND4sDQoJCQkJPDAgMCAgNSAm
-Z2ljIDAgIDUgND4sDQoJCQkJPDAgMCAgNiAmZ2ljIDAgIDYgND4sDQoJCQkJ
-PDAgMCAgNyAmZ2ljIDAgIDcgND4sDQoJCQkJPDAgMCAgOCAmZ2ljIDAgIDgg
-ND4sDQoJCQkJPDAgMCAgOSAmZ2ljIDAgIDkgND4sDQoJCQkJPDAgMCAxMCAm
-Z2ljIDAgMTAgND4sDQoJCQkJPDAgMCAxMSAmZ2ljIDAgMTEgND4sDQoJCQkJ
-PDAgMCAxMiAmZ2ljIDAgMTIgND4sDQoJCQkJPDAgMCAxMyAmZ2ljIDAgMTMg
-ND4sDQoJCQkJPDAgMCAxNCAmZ2ljIDAgMTQgND4sDQoJCQkJPDAgMCAxNSAm
-Z2ljIDAgMTUgND4sDQoJCQkJPDAgMCAxNiAmZ2ljIDAgMTYgND4sDQoJCQkJ
-PDAgMCAxNyAmZ2ljIDAgMTcgND4sDQoJCQkJPDAgMCAxOCAmZ2ljIDAgMTgg
-ND4sDQoJCQkJPDAgMCAxOSAmZ2ljIDAgMTkgND4sDQoJCQkJPDAgMCAyMCAm
-Z2ljIDAgMjAgND4sDQoJCQkJPDAgMCAyMSAmZ2ljIDAgMjEgND4sDQoJCQkJ
-PDAgMCAyMiAmZ2ljIDAgMjIgND4sDQoJCQkJPDAgMCAyMyAmZ2ljIDAgMjMg
-ND4sDQoJCQkJPDAgMCAyNCAmZ2ljIDAgMjQgND4sDQoJCQkJPDAgMCAyNSAm
-Z2ljIDAgMjUgND4sDQoJCQkJPDAgMCAyNiAmZ2ljIDAgMjYgND4sDQoJCQkJ
-PDAgMCAyNyAmZ2ljIDAgMjcgND4sDQoJCQkJPDAgMCAyOCAmZ2ljIDAgMjgg
-ND4sDQoJCQkJPDAgMCAyOSAmZ2ljIDAgMjkgND4sDQoJCQkJPDAgMCAzMCAm
-Z2ljIDAgMzAgND4sDQoJCQkJPDAgMCAzMSAmZ2ljIDAgMzEgND4sDQoJCQkJ
-PDAgMCAzMiAmZ2ljIDAgMzIgND4sDQoJCQkJPDAgMCAzMyAmZ2ljIDAgMzMg
-ND4sDQoJCQkJPDAgMCAzNCAmZ2ljIDAgMzQgND4sDQoJCQkJPDAgMCAzNSAm
-Z2ljIDAgMzUgND4sDQoJCQkJPDAgMCAzNiAmZ2ljIDAgMzYgND4sDQoJCQkJ
-PDAgMCAzNyAmZ2ljIDAgMzcgND4sDQoJCQkJPDAgMCAzOCAmZ2ljIDAgMzgg
-ND4sDQoJCQkJPDAgMCAzOSAmZ2ljIDAgMzkgND4sDQoJCQkJPDAgMCA0MCAm
-Z2ljIDAgNDAgND4sDQoJCQkJPDAgMCA0MSAmZ2ljIDAgNDEgND4sDQoJCQkJ
-PDAgMCA0MiAmZ2ljIDAgNDIgND47DQoJfTsNCn07DQoNCi8qIC9pbmNsdWRl
-LyAidmV4cHJlc3MtdjJtLXJzMS1ydHNtLmR0c2kiICovDQo=
-
---1342847746-2057181226-1343316148=:26163
-Content-Type: text/plain; charset="us-ascii"
-MIME-Version: 1.0
-Content-Transfer-Encoding: 7bit
-Content-Disposition: inline
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
---1342847746-2057181226-1343316148=:26163--
-
-
diff --git a/test/corpus/<alpine.DEB.2.02.1207261813080.26163@kaball.uk.xensource.com> b/test/corpus/<alpine.DEB.2.02.1207261813080.26163@kaball.uk.xensource.com>
deleted file mode 100644 (file)
index f269257..0000000
+++ /dev/null
@@ -1,103 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Jul 26 18:25:37 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 26 Jul 2012 18:25:37 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SuRoZ-00023T-Mn
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 26 Jul 2012 18:25:37 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SuRjz-0006Gv-FT; Thu, 26 Jul 2012 17:20:47 +0000
-Received: from mail27.messagelabs.com ([193.109.254.147])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1SuRjx-0006Gn-Ad
-       for xen-devel@lists.xensource.com; Thu, 26 Jul 2012 17:20:45 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-8.tower-27.messagelabs.com!1343323239!9391579!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDY5ODA=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.2; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 20233 invoked from network); 26 Jul 2012 17:20:39 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-8.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
-       26 Jul 2012 17:20:39 -0000
-X-IronPort-AV: E=Sophos;i="4.77,660,1336348800"; d="scan'208";a="13721023"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       26 Jul 2012 17:20:38 +0000
-Received: from kaball.uk.xensource.com (10.80.2.59) by
-       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
-       8.3.213.0; Thu, 26 Jul 2012 18:20:38 +0100
-Date: Thu, 26 Jul 2012 18:19:46 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-X-Sender: sstabellini@kaball.uk.xensource.com
-To: David Vrabel <dvrabel@cantab.net>
-In-Reply-To: <501176AF.3000607@cantab.net>
-Message-ID: <alpine.DEB.2.02.1207261813080.26163@kaball.uk.xensource.com>
-References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
-       <1343316846-25860-2-git-send-email-stefano.stabellini@eu.citrix.com>
-       <501176AF.3000607@cantab.net>
-User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
-       "linaro-dev@lists.linaro.org" <linaro-dev@lists.linaro.org>,
-       Ian Campbell <Ian.Campbell@citrix.com>, "arnd@arndb.de" <arnd@arndb.de>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>,
-       "catalin.marinas@arm.com" <catalin.marinas@arm.com>,
-       "konrad.wilk@oracle.com" <konrad.wilk@oracle.com>,
-       "Tim \(Xen.org\)" <tim@xen.org>,
-       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
-       "linux-arm-kernel@lists.infradead.org"
-       <linux-arm-kernel@lists.infradead.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 02/24] xen/arm: hypercalls
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Thu, 26 Jul 2012, David Vrabel wrote:
-> On 26/07/12 16:33, Stefano Stabellini wrote:
-> > 
-> > + * The hvc ISS is required to be 0xEA1, that is the Xen specific ARM
-> > + * hypercall tag.
-> 
-> Is this number, 0xea1, assigned to Xen by some external body?
-
-I am not aware of any "external body" that could assign us such a number
-but it is specified in the Xen hypercall calling convention, documented
-here:
-
-http://xenbits.xensource.com/hg/xen-unstable.hg/file/663eb766cdde/xen/include/public/arch-arm.h
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<alpine.DEB.2.02.1207271246080.26163@kaball.uk.xensource.com> b/test/corpus/<alpine.DEB.2.02.1207271246080.26163@kaball.uk.xensource.com>
deleted file mode 100644 (file)
index 1b396ce..0000000
+++ /dev/null
@@ -1,344 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Jul 27 13:00:58 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 27 Jul 2012 13:00:58 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SujDz-0001KT-Lr
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 27 Jul 2012 13:00:58 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SujAG-0004ig-Bv; Fri, 27 Jul 2012 11:57:04 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1SujAE-0004ia-BM
-       for xen-devel@lists.xensource.com; Fri, 27 Jul 2012 11:57:02 +0000
-Received: from [85.158.143.99:13572] by server-3.bemta-4.messagelabs.com id
-       7E/B5-01511-D0282105; Fri, 27 Jul 2012 11:57:01 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-8.tower-216.messagelabs.com!1343390221!19251565!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDcxMzQ=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.2; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 30314 invoked from network); 27 Jul 2012 11:57:01 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-8.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
-       27 Jul 2012 11:57:01 -0000
-X-IronPort-AV: E=Sophos;i="4.77,666,1336348800"; d="scan'208";a="13733788"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       27 Jul 2012 11:57:01 +0000
-Received: from kaball.uk.xensource.com (10.80.2.59) by
-       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
-       8.3.213.0; Fri, 27 Jul 2012 12:57:00 +0100
-Date: Fri, 27 Jul 2012 12:56:07 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-X-Sender: sstabellini@kaball.uk.xensource.com
-To: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-In-Reply-To: <20120726163020.GB9222@phenom.dumpdata.com>
-Message-ID: <alpine.DEB.2.02.1207271246080.26163@kaball.uk.xensource.com>
-References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
-       <1343316846-25860-1-git-send-email-stefano.stabellini@eu.citrix.com>
-       <20120726163020.GB9222@phenom.dumpdata.com>
-User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
-       "linaro-dev@lists.linaro.org" <linaro-dev@lists.linaro.org>,
-       Ian Campbell <Ian.Campbell@citrix.com>, "arnd@arndb.de" <arnd@arndb.de>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>,
-       "catalin.marinas@arm.com" <catalin.marinas@arm.com>,
-       "Tim \(Xen.org\)" <tim@xen.org>,
-       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
-       "linux-arm-kernel@lists.infradead.org"
-       <linux-arm-kernel@lists.infradead.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 01/24] arm: initial Xen support
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Thu, 26 Jul 2012, Konrad Rzeszutek Wilk wrote:
-> On Thu, Jul 26, 2012 at 04:33:43PM +0100, Stefano Stabellini wrote:
-> > - Basic hypervisor.h and interface.h definitions.
-> > - Skelethon enlighten.c, set xen_start_info to an empty struct.
-> 
-> Skeleton
-> 
-> > - Do not limit xen_initial_domain to PV guests.
-> 
-> Better wording: Make xen_initial_domain dependent on the SIF_PRIVILIGED_BIT.
-> 
-> Which reminds me - what about PV guests that do PCI passthrough. Aren't
-> they "more" priviligied than normal PV guests? Or not really?
-
-Not really, from the Xen POV.
-
-
-> > The new code only compiles when CONFIG_XEN is set, that is going to be
-> > added to arch/arm/Kconfig in a later patch.
-> 
-> s/later patch/<name of patch>/
-> 
-> > 
-> > Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-> > ---
-> >  arch/arm/Makefile                     |    1 +
-> >  arch/arm/include/asm/hypervisor.h     |    6 +++
-> >  arch/arm/include/asm/xen/hypervisor.h |   19 ++++++++++
-> >  arch/arm/include/asm/xen/interface.h  |   64 +++++++++++++++++++++++++++++++++
-> >  arch/arm/xen/Makefile                 |    1 +
-> >  arch/arm/xen/enlighten.c              |   35 ++++++++++++++++++
-> >  include/xen/xen.h                     |    2 +-
-> >  7 files changed, 127 insertions(+), 1 deletions(-)
-> >  create mode 100644 arch/arm/include/asm/hypervisor.h
-> >  create mode 100644 arch/arm/include/asm/xen/hypervisor.h
-> >  create mode 100644 arch/arm/include/asm/xen/interface.h
-> >  create mode 100644 arch/arm/xen/Makefile
-> >  create mode 100644 arch/arm/xen/enlighten.c
-> > 
-> > diff --git a/arch/arm/Makefile b/arch/arm/Makefile
-> > index 0298b00..70aaa82 100644
-> > --- a/arch/arm/Makefile
-> > +++ b/arch/arm/Makefile
-> > @@ -246,6 +246,7 @@ endif
-> >  core-$(CONFIG_FPE_NWFPE)  += arch/arm/nwfpe/
-> >  core-$(CONFIG_FPE_FASTFPE)        += $(FASTFPE_OBJ)
-> >  core-$(CONFIG_VFP)                += arch/arm/vfp/
-> > +core-$(CONFIG_XEN)                += arch/arm/xen/
-> >  
-> >  # If we have a machine-specific directory, then include it in the build.
-> >  core-y                            += arch/arm/kernel/ arch/arm/mm/ arch/arm/common/
-> > diff --git a/arch/arm/include/asm/hypervisor.h b/arch/arm/include/asm/hypervisor.h
-> > new file mode 100644
-> > index 0000000..b90d9e5
-> > --- /dev/null
-> > +++ b/arch/arm/include/asm/hypervisor.h
-> > @@ -0,0 +1,6 @@
-> > +#ifndef _ASM_ARM_HYPERVISOR_H
-> > +#define _ASM_ARM_HYPERVISOR_H
-> > +
-> > +#include <asm/xen/hypervisor.h>
-> > +
-> > +#endif
-> > diff --git a/arch/arm/include/asm/xen/hypervisor.h b/arch/arm/include/asm/xen/hypervisor.h
-> > new file mode 100644
-> > index 0000000..d7ab99a
-> > --- /dev/null
-> > +++ b/arch/arm/include/asm/xen/hypervisor.h
-> > @@ -0,0 +1,19 @@
-> > +#ifndef _ASM_ARM_XEN_HYPERVISOR_H
-> > +#define _ASM_ARM_XEN_HYPERVISOR_H
-> > +
-> > +extern struct shared_info *HYPERVISOR_shared_info;
-> > +extern struct start_info *xen_start_info;
-> > +
-> > +/* Lazy mode for batching updates / context switch */
-> > +enum paravirt_lazy_mode {
-> > +  PARAVIRT_LAZY_NONE,
-> > +  PARAVIRT_LAZY_MMU,
-> > +  PARAVIRT_LAZY_CPU,
-> > +};
-> > +
-> > +static inline enum paravirt_lazy_mode paravirt_get_lazy_mode(void)
-> > +{
-> > +  return PARAVIRT_LAZY_NONE;
-> > +}
-> > +
-> > +#endif /* _ASM_ARM_XEN_HYPERVISOR_H */
-> > diff --git a/arch/arm/include/asm/xen/interface.h b/arch/arm/include/asm/xen/interface.h
-> > new file mode 100644
-> > index 0000000..6c3ab59
-> > --- /dev/null
-> > +++ b/arch/arm/include/asm/xen/interface.h
-> > @@ -0,0 +1,64 @@
-> > +/******************************************************************************
-> > + * Guest OS interface to ARM Xen.
-> > + *
-> > + * Stefano Stabellini <stefano.stabellini@eu.citrix.com>, Citrix, 2011
-> 
-> 2012
-> 
-> > + */
-> > +
-> > +#ifndef _ASM_ARM_XEN_INTERFACE_H
-> > +#define _ASM_ARM_XEN_INTERFACE_H
-> > +
-> > +#include <linux/types.h>
-> > +
-> > +#define __DEFINE_GUEST_HANDLE(name, type) \
-> > +  typedef type * __guest_handle_ ## name
-> > +
-> > +#define DEFINE_GUEST_HANDLE_STRUCT(name) \
-> > +  __DEFINE_GUEST_HANDLE(name, struct name)
-> > +#define DEFINE_GUEST_HANDLE(name) __DEFINE_GUEST_HANDLE(name, name)
-> > +#define GUEST_HANDLE(name)        __guest_handle_ ## name
-> > +
-> > +#define set_xen_guest_handle(hnd, val)                    \
-> > +  do {                                            \
-> > +          if (sizeof(hnd) == 8)                   \
-> > +                  *(uint64_t *)&(hnd) = 0;        \
-> > +          (hnd) = val;                            \
-> > +  } while (0)
-> > +
-> > +#ifndef __ASSEMBLY__
-> > +/* Guest handles for primitive C types. */
-> > +__DEFINE_GUEST_HANDLE(uchar, unsigned char);
-> > +__DEFINE_GUEST_HANDLE(uint,  unsigned int);
-> > +__DEFINE_GUEST_HANDLE(ulong, unsigned long);
-> > +DEFINE_GUEST_HANDLE(char);
-> > +DEFINE_GUEST_HANDLE(int);
-> > +DEFINE_GUEST_HANDLE(long);
-> > +DEFINE_GUEST_HANDLE(void);
-> > +DEFINE_GUEST_HANDLE(uint64_t);
-> > +DEFINE_GUEST_HANDLE(uint32_t);
-> > +
-> > +/* Maximum number of virtual CPUs in multi-processor guests. */
-> > +#define MAX_VIRT_CPUS 1
-> > +
-> > +struct arch_vcpu_info { };
-> > +struct arch_shared_info { };
-> > +
-> > +/* XXX: Move pvclock definitions some place arch independent */
-> > +struct pvclock_vcpu_time_info {
-> > +  u32   version;
-> > +  u32   pad0;
-> > +  u64   tsc_timestamp;
-> > +  u64   system_time;
-> > +  u32   tsc_to_system_mul;
-> > +  s8    tsc_shift;
-> > +  u8    flags;
-> > +  u8    pad[2];
-> > +} __attribute__((__packed__)); /* 32 bytes */
-> > +
-> > +struct pvclock_wall_clock {
-> > +  u32   version;
-> > +  u32   sec;
-> > +  u32   nsec;
-> > +} __attribute__((__packed__));
-> 
-> That is weird. It is 4+4+4 = 12 bytes? Don't you want it to be 16 bytes?
-
-I agree that 16 bytes would be a better choice, but it needs to match
-the struct in Xen that is defined as follow:
-
-    uint32_t wc_version;      /* Version counter: see vcpu_time_info_t. */
-    uint32_t wc_sec;          /* Secs  00:00:00 UTC, Jan 1, 1970.  */
-    uint32_t wc_nsec;         /* Nsecs 00:00:00 UTC, Jan 1, 1970.  */
-
-in xen/include/public/xen.h.
-
-
-> > +#endif
-> > +
-> > +#endif /* _ASM_ARM_XEN_INTERFACE_H */
-> > diff --git a/arch/arm/xen/Makefile b/arch/arm/xen/Makefile
-> > new file mode 100644
-> > index 0000000..0bad594
-> > --- /dev/null
-> > +++ b/arch/arm/xen/Makefile
-> > @@ -0,0 +1 @@
-> > +obj-y             := enlighten.o
-> > diff --git a/arch/arm/xen/enlighten.c b/arch/arm/xen/enlighten.c
-> > new file mode 100644
-> > index 0000000..d27c2a6
-> > --- /dev/null
-> > +++ b/arch/arm/xen/enlighten.c
-> > @@ -0,0 +1,35 @@
-> > +#include <xen/xen.h>
-> > +#include <xen/interface/xen.h>
-> > +#include <xen/interface/memory.h>
-> > +#include <xen/platform_pci.h>
-> > +#include <asm/xen/hypervisor.h>
-> > +#include <asm/xen/hypercall.h>
-> > +#include <linux/module.h>
-> > +
-> > +struct start_info _xen_start_info;
-> > +struct start_info *xen_start_info = &_xen_start_info;
-> > +EXPORT_SYMBOL_GPL(xen_start_info);
-> > +
-> > +enum xen_domain_type xen_domain_type = XEN_NATIVE;
-> > +EXPORT_SYMBOL_GPL(xen_domain_type);
-> > +
-> > +struct shared_info xen_dummy_shared_info;
-> > +struct shared_info *HYPERVISOR_shared_info = (void *)&xen_dummy_shared_info;
-> > +
-> > +DEFINE_PER_CPU(struct vcpu_info *, xen_vcpu);
-> > +
-> > +/* XXX: to be removed */
-> 
-> In this patch series later on? Or just when you try to collapse the x86 and arm variant
-> together?
-
-The latter.
-It is not harmful but we don't need xen_have_vector_callback on ARM, so it
-would be nice if we didn't have to define it here.
-
-
-> > +__read_mostly int xen_have_vector_callback;
-> > +EXPORT_SYMBOL_GPL(xen_have_vector_callback);
-> > +
-> > +int xen_platform_pci_unplug = XEN_UNPLUG_ALL;
-> > +EXPORT_SYMBOL_GPL(xen_platform_pci_unplug);
-> > +
-> > +int xen_remap_domain_mfn_range(struct vm_area_struct *vma,
-> > +                         unsigned long addr,
-> > +                         unsigned long mfn, int nr,
-> > +                         pgprot_t prot, unsigned domid)
-> > +{
-> > +  return -ENOSYS;
-> > +}
-> > +EXPORT_SYMBOL_GPL(xen_remap_domain_mfn_range);
-> > diff --git a/include/xen/xen.h b/include/xen/xen.h
-> > index a164024..2c0d3a5 100644
-> > --- a/include/xen/xen.h
-> > +++ b/include/xen/xen.h
-> > @@ -23,7 +23,7 @@ extern enum xen_domain_type xen_domain_type;
-> >  #include <xen/interface/xen.h>
-> >  #include <asm/xen/hypervisor.h>
-> >  
-> > -#define xen_initial_domain()      (xen_pv_domain() && \
-> > +#define xen_initial_domain()      (xen_domain() && \
-> >                             xen_start_info->flags & SIF_INITDOMAIN)
-> >  #else  /* !CONFIG_XEN_DOM0 */
-> >  #define xen_initial_domain()      (0)
-> > -- 
-> > 1.7.2.5
-> > 
-> > 
-> > _______________________________________________
-> > Xen-devel mailing list
-> > Xen-devel@lists.xen.org
-> > http://lists.xen.org/xen-devel
-> 
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<alpine.DEB.2.02.1207271350370.26163@kaball.uk.xensource.com> b/test/corpus/<alpine.DEB.2.02.1207271350370.26163@kaball.uk.xensource.com>
deleted file mode 100644 (file)
index f14ac91..0000000
+++ /dev/null
@@ -1,319 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Jul 27 14:08:16 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 27 Jul 2012 14:08:16 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SukH4-0001aH-Qr
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 27 Jul 2012 14:08:16 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SukCI-0007iR-Pe; Fri, 27 Jul 2012 13:03:14 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1SukCH-0007iM-6w
-       for xen-devel@lists.xensource.com; Fri, 27 Jul 2012 13:03:13 +0000
-Received: from [85.158.138.51:35890] by server-11.bemta-3.messagelabs.com id
-       7D/62-00679-09192105; Fri, 27 Jul 2012 13:03:12 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-7.tower-174.messagelabs.com!1343394191!20226692!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDcxMzQ=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.2; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 28918 invoked from network); 27 Jul 2012 13:03:11 -0000
-Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-7.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
-       27 Jul 2012 13:03:11 -0000
-X-IronPort-AV: E=Sophos;i="4.77,667,1336348800"; d="scan'208";a="13734970"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       27 Jul 2012 13:03:11 +0000
-Received: from kaball.uk.xensource.com (10.80.2.59) by
-       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
-       8.3.213.0; Fri, 27 Jul 2012 14:03:11 +0100
-Date: Fri, 27 Jul 2012 14:02:18 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-X-Sender: sstabellini@kaball.uk.xensource.com
-To: Ian Campbell <Ian.Campbell@citrix.com>
-In-Reply-To: <1343380659.6812.106.camel@zakaz.uk.xensource.com>
-Message-ID: <alpine.DEB.2.02.1207271350370.26163@kaball.uk.xensource.com>
-References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
-       <1343316846-25860-2-git-send-email-stefano.stabellini@eu.citrix.com>
-       <20120726163352.GC9222@phenom.dumpdata.com>
-       <1343380659.6812.106.camel@zakaz.uk.xensource.com>
-User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
-       "linaro-dev@lists.linaro.org" <linaro-dev@lists.linaro.org>,
-       "arnd@arndb.de" <arnd@arndb.de>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>,
-       "catalin.marinas@arm.com" <catalin.marinas@arm.com>,
-       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
-       "Tim \(Xen.org\)" <tim@xen.org>,
-       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
-       "linux-arm-kernel@lists.infradead.org"
-       <linux-arm-kernel@lists.infradead.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 02/24] xen/arm: hypercalls
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Fri, 27 Jul 2012, Ian Campbell wrote:
-> On Thu, 2012-07-26 at 17:33 +0100, Konrad Rzeszutek Wilk wrote:
-> > On Thu, Jul 26, 2012 at 04:33:44PM +0100, Stefano Stabellini wrote:
-> > > Use r12 to pass the hypercall number to the hypervisor.
-> > > 
-> > > We need a register to pass the hypercall number because we might not
-> > > know it at compile time and HVC only takes an immediate argument.
-> > > 
-> > > Among the available registers r12 seems to be the best choice because it
-> > > is defined as "intra-procedure call scratch register".
-> > > 
-> > > Use the ISS to pass an hypervisor specific tag.
-> > > 
-> > > Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-> > > ---
-> > >  arch/arm/include/asm/xen/hypercall.h |   50 ++++++++++++++++++++++++++
-> > >  arch/arm/xen/Makefile                |    2 +-
-> > >  arch/arm/xen/hypercall.S             |   65 ++++++++++++++++++++++++++++++++++
-> > >  3 files changed, 116 insertions(+), 1 deletions(-)
-> > >  create mode 100644 arch/arm/include/asm/xen/hypercall.h
-> > >  create mode 100644 arch/arm/xen/hypercall.S
-> > > 
-> > > diff --git a/arch/arm/include/asm/xen/hypercall.h b/arch/arm/include/asm/xen/hypercall.h
-> > > new file mode 100644
-> > > index 0000000..4ac0624
-> > > --- /dev/null
-> > > +++ b/arch/arm/include/asm/xen/hypercall.h
-> > > @@ -0,0 +1,50 @@
-> > > +/******************************************************************************
-> > > + * hypercall.h
-> > > + *
-> > > + * Linux-specific hypervisor handling.
-> > > + *
-> > > + * Stefano Stabellini <stefano.stabellini@eu.citrix.com>, Citrix, 2012
-> > > + *
-> > > + * This program is free software; you can redistribute it and/or
-> > > + * modify it under the terms of the GNU General Public License version 2
-> > > + * as published by the Free Software Foundation; or, when distributed
-> > > + * separately from the Linux kernel or incorporated into other
-> > > + * software packages, subject to the following license:
-> > > + *
-> > > + * Permission is hereby granted, free of charge, to any person obtaining a copy
-> > > + * of this source file (the "Software"), to deal in the Software without
-> > > + * restriction, including without limitation the rights to use, copy, modify,
-> > > + * merge, publish, distribute, sublicense, and/or sell copies of the Software,
-> > > + * and to permit persons to whom the Software is furnished to do so, subject to
-> > > + * the following conditions:
-> > > + *
-> > > + * The above copyright notice and this permission notice shall be included in
-> > > + * all copies or substantial portions of the Software.
-> > > + *
-> > > + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-> > > + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-> > > + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-> > > + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-> > > + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-> > > + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
-> > > + * IN THE SOFTWARE.
-> > > + */
-> > > +
-> > > +#ifndef _ASM_ARM_XEN_HYPERCALL_H
-> > > +#define _ASM_ARM_XEN_HYPERCALL_H
-> > > +
-> > > +#include <xen/interface/xen.h>
-> > > +
-> > > +long privcmd_call(unsigned call, unsigned long a1,
-> > > +                unsigned long a2, unsigned long a3,
-> > > +                unsigned long a4, unsigned long a5);
-> > > +int HYPERVISOR_xen_version(int cmd, void *arg);
-> > > +int HYPERVISOR_console_io(int cmd, int count, char *str);
-> > > +int HYPERVISOR_grant_table_op(unsigned int cmd, void *uop, unsigned int count);
-> > > +int HYPERVISOR_sched_op(int cmd, void *arg);
-> > > +int HYPERVISOR_event_channel_op(int cmd, void *arg);
-> > > +unsigned long HYPERVISOR_hvm_op(int op, void *arg);
-> > > +int HYPERVISOR_memory_op(unsigned int cmd, void *arg);
-> > > +int HYPERVISOR_physdev_op(int cmd, void *arg);
-> > > +
-> > > +#endif /* _ASM_ARM_XEN_HYPERCALL_H */
-> > > diff --git a/arch/arm/xen/Makefile b/arch/arm/xen/Makefile
-> > > index 0bad594..b9d6acc 100644
-> > > --- a/arch/arm/xen/Makefile
-> > > +++ b/arch/arm/xen/Makefile
-> > > @@ -1 +1 @@
-> > > -obj-y           := enlighten.o
-> > > +obj-y           := enlighten.o hypercall.o
-> > > diff --git a/arch/arm/xen/hypercall.S b/arch/arm/xen/hypercall.S
-> > > new file mode 100644
-> > > index 0000000..038cc5b
-> > > --- /dev/null
-> > > +++ b/arch/arm/xen/hypercall.S
-> > > @@ -0,0 +1,65 @@
-> > > +/******************************************************************************
-> > > + * hypercall.S
-> > > + *
-> > > + * Xen hypercall wrappers
-> > > + *
-> > > + * The Xen hypercall calling convention is very similar to the ARM
-> > > + * procedure calling convention: the first paramter is passed in r0, the
-> > > + * second in r1, the third in r2 and the third in r3. Considering that
-> > 
-> > I think you meant 'and the fourth in r3'.
-> > 
-> > So where does the similarity end?  Just in that we use r12?
-> 
-> The standard ARM function calling convention is arguments 1-4 on r0-r3
-> and arguments 5+ on the stack. r12 is a scratch register which can be
-> clobbered by the *linker* on subroutine call (r12 is also called "ip"
-> the intra-procedure call scratch register).
-> 
-> The hypervisor doesn't want to be accessing hypercall arguments off the
-> guest stack, for obvious reasons, so we use r4 for the fifth argument
-> (and if we even implemented 6 argument hypercalls we'd use r5, etc).
-> There is no equivalent to the hypercall number in the procedure calling
-> convention so we picked r12 because it is up and out of the way and is
-> otherwise a scratch register. Obviously that you must not make a
-> procedure call between setting the hypercall number in r12 and calling
-> the hvc instruction.
-> 
-> > 
-> > > + * Xen hypercalls have 5 arguments at most, the fifth paramter is passed
-> > > + * in r4, differently from the procedure calling convention of using the
-> > 
-> > > + * stack for that case.
-> > > + *
-> > > + * The hypercall number is passed in r12.
-> > > + *
-> > > + * The return value is in r0.
-> > > + *
-> > > + * The hvc ISS is required to be 0xEA1, that is the Xen specific ARM
-> > > + * hypercall tag.
-> > > + *
-> > > + * Stefano Stabellini <stefano.stabellini@eu.citrix.com>, Citrix, 2012
-> > > + */
-> > > +
-> > > +#include <linux/linkage.h>
-> > > +#include <asm/assembler.h>
-> > > +#include <xen/interface/xen.h>
-> > > +
-> > > +
-> > > +/* HVC 0xEA1 */
-> > > +#ifdef CONFIG_THUMB2_KERNEL
-> > > +#define xen_hvc .word 0xf7e08ea1
-> > > +#else
-> > > +#define xen_hvc .word 0xe140ea71
-> > > +#endif
-> > > +
-> > > +/* We need to save and restore r4, because Xen clobbers it. */
-> > 
-> > Hmm, the comment says r4, but right below I see r12?
-> 
-> The ARM procedure calling convention allows a subroutine to clobber
-> r1..r3 (r0 is the return value) but not r4 which must be preserved. But
-> the hypervisor ABI clobbers all argument registers so the caller has to
-> specially preserve r4 in this context whenever there is a 5 argument
-> hypercall.
-> 
-> I presume that none of the hypercalls defined below have 5 arguments and
-> therefore we don't need to preserve r4 except in the generic
-> privcmd_call function. 
-> 
-> To be honest I prefer the style which we use on x86 which is to define
-> hypercall{0,1,2,3,4,5} macros and to wrap those with the specific names
-> using inline functions.
-> 
-> I find the x86 way more self documenting, and being in C prevents errors
-> around the number of arguments. It also allows for better in-lining and
-> exposes to gcc the actual clobbers, which might allow it to avoid saving
-> r4 on the stack at all etc.
-
-Considering that we cannot do the same thing that we do on x86 (see this
-thread http://marc.info/?l=linux-kernel&m=133052035426427&w=2), I
-decided to go for the assembly implementation because it is much shorter
-and easier to understand (for me at least, being just 3 lines of code in
-the generic case and just one macro) and this way we can exploit the
-code generated by gcc to put the arguments in the right registers.
-
-Also I like the fact that it is the same strategy used by libc to issue
-syscalls.
-
-As you can see it results in 3 lines of code for all the hypercalls
-except the ones that might take more than 4 arguments, that right now is
-just privcmd.
-
-
-
-> > Should this comment be by 'privcmd_call'?
-> 
-> When we add a 5 argument hypercall I suppose we'll see the required
-> push/pop of r4 added to this macro too.
-
-For performance and simplicity I would add a second macro that push/pop
-r4, only required for hypercalls with more than 4 arguments.
-
-
-> > > +#define HYPERCALL(hypercall)                    \
-> > > +ENTRY(HYPERVISOR_##hypercall)                   \
-> > > +        mov r12, #__HYPERVISOR_##hypercall;     \
-> > > +        xen_hvc;                                                        \
-> > > +        mov pc, lr;                                                     \
-> > > +ENDPROC(HYPERVISOR_##hypercall)
-> > > +
-> > > +                .text
-> > > +
-> > > +HYPERCALL(xen_version);
-> > > +HYPERCALL(console_io);
-> > > +HYPERCALL(grant_table_op);
-> > > +HYPERCALL(sched_op);
-> > > +HYPERCALL(event_channel_op);
-> > > +HYPERCALL(hvm_op);
-> > > +HYPERCALL(memory_op);
-> > > +HYPERCALL(physdev_op);
-> > > +
-> > > +ENTRY(privcmd_call)
-> > > +        stmdb   sp!, {r4}
-> > > +        mov r12, r0
-> > > +        mov r0, r1
-> > > +        mov r1, r2
-> > > +        mov r2, r3
-> > > +        ldr r3, [sp, #8]
-> > > +        ldr r4, [sp, #4]
-> > > +        xen_hvc
-> > > +        pop {r4}
-> 
-> Why not ldmdb for symmetry?
-
-Yep, I can do that.
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<alpine.DEB.2.02.1207271431320.26163@kaball.uk.xensource.com> b/test/corpus/<alpine.DEB.2.02.1207271431320.26163@kaball.uk.xensource.com>
deleted file mode 100644 (file)
index e57a2a8..0000000
+++ /dev/null
@@ -1,145 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Jul 27 14:47:33 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 27 Jul 2012 14:47:33 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1Sukt5-0001jD-B2
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 27 Jul 2012 14:47:33 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SukoG-0000Ro-Dh; Fri, 27 Jul 2012 13:42:28 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1SukoE-0000Rh-8a
-       for xen-devel@lists.xensource.com; Fri, 27 Jul 2012 13:42:26 +0000
-Received: from [85.158.138.51:31149] by server-1.bemta-3.messagelabs.com id
-       38/CE-31934-1CA92105; Fri, 27 Jul 2012 13:42:25 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-3.tower-174.messagelabs.com!1343396544!21059973!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDcxMzQ=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.2; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 15587 invoked from network); 27 Jul 2012 13:42:25 -0000
-Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-3.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
-       27 Jul 2012 13:42:25 -0000
-X-IronPort-AV: E=Sophos;i="4.77,667,1336348800"; d="scan'208";a="13735886"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       27 Jul 2012 13:42:24 +0000
-Received: from kaball.uk.xensource.com (10.80.2.59) by
-       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
-       8.3.213.0; Fri, 27 Jul 2012 14:42:24 +0100
-Date: Fri, 27 Jul 2012 14:41:31 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-X-Sender: sstabellini@kaball.uk.xensource.com
-To: Ian Campbell <Ian.Campbell@citrix.com>
-In-Reply-To: <1343395134.6812.162.camel@zakaz.uk.xensource.com>
-Message-ID: <alpine.DEB.2.02.1207271431320.26163@kaball.uk.xensource.com>
-References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
-       <1343316846-25860-2-git-send-email-stefano.stabellini@eu.citrix.com>
-       <20120726163352.GC9222@phenom.dumpdata.com>
-       <1343380659.6812.106.camel@zakaz.uk.xensource.com> 
-       <alpine.DEB.2.02.1207271350370.26163@kaball.uk.xensource.com>
-       <1343395134.6812.162.camel@zakaz.uk.xensource.com>
-User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
-       "linaro-dev@lists.linaro.org" <linaro-dev@lists.linaro.org>,
-       "arnd@arndb.de" <arnd@arndb.de>,
-       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
-       "catalin.marinas@arm.com" <catalin.marinas@arm.com>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>,
-       "Tim \(Xen.org\)" <tim@xen.org>,
-       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
-       "linux-arm-kernel@lists.infradead.org"
-       <linux-arm-kernel@lists.infradead.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 02/24] xen/arm: hypercalls
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Fri, 27 Jul 2012, Ian Campbell wrote:
-> > > > Should this comment be by 'privcmd_call'?
-> > > 
-> > > When we add a 5 argument hypercall I suppose we'll see the required
-> > > push/pop of r4 added to this macro too.
-> > 
-> > For performance and simplicity I would add a second macro that push/pop
-> > r4, only required for hypercalls with more than 4 arguments.
-> 
-> For clarity / documentation purposes it might actually be worthwhile to
-> define all of HYPERCALL{0,1,2,3,4} even if the {0,1,2,3} cases are all
-> just:
->         #define HYPERCALL0(x) HYPERCALL_SIMPLE(x)
-
-I agree
-
-> > > > > +#define HYPERCALL(hypercall)                        \
-> > > > > +ENTRY(HYPERVISOR_##hypercall)                       \
-> > > > > +    mov r12, #__HYPERVISOR_##hypercall;     \
-> > > > > +    xen_hvc;                                                        \
-> > > > > +    mov pc, lr;                                                     \
-> > > > > +ENDPROC(HYPERVISOR_##hypercall)
-> > > > > +
-> > > > > +                .text
-> > > > > +
-> > > > > +HYPERCALL(xen_version);
-> > > > > +HYPERCALL(console_io);
-> > > > > +HYPERCALL(grant_table_op);
-> > > > > +HYPERCALL(sched_op);
-> > > > > +HYPERCALL(event_channel_op);
-> > > > > +HYPERCALL(hvm_op);
-> > > > > +HYPERCALL(memory_op);
-> > > > > +HYPERCALL(physdev_op);
-> > > > > +
-> > > > > +ENTRY(privcmd_call)
-> > > > > +    stmdb   sp!, {r4}
-> > > > > +    mov r12, r0
-> > > > > +    mov r0, r1
-> > > > > +    mov r1, r2
-> > > > > +    mov r2, r3
-> > > > > +    ldr r3, [sp, #8]
-> > > > > +    ldr r4, [sp, #4]
-> > > > > +    xen_hvc
-> > > > > +    pop {r4}
-> > > 
-> > > Why not ldmdb for symmetry?
-> > 
-> > Yep, I can do that.
-
-Actually it is just ldm or ldmia
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<alpine.DEB.2.02.1207271442380.26163@kaball.uk.xensource.com> b/test/corpus/<alpine.DEB.2.02.1207271442380.26163@kaball.uk.xensource.com>
deleted file mode 100644 (file)
index bddb371..0000000
+++ /dev/null
@@ -1,208 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Jul 27 14:53:19 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 27 Jul 2012 14:53:19 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1Sukyj-0001l6-6R
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 27 Jul 2012 14:53:19 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1Suktr-0000li-Pn; Fri, 27 Jul 2012 13:48:15 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1Suktp-0000lc-JX
-       for xen-devel@lists.xensource.com; Fri, 27 Jul 2012 13:48:13 +0000
-Received: from [85.158.139.83:19278] by server-7.bemta-5.messagelabs.com id
-       40/6A-28276-C1C92105; Fri, 27 Jul 2012 13:48:12 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-3.tower-182.messagelabs.com!1343396891!28971560!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDcxMzQ=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.2; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 31294 invoked from network); 27 Jul 2012 13:48:12 -0000
-Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-3.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
-       27 Jul 2012 13:48:12 -0000
-X-IronPort-AV: E=Sophos;i="4.77,667,1336348800"; d="scan'208";a="13735994"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       27 Jul 2012 13:48:11 +0000
-Received: from kaball.uk.xensource.com (10.80.2.59) by
-       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
-       8.3.213.0; Fri, 27 Jul 2012 14:48:11 +0100
-Date: Fri, 27 Jul 2012 14:47:18 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-X-Sender: sstabellini@kaball.uk.xensource.com
-To: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-In-Reply-To: <20120726163655.GD9222@phenom.dumpdata.com>
-Message-ID: <alpine.DEB.2.02.1207271442380.26163@kaball.uk.xensource.com>
-References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
-       <1343316846-25860-3-git-send-email-stefano.stabellini@eu.citrix.com>
-       <20120726163655.GD9222@phenom.dumpdata.com>
-User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
-       "linaro-dev@lists.linaro.org" <linaro-dev@lists.linaro.org>,
-       Ian Campbell <Ian.Campbell@citrix.com>, "arnd@arndb.de" <arnd@arndb.de>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>,
-       "catalin.marinas@arm.com" <catalin.marinas@arm.com>,
-       "Tim \(Xen.org\)" <tim@xen.org>,
-       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
-       "linux-arm-kernel@lists.infradead.org"
-       <linux-arm-kernel@lists.infradead.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 03/24] xen/arm: page.h definitions
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Thu, 26 Jul 2012, Konrad Rzeszutek Wilk wrote:
-> On Thu, Jul 26, 2012 at 04:33:45PM +0100, Stefano Stabellini wrote:
-> > ARM Xen guests always use paging in hardware, like PV on HVM guests in
-> > the X86 world.
-> 
-> Nice, so no dealing with the P2M at all in the guest?
-
-Nope ;-)
-
-
-> > Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-> > ---
-> >  arch/arm/include/asm/xen/page.h |   77 +++++++++++++++++++++++++++++++++++++++
-> >  1 files changed, 77 insertions(+), 0 deletions(-)
-> >  create mode 100644 arch/arm/include/asm/xen/page.h
-> > 
-> > diff --git a/arch/arm/include/asm/xen/page.h b/arch/arm/include/asm/xen/page.h
-> > new file mode 100644
-> > index 0000000..6cfe9a1
-> > --- /dev/null
-> > +++ b/arch/arm/include/asm/xen/page.h
-> > @@ -0,0 +1,77 @@
-> > +#ifndef _ASM_ARM_XEN_PAGE_H
-> > +#define _ASM_ARM_XEN_PAGE_H
-> > +
-> > +#include <asm/page.h>
-> > +#include <linux/pfn.h>
-> > +#include <linux/types.h>
-> > +#include <asm/pgtable.h>
-> > +#include <xen/interface/grant_table.h>
-> 
-> I don't if it makes such a difference, but putting the headers in sorted
-> order is sometimes nicer than just randomly.. But that might be just
-> me liking an orderly world nowadays :-)
-
-I can do that
-
-
-> > +
-> > +#define pfn_to_mfn(pfn)                   (pfn)
-> > +#define phys_to_machine_mapping_valid     (1)
-> > +#define mfn_to_pfn(mfn)                   (mfn)
-> > +#define mfn_to_virt(m)                    (__va(mfn_to_pfn(m) << PAGE_SHIFT))
-> > +
-> > +#define pte_mfn       pte_pfn
-> > +#define mfn_pte       pfn_pte
-> > +
-> > +/* Xen machine address */
-> > +typedef struct xmaddr {
-> > +  phys_addr_t maddr;
-> > +} xmaddr_t;
-> > +
-> > +/* Xen pseudo-physical address */
-> > +typedef struct xpaddr {
-> > +  phys_addr_t paddr;
-> > +} xpaddr_t;
-> > +
-> > +#define XMADDR(x) ((xmaddr_t) { .maddr = (x) })
-> > +#define XPADDR(x) ((xpaddr_t) { .paddr = (x) })
-> > +
-> > +static inline xmaddr_t phys_to_machine(xpaddr_t phys)
-> > +{
-> > +  unsigned offset = phys.paddr & ~PAGE_MASK;
-> > +  return XMADDR(PFN_PHYS(pfn_to_mfn(PFN_DOWN(phys.paddr))) | offset);
-> > +}
-> > +
-> > +static inline xpaddr_t machine_to_phys(xmaddr_t machine)
-> > +{
-> > +  unsigned offset = machine.maddr & ~PAGE_MASK;
-> > +  return XPADDR(PFN_PHYS(mfn_to_pfn(PFN_DOWN(machine.maddr))) | offset);
-> > +}
-> > +/* VIRT <-> MACHINE conversion */
-> > +#define virt_to_machine(v)        (phys_to_machine(XPADDR(__pa(v))))
-> > +#define virt_to_pfn(v)          (PFN_DOWN(__pa(v)))
-> > +#define virt_to_mfn(v)            (pfn_to_mfn(virt_to_pfn(v)))
-> > +#define mfn_to_virt(m)            (__va(mfn_to_pfn(m) << PAGE_SHIFT))
-> > +
-> > +static inline xmaddr_t arbitrary_virt_to_machine(void *vaddr)
-> > +{
-> > +  /* XXX: assuming it is mapped in the kernel 1:1 */
-> > +  return virt_to_machine(vaddr);
-> > +}
-> > +
-> > +/* XXX: this shouldn't be here */
-> 
-> So why is it here?
-
-lookup_address shouldn't be here because it is an x86-only interface.
-However both gntdev.c and xenbus_client.c call it (in PV only code paths
-that are never taken in a PV on HVM guest), so in order to compile them
-I have to define lookup_address.
-
-
-> > +static inline pte_t *lookup_address(unsigned long address, unsigned int *level)
-> > +{
-> > +  BUG();
-> > +  return NULL;
-> > +}
-> > +
-> > +static inline int m2p_add_override(unsigned long mfn, struct page *page,
-> > +          struct gnttab_map_grant_ref *kmap_op)
-> > +{
-> > +  return 0;
-> > +}
-> > +
-> > +static inline int m2p_remove_override(struct page *page, bool clear_pte)
-> > +{
-> > +  return 0;
-> > +}
-> > +
-> > +static inline bool set_phys_to_machine(unsigned long pfn, unsigned long mfn)
-> > +{
-> > +  BUG();
-> > +  return false;
-> > +}
-> > +#endif /* _ASM_ARM_XEN_PAGE_H */
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<alpine.DEB.2.02.1207271454470.26163@kaball.uk.xensource.com> b/test/corpus/<alpine.DEB.2.02.1207271454470.26163@kaball.uk.xensource.com>
deleted file mode 100644 (file)
index 7c548f6..0000000
+++ /dev/null
@@ -1,138 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Jul 27 15:04:24 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 27 Jul 2012 15:04:24 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1Sul9O-0001nj-Vi
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 27 Jul 2012 15:04:24 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1Sul45-00010i-65; Fri, 27 Jul 2012 13:58:49 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1Sul43-00010a-4N
-       for xen-devel@lists.xensource.com; Fri, 27 Jul 2012 13:58:47 +0000
-Received: from [85.158.143.35:3509] by server-2.bemta-4.messagelabs.com id
-       9E/D5-17938-69E92105; Fri, 27 Jul 2012 13:58:46 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-6.tower-21.messagelabs.com!1343397525!17407375!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDcxMzQ=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.2; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 11485 invoked from network); 27 Jul 2012 13:58:45 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-6.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
-       27 Jul 2012 13:58:45 -0000
-X-IronPort-AV: E=Sophos;i="4.77,667,1336348800"; d="scan'208";a="13736267"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       27 Jul 2012 13:58:45 +0000
-Received: from kaball.uk.xensource.com (10.80.2.59) by
-       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
-       8.3.213.0; Fri, 27 Jul 2012 14:58:44 +0100
-Date: Fri, 27 Jul 2012 14:57:52 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-X-Sender: sstabellini@kaball.uk.xensource.com
-To: Christopher Covington <cov@codeaurora.org>
-In-Reply-To: <50128FE6.5070109@codeaurora.org>
-Message-ID: <alpine.DEB.2.02.1207271454470.26163@kaball.uk.xensource.com>
-References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
-       <1343316846-25860-2-git-send-email-stefano.stabellini@eu.citrix.com>
-       <50119856.2020206@codeaurora.org>
-       <1343380764.6812.108.camel@zakaz.uk.xensource.com>
-       <50128FE6.5070109@codeaurora.org>
-User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
-       "linaro-dev@lists.linaro.org" <linaro-dev@lists.linaro.org>,
-       Ian Campbell <Ian.Campbell@citrix.com>, "arnd@arndb.de" <arnd@arndb.de>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>,
-       "catalin.marinas@arm.com" <catalin.marinas@arm.com>,
-       "konrad.wilk@oracle.com" <konrad.wilk@oracle.com>,
-       "Tim \(Xen.org\)" <tim@xen.org>,
-       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
-       "linux-arm-kernel@lists.infradead.org"
-       <linux-arm-kernel@lists.infradead.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 02/24] xen/arm: hypercalls
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Fri, 27 Jul 2012, Christopher Covington wrote:
-> On 07/27/2012 05:19 AM, Ian Campbell wrote:
-> > On Thu, 2012-07-26 at 20:19 +0100, Christopher Covington wrote:
-> >> Hi Stefano,
-> >>
-> >> On 07/26/2012 11:33 AM, Stefano Stabellini wrote:
-> >>> Use r12 to pass the hypercall number to the hypervisor.
-> >>>
-> >>> We need a register to pass the hypercall number because we might not
-> >>> know it at compile time and HVC only takes an immediate argument.
-> >>
-> >> You're not going to JIT assemble the appropriate HVC instruction? Darn.
-> > 
-> > ;-)
-> > 
-
-I admit having spent few hours thinking about how to implement a
-self-modifying function able to change the ISS at run time. Fortunately
-few hours later I was struck by common sense and I decided to follow a
-different direction ;-)
-
-
-> > The maximum currently defined hypercall number is 55, although there are
-> > some small gaps so there's actually more like 45 in total.
-> > 
-> >>  It seems like it'd be
-> >> reasonable to take the approach that seems to be favored for MRC/MCR
-> >> instructions, using a function containing switch statement that chooses
-> >> between several inline assembly instructions based off an enum passed to
-> >> the function. See for example arch_timer_reg_read in
-> >> arch/arm/kernel/arch_timer.c.
-> > 
-> > I don't think it is feasible with this number of hypercalls, even
-> > accepting that in many cases the number will be a constant so gcc can
-> > likely optimise almost all of it away.
-> > 
-> > Is there something wrong with the r12 based approach?
-> 
-> Only that you're defining a custom interface for something that there is
-> a potentially more standard interface for. I just wanted to double check
-> that all the ways of using the potentially more standard interface had
-> been explored and found to be unreasonable.
-
-Yep, thanks for helping us reviewing the code.
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<alpine.DEB.2.02.1207271502480.26163@kaball.uk.xensource.com> b/test/corpus/<alpine.DEB.2.02.1207271502480.26163@kaball.uk.xensource.com>
deleted file mode 100644 (file)
index 5e66914..0000000
+++ /dev/null
@@ -1,150 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Jul 27 15:16:07 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 27 Jul 2012 15:16:07 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SulKn-0001rz-F6
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 27 Jul 2012 15:16:07 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SulG1-0001So-EO; Fri, 27 Jul 2012 14:11:09 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1SulG0-0001Sj-7n
-       for xen-devel@lists.xensource.com; Fri, 27 Jul 2012 14:11:08 +0000
-Received: from [85.158.139.83:22185] by server-5.bemta-5.messagelabs.com id
-       0E/F3-02722-B71A2105; Fri, 27 Jul 2012 14:11:07 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-9.tower-182.messagelabs.com!1343398266!28323533!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDcxMzQ=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.2; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 15561 invoked from network); 27 Jul 2012 14:11:06 -0000
-Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-9.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
-       27 Jul 2012 14:11:06 -0000
-X-IronPort-AV: E=Sophos;i="4.77,667,1336348800"; d="scan'208";a="13736617"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       27 Jul 2012 14:11:06 +0000
-Received: from kaball.uk.xensource.com (10.80.2.59) by
-       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
-       8.3.213.0; Fri, 27 Jul 2012 15:11:06 +0100
-Date: Fri, 27 Jul 2012 15:10:13 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-X-Sender: sstabellini@kaball.uk.xensource.com
-To: Jan Beulich <JBeulich@suse.com>
-In-Reply-To: <5012598C0200007800090DB9@nat28.tlf.novell.com>
-Message-ID: <alpine.DEB.2.02.1207271502480.26163@kaball.uk.xensource.com>
-References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
-       <1343316846-25860-17-git-send-email-stefano.stabellini@eu.citrix.com>
-       <5012598C0200007800090DB9@nat28.tlf.novell.com>
-User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
-       "linaro-dev@lists.linaro.org" <linaro-dev@lists.linaro.org>,
-       Ian Campbell <Ian.Campbell@citrix.com>, "arnd@arndb.de" <arnd@arndb.de>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>,
-       "catalin.marinas@arm.com" <catalin.marinas@arm.com>,
-       "konrad.wilk@oracle.com" <konrad.wilk@oracle.com>,
-       "Tim \(Xen.org\)" <tim@xen.org>,
-       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
-       "linux-arm-kernel@lists.infradead.org"
-       <linux-arm-kernel@lists.infradead.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 17/24] xen: allow privcmd for HVM guests
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Fri, 27 Jul 2012, Jan Beulich wrote:
-> >>> On 26.07.12 at 17:33, Stefano Stabellini <stefano.stabellini@eu.citrix.com> wrote:
-> > In order for privcmd mmap to work correctly, xen_remap_domain_mfn_range
-> > needs to be implemented for HVM guests.
-> > If it is not, mmap is going to fail later on.
-> 
-> Somehow, for me at least, this description doesn't connect to the
-> actual change.
-
-We can remove the "return -ENOSYS" from privcmd_mmap but the actual mmap
-is still not going to work unless xen_remap_domain_mfn_range is
-implemented correctly.
-The x86 implementation of xen_remap_domain_mfn_range is PV only so it is
-not going to work for HVM or auto_translated_physmap guests.
-As a result mmap_batch_fn is going to fail.
-
-
-> > Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-> > ---
-> >  drivers/xen/privcmd.c |    4 ----
-> >  1 files changed, 0 insertions(+), 4 deletions(-)
-> > 
-> > diff --git a/drivers/xen/privcmd.c b/drivers/xen/privcmd.c
-> > index ccee0f1..85226cb 100644
-> > --- a/drivers/xen/privcmd.c
-> > +++ b/drivers/xen/privcmd.c
-> > @@ -380,10 +380,6 @@ static struct vm_operations_struct privcmd_vm_ops = {
-> >  
-> >  static int privcmd_mmap(struct file *file, struct vm_area_struct *vma)
-> >  {
-> > -  /* Unsupported for auto-translate guests. */
-> > -  if (xen_feature(XENFEAT_auto_translated_physmap))
-> > -          return -ENOSYS;
-> > -
-> 
-> Is this safe on x86?
-> 
-
-It is safe in the sense that is not going to crash dom0 or the
-hypervisor, but it is not going to work.
-
-Actually in order for it to be safe we need this additional change:
-
-diff --git a/arch/x86/xen/mmu.c b/arch/x86/xen/mmu.c
-index 3a73785..885a223 100644
---- a/arch/x86/xen/mmu.c
-+++ b/arch/x86/xen/mmu.c
-@@ -2310,6 +2310,9 @@ int xen_remap_domain_mfn_range(struct vm_area_struct *vma,
-       unsigned long range;
-       int err = 0;
-+      if (xen_feature(XENFEAT_auto_translated_physmap))
-+              return -EINVAL;
-+
-       prot = __pgprot(pgprot_val(prot) | _PAGE_IOMAP);
-       BUG_ON(!((vma->vm_flags & (VM_PFNMAP | VM_RESERVED | VM_IO)) ==
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<alpine.DEB.2.02.1207271514140.26163@kaball.uk.xensource.com> b/test/corpus/<alpine.DEB.2.02.1207271514140.26163@kaball.uk.xensource.com>
deleted file mode 100644 (file)
index b591838..0000000
+++ /dev/null
@@ -1,133 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Jul 27 15:30:22 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 27 Jul 2012 15:30:22 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SulYW-0001vc-NY
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 27 Jul 2012 15:30:22 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SulV9-00026B-9K; Fri, 27 Jul 2012 14:26:47 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1SulV7-00025u-KP
-       for xen-devel@lists.xensource.com; Fri, 27 Jul 2012 14:26:45 +0000
-Received: from [85.158.138.51:57992] by server-4.bemta-3.messagelabs.com id
-       14/0F-29069-425A2105; Fri, 27 Jul 2012 14:26:44 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-2.tower-174.messagelabs.com!1343399201!29167380!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDcxMzQ=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.2; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 17375 invoked from network); 27 Jul 2012 14:26:42 -0000
-Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-2.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
-       27 Jul 2012 14:26:42 -0000
-X-IronPort-AV: E=Sophos;i="4.77,667,1336348800"; d="scan'208";a="13737083"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       27 Jul 2012 14:26:41 +0000
-Received: from kaball.uk.xensource.com (10.80.2.59) by
-       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
-       8.3.213.0; Fri, 27 Jul 2012 15:26:41 +0100
-Date: Fri, 27 Jul 2012 15:25:47 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-X-Sender: sstabellini@kaball.uk.xensource.com
-To: Ian Campbell <Ian.Campbell@citrix.com>
-In-Reply-To: <1343382276.6812.126.camel@zakaz.uk.xensource.com>
-Message-ID: <alpine.DEB.2.02.1207271514140.26163@kaball.uk.xensource.com>
-References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
-       <1343316846-25860-13-git-send-email-stefano.stabellini@eu.citrix.com>
-       <1343382276.6812.126.camel@zakaz.uk.xensource.com>
-User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
-       "linaro-dev@lists.linaro.org" <linaro-dev@lists.linaro.org>,
-       "arnd@arndb.de" <arnd@arndb.de>,
-       "konrad.wilk@oracle.com" <konrad.wilk@oracle.com>,
-       "catalin.marinas@arm.com" <catalin.marinas@arm.com>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>,
-       "Tim \(Xen.org\)" <tim@xen.org>,
-       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
-       "linux-arm-kernel@lists.infradead.org"
-       <linux-arm-kernel@lists.infradead.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 13/24] xen/arm: get privilege status
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Fri, 27 Jul 2012, Ian Campbell wrote:
-> On Thu, 2012-07-26 at 16:33 +0100, Stefano Stabellini wrote:
-> > Use Xen features to figure out if we are privileged.
-> > 
-> > XENFEAT_dom0 was introduced by 23735 in xen-unstable.hg.
-> > 
-> > Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-> > ---
-> >  arch/arm/xen/enlighten.c         |    7 +++++++
-> >  include/xen/interface/features.h |    3 +++
-> >  2 files changed, 10 insertions(+), 0 deletions(-)
-> > 
-> > diff --git a/arch/arm/xen/enlighten.c b/arch/arm/xen/enlighten.c
-> > index dc68074..2e013cf 100644
-> > --- a/arch/arm/xen/enlighten.c
-> > +++ b/arch/arm/xen/enlighten.c
-> > @@ -2,6 +2,7 @@
-> >  #include <xen/interface/xen.h>
-> >  #include <xen/interface/memory.h>
-> >  #include <xen/platform_pci.h>
-> > +#include <xen/features.h>
-> >  #include <asm/xen/hypervisor.h>
-> >  #include <asm/xen/hypercall.h>
-> >  #include <linux/module.h>
-> > @@ -58,6 +59,12 @@ int __init xen_guest_init(void)
-> >    }
-> >    xen_domain_type = XEN_HVM_DOMAIN;
-> >  
-> > +  xen_setup_features();
-> > +  if (xen_feature(XENFEAT_dom0))
-> > +          xen_start_info->flags |= SIF_INITDOMAIN|SIF_PRIVILEGED;
-> > +  else
-> > +          xen_start_info->flags &= ~(SIF_INITDOMAIN|SIF_PRIVILEGED);
-> 
-> What happens here on platforms prior to hypervisor changeset 23735?
-
-It wouldn't work.
-Considering that we are certainly not going to backport ARM support to
-Xen 4.1, and that both ARM and XENFEAT_dom0 will be present in Xen 4.2,
-do we really need to support the Xen unstable changesets between ARM was
-introduced and XENFEAT_dom0 appeared?
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<alpine.DEB.2.02.1207271526420.26163@kaball.uk.xensource.com> b/test/corpus/<alpine.DEB.2.02.1207271526420.26163@kaball.uk.xensource.com>
deleted file mode 100644 (file)
index 94cd6de..0000000
+++ /dev/null
@@ -1,125 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Jul 27 15:42:30 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 27 Jul 2012 15:42:30 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SulkH-0001zV-1R
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 27 Jul 2012 15:42:30 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SulgK-0003J9-2O; Fri, 27 Jul 2012 14:38:20 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1SulgH-0003ID-K9
-       for xen-devel@lists.xensource.com; Fri, 27 Jul 2012 14:38:17 +0000
-Received: from [85.158.138.51:23976] by server-11.bemta-3.messagelabs.com id
-       A0/3C-00679-8D7A2105; Fri, 27 Jul 2012 14:38:16 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-15.tower-174.messagelabs.com!1343399896!27402056!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDcxMzQ=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.2; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 7564 invoked from network); 27 Jul 2012 14:38:16 -0000
-Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-15.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
-       27 Jul 2012 14:38:16 -0000
-X-IronPort-AV: E=Sophos;i="4.77,667,1336348800"; d="scan'208";a="13737344"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       27 Jul 2012 14:37:19 +0000
-Received: from kaball.uk.xensource.com (10.80.2.59) by
-       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
-       8.3.213.0; Fri, 27 Jul 2012 15:37:18 +0100
-Date: Fri, 27 Jul 2012 15:36:25 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-X-Sender: sstabellini@kaball.uk.xensource.com
-To: Russell King - ARM Linux <linux@arm.linux.org.uk>
-In-Reply-To: <20120727142101.GA6802@n2100.arm.linux.org.uk>
-Message-ID: <alpine.DEB.2.02.1207271526420.26163@kaball.uk.xensource.com>
-References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
-       <1343316846-25860-2-git-send-email-stefano.stabellini@eu.citrix.com>
-       <20120726163352.GC9222@phenom.dumpdata.com>
-       <1343380659.6812.106.camel@zakaz.uk.xensource.com>
-       <alpine.DEB.2.02.1207271350370.26163@kaball.uk.xensource.com>
-       <20120727142101.GA6802@n2100.arm.linux.org.uk>
-User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
-       "linaro-dev@lists.linaro.org" <linaro-dev@lists.linaro.org>,
-       Ian Campbell <Ian.Campbell@citrix.com>, "arnd@arndb.de" <arnd@arndb.de>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>,
-       "catalin.marinas@arm.com" <catalin.marinas@arm.com>,
-       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
-       "Tim \(Xen.org\)" <tim@xen.org>,
-       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
-       "linux-arm-kernel@lists.infradead.org"
-       <linux-arm-kernel@lists.infradead.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 02/24] xen/arm: hypercalls
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Fri, 27 Jul 2012, Russell King - ARM Linux wrote:
-> On Fri, Jul 27, 2012 at 02:02:18PM +0100, Stefano Stabellini wrote:
-> > > > > +/******************************************************************************
-> > > > > + * hypercall.h
-> > > > > + *
-> > > > > + * Linux-specific hypervisor handling.
-> > > > > + *
-> > > > > + * Stefano Stabellini <stefano.stabellini@eu.citrix.com>, Citrix, 2012
-> > > > > + *
-> > > > > + * This program is free software; you can redistribute it and/or
-> > > > > + * modify it under the terms of the GNU General Public License version 2
-> > > > > + * as published by the Free Software Foundation; or, when distributed
-> > > > > + * separately from the Linux kernel or incorporated into other
-> > > > > + * software packages, subject to the following license:
-> > > > > + *
-> > > > > + * Permission is hereby granted, free of charge, to any person obtaining a copy
-> > > > > + * of this source file (the "Software"), to deal in the Software without
-> 
-> Erm, is that an additional restriction on the GPL which prevents me from
-> shipping this code on a CD and charging for the act of creating the CD
-> and shipping it?  That would technically make the above statement
-> incompatible with the GPL.
-
-IMNAL but this is just an alternative, less strict, MIT license for this
-file, same as the x86 counterpart
-(arch/x86/include/asm/xen/hypercall.h). The intent is to allow other
-operating systems, the BSDs for example, to be able to use it if they
-want to.
-Actually, given that the ARM implementation is not inline, I should
-remember to add this copyright header to the assembly source file too.
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<alpine.DEB.2.02.1207271545440.26163@kaball.uk.xensource.com> b/test/corpus/<alpine.DEB.2.02.1207271545440.26163@kaball.uk.xensource.com>
deleted file mode 100644 (file)
index 6c37f46..0000000
+++ /dev/null
@@ -1,192 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Jul 27 15:52:58 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 27 Jul 2012 15:52:58 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SuluR-00022M-QT
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 27 Jul 2012 15:52:58 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1Sulqu-0004F6-Ly; Fri, 27 Jul 2012 14:49:16 +0000
-Received: from mail27.messagelabs.com ([193.109.254.147])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1Sulqs-0004Ei-Vj
-       for xen-devel@lists.xensource.com; Fri, 27 Jul 2012 14:49:15 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-5.tower-27.messagelabs.com!1343400548!8581473!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDcxMzQ=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.2; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 14615 invoked from network); 27 Jul 2012 14:49:08 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-5.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
-       27 Jul 2012 14:49:08 -0000
-X-IronPort-AV: E=Sophos;i="4.77,667,1336348800"; d="scan'208";a="13737612"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       27 Jul 2012 14:49:08 +0000
-Received: from kaball.uk.xensource.com (10.80.2.59) by
-       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
-       8.3.213.0; Fri, 27 Jul 2012 15:49:08 +0100
-Date: Fri, 27 Jul 2012 15:48:15 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-X-Sender: sstabellini@kaball.uk.xensource.com
-To: Ian Campbell <Ian.Campbell@citrix.com>
-In-Reply-To: <1343381813.6812.120.camel@zakaz.uk.xensource.com>
-Message-ID: <alpine.DEB.2.02.1207271545440.26163@kaball.uk.xensource.com>
-References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
-       <1343316846-25860-7-git-send-email-stefano.stabellini@eu.citrix.com>
-       <1343381813.6812.120.camel@zakaz.uk.xensource.com>
-User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
-       "linaro-dev@lists.linaro.org" <linaro-dev@lists.linaro.org>,
-       "arnd@arndb.de" <arnd@arndb.de>,
-       "konrad.wilk@oracle.com" <konrad.wilk@oracle.com>,
-       "catalin.marinas@arm.com" <catalin.marinas@arm.com>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>,
-       "Tim \(Xen.org\)" <tim@xen.org>,
-       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
-       "linux-arm-kernel@lists.infradead.org"
-       <linux-arm-kernel@lists.infradead.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD autolearn=unavailable version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 07/24] xen/arm: Xen detection and
- shared_info page mapping
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Fri, 27 Jul 2012, Ian Campbell wrote:
-> On Thu, 2012-07-26 at 16:33 +0100, Stefano Stabellini wrote:
-> > Check for a "/xen" node in the device tree, if it is present set
-> > xen_domain_type to XEN_HVM_DOMAIN and continue initialization.
-> > 
-> > Map the real shared info page using XENMEM_add_to_physmap with
-> > XENMAPSPACE_shared_info.
-> > 
-> > Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-> > ---
-> >  arch/arm/xen/enlighten.c |   56 ++++++++++++++++++++++++++++++++++++++++++++++
-> >  1 files changed, 56 insertions(+), 0 deletions(-)
-> > 
-> > diff --git a/arch/arm/xen/enlighten.c b/arch/arm/xen/enlighten.c
-> > index d27c2a6..8c923af 100644
-> > --- a/arch/arm/xen/enlighten.c
-> > +++ b/arch/arm/xen/enlighten.c
-> > @@ -5,6 +5,9 @@
-> >  #include <asm/xen/hypervisor.h>
-> >  #include <asm/xen/hypercall.h>
-> >  #include <linux/module.h>
-> > +#include <linux/of.h>
-> > +#include <linux/of_irq.h>
-> > +#include <linux/of_address.h>
-> >  
-> >  struct start_info _xen_start_info;
-> >  struct start_info *xen_start_info = &_xen_start_info;
-> > @@ -33,3 +36,56 @@ int xen_remap_domain_mfn_range(struct vm_area_struct *vma,
-> >    return -ENOSYS;
-> >  }
-> >  EXPORT_SYMBOL_GPL(xen_remap_domain_mfn_range);
-> > +
-> > +/*
-> > + * == Xen Device Tree format ==
-> > + * - /xen node;
-> > + * - compatible "arm,xen";
-> > + * - one interrupt for Xen event notifications;
-> > + * - one memory region to map the grant_table.
-> > + */
-> > +static int __init xen_guest_init(void)
-> > +{
-> > +  int cpu;
-> > +  struct xen_add_to_physmap xatp;
-> > +  static struct shared_info *shared_info_page = 0;
-> > +  struct device_node *node;
-> > +
-> > +  node = of_find_compatible_node(NULL, NULL, "arm,xen");
-> > +  if (!node) {
-> > +          pr_info("No Xen support\n");
-> > +          return 0;
-> > +  }
-> 
-> This should either only print in the success case (to avoid spamming
-> everyone) or we need a little bit of infrastructure like on x86 so that
-> we print exactly one of:
->      "Booting natively on bearmetal"
->      "Booting paravirtualised on %s", hypervisor->name
-
-This function is only going to be called once (actually it might be
-called twice with the change introduced by "xen/arm: Introduce
-xen_guest_init").
-
-I thought that it would be an acceptible level of verbosity for pr_info.
-Maybe I should just turn the pr_info into pr_debug?
-
-
-> > +  xen_domain_type = XEN_HVM_DOMAIN;
-> > +
-> > +  if (!shared_info_page)
-> > +          shared_info_page = (struct shared_info *)
-> > +                  get_zeroed_page(GFP_KERNEL);
-> > +  if (!shared_info_page) {
-> > +          pr_err("not enough memory");
-> > +          return -ENOMEM;
-> > +  }
-> > +  xatp.domid = DOMID_SELF;
-> > +  xatp.idx = 0;
-> > +  xatp.space = XENMAPSPACE_shared_info;
-> > +  xatp.gpfn = __pa(shared_info_page) >> PAGE_SHIFT;
-> > +  if (HYPERVISOR_memory_op(XENMEM_add_to_physmap, &xatp))
-> > +          BUG();
-> > +
-> > +  HYPERVISOR_shared_info = (struct shared_info *)shared_info_page;
-> > +
-> > +  /* xen_vcpu is a pointer to the vcpu_info struct in the shared_info
-> > +   * page, we use it in the event channel upcall and in some pvclock
-> > +   * related functions. We don't need the vcpu_info placement
-> > +   * optimizations because we don't use any pv_mmu or pv_irq op on
-> > +   * HVM.
-> > +   * When xen_hvm_init_shared_info is run at boot time only vcpu 0 is
-> > +   * online but xen_hvm_init_shared_info is run at resume time too and
-> > +   * in that case multiple vcpus might be online. */
-> > +  for_each_online_cpu(cpu) {
-> > +          per_cpu(xen_vcpu, cpu) =
-> > +                  &HYPERVISOR_shared_info->vcpu_info[cpu];
-> 
-> On ARM the shared info contains exactly 1 CPU (the boot CPU). The guest
-> is required to use VCPUOP_register_vcpu_info to place vcpu info for
-> secondary CPUs as they are brought up.
-
-OK
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<alpine.DEB.2.02.1207271613200.26163@kaball.uk.xensource.com> b/test/corpus/<alpine.DEB.2.02.1207271613200.26163@kaball.uk.xensource.com>
deleted file mode 100644 (file)
index db8001f..0000000
+++ /dev/null
@@ -1,123 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Jul 27 16:59:39 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 27 Jul 2012 16:59:39 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1Sumwv-0002IP-LN
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 27 Jul 2012 16:59:39 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1Sumsx-0006xL-LR; Fri, 27 Jul 2012 15:55:27 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1Sumsv-0006xE-VA
-       for xen-devel@lists.xensource.com; Fri, 27 Jul 2012 15:55:26 +0000
-Received: from [85.158.143.99:12941] by server-3.bemta-4.messagelabs.com id
-       B4/EA-01511-DE9B2105; Fri, 27 Jul 2012 15:55:25 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-9.tower-216.messagelabs.com!1343404524!29090957!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDcxMzQ=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.2; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 17863 invoked from network); 27 Jul 2012 15:55:24 -0000
-Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-9.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
-       27 Jul 2012 15:55:24 -0000
-X-IronPort-AV: E=Sophos;i="4.77,667,1336348800"; d="scan'208";a="13738808"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       27 Jul 2012 15:55:10 +0000
-Received: from kaball.uk.xensource.com (10.80.2.59) by
-       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
-       8.3.213.0; Fri, 27 Jul 2012 16:55:10 +0100
-Date: Fri, 27 Jul 2012 16:54:17 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-X-Sender: sstabellini@kaball.uk.xensource.com
-To: Ian Campbell <Ian.Campbell@citrix.com>
-In-Reply-To: <1343382151.6812.124.camel@zakaz.uk.xensource.com>
-Message-ID: <alpine.DEB.2.02.1207271613200.26163@kaball.uk.xensource.com>
-References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
-       <1343316846-25860-12-git-send-email-stefano.stabellini@eu.citrix.com>
-       <1343382151.6812.124.camel@zakaz.uk.xensource.com>
-User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
-       "linaro-dev@lists.linaro.org" <linaro-dev@lists.linaro.org>,
-       "arnd@arndb.de" <arnd@arndb.de>,
-       "konrad.wilk@oracle.com" <konrad.wilk@oracle.com>,
-       "catalin.marinas@arm.com" <catalin.marinas@arm.com>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>,
-       "Tim \(Xen.org\)" <tim@xen.org>,
-       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
-       "linux-arm-kernel@lists.infradead.org"
-       <linux-arm-kernel@lists.infradead.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 12/24] xen/arm: Introduce xen_guest_init
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Fri, 27 Jul 2012, Ian Campbell wrote:
-> On Thu, 2012-07-26 at 16:33 +0100, Stefano Stabellini wrote:
-> > We used to rely on a core_initcall to initialize Xen on ARM, however
-> > core_initcalls are actually called after early consoles are initialized.
-> > That means that hvc_xen.c is going to be initialized before Xen.
-> > 
-> > Given the lack of a better alternative, just call a new Xen
-> > initialization function (xen_guest_init) from xen_cons_init.
-> 
-> Can't we just arrange for this to be called super early on from
-> setup_arch? That's got to be better than calling it from some random
-> function which happens to get called early enough.
-
-While I agree with you that an explicit call to xen_guest_init from
-generic code might be better, xen_cons_init is not just a random
-function: it is a console_initcall and therefore we know for sure that
-it is going be the first one to be called.
-
-In fact if we didn't want the PV console to work so early we could just
-rely on a core_initcall to initialize everything and we wouldn't have
-any issues.
-
-
-In any case if the ARM maintainers agree I could add a generic
-hypervisor initialization call the end of setup_arch.
-
-
-
-> I presume that KVM is going to want some similarly early init hooks etc
-> and therefore ARM could benefit from the same sort of infrastructure as
-> is in arch/x86/include/asm/hypervisor.h?
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<alpine.DEB.2.02.1207271618310.26163@kaball.uk.xensource.com> b/test/corpus/<alpine.DEB.2.02.1207271618310.26163@kaball.uk.xensource.com>
deleted file mode 100644 (file)
index 1e055a3..0000000
+++ /dev/null
@@ -1,105 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Jul 27 17:29:57 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 27 Jul 2012 17:29:57 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SunQF-0002R0-LT
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 27 Jul 2012 17:29:57 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SunMj-0000NF-IT; Fri, 27 Jul 2012 16:26:13 +0000
-Received: from mail27.messagelabs.com ([193.109.254.147])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1SunMh-0000My-IF
-       for xen-devel@lists.xensource.com; Fri, 27 Jul 2012 16:26:11 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-5.tower-27.messagelabs.com!1343406363!8598636!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDcxMzQ=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.2; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 28923 invoked from network); 27 Jul 2012 16:26:04 -0000
-Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-5.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
-       27 Jul 2012 16:26:04 -0000
-X-IronPort-AV: E=Sophos;i="4.77,668,1336348800"; d="scan'208";a="13739250"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       27 Jul 2012 16:26:03 +0000
-Received: from kaball.uk.xensource.com (10.80.2.59) by
-       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
-       8.3.213.0; Fri, 27 Jul 2012 17:26:03 +0100
-Date: Fri, 27 Jul 2012 17:25:09 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-X-Sender: sstabellini@kaball.uk.xensource.com
-To: Ian Campbell <Ian.Campbell@citrix.com>
-In-Reply-To: <1343382495.6812.127.camel@zakaz.uk.xensource.com>
-Message-ID: <alpine.DEB.2.02.1207271618310.26163@kaball.uk.xensource.com>
-References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
-       <1343316846-25860-18-git-send-email-stefano.stabellini@eu.citrix.com>
-       <1343382495.6812.127.camel@zakaz.uk.xensource.com>
-User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
-       "linaro-dev@lists.linaro.org" <linaro-dev@lists.linaro.org>,
-       "arnd@arndb.de" <arnd@arndb.de>,
-       "konrad.wilk@oracle.com" <konrad.wilk@oracle.com>,
-       "catalin.marinas@arm.com" <catalin.marinas@arm.com>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>,
-       "Tim \(Xen.org\)" <tim@xen.org>,
-       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
-       "linux-arm-kernel@lists.infradead.org"
-       <linux-arm-kernel@lists.infradead.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 18/24] xen/arm: compile blkfront and blkback
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Fri, 27 Jul 2012, Ian Campbell wrote:
-> On Thu, 2012-07-26 at 16:34 +0100, Stefano Stabellini wrote:
-> > 
-> > +#define XEN_IO_PROTO_ABI_ARM        "arm-abi" 
-> 
-> I wonder if we ought to call this arm-aarch32-abi or something?
-
-So aarch64 has just been renamed to arm64 and you want to rename arm-abi
-to aarch32-abi? :-)
-
-
-> I wonder if we can also take the opportunity to fix the ABI cockup for
-> disks on ARM and make the structs the same for both 32 and 64 bit?
-
-I think it should be a separate patch, but I'll try to come up with one
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<alpine.DEB.2.02.1207271739550.26163@kaball.uk.xensource.com> b/test/corpus/<alpine.DEB.2.02.1207271739550.26163@kaball.uk.xensource.com>
deleted file mode 100644 (file)
index 60e7a4c..0000000
+++ /dev/null
@@ -1,116 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Jul 27 17:52:50 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 27 Jul 2012 17:52:50 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SunmR-0002US-Uz
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 27 Jul 2012 17:52:50 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SuniJ-0001C0-5z; Fri, 27 Jul 2012 16:48:31 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1SuniH-0001Bv-SB
-       for xen-devel@lists.xensource.com; Fri, 27 Jul 2012 16:48:30 +0000
-Received: from [85.158.143.35:51665] by server-1.bemta-4.messagelabs.com id
-       89/BB-24392-D56C2105; Fri, 27 Jul 2012 16:48:29 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-3.tower-21.messagelabs.com!1343407708!14911076!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDcxMzQ=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.2; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 6723 invoked from network); 27 Jul 2012 16:48:28 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-3.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
-       27 Jul 2012 16:48:28 -0000
-X-IronPort-AV: E=Sophos;i="4.77,668,1336348800"; d="scan'208";a="13739492"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       27 Jul 2012 16:48:23 +0000
-Received: from kaball.uk.xensource.com (10.80.2.59) by
-       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
-       8.3.213.0; Fri, 27 Jul 2012 17:48:23 +0100
-Date: Fri, 27 Jul 2012 17:47:30 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-X-Sender: sstabellini@kaball.uk.xensource.com
-To: Jan Beulich <JBeulich@suse.com>
-In-Reply-To: <501257F30200007800090D9E@nat28.tlf.novell.com>
-Message-ID: <alpine.DEB.2.02.1207271739550.26163@kaball.uk.xensource.com>
-References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
-       <1343316846-25860-6-git-send-email-stefano.stabellini@eu.citrix.com>
-       <501257F30200007800090D9E@nat28.tlf.novell.com>
-User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
-       "linaro-dev@lists.linaro.org" <linaro-dev@lists.linaro.org>,
-       Ian Campbell <Ian.Campbell@citrix.com>, "arnd@arndb.de" <arnd@arndb.de>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>,
-       "catalin.marinas@arm.com" <catalin.marinas@arm.com>,
-       "konrad.wilk@oracle.com" <konrad.wilk@oracle.com>,
-       "Tim \(Xen.org\)" <tim@xen.org>,
-       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
-       "linux-arm-kernel@lists.infradead.org"
-       <linux-arm-kernel@lists.infradead.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 06/24] xen: missing includes
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Fri, 27 Jul 2012, Jan Beulich wrote:
-> >>> On 26.07.12 at 17:33, Stefano Stabellini <stefano.stabellini@eu.citrix.com> wrote:
-> > --- a/include/xen/interface/xen.h
-> > +++ b/include/xen/interface/xen.h
-> > @@ -10,7 +10,10 @@
-> >  #define __XEN_PUBLIC_XEN_H__
-> >  
-> >  #include <asm/xen/interface.h>
-> > +#include <linux/types.h>
-> > +#ifdef CONFIG_X86
-> >  #include <asm/pvclock-abi.h>
-> > +#endif
-> 
-> Rather than hacking around this, why not clean it up:
-> asm/pvclock-abi.h clearly isn't intended to be included here
-> (from the perspective of the origin of xen/interface/xen.h, at
-> least), nor is linux/types.h.
-> 
-> Or if it is really needed to deviate from the original header in
-> this respect, then clearly the inclusion ought to not be arch
-> specific or be moved to an arch specific header.
-
-I think you are right: linux/types.h is not actually needed and
-pvclock-abi.h should probably be included by asm/xen/interface.h.
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<alpine.DEB.2.02.1207271749420.26163@kaball.uk.xensource.com> b/test/corpus/<alpine.DEB.2.02.1207271749420.26163@kaball.uk.xensource.com>
deleted file mode 100644 (file)
index 752743e..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Jul 27 17:56:23 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 27 Jul 2012 17:56:23 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1Sunpt-0002W1-Jl
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 27 Jul 2012 17:56:23 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SunmO-0001Jc-Ro; Fri, 27 Jul 2012 16:52:44 +0000
-Received: from mail27.messagelabs.com ([193.109.254.147])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1SunmM-0001JU-U9
-       for xen-devel@lists.xensource.com; Fri, 27 Jul 2012 16:52:43 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-7.tower-27.messagelabs.com!1343407956!2592246!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDcxMzQ=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.2; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 32704 invoked from network); 27 Jul 2012 16:52:37 -0000
-Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-7.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
-       27 Jul 2012 16:52:37 -0000
-X-IronPort-AV: E=Sophos;i="4.77,668,1336348800"; d="scan'208";a="13739578"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       27 Jul 2012 16:52:33 +0000
-Received: from kaball.uk.xensource.com (10.80.2.59) by
-       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
-       8.3.213.0; Fri, 27 Jul 2012 17:52:33 +0100
-Date: Fri, 27 Jul 2012 17:51:40 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-X-Sender: sstabellini@kaball.uk.xensource.com
-To: Jan Beulich <JBeulich@suse.com>
-In-Reply-To: <501258FB0200007800090DB6@nat28.tlf.novell.com>
-Message-ID: <alpine.DEB.2.02.1207271749420.26163@kaball.uk.xensource.com>
-References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
-       <1343316846-25860-10-git-send-email-stefano.stabellini@eu.citrix.com>
-       <501258FB0200007800090DB6@nat28.tlf.novell.com>
-User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
-       "linaro-dev@lists.linaro.org" <linaro-dev@lists.linaro.org>,
-       Ian Campbell <Ian.Campbell@citrix.com>, "arnd@arndb.de" <arnd@arndb.de>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>,
-       "catalin.marinas@arm.com" <catalin.marinas@arm.com>,
-       "konrad.wilk@oracle.com" <konrad.wilk@oracle.com>,
-       "Tim \(Xen.org\)" <tim@xen.org>,
-       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
-       "linux-arm-kernel@lists.infradead.org"
-       <linux-arm-kernel@lists.infradead.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 10/24] xen: do not compile manage, balloon,
- pci, acpi and cpu_hotplug on ARM
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Fri, 27 Jul 2012, Jan Beulich wrote:
-> >>> On 26.07.12 at 17:33, Stefano Stabellini <stefano.stabellini@eu.citrix.com> wrote:
-> > --- a/drivers/xen/Makefile
-> > +++ b/drivers/xen/Makefile
-> > @@ -1,11 +1,15 @@
-> > -obj-y     += grant-table.o features.o events.o manage.o balloon.o
-> > +ifneq ($(CONFIG_ARM),y)
-> > +obj-y     += manage.o balloon.o
-> 
-> While I assume that this part (and the cpu_hotplug one below) is
-> temporary, ...
-> 
-> > +obj-$(CONFIG_XEN_DOM0)                    += pci.o acpi.o
-> 
-> ... at least this one should imo be solved with a proper long term
-> mechanism, i.e. the usual var-$(CONFIG_...) approach, i.e.
-> 
-> dom0-$(CONFIG_PCI) := pci.o
-> dom0-$(CONFIG_ACPI) := acpi.o
-> obj-$(CONFIG_XEN_DOM0)                       += $(dom0-y)
-
-That's a good suggestion, thanks!
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<alpine.DEB.2.02.1208011641110.4645@kaball.uk.xensource.com> b/test/corpus/<alpine.DEB.2.02.1208011641110.4645@kaball.uk.xensource.com>
deleted file mode 100644 (file)
index 71569f7..0000000
+++ /dev/null
@@ -1,172 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Aug 01 16:50:24 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 01 Aug 2012 16:50:24 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SwbBj-00072t-2R
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 01 Aug 2012 16:50:24 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1Swb7v-0004ok-IR; Wed, 01 Aug 2012 15:46:23 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1Swb7u-0004oc-M0
-       for xen-devel@lists.xensource.com; Wed, 01 Aug 2012 15:46:22 +0000
-Received: from [85.158.139.83:19764] by server-3.bemta-5.messagelabs.com id
-       E1/FF-03367-D4F49105; Wed, 01 Aug 2012 15:46:21 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-9.tower-182.messagelabs.com!1343835980!29072295!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDc3NDk=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.2; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 9250 invoked from network); 1 Aug 2012 15:46:21 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-9.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
-       1 Aug 2012 15:46:21 -0000
-X-IronPort-AV: E=Sophos;i="4.77,694,1336348800"; d="scan'208";a="13807333"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       01 Aug 2012 15:46:20 +0000
-Received: from kaball.uk.xensource.com (10.80.2.59) by
-       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
-       8.3.213.0; Wed, 1 Aug 2012 16:46:20 +0100
-Date: Wed, 1 Aug 2012 16:46:02 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-X-Sender: sstabellini@kaball.uk.xensource.com
-To: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-In-Reply-To: <20120801141624.GD7227@phenom.dumpdata.com>
-Message-ID: <alpine.DEB.2.02.1208011641110.4645@kaball.uk.xensource.com>
-References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
-       <1343316846-25860-5-git-send-email-stefano.stabellini@eu.citrix.com>
-       <20120801141624.GD7227@phenom.dumpdata.com>
-User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
-       "linaro-dev@lists.linaro.org" <linaro-dev@lists.linaro.org>,
-       Ian Campbell <Ian.Campbell@citrix.com>, "arnd@arndb.de" <arnd@arndb.de>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>,
-       "catalin.marinas@arm.com" <catalin.marinas@arm.com>,
-       "Tim \(Xen.org\)" <tim@xen.org>,
-       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
-       "linux-arm-kernel@lists.infradead.org"
-       <linux-arm-kernel@lists.infradead.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 05/24] xen/arm: empty implementation of
- grant_table arch specific functions
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Wed, 1 Aug 2012, Konrad Rzeszutek Wilk wrote:
-> On Thu, Jul 26, 2012 at 04:33:47PM +0100, Stefano Stabellini wrote:
-> > Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-> > ---
-> >  arch/arm/xen/Makefile      |    2 +-
-> >  arch/arm/xen/grant-table.c |   53 ++++++++++++++++++++++++++++++++++++++++++++
-> >  2 files changed, 54 insertions(+), 1 deletions(-)
-> >  create mode 100644 arch/arm/xen/grant-table.c
-> > 
-> > diff --git a/arch/arm/xen/Makefile b/arch/arm/xen/Makefile
-> > index b9d6acc..4384103 100644
-> > --- a/arch/arm/xen/Makefile
-> > +++ b/arch/arm/xen/Makefile
-> > @@ -1 +1 @@
-> > -obj-y             := enlighten.o hypercall.o
-> > +obj-y             := enlighten.o hypercall.o grant-table.o
-> > diff --git a/arch/arm/xen/grant-table.c b/arch/arm/xen/grant-table.c
-> > new file mode 100644
-> > index 0000000..0a4ee80
-> > --- /dev/null
-> > +++ b/arch/arm/xen/grant-table.c
-> > @@ -0,0 +1,53 @@
-> > +/******************************************************************************
-> > + * grant_table.c
-> > + * ARM specific part
-> > + *
-> > + * Granting foreign access to our memory reservation.
-> > + *
-> > + * This program is free software; you can redistribute it and/or
-> > + * modify it under the terms of the GNU General Public License version 2
-> > + * as published by the Free Software Foundation; or, when distributed
-> > + * separately from the Linux kernel or incorporated into other
-> > + * software packages, subject to the following license:
-> > + *
-> > + * Permission is hereby granted, free of charge, to any person obtaining a copy
-> > + * of this source file (the "Software"), to deal in the Software without
-> > + * restriction, including without limitation the rights to use, copy, modify,
-> > + * merge, publish, distribute, sublicense, and/or sell copies of the Software,
-> > + * and to permit persons to whom the Software is furnished to do so, subject to
-> > + * the following conditions:
-> > + *
-> > + * The above copyright notice and this permission notice shall be included in
-> > + * all copies or substantial portions of the Software.
-> > + *
-> > + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-> > + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-> > + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-> > + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-> > + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-> > + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
-> > + * IN THE SOFTWARE.
-> > + */
-> > +
-> > +#include <xen/interface/xen.h>
-> > +#include <xen/page.h>
-> > +#include <xen/grant_table.h>
-> > +
-> > +int arch_gnttab_map_shared(unsigned long *frames, unsigned long nr_gframes,
-> > +                     unsigned long max_nr_gframes,
-> > +                     void **__shared)
-> > +{
-> > +  return -1;
-> 
-> -ENOSYS
-> > +}
-> > +
-> > +void arch_gnttab_unmap(void *shared, unsigned long nr_gframes)
-> > +{
-> > +  return;
-> > +}
-> > +
-> > +int arch_gnttab_map_status(uint64_t *frames, unsigned long nr_gframes,
-> > +                     unsigned long max_nr_gframes,
-> > +                     grant_status_t **__shared)
-> > +{
-> > +  return -1;
-> 
-> Same here -ENOSYS
-
-OK, I'll do that
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<alpine.DEB.2.02.1208011641410.4645@kaball.uk.xensource.com> b/test/corpus/<alpine.DEB.2.02.1208011641410.4645@kaball.uk.xensource.com>
deleted file mode 100644 (file)
index 2bced9b..0000000
+++ /dev/null
@@ -1,199 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Aug 01 16:50:03 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 01 Aug 2012 16:50:03 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SwbBR-00072R-Dl
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 01 Aug 2012 16:50:03 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1Swb7e-0004nZ-5u; Wed, 01 Aug 2012 15:46:06 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1Swb7c-0004nU-0D
-       for xen-devel@lists.xensource.com; Wed, 01 Aug 2012 15:46:04 +0000
-Received: from [85.158.143.35:6211] by server-3.bemta-4.messagelabs.com id
-       CD/D4-01511-B3F49105; Wed, 01 Aug 2012 15:46:03 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-7.tower-21.messagelabs.com!1343835957!12992150!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDc3NDk=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.2; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 6389 invoked from network); 1 Aug 2012 15:46:00 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-7.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
-       1 Aug 2012 15:46:00 -0000
-X-IronPort-AV: E=Sophos;i="4.77,694,1336348800"; d="scan'208";a="13807298"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       01 Aug 2012 15:45:57 +0000
-Received: from kaball.uk.xensource.com (10.80.2.59) by
-       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
-       8.3.213.0; Wed, 1 Aug 2012 16:45:57 +0100
-Date: Wed, 1 Aug 2012 16:45:40 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-X-Sender: sstabellini@kaball.uk.xensource.com
-To: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-In-Reply-To: <20120801141959.GE7227@phenom.dumpdata.com>
-Message-ID: <alpine.DEB.2.02.1208011641410.4645@kaball.uk.xensource.com>
-References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
-       <1343316846-25860-7-git-send-email-stefano.stabellini@eu.citrix.com>
-       <20120801141959.GE7227@phenom.dumpdata.com>
-User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
-       "linaro-dev@lists.linaro.org" <linaro-dev@lists.linaro.org>,
-       Ian Campbell <Ian.Campbell@citrix.com>, "arnd@arndb.de" <arnd@arndb.de>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>,
-       "catalin.marinas@arm.com" <catalin.marinas@arm.com>,
-       "Tim \(Xen.org\)" <tim@xen.org>,
-       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
-       "linux-arm-kernel@lists.infradead.org"
-       <linux-arm-kernel@lists.infradead.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 07/24] xen/arm: Xen detection and
- shared_info page mapping
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Wed, 1 Aug 2012, Konrad Rzeszutek Wilk wrote:
-> On Thu, Jul 26, 2012 at 04:33:49PM +0100, Stefano Stabellini wrote:
-> > Check for a "/xen" node in the device tree, if it is present set
-> > xen_domain_type to XEN_HVM_DOMAIN and continue initialization.
-> > 
-> > Map the real shared info page using XENMEM_add_to_physmap with
-> > XENMAPSPACE_shared_info.
-> > 
-> > Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-> > ---
-> >  arch/arm/xen/enlighten.c |   56 ++++++++++++++++++++++++++++++++++++++++++++++
-> >  1 files changed, 56 insertions(+), 0 deletions(-)
-> > 
-> > diff --git a/arch/arm/xen/enlighten.c b/arch/arm/xen/enlighten.c
-> > index d27c2a6..8c923af 100644
-> > --- a/arch/arm/xen/enlighten.c
-> > +++ b/arch/arm/xen/enlighten.c
-> > @@ -5,6 +5,9 @@
-> >  #include <asm/xen/hypervisor.h>
-> >  #include <asm/xen/hypercall.h>
-> >  #include <linux/module.h>
-> > +#include <linux/of.h>
-> > +#include <linux/of_irq.h>
-> > +#include <linux/of_address.h>
-> >  
-> >  struct start_info _xen_start_info;
-> >  struct start_info *xen_start_info = &_xen_start_info;
-> > @@ -33,3 +36,56 @@ int xen_remap_domain_mfn_range(struct vm_area_struct *vma,
-> >    return -ENOSYS;
-> >  }
-> >  EXPORT_SYMBOL_GPL(xen_remap_domain_mfn_range);
-> > +
-> > +/*
-> > + * == Xen Device Tree format ==
-> > + * - /xen node;
-> > + * - compatible "arm,xen";
-> > + * - one interrupt for Xen event notifications;
-> > + * - one memory region to map the grant_table.
-> > + */
-> > +static int __init xen_guest_init(void)
-> > +{
-> > +  int cpu;
-> > +  struct xen_add_to_physmap xatp;
-> > +  static struct shared_info *shared_info_page = 0;
-> > +  struct device_node *node;
-> > +
-> > +  node = of_find_compatible_node(NULL, NULL, "arm,xen");
-> > +  if (!node) {
-> > +          pr_info("No Xen support\n");
-> 
-> I don't think the pr_info is appropiate here?
-
-Yes, you are right. In fact I had already turned it into a pr_debug.
-
-> > +          return 0;
-> 
-> Should this be -ENODEV?
-
-Considering that xen_guest_init is called by a core_initcall, I didn't
-want to return an error just because Xen is not present on the platform.
-
-
-> > +  }
-> > +  xen_domain_type = XEN_HVM_DOMAIN;
-> > +
-> > +  if (!shared_info_page)
-> > +          shared_info_page = (struct shared_info *)
-> > +                  get_zeroed_page(GFP_KERNEL);
-> > +  if (!shared_info_page) {
-> > +          pr_err("not enough memory");
-> 
-> \n
-
-OK
-
-> > +          return -ENOMEM;
-> > +  }
-> > +  xatp.domid = DOMID_SELF;
-> > +  xatp.idx = 0;
-> > +  xatp.space = XENMAPSPACE_shared_info;
-> > +  xatp.gpfn = __pa(shared_info_page) >> PAGE_SHIFT;
-> > +  if (HYPERVISOR_memory_op(XENMEM_add_to_physmap, &xatp))
-> > +          BUG();
-> > +
-> > +  HYPERVISOR_shared_info = (struct shared_info *)shared_info_page;
-> > +
-> > +  /* xen_vcpu is a pointer to the vcpu_info struct in the shared_info
-> > +   * page, we use it in the event channel upcall and in some pvclock
-> > +   * related functions. We don't need the vcpu_info placement
-> > +   * optimizations because we don't use any pv_mmu or pv_irq op on
-> > +   * HVM.
-> > +   * When xen_hvm_init_shared_info is run at boot time only vcpu 0 is
-> > +   * online but xen_hvm_init_shared_info is run at resume time too and
-> > +   * in that case multiple vcpus might be online. */
-> > +  for_each_online_cpu(cpu) {
-> > +          per_cpu(xen_vcpu, cpu) =
-> > +                  &HYPERVISOR_shared_info->vcpu_info[cpu];
-> > +  }
-> > +  return 0;
-> 
-> This above looks stringly similar to the x86 one. Could it be
-> abstracted away to share the same code? Or is that something that
-> ought to be done later on when there is more meat on the bone?
-
-Actually I had to remove these three lines because on ARM we are going
-to have just one vcpu_info struct in the shared_info page and then rely
-on VCPUOP_register_vcpu_info.
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<alpine.DEB.2.02.1208011646560.4645@kaball.uk.xensource.com> b/test/corpus/<alpine.DEB.2.02.1208011646560.4645@kaball.uk.xensource.com>
deleted file mode 100644 (file)
index 186f38c..0000000
+++ /dev/null
@@ -1,112 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Aug 01 16:55:44 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 01 Aug 2012 16:55:44 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SwbGw-00074r-Hc
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 01 Aug 2012 16:55:44 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SwbCn-00057T-9l; Wed, 01 Aug 2012 15:51:25 +0000
-Received: from mail27.messagelabs.com ([193.109.254.147])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1SwbCl-00057D-E2
-       for xen-devel@lists.xensource.com; Wed, 01 Aug 2012 15:51:23 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-3.tower-27.messagelabs.com!1343836277!10361212!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDc3NDk=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.2; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 23641 invoked from network); 1 Aug 2012 15:51:17 -0000
-Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-3.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
-       1 Aug 2012 15:51:17 -0000
-X-IronPort-AV: E=Sophos;i="4.77,694,1336348800"; d="scan'208";a="13807442"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       01 Aug 2012 15:51:17 +0000
-Received: from kaball.uk.xensource.com (10.80.2.59) by
-       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
-       8.3.213.0; Wed, 1 Aug 2012 16:51:16 +0100
-Date: Wed, 1 Aug 2012 16:50:59 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-X-Sender: sstabellini@kaball.uk.xensource.com
-To: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-In-Reply-To: <20120801142249.GF7227@phenom.dumpdata.com>
-Message-ID: <alpine.DEB.2.02.1208011646560.4645@kaball.uk.xensource.com>
-References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
-       <1343316846-25860-8-git-send-email-stefano.stabellini@eu.citrix.com>
-       <20120801142249.GF7227@phenom.dumpdata.com>
-User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
-       "linaro-dev@lists.linaro.org" <linaro-dev@lists.linaro.org>,
-       Ian Campbell <Ian.Campbell@citrix.com>, "arnd@arndb.de" <arnd@arndb.de>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>,
-       "catalin.marinas@arm.com" <catalin.marinas@arm.com>,
-       "Tim \(Xen.org\)" <tim@xen.org>,
-       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
-       "linux-arm-kernel@lists.infradead.org"
-       <linux-arm-kernel@lists.infradead.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 08/24] xen/arm: Introduce xen_pfn_t for pfn
- and mfn types
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Wed, 1 Aug 2012, Konrad Rzeszutek Wilk wrote:
-> On Thu, Jul 26, 2012 at 04:33:50PM +0100, Stefano Stabellini wrote:
-> > All the original Xen headers have xen_pfn_t as mfn and pfn type, however
-> > when they have been imported in Linux, xen_pfn_t has been replaced with
-> > unsigned long. That might work for x86 and ia64 but it does not for arm.
-> 
-> How come?
-
-see below
-
-> > Bring back xen_pfn_t and let each architecture define xen_pfn_t as they
-> > see fit.
-> 
-> I am OK with this as long as your include a comment in both of the
-> interface.h saying why this is needed. I am curious why 'unsinged long'
-> won't work? Is it b/c on ARM you always want a 64-bit type?
-
-Yes, we would like to make the same interface work for 32 and 64
-bit guests, without any need for a "compat layer" as we currently have
-on x86.
-In fact I am going to add another patch to explicitly size all the
-other unsigned long that we have in the public interface.
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<alpine.DEB.2.02.1208011704000.4645@kaball.uk.xensource.com> b/test/corpus/<alpine.DEB.2.02.1208011704000.4645@kaball.uk.xensource.com>
deleted file mode 100644 (file)
index aa4919a..0000000
+++ /dev/null
@@ -1,129 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Aug 01 17:09:30 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 01 Aug 2012 17:09:30 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SwbUG-0007B0-9F
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 01 Aug 2012 17:09:30 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SwbQL-00068V-Vg; Wed, 01 Aug 2012 16:05:25 +0000
-Received: from mail27.messagelabs.com ([193.109.254.147])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1SwbQJ-000689-TB
-       for xen-devel@lists.xensource.com; Wed, 01 Aug 2012 16:05:24 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-4.tower-27.messagelabs.com!1343837117!8649861!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDc3NDk=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.2; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 24093 invoked from network); 1 Aug 2012 16:05:17 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-4.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
-       1 Aug 2012 16:05:17 -0000
-X-IronPort-AV: E=Sophos;i="4.77,694,1336348800"; d="scan'208";a="13807715"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       01 Aug 2012 16:05:02 +0000
-Received: from kaball.uk.xensource.com (10.80.2.59) by
-       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
-       8.3.213.0; Wed, 1 Aug 2012 17:05:02 +0100
-Date: Wed, 1 Aug 2012 17:04:45 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-X-Sender: sstabellini@kaball.uk.xensource.com
-To: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-In-Reply-To: <20120801145413.GR7227@phenom.dumpdata.com>
-Message-ID: <alpine.DEB.2.02.1208011704000.4645@kaball.uk.xensource.com>
-References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
-       <1343316846-25860-23-git-send-email-stefano.stabellini@eu.citrix.com>
-       <20120801145413.GR7227@phenom.dumpdata.com>
-User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
-       "linaro-dev@lists.linaro.org" <linaro-dev@lists.linaro.org>,
-       Ian Campbell <Ian.Campbell@citrix.com>, "arnd@arndb.de" <arnd@arndb.de>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>,
-       "catalin.marinas@arm.com" <catalin.marinas@arm.com>,
-       "Tim \(Xen.org\)" <tim@xen.org>,
-       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
-       "linux-arm-kernel@lists.infradead.org"
-       <linux-arm-kernel@lists.infradead.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 23/24] hvc_xen: allow dom0_write_console for
-       HVM guests
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Wed, 1 Aug 2012, Konrad Rzeszutek Wilk wrote:
-> On Thu, Jul 26, 2012 at 04:34:05PM +0100, Stefano Stabellini wrote:
-> > On ARM all guests are HVM guests, including Dom0.
-> > Allow dom0_write_console to be called by an HVM domain.
-> 
-> Um, but xen_hvm_domain() != xen_pv_domain() so won't this return without
-> printing anything?
-
-Nope, it would call dom0_write_console that issues a console hypercall.
-However I am going to remove this patch and rely on the simple serial
-emulator we have in Xen for early_printk stuff
-
-> > 
-> > Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-> > ---
-> >  drivers/tty/hvc/hvc_xen.c |    5 +----
-> >  1 files changed, 1 insertions(+), 4 deletions(-)
-> > 
-> > diff --git a/drivers/tty/hvc/hvc_xen.c b/drivers/tty/hvc/hvc_xen.c
-> > index 3c04fb8..949edc2 100644
-> > --- a/drivers/tty/hvc/hvc_xen.c
-> > +++ b/drivers/tty/hvc/hvc_xen.c
-> > @@ -616,12 +616,9 @@ static void xenboot_write_console(struct console *console, const char *string,
-> >    unsigned int linelen, off = 0;
-> >    const char *pos;
-> >  
-> > -  if (!xen_pv_domain())
-> > -          return;
-> > -
-> >    dom0_write_console(0, string, len);
-> >  
-> > -  if (xen_initial_domain())
-> > +  if (!xen_pv_domain())
-> >            return;
-> >  
-> >    domU_write_console(0, "(early) ", 8);
-> > -- 
-> > 1.7.2.5
-> 
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<alpine.DEB.2.02.1208011705100.4645@kaball.uk.xensource.com> b/test/corpus/<alpine.DEB.2.02.1208011705100.4645@kaball.uk.xensource.com>
deleted file mode 100644 (file)
index b260ded..0000000
+++ /dev/null
@@ -1,135 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Aug 01 17:10:43 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 01 Aug 2012 17:10:43 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SwbVQ-0007C0-OM
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 01 Aug 2012 17:10:43 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SwbS9-0006Jy-S3; Wed, 01 Aug 2012 16:07:17 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1SwbS8-0006Jm-MI
-       for xen-devel@lists.xensource.com; Wed, 01 Aug 2012 16:07:16 +0000
-Received: from [85.158.143.35:8213] by server-2.bemta-4.messagelabs.com id
-       9C/7C-17938-43459105; Wed, 01 Aug 2012 16:07:16 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-4.tower-21.messagelabs.com!1343837222!5505951!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDc3NDk=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.2; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 32016 invoked from network); 1 Aug 2012 16:07:08 -0000
-Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-4.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
-       1 Aug 2012 16:07:08 -0000
-X-IronPort-AV: E=Sophos;i="4.77,694,1336348800"; d="scan'208";a="13807760"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       01 Aug 2012 16:07:00 +0000
-Received: from kaball.uk.xensource.com (10.80.2.59) by
-       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
-       8.3.213.0; Wed, 1 Aug 2012 17:07:00 +0100
-Date: Wed, 1 Aug 2012 17:06:42 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-X-Sender: sstabellini@kaball.uk.xensource.com
-To: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-In-Reply-To: <20120801145257.GQ7227@phenom.dumpdata.com>
-Message-ID: <alpine.DEB.2.02.1208011705100.4645@kaball.uk.xensource.com>
-References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
-       <1343316846-25860-21-git-send-email-stefano.stabellini@eu.citrix.com>
-       <20120801145257.GQ7227@phenom.dumpdata.com>
-User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
-       "linaro-dev@lists.linaro.org" <linaro-dev@lists.linaro.org>,
-       Ian Campbell <Ian.Campbell@citrix.com>, "arnd@arndb.de" <arnd@arndb.de>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>,
-       "catalin.marinas@arm.com" <catalin.marinas@arm.com>,
-       "Tim \(Xen.org\)" <tim@xen.org>,
-       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
-       "linux-arm-kernel@lists.infradead.org"
-       <linux-arm-kernel@lists.infradead.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 21/24] arm/v2m: initialize arch_timers even
- if v2m_timer is not present
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Wed, 1 Aug 2012, Konrad Rzeszutek Wilk wrote:
-> On Thu, Jul 26, 2012 at 04:34:03PM +0100, Stefano Stabellini wrote:
-> > Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-> 
-> Should the maintainer of the v2m be CC-ed here?
-> This looks like a bug-fix of itself?
-
-I think so. I'll CC Russell King next time.
-
-> > ---
-> >  arch/arm/mach-vexpress/v2m.c |   11 ++++++-----
-> >  1 files changed, 6 insertions(+), 5 deletions(-)
-> > 
-> > diff --git a/arch/arm/mach-vexpress/v2m.c b/arch/arm/mach-vexpress/v2m.c
-> > index fde26ad..dee1451 100644
-> > --- a/arch/arm/mach-vexpress/v2m.c
-> > +++ b/arch/arm/mach-vexpress/v2m.c
-> > @@ -637,16 +637,17 @@ static void __init v2m_dt_timer_init(void)
-> >    node = of_find_compatible_node(NULL, NULL, "arm,sp810");
-> >    v2m_sysctl_init(of_iomap(node, 0));
-> >  
-> > -  err = of_property_read_string(of_aliases, "arm,v2m_timer", &path);
-> > -  if (WARN_ON(err))
-> > -          return;
-> > -  node = of_find_node_by_path(path);
-> > -  v2m_sp804_init(of_iomap(node, 0), irq_of_parse_and_map(node, 0));
-> >    if (arch_timer_of_register() != 0)
-> >            twd_local_timer_of_register();
-> >  
-> >    if (arch_timer_sched_clock_init() != 0)
-> >            versatile_sched_clock_init(v2m_sysreg_base + V2M_SYS_24MHZ, 24000000);
-> > +
-> > +  err = of_property_read_string(of_aliases, "arm,v2m_timer", &path);
-> > +  if (WARN_ON(err))
-> > +          return;
-> > +  node = of_find_node_by_path(path);
-> > +  v2m_sp804_init(of_iomap(node, 0), irq_of_parse_and_map(node, 0));
-> >  }
-> >  
-> >  static struct sys_timer v2m_dt_timer = {
-> > -- 
-> > 1.7.2.5
-> 
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<alpine.DEB.2.02.1208011707280.4645@kaball.uk.xensource.com> b/test/corpus/<alpine.DEB.2.02.1208011707280.4645@kaball.uk.xensource.com>
deleted file mode 100644 (file)
index e15b5a9..0000000
+++ /dev/null
@@ -1,118 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Aug 01 17:11:23 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 01 Aug 2012 17:11:23 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SwbW5-0007CI-37
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 01 Aug 2012 17:11:23 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SwbSt-0006P4-9x; Wed, 01 Aug 2012 16:08:03 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1SwbSr-0006Om-GQ
-       for xen-devel@lists.xensource.com; Wed, 01 Aug 2012 16:08:01 +0000
-Received: from [85.158.139.83:30889] by server-5.bemta-5.messagelabs.com id
-       08/E6-02722-06459105; Wed, 01 Aug 2012 16:08:00 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-15.tower-182.messagelabs.com!1343837280!29698775!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDc3NDk=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.2; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 29663 invoked from network); 1 Aug 2012 16:08:00 -0000
-Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-15.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
-       1 Aug 2012 16:08:00 -0000
-X-IronPort-AV: E=Sophos;i="4.77,694,1336348800"; d="scan'208";a="13807782"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       01 Aug 2012 16:07:59 +0000
-Received: from kaball.uk.xensource.com (10.80.2.59) by
-       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
-       8.3.213.0; Wed, 1 Aug 2012 17:08:00 +0100
-Date: Wed, 1 Aug 2012 17:07:42 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-X-Sender: sstabellini@kaball.uk.xensource.com
-To: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-In-Reply-To: <20120801143551.GI7227@phenom.dumpdata.com>
-Message-ID: <alpine.DEB.2.02.1208011707280.4645@kaball.uk.xensource.com>
-References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
-       <1343316846-25860-4-git-send-email-stefano.stabellini@eu.citrix.com>
-       <20120726163759.GE9222@phenom.dumpdata.com>
-       <1343381305.6812.116.camel@zakaz.uk.xensource.com>
-       <20120801143551.GI7227@phenom.dumpdata.com>
-User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
-       "linaro-dev@lists.linaro.org" <linaro-dev@lists.linaro.org>,
-       Ian Campbell <Ian.Campbell@citrix.com>, "arnd@arndb.de" <arnd@arndb.de>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>,
-       "catalin.marinas@arm.com" <catalin.marinas@arm.com>,
-       "Tim \(Xen.org\)" <tim@xen.org>,
-       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
-       "linux-arm-kernel@lists.infradead.org"
-       <linux-arm-kernel@lists.infradead.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 04/24] xen/arm: sync_bitops
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Wed, 1 Aug 2012, Konrad Rzeszutek Wilk wrote:
-> On Fri, Jul 27, 2012 at 10:28:25AM +0100, Ian Campbell wrote:
-> > On Thu, 2012-07-26 at 17:37 +0100, Konrad Rzeszutek Wilk wrote:
-> > > On Thu, Jul 26, 2012 at 04:33:46PM +0100, Stefano Stabellini wrote:
-> > > > sync_bitops functions are equivalent to the SMP implementation of the
-> > > > original functions, independently from CONFIG_SMP being defined.
-> > > 
-> > > So why can't the code be changed to use that? Is it that
-> > > the _set_bit, _clear_bit, etc are not available with !CONFIG_SMP?
-> > 
-> > _set_bit etc are not SMP safe if !CONFIG_SMP. But under Xen you might be
-> > communicating with a completely external entity who might be on another
-> > CPU (e.g. two uniprocessor guests communicating via event channels and
-> > grant tables). So we need a variant of the bit ops which are SMP safe
-> > even on a UP kernel.
-> > 
-> > The users are common code and the sync_foo vs foo distinction matters on
-> > some platforms (e.g. x86 where a UP kernel would omit the LOCK prefix
-> > for the normal ones).
-> 
-> OK, that makes sense. Stefano can you include that comment in the git
-> commit description and in the sync_bitops.h file please?
-
-Yep, I'll do that.
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<alpine.DEB.2.02.1208011716040.4645@kaball.uk.xensource.com> b/test/corpus/<alpine.DEB.2.02.1208011716040.4645@kaball.uk.xensource.com>
deleted file mode 100644 (file)
index 4f83df4..0000000
+++ /dev/null
@@ -1,123 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Aug 01 17:22:49 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 01 Aug 2012 17:22:49 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1Swbh8-0007GV-LG
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 01 Aug 2012 17:22:48 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SwbdN-00078q-PI; Wed, 01 Aug 2012 16:18:53 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1SwbdL-00078W-8z
-       for xen-devel@lists.xensource.com; Wed, 01 Aug 2012 16:18:51 +0000
-Received: from [85.158.139.83:5488] by server-9.bemta-5.messagelabs.com id
-       3C/73-01069-8E659105; Wed, 01 Aug 2012 16:18:48 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-8.tower-182.messagelabs.com!1343837927!18500504!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDc3NDk=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.2; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 27104 invoked from network); 1 Aug 2012 16:18:47 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-8.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
-       1 Aug 2012 16:18:47 -0000
-X-IronPort-AV: E=Sophos;i="4.77,695,1336348800"; d="scan'208";a="13807950"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       01 Aug 2012 16:18:47 +0000
-Received: from kaball.uk.xensource.com (10.80.2.59) by
-       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
-       8.3.213.0; Wed, 1 Aug 2012 17:18:47 +0100
-Date: Wed, 1 Aug 2012 17:18:29 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-X-Sender: sstabellini@kaball.uk.xensource.com
-To: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-In-Reply-To: <20120801145215.GP7227@phenom.dumpdata.com>
-Message-ID: <alpine.DEB.2.02.1208011716040.4645@kaball.uk.xensource.com>
-References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
-       <1343316846-25860-20-git-send-email-stefano.stabellini@eu.citrix.com>
-       <20120801145215.GP7227@phenom.dumpdata.com>
-User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
-       "linaro-dev@lists.linaro.org" <linaro-dev@lists.linaro.org>,
-       Ian Campbell <Ian.Campbell@citrix.com>, "arnd@arndb.de" <arnd@arndb.de>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>,
-       "catalin.marinas@arm.com" <catalin.marinas@arm.com>,
-       "Tim \(Xen.org\)" <tim@xen.org>,
-       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
-       "linux-arm-kernel@lists.infradead.org"
-       <linux-arm-kernel@lists.infradead.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 20/24] xen: update xen_add_to_physmap
-       interface
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Wed, 1 Aug 2012, Konrad Rzeszutek Wilk wrote:
-> On Thu, Jul 26, 2012 at 04:34:02PM +0100, Stefano Stabellini wrote:
-> > Update struct xen_add_to_physmap to be in sync with Xen's version of the
-> > structure.
-> > The size field was introduced by:
-> > 
-> > changeset:   24164:707d27fe03e7
-> > user:        Jean Guyader <jean.guyader@eu.citrix.com>
-> > date:        Fri Nov 18 13:42:08 2011 +0000
-> > summary:     mm: New XENMEM space, XENMAPSPACE_gmfn_range
-> > 
-> > According to the comment:
-> > 
-> > "This new field .size is located in the 16 bits padding between .domid
-> > and .space in struct xen_add_to_physmap to stay compatible with older
-> > versions."
-> > 
-> > This is not true on ARM where there is not padding, but it is valid on
-> > X86, so introducing size is safe on X86 and it is going to fix the
-> > interace for ARM.
-> 
-> Has this been checked actually for backwards compatibility? It sounds
-> like it should work just fine with Xen 4.0 right?
-> 
-> I believe this also helps Mukesh's patches, so CC-ing him here for
-> his Ack.
-> 
-> I can put this in right now in tree if we are 100% sure its compatiblie with 4.0.
-
-Yes, it is: 4 bytes integers are 4-byte aligned on 32 bit and 64 bit
-on x86.
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<alpine.DEB.2.02.1208011719050.4645@kaball.uk.xensource.com> b/test/corpus/<alpine.DEB.2.02.1208011719050.4645@kaball.uk.xensource.com>
deleted file mode 100644 (file)
index 38d3dd3..0000000
+++ /dev/null
@@ -1,139 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Aug 01 17:23:12 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 01 Aug 2012 17:23:12 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SwbhW-0007Gn-8w
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 01 Aug 2012 17:23:12 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SwbeJ-0007DW-74; Wed, 01 Aug 2012 16:19:51 +0000
-Received: from mail27.messagelabs.com ([193.109.254.147])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1SwbeI-0007D1-8P
-       for xen-devel@lists.xensource.com; Wed, 01 Aug 2012 16:19:50 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-12.tower-27.messagelabs.com!1343837984!11014579!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDc3NDk=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.2; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 17688 invoked from network); 1 Aug 2012 16:19:44 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-12.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
-       1 Aug 2012 16:19:44 -0000
-X-IronPort-AV: E=Sophos;i="4.77,695,1336348800"; d="scan'208";a="13807960"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       01 Aug 2012 16:19:44 +0000
-Received: from kaball.uk.xensource.com (10.80.2.59) by
-       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
-       8.3.213.0; Wed, 1 Aug 2012 17:19:44 +0100
-Date: Wed, 1 Aug 2012 17:19:26 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-X-Sender: sstabellini@kaball.uk.xensource.com
-To: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-In-Reply-To: <20120801144818.GO7227@phenom.dumpdata.com>
-Message-ID: <alpine.DEB.2.02.1208011719050.4645@kaball.uk.xensource.com>
-References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
-       <1343316846-25860-18-git-send-email-stefano.stabellini@eu.citrix.com>
-       <20120801144818.GO7227@phenom.dumpdata.com>
-User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
-       "linaro-dev@lists.linaro.org" <linaro-dev@lists.linaro.org>,
-       Ian Campbell <Ian.Campbell@citrix.com>, "arnd@arndb.de" <arnd@arndb.de>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>,
-       "catalin.marinas@arm.com" <catalin.marinas@arm.com>,
-       "Tim \(Xen.org\)" <tim@xen.org>,
-       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
-       "linux-arm-kernel@lists.infradead.org"
-       <linux-arm-kernel@lists.infradead.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 18/24] xen/arm: compile blkfront and blkback
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Wed, 1 Aug 2012, Konrad Rzeszutek Wilk wrote:
-> On Thu, Jul 26, 2012 at 04:34:00PM +0100, Stefano Stabellini wrote:
-> > Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-> > ---
-> >  drivers/block/xen-blkback/blkback.c  |    1 +
-> >  include/xen/interface/io/protocols.h |    3 +++
-> >  2 files changed, 4 insertions(+), 0 deletions(-)
-> > 
-> > diff --git a/drivers/block/xen-blkback/blkback.c b/drivers/block/xen-blkback/blkback.c
-> > index 73f196c..63dd5b9 100644
-> > --- a/drivers/block/xen-blkback/blkback.c
-> > +++ b/drivers/block/xen-blkback/blkback.c
-> > @@ -42,6 +42,7 @@
-> >  
-> >  #include <xen/events.h>
-> >  #include <xen/page.h>
-> > +#include <xen/xen.h>
-> >  #include <asm/xen/hypervisor.h>
-> >  #include <asm/xen/hypercall.h>
-> >  #include "common.h"
-> > diff --git a/include/xen/interface/io/protocols.h b/include/xen/interface/io/protocols.h
-> > index 01fc8ae..0eafaf2 100644
-> > --- a/include/xen/interface/io/protocols.h
-> > +++ b/include/xen/interface/io/protocols.h
-> > @@ -5,6 +5,7 @@
-> >  #define XEN_IO_PROTO_ABI_X86_64     "x86_64-abi"
-> >  #define XEN_IO_PROTO_ABI_IA64       "ia64-abi"
-> >  #define XEN_IO_PROTO_ABI_POWERPC64  "powerpc64-abi"
-> > +#define XEN_IO_PROTO_ABI_ARM        "arm-abi"
-> 
-> So one that has all of the 32/64 issues worked out? Nice.
-
-Yes, that is the idea, but it needs another patch to actually achieve
-the goal :)
-
-> >  
-> >  #if defined(__i386__)
-> >  # define XEN_IO_PROTO_ABI_NATIVE XEN_IO_PROTO_ABI_X86_32
-> > @@ -14,6 +15,8 @@
-> >  # define XEN_IO_PROTO_ABI_NATIVE XEN_IO_PROTO_ABI_IA64
-> >  #elif defined(__powerpc64__)
-> >  # define XEN_IO_PROTO_ABI_NATIVE XEN_IO_PROTO_ABI_POWERPC64
-> > +#elif defined(__arm__)
-> > +# define XEN_IO_PROTO_ABI_NATIVE XEN_IO_PROTO_ABI_ARM
-> >  #else
-> >  # error arch fixup needed here
-> >  #endif
-> > -- 
-> > 1.7.2.5
-> 
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<alpine.DEB.2.02.1208011719570.4645@kaball.uk.xensource.com> b/test/corpus/<alpine.DEB.2.02.1208011719570.4645@kaball.uk.xensource.com>
deleted file mode 100644 (file)
index 2d4cdf5..0000000
+++ /dev/null
@@ -1,143 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Aug 01 17:24:59 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 01 Aug 2012 17:24:59 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SwbjB-0007HB-CC
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 01 Aug 2012 17:24:59 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1Swbfl-0007MX-NT; Wed, 01 Aug 2012 16:21:21 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1Swbfj-0007MI-LU
-       for xen-devel@lists.xensource.com; Wed, 01 Aug 2012 16:21:19 +0000
-Received: from [85.158.138.51:37696] by server-1.bemta-3.messagelabs.com id
-       71/2E-31934-E7759105; Wed, 01 Aug 2012 16:21:18 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-15.tower-174.messagelabs.com!1343838078!28174258!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDc3NDk=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.2; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 11961 invoked from network); 1 Aug 2012 16:21:18 -0000
-Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-15.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
-       1 Aug 2012 16:21:18 -0000
-X-IronPort-AV: E=Sophos;i="4.77,695,1336348800"; d="scan'208";a="13807986"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       01 Aug 2012 16:21:17 +0000
-Received: from kaball.uk.xensource.com (10.80.2.59) by
-       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
-       8.3.213.0; Wed, 1 Aug 2012 17:21:17 +0100
-Date: Wed, 1 Aug 2012 17:21:00 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-X-Sender: sstabellini@kaball.uk.xensource.com
-To: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-In-Reply-To: <20120801143946.GK7227@phenom.dumpdata.com>
-Message-ID: <alpine.DEB.2.02.1208011719570.4645@kaball.uk.xensource.com>
-References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
-       <1343316846-25860-13-git-send-email-stefano.stabellini@eu.citrix.com>
-       <1343382276.6812.126.camel@zakaz.uk.xensource.com>
-       <alpine.DEB.2.02.1207271514140.26163@kaball.uk.xensource.com>
-       <1343399630.25096.4.camel@zakaz.uk.xensource.com>
-       <20120801143946.GK7227@phenom.dumpdata.com>
-User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
-       "linaro-dev@lists.linaro.org" <linaro-dev@lists.linaro.org>,
-       Ian Campbell <Ian.Campbell@citrix.com>, "arnd@arndb.de" <arnd@arndb.de>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>,
-       "catalin.marinas@arm.com" <catalin.marinas@arm.com>,
-       "Tim \(Xen.org\)" <tim@xen.org>,
-       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
-       "linux-arm-kernel@lists.infradead.org"
-       <linux-arm-kernel@lists.infradead.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 13/24] xen/arm: get privilege status
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Wed, 1 Aug 2012, Konrad Rzeszutek Wilk wrote:
-> On Fri, Jul 27, 2012 at 03:33:50PM +0100, Ian Campbell wrote:
-> > On Fri, 2012-07-27 at 15:25 +0100, Stefano Stabellini wrote:
-> > > On Fri, 27 Jul 2012, Ian Campbell wrote:
-> > > > On Thu, 2012-07-26 at 16:33 +0100, Stefano Stabellini wrote:
-> > > > > Use Xen features to figure out if we are privileged.
-> > > > > 
-> > > > > XENFEAT_dom0 was introduced by 23735 in xen-unstable.hg.
-> > > > > 
-> > > > > Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-> > > > > ---
-> > > > >  arch/arm/xen/enlighten.c         |    7 +++++++
-> > > > >  include/xen/interface/features.h |    3 +++
-> > > > >  2 files changed, 10 insertions(+), 0 deletions(-)
-> > > > > 
-> > > > > diff --git a/arch/arm/xen/enlighten.c b/arch/arm/xen/enlighten.c
-> > > > > index dc68074..2e013cf 100644
-> > > > > --- a/arch/arm/xen/enlighten.c
-> > > > > +++ b/arch/arm/xen/enlighten.c
-> > > > > @@ -2,6 +2,7 @@
-> > > > >  #include <xen/interface/xen.h>
-> > > > >  #include <xen/interface/memory.h>
-> > > > >  #include <xen/platform_pci.h>
-> > > > > +#include <xen/features.h>
-> > > > >  #include <asm/xen/hypervisor.h>
-> > > > >  #include <asm/xen/hypercall.h>
-> > > > >  #include <linux/module.h>
-> > > > > @@ -58,6 +59,12 @@ int __init xen_guest_init(void)
-> > > > >      }
-> > > > >      xen_domain_type = XEN_HVM_DOMAIN;
-> > > > >  
-> > > > > +    xen_setup_features();
-> > > > > +    if (xen_feature(XENFEAT_dom0))
-> > > > > +            xen_start_info->flags |= SIF_INITDOMAIN|SIF_PRIVILEGED;
-> > > > > +    else
-> > > > > +            xen_start_info->flags &= ~(SIF_INITDOMAIN|SIF_PRIVILEGED);
-> > > > 
-> > > > What happens here on platforms prior to hypervisor changeset 23735?
-> > > 
-> > > It wouldn't work.
-> > > Considering that we are certainly not going to backport ARM support to
-> > > Xen 4.1, and that both ARM and XENFEAT_dom0 will be present in Xen 4.2,
-> > > do we really need to support the Xen unstable changesets between ARM was
-> > > introduced and XENFEAT_dom0 appeared?
-> 
-> So should it just panic and say "AAAAAAH"?
-
-I could panic if I find out that XENFEAT_dom0 is unimplemented but
-actually I only get to know if it is available...
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<alpine.DEB.2.02.1208011752020.4645@kaball.uk.xensource.com> b/test/corpus/<alpine.DEB.2.02.1208011752020.4645@kaball.uk.xensource.com>
deleted file mode 100644 (file)
index 9a1cd83..0000000
+++ /dev/null
@@ -1,168 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Aug 01 18:13:23 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 01 Aug 2012 18:13:23 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SwcU5-0007VX-75
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 01 Aug 2012 18:13:23 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SwcQA-0003Xf-6s; Wed, 01 Aug 2012 17:09:18 +0000
-Received: from mail27.messagelabs.com ([193.109.254.147])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1SwcQ7-0003XP-TG
-       for xen-devel@lists.xensource.com; Wed, 01 Aug 2012 17:09:16 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-3.tower-27.messagelabs.com!1343840947!10371587!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDc3NDk=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.2; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 31079 invoked from network); 1 Aug 2012 17:09:08 -0000
-Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-3.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
-       1 Aug 2012 17:09:08 -0000
-X-IronPort-AV: E=Sophos;i="4.77,695,1336348800"; d="scan'208";a="13808668"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       01 Aug 2012 17:09:07 +0000
-Received: from kaball.uk.xensource.com (10.80.2.59) by
-       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
-       8.3.213.0; Wed, 1 Aug 2012 18:09:07 +0100
-Date: Wed, 1 Aug 2012 18:08:50 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-X-Sender: sstabellini@kaball.uk.xensource.com
-To: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-In-Reply-To: <20120801144059.GL7227@phenom.dumpdata.com>
-Message-ID: <alpine.DEB.2.02.1208011752020.4645@kaball.uk.xensource.com>
-References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
-       <1343316846-25860-14-git-send-email-stefano.stabellini@eu.citrix.com>
-       <20120801144059.GL7227@phenom.dumpdata.com>
-User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
-       "linaro-dev@lists.linaro.org" <linaro-dev@lists.linaro.org>,
-       Ian Campbell <Ian.Campbell@citrix.com>, "arnd@arndb.de" <arnd@arndb.de>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>,
-       "catalin.marinas@arm.com" <catalin.marinas@arm.com>,
-       "Tim \(Xen.org\)" <tim@xen.org>,
-       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
-       "linux-arm-kernel@lists.infradead.org"
-       <linux-arm-kernel@lists.infradead.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD autolearn=unavailable version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 14/24] xen/arm: initialize grant_table on ARM
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Wed, 1 Aug 2012, Konrad Rzeszutek Wilk wrote:
-> On Thu, Jul 26, 2012 at 04:33:56PM +0100, Stefano Stabellini wrote:
-> > Initialize the grant table mapping at the address specified at index 0
-> > in the DT under the /xen node.
-> 
-> Is it always index 0? If so, should it have a #define for the
-> other index values?
-
-There are no other values at the moment but I'll add an #define.
-
-
-> > After the grant table is initialized, call xenbus_probe (if not dom0).
-> > 
-> > Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-> > ---
-> >  arch/arm/xen/enlighten.c  |   13 +++++++++++++
-> >  drivers/xen/grant-table.c |    2 +-
-> >  2 files changed, 14 insertions(+), 1 deletions(-)
-> > 
-> > diff --git a/arch/arm/xen/enlighten.c b/arch/arm/xen/enlighten.c
-> > index 2e013cf..854af1e 100644
-> > --- a/arch/arm/xen/enlighten.c
-> > +++ b/arch/arm/xen/enlighten.c
-> > @@ -1,8 +1,12 @@
-> >  #include <xen/xen.h>
-> >  #include <xen/interface/xen.h>
-> >  #include <xen/interface/memory.h>
-> > +#include <xen/interface/hvm/params.h>
-> >  #include <xen/platform_pci.h>
-> >  #include <xen/features.h>
-> > +#include <xen/grant_table.h>
-> > +#include <xen/hvm.h>
-> > +#include <xen/xenbus.h>
-> >  #include <asm/xen/hypervisor.h>
-> >  #include <asm/xen/hypercall.h>
-> >  #include <linux/module.h>
-> > @@ -51,12 +55,16 @@ int __init xen_guest_init(void)
-> >    struct xen_add_to_physmap xatp;
-> >    static struct shared_info *shared_info_page = 0;
-> >    struct device_node *node;
-> > +  struct resource res;
-> >  
-> >    node = of_find_compatible_node(NULL, NULL, "arm,xen");
-> >    if (!node) {
-> >            pr_info("No Xen support\n");
-> >            return 0;
-> >    }
-> > +  if (of_address_to_resource(node, 0, &res))
-> > +          return -EINVAL;
-> > +  xen_hvm_resume_frames = res.start >> PAGE_SHIFT;
-> >    xen_domain_type = XEN_HVM_DOMAIN;
-> >  
-> >    xen_setup_features();
-> > @@ -97,6 +105,11 @@ int __init xen_guest_init(void)
-> >            per_cpu(xen_vcpu, cpu) =
-> >                    &HYPERVISOR_shared_info->vcpu_info[cpu];
-> >    }
-> > +
-> > +  gnttab_init();
-> > +  if (!xen_initial_domain())
-> > +          xenbus_probe(NULL);
-> > +
-> >    return 0;
-> >  }
-> >  EXPORT_SYMBOL_GPL(xen_guest_init);
-> > diff --git a/drivers/xen/grant-table.c b/drivers/xen/grant-table.c
-> > index 1d0d95e..fd2137a 100644
-> > --- a/drivers/xen/grant-table.c
-> > +++ b/drivers/xen/grant-table.c
-> > @@ -62,7 +62,7 @@
-> >  
-> >  static grant_ref_t **gnttab_list;
-> >  static unsigned int nr_grant_frames;
-> > -static unsigned int boot_max_nr_grant_frames;
-> > +static unsigned int boot_max_nr_grant_frames = 1;
-> 
-> Is this going to impact x86 version?
-
-It is not needed so I'll remove this change
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<alpine.DEB.2.02.1208061127440.4645@kaball.uk.xensource.com> b/test/corpus/<alpine.DEB.2.02.1208061127440.4645@kaball.uk.xensource.com>
deleted file mode 100644 (file)
index e86ac40..0000000
+++ /dev/null
@@ -1,283 +0,0 @@
-From xen-devel-bounces@lists.xen.org Mon Aug 06 11:35:45 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Mon, 06 Aug 2012 11:35:45 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SyKez-0006HP-3d
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Mon, 06 Aug 2012 11:35:44 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SyKaw-0004bn-9K; Mon, 06 Aug 2012 10:31:30 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1SyKau-0004ba-DT
-       for xen-devel@lists.xensource.com; Mon, 06 Aug 2012 10:31:28 +0000
-Received: from [85.158.143.99:45713] by server-2.bemta-4.messagelabs.com id
-       9E/D8-17938-FFC9F105; Mon, 06 Aug 2012 10:31:27 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-2.tower-216.messagelabs.com!1344249086!25131372!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDgxNjY=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.2; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 4225 invoked from network); 6 Aug 2012 10:31:27 -0000
-Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-2.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
-       6 Aug 2012 10:31:27 -0000
-X-IronPort-AV: E=Sophos;i="4.77,718,1336348800"; d="scan'208";a="13863086"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       06 Aug 2012 10:31:26 +0000
-Received: from kaball.uk.xensource.com (10.80.2.59) by
-       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
-       8.3.213.0; Mon, 6 Aug 2012 11:31:26 +0100
-Date: Mon, 6 Aug 2012 11:31:04 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-X-Sender: sstabellini@kaball.uk.xensource.com
-To: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-In-Reply-To: <20120801144418.GM7227@phenom.dumpdata.com>
-Message-ID: <alpine.DEB.2.02.1208061127440.4645@kaball.uk.xensource.com>
-References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
-       <1343316846-25860-15-git-send-email-stefano.stabellini@eu.citrix.com>
-       <20120801144418.GM7227@phenom.dumpdata.com>
-User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
-       "linaro-dev@lists.linaro.org" <linaro-dev@lists.linaro.org>,
-       Ian Campbell <Ian.Campbell@citrix.com>, "arnd@arndb.de" <arnd@arndb.de>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>,
-       "catalin.marinas@arm.com" <catalin.marinas@arm.com>,
-       "Tim \(Xen.org\)" <tim@xen.org>,
-       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
-       "linux-arm-kernel@lists.infradead.org"
-       <linux-arm-kernel@lists.infradead.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 15/24] xen/arm: receive Xen events on ARM
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Wed, 1 Aug 2012, Konrad Rzeszutek Wilk wrote:
-> On Thu, Jul 26, 2012 at 04:33:57PM +0100, Stefano Stabellini wrote:
-> > Compile events.c on ARM.
-> > Parse, map and enable the IRQ to get event notifications from the device
-> > tree (node "/xen").
-> > 
-> > On ARM Linux irqs are not enabled by default:
-> > 
-> > - call enable_percpu_irq for xen_events_irq (drivers are supposed
-> > to call enable_irq after request_irq);
-> > 
-> > - reset the IRQ_NOAUTOEN and IRQ_NOREQUEST flags that are enabled by
-> > default on ARM. If IRQ_NOAUTOEN is set, __setup_irq doesn't call
-> > irq_startup, that is responsible for calling irq_unmask at startup time.
-> > As a result event channels remain masked.
-> > 
-> > Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-> > ---
-> >  arch/arm/xen/enlighten.c |   33 +++++++++++++++++++++++++++++++++
-> >  arch/x86/xen/enlighten.c |    1 +
-> >  arch/x86/xen/irq.c       |    1 +
-> >  arch/x86/xen/xen-ops.h   |    1 -
-> >  drivers/xen/events.c     |   18 +++++++++++++++---
-> >  include/xen/events.h     |    2 ++
-> >  6 files changed, 52 insertions(+), 4 deletions(-)
-> > 
-> > diff --git a/arch/arm/xen/enlighten.c b/arch/arm/xen/enlighten.c
-> > index 854af1e..60d6d36 100644
-> > --- a/arch/arm/xen/enlighten.c
-> > +++ b/arch/arm/xen/enlighten.c
-> > @@ -7,8 +7,11 @@
-> >  #include <xen/grant_table.h>
-> >  #include <xen/hvm.h>
-> >  #include <xen/xenbus.h>
-> > +#include <xen/events.h>
-> >  #include <asm/xen/hypervisor.h>
-> >  #include <asm/xen/hypercall.h>
-> > +#include <linux/interrupt.h>
-> > +#include <linux/irqreturn.h>
-> >  #include <linux/module.h>
-> >  #include <linux/of.h>
-> >  #include <linux/of_irq.h>
-> > @@ -33,6 +36,8 @@ EXPORT_SYMBOL_GPL(xen_have_vector_callback);
-> >  int xen_platform_pci_unplug = XEN_UNPLUG_ALL;
-> >  EXPORT_SYMBOL_GPL(xen_platform_pci_unplug);
-> >  
-> > +static __read_mostly int xen_events_irq = -1;
-> > +
-> >  int xen_remap_domain_mfn_range(struct vm_area_struct *vma,
-> >                           unsigned long addr,
-> >                           unsigned long mfn, int nr,
-> > @@ -65,6 +70,9 @@ int __init xen_guest_init(void)
-> >    if (of_address_to_resource(node, 0, &res))
-> >            return -EINVAL;
-> >    xen_hvm_resume_frames = res.start >> PAGE_SHIFT;
-> > +  xen_events_irq = irq_of_parse_and_map(node, 0);
-> > +  pr_info("Xen support found, events_irq=%d gnttab_frame_pfn=%lx\n",
-> > +                  xen_events_irq, xen_hvm_resume_frames);
-> >    xen_domain_type = XEN_HVM_DOMAIN;
-> >  
-> >    xen_setup_features();
-> > @@ -114,3 +122,28 @@ int __init xen_guest_init(void)
-> >  }
-> >  EXPORT_SYMBOL_GPL(xen_guest_init);
-> >  core_initcall(xen_guest_init);
-> > +
-> > +static irqreturn_t xen_arm_callback(int irq, void *arg)
-> > +{
-> > +  xen_hvm_evtchn_do_upcall();
-> > +  return 0;
-> 
-> Um, IRQ_HANDLED?
-
-Yep
-
-
-> > +}
-> > +
-> > +static int __init xen_init_events(void)
-> > +{
-> > +  if (!xen_domain() || xen_events_irq < 0)
-> > +          return -ENODEV;
-> > +
-> > +  xen_init_IRQ();
-> > +
-> > +  if (request_percpu_irq(xen_events_irq, xen_arm_callback,
-> > +                  "events", xen_vcpu)) {
-> > +          pr_err("Error requesting IRQ %d\n", xen_events_irq);
-> > +          return -EINVAL;
-> > +  }
-> > +
-> > +  enable_percpu_irq(xen_events_irq, 0);
-> > +
-> > +  return 0;
-> > +}
-> > +postcore_initcall(xen_init_events);
-> > diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c
-> > index 6131d43..5a30502 100644
-> > --- a/arch/x86/xen/enlighten.c
-> > +++ b/arch/x86/xen/enlighten.c
-> > @@ -33,6 +33,7 @@
-> >  #include <linux/memblock.h>
-> >  
-> >  #include <xen/xen.h>
-> > +#include <xen/events.h>
-> >  #include <xen/interface/xen.h>
-> >  #include <xen/interface/version.h>
-> >  #include <xen/interface/physdev.h>
-> > diff --git a/arch/x86/xen/irq.c b/arch/x86/xen/irq.c
-> > index 1573376..01a4dc0 100644
-> > --- a/arch/x86/xen/irq.c
-> > +++ b/arch/x86/xen/irq.c
-> > @@ -5,6 +5,7 @@
-> >  #include <xen/interface/xen.h>
-> >  #include <xen/interface/sched.h>
-> >  #include <xen/interface/vcpu.h>
-> > +#include <xen/events.h>
-> >  
-> >  #include <asm/xen/hypercall.h>
-> >  #include <asm/xen/hypervisor.h>
-> > diff --git a/arch/x86/xen/xen-ops.h b/arch/x86/xen/xen-ops.h
-> > index 202d4c1..2368295 100644
-> > --- a/arch/x86/xen/xen-ops.h
-> > +++ b/arch/x86/xen/xen-ops.h
-> > @@ -35,7 +35,6 @@ void xen_set_pat(u64);
-> >  
-> >  char * __init xen_memory_setup(void);
-> >  void __init xen_arch_setup(void);
-> > -void __init xen_init_IRQ(void);
-> >  void xen_enable_sysenter(void);
-> >  void xen_enable_syscall(void);
-> >  void xen_vcpu_restore(void);
-> > diff --git a/drivers/xen/events.c b/drivers/xen/events.c
-> > index 7da65d3..9b506b2 100644
-> > --- a/drivers/xen/events.c
-> > +++ b/drivers/xen/events.c
-> > @@ -31,14 +31,16 @@
-> >  #include <linux/irqnr.h>
-> >  #include <linux/pci.h>
-> >  
-> > +#ifdef CONFIG_X86
-> >  #include <asm/desc.h>
-> >  #include <asm/ptrace.h>
-> >  #include <asm/irq.h>
-> >  #include <asm/idle.h>
-> >  #include <asm/io_apic.h>
-> > -#include <asm/sync_bitops.h>
-> >  #include <asm/xen/page.h>
-> >  #include <asm/xen/pci.h>
-> > +#endif
-> > +#include <asm/sync_bitops.h>
-> >  #include <asm/xen/hypercall.h>
-> >  #include <asm/xen/hypervisor.h>
-> >  
-> > @@ -50,6 +52,9 @@
-> >  #include <xen/interface/event_channel.h>
-> >  #include <xen/interface/hvm/hvm_op.h>
-> >  #include <xen/interface/hvm/params.h>
-> > +#include <xen/interface/physdev.h>
-> > +#include <xen/interface/sched.h>
-> > +#include <asm/hw_irq.h>
-> >  
-> >  /*
-> >   * This lock protects updates to the following mapping and reference-count
-> > @@ -834,6 +839,7 @@ int bind_evtchn_to_irq(unsigned int evtchn)
-> >            struct irq_info *info = info_for_irq(irq);
-> >            WARN_ON(info == NULL || info->type != IRQT_EVTCHN);
-> >    }
-> > +  irq_clear_status_flags(irq, IRQ_NOREQUEST|IRQ_NOAUTOEN);
-> 
-> I feel that this should be its own commit by itself. I am not certain
-> of the implication of this on x86 and I think it deserves some explanation.
-
-OK. It shouldn't have any effects on x86, considering that both
-IRQ_NOREQUEST and IRQ_NOAUTOEN are not set there.
-
-
-> >  
-> >  out:
-> >    mutex_unlock(&irq_mapping_update_lock);
-> > @@ -1377,7 +1383,9 @@ void xen_evtchn_do_upcall(struct pt_regs *regs)
-> >  {
-> >    struct pt_regs *old_regs = set_irq_regs(regs);
-> >  
-> > +#ifdef CONFIG_X86
-> >    exit_idle();
-> > +#endif
-> 
-> Doesn't exist? Or is that it does not need it?
-
-It does not exist.
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<alpine.DEB.2.02.1208061142070.4645@kaball.uk.xensource.com> b/test/corpus/<alpine.DEB.2.02.1208061142070.4645@kaball.uk.xensource.com>
deleted file mode 100644 (file)
index 524bfb3..0000000
+++ /dev/null
@@ -1,136 +0,0 @@
-From xen-devel-bounces@lists.xen.org Mon Aug 06 11:51:30 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Mon, 06 Aug 2012 11:51:30 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SyKuD-0006M2-10
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Mon, 06 Aug 2012 11:51:30 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SyKpc-0004v4-Nd; Mon, 06 Aug 2012 10:46:40 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1SyKpa-0004uz-Sd
-       for xen-devel@lists.xensource.com; Mon, 06 Aug 2012 10:46:39 +0000
-Received: from [85.158.139.83:54280] by server-12.bemta-5.messagelabs.com id
-       F1/7A-26304-E80AF105; Mon, 06 Aug 2012 10:46:38 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-5.tower-182.messagelabs.com!1344249995!30493266!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDgxNjY=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.2; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 25980 invoked from network); 6 Aug 2012 10:46:36 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-5.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
-       6 Aug 2012 10:46:36 -0000
-X-IronPort-AV: E=Sophos;i="4.77,718,1336348800"; d="scan'208";a="13863580"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       06 Aug 2012 10:46:35 +0000
-Received: from kaball.uk.xensource.com (10.80.2.59) by
-       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
-       8.3.213.0; Mon, 6 Aug 2012 11:46:35 +0100
-Date: Mon, 6 Aug 2012 11:46:14 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-X-Sender: sstabellini@kaball.uk.xensource.com
-To: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-In-Reply-To: <20120802141341.GE16749@phenom.dumpdata.com>
-Message-ID: <alpine.DEB.2.02.1208061142070.4645@kaball.uk.xensource.com>
-References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
-       <1343316846-25860-1-git-send-email-stefano.stabellini@eu.citrix.com>
-       <50197527.3070007@gmail.com>
-       <1343892951.7571.50.camel@dagon.hellion.org.uk>
-       <20120802141341.GE16749@phenom.dumpdata.com>
-User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
-       "linaro-dev@lists.linaro.org" <linaro-dev@lists.linaro.org>,
-       Ian Campbell <Ian.Campbell@citrix.com>, "arnd@arndb.de" <arnd@arndb.de>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>,
-       "catalin.marinas@arm.com" <catalin.marinas@arm.com>,
-       "Tim \(Xen.org\)" <tim@xen.org>,
-       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
-       Rob Herring <robherring2@gmail.com>, "linux-arm-kernel@lists.infradead.org"
-       <linux-arm-kernel@lists.infradead.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 01/24] arm: initial Xen support
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Thu, 2 Aug 2012, Konrad Rzeszutek Wilk wrote:
-> On Thu, Aug 02, 2012 at 08:35:51AM +0100, Ian Campbell wrote:
-> > On Wed, 2012-08-01 at 19:27 +0100, Rob Herring wrote:
-> > > On 07/26/2012 10:33 AM, Stefano Stabellini wrote:
-> > > > - Basic hypervisor.h and interface.h definitions.
-> > > > - Skelethon enlighten.c, set xen_start_info to an empty struct.
-> > > > - Do not limit xen_initial_domain to PV guests.
-> > > > 
-> > > > The new code only compiles when CONFIG_XEN is set, that is going to be
-> > > > added to arch/arm/Kconfig in a later patch.
-> > > > 
-> > > > Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-> > > > ---
-> > > >  arch/arm/Makefile                     |    1 +
-> > > >  arch/arm/include/asm/hypervisor.h     |    6 +++
-> > > >  arch/arm/include/asm/xen/hypervisor.h |   19 ++++++++++
-> > > >  arch/arm/include/asm/xen/interface.h  |   64 +++++++++++++++++++++++++++++++++
-> > > 
-> > > These headers don't seem particularly ARM specific. Could they be moved
-> > > to asm-generic or include/linux?
-> > 
-> > Or perhaps include/xen.
-> > 
-> > A bunch of it also looks like x86 specific stuff which has crept in.
-> > e.g. PARAVIRT_LAZY_FOO and paravirt_get_lazy_mode() are arch/x86
-> > specific and shouldn't be called from common code (and aren't, AFAICT).
-> 
-> The could be moved out..
-> 
-
-they are called from grant-table.c; sigh, I was the one to add them there :-(
-
-interface.h is ARM specific, except for the pvclock structs, that in
-fact are marked "XXX".
-
-hypervisor.h is almost empty but I guess I could move out the following two
-lines:
-
-extern struct shared_info *HYPERVISOR_shared_info;
-extern struct start_info *xen_start_info;
-
-Considering that each arch is free to map them (or not) the way it
-wants, I don't think is a good idea.
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<alpine.DEB.2.02.1208061146480.4645@kaball.uk.xensource.com> b/test/corpus/<alpine.DEB.2.02.1208061146480.4645@kaball.uk.xensource.com>
deleted file mode 100644 (file)
index ee2616d..0000000
+++ /dev/null
@@ -1,118 +0,0 @@
-From xen-devel-bounces@lists.xen.org Mon Aug 06 12:00:47 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Mon, 06 Aug 2012 12:00:47 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SyL3F-0006Nv-E9
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Mon, 06 Aug 2012 12:00:47 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SyKyh-00054Q-Oy; Mon, 06 Aug 2012 10:56:03 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1SyKyg-00054L-1X
-       for xen-devel@lists.xensource.com; Mon, 06 Aug 2012 10:56:02 +0000
-Received: from [85.158.143.99:44551] by server-2.bemta-4.messagelabs.com id
-       8F/01-17938-1C2AF105; Mon, 06 Aug 2012 10:56:01 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-16.tower-216.messagelabs.com!1344250560!18765197!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDgxNjY=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.2; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 11057 invoked from network); 6 Aug 2012 10:56:00 -0000
-Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-16.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
-       6 Aug 2012 10:56:00 -0000
-X-IronPort-AV: E=Sophos;i="4.77,718,1336348800"; d="scan'208";a="13863791"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       06 Aug 2012 10:56:00 +0000
-Received: from kaball.uk.xensource.com (10.80.2.59) by
-       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
-       8.3.213.0; Mon, 6 Aug 2012 11:56:00 +0100
-Date: Mon, 6 Aug 2012 11:55:38 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-X-Sender: sstabellini@kaball.uk.xensource.com
-To: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-In-Reply-To: <20120801104237.GB7227@phenom.dumpdata.com>
-Message-ID: <alpine.DEB.2.02.1208061146480.4645@kaball.uk.xensource.com>
-References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
-       <1343316846-25860-1-git-send-email-stefano.stabellini@eu.citrix.com>
-       <20120726163020.GB9222@phenom.dumpdata.com>
-       <alpine.DEB.2.02.1207271246080.26163@kaball.uk.xensource.com>
-       <20120801104237.GB7227@phenom.dumpdata.com>
-User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
-       "linaro-dev@lists.linaro.org" <linaro-dev@lists.linaro.org>,
-       Ian Campbell <Ian.Campbell@citrix.com>, "arnd@arndb.de" <arnd@arndb.de>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>,
-       "catalin.marinas@arm.com" <catalin.marinas@arm.com>,
-       "Tim \(Xen.org\)" <tim@xen.org>,
-       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
-       "linux-arm-kernel@lists.infradead.org"
-       <linux-arm-kernel@lists.infradead.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 01/24] arm: initial Xen support
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Wed, 1 Aug 2012, Konrad Rzeszutek Wilk wrote:
-> > > > +struct pvclock_wall_clock {
-> > > > +      u32   version;
-> > > > +      u32   sec;
-> > > > +      u32   nsec;
-> > > > +} __attribute__((__packed__));
-> > > 
-> > > That is weird. It is 4+4+4 = 12 bytes? Don't you want it to be 16 bytes?
-> > 
-> > I agree that 16 bytes would be a better choice, but it needs to match
-> > the struct in Xen that is defined as follow:
-> > 
-> >     uint32_t wc_version;      /* Version counter: see vcpu_time_info_t. */
-> >     uint32_t wc_sec;          /* Secs  00:00:00 UTC, Jan 1, 1970.  */
-> >     uint32_t wc_nsec;         /* Nsecs 00:00:00 UTC, Jan 1, 1970.  */
-> 
-> Would it make sense to add some paddigin then at least? In both
-> cases? Or is it too late for this?
-
-I can see why adding some padding would be useful if the structs were
-not packed and we wanted to enforce 32/64 bit compatibility on x86.
-However on ARM the field alignments on 32 and 64 bits are the same for
-integer values so the padding wouldn't make a difference.
-In any case both structs are packed, so the alignment is forced to be the
-same by the compiler.
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<alpine.DEB.2.02.1208061200130.4645@kaball.uk.xensource.com> b/test/corpus/<alpine.DEB.2.02.1208061200130.4645@kaball.uk.xensource.com>
deleted file mode 100644 (file)
index bb07513..0000000
+++ /dev/null
@@ -1,185 +0,0 @@
-From xen-devel-bounces@lists.xen.org Mon Aug 06 12:22:54 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Mon, 06 Aug 2012 12:22:54 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SyLOe-0006SB-7I
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Mon, 06 Aug 2012 12:22:54 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1SyLJz-0005Im-Nq; Mon, 06 Aug 2012 11:18:03 +0000
-Received: from mail27.messagelabs.com ([193.109.254.147])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1SyLJy-0005Ih-31
-       for xen-devel@lists.xensource.com; Mon, 06 Aug 2012 11:18:02 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-7.tower-27.messagelabs.com!1344251868!4015807!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDgxNjY=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.2; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 10543 invoked from network); 6 Aug 2012 11:17:49 -0000
-Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-7.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
-       6 Aug 2012 11:17:49 -0000
-X-IronPort-AV: E=Sophos;i="4.77,718,1336348800"; d="scan'208";a="13864255"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       06 Aug 2012 11:17:32 +0000
-Received: from kaball.uk.xensource.com (10.80.2.59) by
-       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
-       8.3.213.0; Mon, 6 Aug 2012 12:17:32 +0100
-Date: Mon, 6 Aug 2012 12:17:10 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-X-Sender: sstabellini@kaball.uk.xensource.com
-To: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-In-Reply-To: <20120801142840.GG7227@phenom.dumpdata.com>
-Message-ID: <alpine.DEB.2.02.1208061200130.4645@kaball.uk.xensource.com>
-References: <alpine.DEB.2.02.1207251741470.26163@kaball.uk.xensource.com>
-       <1343316846-25860-9-git-send-email-stefano.stabellini@eu.citrix.com>
-       <20120801142840.GG7227@phenom.dumpdata.com>
-User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
-       "linaro-dev@lists.linaro.org" <linaro-dev@lists.linaro.org>,
-       Ian Campbell <Ian.Campbell@citrix.com>, "arnd@arndb.de" <arnd@arndb.de>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>,
-       "catalin.marinas@arm.com" <catalin.marinas@arm.com>,
-       "Tim \(Xen.org\)" <tim@xen.org>,
-       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
-       "linux-arm-kernel@lists.infradead.org"
-       <linux-arm-kernel@lists.infradead.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD autolearn=unavailable version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 09/24] xen/arm: compile and run xenbus
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Wed, 1 Aug 2012, Konrad Rzeszutek Wilk wrote:
-> On Thu, Jul 26, 2012 at 04:33:51PM +0100, Stefano Stabellini wrote:
-> > bind_evtchn_to_irqhandler can legitimately return 0 (irq 0): it is not
-> > an error.
-> > 
-> > If Linux is running as an HVM domain and is running as Dom0, use
-> > xenstored_local_init to initialize the xenstore page and event channel.
-> > 
-> > Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-> > ---
-> >  drivers/xen/xenbus/xenbus_comms.c |    2 +-
-> >  drivers/xen/xenbus/xenbus_probe.c |   27 +++++++++++++++++----------
-> >  drivers/xen/xenbus/xenbus_xs.c    |    1 +
-> >  3 files changed, 19 insertions(+), 11 deletions(-)
-> > 
-> > diff --git a/drivers/xen/xenbus/xenbus_comms.c b/drivers/xen/xenbus/xenbus_comms.c
-> > index 52fe7ad..c5aa55c 100644
-> > --- a/drivers/xen/xenbus/xenbus_comms.c
-> > +++ b/drivers/xen/xenbus/xenbus_comms.c
-> > @@ -224,7 +224,7 @@ int xb_init_comms(void)
-> >            int err;
-> >            err = bind_evtchn_to_irqhandler(xen_store_evtchn, wake_waiting,
-> >                                            0, "xenbus", &xb_waitq);
-> > -          if (err <= 0) {
-> > +          if (err < 0) {
-> >                    printk(KERN_ERR "XENBUS request irq failed %i\n", err);
-> >                    return err;
-> >            }
-> > diff --git a/drivers/xen/xenbus/xenbus_probe.c b/drivers/xen/xenbus/xenbus_probe.c
-> > index b793723..3ae47c2 100644
-> > --- a/drivers/xen/xenbus/xenbus_probe.c
-> > +++ b/drivers/xen/xenbus/xenbus_probe.c
-> > @@ -729,16 +729,23 @@ static int __init xenbus_init(void)
-> >    xenbus_ring_ops_init();
-> >  
-> >    if (xen_hvm_domain()) {
-> > -          uint64_t v = 0;
-> > -          err = hvm_get_parameter(HVM_PARAM_STORE_EVTCHN, &v);
-> > -          if (err)
-> > -                  goto out_error;
-> > -          xen_store_evtchn = (int)v;
-> > -          err = hvm_get_parameter(HVM_PARAM_STORE_PFN, &v);
-> > -          if (err)
-> > -                  goto out_error;
-> > -          xen_store_mfn = (unsigned long)v;
-> > -          xen_store_interface = ioremap(xen_store_mfn << PAGE_SHIFT, PAGE_SIZE);
-> > +          if (xen_initial_domain()) {
-> > +                  err = xenstored_local_init();
-> > +                  xen_store_interface =
-> > +                          phys_to_virt(xen_store_mfn << PAGE_SHIFT);
-> > +          } else {
-> > +                  uint64_t v = 0;
-> > +                  err = hvm_get_parameter(HVM_PARAM_STORE_EVTCHN, &v);
-> > +                  if (err)
-> > +                          goto out_error;
-> > +                  xen_store_evtchn = (int)v;
-> > +                  err = hvm_get_parameter(HVM_PARAM_STORE_PFN, &v);
-> > +                  if (err)
-> > +                          goto out_error;
-> > +                  xen_store_mfn = (unsigned long)v;
-> > +                  xen_store_interface =
-> > +                          ioremap(xen_store_mfn << PAGE_SHIFT, PAGE_SIZE);
-> > +          }
-> 
-> This, and along with the Hybrid PV dom0 (not yet posted, but it was doing
-> similar manipulation here) is getting more and more like a rat-mess.
-> 
-> 
-> Any chance we can just abstract the three different XenStore access
-> ways and just have something like this:
-> 
->      enum {
->              USE_UNKNOWN
->              USE_HVM,
->              USE_PV,
->              USE_LOCAL
->              USE_ALREADY_INIT
->      };
->      int usage = USE_UNKNOWN;
->      if (xen_pv_domain())
->              usage = USE_PV;
->      if (xen_hvm_domain())
->              usage = USE_HVM;
->      if (xen_initial_domain())
->              usage = USE_LOCAL;
-> 
->      if (xen_start_info->store_evtchn)
->              usage = USE_ALREADY_INIT;
->      
->      .. other overwrites..
-> 
->      switch (usage) {
->              .. blah blah.
->      }
-
-I'll give it a try.
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<alpine.DEB.2.02.1208151418380.2278@kaball.uk.xensource.com> b/test/corpus/<alpine.DEB.2.02.1208151418380.2278@kaball.uk.xensource.com>
deleted file mode 100644 (file)
index 40529c9..0000000
+++ /dev/null
@@ -1,342 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Aug 15 15:01:00 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 15 Aug 2012 15:01:00 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T1e9Y-0006QU-Vu
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 15 Aug 2012 15:01:00 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T1e4y-0005g8-Vl; Wed, 15 Aug 2012 13:56:12 +0000
-Received: from mail27.messagelabs.com ([193.109.254.147])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1T1e4x-0005fs-Qs
-       for xen-devel@lists.xen.org; Wed, 15 Aug 2012 13:56:12 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-5.tower-27.messagelabs.com!1345038962!6996963!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDkxOTE=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 17318 invoked from network); 15 Aug 2012 13:56:03 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-5.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
-       15 Aug 2012 13:56:03 -0000
-X-IronPort-AV: E=Sophos;i="4.77,773,1336348800"; d="scan'208";a="14021752"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       15 Aug 2012 13:56:02 +0000
-Received: from kaball.uk.xensource.com (10.80.2.59) by
-       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
-       8.3.213.0; Wed, 15 Aug 2012 14:56:02 +0100
-Date: Wed, 15 Aug 2012 14:55:46 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-X-Sender: sstabellini@kaball.uk.xensource.com
-To: David Vrabel <david.vrabel@citrix.com>
-In-Reply-To: <502B85D1.8000606@citrix.com>
-Message-ID: <alpine.DEB.2.02.1208151418380.2278@kaball.uk.xensource.com>
-References: <1344947062-4796-1-git-send-email-attilio.rao@citrix.com>
-       <1344947062-4796-3-git-send-email-attilio.rao@citrix.com>
-       <502A5964.2080509@citrix.com> <502A5CD0.8000201@citrix.com>
-       <502B85D1.8000606@citrix.com>
-User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
-MIME-Version: 1.0
-Cc: Attilio Rao <attilio.rao@citrix.com>,
-       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH v2 2/2] Xen: Document the semantic of the
- pagetable_reserve PVOPS
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Wed, 15 Aug 2012, David Vrabel wrote:
-> On 14/08/12 15:12, Attilio Rao wrote:
-> > On 14/08/12 14:57, David Vrabel wrote:
-> >> On 14/08/12 13:24, Attilio Rao wrote:
-> >> 
-> >>> The informations added on the hook are: - Native behaviour - Xen 
-> >>> specific behaviour - Logic behind the Xen specific behaviour
-> >>> 
-> >> These are implementation details and should be documented with the
-> >>  implementations (if necessary).
-> >> 
-> > 
-> > In this specific case, implementation details are very valuable to 
-> > understand the semantic of operations, this is why I added them 
-> > there. I think, at least for this case, this is the best trade-off.
-> 
-> Documenting the implementation details will be useful for reviewing or
-> refactoring the pv-ops but I don't think it useful in the longer term
-> for it to be included in the API documentation upstream.
-> 
-> >>> - PVOPS semantic
-> >>> 
-> >> This is the interesting stuff.
-> >> 
-> >> This particular pvop seems a little odd really.  It might make more
-> >> sense if it took a third parameter for pgt_buf_top.
-> > 
-> > The thing is that this work (documenting PVOPS) should help in 
-> > understanding the logic behind some PVOPS and possibly
-> > improve/rework them. For this stage, I agreed with Konrad to keep the
-> > changes as small as possible. Once the documentation about the
-> > semantic is in place we can think about ways to improve things more
-> > effectively (for example, in some cases we may want to rewrite the
-> > PVOP completely).
-> 
-> After looking at it some more, I think this pv-ops is unnecessary. How
-> about the following patch to just remove it completely?
-> 
-> I've only smoke-tested 32-bit and 64-bit dom0 but I think the reasoning
-> is sound.
-
-Do you have more then 4G to dom0 on those boxes?
-It certainly fixed a serious crash at the time it was introduced, see
-http://marc.info/?l=linux-kernel&m=129901609503574 and
-http://marc.info/?l=linux-kernel&m=130133909408229. Unless something big
-changed in kernel_physical_mapping_init, I think we still need it.
-Depending on the e820 of your test box, the kernel could crash (or not),
-possibly in different places.
-
-
-> >> "@pagetable_reserve is used to reserve a range of PFNs used for the
-> >> kernel direct mapping page tables and cleans-up any PFNs that ended
-> >> up not being used for the tables.
-> >> 
-> >> It shall reserve the range (start, end] with memblock_reserve(). It
-> >> shall prepare PFNs in the range (end, pgt_buf_top] for general (non
-> >> page table) use.
-> >> 
-> >> It shall only be called in init_memory_mapping() after the direct 
-> >> mapping tables have been constructed."
-> >> 
-> >> Having said that, I couldn't immediately see where pages in (end, 
-> >> pgt_buf_top] was getting set RO.  Can you point me to where it's 
-> >> done?
-> >> 
-> > 
-> > As mentioned in the comment, please look at xen_set_pte_init().
-> 
-> xen_set_pte_init() only ensures it doesn't set the PTE as writable if it
-> is already present and read-only.
-
-look at mask_rw_pte and read the threads linked above, unfortunately it
-is not that simple.
-
-
-> David
-> 
-> 8<----------------------
-> x86: remove x86_init.mapping.pagetable_reserve paravirt op
-> 
-> The x86_init.mapping.pagetable_reserve paravirt op is used for Xen
-> guests to set the writable flag for the mapping of (pgt_buf_end,
-> pgt_buf_top].  This is not necessary as these pages are never set as
-> read-only as they have never contained page tables.
-
-Is this actually true? It is possible when pagetable pages are
-allocated by alloc_low_page.
-
-
-> When running as a Xen guest, the initial page tables are provided by
-> Xen (these are reserved with memblock_reserve() in
-> xen_setup_kernel_pagetable()) and constructed in brk space (for 32-bit
-> guests) or in the kernel's .data section (for 64-bit guests, see
-> head_64.S).
-> 
-> Since these are all marked as reserved, (pgt_buf_start, pgt_buf_top]
-> does not overlap with them and the mappings for these PFNs will be
-> read-write.
-
-We are talking about pagetable pages built by
-kernel_physical_mapping_init.
-
-
-> Since Xen doesn't need to change the mapping its implementation
-> becomes the same as a native and we can simply remove this pv-op
-> completely.
-
-I don't think so.
-
-
-
-> Signed-off-by: David Vrabel <david.vrabel@citrix.com>
-> ---
->  arch/x86/include/asm/pgtable_types.h |    1 -
->  arch/x86/include/asm/x86_init.h      |   12 ------------
->  arch/x86/kernel/x86_init.c           |    4 ----
->  arch/x86/mm/init.c                   |   22 +++-------------------
->  arch/x86/xen/mmu.c                   |   19 ++-----------------
->  5 files changed, 5 insertions(+), 53 deletions(-)
-> 
-> diff --git a/arch/x86/include/asm/pgtable_types.h b/arch/x86/include/asm/pgtable_types.h
-> index 013286a..0a11293 100644
-> --- a/arch/x86/include/asm/pgtable_types.h
-> +++ b/arch/x86/include/asm/pgtable_types.h
-> @@ -301,7 +301,6 @@ int phys_mem_access_prot_allowed(struct file *file, unsigned long pfn,
->  /* Install a pte for a particular vaddr in kernel space. */
->  void set_pte_vaddr(unsigned long vaddr, pte_t pte);
->  
-> -extern void native_pagetable_reserve(u64 start, u64 end);
->  #ifdef CONFIG_X86_32
->  extern void native_pagetable_setup_start(pgd_t *base);
->  extern void native_pagetable_setup_done(pgd_t *base);
-> diff --git a/arch/x86/include/asm/x86_init.h b/arch/x86/include/asm/x86_init.h
-> index 38155f6..b527dd4 100644
-> --- a/arch/x86/include/asm/x86_init.h
-> +++ b/arch/x86/include/asm/x86_init.h
-> @@ -69,17 +69,6 @@ struct x86_init_oem {
->  };
->  
->  /**
-> - * struct x86_init_mapping - platform specific initial kernel pagetable setup
-> - * @pagetable_reserve:      reserve a range of addresses for kernel pagetable usage
-> - *
-> - * For more details on the purpose of this hook, look in
-> - * init_memory_mapping and the commit that added it.
-> - */
-> -struct x86_init_mapping {
-> -    void (*pagetable_reserve)(u64 start, u64 end);
-> -};
-> -
-> -/**
->   * struct x86_init_paging - platform specific paging functions
->   * @pagetable_setup_start:  platform specific pre paging_init() call
->   * @pagetable_setup_done:   platform specific post paging_init() call
-> @@ -135,7 +124,6 @@ struct x86_init_ops {
->      struct x86_init_mpparse         mpparse;
->      struct x86_init_irqs            irqs;
->      struct x86_init_oem             oem;
-> -    struct x86_init_mapping         mapping;
->      struct x86_init_paging          paging;
->      struct x86_init_timers          timers;
->      struct x86_init_iommu           iommu;
-> diff --git a/arch/x86/kernel/x86_init.c b/arch/x86/kernel/x86_init.c
-> index 9f3167e..040c05f 100644
-> --- a/arch/x86/kernel/x86_init.c
-> +++ b/arch/x86/kernel/x86_init.c
-> @@ -63,10 +63,6 @@ struct x86_init_ops x86_init __initdata = {
->              .banner                 = default_banner,
->      },
->  
-> -    .mapping = {
-> -            .pagetable_reserve              = native_pagetable_reserve,
-> -    },
-> -
->      .paging = {
->              .pagetable_setup_start  = native_pagetable_setup_start,
->              .pagetable_setup_done   = native_pagetable_setup_done,
-> diff --git a/arch/x86/mm/init.c b/arch/x86/mm/init.c
-> index e0e6990..c449873 100644
-> --- a/arch/x86/mm/init.c
-> +++ b/arch/x86/mm/init.c
-> @@ -90,11 +90,6 @@ static void __init find_early_table_space(struct map_range *mr, unsigned long en
->              (pgt_buf_top << PAGE_SHIFT) - 1);
->  }
->  
-> -void __init native_pagetable_reserve(u64 start, u64 end)
-> -{
-> -    memblock_reserve(start, end - start);
-> -}
-> -
->  #ifdef CONFIG_X86_32
->  #define NR_RANGE_MR 3
->  #else /* CONFIG_X86_64 */
-> @@ -283,22 +278,11 @@ unsigned long __init_refok init_memory_mapping(unsigned long start,
->  
->      /*
->       * Reserve the kernel pagetable pages we used (pgt_buf_start -
-> -     * pgt_buf_end) and free the other ones (pgt_buf_end - pgt_buf_top)
-> -     * so that they can be reused for other purposes.
-> -     *
-> -     * On native it just means calling memblock_reserve, on Xen it also
-> -     * means marking RW the pagetable pages that we allocated before
-> -     * but that haven't been used.
-> -     *
-> -     * In fact on xen we mark RO the whole range pgt_buf_start -
-> -     * pgt_buf_top, because we have to make sure that when
-> -     * init_memory_mapping reaches the pagetable pages area, it maps
-> -     * RO all the pagetable pages, including the ones that are beyond
-> -     * pgt_buf_end at that time.
-> +     * pgt_buf_end).
->       */
->      if (!after_bootmem && pgt_buf_end > pgt_buf_start)
-> -            x86_init.mapping.pagetable_reserve(PFN_PHYS(pgt_buf_start),
-> -                            PFN_PHYS(pgt_buf_end));
-> +            memblock_reserve(PFN_PHYS(pgt_buf_start),
-> +                             PFN_PHYS(pgt_buf_end) - PFN_PHYS(pgt_buf_start));
->  
->      if (!after_bootmem)
->              early_memtest(start, end);
-> diff --git a/arch/x86/xen/mmu.c b/arch/x86/xen/mmu.c
-> index b65a761..e55dfc0 100644
-> --- a/arch/x86/xen/mmu.c
-> +++ b/arch/x86/xen/mmu.c
-> @@ -1178,20 +1178,6 @@ static void __init xen_pagetable_setup_start(pgd_t *base)
->  {
->  }
->  
-> -static __init void xen_mapping_pagetable_reserve(u64 start, u64 end)
-> -{
-> -    /* reserve the range used */
-> -    native_pagetable_reserve(start, end);
-> -
-> -    /* set as RW the rest */
-> -    printk(KERN_DEBUG "xen: setting RW the range %llx - %llx\n", end,
-> -                    PFN_PHYS(pgt_buf_top));
-> -    while (end < PFN_PHYS(pgt_buf_top)) {
-> -            make_lowmem_page_readwrite(__va(end));
-> -            end += PAGE_SIZE;
-> -    }
-> -}
-> -
->  static void xen_post_allocator_init(void);
->  
->  static void __init xen_pagetable_setup_done(pgd_t *base)
-> @@ -2067,7 +2053,6 @@ static const struct pv_mmu_ops xen_mmu_ops __initconst = {
->  
->  void __init xen_init_mmu_ops(void)
->  {
-> -    x86_init.mapping.pagetable_reserve = xen_mapping_pagetable_reserve;
->      x86_init.paging.pagetable_setup_start = xen_pagetable_setup_start;
->      x86_init.paging.pagetable_setup_done = xen_pagetable_setup_done;
->      pv_mmu_ops = xen_mmu_ops;
-> -- 
-> 1.7.2.5
-> 
-> 
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<alpine.DEB.2.02.1208151824250.2278@kaball.uk.xensource.com> b/test/corpus/<alpine.DEB.2.02.1208151824250.2278@kaball.uk.xensource.com>
deleted file mode 100644 (file)
index 6a0d57c..0000000
+++ /dev/null
@@ -1,164 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Aug 15 18:30:39 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 15 Aug 2012 18:30:39 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T1hQT-0007Pl-7V
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 15 Aug 2012 18:30:39 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T1hM8-0004Av-NF; Wed, 15 Aug 2012 17:26:08 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1T1hM7-0004Ap-ED
-       for xen-devel@lists.xen.org; Wed, 15 Aug 2012 17:26:07 +0000
-Received: from [85.158.139.83:32309] by server-10.bemta-5.messagelabs.com id
-       2F/9C-13125-EABDB205; Wed, 15 Aug 2012 17:26:06 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-4.tower-182.messagelabs.com!1345051566!25595208!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDkxOTE=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 21747 invoked from network); 15 Aug 2012 17:26:06 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-4.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
-       15 Aug 2012 17:26:06 -0000
-X-IronPort-AV: E=Sophos;i="4.77,774,1336348800"; d="scan'208";a="14024949"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       15 Aug 2012 17:26:05 +0000
-Received: from kaball.uk.xensource.com (10.80.2.59) by
-       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
-       8.3.213.0; Wed, 15 Aug 2012 18:26:05 +0100
-Date: Wed, 15 Aug 2012 18:25:49 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-X-Sender: sstabellini@kaball.uk.xensource.com
-To: Attilio Rao <attilio.rao@citrix.com>
-In-Reply-To: <1344947062-4796-2-git-send-email-attilio.rao@citrix.com>
-Message-ID: <alpine.DEB.2.02.1208151824250.2278@kaball.uk.xensource.com>
-References: <1344947062-4796-1-git-send-email-attilio.rao@citrix.com>
-       <1344947062-4796-2-git-send-email-attilio.rao@citrix.com>
-User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
-MIME-Version: 1.0
-Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH v2 1/2] XEN,
- X86: Improve semantic support for pagetable_reserve PVOPS
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Tue, 14 Aug 2012, Attilio Rao wrote:
-> - Allow xen_mapping_pagetable_reserve() to handle a start different from
->   pgt_buf_start, but still bigger than it.
-> - Add checks to xen_mapping_pagetable_reserve() and native_pagetable_reserve()
->   for verifying start and end are contained in the range
->   [pgt_buf_start, pgt_buf_top].
-> - In xen_mapping_pagetable_reserve(), change printk into pr_debug.
-> - In xen_mapping_pagetable_reserve(), print out diagnostic only if there is
->   an actual need to do that (or, in other words, if there are actually some
->   pages going to switch from RO to RW).
-> 
-> Signed-off-by: Attilio Rao <attilio.rao@citrix.com>
-> ---
->  arch/x86/mm/init.c |    4 ++++
->  arch/x86/xen/mmu.c |   22 ++++++++++++++++++++--
->  2 files changed, 24 insertions(+), 2 deletions(-)
-> 
-> diff --git a/arch/x86/mm/init.c b/arch/x86/mm/init.c
-> index e0e6990..c5849b6 100644
-> --- a/arch/x86/mm/init.c
-> +++ b/arch/x86/mm/init.c
-> @@ -92,6 +92,10 @@ static void __init find_early_table_space(struct map_range *mr, unsigned long en
->  
->  void __init native_pagetable_reserve(u64 start, u64 end)
->  {
-> +    if (start < PFN_PHYS(pgt_buf_start) || end > PFN_PHYS(pgt_buf_top))
-> +            panic("Invalid address range: [%llu - %llu] should be a subset of [%llu - %llu]\n"
-
-code style (you can check whether your patch breaks the code style with
-scripts/checkpatch.pl)
-
-> +                    start, end, PFN_PHYS(pgt_buf_start),
-> +                    PFN_PHYS(pgt_buf_top));
->      memblock_reserve(start, end - start);
->  }
->  
-> diff --git a/arch/x86/xen/mmu.c b/arch/x86/xen/mmu.c
-> index b65a761..66d73a2 100644
-> --- a/arch/x86/xen/mmu.c
-> +++ b/arch/x86/xen/mmu.c
-> @@ -1180,12 +1180,30 @@ static void __init xen_pagetable_setup_start(pgd_t *base)
->  
->  static __init void xen_mapping_pagetable_reserve(u64 start, u64 end)
->  {
-> +    u64 begin;
-> +
-> +    begin = PFN_PHYS(pgt_buf_start);
-> +
-> +    if (start < begin || end > PFN_PHYS(pgt_buf_top))
-> +            panic("Invalid address range: [%llu - %llu] should be a subset of [%llu - %llu]\n"
-
-code style
-
-> +                    start, end, begin, PFN_PHYS(pgt_buf_top));
-> +
-> +    /* set RW the initial range */
-> +    if  (start != begin)
-> +            pr_debug("xen: setting RW the range %llx - %llx\n",
-> +                    begin, start);
-> +    while (begin < start) {
-> +            make_lowmem_page_readwrite(__va(begin));
-> +            begin += PAGE_SIZE;
-> +    }
-> +
->      /* reserve the range used */
->      native_pagetable_reserve(start, end);
->  
->      /* set as RW the rest */
-> -    printk(KERN_DEBUG "xen: setting RW the range %llx - %llx\n", end,
-> -                    PFN_PHYS(pgt_buf_top));
-> +    if (end != PFN_PHYS(pgt_buf_top))
-> +            pr_debug("xen: setting RW the range %llx - %llx\n",
-> +                    end, PFN_PHYS(pgt_buf_top));
->      while (end < PFN_PHYS(pgt_buf_top)) {
->              make_lowmem_page_readwrite(__va(end));
->              end += PAGE_SIZE;
-> -- 
-> 1.7.2.5
-> 
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<alpine.DEB.2.02.1208151833110.2278@kaball.uk.xensource.com> b/test/corpus/<alpine.DEB.2.02.1208151833110.2278@kaball.uk.xensource.com>
deleted file mode 100644 (file)
index 011bb32..0000000
+++ /dev/null
@@ -1,166 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Aug 15 18:37:57 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 15 Aug 2012 18:37:57 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T1hXX-0007RP-Bh
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 15 Aug 2012 18:37:57 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T1hTe-0004Ty-0M; Wed, 15 Aug 2012 17:33:54 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1T1hTb-0004Tt-Dl
-       for xen-devel@lists.xen.org; Wed, 15 Aug 2012 17:33:51 +0000
-Received: from [85.158.143.99:32396] by server-3.bemta-4.messagelabs.com id
-       4F/FF-09529-E7DDB205; Wed, 15 Aug 2012 17:33:50 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-4.tower-216.messagelabs.com!1345052028!23073282!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDkxOTE=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 14253 invoked from network); 15 Aug 2012 17:33:49 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-4.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
-       15 Aug 2012 17:33:49 -0000
-X-IronPort-AV: E=Sophos;i="4.77,774,1336348800"; d="scan'208";a="14025024"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       15 Aug 2012 17:33:48 +0000
-Received: from kaball.uk.xensource.com (10.80.2.59) by
-       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
-       8.3.213.0; Wed, 15 Aug 2012 18:33:48 +0100
-Date: Wed, 15 Aug 2012 18:33:33 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-X-Sender: sstabellini@kaball.uk.xensource.com
-To: Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-In-Reply-To: <alpine.DEB.2.02.1208151824250.2278@kaball.uk.xensource.com>
-Message-ID: <alpine.DEB.2.02.1208151833110.2278@kaball.uk.xensource.com>
-References: <1344947062-4796-1-git-send-email-attilio.rao@citrix.com>
-       <1344947062-4796-2-git-send-email-attilio.rao@citrix.com>
-       <alpine.DEB.2.02.1208151824250.2278@kaball.uk.xensource.com>
-User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
-MIME-Version: 1.0
-Cc: Attilio Rao <attilio.rao@citrix.com>,
-       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH v2 1/2] XEN,
- X86: Improve semantic support for pagetable_reserve PVOPS
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-You can add me acked-by, once you do these changes
-
-On Wed, 15 Aug 2012, Stefano Stabellini wrote:
-> On Tue, 14 Aug 2012, Attilio Rao wrote:
-> > - Allow xen_mapping_pagetable_reserve() to handle a start different from
-> >   pgt_buf_start, but still bigger than it.
-> > - Add checks to xen_mapping_pagetable_reserve() and native_pagetable_reserve()
-> >   for verifying start and end are contained in the range
-> >   [pgt_buf_start, pgt_buf_top].
-> > - In xen_mapping_pagetable_reserve(), change printk into pr_debug.
-> > - In xen_mapping_pagetable_reserve(), print out diagnostic only if there is
-> >   an actual need to do that (or, in other words, if there are actually some
-> >   pages going to switch from RO to RW).
-> > 
-> > Signed-off-by: Attilio Rao <attilio.rao@citrix.com>
-> > ---
-> >  arch/x86/mm/init.c |    4 ++++
-> >  arch/x86/xen/mmu.c |   22 ++++++++++++++++++++--
-> >  2 files changed, 24 insertions(+), 2 deletions(-)
-> > 
-> > diff --git a/arch/x86/mm/init.c b/arch/x86/mm/init.c
-> > index e0e6990..c5849b6 100644
-> > --- a/arch/x86/mm/init.c
-> > +++ b/arch/x86/mm/init.c
-> > @@ -92,6 +92,10 @@ static void __init find_early_table_space(struct map_range *mr, unsigned long en
-> >  
-> >  void __init native_pagetable_reserve(u64 start, u64 end)
-> >  {
-> > +  if (start < PFN_PHYS(pgt_buf_start) || end > PFN_PHYS(pgt_buf_top))
-> > +          panic("Invalid address range: [%llu - %llu] should be a subset of [%llu - %llu]\n"
-> 
-> code style (you can check whether your patch breaks the code style with
-> scripts/checkpatch.pl)
-> 
-> > +                  start, end, PFN_PHYS(pgt_buf_start),
-> > +                  PFN_PHYS(pgt_buf_top));
-> >    memblock_reserve(start, end - start);
-> >  }
-> >  
-> > diff --git a/arch/x86/xen/mmu.c b/arch/x86/xen/mmu.c
-> > index b65a761..66d73a2 100644
-> > --- a/arch/x86/xen/mmu.c
-> > +++ b/arch/x86/xen/mmu.c
-> > @@ -1180,12 +1180,30 @@ static void __init xen_pagetable_setup_start(pgd_t *base)
-> >  
-> >  static __init void xen_mapping_pagetable_reserve(u64 start, u64 end)
-> >  {
-> > +  u64 begin;
-> > +
-> > +  begin = PFN_PHYS(pgt_buf_start);
-> > +
-> > +  if (start < begin || end > PFN_PHYS(pgt_buf_top))
-> > +          panic("Invalid address range: [%llu - %llu] should be a subset of [%llu - %llu]\n"
-> 
-> code style
-> 
-> > +                  start, end, begin, PFN_PHYS(pgt_buf_top));
-> > +
-> > +  /* set RW the initial range */
-> > +  if  (start != begin)
-> > +          pr_debug("xen: setting RW the range %llx - %llx\n",
-> > +                  begin, start);
-> > +  while (begin < start) {
-> > +          make_lowmem_page_readwrite(__va(begin));
-> > +          begin += PAGE_SIZE;
-> > +  }
-> > +
-> >    /* reserve the range used */
-> >    native_pagetable_reserve(start, end);
-> >  
-> >    /* set as RW the rest */
-> > -  printk(KERN_DEBUG "xen: setting RW the range %llx - %llx\n", end,
-> > -                  PFN_PHYS(pgt_buf_top));
-> > +  if (end != PFN_PHYS(pgt_buf_top))
-> > +          pr_debug("xen: setting RW the range %llx - %llx\n",
-> > +                  end, PFN_PHYS(pgt_buf_top));
-> >    while (end < PFN_PHYS(pgt_buf_top)) {
-> >            make_lowmem_page_readwrite(__va(end));
-> >            end += PAGE_SIZE;
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<alpine.DEB.2.02.1208151844230.2278@kaball.uk.xensource.com> b/test/corpus/<alpine.DEB.2.02.1208151844230.2278@kaball.uk.xensource.com>
deleted file mode 100644 (file)
index f0e6f4a..0000000
+++ /dev/null
@@ -1,131 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Aug 15 18:50:59 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 15 Aug 2012 18:50:59 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T1hk8-0007TF-RK
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 15 Aug 2012 18:50:59 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T1hgG-0004mA-Lx; Wed, 15 Aug 2012 17:46:56 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1T1hgE-0004m5-Ld
-       for xen-devel@lists.xen.org; Wed, 15 Aug 2012 17:46:54 +0000
-Received: from [85.158.139.83:11774] by server-12.bemta-5.messagelabs.com id
-       83/9F-22359-D80EB205; Wed, 15 Aug 2012 17:46:53 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-11.tower-182.messagelabs.com!1345052813!21087712!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDkxOTE=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 4979 invoked from network); 15 Aug 2012 17:46:53 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-11.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
-       15 Aug 2012 17:46:53 -0000
-X-IronPort-AV: E=Sophos;i="4.77,774,1336348800"; d="scan'208";a="14025129"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       15 Aug 2012 17:46:30 +0000
-Received: from kaball.uk.xensource.com (10.80.2.59) by
-       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
-       8.3.213.0; Wed, 15 Aug 2012 18:46:30 +0100
-Date: Wed, 15 Aug 2012 18:46:14 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-X-Sender: sstabellini@kaball.uk.xensource.com
-To: Attilio Rao <attilio.rao@citrix.com>
-In-Reply-To: <502BD943.8030701@citrix.com>
-Message-ID: <alpine.DEB.2.02.1208151844230.2278@kaball.uk.xensource.com>
-References: <1344947062-4796-1-git-send-email-attilio.rao@citrix.com>
-       <1344947062-4796-2-git-send-email-attilio.rao@citrix.com>
-       <alpine.DEB.2.02.1208151824250.2278@kaball.uk.xensource.com>
-       <502BD943.8030701@citrix.com>
-User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
-       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH v2 1/2] XEN,
- X86: Improve semantic support for pagetable_reserve PVOPS
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Wed, 15 Aug 2012, Attilio Rao wrote:
-> On 15/08/12 18:25, Stefano Stabellini wrote:
-> > On Tue, 14 Aug 2012, Attilio Rao wrote:
-> >    
-> >> - Allow xen_mapping_pagetable_reserve() to handle a start different from
-> >>    pgt_buf_start, but still bigger than it.
-> >> - Add checks to xen_mapping_pagetable_reserve() and native_pagetable_reserve()
-> >>    for verifying start and end are contained in the range
-> >>    [pgt_buf_start, pgt_buf_top].
-> >> - In xen_mapping_pagetable_reserve(), change printk into pr_debug.
-> >> - In xen_mapping_pagetable_reserve(), print out diagnostic only if there is
-> >>    an actual need to do that (or, in other words, if there are actually some
-> >>    pages going to switch from RO to RW).
-> >>
-> >> Signed-off-by: Attilio Rao<attilio.rao@citrix.com>
-> >> ---
-> >>   arch/x86/mm/init.c |    4 ++++
-> >>   arch/x86/xen/mmu.c |   22 ++++++++++++++++++++--
-> >>   2 files changed, 24 insertions(+), 2 deletions(-)
-> >>
-> >> diff --git a/arch/x86/mm/init.c b/arch/x86/mm/init.c
-> >> index e0e6990..c5849b6 100644
-> >> --- a/arch/x86/mm/init.c
-> >> +++ b/arch/x86/mm/init.c
-> >> @@ -92,6 +92,10 @@ static void __init find_early_table_space(struct map_range *mr, unsigned long en
-> >>
-> >>   void __init native_pagetable_reserve(u64 start, u64 end)
-> >>   {
-> >> + if (start<  PFN_PHYS(pgt_buf_start) || end>  PFN_PHYS(pgt_buf_top))
-> >> +         panic("Invalid address range: [%llu - %llu] should be a subset of [%llu - %llu]\n"
-> >>      
-> > code style (you can check whether your patch breaks the code style with
-> > scripts/checkpatch.pl)
-> >    
-> 
-> I actually did before to submit, it reported 0 errors/warning.
-
-strange, that really looks like a line over 80 chars
-
-
-> Do you have an handy link on where I can find a style guide for Linux 
-> kernel? I tried to follow what other parts of the code do.
-
-Documentation/CodingStyle
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<alpine.DEB.2.02.1208151846410.2278@kaball.uk.xensource.com> b/test/corpus/<alpine.DEB.2.02.1208151846410.2278@kaball.uk.xensource.com>
deleted file mode 100644 (file)
index 9fe2c43..0000000
+++ /dev/null
@@ -1,132 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Aug 15 18:51:02 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 15 Aug 2012 18:51:02 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T1hkC-0007Tb-8e
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 15 Aug 2012 18:51:02 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T1hgT-0004nJ-9y; Wed, 15 Aug 2012 17:47:09 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1T1hgR-0004n6-D4
-       for xen-devel@lists.xen.org; Wed, 15 Aug 2012 17:47:07 +0000
-Received: from [85.158.143.99:48525] by server-3.bemta-4.messagelabs.com id
-       65/98-09529-A90EB205; Wed, 15 Aug 2012 17:47:06 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-4.tower-216.messagelabs.com!1345052826!23074472!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDkxOTE=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 32552 invoked from network); 15 Aug 2012 17:47:06 -0000
-Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-4.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
-       15 Aug 2012 17:47:06 -0000
-X-IronPort-AV: E=Sophos;i="4.77,774,1336348800"; d="scan'208";a="14025132"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       15 Aug 2012 17:47:06 +0000
-Received: from kaball.uk.xensource.com (10.80.2.59) by
-       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
-       8.3.213.0; Wed, 15 Aug 2012 18:47:06 +0100
-Date: Wed, 15 Aug 2012 18:46:50 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-X-Sender: sstabellini@kaball.uk.xensource.com
-To: Attilio Rao <attilio.rao@citrix.com>
-In-Reply-To: <1344947062-4796-3-git-send-email-attilio.rao@citrix.com>
-Message-ID: <alpine.DEB.2.02.1208151846410.2278@kaball.uk.xensource.com>
-References: <1344947062-4796-1-git-send-email-attilio.rao@citrix.com>
-       <1344947062-4796-3-git-send-email-attilio.rao@citrix.com>
-User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
-MIME-Version: 1.0
-Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       T_RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH v2 2/2] Xen: Document the semantic of the
- pagetable_reserve PVOPS
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Tue, 14 Aug 2012, Attilio Rao wrote:
-> The informations added on the hook are:
-> - Native behaviour
-> - Xen specific behaviour
-> - Logic behind the Xen specific behaviour
-> - PVOPS semantic
-> 
-> Signed-off-by: Attilio Rao <attilio.rao@citrix.com>
-
-Acked-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-
->  arch/x86/include/asm/x86_init.h |   19 +++++++++++++++++--
->  1 files changed, 17 insertions(+), 2 deletions(-)
-> 
-> diff --git a/arch/x86/include/asm/x86_init.h b/arch/x86/include/asm/x86_init.h
-> index 38155f6..b22093c 100644
-> --- a/arch/x86/include/asm/x86_init.h
-> +++ b/arch/x86/include/asm/x86_init.h
-> @@ -72,8 +72,23 @@ struct x86_init_oem {
->   * struct x86_init_mapping - platform specific initial kernel pagetable setup
->   * @pagetable_reserve:      reserve a range of addresses for kernel pagetable usage
->   *
-> - * For more details on the purpose of this hook, look in
-> - * init_memory_mapping and the commit that added it.
-> + * It does reserve a range of pages, to be used as pagetable pages.
-> + * The start and end parameters are expected to be contained in the
-> + * [pgt_buf_start, pgt_buf_top] range.
-> + * The native implementation reserves the pages via the memblock_reserve()
-> + * interface.
-> + * The Xen implementation, besides reserving the range via memblock_reserve(),
-> + * also sets RW the remaining pages contained in the ranges
-> + * [pgt_buf_start, start) and [end, pgt_buf_top).
-> + * This is needed because the range [pgt_buf_start, pgt_buf_top] was
-> + * previously mapped read-only by xen_set_pte_init: when running
-> + * on Xen all the pagetable pages need to be mapped read-only in order to
-> + * avoid protection faults from the hypervisor. However, once the correct
-> + * amount of pages is reserved for the pagetables, all the others contained
-> + * in the range must be set to RW so that they can be correctly recycled by
-> + * the VM subsystem.
-> + * This operation is meant to be performed only during init_memory_mapping(),
-> + * just after space for the kernel direct mapping tables is found.
->   */
->  struct x86_init_mapping {
->      void (*pagetable_reserve)(u64 start, u64 end);
-> -- 
-> 1.7.2.5
-> 
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<alpine.DEB.2.02.1208161053350.2278@kaball.uk.xensource.com> b/test/corpus/<alpine.DEB.2.02.1208161053350.2278@kaball.uk.xensource.com>
deleted file mode 100644 (file)
index c6d3cfa..0000000
+++ /dev/null
@@ -1,144 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Aug 16 10:58:45 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 16 Aug 2012 10:58:45 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T1wqh-0006K9-4e
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 16 Aug 2012 10:58:45 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T1wmH-0004fe-Na; Thu, 16 Aug 2012 09:54:09 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1T1wmF-0004fZ-PW
-       for xen-devel@lists.xen.org; Thu, 16 Aug 2012 09:54:08 +0000
-Received: from [85.158.138.51:25904] by server-5.bemta-3.messagelabs.com id
-       0A/6F-08865-E33CC205; Thu, 16 Aug 2012 09:54:06 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-11.tower-174.messagelabs.com!1345110846!28578127!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDkxOTE=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 25408 invoked from network); 16 Aug 2012 09:54:06 -0000
-Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-11.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
-       16 Aug 2012 09:54:06 -0000
-X-IronPort-AV: E=Sophos;i="4.77,778,1336348800"; d="scan'208";a="14035485"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       16 Aug 2012 09:54:06 +0000
-Received: from kaball.uk.xensource.com (10.80.2.59) by
-       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
-       8.3.213.0; Thu, 16 Aug 2012 10:54:05 +0100
-Date: Thu, 16 Aug 2012 10:53:49 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-X-Sender: sstabellini@kaball.uk.xensource.com
-To: Attilio Rao <attilio.rao@citrix.com>
-In-Reply-To: <502BEEAD.7030906@citrix.com>
-Message-ID: <alpine.DEB.2.02.1208161053350.2278@kaball.uk.xensource.com>
-References: <1344947062-4796-1-git-send-email-attilio.rao@citrix.com>
-       <1344947062-4796-2-git-send-email-attilio.rao@citrix.com>
-       <alpine.DEB.2.02.1208151824250.2278@kaball.uk.xensource.com>
-       <502BD943.8030701@citrix.com>
-       <alpine.DEB.2.02.1208151844230.2278@kaball.uk.xensource.com>
-       <502BEEAD.7030906@citrix.com>
-User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
-       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH v2 1/2] XEN,
- X86: Improve semantic support for pagetable_reserve PVOPS
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Wed, 15 Aug 2012, Attilio Rao wrote:
-> On 15/08/12 18:46, Stefano Stabellini wrote:
-> > On Wed, 15 Aug 2012, Attilio Rao wrote:
-> >    
-> >> On 15/08/12 18:25, Stefano Stabellini wrote:
-> >>      
-> >>> On Tue, 14 Aug 2012, Attilio Rao wrote:
-> >>>
-> >>>        
-> >>>> - Allow xen_mapping_pagetable_reserve() to handle a start different from
-> >>>>     pgt_buf_start, but still bigger than it.
-> >>>> - Add checks to xen_mapping_pagetable_reserve() and native_pagetable_reserve()
-> >>>>     for verifying start and end are contained in the range
-> >>>>     [pgt_buf_start, pgt_buf_top].
-> >>>> - In xen_mapping_pagetable_reserve(), change printk into pr_debug.
-> >>>> - In xen_mapping_pagetable_reserve(), print out diagnostic only if there is
-> >>>>     an actual need to do that (or, in other words, if there are actually some
-> >>>>     pages going to switch from RO to RW).
-> >>>>
-> >>>> Signed-off-by: Attilio Rao<attilio.rao@citrix.com>
-> >>>> ---
-> >>>>    arch/x86/mm/init.c |    4 ++++
-> >>>>    arch/x86/xen/mmu.c |   22 ++++++++++++++++++++--
-> >>>>    2 files changed, 24 insertions(+), 2 deletions(-)
-> >>>>
-> >>>> diff --git a/arch/x86/mm/init.c b/arch/x86/mm/init.c
-> >>>> index e0e6990..c5849b6 100644
-> >>>> --- a/arch/x86/mm/init.c
-> >>>> +++ b/arch/x86/mm/init.c
-> >>>> @@ -92,6 +92,10 @@ static void __init find_early_table_space(struct map_range *mr, unsigned long en
-> >>>>
-> >>>>    void __init native_pagetable_reserve(u64 start, u64 end)
-> >>>>    {
-> >>>> +       if (start<   PFN_PHYS(pgt_buf_start) || end>   PFN_PHYS(pgt_buf_top))
-> >>>> +               panic("Invalid address range: [%llu - %llu] should be a subset of [%llu - %llu]\n"
-> >>>>
-> >>>>          
-> >>> code style (you can check whether your patch breaks the code style with
-> >>> scripts/checkpatch.pl)
-> >>>
-> >>>        
-> >> I actually did before to submit, it reported 0 errors/warning.
-> >>      
-> > strange, that really looks like a line over 80 chars
-> >
-> >    
-> 
-> Actually code style explicitely says to not break strings because they 
-> want to retain the ability to grep. In FreeBSD this is the same and I 
-> think this is why checkpatch doesn't whine. I don't think there is a bug 
-> here.
-> 
-> Can I submit the patch as it is, then?
-
-it is ok for me
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<alpine.DEB.2.02.1208161200200.2278@kaball.uk.xensource.com> b/test/corpus/<alpine.DEB.2.02.1208161200200.2278@kaball.uk.xensource.com>
deleted file mode 100644 (file)
index 918d4b3..0000000
+++ /dev/null
@@ -1,218 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Aug 16 12:12:33 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 16 Aug 2012 12:12:33 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T1y06-0006d1-Rr
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 16 Aug 2012 12:12:33 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T1xwW-0008CU-Dm; Thu, 16 Aug 2012 11:08:48 +0000
-Received: from mail27.messagelabs.com ([193.109.254.147])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1T1xwU-0008Bu-Et
-       for xen-devel@lists.xen.org; Thu, 16 Aug 2012 11:08:46 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-15.tower-27.messagelabs.com!1345115278!2213343!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDkyODE=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 22029 invoked from network); 16 Aug 2012 11:07:58 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-15.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
-       16 Aug 2012 11:07:58 -0000
-X-IronPort-AV: E=Sophos;i="4.77,778,1336348800"; d="scan'208";a="14037330"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       16 Aug 2012 11:07:58 +0000
-Received: from kaball.uk.xensource.com (10.80.2.59) by
-       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
-       8.3.213.0; Thu, 16 Aug 2012 12:07:58 +0100
-Date: Thu, 16 Aug 2012 12:07:41 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-X-Sender: sstabellini@kaball.uk.xensource.com
-To: David Vrabel <david.vrabel@citrix.com>
-In-Reply-To: <502BF563.8010902@citrix.com>
-Message-ID: <alpine.DEB.2.02.1208161200200.2278@kaball.uk.xensource.com>
-References: <1344947062-4796-1-git-send-email-attilio.rao@citrix.com>
-       <1344947062-4796-3-git-send-email-attilio.rao@citrix.com>
-       <502A5964.2080509@citrix.com> <502A5CD0.8000201@citrix.com>
-       <502B85D1.8000606@citrix.com>
-       <alpine.DEB.2.02.1208151418380.2278@kaball.uk.xensource.com>
-       <502BF563.8010902@citrix.com>
-User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
-MIME-Version: 1.0
-Cc: Attilio Rao <attilio.rao@citrix.com>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
-       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH v2 2/2] Xen: Document the semantic of the
- pagetable_reserve PVOPS
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Wed, 15 Aug 2012, David Vrabel wrote:
-> On 15/08/12 14:55, Stefano Stabellini wrote:
-> > On Wed, 15 Aug 2012, David Vrabel wrote:
-> >> On 14/08/12 15:12, Attilio Rao wrote:
-> >>> On 14/08/12 14:57, David Vrabel wrote:
-> >>>> On 14/08/12 13:24, Attilio Rao wrote:
-> >> After looking at it some more, I think this pv-ops is unnecessary. How
-> >> about the following patch to just remove it completely?
-> >>
-> >> I've only smoke-tested 32-bit and 64-bit dom0 but I think the reasoning
-> >> is sound.
-> > 
-> > Do you have more then 4G to dom0 on those boxes?
-> 
-> I've tested with 6G now, both 64-bit and 32-bit with HIGHPTE.
-> 
-> > It certainly fixed a serious crash at the time it was introduced, see
-> > http://marc.info/?l=linux-kernel&m=129901609503574 and
-> > http://marc.info/?l=linux-kernel&m=130133909408229. Unless something big
-> > changed in kernel_physical_mapping_init, I think we still need it.
-> > Depending on the e820 of your test box, the kernel could crash (or not),
-> > possibly in different places.
-> >
-> >>>> Having said that, I couldn't immediately see where pages in (end, 
-> >>>> pgt_buf_top] was getting set RO.  Can you point me to where it's 
-> >>>> done?
-> >>>>
-> >>>
-> >>> As mentioned in the comment, please look at xen_set_pte_init().
-> >>
-> >> xen_set_pte_init() only ensures it doesn't set the PTE as writable if it
-> >> is already present and read-only.
-> > 
-> > look at mask_rw_pte and read the threads linked above, unfortunately it
-> > is not that simple.
-> 
-> Yes, I was remembering what 32-bit did here.
-> 
-> The 64-bit version is a bit confused and it often ends up /not/ clearing
-> RW for the direct mapping of the pages in the pgt_buf because any
-> existing RW mappings will be used as-is.  See phys_pte_init() which
-> checks for an existing mapping and only sets the PTE if it is not
-> already set.
-
-not all the pagetable pages might be already mapped, even if they are
-already hooked into the pagetable
-
-
-> pgd_populate(), pud_populate(), and pmd_populate() take care of clearing
-> RW for the newly allocated page table pages, so mask_rw_pte() only needs
-> to consider clearing RW for mappings of the the existing page table PFNs
-> which all lie outside the range (pt_buf_start, pt_buf_top].
-> 
-> This patch makes it more sensible, and makes removal of the pv-op safe
-> if pgt_buf lies outside the initial mapping.
-> 
-> index 04c1f61..2fd5e86 100644
-> --- a/arch/x86/xen/mmu.c
-> +++ b/arch/x86/xen/mmu.c
-> @@ -1400,14 +1400,13 @@ static pte_t __init mask_rw_pte(pte_t *ptep,
-> pte_t pte)
->      unsigned long pfn = pte_pfn(pte);
-> 
->      /*
-> -     * If the new pfn is within the range of the newly allocated
-> -     * kernel pagetable, and it isn't being mapped into an
-> -     * early_ioremap fixmap slot as a freshly allocated page, make sure
-> -     * it is RO.
-> +     * If this is a PTE of an early_ioremap fixmap slot but
-> +     * outside the range (pgt_buf_start, pgt_buf_top], then this
-> +     * PTE is mapping a PFN in the current page table.  Make
-> +     * sure it is RO.
->       */
-> -    if (((!is_early_ioremap_ptep(ptep) &&
-> -                    pfn >= pgt_buf_start && pfn < pgt_buf_top)) ||
-> -                    (is_early_ioremap_ptep(ptep) && pfn != (pgt_buf_end - 1)))
-> +    if (is_early_ioremap_ptep(ptep)
-> +        && (pfn < pgt_buf_start || pfn >= pgt_buf_top))
->              pte = pte_wrprotect(pte);
-> 
->      return pte;
-> 
-
-That's a mistake, you just inverted the condition!
-What if map_low_page is used to map a page already hooked into the
-pagetable? It should be RO while with your change it would be RW.
-Also you don't handle the case when map_low_page is used to map the very
-latest page, allocated and mapped by alloc_low_page, but
-still not hooked into the pagetable: that page needs to be RW.
-
-I believe you need more RAM than 6G to see all these issues.
-
-
-> >> 8<----------------------
-> >> x86: remove x86_init.mapping.pagetable_reserve paravirt op
-> >>
-> >> The x86_init.mapping.pagetable_reserve paravirt op is used for Xen
-> >> guests to set the writable flag for the mapping of (pgt_buf_end,
-> >> pgt_buf_top].  This is not necessary as these pages are never set as
-> >> read-only as they have never contained page tables.
-> > 
-> > Is this actually true? It is possible when pagetable pages are
-> > allocated by alloc_low_page.
-> 
-> These newly allocated page table pages will be set read-only when they
-> are linked into the page tables with pgd_populate(), pud_populate() and
-> friends.
-> 
-> >> When running as a Xen guest, the initial page tables are provided by
-> >> Xen (these are reserved with memblock_reserve() in
-> >> xen_setup_kernel_pagetable()) and constructed in brk space (for 32-bit
-> >> guests) or in the kernel's .data section (for 64-bit guests, see
-> >> head_64.S).
-> >>
-> >> Since these are all marked as reserved, (pgt_buf_start, pgt_buf_top]
-> >> does not overlap with them and the mappings for these PFNs will be
-> >> read-write.
-> > 
-> > We are talking about pagetable pages built by
-> > kernel_physical_mapping_init.
-> > 
-> > 
-> >> Since Xen doesn't need to change the mapping its implementation
-> >> becomes the same as a native and we can simply remove this pv-op
-> >> completely.
-> > 
-> > I don't think so.
-> 
-> David
-> 
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<alpine.DEB.2.02.1208161523420.4850@kaball.uk.xensource.com> b/test/corpus/<alpine.DEB.2.02.1208161523420.4850@kaball.uk.xensource.com>
deleted file mode 100644 (file)
index 5b1f563..0000000
+++ /dev/null
@@ -1,276 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Aug 16 15:52:51 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 16 Aug 2012 15:52:51 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T21RE-0007YV-Jw
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 16 Aug 2012 15:52:50 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T21N3-0005vW-Bn; Thu, 16 Aug 2012 14:48:25 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1T21N2-0005vR-33
-       for xen-devel@lists.xensource.com; Thu, 16 Aug 2012 14:48:24 +0000
-Received: from [85.158.138.51:23432] by server-3.bemta-3.messagelabs.com id
-       FC/EF-13809-7380D205; Thu, 16 Aug 2012 14:48:23 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-13.tower-174.messagelabs.com!1345128501!9954665!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDkyODE=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 723 invoked from network); 16 Aug 2012 14:48:22 -0000
-Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-13.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
-       16 Aug 2012 14:48:22 -0000
-X-IronPort-AV: E=Sophos;i="4.77,778,1336348800"; d="scan'208";a="14043273"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       16 Aug 2012 14:48:21 +0000
-Received: from kaball.uk.xensource.com (10.80.2.59) by
-       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
-       8.3.213.0; Thu, 16 Aug 2012 15:48:21 +0100
-Date: Thu, 16 Aug 2012 15:48:04 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-X-Sender: sstabellini@kaball.uk.xensource.com
-To: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>
-Message-ID: <alpine.DEB.2.02.1208161523420.4850@kaball.uk.xensource.com>
-User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
-MIME-Version: 1.0
-Content-Type: multipart/mixed;
-       boundary="1342847746-1591267471-1345128021=:4850"
-Content-ID: <alpine.DEB.2.02.1208161541090.4850@kaball.uk.xensource.com>
-Cc: "Tim Deegan \(3P\)" <Tim.Deegan@citrix.com>,
-       Ian Campbell <Ian.Campbell@citrix.com>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: [Xen-devel] [PATCH v3 0/6] ARM hypercall ABI: 64 bit ready
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
---1342847746-1591267471-1345128021=:4850
-Content-Type: text/plain; charset="US-ASCII"
-Content-ID: <alpine.DEB.2.02.1208161541091.4850@kaball.uk.xensource.com>
-
-Hi all,
-this patch series makes the necessary changes to make sure that the
-current ARM hypercall ABI can be used as-is on 64 bit ARM platforms:
-
-- it defines xen_ulong_t as uint64_t on ARM;
-- it introduces a new macro to handle guest pointers, called
-XEN_GUEST_HANDLE_PARAM (that has size 4 bytes on aarch and is going to
-have size 8 bytes on aarch64);
-- it replaces all the occurrences of XEN_GUEST_HANDLE in hypercall
-parameters with XEN_GUEST_HANDLE_PARAM.
-
-
-On x86 and ia64 things should stay exactly the same.
-
-On ARM all the unsigned long and the guest pointers that are members of
-a struct become size 8 byte (both aarch and aarch64).
-However guest pointers that are passed as hypercall arguments in
-registers are going to be 4 bytes on aarch and 8 bytes on aarch64.
-
-In this version of the patch series I have introduced conversion macros
-to convert a XEN_GUEST_HANDLE_PARAM into a XEN_GUEST_HANDLE a vice
-versa. Most of the problematic cases come from xen/arch/x86 code, in
-order to spot them I wrote a simple debug patch that change the
-definition of XEN_GUEST_HANDLE_PARAM to be different from
-XEN_GUEST_HANDLE on x86 too. I am attaching the debug patch to this
-email.
-
-
-
-It is based on Ian's arm-for-4.3 branch. 
-
-
-Changes in v3:
-- default all the guest_handle_* conversion macros to
-  XEN_GUEST_HANDLE_PARAM as return type;
-- add two new guest_handle_to_param and guest_handle_from_param macros
-  to do conversions.
-
-Changes in v2:
-
-- do not use an anonymous union in struct xen_add_to_physmap; 
-- do not replace the unsigned long in x86 specific calls;
-- do not replace the unsigned long in multicall_entry;
-- add missing include "xen.h" in version.h;
-- use proper printf flag for xen_ulong_t in python/xen/lowlevel/xc/xc;
-- add 2 missing #define _XEN_GUEST_HANDLE_PARAM for the compilation of
-the compat code;
-- add a patch to limit the maximum number of extents handled by
-do_memory_op;
-- remove the patch "introduce __lshrdi3 and __aeabi_llsr" that is
-already in the for-4.3 branch.
-
-
-
-Stefano Stabellini (6):
-      xen: improve changes to xen_add_to_physmap
-      xen: xen_ulong_t substitution
-      xen: change the limit of nr_extents to UINT_MAX >> MEMOP_EXTENT_SHIFT
-      xen: introduce XEN_GUEST_HANDLE_PARAM
-      xen: replace XEN_GUEST_HANDLE with XEN_GUEST_HANDLE_PARAM when appropriate
-      xen: more substitutions
-
- tools/firmware/hvmloader/pci.c           |    2 +-
- tools/python/xen/lowlevel/xc/xc.c        |    2 +-
- xen/arch/arm/domain.c                    |    2 +-
- xen/arch/arm/domctl.c                    |    2 +-
- xen/arch/arm/hvm.c                       |    2 +-
- xen/arch/arm/mm.c                        |    4 +-
- xen/arch/arm/physdev.c                   |    2 +-
- xen/arch/arm/sysctl.c                    |    2 +-
- xen/arch/x86/compat.c                    |    2 +-
- xen/arch/x86/cpu/mcheck/mce.c            |    2 +-
- xen/arch/x86/domain.c                    |    2 +-
- xen/arch/x86/domctl.c                    |    2 +-
- xen/arch/x86/efi/runtime.c               |    2 +-
- xen/arch/x86/hvm/hvm.c                   |   26 +++++++-------
- xen/arch/x86/microcode.c                 |    2 +-
- xen/arch/x86/mm.c                        |   36 ++++++++++++--------
- xen/arch/x86/mm/hap/hap.c                |    2 +-
- xen/arch/x86/mm/mem_event.c              |    2 +-
- xen/arch/x86/mm/paging.c                 |    2 +-
- xen/arch/x86/mm/shadow/common.c          |    2 +-
- xen/arch/x86/oprofile/backtrace.c        |    4 ++-
- xen/arch/x86/oprofile/xenoprof.c         |    6 ++--
- xen/arch/x86/physdev.c                   |    2 +-
- xen/arch/x86/platform_hypercall.c        |   10 ++++--
- xen/arch/x86/sysctl.c                    |    2 +-
- xen/arch/x86/traps.c                     |    2 +-
- xen/arch/x86/x86_32/mm.c                 |    2 +-
- xen/arch/x86/x86_32/traps.c              |    2 +-
- xen/arch/x86/x86_64/compat/mm.c          |   16 ++++++---
- xen/arch/x86/x86_64/cpu_idle.c           |    4 ++-
- xen/arch/x86/x86_64/cpufreq.c            |    4 ++-
- xen/arch/x86/x86_64/domain.c             |    2 +-
- xen/arch/x86/x86_64/mm.c                 |    2 +-
- xen/arch/x86/x86_64/platform_hypercall.c |    1 +
- xen/arch/x86/x86_64/traps.c              |    2 +-
- xen/common/compat/domain.c               |    2 +-
- xen/common/compat/grant_table.c          |    8 ++--
- xen/common/compat/memory.c               |    4 +-
- xen/common/compat/multicall.c            |    1 +
- xen/common/domain.c                      |    2 +-
- xen/common/domctl.c                      |    2 +-
- xen/common/event_channel.c               |    2 +-
- xen/common/grant_table.c                 |   36 ++++++++++----------
- xen/common/kernel.c                      |    4 +-
- xen/common/kexec.c                       |   16 ++++----
- xen/common/memory.c                      |    6 ++--
- xen/common/multicall.c                   |    2 +-
- xen/common/schedule.c                    |    2 +-
- xen/common/sysctl.c                      |    2 +-
- xen/common/xenoprof.c                    |    8 ++--
- xen/drivers/acpi/pmstat.c                |    2 +-
- xen/drivers/char/console.c               |    6 ++--
- xen/drivers/passthrough/iommu.c          |    2 +-
- xen/include/asm-arm/guest_access.h       |   19 +++++++++--
- xen/include/asm-arm/hypercall.h          |    2 +-
- xen/include/asm-arm/mm.h                 |    2 +-
- xen/include/asm-x86/guest_access.h       |   19 +++++++++--
- xen/include/asm-x86/hap.h                |    2 +-
- xen/include/asm-x86/hypercall.h          |   24 +++++++-------
- xen/include/asm-x86/mem_event.h          |    2 +-
- xen/include/asm-x86/mm.h                 |    8 ++--
- xen/include/asm-x86/paging.h             |    2 +-
- xen/include/asm-x86/processor.h          |    2 +-
- xen/include/asm-x86/shadow.h             |    2 +-
- xen/include/asm-x86/xenoprof.h           |    6 ++--
- xen/include/public/arch-arm.h            |   30 +++++++++++++----
- xen/include/public/arch-ia64.h           |    9 +++++
- xen/include/public/arch-x86/xen.h        |    9 +++++
- xen/include/public/memory.h              |   11 ++++--
- xen/include/public/version.h             |    4 ++-
- xen/include/xen/acpi.h                   |    4 +-
- xen/include/xen/hypercall.h              |   52 +++++++++++++++---------------
- xen/include/xen/iommu.h                  |    2 +-
- xen/include/xen/tmem_xen.h               |    2 +-
- xen/include/xsm/xsm.h                    |    4 +-
- xen/xsm/dummy.c                          |    2 +-
- xen/xsm/flask/flask_op.c                 |    4 +-
- xen/xsm/flask/hooks.c                    |    2 +-
- xen/xsm/xsm_core.c                       |    2 +-
- 79 files changed, 292 insertions(+), 203 deletions(-)
-
-
-Cheers,
-
-Stefano
---1342847746-1591267471-1345128021=:4850
-Content-Type: text/plain; charset="US-ASCII"; name="debug"
-Content-Transfer-Encoding: BASE64
-Content-ID: <alpine.DEB.2.02.1208161540210.4850@kaball.uk.xensource.com>
-Content-Description: 
-Content-Disposition: attachment; filename="debug"
-
-ZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL3B1YmxpYy9hcmNoLXg4Ni94ZW4u
-aCBiL3hlbi9pbmNsdWRlL3B1YmxpYy9hcmNoLXg4Ni94ZW4uaA0KaW5kZXgg
-MGUxMDI2MC4uMDhhNzg4ZSAxMDA2NDQNCi0tLSBhL3hlbi9pbmNsdWRlL3B1
-YmxpYy9hcmNoLXg4Ni94ZW4uaA0KKysrIGIveGVuL2luY2x1ZGUvcHVibGlj
-L2FyY2gteDg2L3hlbi5oDQpAQCAtMzIsNyArMzIsOCBAQA0KIC8qIFN0cnVj
-dHVyYWwgZ3Vlc3QgaGFuZGxlcyBpbnRyb2R1Y2VkIGluIDB4MDAwMzAyMDEu
-ICovDQogI2lmIF9fWEVOX0lOVEVSRkFDRV9WRVJTSU9OX18gPj0gMHgwMDAz
-MDIwMQ0KICNkZWZpbmUgX19fREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUobmFt
-ZSwgdHlwZSkgXA0KLSAgICB0eXBlZGVmIHN0cnVjdCB7IHR5cGUgKnA7IH0g
-X19ndWVzdF9oYW5kbGVfICMjIG5hbWUNCisgICAgdHlwZWRlZiBzdHJ1Y3Qg
-eyB0eXBlICpwOyB9IF9fZ3Vlc3RfaGFuZGxlXyAjIyBuYW1lOyBcDQorICAg
-IHR5cGVkZWYgc3RydWN0IHsgdHlwZSAqcDsgfSBfX2d1ZXN0X2hhbmRsZV9w
-YXJhbV8gIyMgbmFtZQ0KICNlbHNlDQogI2RlZmluZSBfX19ERUZJTkVfWEVO
-X0dVRVNUX0hBTkRMRShuYW1lLCB0eXBlKSBcDQogICAgIHR5cGVkZWYgdHlw
-ZSAqIF9fZ3Vlc3RfaGFuZGxlXyAjIyBuYW1lDQpAQCAtNTIsNyArNTMsNyBA
-QA0KICNkZWZpbmUgREVGSU5FX1hFTl9HVUVTVF9IQU5ETEUobmFtZSkgICBf
-X0RFRklORV9YRU5fR1VFU1RfSEFORExFKG5hbWUsIG5hbWUpDQogI2RlZmlu
-ZSBfX1hFTl9HVUVTVF9IQU5ETEUobmFtZSkgICAgICAgIF9fZ3Vlc3RfaGFu
-ZGxlXyAjIyBuYW1lDQogI2RlZmluZSBYRU5fR1VFU1RfSEFORExFKG5hbWUp
-ICAgICAgICAgIF9fWEVOX0dVRVNUX0hBTkRMRShuYW1lKQ0KLSNkZWZpbmUg
-WEVOX0dVRVNUX0hBTkRMRV9QQVJBTShuYW1lKSAgICBYRU5fR1VFU1RfSEFO
-RExFKG5hbWUpDQorI2RlZmluZSBYRU5fR1VFU1RfSEFORExFX1BBUkFNKG5h
-bWUpICAgIF9fZ3Vlc3RfaGFuZGxlX3BhcmFtXyAjIyBuYW1lDQogI2RlZmlu
-ZSBzZXRfeGVuX2d1ZXN0X2hhbmRsZV9yYXcoaG5kLCB2YWwpICBkbyB7ICho
-bmQpLnAgPSB2YWw7IH0gd2hpbGUgKDApDQogI2lmZGVmIF9fWEVOX1RPT0xT
-X18NCiAjZGVmaW5lIGdldF94ZW5fZ3Vlc3RfaGFuZGxlKHZhbCwgaG5kKSAg
-ZG8geyB2YWwgPSAoaG5kKS5wOyB9IHdoaWxlICgwKQ0K
-
---1342847746-1591267471-1345128021=:4850
-Content-Type: text/plain; charset="us-ascii"
-MIME-Version: 1.0
-Content-Transfer-Encoding: 7bit
-Content-Disposition: inline
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
---1342847746-1591267471-1345128021=:4850--
-
-
diff --git a/test/corpus/<alpine.DEB.2.02.1208161756140.15568@kaball.uk.xensource.com> b/test/corpus/<alpine.DEB.2.02.1208161756140.15568@kaball.uk.xensource.com>
deleted file mode 100644 (file)
index f97e2b8..0000000
+++ /dev/null
@@ -1,163 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Aug 16 18:13:26 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 16 Aug 2012 18:13:26 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T23dJ-0008Vg-1e
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 16 Aug 2012 18:13:26 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T23Yz-0002Yj-PJ; Thu, 16 Aug 2012 17:08:53 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1T23Yy-0002Ye-0Q
-       for xen-devel@lists.xensource.com; Thu, 16 Aug 2012 17:08:52 +0000
-Received: from [85.158.139.83:5122] by server-9.bemta-5.messagelabs.com id
-       FB/34-26123-3292D205; Thu, 16 Aug 2012 17:08:51 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-12.tower-182.messagelabs.com!1345136930!28510343!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDkyODE=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 14545 invoked from network); 16 Aug 2012 17:08:50 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-12.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
-       16 Aug 2012 17:08:50 -0000
-X-IronPort-AV: E=Sophos;i="4.77,780,1336348800"; d="scan'208";a="14046235"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       16 Aug 2012 17:08:50 +0000
-Received: from kaball.uk.xensource.com (10.80.2.59) by
-       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
-       8.3.213.0; Thu, 16 Aug 2012 18:08:50 +0100
-Date: Thu, 16 Aug 2012 18:08:33 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-X-Sender: sstabellini@kaball.uk.xensource.com
-To: Jan Beulich <JBeulich@suse.com>
-In-Reply-To: <502D33B8020000780009596B@nat28.tlf.novell.com>
-Message-ID: <alpine.DEB.2.02.1208161756140.15568@kaball.uk.xensource.com>
-References: <alpine.DEB.2.02.1208161523420.4850@kaball.uk.xensource.com>
-       <1345128612-10323-4-git-send-email-stefano.stabellini@eu.citrix.com>
-       <502D33B8020000780009596B@nat28.tlf.novell.com>
-User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
-       "Tim \(Xen.org\)" <tim@xen.org>, Ian Campbell <Ian.Campbell@citrix.com>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH v3 4/6] xen: introduce XEN_GUEST_HANDLE_PARAM
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Thu, 16 Aug 2012, Jan Beulich wrote:
-> >>> On 16.08.12 at 16:50, Stefano Stabellini <stefano.stabellini@eu.citrix.com> wrote:
-> > --- a/xen/include/public/arch-arm.h
-> > +++ b/xen/include/public/arch-arm.h
-> > @@ -51,18 +51,34 @@
-> >  
-> >  #define XEN_HYPERCALL_TAG   0XEA1
-> >  
-> > +#define uint64_aligned_t uint64_t __attribute__((aligned(8)))
-> >  
-> >  #ifndef __ASSEMBLY__
-> > -#define ___DEFINE_XEN_GUEST_HANDLE(name, type) \
-> > -    typedef struct { type *p; } __guest_handle_ ## name
-> > +#define ___DEFINE_XEN_GUEST_HANDLE(name, type)                  \
-> > +    typedef struct { type *p; }                                 \
-> > +        __guest_handle_ ## name;                                \
-> > +    typedef struct { union { type *p; uint64_aligned_t q; }; }  \
-> > +        __guest_handle_64_ ## name;
-> 
-> Why struct { union { ... } } instead of just union { ... }?
-
-good point :)
-
-
-> > +/*
-> > + * XEN_GUEST_HANDLE represents a guest pointer, when passed as a field
-> > + * in a struct in memory. On ARM is always 8 bytes sizes and 8 bytes
-> > + * aligned.
-> > + * XEN_GUEST_HANDLE_PARAM represent a guest pointer, when passed as an
-> > + * hypercall argument. It is 4 bytes on aarch and 8 bytes on aarch64.
-> > + */
-> >  #define __DEFINE_XEN_GUEST_HANDLE(name, type) \
-> >      ___DEFINE_XEN_GUEST_HANDLE(name, type);   \
-> >      ___DEFINE_XEN_GUEST_HANDLE(const_##name, const type)
-> >  #define DEFINE_XEN_GUEST_HANDLE(name)   __DEFINE_XEN_GUEST_HANDLE(name, name)
-> > -#define __XEN_GUEST_HANDLE(name)        __guest_handle_ ## name
-> > +#define __XEN_GUEST_HANDLE(name)        __guest_handle_64_ ## name
-> >  #define XEN_GUEST_HANDLE(name)          __XEN_GUEST_HANDLE(name)
-> > -#define set_xen_guest_handle_raw(hnd, val)  do { (hnd).p = val; } while (0)
-> > +/* this is going to be changes on 64 bit */
-> > +#define XEN_GUEST_HANDLE_PARAM(name)    __guest_handle_ ## name
-> > +#define set_xen_guest_handle_raw(hnd, val)                  \
-> > +    do { if ( sizeof(hnd) == 8 ) *(uint64_t *)&(hnd) = 0;   \
-> 
-> If you made the "normal" handle a union too, you could avoid
-> the explicit cast (which e.g. gcc, when not passed
-> -fno-strict-aliasing, will choke on) and instead use (hnd).q (and
-> at once avoid the double initialization of the low half).
-> 
-> Also, the condition to do this could be "sizeof(hnd) > sizeof((hnd).p)",
-> usable at once for 64-bit avoiding a full double initialization there.
-> 
-> > +         (hnd).p = val;                                     \
-> 
-> In a public header you certainly want to avoid evaluating a
-> macro argument twice.
-
-That's a really good suggestion.
-I am going to make both handles unions and therefore
-set_xen_guest_handle_raw becomes:
-
-#define set_xen_guest_handle_raw(hnd, val)                  \
-    do { (hnd).q = 0;                                       \
-         (hnd).p = val;                                     \
-    } while ( 0 )
-
-
-> > +    } while ( 0 )
-> >  #ifdef __XEN_TOOLS__
-> >  #define get_xen_guest_handle(val, hnd)  do { val = (hnd).p; } while (0)
-> >  #endif
-> 
-> Seeing the patch I btw realized that there's no easy way to
-> avoid having the type as a second argument in the conversion
-> macros. Nevertheless I still don't like the explicitly specified type
-> there.
-
-I agree, I don't like it either but I couldn't find anything better.
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<alpine.DEB.2.02.1208161801210.15568@kaball.uk.xensource.com> b/test/corpus/<alpine.DEB.2.02.1208161801210.15568@kaball.uk.xensource.com>
deleted file mode 100644 (file)
index a96b9c4..0000000
+++ /dev/null
@@ -1,97 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Aug 16 18:14:42 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 16 Aug 2012 18:14:42 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T23eZ-00005T-OO
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 16 Aug 2012 18:14:42 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T23b9-0002e5-9v; Thu, 16 Aug 2012 17:11:07 +0000
-Received: from mail27.messagelabs.com ([193.109.254.147])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1T23b7-0002dr-AH
-       for xen-devel@lists.xen.org; Thu, 16 Aug 2012 17:11:05 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-7.tower-27.messagelabs.com!1345137057!1982603!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDkyODE=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 23769 invoked from network); 16 Aug 2012 17:10:57 -0000
-Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-7.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
-       16 Aug 2012 17:10:57 -0000
-X-IronPort-AV: E=Sophos;i="4.77,780,1336348800"; d="scan'208";a="14046284"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       16 Aug 2012 17:10:57 +0000
-Received: from kaball.uk.xensource.com (10.80.2.59) by
-       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
-       8.3.213.0; Thu, 16 Aug 2012 18:10:57 +0100
-Date: Thu, 16 Aug 2012 18:10:40 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-X-Sender: sstabellini@kaball.uk.xensource.com
-To: Jan Beulich <JBeulich@suse.com>
-In-Reply-To: <502D37D702000078000959F7@nat28.tlf.novell.com>
-Message-ID: <alpine.DEB.2.02.1208161801210.15568@kaball.uk.xensource.com>
-References: <alpine.DEB.2.02.1208161523420.4850@kaball.uk.xensource.com>
-       <1345128612-10323-4-git-send-email-stefano.stabellini@eu.citrix.com>
-       <502D33B8020000780009596B@nat28.tlf.novell.com>
-       <502D37D702000078000959F7@nat28.tlf.novell.com>
-User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
-MIME-Version: 1.0
-Cc: xen-devel <xen-devel@lists.xen.org>, "Tim
-       \(Xen.org\)" <tim@xen.org>, Ian Campbell <Ian.Campbell@citrix.com>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH v3 4/6] xen: introduce XEN_GUEST_HANDLE_PARAM
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Thu, 16 Aug 2012, Jan Beulich wrote:
-> >>> On 16.08.12 at 17:54, "Jan Beulich" <JBeulich@suse.com> wrote:
-> > Seeing the patch I btw realized that there's no easy way to
-> > avoid having the type as a second argument in the conversion
-> > macros. Nevertheless I still don't like the explicitly specified type
-> > there.
-> 
-> Btw - on the architecture(s) where the two handles are identical
-> I would prefer you to make the conversion functions trivial (and
-> thus avoid making use of the "type" parameter), thus allowing
-> the type checking to occur that you currently circumvent.
-
-OK, I can do that.
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<alpine.DEB.2.02.1208171443580.15568@kaball.uk.xensource.com> b/test/corpus/<alpine.DEB.2.02.1208171443580.15568@kaball.uk.xensource.com>
deleted file mode 100644 (file)
index 05eefc7..0000000
+++ /dev/null
@@ -1,142 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Aug 17 14:51:26 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 17 Aug 2012 14:51:26 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T2MxQ-00082G-48
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 17 Aug 2012 14:51:26 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T2Mtw-00084Q-Ld; Fri, 17 Aug 2012 13:47:48 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1T2Mtu-00084E-Qi
-       for xen-devel@lists.xen.org; Fri, 17 Aug 2012 13:47:47 +0000
-Received: from [85.158.138.51:54366] by server-11.bemta-3.messagelabs.com id
-       AF/A7-23152-18B4E205; Fri, 17 Aug 2012 13:47:45 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-12.tower-174.messagelabs.com!1345211264!20886032!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDk0MzU=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 7826 invoked from network); 17 Aug 2012 13:47:45 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-12.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
-       17 Aug 2012 13:47:45 -0000
-X-IronPort-AV: E=Sophos;i="4.77,784,1336348800"; d="scan'208";a="14061073"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       17 Aug 2012 13:47:44 +0000
-Received: from kaball.uk.xensource.com (10.80.2.59) by
-       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
-       8.3.213.0; Fri, 17 Aug 2012 14:47:44 +0100
-Date: Fri, 17 Aug 2012 14:47:27 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-X-Sender: sstabellini@kaball.uk.xensource.com
-To: Jan Beulich <JBeulich@suse.com>
-In-Reply-To: <502E2F090200007800095D62@nat28.tlf.novell.com>
-Message-ID: <alpine.DEB.2.02.1208171443580.15568@kaball.uk.xensource.com>
-References: <alpine.DEB.2.02.1208161523420.4850@kaball.uk.xensource.com>
-       <1345128612-10323-4-git-send-email-stefano.stabellini@eu.citrix.com>
-       <502D33B8020000780009596B@nat28.tlf.novell.com>
-       <502D37D702000078000959F7@nat28.tlf.novell.com>
-       <alpine.DEB.2.02.1208161801210.15568@kaball.uk.xensource.com>
-       <1345190532.30865.67.camel@zakaz.uk.xensource.com>
-       <502E2F090200007800095D62@nat28.tlf.novell.com>
-User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
-MIME-Version: 1.0
-Cc: xen-devel <xen-devel@lists.xen.org>, "Tim \(Xen.org\)" <tim@xen.org>,
-       Ian Campbell <Ian.Campbell@citrix.com>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH v3 4/6] xen: introduce XEN_GUEST_HANDLE_PARAM
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Fri, 17 Aug 2012, Jan Beulich wrote:
-> >>> On 17.08.12 at 10:02, Ian Campbell <Ian.Campbell@citrix.com> wrote:
-> > On Thu, 2012-08-16 at 18:10 +0100, Stefano Stabellini wrote:
-> >> On Thu, 16 Aug 2012, Jan Beulich wrote:
-> >> > >>> On 16.08.12 at 17:54, "Jan Beulich" <JBeulich@suse.com> wrote:
-> >> > > Seeing the patch I btw realized that there's no easy way to
-> >> > > avoid having the type as a second argument in the conversion
-> >> > > macros. Nevertheless I still don't like the explicitly specified type
-> >> > > there.
-> >> > 
-> >> > Btw - on the architecture(s) where the two handles are identical
-> >> > I would prefer you to make the conversion functions trivial (and
-> >> > thus avoid making use of the "type" parameter), thus allowing
-> >> > the type checking to occur that you currently circumvent.
-> >> 
-> >> OK, I can do that.
-> > 
-> > Will this result in the type parameter potentially becoming stale?
-> > 
-> > Adding a redundant pointer compare is a good way to get the compiler to
-> > catch this. Smth like;
-> > 
-> >         /* Cast a XEN_GUEST_HANDLE_PARAM to XEN_GUEST_HANDLE */
-> >         #define guest_handle_from_param(hnd, type) ({
-> >             typeof((hnd).p) _x = (hnd).p;
-> >             XEN_GUEST_HANDLE(type) _y;
-> >             &_y == &_x;
-> >             hnd;
-> >          })
-> 
-> Ah yes, that's a good suggestion.
-> 
-> > I'm not sure which two pointers of members of the various structs need
-> > to be compared, maybe it's actually &_y.p and &hnd.p, but you get the
-> > idea...
-> 
-> Right, comparing (hnd).p with _y.p would be the right thing; no
-> need for _x, but some other (mechanical) adjustments would be
-> necessary.
-
-The _x variable is still useful to avoid multiple evaluations of hnd,
-even though I know that this is not a public header.
-
-What about the following:
-
-/* Cast a XEN_GUEST_HANDLE to XEN_GUEST_HANDLE_PARAM */
-#define guest_handle_to_param(hnd, type) ({                \
-    typeof((hnd).p) _x = (hnd).p;                          \
-    XEN_GUEST_HANDLE_PARAM(type) _y = { _x };              \
-    if (&_x != &_y.p) BUG();                               \
-    _y;                                                    \
-})
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<alpine.DEB.2.02.1208171450420.15568@kaball.uk.xensource.com> b/test/corpus/<alpine.DEB.2.02.1208171450420.15568@kaball.uk.xensource.com>
deleted file mode 100644 (file)
index 51c080d..0000000
+++ /dev/null
@@ -1,119 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Aug 17 14:54:52 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 17 Aug 2012 14:54:52 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T2N0j-00083c-TC
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 17 Aug 2012 14:54:52 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T2MxS-0000Bu-1X; Fri, 17 Aug 2012 13:51:26 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1T2MxQ-0000Bg-Cm
-       for xen-devel@lists.xensource.com; Fri, 17 Aug 2012 13:51:24 +0000
-Received: from [85.158.139.83:24763] by server-11.bemta-5.messagelabs.com id
-       D0/48-29296-B5C4E205; Fri, 17 Aug 2012 13:51:23 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-6.tower-182.messagelabs.com!1345211483!24818175!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDk0MzU=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 1696 invoked from network); 17 Aug 2012 13:51:23 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-6.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
-       17 Aug 2012 13:51:23 -0000
-X-IronPort-AV: E=Sophos;i="4.77,785,1336348800"; d="scan'208";a="14061162"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       17 Aug 2012 13:51:22 +0000
-Received: from kaball.uk.xensource.com (10.80.2.59) by
-       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
-       8.3.213.0; Fri, 17 Aug 2012 14:51:22 +0100
-Date: Fri, 17 Aug 2012 14:51:05 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-X-Sender: sstabellini@kaball.uk.xensource.com
-To: Jan Beulich <JBeulich@suse.com>
-In-Reply-To: <502E285A0200007800095D04@nat28.tlf.novell.com>
-Message-ID: <alpine.DEB.2.02.1208171450420.15568@kaball.uk.xensource.com>
-References: <alpine.DEB.2.02.1208161523420.4850@kaball.uk.xensource.com>
-       <1345128612-10323-4-git-send-email-stefano.stabellini@eu.citrix.com>
-       <502D33B8020000780009596B@nat28.tlf.novell.com>
-       <alpine.DEB.2.02.1208161756140.15568@kaball.uk.xensource.com>
-       <502E285A0200007800095D04@nat28.tlf.novell.com>
-User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
-       "Tim \(Xen.org\)" <tim@xen.org>, Ian Campbell <Ian.Campbell@citrix.com>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH v3 4/6] xen: introduce XEN_GUEST_HANDLE_PARAM
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Fri, 17 Aug 2012, Jan Beulich wrote:
-> >>> On 16.08.12 at 19:08, Stefano Stabellini <stefano.stabellini@eu.citrix.com> wrote:
-> > On Thu, 16 Aug 2012, Jan Beulich wrote:
-> >> >>> On 16.08.12 at 16:50, Stefano Stabellini <stefano.stabellini@eu.citrix.com>  wrote:
-> >> > +#define set_xen_guest_handle_raw(hnd, val)                  \
-> >> > +    do { if ( sizeof(hnd) == 8 ) *(uint64_t *)&(hnd) = 0;   \
-> >> 
-> >> If you made the "normal" handle a union too, you could avoid
-> >> the explicit cast (which e.g. gcc, when not passed
-> >> -fno-strict-aliasing, will choke on) and instead use (hnd).q (and
-> >> at once avoid the double initialization of the low half).
-> >> 
-> >> Also, the condition to do this could be "sizeof(hnd) > sizeof((hnd).p)",
-> >> usable at once for 64-bit avoiding a full double initialization there.
-> >> 
-> >> > +         (hnd).p = val;                                     \
-> >> 
-> >> In a public header you certainly want to avoid evaluating a
-> >> macro argument twice.
-> > 
-> > That's a really good suggestion.
-> > I am going to make both handles unions and therefore
-> > set_xen_guest_handle_raw becomes:
-> > 
-> > #define set_xen_guest_handle_raw(hnd, val)                  \
-> >     do { (hnd).q = 0;                                       \
-> >          (hnd).p = val;                                     \
-> >     } while ( 0 )
-> 
-> But that still doesn't eliminate the double evaluation of "hnd".
-
-Yes, you are right. I'll use a temporary pointer.
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<alpine.DEB.2.02.1208171453060.15568@kaball.uk.xensource.com> b/test/corpus/<alpine.DEB.2.02.1208171453060.15568@kaball.uk.xensource.com>
deleted file mode 100644 (file)
index 2f8ea97..0000000
+++ /dev/null
@@ -1,153 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Aug 17 14:59:18 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 17 Aug 2012 14:59:18 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T2N52-000857-5A
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 17 Aug 2012 14:59:18 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T2N1p-0000g7-7T; Fri, 17 Aug 2012 13:55:57 +0000
-Received: from mail27.messagelabs.com ([193.109.254.147])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1T2N1m-0000ff-WB
-       for xen-devel@lists.xen.org; Fri, 17 Aug 2012 13:55:55 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-6.tower-27.messagelabs.com!1345211748!3422300!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDk0MzU=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 29510 invoked from network); 17 Aug 2012 13:55:48 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-6.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
-       17 Aug 2012 13:55:48 -0000
-X-IronPort-AV: E=Sophos;i="4.77,785,1336348800"; d="scan'208";a="14061272"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       17 Aug 2012 13:55:48 +0000
-Received: from kaball.uk.xensource.com (10.80.2.59) by
-       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
-       8.3.213.0; Fri, 17 Aug 2012 14:55:48 +0100
-Date: Fri, 17 Aug 2012 14:55:31 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-X-Sender: sstabellini@kaball.uk.xensource.com
-To: Ian Campbell <Ian.Campbell@citrix.com>
-In-Reply-To: <1345211486.10161.31.camel@zakaz.uk.xensource.com>
-Message-ID: <alpine.DEB.2.02.1208171453060.15568@kaball.uk.xensource.com>
-References: <alpine.DEB.2.02.1208161523420.4850@kaball.uk.xensource.com>
-       <1345128612-10323-4-git-send-email-stefano.stabellini@eu.citrix.com>
-       <502D33B8020000780009596B@nat28.tlf.novell.com>
-       <502D37D702000078000959F7@nat28.tlf.novell.com> 
-       <alpine.DEB.2.02.1208161801210.15568@kaball.uk.xensource.com>
-       <1345190532.30865.67.camel@zakaz.uk.xensource.com>
-       <502E2F090200007800095D62@nat28.tlf.novell.com>
-       <alpine.DEB.2.02.1208171443580.15568@kaball.uk.xensource.com>
-       <1345211486.10161.31.camel@zakaz.uk.xensource.com>
-User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
-MIME-Version: 1.0
-Cc: xen-devel <xen-devel@lists.xen.org>, "Tim \(Xen.org\)" <tim@xen.org>,
-       Jan Beulich <JBeulich@suse.com>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH v3 4/6] xen: introduce XEN_GUEST_HANDLE_PARAM
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Fri, 17 Aug 2012, Ian Campbell wrote:
-> On Fri, 2012-08-17 at 14:47 +0100, Stefano Stabellini wrote:
-> > On Fri, 17 Aug 2012, Jan Beulich wrote:
-> > > >>> On 17.08.12 at 10:02, Ian Campbell <Ian.Campbell@citrix.com> wrote:
-> > > > On Thu, 2012-08-16 at 18:10 +0100, Stefano Stabellini wrote:
-> > > >> On Thu, 16 Aug 2012, Jan Beulich wrote:
-> > > >> > >>> On 16.08.12 at 17:54, "Jan Beulich" <JBeulich@suse.com> wrote:
-> > > >> > > Seeing the patch I btw realized that there's no easy way to
-> > > >> > > avoid having the type as a second argument in the conversion
-> > > >> > > macros. Nevertheless I still don't like the explicitly specified type
-> > > >> > > there.
-> > > >> > 
-> > > >> > Btw - on the architecture(s) where the two handles are identical
-> > > >> > I would prefer you to make the conversion functions trivial (and
-> > > >> > thus avoid making use of the "type" parameter), thus allowing
-> > > >> > the type checking to occur that you currently circumvent.
-> > > >> 
-> > > >> OK, I can do that.
-> > > > 
-> > > > Will this result in the type parameter potentially becoming stale?
-> > > > 
-> > > > Adding a redundant pointer compare is a good way to get the compiler to
-> > > > catch this. Smth like;
-> > > > 
-> > > >         /* Cast a XEN_GUEST_HANDLE_PARAM to XEN_GUEST_HANDLE */
-> > > >         #define guest_handle_from_param(hnd, type) ({
-> > > >             typeof((hnd).p) _x = (hnd).p;
-> > > >             XEN_GUEST_HANDLE(type) _y;
-> > > >             &_y == &_x;
-> > > >             hnd;
-> > > >          })
-> > > 
-> > > Ah yes, that's a good suggestion.
-> > > 
-> > > > I'm not sure which two pointers of members of the various structs need
-> > > > to be compared, maybe it's actually &_y.p and &hnd.p, but you get the
-> > > > idea...
-> > > 
-> > > Right, comparing (hnd).p with _y.p would be the right thing; no
-> > > need for _x, but some other (mechanical) adjustments would be
-> > > necessary.
-> > 
-> > The _x variable is still useful to avoid multiple evaluations of hnd,
-> > even though I know that this is not a public header.
-> > 
-> > What about the following:
-> > 
-> > /* Cast a XEN_GUEST_HANDLE to XEN_GUEST_HANDLE_PARAM */
-> > #define guest_handle_to_param(hnd, type) ({                \
-> >     typeof((hnd).p) _x = (hnd).p;                          \
-> >     XEN_GUEST_HANDLE_PARAM(type) _y = { _x };              \
-> >     if (&_x != &_y.p) BUG();                               \
-> 
-> &_x and &_y.p will always be different => this will always BUG().
->
-> You just need "(&_x == &_y.p)" if the types of _x and _y.p are different
-> then the compiler will error out due to the comparison of differently
-> typed pointers.
-
-I know what you mean, but we cannot do that because the compiler will
-complain with "statement has no effects".
-So we have to do something like:
-
-if ((&_x == &_y.p) && 0) BUG();
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<alpine.DEB.2.02.1208171540350.15568@kaball.uk.xensource.com> b/test/corpus/<alpine.DEB.2.02.1208171540350.15568@kaball.uk.xensource.com>
deleted file mode 100644 (file)
index 63add58..0000000
+++ /dev/null
@@ -1,187 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Aug 17 15:48:57 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 17 Aug 2012 15:48:57 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T2Nr4-0008Ky-Cp
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 17 Aug 2012 15:48:56 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T2Nnk-0003Jl-NH; Fri, 17 Aug 2012 14:45:28 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1T2Nnj-0003Jd-1I
-       for xen-devel@lists.xen.org; Fri, 17 Aug 2012 14:45:27 +0000
-Received: from [85.158.138.51:63458] by server-3.bemta-3.messagelabs.com id
-       35/06-13809-6095E205; Fri, 17 Aug 2012 14:45:26 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-4.tower-174.messagelabs.com!1345214725!28795919!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDk0MzU=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 1044 invoked from network); 17 Aug 2012 14:45:25 -0000
-Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-4.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
-       17 Aug 2012 14:45:25 -0000
-X-IronPort-AV: E=Sophos;i="4.77,785,1336348800"; d="scan'208";a="14062371"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       17 Aug 2012 14:45:24 +0000
-Received: from kaball.uk.xensource.com (10.80.2.59) by
-       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
-       8.3.213.0; Fri, 17 Aug 2012 15:45:24 +0100
-Date: Fri, 17 Aug 2012 15:45:07 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-X-Sender: sstabellini@kaball.uk.xensource.com
-To: Jan Beulich <JBeulich@suse.com>
-In-Reply-To: <502E6A200200007800095E9A@nat28.tlf.novell.com>
-Message-ID: <alpine.DEB.2.02.1208171540350.15568@kaball.uk.xensource.com>
-References: <alpine.DEB.2.02.1208161523420.4850@kaball.uk.xensource.com>
-       <1345128612-10323-4-git-send-email-stefano.stabellini@eu.citrix.com>
-       <502D33B8020000780009596B@nat28.tlf.novell.com>
-       <502D37D702000078000959F7@nat28.tlf.novell.com>
-       <alpine.DEB.2.02.1208161801210.15568@kaball.uk.xensource.com>
-       <1345190532.30865.67.camel@zakaz.uk.xensource.com>
-       <502E2F090200007800095D62@nat28.tlf.novell.com>
-       <alpine.DEB.2.02.1208171443580.15568@kaball.uk.xensource.com>
-       <502E6A200200007800095E9A@nat28.tlf.novell.com>
-User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
-MIME-Version: 1.0
-Cc: xen-devel <xen-devel@lists.xen.org>, "Tim
-       \(Xen.org\)" <tim@xen.org>, Ian Campbell <Ian.Campbell@citrix.com>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH v3 4/6] xen: introduce XEN_GUEST_HANDLE_PARAM
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Fri, 17 Aug 2012, Jan Beulich wrote:
-> >>> On 17.08.12 at 15:47, Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-> wrote:
-> > On Fri, 17 Aug 2012, Jan Beulich wrote:
-> >> >>> On 17.08.12 at 10:02, Ian Campbell <Ian.Campbell@citrix.com> wrote:
-> >> > On Thu, 2012-08-16 at 18:10 +0100, Stefano Stabellini wrote:
-> >> >> On Thu, 16 Aug 2012, Jan Beulich wrote:
-> >> >> > >>> On 16.08.12 at 17:54, "Jan Beulich" <JBeulich@suse.com> wrote:
-> >> >> > > Seeing the patch I btw realized that there's no easy way to
-> >> >> > > avoid having the type as a second argument in the conversion
-> >> >> > > macros. Nevertheless I still don't like the explicitly specified type
-> >> >> > > there.
-> >> >> > 
-> >> >> > Btw - on the architecture(s) where the two handles are identical
-> >> >> > I would prefer you to make the conversion functions trivial (and
-> >> >> > thus avoid making use of the "type" parameter), thus allowing
-> >> >> > the type checking to occur that you currently circumvent.
-> >> >> 
-> >> >> OK, I can do that.
-> >> > 
-> >> > Will this result in the type parameter potentially becoming stale?
-> >> > 
-> >> > Adding a redundant pointer compare is a good way to get the compiler to
-> >> > catch this. Smth like;
-> >> > 
-> >> >         /* Cast a XEN_GUEST_HANDLE_PARAM to XEN_GUEST_HANDLE */
-> >> >         #define guest_handle_from_param(hnd, type) ({
-> >> >             typeof((hnd).p) _x = (hnd).p;
-> >> >             XEN_GUEST_HANDLE(type) _y;
-> >> >             &_y == &_x;
-> >> >             hnd;
-> >> >          })
-> >> 
-> >> Ah yes, that's a good suggestion.
-> >> 
-> >> > I'm not sure which two pointers of members of the various structs need
-> >> > to be compared, maybe it's actually &_y.p and &hnd.p, but you get the
-> >> > idea...
-> >> 
-> >> Right, comparing (hnd).p with _y.p would be the right thing; no
-> >> need for _x, but some other (mechanical) adjustments would be
-> >> necessary.
-> > 
-> > The _x variable is still useful to avoid multiple evaluations of hnd,
-> > even though I know that this is not a public header.
-> 
-> But we had settled on returning hnd unmodified when both
-> handle types are the same.
-> 
-> > What about the following:
-> > 
-> > /* Cast a XEN_GUEST_HANDLE to XEN_GUEST_HANDLE_PARAM */
-> > #define guest_handle_to_param(hnd, type) ({                \
-> >     typeof((hnd).p) _x = (hnd).p;                          \
-> >     XEN_GUEST_HANDLE_PARAM(type) _y = { _x };              \
-> >     if (&_x != &_y.p) BUG();                               \
-> >     _y;                                                    \
-> > })
-> 
-> Since this is not a public header, something like this (untested,
-> so may not compile as is)
-> 
-> #define guest_handle_to_param(hnd, type) ({                \
->     (void)(typeof((hnd).p)0 == (XEN_GUEST_HANDLE_PARAM(type){}).p); \
->     (hnd);                                                    \
-> })
-> 
-> is what I was thinking of.
-> 
-
-this is how it would look like:
-
-#define guest_handle_to_param(hnd, type) ({                  \
-    /* type checking: make sure that the pointers inside     \
-     * XEN_GUEST_HANDLE and XEN_GUEST_HANDLE_PARAM are of    \
-     * the same type, than return hnd */                     \
-    (void)((typeof(&(hnd).p)) 0 ==                           \
-        (typeof(&((XEN_GUEST_HANDLE_PARAM(type)) {}).p)) 0); \
-    (hnd);                                                   \
-})
-
-
-Honestly I have very rarely seen anything less readable, but at least is
-very compact.
-For ARM I was going to go with the following, that is only slightly more
-readable:
-
-#define guest_handle_to_param(hnd, type) ({                  \
-    typeof((hnd).p) _x = (hnd).p;                            \
-    XEN_GUEST_HANDLE_PARAM(type) _y = { _x };                \
-    /* type checking: make sure that the pointers inside     \
-     * XEN_GUEST_HANDLE and XEN_GUEST_HANDLE_PARAM are of    \
-     * the same type, than return hnd */                     \
-    (void)(&_x == &_y.p);                                    \
-    _y;                                                      \
-})
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<alpine.DEB.2.02.1208171553060.15568@kaball.uk.xensource.com> b/test/corpus/<alpine.DEB.2.02.1208171553060.15568@kaball.uk.xensource.com>
deleted file mode 100644 (file)
index a1ceeb0..0000000
+++ /dev/null
@@ -1,167 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Aug 17 15:57:31 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 17 Aug 2012 15:57:31 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T2NzM-0008Mo-W6
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 17 Aug 2012 15:57:31 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T2Nvz-0003eA-GF; Fri, 17 Aug 2012 14:53:59 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1T2Nvy-0003e2-1L
-       for xen-devel@lists.xen.org; Fri, 17 Aug 2012 14:53:58 +0000
-Received: from [85.158.138.51:16810] by server-11.bemta-3.messagelabs.com id
-       1C/E2-23152-50B5E205; Fri, 17 Aug 2012 14:53:57 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-13.tower-174.messagelabs.com!1345215236!10151316!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDk0MzU=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 12506 invoked from network); 17 Aug 2012 14:53:56 -0000
-Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-13.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
-       17 Aug 2012 14:53:56 -0000
-X-IronPort-AV: E=Sophos;i="4.77,785,1336348800"; d="scan'208";a="14062524"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       17 Aug 2012 14:53:56 +0000
-Received: from kaball.uk.xensource.com (10.80.2.59) by
-       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
-       8.3.213.0; Fri, 17 Aug 2012 15:53:56 +0100
-Date: Fri, 17 Aug 2012 15:53:38 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-X-Sender: sstabellini@kaball.uk.xensource.com
-To: Ian Campbell <Ian.Campbell@citrix.com>
-In-Reply-To: <1345215020.10161.64.camel@zakaz.uk.xensource.com>
-Message-ID: <alpine.DEB.2.02.1208171553060.15568@kaball.uk.xensource.com>
-References: <alpine.DEB.2.02.1208161523420.4850@kaball.uk.xensource.com>
-       <1345128612-10323-4-git-send-email-stefano.stabellini@eu.citrix.com>
-       <502D33B8020000780009596B@nat28.tlf.novell.com>
-       <502D37D702000078000959F7@nat28.tlf.novell.com> 
-       <alpine.DEB.2.02.1208161801210.15568@kaball.uk.xensource.com>
-       <1345190532.30865.67.camel@zakaz.uk.xensource.com>
-       <502E2F090200007800095D62@nat28.tlf.novell.com>
-       <alpine.DEB.2.02.1208171443580.15568@kaball.uk.xensource.com>
-       <502E6A200200007800095E9A@nat28.tlf.novell.com>
-       <1345215020.10161.64.camel@zakaz.uk.xensource.com>
-User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
-MIME-Version: 1.0
-Cc: xen-devel <xen-devel@lists.xen.org>, "Tim \(Xen.org\)" <tim@xen.org>,
-       Jan Beulich <JBeulich@suse.com>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH v3 4/6] xen: introduce XEN_GUEST_HANDLE_PARAM
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Fri, 17 Aug 2012, Ian Campbell wrote:
-> On Fri, 2012-08-17 at 14:58 +0100, Jan Beulich wrote:
-> > >>> On 17.08.12 at 15:47, Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-> > wrote:
-> > > On Fri, 17 Aug 2012, Jan Beulich wrote:
-> > >> >>> On 17.08.12 at 10:02, Ian Campbell <Ian.Campbell@citrix.com> wrote:
-> > >> > On Thu, 2012-08-16 at 18:10 +0100, Stefano Stabellini wrote:
-> > >> >> On Thu, 16 Aug 2012, Jan Beulich wrote:
-> > >> >> > >>> On 16.08.12 at 17:54, "Jan Beulich" <JBeulich@suse.com> wrote:
-> > >> >> > > Seeing the patch I btw realized that there's no easy way to
-> > >> >> > > avoid having the type as a second argument in the conversion
-> > >> >> > > macros. Nevertheless I still don't like the explicitly specified type
-> > >> >> > > there.
-> > >> >> > 
-> > >> >> > Btw - on the architecture(s) where the two handles are identical
-> > >> >> > I would prefer you to make the conversion functions trivial (and
-> > >> >> > thus avoid making use of the "type" parameter), thus allowing
-> > >> >> > the type checking to occur that you currently circumvent.
-> > >> >> 
-> > >> >> OK, I can do that.
-> > >> > 
-> > >> > Will this result in the type parameter potentially becoming stale?
-> > >> > 
-> > >> > Adding a redundant pointer compare is a good way to get the compiler to
-> > >> > catch this. Smth like;
-> > >> > 
-> > >> >         /* Cast a XEN_GUEST_HANDLE_PARAM to XEN_GUEST_HANDLE */
-> > >> >         #define guest_handle_from_param(hnd, type) ({
-> > >> >             typeof((hnd).p) _x = (hnd).p;
-> > >> >             XEN_GUEST_HANDLE(type) _y;
-> > >> >             &_y == &_x;
-> > >> >             hnd;
-> > >> >          })
-> > >> 
-> > >> Ah yes, that's a good suggestion.
-> > >> 
-> > >> > I'm not sure which two pointers of members of the various structs need
-> > >> > to be compared, maybe it's actually &_y.p and &hnd.p, but you get the
-> > >> > idea...
-> > >> 
-> > >> Right, comparing (hnd).p with _y.p would be the right thing; no
-> > >> need for _x, but some other (mechanical) adjustments would be
-> > >> necessary.
-> > > 
-> > > The _x variable is still useful to avoid multiple evaluations of hnd,
-> > > even though I know that this is not a public header.
-> > 
-> > But we had settled on returning hnd unmodified when both
-> > handle types are the same.
-> > 
-> > > What about the following:
-> > > 
-> > > /* Cast a XEN_GUEST_HANDLE to XEN_GUEST_HANDLE_PARAM */
-> > > #define guest_handle_to_param(hnd, type) ({                \
-> > >     typeof((hnd).p) _x = (hnd).p;                          \
-> > >     XEN_GUEST_HANDLE_PARAM(type) _y = { _x };              \
-> > >     if (&_x != &_y.p) BUG();                               \
-> > >     _y;                                                    \
-> > > })
-> > 
-> > Since this is not a public header, something like this (untested,
-> > so may not compile as is)
-> > 
-> > #define guest_handle_to_param(hnd, type) ({                \
-> >     (void)(typeof((hnd).p)0 == (XEN_GUEST_HANDLE_PARAM(type){}).p); \
-> >     (hnd);                                                    \
-> > })
-> > 
-> > is what I was thinking of.
-> 
-> This evaluates hnd twice, or do we only care about that in public
-> headers for some reason? (personally I think principal of least surprise
-> suggests avoiding it wherever possible)
-
-the ARM version evaluates hnd only once and would work for x86 too
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<alpine.DEB.2.02.1208171829230.15568@kaball.uk.xensource.com> b/test/corpus/<alpine.DEB.2.02.1208171829230.15568@kaball.uk.xensource.com>
deleted file mode 100644 (file)
index 03d7d9d..0000000
+++ /dev/null
@@ -1,144 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Aug 17 18:33:58 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 17 Aug 2012 18:33:58 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T2QQm-0000Y7-0x
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 17 Aug 2012 18:33:58 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T2QMr-0000ck-QP; Fri, 17 Aug 2012 17:29:53 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1T2QMp-0000cc-NS
-       for xen-devel@lists.xensource.com; Fri, 17 Aug 2012 17:29:51 +0000
-Received: from [85.158.138.51:37912] by server-12.bemta-3.messagelabs.com id
-       7B/70-04073-E8F7E205; Fri, 17 Aug 2012 17:29:50 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-15.tower-174.messagelabs.com!1345224590!27099786!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDk0MzU=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 6060 invoked from network); 17 Aug 2012 17:29:50 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-15.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
-       17 Aug 2012 17:29:50 -0000
-X-IronPort-AV: E=Sophos;i="4.77,785,1336348800"; d="scan'208";a="14064774"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       17 Aug 2012 17:29:50 +0000
-Received: from kaball.uk.xensource.com (10.80.2.59) by
-       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
-       8.3.213.0; Fri, 17 Aug 2012 18:29:50 +0100
-Date: Fri, 17 Aug 2012 18:29:32 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-X-Sender: sstabellini@kaball.uk.xensource.com
-To: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-In-Reply-To: <1345133009-21941-2-git-send-email-konrad.wilk@oracle.com>
-Message-ID: <alpine.DEB.2.02.1208171829230.15568@kaball.uk.xensource.com>
-References: <1345133009-21941-1-git-send-email-konrad.wilk@oracle.com>
-       <1345133009-21941-2-git-send-email-konrad.wilk@oracle.com>
-User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
-       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 01/11] xen/p2m: Fix the comment describing
- the P2M tree.
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Thu, 16 Aug 2012, Konrad Rzeszutek Wilk wrote:
-> It mixed up the p2m_mid_missing with p2m_missing. Also
-> remove some extra spaces.
-> 
-> Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-
-
-Acked-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-
->  arch/x86/xen/p2m.c |   14 +++++++-------
->  1 files changed, 7 insertions(+), 7 deletions(-)
-> 
-> diff --git a/arch/x86/xen/p2m.c b/arch/x86/xen/p2m.c
-> index 64effdc..e4adbfb 100644
-> --- a/arch/x86/xen/p2m.c
-> +++ b/arch/x86/xen/p2m.c
-> @@ -22,7 +22,7 @@
->   *
->   * P2M_PER_PAGE depends on the architecture, as a mfn is always
->   * unsigned long (8 bytes on 64-bit, 4 bytes on 32), leading to
-> - * 512 and 1024 entries respectively. 
-> + * 512 and 1024 entries respectively.
->   *
->   * In short, these structures contain the Machine Frame Number (MFN) of the PFN.
->   *
-> @@ -139,11 +139,11 @@
->   *      /    | ~0, ~0, ....  |
->   *     |     \---------------/
->   *     |
-> - *     p2m_missing             p2m_missing
-> - * /------------------\     /------------\
-> - * | [p2m_mid_missing]+---->| ~0, ~0, ~0 |
-> - * | [p2m_mid_missing]+---->| ..., ~0    |
-> - * \------------------/     \------------/
-> + *   p2m_mid_missing           p2m_missing
-> + * /-----------------\     /------------\
-> + * | [p2m_missing]   +---->| ~0, ~0, ~0 |
-> + * | [p2m_missing]   +---->| ..., ~0    |
-> + * \-----------------/     \------------/
->   *
->   * where ~0 is INVALID_P2M_ENTRY. IDENTITY is (PFN | IDENTITY_BIT)
->   */
-> @@ -423,7 +423,7 @@ static void free_p2m_page(void *p)
->      free_page((unsigned long)p);
->  }
->  
-> -/* 
-> +/*
->   * Fully allocate the p2m structure for a given pfn.  We need to check
->   * that both the top and mid levels are allocated, and make sure the
->   * parallel mfn tree is kept in sync.  We may race with other cpus, so
-> -- 
-> 1.7.7.6
-> 
-> 
-> _______________________________________________
-> Xen-devel mailing list
-> Xen-devel@lists.xen.org
-> http://lists.xen.org/xen-devel
-> 
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<alpine.DEB.2.02.1208171835010.15568@kaball.uk.xensource.com> b/test/corpus/<alpine.DEB.2.02.1208171835010.15568@kaball.uk.xensource.com>
deleted file mode 100644 (file)
index 6bb28b0..0000000
+++ /dev/null
@@ -1,212 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Aug 17 18:39:43 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 17 Aug 2012 18:39:43 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T2QWL-0000ZB-8d
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 17 Aug 2012 18:39:43 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T2QSL-0000qA-Il; Fri, 17 Aug 2012 17:35:33 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1T2QSJ-0000q5-VF
-       for xen-devel@lists.xensource.com; Fri, 17 Aug 2012 17:35:32 +0000
-Received: from [85.158.143.99:10962] by server-3.bemta-4.messagelabs.com id
-       1B/8B-09529-3E08E205; Fri, 17 Aug 2012 17:35:31 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-2.tower-216.messagelabs.com!1345224930!23426277!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDk0MzU=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 953 invoked from network); 17 Aug 2012 17:35:30 -0000
-Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-2.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
-       17 Aug 2012 17:35:30 -0000
-X-IronPort-AV: E=Sophos;i="4.77,785,1336348800"; d="scan'208";a="14064812"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       17 Aug 2012 17:35:29 +0000
-Received: from kaball.uk.xensource.com (10.80.2.59) by
-       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
-       8.3.213.0; Fri, 17 Aug 2012 18:35:29 +0100
-Date: Fri, 17 Aug 2012 18:35:12 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-X-Sender: sstabellini@kaball.uk.xensource.com
-To: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-In-Reply-To: <1345133009-21941-3-git-send-email-konrad.wilk@oracle.com>
-Message-ID: <alpine.DEB.2.02.1208171835010.15568@kaball.uk.xensource.com>
-References: <1345133009-21941-1-git-send-email-konrad.wilk@oracle.com>
-       <1345133009-21941-3-git-send-email-konrad.wilk@oracle.com>
-User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
-       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 02/11] xen/x86: Use memblock_reserve for
- sensitive areas.
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Thu, 16 Aug 2012, Konrad Rzeszutek Wilk wrote:
-> instead of a big memblock_reserve. This way we can be more
-> selective in freeing regions (and it also makes it easier
-> to understand where is what).
-> 
-> [v1: Move the auto_translate_physmap to proper line]
-> [v2: Per Stefano suggestion add more comments]
-> Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-
-much better now!
-
->  arch/x86/xen/enlighten.c |   48 ++++++++++++++++++++++++++++++++++++++++++++++
->  arch/x86/xen/p2m.c       |    5 ++++
->  arch/x86/xen/setup.c     |    9 --------
->  3 files changed, 53 insertions(+), 9 deletions(-)
-> 
-> diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c
-> index ff962d4..e532eb5 100644
-> --- a/arch/x86/xen/enlighten.c
-> +++ b/arch/x86/xen/enlighten.c
-> @@ -998,7 +998,54 @@ static int xen_write_msr_safe(unsigned int msr, unsigned low, unsigned high)
->  
->      return ret;
->  }
-> +/*
-> + * If the MFN is not in the m2p (provided to us by the hypervisor) this
-> + * function won't do anything. In practice this means that the XenBus
-> + * MFN won't be available for the initial domain. */
-> +static void __init xen_reserve_mfn(unsigned long mfn)
-> +{
-> +    unsigned long pfn;
-> +
-> +    if (!mfn)
-> +            return;
-> +    pfn = mfn_to_pfn(mfn);
-> +    if (phys_to_machine_mapping_valid(pfn))
-> +            memblock_reserve(PFN_PHYS(pfn), PAGE_SIZE);
-> +}
-> +static void __init xen_reserve_internals(void)
-> +{
-> +    unsigned long size;
-> +
-> +    if (!xen_pv_domain())
-> +            return;
-> +
-> +    /* xen_start_info does not exist in the M2P, hence can't use
-> +     * xen_reserve_mfn. */
-> +    memblock_reserve(__pa(xen_start_info), PAGE_SIZE);
-> +
-> +    xen_reserve_mfn(PFN_DOWN(xen_start_info->shared_info));
-> +    xen_reserve_mfn(xen_start_info->store_mfn);
->  
-> +    if (!xen_initial_domain())
-> +            xen_reserve_mfn(xen_start_info->console.domU.mfn);
-> +
-> +    if (xen_feature(XENFEAT_auto_translated_physmap))
-> +            return;
-> +
-> +    /*
-> +     * ALIGN up to compensate for the p2m_page pointing to an array that
-> +     * can partially filled (look in xen_build_dynamic_phys_to_machine).
-> +     */
-> +
-> +    size = PAGE_ALIGN(xen_start_info->nr_pages * sizeof(unsigned long));
-> +
-> +    /* We could use xen_reserve_mfn here, but would end up looping quite
-> +     * a lot (and call memblock_reserve for each PAGE), so lets just use
-> +     * the easy way and reserve it wholesale. */
-> +    memblock_reserve(__pa(xen_start_info->mfn_list), size);
-> +
-> +    /* The pagetables are reserved in mmu.c */
-> +}
->  void xen_setup_shared_info(void)
->  {
->      if (!xen_feature(XENFEAT_auto_translated_physmap)) {
-> @@ -1362,6 +1409,7 @@ asmlinkage void __init xen_start_kernel(void)
->      xen_raw_console_write("mapping kernel into physical memory\n");
->      pgd = xen_setup_kernel_pagetable(pgd, xen_start_info->nr_pages);
->  
-> +    xen_reserve_internals();
->      /* Allocate and initialize top and mid mfn levels for p2m structure */
->      xen_build_mfn_list_list();
->  
-> diff --git a/arch/x86/xen/p2m.c b/arch/x86/xen/p2m.c
-> index e4adbfb..6a2bfa4 100644
-> --- a/arch/x86/xen/p2m.c
-> +++ b/arch/x86/xen/p2m.c
-> @@ -388,6 +388,11 @@ void __init xen_build_dynamic_phys_to_machine(void)
->      }
->  
->      m2p_override_init();
-> +
-> +    /* NOTE: We cannot call memblock_reserve here for the mfn_list as there
-> +     * isn't enough pieces to make it work (for one - we are still using the
-> +     * Xen provided pagetable). Do it later in xen_reserve_internals.
-> +     */
->  }
->  
->  unsigned long get_phys_to_machine(unsigned long pfn)
-> diff --git a/arch/x86/xen/setup.c b/arch/x86/xen/setup.c
-> index a4790bf..9efca75 100644
-> --- a/arch/x86/xen/setup.c
-> +++ b/arch/x86/xen/setup.c
-> @@ -424,15 +424,6 @@ char * __init xen_memory_setup(void)
->      e820_add_region(ISA_START_ADDRESS, ISA_END_ADDRESS - ISA_START_ADDRESS,
->                      E820_RESERVED);
->  
-> -    /*
-> -     * Reserve Xen bits:
-> -     *  - mfn_list
-> -     *  - xen_start_info
-> -     * See comment above "struct start_info" in <xen/interface/xen.h>
-> -     */
-> -    memblock_reserve(__pa(xen_start_info->mfn_list),
-> -                     xen_start_info->pt_base - xen_start_info->mfn_list);
-> -
->      sanitize_e820_map(e820.map, ARRAY_SIZE(e820.map), &e820.nr_map);
->  
->      return "Xen";
-> -- 
-> 1.7.7.6
-> 
-> 
-> _______________________________________________
-> Xen-devel mailing list
-> Xen-devel@lists.xen.org
-> http://lists.xen.org/xen-devel
-> 
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<alpine.DEB.2.02.1208171839590.15568@kaball.uk.xensource.com> b/test/corpus/<alpine.DEB.2.02.1208171839590.15568@kaball.uk.xensource.com>
deleted file mode 100644 (file)
index 824980c..0000000
+++ /dev/null
@@ -1,163 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Aug 17 18:45:53 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 17 Aug 2012 18:45:53 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T2QcI-0000aK-Sz
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 17 Aug 2012 18:45:53 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T2QYK-00013d-Ci; Fri, 17 Aug 2012 17:41:44 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1T2QYJ-00013Y-3N
-       for xen-devel@lists.xensource.com; Fri, 17 Aug 2012 17:41:43 +0000
-Received: from [85.158.138.51:30139] by server-11.bemta-3.messagelabs.com id
-       0E/AF-23152-6528E205; Fri, 17 Aug 2012 17:41:42 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-3.tower-174.messagelabs.com!1345225301!20773995!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDk0MzU=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 16683 invoked from network); 17 Aug 2012 17:41:41 -0000
-Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-3.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
-       17 Aug 2012 17:41:41 -0000
-X-IronPort-AV: E=Sophos;i="4.77,785,1336348800"; d="scan'208";a="14064852"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       17 Aug 2012 17:41:41 +0000
-Received: from kaball.uk.xensource.com (10.80.2.59) by
-       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
-       8.3.213.0; Fri, 17 Aug 2012 18:41:41 +0100
-Date: Fri, 17 Aug 2012 18:41:23 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-X-Sender: sstabellini@kaball.uk.xensource.com
-To: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-In-Reply-To: <1345133009-21941-7-git-send-email-konrad.wilk@oracle.com>
-Message-ID: <alpine.DEB.2.02.1208171839590.15568@kaball.uk.xensource.com>
-References: <1345133009-21941-1-git-send-email-konrad.wilk@oracle.com>
-       <1345133009-21941-7-git-send-email-konrad.wilk@oracle.com>
-User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
-       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 06/11] xen/mmu: For 64-bit do not call
- xen_map_identity_early
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Thu, 16 Aug 2012, Konrad Rzeszutek Wilk wrote:
-> B/c we do not need it. During the startup the Xen provides
-> us with all the memory mapped that we need to function.
-
-Shouldn't we check to make sure that is actually true (I am thinking at
-nr_pt_frames)?
-Or is it actually stated somewhere in the Xen headers?
-
-
-
-> Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-> ---
->  arch/x86/xen/mmu.c |   11 +++++------
->  1 files changed, 5 insertions(+), 6 deletions(-)
-> 
-> diff --git a/arch/x86/xen/mmu.c b/arch/x86/xen/mmu.c
-> index 7247e5a..a59070b 100644
-> --- a/arch/x86/xen/mmu.c
-> +++ b/arch/x86/xen/mmu.c
-> @@ -84,6 +84,7 @@
->   */
->  DEFINE_SPINLOCK(xen_reservation_lock);
->  
-> +#ifdef CONFIG_X86_32
->  /*
->   * Identity map, in addition to plain kernel map.  This needs to be
->   * large enough to allocate page table pages to allocate the rest.
-> @@ -91,7 +92,7 @@ DEFINE_SPINLOCK(xen_reservation_lock);
->   */
->  #define LEVEL1_IDENT_ENTRIES        (PTRS_PER_PTE * 4)
->  static RESERVE_BRK_ARRAY(pte_t, level1_ident_pgt, LEVEL1_IDENT_ENTRIES);
-> -
-> +#endif
->  #ifdef CONFIG_X86_64
->  /* l3 pud for userspace vsyscall mapping */
->  static pud_t level3_user_vsyscall[PTRS_PER_PUD] __page_aligned_bss;
-> @@ -1628,7 +1629,7 @@ static void set_page_prot(void *addr, pgprot_t prot)
->      if (HYPERVISOR_update_va_mapping((unsigned long)addr, pte, 0))
->              BUG();
->  }
-> -
-> +#ifdef CONFIG_X86_32
->  static void __init xen_map_identity_early(pmd_t *pmd, unsigned long max_pfn)
->  {
->      unsigned pmdidx, pteidx;
-> @@ -1679,7 +1680,7 @@ static void __init xen_map_identity_early(pmd_t *pmd, unsigned long max_pfn)
->  
->      set_page_prot(pmd, PAGE_KERNEL_RO);
->  }
-> -
-> +#endif
->  void __init xen_setup_machphys_mapping(void)
->  {
->      struct xen_machphys_mapping mapping;
-> @@ -1765,14 +1766,12 @@ void __init xen_setup_kernel_pagetable(pgd_t *pgd, unsigned long max_pfn)
->      /* Note that we don't do anything with level1_fixmap_pgt which
->       * we don't need. */
->  
-> -    /* Set up identity map */
-> -    xen_map_identity_early(level2_ident_pgt, max_pfn);
-> -
->      /* Make pagetable pieces RO */
->      set_page_prot(init_level4_pgt, PAGE_KERNEL_RO);
->      set_page_prot(level3_ident_pgt, PAGE_KERNEL_RO);
->      set_page_prot(level3_kernel_pgt, PAGE_KERNEL_RO);
->      set_page_prot(level3_user_vsyscall, PAGE_KERNEL_RO);
-> +    set_page_prot(level2_ident_pgt, PAGE_KERNEL_RO);
->      set_page_prot(level2_kernel_pgt, PAGE_KERNEL_RO);
->      set_page_prot(level2_fixmap_pgt, PAGE_KERNEL_RO);
->  
-> -- 
-> 1.7.7.6
-> 
-> 
-> _______________________________________________
-> Xen-devel mailing list
-> Xen-devel@lists.xen.org
-> http://lists.xen.org/xen-devel
-> 
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<alpine.DEB.2.02.1208171902320.15568@kaball.uk.xensource.com> b/test/corpus/<alpine.DEB.2.02.1208171902320.15568@kaball.uk.xensource.com>
deleted file mode 100644 (file)
index cc061bf..0000000
+++ /dev/null
@@ -1,200 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Aug 17 19:12:26 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 17 Aug 2012 19:12:26 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T2R1z-0000ff-Tl
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 17 Aug 2012 19:12:26 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T2Qxe-0001sH-2v; Fri, 17 Aug 2012 18:07:54 +0000
-Received: from mail27.messagelabs.com ([193.109.254.147])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1T2Qxc-0001sA-2R
-       for xen-devel@lists.xensource.com; Fri, 17 Aug 2012 18:07:52 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-4.tower-27.messagelabs.com!1345226865!9651684!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDk0MzU=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 19202 invoked from network); 17 Aug 2012 18:07:46 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-4.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
-       17 Aug 2012 18:07:46 -0000
-X-IronPort-AV: E=Sophos;i="4.77,785,1336348800"; d="scan'208";a="14065042"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       17 Aug 2012 18:07:45 +0000
-Received: from kaball.uk.xensource.com (10.80.2.59) by
-       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
-       8.3.213.0; Fri, 17 Aug 2012 19:07:45 +0100
-Date: Fri, 17 Aug 2012 19:07:28 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-X-Sender: sstabellini@kaball.uk.xensource.com
-To: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-In-Reply-To: <1345133009-21941-8-git-send-email-konrad.wilk@oracle.com>
-Message-ID: <alpine.DEB.2.02.1208171902320.15568@kaball.uk.xensource.com>
-References: <1345133009-21941-1-git-send-email-konrad.wilk@oracle.com>
-       <1345133009-21941-8-git-send-email-konrad.wilk@oracle.com>
-User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
-       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD autolearn=unavailable version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 07/11] xen/mmu: Recycle the Xen provided L4,
- L3, and L2 pages
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Thu, 16 Aug 2012, Konrad Rzeszutek Wilk wrote:
-> As we are not using them. We end up only using the L1 pagetables
-> and grafting those to our page-tables.
-> 
-> [v1: Per Stefano's suggestion squashed two commits]
-> [v2: Per Stefano's suggestion simplified loop]
-> [v3: Fix smatch warnings]
-> Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-> ---
->  arch/x86/xen/mmu.c |   40 +++++++++++++++++++++++++++++++++-------
->  1 files changed, 33 insertions(+), 7 deletions(-)
-> 
-> diff --git a/arch/x86/xen/mmu.c b/arch/x86/xen/mmu.c
-> index a59070b..bd92c82 100644
-> --- a/arch/x86/xen/mmu.c
-> +++ b/arch/x86/xen/mmu.c
-> @@ -1708,7 +1708,20 @@ static void convert_pfn_mfn(void *v)
->      for (i = 0; i < PTRS_PER_PTE; i++)
->              pte[i] = xen_make_pte(pte[i].pte);
->  }
-> -
-> +static void __init check_pt_base(unsigned long *pt_base, unsigned long *pt_end,
-> +                             unsigned long addr)
-> +{
-> +    if (*pt_base == PFN_DOWN(__pa(addr))) {
-> +            set_page_prot((void *)addr, PAGE_KERNEL);
-> +            clear_page((void *)addr);
-> +            (*pt_base)++;
-> +    }
-> +    if (*pt_end == PFN_DOWN(__pa(addr))) {
-> +            set_page_prot((void *)addr, PAGE_KERNEL);
-> +            clear_page((void *)addr);
-> +            (*pt_end)--;
-> +    }
-> +}
->  /*
->   * Set up the initial kernel pagetable.
->   *
-> @@ -1724,6 +1737,9 @@ void __init xen_setup_kernel_pagetable(pgd_t *pgd, unsigned long max_pfn)
->  {
->      pud_t *l3;
->      pmd_t *l2;
-> +    unsigned long addr[3];
-> +    unsigned long pt_base, pt_end;
-> +    unsigned i;
->  
->      /* max_pfn_mapped is the last pfn mapped in the initial memory
->       * mappings. Considering that on Xen after the kernel mappings we
-> @@ -1731,6 +1747,9 @@ void __init xen_setup_kernel_pagetable(pgd_t *pgd, unsigned long max_pfn)
->       * set max_pfn_mapped to the last real pfn mapped. */
->      max_pfn_mapped = PFN_DOWN(__pa(xen_start_info->mfn_list));
->  
-> +    pt_base = PFN_DOWN(__pa(xen_start_info->pt_base));
-> +    pt_end = PFN_DOWN(__pa(xen_start_info->pt_base + (xen_start_info->nr_pt_frames * PAGE_SIZE)));
-
-code style
-
->      /* Zap identity mapping */
->      init_level4_pgt[0] = __pgd(0);
->  
-> @@ -1749,6 +1768,9 @@ void __init xen_setup_kernel_pagetable(pgd_t *pgd, unsigned long max_pfn)
->      l3 = m2v(pgd[pgd_index(__START_KERNEL_map)].pgd);
->      l2 = m2v(l3[pud_index(__START_KERNEL_map)].pud);
->  
-> +    addr[0] = (unsigned long)pgd;
-> +    addr[1] = (unsigned long)l3;
-> +    addr[2] = (unsigned long)l2;
->      /* Graft it onto L4[272][0]. Note that we creating an aliasing problem:
->       * Both L4[272][0] and L4[511][511] have entries that point to the same
->       * L2 (PMD) tables. Meaning that if you modify it in __va space
-> @@ -1782,20 +1804,24 @@ void __init xen_setup_kernel_pagetable(pgd_t *pgd, unsigned long max_pfn)
->      /* Unpin Xen-provided one */
->      pin_pagetable_pfn(MMUEXT_UNPIN_TABLE, PFN_DOWN(__pa(pgd)));
->  
-> -    /* Switch over */
-> -    pgd = init_level4_pgt;
-> -
->      /*
->       * At this stage there can be no user pgd, and no page
->       * structure to attach it to, so make sure we just set kernel
->       * pgd.
->       */
->      xen_mc_batch();
-> -    __xen_write_cr3(true, __pa(pgd));
-> +    __xen_write_cr3(true, __pa(init_level4_pgt));
->      xen_mc_issue(PARAVIRT_LAZY_CPU);
->  
-> -    memblock_reserve(__pa(xen_start_info->pt_base),
-> -                     xen_start_info->nr_pt_frames * PAGE_SIZE);
-> +    /* We can't that easily rip out L3 and L2, as the Xen pagetables are
-> +     * set out this way: [L4], [L1], [L2], [L3], [L1], [L1] ...  for
-> +     * the initial domain. For guests using the toolstack, they are in:
-> +     * [L4], [L3], [L2], [L1], [L1], order .. */
-> +    for (i = 0; i < ARRAY_SIZE(addr); i++)
-> +            check_pt_base(&pt_base, &pt_end, addr[i]);
-
-It is much clearer now, but if the comment is correct, doesn't it mean
-that we are going to be able to free pgd, l3 and l2 only in the non-dom0
-case?
-If so it might be worth saying it explicitly.
-
-Other than that, it is fine by me.
-
-
-> +    /* Our (by three pages) smaller Xen pagetable that we are using */
-> +    memblock_reserve(PFN_PHYS(pt_base), (pt_end - pt_base) * PAGE_SIZE);
->  }
->  #else       /* !CONFIG_X86_64 */
->  static RESERVE_BRK_ARRAY(pmd_t, initial_kernel_pmd, PTRS_PER_PMD);
-> -- 
-> 1.7.7.6
-> 
-> 
-> _______________________________________________
-> Xen-devel mailing list
-> Xen-devel@lists.xen.org
-> http://lists.xen.org/xen-devel
-> 
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<alpine.DEB.2.02.1208201243180.15568@kaball.uk.xensource.com> b/test/corpus/<alpine.DEB.2.02.1208201243180.15568@kaball.uk.xensource.com>
deleted file mode 100644 (file)
index 6034898..0000000
+++ /dev/null
@@ -1,114 +0,0 @@
-From xen-devel-bounces@lists.xen.org Mon Aug 20 12:50:04 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Mon, 20 Aug 2012 12:50:04 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T3QUc-0000Cc-0Q
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Mon, 20 Aug 2012 12:50:04 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T3QR8-0000k9-1f; Mon, 20 Aug 2012 11:46:26 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1T3QR6-0000jz-S5
-       for xen-devel@lists.xensource.com; Mon, 20 Aug 2012 11:46:25 +0000
-Received: from [85.158.143.35:17559] by server-3.bemta-4.messagelabs.com id
-       6D/D3-09529-09322305; Mon, 20 Aug 2012 11:46:24 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-12.tower-21.messagelabs.com!1345463165!14261204!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDk2MTE=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 17798 invoked from network); 20 Aug 2012 11:46:07 -0000
-Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-12.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
-       20 Aug 2012 11:46:07 -0000
-X-IronPort-AV: E=Sophos;i="4.77,796,1336348800"; d="scan'208";a="14082988"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       20 Aug 2012 11:46:05 +0000
-Received: from kaball.uk.xensource.com (10.80.2.59) by
-       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
-       8.3.213.0; Mon, 20 Aug 2012 12:46:05 +0100
-Date: Mon, 20 Aug 2012 12:45:45 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-X-Sender: sstabellini@kaball.uk.xensource.com
-To: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-In-Reply-To: <20120817174549.GA14257@phenom.dumpdata.com>
-Message-ID: <alpine.DEB.2.02.1208201243180.15568@kaball.uk.xensource.com>
-References: <1345133009-21941-1-git-send-email-konrad.wilk@oracle.com>
-       <1345133009-21941-7-git-send-email-konrad.wilk@oracle.com>
-       <alpine.DEB.2.02.1208171839590.15568@kaball.uk.xensource.com>
-       <20120817174549.GA14257@phenom.dumpdata.com>
-User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
-       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 06/11] xen/mmu: For 64-bit do not call
- xen_map_identity_early
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Fri, 17 Aug 2012, Konrad Rzeszutek Wilk wrote:
-> On Fri, Aug 17, 2012 at 06:41:23PM +0100, Stefano Stabellini wrote:
-> > On Thu, 16 Aug 2012, Konrad Rzeszutek Wilk wrote:
-> > > B/c we do not need it. During the startup the Xen provides
-> > > us with all the memory mapped that we need to function.
-> > 
-> > Shouldn't we check to make sure that is actually true (I am thinking at
-> > nr_pt_frames)?
-> 
-> I was looking at the source code (hypervisor) to figure it out and
-> that is certainly true.
-> 
-> 
-> > Or is it actually stated somewhere in the Xen headers?
-> 
-> Couldn't find it, but after looking so long at the source code
-> I didn't even bother looking for it.
-> 
-> Thought to be honest - I only looked at how the 64-bit pagetables
-> were set up, so I didn't dare to touch the 32-bit. Hence the #ifdef
-
-I think that we need to involve some Xen maintainers and get this
-written down somewhere in the public headers, otherwise we have no
-guarantees that it is going to stay as it is in the next Xen versions.
-
-Maybe we just need to add a couple of lines of comment to
-xen/include/public/xen.h.
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<alpine.DEB.2.02.1208201257420.15568@kaball.uk.xensource.com> b/test/corpus/<alpine.DEB.2.02.1208201257420.15568@kaball.uk.xensource.com>
deleted file mode 100644 (file)
index 2b2e9c9..0000000
+++ /dev/null
@@ -1,129 +0,0 @@
-From xen-devel-bounces@lists.xen.org Mon Aug 20 13:03:06 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Mon, 20 Aug 2012 13:03:06 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T3QhE-0000GA-9o
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Mon, 20 Aug 2012 13:03:06 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T3QdM-0001L0-5p; Mon, 20 Aug 2012 11:59:04 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1T3QdK-0001Ku-UG
-       for xen-devel@lists.xensource.com; Mon, 20 Aug 2012 11:59:03 +0000
-Received: from [85.158.143.35:3256] by server-1.bemta-4.messagelabs.com id
-       D8/F8-07754-68622305; Mon, 20 Aug 2012 11:59:02 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-8.tower-21.messagelabs.com!1345463937!14391474!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDk2MTE=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 25666 invoked from network); 20 Aug 2012 11:58:57 -0000
-Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-8.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
-       20 Aug 2012 11:58:57 -0000
-X-IronPort-AV: E=Sophos;i="4.77,796,1336348800"; d="scan'208";a="14083372"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       20 Aug 2012 11:58:57 +0000
-Received: from kaball.uk.xensource.com (10.80.2.59) by
-       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
-       8.3.213.0; Mon, 20 Aug 2012 12:58:57 +0100
-Date: Mon, 20 Aug 2012 12:58:37 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-X-Sender: sstabellini@kaball.uk.xensource.com
-To: Ian Campbell <Ian.Campbell@citrix.com>
-In-Reply-To: <1345463624.28762.67.camel@zakaz.uk.xensource.com>
-Message-ID: <alpine.DEB.2.02.1208201257420.15568@kaball.uk.xensource.com>
-References: <1345133009-21941-1-git-send-email-konrad.wilk@oracle.com>
-       <1345133009-21941-7-git-send-email-konrad.wilk@oracle.com>
-       <alpine.DEB.2.02.1208171839590.15568@kaball.uk.xensource.com>
-       <20120817174549.GA14257@phenom.dumpdata.com> 
-       <alpine.DEB.2.02.1208201243180.15568@kaball.uk.xensource.com>
-       <1345463624.28762.67.camel@zakaz.uk.xensource.com>
-User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
-MIME-Version: 1.0
-Cc: "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
-       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
-       "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 06/11] xen/mmu: For 64-bit do not call
- xen_map_identity_early
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Mon, 20 Aug 2012, Ian Campbell wrote:
-> On Mon, 2012-08-20 at 12:45 +0100, Stefano Stabellini wrote:
-> > On Fri, 17 Aug 2012, Konrad Rzeszutek Wilk wrote:
-> > > On Fri, Aug 17, 2012 at 06:41:23PM +0100, Stefano Stabellini wrote:
-> > > > On Thu, 16 Aug 2012, Konrad Rzeszutek Wilk wrote:
-> > > > > B/c we do not need it. During the startup the Xen provides
-> > > > > us with all the memory mapped that we need to function.
-> > > > 
-> > > > Shouldn't we check to make sure that is actually true (I am thinking at
-> > > > nr_pt_frames)?
-> > > 
-> > > I was looking at the source code (hypervisor) to figure it out and
-> > > that is certainly true.
-> > > 
-> > > 
-> > > > Or is it actually stated somewhere in the Xen headers?
-> > > 
-> > > Couldn't find it, but after looking so long at the source code
-> > > I didn't even bother looking for it.
-> > > 
-> > > Thought to be honest - I only looked at how the 64-bit pagetables
-> > > were set up, so I didn't dare to touch the 32-bit. Hence the #ifdef
-> > 
-> > I think that we need to involve some Xen maintainers and get this
-> > written down somewhere in the public headers, otherwise we have no
-> > guarantees that it is going to stay as it is in the next Xen versions.
-> > 
-> > Maybe we just need to add a couple of lines of comment to
-> > xen/include/public/xen.h.
-> 
-> The start of day memory layout for PV guests is written down in the
-> comment just before struct start_info at
-> http://xenbits.xen.org/docs/unstable/hypercall/include,public,xen.h.html#Struct_start_info
-> 
-> (I haven't read this thread to determine if what is documented matches
-> what you guys are talking about relying on)
-
-but it is not written down how much physical memory is going to be
-mapped in the bootstrap page tables.
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<alpine.DEB.2.02.1208201318240.15568@kaball.uk.xensource.com> b/test/corpus/<alpine.DEB.2.02.1208201318240.15568@kaball.uk.xensource.com>
deleted file mode 100644 (file)
index ba2bb79..0000000
+++ /dev/null
@@ -1,139 +0,0 @@
-From xen-devel-bounces@lists.xen.org Mon Aug 20 13:24:23 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Mon, 20 Aug 2012 13:24:23 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T3R1l-0000NK-W1
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Mon, 20 Aug 2012 13:24:23 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T3Qy8-0001xW-Jt; Mon, 20 Aug 2012 12:20:32 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1T3Qy6-0001xQ-VM
-       for xen-devel@lists.xensource.com; Mon, 20 Aug 2012 12:20:31 +0000
-Received: from [85.158.143.35:37037] by server-3.bemta-4.messagelabs.com id
-       69/BD-09529-E8B22305; Mon, 20 Aug 2012 12:20:30 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-2.tower-21.messagelabs.com!1345465225!6639132!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDk2MTE=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 26377 invoked from network); 20 Aug 2012 12:20:26 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-2.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
-       20 Aug 2012 12:20:26 -0000
-X-IronPort-AV: E=Sophos;i="4.77,796,1336348800"; d="scan'208";a="14084201"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       20 Aug 2012 12:19:42 +0000
-Received: from kaball.uk.xensource.com (10.80.2.59) by
-       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
-       8.3.213.0; Mon, 20 Aug 2012 13:19:41 +0100
-Date: Mon, 20 Aug 2012 13:19:22 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-X-Sender: sstabellini@kaball.uk.xensource.com
-To: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-In-Reply-To: <20120820120649.GI13755@localhost.localdomain>
-Message-ID: <alpine.DEB.2.02.1208201318240.15568@kaball.uk.xensource.com>
-References: <1345133009-21941-1-git-send-email-konrad.wilk@oracle.com>
-       <1345133009-21941-7-git-send-email-konrad.wilk@oracle.com>
-       <alpine.DEB.2.02.1208171839590.15568@kaball.uk.xensource.com>
-       <20120817174549.GA14257@phenom.dumpdata.com>
-       <alpine.DEB.2.02.1208201243180.15568@kaball.uk.xensource.com>
-       <1345463624.28762.67.camel@zakaz.uk.xensource.com>
-       <alpine.DEB.2.02.1208201257420.15568@kaball.uk.xensource.com>
-       <20120820120649.GI13755@localhost.localdomain>
-User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
-MIME-Version: 1.0
-Cc: "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
-       "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
-       Ian Campbell <Ian.Campbell@citrix.com>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 06/11] xen/mmu: For 64-bit do not call
- xen_map_identity_early
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Mon, 20 Aug 2012, Konrad Rzeszutek Wilk wrote:
-> On Mon, Aug 20, 2012 at 12:58:37PM +0100, Stefano Stabellini wrote:
-> > On Mon, 20 Aug 2012, Ian Campbell wrote:
-> > > On Mon, 2012-08-20 at 12:45 +0100, Stefano Stabellini wrote:
-> > > > On Fri, 17 Aug 2012, Konrad Rzeszutek Wilk wrote:
-> > > > > On Fri, Aug 17, 2012 at 06:41:23PM +0100, Stefano Stabellini wrote:
-> > > > > > On Thu, 16 Aug 2012, Konrad Rzeszutek Wilk wrote:
-> > > > > > > B/c we do not need it. During the startup the Xen provides
-> > > > > > > us with all the memory mapped that we need to function.
-> > > > > > 
-> > > > > > Shouldn't we check to make sure that is actually true (I am thinking at
-> > > > > > nr_pt_frames)?
-> > > > > 
-> > > > > I was looking at the source code (hypervisor) to figure it out and
-> > > > > that is certainly true.
-> > > > > 
-> > > > > 
-> > > > > > Or is it actually stated somewhere in the Xen headers?
-> > > > > 
-> > > > > Couldn't find it, but after looking so long at the source code
-> > > > > I didn't even bother looking for it.
-> > > > > 
-> > > > > Thought to be honest - I only looked at how the 64-bit pagetables
-> > > > > were set up, so I didn't dare to touch the 32-bit. Hence the #ifdef
-> > > > 
-> > > > I think that we need to involve some Xen maintainers and get this
-> > > > written down somewhere in the public headers, otherwise we have no
-> > > > guarantees that it is going to stay as it is in the next Xen versions.
-> > > > 
-> > > > Maybe we just need to add a couple of lines of comment to
-> > > > xen/include/public/xen.h.
-> > > 
-> > > The start of day memory layout for PV guests is written down in the
-> > > comment just before struct start_info at
-> > > http://xenbits.xen.org/docs/unstable/hypercall/include,public,xen.h.html#Struct_start_info
-> > > 
-> > > (I haven't read this thread to determine if what is documented matches
-> > > what you guys are talking about relying on)
-> > 
-> > but it is not written down how much physical memory is going to be
-> > mapped in the bootstrap page tables.
-> 
-> Considering that only pvops kernel has this change I think we are ok?
-
-We are OK if we write it down :)
-Otherwise it might change in the future and we won't even know what the
-correct behavior is supposed to be.
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<alpine.DEB.2.02.1208211514130.15568@kaball.uk.xensource.com> b/test/corpus/<alpine.DEB.2.02.1208211514130.15568@kaball.uk.xensource.com>
deleted file mode 100644 (file)
index f4a0a68..0000000
+++ /dev/null
@@ -1,143 +0,0 @@
-From xen-devel-bounces@lists.xen.org Tue Aug 21 15:24:32 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Tue, 21 Aug 2012 15:24:32 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T3pNa-00019b-9t
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 21 Aug 2012 15:24:32 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T3pID-0003OS-Ac; Tue, 21 Aug 2012 14:18:53 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1T3pI9-0003OJ-Pz
-       for xen-devel@lists.xensource.com; Tue, 21 Aug 2012 14:18:51 +0000
-Received: from [85.158.138.51:57035] by server-11.bemta-3.messagelabs.com id
-       30/F1-23152-8C893305; Tue, 21 Aug 2012 14:18:48 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-10.tower-174.messagelabs.com!1345558728!23406160!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDk4OTY=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 20634 invoked from network); 21 Aug 2012 14:18:48 -0000
-Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-10.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
-       21 Aug 2012 14:18:48 -0000
-X-IronPort-AV: E=Sophos;i="4.77,802,1336348800"; d="scan'208";a="14108281"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       21 Aug 2012 14:18:47 +0000
-Received: from kaball.uk.xensource.com (10.80.2.59) by
-       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
-       8.3.213.0; Tue, 21 Aug 2012 15:18:47 +0100
-Date: Tue, 21 Aug 2012 15:18:26 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-X-Sender: sstabellini@kaball.uk.xensource.com
-To: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-In-Reply-To: <1345133009-21941-12-git-send-email-konrad.wilk@oracle.com>
-Message-ID: <alpine.DEB.2.02.1208211514130.15568@kaball.uk.xensource.com>
-References: <1345133009-21941-1-git-send-email-konrad.wilk@oracle.com>
-       <1345133009-21941-12-git-send-email-konrad.wilk@oracle.com>
-User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
-       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 11/11] xen/mmu: Release just the MFN list,
- not MFN list and part of pagetables.
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Thu, 16 Aug 2012, Konrad Rzeszutek Wilk wrote:
-> We call memblock_reserve for [start of mfn list] -> [PMD aligned end
-> of mfn list] instead of <start of mfn list> -> <page aligned end of mfn list].
-> 
-> This has the disastrous effect that if at bootup the end of mfn_list is
-> not PMD aligned we end up returning to memblock parts of the region
-> past the mfn_list array. And those parts are the PTE tables with
-> the disastrous effect of seeing this at bootup:
-
-This patch looks wrong to me.
-
-Aren't you changing the way mfn_list is reserved using memblock in patch
-#3? Moreover it really seems to me that you are PAGE_ALIGN'ing size
-rather than PMD_ALIGN'ing it there.
-
-
-> Write protecting the kernel read-only data: 10240k
-> Freeing unused kernel memory: 1860k freed
-> Freeing unused kernel memory: 200k freed
-> (XEN) mm.c:2429:d0 Bad type (saw 1400000000000002 != exp 7000000000000000) for mfn 116a80 (pfn 14e26)
-> ...
-> (XEN) mm.c:908:d0 Error getting mfn 116a83 (pfn 14e2a) from L1 entry 8000000116a83067 for l1e_owner=0, pg_owner=0
-> (XEN) mm.c:908:d0 Error getting mfn 4040 (pfn 5555555555555555) from L1 entry 0000000004040601 for l1e_owner=0, pg_owner=0
-> .. and so on.
->
-> Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-> ---
->  arch/x86/xen/mmu.c |    2 +-
->  1 files changed, 1 insertions(+), 1 deletions(-)
-> 
-> diff --git a/arch/x86/xen/mmu.c b/arch/x86/xen/mmu.c
-> index 5a880b8..6019c22 100644
-> --- a/arch/x86/xen/mmu.c
-> +++ b/arch/x86/xen/mmu.c
-> @@ -1227,7 +1227,6 @@ static void __init xen_pagetable_setup_done(pgd_t *base)
->                      /* We should be in __ka space. */
->                      BUG_ON(xen_start_info->mfn_list < __START_KERNEL_map);
->                      addr = xen_start_info->mfn_list;
-> -                    size = PAGE_ALIGN(xen_start_info->nr_pages * sizeof(unsigned long));
->                      /* We roundup to the PMD, which means that if anybody at this stage is
->                       * using the __ka address of xen_start_info or xen_start_info->shared_info
->                       * they are in going to crash. Fortunatly we have already revectored
-> @@ -1235,6 +1234,7 @@ static void __init xen_pagetable_setup_done(pgd_t *base)
->                      size = roundup(size, PMD_SIZE);
->                      xen_cleanhighmap(addr, addr + size);
->  
-> +                    size = PAGE_ALIGN(xen_start_info->nr_pages * sizeof(unsigned long));
->                      memblock_free(__pa(xen_start_info->mfn_list), size);
->                      /* And revector! Bye bye old array */
->                      xen_start_info->mfn_list = new_mfn_list;
-> -- 
-> 1.7.7.6
-> 
-> 
-> _______________________________________________
-> Xen-devel mailing list
-> Xen-devel@lists.xen.org
-> http://lists.xen.org/xen-devel
-> 
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<alpine.DEB.2.02.1208211626470.15568@kaball.uk.xensource.com> b/test/corpus/<alpine.DEB.2.02.1208211626470.15568@kaball.uk.xensource.com>
deleted file mode 100644 (file)
index 3123b91..0000000
+++ /dev/null
@@ -1,104 +0,0 @@
-From xen-devel-bounces@lists.xen.org Tue Aug 21 16:32:05 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Tue, 21 Aug 2012 16:32:05 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T3qQy-0001Tl-3i
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 21 Aug 2012 16:32:05 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T3qNO-0005Q2-Iu; Tue, 21 Aug 2012 15:28:18 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1T3qNM-0005Pj-FC
-       for xen-devel@lists.xensource.com; Tue, 21 Aug 2012 15:28:16 +0000
-Received: from [85.158.143.35:17566] by server-3.bemta-4.messagelabs.com id
-       D8/36-09529-F09A3305; Tue, 21 Aug 2012 15:28:15 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-11.tower-21.messagelabs.com!1345562895!13441933!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDk4OTY=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 17755 invoked from network); 21 Aug 2012 15:28:15 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-11.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
-       21 Aug 2012 15:28:15 -0000
-X-IronPort-AV: E=Sophos;i="4.77,802,1336348800"; d="scan'208";a="14110072"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       21 Aug 2012 15:28:14 +0000
-Received: from kaball.uk.xensource.com (10.80.2.59) by
-       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
-       8.3.213.0; Tue, 21 Aug 2012 16:28:14 +0100
-Date: Tue, 21 Aug 2012 16:27:53 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-X-Sender: sstabellini@kaball.uk.xensource.com
-To: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-In-Reply-To: <20120821145713.GG20289@phenom.dumpdata.com>
-Message-ID: <alpine.DEB.2.02.1208211626470.15568@kaball.uk.xensource.com>
-References: <1345133009-21941-1-git-send-email-konrad.wilk@oracle.com>
-       <1345133009-21941-12-git-send-email-konrad.wilk@oracle.com>
-       <alpine.DEB.2.02.1208211514130.15568@kaball.uk.xensource.com>
-       <20120821145713.GG20289@phenom.dumpdata.com>
-User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
-       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 11/11] xen/mmu: Release just the MFN list,
- not MFN list and part of pagetables.
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Tue, 21 Aug 2012, Konrad Rzeszutek Wilk wrote:
-> On Tue, Aug 21, 2012 at 03:18:26PM +0100, Stefano Stabellini wrote:
-> > On Thu, 16 Aug 2012, Konrad Rzeszutek Wilk wrote:
-> > > We call memblock_reserve for [start of mfn list] -> [PMD aligned end
-> > > of mfn list] instead of <start of mfn list> -> <page aligned end of mfn list].
-> > > 
-> > > This has the disastrous effect that if at bootup the end of mfn_list is
-> > > not PMD aligned we end up returning to memblock parts of the region
-> > > past the mfn_list array. And those parts are the PTE tables with
-> > > the disastrous effect of seeing this at bootup:
-> > 
-> > This patch looks wrong to me.
-> 
-> Its easier to see if you stick the patch in the code. The size = part
-> was actually also done earlier.
-
-Yes, you are right, I see that know.
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<alpine.DEB.2.02.1208221146230.15568@kaball.uk.xensource.com> b/test/corpus/<alpine.DEB.2.02.1208221146230.15568@kaball.uk.xensource.com>
deleted file mode 100644 (file)
index 408a70c..0000000
+++ /dev/null
@@ -1,267 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Aug 22 11:55:49 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 22 Aug 2012 11:55:49 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T48b9-0000tm-1i
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 22 Aug 2012 11:55:49 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T48W8-0000p4-Qb; Wed, 22 Aug 2012 10:50:32 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1T48W6-0000oz-PL
-       for xen-devel@lists.xensource.com; Wed, 22 Aug 2012 10:50:31 +0000
-Received: from [85.158.139.83:20257] by server-4.bemta-5.messagelabs.com id
-       BC/9D-12386-579B4305; Wed, 22 Aug 2012 10:50:29 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-8.tower-182.messagelabs.com!1345632628!18184919!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTAzMzU=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 8852 invoked from network); 22 Aug 2012 10:50:29 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-8.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
-       22 Aug 2012 10:50:29 -0000
-X-IronPort-AV: E=Sophos;i="4.77,808,1336348800"; d="scan'208";a="14122906"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       22 Aug 2012 10:49:02 +0000
-Received: from kaball.uk.xensource.com (10.80.2.59) by
-       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
-       8.3.213.0; Wed, 22 Aug 2012 11:49:02 +0100
-Date: Wed, 22 Aug 2012 11:48:40 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-X-Sender: sstabellini@kaball.uk.xensource.com
-To: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-In-Reply-To: <20120821190317.GA13035@phenom.dumpdata.com>
-Message-ID: <alpine.DEB.2.02.1208221146230.15568@kaball.uk.xensource.com>
-References: <1345133009-21941-1-git-send-email-konrad.wilk@oracle.com>
-       <1345133009-21941-3-git-send-email-konrad.wilk@oracle.com>
-       <alpine.DEB.2.02.1208171835010.15568@kaball.uk.xensource.com>
-       <20120820141305.GA2713@phenom.dumpdata.com>
-       <20120821172732.GA23715@phenom.dumpdata.com>
-       <20120821190317.GA13035@phenom.dumpdata.com>
-User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
-       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
-       "JBeulich@suse.com" <JBeulich@suse.com>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
-Subject: Re: [Xen-devel] Q:pt_base in COMPAT mode offset by two pages.
- Was:Re: [PATCH 02/11] xen/x86: Use memblock_reserve for sensitive areas.
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Tue, 21 Aug 2012, Konrad Rzeszutek Wilk wrote:
-> On Tue, Aug 21, 2012 at 01:27:32PM -0400, Konrad Rzeszutek Wilk wrote:
-> > On Mon, Aug 20, 2012 at 10:13:05AM -0400, Konrad Rzeszutek Wilk wrote:
-> > > On Fri, Aug 17, 2012 at 06:35:12PM +0100, Stefano Stabellini wrote:
-> > > > On Thu, 16 Aug 2012, Konrad Rzeszutek Wilk wrote:
-> > > > > instead of a big memblock_reserve. This way we can be more
-> > > > > selective in freeing regions (and it also makes it easier
-> > > > > to understand where is what).
-> > > > > 
-> > > > > [v1: Move the auto_translate_physmap to proper line]
-> > > > > [v2: Per Stefano suggestion add more comments]
-> > > > > Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-> > > > 
-> > > > much better now!
-> > > 
-> > > Thought interestingly enough it breaks 32-bit dom0s (and only dom0s).
-> > > Will have a revised patch posted shortly.
-> > 
-> > Jan, I thought something odd. Part of this code replaces this:
-> > 
-> >    memblock_reserve(__pa(xen_start_info->mfn_list),
-> >            xen_start_info->pt_base - xen_start_info->mfn_list);
-> > 
-> > with a more region-by-region area. What I found out that if I boot this
-> > as 32-bit guest with a 64-bit hypervisor the xen_start_info->pt_base is
-> > actually wrong.
-> > 
-> > Specifically this is what bootup says:
-> > 
-> > (good working case - 32bit hypervisor with 32-bit dom0):
-> > (XEN)  Loaded kernel: c1000000->c1a23000
-> > (XEN)  Init. ramdisk: c1a23000->cf730e00
-> > (XEN)  Phys-Mach map: cf731000->cf831000
-> > (XEN)  Start info:    cf831000->cf83147c
-> > (XEN)  Page tables:   cf832000->cf8b5000
-> > (XEN)  Boot stack:    cf8b5000->cf8b6000
-> > (XEN)  TOTAL:         c0000000->cfc00000
-> > 
-> > [    0.000000] PT: cf832000 (f832000)
-> > [    0.000000] Reserving PT: f832000->f8b5000
-> > 
-> > And with a 64-bit hypervisor:
-> > 
-> > XEN) VIRTUAL MEMORY ARRANGEMENT:
-> > (XEN)  Loaded kernel: 00000000c1000000->00000000c1a23000
-> > (XEN)  Init. ramdisk: 00000000c1a23000->00000000cf730e00
-> > (XEN)  Phys-Mach map: 00000000cf731000->00000000cf831000
-> > (XEN)  Start info:    00000000cf831000->00000000cf8314b4
-> > (XEN)  Page tables:   00000000cf832000->00000000cf8b6000
-> > (XEN)  Boot stack:    00000000cf8b6000->00000000cf8b7000
-> > (XEN)  TOTAL:         00000000c0000000->00000000cfc00000
-> > (XEN)  ENTRY ADDRESS: 00000000c16bb22c
-> > 
-> > [    0.000000] PT: cf834000 (f834000)
-> > [    0.000000] Reserving PT: f834000->f8b8000
-> > 
-> > So the pt_base is offset by two pages. And looking at c/s 13257
-> > its not clear to me why this two page offset was added?
-> > 
-> > The toolstack works fine - so launching 32-bit guests either
-> > under a 32-bit hypervisor or 64-bit works fine:
-> > ] domainbuilder: detail: xc_dom_alloc_segment:   page tables  : 0xcf805000 -> 0xcf885000  (pfn 0xf805 + 0x80 pages)
-> > [    0.000000] PT: cf805000 (f805000)
-> > 
-> 
-> And this patch on top of the others fixes this..
-> 
-> 
-> >From 806c312e50f122c47913145cf884f53dd09d9199 Mon Sep 17 00:00:00 2001
-> From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-> Date: Tue, 21 Aug 2012 14:31:24 -0400
-> Subject: [PATCH] xen/x86: Workaround 64-bit hypervisor and 32-bit initial
->  domain.
-> 
-> If a 64-bit hypervisor is booted with a 32-bit initial domain,
-> the hypervisor deals with the initial domain as "compat" and
-> does some extra adjustments (like pagetables are 4 bytes instead
-> of 8). It also adjusts the xen_start_info->pt_base incorrectly.
-> 
-> When booted with a 32-bit hypervisor (32-bit initial domain):
-> ..
-> (XEN)  Start info:    cf831000->cf83147c
-> (XEN)  Page tables:   cf832000->cf8b5000
-> ..
-> [    0.000000] PT: cf832000 (f832000)
-> [    0.000000] Reserving PT: f832000->f8b5000
-> 
-> And with a 64-bit hypervisor:
-> (XEN)  Start info:    00000000cf831000->00000000cf8314b4
-> (XEN)  Page tables:   00000000cf832000->00000000cf8b6000
-> 
-> [    0.000000] PT: cf834000 (f834000)
-> [    0.000000] Reserving PT: f834000->f8b8000
-> 
-> To deal with this, we keep keep track of the highest physical
-> address we have reserved via memblock_reserve. If that address
-> does not overlap with pt_base, we have a gap which we reserve.
-> 
-> Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-> ---
->  arch/x86/xen/enlighten.c |   30 +++++++++++++++++++++---------
->  1 files changed, 21 insertions(+), 9 deletions(-)
-> 
-> diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c
-> index e532eb5..511f92d 100644
-> --- a/arch/x86/xen/enlighten.c
-> +++ b/arch/x86/xen/enlighten.c
-> @@ -1002,19 +1002,24 @@ static int xen_write_msr_safe(unsigned int msr, unsigned low, unsigned high)
->   * If the MFN is not in the m2p (provided to us by the hypervisor) this
->   * function won't do anything. In practice this means that the XenBus
->   * MFN won't be available for the initial domain. */
-> -static void __init xen_reserve_mfn(unsigned long mfn)
-> +static unsigned long __init xen_reserve_mfn(unsigned long mfn)
->  {
-> -    unsigned long pfn;
-> +    unsigned long pfn, end_pfn = 0;
->  
->      if (!mfn)
-> -            return;
-> +            return end_pfn;
-> +
->      pfn = mfn_to_pfn(mfn);
-> -    if (phys_to_machine_mapping_valid(pfn))
-> -            memblock_reserve(PFN_PHYS(pfn), PAGE_SIZE);
-> +    if (phys_to_machine_mapping_valid(pfn)) {
-> +            end_pfn = PFN_PHYS(pfn) + PAGE_SIZE;
-> +            memblock_reserve(PFN_PHYS(pfn), end_pfn);
-> +    }
-> +    return end_pfn;
->  }
->  static void __init xen_reserve_internals(void)
->  {
->      unsigned long size;
-> +    unsigned long last_phys = 0;
->  
->      if (!xen_pv_domain())
->              return;
-> @@ -1022,12 +1027,13 @@ static void __init xen_reserve_internals(void)
->      /* xen_start_info does not exist in the M2P, hence can't use
->       * xen_reserve_mfn. */
->      memblock_reserve(__pa(xen_start_info), PAGE_SIZE);
-> +    last_phys = __pa(xen_start_info) + PAGE_SIZE;
->  
-> -    xen_reserve_mfn(PFN_DOWN(xen_start_info->shared_info));
-> -    xen_reserve_mfn(xen_start_info->store_mfn);
-> +    last_phys = max(xen_reserve_mfn(PFN_DOWN(xen_start_info->shared_info)), last_phys);
-> +    last_phys = max(xen_reserve_mfn(xen_start_info->store_mfn), last_phys);
->  
->      if (!xen_initial_domain())
-> -            xen_reserve_mfn(xen_start_info->console.domU.mfn);
-> +            last_phys = max(xen_reserve_mfn(xen_start_info->console.domU.mfn), last_phys);
->  
->      if (xen_feature(XENFEAT_auto_translated_physmap))
->              return;
-> @@ -1043,8 +1049,14 @@ static void __init xen_reserve_internals(void)
->       * a lot (and call memblock_reserve for each PAGE), so lets just use
->       * the easy way and reserve it wholesale. */
->      memblock_reserve(__pa(xen_start_info->mfn_list), size);
-> -
-> +    last_phys = max(__pa(xen_start_info->mfn_list) + size, last_phys);
->      /* The pagetables are reserved in mmu.c */
-> +
-> +    /* Under 64-bit hypervisor with a 32-bit domain, the hypervisor
-> +     * offsets the pt_base by two pages. Hence the reservation that is done
-> +     * in mmu.c misses two pages. We correct it here if we detect this. */
-> +    if (last_phys < __pa(xen_start_info->pt_base))
-> +            memblock_reserve(last_phys, __pa(xen_start_info->pt_base) - last_phys);
->  }
-
-What are these two pages used for? They are not documented in xen.h, why
-should we reserve them?
-
-After all we still have:
-
-memblock_reserve(PFN_PHYS(pt_base), (pt_end - pt_base) * PAGE_SIZE);
-
-that should protect what we are interested in anyway...
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<alpine.DEB.2.02.1208221159560.15568@kaball.uk.xensource.com> b/test/corpus/<alpine.DEB.2.02.1208221159560.15568@kaball.uk.xensource.com>
deleted file mode 100644 (file)
index 13e5ac5..0000000
+++ /dev/null
@@ -1,223 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Aug 22 12:12:45 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 22 Aug 2012 12:12:45 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T48rW-0000w5-VW
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 22 Aug 2012 12:12:45 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T48mq-0001BP-QJ; Wed, 22 Aug 2012 11:07:48 +0000
-Received: from mail27.messagelabs.com ([193.109.254.147])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1T48mp-0001BH-5n
-       for xen-devel@lists.xensource.com; Wed, 22 Aug 2012 11:07:47 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-3.tower-27.messagelabs.com!1345633647!10176431!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTAzMzU=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 2207 invoked from network); 22 Aug 2012 11:07:27 -0000
-Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-3.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
-       22 Aug 2012 11:07:27 -0000
-X-IronPort-AV: E=Sophos;i="4.77,808,1336348800"; d="scan'208";a="14123292"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       22 Aug 2012 11:07:27 +0000
-Received: from kaball.uk.xensource.com (10.80.2.59) by
-       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
-       8.3.213.0; Wed, 22 Aug 2012 12:07:27 +0100
-Date: Wed, 22 Aug 2012 12:07:05 +0100
-From: Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-X-X-Sender: sstabellini@kaball.uk.xensource.com
-To: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>
-Message-ID: <alpine.DEB.2.02.1208221159560.15568@kaball.uk.xensource.com>
-User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
-MIME-Version: 1.0
-Content-ID: <alpine.DEB.2.02.1208221159562.15568@kaball.uk.xensource.com>
-Cc: Tim Deegan <tim@xen.org>, Ian Campbell <Ian.Campbell@citrix.com>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD autolearn=ham version=3.3.1
-Subject: [Xen-devel] [PATCH v4 0/6] ARM hypercall ABI: 64 bit ready
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-Hi all,
-this patch series makes the necessary changes to make sure that the
-current ARM hypercall ABI can be used as-is on 64 bit ARM platforms:
-
-- it defines xen_ulong_t as uint64_t on ARM;
-- it introduces a new macro to handle guest pointers, called
-XEN_GUEST_HANDLE_PARAM (that has size 4 bytes on aarch and is going to
-have size 8 bytes on aarch64);
-- it introduces two new macros to convert XEN_GUEST_HANDLE_PARAM to
-XEN_GUEST_HANDLE and vice versa;
-- it replaces all the occurrences of XEN_GUEST_HANDLE in hypercall
-parameters with XEN_GUEST_HANDLE_PARAM.
-
-
-On x86 and ia64 things should stay exactly the same.
-
-On ARM all the unsigned long and the guest pointers that are members of
-a struct become size 8 byte (both aarch and aarch64).
-However guest pointers that are passed as hypercall arguments in
-registers are going to be 4 bytes on aarch and 8 bytes on aarch64.
-
-It is based on Ian's arm-for-4.3 branch. 
-
-
-Changes in v4:
-- make both XEN_GUEST_HANDLE and XEN_GUEST_HANDLE_PARAM unions on ARM;
-- simplify set_xen_guest_handle_raw on ARM;
-- add type checking in guest_handle_to_param and guest_handle_from_param
-(all architectures).
-
-Changes in v3:
-- default all the guest_handle_* conversion macros to
-  XEN_GUEST_HANDLE_PARAM as return type;
-- add two new guest_handle_to_param and guest_handle_from_param macros
-  to do conversions.
-
-Changes in v2:
-- do not use an anonymous union in struct xen_add_to_physmap; 
-- do not replace the unsigned long in x86 specific calls;
-- do not replace the unsigned long in multicall_entry;
-- add missing include "xen.h" in version.h;
-- use proper printf flag for xen_ulong_t in python/xen/lowlevel/xc/xc;
-- add 2 missing #define _XEN_GUEST_HANDLE_PARAM for the compilation of
-the compat code;
-- add a patch to limit the maximum number of extents handled by
-do_memory_op;
-- remove the patch "introduce __lshrdi3 and __aeabi_llsr" that is
-already in the for-4.3 branch.
-
-
-
-Stefano Stabellini (6):
-      xen: improve changes to xen_add_to_physmap
-      xen: xen_ulong_t substitution
-      xen: change the limit of nr_extents to UINT_MAX >> MEMOP_EXTENT_SHIFT
-      xen: introduce XEN_GUEST_HANDLE_PARAM
-      xen: replace XEN_GUEST_HANDLE with XEN_GUEST_HANDLE_PARAM when appropriate
-      xen: more substitutions
-
- tools/firmware/hvmloader/pci.c           |    2 +-
- tools/python/xen/lowlevel/xc/xc.c        |    2 +-
- xen/arch/arm/domain.c                    |    2 +-
- xen/arch/arm/domctl.c                    |    2 +-
- xen/arch/arm/hvm.c                       |    2 +-
- xen/arch/arm/mm.c                        |    4 +-
- xen/arch/arm/physdev.c                   |    2 +-
- xen/arch/arm/sysctl.c                    |    2 +-
- xen/arch/x86/compat.c                    |    2 +-
- xen/arch/x86/cpu/mcheck/mce.c            |    2 +-
- xen/arch/x86/domain.c                    |    2 +-
- xen/arch/x86/domctl.c                    |    2 +-
- xen/arch/x86/efi/runtime.c               |    2 +-
- xen/arch/x86/hvm/hvm.c                   |   26 +++++++-------
- xen/arch/x86/microcode.c                 |    2 +-
- xen/arch/x86/mm.c                        |   36 ++++++++++++--------
- xen/arch/x86/mm/hap/hap.c                |    2 +-
- xen/arch/x86/mm/mem_event.c              |    2 +-
- xen/arch/x86/mm/paging.c                 |    2 +-
- xen/arch/x86/mm/shadow/common.c          |    2 +-
- xen/arch/x86/oprofile/backtrace.c        |    4 ++-
- xen/arch/x86/oprofile/xenoprof.c         |    6 ++--
- xen/arch/x86/physdev.c                   |    2 +-
- xen/arch/x86/platform_hypercall.c        |   10 ++++--
- xen/arch/x86/sysctl.c                    |    2 +-
- xen/arch/x86/traps.c                     |    2 +-
- xen/arch/x86/x86_32/mm.c                 |    2 +-
- xen/arch/x86/x86_32/traps.c              |    2 +-
- xen/arch/x86/x86_64/compat/mm.c          |   16 ++++++---
- xen/arch/x86/x86_64/cpu_idle.c           |    4 ++-
- xen/arch/x86/x86_64/cpufreq.c            |    4 ++-
- xen/arch/x86/x86_64/domain.c             |    2 +-
- xen/arch/x86/x86_64/mm.c                 |    2 +-
- xen/arch/x86/x86_64/platform_hypercall.c |    1 +
- xen/arch/x86/x86_64/traps.c              |    2 +-
- xen/common/compat/domain.c               |    2 +-
- xen/common/compat/grant_table.c          |    8 ++--
- xen/common/compat/memory.c               |    4 +-
- xen/common/compat/multicall.c            |    1 +
- xen/common/domain.c                      |    2 +-
- xen/common/domctl.c                      |    2 +-
- xen/common/event_channel.c               |    2 +-
- xen/common/grant_table.c                 |   36 ++++++++++----------
- xen/common/kernel.c                      |    4 +-
- xen/common/kexec.c                       |   16 ++++----
- xen/common/memory.c                      |    6 ++--
- xen/common/multicall.c                   |    2 +-
- xen/common/schedule.c                    |    2 +-
- xen/common/sysctl.c                      |    2 +-
- xen/common/xenoprof.c                    |    8 ++--
- xen/drivers/acpi/pmstat.c                |    2 +-
- xen/drivers/char/console.c               |    6 ++--
- xen/drivers/passthrough/iommu.c          |    2 +-
- xen/include/asm-arm/guest_access.h       |   32 ++++++++++++++++--
- xen/include/asm-arm/hypercall.h          |    2 +-
- xen/include/asm-arm/mm.h                 |    2 +-
- xen/include/asm-x86/guest_access.h       |   29 ++++++++++++++--
- xen/include/asm-x86/hap.h                |    2 +-
- xen/include/asm-x86/hypercall.h          |   24 +++++++-------
- xen/include/asm-x86/mem_event.h          |    2 +-
- xen/include/asm-x86/mm.h                 |    8 ++--
- xen/include/asm-x86/paging.h             |    2 +-
- xen/include/asm-x86/processor.h          |    2 +-
- xen/include/asm-x86/shadow.h             |    2 +-
- xen/include/asm-x86/xenoprof.h           |    6 ++--
- xen/include/public/arch-arm.h            |   32 ++++++++++++++----
- xen/include/public/arch-ia64.h           |    9 +++++
- xen/include/public/arch-x86/xen.h        |    9 +++++
- xen/include/public/memory.h              |   11 ++++--
- xen/include/public/version.h             |    4 ++-
- xen/include/xen/acpi.h                   |    4 +-
- xen/include/xen/hypercall.h              |   52 +++++++++++++++---------------
- xen/include/xen/iommu.h                  |    2 +-
- xen/include/xen/tmem_xen.h               |    2 +-
- xen/include/xen/xencomm.h                |   22 ++++++++++++-
- xen/include/xsm/xsm.h                    |    4 +-
- xen/xsm/dummy.c                          |    2 +-
- xen/xsm/flask/flask_op.c                 |    4 +-
- xen/xsm/flask/hooks.c                    |    2 +-
- xen/xsm/xsm_core.c                       |    2 +-
- 80 files changed, 336 insertions(+), 206 deletions(-)
-
-Cheers,
-
-Stefano
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<alpine.DEB.2.02.1208221540570.15568@kaball.uk.xensource.com> b/test/corpus/<alpine.DEB.2.02.1208221540570.15568@kaball.uk.xensource.com>
deleted file mode 100644 (file)
index 08b5761..0000000
+++ /dev/null
@@ -1,108 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Aug 22 15:46:09 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 22 Aug 2012 15:46:09 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T4CC3-0001lL-Lx
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 22 Aug 2012 15:46:09 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T4C8U-0000Cl-V8; Wed, 22 Aug 2012 14:42:22 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1T4C8S-0000CU-M4
-       for xen-devel@lists.xensource.com; Wed, 22 Aug 2012 14:42:20 +0000
-Received: from [85.158.143.35:53519] by server-3.bemta-4.messagelabs.com id
-       94/8E-09529-CCFE4305; Wed, 22 Aug 2012 14:42:20 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-16.tower-21.messagelabs.com!1345646538!13193740!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTAzMzU=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 26310 invoked from network); 22 Aug 2012 14:42:18 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-16.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
-       22 Aug 2012 14:42:18 -0000
-X-IronPort-AV: E=Sophos;i="4.77,808,1336348800"; d="scan'208";a="14128934"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       22 Aug 2012 14:41:34 +0000
-Received: from kaball.uk.xensource.com (10.80.2.59) by
-       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
-       8.3.213.0; Wed, 22 Aug 2012 15:41:34 +0100
-Date: Wed, 22 Aug 2012 15:41:12 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-X-Sender: sstabellini@kaball.uk.xensource.com
-To: Jan Beulich <JBeulich@suse.com>
-In-Reply-To: <503504FE0200007800096F08@nat28.tlf.novell.com>
-Message-ID: <alpine.DEB.2.02.1208221540570.15568@kaball.uk.xensource.com>
-References: <1345133009-21941-1-git-send-email-konrad.wilk@oracle.com>
-       <1345133009-21941-3-git-send-email-konrad.wilk@oracle.com>
-       <alpine.DEB.2.02.1208171835010.15568@kaball.uk.xensource.com>
-       <20120820141305.GA2713@phenom.dumpdata.com>
-       <20120821172732.GA23715@phenom.dumpdata.com>
-       <20120821190317.GA13035@phenom.dumpdata.com>
-       <503504FE0200007800096F08@nat28.tlf.novell.com>
-User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
-MIME-Version: 1.0
-Cc: "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>,
-       "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
-       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] Q:pt_base in COMPAT mode offset by two pages.
- Was:Re: [PATCH 02/11] xen/x86: Use memblock_reserve for sensitive areas.
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Wed, 22 Aug 2012, Jan Beulich wrote:
-> >> The toolstack works fine - so launching 32-bit guests either
-> >> under a 32-bit hypervisor or 64-bit works fine:
-> >> ] domainbuilder: detail: xc_dom_alloc_segment:   page tables  : 0xcf805000 -> 
-> > 0xcf885000  (pfn 0xf805 + 0x80 pages)
-> >> [    0.000000] PT: cf805000 (f805000)
-> >> 
-> > 
-> > And this patch on top of the others fixes this..
-> 
-> I didn't look at this in too close detail, but I started to get
-> afraid that you might be making the code dependent on
-> many hypervisor implementation details. And should the
-> above turn out to be a bug in the hypervisor, I hope your
-> kernel side changes won't make it impossible to fix that bug.
-
-I agree
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<alpine.DEB.2.02.1208231656160.15568@kaball.uk.xensource.com> b/test/corpus/<alpine.DEB.2.02.1208231656160.15568@kaball.uk.xensource.com>
deleted file mode 100644 (file)
index 06c3709..0000000
+++ /dev/null
@@ -1,187 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Aug 23 17:01:58 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 23 Aug 2012 17:01:58 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T4Zr1-0002y5-SX
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 23 Aug 2012 17:01:58 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T4ZnA-0006W5-Jj; Thu, 23 Aug 2012 15:57:56 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1T4Zn8-0006W0-Kw
-       for xen-devel@lists.xensource.com; Thu, 23 Aug 2012 15:57:54 +0000
-Received: from [85.158.138.51:47612] by server-8.bemta-3.messagelabs.com id
-       3A/31-29583-10356305; Thu, 23 Aug 2012 15:57:53 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-12.tower-174.messagelabs.com!1345737473!19738322!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTA0MjY=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 18803 invoked from network); 23 Aug 2012 15:57:53 -0000
-Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-12.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
-       23 Aug 2012 15:57:53 -0000
-X-IronPort-AV: E=Sophos;i="4.80,300,1344211200"; d="scan'208";a="14151314"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       23 Aug 2012 15:57:52 +0000
-Received: from kaball.uk.xensource.com (10.80.2.59) by
-       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
-       8.3.213.0; Thu, 23 Aug 2012 16:57:52 +0100
-Date: Thu, 23 Aug 2012 16:57:29 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-X-Sender: sstabellini@kaball.uk.xensource.com
-To: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-In-Reply-To: <20120823154012.GA18845@phenom.dumpdata.com>
-Message-ID: <alpine.DEB.2.02.1208231656160.15568@kaball.uk.xensource.com>
-References: <1345133009-21941-1-git-send-email-konrad.wilk@oracle.com>
-       <1345133009-21941-7-git-send-email-konrad.wilk@oracle.com>
-       <alpine.DEB.2.02.1208171839590.15568@kaball.uk.xensource.com>
-       <20120817174549.GA14257@phenom.dumpdata.com>
-       <alpine.DEB.2.02.1208201243180.15568@kaball.uk.xensource.com>
-       <1345463624.28762.67.camel@zakaz.uk.xensource.com>
-       <alpine.DEB.2.02.1208201257420.15568@kaball.uk.xensource.com>
-       <20120823154012.GA18845@phenom.dumpdata.com>
-User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
-MIME-Version: 1.0
-Cc: "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
-       "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
-       Ian Campbell <Ian.Campbell@citrix.com>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.4 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 06/11] xen/mmu: For 64-bit do not call
- xen_map_identity_early
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Thu, 23 Aug 2012, Konrad Rzeszutek Wilk wrote:
-> >From 43fd7a5d9ecd31c2fc26851523cd4b5f7650fb39 Mon Sep 17 00:00:00 2001
-> From: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-> Date: Thu, 12 Jul 2012 13:59:36 -0400
-> Subject: [PATCH] xen/mmu: For 64-bit do not call xen_map_identity_early
-> 
-> B/c we do not need it. During the startup the Xen provides
-                                            ^ remove the
-> us with all the initial memory mapped that we need to function.
-> 
-> The initial memory mapped is up to the bootstack, which means
-> we can reference using __ka up to 4.f):
-
-Thanks, that is what I was looking for.
-
-> (from xen/interface/xen.h):
-> 
->  4. This the order of bootstrap elements in the initial virtual region:
->    a. relocated kernel image
->    b. initial ram disk              [mod_start, mod_len]
->    c. list of allocated page frames [mfn_list, nr_pages]
->    d. start_info_t structure        [register ESI (x86)]
->    e. bootstrap page tables         [pt_base, CR3 (x86)]
->    f. bootstrap stack               [register ESP (x86)]
-> 
-> (initial ram disk may be ommitted).
-> 
-> [v1: More comments in git commit]
-> Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-
-Acked-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-
-
-> ---
->  arch/x86/xen/mmu.c |   11 +++++------
->  1 files changed, 5 insertions(+), 6 deletions(-)
-> 
-> diff --git a/arch/x86/xen/mmu.c b/arch/x86/xen/mmu.c
-> index 7247e5a..a59070b 100644
-> --- a/arch/x86/xen/mmu.c
-> +++ b/arch/x86/xen/mmu.c
-> @@ -84,6 +84,7 @@
->   */
->  DEFINE_SPINLOCK(xen_reservation_lock);
->  
-> +#ifdef CONFIG_X86_32
->  /*
->   * Identity map, in addition to plain kernel map.  This needs to be
->   * large enough to allocate page table pages to allocate the rest.
-> @@ -91,7 +92,7 @@ DEFINE_SPINLOCK(xen_reservation_lock);
->   */
->  #define LEVEL1_IDENT_ENTRIES        (PTRS_PER_PTE * 4)
->  static RESERVE_BRK_ARRAY(pte_t, level1_ident_pgt, LEVEL1_IDENT_ENTRIES);
-> -
-> +#endif
->  #ifdef CONFIG_X86_64
->  /* l3 pud for userspace vsyscall mapping */
->  static pud_t level3_user_vsyscall[PTRS_PER_PUD] __page_aligned_bss;
-> @@ -1628,7 +1629,7 @@ static void set_page_prot(void *addr, pgprot_t prot)
->      if (HYPERVISOR_update_va_mapping((unsigned long)addr, pte, 0))
->              BUG();
->  }
-> -
-> +#ifdef CONFIG_X86_32
->  static void __init xen_map_identity_early(pmd_t *pmd, unsigned long max_pfn)
->  {
->      unsigned pmdidx, pteidx;
-> @@ -1679,7 +1680,7 @@ static void __init xen_map_identity_early(pmd_t *pmd, unsigned long max_pfn)
->  
->      set_page_prot(pmd, PAGE_KERNEL_RO);
->  }
-> -
-> +#endif
->  void __init xen_setup_machphys_mapping(void)
->  {
->      struct xen_machphys_mapping mapping;
-> @@ -1765,14 +1766,12 @@ void __init xen_setup_kernel_pagetable(pgd_t *pgd, unsigned long max_pfn)
->      /* Note that we don't do anything with level1_fixmap_pgt which
->       * we don't need. */
->  
-> -    /* Set up identity map */
-> -    xen_map_identity_early(level2_ident_pgt, max_pfn);
-> -
->      /* Make pagetable pieces RO */
->      set_page_prot(init_level4_pgt, PAGE_KERNEL_RO);
->      set_page_prot(level3_ident_pgt, PAGE_KERNEL_RO);
->      set_page_prot(level3_kernel_pgt, PAGE_KERNEL_RO);
->      set_page_prot(level3_user_vsyscall, PAGE_KERNEL_RO);
-> +    set_page_prot(level2_ident_pgt, PAGE_KERNEL_RO);
->      set_page_prot(level2_kernel_pgt, PAGE_KERNEL_RO);
->      set_page_prot(level2_fixmap_pgt, PAGE_KERNEL_RO);
->  
-> -- 
-> 1.7.7.6
-> 
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<alpine.DEB.2.02.1209141631200.29232@kaball.uk.xensource.com> b/test/corpus/<alpine.DEB.2.02.1209141631200.29232@kaball.uk.xensource.com>
deleted file mode 100644 (file)
index 5f30258..0000000
+++ /dev/null
@@ -1,112 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Sep 14 16:48:45 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 14 Sep 2012 16:48:45 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TCY8I-0005zJ-MK
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 14 Sep 2012 16:48:44 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TCY4s-0004Ip-KL; Fri, 14 Sep 2012 15:45:10 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1TCY4q-0004Ig-UK
-       for xen-devel@lists.xensource.com; Fri, 14 Sep 2012 15:45:09 +0000
-Received: from [85.158.143.35:54286] by server-2.bemta-4.messagelabs.com id
-       99/05-21239-40153505; Fri, 14 Sep 2012 15:45:08 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-3.tower-21.messagelabs.com!1347637506!13708711!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDkyOTU=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 16735 invoked from network); 14 Sep 2012 15:45:06 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-3.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
-       14 Sep 2012 15:45:06 -0000
-X-IronPort-AV: E=Sophos;i="4.80,423,1344211200"; d="scan'208";a="14551048"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       14 Sep 2012 15:45:05 +0000
-Received: from kaball.uk.xensource.com (10.80.2.59) by
-       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
-       8.3.279.1; Fri, 14 Sep 2012 16:45:05 +0100
-Date: Fri, 14 Sep 2012 16:44:23 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-X-Sender: sstabellini@kaball.uk.xensource.com
-To: Jan Beulich <JBeulich@suse.com>
-In-Reply-To: <50535AFA020000780009B7C4@nat28.tlf.novell.com>
-Message-ID: <alpine.DEB.2.02.1209141631200.29232@kaball.uk.xensource.com>
-References: <alpine.DEB.2.02.1208221159560.15568@kaball.uk.xensource.com>
-       <1345633688-31684-1-git-send-email-stefano.stabellini@eu.citrix.com>
-       <1347627587.24226.192.camel@zakaz.uk.xensource.com>
-       <1347628660.24226.197.camel@zakaz.uk.xensource.com>
-       <1347630442.24226.211.camel@zakaz.uk.xensource.com>
-       <1347630971.24226.214.camel@zakaz.uk.xensource.com>
-       <50535AFA020000780009B7C4@nat28.tlf.novell.com>
-User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
-       "Tim \(Xen.org\)" <tim@xen.org>, Ian Campbell <Ian.Campbell@citrix.com>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.7 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH v4 1/6] xen: improve changes to
- xen_add_to_physmap
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Fri, 14 Sep 2012, Jan Beulich wrote:
-> >>> On 14.09.12 at 15:56, Ian Campbell <Ian.Campbell@citrix.com> wrote:
-> >> > > Might we prefer to have a batched version of this call? I don't think
-> >> > > we can shoehorn the necessary fields into xen_add_to_physmap_t though.
-> >> > 
-> >> > Actually, talking about this we Stefano we think we can. Since both idx
-> >> > and gpfn are unsigned longs they can become unions with a GUEST_HANDLE
-> >> > without changing the ABI on x86_32 or x86_64.
-> > 
-> > Except we need both foreign_domid and size, which currently overlap, and
-> > there's no other spare bits. Damn.
-> > 
-> > Looks like XENMEM_add_to_physmap_range is the only option :-(
-> 
-> You could use the first entry in each array to specify the counts,
-> which would at once allow mixed granularity on each list (should
-> that ever turn out useful); initially you would certainly want both
-> counts to match.
-
-I think it would be better from the interface point of view to have idx
-become the number of frames, and gpfn a pointer (a GUEST_HANDLE) to a
-struct that contains both arrays.
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<alpine.DEB.2.02.1209141652440.29232@kaball.uk.xensource.com> b/test/corpus/<alpine.DEB.2.02.1209141652440.29232@kaball.uk.xensource.com>
deleted file mode 100644 (file)
index c40da28..0000000
+++ /dev/null
@@ -1,129 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Sep 14 16:58:50 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 14 Sep 2012 16:58:50 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TCYI4-00061m-0b
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 14 Sep 2012 16:58:50 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TCYEG-0004k1-FI; Fri, 14 Sep 2012 15:54:52 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1TCYEE-0004jp-Lo
-       for xen-devel@lists.xensource.com; Fri, 14 Sep 2012 15:54:50 +0000
-Received: from [85.158.143.99:18121] by server-3.bemta-4.messagelabs.com id
-       FB/B5-08232-94353505; Fri, 14 Sep 2012 15:54:49 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-2.tower-216.messagelabs.com!1347638089!22196856!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDkyOTU=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 18642 invoked from network); 14 Sep 2012 15:54:49 -0000
-Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-2.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
-       14 Sep 2012 15:54:49 -0000
-X-IronPort-AV: E=Sophos;i="4.80,423,1344211200"; d="scan'208";a="14551236"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       14 Sep 2012 15:54:49 +0000
-Received: from kaball.uk.xensource.com (10.80.2.59) by
-       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
-       8.3.279.1; Fri, 14 Sep 2012 16:54:49 +0100
-Date: Fri, 14 Sep 2012 16:54:06 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-X-Sender: sstabellini@kaball.uk.xensource.com
-To: Ian Campbell <Ian.Campbell@citrix.com>
-In-Reply-To: <1347637953.14977.10.camel@zakaz.uk.xensource.com>
-Message-ID: <alpine.DEB.2.02.1209141652440.29232@kaball.uk.xensource.com>
-References: <alpine.DEB.2.02.1208221159560.15568@kaball.uk.xensource.com>
-       <1345633688-31684-1-git-send-email-stefano.stabellini@eu.citrix.com>
-       <1347627587.24226.192.camel@zakaz.uk.xensource.com>
-       <1347628660.24226.197.camel@zakaz.uk.xensource.com> 
-       <1347630442.24226.211.camel@zakaz.uk.xensource.com>
-       <1347630971.24226.214.camel@zakaz.uk.xensource.com>
-       <50535AFA020000780009B7C4@nat28.tlf.novell.com>
-       <alpine.DEB.2.02.1209141631200.29232@kaball.uk.xensource.com>
-       <1347637953.14977.10.camel@zakaz.uk.xensource.com>
-User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
-       "Keir \(Xen.org\)" <keir@xen.org>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>,
-       "Tim \(Xen.org\)" <tim@xen.org>,
-       "ijackson@chiark.greenend.org.uk" <ijackson@chiark.greenend.org.uk>,
-       Jan Beulich <JBeulich@suse.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.7 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH v4 1/6] xen: improve changes to
- xen_add_to_physmap
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Fri, 14 Sep 2012, Ian Campbell wrote:
-> On Fri, 2012-09-14 at 16:44 +0100, Stefano Stabellini wrote:
-> > On Fri, 14 Sep 2012, Jan Beulich wrote:
-> > > >>> On 14.09.12 at 15:56, Ian Campbell <Ian.Campbell@citrix.com> wrote:
-> > > >> > > Might we prefer to have a batched version of this call? I don't think
-> > > >> > > we can shoehorn the necessary fields into xen_add_to_physmap_t though.
-> > > >> > 
-> > > >> > Actually, talking about this we Stefano we think we can. Since both idx
-> > > >> > and gpfn are unsigned longs they can become unions with a GUEST_HANDLE
-> > > >> > without changing the ABI on x86_32 or x86_64.
-> > > > 
-> > > > Except we need both foreign_domid and size, which currently overlap, and
-> > > > there's no other spare bits. Damn.
-> > > > 
-> > > > Looks like XENMEM_add_to_physmap_range is the only option :-(
-> > > 
-> > > You could use the first entry in each array to specify the counts,
-> > > which would at once allow mixed granularity on each list (should
-> > > that ever turn out useful); initially you would certainly want both
-> > > counts to match.
-> > 
-> > I think it would be better from the interface point of view to have idx
-> > become the number of frames, and gpfn a pointer (a GUEST_HANDLE) to a
-> > struct that contains both arrays.
-> 
-> We'd need to slip in enough info to allow continuations too. Perhaps
-> that can be done by manipulating the size and the handle to keep track
-> of progress. Or maybe we can get away with just just frobbing the size
-> if we process the array backwards.
-> 
-> Which is all sounding pretty gross. I'm very temped to add
-> add_to_physmap2...
-
-Yeah, I am OK with that.
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<alpine.DEB.2.02.1209171153350.29232@kaball.uk.xensource.com> b/test/corpus/<alpine.DEB.2.02.1209171153350.29232@kaball.uk.xensource.com>
deleted file mode 100644 (file)
index d6a7d71..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-From xen-devel-bounces@lists.xen.org Mon Sep 17 11:59:58 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Mon, 17 Sep 2012 11:59:58 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TDZ3Q-000861-LW
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Mon, 17 Sep 2012 11:59:58 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TDYz9-0003lN-V4; Mon, 17 Sep 2012 10:55:27 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1TDYz8-0003lG-Bk
-       for xen-devel@lists.xensource.com; Mon, 17 Sep 2012 10:55:26 +0000
-Received: from [85.158.143.99:5013] by server-3.bemta-4.messagelabs.com id
-       94/A7-08232-D9107505; Mon, 17 Sep 2012 10:55:25 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-5.tower-216.messagelabs.com!1347879324!30314842!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMDk2NDU=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 23941 invoked from network); 17 Sep 2012 10:55:24 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-5.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
-       17 Sep 2012 10:55:24 -0000
-X-IronPort-AV: E=Sophos;i="4.80,434,1344211200"; d="scan'208";a="14576972"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       17 Sep 2012 10:55:24 +0000
-Received: from kaball.uk.xensource.com (10.80.2.59) by
-       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
-       8.3.279.1; Mon, 17 Sep 2012 11:55:24 +0100
-Date: Mon, 17 Sep 2012 11:54:38 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-X-Sender: sstabellini@kaball.uk.xensource.com
-To: Mukesh Rathor <mukesh.rathor@oracle.com>
-In-Reply-To: <20120914160727.1ff41de2@mantra.us.oracle.com>
-Message-ID: <alpine.DEB.2.02.1209171153350.29232@kaball.uk.xensource.com>
-References: <alpine.DEB.2.02.1208221159560.15568@kaball.uk.xensource.com>
-       <1345633688-31684-1-git-send-email-stefano.stabellini@eu.citrix.com>
-       <1347627587.24226.192.camel@zakaz.uk.xensource.com>
-       <20120914160727.1ff41de2@mantra.us.oracle.com>
-User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
-       "Tim \(Xen.org\)" <tim@xen.org>, Ian Campbell <Ian.Campbell@citrix.com>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.7 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH v4 1/6] xen: improve changes to
-       xen_add_to_physmap
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Sat, 15 Sep 2012, Mukesh Rathor wrote:
-> On Fri, 14 Sep 2012 13:59:47 +0100
-> Ian Campbell <Ian.Campbell@citrix.com> wrote:
-> 
-> > 
-> > On Wed, 2012-08-22 at 12:08 +0100, Stefano Stabellini wrote:
-> > > This is an incremental patch on top of
-> > > c0bc926083b5987a3e9944eec2c12ad0580100e2: in order to retain binary
-> > > compatibility, it is better to introduce foreign_domid as part of a
-> > > union containing both size and foreign_domid.
-> > [...]
-> > > -    domid_t foreign_domid; /* IFF gmfn_foreign */
-> > > +    unsigned int space;
-> > >  
-> > >  #define XENMAPIDX_grant_table_status 0x80000000
-> > 
-> > Was this the final consensus on what this interface ought to look
-> > like?
-> > 
-> > Does it work for PVH too (Mukesh CCd)?
-> 
-> Yes it does. Please lmk if the final version asap so I can put in
-> my patch, and also test it.
-
-It the final version. I think it should go in, unless we want to drop it
-entirely in favor of xen_add_to_physmap_range.
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<alpine.DEB.2.02.1209191408460.29232@kaball.uk.xensource.com> b/test/corpus/<alpine.DEB.2.02.1209191408460.29232@kaball.uk.xensource.com>
deleted file mode 100644 (file)
index be9cffb..0000000
+++ /dev/null
@@ -1,376 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Sep 19 14:22:15 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 19 Sep 2012 14:22:15 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TEKEG-0001Yz-4A
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 19 Sep 2012 14:22:15 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TEKAT-00065O-TQ; Wed, 19 Sep 2012 13:18:17 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1TEKAR-000659-Mi
-       for xen-devel@lists.xensource.com; Wed, 19 Sep 2012 13:18:16 +0000
-Received: from [85.158.138.51:32312] by server-5.bemta-3.messagelabs.com id
-       66/BF-13133-616C9505; Wed, 19 Sep 2012 13:18:14 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-3.tower-174.messagelabs.com!1348060693!23100871!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTAxNzU=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 3147 invoked from network); 19 Sep 2012 13:18:14 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-3.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
-       19 Sep 2012 13:18:14 -0000
-X-IronPort-AV: E=Sophos;i="4.80,447,1344211200"; d="scan'208";a="14631692"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       19 Sep 2012 13:18:13 +0000
-Received: from kaball.uk.xensource.com (10.80.2.59) by
-       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
-       8.3.279.1; Wed, 19 Sep 2012 14:18:13 +0100
-Date: Wed, 19 Sep 2012 14:17:26 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-X-Sender: sstabellini@kaball.uk.xensource.com
-To: Ian Campbell <Ian.Campbell@citrix.com>
-In-Reply-To: <1348059789.14977.119.camel@zakaz.uk.xensource.com>
-Message-ID: <alpine.DEB.2.02.1209191408460.29232@kaball.uk.xensource.com>
-References: <alpine.DEB.2.02.1208221159560.15568@kaball.uk.xensource.com>
-       <1345633688-31684-1-git-send-email-stefano.stabellini@eu.citrix.com>
-       <1347627587.24226.192.camel@zakaz.uk.xensource.com>
-       <20120914160727.1ff41de2@mantra.us.oracle.com> 
-       <alpine.DEB.2.02.1209171153350.29232@kaball.uk.xensource.com>
-       <1348059789.14977.119.camel@zakaz.uk.xensource.com>
-User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
-       "Tim \(Xen.org\)" <tim@xen.org>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.8 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH v4 1/6] xen: improve changes to
-       xen_add_to_physmap
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Wed, 19 Sep 2012, Ian Campbell wrote:
-> Here is what I came up with on the ARM side. I'd image the X86 version
-> would not be that different.
-> 
-> Processing the batch in reverse order allows for continuations without
-> needing an explicit pdone type thing. Still seems a bit wrong somehow.
-> 
-> diff --git a/xen/arch/arm/mm.c b/xen/arch/arm/mm.c
-> index aec57e5..7d6101c 100644
-> --- a/xen/arch/arm/mm.c
-> +++ b/xen/arch/arm/mm.c
-> @@ -26,6 +26,8 @@
->  #include <xen/preempt.h>
->  #include <xen/errno.h>
->  #include <xen/grant_table.h>
-> +#include <xen/softirq.h>
-> +#include <xen/event.h>
->  #include <xen/guest_access.h>
->  #include <xen/domain_page.h>
->  #include <asm/page.h>
-> @@ -462,14 +464,17 @@ void share_xen_page_with_guest(struct page_info *page,
->      spin_unlock(&d->page_alloc_lock);
->  }
->  
-> -static int xenmem_add_to_physmap_once(
-> +static int xenmem_add_to_physmap_one(
->      struct domain *d,
-> -    const struct xen_add_to_physmap *xatp)
-> +    uint16_t space,
-> +    domid_t foreign_domid,
-> +    unsigned long idx,
-> +    xen_pfn_t gpfn)
->  {
-> -    unsigned long mfn = 0, idx = 0;
-> +    unsigned long mfn = 0;
->      int rc;
->  
-> -    switch ( xatp->space )
-> +    switch ( space )
->      {
->      case XENMAPSPACE_grant_table:
->          spin_lock(&d->grant_table->lock);
-> @@ -477,9 +482,8 @@ static int xenmem_add_to_physmap_once(
->          if ( d->grant_table->gt_version == 0 )
->              d->grant_table->gt_version = 1;
->  
-> -        idx = xatp->idx;
->          if ( d->grant_table->gt_version == 2 &&
-> -                (xatp->idx & XENMAPIDX_grant_table_status) )
-> +                (idx & XENMAPIDX_grant_table_status) )
->          {
->              idx &= ~XENMAPIDX_grant_table_status;
->              if ( idx < nr_status_frames(d->grant_table) )
-> @@ -498,33 +502,31 @@ static int xenmem_add_to_physmap_once(
->          spin_unlock(&d->grant_table->lock);
->          break;
->      case XENMAPSPACE_shared_info:
-> -        if ( xatp->idx == 0 )
-> +        if ( idx == 0 )
->              mfn = virt_to_mfn(d->shared_info);
->          break;
->      case XENMAPSPACE_gmfn_foreign:
->      {
->          paddr_t maddr;
->          struct domain *od;
-> -        static int x = 0;
-> -        rc = rcu_lock_target_domain_by_id(xatp->foreign_domid, &od);
-> +        rc = rcu_lock_target_domain_by_id(foreign_domid, &od);
->          if ( rc < 0 )
->              return rc;
-> -        maddr = p2m_lookup(od, xatp->idx << PAGE_SHIFT);
-> +
-> +        maddr = p2m_lookup(od, idx << PAGE_SHIFT);
->          if ( maddr == INVALID_PADDR )
->          {
-> -            printk("bad p2m lookup\n");
-> -            dump_p2m_lookup(od, xatp->idx << PAGE_SHIFT);
-> +            dump_p2m_lookup(od, idx << PAGE_SHIFT);
->              rcu_unlock_domain(od);
->              return -EINVAL;
->          }
-> +
->          mfn = maddr >> PAGE_SHIFT;
-> -    if (x && x--) {
-> -            printk("Mapping dom%d mfn 0x%lx to dom%d mfn 0x%"PRIpaddr"\n",
-> -                   od->domain_id, mfn, d->domain_id, xatp->gpfn);
-> -        }
-
-why remove the printk here?
-
-
->          rcu_unlock_domain(od);
->          break;
->      }
-> +
->      default:
->          return -ENOSYS;
->      }
-> @@ -532,19 +534,51 @@ static int xenmem_add_to_physmap_once(
->      domain_lock(d);
->  
->      /* Map at new location. */
-> -    rc = guest_physmap_add_page(d, xatp->gpfn, mfn, 0);
-> -    if ( 0 && xatp->space == XENMAPSPACE_gmfn_foreign )
-> -        dump_p2m_lookup(d, xatp->gpfn << PAGE_SHIFT);
-> +    rc = guest_physmap_add_page(d, gpfn, mfn, 0);
->  
->      domain_unlock(d);
->  
->      return rc;
->  }
->  
-> -static int xenmem_add_to_physmap(struct domain *d,
-> -                                 struct xen_add_to_physmap *xatp)
-> +static int xenmem_add_to_physmap_range(struct domain *d,
-> +                                       struct xen_add_to_physmap_range *xatpr)
->  {
-> -    return xenmem_add_to_physmap_once(d, xatp);
-> +    int rc;
-> +
-> +    /* Process entries in reverse order to allow continuations */
-> +    while ( xatpr->size > 0 )
-> +    {
-> +        xen_ulong_t idx;
-> +        xen_pfn_t gpfn;
-> +
-> +        rc = copy_from_guest_offset(&idx, xatpr->idxs, xatpr->size-1, 1);
-> +        if ( rc < 0 )
-> +            goto out;
-> +
-> +        rc = copy_from_guest_offset(&gpfn, xatpr->gpfns, xatpr->size-1, 1);
-> +        if ( rc < 0 )
-> +            goto out;
-> +
-> +        rc = xenmem_add_to_physmap_one(d, xatpr->space,
-> +                                       xatpr->foreign_domid,
-> +                                       idx, gpfn);
-> +
-> +        xatpr->size--;
-> +
-> +        /* Check for continuation if it's not the last interation */
-> +        if ( xatpr->size > 0 && hypercall_preempt_check() )
-> +        {
-> +            rc = -EAGAIN;
-> +            goto out;
-> +        }
-> +    }
-> +
-> +    rc = 0;
-> +
-> +out:
-> +    return rc;
-> +
->  }
->  
->  long arch_memory_op(int op, XEN_GUEST_HANDLE(void) arg)
-> @@ -565,13 +599,41 @@ long arch_memory_op(int op, XEN_GUEST_HANDLE(void) arg)
->          if ( rc != 0 )
->              return rc;
->  
-> -        rc = xenmem_add_to_physmap(d, &xatp);
-> +        rc = xenmem_add_to_physmap_one(d, xatp.space,
-> +                                       xatp.foreign_domid,
-> +                                       xatp.idx, xatp.gpfn);
->  
->          rcu_unlock_domain(d);
->  
->          return rc;
->      }
->  
-> +    case XENMEM_add_to_physmap_range:
-> +    {
-> +        struct xen_add_to_physmap_range xatpr;
-> +        struct domain *d;
-> +
-> +        if ( copy_from_guest(&xatpr, arg, 1) )
-> +            return -EFAULT;
-> +
-> +        rc = rcu_lock_target_domain_by_id(xatpr.domid, &d);
-> +        if ( rc != 0 )
-> +            return rc;
-> +
-> +        rc = xenmem_add_to_physmap_range(d, &xatpr);
-> +
-> +        rcu_unlock_domain(d);
-> +
-> +        if ( rc && copy_to_guest(arg, &xatpr, 1) )
-> +            rc = -EFAULT;
-> +
-> +        if ( rc == -EAGAIN )
-> +            rc = hypercall_create_continuation(
-> +                __HYPERVISOR_memory_op, "ih", op, arg);
-> +
-> +        return rc;
-> +    }
-> +
->      default:
->          return -ENOSYS;
->      }
-> diff --git a/xen/include/public/memory.h b/xen/include/public/memory.h
-> index b2adfbe..1cc7a80 100644
-> --- a/xen/include/public/memory.h
-> +++ b/xen/include/public/memory.h
-> @@ -198,6 +198,15 @@ struct xen_machphys_mapping {
->  typedef struct xen_machphys_mapping xen_machphys_mapping_t;
->  DEFINE_XEN_GUEST_HANDLE(xen_machphys_mapping_t);
->  
-> +/* Source mapping space. */
-> +/* ` enum phys_map_space { */
-> +#define XENMAPSPACE_shared_info  0 /* shared info page */
-> +#define XENMAPSPACE_grant_table  1 /* grant table page */
-> +#define XENMAPSPACE_gmfn         2 /* GMFN */
-> +#define XENMAPSPACE_gmfn_range   3 /* GMFN range */
-> +#define XENMAPSPACE_gmfn_foreign 4 /* GMFN from another dom */
-> +/* ` } */
->  /*
->   * Sets the GPFN at which a particular page appears in the specified guest's
->   * pseudophysical address space.
-> @@ -211,26 +220,40 @@ struct xen_add_to_physmap {
->      /* Number of pages to go through for gmfn_range */
->      uint16_t    size;
->  
-> -    /* Source mapping space. */
-> -#define XENMAPSPACE_shared_info  0 /* shared info page */
-> -#define XENMAPSPACE_grant_table  1 /* grant table page */
-> -#define XENMAPSPACE_gmfn         2 /* GMFN */
-> -#define XENMAPSPACE_gmfn_range   3 /* GMFN range */
-> -#define XENMAPSPACE_gmfn_foreign 4 /* GMFN from another guest */
-> -    uint16_t space;
-> +    uint16_t space; /* => enum phys_map_space */
->      domid_t foreign_domid; /* IFF gmfn_foreign */
-
-I don't like very much that you have a uint16_t in the struct that
-actually represents a union
-
-
->  #define XENMAPIDX_grant_table_status 0x80000000
->  
-> -    /* Index into source mapping space. */
-> +    /* Index into space being mapped. */
->      xen_ulong_t idx;
->  
-> -    /* GPFN where the source mapping page should appear. */
-> +    /* GPFN in domid where the source mapping page should appear. */
->      xen_pfn_t     gpfn;
->  };
->  typedef struct xen_add_to_physmap xen_add_to_physmap_t;
->  DEFINE_XEN_GUEST_HANDLE(xen_add_to_physmap_t);
->  
-> +/* A batched version of add_to_physmap. */
-> +#define XENMEM_add_to_physmap_range 23
-> +struct xen_add_to_physmap_range {
-> +    /* Which domain to change the mapping for. */
-> +    domid_t domid;
-> +    uint16_t space; /* => enum phys_map_space */
-> +
-> +    /* Number of pages to go through */
-> +    uint16_t size;
-> +    domid_t foreign_domid; /* IFF gmfn_foreign */
-> +
-> +    /* Indexes into space being mapped. */
-> +    XEN_GUEST_HANDLE(xen_ulong_t) idxs;
-> +
-> +    /* GPFN in domdwhere the source mapping page should appear. */
-                     ^ domid where
-
-> +    XEN_GUEST_HANDLE(xen_pfn_t) gpfns;
-> +};
-> +typedef struct xen_add_to_physmap_range xen_add_to_physmap_range_t;
-> +DEFINE_XEN_GUEST_HANDLE(xen_add_to_physmap_range_t);
-> +
->  /*
->   * Unmaps the page appearing at a particular GPFN from the specified guest's
->   * pseudophysical address space.
-> diff --git a/xen/include/public/xen.h b/xen/include/public/xen.h
-> index b2f6c50..9425520 100644
-> --- a/xen/include/public/xen.h
-> +++ b/xen/include/public/xen.h
-> @@ -51,6 +51,7 @@ DEFINE_XEN_GUEST_HANDLE(void);
->  
->  DEFINE_XEN_GUEST_HANDLE(uint64_t);
->  DEFINE_XEN_GUEST_HANDLE(xen_pfn_t);
-> +DEFINE_XEN_GUEST_HANDLE(xen_ulong_t);
->  #endif
-
-You shouldn't need that: xen_ulong_t is already defined in arch-arm.h
-(and arch-x86/xen.h)
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<alpine.DEB.2.02.1209191420290.29232@kaball.uk.xensource.com> b/test/corpus/<alpine.DEB.2.02.1209191420290.29232@kaball.uk.xensource.com>
deleted file mode 100644 (file)
index f228e70..0000000
+++ /dev/null
@@ -1,171 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Sep 19 14:25:44 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 19 Sep 2012 14:25:44 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TEKHb-0001a8-1j
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 19 Sep 2012 14:25:44 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TEKDo-0006M5-H8; Wed, 19 Sep 2012 13:21:44 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1TEKDm-0006Lw-3t
-       for xen-devel@lists.xensource.com; Wed, 19 Sep 2012 13:21:42 +0000
-Received: from [85.158.138.51:5145] by server-6.bemta-3.messagelabs.com id
-       C4/3D-29694-5E6C9505; Wed, 19 Sep 2012 13:21:41 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-8.tower-174.messagelabs.com!1348060900!31137999!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTAxNzU=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 23446 invoked from network); 19 Sep 2012 13:21:40 -0000
-Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-8.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
-       19 Sep 2012 13:21:40 -0000
-X-IronPort-AV: E=Sophos;i="4.80,447,1344211200"; d="scan'208";a="14631793"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       19 Sep 2012 13:21:38 +0000
-Received: from kaball.uk.xensource.com (10.80.2.59) by
-       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
-       8.3.279.1; Wed, 19 Sep 2012 14:21:38 +0100
-Date: Wed, 19 Sep 2012 14:20:51 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-X-Sender: sstabellini@kaball.uk.xensource.com
-To: Ian Campbell <Ian.Campbell@citrix.com>
-In-Reply-To: <1348060180.14977.123.camel@zakaz.uk.xensource.com>
-Message-ID: <alpine.DEB.2.02.1209191420290.29232@kaball.uk.xensource.com>
-References: <alpine.DEB.2.02.1208221159560.15568@kaball.uk.xensource.com>
-       <1345633688-31684-1-git-send-email-stefano.stabellini@eu.citrix.com>
-       <1347627587.24226.192.camel@zakaz.uk.xensource.com>
-       <20120914160727.1ff41de2@mantra.us.oracle.com> 
-       <alpine.DEB.2.02.1209171153350.29232@kaball.uk.xensource.com>
-       <1348059789.14977.119.camel@zakaz.uk.xensource.com>
-       <1348060180.14977.123.camel@zakaz.uk.xensource.com>
-User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>, "Tim
-       \(Xen.org\)" <tim@xen.org>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.8 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH v4 1/6] xen: improve changes to
- xen_add_to_physmap
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Wed, 19 Sep 2012, Ian Campbell wrote:
-> On Wed, 2012-09-19 at 14:03 +0100, Ian Campbell wrote:
-> 
-> > > It the final version. I think it should go in, unless we want to drop it
-> > > entirely in favor of xen_add_to_physmap_range.
-> > 
-> > Here is what I came up with on the ARM side. I'd image the X86 version
-> > would not be that different.
-> 
-> Here the (obvious) Linux side, for reference. No actual use of batching
-> just yet. It's based on top of a somewhat bastardized version of
-> Mukesh's PVH patches for privcmd.
-> 
-
-we also need the xen_remap_domain_mfn_range arm implementation
-
-> 
-> diff --git a/arch/arm/xen/enlighten.c b/arch/arm/xen/enlighten.c
-> index 43277f8..f01120a 100644
-> --- a/arch/arm/xen/enlighten.c
-> +++ b/arch/arm/xen/enlighten.c
-> @@ -88,13 +88,20 @@ static int pvh_add_to_xen_p2m(unsigned long lpfn, unsigned long fgmfn,
->                            unsigned int domid)
->  {
->      int rc;
-> -    struct xen_add_to_physmap pmb = {.foreign_domid = domid};
-> -
-> -    pmb.gpfn = lpfn;
-> -    pmb.idx = fgmfn;
-> -    pmb.space = XENMAPSPACE_gmfn_foreign;
-> -
-> -    rc = HYPERVISOR_memory_op(XENMEM_add_to_physmap, &pmb);
-> +    struct xen_add_to_physmap_range xatp = {
-> +            .domid = DOMID_SELF,
-> +            .foreign_domid = domid,
-> +            .size = 1,
-> +            .space = XENMAPSPACE_gmfn_foreign,
-> +    };
-> +    unsigned long idx = fgmfn;
-> +    xen_pfn_t gpfn = lpfn;
-> +
-> +    set_xen_guest_handle(xatp.idxs, &idx);
-> +    set_xen_guest_handle(xatp.gpfns, &gpfn);
-> +                   domid, fgmfn, lpfn);
-> +
-> +    rc = HYPERVISOR_memory_op(XENMEM_add_to_physmap_range, &xatp);
->      if (rc) {
->              pr_warn("Failed to map pfn to mfn rc:%d pfn:%lx mfn:%lx\n",
->                      rc, lpfn, fgmfn);
-> diff --git a/include/xen/interface/memory.h b/include/xen/interface/memory.h
-> index 8728330..64cabbb 100644
-> --- a/include/xen/interface/memory.h
-> +++ b/include/xen/interface/memory.h
-> @@ -183,6 +183,24 @@ struct xen_add_to_physmap {
->  };
->  DEFINE_GUEST_HANDLE_STRUCT(xen_add_to_physmap);
->  
-> +#define XENMEM_add_to_physmap_range 23
-> +struct xen_add_to_physmap_range {
-> +    /* Which domain to change the mapping for. */
-> +    domid_t domid;
-> +    uint16_t space; /* => enum phys_map_space */
-> +
-> +    /* Number of pages to go through */
-> +    uint16_t size;
-> +    domid_t foreign_domid; /* IFF gmfn_foreign */
-> +
-> +    /* Indexes into space being mapped. */
-> +    GUEST_HANDLE(ulong) idxs;
-> +
-> +    /* GPFN in domdwhere the source mapping page should appear. */
-> +    GUEST_HANDLE(xen_pfn_t) gpfns;
-> +};
-> +DEFINE_GUEST_HANDLE_STRUCT(xen_add_to_physmap_range);
-> +
->  /*
->   * Translates a list of domain-specific GPFNs into MFNs. Returns a -ve error
->   * code on failure. This call only works for auto-translated guests.
-> 
-> 
-> 
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<alpine.DEB.2.02.1209241257440.29232@kaball.uk.xensource.com> b/test/corpus/<alpine.DEB.2.02.1209241257440.29232@kaball.uk.xensource.com>
deleted file mode 100644 (file)
index 65adb73..0000000
+++ /dev/null
@@ -1,191 +0,0 @@
-From xen-devel-bounces@lists.xen.org Mon Sep 24 13:15:42 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Mon, 24 Sep 2012 13:15:42 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TG7Zc-0001or-DC
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Mon, 24 Sep 2012 13:15:42 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TG7VO-0006Jo-GO; Mon, 24 Sep 2012 12:11:18 +0000
-Received: from mail27.messagelabs.com ([193.109.254.147])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1TG7VM-0006JZ-SD
-       for Xen-devel@lists.xensource.com; Mon, 24 Sep 2012 12:11:17 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-4.tower-27.messagelabs.com!1348488491!11572617!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTA4NDk=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 19591 invoked from network); 24 Sep 2012 12:08:12 -0000
-Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-4.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
-       24 Sep 2012 12:08:12 -0000
-X-IronPort-AV: E=Sophos;i="4.80,474,1344211200"; d="scan'208";a="14722324"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       24 Sep 2012 12:08:11 +0000
-Received: from kaball.uk.xensource.com (10.80.2.59) by
-       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
-       8.3.279.1; Mon, 24 Sep 2012 13:08:11 +0100
-Date: Mon, 24 Sep 2012 13:07:19 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-X-Sender: sstabellini@kaball.uk.xensource.com
-To: Mukesh Rathor <mukesh.rathor@oracle.com>
-In-Reply-To: <20120921121659.5a723de9@mantra.us.oracle.com>
-Message-ID: <alpine.DEB.2.02.1209241257440.29232@kaball.uk.xensource.com>
-References: <20120921121659.5a723de9@mantra.us.oracle.com>
-User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
-MIME-Version: 1.0
-Cc: "Xen-devel@lists.xensource.com" <Xen-devel@lists.xensource.com>,
-       Ian Campbell <Ian.Campbell@citrix.com>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>,
-       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-5.0 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH v1 3/8]: PVH startup changes (enlighten.c)
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Fri, 21 Sep 2012, Mukesh Rathor wrote:
-> ---
->  arch/x86/xen/enlighten.c |   99 ++++++++++++++++++++++++++++++++++++---------
->  1 files changed, 79 insertions(+), 20 deletions(-)
-> 
-> diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c
-> index bf4bda6..98f1798 100644
-> --- a/arch/x86/xen/enlighten.c
-> +++ b/arch/x86/xen/enlighten.c
-> @@ -45,6 +45,7 @@
->  #include <xen/hvm.h>
->  #include <xen/hvc-console.h>
->  #include <xen/acpi.h>
-> +#include <xen/features.h>
->  
->  #include <asm/paravirt.h>
->  #include <asm/apic.h>
-> @@ -105,6 +106,9 @@ RESERVE_BRK(shared_info_page_brk, PAGE_SIZE);
->  __read_mostly int xen_have_vector_callback;
->  EXPORT_SYMBOL_GPL(xen_have_vector_callback);
->  
-> +#define xen_pvh_domain() (xen_pv_domain() && \
-> +                      xen_feature(XENFEAT_auto_translated_physmap) && \
-> +                      xen_have_vector_callback)
->  /*
->   * Point at some empty memory to start with. We map the real shared_info
->   * page as soon as fixmap is up and running.
-> @@ -139,6 +143,8 @@ struct tls_descs {
->   */
->  static DEFINE_PER_CPU(struct tls_descs, shadow_tls_desc);
->  
-> +static void __init xen_hvm_init_shared_info(void);
-> +
->  static void clamp_max_cpus(void)
->  {
->  #ifdef CONFIG_SMP
-> @@ -217,8 +223,9 @@ static void __init xen_banner(void)
->      struct xen_extraversion extra;
->      HYPERVISOR_xen_version(XENVER_extraversion, &extra);
->  
-> -    printk(KERN_INFO "Booting paravirtualized kernel on %s\n",
-> -           pv_info.name);
-> +    printk(KERN_INFO "Booting paravirtualized kernel %son %s\n",
-> +            xen_feature(XENFEAT_auto_translated_physmap) ?
-> +                    "with PVH extensions " : "", pv_info.name);
->      printk(KERN_INFO "Xen version: %d.%d%s%s\n",
->             version >> 16, version & 0xffff, extra.extraversion,
->             xen_feature(XENFEAT_mmu_pt_update_preserve_ad) ? " (preserve-AD)" : "");
-> @@ -271,12 +278,15 @@ static void xen_cpuid(unsigned int *ax, unsigned int *bx,
->              break;
->      }
->  
-> -    asm(XEN_EMULATE_PREFIX "cpuid"
-> -            : "=a" (*ax),
-> -              "=b" (*bx),
-> -              "=c" (*cx),
-> -              "=d" (*dx)
-> -            : "0" (*ax), "2" (*cx));
-> +    if (xen_pvh_domain())
-> +            native_cpuid(ax, bx, cx, dx);
-> +    else
-> +            asm(XEN_EMULATE_PREFIX "cpuid"
-> +                    : "=a" (*ax),
-> +                    "=b" (*bx),
-> +                    "=c" (*cx),
-> +                    "=d" (*dx)
-> +                    : "0" (*ax), "2" (*cx));
-
-can't we just set the cpuid pvop to native_cpuid?
-
-
->      *bx &= maskebx;
->      *cx &= maskecx;
-> @@ -1034,6 +1044,10 @@ static int xen_write_msr_safe(unsigned int msr, unsigned low, unsigned high)
->  
->  void xen_setup_shared_info(void)
->  {
-> +    /* do later in xen_pvh_guest_init() when extend_brk is properly setup*/
-
-Which one is the function that is going to get called later to do the
-initialization? It cannot be this one because it would still return
-immediately.
-
-
-> +    if (xen_pvh_domain() && xen_initial_domain())
-> +            return;
-> +
->      if (!xen_feature(XENFEAT_auto_translated_physmap)) {
->              set_fixmap(FIX_PARAVIRT_BOOTMAP,
->                         xen_start_info->shared_info);
->
-> @@ -1044,6 +1058,10 @@ void xen_setup_shared_info(void)
->              HYPERVISOR_shared_info =
->                      (struct shared_info *)__va(xen_start_info->shared_info);
->  
-> +    /* PVH TBD/FIXME: vcpu info placement in phase 2 */
-> +    if (xen_pvh_domain())
-> +            return;
-
-It seems that if xen_initial_domain we always skip the initialization
-while if !xen_initial_domain we only initialize HYPERVISOR_shared_info.
-I don't understand why we have this difference.
-
-Also it might be worth refactoring xen_setup_shared_info moving out the
-call to xen_setup_vcpu_info_placement and xen_setup_mfn_list_list in
-order to avoid all these
-
-if ([!]xen_pvh_domain())
-    return;
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<alpine.DEB.2.02.1209251054140.29232@kaball.uk.xensource.com> b/test/corpus/<alpine.DEB.2.02.1209251054140.29232@kaball.uk.xensource.com>
deleted file mode 100644 (file)
index a57ebe4..0000000
+++ /dev/null
@@ -1,162 +0,0 @@
-From xen-devel-bounces@lists.xen.org Tue Sep 25 11:08:57 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Tue, 25 Sep 2012 11:08:57 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TGS4R-0002KJ-PS
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 25 Sep 2012 11:08:57 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TGRzv-0002uZ-SS; Tue, 25 Sep 2012 10:04:11 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1TGRzt-0002u8-RR
-       for Xen-devel@lists.xensource.com; Tue, 25 Sep 2012 10:04:10 +0000
-Received: from [85.158.143.35:13440] by server-2.bemta-4.messagelabs.com id
-       6C/79-06610-99181605; Tue, 25 Sep 2012 10:04:09 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-3.tower-21.messagelabs.com!1348567446!13650659!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTEwNzk=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 25938 invoked from network); 25 Sep 2012 10:04:07 -0000
-Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-3.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
-       25 Sep 2012 10:04:07 -0000
-X-IronPort-AV: E=Sophos;i="4.80,481,1344211200"; d="scan'208";a="14744858"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       25 Sep 2012 10:04:06 +0000
-Received: from kaball.uk.xensource.com (10.80.2.59) by
-       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
-       8.3.279.1; Tue, 25 Sep 2012 11:04:06 +0100
-Date: Tue, 25 Sep 2012 11:03:13 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-X-Sender: sstabellini@kaball.uk.xensource.com
-To: Mukesh Rathor <mukesh.rathor@oracle.com>
-In-Reply-To: <20120924154335.097d3fb9@mantra.us.oracle.com>
-Message-ID: <alpine.DEB.2.02.1209251054140.29232@kaball.uk.xensource.com>
-References: <20120921121659.5a723de9@mantra.us.oracle.com>
-       <alpine.DEB.2.02.1209241257440.29232@kaball.uk.xensource.com>
-       <20120924154335.097d3fb9@mantra.us.oracle.com>
-User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
-MIME-Version: 1.0
-Cc: Ian Campbell <Ian.Campbell@citrix.com>,
-       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
-       "Xen-devel@lists.xensource.com" <Xen-devel@lists.xensource.com>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-5.0 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH v1 3/8]: PVH startup changes (enlighten.c)
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Mon, 24 Sep 2012, Mukesh Rathor wrote:
-> On Mon, 24 Sep 2012 13:07:19 +0100
-> Stefano Stabellini <stefano.stabellini@eu.citrix.com> wrote:
-> 
-> > On Fri, 21 Sep 2012, Mukesh Rathor wrote:
-> > > ---
-> > >  arch/x86/xen/enlighten.c |   99
-> > > ++++++++++++++++++++++++++++++++++++--------- 1 files changed, 79
-> > > insertions(+), 20 deletions(-)
-> > > 
-> > > +                        "with PVH extensions " : "", pv_info.name);
-> > >          printk(KERN_INFO "Xen version: %d.%d%s%s\n",
-> > >                 version >> 16, version & 0xffff, extra.extraversion,
-> > >                 xen_feature(XENFEAT_mmu_pt_update_preserve_ad) ?
-> > > " (preserve-AD)" : ""); @@ -271,12 +278,15 @@ static void
-> > > xen_cpuid(unsigned int *ax, unsigned int *bx, break;
-> > >          }
-> > >  
-> > > -        asm(XEN_EMULATE_PREFIX "cpuid"
-> > > -                : "=a" (*ax),
-> > > -                  "=b" (*bx),
-> > > -                  "=c" (*cx),
-> > > -                  "=d" (*dx)
-> > > -                : "0" (*ax), "2" (*cx));
-> > > +        if (xen_pvh_domain())
-> > > +                native_cpuid(ax, bx, cx, dx);
-> > > +        else
-> > > +                asm(XEN_EMULATE_PREFIX "cpuid"
-> > > +                        : "=a" (*ax),
-> > > +                        "=b" (*bx),
-> > > +                        "=c" (*cx),
-> > > +                        "=d" (*dx)
-> > > +                        : "0" (*ax), "2" (*cx));
-> > 
-> > can't we just set the cpuid pvop to native_cpuid?
-> 
-> We had talked about this a bit at code review. There is some massaging
-> before and after that goes on, and so we thought we should just leave 
-> it like that.
-
-Ah I see, are you talking about all the masks, correct?
-
-> > > +        if (xen_pvh_domain() && xen_initial_domain())
-> > > +                return;
-> > > +
-> > >          if (!xen_feature(XENFEAT_auto_translated_physmap)) {
-> > >                  set_fixmap(FIX_PARAVIRT_BOOTMAP,
-> > >                             xen_start_info->shared_info);
-> > >
-> > > @@ -1044,6 +1058,10 @@ void xen_setup_shared_info(void)
-> > >                  HYPERVISOR_shared_info =
-> > >                          (struct shared_info
-> > > *)__va(xen_start_info->shared_info); 
-> > > +        /* PVH TBD/FIXME: vcpu info placement in phase 2 */
-> > > +        if (xen_pvh_domain())
-> > > +                return;
-> > 
-> > It seems that if xen_initial_domain we always skip the initialization
-> > while if !xen_initial_domain we only initialize
-> > HYPERVISOR_shared_info. I don't understand why we have this
-> > difference.
-> 
-> The comment in xen_pvh_guest_init() explains it. For domU the library
-> maps the pfn at shared_info, ie, shared_info is pfn. For dom0, it's the
-> mfn. Dom0 then allocates a pfn via extend_brk, and maps the mfn to it. This
-> happens in the commond hvm code, xen_hvm_init_shared_info().
-
-This difference is really subtle, it would be nice to get rid of it.
-Could Xen allocate a pfn for dom0?
-Otherwise could we have the tools allocate an mfn instead of a pfn?
-In fact looking at xc_dom_x86.c, alloc_magic_pages is explicitly having
-a different behavior for xc_dom_feature_translated guests and allocates
-pfn instead of an mfn. Maybe we could get rid of that special case: less
-code in libxc, a common way of allocating the shared_info page for domU
-and dom0 => win.
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<alpine.DEB.2.02.1209261225340.29232@kaball.uk.xensource.com> b/test/corpus/<alpine.DEB.2.02.1209261225340.29232@kaball.uk.xensource.com>
deleted file mode 100644 (file)
index 6eca024..0000000
+++ /dev/null
@@ -1,161 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Sep 26 12:39:37 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 26 Sep 2012 12:39:37 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TGpxm-00036G-BE
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 26 Sep 2012 12:39:37 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TGpsy-0001RR-Nt; Wed, 26 Sep 2012 11:34:36 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1TGpsx-0001RM-0J
-       for Xen-devel@lists.xensource.com; Wed, 26 Sep 2012 11:34:35 +0000
-Received: from [85.158.139.211:47626] by server-8.bemta-5.messagelabs.com id
-       C7/AC-18073-A48E2605; Wed, 26 Sep 2012 11:34:34 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-4.tower-206.messagelabs.com!1348659273!20040844!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTE1NzQ=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 14059 invoked from network); 26 Sep 2012 11:34:33 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-4.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
-       26 Sep 2012 11:34:33 -0000
-X-IronPort-AV: E=Sophos;i="4.80,490,1344211200"; d="scan'208";a="14774539"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       26 Sep 2012 11:34:33 +0000
-Received: from kaball.uk.xensource.com (10.80.2.59) by
-       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
-       8.3.279.1; Wed, 26 Sep 2012 12:34:33 +0100
-Date: Wed, 26 Sep 2012 12:33:39 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-X-Sender: sstabellini@kaball.uk.xensource.com
-To: Mukesh Rathor <mukesh.rathor@oracle.com>
-In-Reply-To: <20120925180416.0137d61a@mantra.us.oracle.com>
-Message-ID: <alpine.DEB.2.02.1209261225340.29232@kaball.uk.xensource.com>
-References: <20120921121659.5a723de9@mantra.us.oracle.com>
-       <alpine.DEB.2.02.1209241257440.29232@kaball.uk.xensource.com>
-       <20120924154335.097d3fb9@mantra.us.oracle.com>
-       <alpine.DEB.2.02.1209251054140.29232@kaball.uk.xensource.com>
-       <20120925180416.0137d61a@mantra.us.oracle.com>
-User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
-MIME-Version: 1.0
-Cc: Ian Campbell <Ian.Campbell@citrix.com>,
-       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
-       "Xen-devel@lists.xensource.com" <Xen-devel@lists.xensource.com>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-5.0 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH v1 3/8]: PVH startup changes (enlighten.c)
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Wed, 26 Sep 2012, Mukesh Rathor wrote:
-> On Tue, 25 Sep 2012 11:03:13 +0100
-> Stefano Stabellini <stefano.stabellini@eu.citrix.com> wrote:
-> 
-> > On Mon, 24 Sep 2012, Mukesh Rathor wrote:
-> > > On Mon, 24 Sep 2012 13:07:19 +0100
-> > > Stefano Stabellini <stefano.stabellini@eu.citrix.com> wrote:
-> > > 
-> > > > On Fri, 21 Sep 2012, Mukesh Rathor wrote:
-> > > > > +            return;
-> > > > > +
-> > > > >      if (!xen_feature(XENFEAT_auto_translated_physmap)) {
-> > > > >              set_fixmap(FIX_PARAVIRT_BOOTMAP,
-> > > > >                         xen_start_info->shared_info);
-> > > > >
-> > > > > @@ -1044,6 +1058,10 @@ void xen_setup_shared_info(void)
-> > > > >              HYPERVISOR_shared_info =
-> > > > >                      (struct shared_info
-> > > > > *)__va(xen_start_info->shared_info); 
-> > > > > +    /* PVH TBD/FIXME: vcpu info placement in phase 2 */
-> > > > > +    if (xen_pvh_domain())
-> > > > > +            return;
-> > > > 
-> > > > It seems that if xen_initial_domain we always skip the
-> > > > initialization while if !xen_initial_domain we only initialize
-> > > > HYPERVISOR_shared_info. I don't understand why we have this
-> > > > difference.
-> > > 
-> > > The comment in xen_pvh_guest_init() explains it. For domU the
-> > > library maps the pfn at shared_info, ie, shared_info is pfn. For
-> > > dom0, it's the mfn. Dom0 then allocates a pfn via extend_brk, and
-> > > maps the mfn to it. This happens in the commond hvm code,
-> > > xen_hvm_init_shared_info().
-> > 
-> > This difference is really subtle, it would be nice to get rid of it.
-> > Could Xen allocate a pfn for dom0?
-> 
-> Not easily.
-> 
-> > Otherwise could we have the tools allocate an mfn instead of a pfn?
-> > In fact looking at xc_dom_x86.c, alloc_magic_pages is explicitly
-> > having a different behavior for xc_dom_feature_translated guests and
-> > allocates pfn instead of an mfn. Maybe we could get rid of that
-> > special case: less code in libxc, a common way of allocating the
-> > shared_info page for domU and dom0 => win.
-> 
-> Wish it was simple. But for PV and PVH, domU, it's already setup the 
-> shared page. All we need to do is __va(shared_info). But for HVM domUs 
-> and PVH dom0, we need to hcall with pfn to get it remapped.
-
-For PVH domU is already setup as a pfn only because in
-tools/libxc/xc_dom_x86.c:alloc_magic_pages we have this code:
-
-    if ( xc_dom_feature_translated(dom) )
-        dom->shared_info_pfn = xc_dom_alloc_page(dom, "shared info");
-
-and in tools/libxc/xc_dom_x86.c:start_info_x86_64 we have:
-
-    xen_pfn_t shinfo =
-        xc_dom_feature_translated(dom) ? dom->shared_info_pfn : dom->
-        shared_info_mfn;
-
-if we simply get rid of the two "if xc_dom_feature_translated(dom)"
-wouldn't we get an mfn for PVH domU too? AFAICT all the other cases would
-remain unmodified, but PVH domU would start getting an mfn for shared_info.
-
-> Changing the
-> tool to map pfn, would result in unnecessary hcall for all PV and PVH
-> domUs. It's only two lines of code, so lets just leave it. I'll make the
-> comment better.
-
-Yes, there would be one more unnecessary hypercall but we would get rid
-of 4 "if". I think is a good trade off.
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<alpine.DEB.2.02.1210031242180.29232@kaball.uk.xensource.com> b/test/corpus/<alpine.DEB.2.02.1210031242180.29232@kaball.uk.xensource.com>
deleted file mode 100644 (file)
index f204d4e..0000000
+++ /dev/null
@@ -1,160 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Oct 03 13:04:01 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 03 Oct 2012 13:04:01 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TJNgE-0005iq-QF
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 03 Oct 2012 13:04:01 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TJNbq-0000ac-Fk; Wed, 03 Oct 2012 11:59:26 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1TJNbp-0000aT-1B
-       for Xen-devel@lists.xensource.com; Wed, 03 Oct 2012 11:59:25 +0000
-Received: from [85.158.138.51:14234] by server-7.bemta-3.messagelabs.com id
-       26/DA-15765-C982C605; Wed, 03 Oct 2012 11:59:24 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-3.tower-174.messagelabs.com!1349265563!24857654!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTMxMDE=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 26166 invoked from network); 3 Oct 2012 11:59:23 -0000
-Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-3.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
-       3 Oct 2012 11:59:23 -0000
-X-IronPort-AV: E=Sophos;i="4.80,527,1344211200"; d="scan'208";a="14913570"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       03 Oct 2012 11:59:22 +0000
-Received: from kaball.uk.xensource.com (10.80.2.59) by
-       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
-       8.3.279.1; Wed, 3 Oct 2012 12:59:22 +0100
-Date: Wed, 3 Oct 2012 12:58:22 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-X-Sender: sstabellini@kaball.uk.xensource.com
-To: Mukesh Rathor <mukesh.rathor@oracle.com>
-In-Reply-To: <20121002190323.2e16f6ff@mantra.us.oracle.com>
-Message-ID: <alpine.DEB.2.02.1210031242180.29232@kaball.uk.xensource.com>
-References: <20120921121659.5a723de9@mantra.us.oracle.com>
-       <alpine.DEB.2.02.1209241257440.29232@kaball.uk.xensource.com>
-       <20120924154335.097d3fb9@mantra.us.oracle.com>
-       <alpine.DEB.2.02.1209251054140.29232@kaball.uk.xensource.com>
-       <20120925180416.0137d61a@mantra.us.oracle.com>
-       <alpine.DEB.2.02.1209261225340.29232@kaball.uk.xensource.com>
-       <20121002183619.70734b7a@mantra.us.oracle.com>
-       <20121002190323.2e16f6ff@mantra.us.oracle.com>
-User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
-MIME-Version: 1.0
-Cc: "Xen-devel@lists.xensource.com" <Xen-devel@lists.xensource.com>,
-       Ian Campbell <Ian.Campbell@citrix.com>,
-       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH v1 3/8]: PVH startup changes (enlighten.c)
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Wed, 3 Oct 2012, Mukesh Rathor wrote:
-> On Tue, 2 Oct 2012 18:36:19 -0700
-> Mukesh Rathor <mukesh.rathor@oracle.com> wrote:
-> 
-> > On Wed, 26 Sep 2012 12:33:39 +0100
-> > Stefano Stabellini <stefano.stabellini@eu.citrix.com> wrote:
-> > 
-> > > > Wish it was simple. But for PV and PVH, domU, it's already setup
-> > > > the shared page. All we need to do is __va(shared_info). But for
-> > > > HVM domUs and PVH dom0, we need to hcall with pfn to get it
-> > > > remapped.
-> > > 
-> > > For PVH domU is already setup as a pfn only because in
-> > > tools/libxc/xc_dom_x86.c:alloc_magic_pages we have this code:
-> > > 
-> > >     if ( xc_dom_feature_translated(dom) )
-> > >         dom->shared_info_pfn = xc_dom_alloc_page(dom, "shared
-> > > info");
-> > > 
-> > > and in tools/libxc/xc_dom_x86.c:start_info_x86_64 we have:
-> > > 
-> > >     xen_pfn_t shinfo =
-> > >         xc_dom_feature_translated(dom) ? dom->shared_info_pfn :
-> > > dom-> shared_info_mfn;
-> > > 
-> > > if we simply get rid of the two "if xc_dom_feature_translated(dom)"
-> > > wouldn't we get an mfn for PVH domU too? AFAICT all the other cases
-> > > would remain unmodified, but PVH domU would start getting an mfn for
-> > > shared_info.
-> > > 
-> > > > Changing the
-> > > > tool to map pfn, would result in unnecessary hcall for all PV and
-> > > > PVH domUs. It's only two lines of code, so lets just leave it.
-> > > > I'll make the comment better.
-> > > 
-> > > Yes, there would be one more unnecessary hypercall but we would get
-> > > rid of 4 "if". I think is a good trade off.
-> > 
-> > Well, not really unfortunately! There are two fields in the library 
-> > shared_info_mfn and shared_info_pfn in struct xc_dom_image. For
-> > xlated, pfn is set, otherwise, mfn is set. If I set mfn for auto 
-> > xlated also, I end up changing/adding  more code in the library where
-> > it tries to map the shared page. Moreover, it's better to stick with
-> > the library assumption that for auto xlated, pfn is set, otherwise,
-> > mfn is set.
-> > 
-> > Hope that makes sense. I tried it, btw.
-> > 
-> 
-> I'm not able to make a quick change to xen to just put pfn for dom0
-> also. get_gpfn_from_mfn() is crashing.
-
-Did you add the newly allocated shared_info page to dom0's p2m?
-If not, the page doesn't actually belong to the domain (from the p2m
-POV), so get_gpfn_from_mfn might not behave correctly.
-
-
-> So for now, how about, lets go
-> with what I've got. I'll make a note, and when I do xen patch, I'll
-> figure it out, and would be a very small linux patch. I want to get
-> linux patch in soon before the window closes.
-
-We can leave page special as it is for now with very little
-consequences, because it is not part of the interface with Xen. However
-this is part of the interface, so whatever we choose here is going to be
-hard to change later on.
-
-I think it would be good if we could either make dom0 use a pfn or domU
-use mfn, whatever is easier for you.
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<alpine.DEB.2.02.1210031336210.29232@kaball.uk.xensource.com> b/test/corpus/<alpine.DEB.2.02.1210031336210.29232@kaball.uk.xensource.com>
deleted file mode 100644 (file)
index fcad95a..0000000
+++ /dev/null
@@ -1,111 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Oct 03 13:41:47 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 03 Oct 2012 13:41:47 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TJOGj-0005r8-9C
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 03 Oct 2012 13:41:46 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TJODB-0002HY-QU; Wed, 03 Oct 2012 12:38:01 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1TJOD9-0002HR-Ef
-       for Xen-devel@lists.xensource.com; Wed, 03 Oct 2012 12:37:59 +0000
-Received: from [85.158.138.51:55102] by server-14.bemta-3.messagelabs.com id
-       74/B0-25886-6A13C605; Wed, 03 Oct 2012 12:37:58 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-11.tower-174.messagelabs.com!1349267877!32924204!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTMxMDE=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 4592 invoked from network); 3 Oct 2012 12:37:58 -0000
-Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-11.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
-       3 Oct 2012 12:37:58 -0000
-X-IronPort-AV: E=Sophos;i="4.80,527,1344211200"; d="scan'208";a="14914854"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       03 Oct 2012 12:37:50 +0000
-Received: from kaball.uk.xensource.com (10.80.2.59) by
-       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
-       8.3.279.1; Wed, 3 Oct 2012 13:37:50 +0100
-Date: Wed, 3 Oct 2012 13:36:50 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-X-Sender: sstabellini@kaball.uk.xensource.com
-To: Ian Campbell <Ian.Campbell@citrix.com>
-In-Reply-To: <1349265914.650.136.camel@zakaz.uk.xensource.com>
-Message-ID: <alpine.DEB.2.02.1210031336210.29232@kaball.uk.xensource.com>
-References: <20120921121659.5a723de9@mantra.us.oracle.com>
-       <alpine.DEB.2.02.1209241257440.29232@kaball.uk.xensource.com>
-       <20120924154335.097d3fb9@mantra.us.oracle.com>
-       <alpine.DEB.2.02.1209251054140.29232@kaball.uk.xensource.com> 
-       <20120925180416.0137d61a@mantra.us.oracle.com>
-       <alpine.DEB.2.02.1209261225340.29232@kaball.uk.xensource.com>
-       <20121002183619.70734b7a@mantra.us.oracle.com>
-       <20121002190323.2e16f6ff@mantra.us.oracle.com>
-       <alpine.DEB.2.02.1210031242180.29232@kaball.uk.xensource.com>
-       <1349265914.650.136.camel@zakaz.uk.xensource.com>
-User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
-MIME-Version: 1.0
-Cc: "Xen-devel@lists.xensource.com" <Xen-devel@lists.xensource.com>,
-       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH v1 3/8]: PVH startup changes (enlighten.c)
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Wed, 3 Oct 2012, Ian Campbell wrote:
-> On Wed, 2012-10-03 at 12:58 +0100, Stefano Stabellini wrote:
-> > > So for now, how about, lets go
-> > > with what I've got. I'll make a note, and when I do xen patch, I'll
-> > > figure it out, and would be a very small linux patch. I want to get
-> > > linux patch in soon before the window closes.
-> > 
-> > We can leave page special as it is for now with very little
-> > consequences, because it is not part of the interface with Xen. However
-> > this is part of the interface, so whatever we choose here is going to be
-> > hard to change later on.
-> 
-> I suggested that until we have seen and reviewed the hypervisor side
-> patches this guest side functionality all needs to be under an option
-> which has CONFIG_EXPERIMENTAL as a dependency and a comment explaining
-> that the ABI is not fixed yet, similar to what we did for the ARM port.
-
-OK. In that case we can also keep the pfn/mfn issue as it is and change
-it later.
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<alpine.DEB.2.02.1210031431080.29232@kaball.uk.xensource.com> b/test/corpus/<alpine.DEB.2.02.1210031431080.29232@kaball.uk.xensource.com>
deleted file mode 100644 (file)
index 8e28be6..0000000
+++ /dev/null
@@ -1,112 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Oct 03 14:42:56 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 03 Oct 2012 14:42:56 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TJPDu-00066E-T5
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 03 Oct 2012 14:42:56 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TJPAZ-0005QL-EK; Wed, 03 Oct 2012 13:39:23 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1TJPAX-0005QB-Kp
-       for xen-devel@lists.xensource.com; Wed, 03 Oct 2012 13:39:21 +0000
-Received: from [85.158.143.99:5045] by server-1.bemta-4.messagelabs.com id
-       EC/5E-05684-9004C605; Wed, 03 Oct 2012 13:39:21 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-14.tower-216.messagelabs.com!1349271560!23101827!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTMxMDE=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 16225 invoked from network); 3 Oct 2012 13:39:20 -0000
-Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-14.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
-       3 Oct 2012 13:39:20 -0000
-X-IronPort-AV: E=Sophos;i="4.80,528,1344211200"; d="scan'208";a="14916519"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       03 Oct 2012 13:38:53 +0000
-Received: from kaball.uk.xensource.com (10.80.2.59) by
-       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
-       8.3.279.1; Wed, 3 Oct 2012 14:38:53 +0100
-Date: Wed, 3 Oct 2012 14:37:53 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-X-Sender: sstabellini@kaball.uk.xensource.com
-To: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-Message-ID: <alpine.DEB.2.02.1210031431080.29232@kaball.uk.xensource.com>
-User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
-MIME-Version: 1.0
-Cc: xen-devel@lists.xensource.com, linux-kernel@vger.kernel.org,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: [Xen-devel] [PATCH] xen: point xen_start_info to a dummy struct for
- PV on HVM guests
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-PV on HVM guests don't have a start_info page mapped by Xen, so
-xen_start_info is just NULL for them.
-That is problem because other parts of the code expect xen_start_info to
-point to something valid, for example xen_initial_domain() is defined as
-follow:
-
-#define xen_initial_domain()    (xen_domain() && \
-                 xen_start_info->flags & SIF_INITDOMAIN)
-
-
-Allocate a dummy start_info struct and point xen_start_info to it, as we
-do on ARM.
-This is not going to change things for PV guests because
-xen_start_info is set by arch/x86/xen/xen-head.S:startup_xen.
-
-Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-
-diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c
-index bf788d3..5f242cb 100644
---- a/arch/x86/xen/enlighten.c
-+++ b/arch/x86/xen/enlighten.c
-@@ -96,7 +96,8 @@ EXPORT_SYMBOL(machine_to_phys_mapping);
- unsigned long  machine_to_phys_nr;
- EXPORT_SYMBOL(machine_to_phys_nr);
--struct start_info *xen_start_info;
-+static struct start_info _xen_start_info;
-+struct start_info *xen_start_info = &_xen_start_info;
- EXPORT_SYMBOL_GPL(xen_start_info);
- struct shared_info xen_dummy_shared_info;
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<alpine.DEB.2.02.1210031450220.29232@kaball.uk.xensource.com> b/test/corpus/<alpine.DEB.2.02.1210031450220.29232@kaball.uk.xensource.com>
deleted file mode 100644 (file)
index 8e534c4..0000000
+++ /dev/null
@@ -1,107 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Oct 03 14:56:58 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 03 Oct 2012 14:56:58 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TJPRU-0006AZ-JA
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 03 Oct 2012 14:56:58 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TJPO9-0006NU-2U; Wed, 03 Oct 2012 13:53:25 +0000
-Received: from mail27.messagelabs.com ([193.109.254.147])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1TJPO7-0006NG-4I
-       for xen-devel@lists.xensource.com; Wed, 03 Oct 2012 13:53:23 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-13.tower-27.messagelabs.com!1349272380!8611597!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTMxMDE=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 17149 invoked from network); 3 Oct 2012 13:53:02 -0000
-Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-13.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
-       3 Oct 2012 13:53:02 -0000
-X-IronPort-AV: E=Sophos;i="4.80,528,1344211200"; d="scan'208";a="14916885"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       03 Oct 2012 13:52:59 +0000
-Received: from kaball.uk.xensource.com (10.80.2.59) by
-       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
-       8.3.279.1; Wed, 3 Oct 2012 14:52:59 +0100
-Date: Wed, 3 Oct 2012 14:51:59 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-X-Sender: sstabellini@kaball.uk.xensource.com
-To: Ian Campbell <Ian.Campbell@citrix.com>
-In-Reply-To: <1349272182.650.150.camel@zakaz.uk.xensource.com>
-Message-ID: <alpine.DEB.2.02.1210031450220.29232@kaball.uk.xensource.com>
-References: <alpine.DEB.2.02.1210031431080.29232@kaball.uk.xensource.com>
-       <1349272182.650.150.camel@zakaz.uk.xensource.com>
-User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
-MIME-Version: 1.0
-Cc: "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
-       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
-       "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH] xen: point xen_start_info to a dummy struct
- for PV on HVM guests
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Wed, 3 Oct 2012, Ian Campbell wrote:
-> On Wed, 2012-10-03 at 14:37 +0100, Stefano Stabellini wrote:
-> > PV on HVM guests don't have a start_info page mapped by Xen, so
-> > xen_start_info is just NULL for them.
-> > That is problem because other parts of the code expect xen_start_info to
-> > point to something valid, for example xen_initial_domain() is defined as
-> > follow:
-> > 
-> > #define xen_initial_domain()    (xen_domain() && \
-> >                  xen_start_info->flags & SIF_INITDOMAIN)
-> 
-> But anyone who calls this before xen_start_info is setup is going to get
-> a bogus result, specifically in this case they will think they are domU
-> when in reality they are dom0 -- wouldn't it be better to fix those
-> callsites?
-
-That cannot be the case because setting up xen_start_info is the very
-first thing that is done, before even calling to C.
-
-
-> Perhaps turn this into a static inline with a BUG_ON(!xen_start_info) to
-> make catching these cases easier?
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<alpine.DEB.2.02.1210031641050.29232@kaball.uk.xensource.com> b/test/corpus/<alpine.DEB.2.02.1210031641050.29232@kaball.uk.xensource.com>
deleted file mode 100644 (file)
index 8912582..0000000
+++ /dev/null
@@ -1,158 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Oct 03 16:53:34 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 03 Oct 2012 16:53:34 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TJRGK-0006hw-FX
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 03 Oct 2012 16:53:34 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TJRC4-0001qB-Di; Wed, 03 Oct 2012 15:49:04 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1TJRC2-0001q6-H7
-       for xen-devel@lists.xensource.com; Wed, 03 Oct 2012 15:49:02 +0000
-Received: from [85.158.139.211:12712] by server-16.bemta-5.messagelabs.com id
-       5E/BF-05998-D6E5C605; Wed, 03 Oct 2012 15:49:01 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-14.tower-206.messagelabs.com!1349279341!20884515!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTMxMDE=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 16396 invoked from network); 3 Oct 2012 15:49:01 -0000
-Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-14.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
-       3 Oct 2012 15:49:01 -0000
-X-IronPort-AV: E=Sophos;i="4.80,528,1344211200"; d="scan'208";a="14920034"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       03 Oct 2012 15:49:00 +0000
-Received: from kaball.uk.xensource.com (10.80.2.59) by
-       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
-       8.3.279.1; Wed, 3 Oct 2012 16:49:00 +0100
-Date: Wed, 3 Oct 2012 16:48:00 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-X-Sender: sstabellini@kaball.uk.xensource.com
-To: Ian Campbell <Ian.Campbell@citrix.com>
-In-Reply-To: <1349276431.650.156.camel@zakaz.uk.xensource.com>
-Message-ID: <alpine.DEB.2.02.1210031641050.29232@kaball.uk.xensource.com>
-References: <alpine.DEB.2.02.1210031431080.29232@kaball.uk.xensource.com>
-       <1349272182.650.150.camel@zakaz.uk.xensource.com>
-       <alpine.DEB.2.02.1210031450220.29232@kaball.uk.xensource.com>
-       <1349272482.650.151.camel@zakaz.uk.xensource.com> 
-       <20121003141116.GA10633@phenom.dumpdata.com>
-       <1349276431.650.156.camel@zakaz.uk.xensource.com>
-User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
-MIME-Version: 1.0
-Cc: "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>,
-       "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
-       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
-Subject: Re: [Xen-devel] [PATCH] xen: point xen_start_info to a dummy struct
- for PV on HVM guests
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Wed, 3 Oct 2012, Ian Campbell wrote:
-> On Wed, 2012-10-03 at 15:11 +0100, Konrad Rzeszutek Wilk wrote:
-> > On Wed, Oct 03, 2012 at 02:54:42PM +0100, Ian Campbell wrote:
-> > > On Wed, 2012-10-03 at 14:51 +0100, Stefano Stabellini wrote:
-> > > > On Wed, 3 Oct 2012, Ian Campbell wrote:
-> > > > > On Wed, 2012-10-03 at 14:37 +0100, Stefano Stabellini wrote:
-> > > > > > PV on HVM guests don't have a start_info page mapped by Xen, so
-> > > > > > xen_start_info is just NULL for them.
-> > > > > > That is problem because other parts of the code expect xen_start_info to
-> > > > > > point to something valid, for example xen_initial_domain() is defined as
-> > > > > > follow:
-> > > > > > 
-> > > > > > #define xen_initial_domain()    (xen_domain() && \
-> > > > > >                  xen_start_info->flags & SIF_INITDOMAIN)
-> > > > > 
-> > > > > But anyone who calls this before xen_start_info is setup is going to get
-> > > > > a bogus result, specifically in this case they will think they are domU
-> > > > > when in reality they are dom0 -- wouldn't it be better to fix those
-> > > > > callsites?
-> > > > 
-> > > > That cannot be the case because setting up xen_start_info is the very
-> > > > first thing that is done, before even calling to C.
-> > > 
-> > > On PV, yes, but you are trying to fix PVHVM here, no?
-> > > 
-> > > Otherwise if this is always set before calling into C then what is the
-> > > purpose of this patch?
-> > 
-> > to fix this - as PVHVM has it set to NULL and we end up de-referencing
-> > the xen_start_info and crashing. As so::
-> > 
-> 
-> Right, so returning to my original point: The caller here is calling
-> xen_initial_domain() *before* start info is setup. This is bogus and is
-> your actual bug, all this patch does is hide that real issue.
-
-That is because xen_start_info wasn't setup at all for PV on HVM guests.
-
-The real reason is that PV on HVM guests don't have one, but that is
-another matter. Until we get rid of all the references to xen_start_info
-outside of PV specific code, we should just assume that there is one,
-and that is already setup.
-
-One day not too far from now, we might refactor the code to never
-reference xen_start_info directly, but I don't think that now is the
-time for that. Also consider that this is the same thing we do on ARM.
-
-
-> With this "fix" the caller of xen_initial_domain shown in this trace now
-> gets a rubbish result based on the content of a dummy shared info
-> instead of the real answer from that actual shared info.
-
-That is not true. The caller gets a zero result, that is completely
-appropriate in this case, given that a PV on HVM guest doesn't have a
-start_info.
-
-
-> The right fix is to fix the caller to not call xen_initial_domain()
-> until after the shared info has been setup. Maybe that means moving
-> shinfo setup earlier, or maybe it means deferring this call until later
-> in the PVHVM case.
-
-I don't think so, we should be able to call xen_initial_domain() at any
-point in the code.
-
-The best course of action is taking this fix now (making PVHVM x86
-guests behave the same way as ARM guests) and refactor all the callers to
-xen_start_info later.
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<alpine.DEB.2.02.1210031648330.29232@kaball.uk.xensource.com> b/test/corpus/<alpine.DEB.2.02.1210031648330.29232@kaball.uk.xensource.com>
deleted file mode 100644 (file)
index ce10de0..0000000
+++ /dev/null
@@ -1,140 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Oct 03 16:53:35 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 03 Oct 2012 16:53:35 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TJRGM-0006hy-2G
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 03 Oct 2012 16:53:35 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TJRCy-0001tY-S6; Wed, 03 Oct 2012 15:50:00 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1TJRCx-0001tN-D9
-       for xen-devel@lists.xensource.com; Wed, 03 Oct 2012 15:49:59 +0000
-Received: from [85.158.143.99:26360] by server-3.bemta-4.messagelabs.com id
-       80/4F-10986-6AE5C605; Wed, 03 Oct 2012 15:49:58 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-3.tower-216.messagelabs.com!1349279397!32130207!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTMxMDE=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 20249 invoked from network); 3 Oct 2012 15:49:58 -0000
-Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-3.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
-       3 Oct 2012 15:49:58 -0000
-X-IronPort-AV: E=Sophos;i="4.80,528,1344211200"; d="scan'208";a="14920059"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       03 Oct 2012 15:49:57 +0000
-Received: from kaball.uk.xensource.com (10.80.2.59) by
-       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
-       8.3.279.1; Wed, 3 Oct 2012 16:49:57 +0100
-Date: Wed, 3 Oct 2012 16:48:57 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-X-Sender: sstabellini@kaball.uk.xensource.com
-To: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-In-Reply-To: <20121003134323.GA31270@phenom.dumpdata.com>
-Message-ID: <alpine.DEB.2.02.1210031648330.29232@kaball.uk.xensource.com>
-References: <alpine.DEB.2.02.1210031431080.29232@kaball.uk.xensource.com>
-       <20121003134323.GA31270@phenom.dumpdata.com>
-User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
-       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
-Subject: Re: [Xen-devel] [PATCH] xen: point xen_start_info to a dummy struct
- for PV on HVM guests
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Wed, 3 Oct 2012, Konrad Rzeszutek Wilk wrote:
-> On Wed, Oct 03, 2012 at 02:37:53PM +0100, Stefano Stabellini wrote:
-> > PV on HVM guests don't have a start_info page mapped by Xen, so
-> > xen_start_info is just NULL for them.
-> > That is problem because other parts of the code expect xen_start_info to
-> > point to something valid, for example xen_initial_domain() is defined as
-> > follow:
-> > 
-> > #define xen_initial_domain()    (xen_domain() && \
-> >                  xen_start_info->flags & SIF_INITDOMAIN)
-> > 
-> 
-> .. introduced by commit 4c071ee5268f7234c3d084b6093bebccc28cdcba
-> ("arm: initial Xen support)
-> 
-> > 
-> > Allocate a dummy start_info struct and point xen_start_info to it, as we
-> > do on ARM.
-> > This is not going to change things for PV guests because
-> > xen_start_info is set by arch/x86/xen/xen-head.S:startup_xen.
-> > 
-> > Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-> 
-> Reported-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-> > 
-> > diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c
-> > index bf788d3..5f242cb 100644
-> > --- a/arch/x86/xen/enlighten.c
-> > +++ b/arch/x86/xen/enlighten.c
-> > @@ -96,7 +96,8 @@ EXPORT_SYMBOL(machine_to_phys_mapping);
-> >  unsigned long  machine_to_phys_nr;
-> >  EXPORT_SYMBOL(machine_to_phys_nr);
-> >  
-> > -struct start_info *xen_start_info;
-> > +static struct start_info _xen_start_info;
-> 
-> And lets change that to
-> 'xen_dummy_start_info' to keep in sync with the other dummy one.
-> 
-> And also add a commnt:
-> 
-> /*
->  * Since 'xen_initial_domain' dereferences the xen_start_info we need
->  * a dummy structure filled with zeros (for PVHVM guests which initialize
->  * this late). For PV guests we do not have to worry about this as the first
->  * few instructions (startup_xen) set it  properly.
->  */
-
-I agree with all the changes, I'll repost soon
-
-> > +struct start_info *xen_start_info = &_xen_start_info;
-> >  EXPORT_SYMBOL_GPL(xen_start_info);
-> >  
-> >  struct shared_info xen_dummy_shared_info;
-> 
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<alpine.DEB.2.02.1210031658120.29232@kaball.uk.xensource.com> b/test/corpus/<alpine.DEB.2.02.1210031658120.29232@kaball.uk.xensource.com>
deleted file mode 100644 (file)
index 980680f..0000000
+++ /dev/null
@@ -1,180 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Oct 03 17:11:50 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 03 Oct 2012 17:11:50 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TJRY0-0006m7-ED
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 03 Oct 2012 17:11:50 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TJRTJ-00035m-Io; Wed, 03 Oct 2012 16:06:53 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1TJRTH-00035a-QK
-       for xen-devel@lists.xensource.com; Wed, 03 Oct 2012 16:06:52 +0000
-Received: from [85.158.143.99:9121] by server-3.bemta-4.messagelabs.com id
-       23/04-10986-B926C605; Wed, 03 Oct 2012 16:06:51 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-6.tower-216.messagelabs.com!1349280409!25728796!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTMxMDE=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 28948 invoked from network); 3 Oct 2012 16:06:50 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-6.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
-       3 Oct 2012 16:06:50 -0000
-X-IronPort-AV: E=Sophos;i="4.80,528,1344211200"; d="scan'208";a="14920536"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       03 Oct 2012 16:06:47 +0000
-Received: from kaball.uk.xensource.com (10.80.2.59) by
-       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
-       8.3.279.1; Wed, 3 Oct 2012 17:06:47 +0100
-Date: Wed, 3 Oct 2012 17:05:47 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-X-Sender: sstabellini@kaball.uk.xensource.com
-To: Ian Campbell <Ian.Campbell@citrix.com>
-In-Reply-To: <1349279862.650.171.camel@zakaz.uk.xensource.com>
-Message-ID: <alpine.DEB.2.02.1210031658120.29232@kaball.uk.xensource.com>
-References: <alpine.DEB.2.02.1210031431080.29232@kaball.uk.xensource.com>
-       <1349272182.650.150.camel@zakaz.uk.xensource.com>
-       <alpine.DEB.2.02.1210031450220.29232@kaball.uk.xensource.com>
-       <1349272482.650.151.camel@zakaz.uk.xensource.com> 
-       <20121003141116.GA10633@phenom.dumpdata.com>
-       <1349276431.650.156.camel@zakaz.uk.xensource.com>
-       <alpine.DEB.2.02.1210031641050.29232@kaball.uk.xensource.com>
-       <1349279862.650.171.camel@zakaz.uk.xensource.com>
-User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
-MIME-Version: 1.0
-Cc: "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
-       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
-       "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
-Subject: Re: [Xen-devel] [PATCH] xen: point xen_start_info to a dummy struct
- for PV on HVM guests
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Wed, 3 Oct 2012, Ian Campbell wrote:
-> On Wed, 2012-10-03 at 16:48 +0100, Stefano Stabellini wrote:
-> > On Wed, 3 Oct 2012, Ian Campbell wrote:
-> > > On Wed, 2012-10-03 at 15:11 +0100, Konrad Rzeszutek Wilk wrote:
-> > > > On Wed, Oct 03, 2012 at 02:54:42PM +0100, Ian Campbell wrote:
-> > > > > On Wed, 2012-10-03 at 14:51 +0100, Stefano Stabellini wrote:
-> > > > > > On Wed, 3 Oct 2012, Ian Campbell wrote:
-> > > > > > > On Wed, 2012-10-03 at 14:37 +0100, Stefano Stabellini wrote:
-> > > > > > > > PV on HVM guests don't have a start_info page mapped by Xen, so
-> > > > > > > > xen_start_info is just NULL for them.
-> > > > > > > > That is problem because other parts of the code expect xen_start_info to
-> > > > > > > > point to something valid, for example xen_initial_domain() is defined as
-> > > > > > > > follow:
-> > > > > > > > 
-> > > > > > > > #define xen_initial_domain()    (xen_domain() && \
-> > > > > > > >                  xen_start_info->flags & SIF_INITDOMAIN)
-> > > > > > > 
-> > > > > > > But anyone who calls this before xen_start_info is setup is going to get
-> > > > > > > a bogus result, specifically in this case they will think they are domU
-> > > > > > > when in reality they are dom0 -- wouldn't it be better to fix those
-> > > > > > > callsites?
-> > > > > > 
-> > > > > > That cannot be the case because setting up xen_start_info is the very
-> > > > > > first thing that is done, before even calling to C.
-> > > > > 
-> > > > > On PV, yes, but you are trying to fix PVHVM here, no?
-> > > > > 
-> > > > > Otherwise if this is always set before calling into C then what is the
-> > > > > purpose of this patch?
-> > > > 
-> > > > to fix this - as PVHVM has it set to NULL and we end up de-referencing
-> > > > the xen_start_info and crashing. As so::
-> > > > 
-> > > 
-> > > Right, so returning to my original point: The caller here is calling
-> > > xen_initial_domain() *before* start info is setup. This is bogus and is
-> > > your actual bug, all this patch does is hide that real issue.
-> > 
-> > That is because xen_start_info wasn't setup at all for PV on HVM guests.
-> > 
-> > The real reason is that PV on HVM guests don't have one, but that is
-> > another matter. Until we get rid of all the references to xen_start_info
-> > outside of PV specific code, we should just assume that there is one,
-> > and that is already setup.
-> > 
-> > One day not too far from now, we might refactor the code to never
-> > reference xen_start_info directly, but I don't think that now is the
-> > time for that. Also consider that this is the same thing we do on ARM.
-> 
-> We actual fill in the dummy start info with valid information on ARM
-> though, we don't just leave it full of zeroes.
-> 
-> If we do start out with start_info pointing to an uninitialised
-> start_info on ARM too then I would argue that this is also a mistake.
-
-Yes, we do point xen_start_info to an uninitialised start_info on ARM
-too (I don't think is a mistake). Then when and if we have more
-information we write them to start_info.
-
-
-> We
-> should leave the NULL pointer in place until we setup the content of the
-> dummy start info -- exactly because the resulting crash indicates to us
-> that someone has accessed the si before we've initialised it.
-
-I don't think so. It is initialized to zero, that is the right thing to
-do.
-
-
-> > > With this "fix" the caller of xen_initial_domain shown in this trace now
-> > > gets a rubbish result based on the content of a dummy shared info
-> > > instead of the real answer from that actual shared info.
-> > 
-> > That is not true. The caller gets a zero result, that is completely
-> > appropriate in this case, given that a PV on HVM guest doesn't have a
-> > start_info.
-> 
-> It's just a side effect of Linux zeroing its bss though and zero
-> happening to be the right answer for a PVHVM guest in this case.
-
-well, I would call that "by design" ;-)
-
-
-> Is it true that zero is an appropriate result for all uses of fields in
-> start_info on PVHVM?
-
-I think so. In fact, if we wanted to, we could have the dummy struct
-initialized to something different, but I don't think that we should.
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<alpine.DEB.2.02.1210031758310.29232@kaball.uk.xensource.com> b/test/corpus/<alpine.DEB.2.02.1210031758310.29232@kaball.uk.xensource.com>
deleted file mode 100644 (file)
index 7ef977c..0000000
+++ /dev/null
@@ -1,214 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Oct 03 18:11:33 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 03 Oct 2012 18:11:33 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TJSTq-00072D-Av
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 03 Oct 2012 18:11:32 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TJSQS-0005Ec-4P; Wed, 03 Oct 2012 17:08:00 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1TJSQQ-0005EU-V3
-       for xen-devel@lists.xensource.com; Wed, 03 Oct 2012 17:07:59 +0000
-Received: from [85.158.139.211:50729] by server-3.bemta-5.messagelabs.com id
-       44/DF-16108-EE07C605; Wed, 03 Oct 2012 17:07:58 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-3.tower-206.messagelabs.com!1349284077!20935670!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTMxMDE=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 20152 invoked from network); 3 Oct 2012 17:07:57 -0000
-Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-3.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
-       3 Oct 2012 17:07:57 -0000
-X-IronPort-AV: E=Sophos;i="4.80,528,1344211200"; d="scan'208";a="14921858"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       03 Oct 2012 17:07:56 +0000
-Received: from kaball.uk.xensource.com (10.80.2.59) by
-       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
-       8.3.279.1; Wed, 3 Oct 2012 18:07:56 +0100
-Date: Wed, 3 Oct 2012 18:06:56 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-X-Sender: sstabellini@kaball.uk.xensource.com
-To: Ian Campbell <Ian.Campbell@citrix.com>
-In-Reply-To: <1349282492.650.185.camel@zakaz.uk.xensource.com>
-Message-ID: <alpine.DEB.2.02.1210031758310.29232@kaball.uk.xensource.com>
-References: <alpine.DEB.2.02.1210031431080.29232@kaball.uk.xensource.com>
-       <1349272182.650.150.camel@zakaz.uk.xensource.com>
-       <alpine.DEB.2.02.1210031450220.29232@kaball.uk.xensource.com>
-       <1349272482.650.151.camel@zakaz.uk.xensource.com> 
-       <20121003141116.GA10633@phenom.dumpdata.com>
-       <1349276431.650.156.camel@zakaz.uk.xensource.com>
-       <alpine.DEB.2.02.1210031641050.29232@kaball.uk.xensource.com>
-       <1349279862.650.171.camel@zakaz.uk.xensource.com>
-       <alpine.DEB.2.02.1210031658120.29232@kaball.uk.xensource.com>
-       <1349280814.650.178.camel@zakaz.uk.xensource.com>
-       <1349282492.650.185.camel@zakaz.uk.xensource.com>
-User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
-       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
-       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable version=3.3.1
-Subject: Re: [Xen-devel] [PATCH] xen: point xen_start_info to a dummy struct
- for PV on HVM guests
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Wed, 3 Oct 2012, Ian Campbell wrote:
-> On Wed, 2012-10-03 at 17:13 +0100, Ian Campbell wrote:
-> > On Wed, 2012-10-03 at 17:05 +0100, Stefano Stabellini wrote:
-> > > On Wed, 3 Oct 2012, Ian Campbell wrote:
-> > > > On Wed, 2012-10-03 at 16:48 +0100, Stefano Stabellini wrote:
-> > > > > On Wed, 3 Oct 2012, Ian Campbell wrote:
-> > > > > > On Wed, 2012-10-03 at 15:11 +0100, Konrad Rzeszutek Wilk wrote:
-> > > > > > > On Wed, Oct 03, 2012 at 02:54:42PM +0100, Ian Campbell wrote:
-> > > > > > > > On Wed, 2012-10-03 at 14:51 +0100, Stefano Stabellini wrote:
-> > > > > > > > > On Wed, 3 Oct 2012, Ian Campbell wrote:
-> > > > > > > > > > On Wed, 2012-10-03 at 14:37 +0100, Stefano Stabellini wrote:
-> > > > > > > > > > > PV on HVM guests don't have a start_info page mapped by Xen, so
-> > > > > > > > > > > xen_start_info is just NULL for them.
-> > > > > > > > > > > That is problem because other parts of the code expect xen_start_info to
-> > > > > > > > > > > point to something valid, for example xen_initial_domain() is defined as
-> > > > > > > > > > > follow:
-> > > > > > > > > > > 
-> > > > > > > > > > > #define xen_initial_domain()    (xen_domain() && \
-> > > > > > > > > > >                  xen_start_info->flags & SIF_INITDOMAIN)
-> > > > > > > > > > 
-> > > > > > > > > > But anyone who calls this before xen_start_info is setup is going to get
-> > > > > > > > > > a bogus result, specifically in this case they will think they are domU
-> > > > > > > > > > when in reality they are dom0 -- wouldn't it be better to fix those
-> > > > > > > > > > callsites?
-> > > > > > > > > 
-> > > > > > > > > That cannot be the case because setting up xen_start_info is the very
-> > > > > > > > > first thing that is done, before even calling to C.
-> > > > > > > > 
-> > > > > > > > On PV, yes, but you are trying to fix PVHVM here, no?
-> > > > > > > > 
-> > > > > > > > Otherwise if this is always set before calling into C then what is the
-> > > > > > > > purpose of this patch?
-> > > > > > > 
-> > > > > > > to fix this - as PVHVM has it set to NULL and we end up de-referencing
-> > > > > > > the xen_start_info and crashing. As so::
-> > > > > > > 
-> > > > > > 
-> > > > > > Right, so returning to my original point: The caller here is calling
-> > > > > > xen_initial_domain() *before* start info is setup. This is bogus and is
-> > > > > > your actual bug, all this patch does is hide that real issue.
-> > > > > 
-> > > > > That is because xen_start_info wasn't setup at all for PV on HVM guests.
-> > > > > 
-> > > > > The real reason is that PV on HVM guests don't have one, but that is
-> > > > > another matter. Until we get rid of all the references to xen_start_info
-> > > > > outside of PV specific code, we should just assume that there is one,
-> > > > > and that is already setup.
-> > > > > 
-> > > > > One day not too far from now, we might refactor the code to never
-> > > > > reference xen_start_info directly, but I don't think that now is the
-> > > > > time for that. Also consider that this is the same thing we do on ARM.
-> > > > 
-> > > > We actual fill in the dummy start info with valid information on ARM
-> > > > though, we don't just leave it full of zeroes.
-> > > > 
-> > > > If we do start out with start_info pointing to an uninitialised
-> > > > start_info on ARM too then I would argue that this is also a mistake.
-> > > 
-> > > Yes, we do point xen_start_info to an uninitialised start_info on ARM
-> > > too (I don't think is a mistake). Then when and if we have more
-> > > information we write them to start_info.
-> > 
-> > So callers of xen_initial_domain in dom0 before xen_guest_init is called
-> > get the wrong result?
-> > 
-> > That sounds like a mistake to me.
-> 
-> How about (modulo my not having looked up the actual names of the
-> constants etc):
-> 
->      #define xen_initial_domain() (xen_domain() && arch_is_initial_domain())
-> 
-> on x86:
->      int arch_is_initial_domain(void)
->      {
->              /* The initial domain is always PV and
->               * therefore start_info is always set for it.
->               */
->              return start_info && start_info->flags & SIF_INITDOMAIN;
->      }
-> on ARM:
->      int arch_is_initial_domain(void)
->      {
->              static is_initial = -1;
->              if (is_initial == -1)
->                      is_initial = HVM_param_get(HVMPARAM_DOM0)
->              return is_initial;
->      }
-
-What about the appended patch as a fix for the moment, then we can do
-the refactoring that you are suggesting, that is very similar to what I
-had in mind when I said that we shouldn't access xen_start_info
-directly.
-
----
-
-xen/xen_initial_domain: check that xen_start_info is initialized
-
-Since commit commit 4c071ee5268f7234c3d084b6093bebccc28cdcba ("arm:
-initial Xen support") PV on HVM guests can be xen_initial_domain.
-However PV on HVM guests might have an unitialized xen_start_info, so
-check before accessing its fields.
-
-Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-Reported-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-
-diff --git a/include/xen/xen.h b/include/xen/xen.h
-index 9a39ca5..e7101bb 100644
---- a/include/xen/xen.h
-+++ b/include/xen/xen.h
-@@ -28,7 +28,7 @@ extern enum xen_domain_type xen_domain_type;
- #include <asm/xen/hypervisor.h>
- #define xen_initial_domain()  (xen_domain() && \
--                               xen_start_info->flags & SIF_INITDOMAIN)
-+                               xen_start_info && xen_start_info->flags & SIF_INITDOMAIN)
- #else  /* !CONFIG_XEN_DOM0 */
- #define xen_initial_domain()  (0)
- #endif        /* CONFIG_XEN_DOM0 */
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<alpine.DEB.2.02.1210031807340.29232@kaball.uk.xensource.com> b/test/corpus/<alpine.DEB.2.02.1210031807340.29232@kaball.uk.xensource.com>
deleted file mode 100644 (file)
index 6c106b0..0000000
+++ /dev/null
@@ -1,117 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Oct 03 18:13:35 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 03 Oct 2012 18:13:35 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TJSVl-000731-Ll
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 03 Oct 2012 18:13:35 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TJSSK-0005Yo-J5; Wed, 03 Oct 2012 17:09:56 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1TJSSI-0005YN-J2
-       for xen-devel@lists.xensource.com; Wed, 03 Oct 2012 17:09:54 +0000
-Received: from [85.158.143.99:52891] by server-2.bemta-4.messagelabs.com id
-       A8/FB-06610-1617C605; Wed, 03 Oct 2012 17:09:53 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-14.tower-216.messagelabs.com!1349284193!23130410!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTMxMDE=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 8805 invoked from network); 3 Oct 2012 17:09:53 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-14.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
-       3 Oct 2012 17:09:53 -0000
-X-IronPort-AV: E=Sophos;i="4.80,528,1344211200"; d="scan'208";a="14921893"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       03 Oct 2012 17:09:52 +0000
-Received: from kaball.uk.xensource.com (10.80.2.59) by
-       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
-       8.3.279.1; Wed, 3 Oct 2012 18:09:52 +0100
-Date: Wed, 3 Oct 2012 18:08:52 +0100
-From: Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-X-X-Sender: sstabellini@kaball.uk.xensource.com
-To: Ian Campbell <Ian.Campbell@citrix.com>
-In-Reply-To: <1349282492.650.185.camel@zakaz.uk.xensource.com>
-Message-ID: <alpine.DEB.2.02.1210031807340.29232@kaball.uk.xensource.com>
-References: <alpine.DEB.2.02.1210031431080.29232@kaball.uk.xensource.com>
-       <1349272182.650.150.camel@zakaz.uk.xensource.com>
-       <alpine.DEB.2.02.1210031450220.29232@kaball.uk.xensource.com>
-       <1349272482.650.151.camel@zakaz.uk.xensource.com> 
-       <20121003141116.GA10633@phenom.dumpdata.com>
-       <1349276431.650.156.camel@zakaz.uk.xensource.com>
-       <alpine.DEB.2.02.1210031641050.29232@kaball.uk.xensource.com>
-       <1349279862.650.171.camel@zakaz.uk.xensource.com>
-       <alpine.DEB.2.02.1210031658120.29232@kaball.uk.xensource.com>
-       <1349280814.650.178.camel@zakaz.uk.xensource.com>
-       <1349282492.650.185.camel@zakaz.uk.xensource.com>
-User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
-       "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
-       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: [Xen-devel] [PATCH] xen/xen_initial_domain: check that
- xen_start_info is initialized
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-Since commit commit 4c071ee5268f7234c3d084b6093bebccc28cdcba ("arm:
-initial Xen support") PV on HVM guests can be xen_initial_domain.
-However PV on HVM guests might have an unitialized xen_start_info, so
-check before accessing its fields.
-
-Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-Acked-by: Ian Campbell <Ian.Campbell@citrix.com>
-Reported-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-
-diff --git a/include/xen/xen.h b/include/xen/xen.h
-index 9a39ca5..e7101bb 100644
---- a/include/xen/xen.h
-+++ b/include/xen/xen.h
-@@ -28,7 +28,7 @@ extern enum xen_domain_type xen_domain_type;
- #include <asm/xen/hypervisor.h>
- #define xen_initial_domain()  (xen_domain() && \
--                               xen_start_info->flags & SIF_INITDOMAIN)
-+                               xen_start_info && xen_start_info->flags & SIF_INITDOMAIN)
- #else  /* !CONFIG_XEN_DOM0 */
- #define xen_initial_domain()  (0)
- #endif        /* CONFIG_XEN_DOM0 */
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<alpine.DEB.2.02.1210041106560.29232@kaball.uk.xensource.com> b/test/corpus/<alpine.DEB.2.02.1210041106560.29232@kaball.uk.xensource.com>
deleted file mode 100644 (file)
index dfcc630..0000000
+++ /dev/null
@@ -1,128 +0,0 @@
-From xen-devel-bounces@lists.xen.org Thu Oct 04 11:12:43 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Thu, 04 Oct 2012 11:12:43 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TJiQ0-00064J-Se
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Thu, 04 Oct 2012 11:12:43 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TJiMW-0007Et-Eu; Thu, 04 Oct 2012 10:09:00 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1TJiMU-0007Eh-Ko
-       for xen-devel@lists.xensource.com; Thu, 04 Oct 2012 10:08:58 +0000
-Received: from [85.158.138.51:36941] by server-4.bemta-3.messagelabs.com id
-       0A/5E-14155-9306D605; Thu, 04 Oct 2012 10:08:57 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-12.tower-174.messagelabs.com!1349345337!25138935!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTMxNjA=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 20623 invoked from network); 4 Oct 2012 10:08:57 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-12.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
-       4 Oct 2012 10:08:57 -0000
-X-IronPort-AV: E=Sophos;i="4.80,533,1344211200"; d="scan'208";a="14935981"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       04 Oct 2012 10:08:46 +0000
-Received: from kaball.uk.xensource.com (10.80.2.59) by
-       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
-       8.3.279.1; Thu, 4 Oct 2012 11:08:46 +0100
-Date: Thu, 4 Oct 2012 11:07:46 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-X-Sender: sstabellini@kaball.uk.xensource.com
-To: Jan Beulich <JBeulich@suse.com>
-In-Reply-To: <506D5A53020000780009F8B7@nat28.tlf.novell.com>
-Message-ID: <alpine.DEB.2.02.1210041106560.29232@kaball.uk.xensource.com>
-References: <alpine.DEB.2.02.1210031431080.29232@kaball.uk.xensource.com>
-       <1349272182.650.150.camel@zakaz.uk.xensource.com>
-       <alpine.DEB.2.02.1210031450220.29232@kaball.uk.xensource.com>
-       <1349272482.650.151.camel@zakaz.uk.xensource.com>
-       <20121003141116.GA10633@phenom.dumpdata.com>
-       <1349276431.650.156.camel@zakaz.uk.xensource.com>
-       <alpine.DEB.2.02.1210031641050.29232@kaball.uk.xensource.com>
-       <1349279862.650.171.camel@zakaz.uk.xensource.com>
-       <alpine.DEB.2.02.1210031658120.29232@kaball.uk.xensource.com>
-       <1349280814.650.178.camel@zakaz.uk.xensource.com>
-       <1349282492.650.185.camel@zakaz.uk.xensource.com>
-       <alpine.DEB.2.02.1210031807340.29232@kaball.uk.xensource.com>
-       <506D5A53020000780009F8B7@nat28.tlf.novell.com>
-User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
-MIME-Version: 1.0
-Cc: "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
-       "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
-       Ian Campbell <Ian.Campbell@citrix.com>,
-       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH] xen/xen_initial_domain: check that
- xen_start_info is initialized
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Thu, 4 Oct 2012, Jan Beulich wrote:
-> >>> On 03.10.12 at 19:08, Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-> wrote:
-> > Since commit commit 4c071ee5268f7234c3d084b6093bebccc28cdcba ("arm:
-> > initial Xen support") PV on HVM guests can be xen_initial_domain.
-> > However PV on HVM guests might have an unitialized xen_start_info, so
-> > check before accessing its fields.
-> > 
-> > Signed-off-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-> > Acked-by: Ian Campbell <Ian.Campbell@citrix.com>
-> > Reported-by: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-> > 
-> > diff --git a/include/xen/xen.h b/include/xen/xen.h
-> > index 9a39ca5..e7101bb 100644
-> > --- a/include/xen/xen.h
-> > +++ b/include/xen/xen.h
-> > @@ -28,7 +28,7 @@ extern enum xen_domain_type xen_domain_type;
-> >  #include <asm/xen/hypervisor.h>
-> >  
-> >  #define xen_initial_domain()      (xen_domain() && \
-> > -                           xen_start_info->flags & SIF_INITDOMAIN)
-> > +                           xen_start_info && xen_start_info->flags & SIF_INITDOMAIN)
-> >  #else  /* !CONFIG_XEN_DOM0 */
-> >  #define xen_initial_domain()      (0)
-> >  #endif    /* CONFIG_XEN_DOM0 */
-> 
-> Didn't your other patch statically initialize it?
-
-Yes. Even though both patches can safely coexist, I wrote this one as an
-alternative solution.
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<alpine.DEB.2.02.1210051239100.29232@kaball.uk.xensource.com> b/test/corpus/<alpine.DEB.2.02.1210051239100.29232@kaball.uk.xensource.com>
deleted file mode 100644 (file)
index 90a63bc..0000000
+++ /dev/null
@@ -1,120 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Oct 05 12:47:31 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 05 Oct 2012 12:47:31 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TK6NJ-0007SV-NP
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 05 Oct 2012 12:47:31 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TK6KH-0007UG-68; Fri, 05 Oct 2012 11:44:17 +0000
-Received: from mail27.messagelabs.com ([193.109.254.147])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1TK6KF-0007TD-Da
-       for xen-devel@lists.xen.org; Fri, 05 Oct 2012 11:44:15 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-10.tower-27.messagelabs.com!1349437449!3784938!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTMxNTE=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 7798 invoked from network); 5 Oct 2012 11:44:09 -0000
-Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-10.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
-       5 Oct 2012 11:44:09 -0000
-X-IronPort-AV: E=Sophos;i="4.80,541,1344211200"; d="scan'208";a="14961323"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       05 Oct 2012 11:44:09 +0000
-Received: from kaball.uk.xensource.com (10.80.2.59) by
-       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
-       8.3.279.1; Fri, 5 Oct 2012 12:44:09 +0100
-Date: Fri, 5 Oct 2012 12:43:07 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-X-Sender: sstabellini@kaball.uk.xensource.com
-To: Ian Campbell <ian.campbell@citrix.com>
-In-Reply-To: <1349363515-26190-3-git-send-email-ian.campbell@citrix.com>
-Message-ID: <alpine.DEB.2.02.1210051239100.29232@kaball.uk.xensource.com>
-References: <1349363496.866.49.camel@zakaz.uk.xensource.com>
-       <1349363515-26190-3-git-send-email-ian.campbell@citrix.com>
-User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
-MIME-Version: 1.0
-Cc: Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
-       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 03/14] xen events: xen_callback_vector is
-       x86 specific
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Thu, 4 Oct 2012, Ian Campbell wrote:
-> Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
-> ---
-> Should instead move somewhere arch specific?
-
-This shouldn't be needed: it should be already protected by
-CONFIG_XEN_PVHVM (that is x86 specific).
-
-
->  drivers/xen/events.c |    4 ++++
->  1 files changed, 4 insertions(+), 0 deletions(-)
-> 
-> diff --git a/drivers/xen/events.c b/drivers/xen/events.c
-> index 6f55ef2..2508981 100644
-> --- a/drivers/xen/events.c
-> +++ b/drivers/xen/events.c
-> @@ -1775,6 +1775,7 @@ int xen_set_callback_via(uint64_t via)
->  EXPORT_SYMBOL_GPL(xen_set_callback_via);
->  
->  
-> +#ifdef CONFIG_X86
->  /* Vector callbacks are better than PCI interrupts to receive event
->   * channel notifications because we can receive vector callbacks on any
->   * vcpu and we don't need PCI support or APIC interactions. */
-> @@ -1798,6 +1799,9 @@ void xen_callback_vector(void)
->                      alloc_intr_gate(XEN_HVM_EVTCHN_CALLBACK, xen_hvm_callback_vector);
->      }
->  }
-> +#else
-> +void xen_callback_vector(void) {}
-> +#endif
->  
->  void xen_init_IRQ(void)
->  {
-> -- 
-> 1.7.2.5
-> 
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<alpine.DEB.2.02.1210051243480.29232@kaball.uk.xensource.com> b/test/corpus/<alpine.DEB.2.02.1210051243480.29232@kaball.uk.xensource.com>
deleted file mode 100644 (file)
index 521f46a..0000000
+++ /dev/null
@@ -1,112 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Oct 05 12:52:31 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 05 Oct 2012 12:52:31 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TK6SA-0007UB-3j
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 05 Oct 2012 12:52:31 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TK6Ov-00082Y-UH; Fri, 05 Oct 2012 11:49:05 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1TK6Ot-00082M-Q4
-       for xen-devel@lists.xen.org; Fri, 05 Oct 2012 11:49:03 +0000
-Received: from [85.158.143.99:44944] by server-1.bemta-4.messagelabs.com id
-       7D/96-05684-F29CE605; Fri, 05 Oct 2012 11:49:03 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-14.tower-216.messagelabs.com!1349437742!23382648!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTMxNTE=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 11879 invoked from network); 5 Oct 2012 11:49:02 -0000
-Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-14.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
-       5 Oct 2012 11:49:02 -0000
-X-IronPort-AV: E=Sophos;i="4.80,541,1344211200"; d="scan'208";a="14961422"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       05 Oct 2012 11:49:01 +0000
-Received: from kaball.uk.xensource.com (10.80.2.59) by
-       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
-       8.3.279.1; Fri, 5 Oct 2012 12:49:01 +0100
-Date: Fri, 5 Oct 2012 12:48:00 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-X-Sender: sstabellini@kaball.uk.xensource.com
-To: Ian Campbell <ian.campbell@citrix.com>
-In-Reply-To: <1349363515-26190-5-git-send-email-ian.campbell@citrix.com>
-Message-ID: <alpine.DEB.2.02.1210051243480.29232@kaball.uk.xensource.com>
-References: <1349363496.866.49.camel@zakaz.uk.xensource.com>
-       <1349363515-26190-5-git-send-email-ian.campbell@citrix.com>
-User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
-MIME-Version: 1.0
-Cc: Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
-       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 05/14] xen: balloon: use correct type for
-       frame_list
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Thu, 4 Oct 2012, Ian Campbell wrote:
-> This is now a xen_pfn_t.
-> 
-> Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
-> ---
->  drivers/xen/balloon.c |    2 +-
->  1 files changed, 1 insertions(+), 1 deletions(-)
-> 
-> diff --git a/drivers/xen/balloon.c b/drivers/xen/balloon.c
-> index 85ef7e7..4625560 100644
-> --- a/drivers/xen/balloon.c
-> +++ b/drivers/xen/balloon.c
-> @@ -87,7 +87,7 @@ struct balloon_stats balloon_stats;
->  EXPORT_SYMBOL_GPL(balloon_stats);
->  
->  /* We increase/decrease in batches which fit in a page */
-> -static unsigned long frame_list[PAGE_SIZE / sizeof(unsigned long)];
-> +static xen_pfn_t frame_list[PAGE_SIZE / sizeof(unsigned long)];
->  
->  #ifdef CONFIG_HIGHMEM
->  #define inc_totalhigh_pages() (totalhigh_pages++)
-While I think is a good change, frame_list[i] is used as an argument to
-set_phys_to_machine, that takes an unsigned long. Also unsigned long are
-assigned to members of the array via page_to_pfn.
-I think that we should take care of these cases, either introducing
-explicit casts or changing the argument types.
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<alpine.DEB.2.02.1210051253140.29232@kaball.uk.xensource.com> b/test/corpus/<alpine.DEB.2.02.1210051253140.29232@kaball.uk.xensource.com>
deleted file mode 100644 (file)
index d24b935..0000000
+++ /dev/null
@@ -1,161 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Oct 05 12:58:42 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 05 Oct 2012 12:58:42 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TK6YB-0007W1-GV
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 05 Oct 2012 12:58:42 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TK6U5-0008VW-MV; Fri, 05 Oct 2012 11:54:25 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1TK6U3-0008VA-EN
-       for xen-devel@lists.xen.org; Fri, 05 Oct 2012 11:54:23 +0000
-Received: from [85.158.139.83:20406] by server-6.bemta-5.messagelabs.com id
-       00/E5-14717-E6ACE605; Fri, 05 Oct 2012 11:54:22 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-9.tower-182.messagelabs.com!1349438062!32900264!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTMxNTE=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 27639 invoked from network); 5 Oct 2012 11:54:22 -0000
-Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-9.tower-182.messagelabs.com with RC4-SHA encrypted SMTP;
-       5 Oct 2012 11:54:22 -0000
-X-IronPort-AV: E=Sophos;i="4.80,541,1344211200"; d="scan'208";a="14961557"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       05 Oct 2012 11:54:22 +0000
-Received: from kaball.uk.xensource.com (10.80.2.59) by
-       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
-       8.3.279.1; Fri, 5 Oct 2012 12:54:21 +0100
-Date: Fri, 5 Oct 2012 12:53:20 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-X-Sender: sstabellini@kaball.uk.xensource.com
-To: Ian Campbell <ian.campbell@citrix.com>
-In-Reply-To: <1349363515-26190-6-git-send-email-ian.campbell@citrix.com>
-Message-ID: <alpine.DEB.2.02.1210051253140.29232@kaball.uk.xensource.com>
-References: <1349363496.866.49.camel@zakaz.uk.xensource.com>
-       <1349363515-26190-6-git-send-email-ian.campbell@citrix.com>
-User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
-MIME-Version: 1.0
-Cc: Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
-       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 06/14] arm: make p2m operations NOPs
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Thu, 4 Oct 2012, Ian Campbell wrote:
-> This makes common code less ifdef-y and is consistent with PVHVM on
-> x86.
-> 
-> Also note that phys_to_machine_mapping_valid should take a pfn
-> argument and make it do so.
-> 
-> Add __set_phys_to_machine, make set_phys_to_machine a simple wrapper
-> (on systems with non-nop implementations the outer one can allocate
-> new p2m pages).
-> 
-> Make __set_phys_to_machine check for identity mapping or invalid only.
-> 
-> Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
-
-
-Acked-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-
->  arch/arm/include/asm/xen/page.h |   13 ++++++++++---
->  drivers/xen/balloon.c           |    2 +-
->  2 files changed, 11 insertions(+), 4 deletions(-)
-> 
-> diff --git a/arch/arm/include/asm/xen/page.h b/arch/arm/include/asm/xen/page.h
-> index 1742023..c6b9096 100644
-> --- a/arch/arm/include/asm/xen/page.h
-> +++ b/arch/arm/include/asm/xen/page.h
-> @@ -10,7 +10,7 @@
->  #include <xen/interface/grant_table.h>
->  
->  #define pfn_to_mfn(pfn)                     (pfn)
-> -#define phys_to_machine_mapping_valid       (1)
-> +#define phys_to_machine_mapping_valid(pfn) (1)
->  #define mfn_to_pfn(mfn)                     (mfn)
->  #define mfn_to_virt(m)                      (__va(mfn_to_pfn(m) << PAGE_SHIFT))
->  
-> @@ -30,6 +30,8 @@ typedef struct xpaddr {
->  #define XMADDR(x)   ((xmaddr_t) { .maddr = (x) })
->  #define XPADDR(x)   ((xpaddr_t) { .paddr = (x) })
->  
-> +#define INVALID_P2M_ENTRY      (~0UL)
-> +
->  static inline xmaddr_t phys_to_machine(xpaddr_t phys)
->  {
->      unsigned offset = phys.paddr & ~PAGE_MASK;
-> @@ -74,9 +76,14 @@ static inline int m2p_remove_override(struct page *page, bool clear_pte)
->      return 0;
->  }
->  
-> +static inline bool __set_phys_to_machine(unsigned long pfn, unsigned long mfn)
-> +{
-> +    BUG_ON(pfn != mfn && mfn != INVALID_P2M_ENTRY);
-> +    return true;
-> +}
-> +
->  static inline bool set_phys_to_machine(unsigned long pfn, unsigned long mfn)
->  {
-> -    BUG();
-> -    return false;
-> +    return __set_phys_to_machine(pfn, mfn);
->  }
->  #endif /* _ASM_ARM_XEN_PAGE_H */
-> diff --git a/drivers/xen/balloon.c b/drivers/xen/balloon.c
-> index 4625560..7885a19 100644
-> --- a/drivers/xen/balloon.c
-> +++ b/drivers/xen/balloon.c
-> @@ -452,7 +452,7 @@ static enum bp_state decrease_reservation(unsigned long nr_pages, gfp_t gfp)
->      /* No more mappings: invalidate P2M and add to balloon. */
->      for (i = 0; i < nr_pages; i++) {
->              pfn = mfn_to_pfn(frame_list[i]);
-> -            /* PVH note: following will noop for auto translated */
-> +            /* The following is a noop for auto translated */
->              __set_phys_to_machine(pfn, INVALID_P2M_ENTRY);
->              balloon_append(pfn_to_page(pfn));
->      }
-> -- 
-> 1.7.2.5
-> 
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<alpine.DEB.2.02.1210051302160.29232@kaball.uk.xensource.com> b/test/corpus/<alpine.DEB.2.02.1210051302160.29232@kaball.uk.xensource.com>
deleted file mode 100644 (file)
index 3621ee7..0000000
+++ /dev/null
@@ -1,151 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Oct 05 13:10:18 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 05 Oct 2012 13:10:18 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TK6jM-0007ZB-G5
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 05 Oct 2012 13:10:18 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TK6g2-0000zy-Sj; Fri, 05 Oct 2012 12:06:46 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1TK6g1-0000zb-DC
-       for xen-devel@lists.xen.org; Fri, 05 Oct 2012 12:06:45 +0000
-Received: from [85.158.143.99:56560] by server-3.bemta-4.messagelabs.com id
-       29/81-10986-45DCE605; Fri, 05 Oct 2012 12:06:44 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-7.tower-216.messagelabs.com!1349438803!26878741!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTMxNTE=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 30571 invoked from network); 5 Oct 2012 12:06:44 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-7.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
-       5 Oct 2012 12:06:44 -0000
-X-IronPort-AV: E=Sophos;i="4.80,541,1344211200"; d="scan'208";a="14961886"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       05 Oct 2012 12:06:03 +0000
-Received: from kaball.uk.xensource.com (10.80.2.59) by
-       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
-       8.3.279.1; Fri, 5 Oct 2012 13:06:03 +0100
-Date: Fri, 5 Oct 2012 13:05:01 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-X-Sender: sstabellini@kaball.uk.xensource.com
-To: Ian Campbell <ian.campbell@citrix.com>
-In-Reply-To: <1349363515-26190-7-git-send-email-ian.campbell@citrix.com>
-Message-ID: <alpine.DEB.2.02.1210051302160.29232@kaball.uk.xensource.com>
-References: <1349363496.866.49.camel@zakaz.uk.xensource.com>
-       <1349363515-26190-7-git-send-email-ian.campbell@citrix.com>
-User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
-MIME-Version: 1.0
-Cc: Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
-       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 07/14] xen: balloon: do not update stage 1
- pagetable for autotranslated guests
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Thu, 4 Oct 2012, Ian Campbell wrote:
-> This is unnecessary (since the page will be removed from the p2m) and
-> can be tricky if the page is in the middle of a superpage, as it is on
-> ARM.
-> 
-
-I think that this patch is correct. I'll leave to Konrad whether we
-should carry the original incorrect PVH patch and this separate fix or
-just merge the two of them.
-
-
-> Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
-> ---
-> Also effects PVH but in a benign way I think.
->
->  drivers/xen/balloon.c |   23 +++--------------------
->  1 files changed, 3 insertions(+), 20 deletions(-)
-> 
-> diff --git a/drivers/xen/balloon.c b/drivers/xen/balloon.c
-> index 7885a19..1b56ae0 100644
-> --- a/drivers/xen/balloon.c
-> +++ b/drivers/xen/balloon.c
-> @@ -357,15 +357,7 @@ static enum bp_state increase_reservation(unsigned long nr_pages)
->              BUG_ON(!xen_feature(XENFEAT_auto_translated_physmap) &&
->                     phys_to_machine_mapping_valid(pfn));
->  
-> -            if (xen_pv_domain() && 
-> -                xen_feature(XENFEAT_auto_translated_physmap)) {
-> -                    /* PVH: we just need to update native page table */
-> -                    pte_t *ptep;
-> -                    unsigned int level;
-> -                    void *addr = __va(pfn << PAGE_SHIFT);
-> -                    ptep = lookup_address((unsigned long)addr, &level);
-> -                    set_pte(ptep, pfn_pte(pfn, PAGE_KERNEL));
-> -            } else
-> +            if (!xen_feature(XENFEAT_auto_translated_physmap))
->                      set_phys_to_machine(pfn, frame_list[i]);
->  
->              /* Link back into the page tables if not highmem. */
-> @@ -427,21 +419,12 @@ static enum bp_state decrease_reservation(unsigned long nr_pages, gfp_t gfp)
->  
->              scrub_page(page);
->  
-> -            if (xen_pv_domain() && !PageHighMem(page)) {
-> -                    if (xen_feature(XENFEAT_auto_translated_physmap)) {
-> -                            unsigned int level;
-> -                            pte_t *ptep;
-> -                            void *addr = __va(pfn << PAGE_SHIFT);
-> -                            ptep = lookup_address((unsigned long)addr, 
-> -                                                    &level);
-> -                            set_pte(ptep, __pte(0));
-> -
-> -                    } else {
-> +            if (xen_pv_domain() && !PageHighMem(page) &&
-> +                !xen_feature(XENFEAT_auto_translated_physmap)) {
->                              ret = HYPERVISOR_update_va_mapping(
->                                      (unsigned long)__va(pfn << PAGE_SHIFT),
->                                      __pte_ma(0), 0);
->                              BUG_ON(ret);
-> -                    }
->              }
->      }
->  
-> -- 
-> 1.7.2.5
-> 
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<alpine.DEB.2.02.1210051417110.29232@kaball.uk.xensource.com> b/test/corpus/<alpine.DEB.2.02.1210051417110.29232@kaball.uk.xensource.com>
deleted file mode 100644 (file)
index 3c40561..0000000
+++ /dev/null
@@ -1,195 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Oct 05 14:23:18 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 05 Oct 2012 14:23:18 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TK7s3-0007tJ-Lj
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 05 Oct 2012 14:23:18 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TK7oY-0004Ek-1N; Fri, 05 Oct 2012 13:19:38 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1TK7oV-0004EP-RY
-       for xen-devel@lists.xen.org; Fri, 05 Oct 2012 13:19:36 +0000
-Received: from [85.158.139.211:8270] by server-1.bemta-5.messagelabs.com id
-       0E/69-09825-76EDE605; Fri, 05 Oct 2012 13:19:35 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-10.tower-206.messagelabs.com!1349443174!21183891!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTMxNTE=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 14035 invoked from network); 5 Oct 2012 13:19:34 -0000
-Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-10.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
-       5 Oct 2012 13:19:34 -0000
-X-IronPort-AV: E=Sophos;i="4.80,541,1344211200"; d="scan'208";a="14964001"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       05 Oct 2012 13:19:34 +0000
-Received: from kaball.uk.xensource.com (10.80.2.59) by
-       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
-       8.3.279.1; Fri, 5 Oct 2012 14:19:33 +0100
-Date: Fri, 5 Oct 2012 14:18:31 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-X-Sender: sstabellini@kaball.uk.xensource.com
-To: Ian Campbell <ian.campbell@citrix.com>
-In-Reply-To: <1349363515-26190-9-git-send-email-ian.campbell@citrix.com>
-Message-ID: <alpine.DEB.2.02.1210051417110.29232@kaball.uk.xensource.com>
-References: <1349363496.866.49.camel@zakaz.uk.xensource.com>
-       <1349363515-26190-9-git-send-email-ian.campbell@citrix.com>
-User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
-MIME-Version: 1.0
-Cc: Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
-       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 09/14] xen: arm: enable balloon driver
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Thu, 4 Oct 2012, Ian Campbell wrote:
-> Drop the *_xenballloned_pages duplicates since these are now supplied
-> by the balloon code.
-> 
-> Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
-
-
-Acked-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-
->  arch/arm/xen/enlighten.c |   23 +++++------------------
->  drivers/xen/Makefile     |    4 ++--
->  drivers/xen/privcmd.c    |    9 ++++-----
->  3 files changed, 11 insertions(+), 25 deletions(-)
-> 
-> diff --git a/arch/arm/xen/enlighten.c b/arch/arm/xen/enlighten.c
-> index 59bcb96..ba5cc13 100644
-> --- a/arch/arm/xen/enlighten.c
-> +++ b/arch/arm/xen/enlighten.c
-> @@ -8,6 +8,7 @@
->  #include <xen/features.h>
->  #include <xen/platform_pci.h>
->  #include <xen/xenbus.h>
-> +#include <xen/page.h>
->  #include <asm/xen/hypervisor.h>
->  #include <asm/xen/hypercall.h>
->  #include <linux/interrupt.h>
-> @@ -29,6 +30,10 @@ struct shared_info *HYPERVISOR_shared_info = (void *)&xen_dummy_shared_info;
->  
->  DEFINE_PER_CPU(struct vcpu_info *, xen_vcpu);
->  
-> +/* These are unused until we support booting "pre-ballooned" */
-> +unsigned long xen_released_pages;
-> +struct xen_memory_region xen_extra_mem[XEN_EXTRA_MEM_MAX_REGIONS] __initdata;
-> +
->  /* TODO: to be removed */
->  __read_mostly int xen_have_vector_callback;
->  EXPORT_SYMBOL_GPL(xen_have_vector_callback);
-> @@ -148,21 +153,3 @@ static int __init xen_init_events(void)
->      return 0;
->  }
->  postcore_initcall(xen_init_events);
-> -
-> -/* XXX: only until balloon is properly working */
-> -int alloc_xenballooned_pages(int nr_pages, struct page **pages, bool highmem)
-> -{
-> -    *pages = alloc_pages(highmem ? GFP_HIGHUSER : GFP_KERNEL,
-> -                    get_order(nr_pages));
-> -    if (*pages == NULL)
-> -            return -ENOMEM;
-> -    return 0;
-> -}
-> -EXPORT_SYMBOL_GPL(alloc_xenballooned_pages);
-> -
-> -void free_xenballooned_pages(int nr_pages, struct page **pages)
-> -{
-> -    kfree(*pages);
-> -    *pages = NULL;
-> -}
-> -EXPORT_SYMBOL_GPL(free_xenballooned_pages);
-> diff --git a/drivers/xen/Makefile b/drivers/xen/Makefile
-> index 275abfc..9a7896f 100644
-> --- a/drivers/xen/Makefile
-> +++ b/drivers/xen/Makefile
-> @@ -1,8 +1,8 @@
->  ifneq ($(CONFIG_ARM),y)
-> -obj-y       += manage.o balloon.o
-> +obj-y       += manage.o
->  obj-$(CONFIG_HOTPLUG_CPU)           += cpu_hotplug.o
->  endif
-> -obj-y       += grant-table.o features.o events.o
-> +obj-y       += grant-table.o features.o events.o balloon.o
->  obj-y       += xenbus/
->  
->  nostackp := $(call cc-option, -fno-stack-protector)
-> diff --git a/drivers/xen/privcmd.c b/drivers/xen/privcmd.c
-> index 1010bf7..bf4d62a 100644
-> --- a/drivers/xen/privcmd.c
-> +++ b/drivers/xen/privcmd.c
-> @@ -200,8 +200,8 @@ static long privcmd_ioctl_mmap(void __user *udata)
->      if (!xen_initial_domain())
->              return -EPERM;
->  
-> -    /* PVH: TBD/FIXME. For now we only support privcmd_ioctl_mmap_batch */
-> -    if (xen_pv_domain() && xen_feature(XENFEAT_auto_translated_physmap))
-> +    /* We only support privcmd_ioctl_mmap_batch for auto translated. */
-> +    if (xen_feature(XENFEAT_auto_translated_physmap))
->              return -ENOSYS;
->  
->      if (copy_from_user(&mmapcmd, udata, sizeof(mmapcmd)))
-> @@ -413,7 +413,7 @@ static long privcmd_ioctl_mmap_batch(void __user *udata, int version)
->              up_write(&mm->mmap_sem);
->              goto out;
->      }
-> -    if (xen_pv_domain() && xen_feature(XENFEAT_auto_translated_physmap)) {
-> +    if (xen_feature(XENFEAT_auto_translated_physmap)) {
->              if ((ret = pvh_privcmd_resv_pfns(vma, m.num))) {
->                      up_write(&mm->mmap_sem);
->                      goto out;
-> @@ -492,8 +492,7 @@ static void privcmd_close(struct vm_area_struct *vma)
->      int count;
->      struct xen_pvh_pfn_info *pvhp = vma ? vma->vm_private_data : NULL;
->  
-> -    if (!xen_pv_domain()  || !pvhp ||
-> -        !xen_feature(XENFEAT_auto_translated_physmap))
-> +    if (!pvhp || !xen_feature(XENFEAT_auto_translated_physmap))
->              return;
->  
->      count = xen_unmap_domain_mfn_range(vma, pvhp);
-> -- 
-> 1.7.2.5
-> 
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<alpine.DEB.2.02.1210051419030.29232@kaball.uk.xensource.com> b/test/corpus/<alpine.DEB.2.02.1210051419030.29232@kaball.uk.xensource.com>
deleted file mode 100644 (file)
index 39beccf..0000000
+++ /dev/null
@@ -1,163 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Oct 05 14:24:09 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 05 Oct 2012 14:24:09 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TK7sp-0007tb-Ik
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 05 Oct 2012 14:24:09 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TK7pP-0004My-GQ; Fri, 05 Oct 2012 13:20:31 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1TK7pN-0004Ma-5R
-       for xen-devel@lists.xen.org; Fri, 05 Oct 2012 13:20:29 +0000
-Received: from [85.158.139.211:17830] by server-5.bemta-5.messagelabs.com id
-       69/76-21075-C9EDE605; Fri, 05 Oct 2012 13:20:28 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-10.tower-206.messagelabs.com!1349443227!21184016!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTMxNTE=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 17572 invoked from network); 5 Oct 2012 13:20:27 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-10.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
-       5 Oct 2012 13:20:27 -0000
-X-IronPort-AV: E=Sophos;i="4.80,541,1344211200"; d="scan'208";a="14964033"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       05 Oct 2012 13:20:27 +0000
-Received: from kaball.uk.xensource.com (10.80.2.59) by
-       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
-       8.3.279.1; Fri, 5 Oct 2012 14:20:27 +0100
-Date: Fri, 5 Oct 2012 14:19:25 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-X-Sender: sstabellini@kaball.uk.xensource.com
-To: Ian Campbell <ian.campbell@citrix.com>
-In-Reply-To: <1349363515-26190-8-git-send-email-ian.campbell@citrix.com>
-Message-ID: <alpine.DEB.2.02.1210051419030.29232@kaball.uk.xensource.com>
-References: <1349363496.866.49.camel@zakaz.uk.xensource.com>
-       <1349363515-26190-8-git-send-email-ian.campbell@citrix.com>
-User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
-MIME-Version: 1.0
-Cc: Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
-       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 08/14] xen: balloon: allow PVMMU interfaces
- to be compiled out
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Thu, 4 Oct 2012, Ian Campbell wrote:
-> The ARM platform has no concept of PVMMU and therefor no
-> HYPERVISOR_update_va_mapping et al. Allow this code to be compiled out
-> when not required.
-> 
-> Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
-
-I am unsure whether it is worth a new symbol and two ifdef's
-
-
->  arch/x86/xen/Kconfig  |    1 +
->  drivers/xen/Kconfig   |    3 +++
->  drivers/xen/balloon.c |    4 ++++
->  3 files changed, 8 insertions(+), 0 deletions(-)
-> 
-> diff --git a/arch/x86/xen/Kconfig b/arch/x86/xen/Kconfig
-> index fdce49c..c31ee77 100644
-> --- a/arch/x86/xen/Kconfig
-> +++ b/arch/x86/xen/Kconfig
-> @@ -6,6 +6,7 @@ config XEN
->      bool "Xen guest support"
->      select PARAVIRT
->      select PARAVIRT_CLOCK
-> +    select XEN_HAVE_PVMMU
->      depends on X86_64 || (X86_32 && X86_PAE && !X86_VISWS)
->      depends on X86_CMPXCHG && X86_TSC
->      help
-> diff --git a/drivers/xen/Kconfig b/drivers/xen/Kconfig
-> index d4dffcd..9c00652 100644
-> --- a/drivers/xen/Kconfig
-> +++ b/drivers/xen/Kconfig
-> @@ -204,4 +204,7 @@ config XEN_MCE_LOG
->        Allow kernel fetching MCE error from Xen platform and
->        converting it into Linux mcelog format for mcelog tools
->  
-> +config XEN_HAVE_PVMMU
-> +       bool
-> +
->  endmenu
-> diff --git a/drivers/xen/balloon.c b/drivers/xen/balloon.c
-> index 1b56ae0..cfe47dae 100644
-> --- a/drivers/xen/balloon.c
-> +++ b/drivers/xen/balloon.c
-> @@ -360,6 +360,7 @@ static enum bp_state increase_reservation(unsigned long nr_pages)
->              if (!xen_feature(XENFEAT_auto_translated_physmap))
->                      set_phys_to_machine(pfn, frame_list[i]);
->  
-> +#ifdef CONFIG_XEN_HAVE_PVMMU
->              /* Link back into the page tables if not highmem. */
->              if (xen_pv_domain() && !PageHighMem(page) && 
->                  !xen_feature(XENFEAT_auto_translated_physmap)) {
-> @@ -371,6 +372,7 @@ static enum bp_state increase_reservation(unsigned long nr_pages)
->                              0);
->                      BUG_ON(ret);
->              }
-> +#endif
->  
->              /* Relinquish the page back to the allocator. */
->              ClearPageReserved(page);
-> @@ -419,6 +421,7 @@ static enum bp_state decrease_reservation(unsigned long nr_pages, gfp_t gfp)
->  
->              scrub_page(page);
->  
-> +#ifdef CONFIG_XEN_HAVE_PVMMU
->              if (xen_pv_domain() && !PageHighMem(page) &&
->                  !xen_feature(XENFEAT_auto_translated_physmap)) {
->                              ret = HYPERVISOR_update_va_mapping(
-> @@ -426,6 +429,7 @@ static enum bp_state decrease_reservation(unsigned long nr_pages, gfp_t gfp)
->                                      __pte_ma(0), 0);
->                              BUG_ON(ret);
->              }
-> +#endif
->      }
->  
->      /* Ensure that ballooned highmem pages don't have kmaps. */
-> -- 
-> 1.7.2.5
-> 
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<alpine.DEB.2.02.1210051420260.29232@kaball.uk.xensource.com> b/test/corpus/<alpine.DEB.2.02.1210051420260.29232@kaball.uk.xensource.com>
deleted file mode 100644 (file)
index c4d2244..0000000
+++ /dev/null
@@ -1,112 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Oct 05 14:25:39 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 05 Oct 2012 14:25:39 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TK7uI-0007uS-3f
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 05 Oct 2012 14:25:39 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TK7r7-0004cS-L8; Fri, 05 Oct 2012 13:22:17 +0000
-Received: from mail27.messagelabs.com ([193.109.254.147])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1TK7r5-0004bC-AJ
-       for xen-devel@lists.xen.org; Fri, 05 Oct 2012 13:22:15 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-7.tower-27.messagelabs.com!1349443328!5905594!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTMxNTE=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 28574 invoked from network); 5 Oct 2012 13:22:09 -0000
-Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-7.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
-       5 Oct 2012 13:22:09 -0000
-X-IronPort-AV: E=Sophos;i="4.80,541,1344211200"; d="scan'208";a="14964077"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       05 Oct 2012 13:22:08 +0000
-Received: from kaball.uk.xensource.com (10.80.2.59) by
-       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
-       8.3.279.1; Fri, 5 Oct 2012 14:22:08 +0100
-Date: Fri, 5 Oct 2012 14:21:06 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-X-Sender: sstabellini@kaball.uk.xensource.com
-To: Ian Campbell <ian.campbell@citrix.com>
-In-Reply-To: <1349363515-26190-12-git-send-email-ian.campbell@citrix.com>
-Message-ID: <alpine.DEB.2.02.1210051420260.29232@kaball.uk.xensource.com>
-References: <1349363496.866.49.camel@zakaz.uk.xensource.com>
-       <1349363515-26190-12-git-send-email-ian.campbell@citrix.com>
-User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
-MIME-Version: 1.0
-Cc: Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
-       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 12/14] arm: xen: explain the EXPERIMENTAL
- dependency in the Kconfig help
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Thu, 4 Oct 2012, Ian Campbell wrote:
-> Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
-> ---
->  arch/arm/Kconfig |    8 ++++++++
->  1 files changed, 8 insertions(+), 0 deletions(-)
-> 
-> diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
-> index 3361466..b171c46 100644
-> --- a/arch/arm/Kconfig
-> +++ b/arch/arm/Kconfig
-> @@ -1907,6 +1907,14 @@ config XEN
->      help
->        Say Y if you want to run Linux in a Virtual Machine on Xen on ARM.
->  
-> +
-> +      This option is EXPERIMETNAL because the hypervisor
-                         ^ EXPERIMENTAL
-> +      interfaces which it uses are not yet considered stable
-> +      therefore backwards and forwards compatibility is not yet
-> +      guaranteed.
-> +
-> +      If unsure, say N.
-> +
->  endmenu
->  
->  menu "Boot options"
-> -- 
-> 1.7.2.5
-> 
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<alpine.DEB.2.02.1210051421530.29232@kaball.uk.xensource.com> b/test/corpus/<alpine.DEB.2.02.1210051421530.29232@kaball.uk.xensource.com>
deleted file mode 100644 (file)
index 6b86ae7..0000000
+++ /dev/null
@@ -1,113 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Oct 05 14:26:43 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 05 Oct 2012 14:26:43 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TK7vJ-0007vR-Dw
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 05 Oct 2012 14:26:43 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TK7s7-0004mZ-3M; Fri, 05 Oct 2012 13:23:19 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1TK7s5-0004mE-Cb
-       for xen-devel@lists.xen.org; Fri, 05 Oct 2012 13:23:17 +0000
-Received: from [85.158.143.35:21456] by server-2.bemta-4.messagelabs.com id
-       62/0E-06610-44FDE605; Fri, 05 Oct 2012 13:23:16 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-3.tower-21.messagelabs.com!1349443395!13490577!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTMxNTE=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 16405 invoked from network); 5 Oct 2012 13:23:16 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-3.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
-       5 Oct 2012 13:23:16 -0000
-X-IronPort-AV: E=Sophos;i="4.80,541,1344211200"; d="scan'208";a="14964125"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       05 Oct 2012 13:23:13 +0000
-Received: from kaball.uk.xensource.com (10.80.2.59) by
-       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
-       8.3.279.1; Fri, 5 Oct 2012 14:23:13 +0100
-Date: Fri, 5 Oct 2012 14:22:12 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-X-Sender: sstabellini@kaball.uk.xensource.com
-To: Ian Campbell <ian.campbell@citrix.com>
-In-Reply-To: <1349363515-26190-13-git-send-email-ian.campbell@citrix.com>
-Message-ID: <alpine.DEB.2.02.1210051421530.29232@kaball.uk.xensource.com>
-References: <1349363496.866.49.camel@zakaz.uk.xensource.com>
-       <1349363515-26190-13-git-send-email-ian.campbell@citrix.com>
-User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
-MIME-Version: 1.0
-Cc: Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
-       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 13/14] xen: use xen_pft_t in struct
- xen_remove_from_physmap
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Thu, 4 Oct 2012, Ian Campbell wrote:
-> 4a6c2b4 "PVH basic and hader file changes" and bd3f79b "xen: Introduce
-> xen_pfn_t for pfn and mfn types" passed like ships in the night.
-> 
-> Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
-
-
-Acked-by: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-
->  include/xen/interface/memory.h |    2 +-
->  1 files changed, 1 insertions(+), 1 deletions(-)
-> 
-> diff --git a/include/xen/interface/memory.h b/include/xen/interface/memory.h
-> index 6d74c47..d38bdc1 100644
-> --- a/include/xen/interface/memory.h
-> +++ b/include/xen/interface/memory.h
-> @@ -258,7 +258,7 @@ struct xen_remove_from_physmap {
->      domid_t domid;
->  
->      /* GPFN of the current mapping of the page. */
-> -    unsigned long     gpfn;
-> +    xen_pfn_t gpfn;
->  };
->  DEFINE_GUEST_HANDLE_STRUCT(xen_remove_from_physmap);
->  
-> -- 
-> 1.7.2.5
-> 
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<alpine.DEB.2.02.1210051430200.29232@kaball.uk.xensource.com> b/test/corpus/<alpine.DEB.2.02.1210051430200.29232@kaball.uk.xensource.com>
deleted file mode 100644 (file)
index 87db904..0000000
+++ /dev/null
@@ -1,165 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Oct 05 14:41:21 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 05 Oct 2012 14:41:21 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TK89T-0007zl-JR
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 05 Oct 2012 14:41:21 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TK85u-0005jq-AH; Fri, 05 Oct 2012 13:37:34 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1TK85s-0005jX-7c
-       for xen-devel@lists.xen.org; Fri, 05 Oct 2012 13:37:32 +0000
-Received: from [85.158.139.211:50857] by server-4.bemta-5.messagelabs.com id
-       98/5A-20767-B92EE605; Fri, 05 Oct 2012 13:37:31 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-7.tower-206.messagelabs.com!1349444250!20766468!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTMxNTE=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 29914 invoked from network); 5 Oct 2012 13:37:30 -0000
-Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-7.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
-       5 Oct 2012 13:37:30 -0000
-X-IronPort-AV: E=Sophos;i="4.80,541,1344211200"; d="scan'208";a="14964679"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       05 Oct 2012 13:37:29 +0000
-Received: from kaball.uk.xensource.com (10.80.2.59) by
-       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
-       8.3.279.1; Fri, 5 Oct 2012 14:37:30 +0100
-Date: Fri, 5 Oct 2012 14:36:28 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-X-Sender: sstabellini@kaball.uk.xensource.com
-To: Ian Campbell <ian.campbell@citrix.com>
-In-Reply-To: <1349363515-26190-14-git-send-email-ian.campbell@citrix.com>
-Message-ID: <alpine.DEB.2.02.1210051430200.29232@kaball.uk.xensource.com>
-References: <1349363496.866.49.camel@zakaz.uk.xensource.com>
-       <1349363515-26190-14-git-send-email-ian.campbell@citrix.com>
-User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
-MIME-Version: 1.0
-Cc: Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
-       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 14/14] arm: implement foreign mapping using
- XENMEM_add_to_physmap_range
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Thu, 4 Oct 2012, Ian Campbell wrote:
-> This interface is prefered for foreign mappings.
-
-So now we have XENMEM_add_to_physmap_range but we only have
-XENMEM_remove_from_physmap. Would it be worth to introduce a
-XENMEM_remove_from_physmap_range too?
-
-
-> Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
-> ---
->  arch/arm/xen/enlighten.c       |   14 +++++++++-----
->  include/xen/interface/memory.h |   18 ++++++++++++++++++
->  2 files changed, 27 insertions(+), 5 deletions(-)
-> 
-> diff --git a/arch/arm/xen/enlighten.c b/arch/arm/xen/enlighten.c
-> index 9956af5..a9946aa 100644
-> --- a/arch/arm/xen/enlighten.c
-> +++ b/arch/arm/xen/enlighten.c
-> @@ -51,15 +51,19 @@ static int map_foreign_page(unsigned long lpfn, unsigned long fgmfn,
->                          unsigned int domid)
->  {
->      int rc;
-> -    struct xen_add_to_physmap xatp = {
-> +    struct xen_add_to_physmap_range xatp = {
->              .domid = DOMID_SELF,
-> -            .u.foreign_domid = domid,
-> +            .foreign_domid = domid,
-> +            .size = 1,
->              .space = XENMAPSPACE_gmfn_foreign,
-> -            .idx = fgmfn,
-> -            .gpfn = lpfn,
->      };
-> +    unsigned long idx = fgmfn;
-> +    xen_pfn_t gpfn = lpfn;
->  
-> -    rc = HYPERVISOR_memory_op(XENMEM_add_to_physmap, &xatp);
-> +    set_xen_guest_handle(xatp.idxs, &idx);
-> +    set_xen_guest_handle(xatp.gpfns, &gpfn);
-> +
-> +    rc = HYPERVISOR_memory_op(XENMEM_add_to_physmap_range, &xatp);
->      if (rc) {
->              pr_warn("Failed to map pfn to mfn rc:%d pfn:%lx mfn:%lx\n",
->                      rc, lpfn, fgmfn);
-
-Wouldn't it make sense to call XENMEM_add_to_physmap_range only once for
-the whole range, rather than once per page?
-
-
-> diff --git a/include/xen/interface/memory.h b/include/xen/interface/memory.h
-> index d38bdc1..e5675bc 100644
-> --- a/include/xen/interface/memory.h
-> +++ b/include/xen/interface/memory.h
-> @@ -188,6 +188,24 @@ struct xen_add_to_physmap {
->  };
->  DEFINE_GUEST_HANDLE_STRUCT(xen_add_to_physmap);
->  
-> +#define XENMEM_add_to_physmap_range 23
-> +struct xen_add_to_physmap_range {
-> +    /* Which domain to change the mapping for. */
-> +    domid_t domid;
-> +    uint16_t space; /* => enum phys_map_space */
-> +
-> +    /* Number of pages to go through */
-> +    uint16_t size;
-> +    domid_t foreign_domid; /* IFF gmfn_foreign */
-> +
-> +    /* Indexes into space being mapped. */
-> +    GUEST_HANDLE(ulong) idxs;
-> +
-> +    /* GPFN in domid where the source mapping page should appear. */
-> +    GUEST_HANDLE(xen_pfn_t) gpfns;
-> +};
-> +DEFINE_GUEST_HANDLE_STRUCT(xen_add_to_physmap_range);
-> +
->  /*
->   * Translates a list of domain-specific GPFNs into MFNs. Returns a -ve error
->   * code on failure. This call only works for auto-translated guests.
-> -- 
-> 1.7.2.5
-> 
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<alpine.DEB.2.02.1210051432010.29232@kaball.uk.xensource.com> b/test/corpus/<alpine.DEB.2.02.1210051432010.29232@kaball.uk.xensource.com>
deleted file mode 100644 (file)
index b78b4f7..0000000
+++ /dev/null
@@ -1,222 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Oct 05 14:41:05 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 05 Oct 2012 14:41:05 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TK89G-0007zT-NE
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 05 Oct 2012 14:41:05 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TK85b-0005hR-Pf; Fri, 05 Oct 2012 13:37:15 +0000
-Received: from mail27.messagelabs.com ([193.109.254.147])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1TK85Z-0005hG-TP
-       for xen-devel@lists.xen.org; Fri, 05 Oct 2012 13:37:14 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-13.tower-27.messagelabs.com!1349444227!8887286!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTMxNTE=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 21141 invoked from network); 5 Oct 2012 13:37:07 -0000
-Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-13.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
-       5 Oct 2012 13:37:07 -0000
-X-IronPort-AV: E=Sophos;i="4.80,541,1344211200"; d="scan'208";a="14964673"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       05 Oct 2012 13:37:06 +0000
-Received: from kaball.uk.xensource.com (10.80.2.59) by
-       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
-       8.3.279.1; Fri, 5 Oct 2012 14:37:06 +0100
-Date: Fri, 5 Oct 2012 14:36:05 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-X-Sender: sstabellini@kaball.uk.xensource.com
-To: Ian Campbell <ian.campbell@citrix.com>
-In-Reply-To: <1349363515-26190-11-git-send-email-ian.campbell@citrix.com>
-Message-ID: <alpine.DEB.2.02.1210051432010.29232@kaball.uk.xensource.com>
-References: <1349363496.866.49.camel@zakaz.uk.xensource.com>
-       <1349363515-26190-11-git-send-email-ian.campbell@citrix.com>
-User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
-MIME-Version: 1.0
-Cc: Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
-       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 11/14] arm: implement remap interfaces
- needed for privcmd mappings.
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Thu, 4 Oct 2012, Ian Campbell wrote:
-> Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
-> ---
->  arch/arm/xen/enlighten.c |   94 +++++++++++++++++++++++++++++++++++++++++++++-
->  1 files changed, 92 insertions(+), 2 deletions(-)
-> 
-> diff --git a/arch/arm/xen/enlighten.c b/arch/arm/xen/enlighten.c
-> index ba5cc13..9956af5 100644
-> --- a/arch/arm/xen/enlighten.c
-> +++ b/arch/arm/xen/enlighten.c
-> @@ -9,6 +9,7 @@
->  #include <xen/platform_pci.h>
->  #include <xen/xenbus.h>
->  #include <xen/page.h>
-> +#include <xen/xen-ops.h>
->  #include <asm/xen/hypervisor.h>
->  #include <asm/xen/hypercall.h>
->  #include <linux/interrupt.h>
-> @@ -18,6 +19,8 @@
->  #include <linux/of_irq.h>
->  #include <linux/of_address.h>
->  
-> +#include <linux/mm.h>
-> +
->  struct start_info _xen_start_info;
->  struct start_info *xen_start_info = &_xen_start_info;
->  EXPORT_SYMBOL_GPL(xen_start_info);
-> @@ -43,15 +46,102 @@ EXPORT_SYMBOL_GPL(xen_platform_pci_unplug);
->  
->  static __read_mostly int xen_events_irq = -1;
->  
-> +/* map fgmfn of domid to lpfn in the current domain */
-> +static int map_foreign_page(unsigned long lpfn, unsigned long fgmfn,
-> +                        unsigned int domid)
-> +{
-> +    int rc;
-> +    struct xen_add_to_physmap xatp = {
-> +            .domid = DOMID_SELF,
-> +            .u.foreign_domid = domid,
-> +            .space = XENMAPSPACE_gmfn_foreign,
-> +            .idx = fgmfn,
-> +            .gpfn = lpfn,
-> +    };
-> +
-> +    rc = HYPERVISOR_memory_op(XENMEM_add_to_physmap, &xatp);
-> +    if (rc) {
-> +            pr_warn("Failed to map pfn to mfn rc:%d pfn:%lx mfn:%lx\n",
-> +                    rc, lpfn, fgmfn);
-> +            return 1;
-> +    }
-> +    return 0;
-> +}
-> +
-> +struct remap_data {
-> +    unsigned long fgmfn; /* foreign domain's gmfn */
-> +    pgprot_t prot;
-> +    domid_t  domid;
-> +    struct vm_area_struct *vma;
-> +    struct xen_remap_mfn_info *info;
-> +};
-> +
-> +static int remap_pte_fn(pte_t *ptep, pgtable_t token, unsigned long addr,
-> +                    void *data)
-> +{
-> +    struct remap_data *info = data;
-> +    struct xen_remap_mfn_info *savp = info->info;
-> +    struct page *page = savp->pi_paga[savp->pi_next_todo++];
-> +    unsigned long pfn = page_to_pfn(page);
-> +    pte_t pte = pfn_pte(pfn, info->prot);
-> +
-> +    if (map_foreign_page(pfn, info->fgmfn, info->domid))
-> +            return -EFAULT;
-> +    set_pte_at(info->vma->vm_mm, addr, ptep, pte);
-> +
-> +    return 0;
-> +}
-> +
->  int xen_remap_domain_mfn_range(struct vm_area_struct *vma,
->                             unsigned long addr,
->                             unsigned long mfn, int nr,
-> -                           pgprot_t prot, unsigned domid)
-> +                           pgprot_t prot, unsigned domid,
-> +                           struct xen_remap_mfn_info *info)
->  {
-> -    return -ENOSYS;
-> +    int err;
-> +    struct remap_data data;
-> +
-> +    /* TBD: Batching, current sole caller only does page at a time */
-> +    if (nr > 1)
-> +            return -EINVAL;
-
-It looks like that this implementation of xen_remap_domain_mfn_range is
-capable of handling nr > 1, so why this return -EINVAL?
-
-
-> +    data.fgmfn = mfn;
-> +    data.prot = prot;
-> +    data.domid = domid;
-> +    data.vma = vma;
-> +    data.info = info;
-> +    err = apply_to_page_range(vma->vm_mm, addr, nr << PAGE_SHIFT,
-> +                              remap_pte_fn, &data);
-> +    return err;
->  }
->  EXPORT_SYMBOL_GPL(xen_remap_domain_mfn_range);
->  
-> +/* Returns: Number of pages unmapped */
-> +int xen_unmap_domain_mfn_range(struct vm_area_struct *vma,
-> +                           struct xen_remap_mfn_info *info)
-> +{
-> +    int count = 0;
-> +
-> +    while (info->pi_next_todo--) {
-> +            struct xen_remove_from_physmap xrp;
-> +            unsigned long rc, pfn;
-> +
-> +            pfn = page_to_pfn(info->pi_paga[info->pi_next_todo]);
-> +
-> +            xrp.domid = DOMID_SELF;
-> +            xrp.gpfn = pfn;
-> +            rc = HYPERVISOR_memory_op(XENMEM_remove_from_physmap, &xrp);
-> +            if (rc) {
-> +                    pr_warn("Failed to unmap pfn:%lx rc:%ld\n",
-> +                            pfn, rc);
-> +                    return count;
-> +            }
-> +            count++;
-> +    }
-> +    return count;
-> +}
-> +EXPORT_SYMBOL_GPL(xen_unmap_domain_mfn_range);
-> +
->  /*
->   * see Documentation/devicetree/bindings/arm/xen.txt for the
->   * documentation of the Xen Device Tree format.
-> -- 
-> 1.7.2.5
-> 
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<alpine.DEB.2.02.1210051437110.29232@kaball.uk.xensource.com> b/test/corpus/<alpine.DEB.2.02.1210051437110.29232@kaball.uk.xensource.com>
deleted file mode 100644 (file)
index 58b4fa6..0000000
+++ /dev/null
@@ -1,279 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Oct 05 14:42:59 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 05 Oct 2012 14:42:59 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TK8B6-000803-3a
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 05 Oct 2012 14:42:59 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TK870-0005sb-P9; Fri, 05 Oct 2012 13:38:42 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1TK86y-0005sT-Ij
-       for xen-devel@lists.xen.org; Fri, 05 Oct 2012 13:38:40 +0000
-Received: from [85.158.143.35:22811] by server-2.bemta-4.messagelabs.com id
-       DE/7C-06610-FD2EE605; Fri, 05 Oct 2012 13:38:39 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-12.tower-21.messagelabs.com!1349444317!13185481!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTMxNTE=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 1392 invoked from network); 5 Oct 2012 13:38:37 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-12.tower-21.messagelabs.com with RC4-SHA encrypted SMTP;
-       5 Oct 2012 13:38:37 -0000
-X-IronPort-AV: E=Sophos;i="4.80,541,1344211200"; d="scan'208";a="14964722"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       05 Oct 2012 13:38:36 +0000
-Received: from kaball.uk.xensource.com (10.80.2.59) by
-       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
-       8.3.279.1; Fri, 5 Oct 2012 14:38:37 +0100
-Date: Fri, 5 Oct 2012 14:37:35 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-X-Sender: sstabellini@kaball.uk.xensource.com
-To: Ian Campbell <ian.campbell@citrix.com>
-In-Reply-To: <1349363515-26190-10-git-send-email-ian.campbell@citrix.com>
-Message-ID: <alpine.DEB.2.02.1210051437110.29232@kaball.uk.xensource.com>
-References: <1349363496.866.49.camel@zakaz.uk.xensource.com>
-       <1349363515-26190-10-git-send-email-ian.campbell@citrix.com>
-User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
-MIME-Version: 1.0
-Cc: Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
-       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 10/14] privcmd: refer to autotranslate not
- PVH in arch interfaces / comments.
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Thu, 4 Oct 2012, Ian Campbell wrote:
-> PVH is X86 specific while this functionality is also used on ARM.
-
-I really think that this should be merged with the orignal PVH patch
-
-
-> Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
-> ---
->  arch/x86/xen/mmu.c    |   10 +++++-----
->  drivers/xen/privcmd.c |   46 ++++++++++++++++++++++------------------------
->  include/xen/xen-ops.h |    8 ++++----
->  3 files changed, 31 insertions(+), 33 deletions(-)
-> 
-> diff --git a/arch/x86/xen/mmu.c b/arch/x86/xen/mmu.c
-> index 26097cb..3e781f9 100644
-> --- a/arch/x86/xen/mmu.c
-> +++ b/arch/x86/xen/mmu.c
-> @@ -2506,7 +2506,7 @@ struct pvh_remap_data {
->      unsigned long fgmfn;            /* foreign domain's gmfn */
->      pgprot_t prot;
->      domid_t  domid;
-> -    struct xen_pvh_pfn_info *pvhinfop;
-> +    struct xen_remap_mfn_info *pvhinfop;
->  };
->  
->  static int pvh_map_pte_fn(pte_t *ptep, pgtable_t token, unsigned long addr, 
-> @@ -2514,7 +2514,7 @@ static int pvh_map_pte_fn(pte_t *ptep, pgtable_t token, unsigned long addr,
->  {
->      int rc;
->      struct pvh_remap_data *remapp = data;
-> -    struct xen_pvh_pfn_info *pvhp = remapp->pvhinfop;
-> +    struct xen_remap_mfn_info *pvhp = remapp->pvhinfop;
->      unsigned long pfn = page_to_pfn(pvhp->pi_paga[pvhp->pi_next_todo++]);
->      pte_t pteval = pte_mkspecial(pfn_pte(pfn, remapp->prot));
->  
-> @@ -2531,7 +2531,7 @@ static int pvh_map_pte_fn(pte_t *ptep, pgtable_t token, unsigned long addr,
->  static int pvh_remap_gmfn_range(struct vm_area_struct *vma,
->                              unsigned long addr, unsigned long mfn, int nr,
->                              pgprot_t prot, unsigned domid,
-> -                            struct xen_pvh_pfn_info *pvhp)
-> +                            struct xen_remap_mfn_info *pvhp)
->  {
->      int err;
->      struct pvh_remap_data pvhdata;
-> @@ -2574,7 +2574,7 @@ int xen_remap_domain_mfn_range(struct vm_area_struct *vma,
->                             unsigned long addr,
->                             unsigned long mfn, int nr,
->                             pgprot_t prot, unsigned domid,
-> -                           struct xen_pvh_pfn_info *pvhp)
-> +                           struct xen_remap_mfn_info *pvhp)
->  
->  {
->      struct remap_data rmd;
-> @@ -2629,7 +2629,7 @@ EXPORT_SYMBOL_GPL(xen_remap_domain_mfn_range);
->  
->  /* Returns: Number of pages unmapped */
->  int xen_unmap_domain_mfn_range(struct vm_area_struct *vma,
-> -                           struct xen_pvh_pfn_info *pvhp)
-> +                           struct xen_remap_mfn_info *pvhp)
->  {
->      int count = 0;
->  
-> diff --git a/drivers/xen/privcmd.c b/drivers/xen/privcmd.c
-> index bf4d62a..ebf3c8d 100644
-> --- a/drivers/xen/privcmd.c
-> +++ b/drivers/xen/privcmd.c
-> @@ -265,18 +265,16 @@ struct mmap_batch_state {
->      xen_pfn_t __user *user_mfn;
->  };
->  
-> -/* PVH dom0 fyi: if domU being created is PV, then mfn is mfn(addr on bus). If
-> - * it's PVH then mfn is pfn (input to HAP). */
->  static int mmap_batch_fn(void *data, void *state)
->  {
->      xen_pfn_t *mfnp = data;
->      struct mmap_batch_state *st = state;
->      struct vm_area_struct *vma = st->vma;
-> -    struct xen_pvh_pfn_info *pvhp = vma ? vma->vm_private_data : NULL;
-> +    struct xen_remap_mfn_info *info = vma ? vma->vm_private_data : NULL;
->      int ret;
->  
->      ret = xen_remap_domain_mfn_range(st->vma, st->va & PAGE_MASK, *mfnp, 1,
-> -                                     st->vma->vm_page_prot, st->domain, pvhp);
-> +                                     st->vma->vm_page_prot, st->domain, info);
->  
->      /* Store error code for second pass. */
->      *(st->err++) = ret;
-> @@ -315,33 +313,33 @@ static int mmap_return_errors_v1(void *data, void *state)
->  /* Allocate pfns that are then mapped with gmfns from foreign domid. Update
->   * the vma with the page info to use later.
->   * Returns: 0 if success, otherwise -errno
-> - */ 
-> -static int pvh_privcmd_resv_pfns(struct vm_area_struct *vma, int numpgs)
-> + */
-> +static int alloc_empty_pages(struct vm_area_struct *vma, int numpgs)
->  {
->      int rc;
-> -    struct xen_pvh_pfn_info *pvhp;
-> +    struct xen_remap_mfn_info *info;
->  
-> -    pvhp = kzalloc(sizeof(struct xen_pvh_pfn_info), GFP_KERNEL);
-> -    if (pvhp == NULL)
-> +    info = kzalloc(sizeof(struct xen_remap_mfn_info), GFP_KERNEL);
-> +    if (info == NULL)
->              return -ENOMEM;
->  
-> -    pvhp->pi_paga = kcalloc(numpgs, sizeof(pvhp->pi_paga[0]), GFP_KERNEL);
-> -    if (pvhp->pi_paga == NULL) {
-> -            kfree(pvhp);
-> +    info->pi_paga = kcalloc(numpgs, sizeof(info->pi_paga[0]), GFP_KERNEL);
-> +    if (info->pi_paga == NULL) {
-> +            kfree(info);
->              return -ENOMEM;
->      }
->  
-> -    rc = alloc_xenballooned_pages(numpgs, pvhp->pi_paga, 0);
-> +    rc = alloc_xenballooned_pages(numpgs, info->pi_paga, 0);
->      if (rc != 0) {
->              pr_warn("%s Could not alloc %d pfns rc:%d\n", __FUNCTION__, 
->                      numpgs, rc);
-> -            kfree(pvhp->pi_paga);
-> -            kfree(pvhp);
-> +            kfree(info->pi_paga);
-> +            kfree(info);
->              return -ENOMEM;
->      }
-> -    pvhp->pi_num_pgs = numpgs;
-> +    info->pi_num_pgs = numpgs;
->      BUG_ON(vma->vm_private_data != (void *)1);
-> -    vma->vm_private_data = pvhp;
-> +    vma->vm_private_data = info;
->  
->      return 0;
->  }
-> @@ -414,7 +412,7 @@ static long privcmd_ioctl_mmap_batch(void __user *udata, int version)
->              goto out;
->      }
->      if (xen_feature(XENFEAT_auto_translated_physmap)) {
-> -            if ((ret = pvh_privcmd_resv_pfns(vma, m.num))) {
-> +            if ((ret = alloc_empty_pages(vma, m.num))) {
->                      up_write(&mm->mmap_sem);
->                      goto out;
->              }
-> @@ -490,16 +488,16 @@ static long privcmd_ioctl(struct file *file,
->  static void privcmd_close(struct vm_area_struct *vma)
->  {
->      int count;
-> -    struct xen_pvh_pfn_info *pvhp = vma ? vma->vm_private_data : NULL;
-> +    struct xen_remap_mfn_info *info = vma ? vma->vm_private_data : NULL;
->  
-> -    if (!pvhp || !xen_feature(XENFEAT_auto_translated_physmap))
-> +    if (!info || !xen_feature(XENFEAT_auto_translated_physmap))
->              return;
->  
-> -    count = xen_unmap_domain_mfn_range(vma, pvhp);
-> +    count = xen_unmap_domain_mfn_range(vma, info);
->      while (count--)
-> -            free_xenballooned_pages(1, &pvhp->pi_paga[count]);
-> -    kfree(pvhp->pi_paga);
-> -    kfree(pvhp);
-> +            free_xenballooned_pages(1, &info->pi_paga[count]);
-> +    kfree(info->pi_paga);
-> +    kfree(info);
->  }
->  
->  static int privcmd_fault(struct vm_area_struct *vma, struct vm_fault *vmf)
-> diff --git a/include/xen/xen-ops.h b/include/xen/xen-ops.h
-> index 6c5ad83..2f3cb06 100644
-> --- a/include/xen/xen-ops.h
-> +++ b/include/xen/xen-ops.h
-> @@ -24,16 +24,16 @@ int xen_create_contiguous_region(unsigned long vstart, unsigned int order,
->  void xen_destroy_contiguous_region(unsigned long vstart, unsigned int order);
->  
->  struct vm_area_struct;
-> -struct xen_pvh_pfn_info;
-> +struct xen_remap_mfn_info;
->  int xen_remap_domain_mfn_range(struct vm_area_struct *vma,
->                             unsigned long addr,
->                             unsigned long mfn, int nr,
->                             pgprot_t prot, unsigned domid,
-> -                           struct xen_pvh_pfn_info *pvhp);
-> +                           struct xen_remap_mfn_info *pvhp);
->  int xen_unmap_domain_mfn_range(struct vm_area_struct *vma,
-> -                           struct xen_pvh_pfn_info *pvhp);
-> +                           struct xen_remap_mfn_info *pvhp);
->  
-> -struct xen_pvh_pfn_info {
-> +struct xen_remap_mfn_info {
->      struct page **pi_paga;          /* pfn info page array */
->      int           pi_num_pgs;
->      int           pi_next_todo;
-> -- 
-> 1.7.2.5
-> 
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<alpine.DEB.2.02.1210051438340.29232@kaball.uk.xensource.com> b/test/corpus/<alpine.DEB.2.02.1210051438340.29232@kaball.uk.xensource.com>
deleted file mode 100644 (file)
index ecdd992..0000000
+++ /dev/null
@@ -1,152 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Oct 05 15:08:07 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 05 Oct 2012 15:08:07 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TK8ZQ-00086K-Mm
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 05 Oct 2012 15:08:07 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TK8V7-0007Z6-Vq; Fri, 05 Oct 2012 14:03:37 +0000
-Received: from mail27.messagelabs.com ([193.109.254.147])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1TK8V7-0007Z1-06
-       for xen-devel@lists.xen.org; Fri, 05 Oct 2012 14:03:37 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-13.tower-27.messagelabs.com!1349445810!8890875!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTMxNTE=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 9222 invoked from network); 5 Oct 2012 14:03:30 -0000
-Received: from smtp.ctxuk.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-13.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
-       5 Oct 2012 14:03:30 -0000
-X-IronPort-AV: E=Sophos;i="4.80,541,1344211200"; d="scan'208";a="14965491"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       05 Oct 2012 14:03:29 +0000
-Received: from kaball.uk.xensource.com (10.80.2.59) by
-       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
-       8.3.279.1; Fri, 5 Oct 2012 15:03:29 +0100
-Date: Fri, 5 Oct 2012 15:02:27 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-X-Sender: sstabellini@kaball.uk.xensource.com
-To: Ian Campbell <Ian.Campbell@citrix.com>
-In-Reply-To: <1349440338.20946.83.camel@zakaz.uk.xensource.com>
-Message-ID: <alpine.DEB.2.02.1210051438340.29232@kaball.uk.xensource.com>
-References: <1349363496.866.49.camel@zakaz.uk.xensource.com>
-       <1349363515-26190-5-git-send-email-ian.campbell@citrix.com>
-       <alpine.DEB.2.02.1210051243480.29232@kaball.uk.xensource.com>
-       <1349440338.20946.83.camel@zakaz.uk.xensource.com>
-User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
-MIME-Version: 1.0
-Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 05/14] xen: balloon: use correct type for
-       frame_list
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Fri, 5 Oct 2012, Ian Campbell wrote:
-> On Fri, 2012-10-05 at 12:48 +0100, Stefano Stabellini wrote:
-> > On Thu, 4 Oct 2012, Ian Campbell wrote:
-> > > This is now a xen_pfn_t.
-> > > 
-> > > Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
-> > > ---
-> > >  drivers/xen/balloon.c |    2 +-
-> > >  1 files changed, 1 insertions(+), 1 deletions(-)
-> > > 
-> > > diff --git a/drivers/xen/balloon.c b/drivers/xen/balloon.c
-> > > index 85ef7e7..4625560 100644
-> > > --- a/drivers/xen/balloon.c
-> > > +++ b/drivers/xen/balloon.c
-> > > @@ -87,7 +87,7 @@ struct balloon_stats balloon_stats;
-> > >  EXPORT_SYMBOL_GPL(balloon_stats);
-> > >  
-> > >  /* We increase/decrease in batches which fit in a page */
-> > > -static unsigned long frame_list[PAGE_SIZE / sizeof(unsigned long)];
-> > > +static xen_pfn_t frame_list[PAGE_SIZE / sizeof(unsigned long)];
-> > >  
-> > >  #ifdef CONFIG_HIGHMEM
-> > >  #define inc_totalhigh_pages() (totalhigh_pages++)
-> >  
-> > While I think is a good change, frame_list[i] is used as an argument to
-> > set_phys_to_machine, that takes an unsigned long. Also unsigned long are
-> > assigned to members of the array via page_to_pfn.
-> > I think that we should take care of these cases, either introducing
-> > explicit casts or changing the argument types.
-> 
-> frame_list is used at the Xen interface, and so the pfn type has to be
-> sized for the largest pfn the hypervisor will use (aka xen_pfn_t). Those
-> unsigned longs are really "linux_pfn_t", that is they are the size of
-> the largest pfn the guest is itself prepared to deal with.
-> 
-> So long as sizeof(unsigned long) <= sizeof(xen_pfn_t) (which it is) then
-> we are ok.
-
-I think that we are playing with fire here.
-
-Let's imaging a future where physical addresses are actually 64 bit.
-Let's imaging that Xen is supporting them perfectly fine and returns to
-this balloon driver a pfn > ULONG_MAX (already possible on ARM).
-
-That is a perfectly valid value for Xen to give us and we should be able
-to handle it. If we are not we should return an error.
-With this change we would trimmer the pfn returned by Xen to 32 bit so we
-would actually have an incorrect behaviour instead.
-
-If we assume sizeof(unsigned long) <= sizeof(xen_pfn_t), we only need a
-macro like this:
-
-#define LINUX_PFN_MAX ULONG_MAX
-#define linux_pfn_t unsigned long
-#define xen_pfn_to_linux_pfn(pfn)    ({BUG_ON(pfn > LINUX_PFN_MAX); (linux_pfn_t)pfn;})
-
-that is called in the right places.
-
-
-> If and when Linux wants to use pfn's which are not unsigned longs then
-> the uses of unsigned long will need to be audited (globally, not just
-> here) to become whatever type Linux then defines to contain a pfn. In
-> the absence of that type being defined in the core Linux code I think it
-> is correct for us to keep using unsigned long in those contexts.
-
-I think is OK using unsigned long for linux_pfn, the problem is the
-conversion between what Xen gives us and linux_pfns.
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<alpine.DEB.2.02.1210051503160.29232@kaball.uk.xensource.com> b/test/corpus/<alpine.DEB.2.02.1210051503160.29232@kaball.uk.xensource.com>
deleted file mode 100644 (file)
index 691e308..0000000
+++ /dev/null
@@ -1,105 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Oct 05 15:10:00 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 05 Oct 2012 15:10:00 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TK8bC-00086f-Qg
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 05 Oct 2012 15:10:00 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TK8X9-0007kz-Ay; Fri, 05 Oct 2012 14:05:43 +0000
-Received: from mail6.bemta4.messagelabs.com ([85.158.143.247])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1TK8X7-0007kf-D7
-       for xen-devel@lists.xen.org; Fri, 05 Oct 2012 14:05:41 +0000
-Received: from [85.158.143.99:23421] by server-3.bemta-4.messagelabs.com id
-       74/EE-10986-339EE605; Fri, 05 Oct 2012 14:05:39 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-13.tower-216.messagelabs.com!1349445938!26760639!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTMxNTE=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 16869 invoked from network); 5 Oct 2012 14:05:38 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-13.tower-216.messagelabs.com with RC4-SHA encrypted SMTP;
-       5 Oct 2012 14:05:38 -0000
-X-IronPort-AV: E=Sophos;i="4.80,541,1344211200"; d="scan'208";a="14965561"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       05 Oct 2012 14:05:38 +0000
-Received: from kaball.uk.xensource.com (10.80.2.59) by
-       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
-       8.3.279.1; Fri, 5 Oct 2012 15:05:38 +0100
-Date: Fri, 5 Oct 2012 15:04:36 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-X-Sender: sstabellini@kaball.uk.xensource.com
-To: Ian Campbell <Ian.Campbell@citrix.com>
-In-Reply-To: <1349443982.20946.100.camel@zakaz.uk.xensource.com>
-Message-ID: <alpine.DEB.2.02.1210051503160.29232@kaball.uk.xensource.com>
-References: <1349363496.866.49.camel@zakaz.uk.xensource.com>
-       <1349363515-26190-8-git-send-email-ian.campbell@citrix.com>
-       <alpine.DEB.2.02.1210051419030.29232@kaball.uk.xensource.com>
-       <1349443982.20946.100.camel@zakaz.uk.xensource.com>
-User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
-MIME-Version: 1.0
-Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 08/14] xen: balloon: allow PVMMU interfaces
- to be compiled out
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Fri, 5 Oct 2012, Ian Campbell wrote:
-> On Fri, 2012-10-05 at 14:19 +0100, Stefano Stabellini wrote:
-> > On Thu, 4 Oct 2012, Ian Campbell wrote:
-> > > The ARM platform has no concept of PVMMU and therefor no
-> > > HYPERVISOR_update_va_mapping et al. Allow this code to be compiled out
-> > > when not required.
-> > > 
-> > > Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
-> > 
-> > I am unsure whether it is worth a new symbol and two ifdef's
-> 
-> ARM doesn't compile without it, since HYPERVISOR_update_va_mapping
-> doesn't exist. Do you have a preferable alternative?
-> 
-> I'm not sure how much more of this sort of thing there will be as we
-> enable more features on the ARM port.
-
-#define HYPERVISOR_update_va_mapping(va, new_val, flags) (0)
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<alpine.DEB.2.02.1210051505380.29232@kaball.uk.xensource.com> b/test/corpus/<alpine.DEB.2.02.1210051505380.29232@kaball.uk.xensource.com>
deleted file mode 100644 (file)
index e104a89..0000000
+++ /dev/null
@@ -1,110 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Oct 05 15:10:56 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 05 Oct 2012 15:10:56 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TK8c6-000879-LM
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 05 Oct 2012 15:10:56 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TK8YM-0007w0-QE; Fri, 05 Oct 2012 14:06:58 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1TK8YL-0007vj-3G
-       for xen-devel@lists.xen.org; Fri, 05 Oct 2012 14:06:57 +0000
-Received: from [85.158.138.51:2170] by server-12.bemta-3.messagelabs.com id
-       4F/F1-23730-089EE605; Fri, 05 Oct 2012 14:06:56 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-8.tower-174.messagelabs.com!1349446015!33201395!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTMxNTE=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 7398 invoked from network); 5 Oct 2012 14:06:55 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-8.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
-       5 Oct 2012 14:06:55 -0000
-X-IronPort-AV: E=Sophos;i="4.80,541,1344211200"; d="scan'208";a="14965597"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       05 Oct 2012 14:06:55 +0000
-Received: from kaball.uk.xensource.com (10.80.2.59) by
-       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
-       8.3.279.1; Fri, 5 Oct 2012 15:06:55 +0100
-Date: Fri, 5 Oct 2012 15:05:53 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-X-Sender: sstabellini@kaball.uk.xensource.com
-To: Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-In-Reply-To: <alpine.DEB.2.02.1210051503160.29232@kaball.uk.xensource.com>
-Message-ID: <alpine.DEB.2.02.1210051505380.29232@kaball.uk.xensource.com>
-References: <1349363496.866.49.camel@zakaz.uk.xensource.com>
-       <1349363515-26190-8-git-send-email-ian.campbell@citrix.com>
-       <alpine.DEB.2.02.1210051419030.29232@kaball.uk.xensource.com>
-       <1349443982.20946.100.camel@zakaz.uk.xensource.com>
-       <alpine.DEB.2.02.1210051503160.29232@kaball.uk.xensource.com>
-User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
-       Ian Campbell <Ian.Campbell@citrix.com>,
-       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 08/14] xen: balloon: allow PVMMU interfaces
- to be compiled out
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Fri, 5 Oct 2012, Stefano Stabellini wrote:
-> On Fri, 5 Oct 2012, Ian Campbell wrote:
-> > On Fri, 2012-10-05 at 14:19 +0100, Stefano Stabellini wrote:
-> > > On Thu, 4 Oct 2012, Ian Campbell wrote:
-> > > > The ARM platform has no concept of PVMMU and therefor no
-> > > > HYPERVISOR_update_va_mapping et al. Allow this code to be compiled out
-> > > > when not required.
-> > > > 
-> > > > Signed-off-by: Ian Campbell <ian.campbell@citrix.com>
-> > > 
-> > > I am unsure whether it is worth a new symbol and two ifdef's
-> > 
-> > ARM doesn't compile without it, since HYPERVISOR_update_va_mapping
-> > doesn't exist. Do you have a preferable alternative?
-> > 
-> > I'm not sure how much more of this sort of thing there will be as we
-> > enable more features on the ARM port.
-> 
-> #define HYPERVISOR_update_va_mapping(va, new_val, flags) (0)
-> 
-
-actually a proper static line with a BUG would be better
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<alpine.DEB.2.02.1210051553430.29539@kaball.uk.xensource.com> b/test/corpus/<alpine.DEB.2.02.1210051553430.29539@kaball.uk.xensource.com>
deleted file mode 100644 (file)
index d0405a5..0000000
+++ /dev/null
@@ -1,97 +0,0 @@
-From xen-devel-bounces@lists.xen.org Fri Oct 05 15:58:50 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Fri, 05 Oct 2012 15:58:50 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TK9MS-0008TQ-Re
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Fri, 05 Oct 2012 15:58:50 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TK9JA-0005I7-3l; Fri, 05 Oct 2012 14:55:20 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1TK9J8-0005Hv-Cs
-       for xen-devel@lists.xen.org; Fri, 05 Oct 2012 14:55:18 +0000
-Received: from [85.158.137.99:32619] by server-3.bemta-3.messagelabs.com id
-       1A/94-25962-5D4FE605; Fri, 05 Oct 2012 14:55:17 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-7.tower-217.messagelabs.com!1349448912!15637449!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTMxNTE=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 30292 invoked from network); 5 Oct 2012 14:55:16 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-7.tower-217.messagelabs.com with RC4-SHA encrypted SMTP;
-       5 Oct 2012 14:55:16 -0000
-X-IronPort-AV: E=Sophos;i="4.80,541,1344211200"; d="scan'208";a="14966996"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       05 Oct 2012 14:55:11 +0000
-Received: from kaball.uk.xensource.com (10.80.2.59) by
-       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
-       8.3.279.1; Fri, 5 Oct 2012 15:55:11 +0100
-Date: Fri, 5 Oct 2012 15:54:09 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-X-Sender: sstabellini@kaball.uk.xensource.com
-To: Ian Campbell <Ian.Campbell@citrix.com>
-In-Reply-To: <1349447625.20946.130.camel@zakaz.uk.xensource.com>
-Message-ID: <alpine.DEB.2.02.1210051553430.29539@kaball.uk.xensource.com>
-References: <1349363496.866.49.camel@zakaz.uk.xensource.com>
-       <1349363515-26190-5-git-send-email-ian.campbell@citrix.com>
-       <alpine.DEB.2.02.1210051243480.29232@kaball.uk.xensource.com>
-       <1349440338.20946.83.camel@zakaz.uk.xensource.com> 
-       <alpine.DEB.2.02.1210051438340.29232@kaball.uk.xensource.com>
-       <1349447625.20946.130.camel@zakaz.uk.xensource.com>
-User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
-MIME-Version: 1.0
-Cc: Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
-       "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 05/14] xen: balloon: use correct type for
-       frame_list
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Fri, 5 Oct 2012, Ian Campbell wrote:
-> In theory there might be a problem for a PV guest, but in the only case
-> which matters:
->         arch/x86/include/asm/xen/interface.h:typedef unsigned long xen_pfn_t;
-> and furthermore 32 bit PV guests are limited to 160G of MFN space (which
-> is less than 2^32) for other reasons already.
-
-Well, we should at least write that in a comment
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<alpine.DEB.2.02.1210091330560.29539@kaball.uk.xensource.com> b/test/corpus/<alpine.DEB.2.02.1210091330560.29539@kaball.uk.xensource.com>
deleted file mode 100644 (file)
index 23590a8..0000000
+++ /dev/null
@@ -1,196 +0,0 @@
-From xen-devel-bounces@lists.xen.org Tue Oct 09 13:37:25 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Tue, 09 Oct 2012 13:37:25 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TLZ3m-0003vm-Un
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 09 Oct 2012 13:37:24 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TLYz1-0003Hw-Rf; Tue, 09 Oct 2012 12:32:23 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1TLYz0-0003Hr-EB
-       for xen-devel@lists.xen.org; Tue, 09 Oct 2012 12:32:22 +0000
-Received: from [85.158.138.51:24817] by server-1.bemta-3.messagelabs.com id
-       28/C6-16425-55914705; Tue, 09 Oct 2012 12:32:21 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-4.tower-174.messagelabs.com!1349785940!33168744!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTM0MjQ=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 13522 invoked from network); 9 Oct 2012 12:32:20 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-4.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
-       9 Oct 2012 12:32:20 -0000
-X-IronPort-AV: E=Sophos;i="4.80,560,1344211200"; d="scan'208";a="15036613"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       09 Oct 2012 12:32:19 +0000
-Received: from kaball.uk.xensource.com (10.80.2.59) by
-       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
-       8.3.279.1; Tue, 9 Oct 2012 13:32:20 +0100
-Date: Tue, 9 Oct 2012 13:31:14 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-X-Sender: sstabellini@kaball.uk.xensource.com
-To: Ian Campbell <Ian.Campbell@citrix.com>
-In-Reply-To: <1349453467.20946.142.camel@zakaz.uk.xensource.com>
-Message-ID: <alpine.DEB.2.02.1210091330560.29539@kaball.uk.xensource.com>
-References: <1349363496.866.49.camel@zakaz.uk.xensource.com>
-       <1349363515-26190-5-git-send-email-ian.campbell@citrix.com>
-       <alpine.DEB.2.02.1210051243480.29232@kaball.uk.xensource.com>
-       <1349440338.20946.83.camel@zakaz.uk.xensource.com> 
-       <alpine.DEB.2.02.1210051438340.29232@kaball.uk.xensource.com>
-       <1349447625.20946.130.camel@zakaz.uk.xensource.com>
-       <1349453467.20946.142.camel@zakaz.uk.xensource.com>
-User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xen.org" <xen-devel@lists.xen.org>,
-       Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH 05/14] xen: balloon: use correct type for
- frame_list
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Fri, 5 Oct 2012, Ian Campbell wrote:
-> On Fri, 2012-10-05 at 15:33 +0100, Ian Campbell wrote:
-> > The issue you describe could only happen for a 32 bit HAP guest if the
-> > guests was given > 16GB (2^(32+PAGE_SHIFT) bytes) of RAM and it was
-> > explicitly trying to balloon memory over that limit, but in order for
-> > that to even be possible it would already need to have made its concept
-> > of a pfn larger than 32 bits.
-> 
-> The one place this might matter is in the privcmd
-> IOCTL_PRIVCMD_MMAPBATCH interface for the *foreign* pfn (since a small
-> dom0 needs to be able to build a big domU). Luckily that interface
-> already uses xen_pfn_t, we just need to be a bit careful in the
-> xen_remap_domain_mfn_range case, which Konrad tried to tell me already
-> and he was right...
-> 
-> On ARM that meant the following (built but not executed) patch, I
-> suspect the PVH variant needs similar treatment.
-
-I think you are right
-
-
-> 
-> diff --git a/arch/arm/include/asm/xen/interface.h b/arch/arm/include/asm/xen/interface.h
-> index ae05e56..ad87917 100644
-> --- a/arch/arm/include/asm/xen/interface.h
-> +++ b/arch/arm/include/asm/xen/interface.h
-> @@ -43,6 +43,7 @@ DEFINE_GUEST_HANDLE(void);
->  DEFINE_GUEST_HANDLE(uint64_t);
->  DEFINE_GUEST_HANDLE(uint32_t);
->  DEFINE_GUEST_HANDLE(xen_pfn_t);
-> +DEFINE_GUEST_HANDLE(xen_ulong_t);
->  
->  /* Maximum number of virtual CPUs in multi-processor guests. */
->  #define MAX_VIRT_CPUS 1
-> diff --git a/arch/arm/xen/enlighten.c b/arch/arm/xen/enlighten.c
-> index a9946aa..1d64c02 100644
-> --- a/arch/arm/xen/enlighten.c
-> +++ b/arch/arm/xen/enlighten.c
-> @@ -57,7 +57,7 @@ static int map_foreign_page(unsigned long lpfn, unsigned long fgmfn,
->              .size = 1,
->              .space = XENMAPSPACE_gmfn_foreign,
->      };
-> -    unsigned long idx = fgmfn;
-> +    xen_ulong_t idx = fgmfn;
->      xen_pfn_t gpfn = lpfn;
->  
->      set_xen_guest_handle(xatp.idxs, &idx);
-> @@ -73,7 +73,7 @@ static int map_foreign_page(unsigned long lpfn, unsigned long fgmfn,
->  }
->  
->  struct remap_data {
-> -    unsigned long fgmfn; /* foreign domain's gmfn */
-> +    xen_pfn_t fgmfn; /* foreign domain's gmfn */
->      pgprot_t prot;
->      domid_t  domid;
->      struct vm_area_struct *vma;
-> @@ -98,7 +98,7 @@ static int remap_pte_fn(pte_t *ptep, pgtable_t token, unsigned long addr,
->  
->  int xen_remap_domain_mfn_range(struct vm_area_struct *vma,
->                             unsigned long addr,
-> -                           unsigned long mfn, int nr,
-> +                           xen_pfn_t mfn, int nr,
->                             pgprot_t prot, unsigned domid,
->                             struct xen_remap_mfn_info *info)
->  {
-> diff --git a/arch/x86/include/asm/xen/interface.h b/arch/x86/include/asm/xen/interface.h
-> index 250c254..d67f3c6 100644
-> --- a/arch/x86/include/asm/xen/interface.h
-> +++ b/arch/x86/include/asm/xen/interface.h
-> @@ -63,6 +63,7 @@ DEFINE_GUEST_HANDLE(void);
->  DEFINE_GUEST_HANDLE(uint64_t);
->  DEFINE_GUEST_HANDLE(uint32_t);
->  DEFINE_GUEST_HANDLE(xen_pfn_t);
-> +DEFINE_GUEST_HANDLE(xen_ulong_t);
->  #endif
->  
->  #ifndef HYPERVISOR_VIRT_START
-> diff --git a/include/xen/interface/memory.h b/include/xen/interface/memory.h
-> index e5675bc..24e5731 100644
-> --- a/include/xen/interface/memory.h
-> +++ b/include/xen/interface/memory.h
-> @@ -199,7 +199,7 @@ struct xen_add_to_physmap_range {
->      domid_t foreign_domid; /* IFF gmfn_foreign */
->  
->      /* Indexes into space being mapped. */
-> -    GUEST_HANDLE(ulong) idxs;
-> +    GUEST_HANDLE(xen_ulong_t) idxs;
->  
->      /* GPFN in domid where the source mapping page should appear. */
->      GUEST_HANDLE(xen_pfn_t) gpfns;
-> diff --git a/include/xen/xen-ops.h b/include/xen/xen-ops.h
-> index 2f3cb06..59309f3 100644
-> --- a/include/xen/xen-ops.h
-> +++ b/include/xen/xen-ops.h
-> @@ -27,7 +27,7 @@ struct vm_area_struct;
->  struct xen_remap_mfn_info;
->  int xen_remap_domain_mfn_range(struct vm_area_struct *vma,
->                             unsigned long addr,
-> -                           unsigned long mfn, int nr,
-> +                           xen_pfn_t mfn, int nr,
->                             pgprot_t prot, unsigned domid,
->                             struct xen_remap_mfn_info *pvhp);
->  int xen_unmap_domain_mfn_range(struct vm_area_struct *vma,
-> 
-> 
-> 
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<alpine.DEB.2.02.1210091506030.29539@kaball.uk.xensource.com> b/test/corpus/<alpine.DEB.2.02.1210091506030.29539@kaball.uk.xensource.com>
deleted file mode 100644 (file)
index fe9f2d8..0000000
+++ /dev/null
@@ -1,143 +0,0 @@
-From xen-devel-bounces@lists.xen.org Tue Oct 09 15:15:30 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Tue, 09 Oct 2012 15:15:30 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TLaai-0004Pi-Tj
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Tue, 09 Oct 2012 15:15:30 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TLaWp-000798-Ul; Tue, 09 Oct 2012 14:11:23 +0000
-Received: from mail27.messagelabs.com ([193.109.254.147])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1TLaWo-000771-9j
-       for xen-devel@lists.xensource.com; Tue, 09 Oct 2012 14:11:22 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-5.tower-27.messagelabs.com!1349791876!7927139!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTM0MjQ=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 28847 invoked from network); 9 Oct 2012 14:11:16 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-5.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
-       9 Oct 2012 14:11:16 -0000
-X-IronPort-AV: E=Sophos;i="4.80,560,1344211200"; d="scan'208";a="15040117"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       09 Oct 2012 14:11:16 +0000
-Received: from kaball.uk.xensource.com (10.80.2.59) by
-       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
-       8.3.279.1; Tue, 9 Oct 2012 15:11:15 +0100
-Date: Tue, 9 Oct 2012 15:10:10 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-X-Sender: sstabellini@kaball.uk.xensource.com
-To: Ian Campbell <Ian.Campbell@citrix.com>
-In-Reply-To: <1349428386.20946.15.camel@zakaz.uk.xensource.com>
-Message-ID: <alpine.DEB.2.02.1210091506030.29539@kaball.uk.xensource.com>
-References: <alpine.DEB.2.02.1208221159560.15568@kaball.uk.xensource.com>
-       <1345633688-31684-4-git-send-email-stefano.stabellini@eu.citrix.com>
-       <1349428386.20946.15.camel@zakaz.uk.xensource.com>
-User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
-MIME-Version: 1.0
-Content-Type: multipart/mixed;
-       boundary="1342847746-615481255-1349791585=:29539"
-Content-ID: <alpine.DEB.2.02.1210091509060.29539@kaball.uk.xensource.com>
-Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>,
-       "Tim \(Xen.org\)" <tim@xen.org>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-6.3 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH v4 4/6] xen: introduce XEN_GUEST_HANDLE_PARAM
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
---1342847746-615481255-1349791585=:29539
-Content-Type: text/plain; charset="UTF-8"
-Content-Transfer-Encoding: 8BIT
-Content-ID: <alpine.DEB.2.02.1210091509061.29539@kaball.uk.xensource.com>
-
-On Fri, 5 Oct 2012, Ian Campbell wrote:
-> On Wed, 2012-08-22 at 12:08 +0100, Stefano Stabellini wrote:
-> > diff --git a/xen/include/asm-arm/guest_access.h b/xen/include/asm-arm/guest_access.h
-> > index 0fceae6..5686217 100644
-> > --- a/xen/include/asm-arm/guest_access.h
-> > +++ b/xen/include/asm-arm/guest_access.h
-> > @@ -27,16 +27,40 @@ unsigned long raw_clear_guest(void *to, unsigned len);
-> >  #define guest_handle_add_offset(hnd, nr) ((hnd).p += (nr))
-> >  #define guest_handle_subtract_offset(hnd, nr) ((hnd).p -= (nr))
-> >  
-> > -/* Cast a guest handle to the specified type of handle. */
-> > +/* Cast a guest handle (either XEN_GUEST_HANDLE or XEN_GUEST_HANDLE_PARAM)
-> > + * to the specified type of XEN_GUEST_HANDLE_PARAM. */
-> >  #define guest_handle_cast(hnd, type) ({         \
-> >      type *_x = (hnd).p;                         \
-> > -    (XEN_GUEST_HANDLE(type)) { _x };            \
-> > +    (XEN_GUEST_HANDLE_PARAM(type)) { _x };            \
-> [...]
-> >  #define guest_handle_from_ptr(ptr, type)        \
-> > -    ((XEN_GUEST_HANDLE(type)) { (type *)ptr })
-> > +    ((XEN_GUEST_HANDLE_PARAM(type)) { (type *)ptr })
-> >  #define const_guest_handle_from_ptr(ptr, type)  \
-> > -    ((XEN_GUEST_HANDLE(const_##type)) { (const type *)ptr })
-> > +    ((XEN_GUEST_HANDLE_PARAM(const_##type)) { (const type *)ptr })
-> 
-> These little bits cause build breakage if you only apply to this point
-> in the series (i.e. breaks bisectability):
->         grant_table.c: In function â€˜do_grant_table_op’:
->         grant_table.c:2449:13: error: invalid initializer
->         grant_table.c:2456:17: error: incompatible types when assigning to type â€˜__guest_handle_64_void’ from type â€˜__guest_handle_void’
->         [lots more of the same]
-> 
-> I think this is because you have changed guest_handle_cast but you
-> haven't yet changed the type of the parameter.
-> 
-> I haven't tried x86 but I can't see why the same problem wouldn't exist
-> there also.
-> 
-> The obvious answer is to move these hunks into the next patch, but I
-> think because of the split into patches 5/6 and 6/6 this will still
-> cause problems. I'll try it though but I suspect we might end up having
-> to squash 5+6 together?
-
-You are right, I realize now that the series is not bisectable :(
-It makes sense to squash 4, 5 and 6 together, the only reason why I kept
-them separate is for readability.
---1342847746-615481255-1349791585=:29539
-Content-Type: text/plain; charset="us-ascii"
-MIME-Version: 1.0
-Content-Transfer-Encoding: 7bit
-Content-Disposition: inline
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
---1342847746-615481255-1349791585=:29539--
-
-
diff --git a/test/corpus/<alpine.DEB.2.02.1210171749000.2689@kaball.uk.xensource.com> b/test/corpus/<alpine.DEB.2.02.1210171749000.2689@kaball.uk.xensource.com>
deleted file mode 100644 (file)
index 17b8b09..0000000
+++ /dev/null
@@ -1,148 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Oct 17 17:55:20 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 17 Oct 2012 17:55:20 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TOWtn-00049a-7F
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 17 Oct 2012 17:55:20 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1TOWqR-0001Lj-Nq; Wed, 17 Oct 2012 16:51:47 +0000
-Received: from mail6.bemta5.messagelabs.com ([195.245.231.135])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <Stefano.Stabellini@eu.citrix.com>)
-       id 1TOWqP-0001LY-J0
-       for xen-devel@lists.xensource.com; Wed, 17 Oct 2012 16:51:45 +0000
-Received: from [85.158.139.211:26421] by server-13.bemta-5.messagelabs.com id
-       E3/C5-30674-022EE705; Wed, 17 Oct 2012 16:51:44 +0000
-X-Env-Sender: Stefano.Stabellini@eu.citrix.com
-X-Msg-Ref: server-15.tower-206.messagelabs.com!1350492704!22758673!1
-X-Originating-IP: [62.200.22.115]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjIuMjAwLjIyLjExNSA9PiAxMTQ2NDQ=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 28133 invoked from network); 17 Oct 2012 16:51:44 -0000
-Received: from smtp.eu.citrix.com (HELO SMTP.EU.CITRIX.COM) (62.200.22.115)
-       by server-15.tower-206.messagelabs.com with RC4-SHA encrypted SMTP;
-       17 Oct 2012 16:51:44 -0000
-X-IronPort-AV: E=Sophos;i="4.80,602,1344211200"; d="scan'208";a="15232669"
-Received: from lonpmailmx01.citrite.net ([10.30.203.162])
-       by LONPIPO01.EU.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       17 Oct 2012 16:51:44 +0000
-Received: from kaball.uk.xensource.com (10.80.2.59) by
-       LONPMAILMX01.citrite.net (10.30.203.162) with Microsoft SMTP Server id
-       8.3.279.1; Wed, 17 Oct 2012 17:51:44 +0100
-Date: Wed, 17 Oct 2012 17:51:21 +0100
-From: Stefano Stabellini <stefano.stabellini@eu.citrix.com>
-X-X-Sender: sstabellini@kaball.uk.xensource.com
-To: Ian Campbell <Ian.Campbell@citrix.com>
-In-Reply-To: <1350383800.18058.114.camel@zakaz.uk.xensource.com>
-Message-ID: <alpine.DEB.2.02.1210171749000.2689@kaball.uk.xensource.com>
-References: <alpine.DEB.2.02.1208161523420.4850@kaball.uk.xensource.com>
-       <1350383800.18058.114.camel@zakaz.uk.xensource.com>
-User-Agent: Alpine 2.02 (DEB 1266 2009-07-14)
-MIME-Version: 1.0
-Cc: "xen-devel@lists.xensource.com" <xen-devel@lists.xensource.com>, "Keir
-       \(Xen.org\)" <keir@xen.org>, "Tim Deegan \(3P\)" <Tim.Deegan@citrix.com>,
-       Stefano Stabellini <Stefano.Stabellini@eu.citrix.com>
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-4.6 required=5.0 tests=BAYES_00,RCVD_IN_DNSWL_MED,
-       RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham version=3.3.1
-Subject: Re: [Xen-devel] [PATCH v3 0/6] ARM hypercall ABI: 64 bit ready
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-On Tue, 16 Oct 2012, Ian Campbell wrote:
-> On Thu, 2012-08-16 at 15:48 +0100, Stefano Stabellini wrote:
-> > In this version of the patch series I have introduced conversion macros
-> > to convert a XEN_GUEST_HANDLE_PARAM into a XEN_GUEST_HANDLE a vice
-> > versa. Most of the problematic cases come from xen/arch/x86 code, in
-> > order to spot them I wrote a simple debug patch that change the
-> > definition of XEN_GUEST_HANDLE_PARAM to be different from
-> > XEN_GUEST_HANDLE on x86 too. I am attaching the debug patch to this
-> > email. 
-> 
-> This (quoted below) seems like a useful patch from the PoV of catching
-> these sorts of things early on x86 before they break ARM.
-> 
-> It doesn't seem like it should have any impact on the generated code,
-> should we perhaps apply it?
-
-Nope, it shouldn't have any impact.
-Having it in the tree would be a clear improvement!
-
-
-> I needed the addition of the following to actually make it work though.
-> 
-> diff --git a/xen/include/asm-x86/guest_access.h b/xen/include/asm-x86/guest_acce
-> index ca700c9..33b4afd 100644
-> --- a/xen/include/asm-x86/guest_access.h
-> +++ b/xen/include/asm-x86/guest_access.h
-> @@ -54,22 +54,24 @@
->  
->  /* Cast a XEN_GUEST_HANDLE to XEN_GUEST_HANDLE_PARAM */
->  #define guest_handle_to_param(hnd, type) ({                  \
-> +    typeof((hnd).p) _x = (hnd).p;                            \
-> +    XEN_GUEST_HANDLE_PARAM(type) _y = { _x };                \
->      /* type checking: make sure that the pointers inside     \
->       * XEN_GUEST_HANDLE and XEN_GUEST_HANDLE_PARAM are of    \
->       * the same type, then return hnd */                     \
-> -    (void)((typeof(&(hnd).p)) 0 ==                           \
-> -        (typeof(&((XEN_GUEST_HANDLE_PARAM(type)) {}).p)) 0); \
-> -    (hnd);                                                   \
-> +    (void)(&_x == &_y.p);                                    \
-> +    _y;                                                      \
->  })
->  
->  /* Cast a XEN_GUEST_HANDLE_PARAM to XEN_GUEST_HANDLE */
-> -#define guest_handle_from_param(hnd, type) ({                \
-> -    /* type checking: make sure that the pointers inside     \
-> -     * XEN_GUEST_HANDLE and XEN_GUEST_HANDLE_PARAM are of    \
-> -     * the same type, then return hnd */                     \
-> -    (void)((typeof(&(hnd).p)) 0 ==                           \
-> -        (typeof(&((XEN_GUEST_HANDLE_PARAM(type)) {}).p)) 0); \
-> -    (hnd);                                                   \
-> +#define guest_handle_from_param(hnd, type) ({               \
-> +    typeof((hnd).p) _x = (hnd).p;                           \
-> +    XEN_GUEST_HANDLE(type) _y = { _x };                     \
-> +    /* type checking: make sure that the pointers inside    \
-> +     * XEN_GUEST_HANDLE and XEN_GUEST_HANDLE_PARAM are of   \
-> +     * the same type, then return hnd */                    \
-> +    (void)(&_x == &_y.p);                                   \
-> +    _y;                                                     \
->  })
->  
->  #define guest_handle_for_field(hnd, type, fld)          \
-
-I would argue that these changes are the right thing to do anyway.
-The original code is unreadable.
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<c378b04ee29071c1d6d68bd3ef48fedadb493b10.1345552068.git.julien.grall@citrix.com> b/test/corpus/<c378b04ee29071c1d6d68bd3ef48fedadb493b10.1345552068.git.julien.grall@citrix.com>
deleted file mode 100644 (file)
index 323b27e..0000000
+++ /dev/null
@@ -1,320 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Aug 22 19:58:44 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 22 Aug 2012 19:58:44 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T4G8S-0002kv-EN
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 22 Aug 2012 19:58:44 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T4G5F-0006hb-3D; Wed, 22 Aug 2012 18:55:17 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <julien.grall@citrix.com>) id 1T4G5C-0006fp-G3
-       for xen-devel@lists.xen.org; Wed, 22 Aug 2012 18:55:14 +0000
-Received: from [85.158.138.51:37610] by server-7.bemta-3.messagelabs.com id
-       5C/49-01906-11B25305; Wed, 22 Aug 2012 18:55:13 +0000
-X-Env-Sender: julien.grall@citrix.com
-X-Msg-Ref: server-5.tower-174.messagelabs.com!1345661707!27566656!3
-X-Originating-IP: [66.165.176.63]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyNzMzNjM=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 9724 invoked from network); 22 Aug 2012 18:55:12 -0000
-Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
-       by server-5.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
-       22 Aug 2012 18:55:12 -0000
-X-IronPort-AV: E=Sophos;i="4.80,809,1344225600"; d="scan'208";a="205943118"
-Received: from ftlpmailmx01.citrite.net ([10.13.107.65])
-       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       22 Aug 2012 14:55:12 -0400
-Received: from meteora.cam.xci-test.com (10.80.248.22) by smtprelay.citrix.com
-       (10.13.107.65) with Microsoft SMTP Server id 8.3.213.0;
-       Wed, 22 Aug 2012 14:55:11 -0400
-From: Julien Grall <julien.grall@citrix.com>
-To: qemu-devel@nongnu.org
-Date: Wed, 22 Aug 2012 13:31:51 +0100
-Message-ID: <c378b04ee29071c1d6d68bd3ef48fedadb493b10.1345552068.git.julien.grall@citrix.com>
-X-Mailer: git-send-email 1.7.2.5
-In-Reply-To: <cover.1345552068.git.julien.grall@citrix.com>
-References: <cover.1345552068.git.julien.grall@citrix.com>
-MIME-Version: 1.0
-Cc: Julien Grall <julien.grall@citrix.com>, christian.limpach@gmail.com,
-       Stefano.Stabellini@eu.citrix.com, xen-devel@lists.xen.org
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DATE_IN_PAST_06_12,
-       RCVD_IN_DNSWL_MED,RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham
-       version=3.3.1
-Subject: [Xen-devel] [XEN][RFC PATCH V2 05/17] hvm: Modify hvm_op
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-This patch removes useless hvm_param due to structure modification
-and bind new hypercalls to handle ioreq servers and PCI.
-
-Signed-off-by: Julien Grall <julien.grall@citrix.com>
----
- xen/arch/x86/hvm/hvm.c          |  150 +++++++++++++++++++++------------------
- xen/include/public/hvm/params.h |    5 --
- 2 files changed, 81 insertions(+), 74 deletions(-)
-
-diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
-index 292d57b..a2cd9b3 100644
---- a/xen/arch/x86/hvm/hvm.c
-+++ b/xen/arch/x86/hvm/hvm.c
-@@ -571,8 +571,7 @@ int hvm_domain_initialise(struct domain *d)
-     register_portio_handler(d, 0xe9, 1, hvm_print_line);
--    if ( hvm_init_pci_emul(d) )
--        goto fail2;
-+    hvm_init_pci_emul(d);
-     rc = hvm_funcs.domain_initialise(d);
-     if ( rc != 0 )
-@@ -650,6 +649,7 @@ void hvm_domain_relinquish_resources(struct domain *d)
- {
-     hvm_destroy_ioreq_servers(d);
-     hvm_destroy_pci_emul(d);
-+    hvm_destroy_ioreq_page(d, &d->arch.hvm_domain.ioreq);
-     msixtbl_pt_cleanup(d);
-@@ -3742,21 +3742,6 @@ static int hvmop_flush_tlb_all(void)
-     return 0;
- }
--static int hvm_replace_event_channel(struct vcpu *v, domid_t remote_domid,
--                                     int *p_port)
--{
--    int old_port, new_port;
--
--    new_port = alloc_unbound_xen_event_channel(v, remote_domid, NULL);
--    if ( new_port < 0 )
--        return new_port;
--
--    /* xchg() ensures that only we call free_xen_event_channel(). */
--    old_port = xchg(p_port, new_port);
--    free_xen_event_channel(v, old_port);
--    return 0;
--}
--
- static int hvm_alloc_ioreq_server_page(struct domain *d,
-                                        struct hvm_ioreq_server *s,
-                                        struct hvm_ioreq_page *pfn,
-@@ -4041,7 +4026,6 @@ long do_hvm_op(unsigned long op, XEN_GUEST_HANDLE(void) arg)
-     case HVMOP_get_param:
-     {
-         struct xen_hvm_param a;
--        struct hvm_ioreq_page *iorp;
-         struct domain *d;
-         struct vcpu *v;
-@@ -4069,20 +4053,12 @@ long do_hvm_op(unsigned long op, XEN_GUEST_HANDLE(void) arg)
-             switch ( a.index )
-             {
--            case HVM_PARAM_IOREQ_PFN:
--                iorp = &d->arch.hvm_domain.ioreq;
--                if ( (rc = hvm_set_ioreq_page(d, iorp, a.value)) != 0 )
--                    break;
--                spin_lock(&iorp->lock);
--                if ( iorp->va != NULL )
--                    /* Initialise evtchn port info if VCPUs already created. */
--                    for_each_vcpu ( d, v )
--                        get_ioreq(v)->vp_eport = v->arch.hvm_vcpu.xen_port;
--                spin_unlock(&iorp->lock);
-+            case HVM_PARAM_IO_PFN_FIRST:
-+                rc = hvm_set_ioreq_page(d, &d->arch.hvm_domain.ioreq, a.value);
-                 break;
--            case HVM_PARAM_BUFIOREQ_PFN: 
--                iorp = &d->arch.hvm_domain.buf_ioreq;
--                rc = hvm_set_ioreq_page(d, iorp, a.value);
-+            case HVM_PARAM_IO_PFN_LAST:
-+                if ( (d->arch.hvm_domain.params[HVM_PARAM_IO_PFN_LAST]) )
-+                    rc = -EINVAL;
-                 break;
-             case HVM_PARAM_CALLBACK_IRQ:
-                 hvm_set_callback_via(d, a.value);
-@@ -4128,41 +4104,6 @@ long do_hvm_op(unsigned long op, XEN_GUEST_HANDLE(void) arg)
-                 domctl_lock_release();
-                 break;
--            case HVM_PARAM_DM_DOMAIN:
--                /* Not reflexive, as we must domain_pause(). */
--                rc = -EPERM;
--                if ( curr_d == d )
--                    break;
--
--                if ( a.value == DOMID_SELF )
--                    a.value = curr_d->domain_id;
--
--                rc = 0;
--                domain_pause(d); /* safe to change per-vcpu xen_port */
--                if ( d->vcpu[0] )
--                    rc = hvm_replace_event_channel(d->vcpu[0], a.value,
--                             (int *)&d->vcpu[0]->domain->arch.hvm_domain.params
--                                     [HVM_PARAM_BUFIOREQ_EVTCHN]);
--                if ( rc )
--                {
--                    domain_unpause(d);
--                    break;
--                }
--                iorp = &d->arch.hvm_domain.ioreq;
--                for_each_vcpu ( d, v )
--                {
--                    rc = hvm_replace_event_channel(v, a.value,
--                                                   &v->arch.hvm_vcpu.xen_port);
--                    if ( rc )
--                        break;
--
--                    spin_lock(&iorp->lock);
--                    if ( iorp->va != NULL )
--                        get_ioreq(v)->vp_eport = v->arch.hvm_vcpu.xen_port;
--                    spin_unlock(&iorp->lock);
--                }
--                domain_unpause(d);
--                break;
-             case HVM_PARAM_ACPI_S_STATE:
-                 /* Not reflexive, as we must domain_pause(). */
-                 rc = -EPERM;
-@@ -4213,9 +4154,6 @@ long do_hvm_op(unsigned long op, XEN_GUEST_HANDLE(void) arg)
-                         if ( rc == 0 )
-                             rc = nestedhvm_vcpu_initialise(v);
-                 break;
--            case HVM_PARAM_BUFIOREQ_EVTCHN:
--                rc = -EINVAL;
--                break;
-             }
-             if ( rc == 0 ) 
-@@ -4669,6 +4607,80 @@ long do_hvm_op(unsigned long op, XEN_GUEST_HANDLE(void) arg)
-         break;
-     }
-+    case HVMOP_register_ioreq_server:
-+    {
-+        struct xen_hvm_register_ioreq_server a;
-+
-+        if ( copy_from_guest(&a, arg, 1) )
-+            return -EFAULT;
-+
-+        rc = hvmop_register_ioreq_server(&a);
-+        if ( rc != 0 )
-+            return rc;
-+
-+        rc = copy_to_guest(arg, &a, 1) ? -EFAULT : 0;
-+        break;
-+    }
-+
-+    case HVMOP_get_ioreq_server_buf_channel:
-+    {
-+        struct xen_hvm_get_ioreq_server_buf_channel a;
-+
-+        if ( copy_from_guest(&a, arg, 1) )
-+            return -EFAULT;
-+
-+        rc = hvmop_get_ioreq_server_buf_channel(&a);
-+        if ( rc != 0 )
-+            return rc;
-+
-+        rc = copy_to_guest(arg, &a, 1) ? -EFAULT : 0;
-+
-+        break;
-+    }
-+
-+    case HVMOP_map_io_range_to_ioreq_server:
-+    {
-+        struct xen_hvm_map_io_range_to_ioreq_server a;
-+
-+        if ( copy_from_guest(&a, arg, 1) )
-+            return -EFAULT;
-+
-+        rc = hvmop_map_io_range_to_ioreq_server(&a);
-+        if ( rc != 0 )
-+            return rc;
-+
-+        break;
-+    }
-+
-+    case HVMOP_unmap_io_range_from_ioreq_server:
-+    {
-+        struct xen_hvm_unmap_io_range_from_ioreq_server a;
-+
-+        if ( copy_from_guest(&a, arg, 1) )
-+            return -EFAULT;
-+
-+        rc = hvmop_unmap_io_range_from_ioreq_server(&a);
-+        if ( rc != 0 )
-+            return rc;
-+
-+        break;
-+    }
-+
-+    case HVMOP_register_pcidev:
-+    {
-+        struct xen_hvm_register_pcidev a;
-+
-+        if ( copy_from_guest(&a, arg, 1) )
-+            return -EFAULT;
-+
-+        rc = hvm_register_pcidev(a.domid, a.id, a.domain,
-+                                 a.bus, a.device, a.function);
-+        if ( rc != 0 )
-+            return rc;
-+
-+        break;
-+    }
-+
-     default:
-     {
-         gdprintk(XENLOG_DEBUG, "Bad HVM op %ld.\n", op);
-diff --git a/xen/include/public/hvm/params.h b/xen/include/public/hvm/params.h
-index 309ac1b..017493b 100644
---- a/xen/include/public/hvm/params.h
-+++ b/xen/include/public/hvm/params.h
-@@ -49,11 +49,6 @@
- #define HVM_PARAM_PAE_ENABLED  4
--#define HVM_PARAM_IOREQ_PFN    5
--
--#define HVM_PARAM_BUFIOREQ_PFN 6
--#define HVM_PARAM_BUFIOREQ_EVTCHN 26
--
- #ifdef __ia64__
- #define HVM_PARAM_NVRAM_FD     7
--- 
-Julien Grall
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<cc44fbd3e6bc6d252367bc7ee77151de5ac8d2d5.1345552068.git.julien.grall@citrix.com> b/test/corpus/<cc44fbd3e6bc6d252367bc7ee77151de5ac8d2d5.1345552068.git.julien.grall@citrix.com>
deleted file mode 100644 (file)
index 117e7a1..0000000
+++ /dev/null
@@ -1,151 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Aug 22 19:58:58 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 22 Aug 2012 19:58:58 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T4G8e-0002nS-DH
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 22 Aug 2012 19:58:58 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T4G5J-0006mV-8p; Wed, 22 Aug 2012 18:55:21 +0000
-Received: from mail27.messagelabs.com ([193.109.254.147])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <julien.grall@citrix.com>) id 1T4G5H-0006fw-Jd
-       for xen-devel@lists.xen.org; Wed, 22 Aug 2012 18:55:19 +0000
-X-Env-Sender: julien.grall@citrix.com
-X-Msg-Ref: server-12.tower-27.messagelabs.com!1345661712!9781420!1
-X-Originating-IP: [66.165.176.89]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNjU4OTQ=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 7308 invoked from network); 22 Aug 2012 18:55:13 -0000
-Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
-       by server-12.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
-       22 Aug 2012 18:55:13 -0000
-X-IronPort-AV: E=Sophos;i="4.80,809,1344225600"; d="scan'208";a="35484787"
-Received: from ftlpmailmx01.citrite.net ([10.13.107.65])
-       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       22 Aug 2012 14:55:10 -0400
-Received: from meteora.cam.xci-test.com (10.80.248.22) by smtprelay.citrix.com
-       (10.13.107.65) with Microsoft SMTP Server id 8.3.213.0;
-       Wed, 22 Aug 2012 14:55:10 -0400
-From: Julien Grall <julien.grall@citrix.com>
-To: qemu-devel@nongnu.org
-Date: Wed, 22 Aug 2012 13:31:50 +0100
-Message-ID: <cc44fbd3e6bc6d252367bc7ee77151de5ac8d2d5.1345552068.git.julien.grall@citrix.com>
-X-Mailer: git-send-email 1.7.2.5
-In-Reply-To: <cover.1345552068.git.julien.grall@citrix.com>
-References: <cover.1345552068.git.julien.grall@citrix.com>
-MIME-Version: 1.0
-Cc: Julien Grall <julien.grall@citrix.com>, christian.limpach@gmail.com,
-       Stefano.Stabellini@eu.citrix.com, xen-devel@lists.xen.org
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DATE_IN_PAST_06_12,
-       RCVD_IN_DNSWL_MED,RP_MATCHES_RCVD autolearn=ham version=3.3.1
-Subject: [Xen-devel] [XEN][RFC PATCH V2 04/17] hvm: Change
-       initialization/destruction of an hvm
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-Prepare/Release structure for multiple ioreq servers.
-
-Signed-off-by: Julien Grall <julien.grall@citrix.com>
----
- xen/arch/x86/hvm/hvm.c |   33 ++++++++++-----------------------
- 1 files changed, 10 insertions(+), 23 deletions(-)
-
-diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
-index 687e480..292d57b 100644
---- a/xen/arch/x86/hvm/hvm.c
-+++ b/xen/arch/x86/hvm/hvm.c
-@@ -567,10 +567,13 @@ int hvm_domain_initialise(struct domain *d)
-     rtc_init(d);
-     hvm_init_ioreq_page(d, &d->arch.hvm_domain.ioreq);
--    hvm_init_ioreq_page(d, &d->arch.hvm_domain.buf_ioreq);
-+    hvm_init_ioreq_servers(d);
-     register_portio_handler(d, 0xe9, 1, hvm_print_line);
-+    if ( hvm_init_pci_emul(d) )
-+        goto fail2;
-+
-     rc = hvm_funcs.domain_initialise(d);
-     if ( rc != 0 )
-         goto fail2;
-@@ -645,8 +648,8 @@ static void hvm_destroy_ioreq_servers(struct domain *d)
- void hvm_domain_relinquish_resources(struct domain *d)
- {
--    hvm_destroy_ioreq_page(d, &d->arch.hvm_domain.ioreq);
--    hvm_destroy_ioreq_page(d, &d->arch.hvm_domain.buf_ioreq);
-+    hvm_destroy_ioreq_servers(d);
-+    hvm_destroy_pci_emul(d);
-     msixtbl_pt_cleanup(d);
-@@ -1104,27 +1107,11 @@ int hvm_vcpu_initialise(struct vcpu *v)
-          && (rc = nestedhvm_vcpu_initialise(v)) < 0 ) 
-         goto fail3;
--    /* Create ioreq event channel. */
--    rc = alloc_unbound_xen_event_channel(v, 0, NULL);
--    if ( rc < 0 )
--        goto fail4;
--
--    /* Register ioreq event channel. */
--    v->arch.hvm_vcpu.xen_port = rc;
--
--    if ( v->vcpu_id == 0 )
--    {
--        /* Create bufioreq event channel. */
--        rc = alloc_unbound_xen_event_channel(v, 0, NULL);
--        if ( rc < 0 )
--            goto fail2;
--        v->domain->arch.hvm_domain.params[HVM_PARAM_BUFIOREQ_EVTCHN] = rc;
--    }
-+    rc = hvm_ioreq_servers_new_vcpu(v);
-+    if ( rc != 0 )
-+        goto fail3;
--    spin_lock(&v->domain->arch.hvm_domain.ioreq.lock);
--    if ( v->domain->arch.hvm_domain.ioreq.va != NULL )
--        get_ioreq(v)->vp_eport = v->arch.hvm_vcpu.xen_port;
--    spin_unlock(&v->domain->arch.hvm_domain.ioreq.lock);
-+    v->arch.hvm_vcpu.ioreq = &v->domain->arch.hvm_domain.ioreq;
-     spin_lock_init(&v->arch.hvm_vcpu.tm_lock);
-     INIT_LIST_HEAD(&v->arch.hvm_vcpu.tm_list);
--- 
-Julien Grall
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<ceab22f2150107af78fd8134b4dee9020a1aaf41.1345552068.git.julien.grall@citrix.com> b/test/corpus/<ceab22f2150107af78fd8134b4dee9020a1aaf41.1345552068.git.julien.grall@citrix.com>
deleted file mode 100644 (file)
index 2403927..0000000
+++ /dev/null
@@ -1,201 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Aug 22 19:58:58 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 22 Aug 2012 19:58:58 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T4G8j-0002or-3G
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 22 Aug 2012 19:58:58 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T4G5H-0006ko-SP; Wed, 22 Aug 2012 18:55:19 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <julien.grall@citrix.com>) id 1T4G5G-0006iH-09
-       for xen-devel@lists.xen.org; Wed, 22 Aug 2012 18:55:18 +0000
-Received: from [85.158.138.51:39729] by server-9.bemta-3.messagelabs.com id
-       11/24-23952-51B25305; Wed, 22 Aug 2012 18:55:17 +0000
-X-Env-Sender: julien.grall@citrix.com
-X-Msg-Ref: server-5.tower-174.messagelabs.com!1345661707!27566656!4
-X-Originating-IP: [66.165.176.63]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyNzMzNjM=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 9836 invoked from network); 22 Aug 2012 18:55:16 -0000
-Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
-       by server-5.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
-       22 Aug 2012 18:55:16 -0000
-X-IronPort-AV: E=Sophos;i="4.80,809,1344225600"; d="scan'208";a="205943123"
-Received: from ftlpmailmx01.citrite.net ([10.13.107.65])
-       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       22 Aug 2012 14:55:15 -0400
-Received: from meteora.cam.xci-test.com (10.80.248.22) by smtprelay.citrix.com
-       (10.13.107.65) with Microsoft SMTP Server id 8.3.213.0;
-       Wed, 22 Aug 2012 14:55:15 -0400
-From: Julien Grall <julien.grall@citrix.com>
-To: qemu-devel@nongnu.org
-Date: Wed, 22 Aug 2012 13:31:54 +0100
-Message-ID: <ceab22f2150107af78fd8134b4dee9020a1aaf41.1345552068.git.julien.grall@citrix.com>
-X-Mailer: git-send-email 1.7.2.5
-In-Reply-To: <cover.1345552068.git.julien.grall@citrix.com>
-References: <cover.1345552068.git.julien.grall@citrix.com>
-MIME-Version: 1.0
-Cc: Julien Grall <julien.grall@citrix.com>, christian.limpach@gmail.com,
-       Stefano.Stabellini@eu.citrix.com, xen-devel@lists.xen.org
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DATE_IN_PAST_06_12,
-       RCVD_IN_DNSWL_MED,RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=unavailable
-       version=3.3.1
-Subject: [Xen-devel] [XEN][RFC PATCH V2 08/17] hvm-io: Handle server in
-       buffered IO
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-As for the normal IO, Xen browses the ranges to find which server
-is able to handle the IO.
-There is a special case for IOREQ_TYPE_TIMEOFFSET. Indeed,
-this IO must be send to all servers.
-For this purpose, a new function hvm_buffered_io_send_server was introduced.
-It sends an IO to a specific server.
-
-Signed-off-by: Julien Grall <julien.grall@citrix.com>
----
- xen/arch/x86/hvm/io.c |   75 +++++++++++++++++++++++++++++++++++++-----------
- 1 files changed, 58 insertions(+), 17 deletions(-)
-
-diff --git a/xen/arch/x86/hvm/io.c b/xen/arch/x86/hvm/io.c
-index b73a462..6e0160c 100644
---- a/xen/arch/x86/hvm/io.c
-+++ b/xen/arch/x86/hvm/io.c
-@@ -46,28 +46,17 @@
- #include <xen/iocap.h>
- #include <public/hvm/ioreq.h>
--int hvm_buffered_io_send(ioreq_t *p)
-+static int hvm_buffered_io_send_to_server(ioreq_t *p, struct hvm_ioreq_server *s)
- {
-     struct vcpu *v = current;
--    struct hvm_ioreq_page *iorp = &v->domain->arch.hvm_domain.buf_ioreq;
--    buffered_iopage_t *pg = iorp->va;
-+    struct hvm_ioreq_page *iorp;
-+    buffered_iopage_t *pg;
-     buf_ioreq_t bp;
-     /* Timeoffset sends 64b data, but no address. Use two consecutive slots. */
-     int qw = 0;
--    /* Ensure buffered_iopage fits in a page */
--    BUILD_BUG_ON(sizeof(buffered_iopage_t) > PAGE_SIZE);
--
--    /*
--     * Return 0 for the cases we can't deal with:
--     *  - 'addr' is only a 20-bit field, so we cannot address beyond 1MB
--     *  - we cannot buffer accesses to guest memory buffers, as the guest
--     *    may expect the memory buffer to be synchronously accessed
--     *  - the count field is usually used with data_is_ptr and since we don't
--     *    support data_is_ptr we do not waste space for the count field either
--     */
--    if ( (p->addr > 0xffffful) || p->data_is_ptr || (p->count != 1) )
--        return 0;
-+    iorp = &s->buf_ioreq;
-+    pg = iorp->va;
-     bp.type = p->type;
-     bp.dir  = p->dir;
-@@ -119,12 +108,64 @@ int hvm_buffered_io_send(ioreq_t *p)
-     pg->write_pointer += qw ? 2 : 1;
-     notify_via_xen_event_channel(v->domain,
--            v->domain->arch.hvm_domain.params[HVM_PARAM_BUFIOREQ_EVTCHN]);
-+                                 s->buf_ioreq_evtchn);
-     spin_unlock(&iorp->lock);
-     
-     return 1;
- }
-+int hvm_buffered_io_send(ioreq_t *p)
-+{
-+    struct vcpu *v = current;
-+    struct hvm_ioreq_server *s;
-+    int rc = 1;
-+
-+    /* Ensure buffered_iopage fits in a page */
-+    BUILD_BUG_ON(sizeof(buffered_iopage_t) > PAGE_SIZE);
-+
-+    /*
-+     * Return 0 for the cases we can't deal with:
-+     *  - 'addr' is only a 20-bit field, so we cannot address beyond 1MB
-+     *  - we cannot buffer accesses to guest memory buffers, as the guest
-+     *    may expect the memory buffer to be synchronously accessed
-+     *  - the count field is usually used with data_is_ptr and since we don't
-+     *    support data_is_ptr we do not waste space for the count field either
-+     */
-+    if ( (p->addr > 0xffffful) || p->data_is_ptr || (p->count != 1) )
-+        return 0;
-+
-+    spin_lock(&v->domain->arch.hvm_domain.ioreq_server_lock);
-+    if ( p->type == IOREQ_TYPE_TIMEOFFSET )
-+    {
-+        /* Send TIME OFFSET to all servers */
-+        for ( s = v->domain->arch.hvm_domain.ioreq_server_list; s; s = s->next )
-+            rc = hvm_buffered_io_send_to_server(p, s) && rc;
-+    }
-+    else
-+    {
-+        for ( s = v->domain->arch.hvm_domain.ioreq_server_list; s; s = s->next )
-+        {
-+            struct hvm_io_range *x = (p->type == IOREQ_TYPE_COPY)
-+                ? s->mmio_range_list : s->portio_range_list;
-+            for ( ; x; x = x->next )
-+            {
-+                if ( (p->addr >= x->s) && (p->addr <= x->e) )
-+                {
-+                    rc = hvm_buffered_io_send_to_server(p, s);
-+                    spin_unlock(&v->domain->arch.hvm_domain.ioreq_server_lock);
-+
-+                    return rc;
-+                }
-+            }
-+        }
-+        rc = 0;
-+    }
-+
-+    spin_unlock(&v->domain->arch.hvm_domain.ioreq_server_lock);
-+
-+    return rc;
-+}
-+
- void send_timeoffset_req(unsigned long timeoff)
- {
-     ioreq_t p[1];
--- 
-Julien Grall
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<cover.1345552068.git.julien.grall@citrix.com> b/test/corpus/<cover.1345552068.git.julien.grall@citrix.com>
deleted file mode 100644 (file)
index 666c8fb..0000000
+++ /dev/null
@@ -1,210 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Aug 22 19:59:01 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 22 Aug 2012 19:59:01 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T4G8k-0002pR-VV
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 22 Aug 2012 19:59:01 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T4G5F-0006iN-S8; Wed, 22 Aug 2012 18:55:17 +0000
-Received: from mail27.messagelabs.com ([193.109.254.147])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <julien.grall@citrix.com>) id 1T4G5D-0006dC-HU
-       for xen-devel@lists.xen.org; Wed, 22 Aug 2012 18:55:15 +0000
-X-Env-Sender: julien.grall@citrix.com
-X-Msg-Ref: server-4.tower-27.messagelabs.com!1345661706!10440772!1
-X-Originating-IP: [66.165.176.89]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNjU4OTQ=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 10268 invoked from network); 22 Aug 2012 18:55:07 -0000
-Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
-       by server-4.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
-       22 Aug 2012 18:55:07 -0000
-X-IronPort-AV: E=Sophos;i="4.80,809,1344225600"; d="scan'208";a="35484777"
-Received: from ftlpmailmx01.citrite.net ([10.13.107.65])
-       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       22 Aug 2012 14:55:05 -0400
-Received: from meteora.cam.xci-test.com (10.80.248.22) by smtprelay.citrix.com
-       (10.13.107.65) with Microsoft SMTP Server id 8.3.213.0;
-       Wed, 22 Aug 2012 14:55:05 -0400
-From: Julien Grall <julien.grall@citrix.com>
-To: qemu-devel@nongnu.org
-Date: Wed, 22 Aug 2012 13:31:46 +0100
-Message-ID: <cover.1345552068.git.julien.grall@citrix.com>
-X-Mailer: git-send-email 1.7.2.5
-MIME-Version: 1.0
-Cc: Julien Grall <julien.grall@citrix.com>, christian.limpach@gmail.com,
-       Stefano.Stabellini@eu.citrix.com, xen-devel@lists.xen.org
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DATE_IN_PAST_06_12,
-       RCVD_IN_DNSWL_MED,RP_MATCHES_RCVD autolearn=ham version=3.3.1
-Subject: [Xen-devel] [XEN][RFC PATCH V2 00/17] QEMU disaggregation in Xen
-       environment
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-Hello,
-
-This patch series only concerns Xen. Another serie will come for QEMU.
-
-I'm currently working on QEMU disaggregation in Xen environment. The
-goal is to be able to running multiple QEMU for a same domain
-(http://lists.xen.org/archives/html/xen-devel/2012-03/msg00299.html).
-
-I have already sent a version of patch series few months ago:
-    - QEMU: https://lists.gnu.org/archive/html/qemu-devel/2012-03/msg04401.html
-    - Xen: http://lists.xen.org/archives/html/xen-devel/2012-03/msg01947.html
-With the different feedbacks, I have improved both QEMU and Xen modifications.
-As before, I will sent two patch series, one for QEMU the other for Xen.
-
-Full disaggregation is not possible (one device = one QEMU) because lots
-of device depends on each others. With the help of Stefano, I have defined
-as possible disaggregation:
-    - ui: emulate default devices (root bridge, south bridge), VGA,
-    keyboard, mouse and USB
-    - audio: emulate audio
-    - ide: emulate disks
-    - serial: emulate serial port
-    - net: it possible to have multiple QEMU that emulates one or more
-    network card
-
-Of course, a same QEMU can emulate both ui and audio. Old configuration
-file with qemu-xen still works.
-The patch series adds an option "device_models".
-
-Example:
-
-builder='hvm'
-memory = 1024
-name = "Debian"
-vcpus=1
-vif = [ 'type=ioemu, bridge=eth0, mac=00:16:3e:0e:f5:ef, id=nic1' ]
-disk = [ 'tap:tapdisk:qcow2:/home/xentest/works/vms/debian.img,xvda,w' ]
-device_model_override = '/home/xentest/works/qemu-devel/qemu-wrapper'
-device_model_version = 'qemu-xen'
-device_models = [ 'name=qnet,vifs=nic1',
-                  'name=qall,ui,ide' ]
-
-It possible to override device model path for each device model. It could be
-useful for debugging. For instance, 'name=qnet,vifs=nic1,path=/my/path/wrapper'.
-The option "name" is used for logging filename or debugging, if it's not
-specify, a number is used.
-
-Modifications between V1 and V2:
-    - rewrite libxl patch according to the new API
-    - improve user experience with configuration file (avoid to specify
-      bdf)
-    - improve PCI hypercall: use bus, domain, device, function instead of
-    bdf.
-    - fix PCI config space handler
-    - remove unused HVM paramaters
-    - handle save/restore
-
-Drawbacks:
-    - PCI hotplug doesn't works
-    - stubdomain doesn't works because old QEMU is not modify for
-    disaggregation. By the way it's works on XenClient stubdomain
-    - Which QEMU need to emulate Xen Platform ? It's mainly used
-    to unplug network cards and disks
-
-Possible improvements:
-    - Like hvm get parameters, introduce an hypercall to retrieve shared
-    pages. For the moment the server id is used
-    - Specify if we want buffered I/O shared page or not (It was an idea
-    of Christian Limpach)
-
-I don't test all configurations. Comments, bug reports, ... are welcome.
-
-Julien Grall (17):
-  hvm: Modify interface to support multiple ioreq server
-  hvm: Add functions to handle ioreq servers
-  hvm-pci: Handle PCI config space in Xen
-  hvm: Change initialization/destruction of an hvm
-  hvm: Modify hvm_op
-  hvm-io: IO refactoring with ioreq server
-  hvm-io: send invalidate map cache to each registered servers
-  hvm-io: Handle server in buffered IO
-  xc: Add the hypercall for multiple servers
-  xc: Add argument to allocate more special pages
-  xc: modify save/restore to support multiple device models
-  xl: Add interface to handle qemu disaggregation
-  xl: add device model id to qmp functions
-  xl-parsing: Parse new device_models option
-  xl: support spawn/destroy on multiple device model
-  xl: Fix PCI library
-  xl: implement save/restore for multiple device models
-
- tools/libxc/xc_domain.c           |  155 ++++++++++
- tools/libxc/xc_domain_restore.c   |  150 ++++++++---
- tools/libxc/xc_domain_save.c      |    6 +-
- tools/libxc/xc_hvm_build_x86.c    |   59 ++--
- tools/libxc/xenctrl.h             |   21 ++
- tools/libxc/xenguest.h            |    4 +-
- tools/libxl/Makefile              |    2 +-
- tools/libxl/libxl.c               |   21 +-
- tools/libxl/libxl.h               |    3 +
- tools/libxl/libxl_create.c        |  150 ++++++++---
- tools/libxl/libxl_device.c        |    7 +-
- tools/libxl/libxl_dm.c            |  369 +++++++++++++++++-------
- tools/libxl/libxl_dom.c           |  147 ++++++++--
- tools/libxl/libxl_internal.h      |   76 ++++--
- tools/libxl/libxl_pci.c           |   19 +-
- tools/libxl/libxl_qmp.c           |   49 ++--
- tools/libxl/libxl_types.idl       |   15 +
- tools/libxl/libxlu_dm.c           |   96 +++++++
- tools/libxl/libxlutil.h           |    5 +
- tools/libxl/xl_cmdimpl.c          |   29 ++-
- tools/python/xen/lowlevel/xc/xc.c |    3 +-
- xen/arch/x86/hvm/Makefile         |    1 +
- xen/arch/x86/hvm/emulate.c        |   56 ++++
- xen/arch/x86/hvm/hvm.c            |  567 +++++++++++++++++++++++++++++++------
- xen/arch/x86/hvm/io.c             |   90 +++++--
- xen/arch/x86/hvm/pci_emul.c       |  168 +++++++++++
- xen/include/asm-x86/hvm/domain.h  |   25 ++-
- xen/include/asm-x86/hvm/support.h |   26 ++-
- xen/include/asm-x86/hvm/vcpu.h    |    4 +-
- xen/include/public/hvm/hvm_op.h   |   51 ++++
- xen/include/public/hvm/ioreq.h    |    1 +
- xen/include/public/hvm/params.h   |   11 +-
- xen/include/public/xen.h          |    1 +
- xen/include/xen/hvm/pci_emul.h    |   29 ++
- 34 files changed, 1986 insertions(+), 430 deletions(-)
- create mode 100644 tools/libxl/libxlu_dm.c
- create mode 100644 xen/arch/x86/hvm/pci_emul.c
- create mode 100644 xen/include/xen/hvm/pci_emul.h
-
--- 
-Julien Grall
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<d481c7657e727bbd67f762244fc3b1383a0ee037.1345552068.git.julien.grall@citrix.com> b/test/corpus/<d481c7657e727bbd67f762244fc3b1383a0ee037.1345552068.git.julien.grall@citrix.com>
deleted file mode 100644 (file)
index 45ac855..0000000
+++ /dev/null
@@ -1,300 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Aug 22 19:58:57 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 22 Aug 2012 19:58:57 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T4G8h-0002oC-EZ
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 22 Aug 2012 19:58:57 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T4G5N-0006tE-GL; Wed, 22 Aug 2012 18:55:25 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <julien.grall@citrix.com>) id 1T4G5L-0006iH-Lp
-       for xen-devel@lists.xen.org; Wed, 22 Aug 2012 18:55:23 +0000
-Received: from [85.158.138.51:40019] by server-9.bemta-3.messagelabs.com id
-       14/34-23952-B1B25305; Wed, 22 Aug 2012 18:55:23 +0000
-X-Env-Sender: julien.grall@citrix.com
-X-Msg-Ref: server-5.tower-174.messagelabs.com!1345661707!27566656!6
-X-Originating-IP: [66.165.176.63]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyNzMzNjM=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 10412 invoked from network); 22 Aug 2012 18:55:22 -0000
-Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
-       by server-5.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
-       22 Aug 2012 18:55:22 -0000
-X-IronPort-AV: E=Sophos;i="4.80,809,1344225600"; d="scan'208";a="205943131"
-Received: from ftlpmailmx01.citrite.net ([10.13.107.65])
-       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       22 Aug 2012 14:55:21 -0400
-Received: from meteora.cam.xci-test.com (10.80.248.22) by smtprelay.citrix.com
-       (10.13.107.65) with Microsoft SMTP Server id 8.3.213.0;
-       Wed, 22 Aug 2012 14:55:21 -0400
-From: Julien Grall <julien.grall@citrix.com>
-To: qemu-devel@nongnu.org
-Date: Wed, 22 Aug 2012 13:31:59 +0100
-Message-ID: <d481c7657e727bbd67f762244fc3b1383a0ee037.1345552068.git.julien.grall@citrix.com>
-X-Mailer: git-send-email 1.7.2.5
-In-Reply-To: <cover.1345552068.git.julien.grall@citrix.com>
-References: <cover.1345552068.git.julien.grall@citrix.com>
-MIME-Version: 1.0
-Cc: Julien Grall <julien.grall@citrix.com>, christian.limpach@gmail.com,
-       Stefano.Stabellini@eu.citrix.com, xen-devel@lists.xen.org
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DATE_IN_PAST_06_12,
-       RCVD_IN_DNSWL_MED,RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham
-       version=3.3.1
-Subject: [Xen-devel] [XEN][RFC PATCH V2 13/17] xl: add device model id to
-       qmp functions
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-With the support of multiple device model, the qmp library need to know
-which device models is currently used.
-
-Signed-off-by: Julien Grall <julien.grall@citrix.com>
----
- tools/libxl/libxl_internal.h |   24 ++++++++++++-------
- tools/libxl/libxl_qmp.c      |   49 ++++++++++++++++++++++++------------------
- 2 files changed, 43 insertions(+), 30 deletions(-)
-
-diff --git a/tools/libxl/libxl_internal.h b/tools/libxl/libxl_internal.h
-index 7c3b179..71e4970 100644
---- a/tools/libxl/libxl_internal.h
-+++ b/tools/libxl/libxl_internal.h
-@@ -1384,26 +1384,32 @@ typedef struct libxl__qmp_handler libxl__qmp_handler;
-  *   Return an handler or NULL if there is an error
-  */
- _hidden libxl__qmp_handler *libxl__qmp_initialize(libxl__gc *gc,
--                                                  uint32_t domid);
-+                                                  libxl_domid domid,
-+                                                  libxl_dmid dmid);
- /* ask to QEMU the serial port information and store it in xenstore. */
- _hidden int libxl__qmp_query_serial(libxl__qmp_handler *qmp);
--_hidden int libxl__qmp_pci_add(libxl__gc *gc, int d, libxl_device_pci *pcidev);
--_hidden int libxl__qmp_pci_del(libxl__gc *gc, int domid,
--                               libxl_device_pci *pcidev);
-+_hidden int libxl__qmp_pci_add(libxl__gc *gc, libxl_domid d,
-+                               libxl_dmid dmid, libxl_device_pci *pcidev);
-+_hidden int libxl__qmp_pci_del(libxl__gc *gc, libxl_domid domid,
-+                               libxl_dmid dmid, libxl_device_pci *pcidev);
- /* Suspend QEMU. */
--_hidden int libxl__qmp_stop(libxl__gc *gc, int domid);
-+_hidden int libxl__qmp_stop(libxl__gc *gc, libxl_domid domid, libxl_dmid dmid);
- /* Resume QEMU. */
--_hidden int libxl__qmp_resume(libxl__gc *gc, int domid);
-+_hidden int libxl__qmp_resume(libxl__gc *gc, libxl_domid domid,
-+                              libxl_dmid dmid);
- /* Save current QEMU state into fd. */
--_hidden int libxl__qmp_save(libxl__gc *gc, int domid, const char *filename);
-+_hidden int libxl__qmp_save(libxl__gc *gc, libxl_domid domid,
-+                            libxl_dmid dmid, const char *filename);
- /* close and free the QMP handler */
- _hidden void libxl__qmp_close(libxl__qmp_handler *qmp);
- /* remove the socket file, if the file has already been removed,
-  * nothing happen */
--_hidden void libxl__qmp_cleanup(libxl__gc *gc, uint32_t domid);
-+_hidden void libxl__qmp_cleanup(libxl__gc *gc, libxl_domid domid,
-+                                libxl_dmid dmid);
- /* this helper calls qmp_initialize, query_serial and qmp_close */
--_hidden int libxl__qmp_initializations(libxl__gc *gc, uint32_t domid,
-+_hidden int libxl__qmp_initializations(libxl__gc *gc, libxl_domid domid,
-+                                       libxl_dmid dmid,
-                                        const libxl_domain_config *guest_config);
- /* on failure, logs */
-diff --git a/tools/libxl/libxl_qmp.c b/tools/libxl/libxl_qmp.c
-index e33b130..3c3cccf 100644
---- a/tools/libxl/libxl_qmp.c
-+++ b/tools/libxl/libxl_qmp.c
-@@ -627,7 +627,8 @@ static void qmp_free_handler(libxl__qmp_handler *qmp)
-  * API
-  */
--libxl__qmp_handler *libxl__qmp_initialize(libxl__gc *gc, uint32_t domid)
-+libxl__qmp_handler *libxl__qmp_initialize(libxl__gc *gc, libxl_domid domid,
-+                                          libxl_dmid dmid)
- {
-     int ret = 0;
-     libxl__qmp_handler *qmp = NULL;
-@@ -635,8 +636,8 @@ libxl__qmp_handler *libxl__qmp_initialize(libxl__gc *gc, uint32_t domid)
-     qmp = qmp_init_handler(gc, domid);
--    qmp_socket = libxl__sprintf(gc, "%s/qmp-libxl-%d",
--                                libxl__run_dir_path(), domid);
-+    qmp_socket = libxl__sprintf(gc, "%s/qmp-libxl-%u-%u",
-+                                libxl__run_dir_path(), domid, dmid);
-     if ((ret = qmp_open(qmp, qmp_socket, QMP_SOCKET_CONNECT_TIMEOUT)) < 0) {
-         LIBXL__LOG_ERRNO(qmp->ctx, LIBXL__LOG_ERROR, "Connection error");
-         qmp_free_handler(qmp);
-@@ -668,13 +669,13 @@ void libxl__qmp_close(libxl__qmp_handler *qmp)
-     qmp_free_handler(qmp);
- }
--void libxl__qmp_cleanup(libxl__gc *gc, uint32_t domid)
-+void libxl__qmp_cleanup(libxl__gc *gc, libxl_domid domid, libxl_dmid dmid)
- {
-     libxl_ctx *ctx = libxl__gc_owner(gc);
-     char *qmp_socket;
--    qmp_socket = libxl__sprintf(gc, "%s/qmp-libxl-%d",
--                                libxl__run_dir_path(), domid);
-+    qmp_socket = libxl__sprintf(gc, "%s/qmp-libxl-%u-%u",
-+                                libxl__run_dir_path(), domid, dmid);
-     if (unlink(qmp_socket) == -1) {
-         if (errno != ENOENT) {
-             LIBXL__LOG_ERRNO(ctx, LIBXL__LOG_ERROR,
-@@ -746,7 +747,9 @@ out:
-     return rc;
- }
--int libxl__qmp_pci_add(libxl__gc *gc, int domid, libxl_device_pci *pcidev)
-+int libxl__qmp_pci_add(libxl__gc *gc, libxl_domid domid,
-+                       libxl_dmid dmid,
-+                       libxl_device_pci *pcidev)
- {
-     libxl__qmp_handler *qmp = NULL;
-     flexarray_t *parameters = NULL;
-@@ -754,7 +757,7 @@ int libxl__qmp_pci_add(libxl__gc *gc, int domid, libxl_device_pci *pcidev)
-     char *hostaddr = NULL;
-     int rc = 0;
--    qmp = libxl__qmp_initialize(gc, domid);
-+    qmp = libxl__qmp_initialize(gc, domid, 0);
-     if (!qmp)
-         return -1;
-@@ -792,14 +795,15 @@ int libxl__qmp_pci_add(libxl__gc *gc, int domid, libxl_device_pci *pcidev)
-     return rc;
- }
--static int qmp_device_del(libxl__gc *gc, int domid, char *id)
-+static int qmp_device_del(libxl__gc *gc, libxl_domid domid,
-+                          libxl_dmid dmid, char *id)
- {
-     libxl__qmp_handler *qmp = NULL;
-     flexarray_t *parameters = NULL;
-     libxl_key_value_list args = NULL;
-     int rc = 0;
--    qmp = libxl__qmp_initialize(gc, domid);
-+    qmp = libxl__qmp_initialize(gc, domid, 0);
-     if (!qmp)
-         return ERROR_FAIL;
-@@ -817,24 +821,26 @@ static int qmp_device_del(libxl__gc *gc, int domid, char *id)
-     return rc;
- }
--int libxl__qmp_pci_del(libxl__gc *gc, int domid, libxl_device_pci *pcidev)
-+int libxl__qmp_pci_del(libxl__gc *gc, libxl_domid domid,
-+                       libxl_domid dmid, libxl_device_pci *pcidev)
- {
-     char *id = NULL;
-     id = libxl__sprintf(gc, PCI_PT_QDEV_ID,
-                         pcidev->bus, pcidev->dev, pcidev->func);
--    return qmp_device_del(gc, domid, id);
-+    return qmp_device_del(gc, domid, dmid, id);
- }
--int libxl__qmp_save(libxl__gc *gc, int domid, const char *filename)
-+int libxl__qmp_save(libxl__gc *gc, libxl_domid domid,
-+                    libxl_dmid dmid, const char *filename)
- {
-     libxl__qmp_handler *qmp = NULL;
-     flexarray_t *parameters = NULL;
-     libxl_key_value_list args = NULL;
-     int rc = 0;
--    qmp = libxl__qmp_initialize(gc, domid);
-+    qmp = libxl__qmp_initialize(gc, domid, dmid);
-     if (!qmp)
-         return ERROR_FAIL;
-@@ -883,12 +889,12 @@ static int qmp_change(libxl__gc *gc, libxl__qmp_handler *qmp,
-     return rc;
- }
--int libxl__qmp_stop(libxl__gc *gc, int domid)
-+int libxl__qmp_stop(libxl__gc *gc, libxl_domid domid, libxl_dmid dmid)
- {
-     libxl__qmp_handler *qmp = NULL;
-     int rc = 0;
--    qmp = libxl__qmp_initialize(gc, domid);
-+    qmp = libxl__qmp_initialize(gc, domid, dmid);
-     if (!qmp)
-         return ERROR_FAIL;
-@@ -899,12 +905,12 @@ int libxl__qmp_stop(libxl__gc *gc, int domid)
-     return rc;
- }
--int libxl__qmp_resume(libxl__gc *gc, int domid)
-+int libxl__qmp_resume(libxl__gc *gc, libxl_domid domid, libxl_dmid dmid)
- {
-     libxl__qmp_handler *qmp = NULL;
-     int rc = 0;
--    qmp = libxl__qmp_initialize(gc, domid);
-+    qmp = libxl__qmp_initialize(gc, domid, dmid);
-     if (!qmp)
-         return ERROR_FAIL;
-@@ -915,14 +921,15 @@ int libxl__qmp_resume(libxl__gc *gc, int domid)
-     return rc;
- }
--int libxl__qmp_initializations(libxl__gc *gc, uint32_t domid,
-+int libxl__qmp_initializations(libxl__gc *gc, libxl_domid domid,
-+                               libxl_dmid dmid,
-                                const libxl_domain_config *guest_config)
- {
--    const libxl_vnc_info *vnc = libxl__dm_vnc(guest_config);
-+    const libxl_vnc_info *vnc = libxl__dm_vnc(dmid, guest_config);
-     libxl__qmp_handler *qmp = NULL;
-     int ret = 0;
--    qmp = libxl__qmp_initialize(gc, domid);
-+    qmp = libxl__qmp_initialize(gc, domid, dmid);
-     if (!qmp)
-         return -1;
-     ret = libxl__qmp_query_serial(qmp);
--- 
-Julien Grall
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<dd493399678c6eee3b5b0a08eb790b73fba1a678.1345552068.git.julien.grall@citrix.com> b/test/corpus/<dd493399678c6eee3b5b0a08eb790b73fba1a678.1345552068.git.julien.grall@citrix.com>
deleted file mode 100644 (file)
index 6cb546c..0000000
+++ /dev/null
@@ -1,472 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Aug 22 19:59:05 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 22 Aug 2012 19:59:05 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T4G8p-0002qp-Qq
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 22 Aug 2012 19:59:04 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T4G5G-0006ig-7o; Wed, 22 Aug 2012 18:55:18 +0000
-Received: from mail27.messagelabs.com ([193.109.254.147])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <julien.grall@citrix.com>) id 1T4G5E-0006dZ-9T
-       for xen-devel@lists.xen.org; Wed, 22 Aug 2012 18:55:16 +0000
-X-Env-Sender: julien.grall@citrix.com
-X-Msg-Ref: server-4.tower-27.messagelabs.com!1345661706!10440772!2
-X-Originating-IP: [66.165.176.89]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni44OSA9PiAxNjU4OTQ=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 10282 invoked from network); 22 Aug 2012 18:55:09 -0000
-Received: from smtp.citrix.com (HELO SMTP.CITRIX.COM) (66.165.176.89)
-       by server-4.tower-27.messagelabs.com with RC4-SHA encrypted SMTP;
-       22 Aug 2012 18:55:09 -0000
-X-IronPort-AV: E=Sophos;i="4.80,809,1344225600"; d="scan'208";a="35484781"
-Received: from ftlpmailmx01.citrite.net ([10.13.107.65])
-       by FTLPIPO01.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       22 Aug 2012 14:55:08 -0400
-Received: from meteora.cam.xci-test.com (10.80.248.22) by smtprelay.citrix.com
-       (10.13.107.65) with Microsoft SMTP Server id 8.3.213.0;
-       Wed, 22 Aug 2012 14:55:07 -0400
-From: Julien Grall <julien.grall@citrix.com>
-To: qemu-devel@nongnu.org
-Date: Wed, 22 Aug 2012 13:31:48 +0100
-Message-ID: <dd493399678c6eee3b5b0a08eb790b73fba1a678.1345552068.git.julien.grall@citrix.com>
-X-Mailer: git-send-email 1.7.2.5
-In-Reply-To: <cover.1345552068.git.julien.grall@citrix.com>
-References: <cover.1345552068.git.julien.grall@citrix.com>
-MIME-Version: 1.0
-Cc: Julien Grall <julien.grall@citrix.com>, christian.limpach@gmail.com,
-       Stefano.Stabellini@eu.citrix.com, xen-devel@lists.xen.org
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DATE_IN_PAST_06_12,
-       RCVD_IN_DNSWL_MED,RP_MATCHES_RCVD autolearn=unavailable version=3.3.1
-Subject: [Xen-devel] [XEN][RFC PATCH V2 02/17] hvm: Add functions to handle
-       ioreq servers
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-This patch adds functions to :
-  - create/destroy server
-  - map/unmap IO range to a server
-
-Signed-off-by: Julien Grall <julien.grall@citrix.com>
----
- xen/arch/x86/hvm/hvm.c |  356 ++++++++++++++++++++++++++++++++++++++++++++++++
- 1 files changed, 356 insertions(+), 0 deletions(-)
-
-diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c
-index 7f8a025c..687e480 100644
---- a/xen/arch/x86/hvm/hvm.c
-+++ b/xen/arch/x86/hvm/hvm.c
-@@ -354,6 +354,37 @@ void hvm_do_resume(struct vcpu *v)
-     }
- }
-+static void hvm_init_ioreq_servers(struct domain *d)
-+{
-+    spin_lock_init(&d->arch.hvm_domain.ioreq_server_lock);
-+    d->arch.hvm_domain.nr_ioreq_server = 0;
-+}
-+
-+static int hvm_ioreq_servers_new_vcpu(struct vcpu *v)
-+{
-+    struct hvm_ioreq_server *s;
-+    struct domain *d = v->domain;
-+    shared_iopage_t *p;
-+    int rc = 0;
-+
-+    spin_lock(&d->arch.hvm_domain.ioreq_server_lock);
-+
-+    for ( s = d->arch.hvm_domain.ioreq_server_list; s != NULL; s = s->next )
-+    {
-+        p = s->ioreq.va;
-+        ASSERT(p != NULL);
-+
-+        rc = alloc_unbound_xen_event_channel(v, s->domid, NULL);
-+        if ( rc < 0 )
-+            break;
-+        p->vcpu_ioreq[v->vcpu_id].vp_eport = rc;
-+    }
-+
-+    spin_unlock(&d->arch.hvm_domain.ioreq_server_lock);
-+
-+    return (rc < 0) ? rc : 0;
-+}
-+
- static void hvm_init_ioreq_page(
-     struct domain *d, struct hvm_ioreq_page *iorp)
- {
-@@ -559,6 +590,59 @@ int hvm_domain_initialise(struct domain *d)
-     return rc;
- }
-+static void hvm_destroy_ioreq_server(struct domain *d,
-+                                     struct hvm_ioreq_server *s)
-+{
-+    struct hvm_io_range *x;
-+    shared_iopage_t *p;
-+    int i;
-+
-+    while ( (x = s->mmio_range_list) != NULL )
-+    {
-+        s->mmio_range_list = x->next;
-+        xfree(x);
-+    }
-+    while ( (x = s->portio_range_list) != NULL )
-+    {
-+        s->portio_range_list = x->next;
-+        xfree(x);
-+    }
-+
-+    p = s->ioreq.va;
-+
-+    for ( i = 0; i < MAX_HVM_VCPUS; i++ )
-+    {
-+        if ( p->vcpu_ioreq[i].vp_eport )
-+        {
-+            free_xen_event_channel(d->vcpu[i], p->vcpu_ioreq[i].vp_eport);
-+        }
-+    }
-+
-+    free_xen_event_channel(d->vcpu[0], s->buf_ioreq_evtchn);
-+
-+    hvm_destroy_ioreq_page(d, &s->ioreq);
-+    hvm_destroy_ioreq_page(d, &s->buf_ioreq);
-+
-+    xfree(s);
-+}
-+
-+static void hvm_destroy_ioreq_servers(struct domain *d)
-+{
-+    struct hvm_ioreq_server *s;
-+
-+    spin_lock(&d->arch.hvm_domain.ioreq_server_lock);
-+
-+    ASSERT(d->is_dying);
-+
-+    while ( (s = d->arch.hvm_domain.ioreq_server_list) != NULL )
-+    {
-+        d->arch.hvm_domain.ioreq_server_list = s->next;
-+        hvm_destroy_ioreq_server(d, s);
-+    }
-+
-+    spin_unlock(&d->arch.hvm_domain.ioreq_server_lock);
-+}
-+
- void hvm_domain_relinquish_resources(struct domain *d)
- {
-     hvm_destroy_ioreq_page(d, &d->arch.hvm_domain.ioreq);
-@@ -3686,6 +3770,278 @@ static int hvm_replace_event_channel(struct vcpu *v, domid_t remote_domid,
-     return 0;
- }
-+static int hvm_alloc_ioreq_server_page(struct domain *d,
-+                                       struct hvm_ioreq_server *s,
-+                                       struct hvm_ioreq_page *pfn,
-+                                       int i)
-+{
-+    int rc = 0;
-+    unsigned long gmfn;
-+
-+    if (i < 0 || i > 1)
-+        return -EINVAL;
-+
-+    hvm_init_ioreq_page(d, pfn);
-+
-+    gmfn = d->arch.hvm_domain.params[HVM_PARAM_IO_PFN_FIRST]
-+        + (s->id - 1) * 2 + i + 1;
-+
-+    if (gmfn > d->arch.hvm_domain.params[HVM_PARAM_IO_PFN_LAST])
-+        return -EINVAL;
-+
-+    rc = hvm_set_ioreq_page(d, pfn, gmfn);
-+
-+    if (!rc && pfn->va == NULL)
-+        rc = -ENOMEM;
-+
-+    return rc;
-+}
-+
-+static int hvmop_register_ioreq_server(
-+    struct xen_hvm_register_ioreq_server *a)
-+{
-+    struct hvm_ioreq_server *s, **pp;
-+    struct domain *d;
-+    shared_iopage_t *p;
-+    struct vcpu *v;
-+    int i;
-+    int rc = 0;
-+
-+    if ( current->domain->domain_id == a->domid )
-+        return -EINVAL;
-+
-+    rc = rcu_lock_target_domain_by_id(a->domid, &d);
-+    if ( rc != 0 )
-+        return rc;
-+
-+    if ( !is_hvm_domain(d) )
-+    {
-+        rcu_unlock_domain(d);
-+        return -EINVAL;
-+    }
-+
-+    s = xmalloc(struct hvm_ioreq_server);
-+    if ( s == NULL )
-+    {
-+        rcu_unlock_domain(d);
-+        return -ENOMEM;
-+    }
-+    memset(s, 0, sizeof(*s));
-+
-+    if ( d->is_dying)
-+    {
-+        rc = -EINVAL;
-+        goto register_died;
-+    }
-+
-+    spin_lock(&d->arch.hvm_domain.ioreq_server_lock);
-+
-+    s->id = d->arch.hvm_domain.nr_ioreq_server + 1;
-+    s->domid = current->domain->domain_id;
-+
-+    /* Initialize shared pages */
-+    if ( (rc = hvm_alloc_ioreq_server_page(d, s, &s->ioreq, 0)) )
-+        goto register_ioreq;
-+    if ( (rc = hvm_alloc_ioreq_server_page(d, s, &s->buf_ioreq, 1)) )
-+        goto register_buf_ioreq;
-+
-+    p = s->ioreq.va;
-+
-+    for_each_vcpu ( d, v )
-+    {
-+        rc = alloc_unbound_xen_event_channel(v, s->domid, NULL);
-+        if ( rc < 0 )
-+            goto register_ports;
-+        p->vcpu_ioreq[v->vcpu_id].vp_eport = rc;
-+    }
-+
-+    /* Allocate buffer event channel */
-+    rc = alloc_unbound_xen_event_channel(d->vcpu[0], s->domid, NULL);
-+
-+    if (rc < 0)
-+        goto register_ports;
-+    s->buf_ioreq_evtchn = rc;
-+
-+    pp = &d->arch.hvm_domain.ioreq_server_list;
-+    while ( *pp != NULL )
-+        pp = &(*pp)->next;
-+    *pp = s;
-+
-+    d->arch.hvm_domain.nr_ioreq_server += 1;
-+    a->id = s->id;
-+
-+    spin_unlock(&d->arch.hvm_domain.ioreq_server_lock);
-+    rcu_unlock_domain(d);
-+
-+    goto register_done;
-+
-+register_ports:
-+    p = s->ioreq.va;
-+    for ( i = 0; i < MAX_HVM_VCPUS; i++ )
-+    {
-+        if ( p->vcpu_ioreq[i].vp_eport )
-+            free_xen_event_channel(d->vcpu[i], p->vcpu_ioreq[i].vp_eport);
-+    }
-+    hvm_destroy_ioreq_page(d, &s->buf_ioreq);
-+register_buf_ioreq:
-+    hvm_destroy_ioreq_page(d, &s->ioreq);
-+register_ioreq:
-+    spin_unlock(&d->arch.hvm_domain.ioreq_server_lock);
-+register_died:
-+    xfree(s);
-+    rcu_unlock_domain(d);
-+register_done:
-+    return 0;
-+}
-+
-+static int hvmop_get_ioreq_server_buf_channel(
-+    struct xen_hvm_get_ioreq_server_buf_channel *a)
-+{
-+    struct domain *d;
-+    struct hvm_ioreq_server *s;
-+    int rc;
-+
-+    rc = rcu_lock_target_domain_by_id(a->domid, &d);
-+
-+    if ( rc != 0 )
-+        return rc;
-+
-+    if ( !is_hvm_domain(d) )
-+    {
-+        rcu_unlock_domain(d);
-+        return -EINVAL;
-+    }
-+
-+    spin_lock(&d->arch.hvm_domain.ioreq_server_lock);
-+    s = d->arch.hvm_domain.ioreq_server_list;
-+
-+    while ( (s != NULL) && (s->id != a->id) )
-+        s = s->next;
-+
-+    if ( s == NULL )
-+    {
-+        spin_unlock(&d->arch.hvm_domain.ioreq_server_lock);
-+        rcu_unlock_domain(d);
-+        return -ENOENT;
-+    }
-+
-+    a->channel = s->buf_ioreq_evtchn;
-+
-+    spin_unlock(&d->arch.hvm_domain.ioreq_server_lock);
-+    rcu_unlock_domain(d);
-+
-+    return 0;
-+}
-+
-+static int hvmop_map_io_range_to_ioreq_server(
-+    struct xen_hvm_map_io_range_to_ioreq_server *a)
-+{
-+    struct hvm_ioreq_server *s;
-+    struct hvm_io_range *x;
-+    struct domain *d;
-+    int rc;
-+
-+    rc = rcu_lock_target_domain_by_id(a->domid, &d);
-+    if ( rc != 0 )
-+        return rc;
-+
-+    if ( !is_hvm_domain(d) )
-+    {
-+        rcu_unlock_domain(d);
-+        return -EINVAL;
-+    }
-+
-+    spin_lock(&d->arch.hvm_domain.ioreq_server_lock);
-+
-+    x = xmalloc(struct hvm_io_range);
-+    s = d->arch.hvm_domain.ioreq_server_list;
-+    while ( (s != NULL) && (s->id != a->id) )
-+        s = s->next;
-+    if ( (s == NULL) || (x == NULL) )
-+    {
-+        xfree(x);
-+        spin_unlock(&d->arch.hvm_domain.ioreq_server_lock);
-+        rcu_unlock_domain(d);
-+        return x ? -ENOENT : -ENOMEM;
-+    }
-+
-+    x->s = a->s;
-+    x->e = a->e;
-+    if ( a->is_mmio )
-+    {
-+        x->next = s->mmio_range_list;
-+        s->mmio_range_list = x;
-+    }
-+    else
-+    {
-+        x->next = s->portio_range_list;
-+        s->portio_range_list = x;
-+    }
-+
-+    spin_unlock(&d->arch.hvm_domain.ioreq_server_lock);
-+    rcu_unlock_domain(d);
-+    return 0;
-+}
-+
-+static int hvmop_unmap_io_range_from_ioreq_server(
-+    struct xen_hvm_unmap_io_range_from_ioreq_server *a)
-+{
-+    struct hvm_ioreq_server *s;
-+    struct hvm_io_range *x, **xp;
-+    struct domain *d;
-+    int rc;
-+
-+    rc = rcu_lock_target_domain_by_id(a->domid, &d);
-+    if ( rc != 0 )
-+        return rc;
-+
-+    if ( !is_hvm_domain(d) )
-+    {
-+        rcu_unlock_domain(d);
-+        return -EINVAL;
-+    }
-+
-+    spin_lock(&d->arch.hvm_domain.ioreq_server_lock);
-+
-+    s = d->arch.hvm_domain.ioreq_server_list;
-+    while ( (s != NULL) && (s->id != a->id) )
-+        s = s->next;
-+    if ( (s == NULL) )
-+    {
-+        spin_unlock(&d->arch.hvm_domain.ioreq_server_lock);
-+        rcu_unlock_domain(d);
-+        return -ENOENT;
-+    }
-+
-+    if ( a->is_mmio )
-+    {
-+        x = s->mmio_range_list;
-+        xp = &s->mmio_range_list;
-+    }
-+    else
-+    {
-+        x = s->portio_range_list;
-+        xp = &s->portio_range_list;
-+    }
-+    while ( (x != NULL) && (a->addr < x->s || a->addr > x->e) )
-+    {
-+      xp = &x->next;
-+      x = x->next;
-+    }
-+    if ( (x != NULL) )
-+    {
-+      *xp = x->next;
-+      xfree(x);
-+      rc = 0;
-+    }
-+    else
-+      rc = -ENOENT;
-+
-+    spin_unlock(&d->arch.hvm_domain.ioreq_server_lock);
-+    rcu_unlock_domain(d);
-+    return rc;
-+}
-+
- long do_hvm_op(unsigned long op, XEN_GUEST_HANDLE(void) arg)
- {
--- 
-Julien Grall
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/corpus/<fcf046ea782dda6cacb3bf11813bf1d16e531e6b.1345552068.git.julien.grall@citrix.com> b/test/corpus/<fcf046ea782dda6cacb3bf11813bf1d16e531e6b.1345552068.git.julien.grall@citrix.com>
deleted file mode 100644 (file)
index ff8d3d1..0000000
+++ /dev/null
@@ -1,381 +0,0 @@
-From xen-devel-bounces@lists.xen.org Wed Aug 22 19:58:48 2012
-Return-path: <xen-devel-bounces@lists.xen.org>
-Envelope-to: mldrop-xen-devel-airuSae9@hellion.org.uk
-Delivery-date: Wed, 22 Aug 2012 19:58:48 +0100
-Received: from lists.xen.org ([50.57.142.19])
-       by hopkins.hellion.org.uk with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32)
-       (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T4G8W-0002lb-3H
-       for mldrop-xen-devel-airuSae9@hellion.org.uk; Wed, 22 Aug 2012 19:58:48 +0100
-Received: from localhost ([127.0.0.1] helo=lists.xen.org)
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <xen-devel-bounces@lists.xen.org>)
-       id 1T4G5M-0006r9-8W; Wed, 22 Aug 2012 18:55:24 +0000
-Received: from mail6.bemta3.messagelabs.com ([195.245.230.39])
-       by lists.xen.org with esmtp (Exim 4.72)
-       (envelope-from <julien.grall@citrix.com>) id 1T4G5J-0006iH-FR
-       for xen-devel@lists.xen.org; Wed, 22 Aug 2012 18:55:21 +0000
-Received: from [85.158.138.51:39910] by server-9.bemta-3.messagelabs.com id
-       BC/24-23952-91B25305; Wed, 22 Aug 2012 18:55:21 +0000
-X-Env-Sender: julien.grall@citrix.com
-X-Msg-Ref: server-5.tower-174.messagelabs.com!1345661707!27566656!5
-X-Originating-IP: [66.165.176.63]
-X-SpamReason: No, hits=0.0 required=7.0 tests=sa_preprocessor: 
-       VHJ1c3RlZCBJUDogNjYuMTY1LjE3Ni42MyA9PiAyNzMzNjM=\n
-X-StarScan-Received: 
-X-StarScan-Version: 6.6.1.3; banners=-,-,-
-X-VirusChecked: Checked
-Received: (qmail 10195 invoked from network); 22 Aug 2012 18:55:19 -0000
-Received: from smtp02.citrix.com (HELO SMTP02.CITRIX.COM) (66.165.176.63)
-       by server-5.tower-174.messagelabs.com with RC4-SHA encrypted SMTP;
-       22 Aug 2012 18:55:19 -0000
-X-IronPort-AV: E=Sophos;i="4.80,809,1344225600"; d="scan'208";a="205943126"
-Received: from ftlpmailmx01.citrite.net ([10.13.107.65])
-       by FTLPIPO02.CITRIX.COM with ESMTP/TLS/RC4-MD5;
-       22 Aug 2012 14:55:19 -0400
-Received: from meteora.cam.xci-test.com (10.80.248.22) by smtprelay.citrix.com
-       (10.13.107.65) with Microsoft SMTP Server id 8.3.213.0;
-       Wed, 22 Aug 2012 14:55:19 -0400
-From: Julien Grall <julien.grall@citrix.com>
-To: qemu-devel@nongnu.org
-Date: Wed, 22 Aug 2012 13:31:57 +0100
-Message-ID: <fcf046ea782dda6cacb3bf11813bf1d16e531e6b.1345552068.git.julien.grall@citrix.com>
-X-Mailer: git-send-email 1.7.2.5
-In-Reply-To: <cover.1345552068.git.julien.grall@citrix.com>
-References: <cover.1345552068.git.julien.grall@citrix.com>
-MIME-Version: 1.0
-Cc: Julien Grall <julien.grall@citrix.com>, christian.limpach@gmail.com,
-       Stefano.Stabellini@eu.citrix.com, xen-devel@lists.xen.org
-X-BeenThere: xen-devel@lists.xen.org
-X-Mailman-Version: 2.1.13
-Precedence: list
-List-Id: Xen developer discussion <xen-devel.lists.xen.org>
-List-Unsubscribe: <http://lists.xen.org/cgi-bin/mailman/options/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=unsubscribe>
-List-Post: <mailto:xen-devel@lists.xen.org>
-List-Help: <mailto:xen-devel-request@lists.xen.org?subject=help>
-List-Subscribe: <http://lists.xen.org/cgi-bin/mailman/listinfo/xen-devel>,
-       <mailto:xen-devel-request@lists.xen.org?subject=subscribe>
-Content-Type: text/plain; charset="us-ascii"
-Content-Transfer-Encoding: 7bit
-Sender: xen-devel-bounces@lists.xen.org
-Errors-To: xen-devel-bounces@lists.xen.org
-X-SA-Exim-Connect-IP: 50.57.142.19
-X-SA-Exim-Mail-From: xen-devel-bounces@lists.xen.org
-X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on
-       hopkins.hellion.org.uk
-X-Spam-Level: 
-X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DATE_IN_PAST_06_12,
-       RCVD_IN_DNSWL_MED,RP_MATCHES_RCVD,UNPARSEABLE_RELAY autolearn=ham
-       version=3.3.1
-Subject: [Xen-devel] [XEN][RFC PATCH V2 11/17] xc: modify save/restore to
-       support multiple device models
-X-SA-Exim-Version: 4.2.1 (built Mon, 22 Mar 2010 06:51:10 +0000)
-X-SA-Exim-Scanned: Yes (on hopkins.hellion.org.uk)
-
-    - add save/restore new special pages and remove unused
-    - modify save file structure to allow multiple qemu states
-
-Signed-off-by: Julien Grall <julien.grall@citrix.com>
----
- tools/libxc/xc_domain_restore.c |  150 +++++++++++++++++++++++++++++----------
- tools/libxc/xc_domain_save.c    |    6 +-
- 2 files changed, 116 insertions(+), 40 deletions(-)
-
-diff --git a/tools/libxc/xc_domain_restore.c b/tools/libxc/xc_domain_restore.c
-index 3fe2b12..9a49ee2 100644
---- a/tools/libxc/xc_domain_restore.c
-+++ b/tools/libxc/xc_domain_restore.c
-@@ -103,6 +103,9 @@ static ssize_t rdexact(xc_interface *xch, struct restore_ctx *ctx,
- #else
- #define RDEXACT read_exact
- #endif
-+
-+#define QEMUSIG_SIZE 21
-+
- /*
- ** In the state file (or during transfer), all page-table pages are
- ** converted into a 'canonical' form where references to actual mfns
-@@ -342,8 +345,11 @@ typedef struct {
-                 uint32_t version;
-                 uint64_t len;
-             } qemuhdr;
--            uint32_t qemubufsize;
--            uint8_t* qemubuf;
-+            uint32_t num_dms;
-+            struct devmodel_buffer {
-+                uint32_t size;
-+                uint8_t* buf;
-+            } *dmsbuf;
-         } hvm;
-     } u;
- } tailbuf_t;
-@@ -392,63 +398,112 @@ static int compat_buffer_qemu(xc_interface *xch, struct restore_ctx *ctx,
-         return -1;
-     }
--    buf->qemubuf = qbuf;
--    buf->qemubufsize = dlen;
-+    if ( !(buf->dmsbuf = calloc(1, sizeof(*buf->dmsbuf))) ) {
-+        ERROR("Error allocating Device Model buffer");
-+        free(qbuf);
-+        return -1;
-+    }
-+
-+    buf->dmsbuf[0].buf = qbuf;
-+    buf->dmsbuf[0].size = dlen;
-+    buf->num_dms = 1;
-     return 0;
- }
- static int buffer_qemu(xc_interface *xch, struct restore_ctx *ctx,
--                       int fd, struct tailbuf_hvm *buf)
-+                       uint32_t dmid, int fd, struct tailbuf_hvm *buf)
- {
-     uint32_t qlen;
-     uint8_t *tmp;
-+    struct devmodel_buffer *dmb = &buf->dmsbuf[dmid];
-     if ( RDEXACT(fd, &qlen, sizeof(qlen)) ) {
--        PERROR("Error reading QEMU header length");
-+        PERROR("Error reading Device Model %u header length", dmid);
-         return -1;
-     }
--    if ( qlen > buf->qemubufsize ) {
--        if ( buf->qemubuf) {
--            tmp = realloc(buf->qemubuf, qlen);
-+    if ( qlen > dmb->size ) {
-+        if ( dmb->buf ) {
-+            tmp = realloc(dmb->buf, qlen);
-             if ( tmp )
--                buf->qemubuf = tmp;
-+                dmb->buf = tmp;
-             else {
--                ERROR("Error reallocating QEMU state buffer");
-+                ERROR("Error reallocating Device Model %u state buffer", dmid);
-                 return -1;
-             }
-         } else {
--            buf->qemubuf = malloc(qlen);
--            if ( !buf->qemubuf ) {
--                ERROR("Error allocating QEMU state buffer");
-+            dmb->buf = malloc(qlen);
-+            if ( !dmb->buf ) {
-+                ERROR("Error allocating Device Model %u state buffer", dmid);
-                 return -1;
-             }
-         }
-     }
--    buf->qemubufsize = qlen;
-+    dmb->size = qlen;
--    if ( RDEXACT(fd, buf->qemubuf, buf->qemubufsize) ) {
--        PERROR("Error reading QEMU state");
-+    if ( RDEXACT(fd, dmb->buf, dmb->size) ) {
-+        PERROR("Error reading Device Model %u state", dmid);
-         return -1;
-     }
-     return 0;
- }
--static int dump_qemu(xc_interface *xch, uint32_t dom, struct tailbuf_hvm *buf)
-+static int buffer_device_models(xc_interface *xch, struct restore_ctx *ctx,
-+                                int fd, struct tailbuf_hvm *buf)
-+{
-+    uint32_t i, num_dms;
-+    unsigned char qemusig[QEMUSIG_SIZE + 1];
-+    int ret = 0;
-+
-+    if ( RDEXACT(fd, &num_dms, sizeof(num_dms)) ) {
-+        PERROR("Error reading num dms");
-+        return -1;
-+    }
-+
-+    if ( !(buf->dmsbuf = calloc(num_dms, sizeof (*buf->dmsbuf))) ) {
-+        PERROR("Error allocating Device Model buffers");
-+        return -1;
-+    }
-+
-+    buf->num_dms = num_dms;
-+
-+    for ( i = 0; i < num_dms; i++ ) {
-+        if ( RDEXACT(fd, qemusig, QEMUSIG_SIZE) ) {
-+            PERROR("Error reading Device Model %u signature", i);
-+            return -1;
-+        }
-+
-+        if ( memcmp(qemusig, "DeviceModelRecord0002", QEMUSIG_SIZE) ) {
-+            qemusig[QEMUSIG_SIZE] = '\0';
-+            ERROR("Invalid Device Model %u signature: %s", i, qemusig);
-+            return -1;
-+        }
-+
-+        ret = buffer_qemu(xch, ctx, i, fd, buf);
-+        if ( ret )
-+            return ret;
-+    }
-+
-+    return 0;
-+}
-+
-+static int dump_qemu(xc_interface *xch, uint32_t dom,
-+                     uint32_t dmid, struct tailbuf_hvm *buf)
- {
-     int saved_errno;
-     char path[256];
-     FILE *fp;
-+    struct devmodel_buffer *dmb = &buf->dmsbuf[dmid];
--    sprintf(path, XC_DEVICE_MODEL_RESTORE_FILE".%u", dom);
-+    sprintf(path, XC_DEVICE_MODEL_RESTORE_FILE".%u.%u", dom, dmid);
-     fp = fopen(path, "wb");
-     if ( !fp )
-         return -1;
--    DPRINTF("Writing %d bytes of QEMU data\n", buf->qemubufsize);
--    if ( fwrite(buf->qemubuf, 1, buf->qemubufsize, fp) != buf->qemubufsize) {
-+    DPRINTF("Writing %d bytes of Device Model %u data\n", dmb->size, dmid);
-+    if ( fwrite(dmb->buf, 1, dmb->size, fp) != dmb->size ) {
-         saved_errno = errno;
-         fclose(fp);
-         errno = saved_errno;
-@@ -467,7 +522,7 @@ static int buffer_tail_hvm(xc_interface *xch, struct restore_ctx *ctx,
-                            int vcpuextstate, uint32_t vcpuextstate_size)
- {
-     uint8_t *tmp;
--    unsigned char qemusig[21];
-+    unsigned char qemusig[QEMUSIG_SIZE + 1];
-     if ( RDEXACT(fd, buf->magicpfns, sizeof(buf->magicpfns)) ) {
-         PERROR("Error reading magic PFNs");
-@@ -504,7 +559,7 @@ static int buffer_tail_hvm(xc_interface *xch, struct restore_ctx *ctx,
-         return -1;
-     }
--    if ( RDEXACT(fd, qemusig, sizeof(qemusig)) ) {
-+    if ( RDEXACT(fd, qemusig, QEMUSIG_SIZE) ) {
-         PERROR("Error reading QEMU signature");
-         return -1;
-     }
-@@ -517,13 +572,22 @@ static int buffer_tail_hvm(xc_interface *xch, struct restore_ctx *ctx,
-      * live-migration QEMU record and Remus which includes a length
-      * prefix
-      */
--    if ( !memcmp(qemusig, "QemuDeviceModelRecord", sizeof(qemusig)) )
-+    if ( !memcmp(qemusig, "QemuDeviceModelRecord", QEMUSIG_SIZE) )
-         return compat_buffer_qemu(xch, ctx, fd, buf);
--    else if ( !memcmp(qemusig, "DeviceModelRecord0002", sizeof(qemusig)) ||
--              !memcmp(qemusig, "RemusDeviceModelState", sizeof(qemusig)) )
--        return buffer_qemu(xch, ctx, fd, buf);
-+    else if ( !memcmp(qemusig, "DeviceModelRecord0002", QEMUSIG_SIZE) ||
-+              !memcmp(qemusig, "RemusDeviceModelState", QEMUSIG_SIZE) )
-+    {
-+        if ( !(buf->dmsbuf = calloc(1, sizeof (*buf->dmsbuf))) ) {
-+            PERROR("Error allocating Device Model buffer");
-+            return -1;
-+        }
-+        return buffer_qemu(xch, ctx, 0, fd, buf);
-+    }
-+    else if ( !memcmp(qemusig, "DeviceModelRecords001", QEMUSIG_SIZE) ) {
-+        return buffer_device_models(xch, ctx, fd, buf);
-+   }
--    qemusig[20] = '\0';
-+    qemusig[QEMUSIG_SIZE] = '\0';
-     ERROR("Invalid QEMU signature: %s", qemusig);
-     return -1;
- }
-@@ -629,13 +693,18 @@ static int buffer_tail(xc_interface *xch, struct restore_ctx *ctx,
- static void tailbuf_free_hvm(struct tailbuf_hvm *buf)
- {
-+    uint32_t i;
-+
-     if ( buf->hvmbuf ) {
-         free(buf->hvmbuf);
-         buf->hvmbuf = NULL;
-     }
--    if ( buf->qemubuf ) {
--        free(buf->qemubuf);
--        buf->qemubuf = NULL;
-+
-+    for (i = 0; i < buf->num_dms; i++)
-+    {
-+        if (buf->dmsbuf[i].buf)
-+            free(buf->dmsbuf[i].buf);
-+        buf->dmsbuf[i].buf = NULL;
-     }
- }
-@@ -2137,10 +2206,17 @@ int xc_domain_restore(xc_interface *xch, int io_fd, uint32_t dom,
-         }
-     }
--    /* Dump the QEMU state to a state file for QEMU to load */
--    if ( dump_qemu(xch, dom, &tailbuf.u.hvm) ) {
--        PERROR("Error dumping QEMU state to file");
--        goto out;
-+    /**
-+     * Dump the each Device Model state to a state file for the Device
-+     * Model to load
-+     */
-+    for ( i = 0; i < tailbuf.u.hvm.num_dms; i++)
-+    {
-+        if ( dump_qemu(xch, dom, i, &tailbuf.u.hvm) )
-+        {
-+            PERROR("Error dumping Device Model %u state to file", i);
-+            goto out;
-+        }
-     }
-     /* These comms pages need to be zeroed at the start of day */
-@@ -2153,9 +2229,9 @@ int xc_domain_restore(xc_interface *xch, int io_fd, uint32_t dom,
-     }
-     if ( (frc = xc_set_hvm_param(xch, dom,
--                                 HVM_PARAM_IOREQ_PFN, tailbuf.u.hvm.magicpfns[0]))
-+                                 HVM_PARAM_IO_PFN_FIRST, tailbuf.u.hvm.magicpfns[0]))
-          || (frc = xc_set_hvm_param(xch, dom,
--                                    HVM_PARAM_BUFIOREQ_PFN, tailbuf.u.hvm.magicpfns[1]))
-+                                    HVM_PARAM_IO_PFN_LAST, tailbuf.u.hvm.magicpfns[1]))
-          || (frc = xc_set_hvm_param(xch, dom,
-                                     HVM_PARAM_STORE_PFN, tailbuf.u.hvm.magicpfns[2]))
-          || (frc = xc_set_hvm_param(xch, dom,
-diff --git a/tools/libxc/xc_domain_save.c b/tools/libxc/xc_domain_save.c
-index c359649..2aa7a28 100644
---- a/tools/libxc/xc_domain_save.c
-+++ b/tools/libxc/xc_domain_save.c
-@@ -862,7 +862,7 @@ int xc_domain_save(xc_interface *xch, int io_fd, uint32_t dom, uint32_t max_iter
-     uint8_t *hvm_buf = NULL;
-     /* HVM: magic frames for ioreqs and xenstore comms. */
--    uint64_t magic_pfns[3]; /* ioreq_pfn, bufioreq_pfn, store_pfn */
-+    uint64_t magic_pfns[3]; /* io_pfn_first , io_pfn_last, store_pfn */
-     unsigned long mfn;
-@@ -1787,9 +1787,9 @@ int xc_domain_save(xc_interface *xch, int io_fd, uint32_t dom, uint32_t max_iter
-         /* Save magic-page locations. */
-         memset(magic_pfns, 0, sizeof(magic_pfns));
--        xc_get_hvm_param(xch, dom, HVM_PARAM_IOREQ_PFN,
-+        xc_get_hvm_param(xch, dom, HVM_PARAM_IO_PFN_FIRST,
-                          (unsigned long *)&magic_pfns[0]);
--        xc_get_hvm_param(xch, dom, HVM_PARAM_BUFIOREQ_PFN,
-+        xc_get_hvm_param(xch, dom, HVM_PARAM_IO_PFN_LAST,
-                          (unsigned long *)&magic_pfns[1]);
-         xc_get_hvm_param(xch, dom, HVM_PARAM_STORE_PFN,
-                          (unsigned long *)&magic_pfns[2]);
--- 
-Julien Grall
-
-
-_______________________________________________
-Xen-devel mailing list
-Xen-devel@lists.xen.org
-http://lists.xen.org/xen-devel
-
diff --git a/test/emesinae.conf b/test/emesinae.conf
deleted file mode 100644 (file)
index 8327934..0000000
+++ /dev/null
@@ -1,60 +0,0 @@
-$c{Mailer} = "exim";
-
-#$c{DB}          = "/opt/emesinae/var/db.sqlite";
-$c{DB}          = "/tmp/emesinae.db"; # RAM
-$c{RawMailBase} = "/opt/emesinae/var/raw/";
-
-$c{TrackerName} = "Emesinae Bug Tracker";
-$c{TrackerHost} = "localhost";
-
-$c{StyleSheet} = "/css/style.css";
-
-$c{MailDomain} = "hellion.org.uk";
-
-# Bug tracker owner, within $c{MailDomain}
-$c{OwnerAddress}       = "ijc+emesinae-owner;
-# Bug control address, within $c{MailDomain}
-$c{ControlAddress}     = "ijc+emesinae-control";
-# Maildrop address, subscribed to the list
-$c{ListDropAddress} = "emesinae-maildrop-address";
-
-# (optional) Address to send a copy of all control replies too. Need not be
-# within $c{MailDomain}
-$c{ControlDistAddress} = "control-bugs-dist\@" . $c{MailDomain};
-
-# The mailing list address
-$c{ListAddress} = "emesinae-test\@list.example.com";
-# Aliases for the mailing list address
-$c{ListAliases} = qw/emesinae-test\@list.example.org/;
-
-# Set to 1 to send control replies to the list.
-$c{ControlReplyToList} = 0;
-
-# Set to 1 to send control replies to the requestor.
-#$c{ControlReplyToRequestor} = 1
-
-# If unset replies go to $c{ListAddress}
-$c{ControlReplyOverride} = "ijc+emesinae-control-test\@hellion.org.uk";
-
-$c{SpoolDir}        = "/opt/emesinae/var/spool/";
-# Set to 1 to save all incoming mail to YYYY-MM under SpoolDir
-$c{ArchiveIncoming} = 1;
-
-# Path component of the CGI URL
-$c{CGIPath}         = "/cgi-bin/";
-
-$c{LockDir}  = "/opt/emesinae/var/locks/";
-
-$c{ReportingURL} = "http://bugs.example.com/Howto_Report_Bugs.html";
-
-# <MSGID> is replaced by the real message id.
-%{ $c{Archives} } = (
-    "marc.info" => "http://marc.info/?i=<MSGID>",
-    "gmane"     => "http://mid.gmane.org/<MSGID>",
-);
-
-@{ $c{ControlAllow} } = qw/admin@example.com ijc@hellion.org.uk/;
-
-# Severity levels, in decending order of criticality
-@{ $c{SeverityLevels} } = qw/blocker critical normal wishlist/;
-$c{DefaultSeverity} = "normal";
diff --git a/test/fakereceive.sh b/test/fakereceive.sh
deleted file mode 100755 (executable)
index ae4dcd4..0000000
+++ /dev/null
@@ -1,26 +0,0 @@
-#!/bin/bash
-
-#
-# Simulate receiving a mail.
-#
-
-set -e
-
-if [ $# -lt 2 ] ; then
-    echo "usage: need a prefix and and local part" 1>&2
-    exit 1
-fi
-
-D=$1/lib/emesinae ; shift
-export LOCAL_PART="$1"; shift
-
-for msg in $@ ; do
-
-    t=`stat -c%Y "$msg"`
-    cat "$msg" | env FAKE_RECEIVE_TIME=$t $D/receive.pl;
-    ret=$?;
-    if [ $ret -gt 0 ] ; then
-       echo "ERROR: Receiver exited with code $ret";
-       exit $ret
-    fi
-done
diff --git a/test/insertcorpus.sh b/test/insertcorpus.sh
deleted file mode 100755 (executable)
index 8ebce6b..0000000
+++ /dev/null
@@ -1,22 +0,0 @@
-#!/bin/bash
-
-set -e
-
-if [ $# -ne 1 ] ; then
-    echo "usage: need a prefix" 1>&2
-    exit 1
-fi
-
-PREFIX=$1
-FAKE_LOCAL_PART="emesinae-maildrop-address"
-
-IFS='
-'
-find corpus -type f | while read msg ; do
-    ./fakereceive.sh "$PREFIX" "$FAKE_LOCAL_PART" "$msg"
-    ret=$?;
-    if [ $ret -gt 0 ] ; then
-        echo "ERROR: Receiver exited with code $ret";
-        exit $ret
-    fi
-done
diff --git a/test/test.sh b/test/test.sh
deleted file mode 100755 (executable)
index a9a504d..0000000
+++ /dev/null
@@ -1,46 +0,0 @@
-#!/bin/bash
-
-if [ $# -lt 2 -a $# -gt 3 ] ; then
-    echo "usage: test.sh <db> <prefix> [corpus|test|both]" 1>&2
-    exit 1
-fi
-
-set -e
-
-db=$1
-prefix=$2
-mode=${3:-both}
-
-libexec=$prefix/lib/emesinae/
-spool=$prefix/var/spool
-
-if [ "${mode}" = "corpus" -o "${mode}" = "both" ] ; then
-    echo Removing existing spool and db
-    rm -rf $spool/incoming/* $spool/201* $db $prefix/var/raw/*
-
-    echo Recreating DB
-
-    ../db/createdb.sh -d $1
-
-    echo Inserting corpus
-    ./insertcorpus.sh $prefix
-
-    echo Queue run 1
-    $libexec/queuerunner.pl
-
-    cp $db $db.corpus
-else
-    cp $db.corpus $db
-fi
-
-if [ "${mode}" = "test" -o "${mode}" = "both" ] ; then
-    echo Inserting control messages
-    for i in control.*.test ; do
-       ./fakereceive.sh $prefix control $i
-       #./fakereceive.sh $prefix emesinae-maildrop-address $i
-    done
-
-    echo Queue run 2
-    $libexec/queuerunner.pl
-
-fi